aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Documentation/ABI/testing/sysfs-bus-pci40
-rw-r--r--Documentation/DocBook/Makefile8
-rw-r--r--Documentation/input/multi-touch-protocol.txt217
-rw-r--r--Documentation/networking/README.ipw22002
-rw-r--r--MAINTAINERS5
-rw-r--r--Makefile19
-rw-r--r--arch/arm/Kconfig14
-rw-r--r--arch/arm/Makefile4
-rw-r--r--arch/arm/common/sa1111.c9
-rw-r--r--arch/arm/include/asm/dma-mapping.h7
-rw-r--r--arch/arm/include/asm/elf.h3
-rw-r--r--arch/arm/include/asm/stackprotector.h38
-rw-r--r--arch/arm/kernel/asm-offsets.c3
-rw-r--r--arch/arm/kernel/entry-armv.S8
-rw-r--r--arch/arm/kernel/process.c13
-rw-r--r--arch/arm/mach-msm/dma.c1
-rw-r--r--arch/arm/mach-nomadik/clock.c11
-rw-r--r--arch/arm/mach-nomadik/clock.h2
-rw-r--r--arch/arm/mach-nomadik/cpu-8815.c8
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c10
-rw-r--r--arch/arm/mach-omap2/board-omap3evm.c11
-rw-r--r--arch/arm/mach-omap2/board-omap3stalker.c3
-rw-r--r--arch/arm/mach-omap2/usb-ehci.c1
-rw-r--r--arch/arm/mach-pxa/palmtc.c4
-rw-r--r--arch/arm/mach-pxa/spitz.c3
-rw-r--r--arch/arm/mach-ux500/Makefile3
-rw-r--r--arch/arm/mach-ux500/clock.c104
-rw-r--r--arch/arm/mach-ux500/clock.h22
-rw-r--r--arch/arm/mach-ux500/cpu.c6
-rw-r--r--arch/arm/mach-versatile/Kconfig4
-rw-r--r--arch/arm/mm/copypage-feroceon.c4
-rw-r--r--arch/arm/mm/copypage-v4wb.c4
-rw-r--r--arch/arm/mm/copypage-v4wt.c4
-rw-r--r--arch/arm/mm/copypage-xsc3.c4
-rw-r--r--arch/arm/mm/dma-mapping.c3
-rw-r--r--arch/arm/mm/fault.c3
-rw-r--r--arch/arm/mm/highmem.c11
-rw-r--r--arch/arm/mm/init.c6
-rw-r--r--arch/arm/mm/mmap.c4
-rw-r--r--arch/arm/plat-nomadik/timer.c26
-rw-r--r--arch/arm/vfp/vfphw.S2
-rw-r--r--arch/frv/kernel/gdb-stub.c6
-rw-r--r--arch/ia64/kvm/kvm-ia64.c1
-rw-r--r--arch/microblaze/include/asm/page.h2
-rw-r--r--arch/microblaze/kernel/dma.c1
-rw-r--r--arch/microblaze/pci/pci-common.c1
-rw-r--r--arch/mn10300/unit-asb2305/pci-asb2305.c1
-rw-r--r--arch/powerpc/Kconfig2
-rw-r--r--arch/powerpc/include/asm/ptrace.h4
-rw-r--r--arch/powerpc/kernel/pci-common.c1
-rw-r--r--arch/powerpc/kvm/e500.c2
-rw-r--r--arch/powerpc/oprofile/op_model_cell.c2
-rw-r--r--arch/s390/appldata/appldata_os.c2
-rw-r--r--arch/s390/defconfig23
-rw-r--r--arch/s390/kernel/module.c6
-rw-r--r--arch/s390/kvm/kvm-s390.c2
-rw-r--r--arch/s390/kvm/sigp.c2
-rw-r--r--arch/s390/mm/extmem.c19
-rw-r--r--arch/x86/Kconfig16
-rw-r--r--arch/x86/include/asm/desc.h25
-rw-r--r--arch/x86/include/asm/dma-mapping.h2
-rw-r--r--arch/x86/include/asm/mce.h2
-rw-r--r--arch/x86/include/asm/mmu.h7
-rw-r--r--arch/x86/include/asm/msr-index.h1
-rw-r--r--arch/x86/include/asm/paravirt.h6
-rw-r--r--arch/x86/include/asm/paravirt_types.h3
-rw-r--r--arch/x86/include/asm/suspend_32.h2
-rw-r--r--arch/x86/include/asm/suspend_64.h2
-rw-r--r--arch/x86/kernel/cpu/common.c16
-rw-r--r--arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c93
-rw-r--r--arch/x86/kernel/cpu/mcheck/Makefile1
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce-internal.h2
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce-xeon75xx.c427
-rw-r--r--arch/x86/kernel/cpu/mcheck/mce.c12
-rw-r--r--arch/x86/kernel/e820.c3
-rw-r--r--arch/x86/kernel/paravirt.c3
-rw-r--r--arch/x86/kernel/process.c12
-rw-r--r--arch/x86/kernel/process_32.c48
-rw-r--r--arch/x86/kernel/traps.c131
-rw-r--r--arch/x86/kvm/mmu.c5
-rw-r--r--arch/x86/kvm/svm.c96
-rw-r--r--arch/x86/mm/mmap.c12
-rw-r--r--arch/x86/mm/setup_nx.c14
-rw-r--r--arch/x86/mm/tlb.c7
-rw-r--r--arch/x86/pci/i386.c2
-rw-r--r--arch/x86/power/cpu.c4
-rw-r--r--arch/x86/vdso/vdso32-setup.c2
-rw-r--r--arch/x86/xen/enlighten.c21
-rw-r--r--debian.master/NOTES4
-rw-r--r--debian.master/abi/2.6.35-2.3/abiname1
-rw-r--r--debian.master/abi/2.6.35-2.3/amd64/generic11110
-rw-r--r--debian.master/abi/2.6.35-2.3/amd64/generic.modules2835
-rw-r--r--debian.master/abi/2.6.35-2.3/amd64/server11120
-rw-r--r--debian.master/abi/2.6.35-2.3/amd64/server.modules2829
-rw-r--r--debian.master/abi/2.6.35-2.3/amd64/virtual11120
-rw-r--r--debian.master/abi/2.6.35-2.3/amd64/virtual.modules497
-rw-r--r--debian.master/abi/2.6.35-2.3/armel/omap8261
-rw-r--r--debian.master/abi/2.6.35-2.3/armel/omap.modules1775
-rw-r--r--debian.master/abi/2.6.35-2.3/armel/versatile8986
-rw-r--r--debian.master/abi/2.6.35-2.3/armel/versatile.modules1754
-rw-r--r--debian.master/abi/2.6.35-2.3/i386/generic11210
-rw-r--r--debian.master/abi/2.6.35-2.3/i386/generic-pae11259
-rw-r--r--debian.master/abi/2.6.35-2.3/i386/generic-pae.modules3063
-rw-r--r--debian.master/abi/2.6.35-2.3/i386/generic.modules3064
-rw-r--r--debian.master/abi/2.6.35-2.3/i386/virtual11259
-rw-r--r--debian.master/abi/2.6.35-2.3/i386/virtual.modules495
-rw-r--r--debian.master/abi/2.6.35-2.3/ia64/ia649877
-rw-r--r--debian.master/abi/2.6.35-2.3/ia64/ia64.modules2285
-rw-r--r--debian.master/abi/2.6.35-2.3/powerpc/powerpc10168
-rw-r--r--debian.master/abi/2.6.35-2.3/powerpc/powerpc-smp10177
-rw-r--r--debian.master/abi/2.6.35-2.3/powerpc/powerpc-smp.modules2441
-rw-r--r--debian.master/abi/2.6.35-2.3/powerpc/powerpc.modules2445
-rw-r--r--debian.master/abi/2.6.35-2.3/powerpc/powerpc64-smp10466
-rw-r--r--debian.master/abi/2.6.35-2.3/powerpc/powerpc64-smp.modules2424
-rw-r--r--debian.master/abi/2.6.35-2.3/sparc/sparc649081
-rw-r--r--debian.master/abi/2.6.35-2.3/sparc/sparc64-smp9166
-rw-r--r--debian.master/abi/2.6.35-2.3/sparc/sparc64-smp.modules1975
-rw-r--r--debian.master/abi/2.6.35-2.3/sparc/sparc64.modules1973
-rw-r--r--debian.master/abi/perm-blacklist0
-rw-r--r--debian.master/changelog3426
-rw-r--r--debian.master/changelog.historical4171
-rw-r--r--debian.master/config/amd64/config.common.amd64288
-rw-r--r--debian.master/config/amd64/config.flavour.generic16
-rw-r--r--debian.master/config/amd64/config.flavour.server16
-rw-r--r--debian.master/config/amd64/config.flavour.virtual16
-rw-r--r--debian.master/config/armel/config.common.armel128
-rw-r--r--debian.master/config/armel/config.flavour.omap170
-rw-r--r--debian.master/config/armel/config.flavour.versatile170
-rw-r--r--debian.master/config/config.common.ports4253
-rw-r--r--debian.master/config/config.common.ubuntu5051
-rw-r--r--debian.master/config/i386/config.common.i386288
-rw-r--r--debian.master/config/i386/config.flavour.generic18
-rw-r--r--debian.master/config/i386/config.flavour.generic-pae18
-rw-r--r--debian.master/config/i386/config.flavour.virtual18
-rw-r--r--debian.master/config/ia64/config.common.ia64303
-rw-r--r--debian.master/config/ia64/config.flavour.ia643
-rw-r--r--debian.master/config/powerpc/config.common.powerpc267
-rw-r--r--debian.master/config/powerpc/config.flavour.powerpc49
-rw-r--r--debian.master/config/powerpc/config.flavour.powerpc-smp50
-rw-r--r--debian.master/config/powerpc/config.flavour.powerpc64-smp50
-rw-r--r--debian.master/config/sparc/config.common.sparc307
-rw-r--r--debian.master/config/sparc/config.flavour.sparc645
-rw-r--r--debian.master/config/sparc/config.flavour.sparc64-smp5
-rw-r--r--debian.master/control.d/flavour-control.stub77
-rw-r--r--debian.master/control.d/vars.generic6
-rw-r--r--debian.master/control.d/vars.generic-pae6
-rw-r--r--debian.master/control.d/vars.ia646
-rw-r--r--debian.master/control.d/vars.omap8
-rw-r--r--debian.master/control.d/vars.powerpc6
-rw-r--r--debian.master/control.d/vars.powerpc-smp6
-rw-r--r--debian.master/control.d/vars.powerpc64-smp6
-rw-r--r--debian.master/control.d/vars.server6
-rw-r--r--debian.master/control.d/vars.sparc646
-rw-r--r--debian.master/control.d/vars.sparc64-smp6
-rw-r--r--debian.master/control.d/vars.versatile8
-rw-r--r--debian.master/control.d/vars.virtual6
-rw-r--r--debian.master/control.d/virtual.inclusion-list131
-rw-r--r--debian.master/control.stub.in90
-rw-r--r--debian.master/copyright29
-rw-r--r--debian.master/d-i/exclude-firmware.armel-omap2
-rw-r--r--debian.master/d-i/exclude-modules.amd64-virtual12
-rw-r--r--debian.master/d-i/exclude-modules.armel-omap11
-rw-r--r--debian.master/d-i/exclude-modules.armel-versatile20
-rw-r--r--debian.master/d-i/exclude-modules.i386-virtual12
-rw-r--r--debian.master/d-i/exclude-modules.ia645
-rw-r--r--debian.master/d-i/exclude-modules.powerpc5
-rw-r--r--debian.master/d-i/exclude-modules.sparc10
-rw-r--r--debian.master/d-i/firmware/README.txt4
-rw-r--r--debian.master/d-i/firmware/nic-modules10
-rw-r--r--debian.master/d-i/firmware/scsi-modules3
-rw-r--r--debian.master/d-i/kernel-versions.in19
-rw-r--r--debian.master/d-i/modules-powerpc/block-modules31
-rw-r--r--debian.master/d-i/modules-powerpc/message-modules13
-rw-r--r--debian.master/d-i/modules-powerpc/nic-modules152
-rw-r--r--debian.master/d-i/modules-powerpc/scsi-modules116
-rw-r--r--debian.master/d-i/modules-powerpc/storage-core-modules13
-rw-r--r--debian.master/d-i/modules-sparc/block-modules9
-rw-r--r--debian.master/d-i/modules-sparc/message-modules13
-rw-r--r--debian.master/d-i/modules/block-modules30
-rw-r--r--debian.master/d-i/modules/char-modules1
-rw-r--r--debian.master/d-i/modules/crypto-modules8
-rw-r--r--debian.master/d-i/modules/fat-modules7
-rw-r--r--debian.master/d-i/modules/fb-modules3
-rw-r--r--debian.master/d-i/modules/firewire-core-modules4
-rw-r--r--debian.master/d-i/modules/floppy-modules1
-rw-r--r--debian.master/d-i/modules/fs-core-modules3
-rw-r--r--debian.master/d-i/modules/fs-secondary-modules5
-rw-r--r--debian.master/d-i/modules/input-modules21
-rw-r--r--debian.master/d-i/modules/irda-modules30
-rw-r--r--debian.master/d-i/modules/md-modules13
-rw-r--r--debian.master/d-i/modules/message-modules14
-rw-r--r--debian.master/d-i/modules/mouse-modules2
-rw-r--r--debian.master/d-i/modules/nfs-modules4
-rw-r--r--debian.master/d-i/modules/nic-modules155
-rw-r--r--debian.master/d-i/modules/nic-pcmcia-modules19
-rw-r--r--debian.master/d-i/modules/nic-shared-modules22
-rw-r--r--debian.master/d-i/modules/nic-usb-modules13
-rw-r--r--debian.master/d-i/modules/parport-modules2
-rw-r--r--debian.master/d-i/modules/pata-modules46
-rw-r--r--debian.master/d-i/modules/pcmcia-modules8
-rw-r--r--debian.master/d-i/modules/pcmcia-storage-modules6
-rw-r--r--debian.master/d-i/modules/plip-modules1
-rw-r--r--debian.master/d-i/modules/ppp-modules6
-rw-r--r--debian.master/d-i/modules/sata-modules14
-rw-r--r--debian.master/d-i/modules/scsi-modules115
-rw-r--r--debian.master/d-i/modules/serial-modules3
-rw-r--r--debian.master/d-i/modules/squashfs-modules1
-rw-r--r--debian.master/d-i/modules/storage-core-modules10
-rw-r--r--debian.master/d-i/modules/usb-modules9
-rw-r--r--debian.master/d-i/modules/virtio-modules4
-rw-r--r--debian.master/d-i/modules/vlan-modules3
-rw-r--r--debian.master/d-i/package-list190
-rw-r--r--debian.master/etc/getabis15
-rw-r--r--debian.master/etc/kernelconfig7
-rw-r--r--debian.master/rules.d/amd64.mk9
-rw-r--r--debian.master/rules.d/armel.mk11
-rw-r--r--debian.master/rules.d/i386.mk9
-rw-r--r--debian.master/rules.d/ia64.mk21
-rw-r--r--debian.master/rules.d/powerpc.mk19
-rw-r--r--debian.master/rules.d/sparc.mk18
-rw-r--r--debian/commit-templates/bumpabi3
-rw-r--r--debian/commit-templates/config-updates15
-rw-r--r--debian/commit-templates/external-driver20
-rw-r--r--debian/commit-templates/missing-modules3
-rw-r--r--debian/commit-templates/newrelease3
-rw-r--r--debian/commit-templates/sauce-patch40
-rw-r--r--debian/commit-templates/upstream-patch27
-rw-r--r--debian/compat1
-rw-r--r--debian/config/enforce47
-rw-r--r--debian/control-scripts/headers-postinst126
-rw-r--r--debian/control-scripts/postinst1088
-rw-r--r--debian/control-scripts/postrm354
-rw-r--r--debian/control-scripts/preinst299
-rw-r--r--debian/control-scripts/prerm308
-rw-r--r--debian/debian.env1
-rw-r--r--debian/docs/README.inclusion-list51
-rwxr-xr-xdebian/rules226
-rw-r--r--debian/rules.d/0-common-vars.mk172
-rw-r--r--debian/rules.d/1-maintainer.mk137
-rw-r--r--debian/rules.d/2-binary-arch.mk357
-rw-r--r--debian/rules.d/3-binary-indep.mk127
-rw-r--r--debian/rules.d/4-checks.mk34
-rw-r--r--debian/rules.d/5-udebs.mk38
-rwxr-xr-xdebian/scripts/abi-check210
-rwxr-xr-xdebian/scripts/config-check389
-rwxr-xr-xdebian/scripts/control-create25
-rwxr-xr-xdebian/scripts/link-headers42
-rwxr-xr-xdebian/scripts/misc/getabis76
-rwxr-xr-xdebian/scripts/misc/git-ubuntu-log232
-rwxr-xr-xdebian/scripts/misc/insert-changes.pl36
-rwxr-xr-xdebian/scripts/misc/insert-ubuntu-changes58
-rwxr-xr-xdebian/scripts/misc/kernelconfig171
-rwxr-xr-xdebian/scripts/misc/retag34
-rwxr-xr-xdebian/scripts/misc/splitconfig.pl111
-rwxr-xr-xdebian/scripts/module-check120
-rwxr-xr-xdebian/scripts/module-inclusion51
-rw-r--r--debian/stamps/keep-dir1
-rw-r--r--debian/tests/README21
-rwxr-xr-xdebian/tests/check-aliases24
-rw-r--r--debian/tools/perf16
-rw-r--r--drivers/Makefile3
-rw-r--r--drivers/acpi/battery.c36
-rw-r--r--drivers/acpi/video.c2
-rw-r--r--drivers/ata/libahci.c21
-rw-r--r--drivers/ata/libata-core.c2
-rw-r--r--drivers/ata/sata_sil24.c24
-rw-r--r--drivers/ata/sata_via.c18
-rw-r--r--drivers/base/Kconfig8
-rw-r--r--drivers/base/power/main.c26
-rw-r--r--drivers/block/nbd.c2
-rw-r--r--drivers/cdrom/cdrom.c2
-rw-r--r--drivers/char/vt.c2
-rw-r--r--drivers/char/vt_ioctl.c27
-rw-r--r--drivers/firewire/core-card.c24
-rw-r--r--drivers/gpu/drm/drm_crtc.c4
-rw-r--r--drivers/gpu/drm/drm_fb_helper.c2
-rw-r--r--drivers/gpu/drm/i915/i915_dma.c19
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c2
-rw-r--r--drivers/gpu/drm/i915/i915_drv.h1
-rw-r--r--drivers/gpu/drm/i915/intel_display.c14
-rw-r--r--drivers/gpu/drm/i915/intel_drv.h1
-rw-r--r--drivers/gpu/drm/i915/intel_fb.c10
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c5
-rw-r--r--drivers/gpu/drm/i915/intel_modes.c11
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_bios.c25
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_fbcon.c8
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_state.c19
-rw-r--r--drivers/gpu/drm/nouveau/nv50_fb.c10
-rw-r--r--drivers/gpu/drm/nouveau/nv50_gpio.c2
-rw-r--r--drivers/gpu/drm/radeon/evergreen.c20
-rw-r--r--drivers/gpu/drm/radeon/r100.c10
-rw-r--r--drivers/gpu/drm/radeon/r420.c12
-rw-r--r--drivers/gpu/drm/radeon/r600.c111
-rw-r--r--drivers/gpu/drm/radeon/radeon.h14
-rw-r--r--drivers/gpu/drm/radeon/radeon_atombios.c6
-rw-r--r--drivers/gpu/drm/radeon/radeon_combios.c4
-rw-r--r--drivers/gpu/drm/radeon/radeon_display.c3
-rw-r--r--drivers/gpu/drm/radeon/radeon_drv.c3
-rw-r--r--drivers/gpu/drm/radeon/radeon_fb.c12
-rw-r--r--drivers/gpu/drm/radeon/radeon_kms.c9
-rw-r--r--drivers/gpu/drm/radeon/radeon_legacy_encoders.c11
-rw-r--r--drivers/gpu/drm/radeon/radeon_object.c10
-rw-r--r--drivers/gpu/drm/radeon/radeon_pm.c95
-rw-r--r--drivers/gpu/drm/radeon/rv770.c18
-rw-r--r--drivers/gpu/drm/ttm/ttm_page_alloc.c2
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c1
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_resource.c8
-rw-r--r--drivers/hid/Makefile1
-rw-r--r--drivers/input/evdev.c68
-rw-r--r--drivers/input/input.c105
-rw-r--r--drivers/input/keyboard/atkbd.c37
-rw-r--r--drivers/input/misc/hp_sdc_rtc.c2
-rw-r--r--drivers/input/mouse/synaptics.c48
-rw-r--r--drivers/input/mouse/synaptics.h1
-rw-r--r--drivers/md/dm.c1
-rw-r--r--drivers/mmc/host/Kconfig2
-rw-r--r--drivers/mtd/mtdchar.c11
-rw-r--r--drivers/mtd/nand/Kconfig21
-rw-r--r--drivers/mtd/nand/r852.c27
-rw-r--r--drivers/net/8139cp.c2
-rw-r--r--drivers/net/8139too.c3
-rw-r--r--drivers/net/gianfar.c3
-rw-r--r--drivers/net/pcmcia/smc91c92_cs.c1
-rw-r--r--drivers/net/phy/lxt.c51
-rw-r--r--drivers/net/r8169.c11
-rw-r--r--drivers/net/usb/asix.c2
-rw-r--r--drivers/net/wimax/i2400m/fw.c2
-rw-r--r--drivers/net/wireless/ath/ath5k/base.c12
-rw-r--r--drivers/net/wireless/ath/ath5k/phy.c7
-rw-r--r--drivers/net/wireless/hostap/hostap_hw.c11
-rw-r--r--drivers/net/wireless/ipw2x00/ipw2200.c4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-lib.c30
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-tx.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.c318
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c39
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c56
-rw-r--r--drivers/net/wireless/p54/p54usb.c3
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_sdio.c1
-rw-r--r--drivers/pci/hotplug/cpqphp_core.c7
-rw-r--r--drivers/pci/pci-sysfs.c37
-rw-r--r--drivers/pci/quirks.c5
-rw-r--r--drivers/pci/setup-res.c10
-rw-r--r--drivers/pci/slot.c48
-rw-r--r--drivers/pcmcia/ds.c1
-rw-r--r--drivers/pcmcia/yenta_socket.c19
-rw-r--r--drivers/platform/x86/sony-laptop.c23
-rw-r--r--drivers/pnp/isapnp/core.c12
-rw-r--r--drivers/s390/cio/itcw.c2
-rw-r--r--drivers/staging/rt2860/usb_main_dev.c1
-rw-r--r--drivers/usb/core/hub.c34
-rw-r--r--drivers/usb/core/sysfs.c6
-rw-r--r--drivers/usb/serial/ipaq.c1
-rw-r--r--drivers/usb/serial/option.c4
-rw-r--r--drivers/usb/storage/unusual_devs.h7
-rw-r--r--drivers/vhost/net.c2
-rw-r--r--drivers/video/Kconfig4
-rw-r--r--drivers/video/vesafb.c64
-rw-r--r--drivers/video/vga16fb.c2
-rw-r--r--drivers/watchdog/wm8350_wdt.c2
-rw-r--r--fs/binfmt_elf.c26
-rw-r--r--fs/block_dev.c72
-rw-r--r--fs/btrfs/acl.c8
-rw-r--r--fs/btrfs/disk-io.c11
-rw-r--r--fs/btrfs/extent-tree.c3
-rw-r--r--fs/btrfs/file.c12
-rw-r--r--fs/btrfs/inode.c4
-rw-r--r--fs/btrfs/ioctl.c4
-rw-r--r--fs/btrfs/relocation.c7
-rw-r--r--fs/btrfs/root-tree.c3
-rw-r--r--fs/btrfs/super.c6
-rw-r--r--fs/ceph/caps.c93
-rw-r--r--fs/ceph/inode.c2
-rw-r--r--fs/ceph/mds_client.c28
-rw-r--r--fs/ceph/mds_client.h6
-rw-r--r--fs/ceph/mon_client.c2
-rw-r--r--fs/ceph/super.c4
-rw-r--r--fs/exec.c4
-rw-r--r--fs/fs-writeback.c3
-rw-r--r--fs/inode.c4
-rw-r--r--fs/jffs2/acl.c3
-rw-r--r--fs/jffs2/dir.c127
-rw-r--r--fs/jffs2/fs.c7
-rw-r--r--fs/namei.c7
-rw-r--r--fs/namespace.c1
-rw-r--r--fs/nfsd/nfs4state.c2
-rw-r--r--fs/nfsd/vfs.c3
-rw-r--r--fs/notify/group.c3
-rw-r--r--fs/notify/inode_mark.c5
-rw-r--r--fs/open.c5
-rw-r--r--fs/pipe.c20
-rw-r--r--fs/proc/Makefile1
-rw-r--r--fs/proc/version_signature.c31
-rw-r--r--fs/splice.c12
-rw-r--r--fs/xfs/linux-2.6/xfs_aops.c8
-rw-r--r--include/Kbuild1
-rw-r--r--include/asm-generic/vmlinux.lds.h1
-rw-r--r--include/drm/radeon_drm.h1
-rw-r--r--include/linux/audit.h10
-rw-r--r--include/linux/init.h3
-rw-r--r--include/linux/input.h61
-rw-r--r--include/linux/miscdevice.h7
-rw-r--r--include/linux/mm.h8
-rw-r--r--include/linux/mm_types.h3
-rw-r--r--include/linux/namei.h3
-rw-r--r--include/linux/netfilter/Kbuild2
-rw-r--r--include/linux/pci_ids.h1
-rw-r--r--include/linux/resource.h5
-rw-r--r--include/linux/sched.h9
-rw-r--r--include/linux/security.h5
-rw-r--r--include/linux/skbuff.h5
-rw-r--r--include/linux/splice.h6
-rw-r--r--include/linux/swap.h2
-rw-r--r--include/linux/writeback.h9
-rw-r--r--include/scsi/Kbuild4
-rw-r--r--include/trace/events/ext4.h5
-rw-r--r--include/trace/events/fs.h53
-rw-r--r--include/trace/events/signal.h3
-rw-r--r--include/trace/events/vfs.h53
-rw-r--r--init/Kconfig9
-rw-r--r--init/initramfs.c28
-rw-r--r--init/main.c8
-rw-r--r--init/version.c6
-rw-r--r--kernel/perf_event.c5
-rw-r--r--kernel/power/Kconfig15
-rw-r--r--kernel/power/console.c4
-rw-r--r--kernel/ptrace.c25
-rw-r--r--kernel/sysctl.c56
-rw-r--r--mm/mmap.c128
-rw-r--r--mm/mprotect.c10
-rw-r--r--mm/mremap.c4
-rw-r--r--mm/page-writeback.c30
-rw-r--r--mm/swapfile.c23
-rw-r--r--net/8021q/vlan_core.c4
-rw-r--r--net/caif/cfrfml.c2
-rw-r--r--net/caif/cfveil.c2
-rw-r--r--net/core/dev.c25
-rw-r--r--net/core/gen_estimator.c15
-rw-r--r--net/core/pktgen.c2
-rw-r--r--net/core/skbuff.c1
-rw-r--r--net/ipv4/ipmr.c4
-rw-r--r--net/ipv6/icmp.c4
-rw-r--r--net/ipv6/ip6mr.c6
-rw-r--r--net/ipv6/mcast.c5
-rw-r--r--net/mac80211/driver-ops.h2
-rw-r--r--net/mac80211/mlme.c92
-rw-r--r--net/mac80211/rx.c3
-rw-r--r--samples/Kconfig8
-rw-r--r--samples/Makefile2
-rw-r--r--samples/tests/Makefile5
-rw-r--r--samples/tests/test_stackprotector.c86
-rw-r--r--scripts/Makefile.modbuiltin5
-rw-r--r--security/Kconfig6
-rw-r--r--security/Makefile2
-rw-r--r--security/apparmor/.gitignore5
-rw-r--r--security/apparmor/Kconfig40
-rw-r--r--security/apparmor/Makefile24
-rw-r--r--security/apparmor/apparmorfs-24.c61
-rw-r--r--security/apparmor/apparmorfs.c561
-rw-r--r--security/apparmor/audit.c162
-rw-r--r--security/apparmor/capability.c146
-rw-r--r--security/apparmor/context.c226
-rw-r--r--security/apparmor/domain.c796
-rw-r--r--security/apparmor/file.c556
-rw-r--r--security/apparmor/include/apparmor.h82
-rw-r--r--security/apparmor/include/apparmorfs.h28
-rw-r--r--security/apparmor/include/audit.h54
-rw-r--r--security/apparmor/include/capability.h45
-rw-r--r--security/apparmor/include/context.h154
-rw-r--r--security/apparmor/include/domain.h36
-rw-r--r--security/apparmor/include/file.h228
-rw-r--r--security/apparmor/include/ipc.h28
-rw-r--r--security/apparmor/include/match.h130
-rw-r--r--security/apparmor/include/net.h40
-rw-r--r--security/apparmor/include/path.h31
-rw-r--r--security/apparmor/include/policy.h307
-rw-r--r--security/apparmor/include/policy_unpack.h30
-rw-r--r--security/apparmor/include/procattr.h26
-rw-r--r--security/apparmor/include/resource.h45
-rw-r--r--security/apparmor/include/sid.h24
-rw-r--r--security/apparmor/ipc.c124
-rw-r--r--security/apparmor/lib.c85
-rw-r--r--security/apparmor/lsm.c1082
-rw-r--r--security/apparmor/match.c389
-rw-r--r--security/apparmor/net.c167
-rw-r--r--security/apparmor/path.c243
-rw-r--r--security/apparmor/policy.c1097
-rw-r--r--security/apparmor/policy_unpack.c725
-rw-r--r--security/apparmor/procattr.c152
-rw-r--r--security/apparmor/resource.c119
-rw-r--r--security/apparmor/sid.c55
-rw-r--r--security/capability.c12
-rw-r--r--security/commoncap.c69
-rw-r--r--security/device_cgroup.c1
-rw-r--r--security/security.c13
-rw-r--r--sound/atmel/ac97c.c2
-rw-r--r--sound/oss/ad1848.c6
-rw-r--r--sound/oss/sb_mixer.c6
-rw-r--r--sound/pci/hda/hda_intel.c14
-rw-r--r--sound/pci/hda/patch_realtek.c3
-rw-r--r--sound/soc/pxa/spitz.c36
-rw-r--r--sound/spi/at73c213.c1
-rw-r--r--tools/perf/util/symbol.c8
-rw-r--r--ubuntu/Kconfig14
-rw-r--r--ubuntu/Makefile17
-rw-r--r--ubuntu/aufs/Kconfig175
-rw-r--r--ubuntu/aufs/Makefile39
-rw-r--r--ubuntu/aufs/aufs.h61
-rw-r--r--ubuntu/aufs/branch.c1007
-rw-r--r--ubuntu/aufs/branch.h225
-rw-r--r--ubuntu/aufs/conf.mk33
-rw-r--r--ubuntu/aufs/cpup.c1057
-rw-r--r--ubuntu/aufs/cpup.h81
-rw-r--r--ubuntu/aufs/dbgaufs.c334
-rw-r--r--ubuntu/aufs/dbgaufs.h52
-rw-r--r--ubuntu/aufs/dcsub.c200
-rw-r--r--ubuntu/aufs/dcsub.h54
-rw-r--r--ubuntu/aufs/debug.c425
-rw-r--r--ubuntu/aufs/debug.h243
-rw-r--r--ubuntu/aufs/dentry.c850
-rw-r--r--ubuntu/aufs/dentry.h231
-rw-r--r--ubuntu/aufs/dinfo.c395
-rw-r--r--ubuntu/aufs/dir.c647
-rw-r--r--ubuntu/aufs/dir.h127
-rw-r--r--ubuntu/aufs/dynop.c404
-rw-r--r--ubuntu/aufs/dynop.h109
-rw-r--r--ubuntu/aufs/export.c801
-rw-r--r--ubuntu/aufs/f_op.c884
-rw-r--r--ubuntu/aufs/f_op_sp.c299
-rw-r--r--ubuntu/aufs/file.c652
-rw-r--r--ubuntu/aufs/file.h234
-rw-r--r--ubuntu/aufs/finfo.c167
-rw-r--r--ubuntu/aufs/fstype.h497
-rw-r--r--ubuntu/aufs/hfsnotify.c230
-rw-r--r--ubuntu/aufs/hfsplus.c58
-rw-r--r--ubuntu/aufs/hinotify.c227
-rw-r--r--ubuntu/aufs/hnotify.c671
-rw-r--r--ubuntu/aufs/i_op.c924
-rw-r--r--ubuntu/aufs/i_op_add.c672
-rw-r--r--ubuntu/aufs/i_op_del.c472
-rw-r--r--ubuntu/aufs/i_op_ren.c977
-rw-r--r--ubuntu/aufs/iinfo.c277
-rw-r--r--ubuntu/aufs/include/linux/aufs_type.h198
-rw-r--r--ubuntu/aufs/inode.c416
-rw-r--r--ubuntu/aufs/inode.h498
-rw-r--r--ubuntu/aufs/ioctl.c126
-rw-r--r--ubuntu/aufs/loop.c55
-rw-r--r--ubuntu/aufs/loop.h43
-rw-r--r--ubuntu/aufs/magic.mk54
-rw-r--r--ubuntu/aufs/module.c171
-rw-r--r--ubuntu/aufs/module.h82
-rw-r--r--ubuntu/aufs/mtx.h48
-rw-r--r--ubuntu/aufs/opts.c1585
-rw-r--r--ubuntu/aufs/opts.h198
-rw-r--r--ubuntu/aufs/plink.c453
-rw-r--r--ubuntu/aufs/poll.c56
-rw-r--r--ubuntu/aufs/rdu.c330
-rw-r--r--ubuntu/aufs/rwsem.h187
-rw-r--r--ubuntu/aufs/sbinfo.c202
-rw-r--r--ubuntu/aufs/spl.h66
-rw-r--r--ubuntu/aufs/super.c847
-rw-r--r--ubuntu/aufs/super.h361
-rw-r--r--ubuntu/aufs/sysaufs.c107
-rw-r--r--ubuntu/aufs/sysaufs.h105
-rw-r--r--ubuntu/aufs/sysfs.c251
-rw-r--r--ubuntu/aufs/sysrq.c119
-rw-r--r--ubuntu/aufs/vdir.c884
-rw-r--r--ubuntu/aufs/vfsub.c805
-rw-r--r--ubuntu/aufs/vfsub.h176
-rw-r--r--ubuntu/aufs/wbr_policy.c696
-rw-r--r--ubuntu/aufs/whout.c1052
-rw-r--r--ubuntu/aufs/whout.h87
-rw-r--r--ubuntu/aufs/wkq.c183
-rw-r--r--ubuntu/aufs/wkq.h84
-rw-r--r--ubuntu/aufs/xino.c1202
-rw-r--r--ubuntu/compcache/BOM2
-rw-r--r--ubuntu/compcache/Changelog82
-rw-r--r--ubuntu/compcache/GPL.txt280
-rw-r--r--ubuntu/compcache/Kconfig31
-rw-r--r--ubuntu/compcache/LGPL-2.1.txt510
-rw-r--r--ubuntu/compcache/Makefile1
-rw-r--r--ubuntu/compcache/README45
-rw-r--r--ubuntu/compcache/compat.h34
-rw-r--r--ubuntu/compcache/ramzswap.c1049
-rw-r--r--ubuntu/compcache/ramzswap.h159
-rw-r--r--ubuntu/compcache/xvmalloc.c557
-rw-r--r--ubuntu/compcache/xvmalloc.h30
-rw-r--r--ubuntu/compcache/xvmalloc_int.h86
-rw-r--r--ubuntu/dm-raid4-5/BOM3
-rw-r--r--ubuntu/dm-raid4-5/Kconfig6
-rw-r--r--ubuntu/dm-raid4-5/Makefile4
-rw-r--r--ubuntu/dm-raid4-5/dm-memcache.c302
-rw-r--r--ubuntu/dm-raid4-5/dm-memcache.h68
-rw-r--r--ubuntu/dm-raid4-5/dm-message.c183
-rw-r--r--ubuntu/dm-raid4-5/dm-message.h91
-rw-r--r--ubuntu/dm-raid4-5/dm-raid4-5.c4546
-rw-r--r--ubuntu/dm-raid4-5/dm-raid4-5.h27
-rw-r--r--ubuntu/dm-raid4-5/dm-raid45.h28
-rw-r--r--ubuntu/dm-raid4-5/dm-region-hash.c719
-rw-r--r--ubuntu/dm-raid4-5/dm-region-hash.h108
-rw-r--r--ubuntu/fsam7400/BOM2
-rw-r--r--ubuntu/fsam7400/CHANGELOG34
-rw-r--r--ubuntu/fsam7400/FILES6
-rw-r--r--ubuntu/fsam7400/INSTALL110
-rw-r--r--ubuntu/fsam7400/Kconfig5
-rw-r--r--ubuntu/fsam7400/LICENSE338
-rw-r--r--ubuntu/fsam7400/Makefile2
-rw-r--r--ubuntu/fsam7400/README60
-rw-r--r--ubuntu/fsam7400/fsam7400.c386
-rw-r--r--ubuntu/include/README4
-rw-r--r--ubuntu/iscsitarget/BOM2
-rw-r--r--ubuntu/iscsitarget/Kconfig3
-rw-r--r--ubuntu/iscsitarget/Makefile17
-rw-r--r--ubuntu/iscsitarget/block-io.c327
-rw-r--r--ubuntu/iscsitarget/config.c362
-rw-r--r--ubuntu/iscsitarget/conn.c262
-rw-r--r--ubuntu/iscsitarget/digest.c279
-rw-r--r--ubuntu/iscsitarget/digest.h20
-rw-r--r--ubuntu/iscsitarget/event.c96
-rw-r--r--ubuntu/iscsitarget/file-io.c261
-rw-r--r--ubuntu/iscsitarget/include/iet_u.h151
-rw-r--r--ubuntu/iscsitarget/iotype.c110
-rw-r--r--ubuntu/iscsitarget/iotype.h42
-rw-r--r--ubuntu/iscsitarget/iscsi.c1967
-rw-r--r--ubuntu/iscsitarget/iscsi.h523
-rw-r--r--ubuntu/iscsitarget/iscsi_dbg.h137
-rw-r--r--ubuntu/iscsitarget/iscsi_hdr.h509
-rw-r--r--ubuntu/iscsitarget/nthread.c790
-rw-r--r--ubuntu/iscsitarget/null-io.c98
-rw-r--r--ubuntu/iscsitarget/param.c205
-rw-r--r--ubuntu/iscsitarget/session.c180
-rw-r--r--ubuntu/iscsitarget/target.c374
-rw-r--r--ubuntu/iscsitarget/target_disk.c589
-rw-r--r--ubuntu/iscsitarget/tio.c121
-rw-r--r--ubuntu/iscsitarget/ua.c176
-rw-r--r--ubuntu/iscsitarget/volume.c423
-rw-r--r--ubuntu/iscsitarget/wthread.c245
-rw-r--r--ubuntu/lirc/Kconfig88
-rw-r--r--ubuntu/lirc/Makefile23
-rw-r--r--ubuntu/lirc/kcompat.h402
-rw-r--r--ubuntu/lirc/lirc.h105
-rw-r--r--ubuntu/lirc/lirc_atiusb/Makefile3
-rw-r--r--ubuntu/lirc/lirc_atiusb/lirc_atiusb.c1450
-rw-r--r--ubuntu/lirc/lirc_bt829/Makefile3
-rw-r--r--ubuntu/lirc/lirc_bt829/lirc_bt829.c398
-rw-r--r--ubuntu/lirc/lirc_dev/Makefile3
-rw-r--r--ubuntu/lirc/lirc_dev/lirc_dev.c1024
-rw-r--r--ubuntu/lirc/lirc_dev/lirc_dev.h343
-rw-r--r--ubuntu/lirc/lirc_ene0100/Makefile3
-rw-r--r--ubuntu/lirc/lirc_ene0100/lirc_ene0100.c653
-rw-r--r--ubuntu/lirc/lirc_ene0100/lirc_ene0100.h170
-rw-r--r--ubuntu/lirc/lirc_gpio/Makefile3
-rw-r--r--ubuntu/lirc/lirc_gpio/lirc_gpio.c613
-rw-r--r--ubuntu/lirc/lirc_i2c/Makefile3
-rw-r--r--ubuntu/lirc/lirc_i2c/lirc_i2c.c778
-rw-r--r--ubuntu/lirc/lirc_igorplugusb/Makefile3
-rw-r--r--ubuntu/lirc/lirc_igorplugusb/lirc_igorplugusb.c636
-rw-r--r--ubuntu/lirc/lirc_imon/Makefile3
-rw-r--r--ubuntu/lirc/lirc_imon/lirc_imon.c2368
-rw-r--r--ubuntu/lirc/lirc_it87/Makefile3
-rw-r--r--ubuntu/lirc/lirc_it87/README46
-rw-r--r--ubuntu/lirc/lirc_it87/TODO5
-rw-r--r--ubuntu/lirc/lirc_it87/lirc_it87.c1011
-rw-r--r--ubuntu/lirc/lirc_it87/lirc_it87.h116
-rw-r--r--ubuntu/lirc/lirc_ite8709/Makefile3
-rw-r--r--ubuntu/lirc/lirc_ite8709/lirc_ite8709.c552
-rw-r--r--ubuntu/lirc/lirc_mceusb/Makefile3
-rw-r--r--ubuntu/lirc/lirc_mceusb/lirc_mceusb.c1288
-rw-r--r--ubuntu/lirc/lirc_parallel/Makefile3
-rw-r--r--ubuntu/lirc/lirc_parallel/lirc_parallel.c762
-rw-r--r--ubuntu/lirc/lirc_parallel/lirc_parallel.h26
-rw-r--r--ubuntu/lirc/lirc_sasem/Makefile2
-rw-r--r--ubuntu/lirc/lirc_sasem/lirc_sasem.c1106
-rw-r--r--ubuntu/lirc/lirc_serial/Makefile3
-rw-r--r--ubuntu/lirc/lirc_serial/lirc_serial.c1420
-rw-r--r--ubuntu/lirc/lirc_sir/Makefile3
-rw-r--r--ubuntu/lirc/lirc_sir/lirc_sir.c1345
-rw-r--r--ubuntu/lirc/lirc_streamzap/Makefile2
-rwxr-xr-xubuntu/lirc/lirc_streamzap/lirc_streamzap.c888
-rw-r--r--ubuntu/lirc/lirc_ttusbir/Makefile3
-rw-r--r--ubuntu/lirc/lirc_ttusbir/lirc_ttusbir.c410
-rw-r--r--ubuntu/lirc/lirc_wpc8769l/Makefile3
-rw-r--r--ubuntu/lirc/lirc_wpc8769l/lirc_wpc8769l.c1177
-rw-r--r--ubuntu/lirc/lirc_wpc8769l/lirc_wpc8769l.h186
-rw-r--r--ubuntu/ndiswrapper/BOM2
-rw-r--r--ubuntu/ndiswrapper/Kconfig4
-rw-r--r--ubuntu/ndiswrapper/Makefile38
-rw-r--r--ubuntu/ndiswrapper/crt.c578
-rw-r--r--ubuntu/ndiswrapper/divdi3.c329
-rw-r--r--ubuntu/ndiswrapper/hal.c157
-rw-r--r--ubuntu/ndiswrapper/iw_ndis.c1973
-rw-r--r--ubuntu/ndiswrapper/iw_ndis.h208
-rw-r--r--ubuntu/ndiswrapper/lin2win.h202
-rw-r--r--ubuntu/ndiswrapper/loader.c877
-rw-r--r--ubuntu/ndiswrapper/loader.h90
-rw-r--r--ubuntu/ndiswrapper/longlong.h1333
-rw-r--r--ubuntu/ndiswrapper/mkexport.sh42
-rw-r--r--ubuntu/ndiswrapper/mkstubs.sh12
-rw-r--r--ubuntu/ndiswrapper/ndis.c2974
-rw-r--r--ubuntu/ndiswrapper/ndis.h1314
-rw-r--r--ubuntu/ndiswrapper/ndiswrapper.h219
-rw-r--r--ubuntu/ndiswrapper/ntoskernel.c2683
-rw-r--r--ubuntu/ndiswrapper/ntoskernel.h1157
-rw-r--r--ubuntu/ndiswrapper/ntoskernel_io.c1106
-rw-r--r--ubuntu/ndiswrapper/pe_linker.c599
-rw-r--r--ubuntu/ndiswrapper/pe_linker.h993
-rw-r--r--ubuntu/ndiswrapper/pnp.c742
-rw-r--r--ubuntu/ndiswrapper/pnp.h42
-rw-r--r--ubuntu/ndiswrapper/proc.c565
-rw-r--r--ubuntu/ndiswrapper/rtl.c716
-rw-r--r--ubuntu/ndiswrapper/usb.c1457
-rw-r--r--ubuntu/ndiswrapper/usb.h376
-rw-r--r--ubuntu/ndiswrapper/win2lin_stubs.S288
-rw-r--r--ubuntu/ndiswrapper/winnt_types.h1702
-rw-r--r--ubuntu/ndiswrapper/wrapmem.c360
-rw-r--r--ubuntu/ndiswrapper/wrapmem.h94
-rw-r--r--ubuntu/ndiswrapper/wrapndis.c2134
-rw-r--r--ubuntu/ndiswrapper/wrapndis.h90
-rw-r--r--ubuntu/ndiswrapper/wrapper.c121
-rw-r--r--ubuntu/ndiswrapper/wrapper.h24
-rw-r--r--ubuntu/omnibook/BOM2
-rw-r--r--ubuntu/omnibook/Kconfig5
-rw-r--r--ubuntu/omnibook/Makefile171
-rw-r--r--ubuntu/omnibook/ac.c60
-rw-r--r--ubuntu/omnibook/acpi.c1158
-rw-r--r--ubuntu/omnibook/battery.c557
-rw-r--r--ubuntu/omnibook/blank.c138
-rw-r--r--ubuntu/omnibook/bluetooth.c104
-rw-r--r--ubuntu/omnibook/compal.c526
-rw-r--r--ubuntu/omnibook/compat.h71
-rw-r--r--ubuntu/omnibook/cooling.c97
-rw-r--r--ubuntu/omnibook/debian/README.Debian30
-rw-r--r--ubuntu/omnibook/debian/changelog170
-rw-r--r--ubuntu/omnibook/debian/compat1
-rw-r--r--ubuntu/omnibook/debian/control21
-rw-r--r--ubuntu/omnibook/debian/control.modules.in23
-rw-r--r--ubuntu/omnibook/debian/copyright32
-rw-r--r--ubuntu/omnibook/debian/docs4
-rwxr-xr-xubuntu/omnibook/debian/rules135
-rw-r--r--ubuntu/omnibook/display.c114
-rw-r--r--ubuntu/omnibook/doc/BUGS17
-rw-r--r--ubuntu/omnibook/doc/COPYING340
-rw-r--r--ubuntu/omnibook/doc/CREDITS39
-rw-r--r--ubuntu/omnibook/doc/ChangeLog521
-rw-r--r--ubuntu/omnibook/doc/README42
-rw-r--r--ubuntu/omnibook/dock.c84
-rw-r--r--ubuntu/omnibook/dump.c107
-rw-r--r--ubuntu/omnibook/ec.c188
-rw-r--r--ubuntu/omnibook/fan.c183
-rw-r--r--ubuntu/omnibook/fan_policy.c188
-rw-r--r--ubuntu/omnibook/hardware.h582
-rw-r--r--ubuntu/omnibook/hotkeys.c193
-rw-r--r--ubuntu/omnibook/info.c68
-rw-r--r--ubuntu/omnibook/init.c535
-rw-r--r--ubuntu/omnibook/kbc.c152
-rw-r--r--ubuntu/omnibook/laptop.h1077
-rw-r--r--ubuntu/omnibook/lcd.c207
-rw-r--r--ubuntu/omnibook/lib.c81
-rw-r--r--ubuntu/omnibook/misc/README.mmkeys9
-rw-r--r--ubuntu/omnibook/misc/dmi_strings.txt857
-rw-r--r--ubuntu/omnibook/misc/hotkeys/README.hotkeys22
-rw-r--r--ubuntu/omnibook/misc/hotkeys/nx9xxx.def28
-rw-r--r--ubuntu/omnibook/misc/hotkeys/ob5xx.def30
-rw-r--r--ubuntu/omnibook/misc/hotkeys/xe3gc.def32
-rw-r--r--ubuntu/omnibook/misc/hotkeys/xe3gf.def32
-rw-r--r--ubuntu/omnibook/misc/hotkeys/xe4xxx.def28
-rw-r--r--ubuntu/omnibook/misc/hotkeys/xt155.def23
-rw-r--r--ubuntu/omnibook/muteled.c109
-rw-r--r--ubuntu/omnibook/nbsmi.c968
-rw-r--r--ubuntu/omnibook/omnibook.h145
-rw-r--r--ubuntu/omnibook/pio.c173
-rw-r--r--ubuntu/omnibook/polling.c259
-rw-r--r--ubuntu/omnibook/sections.lds11
-rw-r--r--ubuntu/omnibook/temperature.c55
-rw-r--r--ubuntu/omnibook/throttling.c83
-rw-r--r--ubuntu/omnibook/touchpad.c126
-rw-r--r--ubuntu/omnibook/wireless.c108
-rw-r--r--ubuntu/rfkill/BOM6
-rw-r--r--ubuntu/rfkill/Kconfig9
-rw-r--r--ubuntu/rfkill/Makefile6
-rw-r--r--ubuntu/rfkill/av5100.c174
-rw-r--r--ubuntu/rfkill/pbe5.c205
-rw-r--r--ubuntu/rtl8192se/BOM2
-rw-r--r--ubuntu/rtl8192se/Kconfig5
-rwxr-xr-xubuntu/rtl8192se/Makefile786
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/Makefile10
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_Efuse.c1869
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_Efuse.h98
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_def.h756
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_dev.c5004
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_dev.h65
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_firmware.c856
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_firmware.h419
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_hw.h1070
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_hwimg.c5904
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_hwimg.h42
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_hwimg492.c5610
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_hwimg492.h60
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_hwimg74.c6398
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_hwimg74.h60
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_led.c1356
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_led.h84
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_mp.c1256
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_mp.h185
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_phy.c3464
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_phy.h202
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_phyreg.h954
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_rtl6052.c974
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_rtl6052.h116
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_scan.c413
-rwxr-xr-xubuntu/rtl8192se/rtl8192s/r8192S_scan.h38
-rwxr-xr-xubuntu/rtl8192se/rtl_cam.c569
-rwxr-xr-xubuntu/rtl8192se/rtl_cam.h60
-rwxr-xr-xubuntu/rtl8192se/rtl_core.c5975
-rwxr-xr-xubuntu/rtl8192se/rtl_core.h1449
-rwxr-xr-xubuntu/rtl8192se/rtl_debug.c1384
-rwxr-xr-xubuntu/rtl8192se/rtl_debug.h89
-rwxr-xr-xubuntu/rtl8192se/rtl_dm.c5294
-rwxr-xr-xubuntu/rtl8192se/rtl_dm.h332
-rwxr-xr-xubuntu/rtl8192se/rtl_eeprom.c140
-rwxr-xr-xubuntu/rtl8192se/rtl_eeprom.h48
-rwxr-xr-xubuntu/rtl8192se/rtl_endianfree.h156
-rwxr-xr-xubuntu/rtl8192se/rtl_ethtool.c59
-rwxr-xr-xubuntu/rtl8192se/rtl_mesh.c371
-rwxr-xr-xubuntu/rtl8192se/rtl_mesh.h40
-rwxr-xr-xubuntu/rtl8192se/rtl_pm.c193
-rwxr-xr-xubuntu/rtl8192se/rtl_pm.h39
-rwxr-xr-xubuntu/rtl8192se/rtl_ps.c732
-rwxr-xr-xubuntu/rtl8192se/rtl_ps.h62
-rwxr-xr-xubuntu/rtl8192se/rtl_regd.c390
-rwxr-xr-xubuntu/rtl8192se/rtl_regd.h53
-rwxr-xr-xubuntu/rtl8192se/rtl_rfkill.c221
-rwxr-xr-xubuntu/rtl8192se/rtl_rfkill.h12
-rwxr-xr-xubuntu/rtl8192se/rtl_wx.c4231
-rwxr-xr-xubuntu/rtl8192se/rtl_wx.h34
-rwxr-xr-xubuntu/rtl8192se/rtllib/EndianFree.h160
-rwxr-xr-xubuntu/rtl8192se/rtllib/Makefile214
-rwxr-xr-xubuntu/rtl8192se/rtllib/aes.c468
-rwxr-xr-xubuntu/rtl8192se/rtllib/api.c261
-rwxr-xr-xubuntu/rtl8192se/rtllib/arc4.c105
-rwxr-xr-xubuntu/rtl8192se/rtllib/autoload.c41
-rwxr-xr-xubuntu/rtl8192se/rtllib/cipher.c298
-rwxr-xr-xubuntu/rtl8192se/rtllib/compress.c63
-rwxr-xr-xubuntu/rtl8192se/rtllib/crypto_compat.h88
-rwxr-xr-xubuntu/rtl8192se/rtllib/digest.c120
-rwxr-xr-xubuntu/rtl8192se/rtllib/dot11d.c261
-rwxr-xr-xubuntu/rtl8192se/rtllib/dot11d.h83
-rwxr-xr-xubuntu/rtl8192se/rtllib/internal.h130
-rwxr-xr-xubuntu/rtl8192se/rtllib/kmap_types.h20
-rwxr-xr-xubuntu/rtl8192se/rtllib/license339
-rwxr-xr-xubuntu/rtl8192se/rtllib/michael_mic.c194
-rwxr-xr-xubuntu/rtl8192se/rtllib/proc.c115
-rwxr-xr-xubuntu/rtl8192se/rtllib/readme162
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtl819x_BA.h79
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtl819x_BAProc.c669
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtl819x_HT.h489
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtl819x_HTProc.c1683
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtl819x_Qos.h619
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtl819x_TS.h72
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtl819x_TSProc.c672
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtl_crypto.h409
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtllib.h4134
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtllib_crypt.c268
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtllib_crypt.h93
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtllib_crypt_ccmp.c544
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtllib_crypt_tkip.c1047
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtllib_crypt_wep.c404
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtllib_module.c587
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtllib_rx.c5266
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtllib_softmac.c5255
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtllib_softmac_wx.c769
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtllib_tx.c1631
-rwxr-xr-xubuntu/rtl8192se/rtllib/rtllib_wx.c1346
-rwxr-xr-xubuntu/rtl8192se/rtllib/scatterwalk.c138
-rwxr-xr-xubuntu/rtl8192se/rtllib/scatterwalk.h53
-rwxr-xr-xubuntu/rtl8192se/rtllib/wapi.c1842
-rwxr-xr-xubuntu/rtl8192se/rtllib/wapi.h135
-rwxr-xr-xubuntu/rtl8192se/rtllib/wapi_interface.c151
-rwxr-xr-xubuntu/rtl8192se/rtllib/wapi_interface.h98
-rw-r--r--virt/kvm/ioapic.c3
-rw-r--r--virt/kvm/iommu.c2
882 files changed, 404051 insertions, 1108 deletions
diff --git a/Documentation/ABI/testing/sysfs-bus-pci b/Documentation/ABI/testing/sysfs-bus-pci
index 428676cfa61..25be3250f7d 100644
--- a/Documentation/ABI/testing/sysfs-bus-pci
+++ b/Documentation/ABI/testing/sysfs-bus-pci
@@ -133,46 +133,6 @@ Description:
The symbolic link points to the PCI device sysfs entry of the
Physical Function this device associates with.
-
-What: /sys/bus/pci/slots/...
-Date: April 2005 (possibly older)
-KernelVersion: 2.6.12 (possibly older)
-Contact: linux-pci@vger.kernel.org
-Description:
- When the appropriate driver is loaded, it will create a
- directory per claimed physical PCI slot in
- /sys/bus/pci/slots/. The names of these directories are
- specific to the driver, which in turn, are specific to the
- platform, but in general, should match the label on the
- machine's physical chassis.
-
- The drivers that can create slot directories include the
- PCI hotplug drivers, and as of 2.6.27, the pci_slot driver.
-
- The slot directories contain, at a minimum, a file named
- 'address' which contains the PCI bus:device:function tuple.
- Other files may appear as well, but are specific to the
- driver.
-
-What: /sys/bus/pci/slots/.../function[0-7]
-Date: March 2010
-KernelVersion: 2.6.35
-Contact: linux-pci@vger.kernel.org
-Description:
- If PCI slot directories (as described above) are created,
- and the physical slot is actually populated with a device,
- symbolic links in the slot directory pointing to the
- device's PCI functions are created as well.
-
-What: /sys/bus/pci/devices/.../slot
-Date: March 2010
-KernelVersion: 2.6.35
-Contact: linux-pci@vger.kernel.org
-Description:
- If PCI slot directories (as described above) are created,
- a symbolic link pointing to the slot directory will be
- created as well.
-
What: /sys/bus/pci/slots/.../module
Date: June 2009
Contact: linux-pci@vger.kernel.org
diff --git a/Documentation/DocBook/Makefile b/Documentation/DocBook/Makefile
index c7e5dc7e8cb..f918d4a0821 100644
--- a/Documentation/DocBook/Makefile
+++ b/Documentation/DocBook/Makefile
@@ -35,17 +35,17 @@ PS_METHOD = $(prefer-db2x)
PHONY += xmldocs sgmldocs psdocs pdfdocs htmldocs mandocs installmandocs cleandocs xmldoclinks
BOOKS := $(addprefix $(obj)/,$(DOCBOOKS))
-xmldocs: $(BOOKS) xmldoclinks
+xmldocs: xmldoclinks $(BOOKS)
sgmldocs: xmldocs
PS := $(patsubst %.xml, %.ps, $(BOOKS))
-psdocs: $(PS)
+psdocs: xmldoclinks $(PS)
PDF := $(patsubst %.xml, %.pdf, $(BOOKS))
-pdfdocs: $(PDF)
+pdfdocs: xmldoclinks $(PDF)
HTML := $(sort $(patsubst %.xml, %.html, $(BOOKS)))
-htmldocs: $(HTML)
+htmldocs: xmldoclinks $(HTML)
$(call build_main_index)
$(call build_images)
diff --git a/Documentation/input/multi-touch-protocol.txt b/Documentation/input/multi-touch-protocol.txt
index c0fc1c75fd8..f50bcb9f75b 100644
--- a/Documentation/input/multi-touch-protocol.txt
+++ b/Documentation/input/multi-touch-protocol.txt
@@ -6,31 +6,148 @@ Multi-touch (MT) Protocol
Introduction
------------
-In order to utilize the full power of the new multi-touch devices, a way to
-report detailed finger data to user space is needed. This document
-describes the multi-touch (MT) protocol which allows kernel drivers to
-report details for an arbitrary number of fingers.
+In order to utilize the full power of the new multi-touch and multi-user
+devices, a way to report detailed data from multiple contacts, i.e.,
+objects in direct contact with the device surface, is needed. This
+document describes the multi-touch (MT) protocol which allows kernel
+drivers to report details for an arbitrary number of contacts.
+
+The protocol is divided into two types, depending on the capabilities of the
+hardware. For devices handling anonymous contacts (type A), the protocol
+describes how to send the raw data for all contacts to the receiver. For
+devices capable of tracking identifiable contacts (type B), the protocol
+describes how to send updates for individual contacts via event slots.
+
+
+Protocol Usage
+--------------
+
+Contact details are sent sequentially as separate packets of ABS_MT
+events. Only the ABS_MT events are recognized as part of a contact
+packet. Since these events are ignored by current single-touch (ST)
+applications, the MT protocol can be implemented on top of the ST protocol
+in an existing driver.
+
+Drivers for type A devices separate contact packets by calling
+input_mt_sync() at the end of each packet. This generates a SYN_MT_REPORT
+event, which instructs the receiver to accept the data for the current
+contact and prepare to receive another.
+
+Drivers for type B devices separate contact packets by calling
+input_mt_slot(), with a slot as argument, at the beginning of each packet.
+This generates an ABS_MT_SLOT event, which instructs the receiver to
+prepare for updates of the given slot.
+
+All drivers mark the end of a multi-touch transfer by calling the usual
+input_sync() function. This instructs the receiver to act upon events
+accumulated since last EV_SYN/SYN_REPORT and prepare to receive a new set
+of events/packets.
+
+The main difference between the raw type A protocol and the higher level
+type B slot protocol lies in the usage of identifiable contacts. The slot
+protocol requires the use of the ABS_MT_TRACKING_ID, either provided by the
+hardware or computed from the raw data [5].
+
+For type A devices, the kernel driver should generate an arbitrary
+enumeration of the set of anonymous contacts currently on the surface. The
+order in which the packets appear in the event stream is not important.
+Event filtering and finger tracking is left to user space [3].
+
+For type B devices, the kernel driver should associate a slot with each
+identified contact, and use that slot to propagate changes for the contact.
+Creation, replacement and destruction of contacts is achieved by modifying
+the ABS_MT_TRACKING_ID of the associated slot. A tracking id within the
+specified value range is interpreted as a contact, all other values are
+interpreted as an unused slot. A tracking id not previously present is
+considered new, and a tracking id no longer present is considered removed.
+Since only changes are propagated, the full state of each initiated contact
+has to reside in the receiving end. Upon receiving an MT event, one simply
+updates the appropriate attribute of the current slot.
+
+
+Protocol Example A
+------------------
+
+Here is what a minimal event sequence for a two-contact touch would look
+like for a type A device:
+
+ ABS_MT_POSITION_X x[0]
+ ABS_MT_POSITION_Y y[0]
+ SYN_MT_REPORT
+ ABS_MT_POSITION_X x[1]
+ ABS_MT_POSITION_Y y[1]
+ SYN_MT_REPORT
+ SYN_REPORT
+The sequence after moving one of the contacts looks exactly the same; the
+raw data for all present contacts are sent between every synchronization
+with SYN_REPORT.
-Usage
------
+Here is the sequence after lifting the first contact:
+
+ ABS_MT_POSITION_X x[1]
+ ABS_MT_POSITION_Y y[1]
+ SYN_MT_REPORT
+ SYN_REPORT
+
+And here is the sequence after lifting the second contact:
+
+ SYN_MT_REPORT
+ SYN_REPORT
+
+If the driver reports one of BTN_TOUCH or ABS_PRESSURE in addition to the
+ABS_MT events, the last SYN_MT_REPORT event may be omitted. Otherwise, the
+last SYN_REPORT will be dropped by the input core, resulting in no
+zero-contact event reaching userland.
-Anonymous finger details are sent sequentially as separate packets of ABS
-events. Only the ABS_MT events are recognized as part of a finger
-packet. The end of a packet is marked by calling the input_mt_sync()
-function, which generates a SYN_MT_REPORT event. This instructs the
-receiver to accept the data for the current finger and prepare to receive
-another. The end of a multi-touch transfer is marked by calling the usual
-input_sync() function. This instructs the receiver to act upon events
-accumulated since last EV_SYN/SYN_REPORT and prepare to receive a new
-set of events/packets.
+
+Protocol Example B
+------------------
+
+Here is what a minimal event sequence for a two-contact touch would look
+like for a type B device:
+
+ ABS_MT_SLOT 0
+ ABS_MT_TRACKING_ID 45
+ ABS_MT_POSITION_X x[0]
+ ABS_MT_POSITION_Y y[0]
+ ABS_MT_SLOT 1
+ ABS_MT_TRACKING_ID 46
+ ABS_MT_POSITION_X x[1]
+ ABS_MT_POSITION_Y y[1]
+ SYN_REPORT
+
+Here is the sequence after moving contact 45 in the x direction:
+
+ ABS_MT_SLOT 0
+ ABS_MT_POSITION_X x[0]
+ SYN_REPORT
+
+Here is the sequence after lifting the contact in slot 0:
+
+ ABS_MT_TRACKING_ID 0
+ SYN_REPORT
+
+The slot being modified is already 0, so the ABS_MT_SLOT is omitted. The
+message removes the association of slot 0 with contact 45, thereby
+destroying contact 45 and freeing slot 0 to be reused for another contact.
+
+Finally, here is the sequence after lifting the second contact:
+
+ ABS_MT_SLOT 1
+ ABS_MT_TRACKING_ID 0
+ SYN_REPORT
+
+
+Event Usage
+-----------
A set of ABS_MT events with the desired properties is defined. The events
are divided into categories, to allow for partial implementation. The
minimum set consists of ABS_MT_POSITION_X and ABS_MT_POSITION_Y, which
-allows for multiple fingers to be tracked. If the device supports it, the
+allows for multiple contacts to be tracked. If the device supports it, the
ABS_MT_TOUCH_MAJOR and ABS_MT_WIDTH_MAJOR may be used to provide the size
-of the contact area and approaching finger, respectively.
+of the contact area and approaching contact, respectively.
The TOUCH and WIDTH parameters have a geometrical interpretation; imagine
looking through a window at someone gently holding a finger against the
@@ -41,56 +158,26 @@ ABS_MT_TOUCH_MAJOR, the diameter of the outer region is
ABS_MT_WIDTH_MAJOR. Now imagine the person pressing the finger harder
against the glass. The inner region will increase, and in general, the
ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR, which is always smaller than
-unity, is related to the finger pressure. For pressure-based devices,
+unity, is related to the contact pressure. For pressure-based devices,
ABS_MT_PRESSURE may be used to provide the pressure on the contact area
instead.
-In addition to the MAJOR parameters, the oval shape of the finger can be
+In addition to the MAJOR parameters, the oval shape of the contact can be
described by adding the MINOR parameters, such that MAJOR and MINOR are the
major and minor axis of an ellipse. Finally, the orientation of the oval
shape can be describe with the ORIENTATION parameter.
The ABS_MT_TOOL_TYPE may be used to specify whether the touching tool is a
-finger or a pen or something else. Devices with more granular information
+contact or a pen or something else. Devices with more granular information
may specify general shapes as blobs, i.e., as a sequence of rectangular
shapes grouped together by an ABS_MT_BLOB_ID. Finally, for the few devices
that currently support it, the ABS_MT_TRACKING_ID event may be used to
-report finger tracking from hardware [5].
+report contact tracking from hardware [5].
-Here is what a minimal event sequence for a two-finger touch would look
-like:
-
- ABS_MT_POSITION_X
- ABS_MT_POSITION_Y
- SYN_MT_REPORT
- ABS_MT_POSITION_X
- ABS_MT_POSITION_Y
- SYN_MT_REPORT
- SYN_REPORT
-
-Here is the sequence after lifting one of the fingers:
-
- ABS_MT_POSITION_X
- ABS_MT_POSITION_Y
- SYN_MT_REPORT
- SYN_REPORT
-
-And here is the sequence after lifting the remaining finger:
-
- SYN_MT_REPORT
- SYN_REPORT
-
-If the driver reports one of BTN_TOUCH or ABS_PRESSURE in addition to the
-ABS_MT events, the last SYN_MT_REPORT event may be omitted. Otherwise, the
-last SYN_REPORT will be dropped by the input core, resulting in no
-zero-finger event reaching userland.
Event Semantics
---------------
-The word "contact" is used to describe a tool which is in direct contact
-with the surface. A finger, a pen or a rubber all classify as contacts.
-
ABS_MT_TOUCH_MAJOR
The length of the major axis of the contact. The length should be given in
@@ -157,15 +244,16 @@ MT_TOOL_PEN [2].
ABS_MT_BLOB_ID
The BLOB_ID groups several packets together into one arbitrarily shaped
-contact. This is a low-level anonymous grouping, and should not be confused
-with the high-level trackingID [5]. Most kernel drivers will not have blob
-capability, and can safely omit the event.
+contact. This is a low-level anonymous grouping for type A devices, and
+should not be confused with the high-level trackingID [5]. Most type A
+devices do not have blob capability, so drivers can safely omit this event.
ABS_MT_TRACKING_ID
The TRACKING_ID identifies an initiated contact throughout its life cycle
-[5]. There are currently only a few devices that support it, so this event
-should normally be omitted.
+[5]. This event is mandatory for type B devices. The value range of the
+TRACKING_ID should be large enough to ensure unique identification of a
+contact maintained over an extended period of time.
Event Computation
@@ -192,20 +280,11 @@ finger along the X axis (1).
Finger Tracking
---------------
-The kernel driver should generate an arbitrary enumeration of the set of
-anonymous contacts currently on the surface. The order in which the packets
-appear in the event stream is not important.
-
The process of finger tracking, i.e., to assign a unique trackingID to each
-initiated contact on the surface, is left to user space; preferably the
-multi-touch X driver [3]. In that driver, the trackingID stays the same and
-unique until the contact vanishes (when the finger leaves the surface). The
-problem of assigning a set of anonymous fingers to a set of identified
-fingers is a euclidian bipartite matching problem at each event update, and
-relies on a sufficiently rapid update rate.
-
-There are a few devices that support trackingID in hardware. User space can
-make use of these native identifiers to reduce bandwidth and cpu usage.
+initiated contact on the surface, is a Euclidian Bipartite Matching
+problem. At each event synchronization, the set of actual contacts is
+matched to the set of contacts from the previous synchronization. A full
+implementation can be found in [3].
Gestures
diff --git a/Documentation/networking/README.ipw2200 b/Documentation/networking/README.ipw2200
index 80c728522c4..e4d3267071e 100644
--- a/Documentation/networking/README.ipw2200
+++ b/Documentation/networking/README.ipw2200
@@ -171,7 +171,7 @@ Where the supported parameter are:
led
Can be used to turn on experimental LED code.
- 0 = Off, 1 = On. Default is 0.
+ 0 = Off, 1 = On. Default is 1.
mode
Can be used to set the default mode of the adapter.
diff --git a/MAINTAINERS b/MAINTAINERS
index 67accd730ac..6d119c98b89 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2978,7 +2978,6 @@ F: drivers/net/ixgb/
F: drivers/net/ixgbe/
INTEL PRO/WIRELESS 2100 NETWORK CONNECTION SUPPORT
-M: Zhu Yi <yi.zhu@intel.com>
M: Reinette Chatre <reinette.chatre@intel.com>
M: Intel Linux Wireless <ilw@linux.intel.com>
L: linux-wireless@vger.kernel.org
@@ -2988,7 +2987,6 @@ F: Documentation/networking/README.ipw2100
F: drivers/net/wireless/ipw2x00/ipw2100.*
INTEL PRO/WIRELESS 2915ABG NETWORK CONNECTION SUPPORT
-M: Zhu Yi <yi.zhu@intel.com>
M: Reinette Chatre <reinette.chatre@intel.com>
M: Intel Linux Wireless <ilw@linux.intel.com>
L: linux-wireless@vger.kernel.org
@@ -3019,8 +3017,8 @@ F: drivers/net/wimax/i2400m/
F: include/linux/wimax/i2400m.h
INTEL WIRELESS WIFI LINK (iwlwifi)
-M: Zhu Yi <yi.zhu@intel.com>
M: Reinette Chatre <reinette.chatre@intel.com>
+M: Wey-Yi Guy <wey-yi.w.guy@intel.com>
M: Intel Linux Wireless <ilw@linux.intel.com>
L: linux-wireless@vger.kernel.org
W: http://intellinuxwireless.org
@@ -3030,7 +3028,6 @@ F: drivers/net/wireless/iwlwifi/
INTEL WIRELESS MULTICOMM 3200 WIFI (iwmc3200wifi)
M: Samuel Ortiz <samuel.ortiz@intel.com>
-M: Zhu Yi <yi.zhu@intel.com>
M: Intel Linux Wireless <ilw@linux.intel.com>
L: linux-wireless@vger.kernel.org
S: Supported
diff --git a/Makefile b/Makefile
index 654c31aaec6..95056bd74a1 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 35
-EXTRAVERSION = -rc2
+EXTRAVERSION = -rc3
NAME = Sheep on Meth
# *DOCUMENTATION*
@@ -340,13 +340,22 @@ CFLAGS_KERNEL =
AFLAGS_KERNEL =
CFLAGS_GCOV = -fprofile-arcs -ftest-coverage
+# Prefer linux-backports-modules
+ifneq ($(KBUILD_SRC),)
+ifneq ($(shell if test -e $(KBUILD_OUTPUT)/ubuntu-build; then echo yes; fi),yes)
+UBUNTUINCLUDE := -I/usr/src/linux-headers-lbm-$(KERNELRELEASE)
+endif
+endif
# Use LINUXINCLUDE when you must reference the include/ directory.
# Needed to be compatible with the O= option
-LINUXINCLUDE := -I$(srctree)/arch/$(hdr-arch)/include -Iinclude \
+LINUXINCLUDE := $(UBUNTUINCLUDE) -I$(srctree)/arch/$(hdr-arch)/include -Iinclude \
$(if $(KBUILD_SRC), -I$(srctree)/include) \
-include include/generated/autoconf.h
+# UBUNTU: Include our third party driver stuff too
+LINUXINCLUDE += -Iubuntu/include $(if $(KBUILD_SRC),-I$(srctree)/ubuntu/include)
+
KBUILD_CPPFLAGS := -D__KERNEL__
KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
@@ -478,7 +487,7 @@ scripts: scripts_basic include/config/auto.conf include/config/tristate.conf
# Objects we will link into vmlinux / subdirs we need to visit
init-y := init/
-drivers-y := drivers/ sound/ firmware/
+drivers-y := drivers/ sound/ firmware/ ubuntu/
net-y := net/
libs-y := lib/
core-y := usr/
@@ -1095,7 +1104,7 @@ all: modules
# using awk while concatenating to the final file.
PHONY += modules
-modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux)
+modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
$(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
@$(kecho) ' Building modules, stage 2.';
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
@@ -1117,7 +1126,7 @@ PHONY += modules_install
modules_install: _modinst_ _modinst_post
PHONY += _modinst_
-_modinst_: modules.builtin
+_modinst_:
@if [ -z "`$(DEPMOD) -V 2>/dev/null | grep module-init-tools`" ]; then \
echo "Warning: you may need to install module-init-tools"; \
echo "See http://www.codemonkey.org.uk/docs/post-halloween-2.6.txt";\
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 1f254bd6c93..6878175f406 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -1374,6 +1374,18 @@ config UACCESS_WITH_MEMCPY
However, if the CPU data cache is using a write-allocate mode,
this option is unlikely to provide any performance gain.
+config CC_STACKPROTECTOR
+ bool "Enable -fstack-protector buffer overflow detection (EXPERIMENTAL)"
+ help
+ This option turns on the -fstack-protector GCC feature. This
+ feature puts, at the beginning of functions, a canary value on
+ the stack just before the return address, and validates
+ the value just before actually returning. Stack based buffer
+ overflows (that need to overwrite this return address) now also
+ overwrite the canary, which gets detected and the attack is then
+ neutralized via a kernel panic.
+ This feature requires gcc version 4.2 or above.
+
endmenu
menu "Boot options"
@@ -1668,6 +1680,8 @@ source "net/Kconfig"
source "drivers/Kconfig"
+source "ubuntu/Kconfig"
+
source "fs/Kconfig"
source "arch/arm/Kconfig.debug"
diff --git a/arch/arm/Makefile b/arch/arm/Makefile
index 64ba313724d..ddf6da158ad 100644
--- a/arch/arm/Makefile
+++ b/arch/arm/Makefile
@@ -34,6 +34,10 @@ ifeq ($(CONFIG_FRAME_POINTER),y)
KBUILD_CFLAGS +=-fno-omit-frame-pointer -mapcs -mno-sched-prolog
endif
+ifeq ($(CONFIG_CC_STACKPROTECTOR),y)
+KBUILD_CFLAGS +=-fstack-protector
+endif
+
ifeq ($(CONFIG_CPU_BIG_ENDIAN),y)
KBUILD_CPPFLAGS += -mbig-endian
AS += -EB
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index a52a27c1d9b..6f80665f477 100644
--- a/arch/arm/common/sa1111.c
+++ b/arch/arm/common/sa1111.c
@@ -951,8 +951,6 @@ static int sa1111_resume(struct platform_device *dev)
if (!save)
return 0;
- spin_lock_irqsave(&sachip->lock, flags);
-
/*
* Ensure that the SA1111 is still here.
* FIXME: shouldn't do this here.
@@ -969,6 +967,13 @@ static int sa1111_resume(struct platform_device *dev)
* First of all, wake up the chip.
*/
sa1111_wake(sachip);
+
+ /*
+ * Only lock for write ops. Also, sa1111_wake must be called with
+ * released spinlock!
+ */
+ spin_lock_irqsave(&sachip->lock, flags);
+
sa1111_writel(0, sachip->base + SA1111_INTC + SA1111_INTEN0);
sa1111_writel(0, sachip->base + SA1111_INTC + SA1111_INTEN1);
diff --git a/arch/arm/include/asm/dma-mapping.h b/arch/arm/include/asm/dma-mapping.h
index 69ce0727edb..69d8ce7b38e 100644
--- a/arch/arm/include/asm/dma-mapping.h
+++ b/arch/arm/include/asm/dma-mapping.h
@@ -9,6 +9,13 @@
#include <asm-generic/dma-coherent.h>
#include <asm/memory.h>
+extern struct dma_map_ops *dma_ops;
+
+static inline struct dma_map_ops *get_dma_ops(struct device *dev)
+{
+ return dma_ops;
+}
+
/*
* page_to_dma/dma_to_virt/virt_to_dma are architecture private functions
* used internally by the DMA-mapping API to provide DMA addresses. They
diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h
index 4d0e730524b..029f8407329 100644
--- a/arch/arm/include/asm/elf.h
+++ b/arch/arm/include/asm/elf.h
@@ -123,4 +123,7 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
extern void elf_set_personality(const struct elf32_hdr *);
#define SET_PERSONALITY(ex) elf_set_personality(&(ex))
+extern unsigned long arch_randomize_brk(struct mm_struct *mm);
+#define arch_randomize_brk arch_randomize_brk
+
#endif
diff --git a/arch/arm/include/asm/stackprotector.h b/arch/arm/include/asm/stackprotector.h
new file mode 100644
index 00000000000..de003327be9
--- /dev/null
+++ b/arch/arm/include/asm/stackprotector.h
@@ -0,0 +1,38 @@
+/*
+ * GCC stack protector support.
+ *
+ * Stack protector works by putting predefined pattern at the start of
+ * the stack frame and verifying that it hasn't been overwritten when
+ * returning from the function. The pattern is called stack canary
+ * and gcc expects it to be defined by a global variable called
+ * "__stack_chk_guard" on ARM. This unfortunately means that on SMP
+ * we cannot have a different canary value per task.
+ */
+
+#ifndef _ASM_STACKPROTECTOR_H
+#define _ASM_STACKPROTECTOR_H 1
+
+#include <linux/random.h>
+#include <linux/version.h>
+
+extern unsigned long __stack_chk_guard;
+
+/*
+ * Initialize the stackprotector canary value.
+ *
+ * NOTE: this must only be called from functions that never return,
+ * and it must always be inlined.
+ */
+static __always_inline void boot_init_stack_canary(void)
+{
+ unsigned long canary;
+
+ /* Try to get a semi random initial value. */
+ get_random_bytes(&canary, sizeof(canary));
+ canary ^= LINUX_VERSION_CODE;
+
+ current->stack_canary = canary;
+ __stack_chk_guard = current->stack_canary;
+}
+
+#endif /* _ASM_STACKPROTECTOR_H */
diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c
index 883511522fc..85f2a019f77 100644
--- a/arch/arm/kernel/asm-offsets.c
+++ b/arch/arm/kernel/asm-offsets.c
@@ -40,6 +40,9 @@
int main(void)
{
DEFINE(TSK_ACTIVE_MM, offsetof(struct task_struct, active_mm));
+#ifdef CONFIG_CC_STACKPROTECTOR
+ DEFINE(TSK_STACK_CANARY, offsetof(struct task_struct, stack_canary));
+#endif
BLANK();
DEFINE(TI_FLAGS, offsetof(struct thread_info, flags));
DEFINE(TI_PREEMPT, offsetof(struct thread_info, preempt_count));
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index ba654faf508..c125abc2dc7 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -745,6 +745,11 @@ ENTRY(__switch_to)
mov r4, #0xffff0fff
str r3, [r4, #-15] @ TLS val at 0xffff0ff0
#endif
+#if defined(CONFIG_CC_STACKPROTECTOR) && !defined(CONFIG_SMP)
+ ldr r7, [r2, #TI_TASK]
+ ldr r8, =__stack_chk_guard
+ ldr r7, [r7, #TSK_STACK_CANARY]
+#endif
#ifdef CONFIG_CPU_USE_DOMAINS
mcr p15, 0, r6, c3, c0, 0 @ Set domain register
#endif
@@ -753,6 +758,9 @@ ENTRY(__switch_to)
ldr r0, =thread_notify_head
mov r1, #THREAD_NOTIFY_SWITCH
bl atomic_notifier_call_chain
+#if defined(CONFIG_CC_STACKPROTECTOR) && !defined(CONFIG_SMP)
+ str r7, [r8]
+#endif
THUMB( mov ip, r4 )
mov r0, r5
ARM( ldmia r4, {r4 - sl, fp, sp, pc} ) @ Load all regs saved previously
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index acf5e6fdb6d..090ac9459da 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -28,6 +28,7 @@
#include <linux/tick.h>
#include <linux/utsname.h>
#include <linux/uaccess.h>
+#include <linux/random.h>
#include <asm/leds.h>
#include <asm/processor.h>
@@ -36,6 +37,12 @@
#include <asm/stacktrace.h>
#include <asm/mach/time.h>
+#ifdef CONFIG_CC_STACKPROTECTOR
+#include <linux/stackprotector.h>
+unsigned long __stack_chk_guard __read_mostly;
+EXPORT_SYMBOL(__stack_chk_guard);
+#endif
+
static const char *processor_modes[] = {
"USER_26", "FIQ_26" , "IRQ_26" , "SVC_26" , "UK4_26" , "UK5_26" , "UK6_26" , "UK7_26" ,
"UK8_26" , "UK9_26" , "UK10_26", "UK11_26", "UK12_26", "UK13_26", "UK14_26", "UK15_26",
@@ -421,3 +428,9 @@ unsigned long get_wchan(struct task_struct *p)
} while (count ++ < 16);
return 0;
}
+
+unsigned long arch_randomize_brk(struct mm_struct *mm)
+{
+ unsigned long range_end = mm->brk + 0x02000000;
+ return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
+}
diff --git a/arch/arm/mach-msm/dma.c b/arch/arm/mach-msm/dma.c
index d029d1f5f9e..02cae5e2951 100644
--- a/arch/arm/mach-msm/dma.c
+++ b/arch/arm/mach-msm/dma.c
@@ -17,6 +17,7 @@
#include <linux/err.h>
#include <linux/io.h>
#include <linux/interrupt.h>
+#include <linux/completion.h>
#include <mach/dma.h>
#define MSM_DMOV_CHANNEL_COUNT 16
diff --git a/arch/arm/mach-nomadik/clock.c b/arch/arm/mach-nomadik/clock.c
index 2c471fc451d..f035f418527 100644
--- a/arch/arm/mach-nomadik/clock.c
+++ b/arch/arm/mach-nomadik/clock.c
@@ -32,7 +32,10 @@ void clk_disable(struct clk *clk)
}
EXPORT_SYMBOL(clk_disable);
-/* We have a fixed clock alone, for now */
+static struct clk clk_24 = {
+ .rate = 2400000,
+};
+
static struct clk clk_48 = {
.rate = 48 * 1000 * 1000,
};
@@ -50,6 +53,8 @@ static struct clk clk_default;
}
static struct clk_lookup lookups[] = {
+ CLK(&clk_24, "mtu0"),
+ CLK(&clk_24, "mtu1"),
CLK(&clk_48, "uart0"),
CLK(&clk_48, "uart1"),
CLK(&clk_default, "gpio.0"),
@@ -59,10 +64,8 @@ static struct clk_lookup lookups[] = {
CLK(&clk_default, "rng"),
};
-static int __init clk_init(void)
+int __init clk_init(void)
{
clkdev_add_table(lookups, ARRAY_SIZE(lookups));
return 0;
}
-
-arch_initcall(clk_init);
diff --git a/arch/arm/mach-nomadik/clock.h b/arch/arm/mach-nomadik/clock.h
index 5563985a2cc..78da2e7c398 100644
--- a/arch/arm/mach-nomadik/clock.h
+++ b/arch/arm/mach-nomadik/clock.h
@@ -11,3 +11,5 @@
struct clk {
unsigned long rate;
};
+
+int __init clk_init(void);
diff --git a/arch/arm/mach-nomadik/cpu-8815.c b/arch/arm/mach-nomadik/cpu-8815.c
index 91c3c901b46..ac58e3b03b1 100644
--- a/arch/arm/mach-nomadik/cpu-8815.c
+++ b/arch/arm/mach-nomadik/cpu-8815.c
@@ -31,6 +31,8 @@
#include <asm/cacheflush.h>
#include <asm/hardware/cache-l2x0.h>
+#include "clock.h"
+
#define __MEM_4K_RESOURCE(x) \
.res = {.start = (x), .end = (x) + SZ_4K - 1, .flags = IORESOURCE_MEM}
@@ -143,6 +145,12 @@ void __init cpu8815_init_irq(void)
/* This modified VIC cell has two register blocks, at 0 and 0x20 */
vic_init(io_p2v(NOMADIK_IC_BASE + 0x00), IRQ_VIC_START + 0, ~0, 0);
vic_init(io_p2v(NOMADIK_IC_BASE + 0x20), IRQ_VIC_START + 32, ~0, 0);
+
+ /*
+ * Init clocks here so that they are available for system timer
+ * initialization.
+ */
+ clk_init();
}
/*
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
index e4a5d66b83b..131f0fddb22 100644
--- a/arch/arm/mach-omap2/board-4430sdp.c
+++ b/arch/arm/mach-omap2/board-4430sdp.c
@@ -110,8 +110,16 @@ static struct platform_device sdp4430_lcd_device = {
.id = -1,
};
+static struct platform_device sdp4430_nop_usb_device = {
+ .name = "nop_usb_xceiv",
+ .id = -1,
+ .resource = NULL,
+ .num_resources = 0,
+};
+
static struct platform_device *sdp4430_devices[] __initdata = {
&sdp4430_lcd_device,
+ &sdp4430_nop_usb_device,
};
static struct omap_lcd_config sdp4430_lcd_config __initdata = {
@@ -374,8 +382,6 @@ static void __init omap_4430sdp_init(void)
platform_add_devices(sdp4430_devices, ARRAY_SIZE(sdp4430_devices));
omap_serial_init();
omap4_twl6030_hsmmc_init(mmc);
- /* OMAP4 SDP uses internal transceiver so register nop transceiver */
- usb_nop_xceiv_register();
/* FIXME: allow multi-omap to boot until musb is updated for omap4 */
if (!cpu_is_omap44xx())
usb_musb_init(&musb_board_data);
diff --git a/arch/arm/mach-omap2/board-omap3evm.c b/arch/arm/mach-omap2/board-omap3evm.c
index b9526101381..ef89ffa8588 100644
--- a/arch/arm/mach-omap2/board-omap3evm.c
+++ b/arch/arm/mach-omap2/board-omap3evm.c
@@ -618,6 +618,13 @@ struct spi_board_info omap3evm_spi_board_info[] = {
},
};
+static struct platform_device omap3_evm_nop_usb_device = {
+ .name = "nop_usb_xceiv",
+ .id = -1,
+ .resource = NULL,
+ .num_resources = 0,
+};
+
static struct omap_board_config_kernel omap3_evm_config[] __initdata = {
};
@@ -632,6 +639,7 @@ static void __init omap3_evm_init_irq(void)
static struct platform_device *omap3_evm_devices[] __initdata = {
&omap3_evm_dss_device,
+ &omap3_evm_nop_usb_device,
};
static struct ehci_hcd_omap_platform_data ehci_pdata __initdata = {
@@ -680,9 +688,6 @@ static void __init omap3_evm_init(void)
omap_serial_init();
- /* OMAP3EVM uses ISP1504 phy and so register nop transceiver */
- usb_nop_xceiv_register();
-
if (get_omap3_evm_rev() >= OMAP3EVM_BOARD_GEN_2) {
/* enable EHCI VBUS using GPIO22 */
omap_mux_init_gpio(22, OMAP_PIN_INPUT_PULLUP);
diff --git a/arch/arm/mach-omap2/board-omap3stalker.c b/arch/arm/mach-omap2/board-omap3stalker.c
index f848ba8dbc1..d16fdbe1857 100644
--- a/arch/arm/mach-omap2/board-omap3stalker.c
+++ b/arch/arm/mach-omap2/board-omap3stalker.c
@@ -539,8 +539,7 @@ static void ads7846_dev_init(void)
gpio_direction_input(OMAP3_STALKER_TS_GPIO);
- omap_set_gpio_debounce(OMAP3_STALKER_TS_GPIO, 1);
- omap_set_gpio_debounce_time(OMAP3_STALKER_TS_GPIO, 0xa);
+ gpio_set_debounce(OMAP3_STALKER_TS_GPIO, 310);
}
static int ads7846_get_pendown_state(void)
diff --git a/arch/arm/mach-omap2/usb-ehci.c b/arch/arm/mach-omap2/usb-ehci.c
index c68f799e83c..465699f0d18 100644
--- a/arch/arm/mach-omap2/usb-ehci.c
+++ b/arch/arm/mach-omap2/usb-ehci.c
@@ -20,6 +20,7 @@
#include <linux/delay.h>
#include <linux/platform_device.h>
#include <linux/clk.h>
+#include <linux/dma-mapping.h>
#include <asm/io.h>
#include <plat/mux.h>
diff --git a/arch/arm/mach-pxa/palmtc.c b/arch/arm/mach-pxa/palmtc.c
index 033b567e50b..ce1104d1bc1 100644
--- a/arch/arm/mach-pxa/palmtc.c
+++ b/arch/arm/mach-pxa/palmtc.c
@@ -263,11 +263,11 @@ const struct matrix_keymap_data palmtc_keymap_data = {
.keymap_size = ARRAY_SIZE(palmtc_matrix_keys),
};
-const static unsigned int palmtc_keypad_row_gpios[] = {
+static const unsigned int palmtc_keypad_row_gpios[] = {
0, 9, 10, 11
};
-const static unsigned int palmtc_keypad_col_gpios[] = {
+static const unsigned int palmtc_keypad_col_gpios[] = {
18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 79, 80
};
diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c
index 4d2413ed0ff..c1048a35f18 100644
--- a/arch/arm/mach-pxa/spitz.c
+++ b/arch/arm/mach-pxa/spitz.c
@@ -818,6 +818,9 @@ static struct i2c_board_info akita_i2c_board_info[] = {
.type = "max7310",
.addr = 0x18,
.platform_data = &akita_ioexp,
+ }, {
+ .type = "wm8750",
+ .addr = 0x1b,
},
};
diff --git a/arch/arm/mach-ux500/Makefile b/arch/arm/mach-ux500/Makefile
index c7bc4199e3a..4556aea9c3c 100644
--- a/arch/arm/mach-ux500/Makefile
+++ b/arch/arm/mach-ux500/Makefile
@@ -7,4 +7,5 @@ obj-$(CONFIG_UX500_SOC_DB5500) += cpu-db5500.o devices-db5500.o
obj-$(CONFIG_UX500_SOC_DB8500) += cpu-db8500.o devices-db8500.o
obj-$(CONFIG_MACH_U8500_MOP) += board-mop500.o
obj-$(CONFIG_MACH_U5500) += board-u5500.o
-obj-$(CONFIG_SMP) += platsmp.o headsmp.o localtimer.o
+obj-$(CONFIG_SMP) += platsmp.o headsmp.o
+obj-$(CONFIG_LOCAL_TIMERS) += localtimer.o
diff --git a/arch/arm/mach-ux500/clock.c b/arch/arm/mach-ux500/clock.c
index 6544855af2f..fe84b9021c7 100644
--- a/arch/arm/mach-ux500/clock.c
+++ b/arch/arm/mach-ux500/clock.c
@@ -16,6 +16,7 @@
#include <asm/clkdev.h>
+#include <plat/mtu.h>
#include <mach/hardware.h>
#include "clock.h"
@@ -59,6 +60,9 @@
#define PRCM_DMACLK_MGT 0x074
#define PRCM_B2R2CLK_MGT 0x078
#define PRCM_TVCLK_MGT 0x07C
+#define PRCM_TCR 0x1C8
+#define PRCM_TCR_STOPPED (1 << 16)
+#define PRCM_TCR_DOZE_MODE (1 << 17)
#define PRCM_UNIPROCLK_MGT 0x278
#define PRCM_SSPCLK_MGT 0x280
#define PRCM_RNGCLK_MGT 0x284
@@ -120,10 +124,95 @@ void clk_disable(struct clk *clk)
}
EXPORT_SYMBOL(clk_disable);
+/*
+ * The MTU has a separate, rather complex muxing setup
+ * with alternative parents (peripheral cluster or
+ * ULP or fixed 32768 Hz) depending on settings
+ */
+static unsigned long clk_mtu_get_rate(struct clk *clk)
+{
+ void __iomem *addr = __io_address(U8500_PRCMU_BASE)
+ + PRCM_TCR;
+ u32 tcr = readl(addr);
+ int mtu = (int) clk->data;
+ /*
+ * One of these is selected eventually
+ * TODO: Replace the constant with a reference
+ * to the ULP source once this is modeled.
+ */
+ unsigned long clk32k = 32768;
+ unsigned long mturate;
+ unsigned long retclk;
+
+ /* Get the rate from the parent as a default */
+ if (clk->parent_periph)
+ mturate = clk_get_rate(clk->parent_periph);
+ else if (clk->parent_cluster)
+ mturate = clk_get_rate(clk->parent_cluster);
+ else
+ /* We need to be connected SOMEWHERE */
+ BUG();
+
+ /*
+ * Are we in doze mode?
+ * In this mode the parent peripheral or the fixed 32768 Hz
+ * clock is fed into the block.
+ */
+ if (!(tcr & PRCM_TCR_DOZE_MODE)) {
+ /*
+ * Here we're using the clock input from the APE ULP
+ * clock domain. But first: are the timers stopped?
+ */
+ if (tcr & PRCM_TCR_STOPPED) {
+ clk32k = 0;
+ mturate = 0;
+ } else {
+ /* Else default mode: 0 and 2.4 MHz */
+ clk32k = 0;
+ if (cpu_is_u5500())
+ /* DB5500 divides by 8 */
+ mturate /= 8;
+ else if (cpu_is_u8500ed()) {
+ /*
+ * This clocking setting must not be used
+ * in the ED chip, it is simply not
+ * connected anywhere!
+ */
+ mturate = 0;
+ BUG();
+ } else
+ /*
+ * In this mode the ulp38m4 clock is divided
+ * by a factor 16, on the DB8500 typically
+ * 38400000 / 16 ~ 2.4 MHz.
+ * TODO: Replace the constant with a reference
+ * to the ULP source once this is modeled.
+ */
+ mturate = 38400000 / 16;
+ }
+ }
+
+ /* Return the clock selected for this MTU */
+ if (tcr & (1 << mtu))
+ retclk = clk32k;
+ else
+ retclk = mturate;
+
+ pr_info("MTU%d clock rate: %lu Hz\n", mtu, retclk);
+ return retclk;
+}
+
unsigned long clk_get_rate(struct clk *clk)
{
unsigned long rate;
+ /*
+ * If there is a custom getrate callback for this clock,
+ * it will take precedence.
+ */
+ if (clk->get_rate)
+ return clk->get_rate(clk);
+
if (clk->ops && clk->ops->get_rate)
return clk->ops->get_rate(clk);
@@ -341,8 +430,9 @@ static DEFINE_PRCC_CLK(5, usb_v1, 0, 0, NULL);
/* Peripheral Cluster #6 */
-static DEFINE_PRCC_CLK(6, mtu1_v1, 8, -1, NULL);
-static DEFINE_PRCC_CLK(6, mtu0_v1, 7, -1, NULL);
+/* MTU ID in data */
+static DEFINE_PRCC_CLK_CUSTOM(6, mtu1_v1, 8, -1, NULL, clk_mtu_get_rate, 1);
+static DEFINE_PRCC_CLK_CUSTOM(6, mtu0_v1, 7, -1, NULL, clk_mtu_get_rate, 0);
static DEFINE_PRCC_CLK(6, cfgreg_v1, 6, 6, NULL);
static DEFINE_PRCC_CLK(6, dmc_ed, 6, 6, NULL);
static DEFINE_PRCC_CLK(6, hash1, 5, -1, NULL);
@@ -357,8 +447,9 @@ static DEFINE_PRCC_CLK(6, rng_v1, 0, 0, &clk_rngclk);
/* Peripheral Cluster #7 */
static DEFINE_PRCC_CLK(7, tzpc0_ed, 4, -1, NULL);
-static DEFINE_PRCC_CLK(7, mtu1_ed, 3, -1, NULL);
-static DEFINE_PRCC_CLK(7, mtu0_ed, 2, -1, NULL);
+/* MTU ID in data */
+static DEFINE_PRCC_CLK_CUSTOM(7, mtu1_ed, 3, -1, NULL, clk_mtu_get_rate, 1);
+static DEFINE_PRCC_CLK_CUSTOM(7, mtu0_ed, 2, -1, NULL, clk_mtu_get_rate, 0);
static DEFINE_PRCC_CLK(7, wdg_ed, 1, -1, NULL);
static DEFINE_PRCC_CLK(7, cfgreg_ed, 0, -1, NULL);
@@ -503,15 +594,17 @@ static struct clk_lookup u8500_v1_clks[] = {
CLK(uiccclk, "uicc", NULL),
};
-static int __init clk_init(void)
+int __init clk_init(void)
{
if (cpu_is_u8500ed()) {
clk_prcmu_ops.enable = clk_prcmu_ed_enable;
clk_prcmu_ops.disable = clk_prcmu_ed_disable;
+ clk_per6clk.rate = 100000000;
} else if (cpu_is_u5500()) {
/* Clock tree for U5500 not implemented yet */
clk_prcc_ops.enable = clk_prcc_ops.disable = NULL;
clk_prcmu_ops.enable = clk_prcmu_ops.disable = NULL;
+ clk_per6clk.rate = 26000000;
}
clkdev_add_table(u8500_common_clks, ARRAY_SIZE(u8500_common_clks));
@@ -522,4 +615,3 @@ static int __init clk_init(void)
return 0;
}
-arch_initcall(clk_init);
diff --git a/arch/arm/mach-ux500/clock.h b/arch/arm/mach-ux500/clock.h
index e4f99b65026..a0580250152 100644
--- a/arch/arm/mach-ux500/clock.h
+++ b/arch/arm/mach-ux500/clock.h
@@ -28,6 +28,9 @@ struct clkops {
* @ops: pointer to clkops struct used to control this clock
* @name: name, for debugging
* @enabled: refcount. positive if enabled, zero if disabled
+ * @get_rate: custom callback for getting the clock rate
+ * @data: custom per-clock data for example for the get_rate
+ * callback
* @rate: fixed rate for clocks which don't implement
* ops->getrate
* @prcmu_cg_off: address offset of the combined enable/disable register
@@ -67,6 +70,8 @@ struct clk {
const struct clkops *ops;
const char *name;
unsigned int enabled;
+ unsigned long (*get_rate)(struct clk *);
+ void *data;
unsigned long rate;
struct list_head list;
@@ -117,9 +122,26 @@ struct clk clk_##_name = { \
.parent_periph = _kernclk \
}
+#define DEFINE_PRCC_CLK_CUSTOM(_pclust, _name, _bus_en, _kernel_en, _kernclk, _callback, _data) \
+struct clk clk_##_name = { \
+ .name = #_name, \
+ .ops = &clk_prcc_ops, \
+ .cluster = _pclust, \
+ .prcc_bus = _bus_en, \
+ .prcc_kernel = _kernel_en, \
+ .parent_cluster = &clk_per##_pclust##clk, \
+ .parent_periph = _kernclk, \
+ .get_rate = _callback, \
+ .data = (void *) _data \
+ }
+
+
#define CLK(_clk, _devname, _conname) \
{ \
.clk = &clk_##_clk, \
.dev_id = _devname, \
.con_id = _conname, \
}
+
+int __init clk_db8500_ed_fixup(void);
+int __init clk_init(void);
diff --git a/arch/arm/mach-ux500/cpu.c b/arch/arm/mach-ux500/cpu.c
index d81ad023963..e0fd747e447 100644
--- a/arch/arm/mach-ux500/cpu.c
+++ b/arch/arm/mach-ux500/cpu.c
@@ -62,6 +62,12 @@ void __init ux500_init_irq(void)
{
gic_dist_init(0, __io_address(UX500_GIC_DIST_BASE), 29);
gic_cpu_init(0, __io_address(UX500_GIC_CPU_BASE));
+
+ /*
+ * Init clocks here so that they are available for system timer
+ * initialization.
+ */
+ clk_init();
}
#ifdef CONFIG_CACHE_L2X0
diff --git a/arch/arm/mach-versatile/Kconfig b/arch/arm/mach-versatile/Kconfig
index c781f30c836..00b59aec19b 100644
--- a/arch/arm/mach-versatile/Kconfig
+++ b/arch/arm/mach-versatile/Kconfig
@@ -3,14 +3,14 @@ menu "Versatile platform type"
config ARCH_VERSATILE_PB
bool "Support Versatile/PB platform"
- select CPU_ARM926T
+ select CPU_V7
default y
help
Include support for the ARM(R) Versatile/PB platform.
config MACH_VERSATILE_AB
bool "Support Versatile/AB platform"
- select CPU_ARM926T
+ select CPU_V7
help
Include support for the ARM(R) Versatile/AP platform.
diff --git a/arch/arm/mm/copypage-feroceon.c b/arch/arm/mm/copypage-feroceon.c
index 5eb4fd93893..ac163de7dc0 100644
--- a/arch/arm/mm/copypage-feroceon.c
+++ b/arch/arm/mm/copypage-feroceon.c
@@ -18,7 +18,7 @@ feroceon_copy_user_page(void *kto, const void *kfrom)
{
asm("\
stmfd sp!, {r4-r9, lr} \n\
- mov ip, %0 \n\
+ mov ip, %2 \n\
1: mov lr, r1 \n\
ldmia r1!, {r2 - r9} \n\
pld [lr, #32] \n\
@@ -64,7 +64,7 @@ feroceon_copy_user_page(void *kto, const void *kfrom)
mcr p15, 0, ip, c7, c10, 4 @ drain WB\n\
ldmfd sp!, {r4-r9, pc}"
:
- : "I" (PAGE_SIZE));
+ : "r" (kto), "r" (kfrom), "I" (PAGE_SIZE));
}
void feroceon_copy_user_highpage(struct page *to, struct page *from,
diff --git a/arch/arm/mm/copypage-v4wb.c b/arch/arm/mm/copypage-v4wb.c
index 7c2eb55cd4a..cb589cbb2b6 100644
--- a/arch/arm/mm/copypage-v4wb.c
+++ b/arch/arm/mm/copypage-v4wb.c
@@ -27,7 +27,7 @@ v4wb_copy_user_page(void *kto, const void *kfrom)
{
asm("\
stmfd sp!, {r4, lr} @ 2\n\
- mov r2, %0 @ 1\n\
+ mov r2, %2 @ 1\n\
ldmia r1!, {r3, r4, ip, lr} @ 4\n\
1: mcr p15, 0, r0, c7, c6, 1 @ 1 invalidate D line\n\
stmia r0!, {r3, r4, ip, lr} @ 4\n\
@@ -44,7 +44,7 @@ v4wb_copy_user_page(void *kto, const void *kfrom)
mcr p15, 0, r1, c7, c10, 4 @ 1 drain WB\n\
ldmfd sp!, {r4, pc} @ 3"
:
- : "I" (PAGE_SIZE / 64));
+ : "r" (kto), "r" (kfrom), "I" (PAGE_SIZE / 64));
}
void v4wb_copy_user_highpage(struct page *to, struct page *from,
diff --git a/arch/arm/mm/copypage-v4wt.c b/arch/arm/mm/copypage-v4wt.c
index 172e6a55458..30c7d048a32 100644
--- a/arch/arm/mm/copypage-v4wt.c
+++ b/arch/arm/mm/copypage-v4wt.c
@@ -25,7 +25,7 @@ v4wt_copy_user_page(void *kto, const void *kfrom)
{
asm("\
stmfd sp!, {r4, lr} @ 2\n\
- mov r2, %0 @ 1\n\
+ mov r2, %2 @ 1\n\
ldmia r1!, {r3, r4, ip, lr} @ 4\n\
1: stmia r0!, {r3, r4, ip, lr} @ 4\n\
ldmia r1!, {r3, r4, ip, lr} @ 4+1\n\
@@ -40,7 +40,7 @@ v4wt_copy_user_page(void *kto, const void *kfrom)
mcr p15, 0, r2, c7, c7, 0 @ flush ID cache\n\
ldmfd sp!, {r4, pc} @ 3"
:
- : "I" (PAGE_SIZE / 64));
+ : "r" (kto), "r" (kfrom), "I" (PAGE_SIZE / 64));
}
void v4wt_copy_user_highpage(struct page *to, struct page *from,
diff --git a/arch/arm/mm/copypage-xsc3.c b/arch/arm/mm/copypage-xsc3.c
index 747ad4140fc..f9cde0702f1 100644
--- a/arch/arm/mm/copypage-xsc3.c
+++ b/arch/arm/mm/copypage-xsc3.c
@@ -34,7 +34,7 @@ xsc3_mc_copy_user_page(void *kto, const void *kfrom)
{
asm("\
stmfd sp!, {r4, r5, lr} \n\
- mov lr, %0 \n\
+ mov lr, %2 \n\
\n\
pld [r1, #0] \n\
pld [r1, #32] \n\
@@ -67,7 +67,7 @@ xsc3_mc_copy_user_page(void *kto, const void *kfrom)
\n\
ldmfd sp!, {r4, r5, pc}"
:
- : "I" (PAGE_SIZE / 64 - 1));
+ : "r" (kto), "r" (kfrom), "I" (PAGE_SIZE / 64 - 1));
}
void xsc3_mc_copy_user_highpage(struct page *to, struct page *from,
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index c4de90fbb5c..7d1b2db2817 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -24,6 +24,9 @@
#include <asm/tlbflush.h>
#include <asm/sizes.h>
+struct dma_map_ops *dma_ops;
+EXPORT_SYMBOL(dma_ops);
+
/* Sanity check size */
#ifdef CONFIG_MMU
#if (CONSISTENT_DMA_SIZE % SZ_2M)
diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
index 92f5801f99c..cbfb2edcf7d 100644
--- a/arch/arm/mm/fault.c
+++ b/arch/arm/mm/fault.c
@@ -393,6 +393,9 @@ do_translation_fault(unsigned long addr, unsigned int fsr,
if (addr < TASK_SIZE)
return do_page_fault(addr, fsr, regs);
+ if (user_mode(regs))
+ goto bad_area;
+
index = pgd_index(addr);
/*
diff --git a/arch/arm/mm/highmem.c b/arch/arm/mm/highmem.c
index 77b030f5ec0..086816b205b 100644
--- a/arch/arm/mm/highmem.c
+++ b/arch/arm/mm/highmem.c
@@ -48,7 +48,16 @@ void *kmap_atomic(struct page *page, enum km_type type)
debug_kmap_atomic(type);
- kmap = kmap_high_get(page);
+#ifdef CONFIG_DEBUG_HIGHMEM
+ /*
+ * There is no cache coherency issue when non VIVT, so force the
+ * dedicated kmap usage for better debugging purposes in that case.
+ */
+ if (!cache_is_vivt())
+ kmap = NULL;
+ else
+#endif
+ kmap = kmap_high_get(page);
if (kmap)
return kmap;
diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
index 1ba6cf5a2c0..f6a99946532 100644
--- a/arch/arm/mm/init.c
+++ b/arch/arm/mm/init.c
@@ -678,10 +678,10 @@ void __init mem_init(void)
void free_initmem(void)
{
#ifdef CONFIG_HAVE_TCM
- extern char *__tcm_start, *__tcm_end;
+ extern char __tcm_start, __tcm_end;
- totalram_pages += free_area(__phys_to_pfn(__pa(__tcm_start)),
- __phys_to_pfn(__pa(__tcm_end)),
+ totalram_pages += free_area(__phys_to_pfn(__pa(&__tcm_start)),
+ __phys_to_pfn(__pa(&__tcm_end)),
"TCM link");
#endif
diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
index f5abc51c5a0..4f5b39687df 100644
--- a/arch/arm/mm/mmap.c
+++ b/arch/arm/mm/mmap.c
@@ -7,6 +7,7 @@
#include <linux/shm.h>
#include <linux/sched.h>
#include <linux/io.h>
+#include <linux/random.h>
#include <asm/cputype.h>
#include <asm/system.h>
@@ -80,6 +81,9 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
start_addr = addr = TASK_UNMAPPED_BASE;
mm->cached_hole_size = 0;
}
+ /* 8 bits of randomness in 20 address space bits */
+ if (current->flags & PF_RANDOMIZE)
+ addr += (get_random_int() % (1 << 8)) << PAGE_SHIFT;
full_search:
if (do_align)
diff --git a/arch/arm/plat-nomadik/timer.c b/arch/arm/plat-nomadik/timer.c
index 0ff3798769a..08aaa4a7f65 100644
--- a/arch/arm/plat-nomadik/timer.c
+++ b/arch/arm/plat-nomadik/timer.c
@@ -13,7 +13,9 @@
#include <linux/irq.h>
#include <linux/io.h>
#include <linux/clockchips.h>
+#include <linux/clk.h>
#include <linux/jiffies.h>
+#include <linux/err.h>
#include <asm/mach/time.h>
#include <plat/mtu.h>
@@ -124,13 +126,25 @@ static struct irqaction nmdk_timer_irq = {
void __init nmdk_timer_init(void)
{
unsigned long rate;
- u32 cr = MTU_CRn_32BITS;;
+ struct clk *clk0;
+ struct clk *clk1;
+ u32 cr;
+
+ clk0 = clk_get_sys("mtu0", NULL);
+ BUG_ON(IS_ERR(clk0));
+
+ clk1 = clk_get_sys("mtu1", NULL);
+ BUG_ON(IS_ERR(clk1));
+
+ clk_enable(clk0);
+ clk_enable(clk1);
/*
* Tick rate is 2.4MHz for Nomadik and 110MHz for ux500:
* use a divide-by-16 counter if it's more than 16MHz
*/
- rate = CLOCK_TICK_RATE;
+ cr = MTU_CRn_32BITS;;
+ rate = clk_get_rate(clk0);
if (rate > 16 << 20) {
rate /= 16;
cr |= MTU_CRn_PRESCALE_16;
@@ -153,6 +167,14 @@ void __init nmdk_timer_init(void)
nmdk_clksrc.name);
/* Timer 1 is used for events, fix according to rate */
+ cr = MTU_CRn_32BITS;
+ rate = clk_get_rate(clk1);
+ if (rate > 16 << 20) {
+ rate /= 16;
+ cr |= MTU_CRn_PRESCALE_16;
+ } else {
+ cr |= MTU_CRn_PRESCALE_1;
+ }
writel(cr | MTU_CRn_ONESHOT, mtu_base + MTU_CR(1)); /* off, currently */
nmdk_clkevt.mult = div_sc(rate, NSEC_PER_SEC, nmdk_clkevt.shift);
nmdk_clkevt.max_delta_ns =
diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S
index 66dc2d03b7f..d66cead97d2 100644
--- a/arch/arm/vfp/vfphw.S
+++ b/arch/arm/vfp/vfphw.S
@@ -277,7 +277,7 @@ ENTRY(vfp_put_double)
#ifdef CONFIG_VFPv3
@ d16 - d31 registers
.irp dr,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
-1: mcrr p11, 3, r1, r2, c\dr @ fmdrr r1, r2, d\dr
+1: mcrr p11, 3, r0, r1, c\dr @ fmdrr r0, r1, d\dr
mov pc, lr
.org 1b + 8
.endr
diff --git a/arch/frv/kernel/gdb-stub.c b/arch/frv/kernel/gdb-stub.c
index 84d103c33c9..a4dba6b20bd 100644
--- a/arch/frv/kernel/gdb-stub.c
+++ b/arch/frv/kernel/gdb-stub.c
@@ -1789,6 +1789,12 @@ void gdbstub(int sigval)
flush_cache = 1;
break;
+ /* pNN: Read value of reg N and return it */
+ case 'p':
+ /* return no value, indicating that we don't support
+ * this command and that gdb should use 'g' instead */
+ break;
+
/* PNN,=RRRRRRRR: Write value R to reg N return OK */
case 'P':
ptr = &input_buffer[1];
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
index d5f4e916120..21b701374f7 100644
--- a/arch/ia64/kvm/kvm-ia64.c
+++ b/arch/ia64/kvm/kvm-ia64.c
@@ -144,6 +144,7 @@ int kvm_arch_hardware_enable(void *garbage)
VP_INIT_ENV : VP_INIT_ENV_INITALIZE,
__pa(kvm_vm_buffer), KVM_VM_BUFFER_BASE, &tmp_base);
if (status != 0) {
+ spin_unlock(&vp_lock);
printk(KERN_WARNING"kvm: Failed to Enable VT Support!!!!\n");
return -EINVAL;
}
diff --git a/arch/microblaze/include/asm/page.h b/arch/microblaze/include/asm/page.h
index de493f86d28..464ff32bee3 100644
--- a/arch/microblaze/include/asm/page.h
+++ b/arch/microblaze/include/asm/page.h
@@ -34,6 +34,8 @@
/* MS be sure that SLAB allocates aligned objects */
#define ARCH_KMALLOC_MINALIGN L1_CACHE_BYTES
+#define ARCH_SLAB_MINALIGN L1_CACHE_BYTES
+
#define PAGE_UP(addr) (((addr)+((PAGE_SIZE)-1))&(~((PAGE_SIZE)-1)))
#define PAGE_DOWN(addr) ((addr)&(~((PAGE_SIZE)-1)))
diff --git a/arch/microblaze/kernel/dma.c b/arch/microblaze/kernel/dma.c
index 9dcd90b5df5..79c74659f20 100644
--- a/arch/microblaze/kernel/dma.c
+++ b/arch/microblaze/kernel/dma.c
@@ -90,7 +90,6 @@ static int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl,
/* FIXME this part of code is untested */
for_each_sg(sgl, sg, nents, i) {
sg->dma_address = sg_phys(sg) + get_dma_direct_offset(dev);
- sg->dma_length = sg->length;
__dma_sync_page(page_to_phys(sg_page(sg)), sg->offset,
sg->length, direction);
}
diff --git a/arch/microblaze/pci/pci-common.c b/arch/microblaze/pci/pci-common.c
index 9cb782b8e03..23be25fec4d 100644
--- a/arch/microblaze/pci/pci-common.c
+++ b/arch/microblaze/pci/pci-common.c
@@ -1277,6 +1277,7 @@ void pcibios_allocate_bus_resources(struct pci_bus *bus)
printk(KERN_WARNING "PCI: Cannot allocate resource region "
"%d of PCI bridge %d, will remap\n", i, bus->number);
clear_resource:
+ res->start = res->end = 0;
res->flags = 0;
}
diff --git a/arch/mn10300/unit-asb2305/pci-asb2305.c b/arch/mn10300/unit-asb2305/pci-asb2305.c
index d6119b879a9..45b40ac6c46 100644
--- a/arch/mn10300/unit-asb2305/pci-asb2305.c
+++ b/arch/mn10300/unit-asb2305/pci-asb2305.c
@@ -117,6 +117,7 @@ static void __init pcibios_allocate_bus_resources(struct list_head *bus_list)
* Invalidate the resource to prevent
* child resource allocations in this
* range. */
+ r->start = r->end = 0;
r->flags = 0;
}
}
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 328774bd41e..f3be78096ad 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -982,6 +982,8 @@ source "net/Kconfig"
source "drivers/Kconfig"
+source "ubuntu/Kconfig"
+
source "fs/Kconfig"
source "arch/powerpc/sysdev/qe_lib/Kconfig"
diff --git a/arch/powerpc/include/asm/ptrace.h b/arch/powerpc/include/asm/ptrace.h
index 5d8be041622..602efcd9610 100644
--- a/arch/powerpc/include/asm/ptrace.h
+++ b/arch/powerpc/include/asm/ptrace.h
@@ -24,14 +24,14 @@
* 2 of the License, or (at your option) any later version.
*/
+#ifndef __ASSEMBLY__
+
#ifdef __KERNEL__
#include <linux/types.h>
#else
#include <stdint.h>
#endif
-#ifndef __ASSEMBLY__
-
struct pt_regs {
unsigned long gpr[32];
unsigned long nip;
diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c
index 6646005dffb..5b38f6ae2b2 100644
--- a/arch/powerpc/kernel/pci-common.c
+++ b/arch/powerpc/kernel/pci-common.c
@@ -1309,6 +1309,7 @@ void pcibios_allocate_bus_resources(struct pci_bus *bus)
printk(KERN_WARNING "PCI: Cannot allocate resource region "
"%d of PCI bridge %d, will remap\n", i, bus->number);
clear_resource:
+ res->start = res->end = 0;
res->flags = 0;
}
diff --git a/arch/powerpc/kvm/e500.c b/arch/powerpc/kvm/e500.c
index bc2b4004eb2..e8a00b0c444 100644
--- a/arch/powerpc/kvm/e500.c
+++ b/arch/powerpc/kvm/e500.c
@@ -164,7 +164,7 @@ static int __init kvmppc_e500_init(void)
return kvm_init(NULL, sizeof(struct kvmppc_vcpu_e500), 0, THIS_MODULE);
}
-static void __init kvmppc_e500_exit(void)
+static void __exit kvmppc_e500_exit(void)
{
kvmppc_booke_exit();
}
diff --git a/arch/powerpc/oprofile/op_model_cell.c b/arch/powerpc/oprofile/op_model_cell.c
index 2c9e5226729..7fd90d02d8c 100644
--- a/arch/powerpc/oprofile/op_model_cell.c
+++ b/arch/powerpc/oprofile/op_model_cell.c
@@ -1077,7 +1077,7 @@ static int calculate_lfsr(int n)
index = ENTRIES-1;
/* make sure index is valid */
- if ((index > ENTRIES) || (index < 0))
+ if ((index >= ENTRIES) || (index < 0))
index = ENTRIES-1;
return initial_lfsr[index];
diff --git a/arch/s390/appldata/appldata_os.c b/arch/s390/appldata/appldata_os.c
index 55c80ffd42b..92f1cb745d6 100644
--- a/arch/s390/appldata/appldata_os.c
+++ b/arch/s390/appldata/appldata_os.c
@@ -181,7 +181,7 @@ static int __init appldata_os_init(void)
goto out;
}
- appldata_os_data = kzalloc(max_size, GFP_DMA);
+ appldata_os_data = kzalloc(max_size, GFP_KERNEL | GFP_DMA);
if (appldata_os_data == NULL) {
rc = -ENOMEM;
goto out;
diff --git a/arch/s390/defconfig b/arch/s390/defconfig
index bcd6884985a..253f158db66 100644
--- a/arch/s390/defconfig
+++ b/arch/s390/defconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Linux kernel version: 2.6.34-rc3
-# Fri Apr 9 09:57:10 2010
+# Linux kernel version: 2.6.35-rc1
+# Fri Jun 4 11:32:40 2010
#
CONFIG_SCHED_MC=y
CONFIG_MMU=y
@@ -35,11 +35,13 @@ CONFIG_CONSTRUCTORS=y
CONFIG_EXPERIMENTAL=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_CROSS_COMPILE=""
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_HAVE_KERNEL_GZIP=y
CONFIG_HAVE_KERNEL_BZIP2=y
CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_BZIP2 is not set
# CONFIG_KERNEL_LZMA is not set
@@ -77,6 +79,7 @@ CONFIG_CGROUP_NS=y
# CONFIG_CGROUP_CPUACCT is not set
# CONFIG_RESOURCE_COUNTERS is not set
# CONFIG_CGROUP_SCHED is not set
+# CONFIG_BLK_CGROUP is not set
CONFIG_SYSFS_DEPRECATED=y
CONFIG_SYSFS_DEPRECATED_V2=y
# CONFIG_RELAY is not set
@@ -157,7 +160,6 @@ CONFIG_STOP_MACHINE=y
CONFIG_BLOCK=y
CONFIG_BLK_DEV_BSG=y
# CONFIG_BLK_DEV_INTEGRITY is not set
-# CONFIG_BLK_CGROUP is not set
CONFIG_BLOCK_COMPAT=y
#
@@ -166,7 +168,6 @@ CONFIG_BLOCK_COMPAT=y
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
-# CONFIG_CFQ_GROUP_IOSCHED is not set
CONFIG_DEFAULT_DEADLINE=y
# CONFIG_DEFAULT_CFQ is not set
# CONFIG_DEFAULT_NOOP is not set
@@ -247,7 +248,6 @@ CONFIG_64BIT=y
CONFIG_SMP=y
CONFIG_NR_CPUS=32
CONFIG_HOTPLUG_CPU=y
-# CONFIG_SCHED_BOOK is not set
CONFIG_COMPAT=y
CONFIG_SYSVIPC_COMPAT=y
CONFIG_AUDIT_ARCH=y
@@ -320,7 +320,6 @@ CONFIG_COMPAT_BINFMT_ELF=y
# CONFIG_HAVE_AOUT is not set
CONFIG_BINFMT_MISC=m
CONFIG_FORCE_MAX_ZONEORDER=9
-# CONFIG_PROCESS_DEBUG is not set
CONFIG_PFAULT=y
# CONFIG_SHARED_KERNEL is not set
# CONFIG_CMM is not set
@@ -457,6 +456,7 @@ CONFIG_NF_CONNTRACK=m
# CONFIG_IP6_NF_IPTABLES is not set
# CONFIG_IP_DCCP is not set
CONFIG_IP_SCTP=m
+# CONFIG_NET_SCTPPROBE is not set
# CONFIG_SCTP_DBG_MSG is not set
# CONFIG_SCTP_DBG_OBJCNT is not set
# CONFIG_SCTP_HMAC_NONE is not set
@@ -465,6 +465,7 @@ CONFIG_SCTP_HMAC_MD5=y
# CONFIG_RDS is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
+# CONFIG_L2TP is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
@@ -525,6 +526,7 @@ CONFIG_NET_ACT_NAT=m
# CONFIG_NET_CLS_IND is not set
CONFIG_NET_SCH_FIFO=y
# CONFIG_DCB is not set
+CONFIG_RPS=y
#
# Network testing
@@ -546,6 +548,7 @@ CONFIG_CAN_VCAN=m
# CONFIG_WIMAX is not set
# CONFIG_RFKILL is not set
# CONFIG_NET_9P is not set
+# CONFIG_CAIF is not set
# CONFIG_PCMCIA is not set
CONFIG_CCW=y
@@ -728,6 +731,7 @@ CONFIG_VIRTIO_NET=m
# Character devices
#
CONFIG_DEVKMEM=y
+# CONFIG_N_GSM is not set
CONFIG_UNIX98_PTYS=y
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
CONFIG_LEGACY_PTYS=y
@@ -775,6 +779,7 @@ CONFIG_S390_TAPE_34XX=m
# CONFIG_MONREADER is not set
CONFIG_MONWRITER=m
CONFIG_S390_VMUR=m
+# CONFIG_RAMOOPS is not set
#
# PPS support
@@ -788,10 +793,6 @@ CONFIG_S390_VMUR=m
# CONFIG_NEW_LEDS is not set
CONFIG_ACCESSIBILITY=y
# CONFIG_AUXDISPLAY is not set
-
-#
-# TI VLYNQ
-#
# CONFIG_STAGING is not set
#
@@ -976,6 +977,7 @@ CONFIG_DEBUG_MEMORY_INIT=y
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
CONFIG_DEBUG_FORCE_WEAK_PER_CPU=y
# CONFIG_LKDTM is not set
+# CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set
# CONFIG_FAULT_INJECTION is not set
# CONFIG_LATENCYTOP is not set
CONFIG_SYSCTL_SYSCALL_CHECK=y
@@ -1010,6 +1012,7 @@ CONFIG_BRANCH_PROFILE_NONE=y
CONFIG_KPROBE_EVENT=y
# CONFIG_RING_BUFFER_BENCHMARK is not set
# CONFIG_DYNAMIC_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
CONFIG_SAMPLES=y
# CONFIG_SAMPLE_TRACEPOINTS is not set
# CONFIG_SAMPLE_TRACE_EVENTS is not set
diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
index 639380a0c45..22cfd634c35 100644
--- a/arch/s390/kernel/module.c
+++ b/arch/s390/kernel/module.c
@@ -55,8 +55,10 @@ void *module_alloc(unsigned long size)
/* Free memory returned from module_alloc */
void module_free(struct module *mod, void *module_region)
{
- vfree(mod->arch.syminfo);
- mod->arch.syminfo = NULL;
+ if (mod) {
+ vfree(mod->arch.syminfo);
+ mod->arch.syminfo = NULL;
+ }
vfree(module_region);
}
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 8093e6f47f4..ae370581687 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -761,7 +761,7 @@ static int __init kvm_s390_init(void)
* to hold the maximum amount of facilites. On the other hand, we
* only set facilities that are known to work in KVM.
*/
- facilities = (unsigned long long *) get_zeroed_page(GFP_DMA);
+ facilities = (unsigned long long *) get_zeroed_page(GFP_KERNEL|GFP_DMA);
if (!facilities) {
kvm_exit();
return -ENOMEM;
diff --git a/arch/s390/kvm/sigp.c b/arch/s390/kvm/sigp.c
index eff3c5989b4..702276f5e2f 100644
--- a/arch/s390/kvm/sigp.c
+++ b/arch/s390/kvm/sigp.c
@@ -113,7 +113,7 @@ static int __inject_sigp_stop(struct kvm_s390_local_interrupt *li, int action)
{
struct kvm_s390_interrupt_info *inti;
- inti = kzalloc(sizeof(*inti), GFP_KERNEL);
+ inti = kzalloc(sizeof(*inti), GFP_ATOMIC);
if (!inti)
return -ENOMEM;
inti->type = KVM_S390_SIGP_STOP;
diff --git a/arch/s390/mm/extmem.c b/arch/s390/mm/extmem.c
index 6409fd57eb0..3cc95dd0a3a 100644
--- a/arch/s390/mm/extmem.c
+++ b/arch/s390/mm/extmem.c
@@ -105,7 +105,7 @@ static int
dcss_set_subcodes(void)
{
#ifdef CONFIG_64BIT
- char *name = kmalloc(8 * sizeof(char), GFP_DMA);
+ char *name = kmalloc(8 * sizeof(char), GFP_KERNEL | GFP_DMA);
unsigned long rx, ry;
int rc;
@@ -252,12 +252,13 @@ dcss_diag_translate_rc (int vm_rc) {
static int
query_segment_type (struct dcss_segment *seg)
{
- struct qin64 *qin = kmalloc (sizeof(struct qin64), GFP_DMA);
- struct qout64 *qout = kmalloc (sizeof(struct qout64), GFP_DMA);
-
- int diag_cc, rc, i;
unsigned long dummy, vmrc;
+ int diag_cc, rc, i;
+ struct qout64 *qout;
+ struct qin64 *qin;
+ qin = kmalloc(sizeof(*qin), GFP_KERNEL | GFP_DMA);
+ qout = kmalloc(sizeof(*qout), GFP_KERNEL | GFP_DMA);
if ((qin == NULL) || (qout == NULL)) {
rc = -ENOMEM;
goto out_free;
@@ -286,7 +287,7 @@ query_segment_type (struct dcss_segment *seg)
copy data for the new format. */
if (segext_scode == DCSS_SEGEXT) {
struct qout64_old *qout_old;
- qout_old = kzalloc(sizeof(struct qout64_old), GFP_DMA);
+ qout_old = kzalloc(sizeof(*qout_old), GFP_KERNEL | GFP_DMA);
if (qout_old == NULL) {
rc = -ENOMEM;
goto out_free;
@@ -407,11 +408,11 @@ segment_overlaps_others (struct dcss_segment *seg)
static int
__segment_load (char *name, int do_nonshared, unsigned long *addr, unsigned long *end)
{
- struct dcss_segment *seg = kmalloc(sizeof(struct dcss_segment),
- GFP_DMA);
- int rc, diag_cc;
unsigned long start_addr, end_addr, dummy;
+ struct dcss_segment *seg;
+ int rc, diag_cc;
+ seg = kmalloc(sizeof(*seg), GFP_KERNEL | GFP_DMA);
if (seg == NULL) {
rc = -ENOMEM;
goto out;
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index dcb0593b4a6..d01b38459a1 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -390,6 +390,12 @@ config X86_UV
# Following is an alphabetically sorted list of 32 bit extended platforms
# Please maintain the alphabetic order if and when there are additions
+config X86_LPIA
+ bool "LPIA-compatible"
+ depends on X86_32 && X86_PC
+ help
+ Choose this option if your computer is an LPIA platform.
+
config X86_ELAN
bool "AMD Elan"
depends on X86_32
@@ -870,6 +876,14 @@ config X86_MCE_INTEL
Additional support for intel specific MCE features such as
the thermal monitor.
+config X86_MCE_XEON75XX
+ tristate "Intel Xeon 7500 series corrected memory error driver"
+ depends on X86_MCE_INTEL && PCI
+ ---help---
+ Add support for a Intel Xeon 7500 series specific memory error driver.
+ This allows to report the DIMM and physical address on a corrected
+ memory error machine check event.
+
config X86_MCE_AMD
def_bool y
prompt "AMD MCE features"
@@ -2117,6 +2131,8 @@ source "net/Kconfig"
source "drivers/Kconfig"
+source "ubuntu/Kconfig"
+
source "drivers/firmware/Kconfig"
source "fs/Kconfig"
diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
index 617bd56b307..526248dd31e 100644
--- a/arch/x86/include/asm/desc.h
+++ b/arch/x86/include/asm/desc.h
@@ -5,6 +5,7 @@
#include <asm/ldt.h>
#include <asm/mmu.h>
#include <linux/smp.h>
+#include <linux/mm_types.h>
static inline void fill_ldt(struct desc_struct *desc,
const struct user_desc *info)
@@ -93,6 +94,9 @@ static inline int desc_empty(const void *ptr)
#define load_TLS(t, cpu) native_load_tls(t, cpu)
#define set_ldt native_set_ldt
+#ifdef CONFIG_X86_32
+#define load_user_cs_desc native_load_user_cs_desc
+#endif /*CONFIG_X86_32*/
#define write_ldt_entry(dt, entry, desc) \
native_write_ldt_entry(dt, entry, desc)
@@ -392,4 +396,25 @@ static inline void set_system_intr_gate_ist(int n, void *addr, unsigned ist)
_set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS);
}
+#ifdef CONFIG_X86_32
+static inline void set_user_cs(struct desc_struct *desc, unsigned long limit)
+{
+ limit = (limit - 1) / PAGE_SIZE;
+ desc->a = limit & 0xffff;
+ desc->b = (limit & 0xf0000) | 0x00c0fb00;
+}
+
+static inline void native_load_user_cs_desc(int cpu, struct mm_struct *mm)
+{
+ get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS] = (mm)->context.user_cs;
+}
+
+#define arch_add_exec_range arch_add_exec_range
+#define arch_remove_exec_range arch_remove_exec_range
+#define arch_flush_exec_range arch_flush_exec_range
+extern void arch_add_exec_range(struct mm_struct *mm, unsigned long limit);
+extern void arch_remove_exec_range(struct mm_struct *mm, unsigned long limit);
+extern void arch_flush_exec_range(struct mm_struct *mm);
+#endif /* CONFIG_X86_32 */
+
#endif /* _ASM_X86_DESC_H */
diff --git a/arch/x86/include/asm/dma-mapping.h b/arch/x86/include/asm/dma-mapping.h
index ac91eed2106..cc17b3bc477 100644
--- a/arch/x86/include/asm/dma-mapping.h
+++ b/arch/x86/include/asm/dma-mapping.h
@@ -152,8 +152,6 @@ static inline void dma_free_coherent(struct device *dev, size_t size,
{
struct dma_map_ops *ops = get_dma_ops(dev);
- WARN_ON(irqs_disabled()); /* for portability */
-
if (dma_release_from_coherent(dev, get_order(size), vaddr))
return;
diff --git a/arch/x86/include/asm/mce.h b/arch/x86/include/asm/mce.h
index f32a4301c4d..7a823541d0a 100644
--- a/arch/x86/include/asm/mce.h
+++ b/arch/x86/include/asm/mce.h
@@ -67,6 +67,8 @@ struct mce {
__u32 socketid; /* CPU socket ID */
__u32 apicid; /* CPU initial apic ID */
__u64 mcgcap; /* MCGCAP MSR: machine check capabilities of CPU */
+ __u64 aux0; /* model specific */
+ __u64 aux1; /* model specific */
};
/*
diff --git a/arch/x86/include/asm/mmu.h b/arch/x86/include/asm/mmu.h
index 80a1dee5bea..8314c66c7c3 100644
--- a/arch/x86/include/asm/mmu.h
+++ b/arch/x86/include/asm/mmu.h
@@ -7,12 +7,19 @@
/*
* The x86 doesn't have a mmu context, but
* we put the segment information here.
+ *
+ * exec_limit is used to track the range PROT_EXEC
+ * mappings span.
*/
typedef struct {
void *ldt;
int size;
struct mutex lock;
void *vdso;
+#ifdef CONFIG_X86_32
+ struct desc_struct user_cs;
+ unsigned long exec_limit;
+#endif
} mm_context_t;
#ifdef CONFIG_SMP
diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h
index b49d8ca228f..8c7ae431862 100644
--- a/arch/x86/include/asm/msr-index.h
+++ b/arch/x86/include/asm/msr-index.h
@@ -110,6 +110,7 @@
#define MSR_AMD64_PATCH_LOADER 0xc0010020
#define MSR_AMD64_OSVW_ID_LENGTH 0xc0010140
#define MSR_AMD64_OSVW_STATUS 0xc0010141
+#define MSR_AMD64_DC_CFG 0xc0011022
#define MSR_AMD64_IBSFETCHCTL 0xc0011030
#define MSR_AMD64_IBSFETCHLINAD 0xc0011031
#define MSR_AMD64_IBSFETCHPHYSAD 0xc0011032
diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
index 5653f43d90e..55dadb2a61b 100644
--- a/arch/x86/include/asm/paravirt.h
+++ b/arch/x86/include/asm/paravirt.h
@@ -289,6 +289,12 @@ static inline void set_ldt(const void *addr, unsigned entries)
{
PVOP_VCALL2(pv_cpu_ops.set_ldt, addr, entries);
}
+#ifdef CONFIG_X86_32
+static inline void load_user_cs_desc(unsigned int cpu, struct mm_struct *mm)
+{
+ PVOP_VCALL2(pv_cpu_ops.load_user_cs_desc, cpu, mm);
+}
+#endif /*CONFIG_X86_32*/
static inline void store_gdt(struct desc_ptr *dtr)
{
PVOP_VCALL1(pv_cpu_ops.store_gdt, dtr);
diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
index db9ef553234..19c2793fb3c 100644
--- a/arch/x86/include/asm/paravirt_types.h
+++ b/arch/x86/include/asm/paravirt_types.h
@@ -118,6 +118,9 @@ struct pv_cpu_ops {
void (*store_gdt)(struct desc_ptr *);
void (*store_idt)(struct desc_ptr *);
void (*set_ldt)(const void *desc, unsigned entries);
+#ifdef CONFIG_X86_32
+ void (*load_user_cs_desc)(int cpu, struct mm_struct *mm);
+#endif
unsigned long (*store_tr)(void);
void (*load_tls)(struct thread_struct *t, unsigned int cpu);
#ifdef CONFIG_X86_64
diff --git a/arch/x86/include/asm/suspend_32.h b/arch/x86/include/asm/suspend_32.h
index 48dcfa62ea0..fd921c3a684 100644
--- a/arch/x86/include/asm/suspend_32.h
+++ b/arch/x86/include/asm/suspend_32.h
@@ -15,6 +15,8 @@ static inline int arch_prepare_suspend(void) { return 0; }
struct saved_context {
u16 es, fs, gs, ss;
unsigned long cr0, cr2, cr3, cr4;
+ u64 misc_enable;
+ bool misc_enable_saved;
struct desc_ptr gdt;
struct desc_ptr idt;
u16 ldt;
diff --git a/arch/x86/include/asm/suspend_64.h b/arch/x86/include/asm/suspend_64.h
index 06284f42b75..8d942afae68 100644
--- a/arch/x86/include/asm/suspend_64.h
+++ b/arch/x86/include/asm/suspend_64.h
@@ -27,6 +27,8 @@ struct saved_context {
u16 ds, es, fs, gs, ss;
unsigned long gs_base, gs_kernel_base, fs_base;
unsigned long cr0, cr2, cr3, cr4, cr8;
+ u64 misc_enable;
+ bool misc_enable_saved;
unsigned long efer;
u16 gdt_pad;
u16 gdt_limit;
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
index 68e4a6f2211..4ff25973575 100644
--- a/arch/x86/kernel/cpu/common.c
+++ b/arch/x86/kernel/cpu/common.c
@@ -802,6 +802,22 @@ static void __cpuinit identify_cpu(struct cpuinfo_x86 *c)
/* Filter out anything that depends on CPUID levels we don't have */
filter_cpuid_features(c, true);
+#ifdef CONFIG_X86_32
+ /*
+ * emulation of NX with segment limits unfortunately means
+ * we have to disable the fast system calls, due to the way that
+ * sysexit clears the segment limits on return.
+ * If we have either disabled exec-shield on the boot command line,
+ * or we have NX, then we don't need to do this.
+ */
+ if (exec_shield != 0) {
+#ifdef CONFIG_X86_PAE
+ if (!test_cpu_cap(c, X86_FEATURE_NX))
+#endif
+ clear_cpu_cap(c, X86_FEATURE_SEP);
+ }
+#endif /* CONFIG_X86_32 */
+
/* If the model name is still unset, do table lookup. */
if (!c->x86_model_id[0]) {
const char *p;
diff --git a/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c b/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
index 9b1ff37de46..ee4e9f80507 100644
--- a/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
+++ b/arch/x86/kernel/cpu/cpufreq/speedstep-centrino.c
@@ -46,6 +46,7 @@ enum {
CPU_DOTHAN_A1,
CPU_DOTHAN_A2,
CPU_DOTHAN_B0,
+ CPU_DOTHAN_C0,
CPU_MP4HT_D0,
CPU_MP4HT_E0,
};
@@ -55,6 +56,7 @@ static const struct cpu_id cpu_ids[] = {
[CPU_DOTHAN_A1] = { 6, 13, 1 },
[CPU_DOTHAN_A2] = { 6, 13, 2 },
[CPU_DOTHAN_B0] = { 6, 13, 6 },
+ [CPU_DOTHAN_C0] = { 6, 13, 8 },
[CPU_MP4HT_D0] = {15, 3, 4 },
[CPU_MP4HT_E0] = {15, 4, 1 },
};
@@ -197,6 +199,88 @@ static struct cpufreq_frequency_table banias_1700[] =
};
#undef OP
+
+#define OPEX(mhz, base, mva, mvb, mvc, mvd) \
+{ \
+ .frequency = (mhz) * 1000, \
+ .index = (((mhz)/(base)) << 8) | ((mva - 700) / 16) \
+}
+
+/* Intel Pentium M processor 730 / 1.60 GHz (Sonoma) */
+static struct cpufreq_frequency_table sonoma_1596[] =
+{
+ OPEX( 798, 133, 988, 988, 988, 988),
+ OPEX(1064, 133, 1116, 1111, 1084, 1079),
+ OPEX(1330, 133, 1244, 1233, 1180, 1169),
+ OPEX(1596, 133, 1356, 1356, 1260, 1260),
+ { .frequency = CPUFREQ_TABLE_END }
+};
+
+/* Intel Pentium M processor 740 / 1.73 GHz (Sonoma) */
+static struct cpufreq_frequency_table sonoma_1729[] =
+{
+ OPEX( 798, 133, 988, 988, 988, 988),
+ OPEX(1064, 133, 1100, 1093, 1068, 1066),
+ OPEX(1330, 133, 1212, 1198, 1148, 1143),
+ OPEX(1729, 133, 1356, 1356, 1260, 1260),
+ { .frequency = CPUFREQ_TABLE_END }
+};
+
+/* Intel Pentium M processor 750 / 1.86 GHz (Sonoma) */
+static struct cpufreq_frequency_table sonoma_1862[] =
+{
+ OPEX( 798, 133, 988, 988, 988, 988),
+ OPEX(1064, 133, 1084, 1080, 1068, 1056),
+ OPEX(1330, 133, 1180, 1172, 1132, 1124),
+ OPEX(1596, 133, 1276, 1264, 1196, 1192),
+ OPEX(1862, 133, 1356, 1356, 1260, 1260),
+ { .frequency = CPUFREQ_TABLE_END }
+};
+
+/* Intel Pentium M processor 760 / 2.00 GHz (Sonoma) */
+static struct cpufreq_frequency_table sonoma_1995[] =
+{
+ OPEX( 798, 133, 988, 988, 988, 988),
+ OPEX(1064, 133, 1084, 1070, 1052, 1048),
+ OPEX(1330, 133, 1164, 1152, 1116, 1109),
+ OPEX(1596, 133, 1244, 1233, 1180, 1169),
+ OPEX(1995, 133, 1356, 1356, 1260, 1260),
+ { .frequency = CPUFREQ_TABLE_END }
+};
+/* Intel Pentium M processor 770 / 2.13 GHz (Sonoma) */
+static struct cpufreq_frequency_table sonoma_2128[] =
+{
+ OPEX( 798, 133, 988, 988, 988, 988),
+ OPEX(1064, 133, 1068, 1065, 1052, 1042),
+ OPEX(1330, 133, 1148, 1142, 1100, 1097),
+ OPEX(1596, 133, 1228, 1218, 1164, 1151),
+ OPEX(1862, 133, 1308, 1295, 1212, 1206),
+ OPEX(2128, 133, 1372, 1372, 1260, 1260),
+ { .frequency = CPUFREQ_TABLE_END }
+};
+
+/* Intel Pentium M processor 780 / 2.26 GHz (Sonoma) */
+static struct cpufreq_frequency_table sonoma_2261[] =
+{
+ OPEX( 798, 133, 988, 988, 988, 988),
+ OPEX(1064, 133, 1068, 1064, 1052, 1037),
+ OPEX(1330, 133, 1148, 1139, 1100, 1087),
+ OPEX(1596, 133, 1228, 1215, 1148, 1136),
+ OPEX(1862, 133, 1292, 1291, 1196, 1186),
+ OPEX(2261, 133, 1404, 1404, 1260, 1260),
+ { .frequency = CPUFREQ_TABLE_END }
+};
+
+#undef OPEX
+
+#define SONOMA(cpuid, max, base, name) \
+{ .cpu_id = cpuid, \
+ .model_name = "Intel(R) Pentium(R) M processor " name "GHz", \
+ .max_freq = (max)*1000, \
+ .op_points = sonoma_##max, \
+}
+
+
#define _BANIAS(cpuid, max, name) \
{ .cpu_id = cpuid, \
.model_name = "Intel(R) Pentium(R) M processor " name "MHz", \
@@ -219,6 +303,15 @@ static struct cpu_model models[] =
BANIAS(1600),
BANIAS(1700),
+ /* Builtin tables for Dothan C0 CPUs, a.k.a Sonoma */
+ SONOMA(&cpu_ids[CPU_DOTHAN_C0], 1596, 133, "1.60"),
+ SONOMA(&cpu_ids[CPU_DOTHAN_C0], 1729, 133, "1.73"),
+ SONOMA(&cpu_ids[CPU_DOTHAN_C0], 1862, 133, "1.86"),
+ SONOMA(&cpu_ids[CPU_DOTHAN_C0], 1995, 133, "2.00"),
+ SONOMA(&cpu_ids[CPU_DOTHAN_C0], 2128, 133, "2.13"),
+ SONOMA(&cpu_ids[CPU_DOTHAN_C0], 2261, 133, "2.26"),
+
+
/* NULL model_name is a wildcard */
{ &cpu_ids[CPU_DOTHAN_A1], NULL, 0, NULL },
{ &cpu_ids[CPU_DOTHAN_A2], NULL, 0, NULL },
diff --git a/arch/x86/kernel/cpu/mcheck/Makefile b/arch/x86/kernel/cpu/mcheck/Makefile
index bb34b03af25..6cd546a998b 100644
--- a/arch/x86/kernel/cpu/mcheck/Makefile
+++ b/arch/x86/kernel/cpu/mcheck/Makefile
@@ -2,6 +2,7 @@ obj-y = mce.o mce-severity.o
obj-$(CONFIG_X86_ANCIENT_MCE) += winchip.o p5.o
obj-$(CONFIG_X86_MCE_INTEL) += mce_intel.o
+obj-$(CONFIG_X86_MCE_XEON75XX) += mce-xeon75xx.o
obj-$(CONFIG_X86_MCE_AMD) += mce_amd.o
obj-$(CONFIG_X86_MCE_THRESHOLD) += threshold.o
obj-$(CONFIG_X86_MCE_INJECT) += mce-inject.o
diff --git a/arch/x86/kernel/cpu/mcheck/mce-internal.h b/arch/x86/kernel/cpu/mcheck/mce-internal.h
index fefcc69ee8b..28088d29a46 100644
--- a/arch/x86/kernel/cpu/mcheck/mce-internal.h
+++ b/arch/x86/kernel/cpu/mcheck/mce-internal.h
@@ -28,6 +28,8 @@ extern int mce_ser;
extern struct mce_bank *mce_banks;
+extern void (*mce_cpu_specific_poll)(struct mce *);
+
#ifdef CONFIG_ACPI_APEI
int apei_write_mce(struct mce *m);
ssize_t apei_read_mce(struct mce *m, u64 *record_id);
diff --git a/arch/x86/kernel/cpu/mcheck/mce-xeon75xx.c b/arch/x86/kernel/cpu/mcheck/mce-xeon75xx.c
new file mode 100644
index 00000000000..e09b7367ee3
--- /dev/null
+++ b/arch/x86/kernel/cpu/mcheck/mce-xeon75xx.c
@@ -0,0 +1,427 @@
+/*
+ * Xeon 7500 series specific machine check support code.
+ * Copyright 2009, 2010 Intel Corporation
+ * Author: Andi Kleen
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; version 2
+ * of the License.
+ *
+ * Implement Xeon 7500 series specific code to retrieve the physical address
+ * and DIMM information for corrected memory errors.
+ *
+ * Interface: mce->aux0/aux1 is mapped to a struct pfa_dimm with pad
+ * redefined to DIMM valid bits. Consumers check CPUID and bank and
+ * then interpret aux0/aux1
+ */
+
+/* #define DEBUG 1 */ /* disable for production */
+#define pr_fmt(x) "MCE: " x
+
+#include <linux/moduleparam.h>
+#include <linux/pci_ids.h>
+#include <linux/hrtimer.h>
+#include <linux/string.h>
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/ktime.h>
+#include <linux/init.h>
+#include <linux/pci.h>
+#include <asm/processor.h>
+#include <asm/e820.h>
+#include <asm/mce.h>
+#include <asm/io.h>
+
+#include "mce-internal.h"
+
+#define PFA_SIG "$PFA"
+#define PFA_SIG_LEN 4
+
+/* DIMM description */
+struct aux_pfa_dimm {
+ u8 fbd_channel_id;
+ u8 ddr_channel_id;
+ u8 ddr_dimm_id;
+ u8 ddr_rank_id;
+ u8 ddr_dimm_bank_id;
+ u8 ddr_dimm_row_id;
+ u8 ddr_dimm_column_id;
+ u8 valid;
+} __attribute__((packed));
+
+struct pfa_dimm {
+ u8 fbd_channel_id;
+ u8 ddr_channel_id;
+ u8 ddr_dimm_id;
+ u8 ddr_rank_id;
+ u8 ddr_dimm_bank_id;
+ u32 ddr_dimm_row_id;
+ u32 ddr_dimm_column_id;
+} __attribute__((packed));
+
+/* Memory translation table in memory. */
+struct pfa_table {
+ u8 sig[PFA_SIG_LEN]; /* Signature: '$PFA' */
+ u16 len; /* total length */
+ u16 revision; /* 0x11 */
+ u8 checksum; /* 8bit sum to zero */
+ u8 db_value; /* mailbox port command value */
+ u8 db_port; /* mailbox port */
+ /* end of header; end of checksum */
+ u8 command; /* input command */
+ u32 valid; /* valid input/output bits */
+ u16 status; /* output status */
+ u8 socket_id; /* input socket id*/
+ u8 bank_id; /* input MCE bank id */
+ u32 pad1;
+ u64 mbox_address;
+ u64 physical_addr; /* physical address */
+ struct pfa_dimm dimm[2];
+ /*
+ * topology information follows: not used for now.
+ */
+} __attribute__((packed));
+
+/* DIMM valid bits in valid: DIMM0: 8..12; DIMM1 16..20 */
+#define DIMM_VALID_BITS(val, num) (((val) >> (4 + (num) * 8)) & DIMM_VALID_ALL)
+#define DIMM_SET_VALID(val, num) ((val) << (4 + (num) * 8))
+
+enum {
+ MCE_BANK_MBOX0 = 8,
+ MCE_BANK_MBOX1 = 9,
+
+ PFA_REVISION = 0x11, /* v1.1 */
+
+ /* Status bits for valid field */
+ PFA_VALID_MA = (1 << 0),
+ PFA_VALID_SOCKETID = (1 << 1),
+ PFA_VALID_BANKID = (1 << 2),
+ PFA_VALID_PA = (1 << 3),
+
+ /* DIMM valid bits in valid */
+ /* use with DIMM_VALID_BITS/DIMM_SET_VALID for pfa->valid */
+ DIMM_VALID_FBD_CHAN = (1 << 0),
+ DIMM_VALID_DDR_CHAN = (1 << 1),
+ DIMM_VALID_DDR_DIMM = (1 << 2),
+ DIMM_VALID_DDR_RANK = (1 << 3),
+ DIMM_VALID_DIMM_BANK = (1 << 4),
+ DIMM_VALID_DIMM_ROW = (1 << 5),
+ DIMM_VALID_DIMM_COLUMN = (1 << 6),
+ DIMM_VALID_ALL = 0x7f,
+
+ PFA_DIMM_VALID_MASK = DIMM_SET_VALID(DIMM_VALID_ALL, 0)
+ | DIMM_SET_VALID(DIMM_VALID_ALL, 1),
+
+ /* Values for status field */
+ PFA_STATUS_SUCCESS = 0,
+ PFA_STATUS_SOCKET_INVALID = (1 << 1),
+ PFA_STATUS_MBOX_INVALID = (1 << 2),
+ PFA_STATUS_MA_INVALID = (1 << 3),
+ PFA_STATUS_PA_INVALID = (1 << 4),
+
+ /* Values for command field */
+ PFA_CMD_GET_MEM_CORR_ERR_PA = 0,
+ PFA_CMD_PA_TO_DIMM_ADDR = 1,
+ PFA_CMD_DIMM_TO_PA = 2,
+ PFA_CMD_GET_TOPOLOGY = 3,
+
+ /* PCI device IDs and the base register */
+ ICH_PFA_CFG = 0x8c, /* SCRATCH4 */
+ PCI_DEVICE_ID_BXB_ICH_LEGACY0 = 0x3422,
+};
+
+static struct pfa_table *pfa_table __read_mostly;
+static int memerr_max_conv_rate __read_mostly = 100;
+static int memerr_min_interval __read_mostly = 500;
+static int pfa_lost; /* for diagnosis */
+
+enum {
+ RATE_LIMIT_PERIOD = USEC_PER_SEC, /* in us; period of rate limit */
+};
+
+module_param(memerr_max_conv_rate, int, 0644);
+MODULE_PARM_DESC(memerr_max_conv_rate,
+ "Maximum number of memory error conversions each second; 0 to disable");
+module_param(memerr_min_interval, int, 0644);
+MODULE_PARM_DESC(memerr_min_interval,
+ "Minimum time delta between two memory conversions; in us; default 500");
+
+static int notest;
+static int nocsum;
+module_param(notest, int, 0);
+module_param(nocsum, int, 0);
+
+static u64 encode_dimm(struct pfa_dimm *d, u8 valid)
+{
+ union {
+ struct aux_pfa_dimm d;
+ u64 v;
+ } p;
+
+ BUILD_BUG_ON(sizeof(struct aux_pfa_dimm) != sizeof(u64));
+ p.d.fbd_channel_id = d->fbd_channel_id;
+ p.d.ddr_channel_id = d->ddr_channel_id;
+ p.d.ddr_dimm_id = d->ddr_dimm_id;
+ p.d.ddr_rank_id = d->ddr_rank_id;
+ p.d.ddr_dimm_bank_id = d->ddr_dimm_bank_id;
+ p.d.ddr_dimm_row_id = d->ddr_dimm_row_id;
+ if (p.d.ddr_dimm_row_id != d->ddr_dimm_row_id) /* truncated? */
+ valid &= ~DIMM_VALID_DIMM_ROW;
+ p.d.ddr_dimm_column_id = d->ddr_dimm_column_id;
+ if (p.d.ddr_dimm_column_id != d->ddr_dimm_column_id)
+ valid &= ~DIMM_VALID_DIMM_COLUMN;
+ p.d.valid = valid;
+ pr_debug("PFA fbd_ch %u ddr_ch %u dimm %u rank %u bank %u valid %x\n",
+ d->fbd_channel_id,
+ d->ddr_channel_id,
+ d->ddr_dimm_id,
+ d->ddr_rank_id,
+ d->ddr_dimm_bank_id,
+ valid);
+ return p.v;
+}
+
+static u8 csum(u8 *table, u16 len)
+{
+ u8 sum = 0;
+ int i;
+ for (i = 0; i < len; i++)
+ sum += *table++;
+ return sum;
+}
+
+/*
+ * Execute a command through the mailbox interface.
+ */
+static int
+pfa_command(unsigned bank, unsigned socketid, unsigned command, unsigned valid)
+{
+ pfa_table->bank_id = bank;
+ pfa_table->socket_id = socketid;
+ pfa_table->valid = valid | PFA_VALID_SOCKETID;
+ pfa_table->command = command;
+
+ outb(pfa_table->db_value, pfa_table->db_port);
+
+ mb(); /* Reread fields after they got changed */
+
+ if (pfa_table->status != PFA_STATUS_SUCCESS) {
+ pr_debug("Memory PFA command %d failed: socket:%d bank:%d status:%x\n",
+ command, socketid, bank, pfa_table->status);
+ return -pfa_table->status;
+ }
+ return 0;
+}
+
+/*
+ * Retrieve physical address and DIMMs.
+ */
+static int translate_memory_error(struct mce *m)
+{
+ struct pfa_table *pfa = pfa_table;
+ u64 status;
+ int ret;
+ u32 valid;
+ int cpu = smp_processor_id();
+
+ /* Make sure our structures match the specification */
+ BUILD_BUG_ON(offsetof(struct pfa_table, physical_addr) != 0x20);
+ BUILD_BUG_ON(offsetof(struct pfa_table, status) != 0x10);
+ BUILD_BUG_ON(offsetof(struct pfa_table, physical_addr) != 0x20);
+ BUILD_BUG_ON(offsetof(struct pfa_table, dimm[1].ddr_dimm_column_id) !=
+ 0x3e);
+
+ /* Ask for PA/DIMMs of last error */
+ if (pfa_command(m->bank, m->socketid,
+ PFA_CMD_GET_MEM_CORR_ERR_PA, PFA_VALID_BANKID) < 0)
+ return -1;
+
+ /*
+ * Recheck machine check bank. If the overflow bit was set
+ * there was a race. Don't use the information in this case.
+ */
+ rdmsrl(MSR_IA32_MCx_STATUS(m->bank), status);
+ if (status & MCI_STATUS_OVER) {
+ pr_debug("%d: overflow race on bank %d\n", cpu, m->bank);
+ return -1;
+ }
+
+ ret = -1;
+ valid = pfa->valid;
+ if (valid & PFA_VALID_PA) {
+ m->status |= MCI_STATUS_ADDRV;
+ m->addr = pfa_table->physical_addr;
+ pr_debug("%d: got physical address %llx valid %x\n",
+ cpu, m->addr, valid);
+ ret = 0;
+ }
+
+ /* When DIMM information was supplied pass it out */
+ if (valid & PFA_DIMM_VALID_MASK) {
+ m->aux0 = encode_dimm(&pfa->dimm[0], DIMM_VALID_BITS(valid, 0));
+ m->aux1 = encode_dimm(&pfa->dimm[1], DIMM_VALID_BITS(valid, 1));
+ ret = 0;
+ }
+
+ return ret;
+}
+
+/*
+ * Xeon 75xx specific mce poll method to retrieve the physical address
+ * and DIMM information.
+ */
+static void xeon75xx_mce_poll(struct mce *m)
+{
+ static DEFINE_SPINLOCK(convert_lock); /* Protect table and static */
+ static unsigned long cperm;
+ static ktime_t last, last_int;
+ unsigned long flags;
+ ktime_t now;
+ s64 delta;
+
+ /* Memory error? */
+ if (m->bank != MCE_BANK_MBOX0 && m->bank != MCE_BANK_MBOX1)
+ return;
+ if (m->status & MCI_STATUS_OVER)
+ return;
+ if (memerr_max_conv_rate == 0)
+ return;
+
+ spin_lock_irqsave(&convert_lock, flags);
+ /*
+ * Rate limit conversions. The conversion takes some time,
+ * but it's not good to use all the CPU time during a error
+ * flood.
+ * Enforce maximum number per second and minimum interval.
+ * The ktime call should use TSC on this machine and be fast.
+ */
+ now = ktime_get();
+ delta = ktime_us_delta(now, last);
+ if (delta >= RATE_LIMIT_PERIOD) {
+ cperm = 0;
+ last = now;
+ }
+ if (ktime_us_delta(now, last_int) >= memerr_min_interval &&
+ ++cperm <= memerr_max_conv_rate) {
+ if (translate_memory_error(m) < 0) {
+ /* On error stop converting for the next second */
+ cperm = memerr_max_conv_rate;
+ pr_debug("PFA translation failed\n");
+ }
+ } else
+ pfa_lost++;
+ last_int = now;
+ spin_unlock_irqrestore(&convert_lock, flags);
+}
+
+static struct pci_device_id bxb_mce_pciids[] = {
+ { PCI_VDEVICE(INTEL, PCI_DEVICE_ID_BXB_ICH_LEGACY0) },
+ {}
+};
+
+static int __init xeon75xx_mce_init(void)
+{
+ u32 addr = 0;
+ struct pci_dev *dev;
+
+ if (boot_cpu_data.x86_vendor != X86_VENDOR_INTEL ||
+ boot_cpu_data.x86 != 6 ||
+ boot_cpu_data.x86_model != 0x2e)
+ return -ENODEV;
+
+ /*
+ * Get table address from register in IOH.
+ * This just looks up the device, because we don't want to "own" it.
+ */
+ dev = NULL;
+ while ((dev = pci_get_device(PCI_VENDOR_ID_INTEL, PCI_ANY_ID, dev))
+ != NULL) {
+ if (!pci_match_id(bxb_mce_pciids, dev))
+ continue;
+ pci_read_config_dword(dev, ICH_PFA_CFG, &addr);
+ if (addr)
+ break;
+ }
+ pci_dev_put(dev);
+ if (!addr)
+ return -ENODEV;
+
+ if (!e820_all_mapped(addr, addr + PAGE_SIZE, E820_RESERVED)) {
+ pr_info("PFA table at %x not e820 reserved\n", addr);
+ return -ENODEV;
+ }
+
+ pfa_table = (__force struct pfa_table *)ioremap_cache(addr, PAGE_SIZE);
+ if (!pfa_table) {
+ pr_err("Cannot map PFA table at %x\n", addr);
+ return -EIO;
+ }
+
+ if (memcmp(&pfa_table->sig, PFA_SIG, PFA_SIG_LEN) ||
+ pfa_table->len < sizeof(struct pfa_table) ||
+ /* assume newer versions are compatible */
+ pfa_table->revision < PFA_REVISION) {
+ pr_info("PFA table at %x invalid\n", addr);
+ goto error_unmap;
+ }
+
+ if (!nocsum && csum((u8 *)pfa_table,
+ offsetof(struct pfa_table, command))) {
+ pr_info("PFA table at %x length %u has invalid checksum\n",
+ addr, pfa_table->len);
+ goto error_unmap;
+ }
+
+ /* Not strictly needed today */
+ if (pfa_table->len > PAGE_SIZE) {
+ unsigned len = roundup(pfa_table->len, PAGE_SIZE);
+ iounmap(pfa_table);
+ pfa_table = (__force void *)ioremap_cache(addr, len);
+ if (!pfa_table) {
+ pr_err("Cannot remap %u bytes PFA table at %x\n",
+ len, addr);
+ return -EIO;
+ }
+ }
+
+ if (!notest) {
+ int status = pfa_command(0, 0, PFA_CMD_GET_TOPOLOGY, 0);
+ if (status < 0) {
+ pr_err("Test of PFA table failed: %x\n", -status);
+ goto error_unmap;
+ }
+ }
+
+ pr_info("Found Xeon75xx PFA memory error translation table at %x\n",
+ addr);
+ mb();
+ mce_cpu_specific_poll = xeon75xx_mce_poll;
+ return 0;
+
+error_unmap:
+ iounmap(pfa_table);
+ return -ENODEV;
+}
+
+MODULE_DEVICE_TABLE(pci, bxb_mce_pciids);
+MODULE_LICENSE("GPL v2");
+MODULE_AUTHOR("Andi Kleen");
+MODULE_DESCRIPTION("Intel Xeon 75xx specific DIMM error reporting");
+
+#ifdef CONFIG_MODULE
+static void __exit xeon75xx_mce_exit(void)
+{
+ mce_cpu_specific_poll = NULL;
+ wmb();
+ /* Wait for all machine checks to finish before really unloading */
+ synchronize_rcu();
+ iounmap(pfa_table);
+}
+
+module_init(xeon75xx_mce_init);
+module_exit(xeon75xx_mce_exit);
+#else
+/* When built-in run as soon as the PCI subsystem is up */
+fs_initcall(xeon75xx_mce_init);
+#endif
diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 18cc4256225..919c540c253 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -118,6 +118,9 @@ static struct notifier_block mce_dec_nb = {
.priority = -1,
};
+void (*mce_cpu_specific_poll)(struct mce *);
+EXPORT_SYMBOL_GPL(mce_cpu_specific_poll);
+
/* MCA banks polled by the period polling timer for corrected events */
DEFINE_PER_CPU(mce_banks_t, mce_poll_banks) = {
[0 ... BITS_TO_LONGS(MAX_NR_BANKS)-1] = ~0UL
@@ -391,6 +394,11 @@ static void mce_wrmsrl(u32 msr, u64 v)
wrmsrl(msr, v);
}
+static int under_injection(void)
+{
+ return __get_cpu_var(injectm).finished;
+}
+
/*
* Simple lockless ring to communicate PFNs from the exception handler with the
* process context work function. This is vastly simplified because there's
@@ -594,6 +602,10 @@ void machine_check_poll(enum mcp_flags flags, mce_banks_t *b)
if (!(flags & MCP_TIMESTAMP))
m.tsc = 0;
+
+ if (mce_cpu_specific_poll && !under_injection() && !mce_dont_log_ce)
+ mce_cpu_specific_poll(&m);
+
/*
* Don't get the IP here because it's unlikely to
* have anything to do with the actual error location.
diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
index 7bca3c6a02f..81bba675166 100644
--- a/arch/x86/kernel/e820.c
+++ b/arch/x86/kernel/e820.c
@@ -71,7 +71,7 @@ EXPORT_SYMBOL_GPL(e820_any_mapped);
* Note: this function only works correct if the e820 table is sorted and
* not-overlapping, which is the case
*/
-int __init e820_all_mapped(u64 start, u64 end, unsigned type)
+int e820_all_mapped(u64 start, u64 end, unsigned type)
{
int i;
@@ -98,6 +98,7 @@ int __init e820_all_mapped(u64 start, u64 end, unsigned type)
}
return 0;
}
+EXPORT_SYMBOL_GPL(e820_all_mapped);
/*
* Add a memory region to the kernel e820 map.
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 1db183ed7c0..238b97d2415 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -345,6 +345,9 @@ struct pv_cpu_ops pv_cpu_ops = {
.read_tscp = native_read_tscp,
.load_tr_desc = native_load_tr_desc,
.set_ldt = native_set_ldt,
+#ifdef CONFIG_X86_32
+ .load_user_cs_desc = native_load_user_cs_desc,
+#endif /*CONFIG_X86_32*/
.load_gdt = native_load_gdt,
.load_idt = native_load_idt,
.store_gdt = native_store_gdt,
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
index e7e35219b32..a658ff4b670 100644
--- a/arch/x86/kernel/process.c
+++ b/arch/x86/kernel/process.c
@@ -700,6 +700,16 @@ unsigned long arch_align_stack(unsigned long sp)
unsigned long arch_randomize_brk(struct mm_struct *mm)
{
unsigned long range_end = mm->brk + 0x02000000;
- return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
+ unsigned long bump = 0;
+#ifdef CONFIG_X86_32
+ /* in the case of NX emulation, shove the brk segment way out of the
+ way of the exec randomization area, since it can collide with
+ future allocations if not. */
+ if ( (mm->get_unmapped_exec_area == arch_get_unmapped_exec_area) &&
+ (mm->brk < 0x08000000) ) {
+ bump = (TASK_SIZE/6);
+ }
+#endif
+ return bump + (randomize_range(mm->brk, range_end, 0) ? : mm->brk);
}
diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
index 8d128783af4..fde71dfe9cd 100644
--- a/arch/x86/kernel/process_32.c
+++ b/arch/x86/kernel/process_32.c
@@ -243,7 +243,10 @@ int copy_thread(unsigned long clone_flags, unsigned long sp,
void
start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
{
+ int cpu;
+
set_user_gs(regs, 0);
+
regs->fs = 0;
set_fs(USER_DS);
regs->ds = __USER_DS;
@@ -252,6 +255,11 @@ start_thread(struct pt_regs *regs, unsigned long new_ip, unsigned long new_sp)
regs->cs = __USER_CS;
regs->ip = new_ip;
regs->sp = new_sp;
+
+ cpu = get_cpu();
+ load_user_cs_desc(cpu, current->mm);
+ put_cpu();
+
/*
* Free the old FP and other extended state
*/
@@ -311,6 +319,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
if (preload_fpu)
prefetch(next->fpu.state);
+ if (next_p->mm)
+ load_user_cs_desc(cpu, next_p->mm);
+
/*
* Reload esp0.
*/
@@ -404,3 +415,40 @@ unsigned long get_wchan(struct task_struct *p)
return 0;
}
+static void modify_cs(struct mm_struct *mm, unsigned long limit)
+{
+ mm->context.exec_limit = limit;
+ set_user_cs(&mm->context.user_cs, limit);
+ if (mm == current->mm) {
+ int cpu;
+
+ cpu = get_cpu();
+ load_user_cs_desc(cpu, mm);
+ put_cpu();
+ }
+}
+
+void arch_add_exec_range(struct mm_struct *mm, unsigned long limit)
+{
+ if (limit > mm->context.exec_limit)
+ modify_cs(mm, limit);
+}
+
+void arch_remove_exec_range(struct mm_struct *mm, unsigned long old_end)
+{
+ struct vm_area_struct *vma;
+ unsigned long limit = PAGE_SIZE;
+
+ if (old_end == mm->context.exec_limit) {
+ for (vma = mm->mmap; vma; vma = vma->vm_next)
+ if ((vma->vm_flags & VM_EXEC) && (vma->vm_end > limit))
+ limit = vma->vm_end;
+ modify_cs(mm, limit);
+ }
+}
+
+void arch_flush_exec_range(struct mm_struct *mm)
+{
+ mm->context.exec_limit = 0;
+ set_user_cs(&mm->context.user_cs, 0);
+}
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
index 142d70c74b0..82a48b87d82 100644
--- a/arch/x86/kernel/traps.c
+++ b/arch/x86/kernel/traps.c
@@ -109,6 +109,78 @@ static inline void preempt_conditional_cli(struct pt_regs *regs)
dec_preempt_count();
}
+#ifdef CONFIG_X86_32
+static inline int
+__compare_user_cs_desc(const struct desc_struct *desc1,
+ const struct desc_struct *desc2)
+{
+ return ((desc1->limit0 != desc2->limit0) ||
+ (desc1->limit != desc2->limit) ||
+ (desc1->base0 != desc2->base0) ||
+ (desc1->base1 != desc2->base1) ||
+ (desc1->base2 != desc2->base2));
+}
+
+/*
+ * lazy-check for CS validity on exec-shield binaries:
+ *
+ * the original non-exec stack patch was written by
+ * Solar Designer <solar at openwall.com>. Thanks!
+ */
+static int
+check_lazy_exec_limit(int cpu, struct pt_regs *regs, long error_code)
+{
+ struct desc_struct *desc1, *desc2;
+ struct vm_area_struct *vma;
+ unsigned long limit;
+
+ if (current->mm == NULL)
+ return 0;
+
+ limit = -1UL;
+ if (current->mm->context.exec_limit != -1UL) {
+ limit = PAGE_SIZE;
+ spin_lock(&current->mm->page_table_lock);
+ for (vma = current->mm->mmap; vma; vma = vma->vm_next)
+ if ((vma->vm_flags & VM_EXEC) && (vma->vm_end > limit))
+ limit = vma->vm_end;
+ vma = get_gate_vma(current);
+ if (vma && (vma->vm_flags & VM_EXEC) && (vma->vm_end > limit))
+ limit = vma->vm_end;
+ spin_unlock(&current->mm->page_table_lock);
+ if (limit >= TASK_SIZE)
+ limit = -1UL;
+ current->mm->context.exec_limit = limit;
+ }
+ set_user_cs(&current->mm->context.user_cs, limit);
+
+ desc1 = &current->mm->context.user_cs;
+ desc2 = get_cpu_gdt_table(cpu) + GDT_ENTRY_DEFAULT_USER_CS;
+
+ if (__compare_user_cs_desc(desc1, desc2)) {
+ /*
+ * The CS was not in sync - reload it and retry the
+ * instruction. If the instruction still faults then
+ * we won't hit this branch next time around.
+ */
+ if (print_fatal_signals >= 2) {
+ printk(KERN_ERR "#GPF fixup (%ld[seg:%lx]) at %08lx, CPU#%d.\n",
+ error_code, error_code/8, regs->ip,
+ smp_processor_id());
+ printk(KERN_ERR "exec_limit: %08lx, user_cs: %08x/%08x, CPU_cs: %08x/%08x.\n",
+ current->mm->context.exec_limit,
+ desc1->a, desc1->b, desc2->a, desc2->b);
+ }
+
+ load_user_cs_desc(cpu, current->mm);
+
+ return 1;
+ }
+
+ return 0;
+}
+#endif
+
static void __kprobes
do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
long error_code, siginfo_t *info)
@@ -265,6 +337,29 @@ do_general_protection(struct pt_regs *regs, long error_code)
if (!user_mode(regs))
goto gp_in_kernel;
+#ifdef CONFIG_X86_32
+{
+ int cpu;
+ int ok;
+
+ cpu = get_cpu();
+ ok = check_lazy_exec_limit(cpu, regs, error_code);
+ put_cpu();
+
+ if (ok)
+ return;
+
+ if (print_fatal_signals) {
+ printk(KERN_ERR "#GPF(%ld[seg:%lx]) at %08lx, CPU#%d.\n",
+ error_code, error_code/8, regs->ip, smp_processor_id());
+ printk(KERN_ERR "exec_limit: %08lx, user_cs: %08x/%08x.\n",
+ current->mm->context.exec_limit,
+ current->mm->context.user_cs.a,
+ current->mm->context.user_cs.b);
+ }
+}
+#endif /*CONFIG_X86_32*/
+
tsk->thread.error_code = error_code;
tsk->thread.trap_no = 13;
@@ -792,19 +887,37 @@ do_device_not_available(struct pt_regs *regs, long error_code)
}
#ifdef CONFIG_X86_32
+/*
+ * The fixup code for errors in iret jumps to here (iret_exc). It loses
+ * the original trap number and erorr code. The bogus trap 32 and error
+ * code 0 are what the vanilla kernel delivers via:
+ * DO_ERROR_INFO(32, SIGSEGV, "iret exception", iret_error, ILL_BADSTK, 0, 1)
+ *
+ * NOTE: Because of the final "1" in the macro we need to enable interrupts.
+ *
+ * In case of a general protection fault in the iret instruction, we
+ * need to check for a lazy CS update for exec-shield.
+ */
dotraplinkage void do_iret_error(struct pt_regs *regs, long error_code)
{
- siginfo_t info;
+ int ok;
+ int cpu;
+
local_irq_enable();
- info.si_signo = SIGILL;
- info.si_errno = 0;
- info.si_code = ILL_BADSTK;
- info.si_addr = NULL;
- if (notify_die(DIE_TRAP, "iret exception",
- regs, error_code, 32, SIGILL) == NOTIFY_STOP)
- return;
- do_trap(32, SIGILL, "iret exception", regs, error_code, &info);
+ cpu = get_cpu();
+ ok = check_lazy_exec_limit(cpu, regs, error_code);
+ put_cpu();
+
+ if (!ok && notify_die(DIE_TRAP, "iret exception", regs,
+ error_code, 32, SIGSEGV) != NOTIFY_STOP) {
+ siginfo_t info;
+ info.si_signo = SIGSEGV;
+ info.si_errno = 0;
+ info.si_code = ILL_BADSTK;
+ info.si_addr = 0;
+ do_trap(32, SIGSEGV, "iret exception", regs, error_code, &info);
+ }
}
#endif
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c
index 81563e76e28..a6f695d7692 100644
--- a/arch/x86/kvm/mmu.c
+++ b/arch/x86/kvm/mmu.c
@@ -1815,6 +1815,9 @@ static int set_spte(struct kvm_vcpu *vcpu, u64 *sptep,
spte |= PT_WRITABLE_MASK;
+ if (!tdp_enabled && !(pte_access & ACC_WRITE_MASK))
+ spte &= ~PT_USER_MASK;
+
/*
* Optimization: for pte sync, if spte was writable the hash
* lookup is unnecessary (and expensive). Write protection
@@ -1870,6 +1873,8 @@ static void mmu_set_spte(struct kvm_vcpu *vcpu, u64 *sptep,
child = page_header(pte & PT64_BASE_ADDR_MASK);
mmu_page_remove_parent_pte(child, sptep);
+ __set_spte(sptep, shadow_trap_nonpresent_pte);
+ kvm_flush_remote_tlbs(vcpu->kvm);
} else if (pfn != spte_to_pfn(*sptep)) {
pgprintk("hfn old %lx new %lx\n",
spte_to_pfn(*sptep), pfn);
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 96dc232bfc5..ce438e0fdd2 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -28,6 +28,7 @@
#include <linux/ftrace_event.h>
#include <linux/slab.h>
+#include <asm/tlbflush.h>
#include <asm/desc.h>
#include <asm/virtext.h>
@@ -56,6 +57,8 @@ MODULE_LICENSE("GPL");
#define DEBUGCTL_RESERVED_BITS (~(0x3fULL))
+static bool erratum_383_found __read_mostly;
+
static const u32 host_save_user_msrs[] = {
#ifdef CONFIG_X86_64
MSR_STAR, MSR_LSTAR, MSR_CSTAR, MSR_SYSCALL_MASK, MSR_KERNEL_GS_BASE,
@@ -374,6 +377,31 @@ static void svm_queue_exception(struct kvm_vcpu *vcpu, unsigned nr,
svm->vmcb->control.event_inj_err = error_code;
}
+static void svm_init_erratum_383(void)
+{
+ u32 low, high;
+ int err;
+ u64 val;
+
+ /* Only Fam10h is affected */
+ if (boot_cpu_data.x86 != 0x10)
+ return;
+
+ /* Use _safe variants to not break nested virtualization */
+ val = native_read_msr_safe(MSR_AMD64_DC_CFG, &err);
+ if (err)
+ return;
+
+ val |= (1ULL << 47);
+
+ low = lower_32_bits(val);
+ high = upper_32_bits(val);
+
+ native_write_msr_safe(MSR_AMD64_DC_CFG, low, high);
+
+ erratum_383_found = true;
+}
+
static int has_svm(void)
{
const char *msg;
@@ -429,6 +457,8 @@ static int svm_hardware_enable(void *garbage)
wrmsrl(MSR_VM_HSAVE_PA, page_to_pfn(sd->save_area) << PAGE_SHIFT);
+ svm_init_erratum_383();
+
return 0;
}
@@ -1410,8 +1440,59 @@ static int nm_interception(struct vcpu_svm *svm)
return 1;
}
-static int mc_interception(struct vcpu_svm *svm)
+static bool is_erratum_383(void)
{
+ int err, i;
+ u64 value;
+
+ if (!erratum_383_found)
+ return false;
+
+ value = native_read_msr_safe(MSR_IA32_MC0_STATUS, &err);
+ if (err)
+ return false;
+
+ /* Bit 62 may or may not be set for this mce */
+ value &= ~(1ULL << 62);
+
+ if (value != 0xb600000000010015ULL)
+ return false;
+
+ /* Clear MCi_STATUS registers */
+ for (i = 0; i < 6; ++i)
+ native_write_msr_safe(MSR_IA32_MCx_STATUS(i), 0, 0);
+
+ value = native_read_msr_safe(MSR_IA32_MCG_STATUS, &err);
+ if (!err) {
+ u32 low, high;
+
+ value &= ~(1ULL << 2);
+ low = lower_32_bits(value);
+ high = upper_32_bits(value);
+
+ native_write_msr_safe(MSR_IA32_MCG_STATUS, low, high);
+ }
+
+ /* Flush tlb to evict multi-match entries */
+ __flush_tlb_all();
+
+ return true;
+}
+
+static void svm_handle_mce(struct vcpu_svm *svm)
+{
+ if (is_erratum_383()) {
+ /*
+ * Erratum 383 triggered. Guest state is corrupt so kill the
+ * guest.
+ */
+ pr_err("KVM: Guest triggered AMD Erratum 383\n");
+
+ set_bit(KVM_REQ_TRIPLE_FAULT, &svm->vcpu.requests);
+
+ return;
+ }
+
/*
* On an #MC intercept the MCE handler is not called automatically in
* the host. So do it by hand here.
@@ -1420,6 +1501,11 @@ static int mc_interception(struct vcpu_svm *svm)
"int $0x12\n");
/* not sure if we ever come back to this point */
+ return;
+}
+
+static int mc_interception(struct vcpu_svm *svm)
+{
return 1;
}
@@ -3088,6 +3174,14 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
vcpu->arch.regs_avail &= ~(1 << VCPU_EXREG_PDPTR);
vcpu->arch.regs_dirty &= ~(1 << VCPU_EXREG_PDPTR);
}
+
+ /*
+ * We need to handle MC intercepts here before the vcpu has a chance to
+ * change the physical cpu
+ */
+ if (unlikely(svm->vmcb->control.exit_code ==
+ SVM_EXIT_EXCP_BASE + MC_VECTOR))
+ svm_handle_mce(svm);
}
#undef R
diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c
index 1dab5194fd9..98dfac4af94 100644
--- a/arch/x86/mm/mmap.c
+++ b/arch/x86/mm/mmap.c
@@ -124,13 +124,23 @@ static unsigned long mmap_legacy_base(void)
*/
void arch_pick_mmap_layout(struct mm_struct *mm)
{
- if (mmap_is_legacy()) {
+ if (mmap_is_legacy()
+#ifdef CONFIG_X86_32
+ && !(2 & exec_shield)
+#endif
+ ) {
mm->mmap_base = mmap_legacy_base();
mm->get_unmapped_area = arch_get_unmapped_area;
mm->unmap_area = arch_unmap_area;
} else {
mm->mmap_base = mmap_base();
mm->get_unmapped_area = arch_get_unmapped_area_topdown;
+#ifdef CONFIG_X86_32
+ if (!(current->personality & READ_IMPLIES_EXEC)
+ && !(__supported_pte_mask & _PAGE_NX)
+ && mmap_is_ia32())
+ mm->get_unmapped_exec_area = arch_get_unmapped_exec_area;
+#endif
mm->unmap_area = arch_unmap_area_topdown;
}
}
diff --git a/arch/x86/mm/setup_nx.c b/arch/x86/mm/setup_nx.c
index a3250aa3408..f0686769a0a 100644
--- a/arch/x86/mm/setup_nx.c
+++ b/arch/x86/mm/setup_nx.c
@@ -1,3 +1,4 @@
+#include <linux/sched.h>
#include <linux/spinlock.h>
#include <linux/errno.h>
#include <linux/init.h>
@@ -23,6 +24,9 @@ static int __init noexec_setup(char *str)
disable_nx = 0;
} else if (!strncmp(str, "off", 3)) {
disable_nx = 1;
+#ifdef CONFIG_X86_32
+ exec_shield = 0;
+#endif
}
x86_configure_nx();
return 0;
@@ -40,8 +44,18 @@ void __cpuinit x86_configure_nx(void)
void __init x86_report_nx(void)
{
if (!cpu_has_nx) {
+#ifdef CONFIG_X86_32
+ if (exec_shield)
+ printk(KERN_INFO "NX (Execute Disable) protection: "
+ "approximated by x86 segment limits\n");
+ else
+ printk(KERN_INFO "NX (Execute Disable) protection: "
+ "approximation disabled by kernel command "
+ "line option\n");
+#else
printk(KERN_NOTICE "Notice: NX (Execute Disable) protection "
"missing in CPU or disabled in BIOS!\n");
+#endif
} else {
#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
if (disable_nx) {
diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c
index 426f3a1a64d..e0286b18d49 100644
--- a/arch/x86/mm/tlb.c
+++ b/arch/x86/mm/tlb.c
@@ -6,6 +6,7 @@
#include <linux/interrupt.h>
#include <linux/module.h>
+#include <asm/desc.h>
#include <asm/tlbflush.h>
#include <asm/mmu_context.h>
#include <asm/cache.h>
@@ -131,6 +132,12 @@ void smp_invalidate_interrupt(struct pt_regs *regs)
union smp_flush_state *f;
cpu = smp_processor_id();
+
+#ifdef CONFIG_X86_32
+ if (current->active_mm)
+ load_user_cs_desc(cpu, current->active_mm);
+#endif
+
/*
* orig_rax contains the negated interrupt vector.
* Use that to determine where the sender put the data.
diff --git a/arch/x86/pci/i386.c b/arch/x86/pci/i386.c
index 97da2ba9344..6fdb3ec30c3 100644
--- a/arch/x86/pci/i386.c
+++ b/arch/x86/pci/i386.c
@@ -96,6 +96,7 @@ EXPORT_SYMBOL(pcibios_align_resource);
* the fact the PCI specs explicitly allow address decoders to be
* shared between expansion ROMs and other resource regions, it's
* at least dangerous)
+ * - bad resource sizes or overlaps with other regions
*
* Our solution:
* (1) Allocate resources for all buses behind PCI-to-PCI bridges.
@@ -136,6 +137,7 @@ static void __init pcibios_allocate_bus_resources(struct list_head *bus_list)
* child resource allocations in this
* range.
*/
+ r->start = r->end = 0;
r->flags = 0;
}
}
diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c
index 0a979f3e5b8..1290ba54b35 100644
--- a/arch/x86/power/cpu.c
+++ b/arch/x86/power/cpu.c
@@ -105,6 +105,8 @@ static void __save_processor_state(struct saved_context *ctxt)
ctxt->cr4 = read_cr4();
ctxt->cr8 = read_cr8();
#endif
+ ctxt->misc_enable_saved = !rdmsrl_safe(MSR_IA32_MISC_ENABLE,
+ &ctxt->misc_enable);
}
/* Needed by apm.c */
@@ -152,6 +154,8 @@ static void fix_processor_context(void)
*/
static void __restore_processor_state(struct saved_context *ctxt)
{
+ if (ctxt->misc_enable_saved)
+ wrmsrl(MSR_IA32_MISC_ENABLE, ctxt->misc_enable);
/*
* control registers
*/
diff --git a/arch/x86/vdso/vdso32-setup.c b/arch/x86/vdso/vdso32-setup.c
index 02b442e9200..957bb679807 100644
--- a/arch/x86/vdso/vdso32-setup.c
+++ b/arch/x86/vdso/vdso32-setup.c
@@ -331,7 +331,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
if (compat)
addr = VDSO_HIGH_BASE;
else {
- addr = get_unmapped_area(NULL, 0, PAGE_SIZE, 0, 0);
+ addr = get_unmapped_area_prot(NULL, 0, PAGE_SIZE, 0, 0, 1);
if (IS_ERR_VALUE(addr)) {
ret = addr;
goto up_fail;
diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
index 65d8d79b46a..1ea06f842a9 100644
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -335,6 +335,24 @@ static void xen_set_ldt(const void *addr, unsigned entries)
xen_mc_issue(PARAVIRT_LAZY_CPU);
}
+#ifdef CONFIG_X86_32
+static void xen_load_user_cs_desc(int cpu, struct mm_struct *mm)
+{
+ void *gdt;
+ xmaddr_t mgdt;
+ u64 descriptor;
+ struct desc_struct user_cs;
+
+ gdt = &get_cpu_gdt_table(cpu)[GDT_ENTRY_DEFAULT_USER_CS];
+ mgdt = virt_to_machine(gdt);
+
+ user_cs = mm->context.user_cs;
+ descriptor = (u64) user_cs.a | ((u64) user_cs.b) << 32;
+
+ HYPERVISOR_update_descriptor(mgdt.maddr, descriptor);
+}
+#endif /*CONFIG_X86_32*/
+
static void xen_load_gdt(const struct desc_ptr *dtr)
{
unsigned long va = dtr->address;
@@ -961,6 +979,9 @@ static const struct pv_cpu_ops xen_cpu_ops __initdata = {
.load_tr_desc = paravirt_nop,
.set_ldt = xen_set_ldt,
+#ifdef CONFIG_X86_32
+ .load_user_cs_desc = xen_load_user_cs_desc,
+#endif /*CONFIG_X86_32*/
.load_gdt = xen_load_gdt,
.load_idt = xen_load_idt,
.load_tls = xen_load_tls,
diff --git a/debian.master/NOTES b/debian.master/NOTES
new file mode 100644
index 00000000000..f65ae4ac279
--- /dev/null
+++ b/debian.master/NOTES
@@ -0,0 +1,4 @@
+eSCO patch removed. Replaced upstream with a disable_esco module parm.
+airprime: Module gone, use option driver instead
+AppArmor: Patch is all there and ported. Ooops when enabled, so default
+ off (still can be enabled apparmor=1)
diff --git a/debian.master/abi/2.6.35-2.3/abiname b/debian.master/abi/2.6.35-2.3/abiname
new file mode 100644
index 00000000000..0cfbf08886f
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/abiname
@@ -0,0 +1 @@
+2
diff --git a/debian.master/abi/2.6.35-2.3/amd64/generic b/debian.master/abi/2.6.35-2.3/amd64/generic
new file mode 100644
index 00000000000..661f52402a8
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/amd64/generic
@@ -0,0 +1,11110 @@
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x3cc05473 kvm_read_guest_atomic
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x8ea74400 kvm_cpu_has_pending_timer
+EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble
+EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle
+EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k
+EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks
+EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister
+EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register
+EXPORT_SYMBOL drivers/acpi/video 0xc1be2a90 acpi_video_get_edid
+EXPORT_SYMBOL drivers/atm/suni 0xc9577f4d suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0x2a6bc271 uPD98402_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x0b2e058e pi_write_block
+EXPORT_SYMBOL drivers/block/paride/paride 0x0f4ec8a7 pi_release
+EXPORT_SYMBOL drivers/block/paride/paride 0x2e763837 pi_do_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x4444c89f paride_unregister
+EXPORT_SYMBOL drivers/block/paride/paride 0x4a3c1e65 pi_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x56548d79 pi_schedule_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x68f5d963 pi_write_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0x6ec3d899 pi_read_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0xb87ba38f paride_register
+EXPORT_SYMBOL drivers/block/paride/paride 0xd80d2d35 pi_connect
+EXPORT_SYMBOL drivers/block/paride/paride 0xef128708 pi_read_block
+EXPORT_SYMBOL drivers/block/paride/paride 0xf5428b48 pi_disconnect
+EXPORT_SYMBOL drivers/char/agp/intel-agp 0x7b9a6116 intel_agp_enabled
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0419dc0f ipmi_create_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0b413927 ipmi_poll_interface
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x296ba089 ipmi_request_settime
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x32ac91d1 ipmi_free_recv_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x37b38645 ipmi_unregister_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x48cd760f ipmi_get_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4fadef5c ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x549c2047 ipmi_unregister_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x57116afe ipmi_get_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x71904a40 ipmi_smi_watcher_register
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x75e0eb45 ipmi_set_gets_events
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x89abf000 ipmi_register_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8e2f591a ipmi_set_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa66878c3 ipmi_get_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb25ffc7b ipmi_smi_add_proc_entry
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb3e4e879 ipmi_get_version
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc6b00bf0 ipmi_set_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcbd8a825 ipmi_smi_msg_received
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd4cdb8bd ipmi_request_supply_msgs
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdc1d2cba ipmi_smi_watcher_unregister
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe28d6ce0 ipmi_set_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe29e2af9 ipmi_register_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xffcb68c7 ipmi_destroy_user
+EXPORT_SYMBOL drivers/char/nsc_gpio 0x2aeebbe9 nsc_gpio_write
+EXPORT_SYMBOL drivers/char/nsc_gpio 0xcd57cf8c nsc_gpio_read
+EXPORT_SYMBOL drivers/char/nsc_gpio 0xf377b35b nsc_gpio_dump
+EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte
+EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte
+EXPORT_SYMBOL drivers/edac/edac_core 0x3f96e302 edac_mc_find
+EXPORT_SYMBOL drivers/edac/edac_core 0x4e62dea3 edac_mc_handle_fbd_ce
+EXPORT_SYMBOL drivers/edac/edac_core 0x8c872438 edac_mc_handle_fbd_ue
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x0711927d fw_iso_context_queue
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x1c98f0e9 fw_core_handle_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x1eae8202 fw_send_request
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x24059546 fw_core_handle_bus_reset
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x352b60de fw_iso_context_create
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x36d49da4 fw_run_transaction
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x453a940f fw_csr_string
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x49a29946 fw_core_remove_descriptor
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x4a4be620 fw_core_remove_address_handler
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e86dd83 fw_core_add_descriptor
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x676e3934 fw_device_enable_phys_dma
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x7f488b55 fw_bus_type
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fb363c6 fw_cancel_transaction
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x8003626d fw_send_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x835c68ae fw_core_handle_request
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x8d71122f fw_iso_buffer_destroy
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x915d41b6 fw_core_remove_card
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xa0c7d081 fw_iso_context_destroy
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xa49be86c fw_core_initiate_bus_reset
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xab16f3b9 fw_fill_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xcc43569a fw_card_add
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xdf5ec473 fw_card_initialize
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xe8bbd8ed fw_iso_context_stop
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xeb78bc92 fw_core_add_address_handler
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xf34c858d fw_iso_buffer_init
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xf5503e51 fw_iso_context_start
+EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x03060d15 drm_mode_config_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x05515d67 drm_clflush_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x065db90c drm_agp_unbind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x078de204 drm_cvt_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e4a79da drm_getsarea
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d13802 drm_mm_search_free_in_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12d82c67 drm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x164004cc drm_agp_bind_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x17615291 drm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1999c0f9 drm_core_ioremap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a2a03aa drm_agp_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b01260a drm_mode_validate_clocks
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1cf73dd6 drm_i2c_encoder_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d15b23e drm_mode_connector_detach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f135d82 drm_agp_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f635f0c drm_addbufs_pci
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x22a3b010 drm_gem_vm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x23e0b826 drm_i2c_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x253bf34a drm_get_resource_len
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x298dd35a drm_irq_install
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cf852b5 drm_get_connector_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x31ba0744 drm_poll
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x329a69ef drm_mode_duplicate
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x33db1b67 drm_encoder_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3499457a drm_debugfs_remove_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x35155dbc drm_put_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x360e03fb drm_mode_create_dithering_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x365b7e7b drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ba3872d drm_unbind_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e32e584 drm_core_reclaim_buffers
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x41ac0a26 drm_agp_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43a4a71a drm_mode_object_find
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x47226352 drm_mode_connector_list_update
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x47bcbaf5 drm_mm_pre_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831d2c2 drm_mm_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x484dbb12 drm_rmmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a97bad4 drm_connector_property_set_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5373e655 drm_ati_pcigart_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5441ddb5 drm_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x570c5ccd drm_mode_find_dmt
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x57738559 drm_mode_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x59c2678e drm_master_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c0c096c drm_gem_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c4d4a18 drm_read
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5cfb9fb3 drm_addbufs_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d79fa14 drm_get_resource_start
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5de8e4cf drm_idlelock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e46bed7 drm_mode_prune_invalid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x61b798f2 drm_agp_acquire
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x642b4a29 drm_gem_handle_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6745b654 drm_sg_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a09ae5a drm_get_drawable_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d237c2b drm_gem_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fd119f0 drm_gem_object_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ff0c9dd drm_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x722ec4f5 drm_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x74d51128 drm_property_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x75599b00 drm_mode_create_tv_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x77bab6bb drm_add_edid_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x780c33f3 drm_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x780c4294 drm_sysfs_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x78b1b649 drm_mm_dump_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a36d30f drm_master_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b2f32e7 drm_idlelock_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d7a7204 drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f419695 drm_mode_connector_update_edid_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fc4233a drm_mode_config_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x82ade3f2 drm_mode_connector_attach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8895d30f drm_core_ioremap_wc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8cec68e3 drm_vblank_post_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ced24c4 drm_compat_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d22c4b3 drm_vblank_off
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dbfa843 drm_connector_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dea0dc4 drm_gtf_mode_complex
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x901289ce drm_pci_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9038f72d drm_gem_vm_close
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x95ebd7c0 drm_gem_object_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9911b8c9 drm_gtf_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9984a5e8 drm_agp_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x99f897a0 drm_get_encoder_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a633faa drm_sysfs_connector_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b24716f drm_connector_property_get_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d685e82 drm_mode_attachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fcc026c drm_get_edid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa350a48e drm_vblank_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3e168e1 drm_core_ioremapfree
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4e8183c drm_ati_pcigart_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa7b8cee drm_core_get_reg_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xab435dce drm_vblank_pre_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xac155c05 drm_free_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xad94f73a drm_framebuffer_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xadea5073 drm_mode_create_dirty_info_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xafa0c6be drm_mode_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xafccca01 drm_crtc_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4af0ea7 drm_i_have_hw_lock
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4eec16a drm_pci_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb65a38a5 drm_mode_validate_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6daf88c drm_crtc_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8ab1db2 drm_mode_detachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xba32c010 drm_handle_vblank
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xba89fd71 drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe1a25bd drm_rmmap_locked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc398acd3 drm_gem_object_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc47330cf drm_property_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc59a81fe drm_irq_uninstall
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6be4d0d drm_vblank_count
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7a7e287 drm_mode_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb043a38 drm_connector_attach_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcde8c0aa drm_vblank_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfcdd2da drm_framebuffer_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd42032dc drm_exit
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd631634a drm_lock_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8ded725 drm_lock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd92f6d0d drm_agp_bind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc20bde3 drm_addmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcc37afb drm_vblank_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd9f5e39 drm_mode_probed_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf55d4e5 drm_add_modes_noedid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1bd483a drm_agp_chipset_flush
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5ea87a7 drm_sysfs_connector_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe87ae3fc drm_mm_get_block_range_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xee0e4932 drm_vblank_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf081cda7 drm_agp_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf59a2472 drm_connector_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb5aa4bf drm_debugfs_create_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdcfc342 drm_fasync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe1e45dc drm_get_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0e15b9a4 drm_fb_helper_single_fb_probe
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x161f665d drm_kms_helper_poll_disable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x298760e3 drm_crtc_helper_set_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2a34c3ff drm_kms_helper_poll_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3ccd1099 drm_fb_helper_single_add_all_connectors
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f0c68ff drm_fb_helper_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f5e8837 drm_helper_crtc_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x416cb12d drm_fb_helper_fill_fix
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4724bac5 drm_fb_helper_check_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4aea053b drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4e992a23 i2c_dp_aux_add_bus
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5ca46a08 drm_fb_helper_initial_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6ba7ee0a drm_helper_encoder_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x71e9dddb drm_fb_helper_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x74e1cf75 drm_fb_helper_pan_display
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ad2c6cd drm_fb_helper_setcmap
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x80d3054c drm_fb_helper_fill_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x87ea2f35 drm_fb_helper_set_par
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x914fe02e drm_kms_helper_poll_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91c54573 drm_helper_connector_dpms
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9a501a26 drm_kms_helper_poll_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa333d262 drm_fb_helper_blank
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa68994cb drm_helper_disable_unused_functions
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc0f36eb2 drm_crtc_helper_set_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2a68beb drm_fb_helper_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc5d01750 drm_helper_resume_force_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdf2da013 drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe83d3907 drm_helper_hpd_irq_event
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0616cbd3 ttm_agp_backend_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0abd9acf ttm_bo_unreserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x15673d31 ttm_bo_wait
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x194acacf ttm_bo_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x19db9d0f ttm_ref_object_add
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2f630249 ttm_bo_reserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3175fd0c ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3b72b608 ttm_tt_populate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c46ee8d ttm_bo_move_ttm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4259fca5 ttm_bo_unmap_virtual
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x436e68b9 ttm_bo_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44409a13 ttm_global_item_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x46c2a52d ttm_bo_mem_space
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4884e26b ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x565f9b8d ttm_bo_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x58d32f9e ttm_bo_kunmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a22298f ttm_bo_evict_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ab24179 ttm_base_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ca5cb47 ttm_global_item_ref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5d089b64 ttm_bo_clean_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x60634c5e ttm_bo_swapout_all
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7141dccc ttm_ref_object_base_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d68e7ba ttm_bo_move_memcpy
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d902cc7 ttm_tt_bind
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x81adfdf2 ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88e4ab0e ttm_object_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x890fc111 ttm_mem_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x96ab0a3f ttm_mem_global_alloc
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98b7a72b ttm_write_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cad9496 ttm_vt_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa8b5d995 ttm_bo_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa9afeb53 ttm_bo_wait_unreserved
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab0fda6c ttm_base_object_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xabc1c9b1 ttm_mem_global_free
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac6bfb4d ttm_tt_set_placement_caching
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb5dcff45 ttm_bo_wait_cpu
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc106ed4d ttm_bo_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc64022a6 ttm_bo_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc82403d9 ttm_bo_init_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd778e032 ttm_object_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9a074fd ttm_bo_validate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd7920f6 ttm_object_file_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xde444a68 ttm_fbdev_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdf2ffea1 ttm_page_alloc_debugfs
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe21f18a4 ttm_mem_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe2876bd8 ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6652d73 ttm_base_object_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf5d7c0d4 ttm_bo_kmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa3286bf ttm_bo_synccpu_write_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa696d55 ttm_object_file_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfcce372b ttm_bo_global_release
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x55dca775 i2c_bit_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x85407567 i2c_bit_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x4295f8aa i2c_pca_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xf7f8ec1c i2c_pca_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x55af1808 i2c_pcf_add_bus
+EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x4eed36dd amd756_smbus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x019be0d7 dma_region_mmap
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x036d2cdc hpsb_make_readpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0376c4ed hpsb_destroy_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0716ea23 hpsb_iso_recv_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0a2388b2 hpsb_unregister_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0d2addcd hpsb_node_fill_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1176b43e hpsb_free_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x155defcd hpsb_packet_success
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x16a67954 hpsb_selfid_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x193d4b3e csr1212_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1ae3d9e2 hpsb_register_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x43ed9a16 hpsb_create_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4415795e hpsb_iso_recv_set_channel_mask
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x46606e98 hpsb_unregister_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x46e0fe92 hpsb_get_hostinfo_bykey
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4a93788c hpsb_iso_recv_listen_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4df688c4 hpsb_update_config_rom_image
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4f16ebee hpsb_set_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4fc22921 hpsb_make_writepacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x518d4100 csr1212_get_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x51a0359f hpsb_selfid_complete
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5818aac7 hpsb_iso_stop
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5837a003 hpsb_iso_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x65199d3b hpsb_iso_wake
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6ec2328f hpsb_protocol_class
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6fddd172 __hpsb_register_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x70c2c531 hpsb_iso_xmit_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x72559abd hpsb_iso_recv_release_packets
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x78138a03 hpsb_lock
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7e6df643 hpsb_iso_recv_flush
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x85c8160b hpsb_iso_xmit_sync
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8f16143b hpsb_allocate_and_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x92253bcf hpsb_node_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x99af4b3e hpsb_make_lock64packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9ac8ba02 hpsb_make_streampacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9b007e94 hpsb_read_cycle_timer
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9b06eaf9 hpsb_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa51feed7 hpsb_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa5a6cb3a hpsb_alloc_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa6032cf5 hpsb_add_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa60a4b70 hpsb_iso_xmit_queue_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa65ec9e4 hpsb_get_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8298da2 hpsb_bus_reset
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xabbb7285 hpsb_unregister_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xada49db9 hpsb_iso_recv_unlisten_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb1c754ca hpsb_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb529302d hpsb_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb5573cee hpsb_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb5daf8a4 hpsb_free_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb7be1732 hpsb_iso_xmit_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbae5da18 hpsb_resume_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc2fdf529 hpsb_iso_shutdown
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc3b01f95 hpsb_iso_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc5bbd16d hpsb_iso_recv_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc84e33cf hpsb_iso_n_ready
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcded561e hpsb_send_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd03637f9 hpsb_make_phypacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd6b74ade hpsb_set_packet_complete_task
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd6ff4965 hpsb_alloc_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd9751670 hpsb_remove_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xed8b28d2 hpsb_reset_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xeea48e68 hpsb_make_lockpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf3aa683e hpsb_set_hostinfo_key
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf425d433 hpsb_update_config_rom
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf9248f72 hpsb_get_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x5ca1340a ohci1394_stop_context
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x7d46a599 ohci1394_unregister_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x918d743f ohci1394_register_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x29cbd5fe rdma_addr_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc3f84f9d rdma_copy_addr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1932fb44 ib_send_cm_mra
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1abe5f8f ib_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1d5ad3cf ib_cm_notify
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1faa1c52 ib_send_cm_rtu
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4e293782 ib_send_cm_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6abd1c0e ib_send_cm_apr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6e7ddcea ib_send_cm_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x711bfc70 ib_send_cm_drep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x80875ebf ib_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x84b9788d ib_send_cm_lap
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa24f48c1 ib_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa259a35f ib_send_cm_sidr_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa27ef6fd ib_send_cm_sidr_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa8aef66a ib_send_cm_dreq
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbb3934a8 ib_send_cm_rej
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcf967ec3 ib_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf952cfdb cm_class
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00ae53e3 ib_modify_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01d72fcc ib_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x060de8f4 ib_find_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09a93d5c ib_destroy_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e7c5019 ib_destroy_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1616deb8 ib_rereg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b35ccca ib_alloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2052da71 ib_find_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26507ef7 ib_query_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2baef333 ib_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2da037ef ib_fmr_pool_map_phys
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f4af5b1 ib_query_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30ff6f5d ib_get_dma_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3247343f ib_modify_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x32893070 ib_detach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a48410b ib_query_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a80c918 ib_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3d94743f ib_dealloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f764291 ib_query_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x429d9e60 ib_query_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x47598450 ib_query_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4796f465 ib_alloc_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x490624ed ib_query_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c23339f ib_alloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4cbdb8e6 ib_reg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5538f806 ib_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x587ae892 ib_alloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61957ccf ib_modify_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x627e8898 ib_create_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x628ceb27 ib_dealloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69ae9fe5 ib_set_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69f965ac ib_flush_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6a752f85 ib_create_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6cfbfad6 ib_free_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6db2936b ib_register_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x721031b7 ib_init_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78dbc835 ib_get_cached_lmc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f8dc924 ib_modify_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x88dea750 ib_dereg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f985885 ib_create_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x92953ba5 ib_umem_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9b0f3307 ib_dealloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9eaac7a2 ib_dealloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa9851a77 ib_umem_page_count
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa074a0a ib_find_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb5ff61a7 ib_destroy_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb950938e ib_unregister_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbae5a0ee ib_get_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbb6bef9e ib_umem_release
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc74f1e08 ib_attach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd030d968 ib_unregister_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6b8833a ib_get_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd75eef27 ib_modify_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8384738 ib_query_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd9a423ee ib_dispatch_event
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdb967a78 ib_modify_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd0621aa ib_destroy_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xded464f5 ib_register_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdfd093d7 ib_resize_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe4240677 ib_get_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8fcd356 ib_create_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf11e2bdf ib_find_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf3ffa559 ib_alloc_fast_reg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf93ea018 ib_alloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfdc51895 ib_fmr_pool_unmap
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff1f7a0a ib_create_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1d982a77 ib_register_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2a24f550 ib_modify_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x38fdd4f0 ib_post_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4ac4ff3f ib_free_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7638cf37 ib_redirect_mad_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x90752f4e ib_process_mad_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x95841eb1 ib_get_rmpp_segment
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9794fbef ib_unregister_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xace7b15e ib_create_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc7c19633 ib_free_recv_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd65f81f5 ib_cancel_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xeda18a3d ib_register_mad_snoop
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x65d4ac9a ib_sa_service_rec_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6bb1dd69 ib_sa_cancel_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7c8e6a68 ib_init_ah_from_mcmember
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x90275d1a ib_sa_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa1cbddd7 ib_init_ah_from_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd4e2da74 ib_sa_get_mcmember_rec
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xfb6b04f6 ib_sa_path_rec_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x32180807 iw_cm_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3cea9200 iw_cm_connect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x42c9cc72 iw_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x53df8f53 iw_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6829ac33 iw_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8b973732 iw_cm_reject
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x96e8cb2c iw_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xea157569 iw_cm_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x05a8f0ca rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x12effbb3 rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2d896dc4 rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x30a56bac rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x339ab3de rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3697c7be rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x430c0874 rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x496babf8 rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6f0fa717 rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7e193ebe rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x827f1ef2 rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8a70ea85 rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9a805aea rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xac91ef1c rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdc5441d7 rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdf48073b rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xec0f82ee rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf681d02b rdma_resolve_route
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x169ac55f gameport_close
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x2df4f8f4 __gameport_register_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x4c885840 gameport_stop_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x5c82990a gameport_set_phys
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x8e94513d gameport_open
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xa2f3b25c __gameport_register_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xdb84e59d gameport_unregister_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xeec82f60 gameport_start_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xf3aac966 gameport_unregister_driver
+EXPORT_SYMBOL drivers/input/input-polldev 0x39453dc9 input_free_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x690eb020 input_unregister_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x9453d077 input_allocate_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xa4b7ff6f input_register_polled_device
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x17321f15 ad714x_disable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x4c7e38c4 ad714x_probe
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x7000b5b3 ad714x_remove
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xb86d0fc3 ad714x_enable
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x05318b05 sparse_keymap_free
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x34d52fdd sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x39be2aaf sparse_keymap_report_entry
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xa899b4ff sparse_keymap_setup
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xd23282ae sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xe64e6b16 sparse_keymap_report_event
+EXPORT_SYMBOL drivers/isdn/capi/capifs 0x64c3fb95 capifs_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/capifs 0xec1c7749 capifs_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2268db8c capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2df05ad3 detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x36de5e29 capi20_put_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47dbfa0a capi_message2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5ddb82db capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6581a736 capi20_register
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6f027f1d capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x777154ee attach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x877946ca capi_ctr_down
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8e9489f2 capi_ctr_suspend_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f5bbe6f capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0f4e1d66 b1_loaded
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1645f835 avmcard_dma_free
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2748da3d b1_load_t4file
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3a149cbe b1_load_config
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4a9a7c9e b1_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x58d1f58e b1_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x608ad961 b1ctl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x79c52f7d b1_alloc_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9e1ed11a b1_getrevision
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xad03fcd3 b1_parse_version
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd3d4af31 b1_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdab177c4 avmcard_dma_alloc
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe9de2e0f b1_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xefeb6ec1 b1_free_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf029cc4f b1_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1112336c b1dmactl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2b467a46 b1dma_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4e294461 b1dma_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4eea9ecd b1dma_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4f90ead7 b1dma_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x5c9806bb b1pciv4_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x65429fe7 b1dma_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xaa355ab5 b1dma_reset
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xece2cd86 t1pci_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1
+EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x183c42c3 proc_net_eicon
+EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x26263dfc mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x47652a6c mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xcc6102ea mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xe89bb5e9 mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x140972cb mISDNisar_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x69c19b46 mISDNisar_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x427ea441 FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x602d5ee2 hisax_init_pcmcia
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa9a1ee40 FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb4870f64 FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x5115efc0 isac_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x553e5c45 isacsx_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x6d973bae isac_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf4631012 isac_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf794f93e isacsx_irq
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xc10c66a7 register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xcb6351db isdn_ppp_unregister_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xddf31ff3 isdn_ppp_register_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0b1cbf83 mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x12015839 recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2423a303 get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x32b944f5 confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x43156d72 create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4326fbb0 mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4f65dc40 mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x58928f74 recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5ea22d76 bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x66b3743b mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7c5f901a mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x97801448 recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9a7e293b queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa85a30b9 dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xaf906e98 get_next_dframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb7dc706a recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbcd5a143 mISDN_freedchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbdb4c212 mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc9911755 recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd0acd3ff l1_event
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe3f81034 mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfae5cec4 mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register
+EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul
+EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp
+EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv
+EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page
+EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x24d946eb ir_raw_handler_register
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x3d07cea5 ir_raw_handler_unregister
+EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x249a6aa7 max2165_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x47a9a00f mc44s803_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xe92d68cc mt2060_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x5995a255 mt2131_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x5fa5d9c9 mt2266_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xcfc96fdd mxl5005s_attach
+EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xfd12f86e qt1010_attach
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x1b0d6114 xc2028_attach
+EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x962dd205 xc5000_attach
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0d978f4a flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1775a781 flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2b2c6109 flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2bf31281 flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x32ede168 flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3a07f085 flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x599808e1 flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5b153022 flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5de62e67 flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6692c90b flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6e3fa3d8 flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x81b2542d flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x88643de1 flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8ccaf076 flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9928ac40 flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbd6be7e4 flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdfb05baf flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe70d8096 flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xec274779 flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf9b81e6d flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x048b8744 bt878_device_control
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x209e5d08 bt878_start
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x3c8f59cc bt878
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x92dcb3fd bt878_stop
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0024346e write_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x178746f7 dst_error_recovery
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x209ad87f dst_attach
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4fb55eb1 rdc_reset_state
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5898929d dst_comm_init
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x64ce21d4 dst_error_bailout
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x72ea0cbd dst_pio_disable
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x9d96e2e4 dst_wait_dst_ready
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xdc75a770 read_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xf3e29f40 dst_ca_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0f39fda6 dvb_unregister_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1d288c5a dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2f7bdd06 dvb_ringbuffer_free
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31dab179 dvb_dmx_swfilter_packets
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x373b1b77 dvb_ringbuffer_read_user
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x39788629 dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x39ebd432 dvb_unregister_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a3aab99 dvb_ringbuffer_flush
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3ffa1fc7 dvb_dmxdev_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4b6632ef dvb_unregister_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x53fb82ea dvb_net_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x66960b21 dvb_ringbuffer_read
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6d964eb1 dvb_ringbuffer_avail
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6f8a54f4 dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x76627e35 dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x79110eb7 dvb_frontend_detach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7dad4bde dvb_dmxdev_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x849c8925 dvb_register_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x87c36616 dvb_dmx_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8894b426 dvb_dmx_swfilter_204
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9059ed41 dvb_net_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x96451b9b dvb_register_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x99171b72 dvb_generic_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa354bfc6 dvb_generic_open
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac466ae7 dvb_ringbuffer_empty
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb381c945 dvb_dmx_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb8e960ae dvb_dmx_swfilter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb976a677 dvb_frontend_reinitialise
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc535f849 dvb_ca_en50221_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xca4feed5 dvb_ringbuffer_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcc5a963c dvb_generic_ioctl
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd1b90709 dvb_register_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe66489a0 dvb_ringbuffer_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf029194d dvb_ca_en50221_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x09f0521c dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x206ee203 dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2f0d8843 dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x598c0a4c dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x60094e7f dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8b6add2f dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xae6be096 usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xb7554a30 af9005_rc_decode
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0f25785a dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x17d58d3c dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x1dc5ef3b dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2bfcfbe2 dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x461e4803 dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6a3ae765 dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x80d95b39 dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x8ba40fa5 dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xafe37414 dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd2006a9b dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xddd167f8 dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x27dac903 af9013_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0xe120f7c8 atbm8830_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x51cef4c5 au8522_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xca7c726a bcm3510_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xde4f83e5 cx22700_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x403902c2 cx22702_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x352523b6 cx24110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x3c760ad4 cx24113_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xa0fe469b cx24113_agc_callback
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xde65ec9b cx24116_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x082303f8 cx24123_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x2ad76592 cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x3563d7fc dib0070_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x4303e3d4 dib0070_get_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7d64369a dib0070_ctrl_agc_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xef6022f2 dib0070_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xf5504249 dib0070_set_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0ad88c64 dib0090_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x37411f3a dib0090_gain_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x3a404b6f dib0090_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4aad190e dib0090_get_current_gain
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4f87775a dib0090_dcc_freq
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x574f44b3 dib0090_pwm_gain_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x6c5d5c27 dib0090_register
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xe6bcbf3b dib0090_get_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xa2fa1446 dib3000mb_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x2c960e88 dib3000mc_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x54342d29 dib3000mc_pid_parse
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x78897e2e dib3000mc_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xd9d804dd dib3000mc_pid_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xea9939b0 dib3000mc_set_config
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xedeec042 dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x4fb45560 dib7000m_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x8618af34 dib7000m_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0b113e16 dib7000p_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x22e2a229 dib7000pc_detection
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3ff64fd3 dib7000p_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5262316c dib7000p_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8bb75152 dib7000p_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xbf8904ff dib7000p_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc1b54272 dib7000p_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xfc42de50 dib7000p_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x116a9514 dib8000_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x175cd561 dib8000_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2de8455b dib8000_pwm_agc_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x31027fe6 dib8000_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4c8f91f2 dib8000_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x585812d0 dib8000_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5f18969d dib8000_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x9271b1d0 dib8000_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xac9ec0a9 dib8000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb0640952 dib8000_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xff00440d dib8000_get_adc_power
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x05dc8f63 dibx000_exit_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x124a48a4 dibx000_get_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x2d0ef12d dibx000_reset_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xcffcc744 dibx000_init_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xe9257ea7 ds3000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xf6cdc9cb dvb_pll_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xa83b8060 isl6405_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x8a01c1ff isl6421_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xf961cb3a isl6423_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x99503bcb itd1000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x13376100 l64781_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x93787f46 lgdt3305_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xa62a537d lgdt330x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xe7e3e772 lgs8gxx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x35a3bd22 lnbh24_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xff50709a lnbp21_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0xbd04453a mb86a16_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x5c92d3ff mt312_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x0bcb6282 mt352_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x70704052 nxt200x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x773e97f7 nxt6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x100639b0 or51132_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xf4fb9571 or51211_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xc4323c0b s5h1409_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xe0d069e1 s5h1411_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x0bacf7f6 s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xe588e691 s5h1420_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x8c172c0b si21xx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x920ba9e5 sp8870_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xa083c58f sp887x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x39131d82 stb0899_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x8632bfe2 stb6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xee43f043 stb6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xea2d767d stv0288_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x268eca22 stv0297_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x7cf3cab4 stv0299_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xbfb241c3 stv0900_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x72257dba stv090x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x6f022e74 stv6110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xe277760f stv6110x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xf7b54529 tda10021_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x70110637 tda10023_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x720512c2 tda10048_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xba7f978a tda10045_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xd36eb636 tda10046_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xaf8d3d45 tda10086_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xf71b8c99 tda8083_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x8c8fd7fd tda8261_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xde8522fd tda826x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x2a71b5f4 tua6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xc48d9c18 ves1820_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x03dcb88d ves1x93_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x620298cc zl10036_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xf26a4ad9 zl10039_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x072135fb zl10353_attach
+EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x25f87545 ttpci_eeprom_parse_mac
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x9014452c ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xbbd344e6 ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x0068f68b bttv_sub_register
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x1a801ed9 bttv_sub_unregister
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x51f60254 bttv_get_pcidev
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc595e283 btcx_riscmem_free
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xef0abbcb btcx_riscmem_alloc
+EXPORT_SYMBOL drivers/media/video/cpia 0x254344da cpia_unregister_camera
+EXPORT_SYMBOL drivers/media/video/cpia 0x368a7e4c cpia_register_camera
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x7024b190 cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x8624a829 cx18_release_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x9ff57142 cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xcae39370 cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xde51a8d3 cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x0dca8202 cx231xx_register_extension
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x90d89aa3 cx231xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x25ec70e8 vp3054_i2c_probe
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xcc394ff4 vp3054_i2c_remove
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x05355eb7 cx8800_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x0d23c73b cx88_get_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x16bafbdf cx88_set_freq
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x3b05c025 cx88_set_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x5506878f cx88_video_mux
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xade4cefb cx88_enum_input
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x309645bc cx8802_buf_prepare
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x53f7f39b cx8802_register_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xb52fe799 cx8802_cancel_buffers
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xbc0f15b9 cx8802_buf_queue
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xc0fe6a79 cx8802_get_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf796b60d cx8802_unregister_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1c034589 cx88_risc_stopper
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2c56ce4b cx88_risc_databuffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x33799deb cx88_sram_channel_dump
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x34b4e7f8 cx88_shutdown
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3bfa8aaf cx88_set_tvnorm
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x46f8ea5c cx88_core_get
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x55e6deca cx88_set_stereo
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6554d652 cx88_vdev_init
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x671ea443 cx88_set_scale
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7be130ae cx88_sram_channel_setup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7f811284 cx88_ir_start
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x89d1c2ec cx88_core_put
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9f72b394 cx88_wakeup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa1c2b705 cx88_core_irq
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbfd7c0fa cx88_set_tvaudio
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc1e844a1 cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcc66e6bd cx88_reset
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd2c19ed8 cx88_free_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd87c0de3 cx88_newstation
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe09b5f0b cx88_ir_stop
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe35d2f59 cx88_risc_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xeb7d93ae cx88_get_stereo
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x8c231d2b em28xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xcae5efdc em28xx_register_extension
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x056d6bb1 gspca_disconnect
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x2723db1a gspca_get_i_frame
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x410d9dc7 gspca_auto_gain_n_exposure
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6391622e gspca_dev_probe
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6d1e29d0 gspca_suspend
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa73d5be3 gspca_resume
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xd4b2a0ea gspca_frame_add
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x04dc6c7c ivtv_api
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x15536076 ivtv_vapi_result
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x1f1add9c ivtv_udma_unmap
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x572cfad7 ivtv_set_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5bead2af ivtv_vapi
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x638d39c6 ivtv_udma_prepare
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6b0bc84d ivtv_clear_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x94a20c69 ivtv_udma_setup
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb29fd391 ivtv_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbcae0435 ivtv_udma_alloc
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xdbed7466 ivtv_init_on_first_open
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x19cca17d saa7134_pgtable_alloc
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x21d3b258 saa7134_ts_register
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x273aeefb saa_dsp_writel
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3cb3ce7b saa7134_devlist_lock
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4e859bad saa7134_tvaudio_setmute
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x58688ee8 saa7134_set_gpio
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x80fc3711 saa7134_dmasound_init
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x81d975eb saa7134_pgtable_build
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8982d35a saa7134_dmasound_exit
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbf2ccfdd saa7134_ts_unregister
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd623efc2 saa7134_set_dmabits
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xea04dd8a saa7134_pgtable_free
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x1dd4521d soc_camera_host_register
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x948d37eb soc_camera_apply_sensor_flags
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xab636d76 soc_camera_xlate_by_fourcc
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xdc6a0466 soc_camera_host_unregister
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x518ed083 tveeprom_hauppauge_analog
+EXPORT_SYMBOL drivers/media/video/tveeprom 0xd5312bd8 tveeprom_read
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x2d9d7c74 usbvideo_RegisterVideoDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x32be48af usbvideo_AllocateDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x4dac5792 usbvideo_Deregister
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x5cbc5b98 usbvideo_TestPattern
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xb13cb386 usbvideo_register
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xc441e31d usbvideo_DeinterlaceFrame
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush
+EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xf948f53e v4l_compat_translate_ioctl
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x6d63fb9b v4l2_chip_ident_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x95de8e3a v4l2_chip_match_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x1e47adcc v4l2_m2m_mmap
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x3e671563 v4l2_m2m_get_vq
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x4c2c1b0d v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x6afa3293 v4l2_m2m_job_finish
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x3fc35a54 videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x421f3a0d videobuf_dvb_dealloc_frontends
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x4ed06449 videobuf_dvb_get_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x7ab4247b videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x80541a2b videobuf_dvb_register_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb7c1ff5b videobuf_dvb_find_frontend
+EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period
+EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x1f498db5 video_unregister_device
+EXPORT_SYMBOL drivers/media/video/videodev 0x3905bd20 video_register_device_no_warn
+EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x446c15b5 video_usercopy
+EXPORT_SYMBOL drivers/media/video/videodev 0x4bced313 video_ioctl2
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl
+EXPORT_SYMBOL drivers/media/video/videodev 0x641f648e video_device_alloc
+EXPORT_SYMBOL drivers/media/video/videodev 0x91357326 video_device_release_empty
+EXPORT_SYMBOL drivers/media/video/videodev 0xcf73dc6a video_register_device
+EXPORT_SYMBOL drivers/media/video/videodev 0xd4d0ec0d video_devdata
+EXPORT_SYMBOL drivers/media/video/videodev 0xda7f9d3d video_device_release
+EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct
+EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x1c7d2449 videocodec_detach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x4ef3ea38 videocodec_attach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x84d399fc videocodec_register
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xe50181a5 videocodec_unregister
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x488cab20 memstick_resume_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x5107cfa9 memstick_set_rw_addr
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x560618b2 memstick_unregister_driver
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x63dc6077 memstick_register_driver
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x830ea586 memstick_next_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x90810e8a memstick_init_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x909fb80f memstick_suspend_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xb4206860 memstick_free_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xd8fe116a memstick_alloc_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xe58a09ad memstick_new_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xe707c5d3 memstick_remove_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xefa97fe6 memstick_add_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xf09cc642 memstick_detect_change
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x05bd32fa mpt_verify_adapter
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1c489479 mpt_halt_firmware
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1e5001a9 mpt_reset_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x28eba4d0 mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x32b68a39 mpt_detach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3c348018 mpt_resume
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x400261be mpt_HardResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4185280f mpt_print_ioc_summary
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x44ce3d13 mpt_send_handshake_request
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5ba7bef4 mpt_free_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x64d90d3a mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x77b13a89 mpt_alloc_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x88ef2902 mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x899efd69 mpt_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8bb4d563 mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x953d30b3 mpt_config
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x996f6f66 mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa7fbb8d0 mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xba5a8f8c mpt_device_driver_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc2debd0f mpt_GetIocState
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xce441e62 mpt_put_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd19241de mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd845dccc mpt_event_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe58f8d37 mpt_free_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe84f98f7 mptbase_sas_persist_operation
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xeb13a7df mpt_attach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf4a55794 mpt_findImVolumes
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfcf631a5 mpt_get_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xffec346f mpt_register
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0eb328df mptscsih_scandv_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x14d1239c mptscsih_is_phys_disk
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1c142215 mptscsih_io_done
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x25f31b13 mptscsih_host_attrs
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x26546840 mptscsih_dev_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2cc47e87 mptscsih_get_scsi_lookup
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x468035cd mptscsih_event_process
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x479892f8 mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4e5c48fe mptscsih_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x54090e8d mptscsih_ioc_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5d4a1951 mptscsih_bios_param
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5e64b4db mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x60619fba mptscsih_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x736cc25a mptscsih_proc_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x77ea5777 mptscsih_bus_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7e02fe06 mptscsih_qcmd
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x830fa723 mptscsih_shutdown
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8bff8667 mptscsih_host_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8c0fd690 mptscsih_resume
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9a8c03f9 mptscsih_slave_configure
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa2fe3a3a mptscsih_abort
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa4f67b50 mptscsih_remove
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xabc02e34 mptscsih_raid_id_to_num
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcd1533a2 mptscsih_taskmgmt_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe12dd648 mptscsih_change_queue_depth
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xec7f7950 mptscsih_slave_destroy
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x127994e6 i2o_device_claim_release
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2c8d4dcc i2o_status_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3508b4d1 i2o_cntxt_list_add
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x37d6a446 i2o_parm_issue
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x50fd032d i2o_cntxt_list_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5c720fcf i2o_find_iop
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x60b9f138 i2o_driver_notify_controller_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x63e130f7 i2o_driver_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6dc6b79c i2o_event_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7c5d41fb i2o_parm_field_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7df22b81 i2o_iop_find_device
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa514356d i2o_device_claim
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xad4fe709 i2o_driver_notify_device_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb0bc0d7a i2o_exec_lct_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb0be5105 i2o_driver_unregister
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd222be7d i2o_driver_notify_controller_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd8a0e0b4 i2o_cntxt_list_remove
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdbe6e2dd i2o_parm_table_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe381080c i2o_driver_notify_device_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf598a4c9 i2o_msg_post_wait_mem
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfbb8058b i2o_msg_get_wait
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfcd3e540 i2o_cntxt_list_get_ptr
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x0f207bbc pasic3_read_register
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xfe8cf871 pasic3_write_register
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2a19f3b4 mc13783_irq_request_nounmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3da56aaf mc13783_irq_request
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x449ec3c4 mc13783_lock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x490c6bbd mc13783_unlock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x5bc786e2 mc13783_irq_unmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x63cfaf6b mc13783_reg_read
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x875ef12b mc13783_reg_write
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x9f2f2871 mc13783_irq_ack
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xa26e18ca mc13783_irq_mask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xbc637d72 mc13783_irq_free
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xca508e0a mc13783_irq_status
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe30ba35a mc13783_reg_rmw
+EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2
+EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1
+EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib
+EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led
+EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw
+EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x2f5c4a21 ad_dpot_remove
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x9d748faa ad_dpot_probe
+EXPORT_SYMBOL drivers/misc/c2port/core 0x55c00f7d c2port_device_unregister
+EXPORT_SYMBOL drivers/misc/c2port/core 0xc7fce724 c2port_device_register
+EXPORT_SYMBOL drivers/misc/ioc4 0x0d345774 ioc4_register_submodule
+EXPORT_SYMBOL drivers/misc/ioc4 0x76d8ca1f ioc4_unregister_submodule
+EXPORT_SYMBOL drivers/misc/tifm_core 0x5051fe25 tifm_unregister_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x768ebeb5 tifm_unmap_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x85ce929f tifm_free_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x87bd4c86 tifm_map_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x8a9bcc53 tifm_free_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x8d432089 tifm_has_ms_pif
+EXPORT_SYMBOL drivers/misc/tifm_core 0x932333ad tifm_alloc_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x97049b92 tifm_eject
+EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work
+EXPORT_SYMBOL drivers/misc/tifm_core 0xc4d34fc6 tifm_register_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0xe7e7edfb tifm_add_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xf247f24a tifm_alloc_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0xff94fc31 tifm_remove_adapter
+EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x454a7fe6 mmc_cleanup_queue
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x5abed614 cfi_varsize_frob
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x9f04c559 cfi_read_pri
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd42664ac cfi_fixup
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x6c2ce28c unregister_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x986a701d map_destroy
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xecc614f1 register_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xf3081eb2 do_map_probe
+EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xc253df06 mtd_do_chip_probe
+EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x1fcc20c9 lpddr_cmdset
+EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xc631bed5 simple_map_init
+EXPORT_SYMBOL drivers/mtd/mtd 0x87e05c19 add_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtd 0x969c1b93 del_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x396aefea mtd_concat_destroy
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x868c7b4c mtd_concat_create
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x090d08be nand_default_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x549fb2ff nand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x02ddeba9 nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x541070ba nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x1a25482a onenand_addr
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x556a99fa flexonenand_region
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9c37ca54 onenand_default_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9fd9be7d onenand_scan_bbt
+EXPORT_SYMBOL drivers/net/8390 0x028a8aff __alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/8390 0x1e3e204b ei_get_stats
+EXPORT_SYMBOL drivers/net/8390 0x2030e1a8 ei_tx_timeout
+EXPORT_SYMBOL drivers/net/8390 0x2a66c333 NS8390_init
+EXPORT_SYMBOL drivers/net/8390 0x3f379d78 ei_open
+EXPORT_SYMBOL drivers/net/8390 0x434c9c92 ei_close
+EXPORT_SYMBOL drivers/net/8390 0x4ae56f50 ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390 0x54c6b9b9 ei_poll
+EXPORT_SYMBOL drivers/net/8390 0xc022f9c1 ei_start_xmit
+EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt
+EXPORT_SYMBOL drivers/net/8390 0xde542f61 ei_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1b55bf1a arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x31278c1f arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4fa48a72 arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x55a22091 arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5a5cc3c0 alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x91650ac2 arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x94426269 arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x97d2f4ec arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x99ed9176 arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe381d471 arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x3407d827 com20020_check
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x52a62274 com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x7db74216 com20020_found
+EXPORT_SYMBOL drivers/net/bnx2 0xbecf1e26 bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/bnx2x 0xe424e04b bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/cnic 0x38377cf0 cnic_register_driver
+EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0757cdf3 cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1e2c36a7 cxgb3_register_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1fe6e9ad cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x25275a55 cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x27a3440a cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2992490e cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2a36c1b3 cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x455506a2 t3_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x61bb7c32 cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa8301a58 t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd4f1d328 cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd727a737 t3_l2e_free
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe2bd65fb dev2t3cdev
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe88070ea t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf3526e49 t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfa15d7d2 cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x063393a8 cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x106c3862 cxgb4_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x320cd9c8 cxgb4_netdev_by_hwid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x398e7af9 cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x516ff57b cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5a222705 cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6db7d7d2 cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x73a933f9 cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x74b95696 cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7547b8a4 cxgb4_create_server6
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7e5aee57 cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8e5ab2b3 cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x93b892f6 cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa1783362 cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb1505633 cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xcffcac0e cxgb4_create_server
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe6e01d1b cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x0028c445 hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x49bdfb64 hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x5a8cde84 hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x641f185e hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xfcbf05df hdlcdrv_register
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4657dba2 sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6e41fb8d sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x768d4dad sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x883b3b1b sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9ab08cc9 sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xaedbf784 sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xba80ccf2 irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcee1158e sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdef55f13 sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfe22ad63 irda_register_dongle
+EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage
+EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl
+EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart
+EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag
+EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe
+EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an
+EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok
+EXPORT_SYMBOL drivers/net/mii 0x02cfe3c4 mii_ethtool_sset
+EXPORT_SYMBOL drivers/net/mii 0x321bfe68 generic_mii_ioctl
+EXPORT_SYMBOL drivers/net/mii 0x4a67bdbc mii_check_gmii_support
+EXPORT_SYMBOL drivers/net/mii 0x721136bb mii_link_ok
+EXPORT_SYMBOL drivers/net/mii 0x776c32b8 mii_nway_restart
+EXPORT_SYMBOL drivers/net/mii 0x85fc5c4f mii_check_media
+EXPORT_SYMBOL drivers/net/mii 0xc8148cc4 mii_ethtool_gset
+EXPORT_SYMBOL drivers/net/mii 0xc9d5e100 mii_check_link
+EXPORT_SYMBOL drivers/net/pppox 0x6bb2c87a pppox_ioctl
+EXPORT_SYMBOL drivers/net/pppox 0xa0b32825 register_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0xb7d624c9 pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/sungem_phy 0x25b234f8 mii_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x00d86fcc tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x2fc2deb4 tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xb202b39f tms380tr_open
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xcd810877 tmsdev_term
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xeb1963ab tms380tr_close
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x03edd79b register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x03f03504 hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x1bed98f1 hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x294773ce attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x3eb3f0dd hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x46e867df detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x56bc2fe1 hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x629460c2 alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x8e9d561f hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xd465eafd unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xf5156cf8 unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xfa6d47da i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x88adf840 reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x8fb1620f init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x941b6276 stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x24346421 ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7f9a1b42 ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x988135f0 ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xdb21d023 ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x207bbfd5 ath9k_cmn_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2ee3bda4 ath9k_cmn_rx_skb_preprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3fc98c38 ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x691a0390 ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8d309e35 ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8d96ce64 ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x9e40504f ath9k_cmn_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0579d2ea ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0741941b ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ea188fc ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f749dc0 ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e1201b2 ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f9b7158 ath9k_hw_extend_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1fdb5849 ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1fe6d70c ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x202f844a ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2321e067 ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23bbaeee ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x289d854f ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29b5e6c7 ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b21c6f6 ath9k_hw_setmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2bd69616 ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d1d1ed3 ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x34e29b5e ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x369a1138 ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38fddf1a ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3ba0b3ca ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c90bad5 ath9k_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d352d42 ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3fb3ca0d ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x454b1737 ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x461caa6b ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a83dfbe ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ad9b10b ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ebcbbb5 ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x636f2d62 ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63805c6e ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x647b042c ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65349edc ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6568dca7 ath9k_hw_setcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e7de167 ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7106318d ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73481daa ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x742508b8 ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7575df2a ath9k_hw_set_keycache_entry
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77af93dd ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d92e169 ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7db5aeac ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x81da99a6 ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88478ce2 ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f36877a ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91759edc ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x924609f0 ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9bcc3cce ath9k_hw_stoppcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d17e1af ath9k_hw_keysetmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa489ba7a ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa529d82f ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa6aef2b2 ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad77ec0c ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xadc60f64 ath9k_hw_procmibevent
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf4a2936 ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xafc90db1 ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb12133fd ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1b149f8 ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb41708cb ath9k_hw_stoptxdma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4e1b746 ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbab3c745 ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb1c22d8 ath9k_hw_getcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc109a422 ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc15f86c3 ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2569c5b ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc359b4d2 ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5389aab ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca3108b7 ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1a4ea32 ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd51314a1 ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd664240c ath9k_hw_cleartxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde6dedda ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdeff8542 ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe15e12db ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe57e47f3 ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8ebfeac ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xedba7d6d ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf92524d2 ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc302942 ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfeb761f3 ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfed13967 ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfed7699f ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfefe67a5 ath9k_hw_keyisvalid
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x3694fdb4 init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xcca2b318 stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xf70458db atmel_open
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x03acb5d7 hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x09f0ca44 hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1119cd1b prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x147ea57d hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3392bb02 hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3395d7ae hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3dfeada6 hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4bda7802 hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x526ed172 hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5fa3d3b0 hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x76e995d5 hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x80f22b82 hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8dc248bf hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9cf762f3 hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa73fa012 hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa9e9cd4a hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xab96dde6 hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbdfba3d1 hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc0060f90 hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd1fdc3bf hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdf407180 hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xebbceb87 hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xed54aaa8 hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xed92f228 hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf31116e6 hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x02fdab3a libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0e4c7c2f libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x15d8ab8e libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1ebf744a libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x22f6f7f8 libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x26759059 libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6c3d272a libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x973244dc libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa12e0fbb libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb5524c18 free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbdf12b3b libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc386d9fc alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc5fbbfcd libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd1d9f912 libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdd0e7d54 libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe1036aeb libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe7f79c1d libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe921d9ac libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xeb27c434 libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xed98346e libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf9b422a3 libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x017e166d iwl_remove_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x02cefecd iwl_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x05ea4314 iwl_leds_background
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x068ceb7e iwl_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x07012d5c iwl_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0ce2f4e4 iwl_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e775ffd iwl_eeprom_get_mac
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e7c9c57 iwl_bg_start_internal_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14cc53df iwl_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14d641b1 iwl_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19168980 iwl_setup_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a22d9e6 iwlcore_eeprom_enhanced_txpower
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x203fe1ff iwl_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21c43f9b iwl_add_bssid_station
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2228fcd1 iwl_rf_kill_ct_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x260da73e iwl_sta_tx_modify_enable_tid
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x27177499 iwl_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x28a9b103 iwl_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x29f531a8 iwl_verify_ucode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b6bca84 iwl_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2cacb288 iwl_good_plcp_health
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32a58841 iwl_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x33167f63 iwl_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x34f7c79c iwl_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35c6014f iwl_ht_enabled
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37004251 iwl_sta_modify_sleep_tx_count
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x39bd0867 iwl_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3afe6bed iwl_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3d0fc0ba iwl_update_tkip_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x40505e3c iwl_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x40ff77d0 iwl_set_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41dc7efb iwl_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x427bb269 iwl_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4428f3bc iwl_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x453862a7 iwl_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x45a0850b iwl_sta_modify_ps_wake
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4709b712 iwl_led_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x485009d4 iwl_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x485ebc55 iwl_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x499c965b iwl_eeprom_check_version
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a294388 iwl_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4b0bb907 iwlcore_eeprom_acquire_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e7b9750 iwl_mac_beacon_update
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x51b96b36 iwl_tt_enter_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x51d19dbb iwl_free_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5d306f01 iwl_remove_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x602940ff iwl_tt_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6226e77e iwl_tt_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62ce21e2 iwl_rx_missed_beacon_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62d62ee3 iwl_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62d77ef0 iwl_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x63d40c1f iwl_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6608ab63 iwl_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6686786f iwl_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6a066f7b iwl_restore_default_wep_keys
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6b395764 iwl_send_calib_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6e2d170a iwl_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7146cf46 iwl_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71db00d0 iwl_bg_abort_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7245173b iwl_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x72ccc4e3 iwl_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7424b265 iwl_dump_csr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x74783110 iwl_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7d088010 iwl_chain_noise_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8327e50c iwlcore_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85dbd968 iwl_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85ea6909 iwl_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x86c21875 iwl_tt_handler
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8778cdd6 iwlcore_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89c21f02 iwl_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8b7b0d09 iwl_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8bce0594 iwl_sta_rx_agg_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8fdf6d8f iwlcore_eeprom_verify_signature
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8ff6fa14 iwl_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x90db29d6 iwl_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x91984c6f iwl_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x930fda96 iwl_tt_exit_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x93f7f9cc iwl_dump_fh
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x940c51aa iwlcore_rts_tx_cmd_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x94f207ef iwl_calib_free_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x99e72e40 iwl_rate_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9faced57 iwl_calib_set
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa3b21f20 iwl_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5e58975 iwl_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa6f6454e iwl_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa74a60a0 iwl_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa765bf5a iwl_set_hw_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa789c20c iwl_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa9d6dd53 iwlcore_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xab140194 iwl_recover_from_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xace9bb61 iwl_toggle_tx_ant
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xad2449c2 iwl_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xae29a625 iwl_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xae5c5c14 iwl_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb099f28c iwl_force_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb11711fd iwl_rx_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb58b9be6 iwl_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb59568f4 iwl_free_tfds_in_queue
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8473f77 iwl_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb86a0fa3 iwl_bg_scan_completed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb9d70c40 iwl_sta_rx_agg_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbabd6739 iwl_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbed219ba iwl_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc2181a7c iwl_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc53ce691 iwl_hw_detect
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc63605a1 iwl_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc64668b3 iwl_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcee2e239 iwlcore_eeprom_release_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf7862d2 iwl_reset_run_time_calib
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd5c6de17 iwl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd707a3da iwl_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd751b623 iwl_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd82bb2aa iwl_set_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdaae783e iwl_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdbde32e0 iwl_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdc414a46 iwl_reply_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdd62b227 iwl_set_rxon_chain
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe07f2f1d iwl_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3a45fc7 iwl_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe6526d87 iwl_tx_ant_restriction
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67257a2 iwl_bg_scan_check
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7876140 iwl_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xed54b750 iwl_configure_filter
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2759e2a iwl_sensitivity_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf4324d76 iwl_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa636e05 iwl_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa9dd20f iwl_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfb301ac5 iwl_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe82c3e0 iwl_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff180c17 iwl_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff7c39cb iwl_init_sensitivity
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x162ba7f1 orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1e3338e0 orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2ffaf29c orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x30cfc592 orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3f194d8f __orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5d4c41c1 orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x607cace3 free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x73fd4746 alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7982ec28 __orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7995a833 orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7c179684 orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbcf55ee6 orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xde711df2 orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe59426e3 orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfa3a292c orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfa544b70 orinoco_tx_timeout
+EXPORT_SYMBOL drivers/parport/parport 0x01f48077 parport_read
+EXPORT_SYMBOL drivers/parport/parport 0x17a34bd3 parport_register_driver
+EXPORT_SYMBOL drivers/parport/parport 0x1f6fb212 parport_set_timeout
+EXPORT_SYMBOL drivers/parport/parport 0x2f4cca10 parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL drivers/parport/parport 0x31b9c93a parport_claim_or_block
+EXPORT_SYMBOL drivers/parport/parport 0x37432fd7 parport_wait_peripheral
+EXPORT_SYMBOL drivers/parport/parport 0x3af6b995 parport_release
+EXPORT_SYMBOL drivers/parport/parport 0x3c527322 parport_announce_port
+EXPORT_SYMBOL drivers/parport/parport 0x44d4728a parport_ieee1284_write_compat
+EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt
+EXPORT_SYMBOL drivers/parport/parport 0x554387d3 parport_ieee1284_epp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x55917298 parport_negotiate
+EXPORT_SYMBOL drivers/parport/parport 0x5e6742f9 parport_find_number
+EXPORT_SYMBOL drivers/parport/parport 0x62d478d4 parport_unregister_device
+EXPORT_SYMBOL drivers/parport/parport 0x6b0a52ba parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x8c484842 parport_register_device
+EXPORT_SYMBOL drivers/parport/parport 0x91b4597c parport_ieee1284_read_byte
+EXPORT_SYMBOL drivers/parport/parport 0x91b8f36a parport_ieee1284_epp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0x950f2169 parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler
+EXPORT_SYMBOL drivers/parport/parport 0xa9d3589c parport_claim
+EXPORT_SYMBOL drivers/parport/parport 0xaa238621 parport_put_port
+EXPORT_SYMBOL drivers/parport/parport 0xab46f400 parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0xbda25ef5 parport_write
+EXPORT_SYMBOL drivers/parport/parport 0xbdff0137 parport_ieee1284_read_nibble
+EXPORT_SYMBOL drivers/parport/parport 0xbe0f144d parport_remove_port
+EXPORT_SYMBOL drivers/parport/parport 0xc17f9665 parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0xd1d76a68 parport_register_port
+EXPORT_SYMBOL drivers/parport/parport 0xe09d0f57 parport_unregister_driver
+EXPORT_SYMBOL drivers/parport/parport 0xe1cc4609 parport_find_base
+EXPORT_SYMBOL drivers/parport/parport 0xf73f06e5 parport_get_port
+EXPORT_SYMBOL drivers/parport/parport 0xfdc20918 parport_wait_event
+EXPORT_SYMBOL drivers/parport/parport_pc 0x1bc280aa parport_pc_probe_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0x5cff4cca parport_pc_unregister_port
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x01a333f2 pcmcia_request_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x07dffa41 pcmcia_modify_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x09ccd36c pcmcia_loop_config
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x18892993 pcmcia_dev_present
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2d1b9f0c pcmcia_access_configuration_register
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x46c236ca pcmcia_request_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4c734b17 pcmcia_unregister_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6c419902 pcmcia_get_mac_from_cis
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x896a4928 pcmcia_release_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x938ecd20 pcmcia_get_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa35b7b53 pcmcia_request_io
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa73518af pcmcia_disable_device
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xafa578b8 pcmcia_loop_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb7246336 pcmcia_request_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc3c24b39 pcmcia_map_mem_page
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcad4d727 pcmcia_register_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf8423b1e __pcmcia_request_exclusive_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x28fdeafc pcmcia_put_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3327433a pcmcia_socket_class
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x41576450 pcmcia_parse_uevents
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x48e0548f pcmcia_get_socket_by_nr
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x82898e09 pcmcia_reset_card
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9cfecf4c pcmcia_parse_events
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa02fac99 pcmcia_register_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xacc56c7e pcmcia_unregister_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb3e7b9f1 pcmcia_get_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xecd5b224 pccard_register_pcmcia
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x01ac8983 pccard_nonstatic_ops
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x9095d986 pccard_static_ops
+EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command
+EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x3dab6016 pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0d9255f8 fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x23dbd3c2 fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x352adbfd fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x805f8645 fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x848c92c7 fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa6f588b4 fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xaab0b04a fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00a2f53c fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x046ac5fc fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0bb5b963 fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0f52001c fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14e2382f libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1d4276a3 fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1e92112e fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x228205ff fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x27e4e76d fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x295ddaed fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3140b19a fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3f3233f9 fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4093f98b fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4596881c fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4a39a3e0 fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4bca9c24 fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6227e32d fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x679dda9c fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x69671f84 fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x72822a0c fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x72ed543c fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76514e48 fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7d4d3062 fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x82691fc8 fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x90b28800 fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b270cc2 fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ca39bb4 fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ca94070 fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9fb10817 fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7d1b77a fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xabbb3f38 fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xae4280d7 fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb7365949 fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbfff4d88 fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xceaff541 fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd942767e fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdc1527b9 fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf5088d46 fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf752dd13 fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc035057 _fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc169adf fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfcfbdab1 fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x64e25b56 mraid_mm_register_adp
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x012c1da3 osd_req_flush_obsd
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x06b23792 osd_req_list_dev_partitions
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x225637f2 osd_req_add_set_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3ba6ea0e osd_req_list_collection_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x42a88104 osd_req_read_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4bfa74f6 osd_req_decode_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5017594d osd_req_flush_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x53b2b3f7 osd_req_get_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x573bb2b8 osd_req_read
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5c737963 osd_req_flush_collection
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x61a73c85 osd_req_remove_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x68c4b84f osd_req_write_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6a915c69 osd_req_remove_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x705131ff osd_execute_request_async
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7129e0cd osd_req_list_partition_collections
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x81c828b1 osd_req_add_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x93f3e9c1 osd_finalize_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x943d2b03 osd_req_create_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaade077c osd_req_decode_sense_full
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaf846e81 osd_end_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb4cf6d5c osd_req_add_get_attr_page
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb67a64ec osd_req_create_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb98497d3 osd_req_set_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbcec8b9a osd_dev_fini
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf4e0600 osd_req_flush_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd4673ad8 osd_start_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd509bf5d osd_req_write
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe8d67b62 osd_req_format
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xeb464099 osd_req_list_partition_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xeeaec092 osd_execute_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf665c7b8 osd_dev_init
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfb7c2cd4 osd_auto_detect_ver
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x54c0253d osduld_device_info
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x75876d94 osduld_device_same
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xdbda41c6 osduld_register_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xe2f9b6b3 osduld_info_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xe7c46b1e osduld_path_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xf857fb80 osduld_put_device
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x09807582 qlogicfas408_abort
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x510cce73 qlogicfas408_bus_reset
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xadf5e0b7 qlogicfas408_disable_ints
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xae887fbf qlogicfas408_queuecommand
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb519dc56 qlogicfas408_info
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdf6b0763 qlogicfas408_biosparam
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup
+EXPORT_SYMBOL drivers/scsi/raid_class 0xf20f3173 raid_class_attach
+EXPORT_SYMBOL drivers/scsi/raid_class 0xfd135970 raid_class_release
+EXPORT_SYMBOL drivers/scsi/raid_class 0xfe8ffa6f raid_component_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x020ceb90 fc_host_post_vendor_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x27cd3986 fc_vport_create
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x293cb8f4 scsi_is_fc_rport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x479ca1d7 fc_remote_port_rolechg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4e29d712 fc_host_post_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x79169e17 fc_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7e51bf18 fc_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x87d15a7a fc_remote_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x97b36ef0 fc_block_scsi_eh
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9a67d68b fc_remote_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xacfb53ec fc_vport_terminate
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf3ac9395 scsi_is_fc_vport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfad3cba0 fc_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x06671491 sas_phy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2c2845b5 sas_phy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2c6a7860 sas_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x32313425 scsi_is_sas_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x483ddd15 sas_rphy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5ed31bac sas_remove_children
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x69e3bcac scsi_is_sas_rphy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa2b8d15f sas_phy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb02027d5 sas_port_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb5927bbf sas_expander_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb7cc36a0 sas_rphy_remove
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbdbb6db6 sas_port_mark_backlink
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc20fd594 sas_port_add_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc71e2fbb sas_port_alloc_num
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcdd8b751 sas_end_device_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcf8f1f2e sas_phy_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd10ed40f sas_rphy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd6f653e7 sas_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdcd0e89f sas_read_port_mode_page
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd852aff scsi_is_sas_port
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdfd84e06 sas_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe5ce2e85 sas_rphy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf4fcb445 sas_port_delete_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf82ba0cd sas_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfed2a747 sas_port_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfed71035 sas_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x19743084 spi_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x47ac1096 spi_schedule_dv_device
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x6b1b9ffd spi_display_xfer_agreement
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xc2f58199 spi_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xfe081fe4 spi_dv_device
+EXPORT_SYMBOL drivers/ssb/ssb 0x01db6202 ssb_dma_alloc_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0x025e75f9 ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL drivers/ssb/ssb 0x09ae4f7a ssb_device_disable
+EXPORT_SYMBOL drivers/ssb/ssb 0x0fc56ba0 ssb_set_devtypedata
+EXPORT_SYMBOL drivers/ssb/ssb 0x432c8bf4 ssb_bus_resume
+EXPORT_SYMBOL drivers/ssb/ssb 0x47a45b27 ssb_bus_pcibus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x4ada4201 ssb_bus_sdiobus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x592efda4 ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x59dbbb12 ssb_device_is_enabled
+EXPORT_SYMBOL drivers/ssb/ssb 0x69b605d2 ssb_device_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x6b67b544 ssb_bus_suspend
+EXPORT_SYMBOL drivers/ssb/ssb 0x7bff4b86 ssb_dma_set_mask
+EXPORT_SYMBOL drivers/ssb/ssb 0x7d070d85 ssb_dma_translation
+EXPORT_SYMBOL drivers/ssb/ssb 0x8f18e44e ssb_dma_free_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0xa5f91981 ssb_pcihost_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xb8ae121d ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base
+EXPORT_SYMBOL drivers/ssb/ssb 0xc4ab1340 ssb_driver_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0xd38dfc9e ssb_chipco_gpio_control
+EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size
+EXPORT_SYMBOL drivers/ssb/ssb 0xda97a132 ssb_bus_powerup
+EXPORT_SYMBOL drivers/ssb/ssb 0xe9d753b4 __ssb_driver_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xeed1f887 ssb_bus_may_powerdown
+EXPORT_SYMBOL drivers/ssb/ssb 0xf07247c1 ssb_bus_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0xf6748b2a ssb_clockspeed
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x03018749 comedi_buf_write_alloc
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0ba8ff7d comedi_buf_read_alloc
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x20adcdd0 comedi_check_chanlist
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x29e50cd9 comedi_buf_put
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2cdaeed3 comedi_driver_unregister
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f179e4a comedi_event
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f28b543 comedi_driver_register
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x6fa1c51a comedi_get_subdevice_runflags
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x7aa04fea comedi_buf_get
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8959c847 comedi_error
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xca4bf1d6 comedi_buf_memcpy_from
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xde5cff7a comedi_buf_read_free
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf2326fa1 comedi_buf_read_n_available
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf491c77f comedi_buf_memcpy_to
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf7339da5 comedi_buf_write_free
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x0534e47b subdev_8255_init_irq
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x0c6edd30 subdev_8255_interrupt
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x6f874f71 subdev_8255_cleanup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xaaf1a61c subdev_8255_init
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x0e957c70 cfc_read_array_from_buffer
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x9c673841 cfc_write_array_to_buffer
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xa3d73527 cfc_handle_events
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x02607403 mite_unsetup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x051ce816 mite_devices
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x12722775 mite_prep_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1cee09ba mite_dma_arm
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x22b474fa mite_bytes_in_transit
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3c38714b mite_bytes_read_from_memory_ub
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x4de5f738 mite_sync_output_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x585533a7 mite_dma_disarm
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x5b419e0d mite_bytes_written_to_memory_lb
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x682ab83d mite_done
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa360c032 mite_setup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xadaa43b2 mite_bytes_read_from_memory_lb
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xb5c276b0 mite_get_status
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc2343124 mite_release_channel
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc30dc8dd mite_request_channel_in_range
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xcad3acf4 mite_bytes_written_to_memory_ub
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdd0c0c0b mite_setup2
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe185f2aa mite_sync_input_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf5fa1e56 mite_buf_change
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb0bd2f9 mite_dma_tcr
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x189beb12 subdev_700_interrupt
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x2f2dd0ab subdev_700_init
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x3c340722 subdev_700_init_irq
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xe5979298 subdev_700_cleanup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x87a75f5f comedi_pcm_cmdtest
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x3385ea08 comedi_find_subdevice_by_type
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x58a7e961 comedi_dio_bitfield
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x673f378e comedi_get_n_channels
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x74892837 comedi_dio_config
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xcdc74f86 comedi_close
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xd12102fe comedi_open
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x2861e119 cx25821_sram_channel_dump
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x32ee8781 cx25821_sram_channel_setup
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x5f65cd7e cx25821_risc_databuffer_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x68bb2555 cx25821_dev_get
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x6b4c249d cx25821_set_gpiopin_direction
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x6c54a926 cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x784853c3 cx25821_print_irqbits
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xad3919c6 cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xd8355167 cx25821_dev_unregister
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x024800bd go7007_snd_remove
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x064bfb40 go7007_remove
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x1f8766af go7007_alloc
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x3b9d1200 go7007_read_addr
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x483b3330 go7007_boot_encoder
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x710641ac go7007_snd_init
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xa0336b05 go7007_parse_video_stream
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xac95faf0 go7007_read_interrupt
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xc89d5434 go7007_register_encoder
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x10a885b7 hv_cb_utils
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x253f3d14 vmbus_get_interface
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4102ac95 VmbusChannelRecvPacket
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x62ffb142 vmbus_child_driver_register
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x724d7966 vmbus_child_driver_unregister
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x848c170c VmbusChannelSendPacket
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0ed73779 iio_ring_buffer_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1662c247 iio_trigger_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1d8ceb17 iio_push_or_escallate_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2694b1d2 __iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2bc9533f iio_trigger_notify_done
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x36827a16 iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3f42c4a6 iio_scan_el_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x40215575 iio_device_unregister_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x52759636 iio_push_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x52e7b7db iio_free_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x58b2b335 iio_add_event_to_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x58bd9b6e iio_trigger_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5eef6ddb iio_free_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5f33140c iio_allocate_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x663f75da iio_scan_el_ts_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x690f72d8 iio_device_register_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6ac367d3 iio_show_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x766dd43e iio_remove_event_from_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x76e77919 iio_scan_el_show
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x796234ee iio_ring_buffer_init
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7a65472a iio_unregister_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7c9c6208 iio_read_ring_length
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7e44f98f iio_read_ring_bps
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7edf6482 iio_get_new_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x96a9bac0 iio_write_ring_length
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xad019cad iio_trigger_find_by_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xad444e37 iio_store_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xaf563a08 iio_trigger_dettach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb40c7bc2 iio_read_const_attr
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb73c13ac iio_trigger_attach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xba124153 iio_free_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbd43b3dc iio_bus_type
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbf3d2d6d iio_ring_buffer_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc4e1fcb2 iio_device_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc68537d8 iio_trigger_read_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc75b58cd iio_allocate_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc76e2f44 iio_device_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcaf79e71 iio_register_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd8b931a8 iio_trigger_poll
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfaefe020 iio_scan_el_ts_show
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x0a1101ab iio_sw_rb_allocate
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x1970ba1a iio_set_length_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x3ff1db2b iio_set_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4d146f0e iio_get_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7ac87abb iio_sw_rb_free
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x8c69d63b iio_mark_update_needed_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x9f43fcef iio_store_to_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xaa177b04 iio_get_length_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xac54ad86 iio_read_last_from_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xb1da4902 iio_unmark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xbd19c999 iio_rip_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xd228f09d iio_mark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xe1a7de94 iio_request_update_sw_rb
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x39341abc pod_remove_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x5a5c36d9 variax_remove_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0xa29e7c1c variax_create_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0xd35bc9d0 pod_create_files
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0x11452eff rar_reserve
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0x785e5269 rar_release
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0xd0382ff3 rar_handle_to_bus
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x0072de2f rar_get_address
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x016fa80b ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x026d751d ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x07740242 ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0bd2545c ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0e1330ab ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0f376841 ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1882efd7 ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1c4385f4 ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x20180be3 ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x219dd21c ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2462136a ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x29f4c3b3 ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x39096283 ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3b85aae0 ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3c229c66 DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c3dc36f ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4ef77fad ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x544b12ad ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5f8c1e24 notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x64b2de1a ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x67779838 ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6f04a681 Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x79620533 IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7aba2d20 ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7b61e5e6 ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x818917ae ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x86aea04f ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x89915856 ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b415a18 ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8e82ba74 ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x947cb076 ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9c17d4c3 ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9c64ff8e ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9ed8718d ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9f7b6edb Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa12010b7 SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa58b9131 ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaae4b9ed ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xabec8db6 ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb71fde19 ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbcb6ac60 ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc13e773b ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc26d0b54 ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd0f9447c ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd33582fa Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd958b490 ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdb2b37d4 ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdd698757 ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde7ed064 HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde862753 ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdf3a1c3e ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe0a8edec ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe3f6191b DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe4428c74 ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe87ca5d1 ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe9ec8588 ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x43f56545 tm6000_register_extension
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x499bc9d4 tm6000_unregister_extension
+EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count
+EXPORT_SYMBOL drivers/staging/vme/vme 0x011bd342 vme_register_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0232aa5c vme_register_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x1247692a vme_unregister_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x14bd6d67 vme_irq_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x2d1f6bd4 vme_bus_type
+EXPORT_SYMBOL drivers/staging/vme/vme 0x2e804729 vme_irq_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x33fe73cc vme_dma_list_add
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3aa70f78 vme_irq_handler
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3b332a39 vme_dma_list_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x420fe07e vme_dma_list_exec
+EXPORT_SYMBOL drivers/staging/vme/vme 0x43e2f154 vme_master_read
+EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7754663b vme_alloc_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x8935bfed vme_new_dma_list
+EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach
+EXPORT_SYMBOL drivers/staging/vme/vme 0x97155737 vme_unregister_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x98bfee37 vme_slot_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach
+EXPORT_SYMBOL drivers/staging/vme/vme 0x9d279035 vme_master_write
+EXPORT_SYMBOL drivers/staging/vme/vme 0xa09d045f vme_get_size
+EXPORT_SYMBOL drivers/staging/vme/vme 0xaabc69d2 vme_lm_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xbacf18cd vme_slave_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0xd6e26752 vme_irq_generate
+EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe7e39009 vme_master_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xf1b1bb11 vme_free_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0xf7460cad vme_dma_request
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free
+EXPORT_SYMBOL drivers/telephony/ixj 0xe2d67460 ixj_pcmcia_probe
+EXPORT_SYMBOL drivers/telephony/phonedev 0x8cb408db phone_register_device
+EXPORT_SYMBOL drivers/telephony/phonedev 0xe8900229 phone_unregister_device
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x6f3106f6 usb_gadget_register_driver
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x8187b725 net2280_set_fifo_mode
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xde8d0a46 usb_gadget_unregister_driver
+EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x6340014c sl811h_driver
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x148d8031 usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1f2eb7e8 usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x30048731 usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x42ae0f49 usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4f5552f5 usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6f41126b usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x786558d6 usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9520c785 usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9703fcd2 usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x975d28c1 usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9ab679a0 usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb16874e0 usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb9003a52 usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd14e3474 usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x97e62e5d usb_serial_resume
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0xab112f5a usb_serial_suspend
+EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x3d7d8acd lcd_device_unregister
+EXPORT_SYMBOL drivers/video/backlight/lcd 0xda44a903 lcd_device_register
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0b61913e cyber2000fb_disable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x356d5173 cyber2000fb_enable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x5ea44755 cyber2000fb_get_fb_var
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xb2bdb6db cyber2000fb_attach
+EXPORT_SYMBOL drivers/video/display/display 0x9e70676b display_device_unregister
+EXPORT_SYMBOL drivers/video/display/display 0xc827af52 display_device_register
+EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var
+EXPORT_SYMBOL drivers/video/macmodes 0x6e73547d mac_find_mode
+EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x3eb26dcf matroxfb_g450_setpll_cond
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x6ea4ed77 matroxfb_g450_setclk
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x94864ca8 g450_mnp2f
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x52c59639 DAC1064_global_init
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xafed17f1 DAC1064_global_restore
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xcec60c74 matrox_G100
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xd64c9067 matrox_mystique
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x896f9629 matrox_millennium
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x74defcbf matrox_cfbX_init
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x43debd4b matroxfb_enable_irq
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x775f75d2 matroxfb_wait_for_sync
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x85c76e85 matroxfb_register_driver
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd5a5f714 matroxfb_unregister_driver
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x3f3d9f20 matroxfb_g450_connect
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x698c1164 matroxfb_g450_shutdown
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x30d809c3 matroxfb_DAC_in
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x71af45e7 matroxfb_DAC_out
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xb1d0f265 matroxfb_vgaHWinit
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xd964b116 matroxfb_vgaHWrestore
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe7ea2a02 matroxfb_read_pins
+EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x3d1111ef mb862xxfb_init_accel
+EXPORT_SYMBOL drivers/video/output 0x554ea422 video_output_unregister
+EXPORT_SYMBOL drivers/video/output 0xbb407f67 video_output_register
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free
+EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x17ebf629 svga_tilecopy
+EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x32b53ce7 svga_tilecursor
+EXPORT_SYMBOL drivers/video/svgalib 0x56b841d6 svga_get_tilemax
+EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x75da5e89 svga_tilefill
+EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x91578ec9 svga_get_caps
+EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xc29ff481 svga_settile
+EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xdcd110ba svga_tileblit
+EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format
+EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll
+EXPORT_SYMBOL drivers/video/syscopyarea 0x448201e2 sys_copyarea
+EXPORT_SYMBOL drivers/video/sysfillrect 0x82fcb79c sys_fillrect
+EXPORT_SYMBOL drivers/video/sysimgblt 0x44e5deb5 sys_imageblit
+EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga
+EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x75179cd8 w1_bq27000_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xcd087601 w1_bq27000_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x31c93248 w1_ds2760_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x4bcee3fb w1_ds2760_recall_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x57291673 w1_ds2760_store_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb90886f8 w1_ds2760_read
+EXPORT_SYMBOL drivers/w1/wire 0x2149a18e w1_unregister_family
+EXPORT_SYMBOL drivers/w1/wire 0x964eec7c w1_add_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xc997dbc0 w1_register_family
+EXPORT_SYMBOL drivers/w1/wire 0xe0dff99d w1_remove_master_device
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop
+EXPORT_SYMBOL fs/configfs/configfs 0x0ebdb6c4 config_group_init
+EXPORT_SYMBOL fs/configfs/configfs 0x0f69e26f config_item_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x0fb0b3c3 configfs_register_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0x44cd54ad config_item_init
+EXPORT_SYMBOL fs/configfs/configfs 0x5bb17d99 configfs_unregister_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0x92fc864a config_item_put
+EXPORT_SYMBOL fs/configfs/configfs 0xaa02c70f config_group_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0xb15302ed config_item_get
+EXPORT_SYMBOL fs/configfs/configfs 0xd2462a53 config_item_set_name
+EXPORT_SYMBOL fs/configfs/configfs 0xd27d9492 configfs_undepend_item
+EXPORT_SYMBOL fs/configfs/configfs 0xd3a4c9f8 configfs_depend_item
+EXPORT_SYMBOL fs/configfs/configfs 0xfa43359d config_group_find_item
+EXPORT_SYMBOL fs/fscache/fscache 0x00e04da2 fscache_withdraw_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x01ad456e fscache_object_lookup_negative
+EXPORT_SYMBOL fs/fscache/fscache 0x078e8b0e fscache_check_aux
+EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible
+EXPORT_SYMBOL fs/fscache/fscache 0x1b76898f __fscache_update_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x1c25fff9 fscache_io_error
+EXPORT_SYMBOL fs/fscache/fscache 0x254fcd3a __fscache_read_or_alloc_pages
+EXPORT_SYMBOL fs/fscache/fscache 0x2a5c9751 fscache_fsdef_index
+EXPORT_SYMBOL fs/fscache/fscache 0x33923c91 __fscache_wait_on_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x37da718b fscache_mark_pages_cached
+EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit
+EXPORT_SYMBOL fs/fscache/fscache 0x474b2c76 fscache_object_slow_work_ops
+EXPORT_SYMBOL fs/fscache/fscache 0x4cb08273 __fscache_uncache_page
+EXPORT_SYMBOL fs/fscache/fscache 0x6038da8d fscache_obtained_object
+EXPORT_SYMBOL fs/fscache/fscache 0x6b66ec2d __fscache_register_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x70e3b4bf __fscache_acquire_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x715147ff __fscache_write_page
+EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id
+EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states
+EXPORT_SYMBOL fs/fscache/fscache 0x9ebc906d __fscache_check_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0xa396ede1 fscache_enqueue_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq
+EXPORT_SYMBOL fs/fscache/fscache 0xb8150d2a __fscache_unregister_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0xd290af40 __fscache_read_or_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xd4493680 __fscache_maybe_release_page
+EXPORT_SYMBOL fs/fscache/fscache 0xddef6bdb __fscache_attr_changed
+EXPORT_SYMBOL fs/fscache/fscache 0xddf4ca2e __fscache_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xeace1e05 __fscache_relinquish_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xed2d2c71 fscache_put_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xf4d1d5eb fscache_init_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xf79783dc fscache_add_cache
+EXPORT_SYMBOL fs/nfsd/nfsd 0x23f0a2c8 nfs4_acl_nfsv4_to_posix
+EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who
+EXPORT_SYMBOL fs/nfsd/nfsd 0x46ffdc39 nfs4_acl_posix_to_nfsv4
+EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype
+EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new
+EXPORT_SYMBOL fs/quota/quota_tree 0x241902f0 qtree_entry_unused
+EXPORT_SYMBOL fs/quota/quota_tree 0x499ad0fd qtree_write_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x7b46946b qtree_release_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xe13f8e5e qtree_read_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xf55e7606 qtree_delete_dquot
+EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt
+EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table
+EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t
+EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table
+EXPORT_SYMBOL lib/crc7 0xc086bfba crc7
+EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table
+EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd
+EXPORT_SYMBOL net/802/p8023 0x7f4bd3f2 destroy_8023_client
+EXPORT_SYMBOL net/802/p8023 0x94cc405e make_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x06b2e3eb p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x07d75f18 v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump
+EXPORT_SYMBOL net/9p/9pnet 0x0d13895c p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x20681921 p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x25858d8d p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0x370524cc p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0x395c8c47 p9_client_auth
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x6e7334ba p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x6f6d72e3 p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x7567c061 p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0x758884b4 p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x7d9551dc p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x8c61936e p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x8ed038de p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x911cbd93 p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x92ed40df p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x98e482b9 p9_client_version
+EXPORT_SYMBOL net/9p/9pnet 0x9c831e88 p9_idpool_check
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0x9e39dc37 p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0xa75932e1 v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0xa7b79d6e p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0xb13a9d5e p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0xb8c441db p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0xb99a853c p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xc046e11f v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0xcb12f816 p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0xd665e78d p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0xe4c001d7 p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xe87bc9ec v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0xea905f32 p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0xeba2acc0 p9_client_statfs
+EXPORT_SYMBOL net/appletalk/appletalk 0x38d5ae2a atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0x5ef6e556 alloc_ltalkdev
+EXPORT_SYMBOL net/appletalk/appletalk 0xae2bcd99 aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0xe1c9ef1d atrtr_get_dev
+EXPORT_SYMBOL net/atm/atm 0x07e0a459 atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x15b2c527 vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x2227272e deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x3d10663a vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x4e54ae9d atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x767caa47 atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0x9d43b12a atm_charge
+EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xbcf032af atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0xbfd05248 register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xe178ebff atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0xeaa383bc atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal
+EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x29d13346 ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0x2a9e9295 ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0x31f88dff ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x637ab268 ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x7a912d41 ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0x8b566b29 ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x8da4719d ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xf04fecfa ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0xf0b4bc38 ax25_linkfail_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x07a68cef bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0e6a7652 hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x11079979 hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1c23911f hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x29a9907c bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x339833d9 hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x343a501d hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3656f2d0 hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3d3e9f5a hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x41d5a1bc bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4700ffe4 bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4be2b917 hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5043203d bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5199acc6 bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x615649f7 hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x65afb603 bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6c83850a hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x70fe7d78 hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x84882fd5 hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x892d51ee hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x92b01637 hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x944a5dbb hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x9a66ec3d hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa63335e0 hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc9b2d136 hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xca8666db hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcd838956 bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5f842e6 hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe88afc13 bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xedb2d048 hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xef7a05b1 bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xefd8f383 hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load
+EXPORT_SYMBOL net/bridge/bridge 0x718b13e3 br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9c078718 ebt_register_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9ee3f39e ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xce210262 ebt_do_table
+EXPORT_SYMBOL net/caif/caif 0x0515a1fc cfpkt_info
+EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client
+EXPORT_SYMBOL net/caif/caif 0x080806a6 cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer
+EXPORT_SYMBOL net/caif/caif 0x22db7ba5 cfpkt_queue
+EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x30347216 cfpkt_raw_extract
+EXPORT_SYMBOL net/caif/caif 0x40f6d4b2 cfpkt_erroneous
+EXPORT_SYMBOL net/caif/caif 0x43b64498 cfpkt_add_body
+EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x52a6b5bf cfpkt_log_pkt
+EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create
+EXPORT_SYMBOL net/caif/caif 0x5cac42de cfpkt_extr_head
+EXPORT_SYMBOL net/caif/caif 0x64d0f338 cfpkt_iterate
+EXPORT_SYMBOL net/caif/caif 0x658830f7 cfpkt_split
+EXPORT_SYMBOL net/caif/caif 0x684e9998 cfpkt_create_uplink
+EXPORT_SYMBOL net/caif/caif 0x692d1824 cfpkt_create
+EXPORT_SYMBOL net/caif/caif 0x69f4819e cfpkt_append
+EXPORT_SYMBOL net/caif/caif 0x6ecd0713 cfpkt_extr_trail
+EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x7a78e574 cfpkt_getlen
+EXPORT_SYMBOL net/caif/caif 0x8a72d48f cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0x8d8dee76 cfpkt_pad_trail
+EXPORT_SYMBOL net/caif/caif 0xa268b674 cfpkt_qpeek
+EXPORT_SYMBOL net/caif/caif 0xa59f933d cfpkt_dequeue
+EXPORT_SYMBOL net/caif/caif 0xa63e5333 cfpktq_create
+EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xb2072403 cfpkt_qcount
+EXPORT_SYMBOL net/caif/caif 0xbb6031ab cfpkt_addbdy
+EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer
+EXPORT_SYMBOL net/caif/caif 0xc66185ab cfpkt_add_head
+EXPORT_SYMBOL net/caif/caif 0xcbdccda8 cfpkt_setlen
+EXPORT_SYMBOL net/caif/caif 0xcc4c58c2 cfpkt_clone_release
+EXPORT_SYMBOL net/caif/caif 0xd4d506b1 cfpkt_raw_append
+EXPORT_SYMBOL net/caif/caif 0xe33b3eb3 cfpkt_peek_head
+EXPORT_SYMBOL net/caif/caif 0xe6f93775 cfpkt_add_trail
+EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf
+EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer
+EXPORT_SYMBOL net/caif/caif 0xf74f1e70 cfpkt_more
+EXPORT_SYMBOL net/caif/caif 0xfa50fafb cfpkt_destroy
+EXPORT_SYMBOL net/can/can 0x306254db can_rx_register
+EXPORT_SYMBOL net/can/can 0x5b27a810 can_send
+EXPORT_SYMBOL net/can/can 0x816a2ef4 can_rx_unregister
+EXPORT_SYMBOL net/can/can 0xbb3b126c can_proto_unregister
+EXPORT_SYMBOL net/can/can 0xf385a3e0 can_proto_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x1ddebcb2 ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x23caeeac ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x36020dd7 wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x43b8c35f wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x44e4f97d ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x4c9aa94f wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x79c1ddea ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x91ec8eeb wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x95225c8b wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xa72905eb ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xc93342ca ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xde509051 wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xf0609785 ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x43c94578 arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5344ffc1 arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x86ba40aa arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x436d8e56 ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x4628e4ec ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x9e8a5a9c ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x04e7f370 __nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2292a0e5 nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x322c934e nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9b942c61 nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb7550eab nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe125e5d7 nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf42d97fc nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/tunnel4 0x7cc9d491 xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0xc3afed03 xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x583e6978 ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x639f7aa8 ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x77fa722a ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x802d179f ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/tunnel6 0xb47d3fe5 xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/tunnel6 0xe880f7a4 xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x39272f02 xfrm6_tunnel_free_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xa5c3da86 xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe23962ac xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x27633476 ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x31ceef4a ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x421e6c6a ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5be9428f ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa26ff4ab ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa5409202 ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbb6d7ee3 ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xeca504ba ircomm_open
+EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value
+EXPORT_SYMBOL net/irda/irda 0x0794e13d iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service
+EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x103d636e irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x20845ab1 irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x2198b38b irlmp_open_lsap
+EXPORT_SYMBOL net/irda/irda 0x228b610a irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0x23624bb8 hashbin_get_first
+EXPORT_SYMBOL net/irda/irda 0x29c016a2 irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0x2b9bfdf3 iriap_open
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug
+EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object
+EXPORT_SYMBOL net/irda/irda 0x41eb5fe2 irlap_close
+EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value
+EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service
+EXPORT_SYMBOL net/irda/irda 0x4a12acfa alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0x4f15ae3d proc_irda
+EXPORT_SYMBOL net/irda/irda 0x5b005e87 irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0x62a74c59 irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new
+EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object
+EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies
+EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client
+EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x79d9212f irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x801ee5e3 irlap_open
+EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0x8b66dd06 async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x90a9f838 irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x951c0ba3 irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0x95f2efa4 irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0x98c4b9c4 irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find
+EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0xa1904e4e async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0xaf98b436 iriap_close
+EXPORT_SYMBOL net/irda/irda 0xb2d97f71 irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value
+EXPORT_SYMBOL net/irda/irda 0xbaddd6e5 irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute
+EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request
+EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next
+EXPORT_SYMBOL net/irda/irda 0xcee77b6c irttp_dup
+EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma
+EXPORT_SYMBOL net/irda/irda 0xd6fed498 irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0xd760b811 irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xd9e201b1 irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xfbb3d158 irttp_open_tsap
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x22adbe94 l2tp_recv_common
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x33b4f4f7 l2tp_tunnel_destruct
+EXPORT_SYMBOL net/lapb/lapb 0x06361f84 lapb_disconnect_request
+EXPORT_SYMBOL net/lapb/lapb 0x1d0c1ad8 lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x22739ef5 lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0x51455608 lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x6a1b766c lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0x977d1f38 lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0xc874a4fb lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0xfd490ed8 lapb_getparms
+EXPORT_SYMBOL net/mac80211/mac80211 0x00a14fcd ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0x067bf667 __ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x07f9a02e ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x0a06fbc0 ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x32174180 ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3471de04 ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3706e766 ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3b961737 ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c81a961 ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0x43d636b4 __ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x45c1f6c3 ieee80211_get_tkip_key
+EXPORT_SYMBOL net/mac80211/mac80211 0x49f0e481 ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x4e33844c ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x4fe42ff1 ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0x730b1e5c ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x732f1ad1 ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x768b90ad wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x7e9d8240 __ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x87ee2ae2 rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x8a8a470d ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x919ed0b0 ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x947b318d ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x9b3489a9 ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3ece24c ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xb7026854 ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0xbb975295 ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xc5aeb4f3 ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xc66d18c9 ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xcfbf2b03 ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xd01d22ea ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xd4e6811f ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xe2a413c3 __ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xe65c1649 ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xf0173b9f ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0xf5ec7d7b ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xf8e97579 ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0xfe6733e2 ieee80211_stop_queue
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x06d87371 ip_vs_skb_replace
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0c6fefda register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0d47134c ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0d73a60c ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1c29e4cb ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2f041519 register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4b26d781 unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5bdf8c3a unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5f9465c0 ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6e380c18 register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8ba83ef3 ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xd81a0dcb __nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xda286d70 __nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x1fc6bc82 nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x0b4acae4 xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x3d62d342 xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x51d7d860 xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x600f3cc7 xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x7ab79278 xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x87868d7c xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x92493cd7 xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x94a4b3d3 xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xb34ec804 xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xe8703757 xt_register_matches
+EXPORT_SYMBOL net/phonet/phonet 0x0f449d81 phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0x38caac41 phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0x5c2d9501 pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0x5f0bc702 pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0x68bf744c phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x9c3e833f pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0xa99646d2 phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0xef32715e pn_sock_unhash
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x09d3e8ff rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x14a2daac rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1954ec05 rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2774d434 rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x315e4936 rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x52343759 rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6e17bfc7 key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x77395f5b rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x825b4c8e rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x843ff524 rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xab75198a rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb1bb0080 rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd1bcb259 rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf44f4d60 rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf92a475b rxrpc_get_null_key
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x44f06d7b svc_pool_stats_open
+EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes
+EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast
+EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected
+EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect
+EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport
+EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x20a3ca02 tipc_register_media
+EXPORT_SYMBOL net/tipc/tipc 0x20bb03e2 tipc_createport_raw
+EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send
+EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge
+EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach
+EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port
+EXPORT_SYMBOL net/tipc/tipc 0x474fe8f9 tipc_reject_msg
+EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw
+EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode
+EXPORT_SYMBOL net/tipc/tipc 0x58c840dd tipc_get_port
+EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid
+EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0x649bd23a tipc_forward_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x6ba0594b tipc_send_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x7dbf8bac tipc_send_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x805f97e6 tipc_send_buf_fast
+EXPORT_SYMBOL net/tipc/tipc 0x8766d7fe tipc_createport
+EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr
+EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port
+EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port
+EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown
+EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name
+EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish
+EXPORT_SYMBOL net/tipc/tipc 0xbb34757d tipc_continue
+EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name
+EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity
+EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach
+EXPORT_SYMBOL net/tipc/tipc 0xdd806d44 tipc_send_buf
+EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer
+EXPORT_SYMBOL net/tipc/tipc 0xe2964713 tipc_recv_msg
+EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished
+EXPORT_SYMBOL net/tipc/tipc 0xe9e95673 tipc_forward_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle
+EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x7e81d7ab register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x39d223f4 wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0x71646723 wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x0147ed7d wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0f07937d cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0x14ef99ff __cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x179bfe12 cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x1afc0676 cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x1b91f4f6 regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x1ec9e946 cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0x204ea4b7 cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x24c957d0 cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x26754ee2 __cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x29b471f3 cfg80211_action_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x2aceb723 cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0x2ccf391c cfg80211_rx_action
+EXPORT_SYMBOL net/wireless/cfg80211 0x360aa0a0 wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x399396de wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x3cedc0fa freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x46a4e83f cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0x51292a31 cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0x5418753c __ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x5968d622 cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x6195f0ff cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0x671be38f cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x712eeb70 cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x71ba6ad6 ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x77d92dc1 ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x79e72321 cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x7a0b818b wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x7c64393e cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x7ccb4875 cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x7d381d2a cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x7dcab7e8 cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x8ab4c26e cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x97dd46d3 ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x98085bf0 wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x99e710e5 __cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x9f846265 wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xa8e63b2f cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0xac84ed26 cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xbd3d39b3 wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xcaaf60a7 ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0xcb980625 cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0xcfead162 cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xd5b8b66c cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xd83955ea cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0xe0afa1a2 ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xe878c191 cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xefa1174d wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/lib80211 0x175dd2a0 lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x5ad6b6aa lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0x7a97af53 lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x8576e84d lib80211_crypt_quiescing
+EXPORT_SYMBOL net/wireless/lib80211 0x8756e494 lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0xc087ebef lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xc7ceac25 lib80211_crypt_deinit_entries
+EXPORT_SYMBOL net/wireless/lib80211 0xcfa3a2c8 lib80211_crypt_info_init
+EXPORT_SYMBOL sound/ac97_bus 0x5698fc59 ac97_bus_type
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x417470f3 snd_seq_event_port_attach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x4d3fbd4b snd_seq_create_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb81ee5cc snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xc89aeab2 snd_seq_kernel_client_enqueue_blocking
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x0f1c49ed snd_seq_device_register_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x63584404 snd_seq_device_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x017f4a67 snd_midi_event_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x949c9ac8 snd_midi_event_no_status
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x951ea30c snd_midi_event_reset_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb00606b7 snd_midi_event_encode_byte
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb30510f7 snd_midi_event_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbeaecf8c snd_midi_event_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xddc220c4 snd_midi_event_reset_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf5eb237e snd_midi_event_free
+EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x5dd4e1bf snd_virmidi_new
+EXPORT_SYMBOL sound/core/snd 0x0da9b813 snd_card_create
+EXPORT_SYMBOL sound/core/snd 0x0ef4a8a4 snd_card_free_when_closed
+EXPORT_SYMBOL sound/core/snd 0x1297a612 snd_pci_quirk_lookup
+EXPORT_SYMBOL sound/core/snd 0x14122d2c snd_jack_new
+EXPORT_SYMBOL sound/core/snd 0x17001f02 snd_card_disconnect
+EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program
+EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer
+EXPORT_SYMBOL sound/core/snd 0x1bb5c1b5 snd_ctl_boolean_mono_info
+EXPORT_SYMBOL sound/core/snd 0x216c7d8e snd_ctl_find_id
+EXPORT_SYMBOL sound/core/snd 0x22697309 snd_register_device_for_dev
+EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line
+EXPORT_SYMBOL sound/core/snd 0x24e9e54c snd_component_add
+EXPORT_SYMBOL sound/core/snd 0x26719f1d snd_cards
+EXPORT_SYMBOL sound/core/snd 0x2811eed8 snd_info_register
+EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource
+EXPORT_SYMBOL sound/core/snd 0x32bbad60 _snd_ctl_add_slave
+EXPORT_SYMBOL sound/core/snd 0x3871b6f7 snd_card_register
+EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit
+EXPORT_SYMBOL sound/core/snd 0x3c73fac8 snd_jack_set_parent
+EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card
+EXPORT_SYMBOL sound/core/snd 0x4a9000a7 snd_card_set_id
+EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio
+EXPORT_SYMBOL sound/core/snd 0x53096c1d snd_ctl_remove
+EXPORT_SYMBOL sound/core/snd 0x54c77e27 snd_card_free
+EXPORT_SYMBOL sound/core/snd 0x6e4f0996 snd_add_device_sysfs_file
+EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable
+EXPORT_SYMBOL sound/core/snd 0x727657a2 snd_card_proc_new
+EXPORT_SYMBOL sound/core/snd 0x72ead571 snd_info_free_entry
+EXPORT_SYMBOL sound/core/snd 0x74f2b7d9 snd_ctl_make_virtual_master
+EXPORT_SYMBOL sound/core/snd 0x75836dfd snd_ctl_free_one
+EXPORT_SYMBOL sound/core/snd 0x7b86c2e2 snd_ctl_remove_id
+EXPORT_SYMBOL sound/core/snd 0x7bec1abc snd_ctl_notify
+EXPORT_SYMBOL sound/core/snd 0x84bf6cdc snd_device_free
+EXPORT_SYMBOL sound/core/snd 0x896feba0 snd_unregister_device
+EXPORT_SYMBOL sound/core/snd 0x8979dd82 snd_seq_root
+EXPORT_SYMBOL sound/core/snd 0x8c33d4fb snd_ctl_unregister_ioctl
+EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major
+EXPORT_SYMBOL sound/core/snd 0x94136742 snd_card_file_add
+EXPORT_SYMBOL sound/core/snd 0x9841dfa6 snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL sound/core/snd 0x99c7ced4 snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL sound/core/snd 0x9c3885d4 snd_power_wait
+EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str
+EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id
+EXPORT_SYMBOL sound/core/snd 0xacc92594 snd_ctl_register_ioctl
+EXPORT_SYMBOL sound/core/snd 0xaf89378f snd_card_file_remove
+EXPORT_SYMBOL sound/core/snd 0xafb377c2 snd_ctl_new1
+EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data
+EXPORT_SYMBOL sound/core/snd 0xb9d9e18d snd_device_register
+EXPORT_SYMBOL sound/core/snd 0xbd6d60e2 snd_jack_report
+EXPORT_SYMBOL sound/core/snd 0xcbb7c0e9 snd_info_create_card_entry
+EXPORT_SYMBOL sound/core/snd 0xcda12362 snd_device_new
+EXPORT_SYMBOL sound/core/snd 0xd51de002 snd_ctl_find_numid
+EXPORT_SYMBOL sound/core/snd 0xda74e409 snd_ctl_add
+EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf
+EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio
+EXPORT_SYMBOL sound/core/snd 0xe2ec14ef snd_info_create_module_entry
+EXPORT_SYMBOL sound/core/snd 0xf1d7a116 snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL sound/core/snd 0xf7fb7f7d snd_ctl_rename_id
+EXPORT_SYMBOL sound/core/snd 0xffa80328 snd_jack_set_key
+EXPORT_SYMBOL sound/core/snd-hwdep 0xad619e7a snd_hwdep_new
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xb0028d41 snd_dma_reserve_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xb71ac24d snd_dma_alloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xcd7b9de7 snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xf052a762 snd_dma_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xff7af02c snd_dma_get_reserved_buf
+EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any
+EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x07d9cd13 snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x09a08e0e snd_pcm_lib_write
+EXPORT_SYMBOL sound/core/snd-pcm 0x0adac6a3 snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL sound/core/snd-pcm 0x11d33056 snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL sound/core/snd-pcm 0x1680d0cb snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL sound/core/snd-pcm 0x1c9ec8f4 snd_pcm_sgbuf_get_chunk_size
+EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed
+EXPORT_SYMBOL sound/core/snd-pcm 0x20693d97 snd_pcm_new
+EXPORT_SYMBOL sound/core/snd-pcm 0x249ed6fd snd_pcm_open_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0x29342d20 snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL sound/core/snd-pcm 0x294ed320 snd_pcm_hw_constraint_list
+EXPORT_SYMBOL sound/core/snd-pcm 0x30c30906 snd_pcm_set_sync
+EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x3950e75d snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty
+EXPORT_SYMBOL sound/core/snd-pcm 0x3c88cd1d _snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x4b8824b1 snd_pcm_lib_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x4c25bf73 snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value
+EXPORT_SYMBOL sound/core/snd-pcm 0x5489a847 snd_pcm_lib_mmap_noncached
+EXPORT_SYMBOL sound/core/snd-pcm 0x54cb1ed3 snd_pcm_lib_readv
+EXPORT_SYMBOL sound/core/snd-pcm 0x56d8ef13 snd_pcm_sgbuf_ops_page
+EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence
+EXPORT_SYMBOL sound/core/snd-pcm 0x626e2e6e snd_pcm_lib_writev
+EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64
+EXPORT_SYMBOL sound/core/snd-pcm 0x663b3745 snd_pcm_suspend_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width
+EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear
+EXPORT_SYMBOL sound/core/snd-pcm 0x715566b6 snd_pcm_kernel_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x787e4ef3 snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x7a38b666 snd_pcm_hw_param_last
+EXPORT_SYMBOL sound/core/snd-pcm 0x84340f0e snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL sound/core/snd-pcm 0x8792cdcb snd_pcm_limit_hw_rates
+EXPORT_SYMBOL sound/core/snd-pcm 0x97ed3092 snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL sound/core/snd-pcm 0x9bc6922b snd_pcm_new_stream
+EXPORT_SYMBOL sound/core/snd-pcm 0x9f5a212e snd_pcm_period_elapsed
+EXPORT_SYMBOL sound/core/snd-pcm 0xa40e95ae snd_pcm_link_rwlock
+EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned
+EXPORT_SYMBOL sound/core/snd-pcm 0xafbd8293 snd_pcm_release_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xb193fabd snd_pcm_lib_read
+EXPORT_SYMBOL sound/core/snd-pcm 0xb19ea1b9 snd_pcm_hw_rule_add
+EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL sound/core/snd-pcm 0xba3d9adb snd_pcm_set_ops
+EXPORT_SYMBOL sound/core/snd-pcm 0xbc451fa8 snd_pcm_notify
+EXPORT_SYMBOL sound/core/snd-pcm 0xbd373bc1 snd_pcm_hw_param_first
+EXPORT_SYMBOL sound/core/snd-pcm 0xc42427ec snd_pcm_stop
+EXPORT_SYMBOL sound/core/snd-pcm 0xc5e148eb snd_pcm_suspend
+EXPORT_SYMBOL sound/core/snd-pcm 0xcb3eeefe snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0xcf85450a snd_pcm_mmap_data
+EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xd9a665eb snd_pcm_hw_constraint_step
+EXPORT_SYMBOL sound/core/snd-pcm 0xdc4c65dd snd_pcm_lib_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0xdf03e17f snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width
+EXPORT_SYMBOL sound/core/snd-pcm 0xe96783d4 snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0xef8525b5 snd_pcm_hw_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x01317905 snd_rawmidi_set_ops
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x12e9b0c6 snd_rawmidi_transmit_peek
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x383aa00b snd_rawmidi_kernel_open
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x3fbb7501 snd_rawmidi_drop_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x668f7dc0 snd_rawmidi_receive
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x6b88eb40 snd_rawmidi_drain_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x733b74d6 snd_rawmidi_kernel_release
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x81e928ca snd_rawmidi_transmit_empty
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x8234933a snd_rawmidi_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x8a4be0ae snd_rawmidi_kernel_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x93b36950 snd_rawmidi_info_select
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xa3dff37d snd_rawmidi_transmit
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xb2421d0c snd_rawmidi_transmit_ack
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xbc9e860d snd_rawmidi_drain_input
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xc6bef4dc snd_rawmidi_output_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xd3e2b94b snd_rawmidi_kernel_write
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xd4c80a5c snd_rawmidi_input_params
+EXPORT_SYMBOL sound/core/snd-timer 0x070f889c snd_timer_interrupt
+EXPORT_SYMBOL sound/core/snd-timer 0x464fa2c0 snd_timer_global_new
+EXPORT_SYMBOL sound/core/snd-timer 0x4dacfb59 snd_timer_open
+EXPORT_SYMBOL sound/core/snd-timer 0x4e21c025 snd_timer_stop
+EXPORT_SYMBOL sound/core/snd-timer 0x4fcc345e snd_timer_new
+EXPORT_SYMBOL sound/core/snd-timer 0x5bba7159 snd_timer_global_free
+EXPORT_SYMBOL sound/core/snd-timer 0x5da2d519 snd_timer_close
+EXPORT_SYMBOL sound/core/snd-timer 0x64b86e68 snd_timer_resolution
+EXPORT_SYMBOL sound/core/snd-timer 0x7b3bb0b9 snd_timer_start
+EXPORT_SYMBOL sound/core/snd-timer 0x7c1b0f0b snd_timer_global_register
+EXPORT_SYMBOL sound/core/snd-timer 0x8591d131 snd_timer_notify
+EXPORT_SYMBOL sound/core/snd-timer 0xc674aa03 snd_timer_pause
+EXPORT_SYMBOL sound/core/snd-timer 0xd442f64f snd_timer_continue
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xb54cc0b1 snd_mpu401_uart_new
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x20fcdf77 snd_opl3_timer_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2eff11e9 snd_opl3_create
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x33b02eb5 snd_opl3_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x51c0bd5c snd_opl3_init
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7bc1f267 snd_opl3_find_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x89958f40 snd_opl3_reset
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x93b56279 snd_opl3_hwdep_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9a49b366 snd_opl3_load_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xed2821a2 snd_opl3_new
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0c2a65a2 snd_vx_suspend
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3eea567a snd_vx_check_reg_bit
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x478c22f2 snd_vx_dsp_boot
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5ecf2f68 snd_vx_create
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x65de9dde snd_vx_resume
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x832f5e49 snd_vx_free_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdb0d19d3 snd_vx_setup_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xee968001 snd_vx_load_boot_image
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfdbea901 snd_vx_dsp_load
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4683c2ca snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x659d9d0f snd_ak4114_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x6bf4eef5 snd_ak4114_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x77ba6b5b snd_ak4114_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x96c3e3a1 snd_ak4114_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xdd460459 snd_ak4114_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x31019331 snd_ak4117_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x3c01f868 snd_ak4117_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x5c29f327 snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6c7c590f snd_ak4117_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xa8d5bd16 snd_ak4117_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xbe9e9d1f snd_ak4117_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x352f48cb snd_akm4xxx_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x7515318d snd_akm4xxx_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf9a57861 snd_akm4xxx_init
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xfd5691a6 snd_akm4xxx_reset
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x010ba221 snd_pt2258_reset
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x40a205c0 snd_pt2258_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x89f80d76 snd_tea575x_exit
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xa6373321 snd_tea575x_init
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x4052e659 snd_cs8427_reg_write
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x71c778cc snd_cs8427_iec958_active
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9fbdebc1 snd_cs8427_iec958_build
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xec782fe5 snd_cs8427_iec958_pcm
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xfb8c952f snd_cs8427_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x3237c6fd snd_i2c_device_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x3ee7f2e6 snd_i2c_device_free
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x6db350c0 snd_i2c_sendbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x9624714c snd_i2c_readbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xb8de6fff snd_i2c_bus_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xc6b01a60 snd_i2c_probeaddr
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5406a9fb snd_sbmixer_write
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x642260de snd_sbdsp_get_byte
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8731d4bb snd_sbmixer_read
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9055c3be snd_sbmixer_new
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa8ee3f59 snd_sbmixer_add_ctl
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xdb33732d snd_sbdsp_reset
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe5990052 snd_sbmixer_resume
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe5fd0705 snd_sbdsp_command
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xfcbde7b6 snd_sbmixer_suspend
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xfe2ef64a snd_sbdsp_create
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x3c5d8d42 snd_sb16dsp_get_pcm_ops
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x807c8d3a snd_sb16dsp_pcm
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xf1fa82b2 snd_sb16dsp_configure
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x041d53e7 snd_ac97_pcm_close
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0fea7d4a snd_ac97_pcm_open
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1390d055 snd_ac97_write
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1743d23a snd_ac97_set_rate
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2278a1b2 snd_ac97_update
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x459ef83d snd_ac97_suspend
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6004d36a snd_ac97_update_bits
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6032797d snd_ac97_get_short_name
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x60b4f221 snd_ac97_resume
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x852f1d75 snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x99723fb1 snd_ac97_read
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9ae6e109 snd_ac97_bus
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9ca53098 snd_ac97_pcm_assign
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbb2d5da3 snd_ac97_tune_hardware
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc366a850 snd_ac97_write_cache
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd0a95248 snd_ac97_update_power
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe70e48a4 snd_ac97_mixer
+EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0x177bfa1d hpi_send_recv
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0fe69a56 snd_emu10k1_ptr_read
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1dad1607 snd_emu10k1_voice_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2e95d3cc snd_emu10k1_memblk_map
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x68bfcb4e snd_emu10k1_ptr_write
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x6f668377 snd_emu10k1_synth_bzero
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7e249c20 snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd06e85f4 snd_emu10k1_synth_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd754204f snd_emu10k1_synth_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe58d3a4c snd_emu10k1_voice_alloc
+EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xb5d4c5c9 snd_hda_parse_generic_codec
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x117e7cfd snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x1902c346 snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x874fdebb snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0114d766 oxygen_write_spi
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x03ca8b9d oxygen_pci_suspend
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0e8324c7 oxygen_read8
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2b95a8bf oxygen_write8
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2e9b9a5c oxygen_pci_probe
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2fd89ea4 oxygen_write32
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x35e123db oxygen_write16_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3c70dc96 oxygen_write16
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x42b8f7f9 oxygen_pci_remove
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5bc6f6ac oxygen_read16
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5ef1d279 oxygen_default_i2s_mclk
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x795c6f06 oxygen_write8_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8b589e81 oxygen_write_ac97
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x959065b3 oxygen_write_i2c
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9ce4a3b2 oxygen_reset_uart
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb7a1ec2d oxygen_pci_resume
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb95f63b8 oxygen_write_uart
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbd74e3ca oxygen_read32
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdb42a2f6 oxygen_write32_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xea20589d oxygen_read_ac97
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf3995cd1 oxygen_write_ac97_masked
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x1f439829 snd_trident_stop_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x8c8c672b snd_trident_start_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x9877a73d snd_trident_alloc_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xdad5d667 snd_trident_write_voice_regs
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe856f7bd snd_trident_free_voice
+EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x50bff270 uda134x_dai
+EXPORT_SYMBOL sound/soundcore 0xeddf6e13 sound_class
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x04f15acd snd_emux_unlock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x6a94a763 snd_emux_free
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xd02e584a snd_emux_lock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe796d8f5 snd_emux_new
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xf0552a62 snd_emux_terminate_all
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xffa863c6 snd_emux_register
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x14ae926e __snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x2487f80e snd_util_mem_avail
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x2826b0d4 snd_util_memhdr_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x2fa4c12e snd_util_memhdr_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x4c230642 __snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x83cfd2f9 snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xbda0ebbb snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xcd1c1e07 __snd_util_memblk_new
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xa5dae2a5 snd_usbmidi_create
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x4750b6e6 dm_mem_cache_client_destroy
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x8d134a41 dm_mem_cache_alloc
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xb17a87a0 dm_mem_cache_client_create
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xb361eca9 dm_mem_cache_grow
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xe926c8e5 dm_mem_cache_free
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xf99dbdf5 dm_mem_cache_shrink
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x04dca738 lirc_unregister_driver
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x39e65007 lirc_get_pdata
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0xd63fd30f lirc_register_driver
+EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list
+EXPORT_SYMBOL vmlinux 0x00154fcc jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x00315718 bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0x003c8761 fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0x004346d9 xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x0089a35d rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x009646b0 vfs_writev
+EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer
+EXPORT_SYMBOL vmlinux 0x00fead52 tty_mutex
+EXPORT_SYMBOL vmlinux 0x01000e51 schedule
+EXPORT_SYMBOL vmlinux 0x0100c7da journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x014ea0ee bio_pair_release
+EXPORT_SYMBOL vmlinux 0x0151e723 fb_set_cmap
+EXPORT_SYMBOL vmlinux 0x01575aed skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x01624fe4 mmc_remove_host
+EXPORT_SYMBOL vmlinux 0x01694954 journal_force_commit
+EXPORT_SYMBOL vmlinux 0x016a08fd rdmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0x016d1ff0 serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x0172fd7f misc_register
+EXPORT_SYMBOL vmlinux 0x01760468 find_lock_page
+EXPORT_SYMBOL vmlinux 0x017b41fb ip_ct_attach
+EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap
+EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data
+EXPORT_SYMBOL vmlinux 0x01ae076c km_state_notify
+EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init
+EXPORT_SYMBOL vmlinux 0x01bbbd83 nobh_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x01c17662 elv_rb_find
+EXPORT_SYMBOL vmlinux 0x01c34c1a __xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x01c35525 swiotlb_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x01cd2c10 i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem
+EXPORT_SYMBOL vmlinux 0x01dc15d3 unbind_con_driver
+EXPORT_SYMBOL vmlinux 0x01f8fe78 dev_add_pack
+EXPORT_SYMBOL vmlinux 0x0203eef1 __starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x02062dc5 splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check
+EXPORT_SYMBOL vmlinux 0x0225a99f iunique
+EXPORT_SYMBOL vmlinux 0x022a8b6b blk_recount_segments
+EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu
+EXPORT_SYMBOL vmlinux 0x02430acc __xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x024d1421 sock_create_kern
+EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x0280dd9b md_barrier_request
+EXPORT_SYMBOL vmlinux 0x02932e22 bio_alloc
+EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc
+EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table
+EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler
+EXPORT_SYMBOL vmlinux 0x02bd62ad key_alloc
+EXPORT_SYMBOL vmlinux 0x02bf5e7e sock_wfree
+EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02e732a9 get_sb_pseudo
+EXPORT_SYMBOL vmlinux 0x02f38ce4 blk_start_request
+EXPORT_SYMBOL vmlinux 0x03014b16 aio_complete
+EXPORT_SYMBOL vmlinux 0x03105cdb nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key
+EXPORT_SYMBOL vmlinux 0x031761c0 thaw_super
+EXPORT_SYMBOL vmlinux 0x031a4d22 kill_anon_super
+EXPORT_SYMBOL vmlinux 0x031ff071 dquot_initialize
+EXPORT_SYMBOL vmlinux 0x03222173 ppp_channel_index
+EXPORT_SYMBOL vmlinux 0x032573b8 ip_fragment
+EXPORT_SYMBOL vmlinux 0x0325bdc5 audit_log_start
+EXPORT_SYMBOL vmlinux 0x0327e951 dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x03299232 bdi_register
+EXPORT_SYMBOL vmlinux 0x0331249e page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x03396bd1 sockfd_lookup
+EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set
+EXPORT_SYMBOL vmlinux 0x0349dd29 ida_pre_get
+EXPORT_SYMBOL vmlinux 0x03626365 netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0x037a0cba kfree
+EXPORT_SYMBOL vmlinux 0x0382c98c tcp_connect
+EXPORT_SYMBOL vmlinux 0x0398320d register_netdevice
+EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03ef1cee ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x04175767 gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x042fca3f journal_init_inode
+EXPORT_SYMBOL vmlinux 0x045ed4b4 ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x046d0823 vfs_create
+EXPORT_SYMBOL vmlinux 0x047586aa arp_find
+EXPORT_SYMBOL vmlinux 0x047d5751 give_up_console
+EXPORT_SYMBOL vmlinux 0x047f1217 dcache_readdir
+EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x0497f1f7 scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0x04be9ff4 i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0x04c28504 pci_select_bars
+EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0x04e9bfbc inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x0503e7a4 set_pages_array_wc
+EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x053420c1 acpi_is_video_device
+EXPORT_SYMBOL vmlinux 0x053ed3d6 dquot_transfer
+EXPORT_SYMBOL vmlinux 0x05499df7 acpi_bus_generate_proc_event
+EXPORT_SYMBOL vmlinux 0x05620624 simple_rename
+EXPORT_SYMBOL vmlinux 0x059528a7 block_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x05a6b3f4 get_agp_version
+EXPORT_SYMBOL vmlinux 0x05bc18ab pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0x05c86f9e blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x05d8f8e8 block_write_begin
+EXPORT_SYMBOL vmlinux 0x05d91077 agp_generic_destroy_page
+EXPORT_SYMBOL vmlinux 0x05e28d43 __first_cpu
+EXPORT_SYMBOL vmlinux 0x05ed2335 tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x05f3416d poll_freewait
+EXPORT_SYMBOL vmlinux 0x05f4f639 kernel_read
+EXPORT_SYMBOL vmlinux 0x061601bb rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0x061651be strcat
+EXPORT_SYMBOL vmlinux 0x063a471f copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0x0640bf8f uart_resume_port
+EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx
+EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache
+EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc
+EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x06cd95c7 journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x06d4261f dm_table_get_size
+EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0x06e62bd9 mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn
+EXPORT_SYMBOL vmlinux 0x071118cb pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8
+EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace
+EXPORT_SYMBOL vmlinux 0x07500053 vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x0779489c sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable
+EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong
+EXPORT_SYMBOL vmlinux 0x079b1b6f I_BDEV
+EXPORT_SYMBOL vmlinux 0x07a1c103 sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x07a6a3e3 bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x07e767dd km_report
+EXPORT_SYMBOL vmlinux 0x07e8306e blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x07f537d5 fb_blank
+EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses
+EXPORT_SYMBOL vmlinux 0x082c7e3a mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0x083b5ae5 acpi_bus_start
+EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0x08520327 bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0x085cfab6 inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x08960bf1 skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0x08b59770 tty_free_termios
+EXPORT_SYMBOL vmlinux 0x08c3b89e nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x0901e2ce block_sync_page
+EXPORT_SYMBOL vmlinux 0x091bfeb8 scsi_register_driver
+EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled
+EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages
+EXPORT_SYMBOL vmlinux 0x095f8706 acpi_lock_ac_dir
+EXPORT_SYMBOL vmlinux 0x0964a667 tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x09775cdc kref_get
+EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources
+EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x099be350 register_con_driver
+EXPORT_SYMBOL vmlinux 0x099d8c59 clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x09a18679 lock_may_write
+EXPORT_SYMBOL vmlinux 0x09b68317 simple_getattr
+EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d1ecbe simple_dir_operations
+EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions
+EXPORT_SYMBOL vmlinux 0x09e3f8e9 tty_vhangup
+EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a2d5665 scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0x0a3ea7bf tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0x0a521693 fb_find_mode
+EXPORT_SYMBOL vmlinux 0x0a688aa6 dma_sync_wait
+EXPORT_SYMBOL vmlinux 0x0a7e99b8 __task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x0aa113ef dquot_drop
+EXPORT_SYMBOL vmlinux 0x0aa4088d scsi_unregister
+EXPORT_SYMBOL vmlinux 0x0aca0c80 bitmap_end_sync
+EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all
+EXPORT_SYMBOL vmlinux 0x0adc7068 tcp_shutdown
+EXPORT_SYMBOL vmlinux 0x0ae0b8c2 __scm_send
+EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert
+EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b2c91bf input_unregister_device
+EXPORT_SYMBOL vmlinux 0x0b51430c sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b8ba7bb vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0x0bb453be jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0x0bbf4342 sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat
+EXPORT_SYMBOL vmlinux 0x0bcb08f3 tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0x0bf9c146 __wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x0c0e3642 journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x0c0ee20e agp_put_bridge
+EXPORT_SYMBOL vmlinux 0x0c509294 mmc_wait_for_cmd
+EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region
+EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register
+EXPORT_SYMBOL vmlinux 0x0cd64517 vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x0cd7ed3f submit_bio
+EXPORT_SYMBOL vmlinux 0x0cda1435 pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0x0cddbb07 bio_put
+EXPORT_SYMBOL vmlinux 0x0d004b36 generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x0d05a7fe skb_unlink
+EXPORT_SYMBOL vmlinux 0x0d10a231 iterate_mounts
+EXPORT_SYMBOL vmlinux 0x0d2e1996 posix_test_lock
+EXPORT_SYMBOL vmlinux 0x0d3541f2 ps2_command
+EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type
+EXPORT_SYMBOL vmlinux 0x0d46e295 generic_getxattr
+EXPORT_SYMBOL vmlinux 0x0d53253a unlock_buffer
+EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d798a2d blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x0d97a85a tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0ddb7e9c pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0x0ddd3a33 acpi_match_device_ids
+EXPORT_SYMBOL vmlinux 0x0e173e69 inet6_bind
+EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x0e29eb14 i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0x0e34c69f netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x0e52592a panic
+EXPORT_SYMBOL vmlinux 0x0e5b01d9 __xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x0e8d64f3 d_alloc_name
+EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free
+EXPORT_SYMBOL vmlinux 0x0ec9f3f5 eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x0ed3cf33 scsi_print_command
+EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed
+EXPORT_SYMBOL vmlinux 0x0edce874 acpi_lock_battery_dir
+EXPORT_SYMBOL vmlinux 0x0f05a1ef vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x0f0636f0 netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0x0f568330 pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0x0f712698 rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x0f9c1071 consume_skb
+EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fc5e8eb radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event
+EXPORT_SYMBOL vmlinux 0x0fe29e3e mmc_card_sleep
+EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress
+EXPORT_SYMBOL vmlinux 0x10109bfd pci_save_state
+EXPORT_SYMBOL vmlinux 0x1013e886 dm_exception_store_type_unregister
+EXPORT_SYMBOL vmlinux 0x106a542c pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user
+EXPORT_SYMBOL vmlinux 0x1078ce2a __bio_clone
+EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint
+EXPORT_SYMBOL vmlinux 0x109e9747 fd_install
+EXPORT_SYMBOL vmlinux 0x10a50c00 elevator_exit
+EXPORT_SYMBOL vmlinux 0x10ab1af1 alloc_disk
+EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10da7e4b brioctl_set
+EXPORT_SYMBOL vmlinux 0x10df2543 xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu
+EXPORT_SYMBOL vmlinux 0x10f4a70d netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x11071ad0 sg_miter_start
+EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype
+EXPORT_SYMBOL vmlinux 0x1108e1c3 agp_generic_free_by_type
+EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x1130287a mmc_release_host
+EXPORT_SYMBOL vmlinux 0x11333ecf phy_detach
+EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x11887c19 phy_connect_direct
+EXPORT_SYMBOL vmlinux 0x118f01ea putname
+EXPORT_SYMBOL vmlinux 0x1190b1f2 seq_putc
+EXPORT_SYMBOL vmlinux 0x119fdd0b clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0x11c8a74c ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0x11e4eac2 napi_complete
+EXPORT_SYMBOL vmlinux 0x11f78247 dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin
+EXPORT_SYMBOL vmlinux 0x11fb8998 kernel_getpeername
+EXPORT_SYMBOL vmlinux 0x11ffad0f try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x120d5129 thaw_process
+EXPORT_SYMBOL vmlinux 0x120fadd0 inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0x1254aa58 udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0x1255beb6 put_page
+EXPORT_SYMBOL vmlinux 0x129bedf1 __pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0x12a3cade journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x12a58cb5 cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0x12bb1165 key_negate_and_link
+EXPORT_SYMBOL vmlinux 0x12e831aa dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0x12f305ef phy_attach_direct
+EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x12fe850d compat_sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x130560d1 pnp_get_resource
+EXPORT_SYMBOL vmlinux 0x1325339d dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x132f24ac dma_async_device_register
+EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support
+EXPORT_SYMBOL vmlinux 0x137b102d simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x1394b8a9 agp_flush_chipset
+EXPORT_SYMBOL vmlinux 0x13a59fcd filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid
+EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation
+EXPORT_SYMBOL vmlinux 0x13ff87f1 journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x14042a3e inode_setattr
+EXPORT_SYMBOL vmlinux 0x1407539a jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0x1408295c udplite_prot
+EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier
+EXPORT_SYMBOL vmlinux 0x1436917d down_write
+EXPORT_SYMBOL vmlinux 0x1455917f fget
+EXPORT_SYMBOL vmlinux 0x14598b7e __scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0x145d078c tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0x1477e90a pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0x14b95598 vfs_link
+EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x14d8b7f1 pci_find_capability
+EXPORT_SYMBOL vmlinux 0x14ea1943 dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x14f37a99 agp_generic_alloc_page
+EXPORT_SYMBOL vmlinux 0x15020348 get_write_access
+EXPORT_SYMBOL vmlinux 0x153b6d7e lookup_hash
+EXPORT_SYMBOL vmlinux 0x154b6cb2 inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x155620b1 vga_get
+EXPORT_SYMBOL vmlinux 0x155f480a pnp_unregister_card_driver
+EXPORT_SYMBOL vmlinux 0x156ac384 invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0x15720483 mmc_power_restore_host
+EXPORT_SYMBOL vmlinux 0x158c5737 send_sig
+EXPORT_SYMBOL vmlinux 0x15aaaf51 dev_open
+EXPORT_SYMBOL vmlinux 0x15d60372 padata_alloc
+EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister
+EXPORT_SYMBOL vmlinux 0x15db2aa6 bdget
+EXPORT_SYMBOL vmlinux 0x15ec1314 redraw_screen
+EXPORT_SYMBOL vmlinux 0x15f084b7 input_register_handler
+EXPORT_SYMBOL vmlinux 0x1607b0f5 __ip_select_ident
+EXPORT_SYMBOL vmlinux 0x160bb650 truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled
+EXPORT_SYMBOL vmlinux 0x1624487e input_allocate_device
+EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x16478acc simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock
+EXPORT_SYMBOL vmlinux 0x165a9de1 wireless_spy_update
+EXPORT_SYMBOL vmlinux 0x16651452 sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1
+EXPORT_SYMBOL vmlinux 0x16b81c98 skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x16bc3a24 alloc_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0x16c178d1 pcix_get_mmrbc
+EXPORT_SYMBOL vmlinux 0x16cb8ec6 default_llseek
+EXPORT_SYMBOL vmlinux 0x16eef42d proto_register
+EXPORT_SYMBOL vmlinux 0x170bf18b acpi_unlock_ac_dir
+EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object
+EXPORT_SYMBOL vmlinux 0x170d0e49 lro_flush_all
+EXPORT_SYMBOL vmlinux 0x17155ac5 journal_update_format
+EXPORT_SYMBOL vmlinux 0x17175757 commit_creds
+EXPORT_SYMBOL vmlinux 0x1763f015 ida_remove
+EXPORT_SYMBOL vmlinux 0x17653928 cont_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x17676d28 netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x1777dea9 agp_generic_create_gatt_table
+EXPORT_SYMBOL vmlinux 0x1789d271 xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0x17a26c5a find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0x17d9a17b xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17eeff02 i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x1805c0f8 dquot_acquire
+EXPORT_SYMBOL vmlinux 0x18308162 inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x183b4ccd elv_register_queue
+EXPORT_SYMBOL vmlinux 0x183b86dd sock_no_poll
+EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL vmlinux 0x184fd6b8 lro_vlan_hwaccel_receive_skb
+EXPORT_SYMBOL vmlinux 0x18570582 xfrm_input
+EXPORT_SYMBOL vmlinux 0x186a34e9 rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0x187366e7 pci_iomap
+EXPORT_SYMBOL vmlinux 0x18801700 get_disk
+EXPORT_SYMBOL vmlinux 0x1896c5ae tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x18b18ea5 uart_register_driver
+EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe
+EXPORT_SYMBOL vmlinux 0x18d80137 __neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0x18fdd513 bio_copy_user
+EXPORT_SYMBOL vmlinux 0x19349400 pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x1945d781 filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x195e10a9 skb_queue_head
+EXPORT_SYMBOL vmlinux 0x1972ede2 tcp_poll
+EXPORT_SYMBOL vmlinux 0x197ca03a vfs_statfs
+EXPORT_SYMBOL vmlinux 0x1988dcb8 nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19a4af42 md_check_recovery
+EXPORT_SYMBOL vmlinux 0x19b16064 cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0x19db1a16 sock_register
+EXPORT_SYMBOL vmlinux 0x1a0bb1f7 task_nice
+EXPORT_SYMBOL vmlinux 0x1a0febed noop_llseek
+EXPORT_SYMBOL vmlinux 0x1a16dabf path_put
+EXPORT_SYMBOL vmlinux 0x1a18886e unlock_page
+EXPORT_SYMBOL vmlinux 0x1a2a19ab journal_wipe
+EXPORT_SYMBOL vmlinux 0x1a3f3148 mmc_host_lazy_disable
+EXPORT_SYMBOL vmlinux 0x1a3fcfa3 find_or_create_page
+EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled
+EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch
+EXPORT_SYMBOL vmlinux 0x1a6f9d07 thermal_cooling_device_unregister
+EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait
+EXPORT_SYMBOL vmlinux 0x1a925a66 down
+EXPORT_SYMBOL vmlinux 0x1a9fbd57 fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in
+EXPORT_SYMBOL vmlinux 0x1aa48f55 dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0x1abf1dec set_pages_wb
+EXPORT_SYMBOL vmlinux 0x1ac3bccb dev_uc_add
+EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b031c5b inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0x1b2f33c0 vfs_getattr
+EXPORT_SYMBOL vmlinux 0x1b448878 tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0x1b465abc __lookup_one_len
+EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton
+EXPORT_SYMBOL vmlinux 0x1b6c897b prepare_creds
+EXPORT_SYMBOL vmlinux 0x1b6c9ffd llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0x1b7f9d68 dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b903168 filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1bb9805a cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0x1bc8cd4e disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x1bcc8aca kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x1bd5ead1 ethtool_ntuple_flush
+EXPORT_SYMBOL vmlinux 0x1c039585 linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x1c1aa600 rfkill_register
+EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c4fa49b xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x1c635a9f iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset
+EXPORT_SYMBOL vmlinux 0x1c8e9bc5 blk_rq_init
+EXPORT_SYMBOL vmlinux 0x1c957316 agp_collect_device_status
+EXPORT_SYMBOL vmlinux 0x1c96289e udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0x1caa84d8 framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x1cbbb841 generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x1cc53149 kfree_skb
+EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cd17804 ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x1ce8558f napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x1cf4e93c scsi_block_requests
+EXPORT_SYMBOL vmlinux 0x1d1eab29 jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d3f2179 iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0x1d459be2 tty_port_close
+EXPORT_SYMBOL vmlinux 0x1d6c9445 hippi_neigh_setup_dev
+EXPORT_SYMBOL vmlinux 0x1d80b06c pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0x1d866242 journal_stop
+EXPORT_SYMBOL vmlinux 0x1d9676f8 bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0x1daac243 scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache
+EXPORT_SYMBOL vmlinux 0x1dbe1dea log_start_commit
+EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dd4614f phy_device_create
+EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1de55817 pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0x1deed478 jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0x1df0ccd0 vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe
+EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc
+EXPORT_SYMBOL vmlinux 0x1e2e427f cpumask_next_and
+EXPORT_SYMBOL vmlinux 0x1e5365b6 journal_dirty_data
+EXPORT_SYMBOL vmlinux 0x1e545fb2 abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0x1e5b18bd remove_arg_zero
+EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr
+EXPORT_SYMBOL vmlinux 0x1e6e438b compat_ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x1e96ec39 ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1ed71082 no_llseek
+EXPORT_SYMBOL vmlinux 0x1ee99984 padata_do_serial
+EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set
+EXPORT_SYMBOL vmlinux 0x1f030d70 sock_no_bind
+EXPORT_SYMBOL vmlinux 0x1f2372d6 soft_cursor
+EXPORT_SYMBOL vmlinux 0x1f31dfea pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0x1f7b6478 have_submounts
+EXPORT_SYMBOL vmlinux 0x1f959f82 compat_tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x1fa2cc05 dump_trace
+EXPORT_SYMBOL vmlinux 0x1fb70375 __dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0x1fbf5631 devm_free_irq
+EXPORT_SYMBOL vmlinux 0x1fc5e8ca inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x1fc7403e arp_create
+EXPORT_SYMBOL vmlinux 0x1fcadea2 netpoll_send_skb
+EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag
+EXPORT_SYMBOL vmlinux 0x1fd96d5e dev_uc_del
+EXPORT_SYMBOL vmlinux 0x1feb717f kernel_getsockname
+EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region
+EXPORT_SYMBOL vmlinux 0x1ff92ec1 lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul
+EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x203c9c50 journal_start_commit
+EXPORT_SYMBOL vmlinux 0x204e301e __find_get_block
+EXPORT_SYMBOL vmlinux 0x2061fdfd alloc_pages_current
+EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table
+EXPORT_SYMBOL vmlinux 0x209a2e24 i2c_transfer
+EXPORT_SYMBOL vmlinux 0x20a22791 block_truncate_page
+EXPORT_SYMBOL vmlinux 0x20dee933 idr_get_new_above
+EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum
+EXPORT_SYMBOL vmlinux 0x212ce9b9 iput
+EXPORT_SYMBOL vmlinux 0x214d949b complete_request_key
+EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16
+EXPORT_SYMBOL vmlinux 0x216001c0 __register_chrdev
+EXPORT_SYMBOL vmlinux 0x2192f399 buffer_migrate_page
+EXPORT_SYMBOL vmlinux 0x21aa3ec9 inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id
+EXPORT_SYMBOL vmlinux 0x21f646f5 inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq
+EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log
+EXPORT_SYMBOL vmlinux 0x2288378f system_state
+EXPORT_SYMBOL vmlinux 0x22891ecd page_symlink
+EXPORT_SYMBOL vmlinux 0x228c4c0d bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x228ed977 __scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x22961ac6 remove_from_page_cache
+EXPORT_SYMBOL vmlinux 0x22a1ff37 sk_alloc
+EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound
+EXPORT_SYMBOL vmlinux 0x22b4c4a5 blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0x22b5c006 dev_get_stats
+EXPORT_SYMBOL vmlinux 0x22c9d5bd inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x23018607 tcp_disconnect
+EXPORT_SYMBOL vmlinux 0x23100738 setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x23122bff thermal_cooling_device_register
+EXPORT_SYMBOL vmlinux 0x2312564e phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x23168d97 security_path_link
+EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul
+EXPORT_SYMBOL vmlinux 0x2334adc2 pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0x234509f3 strncat
+EXPORT_SYMBOL vmlinux 0x234f85f4 abort_creds
+EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x2357bb41 bio_copy_kern
+EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy
+EXPORT_SYMBOL vmlinux 0x23899d09 jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x23b99e92 node_states
+EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23d64270 deactivate_super
+EXPORT_SYMBOL vmlinux 0x23f1a0ab sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node
+EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x2449c86e __pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x245d186b shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x24729d0e d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x24c34326 thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL vmlinux 0x24cbf137 invalidate_inodes
+EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add
+EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function
+EXPORT_SYMBOL vmlinux 0x24fe7130 pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid
+EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x258bbdd1 scsi_host_put
+EXPORT_SYMBOL vmlinux 0x25a11550 dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0x25a223e6 scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0x25bc4838 dm_table_get
+EXPORT_SYMBOL vmlinux 0x25bf06de jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen
+EXPORT_SYMBOL vmlinux 0x2606120e skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x260c6629 blk_register_region
+EXPORT_SYMBOL vmlinux 0x261ad215 proc_mkdir
+EXPORT_SYMBOL vmlinux 0x2637d513 __seq_open_private
+EXPORT_SYMBOL vmlinux 0x26467b22 iget_failed
+EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x26ae9624 __serio_register_port
+EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create
+EXPORT_SYMBOL vmlinux 0x26e684d0 ip_mc_rejoin_group
+EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x26f87c26 pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler
+EXPORT_SYMBOL vmlinux 0x271f68f7 default_unplug_io_fn
+EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del
+EXPORT_SYMBOL vmlinux 0x273453fa single_release
+EXPORT_SYMBOL vmlinux 0x274e1e92 register_nls
+EXPORT_SYMBOL vmlinux 0x276aa7d5 xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0x277b90ff rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x27864d57 memparse
+EXPORT_SYMBOL vmlinux 0x278e90e0 locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x27b057c4 sg_miter_next
+EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic
+EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x27cb5ab2 skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic
+EXPORT_SYMBOL vmlinux 0x27d0c1a2 sock_wmalloc
+EXPORT_SYMBOL vmlinux 0x27f439ac kernel_accept
+EXPORT_SYMBOL vmlinux 0x280f2111 blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll
+EXPORT_SYMBOL vmlinux 0x2866c80d loop_register_transfer
+EXPORT_SYMBOL vmlinux 0x2872bc9c skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x2882e2dd set_pages_nx
+EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28aa2592 filemap_fault
+EXPORT_SYMBOL vmlinux 0x28ec27e3 security_path_unlink
+EXPORT_SYMBOL vmlinux 0x290432e8 journal_create
+EXPORT_SYMBOL vmlinux 0x2911ea4c kobject_add
+EXPORT_SYMBOL vmlinux 0x2919be53 mmc_request_done
+EXPORT_SYMBOL vmlinux 0x291c2584 udp_disconnect
+EXPORT_SYMBOL vmlinux 0x291e9107 jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0x293b58e1 pci_restore_state
+EXPORT_SYMBOL vmlinux 0x293dea03 tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x293f383b acpi_processor_register_performance
+EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x299ab1e6 napi_frags_skb
+EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set
+EXPORT_SYMBOL vmlinux 0x29c6d230 remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0x29cd2920 ip6_route_output
+EXPORT_SYMBOL vmlinux 0x29f10e3f gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x29fbc187 tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0x2a1bf529 skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq
+EXPORT_SYMBOL vmlinux 0x2a23d051 i2c_del_driver
+EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature
+EXPORT_SYMBOL vmlinux 0x2a3107de prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0x2a48756c tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x2a5b9eae phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x2a7b0819 tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0x2ab2e128 d_find_alias
+EXPORT_SYMBOL vmlinux 0x2ab83e54 register_snap_client
+EXPORT_SYMBOL vmlinux 0x2ae48894 inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x2af1ef90 pnp_register_card_driver
+EXPORT_SYMBOL vmlinux 0x2af4bedf slow_work_register_user
+EXPORT_SYMBOL vmlinux 0x2b04968c alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b3fc46b dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x2b5967bc read_cache_pages
+EXPORT_SYMBOL vmlinux 0x2b6497ab fsnotify_obtain_group
+EXPORT_SYMBOL vmlinux 0x2b6a88c6 cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0x2b7daa3c tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler
+EXPORT_SYMBOL vmlinux 0x2bf04525 llc_add_pack
+EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle
+EXPORT_SYMBOL vmlinux 0x2c04b5e6 scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x2c0faa10 elv_rb_add
+EXPORT_SYMBOL vmlinux 0x2c766172 tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x2ce54b56 path_is_under
+EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic
+EXPORT_SYMBOL vmlinux 0x2d02f816 sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x2d09989d __scsi_put_command
+EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d2960ab tty_name
+EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x2d5c00ba input_inject_event
+EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2d9ef758 filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x2da3f72a generic_read_dir
+EXPORT_SYMBOL vmlinux 0x2da5f5f7 km_query
+EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu
+EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception
+EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write
+EXPORT_SYMBOL vmlinux 0x2dfa9eda block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x2e06111d cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e3d2edb cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem
+EXPORT_SYMBOL vmlinux 0x2e648ed4 __invalidate_device
+EXPORT_SYMBOL vmlinux 0x2e7ed600 pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0x2ebfaa00 secpath_dup
+EXPORT_SYMBOL vmlinux 0x2ef7cd2e neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x2efcd79e mapping_tagged
+EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource
+EXPORT_SYMBOL vmlinux 0x2f165e9e dev_close
+EXPORT_SYMBOL vmlinux 0x2f225faf xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0x2f3b02f1 mdiobus_register
+EXPORT_SYMBOL vmlinux 0x2f799112 pci_bus_type
+EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp
+EXPORT_SYMBOL vmlinux 0x2fd60df9 key_task_permission
+EXPORT_SYMBOL vmlinux 0x2fdb9e8a jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0x2fdda4a6 qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0x2fed4219 register_netdev
+EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name
+EXPORT_SYMBOL vmlinux 0x2ff13c29 phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x301eebda ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command
+EXPORT_SYMBOL vmlinux 0x3028905d vga_switcheroo_client_fb_set
+EXPORT_SYMBOL vmlinux 0x3045882b vfs_readv
+EXPORT_SYMBOL vmlinux 0x304eac94 xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x307b9b00 __page_cache_alloc
+EXPORT_SYMBOL vmlinux 0x307d898e agp_unbind_memory
+EXPORT_SYMBOL vmlinux 0x30a7a729 pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x30b12b0c jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0x30c61ca7 mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write
+EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x3119bc5e dev_txq_stats_fold
+EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d default_red
+EXPORT_SYMBOL vmlinux 0x3153458e skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x317d54be migrate_page
+EXPORT_SYMBOL vmlinux 0x318c03f5 eth_type_trans
+EXPORT_SYMBOL vmlinux 0x3198e452 scsi_put_command
+EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck
+EXPORT_SYMBOL vmlinux 0x31d6bbaa max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0x31e0c59f blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz
+EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p
+EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc
+EXPORT_SYMBOL vmlinux 0x31f19d32 try_to_release_page
+EXPORT_SYMBOL vmlinux 0x32139023 security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0x32243f57 jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x3228cd0e pci_disable_link_state
+EXPORT_SYMBOL vmlinux 0x32447137 con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x32720176 xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x3277f82a security_file_mmap
+EXPORT_SYMBOL vmlinux 0x327dfef8 idr_replace
+EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint
+EXPORT_SYMBOL vmlinux 0x329d6f67 vfs_follow_link
+EXPORT_SYMBOL vmlinux 0x32a24cc5 __nla_reserve
+EXPORT_SYMBOL vmlinux 0x32b1738c bd_claim
+EXPORT_SYMBOL vmlinux 0x32bceea5 nf_register_hook
+EXPORT_SYMBOL vmlinux 0x32c28395 gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x32c940a3 kill_pgrp
+EXPORT_SYMBOL vmlinux 0x32db9ce9 scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x32f647bd mntput_no_expire
+EXPORT_SYMBOL vmlinux 0x3310b4d5 ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x333d9e8f sget
+EXPORT_SYMBOL vmlinux 0x33429ccd pci_enable_device
+EXPORT_SYMBOL vmlinux 0x3374e509 vfs_fsync
+EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page
+EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0x341bbf9e mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x343662a2 security_path_truncate
+EXPORT_SYMBOL vmlinux 0x34391fab ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x3444fa62 phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x3452bc8e simple_fill_super
+EXPORT_SYMBOL vmlinux 0x34559ca1 agp_alloc_page_array
+EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long
+EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x34692cb7 current_fs_time
+EXPORT_SYMBOL vmlinux 0x347c42c7 __destroy_inode
+EXPORT_SYMBOL vmlinux 0x34897c1e get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x349cba85 strchr
+EXPORT_SYMBOL vmlinux 0x34a678a9 skb_recycle_check
+EXPORT_SYMBOL vmlinux 0x352193c0 acpi_bus_get_status
+EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe
+EXPORT_SYMBOL vmlinux 0x3561b679 release_sock
+EXPORT_SYMBOL vmlinux 0x3582ed17 vfs_stat
+EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf
+EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator
+EXPORT_SYMBOL vmlinux 0x35ca63a8 poll_initwait
+EXPORT_SYMBOL vmlinux 0x35cb41c7 posix_lock_file
+EXPORT_SYMBOL vmlinux 0x35cee1a1 ps2_begin_command
+EXPORT_SYMBOL vmlinux 0x35d7d357 kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0x35db4efd vga_tryget
+EXPORT_SYMBOL vmlinux 0x35e2a750 hippi_type_trans
+EXPORT_SYMBOL vmlinux 0x35fb2426 rtnl_unicast
+EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask
+EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x361eba7f kernel_bind
+EXPORT_SYMBOL vmlinux 0x36369f68 sock_update_classid
+EXPORT_SYMBOL vmlinux 0x3636adb4 fsnotify_destroy_mark_by_entry
+EXPORT_SYMBOL vmlinux 0x36722d02 pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0x367c99cf bio_endio
+EXPORT_SYMBOL vmlinux 0x367cbf02 wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x36830236 pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0x3697d758 simple_transaction_set
+EXPORT_SYMBOL vmlinux 0x36c183db bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36eb1b0c i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x36f2709a sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0x36fe2e7e vfs_readlink
+EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user
+EXPORT_SYMBOL vmlinux 0x372db1f6 seq_lseek
+EXPORT_SYMBOL vmlinux 0x373bb2ce generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x373c7c01 pci_scan_slot
+EXPORT_SYMBOL vmlinux 0x373fea3d dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x375465a7 radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic
+EXPORT_SYMBOL vmlinux 0x37b4c8e6 __tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date
+EXPORT_SYMBOL vmlinux 0x37def6f1 fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0x38082dbb set_binfmt
+EXPORT_SYMBOL vmlinux 0x380c28a7 fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x38262fdf neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x38318911 close_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x384cc40e pci_remove_behind_bridge
+EXPORT_SYMBOL vmlinux 0x3866f09f flush_old_exec
+EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x38a64058 agp_find_bridge
+EXPORT_SYMBOL vmlinux 0x38b28c40 blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu
+EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0x390ab1a0 d_move
+EXPORT_SYMBOL vmlinux 0x390b9f0a pci_get_class
+EXPORT_SYMBOL vmlinux 0x397b0a14 tcf_em_register
+EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x398b4c15 jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0x39b2693a inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x39b2ed87 netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x39e0bf8c skb_make_writable
+EXPORT_SYMBOL vmlinux 0x3a197016 write_cache_pages
+EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a63f8a7 lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all
+EXPORT_SYMBOL vmlinux 0x3a8115e7 inet_listen
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3aa9eabc tcp4_gro_complete
+EXPORT_SYMBOL vmlinux 0x3ab6d0ac i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0x3ab7b5f4 dev_load
+EXPORT_SYMBOL vmlinux 0x3af9cae9 idr_remove
+EXPORT_SYMBOL vmlinux 0x3b09448c truncate_pagecache
+EXPORT_SYMBOL vmlinux 0x3b262579 tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b5a2a54 neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x3b6bf95f __devm_request_region
+EXPORT_SYMBOL vmlinux 0x3b753df4 pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0x3b8c0ff2 inet6_ioctl
+EXPORT_SYMBOL vmlinux 0x3bbab5f1 pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3c0a2f26 alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf
+EXPORT_SYMBOL vmlinux 0x3c34997f bh_submit_read
+EXPORT_SYMBOL vmlinux 0x3c6a6c22 module_refcount
+EXPORT_SYMBOL vmlinux 0x3c850ac6 page_readlink
+EXPORT_SYMBOL vmlinux 0x3c8cf209 pci_enable_msix
+EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size
+EXPORT_SYMBOL vmlinux 0x3cbe82bb inet_frags_init
+EXPORT_SYMBOL vmlinux 0x3ce01e06 key_payload_reserve
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq
+EXPORT_SYMBOL vmlinux 0x3cf89d7f cpu_info
+EXPORT_SYMBOL vmlinux 0x3d0197f4 pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0x3d0e3d44 tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x3d1966c6 blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0x3d2589a9 arp_xmit
+EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc
+EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page
+EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start
+EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0x3dc93172 bdi_register_dev
+EXPORT_SYMBOL vmlinux 0x3dd8997f nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock
+EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks
+EXPORT_SYMBOL vmlinux 0x3e442660 fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e8306c0 pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3eb66e96 phy_enable_interrupts
+EXPORT_SYMBOL vmlinux 0x3ec61324 dm_dirty_log_create
+EXPORT_SYMBOL vmlinux 0x3ecc3e16 x86_hyper
+EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f0f30d4 tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x3f1d59bc netif_receive_skb
+EXPORT_SYMBOL vmlinux 0x3f39ea89 node_data
+EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq
+EXPORT_SYMBOL vmlinux 0x3f87a117 netlink_ack
+EXPORT_SYMBOL vmlinux 0x3f97f590 security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0x3fa913da strspn
+EXPORT_SYMBOL vmlinux 0x3fc4b7bb skb_checksum
+EXPORT_SYMBOL vmlinux 0x3fec048f sg_next
+EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable
+EXPORT_SYMBOL vmlinux 0x40123029 xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x401c337a km_policy_expired
+EXPORT_SYMBOL vmlinux 0x402bd581 sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x4035e5a1 pci_choose_state
+EXPORT_SYMBOL vmlinux 0x40369829 acpi_processor_notify_smm
+EXPORT_SYMBOL vmlinux 0x403877ee generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds
+EXPORT_SYMBOL vmlinux 0x40725d08 blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x407c8141 __blockdev_direct_IO_newtrunc
+EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register
+EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40b746f7 kill_litter_super
+EXPORT_SYMBOL vmlinux 0x40bb65ea dm_dirty_log_type_register
+EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index
+EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring
+EXPORT_SYMBOL vmlinux 0x41081ab4 kmem_ptr_validate
+EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode
+EXPORT_SYMBOL vmlinux 0x41186a6e open_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp
+EXPORT_SYMBOL vmlinux 0x4134b9f1 sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x41408088 kobject_put
+EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user
+EXPORT_SYMBOL vmlinux 0x41553a8f blk_init_queue
+EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features
+EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0x41d0c1ae blk_remove_plug
+EXPORT_SYMBOL vmlinux 0x41d243c0 bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock
+EXPORT_SYMBOL vmlinux 0x41fa4c52 neigh_table_init
+EXPORT_SYMBOL vmlinux 0x41fc1a3f scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x41fd64b8 mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write
+EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x42183f5d agp_generic_alloc_pages
+EXPORT_SYMBOL vmlinux 0x421c82a8 scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0x42224298 sscanf
+EXPORT_SYMBOL vmlinux 0x422531e2 neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force
+EXPORT_SYMBOL vmlinux 0x42790576 sk_dst_check
+EXPORT_SYMBOL vmlinux 0x42810b8e xfrm_register_type
+EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p
+EXPORT_SYMBOL vmlinux 0x42b663ff ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x42c8f654 elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0x42d000a3 agp_backend_release
+EXPORT_SYMBOL vmlinux 0x42d954c5 request_firmware
+EXPORT_SYMBOL vmlinux 0x42ff5de3 scm_detach_fds
+EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages
+EXPORT_SYMBOL vmlinux 0x43066eb7 filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x4316aab6 misc_deregister
+EXPORT_SYMBOL vmlinux 0x431dc56a ___pskb_trim
+EXPORT_SYMBOL vmlinux 0x432be98b scsi_device_resume
+EXPORT_SYMBOL vmlinux 0x432de966 input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short
+EXPORT_SYMBOL vmlinux 0x4333fbb0 kernel_connect
+EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x4341d897 locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem
+EXPORT_SYMBOL vmlinux 0x43552b03 schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0x43577b72 swiotlb_sync_single_for_cpu
+EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32
+EXPORT_SYMBOL vmlinux 0x436dc8a1 ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x436ea92e ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x438259fb cap_file_mmap
+EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get
+EXPORT_SYMBOL vmlinux 0x43b034b8 tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0x43be8095 i2c_register_driver
+EXPORT_SYMBOL vmlinux 0x43c69fc0 __set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0x43dd4402 fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg
+EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x4430c54e bdi_init
+EXPORT_SYMBOL vmlinux 0x444779c4 nla_find
+EXPORT_SYMBOL vmlinux 0x44568214 dst_discard
+EXPORT_SYMBOL vmlinux 0x449e74ae udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x44a23e2b inode_needs_sync
+EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object
+EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz
+EXPORT_SYMBOL vmlinux 0x44af8cd8 grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0x44e6a62f starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x44e9a829 match_token
+EXPORT_SYMBOL vmlinux 0x44eefc38 blk_init_allocated_queue_node
+EXPORT_SYMBOL vmlinux 0x44f5d588 security_d_instantiate
+EXPORT_SYMBOL vmlinux 0x451c6b72 blk_peek_request
+EXPORT_SYMBOL vmlinux 0x452171a5 cad_pid
+EXPORT_SYMBOL vmlinux 0x452bc7bf jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled
+EXPORT_SYMBOL vmlinux 0x45488540 pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0x454bd8df ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x4567c0cc tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0x457d0652 idr_remove_all
+EXPORT_SYMBOL vmlinux 0x45947727 param_array_set
+EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states
+EXPORT_SYMBOL vmlinux 0x45b600df mpage_readpage
+EXPORT_SYMBOL vmlinux 0x45b62cb9 truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45ddba2a dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x45eb97f1 journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x45fd490d bitmap_close_sync
+EXPORT_SYMBOL vmlinux 0x46467e4b inode_change_ok
+EXPORT_SYMBOL vmlinux 0x464c3cc0 blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0x466c14a7 __delay
+EXPORT_SYMBOL vmlinux 0x46763b95 nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x46a4ef2b simple_transaction_get
+EXPORT_SYMBOL vmlinux 0x46ac6f8c generic_unplug_device
+EXPORT_SYMBOL vmlinux 0x46ae85f2 tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x46bdb2df xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance
+EXPORT_SYMBOL vmlinux 0x46ce03b8 scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0x4706d0c6 journal_ack_err
+EXPORT_SYMBOL vmlinux 0x471a6e86 skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x47434e12 read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects
+EXPORT_SYMBOL vmlinux 0x477983e0 generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0x4780cd81 processors
+EXPORT_SYMBOL vmlinux 0x47818595 __scm_destroy
+EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq
+EXPORT_SYMBOL vmlinux 0x47933c67 sk_stream_error
+EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit
+EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number
+EXPORT_SYMBOL vmlinux 0x47ea1f6d tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0x47ecc84d pci_get_subsys
+EXPORT_SYMBOL vmlinux 0x4816611f bdi_unregister
+EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open
+EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep
+EXPORT_SYMBOL vmlinux 0x482f7385 nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days
+EXPORT_SYMBOL vmlinux 0x4890abe2 tcp_close
+EXPORT_SYMBOL vmlinux 0x48ad6034 pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0x48b5d016 sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x48deae63 default_file_splice_read
+EXPORT_SYMBOL vmlinux 0x493d7045 sync_inode
+EXPORT_SYMBOL vmlinux 0x4942615e padata_start
+EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x49a980bb neigh_for_each
+EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49b6b0aa pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0x49b6c63f find_inode_number
+EXPORT_SYMBOL vmlinux 0x49c7af80 __kfree_skb
+EXPORT_SYMBOL vmlinux 0x49d58b96 single_open
+EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string
+EXPORT_SYMBOL vmlinux 0x49f8d1ba xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a366cda __f_setown
+EXPORT_SYMBOL vmlinux 0x4a3a85e1 scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x4a512489 console_start
+EXPORT_SYMBOL vmlinux 0x4a74f7df cdrom_open
+EXPORT_SYMBOL vmlinux 0x4a7cb7c5 generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0x4a8451b6 generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0x4a8f1ac7 dev_mc_add
+EXPORT_SYMBOL vmlinux 0x4a928944 textsearch_prepare
+EXPORT_SYMBOL vmlinux 0x4aa316bf uart_get_divisor
+EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource
+EXPORT_SYMBOL vmlinux 0x4adec44b tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b019c9b key_unlink
+EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure
+EXPORT_SYMBOL vmlinux 0x4b29bed4 register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x4b385b78 phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0x4b605000 napi_get_frags
+EXPORT_SYMBOL vmlinux 0x4b663035 jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x4b7226db kmem_cache_name
+EXPORT_SYMBOL vmlinux 0x4b9c194a phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags
+EXPORT_SYMBOL vmlinux 0x4bdc8e43 mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c1f98dd unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp
+EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack
+EXPORT_SYMBOL vmlinux 0x4c5cfcb2 vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x4c6983cb mpage_writepage
+EXPORT_SYMBOL vmlinux 0x4c903cb1 tty_unthrottle
+EXPORT_SYMBOL vmlinux 0x4cb69471 llc_sap_open
+EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4ce4ec08 unregister_md_personality
+EXPORT_SYMBOL vmlinux 0x4d12adb1 icmp_send
+EXPORT_SYMBOL vmlinux 0x4d181126 ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0x4d1e5ed4 blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0x4d239c4c devm_ioremap
+EXPORT_SYMBOL vmlinux 0x4d2adca6 generic_write_checks
+EXPORT_SYMBOL vmlinux 0x4d3a3704 kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x4d474f36 generic_listxattr
+EXPORT_SYMBOL vmlinux 0x4d6d7a39 key_revoke
+EXPORT_SYMBOL vmlinux 0x4d92b13f netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0x4d9c5bf3 __nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x4d9f4585 compat_ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x4dafb949 mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0x4db4046a inet_put_port
+EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dd6ca0b get_gendisk
+EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy
+EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4df552f7 scsi_free_command
+EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child
+EXPORT_SYMBOL vmlinux 0x4e2d4337 kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int
+EXPORT_SYMBOL vmlinux 0x4e35d12d dget_locked
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console
+EXPORT_SYMBOL vmlinux 0x4e98c0f2 create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x4e99c48f cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x4e9f3d2e __neigh_event_send
+EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals
+EXPORT_SYMBOL vmlinux 0x4ee47b0a generic_fillattr
+EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f342e51 do_munmap
+EXPORT_SYMBOL vmlinux 0x4f3933c7 dm_io_client_resize
+EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt
+EXPORT_SYMBOL vmlinux 0x4f5f04c6 blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user
+EXPORT_SYMBOL vmlinux 0x4f6fe4d5 pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0x4f77ce0f genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read
+EXPORT_SYMBOL vmlinux 0x4f87beef blk_end_request
+EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user
+EXPORT_SYMBOL vmlinux 0x4f95cb52 dev_mc_del
+EXPORT_SYMBOL vmlinux 0x4fb59ecb make_bad_inode
+EXPORT_SYMBOL vmlinux 0x4fbcd3f9 sk_common_release
+EXPORT_SYMBOL vmlinux 0x4fc0e6e6 alloc_file
+EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command
+EXPORT_SYMBOL vmlinux 0x5001ef4e end_page_writeback
+EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x5024bda9 tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0x50288bad pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0x503f513f blkdev_get
+EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status
+EXPORT_SYMBOL vmlinux 0x5061754a nf_log_packet
+EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x50d3055d pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0x50dfeb2d tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0x50e573fd dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0x50eeffe8 __blk_run_queue
+EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x511cd204 rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0x515721ee replace_mount_options
+EXPORT_SYMBOL vmlinux 0x515e5ee9 __mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x516c8904 tcp_parse_options
+EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn
+EXPORT_SYMBOL vmlinux 0x5195801a start_tty
+EXPORT_SYMBOL vmlinux 0x519cec1f xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x519ddecf km_policy_notify
+EXPORT_SYMBOL vmlinux 0x51aeb3cc force_sig
+EXPORT_SYMBOL vmlinux 0x51bbd624 xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled
+EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data
+EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue
+EXPORT_SYMBOL vmlinux 0x524f77e5 jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x52652a9d __skb_bond_should_drop
+EXPORT_SYMBOL vmlinux 0x526660c3 pcie_port_service_unregister
+EXPORT_SYMBOL vmlinux 0x526a237b pnp_register_driver
+EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday
+EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy
+EXPORT_SYMBOL vmlinux 0x52c2ef34 rb_erase
+EXPORT_SYMBOL vmlinux 0x52c96662 pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort
+EXPORT_SYMBOL vmlinux 0x52f174d9 dev_get_by_flags
+EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0x5309ff14 pci_target_state
+EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend
+EXPORT_SYMBOL vmlinux 0x53163b45 inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid
+EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat
+EXPORT_SYMBOL vmlinux 0x5356ea19 scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0x53792faa filp_open
+EXPORT_SYMBOL vmlinux 0x537d50f2 key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0x538bf5e0 do_sync_write
+EXPORT_SYMBOL vmlinux 0x53b220a4 ppp_dev_name
+EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x53d04766 pci_read_vpd
+EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate
+EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x5449b787 __module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x546bc9da netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0x54798129 cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0x5479db50 tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x54831c21 sock_no_accept
+EXPORT_SYMBOL vmlinux 0x548487ef padata_set_cpumask
+EXPORT_SYMBOL vmlinux 0x548c97eb rfkill_get_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x54b9228b dquot_quota_on_path
+EXPORT_SYMBOL vmlinux 0x54df0839 dqget
+EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54f81122 ip_dev_find
+EXPORT_SYMBOL vmlinux 0x5564bd0d skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0x5566e1db acpi_device_hid
+EXPORT_SYMBOL vmlinux 0x5580e2d7 simple_lookup
+EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x55a728c2 dquot_release
+EXPORT_SYMBOL vmlinux 0x55ae7c1a udp_prot
+EXPORT_SYMBOL vmlinux 0x55bcbdff scsi_prep_return
+EXPORT_SYMBOL vmlinux 0x55fd2e6b shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday
+EXPORT_SYMBOL vmlinux 0x56060821 pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0x560b54db rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x56232ed7 tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user
+EXPORT_SYMBOL vmlinux 0x5639b4a0 ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0x564c3d70 dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0x5658179e idr_get_new
+EXPORT_SYMBOL vmlinux 0x56a2550c uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0x56c772bd generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr
+EXPORT_SYMBOL vmlinux 0x56e8da2d unregister_cdrom
+EXPORT_SYMBOL vmlinux 0x56effde4 skb_store_bits
+EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function
+EXPORT_SYMBOL vmlinux 0x5710cb80 locks_init_lock
+EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x57466e34 tty_devnum
+EXPORT_SYMBOL vmlinux 0x57469826 pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x5751ee51 flush_signals
+EXPORT_SYMBOL vmlinux 0x5756e513 kmem_cache_alloc_notrace
+EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put
+EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16
+EXPORT_SYMBOL vmlinux 0x5767aaf8 genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on
+EXPORT_SYMBOL vmlinux 0x577deb21 phy_device_free
+EXPORT_SYMBOL vmlinux 0x578bc0f0 ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0x57b09822 up
+EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path
+EXPORT_SYMBOL vmlinux 0x57e8b244 unregister_qdisc
+EXPORT_SYMBOL vmlinux 0x581d5c53 padata_free
+EXPORT_SYMBOL vmlinux 0x582c24d1 tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x58411f0a generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep
+EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x5892aa92 jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x589e209c compat_sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x58be8d0a __serio_register_driver
+EXPORT_SYMBOL vmlinux 0x58c7f418 mmc_set_data_timeout
+EXPORT_SYMBOL vmlinux 0x58dcb503 scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x58e92f78 mutex_lock
+EXPORT_SYMBOL vmlinux 0x5901d00f xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0x59139d48 dquot_quota_off
+EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read
+EXPORT_SYMBOL vmlinux 0x593290e3 seq_escape
+EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client
+EXPORT_SYMBOL vmlinux 0x5944db88 audit_log_format
+EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map
+EXPORT_SYMBOL vmlinux 0x5950e840 neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x59a4bd64 jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register
+EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59f957b6 scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0x5a20bc83 unlock_rename
+EXPORT_SYMBOL vmlinux 0x5a2969cf qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table
+EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc
+EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2
+EXPORT_SYMBOL vmlinux 0x5a5aadec pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x5a5f075b writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0x5a62420a fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a772df6 end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x5a8e4e73 agp_alloc_bridge
+EXPORT_SYMBOL vmlinux 0x5ab0f500 ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x5acbfb2b inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0x5af0fffa xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x5b1a3380 nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x5b3e09ac pcie_port_service_register
+EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources
+EXPORT_SYMBOL vmlinux 0x5b5a2a32 smp_call_function_many
+EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0x5b786d18 __break_lease
+EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0x5b85ed6c mmc_add_host
+EXPORT_SYMBOL vmlinux 0x5b94104f __scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x5bc3c158 uart_update_timeout
+EXPORT_SYMBOL vmlinux 0x5bfc852c journal_init_dev
+EXPORT_SYMBOL vmlinux 0x5c07e2da max8925_reg_read
+EXPORT_SYMBOL vmlinux 0x5c085ec0 names_cachep
+EXPORT_SYMBOL vmlinux 0x5c182914 dm_put_device
+EXPORT_SYMBOL vmlinux 0x5c2a7c71 __generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x5c336039 __insert_inode_hash
+EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq
+EXPORT_SYMBOL vmlinux 0x5c583a57 journal_destroy
+EXPORT_SYMBOL vmlinux 0x5c58fc46 netpoll_poll_dev
+EXPORT_SYMBOL vmlinux 0x5c746181 agp_bridge
+EXPORT_SYMBOL vmlinux 0x5c74697f proto_unregister
+EXPORT_SYMBOL vmlinux 0x5c998fae llc_sap_close
+EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock
+EXPORT_SYMBOL vmlinux 0x5ca73e76 d_validate
+EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0x5ceb7be5 scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x5cedac9a sock_create
+EXPORT_SYMBOL vmlinux 0x5cf1aa9a dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x5cf9182b blk_unplug
+EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat
+EXPORT_SYMBOL vmlinux 0x5d12dbfe bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved
+EXPORT_SYMBOL vmlinux 0x5d806c18 blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock
+EXPORT_SYMBOL vmlinux 0x5db3bf10 blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0x5dc43223 idr_pre_get
+EXPORT_SYMBOL vmlinux 0x5df6ea86 do_splice_to
+EXPORT_SYMBOL vmlinux 0x5e09ca75 complete
+EXPORT_SYMBOL vmlinux 0x5e1ff09b inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x5e4f4d5a tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x5e5998ab invalidate_bdev
+EXPORT_SYMBOL vmlinux 0x5e606c70 generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x5e7a2876 security_path_symlink
+EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask
+EXPORT_SYMBOL vmlinux 0x5eb623c3 do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0x5ebc05b9 unlock_super
+EXPORT_SYMBOL vmlinux 0x5ebd76c8 get_phy_id
+EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd
+EXPORT_SYMBOL vmlinux 0x5eea78d0 journal_abort
+EXPORT_SYMBOL vmlinux 0x5ef77853 ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0x5f019aa3 vfs_read
+EXPORT_SYMBOL vmlinux 0x5f14c064 jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock
+EXPORT_SYMBOL vmlinux 0x5f2cfd89 blk_execute_rq
+EXPORT_SYMBOL vmlinux 0x5f46fe23 sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0x5f75d07f xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0x5f7995aa simple_setattr
+EXPORT_SYMBOL vmlinux 0x5f8d323e tty_register_driver
+EXPORT_SYMBOL vmlinux 0x5f8ec979 tcp4_gro_receive
+EXPORT_SYMBOL vmlinux 0x5f936345 compat_ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x5fbc5e3c pnp_unregister_driver
+EXPORT_SYMBOL vmlinux 0x5fbcc0a9 sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr
+EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities
+EXPORT_SYMBOL vmlinux 0x5ff4ca06 fb_class
+EXPORT_SYMBOL vmlinux 0x5ff56aeb pci_reenable_device
+EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats
+EXPORT_SYMBOL vmlinux 0x602cc904 simple_link
+EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count
+EXPORT_SYMBOL vmlinux 0x6046a5bd serio_interrupt
+EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net
+EXPORT_SYMBOL vmlinux 0x609fd2f8 cfb_fillrect
+EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off
+EXPORT_SYMBOL vmlinux 0x60a476e3 key_put
+EXPORT_SYMBOL vmlinux 0x60a6ba94 swiotlb_unmap_sg
+EXPORT_SYMBOL vmlinux 0x60b872e4 __locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x60d46c68 mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x60e32983 __set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x60f408fe kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n
+EXPORT_SYMBOL vmlinux 0x60f8d59b sock_no_getname
+EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x61409455 dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x61445330 seq_read
+EXPORT_SYMBOL vmlinux 0x61446cfc bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x61526176 generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x6152880e pci_set_master
+EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer
+EXPORT_SYMBOL vmlinux 0x615bde64 simple_set_mnt
+EXPORT_SYMBOL vmlinux 0x618911fc numa_node
+EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free
+EXPORT_SYMBOL vmlinux 0x61a401c1 agp_bind_memory
+EXPORT_SYMBOL vmlinux 0x61a60f1f rb_replace_node
+EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61c60e73 security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0x61da82de compat_nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x61e033a1 dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x61f07e38 generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0x61f759df scsi_device_put
+EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable
+EXPORT_SYMBOL vmlinux 0x620957f1 netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0x62182624 xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event
+EXPORT_SYMBOL vmlinux 0x623deee3 acpi_notifier_call_chain
+EXPORT_SYMBOL vmlinux 0x6265a43d clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister
+EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources
+EXPORT_SYMBOL vmlinux 0x6276e866 seq_puts
+EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x629f2b47 acpi_processor_preregister_performance
+EXPORT_SYMBOL vmlinux 0x62be51de serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x62d05502 agp_free_memory
+EXPORT_SYMBOL vmlinux 0x62d2f57c d_alloc
+EXPORT_SYMBOL vmlinux 0x62e1062a phy_disable_interrupts
+EXPORT_SYMBOL vmlinux 0x63388b8b __scsi_add_device
+EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic
+EXPORT_SYMBOL vmlinux 0x6387ed67 journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x638e9cde kmalloc_caches
+EXPORT_SYMBOL vmlinux 0x6395cabb xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0x63b43fc4 skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x63bd3ae8 scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x63c4c14f lock_sock_fast
+EXPORT_SYMBOL vmlinux 0x63e6fc63 remove_inode_hash
+EXPORT_SYMBOL vmlinux 0x63e7f976 try_to_del_timer_sync
+EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user
+EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x6420cc25 handle_sysrq
+EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock
+EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler
+EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable
+EXPORT_SYMBOL vmlinux 0x647896dc genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait
+EXPORT_SYMBOL vmlinux 0x64b14fd2 seq_release_private
+EXPORT_SYMBOL vmlinux 0x64d0158f poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0x64d5b589 vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer
+EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb
+EXPORT_SYMBOL vmlinux 0x64efa931 nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0x651a4139 test_taint
+EXPORT_SYMBOL vmlinux 0x6525d7ae da903x_query_status
+EXPORT_SYMBOL vmlinux 0x652808d6 inode_init_always
+EXPORT_SYMBOL vmlinux 0x652ba7f6 acpi_bus_register_driver
+EXPORT_SYMBOL vmlinux 0x652cf961 pci_find_bus
+EXPORT_SYMBOL vmlinux 0x65362781 ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name
+EXPORT_SYMBOL vmlinux 0x6554311a fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc
+EXPORT_SYMBOL vmlinux 0x6595dd99 __dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x65b678c4 nobh_write_end
+EXPORT_SYMBOL vmlinux 0x65f2c821 blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x66428bd1 jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0x66466be9 get_io_context
+EXPORT_SYMBOL vmlinux 0x666cb93f ip6_frag_init
+EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x66a18cc9 sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x66cc0cc0 pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0x66f39dbe bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time
+EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible
+EXPORT_SYMBOL vmlinux 0x67196182 __napi_schedule
+EXPORT_SYMBOL vmlinux 0x672144bd strlcpy
+EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4
+EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges
+EXPORT_SYMBOL vmlinux 0x67637124 kobject_get
+EXPORT_SYMBOL vmlinux 0x678b5ccd swiotlb_dma_supported
+EXPORT_SYMBOL vmlinux 0x678ff2b6 blk_insert_request
+EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios
+EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67bb0d41 __scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x67e21a54 xfrm_bundle_ok
+EXPORT_SYMBOL vmlinux 0x6807c2a6 pv_cpu_ops
+EXPORT_SYMBOL vmlinux 0x6824a726 otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0x6847d7e5 __blk_end_request
+EXPORT_SYMBOL vmlinux 0x68565ec3 splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x6860fbba md_wait_for_blocked_rdev
+EXPORT_SYMBOL vmlinux 0x68663c94 journal_flush
+EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x688d3e26 dquot_enable
+EXPORT_SYMBOL vmlinux 0x688dccd5 dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0x68cccae9 dquot_file_open
+EXPORT_SYMBOL vmlinux 0x68e17419 neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x68f2f199 blk_stack_limits
+EXPORT_SYMBOL vmlinux 0x68f9c9e8 skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x68feedea scsi_remove_host
+EXPORT_SYMBOL vmlinux 0x69035550 xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer
+EXPORT_SYMBOL vmlinux 0x69215003 pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x692cd6e6 dst_release
+EXPORT_SYMBOL vmlinux 0x694d923b mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0x694e75c9 security_file_permission
+EXPORT_SYMBOL vmlinux 0x695124eb neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days
+EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int
+EXPORT_SYMBOL vmlinux 0x69815756 agp_generic_mask_memory
+EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7
+EXPORT_SYMBOL vmlinux 0x698edb7d skb_put
+EXPORT_SYMBOL vmlinux 0x69921202 ida_init
+EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem
+EXPORT_SYMBOL vmlinux 0x6996205a udp_proc_register
+EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be
+EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource
+EXPORT_SYMBOL vmlinux 0x69c148cb sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x69d2575f efi
+EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69e5e914 rwsem_wake
+EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a1131db unload_nls
+EXPORT_SYMBOL vmlinux 0x6a18d037 dw_spi_add_host
+EXPORT_SYMBOL vmlinux 0x6a1a9f2b qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x6a3ba975 idr_find
+EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask
+EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6a831a56 agp_generic_destroy_pages
+EXPORT_SYMBOL vmlinux 0x6a8b45a8 cdev_del
+EXPORT_SYMBOL vmlinux 0x6a8f1d40 bio_init
+EXPORT_SYMBOL vmlinux 0x6aba71b6 security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x6ac5d4df is_container_init
+EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be
+EXPORT_SYMBOL vmlinux 0x6acfe2f1 tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp
+EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device
+EXPORT_SYMBOL vmlinux 0x6adf4b07 fsnotify_find_mark_entry
+EXPORT_SYMBOL vmlinux 0x6b0d876c kset_register
+EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname
+EXPORT_SYMBOL vmlinux 0x6b2b1d54 blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack
+EXPORT_SYMBOL vmlinux 0x6b3f5a54 set_bh_page
+EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x6b99113f tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x6ba3e4ca netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x6bb1be54 vmap
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x6bcc40e1 acpi_root_dir
+EXPORT_SYMBOL vmlinux 0x6bccd07a input_close_device
+EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock
+EXPORT_SYMBOL vmlinux 0x6c162714 mdiobus_read
+EXPORT_SYMBOL vmlinux 0x6c2d2b2d tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data
+EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0x6c4a17e2 xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x6c57ac07 genphy_suspend
+EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c62541f scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c7845f4 bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x6c823283 sock_rfree
+EXPORT_SYMBOL vmlinux 0x6c9689b7 ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0x6c9f7a9e scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x6ca48ef1 bdev_read_only
+EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x6cbfee76 tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x6cdf375d scsi_add_device
+EXPORT_SYMBOL vmlinux 0x6d075d26 dev_uc_init
+EXPORT_SYMBOL vmlinux 0x6d0e3039 vfs_fstatat
+EXPORT_SYMBOL vmlinux 0x6d14e481 ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x6d1bfc7f blk_init_tags
+EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8
+EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0x6d48f7e8 thermal_zone_device_update
+EXPORT_SYMBOL vmlinux 0x6d63fdb8 console_stop
+EXPORT_SYMBOL vmlinux 0x6d70f3e0 load_nls
+EXPORT_SYMBOL vmlinux 0x6dbbda4a agp3_generic_tlbflush
+EXPORT_SYMBOL vmlinux 0x6dbd4b1d netlink_unicast
+EXPORT_SYMBOL vmlinux 0x6de46e3e blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x6dede1ef nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6e49222f inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x6e679b16 sk_receive_skb
+EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e76fdb9 qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put
+EXPORT_SYMBOL vmlinux 0x6ebd53d1 lock_fb_info
+EXPORT_SYMBOL vmlinux 0x6eefe81d locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x6ef17141 kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create
+EXPORT_SYMBOL vmlinux 0x6f4e52b7 dev_addr_del
+EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device
+EXPORT_SYMBOL vmlinux 0x6f56d69a release_firmware
+EXPORT_SYMBOL vmlinux 0x6f669358 ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0x6f802d7b tty_register_device
+EXPORT_SYMBOL vmlinux 0x6f821cde sock_kmalloc
+EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x6f9e5017 elv_abort_queue
+EXPORT_SYMBOL vmlinux 0x6fb0121f devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x6fc99f0f thaw_bdev
+EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fe49383 agp_generic_type_to_mask_type
+EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write
+EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free
+EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm
+EXPORT_SYMBOL vmlinux 0x701b26c5 genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0x70471147 scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma
+EXPORT_SYMBOL vmlinux 0x705d43b0 nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x7064d319 tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x7070df68 register_console
+EXPORT_SYMBOL vmlinux 0x70765d1c vfs_lstat
+EXPORT_SYMBOL vmlinux 0x7079b8be bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait
+EXPORT_SYMBOL vmlinux 0x70c91279 vlan_gro_frags
+EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock
+EXPORT_SYMBOL vmlinux 0x70e0d61f cpu_all_bits
+EXPORT_SYMBOL vmlinux 0x70f06f26 pci_disable_msix
+EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc
+EXPORT_SYMBOL vmlinux 0x71333151 vfs_llseek
+EXPORT_SYMBOL vmlinux 0x7171121c overflowgid
+EXPORT_SYMBOL vmlinux 0x718f7112 fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0x719e5bca set_pages_x
+EXPORT_SYMBOL vmlinux 0x71a11303 d_path
+EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev
+EXPORT_SYMBOL vmlinux 0x71a5843c setup_new_exec
+EXPORT_SYMBOL vmlinux 0x71bb41e4 wrmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0x71ceebec sock_wake_async
+EXPORT_SYMBOL vmlinux 0x71f6337f fb_show_logo
+EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x7242e96d strnchr
+EXPORT_SYMBOL vmlinux 0x724dd388 arp_tbl
+EXPORT_SYMBOL vmlinux 0x724e737d dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0x7252accf tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x7258df83 f_setown
+EXPORT_SYMBOL vmlinux 0x727c8a53 fddi_type_trans
+EXPORT_SYMBOL vmlinux 0x7296c6cc pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0x72986a33 bioset_create
+EXPORT_SYMBOL vmlinux 0x729d03b8 netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x72a95544 inet_sendmsg
+EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled
+EXPORT_SYMBOL vmlinux 0x72b00b10 neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma
+EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add
+EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte
+EXPORT_SYMBOL vmlinux 0x72cf3951 sock_no_mmap
+EXPORT_SYMBOL vmlinux 0x72e16c02 mark_info_dirty
+EXPORT_SYMBOL vmlinux 0x72ea5242 bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type
+EXPORT_SYMBOL vmlinux 0x72f6e08a skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x72f9d1d8 keyring_clear
+EXPORT_SYMBOL vmlinux 0x731f3f96 udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x73252f64 seq_open_private
+EXPORT_SYMBOL vmlinux 0x73304879 mmc_card_awake
+EXPORT_SYMBOL vmlinux 0x7334d701 inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0x733d8c10 blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x733ead2d dput
+EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay
+EXPORT_SYMBOL vmlinux 0x737295e8 simple_write_end
+EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power
+EXPORT_SYMBOL vmlinux 0x739e1998 is_bad_inode
+EXPORT_SYMBOL vmlinux 0x73bca917 sk_stop_timer
+EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0x73fe9799 dev_mc_init
+EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0x74238ec2 blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0x74253f41 alloc_etherdev_mq
+EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte
+EXPORT_SYMBOL vmlinux 0x746272a0 set_security_override
+EXPORT_SYMBOL vmlinux 0x7462a005 journal_load
+EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x749e76fe remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74c19bf9 cdev_init
+EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74e62194 scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0x74eb305c request_key
+EXPORT_SYMBOL vmlinux 0x7518d630 nonseekable_open
+EXPORT_SYMBOL vmlinux 0x7538b132 agp_off
+EXPORT_SYMBOL vmlinux 0x755bba7d nf_afinfo
+EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp
+EXPORT_SYMBOL vmlinux 0x7570b9d6 proc_create_data
+EXPORT_SYMBOL vmlinux 0x757fb2d2 pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0x759e72cd elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc
+EXPORT_SYMBOL vmlinux 0x75c7640f acpi_unlock_battery_dir
+EXPORT_SYMBOL vmlinux 0x75c930b8 blk_start_queue
+EXPORT_SYMBOL vmlinux 0x75d95a48 pnp_start_dev
+EXPORT_SYMBOL vmlinux 0x75f1cab8 kern_path
+EXPORT_SYMBOL vmlinux 0x75f63ce8 tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler
+EXPORT_SYMBOL vmlinux 0x760a0f4f yield
+EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x7619a244 __ps2_command
+EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off
+EXPORT_SYMBOL vmlinux 0x764bd77c request_resource
+EXPORT_SYMBOL vmlinux 0x766c7d4a phy_device_register
+EXPORT_SYMBOL vmlinux 0x7670b13d dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x767138e3 blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0x767dd8fd acpi_get_irq_routing_table
+EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc
+EXPORT_SYMBOL vmlinux 0x76b042e2 __nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76c6494b set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode
+EXPORT_SYMBOL vmlinux 0x76d4a376 swiotlb_map_sg
+EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges
+EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic
+EXPORT_SYMBOL vmlinux 0x7708f712 pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x775684da block_read_full_page
+EXPORT_SYMBOL vmlinux 0x775c1fdd sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x7786164c free_task
+EXPORT_SYMBOL vmlinux 0x77a5fbbd kill_fasync
+EXPORT_SYMBOL vmlinux 0x77bc13a0 strim
+EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality
+EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77ee9c3f i2c_clients_command
+EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource
+EXPORT_SYMBOL vmlinux 0x77f91b2a xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif
+EXPORT_SYMBOL vmlinux 0x782afd7b qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0x78331175 skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x78370ad7 blkdev_fsync
+EXPORT_SYMBOL vmlinux 0x78381bcc d_lookup
+EXPORT_SYMBOL vmlinux 0x783e518c bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x786485cb journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x7872ec5c tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops
+EXPORT_SYMBOL vmlinux 0x787791c6 tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0x78863733 init_net
+EXPORT_SYMBOL vmlinux 0x788cd3a2 pnp_possible_config
+EXPORT_SYMBOL vmlinux 0x788f0bf9 unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x7890ca9a user_path_at
+EXPORT_SYMBOL vmlinux 0x78ab271c padata_add_cpu
+EXPORT_SYMBOL vmlinux 0x78b3456d fb_set_var
+EXPORT_SYMBOL vmlinux 0x78bb437a bio_split
+EXPORT_SYMBOL vmlinux 0x78c5e23f netdev_set_master
+EXPORT_SYMBOL vmlinux 0x78dc6b04 acpi_processor_unregister_performance
+EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78e01f90 ip_defrag
+EXPORT_SYMBOL vmlinux 0x78e82bdb __dquot_transfer
+EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method
+EXPORT_SYMBOL vmlinux 0x7912c4e4 tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0x794916e4 bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x794c13a3 pipe_unlock
+EXPORT_SYMBOL vmlinux 0x7953506f skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x795cf5f4 scsi_device_get
+EXPORT_SYMBOL vmlinux 0x796dbab8 fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x796de582 seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x79716ec6 bd_set_size
+EXPORT_SYMBOL vmlinux 0x7975e743 unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0x79a3a67a serio_rescan
+EXPORT_SYMBOL vmlinux 0x79a62610 dma_pool_create
+EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79acf0bd vga_switcheroo_register_handler
+EXPORT_SYMBOL vmlinux 0x79dcb559 inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x79e5f94a blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol
+EXPORT_SYMBOL vmlinux 0x7a2cb48e set_bdi_congested
+EXPORT_SYMBOL vmlinux 0x7a3b0051 dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0x7a4497db kzfree
+EXPORT_SYMBOL vmlinux 0x7a467f7f xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0x7a59c068 dm_snap_cow
+EXPORT_SYMBOL vmlinux 0x7a7f5c5f kthread_bind
+EXPORT_SYMBOL vmlinux 0x7a8d7d1c ip6_frag_match
+EXPORT_SYMBOL vmlinux 0x7a91e9a2 mnt_unpin
+EXPORT_SYMBOL vmlinux 0x7aac0837 module_put
+EXPORT_SYMBOL vmlinux 0x7aafaccd scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0x7ab0b4da cdev_alloc
+EXPORT_SYMBOL vmlinux 0x7ac07639 inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip
+EXPORT_SYMBOL vmlinux 0x7ad1305b alloc_hippi_dev
+EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user
+EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x7af73785 xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler
+EXPORT_SYMBOL vmlinux 0x7b25ddb4 fail_migrate_page
+EXPORT_SYMBOL vmlinux 0x7b4339f4 inet6_release
+EXPORT_SYMBOL vmlinux 0x7b45fdce tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register
+EXPORT_SYMBOL vmlinux 0x7b630637 inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update
+EXPORT_SYMBOL vmlinux 0x7ba649f3 acpi_bus_unregister_driver
+EXPORT_SYMBOL vmlinux 0x7bc292be scsi_get_command
+EXPORT_SYMBOL vmlinux 0x7bc5cae5 tty_throttle
+EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name
+EXPORT_SYMBOL vmlinux 0x7bf0ef07 tty_port_put
+EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x7c3a716e sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c4d2cab blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0x7c60d66e getname
+EXPORT_SYMBOL vmlinux 0x7c61340c __release_region
+EXPORT_SYMBOL vmlinux 0x7c71feed ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x7c81fee7 dm_io_client_create
+EXPORT_SYMBOL vmlinux 0x7c82c5df md_done_sync
+EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down
+EXPORT_SYMBOL vmlinux 0x7cd2c30e cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0x7d06097a fb_pan_display
+EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies
+EXPORT_SYMBOL vmlinux 0x7d496852 zero_fill_bio
+EXPORT_SYMBOL vmlinux 0x7d6bb587 cpu_online_mask
+EXPORT_SYMBOL vmlinux 0x7d6f445e pci_map_rom
+EXPORT_SYMBOL vmlinux 0x7d825a1e ps2_handle_response
+EXPORT_SYMBOL vmlinux 0x7d8b43ab dm_dirty_log_type_unregister
+EXPORT_SYMBOL vmlinux 0x7d8d83e1 submit_bh
+EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port
+EXPORT_SYMBOL vmlinux 0x7da3beb3 pci_try_set_mwi
+EXPORT_SYMBOL vmlinux 0x7dceceac capable
+EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe
+EXPORT_SYMBOL vmlinux 0x7de2b6d6 agp_allocate_memory
+EXPORT_SYMBOL vmlinux 0x7e0dd6fb tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e3d40e7 find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x7e5edf1d set_pages_uc
+EXPORT_SYMBOL vmlinux 0x7e93adef d_alloc_root
+EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread
+EXPORT_SYMBOL vmlinux 0x7eb0e1ac k8_northbridges
+EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0x7ec0538a netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy
+EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit
+EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f411f16 xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x7f57ab09 __netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x7f595dff ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x7f690f99 skb_split
+EXPORT_SYMBOL vmlinux 0x7f82c64e dev_addr_add
+EXPORT_SYMBOL vmlinux 0x7f8f3a3f nobh_write_begin
+EXPORT_SYMBOL vmlinux 0x7f97cc65 nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0x7fb081f7 fb_set_suspend
+EXPORT_SYMBOL vmlinux 0x7fc06ebf __blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0x7fccf260 eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x7fd8e5e5 vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x7fe1dada wake_up_process
+EXPORT_SYMBOL vmlinux 0x801914da xfrm_state_update
+EXPORT_SYMBOL vmlinux 0x8025024f neigh_ifdown
+EXPORT_SYMBOL vmlinux 0x807169b6 bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0x80c4ddf9 dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x80c507dc rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x80eedcee __getblk
+EXPORT_SYMBOL vmlinux 0x8105cce7 __mutex_init
+EXPORT_SYMBOL vmlinux 0x8107491d netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table
+EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal
+EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page
+EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info
+EXPORT_SYMBOL vmlinux 0x81f26c5c inet_addr_type
+EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill
+EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply
+EXPORT_SYMBOL vmlinux 0x82249914 llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x82529367 seq_printf
+EXPORT_SYMBOL vmlinux 0x82530caf tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8271038f pnp_activate_dev
+EXPORT_SYMBOL vmlinux 0x82887d60 tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x82a402b4 sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0x82a8906a tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82b28682 skb_gso_segment
+EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x83090551 inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot
+EXPORT_SYMBOL vmlinux 0x8319d39a dentry_open
+EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit
+EXPORT_SYMBOL vmlinux 0x83217cb9 abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x8324ec04 dquot_commit
+EXPORT_SYMBOL vmlinux 0x833b42ca mmc_detect_change
+EXPORT_SYMBOL vmlinux 0x834800a2 kill_pid
+EXPORT_SYMBOL vmlinux 0x834d66a9 compat_tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion
+EXPORT_SYMBOL vmlinux 0x836a8007 register_exec_domain
+EXPORT_SYMBOL vmlinux 0x8375c2c7 dm_table_unplug_all
+EXPORT_SYMBOL vmlinux 0x83800bfa kref_init
+EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8
+EXPORT_SYMBOL vmlinux 0x8397da3c tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83b327b9 input_release_device
+EXPORT_SYMBOL vmlinux 0x83d763a6 register_sysctl_table
+EXPORT_SYMBOL vmlinux 0x83ed0ce2 block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0x842c0cd2 create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x842e6712 serio_close
+EXPORT_SYMBOL vmlinux 0x843f2179 thermal_zone_device_unregister
+EXPORT_SYMBOL vmlinux 0x84736b47 mmc_host_disable
+EXPORT_SYMBOL vmlinux 0x8478334b __napi_complete
+EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x84af5a61 scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0x84b30aa8 skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0x84ef48cb sock_no_connect
+EXPORT_SYMBOL vmlinux 0x85367a03 fsync_bdev
+EXPORT_SYMBOL vmlinux 0x854c13cd llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups
+EXPORT_SYMBOL vmlinux 0x85726fc2 sk_free
+EXPORT_SYMBOL vmlinux 0x859392b5 i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0x85abc85f strncmp
+EXPORT_SYMBOL vmlinux 0x85adf516 register_gifconf
+EXPORT_SYMBOL vmlinux 0x85d074ee simple_empty
+EXPORT_SYMBOL vmlinux 0x85df9b6c strsep
+EXPORT_SYMBOL vmlinux 0x85ffd6d1 blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x8606469b __bread
+EXPORT_SYMBOL vmlinux 0x86191f08 rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0x862b9701 nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x8637e16d md_error
+EXPORT_SYMBOL vmlinux 0x8639a238 pnp_disable_dev
+EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x86522141 tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x865c9bb0 tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x86693354 mmc_try_claim_host
+EXPORT_SYMBOL vmlinux 0x8671d1d8 jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x868acba5 get_options
+EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat
+EXPORT_SYMBOL vmlinux 0x86cffc28 gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x8707930c read_cache_page
+EXPORT_SYMBOL vmlinux 0x871a90de udp_poll
+EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0x87596f6e neigh_create
+EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write
+EXPORT_SYMBOL vmlinux 0x87850e21 dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh
+EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0x87b6cda2 alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x87d5dd85 udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x87e6b350 insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0x87e95715 __lock_buffer
+EXPORT_SYMBOL vmlinux 0x87fcbc63 tty_port_close_start
+EXPORT_SYMBOL vmlinux 0x87fe25cb bio_phys_segments
+EXPORT_SYMBOL vmlinux 0x87ff8f89 generic_permission
+EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate
+EXPORT_SYMBOL vmlinux 0x88257ba0 dev_change_flags
+EXPORT_SYMBOL vmlinux 0x882a7b0c skb_find_text
+EXPORT_SYMBOL vmlinux 0x88543920 con_is_bound
+EXPORT_SYMBOL vmlinux 0x885c658f xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x888a7dc9 compat_mc_setsockopt
+EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x88a08f70 kick_iocb
+EXPORT_SYMBOL vmlinux 0x88a6bcc4 dw_spi_resume_host
+EXPORT_SYMBOL vmlinux 0x88d1fe9f iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0x88e578f2 destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x88e7d9eb agp_generic_alloc_by_type
+EXPORT_SYMBOL vmlinux 0x88f4ed98 elevator_init
+EXPORT_SYMBOL vmlinux 0x89056660 fb_get_mode
+EXPORT_SYMBOL vmlinux 0x89131153 netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x892629b9 block_commit_write
+EXPORT_SYMBOL vmlinux 0x892756bd aio_put_req
+EXPORT_SYMBOL vmlinux 0x892a52e0 inode_permission
+EXPORT_SYMBOL vmlinux 0x892b186e mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx
+EXPORT_SYMBOL vmlinux 0x8938a6ab mdiobus_write
+EXPORT_SYMBOL vmlinux 0x893be8af lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x893f8dcd dquot_operations
+EXPORT_SYMBOL vmlinux 0x8943e18a sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x897473df mktime
+EXPORT_SYMBOL vmlinux 0x89753277 scsi_register
+EXPORT_SYMBOL vmlinux 0x897a6768 rtc_dev_update_irq_enable_emul
+EXPORT_SYMBOL vmlinux 0x897ca7ba load_nls_default
+EXPORT_SYMBOL vmlinux 0x89848518 mdiobus_free
+EXPORT_SYMBOL vmlinux 0x898b37b6 ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0x89a300b9 sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0x89a84fee kmem_cache_alloc_node_notrace
+EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89dfa76a llc_sap_find
+EXPORT_SYMBOL vmlinux 0x89f24fac blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0x8a010d78 input_flush_device
+EXPORT_SYMBOL vmlinux 0x8a24e850 set_anon_super
+EXPORT_SYMBOL vmlinux 0x8a48f3e0 lease_modify
+EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory
+EXPORT_SYMBOL vmlinux 0x8a81f7d7 pskb_copy
+EXPORT_SYMBOL vmlinux 0x8a8fc510 ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8af64acb tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x8b155989 set_disk_ro
+EXPORT_SYMBOL vmlinux 0x8b17cd83 alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last
+EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x8b58da26 ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid
+EXPORT_SYMBOL vmlinux 0x8b77f9dc generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup
+EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user
+EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup
+EXPORT_SYMBOL vmlinux 0x8ba91bfd arch_debugfs_dir
+EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock
+EXPORT_SYMBOL vmlinux 0x8bb80a97 rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0x8bc4e372 phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long
+EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16
+EXPORT_SYMBOL vmlinux 0x8c625aa2 xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0x8c7859ba scsi_print_result
+EXPORT_SYMBOL vmlinux 0x8cb5f4e5 unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0x8cbb42e7 gen_pool_add
+EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8cce1ba3 call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0x8cefda69 cdev_add
+EXPORT_SYMBOL vmlinux 0x8cf3f3f9 insert_inode_locked
+EXPORT_SYMBOL vmlinux 0x8d06b025 iget_locked
+EXPORT_SYMBOL vmlinux 0x8d1448d5 generic_file_mmap
+EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data
+EXPORT_SYMBOL vmlinux 0x8d933b62 xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0x8d96a1b8 kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x8d9a790f thermal_zone_bind_cooling_device
+EXPORT_SYMBOL vmlinux 0x8db0eebd inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x8db237ce pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x8dd3a961 rfkill_unregister
+EXPORT_SYMBOL vmlinux 0x8de48b50 dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0x8de50743 skb_push
+EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block
+EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e3425cc dm_exception_store_destroy
+EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk
+EXPORT_SYMBOL vmlinux 0x8e463770 __elv_add_request
+EXPORT_SYMBOL vmlinux 0x8e4bc642 alloc_netdev_mq
+EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x8e8d5ae2 set_user_nice
+EXPORT_SYMBOL vmlinux 0x8e8e4741 scsi_init_io
+EXPORT_SYMBOL vmlinux 0x8eaa0a70 vga_switcheroo_unregister_client
+EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler
+EXPORT_SYMBOL vmlinux 0x8eb7b42b neigh_lookup
+EXPORT_SYMBOL vmlinux 0x8ec41a76 d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8ef9083c blk_requeue_request
+EXPORT_SYMBOL vmlinux 0x8efe0a0c otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0x8f0740c4 blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0x8f09886c agp_generic_remove_memory
+EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus
+EXPORT_SYMBOL vmlinux 0x8f3ad4c0 pci_get_slot
+EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev
+EXPORT_SYMBOL vmlinux 0x8f69b04c pci_dev_put
+EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data
+EXPORT_SYMBOL vmlinux 0x8f72906c journal_restart
+EXPORT_SYMBOL vmlinux 0x8f73accf xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0x8f7e4482 pcim_iomap
+EXPORT_SYMBOL vmlinux 0x8f7ef081 pcim_pin_device
+EXPORT_SYMBOL vmlinux 0x8f7f2a8b abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2
+EXPORT_SYMBOL vmlinux 0x8fa5472e register_md_personality
+EXPORT_SYMBOL vmlinux 0x8fa7ee6d find_vma
+EXPORT_SYMBOL vmlinux 0x8fd5ad8c cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x901048ff ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync
+EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector
+EXPORT_SYMBOL vmlinux 0x9050c4f7 journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x9054b591 i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0x905dd80d neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system
+EXPORT_SYMBOL vmlinux 0x90a54ce4 i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active
+EXPORT_SYMBOL vmlinux 0x90a9d49d pnp_device_attach
+EXPORT_SYMBOL vmlinux 0x90ac1d7f journal_clear_err
+EXPORT_SYMBOL vmlinux 0x90ade0b1 mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x90d9c657 napi_frags_finish
+EXPORT_SYMBOL vmlinux 0x91082569 blk_put_request
+EXPORT_SYMBOL vmlinux 0x9116fa6f tcp_splice_read
+EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable
+EXPORT_SYMBOL vmlinux 0x914af0f3 security_path_rename
+EXPORT_SYMBOL vmlinux 0x91598f7d dm_dirty_log_destroy
+EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb
+EXPORT_SYMBOL vmlinux 0x916203fe blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0x91730ade dm_get_device
+EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong
+EXPORT_SYMBOL vmlinux 0x9180411c idr_destroy
+EXPORT_SYMBOL vmlinux 0x91b77fb1 dma_async_memcpy_buf_to_buf
+EXPORT_SYMBOL vmlinux 0x91bd85b0 register_filesystem
+EXPORT_SYMBOL vmlinux 0x91c1ce43 set_blocksize
+EXPORT_SYMBOL vmlinux 0x91e0188f hippi_change_mtu
+EXPORT_SYMBOL vmlinux 0x91e5513e keyring_search
+EXPORT_SYMBOL vmlinux 0x91e8f84c i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0x9210be5a pci_clear_master
+EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool
+EXPORT_SYMBOL vmlinux 0x9222e901 sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x922b11ef generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten
+EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get
+EXPORT_SYMBOL vmlinux 0x924405c5 abx500_register_ops
+EXPORT_SYMBOL vmlinux 0x927078fc seq_open
+EXPORT_SYMBOL vmlinux 0x92901e85 mdiobus_scan
+EXPORT_SYMBOL vmlinux 0x92ad048b inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0x92b6d584 inode_add_bytes
+EXPORT_SYMBOL vmlinux 0x92c37c0c sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0x92c8e7c1 key_link
+EXPORT_SYMBOL vmlinux 0x92e8ee2c input_open_device
+EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le
+EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get
+EXPORT_SYMBOL vmlinux 0x931c156c jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x93429643 tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x93448c57 screen_info
+EXPORT_SYMBOL vmlinux 0x9351969d vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0x93552624 scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x93762740 dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule
+EXPORT_SYMBOL vmlinux 0x93abacd9 mmc_register_driver
+EXPORT_SYMBOL vmlinux 0x93ad45a5 gen_pool_free
+EXPORT_SYMBOL vmlinux 0x93c3f5e0 __breadahead
+EXPORT_SYMBOL vmlinux 0x93c651be acpi_info
+EXPORT_SYMBOL vmlinux 0x93d57ee4 ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package
+EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages
+EXPORT_SYMBOL vmlinux 0x941e51d9 xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x94292fa2 textsearch_register
+EXPORT_SYMBOL vmlinux 0x9438b5c2 ppp_input_error
+EXPORT_SYMBOL vmlinux 0x94961283 vunmap
+EXPORT_SYMBOL vmlinux 0x94a4ad3f md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0x94c070e4 md_wakeup_thread
+EXPORT_SYMBOL vmlinux 0x94c297a3 serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x94f6ed76 bio_add_page
+EXPORT_SYMBOL vmlinux 0x951f2369 pci_set_mwi
+EXPORT_SYMBOL vmlinux 0x952de0e5 abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x95352ea9 acpi_check_mem_region
+EXPORT_SYMBOL vmlinux 0x95384177 backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init
+EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf
+EXPORT_SYMBOL vmlinux 0x958051cf end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x959292ff blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x95948f13 netif_rx
+EXPORT_SYMBOL vmlinux 0x9594b224 make_EII_client
+EXPORT_SYMBOL vmlinux 0x95958f92 scsi_finish_command
+EXPORT_SYMBOL vmlinux 0x95a9096a phy_register_fixup
+EXPORT_SYMBOL vmlinux 0x95ab0fe0 agp_generic_alloc_user
+EXPORT_SYMBOL vmlinux 0x95ac76ec unregister_netdev
+EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x95cd7735 __vlan_hwaccel_rx
+EXPORT_SYMBOL vmlinux 0x95ceb864 key_update
+EXPORT_SYMBOL vmlinux 0x95eee3c3 agp_generic_free_gatt_table
+EXPORT_SYMBOL vmlinux 0x95f1097d __nla_put
+EXPORT_SYMBOL vmlinux 0x95f348ea dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0x960e4c8f inet_getname
+EXPORT_SYMBOL vmlinux 0x96214fed file_update_time
+EXPORT_SYMBOL vmlinux 0x9691a27d security_path_chown
+EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96d3342b jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x970b9b5d napi_reuse_skb
+EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n
+EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x97787ff5 pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0x97a0f169 send_sig_info
+EXPORT_SYMBOL vmlinux 0x97b38442 jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x97b6558a journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x97c5d0d7 set_trace_device
+EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block
+EXPORT_SYMBOL vmlinux 0x97f1470e end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0x97f14de8 i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0x98093e76 idr_get_next
+EXPORT_SYMBOL vmlinux 0x9833ff06 bio_clone
+EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x987cc953 ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0x9880aa2a phy_find_first
+EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x
+EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init
+EXPORT_SYMBOL vmlinux 0x989f745c bio_integrity_free
+EXPORT_SYMBOL vmlinux 0x989f8a64 wireless_send_event
+EXPORT_SYMBOL vmlinux 0x98c77623 ht_create_irq
+EXPORT_SYMBOL vmlinux 0x98fd7d6b scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0x98ff42fc unregister_snap_client
+EXPORT_SYMBOL vmlinux 0x99222bfb blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0x9969b40e tty_set_operations
+EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999e8297 vfree
+EXPORT_SYMBOL vmlinux 0x99b211cc slow_work_unregister_user
+EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name
+EXPORT_SYMBOL vmlinux 0x99cca7d4 unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink
+EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map
+EXPORT_SYMBOL vmlinux 0x99f13785 dev_driver_string
+EXPORT_SYMBOL vmlinux 0x99f8d305 set_device_ro
+EXPORT_SYMBOL vmlinux 0x9a18a94d mmc_wait_for_app_cmd
+EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk
+EXPORT_SYMBOL vmlinux 0x9aabc564 crc16
+EXPORT_SYMBOL vmlinux 0x9abc5849 ps2_init
+EXPORT_SYMBOL vmlinux 0x9ac3dc51 cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0x9b0d0945 pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x9b1c3f04 generic_write_sync
+EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b3f464e pci_disable_msi
+EXPORT_SYMBOL vmlinux 0x9b410272 udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x9b445a21 pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x9b8d4da2 cont_write_begin
+EXPORT_SYMBOL vmlinux 0x9ba19327 copy_io_context
+EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split
+EXPORT_SYMBOL vmlinux 0x9bc0385b sock_no_listen
+EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c038ab3 scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x9c0709aa ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan
+EXPORT_SYMBOL vmlinux 0x9c127e04 set_pages_array_uc
+EXPORT_SYMBOL vmlinux 0x9c17391a delayed_slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x9c1f2fe6 set_groups
+EXPORT_SYMBOL vmlinux 0x9c3cbb73 serial8250_register_port
+EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x9c4dfc53 add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0x9c5710f4 input_get_keycode
+EXPORT_SYMBOL vmlinux 0x9c745bee dm_io
+EXPORT_SYMBOL vmlinux 0x9c8d7a6c phy_stop
+EXPORT_SYMBOL vmlinux 0x9c90d0e5 nf_register_hooks
+EXPORT_SYMBOL vmlinux 0x9c99a889 scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0x9ca95a0e sort
+EXPORT_SYMBOL vmlinux 0x9cb12d5a vfs_symlink
+EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x9cc8dd1f skb_copy
+EXPORT_SYMBOL vmlinux 0x9cf884a8 register_8022_client
+EXPORT_SYMBOL vmlinux 0x9cfa892e ilookup5
+EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9d0d0a02 __dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x9d11458b ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable
+EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d4c838e redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x9d9a5c5a kdb_current_task
+EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x9dd08427 create_proc_entry
+EXPORT_SYMBOL vmlinux 0x9ddc0b59 __splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x9e078aaa mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0x9e0fdde2 max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x9e1b691b nla_put
+EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read
+EXPORT_SYMBOL vmlinux 0x9e65a105 compat_sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay
+EXPORT_SYMBOL vmlinux 0x9e7f7c59 bio_map_kern
+EXPORT_SYMBOL vmlinux 0x9e8c0579 pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table
+EXPORT_SYMBOL vmlinux 0x9ebc8334 unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource
+EXPORT_SYMBOL vmlinux 0x9edbecae snprintf
+EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk
+EXPORT_SYMBOL vmlinux 0x9f02e30b ip_route_output_key
+EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0x9f1369fd tcp_read_sock
+EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool
+EXPORT_SYMBOL vmlinux 0x9f368643 padata_stop
+EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f477d5b tty_hangup
+EXPORT_SYMBOL vmlinux 0x9f5a6238 ilookup
+EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section
+EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk
+EXPORT_SYMBOL vmlinux 0x9f984513 strrchr
+EXPORT_SYMBOL vmlinux 0x9f9a818e skb_set_dev
+EXPORT_SYMBOL vmlinux 0x9fb16b8e iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0x9fb4e029 request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa0779ed0 inet_csk_accept
+EXPORT_SYMBOL vmlinux 0xa084affd mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0xa0996c86 inetdev_by_index
+EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock
+EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec
+EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0cdbeab read_dev_sector
+EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize
+EXPORT_SYMBOL vmlinux 0xa0dc65a2 nla_append
+EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xa1074aad jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa10917a3 sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0xa1159dd5 security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa13c964c pci_request_region
+EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa155927e generic_show_options
+EXPORT_SYMBOL vmlinux 0xa163047a blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0xa17c376c bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0xa1881857 netif_carrier_on
+EXPORT_SYMBOL vmlinux 0xa1a3a93a scsi_execute
+EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock
+EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode
+EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched
+EXPORT_SYMBOL vmlinux 0xa1c812df input_free_device
+EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa21213b1 jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0xa21cda85 bdi_destroy
+EXPORT_SYMBOL vmlinux 0xa22ca5b3 splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0xa23835d9 neigh_seq_start
+EXPORT_SYMBOL vmlinux 0xa26703e0 mmc_alloc_host
+EXPORT_SYMBOL vmlinux 0xa279dc5d agp_generic_insert_memory
+EXPORT_SYMBOL vmlinux 0xa28aab66 inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0xa28ea3a6 find_get_page
+EXPORT_SYMBOL vmlinux 0xa29fb275 eth_change_mtu
+EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2b67313 d_genocide
+EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa32317c3 km_new_mapping
+EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker
+EXPORT_SYMBOL vmlinux 0xa331e15b bio_map_user
+EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy
+EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc
+EXPORT_SYMBOL vmlinux 0xa350dcec clear_inode
+EXPORT_SYMBOL vmlinux 0xa35383ad textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config
+EXPORT_SYMBOL vmlinux 0xa3918796 nobh_writepage
+EXPORT_SYMBOL vmlinux 0xa3926a98 dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove
+EXPORT_SYMBOL vmlinux 0xa3c1312d tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0xa3dc41ce dqput
+EXPORT_SYMBOL vmlinux 0xa3e23f95 generic_setattr
+EXPORT_SYMBOL vmlinux 0xa42d4d98 d_invalidate
+EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0xa46cdfe1 file_permission
+EXPORT_SYMBOL vmlinux 0xa47fb533 unregister_nls
+EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq
+EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4c27b7d swiotlb_map_sg_attrs
+EXPORT_SYMBOL vmlinux 0xa4c44c6c __dquot_free_space
+EXPORT_SYMBOL vmlinux 0xa4cb7b6e __xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0xa4d1f7df scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush
+EXPORT_SYMBOL vmlinux 0xa4e756aa ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0xa528b2d0 scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xa5398a6a scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0xa54ce668 skb_clone
+EXPORT_SYMBOL vmlinux 0xa561dc7f user_revoke
+EXPORT_SYMBOL vmlinux 0xa56813bf dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone
+EXPORT_SYMBOL vmlinux 0xa57b68fe jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0xa5801827 i2c_use_client
+EXPORT_SYMBOL vmlinux 0xa5813fb1 skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse
+EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a32e43 ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0xa5a5fa9c i2c_master_send
+EXPORT_SYMBOL vmlinux 0xa5a6aa2f devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xa5b042bb generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0xa5bb68a2 thermal_zone_device_register
+EXPORT_SYMBOL vmlinux 0xa5f240ff tcp_check_req
+EXPORT_SYMBOL vmlinux 0xa5f738bf security_path_mknod
+EXPORT_SYMBOL vmlinux 0xa5f76272 inet_recvmsg
+EXPORT_SYMBOL vmlinux 0xa60842d3 skb_pad
+EXPORT_SYMBOL vmlinux 0xa61447d6 acpi_bus_get_device
+EXPORT_SYMBOL vmlinux 0xa62a2d47 dev_alloc_name
+EXPORT_SYMBOL vmlinux 0xa62d72c2 dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember
+EXPORT_SYMBOL vmlinux 0xa64d764a ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0xa67fe3c0 i2c_verify_client
+EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa6826e66 ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0xa682a327 ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0xa68d6b13 netif_carrier_off
+EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh
+EXPORT_SYMBOL vmlinux 0xa6c6ad62 generic_writepages
+EXPORT_SYMBOL vmlinux 0xa6d124d9 vmtruncate
+EXPORT_SYMBOL vmlinux 0xa6e16486 cfb_copyarea
+EXPORT_SYMBOL vmlinux 0xa6eba16d block_invalidatepage
+EXPORT_SYMBOL vmlinux 0xa6f93b88 pci_claim_resource
+EXPORT_SYMBOL vmlinux 0xa6f93ba0 skb_queue_purge
+EXPORT_SYMBOL vmlinux 0xa703a6de qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0xa71503ae invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes
+EXPORT_SYMBOL vmlinux 0xa72f2aec __skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xa7436ecd blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0xa75162f3 block_prepare_write
+EXPORT_SYMBOL vmlinux 0xa757cdfb blk_queue_ordered
+EXPORT_SYMBOL vmlinux 0xa7937ee4 drop_super
+EXPORT_SYMBOL vmlinux 0xa79e64c6 tcp_make_synack
+EXPORT_SYMBOL vmlinux 0xa7f8a6aa scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0xa812f413 inode_init_owner
+EXPORT_SYMBOL vmlinux 0xa8138c88 generic_file_llseek_unlocked
+EXPORT_SYMBOL vmlinux 0xa815c474 pagevec_lookup
+EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on
+EXPORT_SYMBOL vmlinux 0xa84ee28d __page_symlink
+EXPORT_SYMBOL vmlinux 0xa8528795 compat_sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xa859353c dm_table_event
+EXPORT_SYMBOL vmlinux 0xa863d995 rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0xa874b571 pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0xa87d17bd tcf_hash_search
+EXPORT_SYMBOL vmlinux 0xa8828db5 scsi_host_get
+EXPORT_SYMBOL vmlinux 0xa886a958 krealloc
+EXPORT_SYMBOL vmlinux 0xa88fc454 jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region
+EXPORT_SYMBOL vmlinux 0xa8a7cf8b scsi_remove_device
+EXPORT_SYMBOL vmlinux 0xa8cdc527 __dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning
+EXPORT_SYMBOL vmlinux 0xa8eeb494 bitmap_endwrite
+EXPORT_SYMBOL vmlinux 0xa8f94214 page_follow_link_light
+EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support
+EXPORT_SYMBOL vmlinux 0xa93b3111 dquot_quota_on
+EXPORT_SYMBOL vmlinux 0xa94fc5bd inode_init_once
+EXPORT_SYMBOL vmlinux 0xa95521b0 nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xa97ea1f4 ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xa99a356e ps2_end_command
+EXPORT_SYMBOL vmlinux 0xa9a33c53 neigh_event_ns
+EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize
+EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc
+EXPORT_SYMBOL vmlinux 0xa9c01936 sock_create_lite
+EXPORT_SYMBOL vmlinux 0xa9cd4acc tty_check_change
+EXPORT_SYMBOL vmlinux 0xa9ec79dd security_inode_permission
+EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xa9f0c149 pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0xa9f35a3d security_inode_init_security
+EXPORT_SYMBOL vmlinux 0xaa0c7dc7 scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xaa51e5b9 compat_ip_setsockopt
+EXPORT_SYMBOL vmlinux 0xaa5b6d82 skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xaa774066 vfs_readdir
+EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check
+EXPORT_SYMBOL vmlinux 0xaa8c1a11 skb_queue_tail
+EXPORT_SYMBOL vmlinux 0xaa8d7431 tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0xaa96f537 igrab
+EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable
+EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister
+EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp
+EXPORT_SYMBOL vmlinux 0xab1167f8 rfkill_set_led_trigger_name
+EXPORT_SYMBOL vmlinux 0xab141641 pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0xab1d2912 dw_spi_remove_host
+EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off
+EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc
+EXPORT_SYMBOL vmlinux 0xab687290 pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0xab777f8c simple_unlink
+EXPORT_SYMBOL vmlinux 0xab98fbc1 km_state_expired
+EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock
+EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabd6a045 set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0xabe9b20e bitmap_unplug
+EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0xac29d5d4 phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0xac3eb169 agp_enable
+EXPORT_SYMBOL vmlinux 0xac514913 fb_is_primary_device
+EXPORT_SYMBOL vmlinux 0xac56a90f sock_release
+EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id
+EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac6a753a __inet6_hash
+EXPORT_SYMBOL vmlinux 0xac88210e ethtool_op_get_rx_csum
+EXPORT_SYMBOL vmlinux 0xac9283db dma_set_mask
+EXPORT_SYMBOL vmlinux 0xacb3ec45 skb_pull
+EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton
+EXPORT_SYMBOL vmlinux 0xaccc1132 pipe_lock
+EXPORT_SYMBOL vmlinux 0xaccd6f19 sock_i_uid
+EXPORT_SYMBOL vmlinux 0xacd9700d dev_addr_init
+EXPORT_SYMBOL vmlinux 0xacdd3672 tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0xace7dad3 __skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup
+EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex
+EXPORT_SYMBOL vmlinux 0xad05e23f jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0xad0d1702 simple_rmdir
+EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute
+EXPORT_SYMBOL vmlinux 0xad1f2194 scsi_dma_map
+EXPORT_SYMBOL vmlinux 0xad25fb12 __memcpy
+EXPORT_SYMBOL vmlinux 0xad3278fa md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad471990 pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0xad4ef2e8 vc_resize
+EXPORT_SYMBOL vmlinux 0xad50e3c2 netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0xad8884f9 journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xad99c20b hippi_mac_addr
+EXPORT_SYMBOL vmlinux 0xad9ef98a phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xaddeea34 i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0xade36526 md_integrity_register
+EXPORT_SYMBOL vmlinux 0xadf4303a lock_super
+EXPORT_SYMBOL vmlinux 0xae20366e pnpacpi_protocol
+EXPORT_SYMBOL vmlinux 0xae3188db blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0xae40780a tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0xae50ca85 tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0xae7eaf99 inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0xae821dcd simple_readpage
+EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set
+EXPORT_SYMBOL vmlinux 0xae913222 journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xae9e0349 __inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0xaea56077 netpoll_poll
+EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict
+EXPORT_SYMBOL vmlinux 0xaea9a4c4 simple_release_fs
+EXPORT_SYMBOL vmlinux 0xaed163ca nf_reinject
+EXPORT_SYMBOL vmlinux 0xaede6661 unregister_quota_format
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf46b750 d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register
+EXPORT_SYMBOL vmlinux 0xaf51db91 dquot_alloc
+EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string
+EXPORT_SYMBOL vmlinux 0xafde2a9f journal_revoke
+EXPORT_SYMBOL vmlinux 0xafe5cc83 posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn
+EXPORT_SYMBOL vmlinux 0xaff08657 unregister_filesystem
+EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait
+EXPORT_SYMBOL vmlinux 0xb044cdf5 read_cache_page_async
+EXPORT_SYMBOL vmlinux 0xb04ea8f0 agp_rebind_memory
+EXPORT_SYMBOL vmlinux 0xb05436e1 proc_symlink
+EXPORT_SYMBOL vmlinux 0xb05b39e3 vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler
+EXPORT_SYMBOL vmlinux 0xb0a015eb tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0xb0b35261 jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0xb0b548dd get_super
+EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0b84b70 simple_statfs
+EXPORT_SYMBOL vmlinux 0xb0dbbb4b skb_insert
+EXPORT_SYMBOL vmlinux 0xb0e10781 get_option
+EXPORT_SYMBOL vmlinux 0xb0ea4f9b pci_match_id
+EXPORT_SYMBOL vmlinux 0xb0fa76b6 dquot_resume
+EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0xb11cf18f blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat
+EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb1312438 dm_exception_store_type_register
+EXPORT_SYMBOL vmlinux 0xb1371857 mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0xb137c11c pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0xb15943da mmc_wait_for_req
+EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table
+EXPORT_SYMBOL vmlinux 0xb178440a inet_bind
+EXPORT_SYMBOL vmlinux 0xb17dfc50 blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xb18e1c85 __generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1a20024 dev_disable_lro
+EXPORT_SYMBOL vmlinux 0xb1a41bec journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xb1da43c1 lock_may_read
+EXPORT_SYMBOL vmlinux 0xb1df7f5c xrlim_allow
+EXPORT_SYMBOL vmlinux 0xb1f31451 swiotlb_sync_single_for_device
+EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit
+EXPORT_SYMBOL vmlinux 0xb203eeca tty_shutdown
+EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc
+EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu
+EXPORT_SYMBOL vmlinux 0xb21ce4f4 add_disk
+EXPORT_SYMBOL vmlinux 0xb21f2772 xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short
+EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb296d965 notify_change
+EXPORT_SYMBOL vmlinux 0xb2adc704 revalidate_disk
+EXPORT_SYMBOL vmlinux 0xb2cea29c cdrom_mode_sense
+EXPORT_SYMBOL vmlinux 0xb2e55898 cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0xb2f0e7cd swiotlb_free_coherent
+EXPORT_SYMBOL vmlinux 0xb2f7468d ida_get_new
+EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4
+EXPORT_SYMBOL vmlinux 0xb312b250 unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0xb32567db __dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer
+EXPORT_SYMBOL vmlinux 0xb32bceb1 security_path_mkdir
+EXPORT_SYMBOL vmlinux 0xb33059f2 proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate
+EXPORT_SYMBOL vmlinux 0xb34fcbf5 i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit
+EXPORT_SYMBOL vmlinux 0xb3835f2b scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0xb39519a1 get_fs_type
+EXPORT_SYMBOL vmlinux 0xb39d9fd9 scsi_scan_target
+EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3b05fbe key_validate
+EXPORT_SYMBOL vmlinux 0xb3c0240d invalidate_partition
+EXPORT_SYMBOL vmlinux 0xb3c357e3 call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0xb3d67fc3 generic_setlease
+EXPORT_SYMBOL vmlinux 0xb3e43aad swiotlb_dma_mapping_error
+EXPORT_SYMBOL vmlinux 0xb3ecd4c9 scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact
+EXPORT_SYMBOL vmlinux 0xb406738f generic_file_open
+EXPORT_SYMBOL vmlinux 0xb4078d21 dev_get_flags
+EXPORT_SYMBOL vmlinux 0xb40e6e65 seq_bitmap
+EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked
+EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool
+EXPORT_SYMBOL vmlinux 0xb4363d49 dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0xb4390f9a mcount
+EXPORT_SYMBOL vmlinux 0xb449d103 dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids
+EXPORT_SYMBOL vmlinux 0xb46267d9 write_inode_now
+EXPORT_SYMBOL vmlinux 0xb46ca55c sock_i_ino
+EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb47b6e45 dquot_scan_active
+EXPORT_SYMBOL vmlinux 0xb493c711 jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0xb4a67b76 phy_sanitize_settings
+EXPORT_SYMBOL vmlinux 0xb4b532b5 module_layout
+EXPORT_SYMBOL vmlinux 0xb4c562b6 eth_header_parse
+EXPORT_SYMBOL vmlinux 0xb4ce7615 kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0xb4ff49d2 xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xb5025859 __mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf
+EXPORT_SYMBOL vmlinux 0xb50e50a8 dev_getbyhwaddr
+EXPORT_SYMBOL vmlinux 0xb521a851 task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb54f6ed6 boot_cpu_data
+EXPORT_SYMBOL vmlinux 0xb550522f revert_creds
+EXPORT_SYMBOL vmlinux 0xb55599c0 ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0xb55b7760 qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0xb55de4da __skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0xb571906d pci_assign_resource
+EXPORT_SYMBOL vmlinux 0xb576e0ed dquot_destroy
+EXPORT_SYMBOL vmlinux 0xb5a3781c bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5a4781c get_sb_ns
+EXPORT_SYMBOL vmlinux 0xb5c59c22 in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free
+EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction
+EXPORT_SYMBOL vmlinux 0xb5eb70ac acpi_get_physical_device
+EXPORT_SYMBOL vmlinux 0xb5f28b5f __any_online_cpu
+EXPORT_SYMBOL vmlinux 0xb60ecb1b kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one
+EXPORT_SYMBOL vmlinux 0xb632d3fe tcf_hash_create
+EXPORT_SYMBOL vmlinux 0xb6404b9d input_set_keycode
+EXPORT_SYMBOL vmlinux 0xb64fdadd __xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0xb674b6f2 pnp_request_card_device
+EXPORT_SYMBOL vmlinux 0xb6752aad search_binary_handler
+EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6b001a2 netlink_set_err
+EXPORT_SYMBOL vmlinux 0xb6bfcdb8 tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu
+EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node
+EXPORT_SYMBOL vmlinux 0xb6ee50e5 follow_pfn
+EXPORT_SYMBOL vmlinux 0xb71543d8 mnt_pin
+EXPORT_SYMBOL vmlinux 0xb73e475b ppp_input
+EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event
+EXPORT_SYMBOL vmlinux 0xb788241f do_truncate
+EXPORT_SYMBOL vmlinux 0xb7b12601 pnp_stop_dev
+EXPORT_SYMBOL vmlinux 0xb7b147a4 blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0xb7b422f5 blk_get_request
+EXPORT_SYMBOL vmlinux 0xb7b88912 qdisc_reset
+EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring
+EXPORT_SYMBOL vmlinux 0xb7d2b3a5 devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0xb7d7ec55 tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xb7ecc4e8 inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0xb80140eb mpage_writepages
+EXPORT_SYMBOL vmlinux 0xb80dd758 neigh_parms_release
+EXPORT_SYMBOL vmlinux 0xb8232532 ab3100_event_register
+EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops
+EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32
+EXPORT_SYMBOL vmlinux 0xb8722c6b generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release
+EXPORT_SYMBOL vmlinux 0xb88386dc compat_nf_getsockopt
+EXPORT_SYMBOL vmlinux 0xb885c3a7 rfkill_blocked
+EXPORT_SYMBOL vmlinux 0xb899d9df scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32
+EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue
+EXPORT_SYMBOL vmlinux 0xb8a9b88f dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0xb8b488ab i8042_install_filter
+EXPORT_SYMBOL vmlinux 0xb8c22a8c sk_reset_timer
+EXPORT_SYMBOL vmlinux 0xb8c9fb65 bio_free
+EXPORT_SYMBOL vmlinux 0xb8cb2022 gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0xb8db9ee4 datagram_poll
+EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8
+EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory
+EXPORT_SYMBOL vmlinux 0xb90acdc3 mmc_free_host
+EXPORT_SYMBOL vmlinux 0xb92b70eb dm_unregister_target
+EXPORT_SYMBOL vmlinux 0xb946223c get_phy_device
+EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb99bbe51 jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xb9a819e2 blk_plug_device_unlocked
+EXPORT_SYMBOL vmlinux 0xb9a9e756 tty_port_open
+EXPORT_SYMBOL vmlinux 0xb9c05534 sk_release_kernel
+EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable
+EXPORT_SYMBOL vmlinux 0xb9f21271 generic_make_request
+EXPORT_SYMBOL vmlinux 0xb9fa5ff9 rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0xb9fc782c ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap
+EXPORT_SYMBOL vmlinux 0xba09383d vfs_unlink
+EXPORT_SYMBOL vmlinux 0xba0e59f8 security_inode_readlink
+EXPORT_SYMBOL vmlinux 0xba1d97eb blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0xba21ad28 dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read
+EXPORT_SYMBOL vmlinux 0xba3fa333 inet_register_protosw
+EXPORT_SYMBOL vmlinux 0xba4505ac set_create_files_as
+EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba56a679 sk_filter
+EXPORT_SYMBOL vmlinux 0xba58760c dev_mc_sync
+EXPORT_SYMBOL vmlinux 0xba6e0113 framebuffer_release
+EXPORT_SYMBOL vmlinux 0xba7a2110 bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup
+EXPORT_SYMBOL vmlinux 0xbaa4626a inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbaab7db6 dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0xbab25e09 input_grab_device
+EXPORT_SYMBOL vmlinux 0xbace0b73 filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0xbaf68eb6 sock_init_data
+EXPORT_SYMBOL vmlinux 0xbb035298 follow_up
+EXPORT_SYMBOL vmlinux 0xbb10e179 ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb4766f3 softnet_data
+EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb5d7de7 dcache_dir_close
+EXPORT_SYMBOL vmlinux 0xbb72494e agp_generic_enable
+EXPORT_SYMBOL vmlinux 0xbb741ed6 override_creds
+EXPORT_SYMBOL vmlinux 0xbb794612 otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0xbb8685be padata_remove_cpu
+EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font
+EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xbbe4f2f4 unregister_8022_client
+EXPORT_SYMBOL vmlinux 0xbbfb4a17 dw_spi_suspend_host
+EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit
+EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table
+EXPORT_SYMBOL vmlinux 0xbc31be53 journal_forget
+EXPORT_SYMBOL vmlinux 0xbc32f86e nf_log_register
+EXPORT_SYMBOL vmlinux 0xbc7bd1d4 eth_header_cache
+EXPORT_SYMBOL vmlinux 0xbcb38a72 generic_write_end
+EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user
+EXPORT_SYMBOL vmlinux 0xbce64869 phy_start
+EXPORT_SYMBOL vmlinux 0xbce8fd07 tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0xbcff9ec3 blk_stop_queue
+EXPORT_SYMBOL vmlinux 0xbd20b31d __secpath_destroy
+EXPORT_SYMBOL vmlinux 0xbd271a34 tcf_hash_check
+EXPORT_SYMBOL vmlinux 0xbd3ca0f0 write_one_page
+EXPORT_SYMBOL vmlinux 0xbd3e2171 xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0xbd466abc pnp_device_detach
+EXPORT_SYMBOL vmlinux 0xbd5719ba ppp_unit_number
+EXPORT_SYMBOL vmlinux 0xbd6c8d1d posix_acl_permission
+EXPORT_SYMBOL vmlinux 0xbd9a6ae1 inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port
+EXPORT_SYMBOL vmlinux 0xbdb0cc74 scsi_remove_target
+EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next
+EXPORT_SYMBOL vmlinux 0xbdf7344b skb_trim
+EXPORT_SYMBOL vmlinux 0xbe1e8a61 may_umount_tree
+EXPORT_SYMBOL vmlinux 0xbe2bfdce tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node
+EXPORT_SYMBOL vmlinux 0xbe36f121 init_task
+EXPORT_SYMBOL vmlinux 0xbe3b5a21 noop_qdisc
+EXPORT_SYMBOL vmlinux 0xbe782f7f agp_create_memory
+EXPORT_SYMBOL vmlinux 0xbe797d67 ip_route_input_common
+EXPORT_SYMBOL vmlinux 0xbe7ee9dd sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xbea3ec9d pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0xbef06c3b xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbf2c7934 mmc_power_save_host
+EXPORT_SYMBOL vmlinux 0xbf58ac1d inet_frags_fini
+EXPORT_SYMBOL vmlinux 0xbf62c6c7 dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0xbf6a85c6 generic_setxattr
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbfb40bc3 security_path_chmod
+EXPORT_SYMBOL vmlinux 0xbfbeeb56 neigh_update
+EXPORT_SYMBOL vmlinux 0xbfc0f3ca dev_mc_flush
+EXPORT_SYMBOL vmlinux 0xbfc0f891 tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep
+EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xbff6d950 gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user
+EXPORT_SYMBOL vmlinux 0xc0159ede blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0xc019c5fa tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0xc0254b29 pagecache_write_end
+EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be
+EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit
+EXPORT_SYMBOL vmlinux 0xc0d20eb5 scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0xc0e87831 scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0xc0fe40ce i2c_master_recv
+EXPORT_SYMBOL vmlinux 0xc109b700 dma_supported
+EXPORT_SYMBOL vmlinux 0xc10a6a27 ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0xc10f9c28 devm_ioport_map
+EXPORT_SYMBOL vmlinux 0xc1166f3a dquot_commit_info
+EXPORT_SYMBOL vmlinux 0xc1268644 idr_init
+EXPORT_SYMBOL vmlinux 0xc1288482 pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0xc13c0da0 mpage_readpages
+EXPORT_SYMBOL vmlinux 0xc155fcd2 xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic
+EXPORT_SYMBOL vmlinux 0xc17d62c3 current_task
+EXPORT_SYMBOL vmlinux 0xc1ad1380 dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1eaa1f8 blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0xc214bca2 block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0xc2210131 vm_map_ram
+EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup
+EXPORT_SYMBOL vmlinux 0xc244cd7e fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0xc24b48da xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc286a690 phy_driver_register
+EXPORT_SYMBOL vmlinux 0xc289f97f sock_setsockopt
+EXPORT_SYMBOL vmlinux 0xc2c136ef vc_cons
+EXPORT_SYMBOL vmlinux 0xc2d007c4 jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices
+EXPORT_SYMBOL vmlinux 0xc3157fbf sk_run_filter
+EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu
+EXPORT_SYMBOL vmlinux 0xc36a867e alloc_fddidev
+EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout
+EXPORT_SYMBOL vmlinux 0xc38ffa49 dquot_disable
+EXPORT_SYMBOL vmlinux 0xc39a94ee genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0xc3a66ff0 mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1
+EXPORT_SYMBOL vmlinux 0xc3e82e88 blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0xc3f0e1d3 ____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier
+EXPORT_SYMBOL vmlinux 0xc4237efd pci_request_regions
+EXPORT_SYMBOL vmlinux 0xc42e6909 tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0xc44c7a6f dm_table_put
+EXPORT_SYMBOL vmlinux 0xc44d9325 register_sysrq_key
+EXPORT_SYMBOL vmlinux 0xc45aba5d pci_fixup_device
+EXPORT_SYMBOL vmlinux 0xc4771bd8 jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0xc489ac42 __put_cred
+EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup
+EXPORT_SYMBOL vmlinux 0xc4a49603 mmc_resume_host
+EXPORT_SYMBOL vmlinux 0xc4a51098 qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0xc4b13a5f lock_sock_nested
+EXPORT_SYMBOL vmlinux 0xc4b1489e journal_errno
+EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic
+EXPORT_SYMBOL vmlinux 0xc4e9c01c cpu_active_mask
+EXPORT_SYMBOL vmlinux 0xc4eaadf8 register_qdisc
+EXPORT_SYMBOL vmlinux 0xc527554a padata_do_parallel
+EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc5322294 dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0xc534c0e5 pnp_release_card_device
+EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16
+EXPORT_SYMBOL vmlinux 0xc558530d profile_pc
+EXPORT_SYMBOL vmlinux 0xc5742deb tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0xc5844fb8 __per_cpu_offset
+EXPORT_SYMBOL vmlinux 0xc5b2603e icmpv6_send
+EXPORT_SYMBOL vmlinux 0xc5be53fb request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0xc5c13e34 blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0xc5d0a558 pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot
+EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0xc646bac6 netdev_state_change
+EXPORT_SYMBOL vmlinux 0xc6511d01 swiotlb_unmap_sg_attrs
+EXPORT_SYMBOL vmlinux 0xc6582590 mmc_align_data_size
+EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes
+EXPORT_SYMBOL vmlinux 0xc65df220 elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0xc67bd8db serio_reconnect
+EXPORT_SYMBOL vmlinux 0xc67cfe57 lro_vlan_hwaccel_receive_frags
+EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info
+EXPORT_SYMBOL vmlinux 0xc68dda90 dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0xc6bfeb08 kobject_init
+EXPORT_SYMBOL vmlinux 0xc6eba178 journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xc6ee12e6 inet_shutdown
+EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port
+EXPORT_SYMBOL vmlinux 0xc7286e41 prepare_binprm
+EXPORT_SYMBOL vmlinux 0xc740c64a memchr
+EXPORT_SYMBOL vmlinux 0xc74276ca noop_fsync
+EXPORT_SYMBOL vmlinux 0xc74ebf15 inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0xc75d5f05 rtnl_notify
+EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7a5b05c alloc_disk_node
+EXPORT_SYMBOL vmlinux 0xc7b63c20 bdput
+EXPORT_SYMBOL vmlinux 0xc7ec20cb vm_insert_page
+EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table
+EXPORT_SYMBOL vmlinux 0xc8a5efaf free_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8bd8a74 get_sb_single
+EXPORT_SYMBOL vmlinux 0xc8c22709 splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0xc8cc67d7 input_register_handle
+EXPORT_SYMBOL vmlinux 0xc8dc98a7 dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0xc8dcab3d bio_unmap_user
+EXPORT_SYMBOL vmlinux 0xc90f61e0 scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0xc94173c9 pci_remove_bus
+EXPORT_SYMBOL vmlinux 0xc94bac3b pci_release_region
+EXPORT_SYMBOL vmlinux 0xc94e6cef wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0xc9547e87 genphy_read_status
+EXPORT_SYMBOL vmlinux 0xc993be52 netdev_features_change
+EXPORT_SYMBOL vmlinux 0xc993ea45 tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev
+EXPORT_SYMBOL vmlinux 0xc99e8f95 skb_seq_read
+EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete
+EXPORT_SYMBOL vmlinux 0xc9b0b0cf xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0xc9b80b4c pid_task
+EXPORT_SYMBOL vmlinux 0xc9cd1184 x86_hyper_vmware
+EXPORT_SYMBOL vmlinux 0xca22ee60 __lru_cache_add
+EXPORT_SYMBOL vmlinux 0xca4136d9 dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0xca596008 lookup_one_len
+EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca5df891 pci_pme_active
+EXPORT_SYMBOL vmlinux 0xca628a63 xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0xca6f476b dmam_pool_create
+EXPORT_SYMBOL vmlinux 0xca808d4d ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xca8295c6 __sk_dst_check
+EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level
+EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel
+EXPORT_SYMBOL vmlinux 0xcaca0973 check_disk_size_change
+EXPORT_SYMBOL vmlinux 0xcacf3d1a tty_kref_put
+EXPORT_SYMBOL vmlinux 0xcad3cdd3 generic_block_bmap
+EXPORT_SYMBOL vmlinux 0xcad4dcf4 __sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0xcb138863 bdevname
+EXPORT_SYMBOL vmlinux 0xcb186a87 dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0xcb484273 open_by_devnum
+EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb728d4e pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power
+EXPORT_SYMBOL vmlinux 0xcbb21719 scsi_print_sense
+EXPORT_SYMBOL vmlinux 0xcc00266f put_disk
+EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen
+EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port
+EXPORT_SYMBOL vmlinux 0xcc3008ec ppp_register_channel
+EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc3e1873 tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0xcc4b80cb scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc53deea tr_type_trans
+EXPORT_SYMBOL vmlinux 0xcc6d592a pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0xcc7e6b2f scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0xccd36d0c i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0xcd1fe3ed vlan_gro_receive
+EXPORT_SYMBOL vmlinux 0xcd2ab150 tcp_ioctl
+EXPORT_SYMBOL vmlinux 0xcd41fda1 scsi_register_interface
+EXPORT_SYMBOL vmlinux 0xcd48a023 blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xcd499e34 pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0xcd4e4d47 input_register_device
+EXPORT_SYMBOL vmlinux 0xcd828240 eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0xcdcaf68d xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0xcddec6c5 dma_find_channel
+EXPORT_SYMBOL vmlinux 0xcdf6bf96 swiotlb_sync_sg_for_cpu
+EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe
+EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0xce20e1d2 filp_close
+EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state
+EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce5ac280 eth_header
+EXPORT_SYMBOL vmlinux 0xce5cc21e boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0xce73882c journal_start
+EXPORT_SYMBOL vmlinux 0xce8a5797 phy_print_status
+EXPORT_SYMBOL vmlinux 0xce8e837e directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0xcea9566b blk_integrity_register
+EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free
+EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port
+EXPORT_SYMBOL vmlinux 0xcf0c15c1 lock_rename
+EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error
+EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free
+EXPORT_SYMBOL vmlinux 0xcf881fdb bdget_disk
+EXPORT_SYMBOL vmlinux 0xcf922454 bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfccad2f generic_delete_inode
+EXPORT_SYMBOL vmlinux 0xcfea4cdf ida_destroy
+EXPORT_SYMBOL vmlinux 0xd006c9dc __rta_fill
+EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd019c1ec genphy_config_advert
+EXPORT_SYMBOL vmlinux 0xd03b78e0 d_instantiate
+EXPORT_SYMBOL vmlinux 0xd0452aee x86_hyper_ms_hyperv
+EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables
+EXPORT_SYMBOL vmlinux 0xd0a6635a scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0xd0a6dcdc uart_remove_one_port
+EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0d1176f put_tty_driver
+EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0f6eeab key_type_keyring
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key
+EXPORT_SYMBOL vmlinux 0xd128117c free_netdev
+EXPORT_SYMBOL vmlinux 0xd13fd7ca seq_release
+EXPORT_SYMBOL vmlinux 0xd1431182 fifo_set_limit
+EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver
+EXPORT_SYMBOL vmlinux 0xd1529f36 scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0xd15aa581 blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic
+EXPORT_SYMBOL vmlinux 0xd18e9d8d md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings
+EXPORT_SYMBOL vmlinux 0xd2096bfb genphy_update_link
+EXPORT_SYMBOL vmlinux 0xd20fe074 posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel
+EXPORT_SYMBOL vmlinux 0xd23c04f3 sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0xd23db386 check_disk_change
+EXPORT_SYMBOL vmlinux 0xd244789c set_page_dirty
+EXPORT_SYMBOL vmlinux 0xd24633b4 dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0xd247a8b8 alloc_trdev
+EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t
+EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook
+EXPORT_SYMBOL vmlinux 0xd26e1601 unregister_binfmt
+EXPORT_SYMBOL vmlinux 0xd270d3fa md_write_start
+EXPORT_SYMBOL vmlinux 0xd271a91c dst_destroy
+EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match
+EXPORT_SYMBOL vmlinux 0xd2ae099d dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0xd2d6a930 nf_hook_slow
+EXPORT_SYMBOL vmlinux 0xd2d9f3d3 bioset_free
+EXPORT_SYMBOL vmlinux 0xd32baf62 d_splice_alias
+EXPORT_SYMBOL vmlinux 0xd330ce45 kobject_set_name
+EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock
+EXPORT_SYMBOL vmlinux 0xd38d6748 neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64
+EXPORT_SYMBOL vmlinux 0xd3952c57 uart_match_port
+EXPORT_SYMBOL vmlinux 0xd39898fe jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user
+EXPORT_SYMBOL vmlinux 0xd3f52282 blkdev_put
+EXPORT_SYMBOL vmlinux 0xd4054c6c do_splice_from
+EXPORT_SYMBOL vmlinux 0xd4079e5b kobject_del
+EXPORT_SYMBOL vmlinux 0xd41abc0e xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0xd44282e8 swiotlb_sync_sg_for_device
+EXPORT_SYMBOL vmlinux 0xd46e12ed gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0xd493f424 dev_uc_sync
+EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data
+EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd52e05ad sk_wait_data
+EXPORT_SYMBOL vmlinux 0xd53e4cfa balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0xd54eb3b8 d_rehash
+EXPORT_SYMBOL vmlinux 0xd55c179e backlight_device_register
+EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out
+EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit
+EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages
+EXPORT_SYMBOL vmlinux 0xd5801516 __register_binfmt
+EXPORT_SYMBOL vmlinux 0xd58d19d7 blk_free_tags
+EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put
+EXPORT_SYMBOL vmlinux 0xd5b30799 dma_ops
+EXPORT_SYMBOL vmlinux 0xd5b9c8b4 slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0xd5b9e9cc block_write_end
+EXPORT_SYMBOL vmlinux 0xd5da74e9 __ht_create_irq
+EXPORT_SYMBOL vmlinux 0xd6088cdd kset_unregister
+EXPORT_SYMBOL vmlinux 0xd60efc4a stop_tty
+EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read
+EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd633f9b1 ll_rw_block
+EXPORT_SYMBOL vmlinux 0xd635d134 rb_last
+EXPORT_SYMBOL vmlinux 0xd6374f6b mfd_add_devices
+EXPORT_SYMBOL vmlinux 0xd64b708e freeze_bdev
+EXPORT_SYMBOL vmlinux 0xd659dc9d ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0xd68a27b3 dma_pool_free
+EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single
+EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz
+EXPORT_SYMBOL vmlinux 0xd6c54907 new_inode
+EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc
+EXPORT_SYMBOL vmlinux 0xd6f97ca1 rb_first
+EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh
+EXPORT_SYMBOL vmlinux 0xd71fe275 xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0xd7218dfe input_set_capability
+EXPORT_SYMBOL vmlinux 0xd75ef07c bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0xd769dc2b kthread_stop
+EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and
+EXPORT_SYMBOL vmlinux 0xd77b79b0 deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0xd77ef54d get_user_pages
+EXPORT_SYMBOL vmlinux 0xd785cacc tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal
+EXPORT_SYMBOL vmlinux 0xd7b6e598 bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0xd7c537a5 may_umount
+EXPORT_SYMBOL vmlinux 0xd7c5f68c input_unregister_handler
+EXPORT_SYMBOL vmlinux 0xd7c683d1 mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0xd7daa025 elv_queue_empty
+EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7ebeede do_SAK
+EXPORT_SYMBOL vmlinux 0xd7f43b83 bitmap_cond_end_sync
+EXPORT_SYMBOL vmlinux 0xd8249063 blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user
+EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone
+EXPORT_SYMBOL vmlinux 0xd8d9fc6b __sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd8ffe0de dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler
+EXPORT_SYMBOL vmlinux 0xd9172aae xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0xd917b79e scsi_scan_host
+EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd92e3d96 set_irq_chip
+EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference
+EXPORT_SYMBOL vmlinux 0xd970fa05 inet_accept
+EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd9a2d964 jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0xd9ab1836 generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0xd9c94472 elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0xd9c9678a pcim_iounmap
+EXPORT_SYMBOL vmlinux 0xd9d8269d md_register_thread
+EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic
+EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf
+EXPORT_SYMBOL vmlinux 0xda1f497e dst_alloc
+EXPORT_SYMBOL vmlinux 0xda24cf56 pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0xda38f9f8 take_over_console
+EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue
+EXPORT_SYMBOL vmlinux 0xda69c1ad phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0xda6d0c71 ps2_drain
+EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xdac7eda2 pci_get_device
+EXPORT_SYMBOL vmlinux 0xdacde51f security_path_rmdir
+EXPORT_SYMBOL vmlinux 0xdb7ba8c7 i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0xdbb5ad5c node_to_cpumask_map
+EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbe041df vga_client_register
+EXPORT_SYMBOL vmlinux 0xdbe1ec96 page_put_link
+EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done
+EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems
+EXPORT_SYMBOL vmlinux 0xdc16936f inet_ioctl
+EXPORT_SYMBOL vmlinux 0xdc1873ab file_fsync
+EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize
+EXPORT_SYMBOL vmlinux 0xdc4a52ac skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0xdc53c8c0 pci_write_vpd
+EXPORT_SYMBOL vmlinux 0xdc6a1eec netif_napi_del
+EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family
+EXPORT_SYMBOL vmlinux 0xdca81605 pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close
+EXPORT_SYMBOL vmlinux 0xdcbe2115 tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0xdccb0399 skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0xdccee5eb audit_log_end
+EXPORT_SYMBOL vmlinux 0xdce1ce59 remove_proc_entry
+EXPORT_SYMBOL vmlinux 0xdd170500 jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0xdd2cc24d tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0xdd2e3410 tcp_child_process
+EXPORT_SYMBOL vmlinux 0xdd4d1558 dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0xdd8d0dff acpi_bus_add
+EXPORT_SYMBOL vmlinux 0xdda69b04 kthread_create
+EXPORT_SYMBOL vmlinux 0xddeb6c92 blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0xde02d10c __mmc_claim_host
+EXPORT_SYMBOL vmlinux 0xde0bdcff memset
+EXPORT_SYMBOL vmlinux 0xde1e0e80 slow_work_cancel
+EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending
+EXPORT_SYMBOL vmlinux 0xde497000 pci_release_regions
+EXPORT_SYMBOL vmlinux 0xde7107b2 nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type
+EXPORT_SYMBOL vmlinux 0xde87588f deny_write_access
+EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages
+EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size
+EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock
+EXPORT_SYMBOL vmlinux 0xdef6cac2 netpoll_setup
+EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices
+EXPORT_SYMBOL vmlinux 0xdf0e29c0 acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL vmlinux 0xdf2330e3 do_sync_read
+EXPORT_SYMBOL vmlinux 0xdf2dbe8c del_gendisk
+EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval
+EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol
+EXPORT_SYMBOL vmlinux 0xdf639e1c dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0xdf82a843 block_write_full_page
+EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay
+EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdfb06d5b blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0xdfb2fe9a dcache_dir_open
+EXPORT_SYMBOL vmlinux 0xdfb668e2 inet_release
+EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init
+EXPORT_SYMBOL vmlinux 0xdfde5626 simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0xdfdea6ad d_add_ci
+EXPORT_SYMBOL vmlinux 0xe00e20c8 sync_blockdev
+EXPORT_SYMBOL vmlinux 0xe01fefea __alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0xe03656f3 security_task_getsecid
+EXPORT_SYMBOL vmlinux 0xe041c4a3 neigh_destroy
+EXPORT_SYMBOL vmlinux 0xe046e40b pneigh_lookup
+EXPORT_SYMBOL vmlinux 0xe05cc19f cfb_imageblit
+EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe0993fde max8925_reg_write
+EXPORT_SYMBOL vmlinux 0xe0a75bbe unregister_key_type
+EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event
+EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free
+EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort
+EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0xe0dd2497 compat_mc_getsockopt
+EXPORT_SYMBOL vmlinux 0xe0efca32 install_exec_creds
+EXPORT_SYMBOL vmlinux 0xe0f9cfa9 blk_sync_queue
+EXPORT_SYMBOL vmlinux 0xe11210b4 tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial
+EXPORT_SYMBOL vmlinux 0xe117fad1 lro_receive_frags
+EXPORT_SYMBOL vmlinux 0xe12753ce x86_dma_fallback_dev
+EXPORT_SYMBOL vmlinux 0xe127e645 sock_map_fd
+EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0xe13bba2f inet_add_protocol
+EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors
+EXPORT_SYMBOL vmlinux 0xe13fc7b5 generic_readlink
+EXPORT_SYMBOL vmlinux 0xe16986a5 blk_complete_request
+EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe1893a8e sk_reset_txq
+EXPORT_SYMBOL vmlinux 0xe190fa86 blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0xe19abd07 kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xe1d5d0ef xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0xe1edc10e i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0xe217421e simple_setsize
+EXPORT_SYMBOL vmlinux 0xe222b10f fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0xe2280c64 xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xe22d2d0a ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0xe22f9de4 blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf
+EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64
+EXPORT_SYMBOL vmlinux 0xe2517460 register_quota_format
+EXPORT_SYMBOL vmlinux 0xe27b85c2 pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0xe2937899 mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0xe296d620 qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0xe298f819 blk_run_queue
+EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64
+EXPORT_SYMBOL vmlinux 0xe2ac33f1 pnp_is_active
+EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp
+EXPORT_SYMBOL vmlinux 0xe2f4d38c follow_down
+EXPORT_SYMBOL vmlinux 0xe2fbe661 inode_set_bytes
+EXPORT_SYMBOL vmlinux 0xe31bb51e request_key_async
+EXPORT_SYMBOL vmlinux 0xe3229304 dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xe34dd024 rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0xe3502ff9 dm_exception_store_create
+EXPORT_SYMBOL vmlinux 0xe356c66a cpu_core_map
+EXPORT_SYMBOL vmlinux 0xe36c039f sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0xe39b563a filemap_flush
+EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf
+EXPORT_SYMBOL vmlinux 0xe3d8c269 scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0xe3f24fd9 pci_dev_get
+EXPORT_SYMBOL vmlinux 0xe3fa0132 grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler
+EXPORT_SYMBOL vmlinux 0xe400a41d dev_uc_flush
+EXPORT_SYMBOL vmlinux 0xe4076e27 page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0xe428662c bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT
+EXPORT_SYMBOL vmlinux 0xe4410512 jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0xe4526f31 kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem
+EXPORT_SYMBOL vmlinux 0xe4583069 blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0xe4586dcb kernel_listen
+EXPORT_SYMBOL vmlinux 0xe461bf9c __free_pages
+EXPORT_SYMBOL vmlinux 0xe4670d16 blk_plug_device
+EXPORT_SYMBOL vmlinux 0xe484e35f ioread32
+EXPORT_SYMBOL vmlinux 0xe492d66b generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xe49fa37b n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0xe4b24b8c __next_cpu
+EXPORT_SYMBOL vmlinux 0xe4bf206e blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0xe4df6985 set_pages_array_wb
+EXPORT_SYMBOL vmlinux 0xe4e2e523 elv_rb_del
+EXPORT_SYMBOL vmlinux 0xe4f0a212 qdisc_list_del
+EXPORT_SYMBOL vmlinux 0xe4f8a33c dquot_free_inode
+EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr
+EXPORT_SYMBOL vmlinux 0xe52cbb65 pv_mmu_ops
+EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe
+EXPORT_SYMBOL vmlinux 0xe531c136 scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0xe56806da pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0xe568eaad scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0xe56e36b8 journal_set_features
+EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton
+EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5a1617b seq_path
+EXPORT_SYMBOL vmlinux 0xe5b8b52c splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0xe5c7843f nla_reserve
+EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5cfbef8 ether_setup
+EXPORT_SYMBOL vmlinux 0xe5deeb1e idr_for_each
+EXPORT_SYMBOL vmlinux 0xe5e95591 napi_gro_frags
+EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe5f316f9 slow_work_sleep_till_thread_needed
+EXPORT_SYMBOL vmlinux 0xe5f9edd6 genl_register_ops
+EXPORT_SYMBOL vmlinux 0xe61bc795 unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0xe6362437 registered_fb
+EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid
+EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6c2f5c5 bd_release
+EXPORT_SYMBOL vmlinux 0xe6c5c2e1 dev_set_mtu
+EXPORT_SYMBOL vmlinux 0xe6e258ed arp_send
+EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic
+EXPORT_SYMBOL vmlinux 0xe71d86ab inet_frag_find
+EXPORT_SYMBOL vmlinux 0xe73a0446 phy_disconnect
+EXPORT_SYMBOL vmlinux 0xe7413fe5 skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy
+EXPORT_SYMBOL vmlinux 0xe77f6f14 seq_write
+EXPORT_SYMBOL vmlinux 0xe79b0a17 journal_extend
+EXPORT_SYMBOL vmlinux 0xe7b44d6a tcp_prot
+EXPORT_SYMBOL vmlinux 0xe7b65c97 con_copy_unimap
+EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7e4b6be free_buffer_head
+EXPORT_SYMBOL vmlinux 0xe807a5a6 wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node
+EXPORT_SYMBOL vmlinux 0xe8130791 i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0xe81e5809 mddev_congested
+EXPORT_SYMBOL vmlinux 0xe825b51f skb_append
+EXPORT_SYMBOL vmlinux 0xe82a6559 devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0xe84803c6 tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0xe84ddb9d sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0xe87325fb unregister_console
+EXPORT_SYMBOL vmlinux 0xe874db33 __netdev_alloc_page
+EXPORT_SYMBOL vmlinux 0xe875e03c cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss
+EXPORT_SYMBOL vmlinux 0xe883981d netlink_dump_start
+EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit
+EXPORT_SYMBOL vmlinux 0xe8f36d98 tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xe8ff359e dm_register_target
+EXPORT_SYMBOL vmlinux 0xe9024201 fput
+EXPORT_SYMBOL vmlinux 0xe9063fdd ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh
+EXPORT_SYMBOL vmlinux 0xe90aa4e9 rb_insert_color
+EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module
+EXPORT_SYMBOL vmlinux 0xe914e41e strcpy
+EXPORT_SYMBOL vmlinux 0xe91949bf __blk_end_request_all
+EXPORT_SYMBOL vmlinux 0xe9940e46 xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xe9bdd679 bmap
+EXPORT_SYMBOL vmlinux 0xe9d907af dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0xe9feaf43 eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea147363 printk
+EXPORT_SYMBOL vmlinux 0xea26b636 bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0xea36d715 fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0xea88a7b4 scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data
+EXPORT_SYMBOL vmlinux 0xeab059ef bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0xeab6d11b ipv4_specific
+EXPORT_SYMBOL vmlinux 0xeac4216b unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs
+EXPORT_SYMBOL vmlinux 0xeacb187e init_buffer
+EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump
+EXPORT_SYMBOL vmlinux 0xead80f0e sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay
+EXPORT_SYMBOL vmlinux 0xeaf9f607 atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0xeb1bbcfa __devm_release_region
+EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq
+EXPORT_SYMBOL vmlinux 0xeb43fb39 lookup_bdev
+EXPORT_SYMBOL vmlinux 0xeb535557 jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xeb7333c6 abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n
+EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp
+EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull
+EXPORT_SYMBOL vmlinux 0xec125c02 jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns
+EXPORT_SYMBOL vmlinux 0xec53c350 kmem_cache_create
+EXPORT_SYMBOL vmlinux 0xec62b4f5 sock_recvmsg
+EXPORT_SYMBOL vmlinux 0xec6dc1bd pipe_to_file
+EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xec7b23f4 iget5_locked
+EXPORT_SYMBOL vmlinux 0xecbf5d4c arp_broken_ops
+EXPORT_SYMBOL vmlinux 0xeccae092 put_io_context
+EXPORT_SYMBOL vmlinux 0xecf30585 blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0xecf43f5f netif_napi_add
+EXPORT_SYMBOL vmlinux 0xed24fdac __dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xed2d7646 nf_ct_attach
+EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xed97e807 bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xeda5175b jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xedb03500 pci_do_scan_bus
+EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedc03953 iounmap
+EXPORT_SYMBOL vmlinux 0xee128fb3 i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee3231f6 ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0xee3efc3f pcim_enable_device
+EXPORT_SYMBOL vmlinux 0xee7bed34 neigh_seq_next
+EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices
+EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeec13080 register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0xeed50e96 pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0xef1e603b ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0xef4b282e freeze_super
+EXPORT_SYMBOL vmlinux 0xef5038cd cdev_index
+EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc
+EXPORT_SYMBOL vmlinux 0xef654409 netif_device_detach
+EXPORT_SYMBOL vmlinux 0xef6daf4e __blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool
+EXPORT_SYMBOL vmlinux 0xef783662 pci_iounmap
+EXPORT_SYMBOL vmlinux 0xef90a29a open_exec
+EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override
+EXPORT_SYMBOL vmlinux 0xefa605f6 inet_select_addr
+EXPORT_SYMBOL vmlinux 0xefbfaa4e mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0xefc2c17f tty_port_init
+EXPORT_SYMBOL vmlinux 0xefc5af23 put_mnt_ns
+EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status
+EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock
+EXPORT_SYMBOL vmlinux 0xeff38d02 blk_make_request
+EXPORT_SYMBOL vmlinux 0xeff40f2c mmc_suspend_host
+EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list
+EXPORT_SYMBOL vmlinux 0xf02fccf1 inet6_getname
+EXPORT_SYMBOL vmlinux 0xf0343b86 tty_port_hangup
+EXPORT_SYMBOL vmlinux 0xf04a9139 generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be
+EXPORT_SYMBOL vmlinux 0xf0741b12 path_get
+EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up
+EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0xf0a515e9 bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0xf0b16cbb __netif_schedule
+EXPORT_SYMBOL vmlinux 0xf0b73e97 abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0xf0b79e90 tc_classify
+EXPORT_SYMBOL vmlinux 0xf0d8b7f9 dm_table_get_md
+EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf
+EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail
+EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xf1018303 simple_transaction_release
+EXPORT_SYMBOL vmlinux 0xf10de535 ioread8
+EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit
+EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user
+EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32
+EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem
+EXPORT_SYMBOL vmlinux 0xf178e35e vga_switcheroo_register_client
+EXPORT_SYMBOL vmlinux 0xf1848b1a i2c_release_client
+EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1e31c5f mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun
+EXPORT_SYMBOL vmlinux 0xf1f28317 md_write_end
+EXPORT_SYMBOL vmlinux 0xf203b4c0 scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0xf2082e27 dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq
+EXPORT_SYMBOL vmlinux 0xf2193b2f get_sb_bdev
+EXPORT_SYMBOL vmlinux 0xf22009b6 phy_attach
+EXPORT_SYMBOL vmlinux 0xf220e51d sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0xf22b8d11 kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0xf2320c79 netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0xf23b8aa0 iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0xf253fa65 mutex_trylock
+EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2ad3c20 path_lookup
+EXPORT_SYMBOL vmlinux 0xf2c22683 inet_stream_connect
+EXPORT_SYMBOL vmlinux 0xf2d64c6e fasync_helper
+EXPORT_SYMBOL vmlinux 0xf2e672bf register_framebuffer
+EXPORT_SYMBOL vmlinux 0xf30ca255 nf_log_unregister
+EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform
+EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name
+EXPORT_SYMBOL vmlinux 0xf32ac385 uart_add_one_port
+EXPORT_SYMBOL vmlinux 0xf3321f00 tc_classify_compat
+EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq
+EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user
+EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf33e52ac register_cdrom
+EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf35ad0af should_remove_suid
+EXPORT_SYMBOL vmlinux 0xf36ead2d ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf392820e blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3c04901 tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xf3d287a2 dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0xf40f5626 dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0xf420f6bb gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xf4286391 rfkill_destroy
+EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0xf45d623f request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0xf4703c8c __skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xf47bece3 netif_device_attach
+EXPORT_SYMBOL vmlinux 0xf48bf6a6 tty_write_room
+EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask
+EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit
+EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced
+EXPORT_SYMBOL vmlinux 0xf4cd4cfc mutex_unlock
+EXPORT_SYMBOL vmlinux 0xf4cf7e6d file_remove_suid
+EXPORT_SYMBOL vmlinux 0xf4d945dd __inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0xf4dec7fd rt6_lookup
+EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf501a2af mdio_bus_type
+EXPORT_SYMBOL vmlinux 0xf5108e2f sg_miter_stop
+EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n
+EXPORT_SYMBOL vmlinux 0xf562cab7 dev_trans_start
+EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xf5d3af1a uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0xf5db06ed tcp_v4_remember_stamp
+EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf5eccd99 dentry_unhash
+EXPORT_SYMBOL vmlinux 0xf5edbbe9 generic_removexattr
+EXPORT_SYMBOL vmlinux 0xf6027dc0 generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock
+EXPORT_SYMBOL vmlinux 0xf617ac8d __pagevec_release
+EXPORT_SYMBOL vmlinux 0xf65a2b5e iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0xf66ca161 __dst_free
+EXPORT_SYMBOL vmlinux 0xf6894629 kill_block_super
+EXPORT_SYMBOL vmlinux 0xf6a38444 touch_atime
+EXPORT_SYMBOL vmlinux 0xf6a45227 rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0xf6b30e5a ppp_output_wakeup
+EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table
+EXPORT_SYMBOL vmlinux 0xf6d28a67 vfs_rename
+EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf724458d xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0xf7333f1f serio_open
+EXPORT_SYMBOL vmlinux 0xf74f234e dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0xf7584a9c find_font
+EXPORT_SYMBOL vmlinux 0xf78946b3 input_event
+EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0xf7f41766 in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set
+EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf8190abb __alloc_skb
+EXPORT_SYMBOL vmlinux 0xf81fdd9d uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xf824381b scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects
+EXPORT_SYMBOL vmlinux 0xf84093ef kmem_cache_size
+EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header
+EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle
+EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work
+EXPORT_SYMBOL vmlinux 0xf8a50e5b init_special_inode
+EXPORT_SYMBOL vmlinux 0xf8c5ea1a register_key_type
+EXPORT_SYMBOL vmlinux 0xf8cf670e nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0xf8d1f867 genphy_resume
+EXPORT_SYMBOL vmlinux 0xf9086b97 writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0xf910f429 kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0xf9188c88 skb_dequeue
+EXPORT_SYMBOL vmlinux 0xf91dbaf6 agp_backend_acquire
+EXPORT_SYMBOL vmlinux 0xf928ad19 simple_write_begin
+EXPORT_SYMBOL vmlinux 0xf9389ae1 inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0xf93a7286 phy_connect
+EXPORT_SYMBOL vmlinux 0xf94298b8 pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0xf954cf6f generic_file_llseek
+EXPORT_SYMBOL vmlinux 0xf95f784e vfs_write
+EXPORT_SYMBOL vmlinux 0xf96dec71 tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0xf975b858 elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0xf9786dd7 abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0xf97ae9eb uart_suspend_port
+EXPORT_SYMBOL vmlinux 0xf989ad02 xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep
+EXPORT_SYMBOL vmlinux 0xf9b19d12 tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0xf9e232c7 mmc_host_enable
+EXPORT_SYMBOL vmlinux 0xf9f0974c get_sb_nodev
+EXPORT_SYMBOL vmlinux 0xf9feeaa8 mb_cache_create
+EXPORT_SYMBOL vmlinux 0xfa0f5667 elv_add_request
+EXPORT_SYMBOL vmlinux 0xfa1c65fc devm_iounmap
+EXPORT_SYMBOL vmlinux 0xfa400614 scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0xfa4a0191 xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0xfa5b26b4 cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0xfa86a122 agp_copy_info
+EXPORT_SYMBOL vmlinux 0xfae5879b vga_put
+EXPORT_SYMBOL vmlinux 0xfaf5e76b abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32
+EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent
+EXPORT_SYMBOL vmlinux 0xfb05fa34 dev_gro_receive
+EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs
+EXPORT_SYMBOL vmlinux 0xfb1ba07b save_mount_options
+EXPORT_SYMBOL vmlinux 0xfb2dbee8 pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0xfb5d5467 bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb808b3f max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace
+EXPORT_SYMBOL vmlinux 0xfb9f427e pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0xfba0b4d3 udp_ioctl
+EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xfbc968b3 tcf_register_action
+EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc3310ea __lock_page
+EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc77ac5c pci_disable_device
+EXPORT_SYMBOL vmlinux 0xfc7ca869 update_region
+EXPORT_SYMBOL vmlinux 0xfc9eedeb log_wait_commit
+EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcb025e0 jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcd3fd5a backlight_force_update
+EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq
+EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfcffc4e1 elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0xfd132ca2 rtnl_create_link
+EXPORT_SYMBOL vmlinux 0xfd2537ae flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xfd2acf1e input_unregister_handle
+EXPORT_SYMBOL vmlinux 0xfd2b44a8 md_unregister_thread
+EXPORT_SYMBOL vmlinux 0xfd43bae3 __brelse
+EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0xfd757eb8 napi_skb_finish
+EXPORT_SYMBOL vmlinux 0xfd79e6b9 vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception
+EXPORT_SYMBOL vmlinux 0xfd871931 sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0xfd9ecb65 textsearch_unregister
+EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be
+EXPORT_SYMBOL vmlinux 0xfdc31221 textsearch_destroy
+EXPORT_SYMBOL vmlinux 0xfdc747af tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0xfdd7853f sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0xfdde669c d_delete
+EXPORT_SYMBOL vmlinux 0xfde7ea96 __xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state
+EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids
+EXPORT_SYMBOL vmlinux 0xfe2c3a8e mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz
+EXPORT_SYMBOL vmlinux 0xfe712c54 agp_free_page_array
+EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfe816cc8 __bforget
+EXPORT_SYMBOL vmlinux 0xfe9bb445 unlock_new_inode
+EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin
+EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock
+EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfee2c687 tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff074b98 udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start
+EXPORT_SYMBOL vmlinux 0xff2751d7 vfs_mknod
+EXPORT_SYMBOL vmlinux 0xff29ddf7 test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0xff475473 cdrom_release
+EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource
+EXPORT_SYMBOL vmlinux 0xff7ebd18 neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int
+EXPORT_SYMBOL vmlinux 0xff97f9c8 ip6_xmit
+EXPORT_SYMBOL vmlinux 0xff984224 call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffa0373b call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0xffa69024 __pci_register_driver
+EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function
+EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0x7060bf0a crypto_aes_encrypt_x86
+EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0xe409b491 crypto_aes_decrypt_x86
+EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x1b1f2bda speedstep_get_freqs
+EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x2b67f096 speedstep_get_frequency
+EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0xd7ab2c0c speedstep_detect_processor
+EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00c5aad2 kvm_requeue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x022e40f0 __tracepoint_kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x03e361cc gfn_to_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x06011d74 emulate_instruction
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12400901 kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x14a0d897 kvm_before_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19701b2c kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19790ac1 kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1c15d151 gfn_to_memslot_unaliased
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x218e105c kvm_set_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x22175f1e kvm_set_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x227fa501 kvm_require_cpl
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2b590467 load_pdptrs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2feb9f79 kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x30453369 kvm_release_page_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x30de41a5 kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x311467c5 kvm_vcpu_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x347b7e50 kvm_emulate_halt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3614a586 kvm_mmu_load
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3b7fac3f kvm_read_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e775e6d kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3fdfa0c6 kvm_mmu_get_spte_hierarchy
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x41e741d2 kvm_resched
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x492a7192 kvm_write_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x50699201 kvm_get_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5325f2a5 kvm_x86_ops
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x541595f5 kvm_fast_pio_out
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59c1379a kvm_read_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5b4975e9 kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c11b13b kvm_get_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6054f2ee kvm_is_linear_rip
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x659893a4 kvm_put_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x688e3cc0 kvm_set_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6a045c86 kvm_get_guest_memory_type
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d57a8ba kvm_task_switch
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d66f37b kvm_set_cr3
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d71c9e3 kvm_set_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x70ce1dec kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x70f709dd kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x722b1dfb kvm_lmsw
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x737f30ff kvm_set_cr0
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7453bb3c kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x75883419 kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x75daf3ce kvm_queue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x773a5547 kvm_vcpu_cache
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7b244fc4 emulator_write_emulated
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8782b1d4 kvm_release_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x89863c89 kvm_report_emulation_failure
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8c43efd4 kvm_queue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x94303627 kvm_after_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95ea3920 kvm_set_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97399b90 kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99905e08 __tracepoint_kvm_inj_virq
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a67f5ca kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9fa41433 kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0506648 kvm_get_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7bc9025 kvm_clear_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab060885 fx_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb4e8c37a kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc5ad7f3 kvm_get_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbce814f2 kvm_inject_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd86163a kvm_handle_fault_on_reboot
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd94103b kvm_mmu_set_base_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc2ff2e2a kvm_set_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc7cf3197 kvm_get_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc7f88510 kvm_clear_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc8ded585 kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd206d6f4 is_error_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdefdff78 gfn_to_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf2ce186 __kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe97f07de kvm_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xed8d3730 kvm_set_cr4
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf404383d kvm_get_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf6e3af4c gfn_to_hva
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0467fc5e crypto_aes_set_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab
+EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xaeb85b94 async_memcpy
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x03b7f10f async_syndrome_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xc0e98849 async_gen_syndrome
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x7924c677 async_raid6_datap_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xc8cb1a8b async_raid6_2data_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2f20ed0e __async_tx_find_channel
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x64c7a9bb async_tx_quiesce
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9dc47fc4 async_tx_submit
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xa9821ade async_trigger_callback
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xc9b5e292 async_xor_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xf2a672ba async_xor
+EXPORT_SYMBOL_GPL crypto/cryptd 0x03e3f70e cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x6ff15192 cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x87689120 cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0xafab5f33 cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb028d364 cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xe93907bd cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xea97f937 cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey
+EXPORT_SYMBOL_GPL crypto/twofish_common 0x875f90a7 twofish_setkey
+EXPORT_SYMBOL_GPL drivers/acpi/hed 0xa4ca0d4e unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL drivers/acpi/hed 0xaa3f13f7 register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x012153ce ahci_sht
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2bc9c908 ahci_check_ready
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3bbd7bc9 ahci_set_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5153268f ahci_reset_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x56ae9597 ahci_save_initial_config
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x793b6c14 ahci_kick_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7aa152b5 ahci_print_info
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x81574ee3 ahci_reset_em
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x952e4529 ahci_stop_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa07ffc24 ahci_ops
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa58f0bc3 ahci_init_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xba659fd5 ahci_do_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xed85f58b ahci_start_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0fbb0f8e btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x20623063 btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x34045882 btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x855fa009 btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x95817605 btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa1cbb5fa btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xdc3cfe3f btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfb395085 btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x016f1b5e tpm_show_caps_1_2
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0f9ae6c6 tpm_show_owned
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x12e7ec0a tpm_gen_interrupt
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1f11d49e tpm_write
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x23a91b0b tpm_register_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x269bb2b8 tpm_dev_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x29ab9838 tpm_continue_selftest
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x30502c2f tpm_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x74b9c456 tpm_show_pcrs
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x805c17c6 tpm_show_active
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x83bd121a tpm_pm_suspend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8a516ce1 tpm_show_pubek
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8ebd1f8c tpm_show_temp_deactivated
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x91dc8b94 tpm_show_caps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb04319ce tpm_dev_vendor_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb5b686fd tpm_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb6dc1497 tpm_remove_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb723f720 tpm_pm_resume
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb78b63be tpm_store_cancel
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd2af9f25 tpm_open
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xeae54c35 tpm_get_timeouts
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf0e876fa tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf5623f32 tpm_show_enabled
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xea9b2f51 tpm_bios_log_teardown
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xf1fc220f tpm_bios_log_setup
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x006f21a2 register_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x22b5702d dca_remove_requester
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x4649513b dca3_get_tag
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x7faffcf0 unregister_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x873e75a9 alloc_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x9c16c9ab free_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xd6ac03ad dca_add_requester
+EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0x2fb48f19 amd64_get_dram_hole_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x069a1ffd edac_mc_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x188deeeb edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1fb45c8b edac_device_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x23f49625 edac_pci_handle_pe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2aa7a488 edac_mc_del_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x35da7f2c edac_pci_reset_delay_period
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3826de8e edac_device_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5fefe5ac edac_pci_handle_npe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6978c2aa edac_mc_add_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6b1036b6 edac_mc_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6b78c735 edac_pci_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x741e80da edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x799631fc edac_mc_handle_ue_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7bb221bd edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9daa8883 edac_mc_free
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc31d6233 edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc39948d4 edac_pci_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xccdc8385 edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcea3ac1a edac_mc_handle_ce_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd46026af edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd9161252 edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe81a5f2c edac_mc_alloc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeb244283 edac_device_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeff86fd9 edac_device_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1823885a amd_register_ecc_decoder
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x955c1f76 amd_decode_nb_mce
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2e765d2 amd_unregister_ecc_decoder
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xd0f094a0 ext_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x81cad4fc __max730x_remove
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xae6a681c __max730x_probe
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1757ca3b drm_class_device_register
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x99c8a194 drm_class_device_unregister
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x08227ff6 hid_input_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x0dccc48e hidinput_find_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x0ed8c3ed hidraw_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x0fe7db7e hid_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x13a0ef8d hid_resolv_usage
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x1618c6b9 hid_unregister_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x18c7590e hidinput_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x252ee31d hid_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x36671a3f hidraw_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x44bed2c5 __hid_register_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x4884a601 hid_set_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x48c18886 hid_report_raw_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x5314b244 hid_output_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x53a196ba hid_debug_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x7abd3a26 hidraw_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x804d136f hid_allocate_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x8b504cc6 hid_add_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x910a4a68 hidinput_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x9fb2c134 hid_parse_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc53838f7 hidinput_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc990523e hid_dump_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xca5877e0 hid_destroy_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe1d2412f hid_dump_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xf0fcf8d2 hid_register_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xf7638b52 hid_dump_input
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xfdcb4fdd hid_check_keys_pressed
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x9f7af974 roccat_connect
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x2328d98c usbhid_wait_io
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x5b239b7d usbhid_submit_report
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x7123cb00 usbhid_set_leds
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xbac35db4 hiddev_hid_event
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x1a3b2a13 lis3lv02d_poweron
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x53964a5e lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6e6a9e6d lis3_dev
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x75a47363 lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xac9d8110 lis3lv02d_init_device
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x6464ce6d nforce2_smbus
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x528e3cd8 i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x9b8beeeb i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x71910c4e hpsb_config_rom_ip1394_add
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xb2a0a279 hpsb_config_rom_ip1394_remove
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm
+EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug
+EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xbda310a3 input_ff_create_memless
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1b31d3cb wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x221876f5 wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x23227a90 wm97xx_config_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x257a45c3 wm9705_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2763e042 wm97xx_set_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x38c45899 wm9712_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4dbd32d2 wm97xx_get_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x582e9e78 wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9b5e2592 wm97xx_reg_write
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc32ced80 wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf46e5807 wm9713_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfe11d32e wm97xx_reg_read
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0198eeb6 gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x069f216b gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x072aa497 gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x075c3253 gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1fb4f155 gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2a45a0d7 gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x53567695 gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x54158019 gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5fef4190 gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa0823fc4 gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa1ea8b45 gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa89bf1e0 gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbe8368d2 gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc8a06c84 gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcf7a840c gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdef45825 gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe7c3575b gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xebed79b0 gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x102d66d8 led_classdev_register
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x23784d1a led_classdev_resume
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x5cd8db98 led_classdev_suspend
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x64379bcd led_classdev_unregister
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x24935f26 raid6_call
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xcdc24ab5 raid6_2data_recov
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xdbab0c01 raid6_datap_recov
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x0b828f69 ir_input_nokey
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xa7e0d12a ir_input_init
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xb1fd3ab2 ir_input_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1173de23 __ir_input_register
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x302536a6 get_rc_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x5303809f ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x5f77bf43 ir_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x6cc53e8b ir_raw_event_store
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x780da3db ir_input_unregister
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8f88a0e8 ir_g_keycode_from_table
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8fd647fb ir_register_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x99612455 ir_unregister_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xbd3c5757 ir_raw_event_handle
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xcd717e40 ir_repeat
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x04729224 saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x342db6af saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x47ca1612 saa7146_pgtable_free
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4d897dd7 saa7146_register_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x5c6c4d7b saa7146_devices_lock
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x778ffc9b saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7b7001b2 saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb43dfac3 saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xccc1b44f saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xde99ec18 saa7146_setgpio
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf4d05168 saa7146_unregister_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x2b08e224 saa7146_start_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4c5377d6 saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x6a4e8553 saa7146_stop_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x8dfe995e saa7146_vv_release
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x8e8aae32 saa7146_register_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xdfddc670 saa7146_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf14151cd saa7146_vv_init
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xdd1a3989 microtune_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x7c31aaba mxl5007t_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0xf08816b2 tda18271_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x8a63f3f6 tda827x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x168dd1fd tda829x_probe
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x8ec4ffb5 tda829x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0xdf5a2355 tda9887_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x0058727b tea5761_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xd2035409 tea5761_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x5d04e3bf tea5767_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xb8861bd7 tea5767_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xa746269f simple_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x06769cf7 mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x199e6b65 ir_mantis
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x47a2e405 mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x52aac732 mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5f971458 mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x759e1ffd mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x816a59e2 mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x877546e0 mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8890d6f1 mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xaa5ad848 gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb48ec9c8 mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb70d2943 mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb83a6c43 mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc836ab88 mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd2665bf4 mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf0aabba7 mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf428b4b1 mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xfbcd24a0 mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x123b0002 smscore_register_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1bd9b7de sms_board_event
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1fc703c9 sms_board_setup
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2dca10ab smscore_set_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x369c4c4a smscore_start_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x393f8412 smscore_get_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4f87c9d7 smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6bf28dbd smscore_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x84dbeb7a smscore_getbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9d90ef61 sms_board_lna_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xab2986f8 smscore_putbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd05fa782 smscore_register_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd5e24d2a smsclient_sendrequest
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdc8d5100 smscore_onresponse
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdedfb4da sms_board_led_feedback
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe486c5cb smscore_unregister_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf403667a smscore_register_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfcec2ae3 smscore_get_device_mode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xff969db1 sms_board_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x02602770 ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x4a546da4 ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x574623f0 ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x94c3a601 ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xbbb18850 ttpci_budget_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xe0ec93f7 ttpci_budget_deinit
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xf40ce759 ttpci_budget_debiread
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x28e2ce21 cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x43151ab2 cx231xx_dev_init
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x47d83fce cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x77dd0873 cx231xx_capture_start
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x840912e1 cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x84f27edf cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x94f8817b cx231xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb3130074 cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc4490398 cx231xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe2da1b71 cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfcfa1e73 cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xce7e2e4d cx88_setup_xc3028
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x497dba84 em28xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x565709dd em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc1a9a8d9 em28xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc857a59d em28xx_audio_setup
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xe1c8462e em28xx_isoc_dvb_max_packetsize
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xffea0e70 em28xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x45b99d32 saa7134_ts_qops
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x97e43aff saa7134_g_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xb35fbb9c saa7134_s_std_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xd3f0830c saa7134_s_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xdd58ed1f saa7134_queryctrl
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x18f1bf1b v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x51bbea58 v4l2_i2c_new_subdev_cfg
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x52fa65fd v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x5da38426 v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xbe85c2a8 v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xbf11362a v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-compat-ioctl32 0x1e3c13b6 v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x11b0271d v4l2_int_ioctl_0
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x4021e394 v4l2_int_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xb5744400 v4l2_int_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xf138bfc8 v4l2_int_ioctl_1
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0d4b3c92 v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4331dad5 v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x44e10f3a v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x59dd722f v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8d5235f3 v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9558dd56 v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x99b72610 v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9e154cee v4l2_m2m_poll
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9ef6e230 v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa30644a1 v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa80106d3 v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe84afc05 v4l2_m2m_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf48939a7 v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf7fc282f v4l2_m2m_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x053d8a4e videobuf_read_one
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x07711820 videobuf_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0c3b0a9d videobuf_queue_cancel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x18070cf8 videobuf_next_field
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x215669b2 videobuf_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x22d857de videobuf_read_start
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2839daaf videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2e369ce4 videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x320a3279 videobuf_cgmbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3599daa1 videobuf_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3795c7ac __videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x38e88761 videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x488eb4c0 videobuf_queue_core_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x48d970bd videobuf_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x59066dc3 videobuf_read_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5b3e58f4 videobuf_read_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x616fd605 videobuf_waiton
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6d887bef videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6e95a316 videobuf_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x741dd1e4 videobuf_mmap_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x79452031 videobuf_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9cd7ea21 videobuf_poll_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc449fa5c videobuf_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe8fb6bfe videobuf_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xed47ec2e videobuf_iolock
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x298c855d videobuf_to_dma_contig
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x4a6fc8ed videobuf_dma_contig_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xa83711f2 videobuf_queue_dma_contig_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x10f83f49 videobuf_dma_init_user
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x32c59f50 videobuf_sg_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3ecdd0d6 videobuf_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x44709691 videobuf_sg_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5e64c98e videobuf_dma_init_overlay
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x95241e18 videobuf_dma_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9b091693 videobuf_dma_init_kernel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc06ea17b videobuf_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd1ce4473 videobuf_to_dma
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xee89316c videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfc4c8802 videobuf_dma_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x4efab0d8 videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x7cac2466 videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xe6fb0063 videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x05bee09b v4l2_event_queue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0a49ec5e v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1ba2eba1 v4l2_event_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x26a356d7 v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2d330adc v4l2_event_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4c96153e v4l2_fh_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x635ab907 v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8d36352c v4l2_fh_del
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9a313d28 v4l2_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9cf4fa95 v4l2_event_subscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa0783386 v4l2_event_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa2ee1c47 v4l2_event_dequeue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa8ce275d v4l2_device_disconnect
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbd237c53 v4l2_fh_exit
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc0a71e92 v4l2_fh_add
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc1148495 v4l2_device_set_name
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc124ba82 v4l2_event_pending
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf833f24a v4l2_device_unregister
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3bd418d1 i2o_sg_tablesize
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6bbe372a i2o_dma_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x94b643f3 i2o_dma_map_sg
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x99afc62a i2o_dma_map_single
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa29f4baf i2o_pool_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xaabb7a61 i2o_dma_realloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb8385afb i2o_pool_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xd109592c i2o_dma_alloc
+EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x1797fcff mc13783_adc_do_conversion
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x11b5f3f0 pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x21c1874b pcf50633_free_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2579a7d1 pcf50633_register_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2fced025 pcf50633_irq_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4ffc8318 pcf50633_write_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x626a6311 pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x63706aca pcf50633_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6ae4d8a9 pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdfb121e4 pcf50633_reg_write
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe404f1da pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xebad7781 pcf50633_read_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x621d1b11 pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xac47e832 pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x36491637 pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x758bc6d1 pcf50633_gpio_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x85af8a01 pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xb232860f pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xcbe34fe5 pcf50633_gpio_get
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x064b0f4a sm501_modify_reg
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x36a9d494 sm501_unit_power
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6a4eef05 sm501_misc_control
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x97ec187a sm501_find_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xaf887391 sm501_set_clock
+EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xf24255d9 ucb1400_adc_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x41fb1cc1 wm8400_set_bits
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x6709f60f wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xb7ae6b3f wm8400_block_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xdd1b6809 wm8400_reg_read
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x383ac4bd cb710_set_irq_handler
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xad3de64d cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xc1c83c1c cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xe52a60f6 cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x199fa568 enclosure_component_register
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x634cfc61 enclosure_register
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x79dd3776 enclosure_for_each_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8139e22e enclosure_add_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8bab0cee enclosure_remove_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x9be9d4bf enclosure_unregister
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb6b88850 enclosure_find
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x024143cc sdhci_add_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x270526e8 sdhci_remove_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x937e2cbb sdhci_resume_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xafcef33b sdhci_alloc_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xde648e81 sdhci_suspend_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe667afe5 sdhci_free_host
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x91f49c26 cfi_cmdset_0200
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xc7848f73 cfi_cmdset_0001
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xee9e74d0 cfi_cmdset_0003
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x17ab8a21 cfi_cmdset_0002
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x459e7d67 cfi_cmdset_0006
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xba99490c cfi_cmdset_0701
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x7147992b cfi_cmdset_0020
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x03f841fc cfi_qry_mode_off
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x55f2ff6c cfi_qry_mode_on
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xe802991a cfi_qry_present
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xb7d12f4e DoC2k_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x8545df92 DoCMil_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xfc66ecaf DoCMilPlus_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x16634139 put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x176db618 register_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x27ed9784 add_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x35e85f60 unregister_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x44032b34 parse_mtd_partitions
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x544b639e mtd_erase_callback
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5bfe5add default_mtd_writev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x60d67a63 register_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x753743b1 del_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x855b1598 __mtd_next_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x88f60947 __put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8b46fc81 mtd_table_mutex
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8e0585ce get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa1a87db1 get_mtd_device_nm
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa931f96f get_sb_mtd
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaf7657f0 deregister_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc37641b9 __get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xee12fb94 kill_mtd_super
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x29e81602 deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x71b3e278 del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x72dfc6d0 register_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd3f8533f add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x335bd421 nand_scan_tail
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x3fe447fd nand_unlock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x977eacca nand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x9dfe244f nand_release
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x9ff729ae nand_scan_ident
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xc7c47f73 nand_lock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xeb36c58a nand_wait_ready
+EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xfe7a09c4 sm_register_device
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x2b81a950 onenand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x85acc566 onenand_release
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x021c867b ubi_open_volume_nm
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3630b0aa ubi_open_volume_path
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4981cb82 ubi_do_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x584c9030 ubi_leb_unmap
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x739bf887 ubi_leb_read
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x86612048 ubi_open_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x90835890 ubi_leb_map
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa83e950d ubi_leb_erase
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb1a165b4 ubi_close_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb342b2e7 ubi_get_volume_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbf7ebdb1 ubi_leb_change
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc0da13aa ubi_leb_write
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd3ba1662 ubi_is_mapped
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x01998fe6 register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x01ec23ea unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0718bbc3 close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x15375f07 can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x31184254 alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3de3f26e open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x456f310f can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x46e3115e free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5b70dd5c can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6deac8f0 alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc0e0827d can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe23c9a11 alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x0389edd7 free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x709b8e6c register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x9be85001 alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe769ed1a unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x1008e91e macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x58b486b4 macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x70f7c2cc macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd1a26c43 macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0b8fcfc9 mlx4_qp_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1182bb36 mlx4_multicast_detach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x13aa3f75 mlx4_cq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x16be97f4 mlx4_qp_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1ecabe31 mlx4_qp_release_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x24a0405d mlx4_mr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x27c22ef2 mlx4_mr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x333c815f mlx4_cq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x398bdf9a mlx4_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x39ee60cb mlx4_uar_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3db17b0b mlx4_cq_resize
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x44dc3f39 mlx4_srq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x46416dbf mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x46b61698 mlx4_qp_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x47108553 mlx4_mtt_addr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4dbec7c5 mlx4_pd_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x58afe021 mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5e9ec241 mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x65645d4b mlx4_unregister_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x699ffb40 mlx4_pd_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x71833d1b __mlx4_cmd
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x72b6194f mlx4_db_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7b567256 mlx4_qp_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7d4dcd51 mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7dc96b36 mlx4_buf_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x87b1f9b0 mlx4_mr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x905853f5 mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9b021a34 mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9e472923 mlx4_db_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa6233719 mlx4_srq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa63e8398 mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa86cc3e0 mlx4_srq_arm
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xacc0c0c8 mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb4659a23 mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb47515c1 mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb4de67fb mlx4_mtt_init
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb9f9cc34 mlx4_srq_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbba47541 mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbf065d2e mlx4_multicast_attach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbf3c70f0 mlx4_buf_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc9499eae mlx4_register_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc96d74ca mlx4_fmr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd0b46a4b mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd55fb700 mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd98f6d7f mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdf75c890 mlx4_unregister_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe2003e3f mlx4_register_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe6c7fe65 mlx4_uar_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xef022154 mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf336e9f0 mlx4_cq_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf461d719 mlx4_qp_remove
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfb93f92e mlx4_register_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfe8e00c6 mlx4_fmr_free
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9a274bfc usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9e7b5220 usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x17f38cd1 generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x305391c3 rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x6aa7fcfb rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc255188c rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xeced8ecf rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf0529eb5 rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0460fd08 usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x213fa58d usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2229d6eb usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x36c7343d usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4662dd95 usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x595b0e42 usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x78fe16f8 usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa2c186e9 usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa59523bf usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa618f421 usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xab890691 usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xac922c12 usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xacae9f3a usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xacd9d77e usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaf903ec6 usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb8aee004 usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbb58bb6c usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc758119b usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd186fe7b usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd4e1fd7c usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd78d808d usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe042a0dc usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeb99fc57 usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf60b5880 usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x04f5681e i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x05851729 i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x09665616 i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x196abf31 i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x35914cd5 i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x425b6fff i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4cb8ab8b i2400m_cmd_get_state
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6360a1bf i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6a158e8e i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x86f62e1e i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8c16d8c2 i2400m_set_init_config
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9019983a i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa2cff6fe i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc161a654 i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdbcd67dd i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdbd1f9e1 i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe1421943 i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfaa881d6 i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x4cf5614c libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x4c0fe850 iwl_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xbd1ae3c3 iwl_alloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xdd189305 iwl_dealloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x134f8c23 lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1e803ede lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x397caf49 lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x46ffed67 lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5893e5ef lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x595712a0 lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x637b9f76 lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x63d62095 lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6e48d601 lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x810f884e lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x91e7eba9 lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb7ad356e lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc571edfd lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf73b1690 __lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x2a109eb2 lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x43c450dd lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9318b5ff lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xacf967f3 lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb463c780 lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd950a066 lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdbc59728 __lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf279b695 lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x17f95730 if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xc7ab77dc if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x12a5562f p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x52301187 p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x59d26d06 p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x91057183 p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb3cc436b p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb5b9bd31 p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb9781659 p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdb7f1e62 p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfe2e4d7c p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x22cbcb6b rt2800_init_registers
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3406bef4 rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x34f04582 rt2800_init_rfcsr
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x39c45b5b rt2800_mac80211_ops
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x40df7072 rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x54e7eb9f rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x58308a93 rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6adad133 rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7ac2a627 rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7c64e49e rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x85dad904 rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x92f7335e rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x96f3cf63 rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9a8428e8 rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa4ecb013 rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xacf5334f rt2800_init_bbp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc46b9113 rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc7473b69 rt2800_write_txwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xca4d5243 rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcba7c57a rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd6d8c77b rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe128d378 rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeb2f4bb7 rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf34d5f7b rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x18a35ed4 rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2ff155c6 rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x45811e52 rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46a17244 rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x561f870a rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x587803de rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x63960101 rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6efabdf8 rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6f09282c rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7b3fe8fe rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x81f64e5c rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x85e02a13 rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x949b55fa rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x95b7f755 rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb53664e3 rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xba4e1f38 rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbf6a65b6 rt2x00queue_get_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc339bc62 rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcb872497 rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcd85a74e rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd039b240 rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd0cfe3db rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe824bf48 rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2dd7bc7f rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x42b144db rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5a7c2f0e rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5befb964 rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x622c58f8 rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6eb4d8df rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc0a69eb7 rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd9f88e50 rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe1320fa5 rt2x00pci_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x05a47ad5 rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1a71d65d rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1c5ff7fa rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2e9023f4 rt2x00usb_kill_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x46f0f5a7 rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5d248be6 rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6742b67e rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8397b7d5 rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8592cfbe rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8ce29784 rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9bd0e7ad rt2x00usb_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xafb39e45 rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xba719d26 rt2x00usb_vendor_request_large_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc1ea0f91 rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdd595dc7 rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe404c305 rt2x00usb_kick_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x562fa501 wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x6358d1f0 wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x77701fef wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x39a7edea wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x73e93e1d wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x826ae284 wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x9ce566dd wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xfbb6b612 wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x87cf011c acpiphp_register_attention
+EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xa8ef1081 acpiphp_unregister_attention
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x30affaec pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xb3f7e630 pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xf441ee0f pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x158d8a81 wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x35fc39a8 wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x758d46b5 wm8350_register_led
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa1dedb2f wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xcdff87f6 wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe0a73c4a wm8350_register_regulator
+EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x9a3e14b8 wm8400_register_regulator
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xea725790 fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x01c58d39 iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0f1dcc3e iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1e7afb58 iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x20f00e5f iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x22149190 iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23cf84fe iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23d2731a iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3a18ce6a iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3a1bf2cc iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b3bd8a6 iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3f624db5 __iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x451d7fe3 iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x49d026f8 iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4dbcdc91 iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a85aacd iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b937074 iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x61a9afbf iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6687db83 iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6cbdc086 iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x771bcd4d iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7d41050b iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x83097f3f iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x886197f0 iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8c16cf4d iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a150c4a iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a7456ab iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa861241b iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb13181d4 iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb7944c96 iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb7bb9358 __iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2eec1f2 iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd53bbc72 iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xda509a59 iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdaa4aaeb iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3794d98 iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe68dca1f iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf0d14a85 iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf3a5f005 iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4e191c0 iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4e63363 iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf93c6bd2 iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfc7d43c2 iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0b490ffb iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0ee0c6e7 iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x129e4a0c iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x156b2080 iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2541f054 iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x49007b50 iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5ba9f138 iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9ea4f15f iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc50611f4 iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd42d5374 iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd6e8e48f iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdb07fc3b iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xed2de4f4 iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf32a93cf iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf841da68 iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfe762f09 iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0579370c sas_request_addr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x10410456 sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x143229bb sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1c96ff6b __sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2ee6a9db sas_domain_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3bb57e61 sas_phy_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3e2d9b55 sas_slave_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x40b6e406 sas_target_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6b1c30e1 sas_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x83f74d1f sas_find_local_phy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8686e95c sas_eh_bus_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8c69e241 sas_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x90ff267a sas_change_queue_type
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9773b467 sas_phy_enable
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa6d334fa sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb1998962 sas_ioctl
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb60a79a1 sas_register_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb994220c sas_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd11b0f07 sas_slave_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdb4974e7 sas_unregister_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdb9a3c5a sas_ssp_task_response
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf23eb87b sas_domain_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfc013dde sas_bios_param
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x0fcb6f16 srp_target_free
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x48dc455d srp_transfer_data
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x653fb339 srp_iu_get
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb41340a4 srp_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf6789d07 srp_cmd_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfcf16065 srp_iu_put
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3d23963c scsi_tgt_tsk_mgmt_request
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4f938d9e scsi_tgt_alloc_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5930015f scsi_tgt_free_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x75cf0ef4 scsi_host_put_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9a922591 scsi_tgt_cmd_to_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xa430781d scsi_tgt_it_nexus_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbdc89be3 scsi_tgt_queue_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe466c08d scsi_tgt_it_nexus_create
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf0957c62 scsi_host_get_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00cc986f iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x126f7ebd iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x28259b8a iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2933e0b3 iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x32921bd3 iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4cd72192 iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4d7091ca iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5425f7cc iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5daf1b67 iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x80d46921 iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x81e48bbe iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x82bc5983 iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8f1f5ce6 iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xad2a9225 iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb982105e iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc03defea iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd115a83d iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd284da9c iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xda878e82 iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdde4b737 iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe5a3d20d iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf7a3fa5c iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x114115cc sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x531239e5 sas_disable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7c80f642 sas_tlr_supported
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xf3292f07 sas_enable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x08b40c0b srp_rport_add
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1d097ff1 srp_remove_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xaec7c4ba srp_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xd658f00d srp_rport_del
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xfde045b3 srp_attach_transport
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x222409cf spi_bitbang_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x2ca4c8b4 spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x43e05733 spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x5deff5d5 spi_bitbang_stop
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x8796c766 spi_bitbang_setup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xc9ace530 spi_bitbang_start
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x027b0170 comedi_get_device_file_info
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0398e49e comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x535de0bb comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x66de28c1 comedi_pci_auto_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb64d388b comedi_usb_auto_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x77502afe das08_common_detach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xc8a8a658 das08_common_attach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xda7e5b6c labpc_common_detach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xf8831c60 labpc_common_attach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x20a9aed0 ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x5740c120 ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x64e3f288 ni_gpct_device_construct
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x8c317b67 ni_tio_rinsn
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x9128b309 ni_tio_arm
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xafbd931e ni_tio_winsn
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xcd1131d3 ni_tio_insn_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xcfaa78fa ni_tio_init_counter
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00b7cf43 ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x32777d65 ni_tio_cmd
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x3b1d5c3e ni_tio_cmdtest
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x63bf6e60 ni_tio_cancel
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd5da7082 ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xfd677474 ni_tio_acknowledge_and_confirm
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x27efbf2a osd_WaitEventCreate
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5783d46c osd_WaitEventWait
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x746d1786 osd_PageAlloc
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x79298bac osd_WaitEventSet
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x83911c38 osd_PageFree
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8c5f0f3b osd_WaitEventWaitEx
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0xd3c808de st_register
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2693e520 tm6000_get_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x458561d3 tm6000_set_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x6a2c9069 tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x2c2d96c5 usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x51d2a849 dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5af41c26 usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5b0bffeb usbip_event_add
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x66006fab usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6f93293e usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x890a091b usbip_event_happened
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x8f591929 usbip_dump_urb
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x9860ef1f sockfd_to_socket
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xabd33849 usbip_stop_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xafedbc35 usbip_start_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xc4e0028c usbip_task_init
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xce6455de usbip_stop_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd5d841ec usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf179cd78 usbip_start_eh
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x289065c0 uio_unregister_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x2a33516c __uio_register_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xfbe8e6fa uio_event_notify
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x83e3d734 usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xa7b19bef usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0128ac45 usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2130b499 usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4fa12d19 usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x56466fc5 usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x703d715d usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x73fd586d ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x890c3ed8 usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd20e12ff usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xdc84aa36 usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x12bbe0f9 usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x168b6583 ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x195b79c3 usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1b128373 usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x310ec274 usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x34d9353a ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x400bee88 usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x526c376a usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5430e6d0 usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x573c4db9 usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x868bf15d usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8a49190a usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8dd3298b usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x963af718 usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa9e26531 usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc6f2711a usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xed709ad6 usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xee919e00 usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf9e6d8ce usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x22530898 usb_stor_probe1
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2692c9d3 usb_stor_bulk_transfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3593b641 usb_stor_bulk_transfer_sg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3e53e0cc usb_stor_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4374f17a usb_stor_probe2
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x510f44f4 usb_stor_CB_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x51119f88 usb_stor_bulk_srb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x58c205a0 usb_stor_post_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5c12624a usb_stor_Bulk_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6033b210 usb_stor_pre_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x64d159ec usb_stor_set_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x65c10358 usb_usual_ignore_device
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7179d1ab usb_stor_Bulk_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x79fe8b92 usb_stor_ctrl_transfer
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7daa9f40 usb_stor_suspend
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8a8b04d9 fill_inquiry_response
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9a1171c1 usb_stor_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xada5bd52 usb_stor_clear_halt
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcbcb6906 usb_stor_reset_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdf9a24e5 usb_stor_control_msg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xeadad923 usb_stor_transparent_scsi_command
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf37aae54 usb_stor_access_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xffe13734 usb_stor_CB_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0860f204 __wa_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x2e8c3f37 wa_urb_enqueue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x8d144581 wa_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xd403800c rpipe_ep_disable
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xddaa714f wa_urb_dequeue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x06602d42 wusbhc_rh_resume
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0e0fbf4e wusbhc_rh_suspend
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x104cad84 wusbhc_b_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x315651f4 __wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3ca0faa1 wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x422b2470 wusbhc_handle_dn
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5cfa49ce wusbhc_b_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x66bbc12c wusbhc_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x68713a76 wusbhc_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6f44f7a4 wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x980e8eb2 wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb8c18bec wusbhc_reset_all
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc0ddb34d wusbhc_rh_control
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc8ae1e22 wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xed90523f wusbhc_chid_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf1ab9951 wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x25cb293b i1480_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xe7c9c000 i1480_rceb_check
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xf287382a i1480_fw_upload
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x05be18d9 uwb_rts_cts_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x23404b41 uwb_pca_base_priority_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x5e3bf8bc uwb_phy_rate_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x881882f7 uwb_phy_rate_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x91e28dcb uwb_rts_cts_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x9d7ba8b7 uwb_ack_policy_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd6c27f8d uwb_ack_policy_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd8ff8faa uwb_pca_base_priority_show
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x08960371 umc_device_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0ac319a6 umc_controller_reset
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x20cfa61b umc_bus_type
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x60b66957 umc_device_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8c3d68fc __umc_driver_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x973d325a umc_driver_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe085d00b umc_match_pci_id
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xf2d8a933 umc_device_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b05d42e uwb_rsv_modify
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0c52daca uwb_rc_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x13d30560 uwb_pal_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1a590510 uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1de729be uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x213e832a uwb_notifs_deregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2906d36c uwb_notifs_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2b37a710 uwb_radio_stop
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2b6e125f uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2bb1aced uwb_est_find_size
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x38e06f47 uwb_radio_start
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3a764d16 uwb_rsv_terminate
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5bfea10c uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x65744b38 __uwb_rc_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6f66f6b6 uwb_rc_post_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7b271ad9 uwb_rsv_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8af83675 uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c803e2a uwb_rsv_accept
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9207958a uwb_rc_alloc
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x93560c96 uwb_rsv_establish
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9def0fbe uwb_rc_neh_error
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9ee3a8e2 uwb_rc_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9f453d76 uwb_pal_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa21eb731 uwb_rc_ie_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa4bb4ca9 uwb_rc_vcmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa80af4e0 uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbcb6a69c uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc704ca6a uwb_dev_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd665721a uwb_rsv_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd97d9cda uwb_dev_for_each
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdf118182 uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe25861ae uwb_rc_put
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe4e0961b uwb_rc_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xea1e9ef2 uwb_rc_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xed836295 uwb_rc_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf6aa8d9c uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xff4cfd76 uwb_pal_register
+EXPORT_SYMBOL_GPL drivers/uwb/whci 0xd7007972 whci_wait_for
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x02cb46c2 wlp_neighborhood_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0f0b6501 wlp_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0fd27c22 wlp_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x18ab7a50 wlp_eda_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2758dfa2 wlp_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x28ce1896 wlp_dev_serial_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x29af71f6 wlp_uuid_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2f744d25 wlp_dev_model_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x30aaf4de wlp_dev_serial_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x30dc9caa wlp_dev_prim_OUI_sub_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x33d7b84a wlp_dev_prim_OUI_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4f0a6d00 wlp_dev_prim_subcat_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x52f076fb wlp_dev_prim_subcat_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x554000e8 wlp_wss_activate_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5dac02ff wlp_prepare_tx_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5e4416f6 wlp_dev_prim_OUI_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7244d0be wlp_dev_prim_category_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x74acd517 wlp_wss_activate_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x825b65b7 wlp_dev_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8525ed85 wlp_dev_model_nr_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x85f3c35c wlp_dev_manufacturer_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8c1b7678 wlp_uuid_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x90b7bf94 wlp_dev_model_nr_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9beb846f wlp_dev_prim_category_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc7fd434f wlp_wss_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcb287329 wlp_receive_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcbb37a5b wlp_dev_prim_OUI_sub_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe064ddf8 wlp_dev_manufacturer_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe2d0645b wlp_dev_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe8c8bf09 wlp_wss_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe9550776 wlp_dev_model_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf4077e2d wlp_eda_store
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x123bdee1 ili9320_write
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x417cca99 ili9320_suspend
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5b50c6a7 ili9320_probe_spi
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6ab9bbba ili9320_write_regs
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8ddb5a9c ili9320_resume
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8dff9ac8 ili9320_remove
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xa149c8cc ili9320_shutdown
+EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x2c151c03 fb_ddc_read
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xa544be30 fb_sys_read
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xc76835dc fb_sys_write
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x2393c3b3 sis_malloc_new
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x35b7c3fc sis_free_new
+EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys
+EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x5e6290a3 viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x31e174e5 register_virtio_device
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x5abd6048 register_virtio_driver
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x8b7f9a1b virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x942b6c31 unregister_virtio_device
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xe41843fa unregister_virtio_driver
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x1b67ff14 virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x1d3f1f8d virtqueue_disable_cb
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x2be1c1af vring_del_virtqueue
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5c11ed89 virtqueue_kick
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x5e668745 virtqueue_enable_cb
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xa5abc0bb virtqueue_add_buf_gfp
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xabdcf653 virtqueue_get_buf
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xb4ed6aa4 vring_transport_features
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xc05549ea vring_new_virtqueue
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x1f0a66d8 w1_touch_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x409bb071 w1_write_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x6fad7e2f w1_write_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xb9ab73ab w1_read_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xd196ff2f w1_reset_bus
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xe0b9ee38 w1_reset_select_slave
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xe6448c21 w1_read_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xf5afee80 w1_next_pullup
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x038c4c78 dlm_posix_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x138a119f dlm_posix_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xccfc710d dlm_posix_get
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x86e1e593 exportfs_decode_fh
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xea25c798 exportfs_encode_fh
+EXPORT_SYMBOL_GPL fs/fat/fat 0x117dd945 fat_getattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x1ad3fd1f fat_free_clusters
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3bcb42a4 fat_detach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3f4d36af fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3fd34fe9 fat_setattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x4c78753b fat_search_long
+EXPORT_SYMBOL_GPL fs/fat/fat 0x4d58beac fat_alloc_new_dir
+EXPORT_SYMBOL_GPL fs/fat/fat 0x57bb6a10 fat_add_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x6bca6913 fat_fill_super
+EXPORT_SYMBOL_GPL fs/fat/fat 0x7301e5c0 fat_flush_inodes
+EXPORT_SYMBOL_GPL fs/fat/fat 0x87a2698c __fat_fs_error
+EXPORT_SYMBOL_GPL fs/fat/fat 0x904159f8 fat_build_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xa48e0287 fat_scan
+EXPORT_SYMBOL_GPL fs/fat/fat 0xc8146490 fat_time_unix2fat
+EXPORT_SYMBOL_GPL fs/fat/fat 0xea94e63a fat_remove_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0xf64e008f fat_sync_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xfbeb840f fat_attach
+EXPORT_SYMBOL_GPL fs/fat/fat 0xfedde4c8 fat_dir_empty
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x03917bf9 nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7d18564b nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa201fa91 nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa2a150af nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xaa6637a9 nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x6d391717 nfsacl_encode
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x918e6bf3 nfsacl_decode
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x22cf4547 o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x27ca44c3 o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x671eddd5 o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7bc29e20 o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbce375a9 o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd2d15d84 o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe577fe85 o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0d1a183f dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x2fad8458 dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x491752c2 dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7f9e9c8d dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8ad70bc3 dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa35e9f56 dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x38d893f9 ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x3fa29cb9 ocfs2_plock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb2457f9f ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x2e1d43cf lzo1x_1_compress
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs
+EXPORT_SYMBOL_GPL net/802/garp 0x31091381 garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0x7a6b17e1 garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0xa6105cc0 garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0xaa087e35 garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0xbf35dad5 garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0xc8ecc2d8 garp_register_application
+EXPORT_SYMBOL_GPL net/802/stp 0x7537933e stp_proto_unregister
+EXPORT_SYMBOL_GPL net/802/stp 0xe8cdf383 stp_proto_register
+EXPORT_SYMBOL_GPL net/ax25/ax25 0x65efa5b0 ax25_register_pid
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x948ae284 bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x058157c9 dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x06ca94d5 dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a7c2aad compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x251c9708 compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2bdb31c7 dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d0cdb6a dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2f8efcac dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3f3e1487 dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x424f08ff dccp_insert_option_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x54c1a740 dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x674c2a02 dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6f7f61d2 dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x72c51bed dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x736f0503 dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7bf84d3a dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7c0dd114 dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8097aa70 dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x82c9802f dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x85e3f1e8 dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x882939b8 dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8bc6542d dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x91d75587 dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x98e89166 dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9e8870a4 dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9f826d09 dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9fb795d6 dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa8f314fb dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb22fc6a7 dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb68852c2 dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xca322d7d dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xcf93cd44 dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd4694717 dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe392c560 dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xef8a4806 dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xfb666abe inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x08a6849b dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x30523635 dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4c3af318 dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x739821c5 dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x741a95f3 dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa7184230 dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x4d08a20a arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xeab58808 ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x932125a4 nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x01127453 nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07d209ba nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0e87ce3b nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4c7b3bea nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x6ca79aec nf_nat_proto_put
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9380a56d nf_nat_proto_find_get
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbe22acff nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd5fcc7b8 nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x10525fd1 tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x50d1b707 tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc4b68776 tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe717a01f tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf19168a6 tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x9db3baa6 ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2cee15c6 l2tp_udp_recv_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2d4f5f3b l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3e330344 l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x64f6f42f l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x68ea3aed l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7055f995 l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x712eb3dd l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7b0081ca l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x99c94861 l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb06e93b1 l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc26c1efd l2tp_xmit_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcd66e47b l2tp_tunnel_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe346fbd7 l2tp_tunnel_closeall
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe5eddd4a l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xeaaf0ab7 l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf87fe0d0 l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfb16df52 l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x756c3143 ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa09471bb ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe81d4696 ieee80211_find_sta_by_hw
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0021d5ce nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06923278 nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x083ae1da nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0863b6d9 nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0cc587a2 nf_ct_unlink_expect
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f40f11b nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x14088c7a nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15139387 nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15a4e0fa nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x18bdac59 nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x191aac8e nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1bd7ba7f nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x219e46a5 nf_expect_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x29e41133 nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b08849f nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b6f5bc7 nf_conntrack_untracked
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e4748e0 nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x430392a2 nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4acb2a1d __nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b2d7322 nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4cf4300e nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d8cad11 nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f541961 nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f64f3ae nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x55826026 nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5e5e1098 __nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6967dd3a nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7358bacd nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x777e618a nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x791b11a0 nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x795fddd8 __nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79fddf53 nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c1f4ae1 nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d52912c nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85ad35d5 __nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x92602a51 nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x944ffd2f __nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97044340 __nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a94acbc nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa28939ce nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa338d311 nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa684ee3c nf_conntrack_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xac7206bf nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7a0f792 nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb38b688 nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb3e6e8c nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc82686d __nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc13fdafe nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf5dbeb2 nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd1570206 seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd60c2022 nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd7351861 print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe1ef9e47 __nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2f319b0 nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe7a8f040 nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeb3df4bf nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebc42404 nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xed1ddef8 nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf39e7f7f nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7feff31 nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffcf395b nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x6e39a046 nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xbfb2a37c nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x15e90783 set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x16f81660 nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x21683e4f set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x317bceb3 nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x49c664ac nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x58a02806 nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8482e809 set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x89b82c7a get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb9784a65 nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe659ee2e set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xca5625d6 nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x15c92fab nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x4ecfb405 nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x81ec53c7 nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9351aaea nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x8c7d7566 nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xa7eb7855 nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x08601ef0 ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2b869faa ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4f1c216e ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5b32023f nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x689001ac nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x77b3277c nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x93307258 nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9405559f ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb231ebe5 nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc6a4b787 ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd90ebf07 nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xea4642a9 ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf9371e91 nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x588f9dce nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x992bf479 nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x9fec1795 nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x57f73acd nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x6dac4c8a nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x88d30af5 nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8c23db9f nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc76d10b7 nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf7e23a98 nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xb5bde042 nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x055f2741 xt_compat_target_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0da34b61 xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x39629848 xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x48ca535d xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f268db4 xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x684694c5 xt_compat_add_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7443fee7 xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x749ea70e xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7603612f xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7867bae5 xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x91545b8d xt_compat_target_to_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xacc6d161 xt_compat_match_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaf1721e3 xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbe585f93 xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc19bf478 xt_compat_match_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd0e07115 xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdc40e24a xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe7d3f84e xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf3353c63 xt_compat_target_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf84fb1d7 xt_compat_match_to_user
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x4ac7eda1 xt_rateest_lookup
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x6a518c7f xt_rateest_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq
+EXPORT_SYMBOL_GPL net/rds/rds 0x0a0acf0f rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x1c5cb3b1 rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x1c6823b5 rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0x26e79c8d rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x27b6bf25 rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0x2ba899cd rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3ec3ec03 rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0x539390b1 rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0x59b97318 rds_inc_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x6fb206ff rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0x738424ce rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0x8b4bb708 rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0x920910f7 rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x92c58eda rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x977e1e31 rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0xa6cc276e rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0xb9969c88 rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xbf6be130 rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xc6401f35 rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xd691b701 rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xe7297929 rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0xec6151c5 rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xeee2205f rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xf87c8b91 rxrpc_register_security
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x0d1ec7c1 gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x16ae6436 gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x18c1feb9 gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3159d274 gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3891f12d gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x42db3383 gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5c9a789c gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5ccb52e5 gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5fd9546b svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x86984afe svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa5692781 gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x027aa595 rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04d88374 xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0699e12d svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0938530f rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09dacf0c svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ce926e8 rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0de06756 rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e489d40 sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ed29936 svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0efcda21 rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1202924e rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12781bba svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14e870da rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x191887c9 svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x192eb407 xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b282548 rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d2d7132 rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e4bf881 svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2096eb53 rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x226398e7 auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25f57b0c xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27a0d989 svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2986831b rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b95c481 svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d5bfba5 rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d740615 svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3169b78b svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36653fc4 xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x372b43a6 xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37628d99 rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37c9bece svc_sock_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38a04492 rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39055478 rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39248d00 xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a8605f4 csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d91f4ba xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x403092ad svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4057c1b4 svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41c814f7 svc_sock_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4242ee2c rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4312d5aa sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4318855c xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45667535 svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46fba951 xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4789eeee xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4eee73a0 put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52b94219 rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x548bf50b rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b19745e rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd1ca2a rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d48efce auth_unix_add_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f66acac rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fb22af8 xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6004f425 rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6258ba19 rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62a0472d rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62bf85da rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64ef81a3 rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66db0025 xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66fed2e0 svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x678f1f74 xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x694c0181 svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6adccfd9 rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6add0d8c rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bbeea55 svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d746e74 sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x709e2216 xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x749a7e98 xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x764678d1 auth_unix_forget_old
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77032491 rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x792cec95 rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7abdb9ac svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccb0c0e rpc_queue_empty
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81b62f3e svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8342a25c xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8508a0bb auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86e04ff5 xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c0d6d95 sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d758b60 rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8da9bee1 rpc_exit_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e107457 xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x903fbb1d xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90988546 svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93bfa3c2 write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9640a51a svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98db69c5 rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a2bb72e unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d902bc3 auth_unix_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e6f295a xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f45b605 read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f7b5d5c svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa38612b4 rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4035ece xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8cd30fd xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xabb8cc90 __rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf6576ea xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0d05b14 svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8944f05 rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb4c0952 rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbf9ccc8 svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbccaf5dc svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbde83bf4 rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc25395a2 auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc30e68d8 rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3bfb2c5 rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4a1160a cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc52dab1b rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5cef3e3 svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc62a0567 svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc938b4b1 xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc982ac04 xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb526430 rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd3cf474 svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd28b663b xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd445ee2c svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5c98a92 svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8fb8614 cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda840443 svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdec116e5 svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdec1f1bb xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0a620a9 rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1385270 xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2395208 rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4ce0ec1 rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5252b5b xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe81ed65d xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xebf70e59 xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeccfd987 xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee77d95e xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef85c9fe xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1c7e6c0 xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4083543 sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf56da22c cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf77f470d svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa0d2f68 xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa300a55 cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe049b02 svc_seq_show
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x02195c40 wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x2de8f260 wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x37cc2107 wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x3cb2eca4 wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x4c98f3e8 wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x83123f29 wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x91c1fa2b wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x972e6fa0 wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xa6d4b0e4 wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xbc7047f2 wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xdd7d1013 wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xe3d10ffa wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf972277e wimax_state_change
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0a85f021 cfg80211_wext_giwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x103f906a cfg80211_wext_giwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1bfd2608 cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x21450da9 cfg80211_wext_giwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x34ba7e28 cfg80211_wext_siwmlme
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3ff8716b cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x41151fe6 cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4d5f5d89 cfg80211_wext_giwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x518f0d82 cfg80211_wext_giwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x56eba10b cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5753fc30 cfg80211_wext_giwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5ca8e3b4 cfg80211_wext_giwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5ec241ae cfg80211_wext_siwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x785b6e3e cfg80211_wext_siwgenie
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7dd1903b cfg80211_wext_siwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x80700cab cfg80211_wext_siwencodeext
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8150364d cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x86fcc39b cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x934376c2 cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9a03cad8 cfg80211_wext_siwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9d7dabc5 cfg80211_wext_siwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa018c272 cfg80211_wext_siwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa8002a8f cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaabf77c5 cfg80211_wext_siwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaddbe828 cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb7cf4e50 cfg80211_wext_siwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb9c11ac9 cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc93a1a4a cfg80211_wext_giwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe7104219 cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe917deae cfg80211_wireless_stats
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf11b7f31 cfg80211_wext_siwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf67fd3b8 cfg80211_wext_siwessid
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x24b5a85d ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x3d921e57 ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x42f5ecd6 ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x92e2503b ipcomp_input
+EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x05605e8c snd_ak4113_reinit
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x535faa4d snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x683a67ea snd_ak4113_create
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x74f77674 snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x76f4bdb9 snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa719976d snd_ak4113_build
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01961315 snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0504a68c snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05433fc7 snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x06e8a580 snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0de862c4 snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1280050d snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13dfbd0d snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x142a1837 snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15098be1 snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1961a916 snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1dfd9302 snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1e3c871a snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22bc5083 query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2bb3b5f3 snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e74cf8e snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x30557b0a snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33949f29 snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33d4bb27 snd_hdmi_get_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e9bd7ad snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3f5c13fb snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3fba04a2 snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x406cb4f0 snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x43ce118a snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4473532a snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x459a92eb snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4663cfd2 snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c75da6b snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57b7382c snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f1f84f6 snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x64347a95 snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x65ae2733 snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x690e7900 snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ae0a838 snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b150d84 snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6c60ec9a snd_hda_eld_proc_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d5c71ab snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e222925 snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f3e9d32 snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71f1f41a snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72602016 snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x757418e3 snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75aec821 snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a25152c snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c9b67c7 snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f4031a3 snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x840fc6d3 snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x858b232d snd_hdmi_show_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86324957 snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x865cc08f snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8f5d5578 snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9018b758 snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x918ccc30 snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a7a4745 snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9bf8bd17 snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ce41ab0 snd_hda_eld_proc_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ec4cf62 snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa131dca0 snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1e70e49 snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa29a46e7 snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5c3d7c1 snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6f16bd7 snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa951fd06 snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa95bf207 snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa8b3b0b snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb4fa3561 snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc008eb4f snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1ae6d33 snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5e6fdfc snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc9a5559d snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca6598e9 snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf674b55 snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd14b5257 snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5b95936 snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5d7e09b snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb4f4f0e snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3da8348 snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe518217c snd_hdmi_get_eld_size
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe52a0790 snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec6f6c1e snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xecdba2c6 snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed28b0e1 snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef703881 snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf28d212b snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf29ed959 snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf49a41da snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf890480b snd_hda_parse_pin_def_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfac8de02 snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe736248 snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x1eca4d0a ad1836_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x87a6da88 soc_codec_dev_ad1836
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x51e0df66 soc_codec_dev_ad193x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xe7322688 ad193x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xbf328e79 ad73311_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xfd978514 soc_codec_dev_ad73311
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x0f3768c6 ads117x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x9ca1de7b soc_codec_dev_ads117x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0x22ef3c86 soc_codec_device_ak4104
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x67576c33 soc_codec_dev_ak4535
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xb8c734b7 ak4535_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x3fec439f soc_codec_dev_ak4642
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xeeea3d62 ak4642_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x1687ae05 soc_codec_dev_ak4671
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x59965551 ak4671_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x2963d136 soc_codec_device_cs4270
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x7a95f0d3 cs4270_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x2aa8bd7a da7210_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x307002b0 soc_codec_dev_da7210
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x73af3464 max9877_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xa0757177 pcm3008_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xe781df2e soc_codec_dev_pcm3008
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x6eeb4e53 dit_stub_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x099259ee ssm2602_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xec34dae5 soc_codec_dev_ssm2602
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x490456fa soc_codec_dev_tlv320aic23
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xe74cfe02 tlv320aic23_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x0f30754b aic26_soc_codec_dev
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xa43e14ce aic26_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x2d4e503e aic3x_headset_detected
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x371b7466 aic3x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x46aef7c5 aic3x_get_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x65bee658 aic3x_button_pressed
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd38be571 soc_codec_dev_aic3x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd403308b aic3x_set_headset_detection
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xe8019752 aic3x_set_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x0f75e795 dac33_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x287be6bf soc_codec_dev_tlv320dac33
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x7c576bee tpa6130a2_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x43b952ed soc_codec_dev_twl4030
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xf60c174f twl4030_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x0015754e twl6040_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x3c361708 soc_codec_dev_twl6040
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x820134e8 soc_codec_dev_uda134x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x444c6298 uda1380_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xb3bb0881 soc_codec_dev_uda1380
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xb27d618d wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xb6a2fe78 wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xd148ce87 wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xee7a190a wm2000_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x12f538e6 wm8350_mic_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x3a39a1c2 wm8350_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x691b666e soc_codec_dev_wm8350
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x771538d9 wm8350_hp_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x62c4877c wm8400_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xf2079c3c soc_codec_dev_wm8400
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x0e03ebf0 soc_codec_dev_wm8510
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xd2fc39f6 wm8510_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x2768066a soc_codec_dev_wm8523
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x658051c5 wm8523_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x01d2d07f soc_codec_dev_wm8580
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x1250a626 wm8580_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x5b85ed2e wm8711_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xbd11123a soc_codec_dev_wm8711
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xbc3414ae wm8727_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xe90d0be5 soc_codec_dev_wm8727
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x4d62a67b wm8728_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x6e95172a soc_codec_dev_wm8728
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xbe95c654 soc_codec_dev_wm8731
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xcc1afc07 wm8731_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x64961a98 wm8750_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xa3038ba7 soc_codec_dev_wm8750
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x3b5017f1 wm8753_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x882ed864 soc_codec_dev_wm8753
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x608dbc38 wm8776_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xf6ddf84f soc_codec_dev_wm8776
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x2324270d wm8900_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x45173e7f soc_codec_dev_wm8900
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x1cc332c0 wm8903_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x6e3a6dbc soc_codec_dev_wm8903
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xa5b055a3 wm8903_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x217bfb7b soc_codec_dev_wm8904
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xb8b5651b wm8904_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x421e96a3 soc_codec_dev_wm8940
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xd76b031e wm8940_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x21d19919 wm8955_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x3eab08d1 soc_codec_dev_wm8955
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x40f41237 wm8960_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x419a42cd soc_codec_dev_wm8960
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x5881738c soc_codec_dev_wm8961
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x8ba8c192 wm8961_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x2ddfca26 wm8971_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x594319bb soc_codec_dev_wm8971
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x2434edfe soc_codec_dev_wm8974
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x7d125b95 wm8974_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x0ad09bee wm8978_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x8881a2f2 soc_codec_dev_wm8978
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x83dde5cf soc_codec_dev_wm8988
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xfc98eb07 wm8988_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x4ac605f0 soc_codec_dev_wm8990
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xb6bc62de wm8990_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x30281070 wm8993_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x61eb5633 soc_codec_dev_wm8993
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x2eaac0f4 soc_codec_dev_wm8994
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xb06e5264 wm8994_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xdf3f941d wm8994_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x127738bc soc_codec_dev_wm9081
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xd3a3b5a7 wm9081_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x0aae63ca soc_codec_dev_wm9090
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00108757 snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x02235b47 snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x03651766 snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05001477 snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d5424bc snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0eaf2b3c snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1170a46c snd_soc_info_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x121caf19 snd_soc_dapm_stream_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x187006bf snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x18a5c6eb snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21dec5d8 snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24a7dc6e snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24a8e32b snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29ee3abc snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x30861b4c snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31ceb3d0 snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x347ba044 snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3701e85b snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37c9fb7d snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39b5502a snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e293eb2 snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e6eaab1 snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3f6da286 snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x408f336b snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43a862db snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x44eff81f snd_soc_jack_new
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x450dc8c8 snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4bd853ec snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4cd409ab snd_soc_free_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52a4ed01 snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54619932 snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b325e66 dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5be4fe71 snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e70d975 snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x62bbc56f snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x64f6d820 snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x699b5207 snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69c37e9a snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6feef0c1 snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71a6d126 snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7981db23 snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7a487156 snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7fe64c3e snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x875f7a22 snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x895e250d snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8bee031e snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ccef905 snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e4537fa snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x954d16cf snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x957cf8ba snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b6025b9 snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f3bfd0b snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa01b2d96 snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa7542535 snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8070b0f snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa355214 snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac111f1b snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb33f426c snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb371eac6 snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5f5b1d2 snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb61484d2 snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6e2d2a8 snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb716cb8a snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc59b817 snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc82df5e snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd3afb55 snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe113ab8 snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc9a188dd snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc81527e snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcdeae46a snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd050690e snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd61c2fea snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda889284 snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc09dbe4 snd_soc_put_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdeb9fdf7 snd_soc_get_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf6511532 snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9a90e7c snd_soc_new_pcms
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x403287f6 xv_create_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6396f009 xv_destroy_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6da52fbd xv_free
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xb9d51915 xv_malloc
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xfdffb8fc xv_get_total_size_bytes
+EXPORT_SYMBOL_GPL vmlinux 0x001fbced da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0x002e03a2 ata_noop_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x003e69d1 ring_buffer_read_finish
+EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis
+EXPORT_SYMBOL_GPL vmlinux 0x006c0937 class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x007bdd70 inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0x00a5cbe1 iommu_iova_to_phys
+EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x00bf70e1 rtnl_kill_links
+EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init
+EXPORT_SYMBOL_GPL vmlinux 0x00deb102 rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string
+EXPORT_SYMBOL_GPL vmlinux 0x00f94fde register_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x010ca186 usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0x01511988 kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok
+EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x01b053ae tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0x01d1d475 nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x01ec12a8 ata_scsi_simulate
+EXPORT_SYMBOL_GPL vmlinux 0x01f4660b blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x02178eb1 sata_scr_write
+EXPORT_SYMBOL_GPL vmlinux 0x02988f55 blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x02be9394 blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x0385597f pcie_port_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x03a3f86d unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x03ada202 dm_dispatch_request
+EXPORT_SYMBOL_GPL vmlinux 0x03b05964 dev_attr_em_message
+EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL vmlinux 0x03fe2cca flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x03fee4bb __ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread
+EXPORT_SYMBOL_GPL vmlinux 0x04206642 unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x04b5e412 usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0x04d85a46 regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0x04f16270 fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x053a6d9a br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0x054d6b27 sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x05ca66c8 led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0x05ecf8e2 skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0x06030463 perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0x0609912b tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0x060b87da bus_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x062b0187 usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x062e733c adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x0633bc7d ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x066a4b88 wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x0683a17a __srcu_read_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x06ad54fd anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x06afa8b7 device_attach
+EXPORT_SYMBOL_GPL vmlinux 0x06cd5bd9 class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x0708580d __pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x0717aa15 ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0x072d5f48 regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0x072f0b0f crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x076f27d8 key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0x0779395d bus_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x078eb49d unregister_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x07a8a34c srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x07b883ac bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0x07e079b2 mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf
+EXPORT_SYMBOL_GPL vmlinux 0x0826272f do_add_mount
+EXPORT_SYMBOL_GPL vmlinux 0x0863d6eb srcu_init_notifier_head
+EXPORT_SYMBOL_GPL vmlinux 0x08a44647 ata_sas_port_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x08a85c30 crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0x0935bb01 xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0x09af56ae da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x0a4c1989 usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x0aa284fc default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x0af36780 pm_request_resume
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header
+EXPORT_SYMBOL_GPL vmlinux 0x0b4212e7 sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map
+EXPORT_SYMBOL_GPL vmlinux 0x0c061e2b sata_set_spd
+EXPORT_SYMBOL_GPL vmlinux 0x0c1747ee usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x0c259b54 usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c7dde4a blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range
+EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL vmlinux 0x0d3dda9f console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0x0d4e4e56 tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x0d65584f cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0d7c5f00 __fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0x0db42ab3 scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0x0dba4563 regulator_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x0dee18cf xenbus_watch_path
+EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release
+EXPORT_SYMBOL_GPL vmlinux 0x0e256493 mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0x0e5a0ddd hwmon_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put
+EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info
+EXPORT_SYMBOL_GPL vmlinux 0x0ec4700b ata_sff_wait_ready
+EXPORT_SYMBOL_GPL vmlinux 0x0f1e43a3 blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x0fa1e89b pm_request_idle
+EXPORT_SYMBOL_GPL vmlinux 0x0fad098d usb_set_device_state
+EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory
+EXPORT_SYMBOL_GPL vmlinux 0x0ffff815 dev_attr_sw_activity
+EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x100de873 queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x106fa92b rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x10c03563 wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x10c74770 clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x112ec476 wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x11354d82 ata_sff_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0x113eb862 crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x1193eaf4 regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0x11e90963 spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0x11ee8a74 fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x12082028 ata_dummy_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x120faf75 platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0x12250576 spi_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0x12729dfb get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0x1279403d ip6_dst_blackhole
+EXPORT_SYMBOL_GPL vmlinux 0x129ad44e power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x129c83c3 tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x12ae6581 tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0x12b51433 sata_scr_write_flush
+EXPORT_SYMBOL_GPL vmlinux 0x130554b6 sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0x132830c9 ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0x1333b108 usb_bus_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x13436098 ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x1356bdfb xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x1360d523 crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x136d2b64 md_new_event
+EXPORT_SYMBOL_GPL vmlinux 0x137b688c ata_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x13a12bab blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0x13aefa49 usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13cb6832 nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x13e2ea08 user_update
+EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid
+EXPORT_SYMBOL_GPL vmlinux 0x14a08a09 rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x14d11008 alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x14f782b8 ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x151df1aa regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x153d2a68 device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x15468e98 usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL vmlinux 0x1556df60 skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x156088fe crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped
+EXPORT_SYMBOL_GPL vmlinux 0x1632b977 device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x165fc691 ata_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x16677cb5 macvlan_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x1668395e each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x166cb7c9 find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x167c3b8d shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0x169a2d2b fuse_file_poll
+EXPORT_SYMBOL_GPL vmlinux 0x16aa0c5b securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x16d201bc md_do_sync
+EXPORT_SYMBOL_GPL vmlinux 0x172dd410 pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0x1736215e ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x17466450 clockevents_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub
+EXPORT_SYMBOL_GPL vmlinux 0x178114c9 debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0x1786f7ce acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL vmlinux 0x17a52f10 skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x1838c5a4 power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x18409a68 ata_port_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert
+EXPORT_SYMBOL_GPL vmlinux 0x18afcac6 fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref
+EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x19469cfb ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore
+EXPORT_SYMBOL_GPL vmlinux 0x19776b45 ata_dummy_port_info
+EXPORT_SYMBOL_GPL vmlinux 0x199d7a3c ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19a99d9f sdio_readl
+EXPORT_SYMBOL_GPL vmlinux 0x19c4c321 save_stack_trace_tsk
+EXPORT_SYMBOL_GPL vmlinux 0x19ddf359 hvc_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x19f96834 usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x1a5149b1 da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x1b05c689 debugfs_create_bool
+EXPORT_SYMBOL_GPL vmlinux 0x1b16eb2b __mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0x1b2471d9 locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0x1b2f2b72 usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0x1b339e81 shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x1b8a9cf5 aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x1b8c0e54 dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1ba4571d pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL vmlinux 0x1bc51976 ata_sas_port_stop
+EXPORT_SYMBOL_GPL vmlinux 0x1c760018 platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1c83e458 sis_info133_for_sata
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1d2bc0cc xenbus_dev_changed
+EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x1d6a2d8b blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x1d954d32 cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x1dcdb525 power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf
+EXPORT_SYMBOL_GPL vmlinux 0x1ddacc22 inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0x1e110a76 vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0x1e259ba5 blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x1e30864e queue_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x1e3513e7 ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x1e3538a8 pm_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart
+EXPORT_SYMBOL_GPL vmlinux 0x1e960d4c class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x1eaed397 debugfs_create_u32
+EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x1ebbc5ed generic_detach_inode
+EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names
+EXPORT_SYMBOL_GPL vmlinux 0x1ed42f9b crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0x1f64e191 bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0x1f75ae68 __module_address
+EXPORT_SYMBOL_GPL vmlinux 0x1f86355d use_mm
+EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick
+EXPORT_SYMBOL_GPL vmlinux 0x1ff94def vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x20135116 wm8350_device_exit
+EXPORT_SYMBOL_GPL vmlinux 0x201a4a34 register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x202585bb dm_unregister_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20d22764 iommu_found
+EXPORT_SYMBOL_GPL vmlinux 0x20e92be1 crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0x2110fb56 ata_port_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x21373ce1 fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0x214274ff rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0x21456256 i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x217e452c ata_host_activate
+EXPORT_SYMBOL_GPL vmlinux 0x21ad8b7c rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0x21b6b054 rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x21bff97c ata_sff_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x21fb0723 device_schedule_callback_owner
+EXPORT_SYMBOL_GPL vmlinux 0x2257a5ea raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0x226b71ae rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x228d7be1 devm_kfree
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x22db0718 bsg_unregister_queue
+EXPORT_SYMBOL_GPL vmlinux 0x22f5050b sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x231b0309 hvc_remove
+EXPORT_SYMBOL_GPL vmlinux 0x23711c24 device_register
+EXPORT_SYMBOL_GPL vmlinux 0x237910f2 crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x238a3cf8 adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x23b32a6e fuse_do_open
+EXPORT_SYMBOL_GPL vmlinux 0x23df6fdf register_posix_clock
+EXPORT_SYMBOL_GPL vmlinux 0x2432f92c platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0x24554999 regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops
+EXPORT_SYMBOL_GPL vmlinux 0x248b5dea sdio_writeb_readb
+EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write
+EXPORT_SYMBOL_GPL vmlinux 0x24d4a57e sdio_claim_host
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x24f0558c sata_std_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x250e8f30 irq_set_affinity_hint
+EXPORT_SYMBOL_GPL vmlinux 0x2521240f device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x253a69f8 crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0x253fba83 pci_get_hp_params
+EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch
+EXPORT_SYMBOL_GPL vmlinux 0x254922b8 devres_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x255945a3 class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x25804ba5 ata_do_dev_read_id
+EXPORT_SYMBOL_GPL vmlinux 0x2587e870 fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0x25a5b7d0 inotify_find_watch
+EXPORT_SYMBOL_GPL vmlinux 0x25b2de94 led_trigger_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x25b72ce2 sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x25cc4d7b crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0x25f658f5 acpi_pci_find_root
+EXPORT_SYMBOL_GPL vmlinux 0x2644fbcc transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x26b7fcea inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x26dc28be sata_link_resume
+EXPORT_SYMBOL_GPL vmlinux 0x270c9232 __cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x2717f9e1 set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0x2724032a pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0x274f3d7f posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars
+EXPORT_SYMBOL_GPL vmlinux 0x27a4263e skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x27c7e84f fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0x27cf850f pci_hp_change_slot_info
+EXPORT_SYMBOL_GPL vmlinux 0x27f3df0e __set_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range
+EXPORT_SYMBOL_GPL vmlinux 0x2813755a ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x282ca118 platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x2887306d add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x28a5f8c1 inotify_inode_is_dead
+EXPORT_SYMBOL_GPL vmlinux 0x28ab7a27 blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0x28d2e2bc fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28d9ba87 devres_find
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x28f1bdeb get_device
+EXPORT_SYMBOL_GPL vmlinux 0x29361d59 ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x29594e9a i2c_new_dummy
+EXPORT_SYMBOL_GPL vmlinux 0x2976ca5d fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x297b43ad regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0x29801e25 simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0x299a1e6d sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0x29e9be52 apei_get_debugfs_dir
+EXPORT_SYMBOL_GPL vmlinux 0x29fe9a45 pci_bus_max_busnr
+EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0x2a31b228 inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x2a40dd2e usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result
+EXPORT_SYMBOL_GPL vmlinux 0x2a7b6f31 tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x2a8cd538 ata_dev_next
+EXPORT_SYMBOL_GPL vmlinux 0x2b292594 register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x2b6d5fa2 regulator_get_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x2bac284e securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x2bc68c0f sdio_readb
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c8c0966 mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0x2ca1bd96 ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2cf337f3 scsi_dh_set_params
+EXPORT_SYMBOL_GPL vmlinux 0x2d218748 debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0x2d52a5ca pm_runtime_enable
+EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x2d65dae2 inet6_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x2d6ef5ab ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x2d738027 tracepoint_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x2d90734f crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL vmlinux 0x2dd5a9dc cpuidle_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x2e0a8eb6 ata_cable_80wire
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e493a0a queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0x2e495e5b crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x2e5055ba tty_prepare_flip_string_flags
+EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0x2eed2630 iommu_domain_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x2f0f8850 scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table
+EXPORT_SYMBOL_GPL vmlinux 0x2f4b13b1 wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll
+EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x2fe6eb4a transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0x304c522c sdio_readw
+EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0x30858abd inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x31052c70 usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x3136fa28 __inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x314a63c3 apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0x3175c405 cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x317d206a i2c_new_probed_device
+EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x324683ff tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x3251854f ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x32daa97e spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0x32eb259b xenbus_switch_state
+EXPORT_SYMBOL_GPL vmlinux 0x32f99caa aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x3301a205 disk_map_sector_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x3331a9b0 wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x334b53b0 class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register
+EXPORT_SYMBOL_GPL vmlinux 0x33d95659 kill_pid_info_as_uid
+EXPORT_SYMBOL_GPL vmlinux 0x341aff76 led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3423c0c4 bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0x343e95be crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x3443779f root_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3496a322 kick_process
+EXPORT_SYMBOL_GPL vmlinux 0x34a49c90 dm_rh_recovery_end
+EXPORT_SYMBOL_GPL vmlinux 0x34aa5968 usb_ep0_reinit
+EXPORT_SYMBOL_GPL vmlinux 0x34bc9147 pci_test_config_bits
+EXPORT_SYMBOL_GPL vmlinux 0x34db2d35 crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x34ecf1cc task_current_syscall
+EXPORT_SYMBOL_GPL vmlinux 0x351f95c9 debugfs_create_u64
+EXPORT_SYMBOL_GPL vmlinux 0x3530ebd6 uart_set_options
+EXPORT_SYMBOL_GPL vmlinux 0x35c8b68a __blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x35dc84f4 skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x361b1d31 tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0x3621b619 sysfs_remove_files
+EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0x36607b43 power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL vmlinux 0x3672a697 gpio_export_link
+EXPORT_SYMBOL_GPL vmlinux 0x36864ef1 crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x36cc05b3 ata_sff_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x36fad637 gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0x37538ea8 init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x379f66b3 pci_destroy_slot
+EXPORT_SYMBOL_GPL vmlinux 0x37afbd98 ata_bmdma_stop
+EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page
+EXPORT_SYMBOL_GPL vmlinux 0x3833bb24 relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0x384053e7 erst_get_record_count
+EXPORT_SYMBOL_GPL vmlinux 0x387210d6 sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0x38799942 sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0x38d1c6fd cpuidle_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x38e13ee4 xenbus_dev_fatal
+EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure
+EXPORT_SYMBOL_GPL vmlinux 0x38f8c56e usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x393ceb01 usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0x3952e931 tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x397362d1 wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0x39aa62a2 ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x39c4304c vma_kernel_pagesize
+EXPORT_SYMBOL_GPL vmlinux 0x39d1fc9a ata_cable_ignore
+EXPORT_SYMBOL_GPL vmlinux 0x39dbf698 shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x39eaf60d inet6_csk_xmit
+EXPORT_SYMBOL_GPL vmlinux 0x3a081476 pciserial_resume_ports
+EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3a378b50 sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x3a3e3519 spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0x3a6bacd4 __ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0x3a89a8e3 ata_sff_dma_pause
+EXPORT_SYMBOL_GPL vmlinux 0x3aad5302 perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x3ac2e131 bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x3ace7662 anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3ad063b3 tracepoint_iter_stop
+EXPORT_SYMBOL_GPL vmlinux 0x3b2354ea usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value
+EXPORT_SYMBOL_GPL vmlinux 0x3bab3c94 dma_release_channel
+EXPORT_SYMBOL_GPL vmlinux 0x3baf0876 usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL vmlinux 0x3bd4ebd2 platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0x3be6ded6 usb_driver_release_interface
+EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3c433a73 sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0x3c50a85e skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x3c867e1d acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0x3c8b26d6 sata_scr_read
+EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag
+EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL vmlinux 0x3d6b6b72 ata_base_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x3dda1035 sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id
+EXPORT_SYMBOL_GPL vmlinux 0x3dde3c26 pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0x3e0cf878 pci_configure_slot
+EXPORT_SYMBOL_GPL vmlinux 0x3ea9fbca __inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler
+EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register
+EXPORT_SYMBOL_GPL vmlinux 0x3f25c038 tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0x3f55e0f5 inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x3f9a1fcd regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0x3ff86c80 scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x400c919c skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0x4034e642 disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x4057884e usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0x409b6158 inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0x40a52873 crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL vmlinux 0x40e9585f regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x411b25f9 ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x41308995 pm_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x41631eea cpufreq_cpu_get
+EXPORT_SYMBOL_GPL vmlinux 0x41ee0281 unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x41f0e7d9 ata_sff_data_xfer
+EXPORT_SYMBOL_GPL vmlinux 0x42007d24 ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0x42012489 __mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x4227f1ed unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done
+EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped
+EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active
+EXPORT_SYMBOL_GPL vmlinux 0x42838092 sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x4284f26e scsi_dh_detach
+EXPORT_SYMBOL_GPL vmlinux 0x42b49fac usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0x42eee679 stop_machine
+EXPORT_SYMBOL_GPL vmlinux 0x4323f9b0 sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x43499a39 cpufreq_cpu_put
+EXPORT_SYMBOL_GPL vmlinux 0x4398c55b fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x43a7f7cd inotify_rm_watch
+EXPORT_SYMBOL_GPL vmlinux 0x43abee23 input_ff_erase
+EXPORT_SYMBOL_GPL vmlinux 0x43bc7fd0 ata_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0x43ce5048 __module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x43dd1a7d cpufreq_frequency_table_target
+EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x44733b97 __trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x44abf55c spi_async
+EXPORT_SYMBOL_GPL vmlinux 0x44fc3841 led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0x4509ebc2 dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0x4534a985 class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state
+EXPORT_SYMBOL_GPL vmlinux 0x456a4530 udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list
+EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page
+EXPORT_SYMBOL_GPL vmlinux 0x45ef7393 pm_runtime_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data
+EXPORT_SYMBOL_GPL vmlinux 0x4616b606 ab8500_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x46464f92 __class_create
+EXPORT_SYMBOL_GPL vmlinux 0x4648d507 pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x4675bd25 hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x47033807 sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0x471218e5 xenbus_bind_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x471e8a98 perf_arch_fetch_caller_regs
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x473c6e67 spi_write_then_read
+EXPORT_SYMBOL_GPL vmlinux 0x47709d6c vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0x478bbdb2 inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x47c6a661 user_match
+EXPORT_SYMBOL_GPL vmlinux 0x481d0672 crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x488af1f1 wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x488fb334 ata_sff_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size
+EXPORT_SYMBOL_GPL vmlinux 0x48a97e2d ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x48aeef6c pci_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x48bd5acb cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL vmlinux 0x498741c6 cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x498a9791 ata_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue
+EXPORT_SYMBOL_GPL vmlinux 0x49c4cb12 usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0x4a4dd2c9 sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x4a4f3a7b wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x4a6aa2fc pci_enable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0x4a7bb187 pm_runtime_allow
+EXPORT_SYMBOL_GPL vmlinux 0x4a7f1368 ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0x4a8d7e5d __crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x4ab67da6 crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x4ae5d487 driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x4b20759a pciserial_init_ports
+EXPORT_SYMBOL_GPL vmlinux 0x4b9caaeb xenbus_free_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x4bbcae2c sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4c185cef inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c96112c anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0x4cb2342a dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0x4cf3bf2b proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x4cf86449 sata_pmp_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x4d26d41e skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x4d9117db ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0x4dacbbad scsi_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x4deaee17 tc35892_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x4e252b31 init_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x4e4e77ff scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x4eb729f1 platform_get_resource_byname
+EXPORT_SYMBOL_GPL vmlinux 0x4ef05e8a sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x4f025b2e generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x4f2dd439 inet_diag_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4f7092c0 ata_sff_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x4f9194f6 rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0x4fba7b53 ata_sff_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device
+EXPORT_SYMBOL_GPL vmlinux 0x4fcd542a __sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal
+EXPORT_SYMBOL_GPL vmlinux 0x4fe9cb60 xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0x50314050 debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0x50572505 simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0x5073c31b sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x5093e8b6 raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x509933bc devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0x509ad84c i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x50a7587b xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0x50b319ce cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0x50b6d765 crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine
+EXPORT_SYMBOL_GPL vmlinux 0x50d85cfa agp_remove_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched
+EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x50ff737a pm_generic_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x5133b013 adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x513d674a usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq
+EXPORT_SYMBOL_GPL vmlinux 0x519648ce regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0x51bcf22d usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0x51d5f54c fib_rules_cleanup_ops
+EXPORT_SYMBOL_GPL vmlinux 0x51fa496d handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0x520543ea pci_dev_run_wake
+EXPORT_SYMBOL_GPL vmlinux 0x521bc4ad xenbus_unmap_ring_vfree
+EXPORT_SYMBOL_GPL vmlinux 0x524fed7f ata_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x5286d980 class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0x52b3325e skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0x52e5bec7 sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0x52f89822 ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0x530dc399 ata_host_resume
+EXPORT_SYMBOL_GPL vmlinux 0x530fe1f3 bus_register
+EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x534da96a pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0x534f9ce2 ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53aabfba crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x53c45ea6 pci_disable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x53d0ad47 pm_generic_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x541dcea2 crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0x54202371 bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0x54417e98 pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x5472ce26 ring_buffer_record_enable
+EXPORT_SYMBOL_GPL vmlinux 0x548acd28 wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x548c10e5 usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0x548db6ad pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54bb02e2 devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x54fe8727 da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0x552cd2fa wm8350_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x554971d9 ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features
+EXPORT_SYMBOL_GPL vmlinux 0x55c684c4 inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x561c634a wmi_evaluate_method
+EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status
+EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable
+EXPORT_SYMBOL_GPL vmlinux 0x563c3d60 spi_register_master
+EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x5645d5f0 seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after
+EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen
+EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk
+EXPORT_SYMBOL_GPL vmlinux 0x56d7f75e crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x56fd9a30 dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL vmlinux 0x5722b8f2 get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0x572b843b css_id
+EXPORT_SYMBOL_GPL vmlinux 0x5745abac regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists
+EXPORT_SYMBOL_GPL vmlinux 0x57968b35 ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x580d8705 srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x584e0ece put_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x58938337 platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0x5902f1c3 disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0x59049f89 mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0x590884d7 rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0x592c3e8a relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL vmlinux 0x594c88f5 ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x5970e340 kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x59a94e08 sync_page_io
+EXPORT_SYMBOL_GPL vmlinux 0x59e6cd07 __rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x5a48fba2 disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5a8f245d crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x5af0583a acpi_smbus_read
+EXPORT_SYMBOL_GPL vmlinux 0x5affd054 task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x5b057dbc dm_rh_get_state
+EXPORT_SYMBOL_GPL vmlinux 0x5b435139 unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x5b69f210 hvc_poll
+EXPORT_SYMBOL_GPL vmlinux 0x5b71bd2f crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x5baf3be4 gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5c25b5f3 scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x5cdb5211 blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0x5cf26d75 fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0x5cfa0b19 usb_hc_died
+EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table
+EXPORT_SYMBOL_GPL vmlinux 0x5d14b049 led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback
+EXPORT_SYMBOL_GPL vmlinux 0x5d4a5a1f platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x5d5c0483 shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5ddf2688 crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x5de8bf92 tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0x5e1833bf sdio_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x5e550562 crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x5e64898f shake_page
+EXPORT_SYMBOL_GPL vmlinux 0x5e950dce get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0x5ec987c3 blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0x5edbbc17 __inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable
+EXPORT_SYMBOL_GPL vmlinux 0x5f52d135 ata_sff_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0x5f5ad4ec sdio_release_irq
+EXPORT_SYMBOL_GPL vmlinux 0x5f785b8f usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0x5fc3e9ff vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x5ff890e9 device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0x60559c62 kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x6057e142 usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops
+EXPORT_SYMBOL_GPL vmlinux 0x60ebf985 acpi_processor_ffh_cstate_enter
+EXPORT_SYMBOL_GPL vmlinux 0x60ec40cc get_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x61667785 raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check
+EXPORT_SYMBOL_GPL vmlinux 0x61bf2dfc put_device
+EXPORT_SYMBOL_GPL vmlinux 0x61e9a973 cpufreq_get_measured_perf
+EXPORT_SYMBOL_GPL vmlinux 0x621ffdb7 sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x626936ff regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep
+EXPORT_SYMBOL_GPL vmlinux 0x62a77787 proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0x62ce93af __create_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0x62d88a93 tty_put_char
+EXPORT_SYMBOL_GPL vmlinux 0x63015cbf sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0x63133b7c transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL vmlinux 0x6399ff66 __ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap
+EXPORT_SYMBOL_GPL vmlinux 0x642c9fd7 platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0x644fe160 xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0x645eb13b bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x6465e429 xenbus_alloc_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x6469f7ba debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x647c6962 sdio_writesb
+EXPORT_SYMBOL_GPL vmlinux 0x64a02d1b crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x64a9e254 scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0x64d3fb6d tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0x64e8f5b5 usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0x651b8e07 cpuidle_get_driver
+EXPORT_SYMBOL_GPL vmlinux 0x6520d4fe ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq
+EXPORT_SYMBOL_GPL vmlinux 0x65723727 regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x658569f6 trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0x659edd9d crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65dd5563 ata_sff_check_status
+EXPORT_SYMBOL_GPL vmlinux 0x65e20a1c dev_attr_em_message_type
+EXPORT_SYMBOL_GPL vmlinux 0x65e9a1c9 ata_bmdma_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x662d60ce ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66c7ede2 hwmon_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x66ef1cdf usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0x670c5bef hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0x6733e23f sdio_f0_readb
+EXPORT_SYMBOL_GPL vmlinux 0x6753d486 dm_region_hash_create
+EXPORT_SYMBOL_GPL vmlinux 0x677ebbb9 elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x67a0f16d blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0x68024063 get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x68b12e73 rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x6925a382 init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0x69785b12 dm_rh_delay
+EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse
+EXPORT_SYMBOL_GPL vmlinux 0x69c470c7 pm_generic_restore
+EXPORT_SYMBOL_GPL vmlinux 0x69d57faf ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config
+EXPORT_SYMBOL_GPL vmlinux 0x6a3ea8f3 dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x6a6932f8 platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start
+EXPORT_SYMBOL_GPL vmlinux 0x6a891f71 xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid
+EXPORT_SYMBOL_GPL vmlinux 0x6af00b39 regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b368d4a devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0x6b3e7f84 dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low
+EXPORT_SYMBOL_GPL vmlinux 0x6b9178b3 xenbus_strstate
+EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x6b957608 tty_find_polling_driver
+EXPORT_SYMBOL_GPL vmlinux 0x6bab1f33 da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x6bc653bb ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x6c0b4e08 sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6c93efca ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x6cb8d0ed usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x6cb9cf86 aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x6d19fa96 wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d3c3f73 ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x6d6a3aa3 usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x6d902ee8 ata_host_init
+EXPORT_SYMBOL_GPL vmlinux 0x6d9a7951 dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL vmlinux 0x6db64cfc cpci_hp_register_bus
+EXPORT_SYMBOL_GPL vmlinux 0x6dc4dc76 driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x6dec80f5 fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0x6e0b280e pci_num_vf
+EXPORT_SYMBOL_GPL vmlinux 0x6e195a0b wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref
+EXPORT_SYMBOL_GPL vmlinux 0x6e6404e9 dm_kill_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x6ebf460f ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x6f08c18c fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x6f0ea5e3 ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL vmlinux 0x6f3c216f debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0x6f4f75cb invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0x6f7db3bc dm_rh_inc_pending
+EXPORT_SYMBOL_GPL vmlinux 0x6f9f1ef1 tty_mode_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x6fada7b7 inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x6fb8a8fa perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0x6fd9de07 noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x6fde0c0e pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x700e3969 crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x7033c67c wm831x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts
+EXPORT_SYMBOL_GPL vmlinux 0x7047dc21 crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x704cc9c9 crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr
+EXPORT_SYMBOL_GPL vmlinux 0x707d3231 simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem
+EXPORT_SYMBOL_GPL vmlinux 0x70d840b5 sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0x7137f5bb scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x716ceee9 ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0x7180e7ce pciserial_suspend_ports
+EXPORT_SYMBOL_GPL vmlinux 0x71e972e7 crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0x72180161 register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0x725d940e ata_cable_unknown
+EXPORT_SYMBOL_GPL vmlinux 0x72641893 ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x72aca472 user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x72d422fa inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x731433ee unregister_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type
+EXPORT_SYMBOL_GPL vmlinux 0x734418f3 register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x73710421 sata_pmp_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x737c00b2 skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0x739ad5e6 scsi_dh_attach
+EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports
+EXPORT_SYMBOL_GPL vmlinux 0x73c9b256 cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x73f3c3b6 transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0x742a3914 crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini
+EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read
+EXPORT_SYMBOL_GPL vmlinux 0x74973545 rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x74a98674 bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register
+EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors
+EXPORT_SYMBOL_GPL vmlinux 0x74e48518 crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm
+EXPORT_SYMBOL_GPL vmlinux 0x7581c9db sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x75973691 ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x759e8798 tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0x75a7a8ff sdio_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x75db3c9d usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x75ec33ef inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x75ece065 regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x7620c1db platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0x7652a70f sdio_enable_func
+EXPORT_SYMBOL_GPL vmlinux 0x766e1ec0 ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x76796eb5 aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x768e90f1 hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL vmlinux 0x769e8cbe d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x770a011e sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x774fe0ac xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0x7753889e crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x77d0c4f8 uart_console_write
+EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0x77f3ebb1 devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x780f80cb erst_read_next
+EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar
+EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x794a177f ata_sff_exec_command
+EXPORT_SYMBOL_GPL vmlinux 0x79a1a554 driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x79f8d3eb pci_hp_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info
+EXPORT_SYMBOL_GPL vmlinux 0x7a639048 transport_configure_device
+EXPORT_SYMBOL_GPL vmlinux 0x7a865465 device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0x7a8b5956 ata_sff_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x7a986cfd usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0x7ab3f351 ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x7acaca64 usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL vmlinux 0x7ad37aed rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr
+EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set
+EXPORT_SYMBOL_GPL vmlinux 0x7b4ea38c sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x7b999b23 class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x7bb1b29a register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x7bf9bac8 pci_restore_msi_state
+EXPORT_SYMBOL_GPL vmlinux 0x7bfae850 spi_alloc_master
+EXPORT_SYMBOL_GPL vmlinux 0x7c618ce0 wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0x7c80ee14 __xenbus_register_frontend
+EXPORT_SYMBOL_GPL vmlinux 0x7d270b4a driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq
+EXPORT_SYMBOL_GPL vmlinux 0x7d684f50 cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL vmlinux 0x7d6fe27b bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values
+EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7e06d0fb adp5520_read
+EXPORT_SYMBOL_GPL vmlinux 0x7e08d72c inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e23429b acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e4168ee crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x7e5e301f unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7e8fde33 vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check
+EXPORT_SYMBOL_GPL vmlinux 0x7ec8ba1f dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0x7ef7218b scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x7f0f3132 dm_rh_flush
+EXPORT_SYMBOL_GPL vmlinux 0x7f141b43 __rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x7f944192 crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0x7f9792d1 xenbus_grant_ring
+EXPORT_SYMBOL_GPL vmlinux 0x7fe3486e inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ff8d65d usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x8015e805 ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x80ca2ed3 spi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x81808db1 unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0x81a13926 crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x81a408be dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL vmlinux 0x81f3ebf9 sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8200e6f0 regulator_disable
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x82b25441 scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write
+EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export
+EXPORT_SYMBOL_GPL vmlinux 0x82f7f0b5 ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x83281a95 mmu_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x832f053c fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x83774cee vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0x83d3369e tracepoint_iter_start
+EXPORT_SYMBOL_GPL vmlinux 0x83f01e0c fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x84c10df5 ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x8517e64a blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x85318c6d ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL vmlinux 0x853522cd fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag
+EXPORT_SYMBOL_GPL vmlinux 0x854c24e8 kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x85998ab1 tc35892_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh
+EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq
+EXPORT_SYMBOL_GPL vmlinux 0x8603bbf2 cpufreq_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x865f0020 fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq
+EXPORT_SYMBOL_GPL vmlinux 0x867c684a setup_APIC_eilvt_ibs
+EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x8689ab3c sata_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x868bddba sata_sff_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x8695f853 acpi_smbus_write
+EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x86a89165 ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x86c7b943 ata_std_qc_defer
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error
+EXPORT_SYMBOL_GPL vmlinux 0x876d29f1 wmi_get_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm
+EXPORT_SYMBOL_GPL vmlinux 0x87e9e1af relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active
+EXPORT_SYMBOL_GPL vmlinux 0x88b80cab cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x89027895 sdio_writeb
+EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x893e5486 dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x8951d89f device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init
+EXPORT_SYMBOL_GPL vmlinux 0x89a32461 raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0x89be1205 bd_release_from_disk
+EXPORT_SYMBOL_GPL vmlinux 0x89d9cf61 ata_eh_freeze_port
+EXPORT_SYMBOL_GPL vmlinux 0x89eb885d tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0x8a0f1e99 srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8a4e63e6 swiotlb_map_page
+EXPORT_SYMBOL_GPL vmlinux 0x8a71f0e9 tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0x8a776ce7 sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x8aa03787 page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0x8ab371e3 unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x8ab9792d ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL vmlinux 0x8adda4e0 ata_dev_disable
+EXPORT_SYMBOL_GPL vmlinux 0x8b15de38 usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x8b39cf9d unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis
+EXPORT_SYMBOL_GPL vmlinux 0x8b811a5c inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address
+EXPORT_SYMBOL_GPL vmlinux 0x8bc964e0 inotify_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x8bcc3206 pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8bfe22ea eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start
+EXPORT_SYMBOL_GPL vmlinux 0x8c1605f3 debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0x8c172404 synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x8c50d6fb dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0x8c77e083 map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x8cb19502 rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x8ce13f4c sata_link_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x8ce28f6f cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x8d157ca8 rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x8d6a41dc eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x8d6fc117 wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0x8d746618 inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0x8d774b6f dm_register_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0x8e15e276 generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0x8ecd8393 class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x8ee30251 inotify_inode_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x8f0252aa pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x8f3d398e pm_generic_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x8f559b4f cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x8f671211 cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0x8f6733d5 fuse_request_send
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8f9ee0d0 ata_sff_irq_on
+EXPORT_SYMBOL_GPL vmlinux 0x8fa2b33c adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x9006464d page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL vmlinux 0x9013e3f5 inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0x90603b0a ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0x9081be09 ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90d9aacb rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs
+EXPORT_SYMBOL_GPL vmlinux 0x910b744c usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x910eac05 show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x916be72f mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x9197dd4b filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array
+EXPORT_SYMBOL_GPL vmlinux 0x91d733ee power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0x922f3b03 rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x924a9f0c inotify_find_update_watch
+EXPORT_SYMBOL_GPL vmlinux 0x924aae92 single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x92625c20 inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL vmlinux 0x92a1910c smp_call_function_any
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9305b366 debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x93260715 register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x93425a58 crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x9352e33a elv_register
+EXPORT_SYMBOL_GPL vmlinux 0x9389f058 blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0x93ab6de4 devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x93bd7d54 ip6_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x93efea6e usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x9474f450 __put_net
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources
+EXPORT_SYMBOL_GPL vmlinux 0x94da5b4b usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0x94e307e0 pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x94e5e3e3 swiotlb_unmap_page
+EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x952db40b queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x952dc609 ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0x95332bf8 ata_sas_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x953b08b9 class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x954c239c pm_schedule_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x954d0899 devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0x9563d8ed platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x95b65302 sysdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x95e26c7b ata_host_detach
+EXPORT_SYMBOL_GPL vmlinux 0x95ec49c6 find_module
+EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x964d5c39 acpi_os_map_memory
+EXPORT_SYMBOL_GPL vmlinux 0x965b92b3 blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key
+EXPORT_SYMBOL_GPL vmlinux 0x968c6546 ata_host_start
+EXPORT_SYMBOL_GPL vmlinux 0x96bfd034 __sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0x96c59a74 ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9712fc66 platform_device_register_data
+EXPORT_SYMBOL_GPL vmlinux 0x97166836 i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x973aabc5 wm8994_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x976116c4 sdio_readsb
+EXPORT_SYMBOL_GPL vmlinux 0x97947aa3 rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x97a35ac0 __pm_runtime_get
+EXPORT_SYMBOL_GPL vmlinux 0x98010319 file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick
+EXPORT_SYMBOL_GPL vmlinux 0x98b82bd3 pci_sriov_migration
+EXPORT_SYMBOL_GPL vmlinux 0x98c031ef inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x99081e80 usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0x9923b7fd firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x993c7e6f usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on
+EXPORT_SYMBOL_GPL vmlinux 0x99b24170 __pm_runtime_disable
+EXPORT_SYMBOL_GPL vmlinux 0x99c711a4 debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0x99e4d1f3 ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL vmlinux 0x99eee686 rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a195bc6 ata_link_online
+EXPORT_SYMBOL_GPL vmlinux 0x9a209891 tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0x9a341c68 sdio_disable_func
+EXPORT_SYMBOL_GPL vmlinux 0x9a3c6a31 trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x9a8eea4a sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL vmlinux 0x9a8ff4bc led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0x9aa3e96f css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x9ad97c35 ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0x9aeb28f7 inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0x9af97897 tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9bb2de34 ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0x9c192cef ata_link_abort
+EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x9c39eec2 tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x9c607916 crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9cbb95cb sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch
+EXPORT_SYMBOL_GPL vmlinux 0x9d0eb311 usb_driver_set_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x9d36531d ring_buffer_overruns
+EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0x9d58587d usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x9d61f66b __hvc_resize
+EXPORT_SYMBOL_GPL vmlinux 0x9d8c1173 init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x9da3aeb4 platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x9dd65f7e dev_attr_unload_heads
+EXPORT_SYMBOL_GPL vmlinux 0x9de655fa hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x9e283af3 dm_rh_get_region_key
+EXPORT_SYMBOL_GPL vmlinux 0x9e378dd1 register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x9e426675 disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x9f03b0cc sdio_writel
+EXPORT_SYMBOL_GPL vmlinux 0x9f195879 ata_bmdma_status
+EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain
+EXPORT_SYMBOL_GPL vmlinux 0x9f49fdc4 regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9f883bc9 crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x9f89648f relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc
+EXPORT_SYMBOL_GPL vmlinux 0x9fbe10f0 ata_pci_remove_one
+EXPORT_SYMBOL_GPL vmlinux 0x9fc302b0 tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xa00bcaa3 debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0xa0152da1 inet_diag_register
+EXPORT_SYMBOL_GPL vmlinux 0xa01b9c94 fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0xa07746c1 crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0xa07d781f scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0xa0875c45 __inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0xa0b7ba8e seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0xa0bb04f1 xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL vmlinux 0xa0d93bcd put_pid
+EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xa12707f9 pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0xa13b1ab9 zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0xa15ffb26 raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0xa16970ae fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa1b1c66f ata_bmdma_start
+EXPORT_SYMBOL_GPL vmlinux 0xa20cdbe3 rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0xa230dd2d setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0xa278b64c dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0xa2bb0e30 cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL vmlinux 0xa2d3e7e3 ata_sff_softreset
+EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4
+EXPORT_SYMBOL_GPL vmlinux 0xa301a0f4 skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm
+EXPORT_SYMBOL_GPL vmlinux 0xa35e969b ata_std_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa441ecdf sdio_release_host
+EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit
+EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx
+EXPORT_SYMBOL_GPL vmlinux 0xa4a412e4 scsi_dh_activate
+EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0xa4b5ee00 regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xa4be5f29 ipv6_dup_options
+EXPORT_SYMBOL_GPL vmlinux 0xa4c73ce6 __css_put
+EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore
+EXPORT_SYMBOL_GPL vmlinux 0xa4ed60ac sysdev_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xa4f89c4e ipv6_opt_accepted
+EXPORT_SYMBOL_GPL vmlinux 0xa51ac6d4 scsi_target_unblock
+EXPORT_SYMBOL_GPL vmlinux 0xa55da98c __pci_hp_register
+EXPORT_SYMBOL_GPL vmlinux 0xa571bab2 platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa6078876 regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0xa60ad9ac usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa63e3f9b acpi_smbus_unregister_callback
+EXPORT_SYMBOL_GPL vmlinux 0xa68aac3d pci_find_next_capability
+EXPORT_SYMBOL_GPL vmlinux 0xa691279e sdio_claim_irq
+EXPORT_SYMBOL_GPL vmlinux 0xa6ab3509 ata_sas_port_start
+EXPORT_SYMBOL_GPL vmlinux 0xa6ae3f92 dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL vmlinux 0xa6e07756 dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0xa6fb015a sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0xa7380b59 sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xa7410cc5 input_ff_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xa78eb14c fuse_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0xa7a8e0b8 usb_create_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xa7b8601f crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0xa7ca9120 spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0xa7d62019 hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xa80e2886 usb_ifnum_to_if
+EXPORT_SYMBOL_GPL vmlinux 0xa82a0d59 usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll
+EXPORT_SYMBOL_GPL vmlinux 0xa8b14f54 hwpoison_filter
+EXPORT_SYMBOL_GPL vmlinux 0xa8cc5b58 device_find_child
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit
+EXPORT_SYMBOL_GPL vmlinux 0xa9758712 fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xa988bd33 usb_enable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0xa98d044b part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9c963a8 usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xa9d88c46 __cpufreq_driver_getavg
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xaa00e74d vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0xaa090a4f pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xaa121800 tasklet_hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xaa381ba8 ata_sff_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0xaa7ab791 crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0xaa7cccda ata_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock
+EXPORT_SYMBOL_GPL vmlinux 0xaacf2ddb usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback
+EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run
+EXPORT_SYMBOL_GPL vmlinux 0xab18f0cf br_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0xab27b7ad blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xab283d6c xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0xab42ade1 wm8350_gpio_config
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab6d0dcd usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0xaba5b5d7 vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0xabc097b6 pm_generic_resume
+EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xabf44547 device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0xac1a82d0 usb_get_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xac348ac6 __dma_request_channel
+EXPORT_SYMBOL_GPL vmlinux 0xac698c09 pci_bus_resource_n
+EXPORT_SYMBOL_GPL vmlinux 0xac6d7920 ata_eh_qc_retry
+EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq
+EXPORT_SYMBOL_GPL vmlinux 0xacbef87f dm_rh_get_region_size
+EXPORT_SYMBOL_GPL vmlinux 0xacc19485 ibft_addr
+EXPORT_SYMBOL_GPL vmlinux 0xacc43222 usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xad005e71 __ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf
+EXPORT_SYMBOL_GPL vmlinux 0xad4a70dd xenbus_dev_error
+EXPORT_SYMBOL_GPL vmlinux 0xad593969 scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad800128 sdio_set_block_size
+EXPORT_SYMBOL_GPL vmlinux 0xad94c33d wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xad951fbc drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module
+EXPORT_SYMBOL_GPL vmlinux 0xadc904de usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae2009fa usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xae487aac __inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0xae53f4e2 tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0xae571a2b blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xae7ec35d usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xae948cf6 rtc_class_close
+EXPORT_SYMBOL_GPL vmlinux 0xaea6b496 simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0xaec55551 pm_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xaecb6b56 devres_add
+EXPORT_SYMBOL_GPL vmlinux 0xaf30fca4 fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0xaf3bb2a0 ata_port_abort
+EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xaf46d4b0 tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0xafabdd23 security_inode_setattr
+EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device
+EXPORT_SYMBOL_GPL vmlinux 0xb0130213 __fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0xb03bbf2c platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xb05e90fa hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0xb06c1481 regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0xb0789718 alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa531c ata_pci_device_resume
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xb0bfc686 hvc_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xb0c3bd09 transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0xb10690f8 device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send
+EXPORT_SYMBOL_GPL vmlinux 0xb11099d5 xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0xb136e911 sdio_writew
+EXPORT_SYMBOL_GPL vmlinux 0xb17e14ec xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb1c882df __blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xb1d25cc6 print_context_stack
+EXPORT_SYMBOL_GPL vmlinux 0xb1d79f83 md_allow_write
+EXPORT_SYMBOL_GPL vmlinux 0xb262d0ac register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xb27657fa debugfs_create_x64
+EXPORT_SYMBOL_GPL vmlinux 0xb2994f50 dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0xb2aad9ad rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0xb2efd7ed user_describe
+EXPORT_SYMBOL_GPL vmlinux 0xb30c6d5e hrtimer_start
+EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init
+EXPORT_SYMBOL_GPL vmlinux 0xb329c6e7 power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0xb3375000 crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0xb352ddeb agp_add_bridge
+EXPORT_SYMBOL_GPL vmlinux 0xb3721fed pci_block_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0xb39466b7 usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0xb3a5baf3 pci_hp_create_module_link
+EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write
+EXPORT_SYMBOL_GPL vmlinux 0xb3fa3903 platform_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xb4359f1d adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xb493b741 ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected
+EXPORT_SYMBOL_GPL vmlinux 0xb4f14b60 free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xb4fe2bf1 wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state
+EXPORT_SYMBOL_GPL vmlinux 0xb530fe9d dm_rh_dirty_log
+EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait
+EXPORT_SYMBOL_GPL vmlinux 0xb544ddfb device_move
+EXPORT_SYMBOL_GPL vmlinux 0xb565545e led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler
+EXPORT_SYMBOL_GPL vmlinux 0xb5c665d3 ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL vmlinux 0xb5c98ac0 cpufreq_frequency_table_cpuinfo
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb612444d snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xb633c6b0 fsnotify
+EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec
+EXPORT_SYMBOL_GPL vmlinux 0xb663c472 sysfs_notify_dirent
+EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string
+EXPORT_SYMBOL_GPL vmlinux 0xb6c5b402 sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse
+EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb74ee06c regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0xb781d6c2 raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xb784551b mmput
+EXPORT_SYMBOL_GPL vmlinux 0xb7bff889 ata_acpi_stm
+EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time
+EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll
+EXPORT_SYMBOL_GPL vmlinux 0xb7f4e553 erst_read
+EXPORT_SYMBOL_GPL vmlinux 0xb7ff9bf1 crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xb847b988 ata_sas_port_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xb84b0a32 security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0xb85ee053 sysfs_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xb88717a1 sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xb8b9a7c2 ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xb8feb924 usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0xb9054aa7 cpci_hp_register_controller
+EXPORT_SYMBOL_GPL vmlinux 0xb94cac24 tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0xb94db510 register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xb96186dc sata_scr_valid
+EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read
+EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0xba46b657 ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL vmlinux 0xba546685 xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0xbaa0d47d __srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks
+EXPORT_SYMBOL_GPL vmlinux 0xbb12c576 cpuidle_disable_device
+EXPORT_SYMBOL_GPL vmlinux 0xbb1a9aa0 inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xbb60801c driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xbb8cb89d ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info
+EXPORT_SYMBOL_GPL vmlinux 0xbbeb3b83 ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xbc122b65 usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0xbc2f21c7 ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0xbc4d8285 free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0xbc5f9c50 driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbc84f0bb tc35892_block_write
+EXPORT_SYMBOL_GPL vmlinux 0xbcf0a134 kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xbd6e96fd n_tty_inherit_ops
+EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse
+EXPORT_SYMBOL_GPL vmlinux 0xbde121b8 srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbe022243 ata_host_register
+EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime
+EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xbe53292c inotify_init
+EXPORT_SYMBOL_GPL vmlinux 0xbe5b6d22 gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0xbe76d5ea tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xbead4956 kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0xbec4deb3 ab8500_read
+EXPORT_SYMBOL_GPL vmlinux 0xbed8207a usb_match_id
+EXPORT_SYMBOL_GPL vmlinux 0xbf12848f wm8994_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xbf57d1e5 blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0xc03f63b3 fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xc0769321 nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0xc0bbacf0 ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time
+EXPORT_SYMBOL_GPL vmlinux 0xc0c98ba9 pci_ioremap_bar
+EXPORT_SYMBOL_GPL vmlinux 0xc0df41fb perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0xc0ee26d6 pm_generic_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0xc0eeee5e cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar
+EXPORT_SYMBOL_GPL vmlinux 0xc1456533 debugfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc197eced crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc23a11a0 rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0xc26d3b63 sata_async_notification
+EXPORT_SYMBOL_GPL vmlinux 0xc2cf0163 pci_scan_child_bus
+EXPORT_SYMBOL_GPL vmlinux 0xc2d922a1 inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable
+EXPORT_SYMBOL_GPL vmlinux 0xc2e20fa2 relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0xc321972d uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0xc32481b8 ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL vmlinux 0xc325bb9c mce_chrdev_ops
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc3a4f2f5 dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0xc3de15bd ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xc3e47ca4 inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0xc3e5f29b smp_ops
+EXPORT_SYMBOL_GPL vmlinux 0xc4034caa enable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xc4136ded fuse_direct_io
+EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long
+EXPORT_SYMBOL_GPL vmlinux 0xc42f2f94 xenbus_read_driver_state
+EXPORT_SYMBOL_GPL vmlinux 0xc43f6119 wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0xc451867b usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL vmlinux 0xc45e6a98 input_ff_event
+EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string
+EXPORT_SYMBOL_GPL vmlinux 0xc48e67b1 device_add
+EXPORT_SYMBOL_GPL vmlinux 0xc4ce6189 idle_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask
+EXPORT_SYMBOL_GPL vmlinux 0xc53518bf anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xc54169fa inet6_destroy_sock
+EXPORT_SYMBOL_GPL vmlinux 0xc5b6f41a page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0xc5e5af64 unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc5fe70c4 rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc650a370 device_rename
+EXPORT_SYMBOL_GPL vmlinux 0xc6554cc9 relay_close
+EXPORT_SYMBOL_GPL vmlinux 0xc68c3921 dm_put
+EXPORT_SYMBOL_GPL vmlinux 0xc68eb497 power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xc6ac8912 ata_port_desc
+EXPORT_SYMBOL_GPL vmlinux 0xc6af18c5 invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0xc6b5314b __pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xc6bbcb66 __scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0xc6e99834 find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xc7bd3426 preempt_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc7df1606 kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xc7e05181 find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0xc836bea5 ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xc8576a8f platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0xc85f9715 inotify_remove_watch_locked
+EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain
+EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event
+EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc8f5006a ata_pci_device_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource
+EXPORT_SYMBOL_GPL vmlinux 0xc946d76f blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0xc94bad32 usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc95496dd pci_create_slot
+EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist
+EXPORT_SYMBOL_GPL vmlinux 0xc9a060ea ata_sff_pause
+EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xca2c0f22 modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xca5f8265 crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0xca71a7b4 dm_rh_update_states
+EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcb0b9b9f i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL vmlinux 0xcb6bb0ba __root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xcb8d9ca9 ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0xcbc667ae ab8500_write
+EXPORT_SYMBOL_GPL vmlinux 0xcbc7ab33 devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xcbeaecb6 ata_sas_slave_configure
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcbf07c05 sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc25c042 ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xccca15f1 usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL vmlinux 0xcd144335 ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL vmlinux 0xcd1b9d24 tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0xcd1ca2cb iommu_domain_has_cap
+EXPORT_SYMBOL_GPL vmlinux 0xcdb22bc2 unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xcdc20049 regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xcdec283e dm_rh_recovery_start
+EXPORT_SYMBOL_GPL vmlinux 0xce34dc99 synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0xcec624c6 pciserial_remove_ports
+EXPORT_SYMBOL_GPL vmlinux 0xcecb49e9 crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0xcf186d77 shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xcf28f59e rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xcf500156 cpuidle_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0xcf6daa14 usb_autopm_put_interface
+EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback
+EXPORT_SYMBOL_GPL vmlinux 0xcfc30dd4 ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcfe748ff tc35892_block_read
+EXPORT_SYMBOL_GPL vmlinux 0xcff10069 usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL vmlinux 0xd05645a9 inotify_add_watch
+EXPORT_SYMBOL_GPL vmlinux 0xd0646fb6 bd_claim_by_disk
+EXPORT_SYMBOL_GPL vmlinux 0xd07ce9fe crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0xd0b316ab scsi_register_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0xd0be7365 usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd0c70652 __i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0xd0c8397a cpufreq_register_governor
+EXPORT_SYMBOL_GPL vmlinux 0xd1320334 pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd17d7329 dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0xd19fbdea kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xd1c9fd0e blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0xd1fa42b2 crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xd20c2ac4 security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd233d345 shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xd23e4bab device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL vmlinux 0xd23fb1bd __pm_runtime_put
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop
+EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0xd34aaa1d ata_sff_postreset
+EXPORT_SYMBOL_GPL vmlinux 0xd3573027 hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0xd381a338 ata_link_next
+EXPORT_SYMBOL_GPL vmlinux 0xd4051d5d shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xd4e99908 ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL vmlinux 0xd5149fba pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0xd538cf3d dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xd5857922 inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0xd59c8e13 get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0xd59d74fb fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0xd59f4f83 ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0xd5d889d5 usb_string
+EXPORT_SYMBOL_GPL vmlinux 0xd65e6937 eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0xd6a71b8b ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL vmlinux 0xd6d8cc83 usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id
+EXPORT_SYMBOL_GPL vmlinux 0xd6f4f9a3 regulator_put
+EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries
+EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout
+EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd7588263 debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd76c17aa rt_mutex_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd7d020bd device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0xd7f82dc1 usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0xd8021a21 cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xd80cbb0e spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xd8174142 usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0xd8301a7e register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0xd8487a9f class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xd86f6f54 crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xd89cab64 ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xd8a0e070 tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0xd921a4cb __mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0xd93641d1 sata_link_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xd945ba00 crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xd9783446 do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0xd9997f1a user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xd9abd698 dm_rh_region_context
+EXPORT_SYMBOL_GPL vmlinux 0xd9e67f69 sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xd9efb7a1 sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0xda077162 spi_sync
+EXPORT_SYMBOL_GPL vmlinux 0xda0c254c user_read
+EXPORT_SYMBOL_GPL vmlinux 0xda0c6b82 pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL vmlinux 0xda29f8b0 wmi_set_block
+EXPORT_SYMBOL_GPL vmlinux 0xda36eaa0 ata_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0xda393923 led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0xda49b184 usb_disable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0xda52a3f2 proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0xda6d6bad dm_device_name
+EXPORT_SYMBOL_GPL vmlinux 0xdab5b9b4 sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0xdaee52a2 ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xdaf3f20c sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option
+EXPORT_SYMBOL_GPL vmlinux 0xdb03547f netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdb946730 pci_disable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0xdbb25f5e acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL vmlinux 0xdbbe2492 scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0xdc1f8f2e register_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0xdc33332b class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xdc9b9e47 debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0xdcd42666 iommu_unmap
+EXPORT_SYMBOL_GPL vmlinux 0xdd5e472a regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0xdd64dffb lookup_create
+EXPORT_SYMBOL_GPL vmlinux 0xddcc9626 rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0xdde68fb0 rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xde0afd6d find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain
+EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init
+EXPORT_SYMBOL_GPL vmlinux 0xde50808f device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xde726602 crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xde73ffc1 xenbus_frontend_closed
+EXPORT_SYMBOL_GPL vmlinux 0xde82eeeb rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xdf7d65c4 device_create
+EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name
+EXPORT_SYMBOL_GPL vmlinux 0xe05fe741 fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved
+EXPORT_SYMBOL_GPL vmlinux 0xe08a5bcf __audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xe0d84ffe tracepoint_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xe0f5b0dc xenbus_unmap_ring
+EXPORT_SYMBOL_GPL vmlinux 0xe1419cef acpi_smbus_register_callback
+EXPORT_SYMBOL_GPL vmlinux 0xe14984dc attribute_container_find_class_device
+EXPORT_SYMBOL_GPL vmlinux 0xe14a087d __blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xe14d031b usb_store_new_id
+EXPORT_SYMBOL_GPL vmlinux 0xe17a4ca4 module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0xe1e3efec regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xe2230270 securityfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xe2542d65 disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xe269ea99 driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe32d26c5 inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0xe35360f9 usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xe3cfb5b3 add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0xe4428977 register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0xe49cde82 class_dev_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register
+EXPORT_SYMBOL_GPL vmlinux 0xe4a35521 ata_sas_port_init
+EXPORT_SYMBOL_GPL vmlinux 0xe4b0932b led_trigger_show
+EXPORT_SYMBOL_GPL vmlinux 0xe4c36dbc skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0xe4c69f31 usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL vmlinux 0xe4d3059a cpuidle_enable_device
+EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges
+EXPORT_SYMBOL_GPL vmlinux 0xe5215a8b rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0xe554eafb dm_rh_dec
+EXPORT_SYMBOL_GPL vmlinux 0xe561b258 transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0xe58151cb attribute_container_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe58b3160 da903x_write
+EXPORT_SYMBOL_GPL vmlinux 0xe5dd07b2 single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0xe5e14a03 pm_runtime_forbid
+EXPORT_SYMBOL_GPL vmlinux 0xe5e4b46a bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0xe5eb8db6 blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0xe5f7d2cd css_depth
+EXPORT_SYMBOL_GPL vmlinux 0xe605c51e pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport
+EXPORT_SYMBOL_GPL vmlinux 0xe630e4fa usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition
+EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe6551fea ata_sff_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xe6705efd blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xe6879035 sdio_f0_writeb
+EXPORT_SYMBOL_GPL vmlinux 0xe6a455ec ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xe6a7c46d sysdev_class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr
+EXPORT_SYMBOL_GPL vmlinux 0xe808ed88 screen_glyph
+EXPORT_SYMBOL_GPL vmlinux 0xe8234753 da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0xe857ac75 __pm_runtime_set_status
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe87f3a5d crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0xe88eea0f ipv6_find_tlv
+EXPORT_SYMBOL_GPL vmlinux 0xe89555dd ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0xe8a3603f dm_rh_start_recovery
+EXPORT_SYMBOL_GPL vmlinux 0xe8f58bbc acpi_bus_trim
+EXPORT_SYMBOL_GPL vmlinux 0xe91e99ca __class_register
+EXPORT_SYMBOL_GPL vmlinux 0xe928fd6d platform_device_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe95d6dd4 usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xe993dfc7 pci_find_ext_capability
+EXPORT_SYMBOL_GPL vmlinux 0xe9946feb ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xe9d34ed8 da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea296e6e xenbus_map_ring
+EXPORT_SYMBOL_GPL vmlinux 0xea3f5a45 inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xea43de41 ata_bmdma_setup
+EXPORT_SYMBOL_GPL vmlinux 0xea95964f inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeb0bac90 class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xeb7e1c62 usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0xeb85ced3 __srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0xeb8ab877 wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xeba753a8 device_create_vargs
+EXPORT_SYMBOL_GPL vmlinux 0xebe44e5e hypervisor_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del
+EXPORT_SYMBOL_GPL vmlinux 0xec274da7 platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0xec3bab4c ata_slave_link_init
+EXPORT_SYMBOL_GPL vmlinux 0xec6389db lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0xec742d3a remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0xec8a23c8 fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0xec9eea83 driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xeca979a0 da903x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xecab9178 ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0xecaed1e8 generic_subsys_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0xecc39493 dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0xed34d849 ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL vmlinux 0xed52121a __lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0xed5f760a dm_get_rq_mapinfo
+EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xede168a6 register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xede4f8e2 crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0xee17b35f destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0xee405c1d xenbus_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xee91e00f get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0xeeb7eee5 ata_host_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xeecc614c sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL vmlinux 0xef1a6c40 usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request
+EXPORT_SYMBOL_GPL vmlinux 0xef4c8f74 dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0xef642317 generic_fh_to_parent
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xef6fb629 crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xefa8e35b scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0xefacbb0d kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xefb9035a sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0xefcef991 ata_std_bios_param
+EXPORT_SYMBOL_GPL vmlinux 0xefd76dd1 set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xefe2346d dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL vmlinux 0xf008ac31 crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xf02b8fb9 inotify_rm_wd
+EXPORT_SYMBOL_GPL vmlinux 0xf057d883 device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL vmlinux 0xf07b00b2 ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf0ee5ac2 tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xf152cac6 usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0xf1847fc7 relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0xf1e6a2f8 inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0xf1fe65cb crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf211ee31 ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0xf2a2f814 ata_sff_hsm_move
+EXPORT_SYMBOL_GPL vmlinux 0xf2e0aa50 attribute_container_register
+EXPORT_SYMBOL_GPL vmlinux 0xf2e19c34 driver_find
+EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf395b63e cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL vmlinux 0xf3971964 usb_sg_wait
+EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf3bfe23c xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0xf3dd95d1 inotify_init_watch
+EXPORT_SYMBOL_GPL vmlinux 0xf40ebf65 sysdev_class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xf4614b74 flush_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0xf468998a fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0xf46d4875 regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xf474d34a ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf4a8385f iommu_domain_free
+EXPORT_SYMBOL_GPL vmlinux 0xf4bf626a inode_add_to_lists
+EXPORT_SYMBOL_GPL vmlinux 0xf4c26fb0 usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0xf4f86751 bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0xf5007d93 ata_std_postreset
+EXPORT_SYMBOL_GPL vmlinux 0xf509f6b0 wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0xf518ffb1 blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0xf540c08e relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf5593017 sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xf5838e58 input_ff_create
+EXPORT_SYMBOL_GPL vmlinux 0xf589b247 ata_eh_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf5c286de usb_poison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xf5c2f685 unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0xf5d8ec8e ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0xf5daae96 ip6_sk_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xf613aaaf crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0xf63a37b8 ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id
+EXPORT_SYMBOL_GPL vmlinux 0xf6a15512 pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather
+EXPORT_SYMBOL_GPL vmlinux 0xf70f9e05 acpi_get_pci_dev
+EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xf745d1e6 blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0xf757cbfa regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error
+EXPORT_SYMBOL_GPL vmlinux 0xf7a87a4a platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0xf7b1ae0d __pci_complete_power_transition
+EXPORT_SYMBOL_GPL vmlinux 0xf7befebd ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0xf7e7fa82 get_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf82f4e66 attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0xf849bab8 ata_acpi_gtm
+EXPORT_SYMBOL_GPL vmlinux 0xf85d1a1d crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf868475a print_context_stack_bp
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf8a662de bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0xf8c3b6a2 inotify_dentry_parent_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0xf8d8a6b2 sdio_align_size
+EXPORT_SYMBOL_GPL vmlinux 0xf8e512f8 uhci_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit
+EXPORT_SYMBOL_GPL vmlinux 0xf8fa675c preempt_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0xf90450c2 ata_eh_thaw_port
+EXPORT_SYMBOL_GPL vmlinux 0xf918d43d vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match
+EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw
+EXPORT_SYMBOL_GPL vmlinux 0xf97b6c0c usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0xf97daa62 devres_remove
+EXPORT_SYMBOL_GPL vmlinux 0xf9969710 sdio_memcpy_toio
+EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xf9d66b60 crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0xf9ec75d4 ata_port_pbar_desc
+EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register
+EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0xfa567da9 bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xfa8e78de ring_buffer_resize
+EXPORT_SYMBOL_GPL vmlinux 0xfa9ab765 ata_std_prereset
+EXPORT_SYMBOL_GPL vmlinux 0xfacbe02e apic
+EXPORT_SYMBOL_GPL vmlinux 0xfae71240 ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0xfaf57c68 pci_enable_rom
+EXPORT_SYMBOL_GPL vmlinux 0xfb07f68e __rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb3fbd42 blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xfb48885c tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0xfb6992bb bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0xfb6ef712 ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xfb882fb7 wmi_query_block
+EXPORT_SYMBOL_GPL vmlinux 0xfbd14367 class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xfbea6420 crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfc26285d put_driver
+EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value
+EXPORT_SYMBOL_GPL vmlinux 0xfc9a4e7a ata_do_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0xfca042e1 crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0xfcc4c63e pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xfcfed8d3 device_del
+EXPORT_SYMBOL_GPL vmlinux 0xfd0af180 __get_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xfd35e884 usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref
+EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable
+EXPORT_SYMBOL_GPL vmlinux 0xfda50612 tc35892_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xfdab1f21 dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0xfdc95b18 dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL vmlinux 0xfdd6f87e sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfe4147d6 ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xfe4dfd95 input_ff_upload
+EXPORT_SYMBOL_GPL vmlinux 0xfe501fd7 pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine
+EXPORT_SYMBOL_GPL vmlinux 0xfe72c118 __rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfeaa1bcf dm_region_hash_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xfecc749a xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfeeda928 debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a13c pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0xff094afa kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xff0a7e0a pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0xff18bbdd mm_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback
+EXPORT_SYMBOL_GPL vmlinux 0xff5cfd50 input_class
+EXPORT_SYMBOL_GPL vmlinux 0xff5cffe5 crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0xff6a51d2 led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL vmlinux 0xff969c34 spi_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffd62de8 spi_unregister_master
diff --git a/debian.master/abi/2.6.35-2.3/amd64/generic.modules b/debian.master/abi/2.6.35-2.3/amd64/generic.modules
new file mode 100644
index 00000000000..5756b434ff2
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/amd64/generic.modules
@@ -0,0 +1,2835 @@
+3c359
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+6pack
+8021q
+8139cp
+8139too
+8255
+8390
+88pm860x_bl
+88pm860x_onkey
+88pm860x-ts
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a100u2w
+a3d
+aacraid
+ab3100
+ab3100-otp
+abituguru
+abituguru3
+abyss
+ac97_bus
+acecad
+acenic
+acerhdf
+acer-wmi
+acpi_pad
+acpiphp
+acpiphp_ibm
+acquirewdt
+act200l-sir
+act_gact
+act_ipt
+actisys-sir
+act_mirred
+act_nat
+act_pedit
+act_police
+act_simple
+act_skbedit
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7414
+ad7418
+ad7877
+ad7879
+adcxx
+addi_apci_035
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2016
+addi_apci_2032
+addi_apci_2200
+addi_apci_3001
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+adfs
+adi
+adis16209
+adis16220
+adis16240
+adis16255
+adis16260
+adis16300
+adis16350
+adis16400
+adl_pci6208
+adl_pci7230
+adl_pci7296
+adl_pci7432
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm8211
+adm9240
+adp5520_bl
+adp5520-gpio
+adp5520-keys
+adp5588-gpio
+adp5588-keys
+adp8860_bl
+ads7828
+ads7846
+ads7871
+adt7411
+adt7462
+adt7470
+adt7475
+adutux
+adv7170
+adv7175
+advansys
+advantechwdt
+adv_pci1710
+adv_pci1723
+adv_pci_dio
+aes_generic
+aesni-intel
+aes-x86_64
+af_802154
+af9013
+affs
+af_key
+af-rxrpc
+ah4
+ah6
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aiptek
+aircable
+airo
+airo_cs
+alauda
+ali-ircc
+alim1535_wdt
+alim7101_wdt
+alphatrack
+altera_jtaguart
+altera_ps2
+altera_uart
+ambassador
+amc6821
+amd64_edac_mod
+amd76xrom
+amd8111e
+amd-rng
+amplc_dio200
+amplc_pc236
+amplc_pc263
+amplc_pci224
+amplc_pci230
+analog
+ansi_cprng
+anubis
+aoe
+appledisplay
+applesmc
+appletalk
+appletouch
+applicom
+ar7part
+ar9170usb
+arc4
+arcfb
+arcmsr
+arcnet
+arc-rawmode
+arc-rimi
+ark3116
+arkfb
+arptable_filter
+arp_tables
+arpt_mangle
+asb100
+asc7621
+asix
+asus_atk0110
+asus-laptop
+asus_oled
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+atbm8830
+aten
+ath
+ath3k
+ath5k
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlas_btns
+atm
+atmel
+atmel_cs
+atmel_pci
+atmtcp
+atp
+atp870u
+atxp1
+aty128fb
+atyfb
+au0828
+au8522
+aufs
+authenc
+auth_rpcgss
+autofs
+autofs4
+av5100
+avma1_cs
+avm_cs
+avmfritz
+ax25
+axnet_cs
+b1
+b1dma
+b1pci
+b1pcmcia
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+bas_gigaset
+batman-adv
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcm203x
+bcm3510
+bcm5974
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfs
+bfusb
+binfmt_misc
+block2mtd
+blowfish
+bluecard_cs
+bluetooth
+bnep
+bnx2
+bnx2i
+bnx2x
+bonding
+bpa10x
+bpck
+bpqether
+bq24022
+bq27x00_battery
+br2684
+bridge
+broadsheetfb
+bsd_comp
+bt3c_cs
+bt819
+bt856
+bt866
+bt878
+btcx-risc
+bt_drv
+btmrvl
+btmrvl_sdio
+btrfs
+btsdio
+bttv
+btuart_cs
+btusb
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+BusLogic
+bw-qcam
+c2port-duramar2150
+c4
+c67x00
+cachefiles
+cafe_ccic
+cafe_nand
+caif
+caif_serial
+caif_socket
+camellia
+can
+can-bcm
+can-dev
+can-raw
+capi
+capidrv
+capifs
+capmode
+carminefb
+cassini
+cast5
+cast6
+catc
+cb710
+cb710-mmc
+cb_das16_cs
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcidio
+cb_pcimdas
+cb_pcimdda
+cciss
+ccm
+cdc-acm
+cdc_eem
+cdc_ether
+cdc-phonet
+cdc_subset
+cdc-wdm
+ceph
+cfag12864b
+cfag12864bfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+ch
+ch341
+ch7006
+chipreg
+chnl_net
+cifs
+cirrusfb
+ck804xrom
+classmate-laptop
+clip
+cls_basic
+cls_flow
+cls_fw
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cm4000_cs
+cm4040_cs
+cmtp
+cnic
+cobra
+coda
+com20020
+com20020_cs
+com20020-pci
+com90io
+com90xx
+comedi
+comedi_bond
+comedi_fc
+comedi_parport
+comedi_test
+comm
+compal-laptop
+configfs
+contec_pci_dio
+core
+coretemp
+cp210x
+cpcihp_generic
+cpcihp_zt5550
+cpia
+cpia2
+cpia_pp
+cpia_usb
+cpqarray
+cpu5wdt
+cpuid
+cpu-notifier-error-inject
+c-qcam
+cramfs
+cr_bllcd
+crc32c
+crc32c-intel
+crc7
+crc-ccitt
+crc-itu-t
+crvml
+cryptd
+cryptoloop
+crypto_null
+crystalhd
+cs5345
+cs53l32a
+cs5535-gpio
+ct82c710
+ctr
+cts
+cuse
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx8800
+cx8802
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx88xx
+cxacru
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxt1e1
+cyber2000fb
+cyberjack
+cyclades
+cyclomx
+cycx_drv
+cypress_cy7c63
+cypress_m8
+cytherm
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+dabusb
+DAC960
+daqboard2000
+das08
+das08_cs
+db9
+dc395x
+dca
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dccp_probe
+dcdbas
+de2104x
+de4x5
+de600
+de620
+decnet
+deflate
+defxx
+dell-laptop
+dell-led
+dell_rbu
+dell-wmi
+denali
+des_generic
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dibx000_common
+digi_acceleport
+diskonchip
+display
+divacapi
+divadidd
+diva_idi
+diva_mnt
+divas
+dlci
+dlm
+dm1105
+dm9601
+dm-crypt
+dme1737
+dmfe
+dm-queue-length
+dm-raid45
+dm-service-time
+dmx3191d
+dm-zero
+dnet
+dn_rtmsg
+doc2000
+doc2001
+doc2001plus
+docecc
+docprobe
+dpt_i2o
+drm
+drm_kms_helper
+ds1621
+ds1682
+ds2482
+ds2490
+ds2760_battery
+ds2782_battery
+ds3000
+dsbr100
+dscc4
+dss1_divert
+dst
+dst_ca
+dstr
+dt3000
+dt3155
+dt3155v4l
+dt9812
+dtl1_cs
+dummy
+dummy_hcd
+dv1394
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dw2102
+dvb-usb-friio
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-m920x
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dw_spi_pci
+dynapro
+e100
+e1000
+e1000e
+e752x_edac
+earth-pt1
+eata
+ebt_802_3
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_ulog
+ebt_vlan
+echo
+econet
+edac_core
+edac_mce_amd
+eeepc-laptop
+eeepc-wmi
+eeprom
+eeprom_93cx6
+eeti_ts
+efs
+einj
+elo
+elsa_cs
+em28xx
+em28xx-alsa
+em28xx-dvb
+emc1403
+em_cmp
+emi26
+emi62
+em_meta
+em_nbyte
+empeg
+ems_pci
+ems_usb
+em_text
+emu10k1-gp
+em_u32
+enclosure
+eni
+enic
+epat
+epca
+epia
+epic100
+eql
+esb2rom
+esi-sir
+esp4
+esp6
+et131x
+et61x251
+eth1394
+ethoc
+eurotechwdt
+evbug
+evtchn
+exofs
+exportfs
+f71805f
+f71882fg
+f75375s
+fakephp
+farsync
+fat
+faulty
+fb_ddc
+fb_sys_fops
+fcoe
+fcrypt
+fdomain
+fdomain_cs
+fealnx
+ff-memless
+firedtv
+firestream
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+fit2
+fit3
+floppy
+fm801-gp
+fmvj18x_cs
+fnic
+forcedeth
+fore_200e
+fpu
+freevxfs
+friq
+frpw
+fsam7400
+fscache
+fschmd
+ftdi-elan
+ftdi_sio
+ftl
+fujitsu-laptop
+fujitsu_ts
+funsoft
+g450_pll
+g760a
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+g_audio
+g_cdc
+gcm
+gdth
+generic
+generic_bl
+gen_probe
+g_ether
+gf128mul
+gf2k
+g_ffs
+g_file_storage
+gfs2
+ghash-clmulni-intel
+ghash-generic
+ghes
+g_hid
+gigaset
+girbil-sir
+gl518sm
+gl520sm
+gl620a
+gluebi
+g_mass_storage
+g_midi
+g_nokia
+go7007
+go7007-usb
+gpio-addr-flash
+gpio_keys
+gpio_mouse
+gpio_vbus
+g_printer
+grip
+grip_mp
+gsc_hpdi
+g_serial
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_stk014
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_tv8532
+gspca_vc032x
+gspca_zc3xx
+gtco
+guillemot
+gunze
+g_webcam
+gx1fb
+gxfb
+g_zero
+hamachi
+hampshire
+hangcheck-timer
+hci_uart
+hci_vhci
+hdaps
+hdlc
+hdlc_cisco
+hdlcdrv
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdpvr
+he
+hecubafb
+hed
+hexium_gemini
+hexium_orion
+hfc4s8s_l1
+hfcmulti
+hfcpci
+hfcsusb
+hfc_usb
+hfs
+hfsplus
+hgafb
+hid
+hid-3m-pct
+hid-a4tech
+hid-apple
+hid-belkin
+hid-cando
+hid-cherry
+hid-chicony
+hid-cypress
+hid-drff
+hid-egalax
+hid-ezkey
+hid-gaff
+hid-gyration
+hid-kensington
+hid-kye
+hid-logitech
+hid-magicmouse
+hid-microsoft
+hid-monterey
+hid-mosart
+hid-ntrig
+hid-ortek
+hidp
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-prodikeys
+hid-quanta
+hid-roccat
+hid-roccat-kone
+hid-samsung
+hid-sjoy
+hid-sony
+hid-stantum
+hid-sunplus
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-wacom
+hid-zpff
+hid-zydacron
+hifn_795x
+hisax
+hisax_fcpcipnp
+hisax_isac
+hisax_st5481
+hopper
+horizon
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hp100
+hp4x
+hp_accel
+hpfs
+hpilo
+hpsa
+hptiop
+hp-wmi
+hso
+htc-pasic3
+hv_netvsc
+hv_storvsc
+hv_utils
+hv_vmbus
+hwa-hc
+hwa-rc
+hwmon-vid
+hysdn
+i1480-dfu-usb
+i1480-est
+i1480u-wlp
+i2400m
+i2400m-sdio
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-algo-pcf
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd756-s4882
+i2c-amd8111
+i2c-dev
+i2c-gpio
+i2c-i801
+i2c-isch
+i2c-matroxfb
+i2c-nforce2
+i2c-nforce2-s4985
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-scmi
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-xiic
+i2o_block
+i2o_bus
+i2o_config
+i2o_core
+i2o_proc
+i2o_scsi
+i3000_edac
+i3200_edac
+i5000_edac
+i5100_edac
+i5400_edac
+i5k_amb
+i6300esb
+i7300_idle
+i7core_edac
+i810
+i82092
+i82975x_edac
+i830
+i8k
+i915
+ib700wdt
+ib_addr
+ib_cm
+ib_core
+ib_ipath
+ib_ipoib
+ib_iser
+ib_mad
+ibmaem
+ibmasm
+ibmasr
+ibmcam
+ibmpex
+ib_mthca
+ibmtr_cs
+ib_qib
+ib_sa
+ib_srp
+ib_ucm
+ib_umad
+ib_uverbs
+ichxrom
+icp_multi
+ics932s401
+idmouse
+idt77252
+ieee1394
+ieee802154
+ifb
+iforce
+igb
+igbvf
+iio-trig-gpio
+iio-trig-periodic-rtc
+ii_pci20kc
+ili9320
+imm
+imon
+industrialio
+inexio
+inftl
+initio
+input-polldev
+int51x1
+intel-agp
+intel_idle
+intel_menlow
+intel-rng
+intel_vr_nor
+interact
+ioatdma
+ioc4
+io_edgeport
+io_ti
+iowarrior
+ip2
+ip6_queue
+ip6table_filter
+ip6table_mangle
+ip6table_raw
+ip6_tables
+ip6table_security
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_LOG
+ip6t_mh
+ip6t_REJECT
+ip6t_rt
+ip6_tunnel
+ipaq
+ipcomp
+ipcomp6
+ipddp
+ipg
+ip_gre
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_watchdog
+ip_queue
+ipr
+ips
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+ip_tables
+iptable_security
+ipt_addrtype
+ipt_ah
+ipt_CLUSTERIP
+ipt_ecn
+ipt_ECN
+ipt_LOG
+ipt_MASQUERADE
+ipt_NETMAP
+ipt_REDIRECT
+ipt_REJECT
+ipt_ULOG
+ip_vs
+ip_vs_dh
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_nq
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ipw
+ipw2100
+ipw2200
+ipwireless
+ipx
+ircomm
+ir-common
+ircomm-tty
+ir-core
+irda
+irda-usb
+ir-jvc-decoder
+ir-kbd-i2c
+irlan
+ir-nec-decoder
+irnet
+ir-rc5-decoder
+ir-rc6-decoder
+ir-sony-decoder
+irtty-sir
+ir-usb
+iscsi_ibft
+iscsi_tcp
+iscsi_trgt
+isdn
+isdn_bsdcomp
+isdnhdlc
+isight_firmware
+isl29003
+isl6405
+isl6421
+isl6423
+isofs
+isp116x-hcd
+isp1362-hcd
+isp1760
+istallion
+it87
+it8712f_wdt
+it8761e_gpio
+it87_wdt
+iTCO_vendor_support
+iTCO_wdt
+itd1000
+iuu_phoenix
+ivtv
+ivtvfb
+iw_c2
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwlagn
+iwlcore
+iwmc3200top
+iwmc3200wifi
+ixgb
+ixgbe
+ixgbevf
+ixj
+ixj_pcmcia
+janz-cmodio
+janz-ican3
+janz-ttl
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsm
+k10temp
+k8temp
+kafs
+kaweth
+kb3886_bl
+kbic
+kbtab
+kcomedilib
+ke_counter
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+khazad
+kingsun-sir
+kl5kusb105
+kobil_sct
+konicawc
+ks0108
+ks0127
+ks8842
+ks8851
+ks8851_mll
+ks959-sir
+ksdazzle-sir
+ksz884x
+ktti
+kvaser_pci
+kvm
+kvm-amd
+kvm-intel
+kxsd9
+kyrofb
+l1oip
+l2cap
+l2tp_core
+l2tp_debugfs
+l2tp_ppp
+l440gx
+l4f00242t03
+l64781
+lanai
+lapb
+lapbether
+lcd
+ldusb
+lec
+led-class
+leds-88pm860x
+leds-adp5520
+leds-alix2
+leds-bd2802
+leds-da903x
+leds-dac124s085
+leds-gpio
+leds-lp3944
+leds-lt3593
+leds-mc13783
+leds-net5501
+leds-pca9532
+leds-pca955x
+leds-regulator
+leds-ss4200
+leds-wm831x-status
+leds-wm8350
+ledtrig-backlight
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-timer
+legousbtower
+lgdt3305
+lgdt330x
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libcrc32c
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libosd
+libsas
+libsrp
+lightning
+line6usb
+linear
+lirc_atiusb
+lirc_bt829
+lirc_dev
+lirc_ene0100
+lirc_i2c
+lirc_igorplugusb
+lirc_imon
+lirc_it87
+lirc_ite8709
+lirc_mceusb
+lirc_sasem
+lirc_serial
+lirc_sir
+lirc_streamzap
+lirc_ttusbir
+lis3l02dq
+lis3lv02d
+lis3lv02d_i2c
+litelink-sir
+lkkbd
+llc2
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95241
+lmc
+lms283gf05
+lnbp21
+lockd
+lp
+lp3971
+lpc_sch
+lpddr_cmds
+lpfc
+lrw
+ltc4215
+ltc4245
+ltv350qv
+lxfb
+lzo
+lzo_compress
+m25p80
+m52790
+ma600-sir
+mac80211
+mac80211_hwsim
+machzwd
+macmodes
+macvlan
+magellan
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+matrix_keypad
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_DAC1064
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+matroxfb_Ti3026
+matrox_w1
+max1111
+max1363
+max1586
+max1619
+max17040_battery
+max2165
+max3100
+max6650
+max6875
+max7300
+max7301
+max730x
+max732x
+max7359_keypad
+max8649
+max8660
+max8925_bl
+max8925_onkey
+max8925_power
+max8925-regulator
+mb862xxfb
+mb862xxfb_accel
+mb86a16
+mbp_nvidia_bl
+mc13783-adc
+mc13783-core
+mc13783-regulator
+mc13783_ts
+mc33880
+mc44s803
+mce-inject
+mce-xeon75xx
+mcp2120-sir
+mcp23s08
+mcp251x
+mcs5000_ts
+mcs7780
+mcs7830
+mct_u232
+md4
+mdc800
+mdio
+me4000
+me_daq
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mem2mem_testdev
+memrar
+memstick
+metronomefb
+meye
+mga
+michael_mic
+micrel
+microcode
+microtek
+mii
+minix
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+mite
+mk712
+mkiss
+mlx4_core
+mlx4_en
+mlx4_ib
+mmc_block
+mmc_spi
+mos7720
+mos7840
+moto_modem
+moxa
+mpoa
+mpt2sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+msdos
+msi-laptop
+msi-wmi
+msp3400
+mspro_block
+msr
+mt2060
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt9m001
+mt9m111
+mt9t031
+mt9t112
+mt9v011
+mt9v022
+mtd
+mtd_blkdevs
+mtdblock
+mtdblock_ro
+mtdchar
+mtdconcat
+mtd_dataflash
+mtd_nandecctest
+mtd_oobtest
+mtdoops
+mtd_pagetest
+mtdram
+mtd_readtest
+mtd_speedtest
+mtd_stresstest
+mtd_subpagetest
+mtd_torturetest
+mtouch
+multipath
+mvsas
+mwave
+mwl8k
+mxb
+mxl5005s
+mxl5007t
+mxser
+myri10ge
+n411
+nand
+nand_ecc
+nand_ids
+nandsim
+natsemi
+navman
+nbd
+ncpfs
+ndiswrapper
+ne2k-pci
+neofb
+net1080
+netconsole
+netjet
+netrom
+netsc520
+nettel
+netxen_nic
+newtonkbd
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_ipv4
+nf_conntrack_ipv6
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_proto_dccp
+nf_conntrack_proto_gre
+nf_conntrack_proto_sctp
+nf_conntrack_proto_udplite
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_proto_dccp
+nf_nat_proto_gre
+nf_nat_proto_sctp
+nf_nat_proto_udplite
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nfnetlink
+nfnetlink_log
+nfnetlink_queue
+nfs
+nfs_acl
+nfsd
+nftl
+nf_tproxy_core
+ngene
+n_hdlc
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_daq_700
+ni_daq_dio24
+ni_labpc
+ni_labpc_cs
+nilfs2
+ni_mio_cs
+ni_pcidio
+ni_pcimio
+ni_tio
+ni_tiocmd
+niu
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp437
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+nop-usb-xceiv
+nouveau
+nozomi
+n_r3964
+ns558
+ns83820
+nsc_gpio
+nsc-ircc
+ntfs
+nvidiafb
+nvram
+nxt200x
+nxt6000
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stackglue
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ohci1394
+old_belkin-sir
+olympic
+omfs
+omnibook
+omninet
+on20
+on26
+onenand
+onenand_sim
+opencores-kbd
+oprofile
+opticon
+option
+or51132
+or51211
+orinoco
+orinoco_cs
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+osd
+osdblk
+osst
+oti6858
+output
+ov7670
+ov772x
+ov9640
+ovcamchip
+oxu210hp-hcd
+p4-clockmod
+p54common
+p54pci
+p54spi
+p54usb
+p8023
+padlock-aes
+padlock-sha
+panasonic-laptop
+panel
+paride
+parkbd
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cs5520
+pata_cs5530
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pcmcia
+pata_pdc2027x
+pata_pdc202xx_old
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sc1200
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sl82c105
+pata_triflex
+pata_via
+pbe5
+pc87360
+pc8736x_gpio
+pc87413_wdt
+pc87427
+pca953x
+pcbc
+pcc-cpufreq
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf857x
+pcf8591
+pci
+pci200syn
+pcilynx
+pcips2
+pci-stub
+pcmcia
+pcmcia_core
+pcmciamtd
+pcmcia_rsrc
+pcm_common
+pcnet32
+pcnet_cs
+pcrypt
+pcspkr
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pegasus
+penmount
+pf
+pg
+phantom
+phison
+phonedev
+phonet
+phram
+physmap
+pktgen
+pl2303
+platform_lcd
+plat_nand
+plat-ram
+plip
+plusb
+pluto2
+plx_pci
+pm2fb
+pm3fb
+pm8001
+pmc551
+pmcraid
+pn_pep
+pohmelfs
+poseidon
+powermate
+power_meter
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+pppoatm
+pppoe
+pppox
+ppp_synctty
+pps_core
+pps-ldisc
+prism2_usb
+prism54
+progear_bl
+psmouse
+pt
+pvrusb2
+pwc
+qcaux
+qcserial
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas408
+qnx4
+qt1010
+quatech_daqp_cs
+quatech_usb2
+quickcam_messenger
+quota_tree
+quota_v1
+quota_v2
+r128
+r8169
+r8187se
+r8192e_pci
+r8192se_pci
+r8192s_usb
+r8192u_usb
+r852
+r8a66597-hcd
+radeon
+radeonfb
+radio-gemtek-pci
+radio-i2c-si470x
+radio-maestro
+radio-maxiradio
+radio-mr800
+radio-si4713
+radio-tea5764
+radio-timb
+radio-usb-si470x
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid6test
+raid_class
+ramoops
+ramzswap
+rar_register
+raw
+raw1394
+ray_cs
+rc-adstech-dvb-t-pci
+rc-apac-viewcomp
+rc-asus-pc39
+rc-ati-tv-wonder-hd-600
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avertv-303
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-empty
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv2
+rc-encore-enltv-fm53
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge-new
+rc-imon-mce
+rc-imon-pad
+rc-iodata-bctv7e
+rc-kaiomy
+rc-kworld-315u
+rc-kworld-plus-tv-analog
+rc-manli
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc5-hauppauge-new
+rc-rc5-tv
+rc-real-audio-220-32-keys
+rc-tbs-nec
+rc-terratec-cinergy-xs
+rc-tevii-nec
+rc-tt-1500
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-winfast
+rc-winfast-usbii-deluxe
+rdc321x-gpio
+rdc321x-southbridge
+rdma_cm
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+redboot
+reed_solomon
+reiserfs
+rfc1051
+rfc1201
+rfcomm
+rfd_ftl
+ring_sw
+rio500
+riscom8
+rivafb
+rj54n1cb0c
+rmd128
+rmd160
+rmd256
+rmd320
+rndis_host
+rndis_wlan
+rocket
+romfs
+rose
+rotary_encoder
+rpcsec_gss_krb5
+rpcsec_gss_spkm3
+rrunner
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800pci
+rt2800usb
+rt2860sta
+rt2870sta
+rt2x00lib
+rt2x00pci
+rt2x00usb
+rt61pci
+rt73usb
+rtc-ab3100
+rtc-ab8500
+rtc-bq32k
+rtc-bq4802
+rtc-ds1286
+rtc-ds1305
+rtc-ds1307
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1742
+rtc-ds3234
+rtc-fm3130
+rtc-isl1208
+rtc-m41t80
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max8925
+rtc-mc13783
+rtc-msm6242
+rtc-pcf2123
+rtc-pcf50633
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-stk17ta8
+rtc-test
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtd520
+rtl8150
+rtl8180
+rtl8187
+rxkad
+s1d13xxxfb
+s2250
+s2250-loader
+s2255drv
+s2io
+s3fb
+s526
+s5h1409
+s5h1411
+s5h1420
+s626
+s6e63m0
+saa5246a
+saa5249
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+salsa20_generic
+salsa20-x86_64
+samsung-laptop
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savage
+savagefb
+sb1000
+sbc60xxwdt
+sbc8360
+sbc_epx_c3
+sbc_fitpc2_wdt
+sbc_gxx
+sbni
+sbp2
+sc1200wdt
+sc520cdp
+sc520_wdt
+sc92031
+sca3000
+scb2_flash
+sch311x_wdt
+sch_atm
+sch_cbq
+sch_drr
+sch_dsmark
+sch_gpio
+sch_gred
+sch_hfsc
+sch_htb
+sch_ingress
+sch_multiq
+sch_netem
+sch_prio
+sch_red
+sch_sfq
+sch_tbf
+sch_teql
+sco
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_tgt
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+scsi_wait_scan
+sctp
+sctp_probe
+sdhci
+sdhci-pci
+sdhci-pltfm
+sdio_uart
+sdricoh_cs
+se401
+sedlbauer_cs
+seed
+sep_driver
+seqiv
+ser_gigaset
+serial2002
+serial_cs
+serio_raw
+sermouse
+serpent
+serport
+serqt_usb2
+ses
+sfc
+sha1_generic
+sha256_generic
+sha512_generic
+shpchp
+sht15
+si21xx
+si4713-i2c
+sidewinder
+siemens_mpi
+sierra
+sierra_net
+sir-dev
+sis
+sis190
+sis5595
+sis900
+sis-agp
+sisfb
+sisusbvga
+sit
+sja1000
+sja1000_platform
+skel
+skfp
+skge
+sky2
+sl811_cs
+sl811-hcd
+slicoss
+slip
+slram
+sm501
+sm501fb
+sm7xx
+smbfs
+smc91c92_cs
+sm_common
+smsc37b787_wdt
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc9420
+smsc95xx
+smsc-ircc2
+smsdvb
+smsmdtv
+smssdio
+smsusb
+sn9c102
+snd
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-als300
+snd-als4000
+snd-asihpi
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-cs5530
+snd-cs5535audio
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-atihdmi
+snd-hda-codec-ca0110
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-idt
+snd-hda-codec-intelhdmi
+snd-hda-codec-nvhdmi
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hifier
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel8x0
+snd-intel8x0m
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxygen
+snd-oxygen-lib
+snd-page-alloc
+snd-pcm
+snd-pcsp
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-sb16-dsp
+snd-sb-common
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ad1836
+snd-soc-ad193x
+snd-soc-ad73311
+snd-soc-ads117x
+snd-soc-ak4104
+snd-soc-ak4535
+snd-soc-ak4642
+snd-soc-ak4671
+snd-soc-core
+snd-soc-cs4270
+snd-soc-da7210
+snd-soc-l3
+snd-soc-max9877
+snd-soc-pcm3008
+snd-soc-spdif
+snd-soc-ssm2602
+snd-soc-tlv320aic23
+snd-soc-tlv320aic26
+snd-soc-tlv320aic3x
+snd-soc-tlv320dac33
+snd-soc-tpa6130a2
+snd-soc-twl4030
+snd-soc-twl6040
+snd-soc-uda134x
+snd-soc-uda1380
+snd-soc-wm2000
+snd-soc-wm8350
+snd-soc-wm8400
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8727
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8776
+snd-soc-wm8900
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8940
+snd-soc-wm8955
+snd-soc-wm8960
+snd-soc-wm8961
+snd-soc-wm8971
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8988
+snd-soc-wm8990
+snd-soc-wm8993
+snd-soc-wm8994
+snd-soc-wm9081
+snd-soc-wm9090
+snd-soc-wm-hubs
+snd-sonicvibes
+snd-tea575x-tuner
+snd-timer
+snd-trident
+snd-usb-audio
+snd-usb-caiaq
+snd-usbmidi-lib
+snd-usb-us122l
+snd-usb-usx2y
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx222
+snd-vx-lib
+snd-vxpocket
+snd-ymfpci
+soc_camera
+soc_camera_platform
+soc_mediabus
+softdog
+solos-pci
+sony-laptop
+soundcore
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+specialix
+spectrum_cs
+speedfax
+speedstep-lib
+speedtch
+spi_bitbang
+spi_butterfly
+spidev
+spi_gpio
+spi_lm70llp
+squashfs
+ssb
+ssfdc
+sst25l
+sstfb
+ssv_dnp
+st
+stallion
+starfire
+stb0899
+stb6000
+stb6100
+st_drv
+stex
+stinger
+stir4200
+stkwebcam
+stowaway
+stp
+stradis
+stv0288
+stv0297
+stv0299
+stv0900
+stv090x
+stv6110
+stv6110x
+stv680
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+svcrdma
+svgalib
+sx8
+sym53c500_cs
+sym53c8xx
+symbolserial
+synaptics_i2c
+synclink
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+tca6416-keypad
+tcp_bic
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_probe
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcrypt
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10086
+tda18271
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tdfx
+tdfxfb
+tdo24m
+tea
+tea5761
+tea5767
+tea6415c
+tea6420
+tef6862
+tehuti
+tekram-sir
+teles_cs
+test_power
+tg3
+tgr192
+thinkpad_acpi
+thmc50
+ti_dac7512
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timb_dma
+timberdale
+timbuart
+timeriomem-rng
+tipc
+ti_usb_3410_5052
+tlan
+tlclk
+tle62x0
+tm6000
+tm6000-alsa
+tmdc
+tmiofb
+tmp102
+tmp401
+tmp421
+tms380tr
+tmscsim
+tmspci
+toim3232-sir
+topstar-laptop
+toshiba_acpi
+toshiba_bluetooth
+touchit213
+touchright
+touchwin
+tpm
+tpm_atmel
+tpm_bios
+tpm_infineon
+tpm_nsc
+tpm_tis
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+trancevibrator
+tranzport
+tridentfb
+ts5500_flash
+ts_bm
+tsc2007
+ts_fsm
+ts_kmp
+tsl2550
+tsl2563
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+tua6100
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp5150
+tw9910
+twidjoy
+twl4030-gpio
+twl4030_keypad
+twl4030-pwrbutton
+twl4030-usb
+twl4030-vibra
+twl4030_wdt
+twofish
+twofish_common
+twofish-x86_64
+typhoon
+u132-hcd
+uartlite
+ubi
+ubifs
+ucb1400_core
+ucb1400_ts
+udf
+udlfb
+ueagle-atm
+ufs
+uinput
+uio
+uio_aec
+uio_cif
+uio_netx
+uio_pci_generic
+uio_pdrv
+uio_pdrv_genirq
+uio_sercos3
+uli526x
+ultracam
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-sddr09
+ums-sddr55
+ums-usbat
+unioxx5
+upd64031a
+upd64083
+uPD98402
+usb8xxx
+usbatm
+usb_debug
+usbdux
+usbduxfast
+usb_gigaset
+usbhid
+usbip
+usbip_common_mod
+usblcd
+usbled
+usblp
+usbnet
+usbserial
+usbsevseg
+usb-storage
+usbtest
+usbtmc
+usbtouchscreen
+usbvideo
+usbvision
+usb_wwan
+userspace-consumer
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l1-compat
+v4l2-common
+v4l2-compat-ioctl32
+v4l2-int-device
+v4l2-mem2mem
+vcan
+ves1820
+ves1x93
+vesafb
+veth
+vfat
+vga16fb
+vgastate
+vgg2432a4
+vhci-hcd
+vhost_net
+via
+via686a
+via-agp
+via-cputemp
+viafb
+via-ircc
+via-rhine
+via-rng
+via-sdmmc
+via-velocity
+vicam
+video
+video1394
+videobuf-core
+videobuf-dma-contig
+videobuf-dma-sg
+videobuf-dvb
+videobuf-vmalloc
+videocodec
+videodev
+virtio
+virtio_balloon
+virtio_blk
+virtio_console
+virtio_net
+virtio_pci
+virtio_ring
+virtio-rng
+virtual
+visor
+vivopay-serial
+vlsi_ir
+vmac
+vme
+vme_ca91cx42
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmlfb
+vmwgfx
+vmw_pvscsi
+vmxnet3
+vp27smpx
+vpx3220
+vsxxxaa
+vt1211
+vt6656_stage
+vt8231
+vt8623fb
+vxge
+w1_bq27000
+w1_ds2431
+w1_ds2433
+w1_ds2760
+w1-gpio
+w1_smem
+w1_therm
+w35und
+w6692
+w83627ehf
+w83627hf
+w83627hf_wdt
+w83697hf_wdt
+w83697ug_wdt
+w83781d
+w83791d
+w83792d
+w83793
+w83877f_wdt
+w83977af_ir
+w83977f_wdt
+w83l785ts
+w83l786ng
+w9966
+w9968cf
+wacom
+wacom_w8001
+wafer5823wdt
+walkera0701
+wanrouter
+wanxl
+warrior
+wbsd
+wdt_pci
+whci
+whci-hcd
+whc-rc
+whiteheat
+wimax
+winbond-840
+winbond-cir
+wire
+wis-ov7640
+wis-saa7113
+wis-saa7115
+wis-sony-tuner
+wis-tw2804
+wis-tw9903
+wis-uda1342
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1271
+wl1271_spi
+wl3501_cs
+wlags49_h25_cs
+wlags49_h2_cs
+wlp
+wm831x_backup
+wm831x_bl
+wm831x-dcdc
+wm831x-gpio
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x_power
+wm831x_wdt
+wm8350-gpiolib
+wm8350-hwmon
+wm8350_power
+wm8350-regulator
+wm8350_wdt
+wm8400-core
+wm8400-regulator
+wm8739
+wm8775
+wm8994-gpio
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusbcore
+wusb-wa
+x25
+x25_asy
+x38_edac
+xc5000
+xcbc
+xen-blkfront
+xen-fbfront
+xenfs
+xen-kbdfront
+xen-netfront
+xfrm4_mode_beet
+xfrm4_mode_transport
+xfrm4_mode_tunnel
+xfrm4_tunnel
+xfrm6_mode_beet
+xfrm6_mode_ro
+xfrm6_mode_transport
+xfrm6_mode_tunnel
+xfrm6_tunnel
+xfrm_ipcomp
+xfrm_user
+xfs
+xgifb
+xhci-hcd
+xirc2ps_cs
+xircom_cb
+xor
+xpad
+xprtrdma
+x_tables
+xt_CLASSIFY
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlimit
+xt_connmark
+xt_CONNSECMARK
+xt_conntrack
+xt_CT
+xt_dccp
+xt_dscp
+xt_DSCP
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_HL
+xt_iprange
+xtkbd
+xt_LED
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_NFLOG
+xt_NFQUEUE
+xt_NOTRACK
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_RATEEST
+xt_realm
+xt_recent
+xts
+xt_sctp
+xt_SECMARK
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_TCPMSS
+xt_tcpudp
+xt_TEE
+xt_time
+xt_TPROXY
+xt_TRACE
+xt_u32
+xusbatm
+xvmalloc
+yam
+yealink
+yellowfin
+yenta_socket
+zatm
+zaurus
+zc0301
+zd1201
+zd1211rw
+zhenhua
+zio
+zl10036
+zl10039
+zl10353
+zlib
+zlib_deflate
+zr36016
+zr36050
+zr36060
+zr36067
+zr364xx
diff --git a/debian.master/abi/2.6.35-2.3/amd64/server b/debian.master/abi/2.6.35-2.3/amd64/server
new file mode 100644
index 00000000000..5aabd76a778
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/amd64/server
@@ -0,0 +1,11120 @@
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x3cc05473 kvm_read_guest_atomic
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x8ea74400 kvm_cpu_has_pending_timer
+EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble
+EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle
+EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k
+EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks
+EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister
+EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register
+EXPORT_SYMBOL drivers/acpi/video 0xc1be2a90 acpi_video_get_edid
+EXPORT_SYMBOL drivers/atm/suni 0xc9577f4d suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0x2a6bc271 uPD98402_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x0b2e058e pi_write_block
+EXPORT_SYMBOL drivers/block/paride/paride 0x0f4ec8a7 pi_release
+EXPORT_SYMBOL drivers/block/paride/paride 0x2e763837 pi_do_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x4444c89f paride_unregister
+EXPORT_SYMBOL drivers/block/paride/paride 0x4a3c1e65 pi_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x56548d79 pi_schedule_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x68f5d963 pi_write_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0x6ec3d899 pi_read_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0xb87ba38f paride_register
+EXPORT_SYMBOL drivers/block/paride/paride 0xd80d2d35 pi_connect
+EXPORT_SYMBOL drivers/block/paride/paride 0xef128708 pi_read_block
+EXPORT_SYMBOL drivers/block/paride/paride 0xf5428b48 pi_disconnect
+EXPORT_SYMBOL drivers/char/agp/intel-agp 0x7b9a6116 intel_agp_enabled
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0419dc0f ipmi_create_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0b413927 ipmi_poll_interface
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x296ba089 ipmi_request_settime
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x32ac91d1 ipmi_free_recv_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x37b38645 ipmi_unregister_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x48cd760f ipmi_get_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4fadef5c ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x549c2047 ipmi_unregister_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x57116afe ipmi_get_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x71904a40 ipmi_smi_watcher_register
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x75e0eb45 ipmi_set_gets_events
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x89abf000 ipmi_register_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8e2f591a ipmi_set_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa66878c3 ipmi_get_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb25ffc7b ipmi_smi_add_proc_entry
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb3e4e879 ipmi_get_version
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc6b00bf0 ipmi_set_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcbd8a825 ipmi_smi_msg_received
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd4cdb8bd ipmi_request_supply_msgs
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdc1d2cba ipmi_smi_watcher_unregister
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe28d6ce0 ipmi_set_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe29e2af9 ipmi_register_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xffcb68c7 ipmi_destroy_user
+EXPORT_SYMBOL drivers/char/nsc_gpio 0x2aeebbe9 nsc_gpio_write
+EXPORT_SYMBOL drivers/char/nsc_gpio 0xcd57cf8c nsc_gpio_read
+EXPORT_SYMBOL drivers/char/nsc_gpio 0xf377b35b nsc_gpio_dump
+EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte
+EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte
+EXPORT_SYMBOL drivers/edac/edac_core 0x3f96e302 edac_mc_find
+EXPORT_SYMBOL drivers/edac/edac_core 0x4e62dea3 edac_mc_handle_fbd_ce
+EXPORT_SYMBOL drivers/edac/edac_core 0x8c872438 edac_mc_handle_fbd_ue
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x0711927d fw_iso_context_queue
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x1c98f0e9 fw_core_handle_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x1eae8202 fw_send_request
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x24059546 fw_core_handle_bus_reset
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x352b60de fw_iso_context_create
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x36d49da4 fw_run_transaction
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x453a940f fw_csr_string
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x49a29946 fw_core_remove_descriptor
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x4a4be620 fw_core_remove_address_handler
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e86dd83 fw_core_add_descriptor
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x676e3934 fw_device_enable_phys_dma
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x7f488b55 fw_bus_type
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fb363c6 fw_cancel_transaction
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x8003626d fw_send_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x835c68ae fw_core_handle_request
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x8d71122f fw_iso_buffer_destroy
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x915d41b6 fw_core_remove_card
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xa0c7d081 fw_iso_context_destroy
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xa49be86c fw_core_initiate_bus_reset
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xab16f3b9 fw_fill_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xcc43569a fw_card_add
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xdf5ec473 fw_card_initialize
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xe8bbd8ed fw_iso_context_stop
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xeb78bc92 fw_core_add_address_handler
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xf34c858d fw_iso_buffer_init
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xf5503e51 fw_iso_context_start
+EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x03060d15 drm_mode_config_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x05515d67 drm_clflush_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x065db90c drm_agp_unbind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x078de204 drm_cvt_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e4a79da drm_getsarea
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d13802 drm_mm_search_free_in_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12d82c67 drm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x164004cc drm_agp_bind_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x17615291 drm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1999c0f9 drm_core_ioremap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a2a03aa drm_agp_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b01260a drm_mode_validate_clocks
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1cf73dd6 drm_i2c_encoder_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d15b23e drm_mode_connector_detach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f135d82 drm_agp_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f635f0c drm_addbufs_pci
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x22a3b010 drm_gem_vm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x23e0b826 drm_i2c_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x253bf34a drm_get_resource_len
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x298dd35a drm_irq_install
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cf852b5 drm_get_connector_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x31ba0744 drm_poll
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x329a69ef drm_mode_duplicate
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x33db1b67 drm_encoder_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3499457a drm_debugfs_remove_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x35155dbc drm_put_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x360e03fb drm_mode_create_dithering_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x365b7e7b drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ba3872d drm_unbind_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e32e584 drm_core_reclaim_buffers
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x41ac0a26 drm_agp_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43a4a71a drm_mode_object_find
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x47226352 drm_mode_connector_list_update
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x47bcbaf5 drm_mm_pre_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831d2c2 drm_mm_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x484dbb12 drm_rmmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a97bad4 drm_connector_property_set_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5373e655 drm_ati_pcigart_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5441ddb5 drm_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x570c5ccd drm_mode_find_dmt
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x57738559 drm_mode_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x59c2678e drm_master_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c0c096c drm_gem_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c4d4a18 drm_read
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5cfb9fb3 drm_addbufs_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d79fa14 drm_get_resource_start
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5de8e4cf drm_idlelock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e46bed7 drm_mode_prune_invalid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x61b798f2 drm_agp_acquire
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x642b4a29 drm_gem_handle_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6745b654 drm_sg_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a09ae5a drm_get_drawable_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d237c2b drm_gem_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fd119f0 drm_gem_object_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ff0c9dd drm_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x722ec4f5 drm_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x74d51128 drm_property_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x75599b00 drm_mode_create_tv_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x77bab6bb drm_add_edid_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x780c33f3 drm_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x780c4294 drm_sysfs_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x78b1b649 drm_mm_dump_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a36d30f drm_master_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b2f32e7 drm_idlelock_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d7a7204 drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f419695 drm_mode_connector_update_edid_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fc4233a drm_mode_config_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x82ade3f2 drm_mode_connector_attach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8895d30f drm_core_ioremap_wc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8cec68e3 drm_vblank_post_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ced24c4 drm_compat_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d22c4b3 drm_vblank_off
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dbfa843 drm_connector_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dea0dc4 drm_gtf_mode_complex
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x901289ce drm_pci_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9038f72d drm_gem_vm_close
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x95ebd7c0 drm_gem_object_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9911b8c9 drm_gtf_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9984a5e8 drm_agp_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x99f897a0 drm_get_encoder_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a633faa drm_sysfs_connector_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b24716f drm_connector_property_get_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d685e82 drm_mode_attachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fcc026c drm_get_edid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa350a48e drm_vblank_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3e168e1 drm_core_ioremapfree
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4e8183c drm_ati_pcigart_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa7b8cee drm_core_get_reg_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xab435dce drm_vblank_pre_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xac155c05 drm_free_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xad94f73a drm_framebuffer_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xadea5073 drm_mode_create_dirty_info_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xafa0c6be drm_mode_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xafccca01 drm_crtc_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4af0ea7 drm_i_have_hw_lock
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4eec16a drm_pci_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb65a38a5 drm_mode_validate_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6daf88c drm_crtc_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8ab1db2 drm_mode_detachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xba32c010 drm_handle_vblank
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xba89fd71 drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe1a25bd drm_rmmap_locked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc398acd3 drm_gem_object_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc47330cf drm_property_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc59a81fe drm_irq_uninstall
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6be4d0d drm_vblank_count
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7a7e287 drm_mode_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb043a38 drm_connector_attach_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcde8c0aa drm_vblank_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfcdd2da drm_framebuffer_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd42032dc drm_exit
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd631634a drm_lock_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8ded725 drm_lock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd92f6d0d drm_agp_bind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc20bde3 drm_addmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcc37afb drm_vblank_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd9f5e39 drm_mode_probed_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf55d4e5 drm_add_modes_noedid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1bd483a drm_agp_chipset_flush
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5ea87a7 drm_sysfs_connector_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe87ae3fc drm_mm_get_block_range_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xee0e4932 drm_vblank_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf081cda7 drm_agp_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf59a2472 drm_connector_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb5aa4bf drm_debugfs_create_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdcfc342 drm_fasync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe1e45dc drm_get_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0e15b9a4 drm_fb_helper_single_fb_probe
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x161f665d drm_kms_helper_poll_disable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x298760e3 drm_crtc_helper_set_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2a34c3ff drm_kms_helper_poll_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3ccd1099 drm_fb_helper_single_add_all_connectors
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f0c68ff drm_fb_helper_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f5e8837 drm_helper_crtc_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x416cb12d drm_fb_helper_fill_fix
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4724bac5 drm_fb_helper_check_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4aea053b drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4e992a23 i2c_dp_aux_add_bus
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5ca46a08 drm_fb_helper_initial_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6ba7ee0a drm_helper_encoder_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x71e9dddb drm_fb_helper_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x74e1cf75 drm_fb_helper_pan_display
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ad2c6cd drm_fb_helper_setcmap
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x80d3054c drm_fb_helper_fill_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x87ea2f35 drm_fb_helper_set_par
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x914fe02e drm_kms_helper_poll_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91c54573 drm_helper_connector_dpms
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9a501a26 drm_kms_helper_poll_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa333d262 drm_fb_helper_blank
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa68994cb drm_helper_disable_unused_functions
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc0f36eb2 drm_crtc_helper_set_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2a68beb drm_fb_helper_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc5d01750 drm_helper_resume_force_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdf2da013 drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe83d3907 drm_helper_hpd_irq_event
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0616cbd3 ttm_agp_backend_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0abd9acf ttm_bo_unreserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x15673d31 ttm_bo_wait
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x194acacf ttm_bo_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x19db9d0f ttm_ref_object_add
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2f630249 ttm_bo_reserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3175fd0c ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3b72b608 ttm_tt_populate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c46ee8d ttm_bo_move_ttm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4259fca5 ttm_bo_unmap_virtual
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x436e68b9 ttm_bo_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44409a13 ttm_global_item_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x46c2a52d ttm_bo_mem_space
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4884e26b ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x565f9b8d ttm_bo_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x58d32f9e ttm_bo_kunmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a22298f ttm_bo_evict_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ab24179 ttm_base_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ca5cb47 ttm_global_item_ref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5d089b64 ttm_bo_clean_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x60634c5e ttm_bo_swapout_all
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7141dccc ttm_ref_object_base_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d68e7ba ttm_bo_move_memcpy
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d902cc7 ttm_tt_bind
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x81adfdf2 ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88e4ab0e ttm_object_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x890fc111 ttm_mem_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x96ab0a3f ttm_mem_global_alloc
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98b7a72b ttm_write_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cad9496 ttm_vt_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa8b5d995 ttm_bo_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa9afeb53 ttm_bo_wait_unreserved
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab0fda6c ttm_base_object_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xabc1c9b1 ttm_mem_global_free
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac6bfb4d ttm_tt_set_placement_caching
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb5dcff45 ttm_bo_wait_cpu
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc106ed4d ttm_bo_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc64022a6 ttm_bo_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc82403d9 ttm_bo_init_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd778e032 ttm_object_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9a074fd ttm_bo_validate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd7920f6 ttm_object_file_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xde444a68 ttm_fbdev_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdf2ffea1 ttm_page_alloc_debugfs
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe21f18a4 ttm_mem_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe2876bd8 ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6652d73 ttm_base_object_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf5d7c0d4 ttm_bo_kmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa3286bf ttm_bo_synccpu_write_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa696d55 ttm_object_file_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfcce372b ttm_bo_global_release
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x55dca775 i2c_bit_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x85407567 i2c_bit_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x4295f8aa i2c_pca_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xf7f8ec1c i2c_pca_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x55af1808 i2c_pcf_add_bus
+EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x4eed36dd amd756_smbus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x019be0d7 dma_region_mmap
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x036d2cdc hpsb_make_readpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0376c4ed hpsb_destroy_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0716ea23 hpsb_iso_recv_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0a2388b2 hpsb_unregister_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0d2addcd hpsb_node_fill_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1176b43e hpsb_free_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x155defcd hpsb_packet_success
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x16a67954 hpsb_selfid_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x193d4b3e csr1212_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1ae3d9e2 hpsb_register_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x43ed9a16 hpsb_create_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4415795e hpsb_iso_recv_set_channel_mask
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x46606e98 hpsb_unregister_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x46e0fe92 hpsb_get_hostinfo_bykey
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4a93788c hpsb_iso_recv_listen_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4df688c4 hpsb_update_config_rom_image
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4f16ebee hpsb_set_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4fc22921 hpsb_make_writepacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x518d4100 csr1212_get_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x51a0359f hpsb_selfid_complete
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5818aac7 hpsb_iso_stop
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5837a003 hpsb_iso_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x65199d3b hpsb_iso_wake
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6ec2328f hpsb_protocol_class
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6fddd172 __hpsb_register_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x70c2c531 hpsb_iso_xmit_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x72559abd hpsb_iso_recv_release_packets
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x78138a03 hpsb_lock
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7e6df643 hpsb_iso_recv_flush
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x85c8160b hpsb_iso_xmit_sync
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8f16143b hpsb_allocate_and_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x92253bcf hpsb_node_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x99af4b3e hpsb_make_lock64packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9ac8ba02 hpsb_make_streampacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9b007e94 hpsb_read_cycle_timer
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9b06eaf9 hpsb_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa51feed7 hpsb_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa5a6cb3a hpsb_alloc_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa6032cf5 hpsb_add_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa60a4b70 hpsb_iso_xmit_queue_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa65ec9e4 hpsb_get_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8298da2 hpsb_bus_reset
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xabbb7285 hpsb_unregister_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xada49db9 hpsb_iso_recv_unlisten_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb1c754ca hpsb_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb529302d hpsb_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb5573cee hpsb_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb5daf8a4 hpsb_free_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb7be1732 hpsb_iso_xmit_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbae5da18 hpsb_resume_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc2fdf529 hpsb_iso_shutdown
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc3b01f95 hpsb_iso_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc5bbd16d hpsb_iso_recv_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc84e33cf hpsb_iso_n_ready
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcded561e hpsb_send_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd03637f9 hpsb_make_phypacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd6b74ade hpsb_set_packet_complete_task
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd6ff4965 hpsb_alloc_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd9751670 hpsb_remove_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xed8b28d2 hpsb_reset_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xeea48e68 hpsb_make_lockpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf3aa683e hpsb_set_hostinfo_key
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf425d433 hpsb_update_config_rom
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf9248f72 hpsb_get_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x5ca1340a ohci1394_stop_context
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x7d46a599 ohci1394_unregister_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x918d743f ohci1394_register_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x29cbd5fe rdma_addr_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc3f84f9d rdma_copy_addr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1932fb44 ib_send_cm_mra
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1abe5f8f ib_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1d5ad3cf ib_cm_notify
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1faa1c52 ib_send_cm_rtu
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4e293782 ib_send_cm_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6abd1c0e ib_send_cm_apr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6e7ddcea ib_send_cm_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x711bfc70 ib_send_cm_drep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x80875ebf ib_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x84b9788d ib_send_cm_lap
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa24f48c1 ib_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa259a35f ib_send_cm_sidr_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa27ef6fd ib_send_cm_sidr_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa8aef66a ib_send_cm_dreq
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbb3934a8 ib_send_cm_rej
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcf967ec3 ib_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf952cfdb cm_class
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00ae53e3 ib_modify_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01d72fcc ib_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x060de8f4 ib_find_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09a93d5c ib_destroy_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e7c5019 ib_destroy_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1616deb8 ib_rereg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b35ccca ib_alloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2052da71 ib_find_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26507ef7 ib_query_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2baef333 ib_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2da037ef ib_fmr_pool_map_phys
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f4af5b1 ib_query_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30ff6f5d ib_get_dma_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3247343f ib_modify_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x32893070 ib_detach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a48410b ib_query_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a80c918 ib_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3d94743f ib_dealloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f764291 ib_query_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x429d9e60 ib_query_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x47598450 ib_query_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4796f465 ib_alloc_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x490624ed ib_query_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c23339f ib_alloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4cbdb8e6 ib_reg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5538f806 ib_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x587ae892 ib_alloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61957ccf ib_modify_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x627e8898 ib_create_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x628ceb27 ib_dealloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69ae9fe5 ib_set_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69f965ac ib_flush_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6a752f85 ib_create_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6cfbfad6 ib_free_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6db2936b ib_register_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x721031b7 ib_init_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78dbc835 ib_get_cached_lmc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f8dc924 ib_modify_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x88dea750 ib_dereg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f985885 ib_create_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x92953ba5 ib_umem_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9b0f3307 ib_dealloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9eaac7a2 ib_dealloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa9851a77 ib_umem_page_count
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa074a0a ib_find_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb5ff61a7 ib_destroy_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb950938e ib_unregister_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbae5a0ee ib_get_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbb6bef9e ib_umem_release
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc74f1e08 ib_attach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd030d968 ib_unregister_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6b8833a ib_get_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd75eef27 ib_modify_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8384738 ib_query_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd9a423ee ib_dispatch_event
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdb967a78 ib_modify_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd0621aa ib_destroy_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xded464f5 ib_register_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdfd093d7 ib_resize_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe4240677 ib_get_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8fcd356 ib_create_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf11e2bdf ib_find_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf3ffa559 ib_alloc_fast_reg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf93ea018 ib_alloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfdc51895 ib_fmr_pool_unmap
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff1f7a0a ib_create_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1d982a77 ib_register_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2a24f550 ib_modify_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x38fdd4f0 ib_post_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4ac4ff3f ib_free_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7638cf37 ib_redirect_mad_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x90752f4e ib_process_mad_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x95841eb1 ib_get_rmpp_segment
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9794fbef ib_unregister_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xace7b15e ib_create_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc7c19633 ib_free_recv_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd65f81f5 ib_cancel_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xeda18a3d ib_register_mad_snoop
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x65d4ac9a ib_sa_service_rec_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6bb1dd69 ib_sa_cancel_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7c8e6a68 ib_init_ah_from_mcmember
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x90275d1a ib_sa_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa1cbddd7 ib_init_ah_from_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd4e2da74 ib_sa_get_mcmember_rec
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xfb6b04f6 ib_sa_path_rec_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x32180807 iw_cm_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3cea9200 iw_cm_connect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x42c9cc72 iw_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x53df8f53 iw_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6829ac33 iw_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8b973732 iw_cm_reject
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x96e8cb2c iw_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xea157569 iw_cm_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x05a8f0ca rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x12effbb3 rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2d896dc4 rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x30a56bac rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x339ab3de rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3697c7be rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x430c0874 rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x496babf8 rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6f0fa717 rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7e193ebe rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x827f1ef2 rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8a70ea85 rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9a805aea rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xac91ef1c rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdc5441d7 rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdf48073b rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xec0f82ee rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf681d02b rdma_resolve_route
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x169ac55f gameport_close
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x2df4f8f4 __gameport_register_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x4c885840 gameport_stop_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x5c82990a gameport_set_phys
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x8e94513d gameport_open
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xa2f3b25c __gameport_register_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xdb84e59d gameport_unregister_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xeec82f60 gameport_start_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xf3aac966 gameport_unregister_driver
+EXPORT_SYMBOL drivers/input/input-polldev 0x39453dc9 input_free_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x690eb020 input_unregister_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x9453d077 input_allocate_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xa4b7ff6f input_register_polled_device
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x17321f15 ad714x_disable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x4c7e38c4 ad714x_probe
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x7000b5b3 ad714x_remove
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xb86d0fc3 ad714x_enable
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x05318b05 sparse_keymap_free
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x34d52fdd sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x39be2aaf sparse_keymap_report_entry
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xa899b4ff sparse_keymap_setup
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xd23282ae sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xe64e6b16 sparse_keymap_report_event
+EXPORT_SYMBOL drivers/isdn/capi/capifs 0x64c3fb95 capifs_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/capifs 0xec1c7749 capifs_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2268db8c capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2df05ad3 detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x36de5e29 capi20_put_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47dbfa0a capi_message2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5ddb82db capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6581a736 capi20_register
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6f027f1d capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x777154ee attach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x877946ca capi_ctr_down
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8e9489f2 capi_ctr_suspend_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f5bbe6f capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0f4e1d66 b1_loaded
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1645f835 avmcard_dma_free
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2748da3d b1_load_t4file
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3a149cbe b1_load_config
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4a9a7c9e b1_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x58d1f58e b1_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x608ad961 b1ctl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x79c52f7d b1_alloc_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9e1ed11a b1_getrevision
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xad03fcd3 b1_parse_version
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd3d4af31 b1_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdab177c4 avmcard_dma_alloc
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe9de2e0f b1_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xefeb6ec1 b1_free_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf029cc4f b1_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1112336c b1dmactl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2b467a46 b1dma_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4e294461 b1dma_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4eea9ecd b1dma_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4f90ead7 b1dma_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x5c9806bb b1pciv4_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x65429fe7 b1dma_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xaa355ab5 b1dma_reset
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xece2cd86 t1pci_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1
+EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x183c42c3 proc_net_eicon
+EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x26263dfc mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x47652a6c mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xcc6102ea mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xe89bb5e9 mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x140972cb mISDNisar_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x69c19b46 mISDNisar_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x427ea441 FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x602d5ee2 hisax_init_pcmcia
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa9a1ee40 FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb4870f64 FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x5115efc0 isac_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x553e5c45 isacsx_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x6d973bae isac_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf4631012 isac_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf794f93e isacsx_irq
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xc10c66a7 register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xcb6351db isdn_ppp_unregister_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xddf31ff3 isdn_ppp_register_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0b1cbf83 mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x12015839 recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2423a303 get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x32b944f5 confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x43156d72 create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4326fbb0 mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4f65dc40 mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x58928f74 recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5ea22d76 bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x66b3743b mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7c5f901a mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x97801448 recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9a7e293b queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa85a30b9 dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xaf906e98 get_next_dframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb7dc706a recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbcd5a143 mISDN_freedchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbdb4c212 mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc9911755 recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd0acd3ff l1_event
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe3f81034 mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfae5cec4 mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register
+EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul
+EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp
+EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv
+EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page
+EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x24d946eb ir_raw_handler_register
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x3d07cea5 ir_raw_handler_unregister
+EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x249a6aa7 max2165_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x47a9a00f mc44s803_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xe92d68cc mt2060_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x5995a255 mt2131_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x5fa5d9c9 mt2266_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xcfc96fdd mxl5005s_attach
+EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xfd12f86e qt1010_attach
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x1b0d6114 xc2028_attach
+EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x962dd205 xc5000_attach
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0d978f4a flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1775a781 flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2b2c6109 flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2bf31281 flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x32ede168 flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3a07f085 flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x599808e1 flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5b153022 flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5de62e67 flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6692c90b flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6e3fa3d8 flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x81b2542d flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x88643de1 flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8ccaf076 flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9928ac40 flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbd6be7e4 flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdfb05baf flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe70d8096 flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xec274779 flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf9b81e6d flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x048b8744 bt878_device_control
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x209e5d08 bt878_start
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x3c8f59cc bt878
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x92dcb3fd bt878_stop
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0024346e write_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x178746f7 dst_error_recovery
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x209ad87f dst_attach
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4fb55eb1 rdc_reset_state
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5898929d dst_comm_init
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x64ce21d4 dst_error_bailout
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x72ea0cbd dst_pio_disable
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x9d96e2e4 dst_wait_dst_ready
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xdc75a770 read_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xf3e29f40 dst_ca_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0f39fda6 dvb_unregister_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1d288c5a dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2f7bdd06 dvb_ringbuffer_free
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31dab179 dvb_dmx_swfilter_packets
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x373b1b77 dvb_ringbuffer_read_user
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x39788629 dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x39ebd432 dvb_unregister_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a3aab99 dvb_ringbuffer_flush
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3ffa1fc7 dvb_dmxdev_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4b6632ef dvb_unregister_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x53fb82ea dvb_net_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x66960b21 dvb_ringbuffer_read
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6d964eb1 dvb_ringbuffer_avail
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6f8a54f4 dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x76627e35 dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x79110eb7 dvb_frontend_detach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7dad4bde dvb_dmxdev_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x849c8925 dvb_register_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x87c36616 dvb_dmx_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8894b426 dvb_dmx_swfilter_204
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9059ed41 dvb_net_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x96451b9b dvb_register_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x99171b72 dvb_generic_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa354bfc6 dvb_generic_open
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac466ae7 dvb_ringbuffer_empty
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb381c945 dvb_dmx_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb8e960ae dvb_dmx_swfilter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb976a677 dvb_frontend_reinitialise
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc535f849 dvb_ca_en50221_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xca4feed5 dvb_ringbuffer_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcc5a963c dvb_generic_ioctl
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd1b90709 dvb_register_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe66489a0 dvb_ringbuffer_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf029194d dvb_ca_en50221_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x09f0521c dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x206ee203 dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2f0d8843 dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x598c0a4c dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x60094e7f dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8b6add2f dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xae6be096 usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xb7554a30 af9005_rc_decode
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0f25785a dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x17d58d3c dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x1dc5ef3b dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2bfcfbe2 dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x461e4803 dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6a3ae765 dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x80d95b39 dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x8ba40fa5 dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xafe37414 dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd2006a9b dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xddd167f8 dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x27dac903 af9013_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0xe120f7c8 atbm8830_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x51cef4c5 au8522_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xca7c726a bcm3510_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xde4f83e5 cx22700_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x403902c2 cx22702_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x352523b6 cx24110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x3c760ad4 cx24113_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xa0fe469b cx24113_agc_callback
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xde65ec9b cx24116_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x082303f8 cx24123_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x2ad76592 cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x3563d7fc dib0070_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x4303e3d4 dib0070_get_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7d64369a dib0070_ctrl_agc_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xef6022f2 dib0070_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xf5504249 dib0070_set_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0ad88c64 dib0090_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x37411f3a dib0090_gain_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x3a404b6f dib0090_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4aad190e dib0090_get_current_gain
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4f87775a dib0090_dcc_freq
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x574f44b3 dib0090_pwm_gain_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x6c5d5c27 dib0090_register
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xe6bcbf3b dib0090_get_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xa2fa1446 dib3000mb_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x2c960e88 dib3000mc_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x54342d29 dib3000mc_pid_parse
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x78897e2e dib3000mc_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xd9d804dd dib3000mc_pid_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xea9939b0 dib3000mc_set_config
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xedeec042 dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x4fb45560 dib7000m_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x8618af34 dib7000m_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0b113e16 dib7000p_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x22e2a229 dib7000pc_detection
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3ff64fd3 dib7000p_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5262316c dib7000p_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8bb75152 dib7000p_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xbf8904ff dib7000p_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc1b54272 dib7000p_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xfc42de50 dib7000p_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x116a9514 dib8000_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x175cd561 dib8000_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2de8455b dib8000_pwm_agc_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x31027fe6 dib8000_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4c8f91f2 dib8000_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x585812d0 dib8000_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5f18969d dib8000_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x9271b1d0 dib8000_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xac9ec0a9 dib8000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb0640952 dib8000_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xff00440d dib8000_get_adc_power
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x05dc8f63 dibx000_exit_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x124a48a4 dibx000_get_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x2d0ef12d dibx000_reset_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xcffcc744 dibx000_init_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xe9257ea7 ds3000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xf6cdc9cb dvb_pll_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xa83b8060 isl6405_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x8a01c1ff isl6421_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xf961cb3a isl6423_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x99503bcb itd1000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x13376100 l64781_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x93787f46 lgdt3305_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xa62a537d lgdt330x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xe7e3e772 lgs8gxx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x35a3bd22 lnbh24_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xff50709a lnbp21_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0xbd04453a mb86a16_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x5c92d3ff mt312_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x0bcb6282 mt352_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x70704052 nxt200x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x773e97f7 nxt6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x100639b0 or51132_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xf4fb9571 or51211_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xc4323c0b s5h1409_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xe0d069e1 s5h1411_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x0bacf7f6 s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xe588e691 s5h1420_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x8c172c0b si21xx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x920ba9e5 sp8870_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xa083c58f sp887x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x39131d82 stb0899_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x8632bfe2 stb6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xee43f043 stb6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xea2d767d stv0288_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x268eca22 stv0297_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x7cf3cab4 stv0299_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xbfb241c3 stv0900_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x72257dba stv090x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x6f022e74 stv6110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xe277760f stv6110x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xf7b54529 tda10021_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x70110637 tda10023_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x720512c2 tda10048_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xba7f978a tda10045_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xd36eb636 tda10046_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xaf8d3d45 tda10086_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xf71b8c99 tda8083_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x8c8fd7fd tda8261_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xde8522fd tda826x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x2a71b5f4 tua6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xc48d9c18 ves1820_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x03dcb88d ves1x93_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x620298cc zl10036_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xf26a4ad9 zl10039_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x072135fb zl10353_attach
+EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x25f87545 ttpci_eeprom_parse_mac
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x9014452c ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xbbd344e6 ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x0068f68b bttv_sub_register
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x1a801ed9 bttv_sub_unregister
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x51f60254 bttv_get_pcidev
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc595e283 btcx_riscmem_free
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xef0abbcb btcx_riscmem_alloc
+EXPORT_SYMBOL drivers/media/video/cpia 0x254344da cpia_unregister_camera
+EXPORT_SYMBOL drivers/media/video/cpia 0x368a7e4c cpia_register_camera
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x7024b190 cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x8624a829 cx18_release_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x9ff57142 cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xcae39370 cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xde51a8d3 cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x0dca8202 cx231xx_register_extension
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x90d89aa3 cx231xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x25ec70e8 vp3054_i2c_probe
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xcc394ff4 vp3054_i2c_remove
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x05355eb7 cx8800_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x0d23c73b cx88_get_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x16bafbdf cx88_set_freq
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x3b05c025 cx88_set_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x5506878f cx88_video_mux
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xade4cefb cx88_enum_input
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x309645bc cx8802_buf_prepare
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x53f7f39b cx8802_register_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xb52fe799 cx8802_cancel_buffers
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xbc0f15b9 cx8802_buf_queue
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xc0fe6a79 cx8802_get_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf796b60d cx8802_unregister_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1c034589 cx88_risc_stopper
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2c56ce4b cx88_risc_databuffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x33799deb cx88_sram_channel_dump
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x34b4e7f8 cx88_shutdown
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3bfa8aaf cx88_set_tvnorm
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x46f8ea5c cx88_core_get
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x55e6deca cx88_set_stereo
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6554d652 cx88_vdev_init
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x671ea443 cx88_set_scale
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7be130ae cx88_sram_channel_setup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7f811284 cx88_ir_start
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x89d1c2ec cx88_core_put
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9f72b394 cx88_wakeup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa1c2b705 cx88_core_irq
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbfd7c0fa cx88_set_tvaudio
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc1e844a1 cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcc66e6bd cx88_reset
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd2c19ed8 cx88_free_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd87c0de3 cx88_newstation
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe09b5f0b cx88_ir_stop
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe35d2f59 cx88_risc_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xeb7d93ae cx88_get_stereo
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x8c231d2b em28xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xcae5efdc em28xx_register_extension
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x056d6bb1 gspca_disconnect
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x2723db1a gspca_get_i_frame
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x410d9dc7 gspca_auto_gain_n_exposure
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6391622e gspca_dev_probe
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6d1e29d0 gspca_suspend
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa73d5be3 gspca_resume
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xd4b2a0ea gspca_frame_add
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x04dc6c7c ivtv_api
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x15536076 ivtv_vapi_result
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x1f1add9c ivtv_udma_unmap
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x572cfad7 ivtv_set_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5bead2af ivtv_vapi
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x638d39c6 ivtv_udma_prepare
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6b0bc84d ivtv_clear_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x94a20c69 ivtv_udma_setup
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb29fd391 ivtv_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbcae0435 ivtv_udma_alloc
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xdbed7466 ivtv_init_on_first_open
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x19cca17d saa7134_pgtable_alloc
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x21d3b258 saa7134_ts_register
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x273aeefb saa_dsp_writel
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3cb3ce7b saa7134_devlist_lock
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4e859bad saa7134_tvaudio_setmute
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x58688ee8 saa7134_set_gpio
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x80fc3711 saa7134_dmasound_init
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x81d975eb saa7134_pgtable_build
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8982d35a saa7134_dmasound_exit
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbf2ccfdd saa7134_ts_unregister
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd623efc2 saa7134_set_dmabits
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xea04dd8a saa7134_pgtable_free
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x1dd4521d soc_camera_host_register
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x948d37eb soc_camera_apply_sensor_flags
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xab636d76 soc_camera_xlate_by_fourcc
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xdc6a0466 soc_camera_host_unregister
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x518ed083 tveeprom_hauppauge_analog
+EXPORT_SYMBOL drivers/media/video/tveeprom 0xd5312bd8 tveeprom_read
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x2d9d7c74 usbvideo_RegisterVideoDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x32be48af usbvideo_AllocateDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x4dac5792 usbvideo_Deregister
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x5cbc5b98 usbvideo_TestPattern
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xb13cb386 usbvideo_register
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xc441e31d usbvideo_DeinterlaceFrame
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush
+EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xf948f53e v4l_compat_translate_ioctl
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x6d63fb9b v4l2_chip_ident_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x95de8e3a v4l2_chip_match_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x1e47adcc v4l2_m2m_mmap
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x3e671563 v4l2_m2m_get_vq
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x4c2c1b0d v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x6afa3293 v4l2_m2m_job_finish
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x3fc35a54 videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x421f3a0d videobuf_dvb_dealloc_frontends
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x4ed06449 videobuf_dvb_get_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x7ab4247b videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x80541a2b videobuf_dvb_register_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb7c1ff5b videobuf_dvb_find_frontend
+EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period
+EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x1f498db5 video_unregister_device
+EXPORT_SYMBOL drivers/media/video/videodev 0x3905bd20 video_register_device_no_warn
+EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x446c15b5 video_usercopy
+EXPORT_SYMBOL drivers/media/video/videodev 0x4bced313 video_ioctl2
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl
+EXPORT_SYMBOL drivers/media/video/videodev 0x641f648e video_device_alloc
+EXPORT_SYMBOL drivers/media/video/videodev 0x91357326 video_device_release_empty
+EXPORT_SYMBOL drivers/media/video/videodev 0xcf73dc6a video_register_device
+EXPORT_SYMBOL drivers/media/video/videodev 0xd4d0ec0d video_devdata
+EXPORT_SYMBOL drivers/media/video/videodev 0xda7f9d3d video_device_release
+EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct
+EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x1c7d2449 videocodec_detach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x4ef3ea38 videocodec_attach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x84d399fc videocodec_register
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xe50181a5 videocodec_unregister
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x488cab20 memstick_resume_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x5107cfa9 memstick_set_rw_addr
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x560618b2 memstick_unregister_driver
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x63dc6077 memstick_register_driver
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x830ea586 memstick_next_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x90810e8a memstick_init_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x909fb80f memstick_suspend_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xb4206860 memstick_free_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xd8fe116a memstick_alloc_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xe58a09ad memstick_new_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xe707c5d3 memstick_remove_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xefa97fe6 memstick_add_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xf09cc642 memstick_detect_change
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x05bd32fa mpt_verify_adapter
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1c489479 mpt_halt_firmware
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1e5001a9 mpt_reset_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x28eba4d0 mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x32b68a39 mpt_detach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3c348018 mpt_resume
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x400261be mpt_HardResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4185280f mpt_print_ioc_summary
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x44ce3d13 mpt_send_handshake_request
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5ba7bef4 mpt_free_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x64d90d3a mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x77b13a89 mpt_alloc_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x88ef2902 mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x899efd69 mpt_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8bb4d563 mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x953d30b3 mpt_config
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x996f6f66 mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa7fbb8d0 mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xba5a8f8c mpt_device_driver_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc2debd0f mpt_GetIocState
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xce441e62 mpt_put_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd19241de mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd845dccc mpt_event_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe58f8d37 mpt_free_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe84f98f7 mptbase_sas_persist_operation
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xeb13a7df mpt_attach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf4a55794 mpt_findImVolumes
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfcf631a5 mpt_get_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xffec346f mpt_register
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0eb328df mptscsih_scandv_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x14d1239c mptscsih_is_phys_disk
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1c142215 mptscsih_io_done
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x25f31b13 mptscsih_host_attrs
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x26546840 mptscsih_dev_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2cc47e87 mptscsih_get_scsi_lookup
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x468035cd mptscsih_event_process
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x479892f8 mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4e5c48fe mptscsih_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x54090e8d mptscsih_ioc_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5d4a1951 mptscsih_bios_param
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5e64b4db mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x60619fba mptscsih_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x736cc25a mptscsih_proc_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x77ea5777 mptscsih_bus_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7e02fe06 mptscsih_qcmd
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x830fa723 mptscsih_shutdown
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8bff8667 mptscsih_host_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8c0fd690 mptscsih_resume
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9a8c03f9 mptscsih_slave_configure
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa2fe3a3a mptscsih_abort
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa4f67b50 mptscsih_remove
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xabc02e34 mptscsih_raid_id_to_num
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcd1533a2 mptscsih_taskmgmt_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe12dd648 mptscsih_change_queue_depth
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xec7f7950 mptscsih_slave_destroy
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x127994e6 i2o_device_claim_release
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2c8d4dcc i2o_status_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3508b4d1 i2o_cntxt_list_add
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x37d6a446 i2o_parm_issue
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x50fd032d i2o_cntxt_list_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5c720fcf i2o_find_iop
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x60b9f138 i2o_driver_notify_controller_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x63e130f7 i2o_driver_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6dc6b79c i2o_event_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7c5d41fb i2o_parm_field_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7df22b81 i2o_iop_find_device
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa514356d i2o_device_claim
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xad4fe709 i2o_driver_notify_device_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb0bc0d7a i2o_exec_lct_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb0be5105 i2o_driver_unregister
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd222be7d i2o_driver_notify_controller_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd8a0e0b4 i2o_cntxt_list_remove
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdbe6e2dd i2o_parm_table_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe381080c i2o_driver_notify_device_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf598a4c9 i2o_msg_post_wait_mem
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfbb8058b i2o_msg_get_wait
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfcd3e540 i2o_cntxt_list_get_ptr
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x0f207bbc pasic3_read_register
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xfe8cf871 pasic3_write_register
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2a19f3b4 mc13783_irq_request_nounmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3da56aaf mc13783_irq_request
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x449ec3c4 mc13783_lock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x490c6bbd mc13783_unlock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x5bc786e2 mc13783_irq_unmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x63cfaf6b mc13783_reg_read
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x875ef12b mc13783_reg_write
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x9f2f2871 mc13783_irq_ack
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xa26e18ca mc13783_irq_mask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xbc637d72 mc13783_irq_free
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xca508e0a mc13783_irq_status
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe30ba35a mc13783_reg_rmw
+EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2
+EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1
+EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib
+EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led
+EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw
+EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x2f5c4a21 ad_dpot_remove
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x9d748faa ad_dpot_probe
+EXPORT_SYMBOL drivers/misc/c2port/core 0x55c00f7d c2port_device_unregister
+EXPORT_SYMBOL drivers/misc/c2port/core 0xc7fce724 c2port_device_register
+EXPORT_SYMBOL drivers/misc/ioc4 0x0d345774 ioc4_register_submodule
+EXPORT_SYMBOL drivers/misc/ioc4 0x76d8ca1f ioc4_unregister_submodule
+EXPORT_SYMBOL drivers/misc/tifm_core 0x5051fe25 tifm_unregister_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x768ebeb5 tifm_unmap_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x85ce929f tifm_free_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x87bd4c86 tifm_map_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x8a9bcc53 tifm_free_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x8d432089 tifm_has_ms_pif
+EXPORT_SYMBOL drivers/misc/tifm_core 0x932333ad tifm_alloc_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x97049b92 tifm_eject
+EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work
+EXPORT_SYMBOL drivers/misc/tifm_core 0xc4d34fc6 tifm_register_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0xe7e7edfb tifm_add_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xf247f24a tifm_alloc_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0xff94fc31 tifm_remove_adapter
+EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x454a7fe6 mmc_cleanup_queue
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x5abed614 cfi_varsize_frob
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x9f04c559 cfi_read_pri
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd42664ac cfi_fixup
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x6c2ce28c unregister_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x986a701d map_destroy
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xecc614f1 register_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xf3081eb2 do_map_probe
+EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xc253df06 mtd_do_chip_probe
+EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x1fcc20c9 lpddr_cmdset
+EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xc631bed5 simple_map_init
+EXPORT_SYMBOL drivers/mtd/mtd 0x87e05c19 add_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtd 0x969c1b93 del_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x396aefea mtd_concat_destroy
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x868c7b4c mtd_concat_create
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x090d08be nand_default_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x549fb2ff nand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x02ddeba9 nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x541070ba nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x1a25482a onenand_addr
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x556a99fa flexonenand_region
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9c37ca54 onenand_default_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9fd9be7d onenand_scan_bbt
+EXPORT_SYMBOL drivers/net/8390 0x028a8aff __alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/8390 0x1e3e204b ei_get_stats
+EXPORT_SYMBOL drivers/net/8390 0x2030e1a8 ei_tx_timeout
+EXPORT_SYMBOL drivers/net/8390 0x2a66c333 NS8390_init
+EXPORT_SYMBOL drivers/net/8390 0x3f379d78 ei_open
+EXPORT_SYMBOL drivers/net/8390 0x434c9c92 ei_close
+EXPORT_SYMBOL drivers/net/8390 0x4ae56f50 ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390 0x54c6b9b9 ei_poll
+EXPORT_SYMBOL drivers/net/8390 0xc022f9c1 ei_start_xmit
+EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt
+EXPORT_SYMBOL drivers/net/8390 0xde542f61 ei_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1b55bf1a arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x31278c1f arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4fa48a72 arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x55a22091 arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5a5cc3c0 alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x91650ac2 arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x94426269 arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x97d2f4ec arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x99ed9176 arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe381d471 arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x3407d827 com20020_check
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x52a62274 com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x7db74216 com20020_found
+EXPORT_SYMBOL drivers/net/bnx2 0xbecf1e26 bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/bnx2x 0xe424e04b bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/cnic 0x38377cf0 cnic_register_driver
+EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0757cdf3 cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1e2c36a7 cxgb3_register_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1fe6e9ad cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x25275a55 cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x27a3440a cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2992490e cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2a36c1b3 cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x455506a2 t3_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x61bb7c32 cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa8301a58 t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd4f1d328 cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd727a737 t3_l2e_free
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe2bd65fb dev2t3cdev
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe88070ea t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf3526e49 t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfa15d7d2 cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x063393a8 cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x106c3862 cxgb4_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x320cd9c8 cxgb4_netdev_by_hwid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x398e7af9 cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x516ff57b cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5a222705 cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6db7d7d2 cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x73a933f9 cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x74b95696 cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7547b8a4 cxgb4_create_server6
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7e5aee57 cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8e5ab2b3 cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x93b892f6 cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa1783362 cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb1505633 cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xcffcac0e cxgb4_create_server
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe6e01d1b cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x0028c445 hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x49bdfb64 hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x5a8cde84 hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x641f185e hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xfcbf05df hdlcdrv_register
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4657dba2 sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6e41fb8d sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x768d4dad sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x883b3b1b sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9ab08cc9 sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xaedbf784 sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xba80ccf2 irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcee1158e sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdef55f13 sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfe22ad63 irda_register_dongle
+EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage
+EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl
+EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart
+EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag
+EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe
+EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an
+EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok
+EXPORT_SYMBOL drivers/net/mii 0x02cfe3c4 mii_ethtool_sset
+EXPORT_SYMBOL drivers/net/mii 0x321bfe68 generic_mii_ioctl
+EXPORT_SYMBOL drivers/net/mii 0x4a67bdbc mii_check_gmii_support
+EXPORT_SYMBOL drivers/net/mii 0x721136bb mii_link_ok
+EXPORT_SYMBOL drivers/net/mii 0x776c32b8 mii_nway_restart
+EXPORT_SYMBOL drivers/net/mii 0x85fc5c4f mii_check_media
+EXPORT_SYMBOL drivers/net/mii 0xc8148cc4 mii_ethtool_gset
+EXPORT_SYMBOL drivers/net/mii 0xc9d5e100 mii_check_link
+EXPORT_SYMBOL drivers/net/pppox 0x6bb2c87a pppox_ioctl
+EXPORT_SYMBOL drivers/net/pppox 0xa0b32825 register_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0xb7d624c9 pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/sungem_phy 0x25b234f8 mii_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x00d86fcc tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x2fc2deb4 tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xb202b39f tms380tr_open
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xcd810877 tmsdev_term
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xeb1963ab tms380tr_close
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x03edd79b register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x03f03504 hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x1bed98f1 hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x294773ce attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x3eb3f0dd hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x46e867df detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x56bc2fe1 hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x629460c2 alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x8e9d561f hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xd465eafd unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xf5156cf8 unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xfa6d47da i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x88adf840 reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x8fb1620f init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x941b6276 stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x24346421 ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7f9a1b42 ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x988135f0 ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xdb21d023 ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x207bbfd5 ath9k_cmn_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2ee3bda4 ath9k_cmn_rx_skb_preprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3fc98c38 ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x691a0390 ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8d309e35 ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8d96ce64 ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x9e40504f ath9k_cmn_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0579d2ea ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0741941b ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ea188fc ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f749dc0 ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e1201b2 ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f9b7158 ath9k_hw_extend_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1fdb5849 ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1fe6d70c ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x202f844a ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2321e067 ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23bbaeee ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x289d854f ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29b5e6c7 ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b21c6f6 ath9k_hw_setmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2bd69616 ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d1d1ed3 ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x34e29b5e ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x369a1138 ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38fddf1a ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3ba0b3ca ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c90bad5 ath9k_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d352d42 ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3fb3ca0d ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x454b1737 ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x461caa6b ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a83dfbe ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ad9b10b ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ebcbbb5 ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x636f2d62 ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63805c6e ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x647b042c ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65349edc ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6568dca7 ath9k_hw_setcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e7de167 ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7106318d ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73481daa ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x742508b8 ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7575df2a ath9k_hw_set_keycache_entry
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77af93dd ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d92e169 ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7db5aeac ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x81da99a6 ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88478ce2 ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f36877a ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91759edc ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x924609f0 ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9bcc3cce ath9k_hw_stoppcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d17e1af ath9k_hw_keysetmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa489ba7a ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa529d82f ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa6aef2b2 ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad77ec0c ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xadc60f64 ath9k_hw_procmibevent
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf4a2936 ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xafc90db1 ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb12133fd ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1b149f8 ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb41708cb ath9k_hw_stoptxdma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4e1b746 ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbab3c745 ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb1c22d8 ath9k_hw_getcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc109a422 ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc15f86c3 ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2569c5b ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc359b4d2 ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5389aab ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca3108b7 ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1a4ea32 ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd51314a1 ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd664240c ath9k_hw_cleartxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde6dedda ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdeff8542 ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe15e12db ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe57e47f3 ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8ebfeac ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xedba7d6d ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf92524d2 ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc302942 ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfeb761f3 ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfed13967 ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfed7699f ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfefe67a5 ath9k_hw_keyisvalid
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x3694fdb4 init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xcca2b318 stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xf70458db atmel_open
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x03acb5d7 hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x09f0ca44 hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1119cd1b prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x147ea57d hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3392bb02 hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3395d7ae hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3dfeada6 hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4bda7802 hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x526ed172 hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5fa3d3b0 hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x76e995d5 hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x80f22b82 hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8dc248bf hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9cf762f3 hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa73fa012 hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa9e9cd4a hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xab96dde6 hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbdfba3d1 hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc0060f90 hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd1fdc3bf hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdf407180 hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xebbceb87 hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xed54aaa8 hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xed92f228 hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf31116e6 hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x02fdab3a libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0e4c7c2f libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x15d8ab8e libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1ebf744a libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x22f6f7f8 libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x26759059 libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6c3d272a libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x973244dc libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa12e0fbb libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb5524c18 free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbdf12b3b libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc386d9fc alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc5fbbfcd libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd1d9f912 libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdd0e7d54 libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe1036aeb libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe7f79c1d libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe921d9ac libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xeb27c434 libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xed98346e libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf9b422a3 libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x017e166d iwl_remove_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x02cefecd iwl_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x05ea4314 iwl_leds_background
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x068ceb7e iwl_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x07012d5c iwl_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0ce2f4e4 iwl_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e775ffd iwl_eeprom_get_mac
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e7c9c57 iwl_bg_start_internal_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14cc53df iwl_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14d641b1 iwl_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19168980 iwl_setup_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a22d9e6 iwlcore_eeprom_enhanced_txpower
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x203fe1ff iwl_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21c43f9b iwl_add_bssid_station
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2228fcd1 iwl_rf_kill_ct_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x260da73e iwl_sta_tx_modify_enable_tid
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x27177499 iwl_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x28a9b103 iwl_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x29f531a8 iwl_verify_ucode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b6bca84 iwl_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2cacb288 iwl_good_plcp_health
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32a58841 iwl_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x33167f63 iwl_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x34f7c79c iwl_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35c6014f iwl_ht_enabled
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37004251 iwl_sta_modify_sleep_tx_count
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x39bd0867 iwl_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3afe6bed iwl_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3d0fc0ba iwl_update_tkip_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x40505e3c iwl_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x40ff77d0 iwl_set_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41dc7efb iwl_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x427bb269 iwl_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4428f3bc iwl_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x453862a7 iwl_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x45a0850b iwl_sta_modify_ps_wake
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4709b712 iwl_led_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x485009d4 iwl_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x485ebc55 iwl_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x499c965b iwl_eeprom_check_version
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a294388 iwl_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4b0bb907 iwlcore_eeprom_acquire_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e7b9750 iwl_mac_beacon_update
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x51b96b36 iwl_tt_enter_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x51d19dbb iwl_free_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5d306f01 iwl_remove_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x602940ff iwl_tt_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6226e77e iwl_tt_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62ce21e2 iwl_rx_missed_beacon_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62d62ee3 iwl_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62d77ef0 iwl_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x63d40c1f iwl_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6608ab63 iwl_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6686786f iwl_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6a066f7b iwl_restore_default_wep_keys
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6b395764 iwl_send_calib_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6e2d170a iwl_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7146cf46 iwl_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71db00d0 iwl_bg_abort_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7245173b iwl_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x72ccc4e3 iwl_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7424b265 iwl_dump_csr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x74783110 iwl_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7d088010 iwl_chain_noise_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8327e50c iwlcore_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85dbd968 iwl_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85ea6909 iwl_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x86c21875 iwl_tt_handler
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8778cdd6 iwlcore_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89c21f02 iwl_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8b7b0d09 iwl_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8bce0594 iwl_sta_rx_agg_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8fdf6d8f iwlcore_eeprom_verify_signature
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8ff6fa14 iwl_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x90db29d6 iwl_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x91984c6f iwl_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x930fda96 iwl_tt_exit_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x93f7f9cc iwl_dump_fh
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x940c51aa iwlcore_rts_tx_cmd_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x94f207ef iwl_calib_free_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x99e72e40 iwl_rate_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9faced57 iwl_calib_set
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa3b21f20 iwl_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5e58975 iwl_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa6f6454e iwl_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa74a60a0 iwl_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa765bf5a iwl_set_hw_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa789c20c iwl_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa9d6dd53 iwlcore_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xab140194 iwl_recover_from_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xace9bb61 iwl_toggle_tx_ant
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xad2449c2 iwl_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xae29a625 iwl_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xae5c5c14 iwl_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb099f28c iwl_force_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb11711fd iwl_rx_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb58b9be6 iwl_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb59568f4 iwl_free_tfds_in_queue
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8473f77 iwl_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb86a0fa3 iwl_bg_scan_completed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb9d70c40 iwl_sta_rx_agg_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbabd6739 iwl_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbed219ba iwl_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc2181a7c iwl_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc53ce691 iwl_hw_detect
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc63605a1 iwl_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc64668b3 iwl_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcee2e239 iwlcore_eeprom_release_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf7862d2 iwl_reset_run_time_calib
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd5c6de17 iwl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd707a3da iwl_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd751b623 iwl_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd82bb2aa iwl_set_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdaae783e iwl_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdbde32e0 iwl_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdc414a46 iwl_reply_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdd62b227 iwl_set_rxon_chain
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe07f2f1d iwl_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3a45fc7 iwl_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe6526d87 iwl_tx_ant_restriction
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67257a2 iwl_bg_scan_check
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7876140 iwl_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xed54b750 iwl_configure_filter
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2759e2a iwl_sensitivity_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf4324d76 iwl_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa636e05 iwl_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa9dd20f iwl_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfb301ac5 iwl_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe82c3e0 iwl_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff180c17 iwl_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff7c39cb iwl_init_sensitivity
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x162ba7f1 orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1e3338e0 orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2ffaf29c orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x30cfc592 orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3f194d8f __orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5d4c41c1 orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x607cace3 free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x73fd4746 alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7982ec28 __orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7995a833 orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7c179684 orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbcf55ee6 orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xde711df2 orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe59426e3 orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfa3a292c orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfa544b70 orinoco_tx_timeout
+EXPORT_SYMBOL drivers/parport/parport 0x01f48077 parport_read
+EXPORT_SYMBOL drivers/parport/parport 0x17a34bd3 parport_register_driver
+EXPORT_SYMBOL drivers/parport/parport 0x1f6fb212 parport_set_timeout
+EXPORT_SYMBOL drivers/parport/parport 0x2f4cca10 parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL drivers/parport/parport 0x31b9c93a parport_claim_or_block
+EXPORT_SYMBOL drivers/parport/parport 0x37432fd7 parport_wait_peripheral
+EXPORT_SYMBOL drivers/parport/parport 0x3af6b995 parport_release
+EXPORT_SYMBOL drivers/parport/parport 0x3c527322 parport_announce_port
+EXPORT_SYMBOL drivers/parport/parport 0x44d4728a parport_ieee1284_write_compat
+EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt
+EXPORT_SYMBOL drivers/parport/parport 0x554387d3 parport_ieee1284_epp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x55917298 parport_negotiate
+EXPORT_SYMBOL drivers/parport/parport 0x5e6742f9 parport_find_number
+EXPORT_SYMBOL drivers/parport/parport 0x62d478d4 parport_unregister_device
+EXPORT_SYMBOL drivers/parport/parport 0x6b0a52ba parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x8c484842 parport_register_device
+EXPORT_SYMBOL drivers/parport/parport 0x91b4597c parport_ieee1284_read_byte
+EXPORT_SYMBOL drivers/parport/parport 0x91b8f36a parport_ieee1284_epp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0x950f2169 parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler
+EXPORT_SYMBOL drivers/parport/parport 0xa9d3589c parport_claim
+EXPORT_SYMBOL drivers/parport/parport 0xaa238621 parport_put_port
+EXPORT_SYMBOL drivers/parport/parport 0xab46f400 parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0xbda25ef5 parport_write
+EXPORT_SYMBOL drivers/parport/parport 0xbdff0137 parport_ieee1284_read_nibble
+EXPORT_SYMBOL drivers/parport/parport 0xbe0f144d parport_remove_port
+EXPORT_SYMBOL drivers/parport/parport 0xc17f9665 parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0xd1d76a68 parport_register_port
+EXPORT_SYMBOL drivers/parport/parport 0xe09d0f57 parport_unregister_driver
+EXPORT_SYMBOL drivers/parport/parport 0xe1cc4609 parport_find_base
+EXPORT_SYMBOL drivers/parport/parport 0xf73f06e5 parport_get_port
+EXPORT_SYMBOL drivers/parport/parport 0xfdc20918 parport_wait_event
+EXPORT_SYMBOL drivers/parport/parport_pc 0x1bc280aa parport_pc_probe_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0x5cff4cca parport_pc_unregister_port
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x01a333f2 pcmcia_request_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x07dffa41 pcmcia_modify_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x09ccd36c pcmcia_loop_config
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x18892993 pcmcia_dev_present
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2d1b9f0c pcmcia_access_configuration_register
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x46c236ca pcmcia_request_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4c734b17 pcmcia_unregister_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6c419902 pcmcia_get_mac_from_cis
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x896a4928 pcmcia_release_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x938ecd20 pcmcia_get_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa35b7b53 pcmcia_request_io
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa73518af pcmcia_disable_device
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xafa578b8 pcmcia_loop_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb7246336 pcmcia_request_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc3c24b39 pcmcia_map_mem_page
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcad4d727 pcmcia_register_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf8423b1e __pcmcia_request_exclusive_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x28fdeafc pcmcia_put_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3327433a pcmcia_socket_class
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x41576450 pcmcia_parse_uevents
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x48e0548f pcmcia_get_socket_by_nr
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x82898e09 pcmcia_reset_card
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9cfecf4c pcmcia_parse_events
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa02fac99 pcmcia_register_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xacc56c7e pcmcia_unregister_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb3e7b9f1 pcmcia_get_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xecd5b224 pccard_register_pcmcia
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x01ac8983 pccard_nonstatic_ops
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x9095d986 pccard_static_ops
+EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command
+EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x3dab6016 pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0d9255f8 fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x23dbd3c2 fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x352adbfd fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x805f8645 fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x848c92c7 fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa6f588b4 fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xaab0b04a fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00a2f53c fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x046ac5fc fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0bb5b963 fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0f52001c fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14e2382f libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1d4276a3 fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1e92112e fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x228205ff fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x27e4e76d fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x295ddaed fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3140b19a fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3f3233f9 fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4093f98b fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4596881c fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4a39a3e0 fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4bca9c24 fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6227e32d fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x679dda9c fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x69671f84 fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x72822a0c fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x72ed543c fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76514e48 fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7d4d3062 fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x82691fc8 fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x90b28800 fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b270cc2 fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ca39bb4 fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ca94070 fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9fb10817 fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7d1b77a fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xabbb3f38 fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xae4280d7 fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb7365949 fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbfff4d88 fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xceaff541 fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd942767e fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdc1527b9 fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf5088d46 fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf752dd13 fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc035057 _fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc169adf fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfcfbdab1 fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x64e25b56 mraid_mm_register_adp
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x012c1da3 osd_req_flush_obsd
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x06b23792 osd_req_list_dev_partitions
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x225637f2 osd_req_add_set_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3ba6ea0e osd_req_list_collection_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x42a88104 osd_req_read_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4bfa74f6 osd_req_decode_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5017594d osd_req_flush_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x53b2b3f7 osd_req_get_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x573bb2b8 osd_req_read
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5c737963 osd_req_flush_collection
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x61a73c85 osd_req_remove_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x68c4b84f osd_req_write_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6a915c69 osd_req_remove_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x705131ff osd_execute_request_async
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7129e0cd osd_req_list_partition_collections
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x81c828b1 osd_req_add_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x93f3e9c1 osd_finalize_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x943d2b03 osd_req_create_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaade077c osd_req_decode_sense_full
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaf846e81 osd_end_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb4cf6d5c osd_req_add_get_attr_page
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb67a64ec osd_req_create_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb98497d3 osd_req_set_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbcec8b9a osd_dev_fini
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf4e0600 osd_req_flush_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd4673ad8 osd_start_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd509bf5d osd_req_write
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe8d67b62 osd_req_format
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xeb464099 osd_req_list_partition_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xeeaec092 osd_execute_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf665c7b8 osd_dev_init
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfb7c2cd4 osd_auto_detect_ver
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x54c0253d osduld_device_info
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x75876d94 osduld_device_same
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xdbda41c6 osduld_register_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xe2f9b6b3 osduld_info_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xe7c46b1e osduld_path_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xf857fb80 osduld_put_device
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x09807582 qlogicfas408_abort
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x510cce73 qlogicfas408_bus_reset
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xadf5e0b7 qlogicfas408_disable_ints
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xae887fbf qlogicfas408_queuecommand
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb519dc56 qlogicfas408_info
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdf6b0763 qlogicfas408_biosparam
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup
+EXPORT_SYMBOL drivers/scsi/raid_class 0xf20f3173 raid_class_attach
+EXPORT_SYMBOL drivers/scsi/raid_class 0xfd135970 raid_class_release
+EXPORT_SYMBOL drivers/scsi/raid_class 0xfe8ffa6f raid_component_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x020ceb90 fc_host_post_vendor_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x27cd3986 fc_vport_create
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x293cb8f4 scsi_is_fc_rport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x479ca1d7 fc_remote_port_rolechg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4e29d712 fc_host_post_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x79169e17 fc_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7e51bf18 fc_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x87d15a7a fc_remote_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x97b36ef0 fc_block_scsi_eh
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9a67d68b fc_remote_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xacfb53ec fc_vport_terminate
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf3ac9395 scsi_is_fc_vport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfad3cba0 fc_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x06671491 sas_phy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2c2845b5 sas_phy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2c6a7860 sas_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x32313425 scsi_is_sas_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x483ddd15 sas_rphy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5ed31bac sas_remove_children
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x69e3bcac scsi_is_sas_rphy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa2b8d15f sas_phy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb02027d5 sas_port_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb5927bbf sas_expander_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb7cc36a0 sas_rphy_remove
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbdbb6db6 sas_port_mark_backlink
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc20fd594 sas_port_add_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc71e2fbb sas_port_alloc_num
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcdd8b751 sas_end_device_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcf8f1f2e sas_phy_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd10ed40f sas_rphy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd6f653e7 sas_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdcd0e89f sas_read_port_mode_page
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd852aff scsi_is_sas_port
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdfd84e06 sas_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe5ce2e85 sas_rphy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf4fcb445 sas_port_delete_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf82ba0cd sas_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfed2a747 sas_port_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfed71035 sas_port_delete
+EXPORT_SYMBOL drivers/ssb/ssb 0x01db6202 ssb_dma_alloc_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0x025e75f9 ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL drivers/ssb/ssb 0x09ae4f7a ssb_device_disable
+EXPORT_SYMBOL drivers/ssb/ssb 0x0fc56ba0 ssb_set_devtypedata
+EXPORT_SYMBOL drivers/ssb/ssb 0x432c8bf4 ssb_bus_resume
+EXPORT_SYMBOL drivers/ssb/ssb 0x47a45b27 ssb_bus_pcibus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x4ada4201 ssb_bus_sdiobus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x592efda4 ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x59dbbb12 ssb_device_is_enabled
+EXPORT_SYMBOL drivers/ssb/ssb 0x69b605d2 ssb_device_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x6b67b544 ssb_bus_suspend
+EXPORT_SYMBOL drivers/ssb/ssb 0x7bff4b86 ssb_dma_set_mask
+EXPORT_SYMBOL drivers/ssb/ssb 0x7d070d85 ssb_dma_translation
+EXPORT_SYMBOL drivers/ssb/ssb 0x8f18e44e ssb_dma_free_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0xa5f91981 ssb_pcihost_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xb8ae121d ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base
+EXPORT_SYMBOL drivers/ssb/ssb 0xc4ab1340 ssb_driver_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0xd38dfc9e ssb_chipco_gpio_control
+EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size
+EXPORT_SYMBOL drivers/ssb/ssb 0xda97a132 ssb_bus_powerup
+EXPORT_SYMBOL drivers/ssb/ssb 0xe9d753b4 __ssb_driver_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xeed1f887 ssb_bus_may_powerdown
+EXPORT_SYMBOL drivers/ssb/ssb 0xf07247c1 ssb_bus_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0xf6748b2a ssb_clockspeed
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x03018749 comedi_buf_write_alloc
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0ba8ff7d comedi_buf_read_alloc
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x20adcdd0 comedi_check_chanlist
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x29e50cd9 comedi_buf_put
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2cdaeed3 comedi_driver_unregister
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f179e4a comedi_event
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f28b543 comedi_driver_register
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x6fa1c51a comedi_get_subdevice_runflags
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x7aa04fea comedi_buf_get
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8959c847 comedi_error
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xca4bf1d6 comedi_buf_memcpy_from
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xde5cff7a comedi_buf_read_free
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf2326fa1 comedi_buf_read_n_available
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf491c77f comedi_buf_memcpy_to
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf7339da5 comedi_buf_write_free
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x0534e47b subdev_8255_init_irq
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x0c6edd30 subdev_8255_interrupt
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x6f874f71 subdev_8255_cleanup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xaaf1a61c subdev_8255_init
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x0e957c70 cfc_read_array_from_buffer
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x9c673841 cfc_write_array_to_buffer
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xa3d73527 cfc_handle_events
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x02607403 mite_unsetup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x051ce816 mite_devices
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x12722775 mite_prep_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1cee09ba mite_dma_arm
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x22b474fa mite_bytes_in_transit
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3c38714b mite_bytes_read_from_memory_ub
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x4de5f738 mite_sync_output_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x585533a7 mite_dma_disarm
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x5b419e0d mite_bytes_written_to_memory_lb
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x682ab83d mite_done
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa360c032 mite_setup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xadaa43b2 mite_bytes_read_from_memory_lb
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xb5c276b0 mite_get_status
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc2343124 mite_release_channel
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc30dc8dd mite_request_channel_in_range
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xcad3acf4 mite_bytes_written_to_memory_ub
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdd0c0c0b mite_setup2
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe185f2aa mite_sync_input_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf5fa1e56 mite_buf_change
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb0bd2f9 mite_dma_tcr
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x189beb12 subdev_700_interrupt
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x2f2dd0ab subdev_700_init
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x3c340722 subdev_700_init_irq
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xe5979298 subdev_700_cleanup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x87a75f5f comedi_pcm_cmdtest
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x3385ea08 comedi_find_subdevice_by_type
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x58a7e961 comedi_dio_bitfield
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x673f378e comedi_get_n_channels
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x74892837 comedi_dio_config
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xcdc74f86 comedi_close
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xd12102fe comedi_open
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x2861e119 cx25821_sram_channel_dump
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x32ee8781 cx25821_sram_channel_setup
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x5f65cd7e cx25821_risc_databuffer_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x68bb2555 cx25821_dev_get
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x6b4c249d cx25821_set_gpiopin_direction
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x6c54a926 cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x784853c3 cx25821_print_irqbits
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xad3919c6 cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xd8355167 cx25821_dev_unregister
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x024800bd go7007_snd_remove
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x064bfb40 go7007_remove
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x1f8766af go7007_alloc
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x3b9d1200 go7007_read_addr
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x483b3330 go7007_boot_encoder
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x710641ac go7007_snd_init
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xa0336b05 go7007_parse_video_stream
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xac95faf0 go7007_read_interrupt
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xc89d5434 go7007_register_encoder
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x10a885b7 hv_cb_utils
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x253f3d14 vmbus_get_interface
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4102ac95 VmbusChannelRecvPacket
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x62ffb142 vmbus_child_driver_register
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x724d7966 vmbus_child_driver_unregister
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x848c170c VmbusChannelSendPacket
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0ed73779 iio_ring_buffer_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1662c247 iio_trigger_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1d8ceb17 iio_push_or_escallate_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2694b1d2 __iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2bc9533f iio_trigger_notify_done
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x36827a16 iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3f42c4a6 iio_scan_el_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x40215575 iio_device_unregister_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x52759636 iio_push_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x52e7b7db iio_free_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x58b2b335 iio_add_event_to_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x58bd9b6e iio_trigger_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5eef6ddb iio_free_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5f33140c iio_allocate_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x663f75da iio_scan_el_ts_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x690f72d8 iio_device_register_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6ac367d3 iio_show_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x766dd43e iio_remove_event_from_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x76e77919 iio_scan_el_show
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x796234ee iio_ring_buffer_init
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7a65472a iio_unregister_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7c9c6208 iio_read_ring_length
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7e44f98f iio_read_ring_bps
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7edf6482 iio_get_new_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x96a9bac0 iio_write_ring_length
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xad019cad iio_trigger_find_by_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xad444e37 iio_store_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xaf563a08 iio_trigger_dettach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb40c7bc2 iio_read_const_attr
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb73c13ac iio_trigger_attach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xba124153 iio_free_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbd43b3dc iio_bus_type
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbf3d2d6d iio_ring_buffer_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc4e1fcb2 iio_device_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc68537d8 iio_trigger_read_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc75b58cd iio_allocate_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc76e2f44 iio_device_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcaf79e71 iio_register_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd8b931a8 iio_trigger_poll
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfaefe020 iio_scan_el_ts_show
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x0a1101ab iio_sw_rb_allocate
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x1970ba1a iio_set_length_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x3ff1db2b iio_set_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4d146f0e iio_get_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7ac87abb iio_sw_rb_free
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x8c69d63b iio_mark_update_needed_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x9f43fcef iio_store_to_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xaa177b04 iio_get_length_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xac54ad86 iio_read_last_from_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xb1da4902 iio_unmark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xbd19c999 iio_rip_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xd228f09d iio_mark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xe1a7de94 iio_request_update_sw_rb
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x39341abc pod_remove_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x5a5c36d9 variax_remove_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0xa29e7c1c variax_create_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0xd35bc9d0 pod_create_files
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0x11452eff rar_reserve
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0x785e5269 rar_release
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0xd0382ff3 rar_handle_to_bus
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x0072de2f rar_get_address
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x016fa80b ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x026d751d ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x07740242 ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0bd2545c ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0e1330ab ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0f376841 ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1882efd7 ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1c4385f4 ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x20180be3 ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x219dd21c ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2462136a ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x29f4c3b3 ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x39096283 ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3b85aae0 ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3c229c66 DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c3dc36f ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4ef77fad ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x544b12ad ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5f8c1e24 notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x64b2de1a ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x67779838 ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6f04a681 Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x79620533 IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7aba2d20 ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7b61e5e6 ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x818917ae ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x86aea04f ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x89915856 ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b415a18 ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8e82ba74 ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x947cb076 ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9c17d4c3 ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9c64ff8e ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9ed8718d ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9f7b6edb Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa12010b7 SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa58b9131 ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaae4b9ed ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xabec8db6 ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb71fde19 ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbcb6ac60 ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc13e773b ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc26d0b54 ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd0f9447c ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd33582fa Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd958b490 ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdb2b37d4 ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdd698757 ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde7ed064 HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde862753 ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdf3a1c3e ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe0a8edec ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe3f6191b DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe4428c74 ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe87ca5d1 ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe9ec8588 ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x43f56545 tm6000_register_extension
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x499bc9d4 tm6000_unregister_extension
+EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count
+EXPORT_SYMBOL drivers/staging/vme/vme 0x011bd342 vme_register_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0232aa5c vme_register_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x1247692a vme_unregister_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x14bd6d67 vme_irq_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x2d1f6bd4 vme_bus_type
+EXPORT_SYMBOL drivers/staging/vme/vme 0x2e804729 vme_irq_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x33fe73cc vme_dma_list_add
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3aa70f78 vme_irq_handler
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3b332a39 vme_dma_list_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x420fe07e vme_dma_list_exec
+EXPORT_SYMBOL drivers/staging/vme/vme 0x43e2f154 vme_master_read
+EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7754663b vme_alloc_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x8935bfed vme_new_dma_list
+EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach
+EXPORT_SYMBOL drivers/staging/vme/vme 0x97155737 vme_unregister_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x98bfee37 vme_slot_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach
+EXPORT_SYMBOL drivers/staging/vme/vme 0x9d279035 vme_master_write
+EXPORT_SYMBOL drivers/staging/vme/vme 0xa09d045f vme_get_size
+EXPORT_SYMBOL drivers/staging/vme/vme 0xaabc69d2 vme_lm_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xbacf18cd vme_slave_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0xd6e26752 vme_irq_generate
+EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe7e39009 vme_master_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xf1b1bb11 vme_free_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0xf7460cad vme_dma_request
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free
+EXPORT_SYMBOL drivers/telephony/ixj 0xe2d67460 ixj_pcmcia_probe
+EXPORT_SYMBOL drivers/telephony/phonedev 0x8cb408db phone_register_device
+EXPORT_SYMBOL drivers/telephony/phonedev 0xe8900229 phone_unregister_device
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x6f3106f6 usb_gadget_register_driver
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x8187b725 net2280_set_fifo_mode
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xde8d0a46 usb_gadget_unregister_driver
+EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x6340014c sl811h_driver
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x148d8031 usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1f2eb7e8 usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x30048731 usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x42ae0f49 usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4f5552f5 usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6f41126b usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x786558d6 usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9520c785 usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9703fcd2 usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x975d28c1 usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9ab679a0 usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb16874e0 usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb9003a52 usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd14e3474 usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x97e62e5d usb_serial_resume
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0xab112f5a usb_serial_suspend
+EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x3d7d8acd lcd_device_unregister
+EXPORT_SYMBOL drivers/video/backlight/lcd 0xda44a903 lcd_device_register
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0b61913e cyber2000fb_disable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x356d5173 cyber2000fb_enable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x5ea44755 cyber2000fb_get_fb_var
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xb2bdb6db cyber2000fb_attach
+EXPORT_SYMBOL drivers/video/display/display 0x9e70676b display_device_unregister
+EXPORT_SYMBOL drivers/video/display/display 0xc827af52 display_device_register
+EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var
+EXPORT_SYMBOL drivers/video/macmodes 0x6e73547d mac_find_mode
+EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x3eb26dcf matroxfb_g450_setpll_cond
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x6ea4ed77 matroxfb_g450_setclk
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x94864ca8 g450_mnp2f
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x52c59639 DAC1064_global_init
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xafed17f1 DAC1064_global_restore
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xcec60c74 matrox_G100
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xd64c9067 matrox_mystique
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x896f9629 matrox_millennium
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x74defcbf matrox_cfbX_init
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x43debd4b matroxfb_enable_irq
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x775f75d2 matroxfb_wait_for_sync
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x85c76e85 matroxfb_register_driver
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd5a5f714 matroxfb_unregister_driver
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x3f3d9f20 matroxfb_g450_connect
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x698c1164 matroxfb_g450_shutdown
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x30d809c3 matroxfb_DAC_in
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x71af45e7 matroxfb_DAC_out
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xb1d0f265 matroxfb_vgaHWinit
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xd964b116 matroxfb_vgaHWrestore
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe7ea2a02 matroxfb_read_pins
+EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x3d1111ef mb862xxfb_init_accel
+EXPORT_SYMBOL drivers/video/output 0x554ea422 video_output_unregister
+EXPORT_SYMBOL drivers/video/output 0xbb407f67 video_output_register
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free
+EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x17ebf629 svga_tilecopy
+EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x32b53ce7 svga_tilecursor
+EXPORT_SYMBOL drivers/video/svgalib 0x56b841d6 svga_get_tilemax
+EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x75da5e89 svga_tilefill
+EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x91578ec9 svga_get_caps
+EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xc29ff481 svga_settile
+EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xdcd110ba svga_tileblit
+EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format
+EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll
+EXPORT_SYMBOL drivers/video/syscopyarea 0x448201e2 sys_copyarea
+EXPORT_SYMBOL drivers/video/sysfillrect 0x82fcb79c sys_fillrect
+EXPORT_SYMBOL drivers/video/sysimgblt 0x44e5deb5 sys_imageblit
+EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga
+EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x75179cd8 w1_bq27000_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xcd087601 w1_bq27000_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x31c93248 w1_ds2760_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x4bcee3fb w1_ds2760_recall_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x57291673 w1_ds2760_store_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb90886f8 w1_ds2760_read
+EXPORT_SYMBOL drivers/w1/wire 0x2149a18e w1_unregister_family
+EXPORT_SYMBOL drivers/w1/wire 0x964eec7c w1_add_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xc997dbc0 w1_register_family
+EXPORT_SYMBOL drivers/w1/wire 0xe0dff99d w1_remove_master_device
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop
+EXPORT_SYMBOL fs/configfs/configfs 0x0ebdb6c4 config_group_init
+EXPORT_SYMBOL fs/configfs/configfs 0x0f69e26f config_item_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x0fb0b3c3 configfs_register_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0x44cd54ad config_item_init
+EXPORT_SYMBOL fs/configfs/configfs 0x5bb17d99 configfs_unregister_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0x92fc864a config_item_put
+EXPORT_SYMBOL fs/configfs/configfs 0xaa02c70f config_group_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0xb15302ed config_item_get
+EXPORT_SYMBOL fs/configfs/configfs 0xd2462a53 config_item_set_name
+EXPORT_SYMBOL fs/configfs/configfs 0xd27d9492 configfs_undepend_item
+EXPORT_SYMBOL fs/configfs/configfs 0xd3a4c9f8 configfs_depend_item
+EXPORT_SYMBOL fs/configfs/configfs 0xfa43359d config_group_find_item
+EXPORT_SYMBOL fs/fscache/fscache 0x00e04da2 fscache_withdraw_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x01ad456e fscache_object_lookup_negative
+EXPORT_SYMBOL fs/fscache/fscache 0x078e8b0e fscache_check_aux
+EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible
+EXPORT_SYMBOL fs/fscache/fscache 0x1b76898f __fscache_update_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x1c25fff9 fscache_io_error
+EXPORT_SYMBOL fs/fscache/fscache 0x254fcd3a __fscache_read_or_alloc_pages
+EXPORT_SYMBOL fs/fscache/fscache 0x2a5c9751 fscache_fsdef_index
+EXPORT_SYMBOL fs/fscache/fscache 0x33923c91 __fscache_wait_on_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x37da718b fscache_mark_pages_cached
+EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit
+EXPORT_SYMBOL fs/fscache/fscache 0x474b2c76 fscache_object_slow_work_ops
+EXPORT_SYMBOL fs/fscache/fscache 0x4cb08273 __fscache_uncache_page
+EXPORT_SYMBOL fs/fscache/fscache 0x6038da8d fscache_obtained_object
+EXPORT_SYMBOL fs/fscache/fscache 0x6b66ec2d __fscache_register_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x70e3b4bf __fscache_acquire_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x715147ff __fscache_write_page
+EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id
+EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states
+EXPORT_SYMBOL fs/fscache/fscache 0x9ebc906d __fscache_check_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0xa396ede1 fscache_enqueue_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq
+EXPORT_SYMBOL fs/fscache/fscache 0xb8150d2a __fscache_unregister_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0xd290af40 __fscache_read_or_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xd4493680 __fscache_maybe_release_page
+EXPORT_SYMBOL fs/fscache/fscache 0xddef6bdb __fscache_attr_changed
+EXPORT_SYMBOL fs/fscache/fscache 0xddf4ca2e __fscache_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xeace1e05 __fscache_relinquish_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xed2d2c71 fscache_put_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xf4d1d5eb fscache_init_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xf79783dc fscache_add_cache
+EXPORT_SYMBOL fs/nfsd/nfsd 0x23f0a2c8 nfs4_acl_nfsv4_to_posix
+EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who
+EXPORT_SYMBOL fs/nfsd/nfsd 0x46ffdc39 nfs4_acl_posix_to_nfsv4
+EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype
+EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new
+EXPORT_SYMBOL fs/quota/quota_tree 0x241902f0 qtree_entry_unused
+EXPORT_SYMBOL fs/quota/quota_tree 0x499ad0fd qtree_write_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x7b46946b qtree_release_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xe13f8e5e qtree_read_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xf55e7606 qtree_delete_dquot
+EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt
+EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table
+EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t
+EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table
+EXPORT_SYMBOL lib/crc7 0xc086bfba crc7
+EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table
+EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd
+EXPORT_SYMBOL net/802/p8023 0x7f4bd3f2 destroy_8023_client
+EXPORT_SYMBOL net/802/p8023 0x94cc405e make_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x06b2e3eb p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x07d75f18 v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump
+EXPORT_SYMBOL net/9p/9pnet 0x0d13895c p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x20681921 p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x25858d8d p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0x370524cc p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0x395c8c47 p9_client_auth
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x6e7334ba p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x6f6d72e3 p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x7567c061 p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0x758884b4 p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x7d9551dc p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x8c61936e p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x8ed038de p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x911cbd93 p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x92ed40df p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x98e482b9 p9_client_version
+EXPORT_SYMBOL net/9p/9pnet 0x9c831e88 p9_idpool_check
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0x9e39dc37 p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0xa75932e1 v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0xa7b79d6e p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0xb13a9d5e p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0xb8c441db p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0xb99a853c p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xc046e11f v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0xcb12f816 p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0xd665e78d p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0xe4c001d7 p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xe87bc9ec v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0xea905f32 p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0xeba2acc0 p9_client_statfs
+EXPORT_SYMBOL net/appletalk/appletalk 0x38d5ae2a atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0x5ef6e556 alloc_ltalkdev
+EXPORT_SYMBOL net/appletalk/appletalk 0xae2bcd99 aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0xe1c9ef1d atrtr_get_dev
+EXPORT_SYMBOL net/atm/atm 0x07e0a459 atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x15b2c527 vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x2227272e deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x3d10663a vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x4e54ae9d atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x767caa47 atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0x9d43b12a atm_charge
+EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xbcf032af atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0xbfd05248 register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xe178ebff atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0xeaa383bc atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal
+EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x29d13346 ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0x2a9e9295 ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0x31f88dff ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x637ab268 ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x7a912d41 ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0x8b566b29 ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x8da4719d ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xf04fecfa ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0xf0b4bc38 ax25_linkfail_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x07a68cef bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0e6a7652 hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x11079979 hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1c23911f hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x29a9907c bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x339833d9 hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x343a501d hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3656f2d0 hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3d3e9f5a hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x41d5a1bc bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4700ffe4 bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4be2b917 hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5043203d bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5199acc6 bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x615649f7 hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x65afb603 bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6c83850a hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x70fe7d78 hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x84882fd5 hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x892d51ee hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x92b01637 hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x944a5dbb hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x9a66ec3d hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa63335e0 hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc9b2d136 hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xca8666db hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcd838956 bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5f842e6 hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe88afc13 bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xedb2d048 hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xef7a05b1 bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xefd8f383 hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load
+EXPORT_SYMBOL net/bridge/bridge 0x718b13e3 br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9c078718 ebt_register_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9ee3f39e ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xce210262 ebt_do_table
+EXPORT_SYMBOL net/caif/caif 0x0515a1fc cfpkt_info
+EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client
+EXPORT_SYMBOL net/caif/caif 0x080806a6 cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer
+EXPORT_SYMBOL net/caif/caif 0x22db7ba5 cfpkt_queue
+EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x30347216 cfpkt_raw_extract
+EXPORT_SYMBOL net/caif/caif 0x40f6d4b2 cfpkt_erroneous
+EXPORT_SYMBOL net/caif/caif 0x43b64498 cfpkt_add_body
+EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x52a6b5bf cfpkt_log_pkt
+EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create
+EXPORT_SYMBOL net/caif/caif 0x5cac42de cfpkt_extr_head
+EXPORT_SYMBOL net/caif/caif 0x64d0f338 cfpkt_iterate
+EXPORT_SYMBOL net/caif/caif 0x658830f7 cfpkt_split
+EXPORT_SYMBOL net/caif/caif 0x684e9998 cfpkt_create_uplink
+EXPORT_SYMBOL net/caif/caif 0x692d1824 cfpkt_create
+EXPORT_SYMBOL net/caif/caif 0x69f4819e cfpkt_append
+EXPORT_SYMBOL net/caif/caif 0x6ecd0713 cfpkt_extr_trail
+EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x7a78e574 cfpkt_getlen
+EXPORT_SYMBOL net/caif/caif 0x8a72d48f cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0x8d8dee76 cfpkt_pad_trail
+EXPORT_SYMBOL net/caif/caif 0xa268b674 cfpkt_qpeek
+EXPORT_SYMBOL net/caif/caif 0xa59f933d cfpkt_dequeue
+EXPORT_SYMBOL net/caif/caif 0xa63e5333 cfpktq_create
+EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xb2072403 cfpkt_qcount
+EXPORT_SYMBOL net/caif/caif 0xbb6031ab cfpkt_addbdy
+EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer
+EXPORT_SYMBOL net/caif/caif 0xc66185ab cfpkt_add_head
+EXPORT_SYMBOL net/caif/caif 0xcbdccda8 cfpkt_setlen
+EXPORT_SYMBOL net/caif/caif 0xcc4c58c2 cfpkt_clone_release
+EXPORT_SYMBOL net/caif/caif 0xd4d506b1 cfpkt_raw_append
+EXPORT_SYMBOL net/caif/caif 0xe33b3eb3 cfpkt_peek_head
+EXPORT_SYMBOL net/caif/caif 0xe6f93775 cfpkt_add_trail
+EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf
+EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer
+EXPORT_SYMBOL net/caif/caif 0xf74f1e70 cfpkt_more
+EXPORT_SYMBOL net/caif/caif 0xfa50fafb cfpkt_destroy
+EXPORT_SYMBOL net/can/can 0x306254db can_rx_register
+EXPORT_SYMBOL net/can/can 0x5b27a810 can_send
+EXPORT_SYMBOL net/can/can 0x816a2ef4 can_rx_unregister
+EXPORT_SYMBOL net/can/can 0xbb3b126c can_proto_unregister
+EXPORT_SYMBOL net/can/can 0xf385a3e0 can_proto_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x1ddebcb2 ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x23caeeac ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x36020dd7 wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x43b8c35f wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x44e4f97d ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x4c9aa94f wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x79c1ddea ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x91ec8eeb wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x95225c8b wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xa72905eb ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xc93342ca ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xde509051 wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xf0609785 ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x43c94578 arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5344ffc1 arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x86ba40aa arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x436d8e56 ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x4628e4ec ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x9e8a5a9c ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x04e7f370 __nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2292a0e5 nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x322c934e nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9b942c61 nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb7550eab nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe125e5d7 nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf42d97fc nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/tunnel4 0x7cc9d491 xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0xc3afed03 xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x583e6978 ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x639f7aa8 ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x77fa722a ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x802d179f ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/tunnel6 0xb47d3fe5 xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/tunnel6 0xe880f7a4 xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x39272f02 xfrm6_tunnel_free_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xa5c3da86 xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe23962ac xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x27633476 ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x31ceef4a ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x421e6c6a ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5be9428f ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa26ff4ab ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa5409202 ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbb6d7ee3 ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xeca504ba ircomm_open
+EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value
+EXPORT_SYMBOL net/irda/irda 0x0794e13d iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service
+EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x103d636e irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x20845ab1 irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x2198b38b irlmp_open_lsap
+EXPORT_SYMBOL net/irda/irda 0x228b610a irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0x23624bb8 hashbin_get_first
+EXPORT_SYMBOL net/irda/irda 0x29c016a2 irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0x2b9bfdf3 iriap_open
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug
+EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object
+EXPORT_SYMBOL net/irda/irda 0x41eb5fe2 irlap_close
+EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value
+EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service
+EXPORT_SYMBOL net/irda/irda 0x4a12acfa alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0x4f15ae3d proc_irda
+EXPORT_SYMBOL net/irda/irda 0x5b005e87 irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0x62a74c59 irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new
+EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object
+EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies
+EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client
+EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x79d9212f irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x801ee5e3 irlap_open
+EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0x8b66dd06 async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x90a9f838 irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x951c0ba3 irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0x95f2efa4 irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0x98c4b9c4 irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find
+EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0xa1904e4e async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0xaf98b436 iriap_close
+EXPORT_SYMBOL net/irda/irda 0xb2d97f71 irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value
+EXPORT_SYMBOL net/irda/irda 0xbaddd6e5 irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute
+EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request
+EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next
+EXPORT_SYMBOL net/irda/irda 0xcee77b6c irttp_dup
+EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma
+EXPORT_SYMBOL net/irda/irda 0xd6fed498 irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0xd760b811 irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xd9e201b1 irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xfbb3d158 irttp_open_tsap
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x22adbe94 l2tp_recv_common
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x33b4f4f7 l2tp_tunnel_destruct
+EXPORT_SYMBOL net/lapb/lapb 0x06361f84 lapb_disconnect_request
+EXPORT_SYMBOL net/lapb/lapb 0x1d0c1ad8 lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x22739ef5 lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0x51455608 lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x6a1b766c lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0x977d1f38 lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0xc874a4fb lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0xfd490ed8 lapb_getparms
+EXPORT_SYMBOL net/mac80211/mac80211 0x00a14fcd ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0x067bf667 __ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x07f9a02e ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x0a06fbc0 ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x32174180 ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3471de04 ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3706e766 ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3b961737 ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c81a961 ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0x43d636b4 __ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x45c1f6c3 ieee80211_get_tkip_key
+EXPORT_SYMBOL net/mac80211/mac80211 0x49f0e481 ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x4e33844c ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x4fe42ff1 ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0x730b1e5c ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x732f1ad1 ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x768b90ad wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x7e9d8240 __ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x87ee2ae2 rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x8a8a470d ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x919ed0b0 ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x947b318d ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x9b3489a9 ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3ece24c ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xb7026854 ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0xbb975295 ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xc5aeb4f3 ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xc66d18c9 ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xcfbf2b03 ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xd01d22ea ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xd4e6811f ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xe2a413c3 __ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xe65c1649 ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xf0173b9f ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0xf5ec7d7b ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xf8e97579 ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0xfe6733e2 ieee80211_stop_queue
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x06d87371 ip_vs_skb_replace
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0c6fefda register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0d47134c ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0d73a60c ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1c29e4cb ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2f041519 register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4b26d781 unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5bdf8c3a unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5f9465c0 ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6e380c18 register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8ba83ef3 ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xd81a0dcb __nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xda286d70 __nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x1fc6bc82 nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x0b4acae4 xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x3d62d342 xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x51d7d860 xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x600f3cc7 xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x7ab79278 xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x87868d7c xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x92493cd7 xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x94a4b3d3 xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xb34ec804 xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xe8703757 xt_register_matches
+EXPORT_SYMBOL net/phonet/phonet 0x0f449d81 phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0x38caac41 phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0x5c2d9501 pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0x5f0bc702 pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0x68bf744c phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x9c3e833f pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0xa99646d2 phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0xef32715e pn_sock_unhash
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x09d3e8ff rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x14a2daac rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1954ec05 rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2774d434 rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x315e4936 rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x52343759 rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6e17bfc7 key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x77395f5b rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x825b4c8e rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x843ff524 rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xab75198a rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb1bb0080 rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd1bcb259 rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf44f4d60 rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf92a475b rxrpc_get_null_key
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x44f06d7b svc_pool_stats_open
+EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes
+EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast
+EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected
+EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect
+EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport
+EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x20a3ca02 tipc_register_media
+EXPORT_SYMBOL net/tipc/tipc 0x20bb03e2 tipc_createport_raw
+EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send
+EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge
+EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach
+EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port
+EXPORT_SYMBOL net/tipc/tipc 0x474fe8f9 tipc_reject_msg
+EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw
+EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode
+EXPORT_SYMBOL net/tipc/tipc 0x58c840dd tipc_get_port
+EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid
+EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0x649bd23a tipc_forward_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x6ba0594b tipc_send_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x7dbf8bac tipc_send_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x805f97e6 tipc_send_buf_fast
+EXPORT_SYMBOL net/tipc/tipc 0x8766d7fe tipc_createport
+EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr
+EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port
+EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port
+EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown
+EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name
+EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish
+EXPORT_SYMBOL net/tipc/tipc 0xbb34757d tipc_continue
+EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name
+EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity
+EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach
+EXPORT_SYMBOL net/tipc/tipc 0xdd806d44 tipc_send_buf
+EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer
+EXPORT_SYMBOL net/tipc/tipc 0xe2964713 tipc_recv_msg
+EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished
+EXPORT_SYMBOL net/tipc/tipc 0xe9e95673 tipc_forward_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle
+EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x7e81d7ab register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x39d223f4 wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0x71646723 wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x0147ed7d wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0f07937d cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0x14ef99ff __cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x179bfe12 cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x1afc0676 cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x1b91f4f6 regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x1ec9e946 cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0x204ea4b7 cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x24c957d0 cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x26754ee2 __cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x29b471f3 cfg80211_action_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x2aceb723 cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0x2ccf391c cfg80211_rx_action
+EXPORT_SYMBOL net/wireless/cfg80211 0x360aa0a0 wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x399396de wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x3cedc0fa freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x46a4e83f cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0x51292a31 cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0x5418753c __ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x5968d622 cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x6195f0ff cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0x671be38f cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x712eeb70 cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x71ba6ad6 ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x77d92dc1 ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x79e72321 cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x7a0b818b wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x7c64393e cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x7ccb4875 cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x7d381d2a cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x7dcab7e8 cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x8ab4c26e cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x97dd46d3 ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x98085bf0 wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x99e710e5 __cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x9f846265 wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xa8e63b2f cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0xac84ed26 cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xbd3d39b3 wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xcaaf60a7 ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0xcb980625 cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0xcfead162 cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xd5b8b66c cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xd83955ea cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0xe0afa1a2 ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xe878c191 cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xefa1174d wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/lib80211 0x175dd2a0 lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x5ad6b6aa lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0x7a97af53 lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x8576e84d lib80211_crypt_quiescing
+EXPORT_SYMBOL net/wireless/lib80211 0x8756e494 lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0xc087ebef lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xc7ceac25 lib80211_crypt_deinit_entries
+EXPORT_SYMBOL net/wireless/lib80211 0xcfa3a2c8 lib80211_crypt_info_init
+EXPORT_SYMBOL sound/ac97_bus 0x5698fc59 ac97_bus_type
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x417470f3 snd_seq_event_port_attach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x4d3fbd4b snd_seq_create_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb81ee5cc snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xc89aeab2 snd_seq_kernel_client_enqueue_blocking
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x0f1c49ed snd_seq_device_register_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x63584404 snd_seq_device_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x017f4a67 snd_midi_event_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x949c9ac8 snd_midi_event_no_status
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x951ea30c snd_midi_event_reset_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb00606b7 snd_midi_event_encode_byte
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb30510f7 snd_midi_event_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbeaecf8c snd_midi_event_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xddc220c4 snd_midi_event_reset_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf5eb237e snd_midi_event_free
+EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x5dd4e1bf snd_virmidi_new
+EXPORT_SYMBOL sound/core/snd 0x0da9b813 snd_card_create
+EXPORT_SYMBOL sound/core/snd 0x0ef4a8a4 snd_card_free_when_closed
+EXPORT_SYMBOL sound/core/snd 0x1297a612 snd_pci_quirk_lookup
+EXPORT_SYMBOL sound/core/snd 0x14122d2c snd_jack_new
+EXPORT_SYMBOL sound/core/snd 0x17001f02 snd_card_disconnect
+EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program
+EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer
+EXPORT_SYMBOL sound/core/snd 0x1bb5c1b5 snd_ctl_boolean_mono_info
+EXPORT_SYMBOL sound/core/snd 0x216c7d8e snd_ctl_find_id
+EXPORT_SYMBOL sound/core/snd 0x22697309 snd_register_device_for_dev
+EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line
+EXPORT_SYMBOL sound/core/snd 0x24e9e54c snd_component_add
+EXPORT_SYMBOL sound/core/snd 0x26719f1d snd_cards
+EXPORT_SYMBOL sound/core/snd 0x2811eed8 snd_info_register
+EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource
+EXPORT_SYMBOL sound/core/snd 0x32bbad60 _snd_ctl_add_slave
+EXPORT_SYMBOL sound/core/snd 0x3871b6f7 snd_card_register
+EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit
+EXPORT_SYMBOL sound/core/snd 0x3c73fac8 snd_jack_set_parent
+EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card
+EXPORT_SYMBOL sound/core/snd 0x4a9000a7 snd_card_set_id
+EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio
+EXPORT_SYMBOL sound/core/snd 0x53096c1d snd_ctl_remove
+EXPORT_SYMBOL sound/core/snd 0x54c77e27 snd_card_free
+EXPORT_SYMBOL sound/core/snd 0x6e4f0996 snd_add_device_sysfs_file
+EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable
+EXPORT_SYMBOL sound/core/snd 0x727657a2 snd_card_proc_new
+EXPORT_SYMBOL sound/core/snd 0x72ead571 snd_info_free_entry
+EXPORT_SYMBOL sound/core/snd 0x74f2b7d9 snd_ctl_make_virtual_master
+EXPORT_SYMBOL sound/core/snd 0x75836dfd snd_ctl_free_one
+EXPORT_SYMBOL sound/core/snd 0x7b86c2e2 snd_ctl_remove_id
+EXPORT_SYMBOL sound/core/snd 0x7bec1abc snd_ctl_notify
+EXPORT_SYMBOL sound/core/snd 0x84bf6cdc snd_device_free
+EXPORT_SYMBOL sound/core/snd 0x896feba0 snd_unregister_device
+EXPORT_SYMBOL sound/core/snd 0x8979dd82 snd_seq_root
+EXPORT_SYMBOL sound/core/snd 0x8c33d4fb snd_ctl_unregister_ioctl
+EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major
+EXPORT_SYMBOL sound/core/snd 0x94136742 snd_card_file_add
+EXPORT_SYMBOL sound/core/snd 0x9841dfa6 snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL sound/core/snd 0x99c7ced4 snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL sound/core/snd 0x9c3885d4 snd_power_wait
+EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str
+EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id
+EXPORT_SYMBOL sound/core/snd 0xacc92594 snd_ctl_register_ioctl
+EXPORT_SYMBOL sound/core/snd 0xaf89378f snd_card_file_remove
+EXPORT_SYMBOL sound/core/snd 0xafb377c2 snd_ctl_new1
+EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data
+EXPORT_SYMBOL sound/core/snd 0xb9d9e18d snd_device_register
+EXPORT_SYMBOL sound/core/snd 0xbd6d60e2 snd_jack_report
+EXPORT_SYMBOL sound/core/snd 0xcbb7c0e9 snd_info_create_card_entry
+EXPORT_SYMBOL sound/core/snd 0xcda12362 snd_device_new
+EXPORT_SYMBOL sound/core/snd 0xd51de002 snd_ctl_find_numid
+EXPORT_SYMBOL sound/core/snd 0xda74e409 snd_ctl_add
+EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf
+EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio
+EXPORT_SYMBOL sound/core/snd 0xe2ec14ef snd_info_create_module_entry
+EXPORT_SYMBOL sound/core/snd 0xf1d7a116 snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL sound/core/snd 0xf7fb7f7d snd_ctl_rename_id
+EXPORT_SYMBOL sound/core/snd 0xffa80328 snd_jack_set_key
+EXPORT_SYMBOL sound/core/snd-hwdep 0xad619e7a snd_hwdep_new
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xb0028d41 snd_dma_reserve_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xb71ac24d snd_dma_alloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xcd7b9de7 snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xf052a762 snd_dma_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xff7af02c snd_dma_get_reserved_buf
+EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any
+EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x07d9cd13 snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x09a08e0e snd_pcm_lib_write
+EXPORT_SYMBOL sound/core/snd-pcm 0x0adac6a3 snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL sound/core/snd-pcm 0x11d33056 snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL sound/core/snd-pcm 0x1680d0cb snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL sound/core/snd-pcm 0x1c9ec8f4 snd_pcm_sgbuf_get_chunk_size
+EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed
+EXPORT_SYMBOL sound/core/snd-pcm 0x20693d97 snd_pcm_new
+EXPORT_SYMBOL sound/core/snd-pcm 0x249ed6fd snd_pcm_open_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0x29342d20 snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL sound/core/snd-pcm 0x294ed320 snd_pcm_hw_constraint_list
+EXPORT_SYMBOL sound/core/snd-pcm 0x30c30906 snd_pcm_set_sync
+EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x3950e75d snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty
+EXPORT_SYMBOL sound/core/snd-pcm 0x3c88cd1d _snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x4b8824b1 snd_pcm_lib_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x4c25bf73 snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value
+EXPORT_SYMBOL sound/core/snd-pcm 0x5489a847 snd_pcm_lib_mmap_noncached
+EXPORT_SYMBOL sound/core/snd-pcm 0x54cb1ed3 snd_pcm_lib_readv
+EXPORT_SYMBOL sound/core/snd-pcm 0x56d8ef13 snd_pcm_sgbuf_ops_page
+EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence
+EXPORT_SYMBOL sound/core/snd-pcm 0x626e2e6e snd_pcm_lib_writev
+EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64
+EXPORT_SYMBOL sound/core/snd-pcm 0x663b3745 snd_pcm_suspend_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width
+EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear
+EXPORT_SYMBOL sound/core/snd-pcm 0x715566b6 snd_pcm_kernel_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x787e4ef3 snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x7a38b666 snd_pcm_hw_param_last
+EXPORT_SYMBOL sound/core/snd-pcm 0x84340f0e snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL sound/core/snd-pcm 0x8792cdcb snd_pcm_limit_hw_rates
+EXPORT_SYMBOL sound/core/snd-pcm 0x97ed3092 snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL sound/core/snd-pcm 0x9bc6922b snd_pcm_new_stream
+EXPORT_SYMBOL sound/core/snd-pcm 0x9f5a212e snd_pcm_period_elapsed
+EXPORT_SYMBOL sound/core/snd-pcm 0xa40e95ae snd_pcm_link_rwlock
+EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned
+EXPORT_SYMBOL sound/core/snd-pcm 0xafbd8293 snd_pcm_release_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xb193fabd snd_pcm_lib_read
+EXPORT_SYMBOL sound/core/snd-pcm 0xb19ea1b9 snd_pcm_hw_rule_add
+EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL sound/core/snd-pcm 0xba3d9adb snd_pcm_set_ops
+EXPORT_SYMBOL sound/core/snd-pcm 0xbc451fa8 snd_pcm_notify
+EXPORT_SYMBOL sound/core/snd-pcm 0xbd373bc1 snd_pcm_hw_param_first
+EXPORT_SYMBOL sound/core/snd-pcm 0xc42427ec snd_pcm_stop
+EXPORT_SYMBOL sound/core/snd-pcm 0xc5e148eb snd_pcm_suspend
+EXPORT_SYMBOL sound/core/snd-pcm 0xcb3eeefe snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0xcf85450a snd_pcm_mmap_data
+EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xd9a665eb snd_pcm_hw_constraint_step
+EXPORT_SYMBOL sound/core/snd-pcm 0xdc4c65dd snd_pcm_lib_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0xdf03e17f snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width
+EXPORT_SYMBOL sound/core/snd-pcm 0xe96783d4 snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0xef8525b5 snd_pcm_hw_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x01317905 snd_rawmidi_set_ops
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x12e9b0c6 snd_rawmidi_transmit_peek
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x383aa00b snd_rawmidi_kernel_open
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x3fbb7501 snd_rawmidi_drop_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x668f7dc0 snd_rawmidi_receive
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x6b88eb40 snd_rawmidi_drain_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x733b74d6 snd_rawmidi_kernel_release
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x81e928ca snd_rawmidi_transmit_empty
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x8234933a snd_rawmidi_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x8a4be0ae snd_rawmidi_kernel_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x93b36950 snd_rawmidi_info_select
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xa3dff37d snd_rawmidi_transmit
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xb2421d0c snd_rawmidi_transmit_ack
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xbc9e860d snd_rawmidi_drain_input
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xc6bef4dc snd_rawmidi_output_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xd3e2b94b snd_rawmidi_kernel_write
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xd4c80a5c snd_rawmidi_input_params
+EXPORT_SYMBOL sound/core/snd-timer 0x070f889c snd_timer_interrupt
+EXPORT_SYMBOL sound/core/snd-timer 0x464fa2c0 snd_timer_global_new
+EXPORT_SYMBOL sound/core/snd-timer 0x4dacfb59 snd_timer_open
+EXPORT_SYMBOL sound/core/snd-timer 0x4e21c025 snd_timer_stop
+EXPORT_SYMBOL sound/core/snd-timer 0x4fcc345e snd_timer_new
+EXPORT_SYMBOL sound/core/snd-timer 0x5bba7159 snd_timer_global_free
+EXPORT_SYMBOL sound/core/snd-timer 0x5da2d519 snd_timer_close
+EXPORT_SYMBOL sound/core/snd-timer 0x64b86e68 snd_timer_resolution
+EXPORT_SYMBOL sound/core/snd-timer 0x7b3bb0b9 snd_timer_start
+EXPORT_SYMBOL sound/core/snd-timer 0x7c1b0f0b snd_timer_global_register
+EXPORT_SYMBOL sound/core/snd-timer 0x8591d131 snd_timer_notify
+EXPORT_SYMBOL sound/core/snd-timer 0xc674aa03 snd_timer_pause
+EXPORT_SYMBOL sound/core/snd-timer 0xd442f64f snd_timer_continue
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xb54cc0b1 snd_mpu401_uart_new
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x20fcdf77 snd_opl3_timer_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2eff11e9 snd_opl3_create
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x33b02eb5 snd_opl3_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x51c0bd5c snd_opl3_init
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7bc1f267 snd_opl3_find_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x89958f40 snd_opl3_reset
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x93b56279 snd_opl3_hwdep_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9a49b366 snd_opl3_load_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xed2821a2 snd_opl3_new
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0c2a65a2 snd_vx_suspend
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3eea567a snd_vx_check_reg_bit
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x478c22f2 snd_vx_dsp_boot
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5ecf2f68 snd_vx_create
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x65de9dde snd_vx_resume
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x832f5e49 snd_vx_free_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdb0d19d3 snd_vx_setup_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xee968001 snd_vx_load_boot_image
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfdbea901 snd_vx_dsp_load
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4683c2ca snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x659d9d0f snd_ak4114_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x6bf4eef5 snd_ak4114_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x77ba6b5b snd_ak4114_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x96c3e3a1 snd_ak4114_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xdd460459 snd_ak4114_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x31019331 snd_ak4117_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x3c01f868 snd_ak4117_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x5c29f327 snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6c7c590f snd_ak4117_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xa8d5bd16 snd_ak4117_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xbe9e9d1f snd_ak4117_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x352f48cb snd_akm4xxx_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x7515318d snd_akm4xxx_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf9a57861 snd_akm4xxx_init
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xfd5691a6 snd_akm4xxx_reset
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x010ba221 snd_pt2258_reset
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x40a205c0 snd_pt2258_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x89f80d76 snd_tea575x_exit
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xa6373321 snd_tea575x_init
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x4052e659 snd_cs8427_reg_write
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x71c778cc snd_cs8427_iec958_active
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9fbdebc1 snd_cs8427_iec958_build
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xec782fe5 snd_cs8427_iec958_pcm
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xfb8c952f snd_cs8427_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x3237c6fd snd_i2c_device_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x3ee7f2e6 snd_i2c_device_free
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x6db350c0 snd_i2c_sendbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x9624714c snd_i2c_readbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xb8de6fff snd_i2c_bus_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xc6b01a60 snd_i2c_probeaddr
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5406a9fb snd_sbmixer_write
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x642260de snd_sbdsp_get_byte
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8731d4bb snd_sbmixer_read
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9055c3be snd_sbmixer_new
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa8ee3f59 snd_sbmixer_add_ctl
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xdb33732d snd_sbdsp_reset
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe5990052 snd_sbmixer_resume
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe5fd0705 snd_sbdsp_command
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xfcbde7b6 snd_sbmixer_suspend
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xfe2ef64a snd_sbdsp_create
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x3c5d8d42 snd_sb16dsp_get_pcm_ops
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x807c8d3a snd_sb16dsp_pcm
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xf1fa82b2 snd_sb16dsp_configure
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x041d53e7 snd_ac97_pcm_close
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0fea7d4a snd_ac97_pcm_open
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1390d055 snd_ac97_write
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1743d23a snd_ac97_set_rate
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2278a1b2 snd_ac97_update
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x459ef83d snd_ac97_suspend
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6004d36a snd_ac97_update_bits
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6032797d snd_ac97_get_short_name
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x60b4f221 snd_ac97_resume
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x852f1d75 snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x99723fb1 snd_ac97_read
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9ae6e109 snd_ac97_bus
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9ca53098 snd_ac97_pcm_assign
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbb2d5da3 snd_ac97_tune_hardware
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc366a850 snd_ac97_write_cache
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd0a95248 snd_ac97_update_power
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe70e48a4 snd_ac97_mixer
+EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0x177bfa1d hpi_send_recv
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0fe69a56 snd_emu10k1_ptr_read
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1dad1607 snd_emu10k1_voice_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2e95d3cc snd_emu10k1_memblk_map
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x68bfcb4e snd_emu10k1_ptr_write
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x6f668377 snd_emu10k1_synth_bzero
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7e249c20 snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd06e85f4 snd_emu10k1_synth_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd754204f snd_emu10k1_synth_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe58d3a4c snd_emu10k1_voice_alloc
+EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xb5d4c5c9 snd_hda_parse_generic_codec
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x117e7cfd snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x1902c346 snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x874fdebb snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0114d766 oxygen_write_spi
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x03ca8b9d oxygen_pci_suspend
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0e8324c7 oxygen_read8
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2b95a8bf oxygen_write8
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2e9b9a5c oxygen_pci_probe
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2fd89ea4 oxygen_write32
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x35e123db oxygen_write16_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3c70dc96 oxygen_write16
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x42b8f7f9 oxygen_pci_remove
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5bc6f6ac oxygen_read16
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5ef1d279 oxygen_default_i2s_mclk
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x795c6f06 oxygen_write8_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8b589e81 oxygen_write_ac97
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x959065b3 oxygen_write_i2c
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9ce4a3b2 oxygen_reset_uart
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb7a1ec2d oxygen_pci_resume
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb95f63b8 oxygen_write_uart
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbd74e3ca oxygen_read32
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdb42a2f6 oxygen_write32_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xea20589d oxygen_read_ac97
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf3995cd1 oxygen_write_ac97_masked
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x1f439829 snd_trident_stop_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x8c8c672b snd_trident_start_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x9877a73d snd_trident_alloc_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xdad5d667 snd_trident_write_voice_regs
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe856f7bd snd_trident_free_voice
+EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x50bff270 uda134x_dai
+EXPORT_SYMBOL sound/soundcore 0xeddf6e13 sound_class
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x04f15acd snd_emux_unlock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x6a94a763 snd_emux_free
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xd02e584a snd_emux_lock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe796d8f5 snd_emux_new
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xf0552a62 snd_emux_terminate_all
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xffa863c6 snd_emux_register
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x14ae926e __snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x2487f80e snd_util_mem_avail
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x2826b0d4 snd_util_memhdr_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x2fa4c12e snd_util_memhdr_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x4c230642 __snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x83cfd2f9 snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xbda0ebbb snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xcd1c1e07 __snd_util_memblk_new
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xa5dae2a5 snd_usbmidi_create
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x4750b6e6 dm_mem_cache_client_destroy
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x8d134a41 dm_mem_cache_alloc
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xb17a87a0 dm_mem_cache_client_create
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xb361eca9 dm_mem_cache_grow
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xe926c8e5 dm_mem_cache_free
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xf99dbdf5 dm_mem_cache_shrink
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x04dca738 lirc_unregister_driver
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x39e65007 lirc_get_pdata
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0xd63fd30f lirc_register_driver
+EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list
+EXPORT_SYMBOL vmlinux 0x00154fcc jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x00315718 bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0x003c8761 fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0x004346d9 xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x0089a35d rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x009646b0 vfs_writev
+EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer
+EXPORT_SYMBOL vmlinux 0x00fead52 tty_mutex
+EXPORT_SYMBOL vmlinux 0x01000e51 schedule
+EXPORT_SYMBOL vmlinux 0x0100c7da journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x014ea0ee bio_pair_release
+EXPORT_SYMBOL vmlinux 0x0151e723 fb_set_cmap
+EXPORT_SYMBOL vmlinux 0x01575aed skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x01624fe4 mmc_remove_host
+EXPORT_SYMBOL vmlinux 0x01694954 journal_force_commit
+EXPORT_SYMBOL vmlinux 0x016a08fd rdmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0x016d1ff0 serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x0172fd7f misc_register
+EXPORT_SYMBOL vmlinux 0x01760468 find_lock_page
+EXPORT_SYMBOL vmlinux 0x017b41fb ip_ct_attach
+EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap
+EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data
+EXPORT_SYMBOL vmlinux 0x01ae076c km_state_notify
+EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init
+EXPORT_SYMBOL vmlinux 0x01bbbd83 nobh_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x01c17662 elv_rb_find
+EXPORT_SYMBOL vmlinux 0x01c34c1a __xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x01c35525 swiotlb_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x01cd2c10 i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem
+EXPORT_SYMBOL vmlinux 0x01dc15d3 unbind_con_driver
+EXPORT_SYMBOL vmlinux 0x01f8fe78 dev_add_pack
+EXPORT_SYMBOL vmlinux 0x0203eef1 __starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x02062dc5 splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check
+EXPORT_SYMBOL vmlinux 0x0225a99f iunique
+EXPORT_SYMBOL vmlinux 0x022a8b6b blk_recount_segments
+EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu
+EXPORT_SYMBOL vmlinux 0x02430acc __xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x024d1421 sock_create_kern
+EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x0280dd9b md_barrier_request
+EXPORT_SYMBOL vmlinux 0x02932e22 bio_alloc
+EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc
+EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table
+EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler
+EXPORT_SYMBOL vmlinux 0x02bd62ad key_alloc
+EXPORT_SYMBOL vmlinux 0x02bf5e7e sock_wfree
+EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02e732a9 get_sb_pseudo
+EXPORT_SYMBOL vmlinux 0x02f38ce4 blk_start_request
+EXPORT_SYMBOL vmlinux 0x03014b16 aio_complete
+EXPORT_SYMBOL vmlinux 0x03105cdb nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key
+EXPORT_SYMBOL vmlinux 0x031761c0 thaw_super
+EXPORT_SYMBOL vmlinux 0x031a4d22 kill_anon_super
+EXPORT_SYMBOL vmlinux 0x031ff071 dquot_initialize
+EXPORT_SYMBOL vmlinux 0x03222173 ppp_channel_index
+EXPORT_SYMBOL vmlinux 0x032573b8 ip_fragment
+EXPORT_SYMBOL vmlinux 0x0325bdc5 audit_log_start
+EXPORT_SYMBOL vmlinux 0x0327e951 dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x03299232 bdi_register
+EXPORT_SYMBOL vmlinux 0x0331249e page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x03396bd1 sockfd_lookup
+EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set
+EXPORT_SYMBOL vmlinux 0x0349dd29 ida_pre_get
+EXPORT_SYMBOL vmlinux 0x03626365 netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0x037a0cba kfree
+EXPORT_SYMBOL vmlinux 0x0382c98c tcp_connect
+EXPORT_SYMBOL vmlinux 0x0398320d register_netdevice
+EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03ef1cee ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x04175767 gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x042fca3f journal_init_inode
+EXPORT_SYMBOL vmlinux 0x045ed4b4 ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x046d0823 vfs_create
+EXPORT_SYMBOL vmlinux 0x047586aa arp_find
+EXPORT_SYMBOL vmlinux 0x047d5751 give_up_console
+EXPORT_SYMBOL vmlinux 0x047f1217 dcache_readdir
+EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x0497f1f7 scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0x04be9ff4 i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0x04c28504 pci_select_bars
+EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0x04e9bfbc inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x0503e7a4 set_pages_array_wc
+EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x053420c1 acpi_is_video_device
+EXPORT_SYMBOL vmlinux 0x053ed3d6 dquot_transfer
+EXPORT_SYMBOL vmlinux 0x05499df7 acpi_bus_generate_proc_event
+EXPORT_SYMBOL vmlinux 0x05620624 simple_rename
+EXPORT_SYMBOL vmlinux 0x059528a7 block_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x05a6b3f4 get_agp_version
+EXPORT_SYMBOL vmlinux 0x05bc18ab pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0x05c86f9e blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x05d8f8e8 block_write_begin
+EXPORT_SYMBOL vmlinux 0x05d91077 agp_generic_destroy_page
+EXPORT_SYMBOL vmlinux 0x05e28d43 __first_cpu
+EXPORT_SYMBOL vmlinux 0x05ed2335 tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x05f3416d poll_freewait
+EXPORT_SYMBOL vmlinux 0x05f4f639 kernel_read
+EXPORT_SYMBOL vmlinux 0x061601bb rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0x061651be strcat
+EXPORT_SYMBOL vmlinux 0x063a471f copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0x0640bf8f uart_resume_port
+EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx
+EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache
+EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc
+EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x06cd95c7 journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x06d4261f dm_table_get_size
+EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0x06e62bd9 mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn
+EXPORT_SYMBOL vmlinux 0x071118cb pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8
+EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace
+EXPORT_SYMBOL vmlinux 0x07500053 vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x0779489c sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable
+EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong
+EXPORT_SYMBOL vmlinux 0x079b1b6f I_BDEV
+EXPORT_SYMBOL vmlinux 0x07a1c103 sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x07a6a3e3 bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x07e767dd km_report
+EXPORT_SYMBOL vmlinux 0x07e8306e blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x07f537d5 fb_blank
+EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses
+EXPORT_SYMBOL vmlinux 0x082c7e3a mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0x083b5ae5 acpi_bus_start
+EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0x08520327 bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0x085cfab6 inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x08960bf1 skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0x08b59770 tty_free_termios
+EXPORT_SYMBOL vmlinux 0x08c3b89e nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x0901e2ce block_sync_page
+EXPORT_SYMBOL vmlinux 0x091bfeb8 scsi_register_driver
+EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled
+EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages
+EXPORT_SYMBOL vmlinux 0x095f8706 acpi_lock_ac_dir
+EXPORT_SYMBOL vmlinux 0x0964a667 tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x09775cdc kref_get
+EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources
+EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x099be350 register_con_driver
+EXPORT_SYMBOL vmlinux 0x099d8c59 clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x09a18679 lock_may_write
+EXPORT_SYMBOL vmlinux 0x09b68317 simple_getattr
+EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d1ecbe simple_dir_operations
+EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions
+EXPORT_SYMBOL vmlinux 0x09e3f8e9 tty_vhangup
+EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a2d5665 scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0x0a3ea7bf tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0x0a521693 fb_find_mode
+EXPORT_SYMBOL vmlinux 0x0a688aa6 dma_sync_wait
+EXPORT_SYMBOL vmlinux 0x0a7e99b8 __task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x0aa113ef dquot_drop
+EXPORT_SYMBOL vmlinux 0x0aa4088d scsi_unregister
+EXPORT_SYMBOL vmlinux 0x0aca0c80 bitmap_end_sync
+EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all
+EXPORT_SYMBOL vmlinux 0x0adc7068 tcp_shutdown
+EXPORT_SYMBOL vmlinux 0x0ae0b8c2 __scm_send
+EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert
+EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b2c91bf input_unregister_device
+EXPORT_SYMBOL vmlinux 0x0b51430c sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b8ba7bb vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0x0bb453be jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0x0bbf4342 sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat
+EXPORT_SYMBOL vmlinux 0x0bcb08f3 tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0x0bf9c146 __wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x0c0e3642 journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x0c0ee20e agp_put_bridge
+EXPORT_SYMBOL vmlinux 0x0c509294 mmc_wait_for_cmd
+EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region
+EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register
+EXPORT_SYMBOL vmlinux 0x0cd64517 vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x0cd7ed3f submit_bio
+EXPORT_SYMBOL vmlinux 0x0cda1435 pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0x0cddbb07 bio_put
+EXPORT_SYMBOL vmlinux 0x0d004b36 generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x0d05a7fe skb_unlink
+EXPORT_SYMBOL vmlinux 0x0d10a231 iterate_mounts
+EXPORT_SYMBOL vmlinux 0x0d2e1996 posix_test_lock
+EXPORT_SYMBOL vmlinux 0x0d3541f2 ps2_command
+EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type
+EXPORT_SYMBOL vmlinux 0x0d46e295 generic_getxattr
+EXPORT_SYMBOL vmlinux 0x0d53253a unlock_buffer
+EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d652bb4 unregister_memory_isolate_notifier
+EXPORT_SYMBOL vmlinux 0x0d798a2d blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x0d97a85a tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0ddb7e9c pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0x0ddd3a33 acpi_match_device_ids
+EXPORT_SYMBOL vmlinux 0x0e173e69 inet6_bind
+EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x0e29eb14 i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0x0e34c69f netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x0e52592a panic
+EXPORT_SYMBOL vmlinux 0x0e5b01d9 __xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x0e8d64f3 d_alloc_name
+EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free
+EXPORT_SYMBOL vmlinux 0x0ec9f3f5 eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x0ed3cf33 scsi_print_command
+EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed
+EXPORT_SYMBOL vmlinux 0x0edce874 acpi_lock_battery_dir
+EXPORT_SYMBOL vmlinux 0x0f05a1ef vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x0f0636f0 netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0x0f568330 pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0x0f712698 rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x0f9c1071 consume_skb
+EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fc5e8eb radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event
+EXPORT_SYMBOL vmlinux 0x0fe29e3e mmc_card_sleep
+EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress
+EXPORT_SYMBOL vmlinux 0x10109bfd pci_save_state
+EXPORT_SYMBOL vmlinux 0x1013e886 dm_exception_store_type_unregister
+EXPORT_SYMBOL vmlinux 0x106a542c pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user
+EXPORT_SYMBOL vmlinux 0x1078ce2a __bio_clone
+EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint
+EXPORT_SYMBOL vmlinux 0x109e9747 fd_install
+EXPORT_SYMBOL vmlinux 0x10a50c00 elevator_exit
+EXPORT_SYMBOL vmlinux 0x10ab1af1 alloc_disk
+EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10da7e4b brioctl_set
+EXPORT_SYMBOL vmlinux 0x10df2543 xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu
+EXPORT_SYMBOL vmlinux 0x10f4a70d netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x11071ad0 sg_miter_start
+EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype
+EXPORT_SYMBOL vmlinux 0x1108e1c3 agp_generic_free_by_type
+EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x1130287a mmc_release_host
+EXPORT_SYMBOL vmlinux 0x11333ecf phy_detach
+EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x11887c19 phy_connect_direct
+EXPORT_SYMBOL vmlinux 0x118f01ea putname
+EXPORT_SYMBOL vmlinux 0x1190b1f2 seq_putc
+EXPORT_SYMBOL vmlinux 0x119fdd0b clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0x11c8a74c ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0x11e4eac2 napi_complete
+EXPORT_SYMBOL vmlinux 0x11f78247 dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin
+EXPORT_SYMBOL vmlinux 0x11fb8998 kernel_getpeername
+EXPORT_SYMBOL vmlinux 0x11ffad0f try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x120d5129 thaw_process
+EXPORT_SYMBOL vmlinux 0x120fadd0 inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0x1254aa58 udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0x1255beb6 put_page
+EXPORT_SYMBOL vmlinux 0x129bedf1 __pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0x12a3cade journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x12a58cb5 cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0x12bb1165 key_negate_and_link
+EXPORT_SYMBOL vmlinux 0x12e831aa dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0x12f305ef phy_attach_direct
+EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x12fe850d compat_sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x130560d1 pnp_get_resource
+EXPORT_SYMBOL vmlinux 0x1325339d dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x132f24ac dma_async_device_register
+EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support
+EXPORT_SYMBOL vmlinux 0x137b102d simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x1394b8a9 agp_flush_chipset
+EXPORT_SYMBOL vmlinux 0x13a59fcd filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid
+EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation
+EXPORT_SYMBOL vmlinux 0x13ff87f1 journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x14042a3e inode_setattr
+EXPORT_SYMBOL vmlinux 0x1407539a jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0x1408295c udplite_prot
+EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier
+EXPORT_SYMBOL vmlinux 0x1436917d down_write
+EXPORT_SYMBOL vmlinux 0x1455917f fget
+EXPORT_SYMBOL vmlinux 0x14598b7e __scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0x145d078c tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0x1477e90a pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0x14b95598 vfs_link
+EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x14d8b7f1 pci_find_capability
+EXPORT_SYMBOL vmlinux 0x14ea1943 dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x14f37a99 agp_generic_alloc_page
+EXPORT_SYMBOL vmlinux 0x15020348 get_write_access
+EXPORT_SYMBOL vmlinux 0x153b6d7e lookup_hash
+EXPORT_SYMBOL vmlinux 0x154b6cb2 inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x155620b1 vga_get
+EXPORT_SYMBOL vmlinux 0x155f480a pnp_unregister_card_driver
+EXPORT_SYMBOL vmlinux 0x156ac384 invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0x15720483 mmc_power_restore_host
+EXPORT_SYMBOL vmlinux 0x158c5737 send_sig
+EXPORT_SYMBOL vmlinux 0x15aaaf51 dev_open
+EXPORT_SYMBOL vmlinux 0x15d60372 padata_alloc
+EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister
+EXPORT_SYMBOL vmlinux 0x15db2aa6 bdget
+EXPORT_SYMBOL vmlinux 0x15ec1314 redraw_screen
+EXPORT_SYMBOL vmlinux 0x15f084b7 input_register_handler
+EXPORT_SYMBOL vmlinux 0x1607b0f5 __ip_select_ident
+EXPORT_SYMBOL vmlinux 0x160bb650 truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled
+EXPORT_SYMBOL vmlinux 0x1624487e input_allocate_device
+EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x16478acc simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock
+EXPORT_SYMBOL vmlinux 0x165a9de1 wireless_spy_update
+EXPORT_SYMBOL vmlinux 0x16651452 sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1
+EXPORT_SYMBOL vmlinux 0x16b81c98 skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x16bc3a24 alloc_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0x16c178d1 pcix_get_mmrbc
+EXPORT_SYMBOL vmlinux 0x16cb8ec6 default_llseek
+EXPORT_SYMBOL vmlinux 0x16eef42d proto_register
+EXPORT_SYMBOL vmlinux 0x170bf18b acpi_unlock_ac_dir
+EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object
+EXPORT_SYMBOL vmlinux 0x170d0e49 lro_flush_all
+EXPORT_SYMBOL vmlinux 0x17155ac5 journal_update_format
+EXPORT_SYMBOL vmlinux 0x17175757 commit_creds
+EXPORT_SYMBOL vmlinux 0x1763f015 ida_remove
+EXPORT_SYMBOL vmlinux 0x17653928 cont_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x17676d28 netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x1777dea9 agp_generic_create_gatt_table
+EXPORT_SYMBOL vmlinux 0x1789d271 xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0x17a26c5a find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0x17d9a17b xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17eeff02 i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x1805c0f8 dquot_acquire
+EXPORT_SYMBOL vmlinux 0x18308162 inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x183b4ccd elv_register_queue
+EXPORT_SYMBOL vmlinux 0x183b86dd sock_no_poll
+EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL vmlinux 0x184fd6b8 lro_vlan_hwaccel_receive_skb
+EXPORT_SYMBOL vmlinux 0x18570582 xfrm_input
+EXPORT_SYMBOL vmlinux 0x186a34e9 rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0x187366e7 pci_iomap
+EXPORT_SYMBOL vmlinux 0x18801700 get_disk
+EXPORT_SYMBOL vmlinux 0x1896c5ae tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x18b18ea5 uart_register_driver
+EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe
+EXPORT_SYMBOL vmlinux 0x18d80137 __neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0x18fdd513 bio_copy_user
+EXPORT_SYMBOL vmlinux 0x19349400 pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x1945d781 filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x195e10a9 skb_queue_head
+EXPORT_SYMBOL vmlinux 0x1972ede2 tcp_poll
+EXPORT_SYMBOL vmlinux 0x19743084 spi_release_transport
+EXPORT_SYMBOL vmlinux 0x197ca03a vfs_statfs
+EXPORT_SYMBOL vmlinux 0x1988dcb8 nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19a4af42 md_check_recovery
+EXPORT_SYMBOL vmlinux 0x19b16064 cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0x19db1a16 sock_register
+EXPORT_SYMBOL vmlinux 0x1a0bb1f7 task_nice
+EXPORT_SYMBOL vmlinux 0x1a0febed noop_llseek
+EXPORT_SYMBOL vmlinux 0x1a16dabf path_put
+EXPORT_SYMBOL vmlinux 0x1a18886e unlock_page
+EXPORT_SYMBOL vmlinux 0x1a2a19ab journal_wipe
+EXPORT_SYMBOL vmlinux 0x1a3f3148 mmc_host_lazy_disable
+EXPORT_SYMBOL vmlinux 0x1a3fcfa3 find_or_create_page
+EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled
+EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch
+EXPORT_SYMBOL vmlinux 0x1a6f9d07 thermal_cooling_device_unregister
+EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait
+EXPORT_SYMBOL vmlinux 0x1a925a66 down
+EXPORT_SYMBOL vmlinux 0x1a9fbd57 fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in
+EXPORT_SYMBOL vmlinux 0x1aa48f55 dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0x1abf1dec set_pages_wb
+EXPORT_SYMBOL vmlinux 0x1ac3bccb dev_uc_add
+EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b031c5b inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0x1b2f33c0 vfs_getattr
+EXPORT_SYMBOL vmlinux 0x1b448878 tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0x1b465abc __lookup_one_len
+EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton
+EXPORT_SYMBOL vmlinux 0x1b6c897b prepare_creds
+EXPORT_SYMBOL vmlinux 0x1b6c9ffd llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0x1b7f9d68 dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b903168 filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1bb9805a cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0x1bc8cd4e disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x1bcc8aca kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x1bd5ead1 ethtool_ntuple_flush
+EXPORT_SYMBOL vmlinux 0x1c039585 linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x1c1aa600 rfkill_register
+EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c4fa49b xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x1c635a9f iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset
+EXPORT_SYMBOL vmlinux 0x1c8e9bc5 blk_rq_init
+EXPORT_SYMBOL vmlinux 0x1c957316 agp_collect_device_status
+EXPORT_SYMBOL vmlinux 0x1c96289e udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0x1caa84d8 framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x1cbbb841 generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x1cc53149 kfree_skb
+EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cd17804 ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x1ce8558f napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x1cf4e93c scsi_block_requests
+EXPORT_SYMBOL vmlinux 0x1d1eab29 jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d3f2179 iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0x1d459be2 tty_port_close
+EXPORT_SYMBOL vmlinux 0x1d6c9445 hippi_neigh_setup_dev
+EXPORT_SYMBOL vmlinux 0x1d80b06c pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0x1d866242 journal_stop
+EXPORT_SYMBOL vmlinux 0x1d9676f8 bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0x1daac243 scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache
+EXPORT_SYMBOL vmlinux 0x1dbe1dea log_start_commit
+EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dd4614f phy_device_create
+EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1de55817 pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0x1deed478 jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0x1df0ccd0 vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe
+EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc
+EXPORT_SYMBOL vmlinux 0x1e2e427f cpumask_next_and
+EXPORT_SYMBOL vmlinux 0x1e5365b6 journal_dirty_data
+EXPORT_SYMBOL vmlinux 0x1e545fb2 abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0x1e5b18bd remove_arg_zero
+EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr
+EXPORT_SYMBOL vmlinux 0x1e6e438b compat_ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x1e96ec39 ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1ed71082 no_llseek
+EXPORT_SYMBOL vmlinux 0x1ee99984 padata_do_serial
+EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set
+EXPORT_SYMBOL vmlinux 0x1f030d70 sock_no_bind
+EXPORT_SYMBOL vmlinux 0x1f2372d6 soft_cursor
+EXPORT_SYMBOL vmlinux 0x1f31dfea pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0x1f7b6478 have_submounts
+EXPORT_SYMBOL vmlinux 0x1f959f82 compat_tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x1fa2cc05 dump_trace
+EXPORT_SYMBOL vmlinux 0x1fb70375 __dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0x1fbf5631 devm_free_irq
+EXPORT_SYMBOL vmlinux 0x1fc5e8ca inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x1fc7403e arp_create
+EXPORT_SYMBOL vmlinux 0x1fcadea2 netpoll_send_skb
+EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag
+EXPORT_SYMBOL vmlinux 0x1fd96d5e dev_uc_del
+EXPORT_SYMBOL vmlinux 0x1feb717f kernel_getsockname
+EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region
+EXPORT_SYMBOL vmlinux 0x1ff92ec1 lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul
+EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x203c9c50 journal_start_commit
+EXPORT_SYMBOL vmlinux 0x204e301e __find_get_block
+EXPORT_SYMBOL vmlinux 0x2061fdfd alloc_pages_current
+EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table
+EXPORT_SYMBOL vmlinux 0x209a2e24 i2c_transfer
+EXPORT_SYMBOL vmlinux 0x20a22791 block_truncate_page
+EXPORT_SYMBOL vmlinux 0x20dee933 idr_get_new_above
+EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum
+EXPORT_SYMBOL vmlinux 0x212ce9b9 iput
+EXPORT_SYMBOL vmlinux 0x214d949b complete_request_key
+EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16
+EXPORT_SYMBOL vmlinux 0x216001c0 __register_chrdev
+EXPORT_SYMBOL vmlinux 0x2192f399 buffer_migrate_page
+EXPORT_SYMBOL vmlinux 0x21aa3ec9 inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id
+EXPORT_SYMBOL vmlinux 0x21f646f5 inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq
+EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log
+EXPORT_SYMBOL vmlinux 0x2288378f system_state
+EXPORT_SYMBOL vmlinux 0x22891ecd page_symlink
+EXPORT_SYMBOL vmlinux 0x228c4c0d bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x228ed977 __scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x22961ac6 remove_from_page_cache
+EXPORT_SYMBOL vmlinux 0x22a1ff37 sk_alloc
+EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound
+EXPORT_SYMBOL vmlinux 0x22b4c4a5 blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0x22b5c006 dev_get_stats
+EXPORT_SYMBOL vmlinux 0x22c9d5bd inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x23018607 tcp_disconnect
+EXPORT_SYMBOL vmlinux 0x23100738 setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x23122bff thermal_cooling_device_register
+EXPORT_SYMBOL vmlinux 0x2312564e phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x23168d97 security_path_link
+EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul
+EXPORT_SYMBOL vmlinux 0x2334adc2 pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0x234509f3 strncat
+EXPORT_SYMBOL vmlinux 0x234f85f4 abort_creds
+EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x2357bb41 bio_copy_kern
+EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy
+EXPORT_SYMBOL vmlinux 0x23899d09 jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x23b99e92 node_states
+EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23d64270 deactivate_super
+EXPORT_SYMBOL vmlinux 0x23f1a0ab sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node
+EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x2449c86e __pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x245d186b shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x24729d0e d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x24c34326 thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL vmlinux 0x24cbf137 invalidate_inodes
+EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add
+EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function
+EXPORT_SYMBOL vmlinux 0x24fe7130 pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid
+EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x258bbdd1 scsi_host_put
+EXPORT_SYMBOL vmlinux 0x25a11550 dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0x25a223e6 scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0x25bc4838 dm_table_get
+EXPORT_SYMBOL vmlinux 0x25bf06de jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen
+EXPORT_SYMBOL vmlinux 0x2606120e skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x260c6629 blk_register_region
+EXPORT_SYMBOL vmlinux 0x261ad215 proc_mkdir
+EXPORT_SYMBOL vmlinux 0x2637d513 __seq_open_private
+EXPORT_SYMBOL vmlinux 0x26467b22 iget_failed
+EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x26ae9624 __serio_register_port
+EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create
+EXPORT_SYMBOL vmlinux 0x26e684d0 ip_mc_rejoin_group
+EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x26f87c26 pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler
+EXPORT_SYMBOL vmlinux 0x271f68f7 default_unplug_io_fn
+EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del
+EXPORT_SYMBOL vmlinux 0x273453fa single_release
+EXPORT_SYMBOL vmlinux 0x274e1e92 register_nls
+EXPORT_SYMBOL vmlinux 0x276aa7d5 xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0x277b90ff rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x27864d57 memparse
+EXPORT_SYMBOL vmlinux 0x278e90e0 locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x27b057c4 sg_miter_next
+EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic
+EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x27cb5ab2 skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic
+EXPORT_SYMBOL vmlinux 0x27d0c1a2 sock_wmalloc
+EXPORT_SYMBOL vmlinux 0x27f439ac kernel_accept
+EXPORT_SYMBOL vmlinux 0x280f2111 blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll
+EXPORT_SYMBOL vmlinux 0x2866c80d loop_register_transfer
+EXPORT_SYMBOL vmlinux 0x2872bc9c skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x2882e2dd set_pages_nx
+EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28aa2592 filemap_fault
+EXPORT_SYMBOL vmlinux 0x28b40fb5 mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x28ec27e3 security_path_unlink
+EXPORT_SYMBOL vmlinux 0x290432e8 journal_create
+EXPORT_SYMBOL vmlinux 0x2911ea4c kobject_add
+EXPORT_SYMBOL vmlinux 0x2919be53 mmc_request_done
+EXPORT_SYMBOL vmlinux 0x291c2584 udp_disconnect
+EXPORT_SYMBOL vmlinux 0x291e9107 jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0x293b58e1 pci_restore_state
+EXPORT_SYMBOL vmlinux 0x293dea03 tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x293f383b acpi_processor_register_performance
+EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x299ab1e6 napi_frags_skb
+EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set
+EXPORT_SYMBOL vmlinux 0x29c6d230 remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0x29cd2920 ip6_route_output
+EXPORT_SYMBOL vmlinux 0x29f10e3f gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x29fbc187 tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0x2a1bf529 skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq
+EXPORT_SYMBOL vmlinux 0x2a23d051 i2c_del_driver
+EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature
+EXPORT_SYMBOL vmlinux 0x2a3107de prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0x2a48756c tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x2a5b9eae phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x2a7b0819 tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0x2ab2e128 d_find_alias
+EXPORT_SYMBOL vmlinux 0x2ab83e54 register_snap_client
+EXPORT_SYMBOL vmlinux 0x2ae48894 inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x2af1ef90 pnp_register_card_driver
+EXPORT_SYMBOL vmlinux 0x2af4bedf slow_work_register_user
+EXPORT_SYMBOL vmlinux 0x2b04968c alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b3fc46b dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x2b5967bc read_cache_pages
+EXPORT_SYMBOL vmlinux 0x2b6497ab fsnotify_obtain_group
+EXPORT_SYMBOL vmlinux 0x2b6a88c6 cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0x2b7daa3c tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler
+EXPORT_SYMBOL vmlinux 0x2bf04525 llc_add_pack
+EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle
+EXPORT_SYMBOL vmlinux 0x2c04b5e6 scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x2c0faa10 elv_rb_add
+EXPORT_SYMBOL vmlinux 0x2c766172 tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x2ce54b56 path_is_under
+EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic
+EXPORT_SYMBOL vmlinux 0x2d02f816 sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x2d09989d __scsi_put_command
+EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d2960ab tty_name
+EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x2d5c00ba input_inject_event
+EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2d9ef758 filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x2da3f72a generic_read_dir
+EXPORT_SYMBOL vmlinux 0x2da5f5f7 km_query
+EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu
+EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception
+EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write
+EXPORT_SYMBOL vmlinux 0x2dfa9eda block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x2e06111d cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e3d2edb cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem
+EXPORT_SYMBOL vmlinux 0x2e648ed4 __invalidate_device
+EXPORT_SYMBOL vmlinux 0x2e7ed600 pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0x2ebfaa00 secpath_dup
+EXPORT_SYMBOL vmlinux 0x2ef7cd2e neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x2efcd79e mapping_tagged
+EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource
+EXPORT_SYMBOL vmlinux 0x2f165e9e dev_close
+EXPORT_SYMBOL vmlinux 0x2f225faf xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0x2f3b02f1 mdiobus_register
+EXPORT_SYMBOL vmlinux 0x2f799112 pci_bus_type
+EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp
+EXPORT_SYMBOL vmlinux 0x2fd60df9 key_task_permission
+EXPORT_SYMBOL vmlinux 0x2fdb9e8a jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0x2fdda4a6 qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0x2fed4219 register_netdev
+EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name
+EXPORT_SYMBOL vmlinux 0x2ff13c29 phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x301eebda ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command
+EXPORT_SYMBOL vmlinux 0x3028905d vga_switcheroo_client_fb_set
+EXPORT_SYMBOL vmlinux 0x3045882b vfs_readv
+EXPORT_SYMBOL vmlinux 0x304eac94 xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x307b9b00 __page_cache_alloc
+EXPORT_SYMBOL vmlinux 0x307d898e agp_unbind_memory
+EXPORT_SYMBOL vmlinux 0x30a7a729 pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x30b12b0c jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0x30c61ca7 mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write
+EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x3119bc5e dev_txq_stats_fold
+EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d default_red
+EXPORT_SYMBOL vmlinux 0x3153458e skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x317d54be migrate_page
+EXPORT_SYMBOL vmlinux 0x318c03f5 eth_type_trans
+EXPORT_SYMBOL vmlinux 0x3198e452 scsi_put_command
+EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck
+EXPORT_SYMBOL vmlinux 0x31d6bbaa max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0x31e0c59f blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz
+EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p
+EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc
+EXPORT_SYMBOL vmlinux 0x31f19d32 try_to_release_page
+EXPORT_SYMBOL vmlinux 0x32139023 security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0x32243f57 jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x3228cd0e pci_disable_link_state
+EXPORT_SYMBOL vmlinux 0x32447137 con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0x32682864 __mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x32720176 xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x3277f82a security_file_mmap
+EXPORT_SYMBOL vmlinux 0x327dfef8 idr_replace
+EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint
+EXPORT_SYMBOL vmlinux 0x329d6f67 vfs_follow_link
+EXPORT_SYMBOL vmlinux 0x32a24cc5 __nla_reserve
+EXPORT_SYMBOL vmlinux 0x32b1738c bd_claim
+EXPORT_SYMBOL vmlinux 0x32bceea5 nf_register_hook
+EXPORT_SYMBOL vmlinux 0x32c28395 gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x32c940a3 kill_pgrp
+EXPORT_SYMBOL vmlinux 0x32db9ce9 scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x32f647bd mntput_no_expire
+EXPORT_SYMBOL vmlinux 0x3310b4d5 ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x333d9e8f sget
+EXPORT_SYMBOL vmlinux 0x33429ccd pci_enable_device
+EXPORT_SYMBOL vmlinux 0x3374e509 vfs_fsync
+EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page
+EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0x341bbf9e mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x343662a2 security_path_truncate
+EXPORT_SYMBOL vmlinux 0x34391fab ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x3444fa62 phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x3452bc8e simple_fill_super
+EXPORT_SYMBOL vmlinux 0x34559ca1 agp_alloc_page_array
+EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long
+EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x34692cb7 current_fs_time
+EXPORT_SYMBOL vmlinux 0x347c42c7 __destroy_inode
+EXPORT_SYMBOL vmlinux 0x34897c1e get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x349cba85 strchr
+EXPORT_SYMBOL vmlinux 0x34a678a9 skb_recycle_check
+EXPORT_SYMBOL vmlinux 0x352193c0 acpi_bus_get_status
+EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe
+EXPORT_SYMBOL vmlinux 0x3561b679 release_sock
+EXPORT_SYMBOL vmlinux 0x3582ed17 vfs_stat
+EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf
+EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator
+EXPORT_SYMBOL vmlinux 0x35ca63a8 poll_initwait
+EXPORT_SYMBOL vmlinux 0x35cb41c7 posix_lock_file
+EXPORT_SYMBOL vmlinux 0x35cee1a1 ps2_begin_command
+EXPORT_SYMBOL vmlinux 0x35d7d357 kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0x35db4efd vga_tryget
+EXPORT_SYMBOL vmlinux 0x35e2a750 hippi_type_trans
+EXPORT_SYMBOL vmlinux 0x35fb2426 rtnl_unicast
+EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask
+EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x361eba7f kernel_bind
+EXPORT_SYMBOL vmlinux 0x36369f68 sock_update_classid
+EXPORT_SYMBOL vmlinux 0x3636adb4 fsnotify_destroy_mark_by_entry
+EXPORT_SYMBOL vmlinux 0x36722d02 pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0x367c99cf bio_endio
+EXPORT_SYMBOL vmlinux 0x367cbf02 wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x36830236 pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg
+EXPORT_SYMBOL vmlinux 0x3697d758 simple_transaction_set
+EXPORT_SYMBOL vmlinux 0x36c183db bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36eb1b0c i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x36f2709a sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0x36fe2e7e vfs_readlink
+EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user
+EXPORT_SYMBOL vmlinux 0x372db1f6 seq_lseek
+EXPORT_SYMBOL vmlinux 0x373bb2ce generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x373c7c01 pci_scan_slot
+EXPORT_SYMBOL vmlinux 0x373fea3d dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x375465a7 radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic
+EXPORT_SYMBOL vmlinux 0x37b4c8e6 __tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date
+EXPORT_SYMBOL vmlinux 0x37def6f1 fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0x38082dbb set_binfmt
+EXPORT_SYMBOL vmlinux 0x380c28a7 fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x38262fdf neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x38318911 close_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x384cc40e pci_remove_behind_bridge
+EXPORT_SYMBOL vmlinux 0x3866f09f flush_old_exec
+EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x38a64058 agp_find_bridge
+EXPORT_SYMBOL vmlinux 0x38b28c40 blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu
+EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0x390ab1a0 d_move
+EXPORT_SYMBOL vmlinux 0x390b9f0a pci_get_class
+EXPORT_SYMBOL vmlinux 0x397b0a14 tcf_em_register
+EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x398b4c15 jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0x39b2693a inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x39b2ed87 netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x39e0bf8c skb_make_writable
+EXPORT_SYMBOL vmlinux 0x3a197016 write_cache_pages
+EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a63f8a7 lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all
+EXPORT_SYMBOL vmlinux 0x3a8115e7 inet_listen
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3aa9eabc tcp4_gro_complete
+EXPORT_SYMBOL vmlinux 0x3ab6d0ac i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0x3ab7b5f4 dev_load
+EXPORT_SYMBOL vmlinux 0x3af9cae9 idr_remove
+EXPORT_SYMBOL vmlinux 0x3b09448c truncate_pagecache
+EXPORT_SYMBOL vmlinux 0x3b262579 tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b5a2a54 neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x3b6bf95f __devm_request_region
+EXPORT_SYMBOL vmlinux 0x3b753df4 pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0x3b8c0ff2 inet6_ioctl
+EXPORT_SYMBOL vmlinux 0x3bbab5f1 pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3c0a2f26 alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf
+EXPORT_SYMBOL vmlinux 0x3c34997f bh_submit_read
+EXPORT_SYMBOL vmlinux 0x3c6a6c22 module_refcount
+EXPORT_SYMBOL vmlinux 0x3c850ac6 page_readlink
+EXPORT_SYMBOL vmlinux 0x3c8cf209 pci_enable_msix
+EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size
+EXPORT_SYMBOL vmlinux 0x3cbe82bb inet_frags_init
+EXPORT_SYMBOL vmlinux 0x3ce01e06 key_payload_reserve
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq
+EXPORT_SYMBOL vmlinux 0x3cf89d7f cpu_info
+EXPORT_SYMBOL vmlinux 0x3d0197f4 pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0x3d0e3d44 tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x3d1966c6 blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0x3d2589a9 arp_xmit
+EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc
+EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page
+EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start
+EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0x3dc93172 bdi_register_dev
+EXPORT_SYMBOL vmlinux 0x3dd8997f nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock
+EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks
+EXPORT_SYMBOL vmlinux 0x3e442660 fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e8306c0 pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3eb66e96 phy_enable_interrupts
+EXPORT_SYMBOL vmlinux 0x3ec61324 dm_dirty_log_create
+EXPORT_SYMBOL vmlinux 0x3ecc3e16 x86_hyper
+EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f0f30d4 tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x3f1d59bc netif_receive_skb
+EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq
+EXPORT_SYMBOL vmlinux 0x3f87a117 netlink_ack
+EXPORT_SYMBOL vmlinux 0x3f97f590 security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0x3fa913da strspn
+EXPORT_SYMBOL vmlinux 0x3fc4b7bb skb_checksum
+EXPORT_SYMBOL vmlinux 0x3fec048f sg_next
+EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable
+EXPORT_SYMBOL vmlinux 0x40123029 xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x401c337a km_policy_expired
+EXPORT_SYMBOL vmlinux 0x402bd581 sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x4035e5a1 pci_choose_state
+EXPORT_SYMBOL vmlinux 0x40369829 acpi_processor_notify_smm
+EXPORT_SYMBOL vmlinux 0x403877ee generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds
+EXPORT_SYMBOL vmlinux 0x40725d08 blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x407c8141 __blockdev_direct_IO_newtrunc
+EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register
+EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40b746f7 kill_litter_super
+EXPORT_SYMBOL vmlinux 0x40bb65ea dm_dirty_log_type_register
+EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index
+EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring
+EXPORT_SYMBOL vmlinux 0x41081ab4 kmem_ptr_validate
+EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode
+EXPORT_SYMBOL vmlinux 0x41186a6e open_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp
+EXPORT_SYMBOL vmlinux 0x4134b9f1 sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x41408088 kobject_put
+EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user
+EXPORT_SYMBOL vmlinux 0x41553a8f blk_init_queue
+EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features
+EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0x41d0c1ae blk_remove_plug
+EXPORT_SYMBOL vmlinux 0x41d243c0 bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock
+EXPORT_SYMBOL vmlinux 0x41fa4c52 neigh_table_init
+EXPORT_SYMBOL vmlinux 0x41fc1a3f scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x41fd64b8 mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write
+EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x42183f5d agp_generic_alloc_pages
+EXPORT_SYMBOL vmlinux 0x421c82a8 scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0x42224298 sscanf
+EXPORT_SYMBOL vmlinux 0x422531e2 neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force
+EXPORT_SYMBOL vmlinux 0x42790576 sk_dst_check
+EXPORT_SYMBOL vmlinux 0x42810b8e xfrm_register_type
+EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p
+EXPORT_SYMBOL vmlinux 0x42b663ff ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x42c8f654 elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0x42d000a3 agp_backend_release
+EXPORT_SYMBOL vmlinux 0x42d954c5 request_firmware
+EXPORT_SYMBOL vmlinux 0x42ff5de3 scm_detach_fds
+EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages
+EXPORT_SYMBOL vmlinux 0x43066eb7 filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x4316aab6 misc_deregister
+EXPORT_SYMBOL vmlinux 0x431dc56a ___pskb_trim
+EXPORT_SYMBOL vmlinux 0x432be98b scsi_device_resume
+EXPORT_SYMBOL vmlinux 0x432de966 input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short
+EXPORT_SYMBOL vmlinux 0x4333fbb0 kernel_connect
+EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x4341d897 locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem
+EXPORT_SYMBOL vmlinux 0x43552b03 schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0x43577b72 swiotlb_sync_single_for_cpu
+EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32
+EXPORT_SYMBOL vmlinux 0x436dc8a1 ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x436ea92e ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x438259fb cap_file_mmap
+EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get
+EXPORT_SYMBOL vmlinux 0x43b034b8 tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0x43be8095 i2c_register_driver
+EXPORT_SYMBOL vmlinux 0x43c69fc0 __set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0x43dd4402 fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg
+EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x4430c54e bdi_init
+EXPORT_SYMBOL vmlinux 0x444779c4 nla_find
+EXPORT_SYMBOL vmlinux 0x44568214 dst_discard
+EXPORT_SYMBOL vmlinux 0x449e74ae udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x44a23e2b inode_needs_sync
+EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object
+EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz
+EXPORT_SYMBOL vmlinux 0x44af8cd8 grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0x44e6a62f starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x44e9a829 match_token
+EXPORT_SYMBOL vmlinux 0x44eefc38 blk_init_allocated_queue_node
+EXPORT_SYMBOL vmlinux 0x44f5d588 security_d_instantiate
+EXPORT_SYMBOL vmlinux 0x451c6b72 blk_peek_request
+EXPORT_SYMBOL vmlinux 0x452171a5 cad_pid
+EXPORT_SYMBOL vmlinux 0x452bc7bf jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled
+EXPORT_SYMBOL vmlinux 0x45488540 pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0x454bd8df ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x4567c0cc tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0x457d0652 idr_remove_all
+EXPORT_SYMBOL vmlinux 0x45947727 param_array_set
+EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states
+EXPORT_SYMBOL vmlinux 0x45b600df mpage_readpage
+EXPORT_SYMBOL vmlinux 0x45b62cb9 truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45ddba2a dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x45eb97f1 journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x45fd490d bitmap_close_sync
+EXPORT_SYMBOL vmlinux 0x46467e4b inode_change_ok
+EXPORT_SYMBOL vmlinux 0x464c3cc0 blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0x466c14a7 __delay
+EXPORT_SYMBOL vmlinux 0x46763b95 nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x46a4ef2b simple_transaction_get
+EXPORT_SYMBOL vmlinux 0x46ac6f8c generic_unplug_device
+EXPORT_SYMBOL vmlinux 0x46ae85f2 tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x46bdb2df xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance
+EXPORT_SYMBOL vmlinux 0x46ce03b8 scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0x4706d0c6 journal_ack_err
+EXPORT_SYMBOL vmlinux 0x471a6e86 skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x47434e12 read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects
+EXPORT_SYMBOL vmlinux 0x477983e0 generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0x4780cd81 processors
+EXPORT_SYMBOL vmlinux 0x47818595 __scm_destroy
+EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq
+EXPORT_SYMBOL vmlinux 0x47933c67 sk_stream_error
+EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit
+EXPORT_SYMBOL vmlinux 0x47ac1096 spi_schedule_dv_device
+EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number
+EXPORT_SYMBOL vmlinux 0x47ea1f6d tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0x47ecc84d pci_get_subsys
+EXPORT_SYMBOL vmlinux 0x4816611f bdi_unregister
+EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open
+EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep
+EXPORT_SYMBOL vmlinux 0x482f7385 nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days
+EXPORT_SYMBOL vmlinux 0x4890abe2 tcp_close
+EXPORT_SYMBOL vmlinux 0x48ad6034 pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0x48b5d016 sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x48deae63 default_file_splice_read
+EXPORT_SYMBOL vmlinux 0x493d7045 sync_inode
+EXPORT_SYMBOL vmlinux 0x4942615e padata_start
+EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x49a980bb neigh_for_each
+EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49b6b0aa pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0x49b6c63f find_inode_number
+EXPORT_SYMBOL vmlinux 0x49c7af80 __kfree_skb
+EXPORT_SYMBOL vmlinux 0x49d58b96 single_open
+EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string
+EXPORT_SYMBOL vmlinux 0x49f8d1ba xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a366cda __f_setown
+EXPORT_SYMBOL vmlinux 0x4a3a85e1 scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x4a512489 console_start
+EXPORT_SYMBOL vmlinux 0x4a74f7df cdrom_open
+EXPORT_SYMBOL vmlinux 0x4a7cb7c5 generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0x4a8451b6 generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0x4a8f1ac7 dev_mc_add
+EXPORT_SYMBOL vmlinux 0x4a928944 textsearch_prepare
+EXPORT_SYMBOL vmlinux 0x4aa316bf uart_get_divisor
+EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource
+EXPORT_SYMBOL vmlinux 0x4adec44b tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b019c9b key_unlink
+EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure
+EXPORT_SYMBOL vmlinux 0x4b29bed4 register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x4b385b78 phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0x4b605000 napi_get_frags
+EXPORT_SYMBOL vmlinux 0x4b663035 jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x4b7226db kmem_cache_name
+EXPORT_SYMBOL vmlinux 0x4b9c194a phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags
+EXPORT_SYMBOL vmlinux 0x4bdc8e43 mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c1f98dd unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp
+EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack
+EXPORT_SYMBOL vmlinux 0x4c5cfcb2 vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x4c6983cb mpage_writepage
+EXPORT_SYMBOL vmlinux 0x4c903cb1 tty_unthrottle
+EXPORT_SYMBOL vmlinux 0x4cb69471 llc_sap_open
+EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4ce4ec08 unregister_md_personality
+EXPORT_SYMBOL vmlinux 0x4d12adb1 icmp_send
+EXPORT_SYMBOL vmlinux 0x4d181126 ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0x4d1e5ed4 blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0x4d239c4c devm_ioremap
+EXPORT_SYMBOL vmlinux 0x4d2adca6 generic_write_checks
+EXPORT_SYMBOL vmlinux 0x4d3a3704 kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x4d474f36 generic_listxattr
+EXPORT_SYMBOL vmlinux 0x4d6d7a39 key_revoke
+EXPORT_SYMBOL vmlinux 0x4d92b13f netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0x4d9c5bf3 __nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x4d9f4585 compat_ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x4dafb949 mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0x4db4046a inet_put_port
+EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dd6ca0b get_gendisk
+EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy
+EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4df552f7 scsi_free_command
+EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child
+EXPORT_SYMBOL vmlinux 0x4e2d4337 kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int
+EXPORT_SYMBOL vmlinux 0x4e35d12d dget_locked
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console
+EXPORT_SYMBOL vmlinux 0x4e98c0f2 create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x4e99c48f cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x4e9f3d2e __neigh_event_send
+EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals
+EXPORT_SYMBOL vmlinux 0x4ee47b0a generic_fillattr
+EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f342e51 do_munmap
+EXPORT_SYMBOL vmlinux 0x4f3933c7 dm_io_client_resize
+EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt
+EXPORT_SYMBOL vmlinux 0x4f5f04c6 blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user
+EXPORT_SYMBOL vmlinux 0x4f6fe4d5 pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0x4f77ce0f genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read
+EXPORT_SYMBOL vmlinux 0x4f87beef blk_end_request
+EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user
+EXPORT_SYMBOL vmlinux 0x4f95cb52 dev_mc_del
+EXPORT_SYMBOL vmlinux 0x4fb59ecb make_bad_inode
+EXPORT_SYMBOL vmlinux 0x4fbcd3f9 sk_common_release
+EXPORT_SYMBOL vmlinux 0x4fc0e6e6 alloc_file
+EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command
+EXPORT_SYMBOL vmlinux 0x5001ef4e end_page_writeback
+EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x5024bda9 tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0x50288bad pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0x503f513f blkdev_get
+EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status
+EXPORT_SYMBOL vmlinux 0x5061754a nf_log_packet
+EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x50d3055d pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0x50dfeb2d tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0x50e573fd dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0x50eeffe8 __blk_run_queue
+EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x511cd204 rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0x515721ee replace_mount_options
+EXPORT_SYMBOL vmlinux 0x515e5ee9 __mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x516c8904 tcp_parse_options
+EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn
+EXPORT_SYMBOL vmlinux 0x5195801a start_tty
+EXPORT_SYMBOL vmlinux 0x519cec1f xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x519ddecf km_policy_notify
+EXPORT_SYMBOL vmlinux 0x51aeb3cc force_sig
+EXPORT_SYMBOL vmlinux 0x51bbd624 xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled
+EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data
+EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue
+EXPORT_SYMBOL vmlinux 0x524f77e5 jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x52652a9d __skb_bond_should_drop
+EXPORT_SYMBOL vmlinux 0x526660c3 pcie_port_service_unregister
+EXPORT_SYMBOL vmlinux 0x526a237b pnp_register_driver
+EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday
+EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy
+EXPORT_SYMBOL vmlinux 0x52c2ef34 rb_erase
+EXPORT_SYMBOL vmlinux 0x52c96662 pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort
+EXPORT_SYMBOL vmlinux 0x52f174d9 dev_get_by_flags
+EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0x5309ff14 pci_target_state
+EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend
+EXPORT_SYMBOL vmlinux 0x53163b45 inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid
+EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat
+EXPORT_SYMBOL vmlinux 0x5356ea19 scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0x53792faa filp_open
+EXPORT_SYMBOL vmlinux 0x537d50f2 key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0x538bf5e0 do_sync_write
+EXPORT_SYMBOL vmlinux 0x53b220a4 ppp_dev_name
+EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x53d04766 pci_read_vpd
+EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate
+EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x5449b787 __module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier
+EXPORT_SYMBOL vmlinux 0x546bc9da netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0x54798129 cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0x5479db50 tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x54831c21 sock_no_accept
+EXPORT_SYMBOL vmlinux 0x548487ef padata_set_cpumask
+EXPORT_SYMBOL vmlinux 0x548c97eb rfkill_get_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x54b9228b dquot_quota_on_path
+EXPORT_SYMBOL vmlinux 0x54df0839 dqget
+EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54f81122 ip_dev_find
+EXPORT_SYMBOL vmlinux 0x5564bd0d skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0x5566e1db acpi_device_hid
+EXPORT_SYMBOL vmlinux 0x5575b53f __alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0x5580e2d7 simple_lookup
+EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x55a728c2 dquot_release
+EXPORT_SYMBOL vmlinux 0x55ae7c1a udp_prot
+EXPORT_SYMBOL vmlinux 0x55bcbdff scsi_prep_return
+EXPORT_SYMBOL vmlinux 0x55fd2e6b shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday
+EXPORT_SYMBOL vmlinux 0x56060821 pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0x560b54db rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x56232ed7 tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user
+EXPORT_SYMBOL vmlinux 0x5639b4a0 ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0x564c3d70 dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0x5658179e idr_get_new
+EXPORT_SYMBOL vmlinux 0x56a2550c uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0x56c772bd generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr
+EXPORT_SYMBOL vmlinux 0x56e8da2d unregister_cdrom
+EXPORT_SYMBOL vmlinux 0x56effde4 skb_store_bits
+EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function
+EXPORT_SYMBOL vmlinux 0x5710cb80 locks_init_lock
+EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x57466e34 tty_devnum
+EXPORT_SYMBOL vmlinux 0x57469826 pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x5751ee51 flush_signals
+EXPORT_SYMBOL vmlinux 0x5756e513 kmem_cache_alloc_notrace
+EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put
+EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16
+EXPORT_SYMBOL vmlinux 0x5767aaf8 genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on
+EXPORT_SYMBOL vmlinux 0x577deb21 phy_device_free
+EXPORT_SYMBOL vmlinux 0x578bc0f0 ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0x57b09822 up
+EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path
+EXPORT_SYMBOL vmlinux 0x57e8b244 unregister_qdisc
+EXPORT_SYMBOL vmlinux 0x581d5c53 padata_free
+EXPORT_SYMBOL vmlinux 0x582c24d1 tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x58411f0a generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep
+EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x5892aa92 jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x589e209c compat_sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x58be8d0a __serio_register_driver
+EXPORT_SYMBOL vmlinux 0x58c7f418 mmc_set_data_timeout
+EXPORT_SYMBOL vmlinux 0x58dcb503 scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x58e92f78 mutex_lock
+EXPORT_SYMBOL vmlinux 0x5901d00f xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0x59139d48 dquot_quota_off
+EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read
+EXPORT_SYMBOL vmlinux 0x593290e3 seq_escape
+EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client
+EXPORT_SYMBOL vmlinux 0x5944db88 audit_log_format
+EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map
+EXPORT_SYMBOL vmlinux 0x5950e840 neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x59a4bd64 jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register
+EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59f957b6 scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0x5a20bc83 unlock_rename
+EXPORT_SYMBOL vmlinux 0x5a2969cf qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table
+EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc
+EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2
+EXPORT_SYMBOL vmlinux 0x5a5aadec pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x5a5f075b writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0x5a62420a fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a772df6 end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x5a8e4e73 agp_alloc_bridge
+EXPORT_SYMBOL vmlinux 0x5ab0f500 ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x5acbfb2b inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0x5af0fffa xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x5b1a3380 nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x5b3e09ac pcie_port_service_register
+EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources
+EXPORT_SYMBOL vmlinux 0x5b5a2a32 smp_call_function_many
+EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0x5b786d18 __break_lease
+EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0x5b85ed6c mmc_add_host
+EXPORT_SYMBOL vmlinux 0x5b94104f __scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x5bc3c158 uart_update_timeout
+EXPORT_SYMBOL vmlinux 0x5bfc852c journal_init_dev
+EXPORT_SYMBOL vmlinux 0x5c07e2da max8925_reg_read
+EXPORT_SYMBOL vmlinux 0x5c085ec0 names_cachep
+EXPORT_SYMBOL vmlinux 0x5c182914 dm_put_device
+EXPORT_SYMBOL vmlinux 0x5c2a7c71 __generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x5c336039 __insert_inode_hash
+EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq
+EXPORT_SYMBOL vmlinux 0x5c583a57 journal_destroy
+EXPORT_SYMBOL vmlinux 0x5c58fc46 netpoll_poll_dev
+EXPORT_SYMBOL vmlinux 0x5c746181 agp_bridge
+EXPORT_SYMBOL vmlinux 0x5c74697f proto_unregister
+EXPORT_SYMBOL vmlinux 0x5c998fae llc_sap_close
+EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock
+EXPORT_SYMBOL vmlinux 0x5ca73e76 d_validate
+EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0x5ceb7be5 scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x5cedac9a sock_create
+EXPORT_SYMBOL vmlinux 0x5cf1aa9a dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x5cf9182b blk_unplug
+EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat
+EXPORT_SYMBOL vmlinux 0x5d12dbfe bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved
+EXPORT_SYMBOL vmlinux 0x5d806c18 blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock
+EXPORT_SYMBOL vmlinux 0x5db3bf10 blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0x5dc43223 idr_pre_get
+EXPORT_SYMBOL vmlinux 0x5df6ea86 do_splice_to
+EXPORT_SYMBOL vmlinux 0x5e09ca75 complete
+EXPORT_SYMBOL vmlinux 0x5e1ff09b inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x5e4f4d5a tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x5e5998ab invalidate_bdev
+EXPORT_SYMBOL vmlinux 0x5e606c70 generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x5e7a2876 security_path_symlink
+EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask
+EXPORT_SYMBOL vmlinux 0x5eb623c3 do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0x5ebc05b9 unlock_super
+EXPORT_SYMBOL vmlinux 0x5ebd76c8 get_phy_id
+EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd
+EXPORT_SYMBOL vmlinux 0x5eea78d0 journal_abort
+EXPORT_SYMBOL vmlinux 0x5ef77853 ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0x5f019aa3 vfs_read
+EXPORT_SYMBOL vmlinux 0x5f14c064 jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock
+EXPORT_SYMBOL vmlinux 0x5f2cfd89 blk_execute_rq
+EXPORT_SYMBOL vmlinux 0x5f46fe23 sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0x5f75d07f xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0x5f7995aa simple_setattr
+EXPORT_SYMBOL vmlinux 0x5f8d323e tty_register_driver
+EXPORT_SYMBOL vmlinux 0x5f8ec979 tcp4_gro_receive
+EXPORT_SYMBOL vmlinux 0x5f936345 compat_ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x5fbc5e3c pnp_unregister_driver
+EXPORT_SYMBOL vmlinux 0x5fbcc0a9 sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr
+EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities
+EXPORT_SYMBOL vmlinux 0x5ff4ca06 fb_class
+EXPORT_SYMBOL vmlinux 0x5ff56aeb pci_reenable_device
+EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats
+EXPORT_SYMBOL vmlinux 0x602cc904 simple_link
+EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count
+EXPORT_SYMBOL vmlinux 0x6046a5bd serio_interrupt
+EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net
+EXPORT_SYMBOL vmlinux 0x609fd2f8 cfb_fillrect
+EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off
+EXPORT_SYMBOL vmlinux 0x60a476e3 key_put
+EXPORT_SYMBOL vmlinux 0x60a6ba94 swiotlb_unmap_sg
+EXPORT_SYMBOL vmlinux 0x60b872e4 __locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x60d46c68 mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x60e32983 __set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x60f408fe kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n
+EXPORT_SYMBOL vmlinux 0x60f8d59b sock_no_getname
+EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x61409455 dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x61445330 seq_read
+EXPORT_SYMBOL vmlinux 0x61446cfc bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x61526176 generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x6152880e pci_set_master
+EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer
+EXPORT_SYMBOL vmlinux 0x615bde64 simple_set_mnt
+EXPORT_SYMBOL vmlinux 0x618911fc numa_node
+EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free
+EXPORT_SYMBOL vmlinux 0x61a401c1 agp_bind_memory
+EXPORT_SYMBOL vmlinux 0x61a60f1f rb_replace_node
+EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61c60e73 security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0x61da82de compat_nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x61e033a1 dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x61f07e38 generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0x61f759df scsi_device_put
+EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable
+EXPORT_SYMBOL vmlinux 0x620957f1 netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0x62182624 xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event
+EXPORT_SYMBOL vmlinux 0x623deee3 acpi_notifier_call_chain
+EXPORT_SYMBOL vmlinux 0x6265a43d clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister
+EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources
+EXPORT_SYMBOL vmlinux 0x6276e866 seq_puts
+EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x629f2b47 acpi_processor_preregister_performance
+EXPORT_SYMBOL vmlinux 0x62be51de serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x62d05502 agp_free_memory
+EXPORT_SYMBOL vmlinux 0x62d2f57c d_alloc
+EXPORT_SYMBOL vmlinux 0x62e1062a phy_disable_interrupts
+EXPORT_SYMBOL vmlinux 0x63388b8b __scsi_add_device
+EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic
+EXPORT_SYMBOL vmlinux 0x6387ed67 journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x638e9cde kmalloc_caches
+EXPORT_SYMBOL vmlinux 0x6395cabb xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0x63b43fc4 skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x63bd3ae8 scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x63c4c14f lock_sock_fast
+EXPORT_SYMBOL vmlinux 0x63e6fc63 remove_inode_hash
+EXPORT_SYMBOL vmlinux 0x63e7f976 try_to_del_timer_sync
+EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user
+EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x6420cc25 handle_sysrq
+EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock
+EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler
+EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable
+EXPORT_SYMBOL vmlinux 0x647896dc genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait
+EXPORT_SYMBOL vmlinux 0x64b14fd2 seq_release_private
+EXPORT_SYMBOL vmlinux 0x64d0158f poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0x64d5b589 vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer
+EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb
+EXPORT_SYMBOL vmlinux 0x64efa931 nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0x651a4139 test_taint
+EXPORT_SYMBOL vmlinux 0x6525d7ae da903x_query_status
+EXPORT_SYMBOL vmlinux 0x652808d6 inode_init_always
+EXPORT_SYMBOL vmlinux 0x652ba7f6 acpi_bus_register_driver
+EXPORT_SYMBOL vmlinux 0x652cf961 pci_find_bus
+EXPORT_SYMBOL vmlinux 0x65362781 ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name
+EXPORT_SYMBOL vmlinux 0x6554311a fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc
+EXPORT_SYMBOL vmlinux 0x6595dd99 __dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x65b678c4 nobh_write_end
+EXPORT_SYMBOL vmlinux 0x65f2c821 blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x66428bd1 jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0x66466be9 get_io_context
+EXPORT_SYMBOL vmlinux 0x666cb93f ip6_frag_init
+EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x66a18cc9 sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x66cc0cc0 pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0x66f39dbe bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time
+EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible
+EXPORT_SYMBOL vmlinux 0x67196182 __napi_schedule
+EXPORT_SYMBOL vmlinux 0x672144bd strlcpy
+EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4
+EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges
+EXPORT_SYMBOL vmlinux 0x67637124 kobject_get
+EXPORT_SYMBOL vmlinux 0x678b5ccd swiotlb_dma_supported
+EXPORT_SYMBOL vmlinux 0x678ff2b6 blk_insert_request
+EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios
+EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67bb0d41 __scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x67e21a54 xfrm_bundle_ok
+EXPORT_SYMBOL vmlinux 0x6807c2a6 pv_cpu_ops
+EXPORT_SYMBOL vmlinux 0x6824a726 otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0x6847d7e5 __blk_end_request
+EXPORT_SYMBOL vmlinux 0x68565ec3 splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x6860fbba md_wait_for_blocked_rdev
+EXPORT_SYMBOL vmlinux 0x68663c94 journal_flush
+EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x688d3e26 dquot_enable
+EXPORT_SYMBOL vmlinux 0x688dccd5 dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0x68cccae9 dquot_file_open
+EXPORT_SYMBOL vmlinux 0x68e17419 neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x68f2f199 blk_stack_limits
+EXPORT_SYMBOL vmlinux 0x68f9c9e8 skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x68feedea scsi_remove_host
+EXPORT_SYMBOL vmlinux 0x69035550 xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer
+EXPORT_SYMBOL vmlinux 0x69215003 pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x692cd6e6 dst_release
+EXPORT_SYMBOL vmlinux 0x694d923b mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0x694e75c9 security_file_permission
+EXPORT_SYMBOL vmlinux 0x695124eb neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days
+EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int
+EXPORT_SYMBOL vmlinux 0x69815756 agp_generic_mask_memory
+EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7
+EXPORT_SYMBOL vmlinux 0x698edb7d skb_put
+EXPORT_SYMBOL vmlinux 0x69921202 ida_init
+EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem
+EXPORT_SYMBOL vmlinux 0x6996205a udp_proc_register
+EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be
+EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource
+EXPORT_SYMBOL vmlinux 0x69c148cb sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x69d2575f efi
+EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69e5e914 rwsem_wake
+EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a1131db unload_nls
+EXPORT_SYMBOL vmlinux 0x6a18d037 dw_spi_add_host
+EXPORT_SYMBOL vmlinux 0x6a1a9f2b qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x6a3ba975 idr_find
+EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask
+EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6a831a56 agp_generic_destroy_pages
+EXPORT_SYMBOL vmlinux 0x6a8b45a8 cdev_del
+EXPORT_SYMBOL vmlinux 0x6a8f1d40 bio_init
+EXPORT_SYMBOL vmlinux 0x6aba71b6 security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x6ac5d4df is_container_init
+EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be
+EXPORT_SYMBOL vmlinux 0x6acfe2f1 tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp
+EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device
+EXPORT_SYMBOL vmlinux 0x6adf4b07 fsnotify_find_mark_entry
+EXPORT_SYMBOL vmlinux 0x6b0d876c kset_register
+EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname
+EXPORT_SYMBOL vmlinux 0x6b1b9ffd spi_display_xfer_agreement
+EXPORT_SYMBOL vmlinux 0x6b2b1d54 blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack
+EXPORT_SYMBOL vmlinux 0x6b3f5a54 set_bh_page
+EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x6b99113f tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x6ba3e4ca netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x6bb1be54 vmap
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x6bcc40e1 acpi_root_dir
+EXPORT_SYMBOL vmlinux 0x6bccd07a input_close_device
+EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock
+EXPORT_SYMBOL vmlinux 0x6c162714 mdiobus_read
+EXPORT_SYMBOL vmlinux 0x6c2d2b2d tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data
+EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0x6c4a17e2 xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x6c57ac07 genphy_suspend
+EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c62541f scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c7845f4 bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x6c823283 sock_rfree
+EXPORT_SYMBOL vmlinux 0x6c9689b7 ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0x6c9f7a9e scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x6ca48ef1 bdev_read_only
+EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x6cbfee76 tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x6cdf375d scsi_add_device
+EXPORT_SYMBOL vmlinux 0x6d075d26 dev_uc_init
+EXPORT_SYMBOL vmlinux 0x6d0e3039 vfs_fstatat
+EXPORT_SYMBOL vmlinux 0x6d14e481 ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x6d1bfc7f blk_init_tags
+EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8
+EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0x6d48f7e8 thermal_zone_device_update
+EXPORT_SYMBOL vmlinux 0x6d63fdb8 console_stop
+EXPORT_SYMBOL vmlinux 0x6d70f3e0 load_nls
+EXPORT_SYMBOL vmlinux 0x6dbbda4a agp3_generic_tlbflush
+EXPORT_SYMBOL vmlinux 0x6dbd4b1d netlink_unicast
+EXPORT_SYMBOL vmlinux 0x6de46e3e blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x6dede1ef nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6e49222f inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x6e679b16 sk_receive_skb
+EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e76fdb9 qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put
+EXPORT_SYMBOL vmlinux 0x6ebd53d1 lock_fb_info
+EXPORT_SYMBOL vmlinux 0x6eefe81d locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x6ef17141 kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create
+EXPORT_SYMBOL vmlinux 0x6f4e52b7 dev_addr_del
+EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device
+EXPORT_SYMBOL vmlinux 0x6f56d69a release_firmware
+EXPORT_SYMBOL vmlinux 0x6f669358 ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0x6f802d7b tty_register_device
+EXPORT_SYMBOL vmlinux 0x6f821cde sock_kmalloc
+EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x6f9e5017 elv_abort_queue
+EXPORT_SYMBOL vmlinux 0x6fb0121f devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x6fc99f0f thaw_bdev
+EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fe49383 agp_generic_type_to_mask_type
+EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write
+EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free
+EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm
+EXPORT_SYMBOL vmlinux 0x701b26c5 genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0x70471147 scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma
+EXPORT_SYMBOL vmlinux 0x705d43b0 nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x7064d319 tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x7070df68 register_console
+EXPORT_SYMBOL vmlinux 0x70765d1c vfs_lstat
+EXPORT_SYMBOL vmlinux 0x7079b8be bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait
+EXPORT_SYMBOL vmlinux 0x70c91279 vlan_gro_frags
+EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock
+EXPORT_SYMBOL vmlinux 0x70e0d61f cpu_all_bits
+EXPORT_SYMBOL vmlinux 0x70f06f26 pci_disable_msix
+EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc
+EXPORT_SYMBOL vmlinux 0x71333151 vfs_llseek
+EXPORT_SYMBOL vmlinux 0x7171121c overflowgid
+EXPORT_SYMBOL vmlinux 0x718f7112 fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0x719e5bca set_pages_x
+EXPORT_SYMBOL vmlinux 0x71a11303 d_path
+EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev
+EXPORT_SYMBOL vmlinux 0x71a5843c setup_new_exec
+EXPORT_SYMBOL vmlinux 0x71bb41e4 wrmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0x71ceebec sock_wake_async
+EXPORT_SYMBOL vmlinux 0x71f6337f fb_show_logo
+EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x7242e96d strnchr
+EXPORT_SYMBOL vmlinux 0x724dd388 arp_tbl
+EXPORT_SYMBOL vmlinux 0x724e737d dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0x7252accf tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x7258df83 f_setown
+EXPORT_SYMBOL vmlinux 0x727c8a53 fddi_type_trans
+EXPORT_SYMBOL vmlinux 0x7296c6cc pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0x72986a33 bioset_create
+EXPORT_SYMBOL vmlinux 0x729d03b8 netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x72a95544 inet_sendmsg
+EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled
+EXPORT_SYMBOL vmlinux 0x72b00b10 neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma
+EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add
+EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte
+EXPORT_SYMBOL vmlinux 0x72cf3951 sock_no_mmap
+EXPORT_SYMBOL vmlinux 0x72e16c02 mark_info_dirty
+EXPORT_SYMBOL vmlinux 0x72ea5242 bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type
+EXPORT_SYMBOL vmlinux 0x72f6e08a skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x72f9d1d8 keyring_clear
+EXPORT_SYMBOL vmlinux 0x731f3f96 udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x73252f64 seq_open_private
+EXPORT_SYMBOL vmlinux 0x73304879 mmc_card_awake
+EXPORT_SYMBOL vmlinux 0x7334d701 inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0x733d8c10 blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x733ead2d dput
+EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay
+EXPORT_SYMBOL vmlinux 0x737295e8 simple_write_end
+EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power
+EXPORT_SYMBOL vmlinux 0x739e1998 is_bad_inode
+EXPORT_SYMBOL vmlinux 0x73bca917 sk_stop_timer
+EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0x73fe9799 dev_mc_init
+EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0x74238ec2 blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0x74253f41 alloc_etherdev_mq
+EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte
+EXPORT_SYMBOL vmlinux 0x746272a0 set_security_override
+EXPORT_SYMBOL vmlinux 0x7462a005 journal_load
+EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x749e76fe remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74c19bf9 cdev_init
+EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74e62194 scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0x74eb305c request_key
+EXPORT_SYMBOL vmlinux 0x7518d630 nonseekable_open
+EXPORT_SYMBOL vmlinux 0x7538b132 agp_off
+EXPORT_SYMBOL vmlinux 0x755bba7d nf_afinfo
+EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp
+EXPORT_SYMBOL vmlinux 0x7570b9d6 proc_create_data
+EXPORT_SYMBOL vmlinux 0x757fb2d2 pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0x759e72cd elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc
+EXPORT_SYMBOL vmlinux 0x75c7640f acpi_unlock_battery_dir
+EXPORT_SYMBOL vmlinux 0x75c930b8 blk_start_queue
+EXPORT_SYMBOL vmlinux 0x75d95a48 pnp_start_dev
+EXPORT_SYMBOL vmlinux 0x75f1cab8 kern_path
+EXPORT_SYMBOL vmlinux 0x75f63ce8 tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler
+EXPORT_SYMBOL vmlinux 0x760a0f4f yield
+EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x7619a244 __ps2_command
+EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off
+EXPORT_SYMBOL vmlinux 0x764bd77c request_resource
+EXPORT_SYMBOL vmlinux 0x766c7d4a phy_device_register
+EXPORT_SYMBOL vmlinux 0x7670b13d dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x767138e3 blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0x767dd8fd acpi_get_irq_routing_table
+EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc
+EXPORT_SYMBOL vmlinux 0x76b042e2 __nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76c6494b set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode
+EXPORT_SYMBOL vmlinux 0x76d4a376 swiotlb_map_sg
+EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges
+EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic
+EXPORT_SYMBOL vmlinux 0x7708f712 pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x775684da block_read_full_page
+EXPORT_SYMBOL vmlinux 0x775c1fdd sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x7786164c free_task
+EXPORT_SYMBOL vmlinux 0x77a5fbbd kill_fasync
+EXPORT_SYMBOL vmlinux 0x77bc13a0 strim
+EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality
+EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77ee9c3f i2c_clients_command
+EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource
+EXPORT_SYMBOL vmlinux 0x77f91b2a xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif
+EXPORT_SYMBOL vmlinux 0x782afd7b qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0x78331175 skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x78370ad7 blkdev_fsync
+EXPORT_SYMBOL vmlinux 0x78381bcc d_lookup
+EXPORT_SYMBOL vmlinux 0x783e518c bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x786485cb journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x7872ec5c tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops
+EXPORT_SYMBOL vmlinux 0x787791c6 tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0x78863733 init_net
+EXPORT_SYMBOL vmlinux 0x788cd3a2 pnp_possible_config
+EXPORT_SYMBOL vmlinux 0x788f0bf9 unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x7890ca9a user_path_at
+EXPORT_SYMBOL vmlinux 0x78ab271c padata_add_cpu
+EXPORT_SYMBOL vmlinux 0x78b3456d fb_set_var
+EXPORT_SYMBOL vmlinux 0x78bb437a bio_split
+EXPORT_SYMBOL vmlinux 0x78c5e23f netdev_set_master
+EXPORT_SYMBOL vmlinux 0x78dc6b04 acpi_processor_unregister_performance
+EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78e01f90 ip_defrag
+EXPORT_SYMBOL vmlinux 0x78e82bdb __dquot_transfer
+EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method
+EXPORT_SYMBOL vmlinux 0x7912c4e4 tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0x794916e4 bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x794c13a3 pipe_unlock
+EXPORT_SYMBOL vmlinux 0x7953506f skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x795cf5f4 scsi_device_get
+EXPORT_SYMBOL vmlinux 0x796dbab8 fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x796de582 seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x79716ec6 bd_set_size
+EXPORT_SYMBOL vmlinux 0x7975e743 unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0x79a3a67a serio_rescan
+EXPORT_SYMBOL vmlinux 0x79a62610 dma_pool_create
+EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79acf0bd vga_switcheroo_register_handler
+EXPORT_SYMBOL vmlinux 0x79dcb559 inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x79e5f94a blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol
+EXPORT_SYMBOL vmlinux 0x7a2cb48e set_bdi_congested
+EXPORT_SYMBOL vmlinux 0x7a3b0051 dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0x7a4497db kzfree
+EXPORT_SYMBOL vmlinux 0x7a467f7f xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0x7a59c068 dm_snap_cow
+EXPORT_SYMBOL vmlinux 0x7a7f5c5f kthread_bind
+EXPORT_SYMBOL vmlinux 0x7a8d7d1c ip6_frag_match
+EXPORT_SYMBOL vmlinux 0x7a91e9a2 mnt_unpin
+EXPORT_SYMBOL vmlinux 0x7aac0837 module_put
+EXPORT_SYMBOL vmlinux 0x7aafaccd scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0x7ab0b4da cdev_alloc
+EXPORT_SYMBOL vmlinux 0x7ac07639 inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip
+EXPORT_SYMBOL vmlinux 0x7ad1305b alloc_hippi_dev
+EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user
+EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x7af73785 xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler
+EXPORT_SYMBOL vmlinux 0x7b25ddb4 fail_migrate_page
+EXPORT_SYMBOL vmlinux 0x7b4339f4 inet6_release
+EXPORT_SYMBOL vmlinux 0x7b45fdce tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register
+EXPORT_SYMBOL vmlinux 0x7b630637 inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update
+EXPORT_SYMBOL vmlinux 0x7ba649f3 acpi_bus_unregister_driver
+EXPORT_SYMBOL vmlinux 0x7bc292be scsi_get_command
+EXPORT_SYMBOL vmlinux 0x7bc5cae5 tty_throttle
+EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name
+EXPORT_SYMBOL vmlinux 0x7bf0ef07 tty_port_put
+EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x7c3a716e sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c4d2cab blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0x7c60d66e getname
+EXPORT_SYMBOL vmlinux 0x7c61340c __release_region
+EXPORT_SYMBOL vmlinux 0x7c71feed ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x7c81fee7 dm_io_client_create
+EXPORT_SYMBOL vmlinux 0x7c82c5df md_done_sync
+EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down
+EXPORT_SYMBOL vmlinux 0x7cd2c30e cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0x7d06097a fb_pan_display
+EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies
+EXPORT_SYMBOL vmlinux 0x7d496852 zero_fill_bio
+EXPORT_SYMBOL vmlinux 0x7d6bb587 cpu_online_mask
+EXPORT_SYMBOL vmlinux 0x7d6f445e pci_map_rom
+EXPORT_SYMBOL vmlinux 0x7d825a1e ps2_handle_response
+EXPORT_SYMBOL vmlinux 0x7d8b43ab dm_dirty_log_type_unregister
+EXPORT_SYMBOL vmlinux 0x7d8d83e1 submit_bh
+EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port
+EXPORT_SYMBOL vmlinux 0x7da3beb3 pci_try_set_mwi
+EXPORT_SYMBOL vmlinux 0x7dceceac capable
+EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe
+EXPORT_SYMBOL vmlinux 0x7de2b6d6 agp_allocate_memory
+EXPORT_SYMBOL vmlinux 0x7e0dd6fb tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e3d40e7 find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x7e5edf1d set_pages_uc
+EXPORT_SYMBOL vmlinux 0x7e93adef d_alloc_root
+EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread
+EXPORT_SYMBOL vmlinux 0x7eb0e1ac k8_northbridges
+EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0x7ec0538a netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy
+EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit
+EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f411f16 xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x7f57ab09 __netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x7f595dff ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x7f690f99 skb_split
+EXPORT_SYMBOL vmlinux 0x7f82c64e dev_addr_add
+EXPORT_SYMBOL vmlinux 0x7f8f3a3f nobh_write_begin
+EXPORT_SYMBOL vmlinux 0x7f97cc65 nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0x7fb081f7 fb_set_suspend
+EXPORT_SYMBOL vmlinux 0x7fc06ebf __blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0x7fccf260 eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x7fd8e5e5 vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x7fe1dada wake_up_process
+EXPORT_SYMBOL vmlinux 0x801914da xfrm_state_update
+EXPORT_SYMBOL vmlinux 0x8025024f neigh_ifdown
+EXPORT_SYMBOL vmlinux 0x807169b6 bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0x80c4ddf9 dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x80c507dc rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x80eedcee __getblk
+EXPORT_SYMBOL vmlinux 0x8105cce7 __mutex_init
+EXPORT_SYMBOL vmlinux 0x8107491d netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table
+EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal
+EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page
+EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info
+EXPORT_SYMBOL vmlinux 0x81f26c5c inet_addr_type
+EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill
+EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply
+EXPORT_SYMBOL vmlinux 0x82249914 llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x82529367 seq_printf
+EXPORT_SYMBOL vmlinux 0x82530caf tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8271038f pnp_activate_dev
+EXPORT_SYMBOL vmlinux 0x82887d60 tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x82a402b4 sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0x82a8906a tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82b28682 skb_gso_segment
+EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x83090551 inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot
+EXPORT_SYMBOL vmlinux 0x8319d39a dentry_open
+EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit
+EXPORT_SYMBOL vmlinux 0x83217cb9 abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x8324ec04 dquot_commit
+EXPORT_SYMBOL vmlinux 0x833b42ca mmc_detect_change
+EXPORT_SYMBOL vmlinux 0x834800a2 kill_pid
+EXPORT_SYMBOL vmlinux 0x834d66a9 compat_tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion
+EXPORT_SYMBOL vmlinux 0x836a8007 register_exec_domain
+EXPORT_SYMBOL vmlinux 0x8375c2c7 dm_table_unplug_all
+EXPORT_SYMBOL vmlinux 0x83800bfa kref_init
+EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8
+EXPORT_SYMBOL vmlinux 0x8397da3c tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83b327b9 input_release_device
+EXPORT_SYMBOL vmlinux 0x83d763a6 register_sysctl_table
+EXPORT_SYMBOL vmlinux 0x83ed0ce2 block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0x842c0cd2 create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x842e6712 serio_close
+EXPORT_SYMBOL vmlinux 0x843f2179 thermal_zone_device_unregister
+EXPORT_SYMBOL vmlinux 0x84736b47 mmc_host_disable
+EXPORT_SYMBOL vmlinux 0x8478334b __napi_complete
+EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x84af5a61 scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0x84b30aa8 skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0x84ef48cb sock_no_connect
+EXPORT_SYMBOL vmlinux 0x85367a03 fsync_bdev
+EXPORT_SYMBOL vmlinux 0x854c13cd llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups
+EXPORT_SYMBOL vmlinux 0x85726fc2 sk_free
+EXPORT_SYMBOL vmlinux 0x859392b5 i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0x85abc85f strncmp
+EXPORT_SYMBOL vmlinux 0x85adf516 register_gifconf
+EXPORT_SYMBOL vmlinux 0x85d074ee simple_empty
+EXPORT_SYMBOL vmlinux 0x85df9b6c strsep
+EXPORT_SYMBOL vmlinux 0x85ffd6d1 blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x8606469b __bread
+EXPORT_SYMBOL vmlinux 0x86191f08 rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0x862b9701 nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x8637e16d md_error
+EXPORT_SYMBOL vmlinux 0x8639a238 pnp_disable_dev
+EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x86522141 tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x865c9bb0 tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x86693354 mmc_try_claim_host
+EXPORT_SYMBOL vmlinux 0x8671d1d8 jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x868acba5 get_options
+EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat
+EXPORT_SYMBOL vmlinux 0x86cffc28 gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x8707930c read_cache_page
+EXPORT_SYMBOL vmlinux 0x871a90de udp_poll
+EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0x87596f6e neigh_create
+EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write
+EXPORT_SYMBOL vmlinux 0x87850e21 dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh
+EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0x87b6cda2 alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x87d5dd85 udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x87e6b350 insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0x87e95715 __lock_buffer
+EXPORT_SYMBOL vmlinux 0x87fcbc63 tty_port_close_start
+EXPORT_SYMBOL vmlinux 0x87fe25cb bio_phys_segments
+EXPORT_SYMBOL vmlinux 0x87ff8f89 generic_permission
+EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate
+EXPORT_SYMBOL vmlinux 0x88257ba0 dev_change_flags
+EXPORT_SYMBOL vmlinux 0x882a7b0c skb_find_text
+EXPORT_SYMBOL vmlinux 0x88543920 con_is_bound
+EXPORT_SYMBOL vmlinux 0x885c658f xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x888a7dc9 compat_mc_setsockopt
+EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x88a08f70 kick_iocb
+EXPORT_SYMBOL vmlinux 0x88a6bcc4 dw_spi_resume_host
+EXPORT_SYMBOL vmlinux 0x88d1fe9f iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0x88e578f2 destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x88e7d9eb agp_generic_alloc_by_type
+EXPORT_SYMBOL vmlinux 0x88f4ed98 elevator_init
+EXPORT_SYMBOL vmlinux 0x89056660 fb_get_mode
+EXPORT_SYMBOL vmlinux 0x89131153 netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x892629b9 block_commit_write
+EXPORT_SYMBOL vmlinux 0x892756bd aio_put_req
+EXPORT_SYMBOL vmlinux 0x892a52e0 inode_permission
+EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx
+EXPORT_SYMBOL vmlinux 0x8938a6ab mdiobus_write
+EXPORT_SYMBOL vmlinux 0x893be8af lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x893f8dcd dquot_operations
+EXPORT_SYMBOL vmlinux 0x8943e18a sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x897473df mktime
+EXPORT_SYMBOL vmlinux 0x89753277 scsi_register
+EXPORT_SYMBOL vmlinux 0x897a6768 rtc_dev_update_irq_enable_emul
+EXPORT_SYMBOL vmlinux 0x897ca7ba load_nls_default
+EXPORT_SYMBOL vmlinux 0x89848518 mdiobus_free
+EXPORT_SYMBOL vmlinux 0x898b37b6 ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0x89a300b9 sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0x89a84fee kmem_cache_alloc_node_notrace
+EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89dfa76a llc_sap_find
+EXPORT_SYMBOL vmlinux 0x89f24fac blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0x8a010d78 input_flush_device
+EXPORT_SYMBOL vmlinux 0x8a24e850 set_anon_super
+EXPORT_SYMBOL vmlinux 0x8a48f3e0 lease_modify
+EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory
+EXPORT_SYMBOL vmlinux 0x8a81f7d7 pskb_copy
+EXPORT_SYMBOL vmlinux 0x8a8fc510 ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8af64acb tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x8b155989 set_disk_ro
+EXPORT_SYMBOL vmlinux 0x8b17cd83 alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last
+EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x8b58da26 ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid
+EXPORT_SYMBOL vmlinux 0x8b77f9dc generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup
+EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user
+EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup
+EXPORT_SYMBOL vmlinux 0x8ba91bfd arch_debugfs_dir
+EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock
+EXPORT_SYMBOL vmlinux 0x8bb80a97 rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0x8bc4e372 phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long
+EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16
+EXPORT_SYMBOL vmlinux 0x8c625aa2 xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0x8c7859ba scsi_print_result
+EXPORT_SYMBOL vmlinux 0x8cb5f4e5 unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0x8cbb42e7 gen_pool_add
+EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8cce1ba3 call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0x8cefda69 cdev_add
+EXPORT_SYMBOL vmlinux 0x8cf3f3f9 insert_inode_locked
+EXPORT_SYMBOL vmlinux 0x8d06b025 iget_locked
+EXPORT_SYMBOL vmlinux 0x8d1448d5 generic_file_mmap
+EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d6906d4 unregister_memory_notifier
+EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data
+EXPORT_SYMBOL vmlinux 0x8d933b62 xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0x8d96a1b8 kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x8d9a790f thermal_zone_bind_cooling_device
+EXPORT_SYMBOL vmlinux 0x8db0eebd inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x8db237ce pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x8dd3a961 rfkill_unregister
+EXPORT_SYMBOL vmlinux 0x8de48b50 dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0x8de50743 skb_push
+EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block
+EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e3425cc dm_exception_store_destroy
+EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk
+EXPORT_SYMBOL vmlinux 0x8e463770 __elv_add_request
+EXPORT_SYMBOL vmlinux 0x8e4bc642 alloc_netdev_mq
+EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x8e8d5ae2 set_user_nice
+EXPORT_SYMBOL vmlinux 0x8e8e4741 scsi_init_io
+EXPORT_SYMBOL vmlinux 0x8eaa0a70 vga_switcheroo_unregister_client
+EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler
+EXPORT_SYMBOL vmlinux 0x8eb7b42b neigh_lookup
+EXPORT_SYMBOL vmlinux 0x8ec41a76 d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8ef9083c blk_requeue_request
+EXPORT_SYMBOL vmlinux 0x8efe0a0c otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0x8f0740c4 blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0x8f09886c agp_generic_remove_memory
+EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus
+EXPORT_SYMBOL vmlinux 0x8f3ad4c0 pci_get_slot
+EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev
+EXPORT_SYMBOL vmlinux 0x8f69b04c pci_dev_put
+EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data
+EXPORT_SYMBOL vmlinux 0x8f72906c journal_restart
+EXPORT_SYMBOL vmlinux 0x8f73accf xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0x8f7e4482 pcim_iomap
+EXPORT_SYMBOL vmlinux 0x8f7ef081 pcim_pin_device
+EXPORT_SYMBOL vmlinux 0x8f7f2a8b abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2
+EXPORT_SYMBOL vmlinux 0x8fa5472e register_md_personality
+EXPORT_SYMBOL vmlinux 0x8fa7ee6d find_vma
+EXPORT_SYMBOL vmlinux 0x8fd5ad8c cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x901048ff ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync
+EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector
+EXPORT_SYMBOL vmlinux 0x9050c4f7 journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x9054b591 i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0x905dd80d neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system
+EXPORT_SYMBOL vmlinux 0x90a54ce4 i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active
+EXPORT_SYMBOL vmlinux 0x90a9d49d pnp_device_attach
+EXPORT_SYMBOL vmlinux 0x90ac1d7f journal_clear_err
+EXPORT_SYMBOL vmlinux 0x90ade0b1 mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x90d9c657 napi_frags_finish
+EXPORT_SYMBOL vmlinux 0x91082569 blk_put_request
+EXPORT_SYMBOL vmlinux 0x9116fa6f tcp_splice_read
+EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable
+EXPORT_SYMBOL vmlinux 0x914af0f3 security_path_rename
+EXPORT_SYMBOL vmlinux 0x91598f7d dm_dirty_log_destroy
+EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb
+EXPORT_SYMBOL vmlinux 0x916203fe blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0x91730ade dm_get_device
+EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong
+EXPORT_SYMBOL vmlinux 0x9180411c idr_destroy
+EXPORT_SYMBOL vmlinux 0x91b77fb1 dma_async_memcpy_buf_to_buf
+EXPORT_SYMBOL vmlinux 0x91bd85b0 register_filesystem
+EXPORT_SYMBOL vmlinux 0x91c1ce43 set_blocksize
+EXPORT_SYMBOL vmlinux 0x91e0188f hippi_change_mtu
+EXPORT_SYMBOL vmlinux 0x91e5513e keyring_search
+EXPORT_SYMBOL vmlinux 0x91e8f84c i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0x9210be5a pci_clear_master
+EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool
+EXPORT_SYMBOL vmlinux 0x9222e901 sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x922b11ef generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten
+EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get
+EXPORT_SYMBOL vmlinux 0x924405c5 abx500_register_ops
+EXPORT_SYMBOL vmlinux 0x927078fc seq_open
+EXPORT_SYMBOL vmlinux 0x92901e85 mdiobus_scan
+EXPORT_SYMBOL vmlinux 0x92ad048b inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0x92b6d584 inode_add_bytes
+EXPORT_SYMBOL vmlinux 0x92c37c0c sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0x92c8e7c1 key_link
+EXPORT_SYMBOL vmlinux 0x92e8ee2c input_open_device
+EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le
+EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get
+EXPORT_SYMBOL vmlinux 0x931c156c jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x93429643 tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x93448c57 screen_info
+EXPORT_SYMBOL vmlinux 0x9351969d vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0x93552624 scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x93762740 dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule
+EXPORT_SYMBOL vmlinux 0x93abacd9 mmc_register_driver
+EXPORT_SYMBOL vmlinux 0x93ad45a5 gen_pool_free
+EXPORT_SYMBOL vmlinux 0x93c3f5e0 __breadahead
+EXPORT_SYMBOL vmlinux 0x93c651be acpi_info
+EXPORT_SYMBOL vmlinux 0x93d57ee4 ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package
+EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages
+EXPORT_SYMBOL vmlinux 0x941e51d9 xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x94292fa2 textsearch_register
+EXPORT_SYMBOL vmlinux 0x9438b5c2 ppp_input_error
+EXPORT_SYMBOL vmlinux 0x94961283 vunmap
+EXPORT_SYMBOL vmlinux 0x94a4ad3f md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0x94c070e4 md_wakeup_thread
+EXPORT_SYMBOL vmlinux 0x94c297a3 serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x94f6ed76 bio_add_page
+EXPORT_SYMBOL vmlinux 0x951f2369 pci_set_mwi
+EXPORT_SYMBOL vmlinux 0x952de0e5 abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x95352ea9 acpi_check_mem_region
+EXPORT_SYMBOL vmlinux 0x95384177 backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init
+EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf
+EXPORT_SYMBOL vmlinux 0x958051cf end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x959292ff blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x95948f13 netif_rx
+EXPORT_SYMBOL vmlinux 0x9594b224 make_EII_client
+EXPORT_SYMBOL vmlinux 0x95958f92 scsi_finish_command
+EXPORT_SYMBOL vmlinux 0x95a9096a phy_register_fixup
+EXPORT_SYMBOL vmlinux 0x95ab0fe0 agp_generic_alloc_user
+EXPORT_SYMBOL vmlinux 0x95ac76ec unregister_netdev
+EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x95cd7735 __vlan_hwaccel_rx
+EXPORT_SYMBOL vmlinux 0x95ceb864 key_update
+EXPORT_SYMBOL vmlinux 0x95eee3c3 agp_generic_free_gatt_table
+EXPORT_SYMBOL vmlinux 0x95f1097d __nla_put
+EXPORT_SYMBOL vmlinux 0x95f348ea dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0x960e4c8f inet_getname
+EXPORT_SYMBOL vmlinux 0x96214fed file_update_time
+EXPORT_SYMBOL vmlinux 0x9691a27d security_path_chown
+EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96d3342b jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x970b9b5d napi_reuse_skb
+EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n
+EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x97787ff5 pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0x97a0f169 send_sig_info
+EXPORT_SYMBOL vmlinux 0x97b38442 jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x97b6558a journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x97c5d0d7 set_trace_device
+EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block
+EXPORT_SYMBOL vmlinux 0x97f1470e end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0x97f14de8 i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0x98093e76 idr_get_next
+EXPORT_SYMBOL vmlinux 0x9833ff06 bio_clone
+EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x987cc953 ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0x9880aa2a phy_find_first
+EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x
+EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init
+EXPORT_SYMBOL vmlinux 0x989f745c bio_integrity_free
+EXPORT_SYMBOL vmlinux 0x989f8a64 wireless_send_event
+EXPORT_SYMBOL vmlinux 0x98c77623 ht_create_irq
+EXPORT_SYMBOL vmlinux 0x98fd7d6b scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0x98ff42fc unregister_snap_client
+EXPORT_SYMBOL vmlinux 0x99222bfb blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0x9969b40e tty_set_operations
+EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999e8297 vfree
+EXPORT_SYMBOL vmlinux 0x99b211cc slow_work_unregister_user
+EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name
+EXPORT_SYMBOL vmlinux 0x99cca7d4 unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink
+EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map
+EXPORT_SYMBOL vmlinux 0x99f13785 dev_driver_string
+EXPORT_SYMBOL vmlinux 0x99f8d305 set_device_ro
+EXPORT_SYMBOL vmlinux 0x9a18a94d mmc_wait_for_app_cmd
+EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk
+EXPORT_SYMBOL vmlinux 0x9aabc564 crc16
+EXPORT_SYMBOL vmlinux 0x9abc5849 ps2_init
+EXPORT_SYMBOL vmlinux 0x9ac3dc51 cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0x9b0d0945 pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x9b1c3f04 generic_write_sync
+EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b3f464e pci_disable_msi
+EXPORT_SYMBOL vmlinux 0x9b410272 udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x9b445a21 pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x9b8d4da2 cont_write_begin
+EXPORT_SYMBOL vmlinux 0x9ba19327 copy_io_context
+EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split
+EXPORT_SYMBOL vmlinux 0x9bc0385b sock_no_listen
+EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c038ab3 scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x9c0709aa ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan
+EXPORT_SYMBOL vmlinux 0x9c127e04 set_pages_array_uc
+EXPORT_SYMBOL vmlinux 0x9c17391a delayed_slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x9c1f2fe6 set_groups
+EXPORT_SYMBOL vmlinux 0x9c3cbb73 serial8250_register_port
+EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x9c4dfc53 add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0x9c5710f4 input_get_keycode
+EXPORT_SYMBOL vmlinux 0x9c745bee dm_io
+EXPORT_SYMBOL vmlinux 0x9c8d7a6c phy_stop
+EXPORT_SYMBOL vmlinux 0x9c90d0e5 nf_register_hooks
+EXPORT_SYMBOL vmlinux 0x9c99a889 scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0x9ca95a0e sort
+EXPORT_SYMBOL vmlinux 0x9cb12d5a vfs_symlink
+EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x9cc8dd1f skb_copy
+EXPORT_SYMBOL vmlinux 0x9cf884a8 register_8022_client
+EXPORT_SYMBOL vmlinux 0x9cfa892e ilookup5
+EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9d0d0a02 __dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x9d11458b ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable
+EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d4c838e redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x9d9a5c5a kdb_current_task
+EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x9dd08427 create_proc_entry
+EXPORT_SYMBOL vmlinux 0x9ddc0b59 __splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x9e078aaa mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0x9e0fdde2 max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x9e1b691b nla_put
+EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read
+EXPORT_SYMBOL vmlinux 0x9e65a105 compat_sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay
+EXPORT_SYMBOL vmlinux 0x9e7f7c59 bio_map_kern
+EXPORT_SYMBOL vmlinux 0x9e8c0579 pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table
+EXPORT_SYMBOL vmlinux 0x9ebc8334 unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource
+EXPORT_SYMBOL vmlinux 0x9edbecae snprintf
+EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk
+EXPORT_SYMBOL vmlinux 0x9f02e30b ip_route_output_key
+EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0x9f1369fd tcp_read_sock
+EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool
+EXPORT_SYMBOL vmlinux 0x9f368643 padata_stop
+EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f477d5b tty_hangup
+EXPORT_SYMBOL vmlinux 0x9f5a6238 ilookup
+EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section
+EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk
+EXPORT_SYMBOL vmlinux 0x9f984513 strrchr
+EXPORT_SYMBOL vmlinux 0x9f9a818e skb_set_dev
+EXPORT_SYMBOL vmlinux 0x9fb16b8e iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0x9fb4e029 request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa0779ed0 inet_csk_accept
+EXPORT_SYMBOL vmlinux 0xa084affd mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0xa0996c86 inetdev_by_index
+EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock
+EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec
+EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0cdbeab read_dev_sector
+EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize
+EXPORT_SYMBOL vmlinux 0xa0dc65a2 nla_append
+EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xa1074aad jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa10917a3 sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0xa1159dd5 security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa13c964c pci_request_region
+EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa155927e generic_show_options
+EXPORT_SYMBOL vmlinux 0xa163047a blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0xa17c376c bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0xa1881857 netif_carrier_on
+EXPORT_SYMBOL vmlinux 0xa1a3a93a scsi_execute
+EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock
+EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode
+EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched
+EXPORT_SYMBOL vmlinux 0xa1c812df input_free_device
+EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa21213b1 jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0xa21cda85 bdi_destroy
+EXPORT_SYMBOL vmlinux 0xa22ca5b3 splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0xa23835d9 neigh_seq_start
+EXPORT_SYMBOL vmlinux 0xa26703e0 mmc_alloc_host
+EXPORT_SYMBOL vmlinux 0xa279dc5d agp_generic_insert_memory
+EXPORT_SYMBOL vmlinux 0xa28aab66 inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0xa28ea3a6 find_get_page
+EXPORT_SYMBOL vmlinux 0xa29fb275 eth_change_mtu
+EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2b67313 d_genocide
+EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa32317c3 km_new_mapping
+EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker
+EXPORT_SYMBOL vmlinux 0xa331e15b bio_map_user
+EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy
+EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc
+EXPORT_SYMBOL vmlinux 0xa350dcec clear_inode
+EXPORT_SYMBOL vmlinux 0xa35383ad textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config
+EXPORT_SYMBOL vmlinux 0xa3918796 nobh_writepage
+EXPORT_SYMBOL vmlinux 0xa3926a98 dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove
+EXPORT_SYMBOL vmlinux 0xa3c1312d tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0xa3dc41ce dqput
+EXPORT_SYMBOL vmlinux 0xa3e23f95 generic_setattr
+EXPORT_SYMBOL vmlinux 0xa42d4d98 d_invalidate
+EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0xa46cdfe1 file_permission
+EXPORT_SYMBOL vmlinux 0xa47fb533 unregister_nls
+EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq
+EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4c27b7d swiotlb_map_sg_attrs
+EXPORT_SYMBOL vmlinux 0xa4c44c6c __dquot_free_space
+EXPORT_SYMBOL vmlinux 0xa4cb7b6e __xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0xa4d1f7df scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush
+EXPORT_SYMBOL vmlinux 0xa4e756aa ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0xa528b2d0 scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xa5398a6a scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0xa54ce668 skb_clone
+EXPORT_SYMBOL vmlinux 0xa561dc7f user_revoke
+EXPORT_SYMBOL vmlinux 0xa56813bf dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone
+EXPORT_SYMBOL vmlinux 0xa57b68fe jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0xa5801827 i2c_use_client
+EXPORT_SYMBOL vmlinux 0xa5813fb1 skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse
+EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a32e43 ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0xa5a5fa9c i2c_master_send
+EXPORT_SYMBOL vmlinux 0xa5a6aa2f devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xa5b042bb generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0xa5bb68a2 thermal_zone_device_register
+EXPORT_SYMBOL vmlinux 0xa5f240ff tcp_check_req
+EXPORT_SYMBOL vmlinux 0xa5f738bf security_path_mknod
+EXPORT_SYMBOL vmlinux 0xa5f76272 inet_recvmsg
+EXPORT_SYMBOL vmlinux 0xa60842d3 skb_pad
+EXPORT_SYMBOL vmlinux 0xa61447d6 acpi_bus_get_device
+EXPORT_SYMBOL vmlinux 0xa62a2d47 dev_alloc_name
+EXPORT_SYMBOL vmlinux 0xa62d72c2 dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember
+EXPORT_SYMBOL vmlinux 0xa64d764a ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0xa67fe3c0 i2c_verify_client
+EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa6826e66 ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0xa682a327 ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0xa68d6b13 netif_carrier_off
+EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh
+EXPORT_SYMBOL vmlinux 0xa6c6ad62 generic_writepages
+EXPORT_SYMBOL vmlinux 0xa6d124d9 vmtruncate
+EXPORT_SYMBOL vmlinux 0xa6e16486 cfb_copyarea
+EXPORT_SYMBOL vmlinux 0xa6eba16d block_invalidatepage
+EXPORT_SYMBOL vmlinux 0xa6f93b88 pci_claim_resource
+EXPORT_SYMBOL vmlinux 0xa6f93ba0 skb_queue_purge
+EXPORT_SYMBOL vmlinux 0xa703a6de qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0xa71503ae invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes
+EXPORT_SYMBOL vmlinux 0xa72f2aec __skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xa7436ecd blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0xa75162f3 block_prepare_write
+EXPORT_SYMBOL vmlinux 0xa757cdfb blk_queue_ordered
+EXPORT_SYMBOL vmlinux 0xa7937ee4 drop_super
+EXPORT_SYMBOL vmlinux 0xa79e64c6 tcp_make_synack
+EXPORT_SYMBOL vmlinux 0xa7f8a6aa scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0xa812f413 inode_init_owner
+EXPORT_SYMBOL vmlinux 0xa8138c88 generic_file_llseek_unlocked
+EXPORT_SYMBOL vmlinux 0xa815c474 pagevec_lookup
+EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on
+EXPORT_SYMBOL vmlinux 0xa84ee28d __page_symlink
+EXPORT_SYMBOL vmlinux 0xa8528795 compat_sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xa859353c dm_table_event
+EXPORT_SYMBOL vmlinux 0xa863d995 rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0xa874b571 pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0xa87d17bd tcf_hash_search
+EXPORT_SYMBOL vmlinux 0xa8828db5 scsi_host_get
+EXPORT_SYMBOL vmlinux 0xa886a958 krealloc
+EXPORT_SYMBOL vmlinux 0xa88fc454 jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region
+EXPORT_SYMBOL vmlinux 0xa8a7cf8b scsi_remove_device
+EXPORT_SYMBOL vmlinux 0xa8cdc527 __dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning
+EXPORT_SYMBOL vmlinux 0xa8eeb494 bitmap_endwrite
+EXPORT_SYMBOL vmlinux 0xa8f94214 page_follow_link_light
+EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support
+EXPORT_SYMBOL vmlinux 0xa93b3111 dquot_quota_on
+EXPORT_SYMBOL vmlinux 0xa94fc5bd inode_init_once
+EXPORT_SYMBOL vmlinux 0xa95521b0 nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xa97ea1f4 ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xa99a356e ps2_end_command
+EXPORT_SYMBOL vmlinux 0xa9a33c53 neigh_event_ns
+EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize
+EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc
+EXPORT_SYMBOL vmlinux 0xa9c01936 sock_create_lite
+EXPORT_SYMBOL vmlinux 0xa9cd4acc tty_check_change
+EXPORT_SYMBOL vmlinux 0xa9ec79dd security_inode_permission
+EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xa9f0c149 pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0xa9f35a3d security_inode_init_security
+EXPORT_SYMBOL vmlinux 0xaa0c7dc7 scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xaa51e5b9 compat_ip_setsockopt
+EXPORT_SYMBOL vmlinux 0xaa5b6d82 skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xaa774066 vfs_readdir
+EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check
+EXPORT_SYMBOL vmlinux 0xaa8c1a11 skb_queue_tail
+EXPORT_SYMBOL vmlinux 0xaa8d7431 tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0xaa96f537 igrab
+EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable
+EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister
+EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp
+EXPORT_SYMBOL vmlinux 0xab1167f8 rfkill_set_led_trigger_name
+EXPORT_SYMBOL vmlinux 0xab141641 pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0xab1d2912 dw_spi_remove_host
+EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off
+EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc
+EXPORT_SYMBOL vmlinux 0xab687290 pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0xab777f8c simple_unlink
+EXPORT_SYMBOL vmlinux 0xab98fbc1 km_state_expired
+EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock
+EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabd6a045 set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0xabe9b20e bitmap_unplug
+EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0xac29d5d4 phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0xac3eb169 agp_enable
+EXPORT_SYMBOL vmlinux 0xac514913 fb_is_primary_device
+EXPORT_SYMBOL vmlinux 0xac56a90f sock_release
+EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id
+EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac6a753a __inet6_hash
+EXPORT_SYMBOL vmlinux 0xac88210e ethtool_op_get_rx_csum
+EXPORT_SYMBOL vmlinux 0xac9283db dma_set_mask
+EXPORT_SYMBOL vmlinux 0xacb3ec45 skb_pull
+EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton
+EXPORT_SYMBOL vmlinux 0xaccc1132 pipe_lock
+EXPORT_SYMBOL vmlinux 0xaccd6f19 sock_i_uid
+EXPORT_SYMBOL vmlinux 0xacd9700d dev_addr_init
+EXPORT_SYMBOL vmlinux 0xacdd3672 tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0xace7dad3 __skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup
+EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex
+EXPORT_SYMBOL vmlinux 0xad05e23f jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0xad0d1702 simple_rmdir
+EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute
+EXPORT_SYMBOL vmlinux 0xad1f2194 scsi_dma_map
+EXPORT_SYMBOL vmlinux 0xad25fb12 __memcpy
+EXPORT_SYMBOL vmlinux 0xad3278fa md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad471990 pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0xad4ef2e8 vc_resize
+EXPORT_SYMBOL vmlinux 0xad50e3c2 netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0xad8884f9 journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xad99c20b hippi_mac_addr
+EXPORT_SYMBOL vmlinux 0xad9ef98a phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xaddeea34 i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0xade36526 md_integrity_register
+EXPORT_SYMBOL vmlinux 0xadf4303a lock_super
+EXPORT_SYMBOL vmlinux 0xae20366e pnpacpi_protocol
+EXPORT_SYMBOL vmlinux 0xae3188db blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0xae40780a tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0xae50ca85 tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0xae7eaf99 inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0xae821dcd simple_readpage
+EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set
+EXPORT_SYMBOL vmlinux 0xae913222 journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xae9e0349 __inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0xaea56077 netpoll_poll
+EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict
+EXPORT_SYMBOL vmlinux 0xaea9a4c4 simple_release_fs
+EXPORT_SYMBOL vmlinux 0xaed163ca nf_reinject
+EXPORT_SYMBOL vmlinux 0xaede6661 unregister_quota_format
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf46b750 d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register
+EXPORT_SYMBOL vmlinux 0xaf51db91 dquot_alloc
+EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string
+EXPORT_SYMBOL vmlinux 0xafde2a9f journal_revoke
+EXPORT_SYMBOL vmlinux 0xafe5cc83 posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn
+EXPORT_SYMBOL vmlinux 0xafef8fa9 register_memory_notifier
+EXPORT_SYMBOL vmlinux 0xaff08657 unregister_filesystem
+EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait
+EXPORT_SYMBOL vmlinux 0xb044cdf5 read_cache_page_async
+EXPORT_SYMBOL vmlinux 0xb04ea8f0 agp_rebind_memory
+EXPORT_SYMBOL vmlinux 0xb05436e1 proc_symlink
+EXPORT_SYMBOL vmlinux 0xb05b39e3 vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler
+EXPORT_SYMBOL vmlinux 0xb0a015eb tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0xb0b35261 jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0xb0b548dd get_super
+EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0b84b70 simple_statfs
+EXPORT_SYMBOL vmlinux 0xb0dbbb4b skb_insert
+EXPORT_SYMBOL vmlinux 0xb0e10781 get_option
+EXPORT_SYMBOL vmlinux 0xb0ea4f9b pci_match_id
+EXPORT_SYMBOL vmlinux 0xb0fa76b6 dquot_resume
+EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0xb11cf18f blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat
+EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb1312438 dm_exception_store_type_register
+EXPORT_SYMBOL vmlinux 0xb1371857 mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0xb137c11c pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0xb15943da mmc_wait_for_req
+EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table
+EXPORT_SYMBOL vmlinux 0xb178440a inet_bind
+EXPORT_SYMBOL vmlinux 0xb17dfc50 blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xb18e1c85 __generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1a20024 dev_disable_lro
+EXPORT_SYMBOL vmlinux 0xb1a41bec journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xb1da43c1 lock_may_read
+EXPORT_SYMBOL vmlinux 0xb1df7f5c xrlim_allow
+EXPORT_SYMBOL vmlinux 0xb1f31451 swiotlb_sync_single_for_device
+EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit
+EXPORT_SYMBOL vmlinux 0xb203eeca tty_shutdown
+EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc
+EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu
+EXPORT_SYMBOL vmlinux 0xb21ce4f4 add_disk
+EXPORT_SYMBOL vmlinux 0xb21f2772 xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short
+EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb296d965 notify_change
+EXPORT_SYMBOL vmlinux 0xb2adc704 revalidate_disk
+EXPORT_SYMBOL vmlinux 0xb2cea29c cdrom_mode_sense
+EXPORT_SYMBOL vmlinux 0xb2e55898 cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0xb2f0e7cd swiotlb_free_coherent
+EXPORT_SYMBOL vmlinux 0xb2f7468d ida_get_new
+EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4
+EXPORT_SYMBOL vmlinux 0xb312b250 unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0xb32567db __dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer
+EXPORT_SYMBOL vmlinux 0xb32bceb1 security_path_mkdir
+EXPORT_SYMBOL vmlinux 0xb33059f2 proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate
+EXPORT_SYMBOL vmlinux 0xb34fcbf5 i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit
+EXPORT_SYMBOL vmlinux 0xb3835f2b scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0xb39519a1 get_fs_type
+EXPORT_SYMBOL vmlinux 0xb39d9fd9 scsi_scan_target
+EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3b05fbe key_validate
+EXPORT_SYMBOL vmlinux 0xb3c0240d invalidate_partition
+EXPORT_SYMBOL vmlinux 0xb3c357e3 call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0xb3d67fc3 generic_setlease
+EXPORT_SYMBOL vmlinux 0xb3e43aad swiotlb_dma_mapping_error
+EXPORT_SYMBOL vmlinux 0xb3ecd4c9 scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact
+EXPORT_SYMBOL vmlinux 0xb406738f generic_file_open
+EXPORT_SYMBOL vmlinux 0xb4078d21 dev_get_flags
+EXPORT_SYMBOL vmlinux 0xb40e6e65 seq_bitmap
+EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked
+EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool
+EXPORT_SYMBOL vmlinux 0xb4363d49 dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0xb4390f9a mcount
+EXPORT_SYMBOL vmlinux 0xb449d103 dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids
+EXPORT_SYMBOL vmlinux 0xb46267d9 write_inode_now
+EXPORT_SYMBOL vmlinux 0xb46ca55c sock_i_ino
+EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb47b6e45 dquot_scan_active
+EXPORT_SYMBOL vmlinux 0xb493c711 jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0xb4a67b76 phy_sanitize_settings
+EXPORT_SYMBOL vmlinux 0xb4b532b5 module_layout
+EXPORT_SYMBOL vmlinux 0xb4c562b6 eth_header_parse
+EXPORT_SYMBOL vmlinux 0xb4ce7615 kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0xb4ff49d2 xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf
+EXPORT_SYMBOL vmlinux 0xb50e50a8 dev_getbyhwaddr
+EXPORT_SYMBOL vmlinux 0xb521a851 task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb54f6ed6 boot_cpu_data
+EXPORT_SYMBOL vmlinux 0xb550522f revert_creds
+EXPORT_SYMBOL vmlinux 0xb55599c0 ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0xb55b7760 qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0xb55de4da __skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0xb571906d pci_assign_resource
+EXPORT_SYMBOL vmlinux 0xb576e0ed dquot_destroy
+EXPORT_SYMBOL vmlinux 0xb5a3781c bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5a4781c get_sb_ns
+EXPORT_SYMBOL vmlinux 0xb5c59c22 in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free
+EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction
+EXPORT_SYMBOL vmlinux 0xb5eb70ac acpi_get_physical_device
+EXPORT_SYMBOL vmlinux 0xb5f28b5f __any_online_cpu
+EXPORT_SYMBOL vmlinux 0xb60ecb1b kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one
+EXPORT_SYMBOL vmlinux 0xb632d3fe tcf_hash_create
+EXPORT_SYMBOL vmlinux 0xb6404b9d input_set_keycode
+EXPORT_SYMBOL vmlinux 0xb64fdadd __xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0xb674b6f2 pnp_request_card_device
+EXPORT_SYMBOL vmlinux 0xb6752aad search_binary_handler
+EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6b001a2 netlink_set_err
+EXPORT_SYMBOL vmlinux 0xb6bfcdb8 tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu
+EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node
+EXPORT_SYMBOL vmlinux 0xb6ee50e5 follow_pfn
+EXPORT_SYMBOL vmlinux 0xb71543d8 mnt_pin
+EXPORT_SYMBOL vmlinux 0xb73e475b ppp_input
+EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event
+EXPORT_SYMBOL vmlinux 0xb788241f do_truncate
+EXPORT_SYMBOL vmlinux 0xb7b12601 pnp_stop_dev
+EXPORT_SYMBOL vmlinux 0xb7b147a4 blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0xb7b422f5 blk_get_request
+EXPORT_SYMBOL vmlinux 0xb7b88912 qdisc_reset
+EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring
+EXPORT_SYMBOL vmlinux 0xb7d2b3a5 devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0xb7d7ec55 tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xb7ecc4e8 inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0xb80140eb mpage_writepages
+EXPORT_SYMBOL vmlinux 0xb80dd758 neigh_parms_release
+EXPORT_SYMBOL vmlinux 0xb8232532 ab3100_event_register
+EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops
+EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32
+EXPORT_SYMBOL vmlinux 0xb8722c6b generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release
+EXPORT_SYMBOL vmlinux 0xb88386dc compat_nf_getsockopt
+EXPORT_SYMBOL vmlinux 0xb885c3a7 rfkill_blocked
+EXPORT_SYMBOL vmlinux 0xb899d9df scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32
+EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue
+EXPORT_SYMBOL vmlinux 0xb8a9b88f dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0xb8b488ab i8042_install_filter
+EXPORT_SYMBOL vmlinux 0xb8c22a8c sk_reset_timer
+EXPORT_SYMBOL vmlinux 0xb8c9fb65 bio_free
+EXPORT_SYMBOL vmlinux 0xb8cb2022 gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0xb8db9ee4 datagram_poll
+EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8
+EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory
+EXPORT_SYMBOL vmlinux 0xb90acdc3 mmc_free_host
+EXPORT_SYMBOL vmlinux 0xb92b70eb dm_unregister_target
+EXPORT_SYMBOL vmlinux 0xb946223c get_phy_device
+EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb99bbe51 jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xb9a819e2 blk_plug_device_unlocked
+EXPORT_SYMBOL vmlinux 0xb9a9e756 tty_port_open
+EXPORT_SYMBOL vmlinux 0xb9c05534 sk_release_kernel
+EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable
+EXPORT_SYMBOL vmlinux 0xb9f21271 generic_make_request
+EXPORT_SYMBOL vmlinux 0xb9fa5ff9 rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0xb9fc782c ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap
+EXPORT_SYMBOL vmlinux 0xba09383d vfs_unlink
+EXPORT_SYMBOL vmlinux 0xba0e59f8 security_inode_readlink
+EXPORT_SYMBOL vmlinux 0xba1d97eb blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0xba21ad28 dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read
+EXPORT_SYMBOL vmlinux 0xba3fa333 inet_register_protosw
+EXPORT_SYMBOL vmlinux 0xba4505ac set_create_files_as
+EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba56a679 sk_filter
+EXPORT_SYMBOL vmlinux 0xba58760c dev_mc_sync
+EXPORT_SYMBOL vmlinux 0xba6e0113 framebuffer_release
+EXPORT_SYMBOL vmlinux 0xba7a2110 bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup
+EXPORT_SYMBOL vmlinux 0xbaa4626a inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbaab7db6 dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0xbab25e09 input_grab_device
+EXPORT_SYMBOL vmlinux 0xbace0b73 filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0xbaf68eb6 sock_init_data
+EXPORT_SYMBOL vmlinux 0xbb035298 follow_up
+EXPORT_SYMBOL vmlinux 0xbb10e179 ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb4766f3 softnet_data
+EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb5d7de7 dcache_dir_close
+EXPORT_SYMBOL vmlinux 0xbb72494e agp_generic_enable
+EXPORT_SYMBOL vmlinux 0xbb741ed6 override_creds
+EXPORT_SYMBOL vmlinux 0xbb794612 otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0xbb8685be padata_remove_cpu
+EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font
+EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xbbe4f2f4 unregister_8022_client
+EXPORT_SYMBOL vmlinux 0xbbfb4a17 dw_spi_suspend_host
+EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit
+EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table
+EXPORT_SYMBOL vmlinux 0xbc31be53 journal_forget
+EXPORT_SYMBOL vmlinux 0xbc32f86e nf_log_register
+EXPORT_SYMBOL vmlinux 0xbc7bd1d4 eth_header_cache
+EXPORT_SYMBOL vmlinux 0xbcb38a72 generic_write_end
+EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user
+EXPORT_SYMBOL vmlinux 0xbce64869 phy_start
+EXPORT_SYMBOL vmlinux 0xbce8fd07 tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0xbcff9ec3 blk_stop_queue
+EXPORT_SYMBOL vmlinux 0xbd20b31d __secpath_destroy
+EXPORT_SYMBOL vmlinux 0xbd271a34 tcf_hash_check
+EXPORT_SYMBOL vmlinux 0xbd3ca0f0 write_one_page
+EXPORT_SYMBOL vmlinux 0xbd3e2171 xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0xbd466abc pnp_device_detach
+EXPORT_SYMBOL vmlinux 0xbd5719ba ppp_unit_number
+EXPORT_SYMBOL vmlinux 0xbd6c8d1d posix_acl_permission
+EXPORT_SYMBOL vmlinux 0xbd9a6ae1 inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port
+EXPORT_SYMBOL vmlinux 0xbdb0cc74 scsi_remove_target
+EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next
+EXPORT_SYMBOL vmlinux 0xbdf7344b skb_trim
+EXPORT_SYMBOL vmlinux 0xbe1e8a61 may_umount_tree
+EXPORT_SYMBOL vmlinux 0xbe2bfdce tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node
+EXPORT_SYMBOL vmlinux 0xbe36f121 init_task
+EXPORT_SYMBOL vmlinux 0xbe3b5a21 noop_qdisc
+EXPORT_SYMBOL vmlinux 0xbe782f7f agp_create_memory
+EXPORT_SYMBOL vmlinux 0xbe797d67 ip_route_input_common
+EXPORT_SYMBOL vmlinux 0xbe7ee9dd sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xbea3ec9d pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0xbef06c3b xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbf2c7934 mmc_power_save_host
+EXPORT_SYMBOL vmlinux 0xbf58ac1d inet_frags_fini
+EXPORT_SYMBOL vmlinux 0xbf62c6c7 dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0xbf6a85c6 generic_setxattr
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbfb40bc3 security_path_chmod
+EXPORT_SYMBOL vmlinux 0xbfbeeb56 neigh_update
+EXPORT_SYMBOL vmlinux 0xbfc0f3ca dev_mc_flush
+EXPORT_SYMBOL vmlinux 0xbfc0f891 tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep
+EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xbff6d950 gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user
+EXPORT_SYMBOL vmlinux 0xc0159ede blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0xc019c5fa tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0xc0254b29 pagecache_write_end
+EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be
+EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit
+EXPORT_SYMBOL vmlinux 0xc0d20eb5 scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0xc0e87831 scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0xc0fe40ce i2c_master_recv
+EXPORT_SYMBOL vmlinux 0xc109b700 dma_supported
+EXPORT_SYMBOL vmlinux 0xc10a6a27 ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0xc10f9c28 devm_ioport_map
+EXPORT_SYMBOL vmlinux 0xc1166f3a dquot_commit_info
+EXPORT_SYMBOL vmlinux 0xc1268644 idr_init
+EXPORT_SYMBOL vmlinux 0xc1288482 pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0xc13c0da0 mpage_readpages
+EXPORT_SYMBOL vmlinux 0xc155fcd2 xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic
+EXPORT_SYMBOL vmlinux 0xc17d62c3 current_task
+EXPORT_SYMBOL vmlinux 0xc1ad1380 dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1eaa1f8 blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0xc214bca2 block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0xc2210131 vm_map_ram
+EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup
+EXPORT_SYMBOL vmlinux 0xc244cd7e fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0xc24b48da xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc286a690 phy_driver_register
+EXPORT_SYMBOL vmlinux 0xc289f97f sock_setsockopt
+EXPORT_SYMBOL vmlinux 0xc2c136ef vc_cons
+EXPORT_SYMBOL vmlinux 0xc2d007c4 jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices
+EXPORT_SYMBOL vmlinux 0xc2f58199 spi_attach_transport
+EXPORT_SYMBOL vmlinux 0xc3157fbf sk_run_filter
+EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu
+EXPORT_SYMBOL vmlinux 0xc36a867e alloc_fddidev
+EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout
+EXPORT_SYMBOL vmlinux 0xc38ffa49 dquot_disable
+EXPORT_SYMBOL vmlinux 0xc39a94ee genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0xc3a66ff0 mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1
+EXPORT_SYMBOL vmlinux 0xc3e82e88 blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0xc3f0e1d3 ____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier
+EXPORT_SYMBOL vmlinux 0xc4237efd pci_request_regions
+EXPORT_SYMBOL vmlinux 0xc42e6909 tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0xc44c7a6f dm_table_put
+EXPORT_SYMBOL vmlinux 0xc44d9325 register_sysrq_key
+EXPORT_SYMBOL vmlinux 0xc45aba5d pci_fixup_device
+EXPORT_SYMBOL vmlinux 0xc4771bd8 jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0xc489ac42 __put_cred
+EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup
+EXPORT_SYMBOL vmlinux 0xc4a49603 mmc_resume_host
+EXPORT_SYMBOL vmlinux 0xc4a51098 qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0xc4b13a5f lock_sock_nested
+EXPORT_SYMBOL vmlinux 0xc4b1489e journal_errno
+EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic
+EXPORT_SYMBOL vmlinux 0xc4e9c01c cpu_active_mask
+EXPORT_SYMBOL vmlinux 0xc4eaadf8 register_qdisc
+EXPORT_SYMBOL vmlinux 0xc527554a padata_do_parallel
+EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc5322294 dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0xc534c0e5 pnp_release_card_device
+EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16
+EXPORT_SYMBOL vmlinux 0xc558530d profile_pc
+EXPORT_SYMBOL vmlinux 0xc5742deb tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0xc5844fb8 __per_cpu_offset
+EXPORT_SYMBOL vmlinux 0xc5b2603e icmpv6_send
+EXPORT_SYMBOL vmlinux 0xc5be53fb request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0xc5c13e34 blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0xc5d0a558 pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot
+EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0xc646bac6 netdev_state_change
+EXPORT_SYMBOL vmlinux 0xc6511d01 swiotlb_unmap_sg_attrs
+EXPORT_SYMBOL vmlinux 0xc6582590 mmc_align_data_size
+EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes
+EXPORT_SYMBOL vmlinux 0xc65df220 elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0xc67bd8db serio_reconnect
+EXPORT_SYMBOL vmlinux 0xc67cfe57 lro_vlan_hwaccel_receive_frags
+EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info
+EXPORT_SYMBOL vmlinux 0xc68dda90 dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0xc6bfeb08 kobject_init
+EXPORT_SYMBOL vmlinux 0xc6eba178 journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xc6ee12e6 inet_shutdown
+EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port
+EXPORT_SYMBOL vmlinux 0xc7286e41 prepare_binprm
+EXPORT_SYMBOL vmlinux 0xc740c64a memchr
+EXPORT_SYMBOL vmlinux 0xc74276ca noop_fsync
+EXPORT_SYMBOL vmlinux 0xc74ebf15 inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0xc75d5f05 rtnl_notify
+EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7a5b05c alloc_disk_node
+EXPORT_SYMBOL vmlinux 0xc7b63c20 bdput
+EXPORT_SYMBOL vmlinux 0xc7ec20cb vm_insert_page
+EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table
+EXPORT_SYMBOL vmlinux 0xc8a5efaf free_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8bd8a74 get_sb_single
+EXPORT_SYMBOL vmlinux 0xc8c22709 splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0xc8cc67d7 input_register_handle
+EXPORT_SYMBOL vmlinux 0xc8dc98a7 dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0xc8dcab3d bio_unmap_user
+EXPORT_SYMBOL vmlinux 0xc90f61e0 scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0xc94173c9 pci_remove_bus
+EXPORT_SYMBOL vmlinux 0xc94bac3b pci_release_region
+EXPORT_SYMBOL vmlinux 0xc94e6cef wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0xc9547e87 genphy_read_status
+EXPORT_SYMBOL vmlinux 0xc993be52 netdev_features_change
+EXPORT_SYMBOL vmlinux 0xc993ea45 tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev
+EXPORT_SYMBOL vmlinux 0xc99e8f95 skb_seq_read
+EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete
+EXPORT_SYMBOL vmlinux 0xc9b0b0cf xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0xc9b80b4c pid_task
+EXPORT_SYMBOL vmlinux 0xc9cd1184 x86_hyper_vmware
+EXPORT_SYMBOL vmlinux 0xca22ee60 __lru_cache_add
+EXPORT_SYMBOL vmlinux 0xca4136d9 dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0xca596008 lookup_one_len
+EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca5df891 pci_pme_active
+EXPORT_SYMBOL vmlinux 0xca628a63 xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0xca6f476b dmam_pool_create
+EXPORT_SYMBOL vmlinux 0xca808d4d ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xca8295c6 __sk_dst_check
+EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level
+EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel
+EXPORT_SYMBOL vmlinux 0xcaca0973 check_disk_size_change
+EXPORT_SYMBOL vmlinux 0xcacf3d1a tty_kref_put
+EXPORT_SYMBOL vmlinux 0xcad3cdd3 generic_block_bmap
+EXPORT_SYMBOL vmlinux 0xcad4dcf4 __sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0xcb138863 bdevname
+EXPORT_SYMBOL vmlinux 0xcb186a87 dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0xcb484273 open_by_devnum
+EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb728d4e pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power
+EXPORT_SYMBOL vmlinux 0xcbb21719 scsi_print_sense
+EXPORT_SYMBOL vmlinux 0xcc00266f put_disk
+EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen
+EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port
+EXPORT_SYMBOL vmlinux 0xcc3008ec ppp_register_channel
+EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc3e1873 tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0xcc4b80cb scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc53deea tr_type_trans
+EXPORT_SYMBOL vmlinux 0xcc6d592a pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0xcc7e6b2f scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0xccd36d0c i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0xcd1fe3ed vlan_gro_receive
+EXPORT_SYMBOL vmlinux 0xcd2ab150 tcp_ioctl
+EXPORT_SYMBOL vmlinux 0xcd41fda1 scsi_register_interface
+EXPORT_SYMBOL vmlinux 0xcd48a023 blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xcd499e34 pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0xcd4e4d47 input_register_device
+EXPORT_SYMBOL vmlinux 0xcd828240 eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0xcdcaf68d xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0xcddec6c5 dma_find_channel
+EXPORT_SYMBOL vmlinux 0xcdf6bf96 swiotlb_sync_sg_for_cpu
+EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe
+EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0xce20e1d2 filp_close
+EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state
+EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce5ac280 eth_header
+EXPORT_SYMBOL vmlinux 0xce5cc21e boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0xce73882c journal_start
+EXPORT_SYMBOL vmlinux 0xce8a5797 phy_print_status
+EXPORT_SYMBOL vmlinux 0xce8e837e directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0xcea9566b blk_integrity_register
+EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free
+EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port
+EXPORT_SYMBOL vmlinux 0xcf0c15c1 lock_rename
+EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error
+EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free
+EXPORT_SYMBOL vmlinux 0xcf881fdb bdget_disk
+EXPORT_SYMBOL vmlinux 0xcf922454 bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfccad2f generic_delete_inode
+EXPORT_SYMBOL vmlinux 0xcfea4cdf ida_destroy
+EXPORT_SYMBOL vmlinux 0xd006c9dc __rta_fill
+EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd019c1ec genphy_config_advert
+EXPORT_SYMBOL vmlinux 0xd03b78e0 d_instantiate
+EXPORT_SYMBOL vmlinux 0xd0452aee x86_hyper_ms_hyperv
+EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables
+EXPORT_SYMBOL vmlinux 0xd0a6635a scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0xd0a6dcdc uart_remove_one_port
+EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0d1176f put_tty_driver
+EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0f6eeab key_type_keyring
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key
+EXPORT_SYMBOL vmlinux 0xd128117c free_netdev
+EXPORT_SYMBOL vmlinux 0xd13fd7ca seq_release
+EXPORT_SYMBOL vmlinux 0xd1431182 fifo_set_limit
+EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver
+EXPORT_SYMBOL vmlinux 0xd1529f36 scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0xd15aa581 blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic
+EXPORT_SYMBOL vmlinux 0xd18e9d8d md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings
+EXPORT_SYMBOL vmlinux 0xd2096bfb genphy_update_link
+EXPORT_SYMBOL vmlinux 0xd20fe074 posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel
+EXPORT_SYMBOL vmlinux 0xd23c04f3 sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0xd23db386 check_disk_change
+EXPORT_SYMBOL vmlinux 0xd244789c set_page_dirty
+EXPORT_SYMBOL vmlinux 0xd24633b4 dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0xd247a8b8 alloc_trdev
+EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t
+EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook
+EXPORT_SYMBOL vmlinux 0xd26e1601 unregister_binfmt
+EXPORT_SYMBOL vmlinux 0xd270d3fa md_write_start
+EXPORT_SYMBOL vmlinux 0xd271a91c dst_destroy
+EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match
+EXPORT_SYMBOL vmlinux 0xd2ae099d dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0xd2d6a930 nf_hook_slow
+EXPORT_SYMBOL vmlinux 0xd2d9f3d3 bioset_free
+EXPORT_SYMBOL vmlinux 0xd32baf62 d_splice_alias
+EXPORT_SYMBOL vmlinux 0xd330ce45 kobject_set_name
+EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock
+EXPORT_SYMBOL vmlinux 0xd38d6748 neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64
+EXPORT_SYMBOL vmlinux 0xd3952c57 uart_match_port
+EXPORT_SYMBOL vmlinux 0xd39898fe jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user
+EXPORT_SYMBOL vmlinux 0xd3f52282 blkdev_put
+EXPORT_SYMBOL vmlinux 0xd4054c6c do_splice_from
+EXPORT_SYMBOL vmlinux 0xd4079e5b kobject_del
+EXPORT_SYMBOL vmlinux 0xd41abc0e xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0xd44282e8 swiotlb_sync_sg_for_device
+EXPORT_SYMBOL vmlinux 0xd46e12ed gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0xd493f424 dev_uc_sync
+EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data
+EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd52e05ad sk_wait_data
+EXPORT_SYMBOL vmlinux 0xd53e4cfa balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0xd54eb3b8 d_rehash
+EXPORT_SYMBOL vmlinux 0xd55c179e backlight_device_register
+EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out
+EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit
+EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages
+EXPORT_SYMBOL vmlinux 0xd5801516 __register_binfmt
+EXPORT_SYMBOL vmlinux 0xd58d19d7 blk_free_tags
+EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put
+EXPORT_SYMBOL vmlinux 0xd5b30799 dma_ops
+EXPORT_SYMBOL vmlinux 0xd5b9c8b4 slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0xd5b9e9cc block_write_end
+EXPORT_SYMBOL vmlinux 0xd5da74e9 __ht_create_irq
+EXPORT_SYMBOL vmlinux 0xd6088cdd kset_unregister
+EXPORT_SYMBOL vmlinux 0xd60efc4a stop_tty
+EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read
+EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd633f9b1 ll_rw_block
+EXPORT_SYMBOL vmlinux 0xd635d134 rb_last
+EXPORT_SYMBOL vmlinux 0xd6374f6b mfd_add_devices
+EXPORT_SYMBOL vmlinux 0xd64b708e freeze_bdev
+EXPORT_SYMBOL vmlinux 0xd659dc9d ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0xd68a27b3 dma_pool_free
+EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single
+EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz
+EXPORT_SYMBOL vmlinux 0xd6c54907 new_inode
+EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc
+EXPORT_SYMBOL vmlinux 0xd6f97ca1 rb_first
+EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh
+EXPORT_SYMBOL vmlinux 0xd71fe275 xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0xd7218dfe input_set_capability
+EXPORT_SYMBOL vmlinux 0xd721db45 node_data
+EXPORT_SYMBOL vmlinux 0xd75ef07c bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0xd769dc2b kthread_stop
+EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and
+EXPORT_SYMBOL vmlinux 0xd77b79b0 deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0xd77ef54d get_user_pages
+EXPORT_SYMBOL vmlinux 0xd785cacc tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal
+EXPORT_SYMBOL vmlinux 0xd7b6e598 bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0xd7c537a5 may_umount
+EXPORT_SYMBOL vmlinux 0xd7c5f68c input_unregister_handler
+EXPORT_SYMBOL vmlinux 0xd7c683d1 mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0xd7daa025 elv_queue_empty
+EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7ebeede do_SAK
+EXPORT_SYMBOL vmlinux 0xd7f43b83 bitmap_cond_end_sync
+EXPORT_SYMBOL vmlinux 0xd8249063 blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user
+EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone
+EXPORT_SYMBOL vmlinux 0xd8d9fc6b __sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd8ffe0de dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler
+EXPORT_SYMBOL vmlinux 0xd9172aae xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0xd917b79e scsi_scan_host
+EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd92e3d96 set_irq_chip
+EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference
+EXPORT_SYMBOL vmlinux 0xd970fa05 inet_accept
+EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd9a2d964 jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0xd9ab1836 generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0xd9c94472 elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0xd9c9678a pcim_iounmap
+EXPORT_SYMBOL vmlinux 0xd9d8269d md_register_thread
+EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic
+EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf
+EXPORT_SYMBOL vmlinux 0xda1f497e dst_alloc
+EXPORT_SYMBOL vmlinux 0xda24cf56 pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0xda38f9f8 take_over_console
+EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue
+EXPORT_SYMBOL vmlinux 0xda69c1ad phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0xda6d0c71 ps2_drain
+EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xdac7eda2 pci_get_device
+EXPORT_SYMBOL vmlinux 0xdacde51f security_path_rmdir
+EXPORT_SYMBOL vmlinux 0xdb7ba8c7 i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0xdbb5ad5c node_to_cpumask_map
+EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbe041df vga_client_register
+EXPORT_SYMBOL vmlinux 0xdbe1ec96 page_put_link
+EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done
+EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems
+EXPORT_SYMBOL vmlinux 0xdc16936f inet_ioctl
+EXPORT_SYMBOL vmlinux 0xdc1873ab file_fsync
+EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize
+EXPORT_SYMBOL vmlinux 0xdc4a52ac skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0xdc53c8c0 pci_write_vpd
+EXPORT_SYMBOL vmlinux 0xdc6a1eec netif_napi_del
+EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family
+EXPORT_SYMBOL vmlinux 0xdca81605 pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close
+EXPORT_SYMBOL vmlinux 0xdcbe2115 tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0xdccb0399 skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0xdccee5eb audit_log_end
+EXPORT_SYMBOL vmlinux 0xdce1ce59 remove_proc_entry
+EXPORT_SYMBOL vmlinux 0xdd170500 jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0xdd2cc24d tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0xdd2e3410 tcp_child_process
+EXPORT_SYMBOL vmlinux 0xdd4d1558 dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0xdd8d0dff acpi_bus_add
+EXPORT_SYMBOL vmlinux 0xdda69b04 kthread_create
+EXPORT_SYMBOL vmlinux 0xddeb6c92 blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0xde02d10c __mmc_claim_host
+EXPORT_SYMBOL vmlinux 0xde0bdcff memset
+EXPORT_SYMBOL vmlinux 0xde1e0e80 slow_work_cancel
+EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending
+EXPORT_SYMBOL vmlinux 0xde497000 pci_release_regions
+EXPORT_SYMBOL vmlinux 0xde7107b2 nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type
+EXPORT_SYMBOL vmlinux 0xde87588f deny_write_access
+EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages
+EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size
+EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock
+EXPORT_SYMBOL vmlinux 0xdef6cac2 netpoll_setup
+EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices
+EXPORT_SYMBOL vmlinux 0xdf0e29c0 acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL vmlinux 0xdf2330e3 do_sync_read
+EXPORT_SYMBOL vmlinux 0xdf2dbe8c del_gendisk
+EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval
+EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol
+EXPORT_SYMBOL vmlinux 0xdf639e1c dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0xdf82a843 block_write_full_page
+EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay
+EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdfb06d5b blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0xdfb2fe9a dcache_dir_open
+EXPORT_SYMBOL vmlinux 0xdfb668e2 inet_release
+EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init
+EXPORT_SYMBOL vmlinux 0xdfde5626 simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0xdfdea6ad d_add_ci
+EXPORT_SYMBOL vmlinux 0xe00e20c8 sync_blockdev
+EXPORT_SYMBOL vmlinux 0xe03656f3 security_task_getsecid
+EXPORT_SYMBOL vmlinux 0xe041c4a3 neigh_destroy
+EXPORT_SYMBOL vmlinux 0xe046e40b pneigh_lookup
+EXPORT_SYMBOL vmlinux 0xe05cc19f cfb_imageblit
+EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe0993fde max8925_reg_write
+EXPORT_SYMBOL vmlinux 0xe0a75bbe unregister_key_type
+EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event
+EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free
+EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort
+EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0xe0dd2497 compat_mc_getsockopt
+EXPORT_SYMBOL vmlinux 0xe0efca32 install_exec_creds
+EXPORT_SYMBOL vmlinux 0xe0f9cfa9 blk_sync_queue
+EXPORT_SYMBOL vmlinux 0xe11210b4 tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial
+EXPORT_SYMBOL vmlinux 0xe117fad1 lro_receive_frags
+EXPORT_SYMBOL vmlinux 0xe12753ce x86_dma_fallback_dev
+EXPORT_SYMBOL vmlinux 0xe127e645 sock_map_fd
+EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0xe13bba2f inet_add_protocol
+EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors
+EXPORT_SYMBOL vmlinux 0xe13fc7b5 generic_readlink
+EXPORT_SYMBOL vmlinux 0xe16986a5 blk_complete_request
+EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe1893a8e sk_reset_txq
+EXPORT_SYMBOL vmlinux 0xe190fa86 blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0xe19abd07 kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xe1d5d0ef xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0xe1edc10e i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0xe217421e simple_setsize
+EXPORT_SYMBOL vmlinux 0xe222b10f fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0xe2280c64 xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xe22d2d0a ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0xe22f9de4 blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf
+EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64
+EXPORT_SYMBOL vmlinux 0xe2517460 register_quota_format
+EXPORT_SYMBOL vmlinux 0xe27b85c2 pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0xe2937899 mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0xe296d620 qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0xe298f819 blk_run_queue
+EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64
+EXPORT_SYMBOL vmlinux 0xe2ac33f1 pnp_is_active
+EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp
+EXPORT_SYMBOL vmlinux 0xe2f4d38c follow_down
+EXPORT_SYMBOL vmlinux 0xe2fbe661 inode_set_bytes
+EXPORT_SYMBOL vmlinux 0xe31bb51e request_key_async
+EXPORT_SYMBOL vmlinux 0xe3229304 dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xe34dd024 rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0xe3502ff9 dm_exception_store_create
+EXPORT_SYMBOL vmlinux 0xe356c66a cpu_core_map
+EXPORT_SYMBOL vmlinux 0xe36c039f sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0xe39b563a filemap_flush
+EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf
+EXPORT_SYMBOL vmlinux 0xe3d8c269 scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0xe3f24fd9 pci_dev_get
+EXPORT_SYMBOL vmlinux 0xe3fa0132 grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler
+EXPORT_SYMBOL vmlinux 0xe400a41d dev_uc_flush
+EXPORT_SYMBOL vmlinux 0xe4076e27 page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0xe428662c bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT
+EXPORT_SYMBOL vmlinux 0xe4410512 jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0xe4526f31 kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem
+EXPORT_SYMBOL vmlinux 0xe4583069 blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0xe4586dcb kernel_listen
+EXPORT_SYMBOL vmlinux 0xe461bf9c __free_pages
+EXPORT_SYMBOL vmlinux 0xe4670d16 blk_plug_device
+EXPORT_SYMBOL vmlinux 0xe484e35f ioread32
+EXPORT_SYMBOL vmlinux 0xe492d66b generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xe49fa37b n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0xe4b24b8c __next_cpu
+EXPORT_SYMBOL vmlinux 0xe4bf206e blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0xe4df6985 set_pages_array_wb
+EXPORT_SYMBOL vmlinux 0xe4e2e523 elv_rb_del
+EXPORT_SYMBOL vmlinux 0xe4f0a212 qdisc_list_del
+EXPORT_SYMBOL vmlinux 0xe4f8a33c dquot_free_inode
+EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr
+EXPORT_SYMBOL vmlinux 0xe52cbb65 pv_mmu_ops
+EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe
+EXPORT_SYMBOL vmlinux 0xe531c136 scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0xe56806da pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0xe568eaad scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0xe56e36b8 journal_set_features
+EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton
+EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5a1617b seq_path
+EXPORT_SYMBOL vmlinux 0xe5b8b52c splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0xe5c7843f nla_reserve
+EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5cfbef8 ether_setup
+EXPORT_SYMBOL vmlinux 0xe5deeb1e idr_for_each
+EXPORT_SYMBOL vmlinux 0xe5e95591 napi_gro_frags
+EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe5f316f9 slow_work_sleep_till_thread_needed
+EXPORT_SYMBOL vmlinux 0xe5f9edd6 genl_register_ops
+EXPORT_SYMBOL vmlinux 0xe61bc795 unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0xe6362437 registered_fb
+EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid
+EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6c2f5c5 bd_release
+EXPORT_SYMBOL vmlinux 0xe6c5c2e1 dev_set_mtu
+EXPORT_SYMBOL vmlinux 0xe6e258ed arp_send
+EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic
+EXPORT_SYMBOL vmlinux 0xe71d86ab inet_frag_find
+EXPORT_SYMBOL vmlinux 0xe73a0446 phy_disconnect
+EXPORT_SYMBOL vmlinux 0xe7413fe5 skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy
+EXPORT_SYMBOL vmlinux 0xe77f6f14 seq_write
+EXPORT_SYMBOL vmlinux 0xe79b0a17 journal_extend
+EXPORT_SYMBOL vmlinux 0xe7b44d6a tcp_prot
+EXPORT_SYMBOL vmlinux 0xe7b65c97 con_copy_unimap
+EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7e4b6be free_buffer_head
+EXPORT_SYMBOL vmlinux 0xe807a5a6 wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node
+EXPORT_SYMBOL vmlinux 0xe8130791 i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0xe81e5809 mddev_congested
+EXPORT_SYMBOL vmlinux 0xe825b51f skb_append
+EXPORT_SYMBOL vmlinux 0xe82a6559 devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0xe84803c6 tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0xe84ddb9d sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0xe87325fb unregister_console
+EXPORT_SYMBOL vmlinux 0xe874db33 __netdev_alloc_page
+EXPORT_SYMBOL vmlinux 0xe875e03c cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss
+EXPORT_SYMBOL vmlinux 0xe883981d netlink_dump_start
+EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit
+EXPORT_SYMBOL vmlinux 0xe8f36d98 tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xe8ff359e dm_register_target
+EXPORT_SYMBOL vmlinux 0xe9024201 fput
+EXPORT_SYMBOL vmlinux 0xe9063fdd ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh
+EXPORT_SYMBOL vmlinux 0xe90aa4e9 rb_insert_color
+EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module
+EXPORT_SYMBOL vmlinux 0xe914e41e strcpy
+EXPORT_SYMBOL vmlinux 0xe91949bf __blk_end_request_all
+EXPORT_SYMBOL vmlinux 0xe9940e46 xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xe9bdd679 bmap
+EXPORT_SYMBOL vmlinux 0xe9d907af dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0xe9feaf43 eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea147363 printk
+EXPORT_SYMBOL vmlinux 0xea26b636 bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0xea36d715 fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0xea88a7b4 scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data
+EXPORT_SYMBOL vmlinux 0xeab059ef bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0xeab6d11b ipv4_specific
+EXPORT_SYMBOL vmlinux 0xeac4216b unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs
+EXPORT_SYMBOL vmlinux 0xeacb187e init_buffer
+EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump
+EXPORT_SYMBOL vmlinux 0xead80f0e sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay
+EXPORT_SYMBOL vmlinux 0xeaf9f607 atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0xeb1bbcfa __devm_release_region
+EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq
+EXPORT_SYMBOL vmlinux 0xeb43fb39 lookup_bdev
+EXPORT_SYMBOL vmlinux 0xeb535557 jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xeb7333c6 abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n
+EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp
+EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull
+EXPORT_SYMBOL vmlinux 0xec125c02 jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns
+EXPORT_SYMBOL vmlinux 0xec53c350 kmem_cache_create
+EXPORT_SYMBOL vmlinux 0xec62b4f5 sock_recvmsg
+EXPORT_SYMBOL vmlinux 0xec6dc1bd pipe_to_file
+EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xec7b23f4 iget5_locked
+EXPORT_SYMBOL vmlinux 0xecbf5d4c arp_broken_ops
+EXPORT_SYMBOL vmlinux 0xeccae092 put_io_context
+EXPORT_SYMBOL vmlinux 0xecf30585 blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0xecf43f5f netif_napi_add
+EXPORT_SYMBOL vmlinux 0xed24fdac __dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xed2d7646 nf_ct_attach
+EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xed97e807 bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xeda5175b jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xedb03500 pci_do_scan_bus
+EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedc03953 iounmap
+EXPORT_SYMBOL vmlinux 0xee128fb3 i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee3231f6 ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0xee3efc3f pcim_enable_device
+EXPORT_SYMBOL vmlinux 0xee7bed34 neigh_seq_next
+EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices
+EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeec13080 register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0xeed50e96 pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0xef1e603b ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0xef4b282e freeze_super
+EXPORT_SYMBOL vmlinux 0xef5038cd cdev_index
+EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc
+EXPORT_SYMBOL vmlinux 0xef654409 netif_device_detach
+EXPORT_SYMBOL vmlinux 0xef6daf4e __blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool
+EXPORT_SYMBOL vmlinux 0xef783662 pci_iounmap
+EXPORT_SYMBOL vmlinux 0xef90a29a open_exec
+EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override
+EXPORT_SYMBOL vmlinux 0xefa605f6 inet_select_addr
+EXPORT_SYMBOL vmlinux 0xefbfaa4e mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0xefc2c17f tty_port_init
+EXPORT_SYMBOL vmlinux 0xefc5af23 put_mnt_ns
+EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status
+EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock
+EXPORT_SYMBOL vmlinux 0xeff38d02 blk_make_request
+EXPORT_SYMBOL vmlinux 0xeff40f2c mmc_suspend_host
+EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list
+EXPORT_SYMBOL vmlinux 0xf02fccf1 inet6_getname
+EXPORT_SYMBOL vmlinux 0xf0343b86 tty_port_hangup
+EXPORT_SYMBOL vmlinux 0xf04a9139 generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be
+EXPORT_SYMBOL vmlinux 0xf0741b12 path_get
+EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up
+EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0xf0a515e9 bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0xf0b16cbb __netif_schedule
+EXPORT_SYMBOL vmlinux 0xf0b73e97 abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0xf0b79e90 tc_classify
+EXPORT_SYMBOL vmlinux 0xf0d8b7f9 dm_table_get_md
+EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf
+EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail
+EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xf1018303 simple_transaction_release
+EXPORT_SYMBOL vmlinux 0xf10de535 ioread8
+EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit
+EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user
+EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32
+EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem
+EXPORT_SYMBOL vmlinux 0xf178e35e vga_switcheroo_register_client
+EXPORT_SYMBOL vmlinux 0xf1848b1a i2c_release_client
+EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1e31c5f mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun
+EXPORT_SYMBOL vmlinux 0xf1f28317 md_write_end
+EXPORT_SYMBOL vmlinux 0xf203b4c0 scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0xf2082e27 dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq
+EXPORT_SYMBOL vmlinux 0xf2193b2f get_sb_bdev
+EXPORT_SYMBOL vmlinux 0xf22009b6 phy_attach
+EXPORT_SYMBOL vmlinux 0xf220e51d sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0xf22b8d11 kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0xf2320c79 netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0xf23b8aa0 iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0xf253fa65 mutex_trylock
+EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2ad3c20 path_lookup
+EXPORT_SYMBOL vmlinux 0xf2c22683 inet_stream_connect
+EXPORT_SYMBOL vmlinux 0xf2d64c6e fasync_helper
+EXPORT_SYMBOL vmlinux 0xf2e672bf register_framebuffer
+EXPORT_SYMBOL vmlinux 0xf30ca255 nf_log_unregister
+EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform
+EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name
+EXPORT_SYMBOL vmlinux 0xf32ac385 uart_add_one_port
+EXPORT_SYMBOL vmlinux 0xf3321f00 tc_classify_compat
+EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq
+EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user
+EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf33e52ac register_cdrom
+EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf35ad0af should_remove_suid
+EXPORT_SYMBOL vmlinux 0xf36ead2d ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf392820e blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3c04901 tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xf3d287a2 dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0xf40f5626 dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0xf420f6bb gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xf4286391 rfkill_destroy
+EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0xf45d623f request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0xf4703c8c __skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xf47bece3 netif_device_attach
+EXPORT_SYMBOL vmlinux 0xf48bf6a6 tty_write_room
+EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask
+EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit
+EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced
+EXPORT_SYMBOL vmlinux 0xf4cd4cfc mutex_unlock
+EXPORT_SYMBOL vmlinux 0xf4cf7e6d file_remove_suid
+EXPORT_SYMBOL vmlinux 0xf4d945dd __inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0xf4dec7fd rt6_lookup
+EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf501a2af mdio_bus_type
+EXPORT_SYMBOL vmlinux 0xf5108e2f sg_miter_stop
+EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n
+EXPORT_SYMBOL vmlinux 0xf562cab7 dev_trans_start
+EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xf5d3af1a uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0xf5db06ed tcp_v4_remember_stamp
+EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf5eccd99 dentry_unhash
+EXPORT_SYMBOL vmlinux 0xf5edbbe9 generic_removexattr
+EXPORT_SYMBOL vmlinux 0xf6027dc0 generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock
+EXPORT_SYMBOL vmlinux 0xf617ac8d __pagevec_release
+EXPORT_SYMBOL vmlinux 0xf65a2b5e iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0xf66ca161 __dst_free
+EXPORT_SYMBOL vmlinux 0xf6894629 kill_block_super
+EXPORT_SYMBOL vmlinux 0xf6a38444 touch_atime
+EXPORT_SYMBOL vmlinux 0xf6a45227 rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0xf6b30e5a ppp_output_wakeup
+EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table
+EXPORT_SYMBOL vmlinux 0xf6d28a67 vfs_rename
+EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf724458d xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0xf7333f1f serio_open
+EXPORT_SYMBOL vmlinux 0xf74f234e dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0xf7584a9c find_font
+EXPORT_SYMBOL vmlinux 0xf78946b3 input_event
+EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0xf7f41766 in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set
+EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf8190abb __alloc_skb
+EXPORT_SYMBOL vmlinux 0xf81fdd9d uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xf824381b scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects
+EXPORT_SYMBOL vmlinux 0xf84093ef kmem_cache_size
+EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header
+EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle
+EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work
+EXPORT_SYMBOL vmlinux 0xf8a50e5b init_special_inode
+EXPORT_SYMBOL vmlinux 0xf8c5ea1a register_key_type
+EXPORT_SYMBOL vmlinux 0xf8cf670e nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0xf8d1f867 genphy_resume
+EXPORT_SYMBOL vmlinux 0xf9086b97 writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0xf910f429 kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0xf9188c88 skb_dequeue
+EXPORT_SYMBOL vmlinux 0xf91dbaf6 agp_backend_acquire
+EXPORT_SYMBOL vmlinux 0xf928ad19 simple_write_begin
+EXPORT_SYMBOL vmlinux 0xf9389ae1 inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0xf93a7286 phy_connect
+EXPORT_SYMBOL vmlinux 0xf94298b8 pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0xf954cf6f generic_file_llseek
+EXPORT_SYMBOL vmlinux 0xf95f784e vfs_write
+EXPORT_SYMBOL vmlinux 0xf96dec71 tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0xf975b858 elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0xf9786dd7 abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0xf97ae9eb uart_suspend_port
+EXPORT_SYMBOL vmlinux 0xf989ad02 xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep
+EXPORT_SYMBOL vmlinux 0xf9b19d12 tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0xf9e232c7 mmc_host_enable
+EXPORT_SYMBOL vmlinux 0xf9f0974c get_sb_nodev
+EXPORT_SYMBOL vmlinux 0xf9feeaa8 mb_cache_create
+EXPORT_SYMBOL vmlinux 0xfa0f5667 elv_add_request
+EXPORT_SYMBOL vmlinux 0xfa1c65fc devm_iounmap
+EXPORT_SYMBOL vmlinux 0xfa400614 scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0xfa4a0191 xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0xfa5b26b4 cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0xfa86a122 agp_copy_info
+EXPORT_SYMBOL vmlinux 0xfae5879b vga_put
+EXPORT_SYMBOL vmlinux 0xfaf5e76b abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32
+EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent
+EXPORT_SYMBOL vmlinux 0xfb05fa34 dev_gro_receive
+EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs
+EXPORT_SYMBOL vmlinux 0xfb1ba07b save_mount_options
+EXPORT_SYMBOL vmlinux 0xfb2dbee8 pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0xfb5d5467 bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb808b3f max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace
+EXPORT_SYMBOL vmlinux 0xfb9f427e pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0xfba0b4d3 udp_ioctl
+EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xfbc968b3 tcf_register_action
+EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc3310ea __lock_page
+EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc77ac5c pci_disable_device
+EXPORT_SYMBOL vmlinux 0xfc7ca869 update_region
+EXPORT_SYMBOL vmlinux 0xfc9eedeb log_wait_commit
+EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcb025e0 jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcd3fd5a backlight_force_update
+EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq
+EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfcffc4e1 elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0xfd132ca2 rtnl_create_link
+EXPORT_SYMBOL vmlinux 0xfd2537ae flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xfd2acf1e input_unregister_handle
+EXPORT_SYMBOL vmlinux 0xfd2b44a8 md_unregister_thread
+EXPORT_SYMBOL vmlinux 0xfd43bae3 __brelse
+EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0xfd757eb8 napi_skb_finish
+EXPORT_SYMBOL vmlinux 0xfd79e6b9 vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception
+EXPORT_SYMBOL vmlinux 0xfd871931 sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0xfd9ecb65 textsearch_unregister
+EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be
+EXPORT_SYMBOL vmlinux 0xfdc31221 textsearch_destroy
+EXPORT_SYMBOL vmlinux 0xfdc747af tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0xfdd7853f sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0xfdde669c d_delete
+EXPORT_SYMBOL vmlinux 0xfde7ea96 __xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state
+EXPORT_SYMBOL vmlinux 0xfe081fe4 spi_dv_device
+EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids
+EXPORT_SYMBOL vmlinux 0xfe2c3a8e mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz
+EXPORT_SYMBOL vmlinux 0xfe712c54 agp_free_page_array
+EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfe816cc8 __bforget
+EXPORT_SYMBOL vmlinux 0xfe9bb445 unlock_new_inode
+EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin
+EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock
+EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfee2c687 tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff074b98 udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start
+EXPORT_SYMBOL vmlinux 0xff2751d7 vfs_mknod
+EXPORT_SYMBOL vmlinux 0xff29ddf7 test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0xff475473 cdrom_release
+EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource
+EXPORT_SYMBOL vmlinux 0xff7ebd18 neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int
+EXPORT_SYMBOL vmlinux 0xff97f9c8 ip6_xmit
+EXPORT_SYMBOL vmlinux 0xff984224 call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffa0373b call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0xffa69024 __pci_register_driver
+EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function
+EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0x7060bf0a crypto_aes_encrypt_x86
+EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0xe409b491 crypto_aes_decrypt_x86
+EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x1b1f2bda speedstep_get_freqs
+EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x2b67f096 speedstep_get_frequency
+EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0xd7ab2c0c speedstep_detect_processor
+EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00c5aad2 kvm_requeue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x022e40f0 __tracepoint_kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x03e361cc gfn_to_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x06011d74 emulate_instruction
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12400901 kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x14a0d897 kvm_before_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19701b2c kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19790ac1 kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1c15d151 gfn_to_memslot_unaliased
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x218e105c kvm_set_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x22175f1e kvm_set_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x227fa501 kvm_require_cpl
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2b590467 load_pdptrs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2feb9f79 kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x30453369 kvm_release_page_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x30de41a5 kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x311467c5 kvm_vcpu_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x347b7e50 kvm_emulate_halt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3614a586 kvm_mmu_load
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3b7fac3f kvm_read_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e775e6d kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3fdfa0c6 kvm_mmu_get_spte_hierarchy
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x41e741d2 kvm_resched
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x492a7192 kvm_write_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x50699201 kvm_get_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5325f2a5 kvm_x86_ops
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x541595f5 kvm_fast_pio_out
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59c1379a kvm_read_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5b4975e9 kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c11b13b kvm_get_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6054f2ee kvm_is_linear_rip
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x659893a4 kvm_put_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x688e3cc0 kvm_set_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6a045c86 kvm_get_guest_memory_type
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d57a8ba kvm_task_switch
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d66f37b kvm_set_cr3
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d71c9e3 kvm_set_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x70ce1dec kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x70f709dd kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x722b1dfb kvm_lmsw
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x737f30ff kvm_set_cr0
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7453bb3c kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x75883419 kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x75daf3ce kvm_queue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x773a5547 kvm_vcpu_cache
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7b244fc4 emulator_write_emulated
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8782b1d4 kvm_release_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x89863c89 kvm_report_emulation_failure
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8c43efd4 kvm_queue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x94303627 kvm_after_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95ea3920 kvm_set_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97399b90 kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99905e08 __tracepoint_kvm_inj_virq
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a67f5ca kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9fa41433 kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0506648 kvm_get_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7bc9025 kvm_clear_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab060885 fx_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb4e8c37a kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc5ad7f3 kvm_get_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbce814f2 kvm_inject_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd86163a kvm_handle_fault_on_reboot
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd94103b kvm_mmu_set_base_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc2ff2e2a kvm_set_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc7cf3197 kvm_get_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc7f88510 kvm_clear_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc8ded585 kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd206d6f4 is_error_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdefdff78 gfn_to_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf2ce186 __kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe97f07de kvm_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xed8d3730 kvm_set_cr4
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf404383d kvm_get_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf6e3af4c gfn_to_hva
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0467fc5e crypto_aes_set_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab
+EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xaeb85b94 async_memcpy
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x03b7f10f async_syndrome_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xc0e98849 async_gen_syndrome
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x7924c677 async_raid6_datap_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xc8cb1a8b async_raid6_2data_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2f20ed0e __async_tx_find_channel
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x64c7a9bb async_tx_quiesce
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9dc47fc4 async_tx_submit
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xa9821ade async_trigger_callback
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xc9b5e292 async_xor_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xf2a672ba async_xor
+EXPORT_SYMBOL_GPL crypto/cryptd 0x03e3f70e cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x6ff15192 cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x87689120 cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0xafab5f33 cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb028d364 cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xe93907bd cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xea97f937 cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey
+EXPORT_SYMBOL_GPL crypto/twofish_common 0x875f90a7 twofish_setkey
+EXPORT_SYMBOL_GPL drivers/acpi/hed 0xa4ca0d4e unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL drivers/acpi/hed 0xaa3f13f7 register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x012153ce ahci_sht
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2bc9c908 ahci_check_ready
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3bbd7bc9 ahci_set_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5153268f ahci_reset_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x56ae9597 ahci_save_initial_config
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x793b6c14 ahci_kick_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7aa152b5 ahci_print_info
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x81574ee3 ahci_reset_em
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x952e4529 ahci_stop_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa07ffc24 ahci_ops
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa58f0bc3 ahci_init_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xba659fd5 ahci_do_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xed85f58b ahci_start_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0fbb0f8e btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x20623063 btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x34045882 btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x855fa009 btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x95817605 btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa1cbb5fa btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xdc3cfe3f btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfb395085 btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x016f1b5e tpm_show_caps_1_2
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0f9ae6c6 tpm_show_owned
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x12e7ec0a tpm_gen_interrupt
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1f11d49e tpm_write
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x23a91b0b tpm_register_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x269bb2b8 tpm_dev_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x29ab9838 tpm_continue_selftest
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x30502c2f tpm_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x74b9c456 tpm_show_pcrs
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x805c17c6 tpm_show_active
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x83bd121a tpm_pm_suspend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8a516ce1 tpm_show_pubek
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8ebd1f8c tpm_show_temp_deactivated
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x91dc8b94 tpm_show_caps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb04319ce tpm_dev_vendor_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb5b686fd tpm_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb6dc1497 tpm_remove_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb723f720 tpm_pm_resume
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb78b63be tpm_store_cancel
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd2af9f25 tpm_open
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xeae54c35 tpm_get_timeouts
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf0e876fa tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf5623f32 tpm_show_enabled
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xea9b2f51 tpm_bios_log_teardown
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xf1fc220f tpm_bios_log_setup
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x006f21a2 register_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x22b5702d dca_remove_requester
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x4649513b dca3_get_tag
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x7faffcf0 unregister_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x873e75a9 alloc_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x9c16c9ab free_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xd6ac03ad dca_add_requester
+EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0x2fb48f19 amd64_get_dram_hole_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x069a1ffd edac_mc_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x188deeeb edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1fb45c8b edac_device_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x23f49625 edac_pci_handle_pe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2aa7a488 edac_mc_del_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x35da7f2c edac_pci_reset_delay_period
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3826de8e edac_device_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5fefe5ac edac_pci_handle_npe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6978c2aa edac_mc_add_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6b1036b6 edac_mc_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6b78c735 edac_pci_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x741e80da edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x799631fc edac_mc_handle_ue_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7bb221bd edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9daa8883 edac_mc_free
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc31d6233 edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc39948d4 edac_pci_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xccdc8385 edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcea3ac1a edac_mc_handle_ce_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd46026af edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd9161252 edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe81a5f2c edac_mc_alloc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeb244283 edac_device_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeff86fd9 edac_device_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1823885a amd_register_ecc_decoder
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x955c1f76 amd_decode_nb_mce
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2e765d2 amd_unregister_ecc_decoder
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xd0f094a0 ext_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x81cad4fc __max730x_remove
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xae6a681c __max730x_probe
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1757ca3b drm_class_device_register
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x99c8a194 drm_class_device_unregister
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x08227ff6 hid_input_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x0dccc48e hidinput_find_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x0ed8c3ed hidraw_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x0fe7db7e hid_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x13a0ef8d hid_resolv_usage
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x1618c6b9 hid_unregister_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x18c7590e hidinput_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x252ee31d hid_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x36671a3f hidraw_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x44bed2c5 __hid_register_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x4884a601 hid_set_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x48c18886 hid_report_raw_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x5314b244 hid_output_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x53a196ba hid_debug_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x7abd3a26 hidraw_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x804d136f hid_allocate_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x8b504cc6 hid_add_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x910a4a68 hidinput_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x9fb2c134 hid_parse_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc53838f7 hidinput_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc990523e hid_dump_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xca5877e0 hid_destroy_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe1d2412f hid_dump_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xf0fcf8d2 hid_register_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xf7638b52 hid_dump_input
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xfdcb4fdd hid_check_keys_pressed
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x9f7af974 roccat_connect
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x2328d98c usbhid_wait_io
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x5b239b7d usbhid_submit_report
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x7123cb00 usbhid_set_leds
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xbac35db4 hiddev_hid_event
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x1a3b2a13 lis3lv02d_poweron
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x53964a5e lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6e6a9e6d lis3_dev
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x75a47363 lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xac9d8110 lis3lv02d_init_device
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x6464ce6d nforce2_smbus
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x528e3cd8 i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x9b8beeeb i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x71910c4e hpsb_config_rom_ip1394_add
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xb2a0a279 hpsb_config_rom_ip1394_remove
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm
+EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug
+EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xbda310a3 input_ff_create_memless
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1b31d3cb wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x221876f5 wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x23227a90 wm97xx_config_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x257a45c3 wm9705_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2763e042 wm97xx_set_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x38c45899 wm9712_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4dbd32d2 wm97xx_get_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x582e9e78 wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9b5e2592 wm97xx_reg_write
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc32ced80 wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf46e5807 wm9713_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfe11d32e wm97xx_reg_read
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0198eeb6 gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x069f216b gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x072aa497 gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x075c3253 gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1fb4f155 gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2a45a0d7 gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x53567695 gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x54158019 gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5fef4190 gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa0823fc4 gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa1ea8b45 gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa89bf1e0 gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbe8368d2 gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc8a06c84 gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcf7a840c gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdef45825 gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe7c3575b gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xebed79b0 gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x102d66d8 led_classdev_register
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x23784d1a led_classdev_resume
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x5cd8db98 led_classdev_suspend
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x64379bcd led_classdev_unregister
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x24935f26 raid6_call
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xcdc24ab5 raid6_2data_recov
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xdbab0c01 raid6_datap_recov
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x0b828f69 ir_input_nokey
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xa7e0d12a ir_input_init
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xb1fd3ab2 ir_input_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1173de23 __ir_input_register
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x302536a6 get_rc_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x5303809f ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x5f77bf43 ir_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x6cc53e8b ir_raw_event_store
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x780da3db ir_input_unregister
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8f88a0e8 ir_g_keycode_from_table
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8fd647fb ir_register_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x99612455 ir_unregister_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xbd3c5757 ir_raw_event_handle
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xcd717e40 ir_repeat
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x04729224 saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x342db6af saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x47ca1612 saa7146_pgtable_free
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4d897dd7 saa7146_register_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x5c6c4d7b saa7146_devices_lock
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x778ffc9b saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7b7001b2 saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb43dfac3 saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xccc1b44f saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xde99ec18 saa7146_setgpio
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf4d05168 saa7146_unregister_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x2b08e224 saa7146_start_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4c5377d6 saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x6a4e8553 saa7146_stop_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x8dfe995e saa7146_vv_release
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x8e8aae32 saa7146_register_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xdfddc670 saa7146_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf14151cd saa7146_vv_init
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xdd1a3989 microtune_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x7c31aaba mxl5007t_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0xf08816b2 tda18271_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x8a63f3f6 tda827x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x168dd1fd tda829x_probe
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x8ec4ffb5 tda829x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0xdf5a2355 tda9887_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x0058727b tea5761_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xd2035409 tea5761_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x5d04e3bf tea5767_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xb8861bd7 tea5767_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xa746269f simple_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x06769cf7 mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x199e6b65 ir_mantis
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x47a2e405 mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x52aac732 mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5f971458 mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x759e1ffd mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x816a59e2 mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x877546e0 mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8890d6f1 mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xaa5ad848 gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb48ec9c8 mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb70d2943 mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb83a6c43 mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc836ab88 mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd2665bf4 mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf0aabba7 mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf428b4b1 mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xfbcd24a0 mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x123b0002 smscore_register_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1bd9b7de sms_board_event
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1fc703c9 sms_board_setup
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2dca10ab smscore_set_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x369c4c4a smscore_start_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x393f8412 smscore_get_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4f87c9d7 smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6bf28dbd smscore_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x84dbeb7a smscore_getbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9d90ef61 sms_board_lna_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xab2986f8 smscore_putbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd05fa782 smscore_register_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd5e24d2a smsclient_sendrequest
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdc8d5100 smscore_onresponse
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdedfb4da sms_board_led_feedback
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe486c5cb smscore_unregister_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf403667a smscore_register_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfcec2ae3 smscore_get_device_mode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xff969db1 sms_board_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x02602770 ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x4a546da4 ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x574623f0 ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x94c3a601 ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xbbb18850 ttpci_budget_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xe0ec93f7 ttpci_budget_deinit
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xf40ce759 ttpci_budget_debiread
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x28e2ce21 cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x43151ab2 cx231xx_dev_init
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x47d83fce cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x77dd0873 cx231xx_capture_start
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x840912e1 cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x84f27edf cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x94f8817b cx231xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb3130074 cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc4490398 cx231xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe2da1b71 cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfcfa1e73 cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xce7e2e4d cx88_setup_xc3028
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x497dba84 em28xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x565709dd em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc1a9a8d9 em28xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc857a59d em28xx_audio_setup
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xe1c8462e em28xx_isoc_dvb_max_packetsize
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xffea0e70 em28xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x45b99d32 saa7134_ts_qops
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x97e43aff saa7134_g_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xb35fbb9c saa7134_s_std_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xd3f0830c saa7134_s_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xdd58ed1f saa7134_queryctrl
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x18f1bf1b v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x51bbea58 v4l2_i2c_new_subdev_cfg
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x52fa65fd v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x5da38426 v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xbe85c2a8 v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xbf11362a v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-compat-ioctl32 0x1e3c13b6 v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x11b0271d v4l2_int_ioctl_0
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x4021e394 v4l2_int_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xb5744400 v4l2_int_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xf138bfc8 v4l2_int_ioctl_1
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0d4b3c92 v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4331dad5 v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x44e10f3a v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x59dd722f v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8d5235f3 v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9558dd56 v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x99b72610 v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9e154cee v4l2_m2m_poll
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9ef6e230 v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa30644a1 v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa80106d3 v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe84afc05 v4l2_m2m_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf48939a7 v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf7fc282f v4l2_m2m_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x053d8a4e videobuf_read_one
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x07711820 videobuf_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0c3b0a9d videobuf_queue_cancel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x18070cf8 videobuf_next_field
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x215669b2 videobuf_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x22d857de videobuf_read_start
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2839daaf videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2e369ce4 videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x320a3279 videobuf_cgmbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3599daa1 videobuf_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3795c7ac __videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x38e88761 videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x488eb4c0 videobuf_queue_core_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x48d970bd videobuf_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x59066dc3 videobuf_read_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5b3e58f4 videobuf_read_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x616fd605 videobuf_waiton
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6d887bef videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6e95a316 videobuf_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x741dd1e4 videobuf_mmap_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x79452031 videobuf_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9cd7ea21 videobuf_poll_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc449fa5c videobuf_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe8fb6bfe videobuf_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xed47ec2e videobuf_iolock
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x298c855d videobuf_to_dma_contig
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x4a6fc8ed videobuf_dma_contig_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xa83711f2 videobuf_queue_dma_contig_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x10f83f49 videobuf_dma_init_user
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x32c59f50 videobuf_sg_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3ecdd0d6 videobuf_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x44709691 videobuf_sg_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5e64c98e videobuf_dma_init_overlay
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x95241e18 videobuf_dma_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9b091693 videobuf_dma_init_kernel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc06ea17b videobuf_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd1ce4473 videobuf_to_dma
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xee89316c videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfc4c8802 videobuf_dma_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x4efab0d8 videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x7cac2466 videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xe6fb0063 videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x05bee09b v4l2_event_queue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0a49ec5e v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1ba2eba1 v4l2_event_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x26a356d7 v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2d330adc v4l2_event_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4c96153e v4l2_fh_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x635ab907 v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8d36352c v4l2_fh_del
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9a313d28 v4l2_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9cf4fa95 v4l2_event_subscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa0783386 v4l2_event_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa2ee1c47 v4l2_event_dequeue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa8ce275d v4l2_device_disconnect
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbd237c53 v4l2_fh_exit
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc0a71e92 v4l2_fh_add
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc1148495 v4l2_device_set_name
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc124ba82 v4l2_event_pending
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf833f24a v4l2_device_unregister
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3bd418d1 i2o_sg_tablesize
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6bbe372a i2o_dma_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x94b643f3 i2o_dma_map_sg
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x99afc62a i2o_dma_map_single
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa29f4baf i2o_pool_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xaabb7a61 i2o_dma_realloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb8385afb i2o_pool_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xd109592c i2o_dma_alloc
+EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x1797fcff mc13783_adc_do_conversion
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x11b5f3f0 pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x21c1874b pcf50633_free_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2579a7d1 pcf50633_register_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2fced025 pcf50633_irq_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4ffc8318 pcf50633_write_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x626a6311 pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x63706aca pcf50633_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6ae4d8a9 pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdfb121e4 pcf50633_reg_write
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe404f1da pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xebad7781 pcf50633_read_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x621d1b11 pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xac47e832 pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x36491637 pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x758bc6d1 pcf50633_gpio_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x85af8a01 pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xb232860f pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xcbe34fe5 pcf50633_gpio_get
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x064b0f4a sm501_modify_reg
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x36a9d494 sm501_unit_power
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6a4eef05 sm501_misc_control
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x97ec187a sm501_find_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xaf887391 sm501_set_clock
+EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xf24255d9 ucb1400_adc_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x41fb1cc1 wm8400_set_bits
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x6709f60f wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xb7ae6b3f wm8400_block_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xdd1b6809 wm8400_reg_read
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x383ac4bd cb710_set_irq_handler
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xad3de64d cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xc1c83c1c cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xe52a60f6 cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x199fa568 enclosure_component_register
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x634cfc61 enclosure_register
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x79dd3776 enclosure_for_each_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8139e22e enclosure_add_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8bab0cee enclosure_remove_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x9be9d4bf enclosure_unregister
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb6b88850 enclosure_find
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x024143cc sdhci_add_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x270526e8 sdhci_remove_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x937e2cbb sdhci_resume_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xafcef33b sdhci_alloc_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xde648e81 sdhci_suspend_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe667afe5 sdhci_free_host
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x91f49c26 cfi_cmdset_0200
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xc7848f73 cfi_cmdset_0001
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xee9e74d0 cfi_cmdset_0003
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x17ab8a21 cfi_cmdset_0002
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x459e7d67 cfi_cmdset_0006
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xba99490c cfi_cmdset_0701
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x7147992b cfi_cmdset_0020
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x03f841fc cfi_qry_mode_off
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x55f2ff6c cfi_qry_mode_on
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xe802991a cfi_qry_present
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xb7d12f4e DoC2k_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x8545df92 DoCMil_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xfc66ecaf DoCMilPlus_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x16634139 put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x176db618 register_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x27ed9784 add_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x35e85f60 unregister_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x44032b34 parse_mtd_partitions
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x544b639e mtd_erase_callback
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5bfe5add default_mtd_writev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x60d67a63 register_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x753743b1 del_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x855b1598 __mtd_next_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x88f60947 __put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8b46fc81 mtd_table_mutex
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8e0585ce get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa1a87db1 get_mtd_device_nm
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa931f96f get_sb_mtd
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaf7657f0 deregister_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc37641b9 __get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xee12fb94 kill_mtd_super
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x29e81602 deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x71b3e278 del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x72dfc6d0 register_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd3f8533f add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x335bd421 nand_scan_tail
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x3fe447fd nand_unlock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x977eacca nand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x9dfe244f nand_release
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x9ff729ae nand_scan_ident
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xc7c47f73 nand_lock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xeb36c58a nand_wait_ready
+EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xfe7a09c4 sm_register_device
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x2b81a950 onenand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x85acc566 onenand_release
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x021c867b ubi_open_volume_nm
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3630b0aa ubi_open_volume_path
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4981cb82 ubi_do_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x584c9030 ubi_leb_unmap
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x739bf887 ubi_leb_read
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x86612048 ubi_open_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x90835890 ubi_leb_map
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa83e950d ubi_leb_erase
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb1a165b4 ubi_close_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb342b2e7 ubi_get_volume_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbf7ebdb1 ubi_leb_change
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc0da13aa ubi_leb_write
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd3ba1662 ubi_is_mapped
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x01998fe6 register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x01ec23ea unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0718bbc3 close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x15375f07 can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x31184254 alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3de3f26e open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x456f310f can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x46e3115e free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5b70dd5c can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6deac8f0 alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc0e0827d can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe23c9a11 alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x0389edd7 free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x709b8e6c register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x9be85001 alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe769ed1a unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x1008e91e macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x58b486b4 macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x70f7c2cc macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd1a26c43 macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0b8fcfc9 mlx4_qp_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1182bb36 mlx4_multicast_detach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x13aa3f75 mlx4_cq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x16be97f4 mlx4_qp_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1ecabe31 mlx4_qp_release_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x24a0405d mlx4_mr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x27c22ef2 mlx4_mr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x333c815f mlx4_cq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x398bdf9a mlx4_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x39ee60cb mlx4_uar_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3db17b0b mlx4_cq_resize
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x44dc3f39 mlx4_srq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x46416dbf mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x46b61698 mlx4_qp_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x47108553 mlx4_mtt_addr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4dbec7c5 mlx4_pd_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x58afe021 mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5e9ec241 mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x65645d4b mlx4_unregister_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x699ffb40 mlx4_pd_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x71833d1b __mlx4_cmd
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x72b6194f mlx4_db_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7b567256 mlx4_qp_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7d4dcd51 mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7dc96b36 mlx4_buf_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x87b1f9b0 mlx4_mr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x905853f5 mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9b021a34 mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9e472923 mlx4_db_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa6233719 mlx4_srq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa63e8398 mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa86cc3e0 mlx4_srq_arm
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xacc0c0c8 mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb4659a23 mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb47515c1 mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb4de67fb mlx4_mtt_init
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb9f9cc34 mlx4_srq_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbba47541 mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbf065d2e mlx4_multicast_attach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbf3c70f0 mlx4_buf_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc9499eae mlx4_register_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc96d74ca mlx4_fmr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd0b46a4b mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd55fb700 mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd98f6d7f mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdf75c890 mlx4_unregister_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe2003e3f mlx4_register_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe6c7fe65 mlx4_uar_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xef022154 mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf336e9f0 mlx4_cq_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf461d719 mlx4_qp_remove
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfb93f92e mlx4_register_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfe8e00c6 mlx4_fmr_free
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9a274bfc usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9e7b5220 usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x17f38cd1 generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x305391c3 rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x6aa7fcfb rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc255188c rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xeced8ecf rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf0529eb5 rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0460fd08 usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x213fa58d usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2229d6eb usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x36c7343d usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4662dd95 usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x595b0e42 usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x78fe16f8 usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa2c186e9 usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa59523bf usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa618f421 usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xab890691 usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xac922c12 usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xacae9f3a usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xacd9d77e usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaf903ec6 usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb8aee004 usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbb58bb6c usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc758119b usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd186fe7b usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd4e1fd7c usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd78d808d usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe042a0dc usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeb99fc57 usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf60b5880 usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x04f5681e i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x05851729 i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x09665616 i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x196abf31 i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x35914cd5 i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x425b6fff i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4cb8ab8b i2400m_cmd_get_state
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6360a1bf i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6a158e8e i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x86f62e1e i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8c16d8c2 i2400m_set_init_config
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9019983a i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa2cff6fe i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc161a654 i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdbcd67dd i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdbd1f9e1 i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe1421943 i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfaa881d6 i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x4cf5614c libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x4c0fe850 iwl_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xbd1ae3c3 iwl_alloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xdd189305 iwl_dealloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x134f8c23 lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1e803ede lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x397caf49 lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x46ffed67 lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5893e5ef lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x595712a0 lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x637b9f76 lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x63d62095 lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6e48d601 lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x810f884e lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x91e7eba9 lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb7ad356e lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc571edfd lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf73b1690 __lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x2a109eb2 lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x43c450dd lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9318b5ff lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xacf967f3 lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb463c780 lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd950a066 lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdbc59728 __lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf279b695 lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x17f95730 if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xc7ab77dc if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x12a5562f p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x52301187 p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x59d26d06 p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x91057183 p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb3cc436b p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb5b9bd31 p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb9781659 p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdb7f1e62 p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfe2e4d7c p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x22cbcb6b rt2800_init_registers
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3406bef4 rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x34f04582 rt2800_init_rfcsr
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x39c45b5b rt2800_mac80211_ops
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x40df7072 rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x54e7eb9f rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x58308a93 rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6adad133 rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7ac2a627 rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7c64e49e rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x85dad904 rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x92f7335e rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x96f3cf63 rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9a8428e8 rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa4ecb013 rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xacf5334f rt2800_init_bbp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc46b9113 rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc7473b69 rt2800_write_txwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xca4d5243 rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcba7c57a rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd6d8c77b rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe128d378 rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeb2f4bb7 rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf34d5f7b rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x18a35ed4 rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2ff155c6 rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x45811e52 rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46a17244 rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x561f870a rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x587803de rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x63960101 rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6efabdf8 rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6f09282c rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7b3fe8fe rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x81f64e5c rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x85e02a13 rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x949b55fa rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x95b7f755 rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb53664e3 rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xba4e1f38 rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbf6a65b6 rt2x00queue_get_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc339bc62 rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcb872497 rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcd85a74e rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd039b240 rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd0cfe3db rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe824bf48 rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2dd7bc7f rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x42b144db rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5a7c2f0e rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5befb964 rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x622c58f8 rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6eb4d8df rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc0a69eb7 rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd9f88e50 rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe1320fa5 rt2x00pci_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x05a47ad5 rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1a71d65d rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1c5ff7fa rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2e9023f4 rt2x00usb_kill_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x46f0f5a7 rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5d248be6 rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6742b67e rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8397b7d5 rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8592cfbe rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8ce29784 rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9bd0e7ad rt2x00usb_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xafb39e45 rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xba719d26 rt2x00usb_vendor_request_large_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc1ea0f91 rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdd595dc7 rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe404c305 rt2x00usb_kick_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x562fa501 wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x6358d1f0 wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x77701fef wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x39a7edea wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x73e93e1d wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x826ae284 wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x9ce566dd wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xfbb6b612 wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x87cf011c acpiphp_register_attention
+EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xa8ef1081 acpiphp_unregister_attention
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x30affaec pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xb3f7e630 pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xf441ee0f pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x158d8a81 wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x35fc39a8 wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x758d46b5 wm8350_register_led
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa1dedb2f wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xcdff87f6 wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe0a73c4a wm8350_register_regulator
+EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x9a3e14b8 wm8400_register_regulator
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xea725790 fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x01c58d39 iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0f1dcc3e iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1e7afb58 iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x20f00e5f iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x22149190 iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23cf84fe iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23d2731a iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3a18ce6a iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3a1bf2cc iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b3bd8a6 iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3f624db5 __iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x451d7fe3 iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x49d026f8 iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4dbcdc91 iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a85aacd iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b937074 iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x61a9afbf iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6687db83 iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6cbdc086 iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x771bcd4d iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7d41050b iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x83097f3f iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x886197f0 iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8c16cf4d iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a150c4a iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a7456ab iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa861241b iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb13181d4 iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb7944c96 iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb7bb9358 __iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2eec1f2 iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd53bbc72 iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xda509a59 iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdaa4aaeb iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3794d98 iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe68dca1f iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf0d14a85 iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf3a5f005 iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4e191c0 iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4e63363 iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf93c6bd2 iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfc7d43c2 iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0b490ffb iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0ee0c6e7 iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x129e4a0c iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x156b2080 iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2541f054 iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x49007b50 iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5ba9f138 iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9ea4f15f iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc50611f4 iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd42d5374 iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd6e8e48f iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdb07fc3b iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xed2de4f4 iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf32a93cf iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf841da68 iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfe762f09 iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0579370c sas_request_addr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x10410456 sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x143229bb sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1c96ff6b __sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2ee6a9db sas_domain_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3bb57e61 sas_phy_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3e2d9b55 sas_slave_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x40b6e406 sas_target_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6b1c30e1 sas_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x83f74d1f sas_find_local_phy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8686e95c sas_eh_bus_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8c69e241 sas_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x90ff267a sas_change_queue_type
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9773b467 sas_phy_enable
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa6d334fa sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb1998962 sas_ioctl
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb60a79a1 sas_register_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb994220c sas_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd11b0f07 sas_slave_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdb4974e7 sas_unregister_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdb9a3c5a sas_ssp_task_response
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf23eb87b sas_domain_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfc013dde sas_bios_param
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x0fcb6f16 srp_target_free
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x48dc455d srp_transfer_data
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x653fb339 srp_iu_get
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb41340a4 srp_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf6789d07 srp_cmd_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfcf16065 srp_iu_put
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3d23963c scsi_tgt_tsk_mgmt_request
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4f938d9e scsi_tgt_alloc_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5930015f scsi_tgt_free_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x75cf0ef4 scsi_host_put_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9a922591 scsi_tgt_cmd_to_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xa430781d scsi_tgt_it_nexus_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbdc89be3 scsi_tgt_queue_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe466c08d scsi_tgt_it_nexus_create
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf0957c62 scsi_host_get_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00cc986f iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x126f7ebd iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x28259b8a iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2933e0b3 iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x32921bd3 iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4cd72192 iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4d7091ca iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5425f7cc iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5daf1b67 iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x80d46921 iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x81e48bbe iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x82bc5983 iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8f1f5ce6 iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xad2a9225 iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb982105e iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc03defea iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd115a83d iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd284da9c iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xda878e82 iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdde4b737 iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe5a3d20d iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf7a3fa5c iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x114115cc sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x531239e5 sas_disable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7c80f642 sas_tlr_supported
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xf3292f07 sas_enable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x08b40c0b srp_rport_add
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1d097ff1 srp_remove_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xaec7c4ba srp_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xd658f00d srp_rport_del
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xfde045b3 srp_attach_transport
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x222409cf spi_bitbang_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x2ca4c8b4 spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x43e05733 spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x5deff5d5 spi_bitbang_stop
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x8796c766 spi_bitbang_setup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xc9ace530 spi_bitbang_start
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x027b0170 comedi_get_device_file_info
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0398e49e comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x535de0bb comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x66de28c1 comedi_pci_auto_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb64d388b comedi_usb_auto_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x77502afe das08_common_detach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xc8a8a658 das08_common_attach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xda7e5b6c labpc_common_detach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xf8831c60 labpc_common_attach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x20a9aed0 ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x5740c120 ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x64e3f288 ni_gpct_device_construct
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x8c317b67 ni_tio_rinsn
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x9128b309 ni_tio_arm
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xafbd931e ni_tio_winsn
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xcd1131d3 ni_tio_insn_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xcfaa78fa ni_tio_init_counter
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00b7cf43 ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x32777d65 ni_tio_cmd
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x3b1d5c3e ni_tio_cmdtest
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x63bf6e60 ni_tio_cancel
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd5da7082 ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xfd677474 ni_tio_acknowledge_and_confirm
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x27efbf2a osd_WaitEventCreate
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5783d46c osd_WaitEventWait
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x746d1786 osd_PageAlloc
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x79298bac osd_WaitEventSet
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x83911c38 osd_PageFree
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8c5f0f3b osd_WaitEventWaitEx
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0xd3c808de st_register
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2693e520 tm6000_get_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x458561d3 tm6000_set_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x6a2c9069 tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x2c2d96c5 usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x51d2a849 dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5af41c26 usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5b0bffeb usbip_event_add
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x66006fab usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6f93293e usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x890a091b usbip_event_happened
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x8f591929 usbip_dump_urb
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x9860ef1f sockfd_to_socket
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xabd33849 usbip_stop_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xafedbc35 usbip_start_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xc4e0028c usbip_task_init
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xce6455de usbip_stop_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd5d841ec usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf179cd78 usbip_start_eh
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x289065c0 uio_unregister_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x2a33516c __uio_register_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xfbe8e6fa uio_event_notify
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x83e3d734 usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xa7b19bef usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0128ac45 usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2130b499 usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4fa12d19 usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x56466fc5 usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x703d715d usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x73fd586d ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x890c3ed8 usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd20e12ff usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xdc84aa36 usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x12bbe0f9 usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x168b6583 ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x195b79c3 usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1b128373 usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x310ec274 usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x34d9353a ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x400bee88 usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x526c376a usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5430e6d0 usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x573c4db9 usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x868bf15d usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8a49190a usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8dd3298b usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x963af718 usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa9e26531 usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc6f2711a usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xed709ad6 usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xee919e00 usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf9e6d8ce usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x22530898 usb_stor_probe1
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2692c9d3 usb_stor_bulk_transfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3593b641 usb_stor_bulk_transfer_sg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3e53e0cc usb_stor_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4374f17a usb_stor_probe2
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x510f44f4 usb_stor_CB_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x51119f88 usb_stor_bulk_srb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x58c205a0 usb_stor_post_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5c12624a usb_stor_Bulk_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6033b210 usb_stor_pre_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x64d159ec usb_stor_set_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x65c10358 usb_usual_ignore_device
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7179d1ab usb_stor_Bulk_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x79fe8b92 usb_stor_ctrl_transfer
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7daa9f40 usb_stor_suspend
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8a8b04d9 fill_inquiry_response
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9a1171c1 usb_stor_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xada5bd52 usb_stor_clear_halt
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcbcb6906 usb_stor_reset_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdf9a24e5 usb_stor_control_msg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xeadad923 usb_stor_transparent_scsi_command
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf37aae54 usb_stor_access_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xffe13734 usb_stor_CB_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0860f204 __wa_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x2e8c3f37 wa_urb_enqueue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x8d144581 wa_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xd403800c rpipe_ep_disable
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xddaa714f wa_urb_dequeue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x06602d42 wusbhc_rh_resume
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0e0fbf4e wusbhc_rh_suspend
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x104cad84 wusbhc_b_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x315651f4 __wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3ca0faa1 wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x422b2470 wusbhc_handle_dn
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5cfa49ce wusbhc_b_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x66bbc12c wusbhc_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x68713a76 wusbhc_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6f44f7a4 wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x980e8eb2 wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb8c18bec wusbhc_reset_all
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc0ddb34d wusbhc_rh_control
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc8ae1e22 wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xed90523f wusbhc_chid_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf1ab9951 wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x25cb293b i1480_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xe7c9c000 i1480_rceb_check
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xf287382a i1480_fw_upload
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x05be18d9 uwb_rts_cts_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x23404b41 uwb_pca_base_priority_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x5e3bf8bc uwb_phy_rate_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x881882f7 uwb_phy_rate_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x91e28dcb uwb_rts_cts_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x9d7ba8b7 uwb_ack_policy_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd6c27f8d uwb_ack_policy_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd8ff8faa uwb_pca_base_priority_show
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x08960371 umc_device_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0ac319a6 umc_controller_reset
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x20cfa61b umc_bus_type
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x60b66957 umc_device_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8c3d68fc __umc_driver_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x973d325a umc_driver_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe085d00b umc_match_pci_id
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xf2d8a933 umc_device_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b05d42e uwb_rsv_modify
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0c52daca uwb_rc_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x13d30560 uwb_pal_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1a590510 uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1de729be uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x213e832a uwb_notifs_deregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2906d36c uwb_notifs_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2b37a710 uwb_radio_stop
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2b6e125f uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2bb1aced uwb_est_find_size
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x38e06f47 uwb_radio_start
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3a764d16 uwb_rsv_terminate
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5bfea10c uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x65744b38 __uwb_rc_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6f66f6b6 uwb_rc_post_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7b271ad9 uwb_rsv_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8af83675 uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c803e2a uwb_rsv_accept
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9207958a uwb_rc_alloc
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x93560c96 uwb_rsv_establish
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9def0fbe uwb_rc_neh_error
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9ee3a8e2 uwb_rc_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9f453d76 uwb_pal_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa21eb731 uwb_rc_ie_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa4bb4ca9 uwb_rc_vcmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa80af4e0 uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbcb6a69c uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc704ca6a uwb_dev_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd665721a uwb_rsv_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd97d9cda uwb_dev_for_each
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdf118182 uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe25861ae uwb_rc_put
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe4e0961b uwb_rc_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xea1e9ef2 uwb_rc_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xed836295 uwb_rc_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf6aa8d9c uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xff4cfd76 uwb_pal_register
+EXPORT_SYMBOL_GPL drivers/uwb/whci 0xd7007972 whci_wait_for
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x02cb46c2 wlp_neighborhood_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0f0b6501 wlp_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0fd27c22 wlp_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x18ab7a50 wlp_eda_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2758dfa2 wlp_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x28ce1896 wlp_dev_serial_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x29af71f6 wlp_uuid_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2f744d25 wlp_dev_model_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x30aaf4de wlp_dev_serial_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x30dc9caa wlp_dev_prim_OUI_sub_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x33d7b84a wlp_dev_prim_OUI_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4f0a6d00 wlp_dev_prim_subcat_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x52f076fb wlp_dev_prim_subcat_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x554000e8 wlp_wss_activate_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5dac02ff wlp_prepare_tx_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5e4416f6 wlp_dev_prim_OUI_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7244d0be wlp_dev_prim_category_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x74acd517 wlp_wss_activate_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x825b65b7 wlp_dev_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8525ed85 wlp_dev_model_nr_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x85f3c35c wlp_dev_manufacturer_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8c1b7678 wlp_uuid_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x90b7bf94 wlp_dev_model_nr_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9beb846f wlp_dev_prim_category_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc7fd434f wlp_wss_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcb287329 wlp_receive_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcbb37a5b wlp_dev_prim_OUI_sub_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe064ddf8 wlp_dev_manufacturer_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe2d0645b wlp_dev_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe8c8bf09 wlp_wss_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe9550776 wlp_dev_model_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf4077e2d wlp_eda_store
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x123bdee1 ili9320_write
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x417cca99 ili9320_suspend
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5b50c6a7 ili9320_probe_spi
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6ab9bbba ili9320_write_regs
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8ddb5a9c ili9320_resume
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8dff9ac8 ili9320_remove
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xa149c8cc ili9320_shutdown
+EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x2c151c03 fb_ddc_read
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xa544be30 fb_sys_read
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xc76835dc fb_sys_write
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x2393c3b3 sis_malloc_new
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x35b7c3fc sis_free_new
+EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys
+EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x5e6290a3 viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x1f0a66d8 w1_touch_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x409bb071 w1_write_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x6fad7e2f w1_write_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xb9ab73ab w1_read_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xd196ff2f w1_reset_bus
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xe0b9ee38 w1_reset_select_slave
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xe6448c21 w1_read_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xf5afee80 w1_next_pullup
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x038c4c78 dlm_posix_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x138a119f dlm_posix_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xccfc710d dlm_posix_get
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x86e1e593 exportfs_decode_fh
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xea25c798 exportfs_encode_fh
+EXPORT_SYMBOL_GPL fs/fat/fat 0x117dd945 fat_getattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x1ad3fd1f fat_free_clusters
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3bcb42a4 fat_detach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3f4d36af fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3fd34fe9 fat_setattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x4c78753b fat_search_long
+EXPORT_SYMBOL_GPL fs/fat/fat 0x4d58beac fat_alloc_new_dir
+EXPORT_SYMBOL_GPL fs/fat/fat 0x57bb6a10 fat_add_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x6bca6913 fat_fill_super
+EXPORT_SYMBOL_GPL fs/fat/fat 0x7301e5c0 fat_flush_inodes
+EXPORT_SYMBOL_GPL fs/fat/fat 0x87a2698c __fat_fs_error
+EXPORT_SYMBOL_GPL fs/fat/fat 0x904159f8 fat_build_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xa48e0287 fat_scan
+EXPORT_SYMBOL_GPL fs/fat/fat 0xc8146490 fat_time_unix2fat
+EXPORT_SYMBOL_GPL fs/fat/fat 0xea94e63a fat_remove_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0xf64e008f fat_sync_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xfbeb840f fat_attach
+EXPORT_SYMBOL_GPL fs/fat/fat 0xfedde4c8 fat_dir_empty
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x03917bf9 nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7d18564b nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa201fa91 nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa2a150af nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xaa6637a9 nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x6d391717 nfsacl_encode
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x918e6bf3 nfsacl_decode
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x22cf4547 o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x27ca44c3 o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x671eddd5 o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7bc29e20 o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbce375a9 o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd2d15d84 o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe577fe85 o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0d1a183f dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x2fad8458 dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x491752c2 dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7f9e9c8d dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8ad70bc3 dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa35e9f56 dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x38d893f9 ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x3fa29cb9 ocfs2_plock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb2457f9f ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x2e1d43cf lzo1x_1_compress
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs
+EXPORT_SYMBOL_GPL net/802/garp 0x31091381 garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0x7a6b17e1 garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0xa6105cc0 garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0xaa087e35 garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0xbf35dad5 garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0xc8ecc2d8 garp_register_application
+EXPORT_SYMBOL_GPL net/802/stp 0x7537933e stp_proto_unregister
+EXPORT_SYMBOL_GPL net/802/stp 0xe8cdf383 stp_proto_register
+EXPORT_SYMBOL_GPL net/ax25/ax25 0x65efa5b0 ax25_register_pid
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x948ae284 bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x058157c9 dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x06ca94d5 dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a7c2aad compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x251c9708 compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2bdb31c7 dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d0cdb6a dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2f8efcac dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3f3e1487 dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x424f08ff dccp_insert_option_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x54c1a740 dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x674c2a02 dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6f7f61d2 dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x72c51bed dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x736f0503 dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7bf84d3a dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7c0dd114 dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8097aa70 dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x82c9802f dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x85e3f1e8 dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x882939b8 dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8bc6542d dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x91d75587 dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x98e89166 dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9e8870a4 dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9f826d09 dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9fb795d6 dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa8f314fb dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb22fc6a7 dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb68852c2 dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xca322d7d dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xcf93cd44 dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd4694717 dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe392c560 dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xef8a4806 dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xfb666abe inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x08a6849b dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x30523635 dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4c3af318 dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x739821c5 dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x741a95f3 dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa7184230 dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x4d08a20a arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xeab58808 ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x932125a4 nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x01127453 nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07d209ba nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0e87ce3b nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4c7b3bea nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x6ca79aec nf_nat_proto_put
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9380a56d nf_nat_proto_find_get
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbe22acff nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd5fcc7b8 nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x10525fd1 tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x50d1b707 tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc4b68776 tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe717a01f tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf19168a6 tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x9db3baa6 ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2cee15c6 l2tp_udp_recv_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2d4f5f3b l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3e330344 l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x64f6f42f l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x68ea3aed l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7055f995 l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x712eb3dd l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7b0081ca l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x99c94861 l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb06e93b1 l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc26c1efd l2tp_xmit_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcd66e47b l2tp_tunnel_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe346fbd7 l2tp_tunnel_closeall
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe5eddd4a l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xeaaf0ab7 l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf87fe0d0 l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfb16df52 l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x756c3143 ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa09471bb ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe81d4696 ieee80211_find_sta_by_hw
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0021d5ce nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06923278 nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x083ae1da nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0863b6d9 nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0cc587a2 nf_ct_unlink_expect
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f40f11b nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x14088c7a nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15139387 nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15a4e0fa nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x18bdac59 nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x191aac8e nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1bd7ba7f nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x219e46a5 nf_expect_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x29e41133 nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b08849f nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b6f5bc7 nf_conntrack_untracked
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e4748e0 nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x430392a2 nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4acb2a1d __nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b2d7322 nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4cf4300e nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d8cad11 nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f541961 nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f64f3ae nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x55826026 nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5e5e1098 __nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6967dd3a nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7358bacd nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x777e618a nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x791b11a0 nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x795fddd8 __nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79fddf53 nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c1f4ae1 nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d52912c nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85ad35d5 __nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x92602a51 nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x944ffd2f __nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97044340 __nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a94acbc nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa28939ce nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa338d311 nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa684ee3c nf_conntrack_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xac7206bf nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7a0f792 nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb38b688 nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb3e6e8c nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc82686d __nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc13fdafe nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf5dbeb2 nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd1570206 seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd60c2022 nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd7351861 print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe1ef9e47 __nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2f319b0 nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe7a8f040 nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeb3df4bf nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebc42404 nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xed1ddef8 nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf39e7f7f nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7feff31 nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffcf395b nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x6e39a046 nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xbfb2a37c nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x15e90783 set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x16f81660 nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x21683e4f set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x317bceb3 nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x49c664ac nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x58a02806 nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8482e809 set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x89b82c7a get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb9784a65 nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe659ee2e set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xca5625d6 nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x15c92fab nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x4ecfb405 nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x81ec53c7 nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9351aaea nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x8c7d7566 nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xa7eb7855 nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x08601ef0 ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2b869faa ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4f1c216e ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5b32023f nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x689001ac nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x77b3277c nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x93307258 nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9405559f ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb231ebe5 nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc6a4b787 ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd90ebf07 nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xea4642a9 ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf9371e91 nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x588f9dce nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x992bf479 nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x9fec1795 nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x57f73acd nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x6dac4c8a nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x88d30af5 nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8c23db9f nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc76d10b7 nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf7e23a98 nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xb5bde042 nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x055f2741 xt_compat_target_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0da34b61 xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x39629848 xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x48ca535d xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f268db4 xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x684694c5 xt_compat_add_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7443fee7 xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x749ea70e xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7603612f xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7867bae5 xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x91545b8d xt_compat_target_to_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xacc6d161 xt_compat_match_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaf1721e3 xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbe585f93 xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc19bf478 xt_compat_match_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd0e07115 xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdc40e24a xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe7d3f84e xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf3353c63 xt_compat_target_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf84fb1d7 xt_compat_match_to_user
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x4ac7eda1 xt_rateest_lookup
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x6a518c7f xt_rateest_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq
+EXPORT_SYMBOL_GPL net/rds/rds 0x0a0acf0f rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x1c5cb3b1 rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x1c6823b5 rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0x26e79c8d rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x27b6bf25 rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0x2ba899cd rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3ec3ec03 rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0x539390b1 rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0x59b97318 rds_inc_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x6fb206ff rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0x738424ce rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0x8b4bb708 rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0x920910f7 rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x92c58eda rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x977e1e31 rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0xa6cc276e rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0xb9969c88 rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xbf6be130 rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xc6401f35 rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xd691b701 rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xe7297929 rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0xec6151c5 rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xeee2205f rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xf87c8b91 rxrpc_register_security
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x0d1ec7c1 gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x16ae6436 gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x18c1feb9 gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3159d274 gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3891f12d gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x42db3383 gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5c9a789c gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5ccb52e5 gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5fd9546b svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x86984afe svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa5692781 gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x027aa595 rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04d88374 xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0699e12d svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0938530f rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09dacf0c svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ce926e8 rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0de06756 rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e489d40 sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ed29936 svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0efcda21 rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1202924e rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12781bba svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14e870da rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x191887c9 svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x192eb407 xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b282548 rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d2d7132 rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e4bf881 svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2096eb53 rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x226398e7 auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25f57b0c xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27a0d989 svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2986831b rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b95c481 svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d5bfba5 rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d740615 svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3169b78b svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36653fc4 xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x372b43a6 xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37628d99 rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37c9bece svc_sock_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38a04492 rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39055478 rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39248d00 xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a8605f4 csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d91f4ba xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x403092ad svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4057c1b4 svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41c814f7 svc_sock_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4242ee2c rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4312d5aa sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4318855c xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45667535 svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46fba951 xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4789eeee xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4eee73a0 put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52b94219 rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x548bf50b rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b19745e rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd1ca2a rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d48efce auth_unix_add_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f66acac rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fb22af8 xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6004f425 rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6258ba19 rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62a0472d rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62bf85da rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64ef81a3 rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66db0025 xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66fed2e0 svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x678f1f74 xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x694c0181 svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6adccfd9 rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6add0d8c rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bbeea55 svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d746e74 sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x709e2216 xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x749a7e98 xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x764678d1 auth_unix_forget_old
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77032491 rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x792cec95 rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7abdb9ac svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccb0c0e rpc_queue_empty
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81b62f3e svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8342a25c xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8508a0bb auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86e04ff5 xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c0d6d95 sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d758b60 rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8da9bee1 rpc_exit_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e107457 xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x903fbb1d xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90988546 svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93bfa3c2 write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9640a51a svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98db69c5 rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a2bb72e unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d902bc3 auth_unix_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e6f295a xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f45b605 read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f7b5d5c svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa38612b4 rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4035ece xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8cd30fd xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xabb8cc90 __rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf6576ea xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0d05b14 svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8944f05 rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb4c0952 rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbf9ccc8 svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbccaf5dc svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbde83bf4 rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc25395a2 auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc30e68d8 rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3bfb2c5 rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4a1160a cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc52dab1b rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5cef3e3 svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc62a0567 svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc938b4b1 xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc982ac04 xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb526430 rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd3cf474 svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd28b663b xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd445ee2c svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5c98a92 svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8fb8614 cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda840443 svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdec116e5 svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdec1f1bb xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0a620a9 rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1385270 xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2395208 rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4ce0ec1 rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5252b5b xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe81ed65d xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xebf70e59 xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeccfd987 xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee77d95e xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef85c9fe xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1c7e6c0 xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4083543 sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf56da22c cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf77f470d svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa0d2f68 xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa300a55 cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe049b02 svc_seq_show
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x02195c40 wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x2de8f260 wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x37cc2107 wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x3cb2eca4 wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x4c98f3e8 wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x83123f29 wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x91c1fa2b wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x972e6fa0 wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xa6d4b0e4 wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xbc7047f2 wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xdd7d1013 wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xe3d10ffa wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf972277e wimax_state_change
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0a85f021 cfg80211_wext_giwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x103f906a cfg80211_wext_giwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1bfd2608 cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x21450da9 cfg80211_wext_giwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x34ba7e28 cfg80211_wext_siwmlme
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3ff8716b cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x41151fe6 cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4d5f5d89 cfg80211_wext_giwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x518f0d82 cfg80211_wext_giwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x56eba10b cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5753fc30 cfg80211_wext_giwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5ca8e3b4 cfg80211_wext_giwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5ec241ae cfg80211_wext_siwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x785b6e3e cfg80211_wext_siwgenie
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7dd1903b cfg80211_wext_siwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x80700cab cfg80211_wext_siwencodeext
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8150364d cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x86fcc39b cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x934376c2 cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9a03cad8 cfg80211_wext_siwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9d7dabc5 cfg80211_wext_siwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa018c272 cfg80211_wext_siwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa8002a8f cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaabf77c5 cfg80211_wext_siwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaddbe828 cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb7cf4e50 cfg80211_wext_siwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb9c11ac9 cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc93a1a4a cfg80211_wext_giwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe7104219 cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe917deae cfg80211_wireless_stats
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf11b7f31 cfg80211_wext_siwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf67fd3b8 cfg80211_wext_siwessid
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x24b5a85d ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x3d921e57 ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x42f5ecd6 ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x92e2503b ipcomp_input
+EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x05605e8c snd_ak4113_reinit
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x535faa4d snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x683a67ea snd_ak4113_create
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x74f77674 snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x76f4bdb9 snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa719976d snd_ak4113_build
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01961315 snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0504a68c snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05433fc7 snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x06e8a580 snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0de862c4 snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1280050d snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13dfbd0d snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x142a1837 snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15098be1 snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1961a916 snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1dfd9302 snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1e3c871a snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22bc5083 query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2bb3b5f3 snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e74cf8e snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x30557b0a snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33949f29 snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33d4bb27 snd_hdmi_get_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e9bd7ad snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3f5c13fb snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3fba04a2 snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x406cb4f0 snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x43ce118a snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4473532a snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x459a92eb snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4663cfd2 snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c75da6b snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57b7382c snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f1f84f6 snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x64347a95 snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x65ae2733 snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x690e7900 snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ae0a838 snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b150d84 snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6c60ec9a snd_hda_eld_proc_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d5c71ab snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e222925 snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f3e9d32 snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71f1f41a snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72602016 snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x757418e3 snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75aec821 snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a25152c snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c9b67c7 snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f4031a3 snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x840fc6d3 snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x858b232d snd_hdmi_show_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86324957 snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x865cc08f snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8f5d5578 snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9018b758 snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x918ccc30 snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a7a4745 snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9bf8bd17 snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ce41ab0 snd_hda_eld_proc_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ec4cf62 snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa131dca0 snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1e70e49 snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa29a46e7 snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5c3d7c1 snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6f16bd7 snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa951fd06 snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa95bf207 snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa8b3b0b snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb4fa3561 snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc008eb4f snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1ae6d33 snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5e6fdfc snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc9a5559d snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca6598e9 snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf674b55 snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd14b5257 snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5b95936 snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5d7e09b snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb4f4f0e snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3da8348 snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe518217c snd_hdmi_get_eld_size
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe52a0790 snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec6f6c1e snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xecdba2c6 snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed28b0e1 snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef703881 snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf28d212b snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf29ed959 snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf49a41da snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf890480b snd_hda_parse_pin_def_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfac8de02 snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe736248 snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x1eca4d0a ad1836_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x87a6da88 soc_codec_dev_ad1836
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x51e0df66 soc_codec_dev_ad193x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xe7322688 ad193x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xbf328e79 ad73311_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xfd978514 soc_codec_dev_ad73311
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x0f3768c6 ads117x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x9ca1de7b soc_codec_dev_ads117x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0x22ef3c86 soc_codec_device_ak4104
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x67576c33 soc_codec_dev_ak4535
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xb8c734b7 ak4535_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x3fec439f soc_codec_dev_ak4642
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xeeea3d62 ak4642_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x1687ae05 soc_codec_dev_ak4671
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x59965551 ak4671_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x2963d136 soc_codec_device_cs4270
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x7a95f0d3 cs4270_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x2aa8bd7a da7210_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x307002b0 soc_codec_dev_da7210
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x73af3464 max9877_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xa0757177 pcm3008_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xe781df2e soc_codec_dev_pcm3008
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x6eeb4e53 dit_stub_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x099259ee ssm2602_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xec34dae5 soc_codec_dev_ssm2602
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x490456fa soc_codec_dev_tlv320aic23
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xe74cfe02 tlv320aic23_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x0f30754b aic26_soc_codec_dev
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xa43e14ce aic26_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x2d4e503e aic3x_headset_detected
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x371b7466 aic3x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x46aef7c5 aic3x_get_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x65bee658 aic3x_button_pressed
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd38be571 soc_codec_dev_aic3x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd403308b aic3x_set_headset_detection
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xe8019752 aic3x_set_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x0f75e795 dac33_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x287be6bf soc_codec_dev_tlv320dac33
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x7c576bee tpa6130a2_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x43b952ed soc_codec_dev_twl4030
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xf60c174f twl4030_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x0015754e twl6040_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x3c361708 soc_codec_dev_twl6040
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x820134e8 soc_codec_dev_uda134x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x444c6298 uda1380_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xb3bb0881 soc_codec_dev_uda1380
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xb27d618d wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xb6a2fe78 wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xd148ce87 wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xee7a190a wm2000_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x12f538e6 wm8350_mic_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x3a39a1c2 wm8350_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x691b666e soc_codec_dev_wm8350
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x771538d9 wm8350_hp_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x62c4877c wm8400_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xf2079c3c soc_codec_dev_wm8400
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x0e03ebf0 soc_codec_dev_wm8510
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xd2fc39f6 wm8510_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x2768066a soc_codec_dev_wm8523
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x658051c5 wm8523_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x01d2d07f soc_codec_dev_wm8580
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x1250a626 wm8580_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x5b85ed2e wm8711_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xbd11123a soc_codec_dev_wm8711
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xbc3414ae wm8727_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xe90d0be5 soc_codec_dev_wm8727
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x4d62a67b wm8728_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x6e95172a soc_codec_dev_wm8728
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xbe95c654 soc_codec_dev_wm8731
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xcc1afc07 wm8731_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x64961a98 wm8750_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xa3038ba7 soc_codec_dev_wm8750
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x3b5017f1 wm8753_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x882ed864 soc_codec_dev_wm8753
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x608dbc38 wm8776_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xf6ddf84f soc_codec_dev_wm8776
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x2324270d wm8900_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x45173e7f soc_codec_dev_wm8900
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x1cc332c0 wm8903_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x6e3a6dbc soc_codec_dev_wm8903
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xa5b055a3 wm8903_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x217bfb7b soc_codec_dev_wm8904
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xb8b5651b wm8904_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x421e96a3 soc_codec_dev_wm8940
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xd76b031e wm8940_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x21d19919 wm8955_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x3eab08d1 soc_codec_dev_wm8955
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x40f41237 wm8960_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x419a42cd soc_codec_dev_wm8960
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x5881738c soc_codec_dev_wm8961
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x8ba8c192 wm8961_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x2ddfca26 wm8971_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x594319bb soc_codec_dev_wm8971
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x2434edfe soc_codec_dev_wm8974
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x7d125b95 wm8974_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x0ad09bee wm8978_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x8881a2f2 soc_codec_dev_wm8978
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x83dde5cf soc_codec_dev_wm8988
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xfc98eb07 wm8988_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x4ac605f0 soc_codec_dev_wm8990
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xb6bc62de wm8990_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x30281070 wm8993_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x61eb5633 soc_codec_dev_wm8993
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x2eaac0f4 soc_codec_dev_wm8994
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xb06e5264 wm8994_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xdf3f941d wm8994_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x127738bc soc_codec_dev_wm9081
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xd3a3b5a7 wm9081_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x0aae63ca soc_codec_dev_wm9090
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00108757 snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x02235b47 snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x03651766 snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05001477 snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d5424bc snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0eaf2b3c snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1170a46c snd_soc_info_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x121caf19 snd_soc_dapm_stream_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x187006bf snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x18a5c6eb snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21dec5d8 snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24a7dc6e snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24a8e32b snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29ee3abc snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x30861b4c snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31ceb3d0 snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x347ba044 snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3701e85b snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37c9fb7d snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39b5502a snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e293eb2 snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e6eaab1 snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3f6da286 snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x408f336b snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43a862db snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x44eff81f snd_soc_jack_new
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x450dc8c8 snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4bd853ec snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4cd409ab snd_soc_free_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52a4ed01 snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54619932 snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b325e66 dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5be4fe71 snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e70d975 snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x62bbc56f snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x64f6d820 snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x699b5207 snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69c37e9a snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6feef0c1 snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71a6d126 snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7981db23 snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7a487156 snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7fe64c3e snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x875f7a22 snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x895e250d snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8bee031e snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ccef905 snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e4537fa snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x954d16cf snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x957cf8ba snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b6025b9 snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f3bfd0b snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa01b2d96 snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa7542535 snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8070b0f snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa355214 snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac111f1b snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb33f426c snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb371eac6 snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5f5b1d2 snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb61484d2 snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6e2d2a8 snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb716cb8a snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc59b817 snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc82df5e snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd3afb55 snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe113ab8 snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc9a188dd snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc81527e snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcdeae46a snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd050690e snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd61c2fea snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda889284 snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc09dbe4 snd_soc_put_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdeb9fdf7 snd_soc_get_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf6511532 snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9a90e7c snd_soc_new_pcms
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x403287f6 xv_create_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6396f009 xv_destroy_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6da52fbd xv_free
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xb9d51915 xv_malloc
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xfdffb8fc xv_get_total_size_bytes
+EXPORT_SYMBOL_GPL vmlinux 0x001fbced da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0x002e03a2 ata_noop_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x003e69d1 ring_buffer_read_finish
+EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis
+EXPORT_SYMBOL_GPL vmlinux 0x006c0937 class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x007bdd70 inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0x00a5cbe1 iommu_iova_to_phys
+EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x00bf70e1 rtnl_kill_links
+EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init
+EXPORT_SYMBOL_GPL vmlinux 0x00deb102 rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string
+EXPORT_SYMBOL_GPL vmlinux 0x00f94fde register_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x010ca186 usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0x01511988 kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok
+EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x01b053ae tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0x01d1d475 nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x01ec12a8 ata_scsi_simulate
+EXPORT_SYMBOL_GPL vmlinux 0x01f4660b blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x02178eb1 sata_scr_write
+EXPORT_SYMBOL_GPL vmlinux 0x02988f55 blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x02be9394 blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x0385597f pcie_port_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x03a3f86d unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x03ada202 dm_dispatch_request
+EXPORT_SYMBOL_GPL vmlinux 0x03b05964 dev_attr_em_message
+EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL vmlinux 0x03fe2cca flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x03fee4bb __ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread
+EXPORT_SYMBOL_GPL vmlinux 0x04206642 unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x04b5e412 usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0x04d85a46 regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0x04f16270 fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x053a6d9a br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0x054d6b27 sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x05ca66c8 led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0x05ecf8e2 skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0x06030463 perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0x0609912b tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0x060b87da bus_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x062b0187 usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x062e733c adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x0633bc7d ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x066a4b88 wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x0683a17a __srcu_read_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x06ad54fd anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x06afa8b7 device_attach
+EXPORT_SYMBOL_GPL vmlinux 0x06cd5bd9 class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x0708580d __pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x0717aa15 ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0x072d5f48 regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0x072f0b0f crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x076f27d8 key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0x0779395d bus_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x078eb49d unregister_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x07a8a34c srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x07b883ac bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0x07e079b2 mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf
+EXPORT_SYMBOL_GPL vmlinux 0x0826272f do_add_mount
+EXPORT_SYMBOL_GPL vmlinux 0x0863d6eb srcu_init_notifier_head
+EXPORT_SYMBOL_GPL vmlinux 0x08a44647 ata_sas_port_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x08a85c30 crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0x0935bb01 xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0x09af56ae da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x0a4c1989 usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x0aa284fc default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x0ac0ab25 vring_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x0af36780 pm_request_resume
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header
+EXPORT_SYMBOL_GPL vmlinux 0x0b4212e7 sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map
+EXPORT_SYMBOL_GPL vmlinux 0x0c061e2b sata_set_spd
+EXPORT_SYMBOL_GPL vmlinux 0x0c1747ee usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x0c259b54 usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c7dde4a blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range
+EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL vmlinux 0x0d3dda9f console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0x0d4e4e56 tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x0d65584f cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0d7c5f00 __fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0x0db42ab3 scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0x0dba4563 regulator_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x0dee18cf xenbus_watch_path
+EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release
+EXPORT_SYMBOL_GPL vmlinux 0x0e256493 mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0x0e5a0ddd hwmon_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put
+EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info
+EXPORT_SYMBOL_GPL vmlinux 0x0ec4700b ata_sff_wait_ready
+EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL vmlinux 0x0f1e43a3 blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x0fa1e89b pm_request_idle
+EXPORT_SYMBOL_GPL vmlinux 0x0fad098d usb_set_device_state
+EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory
+EXPORT_SYMBOL_GPL vmlinux 0x0ffff815 dev_attr_sw_activity
+EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x100de873 queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x106fa92b rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x10c03563 wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x10c74770 clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x112ec476 wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x11354d82 ata_sff_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0x113eb862 crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x1193eaf4 regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0x11e90963 spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0x11ee8a74 fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x12082028 ata_dummy_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x120faf75 platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0x12250576 spi_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0x12729dfb get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0x1279403d ip6_dst_blackhole
+EXPORT_SYMBOL_GPL vmlinux 0x129ad44e power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x129c83c3 tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x12ae6581 tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0x12b51433 sata_scr_write_flush
+EXPORT_SYMBOL_GPL vmlinux 0x130554b6 sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0x132830c9 ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0x1333b108 usb_bus_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x13436098 ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x1356bdfb xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x1360d523 crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x136d2b64 md_new_event
+EXPORT_SYMBOL_GPL vmlinux 0x137b688c ata_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x13a12bab blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0x13aefa49 usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13cb6832 nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x13e2ea08 user_update
+EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid
+EXPORT_SYMBOL_GPL vmlinux 0x14a08a09 rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x14d11008 alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x14f782b8 ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x151df1aa regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x153d2a68 device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x15468e98 usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL vmlinux 0x1556df60 skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x156088fe crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped
+EXPORT_SYMBOL_GPL vmlinux 0x1632b977 device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x165fc691 ata_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x16677cb5 macvlan_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x1668395e each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x166cb7c9 find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x167c3b8d shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0x169a2d2b fuse_file_poll
+EXPORT_SYMBOL_GPL vmlinux 0x16aa0c5b securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x16d201bc md_do_sync
+EXPORT_SYMBOL_GPL vmlinux 0x172dd410 pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0x1736215e ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x17466450 clockevents_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub
+EXPORT_SYMBOL_GPL vmlinux 0x178114c9 debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0x1786f7ce acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL vmlinux 0x17a52f10 skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x1838c5a4 power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x18409a68 ata_port_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert
+EXPORT_SYMBOL_GPL vmlinux 0x18afcac6 fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref
+EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x19469cfb ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore
+EXPORT_SYMBOL_GPL vmlinux 0x19776b45 ata_dummy_port_info
+EXPORT_SYMBOL_GPL vmlinux 0x199d7a3c ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19a99d9f sdio_readl
+EXPORT_SYMBOL_GPL vmlinux 0x19c4c321 save_stack_trace_tsk
+EXPORT_SYMBOL_GPL vmlinux 0x19ddf359 hvc_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x19f96834 usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x1a5149b1 da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x1b05c689 debugfs_create_bool
+EXPORT_SYMBOL_GPL vmlinux 0x1b16eb2b __mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0x1b2471d9 locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0x1b2f2b72 usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0x1b339e81 shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x1b67ff14 virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL vmlinux 0x1b8a9cf5 aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x1b8c0e54 dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1ba4571d pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL vmlinux 0x1bc51976 ata_sas_port_stop
+EXPORT_SYMBOL_GPL vmlinux 0x1c760018 platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1c83e458 sis_info133_for_sata
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1d2bc0cc xenbus_dev_changed
+EXPORT_SYMBOL_GPL vmlinux 0x1d3f1f8d virtqueue_disable_cb
+EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x1d6a2d8b blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x1d954d32 cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x1dcdb525 power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf
+EXPORT_SYMBOL_GPL vmlinux 0x1ddacc22 inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0x1e110a76 vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0x1e259ba5 blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x1e30864e queue_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x1e3513e7 ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x1e3538a8 pm_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart
+EXPORT_SYMBOL_GPL vmlinux 0x1e960d4c class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x1eaed397 debugfs_create_u32
+EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x1ebbc5ed generic_detach_inode
+EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names
+EXPORT_SYMBOL_GPL vmlinux 0x1ed42f9b crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0x1f64e191 bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0x1f75ae68 __module_address
+EXPORT_SYMBOL_GPL vmlinux 0x1f86355d use_mm
+EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick
+EXPORT_SYMBOL_GPL vmlinux 0x1ff94def vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x20135116 wm8350_device_exit
+EXPORT_SYMBOL_GPL vmlinux 0x201a4a34 register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x202585bb dm_unregister_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20d22764 iommu_found
+EXPORT_SYMBOL_GPL vmlinux 0x20e92be1 crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0x2110fb56 ata_port_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x21373ce1 fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0x214274ff rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0x21456256 i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x217e452c ata_host_activate
+EXPORT_SYMBOL_GPL vmlinux 0x21ad8b7c rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0x21b6b054 rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x21bff97c ata_sff_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x21fb0723 device_schedule_callback_owner
+EXPORT_SYMBOL_GPL vmlinux 0x2257a5ea raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0x226b71ae rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x228d7be1 devm_kfree
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x22db0718 bsg_unregister_queue
+EXPORT_SYMBOL_GPL vmlinux 0x22f5050b sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x231b0309 hvc_remove
+EXPORT_SYMBOL_GPL vmlinux 0x23711c24 device_register
+EXPORT_SYMBOL_GPL vmlinux 0x237910f2 crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x238a3cf8 adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x23b32a6e fuse_do_open
+EXPORT_SYMBOL_GPL vmlinux 0x23df6fdf register_posix_clock
+EXPORT_SYMBOL_GPL vmlinux 0x2432f92c platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0x24554999 regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops
+EXPORT_SYMBOL_GPL vmlinux 0x248b5dea sdio_writeb_readb
+EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write
+EXPORT_SYMBOL_GPL vmlinux 0x24d4a57e sdio_claim_host
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x24f0558c sata_std_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x250e8f30 irq_set_affinity_hint
+EXPORT_SYMBOL_GPL vmlinux 0x2521240f device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x253a69f8 crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0x253fba83 pci_get_hp_params
+EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch
+EXPORT_SYMBOL_GPL vmlinux 0x254922b8 devres_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x255945a3 class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x25804ba5 ata_do_dev_read_id
+EXPORT_SYMBOL_GPL vmlinux 0x2587e870 fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0x25a5b7d0 inotify_find_watch
+EXPORT_SYMBOL_GPL vmlinux 0x25b2de94 led_trigger_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x25b72ce2 sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x25cc4d7b crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0x25f658f5 acpi_pci_find_root
+EXPORT_SYMBOL_GPL vmlinux 0x2644fbcc transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x26b7fcea inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x26dc28be sata_link_resume
+EXPORT_SYMBOL_GPL vmlinux 0x270c9232 __cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x2717f9e1 set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0x2724032a pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0x274f3d7f posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars
+EXPORT_SYMBOL_GPL vmlinux 0x27a4263e skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x27c7e84f fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0x27cf850f pci_hp_change_slot_info
+EXPORT_SYMBOL_GPL vmlinux 0x27f3df0e __set_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range
+EXPORT_SYMBOL_GPL vmlinux 0x2813755a ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x282ca118 platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x2887306d add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x28a5f8c1 inotify_inode_is_dead
+EXPORT_SYMBOL_GPL vmlinux 0x28ab7a27 blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0x28d2e2bc fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28d9ba87 devres_find
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x28f1bdeb get_device
+EXPORT_SYMBOL_GPL vmlinux 0x29361d59 ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x29594e9a i2c_new_dummy
+EXPORT_SYMBOL_GPL vmlinux 0x2976ca5d fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x297b43ad regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0x29801e25 simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0x299a1e6d sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0x29e9be52 apei_get_debugfs_dir
+EXPORT_SYMBOL_GPL vmlinux 0x29fe9a45 pci_bus_max_busnr
+EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0x2a31b228 inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x2a40dd2e usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result
+EXPORT_SYMBOL_GPL vmlinux 0x2a7b6f31 tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x2a8cd538 ata_dev_next
+EXPORT_SYMBOL_GPL vmlinux 0x2b292594 register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x2b6d5fa2 regulator_get_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x2bac284e securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x2bc68c0f sdio_readb
+EXPORT_SYMBOL_GPL vmlinux 0x2be1c1af vring_del_virtqueue
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c8c0966 mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0x2ca1bd96 ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2cf337f3 scsi_dh_set_params
+EXPORT_SYMBOL_GPL vmlinux 0x2d218748 debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0x2d52a5ca pm_runtime_enable
+EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x2d65dae2 inet6_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x2d6ef5ab ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x2d738027 tracepoint_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x2d90734f crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL vmlinux 0x2dd5a9dc cpuidle_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x2e0a8eb6 ata_cable_80wire
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e493a0a queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0x2e495e5b crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x2e5055ba tty_prepare_flip_string_flags
+EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0x2eed2630 iommu_domain_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x2f0f8850 scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table
+EXPORT_SYMBOL_GPL vmlinux 0x2f4b13b1 wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll
+EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x2fe6eb4a transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0x304c522c sdio_readw
+EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0x30858abd inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x31052c70 usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x3136fa28 __inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x314a63c3 apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0x3175c405 cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x317d206a i2c_new_probed_device
+EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x31e174e5 register_virtio_device
+EXPORT_SYMBOL_GPL vmlinux 0x324683ff tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x3251854f ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x32daa97e spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0x32eb259b xenbus_switch_state
+EXPORT_SYMBOL_GPL vmlinux 0x32f99caa aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x3301a205 disk_map_sector_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x3331a9b0 wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x334b53b0 class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register
+EXPORT_SYMBOL_GPL vmlinux 0x33d95659 kill_pid_info_as_uid
+EXPORT_SYMBOL_GPL vmlinux 0x341aff76 led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3423c0c4 bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0x343e95be crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x3443779f root_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3496a322 kick_process
+EXPORT_SYMBOL_GPL vmlinux 0x34a49c90 dm_rh_recovery_end
+EXPORT_SYMBOL_GPL vmlinux 0x34aa5968 usb_ep0_reinit
+EXPORT_SYMBOL_GPL vmlinux 0x34bc9147 pci_test_config_bits
+EXPORT_SYMBOL_GPL vmlinux 0x34db2d35 crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x34ecf1cc task_current_syscall
+EXPORT_SYMBOL_GPL vmlinux 0x351f95c9 debugfs_create_u64
+EXPORT_SYMBOL_GPL vmlinux 0x3530ebd6 uart_set_options
+EXPORT_SYMBOL_GPL vmlinux 0x35c8b68a __blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x35dc84f4 skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x361b1d31 tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0x3621b619 sysfs_remove_files
+EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0x36607b43 power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL vmlinux 0x3672a697 gpio_export_link
+EXPORT_SYMBOL_GPL vmlinux 0x36864ef1 crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x36cc05b3 ata_sff_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x36fad637 gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0x37538ea8 init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x379f66b3 pci_destroy_slot
+EXPORT_SYMBOL_GPL vmlinux 0x37afbd98 ata_bmdma_stop
+EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page
+EXPORT_SYMBOL_GPL vmlinux 0x3833bb24 relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0x384053e7 erst_get_record_count
+EXPORT_SYMBOL_GPL vmlinux 0x387210d6 sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0x38799942 sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0x38d1c6fd cpuidle_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x38e13ee4 xenbus_dev_fatal
+EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure
+EXPORT_SYMBOL_GPL vmlinux 0x38f8c56e usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x393ceb01 usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0x3952e931 tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x397362d1 wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0x39aa62a2 ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x39c4304c vma_kernel_pagesize
+EXPORT_SYMBOL_GPL vmlinux 0x39d1fc9a ata_cable_ignore
+EXPORT_SYMBOL_GPL vmlinux 0x39dbf698 shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x39eaf60d inet6_csk_xmit
+EXPORT_SYMBOL_GPL vmlinux 0x3a081476 pciserial_resume_ports
+EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3a378b50 sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x3a3e3519 spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0x3a6bacd4 __ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0x3a89a8e3 ata_sff_dma_pause
+EXPORT_SYMBOL_GPL vmlinux 0x3aad5302 perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x3ac2e131 bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x3ace7662 anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3ad063b3 tracepoint_iter_stop
+EXPORT_SYMBOL_GPL vmlinux 0x3b2354ea usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value
+EXPORT_SYMBOL_GPL vmlinux 0x3bab3c94 dma_release_channel
+EXPORT_SYMBOL_GPL vmlinux 0x3baf0876 usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL vmlinux 0x3bd4ebd2 platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0x3be6ded6 usb_driver_release_interface
+EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3c433a73 sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0x3c50a85e skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x3c867e1d acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0x3c8b26d6 sata_scr_read
+EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag
+EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL vmlinux 0x3d6b6b72 ata_base_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x3dda1035 sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id
+EXPORT_SYMBOL_GPL vmlinux 0x3dde3c26 pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0x3e0cf878 pci_configure_slot
+EXPORT_SYMBOL_GPL vmlinux 0x3ea9fbca __inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler
+EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register
+EXPORT_SYMBOL_GPL vmlinux 0x3f25c038 tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0x3f55e0f5 inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x3f9a1fcd regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0x3ff86c80 scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x400c919c skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0x4034e642 disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x4057884e usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0x409b6158 inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0x40a52873 crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL vmlinux 0x40e9585f regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x411b25f9 ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x41308995 pm_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x41631eea cpufreq_cpu_get
+EXPORT_SYMBOL_GPL vmlinux 0x41ee0281 unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x41f0e7d9 ata_sff_data_xfer
+EXPORT_SYMBOL_GPL vmlinux 0x42007d24 ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0x42012489 __mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x4227f1ed unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done
+EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped
+EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active
+EXPORT_SYMBOL_GPL vmlinux 0x42838092 sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x4284f26e scsi_dh_detach
+EXPORT_SYMBOL_GPL vmlinux 0x42b49fac usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0x42eee679 stop_machine
+EXPORT_SYMBOL_GPL vmlinux 0x4323f9b0 sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x43499a39 cpufreq_cpu_put
+EXPORT_SYMBOL_GPL vmlinux 0x4398c55b fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x43a7f7cd inotify_rm_watch
+EXPORT_SYMBOL_GPL vmlinux 0x43abee23 input_ff_erase
+EXPORT_SYMBOL_GPL vmlinux 0x43bc7fd0 ata_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0x43ce5048 __module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x43dd1a7d cpufreq_frequency_table_target
+EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x44733b97 __trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x44abf55c spi_async
+EXPORT_SYMBOL_GPL vmlinux 0x44fc3841 led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0x4509ebc2 dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0x4534a985 class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state
+EXPORT_SYMBOL_GPL vmlinux 0x456a4530 udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list
+EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page
+EXPORT_SYMBOL_GPL vmlinux 0x45ef7393 pm_runtime_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data
+EXPORT_SYMBOL_GPL vmlinux 0x4616b606 ab8500_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x46464f92 __class_create
+EXPORT_SYMBOL_GPL vmlinux 0x4648d507 pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x4675bd25 hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x47033807 sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0x471218e5 xenbus_bind_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x471e8a98 perf_arch_fetch_caller_regs
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x473c6e67 spi_write_then_read
+EXPORT_SYMBOL_GPL vmlinux 0x47709d6c vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0x478bbdb2 inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x47c6a661 user_match
+EXPORT_SYMBOL_GPL vmlinux 0x481d0672 crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x488af1f1 wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x488fb334 ata_sff_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size
+EXPORT_SYMBOL_GPL vmlinux 0x48a97e2d ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x48aeef6c pci_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x48bd5acb cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL vmlinux 0x498741c6 cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x498a9791 ata_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue
+EXPORT_SYMBOL_GPL vmlinux 0x49c4cb12 usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0x4a4dd2c9 sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x4a4f3a7b wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x4a6aa2fc pci_enable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0x4a7bb187 pm_runtime_allow
+EXPORT_SYMBOL_GPL vmlinux 0x4a7f1368 ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0x4a8d7e5d __crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x4ab67da6 crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x4ae5d487 driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x4b20759a pciserial_init_ports
+EXPORT_SYMBOL_GPL vmlinux 0x4b9caaeb xenbus_free_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x4bbcae2c sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4c185cef inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c96112c anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0x4cb2342a dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0x4cf3bf2b proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x4cf86449 sata_pmp_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x4d26d41e skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x4d9117db ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0x4dacbbad scsi_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x4deaee17 tc35892_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x4e252b31 init_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x4e4e77ff scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x4eb729f1 platform_get_resource_byname
+EXPORT_SYMBOL_GPL vmlinux 0x4ef05e8a sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x4f025b2e generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x4f2dd439 inet_diag_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4f7092c0 ata_sff_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x4f9194f6 rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0x4fba7b53 ata_sff_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device
+EXPORT_SYMBOL_GPL vmlinux 0x4fcd542a __sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal
+EXPORT_SYMBOL_GPL vmlinux 0x4fe9cb60 xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0x50314050 debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0x50572505 simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0x5073c31b sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x5093e8b6 raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x509933bc devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0x509ad84c i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x50a7587b xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0x50b319ce cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0x50b6d765 crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine
+EXPORT_SYMBOL_GPL vmlinux 0x50d85cfa agp_remove_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched
+EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x50ff737a pm_generic_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x5133b013 adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x513d674a usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq
+EXPORT_SYMBOL_GPL vmlinux 0x519648ce regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0x51bcf22d usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0x51d5f54c fib_rules_cleanup_ops
+EXPORT_SYMBOL_GPL vmlinux 0x51fa496d handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0x520543ea pci_dev_run_wake
+EXPORT_SYMBOL_GPL vmlinux 0x521bc4ad xenbus_unmap_ring_vfree
+EXPORT_SYMBOL_GPL vmlinux 0x524fed7f ata_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x5286d980 class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0x52b3325e skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0x52e5bec7 sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0x52f89822 ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0x530dc399 ata_host_resume
+EXPORT_SYMBOL_GPL vmlinux 0x530fe1f3 bus_register
+EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x534da96a pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0x534f9ce2 ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53aabfba crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x53c45ea6 pci_disable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x53d0ad47 pm_generic_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x541dcea2 crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0x54202371 bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0x54417e98 pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x5472ce26 ring_buffer_record_enable
+EXPORT_SYMBOL_GPL vmlinux 0x548acd28 wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x548c10e5 usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0x548db6ad pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54bb02e2 devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x54fe8727 da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0x552cd2fa wm8350_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x554971d9 ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features
+EXPORT_SYMBOL_GPL vmlinux 0x55c684c4 inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x561c634a wmi_evaluate_method
+EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status
+EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable
+EXPORT_SYMBOL_GPL vmlinux 0x563c3d60 spi_register_master
+EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x5645d5f0 seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after
+EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen
+EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk
+EXPORT_SYMBOL_GPL vmlinux 0x56d7f75e crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x56fd9a30 dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL vmlinux 0x5722b8f2 get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0x572b843b css_id
+EXPORT_SYMBOL_GPL vmlinux 0x5745abac regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists
+EXPORT_SYMBOL_GPL vmlinux 0x57968b35 ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x580d8705 srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x584e0ece put_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x58938337 platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0x5902f1c3 disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0x59049f89 mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0x590884d7 rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0x592c3e8a relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL vmlinux 0x594c88f5 ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x5970e340 kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x59a94e08 sync_page_io
+EXPORT_SYMBOL_GPL vmlinux 0x59e6cd07 __rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x5a48fba2 disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5a8f245d crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x5abd6048 register_virtio_driver
+EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x5af0583a acpi_smbus_read
+EXPORT_SYMBOL_GPL vmlinux 0x5affd054 task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x5b057dbc dm_rh_get_state
+EXPORT_SYMBOL_GPL vmlinux 0x5b435139 unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x5b69f210 hvc_poll
+EXPORT_SYMBOL_GPL vmlinux 0x5b71bd2f crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x5baf3be4 gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5c11ed89 virtqueue_kick
+EXPORT_SYMBOL_GPL vmlinux 0x5c25b5f3 scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x5cdb5211 blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0x5cf26d75 fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0x5cfa0b19 usb_hc_died
+EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table
+EXPORT_SYMBOL_GPL vmlinux 0x5d14b049 led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback
+EXPORT_SYMBOL_GPL vmlinux 0x5d4a5a1f platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x5d5c0483 shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5ddf2688 crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x5de8bf92 tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0x5e1833bf sdio_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x5e550562 crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x5e64898f shake_page
+EXPORT_SYMBOL_GPL vmlinux 0x5e668745 virtqueue_enable_cb
+EXPORT_SYMBOL_GPL vmlinux 0x5e950dce get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0x5ec987c3 blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0x5edbbc17 __inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable
+EXPORT_SYMBOL_GPL vmlinux 0x5f52d135 ata_sff_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0x5f5ad4ec sdio_release_irq
+EXPORT_SYMBOL_GPL vmlinux 0x5f785b8f usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0x5fc3e9ff vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x5ff890e9 device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0x60559c62 kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x6057e142 usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops
+EXPORT_SYMBOL_GPL vmlinux 0x60ebf985 acpi_processor_ffh_cstate_enter
+EXPORT_SYMBOL_GPL vmlinux 0x60ec40cc get_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x61667785 raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check
+EXPORT_SYMBOL_GPL vmlinux 0x61bf2dfc put_device
+EXPORT_SYMBOL_GPL vmlinux 0x61e9a973 cpufreq_get_measured_perf
+EXPORT_SYMBOL_GPL vmlinux 0x621ffdb7 sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x626936ff regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep
+EXPORT_SYMBOL_GPL vmlinux 0x62a77787 proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0x62ce93af __create_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0x62d88a93 tty_put_char
+EXPORT_SYMBOL_GPL vmlinux 0x63015cbf sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0x63133b7c transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL vmlinux 0x6399ff66 __ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap
+EXPORT_SYMBOL_GPL vmlinux 0x642c9fd7 platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0x644fe160 xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0x645eb13b bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x6465e429 xenbus_alloc_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x6469f7ba debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x647c6962 sdio_writesb
+EXPORT_SYMBOL_GPL vmlinux 0x64a02d1b crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x64a9e254 scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0x64d3fb6d tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0x64e8f5b5 usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0x651b8e07 cpuidle_get_driver
+EXPORT_SYMBOL_GPL vmlinux 0x6520d4fe ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq
+EXPORT_SYMBOL_GPL vmlinux 0x65723727 regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x658569f6 trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0x659edd9d crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65dd5563 ata_sff_check_status
+EXPORT_SYMBOL_GPL vmlinux 0x65e20a1c dev_attr_em_message_type
+EXPORT_SYMBOL_GPL vmlinux 0x65e9a1c9 ata_bmdma_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x662d60ce ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66c7ede2 hwmon_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x66ef1cdf usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0x670c5bef hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0x6733e23f sdio_f0_readb
+EXPORT_SYMBOL_GPL vmlinux 0x6753d486 dm_region_hash_create
+EXPORT_SYMBOL_GPL vmlinux 0x677ebbb9 elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x67a0f16d blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0x68024063 get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x68b12e73 rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x6925a382 init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0x69785b12 dm_rh_delay
+EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse
+EXPORT_SYMBOL_GPL vmlinux 0x69c470c7 pm_generic_restore
+EXPORT_SYMBOL_GPL vmlinux 0x69d57faf ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config
+EXPORT_SYMBOL_GPL vmlinux 0x6a3ea8f3 dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x6a6932f8 platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start
+EXPORT_SYMBOL_GPL vmlinux 0x6a891f71 xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid
+EXPORT_SYMBOL_GPL vmlinux 0x6af00b39 regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b368d4a devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0x6b3e7f84 dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low
+EXPORT_SYMBOL_GPL vmlinux 0x6b9178b3 xenbus_strstate
+EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x6b957608 tty_find_polling_driver
+EXPORT_SYMBOL_GPL vmlinux 0x6bab1f33 da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x6bc653bb ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x6c0b4e08 sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6c93efca ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x6cb8d0ed usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x6cb9cf86 aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x6d19fa96 wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d3c3f73 ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x6d6a3aa3 usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x6d902ee8 ata_host_init
+EXPORT_SYMBOL_GPL vmlinux 0x6d9a7951 dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL vmlinux 0x6db64cfc cpci_hp_register_bus
+EXPORT_SYMBOL_GPL vmlinux 0x6dc4dc76 driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x6dec80f5 fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0x6e0b280e pci_num_vf
+EXPORT_SYMBOL_GPL vmlinux 0x6e195a0b wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref
+EXPORT_SYMBOL_GPL vmlinux 0x6e6404e9 dm_kill_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x6ebf460f ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x6f08c18c fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x6f0ea5e3 ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL vmlinux 0x6f3c216f debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0x6f4f75cb invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0x6f7db3bc dm_rh_inc_pending
+EXPORT_SYMBOL_GPL vmlinux 0x6f9f1ef1 tty_mode_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x6fada7b7 inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x6fb8a8fa perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0x6fd9de07 noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x6fde0c0e pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x700e3969 crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x7033c67c wm831x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts
+EXPORT_SYMBOL_GPL vmlinux 0x7047dc21 crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x704cc9c9 crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr
+EXPORT_SYMBOL_GPL vmlinux 0x707d3231 simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0x70ad3fc6 remove_memory
+EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem
+EXPORT_SYMBOL_GPL vmlinux 0x70d840b5 sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0x7137f5bb scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x716ceee9 ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0x7180e7ce pciserial_suspend_ports
+EXPORT_SYMBOL_GPL vmlinux 0x71e972e7 crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0x72180161 register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0x725d940e ata_cable_unknown
+EXPORT_SYMBOL_GPL vmlinux 0x72641893 ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x72aca472 user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x72d422fa inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x731433ee unregister_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type
+EXPORT_SYMBOL_GPL vmlinux 0x734418f3 register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x73710421 sata_pmp_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x737c00b2 skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0x739ad5e6 scsi_dh_attach
+EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports
+EXPORT_SYMBOL_GPL vmlinux 0x73c9b256 cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x73f3c3b6 transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0x742a3914 crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini
+EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read
+EXPORT_SYMBOL_GPL vmlinux 0x74973545 rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x74a98674 bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register
+EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors
+EXPORT_SYMBOL_GPL vmlinux 0x74e48518 crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm
+EXPORT_SYMBOL_GPL vmlinux 0x7581c9db sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x75973691 ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x759e8798 tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0x75a7a8ff sdio_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x75db3c9d usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x75ec33ef inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x75ece065 regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x7620c1db platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0x7652a70f sdio_enable_func
+EXPORT_SYMBOL_GPL vmlinux 0x766e1ec0 ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x76796eb5 aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x768e90f1 hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL vmlinux 0x769e8cbe d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x770a011e sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x774fe0ac xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0x7753889e crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x77d0c4f8 uart_console_write
+EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0x77f3ebb1 devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x780f80cb erst_read_next
+EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar
+EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x794a177f ata_sff_exec_command
+EXPORT_SYMBOL_GPL vmlinux 0x79a1a554 driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x79f8d3eb pci_hp_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info
+EXPORT_SYMBOL_GPL vmlinux 0x7a639048 transport_configure_device
+EXPORT_SYMBOL_GPL vmlinux 0x7a865465 device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0x7a8b5956 ata_sff_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x7a986cfd usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0x7ab3f351 ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x7acaca64 usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL vmlinux 0x7ad37aed rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr
+EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set
+EXPORT_SYMBOL_GPL vmlinux 0x7b4ea38c sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x7b999b23 class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x7bb1b29a register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x7bf9bac8 pci_restore_msi_state
+EXPORT_SYMBOL_GPL vmlinux 0x7bfae850 spi_alloc_master
+EXPORT_SYMBOL_GPL vmlinux 0x7c618ce0 wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0x7c80ee14 __xenbus_register_frontend
+EXPORT_SYMBOL_GPL vmlinux 0x7d270b4a driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq
+EXPORT_SYMBOL_GPL vmlinux 0x7d684f50 cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL vmlinux 0x7d6fe27b bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values
+EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7e06d0fb adp5520_read
+EXPORT_SYMBOL_GPL vmlinux 0x7e08d72c inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e23429b acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e4168ee crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x7e5e301f unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7e8fde33 vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check
+EXPORT_SYMBOL_GPL vmlinux 0x7ec8ba1f dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0x7ef7218b scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x7f0f3132 dm_rh_flush
+EXPORT_SYMBOL_GPL vmlinux 0x7f141b43 __rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x7f944192 crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0x7f9792d1 xenbus_grant_ring
+EXPORT_SYMBOL_GPL vmlinux 0x7fe3486e inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ff8d65d usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x8015e805 ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x80ca2ed3 spi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x81808db1 unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0x81a13926 crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x81a408be dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL vmlinux 0x81f3ebf9 sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8200e6f0 regulator_disable
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x82b25441 scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write
+EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export
+EXPORT_SYMBOL_GPL vmlinux 0x82f7f0b5 ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x83281a95 mmu_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x832f053c fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x83774cee vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0x83d3369e tracepoint_iter_start
+EXPORT_SYMBOL_GPL vmlinux 0x83f01e0c fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x84c10df5 ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x8517e64a blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x85318c6d ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL vmlinux 0x853522cd fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag
+EXPORT_SYMBOL_GPL vmlinux 0x854c24e8 kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x85998ab1 tc35892_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh
+EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq
+EXPORT_SYMBOL_GPL vmlinux 0x8603bbf2 cpufreq_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x865f0020 fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq
+EXPORT_SYMBOL_GPL vmlinux 0x867c684a setup_APIC_eilvt_ibs
+EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x8689ab3c sata_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x868bddba sata_sff_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x8695f853 acpi_smbus_write
+EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x86a89165 ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x86c7b943 ata_std_qc_defer
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error
+EXPORT_SYMBOL_GPL vmlinux 0x876d29f1 wmi_get_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm
+EXPORT_SYMBOL_GPL vmlinux 0x87e9e1af relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active
+EXPORT_SYMBOL_GPL vmlinux 0x88b80cab cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x89027895 sdio_writeb
+EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x893e5486 dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x8951d89f device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init
+EXPORT_SYMBOL_GPL vmlinux 0x89a32461 raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0x89be1205 bd_release_from_disk
+EXPORT_SYMBOL_GPL vmlinux 0x89d9cf61 ata_eh_freeze_port
+EXPORT_SYMBOL_GPL vmlinux 0x89eb885d tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0x8a0f1e99 srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8a4e63e6 swiotlb_map_page
+EXPORT_SYMBOL_GPL vmlinux 0x8a71f0e9 tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0x8a776ce7 sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x8aa03787 page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0x8ab371e3 unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x8ab9792d ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL vmlinux 0x8adda4e0 ata_dev_disable
+EXPORT_SYMBOL_GPL vmlinux 0x8b15de38 usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x8b39cf9d unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis
+EXPORT_SYMBOL_GPL vmlinux 0x8b7f9a1b virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL vmlinux 0x8b811a5c inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address
+EXPORT_SYMBOL_GPL vmlinux 0x8bc964e0 inotify_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x8bcc3206 pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8bfe22ea eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start
+EXPORT_SYMBOL_GPL vmlinux 0x8c1605f3 debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0x8c172404 synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x8c50d6fb dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0x8c77e083 map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x8cb19502 rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x8ce13f4c sata_link_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x8ce28f6f cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x8d157ca8 rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x8d6a41dc eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x8d6fc117 wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0x8d746618 inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0x8d774b6f dm_register_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0x8e15e276 generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0x8ecd8393 class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x8ee30251 inotify_inode_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x8f0252aa pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x8f3d398e pm_generic_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x8f559b4f cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x8f671211 cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0x8f6733d5 fuse_request_send
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8f9ee0d0 ata_sff_irq_on
+EXPORT_SYMBOL_GPL vmlinux 0x8fa2b33c adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x9006464d page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL vmlinux 0x9013e3f5 inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0x90603b0a ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0x9081be09 ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90d9aacb rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs
+EXPORT_SYMBOL_GPL vmlinux 0x910b744c usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x910eac05 show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x916be72f mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x9197dd4b filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array
+EXPORT_SYMBOL_GPL vmlinux 0x91d733ee power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0x922f3b03 rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x924a9f0c inotify_find_update_watch
+EXPORT_SYMBOL_GPL vmlinux 0x924aae92 single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x92625c20 inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL vmlinux 0x92a1910c smp_call_function_any
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9305b366 debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x93260715 register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x93425a58 crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x9352e33a elv_register
+EXPORT_SYMBOL_GPL vmlinux 0x9389f058 blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0x93ab6de4 devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x93bd7d54 ip6_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x93efea6e usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x942b6c31 unregister_virtio_device
+EXPORT_SYMBOL_GPL vmlinux 0x9474f450 __put_net
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources
+EXPORT_SYMBOL_GPL vmlinux 0x94da5b4b usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0x94e307e0 pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x94e5e3e3 swiotlb_unmap_page
+EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x952db40b queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x952dc609 ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0x95332bf8 ata_sas_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x953b08b9 class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x954c239c pm_schedule_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x954d0899 devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0x9563d8ed platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x95b65302 sysdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x95e26c7b ata_host_detach
+EXPORT_SYMBOL_GPL vmlinux 0x95ec49c6 find_module
+EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x964d5c39 acpi_os_map_memory
+EXPORT_SYMBOL_GPL vmlinux 0x965b92b3 blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key
+EXPORT_SYMBOL_GPL vmlinux 0x968c6546 ata_host_start
+EXPORT_SYMBOL_GPL vmlinux 0x96bfd034 __sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0x96c59a74 ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9712fc66 platform_device_register_data
+EXPORT_SYMBOL_GPL vmlinux 0x97166836 i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x973aabc5 wm8994_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x976116c4 sdio_readsb
+EXPORT_SYMBOL_GPL vmlinux 0x97947aa3 rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x97a35ac0 __pm_runtime_get
+EXPORT_SYMBOL_GPL vmlinux 0x98010319 file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick
+EXPORT_SYMBOL_GPL vmlinux 0x98b82bd3 pci_sriov_migration
+EXPORT_SYMBOL_GPL vmlinux 0x98c031ef inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x99081e80 usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0x9923b7fd firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x993c7e6f usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on
+EXPORT_SYMBOL_GPL vmlinux 0x99b24170 __pm_runtime_disable
+EXPORT_SYMBOL_GPL vmlinux 0x99c711a4 debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0x99e4d1f3 ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL vmlinux 0x99eee686 rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a195bc6 ata_link_online
+EXPORT_SYMBOL_GPL vmlinux 0x9a209891 tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0x9a341c68 sdio_disable_func
+EXPORT_SYMBOL_GPL vmlinux 0x9a3c6a31 trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x9a8eea4a sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL vmlinux 0x9a8ff4bc led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0x9aa3e96f css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x9ad97c35 ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0x9aeb28f7 inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0x9af97897 tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9bb2de34 ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0x9c192cef ata_link_abort
+EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid
+EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x9c39eec2 tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x9c607916 crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9cbb95cb sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch
+EXPORT_SYMBOL_GPL vmlinux 0x9d0eb311 usb_driver_set_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x9d36531d ring_buffer_overruns
+EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0x9d58587d usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x9d61f66b __hvc_resize
+EXPORT_SYMBOL_GPL vmlinux 0x9d8c1173 init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x9da3aeb4 platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x9dd65f7e dev_attr_unload_heads
+EXPORT_SYMBOL_GPL vmlinux 0x9de655fa hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x9e283af3 dm_rh_get_region_key
+EXPORT_SYMBOL_GPL vmlinux 0x9e378dd1 register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x9e426675 disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x9f03b0cc sdio_writel
+EXPORT_SYMBOL_GPL vmlinux 0x9f195879 ata_bmdma_status
+EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain
+EXPORT_SYMBOL_GPL vmlinux 0x9f49fdc4 regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9f883bc9 crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x9f89648f relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc
+EXPORT_SYMBOL_GPL vmlinux 0x9fbe10f0 ata_pci_remove_one
+EXPORT_SYMBOL_GPL vmlinux 0x9fc302b0 tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xa00bcaa3 debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0xa0152da1 inet_diag_register
+EXPORT_SYMBOL_GPL vmlinux 0xa01b9c94 fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0xa07746c1 crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0xa07d781f scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0xa0875c45 __inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0xa0b7ba8e seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0xa0bb04f1 xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg
+EXPORT_SYMBOL_GPL vmlinux 0xa0d93bcd put_pid
+EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xa12707f9 pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0xa13b1ab9 zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0xa15ffb26 raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0xa16970ae fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa1b1c66f ata_bmdma_start
+EXPORT_SYMBOL_GPL vmlinux 0xa20cdbe3 rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0xa230dd2d setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0xa278b64c dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0xa2bb0e30 cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL vmlinux 0xa2d3e7e3 ata_sff_softreset
+EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4
+EXPORT_SYMBOL_GPL vmlinux 0xa301a0f4 skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm
+EXPORT_SYMBOL_GPL vmlinux 0xa35e969b ata_std_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa441ecdf sdio_release_host
+EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit
+EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx
+EXPORT_SYMBOL_GPL vmlinux 0xa4a412e4 scsi_dh_activate
+EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0xa4b5ee00 regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xa4be5f29 ipv6_dup_options
+EXPORT_SYMBOL_GPL vmlinux 0xa4c73ce6 __css_put
+EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore
+EXPORT_SYMBOL_GPL vmlinux 0xa4ed60ac sysdev_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xa4f89c4e ipv6_opt_accepted
+EXPORT_SYMBOL_GPL vmlinux 0xa51ac6d4 scsi_target_unblock
+EXPORT_SYMBOL_GPL vmlinux 0xa55da98c __pci_hp_register
+EXPORT_SYMBOL_GPL vmlinux 0xa571bab2 platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xa5abc0bb virtqueue_add_buf_gfp
+EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa6078876 regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0xa60ad9ac usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa63e3f9b acpi_smbus_unregister_callback
+EXPORT_SYMBOL_GPL vmlinux 0xa68aac3d pci_find_next_capability
+EXPORT_SYMBOL_GPL vmlinux 0xa691279e sdio_claim_irq
+EXPORT_SYMBOL_GPL vmlinux 0xa6ab3509 ata_sas_port_start
+EXPORT_SYMBOL_GPL vmlinux 0xa6ae3f92 dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL vmlinux 0xa6e07756 dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0xa6fb015a sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0xa7380b59 sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xa7410cc5 input_ff_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xa78eb14c fuse_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0xa7a8e0b8 usb_create_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xa7b8601f crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0xa7ca9120 spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0xa7d62019 hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xa80e2886 usb_ifnum_to_if
+EXPORT_SYMBOL_GPL vmlinux 0xa82a0d59 usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll
+EXPORT_SYMBOL_GPL vmlinux 0xa8b14f54 hwpoison_filter
+EXPORT_SYMBOL_GPL vmlinux 0xa8cc5b58 device_find_child
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit
+EXPORT_SYMBOL_GPL vmlinux 0xa9758712 fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xa988bd33 usb_enable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0xa98d044b part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9c963a8 usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xa9d88c46 __cpufreq_driver_getavg
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xaa00e74d vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0xaa090a4f pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xaa121800 tasklet_hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xaa381ba8 ata_sff_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0xaa7ab791 crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0xaa7cccda ata_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock
+EXPORT_SYMBOL_GPL vmlinux 0xaacf2ddb usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback
+EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run
+EXPORT_SYMBOL_GPL vmlinux 0xab18f0cf br_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0xab27b7ad blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xab283d6c xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0xab42ade1 wm8350_gpio_config
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab6d0dcd usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0xaba5b5d7 vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0xabc097b6 pm_generic_resume
+EXPORT_SYMBOL_GPL vmlinux 0xabdcf653 virtqueue_get_buf
+EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xabf44547 device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0xac1a82d0 usb_get_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xac348ac6 __dma_request_channel
+EXPORT_SYMBOL_GPL vmlinux 0xac698c09 pci_bus_resource_n
+EXPORT_SYMBOL_GPL vmlinux 0xac6d7920 ata_eh_qc_retry
+EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq
+EXPORT_SYMBOL_GPL vmlinux 0xacbef87f dm_rh_get_region_size
+EXPORT_SYMBOL_GPL vmlinux 0xacc19485 ibft_addr
+EXPORT_SYMBOL_GPL vmlinux 0xacc43222 usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xad005e71 __ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf
+EXPORT_SYMBOL_GPL vmlinux 0xad4a70dd xenbus_dev_error
+EXPORT_SYMBOL_GPL vmlinux 0xad593969 scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad800128 sdio_set_block_size
+EXPORT_SYMBOL_GPL vmlinux 0xad94c33d wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xad951fbc drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module
+EXPORT_SYMBOL_GPL vmlinux 0xadc904de usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae2009fa usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xae487aac __inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0xae53f4e2 tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0xae571a2b blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xae7ec35d usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xae948cf6 rtc_class_close
+EXPORT_SYMBOL_GPL vmlinux 0xaea6b496 simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0xaec55551 pm_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xaecb6b56 devres_add
+EXPORT_SYMBOL_GPL vmlinux 0xaf30fca4 fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0xaf3bb2a0 ata_port_abort
+EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xaf46d4b0 tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0xafabdd23 security_inode_setattr
+EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device
+EXPORT_SYMBOL_GPL vmlinux 0xb0130213 __fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0xb03bbf2c platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xb05e90fa hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0xb06c1481 regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0xb0789718 alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa531c ata_pci_device_resume
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xb0bfc686 hvc_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xb0c3bd09 transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0xb10690f8 device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send
+EXPORT_SYMBOL_GPL vmlinux 0xb11099d5 xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0xb136e911 sdio_writew
+EXPORT_SYMBOL_GPL vmlinux 0xb17e14ec xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb1c882df __blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xb1d25cc6 print_context_stack
+EXPORT_SYMBOL_GPL vmlinux 0xb1d79f83 md_allow_write
+EXPORT_SYMBOL_GPL vmlinux 0xb262d0ac register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xb27657fa debugfs_create_x64
+EXPORT_SYMBOL_GPL vmlinux 0xb2994f50 dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0xb2aad9ad rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0xb2efd7ed user_describe
+EXPORT_SYMBOL_GPL vmlinux 0xb30c6d5e hrtimer_start
+EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init
+EXPORT_SYMBOL_GPL vmlinux 0xb329c6e7 power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0xb3375000 crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0xb352ddeb agp_add_bridge
+EXPORT_SYMBOL_GPL vmlinux 0xb3721fed pci_block_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0xb39466b7 usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0xb3a5baf3 pci_hp_create_module_link
+EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write
+EXPORT_SYMBOL_GPL vmlinux 0xb3fa3903 platform_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xb4359f1d adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xb493b741 ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected
+EXPORT_SYMBOL_GPL vmlinux 0xb4ed6aa4 vring_transport_features
+EXPORT_SYMBOL_GPL vmlinux 0xb4f14b60 free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xb4fe2bf1 wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state
+EXPORT_SYMBOL_GPL vmlinux 0xb530fe9d dm_rh_dirty_log
+EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait
+EXPORT_SYMBOL_GPL vmlinux 0xb544ddfb device_move
+EXPORT_SYMBOL_GPL vmlinux 0xb565545e led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler
+EXPORT_SYMBOL_GPL vmlinux 0xb5c665d3 ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL vmlinux 0xb5c98ac0 cpufreq_frequency_table_cpuinfo
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb612444d snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xb633c6b0 fsnotify
+EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec
+EXPORT_SYMBOL_GPL vmlinux 0xb663c472 sysfs_notify_dirent
+EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string
+EXPORT_SYMBOL_GPL vmlinux 0xb6c5b402 sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse
+EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb74ee06c regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0xb781d6c2 raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xb784551b mmput
+EXPORT_SYMBOL_GPL vmlinux 0xb7bff889 ata_acpi_stm
+EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time
+EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll
+EXPORT_SYMBOL_GPL vmlinux 0xb7f4e553 erst_read
+EXPORT_SYMBOL_GPL vmlinux 0xb7ff9bf1 crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xb847b988 ata_sas_port_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xb84b0a32 security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0xb85ee053 sysfs_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xb88717a1 sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xb8b9a7c2 ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xb8feb924 usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0xb9054aa7 cpci_hp_register_controller
+EXPORT_SYMBOL_GPL vmlinux 0xb94cac24 tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0xb94db510 register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xb96186dc sata_scr_valid
+EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read
+EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0xba46b657 ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL vmlinux 0xba546685 xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0xbaa0d47d __srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks
+EXPORT_SYMBOL_GPL vmlinux 0xbb12c576 cpuidle_disable_device
+EXPORT_SYMBOL_GPL vmlinux 0xbb1a9aa0 inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xbb60801c driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xbb8cb89d ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info
+EXPORT_SYMBOL_GPL vmlinux 0xbbeb3b83 ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xbc122b65 usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0xbc2f21c7 ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0xbc4d8285 free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0xbc5f9c50 driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbc84f0bb tc35892_block_write
+EXPORT_SYMBOL_GPL vmlinux 0xbcf0a134 kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xbd6e96fd n_tty_inherit_ops
+EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse
+EXPORT_SYMBOL_GPL vmlinux 0xbde121b8 srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbe022243 ata_host_register
+EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime
+EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xbe53292c inotify_init
+EXPORT_SYMBOL_GPL vmlinux 0xbe5b6d22 gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0xbe76d5ea tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xbead4956 kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0xbec4deb3 ab8500_read
+EXPORT_SYMBOL_GPL vmlinux 0xbed8207a usb_match_id
+EXPORT_SYMBOL_GPL vmlinux 0xbf12848f wm8994_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xbf57d1e5 blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0xc03f63b3 fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xc05549ea vring_new_virtqueue
+EXPORT_SYMBOL_GPL vmlinux 0xc0769321 nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0xc0bbacf0 ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time
+EXPORT_SYMBOL_GPL vmlinux 0xc0c98ba9 pci_ioremap_bar
+EXPORT_SYMBOL_GPL vmlinux 0xc0df41fb perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0xc0ee26d6 pm_generic_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0xc0eeee5e cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar
+EXPORT_SYMBOL_GPL vmlinux 0xc1456533 debugfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc197eced crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc23a11a0 rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0xc26d3b63 sata_async_notification
+EXPORT_SYMBOL_GPL vmlinux 0xc2cf0163 pci_scan_child_bus
+EXPORT_SYMBOL_GPL vmlinux 0xc2d922a1 inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable
+EXPORT_SYMBOL_GPL vmlinux 0xc2e20fa2 relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0xc321972d uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0xc32481b8 ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL vmlinux 0xc325bb9c mce_chrdev_ops
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc3a4f2f5 dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0xc3de15bd ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xc3e47ca4 inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0xc3e5f29b smp_ops
+EXPORT_SYMBOL_GPL vmlinux 0xc4034caa enable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xc4136ded fuse_direct_io
+EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long
+EXPORT_SYMBOL_GPL vmlinux 0xc42f2f94 xenbus_read_driver_state
+EXPORT_SYMBOL_GPL vmlinux 0xc43f6119 wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0xc451867b usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL vmlinux 0xc45e6a98 input_ff_event
+EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string
+EXPORT_SYMBOL_GPL vmlinux 0xc48e67b1 device_add
+EXPORT_SYMBOL_GPL vmlinux 0xc4ce6189 idle_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask
+EXPORT_SYMBOL_GPL vmlinux 0xc53518bf anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xc54169fa inet6_destroy_sock
+EXPORT_SYMBOL_GPL vmlinux 0xc5b6f41a page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0xc5e5af64 unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc5fe70c4 rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc650a370 device_rename
+EXPORT_SYMBOL_GPL vmlinux 0xc6554cc9 relay_close
+EXPORT_SYMBOL_GPL vmlinux 0xc68c3921 dm_put
+EXPORT_SYMBOL_GPL vmlinux 0xc68eb497 power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xc6ac8912 ata_port_desc
+EXPORT_SYMBOL_GPL vmlinux 0xc6af18c5 invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0xc6b5314b __pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xc6bbcb66 __scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0xc6e99834 find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xc7bd3426 preempt_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc7df1606 kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xc7e05181 find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0xc836bea5 ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xc8576a8f platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0xc85f9715 inotify_remove_watch_locked
+EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain
+EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event
+EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc8f5006a ata_pci_device_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource
+EXPORT_SYMBOL_GPL vmlinux 0xc946d76f blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0xc94bad32 usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc95496dd pci_create_slot
+EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist
+EXPORT_SYMBOL_GPL vmlinux 0xc9a060ea ata_sff_pause
+EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xca2c0f22 modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xca5f8265 crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0xca71a7b4 dm_rh_update_states
+EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcb0b9b9f i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL vmlinux 0xcb6bb0ba __root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xcb8d9ca9 ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0xcbc667ae ab8500_write
+EXPORT_SYMBOL_GPL vmlinux 0xcbc7ab33 devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xcbeaecb6 ata_sas_slave_configure
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcbf07c05 sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc25c042 ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xccca15f1 usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL vmlinux 0xcd144335 ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL vmlinux 0xcd1b9d24 tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0xcd1ca2cb iommu_domain_has_cap
+EXPORT_SYMBOL_GPL vmlinux 0xcdb22bc2 unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xcdc20049 regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xcdec283e dm_rh_recovery_start
+EXPORT_SYMBOL_GPL vmlinux 0xce34dc99 synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0xcec624c6 pciserial_remove_ports
+EXPORT_SYMBOL_GPL vmlinux 0xcecb49e9 crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0xcf186d77 shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xcf28f59e rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xcf500156 cpuidle_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0xcf6daa14 usb_autopm_put_interface
+EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback
+EXPORT_SYMBOL_GPL vmlinux 0xcfc30dd4 ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcfe748ff tc35892_block_read
+EXPORT_SYMBOL_GPL vmlinux 0xcff10069 usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL vmlinux 0xd05645a9 inotify_add_watch
+EXPORT_SYMBOL_GPL vmlinux 0xd0646fb6 bd_claim_by_disk
+EXPORT_SYMBOL_GPL vmlinux 0xd07ce9fe crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0xd0b316ab scsi_register_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0xd0be7365 usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd0c70652 __i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0xd0c8397a cpufreq_register_governor
+EXPORT_SYMBOL_GPL vmlinux 0xd1320334 pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd17d7329 dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0xd19fbdea kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xd1c9fd0e blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0xd1fa42b2 crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xd20c2ac4 security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd233d345 shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xd23e4bab device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL vmlinux 0xd23fb1bd __pm_runtime_put
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop
+EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0xd34aaa1d ata_sff_postreset
+EXPORT_SYMBOL_GPL vmlinux 0xd3573027 hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0xd381a338 ata_link_next
+EXPORT_SYMBOL_GPL vmlinux 0xd4051d5d shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xd4e99908 ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL vmlinux 0xd5149fba pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0xd538cf3d dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xd5857922 inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0xd59c8e13 get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0xd59d74fb fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0xd59f4f83 ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0xd5d889d5 usb_string
+EXPORT_SYMBOL_GPL vmlinux 0xd65e6937 eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0xd6a71b8b ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL vmlinux 0xd6d8cc83 usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id
+EXPORT_SYMBOL_GPL vmlinux 0xd6f4f9a3 regulator_put
+EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries
+EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout
+EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd7588263 debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd76c17aa rt_mutex_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd7d020bd device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0xd7f82dc1 usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0xd8021a21 cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xd80cbb0e spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xd8174142 usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0xd8301a7e register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0xd8487a9f class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xd86f6f54 crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xd89cab64 ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xd8a0e070 tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0xd921a4cb __mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0xd93641d1 sata_link_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xd945ba00 crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xd9783446 do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0xd9997f1a user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xd9abd698 dm_rh_region_context
+EXPORT_SYMBOL_GPL vmlinux 0xd9e67f69 sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xd9efb7a1 sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0xda077162 spi_sync
+EXPORT_SYMBOL_GPL vmlinux 0xda0c254c user_read
+EXPORT_SYMBOL_GPL vmlinux 0xda0c6b82 pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL vmlinux 0xda29f8b0 wmi_set_block
+EXPORT_SYMBOL_GPL vmlinux 0xda36eaa0 ata_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0xda393923 led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0xda49b184 usb_disable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0xda52a3f2 proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0xda6d6bad dm_device_name
+EXPORT_SYMBOL_GPL vmlinux 0xdab5b9b4 sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0xdaee52a2 ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xdaf3f20c sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option
+EXPORT_SYMBOL_GPL vmlinux 0xdb03547f netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdb946730 pci_disable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0xdbb25f5e acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL vmlinux 0xdbbe2492 scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0xdc1f8f2e register_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0xdc33332b class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xdc9b9e47 debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0xdcd42666 iommu_unmap
+EXPORT_SYMBOL_GPL vmlinux 0xdd5e472a regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0xdd64dffb lookup_create
+EXPORT_SYMBOL_GPL vmlinux 0xddcc9626 rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0xdde68fb0 rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xde0afd6d find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0xde33f2c6 __remove_pages
+EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain
+EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init
+EXPORT_SYMBOL_GPL vmlinux 0xde50808f device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xde726602 crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xde73ffc1 xenbus_frontend_closed
+EXPORT_SYMBOL_GPL vmlinux 0xde82eeeb rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xdf7d65c4 device_create
+EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name
+EXPORT_SYMBOL_GPL vmlinux 0xe05fe741 fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved
+EXPORT_SYMBOL_GPL vmlinux 0xe08a5bcf __audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xe0d84ffe tracepoint_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xe0f5b0dc xenbus_unmap_ring
+EXPORT_SYMBOL_GPL vmlinux 0xe1419cef acpi_smbus_register_callback
+EXPORT_SYMBOL_GPL vmlinux 0xe14984dc attribute_container_find_class_device
+EXPORT_SYMBOL_GPL vmlinux 0xe14a087d __blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xe14d031b usb_store_new_id
+EXPORT_SYMBOL_GPL vmlinux 0xe17a4ca4 module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0xe1e3efec regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xe2230270 securityfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xe2542d65 disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xe269ea99 driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe32d26c5 inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0xe35360f9 usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xe3cfb5b3 add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0xe41843fa unregister_virtio_driver
+EXPORT_SYMBOL_GPL vmlinux 0xe4428977 register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0xe49cde82 class_dev_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register
+EXPORT_SYMBOL_GPL vmlinux 0xe4a35521 ata_sas_port_init
+EXPORT_SYMBOL_GPL vmlinux 0xe4b0932b led_trigger_show
+EXPORT_SYMBOL_GPL vmlinux 0xe4c36dbc skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0xe4c69f31 usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL vmlinux 0xe4d3059a cpuidle_enable_device
+EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges
+EXPORT_SYMBOL_GPL vmlinux 0xe5215a8b rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0xe554eafb dm_rh_dec
+EXPORT_SYMBOL_GPL vmlinux 0xe561b258 transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0xe58151cb attribute_container_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe58b3160 da903x_write
+EXPORT_SYMBOL_GPL vmlinux 0xe5dd07b2 single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0xe5e14a03 pm_runtime_forbid
+EXPORT_SYMBOL_GPL vmlinux 0xe5e4b46a bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0xe5eb8db6 blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0xe5f7d2cd css_depth
+EXPORT_SYMBOL_GPL vmlinux 0xe605c51e pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport
+EXPORT_SYMBOL_GPL vmlinux 0xe630e4fa usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition
+EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe6551fea ata_sff_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xe6705efd blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xe6879035 sdio_f0_writeb
+EXPORT_SYMBOL_GPL vmlinux 0xe6a455ec ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xe6a7c46d sysdev_class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr
+EXPORT_SYMBOL_GPL vmlinux 0xe808ed88 screen_glyph
+EXPORT_SYMBOL_GPL vmlinux 0xe8234753 da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0xe857ac75 __pm_runtime_set_status
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe87f3a5d crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0xe88eea0f ipv6_find_tlv
+EXPORT_SYMBOL_GPL vmlinux 0xe89555dd ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0xe8a3603f dm_rh_start_recovery
+EXPORT_SYMBOL_GPL vmlinux 0xe8f58bbc acpi_bus_trim
+EXPORT_SYMBOL_GPL vmlinux 0xe91e99ca __class_register
+EXPORT_SYMBOL_GPL vmlinux 0xe928fd6d platform_device_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe95d6dd4 usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xe993dfc7 pci_find_ext_capability
+EXPORT_SYMBOL_GPL vmlinux 0xe9946feb ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xe9d34ed8 da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea296e6e xenbus_map_ring
+EXPORT_SYMBOL_GPL vmlinux 0xea3f5a45 inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xea43de41 ata_bmdma_setup
+EXPORT_SYMBOL_GPL vmlinux 0xea95964f inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeb0bac90 class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xeb7e1c62 usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0xeb85ced3 __srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0xeb8ab877 wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xeba753a8 device_create_vargs
+EXPORT_SYMBOL_GPL vmlinux 0xebe44e5e hypervisor_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del
+EXPORT_SYMBOL_GPL vmlinux 0xec274da7 platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0xec3bab4c ata_slave_link_init
+EXPORT_SYMBOL_GPL vmlinux 0xec6389db lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0xec742d3a remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0xec8a23c8 fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0xec9eea83 driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xeca979a0 da903x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xecab9178 ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0xecaed1e8 generic_subsys_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0xecc39493 dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0xed34d849 ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL vmlinux 0xed52121a __lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0xed5f760a dm_get_rq_mapinfo
+EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xede168a6 register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xede4f8e2 crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0xee17b35f destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0xee405c1d xenbus_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xee91e00f get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0xeeb7eee5 ata_host_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xeecc614c sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL vmlinux 0xef1a6c40 usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request
+EXPORT_SYMBOL_GPL vmlinux 0xef4c8f74 dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0xef642317 generic_fh_to_parent
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xef6fb629 crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xefa8e35b scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0xefacbb0d kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xefb9035a sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0xefcef991 ata_std_bios_param
+EXPORT_SYMBOL_GPL vmlinux 0xefd76dd1 set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xefe2346d dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL vmlinux 0xf008ac31 crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xf02b8fb9 inotify_rm_wd
+EXPORT_SYMBOL_GPL vmlinux 0xf057d883 device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL vmlinux 0xf07b00b2 ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf0ee5ac2 tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xf152cac6 usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0xf1847fc7 relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0xf1e6a2f8 inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0xf1fe65cb crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf211ee31 ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0xf2a2f814 ata_sff_hsm_move
+EXPORT_SYMBOL_GPL vmlinux 0xf2e0aa50 attribute_container_register
+EXPORT_SYMBOL_GPL vmlinux 0xf2e19c34 driver_find
+EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf395b63e cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL vmlinux 0xf3971964 usb_sg_wait
+EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf3bfe23c xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0xf3dd95d1 inotify_init_watch
+EXPORT_SYMBOL_GPL vmlinux 0xf40ebf65 sysdev_class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xf4614b74 flush_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0xf468998a fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0xf46d4875 regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xf474d34a ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf4a8385f iommu_domain_free
+EXPORT_SYMBOL_GPL vmlinux 0xf4bf626a inode_add_to_lists
+EXPORT_SYMBOL_GPL vmlinux 0xf4c26fb0 usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0xf4f86751 bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0xf5007d93 ata_std_postreset
+EXPORT_SYMBOL_GPL vmlinux 0xf509f6b0 wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0xf518ffb1 blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0xf532558f __add_pages
+EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0xf540c08e relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf5593017 sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xf5838e58 input_ff_create
+EXPORT_SYMBOL_GPL vmlinux 0xf589b247 ata_eh_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf5c286de usb_poison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xf5c2f685 unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0xf5d8ec8e ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0xf5daae96 ip6_sk_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xf613aaaf crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0xf63a37b8 ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id
+EXPORT_SYMBOL_GPL vmlinux 0xf6a15512 pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather
+EXPORT_SYMBOL_GPL vmlinux 0xf70f9e05 acpi_get_pci_dev
+EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xf745d1e6 blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0xf757cbfa regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error
+EXPORT_SYMBOL_GPL vmlinux 0xf7a87a4a platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0xf7b1ae0d __pci_complete_power_transition
+EXPORT_SYMBOL_GPL vmlinux 0xf7befebd ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0xf7e7fa82 get_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf82f4e66 attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0xf849bab8 ata_acpi_gtm
+EXPORT_SYMBOL_GPL vmlinux 0xf85d1a1d crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf868475a print_context_stack_bp
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf8a662de bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0xf8c3b6a2 inotify_dentry_parent_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0xf8d8a6b2 sdio_align_size
+EXPORT_SYMBOL_GPL vmlinux 0xf8e512f8 uhci_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit
+EXPORT_SYMBOL_GPL vmlinux 0xf8fa675c preempt_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0xf90450c2 ata_eh_thaw_port
+EXPORT_SYMBOL_GPL vmlinux 0xf918d43d vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match
+EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw
+EXPORT_SYMBOL_GPL vmlinux 0xf97b6c0c usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0xf97daa62 devres_remove
+EXPORT_SYMBOL_GPL vmlinux 0xf9924426 arch_add_memory
+EXPORT_SYMBOL_GPL vmlinux 0xf9969710 sdio_memcpy_toio
+EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xf9d66b60 crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0xf9ec75d4 ata_port_pbar_desc
+EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register
+EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0xfa567da9 bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xfa8e78de ring_buffer_resize
+EXPORT_SYMBOL_GPL vmlinux 0xfa9ab765 ata_std_prereset
+EXPORT_SYMBOL_GPL vmlinux 0xfacbe02e apic
+EXPORT_SYMBOL_GPL vmlinux 0xfae71240 ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0xfaf57c68 pci_enable_rom
+EXPORT_SYMBOL_GPL vmlinux 0xfb07f68e __rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb3fbd42 blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xfb48885c tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0xfb6992bb bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0xfb6ef712 ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xfb882fb7 wmi_query_block
+EXPORT_SYMBOL_GPL vmlinux 0xfbd14367 class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xfbea6420 crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfc26285d put_driver
+EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value
+EXPORT_SYMBOL_GPL vmlinux 0xfc9a4e7a ata_do_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0xfca042e1 crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0xfcc4c63e pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xfcfed8d3 device_del
+EXPORT_SYMBOL_GPL vmlinux 0xfd0af180 __get_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xfd35e884 usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref
+EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable
+EXPORT_SYMBOL_GPL vmlinux 0xfda50612 tc35892_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xfdab1f21 dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0xfdc95b18 dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL vmlinux 0xfdd6f87e sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfe4147d6 ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xfe4dfd95 input_ff_upload
+EXPORT_SYMBOL_GPL vmlinux 0xfe501fd7 pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine
+EXPORT_SYMBOL_GPL vmlinux 0xfe72c118 __rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfeaa1bcf dm_region_hash_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xfecc749a xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfeeda928 debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a13c pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0xff094afa kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xff0a7e0a pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0xff18bbdd mm_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback
+EXPORT_SYMBOL_GPL vmlinux 0xff5cfd50 input_class
+EXPORT_SYMBOL_GPL vmlinux 0xff5cffe5 crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0xff6a51d2 led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL vmlinux 0xff969c34 spi_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffd62de8 spi_unregister_master
diff --git a/debian.master/abi/2.6.35-2.3/amd64/server.modules b/debian.master/abi/2.6.35-2.3/amd64/server.modules
new file mode 100644
index 00000000000..ee40fed07f1
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/amd64/server.modules
@@ -0,0 +1,2829 @@
+3c359
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+6pack
+8021q
+8139cp
+8139too
+8255
+8390
+88pm860x_bl
+88pm860x_onkey
+88pm860x-ts
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a100u2w
+a3d
+aacraid
+ab3100
+ab3100-otp
+abituguru
+abituguru3
+abyss
+ac97_bus
+acecad
+acenic
+acerhdf
+acer-wmi
+acpi_memhotplug
+acpi_pad
+acpiphp
+acpiphp_ibm
+acquirewdt
+act200l-sir
+act_gact
+act_ipt
+actisys-sir
+act_mirred
+act_nat
+act_pedit
+act_police
+act_simple
+act_skbedit
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7414
+ad7418
+ad7877
+ad7879
+adcxx
+addi_apci_035
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2016
+addi_apci_2032
+addi_apci_2200
+addi_apci_3001
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+adfs
+adi
+adis16209
+adis16220
+adis16240
+adis16255
+adis16260
+adis16300
+adis16350
+adis16400
+adl_pci6208
+adl_pci7230
+adl_pci7296
+adl_pci7432
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm8211
+adm9240
+adp5520_bl
+adp5520-gpio
+adp5520-keys
+adp5588-gpio
+adp5588-keys
+adp8860_bl
+ads7828
+ads7846
+ads7871
+adt7411
+adt7462
+adt7470
+adt7475
+adutux
+adv7170
+adv7175
+advansys
+advantechwdt
+adv_pci1710
+adv_pci1723
+adv_pci_dio
+aes_generic
+aesni-intel
+aes-x86_64
+af_802154
+af9013
+affs
+af_key
+af-rxrpc
+ah4
+ah6
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aiptek
+aircable
+airo
+airo_cs
+alauda
+ali-ircc
+alim1535_wdt
+alim7101_wdt
+alphatrack
+altera_jtaguart
+altera_ps2
+altera_uart
+ambassador
+amc6821
+amd64_edac_mod
+amd76xrom
+amd8111e
+amd-rng
+amplc_dio200
+amplc_pc236
+amplc_pc263
+amplc_pci224
+amplc_pci230
+analog
+ansi_cprng
+anubis
+aoe
+appledisplay
+applesmc
+appletalk
+appletouch
+applicom
+ar7part
+ar9170usb
+arc4
+arcfb
+arcmsr
+arcnet
+arc-rawmode
+arc-rimi
+ark3116
+arkfb
+arptable_filter
+arp_tables
+arpt_mangle
+asb100
+asc7621
+asix
+asus_atk0110
+asus-laptop
+asus_oled
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+atbm8830
+aten
+ath
+ath3k
+ath5k
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlas_btns
+atm
+atmel
+atmel_cs
+atmel_pci
+atmtcp
+atp
+atp870u
+atxp1
+aty128fb
+atyfb
+au0828
+au8522
+aufs
+authenc
+auth_rpcgss
+autofs
+autofs4
+av5100
+avma1_cs
+avm_cs
+avmfritz
+ax25
+axnet_cs
+b1
+b1dma
+b1pci
+b1pcmcia
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+bas_gigaset
+batman-adv
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcm203x
+bcm3510
+bcm5974
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfs
+bfusb
+binfmt_misc
+block2mtd
+blowfish
+bluecard_cs
+bluetooth
+bnep
+bnx2
+bnx2i
+bnx2x
+bonding
+bpa10x
+bpck
+bpqether
+bq24022
+bq27x00_battery
+br2684
+bridge
+broadsheetfb
+bsd_comp
+bt3c_cs
+bt819
+bt856
+bt866
+bt878
+btcx-risc
+bt_drv
+btmrvl
+btmrvl_sdio
+btrfs
+btsdio
+bttv
+btuart_cs
+btusb
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+BusLogic
+bw-qcam
+c2port-duramar2150
+c4
+c67x00
+cachefiles
+cafe_ccic
+cafe_nand
+caif
+caif_serial
+caif_socket
+camellia
+can
+can-bcm
+can-dev
+can-raw
+capi
+capidrv
+capifs
+capmode
+carminefb
+cassini
+cast5
+cast6
+catc
+cb710
+cb710-mmc
+cb_das16_cs
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcidio
+cb_pcimdas
+cb_pcimdda
+cciss
+ccm
+cdc-acm
+cdc_eem
+cdc_ether
+cdc-phonet
+cdc_subset
+cdc-wdm
+ceph
+cfag12864b
+cfag12864bfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+ch
+ch341
+ch7006
+chipreg
+chnl_net
+cifs
+cirrusfb
+ck804xrom
+classmate-laptop
+clip
+cls_basic
+cls_flow
+cls_fw
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cm4000_cs
+cm4040_cs
+cmtp
+cnic
+cobra
+coda
+com20020
+com20020_cs
+com20020-pci
+com90io
+com90xx
+comedi
+comedi_bond
+comedi_fc
+comedi_parport
+comedi_test
+comm
+compal-laptop
+configfs
+contec_pci_dio
+core
+coretemp
+cp210x
+cpcihp_generic
+cpcihp_zt5550
+cpia
+cpia2
+cpia_pp
+cpia_usb
+cpqarray
+cpu5wdt
+cpuid
+cpu-notifier-error-inject
+c-qcam
+cramfs
+cr_bllcd
+crc32c
+crc32c-intel
+crc7
+crc-ccitt
+crc-itu-t
+crvml
+cryptd
+cryptoloop
+crypto_null
+crystalhd
+cs5345
+cs53l32a
+cs5535-gpio
+ct82c710
+ctr
+cts
+cuse
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx8800
+cx8802
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx88xx
+cxacru
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxt1e1
+cyber2000fb
+cyberjack
+cyclades
+cyclomx
+cycx_drv
+cypress_cy7c63
+cypress_m8
+cytherm
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+dabusb
+DAC960
+daqboard2000
+das08
+das08_cs
+db9
+dc395x
+dca
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dccp_probe
+dcdbas
+de2104x
+de4x5
+de600
+de620
+decnet
+deflate
+defxx
+dell-laptop
+dell-led
+dell_rbu
+dell-wmi
+denali
+des_generic
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dibx000_common
+digi_acceleport
+diskonchip
+display
+divacapi
+divadidd
+diva_idi
+diva_mnt
+divas
+dlci
+dlm
+dm1105
+dm9601
+dm-crypt
+dme1737
+dmfe
+dm-queue-length
+dm-raid45
+dm-service-time
+dmx3191d
+dm-zero
+dnet
+dn_rtmsg
+doc2000
+doc2001
+doc2001plus
+docecc
+docprobe
+dpt_i2o
+drm
+drm_kms_helper
+ds1621
+ds1682
+ds2482
+ds2490
+ds2760_battery
+ds2782_battery
+ds3000
+dsbr100
+dscc4
+dss1_divert
+dst
+dst_ca
+dstr
+dt3000
+dt3155
+dt3155v4l
+dt9812
+dtl1_cs
+dummy
+dummy_hcd
+dv1394
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dw2102
+dvb-usb-friio
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-m920x
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dw_spi_pci
+dynapro
+e100
+e1000
+e1000e
+e752x_edac
+earth-pt1
+eata
+ebt_802_3
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_ulog
+ebt_vlan
+echo
+econet
+edac_core
+edac_mce_amd
+eeepc-laptop
+eeepc-wmi
+eeprom
+eeprom_93cx6
+eeti_ts
+efs
+einj
+elo
+elsa_cs
+em28xx
+em28xx-alsa
+em28xx-dvb
+emc1403
+em_cmp
+emi26
+emi62
+em_meta
+em_nbyte
+empeg
+ems_pci
+ems_usb
+em_text
+emu10k1-gp
+em_u32
+enclosure
+eni
+enic
+epat
+epca
+epia
+epic100
+eql
+esb2rom
+esi-sir
+esp4
+esp6
+et131x
+et61x251
+eth1394
+ethoc
+eurotechwdt
+evbug
+evtchn
+exofs
+exportfs
+f71805f
+f71882fg
+f75375s
+fakephp
+farsync
+fat
+faulty
+fb_ddc
+fb_sys_fops
+fcoe
+fcrypt
+fdomain
+fdomain_cs
+fealnx
+ff-memless
+firedtv
+firestream
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+fit2
+fit3
+floppy
+fm801-gp
+fmvj18x_cs
+fnic
+forcedeth
+fore_200e
+fpu
+freevxfs
+friq
+frpw
+fsam7400
+fscache
+fschmd
+ftdi-elan
+ftdi_sio
+ftl
+fujitsu-laptop
+fujitsu_ts
+funsoft
+g450_pll
+g760a
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+g_audio
+g_cdc
+gcm
+gdth
+generic
+generic_bl
+gen_probe
+g_ether
+gf128mul
+gf2k
+g_ffs
+g_file_storage
+gfs2
+ghash-clmulni-intel
+ghash-generic
+ghes
+g_hid
+gigaset
+girbil-sir
+gl518sm
+gl520sm
+gl620a
+gluebi
+g_mass_storage
+g_midi
+g_nokia
+go7007
+go7007-usb
+gpio-addr-flash
+gpio_keys
+gpio_mouse
+gpio_vbus
+g_printer
+grip
+grip_mp
+gsc_hpdi
+g_serial
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_stk014
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_tv8532
+gspca_vc032x
+gspca_zc3xx
+gtco
+guillemot
+gunze
+g_webcam
+gx1fb
+gxfb
+g_zero
+hamachi
+hampshire
+hangcheck-timer
+hci_uart
+hci_vhci
+hdaps
+hdlc
+hdlc_cisco
+hdlcdrv
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdpvr
+he
+hecubafb
+hed
+hexium_gemini
+hexium_orion
+hfc4s8s_l1
+hfcmulti
+hfcpci
+hfcsusb
+hfc_usb
+hfs
+hfsplus
+hgafb
+hid
+hid-3m-pct
+hid-a4tech
+hid-apple
+hid-belkin
+hid-cando
+hid-cherry
+hid-chicony
+hid-cypress
+hid-drff
+hid-egalax
+hid-ezkey
+hid-gaff
+hid-gyration
+hid-kensington
+hid-kye
+hid-logitech
+hid-magicmouse
+hid-microsoft
+hid-monterey
+hid-mosart
+hid-ntrig
+hid-ortek
+hidp
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-prodikeys
+hid-quanta
+hid-roccat
+hid-roccat-kone
+hid-samsung
+hid-sjoy
+hid-sony
+hid-stantum
+hid-sunplus
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-wacom
+hid-zpff
+hid-zydacron
+hifn_795x
+hisax
+hisax_fcpcipnp
+hisax_isac
+hisax_st5481
+hopper
+horizon
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hp100
+hp4x
+hp_accel
+hpfs
+hpilo
+hpsa
+hptiop
+hp-wmi
+hso
+htc-pasic3
+hv_netvsc
+hv_storvsc
+hv_utils
+hv_vmbus
+hwa-hc
+hwa-rc
+hwmon-vid
+hysdn
+i1480-dfu-usb
+i1480-est
+i1480u-wlp
+i2400m
+i2400m-sdio
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-algo-pcf
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd756-s4882
+i2c-amd8111
+i2c-dev
+i2c-gpio
+i2c-i801
+i2c-isch
+i2c-matroxfb
+i2c-nforce2
+i2c-nforce2-s4985
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-scmi
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-xiic
+i2o_block
+i2o_bus
+i2o_config
+i2o_core
+i2o_proc
+i2o_scsi
+i3000_edac
+i3200_edac
+i5000_edac
+i5100_edac
+i5400_edac
+i5k_amb
+i6300esb
+i7300_idle
+i7core_edac
+i810
+i82092
+i82975x_edac
+i830
+i8k
+i915
+ib700wdt
+ib_addr
+ib_cm
+ib_core
+ib_ipath
+ib_ipoib
+ib_iser
+ib_mad
+ibmaem
+ibmasm
+ibmasr
+ibmcam
+ibmpex
+ib_mthca
+ibmtr_cs
+ib_qib
+ib_sa
+ib_srp
+ib_ucm
+ib_umad
+ib_uverbs
+ichxrom
+icp_multi
+ics932s401
+idmouse
+idt77252
+ieee1394
+ieee802154
+ifb
+iforce
+igb
+igbvf
+iio-trig-gpio
+iio-trig-periodic-rtc
+ii_pci20kc
+ili9320
+imm
+imon
+industrialio
+inexio
+inftl
+initio
+input-polldev
+int51x1
+intel-agp
+intel_idle
+intel_menlow
+intel-rng
+intel_vr_nor
+interact
+ioatdma
+ioc4
+io_edgeport
+io_ti
+iowarrior
+ip2
+ip6_queue
+ip6table_filter
+ip6table_mangle
+ip6table_raw
+ip6_tables
+ip6table_security
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_LOG
+ip6t_mh
+ip6t_REJECT
+ip6t_rt
+ip6_tunnel
+ipaq
+ipcomp
+ipcomp6
+ipddp
+ipg
+ip_gre
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_watchdog
+ip_queue
+ipr
+ips
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+ip_tables
+iptable_security
+ipt_addrtype
+ipt_ah
+ipt_CLUSTERIP
+ipt_ecn
+ipt_ECN
+ipt_LOG
+ipt_MASQUERADE
+ipt_NETMAP
+ipt_REDIRECT
+ipt_REJECT
+ipt_ULOG
+ip_vs
+ip_vs_dh
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_nq
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ipw
+ipw2100
+ipw2200
+ipwireless
+ipx
+ircomm
+ir-common
+ircomm-tty
+ir-core
+irda
+irda-usb
+ir-jvc-decoder
+ir-kbd-i2c
+irlan
+ir-nec-decoder
+irnet
+ir-rc5-decoder
+ir-rc6-decoder
+ir-sony-decoder
+irtty-sir
+ir-usb
+iscsi_ibft
+iscsi_tcp
+iscsi_trgt
+isdn
+isdn_bsdcomp
+isdnhdlc
+isight_firmware
+isl29003
+isl6405
+isl6421
+isl6423
+isofs
+isp116x-hcd
+isp1362-hcd
+isp1760
+istallion
+it87
+it8712f_wdt
+it8761e_gpio
+it87_wdt
+iTCO_vendor_support
+iTCO_wdt
+itd1000
+iuu_phoenix
+ivtv
+ivtvfb
+iw_c2
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwlagn
+iwlcore
+iwmc3200top
+iwmc3200wifi
+ixgb
+ixgbe
+ixgbevf
+ixj
+ixj_pcmcia
+janz-cmodio
+janz-ican3
+janz-ttl
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsm
+k10temp
+k8temp
+kafs
+kaweth
+kb3886_bl
+kbic
+kbtab
+kcomedilib
+ke_counter
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+khazad
+kingsun-sir
+kl5kusb105
+kobil_sct
+konicawc
+ks0108
+ks0127
+ks8842
+ks8851
+ks8851_mll
+ks959-sir
+ksdazzle-sir
+ksz884x
+ktti
+kvaser_pci
+kvm
+kvm-amd
+kvm-intel
+kxsd9
+kyrofb
+l1oip
+l2cap
+l2tp_core
+l2tp_debugfs
+l2tp_ppp
+l440gx
+l4f00242t03
+l64781
+lanai
+lapb
+lapbether
+lcd
+ldusb
+lec
+led-class
+leds-88pm860x
+leds-adp5520
+leds-alix2
+leds-bd2802
+leds-da903x
+leds-dac124s085
+leds-gpio
+leds-lp3944
+leds-lt3593
+leds-mc13783
+leds-net5501
+leds-pca9532
+leds-pca955x
+leds-regulator
+leds-ss4200
+leds-wm831x-status
+leds-wm8350
+ledtrig-backlight
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-timer
+legousbtower
+lgdt3305
+lgdt330x
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libcrc32c
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libosd
+libsas
+libsrp
+lightning
+line6usb
+linear
+lirc_atiusb
+lirc_bt829
+lirc_dev
+lirc_ene0100
+lirc_i2c
+lirc_igorplugusb
+lirc_imon
+lirc_it87
+lirc_ite8709
+lirc_mceusb
+lirc_sasem
+lirc_serial
+lirc_sir
+lirc_streamzap
+lirc_ttusbir
+lis3l02dq
+lis3lv02d
+lis3lv02d_i2c
+litelink-sir
+lkkbd
+llc2
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95241
+lmc
+lms283gf05
+lnbp21
+lockd
+lp
+lp3971
+lpc_sch
+lpddr_cmds
+lpfc
+lrw
+ltc4215
+ltc4245
+ltv350qv
+lxfb
+lzo
+lzo_compress
+m25p80
+m52790
+ma600-sir
+mac80211
+mac80211_hwsim
+machzwd
+macmodes
+macvlan
+magellan
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+matrix_keypad
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_DAC1064
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+matroxfb_Ti3026
+matrox_w1
+max1111
+max1363
+max1586
+max1619
+max17040_battery
+max2165
+max3100
+max6650
+max6875
+max7300
+max7301
+max730x
+max732x
+max7359_keypad
+max8649
+max8660
+max8925_bl
+max8925_onkey
+max8925_power
+max8925-regulator
+mb862xxfb
+mb862xxfb_accel
+mb86a16
+mbp_nvidia_bl
+mc13783-adc
+mc13783-core
+mc13783-regulator
+mc13783_ts
+mc33880
+mc44s803
+mce-inject
+mce-xeon75xx
+mcp2120-sir
+mcp23s08
+mcp251x
+mcs5000_ts
+mcs7780
+mcs7830
+mct_u232
+md4
+mdc800
+mdio
+me4000
+me_daq
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mem2mem_testdev
+memrar
+memstick
+metronomefb
+meye
+mga
+michael_mic
+micrel
+microcode
+microtek
+mii
+minix
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+mite
+mk712
+mkiss
+mlx4_core
+mlx4_en
+mlx4_ib
+mmc_block
+mmc_spi
+mos7720
+mos7840
+moto_modem
+moxa
+mpoa
+mpt2sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+msdos
+msi-laptop
+msi-wmi
+msp3400
+mspro_block
+msr
+mt2060
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt9m001
+mt9m111
+mt9t031
+mt9t112
+mt9v011
+mt9v022
+mtd
+mtd_blkdevs
+mtdblock
+mtdblock_ro
+mtdchar
+mtdconcat
+mtd_dataflash
+mtd_nandecctest
+mtd_oobtest
+mtdoops
+mtd_pagetest
+mtdram
+mtd_readtest
+mtd_speedtest
+mtd_stresstest
+mtd_subpagetest
+mtd_torturetest
+mtouch
+multipath
+mvsas
+mwave
+mwl8k
+mxb
+mxl5005s
+mxl5007t
+mxser
+myri10ge
+n411
+nand
+nand_ecc
+nand_ids
+nandsim
+natsemi
+navman
+nbd
+ncpfs
+ndiswrapper
+ne2k-pci
+neofb
+net1080
+netconsole
+netjet
+netrom
+netsc520
+nettel
+netxen_nic
+newtonkbd
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_ipv4
+nf_conntrack_ipv6
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_proto_dccp
+nf_conntrack_proto_gre
+nf_conntrack_proto_sctp
+nf_conntrack_proto_udplite
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_proto_dccp
+nf_nat_proto_gre
+nf_nat_proto_sctp
+nf_nat_proto_udplite
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nfnetlink
+nfnetlink_log
+nfnetlink_queue
+nfs
+nfs_acl
+nfsd
+nftl
+nf_tproxy_core
+ngene
+n_hdlc
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_daq_700
+ni_daq_dio24
+ni_labpc
+ni_labpc_cs
+nilfs2
+ni_mio_cs
+ni_pcidio
+ni_pcimio
+ni_tio
+ni_tiocmd
+niu
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp437
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+nop-usb-xceiv
+nouveau
+nozomi
+n_r3964
+ns558
+ns83820
+nsc_gpio
+nsc-ircc
+ntfs
+nvidiafb
+nvram
+nxt200x
+nxt6000
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stackglue
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ohci1394
+old_belkin-sir
+olympic
+omfs
+omnibook
+omninet
+on20
+on26
+onenand
+onenand_sim
+opencores-kbd
+oprofile
+opticon
+option
+or51132
+or51211
+orinoco
+orinoco_cs
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+osd
+osdblk
+osst
+oti6858
+output
+ov7670
+ov772x
+ov9640
+ovcamchip
+oxu210hp-hcd
+p4-clockmod
+p54common
+p54pci
+p54spi
+p54usb
+p8023
+padlock-aes
+padlock-sha
+panasonic-laptop
+panel
+paride
+parkbd
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cs5520
+pata_cs5530
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pcmcia
+pata_pdc2027x
+pata_pdc202xx_old
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sc1200
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sl82c105
+pata_triflex
+pata_via
+pbe5
+pc87360
+pc8736x_gpio
+pc87413_wdt
+pc87427
+pca953x
+pcbc
+pcc-cpufreq
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf857x
+pcf8591
+pci
+pci200syn
+pcilynx
+pcips2
+pci-stub
+pcmcia
+pcmcia_core
+pcmciamtd
+pcmcia_rsrc
+pcm_common
+pcnet32
+pcnet_cs
+pcrypt
+pcspkr
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pegasus
+penmount
+pf
+pg
+phantom
+phison
+phonedev
+phonet
+phram
+physmap
+pktgen
+pl2303
+platform_lcd
+plat_nand
+plat-ram
+plip
+plusb
+pluto2
+plx_pci
+pm2fb
+pm3fb
+pm8001
+pmc551
+pmcraid
+pn_pep
+pohmelfs
+poseidon
+powermate
+power_meter
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+pppoatm
+pppoe
+pppox
+ppp_synctty
+pps_core
+pps-ldisc
+prism2_usb
+prism54
+progear_bl
+psmouse
+pt
+pvrusb2
+pwc
+qcaux
+qcserial
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas408
+qnx4
+qt1010
+quatech_daqp_cs
+quatech_usb2
+quickcam_messenger
+quota_tree
+quota_v1
+quota_v2
+r128
+r8169
+r8187se
+r8192e_pci
+r8192se_pci
+r8192s_usb
+r8192u_usb
+r852
+r8a66597-hcd
+radeon
+radeonfb
+radio-gemtek-pci
+radio-i2c-si470x
+radio-maestro
+radio-maxiradio
+radio-mr800
+radio-si4713
+radio-tea5764
+radio-timb
+radio-usb-si470x
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid6test
+raid_class
+ramoops
+ramzswap
+rar_register
+raw
+raw1394
+ray_cs
+rc-adstech-dvb-t-pci
+rc-apac-viewcomp
+rc-asus-pc39
+rc-ati-tv-wonder-hd-600
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avertv-303
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-empty
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv2
+rc-encore-enltv-fm53
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge-new
+rc-imon-mce
+rc-imon-pad
+rc-iodata-bctv7e
+rc-kaiomy
+rc-kworld-315u
+rc-kworld-plus-tv-analog
+rc-manli
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc5-hauppauge-new
+rc-rc5-tv
+rc-real-audio-220-32-keys
+rc-tbs-nec
+rc-terratec-cinergy-xs
+rc-tevii-nec
+rc-tt-1500
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-winfast
+rc-winfast-usbii-deluxe
+rdc321x-gpio
+rdc321x-southbridge
+rdma_cm
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+redboot
+reed_solomon
+reiserfs
+rfc1051
+rfc1201
+rfcomm
+rfd_ftl
+ring_sw
+rio500
+riscom8
+rivafb
+rj54n1cb0c
+rmd128
+rmd160
+rmd256
+rmd320
+rndis_host
+rndis_wlan
+rocket
+romfs
+rose
+rotary_encoder
+rpcsec_gss_krb5
+rpcsec_gss_spkm3
+rrunner
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800pci
+rt2800usb
+rt2860sta
+rt2870sta
+rt2x00lib
+rt2x00pci
+rt2x00usb
+rt61pci
+rt73usb
+rtc-ab3100
+rtc-ab8500
+rtc-bq32k
+rtc-bq4802
+rtc-ds1286
+rtc-ds1305
+rtc-ds1307
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1742
+rtc-ds3234
+rtc-fm3130
+rtc-isl1208
+rtc-m41t80
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max8925
+rtc-mc13783
+rtc-msm6242
+rtc-pcf2123
+rtc-pcf50633
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-stk17ta8
+rtc-test
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtd520
+rtl8150
+rtl8180
+rtl8187
+rxkad
+s1d13xxxfb
+s2250
+s2250-loader
+s2255drv
+s2io
+s3fb
+s526
+s5h1409
+s5h1411
+s5h1420
+s626
+s6e63m0
+saa5246a
+saa5249
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+salsa20_generic
+salsa20-x86_64
+samsung-laptop
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savage
+savagefb
+sb1000
+sbc60xxwdt
+sbc8360
+sbc_epx_c3
+sbc_fitpc2_wdt
+sbc_gxx
+sbni
+sbp2
+sc1200wdt
+sc520cdp
+sc520_wdt
+sc92031
+sca3000
+scb2_flash
+sch311x_wdt
+sch_atm
+sch_cbq
+sch_drr
+sch_dsmark
+sch_gpio
+sch_gred
+sch_hfsc
+sch_htb
+sch_ingress
+sch_multiq
+sch_netem
+sch_prio
+sch_red
+sch_sfq
+sch_tbf
+sch_teql
+sco
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_tgt
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_srp
+scsi_wait_scan
+sctp
+sctp_probe
+sdhci
+sdhci-pci
+sdhci-pltfm
+sdio_uart
+sdricoh_cs
+se401
+sedlbauer_cs
+seed
+sep_driver
+seqiv
+ser_gigaset
+serial2002
+serial_cs
+serio_raw
+sermouse
+serpent
+serport
+serqt_usb2
+ses
+sfc
+sha1_generic
+sha256_generic
+sha512_generic
+shpchp
+sht15
+si21xx
+si4713-i2c
+sidewinder
+siemens_mpi
+sierra
+sierra_net
+sir-dev
+sis
+sis190
+sis5595
+sis900
+sis-agp
+sisfb
+sisusbvga
+sit
+sja1000
+sja1000_platform
+skel
+skfp
+skge
+sky2
+sl811_cs
+sl811-hcd
+slicoss
+slip
+slram
+sm501
+sm501fb
+sm7xx
+smbfs
+smc91c92_cs
+sm_common
+smsc37b787_wdt
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc9420
+smsc95xx
+smsc-ircc2
+smsdvb
+smsmdtv
+smssdio
+smsusb
+sn9c102
+snd
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-als300
+snd-als4000
+snd-asihpi
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-cs5530
+snd-cs5535audio
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-atihdmi
+snd-hda-codec-ca0110
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-idt
+snd-hda-codec-intelhdmi
+snd-hda-codec-nvhdmi
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hifier
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel8x0
+snd-intel8x0m
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-oxygen
+snd-oxygen-lib
+snd-page-alloc
+snd-pcm
+snd-pcsp
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-sb16-dsp
+snd-sb-common
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ad1836
+snd-soc-ad193x
+snd-soc-ad73311
+snd-soc-ads117x
+snd-soc-ak4104
+snd-soc-ak4535
+snd-soc-ak4642
+snd-soc-ak4671
+snd-soc-core
+snd-soc-cs4270
+snd-soc-da7210
+snd-soc-l3
+snd-soc-max9877
+snd-soc-pcm3008
+snd-soc-spdif
+snd-soc-ssm2602
+snd-soc-tlv320aic23
+snd-soc-tlv320aic26
+snd-soc-tlv320aic3x
+snd-soc-tlv320dac33
+snd-soc-tpa6130a2
+snd-soc-twl4030
+snd-soc-twl6040
+snd-soc-uda134x
+snd-soc-uda1380
+snd-soc-wm2000
+snd-soc-wm8350
+snd-soc-wm8400
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8727
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8776
+snd-soc-wm8900
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8940
+snd-soc-wm8955
+snd-soc-wm8960
+snd-soc-wm8961
+snd-soc-wm8971
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8988
+snd-soc-wm8990
+snd-soc-wm8993
+snd-soc-wm8994
+snd-soc-wm9081
+snd-soc-wm9090
+snd-soc-wm-hubs
+snd-sonicvibes
+snd-tea575x-tuner
+snd-timer
+snd-trident
+snd-usb-audio
+snd-usb-caiaq
+snd-usbmidi-lib
+snd-usb-us122l
+snd-usb-usx2y
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx222
+snd-vx-lib
+snd-vxpocket
+snd-ymfpci
+soc_camera
+soc_camera_platform
+soc_mediabus
+softdog
+solos-pci
+sony-laptop
+soundcore
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+specialix
+spectrum_cs
+speedfax
+speedstep-lib
+speedtch
+spi_bitbang
+spi_butterfly
+spidev
+spi_gpio
+spi_lm70llp
+squashfs
+ssb
+ssfdc
+sst25l
+sstfb
+ssv_dnp
+st
+stallion
+starfire
+stb0899
+stb6000
+stb6100
+st_drv
+stex
+stinger
+stir4200
+stkwebcam
+stowaway
+stp
+stradis
+stv0288
+stv0297
+stv0299
+stv0900
+stv090x
+stv6110
+stv6110x
+stv680
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+svcrdma
+svgalib
+sx8
+sym53c500_cs
+symbolserial
+synaptics_i2c
+synclink
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t1pci
+tca6416-keypad
+tcp_bic
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_probe
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcrypt
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10086
+tda18271
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tdfx
+tdfxfb
+tdo24m
+tea
+tea5761
+tea5767
+tea6415c
+tea6420
+tef6862
+tehuti
+tekram-sir
+teles_cs
+test_power
+tg3
+tgr192
+thinkpad_acpi
+thmc50
+ti_dac7512
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timb_dma
+timberdale
+timbuart
+timeriomem-rng
+tipc
+ti_usb_3410_5052
+tlan
+tlclk
+tle62x0
+tm6000
+tm6000-alsa
+tmdc
+tmiofb
+tmp102
+tmp401
+tmp421
+tms380tr
+tmscsim
+tmspci
+toim3232-sir
+topstar-laptop
+toshiba_acpi
+toshiba_bluetooth
+touchit213
+touchright
+touchwin
+tpm
+tpm_atmel
+tpm_bios
+tpm_infineon
+tpm_nsc
+tpm_tis
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+trancevibrator
+tranzport
+tridentfb
+ts5500_flash
+ts_bm
+tsc2007
+ts_fsm
+ts_kmp
+tsl2550
+tsl2563
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+tua6100
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp5150
+tw9910
+twidjoy
+twl4030-gpio
+twl4030_keypad
+twl4030-pwrbutton
+twl4030-usb
+twl4030-vibra
+twl4030_wdt
+twofish
+twofish_common
+twofish-x86_64
+typhoon
+u132-hcd
+uartlite
+ubi
+ubifs
+ucb1400_core
+ucb1400_ts
+udf
+udlfb
+ueagle-atm
+ufs
+uinput
+uio
+uio_aec
+uio_cif
+uio_netx
+uio_pci_generic
+uio_pdrv
+uio_pdrv_genirq
+uio_sercos3
+uli526x
+ultracam
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-sddr09
+ums-sddr55
+ums-usbat
+unioxx5
+upd64031a
+upd64083
+uPD98402
+usb8xxx
+usbatm
+usb_debug
+usbdux
+usbduxfast
+usb_gigaset
+usbhid
+usbip
+usbip_common_mod
+usblcd
+usbled
+usblp
+usbnet
+usbserial
+usbsevseg
+usb-storage
+usbtest
+usbtmc
+usbtouchscreen
+usbvideo
+usbvision
+usb_wwan
+userspace-consumer
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l1-compat
+v4l2-common
+v4l2-compat-ioctl32
+v4l2-int-device
+v4l2-mem2mem
+vcan
+ves1820
+ves1x93
+vesafb
+veth
+vfat
+vga16fb
+vgastate
+vgg2432a4
+vhci-hcd
+vhost_net
+via
+via686a
+via-agp
+via-cputemp
+viafb
+via-ircc
+via-rhine
+via-rng
+via-sdmmc
+via-velocity
+vicam
+video
+video1394
+videobuf-core
+videobuf-dma-contig
+videobuf-dma-sg
+videobuf-dvb
+videobuf-vmalloc
+videocodec
+videodev
+virtio_balloon
+virtio_console
+virtio-rng
+virtual
+visor
+vivopay-serial
+vlsi_ir
+vmac
+vme
+vme_ca91cx42
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmlfb
+vmwgfx
+vmw_pvscsi
+vmxnet3
+vp27smpx
+vpx3220
+vsxxxaa
+vt1211
+vt6656_stage
+vt8231
+vt8623fb
+vxge
+w1_bq27000
+w1_ds2431
+w1_ds2433
+w1_ds2760
+w1-gpio
+w1_smem
+w1_therm
+w35und
+w6692
+w83627ehf
+w83627hf
+w83627hf_wdt
+w83697hf_wdt
+w83697ug_wdt
+w83781d
+w83791d
+w83792d
+w83793
+w83877f_wdt
+w83977af_ir
+w83977f_wdt
+w83l785ts
+w83l786ng
+w9966
+w9968cf
+wacom
+wacom_w8001
+wafer5823wdt
+walkera0701
+wanrouter
+wanxl
+warrior
+wbsd
+wdt_pci
+whci
+whci-hcd
+whc-rc
+whiteheat
+wimax
+winbond-840
+winbond-cir
+wire
+wis-ov7640
+wis-saa7113
+wis-saa7115
+wis-sony-tuner
+wis-tw2804
+wis-tw9903
+wis-uda1342
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1271
+wl1271_spi
+wl3501_cs
+wlags49_h25_cs
+wlags49_h2_cs
+wlp
+wm831x_backup
+wm831x_bl
+wm831x-dcdc
+wm831x-gpio
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x_power
+wm831x_wdt
+wm8350-gpiolib
+wm8350-hwmon
+wm8350_power
+wm8350-regulator
+wm8350_wdt
+wm8400-core
+wm8400-regulator
+wm8739
+wm8775
+wm8994-gpio
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusbcore
+wusb-wa
+x25
+x25_asy
+x38_edac
+xc5000
+xcbc
+xen-blkfront
+xen-fbfront
+xenfs
+xen-kbdfront
+xen-netfront
+xfrm4_mode_beet
+xfrm4_mode_transport
+xfrm4_mode_tunnel
+xfrm4_tunnel
+xfrm6_mode_beet
+xfrm6_mode_ro
+xfrm6_mode_transport
+xfrm6_mode_tunnel
+xfrm6_tunnel
+xfrm_ipcomp
+xfrm_user
+xfs
+xgifb
+xhci-hcd
+xirc2ps_cs
+xircom_cb
+xor
+xpad
+xprtrdma
+x_tables
+xt_CLASSIFY
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlimit
+xt_connmark
+xt_CONNSECMARK
+xt_conntrack
+xt_CT
+xt_dccp
+xt_dscp
+xt_DSCP
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_HL
+xt_iprange
+xtkbd
+xt_LED
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_NFLOG
+xt_NFQUEUE
+xt_NOTRACK
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_RATEEST
+xt_realm
+xt_recent
+xts
+xt_sctp
+xt_SECMARK
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_TCPMSS
+xt_tcpudp
+xt_TEE
+xt_time
+xt_TPROXY
+xt_TRACE
+xt_u32
+xusbatm
+xvmalloc
+yam
+yealink
+yellowfin
+yenta_socket
+zatm
+zaurus
+zc0301
+zd1201
+zd1211rw
+zhenhua
+zio
+zl10036
+zl10039
+zl10353
+zlib
+zlib_deflate
+zr36016
+zr36050
+zr36060
+zr36067
+zr364xx
diff --git a/debian.master/abi/2.6.35-2.3/amd64/virtual b/debian.master/abi/2.6.35-2.3/amd64/virtual
new file mode 100644
index 00000000000..5aabd76a778
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/amd64/virtual
@@ -0,0 +1,11120 @@
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x3cc05473 kvm_read_guest_atomic
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x8ea74400 kvm_cpu_has_pending_timer
+EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble
+EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle
+EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k
+EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks
+EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister
+EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register
+EXPORT_SYMBOL drivers/acpi/video 0xc1be2a90 acpi_video_get_edid
+EXPORT_SYMBOL drivers/atm/suni 0xc9577f4d suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0x2a6bc271 uPD98402_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x0b2e058e pi_write_block
+EXPORT_SYMBOL drivers/block/paride/paride 0x0f4ec8a7 pi_release
+EXPORT_SYMBOL drivers/block/paride/paride 0x2e763837 pi_do_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x4444c89f paride_unregister
+EXPORT_SYMBOL drivers/block/paride/paride 0x4a3c1e65 pi_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x56548d79 pi_schedule_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x68f5d963 pi_write_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0x6ec3d899 pi_read_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0xb87ba38f paride_register
+EXPORT_SYMBOL drivers/block/paride/paride 0xd80d2d35 pi_connect
+EXPORT_SYMBOL drivers/block/paride/paride 0xef128708 pi_read_block
+EXPORT_SYMBOL drivers/block/paride/paride 0xf5428b48 pi_disconnect
+EXPORT_SYMBOL drivers/char/agp/intel-agp 0x7b9a6116 intel_agp_enabled
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0419dc0f ipmi_create_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0b413927 ipmi_poll_interface
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x296ba089 ipmi_request_settime
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x32ac91d1 ipmi_free_recv_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x37b38645 ipmi_unregister_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x48cd760f ipmi_get_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4fadef5c ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x549c2047 ipmi_unregister_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x57116afe ipmi_get_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x71904a40 ipmi_smi_watcher_register
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x75e0eb45 ipmi_set_gets_events
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x89abf000 ipmi_register_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8e2f591a ipmi_set_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa66878c3 ipmi_get_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb25ffc7b ipmi_smi_add_proc_entry
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb3e4e879 ipmi_get_version
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc6b00bf0 ipmi_set_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcbd8a825 ipmi_smi_msg_received
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd4cdb8bd ipmi_request_supply_msgs
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdc1d2cba ipmi_smi_watcher_unregister
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe28d6ce0 ipmi_set_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe29e2af9 ipmi_register_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xffcb68c7 ipmi_destroy_user
+EXPORT_SYMBOL drivers/char/nsc_gpio 0x2aeebbe9 nsc_gpio_write
+EXPORT_SYMBOL drivers/char/nsc_gpio 0xcd57cf8c nsc_gpio_read
+EXPORT_SYMBOL drivers/char/nsc_gpio 0xf377b35b nsc_gpio_dump
+EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte
+EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte
+EXPORT_SYMBOL drivers/edac/edac_core 0x3f96e302 edac_mc_find
+EXPORT_SYMBOL drivers/edac/edac_core 0x4e62dea3 edac_mc_handle_fbd_ce
+EXPORT_SYMBOL drivers/edac/edac_core 0x8c872438 edac_mc_handle_fbd_ue
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x0711927d fw_iso_context_queue
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x1c98f0e9 fw_core_handle_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x1eae8202 fw_send_request
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x24059546 fw_core_handle_bus_reset
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x352b60de fw_iso_context_create
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x36d49da4 fw_run_transaction
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x453a940f fw_csr_string
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x49a29946 fw_core_remove_descriptor
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x4a4be620 fw_core_remove_address_handler
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e86dd83 fw_core_add_descriptor
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x676e3934 fw_device_enable_phys_dma
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x7f488b55 fw_bus_type
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x7fb363c6 fw_cancel_transaction
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x8003626d fw_send_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x835c68ae fw_core_handle_request
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x8d71122f fw_iso_buffer_destroy
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x915d41b6 fw_core_remove_card
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xa0c7d081 fw_iso_context_destroy
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xa49be86c fw_core_initiate_bus_reset
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xab16f3b9 fw_fill_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xcc43569a fw_card_add
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xdf5ec473 fw_card_initialize
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xe8bbd8ed fw_iso_context_stop
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xeb78bc92 fw_core_add_address_handler
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xf34c858d fw_iso_buffer_init
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xf5503e51 fw_iso_context_start
+EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x03060d15 drm_mode_config_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x05515d67 drm_clflush_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x065db90c drm_agp_unbind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x078de204 drm_cvt_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e4a79da drm_getsarea
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d13802 drm_mm_search_free_in_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12d82c67 drm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x164004cc drm_agp_bind_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x17615291 drm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1999c0f9 drm_core_ioremap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a2a03aa drm_agp_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b01260a drm_mode_validate_clocks
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1cf73dd6 drm_i2c_encoder_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d15b23e drm_mode_connector_detach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f135d82 drm_agp_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f635f0c drm_addbufs_pci
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x22a3b010 drm_gem_vm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x23e0b826 drm_i2c_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x253bf34a drm_get_resource_len
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x298dd35a drm_irq_install
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cf852b5 drm_get_connector_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x31ba0744 drm_poll
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x329a69ef drm_mode_duplicate
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x33db1b67 drm_encoder_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3499457a drm_debugfs_remove_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x35155dbc drm_put_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x360e03fb drm_mode_create_dithering_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x365b7e7b drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ba3872d drm_unbind_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e32e584 drm_core_reclaim_buffers
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x41ac0a26 drm_agp_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43a4a71a drm_mode_object_find
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x47226352 drm_mode_connector_list_update
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x47bcbaf5 drm_mm_pre_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831d2c2 drm_mm_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x484dbb12 drm_rmmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a97bad4 drm_connector_property_set_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5373e655 drm_ati_pcigart_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5441ddb5 drm_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x570c5ccd drm_mode_find_dmt
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x57738559 drm_mode_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x59c2678e drm_master_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c0c096c drm_gem_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c4d4a18 drm_read
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5cfb9fb3 drm_addbufs_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d79fa14 drm_get_resource_start
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5de8e4cf drm_idlelock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e46bed7 drm_mode_prune_invalid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x61b798f2 drm_agp_acquire
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x642b4a29 drm_gem_handle_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6745b654 drm_sg_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a09ae5a drm_get_drawable_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d237c2b drm_gem_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fd119f0 drm_gem_object_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ff0c9dd drm_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x722ec4f5 drm_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x74d51128 drm_property_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x75599b00 drm_mode_create_tv_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x77bab6bb drm_add_edid_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x780c33f3 drm_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x780c4294 drm_sysfs_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x78b1b649 drm_mm_dump_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a36d30f drm_master_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b2f32e7 drm_idlelock_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d7a7204 drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f419695 drm_mode_connector_update_edid_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7fc4233a drm_mode_config_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x82ade3f2 drm_mode_connector_attach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8895d30f drm_core_ioremap_wc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8cec68e3 drm_vblank_post_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ced24c4 drm_compat_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d22c4b3 drm_vblank_off
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dbfa843 drm_connector_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dea0dc4 drm_gtf_mode_complex
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x901289ce drm_pci_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9038f72d drm_gem_vm_close
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x95ebd7c0 drm_gem_object_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9911b8c9 drm_gtf_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9984a5e8 drm_agp_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x99f897a0 drm_get_encoder_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a633faa drm_sysfs_connector_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b24716f drm_connector_property_get_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d685e82 drm_mode_attachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fcc026c drm_get_edid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa350a48e drm_vblank_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3e168e1 drm_core_ioremapfree
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4e8183c drm_ati_pcigart_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa7b8cee drm_core_get_reg_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xab435dce drm_vblank_pre_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xac155c05 drm_free_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xad94f73a drm_framebuffer_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xadea5073 drm_mode_create_dirty_info_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xafa0c6be drm_mode_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xafccca01 drm_crtc_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4af0ea7 drm_i_have_hw_lock
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4eec16a drm_pci_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb65a38a5 drm_mode_validate_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6daf88c drm_crtc_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8ab1db2 drm_mode_detachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xba32c010 drm_handle_vblank
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xba89fd71 drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe1a25bd drm_rmmap_locked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc398acd3 drm_gem_object_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc47330cf drm_property_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc59a81fe drm_irq_uninstall
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6be4d0d drm_vblank_count
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7a7e287 drm_mode_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb043a38 drm_connector_attach_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcde8c0aa drm_vblank_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfcdd2da drm_framebuffer_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd42032dc drm_exit
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd631634a drm_lock_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8ded725 drm_lock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd92f6d0d drm_agp_bind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc20bde3 drm_addmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcc37afb drm_vblank_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd9f5e39 drm_mode_probed_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf55d4e5 drm_add_modes_noedid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1bd483a drm_agp_chipset_flush
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5ea87a7 drm_sysfs_connector_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe87ae3fc drm_mm_get_block_range_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xee0e4932 drm_vblank_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf081cda7 drm_agp_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf59a2472 drm_connector_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb5aa4bf drm_debugfs_create_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdcfc342 drm_fasync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe1e45dc drm_get_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0e15b9a4 drm_fb_helper_single_fb_probe
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x161f665d drm_kms_helper_poll_disable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x298760e3 drm_crtc_helper_set_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2a34c3ff drm_kms_helper_poll_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3ccd1099 drm_fb_helper_single_add_all_connectors
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f0c68ff drm_fb_helper_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3f5e8837 drm_helper_crtc_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x416cb12d drm_fb_helper_fill_fix
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4724bac5 drm_fb_helper_check_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4aea053b drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4e992a23 i2c_dp_aux_add_bus
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5ca46a08 drm_fb_helper_initial_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6ba7ee0a drm_helper_encoder_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x71e9dddb drm_fb_helper_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x74e1cf75 drm_fb_helper_pan_display
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ad2c6cd drm_fb_helper_setcmap
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x80d3054c drm_fb_helper_fill_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x87ea2f35 drm_fb_helper_set_par
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x914fe02e drm_kms_helper_poll_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91c54573 drm_helper_connector_dpms
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9a501a26 drm_kms_helper_poll_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa333d262 drm_fb_helper_blank
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa68994cb drm_helper_disable_unused_functions
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc0f36eb2 drm_crtc_helper_set_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2a68beb drm_fb_helper_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc5d01750 drm_helper_resume_force_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdf2da013 drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe83d3907 drm_helper_hpd_irq_event
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0616cbd3 ttm_agp_backend_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0abd9acf ttm_bo_unreserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x15673d31 ttm_bo_wait
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x194acacf ttm_bo_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x19db9d0f ttm_ref_object_add
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2f630249 ttm_bo_reserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3175fd0c ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3b72b608 ttm_tt_populate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c46ee8d ttm_bo_move_ttm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4259fca5 ttm_bo_unmap_virtual
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x436e68b9 ttm_bo_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44409a13 ttm_global_item_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x46c2a52d ttm_bo_mem_space
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4884e26b ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x565f9b8d ttm_bo_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x58d32f9e ttm_bo_kunmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a22298f ttm_bo_evict_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ab24179 ttm_base_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ca5cb47 ttm_global_item_ref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5d089b64 ttm_bo_clean_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x60634c5e ttm_bo_swapout_all
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7141dccc ttm_ref_object_base_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d68e7ba ttm_bo_move_memcpy
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d902cc7 ttm_tt_bind
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x81adfdf2 ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x88e4ab0e ttm_object_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x890fc111 ttm_mem_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x96ab0a3f ttm_mem_global_alloc
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98b7a72b ttm_write_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cad9496 ttm_vt_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa8b5d995 ttm_bo_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa9afeb53 ttm_bo_wait_unreserved
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab0fda6c ttm_base_object_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xabc1c9b1 ttm_mem_global_free
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac6bfb4d ttm_tt_set_placement_caching
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb5dcff45 ttm_bo_wait_cpu
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc106ed4d ttm_bo_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc64022a6 ttm_bo_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc82403d9 ttm_bo_init_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd778e032 ttm_object_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9a074fd ttm_bo_validate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd7920f6 ttm_object_file_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xde444a68 ttm_fbdev_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdf2ffea1 ttm_page_alloc_debugfs
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe21f18a4 ttm_mem_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe2876bd8 ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6652d73 ttm_base_object_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf5d7c0d4 ttm_bo_kmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa3286bf ttm_bo_synccpu_write_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfa696d55 ttm_object_file_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfcce372b ttm_bo_global_release
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x55dca775 i2c_bit_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x85407567 i2c_bit_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x4295f8aa i2c_pca_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xf7f8ec1c i2c_pca_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x55af1808 i2c_pcf_add_bus
+EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x4eed36dd amd756_smbus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x019be0d7 dma_region_mmap
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x036d2cdc hpsb_make_readpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0376c4ed hpsb_destroy_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0716ea23 hpsb_iso_recv_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0a2388b2 hpsb_unregister_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0d2addcd hpsb_node_fill_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1176b43e hpsb_free_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x155defcd hpsb_packet_success
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x16a67954 hpsb_selfid_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x193d4b3e csr1212_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1ae3d9e2 hpsb_register_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x43ed9a16 hpsb_create_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4415795e hpsb_iso_recv_set_channel_mask
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x46606e98 hpsb_unregister_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x46e0fe92 hpsb_get_hostinfo_bykey
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4a93788c hpsb_iso_recv_listen_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4df688c4 hpsb_update_config_rom_image
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4f16ebee hpsb_set_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4fc22921 hpsb_make_writepacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x518d4100 csr1212_get_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x51a0359f hpsb_selfid_complete
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5818aac7 hpsb_iso_stop
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5837a003 hpsb_iso_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x65199d3b hpsb_iso_wake
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6ec2328f hpsb_protocol_class
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6fddd172 __hpsb_register_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x70c2c531 hpsb_iso_xmit_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x72559abd hpsb_iso_recv_release_packets
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x78138a03 hpsb_lock
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7e6df643 hpsb_iso_recv_flush
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x85c8160b hpsb_iso_xmit_sync
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8f16143b hpsb_allocate_and_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x92253bcf hpsb_node_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x99af4b3e hpsb_make_lock64packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9ac8ba02 hpsb_make_streampacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9b007e94 hpsb_read_cycle_timer
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9b06eaf9 hpsb_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa51feed7 hpsb_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa5a6cb3a hpsb_alloc_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa6032cf5 hpsb_add_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa60a4b70 hpsb_iso_xmit_queue_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa65ec9e4 hpsb_get_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8298da2 hpsb_bus_reset
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xabbb7285 hpsb_unregister_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xada49db9 hpsb_iso_recv_unlisten_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb1c754ca hpsb_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb529302d hpsb_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb5573cee hpsb_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb5daf8a4 hpsb_free_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb7be1732 hpsb_iso_xmit_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbae5da18 hpsb_resume_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc2fdf529 hpsb_iso_shutdown
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc3b01f95 hpsb_iso_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc5bbd16d hpsb_iso_recv_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc84e33cf hpsb_iso_n_ready
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcded561e hpsb_send_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd03637f9 hpsb_make_phypacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd6b74ade hpsb_set_packet_complete_task
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd6ff4965 hpsb_alloc_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd9751670 hpsb_remove_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xed8b28d2 hpsb_reset_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xeea48e68 hpsb_make_lockpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf3aa683e hpsb_set_hostinfo_key
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf425d433 hpsb_update_config_rom
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf9248f72 hpsb_get_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x5ca1340a ohci1394_stop_context
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x7d46a599 ohci1394_unregister_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x918d743f ohci1394_register_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x29cbd5fe rdma_addr_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc3f84f9d rdma_copy_addr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1932fb44 ib_send_cm_mra
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1abe5f8f ib_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1d5ad3cf ib_cm_notify
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1faa1c52 ib_send_cm_rtu
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4e293782 ib_send_cm_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6abd1c0e ib_send_cm_apr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6e7ddcea ib_send_cm_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x711bfc70 ib_send_cm_drep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x80875ebf ib_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x84b9788d ib_send_cm_lap
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa24f48c1 ib_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa259a35f ib_send_cm_sidr_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa27ef6fd ib_send_cm_sidr_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa8aef66a ib_send_cm_dreq
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbb3934a8 ib_send_cm_rej
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcf967ec3 ib_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf952cfdb cm_class
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00ae53e3 ib_modify_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01d72fcc ib_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x060de8f4 ib_find_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09a93d5c ib_destroy_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e7c5019 ib_destroy_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1616deb8 ib_rereg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1b35ccca ib_alloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2052da71 ib_find_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26507ef7 ib_query_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2baef333 ib_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2da037ef ib_fmr_pool_map_phys
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f4af5b1 ib_query_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30ff6f5d ib_get_dma_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3247343f ib_modify_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x32893070 ib_detach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a48410b ib_query_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a80c918 ib_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3d94743f ib_dealloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f764291 ib_query_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x429d9e60 ib_query_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x47598450 ib_query_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4796f465 ib_alloc_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x490624ed ib_query_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c23339f ib_alloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4cbdb8e6 ib_reg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5538f806 ib_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x587ae892 ib_alloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61957ccf ib_modify_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x627e8898 ib_create_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x628ceb27 ib_dealloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69ae9fe5 ib_set_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69f965ac ib_flush_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6a752f85 ib_create_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6cfbfad6 ib_free_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6db2936b ib_register_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x721031b7 ib_init_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78dbc835 ib_get_cached_lmc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f8dc924 ib_modify_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x88dea750 ib_dereg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f985885 ib_create_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x92953ba5 ib_umem_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9b0f3307 ib_dealloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9eaac7a2 ib_dealloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa9851a77 ib_umem_page_count
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa074a0a ib_find_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb5ff61a7 ib_destroy_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb950938e ib_unregister_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbae5a0ee ib_get_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbb6bef9e ib_umem_release
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc74f1e08 ib_attach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd030d968 ib_unregister_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6b8833a ib_get_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd75eef27 ib_modify_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8384738 ib_query_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd9a423ee ib_dispatch_event
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdb967a78 ib_modify_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd0621aa ib_destroy_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xded464f5 ib_register_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdfd093d7 ib_resize_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe4240677 ib_get_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8fcd356 ib_create_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf11e2bdf ib_find_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf3ffa559 ib_alloc_fast_reg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf93ea018 ib_alloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfdc51895 ib_fmr_pool_unmap
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff1f7a0a ib_create_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1d982a77 ib_register_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2a24f550 ib_modify_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x38fdd4f0 ib_post_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4ac4ff3f ib_free_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7638cf37 ib_redirect_mad_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x90752f4e ib_process_mad_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x95841eb1 ib_get_rmpp_segment
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x9794fbef ib_unregister_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xace7b15e ib_create_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc7c19633 ib_free_recv_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd65f81f5 ib_cancel_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xeda18a3d ib_register_mad_snoop
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x65d4ac9a ib_sa_service_rec_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6bb1dd69 ib_sa_cancel_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7c8e6a68 ib_init_ah_from_mcmember
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x90275d1a ib_sa_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa1cbddd7 ib_init_ah_from_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd4e2da74 ib_sa_get_mcmember_rec
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xfb6b04f6 ib_sa_path_rec_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x32180807 iw_cm_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3cea9200 iw_cm_connect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x42c9cc72 iw_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x53df8f53 iw_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6829ac33 iw_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8b973732 iw_cm_reject
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x96e8cb2c iw_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xea157569 iw_cm_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x05a8f0ca rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x12effbb3 rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2d896dc4 rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x30a56bac rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x339ab3de rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3697c7be rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x430c0874 rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x496babf8 rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6f0fa717 rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7e193ebe rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x827f1ef2 rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8a70ea85 rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9a805aea rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xac91ef1c rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdc5441d7 rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdf48073b rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xec0f82ee rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf681d02b rdma_resolve_route
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x169ac55f gameport_close
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x2df4f8f4 __gameport_register_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x4c885840 gameport_stop_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x5c82990a gameport_set_phys
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x8e94513d gameport_open
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xa2f3b25c __gameport_register_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xdb84e59d gameport_unregister_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xeec82f60 gameport_start_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xf3aac966 gameport_unregister_driver
+EXPORT_SYMBOL drivers/input/input-polldev 0x39453dc9 input_free_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x690eb020 input_unregister_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x9453d077 input_allocate_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xa4b7ff6f input_register_polled_device
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x17321f15 ad714x_disable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x4c7e38c4 ad714x_probe
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x7000b5b3 ad714x_remove
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xb86d0fc3 ad714x_enable
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x05318b05 sparse_keymap_free
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x34d52fdd sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x39be2aaf sparse_keymap_report_entry
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xa899b4ff sparse_keymap_setup
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xd23282ae sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xe64e6b16 sparse_keymap_report_event
+EXPORT_SYMBOL drivers/isdn/capi/capifs 0x64c3fb95 capifs_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/capifs 0xec1c7749 capifs_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2268db8c capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2df05ad3 detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x36de5e29 capi20_put_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47dbfa0a capi_message2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5ddb82db capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6581a736 capi20_register
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6f027f1d capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x777154ee attach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x877946ca capi_ctr_down
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8e9489f2 capi_ctr_suspend_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f5bbe6f capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0f4e1d66 b1_loaded
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1645f835 avmcard_dma_free
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2748da3d b1_load_t4file
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3a149cbe b1_load_config
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4a9a7c9e b1_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x58d1f58e b1_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x608ad961 b1ctl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x79c52f7d b1_alloc_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9e1ed11a b1_getrevision
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xad03fcd3 b1_parse_version
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd3d4af31 b1_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdab177c4 avmcard_dma_alloc
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe9de2e0f b1_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xefeb6ec1 b1_free_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf029cc4f b1_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1112336c b1dmactl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2b467a46 b1dma_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4e294461 b1dma_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4eea9ecd b1dma_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4f90ead7 b1dma_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x5c9806bb b1pciv4_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x65429fe7 b1dma_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xaa355ab5 b1dma_reset
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xece2cd86 t1pci_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1
+EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x183c42c3 proc_net_eicon
+EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x26263dfc mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x47652a6c mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xcc6102ea mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xe89bb5e9 mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x140972cb mISDNisar_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x69c19b46 mISDNisar_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x427ea441 FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x602d5ee2 hisax_init_pcmcia
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa9a1ee40 FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb4870f64 FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x5115efc0 isac_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x553e5c45 isacsx_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x6d973bae isac_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf4631012 isac_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf794f93e isacsx_irq
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xc10c66a7 register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xcb6351db isdn_ppp_unregister_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xddf31ff3 isdn_ppp_register_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0b1cbf83 mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x12015839 recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2423a303 get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x32b944f5 confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x43156d72 create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4326fbb0 mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4f65dc40 mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x58928f74 recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5ea22d76 bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x66b3743b mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7c5f901a mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x97801448 recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9a7e293b queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa85a30b9 dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xaf906e98 get_next_dframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb7dc706a recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbcd5a143 mISDN_freedchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbdb4c212 mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc9911755 recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd0acd3ff l1_event
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe3f81034 mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfae5cec4 mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register
+EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul
+EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp
+EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv
+EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page
+EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x24d946eb ir_raw_handler_register
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x3d07cea5 ir_raw_handler_unregister
+EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x249a6aa7 max2165_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x47a9a00f mc44s803_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xe92d68cc mt2060_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x5995a255 mt2131_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x5fa5d9c9 mt2266_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xcfc96fdd mxl5005s_attach
+EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xfd12f86e qt1010_attach
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x1b0d6114 xc2028_attach
+EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x962dd205 xc5000_attach
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0d978f4a flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1775a781 flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2b2c6109 flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2bf31281 flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x32ede168 flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3a07f085 flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x599808e1 flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5b153022 flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5de62e67 flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6692c90b flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6e3fa3d8 flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x81b2542d flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x88643de1 flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8ccaf076 flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9928ac40 flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbd6be7e4 flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdfb05baf flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe70d8096 flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xec274779 flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xf9b81e6d flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x048b8744 bt878_device_control
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x209e5d08 bt878_start
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x3c8f59cc bt878
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x92dcb3fd bt878_stop
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0024346e write_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x178746f7 dst_error_recovery
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x209ad87f dst_attach
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4fb55eb1 rdc_reset_state
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5898929d dst_comm_init
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x64ce21d4 dst_error_bailout
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x72ea0cbd dst_pio_disable
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x9d96e2e4 dst_wait_dst_ready
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xdc75a770 read_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0xf3e29f40 dst_ca_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0f39fda6 dvb_unregister_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1d288c5a dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2f7bdd06 dvb_ringbuffer_free
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31dab179 dvb_dmx_swfilter_packets
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x373b1b77 dvb_ringbuffer_read_user
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x39788629 dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x39ebd432 dvb_unregister_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a3aab99 dvb_ringbuffer_flush
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3ffa1fc7 dvb_dmxdev_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4b6632ef dvb_unregister_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x53fb82ea dvb_net_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x66960b21 dvb_ringbuffer_read
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6d964eb1 dvb_ringbuffer_avail
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6f8a54f4 dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x76627e35 dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x79110eb7 dvb_frontend_detach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7dad4bde dvb_dmxdev_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x849c8925 dvb_register_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x87c36616 dvb_dmx_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8894b426 dvb_dmx_swfilter_204
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9059ed41 dvb_net_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x96451b9b dvb_register_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x99171b72 dvb_generic_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa354bfc6 dvb_generic_open
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac466ae7 dvb_ringbuffer_empty
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb381c945 dvb_dmx_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb8e960ae dvb_dmx_swfilter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb976a677 dvb_frontend_reinitialise
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc535f849 dvb_ca_en50221_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xca4feed5 dvb_ringbuffer_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcc5a963c dvb_generic_ioctl
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd1b90709 dvb_register_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe66489a0 dvb_ringbuffer_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf029194d dvb_ca_en50221_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x09f0521c dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x206ee203 dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2f0d8843 dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x598c0a4c dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x60094e7f dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8b6add2f dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xae6be096 usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xb7554a30 af9005_rc_decode
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0f25785a dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x17d58d3c dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x1dc5ef3b dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2bfcfbe2 dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x461e4803 dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6a3ae765 dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x80d95b39 dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x8ba40fa5 dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xafe37414 dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd2006a9b dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xddd167f8 dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x27dac903 af9013_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0xe120f7c8 atbm8830_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x51cef4c5 au8522_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xca7c726a bcm3510_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xde4f83e5 cx22700_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x403902c2 cx22702_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x352523b6 cx24110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x3c760ad4 cx24113_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xa0fe469b cx24113_agc_callback
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xde65ec9b cx24116_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x082303f8 cx24123_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x2ad76592 cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x3563d7fc dib0070_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x4303e3d4 dib0070_get_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7d64369a dib0070_ctrl_agc_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xef6022f2 dib0070_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xf5504249 dib0070_set_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0ad88c64 dib0090_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x37411f3a dib0090_gain_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x3a404b6f dib0090_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4aad190e dib0090_get_current_gain
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4f87775a dib0090_dcc_freq
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x574f44b3 dib0090_pwm_gain_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x6c5d5c27 dib0090_register
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xe6bcbf3b dib0090_get_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xa2fa1446 dib3000mb_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x2c960e88 dib3000mc_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x54342d29 dib3000mc_pid_parse
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x78897e2e dib3000mc_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xd9d804dd dib3000mc_pid_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xea9939b0 dib3000mc_set_config
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xedeec042 dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x4fb45560 dib7000m_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x8618af34 dib7000m_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0b113e16 dib7000p_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x22e2a229 dib7000pc_detection
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3ff64fd3 dib7000p_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x5262316c dib7000p_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x8bb75152 dib7000p_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xbf8904ff dib7000p_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc1b54272 dib7000p_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xfc42de50 dib7000p_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x116a9514 dib8000_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x175cd561 dib8000_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2de8455b dib8000_pwm_agc_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x31027fe6 dib8000_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4c8f91f2 dib8000_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x585812d0 dib8000_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x5f18969d dib8000_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x9271b1d0 dib8000_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xac9ec0a9 dib8000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb0640952 dib8000_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xff00440d dib8000_get_adc_power
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x05dc8f63 dibx000_exit_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x124a48a4 dibx000_get_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x2d0ef12d dibx000_reset_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xcffcc744 dibx000_init_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xe9257ea7 ds3000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xf6cdc9cb dvb_pll_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xa83b8060 isl6405_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x8a01c1ff isl6421_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0xf961cb3a isl6423_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x99503bcb itd1000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x13376100 l64781_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x93787f46 lgdt3305_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xa62a537d lgdt330x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xe7e3e772 lgs8gxx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x35a3bd22 lnbh24_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xff50709a lnbp21_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0xbd04453a mb86a16_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x5c92d3ff mt312_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x0bcb6282 mt352_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x70704052 nxt200x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x773e97f7 nxt6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x100639b0 or51132_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xf4fb9571 or51211_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xc4323c0b s5h1409_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xe0d069e1 s5h1411_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x0bacf7f6 s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xe588e691 s5h1420_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x8c172c0b si21xx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x920ba9e5 sp8870_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0xa083c58f sp887x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x39131d82 stb0899_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x8632bfe2 stb6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xee43f043 stb6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xea2d767d stv0288_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x268eca22 stv0297_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x7cf3cab4 stv0299_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xbfb241c3 stv0900_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x72257dba stv090x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x6f022e74 stv6110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xe277760f stv6110x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xf7b54529 tda10021_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x70110637 tda10023_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x720512c2 tda10048_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xba7f978a tda10045_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xd36eb636 tda10046_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xaf8d3d45 tda10086_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xf71b8c99 tda8083_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0x8c8fd7fd tda8261_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xde8522fd tda826x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x2a71b5f4 tua6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xc48d9c18 ves1820_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x03dcb88d ves1x93_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x620298cc zl10036_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xf26a4ad9 zl10039_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x072135fb zl10353_attach
+EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x25f87545 ttpci_eeprom_parse_mac
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x9014452c ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xbbd344e6 ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x0068f68b bttv_sub_register
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x1a801ed9 bttv_sub_unregister
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x51f60254 bttv_get_pcidev
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc595e283 btcx_riscmem_free
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xef0abbcb btcx_riscmem_alloc
+EXPORT_SYMBOL drivers/media/video/cpia 0x254344da cpia_unregister_camera
+EXPORT_SYMBOL drivers/media/video/cpia 0x368a7e4c cpia_register_camera
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x7024b190 cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x8624a829 cx18_release_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x9ff57142 cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xcae39370 cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xde51a8d3 cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x0dca8202 cx231xx_register_extension
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x90d89aa3 cx231xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x25ec70e8 vp3054_i2c_probe
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xcc394ff4 vp3054_i2c_remove
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x05355eb7 cx8800_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x0d23c73b cx88_get_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x16bafbdf cx88_set_freq
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x3b05c025 cx88_set_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x5506878f cx88_video_mux
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xade4cefb cx88_enum_input
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x309645bc cx8802_buf_prepare
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x53f7f39b cx8802_register_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xb52fe799 cx8802_cancel_buffers
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xbc0f15b9 cx8802_buf_queue
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xc0fe6a79 cx8802_get_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf796b60d cx8802_unregister_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1c034589 cx88_risc_stopper
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2c56ce4b cx88_risc_databuffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x33799deb cx88_sram_channel_dump
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x34b4e7f8 cx88_shutdown
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3bfa8aaf cx88_set_tvnorm
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x46f8ea5c cx88_core_get
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x55e6deca cx88_set_stereo
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6554d652 cx88_vdev_init
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x671ea443 cx88_set_scale
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7be130ae cx88_sram_channel_setup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7f811284 cx88_ir_start
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x89d1c2ec cx88_core_put
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9f72b394 cx88_wakeup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa1c2b705 cx88_core_irq
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbfd7c0fa cx88_set_tvaudio
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc1e844a1 cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcc66e6bd cx88_reset
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd2c19ed8 cx88_free_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd87c0de3 cx88_newstation
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe09b5f0b cx88_ir_stop
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe35d2f59 cx88_risc_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xeb7d93ae cx88_get_stereo
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x8c231d2b em28xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xcae5efdc em28xx_register_extension
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x056d6bb1 gspca_disconnect
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x2723db1a gspca_get_i_frame
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x410d9dc7 gspca_auto_gain_n_exposure
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6391622e gspca_dev_probe
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6d1e29d0 gspca_suspend
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa73d5be3 gspca_resume
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xd4b2a0ea gspca_frame_add
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x04dc6c7c ivtv_api
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x15536076 ivtv_vapi_result
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x1f1add9c ivtv_udma_unmap
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x572cfad7 ivtv_set_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5bead2af ivtv_vapi
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x638d39c6 ivtv_udma_prepare
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x6b0bc84d ivtv_clear_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x94a20c69 ivtv_udma_setup
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb29fd391 ivtv_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbcae0435 ivtv_udma_alloc
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xdbed7466 ivtv_init_on_first_open
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x19cca17d saa7134_pgtable_alloc
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x21d3b258 saa7134_ts_register
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x273aeefb saa_dsp_writel
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3cb3ce7b saa7134_devlist_lock
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4e859bad saa7134_tvaudio_setmute
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x58688ee8 saa7134_set_gpio
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x80fc3711 saa7134_dmasound_init
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x81d975eb saa7134_pgtable_build
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8982d35a saa7134_dmasound_exit
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbf2ccfdd saa7134_ts_unregister
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd623efc2 saa7134_set_dmabits
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xea04dd8a saa7134_pgtable_free
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x1dd4521d soc_camera_host_register
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x948d37eb soc_camera_apply_sensor_flags
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xab636d76 soc_camera_xlate_by_fourcc
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xdc6a0466 soc_camera_host_unregister
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x518ed083 tveeprom_hauppauge_analog
+EXPORT_SYMBOL drivers/media/video/tveeprom 0xd5312bd8 tveeprom_read
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x2d9d7c74 usbvideo_RegisterVideoDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x32be48af usbvideo_AllocateDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x4dac5792 usbvideo_Deregister
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x5cbc5b98 usbvideo_TestPattern
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xb13cb386 usbvideo_register
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xc441e31d usbvideo_DeinterlaceFrame
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush
+EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xf948f53e v4l_compat_translate_ioctl
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x6d63fb9b v4l2_chip_ident_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x95de8e3a v4l2_chip_match_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x1e47adcc v4l2_m2m_mmap
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x3e671563 v4l2_m2m_get_vq
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x4c2c1b0d v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x6afa3293 v4l2_m2m_job_finish
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x3fc35a54 videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x421f3a0d videobuf_dvb_dealloc_frontends
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x4ed06449 videobuf_dvb_get_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x7ab4247b videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x80541a2b videobuf_dvb_register_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb7c1ff5b videobuf_dvb_find_frontend
+EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period
+EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x1f498db5 video_unregister_device
+EXPORT_SYMBOL drivers/media/video/videodev 0x3905bd20 video_register_device_no_warn
+EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x446c15b5 video_usercopy
+EXPORT_SYMBOL drivers/media/video/videodev 0x4bced313 video_ioctl2
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl
+EXPORT_SYMBOL drivers/media/video/videodev 0x641f648e video_device_alloc
+EXPORT_SYMBOL drivers/media/video/videodev 0x91357326 video_device_release_empty
+EXPORT_SYMBOL drivers/media/video/videodev 0xcf73dc6a video_register_device
+EXPORT_SYMBOL drivers/media/video/videodev 0xd4d0ec0d video_devdata
+EXPORT_SYMBOL drivers/media/video/videodev 0xda7f9d3d video_device_release
+EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct
+EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x1c7d2449 videocodec_detach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x4ef3ea38 videocodec_attach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x84d399fc videocodec_register
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xe50181a5 videocodec_unregister
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x488cab20 memstick_resume_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x5107cfa9 memstick_set_rw_addr
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x560618b2 memstick_unregister_driver
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x63dc6077 memstick_register_driver
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x830ea586 memstick_next_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x90810e8a memstick_init_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x909fb80f memstick_suspend_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xb4206860 memstick_free_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xd8fe116a memstick_alloc_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xe58a09ad memstick_new_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xe707c5d3 memstick_remove_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xefa97fe6 memstick_add_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xf09cc642 memstick_detect_change
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x05bd32fa mpt_verify_adapter
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1c489479 mpt_halt_firmware
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1e5001a9 mpt_reset_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x28eba4d0 mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x32b68a39 mpt_detach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3c348018 mpt_resume
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x400261be mpt_HardResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4185280f mpt_print_ioc_summary
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x44ce3d13 mpt_send_handshake_request
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5ba7bef4 mpt_free_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x64d90d3a mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x77b13a89 mpt_alloc_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x88ef2902 mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x899efd69 mpt_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8bb4d563 mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x953d30b3 mpt_config
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x996f6f66 mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa7fbb8d0 mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xba5a8f8c mpt_device_driver_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc2debd0f mpt_GetIocState
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xce441e62 mpt_put_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd19241de mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd845dccc mpt_event_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe58f8d37 mpt_free_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe84f98f7 mptbase_sas_persist_operation
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xeb13a7df mpt_attach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf4a55794 mpt_findImVolumes
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfcf631a5 mpt_get_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xffec346f mpt_register
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0eb328df mptscsih_scandv_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x14d1239c mptscsih_is_phys_disk
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1c142215 mptscsih_io_done
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x25f31b13 mptscsih_host_attrs
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x26546840 mptscsih_dev_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2cc47e87 mptscsih_get_scsi_lookup
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x468035cd mptscsih_event_process
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x479892f8 mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4e5c48fe mptscsih_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x54090e8d mptscsih_ioc_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5d4a1951 mptscsih_bios_param
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5e64b4db mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x60619fba mptscsih_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x736cc25a mptscsih_proc_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x77ea5777 mptscsih_bus_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7e02fe06 mptscsih_qcmd
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x830fa723 mptscsih_shutdown
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8bff8667 mptscsih_host_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8c0fd690 mptscsih_resume
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9a8c03f9 mptscsih_slave_configure
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa2fe3a3a mptscsih_abort
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa4f67b50 mptscsih_remove
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xabc02e34 mptscsih_raid_id_to_num
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcd1533a2 mptscsih_taskmgmt_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe12dd648 mptscsih_change_queue_depth
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xec7f7950 mptscsih_slave_destroy
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x127994e6 i2o_device_claim_release
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2c8d4dcc i2o_status_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3508b4d1 i2o_cntxt_list_add
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x37d6a446 i2o_parm_issue
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x50fd032d i2o_cntxt_list_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5c720fcf i2o_find_iop
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x60b9f138 i2o_driver_notify_controller_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x63e130f7 i2o_driver_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6dc6b79c i2o_event_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7c5d41fb i2o_parm_field_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7df22b81 i2o_iop_find_device
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa514356d i2o_device_claim
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xad4fe709 i2o_driver_notify_device_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb0bc0d7a i2o_exec_lct_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb0be5105 i2o_driver_unregister
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd222be7d i2o_driver_notify_controller_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd8a0e0b4 i2o_cntxt_list_remove
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdbe6e2dd i2o_parm_table_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe381080c i2o_driver_notify_device_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf598a4c9 i2o_msg_post_wait_mem
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfbb8058b i2o_msg_get_wait
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfcd3e540 i2o_cntxt_list_get_ptr
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x0f207bbc pasic3_read_register
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xfe8cf871 pasic3_write_register
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2a19f3b4 mc13783_irq_request_nounmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3da56aaf mc13783_irq_request
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x449ec3c4 mc13783_lock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x490c6bbd mc13783_unlock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x5bc786e2 mc13783_irq_unmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x63cfaf6b mc13783_reg_read
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x875ef12b mc13783_reg_write
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x9f2f2871 mc13783_irq_ack
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xa26e18ca mc13783_irq_mask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xbc637d72 mc13783_irq_free
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xca508e0a mc13783_irq_status
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe30ba35a mc13783_reg_rmw
+EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2
+EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1
+EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib
+EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led
+EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw
+EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x2f5c4a21 ad_dpot_remove
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x9d748faa ad_dpot_probe
+EXPORT_SYMBOL drivers/misc/c2port/core 0x55c00f7d c2port_device_unregister
+EXPORT_SYMBOL drivers/misc/c2port/core 0xc7fce724 c2port_device_register
+EXPORT_SYMBOL drivers/misc/ioc4 0x0d345774 ioc4_register_submodule
+EXPORT_SYMBOL drivers/misc/ioc4 0x76d8ca1f ioc4_unregister_submodule
+EXPORT_SYMBOL drivers/misc/tifm_core 0x5051fe25 tifm_unregister_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x768ebeb5 tifm_unmap_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x85ce929f tifm_free_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x87bd4c86 tifm_map_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x8a9bcc53 tifm_free_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x8d432089 tifm_has_ms_pif
+EXPORT_SYMBOL drivers/misc/tifm_core 0x932333ad tifm_alloc_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x97049b92 tifm_eject
+EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work
+EXPORT_SYMBOL drivers/misc/tifm_core 0xc4d34fc6 tifm_register_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0xe7e7edfb tifm_add_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xf247f24a tifm_alloc_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0xff94fc31 tifm_remove_adapter
+EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x454a7fe6 mmc_cleanup_queue
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x5abed614 cfi_varsize_frob
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x9f04c559 cfi_read_pri
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd42664ac cfi_fixup
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x6c2ce28c unregister_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x986a701d map_destroy
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xecc614f1 register_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xf3081eb2 do_map_probe
+EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xc253df06 mtd_do_chip_probe
+EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x1fcc20c9 lpddr_cmdset
+EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xc631bed5 simple_map_init
+EXPORT_SYMBOL drivers/mtd/mtd 0x87e05c19 add_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtd 0x969c1b93 del_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x396aefea mtd_concat_destroy
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x868c7b4c mtd_concat_create
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x090d08be nand_default_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x549fb2ff nand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x02ddeba9 nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x541070ba nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x1a25482a onenand_addr
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x556a99fa flexonenand_region
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9c37ca54 onenand_default_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9fd9be7d onenand_scan_bbt
+EXPORT_SYMBOL drivers/net/8390 0x028a8aff __alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/8390 0x1e3e204b ei_get_stats
+EXPORT_SYMBOL drivers/net/8390 0x2030e1a8 ei_tx_timeout
+EXPORT_SYMBOL drivers/net/8390 0x2a66c333 NS8390_init
+EXPORT_SYMBOL drivers/net/8390 0x3f379d78 ei_open
+EXPORT_SYMBOL drivers/net/8390 0x434c9c92 ei_close
+EXPORT_SYMBOL drivers/net/8390 0x4ae56f50 ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390 0x54c6b9b9 ei_poll
+EXPORT_SYMBOL drivers/net/8390 0xc022f9c1 ei_start_xmit
+EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt
+EXPORT_SYMBOL drivers/net/8390 0xde542f61 ei_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1b55bf1a arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x31278c1f arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4fa48a72 arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x55a22091 arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5a5cc3c0 alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x91650ac2 arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x94426269 arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x97d2f4ec arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x99ed9176 arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe381d471 arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x3407d827 com20020_check
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x52a62274 com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x7db74216 com20020_found
+EXPORT_SYMBOL drivers/net/bnx2 0xbecf1e26 bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/bnx2x 0xe424e04b bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/cnic 0x38377cf0 cnic_register_driver
+EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0757cdf3 cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1e2c36a7 cxgb3_register_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1fe6e9ad cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x25275a55 cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x27a3440a cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2992490e cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2a36c1b3 cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x455506a2 t3_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x61bb7c32 cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa8301a58 t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd4f1d328 cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd727a737 t3_l2e_free
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe2bd65fb dev2t3cdev
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe88070ea t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf3526e49 t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfa15d7d2 cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x063393a8 cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x106c3862 cxgb4_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x320cd9c8 cxgb4_netdev_by_hwid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x398e7af9 cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x516ff57b cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5a222705 cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6db7d7d2 cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x73a933f9 cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x74b95696 cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7547b8a4 cxgb4_create_server6
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7e5aee57 cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8e5ab2b3 cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x93b892f6 cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa1783362 cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb1505633 cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xcffcac0e cxgb4_create_server
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe6e01d1b cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x0028c445 hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x49bdfb64 hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x5a8cde84 hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x641f185e hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xfcbf05df hdlcdrv_register
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4657dba2 sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6e41fb8d sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x768d4dad sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x883b3b1b sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9ab08cc9 sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xaedbf784 sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xba80ccf2 irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcee1158e sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdef55f13 sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfe22ad63 irda_register_dongle
+EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage
+EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl
+EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart
+EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag
+EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe
+EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an
+EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok
+EXPORT_SYMBOL drivers/net/mii 0x02cfe3c4 mii_ethtool_sset
+EXPORT_SYMBOL drivers/net/mii 0x321bfe68 generic_mii_ioctl
+EXPORT_SYMBOL drivers/net/mii 0x4a67bdbc mii_check_gmii_support
+EXPORT_SYMBOL drivers/net/mii 0x721136bb mii_link_ok
+EXPORT_SYMBOL drivers/net/mii 0x776c32b8 mii_nway_restart
+EXPORT_SYMBOL drivers/net/mii 0x85fc5c4f mii_check_media
+EXPORT_SYMBOL drivers/net/mii 0xc8148cc4 mii_ethtool_gset
+EXPORT_SYMBOL drivers/net/mii 0xc9d5e100 mii_check_link
+EXPORT_SYMBOL drivers/net/pppox 0x6bb2c87a pppox_ioctl
+EXPORT_SYMBOL drivers/net/pppox 0xa0b32825 register_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0xb7d624c9 pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/sungem_phy 0x25b234f8 mii_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x00d86fcc tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x2fc2deb4 tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xb202b39f tms380tr_open
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xcd810877 tmsdev_term
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xeb1963ab tms380tr_close
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x03edd79b register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x03f03504 hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x1bed98f1 hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x294773ce attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x3eb3f0dd hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x46e867df detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x56bc2fe1 hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x629460c2 alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x8e9d561f hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xd465eafd unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xf5156cf8 unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xfa6d47da i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x88adf840 reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x8fb1620f init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x941b6276 stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x24346421 ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7f9a1b42 ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x988135f0 ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xdb21d023 ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x207bbfd5 ath9k_cmn_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2ee3bda4 ath9k_cmn_rx_skb_preprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3fc98c38 ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x691a0390 ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8d309e35 ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8d96ce64 ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x9e40504f ath9k_cmn_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0579d2ea ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0741941b ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ea188fc ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f749dc0 ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e1201b2 ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f9b7158 ath9k_hw_extend_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1fdb5849 ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1fe6d70c ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x202f844a ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2321e067 ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23bbaeee ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x289d854f ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29b5e6c7 ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b21c6f6 ath9k_hw_setmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2bd69616 ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d1d1ed3 ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x34e29b5e ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x369a1138 ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38fddf1a ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3ba0b3ca ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c90bad5 ath9k_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d352d42 ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3fb3ca0d ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x454b1737 ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x461caa6b ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a83dfbe ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ad9b10b ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ebcbbb5 ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x636f2d62 ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63805c6e ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x647b042c ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65349edc ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6568dca7 ath9k_hw_setcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e7de167 ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7106318d ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73481daa ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x742508b8 ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7575df2a ath9k_hw_set_keycache_entry
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77af93dd ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d92e169 ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7db5aeac ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x81da99a6 ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88478ce2 ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f36877a ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91759edc ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x924609f0 ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9bcc3cce ath9k_hw_stoppcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d17e1af ath9k_hw_keysetmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa489ba7a ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa529d82f ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa6aef2b2 ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad77ec0c ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xadc60f64 ath9k_hw_procmibevent
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf4a2936 ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xafc90db1 ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb12133fd ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1b149f8 ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb41708cb ath9k_hw_stoptxdma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4e1b746 ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbab3c745 ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb1c22d8 ath9k_hw_getcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc109a422 ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc15f86c3 ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2569c5b ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc359b4d2 ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5389aab ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca3108b7 ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1a4ea32 ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd51314a1 ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd664240c ath9k_hw_cleartxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde6dedda ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdeff8542 ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe15e12db ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe57e47f3 ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8ebfeac ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xedba7d6d ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf92524d2 ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc302942 ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfeb761f3 ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfed13967 ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfed7699f ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfefe67a5 ath9k_hw_keyisvalid
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x3694fdb4 init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xcca2b318 stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xf70458db atmel_open
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x03acb5d7 hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x09f0ca44 hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1119cd1b prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x147ea57d hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3392bb02 hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3395d7ae hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3dfeada6 hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4bda7802 hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x526ed172 hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5fa3d3b0 hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x76e995d5 hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x80f22b82 hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8dc248bf hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9cf762f3 hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa73fa012 hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa9e9cd4a hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xab96dde6 hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbdfba3d1 hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc0060f90 hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd1fdc3bf hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdf407180 hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xebbceb87 hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xed54aaa8 hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xed92f228 hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf31116e6 hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x02fdab3a libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0e4c7c2f libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x15d8ab8e libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1ebf744a libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x22f6f7f8 libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x26759059 libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6c3d272a libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x973244dc libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa12e0fbb libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb5524c18 free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbdf12b3b libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc386d9fc alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc5fbbfcd libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd1d9f912 libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdd0e7d54 libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe1036aeb libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe7f79c1d libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe921d9ac libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xeb27c434 libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xed98346e libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf9b422a3 libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x017e166d iwl_remove_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x02cefecd iwl_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x05ea4314 iwl_leds_background
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x068ceb7e iwl_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x07012d5c iwl_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0ce2f4e4 iwl_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e775ffd iwl_eeprom_get_mac
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e7c9c57 iwl_bg_start_internal_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14cc53df iwl_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14d641b1 iwl_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19168980 iwl_setup_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a22d9e6 iwlcore_eeprom_enhanced_txpower
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x203fe1ff iwl_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21c43f9b iwl_add_bssid_station
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2228fcd1 iwl_rf_kill_ct_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x260da73e iwl_sta_tx_modify_enable_tid
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x27177499 iwl_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x28a9b103 iwl_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x29f531a8 iwl_verify_ucode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b6bca84 iwl_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2cacb288 iwl_good_plcp_health
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32a58841 iwl_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x33167f63 iwl_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x34f7c79c iwl_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35c6014f iwl_ht_enabled
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37004251 iwl_sta_modify_sleep_tx_count
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x39bd0867 iwl_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3afe6bed iwl_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3d0fc0ba iwl_update_tkip_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x40505e3c iwl_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x40ff77d0 iwl_set_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41dc7efb iwl_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x427bb269 iwl_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4428f3bc iwl_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x453862a7 iwl_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x45a0850b iwl_sta_modify_ps_wake
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4709b712 iwl_led_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x485009d4 iwl_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x485ebc55 iwl_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x499c965b iwl_eeprom_check_version
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a294388 iwl_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4b0bb907 iwlcore_eeprom_acquire_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e7b9750 iwl_mac_beacon_update
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x51b96b36 iwl_tt_enter_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x51d19dbb iwl_free_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5d306f01 iwl_remove_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x602940ff iwl_tt_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6226e77e iwl_tt_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62ce21e2 iwl_rx_missed_beacon_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62d62ee3 iwl_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62d77ef0 iwl_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x63d40c1f iwl_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6608ab63 iwl_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6686786f iwl_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6a066f7b iwl_restore_default_wep_keys
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6b395764 iwl_send_calib_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6e2d170a iwl_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7146cf46 iwl_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71db00d0 iwl_bg_abort_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7245173b iwl_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x72ccc4e3 iwl_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7424b265 iwl_dump_csr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x74783110 iwl_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7d088010 iwl_chain_noise_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8327e50c iwlcore_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85dbd968 iwl_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85ea6909 iwl_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x86c21875 iwl_tt_handler
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8778cdd6 iwlcore_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89c21f02 iwl_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8b7b0d09 iwl_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8bce0594 iwl_sta_rx_agg_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8fdf6d8f iwlcore_eeprom_verify_signature
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8ff6fa14 iwl_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x90db29d6 iwl_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x91984c6f iwl_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x930fda96 iwl_tt_exit_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x93f7f9cc iwl_dump_fh
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x940c51aa iwlcore_rts_tx_cmd_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x94f207ef iwl_calib_free_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x99e72e40 iwl_rate_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9faced57 iwl_calib_set
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa3b21f20 iwl_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5e58975 iwl_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa6f6454e iwl_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa74a60a0 iwl_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa765bf5a iwl_set_hw_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa789c20c iwl_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa9d6dd53 iwlcore_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xab140194 iwl_recover_from_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xace9bb61 iwl_toggle_tx_ant
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xad2449c2 iwl_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xae29a625 iwl_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xae5c5c14 iwl_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb099f28c iwl_force_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb11711fd iwl_rx_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb58b9be6 iwl_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb59568f4 iwl_free_tfds_in_queue
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8473f77 iwl_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb86a0fa3 iwl_bg_scan_completed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb9d70c40 iwl_sta_rx_agg_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbabd6739 iwl_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbed219ba iwl_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc2181a7c iwl_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc53ce691 iwl_hw_detect
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc63605a1 iwl_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc64668b3 iwl_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcee2e239 iwlcore_eeprom_release_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf7862d2 iwl_reset_run_time_calib
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd5c6de17 iwl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd707a3da iwl_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd751b623 iwl_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd82bb2aa iwl_set_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdaae783e iwl_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdbde32e0 iwl_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdc414a46 iwl_reply_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdd62b227 iwl_set_rxon_chain
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe07f2f1d iwl_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3a45fc7 iwl_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe6526d87 iwl_tx_ant_restriction
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67257a2 iwl_bg_scan_check
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7876140 iwl_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xed54b750 iwl_configure_filter
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2759e2a iwl_sensitivity_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf4324d76 iwl_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa636e05 iwl_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa9dd20f iwl_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfb301ac5 iwl_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe82c3e0 iwl_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff180c17 iwl_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff7c39cb iwl_init_sensitivity
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x162ba7f1 orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1e3338e0 orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2ffaf29c orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x30cfc592 orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3f194d8f __orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5d4c41c1 orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x607cace3 free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x73fd4746 alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7982ec28 __orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7995a833 orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7c179684 orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbcf55ee6 orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xde711df2 orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe59426e3 orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfa3a292c orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfa544b70 orinoco_tx_timeout
+EXPORT_SYMBOL drivers/parport/parport 0x01f48077 parport_read
+EXPORT_SYMBOL drivers/parport/parport 0x17a34bd3 parport_register_driver
+EXPORT_SYMBOL drivers/parport/parport 0x1f6fb212 parport_set_timeout
+EXPORT_SYMBOL drivers/parport/parport 0x2f4cca10 parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL drivers/parport/parport 0x31b9c93a parport_claim_or_block
+EXPORT_SYMBOL drivers/parport/parport 0x37432fd7 parport_wait_peripheral
+EXPORT_SYMBOL drivers/parport/parport 0x3af6b995 parport_release
+EXPORT_SYMBOL drivers/parport/parport 0x3c527322 parport_announce_port
+EXPORT_SYMBOL drivers/parport/parport 0x44d4728a parport_ieee1284_write_compat
+EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt
+EXPORT_SYMBOL drivers/parport/parport 0x554387d3 parport_ieee1284_epp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x55917298 parport_negotiate
+EXPORT_SYMBOL drivers/parport/parport 0x5e6742f9 parport_find_number
+EXPORT_SYMBOL drivers/parport/parport 0x62d478d4 parport_unregister_device
+EXPORT_SYMBOL drivers/parport/parport 0x6b0a52ba parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x8c484842 parport_register_device
+EXPORT_SYMBOL drivers/parport/parport 0x91b4597c parport_ieee1284_read_byte
+EXPORT_SYMBOL drivers/parport/parport 0x91b8f36a parport_ieee1284_epp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0x950f2169 parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler
+EXPORT_SYMBOL drivers/parport/parport 0xa9d3589c parport_claim
+EXPORT_SYMBOL drivers/parport/parport 0xaa238621 parport_put_port
+EXPORT_SYMBOL drivers/parport/parport 0xab46f400 parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0xbda25ef5 parport_write
+EXPORT_SYMBOL drivers/parport/parport 0xbdff0137 parport_ieee1284_read_nibble
+EXPORT_SYMBOL drivers/parport/parport 0xbe0f144d parport_remove_port
+EXPORT_SYMBOL drivers/parport/parport 0xc17f9665 parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0xd1d76a68 parport_register_port
+EXPORT_SYMBOL drivers/parport/parport 0xe09d0f57 parport_unregister_driver
+EXPORT_SYMBOL drivers/parport/parport 0xe1cc4609 parport_find_base
+EXPORT_SYMBOL drivers/parport/parport 0xf73f06e5 parport_get_port
+EXPORT_SYMBOL drivers/parport/parport 0xfdc20918 parport_wait_event
+EXPORT_SYMBOL drivers/parport/parport_pc 0x1bc280aa parport_pc_probe_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0x5cff4cca parport_pc_unregister_port
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x01a333f2 pcmcia_request_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x07dffa41 pcmcia_modify_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x09ccd36c pcmcia_loop_config
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x18892993 pcmcia_dev_present
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2d1b9f0c pcmcia_access_configuration_register
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x46c236ca pcmcia_request_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4c734b17 pcmcia_unregister_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6c419902 pcmcia_get_mac_from_cis
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x896a4928 pcmcia_release_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x938ecd20 pcmcia_get_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa35b7b53 pcmcia_request_io
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa73518af pcmcia_disable_device
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xafa578b8 pcmcia_loop_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb7246336 pcmcia_request_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc3c24b39 pcmcia_map_mem_page
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcad4d727 pcmcia_register_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf8423b1e __pcmcia_request_exclusive_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x28fdeafc pcmcia_put_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3327433a pcmcia_socket_class
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x41576450 pcmcia_parse_uevents
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x48e0548f pcmcia_get_socket_by_nr
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x82898e09 pcmcia_reset_card
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9cfecf4c pcmcia_parse_events
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa02fac99 pcmcia_register_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xacc56c7e pcmcia_unregister_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb3e7b9f1 pcmcia_get_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xecd5b224 pccard_register_pcmcia
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x01ac8983 pccard_nonstatic_ops
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x9095d986 pccard_static_ops
+EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command
+EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x3dab6016 pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x0d9255f8 fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x23dbd3c2 fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x352adbfd fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x805f8645 fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x848c92c7 fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa6f588b4 fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xaab0b04a fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00a2f53c fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x046ac5fc fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0bb5b963 fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0f52001c fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14e2382f libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1d4276a3 fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1e92112e fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x228205ff fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x27e4e76d fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x295ddaed fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3140b19a fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3f3233f9 fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4093f98b fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4596881c fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4a39a3e0 fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4bca9c24 fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6227e32d fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x679dda9c fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x69671f84 fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x72822a0c fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x72ed543c fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76514e48 fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7d4d3062 fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x82691fc8 fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x90b28800 fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b270cc2 fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ca39bb4 fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9ca94070 fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9fb10817 fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa7d1b77a fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xabbb3f38 fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xae4280d7 fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb7365949 fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbfff4d88 fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xceaff541 fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd942767e fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdc1527b9 fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf5088d46 fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf752dd13 fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc035057 _fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc169adf fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfcfbdab1 fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x64e25b56 mraid_mm_register_adp
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x012c1da3 osd_req_flush_obsd
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x06b23792 osd_req_list_dev_partitions
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x225637f2 osd_req_add_set_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3ba6ea0e osd_req_list_collection_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x42a88104 osd_req_read_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4bfa74f6 osd_req_decode_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5017594d osd_req_flush_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x53b2b3f7 osd_req_get_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x573bb2b8 osd_req_read
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5c737963 osd_req_flush_collection
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x61a73c85 osd_req_remove_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x68c4b84f osd_req_write_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6a915c69 osd_req_remove_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x705131ff osd_execute_request_async
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7129e0cd osd_req_list_partition_collections
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x81c828b1 osd_req_add_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x93f3e9c1 osd_finalize_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x943d2b03 osd_req_create_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaade077c osd_req_decode_sense_full
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaf846e81 osd_end_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb4cf6d5c osd_req_add_get_attr_page
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb67a64ec osd_req_create_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb98497d3 osd_req_set_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbcec8b9a osd_dev_fini
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf4e0600 osd_req_flush_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd4673ad8 osd_start_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd509bf5d osd_req_write
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe8d67b62 osd_req_format
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xeb464099 osd_req_list_partition_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xeeaec092 osd_execute_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf665c7b8 osd_dev_init
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfb7c2cd4 osd_auto_detect_ver
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x54c0253d osduld_device_info
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x75876d94 osduld_device_same
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xdbda41c6 osduld_register_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xe2f9b6b3 osduld_info_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xe7c46b1e osduld_path_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xf857fb80 osduld_put_device
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x09807582 qlogicfas408_abort
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x510cce73 qlogicfas408_bus_reset
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xadf5e0b7 qlogicfas408_disable_ints
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xae887fbf qlogicfas408_queuecommand
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xb519dc56 qlogicfas408_info
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdf6b0763 qlogicfas408_biosparam
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup
+EXPORT_SYMBOL drivers/scsi/raid_class 0xf20f3173 raid_class_attach
+EXPORT_SYMBOL drivers/scsi/raid_class 0xfd135970 raid_class_release
+EXPORT_SYMBOL drivers/scsi/raid_class 0xfe8ffa6f raid_component_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x020ceb90 fc_host_post_vendor_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x27cd3986 fc_vport_create
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x293cb8f4 scsi_is_fc_rport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x479ca1d7 fc_remote_port_rolechg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4e29d712 fc_host_post_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x79169e17 fc_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7e51bf18 fc_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x87d15a7a fc_remote_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x97b36ef0 fc_block_scsi_eh
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9a67d68b fc_remote_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xacfb53ec fc_vport_terminate
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf3ac9395 scsi_is_fc_vport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xfad3cba0 fc_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x06671491 sas_phy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2c2845b5 sas_phy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2c6a7860 sas_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x32313425 scsi_is_sas_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x483ddd15 sas_rphy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5ed31bac sas_remove_children
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x69e3bcac scsi_is_sas_rphy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa2b8d15f sas_phy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb02027d5 sas_port_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb5927bbf sas_expander_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb7cc36a0 sas_rphy_remove
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbdbb6db6 sas_port_mark_backlink
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc20fd594 sas_port_add_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc71e2fbb sas_port_alloc_num
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcdd8b751 sas_end_device_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcf8f1f2e sas_phy_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd10ed40f sas_rphy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd6f653e7 sas_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdcd0e89f sas_read_port_mode_page
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdd852aff scsi_is_sas_port
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdfd84e06 sas_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe5ce2e85 sas_rphy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf4fcb445 sas_port_delete_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf82ba0cd sas_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfed2a747 sas_port_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfed71035 sas_port_delete
+EXPORT_SYMBOL drivers/ssb/ssb 0x01db6202 ssb_dma_alloc_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0x025e75f9 ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL drivers/ssb/ssb 0x09ae4f7a ssb_device_disable
+EXPORT_SYMBOL drivers/ssb/ssb 0x0fc56ba0 ssb_set_devtypedata
+EXPORT_SYMBOL drivers/ssb/ssb 0x432c8bf4 ssb_bus_resume
+EXPORT_SYMBOL drivers/ssb/ssb 0x47a45b27 ssb_bus_pcibus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x4ada4201 ssb_bus_sdiobus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x592efda4 ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x59dbbb12 ssb_device_is_enabled
+EXPORT_SYMBOL drivers/ssb/ssb 0x69b605d2 ssb_device_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x6b67b544 ssb_bus_suspend
+EXPORT_SYMBOL drivers/ssb/ssb 0x7bff4b86 ssb_dma_set_mask
+EXPORT_SYMBOL drivers/ssb/ssb 0x7d070d85 ssb_dma_translation
+EXPORT_SYMBOL drivers/ssb/ssb 0x8f18e44e ssb_dma_free_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0xa5f91981 ssb_pcihost_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xb8ae121d ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base
+EXPORT_SYMBOL drivers/ssb/ssb 0xc4ab1340 ssb_driver_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0xd38dfc9e ssb_chipco_gpio_control
+EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size
+EXPORT_SYMBOL drivers/ssb/ssb 0xda97a132 ssb_bus_powerup
+EXPORT_SYMBOL drivers/ssb/ssb 0xe9d753b4 __ssb_driver_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xeed1f887 ssb_bus_may_powerdown
+EXPORT_SYMBOL drivers/ssb/ssb 0xf07247c1 ssb_bus_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0xf6748b2a ssb_clockspeed
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x03018749 comedi_buf_write_alloc
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0ba8ff7d comedi_buf_read_alloc
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x20adcdd0 comedi_check_chanlist
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x29e50cd9 comedi_buf_put
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2cdaeed3 comedi_driver_unregister
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f179e4a comedi_event
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f28b543 comedi_driver_register
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x6fa1c51a comedi_get_subdevice_runflags
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x7aa04fea comedi_buf_get
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8959c847 comedi_error
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xca4bf1d6 comedi_buf_memcpy_from
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xde5cff7a comedi_buf_read_free
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf2326fa1 comedi_buf_read_n_available
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf491c77f comedi_buf_memcpy_to
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xf7339da5 comedi_buf_write_free
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x0534e47b subdev_8255_init_irq
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x0c6edd30 subdev_8255_interrupt
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x6f874f71 subdev_8255_cleanup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xaaf1a61c subdev_8255_init
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x0e957c70 cfc_read_array_from_buffer
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x9c673841 cfc_write_array_to_buffer
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xa3d73527 cfc_handle_events
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x02607403 mite_unsetup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x051ce816 mite_devices
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x12722775 mite_prep_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1cee09ba mite_dma_arm
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x22b474fa mite_bytes_in_transit
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3c38714b mite_bytes_read_from_memory_ub
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x4de5f738 mite_sync_output_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x585533a7 mite_dma_disarm
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x5b419e0d mite_bytes_written_to_memory_lb
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x682ab83d mite_done
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xa360c032 mite_setup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xadaa43b2 mite_bytes_read_from_memory_lb
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xb5c276b0 mite_get_status
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc2343124 mite_release_channel
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xc30dc8dd mite_request_channel_in_range
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xcad3acf4 mite_bytes_written_to_memory_ub
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdd0c0c0b mite_setup2
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe185f2aa mite_sync_input_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf5fa1e56 mite_buf_change
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb0bd2f9 mite_dma_tcr
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x189beb12 subdev_700_interrupt
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x2f2dd0ab subdev_700_init
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x3c340722 subdev_700_init_irq
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xe5979298 subdev_700_cleanup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0x87a75f5f comedi_pcm_cmdtest
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x3385ea08 comedi_find_subdevice_by_type
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x58a7e961 comedi_dio_bitfield
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x673f378e comedi_get_n_channels
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x74892837 comedi_dio_config
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xcdc74f86 comedi_close
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xd12102fe comedi_open
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x2861e119 cx25821_sram_channel_dump
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x32ee8781 cx25821_sram_channel_setup
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x5f65cd7e cx25821_risc_databuffer_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x68bb2555 cx25821_dev_get
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x6b4c249d cx25821_set_gpiopin_direction
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x6c54a926 cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x784853c3 cx25821_print_irqbits
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xad3919c6 cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xd8355167 cx25821_dev_unregister
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x024800bd go7007_snd_remove
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x064bfb40 go7007_remove
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x1f8766af go7007_alloc
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x3b9d1200 go7007_read_addr
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x483b3330 go7007_boot_encoder
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x710641ac go7007_snd_init
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xa0336b05 go7007_parse_video_stream
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xac95faf0 go7007_read_interrupt
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xc89d5434 go7007_register_encoder
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x10a885b7 hv_cb_utils
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x253f3d14 vmbus_get_interface
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4102ac95 VmbusChannelRecvPacket
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x62ffb142 vmbus_child_driver_register
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x724d7966 vmbus_child_driver_unregister
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x848c170c VmbusChannelSendPacket
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0ed73779 iio_ring_buffer_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1662c247 iio_trigger_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1d8ceb17 iio_push_or_escallate_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2694b1d2 __iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2bc9533f iio_trigger_notify_done
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x36827a16 iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3f42c4a6 iio_scan_el_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x40215575 iio_device_unregister_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x52759636 iio_push_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x52e7b7db iio_free_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x58b2b335 iio_add_event_to_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x58bd9b6e iio_trigger_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5eef6ddb iio_free_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5f33140c iio_allocate_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x663f75da iio_scan_el_ts_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x690f72d8 iio_device_register_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6ac367d3 iio_show_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x766dd43e iio_remove_event_from_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x76e77919 iio_scan_el_show
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x796234ee iio_ring_buffer_init
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7a65472a iio_unregister_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7c9c6208 iio_read_ring_length
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7e44f98f iio_read_ring_bps
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7edf6482 iio_get_new_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x96a9bac0 iio_write_ring_length
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xad019cad iio_trigger_find_by_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xad444e37 iio_store_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xaf563a08 iio_trigger_dettach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb40c7bc2 iio_read_const_attr
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb73c13ac iio_trigger_attach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xba124153 iio_free_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbd43b3dc iio_bus_type
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbf3d2d6d iio_ring_buffer_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc4e1fcb2 iio_device_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc68537d8 iio_trigger_read_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc75b58cd iio_allocate_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc76e2f44 iio_device_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcaf79e71 iio_register_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd8b931a8 iio_trigger_poll
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfaefe020 iio_scan_el_ts_show
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x0a1101ab iio_sw_rb_allocate
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x1970ba1a iio_set_length_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x3ff1db2b iio_set_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x4d146f0e iio_get_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x7ac87abb iio_sw_rb_free
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x8c69d63b iio_mark_update_needed_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x9f43fcef iio_store_to_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xaa177b04 iio_get_length_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xac54ad86 iio_read_last_from_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xb1da4902 iio_unmark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xbd19c999 iio_rip_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xd228f09d iio_mark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xe1a7de94 iio_request_update_sw_rb
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x39341abc pod_remove_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x5a5c36d9 variax_remove_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0xa29e7c1c variax_create_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0xd35bc9d0 pod_create_files
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0x11452eff rar_reserve
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0x785e5269 rar_release
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0xd0382ff3 rar_handle_to_bus
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x0072de2f rar_get_address
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x016fa80b ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x026d751d ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x07740242 ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0bd2545c ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0e1330ab ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0f376841 ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1882efd7 ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1c4385f4 ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x20180be3 ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x219dd21c ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2462136a ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x29f4c3b3 ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x39096283 ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3b85aae0 ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3c229c66 DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c3dc36f ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4ef77fad ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x544b12ad ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5f8c1e24 notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x64b2de1a ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x67779838 ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6f04a681 Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x79620533 IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7aba2d20 ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7b61e5e6 ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x818917ae ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x86aea04f ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x89915856 ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b415a18 ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8e82ba74 ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x947cb076 ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9c17d4c3 ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9c64ff8e ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9ed8718d ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9f7b6edb Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa12010b7 SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa58b9131 ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaae4b9ed ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xabec8db6 ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb71fde19 ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbcb6ac60 ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc13e773b ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc26d0b54 ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd0f9447c ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd33582fa Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd958b490 ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdb2b37d4 ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdd698757 ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde7ed064 HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde862753 ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdf3a1c3e ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe0a8edec ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe3f6191b DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe4428c74 ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe87ca5d1 ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe9ec8588 ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x43f56545 tm6000_register_extension
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x499bc9d4 tm6000_unregister_extension
+EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count
+EXPORT_SYMBOL drivers/staging/vme/vme 0x011bd342 vme_register_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0232aa5c vme_register_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x1247692a vme_unregister_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x14bd6d67 vme_irq_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x2d1f6bd4 vme_bus_type
+EXPORT_SYMBOL drivers/staging/vme/vme 0x2e804729 vme_irq_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x33fe73cc vme_dma_list_add
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3aa70f78 vme_irq_handler
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3b332a39 vme_dma_list_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x420fe07e vme_dma_list_exec
+EXPORT_SYMBOL drivers/staging/vme/vme 0x43e2f154 vme_master_read
+EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7754663b vme_alloc_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x8935bfed vme_new_dma_list
+EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach
+EXPORT_SYMBOL drivers/staging/vme/vme 0x97155737 vme_unregister_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x98bfee37 vme_slot_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach
+EXPORT_SYMBOL drivers/staging/vme/vme 0x9d279035 vme_master_write
+EXPORT_SYMBOL drivers/staging/vme/vme 0xa09d045f vme_get_size
+EXPORT_SYMBOL drivers/staging/vme/vme 0xaabc69d2 vme_lm_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xbacf18cd vme_slave_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0xd6e26752 vme_irq_generate
+EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe7e39009 vme_master_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xf1b1bb11 vme_free_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0xf7460cad vme_dma_request
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free
+EXPORT_SYMBOL drivers/telephony/ixj 0xe2d67460 ixj_pcmcia_probe
+EXPORT_SYMBOL drivers/telephony/phonedev 0x8cb408db phone_register_device
+EXPORT_SYMBOL drivers/telephony/phonedev 0xe8900229 phone_unregister_device
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x6f3106f6 usb_gadget_register_driver
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x8187b725 net2280_set_fifo_mode
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xde8d0a46 usb_gadget_unregister_driver
+EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x6340014c sl811h_driver
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x148d8031 usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1f2eb7e8 usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x30048731 usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x42ae0f49 usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4f5552f5 usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6f41126b usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x786558d6 usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9520c785 usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9703fcd2 usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x975d28c1 usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9ab679a0 usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb16874e0 usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb9003a52 usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd14e3474 usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x97e62e5d usb_serial_resume
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0xab112f5a usb_serial_suspend
+EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x3d7d8acd lcd_device_unregister
+EXPORT_SYMBOL drivers/video/backlight/lcd 0xda44a903 lcd_device_register
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0b61913e cyber2000fb_disable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x356d5173 cyber2000fb_enable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x5ea44755 cyber2000fb_get_fb_var
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xb2bdb6db cyber2000fb_attach
+EXPORT_SYMBOL drivers/video/display/display 0x9e70676b display_device_unregister
+EXPORT_SYMBOL drivers/video/display/display 0xc827af52 display_device_register
+EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var
+EXPORT_SYMBOL drivers/video/macmodes 0x6e73547d mac_find_mode
+EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x3eb26dcf matroxfb_g450_setpll_cond
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x6ea4ed77 matroxfb_g450_setclk
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x94864ca8 g450_mnp2f
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x52c59639 DAC1064_global_init
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xafed17f1 DAC1064_global_restore
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xcec60c74 matrox_G100
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xd64c9067 matrox_mystique
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x896f9629 matrox_millennium
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x74defcbf matrox_cfbX_init
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x43debd4b matroxfb_enable_irq
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x775f75d2 matroxfb_wait_for_sync
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x85c76e85 matroxfb_register_driver
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd5a5f714 matroxfb_unregister_driver
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x3f3d9f20 matroxfb_g450_connect
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x698c1164 matroxfb_g450_shutdown
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x30d809c3 matroxfb_DAC_in
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x71af45e7 matroxfb_DAC_out
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xb1d0f265 matroxfb_vgaHWinit
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xd964b116 matroxfb_vgaHWrestore
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe7ea2a02 matroxfb_read_pins
+EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x3d1111ef mb862xxfb_init_accel
+EXPORT_SYMBOL drivers/video/output 0x554ea422 video_output_unregister
+EXPORT_SYMBOL drivers/video/output 0xbb407f67 video_output_register
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free
+EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x17ebf629 svga_tilecopy
+EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x32b53ce7 svga_tilecursor
+EXPORT_SYMBOL drivers/video/svgalib 0x56b841d6 svga_get_tilemax
+EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x75da5e89 svga_tilefill
+EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x91578ec9 svga_get_caps
+EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xc29ff481 svga_settile
+EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xdcd110ba svga_tileblit
+EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format
+EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll
+EXPORT_SYMBOL drivers/video/syscopyarea 0x448201e2 sys_copyarea
+EXPORT_SYMBOL drivers/video/sysfillrect 0x82fcb79c sys_fillrect
+EXPORT_SYMBOL drivers/video/sysimgblt 0x44e5deb5 sys_imageblit
+EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga
+EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x75179cd8 w1_bq27000_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xcd087601 w1_bq27000_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x31c93248 w1_ds2760_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x4bcee3fb w1_ds2760_recall_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x57291673 w1_ds2760_store_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb90886f8 w1_ds2760_read
+EXPORT_SYMBOL drivers/w1/wire 0x2149a18e w1_unregister_family
+EXPORT_SYMBOL drivers/w1/wire 0x964eec7c w1_add_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xc997dbc0 w1_register_family
+EXPORT_SYMBOL drivers/w1/wire 0xe0dff99d w1_remove_master_device
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop
+EXPORT_SYMBOL fs/configfs/configfs 0x0ebdb6c4 config_group_init
+EXPORT_SYMBOL fs/configfs/configfs 0x0f69e26f config_item_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x0fb0b3c3 configfs_register_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0x44cd54ad config_item_init
+EXPORT_SYMBOL fs/configfs/configfs 0x5bb17d99 configfs_unregister_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0x92fc864a config_item_put
+EXPORT_SYMBOL fs/configfs/configfs 0xaa02c70f config_group_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0xb15302ed config_item_get
+EXPORT_SYMBOL fs/configfs/configfs 0xd2462a53 config_item_set_name
+EXPORT_SYMBOL fs/configfs/configfs 0xd27d9492 configfs_undepend_item
+EXPORT_SYMBOL fs/configfs/configfs 0xd3a4c9f8 configfs_depend_item
+EXPORT_SYMBOL fs/configfs/configfs 0xfa43359d config_group_find_item
+EXPORT_SYMBOL fs/fscache/fscache 0x00e04da2 fscache_withdraw_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x01ad456e fscache_object_lookup_negative
+EXPORT_SYMBOL fs/fscache/fscache 0x078e8b0e fscache_check_aux
+EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible
+EXPORT_SYMBOL fs/fscache/fscache 0x1b76898f __fscache_update_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x1c25fff9 fscache_io_error
+EXPORT_SYMBOL fs/fscache/fscache 0x254fcd3a __fscache_read_or_alloc_pages
+EXPORT_SYMBOL fs/fscache/fscache 0x2a5c9751 fscache_fsdef_index
+EXPORT_SYMBOL fs/fscache/fscache 0x33923c91 __fscache_wait_on_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x37da718b fscache_mark_pages_cached
+EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit
+EXPORT_SYMBOL fs/fscache/fscache 0x474b2c76 fscache_object_slow_work_ops
+EXPORT_SYMBOL fs/fscache/fscache 0x4cb08273 __fscache_uncache_page
+EXPORT_SYMBOL fs/fscache/fscache 0x6038da8d fscache_obtained_object
+EXPORT_SYMBOL fs/fscache/fscache 0x6b66ec2d __fscache_register_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x70e3b4bf __fscache_acquire_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x715147ff __fscache_write_page
+EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id
+EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states
+EXPORT_SYMBOL fs/fscache/fscache 0x9ebc906d __fscache_check_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0xa396ede1 fscache_enqueue_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq
+EXPORT_SYMBOL fs/fscache/fscache 0xb8150d2a __fscache_unregister_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0xd290af40 __fscache_read_or_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xd4493680 __fscache_maybe_release_page
+EXPORT_SYMBOL fs/fscache/fscache 0xddef6bdb __fscache_attr_changed
+EXPORT_SYMBOL fs/fscache/fscache 0xddf4ca2e __fscache_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xeace1e05 __fscache_relinquish_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xed2d2c71 fscache_put_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xf4d1d5eb fscache_init_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xf79783dc fscache_add_cache
+EXPORT_SYMBOL fs/nfsd/nfsd 0x23f0a2c8 nfs4_acl_nfsv4_to_posix
+EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who
+EXPORT_SYMBOL fs/nfsd/nfsd 0x46ffdc39 nfs4_acl_posix_to_nfsv4
+EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype
+EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new
+EXPORT_SYMBOL fs/quota/quota_tree 0x241902f0 qtree_entry_unused
+EXPORT_SYMBOL fs/quota/quota_tree 0x499ad0fd qtree_write_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x7b46946b qtree_release_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xe13f8e5e qtree_read_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xf55e7606 qtree_delete_dquot
+EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt
+EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table
+EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t
+EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table
+EXPORT_SYMBOL lib/crc7 0xc086bfba crc7
+EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table
+EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd
+EXPORT_SYMBOL net/802/p8023 0x7f4bd3f2 destroy_8023_client
+EXPORT_SYMBOL net/802/p8023 0x94cc405e make_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x06b2e3eb p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x07d75f18 v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump
+EXPORT_SYMBOL net/9p/9pnet 0x0d13895c p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x20681921 p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x25858d8d p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0x370524cc p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0x395c8c47 p9_client_auth
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x6e7334ba p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x6f6d72e3 p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x7567c061 p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0x758884b4 p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x7d9551dc p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x8c61936e p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x8ed038de p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x911cbd93 p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x92ed40df p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x98e482b9 p9_client_version
+EXPORT_SYMBOL net/9p/9pnet 0x9c831e88 p9_idpool_check
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0x9e39dc37 p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0xa75932e1 v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0xa7b79d6e p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0xb13a9d5e p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0xb8c441db p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0xb99a853c p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xc046e11f v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0xcb12f816 p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0xd665e78d p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0xe4c001d7 p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xe87bc9ec v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0xea905f32 p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0xeba2acc0 p9_client_statfs
+EXPORT_SYMBOL net/appletalk/appletalk 0x38d5ae2a atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0x5ef6e556 alloc_ltalkdev
+EXPORT_SYMBOL net/appletalk/appletalk 0xae2bcd99 aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0xe1c9ef1d atrtr_get_dev
+EXPORT_SYMBOL net/atm/atm 0x07e0a459 atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x15b2c527 vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x2227272e deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x3d10663a vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x4e54ae9d atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x767caa47 atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0x9d43b12a atm_charge
+EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xbcf032af atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0xbfd05248 register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xe178ebff atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0xeaa383bc atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal
+EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x29d13346 ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0x2a9e9295 ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0x31f88dff ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x637ab268 ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x7a912d41 ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0x8b566b29 ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x8da4719d ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xf04fecfa ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0xf0b4bc38 ax25_linkfail_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x07a68cef bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0e6a7652 hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x11079979 hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1c23911f hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x29a9907c bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x339833d9 hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x343a501d hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3656f2d0 hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3d3e9f5a hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x41d5a1bc bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4700ffe4 bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4be2b917 hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5043203d bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5199acc6 bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x615649f7 hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x65afb603 bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6c83850a hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x70fe7d78 hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x84882fd5 hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x892d51ee hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x92b01637 hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x944a5dbb hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x9a66ec3d hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa63335e0 hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc9b2d136 hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xca8666db hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcd838956 bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd5f842e6 hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe88afc13 bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xedb2d048 hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xef7a05b1 bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xefd8f383 hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load
+EXPORT_SYMBOL net/bridge/bridge 0x718b13e3 br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9c078718 ebt_register_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x9ee3f39e ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xce210262 ebt_do_table
+EXPORT_SYMBOL net/caif/caif 0x0515a1fc cfpkt_info
+EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client
+EXPORT_SYMBOL net/caif/caif 0x080806a6 cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer
+EXPORT_SYMBOL net/caif/caif 0x22db7ba5 cfpkt_queue
+EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x30347216 cfpkt_raw_extract
+EXPORT_SYMBOL net/caif/caif 0x40f6d4b2 cfpkt_erroneous
+EXPORT_SYMBOL net/caif/caif 0x43b64498 cfpkt_add_body
+EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x52a6b5bf cfpkt_log_pkt
+EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create
+EXPORT_SYMBOL net/caif/caif 0x5cac42de cfpkt_extr_head
+EXPORT_SYMBOL net/caif/caif 0x64d0f338 cfpkt_iterate
+EXPORT_SYMBOL net/caif/caif 0x658830f7 cfpkt_split
+EXPORT_SYMBOL net/caif/caif 0x684e9998 cfpkt_create_uplink
+EXPORT_SYMBOL net/caif/caif 0x692d1824 cfpkt_create
+EXPORT_SYMBOL net/caif/caif 0x69f4819e cfpkt_append
+EXPORT_SYMBOL net/caif/caif 0x6ecd0713 cfpkt_extr_trail
+EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x7a78e574 cfpkt_getlen
+EXPORT_SYMBOL net/caif/caif 0x8a72d48f cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0x8d8dee76 cfpkt_pad_trail
+EXPORT_SYMBOL net/caif/caif 0xa268b674 cfpkt_qpeek
+EXPORT_SYMBOL net/caif/caif 0xa59f933d cfpkt_dequeue
+EXPORT_SYMBOL net/caif/caif 0xa63e5333 cfpktq_create
+EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xb2072403 cfpkt_qcount
+EXPORT_SYMBOL net/caif/caif 0xbb6031ab cfpkt_addbdy
+EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer
+EXPORT_SYMBOL net/caif/caif 0xc66185ab cfpkt_add_head
+EXPORT_SYMBOL net/caif/caif 0xcbdccda8 cfpkt_setlen
+EXPORT_SYMBOL net/caif/caif 0xcc4c58c2 cfpkt_clone_release
+EXPORT_SYMBOL net/caif/caif 0xd4d506b1 cfpkt_raw_append
+EXPORT_SYMBOL net/caif/caif 0xe33b3eb3 cfpkt_peek_head
+EXPORT_SYMBOL net/caif/caif 0xe6f93775 cfpkt_add_trail
+EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf
+EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer
+EXPORT_SYMBOL net/caif/caif 0xf74f1e70 cfpkt_more
+EXPORT_SYMBOL net/caif/caif 0xfa50fafb cfpkt_destroy
+EXPORT_SYMBOL net/can/can 0x306254db can_rx_register
+EXPORT_SYMBOL net/can/can 0x5b27a810 can_send
+EXPORT_SYMBOL net/can/can 0x816a2ef4 can_rx_unregister
+EXPORT_SYMBOL net/can/can 0xbb3b126c can_proto_unregister
+EXPORT_SYMBOL net/can/can 0xf385a3e0 can_proto_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x1ddebcb2 ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x23caeeac ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x36020dd7 wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x43b8c35f wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x44e4f97d ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x4c9aa94f wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x79c1ddea ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x91ec8eeb wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x95225c8b wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xa72905eb ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xc93342ca ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xde509051 wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xf0609785 ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x43c94578 arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x5344ffc1 arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x86ba40aa arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x436d8e56 ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x4628e4ec ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x9e8a5a9c ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x04e7f370 __nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2292a0e5 nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x322c934e nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9b942c61 nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb7550eab nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe125e5d7 nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf42d97fc nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/tunnel4 0x7cc9d491 xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0xc3afed03 xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x583e6978 ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x639f7aa8 ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x77fa722a ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x802d179f ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/tunnel6 0xb47d3fe5 xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/tunnel6 0xe880f7a4 xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x39272f02 xfrm6_tunnel_free_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xa5c3da86 xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe23962ac xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x27633476 ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x31ceef4a ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x421e6c6a ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5be9428f ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa26ff4ab ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xa5409202 ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xbb6d7ee3 ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xeca504ba ircomm_open
+EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value
+EXPORT_SYMBOL net/irda/irda 0x0794e13d iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service
+EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x103d636e irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x20845ab1 irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x2198b38b irlmp_open_lsap
+EXPORT_SYMBOL net/irda/irda 0x228b610a irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0x23624bb8 hashbin_get_first
+EXPORT_SYMBOL net/irda/irda 0x29c016a2 irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0x2b9bfdf3 iriap_open
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug
+EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object
+EXPORT_SYMBOL net/irda/irda 0x41eb5fe2 irlap_close
+EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value
+EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service
+EXPORT_SYMBOL net/irda/irda 0x4a12acfa alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0x4f15ae3d proc_irda
+EXPORT_SYMBOL net/irda/irda 0x5b005e87 irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0x62a74c59 irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new
+EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object
+EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies
+EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client
+EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x79d9212f irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x801ee5e3 irlap_open
+EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0x8b66dd06 async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x90a9f838 irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x951c0ba3 irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0x95f2efa4 irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0x98c4b9c4 irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find
+EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0xa1904e4e async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0xaf98b436 iriap_close
+EXPORT_SYMBOL net/irda/irda 0xb2d97f71 irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value
+EXPORT_SYMBOL net/irda/irda 0xbaddd6e5 irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute
+EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request
+EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next
+EXPORT_SYMBOL net/irda/irda 0xcee77b6c irttp_dup
+EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma
+EXPORT_SYMBOL net/irda/irda 0xd6fed498 irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0xd760b811 irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xd9e201b1 irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xfbb3d158 irttp_open_tsap
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x22adbe94 l2tp_recv_common
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x33b4f4f7 l2tp_tunnel_destruct
+EXPORT_SYMBOL net/lapb/lapb 0x06361f84 lapb_disconnect_request
+EXPORT_SYMBOL net/lapb/lapb 0x1d0c1ad8 lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x22739ef5 lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0x51455608 lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x6a1b766c lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0x977d1f38 lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0xc874a4fb lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0xfd490ed8 lapb_getparms
+EXPORT_SYMBOL net/mac80211/mac80211 0x00a14fcd ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0x067bf667 __ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x07f9a02e ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x0a06fbc0 ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x32174180 ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3471de04 ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3706e766 ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3b961737 ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c81a961 ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0x43d636b4 __ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x45c1f6c3 ieee80211_get_tkip_key
+EXPORT_SYMBOL net/mac80211/mac80211 0x49f0e481 ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x4e33844c ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x4fe42ff1 ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0x730b1e5c ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x732f1ad1 ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x768b90ad wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x7e9d8240 __ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x87ee2ae2 rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x8a8a470d ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x919ed0b0 ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x947b318d ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x9b3489a9 ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3ece24c ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xb7026854 ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0xbb975295 ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xc5aeb4f3 ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xc66d18c9 ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xcfbf2b03 ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xd01d22ea ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xd4e6811f ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xe2a413c3 __ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xe65c1649 ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xf0173b9f ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0xf5ec7d7b ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xf8e97579 ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0xfe6733e2 ieee80211_stop_queue
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x06d87371 ip_vs_skb_replace
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0c6fefda register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0d47134c ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0d73a60c ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1c29e4cb ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2f041519 register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4b26d781 unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5bdf8c3a unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5f9465c0 ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6e380c18 register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8ba83ef3 ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xd81a0dcb __nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xda286d70 __nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x1fc6bc82 nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x0b4acae4 xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x3d62d342 xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x51d7d860 xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x600f3cc7 xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x7ab79278 xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x87868d7c xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x92493cd7 xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x94a4b3d3 xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xb34ec804 xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xe8703757 xt_register_matches
+EXPORT_SYMBOL net/phonet/phonet 0x0f449d81 phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0x38caac41 phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0x5c2d9501 pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0x5f0bc702 pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0x68bf744c phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x9c3e833f pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0xa99646d2 phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0xef32715e pn_sock_unhash
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x09d3e8ff rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x14a2daac rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1954ec05 rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2774d434 rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x315e4936 rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x52343759 rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6e17bfc7 key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x77395f5b rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x825b4c8e rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x843ff524 rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xab75198a rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb1bb0080 rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd1bcb259 rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf44f4d60 rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf92a475b rxrpc_get_null_key
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x44f06d7b svc_pool_stats_open
+EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes
+EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast
+EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected
+EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect
+EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport
+EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x20a3ca02 tipc_register_media
+EXPORT_SYMBOL net/tipc/tipc 0x20bb03e2 tipc_createport_raw
+EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send
+EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge
+EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach
+EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port
+EXPORT_SYMBOL net/tipc/tipc 0x474fe8f9 tipc_reject_msg
+EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw
+EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode
+EXPORT_SYMBOL net/tipc/tipc 0x58c840dd tipc_get_port
+EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid
+EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0x649bd23a tipc_forward_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x6ba0594b tipc_send_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x7dbf8bac tipc_send_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x805f97e6 tipc_send_buf_fast
+EXPORT_SYMBOL net/tipc/tipc 0x8766d7fe tipc_createport
+EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr
+EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port
+EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port
+EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown
+EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name
+EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish
+EXPORT_SYMBOL net/tipc/tipc 0xbb34757d tipc_continue
+EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name
+EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity
+EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach
+EXPORT_SYMBOL net/tipc/tipc 0xdd806d44 tipc_send_buf
+EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer
+EXPORT_SYMBOL net/tipc/tipc 0xe2964713 tipc_recv_msg
+EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished
+EXPORT_SYMBOL net/tipc/tipc 0xe9e95673 tipc_forward_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle
+EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x7e81d7ab register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x39d223f4 wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0x71646723 wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x0147ed7d wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0f07937d cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0x14ef99ff __cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x179bfe12 cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x1afc0676 cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x1b91f4f6 regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x1ec9e946 cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0x204ea4b7 cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x24c957d0 cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x26754ee2 __cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x29b471f3 cfg80211_action_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x2aceb723 cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0x2ccf391c cfg80211_rx_action
+EXPORT_SYMBOL net/wireless/cfg80211 0x360aa0a0 wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x399396de wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x3cedc0fa freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x46a4e83f cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0x51292a31 cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0x5418753c __ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x5968d622 cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x6195f0ff cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0x671be38f cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x712eeb70 cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x71ba6ad6 ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x77d92dc1 ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x79e72321 cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x7a0b818b wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x7c64393e cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x7ccb4875 cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x7d381d2a cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x7dcab7e8 cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x8ab4c26e cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x97dd46d3 ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x98085bf0 wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x99e710e5 __cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x9f846265 wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xa8e63b2f cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0xac84ed26 cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xbd3d39b3 wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xcaaf60a7 ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0xcb980625 cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0xcfead162 cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xd5b8b66c cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xd83955ea cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0xe0afa1a2 ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xe878c191 cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xefa1174d wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/lib80211 0x175dd2a0 lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x5ad6b6aa lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0x7a97af53 lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x8576e84d lib80211_crypt_quiescing
+EXPORT_SYMBOL net/wireless/lib80211 0x8756e494 lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0xc087ebef lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xc7ceac25 lib80211_crypt_deinit_entries
+EXPORT_SYMBOL net/wireless/lib80211 0xcfa3a2c8 lib80211_crypt_info_init
+EXPORT_SYMBOL sound/ac97_bus 0x5698fc59 ac97_bus_type
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x417470f3 snd_seq_event_port_attach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x4d3fbd4b snd_seq_create_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb81ee5cc snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xc89aeab2 snd_seq_kernel_client_enqueue_blocking
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x0f1c49ed snd_seq_device_register_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x63584404 snd_seq_device_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x017f4a67 snd_midi_event_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x949c9ac8 snd_midi_event_no_status
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x951ea30c snd_midi_event_reset_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb00606b7 snd_midi_event_encode_byte
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb30510f7 snd_midi_event_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbeaecf8c snd_midi_event_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xddc220c4 snd_midi_event_reset_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf5eb237e snd_midi_event_free
+EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x5dd4e1bf snd_virmidi_new
+EXPORT_SYMBOL sound/core/snd 0x0da9b813 snd_card_create
+EXPORT_SYMBOL sound/core/snd 0x0ef4a8a4 snd_card_free_when_closed
+EXPORT_SYMBOL sound/core/snd 0x1297a612 snd_pci_quirk_lookup
+EXPORT_SYMBOL sound/core/snd 0x14122d2c snd_jack_new
+EXPORT_SYMBOL sound/core/snd 0x17001f02 snd_card_disconnect
+EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program
+EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer
+EXPORT_SYMBOL sound/core/snd 0x1bb5c1b5 snd_ctl_boolean_mono_info
+EXPORT_SYMBOL sound/core/snd 0x216c7d8e snd_ctl_find_id
+EXPORT_SYMBOL sound/core/snd 0x22697309 snd_register_device_for_dev
+EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line
+EXPORT_SYMBOL sound/core/snd 0x24e9e54c snd_component_add
+EXPORT_SYMBOL sound/core/snd 0x26719f1d snd_cards
+EXPORT_SYMBOL sound/core/snd 0x2811eed8 snd_info_register
+EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource
+EXPORT_SYMBOL sound/core/snd 0x32bbad60 _snd_ctl_add_slave
+EXPORT_SYMBOL sound/core/snd 0x3871b6f7 snd_card_register
+EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit
+EXPORT_SYMBOL sound/core/snd 0x3c73fac8 snd_jack_set_parent
+EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card
+EXPORT_SYMBOL sound/core/snd 0x4a9000a7 snd_card_set_id
+EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio
+EXPORT_SYMBOL sound/core/snd 0x53096c1d snd_ctl_remove
+EXPORT_SYMBOL sound/core/snd 0x54c77e27 snd_card_free
+EXPORT_SYMBOL sound/core/snd 0x6e4f0996 snd_add_device_sysfs_file
+EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable
+EXPORT_SYMBOL sound/core/snd 0x727657a2 snd_card_proc_new
+EXPORT_SYMBOL sound/core/snd 0x72ead571 snd_info_free_entry
+EXPORT_SYMBOL sound/core/snd 0x74f2b7d9 snd_ctl_make_virtual_master
+EXPORT_SYMBOL sound/core/snd 0x75836dfd snd_ctl_free_one
+EXPORT_SYMBOL sound/core/snd 0x7b86c2e2 snd_ctl_remove_id
+EXPORT_SYMBOL sound/core/snd 0x7bec1abc snd_ctl_notify
+EXPORT_SYMBOL sound/core/snd 0x84bf6cdc snd_device_free
+EXPORT_SYMBOL sound/core/snd 0x896feba0 snd_unregister_device
+EXPORT_SYMBOL sound/core/snd 0x8979dd82 snd_seq_root
+EXPORT_SYMBOL sound/core/snd 0x8c33d4fb snd_ctl_unregister_ioctl
+EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major
+EXPORT_SYMBOL sound/core/snd 0x94136742 snd_card_file_add
+EXPORT_SYMBOL sound/core/snd 0x9841dfa6 snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL sound/core/snd 0x99c7ced4 snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL sound/core/snd 0x9c3885d4 snd_power_wait
+EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str
+EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id
+EXPORT_SYMBOL sound/core/snd 0xacc92594 snd_ctl_register_ioctl
+EXPORT_SYMBOL sound/core/snd 0xaf89378f snd_card_file_remove
+EXPORT_SYMBOL sound/core/snd 0xafb377c2 snd_ctl_new1
+EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data
+EXPORT_SYMBOL sound/core/snd 0xb9d9e18d snd_device_register
+EXPORT_SYMBOL sound/core/snd 0xbd6d60e2 snd_jack_report
+EXPORT_SYMBOL sound/core/snd 0xcbb7c0e9 snd_info_create_card_entry
+EXPORT_SYMBOL sound/core/snd 0xcda12362 snd_device_new
+EXPORT_SYMBOL sound/core/snd 0xd51de002 snd_ctl_find_numid
+EXPORT_SYMBOL sound/core/snd 0xda74e409 snd_ctl_add
+EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf
+EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio
+EXPORT_SYMBOL sound/core/snd 0xe2ec14ef snd_info_create_module_entry
+EXPORT_SYMBOL sound/core/snd 0xf1d7a116 snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL sound/core/snd 0xf7fb7f7d snd_ctl_rename_id
+EXPORT_SYMBOL sound/core/snd 0xffa80328 snd_jack_set_key
+EXPORT_SYMBOL sound/core/snd-hwdep 0xad619e7a snd_hwdep_new
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xb0028d41 snd_dma_reserve_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xb71ac24d snd_dma_alloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xcd7b9de7 snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xf052a762 snd_dma_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xff7af02c snd_dma_get_reserved_buf
+EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any
+EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x07d9cd13 snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x09a08e0e snd_pcm_lib_write
+EXPORT_SYMBOL sound/core/snd-pcm 0x0adac6a3 snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL sound/core/snd-pcm 0x11d33056 snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL sound/core/snd-pcm 0x1680d0cb snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL sound/core/snd-pcm 0x1c9ec8f4 snd_pcm_sgbuf_get_chunk_size
+EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed
+EXPORT_SYMBOL sound/core/snd-pcm 0x20693d97 snd_pcm_new
+EXPORT_SYMBOL sound/core/snd-pcm 0x249ed6fd snd_pcm_open_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0x29342d20 snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL sound/core/snd-pcm 0x294ed320 snd_pcm_hw_constraint_list
+EXPORT_SYMBOL sound/core/snd-pcm 0x30c30906 snd_pcm_set_sync
+EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x3950e75d snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty
+EXPORT_SYMBOL sound/core/snd-pcm 0x3c88cd1d _snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x4b8824b1 snd_pcm_lib_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x4c25bf73 snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value
+EXPORT_SYMBOL sound/core/snd-pcm 0x5489a847 snd_pcm_lib_mmap_noncached
+EXPORT_SYMBOL sound/core/snd-pcm 0x54cb1ed3 snd_pcm_lib_readv
+EXPORT_SYMBOL sound/core/snd-pcm 0x56d8ef13 snd_pcm_sgbuf_ops_page
+EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence
+EXPORT_SYMBOL sound/core/snd-pcm 0x626e2e6e snd_pcm_lib_writev
+EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64
+EXPORT_SYMBOL sound/core/snd-pcm 0x663b3745 snd_pcm_suspend_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width
+EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear
+EXPORT_SYMBOL sound/core/snd-pcm 0x715566b6 snd_pcm_kernel_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x787e4ef3 snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x7a38b666 snd_pcm_hw_param_last
+EXPORT_SYMBOL sound/core/snd-pcm 0x84340f0e snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL sound/core/snd-pcm 0x8792cdcb snd_pcm_limit_hw_rates
+EXPORT_SYMBOL sound/core/snd-pcm 0x97ed3092 snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL sound/core/snd-pcm 0x9bc6922b snd_pcm_new_stream
+EXPORT_SYMBOL sound/core/snd-pcm 0x9f5a212e snd_pcm_period_elapsed
+EXPORT_SYMBOL sound/core/snd-pcm 0xa40e95ae snd_pcm_link_rwlock
+EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned
+EXPORT_SYMBOL sound/core/snd-pcm 0xafbd8293 snd_pcm_release_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xb193fabd snd_pcm_lib_read
+EXPORT_SYMBOL sound/core/snd-pcm 0xb19ea1b9 snd_pcm_hw_rule_add
+EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL sound/core/snd-pcm 0xba3d9adb snd_pcm_set_ops
+EXPORT_SYMBOL sound/core/snd-pcm 0xbc451fa8 snd_pcm_notify
+EXPORT_SYMBOL sound/core/snd-pcm 0xbd373bc1 snd_pcm_hw_param_first
+EXPORT_SYMBOL sound/core/snd-pcm 0xc42427ec snd_pcm_stop
+EXPORT_SYMBOL sound/core/snd-pcm 0xc5e148eb snd_pcm_suspend
+EXPORT_SYMBOL sound/core/snd-pcm 0xcb3eeefe snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0xcf85450a snd_pcm_mmap_data
+EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xd9a665eb snd_pcm_hw_constraint_step
+EXPORT_SYMBOL sound/core/snd-pcm 0xdc4c65dd snd_pcm_lib_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0xdf03e17f snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width
+EXPORT_SYMBOL sound/core/snd-pcm 0xe96783d4 snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0xef8525b5 snd_pcm_hw_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x01317905 snd_rawmidi_set_ops
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x12e9b0c6 snd_rawmidi_transmit_peek
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x383aa00b snd_rawmidi_kernel_open
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x3fbb7501 snd_rawmidi_drop_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x668f7dc0 snd_rawmidi_receive
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x6b88eb40 snd_rawmidi_drain_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x733b74d6 snd_rawmidi_kernel_release
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x81e928ca snd_rawmidi_transmit_empty
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x8234933a snd_rawmidi_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x8a4be0ae snd_rawmidi_kernel_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x93b36950 snd_rawmidi_info_select
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xa3dff37d snd_rawmidi_transmit
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xb2421d0c snd_rawmidi_transmit_ack
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xbc9e860d snd_rawmidi_drain_input
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xc6bef4dc snd_rawmidi_output_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xd3e2b94b snd_rawmidi_kernel_write
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xd4c80a5c snd_rawmidi_input_params
+EXPORT_SYMBOL sound/core/snd-timer 0x070f889c snd_timer_interrupt
+EXPORT_SYMBOL sound/core/snd-timer 0x464fa2c0 snd_timer_global_new
+EXPORT_SYMBOL sound/core/snd-timer 0x4dacfb59 snd_timer_open
+EXPORT_SYMBOL sound/core/snd-timer 0x4e21c025 snd_timer_stop
+EXPORT_SYMBOL sound/core/snd-timer 0x4fcc345e snd_timer_new
+EXPORT_SYMBOL sound/core/snd-timer 0x5bba7159 snd_timer_global_free
+EXPORT_SYMBOL sound/core/snd-timer 0x5da2d519 snd_timer_close
+EXPORT_SYMBOL sound/core/snd-timer 0x64b86e68 snd_timer_resolution
+EXPORT_SYMBOL sound/core/snd-timer 0x7b3bb0b9 snd_timer_start
+EXPORT_SYMBOL sound/core/snd-timer 0x7c1b0f0b snd_timer_global_register
+EXPORT_SYMBOL sound/core/snd-timer 0x8591d131 snd_timer_notify
+EXPORT_SYMBOL sound/core/snd-timer 0xc674aa03 snd_timer_pause
+EXPORT_SYMBOL sound/core/snd-timer 0xd442f64f snd_timer_continue
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xb54cc0b1 snd_mpu401_uart_new
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x20fcdf77 snd_opl3_timer_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2eff11e9 snd_opl3_create
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x33b02eb5 snd_opl3_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x51c0bd5c snd_opl3_init
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7bc1f267 snd_opl3_find_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x89958f40 snd_opl3_reset
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x93b56279 snd_opl3_hwdep_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9a49b366 snd_opl3_load_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xed2821a2 snd_opl3_new
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0c2a65a2 snd_vx_suspend
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3eea567a snd_vx_check_reg_bit
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x478c22f2 snd_vx_dsp_boot
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5ecf2f68 snd_vx_create
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x65de9dde snd_vx_resume
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x832f5e49 snd_vx_free_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdb0d19d3 snd_vx_setup_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xee968001 snd_vx_load_boot_image
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfdbea901 snd_vx_dsp_load
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4683c2ca snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x659d9d0f snd_ak4114_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x6bf4eef5 snd_ak4114_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x77ba6b5b snd_ak4114_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x96c3e3a1 snd_ak4114_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xdd460459 snd_ak4114_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x31019331 snd_ak4117_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x3c01f868 snd_ak4117_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x5c29f327 snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6c7c590f snd_ak4117_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xa8d5bd16 snd_ak4117_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xbe9e9d1f snd_ak4117_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x352f48cb snd_akm4xxx_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x7515318d snd_akm4xxx_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf9a57861 snd_akm4xxx_init
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xfd5691a6 snd_akm4xxx_reset
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x010ba221 snd_pt2258_reset
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x40a205c0 snd_pt2258_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x89f80d76 snd_tea575x_exit
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xa6373321 snd_tea575x_init
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x4052e659 snd_cs8427_reg_write
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x71c778cc snd_cs8427_iec958_active
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9fbdebc1 snd_cs8427_iec958_build
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xec782fe5 snd_cs8427_iec958_pcm
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xfb8c952f snd_cs8427_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x3237c6fd snd_i2c_device_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x3ee7f2e6 snd_i2c_device_free
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x6db350c0 snd_i2c_sendbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x9624714c snd_i2c_readbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xb8de6fff snd_i2c_bus_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xc6b01a60 snd_i2c_probeaddr
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5406a9fb snd_sbmixer_write
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x642260de snd_sbdsp_get_byte
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8731d4bb snd_sbmixer_read
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9055c3be snd_sbmixer_new
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa8ee3f59 snd_sbmixer_add_ctl
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xdb33732d snd_sbdsp_reset
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe5990052 snd_sbmixer_resume
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe5fd0705 snd_sbdsp_command
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xfcbde7b6 snd_sbmixer_suspend
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xfe2ef64a snd_sbdsp_create
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x3c5d8d42 snd_sb16dsp_get_pcm_ops
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x807c8d3a snd_sb16dsp_pcm
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xf1fa82b2 snd_sb16dsp_configure
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x041d53e7 snd_ac97_pcm_close
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0fea7d4a snd_ac97_pcm_open
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1390d055 snd_ac97_write
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1743d23a snd_ac97_set_rate
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2278a1b2 snd_ac97_update
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x459ef83d snd_ac97_suspend
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6004d36a snd_ac97_update_bits
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6032797d snd_ac97_get_short_name
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x60b4f221 snd_ac97_resume
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x852f1d75 snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x99723fb1 snd_ac97_read
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9ae6e109 snd_ac97_bus
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9ca53098 snd_ac97_pcm_assign
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbb2d5da3 snd_ac97_tune_hardware
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc366a850 snd_ac97_write_cache
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd0a95248 snd_ac97_update_power
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe70e48a4 snd_ac97_mixer
+EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0x177bfa1d hpi_send_recv
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0fe69a56 snd_emu10k1_ptr_read
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1dad1607 snd_emu10k1_voice_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2e95d3cc snd_emu10k1_memblk_map
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x68bfcb4e snd_emu10k1_ptr_write
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x6f668377 snd_emu10k1_synth_bzero
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7e249c20 snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd06e85f4 snd_emu10k1_synth_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd754204f snd_emu10k1_synth_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe58d3a4c snd_emu10k1_voice_alloc
+EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xb5d4c5c9 snd_hda_parse_generic_codec
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x117e7cfd snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x1902c346 snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x874fdebb snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0114d766 oxygen_write_spi
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x03ca8b9d oxygen_pci_suspend
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0e8324c7 oxygen_read8
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2b95a8bf oxygen_write8
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2e9b9a5c oxygen_pci_probe
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2fd89ea4 oxygen_write32
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x35e123db oxygen_write16_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3c70dc96 oxygen_write16
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x42b8f7f9 oxygen_pci_remove
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5bc6f6ac oxygen_read16
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5ef1d279 oxygen_default_i2s_mclk
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x795c6f06 oxygen_write8_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8b589e81 oxygen_write_ac97
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x959065b3 oxygen_write_i2c
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9ce4a3b2 oxygen_reset_uart
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb7a1ec2d oxygen_pci_resume
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb95f63b8 oxygen_write_uart
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbd74e3ca oxygen_read32
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdb42a2f6 oxygen_write32_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xea20589d oxygen_read_ac97
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf3995cd1 oxygen_write_ac97_masked
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x1f439829 snd_trident_stop_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x8c8c672b snd_trident_start_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x9877a73d snd_trident_alloc_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xdad5d667 snd_trident_write_voice_regs
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe856f7bd snd_trident_free_voice
+EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x50bff270 uda134x_dai
+EXPORT_SYMBOL sound/soundcore 0xeddf6e13 sound_class
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x04f15acd snd_emux_unlock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x6a94a763 snd_emux_free
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xd02e584a snd_emux_lock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe796d8f5 snd_emux_new
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xf0552a62 snd_emux_terminate_all
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xffa863c6 snd_emux_register
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x14ae926e __snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x2487f80e snd_util_mem_avail
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x2826b0d4 snd_util_memhdr_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x2fa4c12e snd_util_memhdr_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x4c230642 __snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x83cfd2f9 snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xbda0ebbb snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xcd1c1e07 __snd_util_memblk_new
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xa5dae2a5 snd_usbmidi_create
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x4750b6e6 dm_mem_cache_client_destroy
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x8d134a41 dm_mem_cache_alloc
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xb17a87a0 dm_mem_cache_client_create
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xb361eca9 dm_mem_cache_grow
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xe926c8e5 dm_mem_cache_free
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xf99dbdf5 dm_mem_cache_shrink
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x04dca738 lirc_unregister_driver
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x39e65007 lirc_get_pdata
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0xd63fd30f lirc_register_driver
+EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list
+EXPORT_SYMBOL vmlinux 0x00154fcc jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x00315718 bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0x003c8761 fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0x004346d9 xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x0089a35d rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x009646b0 vfs_writev
+EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer
+EXPORT_SYMBOL vmlinux 0x00fead52 tty_mutex
+EXPORT_SYMBOL vmlinux 0x01000e51 schedule
+EXPORT_SYMBOL vmlinux 0x0100c7da journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x014ea0ee bio_pair_release
+EXPORT_SYMBOL vmlinux 0x0151e723 fb_set_cmap
+EXPORT_SYMBOL vmlinux 0x01575aed skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x01624fe4 mmc_remove_host
+EXPORT_SYMBOL vmlinux 0x01694954 journal_force_commit
+EXPORT_SYMBOL vmlinux 0x016a08fd rdmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0x016d1ff0 serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x0172fd7f misc_register
+EXPORT_SYMBOL vmlinux 0x01760468 find_lock_page
+EXPORT_SYMBOL vmlinux 0x017b41fb ip_ct_attach
+EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap
+EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data
+EXPORT_SYMBOL vmlinux 0x01ae076c km_state_notify
+EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init
+EXPORT_SYMBOL vmlinux 0x01bbbd83 nobh_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x01c17662 elv_rb_find
+EXPORT_SYMBOL vmlinux 0x01c34c1a __xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x01c35525 swiotlb_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x01cd2c10 i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem
+EXPORT_SYMBOL vmlinux 0x01dc15d3 unbind_con_driver
+EXPORT_SYMBOL vmlinux 0x01f8fe78 dev_add_pack
+EXPORT_SYMBOL vmlinux 0x0203eef1 __starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x02062dc5 splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check
+EXPORT_SYMBOL vmlinux 0x0225a99f iunique
+EXPORT_SYMBOL vmlinux 0x022a8b6b blk_recount_segments
+EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu
+EXPORT_SYMBOL vmlinux 0x02430acc __xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x024d1421 sock_create_kern
+EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x0280dd9b md_barrier_request
+EXPORT_SYMBOL vmlinux 0x02932e22 bio_alloc
+EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc
+EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table
+EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler
+EXPORT_SYMBOL vmlinux 0x02bd62ad key_alloc
+EXPORT_SYMBOL vmlinux 0x02bf5e7e sock_wfree
+EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02e732a9 get_sb_pseudo
+EXPORT_SYMBOL vmlinux 0x02f38ce4 blk_start_request
+EXPORT_SYMBOL vmlinux 0x03014b16 aio_complete
+EXPORT_SYMBOL vmlinux 0x03105cdb nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key
+EXPORT_SYMBOL vmlinux 0x031761c0 thaw_super
+EXPORT_SYMBOL vmlinux 0x031a4d22 kill_anon_super
+EXPORT_SYMBOL vmlinux 0x031ff071 dquot_initialize
+EXPORT_SYMBOL vmlinux 0x03222173 ppp_channel_index
+EXPORT_SYMBOL vmlinux 0x032573b8 ip_fragment
+EXPORT_SYMBOL vmlinux 0x0325bdc5 audit_log_start
+EXPORT_SYMBOL vmlinux 0x0327e951 dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x03299232 bdi_register
+EXPORT_SYMBOL vmlinux 0x0331249e page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x03396bd1 sockfd_lookup
+EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set
+EXPORT_SYMBOL vmlinux 0x0349dd29 ida_pre_get
+EXPORT_SYMBOL vmlinux 0x03626365 netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0x037a0cba kfree
+EXPORT_SYMBOL vmlinux 0x0382c98c tcp_connect
+EXPORT_SYMBOL vmlinux 0x0398320d register_netdevice
+EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03ef1cee ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x04175767 gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x042fca3f journal_init_inode
+EXPORT_SYMBOL vmlinux 0x045ed4b4 ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x046d0823 vfs_create
+EXPORT_SYMBOL vmlinux 0x047586aa arp_find
+EXPORT_SYMBOL vmlinux 0x047d5751 give_up_console
+EXPORT_SYMBOL vmlinux 0x047f1217 dcache_readdir
+EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x0497f1f7 scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0x04be9ff4 i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0x04c28504 pci_select_bars
+EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0x04e9bfbc inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x0503e7a4 set_pages_array_wc
+EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x053420c1 acpi_is_video_device
+EXPORT_SYMBOL vmlinux 0x053ed3d6 dquot_transfer
+EXPORT_SYMBOL vmlinux 0x05499df7 acpi_bus_generate_proc_event
+EXPORT_SYMBOL vmlinux 0x05620624 simple_rename
+EXPORT_SYMBOL vmlinux 0x059528a7 block_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x05a6b3f4 get_agp_version
+EXPORT_SYMBOL vmlinux 0x05bc18ab pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0x05c86f9e blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x05d8f8e8 block_write_begin
+EXPORT_SYMBOL vmlinux 0x05d91077 agp_generic_destroy_page
+EXPORT_SYMBOL vmlinux 0x05e28d43 __first_cpu
+EXPORT_SYMBOL vmlinux 0x05ed2335 tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x05f3416d poll_freewait
+EXPORT_SYMBOL vmlinux 0x05f4f639 kernel_read
+EXPORT_SYMBOL vmlinux 0x061601bb rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0x061651be strcat
+EXPORT_SYMBOL vmlinux 0x063a471f copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0x0640bf8f uart_resume_port
+EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx
+EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache
+EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc
+EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x06cd95c7 journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x06d4261f dm_table_get_size
+EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0x06e62bd9 mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn
+EXPORT_SYMBOL vmlinux 0x071118cb pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8
+EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace
+EXPORT_SYMBOL vmlinux 0x07500053 vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x0779489c sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable
+EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong
+EXPORT_SYMBOL vmlinux 0x079b1b6f I_BDEV
+EXPORT_SYMBOL vmlinux 0x07a1c103 sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x07a6a3e3 bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x07e767dd km_report
+EXPORT_SYMBOL vmlinux 0x07e8306e blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x07f537d5 fb_blank
+EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses
+EXPORT_SYMBOL vmlinux 0x082c7e3a mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0x083b5ae5 acpi_bus_start
+EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0x08520327 bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0x085cfab6 inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x08960bf1 skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0x08b59770 tty_free_termios
+EXPORT_SYMBOL vmlinux 0x08c3b89e nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x0901e2ce block_sync_page
+EXPORT_SYMBOL vmlinux 0x091bfeb8 scsi_register_driver
+EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled
+EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages
+EXPORT_SYMBOL vmlinux 0x095f8706 acpi_lock_ac_dir
+EXPORT_SYMBOL vmlinux 0x0964a667 tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x09775cdc kref_get
+EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources
+EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x099be350 register_con_driver
+EXPORT_SYMBOL vmlinux 0x099d8c59 clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x09a18679 lock_may_write
+EXPORT_SYMBOL vmlinux 0x09b68317 simple_getattr
+EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d1ecbe simple_dir_operations
+EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions
+EXPORT_SYMBOL vmlinux 0x09e3f8e9 tty_vhangup
+EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a2d5665 scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0x0a3ea7bf tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0x0a521693 fb_find_mode
+EXPORT_SYMBOL vmlinux 0x0a688aa6 dma_sync_wait
+EXPORT_SYMBOL vmlinux 0x0a7e99b8 __task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x0aa113ef dquot_drop
+EXPORT_SYMBOL vmlinux 0x0aa4088d scsi_unregister
+EXPORT_SYMBOL vmlinux 0x0aca0c80 bitmap_end_sync
+EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all
+EXPORT_SYMBOL vmlinux 0x0adc7068 tcp_shutdown
+EXPORT_SYMBOL vmlinux 0x0ae0b8c2 __scm_send
+EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert
+EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b2c91bf input_unregister_device
+EXPORT_SYMBOL vmlinux 0x0b51430c sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b8ba7bb vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0x0bb453be jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0x0bbf4342 sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat
+EXPORT_SYMBOL vmlinux 0x0bcb08f3 tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0x0bf9c146 __wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x0c0e3642 journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x0c0ee20e agp_put_bridge
+EXPORT_SYMBOL vmlinux 0x0c509294 mmc_wait_for_cmd
+EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region
+EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register
+EXPORT_SYMBOL vmlinux 0x0cd64517 vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x0cd7ed3f submit_bio
+EXPORT_SYMBOL vmlinux 0x0cda1435 pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0x0cddbb07 bio_put
+EXPORT_SYMBOL vmlinux 0x0d004b36 generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x0d05a7fe skb_unlink
+EXPORT_SYMBOL vmlinux 0x0d10a231 iterate_mounts
+EXPORT_SYMBOL vmlinux 0x0d2e1996 posix_test_lock
+EXPORT_SYMBOL vmlinux 0x0d3541f2 ps2_command
+EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type
+EXPORT_SYMBOL vmlinux 0x0d46e295 generic_getxattr
+EXPORT_SYMBOL vmlinux 0x0d53253a unlock_buffer
+EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d652bb4 unregister_memory_isolate_notifier
+EXPORT_SYMBOL vmlinux 0x0d798a2d blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x0d97a85a tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0ddb7e9c pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0x0ddd3a33 acpi_match_device_ids
+EXPORT_SYMBOL vmlinux 0x0e173e69 inet6_bind
+EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x0e29eb14 i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0x0e34c69f netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x0e52592a panic
+EXPORT_SYMBOL vmlinux 0x0e5b01d9 __xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x0e8d64f3 d_alloc_name
+EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free
+EXPORT_SYMBOL vmlinux 0x0ec9f3f5 eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x0ed3cf33 scsi_print_command
+EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed
+EXPORT_SYMBOL vmlinux 0x0edce874 acpi_lock_battery_dir
+EXPORT_SYMBOL vmlinux 0x0f05a1ef vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x0f0636f0 netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0x0f568330 pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0x0f712698 rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x0f9c1071 consume_skb
+EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fc5e8eb radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event
+EXPORT_SYMBOL vmlinux 0x0fe29e3e mmc_card_sleep
+EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress
+EXPORT_SYMBOL vmlinux 0x10109bfd pci_save_state
+EXPORT_SYMBOL vmlinux 0x1013e886 dm_exception_store_type_unregister
+EXPORT_SYMBOL vmlinux 0x106a542c pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user
+EXPORT_SYMBOL vmlinux 0x1078ce2a __bio_clone
+EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint
+EXPORT_SYMBOL vmlinux 0x109e9747 fd_install
+EXPORT_SYMBOL vmlinux 0x10a50c00 elevator_exit
+EXPORT_SYMBOL vmlinux 0x10ab1af1 alloc_disk
+EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10da7e4b brioctl_set
+EXPORT_SYMBOL vmlinux 0x10df2543 xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu
+EXPORT_SYMBOL vmlinux 0x10f4a70d netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x11071ad0 sg_miter_start
+EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype
+EXPORT_SYMBOL vmlinux 0x1108e1c3 agp_generic_free_by_type
+EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x1130287a mmc_release_host
+EXPORT_SYMBOL vmlinux 0x11333ecf phy_detach
+EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x11887c19 phy_connect_direct
+EXPORT_SYMBOL vmlinux 0x118f01ea putname
+EXPORT_SYMBOL vmlinux 0x1190b1f2 seq_putc
+EXPORT_SYMBOL vmlinux 0x119fdd0b clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0x11c8a74c ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0x11e4eac2 napi_complete
+EXPORT_SYMBOL vmlinux 0x11f78247 dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin
+EXPORT_SYMBOL vmlinux 0x11fb8998 kernel_getpeername
+EXPORT_SYMBOL vmlinux 0x11ffad0f try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x120d5129 thaw_process
+EXPORT_SYMBOL vmlinux 0x120fadd0 inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0x1254aa58 udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0x1255beb6 put_page
+EXPORT_SYMBOL vmlinux 0x129bedf1 __pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0x12a3cade journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x12a58cb5 cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0x12bb1165 key_negate_and_link
+EXPORT_SYMBOL vmlinux 0x12e831aa dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0x12f305ef phy_attach_direct
+EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x12fe850d compat_sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x130560d1 pnp_get_resource
+EXPORT_SYMBOL vmlinux 0x1325339d dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x132f24ac dma_async_device_register
+EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support
+EXPORT_SYMBOL vmlinux 0x137b102d simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x1394b8a9 agp_flush_chipset
+EXPORT_SYMBOL vmlinux 0x13a59fcd filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid
+EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation
+EXPORT_SYMBOL vmlinux 0x13ff87f1 journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x14042a3e inode_setattr
+EXPORT_SYMBOL vmlinux 0x1407539a jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0x1408295c udplite_prot
+EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier
+EXPORT_SYMBOL vmlinux 0x1436917d down_write
+EXPORT_SYMBOL vmlinux 0x1455917f fget
+EXPORT_SYMBOL vmlinux 0x14598b7e __scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0x145d078c tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0x1477e90a pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0x14b95598 vfs_link
+EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x14d8b7f1 pci_find_capability
+EXPORT_SYMBOL vmlinux 0x14ea1943 dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x14f37a99 agp_generic_alloc_page
+EXPORT_SYMBOL vmlinux 0x15020348 get_write_access
+EXPORT_SYMBOL vmlinux 0x153b6d7e lookup_hash
+EXPORT_SYMBOL vmlinux 0x154b6cb2 inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x155620b1 vga_get
+EXPORT_SYMBOL vmlinux 0x155f480a pnp_unregister_card_driver
+EXPORT_SYMBOL vmlinux 0x156ac384 invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0x15720483 mmc_power_restore_host
+EXPORT_SYMBOL vmlinux 0x158c5737 send_sig
+EXPORT_SYMBOL vmlinux 0x15aaaf51 dev_open
+EXPORT_SYMBOL vmlinux 0x15d60372 padata_alloc
+EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister
+EXPORT_SYMBOL vmlinux 0x15db2aa6 bdget
+EXPORT_SYMBOL vmlinux 0x15ec1314 redraw_screen
+EXPORT_SYMBOL vmlinux 0x15f084b7 input_register_handler
+EXPORT_SYMBOL vmlinux 0x1607b0f5 __ip_select_ident
+EXPORT_SYMBOL vmlinux 0x160bb650 truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled
+EXPORT_SYMBOL vmlinux 0x1624487e input_allocate_device
+EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x16478acc simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock
+EXPORT_SYMBOL vmlinux 0x165a9de1 wireless_spy_update
+EXPORT_SYMBOL vmlinux 0x16651452 sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1
+EXPORT_SYMBOL vmlinux 0x16b81c98 skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x16bc3a24 alloc_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0x16c178d1 pcix_get_mmrbc
+EXPORT_SYMBOL vmlinux 0x16cb8ec6 default_llseek
+EXPORT_SYMBOL vmlinux 0x16eef42d proto_register
+EXPORT_SYMBOL vmlinux 0x170bf18b acpi_unlock_ac_dir
+EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object
+EXPORT_SYMBOL vmlinux 0x170d0e49 lro_flush_all
+EXPORT_SYMBOL vmlinux 0x17155ac5 journal_update_format
+EXPORT_SYMBOL vmlinux 0x17175757 commit_creds
+EXPORT_SYMBOL vmlinux 0x1763f015 ida_remove
+EXPORT_SYMBOL vmlinux 0x17653928 cont_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x17676d28 netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x1777dea9 agp_generic_create_gatt_table
+EXPORT_SYMBOL vmlinux 0x1789d271 xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0x17a26c5a find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0x17d9a17b xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17eeff02 i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x1805c0f8 dquot_acquire
+EXPORT_SYMBOL vmlinux 0x18308162 inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x183b4ccd elv_register_queue
+EXPORT_SYMBOL vmlinux 0x183b86dd sock_no_poll
+EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL vmlinux 0x184fd6b8 lro_vlan_hwaccel_receive_skb
+EXPORT_SYMBOL vmlinux 0x18570582 xfrm_input
+EXPORT_SYMBOL vmlinux 0x186a34e9 rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0x187366e7 pci_iomap
+EXPORT_SYMBOL vmlinux 0x18801700 get_disk
+EXPORT_SYMBOL vmlinux 0x1896c5ae tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x18b18ea5 uart_register_driver
+EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe
+EXPORT_SYMBOL vmlinux 0x18d80137 __neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0x18fdd513 bio_copy_user
+EXPORT_SYMBOL vmlinux 0x19349400 pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x1945d781 filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x195e10a9 skb_queue_head
+EXPORT_SYMBOL vmlinux 0x1972ede2 tcp_poll
+EXPORT_SYMBOL vmlinux 0x19743084 spi_release_transport
+EXPORT_SYMBOL vmlinux 0x197ca03a vfs_statfs
+EXPORT_SYMBOL vmlinux 0x1988dcb8 nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19a4af42 md_check_recovery
+EXPORT_SYMBOL vmlinux 0x19b16064 cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0x19db1a16 sock_register
+EXPORT_SYMBOL vmlinux 0x1a0bb1f7 task_nice
+EXPORT_SYMBOL vmlinux 0x1a0febed noop_llseek
+EXPORT_SYMBOL vmlinux 0x1a16dabf path_put
+EXPORT_SYMBOL vmlinux 0x1a18886e unlock_page
+EXPORT_SYMBOL vmlinux 0x1a2a19ab journal_wipe
+EXPORT_SYMBOL vmlinux 0x1a3f3148 mmc_host_lazy_disable
+EXPORT_SYMBOL vmlinux 0x1a3fcfa3 find_or_create_page
+EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled
+EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch
+EXPORT_SYMBOL vmlinux 0x1a6f9d07 thermal_cooling_device_unregister
+EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait
+EXPORT_SYMBOL vmlinux 0x1a925a66 down
+EXPORT_SYMBOL vmlinux 0x1a9fbd57 fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in
+EXPORT_SYMBOL vmlinux 0x1aa48f55 dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0x1abf1dec set_pages_wb
+EXPORT_SYMBOL vmlinux 0x1ac3bccb dev_uc_add
+EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b031c5b inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0x1b2f33c0 vfs_getattr
+EXPORT_SYMBOL vmlinux 0x1b448878 tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0x1b465abc __lookup_one_len
+EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton
+EXPORT_SYMBOL vmlinux 0x1b6c897b prepare_creds
+EXPORT_SYMBOL vmlinux 0x1b6c9ffd llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0x1b7f9d68 dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b903168 filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1bb9805a cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0x1bc8cd4e disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x1bcc8aca kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x1bd5ead1 ethtool_ntuple_flush
+EXPORT_SYMBOL vmlinux 0x1c039585 linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x1c1aa600 rfkill_register
+EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c4fa49b xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x1c635a9f iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset
+EXPORT_SYMBOL vmlinux 0x1c8e9bc5 blk_rq_init
+EXPORT_SYMBOL vmlinux 0x1c957316 agp_collect_device_status
+EXPORT_SYMBOL vmlinux 0x1c96289e udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0x1caa84d8 framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x1cbbb841 generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x1cc53149 kfree_skb
+EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cd17804 ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x1ce8558f napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x1cf4e93c scsi_block_requests
+EXPORT_SYMBOL vmlinux 0x1d1eab29 jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d3f2179 iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0x1d459be2 tty_port_close
+EXPORT_SYMBOL vmlinux 0x1d6c9445 hippi_neigh_setup_dev
+EXPORT_SYMBOL vmlinux 0x1d80b06c pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0x1d866242 journal_stop
+EXPORT_SYMBOL vmlinux 0x1d9676f8 bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0x1daac243 scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache
+EXPORT_SYMBOL vmlinux 0x1dbe1dea log_start_commit
+EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dd4614f phy_device_create
+EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1de55817 pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0x1deed478 jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0x1df0ccd0 vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe
+EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc
+EXPORT_SYMBOL vmlinux 0x1e2e427f cpumask_next_and
+EXPORT_SYMBOL vmlinux 0x1e5365b6 journal_dirty_data
+EXPORT_SYMBOL vmlinux 0x1e545fb2 abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0x1e5b18bd remove_arg_zero
+EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr
+EXPORT_SYMBOL vmlinux 0x1e6e438b compat_ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x1e96ec39 ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1ed71082 no_llseek
+EXPORT_SYMBOL vmlinux 0x1ee99984 padata_do_serial
+EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set
+EXPORT_SYMBOL vmlinux 0x1f030d70 sock_no_bind
+EXPORT_SYMBOL vmlinux 0x1f2372d6 soft_cursor
+EXPORT_SYMBOL vmlinux 0x1f31dfea pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0x1f7b6478 have_submounts
+EXPORT_SYMBOL vmlinux 0x1f959f82 compat_tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x1fa2cc05 dump_trace
+EXPORT_SYMBOL vmlinux 0x1fb70375 __dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0x1fbf5631 devm_free_irq
+EXPORT_SYMBOL vmlinux 0x1fc5e8ca inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x1fc7403e arp_create
+EXPORT_SYMBOL vmlinux 0x1fcadea2 netpoll_send_skb
+EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag
+EXPORT_SYMBOL vmlinux 0x1fd96d5e dev_uc_del
+EXPORT_SYMBOL vmlinux 0x1feb717f kernel_getsockname
+EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region
+EXPORT_SYMBOL vmlinux 0x1ff92ec1 lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul
+EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x203c9c50 journal_start_commit
+EXPORT_SYMBOL vmlinux 0x204e301e __find_get_block
+EXPORT_SYMBOL vmlinux 0x2061fdfd alloc_pages_current
+EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table
+EXPORT_SYMBOL vmlinux 0x209a2e24 i2c_transfer
+EXPORT_SYMBOL vmlinux 0x20a22791 block_truncate_page
+EXPORT_SYMBOL vmlinux 0x20dee933 idr_get_new_above
+EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum
+EXPORT_SYMBOL vmlinux 0x212ce9b9 iput
+EXPORT_SYMBOL vmlinux 0x214d949b complete_request_key
+EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16
+EXPORT_SYMBOL vmlinux 0x216001c0 __register_chrdev
+EXPORT_SYMBOL vmlinux 0x2192f399 buffer_migrate_page
+EXPORT_SYMBOL vmlinux 0x21aa3ec9 inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id
+EXPORT_SYMBOL vmlinux 0x21f646f5 inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq
+EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log
+EXPORT_SYMBOL vmlinux 0x2288378f system_state
+EXPORT_SYMBOL vmlinux 0x22891ecd page_symlink
+EXPORT_SYMBOL vmlinux 0x228c4c0d bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x228ed977 __scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x22961ac6 remove_from_page_cache
+EXPORT_SYMBOL vmlinux 0x22a1ff37 sk_alloc
+EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound
+EXPORT_SYMBOL vmlinux 0x22b4c4a5 blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0x22b5c006 dev_get_stats
+EXPORT_SYMBOL vmlinux 0x22c9d5bd inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x23018607 tcp_disconnect
+EXPORT_SYMBOL vmlinux 0x23100738 setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x23122bff thermal_cooling_device_register
+EXPORT_SYMBOL vmlinux 0x2312564e phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x23168d97 security_path_link
+EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul
+EXPORT_SYMBOL vmlinux 0x2334adc2 pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0x234509f3 strncat
+EXPORT_SYMBOL vmlinux 0x234f85f4 abort_creds
+EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x2357bb41 bio_copy_kern
+EXPORT_SYMBOL vmlinux 0x236c8c64 memcpy
+EXPORT_SYMBOL vmlinux 0x23899d09 jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x23b99e92 node_states
+EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23d64270 deactivate_super
+EXPORT_SYMBOL vmlinux 0x23f1a0ab sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node
+EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x2449c86e __pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x245d186b shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x24729d0e d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x24c34326 thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL vmlinux 0x24cbf137 invalidate_inodes
+EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add
+EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function
+EXPORT_SYMBOL vmlinux 0x24fe7130 pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid
+EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x258bbdd1 scsi_host_put
+EXPORT_SYMBOL vmlinux 0x25a11550 dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0x25a223e6 scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0x25bc4838 dm_table_get
+EXPORT_SYMBOL vmlinux 0x25bf06de jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x25ec1b28 strlen
+EXPORT_SYMBOL vmlinux 0x2606120e skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x260c6629 blk_register_region
+EXPORT_SYMBOL vmlinux 0x261ad215 proc_mkdir
+EXPORT_SYMBOL vmlinux 0x2637d513 __seq_open_private
+EXPORT_SYMBOL vmlinux 0x26467b22 iget_failed
+EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x26ae9624 __serio_register_port
+EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create
+EXPORT_SYMBOL vmlinux 0x26e684d0 ip_mc_rejoin_group
+EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x26f87c26 pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler
+EXPORT_SYMBOL vmlinux 0x271f68f7 default_unplug_io_fn
+EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del
+EXPORT_SYMBOL vmlinux 0x273453fa single_release
+EXPORT_SYMBOL vmlinux 0x274e1e92 register_nls
+EXPORT_SYMBOL vmlinux 0x276aa7d5 xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0x277b90ff rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x27864d57 memparse
+EXPORT_SYMBOL vmlinux 0x278e90e0 locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x27b057c4 sg_miter_next
+EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic
+EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x27cb5ab2 skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic
+EXPORT_SYMBOL vmlinux 0x27d0c1a2 sock_wmalloc
+EXPORT_SYMBOL vmlinux 0x27f439ac kernel_accept
+EXPORT_SYMBOL vmlinux 0x280f2111 blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll
+EXPORT_SYMBOL vmlinux 0x2866c80d loop_register_transfer
+EXPORT_SYMBOL vmlinux 0x2872bc9c skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x2882e2dd set_pages_nx
+EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28aa2592 filemap_fault
+EXPORT_SYMBOL vmlinux 0x28b40fb5 mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x28ec27e3 security_path_unlink
+EXPORT_SYMBOL vmlinux 0x290432e8 journal_create
+EXPORT_SYMBOL vmlinux 0x2911ea4c kobject_add
+EXPORT_SYMBOL vmlinux 0x2919be53 mmc_request_done
+EXPORT_SYMBOL vmlinux 0x291c2584 udp_disconnect
+EXPORT_SYMBOL vmlinux 0x291e9107 jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0x293b58e1 pci_restore_state
+EXPORT_SYMBOL vmlinux 0x293dea03 tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x293f383b acpi_processor_register_performance
+EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x299ab1e6 napi_frags_skb
+EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set
+EXPORT_SYMBOL vmlinux 0x29c6d230 remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0x29cd2920 ip6_route_output
+EXPORT_SYMBOL vmlinux 0x29f10e3f gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x29fbc187 tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0x2a1bf529 skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq
+EXPORT_SYMBOL vmlinux 0x2a23d051 i2c_del_driver
+EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature
+EXPORT_SYMBOL vmlinux 0x2a3107de prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0x2a48756c tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x2a5b9eae phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x2a7b0819 tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0x2ab2e128 d_find_alias
+EXPORT_SYMBOL vmlinux 0x2ab83e54 register_snap_client
+EXPORT_SYMBOL vmlinux 0x2ae48894 inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x2af1ef90 pnp_register_card_driver
+EXPORT_SYMBOL vmlinux 0x2af4bedf slow_work_register_user
+EXPORT_SYMBOL vmlinux 0x2b04968c alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b3fc46b dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x2b5967bc read_cache_pages
+EXPORT_SYMBOL vmlinux 0x2b6497ab fsnotify_obtain_group
+EXPORT_SYMBOL vmlinux 0x2b6a88c6 cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0x2b7daa3c tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler
+EXPORT_SYMBOL vmlinux 0x2bf04525 llc_add_pack
+EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle
+EXPORT_SYMBOL vmlinux 0x2c04b5e6 scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x2c0faa10 elv_rb_add
+EXPORT_SYMBOL vmlinux 0x2c766172 tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x2ce54b56 path_is_under
+EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic
+EXPORT_SYMBOL vmlinux 0x2d02f816 sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x2d09989d __scsi_put_command
+EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d2960ab tty_name
+EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x2d5c00ba input_inject_event
+EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2d9ef758 filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x2da3f72a generic_read_dir
+EXPORT_SYMBOL vmlinux 0x2da5f5f7 km_query
+EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu
+EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception
+EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write
+EXPORT_SYMBOL vmlinux 0x2dfa9eda block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x2e06111d cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e3d2edb cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem
+EXPORT_SYMBOL vmlinux 0x2e648ed4 __invalidate_device
+EXPORT_SYMBOL vmlinux 0x2e7ed600 pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0x2ebfaa00 secpath_dup
+EXPORT_SYMBOL vmlinux 0x2ef7cd2e neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x2efcd79e mapping_tagged
+EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource
+EXPORT_SYMBOL vmlinux 0x2f165e9e dev_close
+EXPORT_SYMBOL vmlinux 0x2f225faf xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0x2f3b02f1 mdiobus_register
+EXPORT_SYMBOL vmlinux 0x2f799112 pci_bus_type
+EXPORT_SYMBOL vmlinux 0x2fa5a500 memcmp
+EXPORT_SYMBOL vmlinux 0x2fd60df9 key_task_permission
+EXPORT_SYMBOL vmlinux 0x2fdb9e8a jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0x2fdda4a6 qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0x2fed4219 register_netdev
+EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name
+EXPORT_SYMBOL vmlinux 0x2ff13c29 phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x301eebda ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command
+EXPORT_SYMBOL vmlinux 0x3028905d vga_switcheroo_client_fb_set
+EXPORT_SYMBOL vmlinux 0x3045882b vfs_readv
+EXPORT_SYMBOL vmlinux 0x304eac94 xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x307b9b00 __page_cache_alloc
+EXPORT_SYMBOL vmlinux 0x307d898e agp_unbind_memory
+EXPORT_SYMBOL vmlinux 0x30a7a729 pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x30b12b0c jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0x30c61ca7 mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write
+EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x3119bc5e dev_txq_stats_fold
+EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d default_red
+EXPORT_SYMBOL vmlinux 0x3153458e skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x317d54be migrate_page
+EXPORT_SYMBOL vmlinux 0x318c03f5 eth_type_trans
+EXPORT_SYMBOL vmlinux 0x3198e452 scsi_put_command
+EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck
+EXPORT_SYMBOL vmlinux 0x31d6bbaa max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0x31e0c59f blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz
+EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p
+EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc
+EXPORT_SYMBOL vmlinux 0x31f19d32 try_to_release_page
+EXPORT_SYMBOL vmlinux 0x32139023 security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0x32243f57 jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x3228cd0e pci_disable_link_state
+EXPORT_SYMBOL vmlinux 0x32447137 con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0x32682864 __mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x32720176 xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x3277f82a security_file_mmap
+EXPORT_SYMBOL vmlinux 0x327dfef8 idr_replace
+EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint
+EXPORT_SYMBOL vmlinux 0x329d6f67 vfs_follow_link
+EXPORT_SYMBOL vmlinux 0x32a24cc5 __nla_reserve
+EXPORT_SYMBOL vmlinux 0x32b1738c bd_claim
+EXPORT_SYMBOL vmlinux 0x32bceea5 nf_register_hook
+EXPORT_SYMBOL vmlinux 0x32c28395 gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x32c940a3 kill_pgrp
+EXPORT_SYMBOL vmlinux 0x32db9ce9 scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x32f647bd mntput_no_expire
+EXPORT_SYMBOL vmlinux 0x3310b4d5 ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x333d9e8f sget
+EXPORT_SYMBOL vmlinux 0x33429ccd pci_enable_device
+EXPORT_SYMBOL vmlinux 0x3374e509 vfs_fsync
+EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page
+EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0x341bbf9e mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x343662a2 security_path_truncate
+EXPORT_SYMBOL vmlinux 0x34391fab ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x3444fa62 phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x3452bc8e simple_fill_super
+EXPORT_SYMBOL vmlinux 0x34559ca1 agp_alloc_page_array
+EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long
+EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x34692cb7 current_fs_time
+EXPORT_SYMBOL vmlinux 0x347c42c7 __destroy_inode
+EXPORT_SYMBOL vmlinux 0x34897c1e get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x349cba85 strchr
+EXPORT_SYMBOL vmlinux 0x34a678a9 skb_recycle_check
+EXPORT_SYMBOL vmlinux 0x352193c0 acpi_bus_get_status
+EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe
+EXPORT_SYMBOL vmlinux 0x3561b679 release_sock
+EXPORT_SYMBOL vmlinux 0x3582ed17 vfs_stat
+EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf
+EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator
+EXPORT_SYMBOL vmlinux 0x35ca63a8 poll_initwait
+EXPORT_SYMBOL vmlinux 0x35cb41c7 posix_lock_file
+EXPORT_SYMBOL vmlinux 0x35cee1a1 ps2_begin_command
+EXPORT_SYMBOL vmlinux 0x35d7d357 kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0x35db4efd vga_tryget
+EXPORT_SYMBOL vmlinux 0x35e2a750 hippi_type_trans
+EXPORT_SYMBOL vmlinux 0x35fb2426 rtnl_unicast
+EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask
+EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x361eba7f kernel_bind
+EXPORT_SYMBOL vmlinux 0x36369f68 sock_update_classid
+EXPORT_SYMBOL vmlinux 0x3636adb4 fsnotify_destroy_mark_by_entry
+EXPORT_SYMBOL vmlinux 0x36722d02 pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0x367c99cf bio_endio
+EXPORT_SYMBOL vmlinux 0x367cbf02 wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x36830236 pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg
+EXPORT_SYMBOL vmlinux 0x3697d758 simple_transaction_set
+EXPORT_SYMBOL vmlinux 0x36c183db bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36eb1b0c i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x36f2709a sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0x36fe2e7e vfs_readlink
+EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user
+EXPORT_SYMBOL vmlinux 0x372db1f6 seq_lseek
+EXPORT_SYMBOL vmlinux 0x373bb2ce generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x373c7c01 pci_scan_slot
+EXPORT_SYMBOL vmlinux 0x373fea3d dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x375465a7 radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic
+EXPORT_SYMBOL vmlinux 0x37b4c8e6 __tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date
+EXPORT_SYMBOL vmlinux 0x37def6f1 fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0x38082dbb set_binfmt
+EXPORT_SYMBOL vmlinux 0x380c28a7 fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x38262fdf neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x38318911 close_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x384cc40e pci_remove_behind_bridge
+EXPORT_SYMBOL vmlinux 0x3866f09f flush_old_exec
+EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x38a64058 agp_find_bridge
+EXPORT_SYMBOL vmlinux 0x38b28c40 blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu
+EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0x390ab1a0 d_move
+EXPORT_SYMBOL vmlinux 0x390b9f0a pci_get_class
+EXPORT_SYMBOL vmlinux 0x397b0a14 tcf_em_register
+EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x398b4c15 jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0x39b2693a inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x39b2ed87 netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x39e0bf8c skb_make_writable
+EXPORT_SYMBOL vmlinux 0x3a197016 write_cache_pages
+EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a63f8a7 lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all
+EXPORT_SYMBOL vmlinux 0x3a8115e7 inet_listen
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3aa9eabc tcp4_gro_complete
+EXPORT_SYMBOL vmlinux 0x3ab6d0ac i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0x3ab7b5f4 dev_load
+EXPORT_SYMBOL vmlinux 0x3af9cae9 idr_remove
+EXPORT_SYMBOL vmlinux 0x3b09448c truncate_pagecache
+EXPORT_SYMBOL vmlinux 0x3b262579 tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b5a2a54 neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x3b6bf95f __devm_request_region
+EXPORT_SYMBOL vmlinux 0x3b753df4 pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0x3b8c0ff2 inet6_ioctl
+EXPORT_SYMBOL vmlinux 0x3bbab5f1 pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3c0a2f26 alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf
+EXPORT_SYMBOL vmlinux 0x3c34997f bh_submit_read
+EXPORT_SYMBOL vmlinux 0x3c6a6c22 module_refcount
+EXPORT_SYMBOL vmlinux 0x3c850ac6 page_readlink
+EXPORT_SYMBOL vmlinux 0x3c8cf209 pci_enable_msix
+EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size
+EXPORT_SYMBOL vmlinux 0x3cbe82bb inet_frags_init
+EXPORT_SYMBOL vmlinux 0x3ce01e06 key_payload_reserve
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq
+EXPORT_SYMBOL vmlinux 0x3cf89d7f cpu_info
+EXPORT_SYMBOL vmlinux 0x3d0197f4 pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0x3d0e3d44 tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x3d1966c6 blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0x3d2589a9 arp_xmit
+EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc
+EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page
+EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start
+EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0x3dc93172 bdi_register_dev
+EXPORT_SYMBOL vmlinux 0x3dd8997f nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock
+EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks
+EXPORT_SYMBOL vmlinux 0x3e442660 fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e8306c0 pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3eb66e96 phy_enable_interrupts
+EXPORT_SYMBOL vmlinux 0x3ec61324 dm_dirty_log_create
+EXPORT_SYMBOL vmlinux 0x3ecc3e16 x86_hyper
+EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f0f30d4 tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x3f1d59bc netif_receive_skb
+EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq
+EXPORT_SYMBOL vmlinux 0x3f87a117 netlink_ack
+EXPORT_SYMBOL vmlinux 0x3f97f590 security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0x3fa913da strspn
+EXPORT_SYMBOL vmlinux 0x3fc4b7bb skb_checksum
+EXPORT_SYMBOL vmlinux 0x3fec048f sg_next
+EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable
+EXPORT_SYMBOL vmlinux 0x40123029 xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x401c337a km_policy_expired
+EXPORT_SYMBOL vmlinux 0x402bd581 sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x4035e5a1 pci_choose_state
+EXPORT_SYMBOL vmlinux 0x40369829 acpi_processor_notify_smm
+EXPORT_SYMBOL vmlinux 0x403877ee generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds
+EXPORT_SYMBOL vmlinux 0x40725d08 blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x407c8141 __blockdev_direct_IO_newtrunc
+EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register
+EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40b746f7 kill_litter_super
+EXPORT_SYMBOL vmlinux 0x40bb65ea dm_dirty_log_type_register
+EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index
+EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring
+EXPORT_SYMBOL vmlinux 0x41081ab4 kmem_ptr_validate
+EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode
+EXPORT_SYMBOL vmlinux 0x41186a6e open_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp
+EXPORT_SYMBOL vmlinux 0x4134b9f1 sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x41408088 kobject_put
+EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user
+EXPORT_SYMBOL vmlinux 0x41553a8f blk_init_queue
+EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features
+EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0x41d0c1ae blk_remove_plug
+EXPORT_SYMBOL vmlinux 0x41d243c0 bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock
+EXPORT_SYMBOL vmlinux 0x41fa4c52 neigh_table_init
+EXPORT_SYMBOL vmlinux 0x41fc1a3f scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x41fd64b8 mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write
+EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x42183f5d agp_generic_alloc_pages
+EXPORT_SYMBOL vmlinux 0x421c82a8 scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0x42224298 sscanf
+EXPORT_SYMBOL vmlinux 0x422531e2 neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force
+EXPORT_SYMBOL vmlinux 0x42790576 sk_dst_check
+EXPORT_SYMBOL vmlinux 0x42810b8e xfrm_register_type
+EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p
+EXPORT_SYMBOL vmlinux 0x42b663ff ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x42c8f654 elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0x42d000a3 agp_backend_release
+EXPORT_SYMBOL vmlinux 0x42d954c5 request_firmware
+EXPORT_SYMBOL vmlinux 0x42ff5de3 scm_detach_fds
+EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages
+EXPORT_SYMBOL vmlinux 0x43066eb7 filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x4316aab6 misc_deregister
+EXPORT_SYMBOL vmlinux 0x431dc56a ___pskb_trim
+EXPORT_SYMBOL vmlinux 0x432be98b scsi_device_resume
+EXPORT_SYMBOL vmlinux 0x432de966 input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short
+EXPORT_SYMBOL vmlinux 0x4333fbb0 kernel_connect
+EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x4341d897 locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem
+EXPORT_SYMBOL vmlinux 0x43552b03 schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0x43577b72 swiotlb_sync_single_for_cpu
+EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32
+EXPORT_SYMBOL vmlinux 0x436dc8a1 ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x436ea92e ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x438259fb cap_file_mmap
+EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get
+EXPORT_SYMBOL vmlinux 0x43b034b8 tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0x43be8095 i2c_register_driver
+EXPORT_SYMBOL vmlinux 0x43c69fc0 __set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0x43dd4402 fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg
+EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x4430c54e bdi_init
+EXPORT_SYMBOL vmlinux 0x444779c4 nla_find
+EXPORT_SYMBOL vmlinux 0x44568214 dst_discard
+EXPORT_SYMBOL vmlinux 0x449e74ae udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x44a23e2b inode_needs_sync
+EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object
+EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz
+EXPORT_SYMBOL vmlinux 0x44af8cd8 grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0x44e6a62f starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x44e9a829 match_token
+EXPORT_SYMBOL vmlinux 0x44eefc38 blk_init_allocated_queue_node
+EXPORT_SYMBOL vmlinux 0x44f5d588 security_d_instantiate
+EXPORT_SYMBOL vmlinux 0x451c6b72 blk_peek_request
+EXPORT_SYMBOL vmlinux 0x452171a5 cad_pid
+EXPORT_SYMBOL vmlinux 0x452bc7bf jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled
+EXPORT_SYMBOL vmlinux 0x45488540 pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0x454bd8df ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x4567c0cc tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0x457d0652 idr_remove_all
+EXPORT_SYMBOL vmlinux 0x45947727 param_array_set
+EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states
+EXPORT_SYMBOL vmlinux 0x45b600df mpage_readpage
+EXPORT_SYMBOL vmlinux 0x45b62cb9 truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45ddba2a dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x45eb97f1 journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x45fd490d bitmap_close_sync
+EXPORT_SYMBOL vmlinux 0x46467e4b inode_change_ok
+EXPORT_SYMBOL vmlinux 0x464c3cc0 blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0x466c14a7 __delay
+EXPORT_SYMBOL vmlinux 0x46763b95 nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x46a4ef2b simple_transaction_get
+EXPORT_SYMBOL vmlinux 0x46ac6f8c generic_unplug_device
+EXPORT_SYMBOL vmlinux 0x46ae85f2 tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x46bdb2df xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance
+EXPORT_SYMBOL vmlinux 0x46ce03b8 scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0x4706d0c6 journal_ack_err
+EXPORT_SYMBOL vmlinux 0x471a6e86 skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x47434e12 read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects
+EXPORT_SYMBOL vmlinux 0x477983e0 generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0x4780cd81 processors
+EXPORT_SYMBOL vmlinux 0x47818595 __scm_destroy
+EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq
+EXPORT_SYMBOL vmlinux 0x47933c67 sk_stream_error
+EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit
+EXPORT_SYMBOL vmlinux 0x47ac1096 spi_schedule_dv_device
+EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number
+EXPORT_SYMBOL vmlinux 0x47ea1f6d tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0x47ecc84d pci_get_subsys
+EXPORT_SYMBOL vmlinux 0x4816611f bdi_unregister
+EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open
+EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep
+EXPORT_SYMBOL vmlinux 0x482f7385 nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days
+EXPORT_SYMBOL vmlinux 0x4890abe2 tcp_close
+EXPORT_SYMBOL vmlinux 0x48ad6034 pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0x48b5d016 sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x48deae63 default_file_splice_read
+EXPORT_SYMBOL vmlinux 0x493d7045 sync_inode
+EXPORT_SYMBOL vmlinux 0x4942615e padata_start
+EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x49a980bb neigh_for_each
+EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49b6b0aa pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0x49b6c63f find_inode_number
+EXPORT_SYMBOL vmlinux 0x49c7af80 __kfree_skb
+EXPORT_SYMBOL vmlinux 0x49d58b96 single_open
+EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string
+EXPORT_SYMBOL vmlinux 0x49f8d1ba xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a366cda __f_setown
+EXPORT_SYMBOL vmlinux 0x4a3a85e1 scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x4a512489 console_start
+EXPORT_SYMBOL vmlinux 0x4a74f7df cdrom_open
+EXPORT_SYMBOL vmlinux 0x4a7cb7c5 generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0x4a8451b6 generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0x4a8f1ac7 dev_mc_add
+EXPORT_SYMBOL vmlinux 0x4a928944 textsearch_prepare
+EXPORT_SYMBOL vmlinux 0x4aa316bf uart_get_divisor
+EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource
+EXPORT_SYMBOL vmlinux 0x4adec44b tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b019c9b key_unlink
+EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure
+EXPORT_SYMBOL vmlinux 0x4b29bed4 register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x4b385b78 phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0x4b605000 napi_get_frags
+EXPORT_SYMBOL vmlinux 0x4b663035 jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x4b7226db kmem_cache_name
+EXPORT_SYMBOL vmlinux 0x4b9c194a phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags
+EXPORT_SYMBOL vmlinux 0x4bdc8e43 mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c1f98dd unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp
+EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack
+EXPORT_SYMBOL vmlinux 0x4c5cfcb2 vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x4c6983cb mpage_writepage
+EXPORT_SYMBOL vmlinux 0x4c903cb1 tty_unthrottle
+EXPORT_SYMBOL vmlinux 0x4cb69471 llc_sap_open
+EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4ce4ec08 unregister_md_personality
+EXPORT_SYMBOL vmlinux 0x4d12adb1 icmp_send
+EXPORT_SYMBOL vmlinux 0x4d181126 ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0x4d1e5ed4 blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0x4d239c4c devm_ioremap
+EXPORT_SYMBOL vmlinux 0x4d2adca6 generic_write_checks
+EXPORT_SYMBOL vmlinux 0x4d3a3704 kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x4d474f36 generic_listxattr
+EXPORT_SYMBOL vmlinux 0x4d6d7a39 key_revoke
+EXPORT_SYMBOL vmlinux 0x4d92b13f netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0x4d9c5bf3 __nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x4d9f4585 compat_ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x4dafb949 mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0x4db4046a inet_put_port
+EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dd6ca0b get_gendisk
+EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy
+EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4df552f7 scsi_free_command
+EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child
+EXPORT_SYMBOL vmlinux 0x4e2d4337 kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int
+EXPORT_SYMBOL vmlinux 0x4e35d12d dget_locked
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console
+EXPORT_SYMBOL vmlinux 0x4e98c0f2 create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x4e99c48f cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x4e9f3d2e __neigh_event_send
+EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals
+EXPORT_SYMBOL vmlinux 0x4ee47b0a generic_fillattr
+EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f342e51 do_munmap
+EXPORT_SYMBOL vmlinux 0x4f3933c7 dm_io_client_resize
+EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt
+EXPORT_SYMBOL vmlinux 0x4f5f04c6 blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user
+EXPORT_SYMBOL vmlinux 0x4f6fe4d5 pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0x4f77ce0f genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read
+EXPORT_SYMBOL vmlinux 0x4f87beef blk_end_request
+EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user
+EXPORT_SYMBOL vmlinux 0x4f95cb52 dev_mc_del
+EXPORT_SYMBOL vmlinux 0x4fb59ecb make_bad_inode
+EXPORT_SYMBOL vmlinux 0x4fbcd3f9 sk_common_release
+EXPORT_SYMBOL vmlinux 0x4fc0e6e6 alloc_file
+EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command
+EXPORT_SYMBOL vmlinux 0x5001ef4e end_page_writeback
+EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x5024bda9 tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0x50288bad pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0x503f513f blkdev_get
+EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status
+EXPORT_SYMBOL vmlinux 0x5061754a nf_log_packet
+EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x50d3055d pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0x50dfeb2d tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0x50e573fd dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0x50eeffe8 __blk_run_queue
+EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x511cd204 rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0x515721ee replace_mount_options
+EXPORT_SYMBOL vmlinux 0x515e5ee9 __mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x516c8904 tcp_parse_options
+EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn
+EXPORT_SYMBOL vmlinux 0x5195801a start_tty
+EXPORT_SYMBOL vmlinux 0x519cec1f xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x519ddecf km_policy_notify
+EXPORT_SYMBOL vmlinux 0x51aeb3cc force_sig
+EXPORT_SYMBOL vmlinux 0x51bbd624 xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled
+EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data
+EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue
+EXPORT_SYMBOL vmlinux 0x524f77e5 jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x52652a9d __skb_bond_should_drop
+EXPORT_SYMBOL vmlinux 0x526660c3 pcie_port_service_unregister
+EXPORT_SYMBOL vmlinux 0x526a237b pnp_register_driver
+EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday
+EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy
+EXPORT_SYMBOL vmlinux 0x52c2ef34 rb_erase
+EXPORT_SYMBOL vmlinux 0x52c96662 pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort
+EXPORT_SYMBOL vmlinux 0x52f174d9 dev_get_by_flags
+EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0x5309ff14 pci_target_state
+EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend
+EXPORT_SYMBOL vmlinux 0x53163b45 inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid
+EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat
+EXPORT_SYMBOL vmlinux 0x5356ea19 scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0x53792faa filp_open
+EXPORT_SYMBOL vmlinux 0x537d50f2 key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0x538bf5e0 do_sync_write
+EXPORT_SYMBOL vmlinux 0x53b220a4 ppp_dev_name
+EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x53d04766 pci_read_vpd
+EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate
+EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x5449b787 __module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier
+EXPORT_SYMBOL vmlinux 0x546bc9da netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0x54798129 cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0x5479db50 tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x54831c21 sock_no_accept
+EXPORT_SYMBOL vmlinux 0x548487ef padata_set_cpumask
+EXPORT_SYMBOL vmlinux 0x548c97eb rfkill_get_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x54b9228b dquot_quota_on_path
+EXPORT_SYMBOL vmlinux 0x54df0839 dqget
+EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54f81122 ip_dev_find
+EXPORT_SYMBOL vmlinux 0x5564bd0d skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0x5566e1db acpi_device_hid
+EXPORT_SYMBOL vmlinux 0x5575b53f __alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0x5580e2d7 simple_lookup
+EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x55a728c2 dquot_release
+EXPORT_SYMBOL vmlinux 0x55ae7c1a udp_prot
+EXPORT_SYMBOL vmlinux 0x55bcbdff scsi_prep_return
+EXPORT_SYMBOL vmlinux 0x55fd2e6b shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday
+EXPORT_SYMBOL vmlinux 0x56060821 pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0x560b54db rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x56232ed7 tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user
+EXPORT_SYMBOL vmlinux 0x5639b4a0 ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0x564c3d70 dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0x5658179e idr_get_new
+EXPORT_SYMBOL vmlinux 0x56a2550c uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0x56c772bd generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr
+EXPORT_SYMBOL vmlinux 0x56e8da2d unregister_cdrom
+EXPORT_SYMBOL vmlinux 0x56effde4 skb_store_bits
+EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function
+EXPORT_SYMBOL vmlinux 0x5710cb80 locks_init_lock
+EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x57466e34 tty_devnum
+EXPORT_SYMBOL vmlinux 0x57469826 pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x5751ee51 flush_signals
+EXPORT_SYMBOL vmlinux 0x5756e513 kmem_cache_alloc_notrace
+EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put
+EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16
+EXPORT_SYMBOL vmlinux 0x5767aaf8 genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on
+EXPORT_SYMBOL vmlinux 0x577deb21 phy_device_free
+EXPORT_SYMBOL vmlinux 0x578bc0f0 ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0x57b09822 up
+EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path
+EXPORT_SYMBOL vmlinux 0x57e8b244 unregister_qdisc
+EXPORT_SYMBOL vmlinux 0x581d5c53 padata_free
+EXPORT_SYMBOL vmlinux 0x582c24d1 tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x58411f0a generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep
+EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x5892aa92 jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x589e209c compat_sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x58be8d0a __serio_register_driver
+EXPORT_SYMBOL vmlinux 0x58c7f418 mmc_set_data_timeout
+EXPORT_SYMBOL vmlinux 0x58dcb503 scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x58e92f78 mutex_lock
+EXPORT_SYMBOL vmlinux 0x5901d00f xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0x59139d48 dquot_quota_off
+EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read
+EXPORT_SYMBOL vmlinux 0x593290e3 seq_escape
+EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client
+EXPORT_SYMBOL vmlinux 0x5944db88 audit_log_format
+EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map
+EXPORT_SYMBOL vmlinux 0x5950e840 neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x59a4bd64 jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register
+EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59f957b6 scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0x5a20bc83 unlock_rename
+EXPORT_SYMBOL vmlinux 0x5a2969cf qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table
+EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc
+EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2
+EXPORT_SYMBOL vmlinux 0x5a5aadec pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x5a5f075b writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0x5a62420a fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a772df6 end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x5a8e4e73 agp_alloc_bridge
+EXPORT_SYMBOL vmlinux 0x5ab0f500 ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x5acbfb2b inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0x5af0fffa xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x5b1a3380 nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x5b3e09ac pcie_port_service_register
+EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources
+EXPORT_SYMBOL vmlinux 0x5b5a2a32 smp_call_function_many
+EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0x5b786d18 __break_lease
+EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0x5b85ed6c mmc_add_host
+EXPORT_SYMBOL vmlinux 0x5b94104f __scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x5bc3c158 uart_update_timeout
+EXPORT_SYMBOL vmlinux 0x5bfc852c journal_init_dev
+EXPORT_SYMBOL vmlinux 0x5c07e2da max8925_reg_read
+EXPORT_SYMBOL vmlinux 0x5c085ec0 names_cachep
+EXPORT_SYMBOL vmlinux 0x5c182914 dm_put_device
+EXPORT_SYMBOL vmlinux 0x5c2a7c71 __generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x5c336039 __insert_inode_hash
+EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq
+EXPORT_SYMBOL vmlinux 0x5c583a57 journal_destroy
+EXPORT_SYMBOL vmlinux 0x5c58fc46 netpoll_poll_dev
+EXPORT_SYMBOL vmlinux 0x5c746181 agp_bridge
+EXPORT_SYMBOL vmlinux 0x5c74697f proto_unregister
+EXPORT_SYMBOL vmlinux 0x5c998fae llc_sap_close
+EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock
+EXPORT_SYMBOL vmlinux 0x5ca73e76 d_validate
+EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0x5ceb7be5 scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x5cedac9a sock_create
+EXPORT_SYMBOL vmlinux 0x5cf1aa9a dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x5cf9182b blk_unplug
+EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat
+EXPORT_SYMBOL vmlinux 0x5d12dbfe bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved
+EXPORT_SYMBOL vmlinux 0x5d806c18 blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock
+EXPORT_SYMBOL vmlinux 0x5db3bf10 blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0x5dc43223 idr_pre_get
+EXPORT_SYMBOL vmlinux 0x5df6ea86 do_splice_to
+EXPORT_SYMBOL vmlinux 0x5e09ca75 complete
+EXPORT_SYMBOL vmlinux 0x5e1ff09b inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x5e4f4d5a tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x5e5998ab invalidate_bdev
+EXPORT_SYMBOL vmlinux 0x5e606c70 generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x5e7a2876 security_path_symlink
+EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask
+EXPORT_SYMBOL vmlinux 0x5eb623c3 do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0x5ebc05b9 unlock_super
+EXPORT_SYMBOL vmlinux 0x5ebd76c8 get_phy_id
+EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd
+EXPORT_SYMBOL vmlinux 0x5eea78d0 journal_abort
+EXPORT_SYMBOL vmlinux 0x5ef77853 ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0x5f019aa3 vfs_read
+EXPORT_SYMBOL vmlinux 0x5f14c064 jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock
+EXPORT_SYMBOL vmlinux 0x5f2cfd89 blk_execute_rq
+EXPORT_SYMBOL vmlinux 0x5f46fe23 sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0x5f75d07f xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0x5f7995aa simple_setattr
+EXPORT_SYMBOL vmlinux 0x5f8d323e tty_register_driver
+EXPORT_SYMBOL vmlinux 0x5f8ec979 tcp4_gro_receive
+EXPORT_SYMBOL vmlinux 0x5f936345 compat_ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x5fbc5e3c pnp_unregister_driver
+EXPORT_SYMBOL vmlinux 0x5fbcc0a9 sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr
+EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities
+EXPORT_SYMBOL vmlinux 0x5ff4ca06 fb_class
+EXPORT_SYMBOL vmlinux 0x5ff56aeb pci_reenable_device
+EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats
+EXPORT_SYMBOL vmlinux 0x602cc904 simple_link
+EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count
+EXPORT_SYMBOL vmlinux 0x6046a5bd serio_interrupt
+EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net
+EXPORT_SYMBOL vmlinux 0x609fd2f8 cfb_fillrect
+EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off
+EXPORT_SYMBOL vmlinux 0x60a476e3 key_put
+EXPORT_SYMBOL vmlinux 0x60a6ba94 swiotlb_unmap_sg
+EXPORT_SYMBOL vmlinux 0x60b872e4 __locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x60d46c68 mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x60e32983 __set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x60f408fe kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n
+EXPORT_SYMBOL vmlinux 0x60f8d59b sock_no_getname
+EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x61409455 dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x61445330 seq_read
+EXPORT_SYMBOL vmlinux 0x61446cfc bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x61526176 generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x6152880e pci_set_master
+EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer
+EXPORT_SYMBOL vmlinux 0x615bde64 simple_set_mnt
+EXPORT_SYMBOL vmlinux 0x618911fc numa_node
+EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free
+EXPORT_SYMBOL vmlinux 0x61a401c1 agp_bind_memory
+EXPORT_SYMBOL vmlinux 0x61a60f1f rb_replace_node
+EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61c60e73 security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0x61da82de compat_nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x61e033a1 dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x61f07e38 generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0x61f759df scsi_device_put
+EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable
+EXPORT_SYMBOL vmlinux 0x620957f1 netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0x62182624 xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event
+EXPORT_SYMBOL vmlinux 0x623deee3 acpi_notifier_call_chain
+EXPORT_SYMBOL vmlinux 0x6265a43d clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister
+EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources
+EXPORT_SYMBOL vmlinux 0x6276e866 seq_puts
+EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x629f2b47 acpi_processor_preregister_performance
+EXPORT_SYMBOL vmlinux 0x62be51de serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x62d05502 agp_free_memory
+EXPORT_SYMBOL vmlinux 0x62d2f57c d_alloc
+EXPORT_SYMBOL vmlinux 0x62e1062a phy_disable_interrupts
+EXPORT_SYMBOL vmlinux 0x63388b8b __scsi_add_device
+EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic
+EXPORT_SYMBOL vmlinux 0x6387ed67 journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x638e9cde kmalloc_caches
+EXPORT_SYMBOL vmlinux 0x6395cabb xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0x63b43fc4 skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x63bd3ae8 scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x63c4c14f lock_sock_fast
+EXPORT_SYMBOL vmlinux 0x63e6fc63 remove_inode_hash
+EXPORT_SYMBOL vmlinux 0x63e7f976 try_to_del_timer_sync
+EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user
+EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x6420cc25 handle_sysrq
+EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock
+EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler
+EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable
+EXPORT_SYMBOL vmlinux 0x647896dc genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait
+EXPORT_SYMBOL vmlinux 0x64b14fd2 seq_release_private
+EXPORT_SYMBOL vmlinux 0x64d0158f poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0x64d5b589 vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer
+EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb
+EXPORT_SYMBOL vmlinux 0x64efa931 nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0x651a4139 test_taint
+EXPORT_SYMBOL vmlinux 0x6525d7ae da903x_query_status
+EXPORT_SYMBOL vmlinux 0x652808d6 inode_init_always
+EXPORT_SYMBOL vmlinux 0x652ba7f6 acpi_bus_register_driver
+EXPORT_SYMBOL vmlinux 0x652cf961 pci_find_bus
+EXPORT_SYMBOL vmlinux 0x65362781 ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name
+EXPORT_SYMBOL vmlinux 0x6554311a fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc
+EXPORT_SYMBOL vmlinux 0x6595dd99 __dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x65b678c4 nobh_write_end
+EXPORT_SYMBOL vmlinux 0x65f2c821 blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x66428bd1 jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0x66466be9 get_io_context
+EXPORT_SYMBOL vmlinux 0x666cb93f ip6_frag_init
+EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x66a18cc9 sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x66cc0cc0 pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0x66f39dbe bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time
+EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible
+EXPORT_SYMBOL vmlinux 0x67196182 __napi_schedule
+EXPORT_SYMBOL vmlinux 0x672144bd strlcpy
+EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4
+EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges
+EXPORT_SYMBOL vmlinux 0x67637124 kobject_get
+EXPORT_SYMBOL vmlinux 0x678b5ccd swiotlb_dma_supported
+EXPORT_SYMBOL vmlinux 0x678ff2b6 blk_insert_request
+EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios
+EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67bb0d41 __scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x67e21a54 xfrm_bundle_ok
+EXPORT_SYMBOL vmlinux 0x6807c2a6 pv_cpu_ops
+EXPORT_SYMBOL vmlinux 0x6824a726 otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0x6847d7e5 __blk_end_request
+EXPORT_SYMBOL vmlinux 0x68565ec3 splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x6860fbba md_wait_for_blocked_rdev
+EXPORT_SYMBOL vmlinux 0x68663c94 journal_flush
+EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x688d3e26 dquot_enable
+EXPORT_SYMBOL vmlinux 0x688dccd5 dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0x68cccae9 dquot_file_open
+EXPORT_SYMBOL vmlinux 0x68e17419 neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x68f2f199 blk_stack_limits
+EXPORT_SYMBOL vmlinux 0x68f9c9e8 skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x68feedea scsi_remove_host
+EXPORT_SYMBOL vmlinux 0x69035550 xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer
+EXPORT_SYMBOL vmlinux 0x69215003 pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x692cd6e6 dst_release
+EXPORT_SYMBOL vmlinux 0x694d923b mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0x694e75c9 security_file_permission
+EXPORT_SYMBOL vmlinux 0x695124eb neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days
+EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int
+EXPORT_SYMBOL vmlinux 0x69815756 agp_generic_mask_memory
+EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7
+EXPORT_SYMBOL vmlinux 0x698edb7d skb_put
+EXPORT_SYMBOL vmlinux 0x69921202 ida_init
+EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem
+EXPORT_SYMBOL vmlinux 0x6996205a udp_proc_register
+EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be
+EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource
+EXPORT_SYMBOL vmlinux 0x69c148cb sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x69d2575f efi
+EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69e5e914 rwsem_wake
+EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a1131db unload_nls
+EXPORT_SYMBOL vmlinux 0x6a18d037 dw_spi_add_host
+EXPORT_SYMBOL vmlinux 0x6a1a9f2b qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x6a3ba975 idr_find
+EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask
+EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6a831a56 agp_generic_destroy_pages
+EXPORT_SYMBOL vmlinux 0x6a8b45a8 cdev_del
+EXPORT_SYMBOL vmlinux 0x6a8f1d40 bio_init
+EXPORT_SYMBOL vmlinux 0x6aba71b6 security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x6ac5d4df is_container_init
+EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be
+EXPORT_SYMBOL vmlinux 0x6acfe2f1 tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp
+EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device
+EXPORT_SYMBOL vmlinux 0x6adf4b07 fsnotify_find_mark_entry
+EXPORT_SYMBOL vmlinux 0x6b0d876c kset_register
+EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname
+EXPORT_SYMBOL vmlinux 0x6b1b9ffd spi_display_xfer_agreement
+EXPORT_SYMBOL vmlinux 0x6b2b1d54 blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack
+EXPORT_SYMBOL vmlinux 0x6b3f5a54 set_bh_page
+EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x6b99113f tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x6ba3e4ca netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x6bb1be54 vmap
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x6bcc40e1 acpi_root_dir
+EXPORT_SYMBOL vmlinux 0x6bccd07a input_close_device
+EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock
+EXPORT_SYMBOL vmlinux 0x6c162714 mdiobus_read
+EXPORT_SYMBOL vmlinux 0x6c2d2b2d tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data
+EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0x6c4a17e2 xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x6c57ac07 genphy_suspend
+EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c62541f scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c7845f4 bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x6c823283 sock_rfree
+EXPORT_SYMBOL vmlinux 0x6c9689b7 ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0x6c9f7a9e scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x6ca48ef1 bdev_read_only
+EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x6cbfee76 tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x6cdf375d scsi_add_device
+EXPORT_SYMBOL vmlinux 0x6d075d26 dev_uc_init
+EXPORT_SYMBOL vmlinux 0x6d0e3039 vfs_fstatat
+EXPORT_SYMBOL vmlinux 0x6d14e481 ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x6d1bfc7f blk_init_tags
+EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8
+EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0x6d48f7e8 thermal_zone_device_update
+EXPORT_SYMBOL vmlinux 0x6d63fdb8 console_stop
+EXPORT_SYMBOL vmlinux 0x6d70f3e0 load_nls
+EXPORT_SYMBOL vmlinux 0x6dbbda4a agp3_generic_tlbflush
+EXPORT_SYMBOL vmlinux 0x6dbd4b1d netlink_unicast
+EXPORT_SYMBOL vmlinux 0x6de46e3e blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x6dede1ef nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6e49222f inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x6e679b16 sk_receive_skb
+EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e76fdb9 qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put
+EXPORT_SYMBOL vmlinux 0x6ebd53d1 lock_fb_info
+EXPORT_SYMBOL vmlinux 0x6eefe81d locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x6ef17141 kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create
+EXPORT_SYMBOL vmlinux 0x6f4e52b7 dev_addr_del
+EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device
+EXPORT_SYMBOL vmlinux 0x6f56d69a release_firmware
+EXPORT_SYMBOL vmlinux 0x6f669358 ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0x6f802d7b tty_register_device
+EXPORT_SYMBOL vmlinux 0x6f821cde sock_kmalloc
+EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x6f9e5017 elv_abort_queue
+EXPORT_SYMBOL vmlinux 0x6fb0121f devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x6fc99f0f thaw_bdev
+EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fe49383 agp_generic_type_to_mask_type
+EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write
+EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free
+EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm
+EXPORT_SYMBOL vmlinux 0x701b26c5 genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0x70471147 scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma
+EXPORT_SYMBOL vmlinux 0x705d43b0 nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x7064d319 tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x7070df68 register_console
+EXPORT_SYMBOL vmlinux 0x70765d1c vfs_lstat
+EXPORT_SYMBOL vmlinux 0x7079b8be bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait
+EXPORT_SYMBOL vmlinux 0x70c91279 vlan_gro_frags
+EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock
+EXPORT_SYMBOL vmlinux 0x70e0d61f cpu_all_bits
+EXPORT_SYMBOL vmlinux 0x70f06f26 pci_disable_msix
+EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc
+EXPORT_SYMBOL vmlinux 0x71333151 vfs_llseek
+EXPORT_SYMBOL vmlinux 0x7171121c overflowgid
+EXPORT_SYMBOL vmlinux 0x718f7112 fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0x719e5bca set_pages_x
+EXPORT_SYMBOL vmlinux 0x71a11303 d_path
+EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev
+EXPORT_SYMBOL vmlinux 0x71a5843c setup_new_exec
+EXPORT_SYMBOL vmlinux 0x71bb41e4 wrmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0x71ceebec sock_wake_async
+EXPORT_SYMBOL vmlinux 0x71f6337f fb_show_logo
+EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x7242e96d strnchr
+EXPORT_SYMBOL vmlinux 0x724dd388 arp_tbl
+EXPORT_SYMBOL vmlinux 0x724e737d dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0x7252accf tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x7258df83 f_setown
+EXPORT_SYMBOL vmlinux 0x727c8a53 fddi_type_trans
+EXPORT_SYMBOL vmlinux 0x7296c6cc pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0x72986a33 bioset_create
+EXPORT_SYMBOL vmlinux 0x729d03b8 netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x72a95544 inet_sendmsg
+EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled
+EXPORT_SYMBOL vmlinux 0x72b00b10 neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma
+EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add
+EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte
+EXPORT_SYMBOL vmlinux 0x72cf3951 sock_no_mmap
+EXPORT_SYMBOL vmlinux 0x72e16c02 mark_info_dirty
+EXPORT_SYMBOL vmlinux 0x72ea5242 bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type
+EXPORT_SYMBOL vmlinux 0x72f6e08a skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x72f9d1d8 keyring_clear
+EXPORT_SYMBOL vmlinux 0x731f3f96 udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x73252f64 seq_open_private
+EXPORT_SYMBOL vmlinux 0x73304879 mmc_card_awake
+EXPORT_SYMBOL vmlinux 0x7334d701 inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0x733d8c10 blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x733ead2d dput
+EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay
+EXPORT_SYMBOL vmlinux 0x737295e8 simple_write_end
+EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power
+EXPORT_SYMBOL vmlinux 0x739e1998 is_bad_inode
+EXPORT_SYMBOL vmlinux 0x73bca917 sk_stop_timer
+EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0x73fe9799 dev_mc_init
+EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0x74238ec2 blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0x74253f41 alloc_etherdev_mq
+EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte
+EXPORT_SYMBOL vmlinux 0x746272a0 set_security_override
+EXPORT_SYMBOL vmlinux 0x7462a005 journal_load
+EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x749e76fe remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74c19bf9 cdev_init
+EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74e62194 scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0x74eb305c request_key
+EXPORT_SYMBOL vmlinux 0x7518d630 nonseekable_open
+EXPORT_SYMBOL vmlinux 0x7538b132 agp_off
+EXPORT_SYMBOL vmlinux 0x755bba7d nf_afinfo
+EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp
+EXPORT_SYMBOL vmlinux 0x7570b9d6 proc_create_data
+EXPORT_SYMBOL vmlinux 0x757fb2d2 pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0x759e72cd elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc
+EXPORT_SYMBOL vmlinux 0x75c7640f acpi_unlock_battery_dir
+EXPORT_SYMBOL vmlinux 0x75c930b8 blk_start_queue
+EXPORT_SYMBOL vmlinux 0x75d95a48 pnp_start_dev
+EXPORT_SYMBOL vmlinux 0x75f1cab8 kern_path
+EXPORT_SYMBOL vmlinux 0x75f63ce8 tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler
+EXPORT_SYMBOL vmlinux 0x760a0f4f yield
+EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x7619a244 __ps2_command
+EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off
+EXPORT_SYMBOL vmlinux 0x764bd77c request_resource
+EXPORT_SYMBOL vmlinux 0x766c7d4a phy_device_register
+EXPORT_SYMBOL vmlinux 0x7670b13d dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x767138e3 blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0x767dd8fd acpi_get_irq_routing_table
+EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc
+EXPORT_SYMBOL vmlinux 0x76b042e2 __nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76c6494b set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode
+EXPORT_SYMBOL vmlinux 0x76d4a376 swiotlb_map_sg
+EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges
+EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic
+EXPORT_SYMBOL vmlinux 0x7708f712 pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x775684da block_read_full_page
+EXPORT_SYMBOL vmlinux 0x775c1fdd sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x7786164c free_task
+EXPORT_SYMBOL vmlinux 0x77a5fbbd kill_fasync
+EXPORT_SYMBOL vmlinux 0x77bc13a0 strim
+EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality
+EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77ee9c3f i2c_clients_command
+EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource
+EXPORT_SYMBOL vmlinux 0x77f91b2a xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x782acba5 crc_t10dif
+EXPORT_SYMBOL vmlinux 0x782afd7b qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0x78331175 skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x78370ad7 blkdev_fsync
+EXPORT_SYMBOL vmlinux 0x78381bcc d_lookup
+EXPORT_SYMBOL vmlinux 0x783e518c bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x786485cb journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x7872ec5c tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops
+EXPORT_SYMBOL vmlinux 0x787791c6 tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0x78863733 init_net
+EXPORT_SYMBOL vmlinux 0x788cd3a2 pnp_possible_config
+EXPORT_SYMBOL vmlinux 0x788f0bf9 unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x7890ca9a user_path_at
+EXPORT_SYMBOL vmlinux 0x78ab271c padata_add_cpu
+EXPORT_SYMBOL vmlinux 0x78b3456d fb_set_var
+EXPORT_SYMBOL vmlinux 0x78bb437a bio_split
+EXPORT_SYMBOL vmlinux 0x78c5e23f netdev_set_master
+EXPORT_SYMBOL vmlinux 0x78dc6b04 acpi_processor_unregister_performance
+EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78e01f90 ip_defrag
+EXPORT_SYMBOL vmlinux 0x78e82bdb __dquot_transfer
+EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method
+EXPORT_SYMBOL vmlinux 0x7912c4e4 tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0x794916e4 bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x794c13a3 pipe_unlock
+EXPORT_SYMBOL vmlinux 0x7953506f skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x795cf5f4 scsi_device_get
+EXPORT_SYMBOL vmlinux 0x796dbab8 fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x796de582 seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x79716ec6 bd_set_size
+EXPORT_SYMBOL vmlinux 0x7975e743 unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0x79a3a67a serio_rescan
+EXPORT_SYMBOL vmlinux 0x79a62610 dma_pool_create
+EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79acf0bd vga_switcheroo_register_handler
+EXPORT_SYMBOL vmlinux 0x79dcb559 inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x79e5f94a blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol
+EXPORT_SYMBOL vmlinux 0x7a2cb48e set_bdi_congested
+EXPORT_SYMBOL vmlinux 0x7a3b0051 dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0x7a4497db kzfree
+EXPORT_SYMBOL vmlinux 0x7a467f7f xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0x7a59c068 dm_snap_cow
+EXPORT_SYMBOL vmlinux 0x7a7f5c5f kthread_bind
+EXPORT_SYMBOL vmlinux 0x7a8d7d1c ip6_frag_match
+EXPORT_SYMBOL vmlinux 0x7a91e9a2 mnt_unpin
+EXPORT_SYMBOL vmlinux 0x7aac0837 module_put
+EXPORT_SYMBOL vmlinux 0x7aafaccd scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0x7ab0b4da cdev_alloc
+EXPORT_SYMBOL vmlinux 0x7ac07639 inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip
+EXPORT_SYMBOL vmlinux 0x7ad1305b alloc_hippi_dev
+EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user
+EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x7af73785 xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler
+EXPORT_SYMBOL vmlinux 0x7b25ddb4 fail_migrate_page
+EXPORT_SYMBOL vmlinux 0x7b4339f4 inet6_release
+EXPORT_SYMBOL vmlinux 0x7b45fdce tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register
+EXPORT_SYMBOL vmlinux 0x7b630637 inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update
+EXPORT_SYMBOL vmlinux 0x7ba649f3 acpi_bus_unregister_driver
+EXPORT_SYMBOL vmlinux 0x7bc292be scsi_get_command
+EXPORT_SYMBOL vmlinux 0x7bc5cae5 tty_throttle
+EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name
+EXPORT_SYMBOL vmlinux 0x7bf0ef07 tty_port_put
+EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x7c3a716e sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c4d2cab blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0x7c60d66e getname
+EXPORT_SYMBOL vmlinux 0x7c61340c __release_region
+EXPORT_SYMBOL vmlinux 0x7c71feed ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x7c81fee7 dm_io_client_create
+EXPORT_SYMBOL vmlinux 0x7c82c5df md_done_sync
+EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down
+EXPORT_SYMBOL vmlinux 0x7cd2c30e cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0x7d06097a fb_pan_display
+EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies
+EXPORT_SYMBOL vmlinux 0x7d496852 zero_fill_bio
+EXPORT_SYMBOL vmlinux 0x7d6bb587 cpu_online_mask
+EXPORT_SYMBOL vmlinux 0x7d6f445e pci_map_rom
+EXPORT_SYMBOL vmlinux 0x7d825a1e ps2_handle_response
+EXPORT_SYMBOL vmlinux 0x7d8b43ab dm_dirty_log_type_unregister
+EXPORT_SYMBOL vmlinux 0x7d8d83e1 submit_bh
+EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port
+EXPORT_SYMBOL vmlinux 0x7da3beb3 pci_try_set_mwi
+EXPORT_SYMBOL vmlinux 0x7dceceac capable
+EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe
+EXPORT_SYMBOL vmlinux 0x7de2b6d6 agp_allocate_memory
+EXPORT_SYMBOL vmlinux 0x7e0dd6fb tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e3d40e7 find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x7e5edf1d set_pages_uc
+EXPORT_SYMBOL vmlinux 0x7e93adef d_alloc_root
+EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread
+EXPORT_SYMBOL vmlinux 0x7eb0e1ac k8_northbridges
+EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0x7ec0538a netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy
+EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit
+EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f411f16 xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x7f57ab09 __netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x7f595dff ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x7f690f99 skb_split
+EXPORT_SYMBOL vmlinux 0x7f82c64e dev_addr_add
+EXPORT_SYMBOL vmlinux 0x7f8f3a3f nobh_write_begin
+EXPORT_SYMBOL vmlinux 0x7f97cc65 nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0x7fb081f7 fb_set_suspend
+EXPORT_SYMBOL vmlinux 0x7fc06ebf __blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0x7fccf260 eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x7fd8e5e5 vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x7fe1dada wake_up_process
+EXPORT_SYMBOL vmlinux 0x801914da xfrm_state_update
+EXPORT_SYMBOL vmlinux 0x8025024f neigh_ifdown
+EXPORT_SYMBOL vmlinux 0x807169b6 bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0x80c4ddf9 dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x80c507dc rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x80eedcee __getblk
+EXPORT_SYMBOL vmlinux 0x8105cce7 __mutex_init
+EXPORT_SYMBOL vmlinux 0x8107491d netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table
+EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal
+EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page
+EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info
+EXPORT_SYMBOL vmlinux 0x81f26c5c inet_addr_type
+EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill
+EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply
+EXPORT_SYMBOL vmlinux 0x82249914 llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x82529367 seq_printf
+EXPORT_SYMBOL vmlinux 0x82530caf tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8271038f pnp_activate_dev
+EXPORT_SYMBOL vmlinux 0x82887d60 tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x82a402b4 sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0x82a8906a tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82b28682 skb_gso_segment
+EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x83090551 inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot
+EXPORT_SYMBOL vmlinux 0x8319d39a dentry_open
+EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit
+EXPORT_SYMBOL vmlinux 0x83217cb9 abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x8324ec04 dquot_commit
+EXPORT_SYMBOL vmlinux 0x833b42ca mmc_detect_change
+EXPORT_SYMBOL vmlinux 0x834800a2 kill_pid
+EXPORT_SYMBOL vmlinux 0x834d66a9 compat_tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion
+EXPORT_SYMBOL vmlinux 0x836a8007 register_exec_domain
+EXPORT_SYMBOL vmlinux 0x8375c2c7 dm_table_unplug_all
+EXPORT_SYMBOL vmlinux 0x83800bfa kref_init
+EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8
+EXPORT_SYMBOL vmlinux 0x8397da3c tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83b327b9 input_release_device
+EXPORT_SYMBOL vmlinux 0x83d763a6 register_sysctl_table
+EXPORT_SYMBOL vmlinux 0x83ed0ce2 block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0x842c0cd2 create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x842e6712 serio_close
+EXPORT_SYMBOL vmlinux 0x843f2179 thermal_zone_device_unregister
+EXPORT_SYMBOL vmlinux 0x84736b47 mmc_host_disable
+EXPORT_SYMBOL vmlinux 0x8478334b __napi_complete
+EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x84af5a61 scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0x84b30aa8 skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0x84ef48cb sock_no_connect
+EXPORT_SYMBOL vmlinux 0x85367a03 fsync_bdev
+EXPORT_SYMBOL vmlinux 0x854c13cd llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups
+EXPORT_SYMBOL vmlinux 0x85726fc2 sk_free
+EXPORT_SYMBOL vmlinux 0x859392b5 i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0x85abc85f strncmp
+EXPORT_SYMBOL vmlinux 0x85adf516 register_gifconf
+EXPORT_SYMBOL vmlinux 0x85d074ee simple_empty
+EXPORT_SYMBOL vmlinux 0x85df9b6c strsep
+EXPORT_SYMBOL vmlinux 0x85ffd6d1 blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x8606469b __bread
+EXPORT_SYMBOL vmlinux 0x86191f08 rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0x862b9701 nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x8637e16d md_error
+EXPORT_SYMBOL vmlinux 0x8639a238 pnp_disable_dev
+EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x86522141 tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x865c9bb0 tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x86693354 mmc_try_claim_host
+EXPORT_SYMBOL vmlinux 0x8671d1d8 jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x868acba5 get_options
+EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat
+EXPORT_SYMBOL vmlinux 0x86cffc28 gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x8707930c read_cache_page
+EXPORT_SYMBOL vmlinux 0x871a90de udp_poll
+EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0x87596f6e neigh_create
+EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write
+EXPORT_SYMBOL vmlinux 0x87850e21 dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh
+EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0x87b6cda2 alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x87d5dd85 udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x87e6b350 insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0x87e95715 __lock_buffer
+EXPORT_SYMBOL vmlinux 0x87fcbc63 tty_port_close_start
+EXPORT_SYMBOL vmlinux 0x87fe25cb bio_phys_segments
+EXPORT_SYMBOL vmlinux 0x87ff8f89 generic_permission
+EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate
+EXPORT_SYMBOL vmlinux 0x88257ba0 dev_change_flags
+EXPORT_SYMBOL vmlinux 0x882a7b0c skb_find_text
+EXPORT_SYMBOL vmlinux 0x88543920 con_is_bound
+EXPORT_SYMBOL vmlinux 0x885c658f xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x888a7dc9 compat_mc_setsockopt
+EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x88a08f70 kick_iocb
+EXPORT_SYMBOL vmlinux 0x88a6bcc4 dw_spi_resume_host
+EXPORT_SYMBOL vmlinux 0x88d1fe9f iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0x88e578f2 destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x88e7d9eb agp_generic_alloc_by_type
+EXPORT_SYMBOL vmlinux 0x88f4ed98 elevator_init
+EXPORT_SYMBOL vmlinux 0x89056660 fb_get_mode
+EXPORT_SYMBOL vmlinux 0x89131153 netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x892629b9 block_commit_write
+EXPORT_SYMBOL vmlinux 0x892756bd aio_put_req
+EXPORT_SYMBOL vmlinux 0x892a52e0 inode_permission
+EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx
+EXPORT_SYMBOL vmlinux 0x8938a6ab mdiobus_write
+EXPORT_SYMBOL vmlinux 0x893be8af lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x893f8dcd dquot_operations
+EXPORT_SYMBOL vmlinux 0x8943e18a sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x897473df mktime
+EXPORT_SYMBOL vmlinux 0x89753277 scsi_register
+EXPORT_SYMBOL vmlinux 0x897a6768 rtc_dev_update_irq_enable_emul
+EXPORT_SYMBOL vmlinux 0x897ca7ba load_nls_default
+EXPORT_SYMBOL vmlinux 0x89848518 mdiobus_free
+EXPORT_SYMBOL vmlinux 0x898b37b6 ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0x89a300b9 sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0x89a84fee kmem_cache_alloc_node_notrace
+EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89dfa76a llc_sap_find
+EXPORT_SYMBOL vmlinux 0x89f24fac blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0x8a010d78 input_flush_device
+EXPORT_SYMBOL vmlinux 0x8a24e850 set_anon_super
+EXPORT_SYMBOL vmlinux 0x8a48f3e0 lease_modify
+EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory
+EXPORT_SYMBOL vmlinux 0x8a81f7d7 pskb_copy
+EXPORT_SYMBOL vmlinux 0x8a8fc510 ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8af64acb tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x8b155989 set_disk_ro
+EXPORT_SYMBOL vmlinux 0x8b17cd83 alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last
+EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x8b58da26 ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid
+EXPORT_SYMBOL vmlinux 0x8b77f9dc generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup
+EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user
+EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup
+EXPORT_SYMBOL vmlinux 0x8ba91bfd arch_debugfs_dir
+EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock
+EXPORT_SYMBOL vmlinux 0x8bb80a97 rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0x8bc4e372 phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long
+EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16
+EXPORT_SYMBOL vmlinux 0x8c625aa2 xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0x8c7859ba scsi_print_result
+EXPORT_SYMBOL vmlinux 0x8cb5f4e5 unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0x8cbb42e7 gen_pool_add
+EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8cce1ba3 call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0x8cefda69 cdev_add
+EXPORT_SYMBOL vmlinux 0x8cf3f3f9 insert_inode_locked
+EXPORT_SYMBOL vmlinux 0x8d06b025 iget_locked
+EXPORT_SYMBOL vmlinux 0x8d1448d5 generic_file_mmap
+EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d6906d4 unregister_memory_notifier
+EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data
+EXPORT_SYMBOL vmlinux 0x8d933b62 xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0x8d96a1b8 kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x8d9a790f thermal_zone_bind_cooling_device
+EXPORT_SYMBOL vmlinux 0x8db0eebd inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x8db237ce pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x8dd3a961 rfkill_unregister
+EXPORT_SYMBOL vmlinux 0x8de48b50 dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0x8de50743 skb_push
+EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block
+EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e3425cc dm_exception_store_destroy
+EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk
+EXPORT_SYMBOL vmlinux 0x8e463770 __elv_add_request
+EXPORT_SYMBOL vmlinux 0x8e4bc642 alloc_netdev_mq
+EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x8e8d5ae2 set_user_nice
+EXPORT_SYMBOL vmlinux 0x8e8e4741 scsi_init_io
+EXPORT_SYMBOL vmlinux 0x8eaa0a70 vga_switcheroo_unregister_client
+EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler
+EXPORT_SYMBOL vmlinux 0x8eb7b42b neigh_lookup
+EXPORT_SYMBOL vmlinux 0x8ec41a76 d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8ef9083c blk_requeue_request
+EXPORT_SYMBOL vmlinux 0x8efe0a0c otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0x8f0740c4 blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0x8f09886c agp_generic_remove_memory
+EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus
+EXPORT_SYMBOL vmlinux 0x8f3ad4c0 pci_get_slot
+EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev
+EXPORT_SYMBOL vmlinux 0x8f69b04c pci_dev_put
+EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data
+EXPORT_SYMBOL vmlinux 0x8f72906c journal_restart
+EXPORT_SYMBOL vmlinux 0x8f73accf xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0x8f7e4482 pcim_iomap
+EXPORT_SYMBOL vmlinux 0x8f7ef081 pcim_pin_device
+EXPORT_SYMBOL vmlinux 0x8f7f2a8b abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2
+EXPORT_SYMBOL vmlinux 0x8fa5472e register_md_personality
+EXPORT_SYMBOL vmlinux 0x8fa7ee6d find_vma
+EXPORT_SYMBOL vmlinux 0x8fd5ad8c cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x901048ff ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync
+EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector
+EXPORT_SYMBOL vmlinux 0x9050c4f7 journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x9054b591 i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0x905dd80d neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system
+EXPORT_SYMBOL vmlinux 0x90a54ce4 i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active
+EXPORT_SYMBOL vmlinux 0x90a9d49d pnp_device_attach
+EXPORT_SYMBOL vmlinux 0x90ac1d7f journal_clear_err
+EXPORT_SYMBOL vmlinux 0x90ade0b1 mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x90d9c657 napi_frags_finish
+EXPORT_SYMBOL vmlinux 0x91082569 blk_put_request
+EXPORT_SYMBOL vmlinux 0x9116fa6f tcp_splice_read
+EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable
+EXPORT_SYMBOL vmlinux 0x914af0f3 security_path_rename
+EXPORT_SYMBOL vmlinux 0x91598f7d dm_dirty_log_destroy
+EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb
+EXPORT_SYMBOL vmlinux 0x916203fe blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0x91730ade dm_get_device
+EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong
+EXPORT_SYMBOL vmlinux 0x9180411c idr_destroy
+EXPORT_SYMBOL vmlinux 0x91b77fb1 dma_async_memcpy_buf_to_buf
+EXPORT_SYMBOL vmlinux 0x91bd85b0 register_filesystem
+EXPORT_SYMBOL vmlinux 0x91c1ce43 set_blocksize
+EXPORT_SYMBOL vmlinux 0x91e0188f hippi_change_mtu
+EXPORT_SYMBOL vmlinux 0x91e5513e keyring_search
+EXPORT_SYMBOL vmlinux 0x91e8f84c i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0x9210be5a pci_clear_master
+EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool
+EXPORT_SYMBOL vmlinux 0x9222e901 sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x922b11ef generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten
+EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get
+EXPORT_SYMBOL vmlinux 0x924405c5 abx500_register_ops
+EXPORT_SYMBOL vmlinux 0x927078fc seq_open
+EXPORT_SYMBOL vmlinux 0x92901e85 mdiobus_scan
+EXPORT_SYMBOL vmlinux 0x92ad048b inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0x92b6d584 inode_add_bytes
+EXPORT_SYMBOL vmlinux 0x92c37c0c sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0x92c8e7c1 key_link
+EXPORT_SYMBOL vmlinux 0x92e8ee2c input_open_device
+EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le
+EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get
+EXPORT_SYMBOL vmlinux 0x931c156c jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x93429643 tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x93448c57 screen_info
+EXPORT_SYMBOL vmlinux 0x9351969d vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0x93552624 scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x93762740 dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule
+EXPORT_SYMBOL vmlinux 0x93abacd9 mmc_register_driver
+EXPORT_SYMBOL vmlinux 0x93ad45a5 gen_pool_free
+EXPORT_SYMBOL vmlinux 0x93c3f5e0 __breadahead
+EXPORT_SYMBOL vmlinux 0x93c651be acpi_info
+EXPORT_SYMBOL vmlinux 0x93d57ee4 ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package
+EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages
+EXPORT_SYMBOL vmlinux 0x941e51d9 xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x94292fa2 textsearch_register
+EXPORT_SYMBOL vmlinux 0x9438b5c2 ppp_input_error
+EXPORT_SYMBOL vmlinux 0x94961283 vunmap
+EXPORT_SYMBOL vmlinux 0x94a4ad3f md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0x94c070e4 md_wakeup_thread
+EXPORT_SYMBOL vmlinux 0x94c297a3 serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x94f6ed76 bio_add_page
+EXPORT_SYMBOL vmlinux 0x951f2369 pci_set_mwi
+EXPORT_SYMBOL vmlinux 0x952de0e5 abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x95352ea9 acpi_check_mem_region
+EXPORT_SYMBOL vmlinux 0x95384177 backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init
+EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf
+EXPORT_SYMBOL vmlinux 0x958051cf end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x959292ff blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x95948f13 netif_rx
+EXPORT_SYMBOL vmlinux 0x9594b224 make_EII_client
+EXPORT_SYMBOL vmlinux 0x95958f92 scsi_finish_command
+EXPORT_SYMBOL vmlinux 0x95a9096a phy_register_fixup
+EXPORT_SYMBOL vmlinux 0x95ab0fe0 agp_generic_alloc_user
+EXPORT_SYMBOL vmlinux 0x95ac76ec unregister_netdev
+EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x95cd7735 __vlan_hwaccel_rx
+EXPORT_SYMBOL vmlinux 0x95ceb864 key_update
+EXPORT_SYMBOL vmlinux 0x95eee3c3 agp_generic_free_gatt_table
+EXPORT_SYMBOL vmlinux 0x95f1097d __nla_put
+EXPORT_SYMBOL vmlinux 0x95f348ea dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0x960e4c8f inet_getname
+EXPORT_SYMBOL vmlinux 0x96214fed file_update_time
+EXPORT_SYMBOL vmlinux 0x9691a27d security_path_chown
+EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96d3342b jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x970b9b5d napi_reuse_skb
+EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n
+EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x97787ff5 pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0x97a0f169 send_sig_info
+EXPORT_SYMBOL vmlinux 0x97b38442 jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x97b6558a journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x97c5d0d7 set_trace_device
+EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block
+EXPORT_SYMBOL vmlinux 0x97f1470e end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0x97f14de8 i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0x98093e76 idr_get_next
+EXPORT_SYMBOL vmlinux 0x9833ff06 bio_clone
+EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x987cc953 ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0x9880aa2a phy_find_first
+EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x
+EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init
+EXPORT_SYMBOL vmlinux 0x989f745c bio_integrity_free
+EXPORT_SYMBOL vmlinux 0x989f8a64 wireless_send_event
+EXPORT_SYMBOL vmlinux 0x98c77623 ht_create_irq
+EXPORT_SYMBOL vmlinux 0x98fd7d6b scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0x98ff42fc unregister_snap_client
+EXPORT_SYMBOL vmlinux 0x99222bfb blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0x9969b40e tty_set_operations
+EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999e8297 vfree
+EXPORT_SYMBOL vmlinux 0x99b211cc slow_work_unregister_user
+EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name
+EXPORT_SYMBOL vmlinux 0x99cca7d4 unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink
+EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map
+EXPORT_SYMBOL vmlinux 0x99f13785 dev_driver_string
+EXPORT_SYMBOL vmlinux 0x99f8d305 set_device_ro
+EXPORT_SYMBOL vmlinux 0x9a18a94d mmc_wait_for_app_cmd
+EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk
+EXPORT_SYMBOL vmlinux 0x9aabc564 crc16
+EXPORT_SYMBOL vmlinux 0x9abc5849 ps2_init
+EXPORT_SYMBOL vmlinux 0x9ac3dc51 cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0x9b0d0945 pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x9b1c3f04 generic_write_sync
+EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b3f464e pci_disable_msi
+EXPORT_SYMBOL vmlinux 0x9b410272 udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x9b445a21 pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x9b8d4da2 cont_write_begin
+EXPORT_SYMBOL vmlinux 0x9ba19327 copy_io_context
+EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split
+EXPORT_SYMBOL vmlinux 0x9bc0385b sock_no_listen
+EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c038ab3 scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x9c0709aa ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan
+EXPORT_SYMBOL vmlinux 0x9c127e04 set_pages_array_uc
+EXPORT_SYMBOL vmlinux 0x9c17391a delayed_slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x9c1f2fe6 set_groups
+EXPORT_SYMBOL vmlinux 0x9c3cbb73 serial8250_register_port
+EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x9c4dfc53 add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0x9c5710f4 input_get_keycode
+EXPORT_SYMBOL vmlinux 0x9c745bee dm_io
+EXPORT_SYMBOL vmlinux 0x9c8d7a6c phy_stop
+EXPORT_SYMBOL vmlinux 0x9c90d0e5 nf_register_hooks
+EXPORT_SYMBOL vmlinux 0x9c99a889 scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0x9ca95a0e sort
+EXPORT_SYMBOL vmlinux 0x9cb12d5a vfs_symlink
+EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x9cc8dd1f skb_copy
+EXPORT_SYMBOL vmlinux 0x9cf884a8 register_8022_client
+EXPORT_SYMBOL vmlinux 0x9cfa892e ilookup5
+EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9d0d0a02 __dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x9d11458b ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable
+EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d4c838e redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x9d9a5c5a kdb_current_task
+EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x9dd08427 create_proc_entry
+EXPORT_SYMBOL vmlinux 0x9ddc0b59 __splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x9e078aaa mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0x9e0fdde2 max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x9e1b691b nla_put
+EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read
+EXPORT_SYMBOL vmlinux 0x9e65a105 compat_sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay
+EXPORT_SYMBOL vmlinux 0x9e7f7c59 bio_map_kern
+EXPORT_SYMBOL vmlinux 0x9e8c0579 pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table
+EXPORT_SYMBOL vmlinux 0x9ebc8334 unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource
+EXPORT_SYMBOL vmlinux 0x9edbecae snprintf
+EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk
+EXPORT_SYMBOL vmlinux 0x9f02e30b ip_route_output_key
+EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0x9f1369fd tcp_read_sock
+EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool
+EXPORT_SYMBOL vmlinux 0x9f368643 padata_stop
+EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f477d5b tty_hangup
+EXPORT_SYMBOL vmlinux 0x9f5a6238 ilookup
+EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section
+EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk
+EXPORT_SYMBOL vmlinux 0x9f984513 strrchr
+EXPORT_SYMBOL vmlinux 0x9f9a818e skb_set_dev
+EXPORT_SYMBOL vmlinux 0x9fb16b8e iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0x9fb4e029 request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa0779ed0 inet_csk_accept
+EXPORT_SYMBOL vmlinux 0xa084affd mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0xa0996c86 inetdev_by_index
+EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock
+EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec
+EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0cdbeab read_dev_sector
+EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize
+EXPORT_SYMBOL vmlinux 0xa0dc65a2 nla_append
+EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xa1074aad jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa10917a3 sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0xa1159dd5 security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa13c964c pci_request_region
+EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa155927e generic_show_options
+EXPORT_SYMBOL vmlinux 0xa163047a blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0xa17c376c bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0xa1881857 netif_carrier_on
+EXPORT_SYMBOL vmlinux 0xa1a3a93a scsi_execute
+EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock
+EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode
+EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched
+EXPORT_SYMBOL vmlinux 0xa1c812df input_free_device
+EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa21213b1 jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0xa21cda85 bdi_destroy
+EXPORT_SYMBOL vmlinux 0xa22ca5b3 splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0xa23835d9 neigh_seq_start
+EXPORT_SYMBOL vmlinux 0xa26703e0 mmc_alloc_host
+EXPORT_SYMBOL vmlinux 0xa279dc5d agp_generic_insert_memory
+EXPORT_SYMBOL vmlinux 0xa28aab66 inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0xa28ea3a6 find_get_page
+EXPORT_SYMBOL vmlinux 0xa29fb275 eth_change_mtu
+EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2b67313 d_genocide
+EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa32317c3 km_new_mapping
+EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker
+EXPORT_SYMBOL vmlinux 0xa331e15b bio_map_user
+EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy
+EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc
+EXPORT_SYMBOL vmlinux 0xa350dcec clear_inode
+EXPORT_SYMBOL vmlinux 0xa35383ad textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config
+EXPORT_SYMBOL vmlinux 0xa3918796 nobh_writepage
+EXPORT_SYMBOL vmlinux 0xa3926a98 dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0xa3a5be95 memmove
+EXPORT_SYMBOL vmlinux 0xa3c1312d tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0xa3dc41ce dqput
+EXPORT_SYMBOL vmlinux 0xa3e23f95 generic_setattr
+EXPORT_SYMBOL vmlinux 0xa42d4d98 d_invalidate
+EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0xa46cdfe1 file_permission
+EXPORT_SYMBOL vmlinux 0xa47fb533 unregister_nls
+EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq
+EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4c27b7d swiotlb_map_sg_attrs
+EXPORT_SYMBOL vmlinux 0xa4c44c6c __dquot_free_space
+EXPORT_SYMBOL vmlinux 0xa4cb7b6e __xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0xa4d1f7df scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush
+EXPORT_SYMBOL vmlinux 0xa4e756aa ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0xa528b2d0 scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xa5398a6a scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0xa54ce668 skb_clone
+EXPORT_SYMBOL vmlinux 0xa561dc7f user_revoke
+EXPORT_SYMBOL vmlinux 0xa56813bf dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone
+EXPORT_SYMBOL vmlinux 0xa57b68fe jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0xa5801827 i2c_use_client
+EXPORT_SYMBOL vmlinux 0xa5813fb1 skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse
+EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a32e43 ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0xa5a5fa9c i2c_master_send
+EXPORT_SYMBOL vmlinux 0xa5a6aa2f devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xa5b042bb generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0xa5bb68a2 thermal_zone_device_register
+EXPORT_SYMBOL vmlinux 0xa5f240ff tcp_check_req
+EXPORT_SYMBOL vmlinux 0xa5f738bf security_path_mknod
+EXPORT_SYMBOL vmlinux 0xa5f76272 inet_recvmsg
+EXPORT_SYMBOL vmlinux 0xa60842d3 skb_pad
+EXPORT_SYMBOL vmlinux 0xa61447d6 acpi_bus_get_device
+EXPORT_SYMBOL vmlinux 0xa62a2d47 dev_alloc_name
+EXPORT_SYMBOL vmlinux 0xa62d72c2 dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember
+EXPORT_SYMBOL vmlinux 0xa64d764a ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0xa67fe3c0 i2c_verify_client
+EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa6826e66 ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0xa682a327 ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0xa68d6b13 netif_carrier_off
+EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh
+EXPORT_SYMBOL vmlinux 0xa6c6ad62 generic_writepages
+EXPORT_SYMBOL vmlinux 0xa6d124d9 vmtruncate
+EXPORT_SYMBOL vmlinux 0xa6e16486 cfb_copyarea
+EXPORT_SYMBOL vmlinux 0xa6eba16d block_invalidatepage
+EXPORT_SYMBOL vmlinux 0xa6f93b88 pci_claim_resource
+EXPORT_SYMBOL vmlinux 0xa6f93ba0 skb_queue_purge
+EXPORT_SYMBOL vmlinux 0xa703a6de qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0xa71503ae invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes
+EXPORT_SYMBOL vmlinux 0xa72f2aec __skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xa7436ecd blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0xa75162f3 block_prepare_write
+EXPORT_SYMBOL vmlinux 0xa757cdfb blk_queue_ordered
+EXPORT_SYMBOL vmlinux 0xa7937ee4 drop_super
+EXPORT_SYMBOL vmlinux 0xa79e64c6 tcp_make_synack
+EXPORT_SYMBOL vmlinux 0xa7f8a6aa scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0xa812f413 inode_init_owner
+EXPORT_SYMBOL vmlinux 0xa8138c88 generic_file_llseek_unlocked
+EXPORT_SYMBOL vmlinux 0xa815c474 pagevec_lookup
+EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on
+EXPORT_SYMBOL vmlinux 0xa84ee28d __page_symlink
+EXPORT_SYMBOL vmlinux 0xa8528795 compat_sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xa859353c dm_table_event
+EXPORT_SYMBOL vmlinux 0xa863d995 rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0xa874b571 pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0xa87d17bd tcf_hash_search
+EXPORT_SYMBOL vmlinux 0xa8828db5 scsi_host_get
+EXPORT_SYMBOL vmlinux 0xa886a958 krealloc
+EXPORT_SYMBOL vmlinux 0xa88fc454 jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region
+EXPORT_SYMBOL vmlinux 0xa8a7cf8b scsi_remove_device
+EXPORT_SYMBOL vmlinux 0xa8cdc527 __dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning
+EXPORT_SYMBOL vmlinux 0xa8eeb494 bitmap_endwrite
+EXPORT_SYMBOL vmlinux 0xa8f94214 page_follow_link_light
+EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support
+EXPORT_SYMBOL vmlinux 0xa93b3111 dquot_quota_on
+EXPORT_SYMBOL vmlinux 0xa94fc5bd inode_init_once
+EXPORT_SYMBOL vmlinux 0xa95521b0 nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xa97ea1f4 ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xa99a356e ps2_end_command
+EXPORT_SYMBOL vmlinux 0xa9a33c53 neigh_event_ns
+EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize
+EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc
+EXPORT_SYMBOL vmlinux 0xa9c01936 sock_create_lite
+EXPORT_SYMBOL vmlinux 0xa9cd4acc tty_check_change
+EXPORT_SYMBOL vmlinux 0xa9ec79dd security_inode_permission
+EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xa9f0c149 pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0xa9f35a3d security_inode_init_security
+EXPORT_SYMBOL vmlinux 0xaa0c7dc7 scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xaa51e5b9 compat_ip_setsockopt
+EXPORT_SYMBOL vmlinux 0xaa5b6d82 skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xaa774066 vfs_readdir
+EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check
+EXPORT_SYMBOL vmlinux 0xaa8c1a11 skb_queue_tail
+EXPORT_SYMBOL vmlinux 0xaa8d7431 tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0xaa96f537 igrab
+EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable
+EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister
+EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp
+EXPORT_SYMBOL vmlinux 0xab1167f8 rfkill_set_led_trigger_name
+EXPORT_SYMBOL vmlinux 0xab141641 pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0xab1d2912 dw_spi_remove_host
+EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off
+EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc
+EXPORT_SYMBOL vmlinux 0xab687290 pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0xab777f8c simple_unlink
+EXPORT_SYMBOL vmlinux 0xab98fbc1 km_state_expired
+EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock
+EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabd6a045 set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0xabe9b20e bitmap_unplug
+EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0xac29d5d4 phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0xac3eb169 agp_enable
+EXPORT_SYMBOL vmlinux 0xac514913 fb_is_primary_device
+EXPORT_SYMBOL vmlinux 0xac56a90f sock_release
+EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id
+EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac6a753a __inet6_hash
+EXPORT_SYMBOL vmlinux 0xac88210e ethtool_op_get_rx_csum
+EXPORT_SYMBOL vmlinux 0xac9283db dma_set_mask
+EXPORT_SYMBOL vmlinux 0xacb3ec45 skb_pull
+EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton
+EXPORT_SYMBOL vmlinux 0xaccc1132 pipe_lock
+EXPORT_SYMBOL vmlinux 0xaccd6f19 sock_i_uid
+EXPORT_SYMBOL vmlinux 0xacd9700d dev_addr_init
+EXPORT_SYMBOL vmlinux 0xacdd3672 tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0xace7dad3 __skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup
+EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex
+EXPORT_SYMBOL vmlinux 0xad05e23f jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0xad0d1702 simple_rmdir
+EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute
+EXPORT_SYMBOL vmlinux 0xad1f2194 scsi_dma_map
+EXPORT_SYMBOL vmlinux 0xad25fb12 __memcpy
+EXPORT_SYMBOL vmlinux 0xad3278fa md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad471990 pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0xad4ef2e8 vc_resize
+EXPORT_SYMBOL vmlinux 0xad50e3c2 netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0xad8884f9 journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xad99c20b hippi_mac_addr
+EXPORT_SYMBOL vmlinux 0xad9ef98a phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xaddeea34 i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0xade36526 md_integrity_register
+EXPORT_SYMBOL vmlinux 0xadf4303a lock_super
+EXPORT_SYMBOL vmlinux 0xae20366e pnpacpi_protocol
+EXPORT_SYMBOL vmlinux 0xae3188db blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0xae40780a tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0xae50ca85 tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0xae7eaf99 inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0xae821dcd simple_readpage
+EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set
+EXPORT_SYMBOL vmlinux 0xae913222 journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xae9e0349 __inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0xaea56077 netpoll_poll
+EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict
+EXPORT_SYMBOL vmlinux 0xaea9a4c4 simple_release_fs
+EXPORT_SYMBOL vmlinux 0xaed163ca nf_reinject
+EXPORT_SYMBOL vmlinux 0xaede6661 unregister_quota_format
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf46b750 d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register
+EXPORT_SYMBOL vmlinux 0xaf51db91 dquot_alloc
+EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string
+EXPORT_SYMBOL vmlinux 0xafde2a9f journal_revoke
+EXPORT_SYMBOL vmlinux 0xafe5cc83 posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn
+EXPORT_SYMBOL vmlinux 0xafef8fa9 register_memory_notifier
+EXPORT_SYMBOL vmlinux 0xaff08657 unregister_filesystem
+EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait
+EXPORT_SYMBOL vmlinux 0xb044cdf5 read_cache_page_async
+EXPORT_SYMBOL vmlinux 0xb04ea8f0 agp_rebind_memory
+EXPORT_SYMBOL vmlinux 0xb05436e1 proc_symlink
+EXPORT_SYMBOL vmlinux 0xb05b39e3 vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler
+EXPORT_SYMBOL vmlinux 0xb0a015eb tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0xb0b35261 jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0xb0b548dd get_super
+EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0b84b70 simple_statfs
+EXPORT_SYMBOL vmlinux 0xb0dbbb4b skb_insert
+EXPORT_SYMBOL vmlinux 0xb0e10781 get_option
+EXPORT_SYMBOL vmlinux 0xb0ea4f9b pci_match_id
+EXPORT_SYMBOL vmlinux 0xb0fa76b6 dquot_resume
+EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0xb11cf18f blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat
+EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb1312438 dm_exception_store_type_register
+EXPORT_SYMBOL vmlinux 0xb1371857 mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0xb137c11c pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0xb15943da mmc_wait_for_req
+EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table
+EXPORT_SYMBOL vmlinux 0xb178440a inet_bind
+EXPORT_SYMBOL vmlinux 0xb17dfc50 blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xb18e1c85 __generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1a20024 dev_disable_lro
+EXPORT_SYMBOL vmlinux 0xb1a41bec journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xb1da43c1 lock_may_read
+EXPORT_SYMBOL vmlinux 0xb1df7f5c xrlim_allow
+EXPORT_SYMBOL vmlinux 0xb1f31451 swiotlb_sync_single_for_device
+EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit
+EXPORT_SYMBOL vmlinux 0xb203eeca tty_shutdown
+EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc
+EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu
+EXPORT_SYMBOL vmlinux 0xb21ce4f4 add_disk
+EXPORT_SYMBOL vmlinux 0xb21f2772 xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short
+EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb296d965 notify_change
+EXPORT_SYMBOL vmlinux 0xb2adc704 revalidate_disk
+EXPORT_SYMBOL vmlinux 0xb2cea29c cdrom_mode_sense
+EXPORT_SYMBOL vmlinux 0xb2e55898 cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0xb2f0e7cd swiotlb_free_coherent
+EXPORT_SYMBOL vmlinux 0xb2f7468d ida_get_new
+EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4
+EXPORT_SYMBOL vmlinux 0xb312b250 unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0xb32567db __dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer
+EXPORT_SYMBOL vmlinux 0xb32bceb1 security_path_mkdir
+EXPORT_SYMBOL vmlinux 0xb33059f2 proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate
+EXPORT_SYMBOL vmlinux 0xb34fcbf5 i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit
+EXPORT_SYMBOL vmlinux 0xb3835f2b scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0xb39519a1 get_fs_type
+EXPORT_SYMBOL vmlinux 0xb39d9fd9 scsi_scan_target
+EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3b05fbe key_validate
+EXPORT_SYMBOL vmlinux 0xb3c0240d invalidate_partition
+EXPORT_SYMBOL vmlinux 0xb3c357e3 call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0xb3d67fc3 generic_setlease
+EXPORT_SYMBOL vmlinux 0xb3e43aad swiotlb_dma_mapping_error
+EXPORT_SYMBOL vmlinux 0xb3ecd4c9 scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact
+EXPORT_SYMBOL vmlinux 0xb406738f generic_file_open
+EXPORT_SYMBOL vmlinux 0xb4078d21 dev_get_flags
+EXPORT_SYMBOL vmlinux 0xb40e6e65 seq_bitmap
+EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked
+EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool
+EXPORT_SYMBOL vmlinux 0xb4363d49 dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0xb4390f9a mcount
+EXPORT_SYMBOL vmlinux 0xb449d103 dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids
+EXPORT_SYMBOL vmlinux 0xb46267d9 write_inode_now
+EXPORT_SYMBOL vmlinux 0xb46ca55c sock_i_ino
+EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb47b6e45 dquot_scan_active
+EXPORT_SYMBOL vmlinux 0xb493c711 jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0xb4a67b76 phy_sanitize_settings
+EXPORT_SYMBOL vmlinux 0xb4b532b5 module_layout
+EXPORT_SYMBOL vmlinux 0xb4c562b6 eth_header_parse
+EXPORT_SYMBOL vmlinux 0xb4ce7615 kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0xb4ff49d2 xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf
+EXPORT_SYMBOL vmlinux 0xb50e50a8 dev_getbyhwaddr
+EXPORT_SYMBOL vmlinux 0xb521a851 task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb54f6ed6 boot_cpu_data
+EXPORT_SYMBOL vmlinux 0xb550522f revert_creds
+EXPORT_SYMBOL vmlinux 0xb55599c0 ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0xb55b7760 qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0xb55de4da __skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0xb571906d pci_assign_resource
+EXPORT_SYMBOL vmlinux 0xb576e0ed dquot_destroy
+EXPORT_SYMBOL vmlinux 0xb5a3781c bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5a4781c get_sb_ns
+EXPORT_SYMBOL vmlinux 0xb5c59c22 in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free
+EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction
+EXPORT_SYMBOL vmlinux 0xb5eb70ac acpi_get_physical_device
+EXPORT_SYMBOL vmlinux 0xb5f28b5f __any_online_cpu
+EXPORT_SYMBOL vmlinux 0xb60ecb1b kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one
+EXPORT_SYMBOL vmlinux 0xb632d3fe tcf_hash_create
+EXPORT_SYMBOL vmlinux 0xb6404b9d input_set_keycode
+EXPORT_SYMBOL vmlinux 0xb64fdadd __xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0xb674b6f2 pnp_request_card_device
+EXPORT_SYMBOL vmlinux 0xb6752aad search_binary_handler
+EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6b001a2 netlink_set_err
+EXPORT_SYMBOL vmlinux 0xb6bfcdb8 tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu
+EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node
+EXPORT_SYMBOL vmlinux 0xb6ee50e5 follow_pfn
+EXPORT_SYMBOL vmlinux 0xb71543d8 mnt_pin
+EXPORT_SYMBOL vmlinux 0xb73e475b ppp_input
+EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event
+EXPORT_SYMBOL vmlinux 0xb788241f do_truncate
+EXPORT_SYMBOL vmlinux 0xb7b12601 pnp_stop_dev
+EXPORT_SYMBOL vmlinux 0xb7b147a4 blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0xb7b422f5 blk_get_request
+EXPORT_SYMBOL vmlinux 0xb7b88912 qdisc_reset
+EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring
+EXPORT_SYMBOL vmlinux 0xb7d2b3a5 devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0xb7d7ec55 tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xb7ecc4e8 inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0xb80140eb mpage_writepages
+EXPORT_SYMBOL vmlinux 0xb80dd758 neigh_parms_release
+EXPORT_SYMBOL vmlinux 0xb8232532 ab3100_event_register
+EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops
+EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32
+EXPORT_SYMBOL vmlinux 0xb8722c6b generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release
+EXPORT_SYMBOL vmlinux 0xb88386dc compat_nf_getsockopt
+EXPORT_SYMBOL vmlinux 0xb885c3a7 rfkill_blocked
+EXPORT_SYMBOL vmlinux 0xb899d9df scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32
+EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue
+EXPORT_SYMBOL vmlinux 0xb8a9b88f dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0xb8b488ab i8042_install_filter
+EXPORT_SYMBOL vmlinux 0xb8c22a8c sk_reset_timer
+EXPORT_SYMBOL vmlinux 0xb8c9fb65 bio_free
+EXPORT_SYMBOL vmlinux 0xb8cb2022 gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0xb8db9ee4 datagram_poll
+EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8
+EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory
+EXPORT_SYMBOL vmlinux 0xb90acdc3 mmc_free_host
+EXPORT_SYMBOL vmlinux 0xb92b70eb dm_unregister_target
+EXPORT_SYMBOL vmlinux 0xb946223c get_phy_device
+EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb99bbe51 jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xb9a819e2 blk_plug_device_unlocked
+EXPORT_SYMBOL vmlinux 0xb9a9e756 tty_port_open
+EXPORT_SYMBOL vmlinux 0xb9c05534 sk_release_kernel
+EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable
+EXPORT_SYMBOL vmlinux 0xb9f21271 generic_make_request
+EXPORT_SYMBOL vmlinux 0xb9fa5ff9 rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0xb9fc782c ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap
+EXPORT_SYMBOL vmlinux 0xba09383d vfs_unlink
+EXPORT_SYMBOL vmlinux 0xba0e59f8 security_inode_readlink
+EXPORT_SYMBOL vmlinux 0xba1d97eb blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0xba21ad28 dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read
+EXPORT_SYMBOL vmlinux 0xba3fa333 inet_register_protosw
+EXPORT_SYMBOL vmlinux 0xba4505ac set_create_files_as
+EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba56a679 sk_filter
+EXPORT_SYMBOL vmlinux 0xba58760c dev_mc_sync
+EXPORT_SYMBOL vmlinux 0xba6e0113 framebuffer_release
+EXPORT_SYMBOL vmlinux 0xba7a2110 bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup
+EXPORT_SYMBOL vmlinux 0xbaa4626a inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbaab7db6 dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0xbab25e09 input_grab_device
+EXPORT_SYMBOL vmlinux 0xbace0b73 filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0xbaf68eb6 sock_init_data
+EXPORT_SYMBOL vmlinux 0xbb035298 follow_up
+EXPORT_SYMBOL vmlinux 0xbb10e179 ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb4766f3 softnet_data
+EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb5d7de7 dcache_dir_close
+EXPORT_SYMBOL vmlinux 0xbb72494e agp_generic_enable
+EXPORT_SYMBOL vmlinux 0xbb741ed6 override_creds
+EXPORT_SYMBOL vmlinux 0xbb794612 otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0xbb8685be padata_remove_cpu
+EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font
+EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xbbe4f2f4 unregister_8022_client
+EXPORT_SYMBOL vmlinux 0xbbfb4a17 dw_spi_suspend_host
+EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit
+EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table
+EXPORT_SYMBOL vmlinux 0xbc31be53 journal_forget
+EXPORT_SYMBOL vmlinux 0xbc32f86e nf_log_register
+EXPORT_SYMBOL vmlinux 0xbc7bd1d4 eth_header_cache
+EXPORT_SYMBOL vmlinux 0xbcb38a72 generic_write_end
+EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user
+EXPORT_SYMBOL vmlinux 0xbce64869 phy_start
+EXPORT_SYMBOL vmlinux 0xbce8fd07 tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0xbcff9ec3 blk_stop_queue
+EXPORT_SYMBOL vmlinux 0xbd20b31d __secpath_destroy
+EXPORT_SYMBOL vmlinux 0xbd271a34 tcf_hash_check
+EXPORT_SYMBOL vmlinux 0xbd3ca0f0 write_one_page
+EXPORT_SYMBOL vmlinux 0xbd3e2171 xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0xbd466abc pnp_device_detach
+EXPORT_SYMBOL vmlinux 0xbd5719ba ppp_unit_number
+EXPORT_SYMBOL vmlinux 0xbd6c8d1d posix_acl_permission
+EXPORT_SYMBOL vmlinux 0xbd9a6ae1 inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port
+EXPORT_SYMBOL vmlinux 0xbdb0cc74 scsi_remove_target
+EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next
+EXPORT_SYMBOL vmlinux 0xbdf7344b skb_trim
+EXPORT_SYMBOL vmlinux 0xbe1e8a61 may_umount_tree
+EXPORT_SYMBOL vmlinux 0xbe2bfdce tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node
+EXPORT_SYMBOL vmlinux 0xbe36f121 init_task
+EXPORT_SYMBOL vmlinux 0xbe3b5a21 noop_qdisc
+EXPORT_SYMBOL vmlinux 0xbe782f7f agp_create_memory
+EXPORT_SYMBOL vmlinux 0xbe797d67 ip_route_input_common
+EXPORT_SYMBOL vmlinux 0xbe7ee9dd sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xbea3ec9d pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0xbef06c3b xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbf2c7934 mmc_power_save_host
+EXPORT_SYMBOL vmlinux 0xbf58ac1d inet_frags_fini
+EXPORT_SYMBOL vmlinux 0xbf62c6c7 dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0xbf6a85c6 generic_setxattr
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbfb40bc3 security_path_chmod
+EXPORT_SYMBOL vmlinux 0xbfbeeb56 neigh_update
+EXPORT_SYMBOL vmlinux 0xbfc0f3ca dev_mc_flush
+EXPORT_SYMBOL vmlinux 0xbfc0f891 tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep
+EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xbff6d950 gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user
+EXPORT_SYMBOL vmlinux 0xc0159ede blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0xc019c5fa tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0xc0254b29 pagecache_write_end
+EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be
+EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit
+EXPORT_SYMBOL vmlinux 0xc0d20eb5 scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0xc0e87831 scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0xc0fe40ce i2c_master_recv
+EXPORT_SYMBOL vmlinux 0xc109b700 dma_supported
+EXPORT_SYMBOL vmlinux 0xc10a6a27 ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0xc10f9c28 devm_ioport_map
+EXPORT_SYMBOL vmlinux 0xc1166f3a dquot_commit_info
+EXPORT_SYMBOL vmlinux 0xc1268644 idr_init
+EXPORT_SYMBOL vmlinux 0xc1288482 pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0xc13c0da0 mpage_readpages
+EXPORT_SYMBOL vmlinux 0xc155fcd2 xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic
+EXPORT_SYMBOL vmlinux 0xc17d62c3 current_task
+EXPORT_SYMBOL vmlinux 0xc1ad1380 dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1eaa1f8 blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0xc214bca2 block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0xc2210131 vm_map_ram
+EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup
+EXPORT_SYMBOL vmlinux 0xc244cd7e fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0xc24b48da xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc286a690 phy_driver_register
+EXPORT_SYMBOL vmlinux 0xc289f97f sock_setsockopt
+EXPORT_SYMBOL vmlinux 0xc2c136ef vc_cons
+EXPORT_SYMBOL vmlinux 0xc2d007c4 jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices
+EXPORT_SYMBOL vmlinux 0xc2f58199 spi_attach_transport
+EXPORT_SYMBOL vmlinux 0xc3157fbf sk_run_filter
+EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu
+EXPORT_SYMBOL vmlinux 0xc36a867e alloc_fddidev
+EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout
+EXPORT_SYMBOL vmlinux 0xc38ffa49 dquot_disable
+EXPORT_SYMBOL vmlinux 0xc39a94ee genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0xc3a66ff0 mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1
+EXPORT_SYMBOL vmlinux 0xc3e82e88 blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0xc3f0e1d3 ____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier
+EXPORT_SYMBOL vmlinux 0xc4237efd pci_request_regions
+EXPORT_SYMBOL vmlinux 0xc42e6909 tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0xc44c7a6f dm_table_put
+EXPORT_SYMBOL vmlinux 0xc44d9325 register_sysrq_key
+EXPORT_SYMBOL vmlinux 0xc45aba5d pci_fixup_device
+EXPORT_SYMBOL vmlinux 0xc4771bd8 jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0xc489ac42 __put_cred
+EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup
+EXPORT_SYMBOL vmlinux 0xc4a49603 mmc_resume_host
+EXPORT_SYMBOL vmlinux 0xc4a51098 qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0xc4b13a5f lock_sock_nested
+EXPORT_SYMBOL vmlinux 0xc4b1489e journal_errno
+EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic
+EXPORT_SYMBOL vmlinux 0xc4e9c01c cpu_active_mask
+EXPORT_SYMBOL vmlinux 0xc4eaadf8 register_qdisc
+EXPORT_SYMBOL vmlinux 0xc527554a padata_do_parallel
+EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc5322294 dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0xc534c0e5 pnp_release_card_device
+EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16
+EXPORT_SYMBOL vmlinux 0xc558530d profile_pc
+EXPORT_SYMBOL vmlinux 0xc5742deb tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0xc5844fb8 __per_cpu_offset
+EXPORT_SYMBOL vmlinux 0xc5b2603e icmpv6_send
+EXPORT_SYMBOL vmlinux 0xc5be53fb request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0xc5c13e34 blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0xc5d0a558 pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot
+EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0xc646bac6 netdev_state_change
+EXPORT_SYMBOL vmlinux 0xc6511d01 swiotlb_unmap_sg_attrs
+EXPORT_SYMBOL vmlinux 0xc6582590 mmc_align_data_size
+EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes
+EXPORT_SYMBOL vmlinux 0xc65df220 elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0xc67bd8db serio_reconnect
+EXPORT_SYMBOL vmlinux 0xc67cfe57 lro_vlan_hwaccel_receive_frags
+EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info
+EXPORT_SYMBOL vmlinux 0xc68dda90 dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0xc6bfeb08 kobject_init
+EXPORT_SYMBOL vmlinux 0xc6eba178 journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xc6ee12e6 inet_shutdown
+EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port
+EXPORT_SYMBOL vmlinux 0xc7286e41 prepare_binprm
+EXPORT_SYMBOL vmlinux 0xc740c64a memchr
+EXPORT_SYMBOL vmlinux 0xc74276ca noop_fsync
+EXPORT_SYMBOL vmlinux 0xc74ebf15 inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0xc75d5f05 rtnl_notify
+EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7a5b05c alloc_disk_node
+EXPORT_SYMBOL vmlinux 0xc7b63c20 bdput
+EXPORT_SYMBOL vmlinux 0xc7ec20cb vm_insert_page
+EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table
+EXPORT_SYMBOL vmlinux 0xc8a5efaf free_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8bd8a74 get_sb_single
+EXPORT_SYMBOL vmlinux 0xc8c22709 splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0xc8cc67d7 input_register_handle
+EXPORT_SYMBOL vmlinux 0xc8dc98a7 dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0xc8dcab3d bio_unmap_user
+EXPORT_SYMBOL vmlinux 0xc90f61e0 scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0xc94173c9 pci_remove_bus
+EXPORT_SYMBOL vmlinux 0xc94bac3b pci_release_region
+EXPORT_SYMBOL vmlinux 0xc94e6cef wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0xc9547e87 genphy_read_status
+EXPORT_SYMBOL vmlinux 0xc993be52 netdev_features_change
+EXPORT_SYMBOL vmlinux 0xc993ea45 tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev
+EXPORT_SYMBOL vmlinux 0xc99e8f95 skb_seq_read
+EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete
+EXPORT_SYMBOL vmlinux 0xc9b0b0cf xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0xc9b80b4c pid_task
+EXPORT_SYMBOL vmlinux 0xc9cd1184 x86_hyper_vmware
+EXPORT_SYMBOL vmlinux 0xca22ee60 __lru_cache_add
+EXPORT_SYMBOL vmlinux 0xca4136d9 dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0xca596008 lookup_one_len
+EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca5df891 pci_pme_active
+EXPORT_SYMBOL vmlinux 0xca628a63 xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0xca6f476b dmam_pool_create
+EXPORT_SYMBOL vmlinux 0xca808d4d ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xca8295c6 __sk_dst_check
+EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level
+EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel
+EXPORT_SYMBOL vmlinux 0xcaca0973 check_disk_size_change
+EXPORT_SYMBOL vmlinux 0xcacf3d1a tty_kref_put
+EXPORT_SYMBOL vmlinux 0xcad3cdd3 generic_block_bmap
+EXPORT_SYMBOL vmlinux 0xcad4dcf4 __sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0xcb138863 bdevname
+EXPORT_SYMBOL vmlinux 0xcb186a87 dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0xcb484273 open_by_devnum
+EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb728d4e pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power
+EXPORT_SYMBOL vmlinux 0xcbb21719 scsi_print_sense
+EXPORT_SYMBOL vmlinux 0xcc00266f put_disk
+EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen
+EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port
+EXPORT_SYMBOL vmlinux 0xcc3008ec ppp_register_channel
+EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc3e1873 tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0xcc4b80cb scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc53deea tr_type_trans
+EXPORT_SYMBOL vmlinux 0xcc6d592a pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0xcc7e6b2f scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0xccd36d0c i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0xcd1fe3ed vlan_gro_receive
+EXPORT_SYMBOL vmlinux 0xcd2ab150 tcp_ioctl
+EXPORT_SYMBOL vmlinux 0xcd41fda1 scsi_register_interface
+EXPORT_SYMBOL vmlinux 0xcd48a023 blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xcd499e34 pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0xcd4e4d47 input_register_device
+EXPORT_SYMBOL vmlinux 0xcd828240 eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0xcdcaf68d xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0xcddec6c5 dma_find_channel
+EXPORT_SYMBOL vmlinux 0xcdf6bf96 swiotlb_sync_sg_for_cpu
+EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe
+EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0xce20e1d2 filp_close
+EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state
+EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce5ac280 eth_header
+EXPORT_SYMBOL vmlinux 0xce5cc21e boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0xce73882c journal_start
+EXPORT_SYMBOL vmlinux 0xce8a5797 phy_print_status
+EXPORT_SYMBOL vmlinux 0xce8e837e directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0xcea9566b blk_integrity_register
+EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free
+EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port
+EXPORT_SYMBOL vmlinux 0xcf0c15c1 lock_rename
+EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error
+EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free
+EXPORT_SYMBOL vmlinux 0xcf881fdb bdget_disk
+EXPORT_SYMBOL vmlinux 0xcf922454 bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfccad2f generic_delete_inode
+EXPORT_SYMBOL vmlinux 0xcfea4cdf ida_destroy
+EXPORT_SYMBOL vmlinux 0xd006c9dc __rta_fill
+EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd019c1ec genphy_config_advert
+EXPORT_SYMBOL vmlinux 0xd03b78e0 d_instantiate
+EXPORT_SYMBOL vmlinux 0xd0452aee x86_hyper_ms_hyperv
+EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables
+EXPORT_SYMBOL vmlinux 0xd0a6635a scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0xd0a6dcdc uart_remove_one_port
+EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0d1176f put_tty_driver
+EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0f6eeab key_type_keyring
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key
+EXPORT_SYMBOL vmlinux 0xd128117c free_netdev
+EXPORT_SYMBOL vmlinux 0xd13fd7ca seq_release
+EXPORT_SYMBOL vmlinux 0xd1431182 fifo_set_limit
+EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver
+EXPORT_SYMBOL vmlinux 0xd1529f36 scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0xd15aa581 blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic
+EXPORT_SYMBOL vmlinux 0xd18e9d8d md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings
+EXPORT_SYMBOL vmlinux 0xd2096bfb genphy_update_link
+EXPORT_SYMBOL vmlinux 0xd20fe074 posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel
+EXPORT_SYMBOL vmlinux 0xd23c04f3 sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0xd23db386 check_disk_change
+EXPORT_SYMBOL vmlinux 0xd244789c set_page_dirty
+EXPORT_SYMBOL vmlinux 0xd24633b4 dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0xd247a8b8 alloc_trdev
+EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t
+EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook
+EXPORT_SYMBOL vmlinux 0xd26e1601 unregister_binfmt
+EXPORT_SYMBOL vmlinux 0xd270d3fa md_write_start
+EXPORT_SYMBOL vmlinux 0xd271a91c dst_destroy
+EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match
+EXPORT_SYMBOL vmlinux 0xd2ae099d dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0xd2d6a930 nf_hook_slow
+EXPORT_SYMBOL vmlinux 0xd2d9f3d3 bioset_free
+EXPORT_SYMBOL vmlinux 0xd32baf62 d_splice_alias
+EXPORT_SYMBOL vmlinux 0xd330ce45 kobject_set_name
+EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock
+EXPORT_SYMBOL vmlinux 0xd38d6748 neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64
+EXPORT_SYMBOL vmlinux 0xd3952c57 uart_match_port
+EXPORT_SYMBOL vmlinux 0xd39898fe jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user
+EXPORT_SYMBOL vmlinux 0xd3f52282 blkdev_put
+EXPORT_SYMBOL vmlinux 0xd4054c6c do_splice_from
+EXPORT_SYMBOL vmlinux 0xd4079e5b kobject_del
+EXPORT_SYMBOL vmlinux 0xd41abc0e xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0xd44282e8 swiotlb_sync_sg_for_device
+EXPORT_SYMBOL vmlinux 0xd46e12ed gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0xd493f424 dev_uc_sync
+EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data
+EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd52e05ad sk_wait_data
+EXPORT_SYMBOL vmlinux 0xd53e4cfa balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0xd54eb3b8 d_rehash
+EXPORT_SYMBOL vmlinux 0xd55c179e backlight_device_register
+EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out
+EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit
+EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages
+EXPORT_SYMBOL vmlinux 0xd5801516 __register_binfmt
+EXPORT_SYMBOL vmlinux 0xd58d19d7 blk_free_tags
+EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put
+EXPORT_SYMBOL vmlinux 0xd5b30799 dma_ops
+EXPORT_SYMBOL vmlinux 0xd5b9c8b4 slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0xd5b9e9cc block_write_end
+EXPORT_SYMBOL vmlinux 0xd5da74e9 __ht_create_irq
+EXPORT_SYMBOL vmlinux 0xd6088cdd kset_unregister
+EXPORT_SYMBOL vmlinux 0xd60efc4a stop_tty
+EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read
+EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd633f9b1 ll_rw_block
+EXPORT_SYMBOL vmlinux 0xd635d134 rb_last
+EXPORT_SYMBOL vmlinux 0xd6374f6b mfd_add_devices
+EXPORT_SYMBOL vmlinux 0xd64b708e freeze_bdev
+EXPORT_SYMBOL vmlinux 0xd659dc9d ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0xd68a27b3 dma_pool_free
+EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single
+EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz
+EXPORT_SYMBOL vmlinux 0xd6c54907 new_inode
+EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc
+EXPORT_SYMBOL vmlinux 0xd6f97ca1 rb_first
+EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh
+EXPORT_SYMBOL vmlinux 0xd71fe275 xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0xd7218dfe input_set_capability
+EXPORT_SYMBOL vmlinux 0xd721db45 node_data
+EXPORT_SYMBOL vmlinux 0xd75ef07c bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0xd769dc2b kthread_stop
+EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and
+EXPORT_SYMBOL vmlinux 0xd77b79b0 deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0xd77ef54d get_user_pages
+EXPORT_SYMBOL vmlinux 0xd785cacc tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal
+EXPORT_SYMBOL vmlinux 0xd7b6e598 bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0xd7c537a5 may_umount
+EXPORT_SYMBOL vmlinux 0xd7c5f68c input_unregister_handler
+EXPORT_SYMBOL vmlinux 0xd7c683d1 mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0xd7daa025 elv_queue_empty
+EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7ebeede do_SAK
+EXPORT_SYMBOL vmlinux 0xd7f43b83 bitmap_cond_end_sync
+EXPORT_SYMBOL vmlinux 0xd8249063 blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user
+EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone
+EXPORT_SYMBOL vmlinux 0xd8d9fc6b __sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd8ffe0de dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler
+EXPORT_SYMBOL vmlinux 0xd9172aae xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0xd917b79e scsi_scan_host
+EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd92e3d96 set_irq_chip
+EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference
+EXPORT_SYMBOL vmlinux 0xd970fa05 inet_accept
+EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd9a2d964 jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0xd9ab1836 generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0xd9c94472 elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0xd9c9678a pcim_iounmap
+EXPORT_SYMBOL vmlinux 0xd9d8269d md_register_thread
+EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic
+EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf
+EXPORT_SYMBOL vmlinux 0xda1f497e dst_alloc
+EXPORT_SYMBOL vmlinux 0xda24cf56 pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0xda38f9f8 take_over_console
+EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue
+EXPORT_SYMBOL vmlinux 0xda69c1ad phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0xda6d0c71 ps2_drain
+EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xdac7eda2 pci_get_device
+EXPORT_SYMBOL vmlinux 0xdacde51f security_path_rmdir
+EXPORT_SYMBOL vmlinux 0xdb7ba8c7 i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0xdbb5ad5c node_to_cpumask_map
+EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbe041df vga_client_register
+EXPORT_SYMBOL vmlinux 0xdbe1ec96 page_put_link
+EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done
+EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems
+EXPORT_SYMBOL vmlinux 0xdc16936f inet_ioctl
+EXPORT_SYMBOL vmlinux 0xdc1873ab file_fsync
+EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize
+EXPORT_SYMBOL vmlinux 0xdc4a52ac skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0xdc53c8c0 pci_write_vpd
+EXPORT_SYMBOL vmlinux 0xdc6a1eec netif_napi_del
+EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family
+EXPORT_SYMBOL vmlinux 0xdca81605 pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close
+EXPORT_SYMBOL vmlinux 0xdcbe2115 tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0xdccb0399 skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0xdccee5eb audit_log_end
+EXPORT_SYMBOL vmlinux 0xdce1ce59 remove_proc_entry
+EXPORT_SYMBOL vmlinux 0xdd170500 jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0xdd2cc24d tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0xdd2e3410 tcp_child_process
+EXPORT_SYMBOL vmlinux 0xdd4d1558 dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0xdd8d0dff acpi_bus_add
+EXPORT_SYMBOL vmlinux 0xdda69b04 kthread_create
+EXPORT_SYMBOL vmlinux 0xddeb6c92 blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0xde02d10c __mmc_claim_host
+EXPORT_SYMBOL vmlinux 0xde0bdcff memset
+EXPORT_SYMBOL vmlinux 0xde1e0e80 slow_work_cancel
+EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending
+EXPORT_SYMBOL vmlinux 0xde497000 pci_release_regions
+EXPORT_SYMBOL vmlinux 0xde7107b2 nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type
+EXPORT_SYMBOL vmlinux 0xde87588f deny_write_access
+EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages
+EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size
+EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock
+EXPORT_SYMBOL vmlinux 0xdef6cac2 netpoll_setup
+EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices
+EXPORT_SYMBOL vmlinux 0xdf0e29c0 acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL vmlinux 0xdf2330e3 do_sync_read
+EXPORT_SYMBOL vmlinux 0xdf2dbe8c del_gendisk
+EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval
+EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol
+EXPORT_SYMBOL vmlinux 0xdf639e1c dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0xdf82a843 block_write_full_page
+EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay
+EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdfb06d5b blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0xdfb2fe9a dcache_dir_open
+EXPORT_SYMBOL vmlinux 0xdfb668e2 inet_release
+EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init
+EXPORT_SYMBOL vmlinux 0xdfde5626 simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0xdfdea6ad d_add_ci
+EXPORT_SYMBOL vmlinux 0xe00e20c8 sync_blockdev
+EXPORT_SYMBOL vmlinux 0xe03656f3 security_task_getsecid
+EXPORT_SYMBOL vmlinux 0xe041c4a3 neigh_destroy
+EXPORT_SYMBOL vmlinux 0xe046e40b pneigh_lookup
+EXPORT_SYMBOL vmlinux 0xe05cc19f cfb_imageblit
+EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe0993fde max8925_reg_write
+EXPORT_SYMBOL vmlinux 0xe0a75bbe unregister_key_type
+EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event
+EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free
+EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort
+EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0xe0dd2497 compat_mc_getsockopt
+EXPORT_SYMBOL vmlinux 0xe0efca32 install_exec_creds
+EXPORT_SYMBOL vmlinux 0xe0f9cfa9 blk_sync_queue
+EXPORT_SYMBOL vmlinux 0xe11210b4 tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial
+EXPORT_SYMBOL vmlinux 0xe117fad1 lro_receive_frags
+EXPORT_SYMBOL vmlinux 0xe12753ce x86_dma_fallback_dev
+EXPORT_SYMBOL vmlinux 0xe127e645 sock_map_fd
+EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0xe13bba2f inet_add_protocol
+EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors
+EXPORT_SYMBOL vmlinux 0xe13fc7b5 generic_readlink
+EXPORT_SYMBOL vmlinux 0xe16986a5 blk_complete_request
+EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe1893a8e sk_reset_txq
+EXPORT_SYMBOL vmlinux 0xe190fa86 blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0xe19abd07 kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xe1d5d0ef xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0xe1edc10e i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0xe217421e simple_setsize
+EXPORT_SYMBOL vmlinux 0xe222b10f fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0xe2280c64 xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xe22d2d0a ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0xe22f9de4 blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf
+EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64
+EXPORT_SYMBOL vmlinux 0xe2517460 register_quota_format
+EXPORT_SYMBOL vmlinux 0xe27b85c2 pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0xe2937899 mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0xe296d620 qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0xe298f819 blk_run_queue
+EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64
+EXPORT_SYMBOL vmlinux 0xe2ac33f1 pnp_is_active
+EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp
+EXPORT_SYMBOL vmlinux 0xe2f4d38c follow_down
+EXPORT_SYMBOL vmlinux 0xe2fbe661 inode_set_bytes
+EXPORT_SYMBOL vmlinux 0xe31bb51e request_key_async
+EXPORT_SYMBOL vmlinux 0xe3229304 dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xe34dd024 rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0xe3502ff9 dm_exception_store_create
+EXPORT_SYMBOL vmlinux 0xe356c66a cpu_core_map
+EXPORT_SYMBOL vmlinux 0xe36c039f sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0xe39b563a filemap_flush
+EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf
+EXPORT_SYMBOL vmlinux 0xe3d8c269 scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0xe3f24fd9 pci_dev_get
+EXPORT_SYMBOL vmlinux 0xe3fa0132 grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler
+EXPORT_SYMBOL vmlinux 0xe400a41d dev_uc_flush
+EXPORT_SYMBOL vmlinux 0xe4076e27 page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0xe428662c bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT
+EXPORT_SYMBOL vmlinux 0xe4410512 jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0xe4526f31 kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem
+EXPORT_SYMBOL vmlinux 0xe4583069 blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0xe4586dcb kernel_listen
+EXPORT_SYMBOL vmlinux 0xe461bf9c __free_pages
+EXPORT_SYMBOL vmlinux 0xe4670d16 blk_plug_device
+EXPORT_SYMBOL vmlinux 0xe484e35f ioread32
+EXPORT_SYMBOL vmlinux 0xe492d66b generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xe49fa37b n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0xe4b24b8c __next_cpu
+EXPORT_SYMBOL vmlinux 0xe4bf206e blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0xe4df6985 set_pages_array_wb
+EXPORT_SYMBOL vmlinux 0xe4e2e523 elv_rb_del
+EXPORT_SYMBOL vmlinux 0xe4f0a212 qdisc_list_del
+EXPORT_SYMBOL vmlinux 0xe4f8a33c dquot_free_inode
+EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe52947e7 __phys_addr
+EXPORT_SYMBOL vmlinux 0xe52cbb65 pv_mmu_ops
+EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe
+EXPORT_SYMBOL vmlinux 0xe531c136 scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0xe56806da pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0xe568eaad scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0xe56e36b8 journal_set_features
+EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton
+EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5a1617b seq_path
+EXPORT_SYMBOL vmlinux 0xe5b8b52c splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0xe5c7843f nla_reserve
+EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5cfbef8 ether_setup
+EXPORT_SYMBOL vmlinux 0xe5deeb1e idr_for_each
+EXPORT_SYMBOL vmlinux 0xe5e95591 napi_gro_frags
+EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe5f316f9 slow_work_sleep_till_thread_needed
+EXPORT_SYMBOL vmlinux 0xe5f9edd6 genl_register_ops
+EXPORT_SYMBOL vmlinux 0xe61bc795 unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0xe6362437 registered_fb
+EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid
+EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6c2f5c5 bd_release
+EXPORT_SYMBOL vmlinux 0xe6c5c2e1 dev_set_mtu
+EXPORT_SYMBOL vmlinux 0xe6e258ed arp_send
+EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic
+EXPORT_SYMBOL vmlinux 0xe71d86ab inet_frag_find
+EXPORT_SYMBOL vmlinux 0xe73a0446 phy_disconnect
+EXPORT_SYMBOL vmlinux 0xe7413fe5 skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy
+EXPORT_SYMBOL vmlinux 0xe77f6f14 seq_write
+EXPORT_SYMBOL vmlinux 0xe79b0a17 journal_extend
+EXPORT_SYMBOL vmlinux 0xe7b44d6a tcp_prot
+EXPORT_SYMBOL vmlinux 0xe7b65c97 con_copy_unimap
+EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7e4b6be free_buffer_head
+EXPORT_SYMBOL vmlinux 0xe807a5a6 wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node
+EXPORT_SYMBOL vmlinux 0xe8130791 i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0xe81e5809 mddev_congested
+EXPORT_SYMBOL vmlinux 0xe825b51f skb_append
+EXPORT_SYMBOL vmlinux 0xe82a6559 devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0xe84803c6 tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0xe84ddb9d sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0xe87325fb unregister_console
+EXPORT_SYMBOL vmlinux 0xe874db33 __netdev_alloc_page
+EXPORT_SYMBOL vmlinux 0xe875e03c cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss
+EXPORT_SYMBOL vmlinux 0xe883981d netlink_dump_start
+EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit
+EXPORT_SYMBOL vmlinux 0xe8f36d98 tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xe8ff359e dm_register_target
+EXPORT_SYMBOL vmlinux 0xe9024201 fput
+EXPORT_SYMBOL vmlinux 0xe9063fdd ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh
+EXPORT_SYMBOL vmlinux 0xe90aa4e9 rb_insert_color
+EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module
+EXPORT_SYMBOL vmlinux 0xe914e41e strcpy
+EXPORT_SYMBOL vmlinux 0xe91949bf __blk_end_request_all
+EXPORT_SYMBOL vmlinux 0xe9940e46 xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xe9bdd679 bmap
+EXPORT_SYMBOL vmlinux 0xe9d907af dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0xe9feaf43 eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea147363 printk
+EXPORT_SYMBOL vmlinux 0xea26b636 bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0xea36d715 fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0xea88a7b4 scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data
+EXPORT_SYMBOL vmlinux 0xeab059ef bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0xeab6d11b ipv4_specific
+EXPORT_SYMBOL vmlinux 0xeac4216b unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs
+EXPORT_SYMBOL vmlinux 0xeacb187e init_buffer
+EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump
+EXPORT_SYMBOL vmlinux 0xead80f0e sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay
+EXPORT_SYMBOL vmlinux 0xeaf9f607 atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0xeb1bbcfa __devm_release_region
+EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq
+EXPORT_SYMBOL vmlinux 0xeb43fb39 lookup_bdev
+EXPORT_SYMBOL vmlinux 0xeb535557 jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xeb7333c6 abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n
+EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp
+EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull
+EXPORT_SYMBOL vmlinux 0xec125c02 jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns
+EXPORT_SYMBOL vmlinux 0xec53c350 kmem_cache_create
+EXPORT_SYMBOL vmlinux 0xec62b4f5 sock_recvmsg
+EXPORT_SYMBOL vmlinux 0xec6dc1bd pipe_to_file
+EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xec7b23f4 iget5_locked
+EXPORT_SYMBOL vmlinux 0xecbf5d4c arp_broken_ops
+EXPORT_SYMBOL vmlinux 0xeccae092 put_io_context
+EXPORT_SYMBOL vmlinux 0xecf30585 blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0xecf43f5f netif_napi_add
+EXPORT_SYMBOL vmlinux 0xed24fdac __dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xed2d7646 nf_ct_attach
+EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xed97e807 bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xeda5175b jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xedb03500 pci_do_scan_bus
+EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedc03953 iounmap
+EXPORT_SYMBOL vmlinux 0xee128fb3 i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee3231f6 ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0xee3efc3f pcim_enable_device
+EXPORT_SYMBOL vmlinux 0xee7bed34 neigh_seq_next
+EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices
+EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeec13080 register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0xeed50e96 pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0xef1e603b ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0xef4b282e freeze_super
+EXPORT_SYMBOL vmlinux 0xef5038cd cdev_index
+EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc
+EXPORT_SYMBOL vmlinux 0xef654409 netif_device_detach
+EXPORT_SYMBOL vmlinux 0xef6daf4e __blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool
+EXPORT_SYMBOL vmlinux 0xef783662 pci_iounmap
+EXPORT_SYMBOL vmlinux 0xef90a29a open_exec
+EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override
+EXPORT_SYMBOL vmlinux 0xefa605f6 inet_select_addr
+EXPORT_SYMBOL vmlinux 0xefbfaa4e mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0xefc2c17f tty_port_init
+EXPORT_SYMBOL vmlinux 0xefc5af23 put_mnt_ns
+EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status
+EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock
+EXPORT_SYMBOL vmlinux 0xeff38d02 blk_make_request
+EXPORT_SYMBOL vmlinux 0xeff40f2c mmc_suspend_host
+EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list
+EXPORT_SYMBOL vmlinux 0xf02fccf1 inet6_getname
+EXPORT_SYMBOL vmlinux 0xf0343b86 tty_port_hangup
+EXPORT_SYMBOL vmlinux 0xf04a9139 generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be
+EXPORT_SYMBOL vmlinux 0xf0741b12 path_get
+EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up
+EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0xf0a515e9 bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0xf0b16cbb __netif_schedule
+EXPORT_SYMBOL vmlinux 0xf0b73e97 abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0xf0b79e90 tc_classify
+EXPORT_SYMBOL vmlinux 0xf0d8b7f9 dm_table_get_md
+EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf
+EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail
+EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xf1018303 simple_transaction_release
+EXPORT_SYMBOL vmlinux 0xf10de535 ioread8
+EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit
+EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user
+EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32
+EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem
+EXPORT_SYMBOL vmlinux 0xf178e35e vga_switcheroo_register_client
+EXPORT_SYMBOL vmlinux 0xf1848b1a i2c_release_client
+EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1e31c5f mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun
+EXPORT_SYMBOL vmlinux 0xf1f28317 md_write_end
+EXPORT_SYMBOL vmlinux 0xf203b4c0 scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0xf2082e27 dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq
+EXPORT_SYMBOL vmlinux 0xf2193b2f get_sb_bdev
+EXPORT_SYMBOL vmlinux 0xf22009b6 phy_attach
+EXPORT_SYMBOL vmlinux 0xf220e51d sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0xf22b8d11 kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0xf2320c79 netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0xf23b8aa0 iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0xf253fa65 mutex_trylock
+EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2ad3c20 path_lookup
+EXPORT_SYMBOL vmlinux 0xf2c22683 inet_stream_connect
+EXPORT_SYMBOL vmlinux 0xf2d64c6e fasync_helper
+EXPORT_SYMBOL vmlinux 0xf2e672bf register_framebuffer
+EXPORT_SYMBOL vmlinux 0xf30ca255 nf_log_unregister
+EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform
+EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name
+EXPORT_SYMBOL vmlinux 0xf32ac385 uart_add_one_port
+EXPORT_SYMBOL vmlinux 0xf3321f00 tc_classify_compat
+EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq
+EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user
+EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf33e52ac register_cdrom
+EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf35ad0af should_remove_suid
+EXPORT_SYMBOL vmlinux 0xf36ead2d ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf392820e blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3c04901 tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xf3d287a2 dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0xf40f5626 dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0xf420f6bb gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xf4286391 rfkill_destroy
+EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0xf45d623f request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0xf4703c8c __skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xf47bece3 netif_device_attach
+EXPORT_SYMBOL vmlinux 0xf48bf6a6 tty_write_room
+EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask
+EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit
+EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced
+EXPORT_SYMBOL vmlinux 0xf4cd4cfc mutex_unlock
+EXPORT_SYMBOL vmlinux 0xf4cf7e6d file_remove_suid
+EXPORT_SYMBOL vmlinux 0xf4d945dd __inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0xf4dec7fd rt6_lookup
+EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf501a2af mdio_bus_type
+EXPORT_SYMBOL vmlinux 0xf5108e2f sg_miter_stop
+EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n
+EXPORT_SYMBOL vmlinux 0xf562cab7 dev_trans_start
+EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xf5d3af1a uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0xf5db06ed tcp_v4_remember_stamp
+EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf5eccd99 dentry_unhash
+EXPORT_SYMBOL vmlinux 0xf5edbbe9 generic_removexattr
+EXPORT_SYMBOL vmlinux 0xf6027dc0 generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock
+EXPORT_SYMBOL vmlinux 0xf617ac8d __pagevec_release
+EXPORT_SYMBOL vmlinux 0xf65a2b5e iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0xf66ca161 __dst_free
+EXPORT_SYMBOL vmlinux 0xf6894629 kill_block_super
+EXPORT_SYMBOL vmlinux 0xf6a38444 touch_atime
+EXPORT_SYMBOL vmlinux 0xf6a45227 rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0xf6b30e5a ppp_output_wakeup
+EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table
+EXPORT_SYMBOL vmlinux 0xf6d28a67 vfs_rename
+EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf724458d xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0xf7333f1f serio_open
+EXPORT_SYMBOL vmlinux 0xf74f234e dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0xf7584a9c find_font
+EXPORT_SYMBOL vmlinux 0xf78946b3 input_event
+EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0xf7f41766 in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set
+EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf8190abb __alloc_skb
+EXPORT_SYMBOL vmlinux 0xf81fdd9d uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xf824381b scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects
+EXPORT_SYMBOL vmlinux 0xf84093ef kmem_cache_size
+EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header
+EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle
+EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work
+EXPORT_SYMBOL vmlinux 0xf8a50e5b init_special_inode
+EXPORT_SYMBOL vmlinux 0xf8c5ea1a register_key_type
+EXPORT_SYMBOL vmlinux 0xf8cf670e nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0xf8d1f867 genphy_resume
+EXPORT_SYMBOL vmlinux 0xf9086b97 writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0xf910f429 kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0xf9188c88 skb_dequeue
+EXPORT_SYMBOL vmlinux 0xf91dbaf6 agp_backend_acquire
+EXPORT_SYMBOL vmlinux 0xf928ad19 simple_write_begin
+EXPORT_SYMBOL vmlinux 0xf9389ae1 inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0xf93a7286 phy_connect
+EXPORT_SYMBOL vmlinux 0xf94298b8 pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0xf954cf6f generic_file_llseek
+EXPORT_SYMBOL vmlinux 0xf95f784e vfs_write
+EXPORT_SYMBOL vmlinux 0xf96dec71 tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0xf975b858 elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0xf9786dd7 abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0xf97ae9eb uart_suspend_port
+EXPORT_SYMBOL vmlinux 0xf989ad02 xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep
+EXPORT_SYMBOL vmlinux 0xf9b19d12 tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0xf9e232c7 mmc_host_enable
+EXPORT_SYMBOL vmlinux 0xf9f0974c get_sb_nodev
+EXPORT_SYMBOL vmlinux 0xf9feeaa8 mb_cache_create
+EXPORT_SYMBOL vmlinux 0xfa0f5667 elv_add_request
+EXPORT_SYMBOL vmlinux 0xfa1c65fc devm_iounmap
+EXPORT_SYMBOL vmlinux 0xfa400614 scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0xfa4a0191 xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0xfa5b26b4 cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0xfa86a122 agp_copy_info
+EXPORT_SYMBOL vmlinux 0xfae5879b vga_put
+EXPORT_SYMBOL vmlinux 0xfaf5e76b abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32
+EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent
+EXPORT_SYMBOL vmlinux 0xfb05fa34 dev_gro_receive
+EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs
+EXPORT_SYMBOL vmlinux 0xfb1ba07b save_mount_options
+EXPORT_SYMBOL vmlinux 0xfb2dbee8 pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0xfb5d5467 bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb808b3f max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace
+EXPORT_SYMBOL vmlinux 0xfb9f427e pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0xfba0b4d3 udp_ioctl
+EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xfbc968b3 tcf_register_action
+EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc3310ea __lock_page
+EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc77ac5c pci_disable_device
+EXPORT_SYMBOL vmlinux 0xfc7ca869 update_region
+EXPORT_SYMBOL vmlinux 0xfc9eedeb log_wait_commit
+EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcb025e0 jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcd3fd5a backlight_force_update
+EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq
+EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfcffc4e1 elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0xfd132ca2 rtnl_create_link
+EXPORT_SYMBOL vmlinux 0xfd2537ae flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xfd2acf1e input_unregister_handle
+EXPORT_SYMBOL vmlinux 0xfd2b44a8 md_unregister_thread
+EXPORT_SYMBOL vmlinux 0xfd43bae3 __brelse
+EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0xfd757eb8 napi_skb_finish
+EXPORT_SYMBOL vmlinux 0xfd79e6b9 vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception
+EXPORT_SYMBOL vmlinux 0xfd871931 sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0xfd9ecb65 textsearch_unregister
+EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be
+EXPORT_SYMBOL vmlinux 0xfdc31221 textsearch_destroy
+EXPORT_SYMBOL vmlinux 0xfdc747af tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0xfdd7853f sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0xfdde669c d_delete
+EXPORT_SYMBOL vmlinux 0xfde7ea96 __xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state
+EXPORT_SYMBOL vmlinux 0xfe081fe4 spi_dv_device
+EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids
+EXPORT_SYMBOL vmlinux 0xfe2c3a8e mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz
+EXPORT_SYMBOL vmlinux 0xfe712c54 agp_free_page_array
+EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfe816cc8 __bforget
+EXPORT_SYMBOL vmlinux 0xfe9bb445 unlock_new_inode
+EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin
+EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock
+EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfee2c687 tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff074b98 udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start
+EXPORT_SYMBOL vmlinux 0xff2751d7 vfs_mknod
+EXPORT_SYMBOL vmlinux 0xff29ddf7 test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0xff475473 cdrom_release
+EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource
+EXPORT_SYMBOL vmlinux 0xff7ebd18 neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int
+EXPORT_SYMBOL vmlinux 0xff97f9c8 ip6_xmit
+EXPORT_SYMBOL vmlinux 0xff984224 call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffa0373b call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0xffa69024 __pci_register_driver
+EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function
+EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0x7060bf0a crypto_aes_encrypt_x86
+EXPORT_SYMBOL_GPL arch/x86/crypto/aes-x86_64 0xe409b491 crypto_aes_decrypt_x86
+EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x1b1f2bda speedstep_get_freqs
+EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0x2b67f096 speedstep_get_frequency
+EXPORT_SYMBOL_GPL arch/x86/kernel/cpu/cpufreq/speedstep-lib 0xd7ab2c0c speedstep_detect_processor
+EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00c5aad2 kvm_requeue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x022e40f0 __tracepoint_kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x03e361cc gfn_to_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x06011d74 emulate_instruction
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12400901 kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x14a0d897 kvm_before_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19701b2c kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19790ac1 kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1c15d151 gfn_to_memslot_unaliased
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x218e105c kvm_set_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x22175f1e kvm_set_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x227fa501 kvm_require_cpl
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2b590467 load_pdptrs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2feb9f79 kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x30453369 kvm_release_page_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x30de41a5 kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x311467c5 kvm_vcpu_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x347b7e50 kvm_emulate_halt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3614a586 kvm_mmu_load
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3b7fac3f kvm_read_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e775e6d kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3fdfa0c6 kvm_mmu_get_spte_hierarchy
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x41e741d2 kvm_resched
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x492a7192 kvm_write_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x50699201 kvm_get_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5325f2a5 kvm_x86_ops
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x541595f5 kvm_fast_pio_out
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x59c1379a kvm_read_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5b4975e9 kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5c11b13b kvm_get_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6054f2ee kvm_is_linear_rip
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x659893a4 kvm_put_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x688e3cc0 kvm_set_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6a045c86 kvm_get_guest_memory_type
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d57a8ba kvm_task_switch
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d66f37b kvm_set_cr3
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6d71c9e3 kvm_set_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x70ce1dec kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x70f709dd kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x722b1dfb kvm_lmsw
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x737f30ff kvm_set_cr0
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7453bb3c kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x75883419 kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x75daf3ce kvm_queue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x773a5547 kvm_vcpu_cache
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7b244fc4 emulator_write_emulated
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8782b1d4 kvm_release_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x89863c89 kvm_report_emulation_failure
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8c43efd4 kvm_queue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x94303627 kvm_after_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x95ea3920 kvm_set_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97399b90 kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99905e08 __tracepoint_kvm_inj_virq
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a67f5ca kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9fa41433 kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0506648 kvm_get_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7bc9025 kvm_clear_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab060885 fx_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb4e8c37a kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc5ad7f3 kvm_get_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbce814f2 kvm_inject_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd86163a kvm_handle_fault_on_reboot
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd94103b kvm_mmu_set_base_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc2ff2e2a kvm_set_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc7cf3197 kvm_get_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc7f88510 kvm_clear_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc8ded585 kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd206d6f4 is_error_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdefdff78 gfn_to_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf2ce186 __kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe97f07de kvm_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xed8d3730 kvm_set_cr4
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf404383d kvm_get_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf6e3af4c gfn_to_hva
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0467fc5e crypto_aes_set_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab
+EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xaeb85b94 async_memcpy
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x03b7f10f async_syndrome_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xc0e98849 async_gen_syndrome
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x7924c677 async_raid6_datap_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xc8cb1a8b async_raid6_2data_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2f20ed0e __async_tx_find_channel
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x64c7a9bb async_tx_quiesce
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9dc47fc4 async_tx_submit
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xa9821ade async_trigger_callback
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xc9b5e292 async_xor_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xf2a672ba async_xor
+EXPORT_SYMBOL_GPL crypto/cryptd 0x03e3f70e cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x6ff15192 cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x87689120 cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0xafab5f33 cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb028d364 cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xe93907bd cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xea97f937 cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey
+EXPORT_SYMBOL_GPL crypto/twofish_common 0x875f90a7 twofish_setkey
+EXPORT_SYMBOL_GPL drivers/acpi/hed 0xa4ca0d4e unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL drivers/acpi/hed 0xaa3f13f7 register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x012153ce ahci_sht
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2bc9c908 ahci_check_ready
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3bbd7bc9 ahci_set_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5153268f ahci_reset_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x56ae9597 ahci_save_initial_config
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x793b6c14 ahci_kick_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7aa152b5 ahci_print_info
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x81574ee3 ahci_reset_em
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x952e4529 ahci_stop_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa07ffc24 ahci_ops
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa58f0bc3 ahci_init_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xba659fd5 ahci_do_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xed85f58b ahci_start_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0fbb0f8e btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x20623063 btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x34045882 btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x855fa009 btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x95817605 btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa1cbb5fa btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xdc3cfe3f btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfb395085 btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x016f1b5e tpm_show_caps_1_2
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0f9ae6c6 tpm_show_owned
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x12e7ec0a tpm_gen_interrupt
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1f11d49e tpm_write
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x23a91b0b tpm_register_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x269bb2b8 tpm_dev_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x29ab9838 tpm_continue_selftest
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x30502c2f tpm_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x74b9c456 tpm_show_pcrs
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x805c17c6 tpm_show_active
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x83bd121a tpm_pm_suspend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8a516ce1 tpm_show_pubek
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8ebd1f8c tpm_show_temp_deactivated
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x91dc8b94 tpm_show_caps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb04319ce tpm_dev_vendor_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb5b686fd tpm_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb6dc1497 tpm_remove_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb723f720 tpm_pm_resume
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb78b63be tpm_store_cancel
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd2af9f25 tpm_open
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xeae54c35 tpm_get_timeouts
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf0e876fa tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf5623f32 tpm_show_enabled
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xea9b2f51 tpm_bios_log_teardown
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xf1fc220f tpm_bios_log_setup
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x006f21a2 register_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x22b5702d dca_remove_requester
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x4649513b dca3_get_tag
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x7faffcf0 unregister_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x873e75a9 alloc_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x9c16c9ab free_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xd6ac03ad dca_add_requester
+EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0x2fb48f19 amd64_get_dram_hole_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x069a1ffd edac_mc_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x188deeeb edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1fb45c8b edac_device_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x23f49625 edac_pci_handle_pe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2aa7a488 edac_mc_del_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x35da7f2c edac_pci_reset_delay_period
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3826de8e edac_device_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5fefe5ac edac_pci_handle_npe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6978c2aa edac_mc_add_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6b1036b6 edac_mc_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6b78c735 edac_pci_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x741e80da edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x799631fc edac_mc_handle_ue_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7bb221bd edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9daa8883 edac_mc_free
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc31d6233 edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc39948d4 edac_pci_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xccdc8385 edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcea3ac1a edac_mc_handle_ce_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd46026af edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd9161252 edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe81a5f2c edac_mc_alloc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeb244283 edac_device_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeff86fd9 edac_device_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1823885a amd_register_ecc_decoder
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x955c1f76 amd_decode_nb_mce
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2e765d2 amd_unregister_ecc_decoder
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xd0f094a0 ext_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x81cad4fc __max730x_remove
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xae6a681c __max730x_probe
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1757ca3b drm_class_device_register
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x99c8a194 drm_class_device_unregister
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x08227ff6 hid_input_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x0dccc48e hidinput_find_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x0ed8c3ed hidraw_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x0fe7db7e hid_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x13a0ef8d hid_resolv_usage
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x1618c6b9 hid_unregister_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x18c7590e hidinput_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x252ee31d hid_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x36671a3f hidraw_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x44bed2c5 __hid_register_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x4884a601 hid_set_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x48c18886 hid_report_raw_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x5314b244 hid_output_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x53a196ba hid_debug_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x7abd3a26 hidraw_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x804d136f hid_allocate_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x8b504cc6 hid_add_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x910a4a68 hidinput_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x9fb2c134 hid_parse_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc53838f7 hidinput_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc990523e hid_dump_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xca5877e0 hid_destroy_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe1d2412f hid_dump_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xf0fcf8d2 hid_register_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xf7638b52 hid_dump_input
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xfdcb4fdd hid_check_keys_pressed
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x9f7af974 roccat_connect
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x2328d98c usbhid_wait_io
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x5b239b7d usbhid_submit_report
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x7123cb00 usbhid_set_leds
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xbac35db4 hiddev_hid_event
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x1a3b2a13 lis3lv02d_poweron
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x53964a5e lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6e6a9e6d lis3_dev
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x75a47363 lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xac9d8110 lis3lv02d_init_device
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x6464ce6d nforce2_smbus
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x528e3cd8 i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x9b8beeeb i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x71910c4e hpsb_config_rom_ip1394_add
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xb2a0a279 hpsb_config_rom_ip1394_remove
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm
+EXPORT_SYMBOL_GPL drivers/infiniband/hw/ipath/ib_ipath 0x1514b2b2 ipath_debug
+EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xbda310a3 input_ff_create_memless
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1b31d3cb wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x221876f5 wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x23227a90 wm97xx_config_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x257a45c3 wm9705_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2763e042 wm97xx_set_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x38c45899 wm9712_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4dbd32d2 wm97xx_get_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x582e9e78 wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9b5e2592 wm97xx_reg_write
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc32ced80 wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf46e5807 wm9713_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfe11d32e wm97xx_reg_read
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0198eeb6 gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x069f216b gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x072aa497 gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x075c3253 gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1fb4f155 gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2a45a0d7 gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x53567695 gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x54158019 gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5fef4190 gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa0823fc4 gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa1ea8b45 gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa89bf1e0 gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbe8368d2 gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc8a06c84 gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcf7a840c gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdef45825 gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe7c3575b gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xebed79b0 gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x102d66d8 led_classdev_register
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x23784d1a led_classdev_resume
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x5cd8db98 led_classdev_suspend
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x64379bcd led_classdev_unregister
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x24935f26 raid6_call
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xcdc24ab5 raid6_2data_recov
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xdbab0c01 raid6_datap_recov
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x0b828f69 ir_input_nokey
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xa7e0d12a ir_input_init
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xb1fd3ab2 ir_input_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1173de23 __ir_input_register
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x302536a6 get_rc_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x5303809f ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x5f77bf43 ir_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x6cc53e8b ir_raw_event_store
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x780da3db ir_input_unregister
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8f88a0e8 ir_g_keycode_from_table
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8fd647fb ir_register_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x99612455 ir_unregister_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xbd3c5757 ir_raw_event_handle
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xcd717e40 ir_repeat
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x04729224 saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x342db6af saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x47ca1612 saa7146_pgtable_free
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4d897dd7 saa7146_register_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x5c6c4d7b saa7146_devices_lock
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x778ffc9b saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7b7001b2 saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb43dfac3 saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xccc1b44f saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xde99ec18 saa7146_setgpio
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf4d05168 saa7146_unregister_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x2b08e224 saa7146_start_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4c5377d6 saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x6a4e8553 saa7146_stop_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x8dfe995e saa7146_vv_release
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x8e8aae32 saa7146_register_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xdfddc670 saa7146_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf14151cd saa7146_vv_init
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xdd1a3989 microtune_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x7c31aaba mxl5007t_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0xf08816b2 tda18271_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x8a63f3f6 tda827x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x168dd1fd tda829x_probe
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x8ec4ffb5 tda829x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0xdf5a2355 tda9887_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x0058727b tea5761_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xd2035409 tea5761_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x5d04e3bf tea5767_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xb8861bd7 tea5767_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xa746269f simple_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x06769cf7 mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x199e6b65 ir_mantis
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x47a2e405 mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x52aac732 mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5f971458 mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x759e1ffd mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x816a59e2 mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x877546e0 mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8890d6f1 mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xaa5ad848 gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb48ec9c8 mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb70d2943 mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb83a6c43 mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc836ab88 mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd2665bf4 mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf0aabba7 mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf428b4b1 mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xfbcd24a0 mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x123b0002 smscore_register_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1bd9b7de sms_board_event
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1fc703c9 sms_board_setup
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2dca10ab smscore_set_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x369c4c4a smscore_start_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x393f8412 smscore_get_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4f87c9d7 smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6bf28dbd smscore_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x84dbeb7a smscore_getbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9d90ef61 sms_board_lna_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xab2986f8 smscore_putbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd05fa782 smscore_register_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd5e24d2a smsclient_sendrequest
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdc8d5100 smscore_onresponse
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdedfb4da sms_board_led_feedback
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe486c5cb smscore_unregister_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf403667a smscore_register_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfcec2ae3 smscore_get_device_mode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xff969db1 sms_board_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x02602770 ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x4a546da4 ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x574623f0 ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x94c3a601 ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xbbb18850 ttpci_budget_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xe0ec93f7 ttpci_budget_deinit
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xf40ce759 ttpci_budget_debiread
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x28e2ce21 cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x43151ab2 cx231xx_dev_init
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x47d83fce cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x77dd0873 cx231xx_capture_start
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x840912e1 cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x84f27edf cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x94f8817b cx231xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb3130074 cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc4490398 cx231xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe2da1b71 cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfcfa1e73 cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xce7e2e4d cx88_setup_xc3028
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x497dba84 em28xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x565709dd em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc1a9a8d9 em28xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc857a59d em28xx_audio_setup
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xe1c8462e em28xx_isoc_dvb_max_packetsize
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xffea0e70 em28xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x45b99d32 saa7134_ts_qops
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x97e43aff saa7134_g_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xb35fbb9c saa7134_s_std_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xd3f0830c saa7134_s_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xdd58ed1f saa7134_queryctrl
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x18f1bf1b v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x51bbea58 v4l2_i2c_new_subdev_cfg
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x52fa65fd v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x5da38426 v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xbe85c2a8 v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xbf11362a v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-compat-ioctl32 0x1e3c13b6 v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x11b0271d v4l2_int_ioctl_0
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x4021e394 v4l2_int_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xb5744400 v4l2_int_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xf138bfc8 v4l2_int_ioctl_1
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0d4b3c92 v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4331dad5 v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x44e10f3a v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x59dd722f v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8d5235f3 v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9558dd56 v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x99b72610 v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9e154cee v4l2_m2m_poll
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9ef6e230 v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa30644a1 v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa80106d3 v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe84afc05 v4l2_m2m_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf48939a7 v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf7fc282f v4l2_m2m_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x053d8a4e videobuf_read_one
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x07711820 videobuf_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0c3b0a9d videobuf_queue_cancel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x18070cf8 videobuf_next_field
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x215669b2 videobuf_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x22d857de videobuf_read_start
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2839daaf videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2e369ce4 videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x320a3279 videobuf_cgmbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3599daa1 videobuf_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3795c7ac __videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x38e88761 videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x488eb4c0 videobuf_queue_core_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x48d970bd videobuf_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x59066dc3 videobuf_read_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5b3e58f4 videobuf_read_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x616fd605 videobuf_waiton
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6d887bef videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6e95a316 videobuf_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x741dd1e4 videobuf_mmap_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x79452031 videobuf_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9cd7ea21 videobuf_poll_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc449fa5c videobuf_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe8fb6bfe videobuf_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xed47ec2e videobuf_iolock
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x298c855d videobuf_to_dma_contig
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x4a6fc8ed videobuf_dma_contig_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xa83711f2 videobuf_queue_dma_contig_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x10f83f49 videobuf_dma_init_user
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x32c59f50 videobuf_sg_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3ecdd0d6 videobuf_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x44709691 videobuf_sg_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5e64c98e videobuf_dma_init_overlay
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x95241e18 videobuf_dma_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9b091693 videobuf_dma_init_kernel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc06ea17b videobuf_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd1ce4473 videobuf_to_dma
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xee89316c videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfc4c8802 videobuf_dma_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x4efab0d8 videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x7cac2466 videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xe6fb0063 videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x05bee09b v4l2_event_queue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0a49ec5e v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1ba2eba1 v4l2_event_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x26a356d7 v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2d330adc v4l2_event_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4c96153e v4l2_fh_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x635ab907 v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8d36352c v4l2_fh_del
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9a313d28 v4l2_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9cf4fa95 v4l2_event_subscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa0783386 v4l2_event_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa2ee1c47 v4l2_event_dequeue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa8ce275d v4l2_device_disconnect
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbd237c53 v4l2_fh_exit
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc0a71e92 v4l2_fh_add
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc1148495 v4l2_device_set_name
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc124ba82 v4l2_event_pending
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf833f24a v4l2_device_unregister
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3bd418d1 i2o_sg_tablesize
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6bbe372a i2o_dma_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x94b643f3 i2o_dma_map_sg
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x99afc62a i2o_dma_map_single
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xa29f4baf i2o_pool_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xaabb7a61 i2o_dma_realloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb8385afb i2o_pool_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xd109592c i2o_dma_alloc
+EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x1797fcff mc13783_adc_do_conversion
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x11b5f3f0 pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x21c1874b pcf50633_free_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2579a7d1 pcf50633_register_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2fced025 pcf50633_irq_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4ffc8318 pcf50633_write_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x626a6311 pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x63706aca pcf50633_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6ae4d8a9 pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdfb121e4 pcf50633_reg_write
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe404f1da pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xebad7781 pcf50633_read_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x621d1b11 pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xac47e832 pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x36491637 pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x758bc6d1 pcf50633_gpio_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x85af8a01 pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xb232860f pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xcbe34fe5 pcf50633_gpio_get
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x064b0f4a sm501_modify_reg
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x36a9d494 sm501_unit_power
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6a4eef05 sm501_misc_control
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x97ec187a sm501_find_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xaf887391 sm501_set_clock
+EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xf24255d9 ucb1400_adc_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x41fb1cc1 wm8400_set_bits
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x6709f60f wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xb7ae6b3f wm8400_block_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xdd1b6809 wm8400_reg_read
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x383ac4bd cb710_set_irq_handler
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xad3de64d cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xc1c83c1c cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xe52a60f6 cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x199fa568 enclosure_component_register
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x634cfc61 enclosure_register
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x79dd3776 enclosure_for_each_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8139e22e enclosure_add_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8bab0cee enclosure_remove_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x9be9d4bf enclosure_unregister
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb6b88850 enclosure_find
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x024143cc sdhci_add_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x270526e8 sdhci_remove_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x937e2cbb sdhci_resume_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xafcef33b sdhci_alloc_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xde648e81 sdhci_suspend_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe667afe5 sdhci_free_host
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x91f49c26 cfi_cmdset_0200
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xc7848f73 cfi_cmdset_0001
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xee9e74d0 cfi_cmdset_0003
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x17ab8a21 cfi_cmdset_0002
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x459e7d67 cfi_cmdset_0006
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xba99490c cfi_cmdset_0701
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x7147992b cfi_cmdset_0020
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x03f841fc cfi_qry_mode_off
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x55f2ff6c cfi_qry_mode_on
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xe802991a cfi_qry_present
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xb7d12f4e DoC2k_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x8545df92 DoCMil_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xfc66ecaf DoCMilPlus_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x16634139 put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x176db618 register_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x27ed9784 add_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x35e85f60 unregister_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x44032b34 parse_mtd_partitions
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x544b639e mtd_erase_callback
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5bfe5add default_mtd_writev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x60d67a63 register_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x753743b1 del_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x855b1598 __mtd_next_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x88f60947 __put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8b46fc81 mtd_table_mutex
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8e0585ce get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa1a87db1 get_mtd_device_nm
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa931f96f get_sb_mtd
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaf7657f0 deregister_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc37641b9 __get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xee12fb94 kill_mtd_super
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x29e81602 deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x71b3e278 del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x72dfc6d0 register_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd3f8533f add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x335bd421 nand_scan_tail
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x3fe447fd nand_unlock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x977eacca nand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x9dfe244f nand_release
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x9ff729ae nand_scan_ident
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xc7c47f73 nand_lock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xeb36c58a nand_wait_ready
+EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xfe7a09c4 sm_register_device
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x2b81a950 onenand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x85acc566 onenand_release
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x021c867b ubi_open_volume_nm
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3630b0aa ubi_open_volume_path
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4981cb82 ubi_do_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x584c9030 ubi_leb_unmap
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x739bf887 ubi_leb_read
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x86612048 ubi_open_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x90835890 ubi_leb_map
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa83e950d ubi_leb_erase
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb1a165b4 ubi_close_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb342b2e7 ubi_get_volume_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbf7ebdb1 ubi_leb_change
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc0da13aa ubi_leb_write
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd3ba1662 ubi_is_mapped
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x01998fe6 register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x01ec23ea unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0718bbc3 close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x15375f07 can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x31184254 alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3de3f26e open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x456f310f can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x46e3115e free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5b70dd5c can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6deac8f0 alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc0e0827d can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe23c9a11 alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x0389edd7 free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x709b8e6c register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x9be85001 alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe769ed1a unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x1008e91e macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x58b486b4 macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x70f7c2cc macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xd1a26c43 macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0b8fcfc9 mlx4_qp_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1182bb36 mlx4_multicast_detach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x13aa3f75 mlx4_cq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x16be97f4 mlx4_qp_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1ecabe31 mlx4_qp_release_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x24a0405d mlx4_mr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x27c22ef2 mlx4_mr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x333c815f mlx4_cq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x398bdf9a mlx4_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x39ee60cb mlx4_uar_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3db17b0b mlx4_cq_resize
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x44dc3f39 mlx4_srq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x46416dbf mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x46b61698 mlx4_qp_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x47108553 mlx4_mtt_addr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4dbec7c5 mlx4_pd_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x58afe021 mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5e9ec241 mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x65645d4b mlx4_unregister_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x699ffb40 mlx4_pd_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x71833d1b __mlx4_cmd
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x72b6194f mlx4_db_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7b567256 mlx4_qp_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7d4dcd51 mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7dc96b36 mlx4_buf_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x87b1f9b0 mlx4_mr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x905853f5 mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9b021a34 mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9e472923 mlx4_db_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa6233719 mlx4_srq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa63e8398 mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa86cc3e0 mlx4_srq_arm
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xacc0c0c8 mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb4659a23 mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb47515c1 mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb4de67fb mlx4_mtt_init
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb9f9cc34 mlx4_srq_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbba47541 mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbf065d2e mlx4_multicast_attach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbf3c70f0 mlx4_buf_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc9499eae mlx4_register_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc96d74ca mlx4_fmr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd0b46a4b mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd55fb700 mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd98f6d7f mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdf75c890 mlx4_unregister_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe2003e3f mlx4_register_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe6c7fe65 mlx4_uar_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xef022154 mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf336e9f0 mlx4_cq_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf461d719 mlx4_qp_remove
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfb93f92e mlx4_register_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfe8e00c6 mlx4_fmr_free
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9a274bfc usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9e7b5220 usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x17f38cd1 generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x305391c3 rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x6aa7fcfb rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc255188c rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xeced8ecf rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf0529eb5 rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0460fd08 usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x213fa58d usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2229d6eb usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x36c7343d usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4662dd95 usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x595b0e42 usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x78fe16f8 usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa2c186e9 usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa59523bf usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa618f421 usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xab890691 usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xac922c12 usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xacae9f3a usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xacd9d77e usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaf903ec6 usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb8aee004 usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbb58bb6c usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc758119b usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd186fe7b usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd4e1fd7c usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd78d808d usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe042a0dc usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeb99fc57 usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf60b5880 usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x04f5681e i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x05851729 i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x09665616 i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x196abf31 i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x35914cd5 i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x425b6fff i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4cb8ab8b i2400m_cmd_get_state
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6360a1bf i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6a158e8e i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x86f62e1e i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8c16d8c2 i2400m_set_init_config
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9019983a i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa2cff6fe i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc161a654 i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdbcd67dd i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdbd1f9e1 i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe1421943 i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfaa881d6 i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x4cf5614c libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x4c0fe850 iwl_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xbd1ae3c3 iwl_alloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xdd189305 iwl_dealloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x134f8c23 lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1e803ede lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x397caf49 lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x46ffed67 lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5893e5ef lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x595712a0 lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x637b9f76 lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x63d62095 lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6e48d601 lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x810f884e lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x91e7eba9 lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb7ad356e lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc571edfd lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf73b1690 __lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x2a109eb2 lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x43c450dd lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9318b5ff lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xacf967f3 lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb463c780 lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd950a066 lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdbc59728 __lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf279b695 lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x17f95730 if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xc7ab77dc if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x12a5562f p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x52301187 p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x59d26d06 p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x91057183 p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb3cc436b p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb5b9bd31 p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb9781659 p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdb7f1e62 p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfe2e4d7c p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x22cbcb6b rt2800_init_registers
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3406bef4 rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x34f04582 rt2800_init_rfcsr
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x39c45b5b rt2800_mac80211_ops
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x40df7072 rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x54e7eb9f rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x58308a93 rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6adad133 rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7ac2a627 rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7c64e49e rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x85dad904 rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x92f7335e rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x96f3cf63 rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9a8428e8 rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa4ecb013 rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xacf5334f rt2800_init_bbp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc46b9113 rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc7473b69 rt2800_write_txwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xca4d5243 rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcba7c57a rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd6d8c77b rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe128d378 rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeb2f4bb7 rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf34d5f7b rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x18a35ed4 rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2ff155c6 rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x45811e52 rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46a17244 rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x561f870a rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x587803de rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x63960101 rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6efabdf8 rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6f09282c rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7b3fe8fe rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x81f64e5c rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x85e02a13 rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x949b55fa rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x95b7f755 rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb53664e3 rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xba4e1f38 rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbf6a65b6 rt2x00queue_get_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc339bc62 rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcb872497 rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcd85a74e rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd039b240 rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd0cfe3db rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe824bf48 rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2dd7bc7f rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x42b144db rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5a7c2f0e rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5befb964 rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x622c58f8 rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6eb4d8df rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc0a69eb7 rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd9f88e50 rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe1320fa5 rt2x00pci_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x05a47ad5 rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1a71d65d rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1c5ff7fa rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2e9023f4 rt2x00usb_kill_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x46f0f5a7 rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5d248be6 rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6742b67e rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8397b7d5 rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8592cfbe rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8ce29784 rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9bd0e7ad rt2x00usb_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xafb39e45 rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xba719d26 rt2x00usb_vendor_request_large_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc1ea0f91 rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdd595dc7 rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe404c305 rt2x00usb_kick_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x562fa501 wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x6358d1f0 wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x77701fef wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x39a7edea wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x73e93e1d wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x826ae284 wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x9ce566dd wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xfbb6b612 wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x87cf011c acpiphp_register_attention
+EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0xa8ef1081 acpiphp_unregister_attention
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x30affaec pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xb3f7e630 pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xf441ee0f pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x158d8a81 wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x35fc39a8 wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x758d46b5 wm8350_register_led
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa1dedb2f wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xcdff87f6 wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe0a73c4a wm8350_register_regulator
+EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x9a3e14b8 wm8400_register_regulator
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xea725790 fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x01c58d39 iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0f1dcc3e iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1e7afb58 iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x20f00e5f iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x22149190 iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23cf84fe iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23d2731a iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3a18ce6a iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3a1bf2cc iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b3bd8a6 iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3f624db5 __iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x451d7fe3 iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x49d026f8 iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4dbcdc91 iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a85aacd iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b937074 iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x61a9afbf iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6687db83 iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6cbdc086 iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x771bcd4d iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7d41050b iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x83097f3f iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x886197f0 iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8c16cf4d iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a150c4a iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a7456ab iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa861241b iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb13181d4 iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb7944c96 iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb7bb9358 __iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2eec1f2 iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd53bbc72 iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xda509a59 iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdaa4aaeb iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3794d98 iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe68dca1f iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf0d14a85 iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf3a5f005 iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4e191c0 iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4e63363 iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf93c6bd2 iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfc7d43c2 iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0b490ffb iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0ee0c6e7 iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x129e4a0c iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x156b2080 iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2541f054 iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x49007b50 iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5ba9f138 iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9ea4f15f iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc50611f4 iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd42d5374 iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd6e8e48f iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdb07fc3b iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xed2de4f4 iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf32a93cf iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf841da68 iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfe762f09 iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0579370c sas_request_addr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x10410456 sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x143229bb sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1c96ff6b __sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2ee6a9db sas_domain_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3bb57e61 sas_phy_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3e2d9b55 sas_slave_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x40b6e406 sas_target_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6b1c30e1 sas_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x83f74d1f sas_find_local_phy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8686e95c sas_eh_bus_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8c69e241 sas_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x90ff267a sas_change_queue_type
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9773b467 sas_phy_enable
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa6d334fa sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb1998962 sas_ioctl
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb60a79a1 sas_register_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb994220c sas_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd11b0f07 sas_slave_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdb4974e7 sas_unregister_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdb9a3c5a sas_ssp_task_response
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf23eb87b sas_domain_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfc013dde sas_bios_param
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x0fcb6f16 srp_target_free
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x48dc455d srp_transfer_data
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x653fb339 srp_iu_get
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb41340a4 srp_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf6789d07 srp_cmd_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfcf16065 srp_iu_put
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3d23963c scsi_tgt_tsk_mgmt_request
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4f938d9e scsi_tgt_alloc_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5930015f scsi_tgt_free_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x75cf0ef4 scsi_host_put_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9a922591 scsi_tgt_cmd_to_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xa430781d scsi_tgt_it_nexus_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbdc89be3 scsi_tgt_queue_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe466c08d scsi_tgt_it_nexus_create
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf0957c62 scsi_host_get_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x00cc986f iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x126f7ebd iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x28259b8a iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2933e0b3 iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x32921bd3 iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4cd72192 iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4d7091ca iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5425f7cc iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5daf1b67 iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x80d46921 iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x81e48bbe iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x82bc5983 iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8f1f5ce6 iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xad2a9225 iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb982105e iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc03defea iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd115a83d iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd284da9c iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xda878e82 iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdde4b737 iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe5a3d20d iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf7a3fa5c iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x114115cc sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x531239e5 sas_disable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x7c80f642 sas_tlr_supported
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xf3292f07 sas_enable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x08b40c0b srp_rport_add
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1d097ff1 srp_remove_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xaec7c4ba srp_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xd658f00d srp_rport_del
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xfde045b3 srp_attach_transport
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x222409cf spi_bitbang_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x2ca4c8b4 spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x43e05733 spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x5deff5d5 spi_bitbang_stop
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x8796c766 spi_bitbang_setup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xc9ace530 spi_bitbang_start
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x027b0170 comedi_get_device_file_info
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0398e49e comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x535de0bb comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x66de28c1 comedi_pci_auto_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb64d388b comedi_usb_auto_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x77502afe das08_common_detach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xc8a8a658 das08_common_attach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xda7e5b6c labpc_common_detach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xf8831c60 labpc_common_attach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x20a9aed0 ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x5740c120 ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x64e3f288 ni_gpct_device_construct
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x8c317b67 ni_tio_rinsn
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x9128b309 ni_tio_arm
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xafbd931e ni_tio_winsn
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xcd1131d3 ni_tio_insn_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xcfaa78fa ni_tio_init_counter
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x00b7cf43 ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x32777d65 ni_tio_cmd
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x3b1d5c3e ni_tio_cmdtest
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x63bf6e60 ni_tio_cancel
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd5da7082 ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xfd677474 ni_tio_acknowledge_and_confirm
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x27efbf2a osd_WaitEventCreate
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5783d46c osd_WaitEventWait
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x746d1786 osd_PageAlloc
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x79298bac osd_WaitEventSet
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x83911c38 osd_PageFree
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8c5f0f3b osd_WaitEventWaitEx
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0xd3c808de st_register
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2693e520 tm6000_get_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x458561d3 tm6000_set_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x6a2c9069 tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x2c2d96c5 usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x51d2a849 dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5af41c26 usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5b0bffeb usbip_event_add
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x66006fab usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6f93293e usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x890a091b usbip_event_happened
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x8f591929 usbip_dump_urb
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x9860ef1f sockfd_to_socket
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xabd33849 usbip_stop_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xafedbc35 usbip_start_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xc4e0028c usbip_task_init
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xce6455de usbip_stop_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd5d841ec usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf179cd78 usbip_start_eh
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x289065c0 uio_unregister_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x2a33516c __uio_register_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xfbe8e6fa uio_event_notify
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x83e3d734 usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xa7b19bef usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0128ac45 usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2130b499 usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4fa12d19 usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x56466fc5 usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x703d715d usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x73fd586d ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x890c3ed8 usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd20e12ff usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xdc84aa36 usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x12bbe0f9 usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x168b6583 ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x195b79c3 usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1b128373 usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x310ec274 usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x34d9353a ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x400bee88 usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x526c376a usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5430e6d0 usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x573c4db9 usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x868bf15d usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8a49190a usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8dd3298b usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x963af718 usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa9e26531 usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc6f2711a usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xed709ad6 usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xee919e00 usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf9e6d8ce usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x22530898 usb_stor_probe1
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2692c9d3 usb_stor_bulk_transfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3593b641 usb_stor_bulk_transfer_sg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3e53e0cc usb_stor_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4374f17a usb_stor_probe2
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x510f44f4 usb_stor_CB_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x51119f88 usb_stor_bulk_srb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x58c205a0 usb_stor_post_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5c12624a usb_stor_Bulk_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6033b210 usb_stor_pre_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x64d159ec usb_stor_set_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x65c10358 usb_usual_ignore_device
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7179d1ab usb_stor_Bulk_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x79fe8b92 usb_stor_ctrl_transfer
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7daa9f40 usb_stor_suspend
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8a8b04d9 fill_inquiry_response
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9a1171c1 usb_stor_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xada5bd52 usb_stor_clear_halt
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcbcb6906 usb_stor_reset_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdf9a24e5 usb_stor_control_msg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xeadad923 usb_stor_transparent_scsi_command
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf37aae54 usb_stor_access_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xffe13734 usb_stor_CB_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0860f204 __wa_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x2e8c3f37 wa_urb_enqueue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x8d144581 wa_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xd403800c rpipe_ep_disable
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xddaa714f wa_urb_dequeue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x06602d42 wusbhc_rh_resume
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0e0fbf4e wusbhc_rh_suspend
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x104cad84 wusbhc_b_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x315651f4 __wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3ca0faa1 wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x422b2470 wusbhc_handle_dn
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5cfa49ce wusbhc_b_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x66bbc12c wusbhc_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x68713a76 wusbhc_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6f44f7a4 wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x980e8eb2 wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb8c18bec wusbhc_reset_all
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc0ddb34d wusbhc_rh_control
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc8ae1e22 wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xed90523f wusbhc_chid_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf1ab9951 wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x25cb293b i1480_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xe7c9c000 i1480_rceb_check
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xf287382a i1480_fw_upload
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x05be18d9 uwb_rts_cts_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x23404b41 uwb_pca_base_priority_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x5e3bf8bc uwb_phy_rate_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x881882f7 uwb_phy_rate_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x91e28dcb uwb_rts_cts_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x9d7ba8b7 uwb_ack_policy_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd6c27f8d uwb_ack_policy_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd8ff8faa uwb_pca_base_priority_show
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x08960371 umc_device_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0ac319a6 umc_controller_reset
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x20cfa61b umc_bus_type
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x60b66957 umc_device_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8c3d68fc __umc_driver_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x973d325a umc_driver_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe085d00b umc_match_pci_id
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xf2d8a933 umc_device_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b05d42e uwb_rsv_modify
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0c52daca uwb_rc_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x13d30560 uwb_pal_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1a590510 uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1de729be uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x213e832a uwb_notifs_deregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2906d36c uwb_notifs_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2b37a710 uwb_radio_stop
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2b6e125f uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2bb1aced uwb_est_find_size
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x38e06f47 uwb_radio_start
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3a764d16 uwb_rsv_terminate
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5bfea10c uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x65744b38 __uwb_rc_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6f66f6b6 uwb_rc_post_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7b271ad9 uwb_rsv_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8af83675 uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c803e2a uwb_rsv_accept
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9207958a uwb_rc_alloc
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x93560c96 uwb_rsv_establish
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9def0fbe uwb_rc_neh_error
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9ee3a8e2 uwb_rc_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9f453d76 uwb_pal_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa21eb731 uwb_rc_ie_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa4bb4ca9 uwb_rc_vcmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa80af4e0 uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbcb6a69c uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc704ca6a uwb_dev_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd665721a uwb_rsv_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd97d9cda uwb_dev_for_each
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdf118182 uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe25861ae uwb_rc_put
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe4e0961b uwb_rc_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xea1e9ef2 uwb_rc_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xed836295 uwb_rc_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf6aa8d9c uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xff4cfd76 uwb_pal_register
+EXPORT_SYMBOL_GPL drivers/uwb/whci 0xd7007972 whci_wait_for
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x02cb46c2 wlp_neighborhood_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0f0b6501 wlp_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0fd27c22 wlp_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x18ab7a50 wlp_eda_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2758dfa2 wlp_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x28ce1896 wlp_dev_serial_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x29af71f6 wlp_uuid_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2f744d25 wlp_dev_model_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x30aaf4de wlp_dev_serial_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x30dc9caa wlp_dev_prim_OUI_sub_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x33d7b84a wlp_dev_prim_OUI_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4f0a6d00 wlp_dev_prim_subcat_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x52f076fb wlp_dev_prim_subcat_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x554000e8 wlp_wss_activate_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5dac02ff wlp_prepare_tx_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5e4416f6 wlp_dev_prim_OUI_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7244d0be wlp_dev_prim_category_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x74acd517 wlp_wss_activate_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x825b65b7 wlp_dev_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8525ed85 wlp_dev_model_nr_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x85f3c35c wlp_dev_manufacturer_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8c1b7678 wlp_uuid_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x90b7bf94 wlp_dev_model_nr_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9beb846f wlp_dev_prim_category_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc7fd434f wlp_wss_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcb287329 wlp_receive_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcbb37a5b wlp_dev_prim_OUI_sub_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe064ddf8 wlp_dev_manufacturer_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe2d0645b wlp_dev_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe8c8bf09 wlp_wss_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe9550776 wlp_dev_model_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf4077e2d wlp_eda_store
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x123bdee1 ili9320_write
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x417cca99 ili9320_suspend
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5b50c6a7 ili9320_probe_spi
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x6ab9bbba ili9320_write_regs
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8ddb5a9c ili9320_resume
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8dff9ac8 ili9320_remove
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xa149c8cc ili9320_shutdown
+EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x2c151c03 fb_ddc_read
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xa544be30 fb_sys_read
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xc76835dc fb_sys_write
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x2393c3b3 sis_malloc_new
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x35b7c3fc sis_free_new
+EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys
+EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x5e6290a3 viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x1f0a66d8 w1_touch_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x409bb071 w1_write_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x6fad7e2f w1_write_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xb9ab73ab w1_read_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xd196ff2f w1_reset_bus
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xe0b9ee38 w1_reset_select_slave
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xe6448c21 w1_read_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xf5afee80 w1_next_pullup
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x038c4c78 dlm_posix_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x138a119f dlm_posix_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xccfc710d dlm_posix_get
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x86e1e593 exportfs_decode_fh
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xea25c798 exportfs_encode_fh
+EXPORT_SYMBOL_GPL fs/fat/fat 0x117dd945 fat_getattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x1ad3fd1f fat_free_clusters
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3bcb42a4 fat_detach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3f4d36af fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3fd34fe9 fat_setattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x4c78753b fat_search_long
+EXPORT_SYMBOL_GPL fs/fat/fat 0x4d58beac fat_alloc_new_dir
+EXPORT_SYMBOL_GPL fs/fat/fat 0x57bb6a10 fat_add_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x6bca6913 fat_fill_super
+EXPORT_SYMBOL_GPL fs/fat/fat 0x7301e5c0 fat_flush_inodes
+EXPORT_SYMBOL_GPL fs/fat/fat 0x87a2698c __fat_fs_error
+EXPORT_SYMBOL_GPL fs/fat/fat 0x904159f8 fat_build_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xa48e0287 fat_scan
+EXPORT_SYMBOL_GPL fs/fat/fat 0xc8146490 fat_time_unix2fat
+EXPORT_SYMBOL_GPL fs/fat/fat 0xea94e63a fat_remove_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0xf64e008f fat_sync_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xfbeb840f fat_attach
+EXPORT_SYMBOL_GPL fs/fat/fat 0xfedde4c8 fat_dir_empty
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x03917bf9 nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x7d18564b nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa201fa91 nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa2a150af nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xaa6637a9 nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x6d391717 nfsacl_encode
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x918e6bf3 nfsacl_decode
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x22cf4547 o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x27ca44c3 o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x671eddd5 o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7bc29e20 o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbce375a9 o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd2d15d84 o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe577fe85 o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0d1a183f dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x2fad8458 dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x491752c2 dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7f9e9c8d dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8ad70bc3 dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa35e9f56 dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x38d893f9 ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x3fa29cb9 ocfs2_plock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb2457f9f ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x2e1d43cf lzo1x_1_compress
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs
+EXPORT_SYMBOL_GPL net/802/garp 0x31091381 garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0x7a6b17e1 garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0xa6105cc0 garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0xaa087e35 garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0xbf35dad5 garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0xc8ecc2d8 garp_register_application
+EXPORT_SYMBOL_GPL net/802/stp 0x7537933e stp_proto_unregister
+EXPORT_SYMBOL_GPL net/802/stp 0xe8cdf383 stp_proto_register
+EXPORT_SYMBOL_GPL net/ax25/ax25 0x65efa5b0 ax25_register_pid
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x948ae284 bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x058157c9 dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x06ca94d5 dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0a7c2aad compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x251c9708 compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2bdb31c7 dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d0cdb6a dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2f8efcac dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3f3e1487 dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x424f08ff dccp_insert_option_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x54c1a740 dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x674c2a02 dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6f7f61d2 dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x72c51bed dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x736f0503 dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7bf84d3a dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7c0dd114 dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8097aa70 dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x82c9802f dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x85e3f1e8 dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x882939b8 dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8bc6542d dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x91d75587 dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x98e89166 dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9e8870a4 dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9f826d09 dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9fb795d6 dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa8f314fb dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb22fc6a7 dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb68852c2 dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xca322d7d dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xcf93cd44 dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd4694717 dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe392c560 dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xef8a4806 dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xfb666abe inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x08a6849b dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x30523635 dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4c3af318 dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x739821c5 dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x741a95f3 dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa7184230 dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x4d08a20a arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xeab58808 ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x932125a4 nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x01127453 nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07d209ba nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0e87ce3b nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4c7b3bea nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x6ca79aec nf_nat_proto_put
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9380a56d nf_nat_proto_find_get
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbe22acff nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd5fcc7b8 nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x10525fd1 tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x50d1b707 tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc4b68776 tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe717a01f tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf19168a6 tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x9db3baa6 ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2cee15c6 l2tp_udp_recv_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2d4f5f3b l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3e330344 l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x64f6f42f l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x68ea3aed l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7055f995 l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x712eb3dd l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7b0081ca l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x99c94861 l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb06e93b1 l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc26c1efd l2tp_xmit_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcd66e47b l2tp_tunnel_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe346fbd7 l2tp_tunnel_closeall
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe5eddd4a l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xeaaf0ab7 l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf87fe0d0 l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfb16df52 l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x756c3143 ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa09471bb ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe81d4696 ieee80211_find_sta_by_hw
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0021d5ce nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06923278 nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x083ae1da nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0863b6d9 nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0cc587a2 nf_ct_unlink_expect
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f40f11b nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x14088c7a nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15139387 nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15a4e0fa nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x18bdac59 nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x191aac8e nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1bd7ba7f nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x219e46a5 nf_expect_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x29e41133 nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b08849f nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b6f5bc7 nf_conntrack_untracked
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e4748e0 nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x430392a2 nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4acb2a1d __nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b2d7322 nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4cf4300e nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d8cad11 nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f541961 nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f64f3ae nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x55826026 nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5e5e1098 __nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6967dd3a nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7358bacd nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x777e618a nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x791b11a0 nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x795fddd8 __nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x79fddf53 nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7c1f4ae1 nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d52912c nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85ad35d5 __nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x92602a51 nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x944ffd2f __nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97044340 __nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a94acbc nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa28939ce nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa338d311 nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa684ee3c nf_conntrack_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xac7206bf nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7a0f792 nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb38b688 nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbb3e6e8c nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc82686d __nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc13fdafe nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf5dbeb2 nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd1570206 seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd60c2022 nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd7351861 print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe1ef9e47 __nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2f319b0 nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe7a8f040 nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeb3df4bf nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebc42404 nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xed1ddef8 nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf39e7f7f nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7feff31 nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffcf395b nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x6e39a046 nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xbfb2a37c nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x15e90783 set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x16f81660 nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x21683e4f set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x317bceb3 nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x49c664ac nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x58a02806 nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8482e809 set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x89b82c7a get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb9784a65 nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe659ee2e set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xca5625d6 nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x15c92fab nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x4ecfb405 nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x81ec53c7 nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9351aaea nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x8c7d7566 nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xa7eb7855 nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x08601ef0 ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2b869faa ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4f1c216e ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5b32023f nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x689001ac nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x77b3277c nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x93307258 nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9405559f ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb231ebe5 nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc6a4b787 ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd90ebf07 nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xea4642a9 ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf9371e91 nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x588f9dce nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x992bf479 nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x9fec1795 nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x57f73acd nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x6dac4c8a nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x88d30af5 nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8c23db9f nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc76d10b7 nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf7e23a98 nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xb5bde042 nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x055f2741 xt_compat_target_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0da34b61 xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x39629848 xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x48ca535d xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f268db4 xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x684694c5 xt_compat_add_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7443fee7 xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x749ea70e xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7603612f xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7867bae5 xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x91545b8d xt_compat_target_to_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xacc6d161 xt_compat_match_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaf1721e3 xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbe585f93 xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc19bf478 xt_compat_match_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd0e07115 xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdc40e24a xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe7d3f84e xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf3353c63 xt_compat_target_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf84fb1d7 xt_compat_match_to_user
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x4ac7eda1 xt_rateest_lookup
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x6a518c7f xt_rateest_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq
+EXPORT_SYMBOL_GPL net/rds/rds 0x0a0acf0f rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x1c5cb3b1 rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x1c6823b5 rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0x26e79c8d rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x27b6bf25 rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0x2ba899cd rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3ec3ec03 rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0x539390b1 rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0x59b97318 rds_inc_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x6fb206ff rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0x738424ce rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0x8b4bb708 rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0x920910f7 rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x92c58eda rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x977e1e31 rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0xa6cc276e rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0xb9969c88 rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xbf6be130 rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xc6401f35 rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xd691b701 rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xe7297929 rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0xec6151c5 rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xeee2205f rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xf87c8b91 rxrpc_register_security
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x0d1ec7c1 gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x16ae6436 gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x18c1feb9 gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3159d274 gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3891f12d gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x42db3383 gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5c9a789c gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5ccb52e5 gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5fd9546b svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x86984afe svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa5692781 gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x027aa595 rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04d88374 xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0699e12d svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0938530f rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09dacf0c svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ce926e8 rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0de06756 rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e489d40 sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ed29936 svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0efcda21 rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1202924e rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12781bba svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14e870da rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x191887c9 svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x192eb407 xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b282548 rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d2d7132 rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e4bf881 svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2096eb53 rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x226398e7 auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25f57b0c xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27a0d989 svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2986831b rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b95c481 svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d5bfba5 rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d740615 svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3169b78b svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36653fc4 xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x372b43a6 xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37628d99 rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37c9bece svc_sock_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38a04492 rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39055478 rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39248d00 xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a8605f4 csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d91f4ba xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x403092ad svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4057c1b4 svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41c814f7 svc_sock_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4242ee2c rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4312d5aa sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4318855c xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45667535 svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46fba951 xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4789eeee xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4eee73a0 put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52b94219 rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x548bf50b rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b19745e rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd1ca2a rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d48efce auth_unix_add_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f66acac rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fb22af8 xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6004f425 rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6258ba19 rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62a0472d rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62bf85da rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64ef81a3 rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66db0025 xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66fed2e0 svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x678f1f74 xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x694c0181 svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6adccfd9 rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6add0d8c rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6bbeea55 svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d746e74 sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x709e2216 xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x749a7e98 xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x764678d1 auth_unix_forget_old
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77032491 rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x792cec95 rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7abdb9ac svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccb0c0e rpc_queue_empty
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81b62f3e svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8342a25c xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8508a0bb auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86e04ff5 xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c0d6d95 sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d758b60 rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8da9bee1 rpc_exit_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e107457 xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x903fbb1d xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90988546 svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93bfa3c2 write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9640a51a svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98db69c5 rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a2bb72e unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d902bc3 auth_unix_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e6f295a xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f45b605 read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f7b5d5c svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa38612b4 rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4035ece xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8cd30fd xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xabb8cc90 __rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf6576ea xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0d05b14 svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb8944f05 rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb4c0952 rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbbf9ccc8 svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbccaf5dc svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbde83bf4 rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc25395a2 auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc30e68d8 rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3bfb2c5 rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4a1160a cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc52dab1b rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5cef3e3 svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc62a0567 svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc938b4b1 xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc982ac04 xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb526430 rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd3cf474 svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd28b663b xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd445ee2c svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5c98a92 svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8fb8614 cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda840443 svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdec116e5 svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdec1f1bb xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0a620a9 rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1385270 xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2395208 rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4ce0ec1 rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5252b5b xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe81ed65d xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xebf70e59 xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeccfd987 xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee77d95e xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef85c9fe xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1c7e6c0 xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4083543 sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf56da22c cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf77f470d svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa0d2f68 xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa300a55 cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe049b02 svc_seq_show
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x02195c40 wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x2de8f260 wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x37cc2107 wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x3cb2eca4 wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x4c98f3e8 wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x83123f29 wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x91c1fa2b wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x972e6fa0 wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xa6d4b0e4 wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xbc7047f2 wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xdd7d1013 wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xe3d10ffa wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf972277e wimax_state_change
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0a85f021 cfg80211_wext_giwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x103f906a cfg80211_wext_giwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1bfd2608 cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x21450da9 cfg80211_wext_giwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x34ba7e28 cfg80211_wext_siwmlme
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3ff8716b cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x41151fe6 cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4d5f5d89 cfg80211_wext_giwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x518f0d82 cfg80211_wext_giwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x56eba10b cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5753fc30 cfg80211_wext_giwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5ca8e3b4 cfg80211_wext_giwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5ec241ae cfg80211_wext_siwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x785b6e3e cfg80211_wext_siwgenie
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7dd1903b cfg80211_wext_siwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x80700cab cfg80211_wext_siwencodeext
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8150364d cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x86fcc39b cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x934376c2 cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9a03cad8 cfg80211_wext_siwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9d7dabc5 cfg80211_wext_siwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa018c272 cfg80211_wext_siwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa8002a8f cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaabf77c5 cfg80211_wext_siwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaddbe828 cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb7cf4e50 cfg80211_wext_siwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb9c11ac9 cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc93a1a4a cfg80211_wext_giwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe7104219 cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe917deae cfg80211_wireless_stats
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf11b7f31 cfg80211_wext_siwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf67fd3b8 cfg80211_wext_siwessid
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x24b5a85d ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x3d921e57 ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x42f5ecd6 ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x92e2503b ipcomp_input
+EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x05605e8c snd_ak4113_reinit
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x535faa4d snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x683a67ea snd_ak4113_create
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x74f77674 snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x76f4bdb9 snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa719976d snd_ak4113_build
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01961315 snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0504a68c snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05433fc7 snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x06e8a580 snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0de862c4 snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1280050d snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13dfbd0d snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x142a1837 snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15098be1 snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1961a916 snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1dfd9302 snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1e3c871a snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22bc5083 query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2bb3b5f3 snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e74cf8e snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x30557b0a snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33949f29 snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33d4bb27 snd_hdmi_get_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e9bd7ad snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3f5c13fb snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3fba04a2 snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x406cb4f0 snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x43ce118a snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4473532a snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x459a92eb snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4663cfd2 snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c75da6b snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57b7382c snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f1f84f6 snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x64347a95 snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x65ae2733 snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x690e7900 snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ae0a838 snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b150d84 snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6c60ec9a snd_hda_eld_proc_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d5c71ab snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e222925 snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f3e9d32 snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71f1f41a snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72602016 snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x757418e3 snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75aec821 snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a25152c snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c9b67c7 snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7f4031a3 snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x840fc6d3 snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x858b232d snd_hdmi_show_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86324957 snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x865cc08f snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8f5d5578 snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9018b758 snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x918ccc30 snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a7a4745 snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9bf8bd17 snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ce41ab0 snd_hda_eld_proc_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ec4cf62 snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa131dca0 snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1e70e49 snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa29a46e7 snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5c3d7c1 snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6f16bd7 snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa951fd06 snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa95bf207 snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa8b3b0b snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb4fa3561 snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc008eb4f snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1ae6d33 snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5e6fdfc snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc9a5559d snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca6598e9 snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf674b55 snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd14b5257 snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5b95936 snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5d7e09b snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb4f4f0e snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe3da8348 snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe518217c snd_hdmi_get_eld_size
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe52a0790 snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xec6f6c1e snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xecdba2c6 snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed28b0e1 snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef703881 snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf28d212b snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf29ed959 snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf49a41da snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf890480b snd_hda_parse_pin_def_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfac8de02 snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe736248 snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x1eca4d0a ad1836_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x87a6da88 soc_codec_dev_ad1836
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x51e0df66 soc_codec_dev_ad193x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xe7322688 ad193x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xbf328e79 ad73311_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xfd978514 soc_codec_dev_ad73311
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x0f3768c6 ads117x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x9ca1de7b soc_codec_dev_ads117x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0x22ef3c86 soc_codec_device_ak4104
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x67576c33 soc_codec_dev_ak4535
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xb8c734b7 ak4535_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x3fec439f soc_codec_dev_ak4642
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xeeea3d62 ak4642_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x1687ae05 soc_codec_dev_ak4671
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x59965551 ak4671_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x2963d136 soc_codec_device_cs4270
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x7a95f0d3 cs4270_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x2aa8bd7a da7210_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x307002b0 soc_codec_dev_da7210
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x73af3464 max9877_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xa0757177 pcm3008_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xe781df2e soc_codec_dev_pcm3008
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x6eeb4e53 dit_stub_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x099259ee ssm2602_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xec34dae5 soc_codec_dev_ssm2602
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x490456fa soc_codec_dev_tlv320aic23
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xe74cfe02 tlv320aic23_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x0f30754b aic26_soc_codec_dev
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xa43e14ce aic26_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x2d4e503e aic3x_headset_detected
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x371b7466 aic3x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x46aef7c5 aic3x_get_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x65bee658 aic3x_button_pressed
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd38be571 soc_codec_dev_aic3x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd403308b aic3x_set_headset_detection
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xe8019752 aic3x_set_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x0f75e795 dac33_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x287be6bf soc_codec_dev_tlv320dac33
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x7c576bee tpa6130a2_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x43b952ed soc_codec_dev_twl4030
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xf60c174f twl4030_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x0015754e twl6040_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x3c361708 soc_codec_dev_twl6040
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x820134e8 soc_codec_dev_uda134x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x444c6298 uda1380_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xb3bb0881 soc_codec_dev_uda1380
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xb27d618d wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xb6a2fe78 wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xd148ce87 wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xee7a190a wm2000_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x12f538e6 wm8350_mic_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x3a39a1c2 wm8350_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x691b666e soc_codec_dev_wm8350
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x771538d9 wm8350_hp_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x62c4877c wm8400_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xf2079c3c soc_codec_dev_wm8400
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x0e03ebf0 soc_codec_dev_wm8510
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xd2fc39f6 wm8510_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x2768066a soc_codec_dev_wm8523
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x658051c5 wm8523_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x01d2d07f soc_codec_dev_wm8580
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x1250a626 wm8580_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x5b85ed2e wm8711_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xbd11123a soc_codec_dev_wm8711
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xbc3414ae wm8727_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xe90d0be5 soc_codec_dev_wm8727
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x4d62a67b wm8728_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x6e95172a soc_codec_dev_wm8728
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xbe95c654 soc_codec_dev_wm8731
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xcc1afc07 wm8731_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x64961a98 wm8750_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xa3038ba7 soc_codec_dev_wm8750
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x3b5017f1 wm8753_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x882ed864 soc_codec_dev_wm8753
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x608dbc38 wm8776_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xf6ddf84f soc_codec_dev_wm8776
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x2324270d wm8900_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x45173e7f soc_codec_dev_wm8900
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x1cc332c0 wm8903_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x6e3a6dbc soc_codec_dev_wm8903
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xa5b055a3 wm8903_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x217bfb7b soc_codec_dev_wm8904
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xb8b5651b wm8904_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x421e96a3 soc_codec_dev_wm8940
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xd76b031e wm8940_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x21d19919 wm8955_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x3eab08d1 soc_codec_dev_wm8955
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x40f41237 wm8960_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x419a42cd soc_codec_dev_wm8960
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x5881738c soc_codec_dev_wm8961
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x8ba8c192 wm8961_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x2ddfca26 wm8971_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x594319bb soc_codec_dev_wm8971
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x2434edfe soc_codec_dev_wm8974
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x7d125b95 wm8974_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x0ad09bee wm8978_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x8881a2f2 soc_codec_dev_wm8978
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x83dde5cf soc_codec_dev_wm8988
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xfc98eb07 wm8988_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x4ac605f0 soc_codec_dev_wm8990
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xb6bc62de wm8990_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x30281070 wm8993_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x61eb5633 soc_codec_dev_wm8993
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x2eaac0f4 soc_codec_dev_wm8994
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xb06e5264 wm8994_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xdf3f941d wm8994_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x127738bc soc_codec_dev_wm9081
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xd3a3b5a7 wm9081_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x0aae63ca soc_codec_dev_wm9090
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00108757 snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x02235b47 snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x03651766 snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05001477 snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d5424bc snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0eaf2b3c snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1170a46c snd_soc_info_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x121caf19 snd_soc_dapm_stream_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x187006bf snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x18a5c6eb snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21dec5d8 snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24a7dc6e snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24a8e32b snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29ee3abc snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x30861b4c snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31ceb3d0 snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x347ba044 snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3701e85b snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x37c9fb7d snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39b5502a snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e293eb2 snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e6eaab1 snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3f6da286 snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x408f336b snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43a862db snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x44eff81f snd_soc_jack_new
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x450dc8c8 snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4bd853ec snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4cd409ab snd_soc_free_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52a4ed01 snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54619932 snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5b325e66 dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5be4fe71 snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e70d975 snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x62bbc56f snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x64f6d820 snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x699b5207 snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69c37e9a snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6feef0c1 snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71a6d126 snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7981db23 snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7a487156 snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7fe64c3e snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x875f7a22 snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x895e250d snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8bee031e snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ccef905 snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e4537fa snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x954d16cf snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x957cf8ba snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b6025b9 snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f3bfd0b snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa01b2d96 snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa7542535 snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8070b0f snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa355214 snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac111f1b snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb33f426c snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb371eac6 snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb5f5b1d2 snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb61484d2 snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6e2d2a8 snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb716cb8a snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc59b817 snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc82df5e snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd3afb55 snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe113ab8 snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc9a188dd snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc81527e snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcdeae46a snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd050690e snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd61c2fea snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda889284 snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdc09dbe4 snd_soc_put_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdeb9fdf7 snd_soc_get_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf6511532 snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9a90e7c snd_soc_new_pcms
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x403287f6 xv_create_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6396f009 xv_destroy_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6da52fbd xv_free
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xb9d51915 xv_malloc
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xfdffb8fc xv_get_total_size_bytes
+EXPORT_SYMBOL_GPL vmlinux 0x001fbced da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0x002e03a2 ata_noop_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x003e69d1 ring_buffer_read_finish
+EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis
+EXPORT_SYMBOL_GPL vmlinux 0x006c0937 class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x007bdd70 inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0x00a5cbe1 iommu_iova_to_phys
+EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x00bf70e1 rtnl_kill_links
+EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init
+EXPORT_SYMBOL_GPL vmlinux 0x00deb102 rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string
+EXPORT_SYMBOL_GPL vmlinux 0x00f94fde register_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x010ca186 usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0x01511988 kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok
+EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x01b053ae tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0x01d1d475 nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x01ec12a8 ata_scsi_simulate
+EXPORT_SYMBOL_GPL vmlinux 0x01f4660b blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x02178eb1 sata_scr_write
+EXPORT_SYMBOL_GPL vmlinux 0x02988f55 blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x02be9394 blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x0385597f pcie_port_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x03a3f86d unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x03ada202 dm_dispatch_request
+EXPORT_SYMBOL_GPL vmlinux 0x03b05964 dev_attr_em_message
+EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL vmlinux 0x03fe2cca flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x03fee4bb __ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread
+EXPORT_SYMBOL_GPL vmlinux 0x04206642 unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x04b5e412 usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0x04d85a46 regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0x04f16270 fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x053a6d9a br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0x054d6b27 sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x05ca66c8 led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0x05ecf8e2 skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0x06030463 perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0x0609912b tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0x060b87da bus_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x062b0187 usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x062e733c adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x0633bc7d ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x066a4b88 wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x0683a17a __srcu_read_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x06ad54fd anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x06afa8b7 device_attach
+EXPORT_SYMBOL_GPL vmlinux 0x06cd5bd9 class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x0708580d __pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x0717aa15 ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0x072d5f48 regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0x072f0b0f crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x076f27d8 key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0x0779395d bus_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x078eb49d unregister_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x07a8a34c srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x07b883ac bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0x07e079b2 mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf
+EXPORT_SYMBOL_GPL vmlinux 0x0826272f do_add_mount
+EXPORT_SYMBOL_GPL vmlinux 0x0863d6eb srcu_init_notifier_head
+EXPORT_SYMBOL_GPL vmlinux 0x08a44647 ata_sas_port_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x08a85c30 crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0x0935bb01 xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0x09af56ae da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x0a4c1989 usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x0aa284fc default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x0ac0ab25 vring_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x0af36780 pm_request_resume
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header
+EXPORT_SYMBOL_GPL vmlinux 0x0b4212e7 sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map
+EXPORT_SYMBOL_GPL vmlinux 0x0c061e2b sata_set_spd
+EXPORT_SYMBOL_GPL vmlinux 0x0c1747ee usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x0c259b54 usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c7dde4a blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range
+EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL vmlinux 0x0d3dda9f console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0x0d4e4e56 tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x0d65584f cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0d7c5f00 __fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0x0db42ab3 scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0x0dba4563 regulator_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x0dee18cf xenbus_watch_path
+EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release
+EXPORT_SYMBOL_GPL vmlinux 0x0e256493 mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0x0e5a0ddd hwmon_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put
+EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info
+EXPORT_SYMBOL_GPL vmlinux 0x0ec4700b ata_sff_wait_ready
+EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL vmlinux 0x0f1e43a3 blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x0fa1e89b pm_request_idle
+EXPORT_SYMBOL_GPL vmlinux 0x0fad098d usb_set_device_state
+EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory
+EXPORT_SYMBOL_GPL vmlinux 0x0ffff815 dev_attr_sw_activity
+EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x100de873 queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x106fa92b rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x10c03563 wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x10c74770 clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x112ec476 wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x11354d82 ata_sff_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0x113eb862 crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x1193eaf4 regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0x11e90963 spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0x11ee8a74 fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x12082028 ata_dummy_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x120faf75 platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0x12250576 spi_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0x12729dfb get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0x1279403d ip6_dst_blackhole
+EXPORT_SYMBOL_GPL vmlinux 0x129ad44e power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x129c83c3 tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x12ae6581 tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0x12b51433 sata_scr_write_flush
+EXPORT_SYMBOL_GPL vmlinux 0x130554b6 sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0x132830c9 ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0x1333b108 usb_bus_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x13436098 ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x1356bdfb xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x1360d523 crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x136d2b64 md_new_event
+EXPORT_SYMBOL_GPL vmlinux 0x137b688c ata_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x13a12bab blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0x13aefa49 usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13cb6832 nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x13e2ea08 user_update
+EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid
+EXPORT_SYMBOL_GPL vmlinux 0x14a08a09 rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x14d11008 alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x14f782b8 ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x151df1aa regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x153d2a68 device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x15468e98 usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL vmlinux 0x1556df60 skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x156088fe crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped
+EXPORT_SYMBOL_GPL vmlinux 0x1632b977 device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x165fc691 ata_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x16677cb5 macvlan_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x1668395e each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x166cb7c9 find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x167c3b8d shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0x169a2d2b fuse_file_poll
+EXPORT_SYMBOL_GPL vmlinux 0x16aa0c5b securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x16d201bc md_do_sync
+EXPORT_SYMBOL_GPL vmlinux 0x172dd410 pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0x1736215e ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x17466450 clockevents_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub
+EXPORT_SYMBOL_GPL vmlinux 0x178114c9 debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0x1786f7ce acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL vmlinux 0x17a52f10 skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x1838c5a4 power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x18409a68 ata_port_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert
+EXPORT_SYMBOL_GPL vmlinux 0x18afcac6 fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref
+EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x19469cfb ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore
+EXPORT_SYMBOL_GPL vmlinux 0x19776b45 ata_dummy_port_info
+EXPORT_SYMBOL_GPL vmlinux 0x199d7a3c ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19a99d9f sdio_readl
+EXPORT_SYMBOL_GPL vmlinux 0x19c4c321 save_stack_trace_tsk
+EXPORT_SYMBOL_GPL vmlinux 0x19ddf359 hvc_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x19f96834 usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x1a5149b1 da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x1b05c689 debugfs_create_bool
+EXPORT_SYMBOL_GPL vmlinux 0x1b16eb2b __mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0x1b2471d9 locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0x1b2f2b72 usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0x1b339e81 shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x1b67ff14 virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL vmlinux 0x1b8a9cf5 aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x1b8c0e54 dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1ba4571d pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL vmlinux 0x1bc51976 ata_sas_port_stop
+EXPORT_SYMBOL_GPL vmlinux 0x1c760018 platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1c83e458 sis_info133_for_sata
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1d2bc0cc xenbus_dev_changed
+EXPORT_SYMBOL_GPL vmlinux 0x1d3f1f8d virtqueue_disable_cb
+EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x1d6a2d8b blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x1d954d32 cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x1dcdb525 power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf
+EXPORT_SYMBOL_GPL vmlinux 0x1ddacc22 inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0x1e110a76 vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0x1e259ba5 blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x1e30864e queue_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x1e3513e7 ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x1e3538a8 pm_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart
+EXPORT_SYMBOL_GPL vmlinux 0x1e960d4c class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x1eaed397 debugfs_create_u32
+EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x1ebbc5ed generic_detach_inode
+EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names
+EXPORT_SYMBOL_GPL vmlinux 0x1ed42f9b crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0x1f64e191 bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0x1f75ae68 __module_address
+EXPORT_SYMBOL_GPL vmlinux 0x1f86355d use_mm
+EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick
+EXPORT_SYMBOL_GPL vmlinux 0x1ff94def vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x20135116 wm8350_device_exit
+EXPORT_SYMBOL_GPL vmlinux 0x201a4a34 register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x202585bb dm_unregister_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20d22764 iommu_found
+EXPORT_SYMBOL_GPL vmlinux 0x20e92be1 crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0x2110fb56 ata_port_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x21373ce1 fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0x214274ff rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0x21456256 i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x217e452c ata_host_activate
+EXPORT_SYMBOL_GPL vmlinux 0x21ad8b7c rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0x21b6b054 rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x21bff97c ata_sff_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x21fb0723 device_schedule_callback_owner
+EXPORT_SYMBOL_GPL vmlinux 0x2257a5ea raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0x226b71ae rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x228d7be1 devm_kfree
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x22db0718 bsg_unregister_queue
+EXPORT_SYMBOL_GPL vmlinux 0x22f5050b sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x231b0309 hvc_remove
+EXPORT_SYMBOL_GPL vmlinux 0x23711c24 device_register
+EXPORT_SYMBOL_GPL vmlinux 0x237910f2 crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x238a3cf8 adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x23b32a6e fuse_do_open
+EXPORT_SYMBOL_GPL vmlinux 0x23df6fdf register_posix_clock
+EXPORT_SYMBOL_GPL vmlinux 0x2432f92c platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0x24554999 regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops
+EXPORT_SYMBOL_GPL vmlinux 0x248b5dea sdio_writeb_readb
+EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write
+EXPORT_SYMBOL_GPL vmlinux 0x24d4a57e sdio_claim_host
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x24f0558c sata_std_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x250e8f30 irq_set_affinity_hint
+EXPORT_SYMBOL_GPL vmlinux 0x2521240f device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x253a69f8 crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0x253fba83 pci_get_hp_params
+EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch
+EXPORT_SYMBOL_GPL vmlinux 0x254922b8 devres_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x255945a3 class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x25804ba5 ata_do_dev_read_id
+EXPORT_SYMBOL_GPL vmlinux 0x2587e870 fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0x25a5b7d0 inotify_find_watch
+EXPORT_SYMBOL_GPL vmlinux 0x25b2de94 led_trigger_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x25b72ce2 sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x25cc4d7b crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0x25f658f5 acpi_pci_find_root
+EXPORT_SYMBOL_GPL vmlinux 0x2644fbcc transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x26b7fcea inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x26dc28be sata_link_resume
+EXPORT_SYMBOL_GPL vmlinux 0x270c9232 __cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x2717f9e1 set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0x2724032a pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0x274f3d7f posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars
+EXPORT_SYMBOL_GPL vmlinux 0x27a4263e skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x27c7e84f fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0x27cf850f pci_hp_change_slot_info
+EXPORT_SYMBOL_GPL vmlinux 0x27f3df0e __set_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range
+EXPORT_SYMBOL_GPL vmlinux 0x2813755a ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x282ca118 platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x2887306d add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x28a5f8c1 inotify_inode_is_dead
+EXPORT_SYMBOL_GPL vmlinux 0x28ab7a27 blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0x28d2e2bc fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28d9ba87 devres_find
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x28f1bdeb get_device
+EXPORT_SYMBOL_GPL vmlinux 0x29361d59 ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x29594e9a i2c_new_dummy
+EXPORT_SYMBOL_GPL vmlinux 0x2976ca5d fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x297b43ad regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0x29801e25 simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0x299a1e6d sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0x29e9be52 apei_get_debugfs_dir
+EXPORT_SYMBOL_GPL vmlinux 0x29fe9a45 pci_bus_max_busnr
+EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0x2a31b228 inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x2a40dd2e usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result
+EXPORT_SYMBOL_GPL vmlinux 0x2a7b6f31 tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x2a8cd538 ata_dev_next
+EXPORT_SYMBOL_GPL vmlinux 0x2b292594 register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x2b6d5fa2 regulator_get_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x2bac284e securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x2bc68c0f sdio_readb
+EXPORT_SYMBOL_GPL vmlinux 0x2be1c1af vring_del_virtqueue
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c8c0966 mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0x2ca1bd96 ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2cf337f3 scsi_dh_set_params
+EXPORT_SYMBOL_GPL vmlinux 0x2d218748 debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0x2d52a5ca pm_runtime_enable
+EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x2d65dae2 inet6_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x2d6ef5ab ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x2d738027 tracepoint_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x2d90734f crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL vmlinux 0x2dd5a9dc cpuidle_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x2e0a8eb6 ata_cable_80wire
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e493a0a queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0x2e495e5b crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x2e5055ba tty_prepare_flip_string_flags
+EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0x2eed2630 iommu_domain_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x2f0f8850 scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table
+EXPORT_SYMBOL_GPL vmlinux 0x2f4b13b1 wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll
+EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x2fe6eb4a transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0x304c522c sdio_readw
+EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0x30858abd inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x31052c70 usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x3136fa28 __inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x314a63c3 apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0x3175c405 cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x317d206a i2c_new_probed_device
+EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x31e174e5 register_virtio_device
+EXPORT_SYMBOL_GPL vmlinux 0x324683ff tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x3251854f ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x32daa97e spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0x32eb259b xenbus_switch_state
+EXPORT_SYMBOL_GPL vmlinux 0x32f99caa aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x3301a205 disk_map_sector_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x3331a9b0 wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x334b53b0 class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register
+EXPORT_SYMBOL_GPL vmlinux 0x33d95659 kill_pid_info_as_uid
+EXPORT_SYMBOL_GPL vmlinux 0x341aff76 led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3423c0c4 bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0x343e95be crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x3443779f root_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3496a322 kick_process
+EXPORT_SYMBOL_GPL vmlinux 0x34a49c90 dm_rh_recovery_end
+EXPORT_SYMBOL_GPL vmlinux 0x34aa5968 usb_ep0_reinit
+EXPORT_SYMBOL_GPL vmlinux 0x34bc9147 pci_test_config_bits
+EXPORT_SYMBOL_GPL vmlinux 0x34db2d35 crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x34ecf1cc task_current_syscall
+EXPORT_SYMBOL_GPL vmlinux 0x351f95c9 debugfs_create_u64
+EXPORT_SYMBOL_GPL vmlinux 0x3530ebd6 uart_set_options
+EXPORT_SYMBOL_GPL vmlinux 0x35c8b68a __blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x35dc84f4 skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x361b1d31 tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0x3621b619 sysfs_remove_files
+EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0x36607b43 power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL vmlinux 0x3672a697 gpio_export_link
+EXPORT_SYMBOL_GPL vmlinux 0x36864ef1 crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x36cc05b3 ata_sff_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x36fad637 gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0x37538ea8 init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x379f66b3 pci_destroy_slot
+EXPORT_SYMBOL_GPL vmlinux 0x37afbd98 ata_bmdma_stop
+EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page
+EXPORT_SYMBOL_GPL vmlinux 0x3833bb24 relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0x384053e7 erst_get_record_count
+EXPORT_SYMBOL_GPL vmlinux 0x387210d6 sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0x38799942 sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0x38d1c6fd cpuidle_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x38e13ee4 xenbus_dev_fatal
+EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure
+EXPORT_SYMBOL_GPL vmlinux 0x38f8c56e usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x393ceb01 usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0x3952e931 tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x397362d1 wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0x39aa62a2 ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x39c4304c vma_kernel_pagesize
+EXPORT_SYMBOL_GPL vmlinux 0x39d1fc9a ata_cable_ignore
+EXPORT_SYMBOL_GPL vmlinux 0x39dbf698 shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x39eaf60d inet6_csk_xmit
+EXPORT_SYMBOL_GPL vmlinux 0x3a081476 pciserial_resume_ports
+EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3a378b50 sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x3a3e3519 spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0x3a6bacd4 __ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0x3a89a8e3 ata_sff_dma_pause
+EXPORT_SYMBOL_GPL vmlinux 0x3aad5302 perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x3ac2e131 bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x3ace7662 anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3ad063b3 tracepoint_iter_stop
+EXPORT_SYMBOL_GPL vmlinux 0x3b2354ea usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value
+EXPORT_SYMBOL_GPL vmlinux 0x3bab3c94 dma_release_channel
+EXPORT_SYMBOL_GPL vmlinux 0x3baf0876 usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL vmlinux 0x3bd4ebd2 platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0x3be6ded6 usb_driver_release_interface
+EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3c433a73 sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0x3c50a85e skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x3c867e1d acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0x3c8b26d6 sata_scr_read
+EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag
+EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL vmlinux 0x3d6b6b72 ata_base_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x3dda1035 sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id
+EXPORT_SYMBOL_GPL vmlinux 0x3dde3c26 pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0x3e0cf878 pci_configure_slot
+EXPORT_SYMBOL_GPL vmlinux 0x3ea9fbca __inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler
+EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register
+EXPORT_SYMBOL_GPL vmlinux 0x3f25c038 tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0x3f55e0f5 inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x3f9a1fcd regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0x3ff86c80 scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x400c919c skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0x4034e642 disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x4057884e usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0x409b6158 inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0x40a52873 crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL vmlinux 0x40e9585f regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x411b25f9 ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x41308995 pm_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x41631eea cpufreq_cpu_get
+EXPORT_SYMBOL_GPL vmlinux 0x41ee0281 unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x41f0e7d9 ata_sff_data_xfer
+EXPORT_SYMBOL_GPL vmlinux 0x42007d24 ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0x42012489 __mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x4227f1ed unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done
+EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped
+EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active
+EXPORT_SYMBOL_GPL vmlinux 0x42838092 sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x4284f26e scsi_dh_detach
+EXPORT_SYMBOL_GPL vmlinux 0x42b49fac usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0x42eee679 stop_machine
+EXPORT_SYMBOL_GPL vmlinux 0x4323f9b0 sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x43499a39 cpufreq_cpu_put
+EXPORT_SYMBOL_GPL vmlinux 0x4398c55b fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x43a7f7cd inotify_rm_watch
+EXPORT_SYMBOL_GPL vmlinux 0x43abee23 input_ff_erase
+EXPORT_SYMBOL_GPL vmlinux 0x43bc7fd0 ata_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0x43ce5048 __module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x43dd1a7d cpufreq_frequency_table_target
+EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x44733b97 __trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x44abf55c spi_async
+EXPORT_SYMBOL_GPL vmlinux 0x44fc3841 led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0x4509ebc2 dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0x4534a985 class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state
+EXPORT_SYMBOL_GPL vmlinux 0x456a4530 udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list
+EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page
+EXPORT_SYMBOL_GPL vmlinux 0x45ef7393 pm_runtime_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data
+EXPORT_SYMBOL_GPL vmlinux 0x4616b606 ab8500_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x46464f92 __class_create
+EXPORT_SYMBOL_GPL vmlinux 0x4648d507 pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x4675bd25 hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x47033807 sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0x471218e5 xenbus_bind_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x471e8a98 perf_arch_fetch_caller_regs
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x473c6e67 spi_write_then_read
+EXPORT_SYMBOL_GPL vmlinux 0x47709d6c vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0x478bbdb2 inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x47c6a661 user_match
+EXPORT_SYMBOL_GPL vmlinux 0x481d0672 crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x488af1f1 wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x488fb334 ata_sff_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size
+EXPORT_SYMBOL_GPL vmlinux 0x48a97e2d ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x48aeef6c pci_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x48bd5acb cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL vmlinux 0x498741c6 cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x498a9791 ata_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue
+EXPORT_SYMBOL_GPL vmlinux 0x49c4cb12 usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0x4a4dd2c9 sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x4a4f3a7b wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x4a6aa2fc pci_enable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0x4a7bb187 pm_runtime_allow
+EXPORT_SYMBOL_GPL vmlinux 0x4a7f1368 ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0x4a8d7e5d __crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x4ab67da6 crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x4ae5d487 driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x4b20759a pciserial_init_ports
+EXPORT_SYMBOL_GPL vmlinux 0x4b9caaeb xenbus_free_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x4bbcae2c sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4c185cef inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c96112c anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0x4cb2342a dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0x4cf3bf2b proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x4cf86449 sata_pmp_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x4d26d41e skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x4d9117db ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0x4dacbbad scsi_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x4deaee17 tc35892_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x4e252b31 init_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x4e4e77ff scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x4eb729f1 platform_get_resource_byname
+EXPORT_SYMBOL_GPL vmlinux 0x4ef05e8a sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x4f025b2e generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x4f2dd439 inet_diag_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4f7092c0 ata_sff_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x4f9194f6 rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0x4fba7b53 ata_sff_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device
+EXPORT_SYMBOL_GPL vmlinux 0x4fcd542a __sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal
+EXPORT_SYMBOL_GPL vmlinux 0x4fe9cb60 xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0x50314050 debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0x50572505 simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0x5073c31b sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x5093e8b6 raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x509933bc devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0x509ad84c i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x50a7587b xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0x50b319ce cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0x50b6d765 crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine
+EXPORT_SYMBOL_GPL vmlinux 0x50d85cfa agp_remove_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched
+EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x50ff737a pm_generic_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x5133b013 adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x513d674a usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq
+EXPORT_SYMBOL_GPL vmlinux 0x519648ce regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0x51bcf22d usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0x51d5f54c fib_rules_cleanup_ops
+EXPORT_SYMBOL_GPL vmlinux 0x51fa496d handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0x520543ea pci_dev_run_wake
+EXPORT_SYMBOL_GPL vmlinux 0x521bc4ad xenbus_unmap_ring_vfree
+EXPORT_SYMBOL_GPL vmlinux 0x524fed7f ata_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x5286d980 class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0x52b3325e skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0x52e5bec7 sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0x52f89822 ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0x530dc399 ata_host_resume
+EXPORT_SYMBOL_GPL vmlinux 0x530fe1f3 bus_register
+EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x534da96a pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0x534f9ce2 ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53aabfba crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x53c45ea6 pci_disable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x53d0ad47 pm_generic_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x541dcea2 crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0x54202371 bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0x54417e98 pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x5472ce26 ring_buffer_record_enable
+EXPORT_SYMBOL_GPL vmlinux 0x548acd28 wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x548c10e5 usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0x548db6ad pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54bb02e2 devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x54fe8727 da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0x552cd2fa wm8350_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x554971d9 ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features
+EXPORT_SYMBOL_GPL vmlinux 0x55c684c4 inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x561c634a wmi_evaluate_method
+EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status
+EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable
+EXPORT_SYMBOL_GPL vmlinux 0x563c3d60 spi_register_master
+EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x5645d5f0 seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after
+EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen
+EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk
+EXPORT_SYMBOL_GPL vmlinux 0x56d7f75e crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x56fd9a30 dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL vmlinux 0x5722b8f2 get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0x572b843b css_id
+EXPORT_SYMBOL_GPL vmlinux 0x5745abac regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists
+EXPORT_SYMBOL_GPL vmlinux 0x57968b35 ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x580d8705 srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x584e0ece put_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x58938337 platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0x5902f1c3 disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0x59049f89 mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0x590884d7 rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0x592c3e8a relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL vmlinux 0x594c88f5 ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x5970e340 kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x59a94e08 sync_page_io
+EXPORT_SYMBOL_GPL vmlinux 0x59e6cd07 __rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x5a48fba2 disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5a8f245d crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x5abd6048 register_virtio_driver
+EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x5af0583a acpi_smbus_read
+EXPORT_SYMBOL_GPL vmlinux 0x5affd054 task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x5b057dbc dm_rh_get_state
+EXPORT_SYMBOL_GPL vmlinux 0x5b435139 unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x5b69f210 hvc_poll
+EXPORT_SYMBOL_GPL vmlinux 0x5b71bd2f crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x5baf3be4 gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5c11ed89 virtqueue_kick
+EXPORT_SYMBOL_GPL vmlinux 0x5c25b5f3 scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x5cdb5211 blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0x5cf26d75 fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0x5cfa0b19 usb_hc_died
+EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table
+EXPORT_SYMBOL_GPL vmlinux 0x5d14b049 led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback
+EXPORT_SYMBOL_GPL vmlinux 0x5d4a5a1f platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x5d5c0483 shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5ddf2688 crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x5de8bf92 tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0x5e1833bf sdio_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x5e550562 crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x5e64898f shake_page
+EXPORT_SYMBOL_GPL vmlinux 0x5e668745 virtqueue_enable_cb
+EXPORT_SYMBOL_GPL vmlinux 0x5e950dce get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0x5ec987c3 blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0x5edbbc17 __inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable
+EXPORT_SYMBOL_GPL vmlinux 0x5f52d135 ata_sff_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0x5f5ad4ec sdio_release_irq
+EXPORT_SYMBOL_GPL vmlinux 0x5f785b8f usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0x5fc3e9ff vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x5ff890e9 device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0x60559c62 kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x6057e142 usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops
+EXPORT_SYMBOL_GPL vmlinux 0x60ebf985 acpi_processor_ffh_cstate_enter
+EXPORT_SYMBOL_GPL vmlinux 0x60ec40cc get_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x61667785 raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check
+EXPORT_SYMBOL_GPL vmlinux 0x61bf2dfc put_device
+EXPORT_SYMBOL_GPL vmlinux 0x61e9a973 cpufreq_get_measured_perf
+EXPORT_SYMBOL_GPL vmlinux 0x621ffdb7 sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x626936ff regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep
+EXPORT_SYMBOL_GPL vmlinux 0x62a77787 proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0x62ce93af __create_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0x62d88a93 tty_put_char
+EXPORT_SYMBOL_GPL vmlinux 0x63015cbf sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0x63133b7c transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL vmlinux 0x6399ff66 __ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap
+EXPORT_SYMBOL_GPL vmlinux 0x642c9fd7 platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0x644fe160 xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0x645eb13b bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x6465e429 xenbus_alloc_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x6469f7ba debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x647c6962 sdio_writesb
+EXPORT_SYMBOL_GPL vmlinux 0x64a02d1b crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x64a9e254 scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0x64d3fb6d tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0x64e8f5b5 usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0x651b8e07 cpuidle_get_driver
+EXPORT_SYMBOL_GPL vmlinux 0x6520d4fe ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq
+EXPORT_SYMBOL_GPL vmlinux 0x65723727 regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x658569f6 trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0x659edd9d crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65dd5563 ata_sff_check_status
+EXPORT_SYMBOL_GPL vmlinux 0x65e20a1c dev_attr_em_message_type
+EXPORT_SYMBOL_GPL vmlinux 0x65e9a1c9 ata_bmdma_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x662d60ce ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66c7ede2 hwmon_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x66ef1cdf usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0x670c5bef hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0x6733e23f sdio_f0_readb
+EXPORT_SYMBOL_GPL vmlinux 0x6753d486 dm_region_hash_create
+EXPORT_SYMBOL_GPL vmlinux 0x677ebbb9 elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x67a0f16d blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0x68024063 get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x68b12e73 rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x6925a382 init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0x69785b12 dm_rh_delay
+EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse
+EXPORT_SYMBOL_GPL vmlinux 0x69c470c7 pm_generic_restore
+EXPORT_SYMBOL_GPL vmlinux 0x69d57faf ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config
+EXPORT_SYMBOL_GPL vmlinux 0x6a3ea8f3 dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x6a6932f8 platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start
+EXPORT_SYMBOL_GPL vmlinux 0x6a891f71 xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid
+EXPORT_SYMBOL_GPL vmlinux 0x6af00b39 regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b368d4a devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0x6b3e7f84 dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low
+EXPORT_SYMBOL_GPL vmlinux 0x6b9178b3 xenbus_strstate
+EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x6b957608 tty_find_polling_driver
+EXPORT_SYMBOL_GPL vmlinux 0x6bab1f33 da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x6bc653bb ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x6c0b4e08 sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6c93efca ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x6cb8d0ed usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x6cb9cf86 aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x6d19fa96 wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d3c3f73 ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x6d6a3aa3 usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x6d902ee8 ata_host_init
+EXPORT_SYMBOL_GPL vmlinux 0x6d9a7951 dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL vmlinux 0x6db64cfc cpci_hp_register_bus
+EXPORT_SYMBOL_GPL vmlinux 0x6dc4dc76 driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x6dec80f5 fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0x6e0b280e pci_num_vf
+EXPORT_SYMBOL_GPL vmlinux 0x6e195a0b wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref
+EXPORT_SYMBOL_GPL vmlinux 0x6e6404e9 dm_kill_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x6ebf460f ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x6f08c18c fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x6f0ea5e3 ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL vmlinux 0x6f3c216f debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0x6f4f75cb invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0x6f7db3bc dm_rh_inc_pending
+EXPORT_SYMBOL_GPL vmlinux 0x6f9f1ef1 tty_mode_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x6fada7b7 inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x6fb8a8fa perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0x6fd9de07 noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x6fde0c0e pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x700e3969 crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x7033c67c wm831x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts
+EXPORT_SYMBOL_GPL vmlinux 0x7047dc21 crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x704cc9c9 crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr
+EXPORT_SYMBOL_GPL vmlinux 0x707d3231 simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0x70ad3fc6 remove_memory
+EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem
+EXPORT_SYMBOL_GPL vmlinux 0x70d840b5 sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0x7137f5bb scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x716ceee9 ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0x7180e7ce pciserial_suspend_ports
+EXPORT_SYMBOL_GPL vmlinux 0x71e972e7 crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0x72180161 register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0x725d940e ata_cable_unknown
+EXPORT_SYMBOL_GPL vmlinux 0x72641893 ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x72aca472 user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x72d422fa inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x731433ee unregister_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type
+EXPORT_SYMBOL_GPL vmlinux 0x734418f3 register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x73710421 sata_pmp_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x737c00b2 skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0x739ad5e6 scsi_dh_attach
+EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports
+EXPORT_SYMBOL_GPL vmlinux 0x73c9b256 cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x73f3c3b6 transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0x742a3914 crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini
+EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read
+EXPORT_SYMBOL_GPL vmlinux 0x74973545 rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x74a98674 bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register
+EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors
+EXPORT_SYMBOL_GPL vmlinux 0x74e48518 crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm
+EXPORT_SYMBOL_GPL vmlinux 0x7581c9db sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x75973691 ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x759e8798 tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0x75a7a8ff sdio_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x75db3c9d usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x75ec33ef inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x75ece065 regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x7620c1db platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0x7652a70f sdio_enable_func
+EXPORT_SYMBOL_GPL vmlinux 0x766e1ec0 ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x76796eb5 aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x768e90f1 hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL vmlinux 0x769e8cbe d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x770a011e sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x774fe0ac xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0x7753889e crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x77d0c4f8 uart_console_write
+EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0x77f3ebb1 devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x780f80cb erst_read_next
+EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar
+EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x794a177f ata_sff_exec_command
+EXPORT_SYMBOL_GPL vmlinux 0x79a1a554 driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x79f8d3eb pci_hp_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info
+EXPORT_SYMBOL_GPL vmlinux 0x7a639048 transport_configure_device
+EXPORT_SYMBOL_GPL vmlinux 0x7a865465 device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0x7a8b5956 ata_sff_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x7a986cfd usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0x7ab3f351 ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x7acaca64 usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL vmlinux 0x7ad37aed rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr
+EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set
+EXPORT_SYMBOL_GPL vmlinux 0x7b4ea38c sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x7b999b23 class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x7bb1b29a register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x7bf9bac8 pci_restore_msi_state
+EXPORT_SYMBOL_GPL vmlinux 0x7bfae850 spi_alloc_master
+EXPORT_SYMBOL_GPL vmlinux 0x7c618ce0 wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0x7c80ee14 __xenbus_register_frontend
+EXPORT_SYMBOL_GPL vmlinux 0x7d270b4a driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq
+EXPORT_SYMBOL_GPL vmlinux 0x7d684f50 cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL vmlinux 0x7d6fe27b bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values
+EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7e06d0fb adp5520_read
+EXPORT_SYMBOL_GPL vmlinux 0x7e08d72c inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e23429b acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e4168ee crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x7e5e301f unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7e8fde33 vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check
+EXPORT_SYMBOL_GPL vmlinux 0x7ec8ba1f dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0x7ef7218b scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x7f0f3132 dm_rh_flush
+EXPORT_SYMBOL_GPL vmlinux 0x7f141b43 __rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x7f944192 crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0x7f9792d1 xenbus_grant_ring
+EXPORT_SYMBOL_GPL vmlinux 0x7fe3486e inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ff8d65d usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x8015e805 ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x80ca2ed3 spi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x81808db1 unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0x81a13926 crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x81a408be dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL vmlinux 0x81f3ebf9 sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8200e6f0 regulator_disable
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x82b25441 scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write
+EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export
+EXPORT_SYMBOL_GPL vmlinux 0x82f7f0b5 ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x83281a95 mmu_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x832f053c fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x83774cee vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0x83d3369e tracepoint_iter_start
+EXPORT_SYMBOL_GPL vmlinux 0x83f01e0c fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x84c10df5 ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x8517e64a blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x85318c6d ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL vmlinux 0x853522cd fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag
+EXPORT_SYMBOL_GPL vmlinux 0x854c24e8 kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x85998ab1 tc35892_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh
+EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq
+EXPORT_SYMBOL_GPL vmlinux 0x8603bbf2 cpufreq_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x865f0020 fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq
+EXPORT_SYMBOL_GPL vmlinux 0x867c684a setup_APIC_eilvt_ibs
+EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x8689ab3c sata_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x868bddba sata_sff_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x8695f853 acpi_smbus_write
+EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x86a89165 ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x86c7b943 ata_std_qc_defer
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error
+EXPORT_SYMBOL_GPL vmlinux 0x876d29f1 wmi_get_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm
+EXPORT_SYMBOL_GPL vmlinux 0x87e9e1af relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active
+EXPORT_SYMBOL_GPL vmlinux 0x88b80cab cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x89027895 sdio_writeb
+EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x893e5486 dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x8951d89f device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init
+EXPORT_SYMBOL_GPL vmlinux 0x89a32461 raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0x89be1205 bd_release_from_disk
+EXPORT_SYMBOL_GPL vmlinux 0x89d9cf61 ata_eh_freeze_port
+EXPORT_SYMBOL_GPL vmlinux 0x89eb885d tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0x8a0f1e99 srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8a4e63e6 swiotlb_map_page
+EXPORT_SYMBOL_GPL vmlinux 0x8a71f0e9 tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0x8a776ce7 sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x8aa03787 page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0x8ab371e3 unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x8ab9792d ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL vmlinux 0x8adda4e0 ata_dev_disable
+EXPORT_SYMBOL_GPL vmlinux 0x8b15de38 usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x8b39cf9d unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis
+EXPORT_SYMBOL_GPL vmlinux 0x8b7f9a1b virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL vmlinux 0x8b811a5c inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address
+EXPORT_SYMBOL_GPL vmlinux 0x8bc964e0 inotify_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x8bcc3206 pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8bfe22ea eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start
+EXPORT_SYMBOL_GPL vmlinux 0x8c1605f3 debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0x8c172404 synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x8c50d6fb dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0x8c77e083 map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x8cb19502 rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x8ce13f4c sata_link_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x8ce28f6f cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x8d157ca8 rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x8d6a41dc eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x8d6fc117 wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0x8d746618 inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0x8d774b6f dm_register_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0x8e15e276 generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0x8ecd8393 class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x8ee30251 inotify_inode_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x8f0252aa pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x8f3d398e pm_generic_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x8f559b4f cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x8f671211 cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0x8f6733d5 fuse_request_send
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8f9ee0d0 ata_sff_irq_on
+EXPORT_SYMBOL_GPL vmlinux 0x8fa2b33c adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x9006464d page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL vmlinux 0x9013e3f5 inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0x90603b0a ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0x9081be09 ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90d9aacb rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs
+EXPORT_SYMBOL_GPL vmlinux 0x910b744c usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x910eac05 show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x916be72f mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x9197dd4b filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array
+EXPORT_SYMBOL_GPL vmlinux 0x91d733ee power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0x922f3b03 rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x924a9f0c inotify_find_update_watch
+EXPORT_SYMBOL_GPL vmlinux 0x924aae92 single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x92625c20 inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL vmlinux 0x92a1910c smp_call_function_any
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9305b366 debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x93260715 register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x93425a58 crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x9352e33a elv_register
+EXPORT_SYMBOL_GPL vmlinux 0x9389f058 blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0x93ab6de4 devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x93bd7d54 ip6_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x93efea6e usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x942b6c31 unregister_virtio_device
+EXPORT_SYMBOL_GPL vmlinux 0x9474f450 __put_net
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources
+EXPORT_SYMBOL_GPL vmlinux 0x94da5b4b usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0x94e307e0 pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x94e5e3e3 swiotlb_unmap_page
+EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x952db40b queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x952dc609 ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0x95332bf8 ata_sas_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x953b08b9 class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x954c239c pm_schedule_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x954d0899 devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0x9563d8ed platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x95b65302 sysdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x95e26c7b ata_host_detach
+EXPORT_SYMBOL_GPL vmlinux 0x95ec49c6 find_module
+EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x964d5c39 acpi_os_map_memory
+EXPORT_SYMBOL_GPL vmlinux 0x965b92b3 blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key
+EXPORT_SYMBOL_GPL vmlinux 0x968c6546 ata_host_start
+EXPORT_SYMBOL_GPL vmlinux 0x96bfd034 __sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0x96c59a74 ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9712fc66 platform_device_register_data
+EXPORT_SYMBOL_GPL vmlinux 0x97166836 i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x973aabc5 wm8994_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x976116c4 sdio_readsb
+EXPORT_SYMBOL_GPL vmlinux 0x97947aa3 rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x97a35ac0 __pm_runtime_get
+EXPORT_SYMBOL_GPL vmlinux 0x98010319 file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick
+EXPORT_SYMBOL_GPL vmlinux 0x98b82bd3 pci_sriov_migration
+EXPORT_SYMBOL_GPL vmlinux 0x98c031ef inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x99081e80 usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0x9923b7fd firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x993c7e6f usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on
+EXPORT_SYMBOL_GPL vmlinux 0x99b24170 __pm_runtime_disable
+EXPORT_SYMBOL_GPL vmlinux 0x99c711a4 debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0x99e4d1f3 ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL vmlinux 0x99eee686 rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a195bc6 ata_link_online
+EXPORT_SYMBOL_GPL vmlinux 0x9a209891 tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0x9a341c68 sdio_disable_func
+EXPORT_SYMBOL_GPL vmlinux 0x9a3c6a31 trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x9a4d1034 idle_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x9a8eea4a sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL vmlinux 0x9a8ff4bc led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0x9aa3e96f css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x9ad97c35 ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0x9aeb28f7 inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0x9af97897 tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9bb2de34 ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0x9c192cef ata_link_abort
+EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid
+EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x9c39eec2 tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x9c607916 crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9cbb95cb sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch
+EXPORT_SYMBOL_GPL vmlinux 0x9d0eb311 usb_driver_set_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x9d36531d ring_buffer_overruns
+EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0x9d58587d usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x9d61f66b __hvc_resize
+EXPORT_SYMBOL_GPL vmlinux 0x9d8c1173 init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x9da3aeb4 platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x9dd65f7e dev_attr_unload_heads
+EXPORT_SYMBOL_GPL vmlinux 0x9de655fa hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x9e283af3 dm_rh_get_region_key
+EXPORT_SYMBOL_GPL vmlinux 0x9e378dd1 register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x9e426675 disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x9f03b0cc sdio_writel
+EXPORT_SYMBOL_GPL vmlinux 0x9f195879 ata_bmdma_status
+EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain
+EXPORT_SYMBOL_GPL vmlinux 0x9f49fdc4 regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9f883bc9 crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x9f89648f relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc
+EXPORT_SYMBOL_GPL vmlinux 0x9fbe10f0 ata_pci_remove_one
+EXPORT_SYMBOL_GPL vmlinux 0x9fc302b0 tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xa00bcaa3 debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0xa0152da1 inet_diag_register
+EXPORT_SYMBOL_GPL vmlinux 0xa01b9c94 fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0xa07746c1 crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0xa07d781f scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0xa0875c45 __inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0xa0b7ba8e seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0xa0bb04f1 xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg
+EXPORT_SYMBOL_GPL vmlinux 0xa0d93bcd put_pid
+EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xa12707f9 pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0xa13b1ab9 zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0xa15ffb26 raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0xa16970ae fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa1b1c66f ata_bmdma_start
+EXPORT_SYMBOL_GPL vmlinux 0xa20cdbe3 rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0xa230dd2d setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0xa278b64c dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0xa2bb0e30 cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL vmlinux 0xa2d3e7e3 ata_sff_softreset
+EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4
+EXPORT_SYMBOL_GPL vmlinux 0xa301a0f4 skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm
+EXPORT_SYMBOL_GPL vmlinux 0xa35e969b ata_std_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa441ecdf sdio_release_host
+EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit
+EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx
+EXPORT_SYMBOL_GPL vmlinux 0xa4a412e4 scsi_dh_activate
+EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0xa4b5ee00 regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xa4be5f29 ipv6_dup_options
+EXPORT_SYMBOL_GPL vmlinux 0xa4c73ce6 __css_put
+EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore
+EXPORT_SYMBOL_GPL vmlinux 0xa4ed60ac sysdev_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xa4f89c4e ipv6_opt_accepted
+EXPORT_SYMBOL_GPL vmlinux 0xa51ac6d4 scsi_target_unblock
+EXPORT_SYMBOL_GPL vmlinux 0xa55da98c __pci_hp_register
+EXPORT_SYMBOL_GPL vmlinux 0xa571bab2 platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xa5abc0bb virtqueue_add_buf_gfp
+EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa6078876 regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0xa60ad9ac usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa63e3f9b acpi_smbus_unregister_callback
+EXPORT_SYMBOL_GPL vmlinux 0xa68aac3d pci_find_next_capability
+EXPORT_SYMBOL_GPL vmlinux 0xa691279e sdio_claim_irq
+EXPORT_SYMBOL_GPL vmlinux 0xa6ab3509 ata_sas_port_start
+EXPORT_SYMBOL_GPL vmlinux 0xa6ae3f92 dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL vmlinux 0xa6e07756 dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0xa6fb015a sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0xa7380b59 sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xa7410cc5 input_ff_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xa78eb14c fuse_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0xa7a8e0b8 usb_create_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xa7b8601f crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0xa7ca9120 spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0xa7d62019 hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xa80e2886 usb_ifnum_to_if
+EXPORT_SYMBOL_GPL vmlinux 0xa82a0d59 usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll
+EXPORT_SYMBOL_GPL vmlinux 0xa8b14f54 hwpoison_filter
+EXPORT_SYMBOL_GPL vmlinux 0xa8cc5b58 device_find_child
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit
+EXPORT_SYMBOL_GPL vmlinux 0xa9758712 fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xa988bd33 usb_enable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0xa98d044b part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9c963a8 usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xa9d88c46 __cpufreq_driver_getavg
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xaa00e74d vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0xaa090a4f pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xaa121800 tasklet_hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xaa381ba8 ata_sff_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0xaa7ab791 crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0xaa7cccda ata_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock
+EXPORT_SYMBOL_GPL vmlinux 0xaacf2ddb usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback
+EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run
+EXPORT_SYMBOL_GPL vmlinux 0xab18f0cf br_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0xab27b7ad blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xab283d6c xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0xab42ade1 wm8350_gpio_config
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab6d0dcd usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0xaba5b5d7 vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0xabc097b6 pm_generic_resume
+EXPORT_SYMBOL_GPL vmlinux 0xabdcf653 virtqueue_get_buf
+EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xabf44547 device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0xac1a82d0 usb_get_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xac348ac6 __dma_request_channel
+EXPORT_SYMBOL_GPL vmlinux 0xac698c09 pci_bus_resource_n
+EXPORT_SYMBOL_GPL vmlinux 0xac6d7920 ata_eh_qc_retry
+EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq
+EXPORT_SYMBOL_GPL vmlinux 0xacbef87f dm_rh_get_region_size
+EXPORT_SYMBOL_GPL vmlinux 0xacc19485 ibft_addr
+EXPORT_SYMBOL_GPL vmlinux 0xacc43222 usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xad005e71 __ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf
+EXPORT_SYMBOL_GPL vmlinux 0xad4a70dd xenbus_dev_error
+EXPORT_SYMBOL_GPL vmlinux 0xad593969 scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad800128 sdio_set_block_size
+EXPORT_SYMBOL_GPL vmlinux 0xad94c33d wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xad951fbc drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module
+EXPORT_SYMBOL_GPL vmlinux 0xadc904de usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae2009fa usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xae487aac __inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0xae53f4e2 tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0xae571a2b blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xae7ec35d usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xae948cf6 rtc_class_close
+EXPORT_SYMBOL_GPL vmlinux 0xaea6b496 simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0xaec55551 pm_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xaecb6b56 devres_add
+EXPORT_SYMBOL_GPL vmlinux 0xaf30fca4 fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0xaf3bb2a0 ata_port_abort
+EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xaf46d4b0 tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0xafabdd23 security_inode_setattr
+EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device
+EXPORT_SYMBOL_GPL vmlinux 0xb0130213 __fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0xb03bbf2c platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xb05e90fa hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0xb06c1481 regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0xb0789718 alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa531c ata_pci_device_resume
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xb0bfc686 hvc_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xb0c3bd09 transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0xb10690f8 device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send
+EXPORT_SYMBOL_GPL vmlinux 0xb11099d5 xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0xb136e911 sdio_writew
+EXPORT_SYMBOL_GPL vmlinux 0xb17e14ec xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb1c882df __blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xb1d25cc6 print_context_stack
+EXPORT_SYMBOL_GPL vmlinux 0xb1d79f83 md_allow_write
+EXPORT_SYMBOL_GPL vmlinux 0xb262d0ac register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xb27657fa debugfs_create_x64
+EXPORT_SYMBOL_GPL vmlinux 0xb2994f50 dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0xb2aad9ad rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0xb2efd7ed user_describe
+EXPORT_SYMBOL_GPL vmlinux 0xb30c6d5e hrtimer_start
+EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init
+EXPORT_SYMBOL_GPL vmlinux 0xb329c6e7 power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0xb3375000 crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0xb352ddeb agp_add_bridge
+EXPORT_SYMBOL_GPL vmlinux 0xb3721fed pci_block_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0xb39466b7 usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0xb3a5baf3 pci_hp_create_module_link
+EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write
+EXPORT_SYMBOL_GPL vmlinux 0xb3fa3903 platform_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xb4359f1d adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xb493b741 ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected
+EXPORT_SYMBOL_GPL vmlinux 0xb4ed6aa4 vring_transport_features
+EXPORT_SYMBOL_GPL vmlinux 0xb4f14b60 free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xb4fe2bf1 wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state
+EXPORT_SYMBOL_GPL vmlinux 0xb530fe9d dm_rh_dirty_log
+EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait
+EXPORT_SYMBOL_GPL vmlinux 0xb544ddfb device_move
+EXPORT_SYMBOL_GPL vmlinux 0xb565545e led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler
+EXPORT_SYMBOL_GPL vmlinux 0xb5c665d3 ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL vmlinux 0xb5c98ac0 cpufreq_frequency_table_cpuinfo
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb612444d snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xb633c6b0 fsnotify
+EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec
+EXPORT_SYMBOL_GPL vmlinux 0xb663c472 sysfs_notify_dirent
+EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string
+EXPORT_SYMBOL_GPL vmlinux 0xb6c5b402 sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse
+EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb74ee06c regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0xb781d6c2 raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xb784551b mmput
+EXPORT_SYMBOL_GPL vmlinux 0xb7bff889 ata_acpi_stm
+EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time
+EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll
+EXPORT_SYMBOL_GPL vmlinux 0xb7f4e553 erst_read
+EXPORT_SYMBOL_GPL vmlinux 0xb7ff9bf1 crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xb847b988 ata_sas_port_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xb84b0a32 security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0xb85ee053 sysfs_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xb88717a1 sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xb8b9a7c2 ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xb8feb924 usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0xb9054aa7 cpci_hp_register_controller
+EXPORT_SYMBOL_GPL vmlinux 0xb94cac24 tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0xb94db510 register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xb96186dc sata_scr_valid
+EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read
+EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0xba46b657 ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL vmlinux 0xba546685 xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0xbaa0d47d __srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks
+EXPORT_SYMBOL_GPL vmlinux 0xbb12c576 cpuidle_disable_device
+EXPORT_SYMBOL_GPL vmlinux 0xbb1a9aa0 inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xbb60801c driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xbb8cb89d ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info
+EXPORT_SYMBOL_GPL vmlinux 0xbbeb3b83 ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xbc122b65 usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0xbc2f21c7 ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0xbc4d8285 free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0xbc5f9c50 driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbc84f0bb tc35892_block_write
+EXPORT_SYMBOL_GPL vmlinux 0xbcf0a134 kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xbd6e96fd n_tty_inherit_ops
+EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse
+EXPORT_SYMBOL_GPL vmlinux 0xbde121b8 srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbe022243 ata_host_register
+EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime
+EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xbe53292c inotify_init
+EXPORT_SYMBOL_GPL vmlinux 0xbe5b6d22 gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0xbe76d5ea tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xbead4956 kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0xbec4deb3 ab8500_read
+EXPORT_SYMBOL_GPL vmlinux 0xbed8207a usb_match_id
+EXPORT_SYMBOL_GPL vmlinux 0xbf12848f wm8994_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xbf57d1e5 blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0xc03f63b3 fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xc05549ea vring_new_virtqueue
+EXPORT_SYMBOL_GPL vmlinux 0xc0769321 nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0xc0bbacf0 ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time
+EXPORT_SYMBOL_GPL vmlinux 0xc0c98ba9 pci_ioremap_bar
+EXPORT_SYMBOL_GPL vmlinux 0xc0df41fb perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0xc0ee26d6 pm_generic_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0xc0eeee5e cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar
+EXPORT_SYMBOL_GPL vmlinux 0xc1456533 debugfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc197eced crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc23a11a0 rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0xc26d3b63 sata_async_notification
+EXPORT_SYMBOL_GPL vmlinux 0xc2cf0163 pci_scan_child_bus
+EXPORT_SYMBOL_GPL vmlinux 0xc2d922a1 inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable
+EXPORT_SYMBOL_GPL vmlinux 0xc2e20fa2 relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0xc321972d uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0xc32481b8 ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL vmlinux 0xc325bb9c mce_chrdev_ops
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc3a4f2f5 dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0xc3de15bd ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xc3e47ca4 inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0xc3e5f29b smp_ops
+EXPORT_SYMBOL_GPL vmlinux 0xc4034caa enable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xc4136ded fuse_direct_io
+EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long
+EXPORT_SYMBOL_GPL vmlinux 0xc42f2f94 xenbus_read_driver_state
+EXPORT_SYMBOL_GPL vmlinux 0xc43f6119 wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0xc451867b usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL vmlinux 0xc45e6a98 input_ff_event
+EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string
+EXPORT_SYMBOL_GPL vmlinux 0xc48e67b1 device_add
+EXPORT_SYMBOL_GPL vmlinux 0xc4ce6189 idle_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask
+EXPORT_SYMBOL_GPL vmlinux 0xc53518bf anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xc54169fa inet6_destroy_sock
+EXPORT_SYMBOL_GPL vmlinux 0xc5b6f41a page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0xc5e5af64 unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc5fe70c4 rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc650a370 device_rename
+EXPORT_SYMBOL_GPL vmlinux 0xc6554cc9 relay_close
+EXPORT_SYMBOL_GPL vmlinux 0xc68c3921 dm_put
+EXPORT_SYMBOL_GPL vmlinux 0xc68eb497 power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xc6ac8912 ata_port_desc
+EXPORT_SYMBOL_GPL vmlinux 0xc6af18c5 invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0xc6b5314b __pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xc6bbcb66 __scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0xc6e99834 find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xc7bd3426 preempt_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc7df1606 kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xc7e05181 find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0xc836bea5 ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xc8576a8f platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0xc85f9715 inotify_remove_watch_locked
+EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain
+EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event
+EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc8f5006a ata_pci_device_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource
+EXPORT_SYMBOL_GPL vmlinux 0xc946d76f blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0xc94bad32 usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc95496dd pci_create_slot
+EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist
+EXPORT_SYMBOL_GPL vmlinux 0xc9a060ea ata_sff_pause
+EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xca2c0f22 modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xca5f8265 crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0xca71a7b4 dm_rh_update_states
+EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcb0b9b9f i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL vmlinux 0xcb6bb0ba __root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xcb8d9ca9 ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0xcbc667ae ab8500_write
+EXPORT_SYMBOL_GPL vmlinux 0xcbc7ab33 devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xcbeaecb6 ata_sas_slave_configure
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcbf07c05 sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc25c042 ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xccca15f1 usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL vmlinux 0xcd144335 ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL vmlinux 0xcd1b9d24 tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0xcd1ca2cb iommu_domain_has_cap
+EXPORT_SYMBOL_GPL vmlinux 0xcdb22bc2 unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xcdc20049 regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xcdec283e dm_rh_recovery_start
+EXPORT_SYMBOL_GPL vmlinux 0xce34dc99 synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0xcec624c6 pciserial_remove_ports
+EXPORT_SYMBOL_GPL vmlinux 0xcecb49e9 crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0xcf186d77 shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xcf28f59e rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xcf500156 cpuidle_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0xcf6daa14 usb_autopm_put_interface
+EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback
+EXPORT_SYMBOL_GPL vmlinux 0xcfc30dd4 ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcfe748ff tc35892_block_read
+EXPORT_SYMBOL_GPL vmlinux 0xcff10069 usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL vmlinux 0xd05645a9 inotify_add_watch
+EXPORT_SYMBOL_GPL vmlinux 0xd0646fb6 bd_claim_by_disk
+EXPORT_SYMBOL_GPL vmlinux 0xd07ce9fe crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0xd0b316ab scsi_register_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0xd0be7365 usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd0c70652 __i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0xd0c8397a cpufreq_register_governor
+EXPORT_SYMBOL_GPL vmlinux 0xd1320334 pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd17d7329 dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0xd19fbdea kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xd1c9fd0e blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0xd1fa42b2 crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xd20c2ac4 security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd233d345 shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xd23e4bab device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL vmlinux 0xd23fb1bd __pm_runtime_put
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop
+EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0xd34aaa1d ata_sff_postreset
+EXPORT_SYMBOL_GPL vmlinux 0xd3573027 hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0xd381a338 ata_link_next
+EXPORT_SYMBOL_GPL vmlinux 0xd4051d5d shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xd4e99908 ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL vmlinux 0xd5149fba pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0xd538cf3d dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xd5857922 inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0xd59c8e13 get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0xd59d74fb fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0xd59f4f83 ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0xd5d889d5 usb_string
+EXPORT_SYMBOL_GPL vmlinux 0xd65e6937 eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0xd6a71b8b ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL vmlinux 0xd6d8cc83 usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id
+EXPORT_SYMBOL_GPL vmlinux 0xd6f4f9a3 regulator_put
+EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries
+EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout
+EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd7588263 debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd76c17aa rt_mutex_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd7d020bd device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0xd7f82dc1 usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0xd8021a21 cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xd80cbb0e spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xd8174142 usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0xd8301a7e register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0xd8487a9f class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xd86f6f54 crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xd89cab64 ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xd8a0e070 tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0xd921a4cb __mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0xd93641d1 sata_link_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xd945ba00 crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xd9783446 do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0xd9997f1a user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xd9abd698 dm_rh_region_context
+EXPORT_SYMBOL_GPL vmlinux 0xd9e67f69 sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xd9efb7a1 sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0xda077162 spi_sync
+EXPORT_SYMBOL_GPL vmlinux 0xda0c254c user_read
+EXPORT_SYMBOL_GPL vmlinux 0xda0c6b82 pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL vmlinux 0xda29f8b0 wmi_set_block
+EXPORT_SYMBOL_GPL vmlinux 0xda36eaa0 ata_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0xda393923 led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0xda49b184 usb_disable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0xda52a3f2 proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0xda6d6bad dm_device_name
+EXPORT_SYMBOL_GPL vmlinux 0xdab5b9b4 sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0xdaee52a2 ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xdaf3f20c sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option
+EXPORT_SYMBOL_GPL vmlinux 0xdb03547f netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdb946730 pci_disable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0xdbb25f5e acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL vmlinux 0xdbbe2492 scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0xdc1f8f2e register_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0xdc33332b class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xdc9b9e47 debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0xdcd42666 iommu_unmap
+EXPORT_SYMBOL_GPL vmlinux 0xdd5e472a regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0xdd64dffb lookup_create
+EXPORT_SYMBOL_GPL vmlinux 0xddcc9626 rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0xdde68fb0 rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xde0afd6d find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0xde33f2c6 __remove_pages
+EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain
+EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init
+EXPORT_SYMBOL_GPL vmlinux 0xde50808f device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xde726602 crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xde73ffc1 xenbus_frontend_closed
+EXPORT_SYMBOL_GPL vmlinux 0xde82eeeb rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xdf7d65c4 device_create
+EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name
+EXPORT_SYMBOL_GPL vmlinux 0xe05fe741 fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved
+EXPORT_SYMBOL_GPL vmlinux 0xe08a5bcf __audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xe0d84ffe tracepoint_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xe0f5b0dc xenbus_unmap_ring
+EXPORT_SYMBOL_GPL vmlinux 0xe1419cef acpi_smbus_register_callback
+EXPORT_SYMBOL_GPL vmlinux 0xe14984dc attribute_container_find_class_device
+EXPORT_SYMBOL_GPL vmlinux 0xe14a087d __blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xe14d031b usb_store_new_id
+EXPORT_SYMBOL_GPL vmlinux 0xe17a4ca4 module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0xe1e3efec regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xe2230270 securityfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xe2542d65 disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xe269ea99 driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe32d26c5 inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0xe35360f9 usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xe3cfb5b3 add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0xe41843fa unregister_virtio_driver
+EXPORT_SYMBOL_GPL vmlinux 0xe4428977 register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0xe49cde82 class_dev_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register
+EXPORT_SYMBOL_GPL vmlinux 0xe4a35521 ata_sas_port_init
+EXPORT_SYMBOL_GPL vmlinux 0xe4b0932b led_trigger_show
+EXPORT_SYMBOL_GPL vmlinux 0xe4c36dbc skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0xe4c69f31 usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL vmlinux 0xe4d3059a cpuidle_enable_device
+EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges
+EXPORT_SYMBOL_GPL vmlinux 0xe5215a8b rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0xe554eafb dm_rh_dec
+EXPORT_SYMBOL_GPL vmlinux 0xe561b258 transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0xe58151cb attribute_container_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe58b3160 da903x_write
+EXPORT_SYMBOL_GPL vmlinux 0xe5dd07b2 single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0xe5e14a03 pm_runtime_forbid
+EXPORT_SYMBOL_GPL vmlinux 0xe5e4b46a bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0xe5eb8db6 blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0xe5f7d2cd css_depth
+EXPORT_SYMBOL_GPL vmlinux 0xe605c51e pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport
+EXPORT_SYMBOL_GPL vmlinux 0xe630e4fa usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition
+EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe6551fea ata_sff_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xe6705efd blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xe6879035 sdio_f0_writeb
+EXPORT_SYMBOL_GPL vmlinux 0xe6a455ec ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xe6a7c46d sysdev_class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr
+EXPORT_SYMBOL_GPL vmlinux 0xe808ed88 screen_glyph
+EXPORT_SYMBOL_GPL vmlinux 0xe8234753 da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0xe857ac75 __pm_runtime_set_status
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe87f3a5d crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0xe88eea0f ipv6_find_tlv
+EXPORT_SYMBOL_GPL vmlinux 0xe89555dd ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0xe8a3603f dm_rh_start_recovery
+EXPORT_SYMBOL_GPL vmlinux 0xe8f58bbc acpi_bus_trim
+EXPORT_SYMBOL_GPL vmlinux 0xe91e99ca __class_register
+EXPORT_SYMBOL_GPL vmlinux 0xe928fd6d platform_device_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe95d6dd4 usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xe993dfc7 pci_find_ext_capability
+EXPORT_SYMBOL_GPL vmlinux 0xe9946feb ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xe9d34ed8 da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea296e6e xenbus_map_ring
+EXPORT_SYMBOL_GPL vmlinux 0xea3f5a45 inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xea43de41 ata_bmdma_setup
+EXPORT_SYMBOL_GPL vmlinux 0xea95964f inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeb0bac90 class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xeb7e1c62 usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0xeb85ced3 __srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0xeb8ab877 wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xeba753a8 device_create_vargs
+EXPORT_SYMBOL_GPL vmlinux 0xebe44e5e hypervisor_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del
+EXPORT_SYMBOL_GPL vmlinux 0xec274da7 platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0xec3bab4c ata_slave_link_init
+EXPORT_SYMBOL_GPL vmlinux 0xec6389db lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0xec742d3a remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0xec8a23c8 fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0xec9eea83 driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xeca979a0 da903x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xecab9178 ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0xecaed1e8 generic_subsys_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0xecc39493 dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0xed34d849 ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL vmlinux 0xed52121a __lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0xed5f760a dm_get_rq_mapinfo
+EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xede168a6 register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xede4f8e2 crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0xee17b35f destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0xee405c1d xenbus_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xee91e00f get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0xeeb7eee5 ata_host_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xeecc614c sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL vmlinux 0xef1a6c40 usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request
+EXPORT_SYMBOL_GPL vmlinux 0xef4c8f74 dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0xef642317 generic_fh_to_parent
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xef6fb629 crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xefa8e35b scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0xefacbb0d kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xefb9035a sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0xefcef991 ata_std_bios_param
+EXPORT_SYMBOL_GPL vmlinux 0xefd76dd1 set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xefe2346d dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL vmlinux 0xf008ac31 crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xf02b8fb9 inotify_rm_wd
+EXPORT_SYMBOL_GPL vmlinux 0xf057d883 device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL vmlinux 0xf07b00b2 ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf0ee5ac2 tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xf152cac6 usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0xf1847fc7 relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0xf1e6a2f8 inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0xf1fe65cb crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf211ee31 ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0xf2a2f814 ata_sff_hsm_move
+EXPORT_SYMBOL_GPL vmlinux 0xf2e0aa50 attribute_container_register
+EXPORT_SYMBOL_GPL vmlinux 0xf2e19c34 driver_find
+EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf395b63e cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL vmlinux 0xf3971964 usb_sg_wait
+EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf3bfe23c xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0xf3dd95d1 inotify_init_watch
+EXPORT_SYMBOL_GPL vmlinux 0xf40ebf65 sysdev_class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xf4614b74 flush_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0xf468998a fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0xf46d4875 regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xf474d34a ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf4a8385f iommu_domain_free
+EXPORT_SYMBOL_GPL vmlinux 0xf4bf626a inode_add_to_lists
+EXPORT_SYMBOL_GPL vmlinux 0xf4c26fb0 usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0xf4f86751 bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0xf5007d93 ata_std_postreset
+EXPORT_SYMBOL_GPL vmlinux 0xf509f6b0 wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0xf518ffb1 blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0xf532558f __add_pages
+EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0xf540c08e relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf5593017 sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xf5838e58 input_ff_create
+EXPORT_SYMBOL_GPL vmlinux 0xf589b247 ata_eh_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf5c286de usb_poison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xf5c2f685 unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0xf5d8ec8e ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0xf5daae96 ip6_sk_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xf613aaaf crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0xf63a37b8 ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id
+EXPORT_SYMBOL_GPL vmlinux 0xf6a15512 pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather
+EXPORT_SYMBOL_GPL vmlinux 0xf70f9e05 acpi_get_pci_dev
+EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xf745d1e6 blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0xf757cbfa regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error
+EXPORT_SYMBOL_GPL vmlinux 0xf7a87a4a platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0xf7b1ae0d __pci_complete_power_transition
+EXPORT_SYMBOL_GPL vmlinux 0xf7befebd ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0xf7e7fa82 get_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf82f4e66 attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0xf849bab8 ata_acpi_gtm
+EXPORT_SYMBOL_GPL vmlinux 0xf85d1a1d crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf868475a print_context_stack_bp
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf8a662de bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0xf8c3b6a2 inotify_dentry_parent_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0xf8d8a6b2 sdio_align_size
+EXPORT_SYMBOL_GPL vmlinux 0xf8e512f8 uhci_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit
+EXPORT_SYMBOL_GPL vmlinux 0xf8fa675c preempt_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0xf90450c2 ata_eh_thaw_port
+EXPORT_SYMBOL_GPL vmlinux 0xf918d43d vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match
+EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw
+EXPORT_SYMBOL_GPL vmlinux 0xf97b6c0c usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0xf97daa62 devres_remove
+EXPORT_SYMBOL_GPL vmlinux 0xf9924426 arch_add_memory
+EXPORT_SYMBOL_GPL vmlinux 0xf9969710 sdio_memcpy_toio
+EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xf9d66b60 crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0xf9ec75d4 ata_port_pbar_desc
+EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register
+EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0xfa567da9 bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xfa8e78de ring_buffer_resize
+EXPORT_SYMBOL_GPL vmlinux 0xfa9ab765 ata_std_prereset
+EXPORT_SYMBOL_GPL vmlinux 0xfacbe02e apic
+EXPORT_SYMBOL_GPL vmlinux 0xfae71240 ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0xfaf57c68 pci_enable_rom
+EXPORT_SYMBOL_GPL vmlinux 0xfb07f68e __rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb3fbd42 blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xfb48885c tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0xfb6992bb bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0xfb6ef712 ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xfb882fb7 wmi_query_block
+EXPORT_SYMBOL_GPL vmlinux 0xfbd14367 class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xfbea6420 crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfc26285d put_driver
+EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value
+EXPORT_SYMBOL_GPL vmlinux 0xfc9a4e7a ata_do_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0xfca042e1 crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0xfcc4c63e pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xfcfed8d3 device_del
+EXPORT_SYMBOL_GPL vmlinux 0xfd0af180 __get_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xfd35e884 usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref
+EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable
+EXPORT_SYMBOL_GPL vmlinux 0xfda50612 tc35892_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xfdab1f21 dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0xfdc95b18 dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL vmlinux 0xfdd6f87e sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfe4147d6 ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xfe4dfd95 input_ff_upload
+EXPORT_SYMBOL_GPL vmlinux 0xfe501fd7 pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine
+EXPORT_SYMBOL_GPL vmlinux 0xfe72c118 __rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfeaa1bcf dm_region_hash_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xfecc749a xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfeeda928 debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a13c pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0xff094afa kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xff0a7e0a pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0xff18bbdd mm_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback
+EXPORT_SYMBOL_GPL vmlinux 0xff5cfd50 input_class
+EXPORT_SYMBOL_GPL vmlinux 0xff5cffe5 crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0xff6a51d2 led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL vmlinux 0xff969c34 spi_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffd62de8 spi_unregister_master
diff --git a/debian.master/abi/2.6.35-2.3/amd64/virtual.modules b/debian.master/abi/2.6.35-2.3/amd64/virtual.modules
new file mode 100644
index 00000000000..3fefaa63aa2
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/amd64/virtual.modules
@@ -0,0 +1,497 @@
+8021q
+8139cp
+8139too
+8390
+acpi_memhotplug
+acpi_pad
+acpiphp
+act_gact
+act_ipt
+act_mirred
+act_nat
+act_pedit
+act_police
+act_simple
+act_skbedit
+aes_generic
+aesni-intel
+aes-x86_64
+af_802154
+af_key
+af-rxrpc
+ah4
+ah6
+ahci
+ansi_cprng
+anubis
+appletalk
+arc4
+arptable_filter
+arp_tables
+arpt_mangle
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+atm
+authenc
+ax25
+binfmt_misc
+blowfish
+bonding
+br2684
+bridge
+bsd_comp
+btrfs
+BusLogic
+camellia
+can
+can-bcm
+can-raw
+cast5
+cast6
+ccm
+cfg80211
+cifs
+cirrusfb
+clip
+cls_basic
+cls_flow
+cls_fw
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+configfs
+cpuid
+cpu-notifier-error-inject
+crc32c
+crc32c-intel
+crc7
+crc-ccitt
+crc-itu-t
+cryptd
+cryptoloop
+crypto_null
+ctr
+cts
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dccp_probe
+decnet
+deflate
+des_generic
+dm-crypt
+dm-queue-length
+dm-service-time
+dm-zero
+dn_rtmsg
+dummy
+e1000
+e1000e
+ebt_802_3
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_ulog
+ebt_vlan
+econet
+einj
+em_cmp
+em_meta
+em_nbyte
+em_text
+em_u32
+eql
+esp4
+esp6
+evbug
+evtchn
+exportfs
+fat
+faulty
+fb_sys_fops
+fcrypt
+floppy
+fpu
+gameport
+garp
+gcm
+gf128mul
+ghash-clmulni-intel
+ghash-generic
+ghes
+hangcheck-timer
+hed
+ieee802154
+ifb
+ip6_queue
+ip6table_filter
+ip6table_mangle
+ip6table_raw
+ip6_tables
+ip6table_security
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_LOG
+ip6t_mh
+ip6t_REJECT
+ip6t_rt
+ip6_tunnel
+ipcomp
+ipcomp6
+ipddp
+ip_gre
+ipip
+ip_queue
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+ip_tables
+iptable_security
+ipt_addrtype
+ipt_ah
+ipt_CLUSTERIP
+ipt_ecn
+ipt_ECN
+ipt_LOG
+ipt_MASQUERADE
+ipt_NETMAP
+ipt_REDIRECT
+ipt_REJECT
+ipt_ULOG
+ip_vs
+ip_vs_dh
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_nq
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ipx
+ircomm
+ircomm-tty
+irda
+irlan
+irnet
+iscsi_tcp
+iscsi_trgt
+isofs
+joydev
+khazad
+lapb
+lec
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libcrc32c
+libiscsi
+libiscsi_tcp
+libsas
+linear
+llc2
+lp
+lrw
+lzo
+lzo_compress
+mac80211
+mce-inject
+mce-xeon75xx
+md4
+michael_mic
+microcode
+mii
+mpoa
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+msdos
+msr
+multipath
+nbd
+ne2k-pci
+netconsole
+netrom
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_ipv4
+nf_conntrack_ipv6
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_proto_dccp
+nf_conntrack_proto_gre
+nf_conntrack_proto_sctp
+nf_conntrack_proto_udplite
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_proto_dccp
+nf_nat_proto_gre
+nf_nat_proto_sctp
+nf_nat_proto_udplite
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nfnetlink
+nfnetlink_log
+nfnetlink_queue
+nf_tproxy_core
+nvram
+oprofile
+output
+p4-clockmod
+p8023
+parport
+parport_pc
+pcbc
+pcc-cpufreq
+pcnet32
+pcrypt
+phonet
+pktgen
+pn_pep
+power_meter
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+pppoatm
+pppoe
+pppox
+ppp_synctty
+psmouse
+qla1280
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid6test
+raid_class
+raw
+reed_solomon
+rmd128
+rmd160
+rmd256
+rmd320
+rose
+rxkad
+salsa20_generic
+salsa20-x86_64
+sch_atm
+sch_cbq
+sch_drr
+sch_dsmark
+sch_gred
+sch_hfsc
+sch_htb
+sch_ingress
+sch_multiq
+sch_netem
+sch_prio
+sch_red
+sch_sfq
+sch_tbf
+sch_teql
+scsi_tgt
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_wait_scan
+sctp
+sctp_probe
+seed
+seqiv
+serio_raw
+serpent
+serport
+sha1_generic
+sha256_generic
+sha512_generic
+sit
+slip
+smbfs
+snd
+snd-ens1370
+snd-hrtimer
+snd-hwdep
+snd-page-alloc
+snd-pcm
+snd-pcsp
+snd-rawmidi
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-timer
+softdog
+soundcore
+speedstep-lib
+squashfs
+stp
+syscopyarea
+sysfillrect
+sysimgblt
+tcp_bic
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_probe
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcrypt
+tea
+tgr192
+tipc
+ts_bm
+ts_fsm
+ts_kmp
+tulip
+tunnel4
+tunnel6
+twofish
+twofish_common
+twofish-x86_64
+ufs
+uinput
+usb-storage
+usbtouchscreen
+vesafb
+veth
+vfat
+vga16fb
+vgastate
+video
+virtio_balloon
+vmac
+vmw_pvscsi
+vmxnet3
+wanrouter
+wp512
+x25
+xcbc
+xen-blkfront
+xen-fbfront
+xenfs
+xen-kbdfront
+xen-netfront
+xfrm4_mode_beet
+xfrm4_mode_transport
+xfrm4_mode_tunnel
+xfrm4_tunnel
+xfrm6_mode_beet
+xfrm6_mode_ro
+xfrm6_mode_transport
+xfrm6_mode_tunnel
+xfrm6_tunnel
+xfrm_ipcomp
+xfrm_user
+xfs
+xor
+x_tables
+xt_CLASSIFY
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlimit
+xt_connmark
+xt_CONNSECMARK
+xt_conntrack
+xt_CT
+xt_dccp
+xt_dscp
+xt_DSCP
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_HL
+xt_iprange
+xt_LED
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_NFLOG
+xt_NFQUEUE
+xt_NOTRACK
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_RATEEST
+xt_realm
+xt_recent
+xts
+xt_sctp
+xt_SECMARK
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_TCPMSS
+xt_tcpudp
+xt_TEE
+xt_time
+xt_TPROXY
+xt_TRACE
+xt_u32
+zlib
+zlib_deflate
diff --git a/debian.master/abi/2.6.35-2.3/armel/omap b/debian.master/abi/2.6.35-2.3/armel/omap
new file mode 100644
index 00000000000..55a830b714e
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/armel/omap
@@ -0,0 +1,8261 @@
+EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble
+EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle
+EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k
+EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks
+EXPORT_SYMBOL drivers/block/paride/paride 0x0467b8c0 paride_register
+EXPORT_SYMBOL drivers/block/paride/paride 0x08071b5d pi_read_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0x2e196020 pi_write_block
+EXPORT_SYMBOL drivers/block/paride/paride 0x41c796c0 pi_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x6bc2185d pi_write_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0x6ef43c55 pi_do_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x9d072f73 paride_unregister
+EXPORT_SYMBOL drivers/block/paride/paride 0xa59e7fb5 pi_read_block
+EXPORT_SYMBOL drivers/block/paride/paride 0xc1b4b388 pi_schedule_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0xc54dab35 pi_connect
+EXPORT_SYMBOL drivers/block/paride/paride 0xc82033f0 pi_disconnect
+EXPORT_SYMBOL drivers/block/paride/paride 0xe0a88428 pi_release
+EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte
+EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xba292d2a i2c_bit_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xd2ca76f1 i2c_bit_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xf705f2d8 i2c_pca_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xf7b95c02 i2c_pca_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xba7e111c i2c_pcf_add_bus
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x1cd546cd gameport_set_phys
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x24124737 gameport_start_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x25afe8c7 __gameport_register_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x49ef8129 gameport_close
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x944788d3 gameport_unregister_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xbdf7caf7 __gameport_register_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xe4b97d4b gameport_unregister_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xe6065b8e gameport_open
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xf755e116 gameport_stop_polling
+EXPORT_SYMBOL drivers/input/input-polldev 0x0c8f3e02 input_allocate_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x1662c74f input_free_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x3080aa85 input_unregister_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xdd8ac991 input_register_polled_device
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x20a6c76a ad714x_enable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x9d6ce3c1 ad714x_remove
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xa94192e3 ad714x_probe
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xb79e8447 ad714x_disable
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x101c0bfd sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x2ee501b2 sparse_keymap_report_event
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x5302c426 sparse_keymap_setup
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x72b89207 sparse_keymap_report_entry
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x89aa088a sparse_keymap_free
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x93350182 sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL drivers/isdn/capi/capifs 0xb9fe3b51 capifs_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/capifs 0xd6dca05f capifs_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x146089f6 capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1ea9e37b capi_ctr_down
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2456e579 capi20_put_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x55a578a4 capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x857608c4 capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9e06987d detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc9c8e7af capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xce808d80 attach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xda8e4cc2 capi20_register
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe7eb15ee capi_ctr_suspend_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x01c08db2 b1_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x046288ec b1_parse_version
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x19abb7e6 b1_load_config
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2fe8ba19 b1_alloc_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x4229e262 b1_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x73a5022b b1_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7d3c06a3 b1_load_t4file
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8115182f b1_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb9232046 b1_loaded
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc1e0440e b1_getrevision
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc9bad664 b1_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe709789c b1ctl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xea3bf014 b1_free_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x427ea441 FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa9a1ee40 FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb4870f64 FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xd43fd63f hisax_init_pcmcia
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x9c5712e7 isdn_ppp_register_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xd124e199 register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xf186768d isdn_ppp_unregister_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x08ff965f recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x185319b5 mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x189f175a recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x255c63d6 mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2de03d97 dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3042df76 recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x44edc7de l1_event
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x626fe537 recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x69aa6887 mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x75effbee queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x85dadcfb mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8f5e9b1c get_next_dframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8fe76b4f mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x990520fa mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9c998166 bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9dd0b60f confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa5b6037c get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb8278044 mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdc18767b mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe4fc8151 mISDN_freedchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xea8936a9 recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfb997f09 create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register
+EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul
+EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp
+EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv
+EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page
+EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x1e687ffe ir_raw_handler_unregister
+EXPORT_SYMBOL drivers/media/IR/ir-core 0xcb80c3ff ir_raw_handler_register
+EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xfad98a97 max2165_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x38e5aac7 mc44s803_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xcb354757 mt2060_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x121b1308 mt2266_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xe992f0e8 mxl5005s_attach
+EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xb0ac32af qt1010_attach
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0xb790e220 xc2028_attach
+EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xe0ee0888 xc5000_attach
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x07139477 flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0ce678bf flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x26b7ccd0 flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3095e60a flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4e0cbb72 flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x57b7c04f flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x66cc2387 flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6e78c3a2 flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x90fb3c06 flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa8e73092 flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc9cc8f88 flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xccc47f2c flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcdb5deeb flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x074543e4 dvb_net_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x15c26f49 dvb_dmx_swfilter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x185392b2 dvb_register_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x210000f5 dvb_net_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31409c4b dvb_dmx_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x37a34419 dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4d150154 dvb_unregister_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5dd8d195 dvb_ca_en50221_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5e80ec71 dvb_dmx_swfilter_204
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6225816a dvb_ringbuffer_flush
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x687066ad dvb_ringbuffer_read
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x733022cd dvb_generic_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x742682d8 dvb_generic_open
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x746b02ad dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83a2ef94 dvb_ringbuffer_empty
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x883c17c6 dvb_ringbuffer_read_user
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90b3c91f dvb_ringbuffer_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa5cbd962 dvb_generic_ioctl
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa9c12564 dvb_dmxdev_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb5f93340 dvb_dmx_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbf5b56f9 dvb_frontend_reinitialise
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc9db51a7 dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcd6c036b dvb_dmx_swfilter_packets
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcf59b252 dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd05fd9f8 dvb_unregister_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd71cc97b dvb_register_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xda2ac572 dvb_frontend_detach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe379b41b dvb_ca_en50221_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe6c824b1 dvb_unregister_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe6cacece dvb_dmxdev_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xeae41dfa dvb_register_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed9e5ee7 dvb_ringbuffer_free
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf487376d dvb_ringbuffer_avail
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfb25f454 dvb_ringbuffer_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x149223ae dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2beb9421 dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x51fa0551 dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x552b756e dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x81a64171 usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xedec1c12 dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf44aedec dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xe7808284 af9005_rc_decode
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x03ef4ddc dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2f60d0b2 dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4863eafe dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5b6d1c4f dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x61ea88d4 dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x84ae04ca dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xbc8276c5 dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xbef02275 dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe16f54e8 dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf2dd5661 dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf4f8cde7 dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xb3a03fb8 af9013_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x1bb1b3a2 atbm8830_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x56ca3fad au8522_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xe1a18ade bcm3510_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x8e8bca33 cx22700_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xcd985fb7 cx22702_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x65e16a60 cx24110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x264f2862 cx24113_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x49de2c8f cx24113_agc_callback
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xaff61151 cx24116_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xeb17d1d0 cx24123_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xfbf6aea7 cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x19857f35 dib0070_set_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x2de31190 dib0070_get_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7085d4b1 dib0070_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x79dc49d9 dib0070_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xd64e0c04 dib0070_ctrl_agc_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x1bf2eacb dib0090_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x22e48a32 dib0090_dcc_freq
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x50bf1264 dib0090_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x5153ed12 dib0090_gain_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x649f33fe dib0090_register
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x856f246d dib0090_get_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xce69d4d7 dib0090_get_current_gain
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xe2c14d4f dib0090_pwm_gain_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x87fe355b dib3000mb_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x018e4763 dib3000mc_pid_parse
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x0ed37c88 dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x484657be dib3000mc_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x6ddf81f5 dib3000mc_pid_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x99d1130c dib3000mc_set_config
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xecc7c13a dib3000mc_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x6c75ea81 dib7000m_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x966fdedf dib7000m_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1a448df2 dib7000p_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x270d0413 dib7000p_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x2bd807c7 dib7000p_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x31280c6b dib7000p_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x3dbac7da dib7000p_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa00a643e dib7000pc_detection
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xbbfa9b9a dib7000p_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf9f7d5cb dib7000p_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x0e1bc846 dib8000_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x17202276 dib8000_pwm_agc_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x17588db8 dib8000_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x19dd0cfd dib8000_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1b0c8864 dib8000_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4e680f78 dib8000_get_adc_power
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x78f83230 dib8000_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa9681990 dib8000_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc04d21ef dib8000_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd577cad1 dib8000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe368c27d dib8000_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x4ac36f5d dibx000_init_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x659680af dibx000_get_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x68d9a3d8 dibx000_reset_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xcf05f62a dibx000_exit_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/drx397xD 0xb6be5f45 drx397xD_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xb0d2a599 ds3000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xef473a20 dvb_pll_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ec100 0x61687902 ec100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xee264c28 isl6405_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xcc1c0db7 isl6421_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x2ef808b4 isl6423_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x3000bbd4 itd1000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x4ac0ba3e l64781_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x99f3429d lgdt3305_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xd050916d lgdt330x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gl5 0xfcfb14f9 lgs8gl5_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xff0e590a lgs8gxx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x41d18c8d lnbh24_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x9dc9f0e6 lnbp21_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x9c470e30 mb86a16_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xc952d577 mt312_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xc6afe836 mt352_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xe6eb39fb nxt200x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x4aba361c nxt6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x869d4019 or51132_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x6e62fa3b or51211_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x6119bce1 s5h1409_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x0a8db219 s5h1411_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x68851709 s5h1420_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xda8d3cc3 s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x01b6717e si21xx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x36efed76 sp8870_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x0467811c sp887x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x9bd7fd8a stb0899_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x014c69e1 stb6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x0db53b57 stb6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xbd13ea6a stv0288_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xb45fed68 stv0297_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x429526f6 stv0299_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x166c424e stv0900_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x0b4054ba stv090x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x6cabffb8 stv6110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xf7d420af stv6110x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xb0276872 tda10021_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xf395bd6c tda10023_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0xa77369b4 tda10048_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x8411b713 tda10046_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xed0096af tda10045_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x4ac765f5 tda10086_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda665x 0xbe4675c8 tda665x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xa7dfc54f tda8083_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0xb9d94bd5 tda8261_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x313e0000 tda826x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xad0f63f7 tua6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x54daaa22 ves1820_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x25dbcbc1 ves1x93_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0xf17da48b zl10036_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x841f9b48 zl10039_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xc6b7324f zl10353_attach
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x819e7b30 cx231xx_register_extension
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xfad295f7 cx231xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x26da5576 em28xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xdb7e32ef em28xx_register_extension
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x0b44585c gspca_dev_probe
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x49a7ab37 gspca_auto_gain_n_exposure
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x59c77fe5 gspca_disconnect
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x59e1a42b gspca_resume
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x5b8c4fe7 gspca_frame_add
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x83590ed1 gspca_get_i_frame
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x94d576df gspca_suspend
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x11692d78 soc_camera_xlate_by_fourcc
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x360bdf4b soc_camera_apply_sensor_flags
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x9c560540 soc_camera_host_register
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xb6e0f98c soc_camera_host_unregister
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc
+EXPORT_SYMBOL drivers/media/video/tveeprom 0xc1e7335d tveeprom_read
+EXPORT_SYMBOL drivers/media/video/tveeprom 0xf26a90b1 tveeprom_hauppauge_analog
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x02bdc9c0 RingQueue_WakeUpInterruptible
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x230ed35f usbvideo_RegisterVideoDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x2ee9ad3c usbvideo_register
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x4f8f80e1 usbvideo_DeinterlaceFrame
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x79172f82 RingQueue_Enqueue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x92ff08c3 usbvideo_Deregister
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xa0e29eda usbvideo_AllocateDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xadcd846e RingQueue_Flush
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd26d1f7c RingQueue_Dequeue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xf8e3ffad usbvideo_TestPattern
+EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x3d6fa959 v4l_compat_translate_ioctl
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x38a3a113 v4l2_chip_ident_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x7057c6cb v4l2_chip_match_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x0a211df8 v4l2_m2m_mmap
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x5c5951dc v4l2_m2m_get_vq
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xc377e98e v4l2_m2m_job_finish
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xd23a058b v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x1b0829bd videobuf_dvb_dealloc_frontends
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x62535296 videobuf_dvb_register_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x89fc414b videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x8e4a3498 videobuf_dvb_get_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xe4ebce79 videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xfe372039 videobuf_dvb_find_frontend
+EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period
+EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x27b5ddbd video_usercopy
+EXPORT_SYMBOL drivers/media/video/videodev 0x30e892b2 video_device_release_empty
+EXPORT_SYMBOL drivers/media/video/videodev 0x336573ec video_ioctl2
+EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl
+EXPORT_SYMBOL drivers/media/video/videodev 0x79d8ec5d video_device_alloc
+EXPORT_SYMBOL drivers/media/video/videodev 0x813ebf6f video_device_release
+EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct
+EXPORT_SYMBOL drivers/media/video/videodev 0xe7453f49 video_register_device_no_warn
+EXPORT_SYMBOL drivers/media/video/videodev 0xe8aa9d12 video_devdata
+EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name
+EXPORT_SYMBOL drivers/media/video/videodev 0xfac61278 video_register_device
+EXPORT_SYMBOL drivers/media/video/videodev 0xfcc7af29 video_unregister_device
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x67d83306 pasic3_write_register
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xd42586f9 pasic3_read_register
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2d655eac mc13783_reg_write
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2dc2f309 mc13783_irq_request_nounmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x4338039d mc13783_lock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xa4fe3f09 mc13783_unlock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xa7cdceee mc13783_irq_free
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xcd24624b mc13783_irq_ack
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xd4662796 mc13783_irq_status
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe01f1d25 mc13783_irq_unmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe13c9ce5 mc13783_irq_request
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xeb9638fb mc13783_reg_read
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xed11f458 mc13783_irq_mask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xf62770ad mc13783_reg_rmw
+EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2
+EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1
+EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib
+EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led
+EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw
+EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x2a81afe4 ad_dpot_probe
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xfeb03d1c ad_dpot_remove
+EXPORT_SYMBOL drivers/misc/c2port/core 0x1e50051e c2port_device_register
+EXPORT_SYMBOL drivers/misc/c2port/core 0x1efad571 c2port_device_unregister
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x24bf638d cfi_varsize_frob
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x41f10719 cfi_read_pri
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x9b08a51b cfi_fixup
+EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x9822aff6 mtd_do_chip_probe
+EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xd7eea414 lpddr_cmdset
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x49874631 mtd_concat_create
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x81907a0b mtd_concat_destroy
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x217c9da6 onenand_default_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x7b141648 flexonenand_region
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xa9f0a6fa onenand_addr
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xf1bd8fb3 onenand_scan_bbt
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x104408c5 hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x6529f952 hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x76faddf6 hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe35da3a7 hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xfcd447d6 hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0034d1af sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2267129d sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x52806cd9 sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x616978cd sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x649accd6 sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9cac4b19 sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xad57573c irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb2d5e8ea irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb5306d92 sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe0a857b6 sirdev_receive
+EXPORT_SYMBOL drivers/net/pppox 0x7faf6738 pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/pppox 0x9ef1f099 register_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0xaa21b639 pppox_ioctl
+EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x11b9ace6 hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x29d19557 hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x3441088b detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x36984c5a hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x5915ac94 attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x9086913d unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xa37fe8c7 register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xc68ca2a6 hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xde37d132 hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xea7c7422 unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xfb9fcd2e alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x265946c8 ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4be94f00 ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x708d7f75 ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x90ebe6e0 ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00e67f73 ath9k_cmn_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x5fd253d1 ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa01d1ec8 ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa8f8d824 ath9k_cmn_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb08270c5 ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xccb211a1 ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf7401052 ath9k_cmn_rx_skb_preprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x032b4190 ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x04698043 ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x04cf8b22 ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0aec48e5 ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b00db70 ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0fdb7b3d ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x104412d1 ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x175ff590 ath9k_hw_setcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x184b3899 ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x18aa8b04 ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1bcf3e1e ath9k_hw_extend_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e55ecd8 ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f3bc828 ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x200a7254 ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x222b6540 ath9k_hw_setmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2502d4ee ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f5f9788 ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a357730 ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b312105 ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3bdafc96 ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x426cd5db ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45946e47 ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x47f04b21 ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d1ad640 ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4defbebf ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f3719fd ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x52622d12 ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x53000d7f ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x53517461 ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x53e36713 ath9k_hw_keyisvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x54a651ea ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x54aac5be ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56b9a59a ath9k_hw_cleartxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e76995c ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x62614d35 ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x62ad87c8 ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x631805ba ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65e4f8c1 ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e2c01a1 ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ebb5166 ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x712090fd ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7356d204 ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x760bf891 ath9k_hw_getcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x775539e2 ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7805685b ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a934a79 ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ca6b29d ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e2a3f36 ath9k_hw_procmibevent
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f6de561 ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85663dd6 ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x871f8231 ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d0f4665 ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x96548895 ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97c8d9aa ath9k_hw_set_keycache_entry
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d0db96f ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa83c24ce ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaca84af6 ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae43d908 ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb027f889 ath9k_hw_stoptxdma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0d944be ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb126c50c ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb462ea09 ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb6258815 ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb6eb5ca2 ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbd8e9ac ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd9c016b ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbdeb449a ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc97bff03 ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd05cf8d3 ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0bef31e ath9k_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd2c61fe7 ath9k_hw_stoppcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4781204 ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd57bb634 ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd9043fc3 ath9k_hw_keysetmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde2183fe ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xeabb7936 ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xefac72d9 ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xefff5db0 ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5c2b53a ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5e8a77b ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc05b981 ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfec80ba5 ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x00608161 hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1675a67b hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2a9645d9 hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2f6fb5fc hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x31763907 hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x329f0f30 hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4995939b hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x54d93112 hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5ae647f8 hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x716a42a7 hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x822e30d6 hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8ea3948a hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9011378c hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x94d02a90 hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9c5ae120 hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb72169ae hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xba16736b hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbc93c7d2 prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc2bf18ab hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc609d0a7 hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcca4b987 hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd361e10e hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd92516a9 hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe91fc6c2 hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xed6f3ded hostap_setup_dev
+EXPORT_SYMBOL drivers/parport/parport 0x09fc7bb7 parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL drivers/parport/parport 0x1347c5dd parport_ieee1284_write_compat
+EXPORT_SYMBOL drivers/parport/parport 0x15aef767 parport_unregister_driver
+EXPORT_SYMBOL drivers/parport/parport 0x219d619c parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0x2717abf2 parport_register_driver
+EXPORT_SYMBOL drivers/parport/parport 0x31c80973 parport_read
+EXPORT_SYMBOL drivers/parport/parport 0x365bc425 parport_write
+EXPORT_SYMBOL drivers/parport/parport 0x413c2498 parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0x4cdd84c1 parport_ieee1284_epp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt
+EXPORT_SYMBOL drivers/parport/parport 0x5145307a parport_set_timeout
+EXPORT_SYMBOL drivers/parport/parport 0x55b47def parport_find_number
+EXPORT_SYMBOL drivers/parport/parport 0x55c26d33 parport_claim
+EXPORT_SYMBOL drivers/parport/parport 0x583e9add parport_ieee1284_epp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0x6ab34225 parport_ieee1284_read_nibble
+EXPORT_SYMBOL drivers/parport/parport 0x6ff7baf0 parport_wait_event
+EXPORT_SYMBOL drivers/parport/parport 0x70c23336 parport_ieee1284_read_byte
+EXPORT_SYMBOL drivers/parport/parport 0x8127e705 parport_announce_port
+EXPORT_SYMBOL drivers/parport/parport 0x83895d8d parport_register_device
+EXPORT_SYMBOL drivers/parport/parport 0x99b02b97 parport_claim_or_block
+EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler
+EXPORT_SYMBOL drivers/parport/parport 0xa5be72db parport_register_port
+EXPORT_SYMBOL drivers/parport/parport 0xa692dd4c parport_get_port
+EXPORT_SYMBOL drivers/parport/parport 0xaed8e8f4 parport_unregister_device
+EXPORT_SYMBOL drivers/parport/parport 0xb44d6870 parport_wait_peripheral
+EXPORT_SYMBOL drivers/parport/parport 0xc2ea85c1 parport_release
+EXPORT_SYMBOL drivers/parport/parport 0xe649f48e parport_find_base
+EXPORT_SYMBOL drivers/parport/parport 0xf0441986 parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0xf5741c14 parport_negotiate
+EXPORT_SYMBOL drivers/parport/parport 0xf965c240 parport_remove_port
+EXPORT_SYMBOL drivers/parport/parport 0xfc391ade parport_put_port
+EXPORT_SYMBOL drivers/parport/parport 0xfda5b9df parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL drivers/parport/parport_pc 0x90714f99 parport_pc_probe_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0x972f4dbb parport_pc_unregister_port
+EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x4c9568b6 pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1eaf0364 fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x24fd1560 fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x25e91289 fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x43508286 fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa91a81b4 fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe5c8d69a fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe9f8b702 fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x079f4719 fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x07a59e14 fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x08d52010 fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0e216927 fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0fe6216a fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x15620468 fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2048927b fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x24b60416 fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2b45e313 fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2cc92565 fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3585f45c fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x35da8cd9 fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3953e5d0 fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x480818bd fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4bb23331 fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x60c2b835 fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x63e03411 fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x698c99b3 fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7215c08b fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7e56e1e5 fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8575f41b fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x866bb4af fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x88c09c25 fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x88cf5246 fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x900102a0 fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9011004b fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b03b624 fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa6c9e6d4 fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa76ea7eb fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xab7ae827 fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaf855d6b fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb1192a86 fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb42c42ac libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbf0958a4 fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcf3072d9 fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd572d06e fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdbf0b5f2 fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdf00d1b7 _fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeebf514d fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf34d79bd fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf477c32f fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc436357 fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/raid_class 0x77abbab1 raid_component_add
+EXPORT_SYMBOL drivers/scsi/raid_class 0x974db815 raid_class_attach
+EXPORT_SYMBOL drivers/scsi/raid_class 0xd4793722 raid_class_release
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x02bcd801 fc_host_post_vendor_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x04bcf1ae scsi_is_fc_vport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1d0f0be8 fc_remote_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x494c0962 fc_remote_port_rolechg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x660b41d0 scsi_is_fc_rport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x81aa5e61 fc_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x88be4182 fc_vport_create
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x90e71267 fc_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x985d911f fc_remote_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa403c65c fc_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb329c5bf fc_vport_terminate
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbd023b68 fc_block_scsi_eh
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf9d65bdc fc_host_post_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x09730d38 sas_read_port_mode_page
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x13f40339 sas_port_delete_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x22eda647 scsi_is_sas_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x31cf7f01 sas_rphy_remove
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x31e7f19a sas_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x388134af scsi_is_sas_rphy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x535f09ef sas_remove_children
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6c742d72 sas_phy_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7b6a63a8 sas_port_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x84b50d01 sas_port_alloc_num
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x883ce2ac sas_phy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9c3320a1 sas_rphy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xad6b56d3 sas_port_add_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbd8b8397 scsi_is_sas_port
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc0ba2f6a sas_phy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc6372cfd sas_end_device_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc7e755ec sas_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd17219b4 sas_expander_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xda056dd8 sas_port_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdebf0944 sas_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdfef18a6 sas_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe70281df sas_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xecccee58 sas_port_mark_backlink
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf3a08ee0 sas_phy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf8d4c5b6 sas_rphy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfa3f5800 sas_rphy_add
+EXPORT_SYMBOL drivers/spi/dw_spi 0x4be1aaab dw_spi_suspend_host
+EXPORT_SYMBOL drivers/spi/dw_spi 0x5b0a2f73 dw_spi_add_host
+EXPORT_SYMBOL drivers/spi/dw_spi 0x676fdb21 dw_spi_resume_host
+EXPORT_SYMBOL drivers/spi/dw_spi 0xfda12e0c dw_spi_remove_host
+EXPORT_SYMBOL drivers/ssb/ssb 0x0c0f3b29 ssb_dma_free_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0x1947f328 ssb_device_disable
+EXPORT_SYMBOL drivers/ssb/ssb 0x1fc1a6a9 ssb_dma_alloc_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0x294444bd ssb_clockspeed
+EXPORT_SYMBOL drivers/ssb/ssb 0x2b677663 ssb_bus_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0x3bece7d9 ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL drivers/ssb/ssb 0x3f7c464d ssb_bus_may_powerdown
+EXPORT_SYMBOL drivers/ssb/ssb 0x425695d0 ssb_bus_sdiobus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x55293e97 ssb_bus_resume
+EXPORT_SYMBOL drivers/ssb/ssb 0x6815c9df ssb_bus_suspend
+EXPORT_SYMBOL drivers/ssb/ssb 0x853674b9 ssb_device_is_enabled
+EXPORT_SYMBOL drivers/ssb/ssb 0x921ed2ae ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL drivers/ssb/ssb 0x9a4c9c35 ssb_driver_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0x9d3938d6 ssb_chipco_gpio_control
+EXPORT_SYMBOL drivers/ssb/ssb 0xb3f06c92 ssb_dma_translation
+EXPORT_SYMBOL drivers/ssb/ssb 0xbb4423ab ssb_bus_powerup
+EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base
+EXPORT_SYMBOL drivers/ssb/ssb 0xd2a2d175 ssb_dma_set_mask
+EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size
+EXPORT_SYMBOL drivers/ssb/ssb 0xddb1ba09 __ssb_driver_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xea1b0525 ssb_device_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0xff37536e ssb_set_devtypedata
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x032b1ca4 iio_allocate_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x083434bc iio_read_ring_bps
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x0bee10de iio_allocate_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1261abdf iio_trigger_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x12f4afee iio_scan_el_ts_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1348010a iio_free_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x226788ef iio_trigger_find_by_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x230217b8 iio_scan_el_show
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x28f8eb60 iio_push_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3e1aa5af iio_trigger_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3faf727e iio_push_or_escallate_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3fb8310f iio_device_register_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x49c331a6 iio_ring_buffer_init
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4e9abb70 iio_device_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4eb9f9a1 __iio_change_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x61306481 iio_trigger_poll
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x613ed7a8 iio_write_ring_length
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7de6fe86 iio_remove_event_from_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x91306e07 iio_show_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x977095bb iio_bus_type
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9cbf2527 iio_trigger_read_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xab10b49d iio_trigger_dettach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xabe67dbb iio_free_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xac5e40f8 iio_get_new_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb07bbf18 iio_scan_el_ts_show
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb47e4f1b iio_register_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xba8eebac iio_ring_buffer_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbd6398c3 iio_scan_el_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc1f18afd iio_device_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc40ef7b8 iio_device_unregister_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc94dbe18 iio_ring_buffer_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcd44f261 iio_add_event_to_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcd701048 iio_trigger_attach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd347401b __iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd68cefe0 iio_store_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdae4bc62 iio_unregister_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe1bad5e3 iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xea5c9fd4 iio_read_const_attr
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xed886f3f iio_free_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xee06ce18 iio_trigger_notify_done
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfd894327 iio_read_ring_length
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x21cf67f7 iio_rip_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x35b5556f iio_sw_rb_free
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x3bf7b752 iio_set_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x3dbbaf32 iio_sw_rb_allocate
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6cb9212a iio_set_length_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6fb1ee84 iio_read_last_from_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x9aa99536 iio_mark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xadf31cf9 iio_unmark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xbd69f9df iio_store_to_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xcfc9fbee iio_get_length_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xd5b01eb4 iio_get_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xe68a44f8 iio_mark_update_needed_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xe6ba3627 iio_request_update_sw_rb
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x36d17b0e variax_create_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x462fbc8d pod_remove_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x4c386e52 pod_create_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x67dfb29b variax_remove_files
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xec5e8b6a tm6000_unregister_extension
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xef363dcc tm6000_register_extension
+EXPORT_SYMBOL drivers/telephony/phonedev 0x029ac677 phone_unregister_device
+EXPORT_SYMBOL drivers/telephony/phonedev 0xee702c2f phone_register_device
+EXPORT_SYMBOL drivers/thermal/thermal_sys 0x3b89d9d2 thermal_zone_device_update
+EXPORT_SYMBOL drivers/thermal/thermal_sys 0x47fbf2f8 thermal_zone_device_register
+EXPORT_SYMBOL drivers/thermal/thermal_sys 0x77aa8648 thermal_cooling_device_register
+EXPORT_SYMBOL drivers/thermal/thermal_sys 0x8d6eae49 thermal_cooling_device_unregister
+EXPORT_SYMBOL drivers/thermal/thermal_sys 0xb7ea3bc2 thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL drivers/thermal/thermal_sys 0xd09dc782 thermal_zone_device_unregister
+EXPORT_SYMBOL drivers/thermal/thermal_sys 0xe6cb6f84 thermal_zone_bind_cooling_device
+EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xf91197d0 sl811h_driver
+EXPORT_SYMBOL drivers/usb/musb/musb_hdrc 0x9855567d usb_gadget_unregister_driver
+EXPORT_SYMBOL drivers/usb/musb/musb_hdrc 0xfc76e96e usb_gadget_register_driver
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x02b15190 usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x29bda096 usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2c69a81d usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2f493d99 usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x34d4266b usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x42215132 usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x502dfc48 usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5cfdc742 usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xac9796f3 usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc3c4340c usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc427815e usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcc144a3a usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcc78e6f5 usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf95dccb0 usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x0ecb05b4 usb_serial_suspend
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0xc818b7cf usb_serial_resume
+EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x22cf14ee lcd_device_unregister
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x3b6be6f0 lcd_device_register
+EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x7f2ab358 mb862xxfb_init_accel
+EXPORT_SYMBOL drivers/video/syscopyarea 0x8a1e39e5 sys_copyarea
+EXPORT_SYMBOL drivers/video/sysfillrect 0x39106edd sys_fillrect
+EXPORT_SYMBOL drivers/video/sysimgblt 0x4d09820f sys_imageblit
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x2b75b471 w1_bq27000_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x5039c6d0 w1_bq27000_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x2de52a0e w1_ds2760_store_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x760b7139 w1_ds2760_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xbc2834e3 w1_ds2760_recall_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xc80ebdb0 w1_ds2760_read
+EXPORT_SYMBOL drivers/w1/wire 0x7c8fe5da w1_unregister_family
+EXPORT_SYMBOL drivers/w1/wire 0x7f7a9a8f w1_remove_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xa5d42bbc w1_register_family
+EXPORT_SYMBOL drivers/w1/wire 0xa7902c2e w1_add_master_device
+EXPORT_SYMBOL fs/configfs/configfs 0x23a35a4b config_group_find_item
+EXPORT_SYMBOL fs/configfs/configfs 0x24613917 config_item_get
+EXPORT_SYMBOL fs/configfs/configfs 0x2ae068b4 config_item_set_name
+EXPORT_SYMBOL fs/configfs/configfs 0x40871aa3 configfs_undepend_item
+EXPORT_SYMBOL fs/configfs/configfs 0x4d82bbb7 config_group_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x6c7df199 config_item_put
+EXPORT_SYMBOL fs/configfs/configfs 0x71243528 configfs_register_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0x79efa505 config_item_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x85546a30 config_item_init
+EXPORT_SYMBOL fs/configfs/configfs 0xc8eb8bf1 configfs_depend_item
+EXPORT_SYMBOL fs/configfs/configfs 0xd9644f7b configfs_unregister_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xe55214fe config_group_init
+EXPORT_SYMBOL fs/fscache/fscache 0x04e10a5b __fscache_relinquish_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible
+EXPORT_SYMBOL fs/fscache/fscache 0x1b5104ab fscache_add_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x1dd0ce7f __fscache_unregister_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x1ef758c5 __fscache_read_or_alloc_pages
+EXPORT_SYMBOL fs/fscache/fscache 0x24eff3cc __fscache_update_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x26f168d4 fscache_put_operation
+EXPORT_SYMBOL fs/fscache/fscache 0x2853269f __fscache_acquire_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x285a04e1 __fscache_attr_changed
+EXPORT_SYMBOL fs/fscache/fscache 0x2c0ac5d0 __fscache_register_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x394c16e9 fscache_cache_cleared_wq
+EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit
+EXPORT_SYMBOL fs/fscache/fscache 0x4212ebf1 fscache_mark_pages_cached
+EXPORT_SYMBOL fs/fscache/fscache 0x43a0cc31 fscache_check_aux
+EXPORT_SYMBOL fs/fscache/fscache 0x66d4999b fscache_io_error
+EXPORT_SYMBOL fs/fscache/fscache 0x6a51b399 __fscache_maybe_release_page
+EXPORT_SYMBOL fs/fscache/fscache 0x6e4b9c4c __fscache_uncache_page
+EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id
+EXPORT_SYMBOL fs/fscache/fscache 0x78706157 __fscache_read_or_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0x7f23ae1b fscache_withdraw_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states
+EXPORT_SYMBOL fs/fscache/fscache 0x8acd61df fscache_object_slow_work_ops
+EXPORT_SYMBOL fs/fscache/fscache 0x9450cb3f __fscache_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0x9ac3b525 fscache_enqueue_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xa332d79d fscache_init_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xa75f8223 fscache_object_lookup_negative
+EXPORT_SYMBOL fs/fscache/fscache 0xa96a2dd4 fscache_fsdef_index
+EXPORT_SYMBOL fs/fscache/fscache 0xa993b949 __fscache_write_page
+EXPORT_SYMBOL fs/fscache/fscache 0xcb614648 fscache_obtained_object
+EXPORT_SYMBOL fs/fscache/fscache 0xfad2c73f __fscache_check_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0xfae03894 __fscache_wait_on_page_write
+EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix
+EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new
+EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who
+EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype
+EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4
+EXPORT_SYMBOL fs/quota/quota_tree 0x5caf4f25 qtree_entry_unused
+EXPORT_SYMBOL fs/quota/quota_tree 0x66549fe9 qtree_read_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xa55d7c61 qtree_write_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xd93993cc qtree_delete_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xfdedd19b qtree_release_dquot
+EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt
+EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table
+EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table
+EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t
+EXPORT_SYMBOL lib/crc7 0xa7587646 crc7
+EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table
+EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd
+EXPORT_SYMBOL net/802/p8022 0x8e5ad88a register_8022_client
+EXPORT_SYMBOL net/802/p8022 0xc2c77142 unregister_8022_client
+EXPORT_SYMBOL net/802/p8023 0x101ebcb4 destroy_8023_client
+EXPORT_SYMBOL net/802/p8023 0x9069426a make_8023_client
+EXPORT_SYMBOL net/802/psnap 0x3b6aacbb register_snap_client
+EXPORT_SYMBOL net/802/psnap 0x5bb5f57c unregister_snap_client
+EXPORT_SYMBOL net/9p/9pnet 0x0370eac8 p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x0c15c670 v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0x1a20238b p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0x1a278390 p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x1bcb24a1 p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x1ee014bb p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0x32441313 p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x343d78ce p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x3473389d p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0x38413b7f p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x3d263460 p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x498f3e91 p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x740597bc p9_idpool_check
+EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x77432c2e p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x87791218 p9_client_version
+EXPORT_SYMBOL net/9p/9pnet 0x8fba0a52 p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0x94c4ff02 v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0x99050555 p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x9ab291b2 p9_client_auth
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0xa2bce8b7 p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xb38d2e09 v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0xbab51237 p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0xbace9faf p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0xd0c332cb p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump
+EXPORT_SYMBOL net/9p/9pnet 0xd8726d14 p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xe62f0ec6 p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0xf0597452 p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0xf180c16f v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0xf48872fe p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0xf69b474a p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0xfd42c56b p9_client_disconnect
+EXPORT_SYMBOL net/appletalk/appletalk 0x27565fa5 aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0x9b6a5610 atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0xb12b5566 atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0xb3a7b10c alloc_ltalkdev
+EXPORT_SYMBOL net/atm/atm 0x25b77c2a atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x36f4fd0c atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x3b963947 deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x6bf1cddd atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0x97e3207a register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x9a299eeb vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xd524197f atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0xded0b292 vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0xe130e2f9 atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0xed5650ea atm_charge
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal
+EXPORT_SYMBOL net/atm/atm 0xf5eab1ab vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0xf785f78a atm_dev_register
+EXPORT_SYMBOL net/ax25/ax25 0x0ce164d9 ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x2640bdcb ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x5ad7df59 ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0x64d0cf54 ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x6ae5712e ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x780a055a ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xcfefb7ca ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xe81c5652 ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0xf5973e39 ax25_listen_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x054c8e8b hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1166149f bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x12deaaf3 hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x18e050a0 bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1b3a0a93 hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d66e287 hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2409186d hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2426ff6d hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2ddb8c41 hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x32cab8a3 hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x33fcbf4a bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x39d0481b hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x54cd075f bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x57b58b6e hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e84dd1e hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x699112fd bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8f2c5e67 hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa3e96856 bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa7241599 hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb16a449a hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb269893a hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb3399fd2 hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc631d4d6 bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc97a853d hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcd68e227 bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcfb25fa0 bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xdd9eca78 hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xdf3da833 hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xeeaeba1a hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf2bd2e3a hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf633744b hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xffb1ff5f bt_sock_register
+EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load
+EXPORT_SYMBOL net/bridge/bridge 0x5a7a670f br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x6c49d9b6 ebt_register_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc0ed645c ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xf4118158 ebt_unregister_table
+EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client
+EXPORT_SYMBOL net/caif/caif 0x0945ee0f cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x0d1c94d3 cfpkt_iterate
+EXPORT_SYMBOL net/caif/caif 0x0ee194b4 cfpkt_qcount
+EXPORT_SYMBOL net/caif/caif 0x0effe433 cfpkt_raw_append
+EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer
+EXPORT_SYMBOL net/caif/caif 0x15f1cc70 cfpkt_add_body
+EXPORT_SYMBOL net/caif/caif 0x210d71ea cfpkt_erroneous
+EXPORT_SYMBOL net/caif/caif 0x24ddf7b8 cfpktq_create
+EXPORT_SYMBOL net/caif/caif 0x25dee5f6 cfpkt_queue
+EXPORT_SYMBOL net/caif/caif 0x2b0dda12 cfpkt_addbdy
+EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x491a8c9f cfpkt_pad_trail
+EXPORT_SYMBOL net/caif/caif 0x51e9d62a cfpkt_add_trail
+EXPORT_SYMBOL net/caif/caif 0x59e869df cfpkt_peek_head
+EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create
+EXPORT_SYMBOL net/caif/caif 0x6e7283cd cfpkt_create_uplink
+EXPORT_SYMBOL net/caif/caif 0x6eee0b70 cfpkt_create
+EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x85860b86 cfpkt_raw_extract
+EXPORT_SYMBOL net/caif/caif 0x94b523a7 cfpkt_qpeek
+EXPORT_SYMBOL net/caif/caif 0x9f11ed0b cfpkt_add_head
+EXPORT_SYMBOL net/caif/caif 0xa1047a6f cfpkt_log_pkt
+EXPORT_SYMBOL net/caif/caif 0xa139def1 cfpkt_setlen
+EXPORT_SYMBOL net/caif/caif 0xa21d91ac cfpkt_info
+EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xb44956aa cfpkt_append
+EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer
+EXPORT_SYMBOL net/caif/caif 0xc03d7c95 cfpkt_destroy
+EXPORT_SYMBOL net/caif/caif 0xc1f6d3a1 cfpkt_getlen
+EXPORT_SYMBOL net/caif/caif 0xc8d4c342 cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0xd1342cd5 cfpkt_extr_head
+EXPORT_SYMBOL net/caif/caif 0xd31f1e05 cfpkt_dequeue
+EXPORT_SYMBOL net/caif/caif 0xdeffeb65 cfpkt_extr_trail
+EXPORT_SYMBOL net/caif/caif 0xe87ab384 cfpkt_clone_release
+EXPORT_SYMBOL net/caif/caif 0xef277ab2 cfpkt_split
+EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf
+EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer
+EXPORT_SYMBOL net/caif/caif 0xf6822a55 cfpkt_more
+EXPORT_SYMBOL net/can/can 0x0921ad5d can_rx_unregister
+EXPORT_SYMBOL net/can/can 0x40f6331f can_send
+EXPORT_SYMBOL net/can/can 0x6cb6a9a2 can_proto_unregister
+EXPORT_SYMBOL net/can/can 0xbbd028ca can_proto_register
+EXPORT_SYMBOL net/can/can 0xd9506c88 can_rx_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0d7d35f8 wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0f0db6ff ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x17b4cd09 ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x22a2667f wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x4fae57b3 wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x65fab982 ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x7968cc7a ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x8756038c ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x8abcce51 ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x9549730f wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xa93dc686 ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xc11976e9 wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xc51e950c wpan_phy_for_each
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x6b7b368e arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xcbbb9d82 arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe9384245 arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x541f8efc ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x76ef7e7c ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x866f5ee9 ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x22ed6abf nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x31b659eb nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x31c7ccad nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x48e6c448 nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4f6f6949 __nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf5b23649 nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xffba0779 nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/tunnel4 0x672f3a08 xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0xccfe91f4 xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x26a4e401 ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x35178a9a ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x7bc4dbc5 ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe0095a3a ip6t_do_table
+EXPORT_SYMBOL net/ipv6/tunnel6 0x02b5ec9e xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/tunnel6 0x994b6b36 xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x6e7af1cf xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xad3c10ef xfrm6_tunnel_free_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xc3d5af14 xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x27a38da3 ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2c26ef10 ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x338a8b1f ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4f6a1d21 ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x58bb44d9 ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc5a1443a ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xebefe8eb ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xee8523b5 ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value
+EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service
+EXPORT_SYMBOL net/irda/irda 0x16813833 irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0x17a7a5c5 irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x1bb06e81 async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x22caf86e hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x2508e4df async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x25c1699a iriap_open
+EXPORT_SYMBOL net/irda/irda 0x2708cb4a irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0x2d3765bc hashbin_find
+EXPORT_SYMBOL net/irda/irda 0x2ea366dc irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug
+EXPORT_SYMBOL net/irda/irda 0x4479ef51 hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value
+EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service
+EXPORT_SYMBOL net/irda/irda 0x46c62faf irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0x4d1154d0 irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x538d5d22 irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0x572583cf irias_new_object
+EXPORT_SYMBOL net/irda/irda 0x5f55c3a2 hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies
+EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client
+EXPORT_SYMBOL net/irda/irda 0x74c6eb16 hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x76e2d42f irlap_close
+EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x7aa1ddbc irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0x7de04a81 irias_find_object
+EXPORT_SYMBOL net/irda/irda 0x7ea50fc7 irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0x80da7829 irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0x80fbbcf8 irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x85004e92 iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0x8a56a76f proc_irda
+EXPORT_SYMBOL net/irda/irda 0x8a8ba8c4 irlap_open
+EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0xb076e5cb iriap_close
+EXPORT_SYMBOL net/irda/irda 0xb3b789fc irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xb5c93e6b irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0xb710786e hashbin_get_first
+EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value
+EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute
+EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request
+EXPORT_SYMBOL net/irda/irda 0xbe634c68 irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0xbf285a4c hashbin_get_next
+EXPORT_SYMBOL net/irda/irda 0xc1080123 alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0xc3a512dd hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0xc91bf00d irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0xd76c9546 irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0xd77ecc18 irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xdd25343b irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xe13706e8 irttp_dup
+EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xedf805a9 irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0xef16660b hashbin_new
+EXPORT_SYMBOL net/irda/irda 0xef48f371 irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0xfd217398 irlmp_open_lsap
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x253a22cd l2tp_recv_common
+EXPORT_SYMBOL net/l2tp/l2tp_core 0xbc3c406b l2tp_tunnel_destruct
+EXPORT_SYMBOL net/lapb/lapb 0x0f9601ea lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0x23f7fd9f lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0x47c5c147 lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x5cea0282 lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0x69fcdda2 lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x9cfd24ac lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0xb166790f lapb_disconnect_request
+EXPORT_SYMBOL net/lapb/lapb 0xbbf54fe7 lapb_data_received
+EXPORT_SYMBOL net/llc/llc 0x10444032 llc_sap_find
+EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack
+EXPORT_SYMBOL net/llc/llc 0x446f231e llc_sap_open
+EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list
+EXPORT_SYMBOL net/llc/llc 0x9656f8a0 llc_sap_list_lock
+EXPORT_SYMBOL net/llc/llc 0xa1e46f81 llc_sap_close
+EXPORT_SYMBOL net/llc/llc 0xae512efc llc_mac_hdr_init
+EXPORT_SYMBOL net/llc/llc 0xc430d30a llc_add_pack
+EXPORT_SYMBOL net/llc/llc 0xd65b3444 llc_build_and_send_ui_pkt
+EXPORT_SYMBOL net/llc/llc 0xdd7688d6 llc_set_station_handler
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x23531d2a ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x2b1991e8 ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x31a5c522 ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x36820a91 ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x4cc51f9b ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x4ce03c91 ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x500b8ee0 ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x51805bd9 ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x5374944d rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x5d9e47e1 __ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0x67207177 ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x69805cfd ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x707f44b3 wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x77cdefa5 ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x793201d1 ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x7d7d260e ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x7ee36e68 ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x8ed6310d ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x8f6988fc ieee80211_get_tkip_key
+EXPORT_SYMBOL net/mac80211/mac80211 0x981a82c4 __ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x9d494851 ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0xa34df44d ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xa8c4cf38 ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0xa9228257 ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0xb0bfcea7 ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xb843d779 ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xb8513121 ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xbb04bb15 ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xbb6b4603 __ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xc629bb70 ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0xc9288863 __ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xc92c763d ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xdf48b1a0 ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xe1633a76 ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0xe6870c90 ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xee51eda9 ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0xefa2c12a ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0fefc725 register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x10fd97b1 ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1bc451ab register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3d5ca5d8 ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4546ce8d unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x50dde505 register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7dd5f8a0 ip_vs_skb_replace
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9ac6477c unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa2d07435 ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xad148bb2 ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xad9f2500 ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x4de72fe3 __nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x60a8f917 __nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x600117d2 nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x3e3351a1 xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x4ae55c5f xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x578eabb2 xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x7f366183 xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x9b1da13c xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xae28a801 xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xcd489fc9 xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xdde143ae xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xe306a09e xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0xe9275085 xt_register_matches
+EXPORT_SYMBOL net/phonet/phonet 0x04cafb26 phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0x15ea42d3 pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0x32abf872 phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x4ecce32f pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0x510f7fa6 pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0x8cd21851 phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0x8db05811 pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0xb1e672f5 phonet_header_ops
+EXPORT_SYMBOL net/rfkill/rfkill 0x143f2905 rfkill_set_sw_state
+EXPORT_SYMBOL net/rfkill/rfkill 0x17b66351 rfkill_pause_polling
+EXPORT_SYMBOL net/rfkill/rfkill 0x2220c5e1 rfkill_blocked
+EXPORT_SYMBOL net/rfkill/rfkill 0x2b582324 rfkill_alloc
+EXPORT_SYMBOL net/rfkill/rfkill 0x2bc5fead rfkill_register
+EXPORT_SYMBOL net/rfkill/rfkill 0x45a52ff1 rfkill_resume_polling
+EXPORT_SYMBOL net/rfkill/rfkill 0x818b635a rfkill_set_led_trigger_name
+EXPORT_SYMBOL net/rfkill/rfkill 0x825aecf2 rfkill_destroy
+EXPORT_SYMBOL net/rfkill/rfkill 0x906f9475 rfkill_set_states
+EXPORT_SYMBOL net/rfkill/rfkill 0x9e92bbac rfkill_unregister
+EXPORT_SYMBOL net/rfkill/rfkill 0xb1259fd3 rfkill_set_hw_state
+EXPORT_SYMBOL net/rfkill/rfkill 0xd93aec66 rfkill_init_sw_state
+EXPORT_SYMBOL net/rfkill/rfkill 0xdba9ad64 rfkill_get_led_trigger_name
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x05e01c82 rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1c00b989 rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2b7027b1 key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3bb89d01 rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x45756f12 rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5aa98101 rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x90a629b9 rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb87da81b rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbc1eac28 rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcdb96991 rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd6abe7a6 rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd93951d8 rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe30b94a4 rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe5e41b61 rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfc80a08c rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/sunrpc/sunrpc 0xee7850c2 svc_pool_stats_open
+EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes
+EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected
+EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect
+EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport
+EXPORT_SYMBOL net/tipc/tipc 0x15086449 tipc_forward_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge
+EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port
+EXPORT_SYMBOL net/tipc/tipc 0x28b98eee tipc_recv_msg
+EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach
+EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name
+EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw
+EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode
+EXPORT_SYMBOL net/tipc/tipc 0x57902af6 tipc_send_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid
+EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast
+EXPORT_SYMBOL net/tipc/tipc 0x6ea7e04d tipc_forward_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port
+EXPORT_SYMBOL net/tipc/tipc 0x82eb2e15 tipc_register_media
+EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr
+EXPORT_SYMBOL net/tipc/tipc 0x8a64c545 tipc_continue
+EXPORT_SYMBOL net/tipc/tipc 0x95574194 tipc_send_buf_fast
+EXPORT_SYMBOL net/tipc/tipc 0x979d02df tipc_get_port
+EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xa4d8b373 tipc_createport_raw
+EXPORT_SYMBOL net/tipc/tipc 0xac6d43ab tipc_send_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port
+EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown
+EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name
+EXPORT_SYMBOL net/tipc/tipc 0xb2926b94 tipc_reject_msg
+EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish
+EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send
+EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0xd2bb262c tipc_createport
+EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity
+EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach
+EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer
+EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished
+EXPORT_SYMBOL net/tipc/tipc 0xee7bfcf8 tipc_send_buf
+EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle
+EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x183b6a5d register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x18294005 wimax_rfkill
+EXPORT_SYMBOL net/wimax/wimax 0x867d6b80 wimax_reset
+EXPORT_SYMBOL net/wireless/cfg80211 0x02851b35 __cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x034009ec cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x0887d44a cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x134b1235 ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x17c702b9 wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x194e8cab cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x22be3483 cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x24787ed3 wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x27b9f164 regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x29f64973 cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0x314a5951 cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x3a24903b cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x418d59cf cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x4a038c8b cfg80211_action_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x544dbddd cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x5e005a5d cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x6361cf25 cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x65de1511 __ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x674c5c84 cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x71fb8cc8 __cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x757466c9 wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x79f4d556 cfg80211_rx_action
+EXPORT_SYMBOL net/wireless/cfg80211 0x7b439142 cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x7b45accf cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x7e40640c cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x82ab55d7 cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0x86b7091b wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x88a8d25f cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x8a75f829 ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x8d6c2b18 wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x9c58f3b1 wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xa5174338 cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0xb03f8897 cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xb524bf6b freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0xb758c3cd wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0xbaf5795f cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0xc13e024e wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0xc208134a cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xc6b4b5d6 cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0xd0c99748 cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0xd0e8b3da cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0xd95fcd86 __cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xdb3bf81f cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0xe3736836 cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xf8816c3b ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0xfe32368b ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x361a7861 lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x5afe494c lib80211_crypt_quiescing
+EXPORT_SYMBOL net/wireless/lib80211 0x95a4e240 lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xa466d2d6 lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xb286b680 lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0xc2ec1f97 lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0xe20c3090 lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0xfa4efb64 lib80211_crypt_deinit_entries
+EXPORT_SYMBOL sound/ac97_bus 0x2f69c7fe ac97_bus_type
+EXPORT_SYMBOL sound/core/oss/snd-mixer-oss 0xf01640a4 snd_mixer_oss_ioctl_card
+EXPORT_SYMBOL sound/core/snd-hwdep 0x6ce55715 snd_hwdep_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x1f27c4aa snd_rawmidi_input_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x24097b4d snd_rawmidi_output_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x26115e9a snd_rawmidi_transmit
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x2ba0d8b4 snd_rawmidi_info_select
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x39074876 snd_rawmidi_transmit_ack
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x4c23e937 snd_rawmidi_transmit_peek
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x6976507d snd_rawmidi_kernel_release
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x7cf0dd28 snd_rawmidi_transmit_empty
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x87ecee83 snd_rawmidi_drain_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x8acd56a4 snd_rawmidi_set_ops
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x8b5aca18 snd_rawmidi_kernel_open
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x9472a7f3 snd_rawmidi_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xaed272d2 snd_rawmidi_drain_input
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xb5e8dc3e snd_rawmidi_receive
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xd1541a3e snd_rawmidi_kernel_write
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xdd6fbb61 snd_rawmidi_kernel_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xea76eacc snd_rawmidi_drop_output
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x1c9483ba snd_mpu401_uart_new
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0f9daa9f snd_ac97_bus
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1ee55255 snd_ac97_tune_hardware
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x22fdda68 snd_ac97_suspend
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3179be6f snd_ac97_resume
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x34c0ae4a snd_ac97_write_cache
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3fedb9ab snd_ac97_update
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5eebcf0c snd_ac97_pcm_open
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6b0220f5 snd_ac97_pcm_close
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x711a13e6 snd_ac97_mixer
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8a114998 snd_ac97_read
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb676a04e snd_ac97_get_short_name
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc1b1de1b snd_ac97_update_bits
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc20b7b39 snd_ac97_pcm_assign
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc9c4ed96 snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xecc0e02b snd_ac97_update_power
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf6a50372 snd_ac97_set_rate
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf911206c snd_ac97_write
+EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x27f930fa uda134x_dai
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x1ba6b8b5 snd_usbmidi_create
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect
+EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list
+EXPORT_SYMBOL vmlinux 0x00130fdd serio_interrupt
+EXPORT_SYMBOL vmlinux 0x002b4519 snd_pcm_lib_mmap_noncached
+EXPORT_SYMBOL vmlinux 0x005c89a1 cont_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x0081030e omap_vram_reserve
+EXPORT_SYMBOL vmlinux 0x0090f4df sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x00ab80e3 inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x00b19457 dm_table_unplug_all
+EXPORT_SYMBOL vmlinux 0x00dd65d0 dst_release
+EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x00eef49e __strnlen_user
+EXPORT_SYMBOL vmlinux 0x00f836ad fb_class
+EXPORT_SYMBOL vmlinux 0x01000e51 schedule
+EXPORT_SYMBOL vmlinux 0x010ac624 __module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x011123b0 journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr
+EXPORT_SYMBOL vmlinux 0x0114721d jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0x011e564b bio_map_user
+EXPORT_SYMBOL vmlinux 0x011e6396 proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x01424f59 sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x0146189d mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0x014bb432 phy_device_free
+EXPORT_SYMBOL vmlinux 0x0185a36d copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap
+EXPORT_SYMBOL vmlinux 0x0197cbdb d_lookup
+EXPORT_SYMBOL vmlinux 0x01a3d310 omap_set_dma_channel_mode
+EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data
+EXPORT_SYMBOL vmlinux 0x01aa9137 unlock_super
+EXPORT_SYMBOL vmlinux 0x020d59c3 __scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check
+EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv
+EXPORT_SYMBOL vmlinux 0x021a6f54 simple_rmdir
+EXPORT_SYMBOL vmlinux 0x024bf88f omap_modify_dma_chain_params
+EXPORT_SYMBOL vmlinux 0x024fe8d5 udp_table
+EXPORT_SYMBOL vmlinux 0x02573b36 omap_disable_dma_irq
+EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x026a5fb1 mfd_add_devices
+EXPORT_SYMBOL vmlinux 0x0273bce7 fasync_helper
+EXPORT_SYMBOL vmlinux 0x0283dfe3 _snd_pcm_hw_params_any
+EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table
+EXPORT_SYMBOL vmlinux 0x02d91179 register_netdev
+EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact
+EXPORT_SYMBOL vmlinux 0x02ff3fd7 delayed_slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x0302c48b idr_destroy
+EXPORT_SYMBOL vmlinux 0x03073b97 omap_writel
+EXPORT_SYMBOL vmlinux 0x031b1da3 qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0x031ba9bf atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x037a0cba kfree
+EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03c2353d scsi_remove_host
+EXPORT_SYMBOL vmlinux 0x03c9191f generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x03cf8f97 __inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0x03e1fe99 bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0x03f80dbe posix_acl_permission
+EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x0400429e set_irq_chip
+EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x0423e23f registered_fb
+EXPORT_SYMBOL vmlinux 0x0448d425 blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x0450161c snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL vmlinux 0x04543a5a inode_set_bytes
+EXPORT_SYMBOL vmlinux 0x04659473 inet_select_addr
+EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x04cda566 snd_interval_refine
+EXPORT_SYMBOL vmlinux 0x04dca4c3 cdev_alloc
+EXPORT_SYMBOL vmlinux 0x04e73561 blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0x04ec2048 blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x04ffe49d key_negate_and_link
+EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups
+EXPORT_SYMBOL vmlinux 0x0531ede0 bdi_register_dev
+EXPORT_SYMBOL vmlinux 0x054baa43 mpage_readpages
+EXPORT_SYMBOL vmlinux 0x0550c2b1 in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x056676aa netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x059bceef snd_pcm_mmap_data
+EXPORT_SYMBOL vmlinux 0x05aea0f6 register_cdrom
+EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion
+EXPORT_SYMBOL vmlinux 0x05d5fc67 skb_trim
+EXPORT_SYMBOL vmlinux 0x0606781c blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0x061651be strcat
+EXPORT_SYMBOL vmlinux 0x06517eac ppp_output_wakeup
+EXPORT_SYMBOL vmlinux 0x0668388c generic_delete_inode
+EXPORT_SYMBOL vmlinux 0x067829a0 generic_write_sync
+EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx
+EXPORT_SYMBOL vmlinux 0x069a79cd freeze_super
+EXPORT_SYMBOL vmlinux 0x06a4bce6 __pagevec_release
+EXPORT_SYMBOL vmlinux 0x06b16a9a inet_add_protocol
+EXPORT_SYMBOL vmlinux 0x06cfa781 dquot_disable
+EXPORT_SYMBOL vmlinux 0x06d3388a kobject_put
+EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0x06ea6e8d inode_init_always
+EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn
+EXPORT_SYMBOL vmlinux 0x07123e0c kick_iocb
+EXPORT_SYMBOL vmlinux 0x07293af3 generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0x0729e9df cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0x072cf209 dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0x0743840c ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0x074949aa scsi_unregister
+EXPORT_SYMBOL vmlinux 0x076159aa dma_map_sg
+EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable
+EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong
+EXPORT_SYMBOL vmlinux 0x07a5f503 omap_readw
+EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07aa41a7 generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0x07ba9640 __bforget
+EXPORT_SYMBOL vmlinux 0x07cc3d32 bio_copy_kern
+EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x0805b587 input_grab_device
+EXPORT_SYMBOL vmlinux 0x087b2845 remove_inode_hash
+EXPORT_SYMBOL vmlinux 0x088b2631 complete_request_key
+EXPORT_SYMBOL vmlinux 0x08a33080 clk_round_rate
+EXPORT_SYMBOL vmlinux 0x08a4c534 omap_mcbsp_get_rx_delay
+EXPORT_SYMBOL vmlinux 0x08d25860 tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0x08d268dd register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x08ded414 ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x08fa5a13 ____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0x08fe3ee0 kthread_stop
+EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq
+EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages
+EXPORT_SYMBOL vmlinux 0x094a9b66 downgrade_write
+EXPORT_SYMBOL vmlinux 0x09775cdc kref_get
+EXPORT_SYMBOL vmlinux 0x097954f4 ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09deb0a2 fb_set_var
+EXPORT_SYMBOL vmlinux 0x09e440d7 tcp4_gro_receive
+EXPORT_SYMBOL vmlinux 0x09ef257b remove_proc_entry
+EXPORT_SYMBOL vmlinux 0x09f9af46 dm_table_get
+EXPORT_SYMBOL vmlinux 0x0a03b3be slow_work_unregister_user
+EXPORT_SYMBOL vmlinux 0x0a0556d1 iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x0a10e6b5 blk_plug_device
+EXPORT_SYMBOL vmlinux 0x0a1bebc5 kernel_execve
+EXPORT_SYMBOL vmlinux 0x0a1fbac5 truncate_pagecache
+EXPORT_SYMBOL vmlinux 0x0a23fcab tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a2a5761 kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr
+EXPORT_SYMBOL vmlinux 0x0a5818c0 __page_symlink
+EXPORT_SYMBOL vmlinux 0x0a737d34 phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x0a841a46 insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0x0aa13d05 __raw_readsw
+EXPORT_SYMBOL vmlinux 0x0ab77018 snd_ctl_find_id
+EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all
+EXPORT_SYMBOL vmlinux 0x0aea6fb0 rt6_lookup
+EXPORT_SYMBOL vmlinux 0x0af225b5 tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert
+EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b2387a1 blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize
+EXPORT_SYMBOL vmlinux 0x0b6540c6 bd_release
+EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b751a65 generic_file_llseek
+EXPORT_SYMBOL vmlinux 0x0b8529d0 scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0x0be33f56 snd_jack_set_key
+EXPORT_SYMBOL vmlinux 0x0bf422b4 neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x0bf91c48 cdev_del
+EXPORT_SYMBOL vmlinux 0x0c195e20 down_timeout
+EXPORT_SYMBOL vmlinux 0x0c1b6603 jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x0c26e78e cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0x0c301f0a bioset_create
+EXPORT_SYMBOL vmlinux 0x0c35f2c6 sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c6640a5 tty_check_change
+EXPORT_SYMBOL vmlinux 0x0c7b9de7 snd_timer_notify
+EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0cab3b2f kobject_add
+EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cc46be6 framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x0cda8efe add_disk
+EXPORT_SYMBOL vmlinux 0x0cdd158d sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x0d1904e7 nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le
+EXPORT_SYMBOL vmlinux 0x0d3fb682 poll_freewait
+EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d5f0b91 mapping_tagged
+EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0da33076 napi_frags_finish
+EXPORT_SYMBOL vmlinux 0x0db3877d ___dma_single_dev_to_cpu
+EXPORT_SYMBOL vmlinux 0x0db5efb1 scsi_remove_target
+EXPORT_SYMBOL vmlinux 0x0df816d8 follow_up
+EXPORT_SYMBOL vmlinux 0x0e0e753a i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0x0e0f694d save_mount_options
+EXPORT_SYMBOL vmlinux 0x0e1ded83 set_blocksize
+EXPORT_SYMBOL vmlinux 0x0e1ef395 cdev_init
+EXPORT_SYMBOL vmlinux 0x0e52592a panic
+EXPORT_SYMBOL vmlinux 0x0e872565 do_SAK
+EXPORT_SYMBOL vmlinux 0x0e91c5ce tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0x0ea4cae5 mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0x0eae495f seq_release_private
+EXPORT_SYMBOL vmlinux 0x0ec72725 block_read_full_page
+EXPORT_SYMBOL vmlinux 0x0ec98808 ida_init
+EXPORT_SYMBOL vmlinux 0x0ef979cd mdiobus_register
+EXPORT_SYMBOL vmlinux 0x0efd76f7 snd_info_free_entry
+EXPORT_SYMBOL vmlinux 0x0f0c8166 mmc_resume_host
+EXPORT_SYMBOL vmlinux 0x0f1a3861 dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x0f1bab7e user_revoke
+EXPORT_SYMBOL vmlinux 0x0f364b19 scsi_device_put
+EXPORT_SYMBOL vmlinux 0x0f64933f tcp_prot
+EXPORT_SYMBOL vmlinux 0x0f78986d sock_release
+EXPORT_SYMBOL vmlinux 0x0f8a377a journal_init_dev
+EXPORT_SYMBOL vmlinux 0x0fa2a45e __memzero
+EXPORT_SYMBOL vmlinux 0x0fab6d10 ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fbe6cfb ip6_frag_init
+EXPORT_SYMBOL vmlinux 0x0fc22f91 __dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod
+EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress
+EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x102b8549 snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL vmlinux 0x10511011 kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0x1056e12e omapdss_dpi_display_enable
+EXPORT_SYMBOL vmlinux 0x106db78a snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user
+EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint
+EXPORT_SYMBOL vmlinux 0x1096b653 mpage_readpage
+EXPORT_SYMBOL vmlinux 0x109b0821 xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0x10b532b5 fsnotify_find_mark_entry
+EXPORT_SYMBOL vmlinux 0x10bb03f2 sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu
+EXPORT_SYMBOL vmlinux 0x11024d2d scsi_host_get
+EXPORT_SYMBOL vmlinux 0x11025910 d_validate
+EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype
+EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x112748bd omap_vrfb_adjust_size
+EXPORT_SYMBOL vmlinux 0x112f62d6 scm_detach_fds
+EXPORT_SYMBOL vmlinux 0x11414912 udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x11472243 journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x114e036a security_path_truncate
+EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x11703cb1 ip6_frag_match
+EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x118afe06 ppp_input
+EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch
+EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin
+EXPORT_SYMBOL vmlinux 0x120dd83f sock_create_kern
+EXPORT_SYMBOL vmlinux 0x121d1905 __kfree_skb
+EXPORT_SYMBOL vmlinux 0x12447378 blk_execute_rq
+EXPORT_SYMBOL vmlinux 0x124661ac rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0x1268e2e7 nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0x126e75c1 rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc
+EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x12f09973 tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x1319367c path_put
+EXPORT_SYMBOL vmlinux 0x131ccca9 simple_link
+EXPORT_SYMBOL vmlinux 0x13665300 skb_pad
+EXPORT_SYMBOL vmlinux 0x13872858 __nla_put
+EXPORT_SYMBOL vmlinux 0x13a3b172 kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0x13a3ff4a tcf_hash_search
+EXPORT_SYMBOL vmlinux 0x13dd0116 simple_lookup
+EXPORT_SYMBOL vmlinux 0x14207882 md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0x142f8142 eth_type_trans
+EXPORT_SYMBOL vmlinux 0x144b9796 kthread_create
+EXPORT_SYMBOL vmlinux 0x1478a041 tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x147c888e vmtruncate
+EXPORT_SYMBOL vmlinux 0x14bdef74 bitmap_unplug
+EXPORT_SYMBOL vmlinux 0x14ddede9 lock_may_write
+EXPORT_SYMBOL vmlinux 0x15028160 i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0x15331242 omap_iounmap
+EXPORT_SYMBOL vmlinux 0x1540a08c find_or_create_page
+EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x158fb84b generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x1597923b read_cache_pages
+EXPORT_SYMBOL vmlinux 0x15a06ec1 get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x15ca3144 mii_nway_restart
+EXPORT_SYMBOL vmlinux 0x15d297a2 elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x15f20c73 ioremap_page
+EXPORT_SYMBOL vmlinux 0x160b782c clk_disable
+EXPORT_SYMBOL vmlinux 0x1611b920 lro_receive_frags
+EXPORT_SYMBOL vmlinux 0x161ba457 get_sb_nodev
+EXPORT_SYMBOL vmlinux 0x1625225a dev_trans_start
+EXPORT_SYMBOL vmlinux 0x16263c67 cdev_index
+EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x16316aa8 mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x163afd2c bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0x164c87a3 snd_timer_pause
+EXPORT_SYMBOL vmlinux 0x165d7fd0 kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0x1665b987 phy_disconnect
+EXPORT_SYMBOL vmlinux 0x166e74a2 cpu_v7_set_pte_ext
+EXPORT_SYMBOL vmlinux 0x1674ce43 qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0x1679a256 tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0x167d2cf2 xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0x1687800a read_dev_sector
+EXPORT_SYMBOL vmlinux 0x1690e733 inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x16934583 poll_initwait
+EXPORT_SYMBOL vmlinux 0x16a1fd95 _snd_ctl_add_slave
+EXPORT_SYMBOL vmlinux 0x16a2c3b8 __generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x16b41b84 module_put
+EXPORT_SYMBOL vmlinux 0x16dcac17 ip6_route_output
+EXPORT_SYMBOL vmlinux 0x16f1dc75 vm_insert_page
+EXPORT_SYMBOL vmlinux 0x170aee64 tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x170ec140 seq_printf
+EXPORT_SYMBOL vmlinux 0x175236f4 omap_mcbsp_start
+EXPORT_SYMBOL vmlinux 0x175bc873 xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x176fd46b inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0x178ac79c mmc_detect_change
+EXPORT_SYMBOL vmlinux 0x179409a7 phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user
+EXPORT_SYMBOL vmlinux 0x17b08e3a generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x17c62782 i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0x17cbd3ac snd_dma_free_pages
+EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL vmlinux 0x18561681 elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0x189eed19 block_prepare_write
+EXPORT_SYMBOL vmlinux 0x18d00110 i2c_transfer
+EXPORT_SYMBOL vmlinux 0x18ec0823 tc6393xb_lcd_set_power
+EXPORT_SYMBOL vmlinux 0x1922d055 journal_init_inode
+EXPORT_SYMBOL vmlinux 0x19251d2b __dquot_transfer
+EXPORT_SYMBOL vmlinux 0x193a2182 replace_mount_options
+EXPORT_SYMBOL vmlinux 0x194f1159 cdev_add
+EXPORT_SYMBOL vmlinux 0x19543c1d generic_block_bmap
+EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock
+EXPORT_SYMBOL vmlinux 0x197dc3b3 omap_set_dma_src_burst_mode
+EXPORT_SYMBOL vmlinux 0x198788b4 snd_lookup_oss_minor_data
+EXPORT_SYMBOL vmlinux 0x198afad0 dma_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19b008e5 tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0x19b156c8 seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x19d7dcda netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x19ee60cf dma_unmap_sg
+EXPORT_SYMBOL vmlinux 0x19f2bacb kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x1a03cf33 bio_put
+EXPORT_SYMBOL vmlinux 0x1a28c550 sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x1a487731 unregister_filesystem
+EXPORT_SYMBOL vmlinux 0x1a4ebb32 journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x1a5c8273 inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn
+EXPORT_SYMBOL vmlinux 0x1a7f5718 icmpv6_send
+EXPORT_SYMBOL vmlinux 0x1a882364 down_killable
+EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in
+EXPORT_SYMBOL vmlinux 0x1aa1fa22 kmem_ptr_validate
+EXPORT_SYMBOL vmlinux 0x1aa43572 ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0x1ab1bfda md_register_thread
+EXPORT_SYMBOL vmlinux 0x1ab3483f __lock_page
+EXPORT_SYMBOL vmlinux 0x1ac996f6 xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1acf77a0 km_query
+EXPORT_SYMBOL vmlinux 0x1ad0e6d9 free_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio
+EXPORT_SYMBOL vmlinux 0x1adf547f netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x1ae624ad skb_pull
+EXPORT_SYMBOL vmlinux 0x1afe0c2b snd_card_file_add
+EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b19dd74 cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0x1b2b59b1 nla_append
+EXPORT_SYMBOL vmlinux 0x1b513df3 snd_timer_global_free
+EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton
+EXPORT_SYMBOL vmlinux 0x1b64ce67 inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x1b66f16a free_netdev
+EXPORT_SYMBOL vmlinux 0x1b81059c tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x1b870828 snd_pcm_release_substream
+EXPORT_SYMBOL vmlinux 0x1b959888 sock_no_listen
+EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1babe60e omap_st_set_chgain
+EXPORT_SYMBOL vmlinux 0x1bba799a dquot_release
+EXPORT_SYMBOL vmlinux 0x1be0392a mnt_pin
+EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c26959c tcp_disconnect
+EXPORT_SYMBOL vmlinux 0x1c2a72ff __secpath_destroy
+EXPORT_SYMBOL vmlinux 0x1ca53d6f unregister_mtd_chip_driver
+EXPORT_SYMBOL vmlinux 0x1cc106e1 sync_blockdev
+EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc
+EXPORT_SYMBOL vmlinux 0x1cda5d91 snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL vmlinux 0x1d027e4b snd_pcm_format_signed
+EXPORT_SYMBOL vmlinux 0x1d22967c call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0x1d2349f4 simple_getattr
+EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d381e3a mmc_try_claim_host
+EXPORT_SYMBOL vmlinux 0x1d5d55d7 generic_fillattr
+EXPORT_SYMBOL vmlinux 0x1d65a77d scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x1d7b042e uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x1dbd3c9d ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dcbc04a f_setown
+EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1dea505f xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x1dfcef91 snd_timer_open
+EXPORT_SYMBOL vmlinux 0x1e1c0e44 cfb_fillrect
+EXPORT_SYMBOL vmlinux 0x1e2fffc9 tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0x1e356e73 backlight_device_register
+EXPORT_SYMBOL vmlinux 0x1e492534 __task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x1e49beb0 deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0x1e4a13ec netlink_ack
+EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr
+EXPORT_SYMBOL vmlinux 0x1e956157 snd_pcm_lib_read
+EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1ea93c2c snd_pcm_hw_constraint_step
+EXPORT_SYMBOL vmlinux 0x1eaa3a2c splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0x1eb8f5f5 dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0x1ec5364d blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0x1ee2f51e uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0x1ee352c6 uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0x1ee3604b ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0x1ef2d022 snd_cards
+EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set
+EXPORT_SYMBOL vmlinux 0x1f19284d simple_empty
+EXPORT_SYMBOL vmlinux 0x1f5c1c47 try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x1f6fde47 bio_alloc
+EXPORT_SYMBOL vmlinux 0x1f93911d scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0x1fa4d70e uart_update_timeout
+EXPORT_SYMBOL vmlinux 0x1fc08e9e dm_register_target
+EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag
+EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat
+EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul
+EXPORT_SYMBOL vmlinux 0x20021998 set_security_override
+EXPORT_SYMBOL vmlinux 0x200b930c dm_snap_cow
+EXPORT_SYMBOL vmlinux 0x20143ae2 napi_get_frags
+EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x2046326d bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x205ec8de omap_dispc_register_isr
+EXPORT_SYMBOL vmlinux 0x205f653d security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x20e44a0d single_open
+EXPORT_SYMBOL vmlinux 0x20fc723d dm_exception_store_type_unregister
+EXPORT_SYMBOL vmlinux 0x210683c1 i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x211331fa __divsi3
+EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16
+EXPORT_SYMBOL vmlinux 0x2197e6eb sock_no_accept
+EXPORT_SYMBOL vmlinux 0x219a90b0 xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x21c81f4d uart_match_port
+EXPORT_SYMBOL vmlinux 0x220e54e1 alloc_netdev_mq
+EXPORT_SYMBOL vmlinux 0x2212bef2 dst_discard
+EXPORT_SYMBOL vmlinux 0x22131cfb down_write_trylock
+EXPORT_SYMBOL vmlinux 0x221dfde0 idr_pre_get
+EXPORT_SYMBOL vmlinux 0x222d1ead snd_dma_alloc_pages
+EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq
+EXPORT_SYMBOL vmlinux 0x223cc898 omap_vrfb_max_height
+EXPORT_SYMBOL vmlinux 0x223f61a4 neigh_update
+EXPORT_SYMBOL vmlinux 0x225628a4 kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x22647648 dquot_quota_off
+EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log
+EXPORT_SYMBOL vmlinux 0x2288378f system_state
+EXPORT_SYMBOL vmlinux 0x229e8504 __netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x22ab59a4 tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound
+EXPORT_SYMBOL vmlinux 0x2321f371 seq_write
+EXPORT_SYMBOL vmlinux 0x2324daaa blk_init_queue
+EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul
+EXPORT_SYMBOL vmlinux 0x232b6a32 cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0x23490617 do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x2384964b tcp_child_process
+EXPORT_SYMBOL vmlinux 0x238bd00c gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x239df312 kill_anon_super
+EXPORT_SYMBOL vmlinux 0x23b4c9a5 snd_register_oss_device
+EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23f2b701 dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node
+EXPORT_SYMBOL vmlinux 0x24039c62 dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x241544a4 get_gendisk
+EXPORT_SYMBOL vmlinux 0x2417d093 ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0x24353518 xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0x243ba47b tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x245d08e0 dma_alloc_from_coherent
+EXPORT_SYMBOL vmlinux 0x245f01a2 xfrm_state_update
+EXPORT_SYMBOL vmlinux 0x249599ba fget
+EXPORT_SYMBOL vmlinux 0x24a55978 omapdss_default_get_resolution
+EXPORT_SYMBOL vmlinux 0x24a94b26 snd_info_get_line
+EXPORT_SYMBOL vmlinux 0x24c56f14 slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function
+EXPORT_SYMBOL vmlinux 0x2500db0e arp_create
+EXPORT_SYMBOL vmlinux 0x25010996 netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x252d7640 panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x253d3524 tty_devnum
+EXPORT_SYMBOL vmlinux 0x2543fafe __blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x2580bb70 bitmap_endwrite
+EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x2586d777 scsi_dma_map
+EXPORT_SYMBOL vmlinux 0x25a1396f jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x25cd0f75 seq_path
+EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0x25db445e sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x25eb70d5 journal_start_commit
+EXPORT_SYMBOL vmlinux 0x25f785ad tty_write_room
+EXPORT_SYMBOL vmlinux 0x260faf14 omap_dss_get_next_device
+EXPORT_SYMBOL vmlinux 0x261c1766 __backtrace
+EXPORT_SYMBOL vmlinux 0x263384f7 blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0x263ad37e bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0x263d5a6a omap_mcbsp_spi_master_xmit_word_poll
+EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc
+EXPORT_SYMBOL vmlinux 0x2655b04a dev_mc_del
+EXPORT_SYMBOL vmlinux 0x26911e4d gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x26abc2d3 inet_addr_type
+EXPORT_SYMBOL vmlinux 0x26d08e26 jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x26f16810 skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x26fdae58 phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x2742719a kobject_del
+EXPORT_SYMBOL vmlinux 0x274dd29a ps2_end_command
+EXPORT_SYMBOL vmlinux 0x275ce5b7 blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0x276c5448 netpoll_poll_dev
+EXPORT_SYMBOL vmlinux 0x277af174 boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0x27864d57 memparse
+EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27c34477 dquot_free_inode
+EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x27c7193f register_exec_domain
+EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic
+EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1
+EXPORT_SYMBOL vmlinux 0x28162bb2 dev_get_flags
+EXPORT_SYMBOL vmlinux 0x28217e89 genphy_config_advert
+EXPORT_SYMBOL vmlinux 0x2830fee2 idr_get_next
+EXPORT_SYMBOL vmlinux 0x28394726 blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x283a05cd journal_restart
+EXPORT_SYMBOL vmlinux 0x28558fdb mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll
+EXPORT_SYMBOL vmlinux 0x28605358 __wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x2866a12b scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0x288b32be jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0x2890d4eb snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL vmlinux 0x2897fc48 omap_cfg_reg
+EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28c9cb7b request_firmware
+EXPORT_SYMBOL vmlinux 0x28cf9a89 sg_miter_next
+EXPORT_SYMBOL vmlinux 0x28e2f8ca journal_load
+EXPORT_SYMBOL vmlinux 0x291d5330 sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x295373e2 vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x29692394 iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x2983736e cdrom_mode_sense
+EXPORT_SYMBOL vmlinux 0x29b8b648 cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set
+EXPORT_SYMBOL vmlinux 0x29c797a6 udp_prot
+EXPORT_SYMBOL vmlinux 0x29d89b31 otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0x29f8a355 nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0x2a6ca3d6 proto_unregister
+EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add
+EXPORT_SYMBOL vmlinux 0x2a8cc70c pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp
+EXPORT_SYMBOL vmlinux 0x2aa29f41 arp_tbl
+EXPORT_SYMBOL vmlinux 0x2aa7e293 call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0x2aaa35b7 journal_clear_err
+EXPORT_SYMBOL vmlinux 0x2abf1729 bio_free
+EXPORT_SYMBOL vmlinux 0x2ac93b09 xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0x2ae14c25 input_unregister_handle
+EXPORT_SYMBOL vmlinux 0x2ae23db1 mmc_card_sleep
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b44f3a4 tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0x2b517a86 proc_create_data
+EXPORT_SYMBOL vmlinux 0x2b59e69a snd_ctl_remove
+EXPORT_SYMBOL vmlinux 0x2b5cf44b page_symlink
+EXPORT_SYMBOL vmlinux 0x2b688622 complete_and_exit
+EXPORT_SYMBOL vmlinux 0x2b6b9157 omap_dss_get_overlay_manager
+EXPORT_SYMBOL vmlinux 0x2b894d31 scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0x2b90cdaa mempool_create
+EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2badf8e2 snd_dma_get_reserved_buf
+EXPORT_SYMBOL vmlinux 0x2bb196cf scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0x2bc65785 serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x2bfc9fc6 md_error
+EXPORT_SYMBOL vmlinux 0x2c051f6b arp_broken_ops
+EXPORT_SYMBOL vmlinux 0x2c37a51e scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x2c48e4c8 max8925_reg_write
+EXPORT_SYMBOL vmlinux 0x2c6d19cf input_register_handler
+EXPORT_SYMBOL vmlinux 0x2c822fa9 mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0x2c9772c0 lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x2cc0faf1 xrlim_allow
+EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic
+EXPORT_SYMBOL vmlinux 0x2d101acc zero_fill_bio
+EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d34a1b4 dq_data_lock
+EXPORT_SYMBOL vmlinux 0x2d38a110 sk_wait_data
+EXPORT_SYMBOL vmlinux 0x2d6507b5 _find_next_zero_bit_le
+EXPORT_SYMBOL vmlinux 0x2d740a1e uart_resume_port
+EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2d8cc259 inode_needs_sync
+EXPORT_SYMBOL vmlinux 0x2d9084ff sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0x2ddeec35 dma_free_coherent
+EXPORT_SYMBOL vmlinux 0x2e0017db dm_unregister_target
+EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put
+EXPORT_SYMBOL vmlinux 0x2e20d281 ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem
+EXPORT_SYMBOL vmlinux 0x2e5810c6 __aeabi_unwind_cpp_pr1
+EXPORT_SYMBOL vmlinux 0x2e7ad970 blk_complete_request
+EXPORT_SYMBOL vmlinux 0x2e9f1dba misc_register
+EXPORT_SYMBOL vmlinux 0x2eafcafc gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x2ec08fee ___dma_page_dev_to_cpu
+EXPORT_SYMBOL vmlinux 0x2ee21e6c kmem_cache_alloc_notrace
+EXPORT_SYMBOL vmlinux 0x2f2e05a3 tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x2f3ce79c devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0x2f4e6d82 i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0x2f5f4981 dquot_scan_active
+EXPORT_SYMBOL vmlinux 0x2f5f649a blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0x2f70a163 elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0x2f742b11 tty_set_operations
+EXPORT_SYMBOL vmlinux 0x2f889fa6 input_inject_event
+EXPORT_SYMBOL vmlinux 0x2fd05867 vfs_symlink
+EXPORT_SYMBOL vmlinux 0x2fda8f6a serio_open
+EXPORT_SYMBOL vmlinux 0x302ce127 ppp_dev_name
+EXPORT_SYMBOL vmlinux 0x308aad56 omap_vrfb_min_phys_size
+EXPORT_SYMBOL vmlinux 0x30be2189 fsync_bdev
+EXPORT_SYMBOL vmlinux 0x30c76f4c snd_device_free
+EXPORT_SYMBOL vmlinux 0x30d8e29d snd_ctl_add
+EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0x31046fe4 dm_dirty_log_type_unregister
+EXPORT_SYMBOL vmlinux 0x310917fe sort
+EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x3127bf0c block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0x3132ee65 __nand_calculate_ecc
+EXPORT_SYMBOL vmlinux 0x313341a3 _set_bit_le
+EXPORT_SYMBOL vmlinux 0x3135cab9 block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x3147857d default_red
+EXPORT_SYMBOL vmlinux 0x31554513 fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit
+EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc
+EXPORT_SYMBOL vmlinux 0x319d9b97 rtnl_create_link
+EXPORT_SYMBOL vmlinux 0x31adf83a md_done_sync
+EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck
+EXPORT_SYMBOL vmlinux 0x31d31e5e kernel_accept
+EXPORT_SYMBOL vmlinux 0x31d7d3ba udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x31e46f1e nand_correct_data
+EXPORT_SYMBOL vmlinux 0x31f068b0 unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0x31f6a032 bdi_unregister
+EXPORT_SYMBOL vmlinux 0x324dd6c5 qdisc_reset
+EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat
+EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint
+EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy
+EXPORT_SYMBOL vmlinux 0x329aeb67 cap_file_mmap
+EXPORT_SYMBOL vmlinux 0x32bc9948 dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x32c39d72 vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0x3300512b km_new_mapping
+EXPORT_SYMBOL vmlinux 0x3314994c vc_cons
+EXPORT_SYMBOL vmlinux 0x3325ce3c posix_lock_file
+EXPORT_SYMBOL vmlinux 0x335fb579 dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0x3373a4a7 fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x338a4242 md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0x3404fcc9 __elv_add_request
+EXPORT_SYMBOL vmlinux 0x342d4f51 sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x34309884 thaw_super
+EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long
+EXPORT_SYMBOL vmlinux 0x345c7ec2 unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x349cba85 strchr
+EXPORT_SYMBOL vmlinux 0x34a17740 vfs_statfs
+EXPORT_SYMBOL vmlinux 0x34be423a blk_make_request
+EXPORT_SYMBOL vmlinux 0x34dbe01e devm_ioremap
+EXPORT_SYMBOL vmlinux 0x34f46fc2 __dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x351d51a4 devm_ioport_map
+EXPORT_SYMBOL vmlinux 0x352e187b phy_find_first
+EXPORT_SYMBOL vmlinux 0x353758e5 dma_sync_sg_for_cpu
+EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4
+EXPORT_SYMBOL vmlinux 0x357361e9 dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x3574c128 __brelse
+EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator
+EXPORT_SYMBOL vmlinux 0x35da0beb clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x35da67f4 omap_writew
+EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask
+EXPORT_SYMBOL vmlinux 0x3612c10f tmio_core_mmc_enable
+EXPORT_SYMBOL vmlinux 0x361722da phy_disable_interrupts
+EXPORT_SYMBOL vmlinux 0x36199dc0 d_path
+EXPORT_SYMBOL vmlinux 0x364d1dea dev_uc_add
+EXPORT_SYMBOL vmlinux 0x365352bc path_get
+EXPORT_SYMBOL vmlinux 0x36582611 dma_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x368a7a8c clk_get
+EXPORT_SYMBOL vmlinux 0x368bbc49 mmc_power_restore_host
+EXPORT_SYMBOL vmlinux 0x36923e8e sg_miter_stop
+EXPORT_SYMBOL vmlinux 0x36cb10c8 ftrace_event_seq
+EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36e64617 iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0x37100ac7 iget_locked
+EXPORT_SYMBOL vmlinux 0x3710dffc names_cachep
+EXPORT_SYMBOL vmlinux 0x371a1e4a i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0x372844cd ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf
+EXPORT_SYMBOL vmlinux 0x37523240 dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x377429ba tcp_check_req
+EXPORT_SYMBOL vmlinux 0x377a1885 omap_mcbsp_get_tx_delay
+EXPORT_SYMBOL vmlinux 0x3782e98b clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0x378a7d29 ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x3794ff9c unregister_cdrom
+EXPORT_SYMBOL vmlinux 0x3796bdcc snd_pcm_format_little_endian
+EXPORT_SYMBOL vmlinux 0x379ce0eb blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0x37a8bb82 register_gifconf
+EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic
+EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37d670f2 nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x37d7b226 pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x37d88a7f inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64
+EXPORT_SYMBOL vmlinux 0x38133c8b dqstats
+EXPORT_SYMBOL vmlinux 0x3820d9cf simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x383ce5ad journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x38614598 max8925_reg_read
+EXPORT_SYMBOL vmlinux 0x3878907f map_destroy
+EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x38932273 md_integrity_register
+EXPORT_SYMBOL vmlinux 0x38b69c9f d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x38c3ddd2 __xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0x38e8378d pgprot_kernel
+EXPORT_SYMBOL vmlinux 0x38ecef05 dev_set_mtu
+EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0x38fccf49 snd_mixer_oss_notify_callback
+EXPORT_SYMBOL vmlinux 0x394a8f7f invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0x39666877 icmp_send
+EXPORT_SYMBOL vmlinux 0x3971b4df snd_ecards_limit
+EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x398661f3 kernel_connect
+EXPORT_SYMBOL vmlinux 0x39bf9301 _snd_pcm_hw_param_setempty
+EXPORT_SYMBOL vmlinux 0x39d746a9 xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x39e8e23a vfs_follow_link
+EXPORT_SYMBOL vmlinux 0x3a006194 tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x3a016941 generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x3a047c29 dm_table_put
+EXPORT_SYMBOL vmlinux 0x3a0f005d generic_setattr
+EXPORT_SYMBOL vmlinux 0x3a101957 mmc_card_awake
+EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a465362 dev_open
+EXPORT_SYMBOL vmlinux 0x3a47a8bf truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x3a6d751e mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0x3a979ee9 i2c_verify_client
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3aba33f2 tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x3ac41767 dcache_dir_close
+EXPORT_SYMBOL vmlinux 0x3ae2326d jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b91f3af snd_free_pages
+EXPORT_SYMBOL vmlinux 0x3b9fe86a end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x3bcc530d security_path_rmdir
+EXPORT_SYMBOL vmlinux 0x3bd0c59e cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3bf9b19c do_splice_from
+EXPORT_SYMBOL vmlinux 0x3c007f79 dev_addr_del
+EXPORT_SYMBOL vmlinux 0x3c069978 display_device_unregister
+EXPORT_SYMBOL vmlinux 0x3c157b92 mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf
+EXPORT_SYMBOL vmlinux 0x3c34afb3 snd_ctl_remove_id
+EXPORT_SYMBOL vmlinux 0x3c351686 sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x3c9082d7 unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x3c917fdf sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size
+EXPORT_SYMBOL vmlinux 0x3cb6a5ec snd_card_free_when_closed
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq
+EXPORT_SYMBOL vmlinux 0x3ceceee6 ps2_drain
+EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap
+EXPORT_SYMBOL vmlinux 0x3d4c134c scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0x3d812171 get_super
+EXPORT_SYMBOL vmlinux 0x3d82a5a7 nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x3d96634f vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat
+EXPORT_SYMBOL vmlinux 0x3df81e53 jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e0113d4 sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0x3e1e6328 dqput
+EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks
+EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e52c13d sock_setsockopt
+EXPORT_SYMBOL vmlinux 0x3e6bda15 snd_device_new
+EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3e990120 netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x3ea22e8e unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x3eb813e0 snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3eee2e35 blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0x3f179ca5 inet_csk_accept
+EXPORT_SYMBOL vmlinux 0x3f372739 mmc_suspend_host
+EXPORT_SYMBOL vmlinux 0x3f3a8dce ppp_channel_index
+EXPORT_SYMBOL vmlinux 0x3f403baa get_sb_pseudo
+EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f5d2694 generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0x3f6c83fd mmc_wait_for_cmd
+EXPORT_SYMBOL vmlinux 0x3fa5827b may_umount
+EXPORT_SYMBOL vmlinux 0x3fc42bb3 bio_map_kern
+EXPORT_SYMBOL vmlinux 0x3fd7368b tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable
+EXPORT_SYMBOL vmlinux 0x401ab4ad con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x402aff01 flush_dcache_page
+EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump
+EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds
+EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8
+EXPORT_SYMBOL vmlinux 0x407a3275 omap_start_dma
+EXPORT_SYMBOL vmlinux 0x409353dd inet_register_protosw
+EXPORT_SYMBOL vmlinux 0x4094233a open_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40a6f522 __arm_ioremap
+EXPORT_SYMBOL vmlinux 0x40d16d28 tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3
+EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring
+EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode
+EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp
+EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user
+EXPORT_SYMBOL vmlinux 0x4158c45a netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x415dc345 give_up_console
+EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features
+EXPORT_SYMBOL vmlinux 0x416b2522 omap_get_var_config
+EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x418bca91 del_mtd_partitions
+EXPORT_SYMBOL vmlinux 0x41a18e19 elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0x41b33015 textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x41b70ed5 dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0x41c07bcd snd_card_register
+EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0x41cc649e tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x41cfeafc snd_unregister_oss_device
+EXPORT_SYMBOL vmlinux 0x41eeef39 dev_change_flags
+EXPORT_SYMBOL vmlinux 0x4207244c key_alloc
+EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x42224298 sscanf
+EXPORT_SYMBOL vmlinux 0x42305d3f inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0x42423024 mmc_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x424c0c1f pagevec_lookup
+EXPORT_SYMBOL vmlinux 0x425cb844 journal_dirty_data
+EXPORT_SYMBOL vmlinux 0x4281d759 iput
+EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x429fc523 xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x42c0a0a8 bio_endio
+EXPORT_SYMBOL vmlinux 0x42eedb04 napi_frags_skb
+EXPORT_SYMBOL vmlinux 0x42f94173 file_permission
+EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages
+EXPORT_SYMBOL vmlinux 0x4308bb3d xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0x431bf70b xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short
+EXPORT_SYMBOL vmlinux 0x4347b971 idr_init
+EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem
+EXPORT_SYMBOL vmlinux 0x436a0dda ps2_init
+EXPORT_SYMBOL vmlinux 0x439995dc arp_find
+EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get
+EXPORT_SYMBOL vmlinux 0x43b9d5f9 copy_io_context
+EXPORT_SYMBOL vmlinux 0x43dcbd75 dmam_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x43f4205c xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0x43fbbb79 override_creds
+EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x441ed159 omap_get_dma_src_pos
+EXPORT_SYMBOL vmlinux 0x442495c9 tmio_core_mmc_resume
+EXPORT_SYMBOL vmlinux 0x442f7fcf simple_write_end
+EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0x4442a3cd qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0x444779c4 nla_find
+EXPORT_SYMBOL vmlinux 0x4452964a netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0x445a2b6a scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0x445c094d jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0x44623830 register_nls
+EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul
+EXPORT_SYMBOL vmlinux 0x4477406d simple_unlink
+EXPORT_SYMBOL vmlinux 0x448212fa down_trylock
+EXPORT_SYMBOL vmlinux 0x448e135a unlock_page
+EXPORT_SYMBOL vmlinux 0x44975c2c input_register_handle
+EXPORT_SYMBOL vmlinux 0x4497dfd9 md_wakeup_thread
+EXPORT_SYMBOL vmlinux 0x44b38e88 register_sound_special
+EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic
+EXPORT_SYMBOL vmlinux 0x44e9a829 match_token
+EXPORT_SYMBOL vmlinux 0x45077735 neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x450947f2 snd_card_free
+EXPORT_SYMBOL vmlinux 0x4511c1b0 jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0x4521aeea __dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x45478fde set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0x458e218f invalidate_inodes
+EXPORT_SYMBOL vmlinux 0x45947727 param_array_set
+EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap
+EXPORT_SYMBOL vmlinux 0x45add706 deactivate_super
+EXPORT_SYMBOL vmlinux 0x45b08a8d jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low
+EXPORT_SYMBOL vmlinux 0x45c6c2b6 register_qdisc
+EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45daef84 filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x460ea1c5 udplite_table
+EXPORT_SYMBOL vmlinux 0x461420dc tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0x461b310f task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0x4628dc33 omap_vram_alloc
+EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy
+EXPORT_SYMBOL vmlinux 0x4637ce6e mdiobus_read
+EXPORT_SYMBOL vmlinux 0x465f5a8b nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x46a3b927 inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0x46a94fc3 clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0x46d3b28c __div0
+EXPORT_SYMBOL vmlinux 0x46d7dc42 blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0x46e2705e kmalloc_caches
+EXPORT_SYMBOL vmlinux 0x470363d1 pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0x47153bdd blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x47327078 inode_change_ok
+EXPORT_SYMBOL vmlinux 0x473dfe99 find_lock_page
+EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x475f80d5 set_anon_super
+EXPORT_SYMBOL vmlinux 0x47738945 __dquot_free_space
+EXPORT_SYMBOL vmlinux 0x47780f43 scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x478671fe __destroy_inode
+EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0x47bd1f84 journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x47e044cd bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0x47f757de elf_platform
+EXPORT_SYMBOL vmlinux 0x4805e3d0 km_state_notify
+EXPORT_SYMBOL vmlinux 0x48065379 lro_flush_all
+EXPORT_SYMBOL vmlinux 0x482072f5 sock_no_getname
+EXPORT_SYMBOL vmlinux 0x482d6ae2 snd_pcm_lib_ioctl
+EXPORT_SYMBOL vmlinux 0x483c213d read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x483ec199 __cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days
+EXPORT_SYMBOL vmlinux 0x485d0d66 sock_map_fd
+EXPORT_SYMBOL vmlinux 0x486324c6 dev_get_stats
+EXPORT_SYMBOL vmlinux 0x4867caf9 inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x48974b34 udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type
+EXPORT_SYMBOL vmlinux 0x48be2120 rtnl_notify
+EXPORT_SYMBOL vmlinux 0x48fc64e5 __locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x4904efe5 ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0x491c09f6 dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x492ad7ca try_to_release_page
+EXPORT_SYMBOL vmlinux 0x493ae54d jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0x493ae84e freeze_bdev
+EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x496ac6fd xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0x496de593 pagecache_write_end
+EXPORT_SYMBOL vmlinux 0x4975a183 kernel_getsockname
+EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49bc27fc elv_register_queue
+EXPORT_SYMBOL vmlinux 0x49c446f8 journal_extend
+EXPORT_SYMBOL vmlinux 0x49dd4c70 omap_dss_start_device
+EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string
+EXPORT_SYMBOL vmlinux 0x49f58782 backlight_force_update
+EXPORT_SYMBOL vmlinux 0x4a20e258 jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a37af33 ___dma_single_cpu_to_dev
+EXPORT_SYMBOL vmlinux 0x4a37eede elevator_init
+EXPORT_SYMBOL vmlinux 0x4a39e5a1 omap_set_dma_src_params
+EXPORT_SYMBOL vmlinux 0x4a3ea5c0 snd_request_card
+EXPORT_SYMBOL vmlinux 0x4a88ee17 ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc
+EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x4aea809c scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x4af8a0c1 neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b20cbd2 ida_remove
+EXPORT_SYMBOL vmlinux 0x4b21014f fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x4b2b6678 add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals
+EXPORT_SYMBOL vmlinux 0x4b467c84 netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x4b503a71 elv_rb_del
+EXPORT_SYMBOL vmlinux 0x4b5d476f amba_release_regions
+EXPORT_SYMBOL vmlinux 0x4b686514 call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0x4b72ce57 bd_claim
+EXPORT_SYMBOL vmlinux 0x4b7ed9dd datagram_poll
+EXPORT_SYMBOL vmlinux 0x4b881a63 tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x4b98e864 get_sb_ns
+EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags
+EXPORT_SYMBOL vmlinux 0x4bbdf1f4 alloc_disk
+EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr
+EXPORT_SYMBOL vmlinux 0x4c4e3da8 should_remove_suid
+EXPORT_SYMBOL vmlinux 0x4c4f4e63 add_mtd_partitions
+EXPORT_SYMBOL vmlinux 0x4c64d88f vm_event_states
+EXPORT_SYMBOL vmlinux 0x4cac52e6 splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4ccfd97b blkdev_put
+EXPORT_SYMBOL vmlinux 0x4cd18534 dev_addr_init
+EXPORT_SYMBOL vmlinux 0x4cd7d499 ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x4cf34a2d bdi_destroy
+EXPORT_SYMBOL vmlinux 0x4d0012f4 mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page
+EXPORT_SYMBOL vmlinux 0x4d141f33 dev_uc_sync
+EXPORT_SYMBOL vmlinux 0x4d2176d0 d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x4d2c29bd posix_test_lock
+EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask
+EXPORT_SYMBOL vmlinux 0x4d9ad07b __ip_select_ident
+EXPORT_SYMBOL vmlinux 0x4d9b6d35 snd_pcm_format_size
+EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dec6038 memscan
+EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4dfa4ed6 sg_miter_start
+EXPORT_SYMBOL vmlinux 0x4e03c9be amba_find_device
+EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int
+EXPORT_SYMBOL vmlinux 0x4e3663fe audit_log_start
+EXPORT_SYMBOL vmlinux 0x4e3a9868 kdb_current_task
+EXPORT_SYMBOL vmlinux 0x4e3fa7c1 netlink_set_err
+EXPORT_SYMBOL vmlinux 0x4e423ba4 get_disk
+EXPORT_SYMBOL vmlinux 0x4e44d888 snd_timer_new
+EXPORT_SYMBOL vmlinux 0x4e506013 omap_dma_link_lch
+EXPORT_SYMBOL vmlinux 0x4e55b7b7 tcp_poll
+EXPORT_SYMBOL vmlinux 0x4e683f9b scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console
+EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp
+EXPORT_SYMBOL vmlinux 0x4e9c74d3 have_submounts
+EXPORT_SYMBOL vmlinux 0x4ed0225f find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x4ed793cf __dst_free
+EXPORT_SYMBOL vmlinux 0x4ef608a6 dm_exception_store_create
+EXPORT_SYMBOL vmlinux 0x4ef80fa0 sock_i_ino
+EXPORT_SYMBOL vmlinux 0x4f062b75 pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0x4f17f38b con_is_bound
+EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x4f816e9b snd_pcm_format_big_endian
+EXPORT_SYMBOL vmlinux 0x4f89c9de gpmc_cs_free
+EXPORT_SYMBOL vmlinux 0x4f9448da generic_write_checks
+EXPORT_SYMBOL vmlinux 0x4fada8f7 snd_timer_global_new
+EXPORT_SYMBOL vmlinux 0x4fcb5fab path_lookup
+EXPORT_SYMBOL vmlinux 0x4fe9db18 arp_xmit
+EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x50272f97 xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x5047badd jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x506d97f5 omap_readl
+EXPORT_SYMBOL vmlinux 0x5079ab01 keyring_clear
+EXPORT_SYMBOL vmlinux 0x5093fa82 _clear_bit_le
+EXPORT_SYMBOL vmlinux 0x50942c85 dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x5095daf8 snd_ctl_register_ioctl
+EXPORT_SYMBOL vmlinux 0x50b77257 set_user_nice
+EXPORT_SYMBOL vmlinux 0x50c71330 idr_get_new
+EXPORT_SYMBOL vmlinux 0x50ccff03 omap_dma_set_prio_lch
+EXPORT_SYMBOL vmlinux 0x50eee85b nand_scan_bbt
+EXPORT_SYMBOL vmlinux 0x510a0b67 genphy_read_status
+EXPORT_SYMBOL vmlinux 0x511746c1 dump_fpu
+EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x514ad7ee vc_resize
+EXPORT_SYMBOL vmlinux 0x5159db08 scsi_execute
+EXPORT_SYMBOL vmlinux 0x5160b96a __skb_bond_should_drop
+EXPORT_SYMBOL vmlinux 0x5169161d omap_free_dma_chain
+EXPORT_SYMBOL vmlinux 0x51908eb8 __raw_writesl
+EXPORT_SYMBOL vmlinux 0x51932dfe tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0x51958c41 skb_queue_head
+EXPORT_SYMBOL vmlinux 0x51b4b33d dma_ops
+EXPORT_SYMBOL vmlinux 0x51d8177f xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid
+EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup
+EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x522de1e6 sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0x52385271 netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0x524f1358 tcp_connect
+EXPORT_SYMBOL vmlinux 0x5257c2e2 d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0x5271de3c ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday
+EXPORT_SYMBOL vmlinux 0x5286d3fa input_set_keycode
+EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy
+EXPORT_SYMBOL vmlinux 0x52c2ef34 rb_erase
+EXPORT_SYMBOL vmlinux 0x52c31e95 input_free_device
+EXPORT_SYMBOL vmlinux 0x52cacb4e blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0x52e3e4a5 snd_pcm_hw_param_value
+EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort
+EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend
+EXPORT_SYMBOL vmlinux 0x531a2cf0 blk_peek_request
+EXPORT_SYMBOL vmlinux 0x5324b3b9 journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x53421b1b set_disk_ro
+EXPORT_SYMBOL vmlinux 0x53436543 qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0x5369263c input_open_device
+EXPORT_SYMBOL vmlinux 0x53798543 tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0x537e1f5b security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0x53ae0f38 omap_st_enable
+EXPORT_SYMBOL vmlinux 0x53be4954 tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x53c4c93e sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate
+EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x544ac9b2 snd_timer_interrupt
+EXPORT_SYMBOL vmlinux 0x5457a153 xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0x549e36fc dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0x54d5e99c set_device_ro
+EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54f3b774 sock_update_classid
+EXPORT_SYMBOL vmlinux 0x555ad2db filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x556cb9da scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0x557b4e4c sk_run_filter
+EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap
+EXPORT_SYMBOL vmlinux 0x5597ce5d scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0x55990e93 ether_setup
+EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x55b5d010 pskb_copy
+EXPORT_SYMBOL vmlinux 0x55c26865 scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0x55e392e5 destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday
+EXPORT_SYMBOL vmlinux 0x561469cb __serio_register_port
+EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x5616e9ad jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0x562e3c33 mod_timer_pending
+EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user
+EXPORT_SYMBOL vmlinux 0x5650a9db bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x56789ac5 omap_set_dma_color_mode
+EXPORT_SYMBOL vmlinux 0x569ef34a shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr
+EXPORT_SYMBOL vmlinux 0x56fe4021 blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0x57143014 blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put
+EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16
+EXPORT_SYMBOL vmlinux 0x57698fa7 textsearch_prepare
+EXPORT_SYMBOL vmlinux 0x57701df1 scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf
+EXPORT_SYMBOL vmlinux 0x57b15cd5 register_md_personality
+EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57bd87b2 balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0x57cf0e54 omap_dss_put_device
+EXPORT_SYMBOL vmlinux 0x57d3c7b2 netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path
+EXPORT_SYMBOL vmlinux 0x58064f13 snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x5843adab netlink_unicast
+EXPORT_SYMBOL vmlinux 0x58516557 omap_set_dma_src_data_pack
+EXPORT_SYMBOL vmlinux 0x5853765b dma_sync_sg_for_device
+EXPORT_SYMBOL vmlinux 0x586818d2 wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x58842d9f blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x58a51f19 ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x58c2ccac unregister_quota_format
+EXPORT_SYMBOL vmlinux 0x58ca67ac dentry_open
+EXPORT_SYMBOL vmlinux 0x58dae20b simple_setsize
+EXPORT_SYMBOL vmlinux 0x58fadae6 dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0x591b93cb lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x5930b610 remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client
+EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map
+EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3
+EXPORT_SYMBOL vmlinux 0x594fd546 omap_prcm_get_reset_sources
+EXPORT_SYMBOL vmlinux 0x5951b183 set_bdi_congested
+EXPORT_SYMBOL vmlinux 0x596c745b __nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x59833b36 serio_close
+EXPORT_SYMBOL vmlinux 0x598fd589 nf_ct_attach
+EXPORT_SYMBOL vmlinux 0x599c9936 blk_unplug
+EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource
+EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64
+EXPORT_SYMBOL vmlinux 0x5a167d66 tcp_close
+EXPORT_SYMBOL vmlinux 0x5a229817 thaw_bdev
+EXPORT_SYMBOL vmlinux 0x5a3b115a kstat
+EXPORT_SYMBOL vmlinux 0x5a42cc6f do_munmap
+EXPORT_SYMBOL vmlinux 0x5a4a3d0f security_path_chown
+EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a90e3d5 key_put
+EXPORT_SYMBOL vmlinux 0x5aa89eb9 fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0x5aac1c91 blk_free_tags
+EXPORT_SYMBOL vmlinux 0x5ae0d47f clocksource_register
+EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem
+EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0x5ba167df abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x5ba4dd2b dm_table_get_md
+EXPORT_SYMBOL vmlinux 0x5bb3b63a generic_write_end
+EXPORT_SYMBOL vmlinux 0x5bb450ee sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x5bc4ff26 framebuffer_release
+EXPORT_SYMBOL vmlinux 0x5be2888a seq_release
+EXPORT_SYMBOL vmlinux 0x5be8db5d ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0x5bf4a1eb sg_last
+EXPORT_SYMBOL vmlinux 0x5c047837 page_readlink
+EXPORT_SYMBOL vmlinux 0x5c2b4428 mmc_set_data_timeout
+EXPORT_SYMBOL vmlinux 0x5c3ed4b4 scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x5c5b57ae module_layout
+EXPORT_SYMBOL vmlinux 0x5c645bc1 elv_rb_find
+EXPORT_SYMBOL vmlinux 0x5c73a5cd kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id
+EXPORT_SYMBOL vmlinux 0x5cb4db7d blk_stop_queue
+EXPORT_SYMBOL vmlinux 0x5cf526d8 neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x5cf60140 skb_queue_tail
+EXPORT_SYMBOL vmlinux 0x5d09242d vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0x5d181b34 textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0x5d348256 serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x5d38461a snd_pcm_stop
+EXPORT_SYMBOL vmlinux 0x5d41c878 omapdss_sdi_display_disable
+EXPORT_SYMBOL vmlinux 0x5d6e12fc ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x5d7ad37e omap_mcbsp_set_rx_threshold
+EXPORT_SYMBOL vmlinux 0x5d7f0182 uart_remove_one_port
+EXPORT_SYMBOL vmlinux 0x5db09ff7 nf_hook_slow
+EXPORT_SYMBOL vmlinux 0x5db20f3f inode_permission
+EXPORT_SYMBOL vmlinux 0x5dcb8e3d dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x5dce45a4 sock_init_data
+EXPORT_SYMBOL vmlinux 0x5dd76eb8 fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0x5dd9ff6d submit_bio
+EXPORT_SYMBOL vmlinux 0x5dfe1a55 dmam_release_declared_memory
+EXPORT_SYMBOL vmlinux 0x5e0ad6f4 iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0x5e573478 scsi_device_resume
+EXPORT_SYMBOL vmlinux 0x5e60eb27 omap_dma_unlink_lch
+EXPORT_SYMBOL vmlinux 0x5e7f4920 snd_pcm_format_set_silence
+EXPORT_SYMBOL vmlinux 0x5e807082 vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x5e892c3b generic_show_options
+EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask
+EXPORT_SYMBOL vmlinux 0x5eafa8d4 ipv4_specific
+EXPORT_SYMBOL vmlinux 0x5eca99b8 textsearch_unregister
+EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5ed9a23a revalidate_disk
+EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd
+EXPORT_SYMBOL vmlinux 0x5ef5b94f bh_submit_read
+EXPORT_SYMBOL vmlinux 0x5f028a4a dquot_commit_info
+EXPORT_SYMBOL vmlinux 0x5f4ebacd scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x5f52aebe dm_get_device
+EXPORT_SYMBOL vmlinux 0x5f754e5a memset
+EXPORT_SYMBOL vmlinux 0x5f7c6109 inet_release
+EXPORT_SYMBOL vmlinux 0x5f86edf8 pipe_unlock
+EXPORT_SYMBOL vmlinux 0x5f95f2e7 simple_setattr
+EXPORT_SYMBOL vmlinux 0x5fbc88ab napi_complete
+EXPORT_SYMBOL vmlinux 0x5fcc602c skb_store_bits
+EXPORT_SYMBOL vmlinux 0x5fd16c6a bio_integrity_free
+EXPORT_SYMBOL vmlinux 0x5fea5985 seq_open
+EXPORT_SYMBOL vmlinux 0x6005ea87 ilookup
+EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x601a8188 register_framebuffer
+EXPORT_SYMBOL vmlinux 0x602c96f0 copy_to_user_fromio
+EXPORT_SYMBOL vmlinux 0x60355632 vfs_readlink
+EXPORT_SYMBOL vmlinux 0x60388d15 seq_bitmap
+EXPORT_SYMBOL vmlinux 0x6046e05b scsi_get_command
+EXPORT_SYMBOL vmlinux 0x605ed6a0 set_groups
+EXPORT_SYMBOL vmlinux 0x60612ce3 devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x60633088 inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net
+EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off
+EXPORT_SYMBOL vmlinux 0x60bbfb10 scsi_print_result
+EXPORT_SYMBOL vmlinux 0x60c0a517 elevator_exit
+EXPORT_SYMBOL vmlinux 0x60db792f audit_log_format
+EXPORT_SYMBOL vmlinux 0x60deb292 elv_rb_add
+EXPORT_SYMBOL vmlinux 0x60f71cfa complete
+EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n
+EXPORT_SYMBOL vmlinux 0x60fc3932 dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x60fdaff8 security_path_rename
+EXPORT_SYMBOL vmlinux 0x61120475 register_key_type
+EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x6153064d blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x61613ea5 genphy_update_link
+EXPORT_SYMBOL vmlinux 0x6167cb02 ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x6186215e journal_start
+EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free
+EXPORT_SYMBOL vmlinux 0x61a60f1f rb_replace_node
+EXPORT_SYMBOL vmlinux 0x61a79f08 __irq_regs
+EXPORT_SYMBOL vmlinux 0x61af78a0 open_by_devnum
+EXPORT_SYMBOL vmlinux 0x61b64887 __pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0x61b66771 lookup_bdev
+EXPORT_SYMBOL vmlinux 0x61b67ce6 unregister_nls
+EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61c32855 i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x61d28dd3 _snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL vmlinux 0x61d678a7 netif_napi_add
+EXPORT_SYMBOL vmlinux 0x620b4d97 ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0x6227fa05 udp_poll
+EXPORT_SYMBOL vmlinux 0x623d6bb9 pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x6257f7d3 serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister
+EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x6286b4ea submit_bh
+EXPORT_SYMBOL vmlinux 0x62b72b0d mutex_unlock
+EXPORT_SYMBOL vmlinux 0x62b84046 tty_shutdown
+EXPORT_SYMBOL vmlinux 0x62cc569e cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x62f5b243 dquot_alloc
+EXPORT_SYMBOL vmlinux 0x62f9fdf4 jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0x632e06b9 mpage_writepages
+EXPORT_SYMBOL vmlinux 0x6343259b blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x63441b5e bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0x6357d047 __netif_schedule
+EXPORT_SYMBOL vmlinux 0x6368bd77 input_allocate_device
+EXPORT_SYMBOL vmlinux 0x636b3461 omap_dss_get_num_overlays
+EXPORT_SYMBOL vmlinux 0x638b6e9d xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0x6394fe3d set_bh_page
+EXPORT_SYMBOL vmlinux 0x63a0a97e tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x63a47f90 inet_recvmsg
+EXPORT_SYMBOL vmlinux 0x63b82c8c uart_get_divisor
+EXPORT_SYMBOL vmlinux 0x63e10b4a invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0x63e3e025 generic_readlink
+EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0x63fd0a82 scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x6457dec3 __register_chrdev
+EXPORT_SYMBOL vmlinux 0x646cacb6 snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL vmlinux 0x648438c6 __getblk
+EXPORT_SYMBOL vmlinux 0x64860c98 genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0x64863a97 mmc_release_host
+EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait
+EXPORT_SYMBOL vmlinux 0x64b8d439 blk_start_queue
+EXPORT_SYMBOL vmlinux 0x650f8603 snd_pcm_format_silence_64
+EXPORT_SYMBOL vmlinux 0x651a4139 test_taint
+EXPORT_SYMBOL vmlinux 0x651b355f xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name
+EXPORT_SYMBOL vmlinux 0x65574709 phy_enable_interrupts
+EXPORT_SYMBOL vmlinux 0x658925f9 bdget
+EXPORT_SYMBOL vmlinux 0x658f7ff5 key_payload_reserve
+EXPORT_SYMBOL vmlinux 0x65a068e6 udp_ioctl
+EXPORT_SYMBOL vmlinux 0x65d5ad78 netdev_state_change
+EXPORT_SYMBOL vmlinux 0x660b9c84 clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0x6617187e serial8250_register_port
+EXPORT_SYMBOL vmlinux 0x661d4c43 vfs_unlink
+EXPORT_SYMBOL vmlinux 0x66248566 dput
+EXPORT_SYMBOL vmlinux 0x662dce23 omap_mcbsp_set_spi_mode
+EXPORT_SYMBOL vmlinux 0x667fc2ad slow_work_register_user
+EXPORT_SYMBOL vmlinux 0x6681ba06 qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x66d9f2e1 scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time
+EXPORT_SYMBOL vmlinux 0x673c538b scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0x676bccb3 scsi_prep_return
+EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios
+EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67be1d3d cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x67dc1b5e redraw_screen
+EXPORT_SYMBOL vmlinux 0x67df098c gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x67eee999 invalidate_partition
+EXPORT_SYMBOL vmlinux 0x67f3508d get_io_context
+EXPORT_SYMBOL vmlinux 0x67f69f57 ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0x68157e49 mii_link_ok
+EXPORT_SYMBOL vmlinux 0x682302d3 dm_dirty_log_destroy
+EXPORT_SYMBOL vmlinux 0x682601ed dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x682c8e68 blk_recount_segments
+EXPORT_SYMBOL vmlinux 0x6850df0d tty_register_driver
+EXPORT_SYMBOL vmlinux 0x6860c82f generic_setlease
+EXPORT_SYMBOL vmlinux 0x686cb1cf phy_driver_register
+EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x6887021f get_phy_device
+EXPORT_SYMBOL vmlinux 0x68a24153 snd_pcm_format_physical_width
+EXPORT_SYMBOL vmlinux 0x68c98e16 set_create_files_as
+EXPORT_SYMBOL vmlinux 0x68ff9030 scsi_register_interface
+EXPORT_SYMBOL vmlinux 0x69038083 __sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0x6904f235 sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x6921edfc scsi_scan_target
+EXPORT_SYMBOL vmlinux 0x6935a10a scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days
+EXPORT_SYMBOL vmlinux 0x6973606c omap_st_get_chgain
+EXPORT_SYMBOL vmlinux 0x697d8b35 sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x697e6959 netif_device_detach
+EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int
+EXPORT_SYMBOL vmlinux 0x698e7c30 netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem
+EXPORT_SYMBOL vmlinux 0x69b6f8d9 omap_set_dma_transfer_params
+EXPORT_SYMBOL vmlinux 0x69bc8bb4 splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69db2761 snd_pcm_set_ops
+EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a1ae248 blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0x6a1b7803 phy_sanitize_settings
+EXPORT_SYMBOL vmlinux 0x6a2ec098 inet_stream_connect
+EXPORT_SYMBOL vmlinux 0x6a4b036c dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x6a559116 rtc_lock
+EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6a7b047c ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x6a8180c9 block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp
+EXPORT_SYMBOL vmlinux 0x6b091ffb journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname
+EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack
+EXPORT_SYMBOL vmlinux 0x6b3c673a fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x6b3e56f7 fb_get_mode
+EXPORT_SYMBOL vmlinux 0x6b562deb I_BDEV
+EXPORT_SYMBOL vmlinux 0x6b56ca71 clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0x6b5a7057 ida_destroy
+EXPORT_SYMBOL vmlinux 0x6b60ce07 alloc_etherdev_mq
+EXPORT_SYMBOL vmlinux 0x6b66ab68 simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0x6b81d748 check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6c039f7b dquot_destroy
+EXPORT_SYMBOL vmlinux 0x6c18698a block_commit_write
+EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn
+EXPORT_SYMBOL vmlinux 0x6c3b5b27 dev_close
+EXPORT_SYMBOL vmlinux 0x6c512ca8 fb_find_mode
+EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c943085 inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0x6ca852e1 scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0x6cae7b92 mmc_host_disable
+EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy
+EXPORT_SYMBOL vmlinux 0x6cf5bf8a d_instantiate
+EXPORT_SYMBOL vmlinux 0x6cf600e2 scsi_device_get
+EXPORT_SYMBOL vmlinux 0x6d22c5d8 dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0x6d35cd12 page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0x6d3a6e4f bio_clone
+EXPORT_SYMBOL vmlinux 0x6d3f2e31 phy_attach
+EXPORT_SYMBOL vmlinux 0x6d4c0984 i2c_clients_command
+EXPORT_SYMBOL vmlinux 0x6d5dfd35 tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0x6d662533 _find_first_bit_le
+EXPORT_SYMBOL vmlinux 0x6d69d432 snd_pcm_lib_write
+EXPORT_SYMBOL vmlinux 0x6d778de4 unregister_console
+EXPORT_SYMBOL vmlinux 0x6d9219f2 writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0x6d979a99 loop_register_transfer
+EXPORT_SYMBOL vmlinux 0x6da89572 i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0x6dbd9f8b nf_reinject
+EXPORT_SYMBOL vmlinux 0x6ddec369 default_unplug_io_fn
+EXPORT_SYMBOL vmlinux 0x6de8376a blk_end_request
+EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6dfbc368 no_llseek
+EXPORT_SYMBOL vmlinux 0x6e00a137 __tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0x6e03c70f jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x6e184d5c key_validate
+EXPORT_SYMBOL vmlinux 0x6e60a18e km_state_expired
+EXPORT_SYMBOL vmlinux 0x6e696f8d create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put
+EXPORT_SYMBOL vmlinux 0x6ea25d4a tcf_register_action
+EXPORT_SYMBOL vmlinux 0x6ea8f321 journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x6eab2a02 locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x6eb9a857 splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x6edc03e5 dm_dirty_log_create
+EXPORT_SYMBOL vmlinux 0x6ef23909 neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0x6ef8fcd8 snd_pcm_format_linear
+EXPORT_SYMBOL vmlinux 0x6f33bcd3 omap_mcbsp_pollwrite
+EXPORT_SYMBOL vmlinux 0x6f7fcf8e inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x6fa0fbaa skb_put
+EXPORT_SYMBOL vmlinux 0x6fbf01c9 xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fea904d tty_vhangup
+EXPORT_SYMBOL vmlinux 0x6ff7e5d2 vfs_readdir
+EXPORT_SYMBOL vmlinux 0x6ffb979c file_fsync
+EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free
+EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm
+EXPORT_SYMBOL vmlinux 0x700782ca neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x7011222b mii_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf
+EXPORT_SYMBOL vmlinux 0x70277564 dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0x702b4665 snd_pcm_lib_readv
+EXPORT_SYMBOL vmlinux 0x703bde45 inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x709cc168 seq_puts
+EXPORT_SYMBOL vmlinux 0x70a15c8a ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait
+EXPORT_SYMBOL vmlinux 0x70beabab ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x70c6a699 otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0x70eb0e30 end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x70ec6d8f sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x70eea0cf tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0x70f4f92e __sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x70fa2924 register_console
+EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc
+EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x713c8132 eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0x715c480c km_policy_notify
+EXPORT_SYMBOL vmlinux 0x7171121c overflowgid
+EXPORT_SYMBOL vmlinux 0x7177a692 dquot_resume
+EXPORT_SYMBOL vmlinux 0x717fba83 dpi_set_timings
+EXPORT_SYMBOL vmlinux 0x7180e65b skb_split
+EXPORT_SYMBOL vmlinux 0x718fbf4f __xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev
+EXPORT_SYMBOL vmlinux 0x71b7da35 dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0x71c90087 memcmp
+EXPORT_SYMBOL vmlinux 0x71e2a293 neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0x72452653 d_rehash
+EXPORT_SYMBOL vmlinux 0x72502ac7 neigh_seq_start
+EXPORT_SYMBOL vmlinux 0x725a8219 inet6_getname
+EXPORT_SYMBOL vmlinux 0x7260cb22 skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x728d3d05 clear_inode
+EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte
+EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type
+EXPORT_SYMBOL vmlinux 0x73237486 vm_map_ram
+EXPORT_SYMBOL vmlinux 0x733847e4 __dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0x734c013f write_one_page
+EXPORT_SYMBOL vmlinux 0x735994ce remove_from_page_cache
+EXPORT_SYMBOL vmlinux 0x735a37e3 inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat
+EXPORT_SYMBOL vmlinux 0x73633039 default_llseek
+EXPORT_SYMBOL vmlinux 0x7375317e xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x737e014f dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0x73cce8c1 journal_revoke
+EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy
+EXPORT_SYMBOL vmlinux 0x73e8a10b journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte
+EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x74a691c0 tcp_splice_read
+EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74c5a036 __mmc_claim_host
+EXPORT_SYMBOL vmlinux 0x74c7e829 dquot_quota_on
+EXPORT_SYMBOL vmlinux 0x74e8ccd2 nobh_writepage
+EXPORT_SYMBOL vmlinux 0x74eb860d uart_suspend_port
+EXPORT_SYMBOL vmlinux 0x74ed44ae tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x7500e6b9 udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x751747b8 scsi_init_io
+EXPORT_SYMBOL vmlinux 0x753188a5 inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0x754ce0e7 sk_free
+EXPORT_SYMBOL vmlinux 0x755f150d netpoll_send_skb
+EXPORT_SYMBOL vmlinux 0x75619178 clk_set_parent
+EXPORT_SYMBOL vmlinux 0x75923f16 unregister_key_type
+EXPORT_SYMBOL vmlinux 0x7595f8c9 scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0x75a17bed prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x75b68080 inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75e75a9c bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x75fc2665 mmc_alloc_host
+EXPORT_SYMBOL vmlinux 0x75fee7fd __raw_writesb
+EXPORT_SYMBOL vmlinux 0x7606ace7 user_path_at
+EXPORT_SYMBOL vmlinux 0x760a0f4f yield
+EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x760d3a22 tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x764662b7 generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x765f75fb pgprot_user
+EXPORT_SYMBOL vmlinux 0x76694591 omap_mcbsp_get_max_tx_threshold
+EXPORT_SYMBOL vmlinux 0x76771d20 napi_gro_frags
+EXPORT_SYMBOL vmlinux 0x76881360 leds_event
+EXPORT_SYMBOL vmlinux 0x768ba7b6 snd_pcm_hw_param_last
+EXPORT_SYMBOL vmlinux 0x769d9c1e ppp_register_channel
+EXPORT_SYMBOL vmlinux 0x76a2d422 i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x76bc92f7 neigh_seq_next
+EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76cf47f6 __aeabi_llsl
+EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode
+EXPORT_SYMBOL vmlinux 0x7701824f fb_pan_display
+EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic
+EXPORT_SYMBOL vmlinux 0x770f9e8e mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0x771a3a70 skb_unlink
+EXPORT_SYMBOL vmlinux 0x7720aaec md_check_recovery
+EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x7795183e cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0x779dd45d kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x77a9f716 cdrom_open
+EXPORT_SYMBOL vmlinux 0x77aa6fc2 keyring_search
+EXPORT_SYMBOL vmlinux 0x77bc13a0 strim
+EXPORT_SYMBOL vmlinux 0x77dec169 serio_rescan
+EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality
+EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77f3e452 omap_dss_stop_device
+EXPORT_SYMBOL vmlinux 0x77f9f989 mmc_align_data_size
+EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x780b43e0 check_disk_change
+EXPORT_SYMBOL vmlinux 0x780bff1e tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x7822c2ad ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource
+EXPORT_SYMBOL vmlinux 0x78cd3cb0 __vlan_hwaccel_rx
+EXPORT_SYMBOL vmlinux 0x78e3b257 dma_pool_free
+EXPORT_SYMBOL vmlinux 0x78e47e9e __neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0x78f06aba phy_start
+EXPORT_SYMBOL vmlinux 0x790beddd abx500_register_ops
+EXPORT_SYMBOL vmlinux 0x791f0a02 posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0x79221d40 simple_transaction_release
+EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt
+EXPORT_SYMBOL vmlinux 0x7946160e generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0x7947a565 cpu_cache
+EXPORT_SYMBOL vmlinux 0x7960131e __scsi_put_command
+EXPORT_SYMBOL vmlinux 0x7966c60e __scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x7968a583 ip_mc_rejoin_group
+EXPORT_SYMBOL vmlinux 0x796e4a4c kill_pgrp
+EXPORT_SYMBOL vmlinux 0x796f0628 tty_port_close_start
+EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x797b795d tty_hangup
+EXPORT_SYMBOL vmlinux 0x79858eef max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x798f62c1 inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79aca058 journal_flush
+EXPORT_SYMBOL vmlinux 0x79b80863 __lru_cache_add
+EXPORT_SYMBOL vmlinux 0x79d5fac7 sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x79e2f8a3 skb_seq_read
+EXPORT_SYMBOL vmlinux 0x79fe3c0c xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x7a0d4de6 tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0x7a195986 neigh_ifdown
+EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol
+EXPORT_SYMBOL vmlinux 0x7a3814cd block_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x7a4497db kzfree
+EXPORT_SYMBOL vmlinux 0x7a5f62f1 dquot_quota_on_path
+EXPORT_SYMBOL vmlinux 0x7a6ee2c5 sget
+EXPORT_SYMBOL vmlinux 0x7a6f9193 nf_log_register
+EXPORT_SYMBOL vmlinux 0x7a720f23 ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0x7a78c1af skb_clone
+EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc
+EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip
+EXPORT_SYMBOL vmlinux 0x7ae3629d xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0x7ae984e1 skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x7afc9d8a unregister_sound_mixer
+EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0x7b6d14f2 vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x7b7636c4 key_task_permission
+EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name
+EXPORT_SYMBOL vmlinux 0x7be1b30d gpmc_prefetch_status
+EXPORT_SYMBOL vmlinux 0x7c09de5a dquot_file_open
+EXPORT_SYMBOL vmlinux 0x7c0d096c tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c60d66e getname
+EXPORT_SYMBOL vmlinux 0x7c6ec646 xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2
+EXPORT_SYMBOL vmlinux 0x7cf0c365 dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0x7cf9baf3 abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies
+EXPORT_SYMBOL vmlinux 0x7d3d2cf1 nla_put
+EXPORT_SYMBOL vmlinux 0x7d4a7123 single_release
+EXPORT_SYMBOL vmlinux 0x7d73fc07 lock_sock_fast
+EXPORT_SYMBOL vmlinux 0x7da1ba13 dma_async_memcpy_buf_to_buf
+EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec
+EXPORT_SYMBOL vmlinux 0x7dceceac capable
+EXPORT_SYMBOL vmlinux 0x7deee3b1 i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0x7e1721b2 file_remove_suid
+EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e70c0ac dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread
+EXPORT_SYMBOL vmlinux 0x7ec42d46 snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL vmlinux 0x7ee22599 pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0x7f138db4 snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f33a63b omap_get_dma_chain_dst_pos
+EXPORT_SYMBOL vmlinux 0x7f419cd9 bitmap_cond_end_sync
+EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio
+EXPORT_SYMBOL vmlinux 0x7f9c5fa5 serio_reconnect
+EXPORT_SYMBOL vmlinux 0x7fd5a0a2 ip_defrag
+EXPORT_SYMBOL vmlinux 0x7ff5bb2f vmap
+EXPORT_SYMBOL vmlinux 0x8005580a mb_cache_create
+EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free
+EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3
+EXPORT_SYMBOL vmlinux 0x803a9134 d_find_alias
+EXPORT_SYMBOL vmlinux 0x8043b7cd skb_recycle_check
+EXPORT_SYMBOL vmlinux 0x804fc9ca omap_mcbsp_free
+EXPORT_SYMBOL vmlinux 0x8062285b clk_get_parent
+EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0x80a8eed8 blk_plug_device_unlocked
+EXPORT_SYMBOL vmlinux 0x80ca2b09 find_get_page
+EXPORT_SYMBOL vmlinux 0x80d81308 omap_vrfb_release_ctx
+EXPORT_SYMBOL vmlinux 0x80d817ab wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0x80de231a idr_remove
+EXPORT_SYMBOL vmlinux 0x80e16f9a da903x_query_status
+EXPORT_SYMBOL vmlinux 0x80e7b729 sock_create_lite
+EXPORT_SYMBOL vmlinux 0x80e84fa4 mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x80ee6194 unregister_netdev
+EXPORT_SYMBOL vmlinux 0x80ff564c block_write_full_page
+EXPORT_SYMBOL vmlinux 0x81003ee2 __sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x81042d7a sockfd_lookup
+EXPORT_SYMBOL vmlinux 0x8129351c blk_register_region
+EXPORT_SYMBOL vmlinux 0x812e5379 i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0x8137eed5 dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x813ed040 idr_remove_all
+EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x815131ba mempool_destroy
+EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal
+EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf
+EXPORT_SYMBOL vmlinux 0x8184c816 tty_port_close
+EXPORT_SYMBOL vmlinux 0x8187861d ip_route_output_key
+EXPORT_SYMBOL vmlinux 0x81a40132 omap_dss_find_device
+EXPORT_SYMBOL vmlinux 0x81b04bfc completion_done
+EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill
+EXPORT_SYMBOL vmlinux 0x82129cb9 clk_set_rate
+EXPORT_SYMBOL vmlinux 0x821e8d91 gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0x822768bf vfs_readv
+EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x82337773 flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x824a4367 tmio_core_mmc_pwr
+EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8262f64b tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x828f048c sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82ca0671 blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x82f9a22e textsearch_register
+EXPORT_SYMBOL vmlinux 0x82fb2df5 iterate_mounts
+EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3
+EXPORT_SYMBOL vmlinux 0x8338ef7f omapdss_dpi_display_disable
+EXPORT_SYMBOL vmlinux 0x83548218 dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x83686d09 blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0x836bdb72 nand_flash_ids
+EXPORT_SYMBOL vmlinux 0x8371daff sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring
+EXPORT_SYMBOL vmlinux 0x8377c398 bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0x83800bfa kref_init
+EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8
+EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit
+EXPORT_SYMBOL vmlinux 0x83e1cbe0 search_binary_handler
+EXPORT_SYMBOL vmlinux 0x83e238dc security_path_symlink
+EXPORT_SYMBOL vmlinux 0x83e98b0d block_write_begin
+EXPORT_SYMBOL vmlinux 0x83fa1071 security_path_link
+EXPORT_SYMBOL vmlinux 0x83fbbb98 audit_log_end
+EXPORT_SYMBOL vmlinux 0x844208cb dev_disable_lro
+EXPORT_SYMBOL vmlinux 0x84899c3a ppp_input_error
+EXPORT_SYMBOL vmlinux 0x84b183ae strncmp
+EXPORT_SYMBOL vmlinux 0x84c485a6 simple_map_init
+EXPORT_SYMBOL vmlinux 0x84c58b40 neigh_lookup
+EXPORT_SYMBOL vmlinux 0x84db4b6e wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0x8503f240 nobh_write_begin
+EXPORT_SYMBOL vmlinux 0x8504f561 snd_info_register
+EXPORT_SYMBOL vmlinux 0x852c072e skb_gso_segment
+EXPORT_SYMBOL vmlinux 0x85390002 md_wait_for_blocked_rdev
+EXPORT_SYMBOL vmlinux 0x8560c55d mmc_power_save_host
+EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x857401f9 qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x85765fee omap_enable_dma_irq
+EXPORT_SYMBOL vmlinux 0x859030e0 current_fs_time
+EXPORT_SYMBOL vmlinux 0x85ae0539 iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0x85cedd36 scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x85df9b6c strsep
+EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x8605d48e skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x868acba5 get_options
+EXPORT_SYMBOL vmlinux 0x869b568a vfs_rename
+EXPORT_SYMBOL vmlinux 0x86a05019 tcp_parse_options
+EXPORT_SYMBOL vmlinux 0x86d99b62 locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x86e936e6 mdio_bus_type
+EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x871db69c grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0x871f9705 pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x87234839 phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0x872cf65c d_splice_alias
+EXPORT_SYMBOL vmlinux 0x8735791d end_page_writeback
+EXPORT_SYMBOL vmlinux 0x873dbba3 input_set_capability
+EXPORT_SYMBOL vmlinux 0x8740bf85 dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x8770f011 bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x879c0f43 unregister_md_personality
+EXPORT_SYMBOL vmlinux 0x87abba44 jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x87aeeff3 i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0x87cb6851 netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x87cbc490 fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x87dbba14 ida_get_new
+EXPORT_SYMBOL vmlinux 0x87dff6af xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x87f14088 ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate
+EXPORT_SYMBOL vmlinux 0x88212cbc fb_blank
+EXPORT_SYMBOL vmlinux 0x883043ff __mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x88441edf xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0x8852758b __rta_fill
+EXPORT_SYMBOL vmlinux 0x885393df __scm_send
+EXPORT_SYMBOL vmlinux 0x8875d8aa inode_setattr
+EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait
+EXPORT_SYMBOL vmlinux 0x8899486a kmem_cache_size
+EXPORT_SYMBOL vmlinux 0x88ac23ce snd_pcm_hw_param_first
+EXPORT_SYMBOL vmlinux 0x890986da __find_get_block
+EXPORT_SYMBOL vmlinux 0x8933db8b dma_mmap_writecombine
+EXPORT_SYMBOL vmlinux 0x893e9207 security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x8949858b schedule_work
+EXPORT_SYMBOL vmlinux 0x895ff7d2 blk_init_allocated_queue_node
+EXPORT_SYMBOL vmlinux 0x89712e65 eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x897473df mktime
+EXPORT_SYMBOL vmlinux 0x897a7e02 __devm_release_region
+EXPORT_SYMBOL vmlinux 0x898b8742 xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0x89a3c4f4 omap_get_dma_chain_index
+EXPORT_SYMBOL vmlinux 0x89b87067 key_unlink
+EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x8a07b398 jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0x8a158dd9 security_path_unlink
+EXPORT_SYMBOL vmlinux 0x8a438a1e sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0x8a4ad108 md_unregister_thread
+EXPORT_SYMBOL vmlinux 0x8a4fa83b __aeabi_llsr
+EXPORT_SYMBOL vmlinux 0x8a673e51 release_firmware
+EXPORT_SYMBOL vmlinux 0x8a6b3466 clk_add_alias
+EXPORT_SYMBOL vmlinux 0x8a76ce35 tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory
+EXPORT_SYMBOL vmlinux 0x8a817fc9 journal_force_commit
+EXPORT_SYMBOL vmlinux 0x8a996d26 cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8aa32ab5 skb_insert
+EXPORT_SYMBOL vmlinux 0x8aa3d6d6 ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0x8ab5ece2 netdev_features_change
+EXPORT_SYMBOL vmlinux 0x8af01069 vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x8afe9463 skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0x8b11b44f jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x8b3c3c02 dma_mark_declared_memory_occupied
+EXPORT_SYMBOL vmlinux 0x8b4b306b dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid
+EXPORT_SYMBOL vmlinux 0x8b77239f dm_io_client_resize
+EXPORT_SYMBOL vmlinux 0x8b781129 inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x8b91a89c simple_statfs
+EXPORT_SYMBOL vmlinux 0x8ba8e3cb __blockdev_direct_IO_newtrunc
+EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long
+EXPORT_SYMBOL vmlinux 0x8be0c3c3 remove_arg_zero
+EXPORT_SYMBOL vmlinux 0x8be11800 tcf_hash_check
+EXPORT_SYMBOL vmlinux 0x8bf249c5 neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x8c2f2d35 phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x8c41b0a3 mii_check_media
+EXPORT_SYMBOL vmlinux 0x8c4d6523 omap_dma_chain_a_transfer
+EXPORT_SYMBOL vmlinux 0x8c79d576 sync_inode
+EXPORT_SYMBOL vmlinux 0x8c842756 page_follow_link_light
+EXPORT_SYMBOL vmlinux 0x8ca1f4ad phy_register_fixup
+EXPORT_SYMBOL vmlinux 0x8ca90812 ppp_unit_number
+EXPORT_SYMBOL vmlinux 0x8ccda6f2 load_nls_default
+EXPORT_SYMBOL vmlinux 0x8cd8c339 omap_free_dma
+EXPORT_SYMBOL vmlinux 0x8cf51d15 up
+EXPORT_SYMBOL vmlinux 0x8d2b5005 neigh_create
+EXPORT_SYMBOL vmlinux 0x8d433f30 snd_timer_global_register
+EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d6905e8 snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32
+EXPORT_SYMBOL vmlinux 0x8d85815b netif_receive_skb
+EXPORT_SYMBOL vmlinux 0x8ddb50aa generic_permission
+EXPORT_SYMBOL vmlinux 0x8de2d39f inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x8de4f0d9 scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0x8deff196 neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0x8df3789f snd_oss_info_register
+EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk
+EXPORT_SYMBOL vmlinux 0x8e4c6519 mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0x8e5c8b58 tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0x8e6e8508 may_umount_tree
+EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x8e949fb7 page_put_link
+EXPORT_SYMBOL vmlinux 0x8e98ea47 dev_mc_flush
+EXPORT_SYMBOL vmlinux 0x8ea3008b tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0x8eac58ce sock_wfree
+EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8f1a9a15 mmc_wait_for_req
+EXPORT_SYMBOL vmlinux 0x8f3c8533 blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev
+EXPORT_SYMBOL vmlinux 0x8f595b11 snd_major
+EXPORT_SYMBOL vmlinux 0x8f638d5d udp_disconnect
+EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data
+EXPORT_SYMBOL vmlinux 0x8fa4130a omap_set_dma_callback
+EXPORT_SYMBOL vmlinux 0x8fc8a1f3 dev_txq_stats_fold
+EXPORT_SYMBOL vmlinux 0x8ff35cee register_mtd_chip_driver
+EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16
+EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x9053112d wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x9087e804 register_sound_dsp
+EXPORT_SYMBOL vmlinux 0x909e68a8 __xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x909ef246 skb_set_dev
+EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0x90d98a45 filp_close
+EXPORT_SYMBOL vmlinux 0x90f381b8 phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x90fab12f security_d_instantiate
+EXPORT_SYMBOL vmlinux 0x9112ef6f kset_register
+EXPORT_SYMBOL vmlinux 0x9128b272 xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0x9156cea2 bio_init
+EXPORT_SYMBOL vmlinux 0x915cf978 snd_pcm_open_substream
+EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource
+EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong
+EXPORT_SYMBOL vmlinux 0x919029aa __readwrite_bug
+EXPORT_SYMBOL vmlinux 0x91927640 bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0x91cada39 sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x91d64f15 unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x91fc2b17 tcf_em_register
+EXPORT_SYMBOL vmlinux 0x920111ae wake_up_process
+EXPORT_SYMBOL vmlinux 0x920664c8 mempool_free
+EXPORT_SYMBOL vmlinux 0x921487ce genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool
+EXPORT_SYMBOL vmlinux 0x921dc1d4 tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x922ceeea i2c_master_recv
+EXPORT_SYMBOL vmlinux 0x923351fc blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get
+EXPORT_SYMBOL vmlinux 0x923dddd4 xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x926ad891 skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x9297a4c5 unregister_binfmt
+EXPORT_SYMBOL vmlinux 0x929eecac __strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x92d4aeed new_inode
+EXPORT_SYMBOL vmlinux 0x92fc4731 mmc_host_lazy_disable
+EXPORT_SYMBOL vmlinux 0x9304a874 clk_enable
+EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get
+EXPORT_SYMBOL vmlinux 0x930613bc sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x930b1602 dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x931b03d3 d_invalidate
+EXPORT_SYMBOL vmlinux 0x9338bb17 seq_lseek
+EXPORT_SYMBOL vmlinux 0x9345c492 tty_register_device
+EXPORT_SYMBOL vmlinux 0x937bb46a security_inode_init_security
+EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule
+EXPORT_SYMBOL vmlinux 0x93e38cce snd_register_device_for_dev
+EXPORT_SYMBOL vmlinux 0x93e690fd omap_mcbsp_recv_word
+EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages
+EXPORT_SYMBOL vmlinux 0x94149986 scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0x942f60ef jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x943f4912 lro_vlan_hwaccel_receive_frags
+EXPORT_SYMBOL vmlinux 0x9441bd68 qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0x94432f6f skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x945e1d8d nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x94626b17 default_file_splice_read
+EXPORT_SYMBOL vmlinux 0x94627e66 sk_alloc
+EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex
+EXPORT_SYMBOL vmlinux 0x94764997 tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0x94914b68 scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0x94961283 vunmap
+EXPORT_SYMBOL vmlinux 0x94af632e complete_all
+EXPORT_SYMBOL vmlinux 0x94b46283 ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x94d8d0ff lock_may_read
+EXPORT_SYMBOL vmlinux 0x94d91874 lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x94e73124 sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0x951031fe phy_stop
+EXPORT_SYMBOL vmlinux 0x953b2efe log_start_commit
+EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init
+EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf
+EXPORT_SYMBOL vmlinux 0x95b750a1 journal_stop
+EXPORT_SYMBOL vmlinux 0x95ba0efd xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0x95c3c29d blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0x95d20ccc remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0x95dbe078 __get_user_2
+EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq
+EXPORT_SYMBOL vmlinux 0x95f8e449 nand_calculate_ecc
+EXPORT_SYMBOL vmlinux 0x960c5ee8 skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0x962dc99a skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0x963b7bf0 free_task
+EXPORT_SYMBOL vmlinux 0x96434c8c kset_unregister
+EXPORT_SYMBOL vmlinux 0x966155b2 __sk_dst_check
+EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0x96b17116 snd_info_create_module_entry
+EXPORT_SYMBOL vmlinux 0x96b39b6e omap_start_dma_chain_transfers
+EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96d29cd0 dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0x96e7e805 consume_skb
+EXPORT_SYMBOL vmlinux 0x96fafddc omap_dss_get_device
+EXPORT_SYMBOL vmlinux 0x970edb1d journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x97255bdf strlen
+EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n
+EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x97736062 nobh_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x978b9a11 blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0x978e5d34 scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0x979115e3 fsnotify_obtain_group
+EXPORT_SYMBOL vmlinux 0x97bb2151 dquot_commit
+EXPORT_SYMBOL vmlinux 0x97d60abd bmap
+EXPORT_SYMBOL vmlinux 0x97ec5267 tcf_hash_create
+EXPORT_SYMBOL vmlinux 0x97f85bb7 scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user
+EXPORT_SYMBOL vmlinux 0x981e3180 writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0x982519a2 tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x98662f2d generic_setxattr
+EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x987241c4 __blk_end_request
+EXPORT_SYMBOL vmlinux 0x988f4bc3 kernel_listen
+EXPORT_SYMBOL vmlinux 0x9899233a commit_creds
+EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init
+EXPORT_SYMBOL vmlinux 0x98c2fc62 revert_creds
+EXPORT_SYMBOL vmlinux 0x98cc0b32 journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x98ef5a3c dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0x98fe6a76 kill_litter_super
+EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x991df6e3 uart_register_driver
+EXPORT_SYMBOL vmlinux 0x992229e3 request_key
+EXPORT_SYMBOL vmlinux 0x992763bb slow_work_cancel
+EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999c3148 __raw_readsb
+EXPORT_SYMBOL vmlinux 0x999e8297 vfree
+EXPORT_SYMBOL vmlinux 0x99a2140a i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0x99bb8806 memmove
+EXPORT_SYMBOL vmlinux 0x99beccba udplite_prot
+EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name
+EXPORT_SYMBOL vmlinux 0x99c95fa5 unregister_sound_special
+EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink
+EXPORT_SYMBOL vmlinux 0x99ecb9b1 display_device_register
+EXPORT_SYMBOL vmlinux 0x9a14f219 is_bad_inode
+EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk
+EXPORT_SYMBOL vmlinux 0x9a34d11f simple_write_begin
+EXPORT_SYMBOL vmlinux 0x9a63ffca find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x9aaf735a jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x9ab06f90 generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x9abe8f3d km_policy_expired
+EXPORT_SYMBOL vmlinux 0x9afe0920 dm_exception_store_destroy
+EXPORT_SYMBOL vmlinux 0x9b0c836c netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x9b0f506e inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x9b1075bc console_stop
+EXPORT_SYMBOL vmlinux 0x9b1f4b1f dm_io_client_create
+EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b416501 wireless_send_event
+EXPORT_SYMBOL vmlinux 0x9b540f00 insert_inode_locked
+EXPORT_SYMBOL vmlinux 0x9b5a8048 bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x9b6bd9c2 sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize
+EXPORT_SYMBOL vmlinux 0x9b72b6fb omapdss_default_get_recommended_bpp
+EXPORT_SYMBOL vmlinux 0x9b73ce48 tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x9b7fb99d gpmc_prefetch_reset
+EXPORT_SYMBOL vmlinux 0x9b98720e gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split
+EXPORT_SYMBOL vmlinux 0x9baf27ac down_read_trylock
+EXPORT_SYMBOL vmlinux 0x9bb5f112 journal_forget
+EXPORT_SYMBOL vmlinux 0x9bce482f __release_region
+EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c3ae956 jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x9c696597 abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0x9c6fac1f rtnl_unicast
+EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt
+EXPORT_SYMBOL vmlinux 0x9c72bf2e simple_transaction_get
+EXPORT_SYMBOL vmlinux 0x9c8eabd3 key_link
+EXPORT_SYMBOL vmlinux 0x9c9f858d skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0x9ca097cb __put_cred
+EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cd60539 sg_free_table
+EXPORT_SYMBOL vmlinux 0x9ce8444e tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9d051c41 do_sync_read
+EXPORT_SYMBOL vmlinux 0x9d130ab0 ___dma_page_cpu_to_dev
+EXPORT_SYMBOL vmlinux 0x9d1ebc25 bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x9d241c46 jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x9d24a8fe put_tty_driver
+EXPORT_SYMBOL vmlinux 0x9d384103 proto_register
+EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d48f94c bitmap_close_sync
+EXPORT_SYMBOL vmlinux 0x9d669763 memcpy
+EXPORT_SYMBOL vmlinux 0x9d71306e abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0x9d7405cb lock_super
+EXPORT_SYMBOL vmlinux 0x9db3b68a register_filesystem
+EXPORT_SYMBOL vmlinux 0x9dbf0578 dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0x9dc4b956 journal_errno
+EXPORT_SYMBOL vmlinux 0x9e07cd3a omap_dss_register_driver
+EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x9e3210db simple_fill_super
+EXPORT_SYMBOL vmlinux 0x9e636a41 input_register_device
+EXPORT_SYMBOL vmlinux 0x9e653507 journal_wipe
+EXPORT_SYMBOL vmlinux 0x9e6d79f8 snd_info_get_str
+EXPORT_SYMBOL vmlinux 0x9e74c162 scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay
+EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x9eddfc16 generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk
+EXPORT_SYMBOL vmlinux 0x9ef3c623 task_nice
+EXPORT_SYMBOL vmlinux 0x9efadb96 generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0x9f128394 bio_phys_segments
+EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool
+EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f4e4efc wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x9f6a1ebf scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x9f7405d1 set_page_dirty
+EXPORT_SYMBOL vmlinux 0x9f984513 strrchr
+EXPORT_SYMBOL vmlinux 0x9f99d9bf ida_pre_get
+EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0x9febafd2 tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0xa005e740 netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0xa016fdb6 __generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xa02dbabe jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa04d0e5f elv_abort_queue
+EXPORT_SYMBOL vmlinux 0xa05a76d8 snd_timer_continue
+EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa06baade skb_checksum
+EXPORT_SYMBOL vmlinux 0xa07b4e06 gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0bf161f nf_log_packet
+EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0e521c1 uart_add_one_port
+EXPORT_SYMBOL vmlinux 0xa0fade29 del_timer
+EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa17a9fa7 ilookup5
+EXPORT_SYMBOL vmlinux 0xa17f2c19 genl_register_ops
+EXPORT_SYMBOL vmlinux 0xa185c10d tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0xa192b934 scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0xa19c8ebb __xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode
+EXPORT_SYMBOL vmlinux 0xa1c1858e fd_install
+EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched
+EXPORT_SYMBOL vmlinux 0xa1d2aef3 redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa2192737 grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0xa231ed0a tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0xa2331ab4 snd_pcm_hw_constraint_list
+EXPORT_SYMBOL vmlinux 0xa2556c0f stop_tty
+EXPORT_SYMBOL vmlinux 0xa25a23ea mark_info_dirty
+EXPORT_SYMBOL vmlinux 0xa25fb0d4 key_type_keyring
+EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2e07ecc lookup_hash
+EXPORT_SYMBOL vmlinux 0xa2f76cf7 dev_mc_add
+EXPORT_SYMBOL vmlinux 0xa2f81f05 register_sysrq_key
+EXPORT_SYMBOL vmlinux 0xa2f917db netpoll_poll
+EXPORT_SYMBOL vmlinux 0xa3113a1c genphy_suspend
+EXPORT_SYMBOL vmlinux 0xa31fbbd2 udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker
+EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa336feb7 nand_manuf_ids
+EXPORT_SYMBOL vmlinux 0xa33ef45e __bio_clone
+EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le
+EXPORT_SYMBOL vmlinux 0xa35bf60a __splice_from_pipe
+EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config
+EXPORT_SYMBOL vmlinux 0xa36fdbc7 brioctl_set
+EXPORT_SYMBOL vmlinux 0xa3706bc1 nand_default_bbt
+EXPORT_SYMBOL vmlinux 0xa377d576 sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0xa3ecd14d d_genocide
+EXPORT_SYMBOL vmlinux 0xa4144eee input_event
+EXPORT_SYMBOL vmlinux 0xa430e58a page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa43d79bb register_sysctl_table
+EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0xa4610bc6 omap_rev
+EXPORT_SYMBOL vmlinux 0xa46c2e85 nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0xa48f5b09 omap_dma_set_global_params
+EXPORT_SYMBOL vmlinux 0xa4b207db nf_register_hooks
+EXPORT_SYMBOL vmlinux 0xa4b42c55 omap_set_dma_priority
+EXPORT_SYMBOL vmlinux 0xa4c29461 omap_st_is_enabled
+EXPORT_SYMBOL vmlinux 0xa4db109a blk_init_tags
+EXPORT_SYMBOL vmlinux 0xa504d13b blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0xa523bbfa lock_fb_info
+EXPORT_SYMBOL vmlinux 0xa5292dbe snd_ctl_new1
+EXPORT_SYMBOL vmlinux 0xa566a10d start_tty
+EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone
+EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse
+EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5c34779 xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0xa5c3f2d7 iget_failed
+EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource
+EXPORT_SYMBOL vmlinux 0xa5cf8c5d neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xa5d8eb0c truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0xa61573d4 tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0xa61aa028 snd_pcm_format_unsigned
+EXPORT_SYMBOL vmlinux 0xa61e4362 omap_request_dma
+EXPORT_SYMBOL vmlinux 0xa62c8af8 do_map_probe
+EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember
+EXPORT_SYMBOL vmlinux 0xa646fdc0 scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xa64c5de1 blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0xa65e467e scsi_scan_host
+EXPORT_SYMBOL vmlinux 0xa663dff3 mmc_add_host
+EXPORT_SYMBOL vmlinux 0xa6690161 tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa6918288 ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0xa6dedb69 release_sock
+EXPORT_SYMBOL vmlinux 0xa718820c seq_open_private
+EXPORT_SYMBOL vmlinux 0xa731ff3d scsi_host_put
+EXPORT_SYMBOL vmlinux 0xa75a3f19 sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0xa76ce6f7 dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0xa76d2be0 bdi_register
+EXPORT_SYMBOL vmlinux 0xa778c6f6 tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0xa7a1bc57 unload_nls
+EXPORT_SYMBOL vmlinux 0xa7aa4e91 i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0xa813670e amba_device_register
+EXPORT_SYMBOL vmlinux 0xa81e789d kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0xa82bbac9 scsi_remove_device
+EXPORT_SYMBOL vmlinux 0xa85b83e5 phy_attach_direct
+EXPORT_SYMBOL vmlinux 0xa866c804 directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0xa88dbbd4 blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0xa89506bf dquot_drop
+EXPORT_SYMBOL vmlinux 0xa8a8617d ab3100_event_register
+EXPORT_SYMBOL vmlinux 0xa8bb1625 find_inode_number
+EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue
+EXPORT_SYMBOL vmlinux 0xa8d0ffd1 __scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xa8d7e1a8 test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0xa8ddf8ad dst_alloc
+EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa964dd13 gpmc_cs_request
+EXPORT_SYMBOL vmlinux 0xa975dc4b udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0xa98b423d dcache_readdir
+EXPORT_SYMBOL vmlinux 0xa9c23585 vfs_mknod
+EXPORT_SYMBOL vmlinux 0xa9cb58aa tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0xaa218e1b generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0xaa22f89f gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0xaa263e1d sock_wmalloc
+EXPORT_SYMBOL vmlinux 0xaa4a27b6 d_add_ci
+EXPORT_SYMBOL vmlinux 0xaa4cef54 snd_ctl_notify
+EXPORT_SYMBOL vmlinux 0xaa5927f9 scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0xaa8847da snd_ctl_rename_id
+EXPORT_SYMBOL vmlinux 0xaa94c694 __init_rwsem
+EXPORT_SYMBOL vmlinux 0xaa962ff6 fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0xaad2b7e4 jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xaaef496b inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0xaaf22c08 bio_pair_release
+EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp
+EXPORT_SYMBOL vmlinux 0xab0c742d snd_pcm_lib_writev
+EXPORT_SYMBOL vmlinux 0xab2aa826 scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0xab344527 bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0xab455eb0 up_read
+EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off
+EXPORT_SYMBOL vmlinux 0xab8ae66f sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0xab9a1882 blk_requeue_request
+EXPORT_SYMBOL vmlinux 0xabbc56ea sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabd7d4f0 pipe_lock
+EXPORT_SYMBOL vmlinux 0xabf45e03 register_sound_midi
+EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac2ac482 dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0xac42a2ff xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0xac528824 skb_queue_purge
+EXPORT_SYMBOL vmlinux 0xac5b6be0 inode_init_once
+EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits
+EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac9ab99b tty_port_close_end
+EXPORT_SYMBOL vmlinux 0xaca397f5 call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0xacc0aec1 netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton
+EXPORT_SYMBOL vmlinux 0xacd9a011 flush_old_exec
+EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup
+EXPORT_SYMBOL vmlinux 0xacfb43a8 generic_file_mmap
+EXPORT_SYMBOL vmlinux 0xad03bb5f elv_queue_empty
+EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex
+EXPORT_SYMBOL vmlinux 0xad12597c cfb_copyarea
+EXPORT_SYMBOL vmlinux 0xad25bb20 init_timer_key
+EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad70e6db bio_unmap_user
+EXPORT_SYMBOL vmlinux 0xada44b61 poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xadaebf52 block_sync_page
+EXPORT_SYMBOL vmlinux 0xadb3d81e up_write
+EXPORT_SYMBOL vmlinux 0xadcb58e9 generic_removexattr
+EXPORT_SYMBOL vmlinux 0xadd08824 skb_dequeue
+EXPORT_SYMBOL vmlinux 0xade88e76 snd_malloc_pages
+EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region
+EXPORT_SYMBOL vmlinux 0xadfa13bd __f_setown
+EXPORT_SYMBOL vmlinux 0xae035d56 skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0xae0882f2 omap_mcbsp_request
+EXPORT_SYMBOL vmlinux 0xae2ba7a6 sk_reset_timer
+EXPORT_SYMBOL vmlinux 0xae3b537a sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xae42fb72 cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0xae4fb65a skb_tx_hash
+EXPORT_SYMBOL vmlinux 0xae52a4c8 blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0xae567b6d rwsem_is_locked
+EXPORT_SYMBOL vmlinux 0xae663ef3 alloc_disk_node
+EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0xaed15f12 __scm_destroy
+EXPORT_SYMBOL vmlinux 0xaef11abf blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0xaf088160 shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0xaf0ceacb handle_sysrq
+EXPORT_SYMBOL vmlinux 0xaf109db4 nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xaf1cacde tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf4b831e dm_table_event
+EXPORT_SYMBOL vmlinux 0xaf50e76d elf_set_personality
+EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xaf6cf23c ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0xaf76010a touch_atime
+EXPORT_SYMBOL vmlinux 0xaf8aa518 system_rev
+EXPORT_SYMBOL vmlinux 0xafa22a97 __neigh_event_send
+EXPORT_SYMBOL vmlinux 0xb025bc34 __netdev_alloc_page
+EXPORT_SYMBOL vmlinux 0xb02ba9bc simple_release_fs
+EXPORT_SYMBOL vmlinux 0xb038af5a read_cache_page_async
+EXPORT_SYMBOL vmlinux 0xb047ba18 netpoll_setup
+EXPORT_SYMBOL vmlinux 0xb0498f5a put_io_context
+EXPORT_SYMBOL vmlinux 0xb0598ea8 snd_jack_report
+EXPORT_SYMBOL vmlinux 0xb0757fca __blk_run_queue
+EXPORT_SYMBOL vmlinux 0xb07601de nf_register_hook
+EXPORT_SYMBOL vmlinux 0xb0a9b8d7 register_con_driver
+EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0e10781 get_option
+EXPORT_SYMBOL vmlinux 0xb0e4141c bdi_init
+EXPORT_SYMBOL vmlinux 0xb0f1bd3a scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xb0fac11a blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0xb10304e0 input_unregister_device
+EXPORT_SYMBOL vmlinux 0xb1055acb secpath_dup
+EXPORT_SYMBOL vmlinux 0xb11f5897 request_key_async
+EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb122b3fb blk_start_request
+EXPORT_SYMBOL vmlinux 0xb126f123 lock_rename
+EXPORT_SYMBOL vmlinux 0xb1281d1e md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0xb12b0cc1 sock_register
+EXPORT_SYMBOL vmlinux 0xb14f6d0b i2c_master_send
+EXPORT_SYMBOL vmlinux 0xb16afc54 setup_new_exec
+EXPORT_SYMBOL vmlinux 0xb18e6948 omap_dss_pal_timings
+EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1b22911 down_write
+EXPORT_SYMBOL vmlinux 0xb1b3cf44 gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xb1c1a94c tty_kref_put
+EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb218e7b8 xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0xb21ca341 __break_lease
+EXPORT_SYMBOL vmlinux 0xb21cf4c0 tcf_action_exec
+EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short
+EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xb245e4fd dquot_initialize
+EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb2849e55 tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0xb28f1c92 omap_mcbsp_stop
+EXPORT_SYMBOL vmlinux 0xb297f18e snd_ctl_unregister_ioctl
+EXPORT_SYMBOL vmlinux 0xb29f222b install_exec_creds
+EXPORT_SYMBOL vmlinux 0xb2ccc905 scsi_free_command
+EXPORT_SYMBOL vmlinux 0xb2d846b3 clk_unregister
+EXPORT_SYMBOL vmlinux 0xb2e5ae4a snd_lookup_minor_data
+EXPORT_SYMBOL vmlinux 0xb2efc157 dev_uc_del
+EXPORT_SYMBOL vmlinux 0xb322534b napi_skb_finish
+EXPORT_SYMBOL vmlinux 0xb32af4ae tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0xb34bd572 inet_ioctl
+EXPORT_SYMBOL vmlinux 0xb35e6f55 __skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xb371d98c dst_destroy
+EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3a32e9c set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0xb3c82ba9 seq_putc
+EXPORT_SYMBOL vmlinux 0xb3d09fd8 get_fs_type
+EXPORT_SYMBOL vmlinux 0xb3e2359d snd_component_add
+EXPORT_SYMBOL vmlinux 0xb3efc72d down
+EXPORT_SYMBOL vmlinux 0xb41157c9 mmc_remove_host
+EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked
+EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool
+EXPORT_SYMBOL vmlinux 0xb424e0f2 bdput
+EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0xb4325ab4 blkdev_fsync
+EXPORT_SYMBOL vmlinux 0xb4424aa8 snd_dma_reserve_buf
+EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb48bb658 bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0xb49c9bda blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0xb49e01db cont_write_begin
+EXPORT_SYMBOL vmlinux 0xb4b0d4c1 scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0xb4b74d16 nf_log_unregister
+EXPORT_SYMBOL vmlinux 0xb4b94377 __nand_correct_data
+EXPORT_SYMBOL vmlinux 0xb4ba4c5b __free_pages
+EXPORT_SYMBOL vmlinux 0xb4c8f38a omap_dma_chain_status
+EXPORT_SYMBOL vmlinux 0xb4cae89a close_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0xb4cc65da bio_flush_dcache_pages
+EXPORT_SYMBOL vmlinux 0xb4cf4e5f nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf
+EXPORT_SYMBOL vmlinux 0xb50a4bfd blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0xb5214bb7 i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb555b6b4 dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xb5939d91 __alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0xb59ea881 eth_validate_addr
+EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free
+EXPORT_SYMBOL vmlinux 0xb5db18ae follow_pfn
+EXPORT_SYMBOL vmlinux 0xb5f83a5a generic_getxattr
+EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif
+EXPORT_SYMBOL vmlinux 0xb6995afa eth_header
+EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6af273a kmem_cache_alloc_node_notrace
+EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu
+EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6f5c79d slow_work_sleep_till_thread_needed
+EXPORT_SYMBOL vmlinux 0xb72cb48b jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0xb78b3626 interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0xb7b2c107 cfb_imageblit
+EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be
+EXPORT_SYMBOL vmlinux 0xb7ba76c7 __aeabi_unwind_cpp_pr2
+EXPORT_SYMBOL vmlinux 0xb7cff545 register_quota_format
+EXPORT_SYMBOL vmlinux 0xb7edf7cc security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0xb80446aa genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0xb81fd3be idr_find
+EXPORT_SYMBOL vmlinux 0xb84f123d kthread_bind
+EXPORT_SYMBOL vmlinux 0xb8505fa5 skb_copy_expand
+EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat
+EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32
+EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on
+EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32
+EXPORT_SYMBOL vmlinux 0xb8a900ba tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region
+EXPORT_SYMBOL vmlinux 0xb8c1f36c pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0xb8d6642c nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0xb8fa188b inetdev_by_index
+EXPORT_SYMBOL vmlinux 0xb8fd7c8b tty_name
+EXPORT_SYMBOL vmlinux 0xb90de5ff snd_timer_close
+EXPORT_SYMBOL vmlinux 0xb9288207 tty_free_termios
+EXPORT_SYMBOL vmlinux 0xb95f98d6 _memset_io
+EXPORT_SYMBOL vmlinux 0xb9638db4 snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb9a8f03b omap_stop_dma
+EXPORT_SYMBOL vmlinux 0xb9acd3d9 __put_user_2
+EXPORT_SYMBOL vmlinux 0xb9e38683 omap_mcbsp_xmit_word
+EXPORT_SYMBOL vmlinux 0xb9e52429 __wake_up
+EXPORT_SYMBOL vmlinux 0xba11b48d nonseekable_open
+EXPORT_SYMBOL vmlinux 0xba3ef425 wireless_spy_update
+EXPORT_SYMBOL vmlinux 0xba41a507 get_user_pages
+EXPORT_SYMBOL vmlinux 0xba42e588 phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba630318 xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0xba9fdf95 d_alloc
+EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbac100fe scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0xbad796b5 ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0xbadb040b ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0xbafd7d3d neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb1b6d06 splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0xbb3e851b fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb72d4fe __put_user_1
+EXPORT_SYMBOL vmlinux 0xbb886aac __nla_reserve
+EXPORT_SYMBOL vmlinux 0xbb8a04c4 del_gendisk
+EXPORT_SYMBOL vmlinux 0xbb8f48b1 blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font
+EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xbbc3a11e generic_file_open
+EXPORT_SYMBOL vmlinux 0xbbdfbe8f filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0xbbe3c285 ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0xbc01815d mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0xbc0bf6ed sock_kmalloc
+EXPORT_SYMBOL vmlinux 0xbc10dd97 __put_user_4
+EXPORT_SYMBOL vmlinux 0xbc4622fc xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0xbc595fcc snd_card_set_id
+EXPORT_SYMBOL vmlinux 0xbca8b6f6 md_write_end
+EXPORT_SYMBOL vmlinux 0xbcae12a1 mem_map
+EXPORT_SYMBOL vmlinux 0xbccf3341 jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0xbceb2b01 i2c_register_driver
+EXPORT_SYMBOL vmlinux 0xbd0c2b1a dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0xbd2c2519 security_inode_readlink
+EXPORT_SYMBOL vmlinux 0xbd39c61f aio_put_req
+EXPORT_SYMBOL vmlinux 0xbd53eca6 sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0xbdcbc100 mod_timer
+EXPORT_SYMBOL vmlinux 0xbde7b791 ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0xbdec0db2 omap_readb
+EXPORT_SYMBOL vmlinux 0xbdf2580d __raw_readsl
+EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next
+EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp
+EXPORT_SYMBOL vmlinux 0xbe1b3fa8 get_write_access
+EXPORT_SYMBOL vmlinux 0xbe4a0234 noop_fsync
+EXPORT_SYMBOL vmlinux 0xbe595143 udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0xbe5f6599 do_truncate
+EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource
+EXPORT_SYMBOL vmlinux 0xbe8d116a input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0xbea15e71 eth_change_mtu
+EXPORT_SYMBOL vmlinux 0xbebc04c0 starget_for_each_device
+EXPORT_SYMBOL vmlinux 0xbec8397a phy_connect_direct
+EXPORT_SYMBOL vmlinux 0xbec952bc unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0xbed469ac tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0xbeeb3778 tcp_v4_remember_stamp
+EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbef5f03b scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0xbefa1e82 generic_listxattr
+EXPORT_SYMBOL vmlinux 0xbf06b44b inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0xbf18120e mdiobus_scan
+EXPORT_SYMBOL vmlinux 0xbf182001 dqget
+EXPORT_SYMBOL vmlinux 0xbf1939a3 jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0xbf1faebe mutex_trylock
+EXPORT_SYMBOL vmlinux 0xbf42d0f1 scsi_register_driver
+EXPORT_SYMBOL vmlinux 0xbf64ad7b devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xbf75fd08 snd_pcm_limit_hw_rates
+EXPORT_SYMBOL vmlinux 0xbf7b78ef blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbfa7a709 tty_port_hangup
+EXPORT_SYMBOL vmlinux 0xbfd6ca8b dcache_dir_open
+EXPORT_SYMBOL vmlinux 0xbfdfcf68 vfs_getattr
+EXPORT_SYMBOL vmlinux 0xbfe3374e snd_card_disconnect
+EXPORT_SYMBOL vmlinux 0xbfeaa510 snd_info_create_card_entry
+EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xbff7e4ed blk_stack_limits
+EXPORT_SYMBOL vmlinux 0xc00585b3 inet_put_port
+EXPORT_SYMBOL vmlinux 0xc01b7fed skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop
+EXPORT_SYMBOL vmlinux 0xc02fea20 scsi_block_requests
+EXPORT_SYMBOL vmlinux 0xc047bc3f omap_mcbsp_spi_master_recv_word_poll
+EXPORT_SYMBOL vmlinux 0xc0480855 inet_accept
+EXPORT_SYMBOL vmlinux 0xc06332ce is_container_init
+EXPORT_SYMBOL vmlinux 0xc06ec2c8 abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc094586d snd_power_wait
+EXPORT_SYMBOL vmlinux 0xc0a6a8c5 omap_set_dma_dest_burst_mode
+EXPORT_SYMBOL vmlinux 0xc0ccdd79 sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0xc0cf95f9 omap_vrfb_request_ctx
+EXPORT_SYMBOL vmlinux 0xc0d381bb skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0xc0e25c1d mnt_unpin
+EXPORT_SYMBOL vmlinux 0xc0e3a7b7 soft_cursor
+EXPORT_SYMBOL vmlinux 0xc0eb78ed km_report
+EXPORT_SYMBOL vmlinux 0xc0eb9e15 cdrom_release
+EXPORT_SYMBOL vmlinux 0xc0f624a1 sock_i_uid
+EXPORT_SYMBOL vmlinux 0xc11a2d30 alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten
+EXPORT_SYMBOL vmlinux 0xc11f69d4 sk_release_kernel
+EXPORT_SYMBOL vmlinux 0xc1601a4f _change_bit_le
+EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic
+EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0xc1a411ac ps2_begin_command
+EXPORT_SYMBOL vmlinux 0xc1ab4de5 snd_card_file_remove
+EXPORT_SYMBOL vmlinux 0xc1b41ae6 generic_mii_ioctl
+EXPORT_SYMBOL vmlinux 0xc1b75acb amba_driver_unregister
+EXPORT_SYMBOL vmlinux 0xc1bc1710 blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0xc1be9a7f do_sync_write
+EXPORT_SYMBOL vmlinux 0xc1c04729 bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1eacd69 lro_receive_skb
+EXPORT_SYMBOL vmlinux 0xc1fc4511 _test_and_change_bit_le
+EXPORT_SYMBOL vmlinux 0xc21a41ba elv_add_request
+EXPORT_SYMBOL vmlinux 0xc21bb904 disk_stack_limits
+EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc27487dd __bug
+EXPORT_SYMBOL vmlinux 0xc2864105 simple_dir_operations
+EXPORT_SYMBOL vmlinux 0xc28bccce misc_deregister
+EXPORT_SYMBOL vmlinux 0xc2bd3be8 neigh_for_each
+EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc
+EXPORT_SYMBOL vmlinux 0xc2d99a9e __insert_inode_hash
+EXPORT_SYMBOL vmlinux 0xc2e058a4 idr_get_new_above
+EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices
+EXPORT_SYMBOL vmlinux 0xc2e65e9c rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0xc2f7cf04 nla_reserve
+EXPORT_SYMBOL vmlinux 0xc327489f security_file_mmap
+EXPORT_SYMBOL vmlinux 0xc333e1b6 tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0xc337becd dma_mmap_coherent
+EXPORT_SYMBOL vmlinux 0xc3556ae7 inode_add_bytes
+EXPORT_SYMBOL vmlinux 0xc359fb65 abort
+EXPORT_SYMBOL vmlinux 0xc35c9951 snd_pcm_hw_rule_add
+EXPORT_SYMBOL vmlinux 0xc37c36e1 omap_writeb
+EXPORT_SYMBOL vmlinux 0xc3855bd1 blk_insert_request
+EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p
+EXPORT_SYMBOL vmlinux 0xc3d6ea82 mdiobus_free
+EXPORT_SYMBOL vmlinux 0xc3ed7532 put_mnt_ns
+EXPORT_SYMBOL vmlinux 0xc40e214d prepare_binprm
+EXPORT_SYMBOL vmlinux 0xc41fbabc filemap_flush
+EXPORT_SYMBOL vmlinux 0xc421ad04 iget5_locked
+EXPORT_SYMBOL vmlinux 0xc43d9f06 update_region
+EXPORT_SYMBOL vmlinux 0xc4555e0a write_inode_now
+EXPORT_SYMBOL vmlinux 0xc45ef616 idr_for_each
+EXPORT_SYMBOL vmlinux 0xc46d4e08 ip6_xmit
+EXPORT_SYMBOL vmlinux 0xc47e4401 __skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0xc48303b8 __dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xc484d6c3 tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0xc48dccba dma_pool_create
+EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup
+EXPORT_SYMBOL vmlinux 0xc4a4ca7d dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0xc4c248b9 ___ratelimit
+EXPORT_SYMBOL vmlinux 0xc4c4bf57 dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic
+EXPORT_SYMBOL vmlinux 0xc4e7c231 skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0xc4e7d0f9 omap_mcbsp_get_dma_op_mode
+EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0xc507c596 blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0xc52da066 omap_set_dma_dest_params
+EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc54d6d96 kobject_set_name
+EXPORT_SYMBOL vmlinux 0xc56d5808 tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0xc5700e5b cad_pid
+EXPORT_SYMBOL vmlinux 0xc5747b7b genphy_resume
+EXPORT_SYMBOL vmlinux 0xc5ae7483 dpi_check_timings
+EXPORT_SYMBOL vmlinux 0xc5b8814f block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0xc5d2d28a devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0xc5e5df7f scsi_add_device
+EXPORT_SYMBOL vmlinux 0xc5f04711 eth_header_cache
+EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0xc6407d4a dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0xc69cad91 xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0xc6a78942 kill_fasync
+EXPORT_SYMBOL vmlinux 0xc6be5812 find_vma
+EXPORT_SYMBOL vmlinux 0xc6d533e1 down_read
+EXPORT_SYMBOL vmlinux 0xc6ee6dc1 fput
+EXPORT_SYMBOL vmlinux 0xc714a11c __scsi_add_device
+EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port
+EXPORT_SYMBOL vmlinux 0xc723771b phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0xc740c817 mntput_no_expire
+EXPORT_SYMBOL vmlinux 0xc758357c input_release_device
+EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7ccc11c vfs_create
+EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn
+EXPORT_SYMBOL vmlinux 0xc7eee87e get_mem_type
+EXPORT_SYMBOL vmlinux 0xc7fe1289 bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0xc7fecf75 scsi_register
+EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0xc8068a48 inet_frags_init
+EXPORT_SYMBOL vmlinux 0xc81be33c devm_iounmap
+EXPORT_SYMBOL vmlinux 0xc8277fed ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xc82f60b7 xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8d35f68 kobject_init
+EXPORT_SYMBOL vmlinux 0xc8f1e860 qdisc_list_del
+EXPORT_SYMBOL vmlinux 0xc9053365 kmem_cache_create
+EXPORT_SYMBOL vmlinux 0xc9142293 omap_dss_ntsc_timings
+EXPORT_SYMBOL vmlinux 0xc9161a57 down_interruptible
+EXPORT_SYMBOL vmlinux 0xc916f161 inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0xc93bcd40 snd_add_device_sysfs_file
+EXPORT_SYMBOL vmlinux 0xc94595f0 omap_chip_is
+EXPORT_SYMBOL vmlinux 0xc955bbff __skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev
+EXPORT_SYMBOL vmlinux 0xc9c41bf9 vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0xc9c8a03c aio_complete
+EXPORT_SYMBOL vmlinux 0xc9cd287b mii_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xca576027 sound_class
+EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca78c0e9 dma_find_channel
+EXPORT_SYMBOL vmlinux 0xca8c33fc sock_no_connect
+EXPORT_SYMBOL vmlinux 0xca99f7d0 tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0xcab0c7dc d_move
+EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0xcab3fe10 snd_pcm_suspend
+EXPORT_SYMBOL vmlinux 0xcac7d537 snd_timer_resolution
+EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0xcae3aaa4 sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0xcae43c81 netif_napi_del
+EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0xcb2928fe __skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xcb2bd53a abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0xcb405e23 __set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0xcb444f85 ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0xcb697c96 arp_send
+EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb765191 __breadahead
+EXPORT_SYMBOL vmlinux 0xcb8d79b5 wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0xcbadf7ba simple_transaction_set
+EXPORT_SYMBOL vmlinux 0xcbbf7d87 dev_driver_string
+EXPORT_SYMBOL vmlinux 0xcbc772af mddev_congested
+EXPORT_SYMBOL vmlinux 0xcbd1ce70 neigh_table_clear
+EXPORT_SYMBOL vmlinux 0xcbd1facd invalidate_bdev
+EXPORT_SYMBOL vmlinux 0xcbeb3b49 scsi_put_command
+EXPORT_SYMBOL vmlinux 0xcc082f48 skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port
+EXPORT_SYMBOL vmlinux 0xcc30c17d xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc5bb433 bdevname
+EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc8ae64e napi_gro_receive
+EXPORT_SYMBOL vmlinux 0xccad20a2 dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0xcccca482 _test_and_clear_bit_le
+EXPORT_SYMBOL vmlinux 0xcccca511 abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0xccfef548 generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0xcd083b10 unregister_sound_dsp
+EXPORT_SYMBOL vmlinux 0xcd1801e4 __set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0xcd30b95a tmio_core_mmc_clk_div
+EXPORT_SYMBOL vmlinux 0xcd39e8c4 __register_binfmt
+EXPORT_SYMBOL vmlinux 0xcd3e2a05 __xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue
+EXPORT_SYMBOL vmlinux 0xcd5c2289 cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0xcd63c845 __aeabi_lasr
+EXPORT_SYMBOL vmlinux 0xcda2695e blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0xcdb5f17b dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0xcdb8713e snd_timer_stop
+EXPORT_SYMBOL vmlinux 0xcdcea206 xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0xce057977 sk_common_release
+EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xce3ca308 copy_from_user_toio
+EXPORT_SYMBOL vmlinux 0xce416434 send_sig_info
+EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce6ed063 neigh_destroy
+EXPORT_SYMBOL vmlinux 0xce812629 bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0xce843b5a inode_get_bytes
+EXPORT_SYMBOL vmlinux 0xce9a99de blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0xce9d2b07 omapfb_update_window
+EXPORT_SYMBOL vmlinux 0xce9e7d14 mmc_free_host
+EXPORT_SYMBOL vmlinux 0xceec6350 ip_ct_attach
+EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port
+EXPORT_SYMBOL vmlinux 0xcf09c5a1 blk_run_queue
+EXPORT_SYMBOL vmlinux 0xcf0f6138 unlock_rename
+EXPORT_SYMBOL vmlinux 0xcf30a595 nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0xcf5c8dbb inode_init_owner
+EXPORT_SYMBOL vmlinux 0xcf66ec91 mmc_request_done
+EXPORT_SYMBOL vmlinux 0xcf691aac netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0xcf9c17b3 deny_write_access
+EXPORT_SYMBOL vmlinux 0xcfaa8a72 simple_readpage
+EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfe52092 omap_dss_unregister_driver
+EXPORT_SYMBOL vmlinux 0xcfe6eed1 tcp_read_sock
+EXPORT_SYMBOL vmlinux 0xcff3f7ac con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0xd004b646 dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0xd00d54dc vfs_write
+EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd021f1ab inet_bind
+EXPORT_SYMBOL vmlinux 0xd05cb119 input_get_keycode
+EXPORT_SYMBOL vmlinux 0xd074b605 dma_alloc_writecombine
+EXPORT_SYMBOL vmlinux 0xd0754786 inet_sendmsg
+EXPORT_SYMBOL vmlinux 0xd08ce663 request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0b5aa19 d_alloc_name
+EXPORT_SYMBOL vmlinux 0xd0b9b8b8 snd_interval_list
+EXPORT_SYMBOL vmlinux 0xd0c3c23b kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0f985a4 amba_request_regions
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd103245a ll_rw_block
+EXPORT_SYMBOL vmlinux 0xd10579ef udp_proc_register
+EXPORT_SYMBOL vmlinux 0xd105fdb7 ip_fragment
+EXPORT_SYMBOL vmlinux 0xd1157735 release_and_free_resource
+EXPORT_SYMBOL vmlinux 0xd1178f8d bio_add_page
+EXPORT_SYMBOL vmlinux 0xd12ec094 security_inode_permission
+EXPORT_SYMBOL vmlinux 0xd132159e inet_shutdown
+EXPORT_SYMBOL vmlinux 0xd1802277 generic_writepages
+EXPORT_SYMBOL vmlinux 0xd181280d __blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0xd1b25467 iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0xd1dfeb31 jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0xd2027743 input_close_device
+EXPORT_SYMBOL vmlinux 0xd21a8919 i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0xd21dee0c bitmap_end_sync
+EXPORT_SYMBOL vmlinux 0xd23bab4b path_is_under
+EXPORT_SYMBOL vmlinux 0xd24802dc security_file_permission
+EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t
+EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook
+EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2cc8004 cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0xd2e394e8 fb_set_suspend
+EXPORT_SYMBOL vmlinux 0xd2ee344c dev_addr_add
+EXPORT_SYMBOL vmlinux 0xd2ef23c3 omapdss_sdi_display_enable
+EXPORT_SYMBOL vmlinux 0xd2ef516c snd_pcm_kernel_ioctl
+EXPORT_SYMBOL vmlinux 0xd2f8f7b0 dev_getbyhwaddr
+EXPORT_SYMBOL vmlinux 0xd30f5c37 alloc_file
+EXPORT_SYMBOL vmlinux 0xd310b5c0 xfrm_bundle_ok
+EXPORT_SYMBOL vmlinux 0xd32ee88e xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xd344d9fb fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0xd35087a3 max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0xd355ba6a generic_unplug_device
+EXPORT_SYMBOL vmlinux 0xd373e799 journal_abort
+EXPORT_SYMBOL vmlinux 0xd374e0d0 blk_sync_queue
+EXPORT_SYMBOL vmlinux 0xd38246ed amba_device_unregister
+EXPORT_SYMBOL vmlinux 0xd38d3fc9 locks_init_lock
+EXPORT_SYMBOL vmlinux 0xd3938bcc bio_copy_user
+EXPORT_SYMBOL vmlinux 0xd39c79f6 bio_integrity_split
+EXPORT_SYMBOL vmlinux 0xd3c1062d nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0xd3dbeb78 ___pskb_trim
+EXPORT_SYMBOL vmlinux 0xd3dbfbc4 _find_first_zero_bit_le
+EXPORT_SYMBOL vmlinux 0xd3e661a2 journal_destroy
+EXPORT_SYMBOL vmlinux 0xd3f5fdeb register_netdevice
+EXPORT_SYMBOL vmlinux 0xd3f9961b __lock_buffer
+EXPORT_SYMBOL vmlinux 0xd3faf587 tty_port_open
+EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource
+EXPORT_SYMBOL vmlinux 0xd41bddf3 d_alloc_root
+EXPORT_SYMBOL vmlinux 0xd4348112 load_nls
+EXPORT_SYMBOL vmlinux 0xd43854c6 init_net
+EXPORT_SYMBOL vmlinux 0xd46b83ff dm_exception_store_type_register
+EXPORT_SYMBOL vmlinux 0xd46bd21b dquot_enable
+EXPORT_SYMBOL vmlinux 0xd47bcc33 read_cache_page
+EXPORT_SYMBOL vmlinux 0xd49d1445 snd_pcm_new
+EXPORT_SYMBOL vmlinux 0xd4a2b94e sock_no_mmap
+EXPORT_SYMBOL vmlinux 0xd4c4d245 jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0xd4df759a generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0xd5152710 sg_next
+EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd5375233 blk_put_request
+EXPORT_SYMBOL vmlinux 0xd54c104c __ps2_command
+EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out
+EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xd56e9485 omap_set_dma_dest_index
+EXPORT_SYMBOL vmlinux 0xd5762e6d tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put
+EXPORT_SYMBOL vmlinux 0xd5b3a67a scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0xd5cebe69 scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0xd600ddd2 tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0xd60968fa block_truncate_page
+EXPORT_SYMBOL vmlinux 0xd60d7ea7 vlan_gro_frags
+EXPORT_SYMBOL vmlinux 0xd60f021f xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0xd627480b strncat
+EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd62f656d scsi_print_sense
+EXPORT_SYMBOL vmlinux 0xd635d134 rb_last
+EXPORT_SYMBOL vmlinux 0xd644ec27 max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0xd69694e8 qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0xd69a3ab0 proc_mkdir
+EXPORT_SYMBOL vmlinux 0xd69fd922 skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single
+EXPORT_SYMBOL vmlinux 0xd6e7646f noop_qdisc
+EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc
+EXPORT_SYMBOL vmlinux 0xd6f97ca1 rb_first
+EXPORT_SYMBOL vmlinux 0xd71a1851 register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0xd72646bd simple_pin_fs
+EXPORT_SYMBOL vmlinux 0xd7477741 scsi_finish_command
+EXPORT_SYMBOL vmlinux 0xd74a9ff8 softnet_data
+EXPORT_SYMBOL vmlinux 0xd75071cf __starget_for_each_device
+EXPORT_SYMBOL vmlinux 0xd76b3009 tty_port_put
+EXPORT_SYMBOL vmlinux 0xd76d242e clk_register
+EXPORT_SYMBOL vmlinux 0xd7796d8b snd_device_register
+EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and
+EXPORT_SYMBOL vmlinux 0xd79a2298 scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal
+EXPORT_SYMBOL vmlinux 0xd79bc5bf __napi_complete
+EXPORT_SYMBOL vmlinux 0xd7c9ee40 skb_append
+EXPORT_SYMBOL vmlinux 0xd7cc303d omap_mcbsp_set_io_type
+EXPORT_SYMBOL vmlinux 0xd7cd4733 scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0xd7d32077 __lookup_one_len
+EXPORT_SYMBOL vmlinux 0xd7dd2240 bio_kmalloc
+EXPORT_SYMBOL vmlinux 0xd7e17caf snd_jack_new
+EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd8135ed1 sock_no_bind
+EXPORT_SYMBOL vmlinux 0xd81a0931 blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xd8250248 sk_reset_txq
+EXPORT_SYMBOL vmlinux 0xd83d7987 generic_read_dir
+EXPORT_SYMBOL vmlinux 0xd844ffa5 vfs_link
+EXPORT_SYMBOL vmlinux 0xd8464d2d kernel_getpeername
+EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user
+EXPORT_SYMBOL vmlinux 0xd8544349 mmc_host_enable
+EXPORT_SYMBOL vmlinux 0xd8551317 tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0xd856cca2 dma_release_from_coherent
+EXPORT_SYMBOL vmlinux 0xd85bbb40 dev_add_pack
+EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p
+EXPORT_SYMBOL vmlinux 0xd8b2630f qdisc_destroy
+EXPORT_SYMBOL vmlinux 0xd8b40fbd dm_put_device
+EXPORT_SYMBOL vmlinux 0xd8b92c9d snd_pcm_set_sync
+EXPORT_SYMBOL vmlinux 0xd8e2fefe generic_file_llseek_unlocked
+EXPORT_SYMBOL vmlinux 0xd8e41ba9 vlan_gro_receive
+EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd8e6de22 __alloc_skb
+EXPORT_SYMBOL vmlinux 0xd8ed2179 elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0xd8f68883 omap_mcbsp_pollread
+EXPORT_SYMBOL vmlinux 0xd917ba3e ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd939a479 tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0xd955d2b7 omap_set_dma_dest_data_pack
+EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node
+EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen
+EXPORT_SYMBOL vmlinux 0xd9f41324 jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0xd9fac40d security_path_chmod
+EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf
+EXPORT_SYMBOL vmlinux 0xda329951 sk_stream_error
+EXPORT_SYMBOL vmlinux 0xda5ea696 _test_and_set_bit_le
+EXPORT_SYMBOL vmlinux 0xda76ef49 scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xdaaa6c40 block_write_end
+EXPORT_SYMBOL vmlinux 0xdab6857a tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0xdabbc606 phy_device_register
+EXPORT_SYMBOL vmlinux 0xdac1f54b in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xdadbc5d8 dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0xdafbf6f1 xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0xdb03bf21 dev_mc_sync
+EXPORT_SYMBOL vmlinux 0xdb2178c7 __sg_free_table
+EXPORT_SYMBOL vmlinux 0xdb2a7b06 xfrm_register_type
+EXPORT_SYMBOL vmlinux 0xdb4292e4 omap_set_dma_params
+EXPORT_SYMBOL vmlinux 0xdb56a838 __blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xdb5913f5 linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0xdb7a9055 set_binfmt
+EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0xdb959bc9 get_phy_id
+EXPORT_SYMBOL vmlinux 0xdbbc2c42 pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0xdbbf206c __omap_get_config
+EXPORT_SYMBOL vmlinux 0xdbc117eb igrab
+EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbe5c403 journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0xdbea292e bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc223af6 skb_find_text
+EXPORT_SYMBOL vmlinux 0xdc271d2a security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0xdc2a0ad1 tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint
+EXPORT_SYMBOL vmlinux 0xdc3f1034 inet_frag_find
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize
+EXPORT_SYMBOL vmlinux 0xdc7081cc dma_release_declared_memory
+EXPORT_SYMBOL vmlinux 0xdc798d37 __mutex_init
+EXPORT_SYMBOL vmlinux 0xdc89add7 netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0xdc8d29f2 ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family
+EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close
+EXPORT_SYMBOL vmlinux 0xdcde00be drop_super
+EXPORT_SYMBOL vmlinux 0xdd001a7e tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0xdd04e41b backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat
+EXPORT_SYMBOL vmlinux 0xdd24b02f ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr
+EXPORT_SYMBOL vmlinux 0xdd2a5847 bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0xdd58f9ec blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0xdd61b19e lookup_one_len
+EXPORT_SYMBOL vmlinux 0xdd6672d8 xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0xdd6de48f fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0xdd7bc989 __xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xdd84c43a vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0xdd8decdc simple_set_mnt
+EXPORT_SYMBOL vmlinux 0xdd8f7563 skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0xddc55486 dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0xdddcbd99 empty_zero_page
+EXPORT_SYMBOL vmlinux 0xdddddde8 dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0xdddf8c86 skb_checksum_help
+EXPORT_SYMBOL vmlinux 0xde15c042 omap_set_dma_src_index
+EXPORT_SYMBOL vmlinux 0xde2b0381 key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask
+EXPORT_SYMBOL vmlinux 0xde692d94 omap_get_dma_chain_src_pos
+EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type
+EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages
+EXPORT_SYMBOL vmlinux 0xde95d8dd inet_getname
+EXPORT_SYMBOL vmlinux 0xdeaeb6b5 ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0xdeb1381b eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xdeb6361f unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0xdebff305 sock_no_poll
+EXPORT_SYMBOL vmlinux 0xded7e448 do_splice_to
+EXPORT_SYMBOL vmlinux 0xded8bc6d jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0xdeee3fab security_path_mkdir
+EXPORT_SYMBOL vmlinux 0xdef48837 tcp4_gro_complete
+EXPORT_SYMBOL vmlinux 0xdf0c1f7e bd_set_size
+EXPORT_SYMBOL vmlinux 0xdf0daa8a journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xdf44882b lease_modify
+EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval
+EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol
+EXPORT_SYMBOL vmlinux 0xdf86a7d1 xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdf959f19 dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0xdf9b223a generic_make_request
+EXPORT_SYMBOL vmlinux 0xdf9fb296 take_over_console
+EXPORT_SYMBOL vmlinux 0xdfa14d9c force_sig
+EXPORT_SYMBOL vmlinux 0xdfaef5e5 sock_wake_async
+EXPORT_SYMBOL vmlinux 0xdfb01a80 cpu_v7_dcache_clean_area
+EXPORT_SYMBOL vmlinux 0xdfb22a28 nobh_write_end
+EXPORT_SYMBOL vmlinux 0xdfb64277 alloc_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init
+EXPORT_SYMBOL vmlinux 0xdfd91ce9 omap_type
+EXPORT_SYMBOL vmlinux 0xdfdaeacf skb_copy
+EXPORT_SYMBOL vmlinux 0xdff79f97 blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0xe018dc94 input_unregister_handler
+EXPORT_SYMBOL vmlinux 0xe02327cc md_barrier_request
+EXPORT_SYMBOL vmlinux 0xe024cca2 genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe08bcd29 snd_jack_set_parent
+EXPORT_SYMBOL vmlinux 0xe09d5345 dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0xe0a8d20e put_page
+EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free
+EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort
+EXPORT_SYMBOL vmlinux 0xe0c3706c blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0xe0cda66a scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0xe0f6d985 htc_egpio_get_wakeup_irq
+EXPORT_SYMBOL vmlinux 0xe0fac6a9 snd_pcm_period_elapsed
+EXPORT_SYMBOL vmlinux 0xe106154f omap_vram_get_info
+EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial
+EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0xe1442f37 prepare_creds
+EXPORT_SYMBOL vmlinux 0xe14eef1e pipe_to_file
+EXPORT_SYMBOL vmlinux 0xe16b893b mutex_lock
+EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe1d48202 mmc_wait_for_app_cmd
+EXPORT_SYMBOL vmlinux 0xe1e1705f proc_symlink
+EXPORT_SYMBOL vmlinux 0xe1f71b34 tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0xe2026a4c kill_block_super
+EXPORT_SYMBOL vmlinux 0xe20c9214 snd_iprintf
+EXPORT_SYMBOL vmlinux 0xe22501e1 tcp_ioctl
+EXPORT_SYMBOL vmlinux 0xe22d6517 __bread
+EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64
+EXPORT_SYMBOL vmlinux 0xe24d97f1 console_start
+EXPORT_SYMBOL vmlinux 0xe29b1e12 alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0xe2c5928a noop_llseek
+EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp
+EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user
+EXPORT_SYMBOL vmlinux 0xe2f61328 journal_ack_err
+EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup
+EXPORT_SYMBOL vmlinux 0xe305881a bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0xe30cfe63 xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0xe3132db2 snd_ctl_find_numid
+EXPORT_SYMBOL vmlinux 0xe36aa275 request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0xe37d10ae omap_dispc_unregister_isr
+EXPORT_SYMBOL vmlinux 0xe39385b2 thaw_process
+EXPORT_SYMBOL vmlinux 0xe405fa20 ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0xe41efad1 create_mnt_ns
+EXPORT_SYMBOL vmlinux 0xe421c33c kmem_cache_name
+EXPORT_SYMBOL vmlinux 0xe4263e4a dev_uc_flush
+EXPORT_SYMBOL vmlinux 0xe42bc568 unlock_buffer
+EXPORT_SYMBOL vmlinux 0xe43d80cb journal_set_features
+EXPORT_SYMBOL vmlinux 0xe44b0513 phy_print_status
+EXPORT_SYMBOL vmlinux 0xe44cfe8f ethtool_op_get_rx_csum
+EXPORT_SYMBOL vmlinux 0xe44e0d1f inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0xe467b009 snd_seq_root
+EXPORT_SYMBOL vmlinux 0xe4b3e82f locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xe4bda131 dget_locked
+EXPORT_SYMBOL vmlinux 0xe4c80097 cacheid
+EXPORT_SYMBOL vmlinux 0xe4f241df tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe51c8066 scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe52dd6ae tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0xe52eed81 ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0xe5435eef register_sound_mixer
+EXPORT_SYMBOL vmlinux 0xe5445af6 omap_get_dma_dst_pos
+EXPORT_SYMBOL vmlinux 0xe55d6c1a posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0xe56a9336 snd_pcm_format_width
+EXPORT_SYMBOL vmlinux 0xe57400da sock_create
+EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton
+EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe59aa3db bioset_free
+EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5e7cafa register_sound_special_device
+EXPORT_SYMBOL vmlinux 0xe5e8d31b tty_unthrottle
+EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe5f62182 mdiobus_write
+EXPORT_SYMBOL vmlinux 0xe6220454 filemap_fault
+EXPORT_SYMBOL vmlinux 0xe62a114e generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0xe63423e2 sk_stop_timer
+EXPORT_SYMBOL vmlinux 0xe63f50a8 elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0xe647c686 gpmc_prefetch_enable
+EXPORT_SYMBOL vmlinux 0xe65b0ba9 phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0xe6744a89 omap_clear_dma
+EXPORT_SYMBOL vmlinux 0xe68860e4 bdget_disk
+EXPORT_SYMBOL vmlinux 0xe68ffe92 netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid
+EXPORT_SYMBOL vmlinux 0xe693d2c8 kfree_skb
+EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6c3ebb0 __raw_writesw
+EXPORT_SYMBOL vmlinux 0xe6cc3b60 clk_get_rate
+EXPORT_SYMBOL vmlinux 0xe6d31dfd tcp_shutdown
+EXPORT_SYMBOL vmlinux 0xe6dbe108 blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update
+EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe707d823 __aeabi_uidiv
+EXPORT_SYMBOL vmlinux 0xe70c0122 xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0xe70d571f make_bad_inode
+EXPORT_SYMBOL vmlinux 0xe70f417d mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0xe730bcb0 generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0xe7375f53 dm_dirty_log_type_register
+EXPORT_SYMBOL vmlinux 0xe73d0fde sleep_on
+EXPORT_SYMBOL vmlinux 0xe77850f8 init_buffer
+EXPORT_SYMBOL vmlinux 0xe7a82eb2 blk_rq_init
+EXPORT_SYMBOL vmlinux 0xe7ae6836 i2c_use_client
+EXPORT_SYMBOL vmlinux 0xe7bac7df blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0xe7d144ee filp_open
+EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next
+EXPORT_SYMBOL vmlinux 0xe806dd66 jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe80dfd27 write_cache_pages
+EXPORT_SYMBOL vmlinux 0xe82743f9 tcf_hash_release
+EXPORT_SYMBOL vmlinux 0xe8576900 neigh_parms_release
+EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss
+EXPORT_SYMBOL vmlinux 0xe87ed1ce idr_replace
+EXPORT_SYMBOL vmlinux 0xe8a35ff6 seq_escape
+EXPORT_SYMBOL vmlinux 0xe8b2fd5d snd_ctl_boolean_mono_info
+EXPORT_SYMBOL vmlinux 0xe8c13b0e dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0xe8d11546 eth_header_parse
+EXPORT_SYMBOL vmlinux 0xe90268fb sock_recvmsg
+EXPORT_SYMBOL vmlinux 0xe902f758 dm_table_get_size
+EXPORT_SYMBOL vmlinux 0xe90aa4e9 rb_insert_color
+EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module
+EXPORT_SYMBOL vmlinux 0xe914e41e strcpy
+EXPORT_SYMBOL vmlinux 0xe91965fe open_exec
+EXPORT_SYMBOL vmlinux 0xe9343d34 jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xe9585152 blk_queue_ordered
+EXPORT_SYMBOL vmlinux 0xe97b78c4 blkdev_get
+EXPORT_SYMBOL vmlinux 0xe98a87f1 dcache_lock
+EXPORT_SYMBOL vmlinux 0xe99504ae snd_unregister_device
+EXPORT_SYMBOL vmlinux 0xe9981d2e vfs_writev
+EXPORT_SYMBOL vmlinux 0xe9c22970 skb_push
+EXPORT_SYMBOL vmlinux 0xe9ce8b95 omap_ioremap
+EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea147363 printk
+EXPORT_SYMBOL vmlinux 0xea1fedd4 dma_async_device_register
+EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0xea7987f1 key_update
+EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xea8bbbba security_task_getsecid
+EXPORT_SYMBOL vmlinux 0xeaaee1bb skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0xeab01c65 ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0xeacf4e09 filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay
+EXPORT_SYMBOL vmlinux 0xeaef5a74 kern_path
+EXPORT_SYMBOL vmlinux 0xeb03a454 netif_rx
+EXPORT_SYMBOL vmlinux 0xeb0e87d5 phy_connect
+EXPORT_SYMBOL vmlinux 0xeb1b120e omap_set_dma_write_mode
+EXPORT_SYMBOL vmlinux 0xeb320cac rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0xeb3743e3 tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n
+EXPORT_SYMBOL vmlinux 0xeb86b0b9 snd_ctl_free_one
+EXPORT_SYMBOL vmlinux 0xeb9f5296 inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0xeb9f699b jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0xebb093a2 make_EII_client
+EXPORT_SYMBOL vmlinux 0xebc999dc genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull
+EXPORT_SYMBOL vmlinux 0xebf4a5e4 ip_dev_find
+EXPORT_SYMBOL vmlinux 0xebfdcbdf system_serial_high
+EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec2f1ac3 dquot_acquire
+EXPORT_SYMBOL vmlinux 0xec3c7a8a i2c_del_driver
+EXPORT_SYMBOL vmlinux 0xec3f1e9c fb_show_logo
+EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys
+EXPORT_SYMBOL vmlinux 0xec4e38a1 security_path_mknod
+EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns
+EXPORT_SYMBOL vmlinux 0xec6805c3 pneigh_lookup
+EXPORT_SYMBOL vmlinux 0xec6a4d04 wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0xec6dda08 netif_carrier_off
+EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xec819ec4 mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0xecb1f38d key_revoke
+EXPORT_SYMBOL vmlinux 0xecb6d2dd free_buffer_head
+EXPORT_SYMBOL vmlinux 0xecd6e6ca phy_device_create
+EXPORT_SYMBOL vmlinux 0xecd8b5ca tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0xecfaf893 journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0xed269407 put_disk
+EXPORT_SYMBOL vmlinux 0xed2ca524 inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0xed33a015 __invalidate_device
+EXPORT_SYMBOL vmlinux 0xed4bb5fa inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0xed526a2d snd_ctl_make_virtual_master
+EXPORT_SYMBOL vmlinux 0xed788206 sk_dst_check
+EXPORT_SYMBOL vmlinux 0xed854dac omap_stop_dma_chain_transfers
+EXPORT_SYMBOL vmlinux 0xed9f3e0c simple_rename
+EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xeda5e951 dentry_unhash
+EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3
+EXPORT_SYMBOL vmlinux 0xedfa6d84 inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xedfff077 jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee53d1a1 flush_signals
+EXPORT_SYMBOL vmlinux 0xee758ce4 n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0xeea0fa19 init_task
+EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeeb3f7c4 follow_down
+EXPORT_SYMBOL vmlinux 0xeebe9c25 ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0xeed4e916 inet6_bind
+EXPORT_SYMBOL vmlinux 0xeedfd5cf __seq_open_private
+EXPORT_SYMBOL vmlinux 0xeee92076 dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0xeef28734 ps2_handle_response
+EXPORT_SYMBOL vmlinux 0xeefab4b4 wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0xeefface6 journal_update_format
+EXPORT_SYMBOL vmlinux 0xef3a3967 d_delete
+EXPORT_SYMBOL vmlinux 0xef3fdf29 snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool
+EXPORT_SYMBOL vmlinux 0xef745218 seq_read
+EXPORT_SYMBOL vmlinux 0xef9a04e9 unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0xef9b1721 notify_change
+EXPORT_SYMBOL vmlinux 0xefb66a95 omap_request_dma_chain
+EXPORT_SYMBOL vmlinux 0xefbe8bc7 sk_filter
+EXPORT_SYMBOL vmlinux 0xefd6cf06 __aeabi_unwind_cpp_pr0
+EXPORT_SYMBOL vmlinux 0xefdd2345 sg_init_one
+EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefec312f omap_get_dma_active_status
+EXPORT_SYMBOL vmlinux 0xeff348e0 amba_driver_register
+EXPORT_SYMBOL vmlinux 0xeff6e5f7 snd_pcm_hw_refine
+EXPORT_SYMBOL vmlinux 0xeffed105 mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list
+EXPORT_SYMBOL vmlinux 0xf005d212 nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xf006cd37 bio_sector_offset
+EXPORT_SYMBOL vmlinux 0xf008a520 tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0xf016bfdc abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0xf02cd829 __napi_schedule
+EXPORT_SYMBOL vmlinux 0xf053bdcf inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0xf06c82d5 ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0xf094b049 jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0xf0a8700a blk_remove_plug
+EXPORT_SYMBOL vmlinux 0xf0b3d604 sock_rfree
+EXPORT_SYMBOL vmlinux 0xf0dbcec5 inet_listen
+EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf
+EXPORT_SYMBOL vmlinux 0xf0f1fea0 md_write_start
+EXPORT_SYMBOL vmlinux 0xf1035991 tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0xf103f35c tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32
+EXPORT_SYMBOL vmlinux 0xf12174f6 fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0xf136c279 add_timer
+EXPORT_SYMBOL vmlinux 0xf14cfd91 mpage_writepage
+EXPORT_SYMBOL vmlinux 0xf15a333a abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem
+EXPORT_SYMBOL vmlinux 0xf17cd73a blk_get_request
+EXPORT_SYMBOL vmlinux 0xf1868e4e generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0xf18b05c6 ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0xf18e88a2 netdev_set_master
+EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1a3c919 omap_mcbsp_set_tx_threshold
+EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64
+EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun
+EXPORT_SYMBOL vmlinux 0xf2008728 tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0xf2077e12 tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq
+EXPORT_SYMBOL vmlinux 0xf23609b7 pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0xf238c97d bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0xf243e2c9 tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0xf24460f8 snd_pcm_lib_free_pages
+EXPORT_SYMBOL vmlinux 0xf25b579a kernel_read
+EXPORT_SYMBOL vmlinux 0xf261b686 blk_integrity_register
+EXPORT_SYMBOL vmlinux 0xf26d6022 tc6393xb_lcd_mode
+EXPORT_SYMBOL vmlinux 0xf26df746 omap_vram_free
+EXPORT_SYMBOL vmlinux 0xf286f5d6 blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0xf28d77bd ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0xf28e1e3e omap_st_disable
+EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2a51ca4 mmc_register_driver
+EXPORT_SYMBOL vmlinux 0xf2ba84ec cpu_user
+EXPORT_SYMBOL vmlinux 0xf2eae2b6 snd_pcm_notify
+EXPORT_SYMBOL vmlinux 0xf3063d41 scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform
+EXPORT_SYMBOL vmlinux 0xf31b89a7 bio_split
+EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name
+EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user
+EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf33fc851 dev_uc_init
+EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf349d94b journal_create
+EXPORT_SYMBOL vmlinux 0xf3797152 snd_interval_ratnum
+EXPORT_SYMBOL vmlinux 0xf380ae48 dquot_transfer
+EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf38a0d2b bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg
+EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3eb34b7 abort_creds
+EXPORT_SYMBOL vmlinux 0xf4584c19 prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0xf4596f40 tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0xf4667ac0 fb_set_cmap
+EXPORT_SYMBOL vmlinux 0xf46ada37 end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0xf47d3439 lro_vlan_hwaccel_receive_skb
+EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask
+EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf5164b60 request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf53de36a omap_dss_get_overlay
+EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n
+EXPORT_SYMBOL vmlinux 0xf54ba601 omap_mcbsp_config
+EXPORT_SYMBOL vmlinux 0xf54bd2cf ethtool_ntuple_flush
+EXPORT_SYMBOL vmlinux 0xf564412a __aeabi_ulcmp
+EXPORT_SYMBOL vmlinux 0xf57af171 dma_sync_wait
+EXPORT_SYMBOL vmlinux 0xf5a076f6 __serio_register_driver
+EXPORT_SYMBOL vmlinux 0xf5a32ca4 mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5cdc00b mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0xf5ce1631 ps2_command
+EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xf5e2ed11 filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf6033214 i2c_release_client
+EXPORT_SYMBOL vmlinux 0xf6106a6d napi_reuse_skb
+EXPORT_SYMBOL vmlinux 0xf61c0a3c xfrm_input
+EXPORT_SYMBOL vmlinux 0xf6288e02 __init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0xf679de4b dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0xf6960016 create_proc_entry
+EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table
+EXPORT_SYMBOL vmlinux 0xf6c3dd77 tty_port_init
+EXPORT_SYMBOL vmlinux 0xf6d7e5d6 snd_pcm_link_rwlock
+EXPORT_SYMBOL vmlinux 0xf6e3cd3a vfs_llseek
+EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf6f3cef6 omap_vrfb_setup
+EXPORT_SYMBOL vmlinux 0xf72da6c5 get_sb_single
+EXPORT_SYMBOL vmlinux 0xf73e4a24 dev_get_by_flags
+EXPORT_SYMBOL vmlinux 0xf7584a9c find_font
+EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0xf7802486 __aeabi_uidivmod
+EXPORT_SYMBOL vmlinux 0xf7824f5f file_update_time
+EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf796a6fc kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0xf7a30c5e tc_classify_compat
+EXPORT_SYMBOL vmlinux 0xf7c61815 get_omap3_evm_rev
+EXPORT_SYMBOL vmlinux 0xf7ce6575 vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0xf7d584e1 unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0xf7ddf646 jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set
+EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf8358ead nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0xf84ca334 snd_card_proc_new
+EXPORT_SYMBOL vmlinux 0xf853bbca omap_vrfb_map_angle
+EXPORT_SYMBOL vmlinux 0xf8548205 unregister_qdisc
+EXPORT_SYMBOL vmlinux 0xf889169c module_refcount
+EXPORT_SYMBOL vmlinux 0xf88c3301 sg_init_table
+EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle
+EXPORT_SYMBOL vmlinux 0xf8a946fb bdev_read_only
+EXPORT_SYMBOL vmlinux 0xf8b2fca0 __devm_request_region
+EXPORT_SYMBOL vmlinux 0xf8f16f34 tc_classify
+EXPORT_SYMBOL vmlinux 0xf8fbb4f0 __bad_xchg
+EXPORT_SYMBOL vmlinux 0xf90c155d init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0xf91fd3f7 blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xf92a8b59 snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL vmlinux 0xf92f60ef dm_io
+EXPORT_SYMBOL vmlinux 0xf960127e input_flush_device
+EXPORT_SYMBOL vmlinux 0xf9643762 pid_task
+EXPORT_SYMBOL vmlinux 0xf980f3b8 dev_load
+EXPORT_SYMBOL vmlinux 0xf9841eab dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0xf99f3879 tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0xf99f4ded unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep
+EXPORT_SYMBOL vmlinux 0xf9b10fcd sk_receive_skb
+EXPORT_SYMBOL vmlinux 0xf9d2c1c4 ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0xfa06edb5 otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0xfa077bc8 mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0xfa0c485c filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0xfa1b5913 setup_arg_pages
+EXPORT_SYMBOL vmlinux 0xfa1bfd2b irq_stat
+EXPORT_SYMBOL vmlinux 0xfa25d1d2 dquot_operations
+EXPORT_SYMBOL vmlinux 0xfa2a125a generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0xfa55f43e tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0xfa912400 log_wait_commit
+EXPORT_SYMBOL vmlinux 0xfa960ff5 snd_card_create
+EXPORT_SYMBOL vmlinux 0xfa9e89ac neigh_table_init
+EXPORT_SYMBOL vmlinux 0xfab26190 snd_pcm_suspend_all
+EXPORT_SYMBOL vmlinux 0xfac68eba arm_elf_read_implies_exec
+EXPORT_SYMBOL vmlinux 0xfad1b732 bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0xfae20919 xfrm_register_km
+EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32
+EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs
+EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3
+EXPORT_SYMBOL vmlinux 0xfb89791d iunique
+EXPORT_SYMBOL vmlinux 0xfb9b570e __scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0xfb9fa414 get_sb_bdev
+EXPORT_SYMBOL vmlinux 0xfbaf579f generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xfbec7f09 kill_pid
+EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc089cad jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc3a5e88 jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0xfc43682d __inet6_hash
+EXPORT_SYMBOL vmlinux 0xfc66ceaf tty_throttle
+EXPORT_SYMBOL vmlinux 0xfc7461bf snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL vmlinux 0xfc89af04 __nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcab2b50 scsi_print_command
+EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcd12677 dmam_pool_create
+EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states
+EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq
+EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfcfd85b1 kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0xfd1026e7 fsnotify_destroy_mark_by_entry
+EXPORT_SYMBOL vmlinux 0xfd195c62 omap_mcbsp_xmit_buffer
+EXPORT_SYMBOL vmlinux 0xfd305341 walk_stackframe
+EXPORT_SYMBOL vmlinux 0xfd58f550 send_sig
+EXPORT_SYMBOL vmlinux 0xfd9099fa snd_pcm_new_stream
+EXPORT_SYMBOL vmlinux 0xfd927ee7 nf_afinfo
+EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xfda993b1 kernel_bind
+EXPORT_SYMBOL vmlinux 0xfdab6de3 unregister_sound_midi
+EXPORT_SYMBOL vmlinux 0xfdcb3740 dev_mc_init
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe014c09 dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0xfe142ea7 skb_make_writable
+EXPORT_SYMBOL vmlinux 0xfe15099a phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0xfe225273 omap_mcbsp_recv_buffer
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz
+EXPORT_SYMBOL vmlinux 0xfe634f58 add_wait_queue
+EXPORT_SYMBOL vmlinux 0xfe6df3f2 snd_timer_start
+EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe7bef51 bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0xfe92b1f7 inet6_ioctl
+EXPORT_SYMBOL vmlinux 0xfeaf34c8 vfs_fsync
+EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin
+EXPORT_SYMBOL vmlinux 0xfec8e38e netif_device_attach
+EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff02732f mii_check_link
+EXPORT_SYMBOL vmlinux 0xff1078c9 vfs_read
+EXPORT_SYMBOL vmlinux 0xff1595a5 mii_check_gmii_support
+EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start
+EXPORT_SYMBOL vmlinux 0xff261096 kobject_get
+EXPORT_SYMBOL vmlinux 0xff2b0fa1 omap_mcbsp_get_max_rx_threshold
+EXPORT_SYMBOL vmlinux 0xff3b9eab inet6_release
+EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3
+EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff901eb0 phy_detach
+EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int
+EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffa6b5a9 jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0xffcf6e7e init_special_inode
+EXPORT_SYMBOL vmlinux 0xffd2cf99 omap_dss_get_num_overlay_managers
+EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function
+EXPORT_SYMBOL vmlinux 0xffda00d0 devm_free_irq
+EXPORT_SYMBOL vmlinux 0xfff3efd1 contig_page_data
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x8153227a crypto_aes_set_key
+EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x2df04693 async_memcpy
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x05bfabb3 async_syndrome_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xd3738117 async_gen_syndrome
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x5bf175c9 async_raid6_datap_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x952fc16f async_raid6_2data_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2407876e async_tx_quiesce
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x713eb9d3 __async_tx_find_channel
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x822243b8 async_trigger_callback
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xae10365d async_tx_submit
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x2fffce88 async_xor_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x6c196bec async_xor
+EXPORT_SYMBOL_GPL crypto/cryptd 0x39342e8a cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x4f1921e0 cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x6b356e80 cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x70b628ec cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x7e7e7002 cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xacb4881a cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0xf8bfda83 cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey
+EXPORT_SYMBOL_GPL crypto/twofish_common 0x811e858a twofish_setkey
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x26fff252 ahci_print_info
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x68149401 ahci_check_ready
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x79e07b21 ahci_do_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x830738dd ahci_ops
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x844a0910 ahci_init_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8bac1d1a ahci_stop_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa26bc542 ahci_kick_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa4082bcc ahci_start_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa9a5450b ahci_reset_em
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xad911495 ahci_save_initial_config
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcdbe16a3 ahci_reset_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe7c83b91 ahci_sht
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf5cb8988 ahci_set_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x09b20760 btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0ae830b5 btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x44833b3f btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x54265542 btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x77fe9071 btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8dd1d282 btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9f62e98c btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd99b994b btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x8d858fd0 __max730x_remove
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x902ef400 __max730x_probe
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x005f29f7 hidinput_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x1526dd7a hid_input_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x24bdc0db hid_resolv_usage
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x31a53b80 hid_debug_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x3382f2bc hid_report_raw_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x3caf0a22 hid_add_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x3f8365a8 hidraw_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x50b47c98 hid_dump_input
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x551c786e hid_allocate_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x61aa3e00 hid_register_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x663a8a1a hid_check_keys_pressed
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x6850eb42 hidraw_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x75b09fbe hid_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x779f67f5 hid_unregister_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x7801df46 hid_set_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x79576245 hid_parse_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x86035b93 hidinput_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x869fb5c4 hidinput_find_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x9b7bff7f __hid_register_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x9e757f37 hid_dump_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xb4f895e6 hidraw_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc0f6ec01 hidinput_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc52115e3 hid_output_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xca8dac9c hid_destroy_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xd2db9f8c hid_dump_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xd8e38a8a hid_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xfac45573 roccat_connect
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x41072a95 usbhid_wait_io
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x86eff26b usbhid_set_leds
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xa00dacd8 usbhid_submit_report
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xae3ab40d hiddev_hid_event
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x13b673d9 lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x3adf0721 lis3lv02d_init_device
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x637d81bb lis3_dev
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x673fbd2d lis3lv02d_poweron
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6ff6ef40 lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xb1048320 i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xe203a8fc i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x4a3c316e input_ff_create_memless
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1f949f99 wm97xx_config_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x26c68c29 wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4a9777b3 wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x726441fa wm9713_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa3705c3e wm9705_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa4279b66 wm97xx_reg_read
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb6ec3b09 wm97xx_get_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbece4164 wm9712_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xdd01327c wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xdfa92ad9 wm97xx_reg_write
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe3eecf97 wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf1f84a08 wm97xx_set_gpio
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x06f02395 gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0a07da2b gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1e19fab8 gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x216a721a gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2b293e2b gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4ea77899 gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x58a723cb gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x80bdbb6d gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x82ce1e9f gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9a6aac9b gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb69ef774 gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc6517125 gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd301a835 gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd46f7d5b gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd8ce0c9f gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe9a363f9 gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xee18f95f gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf699b098 gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x52efb8a2 led_classdev_suspend
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x5676d44c led_classdev_resume
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x9cb08471 led_classdev_register
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0xfe11dfb0 led_classdev_unregister
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x0f00487f ir_input_nokey
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x20bdf3ab ir_input_init
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xefd2c58a ir_input_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x03bd7f09 ir_unregister_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x3b5cd047 ir_input_unregister
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x47836647 ir_g_keycode_from_table
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x745da026 ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xc12ede96 ir_raw_event_handle
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xc8637b87 ir_repeat
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xcd332940 ir_raw_event_store
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xde3fc8d9 get_rc_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xdf1becdd ir_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xf190292d ir_register_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xfdeca35f __ir_input_register
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x449416e5 microtune_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xa4edbd2c mxl5007t_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x9c19cb15 tda18271_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x35abace2 tda827x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x185f861c tda829x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x2291c2bc tda829x_probe
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x271bbce3 tda9887_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x762da3ea tea5761_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xf084b551 tea5761_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x2b71322e tea5767_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x3b000a35 tea5767_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x1595f958 simple_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/lgdt3304 0x2a659c2b lgdt3304_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/frontends/s921 0x987c466f s921_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x24cc1c04 smscore_register_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x25de39e2 smscore_start_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2a6d143b smscore_register_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3270040b smscore_register_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x525be803 smsclient_sendrequest
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x56e6f3ec sms_board_event
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5f504008 sms_board_led_feedback
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x621f5844 smscore_set_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x81605b5c smscore_get_device_mode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8929d42b sms_board_lna_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9110f4f0 smscore_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9efaf12a smscore_get_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb32ae4d4 smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc3cc1488 smscore_getbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcd61491b smscore_putbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdb8847d5 sms_board_setup
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdbd92051 sms_board_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdff10fe7 smscore_unregister_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf5c7fe13 smscore_onresponse
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x14367fe4 cx231xx_dev_init
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3c4800ef cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5c077ea7 cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x77eba94d cx231xx_capture_start
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb4f02aba cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc9ee2d80 cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd01f23d2 cx231xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd4e824bd cx231xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe51a2f21 cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf10c92af cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf9f6a165 cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x47542bdd em28xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x71e34efb em28xx_isoc_dvb_max_packetsize
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x9c19a288 em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x9c7c764e em28xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xe5d5af9e em28xx_audio_setup
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xf49a7426 em28xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x2cad50d2 v4l2_i2c_new_subdev_cfg
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x850ad8c0 v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x8b92e875 v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x9a3fde74 v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xc7fcd217 v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xcd03524c v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x03c8f4a9 v4l2_int_ioctl_1
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x231251c7 v4l2_int_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x234719f8 v4l2_int_ioctl_0
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x6e8b1a27 v4l2_int_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0c5aba73 v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x14242f87 v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2ce28c3c v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x349170a8 v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3683716f v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x51146385 v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x634d3917 v4l2_m2m_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x66e27ec0 v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x68f6fcee v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa14ad9b2 v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xab026cde v4l2_m2m_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xae53c03e v4l2_m2m_poll
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc37f9cd8 v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd1e60701 v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1553af99 videobuf_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1bb269da videobuf_read_one
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1bc4466e videobuf_read_start
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x25f9c99c videobuf_iolock
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2668855c videobuf_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x27d0609a videobuf_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2c09f83c videobuf_read_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x38935c2c videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4c52d431 videobuf_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5911b594 videobuf_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x72ef9aea videobuf_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x754ced0d videobuf_queue_cancel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x768a4522 videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x81a17fbb videobuf_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x90afad27 __videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x99f4bc80 videobuf_poll_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa70e6068 videobuf_queue_core_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa983a3a2 videobuf_mmap_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xac38a723 videobuf_cgmbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd4986ec3 videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe12ea886 videobuf_waiton
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe860eda2 videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe9f2004a videobuf_next_field
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf271f4cb videobuf_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfff0d63f videobuf_read_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xb70d28e3 videobuf_to_dma_contig
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xecee4600 videobuf_queue_dma_contig_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xf5c4b692 videobuf_dma_contig_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x205a6d0c videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x8777e8e3 videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xe83c79a5 videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0568bd2c v4l2_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x05ee0780 v4l2_event_pending
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1d027579 v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x521acfb1 v4l2_fh_exit
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5da41e91 v4l2_fh_add
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x681657fa v4l2_device_disconnect
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x859e0a58 v4l2_event_dequeue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbd57eaa3 v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbf2fa405 v4l2_fh_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc4966ae5 v4l2_event_queue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc4eec050 v4l2_event_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc9c93adb v4l2_fh_del
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd0d88148 v4l2_device_set_name
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd3e90b0d v4l2_event_subscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd9491d3c v4l2_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdf47207e v4l2_event_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xfad561fa v4l2_event_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xfdb548cd v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x027e6c13 mc13783_adc_do_conversion
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x18187281 pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3ff346e1 pcf50633_read_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x45928667 pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x5b2a97b3 pcf50633_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x644468a4 pcf50633_register_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6d0e9bac pcf50633_write_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x72e01cff pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9c709eb5 pcf50633_free_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc220d248 pcf50633_irq_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xca8b412a pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf508ea82 pcf50633_reg_write
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x9b4be014 pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xa22e80f1 pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x40d2764e pcf50633_gpio_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x528040a9 pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x7146aa1c pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x8dde95a7 pcf50633_gpio_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xe11447e5 pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x016cd997 sm501_modify_reg
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x69c6f0c1 sm501_set_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x7e565fe5 sm501_misc_control
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x805b2b19 sm501_find_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xbce2dabe sm501_unit_power
+EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xe2e5170f ucb1400_adc_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x20305a10 wm8400_block_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x402ec683 wm8400_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x9bcd588d wm8400_set_bits
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xaede24ce wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x335a36a3 enclosure_find
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3f772dee enclosure_add_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x58c56096 enclosure_unregister
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x72008c29 enclosure_component_register
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x93fc3143 enclosure_for_each_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb218a234 enclosure_remove_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xbdb4f04e enclosure_register
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x0801146d cfi_cmdset_0200
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x5e710738 cfi_cmdset_0001
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x776bfc9b cfi_cmdset_0003
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x236cc147 cfi_cmdset_0701
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x8e5e026a cfi_cmdset_0002
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xdc6bf52c cfi_cmdset_0006
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xe8b21160 cfi_cmdset_0020
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x1a5083b0 cfi_qry_mode_on
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x1d310954 cfi_qry_present
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xc806a564 cfi_qry_mode_off
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x0348cfde DoC2k_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x3d1b07dc DoCMil_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x14c40af6 DoCMilPlus_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xa1da0c88 onenand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xb375da3d onenand_release
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1df73e5f ubi_leb_write
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x41a10cc5 ubi_do_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5235217f ubi_open_volume_nm
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x548d963b ubi_leb_map
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x669bfa04 ubi_leb_read
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x88ed9e0f ubi_open_volume_path
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa677d0a7 ubi_leb_unmap
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa7efb9fe ubi_leb_erase
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb1522eaf ubi_get_volume_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd7ad3b02 ubi_open_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdf5238a6 ubi_is_mapped
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdf5dad98 ubi_close_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xeeedd9b2 ubi_leb_change
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1d8f4da1 open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3bfaec67 alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4b3c1535 close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6e59507a unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x76806a28 can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8f152f95 alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa6859b76 can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc846d96c register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xccc8ba10 can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd0cb2e0f can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf7c6a89a free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfee9e363 alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x0e383f1d register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x3a70392c unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x85944d2c alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe1b241c3 free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x2b21a1c4 macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x6a816fab macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xce65395b macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xecdd5d22 macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/tun 0x257dbd76 tun_get_socket
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x713c8390 usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x836b9e5d usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x57432c52 rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xad9ad819 rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb2acfa72 rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xbcf6998e generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf80ff633 rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xff9bb479 rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x03b7e2df usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0fbfa64b usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2705e2cc usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x31c55e1a usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x33dae2e9 usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3d62cff5 usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3ed0a178 usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x43cc9232 usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x499665a7 usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5aa64c6e usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x612c11cb usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x73e41a5c usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x86d1442e usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x86d6509e usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8f7156e3 usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x932e35eb usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9c10e541 usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9d65cd15 usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb5781471 usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbb0d5808 usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd0dc7edc usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xebd5c248 usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf0bf4f8c usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf655c4d7 usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2a0bc5bf lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x37a924c5 lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x46a0698b lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5b071bee lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x60fcc478 lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8ef67ced __lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9825e868 lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x98a0968f lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc182d4eb lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc538a0e0 lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc7378e59 lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xca57136e lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdb8773bc lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfb01aaf5 lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0e20606e lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x190a901b lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x3b70335e lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6874ae9d lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7802a04d __lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x98b23b14 lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc723cba5 lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd37de024 lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x3d14cd27 if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x5451e53d if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x08a4737d p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x20994bdf p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x270ecd97 p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x69f81c3a p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7c846b19 p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa3fdca29 p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb90c6107 p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xebc9fd54 p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf14ae0b2 p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x049eb881 rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x12adfe00 rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x15514ea7 rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x17a409c8 rt2800_rt2x00debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1a4fba9d rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x20a3b443 rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x20b18dab rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x251dad70 rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x25456c30 rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2a08daa3 rt2800_init_rfcsr
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2dbf8481 rt2800_write_txwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x36fa7aa1 rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x399d21d3 rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4a68a8db rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x62c024a5 rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6b00695b rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7323822b rt2800_init_bbp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa2126dda rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc3edf1ac rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc5d2e6b6 rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc7ad7660 rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdd375b72 rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe8f1197c rt2800_mac80211_ops
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf53958e0 rt2800_init_registers
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfdc65a99 rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0f8d26be rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1771d4e0 rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1b100767 rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1e8cf56f rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1f26510a rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x245a5fb3 rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x42252ea9 rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x43ea274b rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46a5d3b8 rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4858e57a rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x552c0cb1 rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5a38f98b rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5abd358c rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5f0af7ef rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x714e0f8a rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x917f3679 rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x95a36d60 rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaec3e5c1 rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xafea3e7a rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc6f089c6 rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd05a795c rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdea6f732 rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf53d1434 rt2x00queue_get_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x03442d1f rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x050f50ee rt2x00usb_vendor_request_large_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1217afee rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x304ce45b rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x30f2e88d rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x33d6fdb4 rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x48bad2cc rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x56a18896 rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5f11e9c6 rt2x00usb_kick_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x678c71ad rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6bc296dc rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6daf9b12 rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x73d3ff60 rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa7f4d709 rt2x00usb_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc707f387 rt2x00usb_kill_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdcaaebc0 rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x01a73209 wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x7bdb22c3 wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xa5e9da02 wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x367efc01 wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x6a05c8e9 wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x8e47cdf0 wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x9bdf3252 wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xeacd72c2 wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x97f67247 pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xcc79462b pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xf3e5418f pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x235293e2 wm8350_register_regulator
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x68446463 wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x9fb03afd wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xbeea0a95 wm8350_register_led
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe50dcb97 wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xf50fcffa wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xfaa2218b wm8400_register_regulator
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4f47b2e6 fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x046759ac iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x086182d5 iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x08fceabe iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0cca8c96 iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0ccc8a47 iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0f6cc433 iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1715c37b iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x17449c04 __iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1b3bd2d5 iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1b64f738 iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1c7a8d2b iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x304be458 iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3844f50f iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3c8b4f6d iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x407c5649 iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6ae30405 iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9121d56b iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x92cf3a3e iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x93f548a8 iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x95567e54 iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa0468acb iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa43f60ba iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xafafefa7 iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb6250d77 iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb9ac9114 iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xba3d2e3c iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbda7bf0b iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbfafd694 iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc02c8794 iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc30cc73d iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc459d558 iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc538135b iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdb58d0a3 iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe0d75d03 __iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe14bda21 iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe740d3aa iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe97ff535 iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf188506e iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4e0a6e1 iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf79b6c0e iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf80af882 iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfee4eb86 iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x249164a1 iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x29141ec6 iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x33a93df4 iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x39c51128 iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5d7e2bf3 iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x624c2d19 iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa30ab902 iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb9fe28e9 iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbffe6d4e iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc410187f iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd0795be6 iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd09a1779 iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd8bfd365 iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd923f90c iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe6a736a6 iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xea259c00 iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x015d5aca sas_target_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0ab12458 sas_register_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x14920787 sas_slave_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3ef9d1d0 sas_unregister_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x53d75089 sas_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5e4aa35a sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6508f84e sas_domain_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6af63e72 sas_find_local_phy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x79377913 sas_ioctl
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7f755838 sas_change_queue_type
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7fb73531 sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x84cd6972 sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8b472b69 sas_request_addr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x93ddf099 sas_eh_bus_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa8a7d7db sas_domain_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaf072661 sas_slave_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcb3bc7af sas_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcff26a22 sas_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd4df95bd sas_phy_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd6acd667 sas_ssp_task_response
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd6e4fe91 __sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xea7e1584 sas_phy_enable
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xed666b0e sas_bios_param
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x081274c5 scsi_tgt_cmd_to_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x81312170 scsi_tgt_free_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8b02665f scsi_tgt_alloc_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9e73ba4e scsi_host_put_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xa0e07c60 scsi_tgt_tsk_mgmt_request
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xda3dd466 scsi_tgt_it_nexus_create
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xea47b1d5 scsi_host_get_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xff1b5a27 scsi_tgt_it_nexus_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xff6d6fc4 scsi_tgt_queue_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x093e5171 iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2107af46 iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2640e247 iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2aa7ca30 iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3480cba0 iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x46e14f73 iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x53a5d096 iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6ea697ac iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6eacad0f iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x75b150db iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x77316e97 iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x86e22df2 iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x918bd3ec iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa727b945 iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaae8b8a9 iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd2faabe4 iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdcf6dbc5 iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe02ddee3 iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe17da8ba iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf7299fd9 iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfbea43b4 iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfd647e8d iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x33722bb0 sas_enable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x918ad6d2 sas_tlr_supported
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x94dff1a5 sas_disable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd44b2057 sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x092e1813 srp_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1de15419 srp_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x52ee5a22 srp_remove_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x6791c20d srp_rport_del
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xd7740c4b srp_rport_add
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x13eac679 spi_bitbang_start
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x32172a02 spi_bitbang_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x47ed3d08 spi_bitbang_stop
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x4be9624f spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xb2580fba spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xbf375d52 spi_bitbang_setup
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x81098ce9 st_register
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x7e55ec13 tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xd30b9616 tm6000_get_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xf2a17c02 tm6000_set_reg
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x206ebccd usbip_dump_urb
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x33a84063 usbip_stop_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x375e63f0 usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x3d3aa9a7 sockfd_to_socket
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x45b5f677 usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x76279c5d usbip_stop_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7e796334 usbip_start_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x86e0bcd1 usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x87e67cfd usbip_task_init
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x913ece36 usbip_event_add
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x929dfa47 usbip_event_happened
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbe3ead3a usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xceb09928 usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1538830 dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xfda0fee0 usbip_start_eh
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x5dd7a142 __uio_register_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x82ceca24 uio_unregister_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xb9dd936b uio_event_notify
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x3ea78339 usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x9141bfc6 usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x10ba085d usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x38cf28ef usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x43adb2eb usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x60232e86 ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x815deb9f usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xbf391baf usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xda690f00 usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xda81aab3 usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xea7aac2c usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0030465e ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x17380469 usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x194cf100 usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x229321f9 usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x274af307 usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2cffdc5f usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3c45c778 usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x59b58e89 usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x74d6891c usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7c80a59a usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7f6a6a13 usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8343bb93 usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x85d41139 usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x981b8bfe usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9ce8d049 usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa420c9e9 usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa4756655 ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbb67d8ed usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc781eb18 usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0dee3888 usb_stor_ctrl_transfer
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0f37f416 usb_stor_CB_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x33dbe11e usb_stor_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3ae9184f usb_stor_clear_halt
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3fe5a9be usb_stor_post_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x444530f1 usb_stor_Bulk_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x577ea538 usb_stor_reset_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x70e5dc37 usb_stor_control_msg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x75383760 usb_stor_transparent_scsi_command
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x782f6d96 usb_stor_bulk_transfer_sg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x846e0c93 usb_stor_probe1
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x85f5f6da usb_stor_Bulk_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9157954e usb_stor_bulk_srb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa6723afd usb_stor_CB_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa84ba4cd usb_stor_bulk_transfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc207d457 usb_stor_access_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc745bbf1 fill_inquiry_response
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xccd53e40 usb_stor_probe2
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcd5ad485 usb_stor_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xce8ef100 usb_usual_ignore_device
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd5eaad9c usb_stor_suspend
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xee99448a usb_stor_pre_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfbaf95f0 usb_stor_set_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x164f9b1d wa_urb_dequeue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x19341023 wa_urb_enqueue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x527cdc5e __wa_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5d93b979 wa_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xfca36082 rpipe_ep_disable
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0145407b wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x02ddee21 wusbhc_rh_control
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0998e346 wusbhc_b_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x159907d1 wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4aff2c72 wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x553c3a11 wusbhc_handle_dn
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5cfb27b4 wusbhc_rh_suspend
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x86eede96 wusbhc_rh_resume
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa2673828 wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcc328579 wusbhc_chid_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xda8a77c1 __wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xde68a1dd wusbhc_b_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xecdef66f wusbhc_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf5b7f811 wusbhc_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf6564214 wusbhc_reset_all
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf9c6687c wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x0d9ac399 i1480_rceb_check
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x5a3a3bd4 i1480_fw_upload
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xaadd58d1 i1480_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x01aa41d1 uwb_phy_rate_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x070e041e uwb_rts_cts_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x329c78a3 uwb_ack_policy_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x3898490f uwb_ack_policy_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x88b3f687 uwb_pca_base_priority_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd06997e1 uwb_phy_rate_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe307e93f uwb_rts_cts_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe6b83119 uwb_pca_base_priority_show
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x035d4f99 uwb_notifs_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x08ea647a uwb_rc_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0e50136b uwb_est_find_size
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x133ce862 uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x156e0eda uwb_rc_put
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1b274862 uwb_dev_for_each
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x22757cb7 uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x23442fca uwb_rc_vcmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x264665e8 uwb_rsv_accept
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x26d87483 __uwb_rc_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x34a3e53b uwb_rsv_terminate
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3baa5faf uwb_dev_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x563dcb0a uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5a899194 uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e08715a uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x646e2e12 uwb_rc_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6609633d uwb_radio_start
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x67286715 uwb_rsv_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7c0df8d6 uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7cc7fb7f uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7ee548c6 uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8577d46b uwb_rsv_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8b604e17 uwb_rc_post_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9595d2b3 uwb_rc_neh_error
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9df22164 uwb_radio_stop
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa3fc44d4 uwb_pal_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa62ab0f8 uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xadf6af8b uwb_rsv_establish
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcb915643 uwb_rc_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd21c1e57 uwb_pal_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdb490e83 uwb_notifs_deregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdbc82d3d uwb_pal_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe7c3d15f uwb_rc_ie_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xecb8c774 uwb_rsv_modify
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xed58d7c8 uwb_rc_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf03cdff7 uwb_rc_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf08c843b uwb_rc_alloc
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0c6e33a7 wlp_neighborhood_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x116d6d24 wlp_dev_prim_category_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x270c5612 wlp_dev_prim_OUI_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2fccf7b7 wlp_dev_manufacturer_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x42273ae8 wlp_dev_prim_subcat_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x42d0b2ba wlp_wss_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x458ab41b wlp_dev_prim_OUI_sub_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x462dc266 wlp_uuid_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x576c0e32 wlp_dev_manufacturer_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x58223498 wlp_receive_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5edf3f08 wlp_dev_prim_subcat_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x68d57ceb wlp_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6c28a89b wlp_wss_activate_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7afdc533 wlp_dev_model_nr_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7f7d6653 wlp_dev_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x81879b1e wlp_dev_prim_OUI_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x86dd7b6e wlp_dev_model_nr_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8713ec9b wlp_dev_prim_category_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8947f462 wlp_uuid_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x91490f0f wlp_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x951e413f wlp_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9c5893bf wlp_wss_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9ced12fe wlp_dev_serial_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa1b186f7 wlp_eda_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb738c108 wlp_dev_model_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xbccfaac8 wlp_eda_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc1d744f9 wlp_dev_model_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd1e5c09d wlp_dev_serial_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe132dc07 wlp_prepare_tx_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe748c363 wlp_wss_activate_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe9dfeb8b wlp_dev_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xeddd5a48 wlp_dev_prim_OUI_sub_store
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x229e1430 ili9320_probe_spi
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x34190eb3 ili9320_resume
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3936f3d1 ili9320_write
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x467b94e3 ili9320_shutdown
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x4cd3e4c2 ili9320_write_regs
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x71f5db0a ili9320_suspend
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x862b8ff8 ili9320_remove
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xb36a272c fb_sys_read
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xf812d3ec fb_sys_write
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x1590ecb4 w1_next_pullup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x25a43f88 w1_reset_bus
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x6d0cc406 w1_read_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x96ce2ac8 w1_reset_select_slave
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x98032b6c w1_read_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xefe9ffd6 w1_touch_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xf10f2fca w1_write_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xf63ade57 w1_write_block
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x35352fa3 dlm_posix_get
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc3a9d0e5 dlm_posix_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xe0822c1e dlm_posix_unlock
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x12386cdd exportfs_encode_fh
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xae98c87e exportfs_decode_fh
+EXPORT_SYMBOL_GPL fs/fat/fat 0x028bae26 fat_time_unix2fat
+EXPORT_SYMBOL_GPL fs/fat/fat 0x0d7e97b4 fat_setattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x0ead0da4 fat_remove_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x2777f169 fat_add_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x2b4a4b4f fat_detach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x33f80bb0 fat_getattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3afebeb7 fat_attach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x50f751bf fat_flush_inodes
+EXPORT_SYMBOL_GPL fs/fat/fat 0x5f45b3b9 fat_build_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0x7fd44377 fat_search_long
+EXPORT_SYMBOL_GPL fs/fat/fat 0x87d928e8 fat_fill_super
+EXPORT_SYMBOL_GPL fs/fat/fat 0x9330bf01 fat_free_clusters
+EXPORT_SYMBOL_GPL fs/fat/fat 0xaf2ed58b fat_sync_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xb0adafaf fat_dir_empty
+EXPORT_SYMBOL_GPL fs/fat/fat 0xbccc07f3 fat_scan
+EXPORT_SYMBOL_GPL fs/fat/fat 0xbe8cefa0 __fat_fs_error
+EXPORT_SYMBOL_GPL fs/fat/fat 0xe4f65896 fat_alloc_new_dir
+EXPORT_SYMBOL_GPL fs/fat/fat 0xef53a8b6 fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x37d32765 nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa1ee94e2 nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc7d2bd75 nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf44384ae nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf8732c8f nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x706c8b97 nfsacl_decode
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x9b27070f nfsacl_encode
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2356b998 o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4bcc690c o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x98498e1f o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x990619f0 o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa735c67c o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xca212a1d o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xef38c870 o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x308dc5c8 dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5973be2c dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb213d2d7 dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe21506ba dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe29dc8aa dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfec94a04 dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7213c5b8 ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xcff27785 ocfs2_plock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xf1321ef9 ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs
+EXPORT_SYMBOL_GPL net/802/garp 0x4b3c6ddf garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0x5af6d63f garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0x767753a2 garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0x77a0a865 garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x8e888bfc garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x9321f785 garp_request_join
+EXPORT_SYMBOL_GPL net/802/stp 0x01bb0c87 stp_proto_unregister
+EXPORT_SYMBOL_GPL net/802/stp 0x8e5dee9a stp_proto_register
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xf8afa5dd ax25_register_pid
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x879794f8 bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x00d72d00 dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x075fb220 dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0edd021b dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x204e37e1 dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x219940bf dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x24dd5721 dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x260493c7 dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2e737887 dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x34075644 inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c81d197 dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3cb5ab17 dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4 dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4eafd17f dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x74e1289b dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7f791022 dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x83a86f39 dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86ea4bd3 dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8ee44111 dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8f01b734 dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9cad186e dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa84a897d dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb8700d9d dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe620999 dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe6becb8 dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf88c97f dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc5f737db dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc6e9946e dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xcb0971c6 dccp_insert_option_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xcb5c0a9b dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xccc485c4 dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd4a04b4c dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xddea6ccb dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf18c041b dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf39b96ed dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x20755e64 dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x57826369 dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa63be5ea dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa63effee dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb130b9f5 dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xdec1271c dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x47e27260 arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xd5f304a2 ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x80b2764b nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x111bdd6c nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x204a8e01 nf_nat_proto_find_get
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x5eab786a nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x63f0da09 nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xb70b3c30 nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbb73b71f nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xdb29f6a1 nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe21fb81f nf_nat_proto_put
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x0b7711a4 tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x27124fd1 tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x2ba10f74 tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x490a352b tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xe5d853ae tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x829ca985 ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0cf3f8db l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0e81b860 l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x334664cd l2tp_tunnel_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3d386078 l2tp_tunnel_closeall
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6afb5533 l2tp_udp_recv_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6f71a190 l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x75302d45 l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8309424a l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x88e22289 l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9a850459 l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9b00ed82 l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9f014e1d l2tp_xmit_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa1fbe43a l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa32e3e51 l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc0e95213 l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xddead557 l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdf6d0b7d l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4773327c ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x551f15b2 ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xbc580200 ieee80211_find_sta_by_hw
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x013d5f5c nf_conntrack_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02c2b7d1 nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x05f9b656 nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x07838324 nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x093f3270 nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x11d97629 nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x132a6bc3 nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x13bbcaed nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x187005bc nf_ct_unlink_expect
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1d3fbfec __nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a4612cc nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30f4d553 nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3320e09c nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34834f7b nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3605076c nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3a73a748 print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3af7522e nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f7fecaa nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4398a5c2 nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x480a8530 nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x50f502ae nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5190bdf3 nf_conntrack_untracked
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x59864fa3 nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5edee0e6 __nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62c3602c nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65d98218 nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x681c2638 nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x69a0e225 nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x72adf704 nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x72bec2af nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7376551d nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7cc3eaca __nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x81706b6a nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8a322065 nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8bbbbaf1 __nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8db4d9b5 nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f88bd01 nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x94118089 nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x967389e7 nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a59b03c nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9ee84b75 nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa1780bcf nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa360d01c nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6a4124a nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6b6ce10 __nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb98cab93 nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbc681c19 nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca31c453 nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca76824b nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcc1c3ae8 seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcc729157 nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xce0103f5 nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd00a03e8 __nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdcda1517 nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdcdf438a nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdce55f5d nf_expect_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf29dccc nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf2f7c6f3 __nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf3edea67 nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfbc190ae nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfbfc45e2 nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffd02da3 __nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x606dba11 nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x5a86a28d nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x03f7c73f nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1959a2cc nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x27b2b246 get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x80f46f8e set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x81637006 set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8a521c85 set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xaa05d6d2 nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc6e3fd32 nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd94bad39 set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe6336076 nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x665f01be nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x00508542 nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x3043518a nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x418e86fe nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb4604a06 nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x144b1dd1 nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xa672a5fe nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x13b6f999 ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2ece299c nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x39dced0c ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4a59835b ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4f163753 nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x76345b0a nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7fd21505 nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8cee95c6 ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb752c3ac ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc68cd06a nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc7609362 nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xeb2e79d5 nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf6c1b64f ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x7ef4824f nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x77cedb20 nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xb2d76fdc nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x128f6b1d nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x50f67c26 nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x51da3fc0 nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7754977d nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdf0050be nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf699802e nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xd1f11dc9 nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x123390cc xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x17728a1e xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b634f9e xt_info_locks
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x231da760 xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3b7bf9ea xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x43edb393 xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x672aab4d xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7d392d14 xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8924d777 xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8f49cd75 xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9db4e8da xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xad58d75f xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc12782a2 xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe719f17c xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x1c6d83da xt_rateest_lookup
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf1db4ae3 xt_rateest_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq
+EXPORT_SYMBOL_GPL net/rds/rds 0x05863f5a rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x12ef80ae rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0x20ad2cce rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x2439c664 rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0x288c96a7 rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x33dcd269 rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0x3956dadc rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0x3e3ce8bf rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0x3eeabc4b rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x3f2b76b7 rds_inc_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x5cd53598 rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x60f1670e rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0x6d6a8e13 rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0x6dea96e1 rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x812b3c0a rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x87a38ad3 rds_stats
+EXPORT_SYMBOL_GPL net/rds/rds 0x8a9467a7 rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0x931d19fe rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xa8ef0d31 rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0xab1d535b rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0xb33dca2e rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xc197a1da rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0xdcd924a0 rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0xffd8a09a rds_send_get_message
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x294507d1 rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xd959fb50 rxrpc_register_security
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x0944bd86 gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x447167d0 svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7a69d63c gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7fe06dd6 gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x91998f78 gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x982e0bd3 gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb90ad089 svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xbe61b42e gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc447f9f1 gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd5484c80 gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf3c4036c gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x007e0efc cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01180dca svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03f41e94 auth_unix_add_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x040ca5a7 rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x059089bd rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06933816 xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08caa728 svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x090ce0ad write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0aa79577 xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ce06bde xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d6bbf10 rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12d5e215 cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1319bc9e rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x154d559c rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1717eb45 rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b6e7bd9 rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1bb0201f rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1db29931 auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ec862f1 svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f6b09b5 rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fe8d969 svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20728938 __rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22e0b45f rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23fe99f6 rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28a372b9 auth_unix_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28efd8f6 put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29fc8319 xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b44ca79 rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2bb054b5 sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f0a17e7 rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3140e0f2 sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32813315 rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x348277e3 read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34a759ca xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cea16f0 rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e8c23d6 svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fd809e5 svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x400429e4 xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4307be7f xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44243a64 xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x447abb03 xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49a2e17e rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a3a21db rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4cb6452b svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d29a551 rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ecc7e99 svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f3c8ed3 xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5339f28d rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x539e5b10 svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54749202 svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58c048b5 svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c359187 svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d2c0cfa auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x611cd343 sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62084a38 rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63182059 xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64a054ed xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x663e3a96 xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x673fe95a xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69e19632 svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a528e76 rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7275787a xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7389ac64 rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74fe09cc xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76cf3c91 xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76ea455e svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79139453 rpc_queue_empty
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79a767b4 rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c252f5e svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7dca5b51 sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fa8495a svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80f6dc71 rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x839f4954 rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8868c34d svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cc81f57 cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f0e6480 rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x916a698a svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x917b6b3d svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x938afd30 svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94df4708 xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a211db0 xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a8500a2 svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b89751d rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ba5641b rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e22512b xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e875498 rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0ee4e81 xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0f12743 rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa30f99a3 auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4850e1e rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa49d3822 rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa87c322e rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8c2c96d sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xacbf3c35 rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae56271c svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb047eff5 rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0d994ae rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3e1a19d xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5330d03 xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5f51732 xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb608fe9e rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6829e1c xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6c54d32 xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbddd6469 xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf08ecb9 svc_sock_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc58dde46 xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6b77c02 svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6d850c1 rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc7172e42 svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8732551 xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca629c6e xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb310788 rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb595225 unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcdaf4e7f svc_sock_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee5eec1 rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf584a47 svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd260b26a svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd43d4c3e xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4978ed6 svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5eea426 rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd70ed70d rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8309c77 svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd887528b rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda1ae5b5 xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdab2d05b xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde6d119d xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde9e9079 rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfa167b6 svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3b7a348 xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4eaf03a svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe55927ed xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe79b42b5 rpc_exit_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0175627 auth_unix_forget_old
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf14cfa6c svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4ebf9e8 svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf502e7f5 svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7dcc050 rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa541a46 rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc4aa933 rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfcfb19c7 csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd6c7ac1 cache_check
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x01e3002b wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x0e22a464 wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x1407b851 wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x236bc216 wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x4533e9dc wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x4582cbac wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x54486a09 wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x5c50263d wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x961ec092 wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x9c94c67a wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xab59a6d9 wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xbb43069d wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xdfd4761e wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x02895a7d cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x069fc86d cfg80211_wext_siwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x06c7608f cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0ea3a3ef cfg80211_wext_giwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1c7cb7cf cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x252c6cbd cfg80211_wext_siwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x28506a11 cfg80211_wext_siwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x475c4aa9 cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4bf79bd2 cfg80211_wext_siwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x54b1ea69 cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x54eb5e09 cfg80211_wext_siwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x552019f7 cfg80211_wext_giwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x57e5bd7e cfg80211_wext_siwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5cbce4bf cfg80211_wext_giwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x65481e19 cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6da51899 cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x721897f7 cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x802be832 cfg80211_wireless_stats
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x90bec474 cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9a8ade3b cfg80211_wext_siwencodeext
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9f75eaae cfg80211_wext_siwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa34b60cf cfg80211_wext_siwmlme
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa6daa64f cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb58cb89e cfg80211_wext_giwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc2671e1a cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc3b6c98d cfg80211_wext_siwgenie
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc70a1107 cfg80211_wext_siwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd6332c23 cfg80211_wext_giwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdd8e3f29 cfg80211_wext_giwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdf763f2d cfg80211_wext_siwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xedf34337 cfg80211_wext_giwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf985f6d3 cfg80211_wext_giwessid
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x184e2051 ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x34cdc353 ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x5e5ae5d6 ipcomp_input
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc5bdbef9 ipcomp_init_state
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x5f38510b ad1836_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x9920aad7 soc_codec_dev_ad1836
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x4f66af39 soc_codec_dev_ad193x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xa6c03a89 ad193x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x065d4f01 soc_codec_dev_ad73311
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xc8744cf3 ad73311_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x676b146e soc_codec_dev_ads117x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x7871aa4c ads117x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0x6eeb0af6 soc_codec_device_ak4104
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x79d11c6c soc_codec_dev_ak4535
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xf93528b6 ak4535_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x216a33c0 soc_codec_dev_ak4642
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xaf182163 ak4642_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x0801de5a soc_codec_dev_ak4671
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x18644950 ak4671_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x3b67ecd2 cs4270_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x6567e746 soc_codec_device_cs4270
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x2ef672ef soc_codec_dev_da7210
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x6b5aa17b da7210_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x1eb0e590 max9877_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x1c4b153b soc_codec_dev_pcm3008
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xd733b3fd pcm3008_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0xc6681973 dit_stub_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x17fe10f0 soc_codec_dev_ssm2602
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x7ed49b64 ssm2602_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x9fc1e66f tlv320aic23_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xa981f691 soc_codec_dev_tlv320aic23
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x52587565 aic26_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x88b242d9 aic26_soc_codec_dev
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x2b16d109 aic3x_get_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x5409d2e3 soc_codec_dev_aic3x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x8aa025fe aic3x_button_pressed
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9e6366e6 aic3x_headset_detected
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xa1998f96 aic3x_set_headset_detection
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb570ecbd aic3x_set_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xc17d15cd aic3x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xc8fe46d4 soc_codec_dev_tlv320dac33
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xf913863e dac33_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x22f83f00 tpa6130a2_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x7753b7c4 twl6040_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xc7fcdd1d soc_codec_dev_twl6040
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x79cbfefd soc_codec_dev_uda134x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x4871c294 soc_codec_dev_uda1380
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x877397a9 uda1380_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x2f3cf225 wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xe1c429a9 wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xfdd8e6b0 wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xfb856da3 wm2000_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x0f581825 wm8350_mic_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x1290b665 soc_codec_dev_wm8350
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x5397e5d2 wm8350_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xc05b01d7 wm8350_hp_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x0b6ac36c wm8400_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x898c4c37 soc_codec_dev_wm8400
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x10859baf soc_codec_dev_wm8510
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x930e25f7 wm8510_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x24724dc4 wm8523_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x39ee7635 soc_codec_dev_wm8523
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x1f54a020 soc_codec_dev_wm8580
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x9881696e wm8580_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x1a77f12f wm8711_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xa3976265 soc_codec_dev_wm8711
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xf78b7bba soc_codec_dev_wm8727
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xfdc608af wm8727_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x0c90ba7a wm8728_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x70136775 soc_codec_dev_wm8728
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x8de8e006 wm8731_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xa013b60b soc_codec_dev_wm8731
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x25640699 wm8750_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xbd85fbf8 soc_codec_dev_wm8750
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x082b870c wm8753_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x96a8a83b soc_codec_dev_wm8753
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xe85b8810 soc_codec_dev_wm8776
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xea5c7370 wm8776_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x5b914e20 soc_codec_dev_wm8900
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x62d63b0c wm8900_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x70bc1de3 soc_codec_dev_wm8903
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xa10bdd70 wm8903_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xe44249a2 wm8903_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x3ffd8b24 soc_codec_dev_wm8904
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xf947791a wm8904_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x5c98e6fc soc_codec_dev_wm8940
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x96991f1f wm8940_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x202d788e soc_codec_dev_wm8955
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x60238518 wm8955_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x01060e36 wm8960_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x5f1c3292 soc_codec_dev_wm8960
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x460703d3 soc_codec_dev_wm8961
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xca5add93 wm8961_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x47c569e4 soc_codec_dev_wm8971
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x6c2dd627 wm8971_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x3ab29da1 soc_codec_dev_wm8974
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x3ce04794 wm8974_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x4b2287ef wm8978_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x9607d2ad soc_codec_dev_wm8978
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x9d5b9590 soc_codec_dev_wm8988
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xbd6af706 wm8988_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x544075af soc_codec_dev_wm8990
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xf74e7edf wm8990_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x71da0c71 wm8993_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x7f6d266c soc_codec_dev_wm8993
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x302cb0ab soc_codec_dev_wm8994
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x464430d2 wm8994_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x55ee5b55 wm8994_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x0cf148e3 soc_codec_dev_wm9081
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x9251a9a6 wm9081_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x14281395 soc_codec_dev_wm9090
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x2474e9d5 xv_get_total_size_bytes
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x322a65d3 xv_malloc
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6931db78 xv_free
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x9092cdbb xv_create_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xf5cdafcf xv_destroy_pool
+EXPORT_SYMBOL_GPL vmlinux 0x001ee1e9 led_trigger_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x0029e3fc spi_alloc_master
+EXPORT_SYMBOL_GPL vmlinux 0x00362ffe usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x006366e4 register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis
+EXPORT_SYMBOL_GPL vmlinux 0x00899a31 __root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init
+EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x011b059e add_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x0175ea88 rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0x017c71ec crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0x01839cf7 usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0x0199013f elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x01ce6e87 sdio_writew
+EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x01ef1648 blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x022f5013 cpuidle_disable_device
+EXPORT_SYMBOL_GPL vmlinux 0x0257b5c3 dm_rh_recovery_end
+EXPORT_SYMBOL_GPL vmlinux 0x02937346 fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0x02c20a25 usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x02dba49d usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0x02e85655 sdio_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x031709da ata_std_bios_param
+EXPORT_SYMBOL_GPL vmlinux 0x033eb2c9 hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x035fd4f6 unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0x03a9c0ad blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread
+EXPORT_SYMBOL_GPL vmlinux 0x041cffba get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x04a5197f scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x04b6fbec fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x054836d2 generic_detach_inode
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x0586ae57 sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL vmlinux 0x058ab69d ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x05b3ddb9 register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x05d45c6f cpufreq_cpu_get
+EXPORT_SYMBOL_GPL vmlinux 0x05ea3393 dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL vmlinux 0x05f5db71 dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x062c818f omap_dm_timer_set_match
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x0679aa55 hrtimer_start
+EXPORT_SYMBOL_GPL vmlinux 0x0699a288 map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x06aa4e1a platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0x06b44168 crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x0707b822 ata_dev_disable
+EXPORT_SYMBOL_GPL vmlinux 0x073378df ata_sff_exec_command
+EXPORT_SYMBOL_GPL vmlinux 0x078bd4ea fuse_request_send
+EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x08273701 ata_sff_postreset
+EXPORT_SYMBOL_GPL vmlinux 0x08685387 inet_diag_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x086b8b35 destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x086ed566 inotify_find_update_watch
+EXPORT_SYMBOL_GPL vmlinux 0x08718145 ata_sff_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x087eba15 cpuidle_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x088b7e2b sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0x093b9267 led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL vmlinux 0x0983c659 dm_rh_dec
+EXPORT_SYMBOL_GPL vmlinux 0x098a95a6 omap_dm_timer_set_prescaler
+EXPORT_SYMBOL_GPL vmlinux 0x09933756 pm_generic_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x099bd7d1 tracepoint_iter_stop
+EXPORT_SYMBOL_GPL vmlinux 0x09e4e131 crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0x0a05f274 ring_buffer_overruns
+EXPORT_SYMBOL_GPL vmlinux 0x0a0fdf74 rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x0a1c0324 inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x0a59c5fb ata_sff_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0x0a73613c snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL vmlinux 0x0a8464fd ata_do_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x0a98692f ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x0aa5c209 adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b11cdeb usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0x0b5803ee snd_soc_register_codec
+EXPORT_SYMBOL_GPL vmlinux 0x0c1b1232 ata_scsi_simulate
+EXPORT_SYMBOL_GPL vmlinux 0x0c23e4c0 inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c7cf86e crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0x0cb23d75 device_del
+EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL vmlinux 0x0cd4f929 attribute_container_find_class_device
+EXPORT_SYMBOL_GPL vmlinux 0x0ce6a715 adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x0ce78641 ata_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x0cf53121 inotify_init
+EXPORT_SYMBOL_GPL vmlinux 0x0d756a14 __cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x0df885fb ata_sff_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x0e226ae6 scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x0e6e9cf7 generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0x0e754f44 cpuidle_get_driver
+EXPORT_SYMBOL_GPL vmlinux 0x0e8cf66c task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x0e9dcad6 sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0x0ea5eee0 sdhci_free_host
+EXPORT_SYMBOL_GPL vmlinux 0x0ecf438e crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x0efaf615 bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0x0f082fc5 snd_soc_get_volsw_2r
+EXPORT_SYMBOL_GPL vmlinux 0x0f65b8ef tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x0f820104 snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL vmlinux 0x0f969c42 i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL vmlinux 0x0fa4f57e device_register
+EXPORT_SYMBOL_GPL vmlinux 0x0ff4fa8b hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0x100dba84 scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x107a238d xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0x10e5b741 snd_soc_limit_volume
+EXPORT_SYMBOL_GPL vmlinux 0x110a093c klist_init
+EXPORT_SYMBOL_GPL vmlinux 0x111fe402 ata_cable_ignore
+EXPORT_SYMBOL_GPL vmlinux 0x11312201 pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0x113c8c98 wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x113e6576 do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x114815d3 bsg_unregister_queue
+EXPORT_SYMBOL_GPL vmlinux 0x115f757c snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL vmlinux 0x116a5755 crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0x12a30954 scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0x12ce62ff device_add
+EXPORT_SYMBOL_GPL vmlinux 0x1316eacc blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x1359a4ef __pm_runtime_get
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13d2e5ca snd_soc_new_pcms
+EXPORT_SYMBOL_GPL vmlinux 0x146528a2 pm_generic_restore
+EXPORT_SYMBOL_GPL vmlinux 0x1484e3fa crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x148a2501 transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid
+EXPORT_SYMBOL_GPL vmlinux 0x14a14eb8 register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x1545f4de register_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0x155af8ee snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL vmlinux 0x157af6b4 da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x15b8b28b usb_sg_wait
+EXPORT_SYMBOL_GPL vmlinux 0x15eaa43c ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0x16bf6548 noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x1710f152 sdio_enable_func
+EXPORT_SYMBOL_GPL vmlinux 0x17142764 ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x17879ede snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL vmlinux 0x17ad037d crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0x182f720e __get_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x18c5d505 ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL vmlinux 0x18cfd639 use_mm
+EXPORT_SYMBOL_GPL vmlinux 0x18e16b80 usb_match_id
+EXPORT_SYMBOL_GPL vmlinux 0x191f5c33 sysfs_remove_files
+EXPORT_SYMBOL_GPL vmlinux 0x192d19d2 wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x1947dc7d snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL vmlinux 0x19568921 da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0x19663606 snd_soc_info_volsw_2r
+EXPORT_SYMBOL_GPL vmlinux 0x199232b0 module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19afe847 get_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0x19e97689 sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x1a043cdb fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0x1a06c048 __inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x1a856289 debugfs_create_u64
+EXPORT_SYMBOL_GPL vmlinux 0x1a8894a1 security_inode_setattr
+EXPORT_SYMBOL_GPL vmlinux 0x1a9965aa ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x1b13ce9e devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0x1b1d7fd5 dm_rh_inc_pending
+EXPORT_SYMBOL_GPL vmlinux 0x1b278470 css_depth
+EXPORT_SYMBOL_GPL vmlinux 0x1b377f65 sata_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x1b853acd mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1ba7f603 scsi_register_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0x1bf96fee inet6_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x1c08690f platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x1c097c7b disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0x1c2b2911 bd_claim_by_disk
+EXPORT_SYMBOL_GPL vmlinux 0x1c42ebbe i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1ccd7798 ata_host_activate
+EXPORT_SYMBOL_GPL vmlinux 0x1ce9da70 rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0x1d12e88f regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0x1d323512 usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x1d907cf6 rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf
+EXPORT_SYMBOL_GPL vmlinux 0x1e0d5bd5 input_ff_upload
+EXPORT_SYMBOL_GPL vmlinux 0x1e46ae23 __inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0x1e702a04 setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart
+EXPORT_SYMBOL_GPL vmlinux 0x1e8114aa dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x1e844368 bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x1ed76f30 inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x1edb7347 __pm_runtime_set_status
+EXPORT_SYMBOL_GPL vmlinux 0x1f514c9f snd_soc_test_bits
+EXPORT_SYMBOL_GPL vmlinux 0x1f8712ef snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL vmlinux 0x1f8d26cb fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0x1fc8503c cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick
+EXPORT_SYMBOL_GPL vmlinux 0x1febd20d usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL vmlinux 0x20117eda omap_dm_timer_get_fclk
+EXPORT_SYMBOL_GPL vmlinux 0x205d4e25 blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0x2067e985 ata_sff_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0x20841458 crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20cb3689 eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0x20fa4f31 inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x214e7877 platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0x215ffa66 elv_register
+EXPORT_SYMBOL_GPL vmlinux 0x21a2371e __ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0x21d27337 default_mtd_writev
+EXPORT_SYMBOL_GPL vmlinux 0x2275ccbf regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x22ad8fd7 snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x22ec7163 snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL vmlinux 0x2340b917 crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x23a66d87 __blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x23be43e8 ata_cable_unknown
+EXPORT_SYMBOL_GPL vmlinux 0x2433a92f crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0x244e82a5 srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x248607ae crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x25204c4d kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x2541a979 snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL vmlinux 0x256219c0 pcap_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x25836ffc register_posix_clock
+EXPORT_SYMBOL_GPL vmlinux 0x25b8b8d3 klist_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x25c5ed01 __ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x25ee1917 ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x2610b7c6 queue_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x2629347e scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0x26352fdc debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x2655bd4b __i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0x265f2c52 md_allow_write
+EXPORT_SYMBOL_GPL vmlinux 0x269aed26 disk_map_sector_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x26a76e1b crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x26d39b14 rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0x27121d4b inotify_add_watch
+EXPORT_SYMBOL_GPL vmlinux 0x2719eb21 rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL vmlinux 0x273b76e9 wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x273c6711 fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0x276da48a usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0x278a4df0 crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x27c37589 securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x27e21222 class_dev_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x27e8c2ea ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range
+EXPORT_SYMBOL_GPL vmlinux 0x28149625 dm_dispatch_request
+EXPORT_SYMBOL_GPL vmlinux 0x2821a782 wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x285d70a9 fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x29189bc0 tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0x297f5990 device_rename
+EXPORT_SYMBOL_GPL vmlinux 0x29a4c37b eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0x29c36657 device_move
+EXPORT_SYMBOL_GPL vmlinux 0x29d76e4c fsnotify
+EXPORT_SYMBOL_GPL vmlinux 0x29f0f62a bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x2a04dbe2 crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x2a20a928 spi_unregister_master
+EXPORT_SYMBOL_GPL vmlinux 0x2a2f6d98 snd_soc_get_volsw
+EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result
+EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array
+EXPORT_SYMBOL_GPL vmlinux 0x2ab76a60 __fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0x2afc2e6a wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x2afe1967 platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2b16c628 usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x2bbebea3 show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0x2bf2fec8 i2c_new_dummy
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c2da2aa device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x2c4b8c67 adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x2c568114 usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0x2c6fbf5e driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x2c79fc2a regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2d043189 crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x2d5c8729 dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL vmlinux 0x2d7bfd85 snd_soc_register_dai
+EXPORT_SYMBOL_GPL vmlinux 0x2d7c7ba0 br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0x2e280f9e rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x2e2982cd ipv6_find_tlv
+EXPORT_SYMBOL_GPL vmlinux 0x2e2e5427 sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e4f8117 ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0x2e867539 crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0x2e8e6565 sata_scr_valid
+EXPORT_SYMBOL_GPL vmlinux 0x2e8f7d98 ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0x2e939676 sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2eb1fe5b crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x2ed9efbd usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x2ef359c2 inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0x2f14b683 __blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x2f1e1c38 transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x2f464ce2 debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table
+EXPORT_SYMBOL_GPL vmlinux 0x2f8be607 device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x2fd73e77 blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x302756af single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x3056ae1b tracepoint_iter_start
+EXPORT_SYMBOL_GPL vmlinux 0x308ff9a9 srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x30f61be1 regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x310579a5 tty_find_polling_driver
+EXPORT_SYMBOL_GPL vmlinux 0x311d2d3c securityfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x313424d7 debugfs_create_u32
+EXPORT_SYMBOL_GPL vmlinux 0x31624879 debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x31679f39 power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x319838d2 get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0x31dd3ba1 snd_soc_register_dais
+EXPORT_SYMBOL_GPL vmlinux 0x31de6218 ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x31eaf80d cpufreq_register_governor
+EXPORT_SYMBOL_GPL vmlinux 0x31ee23f3 devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0x32054794 class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x320a219f usb_hc_died
+EXPORT_SYMBOL_GPL vmlinux 0x320fb401 dm_unregister_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0x32337fc3 bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0x3234b6cd sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x32c906ea usb_set_device_state
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x32e8501e __mtd_next_device
+EXPORT_SYMBOL_GPL vmlinux 0x3308048d dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0x3321b05f sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0x336e065e blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x338a8eb7 usb_store_new_id
+EXPORT_SYMBOL_GPL vmlinux 0x338cdde0 hwmon_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x33be8e5a crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x341643ba omap_dm_timer_modify_idlect_mask
+EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x348024ed usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0x34828602 register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0x3486bb5b tty_put_char
+EXPORT_SYMBOL_GPL vmlinux 0x348ec8ba snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0x348f76eb blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x34c26c11 driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x34ec3316 snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL vmlinux 0x351afca4 ata_eh_qc_retry
+EXPORT_SYMBOL_GPL vmlinux 0x3533e27e twl4030_dai
+EXPORT_SYMBOL_GPL vmlinux 0x35445ae1 find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0x3554cc03 usb_bus_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x3601b723 __inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0x36210ddc sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x362dc508 dm_rh_dirty_log
+EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0x36aa38f4 firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x36c511e2 get_driver
+EXPORT_SYMBOL_GPL vmlinux 0x36e21509 vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x36f1f519 do_add_mount
+EXPORT_SYMBOL_GPL vmlinux 0x371b4fae sdhci_resume_host
+EXPORT_SYMBOL_GPL vmlinux 0x371e75e6 nand_scan_tail
+EXPORT_SYMBOL_GPL vmlinux 0x3769ab0c klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x376caeeb page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x37f900db device_create
+EXPORT_SYMBOL_GPL vmlinux 0x37fb623a generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x380852ef snd_soc_free_pcms
+EXPORT_SYMBOL_GPL vmlinux 0x38264457 get_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x3868e998 usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x38a25f01 sdio_writeb
+EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x38e357f8 shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x392c7132 rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x39a84c7b omap_dm_timer_set_pwm
+EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x39fe446c ata_sas_port_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x3a00160b dm_kill_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3a5915c6 fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0x3a9a5a81 omap_dm_timer_write_counter
+EXPORT_SYMBOL_GPL vmlinux 0x3aecf57f usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x3b348586 platform_device_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x3b42abf4 sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x3b605e1f wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0x3b7952ef input_ff_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x3bafffcd sata_scr_write_flush
+EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3bf272e0 dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL vmlinux 0x3bf474a1 ata_eh_freeze_port
+EXPORT_SYMBOL_GPL vmlinux 0x3c1bf5a3 anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3c62f843 debugfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x3c76717a udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3c9ccf14 sdhci_suspend_host
+EXPORT_SYMBOL_GPL vmlinux 0x3cbef542 platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3ce31236 perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x3cf18dff regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x3d26cb3a snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL vmlinux 0x3d33d0eb sysfs_notify_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3d5ccbfb usb_driver_set_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x3d6acf4d ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL vmlinux 0x3db91586 scatterwalk_done
+EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x3dd777a2 page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0x3dda3da9 crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x3de97956 omap_dm_timer_read_status
+EXPORT_SYMBOL_GPL vmlinux 0x3df3961a class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3e178b54 key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0x3e4df86f inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x3e810b90 regulator_put
+EXPORT_SYMBOL_GPL vmlinux 0x3eaf8969 inotify_remove_watch_locked
+EXPORT_SYMBOL_GPL vmlinux 0x3ebad122 crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0x3ec74cd9 sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x3ed25ce8 xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0x3ed9cfa0 hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL vmlinux 0x3ef25e11 snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL vmlinux 0x3f210e75 thread_notify_head
+EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register
+EXPORT_SYMBOL_GPL vmlinux 0x3f5bc7f0 power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL vmlinux 0x3f5cb8c1 usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0x3f7f4cea sata_std_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x3ffb63af crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x4040e424 snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL vmlinux 0x406e30df sdio_release_host
+EXPORT_SYMBOL_GPL vmlinux 0x4095a1a6 tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x40ad98eb blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL vmlinux 0x40b12422 ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x40eecafc ip6_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x40f612f7 hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x40f6f364 sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0x40faa828 kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x4154b51a snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0x4158539b sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x41e7ec73 ata_sff_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x423b0dc7 free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active
+EXPORT_SYMBOL_GPL vmlinux 0x428b1bf0 disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x42e0f4f0 regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x42e6c742 snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x42f15ed5 sysdev_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x42f332f3 pm_request_resume
+EXPORT_SYMBOL_GPL vmlinux 0x42fe4c06 skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x432d993f inotify_init_watch
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x4336616e ata_host_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x433a83c6 sdio_memcpy_toio
+EXPORT_SYMBOL_GPL vmlinux 0x433cda13 ata_sff_pause
+EXPORT_SYMBOL_GPL vmlinux 0x4367a18f rtnl_kill_links
+EXPORT_SYMBOL_GPL vmlinux 0x43cf9cf1 led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL vmlinux 0x44278d78 ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0x442fde69 find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x445af0f3 trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x447021f6 tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x44e4359d ata_sas_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x45199e2e snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0x453f3b33 relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0x455a0d1d lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list
+EXPORT_SYMBOL_GPL vmlinux 0x45934364 blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0x45a49a97 scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0x45aa05db crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x45b177e4 gpio_export_link
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45f936f9 inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x45fffaf1 add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL vmlinux 0x4623ef8d ip6_dst_blackhole
+EXPORT_SYMBOL_GPL vmlinux 0x4623fbe3 ata_do_dev_read_id
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x47527467 led_trigger_show
+EXPORT_SYMBOL_GPL vmlinux 0x4766738a dapm_reg_event
+EXPORT_SYMBOL_GPL vmlinux 0x4770cfa6 usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0x47989557 get_sb_mtd
+EXPORT_SYMBOL_GPL vmlinux 0x47a0f8d7 spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0x47cebc4a sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0x484969ea cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL vmlinux 0x48601fad device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size
+EXPORT_SYMBOL_GPL vmlinux 0x49532c10 relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0x4971d501 inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x4979c17d sata_pmp_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue
+EXPORT_SYMBOL_GPL vmlinux 0x49a40e02 omap_dm_timer_stop
+EXPORT_SYMBOL_GPL vmlinux 0x49e6fb30 unregister_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0x4a6b8b1f eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0x4ad13af7 pcap_adc_async
+EXPORT_SYMBOL_GPL vmlinux 0x4b452bc4 omap_mcbsp_dai
+EXPORT_SYMBOL_GPL vmlinux 0x4b84b029 ab8500_read
+EXPORT_SYMBOL_GPL vmlinux 0x4bbb53d8 inotify_inode_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x4bef40f8 dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x4c20ecf1 crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x4c56fa55 fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0x4c62fcea ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c848371 tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0x4cda3367 pm_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x4cebd970 irq_to_pcap
+EXPORT_SYMBOL_GPL vmlinux 0x4cfe655b aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0x4d365804 crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0x4d6df436 get_device
+EXPORT_SYMBOL_GPL vmlinux 0x4da2a8ba pm_generic_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x4df76f53 ata_link_online
+EXPORT_SYMBOL_GPL vmlinux 0x4e256936 sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0x4e263ab6 da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0x4e43fc8c register_mtd_blktrans
+EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x4f0a31c1 ata_dummy_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x4f0de20e dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0x4f229916 aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x4fa2715b cpuidle_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x4fbe40a6 cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x4fc1dcb7 usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal
+EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array
+EXPORT_SYMBOL_GPL vmlinux 0x4ff5ae9f __wake_up_sync_key
+EXPORT_SYMBOL_GPL vmlinux 0x5054a325 usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x5075ec94 __set_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x50779245 deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x508a724d sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0x508f824c ring_buffer_read_finish
+EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched
+EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x5124743c ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0x512fe194 driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x517a58ce set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0x517e830a snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL vmlinux 0x51bb163c led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0x5229c2d5 wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x5252b790 device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0x5253849a dm_rh_recovery_start
+EXPORT_SYMBOL_GPL vmlinux 0x5266dc21 nand_release
+EXPORT_SYMBOL_GPL vmlinux 0x5267da6c reserve_pmu
+EXPORT_SYMBOL_GPL vmlinux 0x529d083e spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0x52f1ae77 proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0x5322f6d2 da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0x532aa065 ata_bmdma_status
+EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL vmlinux 0x53914e24 crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53be6780 sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x53d5774b usb_disable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x53dbfea7 tc35892_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x53eb1f1e crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0x541618eb tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0x542bf83c omap_dm_timer_trigger
+EXPORT_SYMBOL_GPL vmlinux 0x544b0af1 platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x54751d5e tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x54801cfd device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0x54821514 class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54991efe ring_buffer_resize
+EXPORT_SYMBOL_GPL vmlinux 0x54d3f12d nand_scan
+EXPORT_SYMBOL_GPL vmlinux 0x54d5ae58 tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0x55177d35 tracepoint_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x551e393d inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x5542b913 cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0x5597f120 md_do_sync
+EXPORT_SYMBOL_GPL vmlinux 0x55a071aa ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0x5629cdcc attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0x562cf740 snd_soc_jack_new
+EXPORT_SYMBOL_GPL vmlinux 0x562fa59c tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status
+EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after
+EXPORT_SYMBOL_GPL vmlinux 0x564fad12 securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen
+EXPORT_SYMBOL_GPL vmlinux 0x56728164 raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0x567ab863 fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0x56a2b2f2 crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x56e74a46 __cpufreq_driver_getavg
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x56fc9785 atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x57342554 omap_dm_timer_set_load
+EXPORT_SYMBOL_GPL vmlinux 0x574a5694 sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0x5754acb5 drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0x5798be50 sdio_readsb
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x57eb9928 pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0x5860bb90 skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x5894a2fe ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0x58c02688 inotify_inode_is_dead
+EXPORT_SYMBOL_GPL vmlinux 0x58d355a7 clockevents_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL vmlinux 0x594c1e2e vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0x59770f4c spi_register_master
+EXPORT_SYMBOL_GPL vmlinux 0x597edee3 pm_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0x599d0cb6 scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0x59ca4a40 crypto_alg_sem
+EXPORT_SYMBOL_GPL vmlinux 0x59d541d0 clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5a82b0eb snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL vmlinux 0x5a9159df class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x5a960c19 crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0x5abacbaa mtd_erase_callback
+EXPORT_SYMBOL_GPL vmlinux 0x5b079b19 unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x5b15a193 unregister_mtd_user
+EXPORT_SYMBOL_GPL vmlinux 0x5b4d1f77 sata_link_resume
+EXPORT_SYMBOL_GPL vmlinux 0x5b60facb blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x5b73eeb9 sdio_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x5beaad56 pm_generic_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5c164a5b crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0x5c3363b7 rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5c3ca181 eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x5c91254d ata_bmdma_start
+EXPORT_SYMBOL_GPL vmlinux 0x5cc0e3b3 ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0x5cdce219 dm_device_name
+EXPORT_SYMBOL_GPL vmlinux 0x5cdd9d43 sata_scr_read
+EXPORT_SYMBOL_GPL vmlinux 0x5cf82e9d nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table
+EXPORT_SYMBOL_GPL vmlinux 0x5d4a4572 ktime_sub_ns
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d87bc61 regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0x5d8d07cb snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5e39982e scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0x5e5a9244 perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0x5e786d6c regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5eb8a451 tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0x5ebb897d crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x5ed72044 unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x5edfb7c0 fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0x5ee17fad unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x5f30000e inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0x5f3076a7 pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x5f4dbc71 ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL vmlinux 0x5f5c0703 omap_dm_timer_set_int_enable
+EXPORT_SYMBOL_GPL vmlinux 0x5f7f2ca2 input_ff_create
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x600c24f1 dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3 synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x608723f8 kill_mtd_super
+EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x60c15e23 usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x60ce8c35 class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x61394c0b devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x614af7e6 usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x616d786a hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0x61c9e962 dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0x61cf3351 ata_eh_thaw_port
+EXPORT_SYMBOL_GPL vmlinux 0x6212c91f rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0x621e64af i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x6242176c crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x627ab29b tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep
+EXPORT_SYMBOL_GPL vmlinux 0x62b24ed1 set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0x62d4a3ff invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL vmlinux 0x636c002d fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x63c63000 vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap
+EXPORT_SYMBOL_GPL vmlinux 0x6418c5cf usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x642ab17d ata_sff_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0x64343127 usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0x646c7262 sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x6496718b unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x64a5a7d7 tc35892_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x64e1cb85 cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0x64f95e99 __crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x6519d3a3 ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0x656eaee8 ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x659a6334 file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0x659d282b snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL vmlinux 0x659f4416 crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65dfaf07 pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0x65f8b8a3 cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x6622de44 ezx_pcap_read
+EXPORT_SYMBOL_GPL vmlinux 0x662f3d8f ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x66703e0f sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0x6676f431 inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x6698942b gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x67040130 devm_kfree
+EXPORT_SYMBOL_GPL vmlinux 0x674a5d02 kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x675fd7a8 simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0x676c0d82 anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x679cfeb8 usb_string
+EXPORT_SYMBOL_GPL vmlinux 0x6824fa93 crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x682bc34a usb_bus_start_enum
+EXPORT_SYMBOL_GPL vmlinux 0x6863986e fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x68c40cc0 cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0x68e9fda6 release_pmu
+EXPORT_SYMBOL_GPL vmlinux 0x68f93e07 scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x69196861 sdio_disable_func
+EXPORT_SYMBOL_GPL vmlinux 0x6937f98d tracepoint_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x697cadbb __put_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0x6982e6cc usb_enable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x698cc33d blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0x6992b2bb usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x69d25a6e ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config
+EXPORT_SYMBOL_GPL vmlinux 0x6a1b74fa devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0x6a3b409a __pm_runtime_put
+EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x6a608714 led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0x6ab39206 snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL vmlinux 0x6ac218fe rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0x6adb5e39 inet6_destroy_sock
+EXPORT_SYMBOL_GPL vmlinux 0x6ae46b83 cpuidle_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b468b72 ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x6b55b630 usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x6b6d82ea snd_soc_update_bits
+EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low
+EXPORT_SYMBOL_GPL vmlinux 0x6ba51b58 snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL vmlinux 0x6c23a7aa register_mtd_user
+EXPORT_SYMBOL_GPL vmlinux 0x6c290a4e pm_runtime_allow
+EXPORT_SYMBOL_GPL vmlinux 0x6c2ba99a usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c682481 inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6c9c0c5f pm_generic_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x6ccc96c6 bus_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x6ce67b16 input_ff_event
+EXPORT_SYMBOL_GPL vmlinux 0x6d033f96 ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x6d0d642f dm_region_hash_create
+EXPORT_SYMBOL_GPL vmlinux 0x6d15ccd9 page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d30b988 skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0x6d32a65d synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0x6d71e1f6 sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x6d776195 crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x6db89356 wm8994_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x6df61dee debugfs_create_bool
+EXPORT_SYMBOL_GPL vmlinux 0x6e64d2e5 bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x6eaa8cdf class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x6ecbb0c1 init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x6f0ebbde unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL vmlinux 0x6f4f8898 bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x6f53e668 usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x6fa5c699 usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0x6fecede5 xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0x6ff0e2ff unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x70077535 usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr
+EXPORT_SYMBOL_GPL vmlinux 0x706c4761 vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL vmlinux 0x708276c3 fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x70e0e237 rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x70ea7f8b ata_sff_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x7104ac54 ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0x712ab5eb skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0x7150518a regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x7161fc32 netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x7198404f ata_slave_link_init
+EXPORT_SYMBOL_GPL vmlinux 0x71f1a167 crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x72994cab ata_sff_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0x729e17e4 ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0x72fe883e __srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0x730128ec fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0x7303bb28 snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0x730d456b skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0x733331eb inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x734f8e02 platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0x736057d8 fib_rules_cleanup_ops
+EXPORT_SYMBOL_GPL vmlinux 0x736ede5d dev_attr_unload_heads
+EXPORT_SYMBOL_GPL vmlinux 0x737e41ba rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0x7391e6c0 class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x73982ed7 wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports
+EXPORT_SYMBOL_GPL vmlinux 0x73baee72 bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0x73e25bb0 blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0x74280aea omap_dm_timer_request
+EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x7483ecd9 blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read
+EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register
+EXPORT_SYMBOL_GPL vmlinux 0x74af4399 platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74dca3ec usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x74f71d9b snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL vmlinux 0x7507ec41 omap_dm_timer_set_source
+EXPORT_SYMBOL_GPL vmlinux 0x754313de relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x75724623 raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x75ae25c3 cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x75f04c0b platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x7600dee1 cpuidle_enable_device
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x7671224b eventfd_ctx_put
+EXPORT_SYMBOL_GPL vmlinux 0x76906fb4 crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0x7698d209 put_driver
+EXPORT_SYMBOL_GPL vmlinux 0x773c1106 driver_find
+EXPORT_SYMBOL_GPL vmlinux 0x778adaf6 transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0x7796bfbf cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0x77ec943c snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL vmlinux 0x787b31c2 ata_link_next
+EXPORT_SYMBOL_GPL vmlinux 0x788bbf12 register_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x78c5a0f7 blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x78e545c4 rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x78f1fbe2 adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0x792eb741 relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x795701ee __rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0x798dd358 power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0x799771b5 usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x79992896 blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x79a41cc5 armpmu_get_pmu_id
+EXPORT_SYMBOL_GPL vmlinux 0x79f01f30 ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL vmlinux 0x7a2c21f5 n_tty_inherit_ops
+EXPORT_SYMBOL_GPL vmlinux 0x7a51fe70 crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x7a56b80b tasklet_hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0x7a6e4cbc adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0x7a7f05f8 rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x7a838742 md_new_event
+EXPORT_SYMBOL_GPL vmlinux 0x7a8eabc5 platform_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x7a9acd29 inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0x7aaa55a4 inotify_dentry_parent_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x7aaa6dbb ata_port_desc
+EXPORT_SYMBOL_GPL vmlinux 0x7aab7890 crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr
+EXPORT_SYMBOL_GPL vmlinux 0x7af24679 pm_schedule_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x7b235f72 kill_pid_info_as_uid
+EXPORT_SYMBOL_GPL vmlinux 0x7b30308a dm_region_hash_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x7b7353d2 dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0x7b9ca753 debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0x7bae31fd usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0x7bc32b52 shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x7bc5ae19 usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0x7bca46ce wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x7c0e8bd1 flush_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x7c324040 snd_soc_put_volsw_2r
+EXPORT_SYMBOL_GPL vmlinux 0x7c45a5c9 cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x7c6784ef ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0x7c8c3b47 put_device
+EXPORT_SYMBOL_GPL vmlinux 0x7c9be5ac usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0x7ca412ad snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL vmlinux 0x7cf0e624 __class_create
+EXPORT_SYMBOL_GPL vmlinux 0x7cf82b6d ata_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq
+EXPORT_SYMBOL_GPL vmlinux 0x7d929314 wm8350_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values
+EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7ddbbf0c simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e606130 snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7e913804 ata_sff_softreset
+EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x7ec591e3 nand_scan_ident
+EXPORT_SYMBOL_GPL vmlinux 0x7ed7b217 platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x7f1e5afd gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0x7f1f9dcc ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x7f282abc ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0x7f2be634 snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL vmlinux 0x7f4e53a1 usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x7f6c4d81 ata_noop_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x7fabb710 debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0x7fd38778 armpmu_get_max_events
+EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc
+EXPORT_SYMBOL_GPL vmlinux 0x80f8b6f2 usb_ep0_reinit
+EXPORT_SYMBOL_GPL vmlinux 0x81237e24 debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x817440bf fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x81a3f350 usb_driver_release_interface
+EXPORT_SYMBOL_GPL vmlinux 0x81b82bbb crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x823b315a fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0x825f39c8 ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x82b8f40c crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x82c3c2d8 snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0x82c681ae usb_anchor_empty
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export
+EXPORT_SYMBOL_GPL vmlinux 0x831cdbb8 debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x83d1a51e ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x83f8cb45 cpufreq_frequency_table_cpuinfo
+EXPORT_SYMBOL_GPL vmlinux 0x84537742 dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL vmlinux 0x84555c07 disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x8474eb2f ab8500_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x8498f761 dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0x849b990a crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x84c2a6df mmput
+EXPORT_SYMBOL_GPL vmlinux 0x84f16a5b regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag
+EXPORT_SYMBOL_GPL vmlinux 0x855c7a68 ata_eh_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x8592665b dev_attr_em_message
+EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh
+EXPORT_SYMBOL_GPL vmlinux 0x862412e0 ata_host_register
+EXPORT_SYMBOL_GPL vmlinux 0x866fa0b2 sdio_writeb_readb
+EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x868ee9ec snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0x86efea40 platform_device_register_data
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x8705102e ata_sas_port_init
+EXPORT_SYMBOL_GPL vmlinux 0x870e35b2 __blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x873335ae init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x877d8d90 posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0x8789ff3d led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x87c4de03 register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x87cc2a6a inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x87edfb0a nand_wait_ready
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x8832cb65 sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x88527a88 usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0x8894de31 console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0x8896dfcd ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active
+EXPORT_SYMBOL_GPL vmlinux 0x88d8f782 snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL vmlinux 0x8902d581 xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x895dc764 ata_std_postreset
+EXPORT_SYMBOL_GPL vmlinux 0x8981f2f2 blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x8a2d4a04 crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x8a31f0b2 put_pid
+EXPORT_SYMBOL_GPL vmlinux 0x8a5cb993 __get_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5 klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0x8a925601 ata_sff_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x8aa61681 snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL vmlinux 0x8afed182 ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0x8b0c49ee usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0x8b1ddd35 ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0x8b1f0162 rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis
+EXPORT_SYMBOL_GPL vmlinux 0x8b8ff90c d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x8bdeccf1 tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0x8be40dc8 usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0x8be4524e kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x8c084eab blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0x8c33742f ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL vmlinux 0x8c42b28c disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x8c46b354 sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0x8c811bb5 input_ff_erase
+EXPORT_SYMBOL_GPL vmlinux 0x8cfdfa19 spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0x8d340d06 user_match
+EXPORT_SYMBOL_GPL vmlinux 0x8d63e3d9 blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0x8d7156ca ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x8db799f4 ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0x8e3730d3 hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0x8e3beb11 ezx_pcap_write
+EXPORT_SYMBOL_GPL vmlinux 0x8e684bfa snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL vmlinux 0x8f69a242 __timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8f718378 each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x8f93325d led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0x8fa10096 sync_page_io
+EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8faa7440 crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x8fad5525 user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x8fd2012e omap_dm_timer_enable
+EXPORT_SYMBOL_GPL vmlinux 0x8fd5ed51 snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL vmlinux 0x9022bade snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0x9034c24d relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0x9098f360 hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90d93aa9 spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0x90db2618 usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x90e2a8b1 alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x911408d3 sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0x91504284 regulator_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x9173c454 ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x91ab56d7 eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0x91b490de __css_put
+EXPORT_SYMBOL_GPL vmlinux 0x91c9fa42 sysdev_class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x91dda801 scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0x92234cc4 snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL vmlinux 0x9251e2cf mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0x9254a501 ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0x9256b104 bus_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9276ea72 kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x9277a698 ata_cable_80wire
+EXPORT_SYMBOL_GPL vmlinux 0x929877cd init_pmu
+EXPORT_SYMBOL_GPL vmlinux 0x92d048e3 crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9302a9df scsi_dh_attach
+EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x939b6b02 usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0x93afbcab attribute_container_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x9460fe27 inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x947d771f device_find_child
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94c0e23e crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x94dad482 ata_link_abort
+EXPORT_SYMBOL_GPL vmlinux 0x94f3a306 transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x9569b673 ata_sff_irq_on
+EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x956f21ea register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x958207cf klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0x95a85fc6 tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x96057989 regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x962421d6 sata_link_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x962f3992 scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x9686698f omap_dm_timer_set_load_start
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x96f91f26 snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL vmlinux 0x971fc2f2 root_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9772fe4e dm_rh_get_region_size
+EXPORT_SYMBOL_GPL vmlinux 0x978924ed anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0x979d1a03 generic_fh_to_parent
+EXPORT_SYMBOL_GPL vmlinux 0x97d4c765 skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x97efc305 eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x982be9aa sdio_f0_readb
+EXPORT_SYMBOL_GPL vmlinux 0x985fe892 inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0x985fff73 tc35892_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x9897b21f __mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0x98b16777 class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x98babb85 platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0x98ff0de3 dm_rh_delay
+EXPORT_SYMBOL_GPL vmlinux 0x9911eeaa device_attach
+EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x995af0ef queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0x995b38b2 mtd_table_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on
+EXPORT_SYMBOL_GPL vmlinux 0x99b4ac11 scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0x99fcb53b pm_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x9a04785a ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a209021 invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0x9a714e99 sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x9a75176f zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0x9a9925cb ata_host_start
+EXPORT_SYMBOL_GPL vmlinux 0x9aed621a tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0x9b132691 regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9b2093db regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x9b3206f5 seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x9b7bec2e blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9bd98b18 timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0x9bee9119 wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0x9c5a9e6f __rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x9c96bdb9 device_create_vargs
+EXPORT_SYMBOL_GPL vmlinux 0x9ca26880 wm8350_gpio_config
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9cbcb527 bd_release_from_disk
+EXPORT_SYMBOL_GPL vmlinux 0x9ce2ae0e kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x9cf9b44a sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0x9d00ff68 ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x9d167112 __pm_runtime_disable
+EXPORT_SYMBOL_GPL vmlinux 0x9d3ef915 tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x9daf7ab9 ata_sff_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x9deca0ba debugfs_create_x64
+EXPORT_SYMBOL_GPL vmlinux 0x9e0297ea usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0x9e504c2d usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0x9e61c7de wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x9e69d204 __module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x9eb76035 blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL vmlinux 0x9f0a53c2 remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0x9f0bbf2a dm_get_rq_mapinfo
+EXPORT_SYMBOL_GPL vmlinux 0x9f1057e1 ata_bmdma_stop
+EXPORT_SYMBOL_GPL vmlinux 0x9f1d64aa ata_sff_check_status
+EXPORT_SYMBOL_GPL vmlinux 0x9f2632c1 ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x9f38b65b skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain
+EXPORT_SYMBOL_GPL vmlinux 0x9f434154 tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x9fd520fb snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL vmlinux 0x9fdf3027 class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa0254d12 snd_soc_cnew
+EXPORT_SYMBOL_GPL vmlinux 0xa0e28f6f crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0xa15bcdeb wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0xa16693f4 locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0xa1da3cdd inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0xa1e148f8 sdhci_add_host
+EXPORT_SYMBOL_GPL vmlinux 0xa21d581b usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0xa221c2a1 da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xa23b1f2d dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xa26fb2ba ata_sas_port_start
+EXPORT_SYMBOL_GPL vmlinux 0xa286a234 snd_pcm_format_name
+EXPORT_SYMBOL_GPL vmlinux 0xa2da0f36 wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xa2edec6d ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL vmlinux 0xa2f02fab sdio_claim_host
+EXPORT_SYMBOL_GPL vmlinux 0xa37fc55b __put_net
+EXPORT_SYMBOL_GPL vmlinux 0xa3836aba usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0xa39b0be4 __rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa3d572c5 rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0xa3f8124b snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL vmlinux 0xa407388a vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa46e3b36 usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx
+EXPORT_SYMBOL_GPL vmlinux 0xa5097259 __trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0xa50be0cd crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0xa57afc74 ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xa59212a3 regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0xa5c33025 mm_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes
+EXPORT_SYMBOL_GPL vmlinux 0xa5c6db0e mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0xa5da0ca2 crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xa5dd6fae arm_pm_restart
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa5f8b097 rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0xa6167d20 perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa64a264b sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL vmlinux 0xa64dc329 da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa675e3f7 usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0xa67e107b sdio_set_block_size
+EXPORT_SYMBOL_GPL vmlinux 0xa76d41bb rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0xa7796ad2 fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0xa7ff87f3 fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xa8052a1f ata_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0xa80ca6fd fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa900a632 omap_dm_timer_free
+EXPORT_SYMBOL_GPL vmlinux 0xa940c2fa devres_remove
+EXPORT_SYMBOL_GPL vmlinux 0xa97e716d inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0xa9c26151 crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9d16680 vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xaa1afdeb relay_open
+EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0xaa7d5f8c snd_soc_put_volsw
+EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock
+EXPORT_SYMBOL_GPL vmlinux 0xaa9a4f3c scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xaa9f7d7a user_update
+EXPORT_SYMBOL_GPL vmlinux 0xaaa4f158 sysfs_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab8c3994 get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0xabdb9e3a ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0xabfe1509 snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL vmlinux 0xac8c822a snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL vmlinux 0xacbdf97e seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xacfc9b8b rt_mutex_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xad46ec2b uart_console_write
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad62f986 scsi_target_unblock
+EXPORT_SYMBOL_GPL vmlinux 0xad67523a css_id
+EXPORT_SYMBOL_GPL vmlinux 0xada49db8 sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module
+EXPORT_SYMBOL_GPL vmlinux 0xadceeaf0 rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xae0c6ed5 filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae1006a5 get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0xae1dd5e4 sdhci_remove_host
+EXPORT_SYMBOL_GPL vmlinux 0xae3c206e bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0xae5be731 fuse_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0xae80d5c9 fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0xae8bacaf crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xaf4f9808 ipv6_dup_options
+EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0xaf5fd58f disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xb04247e8 __dma_request_channel
+EXPORT_SYMBOL_GPL vmlinux 0xb068438f sata_async_notification
+EXPORT_SYMBOL_GPL vmlinux 0xb09f713c ipv6_opt_accepted
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work
+EXPORT_SYMBOL_GPL vmlinux 0xb0e98f3e vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0xb0fdbf14 perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send
+EXPORT_SYMBOL_GPL vmlinux 0xb180e753 platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xb1947824 kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb1d3119b proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0xb204cfbe find_module
+EXPORT_SYMBOL_GPL vmlinux 0xb2176053 sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xb240155d usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL vmlinux 0xb25845f0 pcap_adc_sync
+EXPORT_SYMBOL_GPL vmlinux 0xb2b161fd rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xb2b5299a tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xb30bb8ed sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0xb3219780 fuse_do_open
+EXPORT_SYMBOL_GPL vmlinux 0xb32837c4 dm_rh_update_states
+EXPORT_SYMBOL_GPL vmlinux 0xb32ed3c5 usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xb3664f09 sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0xb36ed322 devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0xb39e9844 net_cls_subsys_id
+EXPORT_SYMBOL_GPL vmlinux 0xb3aa6bd5 tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0xb3d0a02d rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0xb3f5c5ea pm_runtime_enable
+EXPORT_SYMBOL_GPL vmlinux 0xb426fb77 wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0xb4b49359 unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0xb4d43c4a dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL vmlinux 0xb4d5d187 wm831x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected
+EXPORT_SYMBOL_GPL vmlinux 0xb51c1aeb regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0xb51fa8d3 get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0xb5252843 apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0xb533cbc8 ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL vmlinux 0xb5369197 leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xb5a24b48 __lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb6502063 ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec
+EXPORT_SYMBOL_GPL vmlinux 0xb65de6e4 debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0xb6a8c77b usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string
+EXPORT_SYMBOL_GPL vmlinux 0xb6ce76d8 nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0xb7072353 queue_work
+EXPORT_SYMBOL_GPL vmlinux 0xb70b87c0 srcu_init_notifier_head
+EXPORT_SYMBOL_GPL vmlinux 0xb7157edf __inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0xb71a8b1f inotify_rm_wd
+EXPORT_SYMBOL_GPL vmlinux 0xb73951b4 generic_subsys_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb78d3c1a inotify_find_watch
+EXPORT_SYMBOL_GPL vmlinux 0xb79acea9 ata_dummy_port_info
+EXPORT_SYMBOL_GPL vmlinux 0xb79aeca1 kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0xb7b3ad56 ata_sas_port_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xb7c2a540 regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0xb7e33d0c fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0xb7e79540 dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0xb87398f8 soc_codec_dev_twl4030
+EXPORT_SYMBOL_GPL vmlinux 0xb87fd32e queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0xb887a599 bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb8cb60ff dev_attr_em_message_type
+EXPORT_SYMBOL_GPL vmlinux 0xb917b6d7 return_address
+EXPORT_SYMBOL_GPL vmlinux 0xb91ff717 dev_attr_sw_activity
+EXPORT_SYMBOL_GPL vmlinux 0xb9384669 scsi_dh_detach
+EXPORT_SYMBOL_GPL vmlinux 0xb943a9d4 cpufreq_frequency_table_target
+EXPORT_SYMBOL_GPL vmlinux 0xb9548f6f raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xb962335d ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0xb98e51b5 sdio_readb
+EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xba0edb92 blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xba27d350 skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0xba2e5656 usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xba5e413f shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbaf13a43 __ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0xbafa0ee0 tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks
+EXPORT_SYMBOL_GPL vmlinux 0xbb2371c2 platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0xbb35312b usb_autopm_put_interface
+EXPORT_SYMBOL_GPL vmlinux 0xbb39ad23 crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xbb3e7e35 crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0xbb60eff8 pm_runtime_barrier
+EXPORT_SYMBOL_GPL vmlinux 0xbb7d4bea dm_rh_flush
+EXPORT_SYMBOL_GPL vmlinux 0xbb966435 devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xbb9a2c75 ktime_add_ns
+EXPORT_SYMBOL_GPL vmlinux 0xbb9a8726 sdio_release_irq
+EXPORT_SYMBOL_GPL vmlinux 0xbc5380be user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0xbc5ab5cc class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xbd0dbcfb raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0xbd183e64 register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xbd25d185 sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbe02ccac ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime
+EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xbe21b976 __rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xbe3734b5 init_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xbe40c185 debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0xbe539246 bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0xbe73e361 tc35892_block_write
+EXPORT_SYMBOL_GPL vmlinux 0xbe748644 device_schedule_callback_owner
+EXPORT_SYMBOL_GPL vmlinux 0xbea4cbb1 blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0xbeb48864 rtc_class_close
+EXPORT_SYMBOL_GPL vmlinux 0xbec5a800 rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0xbedc62da schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0xbf0fece3 spi_new_device
+EXPORT_SYMBOL_GPL vmlinux 0xbf1326ba spi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xbf5ea1d5 snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xbf6eac39 crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xbfb9eb2a class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0xbfcdd6e3 sdio_align_size
+EXPORT_SYMBOL_GPL vmlinux 0xbfdd7931 ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL vmlinux 0xc04a304b srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xc06994a1 ata_std_prereset
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time
+EXPORT_SYMBOL_GPL vmlinux 0xc0e3313b ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc18195a9 perf_arch_fetch_caller_regs
+EXPORT_SYMBOL_GPL vmlinux 0xc1c0afd3 snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL vmlinux 0xc1edeedc snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0xc213acf2 crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc2872feb ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xc3028deb nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0xc34764f0 dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc3527505 schedule_hrtimeout
+EXPORT_SYMBOL_GPL vmlinux 0xc365b6f5 rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0xc36a7689 snd_soc_dapm_stream_event
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc39b7710 ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0xc3bb1b30 ip6_sk_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xc3c8be0d get_mtd_device_nm
+EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long
+EXPORT_SYMBOL_GPL vmlinux 0xc460348e snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string
+EXPORT_SYMBOL_GPL vmlinux 0xc49f3b43 omap_dm_timer_request_specific
+EXPORT_SYMBOL_GPL vmlinux 0xc4acfa1d simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0xc4c5b916 register_mtd_parser
+EXPORT_SYMBOL_GPL vmlinux 0xc4e57037 ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xc4fefc8d device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xc524808d snd_soc_dapm_free
+EXPORT_SYMBOL_GPL vmlinux 0xc5519d2b __pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xc55c522c sysdev_class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xc59fb09a lookup_create
+EXPORT_SYMBOL_GPL vmlinux 0xc5a390bd inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0xc5b1d204 raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0xc5f671f4 __srcu_read_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc603c88c spi_async
+EXPORT_SYMBOL_GPL vmlinux 0xc6072718 security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0xc60a730b klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc66afc4d ata_port_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0xc685eb03 sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0xc687ff29 snd_soc_add_controls
+EXPORT_SYMBOL_GPL vmlinux 0xc69ac5e7 sdio_writesb
+EXPORT_SYMBOL_GPL vmlinux 0xc6aa157f snd_soc_jack_report
+EXPORT_SYMBOL_GPL vmlinux 0xc6de8449 inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0xc73f1357 dm_rh_start_recovery
+EXPORT_SYMBOL_GPL vmlinux 0xc74bdef5 ata_host_detach
+EXPORT_SYMBOL_GPL vmlinux 0xc76ab2e0 class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xc8120302 debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0xc820f160 usb_poison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xc8269f94 snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL vmlinux 0xc849c449 da903x_write
+EXPORT_SYMBOL_GPL vmlinux 0xc853b147 ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xc862a47c regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0xc87dd28b platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0xc8cc35b6 omap_mcbsp_st_add_controls
+EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource
+EXPORT_SYMBOL_GPL vmlinux 0xc931a355 blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist
+EXPORT_SYMBOL_GPL vmlinux 0xc965b5f8 i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xc9affb99 aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xc9b449a2 atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xc9da7642 tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0xc9ea8718 sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xca655420 nand_lock
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xca96844b add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcb0e4f24 ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xcb1e8bf1 tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0xcb341edd usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xcb4c2348 simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0xcbbde84a inode_add_to_lists
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcc060dd7 timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xcc162441 ata_std_qc_defer
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc275754 sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0xcc4b52e1 inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xcc5ab895 add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0xcc96fabd power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0xccbb7ed0 ata_bmdma_port_start
+EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL vmlinux 0xcd009eba bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0xcd02854b usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xcd209945 __create_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0xcd23b586 wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xcd3865b4 blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0xcd48df2a usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0xcd985ae4 usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0xcdb1ae03 sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0xcdb3f735 usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xcdd15753 inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0xce4ed2ab ata_host_resume
+EXPORT_SYMBOL_GPL vmlinux 0xce630b7a power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0xce6dd49e add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0xce77d702 fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0xce8d706b security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xcea44b96 raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0xcea5b2be usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL vmlinux 0xceabdee0 ata_bmdma_setup
+EXPORT_SYMBOL_GPL vmlinux 0xcee001fd free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0xcef1d2f4 sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL vmlinux 0xcf4a5e18 ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xcf62b940 usb_create_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback
+EXPORT_SYMBOL_GPL vmlinux 0xcf8eccfb put_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0xcfa01afc put_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0xcfbbc68c ata_sas_port_stop
+EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL vmlinux 0xd04490a8 sdio_claim_irq
+EXPORT_SYMBOL_GPL vmlinux 0xd079abb6 bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd0f27bba sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL vmlinux 0xd1232efa __sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0xd12d99cc pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xd14d1efd spi_write_then_read
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd18cef31 ata_port_freeze
+EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xd21a0690 user_describe
+EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd2662b84 ata_sff_data_xfer
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd284fd66 default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0xd2bc793c crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0xd2d6f615 fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xd2ea4c14 da903x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xd2ec3b34 devres_add
+EXPORT_SYMBOL_GPL vmlinux 0xd30166aa snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL vmlinux 0xd31173c6 scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0xd33c4fca __wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0xd34968b2 relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0xd39b722c __class_register
+EXPORT_SYMBOL_GPL vmlinux 0xd41e835a srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xd441e43f sdhci_alloc_host
+EXPORT_SYMBOL_GPL vmlinux 0xd45be0f3 otg_ulpi_create
+EXPORT_SYMBOL_GPL vmlinux 0xd4d5ecf7 __ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xd4dd2988 ata_dev_next
+EXPORT_SYMBOL_GPL vmlinux 0xd4fb1ddb eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0xd50d0068 dm_register_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0xd5351e44 regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0xd53da4e3 omap_dm_timers_active
+EXPORT_SYMBOL_GPL vmlinux 0xd579c91b usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xd5995ae5 usb_ifnum_to_if
+EXPORT_SYMBOL_GPL vmlinux 0xd5bb9cc6 da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xd5bcab37 single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0xd5e193c1 scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0xd5f75183 devres_find
+EXPORT_SYMBOL_GPL vmlinux 0xd60de8a9 dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0xd63708a8 sdio_writel
+EXPORT_SYMBOL_GPL vmlinux 0xd63f3012 regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0xd6687126 mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0xd68f59d5 tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0xd6ad829a sdio_readl
+EXPORT_SYMBOL_GPL vmlinux 0xd6b04b3e blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0xd6cd9539 pm_request_idle
+EXPORT_SYMBOL_GPL vmlinux 0xd6d5dd37 ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd788742d perf_trace_buf_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xd7afc94c snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL vmlinux 0xd7e51454 aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xd7f6f96f skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xd82559cf usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0xd876505d usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xd8c47a8c snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL vmlinux 0xd8e17508 cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xd8e191e7 snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL vmlinux 0xd8ea3dee devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xd94c187d driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xd9529e94 unregister_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0xd95ffc0b omap_dm_timer_start
+EXPORT_SYMBOL_GPL vmlinux 0xd9bc1f65 crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xd9bf66a7 kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0xd9d08114 blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0xd9dfae04 led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd9eef782 usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xd9feb9c4 omap_dm_timer_read_counter
+EXPORT_SYMBOL_GPL vmlinux 0xda0ee152 fuse_file_poll
+EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL vmlinux 0xda9870c6 wm8350_device_exit
+EXPORT_SYMBOL_GPL vmlinux 0xdaa1dd75 register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xdac74633 get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0xdaeddd35 omap_dm_timer_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0xdaf0c551 vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option
+EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdb478f9f unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0xdb57abd9 sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0xdb79c259 sata_pmp_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xdba1f43d enable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xdba9fd5b power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0xdbabc379 crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0xdbd817a1 power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0xdc31eb1b ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0xdc35282a ata_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0xdc36d5f4 inet_diag_register
+EXPORT_SYMBOL_GPL vmlinux 0xdc4425f0 crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xdc4d711b ata_sff_wait_ready
+EXPORT_SYMBOL_GPL vmlinux 0xdc8332ea wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xdc85c4b8 regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0xdd0b994f relay_close
+EXPORT_SYMBOL_GPL vmlinux 0xdd11f040 nand_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xdd18d4bb ata_host_init
+EXPORT_SYMBOL_GPL vmlinux 0xdd3fb983 __scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0xdd536f0a find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xdd75bd47 sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xdd8d550c sata_link_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xddcd1f8c ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0xdde26d35 platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain
+EXPORT_SYMBOL_GPL vmlinux 0xde9e4907 rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xdec532e9 register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0xdecf2893 spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xdf2c9345 snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL vmlinux 0xdf3d2831 css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xdf3d5618 parse_mtd_partitions
+EXPORT_SYMBOL_GPL vmlinux 0xdf5fe53d ata_port_abort
+EXPORT_SYMBOL_GPL vmlinux 0xdf7a1c6e snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL vmlinux 0xdf7f91df transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0xdff77e68 ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xdffc9966 fuse_direct_io
+EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name
+EXPORT_SYMBOL_GPL vmlinux 0xe01e3cd1 ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0xe02cc08b ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0xe063fb80 sata_set_spd
+EXPORT_SYMBOL_GPL vmlinux 0xe08b4bfb handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xe1288c4d inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xe1a9eb84 ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0xe1f79f34 regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xe20b6863 ata_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0xe20d2695 __atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xe24b4f2b ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0xe32f119d i2c_new_probed_device
+EXPORT_SYMBOL_GPL vmlinux 0xe33ac1df tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xe36084df crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xe3ca65b1 ata_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xe3dd91ef wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0xe3f7d50d usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xe3fb6fe3 shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register
+EXPORT_SYMBOL_GPL vmlinux 0xe4e4f38e ata_std_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xe527ceca kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0xe5378029 part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0xe5606cb2 omap_dm_timer_disable
+EXPORT_SYMBOL_GPL vmlinux 0xe56313d1 trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0xe594ffa3 regulator_disable
+EXPORT_SYMBOL_GPL vmlinux 0xe59b4c19 tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0xe5a877fd snd_soc_register_platform
+EXPORT_SYMBOL_GPL vmlinux 0xe5ba5f26 anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0xe606dea1 driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport
+EXPORT_SYMBOL_GPL vmlinux 0xe622768e inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0xe63ecab5 snd_soc_info_volsw
+EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition
+EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe65e50b0 driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe67d368c dm_rh_get_region_key
+EXPORT_SYMBOL_GPL vmlinux 0xe68b708d snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe738a885 __wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0xe775952e crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0xe782312a sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0xe78ecdbd cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xe7a6df2d spi_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xe7d8239b proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xe7fe25d3 rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xe85631ab del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe86b5d44 __module_address
+EXPORT_SYMBOL_GPL vmlinux 0xe87d2454 device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xe917e733 ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe97ad5dc fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xe97df21a usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0xe9f9d06d class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0xea01e915 class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xea87124d snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL vmlinux 0xea8a9459 pm_runtime_forbid
+EXPORT_SYMBOL_GPL vmlinux 0xeac9ef55 input_class
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeaea1d9c init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xeb2f9e91 device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0xeb35f7b1 deregister_mtd_parser
+EXPORT_SYMBOL_GPL vmlinux 0xeb711ae7 snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL vmlinux 0xeb730cc5 usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0xeb760ec2 user_read
+EXPORT_SYMBOL_GPL vmlinux 0xeb770d4d ring_buffer_record_enable
+EXPORT_SYMBOL_GPL vmlinux 0xeb92db14 dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del
+EXPORT_SYMBOL_GPL vmlinux 0xec5da395 inotify_rm_watch
+EXPORT_SYMBOL_GPL vmlinux 0xec6a114e device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xecaf338d del_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0xed267aa0 usb_get_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xed736d4f usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0xed79e5d2 usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0xed7ba2af crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xeda63db3 scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0xedb6d16e ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL vmlinux 0xee2aee0b blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0xee315eb0 atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xee6446bd usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xee709d44 snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL vmlinux 0xee7c147a ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xeebee09b skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0xeeeb7ca9 alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xefe21106 snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0xeff63add hwmon_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xeff66099 tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0xf00b4383 regulator_get_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xf02955ea driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xf06757ad blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0xf0f438cb debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0xf141449c driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xf15931ee sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0xf16f63a8 sdio_readw
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf18bc3da inet6_csk_xmit
+EXPORT_SYMBOL_GPL vmlinux 0xf194323b screen_glyph
+EXPORT_SYMBOL_GPL vmlinux 0xf1d4acce ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL vmlinux 0xf216f7b8 regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xf22dd73f rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf25617ee skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0xf25bb6bd dma_release_channel
+EXPORT_SYMBOL_GPL vmlinux 0xf2a86df6 shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xf2cb3676 transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0xf2d0853e adp5520_read
+EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options
+EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0xf332acba scsi_dh_activate
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf3618ac1 ata_sff_dma_pause
+EXPORT_SYMBOL_GPL vmlinux 0xf37984bd unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf44e2adb ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xf495a02e regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0xf49696d7 __mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf4ad5660 skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0xf4ba5b42 sata_scr_write
+EXPORT_SYMBOL_GPL vmlinux 0xf4c898a1 crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xf4eb0bb5 pm_generic_resume
+EXPORT_SYMBOL_GPL vmlinux 0xf507fe35 pcap_set_ts_bits
+EXPORT_SYMBOL_GPL vmlinux 0xf50ace11 dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0xf516da79 ata_base_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf59edc85 dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf6037227 regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0xf6354843 snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL vmlinux 0xf64be7fb shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf64dc3cd inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0xf64fa803 shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0xf6a596b6 blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xf6b29369 cpufreq_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xf6f84a23 dm_rh_region_context
+EXPORT_SYMBOL_GPL vmlinux 0xf71d2337 ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0xf73de137 device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL vmlinux 0xf74835d0 __blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xf76866a6 sysdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf77a2281 ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xf77aaa11 ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0xf783fca4 bus_register
+EXPORT_SYMBOL_GPL vmlinux 0xf799db81 crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xf7cee6ac cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0xf7cf09ee sdio_f0_writeb
+EXPORT_SYMBOL_GPL vmlinux 0xf7efdee3 __sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0xf8003320 dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf880d76b cpufreq_cpu_put
+EXPORT_SYMBOL_GPL vmlinux 0xf88aa28e vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf8a7ac86 __fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0xf8c27523 debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0xf8e4a743 __srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit
+EXPORT_SYMBOL_GPL vmlinux 0xf909db51 sata_sff_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xf9454442 dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0xf985ce3e inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0xf9906d08 dm_put
+EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0xf9aa4c6f cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL vmlinux 0xf9b774b1 ab8500_write
+EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xf9d03699 omap_soc_platform
+EXPORT_SYMBOL_GPL vmlinux 0xf9d046f0 klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0xf9f7e1ab devres_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register
+EXPORT_SYMBOL_GPL vmlinux 0xfa2200e9 ata_sas_slave_configure
+EXPORT_SYMBOL_GPL vmlinux 0xfa5fc3e8 platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xfa6a8eb5 device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0xfa6b38f5 wm8994_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0xfa9842f2 ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xfaa8f01d tc35892_block_read
+EXPORT_SYMBOL_GPL vmlinux 0xfad38b98 led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0xfb156062 br_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0xfb329acd scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb4120f7 crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xfb5e087f device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xfbbdb6f9 __clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfc0e747a tty_mode_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xfc32561e scsi_dh_set_params
+EXPORT_SYMBOL_GPL vmlinux 0xfc8748cd transport_configure_device
+EXPORT_SYMBOL_GPL vmlinux 0xfc9f13d8 bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xfca6a5b0 ata_sff_hsm_move
+EXPORT_SYMBOL_GPL vmlinux 0xfca94b45 gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0xfca994dc inotify_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xfcd18e03 spi_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfcd996de usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0xfcfbffc6 register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xfd2d2b2d ata_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0xfd710b21 dm_rh_get_state
+EXPORT_SYMBOL_GPL vmlinux 0xfd76370e uart_set_options
+EXPORT_SYMBOL_GPL vmlinux 0xfd8395e4 rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0xfd88a9fc __inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0xfd9b1a31 attribute_container_register
+EXPORT_SYMBOL_GPL vmlinux 0xfdc17d58 macvlan_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0xfdd1bef8 ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfdf38780 sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0xfdfc7acc platform_get_resource_byname
+EXPORT_SYMBOL_GPL vmlinux 0xfe5619c5 wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xfe5abd9d usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL vmlinux 0xfe95ae0b omap_dm_timer_write_status
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfea21aa3 usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfed1f31c find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xfeed603f usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xff20bd72 usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0xff36bb61 crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback
+EXPORT_SYMBOL_GPL vmlinux 0xff77b121 tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0xffa3451f platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffa8285c tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0xffe52de2 scsi_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0xfff13f6b tty_prepare_flip_string_flags
diff --git a/debian.master/abi/2.6.35-2.3/armel/omap.modules b/debian.master/abi/2.6.35-2.3/armel/omap.modules
new file mode 100644
index 00000000000..e10fdacc0b8
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/armel/omap.modules
@@ -0,0 +1,1775 @@
+6pack
+8021q
+88pm860x_bl
+88pm860x_onkey
+88pm860x-ts
+9p
+9pnet
+a3d
+ab3100
+ab3100-otp
+ac97_bus
+acecad
+act200l-sir
+act_gact
+act_ipt
+actisys-sir
+act_mirred
+act_nat
+act_pedit
+act_police
+act_simple
+act_skbedit
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7414
+ad7418
+ad7877
+ad7879
+adcxx
+adfs
+adi
+adis16209
+adis16220
+adis16240
+adis16255
+adis16260
+adis16300
+adis16350
+adis16400
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm9240
+adp5520_bl
+adp5520-gpio
+adp5520-keys
+adp5588-gpio
+adp5588-keys
+adp8860_bl
+ads7828
+ads7846
+ads7871
+adt7411
+adt7462
+adt7470
+adt7475
+adummy
+adutux
+aes_generic
+af_802154
+af9013
+affs
+af_key
+af-rxrpc
+ah4
+ah6
+ahci_platform
+aiptek
+aircable
+ak881x
+alphatrack
+altera_jtaguart
+altera_ps2
+altera_uart
+amba-clcd
+amba-pl011
+amc6821
+analog
+ansi_cprng
+anubis
+aoe
+appledisplay
+appletalk
+appletouch
+ar9170usb
+arc4
+ark3116
+arptable_filter
+arp_tables
+arpt_mangle
+asc7621
+asix
+asus_oled
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+atbm8830
+aten
+ath
+ath3k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ati_remote
+ati_remote2
+atm
+atmtcp
+atxp1
+au0828
+au8522
+aufs
+authenc
+auth_rpcgss
+autofs
+autofs4
+ax25
+ax88796
+b1
+b1pcmcia
+b2c2-flexcop
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+bas_gigaset
+batman-adv
+baycom_epp
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcm203x
+bcm3510
+bcm5974
+befs
+belkin_sa
+bfs
+bfusb
+binfmt_aout
+binfmt_misc
+block2mtd
+blowfish
+bluetooth
+bnep
+bonding
+bpa10x
+bpck
+bpck6
+bpqether
+bq24022
+bq27x00_battery
+br2684
+bridge
+broadsheetfb
+bsd_comp
+bt_drv
+btmrvl
+btmrvl_sdio
+btrfs
+btsdio
+btusb
+bw-qcam
+c67x00
+cachefiles
+caif
+caif_serial
+caif_socket
+camellia
+can
+can-bcm
+can-dev
+can-raw
+capi
+capidrv
+capifs
+cast5
+cast6
+catc
+ccm
+cdc-acm
+cdc_eem
+cdc_ether
+cdc-phonet
+cdc_subset
+cdc-wdm
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+ch
+ch341
+chnl_net
+cifs
+clip
+cls_basic
+cls_fw
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cm109
+cmtp
+cobra
+coda
+comm
+configfs
+core
+cp210x
+cpia2
+c-qcam
+cramfs
+crc32c
+crc7
+crc-ccitt
+crc-itu-t
+cryptd
+cryptoloop
+crypto_null
+cs5345
+cs53l32a
+ctr
+cts
+cuse
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx24110
+cx24113
+cx24116
+cx24123
+cx25840
+cxacru
+cyberjack
+cypress_cy7c63
+cypress_m8
+cytherm
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+dabusb
+davinci_emac
+db9
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+decnet
+deflate
+des_generic
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dibx000_common
+digi_acceleport
+diskonchip
+dlci
+dlm
+dm9601
+dm-crypt
+dme1737
+dm-queue-length
+dm-service-time
+dm-zero
+dnet
+dn_rtmsg
+doc2000
+doc2001
+doc2001plus
+docecc
+docprobe
+drx397xD
+ds1621
+ds1682
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2782_battery
+ds3000
+dsbr100
+dss1_divert
+dstr
+dummy
+dvb-core
+dvb-pll
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dw2102
+dvb-usb-ec168
+dvb-usb-friio
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-m920x
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dw_spi
+dynapro
+ebt_802_3
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_ulog
+ebt_vlan
+ec100
+echo
+econet
+eeprom
+eeprom_93cx6
+eeti_ts
+efs
+elo
+em28xx
+em28xx-alsa
+em28xx-dvb
+emc1403
+em_cmp
+emi26
+emi62
+em_meta
+em_nbyte
+empeg
+ems_usb
+em_text
+em_u32
+enclosure
+epat
+epia
+eql
+esi-sir
+esp4
+esp6
+ethoc
+evbug
+exportfs
+f71805f
+f71882fg
+f75375s
+fat
+faulty
+fb_sys_fops
+fcrypt
+ff-memless
+fit2
+fit3
+freevxfs
+friq
+frpw
+fscache
+ftdi-elan
+ftdi_sio
+ftl
+fujitsu_ts
+funsoft
+g760a
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+g_audio
+g_cdc
+gcm
+generic
+generic_bl
+gen_probe
+g_ether
+gf128mul
+gf2k
+g_ffs
+g_file_storage
+gfs2
+ghash-generic
+g_hid
+gigaset
+girbil-sir
+gl518sm
+gl520sm
+gl620a
+gluebi
+g_mass_storage
+g_midi
+g_multi
+g_nokia
+gpio_keys
+gpio_mouse
+gpio_vbus
+g_printer
+grip
+grip_mp
+g_serial
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_stk014
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_tv8532
+gspca_vc032x
+gspca_zc3xx
+gtco
+guillemot
+gunze
+g_webcam
+g_zero
+hampshire
+hci_uart
+hci_vhci
+hdlc
+hdlc_cisco
+hdlcdrv
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdpvr
+hfc4s8s_l1
+hfcsusb
+hfc_usb
+hfs
+hfsplus
+hid
+hid-3m-pct
+hid-a4tech
+hid-apple
+hid-belkin
+hid-cando
+hid-cherry
+hid-chicony
+hid-cypress
+hid-drff
+hid-egalax
+hid-ezkey
+hid-gaff
+hid-gyration
+hid-kensington
+hid-kye
+hid-logitech
+hid-magicmouse
+hid-microsoft
+hid-monterey
+hid-mosart
+hid-ntrig
+hid-ortek
+hidp
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-prodikeys
+hid-quanta
+hid-roccat
+hid-roccat-kone
+hid-samsung
+hid-sjoy
+hid-sony
+hid-stantum
+hid-sunplus
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-wacom
+hid-zpff
+hid-zydacron
+hisax
+hisax_st5481
+hmac
+hostap
+hp4x
+hpfs
+hso
+htc-pasic3
+hwa-hc
+hwa-rc
+hwmon-vid
+i1480-dfu-usb
+i1480-est
+i1480u-wlp
+i2c-algo-bit
+i2c-algo-pca
+i2c-algo-pcf
+i2c-designware
+i2c-dev
+i2c-gpio
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-simtec
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-xiic
+ibmcam
+ics932s401
+idmouse
+ieee802154
+ifb
+iforce
+iio-trig-gpio
+iio-trig-periodic-rtc
+ili9320
+imm
+imon
+industrialio
+inexio
+inftl
+input-polldev
+int51x1
+interact
+io_edgeport
+io_ti
+iowarrior
+ip6_queue
+ip6table_filter
+ip6table_mangle
+ip6table_raw
+ip6_tables
+ip6table_security
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_LOG
+ip6t_mh
+ip6t_REJECT
+ip6t_rt
+ip6_tunnel
+ipaq
+ipcomp
+ipcomp6
+ipddp
+ip_gre
+ipheth
+ipip
+ip_queue
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+ip_tables
+iptable_security
+ipt_addrtype
+ipt_ah
+ipt_CLUSTERIP
+ipt_ecn
+ipt_ECN
+ipt_LOG
+ipt_MASQUERADE
+ipt_NETMAP
+ipt_REDIRECT
+ipt_REJECT
+ipt_ULOG
+ip_vs
+ip_vs_dh
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_nq
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ipw
+ipx
+ircomm
+ir-common
+ircomm-tty
+ir-core
+irda
+irda-usb
+ir-jvc-decoder
+ir-kbd-i2c
+irlan
+ir-nec-decoder
+irnet
+ir-rc5-decoder
+ir-rc6-decoder
+ir-sony-decoder
+irtty-sir
+ir-usb
+iscsi_tcp
+isdn
+isdn_bsdcomp
+isdnhdlc
+isdnloop
+isight_firmware
+isl29003
+isl6405
+isl6421
+isl6423
+isofs
+isp116x-hcd
+isp1301_omap
+isp1760
+it87
+it8761e_gpio
+itd1000
+iuu_phoenix
+iwmc3200top
+iwmc3200wifi
+jedec_probe
+jffs2
+jfs
+joydev
+joydump
+kafs
+kaweth
+kbic
+kbtab
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+khazad
+kingsun-sir
+kl5kusb105
+kobil_sct
+konicawc
+ks0108
+ks8842
+ks8851
+ks8851_mll
+ks959-sir
+ksdazzle-sir
+ktti
+kxsd9
+l1oip
+l2cap
+l2tp_core
+l2tp_debugfs
+l2tp_ppp
+l4f00242t03
+l64781
+lapb
+lcd
+ldusb
+lec
+led-class
+leds-88pm860x
+leds-adp5520
+leds-bd2802
+leds-da903x
+leds-dac124s085
+leds-gpio
+leds-lp3944
+leds-lt3593
+leds-mc13783
+leds-pca9532
+leds-pca955x
+leds-regulator
+leds-wm831x-status
+leds-wm8350
+ledtrig-backlight
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-timer
+legousbtower
+lgdt3304
+lgdt3305
+lgdt330x
+lgs8gl5
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libcrc32c
+libertas
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libiscsi
+libiscsi_tcp
+libsas
+lightning
+line6usb
+linear
+lis3l02dq
+lis3lv02d
+lis3lv02d_i2c
+lis3lv02d_spi
+litelink-sir
+lkkbd
+llc
+llc2
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95241
+lms283gf05
+lnbp21
+lockd
+lp
+lp3971
+lpddr_cmds
+lrw
+ltc4215
+ltc4245
+ltv350qv
+lzo
+lzo_compress
+m25p80
+m52790
+ma600-sir
+mac80211
+mac80211_hwsim
+macvlan
+magellan
+map_absent
+map_ram
+map_rom
+matrix_keypad
+max1111
+max1363
+max1586
+max1619
+max17040_battery
+max2165
+max3100
+max63xx_wdt
+max6650
+max6875
+max7300
+max7301
+max730x
+max7359_keypad
+max8649
+max8660
+max8925_bl
+max8925_onkey
+max8925_power
+max8925-regulator
+mb862xxfb
+mb862xxfb_accel
+mb86a16
+mc13783-adc
+mc13783-core
+mc13783-regulator
+mc13783_ts
+mc33880
+mc44s803
+mcp2120-sir
+mcp23s08
+mcp251x
+mcs5000_ts
+mcs7780
+mcs7830
+mct_u232
+md4
+mdc800
+mem2mem_testdev
+metronomefb
+mg_disk
+michael_mic
+micrel
+microtek
+minix
+mISDN_core
+mISDN_dsp
+mk712
+mkiss
+mmci
+mmc_spi
+mos7720
+mos7840
+moto_modem
+mpoa
+msdos
+msp3400
+mt2060
+mt20xx
+mt2266
+mt312
+mt352
+mt9m001
+mt9m111
+mt9t031
+mt9t112
+mt9v022
+mtdconcat
+mtd_nandecctest
+mtd_oobtest
+mtdoops
+mtd_pagetest
+mtdram
+mtd_readtest
+mtd_speedtest
+mtd_stresstest
+mtd_subpagetest
+mtd_torturetest
+mtouch
+multipath
+musb_hdrc
+mxl5005s
+mxl5007t
+navman
+nbd
+ncpfs
+net1080
+netconsole
+netrom
+newtonkbd
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_ipv4
+nf_conntrack_ipv6
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_proto_dccp
+nf_conntrack_proto_gre
+nf_conntrack_proto_sctp
+nf_conntrack_proto_udplite
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_proto_dccp
+nf_nat_proto_gre
+nf_nat_proto_sctp
+nf_nat_proto_udplite
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nfnetlink
+nfnetlink_log
+nfnetlink_queue
+nfs
+nfs_acl
+nfsd
+nftl
+nf_tproxy_core
+n_hdlc
+nilfs2
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp437
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nop-usb-xceiv
+ns558
+ntfs
+nvram
+nxt200x
+nxt6000
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stackglue
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ohci-hcd
+old_belkin-sir
+omap
+omap2
+omap2_mcspi
+omap_hdq
+omap-sham
+omap_wdt
+omfs
+omninet
+on20
+on26
+onenand
+onenand_sim
+opencores-kbd
+oprofile
+opticon
+option
+or51132
+or51211
+osst
+oti6858
+ov7670
+ov772x
+ov9640
+oxu210hp-hcd
+p54common
+p54spi
+p54usb
+p8022
+p8023
+panel
+panel-acx565akm
+paride
+parkbd
+parport
+parport_ax88796
+parport_pc
+pc87360
+pc87427
+pcap_keys
+pcap_ts
+pcbc
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pcwd_usb
+pd
+pda_power
+pegasus
+penmount
+pf
+pg
+phonedev
+phonet
+phram
+physmap
+pktcdvd
+pktgen
+pl2303
+platform_lcd
+plat-ram
+plip
+plusb
+pn_pep
+pohmelfs
+poseidon
+powermate
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+pppoatm
+pppoe
+pppox
+ppp_synctty
+pps_core
+pps-ldisc
+psmouse
+psnap
+pt
+pvrusb2
+pwc
+qcaux
+qcserial
+qinfo_probe
+qnx4
+qt1010
+quota_tree
+quota_v1
+quota_v2
+r8a66597-hcd
+radio-i2c-si470x
+radio-mr800
+radio-si4713
+radio-tea5764
+radio-usb-si470x
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid6test
+raid_class
+ramoops
+ramzswap
+raw
+rc-adstech-dvb-t-pci
+rc-apac-viewcomp
+rc-asus-pc39
+rc-ati-tv-wonder-hd-600
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avertv-303
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-empty
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv2
+rc-encore-enltv-fm53
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge-new
+rc-imon-mce
+rc-imon-pad
+rc-iodata-bctv7e
+rc-kaiomy
+rc-kworld-315u
+rc-kworld-plus-tv-analog
+rc-manli
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc5-hauppauge-new
+rc-rc5-tv
+rc-real-audio-220-32-keys
+rc-tbs-nec
+rc-terratec-cinergy-xs
+rc-tevii-nec
+rc-tt-1500
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-winfast
+rc-winfast-usbii-deluxe
+rds
+rds_tcp
+redboot
+reed_solomon
+reiserfs
+rfcomm
+rfd_ftl
+rfkill
+ring_sw
+rio500
+riscom8
+rj54n1cb0c
+rmd128
+rmd160
+rmd256
+rmd320
+rndis_host
+rndis_wlan
+romfs
+rose
+rotary_encoder
+rpcsec_gss_krb5
+rpcsec_gss_spkm3
+rt2500usb
+rt2800lib
+rt2800usb
+rt2870sta
+rt2x00lib
+rt2x00usb
+rt73usb
+rtc-ab3100
+rtc-ab8500
+rtc-bq32k
+rtc-bq4802
+rtc-cmos
+rtc-ds1286
+rtc-ds1305
+rtc-ds1307
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1742
+rtc-ds3234
+rtc-fm3130
+rtc-isl1208
+rtc-m41t80
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max8925
+rtc-mc13783
+rtc-msm6242
+rtc-pcap
+rtc-pcf2123
+rtc-pcf50633
+rtc-pcf8563
+rtc-pcf8583
+rtc-pl030
+rtc-pl031
+rtc-r9701
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-stk17ta8
+rtc-test
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtl8150
+rtl8187
+rxkad
+s1d13xxxfb
+s2255drv
+s5h1409
+s5h1411
+s5h1420
+s6e63m0
+s921
+saa5246a
+saa5249
+saa7115
+saa7127
+saa717x
+saa7706h
+safe_serial
+salsa20_generic
+sata_mv
+sca3000
+sch_atm
+sch_cbq
+sch_drr
+sch_dsmark
+sch_gred
+sch_hfsc
+sch_htb
+sch_multiq
+sch_netem
+sch_prio
+sch_red
+sch_sfq
+sch_tbf
+sch_teql
+sco
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_tgt
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_srp
+scsi_wait_scan
+sctp
+sctp_probe
+sdhci-pltfm
+sdio_uart
+se401
+seed
+seqiv
+ser_gigaset
+serio_raw
+sermouse
+serpent
+serport
+ses
+sha1_generic
+sha256_generic
+sha512_generic
+sh_mobile_ceu_camera
+sht15
+si21xx
+si4713-i2c
+sidewinder
+siemens_mpi
+sierra
+sierra_net
+sir-dev
+sisusbvga
+sit
+sja1000
+sja1000_platform
+sl811-hcd
+slram
+sm501
+sm501fb
+sm7xx
+smbfs
+smc911x
+smc91x
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc911x
+smsc95xx
+smsdvb
+smsmdtv
+smssdio
+smsusb
+snd-aaci
+snd-ac97-codec
+snd-dummy
+snd-hrtimer
+snd-hwdep
+snd-mixer-oss
+snd-mpu401
+snd-mpu401-uart
+snd-mts64
+snd-pcm-oss
+snd-portman2x4
+snd-rawmidi
+snd-soc-ad1836
+snd-soc-ad193x
+snd-soc-ad73311
+snd-soc-ads117x
+snd-soc-ak4104
+snd-soc-ak4535
+snd-soc-ak4642
+snd-soc-ak4671
+snd-soc-cs4270
+snd-soc-da7210
+snd-soc-l3
+snd-soc-max9877
+snd-soc-pcm3008
+snd-soc-rx51
+snd-soc-spdif
+snd-soc-ssm2602
+snd-soc-tlv320aic23
+snd-soc-tlv320aic26
+snd-soc-tlv320aic3x
+snd-soc-tlv320dac33
+snd-soc-tpa6130a2
+snd-soc-twl6040
+snd-soc-uda134x
+snd-soc-uda1380
+snd-soc-wm2000
+snd-soc-wm8350
+snd-soc-wm8400
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8727
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8776
+snd-soc-wm8900
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8940
+snd-soc-wm8955
+snd-soc-wm8960
+snd-soc-wm8961
+snd-soc-wm8971
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8988
+snd-soc-wm8990
+snd-soc-wm8993
+snd-soc-wm8994
+snd-soc-wm9081
+snd-soc-wm9090
+snd-soc-wm-hubs
+snd-usb-audio
+snd-usb-caiaq
+snd-usbmidi-lib
+soc_camera
+soc_camera_platform
+soc_mediabus
+softdog
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+specialix
+speedtch
+spi_bitbang
+spi_butterfly
+spi_gpio
+spi_lm70llp
+squashfs
+ssb
+ssfdc
+st
+stb0899
+stb6000
+stb6100
+st_drv
+stinger
+stir4200
+stkwebcam
+stowaway
+stp
+stv0288
+stv0297
+stv0299
+stv0900
+stv090x
+stv6110
+stv6110x
+sunkbd
+sunrpc
+symbolserial
+synaptics_i2c
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+tca6416-keypad
+tcp_bic
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcrypt
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10086
+tda18271
+tda665x
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9887
+tdo24m
+tea
+tea5761
+tea5767
+tef6862
+tekram-sir
+test_power
+tgr192
+thermal_sys
+thmc50
+ti_dac7512
+timb_dma
+timbuart
+timeriomem-rng
+tipc
+ti_usb_3410_5052
+tle62x0
+tm6000
+tm6000-alsa
+tmdc
+tmiofb
+tmp102
+tmp401
+tmp421
+toim3232-sir
+touchit213
+touchright
+touchwin
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+trancevibrator
+tranzport
+ts_bm
+tsc2007
+ts_fsm
+ts_kmp
+tsl2550
+tsl2563
+tua6100
+tun
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tveeprom
+tvp7002
+tw9910
+twidjoy
+twl4030_keypad
+twl4030-pwrbutton
+twl4030-usb
+twl4030-vibra
+twl4030_wdt
+twofish
+twofish_common
+u132-hcd
+ubi
+ubifs
+ucb1400_core
+ucb1400_ts
+udf
+udlfb
+ueagle-atm
+ufs
+uinput
+uio
+uio_pdrv
+uio_pdrv_genirq
+ultracam
+ums-alauda
+ums-cypress
+ums-datafab
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-sddr09
+ums-sddr55
+ums-usbat
+upd64031a
+upd64083
+usb8xxx
+usbatm
+usb_debug
+usb_gigaset
+usbhid
+usbip
+usbip_common_mod
+usblcd
+usbled
+usblp
+usbmon
+usbnet
+usbserial
+usbsevseg
+usb-storage
+usbtest
+usbtmc
+usbtouchscreen
+usbvideo
+usbvision
+usb_wwan
+userspace-consumer
+uss720
+uvcvideo
+uwb
+v4l1-compat
+v4l2-common
+v4l2-int-device
+v4l2-mem2mem
+vcan
+ves1820
+ves1x93
+veth
+vfat
+vgg2432a4
+vhci-hcd
+vicam
+videobuf-core
+videobuf-dma-contig
+videobuf-dvb
+videobuf-vmalloc
+videodev
+virtual
+visor
+vivi
+vivopay-serial
+vmac
+vp27smpx
+vsxxxaa
+vt1211
+w1_bq27000
+w1_ds2431
+w1_ds2433
+w1_ds2760
+w1-gpio
+w1_smem
+w1_therm
+w35und
+w83627ehf
+w83627hf
+w83781d
+w83791d
+w83792d
+w83793
+w83l785ts
+w83l786ng
+w90p910_ts
+w9966
+wacom
+wacom_w8001
+walkera0701
+wanrouter
+warrior
+whiteheat
+wimax
+wire
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1271
+wl1271_sdio
+wl1271_spi
+wlp
+wm831x_backup
+wm831x_bl
+wm831x-dcdc
+wm831x-gpio
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x_power
+wm831x_wdt
+wm8350-gpiolib
+wm8350-hwmon
+wm8350_power
+wm8350-regulator
+wm8400-core
+wm8400-regulator
+wm8739
+wm8775
+wm8994-gpio
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusbcore
+wusb-wa
+x25
+xc5000
+xcbc
+xfrm4_mode_beet
+xfrm4_mode_transport
+xfrm4_mode_tunnel
+xfrm4_tunnel
+xfrm6_mode_beet
+xfrm6_mode_ro
+xfrm6_mode_transport
+xfrm6_mode_tunnel
+xfrm6_tunnel
+xfrm_ipcomp
+xfrm_user
+xfs
+xor
+xpad
+x_tables
+xt_CLASSIFY
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlimit
+xt_connmark
+xt_CONNSECMARK
+xt_conntrack
+xt_CT
+xt_dccp
+xt_dscp
+xt_DSCP
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_HL
+xt_iprange
+xtkbd
+xt_LED
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_NFLOG
+xt_NFQUEUE
+xt_NOTRACK
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_RATEEST
+xt_realm
+xt_recent
+xts
+xt_sctp
+xt_SECMARK
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_TCPMSS
+xt_TCPOPTSTRIP
+xt_tcpudp
+xt_TEE
+xt_time
+xt_TPROXY
+xt_TRACE
+xt_u32
+xusbatm
+xvmalloc
+yam
+yealink
+zaurus
+zd1201
+zd1211rw
+zhenhua
+zio
+zl10036
+zl10039
+zl10353
+zlib
+zlib_deflate
+zr364xx
diff --git a/debian.master/abi/2.6.35-2.3/armel/versatile b/debian.master/abi/2.6.35-2.3/armel/versatile
new file mode 100644
index 00000000000..48d5fbd1991
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/armel/versatile
@@ -0,0 +1,8986 @@
+EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble
+EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle
+EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k
+EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks
+EXPORT_SYMBOL drivers/char/apm-emulation 0x129e74f2 apm_get_power_status
+EXPORT_SYMBOL drivers/char/apm-emulation 0xdf3329b8 apm_queue_event
+EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte
+EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x060003c5 fw_core_remove_card
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x0b7260b9 fw_run_transaction
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x133d77b9 fw_cancel_transaction
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x157e1355 fw_fill_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x220332e8 fw_card_initialize
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x3145fd29 fw_card_add
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x39aa6416 fw_core_handle_request
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x51b3fd54 fw_iso_context_create
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x612bf326 fw_core_initiate_bus_reset
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x643035f5 fw_iso_context_destroy
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x65959083 fw_iso_context_stop
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x6808aaf3 fw_send_request
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x75bb7678 fw_iso_buffer_init
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x8d3ec701 fw_iso_context_queue
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x90513fbf fw_core_remove_address_handler
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xa45620ad fw_iso_buffer_destroy
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xa60c4f06 fw_iso_context_start
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xc36a7cb5 fw_device_enable_phys_dma
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xd457e0a9 fw_bus_type
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xde078fbf fw_core_handle_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xf07b9804 fw_core_add_address_handler
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xf08c2128 fw_send_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xf697a99c fw_core_handle_bus_reset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b2f02eb drm_debugfs_create_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0bbf42fe drm_framebuffer_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cf947cc drm_mm_dump_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0dc28f4c drm_get_encoder_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0de01533 drm_put_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0df32beb drm_debugfs_remove_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x10857405 drm_framebuffer_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x10e34285 drm_lock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x11058a2d drm_gem_handle_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x11a22d58 drm_mode_config_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x14ab9159 drm_i2c_encoder_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1515c92b drm_get_edid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x15901e13 drm_irq_install
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x168acc39 drm_add_modes_noedid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x16a9b87f drm_mode_config_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x175b0c56 drm_rmmap_locked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e5e23a2 drm_addmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e9daa85 drm_add_edid_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ed43a92 drm_mode_probed_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1eee807b drm_mm_search_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2406e0b6 drm_get_resource_len
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x26f2138f drm_get_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x28f6b51a drm_mode_create_tv_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d092dd5 drm_gem_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x301f5029 drm_mm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x33e9c5ca drm_idlelock_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3511bf47 drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x381e8969 drm_mode_create_dithering_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3847607c drm_mm_put_block
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3911bfac drm_i_have_hw_lock
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d02e929 drm_mm_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4118037f drm_crtc_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x433a5991 drm_poll
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x46232c37 drm_addbufs_pci
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x46d947ec drm_gtf_mode_complex
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x47413755 drm_mm_search_free_in_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x523fceeb drm_cvt_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5341ab95 drm_core_reclaim_buffers
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x54369ee0 drm_mode_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5951ab39 drm_mode_connector_list_update
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a1886c3 drm_master_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a68e636 drm_vblank_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5de5ed95 drm_master_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fbf4bd4 drm_mode_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x68da5923 drm_mode_connector_attach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b5c4f63 drm_gtf_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cb3dbeb drm_pci_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6dbc1a13 drm_mode_object_find
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f37b079 drm_mode_detachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x71a4c3ee drm_connector_attach_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x77894a83 drm_lock_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x77c0e395 drm_mode_attachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x77e361a9 drm_connector_property_get_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7993b8e7 drm_gem_object_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a744b0f drm_ati_pcigart_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ee4b86e drm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f49bdba drm_sysfs_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x81873b2a drm_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8241bbcb drm_mode_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x843da4df drm_property_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x84b32c52 drm_core_get_reg_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x85f0d507 drm_get_drawable_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x87ba8d65 drm_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d3f636e drm_mm_get_block_range_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ecfc56c drm_mm_get_block_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f48f67c drm_gem_object_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x90909aeb drm_mode_create_dirty_info_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x926044b9 drm_get_connector_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9267dd3a drm_ati_pcigart_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x98c1b876 drm_sg_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fb63384 drm_encoder_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaab19dff drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaaeeae0f drm_crtc_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xae022f65 drm_gem_object_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0ffa101 drm_read
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb686b6f5 drm_mm_debug_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb79ee97f drm_gem_vm_close
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9ae4c63 drm_getsarea
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9fadc48 drm_mode_prune_invalid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xba9c82ef drm_vblank_count
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd87047f drm_get_resource_start
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3f474cb drm_vblank_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6794f16 drm_core_get_map_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc0449bf drm_exit
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc75f229 drm_core_ioremap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xce3d8f8b drm_gem_vm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0390028 drm_mm_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2f174f0 drm_clflush_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd36c8aca drm_sysfs_connector_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4aaf47e drm_connector_property_set_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5076765 drm_core_ioremapfree
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5b1a48e drm_vblank_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8fa82bb drm_vblank_pre_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb0963c9 drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdba4dfa7 drm_vblank_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0706483 drm_property_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0cb4cf0 drm_fasync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2d5a7a9 drm_mode_duplicate
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe38969f5 drm_core_ioremap_wc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe42d902c drm_mm_pre_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe512c087 drm_rmmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5e28b3c drm_handle_vblank
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe72540ea drm_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe84860fa drm_gem_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9027f7a drm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb9f40b5 drm_vblank_off
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xebc71d9f drm_mode_connector_update_edid_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeefc255b drm_mode_connector_detach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf028fb26 drm_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf131991b drm_mode_find_dmt
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1328a5a drm_mode_validate_clocks
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2054b6e drm_sysfs_connector_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf23d959b drm_mode_validate_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf24d1f3b drm_pci_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5cc4e4a drm_irq_uninstall
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf60954fc drm_connector_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6163953 drm_vblank_post_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf64bf9eb drm_connector_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb944d58 drm_idlelock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd5f0417 drm_i2c_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x062294af drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x22b88558 drm_fb_helper_initial_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x32e3cb96 drm_helper_crtc_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3ab32fb0 drm_helper_encoder_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4595624d drm_kms_helper_poll_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4f249b6f drm_fb_helper_fill_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x511d7964 drm_crtc_helper_set_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5d9ef1c2 drm_fb_helper_set_par
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5dbada49 drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6216e10e drm_fb_helper_setcmap
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x675c319a drm_fb_helper_single_fb_probe
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x67aa0ac1 drm_fb_helper_single_add_all_connectors
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7dc9393f drm_fb_helper_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x821cea3d drm_helper_hpd_irq_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8233c8ef drm_fb_helper_check_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x89520f9b drm_fb_helper_fill_fix
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8baffee7 drm_kms_helper_poll_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8efded7b i2c_dp_aux_add_bus
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa656641b drm_helper_disable_unused_functions
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbcbc4499 drm_fb_helper_blank
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd6ba3126 drm_fb_helper_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd74b3dda drm_helper_connector_dpms
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdda98fc5 drm_fb_helper_pan_display
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe368b287 drm_helper_resume_force_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeb7cf565 drm_kms_helper_poll_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfbd39a3b drm_crtc_helper_set_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfd2365b2 drm_fb_helper_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfe86faa0 drm_kms_helper_poll_disable
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x052f21b0 ttm_bo_evict_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0555cd5c ttm_base_object_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07787990 ttm_bo_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x08d5fa2b ttm_mem_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0b5ee647 ttm_lock_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0d4309a8 ttm_bo_clean_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x12cedd83 ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x25709372 ttm_tt_populate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x27004dc5 ttm_bo_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2ce9cb95 ttm_object_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2e153753 ttm_tt_set_placement_caching
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2f76f729 ttm_bo_wait_cpu
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34704ea7 ttm_global_item_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x37bf03bb ttm_bo_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3907787a ttm_bo_kmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x39b0170d ttm_bo_validate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c3c3af1 ttm_bo_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x42fea97e ttm_write_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x46d4a03a ttm_ref_object_add
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4aab2f58 ttm_bo_init_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4b68233b ttm_read_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4ca9e5c8 ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5eb1b02e ttm_page_alloc_debugfs
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61dff4f7 ttm_bo_move_memcpy
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x623b9557 ttm_bo_reserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x662c5807 ttm_bo_wait
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66666d70 ttm_global_item_ref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6bfac973 ttm_bo_swapout_all
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6fb8acaf ttm_vt_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7035f7ba ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7651fd29 ttm_tt_bind
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x82169828 ttm_object_file_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86ce3c88 ttm_base_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x89f1faa4 ttm_bo_mem_space
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9262be8a ttm_bo_wait_unreserved
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9479698a ttm_bo_move_ttm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x95a86365 ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9661ca77 ttm_mem_global_alloc
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9d406f69 ttm_bo_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9e1b145c ttm_object_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2c7632b ttm_suspend_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa39f61d ttm_bo_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xabb0a47d ttm_suspend_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xafdbe0c4 ttm_bo_unreserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb0be7a0b ttm_base_object_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb21c5318 ttm_mem_global_free
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb95fdd45 ttm_mem_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd55c19e7 ttm_fbdev_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd69845b5 ttm_bo_synccpu_write_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd79db104 ttm_vt_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xde329f6a ttm_bo_unmap_virtual
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5531167 ttm_write_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5de5e06 ttm_bo_kunmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6c639b5 ttm_object_file_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe9cf9d85 ttm_bo_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc61f109 ttm_ref_object_base_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc9f7f92 ttm_read_unlock
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x264968d3 i2c_bit_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xc01dae23 i2c_bit_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x6d142328 i2c_pca_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x87d45f07 i2c_pca_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0xc35e280e i2c_pcf_add_bus
+EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xc3adc64b amd756_smbus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x00745f05 hpsb_iso_xmit_queue_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07e751e7 csr1212_get_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0d846554 hpsb_alloc_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x110ab22f hpsb_update_config_rom_image
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1185b680 dma_region_mmap
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f6ffcb hpsb_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1be72341 hpsb_free_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1c6c44aa hpsb_set_hostinfo_key
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1f33dc96 hpsb_iso_wake
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x260e884f hpsb_iso_recv_flush
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2c33ba6f hpsb_lock
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2d66c7ad __hpsb_register_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2da10a28 hpsb_resume_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x336901db hpsb_send_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x372aa79a hpsb_update_config_rom
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3e3b0682 hpsb_get_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3fa65ac5 hpsb_protocol_class
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x422599dd hpsb_get_hostinfo_bykey
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x45820250 hpsb_destroy_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x48f71908 hpsb_register_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x49a6daac hpsb_make_phypacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4ad0d3b1 hpsb_unregister_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4e469f35 hpsb_node_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5189558b hpsb_iso_xmit_sync
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x541bdfd7 hpsb_iso_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x559a5f35 hpsb_iso_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5e91110c hpsb_iso_recv_set_channel_mask
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x687817d2 hpsb_selfid_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6a8e1a14 hpsb_read_cycle_timer
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6dc90e47 hpsb_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7237fa0e hpsb_create_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7aefede1 hpsb_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7d183f2f hpsb_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x86f7b38f hpsb_iso_recv_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8896cd82 hpsb_allocate_and_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8907ff9f hpsb_iso_xmit_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8a04ade6 hpsb_alloc_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8fc58cd5 hpsb_unregister_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9067c482 hpsb_make_writepacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9794ca13 hpsb_make_streampacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9d6e0453 hpsb_make_lock64packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9e90f4c3 hpsb_add_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9f4b5967 hpsb_iso_recv_release_packets
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa56ee744 hpsb_iso_recv_unlisten_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa9e3293b hpsb_get_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xac0930ba hpsb_set_packet_complete_task
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb890b814 csr1212_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xba65b65d hpsb_iso_recv_listen_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbc295997 hpsb_iso_n_ready
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbcfb7a0c hpsb_unregister_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbdc8ea99 hpsb_reset_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc5279944 hpsb_bus_reset
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcc669184 hpsb_remove_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xda5c65ff hpsb_set_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdaeeb7e7 hpsb_selfid_complete
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdcc5553d hpsb_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdfa3c394 hpsb_iso_stop
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe33c5db5 hpsb_make_readpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe3ac4123 hpsb_iso_xmit_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe5158fb4 hpsb_node_fill_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe97ac0d9 hpsb_iso_shutdown
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea65c105 hpsb_make_lockpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf14bf1d1 hpsb_free_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf9c068d5 hpsb_packet_success
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfed3d08d hpsb_iso_recv_init
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x36e4c7f3 ohci1394_stop_context
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x541bc7b9 ohci1394_register_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xe4a5fea5 ohci1394_unregister_iso_tasklet
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x10faf4e5 rdma_addr_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9b69f7f0 rdma_copy_addr
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xea9ed28a rdma_resolve_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xee034f38 rdma_addr_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0195a1b2 ib_send_cm_drep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x09c39615 ib_send_cm_apr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1c44d6da ib_send_cm_sidr_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1db29aff ib_cm_notify
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2653338e ib_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2e130bb3 cm_class
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2fcaa7e0 ib_send_cm_rtu
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3c27e976 ib_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x54bad0e1 ib_send_cm_lap
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x55fe06c5 ib_send_cm_sidr_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6e26b418 ib_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x75ebb91f ib_send_cm_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8226ee03 ib_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb3c9a2d5 ib_send_cm_mra
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc0a71882 ib_send_cm_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe07ec74d ib_send_cm_dreq
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf2952fc2 ib_send_cm_rej
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01724980 ib_reg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x04acd860 ib_destroy_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x07cd128a ib_attach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0d748b19 ib_query_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x186027e6 ib_modify_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x186e3595 ib_modify_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e97cc89 ib_dealloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1ea8dc69 ib_query_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2933918c ib_find_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a7c9163 ib_query_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x34891c20 ib_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x373670e4 ib_destroy_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b10ef14 ib_find_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b7498f4 ib_dealloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3bffcddc ib_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3c930683 ib_query_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f9330b2 ib_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x443d067f ib_detach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c3fc70d ib_alloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d64d940 ib_get_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52252080 ib_modify_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58d07df7 ib_init_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5b422aef ib_get_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x60e25855 ib_create_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x65abda59 ib_register_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x68e9a9bf ib_umem_release
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x70bac6be ib_flush_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x71b7efd9 ib_umem_page_count
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x737abbac ib_query_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77d2e22b ib_destroy_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7a69e87b ib_create_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x830c6c4a ib_free_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x84796543 ib_dereg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x889b7c47 ib_get_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8b09b130 ib_register_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8d60abe9 ib_create_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9988bd50 ib_find_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9a07026e ib_modify_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9b074fdd ib_alloc_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d63b0fe ib_alloc_fast_reg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9fab89ca ib_resize_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2934298 ib_get_dma_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2f1eaab ib_unregister_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3ff017a ib_alloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa6180786 ib_unregister_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa6cfb39c ib_fmr_pool_unmap
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa971d2a4 ib_dealloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb87e9719 ib_alloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbc7298ba ib_fmr_pool_map_phys
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbd056be2 ib_set_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbd1333a3 ib_create_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbde4e314 ib_destroy_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe026f41 ib_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbf0e96fe ib_query_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd1a3824 ib_umem_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xce16c46f ib_create_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd3464e59 ib_modify_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd44d83d2 ib_query_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd4e4b573 ib_modify_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe014a9ae ib_rereg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6b61590 ib_alloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf532962a ib_query_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf722459b ib_dealloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7dee1ef ib_find_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb1117c6 ib_get_cached_lmc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfdf2a830 ib_dispatch_event
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1369ad19 ib_get_rmpp_segment
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1a9f65e6 ib_process_mad_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4747266d ib_register_mad_snoop
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4bbe0afa ib_redirect_mad_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4dcb66e5 ib_create_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6331e4ed ib_register_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6e352cf4 ib_post_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x73302356 ib_free_recv_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8528df2e ib_cancel_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa3d09115 ib_unregister_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb0ca0e64 ib_free_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc929b4a3 ib_modify_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x07716a6d ib_sa_get_mcmember_rec
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x11e72ef8 ib_init_ah_from_mcmember
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x146d2217 ib_sa_path_rec_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x32f3586f ib_sa_service_rec_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x55f763e9 ib_sa_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x75246607 ib_sa_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7dd81e93 ib_init_ah_from_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x83658eb5 ib_sa_cancel_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x90480d64 ib_sa_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x0d8e49eb iw_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x21ff8df7 iw_cm_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x277a8ee5 iw_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x45897ab5 iw_cm_reject
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x470fb2a8 iw_cm_connect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8a790fc0 iw_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x95b6c961 iw_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa8341ee1 iw_cm_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x05821ba5 rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x101e1170 rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x120d8c72 rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x21991704 rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x25252ceb rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x299ffba6 rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3c04c9cf rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5d685126 rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6146a62d rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x65c50daf rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6a14d1e8 rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6f8ea613 rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbc4f2972 rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc571862d rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc6c9eeb6 rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xce04956c rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe5890f0f rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xeccf2a27 rdma_notify
+EXPORT_SYMBOL drivers/input/input-polldev 0x0c8f3e02 input_allocate_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x1662c74f input_free_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x3080aa85 input_unregister_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xdd8ac991 input_register_polled_device
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x20a6c76a ad714x_enable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x9d6ce3c1 ad714x_remove
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xa94192e3 ad714x_probe
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xb79e8447 ad714x_disable
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x101c0bfd sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x2ee501b2 sparse_keymap_report_event
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x5302c426 sparse_keymap_setup
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x72b89207 sparse_keymap_report_entry
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x89aa088a sparse_keymap_free
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x93350182 sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul
+EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp
+EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv
+EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page
+EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x0fea6fa1 ir_raw_handler_unregister
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x89a5d107 ir_raw_handler_register
+EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x3b8f7540 max2165_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xdb9ed7c4 mc44s803_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x70610045 mt2060_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0xc0d9cadc mt2131_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x520b85e7 mt2266_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x13bd14e6 mxl5005s_attach
+EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xf0bca440 qt1010_attach
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x24f63bdc xc2028_attach
+EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xe6178799 xc5000_attach
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x19eda5c4 flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x27e8da31 flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x282b9ea9 flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3c1f245b flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3e41b3fa flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3f68c44d flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5b21d9ad flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5bdf444e flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x78b61f98 flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x83347299 flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8a815271 flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x955931b5 flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x963064cb flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xaf4cf28e flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xba8d74b9 flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd2746523 flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xdb3610a2 flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe0825083 flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfc80031e flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfd1fc200 flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x15c26f49 dvb_dmx_swfilter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x28fcc8fb dvb_net_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31409c4b dvb_dmx_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x39c99249 dvb_unregister_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4d150154 dvb_unregister_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4ff8124e dvb_net_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5193e472 dvb_register_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5332c7ba dvb_frontend_detach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5e80ec71 dvb_dmx_swfilter_204
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5fcd723f dvb_dmxdev_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6225816a dvb_ringbuffer_flush
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x687066ad dvb_ringbuffer_read
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6ae7ec84 dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x733022cd dvb_generic_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x742682d8 dvb_generic_open
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x746b02ad dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83a2ef94 dvb_ringbuffer_empty
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x87c08fcb dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x883c17c6 dvb_ringbuffer_read_user
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8abc9d4c dvb_dmxdev_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8f3c8e83 dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90b3c91f dvb_ringbuffer_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa5cbd962 dvb_generic_ioctl
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb5f93340 dvb_dmx_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcd6c036b dvb_dmx_swfilter_packets
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd05fd9f8 dvb_unregister_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd71cc97b dvb_register_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe90a6197 dvb_frontend_reinitialise
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xeae41dfa dvb_register_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed9e5ee7 dvb_ringbuffer_free
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf1ac0a2f dvb_ca_en50221_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf487376d dvb_ringbuffer_avail
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfb25f454 dvb_ringbuffer_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfc58b81b dvb_ca_en50221_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x26a16a65 dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x28b67aaf dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x50ec5baa dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x566fa690 dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x76854958 dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x8a66fccc dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa46521bf usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x1ab35896 af9005_rc_decode
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x011af34d dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0b7c8f62 dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4bfd2632 dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x7eeb1606 dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x8c5d9cf0 dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x94a33b06 dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb5d2b663 dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd0e83b24 dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd47a3a78 dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe98ea258 dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfbbe5cc8 dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x1893f880 af9013_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0xec78ee5b atbm8830_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xf51cd609 bcm3510_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x19409be1 cx22700_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x558af592 cx22702_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x00bbba98 cx24113_agc_callback
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x794f39d7 cx24113_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x11eaff0f cx24116_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x646b0b77 cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xe5602dcb cx24123_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x665de345 dib0070_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x73363003 dib0070_get_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x98f84556 dib0070_ctrl_agc_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xb1856841 dib0070_set_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xc99ebad9 dib0070_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x03596866 dib0090_register
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x16530521 dib0090_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x1e72a927 dib0090_get_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x2d1220ff dib0090_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x504cb511 dib0090_gain_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x7e5e5a98 dib0090_dcc_freq
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x9275ff6e dib0090_get_current_gain
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc45f1483 dib0090_pwm_gain_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x1e184242 dib3000mb_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x0b2c7e08 dib3000mc_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x2074edc3 dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x26648faa dib3000mc_pid_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xc95c99ba dib3000mc_pid_parse
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xcd14bf2b dib3000mc_set_config
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xda8dd6fc dib3000mc_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x151402dc dib7000m_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x4015992a dib7000m_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x1c4e04ef dib7000p_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x2e7a5aa3 dib7000p_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x2ff2cde8 dib7000p_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x52b9ef9a dib7000p_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7479a924 dib7000p_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd0d9927f dib7000p_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd7460fbd dib7000p_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xe093e32e dib7000pc_detection
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1438e099 dib8000_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2776d62c dib8000_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x51899471 dib8000_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x529b86e5 dib8000_get_adc_power
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x700ffb2f dib8000_pwm_agc_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x77190ee5 dib8000_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x8eb55fd7 dib8000_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xacb4fb55 dib8000_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc35cb727 dib8000_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xdd64fa67 dib8000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xed89cae3 dib8000_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x1a72b727 dibx000_exit_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x4d4aebb2 dibx000_reset_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x5f186811 dibx000_init_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x9aaa1fb4 dibx000_get_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime
+EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x54bedf0f ds3000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xe5e96d62 dvb_pll_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x76dab2a7 isl6421_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x105fce29 isl6423_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xf08a2296 itd1000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xaeacc0a8 l64781_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x98331613 lgdt3305_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x1303830f lgdt330x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x2c980c75 lgs8gxx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x29ee2b5c lnbp21_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x57589979 lnbh24_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x2b851505 mb86a16_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x50b8ffb0 mt312_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xd69d81df mt352_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xabdd0a05 nxt200x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xb79f194f nxt6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xa1ea1b5e s5h1411_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x45109913 s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xf384ce83 s5h1420_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x99a4db5b si21xx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x8bf3e8ed stb0899_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x74b8cd50 stb6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x082c866e stb6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x5e7e2646 stv0288_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x300d4b08 stv0297_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x48cd2de4 stv0299_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x3b458b4f stv0900_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x0d80c5ef stv090x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x804c41ab stv6110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xc8b295ff stv6110x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xc1aebc43 tda10023_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x1cc29b7f tda10045_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x75d3bac3 tda10046_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x04b1d2bb tda10086_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x3014949d tda8083_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x3e31d2cd tda826x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x3144ad5f ves1820_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x3dadda49 ves1x93_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x1a18b68a zl10039_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x6f149766 zl10353_attach
+EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x2182b8d9 ttpci_eeprom_parse_mac
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x818bba8c ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xaa4cbb46 ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x1a357d11 memstick_resume_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x1b7c50bd memstick_init_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x212b4f56 memstick_unregister_driver
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x22d6f0f7 memstick_alloc_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x2e048f16 memstick_suspend_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x5e50356b memstick_detect_change
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x6bad9301 memstick_init_req_sg
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x6c3a647c memstick_set_rw_addr
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x830d6b4e memstick_new_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x90abc88d memstick_add_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xac848533 memstick_next_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xe3e02898 memstick_free_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xf29c5b2b memstick_register_driver
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xf2ceec92 memstick_remove_host
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x04d35cb4 mpt_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x15704b86 mpt_GetIocState
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x17241e2b mpt_reset_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x21a39711 mpt_event_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x283b6796 mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x39c57c40 mptbase_sas_persist_operation
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x51906c27 mpt_halt_firmware
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x52590ea3 mpt_get_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x542867fc mpt_put_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x56600752 mpt_resume
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x575e8d71 mpt_free_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x603e0760 mpt_free_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6df0c9e7 mpt_send_handshake_request
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x71980514 mpt_print_ioc_summary
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7397be08 mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74757c65 mpt_attach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x774be7c3 mpt_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8969fe78 mpt_detach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x98c4b735 mpt_device_driver_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9ceacba6 mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbc3f526c mpt_verify_adapter
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc6d8f7dc mpt_alloc_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc7247a26 mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcc1a894e mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe08e4b2d mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xea1c69f2 mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xef51474f mpt_config
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf10c19c9 mpt_HardResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf28bacc9 mpt_findImVolumes
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x17e195ef mptscsih_dev_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x21a72cfb mptscsih_bios_param
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x37d59216 mptscsih_is_phys_disk
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3ca04ede mptscsih_slave_configure
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3e568bcf mptscsih_proc_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x51a2a4db mptscsih_change_queue_depth
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x64a1fea3 mptscsih_io_done
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6c574b55 mptscsih_resume
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7442fb91 mptscsih_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x76f8415b mptscsih_get_scsi_lookup
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x79ddd9c2 mptscsih_raid_id_to_num
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x814fdb37 mptscsih_remove
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x85191325 mptscsih_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x883f1d38 mptscsih_ioc_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x91656bd5 mptscsih_taskmgmt_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa50ce410 mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaf1f4a1c mptscsih_bus_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb6dbdff4 mptscsih_event_process
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb9691490 mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc5ffaf74 mptscsih_qcmd
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd63e32e9 mptscsih_abort
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xeab48353 mptscsih_scandv_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xeef5b930 mptscsih_host_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf2d92f21 mptscsih_host_attrs
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf84560d3 mptscsih_slave_destroy
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfed361d8 mptscsih_shutdown
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x19e6b10a i2o_msg_post_wait_mem
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x23f16816 i2o_status_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2bc8bb1a i2o_parm_field_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x33c4f981 i2o_event_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x494c4628 i2o_device_claim_release
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4986bb41 i2o_device_claim
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x55962cfa i2o_parm_issue
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x56f56a6e i2o_driver_notify_controller_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7fbb3ae0 i2o_iop_find_device
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8b80249d i2o_parm_table_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9af8fd81 i2o_driver_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xacff1d69 i2o_driver_unregister
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdd20df6a i2o_exec_lct_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xddf0ca1f i2o_driver_notify_device_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xde2586d0 i2o_driver_notify_device_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe75d660f i2o_find_iop
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xee7ddf67 i2o_msg_get_wait
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xeea73a68 i2o_driver_notify_controller_add_all
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x67d83306 pasic3_write_register
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xd42586f9 pasic3_read_register
+EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2
+EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1
+EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib
+EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led
+EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw
+EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x2a81afe4 ad_dpot_probe
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xfeb03d1c ad_dpot_remove
+EXPORT_SYMBOL drivers/misc/c2port/core 0x2a866936 c2port_device_unregister
+EXPORT_SYMBOL drivers/misc/c2port/core 0xb005ef7b c2port_device_register
+EXPORT_SYMBOL drivers/misc/ioc4 0xbf29dba5 ioc4_register_submodule
+EXPORT_SYMBOL drivers/misc/ioc4 0xfb261f1b ioc4_unregister_submodule
+EXPORT_SYMBOL drivers/misc/tifm_core 0x07be9180 tifm_alloc_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x25b8f6d5 tifm_register_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work
+EXPORT_SYMBOL drivers/misc/tifm_core 0x46452c02 tifm_map_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x4d632037 tifm_unmap_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x6f196624 tifm_free_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x77c87f3b tifm_add_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xb7a6b9c7 tifm_eject
+EXPORT_SYMBOL drivers/misc/tifm_core 0xc2b4d54f tifm_unregister_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0xd32f187a tifm_remove_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xdb78dd9a tifm_free_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xe1b59ddd tifm_alloc_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xf7aeaa71 tifm_has_ms_pif
+EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xe4925ef6 lpddr_cmdset
+EXPORT_SYMBOL drivers/net/8390 0x08b430ed ei_tx_timeout
+EXPORT_SYMBOL drivers/net/8390 0x18021c14 ei_get_stats
+EXPORT_SYMBOL drivers/net/8390 0x4249837c ei_start_xmit
+EXPORT_SYMBOL drivers/net/8390 0x473c4335 NS8390_init
+EXPORT_SYMBOL drivers/net/8390 0x68082e0e __alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/8390 0x695d6f2b ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390 0xaf2ffbbe ei_open
+EXPORT_SYMBOL drivers/net/8390 0xc31693e6 ei_close
+EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt
+EXPORT_SYMBOL drivers/net/8390 0xf6a462f4 ei_poll
+EXPORT_SYMBOL drivers/net/8390 0xfdcc9f9c ei_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x55c6da40 arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x67d0ffe2 arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6e266a7f arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6fd3992f arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8d737d1a alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x901ec628 arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9d6278f7 arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xad73c076 arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xbb468707 arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe1891e92 arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x742c9cf8 com20020_found
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0xa9921155 com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0xc00e4d4a com20020_check
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x03dda6f5 t3_l2e_free
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x11c77cdc cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2febfcc2 t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x33b83fc3 cxgb3_register_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x61a52b11 cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x70611f51 dev2t3cdev
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7dcdc570 cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x88f7b4e9 cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x90e5dc99 cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa8df52d0 cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xaeb34464 t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc1c34234 cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd46d2277 t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd51fa865 cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xde137f50 t3_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xff8e7e6f cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x108e2c24 cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x12aec1c2 cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x1fba2c67 cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x30896cec cxgb4_netdev_by_hwid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x517b3bef cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x551db25b cxgb4_create_server
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5d49e35c cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5ee29d8b cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x78f9aa70 cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x80ed42cd cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8f70fca8 cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb2929ec1 cxgb4_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xbb2aef77 cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc1574da5 cxgb4_create_server6
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc20eaa60 cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc88fca8c cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd7f0ad35 cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xdf291493 cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xec3012ed cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xfe7ad4ac cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3df580a8 hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x75e91e0a hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xaccf622e hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb9778eeb hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xf4d41fed hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage
+EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl
+EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart
+EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag
+EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe
+EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an
+EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok
+EXPORT_SYMBOL drivers/net/pppox 0x8b47ef06 pppox_ioctl
+EXPORT_SYMBOL drivers/net/pppox 0x99fd1e3f register_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0xa8ffea0b pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x8b3da4d8 tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd4926ef0 tmsdev_term
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xe7a1b1f9 tms380tr_open
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xee76fdea tms380tr_close
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xff6a6ca2 tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x202f222b i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x345b0660 ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x38802620 ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x48abec40 ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x527db042 ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x046483aa ath9k_cmn_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1c9f3c07 ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x389e9737 ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x66bb51f6 ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x6c28bbf1 ath9k_cmn_rx_skb_preprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x74fbb225 ath9k_cmn_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc1fbbf58 ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0118c2cc ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x029d3d1d ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x03bd3f28 ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x04c1dc87 ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b6218ba ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ca7149a ath9k_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0ccb1c76 ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e051366 ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f5986f1 ath9k_hw_stoptxdma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x14548c69 ath9k_hw_procmibevent
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1889c339 ath9k_hw_setcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20413281 ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20f85d4e ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25b1c5b4 ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x276e8c8c ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e279469 ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3390fdf5 ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3542e00b ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x39f37037 ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a6bbaab ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3acfe5a3 ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f5aff4a ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3fdcc4d0 ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40224da6 ath9k_hw_stoppcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4498ed5c ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48075dbf ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4e3b9fab ath9k_hw_setmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f1acdf5 ath9k_hw_keysetmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x511ba4f7 ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51da284f ath9k_hw_extend_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x58832130 ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59d1a917 ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a91bbbd ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5aff3e28 ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5bddcbde ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x614592cb ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68fb569a ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x756e5cfd ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x770519f1 ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x783355bd ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x784da15b ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ba16526 ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d0ee2ac ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f1af0ec ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x81cb4510 ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8223b200 ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8544cb01 ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x86f6129d ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8821981f ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9989a865 ath9k_hw_cleartxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9fda1724 ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa687e8c0 ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb12b1b53 ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb66ac9a8 ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb991f08e ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9968656 ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbea4eaf ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbf4192f ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf979e2d ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc113495d ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc13ef621 ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc22d79c7 ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc394968f ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc418190e ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6ff97fd ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc7d3589e ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9f180d7 ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc6b1745 ath9k_hw_keyisvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd613d838 ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd1dea4d ath9k_hw_getcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3e36e5c ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7a122f8 ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe934f98f ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xecd38109 ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef3c2b23 ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef4c89e5 ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf004648b ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf49b82d1 ath9k_hw_set_keycache_entry
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7f40640 ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfc8d5174 ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd69297d ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd87b5c4 ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x1851a3d3 stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xba0ab9c5 init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xef1b843a atmel_open
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x016c5aba hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x06004e69 hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x10590413 hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x10aa7a37 hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2d747053 hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x58a5c300 hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5de8690b prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x606bfd9c hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x62ba7804 hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6a06ed69 hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x80cf2ea4 hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x88526127 hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8c303b59 hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8e8397c3 hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa933cf80 hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2e7ed7e hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb789bf3a hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb9b55fcb hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xba64854e hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc4d0fafe hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd3617b13 hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xeb91e24d hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf49772f9 hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf65b16d8 hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf756aa38 hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0a886cf8 free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0c6f819d libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x114eb43c libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x25eb741a libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2b0a8182 libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2c1c7610 alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x34caa954 libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x48048eca libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4be89e7e libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4d2de4a1 libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6e91cc61 libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6ff13b5a libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x70b54171 libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x764018d0 libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9191d98a libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x925e9a54 libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa29ed735 libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe7f586f8 libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf2d7f086 libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf35c55e6 libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfddab2b8 libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x036f9690 iwl_send_calib_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03f2e8c5 iwl_bg_start_internal_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x04d40467 iwl_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x057b9946 iwl_sta_rx_agg_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x076c5c03 iwl_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0d2ac4ed iwl_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0f043f5e iwl_remove_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0ff7da3c iwlcore_eeprom_verify_signature
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x117fa8d3 iwl_hw_detect
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1189b882 iwl_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x124b80fb iwl_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x124c1c52 iwlcore_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x12acdb72 iwl_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14db9394 iwl_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a256cb4 iwl_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1e943278 iwl_rf_kill_ct_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21a4cef6 iwlcore_eeprom_enhanced_txpower
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x250cc666 iwl_ht_enabled
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2648204c iwl_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2815c882 iwl_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x29eb98f2 iwl_tt_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2e6d4ac4 iwl_eeprom_get_mac
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32df5750 iwl_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x343073cc iwl_bg_scan_check
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x34dc20ec iwl_reset_run_time_calib
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x360bfa49 iwl_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x402fee66 iwl_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x43cdb909 iwl_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x44f0ee08 iwl_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x473b8789 iwl_add_bssid_station
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x49796c5f iwl_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c684dcc iwl_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e5fcb4f iwl_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4ff265af iwl_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4ff75152 iwl_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5093646a iwl_bg_abort_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x52cca80d iwl_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x555918ec iwl_init_sensitivity
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x55e1cd29 iwl_eeprom_check_version
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x56966b21 iwl_set_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x59545c03 iwl_set_hw_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5fd8065c iwl_update_tkip_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62727d56 iwl_calib_set
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x67310a68 iwl_rx_missed_beacon_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x678a3205 iwl_set_rxon_chain
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x694487ed iwl_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6956e00f iwl_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x69e15b8a iwl_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6be99699 iwl_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7070fd77 iwl_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x70d9a225 iwl_setup_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x746d36d5 iwl_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x748bb4d1 iwl_tx_ant_restriction
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7721f0ed iwl_toggle_tx_ant
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x77a87104 iwl_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x79fd5875 iwl_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7c4dcb28 iwl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7cea1715 iwl_rx_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7cfcea92 iwl_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7ddebed4 iwl_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8195eb74 iwl_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x81fd2923 iwlcore_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8314c72a iwl_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x843a7edc iwl_good_plcp_health
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85720fa6 iwl_bg_scan_completed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85ec7c0d iwl_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8820278d iwl_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x88472bd8 iwl_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89e7aa52 iwl_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a1039e0 iwl_dump_csr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a4eef5b iwlcore_eeprom_release_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a70dc46 iwlcore_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8eae2dfb iwl_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x91d40713 iwl_led_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x940c51aa iwlcore_rts_tx_cmd_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9485b818 iwl_sta_tx_modify_enable_tid
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x988b5eec iwl_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x98957d3c iwl_set_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9a2c0716 iwl_sta_rx_agg_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9bd10c7e iwl_free_tfds_in_queue
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9c7f780a iwl_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9d6dab1a iwl_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa6522d2d iwl_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa800f98e iwl_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa89e285e iwl_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xab6316e2 iwl_rate_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xac0426f1 iwl_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xad9b2b37 iwl_chain_noise_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaede5805 iwl_calib_free_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb315e9fc iwl_mac_beacon_update
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb5f81877 iwl_sta_modify_sleep_tx_count
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb6850e8d iwl_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb7356799 iwl_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb81dce34 iwl_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8de8e6a iwl_configure_filter
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbaa8fd33 iwl_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbbc3002f iwl_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbd179059 iwl_tt_handler
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbee3e363 iwl_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbf16e661 iwl_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbf97d6a5 iwl_verify_ucode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcb5ef912 iwl_reply_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcb79fede iwl_tt_exit_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbc2646e iwl_force_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd2cffb39 iwl_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3923519 iwl_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3b0affc iwl_tt_enter_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3bdbaf7 iwl_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3bf3fdd iwl_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3266cf7 iwl_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3841463 iwl_free_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe4e19007 iwl_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7a1dcea iwl_sta_modify_ps_wake
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe83f84f3 iwl_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe874cf32 iwl_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe9d1e6df iwl_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xea876c71 iwl_leds_background
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeca6e19f iwl_dump_fh
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedbc84a4 iwlcore_eeprom_acquire_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xef5439e1 iwl_restore_default_wep_keys
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2591649 iwl_recover_from_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf27212f2 iwl_sensitivity_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf295af25 iwl_tt_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf5bdfa17 iwl_remove_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf6319262 iwl_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf73e73c7 iwl_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa8f2fbd iwl_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfdaaf2f5 iwl_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe168cab iwl_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff00dc53 iwl_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfff10bd0 iwl_apm_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x19f4cb94 orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x273d05ac orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2fa2a16b orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x42f99b60 orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x449a738e orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4889cf94 orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4de8d6e6 orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x62991aaf hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x634391f9 __orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x71c251d7 free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7ac3ad71 __orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x86c3e2fd orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8f0eda30 alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa22563ca orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb461696e orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf93131b6 orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfc995b8e orinoco_open
+EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x46ff3d7d pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2ab90cfb fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x383edac6 fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x42535274 fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x48aca041 fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x52de461c fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7bd479b5 fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf4a5a9c6 fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0359190f fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x03609653 fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x079cac25 fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x079e76c6 fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0e216927 fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x189cba84 fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x195b678b fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x221a75a2 fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2602ba98 fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x26ae2a0e libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x28330f8b fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x28f38608 fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2cc92565 fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x35d36933 fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x47a44340 fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4bb23331 fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x51faa966 fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x533f5def fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6245c75a fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67527274 fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6d5a8b4d fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e217db2 fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e5fa3ac fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7098ca86 fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x715b9491 fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7b3c8a6f fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x82f6fdad fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x86bc7548 fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8d1f1b21 fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9c35c99f fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa397d694 fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xacbc9278 fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb53ada60 fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbb98e14a fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbf0958a4 fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc3663cc2 fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcf3072d9 fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd21877b5 fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdf00d1b7 _fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe98f887f fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf518df32 fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf5f760e3 fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x6879c3fc mraid_mm_register_adp
+EXPORT_SYMBOL drivers/scsi/raid_class 0x000df43d raid_component_add
+EXPORT_SYMBOL drivers/scsi/raid_class 0x360f878d raid_class_attach
+EXPORT_SYMBOL drivers/scsi/raid_class 0xbe0a52e0 raid_class_release
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x119c10df fc_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1439cc22 fc_remote_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x16d6f244 fc_block_scsi_eh
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x331715d7 fc_vport_create
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6e2d2f63 fc_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6fa2df52 scsi_is_fc_vport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x756b5417 fc_remote_port_rolechg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7bab2ddc fc_remote_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbf7b46d4 fc_host_post_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc7bb39ed fc_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd7e9485d fc_host_post_vendor_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe21ea13a fc_vport_terminate
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf9e1977c scsi_is_fc_rport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x094eaf32 sas_read_port_mode_page
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0f848d59 sas_port_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x102a111b sas_rphy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x14cfa4a8 sas_phy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1ea3608d sas_phy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x301fc4fd sas_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x37732304 sas_rphy_remove
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x48b00dcb sas_expander_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4ed87909 sas_port_delete_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4f3f9a15 sas_port_mark_backlink
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x54558e9a sas_port_add_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x61ac7cf2 scsi_is_sas_port
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x744a9027 sas_end_device_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7f7a38b9 sas_phy_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x832bc677 sas_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x89eab992 sas_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9c8acae8 sas_port_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9cd7cce2 sas_phy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9f4446e7 sas_rphy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaa5355f3 sas_rphy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbbbc10fc sas_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbd568638 sas_port_alloc_num
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc1aef6f4 scsi_is_sas_rphy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd71b0ba8 sas_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe4e368e5 scsi_is_sas_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe6310cfe sas_remove_children
+EXPORT_SYMBOL drivers/serial/8250 0x14b9641e serial8250_register_port
+EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port
+EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port
+EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port
+EXPORT_SYMBOL drivers/ssb/ssb 0x08b5ee32 ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL drivers/ssb/ssb 0x0bbc521c ssb_bus_may_powerdown
+EXPORT_SYMBOL drivers/ssb/ssb 0x0f78bf58 ssb_device_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x1495933b ssb_chipco_gpio_control
+EXPORT_SYMBOL drivers/ssb/ssb 0x1a76c322 ssb_driver_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0x436bfe35 ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL drivers/ssb/ssb 0x540edae0 ssb_bus_suspend
+EXPORT_SYMBOL drivers/ssb/ssb 0x6c2d912f ssb_bus_powerup
+EXPORT_SYMBOL drivers/ssb/ssb 0x6de48783 ssb_clockspeed
+EXPORT_SYMBOL drivers/ssb/ssb 0x83cbef12 ssb_dma_alloc_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0x9e17e408 ssb_dma_free_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0xa4c69ee7 ssb_bus_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0xa51a4c51 ssb_pcihost_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xa759d86d ssb_bus_sdiobus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xabb86a82 ssb_dma_set_mask
+EXPORT_SYMBOL drivers/ssb/ssb 0xb1a32d22 ssb_bus_pcibus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xb76a6c9f ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base
+EXPORT_SYMBOL drivers/ssb/ssb 0xcf6f1c9a ssb_dma_translation
+EXPORT_SYMBOL drivers/ssb/ssb 0xd2c9a77d ssb_device_is_enabled
+EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size
+EXPORT_SYMBOL drivers/ssb/ssb 0xd93528b3 ssb_device_disable
+EXPORT_SYMBOL drivers/ssb/ssb 0xf00ef2b2 ssb_bus_resume
+EXPORT_SYMBOL drivers/ssb/ssb 0xf03df5fd __ssb_driver_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xf16e9910 ssb_set_devtypedata
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x032b1ca4 iio_allocate_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x07f2d30f iio_allocate_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x083434bc iio_read_ring_bps
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1261abdf iio_trigger_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x12f4afee iio_scan_el_ts_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1348010a iio_free_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x18f35bc8 iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x226788ef iio_trigger_find_by_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x230217b8 iio_scan_el_show
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x233c235a iio_remove_event_from_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x28f8eb60 iio_push_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2e16e58b iio_free_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3e1aa5af iio_trigger_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3faf727e iio_push_or_escallate_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3fb8310f iio_device_register_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x488f6d7d iio_device_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x49c331a6 iio_ring_buffer_init
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4eb9f9a1 __iio_change_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5475a9c4 iio_add_event_to_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x5527a656 iio_register_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x61306481 iio_trigger_poll
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x613ed7a8 iio_write_ring_length
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x91306e07 iio_show_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x947e4680 iio_device_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9cbf2527 iio_trigger_read_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9dad3562 iio_unregister_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xab10b49d iio_trigger_dettach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xabe67dbb iio_free_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xac5e40f8 iio_get_new_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb07bbf18 iio_scan_el_ts_show
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xba8eebac iio_ring_buffer_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbd6398c3 iio_scan_el_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc40ef7b8 iio_device_unregister_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc94dbe18 iio_ring_buffer_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xcd701048 iio_trigger_attach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd68cefe0 iio_store_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdb2f35d4 iio_read_const_attr
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdfc2dd0b iio_bus_type
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xeaee4303 __iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xee06ce18 iio_trigger_notify_done
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfd894327 iio_read_ring_length
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x21cf67f7 iio_rip_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x35b5556f iio_sw_rb_free
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x3bf7b752 iio_set_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x3dbbaf32 iio_sw_rb_allocate
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6cb9212a iio_set_length_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6fb1ee84 iio_read_last_from_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x9aa99536 iio_mark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xadf31cf9 iio_unmark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xbd69f9df iio_store_to_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xcfc9fbee iio_get_length_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xd5b01eb4 iio_get_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xe68a44f8 iio_mark_update_needed_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xe6ba3627 iio_request_update_sw_rb
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x0b29dad8 variax_create_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x50378571 variax_remove_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x5e6d1c5a pod_create_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0xdf34f88a pod_remove_files
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0x3cb44311 rar_release
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0xaf94751b rar_handle_to_bus
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0xc7723e22 rar_reserve
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x6cce72cd rar_get_address
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x02a9449a ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x04e6a57d ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x06c145b8 HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0c6cb3ee ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0ebe3a8f DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x144704fc ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x168a07b1 ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1c95ae5f ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x264d741d ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x332e005b ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x369d1e63 ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3d44527e ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x40dc3069 ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x42a5df19 ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x45583d1c ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x46048536 ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x47c1e2d9 ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x578236f2 ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5db998e2 ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5f2d140c ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x63a39833 IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d1a2700 notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6d39ef90 ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x711f9bbe ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7748cb0c ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x78ae43aa ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x86d10f9a ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x87087b6c ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x89e6d8c8 ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9757bc5e ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9bdcab75 ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9ef56064 ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa4a7c1f7 Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa658d618 SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa7176266 ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa9301e3d ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa96b82db ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb2ce05ca ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb5e05a2d ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb5f40c72 ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbc1e565e ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc351f36d DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd16866a3 ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd51acbda ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdb7099ff ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdd3f8a86 ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe55448d9 ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe7ce270b ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe9586bcf ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xea5fae1a Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xead33888 ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa3bc09b ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfbdaa4f0 Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfe80c617 ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count
+EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x174afe80 vme_new_dma_list
+EXPORT_SYMBOL drivers/staging/vme/vme 0x1a2ab548 vme_slave_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x214d4ed9 vme_irq_handler
+EXPORT_SYMBOL drivers/staging/vme/vme 0x251b9ed8 vme_slave_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3a3a511f vme_unregister_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3d1af350 vme_dma_pci_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x41b67d3a vme_register_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x42201e97 vme_bus_type
+EXPORT_SYMBOL drivers/staging/vme/vme 0x453789e3 vme_slot_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x47aee9f8 vme_register_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x4ff6f0a0 vme_dma_list_exec
+EXPORT_SYMBOL drivers/staging/vme/vme 0x66227eae vme_alloc_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0x71a972f0 vme_lm_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7f348537 vme_unregister_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7fde2edb vme_master_read
+EXPORT_SYMBOL drivers/staging/vme/vme 0x881a3fbe vme_irq_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x8a228e3f vme_dma_list_add
+EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach
+EXPORT_SYMBOL drivers/staging/vme/vme 0x93dff61f vme_slave_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x94b2590f vme_free_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach
+EXPORT_SYMBOL drivers/staging/vme/vme 0xa4e3f04b vme_dma_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xd797b9a5 vme_master_write
+EXPORT_SYMBOL drivers/staging/vme/vme 0xd90f53e9 vme_irq_generate
+EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe297dcd8 vme_dma_list_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe693a6ce vme_get_size
+EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xf4f8560a vme_master_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xf977af1b vme_irq_request
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free
+EXPORT_SYMBOL drivers/telephony/ixj 0xc94b7dc3 ixj_pcmcia_probe
+EXPORT_SYMBOL drivers/telephony/phonedev 0x029ac677 phone_unregister_device
+EXPORT_SYMBOL drivers/telephony/phonedev 0xee702c2f phone_register_device
+EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x4b56bdbe sl811h_driver
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x05c5c305 usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0b6ccd0f usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x230ff92b usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2a8d1e09 usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x52fcfc2e usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x53ee27d2 usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x56e295da usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6a1c35f5 usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xaa3c9296 usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc322b821 usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcebf79bf usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcfa8da5e usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd53f63f8 usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe5ec7b07 usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0xa83f4586 usb_serial_resume
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0xda0d5bf9 usb_serial_suspend
+EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x0a40d322 lcd_device_unregister
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x40b23ef0 lcd_device_register
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x099ff5d8 cyber2000fb_attach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x3dc2ab56 cyber2000fb_disable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xa0e99a71 cyber2000fb_enable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xe51d0c0a cyber2000fb_get_fb_var
+EXPORT_SYMBOL drivers/video/display/display 0x3c069978 display_device_unregister
+EXPORT_SYMBOL drivers/video/display/display 0x99ecb9b1 display_device_register
+EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var
+EXPORT_SYMBOL drivers/video/macmodes 0xe1d38924 mac_find_mode
+EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x195f24d3 matroxfb_g450_setpll_cond
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x1b240e1f matroxfb_g450_setclk
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xd7377997 g450_mnp2f
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x39927435 DAC1064_global_restore
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6b060318 matrox_G100
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x971f4611 DAC1064_global_init
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xc1a61fc8 matrox_mystique
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xddf7bf54 matrox_millennium
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0xa992b31c matrox_cfbX_init
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x4b9e7acc matroxfb_unregister_driver
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x695a605c matroxfb_enable_irq
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xa0855b13 matroxfb_register_driver
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xee8c2a2b matroxfb_wait_for_sync
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xbf182f33 matroxfb_g450_connect
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xcffea870 matroxfb_g450_shutdown
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x09d4b754 matroxfb_vgaHWinit
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x1506551b matroxfb_DAC_out
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x47cc8007 matroxfb_vgaHWrestore
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x65998699 matroxfb_DAC_in
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xe2a0fb9d matroxfb_read_pins
+EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x3cddce8a mb862xxfb_init_accel
+EXPORT_SYMBOL drivers/video/output 0x0f1e88b5 video_output_register
+EXPORT_SYMBOL drivers/video/output 0x74972fa3 video_output_unregister
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free
+EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x04a99122 svga_settile
+EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x13850b37 svga_get_tilemax
+EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x31eafbb8 svga_get_caps
+EXPORT_SYMBOL drivers/video/svgalib 0x3c57d620 svga_tilefill
+EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x97b376d3 svga_tileblit
+EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xb41678d9 svga_tilecursor
+EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format
+EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll
+EXPORT_SYMBOL drivers/video/svgalib 0xf8e1efd1 svga_tilecopy
+EXPORT_SYMBOL drivers/video/syscopyarea 0x0a42e865 sys_copyarea
+EXPORT_SYMBOL drivers/video/sysfillrect 0x0ff18eb5 sys_fillrect
+EXPORT_SYMBOL drivers/video/sysimgblt 0x3cb215ca sys_imageblit
+EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga
+EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x2b75b471 w1_bq27000_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x5039c6d0 w1_bq27000_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x2de52a0e w1_ds2760_store_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x760b7139 w1_ds2760_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xbc2834e3 w1_ds2760_recall_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xc80ebdb0 w1_ds2760_read
+EXPORT_SYMBOL drivers/w1/wire 0x2975d79a w1_unregister_family
+EXPORT_SYMBOL drivers/w1/wire 0x8c70a21b w1_register_family
+EXPORT_SYMBOL drivers/w1/wire 0xe6c22ae8 w1_add_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xef1df2a5 w1_remove_master_device
+EXPORT_SYMBOL fs/configfs/configfs 0x23a35a4b config_group_find_item
+EXPORT_SYMBOL fs/configfs/configfs 0x24613917 config_item_get
+EXPORT_SYMBOL fs/configfs/configfs 0x2ae068b4 config_item_set_name
+EXPORT_SYMBOL fs/configfs/configfs 0x40871aa3 configfs_undepend_item
+EXPORT_SYMBOL fs/configfs/configfs 0x4d82bbb7 config_group_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x6c7df199 config_item_put
+EXPORT_SYMBOL fs/configfs/configfs 0x71243528 configfs_register_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0x79efa505 config_item_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x85546a30 config_item_init
+EXPORT_SYMBOL fs/configfs/configfs 0xc8eb8bf1 configfs_depend_item
+EXPORT_SYMBOL fs/configfs/configfs 0xd9644f7b configfs_unregister_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xe55214fe config_group_init
+EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible
+EXPORT_SYMBOL fs/fscache/fscache 0x2ef65efd __fscache_wait_on_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x35e04638 fscache_obtained_object
+EXPORT_SYMBOL fs/fscache/fscache 0x394c16e9 fscache_cache_cleared_wq
+EXPORT_SYMBOL fs/fscache/fscache 0x394fc0a3 fscache_fsdef_index
+EXPORT_SYMBOL fs/fscache/fscache 0x3adaba6b fscache_object_lookup_negative
+EXPORT_SYMBOL fs/fscache/fscache 0x3d7cfeee __fscache_read_or_alloc_pages
+EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit
+EXPORT_SYMBOL fs/fscache/fscache 0x51a8412a __fscache_attr_changed
+EXPORT_SYMBOL fs/fscache/fscache 0x5c639108 fscache_io_error
+EXPORT_SYMBOL fs/fscache/fscache 0x6b7d5162 fscache_withdraw_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x6e184b23 __fscache_relinquish_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x708a8fc2 fscache_mark_pages_cached
+EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id
+EXPORT_SYMBOL fs/fscache/fscache 0x7872eea7 fscache_object_slow_work_ops
+EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states
+EXPORT_SYMBOL fs/fscache/fscache 0x8ecd843b __fscache_write_page
+EXPORT_SYMBOL fs/fscache/fscache 0x94b715f4 __fscache_register_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x9a0f3b0e __fscache_check_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x9b37dcfe __fscache_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0x9fc24d1d fscache_add_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xa659ddf4 __fscache_maybe_release_page
+EXPORT_SYMBOL fs/fscache/fscache 0xae603e72 __fscache_update_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xb523d9c4 fscache_check_aux
+EXPORT_SYMBOL fs/fscache/fscache 0xb6776f30 __fscache_unregister_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0xc1ee1525 __fscache_acquire_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xdac92ff8 fscache_put_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xdba879c9 __fscache_read_or_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xe58c55a7 __fscache_uncache_page
+EXPORT_SYMBOL fs/fscache/fscache 0xf07592e8 fscache_enqueue_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xf9caa986 fscache_init_cache
+EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix
+EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new
+EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who
+EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype
+EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4
+EXPORT_SYMBOL fs/quota/quota_tree 0x5caf4f25 qtree_entry_unused
+EXPORT_SYMBOL fs/quota/quota_tree 0x66549fe9 qtree_read_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xa55d7c61 qtree_write_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xd93993cc qtree_delete_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xfdedd19b qtree_release_dquot
+EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt
+EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table
+EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table
+EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t
+EXPORT_SYMBOL lib/crc7 0xa7587646 crc7
+EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table
+EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd
+EXPORT_SYMBOL net/802/p8023 0xb7fb9f70 make_8023_client
+EXPORT_SYMBOL net/802/p8023 0xddd749c4 destroy_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x01004374 p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x061510ea p9_client_auth
+EXPORT_SYMBOL net/9p/9pnet 0x08148861 p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x0c15c670 v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0x12d6e81b p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x1a20238b p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0x1accd49c p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x2bbf9cf3 p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0x343d78ce p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x61db0c99 p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x64dc3846 p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x665fd509 p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x740597bc p9_idpool_check
+EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x7be3fa46 p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x85473b85 p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x871db4d6 p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0x935b2d53 p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x94c4ff02 v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0x97b24d45 p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0xa2bce8b7 p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xabf52c95 p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0xb38d2e09 v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0xb82adf6a p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0xbce5689a p9_client_version
+EXPORT_SYMBOL net/9p/9pnet 0xc08d63bd p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0xd0c332cb p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0xd18b683d p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump
+EXPORT_SYMBOL net/9p/9pnet 0xd35e0859 p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xeb15a480 p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0xf180c16f v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0xfee9915b p9_client_open
+EXPORT_SYMBOL net/ax25/ax25 0x1b60ec7d ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x3423c877 ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x5434b6f7 ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x8140edc4 ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0xa96a867d ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0xb3aa159b ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xf9cee1c6 ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0xfa64f5d5 ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0xfb74bb7b ax25_header_ops
+EXPORT_SYMBOL net/bridge/bridge 0x7342811b br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x31e159f3 ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc68273ca ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd9a347ed ebt_register_table
+EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client
+EXPORT_SYMBOL net/caif/caif 0x0945ee0f cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x0d1c94d3 cfpkt_iterate
+EXPORT_SYMBOL net/caif/caif 0x0ee194b4 cfpkt_qcount
+EXPORT_SYMBOL net/caif/caif 0x0effe433 cfpkt_raw_append
+EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer
+EXPORT_SYMBOL net/caif/caif 0x15f1cc70 cfpkt_add_body
+EXPORT_SYMBOL net/caif/caif 0x210d71ea cfpkt_erroneous
+EXPORT_SYMBOL net/caif/caif 0x24ddf7b8 cfpktq_create
+EXPORT_SYMBOL net/caif/caif 0x25dee5f6 cfpkt_queue
+EXPORT_SYMBOL net/caif/caif 0x2b0dda12 cfpkt_addbdy
+EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x491a8c9f cfpkt_pad_trail
+EXPORT_SYMBOL net/caif/caif 0x51e9d62a cfpkt_add_trail
+EXPORT_SYMBOL net/caif/caif 0x59e869df cfpkt_peek_head
+EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create
+EXPORT_SYMBOL net/caif/caif 0x6e7283cd cfpkt_create_uplink
+EXPORT_SYMBOL net/caif/caif 0x6eee0b70 cfpkt_create
+EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x85860b86 cfpkt_raw_extract
+EXPORT_SYMBOL net/caif/caif 0x94b523a7 cfpkt_qpeek
+EXPORT_SYMBOL net/caif/caif 0x9f11ed0b cfpkt_add_head
+EXPORT_SYMBOL net/caif/caif 0xa1047a6f cfpkt_log_pkt
+EXPORT_SYMBOL net/caif/caif 0xa139def1 cfpkt_setlen
+EXPORT_SYMBOL net/caif/caif 0xa21d91ac cfpkt_info
+EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xb44956aa cfpkt_append
+EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer
+EXPORT_SYMBOL net/caif/caif 0xc03d7c95 cfpkt_destroy
+EXPORT_SYMBOL net/caif/caif 0xc1f6d3a1 cfpkt_getlen
+EXPORT_SYMBOL net/caif/caif 0xc8d4c342 cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0xd1342cd5 cfpkt_extr_head
+EXPORT_SYMBOL net/caif/caif 0xd31f1e05 cfpkt_dequeue
+EXPORT_SYMBOL net/caif/caif 0xdeffeb65 cfpkt_extr_trail
+EXPORT_SYMBOL net/caif/caif 0xe87ab384 cfpkt_clone_release
+EXPORT_SYMBOL net/caif/caif 0xef277ab2 cfpkt_split
+EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf
+EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer
+EXPORT_SYMBOL net/caif/caif 0xf6822a55 cfpkt_more
+EXPORT_SYMBOL net/can/can 0x16cd8309 can_proto_register
+EXPORT_SYMBOL net/can/can 0x1ea7a7d6 can_send
+EXPORT_SYMBOL net/can/can 0x6816e690 can_proto_unregister
+EXPORT_SYMBOL net/can/can 0x8ba50045 can_rx_unregister
+EXPORT_SYMBOL net/can/can 0xe0866d97 can_rx_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x212e12b4 wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x452b9de2 ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x4b8d0ca4 ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x6198ff81 wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x6ca0623a ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x710dd7c3 wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x829aa665 wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x8e6a4e64 ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xd4ffe46a ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xdda0fe27 wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xeb48766b wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xf05fa32f ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xfb816ec8 ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x17172cf4 arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x4cb677de arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe2a5295f arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x70a59e18 ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xaa06d0f2 ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xbc54449d ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x147c9c30 nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x46b02dc5 nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x67bc46b9 nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x69615ff2 nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x88d77818 nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9a644120 __nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb4f501e8 nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0x248fac9e xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0x8946b359 xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x0c2eb03b ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x1549ce14 ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x295c76e3 ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xf2c5f1b1 ip6t_do_table
+EXPORT_SYMBOL net/ipv6/tunnel6 0x0ecb3abc xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/tunnel6 0x881fb875 xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x44300807 xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x89af965e xfrm6_tunnel_free_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xd4f917cf xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x1e372626 l2tp_tunnel_destruct
+EXPORT_SYMBOL net/l2tp/l2tp_core 0xe73e0feb l2tp_recv_common
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b6e02b1 ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x10874abd ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x1e4d49bf ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x2e2b805d __ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x33cce846 ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x35687778 ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x51aa710d ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0x5257261a ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x52de2e88 ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x57135ba3 ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x60cef18e rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0x696478ca ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x7b3d7941 ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x7e392cab ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x8878fd18 ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x8a60f730 __ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x924ed67c ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x9c084acc ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x9cbf5fad ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x9cdd4148 __ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x9d4f4a59 __ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0xa1e163a0 ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xb2115fba ieee80211_get_tkip_key
+EXPORT_SYMBOL net/mac80211/mac80211 0xbcd4dfff ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xbfb98bae ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xc585c117 ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xd70560eb ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xe1c1b216 ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xe391f2ba ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xe3fd6935 ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0xe5040658 wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xe65cc0f9 ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xe7361b37 ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0xf1063bac ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0xf6107180 ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0xf8dacc82 ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0xff992b5e ieee80211_stop_queue
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x382ea605 register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6017b3c5 ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x60253a08 unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9d85ed58 ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xad0d80e4 ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb5f6269a register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe23fee35 ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe3938255 ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe881bb4b register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xefedf2e8 unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfcb3f601 ip_vs_skb_replace
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x9cf39f45 __nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xe1034970 __nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x766cdedb nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x0870574e xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x223bfbd9 xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x2991cc54 xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x59542c19 xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x73db271e xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x8685aa5d xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x8bc5a166 xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x8c72c554 xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xd0a2f48a xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xdf78e338 xt_register_targets
+EXPORT_SYMBOL net/phonet/phonet 0x03d492ae pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0x060a6637 pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0x292b6ef4 pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0x3aeb8bc4 phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0x480b192d pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0x4952005d phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x4f8a5cdf phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0xbd3cedb1 phonet_header_ops
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x17b91c57 rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x262eae4f rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2b7027b1 key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5869b4ce rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x831643ac rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x942ec88a rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x94b03caf rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x95607a01 rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb27fb78d rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc4b6babd rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc55eae20 rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcce92c00 rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe5e41b61 rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf8a3724c rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfab32f82 rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x59a42952 svc_pool_stats_open
+EXPORT_SYMBOL net/wimax/wimax 0xbf7a038e wimax_rfkill
+EXPORT_SYMBOL net/wimax/wimax 0xc969e41c wimax_reset
+EXPORT_SYMBOL net/wireless/cfg80211 0x0732a945 cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x07508c3d wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x07e148af cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x09cef861 wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0x106a67c8 cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0x126aa4d8 cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x159ea7c3 cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x1ad247a3 cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0x1ce56498 wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x1d311f9c cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x2895b53f ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0x28ae9031 cfg80211_action_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x3807e6af __ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x3f0eb0c6 cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0x3fbee4f6 cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x415df873 wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x58409d43 cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x5cf320df cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x606aa8b0 cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x853fe9da wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x89de3ddb wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x90e7880c cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x9597ed2b cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x9e362f61 cfg80211_rx_action
+EXPORT_SYMBOL net/wireless/cfg80211 0xa1ec1292 cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xa7a99186 cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0xaafe8246 cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xab0cc1d4 wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xb2610da2 ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xb3ad6eba cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0xb651590c cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0xbde2249a ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0xc0d72a63 cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0xc1e2b2c2 wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0xc22fbfd1 ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0xc5be65fb regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xc7b46647 __cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xc94d2ae8 __cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0xd5f79522 cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8aa9b72 __cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xe8fdda3a cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0xedebb19e cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xf46839a7 cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0xf4e08f93 cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xf5521927 freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0xff5357f3 cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x361a7861 lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x5afe494c lib80211_crypt_quiescing
+EXPORT_SYMBOL net/wireless/lib80211 0x95a4e240 lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xa466d2d6 lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xb286b680 lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0xc2ec1f97 lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0xe20c3090 lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0xfa4efb64 lib80211_crypt_deinit_entries
+EXPORT_SYMBOL sound/ac97_bus 0x2f69c7fe ac97_bus_type
+EXPORT_SYMBOL sound/core/snd 0x01bc8d30 snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL sound/core/snd 0x030fc3cb snd_add_device_sysfs_file
+EXPORT_SYMBOL sound/core/snd 0x05122457 snd_card_set_id
+EXPORT_SYMBOL sound/core/snd 0x07f64934 snd_ctl_remove
+EXPORT_SYMBOL sound/core/snd 0x0bb8fd70 snd_component_add
+EXPORT_SYMBOL sound/core/snd 0x114a9785 snd_info_free_entry
+EXPORT_SYMBOL sound/core/snd 0x17f2a96a snd_ctl_remove_id
+EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line
+EXPORT_SYMBOL sound/core/snd 0x25fbe070 snd_ctl_notify
+EXPORT_SYMBOL sound/core/snd 0x2acb41db snd_device_register
+EXPORT_SYMBOL sound/core/snd 0x344d4257 snd_ctl_unregister_ioctl
+EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit
+EXPORT_SYMBOL sound/core/snd 0x470d47d2 snd_card_disconnect
+EXPORT_SYMBOL sound/core/snd 0x4a2283bd snd_info_register
+EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card
+EXPORT_SYMBOL sound/core/snd 0x4af36eb9 snd_jack_set_parent
+EXPORT_SYMBOL sound/core/snd 0x57e0712c snd_ctl_free_one
+EXPORT_SYMBOL sound/core/snd 0x5ba8f278 snd_unregister_device
+EXPORT_SYMBOL sound/core/snd 0x5f0932ac snd_info_create_card_entry
+EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio
+EXPORT_SYMBOL sound/core/snd 0x660eb126 snd_card_proc_new
+EXPORT_SYMBOL sound/core/snd 0x6a5269f5 snd_ctl_find_numid
+EXPORT_SYMBOL sound/core/snd 0x6ce2c7a1 snd_jack_new
+EXPORT_SYMBOL sound/core/snd 0x754dd5bd snd_ctl_boolean_mono_info
+EXPORT_SYMBOL sound/core/snd 0x7652e6aa snd_info_create_module_entry
+EXPORT_SYMBOL sound/core/snd 0x77d8ea95 snd_power_wait
+EXPORT_SYMBOL sound/core/snd 0x783043ee _snd_ctl_add_slave
+EXPORT_SYMBOL sound/core/snd 0x7cc5197f snd_pci_quirk_lookup
+EXPORT_SYMBOL sound/core/snd 0x813128e7 snd_card_register
+EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major
+EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str
+EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id
+EXPORT_SYMBOL sound/core/snd 0xa9478aa0 snd_device_free
+EXPORT_SYMBOL sound/core/snd 0xaa522fb9 snd_ctl_new1
+EXPORT_SYMBOL sound/core/snd 0xaac66665 snd_jack_report
+EXPORT_SYMBOL sound/core/snd 0xb17ea454 snd_jack_set_key
+EXPORT_SYMBOL sound/core/snd 0xb2a4af73 snd_card_file_remove
+EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data
+EXPORT_SYMBOL sound/core/snd 0xb3ebf83d snd_device_new
+EXPORT_SYMBOL sound/core/snd 0xc650e91c snd_ctl_find_id
+EXPORT_SYMBOL sound/core/snd 0xc98818b1 snd_card_file_add
+EXPORT_SYMBOL sound/core/snd 0xc9e066a9 snd_card_free_when_closed
+EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio
+EXPORT_SYMBOL sound/core/snd 0xcfd60846 snd_cards
+EXPORT_SYMBOL sound/core/snd 0xd1157735 release_and_free_resource
+EXPORT_SYMBOL sound/core/snd 0xdd14d346 snd_ctl_add
+EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf
+EXPORT_SYMBOL sound/core/snd 0xe7cdf98a snd_register_device_for_dev
+EXPORT_SYMBOL sound/core/snd 0xe955239c snd_seq_root
+EXPORT_SYMBOL sound/core/snd 0xecf4ae19 snd_ctl_rename_id
+EXPORT_SYMBOL sound/core/snd 0xef9b4e2f snd_card_create
+EXPORT_SYMBOL sound/core/snd 0xf9ad2177 snd_card_free
+EXPORT_SYMBOL sound/core/snd 0xfae58e1a snd_ctl_make_virtual_master
+EXPORT_SYMBOL sound/core/snd 0xff3bdddd snd_ctl_register_ioctl
+EXPORT_SYMBOL sound/core/snd-hwdep 0xe4a86cf0 snd_hwdep_new
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x17cbd3ac snd_dma_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x222d1ead snd_dma_alloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x2badf8e2 snd_dma_get_reserved_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x8d6905e8 snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xb4424aa8 snd_dma_reserve_buf
+EXPORT_SYMBOL sound/core/snd-pcm 0x00110d5c snd_pcm_lib_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any
+EXPORT_SYMBOL sound/core/snd-pcm 0x0404564f snd_pcm_lib_readv
+EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x05ea6c78 snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL sound/core/snd-pcm 0x0c40b931 snd_pcm_hw_constraint_list
+EXPORT_SYMBOL sound/core/snd-pcm 0x103cded1 snd_pcm_release_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0x10d6a764 snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL sound/core/snd-pcm 0x117741bd snd_pcm_hw_rule_add
+EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed
+EXPORT_SYMBOL sound/core/snd-pcm 0x2e286b38 _snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x2e7750f5 snd_pcm_stop
+EXPORT_SYMBOL sound/core/snd-pcm 0x341f2950 snd_pcm_set_sync
+EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty
+EXPORT_SYMBOL sound/core/snd-pcm 0x44f9fe0c snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL sound/core/snd-pcm 0x472959b4 snd_pcm_new_stream
+EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size
+EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x51ae9220 snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value
+EXPORT_SYMBOL sound/core/snd-pcm 0x5d092746 snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence
+EXPORT_SYMBOL sound/core/snd-pcm 0x609210c4 snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x62b46134 snd_pcm_suspend
+EXPORT_SYMBOL sound/core/snd-pcm 0x63ef3b39 snd_pcm_notify
+EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64
+EXPORT_SYMBOL sound/core/snd-pcm 0x67fe69c1 snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width
+EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear
+EXPORT_SYMBOL sound/core/snd-pcm 0x7c560345 snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x9030346f snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x904e8ebc snd_pcm_hw_constraint_step
+EXPORT_SYMBOL sound/core/snd-pcm 0x928b95db snd_pcm_lib_write
+EXPORT_SYMBOL sound/core/snd-pcm 0x9aecce26 snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned
+EXPORT_SYMBOL sound/core/snd-pcm 0xabe0d6eb snd_pcm_period_elapsed
+EXPORT_SYMBOL sound/core/snd-pcm 0xb4701a24 snd_pcm_hw_param_last
+EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL sound/core/snd-pcm 0xb9c72990 snd_pcm_open_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xbc6c6fad snd_pcm_lib_writev
+EXPORT_SYMBOL sound/core/snd-pcm 0xbf0f5e77 snd_pcm_lib_read
+EXPORT_SYMBOL sound/core/snd-pcm 0xc2d055eb snd_pcm_hw_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0xc373e7d0 snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0xc400717e snd_pcm_lib_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0xcb75d0c9 snd_pcm_new
+EXPORT_SYMBOL sound/core/snd-pcm 0xcf73ff5a snd_pcm_set_ops
+EXPORT_SYMBOL sound/core/snd-pcm 0xd072929e snd_pcm_suspend_all
+EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xd6903e54 snd_pcm_lib_mmap_noncached
+EXPORT_SYMBOL sound/core/snd-pcm 0xd7b27fc7 snd_pcm_limit_hw_rates
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width
+EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum
+EXPORT_SYMBOL sound/core/snd-pcm 0xf6d7e5d6 snd_pcm_link_rwlock
+EXPORT_SYMBOL sound/core/snd-pcm 0xf9fff766 snd_pcm_hw_param_first
+EXPORT_SYMBOL sound/core/snd-pcm 0xfb4c8d73 snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL sound/core/snd-pcm 0xfbacf2db snd_pcm_kernel_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0xff3d99c1 snd_pcm_mmap_data
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x0085a5ce snd_rawmidi_kernel_release
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x25f0b818 snd_rawmidi_transmit
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x2e371c28 snd_rawmidi_set_ops
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x476b0782 snd_rawmidi_drain_input
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x4db97cb4 snd_rawmidi_output_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x85678b2e snd_rawmidi_kernel_write
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x8845ef3a snd_rawmidi_transmit_peek
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x8a27fb98 snd_rawmidi_drain_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x93ac0ca9 snd_rawmidi_kernel_open
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x9e9c5059 snd_rawmidi_transmit_ack
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xa619ef84 snd_rawmidi_receive
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xb4785c0b snd_rawmidi_kernel_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xd2dfd84c snd_rawmidi_drop_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xe0ee59db snd_rawmidi_transmit_empty
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xe4aa28cc snd_rawmidi_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xe6737c93 snd_rawmidi_info_select
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xea7ccf5c snd_rawmidi_input_params
+EXPORT_SYMBOL sound/core/snd-timer 0x0a85df15 snd_timer_open
+EXPORT_SYMBOL sound/core/snd-timer 0x21852536 snd_timer_global_register
+EXPORT_SYMBOL sound/core/snd-timer 0x2a3ba7e7 snd_timer_new
+EXPORT_SYMBOL sound/core/snd-timer 0x2d2b9d4b snd_timer_start
+EXPORT_SYMBOL sound/core/snd-timer 0x6011f3b3 snd_timer_notify
+EXPORT_SYMBOL sound/core/snd-timer 0x67e9d957 snd_timer_pause
+EXPORT_SYMBOL sound/core/snd-timer 0x711a9097 snd_timer_resolution
+EXPORT_SYMBOL sound/core/snd-timer 0x89c2dc84 snd_timer_close
+EXPORT_SYMBOL sound/core/snd-timer 0x8c1217f9 snd_timer_interrupt
+EXPORT_SYMBOL sound/core/snd-timer 0x9080674b snd_timer_global_free
+EXPORT_SYMBOL sound/core/snd-timer 0x9f0d8597 snd_timer_global_new
+EXPORT_SYMBOL sound/core/snd-timer 0xb0547975 snd_timer_continue
+EXPORT_SYMBOL sound/core/snd-timer 0xea5f7507 snd_timer_stop
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xa6d782e8 snd_mpu401_uart_new
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2c09d2fd snd_opl3_init
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x841e660f snd_opl3_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8fc026c2 snd_opl3_create
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa3a61766 snd_opl3_timer_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb24bbae6 snd_opl3_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc02e55e9 snd_opl3_hwdep_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe8df32f3 snd_opl3_reset
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x002b0661 snd_vx_dsp_boot
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0c2d1794 snd_vx_suspend
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7b203763 snd_vx_setup_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x7bfaf099 snd_vx_free_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8a56d3fd snd_vx_create
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb3e989da snd_vx_check_reg_bit
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd23cfc85 snd_vx_dsp_load
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdd44e40c snd_vx_resume
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe807d957 snd_vx_load_boot_image
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x41dbf73f snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x5b1fca90 snd_ak4114_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x96a2593a snd_ak4114_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa5dfa789 snd_ak4114_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xbfe74c61 snd_ak4114_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc8d87fe3 snd_ak4114_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x26a2ff83 snd_akm4xxx_reset
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x2a19bcdd snd_akm4xxx_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x5aa30b30 snd_akm4xxx_init
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x5bd2892f snd_akm4xxx_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x50762753 snd_pt2258_reset
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x7c6535ea snd_pt2258_build_controls
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xbf2bf3a6 snd_cs8427_create
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xc679a3fa snd_cs8427_reg_write
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd914da63 snd_cs8427_iec958_active
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xee6b1ccc snd_cs8427_iec958_build
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf9738b29 snd_cs8427_iec958_pcm
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x04865e7b snd_i2c_device_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x207c9593 snd_i2c_device_free
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x80effb97 snd_i2c_sendbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x9030f91c snd_i2c_probeaddr
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x9a784b96 snd_i2c_bus_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xed33838a snd_i2c_readbytes
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0e127f74 snd_ac97_suspend
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x28059076 snd_ac97_update
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x28a7dad3 snd_ac97_pcm_open
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3602ad35 snd_ac97_resume
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3fe4616c snd_ac97_tune_hardware
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7859ac85 snd_ac97_bus
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7dddbb77 snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x824172a0 snd_ac97_update_bits
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa183b5f0 snd_ac97_pcm_close
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb8b70cae snd_ac97_update_power
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbb8ad331 snd_ac97_write
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdf1ba3f9 snd_ac97_get_short_name
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdf22e750 snd_ac97_pcm_assign
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdf932831 snd_ac97_read
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe775f832 snd_ac97_mixer
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf631788b snd_ac97_write_cache
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfe66b5b4 snd_ac97_set_rate
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x03c6076a snd_emu10k1_ptr_read
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x556c544b snd_emu10k1_synth_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x60af83b6 snd_emu10k1_synth_bzero
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7ecb69df snd_emu10k1_voice_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9940bb18 snd_emu10k1_ptr_write
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x995c1edc snd_emu10k1_synth_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd989525a snd_emu10k1_memblk_map
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf51af4fd snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf930a122 snd_emu10k1_voice_alloc
+EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x761f553f snd_hda_parse_generic_codec
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x39e6612c snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x5024f6a5 snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x50e88acb snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0217ac10 oxygen_read_ac97
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0d9dc81e oxygen_pci_suspend
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x10a7aa76 oxygen_pci_probe
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x17abe7ec oxygen_write_spi
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3d0082a4 oxygen_write_ac97_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x54e14530 oxygen_write_uart
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x55b36dea oxygen_write8_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x72ecac4e oxygen_pci_resume
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x79480fc6 oxygen_write8
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x79510bde oxygen_write16_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x86a422f5 oxygen_write_ac97
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8f51d1a4 oxygen_write32
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa653c8ea oxygen_reset_uart
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xab7b5588 oxygen_pci_remove
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbf31d6b1 oxygen_write_i2c
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc2247821 oxygen_read16
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe81b0ec7 oxygen_write32_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe989550c oxygen_write16
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xef63f9cc oxygen_read32
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf27d5d7a oxygen_read8
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf50b4626 oxygen_default_i2s_mclk
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x103dd1fd snd_trident_alloc_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x34093dc5 snd_trident_stop_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xa557c1a0 snd_trident_start_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xada93890 snd_trident_free_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xf394d52d snd_trident_write_voice_regs
+EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0xb6eb7a55 uda134x_dai
+EXPORT_SYMBOL sound/soundcore 0x10616600 sound_class
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x33dc5202 snd_util_memhdr_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x43178f7e snd_util_mem_avail
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x5d25ada3 __snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x694c6b7a snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x74624765 __snd_util_memblk_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x80b8d66f snd_util_memhdr_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xc535653c snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xe6ce4268 __snd_util_mem_free
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x7ed7806d snd_usbmidi_create
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x5038da42 dm_mem_cache_client_destroy
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x6062e260 dm_mem_cache_grow
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x808eacf1 dm_mem_cache_client_create
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x8eb522f3 dm_mem_cache_alloc
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xd373b6cf dm_mem_cache_shrink
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xee205628 dm_mem_cache_free
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x04dca738 lirc_unregister_driver
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0xdcdd489b lirc_register_driver
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0xf541e393 lirc_get_pdata
+EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list
+EXPORT_SYMBOL vmlinux 0x000c5ebd pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0x00441f59 tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0x0059d356 pci_iomap
+EXPORT_SYMBOL vmlinux 0x0059e100 tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x0064d457 nobh_writepage
+EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x009f1cc6 dm_exception_store_create
+EXPORT_SYMBOL vmlinux 0x00a89ed6 vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x00ab80e3 inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x00bcc8ea inet6_getname
+EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x00eef49e __strnlen_user
+EXPORT_SYMBOL vmlinux 0x01000e51 schedule
+EXPORT_SYMBOL vmlinux 0x0111be52 km_report
+EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr
+EXPORT_SYMBOL vmlinux 0x01424f59 sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x014be266 register_quota_format
+EXPORT_SYMBOL vmlinux 0x015f89c3 locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x01859d97 insert_inode_locked
+EXPORT_SYMBOL vmlinux 0x018f55ee vfs_link
+EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap
+EXPORT_SYMBOL vmlinux 0x019354a9 page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data
+EXPORT_SYMBOL vmlinux 0x01dc710a tty_unthrottle
+EXPORT_SYMBOL vmlinux 0x01e3e198 clkdev_add
+EXPORT_SYMBOL vmlinux 0x01e7c856 bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0x01fb1b19 dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x02123977 ip_dev_find
+EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check
+EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv
+EXPORT_SYMBOL vmlinux 0x021ac85a xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0x021fff9e tcf_hash_check
+EXPORT_SYMBOL vmlinux 0x024fe8d5 udp_table
+EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x026a5fb1 mfd_add_devices
+EXPORT_SYMBOL vmlinux 0x027f5f71 pci_claim_resource
+EXPORT_SYMBOL vmlinux 0x029e93d2 tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a2016e backlight_device_register
+EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table
+EXPORT_SYMBOL vmlinux 0x02b41f85 xfrm_state_update
+EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact
+EXPORT_SYMBOL vmlinux 0x0302c48b idr_destroy
+EXPORT_SYMBOL vmlinux 0x0308445a abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0x0310686d uart_get_divisor
+EXPORT_SYMBOL vmlinux 0x031ba9bf atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0x0320cb58 inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x0334795d icst307_s2div
+EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x033dc424 del_gendisk
+EXPORT_SYMBOL vmlinux 0x0364acc3 vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x037a0cba kfree
+EXPORT_SYMBOL vmlinux 0x039b0aec should_remove_suid
+EXPORT_SYMBOL vmlinux 0x039b8bd6 kmem_cache_size
+EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03c39691 unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0x03c77cba sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x03edbbc8 jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x0400429e set_irq_chip
+EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x044c2c10 get_phy_device
+EXPORT_SYMBOL vmlinux 0x0459b6ec security_path_link
+EXPORT_SYMBOL vmlinux 0x045b6020 abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0x046ae915 tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x04a4dd92 __devm_request_region
+EXPORT_SYMBOL vmlinux 0x04b58be5 blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0x04ffe49d key_negate_and_link
+EXPORT_SYMBOL vmlinux 0x051e0370 pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups
+EXPORT_SYMBOL vmlinux 0x053fc988 kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x054514a6 ppp_dev_name
+EXPORT_SYMBOL vmlinux 0x0574ae87 mmc_try_claim_host
+EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x05b6e159 mii_check_gmii_support
+EXPORT_SYMBOL vmlinux 0x05ba2141 sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion
+EXPORT_SYMBOL vmlinux 0x061651be strcat
+EXPORT_SYMBOL vmlinux 0x064bc5ae block_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x064c42cf __inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx
+EXPORT_SYMBOL vmlinux 0x069247be ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0x069dcb82 xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0x06a4427a kfree_skb
+EXPORT_SYMBOL vmlinux 0x06d3388a kobject_put
+EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn
+EXPORT_SYMBOL vmlinux 0x0736a6fd tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x07742777 simple_set_mnt
+EXPORT_SYMBOL vmlinux 0x07743f50 inode_permission
+EXPORT_SYMBOL vmlinux 0x07915886 clk_round_rate
+EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable
+EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong
+EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07aa5c49 tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0x07b8e1c8 jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x07bb5f8d elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x07c19550 unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x0823f919 xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses
+EXPORT_SYMBOL vmlinux 0x084d1bde inode_init_once
+EXPORT_SYMBOL vmlinux 0x084f499c rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0x088b2631 complete_request_key
+EXPORT_SYMBOL vmlinux 0x088ece7b tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0x08a178d4 pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x08ded414 ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x0905a502 dev_trans_start
+EXPORT_SYMBOL vmlinux 0x09289349 rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq
+EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages
+EXPORT_SYMBOL vmlinux 0x094a9b66 downgrade_write
+EXPORT_SYMBOL vmlinux 0x09571aab path_get
+EXPORT_SYMBOL vmlinux 0x09775cdc kref_get
+EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x09a58895 pskb_copy
+EXPORT_SYMBOL vmlinux 0x09aff362 neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0x09c1833e alloc_trdev
+EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d282f7 skb_pad
+EXPORT_SYMBOL vmlinux 0x09e3611d xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0x09ea2f68 jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0x09ef257b remove_proc_entry
+EXPORT_SYMBOL vmlinux 0x0a1bebc5 kernel_execve
+EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a25558d register_netdev
+EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr
+EXPORT_SYMBOL vmlinux 0x0a4a5c10 dquot_operations
+EXPORT_SYMBOL vmlinux 0x0a4f42a4 ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x0a5d01a3 xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0x0a605020 inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0x0a76690c register_sysctl_table
+EXPORT_SYMBOL vmlinux 0x0a79f9d7 page_put_link
+EXPORT_SYMBOL vmlinux 0x0a91dc0d skb_seq_read
+EXPORT_SYMBOL vmlinux 0x0aa13d05 __raw_readsw
+EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all
+EXPORT_SYMBOL vmlinux 0x0aeb0dcd serio_open
+EXPORT_SYMBOL vmlinux 0x0af737de tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert
+EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b1ce12f fb_pan_display
+EXPORT_SYMBOL vmlinux 0x0b32e121 xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize
+EXPORT_SYMBOL vmlinux 0x0b39dcd8 udp_proc_register
+EXPORT_SYMBOL vmlinux 0x0b487cde check_disk_change
+EXPORT_SYMBOL vmlinux 0x0b592ec9 tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b7c13b8 lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x0b8cf812 dev_load
+EXPORT_SYMBOL vmlinux 0x0b94d1b9 skb_set_dev
+EXPORT_SYMBOL vmlinux 0x0b9a26fe __bforget
+EXPORT_SYMBOL vmlinux 0x0bb48903 jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x0bc0dc65 splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x0c195e20 down_timeout
+EXPORT_SYMBOL vmlinux 0x0c3147b6 inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x0c35f2c6 sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x0c43cb03 security_path_rename
+EXPORT_SYMBOL vmlinux 0x0c64a6b8 mmc_register_driver
+EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c77dc91 vmap
+EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0ca8b302 skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0x0cab3b2f kobject_add
+EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cd021f3 generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0x0cdd158d sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x0d062bad security_file_mmap
+EXPORT_SYMBOL vmlinux 0x0d070c44 truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x0d18e133 xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x0d25ab2e elevator_exit
+EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le
+EXPORT_SYMBOL vmlinux 0x0d41063c pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d674f51 dquot_quota_off
+EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0db3877d ___dma_single_dev_to_cpu
+EXPORT_SYMBOL vmlinux 0x0dd9168a tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x0ddc2c70 cont_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x0e2876cc tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x0e3292b7 blk_requeue_request
+EXPORT_SYMBOL vmlinux 0x0e3592f8 xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0x0e52592a panic
+EXPORT_SYMBOL vmlinux 0x0e546fb7 register_qdisc
+EXPORT_SYMBOL vmlinux 0x0e837c3a sock_no_mmap
+EXPORT_SYMBOL vmlinux 0x0e8890d5 netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0x0e899592 __skb_bond_should_drop
+EXPORT_SYMBOL vmlinux 0x0e9ba78f tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0x0e9ca3c4 aio_complete
+EXPORT_SYMBOL vmlinux 0x0ea539cc tty_shutdown
+EXPORT_SYMBOL vmlinux 0x0ea7c887 udp_poll
+EXPORT_SYMBOL vmlinux 0x0eae495f seq_release_private
+EXPORT_SYMBOL vmlinux 0x0ec98808 ida_init
+EXPORT_SYMBOL vmlinux 0x0ed4ca77 hippi_type_trans
+EXPORT_SYMBOL vmlinux 0x0ee2099f skb_dequeue
+EXPORT_SYMBOL vmlinux 0x0ee606a0 mii_check_link
+EXPORT_SYMBOL vmlinux 0x0ee7c987 bdi_unregister
+EXPORT_SYMBOL vmlinux 0x0f14eafd unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x0f1b1e91 kmap_atomic
+EXPORT_SYMBOL vmlinux 0x0f1bab7e user_revoke
+EXPORT_SYMBOL vmlinux 0x0f2f2ec6 nobh_write_end
+EXPORT_SYMBOL vmlinux 0x0f6eccda dquot_initialize
+EXPORT_SYMBOL vmlinux 0x0f95d459 tty_name
+EXPORT_SYMBOL vmlinux 0x0f9bb4cc sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0x0fa2a45e __memzero
+EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fba1d95 pci_pme_active
+EXPORT_SYMBOL vmlinux 0x0fd3d8fb pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod
+EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress
+EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x1002b001 bdget
+EXPORT_SYMBOL vmlinux 0x105b8d9a i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user
+EXPORT_SYMBOL vmlinux 0x1073d56a nf_log_register
+EXPORT_SYMBOL vmlinux 0x107a36ce journal_ack_err
+EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint
+EXPORT_SYMBOL vmlinux 0x10bbe385 cdev_alloc
+EXPORT_SYMBOL vmlinux 0x10bd42c4 netlink_unicast
+EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10dcbbc5 bitmap_cond_end_sync
+EXPORT_SYMBOL vmlinux 0x10ec5c53 netif_device_attach
+EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu
+EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype
+EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x1137fb48 xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0x11390d71 pcibios_fixup_bus
+EXPORT_SYMBOL vmlinux 0x113b812c do_map_probe
+EXPORT_SYMBOL vmlinux 0x11584de8 sg_miter_start
+EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x11710e69 mmc_free_host
+EXPORT_SYMBOL vmlinux 0x1198e9b8 ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch
+EXPORT_SYMBOL vmlinux 0x11a522bb follow_up
+EXPORT_SYMBOL vmlinux 0x11ce4aa8 phy_register_fixup
+EXPORT_SYMBOL vmlinux 0x11d00df2 shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x11ecaf79 sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin
+EXPORT_SYMBOL vmlinux 0x1228e115 dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0x125c53fc __scm_destroy
+EXPORT_SYMBOL vmlinux 0x12837c45 fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0x12ba9fdd wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x12c193e5 sk_alloc
+EXPORT_SYMBOL vmlinux 0x12d779fb mnt_pin
+EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc
+EXPORT_SYMBOL vmlinux 0x12db9a34 max8925_reg_write
+EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x12ece45e generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x12fc8721 pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0x132f7404 ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0x133e1e4e pcibios_resource_to_bus
+EXPORT_SYMBOL vmlinux 0x133ec694 hippi_neigh_setup_dev
+EXPORT_SYMBOL vmlinux 0x1344084f neigh_lookup
+EXPORT_SYMBOL vmlinux 0x1355d0c8 scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0x13794d15 tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0x138d202c blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0x13ace134 neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x13b03b7e locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x13b448d2 proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x13b8c783 netlink_ack
+EXPORT_SYMBOL vmlinux 0x13d8c5c8 generic_file_llseek_unlocked
+EXPORT_SYMBOL vmlinux 0x13f05d0a tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x14208b14 dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x1431efce elv_rb_find
+EXPORT_SYMBOL vmlinux 0x144f6b23 dma_unmap_sg
+EXPORT_SYMBOL vmlinux 0x146305ce security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0x148f2e83 abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x149047c4 kthread_create
+EXPORT_SYMBOL vmlinux 0x14a24cd9 arp_tbl
+EXPORT_SYMBOL vmlinux 0x14bb184b input_free_device
+EXPORT_SYMBOL vmlinux 0x14e649cc cap_file_mmap
+EXPORT_SYMBOL vmlinux 0x14fcaf77 tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x150c9149 dm_dirty_log_destroy
+EXPORT_SYMBOL vmlinux 0x1513188f neigh_update
+EXPORT_SYMBOL vmlinux 0x152c2262 fd_install
+EXPORT_SYMBOL vmlinux 0x152ef927 igrab
+EXPORT_SYMBOL vmlinux 0x153fc9b2 d_rehash
+EXPORT_SYMBOL vmlinux 0x154a63da tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0x154d5b48 framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x155cff16 splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0x155da9d3 task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0x15606839 kunmap
+EXPORT_SYMBOL vmlinux 0x15739a95 pci_enable_device
+EXPORT_SYMBOL vmlinux 0x15d03a2c sync_inode
+EXPORT_SYMBOL vmlinux 0x15d457f7 dquot_quota_on
+EXPORT_SYMBOL vmlinux 0x15f20c73 ioremap_page
+EXPORT_SYMBOL vmlinux 0x15f97990 dev_uc_flush
+EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x16401066 xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0x16554541 jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x166ae2a4 n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x166e74a2 cpu_v7_set_pte_ext
+EXPORT_SYMBOL vmlinux 0x166efaf5 dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0x16773c72 dma_map_sg
+EXPORT_SYMBOL vmlinux 0x16990395 spi_attach_transport
+EXPORT_SYMBOL vmlinux 0x16a7ed9f rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0x16b52e65 rtnl_create_link
+EXPORT_SYMBOL vmlinux 0x16e1a961 bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0x170aaab0 llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0x170aee64 tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x170ec140 seq_printf
+EXPORT_SYMBOL vmlinux 0x17796c18 __nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x179a828e dquot_disable
+EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user
+EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x1828be93 __nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL vmlinux 0x185fb038 sock_create_kern
+EXPORT_SYMBOL vmlinux 0x188af295 tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x18aabf4a scsi_device_put
+EXPORT_SYMBOL vmlinux 0x18e2c531 ip_route_output_key
+EXPORT_SYMBOL vmlinux 0x191dc1cf pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x1925cd91 init_special_inode
+EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock
+EXPORT_SYMBOL vmlinux 0x1994f762 generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19a49ed1 jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x19a98334 pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0x19b156c8 seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x19b4d27f sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x19c67a06 generic_writepages
+EXPORT_SYMBOL vmlinux 0x19d39ade con_is_bound
+EXPORT_SYMBOL vmlinux 0x1a0adb4b loop_register_transfer
+EXPORT_SYMBOL vmlinux 0x1a2f2a43 dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0x1a3cbdc0 sg_miter_stop
+EXPORT_SYMBOL vmlinux 0x1a4d26d6 pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0x1a5c8273 inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn
+EXPORT_SYMBOL vmlinux 0x1a7260b2 journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x1a882364 down_killable
+EXPORT_SYMBOL vmlinux 0x1a9df6cc malloc_sizes
+EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in
+EXPORT_SYMBOL vmlinux 0x1aa30cc0 gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0x1aaad30a neigh_create
+EXPORT_SYMBOL vmlinux 0x1accb102 icmpv6_send
+EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1ad0e6d9 free_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio
+EXPORT_SYMBOL vmlinux 0x1afa3025 ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x1afef650 tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b3134fd netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0x1b33aa3a jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x1b3686ec scsi_dma_map
+EXPORT_SYMBOL vmlinux 0x1b542f59 blk_register_region
+EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton
+EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1bb5ea49 sget
+EXPORT_SYMBOL vmlinux 0x1bca2fd9 cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0x1be30267 filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x1bf41707 journal_stop
+EXPORT_SYMBOL vmlinux 0x1bf56aa6 pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0x1c0143c1 blk_start_queue
+EXPORT_SYMBOL vmlinux 0x1c059395 km_policy_notify
+EXPORT_SYMBOL vmlinux 0x1c0a2881 __mmc_claim_host
+EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c5d08fe pci_remove_behind_bridge
+EXPORT_SYMBOL vmlinux 0x1c5e3878 icst525_idx2s
+EXPORT_SYMBOL vmlinux 0x1c6f1db0 follow_down
+EXPORT_SYMBOL vmlinux 0x1c7c2d11 jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1ccf69e3 ____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc
+EXPORT_SYMBOL vmlinux 0x1d14913a journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x1d1633be iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0x1d22967c call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0x1d2675ad mdiobus_write
+EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d2feab3 file_permission
+EXPORT_SYMBOL vmlinux 0x1d3b0a3a fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0x1d508cc2 tty_port_hangup
+EXPORT_SYMBOL vmlinux 0x1d595fd1 block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0x1d8c5879 scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0x1d903638 udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x1da00677 pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0x1daee3cf filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x1dc12894 jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dca6a8e scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0x1dcba925 end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1dface6a sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x1e16005b install_exec_creds
+EXPORT_SYMBOL vmlinux 0x1e55b6ce netpoll_poll_dev
+EXPORT_SYMBOL vmlinux 0x1e63d5df pci_set_master
+EXPORT_SYMBOL vmlinux 0x1e6621eb simple_getattr
+EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr
+EXPORT_SYMBOL vmlinux 0x1e7288fc dev_mc_add
+EXPORT_SYMBOL vmlinux 0x1e7b45ed inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1eb6fc8f bdput
+EXPORT_SYMBOL vmlinux 0x1eb99012 scsi_finish_command
+EXPORT_SYMBOL vmlinux 0x1ecf5e3d do_sync_read
+EXPORT_SYMBOL vmlinux 0x1eddf56b pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x1ee84fdb neigh_destroy
+EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set
+EXPORT_SYMBOL vmlinux 0x1f121c55 vfs_symlink
+EXPORT_SYMBOL vmlinux 0x1f2bd13e tcp_poll
+EXPORT_SYMBOL vmlinux 0x1f2bd78f xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0x1f9b6e4d thaw_process
+EXPORT_SYMBOL vmlinux 0x1f9cd35a scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0x1f9e0536 __blockdev_direct_IO_newtrunc
+EXPORT_SYMBOL vmlinux 0x1fab3b11 bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag
+EXPORT_SYMBOL vmlinux 0x1fe8bb8b bio_map_user
+EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat
+EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul
+EXPORT_SYMBOL vmlinux 0x20021998 set_security_override
+EXPORT_SYMBOL vmlinux 0x2003f085 blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x2025c775 register_exec_domain
+EXPORT_SYMBOL vmlinux 0x20269344 tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x203096aa generic_getxattr
+EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x203c2b02 tcp4_gro_receive
+EXPORT_SYMBOL vmlinux 0x2045f8ae bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x204b2858 inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x2069d96a ps2_command
+EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x20d03352 scsi_unregister
+EXPORT_SYMBOL vmlinux 0x20e44a0d single_open
+EXPORT_SYMBOL vmlinux 0x20ec2adb hippi_change_mtu
+EXPORT_SYMBOL vmlinux 0x20f9a41a tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0x210273eb free_buffer_head
+EXPORT_SYMBOL vmlinux 0x2108d57e __page_symlink
+EXPORT_SYMBOL vmlinux 0x211331fa __divsi3
+EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16
+EXPORT_SYMBOL vmlinux 0x21664f6b ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x216bfe48 lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x219dc309 vfs_getattr
+EXPORT_SYMBOL vmlinux 0x21eda897 get_sb_bdev
+EXPORT_SYMBOL vmlinux 0x21f4a2fa tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0x22131cfb down_write_trylock
+EXPORT_SYMBOL vmlinux 0x221dfde0 idr_pre_get
+EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq
+EXPORT_SYMBOL vmlinux 0x2263f52d ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0x22679441 skb_queue_tail
+EXPORT_SYMBOL vmlinux 0x226b8f65 __lookup_one_len
+EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log
+EXPORT_SYMBOL vmlinux 0x2288378f system_state
+EXPORT_SYMBOL vmlinux 0x22a4c995 pci_find_capability
+EXPORT_SYMBOL vmlinux 0x22aef842 __blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x22b0f7f2 pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound
+EXPORT_SYMBOL vmlinux 0x22dc2360 dev_mc_sync
+EXPORT_SYMBOL vmlinux 0x22df40ae scsi_init_io
+EXPORT_SYMBOL vmlinux 0x22f9d48d mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0x23034677 try_to_release_page
+EXPORT_SYMBOL vmlinux 0x230c3f0e blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0x2321f371 seq_write
+EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul
+EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x236c755e cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0x238168d1 sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x238bd00c gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x239381dd udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x23bb604d mii_link_ok
+EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23ce3e21 unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0x23d837e8 dquot_transfer
+EXPORT_SYMBOL vmlinux 0x23f767f5 cfi_read_pri
+EXPORT_SYMBOL vmlinux 0x23f8de35 mnt_unpin
+EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node
+EXPORT_SYMBOL vmlinux 0x24039c62 dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x240e3adf pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x242455de kernel_getpeername
+EXPORT_SYMBOL vmlinux 0x245007a3 create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x245d08e0 dma_alloc_from_coherent
+EXPORT_SYMBOL vmlinux 0x248d283b jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x24affea8 gen_pool_create
+EXPORT_SYMBOL vmlinux 0x24e266a5 dcache_dir_open
+EXPORT_SYMBOL vmlinux 0x24f602a6 check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x24fd0fb8 sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function
+EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x250f55ed bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0x252d7640 panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x254dbe49 rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x255a74ac tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x255fc695 ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0x25631aab dmam_pool_create
+EXPORT_SYMBOL vmlinux 0x256a5872 lock_rename
+EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x259d16ef pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0x25ab9ad0 qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x25cd0f75 seq_path
+EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0x25fa0775 fsnotify_obtain_group
+EXPORT_SYMBOL vmlinux 0x261c1766 __backtrace
+EXPORT_SYMBOL vmlinux 0x261c6780 tcp_read_sock
+EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc
+EXPORT_SYMBOL vmlinux 0x265d3b7a mmc_align_data_size
+EXPORT_SYMBOL vmlinux 0x2668992a skb_clone
+EXPORT_SYMBOL vmlinux 0x2670b6e1 bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0x26911e4d gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x26a5f4af blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0x26ac4fa0 bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0x26d988fc __sk_dst_check
+EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x26ebf4a4 file_fsync
+EXPORT_SYMBOL vmlinux 0x26f182cd do_SAK
+EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x27089eec i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0x27276854 vfs_writev
+EXPORT_SYMBOL vmlinux 0x273bf521 dm_io
+EXPORT_SYMBOL vmlinux 0x2742719a kobject_del
+EXPORT_SYMBOL vmlinux 0x277af174 boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0x27864d57 memparse
+EXPORT_SYMBOL vmlinux 0x279170b6 bio_map_kern
+EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic
+EXPORT_SYMBOL vmlinux 0x27d9d709 rt6_lookup
+EXPORT_SYMBOL vmlinux 0x27e12fc5 vga_client_register
+EXPORT_SYMBOL vmlinux 0x27fb7367 d_find_alias
+EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1
+EXPORT_SYMBOL vmlinux 0x281c0f22 mmc_power_restore_host
+EXPORT_SYMBOL vmlinux 0x282ed9b8 get_disk
+EXPORT_SYMBOL vmlinux 0x2830fee2 idr_get_next
+EXPORT_SYMBOL vmlinux 0x283a43b1 scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0x283dc1bc mii_check_media
+EXPORT_SYMBOL vmlinux 0x2846d86e set_create_files_as
+EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll
+EXPORT_SYMBOL vmlinux 0x2883b483 simple_statfs
+EXPORT_SYMBOL vmlinux 0x289208dc llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28c79558 vc_resize
+EXPORT_SYMBOL vmlinux 0x28e8b30c slow_work_register_user
+EXPORT_SYMBOL vmlinux 0x28ea039f generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0x290d1ffd pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0x291f040d journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x29271447 __netif_schedule
+EXPORT_SYMBOL vmlinux 0x29272d90 setup_new_exec
+EXPORT_SYMBOL vmlinux 0x2927f5fb page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0x2932e74d jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x2962a46d scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set
+EXPORT_SYMBOL vmlinux 0x29bd7c1e inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x29c4df14 arp_send
+EXPORT_SYMBOL vmlinux 0x29d2bb9f dquot_enable
+EXPORT_SYMBOL vmlinux 0x29d89b31 otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0x29fa6598 register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x2a0fa515 kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature
+EXPORT_SYMBOL vmlinux 0x2a35f4d9 alloc_etherdev_mq
+EXPORT_SYMBOL vmlinux 0x2a937d4c ilookup5
+EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp
+EXPORT_SYMBOL vmlinux 0x2aa7e293 call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0x2ad90c76 in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x2ae095f6 dm_dirty_log_type_register
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b517a86 proc_create_data
+EXPORT_SYMBOL vmlinux 0x2b688622 complete_and_exit
+EXPORT_SYMBOL vmlinux 0x2b90cdaa mempool_create
+EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2bcc5675 journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x2bf58b23 __skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x2bf8ffd5 kernel_bind
+EXPORT_SYMBOL vmlinux 0x2c0081ef scsi_get_command
+EXPORT_SYMBOL vmlinux 0x2c570a05 alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x2c72753b pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0x2c8264fa fsnotify_find_mark_entry
+EXPORT_SYMBOL vmlinux 0x2ccfcb9a log_start_commit
+EXPORT_SYMBOL vmlinux 0x2cdb8ddf filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic
+EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d16a9d8 pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0x2d28d4b6 md_register_thread
+EXPORT_SYMBOL vmlinux 0x2d34a1b4 dq_data_lock
+EXPORT_SYMBOL vmlinux 0x2d35ae70 netlink_set_err
+EXPORT_SYMBOL vmlinux 0x2d620ca6 ethtool_op_get_rx_csum
+EXPORT_SYMBOL vmlinux 0x2d6507b5 _find_next_zero_bit_le
+EXPORT_SYMBOL vmlinux 0x2d8048a6 sock_create_lite
+EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2d8dcb43 __starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x2dc24630 end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0x2dd67734 kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0x2df692e5 skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e2fd7f5 scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem
+EXPORT_SYMBOL vmlinux 0x2e5810c6 __aeabi_unwind_cpp_pr1
+EXPORT_SYMBOL vmlinux 0x2e62be3b dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x2e72e5de journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x2e8094b3 page_address
+EXPORT_SYMBOL vmlinux 0x2e82fec4 drop_super
+EXPORT_SYMBOL vmlinux 0x2e9f1dba misc_register
+EXPORT_SYMBOL vmlinux 0x2eafcafc gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x2ec08fee ___dma_page_dev_to_cpu
+EXPORT_SYMBOL vmlinux 0x2f15546c register_sysrq_key
+EXPORT_SYMBOL vmlinux 0x2f2827f9 bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0x2f54e65b netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0x2fae7741 cdrom_release
+EXPORT_SYMBOL vmlinux 0x2fd26a39 md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0x2fd31ec1 generic_fillattr
+EXPORT_SYMBOL vmlinux 0x2fe94161 may_umount_tree
+EXPORT_SYMBOL vmlinux 0x302c743b pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0x303e08cd sock_no_listen
+EXPORT_SYMBOL vmlinux 0x3058f6a4 bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0x307ac7f8 console_start
+EXPORT_SYMBOL vmlinux 0x30869811 mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0x309fe4ef cdev_index
+EXPORT_SYMBOL vmlinux 0x30b0595d set_page_dirty
+EXPORT_SYMBOL vmlinux 0x30ce1092 notify_change
+EXPORT_SYMBOL vmlinux 0x30d62d73 unlock_rename
+EXPORT_SYMBOL vmlinux 0x30e4fafc inet_register_protosw
+EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0x30f544bd netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0x310917fe sort
+EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x313341a3 _set_bit_le
+EXPORT_SYMBOL vmlinux 0x31355186 bio_put
+EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3145877c bitmap_unplug
+EXPORT_SYMBOL vmlinux 0x3147857d default_red
+EXPORT_SYMBOL vmlinux 0x3158185e dm_table_get_md
+EXPORT_SYMBOL vmlinux 0x3162f6b6 pci_select_bars
+EXPORT_SYMBOL vmlinux 0x31699efd uart_resume_port
+EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit
+EXPORT_SYMBOL vmlinux 0x3177f182 sock_no_poll
+EXPORT_SYMBOL vmlinux 0x317967e0 backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc
+EXPORT_SYMBOL vmlinux 0x31adfc65 journal_dirty_data
+EXPORT_SYMBOL vmlinux 0x31ae0b6c tty_hangup
+EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck
+EXPORT_SYMBOL vmlinux 0x31d973e8 generic_write_end
+EXPORT_SYMBOL vmlinux 0x31de797e simple_unlink
+EXPORT_SYMBOL vmlinux 0x31e6fe07 bio_flush_dcache_pages
+EXPORT_SYMBOL vmlinux 0x3206bf7d fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0x323b4e31 __generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat
+EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x326fb48b __netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x3274ec81 blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0x32780386 rtnl_notify
+EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint
+EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy
+EXPORT_SYMBOL vmlinux 0x3292f3e2 gen_pool_add
+EXPORT_SYMBOL vmlinux 0x32c5c4e6 kill_litter_super
+EXPORT_SYMBOL vmlinux 0x32dcfaab get_super
+EXPORT_SYMBOL vmlinux 0x32e0c29d eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x32f43b07 d_path
+EXPORT_SYMBOL vmlinux 0x331f58bd mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0x33336da5 fsync_bdev
+EXPORT_SYMBOL vmlinux 0x336ce7cd dentry_open
+EXPORT_SYMBOL vmlinux 0x337b174a tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x339cc4a1 pci_fixup_device
+EXPORT_SYMBOL vmlinux 0x33ab9242 tcp_child_process
+EXPORT_SYMBOL vmlinux 0x33c04a54 mpage_readpages
+EXPORT_SYMBOL vmlinux 0x33dda7a0 md_unregister_thread
+EXPORT_SYMBOL vmlinux 0x33e6f910 set_anon_super
+EXPORT_SYMBOL vmlinux 0x34173042 xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x34300f2d dput
+EXPORT_SYMBOL vmlinux 0x34409b32 dev_addr_init
+EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long
+EXPORT_SYMBOL vmlinux 0x347a93dc vfs_read
+EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x349a023b blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0x349cba85 strchr
+EXPORT_SYMBOL vmlinux 0x34afda14 netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x34cbf367 blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x34dbe01e devm_ioremap
+EXPORT_SYMBOL vmlinux 0x34e68f8a mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0x3509cd45 __skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0x3510e5d1 pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x351d51a4 devm_ioport_map
+EXPORT_SYMBOL vmlinux 0x35329b34 dm_dirty_log_type_unregister
+EXPORT_SYMBOL vmlinux 0x353b12c6 xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0x353b81e1 uart_update_timeout
+EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4
+EXPORT_SYMBOL vmlinux 0x3561b6ef blkdev_get
+EXPORT_SYMBOL vmlinux 0x3565c731 datagram_poll
+EXPORT_SYMBOL vmlinux 0x3568420e dma_mmap_writecombine
+EXPORT_SYMBOL vmlinux 0x3578a1bb nf_afinfo
+EXPORT_SYMBOL vmlinux 0x358c613b blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0x359b7bb3 journal_destroy
+EXPORT_SYMBOL vmlinux 0x35a5f0d3 netdev_state_change
+EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator
+EXPORT_SYMBOL vmlinux 0x35d5bbf7 test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0x35d896e8 dquot_resume
+EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x35e8e95e tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0x35ed0a8f inet_stream_connect
+EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask
+EXPORT_SYMBOL vmlinux 0x36101387 pci_save_state
+EXPORT_SYMBOL vmlinux 0x36123683 ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x361fc9dc pcibios_bus_to_resource
+EXPORT_SYMBOL vmlinux 0x362f137e sock_i_ino
+EXPORT_SYMBOL vmlinux 0x36582611 dma_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x366b3fe4 security_path_mkdir
+EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg
+EXPORT_SYMBOL vmlinux 0x369dc898 delayed_slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x36cb10c8 ftrace_event_seq
+EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36e5bf07 simple_fill_super
+EXPORT_SYMBOL vmlinux 0x3715216a tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf
+EXPORT_SYMBOL vmlinux 0x37581f76 cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0x376fa555 dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0x3782e98b clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0x379b5161 d_splice_alias
+EXPORT_SYMBOL vmlinux 0x379d2d61 inet_getname
+EXPORT_SYMBOL vmlinux 0x37a823f4 generic_file_llseek
+EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic
+EXPORT_SYMBOL vmlinux 0x37ae5929 generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37e04be1 freeze_super
+EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64
+EXPORT_SYMBOL vmlinux 0x38133c8b dqstats
+EXPORT_SYMBOL vmlinux 0x38216450 __alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0x3832957c skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x383a21b7 fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0x385189cb elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0x385a7a3b serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x3862c5d3 pci_release_regions
+EXPORT_SYMBOL vmlinux 0x386fc3b4 cdev_add
+EXPORT_SYMBOL vmlinux 0x3878101b open_exec
+EXPORT_SYMBOL vmlinux 0x3878907f map_destroy
+EXPORT_SYMBOL vmlinux 0x388468ff __dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38c1feb7 framebuffer_release
+EXPORT_SYMBOL vmlinux 0x38e5b666 xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0x38e8378d pgprot_kernel
+EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0x3908bd84 blk_start_request
+EXPORT_SYMBOL vmlinux 0x39165d1f filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0x3924b0ff d_validate
+EXPORT_SYMBOL vmlinux 0x396738e7 security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0x39684ade nf_reinject
+EXPORT_SYMBOL vmlinux 0x396ddbf4 scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x3993a32e d_instantiate
+EXPORT_SYMBOL vmlinux 0x39a8ba9f rfkill_blocked
+EXPORT_SYMBOL vmlinux 0x39cd0504 dm_register_target
+EXPORT_SYMBOL vmlinux 0x39cd78c4 ppp_channel_index
+EXPORT_SYMBOL vmlinux 0x39fc9b5f write_one_page
+EXPORT_SYMBOL vmlinux 0x3a02d3cb xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0x3a12f1cf dm_snap_cow
+EXPORT_SYMBOL vmlinux 0x3a1940b1 posix_acl_permission
+EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a886417 lookup_hash
+EXPORT_SYMBOL vmlinux 0x3a89cf47 bdi_init
+EXPORT_SYMBOL vmlinux 0x3a8daaaf clkdev_alloc
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3aa08266 mdiobus_read
+EXPORT_SYMBOL vmlinux 0x3adaef0b d_lookup
+EXPORT_SYMBOL vmlinux 0x3b13ed33 pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0x3b15901f dev_addr_del
+EXPORT_SYMBOL vmlinux 0x3b5b28ae bdi_destroy
+EXPORT_SYMBOL vmlinux 0x3b9a6c82 dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x3ba9a23f ip_ct_attach
+EXPORT_SYMBOL vmlinux 0x3bbaead7 do_munmap
+EXPORT_SYMBOL vmlinux 0x3bc1a486 mmc_wait_for_req
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3be9d82e netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x3c16b8ff pid_task
+EXPORT_SYMBOL vmlinux 0x3c1cffc1 bio_clone
+EXPORT_SYMBOL vmlinux 0x3c27230b get_phy_id
+EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf
+EXPORT_SYMBOL vmlinux 0x3c3f8246 inet_release
+EXPORT_SYMBOL vmlinux 0x3c75f3ff bd_claim
+EXPORT_SYMBOL vmlinux 0x3c761335 input_set_keycode
+EXPORT_SYMBOL vmlinux 0x3c7ab946 blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0x3c8b5a42 scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size
+EXPORT_SYMBOL vmlinux 0x3ca1aa49 tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0x3cc8b5cc pci_request_regions
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq
+EXPORT_SYMBOL vmlinux 0x3d19694c elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0x3d1971a0 pcim_enable_device
+EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap
+EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat
+EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e35fc87 sock_register
+EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks
+EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e4f6709 tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3eabbedf tcp_v4_remember_stamp
+EXPORT_SYMBOL vmlinux 0x3ec06e92 dm_get_device
+EXPORT_SYMBOL vmlinux 0x3ed07f68 simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3f1e4b26 pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x3f2d4225 rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f5b8b80 module_layout
+EXPORT_SYMBOL vmlinux 0x3f77b1dc inode_add_bytes
+EXPORT_SYMBOL vmlinux 0x3f84d4fd tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable
+EXPORT_SYMBOL vmlinux 0x3fff59d1 inet_accept
+EXPORT_SYMBOL vmlinux 0x4018b36b blk_init_allocated_queue_node
+EXPORT_SYMBOL vmlinux 0x4033b4db tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump
+EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds
+EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8
+EXPORT_SYMBOL vmlinux 0x4082f623 dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40a6f522 __arm_ioremap
+EXPORT_SYMBOL vmlinux 0x40cdb7e7 skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3
+EXPORT_SYMBOL vmlinux 0x40fc0030 jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring
+EXPORT_SYMBOL vmlinux 0x4107c2ff bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode
+EXPORT_SYMBOL vmlinux 0x4112dbe1 bio_pair_release
+EXPORT_SYMBOL vmlinux 0x411dfd5b __nla_put
+EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp
+EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user
+EXPORT_SYMBOL vmlinux 0x414c92b4 blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x415c4047 generic_permission
+EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features
+EXPORT_SYMBOL vmlinux 0x416acb1b vm_map_ram
+EXPORT_SYMBOL vmlinux 0x416beda7 pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0x41725f1f xfrm_input
+EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x418bca91 del_mtd_partitions
+EXPORT_SYMBOL vmlinux 0x41b33015 textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0x41f3c14b ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x41fd9e3f pcim_pin_device
+EXPORT_SYMBOL vmlinux 0x4207244c key_alloc
+EXPORT_SYMBOL vmlinux 0x420fb2fd udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x421a2dde __blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0x42224298 sscanf
+EXPORT_SYMBOL vmlinux 0x428c2d44 sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0x42915436 scsi_device_get
+EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42a9bd55 phy_connect_direct
+EXPORT_SYMBOL vmlinux 0x42aaf283 directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0x42bf435b generic_setxattr
+EXPORT_SYMBOL vmlinux 0x42c538c7 input_unregister_handler
+EXPORT_SYMBOL vmlinux 0x42d80627 kernel_accept
+EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages
+EXPORT_SYMBOL vmlinux 0x4311ad4b tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x43124714 tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short
+EXPORT_SYMBOL vmlinux 0x4347b971 idr_init
+EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem
+EXPORT_SYMBOL vmlinux 0x4357c8dd __napi_complete
+EXPORT_SYMBOL vmlinux 0x437c4362 dget_locked
+EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get
+EXPORT_SYMBOL vmlinux 0x43ae0e2d cdrom_mode_sense
+EXPORT_SYMBOL vmlinux 0x43b9d5f9 copy_io_context
+EXPORT_SYMBOL vmlinux 0x43dcbd75 dmam_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x43ea4302 splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0x43f7db16 __xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x43fbbb79 override_creds
+EXPORT_SYMBOL vmlinux 0x43fce0dc clk_set_rate
+EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x442aadcf serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0x4437f105 inet6_release
+EXPORT_SYMBOL vmlinux 0x444779c4 nla_find
+EXPORT_SYMBOL vmlinux 0x44623830 register_nls
+EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul
+EXPORT_SYMBOL vmlinux 0x447847c6 elv_queue_empty
+EXPORT_SYMBOL vmlinux 0x448212fa down_trylock
+EXPORT_SYMBOL vmlinux 0x44886916 path_is_under
+EXPORT_SYMBOL vmlinux 0x448e6a1a phy_disable_interrupts
+EXPORT_SYMBOL vmlinux 0x44c20ea7 nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x44c7143b dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0x44d999cf fddi_type_trans
+EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic
+EXPORT_SYMBOL vmlinux 0x44da76c0 open_by_devnum
+EXPORT_SYMBOL vmlinux 0x44dc2179 bio_free
+EXPORT_SYMBOL vmlinux 0x44de450f jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x44e9a829 match_token
+EXPORT_SYMBOL vmlinux 0x44efcfed mii_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x4514e493 pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0x451f1656 serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x4527723f tty_register_driver
+EXPORT_SYMBOL vmlinux 0x45478fde set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0x457732bc xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0x45947727 param_array_set
+EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap
+EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low
+EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45e5fdd4 pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x45e87e4b ip6_frag_match
+EXPORT_SYMBOL vmlinux 0x45fb36c5 security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0x4600bd50 blk_init_queue
+EXPORT_SYMBOL vmlinux 0x460ea1c5 udplite_table
+EXPORT_SYMBOL vmlinux 0x462190ee md_wakeup_thread
+EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy
+EXPORT_SYMBOL vmlinux 0x46389387 give_up_console
+EXPORT_SYMBOL vmlinux 0x4646658d __blk_end_request
+EXPORT_SYMBOL vmlinux 0x466e02c1 netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x4681d200 dm_table_event
+EXPORT_SYMBOL vmlinux 0x468bd27e inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0x468e0989 cdev_init
+EXPORT_SYMBOL vmlinux 0x469bb17d mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0x46a94fc3 clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x46ae2528 bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0x46c45640 blk_plug_device_unlocked
+EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0x46d3b28c __div0
+EXPORT_SYMBOL vmlinux 0x46f98e61 __elv_add_request
+EXPORT_SYMBOL vmlinux 0x46fd68f0 dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0x4700b122 get_sb_ns
+EXPORT_SYMBOL vmlinux 0x47076289 skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x471a25f2 napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x472a8f30 slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x4731be91 dev_uc_del
+EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x4763ce98 __ps2_command
+EXPORT_SYMBOL vmlinux 0x4779389e journal_load
+EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0x47f757de elf_platform
+EXPORT_SYMBOL vmlinux 0x483ec199 __cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days
+EXPORT_SYMBOL vmlinux 0x48674830 pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0x487281e6 skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type
+EXPORT_SYMBOL vmlinux 0x48a95433 elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0x48cce587 blk_plug_device
+EXPORT_SYMBOL vmlinux 0x48dc0c37 blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0x48fb187a kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x48fffaa0 ps2_init
+EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x49870595 mpage_writepages
+EXPORT_SYMBOL vmlinux 0x49970c70 do_sync_write
+EXPORT_SYMBOL vmlinux 0x499df7b6 mmc_host_enable
+EXPORT_SYMBOL vmlinux 0x49a36403 blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49ca176a alloc_hippi_dev
+EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string
+EXPORT_SYMBOL vmlinux 0x49ed6920 genphy_suspend
+EXPORT_SYMBOL vmlinux 0x4a0fc06c nobh_write_begin
+EXPORT_SYMBOL vmlinux 0x4a23b365 blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0x4a33e71c sk_run_filter
+EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a37af33 ___dma_single_cpu_to_dev
+EXPORT_SYMBOL vmlinux 0x4a573c7d dev_open
+EXPORT_SYMBOL vmlinux 0x4a6d8e05 sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x4a8e853b nobh_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x4a961bf8 kmap_high
+EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x4a98b04e sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc
+EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x4aaef0bb tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0x4ac4f15d redraw_screen
+EXPORT_SYMBOL vmlinux 0x4ae386f7 pci_write_vpd
+EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b20cbd2 ida_remove
+EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals
+EXPORT_SYMBOL vmlinux 0x4b50dbd9 i2c_use_client
+EXPORT_SYMBOL vmlinux 0x4b5d476f amba_release_regions
+EXPORT_SYMBOL vmlinux 0x4b686514 call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0x4b68af17 __rta_fill
+EXPORT_SYMBOL vmlinux 0x4ba4b52b blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x4bace580 neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags
+EXPORT_SYMBOL vmlinux 0x4bc45105 d_add_ci
+EXPORT_SYMBOL vmlinux 0x4be6670c napi_complete
+EXPORT_SYMBOL vmlinux 0x4bf0236b tcf_hash_create
+EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr
+EXPORT_SYMBOL vmlinux 0x4c37081f jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0x4c435c44 __tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0x4c4f4e63 add_mtd_partitions
+EXPORT_SYMBOL vmlinux 0x4c5be1cd fput
+EXPORT_SYMBOL vmlinux 0x4c5c6082 lookup_one_len
+EXPORT_SYMBOL vmlinux 0x4c64d88f vm_event_states
+EXPORT_SYMBOL vmlinux 0x4c98b222 dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cbdc0f0 bdi_register
+EXPORT_SYMBOL vmlinux 0x4cce45de jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x4cdee456 journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x4cdf472b fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page
+EXPORT_SYMBOL vmlinux 0x4d37d46d ppp_register_channel
+EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask
+EXPORT_SYMBOL vmlinux 0x4d65104b abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x4d723118 tty_throttle
+EXPORT_SYMBOL vmlinux 0x4d80cf4c kmem_cache_create
+EXPORT_SYMBOL vmlinux 0x4d81d3c0 sock_no_getname
+EXPORT_SYMBOL vmlinux 0x4d84883e neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x4d9b7191 ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0x4db4ba3a d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dc52594 dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x4dec6038 memscan
+EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4df6919b skb_find_text
+EXPORT_SYMBOL vmlinux 0x4e03c9be amba_find_device
+EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e1c72bd ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console
+EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp
+EXPORT_SYMBOL vmlinux 0x4e88dac4 dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0x4eca61e6 in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x4ef0d398 xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x4ef99ca9 alloc_fddidev
+EXPORT_SYMBOL vmlinux 0x4f14e438 skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0x4f1a5f90 put_page
+EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f2a1b68 vga_get
+EXPORT_SYMBOL vmlinux 0x4f2e246c release_firmware
+EXPORT_SYMBOL vmlinux 0x4f40a98e input_event
+EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x4f60d80a md_error
+EXPORT_SYMBOL vmlinux 0x4f6ec8d0 xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x4f9f6e0f pagevec_lookup
+EXPORT_SYMBOL vmlinux 0x4fa49f5a bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0x4faab780 skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0x4fd39202 add_disk
+EXPORT_SYMBOL vmlinux 0x4fe02e86 serio_reconnect
+EXPORT_SYMBOL vmlinux 0x4fe2119a simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x5024cc58 sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x5069b89c pci_release_region
+EXPORT_SYMBOL vmlinux 0x5079ab01 keyring_clear
+EXPORT_SYMBOL vmlinux 0x5093fa82 _clear_bit_le
+EXPORT_SYMBOL vmlinux 0x50a6474e __blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x50b68bcb sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x50c71330 idr_get_new
+EXPORT_SYMBOL vmlinux 0x5103a935 pipe_to_file
+EXPORT_SYMBOL vmlinux 0x510a4aaa skb_append
+EXPORT_SYMBOL vmlinux 0x510c6169 netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x511746c1 dump_fpu
+EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x511be481 block_write_begin
+EXPORT_SYMBOL vmlinux 0x513be4a8 mntput_no_expire
+EXPORT_SYMBOL vmlinux 0x5144dfd3 ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0x5150c9ba kick_iocb
+EXPORT_SYMBOL vmlinux 0x5189be13 inet_add_protocol
+EXPORT_SYMBOL vmlinux 0x51908eb8 __raw_writesl
+EXPORT_SYMBOL vmlinux 0x5194c322 block_commit_write
+EXPORT_SYMBOL vmlinux 0x51b8fd79 phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x51ba84de nf_ct_attach
+EXPORT_SYMBOL vmlinux 0x51d0543a journal_forget
+EXPORT_SYMBOL vmlinux 0x51d091c8 blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0x51dae68f simple_write_end
+EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid
+EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup
+EXPORT_SYMBOL vmlinux 0x51ef499d scm_fp_dup
+EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x5211f895 ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0x522cb14d tty_free_termios
+EXPORT_SYMBOL vmlinux 0x523641d7 tty_devnum
+EXPORT_SYMBOL vmlinux 0x5255ccda sk_filter
+EXPORT_SYMBOL vmlinux 0x526b81b1 vfs_llseek
+EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday
+EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x529b4686 i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0x529e0ca4 xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy
+EXPORT_SYMBOL vmlinux 0x52adc0e1 journal_init_inode
+EXPORT_SYMBOL vmlinux 0x52c2ef34 rb_erase
+EXPORT_SYMBOL vmlinux 0x52d0803a dma_ops
+EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort
+EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend
+EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0x5384d547 scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0x5389348a dst_alloc
+EXPORT_SYMBOL vmlinux 0x53beeb7f pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x53c88a77 napi_gro_frags
+EXPORT_SYMBOL vmlinux 0x53d069f7 genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0x53d30d5a filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x53e5370d blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x53f2701f dquot_scan_active
+EXPORT_SYMBOL vmlinux 0x54116519 kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate
+EXPORT_SYMBOL vmlinux 0x54393f2f kdb_current_task
+EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x5450ecb5 bio_phys_segments
+EXPORT_SYMBOL vmlinux 0x545cf4d9 pci_scan_slot
+EXPORT_SYMBOL vmlinux 0x547e4a9a cfi_varsize_frob
+EXPORT_SYMBOL vmlinux 0x54936b11 llc_sap_find
+EXPORT_SYMBOL vmlinux 0x549433d8 skb_trim
+EXPORT_SYMBOL vmlinux 0x549e36fc dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0x54ad1ab8 __pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54e8a93a km_state_notify
+EXPORT_SYMBOL vmlinux 0x54f72b05 uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0x54f99573 scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x5504bdd1 block_write_end
+EXPORT_SYMBOL vmlinux 0x5505aa37 inet_shutdown
+EXPORT_SYMBOL vmlinux 0x556dfc0c sock_setsockopt
+EXPORT_SYMBOL vmlinux 0x5576a977 blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x55b1b6e3 eth_type_trans
+EXPORT_SYMBOL vmlinux 0x55cd4fd9 blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0x55d29428 kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0x55fc5cb0 phy_detach
+EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x560134b2 tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday
+EXPORT_SYMBOL vmlinux 0x5611c083 dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x561d009a pcim_iounmap
+EXPORT_SYMBOL vmlinux 0x5623ad73 elv_add_request
+EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0x562e3c33 mod_timer_pending
+EXPORT_SYMBOL vmlinux 0x5632ee74 request_firmware
+EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user
+EXPORT_SYMBOL vmlinux 0x563afbce tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0x564c66e0 release_sock
+EXPORT_SYMBOL vmlinux 0x566d4450 kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x5699bcb9 pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0x569e6487 vfs_write
+EXPORT_SYMBOL vmlinux 0x56b1cb24 ip_mc_rejoin_group
+EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr
+EXPORT_SYMBOL vmlinux 0x56e3d56a bio_copy_kern
+EXPORT_SYMBOL vmlinux 0x56ecc4b3 tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0x5706e751 scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0x5728f6b0 __dquot_free_space
+EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x573b35d5 pci_set_mwi
+EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put
+EXPORT_SYMBOL vmlinux 0x57663624 unlock_super
+EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16
+EXPORT_SYMBOL vmlinux 0x57698fa7 textsearch_prepare
+EXPORT_SYMBOL vmlinux 0x579f85de put_disk
+EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf
+EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path
+EXPORT_SYMBOL vmlinux 0x57fa7ea7 sync_blockdev
+EXPORT_SYMBOL vmlinux 0x581cc07b find_lock_page
+EXPORT_SYMBOL vmlinux 0x5830cf7c scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x584650e9 scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0x586818d2 wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x58b2ca3f serio_rescan
+EXPORT_SYMBOL vmlinux 0x58c52dc8 pci_try_set_mwi
+EXPORT_SYMBOL vmlinux 0x58ca690e d_alloc
+EXPORT_SYMBOL vmlinux 0x58ce80f7 I_BDEV
+EXPORT_SYMBOL vmlinux 0x58d15d90 __dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x5906a12e dst_destroy
+EXPORT_SYMBOL vmlinux 0x5918d172 __destroy_inode
+EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client
+EXPORT_SYMBOL vmlinux 0x59426523 rfkill_destroy
+EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map
+EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3
+EXPORT_SYMBOL vmlinux 0x59739055 mmc_resume_host
+EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource
+EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64
+EXPORT_SYMBOL vmlinux 0x59f4bab9 fb_set_suspend
+EXPORT_SYMBOL vmlinux 0x5a0273da iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0x5a031820 __scsi_put_command
+EXPORT_SYMBOL vmlinux 0x5a0cbd54 skb_checksum
+EXPORT_SYMBOL vmlinux 0x5a1e901d file_update_time
+EXPORT_SYMBOL vmlinux 0x5a3b115a kstat
+EXPORT_SYMBOL vmlinux 0x5a4e025a dev_uc_init
+EXPORT_SYMBOL vmlinux 0x5a511c62 ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x5a533df1 generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0x5a55ea08 scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a7b5a07 bitmap_endwrite
+EXPORT_SYMBOL vmlinux 0x5a84351f generic_show_options
+EXPORT_SYMBOL vmlinux 0x5a90e3d5 key_put
+EXPORT_SYMBOL vmlinux 0x5a97e776 dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x5abf0b48 sk_stream_error
+EXPORT_SYMBOL vmlinux 0x5ad23874 generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x5ae0d47f clocksource_register
+EXPORT_SYMBOL vmlinux 0x5ae33f8c kill_anon_super
+EXPORT_SYMBOL vmlinux 0x5afe4ee8 genl_register_ops
+EXPORT_SYMBOL vmlinux 0x5b0f53f1 dma_mmap_coherent
+EXPORT_SYMBOL vmlinux 0x5b19593f scsi_register_interface
+EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem
+EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0x5baaf835 netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x5bb80309 security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0x5bd9e8e5 dma_pool_free
+EXPORT_SYMBOL vmlinux 0x5be2888a seq_release
+EXPORT_SYMBOL vmlinux 0x5be4d181 blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x5bf4a1eb sg_last
+EXPORT_SYMBOL vmlinux 0x5c16400f dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x5c17adbf simple_setattr
+EXPORT_SYMBOL vmlinux 0x5c69c9ab generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x5c891575 neigh_seq_start
+EXPORT_SYMBOL vmlinux 0x5c90be46 soft_cursor
+EXPORT_SYMBOL vmlinux 0x5c91f490 jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id
+EXPORT_SYMBOL vmlinux 0x5ca2b05f vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0x5caecd04 ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0x5cb1dc2b scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x5ce919c0 arp_xmit
+EXPORT_SYMBOL vmlinux 0x5cf3848f tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0x5d181b34 textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0x5d4cfe43 max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0x5d547ee8 register_console
+EXPORT_SYMBOL vmlinux 0x5d7d7562 generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x5d98dcd0 journal_errno
+EXPORT_SYMBOL vmlinux 0x5db3700c sock_create
+EXPORT_SYMBOL vmlinux 0x5dd119d1 skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0x5dd1ae08 dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0x5de671c8 filp_open
+EXPORT_SYMBOL vmlinux 0x5deb87cb jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x5dfe1a55 dmam_release_declared_memory
+EXPORT_SYMBOL vmlinux 0x5dfe50af scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0x5e0261bd simple_transaction_get
+EXPORT_SYMBOL vmlinux 0x5e101319 generic_block_bmap
+EXPORT_SYMBOL vmlinux 0x5e4b2e64 ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x5e57b1cb unregister_cdrom
+EXPORT_SYMBOL vmlinux 0x5e747b1c __register_chrdev
+EXPORT_SYMBOL vmlinux 0x5e7dc621 kill_block_super
+EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask
+EXPORT_SYMBOL vmlinux 0x5e9ef014 pci_get_device
+EXPORT_SYMBOL vmlinux 0x5eca99b8 textsearch_unregister
+EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd
+EXPORT_SYMBOL vmlinux 0x5ee3aaae spi_schedule_dv_device
+EXPORT_SYMBOL vmlinux 0x5eeb1343 pci_get_class
+EXPORT_SYMBOL vmlinux 0x5f0a23f4 i2c_clients_command
+EXPORT_SYMBOL vmlinux 0x5f1763a7 unregister_qdisc
+EXPORT_SYMBOL vmlinux 0x5f22102f serio_interrupt
+EXPORT_SYMBOL vmlinux 0x5f4047db scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0x5f52806b unlock_page
+EXPORT_SYMBOL vmlinux 0x5f53c8b8 bdevname
+EXPORT_SYMBOL vmlinux 0x5f5cbbf0 ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0x5f654d17 netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x5f672abf nf_hook_slow
+EXPORT_SYMBOL vmlinux 0x5f754e5a memset
+EXPORT_SYMBOL vmlinux 0x5f99fbbf sock_wmalloc
+EXPORT_SYMBOL vmlinux 0x5faa253c tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x5fb9d95e phy_disconnect
+EXPORT_SYMBOL vmlinux 0x5fc42313 netpoll_send_skb
+EXPORT_SYMBOL vmlinux 0x5fe9c1ae security_path_symlink
+EXPORT_SYMBOL vmlinux 0x5fea5985 seq_open
+EXPORT_SYMBOL vmlinux 0x60055af6 ip6_route_output
+EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x600fc064 i2c_master_send
+EXPORT_SYMBOL vmlinux 0x60388d15 seq_bitmap
+EXPORT_SYMBOL vmlinux 0x60471b52 unregister_filesystem
+EXPORT_SYMBOL vmlinux 0x604a344b uart_register_driver
+EXPORT_SYMBOL vmlinux 0x605ed6a0 set_groups
+EXPORT_SYMBOL vmlinux 0x60612ce3 devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net
+EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off
+EXPORT_SYMBOL vmlinux 0x60cb87d9 tcp_shutdown
+EXPORT_SYMBOL vmlinux 0x60e6db4e nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x60f71cfa complete
+EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n
+EXPORT_SYMBOL vmlinux 0x610f8b6e dqput
+EXPORT_SYMBOL vmlinux 0x61120475 register_key_type
+EXPORT_SYMBOL vmlinux 0x611f3fd4 __skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x6151ec7a vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x61638440 blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free
+EXPORT_SYMBOL vmlinux 0x61a60f1f rb_replace_node
+EXPORT_SYMBOL vmlinux 0x61a79f08 __irq_regs
+EXPORT_SYMBOL vmlinux 0x61b67ce6 unregister_nls
+EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61c0a38a input_inject_event
+EXPORT_SYMBOL vmlinux 0x61c7b30a inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0x61d35780 pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0x61d5763d bio_endio
+EXPORT_SYMBOL vmlinux 0x61fc2223 security_d_instantiate
+EXPORT_SYMBOL vmlinux 0x6245135d pci_dev_get
+EXPORT_SYMBOL vmlinux 0x625e5efc llc_add_pack
+EXPORT_SYMBOL vmlinux 0x626f3928 dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x626ff0b5 fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister
+EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x62890538 set_binfmt
+EXPORT_SYMBOL vmlinux 0x629d4c2c jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0x62b72b0d mutex_unlock
+EXPORT_SYMBOL vmlinux 0x62bcfbc3 napi_skb_finish
+EXPORT_SYMBOL vmlinux 0x62cc569e cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x62fd3ca0 xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0x633aa0d8 uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0x6346b5b0 phy_attach_direct
+EXPORT_SYMBOL vmlinux 0x63656fbb vfs_readv
+EXPORT_SYMBOL vmlinux 0x636f16bd cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0x63701351 cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0x637ec154 scsi_prep_return
+EXPORT_SYMBOL vmlinux 0x638e86f7 invalidate_bdev
+EXPORT_SYMBOL vmlinux 0x639139ae scsi_free_command
+EXPORT_SYMBOL vmlinux 0x63b2a370 register_filesystem
+EXPORT_SYMBOL vmlinux 0x63b49258 nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x63de2a9f inode_change_ok
+EXPORT_SYMBOL vmlinux 0x63e6b3c3 xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0x63fce69d generic_file_open
+EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x6422003d qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0x642dd774 noop_llseek
+EXPORT_SYMBOL vmlinux 0x6430d676 put_mnt_ns
+EXPORT_SYMBOL vmlinux 0x6445b03c bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x646c0353 pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait
+EXPORT_SYMBOL vmlinux 0x649f4bd3 ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0x64b186ba xfrm_register_type
+EXPORT_SYMBOL vmlinux 0x64b51bf1 kernel_listen
+EXPORT_SYMBOL vmlinux 0x64c41370 i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0x64ca9b76 alloc_disk
+EXPORT_SYMBOL vmlinux 0x64cf9842 noop_qdisc
+EXPORT_SYMBOL vmlinux 0x64e4cb39 journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x64ed2521 ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x64f05e6d remove_inode_hash
+EXPORT_SYMBOL vmlinux 0x64fbbe89 kthread_stop
+EXPORT_SYMBOL vmlinux 0x65046a16 rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0x65098a50 __sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0x651a4139 test_taint
+EXPORT_SYMBOL vmlinux 0x651e1112 inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0x65311d34 splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x653f8b19 icmp_send
+EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name
+EXPORT_SYMBOL vmlinux 0x658f7ff5 key_payload_reserve
+EXPORT_SYMBOL vmlinux 0x65b09b62 fb_blank
+EXPORT_SYMBOL vmlinux 0x65bd9168 elv_register_queue
+EXPORT_SYMBOL vmlinux 0x65e084be abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0x66492725 pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0x665a772a sg_miter_next
+EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x66ec1f78 jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0x66ed3636 pci_match_id
+EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time
+EXPORT_SYMBOL vmlinux 0x67083840 set_blocksize
+EXPORT_SYMBOL vmlinux 0x674544e3 unbind_con_driver
+EXPORT_SYMBOL vmlinux 0x674eaed8 blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0x676873db phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x678763f8 phy_device_free
+EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios
+EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67be1d3d cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x67df098c gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x67e3ea7b qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0x67e9ccd5 security_inode_readlink
+EXPORT_SYMBOL vmlinux 0x67f3508d get_io_context
+EXPORT_SYMBOL vmlinux 0x68226637 user_path_at
+EXPORT_SYMBOL vmlinux 0x6846cd4d genphy_update_link
+EXPORT_SYMBOL vmlinux 0x685ecbdf eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0x68760ed3 scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x68a5678c ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x68fb581a icst307_idx2s
+EXPORT_SYMBOL vmlinux 0x68fdabf2 blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0x6923a9d2 pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0x695b2ea4 skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x69631e89 security_path_mknod
+EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days
+EXPORT_SYMBOL vmlinux 0x697825b5 cfb_copyarea
+EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int
+EXPORT_SYMBOL vmlinux 0x6991e60c ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem
+EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x69ced475 dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69fe1520 skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a053445 pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0x6a253c4d xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6a8b1fbd scsi_execute
+EXPORT_SYMBOL vmlinux 0x6a8c1320 pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0x6acd320f xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp
+EXPORT_SYMBOL vmlinux 0x6ad31e4a netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x6ad5ebe9 rfkill_register
+EXPORT_SYMBOL vmlinux 0x6af4d642 __pci_register_driver
+EXPORT_SYMBOL vmlinux 0x6af7684f i2c_master_recv
+EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname
+EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack
+EXPORT_SYMBOL vmlinux 0x6b34b5bc bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0x6b5a7057 ida_destroy
+EXPORT_SYMBOL vmlinux 0x6b8a809a dm_exception_store_type_unregister
+EXPORT_SYMBOL vmlinux 0x6b9b988e cpu_user
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bca2c40 jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6bf37a6c bio_init
+EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn
+EXPORT_SYMBOL vmlinux 0x6c2b84d2 phy_attach
+EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c6e9b95 netif_rx
+EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6ccb4365 cfb_fillrect
+EXPORT_SYMBOL vmlinux 0x6ccd5fd9 vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy
+EXPORT_SYMBOL vmlinux 0x6cfdc053 inet_sendmsg
+EXPORT_SYMBOL vmlinux 0x6d1b1069 tc_classify
+EXPORT_SYMBOL vmlinux 0x6d1df65f sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d2e9d78 xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0x6d3798e8 i2c_del_driver
+EXPORT_SYMBOL vmlinux 0x6d4f1d24 d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0x6d662533 _find_first_bit_le
+EXPORT_SYMBOL vmlinux 0x6dbac7ba dev_mc_init
+EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6df175f9 inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x6df35c35 fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0x6df63065 sock_map_fd
+EXPORT_SYMBOL vmlinux 0x6e146905 tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0x6e184d5c key_validate
+EXPORT_SYMBOL vmlinux 0x6e1c8042 __getblk
+EXPORT_SYMBOL vmlinux 0x6e389ee1 blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0x6e4dcd22 ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x6e5f9b70 dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x6e647383 register_mtd_chip_driver
+EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put
+EXPORT_SYMBOL vmlinux 0x6ebda7b4 sock_no_connect
+EXPORT_SYMBOL vmlinux 0x6ebf5d2f phy_device_create
+EXPORT_SYMBOL vmlinux 0x6ecdddea md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0x6ed82279 mmc_wait_for_cmd
+EXPORT_SYMBOL vmlinux 0x6ee34930 generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0x6ef2cab0 km_state_expired
+EXPORT_SYMBOL vmlinux 0x6f060d70 sk_reset_timer
+EXPORT_SYMBOL vmlinux 0x6f1ced55 fb_set_var
+EXPORT_SYMBOL vmlinux 0x6f220abd generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x6f4e4e1c tty_kref_put
+EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x6f9a03a3 mpage_readpage
+EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fed81ca dev_addr_add
+EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free
+EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm
+EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf
+EXPORT_SYMBOL vmlinux 0x702ad400 slow_work_unregister_user
+EXPORT_SYMBOL vmlinux 0x703bde45 inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7095e8de pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0x709cc168 seq_puts
+EXPORT_SYMBOL vmlinux 0x709d5113 kernel_read
+EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait
+EXPORT_SYMBOL vmlinux 0x70c6a699 otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0x70d58cdf generic_make_request
+EXPORT_SYMBOL vmlinux 0x70dd96cd dquot_alloc
+EXPORT_SYMBOL vmlinux 0x70e8b5d8 mmc_release_host
+EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc
+EXPORT_SYMBOL vmlinux 0x712e9b1a tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x714c4d75 unregister_md_personality
+EXPORT_SYMBOL vmlinux 0x7171121c overflowgid
+EXPORT_SYMBOL vmlinux 0x717db826 mmc_add_host
+EXPORT_SYMBOL vmlinux 0x71993f93 dquot_release
+EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev
+EXPORT_SYMBOL vmlinux 0x71bdaa52 dquot_file_open
+EXPORT_SYMBOL vmlinux 0x71c90087 memcmp
+EXPORT_SYMBOL vmlinux 0x71d3a800 vlan_gro_receive
+EXPORT_SYMBOL vmlinux 0x71f45807 default_llseek
+EXPORT_SYMBOL vmlinux 0x71f6cb4c gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x72584d7d inet_put_port
+EXPORT_SYMBOL vmlinux 0x7261e04c nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x72628286 mmc_set_data_timeout
+EXPORT_SYMBOL vmlinux 0x72acee64 mpage_writepage
+EXPORT_SYMBOL vmlinux 0x72c2081c ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte
+EXPORT_SYMBOL vmlinux 0x72cba17d sock_wake_async
+EXPORT_SYMBOL vmlinux 0x72d95f49 sk_stop_timer
+EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type
+EXPORT_SYMBOL vmlinux 0x731811e7 skb_split
+EXPORT_SYMBOL vmlinux 0x733ee790 generic_read_dir
+EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat
+EXPORT_SYMBOL vmlinux 0x73aad0e3 phy_connect
+EXPORT_SYMBOL vmlinux 0x73bb79fb thermal_zone_bind_cooling_device
+EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0x73d7dec2 mmc_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x73da3fa0 d_alloc_root
+EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy
+EXPORT_SYMBOL vmlinux 0x74008e0f skb_recycle_check
+EXPORT_SYMBOL vmlinux 0x7401f19d pci_clear_master
+EXPORT_SYMBOL vmlinux 0x7429cfd2 md_done_sync
+EXPORT_SYMBOL vmlinux 0x743e5088 generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte
+EXPORT_SYMBOL vmlinux 0x74525456 get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x7456b368 sk_wait_data
+EXPORT_SYMBOL vmlinux 0x74822b52 kernel_connect
+EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x74a0859e unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0x74adcc39 tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74fb4114 ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0x75048dc5 __scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x750b8ef8 input_get_keycode
+EXPORT_SYMBOL vmlinux 0x7515288e netif_device_detach
+EXPORT_SYMBOL vmlinux 0x752e5fdd fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x755503d0 read_cache_pages
+EXPORT_SYMBOL vmlinux 0x7562434e simple_setsize
+EXPORT_SYMBOL vmlinux 0x7568b328 bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x756d0a88 block_read_full_page
+EXPORT_SYMBOL vmlinux 0x75923f16 unregister_key_type
+EXPORT_SYMBOL vmlinux 0x759762f4 skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x75a17bed prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x75a700d4 sk_dst_check
+EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75d58b80 task_nice
+EXPORT_SYMBOL vmlinux 0x75dffa5f phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0x75fee7fd __raw_writesb
+EXPORT_SYMBOL vmlinux 0x76053b2e block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0x760a0f4f yield
+EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x761bed77 genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x764c5cbe path_put
+EXPORT_SYMBOL vmlinux 0x7651d837 blk_integrity_register
+EXPORT_SYMBOL vmlinux 0x765f75fb pgprot_user
+EXPORT_SYMBOL vmlinux 0x76881360 leds_event
+EXPORT_SYMBOL vmlinux 0x768df608 generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0x7690823f tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x7691f74d tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0x76af261a jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0x76b5de91 mmc_host_lazy_disable
+EXPORT_SYMBOL vmlinux 0x76bc92f7 neigh_seq_next
+EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76cf47f6 __aeabi_llsl
+EXPORT_SYMBOL vmlinux 0x76d34634 dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0x76d35a4c phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode
+EXPORT_SYMBOL vmlinux 0x76f0f44e is_container_init
+EXPORT_SYMBOL vmlinux 0x76f73252 inode_init_owner
+EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic
+EXPORT_SYMBOL vmlinux 0x770f9e8e mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0x7724d5dd sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0x772aba03 fsnotify_destroy_mark_by_entry
+EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x7791193f icst525_s2div
+EXPORT_SYMBOL vmlinux 0x7799ef4f security_path_chmod
+EXPORT_SYMBOL vmlinux 0x77aa6fc2 keyring_search
+EXPORT_SYMBOL vmlinux 0x77aa8648 thermal_cooling_device_register
+EXPORT_SYMBOL vmlinux 0x77bc13a0 strim
+EXPORT_SYMBOL vmlinux 0x77d7bbbf tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x77da317b vga_tryget
+EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality
+EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x78013449 __f_setown
+EXPORT_SYMBOL vmlinux 0x781dbfc2 neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x78226cb4 clk_enable
+EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource
+EXPORT_SYMBOL vmlinux 0x789c8266 inode_setattr
+EXPORT_SYMBOL vmlinux 0x78ab4ee4 ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0x78c26639 sock_init_data
+EXPORT_SYMBOL vmlinux 0x78d2c929 file_remove_suid
+EXPORT_SYMBOL vmlinux 0x78dd31c2 i2c_verify_client
+EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78e4bff3 xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0x78ff910c mmc_alloc_host
+EXPORT_SYMBOL vmlinux 0x790a02c8 kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0x79171c60 fb_find_mode
+EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt
+EXPORT_SYMBOL vmlinux 0x7947a565 cpu_cache
+EXPORT_SYMBOL vmlinux 0x79623655 __sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x7966aa1f ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x7982e56b security_path_truncate
+EXPORT_SYMBOL vmlinux 0x79949ec1 mmc_power_save_host
+EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79c982a5 get_gendisk
+EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol
+EXPORT_SYMBOL vmlinux 0x7a367c53 unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x7a3bc699 __bread
+EXPORT_SYMBOL vmlinux 0x7a4497db kzfree
+EXPORT_SYMBOL vmlinux 0x7a48d117 input_register_handler
+EXPORT_SYMBOL vmlinux 0x7a52896a cdev_del
+EXPORT_SYMBOL vmlinux 0x7a60707e shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x7a8a3a28 nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0x7a8b06f9 __neigh_event_send
+EXPORT_SYMBOL vmlinux 0x7a949f21 blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x7a9bcfa0 i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0x7aa34944 blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip
+EXPORT_SYMBOL vmlinux 0x7af57313 qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x7b2c23d3 make_EII_client
+EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0x7b6dac63 pci_remove_bus
+EXPORT_SYMBOL vmlinux 0x7b7636c4 key_task_permission
+EXPORT_SYMBOL vmlinux 0x7b77a7da find_get_page
+EXPORT_SYMBOL vmlinux 0x7b780301 pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0x7b898fba serio_close
+EXPORT_SYMBOL vmlinux 0x7bcc67b6 bdget_disk
+EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name
+EXPORT_SYMBOL vmlinux 0x7bf30bb1 mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0x7c02d499 unregister_binfmt
+EXPORT_SYMBOL vmlinux 0x7c0dc912 dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0x7c2cc453 ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0x7c60d66e getname
+EXPORT_SYMBOL vmlinux 0x7c6f5cc0 blk_insert_request
+EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2
+EXPORT_SYMBOL vmlinux 0x7cd6f42b unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0x7cdb2535 pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies
+EXPORT_SYMBOL vmlinux 0x7d1b0919 blk_peek_request
+EXPORT_SYMBOL vmlinux 0x7d1ba971 writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0x7d3a768c aio_put_req
+EXPORT_SYMBOL vmlinux 0x7d440acd do_truncate
+EXPORT_SYMBOL vmlinux 0x7d482740 tty_register_device
+EXPORT_SYMBOL vmlinux 0x7d4a7123 single_release
+EXPORT_SYMBOL vmlinux 0x7d4ea9a3 poll_initwait
+EXPORT_SYMBOL vmlinux 0x7d80f00f vfs_mknod
+EXPORT_SYMBOL vmlinux 0x7d98fce6 dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x7da1ba13 dma_async_memcpy_buf_to_buf
+EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec
+EXPORT_SYMBOL vmlinux 0x7dc4d5cf truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0x7dceceac capable
+EXPORT_SYMBOL vmlinux 0x7dfae69d nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0x7e1938d8 dm_io_client_create
+EXPORT_SYMBOL vmlinux 0x7e1f767d blk_unplug
+EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e4e9a17 input_flush_device
+EXPORT_SYMBOL vmlinux 0x7e7df434 abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread
+EXPORT_SYMBOL vmlinux 0x7eb00ffd fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x7f0a10e0 pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f49e1f5 read_cache_page_async
+EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio
+EXPORT_SYMBOL vmlinux 0x7f66e0b0 __scm_send
+EXPORT_SYMBOL vmlinux 0x7f6ac5ed jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x7f8bf1af blk_recount_segments
+EXPORT_SYMBOL vmlinux 0x7f95666a dm_exception_store_type_register
+EXPORT_SYMBOL vmlinux 0x7fa92411 sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x8004c4a3 nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x8006be7f __kfree_skb
+EXPORT_SYMBOL vmlinux 0x800bf214 set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free
+EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3
+EXPORT_SYMBOL vmlinux 0x801c2926 scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0x8040f689 nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0x804bfdc3 dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x805226c8 skb_push
+EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0x80687d75 generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0x807b6e1e inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x8085f9e8 bioset_create
+EXPORT_SYMBOL vmlinux 0x80d817ab wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0x80de231a idr_remove
+EXPORT_SYMBOL vmlinux 0x80e06246 ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0x81003ee2 __sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x810b52e8 journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x8113a41f blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0x8126ce85 netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0x812e7c4b generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x813ed040 idr_remove_all
+EXPORT_SYMBOL vmlinux 0x814b19ca scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x815131ba mempool_destroy
+EXPORT_SYMBOL vmlinux 0x8157fc5b tr_type_trans
+EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal
+EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf
+EXPORT_SYMBOL vmlinux 0x818d04dd spi_release_transport
+EXPORT_SYMBOL vmlinux 0x819ea3a4 inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0x81a34018 scsi_scan_target
+EXPORT_SYMBOL vmlinux 0x81b04bfc completion_done
+EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x81eaa6a0 scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill
+EXPORT_SYMBOL vmlinux 0x821e8d91 gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x82459a28 sk_free
+EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8262f64b tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x829577cc submit_bh
+EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82b3d573 sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x82df471e writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x82f4d280 bitmap_end_sync
+EXPORT_SYMBOL vmlinux 0x82f9a22e textsearch_register
+EXPORT_SYMBOL vmlinux 0x83006a73 unregister_mtd_chip_driver
+EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3
+EXPORT_SYMBOL vmlinux 0x833153f2 dm_table_unplug_all
+EXPORT_SYMBOL vmlinux 0x836e77cc wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x8371daff sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring
+EXPORT_SYMBOL vmlinux 0x83800bfa kref_init
+EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8
+EXPORT_SYMBOL vmlinux 0x839682dd inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit
+EXPORT_SYMBOL vmlinux 0x83e5c9da xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0x83e79ddb mmc_host_disable
+EXPORT_SYMBOL vmlinux 0x83e8aaef tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0x8414929a __dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0x8429c8a0 set_disk_ro
+EXPORT_SYMBOL vmlinux 0x842ea04d ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x844f7072 scsi_remove_host
+EXPORT_SYMBOL vmlinux 0x84550dda dcache_dir_close
+EXPORT_SYMBOL vmlinux 0x847524f4 sock_no_bind
+EXPORT_SYMBOL vmlinux 0x8480c0b7 pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x84b183ae strncmp
+EXPORT_SYMBOL vmlinux 0x84bc1e75 sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0x84db4b6e wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0x84e1cbb5 scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0x8518f0c0 revalidate_disk
+EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x85a0cec2 page_follow_link_light
+EXPORT_SYMBOL vmlinux 0x85a51fc3 iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x85be659b dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x85d0714a dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x85d0bade lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x85df9b6c strsep
+EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x862c1d97 blk_put_request
+EXPORT_SYMBOL vmlinux 0x86348998 filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x8648d646 wake_up_process
+EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x866e98da inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x867f5b1e arp_broken_ops
+EXPORT_SYMBOL vmlinux 0x868acba5 get_options
+EXPORT_SYMBOL vmlinux 0x868b0903 audit_log_format
+EXPORT_SYMBOL vmlinux 0x86938fd8 dev_get_stats
+EXPORT_SYMBOL vmlinux 0x869e3fa6 jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0x86b5e59b blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0x86c63eff ppp_unit_number
+EXPORT_SYMBOL vmlinux 0x86cbecf5 bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x86e936e6 mdio_bus_type
+EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x870bc1d1 ip_fragment
+EXPORT_SYMBOL vmlinux 0x87166bb0 blk_free_tags
+EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x872b2f1e filp_close
+EXPORT_SYMBOL vmlinux 0x872cbdd0 no_llseek
+EXPORT_SYMBOL vmlinux 0x8738218c __scsi_add_device
+EXPORT_SYMBOL vmlinux 0x874447d0 vfs_rename
+EXPORT_SYMBOL vmlinux 0x876837e6 end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87a5e877 __dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x87a5ec17 skb_queue_purge
+EXPORT_SYMBOL vmlinux 0x87aeaa00 ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x87dbba14 ida_get_new
+EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate
+EXPORT_SYMBOL vmlinux 0x8857e251 napi_get_frags
+EXPORT_SYMBOL vmlinux 0x885bae71 __scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x8862acee pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0x886d22cc have_submounts
+EXPORT_SYMBOL vmlinux 0x88804e24 qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x88844d54 inet_bind
+EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait
+EXPORT_SYMBOL vmlinux 0x88a1f653 rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0x88cac780 blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0x8923966f __devm_release_region
+EXPORT_SYMBOL vmlinux 0x8949858b schedule_work
+EXPORT_SYMBOL vmlinux 0x896ae152 iunique
+EXPORT_SYMBOL vmlinux 0x897473df mktime
+EXPORT_SYMBOL vmlinux 0x89870ce9 iput
+EXPORT_SYMBOL vmlinux 0x898e4de1 __alloc_skb
+EXPORT_SYMBOL vmlinux 0x89b87067 key_unlink
+EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89dfcc1b rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x8a0c78d9 cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0x8a292a70 iget5_locked
+EXPORT_SYMBOL vmlinux 0x8a32ccda scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0x8a3df0f1 register_framebuffer
+EXPORT_SYMBOL vmlinux 0x8a3e456f dev_mc_del
+EXPORT_SYMBOL vmlinux 0x8a4fa83b __aeabi_llsr
+EXPORT_SYMBOL vmlinux 0x8a556e47 pneigh_lookup
+EXPORT_SYMBOL vmlinux 0x8a6b3466 clk_add_alias
+EXPORT_SYMBOL vmlinux 0x8a71925b pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory
+EXPORT_SYMBOL vmlinux 0x8a806d93 jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0x8a87a0e5 input_unregister_handle
+EXPORT_SYMBOL vmlinux 0x8a89b47d scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0x8a8c86ae unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8ab91d20 neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x8ad1583d blk_queue_ordered
+EXPORT_SYMBOL vmlinux 0x8aeeba76 generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0x8b19f4e8 pci_read_vpd
+EXPORT_SYMBOL vmlinux 0x8b2d396a inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x8b34bb43 vfs_create
+EXPORT_SYMBOL vmlinux 0x8b3c3c02 dma_mark_declared_memory_occupied
+EXPORT_SYMBOL vmlinux 0x8b3dd284 tty_vhangup
+EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x8b605c6c pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid
+EXPORT_SYMBOL vmlinux 0x8b7851ae lease_modify
+EXPORT_SYMBOL vmlinux 0x8b984f45 cdrom_open
+EXPORT_SYMBOL vmlinux 0x8ba014c8 generic_readlink
+EXPORT_SYMBOL vmlinux 0x8ba3b47c pipe_lock
+EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long
+EXPORT_SYMBOL vmlinux 0x8bf249c5 neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x8c3583fb tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0x8c3a59d5 input_grab_device
+EXPORT_SYMBOL vmlinux 0x8c60372d scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x8c64d8a4 flush_old_exec
+EXPORT_SYMBOL vmlinux 0x8c770bb5 scsi_remove_device
+EXPORT_SYMBOL vmlinux 0x8c8812fc neigh_for_each
+EXPORT_SYMBOL vmlinux 0x8c9b055b lock_sock_fast
+EXPORT_SYMBOL vmlinux 0x8cb5201b sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x8ccda6f2 load_nls_default
+EXPORT_SYMBOL vmlinux 0x8cf3012a set_device_ro
+EXPORT_SYMBOL vmlinux 0x8cf51d15 up
+EXPORT_SYMBOL vmlinux 0x8d190a58 pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x8d4984f2 blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0x8d4fb39e pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d61b170 sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x8d6bae60 clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x8d6eae49 thermal_cooling_device_unregister
+EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32
+EXPORT_SYMBOL vmlinux 0x8dc27a0c ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x8dca5600 generic_write_checks
+EXPORT_SYMBOL vmlinux 0x8e09bcd7 __set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e0f5607 con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x8e17b9ba dm_table_get
+EXPORT_SYMBOL vmlinux 0x8e23cc9b xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x8e35a691 inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0x8e3b1e2b input_allocate_device
+EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk
+EXPORT_SYMBOL vmlinux 0x8e5191bb blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x8e9e4f74 flush_signals
+EXPORT_SYMBOL vmlinux 0x8ecae2f0 tcp_close
+EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8f022899 nla_append
+EXPORT_SYMBOL vmlinux 0x8f0646d7 skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x8f0dcce5 blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x8f198754 force_sig
+EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev
+EXPORT_SYMBOL vmlinux 0x8f537cda tty_port_close_start
+EXPORT_SYMBOL vmlinux 0x8f5ffdf0 sock_recvmsg
+EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data
+EXPORT_SYMBOL vmlinux 0x8f82a705 phy_find_first
+EXPORT_SYMBOL vmlinux 0x8f89e982 truncate_pagecache
+EXPORT_SYMBOL vmlinux 0x8fafa4be backlight_force_update
+EXPORT_SYMBOL vmlinux 0x8fbd8a56 max8925_reg_read
+EXPORT_SYMBOL vmlinux 0x8fd58205 pci_target_state
+EXPORT_SYMBOL vmlinux 0x8fd6a969 scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16
+EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x901aa766 skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x903cd8ef tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0x908181e9 vfs_fsync
+EXPORT_SYMBOL vmlinux 0x90aaf6ea bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0x90c5ee34 dma_alloc_writecombine
+EXPORT_SYMBOL vmlinux 0x90c8b07c ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x90d9c8c9 nla_reserve
+EXPORT_SYMBOL vmlinux 0x90f0b244 security_inode_init_security
+EXPORT_SYMBOL vmlinux 0x9112ef6f kset_register
+EXPORT_SYMBOL vmlinux 0x91315656 blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0x91316339 tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x913504d2 dev_get_flags
+EXPORT_SYMBOL vmlinux 0x913f563a lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x91459bd2 dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource
+EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong
+EXPORT_SYMBOL vmlinux 0x9187f511 tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0x918adb83 tty_set_operations
+EXPORT_SYMBOL vmlinux 0x919029aa __readwrite_bug
+EXPORT_SYMBOL vmlinux 0x91bc2198 fget
+EXPORT_SYMBOL vmlinux 0x91c0980e icst_hz
+EXPORT_SYMBOL vmlinux 0x91c2b5cf __pagevec_release
+EXPORT_SYMBOL vmlinux 0x91f7e484 lookup_bdev
+EXPORT_SYMBOL vmlinux 0x920664c8 mempool_free
+EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool
+EXPORT_SYMBOL vmlinux 0x9224c451 tcp_parse_options
+EXPORT_SYMBOL vmlinux 0x92339cbc ll_rw_block
+EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get
+EXPORT_SYMBOL vmlinux 0x9240a9fa tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0x9279b213 xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0x929eecac __strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x93040846 __dst_free
+EXPORT_SYMBOL vmlinux 0x931b9ec4 genphy_config_advert
+EXPORT_SYMBOL vmlinux 0x93247dc6 ip6_frag_init
+EXPORT_SYMBOL vmlinux 0x9338bb17 seq_lseek
+EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule
+EXPORT_SYMBOL vmlinux 0x93b2e09d bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x93c5a5cb dquot_destroy
+EXPORT_SYMBOL vmlinux 0x93c8e27d __nla_reserve
+EXPORT_SYMBOL vmlinux 0x93cdeb28 md_integrity_register
+EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages
+EXPORT_SYMBOL vmlinux 0x9401497c blk_init_tags
+EXPORT_SYMBOL vmlinux 0x940b7385 simple_rmdir
+EXPORT_SYMBOL vmlinux 0x943f3d24 ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex
+EXPORT_SYMBOL vmlinux 0x94762738 thermal_zone_device_update
+EXPORT_SYMBOL vmlinux 0x9480b44b dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0x94961283 vunmap
+EXPORT_SYMBOL vmlinux 0x94af632e complete_all
+EXPORT_SYMBOL vmlinux 0x94b89964 end_page_writeback
+EXPORT_SYMBOL vmlinux 0x94bdb769 bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x94ec81d5 __wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x94fad91c tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0x950bc491 fb_get_mode
+EXPORT_SYMBOL vmlinux 0x952ada1e neigh_table_init
+EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init
+EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf
+EXPORT_SYMBOL vmlinux 0x95986544 ilookup
+EXPORT_SYMBOL vmlinux 0x95bec928 __skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x95da8614 dma_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x95dbe078 __get_user_2
+EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq
+EXPORT_SYMBOL vmlinux 0x95f9d818 udp_disconnect
+EXPORT_SYMBOL vmlinux 0x962cd85d register_netdevice
+EXPORT_SYMBOL vmlinux 0x962d923c netif_napi_add
+EXPORT_SYMBOL vmlinux 0x9635a7da blk_end_request
+EXPORT_SYMBOL vmlinux 0x96434c8c kset_unregister
+EXPORT_SYMBOL vmlinux 0x9656f8a0 llc_sap_list_lock
+EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96eb2c9b tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0x97153dd4 jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0x97255bdf strlen
+EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n
+EXPORT_SYMBOL vmlinux 0x97271808 nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x97286a07 blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x97592511 abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x97700010 md_write_start
+EXPORT_SYMBOL vmlinux 0x97866807 max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x9788f764 elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0x978f612f find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x97eb4115 vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0x97f40310 get_fs_type
+EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user
+EXPORT_SYMBOL vmlinux 0x983dfd2c insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0x986a7a9e scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x98936cdf ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0x9899233a commit_creds
+EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init
+EXPORT_SYMBOL vmlinux 0x989af7be dev_txq_stats_fold
+EXPORT_SYMBOL vmlinux 0x989d6498 disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x98c2fc62 revert_creds
+EXPORT_SYMBOL vmlinux 0x98ef5a3c dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x990e58b8 km_query
+EXPORT_SYMBOL vmlinux 0x992229e3 request_key
+EXPORT_SYMBOL vmlinux 0x99312aa3 bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x9979ebb1 tty_port_put
+EXPORT_SYMBOL vmlinux 0x997e8adc jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x9987f88e take_over_console
+EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999c3148 __raw_readsb
+EXPORT_SYMBOL vmlinux 0x999e8297 vfree
+EXPORT_SYMBOL vmlinux 0x999f2d6a __splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x99affd31 jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0x99bb8806 memmove
+EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name
+EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99e0c233 pci_disable_device
+EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink
+EXPORT_SYMBOL vmlinux 0x99f7caa8 __blk_run_queue
+EXPORT_SYMBOL vmlinux 0x9a14f219 is_bad_inode
+EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk
+EXPORT_SYMBOL vmlinux 0x9a332d76 put_tty_driver
+EXPORT_SYMBOL vmlinux 0x9a43f323 sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x9a7d5978 simple_empty
+EXPORT_SYMBOL vmlinux 0x9a8fe995 lro_receive_frags
+EXPORT_SYMBOL vmlinux 0x9a974753 tty_port_init
+EXPORT_SYMBOL vmlinux 0x9ad43218 md_wait_for_blocked_rdev
+EXPORT_SYMBOL vmlinux 0x9b18178b dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0x9b1eeb2f netif_napi_del
+EXPORT_SYMBOL vmlinux 0x9b329087 pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b424097 iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize
+EXPORT_SYMBOL vmlinux 0x9b871f9d start_tty
+EXPORT_SYMBOL vmlinux 0x9b98720e gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split
+EXPORT_SYMBOL vmlinux 0x9bad7008 invalidate_inodes
+EXPORT_SYMBOL vmlinux 0x9baf27ac down_read_trylock
+EXPORT_SYMBOL vmlinux 0x9bb2a80d filemap_fault
+EXPORT_SYMBOL vmlinux 0x9bce482f __release_region
+EXPORT_SYMBOL vmlinux 0x9be0b441 copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c03104c scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0x9c21567e nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt
+EXPORT_SYMBOL vmlinux 0x9c72aecc generic_file_mmap
+EXPORT_SYMBOL vmlinux 0x9c7f3d41 netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0x9c8eabd3 key_link
+EXPORT_SYMBOL vmlinux 0x9c9b8f69 block_sync_page
+EXPORT_SYMBOL vmlinux 0x9ca097cb __put_cred
+EXPORT_SYMBOL vmlinux 0x9ca3b80c skb_pull
+EXPORT_SYMBOL vmlinux 0x9ca7a323 simple_write_begin
+EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cb9ecaa tcf_hash_search
+EXPORT_SYMBOL vmlinux 0x9cd17a1a remove_arg_zero
+EXPORT_SYMBOL vmlinux 0x9cd60539 sg_free_table
+EXPORT_SYMBOL vmlinux 0x9ce9479f __xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9d03b366 names_cachep
+EXPORT_SYMBOL vmlinux 0x9d130ab0 ___dma_page_cpu_to_dev
+EXPORT_SYMBOL vmlinux 0x9d2fb246 dev_disable_lro
+EXPORT_SYMBOL vmlinux 0x9d34c2b6 register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d4bbc0e llc_sap_close
+EXPORT_SYMBOL vmlinux 0x9d619072 write_inode_now
+EXPORT_SYMBOL vmlinux 0x9d654ccd vfs_statfs
+EXPORT_SYMBOL vmlinux 0x9d669763 memcpy
+EXPORT_SYMBOL vmlinux 0x9de0dce9 sock_no_accept
+EXPORT_SYMBOL vmlinux 0x9dfb731d contig_page_data
+EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x9e5fd9ee cfb_imageblit
+EXPORT_SYMBOL vmlinux 0x9e634de5 kmap
+EXPORT_SYMBOL vmlinux 0x9e744c95 vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay
+EXPORT_SYMBOL vmlinux 0x9e82a730 mddev_congested
+EXPORT_SYMBOL vmlinux 0x9e91a40a phy_start
+EXPORT_SYMBOL vmlinux 0x9e920855 send_sig_info
+EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ea67977 i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x9ee90ae8 inetdev_by_index
+EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk
+EXPORT_SYMBOL vmlinux 0x9ef55ce7 vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x9f0846dd skb_make_writable
+EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0x9f1d37d5 posix_lock_file
+EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool
+EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f53ad27 save_mount_options
+EXPORT_SYMBOL vmlinux 0x9f6ec3fb dm_table_put
+EXPORT_SYMBOL vmlinux 0x9f95b3da netpoll_poll
+EXPORT_SYMBOL vmlinux 0x9f984513 strrchr
+EXPORT_SYMBOL vmlinux 0x9f99d9bf ida_pre_get
+EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x9fcc17ad alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0x9fe48af7 mmc_wait_for_app_cmd
+EXPORT_SYMBOL vmlinux 0xa00ab5bf __free_pages
+EXPORT_SYMBOL vmlinux 0xa014ce67 security_path_rmdir
+EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa07ac24b irq_stat
+EXPORT_SYMBOL vmlinux 0xa07b4e06 gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0xa083e368 tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0d6b194 simple_readpage
+EXPORT_SYMBOL vmlinux 0xa0d7bae2 scsi_register_driver
+EXPORT_SYMBOL vmlinux 0xa0ebcc53 dma_pool_create
+EXPORT_SYMBOL vmlinux 0xa0fade29 del_timer
+EXPORT_SYMBOL vmlinux 0xa0fba380 i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa1325c23 nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0xa13db724 genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa14916ca dquot_quota_on_path
+EXPORT_SYMBOL vmlinux 0xa15bbc45 redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0xa185c10d tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0xa198aa35 pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0xa1a3f997 sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode
+EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched
+EXPORT_SYMBOL vmlinux 0xa1c8e089 dquot_free_inode
+EXPORT_SYMBOL vmlinux 0xa1f8cd83 prepare_binprm
+EXPORT_SYMBOL vmlinux 0xa202e63b i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa23cbe30 scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0xa24d4348 skb_copy
+EXPORT_SYMBOL vmlinux 0xa253c6f3 xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0xa25fb0d4 key_type_keyring
+EXPORT_SYMBOL vmlinux 0xa281a63a phy_enable_interrupts
+EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2a73d37 rfkill_set_led_trigger_name
+EXPORT_SYMBOL vmlinux 0xa2f04071 phy_start_aneg
+EXPORT_SYMBOL vmlinux 0xa317a728 llc_sap_open
+EXPORT_SYMBOL vmlinux 0xa31dec0e neigh_compat_output
+EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker
+EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le
+EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config
+EXPORT_SYMBOL vmlinux 0xa372d97d iterate_mounts
+EXPORT_SYMBOL vmlinux 0xa37e0e17 fb_set_cmap
+EXPORT_SYMBOL vmlinux 0xa3cc96d7 tcf_register_action
+EXPORT_SYMBOL vmlinux 0xa3f88224 phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0xa40716cc update_region
+EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0xa4664eca kmem_cache_free
+EXPORT_SYMBOL vmlinux 0xa487d4a7 blk_run_queue
+EXPORT_SYMBOL vmlinux 0xa49e3709 simple_pin_fs
+EXPORT_SYMBOL vmlinux 0xa4a61f3b inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0xa4b52d52 input_register_handle
+EXPORT_SYMBOL vmlinux 0xa4b94399 d_alloc_name
+EXPORT_SYMBOL vmlinux 0xa4c012a9 deny_write_access
+EXPORT_SYMBOL vmlinux 0xa5071e3e vc_cons
+EXPORT_SYMBOL vmlinux 0xa5106ae3 scsi_scan_host
+EXPORT_SYMBOL vmlinux 0xa538fd7c xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone
+EXPORT_SYMBOL vmlinux 0xa56f5a40 inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse
+EXPORT_SYMBOL vmlinux 0xa58e7616 tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5c3f2d7 iget_failed
+EXPORT_SYMBOL vmlinux 0xa5cd098c pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource
+EXPORT_SYMBOL vmlinux 0xa6057cd8 tcp_ioctl
+EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember
+EXPORT_SYMBOL vmlinux 0xa64ad820 dcache_readdir
+EXPORT_SYMBOL vmlinux 0xa64d1c3e bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xa65f9147 block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0xa66c645b simple_transaction_set
+EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa69a4896 tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0xa6ac636a vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0xa709c332 thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL vmlinux 0xa718820c seq_open_private
+EXPORT_SYMBOL vmlinux 0xa75179f3 pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0xa776d20e vm_insert_page
+EXPORT_SYMBOL vmlinux 0xa798695f vga_put
+EXPORT_SYMBOL vmlinux 0xa79e48c4 scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0xa7a1bc57 unload_nls
+EXPORT_SYMBOL vmlinux 0xa7aa586a register_snap_client
+EXPORT_SYMBOL vmlinux 0xa7b51c97 ethtool_ntuple_flush
+EXPORT_SYMBOL vmlinux 0xa7d79d5e cad_pid
+EXPORT_SYMBOL vmlinux 0xa813670e amba_device_register
+EXPORT_SYMBOL vmlinux 0xa8844a7c sk_common_release
+EXPORT_SYMBOL vmlinux 0xa8953bb4 unlock_buffer
+EXPORT_SYMBOL vmlinux 0xa8a4fdeb lock_super
+EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue
+EXPORT_SYMBOL vmlinux 0xa8ec49bc dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0xa8f224ec jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa9193a63 dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0xa920511c netpoll_print_options
+EXPORT_SYMBOL vmlinux 0xa923af9a uart_match_port
+EXPORT_SYMBOL vmlinux 0xa93eebf4 tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0xa948c0fe consume_skb
+EXPORT_SYMBOL vmlinux 0xa983a8be dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0xa996d759 pci_choose_state
+EXPORT_SYMBOL vmlinux 0xa9cdad32 sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0xaa0dcc22 skb_unlink
+EXPORT_SYMBOL vmlinux 0xaa22f89f gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0xaa39c3f4 udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0xaa53e0fb generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0xaa5927f9 scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0xaa6b5dbc block_prepare_write
+EXPORT_SYMBOL vmlinux 0xaa7a2a4e uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xaa7d94f2 mapping_tagged
+EXPORT_SYMBOL vmlinux 0xaa94c694 __init_rwsem
+EXPORT_SYMBOL vmlinux 0xaa97a527 lock_may_write
+EXPORT_SYMBOL vmlinux 0xaac500fe freeze_bdev
+EXPORT_SYMBOL vmlinux 0xaad931ec nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0xaaf17640 inet_addr_type
+EXPORT_SYMBOL vmlinux 0xaafbe9d8 replace_mount_options
+EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp
+EXPORT_SYMBOL vmlinux 0xab0df31c generic_delete_inode
+EXPORT_SYMBOL vmlinux 0xab1df063 pci_request_region
+EXPORT_SYMBOL vmlinux 0xab37dd2b __vlan_hwaccel_rx
+EXPORT_SYMBOL vmlinux 0xab455eb0 up_read
+EXPORT_SYMBOL vmlinux 0xab591c3f input_unregister_device
+EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off
+EXPORT_SYMBOL vmlinux 0xab631754 journal_wipe
+EXPORT_SYMBOL vmlinux 0xab65e103 con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0xab7807a0 vfs_unlink
+EXPORT_SYMBOL vmlinux 0xab911245 d_move
+EXPORT_SYMBOL vmlinux 0xab9696cc ps2_handle_response
+EXPORT_SYMBOL vmlinux 0xaba00cd4 block_invalidatepage
+EXPORT_SYMBOL vmlinux 0xabb30c2b tty_check_change
+EXPORT_SYMBOL vmlinux 0xabce29b6 d_genocide
+EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0xac02f4c2 xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac0db780 netpoll_setup
+EXPORT_SYMBOL vmlinux 0xac2ac482 dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0xac44162d request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits
+EXPORT_SYMBOL vmlinux 0xac627c54 bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac6b1995 kill_pgrp
+EXPORT_SYMBOL vmlinux 0xaca397f5 call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton
+EXPORT_SYMBOL vmlinux 0xacecd09c sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0xacf49063 xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup
+EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex
+EXPORT_SYMBOL vmlinux 0xad25bb20 init_timer_key
+EXPORT_SYMBOL vmlinux 0xad2f3801 mb_cache_create
+EXPORT_SYMBOL vmlinux 0xad30e44e lro_vlan_hwaccel_receive_skb
+EXPORT_SYMBOL vmlinux 0xad3e49ec scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad9c67b0 scsi_host_get
+EXPORT_SYMBOL vmlinux 0xad9cc560 neigh_parms_release
+EXPORT_SYMBOL vmlinux 0xadb3d81e up_write
+EXPORT_SYMBOL vmlinux 0xadd0f909 vlan_gro_frags
+EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region
+EXPORT_SYMBOL vmlinux 0xae01ca3b __invalidate_device
+EXPORT_SYMBOL vmlinux 0xae0e9ffd ppp_input_error
+EXPORT_SYMBOL vmlinux 0xae567b6d rwsem_is_locked
+EXPORT_SYMBOL vmlinux 0xae9f8733 register_8022_client
+EXPORT_SYMBOL vmlinux 0xaea7dede ps2_end_command
+EXPORT_SYMBOL vmlinux 0xaeaea752 clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0xaebb7d05 security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0xaeca0dd3 tcp4_gro_complete
+EXPORT_SYMBOL vmlinux 0xaed1192d xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0xaeeacf93 unregister_8022_client
+EXPORT_SYMBOL vmlinux 0xaeef3066 km_new_mapping
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf50e76d elf_set_personality
+EXPORT_SYMBOL vmlinux 0xaf546d2b __ip_select_ident
+EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xaf82c2dd mmc_remove_host
+EXPORT_SYMBOL vmlinux 0xaf8aa518 system_rev
+EXPORT_SYMBOL vmlinux 0xafc9d1be journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xb0498f5a put_io_context
+EXPORT_SYMBOL vmlinux 0xb0637b4c tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0xb07dcd39 cont_write_begin
+EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0b9e556 iget_locked
+EXPORT_SYMBOL vmlinux 0xb0e10781 get_option
+EXPORT_SYMBOL vmlinux 0xb1136fd5 blk_complete_request
+EXPORT_SYMBOL vmlinux 0xb11f5897 request_key_async
+EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb129ebd6 scsi_register
+EXPORT_SYMBOL vmlinux 0xb13bb05e pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0xb15b9975 blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb19da020 __set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0xb1b22911 down_write
+EXPORT_SYMBOL vmlinux 0xb1b3cf44 gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1e821fe scsi_target_resume
+EXPORT_SYMBOL vmlinux 0xb21324c8 inode_needs_sync
+EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short
+EXPORT_SYMBOL vmlinux 0xb22924e5 simple_rename
+EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xb23e37c1 abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0xb2444830 security_task_getsecid
+EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb2698dad udp_ioctl
+EXPORT_SYMBOL vmlinux 0xb28d2b3b invalidate_partition
+EXPORT_SYMBOL vmlinux 0xb297087b get_sb_nodev
+EXPORT_SYMBOL vmlinux 0xb2a9dd1d jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xb2abcca6 ip_getsockopt
+EXPORT_SYMBOL vmlinux 0xb2bbdd0d blk_execute_rq
+EXPORT_SYMBOL vmlinux 0xb2d47d69 kern_path
+EXPORT_SYMBOL vmlinux 0xb2d6f0c9 netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0xb2da95f8 tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0xb2fc515b pci_get_slot
+EXPORT_SYMBOL vmlinux 0xb308295e nf_register_hooks
+EXPORT_SYMBOL vmlinux 0xb310e59e inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0xb323ed99 skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0xb36fe041 dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0xb37b8d9f fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0xb39f7392 sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3c82ba9 seq_putc
+EXPORT_SYMBOL vmlinux 0xb3ebc31a __generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xb3efc72d down
+EXPORT_SYMBOL vmlinux 0xb3f73bd7 simple_dir_operations
+EXPORT_SYMBOL vmlinux 0xb402a27d blk_sync_queue
+EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked
+EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool
+EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0xb430feea netdev_set_master
+EXPORT_SYMBOL vmlinux 0xb44388d9 blk_remove_plug
+EXPORT_SYMBOL vmlinux 0xb4496d38 netif_receive_skb
+EXPORT_SYMBOL vmlinux 0xb4505276 i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0xb45819fd ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb4a8e06f get_user_pages
+EXPORT_SYMBOL vmlinux 0xb4b51b69 tty_port_close
+EXPORT_SYMBOL vmlinux 0xb4ba56d3 module_refcount
+EXPORT_SYMBOL vmlinux 0xb4e92690 fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf
+EXPORT_SYMBOL vmlinux 0xb50f85d1 block_truncate_page
+EXPORT_SYMBOL vmlinux 0xb52ab926 neigh_ifdown
+EXPORT_SYMBOL vmlinux 0xb534e9ac phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0xb54452e0 napi_reuse_skb
+EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb5454d39 vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0xb5540dc2 tc_classify_compat
+EXPORT_SYMBOL vmlinux 0xb56c4691 write_cache_pages
+EXPORT_SYMBOL vmlinux 0xb57095ea jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xb5942e25 mii_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5c46f2d dev_mc_flush
+EXPORT_SYMBOL vmlinux 0xb5c51f20 journal_create
+EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free
+EXPORT_SYMBOL vmlinux 0xb5d44e98 bio_split
+EXPORT_SYMBOL vmlinux 0xb5f00de4 grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0xb6007464 mmc_request_done
+EXPORT_SYMBOL vmlinux 0xb6025ebe poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0xb6462588 mmc_card_awake
+EXPORT_SYMBOL vmlinux 0xb66151cc tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0xb66300e6 neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif
+EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a62fda fb_class
+EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu
+EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6e31477 scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0xb72a85e6 find_or_create_page
+EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0xb78b3626 interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0xb795f358 ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0xb7a06aa5 dev_getbyhwaddr
+EXPORT_SYMBOL vmlinux 0xb7aeab7c path_lookup
+EXPORT_SYMBOL vmlinux 0xb7b22098 fb_show_logo
+EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be
+EXPORT_SYMBOL vmlinux 0xb7b6511a mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0xb7ba76c7 __aeabi_unwind_cpp_pr2
+EXPORT_SYMBOL vmlinux 0xb7c656b6 dev_addr_flush
+EXPORT_SYMBOL vmlinux 0xb7f7879f tcp_splice_read
+EXPORT_SYMBOL vmlinux 0xb8168929 xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0xb81fd3be idr_find
+EXPORT_SYMBOL vmlinux 0xb8311a4a mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0xb8326072 remove_from_page_cache
+EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat
+EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32
+EXPORT_SYMBOL vmlinux 0xb8838d70 elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on
+EXPORT_SYMBOL vmlinux 0xb8970bdf bd_release
+EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32
+EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region
+EXPORT_SYMBOL vmlinux 0xb8b568e0 eth_change_mtu
+EXPORT_SYMBOL vmlinux 0xb92eb469 set_user_nice
+EXPORT_SYMBOL vmlinux 0xb95df14e xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0xb95f98d6 _memset_io
+EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb99b1d38 pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0xb99ea371 elv_rb_add
+EXPORT_SYMBOL vmlinux 0xb9acd3d9 __put_user_2
+EXPORT_SYMBOL vmlinux 0xb9e52429 __wake_up
+EXPORT_SYMBOL vmlinux 0xb9e9626f ip6_xmit
+EXPORT_SYMBOL vmlinux 0xb9f6331c mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0xb9f7eff3 md_write_end
+EXPORT_SYMBOL vmlinux 0xba002199 scsi_ioctl
+EXPORT_SYMBOL vmlinux 0xba08cf9c ppp_output_wakeup
+EXPORT_SYMBOL vmlinux 0xba204d4a __mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba4dcc84 dm_put_device
+EXPORT_SYMBOL vmlinux 0xba62a939 elv_abort_queue
+EXPORT_SYMBOL vmlinux 0xba6cfe19 inode_init_always
+EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbadbe9b0 mem_map
+EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb1b5f57 scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0xbb3b2a9c arp_create
+EXPORT_SYMBOL vmlinux 0xbb4f6c53 kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0xbb55d058 f_setown
+EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb72d4fe __put_user_1
+EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font
+EXPORT_SYMBOL vmlinux 0xbbae9f01 simple_lookup
+EXPORT_SYMBOL vmlinux 0xbbb17922 pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xbbd348f4 eth_header
+EXPORT_SYMBOL vmlinux 0xbc0cc840 jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0xbc10dd97 __put_user_4
+EXPORT_SYMBOL vmlinux 0xbc19aa0a bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0xbc876b56 tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0xbc8cb370 gen_pool_free
+EXPORT_SYMBOL vmlinux 0xbcc9144f genphy_resume
+EXPORT_SYMBOL vmlinux 0xbced3223 mdiobus_free
+EXPORT_SYMBOL vmlinux 0xbd2d197f scsi_block_requests
+EXPORT_SYMBOL vmlinux 0xbd375b7f grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0xbd48c38c phy_sanitize_settings
+EXPORT_SYMBOL vmlinux 0xbdc61515 blkdev_fsync
+EXPORT_SYMBOL vmlinux 0xbdcb55f8 tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0xbdcbc100 mod_timer
+EXPORT_SYMBOL vmlinux 0xbdcfdaf1 thaw_bdev
+EXPORT_SYMBOL vmlinux 0xbdebc88b jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0xbdf2580d __raw_readsl
+EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next
+EXPORT_SYMBOL vmlinux 0xbe007cbc tcf_action_exec
+EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp
+EXPORT_SYMBOL vmlinux 0xbe14199e brioctl_set
+EXPORT_SYMBOL vmlinux 0xbe2dbe85 md_check_recovery
+EXPORT_SYMBOL vmlinux 0xbe419ebf __task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource
+EXPORT_SYMBOL vmlinux 0xbe7b5a07 inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0xbec067ed clk_get_sys
+EXPORT_SYMBOL vmlinux 0xbee9005c tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbefb8744 bio_add_page
+EXPORT_SYMBOL vmlinux 0xbf125fd0 i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0xbf1faebe mutex_trylock
+EXPORT_SYMBOL vmlinux 0xbf20411f qdisc_reset
+EXPORT_SYMBOL vmlinux 0xbf2a22ab qdisc_destroy
+EXPORT_SYMBOL vmlinux 0xbf64ad7b devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbfb915f4 netif_carrier_on
+EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xbff7e4ed blk_stack_limits
+EXPORT_SYMBOL vmlinux 0xc012edc7 xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0xc067aa4a ether_setup
+EXPORT_SYMBOL vmlinux 0xc06ec2c8 abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0xc06fb12e simple_release_fs
+EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc0917c43 uart_add_one_port
+EXPORT_SYMBOL vmlinux 0xc0d34351 invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0xc0e1f048 scm_detach_fds
+EXPORT_SYMBOL vmlinux 0xc0e3f17b kill_fasync
+EXPORT_SYMBOL vmlinux 0xc10a9486 ab3100_event_register
+EXPORT_SYMBOL vmlinux 0xc10c51f1 clk_get
+EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten
+EXPORT_SYMBOL vmlinux 0xc1601a4f _change_bit_le
+EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic
+EXPORT_SYMBOL vmlinux 0xc165cac2 scsi_print_command
+EXPORT_SYMBOL vmlinux 0xc16abf7a clear_inode
+EXPORT_SYMBOL vmlinux 0xc1752d21 wireless_send_event
+EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0xc185b97c lock_may_read
+EXPORT_SYMBOL vmlinux 0xc1b75acb amba_driver_unregister
+EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1cbb9ff block_write_full_page
+EXPORT_SYMBOL vmlinux 0xc1d16792 mii_nway_restart
+EXPORT_SYMBOL vmlinux 0xc1f2a6a7 destroy_EII_client
+EXPORT_SYMBOL vmlinux 0xc1f5445e close_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0xc1fc4511 _test_and_change_bit_le
+EXPORT_SYMBOL vmlinux 0xc224fb52 init_task
+EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc27487dd __bug
+EXPORT_SYMBOL vmlinux 0xc27df1d4 i2c_transfer
+EXPORT_SYMBOL vmlinux 0xc28bccce misc_deregister
+EXPORT_SYMBOL vmlinux 0xc29fb862 blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0xc2aa43a8 set_bh_page
+EXPORT_SYMBOL vmlinux 0xc2b38f8b blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0xc2c1c76b xfrm_register_km
+EXPORT_SYMBOL vmlinux 0xc2cf981d unregister_quota_format
+EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc
+EXPORT_SYMBOL vmlinux 0xc2e058a4 idr_get_new_above
+EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices
+EXPORT_SYMBOL vmlinux 0xc311a259 ___pskb_trim
+EXPORT_SYMBOL vmlinux 0xc339bae8 xfrm_state_add
+EXPORT_SYMBOL vmlinux 0xc34dc911 free_task
+EXPORT_SYMBOL vmlinux 0xc359fb65 abort
+EXPORT_SYMBOL vmlinux 0xc3a91869 jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xc3af8f35 dm_exception_store_destroy
+EXPORT_SYMBOL vmlinux 0xc3c81aef send_sig
+EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p
+EXPORT_SYMBOL vmlinux 0xc3e8e629 rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0xc41d5959 tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0xc4341ae6 dentry_unhash
+EXPORT_SYMBOL vmlinux 0xc43eff2a inet_recvmsg
+EXPORT_SYMBOL vmlinux 0xc45ef616 idr_for_each
+EXPORT_SYMBOL vmlinux 0xc460b506 try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xc46fcd0d do_splice_to
+EXPORT_SYMBOL vmlinux 0xc471c9a0 new_inode
+EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup
+EXPORT_SYMBOL vmlinux 0xc4a6e645 __xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xc4c248b9 ___ratelimit
+EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic
+EXPORT_SYMBOL vmlinux 0xc4f02efd scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0xc50a0574 sock_i_uid
+EXPORT_SYMBOL vmlinux 0xc51da74c i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc532cbd6 pcim_iomap
+EXPORT_SYMBOL vmlinux 0xc54d6d96 kobject_set_name
+EXPORT_SYMBOL vmlinux 0xc5a4777f journal_clear_err
+EXPORT_SYMBOL vmlinux 0xc5a7b9b2 unlock_new_inode
+EXPORT_SYMBOL vmlinux 0xc5bc6f04 jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0xc5bdf52f open_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0xc5c75582 create_mnt_ns
+EXPORT_SYMBOL vmlinux 0xc5d2d28a devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0xc5eda637 pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0xc5f370ee journal_restart
+EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0xc61c4305 bitmap_close_sync
+EXPORT_SYMBOL vmlinux 0xc638b88c bio_unmap_user
+EXPORT_SYMBOL vmlinux 0xc65af65b scsi_remove_target
+EXPORT_SYMBOL vmlinux 0xc676bea9 journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xc68d7422 generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0xc6997d96 linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0xc6c71215 clkdev_drop
+EXPORT_SYMBOL vmlinux 0xc6d533e1 down_read
+EXPORT_SYMBOL vmlinux 0xc6f62372 dst_discard
+EXPORT_SYMBOL vmlinux 0xc740558a __break_lease
+EXPORT_SYMBOL vmlinux 0xc745a190 splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0xc74fda25 spi_display_xfer_agreement
+EXPORT_SYMBOL vmlinux 0xc75663bf __xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0xc75699a2 clk_disable
+EXPORT_SYMBOL vmlinux 0xc76dab00 remap_pfn_range
+EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7abc693 bio_copy_user
+EXPORT_SYMBOL vmlinux 0xc7b6f392 nf_log_unregister
+EXPORT_SYMBOL vmlinux 0xc7ca07c3 pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn
+EXPORT_SYMBOL vmlinux 0xc7eee87e get_mem_type
+EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0xc8068a48 inet_frags_init
+EXPORT_SYMBOL vmlinux 0xc81be33c devm_iounmap
+EXPORT_SYMBOL vmlinux 0xc84255b3 setup_arg_pages
+EXPORT_SYMBOL vmlinux 0xc8485c6d __inet6_hash
+EXPORT_SYMBOL vmlinux 0xc848bc74 scsi_add_device
+EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc8832f2e __locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xc88a184f scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0xc89fbdfc __xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0xc8a8e9f4 xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8d35f68 kobject_init
+EXPORT_SYMBOL vmlinux 0xc8d520b9 udplite_prot
+EXPORT_SYMBOL vmlinux 0xc8f862d0 blk_get_request
+EXPORT_SYMBOL vmlinux 0xc900f57e pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0xc9096a90 bdi_register_dev
+EXPORT_SYMBOL vmlinux 0xc9161a57 down_interruptible
+EXPORT_SYMBOL vmlinux 0xc924184d inet_select_addr
+EXPORT_SYMBOL vmlinux 0xc964509b genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0xc96d9922 alloc_netdev_mq
+EXPORT_SYMBOL vmlinux 0xc9764620 mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0xc9940e41 bdev_read_only
+EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev
+EXPORT_SYMBOL vmlinux 0xc9b7e94b blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0xc9bd7197 dev_close
+EXPORT_SYMBOL vmlinux 0xc9ee59e9 skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xc9fae81f lock_fb_info
+EXPORT_SYMBOL vmlinux 0xca2bf31c scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca78c0e9 dma_find_channel
+EXPORT_SYMBOL vmlinux 0xca99f7d0 tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0xcabd38f6 wireless_spy_update
+EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0xcad6f975 sock_kmalloc
+EXPORT_SYMBOL vmlinux 0xcad80e3e pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0xcafa1906 __dquot_transfer
+EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0xcb2ed9da slow_work_cancel
+EXPORT_SYMBOL vmlinux 0xcb43902f input_release_device
+EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb71fcaa register_gifconf
+EXPORT_SYMBOL vmlinux 0xcb8d79b5 wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0xcb958d40 page_readlink
+EXPORT_SYMBOL vmlinux 0xcb9bde19 do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0xcbab8a20 uart_remove_one_port
+EXPORT_SYMBOL vmlinux 0xcbbf7d87 dev_driver_string
+EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xccbc85e5 scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0xcccca482 _test_and_clear_bit_le
+EXPORT_SYMBOL vmlinux 0xcce31ebb inet6_bind
+EXPORT_SYMBOL vmlinux 0xccfa22f2 generic_listxattr
+EXPORT_SYMBOL vmlinux 0xcd03b004 bh_submit_read
+EXPORT_SYMBOL vmlinux 0xcd1593ca blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0xcd4673f6 module_put
+EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue
+EXPORT_SYMBOL vmlinux 0xcd5c2289 cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0xcd5c2f34 eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xcd5c79e2 mmc_card_sleep
+EXPORT_SYMBOL vmlinux 0xcd63c845 __aeabi_lasr
+EXPORT_SYMBOL vmlinux 0xcd784782 blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0xcd8446b9 jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0xcdac99fd sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0xcdb07923 fb_validate_mode
+EXPORT_SYMBOL vmlinux 0xce0ede9a find_inode_number
+EXPORT_SYMBOL vmlinux 0xce125bc0 nla_put
+EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xce3920f5 search_binary_handler
+EXPORT_SYMBOL vmlinux 0xce53a8ca nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0xce55b446 sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce5f4365 dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0xceb89cd3 netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0xcebbfd9f __serio_register_port
+EXPORT_SYMBOL vmlinux 0xcecaf941 find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0xcf03db4a cfi_fixup
+EXPORT_SYMBOL vmlinux 0xcf14d313 journal_abort
+EXPORT_SYMBOL vmlinux 0xcf200598 dm_table_get_size
+EXPORT_SYMBOL vmlinux 0xcf4be5d2 deactivate_super
+EXPORT_SYMBOL vmlinux 0xcf52c9d6 vmtruncate
+EXPORT_SYMBOL vmlinux 0xcf6f5b0e xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0xcf85a770 sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfc058f5 jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0xcfd8a5b3 dst_release
+EXPORT_SYMBOL vmlinux 0xcfd97590 input_open_device
+EXPORT_SYMBOL vmlinux 0xcfdf096b jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0xd01681b5 napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd02c5ca8 thermal_zone_device_register
+EXPORT_SYMBOL vmlinux 0xd035ff33 ip_defrag
+EXPORT_SYMBOL vmlinux 0xd043fd87 genphy_read_status
+EXPORT_SYMBOL vmlinux 0xd06b5800 __lru_cache_add
+EXPORT_SYMBOL vmlinux 0xd07d6ce2 iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0xd08742e5 journal_get_write_access
+EXPORT_SYMBOL vmlinux 0xd08a24d2 xfrm_init_state
+EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0c9b664 skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0xd0dced0a rfkill_unregister
+EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0f985a4 amba_request_regions
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd11088f4 __dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xd11ae0e5 da903x_query_status
+EXPORT_SYMBOL vmlinux 0xd125acc8 input_close_device
+EXPORT_SYMBOL vmlinux 0xd13b9830 pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0xd13cc51f unregister_snap_client
+EXPORT_SYMBOL vmlinux 0xd1dd678d dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0xd206bc52 pci_bus_type
+EXPORT_SYMBOL vmlinux 0xd20b6a30 scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0xd2107c88 udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0xd2321b0b starget_for_each_device
+EXPORT_SYMBOL vmlinux 0xd23267f6 lro_vlan_hwaccel_receive_frags
+EXPORT_SYMBOL vmlinux 0xd23dde1a unregister_netdev
+EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t
+EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook
+EXPORT_SYMBOL vmlinux 0xd286f1b7 ps2_begin_command
+EXPORT_SYMBOL vmlinux 0xd28bcba3 vfs_follow_link
+EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2ea5189 xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0xd2ec7b8c find_vma
+EXPORT_SYMBOL vmlinux 0xd331cca9 thermal_zone_device_unregister
+EXPORT_SYMBOL vmlinux 0xd35a9ead tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0xd36618da tcp_proc_register
+EXPORT_SYMBOL vmlinux 0xd37d7302 dev_uc_add
+EXPORT_SYMBOL vmlinux 0xd38246ed amba_device_unregister
+EXPORT_SYMBOL vmlinux 0xd3a595bb set_bdi_congested
+EXPORT_SYMBOL vmlinux 0xd3dbfbc4 _find_first_zero_bit_le
+EXPORT_SYMBOL vmlinux 0xd3f595d7 locks_init_lock
+EXPORT_SYMBOL vmlinux 0xd3fcd5fb mdiobus_scan
+EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource
+EXPORT_SYMBOL vmlinux 0xd4348112 load_nls
+EXPORT_SYMBOL vmlinux 0xd439238d tcp_prot
+EXPORT_SYMBOL vmlinux 0xd448a6d1 ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0xd490a215 inet6_ioctl
+EXPORT_SYMBOL vmlinux 0xd495db11 blkdev_put
+EXPORT_SYMBOL vmlinux 0xd4add80f elv_rb_del
+EXPORT_SYMBOL vmlinux 0xd4cce9c1 genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0xd4e01683 default_file_splice_read
+EXPORT_SYMBOL vmlinux 0xd4ee9e5d tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0xd5152710 sg_next
+EXPORT_SYMBOL vmlinux 0xd5185e80 read_dev_sector
+EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd529cba8 pipe_unlock
+EXPORT_SYMBOL vmlinux 0xd5465b60 max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out
+EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xd5787a36 journal_extend
+EXPORT_SYMBOL vmlinux 0xd57b0130 ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0xd59c1a2a generic_setattr
+EXPORT_SYMBOL vmlinux 0xd5aaf98a netif_carrier_off
+EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put
+EXPORT_SYMBOL vmlinux 0xd5e336af bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0xd6159cb3 scsi_put_command
+EXPORT_SYMBOL vmlinux 0xd620e130 security_inode_permission
+EXPORT_SYMBOL vmlinux 0xd627480b strncat
+EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd635d134 rb_last
+EXPORT_SYMBOL vmlinux 0xd6384050 __neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0xd6488a3a sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0xd64ee9a7 md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0xd65fbf2b bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0xd660ac32 inet_csk_accept
+EXPORT_SYMBOL vmlinux 0xd69a3ab0 proc_mkdir
+EXPORT_SYMBOL vmlinux 0xd6a2fced fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single
+EXPORT_SYMBOL vmlinux 0xd6b99fda hippi_mac_addr
+EXPORT_SYMBOL vmlinux 0xd6d996b8 inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0xd6e7da28 sock_wfree
+EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc
+EXPORT_SYMBOL vmlinux 0xd6eeddb4 arp_find
+EXPORT_SYMBOL vmlinux 0xd6f97ca1 rb_first
+EXPORT_SYMBOL vmlinux 0xd7029246 kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0xd7173d5b dev_set_mtu
+EXPORT_SYMBOL vmlinux 0xd755cc81 init_net
+EXPORT_SYMBOL vmlinux 0xd7598a97 get_sb_pseudo
+EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and
+EXPORT_SYMBOL vmlinux 0xd789ee75 tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal
+EXPORT_SYMBOL vmlinux 0xd7a1a41e security_path_chown
+EXPORT_SYMBOL vmlinux 0xd7c5a0b0 input_set_capability
+EXPORT_SYMBOL vmlinux 0xd7cd3875 neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0xd7d1d0a6 clk_put
+EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7f1307f phy_device_register
+EXPORT_SYMBOL vmlinux 0xd80328bb __kmalloc_track_caller
+EXPORT_SYMBOL vmlinux 0xd8433b69 udp_prot
+EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user
+EXPORT_SYMBOL vmlinux 0xd85697f6 posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xd856cca2 dma_release_from_coherent
+EXPORT_SYMBOL vmlinux 0xd899fb3d ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0xd89fa477 sk_reset_txq
+EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p
+EXPORT_SYMBOL vmlinux 0xd8ac95a6 xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0xd8b296a4 pagecache_write_end
+EXPORT_SYMBOL vmlinux 0xd8c6a4f9 phy_print_status
+EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd91637c9 dev_change_flags
+EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node
+EXPORT_SYMBOL vmlinux 0xd9c95780 llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen
+EXPORT_SYMBOL vmlinux 0xda0fad6a ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf
+EXPORT_SYMBOL vmlinux 0xda3b9a44 tcp_connect
+EXPORT_SYMBOL vmlinux 0xda4e509c mark_page_accessed
+EXPORT_SYMBOL vmlinux 0xda5429d7 kill_pid
+EXPORT_SYMBOL vmlinux 0xda5ea696 _test_and_set_bit_le
+EXPORT_SYMBOL vmlinux 0xda61b85d mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages
+EXPORT_SYMBOL vmlinux 0xdaa8ab95 ipv4_specific
+EXPORT_SYMBOL vmlinux 0xdac11b26 skb_put
+EXPORT_SYMBOL vmlinux 0xdade7dd3 journal_update_format
+EXPORT_SYMBOL vmlinux 0xdb2178c7 __sg_free_table
+EXPORT_SYMBOL vmlinux 0xdb3053c7 mtd_do_chip_probe
+EXPORT_SYMBOL vmlinux 0xdb67f2d5 dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0xdb6c9ddc inet_ioctl
+EXPORT_SYMBOL vmlinux 0xdb758983 scsi_print_result
+EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbce87d8 blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems
+EXPORT_SYMBOL vmlinux 0xdc22df3d km_policy_expired
+EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint
+EXPORT_SYMBOL vmlinux 0xdc3f1034 inet_frag_find
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize
+EXPORT_SYMBOL vmlinux 0xdc7081cc dma_release_declared_memory
+EXPORT_SYMBOL vmlinux 0xdc798d37 __mutex_init
+EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family
+EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close
+EXPORT_SYMBOL vmlinux 0xdcbb795d follow_pfn
+EXPORT_SYMBOL vmlinux 0xdcc41806 jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0xdcc8f21f alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0xdcd45cfe noop_fsync
+EXPORT_SYMBOL vmlinux 0xdcea7ca1 tcp_disconnect
+EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat
+EXPORT_SYMBOL vmlinux 0xdd21efe2 tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr
+EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0xdd6e12d5 tcf_em_register
+EXPORT_SYMBOL vmlinux 0xddb08fdc blk_fetch_request
+EXPORT_SYMBOL vmlinux 0xddbaac4b __netdev_alloc_page
+EXPORT_SYMBOL vmlinux 0xddc0278f scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xdddcbd99 empty_zero_page
+EXPORT_SYMBOL vmlinux 0xdde0cae1 do_splice_from
+EXPORT_SYMBOL vmlinux 0xddee5d15 rtc_dev_update_irq_enable_emul
+EXPORT_SYMBOL vmlinux 0xde0435ce inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0xde0d413d sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xde2b0381 key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask
+EXPORT_SYMBOL vmlinux 0xde4a9a5d locks_remove_posix
+EXPORT_SYMBOL vmlinux 0xde676ab9 add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type
+EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages
+EXPORT_SYMBOL vmlinux 0xdea96d5a tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0xdeaff480 i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0xdeb50237 mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0xdeb5769d neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0xded5345f submit_bio
+EXPORT_SYMBOL vmlinux 0xdeff431b dqget
+EXPORT_SYMBOL vmlinux 0xdf09955e ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0xdf255c63 i2c_register_driver
+EXPORT_SYMBOL vmlinux 0xdf2b6e50 netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0xdf4a0280 blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval
+EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol
+EXPORT_SYMBOL vmlinux 0xdf673bff __brelse
+EXPORT_SYMBOL vmlinux 0xdf69395e dquot_commit
+EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdfb01a80 cpu_v7_dcache_clean_area
+EXPORT_SYMBOL vmlinux 0xdfb64277 alloc_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0xdfc09016 inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init
+EXPORT_SYMBOL vmlinux 0xdfcb330e mdiobus_register
+EXPORT_SYMBOL vmlinux 0xe002f03a tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0xe0090745 sock_rfree
+EXPORT_SYMBOL vmlinux 0xe028c010 tty_unregister_device
+EXPORT_SYMBOL vmlinux 0xe070d741 qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe07e7eca nonseekable_open
+EXPORT_SYMBOL vmlinux 0xe09a720e blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0xe09d5345 dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free
+EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort
+EXPORT_SYMBOL vmlinux 0xe0bef318 icst_hz_to_vco
+EXPORT_SYMBOL vmlinux 0xe0d7499b ps2_drain
+EXPORT_SYMBOL vmlinux 0xe0e0f7af pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0xe0fc34e2 __insert_inode_hash
+EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial
+EXPORT_SYMBOL vmlinux 0xe115e5a3 free_netdev
+EXPORT_SYMBOL vmlinux 0xe117abd8 handle_sysrq
+EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0xe1442f37 prepare_creds
+EXPORT_SYMBOL vmlinux 0xe14e3c51 xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0xe16b893b mutex_lock
+EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe1b75113 pcix_get_mmrbc
+EXPORT_SYMBOL vmlinux 0xe1c41603 generic_ro_fops
+EXPORT_SYMBOL vmlinux 0xe1dc612a kunmap_high
+EXPORT_SYMBOL vmlinux 0xe1e1705f proc_symlink
+EXPORT_SYMBOL vmlinux 0xe2000954 pci_dev_put
+EXPORT_SYMBOL vmlinux 0xe2272bf4 vfs_readlink
+EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64
+EXPORT_SYMBOL vmlinux 0xe2534937 proto_register
+EXPORT_SYMBOL vmlinux 0xe2566537 __bio_clone
+EXPORT_SYMBOL vmlinux 0xe2717fd6 sock_update_classid
+EXPORT_SYMBOL vmlinux 0xe27cd8ca default_unplug_io_fn
+EXPORT_SYMBOL vmlinux 0xe289b3df skb_store_bits
+EXPORT_SYMBOL vmlinux 0xe2ad2c12 skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0xe2b112c7 i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0xe2b77781 udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0xe2cd4a71 inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0xe2ceb5ff skb_insert
+EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp
+EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user
+EXPORT_SYMBOL vmlinux 0xe2f0541f dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup
+EXPORT_SYMBOL vmlinux 0xe34362bb __register_binfmt
+EXPORT_SYMBOL vmlinux 0xe36aa275 request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0xe37cd173 blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0xe3c5aa63 page_symlink
+EXPORT_SYMBOL vmlinux 0xe3e70fd3 pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0xe425c4ec __xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0xe444b7ca qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0xe46feedb fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0xe4c80097 cacheid
+EXPORT_SYMBOL vmlinux 0xe4e600c5 jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0xe5100327 ppp_input
+EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe52dd6ae tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0xe5320643 dquot_acquire
+EXPORT_SYMBOL vmlinux 0xe55181e1 blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0xe56a9e32 pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0xe5755ea4 bmap
+EXPORT_SYMBOL vmlinux 0xe5776caf touch_atime
+EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton
+EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5bec89b journal_flush
+EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe5f0dbd6 inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0xe647b2a2 generic_write_sync
+EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid
+EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6c3ebb0 __raw_writesw
+EXPORT_SYMBOL vmlinux 0xe6e5199f tty_port_open
+EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update
+EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe707d823 __aeabi_uidiv
+EXPORT_SYMBOL vmlinux 0xe70d1ee1 iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0xe70d571f make_bad_inode
+EXPORT_SYMBOL vmlinux 0xe724b69d d_obtain_alias
+EXPORT_SYMBOL vmlinux 0xe72b1420 journal_revoke
+EXPORT_SYMBOL vmlinux 0xe72daa88 get_write_access
+EXPORT_SYMBOL vmlinux 0xe72ec27c mark_info_dirty
+EXPORT_SYMBOL vmlinux 0xe7317313 dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xe73d0fde sleep_on
+EXPORT_SYMBOL vmlinux 0xe74e8cb4 generic_setlease
+EXPORT_SYMBOL vmlinux 0xe78c04a0 alloc_fcdev
+EXPORT_SYMBOL vmlinux 0xe7a36f07 alloc_file
+EXPORT_SYMBOL vmlinux 0xe7b1ad8a simple_transaction_release
+EXPORT_SYMBOL vmlinux 0xe7bdb7ce register_cdrom
+EXPORT_SYMBOL vmlinux 0xe7c3b41b may_umount
+EXPORT_SYMBOL vmlinux 0xe7d19b84 blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7e3d06c jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0xe7eae73c dma_free_coherent
+EXPORT_SYMBOL vmlinux 0xe7f6189a nf_log_packet
+EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe82743f9 tcf_hash_release
+EXPORT_SYMBOL vmlinux 0xe82df76f bd_set_size
+EXPORT_SYMBOL vmlinux 0xe83d9850 dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss
+EXPORT_SYMBOL vmlinux 0xe87ed1ce idr_replace
+EXPORT_SYMBOL vmlinux 0xe8a35ff6 seq_escape
+EXPORT_SYMBOL vmlinux 0xe8a4033f i2c_release_client
+EXPORT_SYMBOL vmlinux 0xe8aa268a scsi_execute_req
+EXPORT_SYMBOL vmlinux 0xe8bdf4eb journal_force_commit
+EXPORT_SYMBOL vmlinux 0xe8d10d66 elevator_init
+EXPORT_SYMBOL vmlinux 0xe9053dac dev_add_pack
+EXPORT_SYMBOL vmlinux 0xe9090736 i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0xe90aa4e9 rb_insert_color
+EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module
+EXPORT_SYMBOL vmlinux 0xe9124102 sock_release
+EXPORT_SYMBOL vmlinux 0xe914e41e strcpy
+EXPORT_SYMBOL vmlinux 0xe931206f kthread_bind
+EXPORT_SYMBOL vmlinux 0xe9895953 generic_unplug_device
+EXPORT_SYMBOL vmlinux 0xe98a87f1 dcache_lock
+EXPORT_SYMBOL vmlinux 0xe98f91af cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0xe9b03dc9 spi_dv_device
+EXPORT_SYMBOL vmlinux 0xe9c3dc9f __scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xe9d06c2d sockfd_lookup
+EXPORT_SYMBOL vmlinux 0xe9d86501 pci_assign_resource
+EXPORT_SYMBOL vmlinux 0xe9de4339 dm_dirty_log_create
+EXPORT_SYMBOL vmlinux 0xe9e28319 ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0xe9e6ec5f registered_fb
+EXPORT_SYMBOL vmlinux 0xe9f3e706 qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea147363 printk
+EXPORT_SYMBOL vmlinux 0xea1fedd4 dma_async_device_register
+EXPORT_SYMBOL vmlinux 0xea273b96 poll_freewait
+EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0xea46e8b1 skb_checksum_help
+EXPORT_SYMBOL vmlinux 0xea560457 read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0xea7987f1 key_update
+EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xea9e1ff8 filemap_flush
+EXPORT_SYMBOL vmlinux 0xeaad03b7 napi_frags_skb
+EXPORT_SYMBOL vmlinux 0xeab35255 bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0xeacf1bf1 d_invalidate
+EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay
+EXPORT_SYMBOL vmlinux 0xeafbf5dc phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0xeb2ab585 flush_dcache_page
+EXPORT_SYMBOL vmlinux 0xeb3656b8 xfrm_bundle_ok
+EXPORT_SYMBOL vmlinux 0xeb3fa0a2 bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0xeb5b52ad xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0xeb73ed52 fasync_helper
+EXPORT_SYMBOL vmlinux 0xeb84ef21 neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n
+EXPORT_SYMBOL vmlinux 0xeb96f6a8 blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0xeb9f5296 inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0xebcc4ceb slab_buffer_size
+EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull
+EXPORT_SYMBOL vmlinux 0xebd4409a journal_start
+EXPORT_SYMBOL vmlinux 0xebd44878 ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0xebef2a50 dquot_commit_info
+EXPORT_SYMBOL vmlinux 0xebf61933 __lock_page
+EXPORT_SYMBOL vmlinux 0xebfdcbdf system_serial_high
+EXPORT_SYMBOL vmlinux 0xec04a394 tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec46d18c prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns
+EXPORT_SYMBOL vmlinux 0xec6a4d04 wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0xec7168f7 bio_integrity_free
+EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xec9d8349 secpath_dup
+EXPORT_SYMBOL vmlinux 0xecb1f38d key_revoke
+EXPORT_SYMBOL vmlinux 0xecff3516 pci_reenable_device
+EXPORT_SYMBOL vmlinux 0xed11a9b9 unregister_console
+EXPORT_SYMBOL vmlinux 0xed15c51c __secpath_destroy
+EXPORT_SYMBOL vmlinux 0xed1f0210 flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xed33c29b nf_register_hook
+EXPORT_SYMBOL vmlinux 0xed36494a ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xed7e0872 posix_test_lock
+EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedceb583 simple_link
+EXPORT_SYMBOL vmlinux 0xedd0f7b1 pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3
+EXPORT_SYMBOL vmlinux 0xedefd503 dev_get_by_flags
+EXPORT_SYMBOL vmlinux 0xee0f8892 devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee39f246 kmem_cache_alloc_notrace
+EXPORT_SYMBOL vmlinux 0xee478f08 log_wait_commit
+EXPORT_SYMBOL vmlinux 0xee4bddaa dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0xee4ddfc5 proto_unregister
+EXPORT_SYMBOL vmlinux 0xee985213 inet_listen
+EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeedfd5cf __seq_open_private
+EXPORT_SYMBOL vmlinux 0xeef4fe85 slow_work_sleep_till_thread_needed
+EXPORT_SYMBOL vmlinux 0xeefab4b4 wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0xef05e722 mmc_detect_change
+EXPORT_SYMBOL vmlinux 0xef0b1698 softnet_data
+EXPORT_SYMBOL vmlinux 0xef151629 vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0xef241b88 skb_gso_segment
+EXPORT_SYMBOL vmlinux 0xef4fa4e3 dma_sync_sg_for_cpu
+EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool
+EXPORT_SYMBOL vmlinux 0xef72480a input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0xef745218 seq_read
+EXPORT_SYMBOL vmlinux 0xef8612d0 xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0xefd6cf06 __aeabi_unwind_cpp_pr0
+EXPORT_SYMBOL vmlinux 0xefdd2345 sg_init_one
+EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefdee283 kernel_getsockname
+EXPORT_SYMBOL vmlinux 0xeff348e0 amba_driver_register
+EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list
+EXPORT_SYMBOL vmlinux 0xf00af19b icst_clk_set
+EXPORT_SYMBOL vmlinux 0xf0244fbf vfs_readdir
+EXPORT_SYMBOL vmlinux 0xf02d860b mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0xf02f6b87 ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0xf053bdcf inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0xf0bc84f0 balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0xf0cb0774 rtnl_unicast
+EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf
+EXPORT_SYMBOL vmlinux 0xf104f80f jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xf11791f2 tcp_check_req
+EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32
+EXPORT_SYMBOL vmlinux 0xf136c279 add_timer
+EXPORT_SYMBOL vmlinux 0xf136d6f7 register_con_driver
+EXPORT_SYMBOL vmlinux 0xf14d3edf dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem
+EXPORT_SYMBOL vmlinux 0xf191b98e current_fs_time
+EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1aa55a6 pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0xf1b7b2c4 dev_uc_sync
+EXPORT_SYMBOL vmlinux 0xf1d6ab4d journal_release_buffer
+EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64
+EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun
+EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq
+EXPORT_SYMBOL vmlinux 0xf22ab634 phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2b78d99 lro_flush_all
+EXPORT_SYMBOL vmlinux 0xf2c519fa register_md_personality
+EXPORT_SYMBOL vmlinux 0xf2c57f43 bioset_free
+EXPORT_SYMBOL vmlinux 0xf2cc43b1 netdev_features_change
+EXPORT_SYMBOL vmlinux 0xf2d18826 qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0xf2f00061 bio_alloc
+EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform
+EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name
+EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user
+EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf34a331f inode_set_bytes
+EXPORT_SYMBOL vmlinux 0xf35ddaf0 security_file_permission
+EXPORT_SYMBOL vmlinux 0xf36cf009 pci_map_rom
+EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf393340b tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg
+EXPORT_SYMBOL vmlinux 0xf3a5fdf0 __napi_schedule
+EXPORT_SYMBOL vmlinux 0xf3baf8f2 alloc_disk_node
+EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3e568d5 dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0xf3eb34b7 abort_creds
+EXPORT_SYMBOL vmlinux 0xf401cb54 phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xf4410aca ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0xf450f73f cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0xf452cf85 audit_log_end
+EXPORT_SYMBOL vmlinux 0xf4571ff8 scsi_device_resume
+EXPORT_SYMBOL vmlinux 0xf48a0e5b get_sb_single
+EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask
+EXPORT_SYMBOL vmlinux 0xf4a83ed4 sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xf4ab2762 eth_validate_addr
+EXPORT_SYMBOL vmlinux 0xf4ac947d init_buffer
+EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf4f40bf3 sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0xf510399b deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0xf515ec45 rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0xf5164b60 request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0xf53331b5 phy_stop
+EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n
+EXPORT_SYMBOL vmlinux 0xf564412a __aeabi_ulcmp
+EXPORT_SYMBOL vmlinux 0xf568795f md_barrier_request
+EXPORT_SYMBOL vmlinux 0xf57af171 dma_sync_wait
+EXPORT_SYMBOL vmlinux 0xf57cc9cc thaw_super
+EXPORT_SYMBOL vmlinux 0xf58b50c8 udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0xf5948f8f blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0xf59ef818 xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0xf5a3c864 dm_io_client_resize
+EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5cdc00b mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xf5d0be0c eth_header_parse
+EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf5f0ae21 zero_fill_bio
+EXPORT_SYMBOL vmlinux 0xf6288e02 __init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0xf6388f9f __module_put_and_exit
+EXPORT_SYMBOL vmlinux 0xf66780b2 __find_get_block
+EXPORT_SYMBOL vmlinux 0xf679de4b dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0xf682b48c tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0xf6960016 create_proc_entry
+EXPORT_SYMBOL vmlinux 0xf69c607e dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0xf6a77f28 mmc_suspend_host
+EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table
+EXPORT_SYMBOL vmlinux 0xf6c9862f nlmsg_notify
+EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf6ec4975 pci_restore_state
+EXPORT_SYMBOL vmlinux 0xf71570a6 uart_suspend_port
+EXPORT_SYMBOL vmlinux 0xf71919a1 __scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0xf71ffb6f d_delete
+EXPORT_SYMBOL vmlinux 0xf72961f0 pci_get_subsys
+EXPORT_SYMBOL vmlinux 0xf7352534 blk_stop_queue
+EXPORT_SYMBOL vmlinux 0xf743b159 skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0xf7489e66 invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0xf7584a9c find_font
+EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0xf7802486 __aeabi_uidivmod
+EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf795ddc1 clk_get_rate
+EXPORT_SYMBOL vmlinux 0xf7b3fe82 scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0xf7b47a87 generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0xf7b75f62 tty_write_room
+EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set
+EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf816025b eth_header_cache
+EXPORT_SYMBOL vmlinux 0xf81e3cce __breadahead
+EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf8424175 rfkill_get_led_trigger_name
+EXPORT_SYMBOL vmlinux 0xf876efb5 sk_receive_skb
+EXPORT_SYMBOL vmlinux 0xf8875d3a skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0xf88c3301 sg_init_table
+EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle
+EXPORT_SYMBOL vmlinux 0xf8fbb4f0 __bad_xchg
+EXPORT_SYMBOL vmlinux 0xf90c155d init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0xf951d801 __lock_buffer
+EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep
+EXPORT_SYMBOL vmlinux 0xf9a7a9e7 skb_queue_head
+EXPORT_SYMBOL vmlinux 0xf9c57f21 pci_find_bus
+EXPORT_SYMBOL vmlinux 0xf9d74899 kunmap_atomic
+EXPORT_SYMBOL vmlinux 0xf9f1c855 blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0xfa06edb5 otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0xfa167dd7 journal_set_features
+EXPORT_SYMBOL vmlinux 0xfa230a3e scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0xfa47447b journal_start_commit
+EXPORT_SYMBOL vmlinux 0xfa6a2344 journal_init_dev
+EXPORT_SYMBOL vmlinux 0xfa715cc9 tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0xfa7e376b pci_iounmap
+EXPORT_SYMBOL vmlinux 0xfa8efefb security_path_unlink
+EXPORT_SYMBOL vmlinux 0xfac68eba arm_elf_read_implies_exec
+EXPORT_SYMBOL vmlinux 0xfad93acd remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0xfaee4523 stop_tty
+EXPORT_SYMBOL vmlinux 0xfaf68bc1 kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32
+EXPORT_SYMBOL vmlinux 0xfb06c2f3 bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs
+EXPORT_SYMBOL vmlinux 0xfb178907 journal_check_available_features
+EXPORT_SYMBOL vmlinux 0xfb2733d9 read_cache_page
+EXPORT_SYMBOL vmlinux 0xfb4548f0 dma_sync_sg_for_device
+EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb74e8f1 tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3
+EXPORT_SYMBOL vmlinux 0xfba3b1cc generic_mii_ioctl
+EXPORT_SYMBOL vmlinux 0xfbb3d729 mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0xfbb73d45 console_stop
+EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xfbdf238d nf_setsockopt
+EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc0731f1 blk_make_request
+EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc445035 abx500_register_ops
+EXPORT_SYMBOL vmlinux 0xfc63fccd input_register_device
+EXPORT_SYMBOL vmlinux 0xfc681bb1 dm_unregister_target
+EXPORT_SYMBOL vmlinux 0xfc73314f __serio_register_driver
+EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcb2463e scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states
+EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq
+EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfd305341 walk_stackframe
+EXPORT_SYMBOL vmlinux 0xfd4b9c16 icst_clk_round
+EXPORT_SYMBOL vmlinux 0xfd8f0710 unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0xfd95779b journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0xfda7edcb i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xfdd4cea3 blk_rq_init
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe0ce915 dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0xfe10b13d generic_removexattr
+EXPORT_SYMBOL vmlinux 0xfe135870 xrlim_allow
+EXPORT_SYMBOL vmlinux 0xfe199760 scsi_host_put
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz
+EXPORT_SYMBOL vmlinux 0xfe634f58 add_wait_queue
+EXPORT_SYMBOL vmlinux 0xfe6644a5 __pci_enable_wake
+EXPORT_SYMBOL vmlinux 0xfe69f04b mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfea2662f scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin
+EXPORT_SYMBOL vmlinux 0xfedb383f dquot_drop
+EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff06d509 rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start
+EXPORT_SYMBOL vmlinux 0xff261096 kobject_get
+EXPORT_SYMBOL vmlinux 0xff2ba784 audit_log_start
+EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3
+EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int
+EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffa4c0be phy_driver_register
+EXPORT_SYMBOL vmlinux 0xffacc694 posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0xffadcb9d i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function
+EXPORT_SYMBOL vmlinux 0xffda00d0 devm_free_irq
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x2495d348 crypto_aes_set_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab
+EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x2df04693 async_memcpy
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x00e26653 async_syndrome_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x5b4fd436 async_gen_syndrome
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x02b1f9cb async_raid6_2data_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xeae8370b async_raid6_datap_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x2407876e async_tx_quiesce
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x713eb9d3 __async_tx_find_channel
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x822243b8 async_trigger_callback
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xae10365d async_tx_submit
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x2fffce88 async_xor_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x6c196bec async_xor
+EXPORT_SYMBOL_GPL crypto/cryptd 0x38bce8c7 cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x3f67eda4 cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x5b2a8b7c cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x63134258 cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0xaf792e11 cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb7985baf cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xf0deb17c cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey
+EXPORT_SYMBOL_GPL crypto/twofish_common 0x24d874b8 twofish_setkey
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x041e656a ahci_check_ready
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x09e5d5ac ahci_print_info
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1752563d ahci_start_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x32c7eeb2 ahci_stop_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x342bf2ee ahci_ops
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x669787f4 ahci_sht
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x94f33da0 ahci_init_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9cf972f1 ahci_save_initial_config
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9db29711 ahci_kick_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa8155ebe ahci_do_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc0876912 ahci_reset_em
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd2b56dba ahci_reset_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdb4ecf7a ahci_set_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x8d858fd0 __max730x_remove
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x902ef400 __max730x_probe
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x43d757c8 drm_class_device_unregister
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xa2d34911 drm_class_device_register
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x005f29f7 hidinput_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x010f1afc hidraw_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x156f49b7 hid_register_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x18d40681 hid_dump_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x1de1021a hid_check_keys_pressed
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x24bdc0db hid_resolv_usage
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x3faa62ad hid_add_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x509fdf22 hid_set_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x8161182d hid_output_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x86035b93 hidinput_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x869fb5c4 hidinput_find_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x8f84224f hidraw_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x9aaa5140 hidraw_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x9b2239be hid_debug_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xa3211afb hid_report_raw_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xb21ed455 hid_dump_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xb7a1da7d hid_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xbd2a3e33 hid_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc0f6ec01 hidinput_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc9b85b2c hid_destroy_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xd1b884cc hid_allocate_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xd52d9e54 hid_parse_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xda62ebaf hid_dump_input
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe7ecaab7 hid_unregister_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xeb25be83 hid_input_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xf2e9b42b __hid_register_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x82799907 roccat_connect
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x0eaf2ed6 hiddev_hid_event
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb7f884f9 usbhid_set_leds
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xd06a65f3 usbhid_wait_io
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xfbe7814c usbhid_submit_report
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x23d3a102 i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xa6b398ae i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x3cf3cee9 hpsb_config_rom_ip1394_remove
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xe5cbe2cb hpsb_config_rom_ip1394_add
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm
+EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x4a3c316e input_ff_create_memless
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x52efb8a2 led_classdev_suspend
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x5676d44c led_classdev_resume
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x9cb08471 led_classdev_register
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0xfe11dfb0 led_classdev_unregister
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x0f00487f ir_input_nokey
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x20bdf3ab ir_input_init
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xefd2c58a ir_input_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x03bd7f09 ir_unregister_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x26fa791d ir_raw_event_store
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x3b5cd047 ir_input_unregister
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x47836647 ir_g_keycode_from_table
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x93047a4d ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x9dcac6b2 ir_raw_event_handle
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xc8637b87 ir_repeat
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xde3fc8d9 get_rc_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xdf1becdd ir_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xf190292d ir_register_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xfdeca35f __ir_input_register
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x11e15ea8 saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x23a2888a saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x363be091 saa7146_register_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x5259befe saa7146_pgtable_free
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6773050a saa7146_devices_lock
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x895d9c12 saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa36fb258 saa7146_unregister_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb1e1e072 saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb275f633 saa7146_setgpio
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb7cf0c3f saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xbde58690 saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xf887615b microtune_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xbac9308d mxl5007t_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0xd96edf4f tda18271_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xd1b2c864 tda827x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x233ee22c tda829x_probe
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x5569b5e2 tda829x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x7da9a420 tda9887_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xe82a8e28 tea5761_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xe940a16d tea5761_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x2aa9572b tea5767_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xb5761fec tea5767_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x5eb738dd simple_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0ce54e4c mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x23140fe0 mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2c6f19bd mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x615d0bec gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x66116738 mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7816af2a mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9e132239 mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb1417afe mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbe3a6ca3 mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc5c5116e mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xca2a270b ir_mantis
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xcabe0733 mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd7c812a0 mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdc66f31e mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdc9cfa1e mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe32b7ae4 mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe77e38a4 mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf98dd3ab mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x170210e0 sms_board_led_feedback
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x18169aa1 smscore_get_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x23eaee61 smscore_unregister_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x26dc4e19 smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2e518720 sms_board_event
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2fff2519 smscore_set_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x491cd378 smscore_get_device_mode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4ca1d000 smscore_onresponse
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x706a27c3 smscore_register_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x812bf476 sms_board_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x88e46d42 smscore_start_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x967fd1c6 smscore_register_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa35780f9 sms_board_setup
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc0afd893 smscore_putbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc484d6b8 smsclient_sendrequest
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcc0acac7 sms_board_lna_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd740c927 smscore_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd76c8496 smscore_register_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe0740b84 smscore_getbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x07bf1bea ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x0f701a38 ttpci_budget_deinit
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x1e4e8eed ttpci_budget_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x8ca2479c ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xaba40b39 ttpci_budget_debiread
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xb307aacf ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xb7d76ac7 ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x049a8d04 i2o_pool_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x21a25f49 i2o_pool_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x49dc721a i2o_sg_tablesize
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x589ab87f i2o_dma_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x995bca44 i2o_dma_map_single
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xda371e57 i2o_dma_realloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xda5f0238 i2o_dma_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xdf28b03a i2o_dma_map_sg
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x14df853b pcf50633_read_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x26647e76 pcf50633_register_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4e0eb871 pcf50633_free_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x58f4aeda pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6aafd989 pcf50633_irq_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x739c5b8f pcf50633_reg_write
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x797ccae9 pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8900eac6 pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc065fcba pcf50633_write_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc45d0b09 pcf50633_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe0ab4151 pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x1e5f76fb pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x4b389f51 pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x00282ea1 pcf50633_gpio_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x469eff08 pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x571d932e pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xcb35a8f9 pcf50633_gpio_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xef39fee4 pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x517e7c1b sm501_set_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x5b56ce06 sm501_find_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd4ec5e64 sm501_misc_control
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xeee130ba sm501_modify_reg
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf8658e50 sm501_unit_power
+EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x1e1d0be9 ucb1400_adc_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x22f08e0d wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x58655b68 wm8400_set_bits
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x5ccffe7e wm8400_block_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x69b87be3 wm8400_reg_read
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x07d3652e cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x0ef03ba7 cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x44610dd7 cb710_set_irq_handler
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xb6aafd32 cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x335a36a3 enclosure_find
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3f772dee enclosure_add_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x58c56096 enclosure_unregister
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x72008c29 enclosure_component_register
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x93fc3143 enclosure_for_each_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb218a234 enclosure_remove_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xbdb4f04e enclosure_register
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x02f000ed sdhci_alloc_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x551a9c34 sdhci_resume_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x739dcbbe sdhci_add_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9c060b4b sdhci_free_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb0a3baeb sdhci_suspend_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd5f33295 sdhci_remove_host
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x027f889e ubi_leb_erase
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x10fd8a5c ubi_open_volume_nm
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x30cd1e19 ubi_get_volume_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x33114ec0 ubi_close_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x882685aa ubi_open_volume_path
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9c948f39 ubi_open_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa1603b5d ubi_leb_change
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa411cdbb ubi_leb_read
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa57cf409 ubi_do_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb7117fb9 ubi_leb_unmap
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe2bffe40 ubi_leb_map
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xef4c9627 ubi_is_mapped
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf3f55532 ubi_leb_write
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2b88fe13 alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x352ebbf1 free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4f27d82a open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5f398135 can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x64ef1148 close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x65e5366c register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9809f1ed can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa5d875e8 can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xad07a289 alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc0ba5e0b unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xce640065 alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd8467f6f can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5f2e4ead register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xc07faa38 alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd4e3d5ff unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd914f81d free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x0877d598 macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x0ed0cddf macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x94d20f68 macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xdc28629f macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x096dc2b4 mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0cbd157a mlx4_srq_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x155ec011 mlx4_qp_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x15db1b1e mlx4_mr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1625538a mlx4_qp_release_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x267ca439 mlx4_cq_resize
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x270efa75 mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x28059687 mlx4_mr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x28cdcf17 mlx4_mtt_init
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2b47629d mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2ec8565d mlx4_srq_arm
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x30065886 mlx4_unregister_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x36d25a48 mlx4_buf_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x39eb4b31 mlx4_qp_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x41d99ba0 mlx4_mtt_addr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4a7b65d4 mlx4_fmr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4f10c2fc mlx4_unregister_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x545648a7 mlx4_cq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x622c53bf mlx4_qp_remove
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x628f4f21 mlx4_db_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6ae53178 mlx4_pd_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7255eeaa mlx4_pd_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x76f0602c mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7d1ec74d mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7d5bf6e6 mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7e0aa8fa mlx4_fmr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x82e994c0 mlx4_uar_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x87ad4445 mlx4_mr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x88b5b87e __mlx4_cmd
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8bd5d223 mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8ec3be1c mlx4_qp_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x90bca5f5 mlx4_register_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x96e51411 mlx4_cq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9810205b mlx4_cq_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9f2d96b0 mlx4_register_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa757660e mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa8682395 mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xaae10938 mlx4_srq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc388e872 mlx4_srq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc62820a8 mlx4_db_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcb2d6ac1 mlx4_multicast_attach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xccf4fc72 mlx4_buf_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xce91691a mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd317bfd6 mlx4_qp_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdd81f9b8 mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xddf18c3d mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe8cc522c mlx4_uar_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xed800410 mlx4_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf0313cc6 mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf076a7ba mlx4_multicast_detach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf0d37d3c mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf1d255f8 mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf8ac9c9e mlx4_register_interface
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x99c31952 usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xaab6eebb usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0fb5d320 rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x31d00b00 rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x907284e3 rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xdec0ccc8 generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xe68ae57f rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf7326aa7 rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x021a90ba usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0651e305 usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x08fd3d2f usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1b1e0966 usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1f42d7a8 usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2aa61989 usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2dd3a1e4 usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2f15fefd usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x381737f9 usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3ae9e6cc usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x56442491 usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x59b92cc2 usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x61a74030 usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6a4f2170 usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x96a3d424 usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9787fa56 usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9934ee65 usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9db70b76 usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa4602823 usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd180585d usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd2270163 usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd418a370 usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe97dddbc usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf02d7c47 usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x14d2945b i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x30ec1cc8 i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x339358bf i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x357c0188 i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3df277cf i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x80bfa515 i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x84ce2053 i2400m_cmd_get_state
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8ddc9c0c i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8e00dd4b i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9137f076 i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9c355187 i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9ccb9f32 i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xba7814ad i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc4ed15ed i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe8a7d823 i2400m_set_init_config
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xec925601 i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfd0c6496 i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xff7235df i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x387063c3 libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x12c265ae iwl_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x3be16723 iwl_dealloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x4754f53b iwl_alloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x08d124dc lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x20209409 lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x36896bd9 lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x729e936c lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x94aced90 lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xad44d251 lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xaff8d0b3 lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb19e0365 lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbe6cc60c lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc3ada5ad lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe75a6051 lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xea9aaa3f lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xedbadb11 lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf777f2db __lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x149de135 lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1b3e7530 lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x320570ed lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x34ef327c lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x8c102c42 __lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9840b28c lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa2a3f600 lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xcd5527ee lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x83f1447a if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xad36b28e if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x501c5077 p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x60b0ebbc p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x65f90de1 p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6791f0d3 p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7f56976d p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb4bdf7a5 p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe130528a p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xee86b27d p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf3d24d1f p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0b76cba2 rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1322e620 rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2271da52 rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x22ea157b rt2800_init_bbp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x315f5132 rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x33ad3ff8 rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x34a5bf79 rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x48e9369b rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4e7bc00b rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x50a26ffd rt2800_write_txwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5211a393 rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5e97b3e5 rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6ea98d1f rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6f1b4252 rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8b0741da rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x92ab0b3a rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa33a72a8 rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xabc17523 rt2800_init_rfcsr
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb6958a01 rt2800_init_registers
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb8e466d8 rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbd9eeaa6 rt2800_mac80211_ops
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd4d04d33 rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe5eaa523 rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xea9e9fc8 rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x18589e7e rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1fb3b01c rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x460189c8 rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4915663b rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x58c30f4f rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x649ac5a6 rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x67cf0dad rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x80ad2782 rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8145d2e0 rt2x00queue_get_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8280815c rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x910b0ce3 rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x93c28b1b rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x967a28a7 rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9dcb3a13 rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa947e674 rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaa1f8f12 rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbb055444 rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc30d8ae4 rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xce6f1641 rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd630b495 rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xddc45c45 rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe10871b5 rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf203ef4e rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x003ae874 rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x29b30daf rt2x00pci_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x5f6418ba rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x60b7e12e rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x7bbb43e4 rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8ab17d4b rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xabbece4a rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xca5d0fe6 rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xcdbe6473 rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x38c33631 rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x60fafe66 rt2x00usb_kick_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x69d61bd8 rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6d03073d rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x73d7329f rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7ef9a3b9 rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8a19158c rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8acaf61e rt2x00usb_vendor_request_large_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa227d8bb rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc24b5bc9 rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc5e7a119 rt2x00usb_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xca02dc11 rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd908acc7 rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdd0981d9 rt2x00usb_kill_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdd29989a rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe9a15627 rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x1202c311 wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xcf2b484e wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xe5a30e30 wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x6789f640 pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x84bd7263 pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xb60bade8 pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x3948f1e0 wm8350_register_regulator
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x417feb20 wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x4d0662f4 wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7dc67207 wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc3b6b982 wm8350_register_led
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xcfb5bad2 wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x100c3ba3 wm8400_register_regulator
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe7d8fa0f fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x03885c1f iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x044fd077 iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x08326b53 iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0dfab1ad iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1222b442 iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x129d3286 iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1a0ff73f iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2e1c5ec8 iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2fa6868c iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x31ed7bd5 iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x39b60100 iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3a0cb65a iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3ef203c9 iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x50ff248e iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5365f063 iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x53775fdc iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x66824a6f iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x689c064f iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x78d062b2 iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f2b966c iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x86971a60 iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x89ee6f27 iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x960c66e6 iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x96f68505 iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9df19e7a iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4bf3531 iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa578349c iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb6ff578b iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbf9f4ee4 iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc3025f91 __iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcc9a16b7 iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd6885479 __iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdabf7c5b iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xde951ba7 iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe21b2e8a iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe91f099c iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe994572e iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xea084e5b iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf73d279a iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf76d4e54 iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfc3942d9 iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfd513afd iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x07afd28d iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x21b9dd61 iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x26d5ac8c iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2f4c5e30 iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3281c199 iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x421fa422 iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6bb942ca iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x79ccb5b6 iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x836bdbff iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x89adcf0c iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x89fc91dc iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9549b98f iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe0d9eba0 iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe703f51d iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xeff4fdd6 iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf90cb9c6 iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x01a6c994 sas_target_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0be84583 sas_slave_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2296e180 sas_domain_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x26ac863c sas_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x363b2a8c sas_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x43444e4c sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x57d807d4 sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5e8fd4f8 sas_ssp_task_response
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7407bdbc sas_phy_enable
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x753f932c sas_slave_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7cdffd2c sas_bios_param
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x85e7ff9e sas_phy_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8a54714c sas_register_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9487c779 sas_ioctl
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x963d10d2 sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9e9686e8 sas_request_addr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa12001fa sas_eh_bus_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xafd2d8ed sas_change_queue_type
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc51b8c59 __sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc7d2c141 sas_domain_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcaec0676 sas_find_local_phy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf83811dc sas_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf9c4659d sas_unregister_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x02e2a16e srp_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x5fa25743 srp_iu_get
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb3af0c29 srp_cmd_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc0641abe srp_iu_put
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe47f1792 srp_transfer_data
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfaaf27bc srp_target_free
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2569f607 scsi_host_put_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x30121cbb scsi_host_get_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x335f28ba scsi_tgt_queue_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x339245db scsi_tgt_alloc_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4a9fc8c9 scsi_tgt_it_nexus_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9b949542 scsi_tgt_cmd_to_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xba1e4545 scsi_tgt_tsk_mgmt_request
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc4c78aff scsi_tgt_it_nexus_create
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe3570428 scsi_tgt_free_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1f942169 iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3666aa31 iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3932e0e4 iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x43c41bdc iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4b3e374a iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x55a08018 iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5fcb18aa iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6c849507 iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x79ecf166 iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x84fe8511 iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x85021d64 iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8509af63 iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xab0eaf51 iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbb2677ea iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc89bcc2b iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd5b87156 iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdac259ba iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdf3ac565 iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xea634357 iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xee7b05de iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf5b6141a iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf77055f3 iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x5260890c sas_disable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x8f86bba1 sas_enable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x96454b16 sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xc442b7f4 sas_tlr_supported
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x14e72f92 srp_remove_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x4c1bc738 srp_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x715fb7c7 srp_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x85221aec srp_rport_del
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xa49daa42 srp_rport_add
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x3899df8e pciserial_init_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x419892dd pciserial_suspend_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x4ce56525 pciserial_remove_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xb1886bf2 pciserial_resume_ports
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x222782c8 st_register
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x152ff8cf sockfd_to_socket
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x2cb87868 usbip_dump_urb
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x2e8e7343 usbip_task_init
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x602a651a usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x640811a2 usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x919e44c9 usbip_event_add
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x9eb611b1 usbip_stop_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xa0fedc6d dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb159f9eb usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb2874417 usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb49d0648 usbip_stop_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb64123ae usbip_event_happened
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xca871dcd usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd728e739 usbip_start_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe75eb9c0 usbip_start_eh
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x045b3514 uio_unregister_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x96fbf360 uio_event_notify
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xafd65353 __uio_register_device
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x24f1a55d usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2a2f22ec usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3dbf456c usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x826be0f7 usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa57672b9 ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb6070436 usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe53da550 usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xeb6d7379 usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf1457b0f usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0b30b9d2 usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0b3b4907 usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1e878d26 usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3e70adf9 usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x44924c78 ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4c0b8e24 usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4d7dfe34 usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x52ed2e7d usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5621cc1e usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x58036be8 ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x713908e1 usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x892efe0f usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8cf444a6 usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb20a8417 usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbbbaabe3 usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc25bf9da usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe6fb4c75 usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xebd8c57a usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf901675c usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x00348dfd usb_stor_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x01a9654f usb_stor_bulk_transfer_sg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x23f06f65 usb_stor_clear_halt
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3c73ff89 usb_stor_ctrl_transfer
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x456e4d60 usb_usual_ignore_device
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4bdd82c8 usb_stor_probe1
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4cdf9f55 usb_stor_transparent_scsi_command
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x603dccb1 usb_stor_Bulk_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x67605b91 usb_stor_probe2
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x68cd81b2 usb_stor_set_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7066e96c usb_stor_CB_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7dc33e0b usb_stor_post_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa0b2985a fill_inquiry_response
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xae61d1b4 usb_stor_Bulk_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc0c9a3bc usb_stor_CB_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xce10429c usb_stor_suspend
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd2f8e9d9 usb_stor_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe87f22c3 usb_stor_pre_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe9b6caab usb_stor_bulk_srb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xeb9f20c7 usb_stor_access_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xef4033b0 usb_stor_reset_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf50cde8b usb_stor_control_msg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf8d4c8d4 usb_stor_bulk_transfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x3da93111 wa_urb_enqueue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x9ab48778 rpipe_ep_disable
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xbee4d250 wa_urb_dequeue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xd26fc885 __wa_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xe7a31a67 wa_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0b73c1ea wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x169120c8 wusbhc_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x34f7e51c wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x527b4ce1 __wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x53f1b233 wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6437d78d wusbhc_b_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6693c933 wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x67b02559 wusbhc_rh_suspend
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6d41073e wusbhc_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa41a33e7 wusbhc_reset_all
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc81f31e2 wusbhc_handle_dn
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd4f253bb wusbhc_rh_control
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf06a94a9 wusbhc_chid_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf6c60ca6 wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfcbc8067 wusbhc_rh_resume
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xffdc2f5a wusbhc_b_create
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x0d9ac399 i1480_rceb_check
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x5a3a3bd4 i1480_fw_upload
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xaadd58d1 i1480_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x01aa41d1 uwb_phy_rate_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x070e041e uwb_rts_cts_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x329c78a3 uwb_ack_policy_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x3898490f uwb_ack_policy_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x88b3f687 uwb_pca_base_priority_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd06997e1 uwb_phy_rate_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe307e93f uwb_rts_cts_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe6b83119 uwb_pca_base_priority_show
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x016fd561 umc_device_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x13307115 umc_device_create
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x32961116 umc_match_pci_id
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6fee4df1 umc_bus_type
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x79a406ee umc_driver_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8cbcc124 __umc_driver_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc1be4e56 umc_controller_reset
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xfd1de674 umc_device_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x035d4f99 uwb_notifs_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0e50136b uwb_est_find_size
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x133ce862 uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1b274862 uwb_dev_for_each
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x23442fca uwb_rc_vcmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x264665e8 uwb_rsv_accept
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x34a3e53b uwb_rsv_terminate
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3baa5faf uwb_dev_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x563dcb0a uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e08715a uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6114e1ba uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6456d929 uwb_rc_alloc
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x646e2e12 uwb_rc_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6609633d uwb_radio_start
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x67286715 uwb_rsv_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x79773f3a uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7c0df8d6 uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7cc7fb7f uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7ee548c6 uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8577d46b uwb_rsv_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8b604e17 uwb_rc_post_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9595d2b3 uwb_rc_neh_error
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9d2a15b6 uwb_rc_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9df22164 uwb_radio_stop
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa3fc44d4 uwb_pal_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa62ab0f8 uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa6ab2cb8 __uwb_rc_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xad5438c6 uwb_rc_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xadf6af8b uwb_rsv_establish
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbee4fc7f uwb_rc_put
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcd538274 uwb_rc_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd21c1e57 uwb_pal_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdb490e83 uwb_notifs_deregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdbc82d3d uwb_pal_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe7c3d15f uwb_rc_ie_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xecb8c774 uwb_rsv_modify
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xed58d7c8 uwb_rc_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/whci 0xa7971868 whci_wait_for
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0e496425 wlp_dev_prim_category_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x16ac749e wlp_uuid_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1743f2b0 wlp_dev_prim_category_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1b2f23df wlp_wss_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2b13c0a6 wlp_dev_prim_OUI_sub_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2cfb6490 wlp_dev_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4031a403 wlp_dev_model_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x42d0b2ba wlp_wss_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x49cc5b87 wlp_dev_model_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5bec7e9f wlp_dev_model_nr_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x64e2ac48 wlp_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x67005fa6 wlp_uuid_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6c28a89b wlp_wss_activate_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6e1a941e wlp_dev_serial_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x77aa65bb wlp_dev_manufacturer_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7a4e3fe5 wlp_dev_manufacturer_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7cbe19bd wlp_dev_prim_OUI_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x885399e0 wlp_prepare_tx_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x88d9f620 wlp_dev_prim_subcat_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x900f052d wlp_eda_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x984a96ec wlp_eda_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9c38764c wlp_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa3c4e55d wlp_dev_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xaf740cb0 wlp_dev_prim_subcat_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb3697fe7 wlp_dev_model_nr_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc52499ae wlp_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd3210627 wlp_dev_prim_OUI_sub_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd69fc8a8 wlp_dev_serial_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe748c363 wlp_wss_activate_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe7c54d85 wlp_receive_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf06f3510 wlp_neighborhood_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf2a1299d wlp_dev_prim_OUI_store
+EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0xafb186d0 fb_ddc_read
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x2b4a8542 fb_sys_write
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x63d9f912 fb_sys_read
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x0533f64b sis_free_new
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x9b0fa3cb sis_malloc_new
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xa688b51f viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xb3529fbb viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x1590ecb4 w1_next_pullup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x25a43f88 w1_reset_bus
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x6d0cc406 w1_read_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x96ce2ac8 w1_reset_select_slave
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x98032b6c w1_read_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xefe9ffd6 w1_touch_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xf10f2fca w1_write_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xf63ade57 w1_write_block
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xa66808d4 dlm_posix_get
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xb9d59b1f dlm_posix_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xbbe2f64c dlm_posix_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x0b4f712e exportfs_encode_fh
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xab811500 exportfs_decode_fh
+EXPORT_SYMBOL_GPL fs/fat/fat 0x028bae26 fat_time_unix2fat
+EXPORT_SYMBOL_GPL fs/fat/fat 0x19ffa5ec fat_add_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x2417770b fat_dir_empty
+EXPORT_SYMBOL_GPL fs/fat/fat 0x2956a128 fat_attach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x30087351 fat_search_long
+EXPORT_SYMBOL_GPL fs/fat/fat 0x6ed82dba fat_sync_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0x742c96fc fat_fill_super
+EXPORT_SYMBOL_GPL fs/fat/fat 0x81f90536 fat_remove_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x8225ee50 fat_flush_inodes
+EXPORT_SYMBOL_GPL fs/fat/fat 0x92f945f3 fat_getattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0xb5ff46db fat_build_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xb8d3976f fat_scan
+EXPORT_SYMBOL_GPL fs/fat/fat 0xbe8cefa0 __fat_fs_error
+EXPORT_SYMBOL_GPL fs/fat/fat 0xc1bd6bcf fat_alloc_new_dir
+EXPORT_SYMBOL_GPL fs/fat/fat 0xc720aff2 fat_setattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0xe9c15cb0 fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL fs/fat/fat 0xf0e43e20 fat_detach
+EXPORT_SYMBOL_GPL fs/fat/fat 0xf81d5706 fat_free_clusters
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1cdf31c7 nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x980962f0 nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa9d24f51 nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xbed025af nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xcd88c0bb nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x28e65421 nfsacl_encode
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x53b7f7a9 nfsacl_decode
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x08c64b3e o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x29f2bca5 o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5996fa38 o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x90997774 o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbab22dea o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd6dd588d o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe93a517e o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x39c0767e dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6d1298d2 dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa353b758 dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb0f9496c dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbe7a0fe2 dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd0157cee dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7213c5b8 ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xcff27785 ocfs2_plock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xf1321ef9 ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress
+EXPORT_SYMBOL_GPL net/802/garp 0x1121c141 garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0x373300a2 garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0x617e5cda garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x7c37f183 garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0x8205ed03 garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0x96d452bf garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/stp 0x48567968 stp_proto_unregister
+EXPORT_SYMBOL_GPL net/802/stp 0xb4f62fe1 stp_proto_register
+EXPORT_SYMBOL_GPL net/ax25/ax25 0x813628f1 ax25_register_pid
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0c208281 dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x142812f4 dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x15c9cd9a dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2b88b419 dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x33e62778 dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3d40c87b dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3e2af0fd dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4034d6bc inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4 dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x44be1448 dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x53ed631c dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5e8c6ce2 dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5ee5f115 dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6102590d dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6329dd4f dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7e628983 dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fa70e28 dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x83b77dae dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x944ddac4 dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9565938c dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9fd00f29 dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa0fcf849 dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa3868e87 dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb25c2fa7 dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb2a7cc35 dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xba848f39 dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbeb2d076 dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc5320aa1 dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xdb0c93b4 dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xdbacfeba dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe052355a dccp_insert_option_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe359c6fb dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xeedd9899 dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xfd4a8706 dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1790599c dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2265dbe8 dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2cbc4825 dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4a5b8af7 dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xbcf1b877 dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe342da12 dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x696c8266 arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x337e5336 ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x87b2eff7 nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x38c21449 nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x49531e14 nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x6a65a7fa nf_nat_proto_put
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x6b3d3135 nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7682c10a nf_nat_proto_find_get
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbebf25e7 nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf22b882b nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf9335456 nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xa706a3bb ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x005f23da l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0bd65324 l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1f4e3c2a l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x271ca5f3 l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2857cc92 l2tp_tunnel_closeall
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x31c4896d l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x430737ab l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4717dfee l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5bc84898 l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x639e76f4 l2tp_tunnel_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x73c6b70c l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7709353d l2tp_udp_recv_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8606730e l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9e8194fd l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbb2e33d5 l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc0368d89 l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe4ab00bb l2tp_xmit_core
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x52f568c2 ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x865afc81 ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xfe38ab18 ieee80211_find_sta_by_hw
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02e3cc51 nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x041510f8 nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x067fc1de nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0bfe2429 nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0c3576e2 nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e788252 nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0ef0291b nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x13af4c13 nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1efa77c6 nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2357a905 __nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x23f1d1dd nf_expect_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a4acf6e print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3449a35c nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3af7522e nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b3c4ef2 nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3c4ee0d0 nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x41687bc6 nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4a6bfaf9 seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b5c5c1d nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4fe465f3 nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x50e26d4f nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x513ae26c nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5f6d32f6 nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x64975d04 nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x65606d43 nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x695c3161 nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x69895153 nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e78908d nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6f33e440 nf_conntrack_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x712ac417 nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7b89f54d nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8213e76d nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x822ca99d nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x840757e0 nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9675ee2d __nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x971520f9 nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa38413d7 __nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa77340c8 nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa838ef87 __nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa458ddc nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab32a026 nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb01bd7fa nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb50d7f1c nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb897eae9 nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd58b1b8 nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc383f934 __nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc7d20d21 nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8d83985 nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcd328b70 nf_conntrack_untracked
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xceaf738c __nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0d30130 nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd461bf1f __nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb6edb03 nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xde742885 nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdeb1650f __nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xded5abf0 nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe8d0e4b4 nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf48eb02b nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf4ef70c0 nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5568328 nf_ct_unlink_expect
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9939b3e nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfffb5b96 nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x4dd455e9 nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x59663dde nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3e7c25ab set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x62b1ad97 nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x66a3a69d nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7e6f6eeb set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x906d7e43 nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa317d441 set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb10b9364 get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb619605b nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcf89ea4f set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfa8b74dc nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xc0e24cf5 nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x143c6e54 nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x4f90a846 nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc5f6450c nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf6510606 nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x5705f97a nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xec547261 nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x023b4c02 ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x21554883 ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3bc5a805 ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4606ac9a nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x59826e52 nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x733e4f18 nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7d132d2f nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8e919f79 ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9db3bad9 nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa0575c0e nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xcde81aaf nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd9831c46 ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf1c4b54d ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x190a059d nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x4db8b7e5 nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xe20a74ff nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x63d5af3c nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb29ff2c7 nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb9a86fc1 nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc5164188 nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcb7bc02e nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd3f315e5 nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xaa808f85 nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b634f9e xt_info_locks
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1cc76301 xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2e6edd42 xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x41159306 xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x56ebfeb1 xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x591780f2 xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7c1b91b5 xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8753426b xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8805675e xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb9bfc19d xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc91870e2 xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe5f46106 xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe8aec986 xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xeb1a9196 xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x1c6d83da xt_rateest_lookup
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf1db4ae3 xt_rateest_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq
+EXPORT_SYMBOL_GPL net/rds/rds 0x123fdd5f rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0x12ef80ae rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0x22665cd1 rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x37536508 rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0x3bb0b4cd rds_inc_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x4e8df427 rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0x5bb16d7a rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0x6c16848a rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0x6e02e13f rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x7bcb7ddb rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0x8443a67d rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x87a38ad3 rds_stats
+EXPORT_SYMBOL_GPL net/rds/rds 0x8a63c441 rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x96549c52 rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xa2b1b983 rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0xad51fa7f rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0xb448bd4f rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0xb4d5ff63 rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xb71aa311 rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0xb7f0c797 rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0xd72f2811 rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0xedcbeea8 rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0xf9ed6746 rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0xfd3b9b6c rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x6ea591ce rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xf97e5a95 rxrpc_register_security
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x01b7b0e9 gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x0352e68e gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2ee0a78d gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5afe7e49 svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x75ecacae gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x83b00d36 gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8bceeaf9 gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x95c6759e svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa61f7f13 gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa746eb66 gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xcb23c83d gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x015f8813 csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x059089bd rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06412026 xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06b66b99 svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08a6e82d cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0cdb0800 put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e16e2c4 rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x132430c3 svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x154d559c rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15635ca9 sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15d5cb9b rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1717eb45 rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ab23b77 svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1bc44442 rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c729acc sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ca54b74 svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ea87684 xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x235fa90d xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2480aafc xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2728d512 svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x276d410a rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28e3002e rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ada37ba svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2cdaf9ea xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f2b92e7 cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x323540c0 rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35a947ee svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35d862e9 rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37756942 xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37e25935 rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ac0aa98 xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b4f039f rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3bc0b62a svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c4a5748 rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c83baef rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d5bd872 xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x40b834b8 svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x436a23aa rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44a610b1 xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49dbb3bd xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49f6e47e rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4abb67ca svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d29a551 rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d4faa38 svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e24ffe7 rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f95d24f sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x559f73bd auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56459119 auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x568d3d95 rpc_exit_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x595b2f7b xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59f88eea rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d858936 auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5edf335f rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f72b46f rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f7b434a rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6128bc0d rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63d20750 svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x690908d6 xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6917e121 svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x695527cb xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a528e76 rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ad3d54e read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c781fb0 __rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ec59464 rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f37dc23 rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72a7567e xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x733d0f1c rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7389ac64 rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x749c3215 xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x776e105c svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79139453 rpc_queue_empty
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7997c43b svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a96b21e sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7bb17aa7 xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c301f35 svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7dc33707 xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e0cc5fe svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f4ddadf rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81105ef8 svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x829a6b71 rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82c0f478 rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x856055d8 rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86015e4a xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8af78abd svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8bdf03ce auth_unix_add_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9113b0c5 rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x912b979a rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94b880b3 svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x960ea847 xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96cca961 svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a4dac2b rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e3eafc5 rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f67a2eb rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0e029ef svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa163f961 sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa54a54e9 rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa836c53d auth_unix_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa903b1b5 rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa94a2ca3 xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa97f50ea xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa29fc77 rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab8a8a3c svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xadb9c9e7 rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb05ef416 unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb41cc62c svc_sock_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb72d1f83 xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb748a841 xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0a3e270 svc_sock_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1b836eb rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2b74369 rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3184b8a rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc48ed39b rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc889b1ea svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e95a1e write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc3455bd xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0768849 rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0e00dea xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd29f28f5 svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4276eb4 svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7d7efdf xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc48a7e7 cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc994341 svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdfe892a1 xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe069132d svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0ecedfc cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3038673 xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4104328 xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4209c01 xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe661c8d0 xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe91a717f svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9bc5341 svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec38ef33 xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedf2c0d2 xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeebb81b0 xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf03c7e7c rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1a62c91 svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf39ac651 svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa5fc29f auth_unix_forget_old
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb279000 xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffe5dd16 svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffeddeb3 xdr_init_encode
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x1417eefc wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x191ad500 wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x23ffd66f wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x282ec510 wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x2bb98da2 wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x427bb247 wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x5561de36 wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x8ce58c78 wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x8f04abcf wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x947fe031 wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xafe9dd76 wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xe2862c62 wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xfd2013ee wimax_state_get
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x01e91111 cfg80211_wext_giwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x06d3b857 cfg80211_wext_siwgenie
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0751b426 cfg80211_wext_giwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0ddb4839 cfg80211_wext_giwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2ae8aa2e cfg80211_wext_siwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x36333f9b cfg80211_wext_siwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x373d5882 cfg80211_wext_siwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4a728539 cfg80211_wext_siwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4b91c73f cfg80211_wext_siwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4e1fee00 cfg80211_wext_giwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x54fc0631 cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5811b76c cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6d0dc6d4 cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x75127689 cfg80211_wext_siwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7ed16fec cfg80211_wext_siwencodeext
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x81707404 cfg80211_wext_giwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x876e5e12 cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8a92712e cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x93254eac cfg80211_wext_giwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9f75f638 cfg80211_wext_giwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xac6fe52d cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb1040db7 cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb824f593 cfg80211_wext_siwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xba5f32f6 cfg80211_wireless_stats
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbb9664bf cfg80211_wext_siwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc0f3db33 cfg80211_wext_giwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd118945e cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd8ec6b6e cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe95982d8 cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xee5c9bea cfg80211_wext_siwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf18f2777 cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfe3b5dec cfg80211_wext_siwmlme
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x028dabe9 ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x117e7783 ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xb18dc3cf ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xf7ba985b ipcomp_input
+EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x1a0cb4c2 snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x4c8783f0 snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x89889f36 snd_ak4113_create
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xb9bf42e6 snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xe3d1619e snd_ak4113_build
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xebf1911a snd_ak4113_reinit
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0463c937 snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0905f0e6 snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a7db458 snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0adcc239 snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ae6a82a snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0edd8d16 snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x102e6eb7 snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1128c3e1 snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12c6a84c snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1444ee75 snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15c6e682 snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x186f5ca0 snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x19ce6445 snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f68b874 snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28e18639 snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x29428186 snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e8da9e5 snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x32b07d9b snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3387193e snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x37fba282 snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x39fbccad snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3aa0565f snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ca07af1 snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e7ba323 snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ec5ce22 snd_hdmi_show_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x403b99a9 snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a6361cc snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ff7d8ec snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5406121c snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x568d92b2 snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58eb3ef2 snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c8fe51b snd_hda_parse_pin_def_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5fba9345 snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a999f44 snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6dff5682 snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e67ac9e snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f367f56 snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71f1d375 snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74b14c90 snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75a49423 snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7647926c snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86d4dce1 snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8cde4ac8 snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8f14814c query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x905eace2 snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x91b584a7 snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x947cb7bb snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95be990a snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2027fd2 snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa21aa80f snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa257f679 snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa44ec908 snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa454af85 snd_hda_eld_proc_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4bed8ed snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa7769b98 snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa7fe73b5 snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xac3bdcc5 snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb32ed208 snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb6445008 snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8deae82 snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbc42ebaf snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc46acd83 snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5a016ce snd_hda_eld_proc_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc780e992 snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc80005aa snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc846b0f4 snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca6aa3ac snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd1d0a2a2 snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd4288c86 snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd4504eaf snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5724079 snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb1442ec snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb70e938 snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd6f911e snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4e7c118 snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe9748084 snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xea07c9f7 snd_hdmi_get_eld_size
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xea539bcd snd_hdmi_get_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed74c0f6 snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef57a962 snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeff2d0a3 snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf04d8dd9 snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf2cd2225 snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4227735 snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf77322ce snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa0a61d6 snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb4c7036 snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc668e24 snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x7a42c727 soc_codec_dev_ad193x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xd0e602c7 ad193x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x5966065c ad73311_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xfc67560a soc_codec_dev_ad73311
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x9d510d65 soc_codec_dev_ads117x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0xe963e0e3 ads117x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x4cf57472 soc_codec_dev_ak4535
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x8f1310f8 ak4535_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x144e5bde soc_codec_dev_ak4642
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xd93e192d ak4642_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x3d25b644 soc_codec_dev_ak4671
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x6e42711e ak4671_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x4d41d49c cs4270_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xe2f86c77 soc_codec_device_cs4270
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x1bd21af1 soc_codec_dev_da7210
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x1d7c9935 da7210_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x1054ebca max9877_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x4621f952 pcm3008_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xe6710c30 soc_codec_dev_pcm3008
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0xbd90bf6f dit_stub_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xedc409fb soc_codec_dev_ssm2602
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xefc6d1cb ssm2602_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x0838342b tlv320aic23_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x15b62c14 soc_codec_dev_tlv320aic23
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x3b04cb8d aic3x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x665c3722 aic3x_get_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x97e06704 aic3x_set_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9f2149b0 aic3x_set_headset_detection
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xc5c936cb soc_codec_dev_aic3x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xdf32e531 aic3x_button_pressed
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xe9077a36 aic3x_headset_detected
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x036a587e dac33_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x74c99c51 soc_codec_dev_tlv320dac33
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x27f8c783 tpa6130a2_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x424981f3 soc_codec_dev_twl4030
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xc9fb4c7e twl4030_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x3dc6c416 soc_codec_dev_twl6040
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xe641fd6b twl6040_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x83f1e7f6 soc_codec_dev_uda134x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x7bbb39a9 uda1380_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xb24bdb9f soc_codec_dev_uda1380
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x241b3696 wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x6fc9543a wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xd9fc5689 wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x453f3672 wm2000_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x1d5f8e40 wm8350_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x842041b9 soc_codec_dev_wm8350
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x928818fc wm8350_mic_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x9a1a7c7f wm8350_hp_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x1f3cbbeb soc_codec_dev_wm8400
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x45a2a8fe wm8400_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x25a1f3b1 soc_codec_dev_wm8510
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xe5281db9 wm8510_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x0cca1e2b soc_codec_dev_wm8523
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x5254758a wm8523_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x2a70c83e soc_codec_dev_wm8580
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xb38aa565 wm8580_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x6c51c961 wm8711_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x96b30a7b soc_codec_dev_wm8711
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x8be030e1 wm8727_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xc2af13a4 soc_codec_dev_wm8727
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x45370f6b soc_codec_dev_wm8728
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x7ab68234 wm8728_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x9537de15 soc_codec_dev_wm8731
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xfbced848 wm8731_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x53423ed7 wm8750_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x88a193e6 soc_codec_dev_wm8750
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x790dfb57 wm8753_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xa38cc025 soc_codec_dev_wm8753
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xc157bf7b wm8776_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xdd7fe00e soc_codec_dev_wm8776
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x14f00342 wm8900_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x6eb5263e soc_codec_dev_wm8900
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x0f75603a wm8903_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x459875fd soc_codec_dev_wm8903
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x926471ec wm8903_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x0ad9e33a soc_codec_dev_wm8904
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x8f614154 wm8904_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x69bc8ee2 soc_codec_dev_wm8940
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xe0bf2751 wm8940_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x15091090 soc_codec_dev_wm8955
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x1605bd56 wm8955_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x6a385a8c soc_codec_dev_wm8960
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x77203678 wm8960_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x73236bcd soc_codec_dev_wm8961
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xbc7ce5dd wm8961_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x1a0bee69 wm8971_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x72e101fa soc_codec_dev_wm8971
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x0f96f5bf soc_codec_dev_wm8974
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x4ac67fda wm8974_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x3d04bfa1 wm8978_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0xa323bab3 soc_codec_dev_wm8978
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xa87ffd8e soc_codec_dev_wm8988
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xcb4ccf48 wm8988_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x61641db1 soc_codec_dev_wm8990
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x81684691 wm8990_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x07fc343f wm8993_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x4a494e72 soc_codec_dev_wm8993
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x0508d8b5 soc_codec_dev_wm8994
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x7ee5975e wm8994_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xc57671ec wm8994_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x39d520fd soc_codec_dev_wm9081
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xe47791e8 wm9081_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x210c7b8b soc_codec_dev_wm9090
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0444ffe9 snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x069da87d snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06a7c0be snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d3f1a1f snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0e87ed3e snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f6522e6 snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x171db87c snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x183642f0 snd_soc_info_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1dabaae3 snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23396d44 snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23cb44e0 snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x241b71b5 snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x244bf7ad snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29f3f2b4 snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2aceb4a6 snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ad769b9 snd_soc_new_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2d3bf3c9 snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31c5a570 snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b0f3a80 snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b94e5ea snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x44ac8ab4 snd_soc_dapm_stream_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4622512c snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x466254b6 snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4785de3c snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47e685de dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4a1b0b9b snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4b69a90a snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4cc7f534 snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4d6a0e98 snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f08888f snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f667ca1 snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52f0c979 snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5499ce73 snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55d2ce99 snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x56529d95 snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5674f2b5 snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a5c4610 snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ed29ab9 snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x75963243 snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x769cb984 snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x774670ee snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7cfd8a78 snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e23fd10 snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x859a4529 snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88379243 snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8bbf0e29 snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8d89d821 snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e78b504 snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b0dadb9 snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0456d0b snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0483103 snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3a16318 snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xab2d630c snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb180698c snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc862a5d snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbcd812e5 snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe2cd26f snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc29dee9a snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca865659 snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb23a4d2 snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc5ff998 snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd09a08dd snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd7758634 snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd7a28fdf snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd831189f snd_soc_get_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda94b02f snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdaf0efbb snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdcc36feb snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe09dd63e snd_soc_put_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6b1af99 snd_soc_free_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6eec3a5 snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6f3dea0 snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xede08c41 snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeead3e3d snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf117f34e snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfa62d06d snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc2389c0 snd_soc_jack_new
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x2474e9d5 xv_get_total_size_bytes
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x322a65d3 xv_malloc
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6931db78 xv_free
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x9092cdbb xv_create_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xf5cdafcf xv_destroy_pool
+EXPORT_SYMBOL_GPL vmlinux 0x001ee1e9 led_trigger_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x00562936 get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis
+EXPORT_SYMBOL_GPL vmlinux 0x00899a31 __root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x008f5e78 adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x0091c2d1 __create_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0x009f6553 get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0x00c3ed99 pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init
+EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string
+EXPORT_SYMBOL_GPL vmlinux 0x00f03087 cfi_cmdset_0200
+EXPORT_SYMBOL_GPL vmlinux 0x00f75ca8 sdio_memcpy_toio
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x013908b0 i2c_new_probed_device
+EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x017c05f4 inotify_rm_watch
+EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x01cf41d3 __get_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x02e85655 sdio_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x02ef2f87 pci_dev_run_wake
+EXPORT_SYMBOL_GPL vmlinux 0x0302ffc8 fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x0352d7f9 device_attach
+EXPORT_SYMBOL_GPL vmlinux 0x03c650d9 da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL vmlinux 0x03f004d9 sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread
+EXPORT_SYMBOL_GPL vmlinux 0x042f900e queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x046a9b36 ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL vmlinux 0x04a61a67 inotify_add_watch
+EXPORT_SYMBOL_GPL vmlinux 0x04d245f3 rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x059d7903 crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x05c02cef sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0x05f87fc3 dm_device_name
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x0644fc38 pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x0680eb4a usb_get_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x06aa4e1a platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0x06cf42f9 usb_ifnum_to_if
+EXPORT_SYMBOL_GPL vmlinux 0x07023972 vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0x07075518 queue_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x070c2108 scsi_target_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x07221eb0 unregister_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x076b5162 usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0x0798e08e device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL vmlinux 0x07a5f1b5 dm_rh_inc_pending
+EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x07df04f3 inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0x082ad504 ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0x08424f0e wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x0872d9b2 sata_scr_valid
+EXPORT_SYMBOL_GPL vmlinux 0x087eba15 cpuidle_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x088b7e2b sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x08b278fa wm8350_device_exit
+EXPORT_SYMBOL_GPL vmlinux 0x090473b0 ata_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0x090a5df6 unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0x093b9267 led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL vmlinux 0x09933756 pm_generic_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x0a05f274 ring_buffer_overruns
+EXPORT_SYMBOL_GPL vmlinux 0x0a61ea86 ata_host_start
+EXPORT_SYMBOL_GPL vmlinux 0x0ad58cf4 __mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0x0ade7037 blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0x0af64ea2 fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0x0afb06a7 pm_runtime_enable
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b2b1c8d regulator_disable
+EXPORT_SYMBOL_GPL vmlinux 0x0b4c0a2f crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x0b9aab30 tty_mode_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x0bad3532 proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c58f79c usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x0c652bfa usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0x0c7cf86e crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0x0cacd1e6 inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0x0cb23d75 device_del
+EXPORT_SYMBOL_GPL vmlinux 0x0cbbf699 usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL vmlinux 0x0cd3d821 inotify_inode_is_dead
+EXPORT_SYMBOL_GPL vmlinux 0x0cd44a31 rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0x0cd4f929 attribute_container_find_class_device
+EXPORT_SYMBOL_GPL vmlinux 0x0cded6f1 mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0x0d1795a1 pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0x0d394327 proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0x0e3a1f7d ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x0e733d71 sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x0e754f44 cpuidle_get_driver
+EXPORT_SYMBOL_GPL vmlinux 0x0ecda161 wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL vmlinux 0x0ef39be2 rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0x0efaf615 bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0x0f4e779e find_module
+EXPORT_SYMBOL_GPL vmlinux 0x0f639db5 zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0x0fa4f57e device_register
+EXPORT_SYMBOL_GPL vmlinux 0x0fcd0326 generic_detach_inode
+EXPORT_SYMBOL_GPL vmlinux 0x0ff33e09 unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x0ff42e3e regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x0ff87743 ata_sas_port_stop
+EXPORT_SYMBOL_GPL vmlinux 0x10109e8e pci_bus_max_busnr
+EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x10657a84 ata_port_pbar_desc
+EXPORT_SYMBOL_GPL vmlinux 0x1097a8e4 sata_set_spd
+EXPORT_SYMBOL_GPL vmlinux 0x10bed6f1 regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x110a093c klist_init
+EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x1211457f inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0x12135d4b sync_page_io
+EXPORT_SYMBOL_GPL vmlinux 0x1232cd14 dev_attr_unload_heads
+EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0x12a30954 scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0x12ce62ff device_add
+EXPORT_SYMBOL_GPL vmlinux 0x13375a09 ata_cable_ignore
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x138156fe usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0x1381e24d usb_create_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13c51eeb ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL vmlinux 0x14177ec4 rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x145c85d8 add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x146528a2 pm_generic_restore
+EXPORT_SYMBOL_GPL vmlinux 0x1466a514 sata_link_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x146ef748 rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x148a2501 transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0x148ed01e da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid
+EXPORT_SYMBOL_GPL vmlinux 0x1513da5e usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0x1545f4de register_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0x15516416 sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x15615d26 sdio_set_block_size
+EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x159955f3 ata_sff_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x15d44cba usb_autopm_put_interface
+EXPORT_SYMBOL_GPL vmlinux 0x16de0c9d crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x16e160e3 simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0x16f2ddad pci_enable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x17142764 ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x17fb4db1 lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0x180cfaab ata_host_detach
+EXPORT_SYMBOL_GPL vmlinux 0x182274d3 usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x1826aacc get_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x1854715d usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0x185c62f6 ata_sff_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0x1884749d __rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x18eed884 __put_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x196d1cde shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x199232b0 module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19ac10b2 screen_glyph
+EXPORT_SYMBOL_GPL vmlinux 0x19e757a3 ata_sff_dma_pause
+EXPORT_SYMBOL_GPL vmlinux 0x19ee8dda input_ff_erase
+EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x1a45c07c ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x1a52f9db ata_sff_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0x1a856289 debugfs_create_u64
+EXPORT_SYMBOL_GPL vmlinux 0x1a9965aa ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x1abc7cca hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0x1b13ce9e devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1c08690f platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1ca02a86 ata_bmdma_setup
+EXPORT_SYMBOL_GPL vmlinux 0x1cc17c91 sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x1d51fc0a inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0x1d7004ee crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf
+EXPORT_SYMBOL_GPL vmlinux 0x1e27bc9f crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x1e65248e fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart
+EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names
+EXPORT_SYMBOL_GPL vmlinux 0x1edcfd84 cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0x1f1ad3e4 crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x1f61cabf __sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0x1f8d75b8 ata_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick
+EXPORT_SYMBOL_GPL vmlinux 0x205b308d security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0x207993ee fsnotify
+EXPORT_SYMBOL_GPL vmlinux 0x207b13d6 dm_register_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0x20b2a721 rt_mutex_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20cb3689 eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0x20f4a94a sdio_release_host
+EXPORT_SYMBOL_GPL vmlinux 0x214e7877 platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0x2188ef2e fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x21c35172 scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x21c73c61 crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0x21dfe275 usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0x21e56904 pm_request_idle
+EXPORT_SYMBOL_GPL vmlinux 0x21e89c68 crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0x221fdf17 tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0x22463756 crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x23a9b8c2 usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL vmlinux 0x23d193d0 dm_rh_dec
+EXPORT_SYMBOL_GPL vmlinux 0x23d9209c ata_link_online
+EXPORT_SYMBOL_GPL vmlinux 0x23df58a8 ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL vmlinux 0x23e5e2f5 uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x23ea410a __fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0x241d324c flush_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x244e82a5 srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x248b77e1 debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0x24c54076 tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x25204c4d kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x254294a9 inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x256b6cbd ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x2590df6b ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x25b8b8d3 klist_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x25c5ed01 __ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x262ac0c6 crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0x263da3b2 ata_bmdma_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x2655bd4b __i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0x265f6f81 dm_rh_recovery_start
+EXPORT_SYMBOL_GPL vmlinux 0x26c87064 usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x270ec16f uhci_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x27298d9f bd_release_from_disk
+EXPORT_SYMBOL_GPL vmlinux 0x273e464b rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL vmlinux 0x274c1b9a destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0x278f9976 xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0x27959f4a dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x27b9cb11 dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL vmlinux 0x27be6b7d vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0x27e21222 class_dev_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x27e4ef57 inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x27e8c2ea ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range
+EXPORT_SYMBOL_GPL vmlinux 0x284db436 sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x288f7a1d ata_host_resume
+EXPORT_SYMBOL_GPL vmlinux 0x28a5a33b sdio_writesb
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x29143565 cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x297f5990 device_rename
+EXPORT_SYMBOL_GPL vmlinux 0x29a4c37b eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0x29c36657 device_move
+EXPORT_SYMBOL_GPL vmlinux 0x29cf7faa ata_noop_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x29f0f62a bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x29f6cf2b rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x2a350711 usb_match_id
+EXPORT_SYMBOL_GPL vmlinux 0x2a4a80e0 hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0x2a4f81cd __pm_runtime_set_status
+EXPORT_SYMBOL_GPL vmlinux 0x2a673658 skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result
+EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array
+EXPORT_SYMBOL_GPL vmlinux 0x2afe1967 platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2b716eb2 blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x2b880b65 usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0x2bbebea3 show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c2da2aa device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x2c5cc8fc tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0x2c627983 tc35892_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x2c88a513 find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x2cb3fd53 fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x2cb90ef9 usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL vmlinux 0x2cbec24b aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x2cd4cdd8 blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x2ce3202a sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2cfb6329 pm_runtime_allow
+EXPORT_SYMBOL_GPL vmlinux 0x2d2b14cf fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0x2d5957a3 single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x2d5ce0cb i2c_new_dummy
+EXPORT_SYMBOL_GPL vmlinux 0x2d972b6c crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x2da0b438 cfi_cmdset_0003
+EXPORT_SYMBOL_GPL vmlinux 0x2e0b01ce regulator_put
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e4f8117 ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0x2e8f7d98 ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0x2e939676 sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2ed9efbd usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x2eef84a1 ata_sas_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x2f14b683 __blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x2f1e1c38 transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x2f8be607 device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x3009fe6c br_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x3037692d sdio_readl
+EXPORT_SYMBOL_GPL vmlinux 0x306c3a60 fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0x308ff9a9 srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x30d072ac tc35892_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x31066ac7 inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0x312044db vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x313424d7 debugfs_create_u32
+EXPORT_SYMBOL_GPL vmlinux 0x31541d7c ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0x31679f39 power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x31703ed8 sata_pmp_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x31a2c622 usb_ep0_reinit
+EXPORT_SYMBOL_GPL vmlinux 0x31de6218 ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x31e98c7a rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x31ee23f3 devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0x32004448 register_mtd_user
+EXPORT_SYMBOL_GPL vmlinux 0x32054794 class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x32337fc3 bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0x325eda78 __blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x326810d5 usb_driver_release_interface
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x32f00ce4 crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0x331ca788 cpuidle_enable_device
+EXPORT_SYMBOL_GPL vmlinux 0x333053bd ata_port_desc
+EXPORT_SYMBOL_GPL vmlinux 0x336e065e blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x3393494c tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0x33a3c428 usb_driver_set_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x33a59c17 usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x33a75177 usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0x3424b6b6 usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0x34324a75 usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x344b79cf ata_sff_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0x34c26c11 driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x34d39327 wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0x34e65459 sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x3518d99b cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x3533e1c9 task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x3554cc03 usb_bus_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x35af3c9e fuse_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x360bf797 usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0x363f6526 ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL vmlinux 0x3681a8a7 tc35892_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x3685af32 inotify_init
+EXPORT_SYMBOL_GPL vmlinux 0x3688130c blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x36aa38f4 firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x36c511e2 get_driver
+EXPORT_SYMBOL_GPL vmlinux 0x373addf2 debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x374bc2ee ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0x3769ab0c klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x37b1b951 scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x37d83953 shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x37f900db device_create
+EXPORT_SYMBOL_GPL vmlinux 0x38577162 regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x389b7864 sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x3947e26b inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x395020be da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x395b1b50 sata_std_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3a45ad1b rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x3a4dedc0 wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x3a9fef70 crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x3b056703 rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0x3b1df5ff blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x3b348586 platform_device_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x3b42abf4 sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x3bbb5ebe dm_rh_delay
+EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3c1bf5a3 anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3c56cb54 pci_ioremap_bar
+EXPORT_SYMBOL_GPL vmlinux 0x3c8af95d inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag
+EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3cb371aa __ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x3cbef542 platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0x3cc05012 usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3cda2336 crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x3cf17b92 put_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3d5dee15 sdio_readw
+EXPORT_SYMBOL_GPL vmlinux 0x3d9ac89c tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x3da597ae crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x3db91586 scatterwalk_done
+EXPORT_SYMBOL_GPL vmlinux 0x3dca3222 crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x3df21e9e init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x3df3961a class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3e0b0c20 tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x3e178b54 key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0x3e90b83e usb_string
+EXPORT_SYMBOL_GPL vmlinux 0x3eabce7d sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0x3ec74cd9 sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x3ecda554 rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x3f210e75 thread_notify_head
+EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register
+EXPORT_SYMBOL_GPL vmlinux 0x3f262c3a __inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0x3f5bc7f0 power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL vmlinux 0x3f60730c ata_eh_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x3f7d4c2a ata_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x3fc43085 ata_std_postreset
+EXPORT_SYMBOL_GPL vmlinux 0x3ff9ed91 crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x406c3229 blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x4071a29f dm_get_rq_mapinfo
+EXPORT_SYMBOL_GPL vmlinux 0x408139f3 i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL vmlinux 0x40faa828 kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x415a15e3 fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x41926f41 crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x41e14dbb ata_sff_exec_command
+EXPORT_SYMBOL_GPL vmlinux 0x41e1e08d inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0x41f5ca56 console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0x4232d819 pci_scan_child_bus
+EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active
+EXPORT_SYMBOL_GPL vmlinux 0x428b1bf0 disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x42b9386b sata_async_notification
+EXPORT_SYMBOL_GPL vmlinux 0x42d857af ata_link_abort
+EXPORT_SYMBOL_GPL vmlinux 0x42f15ed5 sysdev_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x4346c1f8 sdio_disable_func
+EXPORT_SYMBOL_GPL vmlinux 0x435ccd97 tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0x4373e2b6 blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x43cf9cf1 led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL vmlinux 0x4415430f add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x4560dbfd dm_rh_update_states
+EXPORT_SYMBOL_GPL vmlinux 0x45712c80 sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list
+EXPORT_SYMBOL_GPL vmlinux 0x45b177e4 gpio_export_link
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45e4ce3d regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x4699e8bc adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0x46c0ab7f usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x47527467 led_trigger_show
+EXPORT_SYMBOL_GPL vmlinux 0x47989557 get_sb_mtd
+EXPORT_SYMBOL_GPL vmlinux 0x47cebc4a sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0x47e6cfbf dm_rh_recovery_end
+EXPORT_SYMBOL_GPL vmlinux 0x47f5a746 blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x480a1372 inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x4887c02f usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size
+EXPORT_SYMBOL_GPL vmlinux 0x48b58aac inotify_remove_watch_locked
+EXPORT_SYMBOL_GPL vmlinux 0x48e7911a ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0x4925dcca blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x4978e290 regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue
+EXPORT_SYMBOL_GPL vmlinux 0x49bedbf9 tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x49e6fb30 unregister_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0x49f4ee89 pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0x4a6b8b1f eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0x4a6ba239 blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x4abb20dc uart_set_options
+EXPORT_SYMBOL_GPL vmlinux 0x4adab71b ata_std_qc_defer
+EXPORT_SYMBOL_GPL vmlinux 0x4afe9f37 pm_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x4b162467 tty_put_char
+EXPORT_SYMBOL_GPL vmlinux 0x4b3f7758 usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x4bb19119 usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0x4c62fcea ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c7d8352 sata_scr_read
+EXPORT_SYMBOL_GPL vmlinux 0x4c7e429b cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x4c80fe36 pci_num_vf
+EXPORT_SYMBOL_GPL vmlinux 0x4c848371 tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0x4d1ba387 ata_bmdma_stop
+EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0x4d3033ff regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x4d6df436 get_device
+EXPORT_SYMBOL_GPL vmlinux 0x4da2a8ba pm_generic_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x4e256936 sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0x4e3d0919 crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x4ebba7ae pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0x4ee29aa2 usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x4f7f83af tasklet_hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0x4f8a58d2 da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal
+EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array
+EXPORT_SYMBOL_GPL vmlinux 0x4ff5ae9f __wake_up_sync_key
+EXPORT_SYMBOL_GPL vmlinux 0x505713fe inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x505b53b0 generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x5075ec94 __set_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x508f824c ring_buffer_read_finish
+EXPORT_SYMBOL_GPL vmlinux 0x50902a01 perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x50a1c81f sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x50ccaa20 relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched
+EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x512ea9c2 driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x512fe194 driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x514e74ee ata_sff_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0x517368d9 ata_sff_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x518467ac wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x519244a9 usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0x51bb163c led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0x51efdc69 da903x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0x5252b790 device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0x5267da6c reserve_pmu
+EXPORT_SYMBOL_GPL vmlinux 0x52c703c7 wm831x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53a14af4 unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x53e79f83 ata_std_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x53f20c42 sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL vmlinux 0x544b0af1 platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x54801cfd device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0x54821514 class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54991efe ring_buffer_resize
+EXPORT_SYMBOL_GPL vmlinux 0x54a60e0d hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL vmlinux 0x5540840d ata_eh_thaw_port
+EXPORT_SYMBOL_GPL vmlinux 0x5542b913 cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0x55497a9a skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x555ba453 ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL vmlinux 0x555fa0ae usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x558f6365 dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x55e7cb0c crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0x5606935c register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x5629cdcc attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status
+EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after
+EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen
+EXPORT_SYMBOL_GPL vmlinux 0x56728164 raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0x56791767 usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0x56d4d8e2 cfi_qry_mode_on
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x56fc9785 atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5727a6ca inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x57289296 fuse_direct_io
+EXPORT_SYMBOL_GPL vmlinux 0x574a5694 sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x57b42da3 wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x57e55314 ip6_dst_blackhole
+EXPORT_SYMBOL_GPL vmlinux 0x57eb9928 pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0x57ed51a9 pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x58192fc5 da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0x587e8dc5 add_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0x588268fd css_depth
+EXPORT_SYMBOL_GPL vmlinux 0x5894a2fe ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0x5897f8b6 lookup_create
+EXPORT_SYMBOL_GPL vmlinux 0x589d6aee crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x58d00a74 sata_sff_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x58d355a7 clockevents_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x58f21787 relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0x58f58017 scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x58fc6c07 adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x590f6464 sata_link_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL vmlinux 0x599d0cb6 scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0x59ac38c9 pci_destroy_slot
+EXPORT_SYMBOL_GPL vmlinux 0x59ad5de7 regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0x59bc711a sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0x59ca4a40 crypto_alg_sem
+EXPORT_SYMBOL_GPL vmlinux 0x59d541d0 clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0x59dc55b6 ata_host_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x5a6e9092 crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5a83bc5d sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x5a9159df class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x5a9fd4ed sata_scr_write_flush
+EXPORT_SYMBOL_GPL vmlinux 0x5abacbaa mtd_erase_callback
+EXPORT_SYMBOL_GPL vmlinux 0x5adce4da __rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x5b558edb crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x5b73eeb9 sdio_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x5b752d1f inotify_init_watch
+EXPORT_SYMBOL_GPL vmlinux 0x5beaad56 pm_generic_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5c237131 cpuidle_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x5c3ca181 eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x5c41beb0 usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x5cbf8ee9 crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x5cc0e3b3 ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0x5ce6a51d crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table
+EXPORT_SYMBOL_GPL vmlinux 0x5d4a4572 ktime_sub_ns
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d77896b mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0x5dc5cd7d pm_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5dfa9024 unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0x5e4a6d12 crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x5e52b1de sata_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x5e731121 rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x5eaa1139 wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x5ebce931 regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x5ecef52c fuse_file_poll
+EXPORT_SYMBOL_GPL vmlinux 0x5f24eb49 dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0x5f2d88b3 pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0x5f3076a7 pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x5f4f3e9e sdio_release_irq
+EXPORT_SYMBOL_GPL vmlinux 0x5f51217b kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x5faeb063 default_mtd_writev
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x60126aaf dm_region_hash_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x60148b63 ata_sff_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3 synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x608723f8 kill_mtd_super
+EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x60b69666 ata_port_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x60ce8c35 class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x60d1b233 usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL vmlinux 0x60dae45b inet_diag_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x60fc306f tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0x61394c0b devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x61c2539e dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0x61de3455 raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x61e9e12b crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x6259c8a0 get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep
+EXPORT_SYMBOL_GPL vmlinux 0x62b24ed1 set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0x62f12b3f regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL vmlinux 0x632dfdad pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x632e1aa8 ata_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x636e2727 wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x638ef9d0 crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0x638f75d8 regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0x63cac706 register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x63d436bd regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0x63e8370b fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap
+EXPORT_SYMBOL_GPL vmlinux 0x646c7262 sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x6474b698 cpuidle_disable_device
+EXPORT_SYMBOL_GPL vmlinux 0x647bc789 raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x64929023 bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0x6496718b unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x65344b96 ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL vmlinux 0x6538cd5e sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0x656eaee8 ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x65781f1d usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65f8b8a3 cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x662f3d8f ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x6698942b gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66d4b7ca dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x67040130 devm_kfree
+EXPORT_SYMBOL_GPL vmlinux 0x676c0d82 anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x67a5e271 tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0x67e276b9 inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x67ffae89 dm_rh_dirty_log
+EXPORT_SYMBOL_GPL vmlinux 0x6807c50c usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0x6863986e fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x68b33d2c inode_add_to_lists
+EXPORT_SYMBOL_GPL vmlinux 0x68e9fda6 release_pmu
+EXPORT_SYMBOL_GPL vmlinux 0x68fa80b1 crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x691e9d0c sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0x694ef74b pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0x6959380b relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0x69633b9e pci_create_slot
+EXPORT_SYMBOL_GPL vmlinux 0x696452c7 sdio_readsb
+EXPORT_SYMBOL_GPL vmlinux 0x699efc3d blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x69b770e6 single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x69d25a6e ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config
+EXPORT_SYMBOL_GPL vmlinux 0x6a1b74fa devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0x6a2005d6 blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x6a608714 led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0x6a7f0368 ipv6_find_tlv
+EXPORT_SYMBOL_GPL vmlinux 0x6add8c7e __blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b3e62b1 crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low
+EXPORT_SYMBOL_GPL vmlinux 0x6b92ec9a ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0x6bc12dfd remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0x6bdbf718 sdio_claim_host
+EXPORT_SYMBOL_GPL vmlinux 0x6c0938ca ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0x6c107616 wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c8e429e tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6c949446 securityfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x6c9c0c5f pm_generic_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x6ca33d28 fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x6ccc96c6 bus_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x6cedc743 bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0x6cf29ca0 fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0x6d1c7f62 da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d32a65d synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0x6d40102e blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x6d4a9225 anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0x6d5e68e0 sdio_readb
+EXPORT_SYMBOL_GPL vmlinux 0x6d6c8cf2 tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x6dd6a8b5 locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0x6df61dee debugfs_create_bool
+EXPORT_SYMBOL_GPL vmlinux 0x6e494947 kill_pid_info_as_uid
+EXPORT_SYMBOL_GPL vmlinux 0x6e64d2e5 bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x6e8b3056 xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0x6eaa8cdf class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x6f0c4211 skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0x6f0ebbde unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL vmlinux 0x6f4e30d2 skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0x6f4f8898 bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x6f5d91c0 skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x6f8bcf1e pci_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x6fb253f7 default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x6fb66011 blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0x6ff0e2ff unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x70077535 usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x70351b68 find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0x70369976 pci_enable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x705658aa rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0x706272a5 regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x7064b760 ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL vmlinux 0x708257eb relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x7083eb8e pci_test_config_bits
+EXPORT_SYMBOL_GPL vmlinux 0x70fee72c disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x7104ac54 ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0x711f2c5a skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x71668ac7 init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x71796823 sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x729e17e4 ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0x72fe883e __srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0x730128ec fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0x734f8e02 platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0x7391e6c0 class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports
+EXPORT_SYMBOL_GPL vmlinux 0x73baee72 bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0x73e5cb27 wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x73fe3f18 da903x_write
+EXPORT_SYMBOL_GPL vmlinux 0x740f2ee2 ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x7432ad5d blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x745dd728 ata_pci_device_resume
+EXPORT_SYMBOL_GPL vmlinux 0x7483ecd9 blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read
+EXPORT_SYMBOL_GPL vmlinux 0x749a76f0 __inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register
+EXPORT_SYMBOL_GPL vmlinux 0x74af4399 platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74be10c0 alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x74dca3ec usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x74f52589 macvlan_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x74fd7bdb pci_block_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x750eebb4 md_do_sync
+EXPORT_SYMBOL_GPL vmlinux 0x7535c4ec crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x7543265f ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x7593591a usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x759bb9c8 ata_sff_check_status
+EXPORT_SYMBOL_GPL vmlinux 0x75a0efa3 ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x75f04c0b platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x7671224b eventfd_ctx_put
+EXPORT_SYMBOL_GPL vmlinux 0x7698d209 put_driver
+EXPORT_SYMBOL_GPL vmlinux 0x7728bfae wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x7729a7db ata_sff_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x773c1106 driver_find
+EXPORT_SYMBOL_GPL vmlinux 0x7752c41e ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x778adaf6 transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0x778c928d shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0x779a6e27 ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0x77d70c99 md_allow_write
+EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0x782019ba __sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0x782090bd netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0x783139e1 rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x787041b0 crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x78752830 debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x788bbf12 register_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x78948ba9 vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x78c5a0f7 blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x78e4f6eb ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL vmlinux 0x7907f221 wm8994_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x792a8aa0 sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x792c1b47 usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x796b1413 bd_claim_by_disk
+EXPORT_SYMBOL_GPL vmlinux 0x798dd358 power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0x79a41cc5 armpmu_get_pmu_id
+EXPORT_SYMBOL_GPL vmlinux 0x79d06a5c ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x79e3bb0e perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0x79f4b3dc ata_host_init
+EXPORT_SYMBOL_GPL vmlinux 0x7a1639ed put_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x7a450b27 sdio_align_size
+EXPORT_SYMBOL_GPL vmlinux 0x7a4e22d4 crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x7a51f80a __lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0x7a58d08a register_posix_clock
+EXPORT_SYMBOL_GPL vmlinux 0x7a7d7be9 get_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0x7a8eabc5 platform_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x7b066a74 skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0x7b358feb tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0x7b9ca753 debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0x7beb2b54 rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x7c371197 rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0x7c6784ef ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0x7c79831c input_ff_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x7c8c3b47 put_device
+EXPORT_SYMBOL_GPL vmlinux 0x7cf0e624 __class_create
+EXPORT_SYMBOL_GPL vmlinux 0x7d1676ad unregister_mtd_user
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq
+EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values
+EXPORT_SYMBOL_GPL vmlinux 0x7db89a89 fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0x7dbf82a3 crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7e69922d dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL vmlinux 0x7e913d57 ata_sas_port_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x7ed7b217 platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7f1e5afd gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0x7f1f9dcc ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x7f69ea93 find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0x7f6debd3 inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7fabb710 debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0x7fd1027c rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0x7fd38778 armpmu_get_max_events
+EXPORT_SYMBOL_GPL vmlinux 0x7fdef84e pm_runtime_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x7fef6b11 ata_sff_irq_on
+EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x8011415f nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x80346556 __ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission
+EXPORT_SYMBOL_GPL vmlinux 0x80755d90 tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x80966d83 dm_unregister_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc
+EXPORT_SYMBOL_GPL vmlinux 0x81364e97 wm8350_gpio_config
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x81566868 usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0x81a084b3 tracepoint_iter_start
+EXPORT_SYMBOL_GPL vmlinux 0x81b1a0e3 part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0x81b2bcb3 wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x81bc1b4e otg_ulpi_create
+EXPORT_SYMBOL_GPL vmlinux 0x821a90b1 ata_host_activate
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x82380e39 get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0x8283b927 regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x82c3bea2 usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL vmlinux 0x82c681ae usb_anchor_empty
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x82e896e5 tracepoint_iter_stop
+EXPORT_SYMBOL_GPL vmlinux 0x82ed2d64 usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export
+EXPORT_SYMBOL_GPL vmlinux 0x831cdbb8 debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x832f805a ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0x836efce4 usb_store_new_id
+EXPORT_SYMBOL_GPL vmlinux 0x838a6780 usb_sg_wait
+EXPORT_SYMBOL_GPL vmlinux 0x839bdcf1 __module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x83af6077 usb_enable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x83b3f2c8 usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x83b5052a fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0x83c22f2e deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL vmlinux 0x83eec7a5 scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x83f710a9 tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0x8405d942 put_pid
+EXPORT_SYMBOL_GPL vmlinux 0x84146175 vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0x844c7650 uart_console_write
+EXPORT_SYMBOL_GPL vmlinux 0x844f708f usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x8456c24d input_ff_event
+EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x8498d961 fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x8498f761 dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0x84dfe887 wm8994_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x851be3d1 input_ff_upload
+EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag
+EXPORT_SYMBOL_GPL vmlinux 0x854f9887 ata_sff_wait_ready
+EXPORT_SYMBOL_GPL vmlinux 0x859abf26 i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x859c08e2 ata_scsi_simulate
+EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh
+EXPORT_SYMBOL_GPL vmlinux 0x85c6c9f2 ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x85d65bda adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0x85f4a7c3 debugfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x863d1bd6 ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0x868309a5 hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x869f87ef wm8350_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x86efea40 platform_device_register_data
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x873335ae init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0x873f50e2 disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x8785e2f4 ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x8789ff3d led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x87a08041 kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x87a3323f shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x87afbb3e md_new_event
+EXPORT_SYMBOL_GPL vmlinux 0x88099f51 sis_info133_for_sata
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x8816d52f crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0x88409429 vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0x885bae29 ata_link_next
+EXPORT_SYMBOL_GPL vmlinux 0x88a78a46 sdio_f0_writeb
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active
+EXPORT_SYMBOL_GPL vmlinux 0x89136ff4 ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL vmlinux 0x8923e63c crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x89600913 ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x89806910 rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x898d5921 pm_schedule_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x89c67e27 tty_prepare_flip_string_flags
+EXPORT_SYMBOL_GPL vmlinux 0x8a37bfbd ata_dev_next
+EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5 klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0x8a99a68e crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0x8aef308a ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x8afed182 ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0x8b1ddd35 ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0x8b314acd ata_port_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis
+EXPORT_SYMBOL_GPL vmlinux 0x8b8a9938 wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x8bfee002 generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0x8c78b3f4 usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL vmlinux 0x8ca65e30 pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0x8cda15ff regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0x8d340d06 user_match
+EXPORT_SYMBOL_GPL vmlinux 0x8d464817 ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL vmlinux 0x8d60e670 scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0x8d6807ec inotify_find_update_watch
+EXPORT_SYMBOL_GPL vmlinux 0x8d7156ca ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x8db53987 security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x8db799f4 ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0x8df0b56c dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0x8e7858c1 usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x8e9ad12b ata_bmdma_start
+EXPORT_SYMBOL_GPL vmlinux 0x8ea1c844 crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x8ef36dc9 dev_attr_sw_activity
+EXPORT_SYMBOL_GPL vmlinux 0x8f2f35dd ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x8f69a242 __timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8f93325d led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0x8f9ed81e use_mm
+EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8fad5525 user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x8fd48a67 ata_do_dev_read_id
+EXPORT_SYMBOL_GPL vmlinux 0x8ff7a7fa pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x9151bcc8 seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x9173c454 ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x9179d837 __scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0x91ab56d7 eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0x91c9fa42 sysdev_class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x91cef3df __inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0x91dda801 scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0x91df9648 sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0x9239945a page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0x924477bf pm_runtime_forbid
+EXPORT_SYMBOL_GPL vmlinux 0x9256b104 bus_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x926b9567 scsi_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x929877cd init_pmu
+EXPORT_SYMBOL_GPL vmlinux 0x929b296c ata_sas_slave_configure
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x93138f6d dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL vmlinux 0x932543ea ata_pci_device_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x93afbcab attribute_container_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x93b1f364 __rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x93c3a7e8 usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x93d5c3d7 sysfs_remove_files
+EXPORT_SYMBOL_GPL vmlinux 0x947a4f30 map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x947d771f device_find_child
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94f3a306 transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x956f21ea register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x958207cf klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0x95a164d0 hrtimer_start
+EXPORT_SYMBOL_GPL vmlinux 0x960562f9 rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x96375b36 ata_do_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x964718e7 get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0x964f08d2 usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x96c6f7f3 skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x96d0bbd7 regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x96d0c5bd tc35892_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x971fc2f2 root_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x972913f9 hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0x9744890e do_add_mount
+EXPORT_SYMBOL_GPL vmlinux 0x97592ca5 ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0x979685b5 rtnl_kill_links
+EXPORT_SYMBOL_GPL vmlinux 0x97fdb3d5 usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x985a95c2 skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0x98b16777 class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x98babb85 platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0x98c40d38 nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x990bef59 scsi_dh_activate
+EXPORT_SYMBOL_GPL vmlinux 0x991ed482 posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x993b4431 device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0x995b38b2 mtd_table_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on
+EXPORT_SYMBOL_GPL vmlinux 0x99c9b367 dm_kill_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x99f66b35 usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a6ca2e9 ata_sff_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x9a7d68fe crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x9aa27080 ata_sff_hsm_move
+EXPORT_SYMBOL_GPL vmlinux 0x9b3e7442 ata_sas_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x9b702502 each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x9b7873bc usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0x9b7f5c0a usb_disable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x9b843223 scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9bb5c5dd simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0x9bd2e1ff do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x9bd98b18 timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0x9bdf2b81 noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x9be2a9db regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x9c3a780b css_id
+EXPORT_SYMBOL_GPL vmlinux 0x9c665049 __get_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0x9c96bdb9 device_create_vargs
+EXPORT_SYMBOL_GPL vmlinux 0x9cafb69f queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9cc3415b ata_host_register
+EXPORT_SYMBOL_GPL vmlinux 0x9ce6a4e4 n_tty_inherit_ops
+EXPORT_SYMBOL_GPL vmlinux 0x9d5a41f8 ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x9d777bf6 rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x9dc5149a inotify_inode_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x9dd69e5e blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x9deca0ba debugfs_create_x64
+EXPORT_SYMBOL_GPL vmlinux 0x9df9a739 ata_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0x9e4c478b crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x9e5db49d crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0x9e93fc9c crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x9eb76035 blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain
+EXPORT_SYMBOL_GPL vmlinux 0x9f69fa99 skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x9fd68939 cpuidle_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x9fdf3027 class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa0aa7a2b __pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg
+EXPORT_SYMBOL_GPL vmlinux 0xa1c190e1 usb_set_device_state
+EXPORT_SYMBOL_GPL vmlinux 0xa1cf9f93 sdio_writeb_readb
+EXPORT_SYMBOL_GPL vmlinux 0xa1db0a8f hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0xa1fbf2a6 regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0xa2e1412d debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0xa2ea9027 fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0xa2f88e96 crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xa3199890 tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0xa36b02a0 dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xa3873cc9 crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xa390113e securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0xa39c4ba6 usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0xa39f63fe inotify_rm_wd
+EXPORT_SYMBOL_GPL vmlinux 0xa3bb337b blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0xa3f4a67b fib_rules_cleanup_ops
+EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa478df9c i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx
+EXPORT_SYMBOL_GPL vmlinux 0xa53cfa54 ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL vmlinux 0xa56fa799 ata_dev_disable
+EXPORT_SYMBOL_GPL vmlinux 0xa57afc74 ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xa5c33025 mm_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes
+EXPORT_SYMBOL_GPL vmlinux 0xa5dd6fae arm_pm_restart
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa67aa8eb dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0xa74c7a1d pci_find_ext_capability
+EXPORT_SYMBOL_GPL vmlinux 0xa74d9293 rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xa76249b9 tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0xa7847ef1 crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0xa7aa18a6 sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0xa800e17a dm_rh_get_state
+EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll
+EXPORT_SYMBOL_GPL vmlinux 0xa870c38a crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0xa87647b4 __crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa940c2fa devres_remove
+EXPORT_SYMBOL_GPL vmlinux 0xa954ffd6 crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0xa9ba0771 ata_sff_pause
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock
+EXPORT_SYMBOL_GPL vmlinux 0xaa9f7d7a user_update
+EXPORT_SYMBOL_GPL vmlinux 0xaab8c732 ata_slave_link_init
+EXPORT_SYMBOL_GPL vmlinux 0xaac4a17e crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xab5bed93 file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab6c6f27 tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xac5ab993 sata_scr_write
+EXPORT_SYMBOL_GPL vmlinux 0xac9b609d ata_dummy_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xacb72953 ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xacef401a sdio_claim_irq
+EXPORT_SYMBOL_GPL vmlinux 0xad0b4ecb hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0xad24c383 sdio_enable_func
+EXPORT_SYMBOL_GPL vmlinux 0xad29f70a tracepoint_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xad31a8c3 sdio_f0_readb
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad715ff6 debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0xad90eaa7 cfi_qry_present
+EXPORT_SYMBOL_GPL vmlinux 0xada49db8 sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xada9444d aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae600a89 kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xae964f08 xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0xaf1db2ea aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0xaf2100a2 ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xaf44c0ba register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0xaf4aad3c fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0xaf685d62 dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0xafa3cc8d __blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xafc4c49c regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0xb0230c40 __inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0xb04247e8 __dma_request_channel
+EXPORT_SYMBOL_GPL vmlinux 0xb054acaf pci_disable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work
+EXPORT_SYMBOL_GPL vmlinux 0xb0d7ae11 usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0xb0fdbf14 perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send
+EXPORT_SYMBOL_GPL vmlinux 0xb13348b0 dev_attr_em_message
+EXPORT_SYMBOL_GPL vmlinux 0xb14b9254 fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xb1505d35 shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0xb180e753 platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xb1947824 kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb20b0f4e __pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xb2176053 sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xb217fb2a ata_cable_80wire
+EXPORT_SYMBOL_GPL vmlinux 0xb2a5947f inotify_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xb36ed322 devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0xb3921afb adp5520_read
+EXPORT_SYMBOL_GPL vmlinux 0xb3e031a7 usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xb3fc8b58 seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0xb417a49b fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0xb44d131e regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0xb473e3e8 sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xb49726ca d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0xb49ff6fb inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0xb4d43c4a dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL vmlinux 0xb4e714ac sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected
+EXPORT_SYMBOL_GPL vmlinux 0xb4f3f21b dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL vmlinux 0xb5369197 leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xb5ab012b input_class
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb61791bf set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0xb6502063 ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec
+EXPORT_SYMBOL_GPL vmlinux 0xb65de6e4 debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string
+EXPORT_SYMBOL_GPL vmlinux 0xb703dfe7 ata_std_bios_param
+EXPORT_SYMBOL_GPL vmlinux 0xb70b87c0 srcu_init_notifier_head
+EXPORT_SYMBOL_GPL vmlinux 0xb70eecd9 ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0xb73951b4 generic_subsys_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb75c192c __pm_runtime_put
+EXPORT_SYMBOL_GPL vmlinux 0xb7e79540 dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0xb7ebc708 inet6_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0xb85da68d fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xb862a459 usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0xb886907c usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0xb887a599 bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb917b6d7 return_address
+EXPORT_SYMBOL_GPL vmlinux 0xb94d7f14 ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL vmlinux 0xb94f1cae pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0xb994a00c crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0xb9ac7d07 ata_bmdma_status
+EXPORT_SYMBOL_GPL vmlinux 0xb9d8d82a usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0xb9dd7107 ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xba688255 ata_base_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xbab43642 ip6_local_out
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbae75e50 ata_dummy_port_info
+EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks
+EXPORT_SYMBOL_GPL vmlinux 0xbb2371c2 platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0xbb79c4fb inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0xbb8ec0cc blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0xbb966435 devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xbb9a2c75 ktime_add_ns
+EXPORT_SYMBOL_GPL vmlinux 0xbbc3a5e8 cfi_qry_mode_off
+EXPORT_SYMBOL_GPL vmlinux 0xbbcb336b tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xbc0bdea1 sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL vmlinux 0xbc486b12 del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL vmlinux 0xbc5380be user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0xbc5ab5cc class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xbc6a0013 register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xbca03489 dm_rh_get_region_key
+EXPORT_SYMBOL_GPL vmlinux 0xbca0cab7 scsi_dh_set_params
+EXPORT_SYMBOL_GPL vmlinux 0xbcc7e959 scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0xbccbf113 apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0xbd25d185 sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbd5d8daf inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xbd9198d3 eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0xbdc814f6 inet_diag_register
+EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0xbddc2475 shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbdfb5497 scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime
+EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xbe3734b5 init_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xbe3b77eb regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0xbe40c185 debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0xbe539246 bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0xbe5f3409 crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0xbe6939f4 tracepoint_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0xbe748644 device_schedule_callback_owner
+EXPORT_SYMBOL_GPL vmlinux 0xbebc954a pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0xbedc62da schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0xbf4fc745 ata_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0xbfb9eb2a class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0xbfd74ddd tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0xc04a304b srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xc0b878eb rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc0bd5a75 mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time
+EXPORT_SYMBOL_GPL vmlinux 0xc0e3313b ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc1203ed9 scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0xc14311fb free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0xc14e6806 ata_eh_freeze_port
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc18195a9 perf_arch_fetch_caller_regs
+EXPORT_SYMBOL_GPL vmlinux 0xc185614d cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0xc1fc48b9 sata_link_resume
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc2357365 tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0xc28f2470 regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xc2960ad3 usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xc2b92ec4 fuse_request_send
+EXPORT_SYMBOL_GPL vmlinux 0xc2c79900 usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0xc2f1e0b7 trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0xc3033e6e ata_cable_unknown
+EXPORT_SYMBOL_GPL vmlinux 0xc328eede skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0xc33cefbb eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc3527505 schedule_hrtimeout
+EXPORT_SYMBOL_GPL vmlinux 0xc354293f ata_eh_qc_retry
+EXPORT_SYMBOL_GPL vmlinux 0xc3664a70 unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0xc3963e3d page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc3b4ce77 blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0xc3d423d4 __fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long
+EXPORT_SYMBOL_GPL vmlinux 0xc460e497 scsi_register_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0xc46bf457 inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string
+EXPORT_SYMBOL_GPL vmlinux 0xc4b28a9c dev_attr_em_message_type
+EXPORT_SYMBOL_GPL vmlinux 0xc4c5b916 register_mtd_parser
+EXPORT_SYMBOL_GPL vmlinux 0xc4e73ffe __inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0xc4fefc8d device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xc514a7a8 adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xc55c522c sysdev_class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xc59fb9b6 sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xc5b1d204 raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0xc5c6ce6e skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0xc5f671f4 __srcu_read_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc5f7558a usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0xc5fc5321 i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xc60a730b klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc611aefe dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL vmlinux 0xc685eb03 sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0xc6da0853 rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0xc705106d inotify_find_watch
+EXPORT_SYMBOL_GPL vmlinux 0xc76ab2e0 class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xc7f25388 ata_port_abort
+EXPORT_SYMBOL_GPL vmlinux 0xc853b147 ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xc8540062 sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0xc87dd28b platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0xc8956686 relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0xc8c0394d inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0xc8d2f45f page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource
+EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist
+EXPORT_SYMBOL_GPL vmlinux 0xc957fb00 usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0xc9b449a2 atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xc9e550f1 queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcb07271b regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0xcb0e4f24 ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xcbb9e4c0 ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xcbe42d11 ata_sas_port_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xcbea573d crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xcc060dd7 timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc5ab895 add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0xcc96fabd power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL vmlinux 0xcd009eba bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0xcd02854b usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xcd4578fa ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0xcd84ea8c simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0xcdab5b83 device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xce630b7a power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0xce77d702 fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0xce828c46 rtc_class_close
+EXPORT_SYMBOL_GPL vmlinux 0xcea44b96 raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0xcf127439 crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0xcf45e2ad rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xcf4a5e18 ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xcf5d86d2 wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback
+EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg
+EXPORT_SYMBOL_GPL vmlinux 0xd01d02dc usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0xd03829f1 disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL vmlinux 0xd053f91c unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xd079abb6 bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xd083e023 ipv6_dup_options
+EXPORT_SYMBOL_GPL vmlinux 0xd08e5ba6 blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd10ea458 __mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0xd12d99cc pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xd155cf8c wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xd1603e9c bsg_unregister_queue
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd174aa7a disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xd18d2df8 crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xd1a75f4d regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xd1c47b0b crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0xd1cd21a7 setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0xd208a48c dm_put
+EXPORT_SYMBOL_GPL vmlinux 0xd21a0690 user_describe
+EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd27b0e88 usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0xd2ec3b34 devres_add
+EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0xd3380446 dm_rh_region_context
+EXPORT_SYMBOL_GPL vmlinux 0xd33c4fca __wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0xd3607d61 dm_dispatch_request
+EXPORT_SYMBOL_GPL vmlinux 0xd395b50a usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0xd39b722c __class_register
+EXPORT_SYMBOL_GPL vmlinux 0xd41e835a srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xd44e54e5 raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xd4b68515 ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL vmlinux 0xd4ea86ff fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0xd52e7704 fuse_do_open
+EXPORT_SYMBOL_GPL vmlinux 0xd5c80b35 dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0xd5e4eeb2 __rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0xd5f75183 devres_find
+EXPORT_SYMBOL_GPL vmlinux 0xd69403ed get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0xd69d8cee pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xd6f98b91 relay_close
+EXPORT_SYMBOL_GPL vmlinux 0xd6ffd51e inet6_destroy_sock
+EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd74d76cd inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xd764c3de xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd788742d perf_trace_buf_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xd7a9715d dm_rh_flush
+EXPORT_SYMBOL_GPL vmlinux 0xd7de4717 rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xd7fec4ba relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0xd82022d0 add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0xd84bf18c ata_sas_port_init
+EXPORT_SYMBOL_GPL vmlinux 0xd84ea17d inotify_dentry_parent_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0xd89b888f usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xd8b96143 da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0xd8c34d9c __put_net
+EXPORT_SYMBOL_GPL vmlinux 0xd8ea3dee devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xd94617b1 regulator_get_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xd94c187d driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xd98bb745 inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xd9ab1c4a ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xd9bf66a7 kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0xd9d1e260 pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0xd9dfae04 led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd9e7b5db vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0xd9eef782 usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL vmlinux 0xdaa1dd75 register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option
+EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdba1f43d enable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xdba9fd5b power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0xdbd817a1 power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0xdc5068b7 ata_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0xdca1eac9 security_inode_setattr
+EXPORT_SYMBOL_GPL vmlinux 0xdcceee13 usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0xdccfab96 dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL vmlinux 0xdd477c41 ipv6_opt_accepted
+EXPORT_SYMBOL_GPL vmlinux 0xddde44d4 sata_pmp_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xdde26d35 platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0xddf0f029 ip6_sk_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xde1eab52 tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xde21a133 crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0xde293861 ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL vmlinux 0xde2b175f usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0xde2e8e7c __trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain
+EXPORT_SYMBOL_GPL vmlinux 0xde71d7a1 shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xde928608 __pci_complete_power_transition
+EXPORT_SYMBOL_GPL vmlinux 0xdea8d924 mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0xdeab6305 invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0xdee4f23b crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xdf028a2e ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0xdf04cd1c dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL vmlinux 0xdf1317fc sdio_writel
+EXPORT_SYMBOL_GPL vmlinux 0xdf2a1043 tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0xdf3d5618 parse_mtd_partitions
+EXPORT_SYMBOL_GPL vmlinux 0xdf48e921 ata_sff_softreset
+EXPORT_SYMBOL_GPL vmlinux 0xdf7f91df transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0xdf8409ef ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0xdfc402c2 scsi_dh_detach
+EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name
+EXPORT_SYMBOL_GPL vmlinux 0xe01e3cd1 ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0xe05ef2b1 usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0xe08b4bfb handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xe121f476 elv_register
+EXPORT_SYMBOL_GPL vmlinux 0xe1543909 sysfs_notify_dirent
+EXPORT_SYMBOL_GPL vmlinux 0xe162c6fa dm_rh_start_recovery
+EXPORT_SYMBOL_GPL vmlinux 0xe16366b7 __pm_runtime_disable
+EXPORT_SYMBOL_GPL vmlinux 0xe1ad987a scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0xe1bf4e87 kmem_cache_name
+EXPORT_SYMBOL_GPL vmlinux 0xe2054c00 vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0xe20d2695 __atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xe22f61b4 get_mtd_device_nm
+EXPORT_SYMBOL_GPL vmlinux 0xe33c52b8 dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0xe3434929 alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xe3449112 wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xe39040dd tc35892_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xe3fb2cb9 inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0xe3fcb791 anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0xe433c0c0 blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0xe43db84d crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0xe48866ba find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register
+EXPORT_SYMBOL_GPL vmlinux 0xe4c32185 __mtd_next_device
+EXPORT_SYMBOL_GPL vmlinux 0xe4e7d556 blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0xe4e833a6 scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0xe527ceca kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0xe531329f sdio_writew
+EXPORT_SYMBOL_GPL vmlinux 0xe585995a relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0xe606dea1 driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport
+EXPORT_SYMBOL_GPL vmlinux 0xe626766e sysfs_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xe649803f cfi_cmdset_0001
+EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe65e50b0 driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe6d946f3 input_ff_create
+EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe70aa01f usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0xe72bc5e8 filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0xe738a885 __wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0xe7390d19 crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0xe744264d usb_poison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xe76efd61 pci_find_next_capability
+EXPORT_SYMBOL_GPL vmlinux 0xe78ecdbd cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xe7a33233 crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0xe7a400a9 dm_region_hash_create
+EXPORT_SYMBOL_GPL vmlinux 0xe7d8239b proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe87d2454 device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xe8bbbcb9 perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0xe8e678f5 inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0xe917e733 ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe9454ea0 crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe9c73275 aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xe9f9d06d class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0xea01e915 class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea2f7923 rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xea5fa5f5 tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0xeab64a01 wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xeae25a1d usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeaef7d40 free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xeaf9d5e6 register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0xeb287d7d pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0xeb2f9e91 device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0xeb35f7b1 deregister_mtd_parser
+EXPORT_SYMBOL_GPL vmlinux 0xeb667fff ata_sff_data_xfer
+EXPORT_SYMBOL_GPL vmlinux 0xeb760ec2 user_read
+EXPORT_SYMBOL_GPL vmlinux 0xeb770d4d ring_buffer_record_enable
+EXPORT_SYMBOL_GPL vmlinux 0xebbcc46a inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del
+EXPORT_SYMBOL_GPL vmlinux 0xec2ca3cf kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0xec30180c pci_bus_resource_n
+EXPORT_SYMBOL_GPL vmlinux 0xec56ea67 ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0xec656d24 sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0xec6a114e device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xec9da805 scsi_dh_attach
+EXPORT_SYMBOL_GPL vmlinux 0xec9f5142 nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0xecc44b6e crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0xed5058b7 blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xed593a3d ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xed67c83a tty_find_polling_driver
+EXPORT_SYMBOL_GPL vmlinux 0xed8f33ef inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0xeda63db3 scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0xedf209c8 register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0xee13c6d3 scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0xee315eb0 atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xee6446bd usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xee7c147a ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xeeb5b93b blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0xeebadca8 udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xef01a20c register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xef0dcefa crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xef687a68 tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xefa52750 kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xefe21106 snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0xefeb3f6f cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0xf01bc565 dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xf02955ea driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xf03246e4 securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0xf03d2b89 generic_fh_to_parent
+EXPORT_SYMBOL_GPL vmlinux 0xf040d825 trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0xf0f438cb debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0xf141449c driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xf155c245 __css_put
+EXPORT_SYMBOL_GPL vmlinux 0xf15931ee sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0xf17479bc invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0xf17802d8 fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf18de892 blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xf1c7ea87 ata_sff_postreset
+EXPORT_SYMBOL_GPL vmlinux 0xf22696fb tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0xf25bb6bd dma_release_channel
+EXPORT_SYMBOL_GPL vmlinux 0xf2b3b0c7 vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0xf2cb3676 transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options
+EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0xf33b2741 drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf37984bd unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf44e2adb ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xf4543c85 sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0xf4818717 usb_hc_died
+EXPORT_SYMBOL_GPL vmlinux 0xf48adc00 elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf4eb0bb5 pm_generic_resume
+EXPORT_SYMBOL_GPL vmlinux 0xf51bcff1 scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf574b7c9 rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0xf57ccc0a css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf5e9370a crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0xf6079679 __ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xf65fcebd __module_address
+EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xf71d2337 ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0xf76866a6 sysdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf778fb17 ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0xf77a2281 ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xf77aaa11 ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0xf782f640 wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0xf783ace3 del_mtd_device
+EXPORT_SYMBOL_GPL vmlinux 0xf783fca4 bus_register
+EXPORT_SYMBOL_GPL vmlinux 0xf78a39b4 ata_pci_remove_one
+EXPORT_SYMBOL_GPL vmlinux 0xf7ec206b usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL vmlinux 0xf817eacc sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0xf82a6166 rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf88be38b pm_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xf8c27523 debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0xf8e4a743 __srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xf8ecdb9a mmput
+EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit
+EXPORT_SYMBOL_GPL vmlinux 0xf923ad80 __pm_runtime_get
+EXPORT_SYMBOL_GPL vmlinux 0xf93eb318 sdio_writeb
+EXPORT_SYMBOL_GPL vmlinux 0xf9454442 dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0xf99f3035 regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xf9d046f0 klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0xf9f7e1ab devres_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register
+EXPORT_SYMBOL_GPL vmlinux 0xfa1a4556 dm_rh_get_region_size
+EXPORT_SYMBOL_GPL vmlinux 0xfa421629 pci_disable_rom
+EXPORT_SYMBOL_GPL vmlinux 0xfa5fc3e8 platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xfaa83ca5 crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xfad38b98 led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0xfaf4f027 crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb4c6ca5 ref_module
+EXPORT_SYMBOL_GPL vmlinux 0xfb5e087f device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xfb7a7c26 usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0xfbbdb6f9 __clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfc1f1fa4 pci_sriov_migration
+EXPORT_SYMBOL_GPL vmlinux 0xfc2b519e fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0xfc71273f usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xfc8748cd transport_configure_device
+EXPORT_SYMBOL_GPL vmlinux 0xfc8e13e8 inet6_csk_xmit
+EXPORT_SYMBOL_GPL vmlinux 0xfc9f13d8 bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xfca94b45 gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0xfcaab8a5 tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0xfcfbffc6 register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xfd70947f pm_request_resume
+EXPORT_SYMBOL_GPL vmlinux 0xfd770f4d simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0xfd9b1a31 attribute_container_register
+EXPORT_SYMBOL_GPL vmlinux 0xfdd1bef8 ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0xfdd9ae5d ata_std_prereset
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfdf16f9f ata_sff_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0xfdfc7acc platform_get_resource_byname
+EXPORT_SYMBOL_GPL vmlinux 0xfe60d056 disk_map_sector_rcu
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xff53fec5 inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback
+EXPORT_SYMBOL_GPL vmlinux 0xff5c03b8 register_mtd_blktrans
+EXPORT_SYMBOL_GPL vmlinux 0xffa30eb8 usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL vmlinux 0xffa3451f platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffb90a76 sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL vmlinux 0xfffe1838 regulator_is_enabled
diff --git a/debian.master/abi/2.6.35-2.3/armel/versatile.modules b/debian.master/abi/2.6.35-2.3/armel/versatile.modules
new file mode 100644
index 00000000000..7fd5e76b9f8
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/armel/versatile.modules
@@ -0,0 +1,1754 @@
+3c359
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+6pack
+8021q
+8139cp
+8139too
+8250
+8250_pci
+8390
+88pm860x_bl
+88pm860x_onkey
+9p
+9pnet
+9pnet_rdma
+a100u2w
+aacraid
+ab3100
+ab3100-otp
+abyss
+ac97_bus
+acecad
+acenic
+act_gact
+act_ipt
+act_mirred
+act_nat
+act_pedit
+act_police
+act_simple
+act_skbedit
+ad525x_dpot
+ad525x_dpot-i2c
+ad714x
+ad714x-i2c
+adfs
+adm8211
+adp5520_bl
+adp5520-gpio
+adp5520-keys
+adp5588-gpio
+adp5588-keys
+adp8860_bl
+adutux
+aes_generic
+af_802154
+af9013
+affs
+af_key
+af-rxrpc
+ah4
+ah6
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aiptek
+aircable
+alphatrack
+altera_jtaguart
+altera_ps2
+altera_uart
+amd8111e
+ansi_cprng
+anubis
+aoe
+apm-emulation
+apm_power
+appledisplay
+appletouch
+applicom
+ar7part
+ar9170usb
+arc4
+arcmsr
+arcnet
+arc-rawmode
+arc-rimi
+ark3116
+arkfb
+arptable_filter
+arp_tables
+arpt_mangle
+asix
+asus_oled
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at76c50x-usb
+atbm8830
+ath
+ath5k
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atmel
+atmel_pci
+aty128fb
+atyfb
+aufs
+authenc
+auth_rpcgss
+autofs
+autofs4
+ax25
+ax88796
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+batman-adv
+baycom_ser_fdx
+baycom_ser_hdx
+bcm3510
+bcm5974
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfs
+binfmt_aout
+binfmt_misc
+block2mtd
+blowfish
+bnx2
+bnx2x
+bonding
+bpqether
+bq24022
+bq27x00_battery
+bridge
+broadsheetfb
+bsd_comp
+btrfs
+budget
+budget-ci
+budget-core
+c67x00
+cachefiles
+caif
+caif_serial
+caif_socket
+camellia
+can
+can-bcm
+can-dev
+can-raw
+capmode
+carminefb
+cassini
+cast5
+cast6
+catc
+cb710
+cb710-mmc
+cciss
+ccm
+cdc-acm
+cdc_eem
+cdc_ether
+cdc-phonet
+cdc_subset
+cdc-wdm
+ceph
+cfg80211
+ch
+ch341
+ch7006
+chnl_net
+cifs
+cirrusfb
+cls_basic
+cls_flow
+cls_fw
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+coda
+com20020
+com20020-pci
+com90io
+com90xx
+configfs
+core
+cp210x
+cpqarray
+cramfs
+crc32c
+crc7
+crc-ccitt
+crc-itu-t
+cryptd
+cryptoloop
+crypto_null
+crystalhd
+cs5535-gpio
+ctr
+cts
+cuse
+cx22700
+cx22702
+cx24113
+cx24116
+cx24123
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cyber2000fb
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_m8
+cytherm
+da9030_battery
+da903x
+da903x_bl
+dabusb
+DAC960
+dc395x
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dccp_probe
+de2104x
+de4x5
+decnet
+deflate
+defxx
+des_generic
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dibx000_common
+digi_acceleport
+display
+dlm
+dm1105
+dm9601
+dm-crypt
+dmfe
+dm-queue-length
+dm-raid45
+dm-service-time
+dmx3191d
+dm-zero
+dnet
+dn_rtmsg
+dpt_i2o
+drm
+drm_kms_helper
+ds1682
+ds1wm
+ds2482
+ds2490
+ds2760_battery
+ds2782_battery
+ds3000
+dummy
+dv1394
+dvb-core
+dvb-pll
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dw2102
+dvb-usb-friio
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-m920x
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+e100
+e1000
+e1000e
+earth-pt1
+ebt_802_3
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_ulog
+ebt_vlan
+echo
+econet
+eeprom
+eeprom_93cx6
+efs
+ehci-hcd
+em_cmp
+emi26
+emi62
+em_meta
+em_nbyte
+empeg
+ems_pci
+ems_usb
+em_text
+em_u32
+enclosure
+enic
+epca
+epic100
+eql
+esp4
+esp6
+et131x
+eth1394
+ethoc
+evbug
+exportfs
+fat
+faulty
+fb_ddc
+fb_sys_fops
+fcoe
+fcrypt
+fdomain
+fealnx
+ff-memless
+firedtv
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+forcedeth
+freevxfs
+fscache
+ftdi-elan
+ftdi_sio
+funsoft
+g450_pll
+garmin_gps
+garp
+gcm
+generic_bl
+gf128mul
+gfs2
+ghash-generic
+gl620a
+gluebi
+gpio_keys
+gpio_mouse
+gpio_vbus
+gtco
+hamachi
+hdlcdrv
+hfs
+hfsplus
+hid
+hid-3m-pct
+hid-a4tech
+hid-apple
+hid-belkin
+hid-cando
+hid-cherry
+hid-chicony
+hid-cypress
+hid-drff
+hid-egalax
+hid-ezkey
+hid-gaff
+hid-gyration
+hid-kensington
+hid-kye
+hid-logitech
+hid-microsoft
+hid-monterey
+hid-mosart
+hid-ntrig
+hid-ortek
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-prodikeys
+hid-quanta
+hid-roccat
+hid-roccat-kone
+hid-samsung
+hid-sjoy
+hid-sony
+hid-stantum
+hid-sunplus
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-zpff
+hid-zydacron
+hifn_795x
+hopper
+hostap
+hostap_pci
+hostap_plx
+hp100
+hp4x
+hpfs
+hpilo
+hpsa
+hptiop
+hso
+htc-pasic3
+hwa-hc
+hwa-rc
+i1480-dfu-usb
+i1480-est
+i1480u-wlp
+i2400m
+i2400m-sdio
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-algo-pcf
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd8111
+i2c-designware
+i2c-dev
+i2c-gpio
+i2c-i801
+i2c-isch
+i2c-matroxfb
+i2c-nforce2
+i2c-ocores
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-versatile
+i2c-via
+i2c-viapro
+i2c-xiic
+i2o_block
+i2o_bus
+i2o_config
+i2o_core
+i2o_proc
+i2o_scsi
+ib_addr
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_mad
+ib_mthca
+ib_sa
+ib_srp
+ib_ucm
+ib_umad
+ib_uverbs
+ics932s401
+idmouse
+ieee1394
+ieee802154
+ifb
+igb
+igbvf
+iio-trig-gpio
+iio-trig-periodic-rtc
+imon
+industrialio
+inftl
+initio
+input-polldev
+int51x1
+intel_vr_nor
+ioc4
+io_edgeport
+io_ti
+iowarrior
+ip2
+ip6_queue
+ip6table_filter
+ip6table_mangle
+ip6table_raw
+ip6_tables
+ip6table_security
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_LOG
+ip6t_mh
+ip6t_REJECT
+ip6t_rt
+ip6_tunnel
+ipaq
+ipcomp
+ipcomp6
+ipg
+ip_gre
+ipheth
+ipip
+ip_queue
+ips
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+ip_tables
+iptable_security
+ipt_addrtype
+ipt_ah
+ipt_CLUSTERIP
+ipt_ecn
+ipt_ECN
+ipt_LOG
+ipt_MASQUERADE
+ipt_NETMAP
+ipt_REDIRECT
+ipt_REJECT
+ipt_ULOG
+ip_vs
+ip_vs_dh
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_nq
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ipw
+ipw2100
+ipw2200
+ipx
+ir-common
+ir-core
+ir-jvc-decoder
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-sony-decoder
+ir-usb
+iscsi_tcp
+iscsi_trgt
+isight_firmware
+isl29003
+isl6421
+isl6423
+isofs
+isp116x-hcd
+isp1760
+istallion
+it8761e_gpio
+itd1000
+iuu_phoenix
+iw_c2
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwlagn
+iwlcore
+iwmc3200top
+iwmc3200wifi
+ixgb
+ixgbe
+ixj
+jffs2
+jfs
+jmb38x_ms
+jme
+jsm
+kafs
+kaweth
+kbtab
+keyspan
+keyspan_pda
+keyspan_remote
+khazad
+kl5kusb105
+kobil_sct
+ks8842
+ks8851_mll
+ksz884x
+kvaser_pci
+kyrofb
+l2tp_core
+l2tp_debugfs
+l2tp_ppp
+l64781
+lanstreamer
+lcd
+ldusb
+led-class
+leds-88pm860x
+leds-adp5520
+leds-bd2802
+leds-da903x
+leds-gpio
+leds-lp3944
+leds-lt3593
+leds-pca9532
+leds-pca955x
+leds-regulator
+leds-wm831x-status
+leds-wm8350
+ledtrig-backlight
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-timer
+legousbtower
+lgdt3305
+lgdt330x
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libcrc32c
+libertas
+libertas_sdio
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libsas
+libsrp
+line6usb
+linear
+lirc_atiusb
+lirc_bt829
+lirc_dev
+lirc_ene0100
+lirc_i2c
+lirc_igorplugusb
+lirc_imon
+lirc_it87
+lirc_ite8709
+lirc_mceusb
+lirc_sasem
+lirc_serial
+lirc_sir
+lirc_streamzap
+lirc_ttusbir
+lm8323
+lnbp21
+lockd
+lp3971
+lpc_sch
+lpddr_cmds
+lpfc
+lrw
+lzo
+lzo_compress
+mac80211
+mac80211_hwsim
+macmodes
+macvlan
+mantis
+mantis_core
+matrix_keypad
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_DAC1064
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+matroxfb_Ti3026
+matrox_w1
+max1363
+max1586
+max17040_battery
+max2165
+max6875
+max7300
+max730x
+max732x
+max7359_keypad
+max8649
+max8660
+max8925_bl
+max8925_onkey
+max8925_power
+max8925-regulator
+mb862xxfb
+mb862xxfb_accel
+mb86a16
+mc44s803
+mcs7830
+mct_u232
+md4
+mdc800
+mdio
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+memrar
+memstick
+metronomefb
+mga
+mg_disk
+michael_mic
+micrel
+microtek
+minix
+mkiss
+mlx4_core
+mlx4_en
+mlx4_ib
+mos7720
+mos7840
+moto_modem
+moxa
+mpt2sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+msdos
+mspro_block
+mt2060
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mtd_nandecctest
+mtd_oobtest
+mtdoops
+mtd_pagetest
+mtd_readtest
+mtd_speedtest
+mtd_stresstest
+mtd_subpagetest
+mtd_torturetest
+multipath
+mvsas
+mwl8k
+mxl5005s
+mxl5007t
+mxser
+myri10ge
+natsemi
+navman
+nbd
+ncpfs
+ne2k-pci
+neofb
+net1080
+netconsole
+netrom
+netxen_nic
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_ipv4
+nf_conntrack_ipv6
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_proto_dccp
+nf_conntrack_proto_gre
+nf_conntrack_proto_sctp
+nf_conntrack_proto_udplite
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_proto_dccp
+nf_nat_proto_gre
+nf_nat_proto_sctp
+nf_nat_proto_udplite
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nfnetlink
+nfnetlink_log
+nfnetlink_queue
+nfs
+nfs_acl
+nfsd
+nf_tproxy_core
+ngene
+n_hdlc
+nilfs2
+niu
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp437
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nop-usb-xceiv
+nouveau
+nozomi
+ns83820
+ntfs
+nvidiafb
+nvram
+nxt200x
+nxt6000
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stackglue
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ohci1394
+ohci-hcd
+olympic
+omfs
+omninet
+opencores-kbd
+oprofile
+opticon
+option
+orinoco
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+osst
+oti6858
+output
+oxu210hp-hcd
+p54common
+p54pci
+p54usb
+p8023
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cs5520
+pata_cs5530
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pdc2027x
+pata_pdc202xx_old
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sc1200
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sl82c105
+pata_triflex
+pata_via
+pca953x
+pcbc
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf857x
+pcilynx
+pcips2
+pci-stub
+pcnet32
+pda_power
+pegasus
+phantom
+phison
+phonedev
+phonet
+pismo
+pktgen
+pl2303
+platform_lcd
+plusb
+pluto2
+plx_pci
+pm2fb
+pm3fb
+pm8001
+pmc551
+pmcraid
+pn_pep
+pohmelfs
+powermate
+ppp_async
+ppp_deflate
+ppp_mppe
+pppoe
+pppox
+ppp_synctty
+pps_core
+pps-ldisc
+prism2_usb
+prism54
+qcaux
+qcserial
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qnx4
+qt1010
+quatech_usb2
+quota_tree
+quota_v1
+quota_v2
+r128
+r8169
+r8187se
+r8192e_pci
+r8192s_usb
+r8192u_usb
+r8a66597-hcd
+radeonfb
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid6test
+raid_class
+ramoops
+ramzswap
+rar_register
+raw
+raw1394
+rc-adstech-dvb-t-pci
+rc-apac-viewcomp
+rc-asus-pc39
+rc-ati-tv-wonder-hd-600
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avertv-303
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-empty
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv2
+rc-encore-enltv-fm53
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge-new
+rc-imon-mce
+rc-imon-pad
+rc-iodata-bctv7e
+rc-kaiomy
+rc-kworld-315u
+rc-kworld-plus-tv-analog
+rc-manli
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc5-hauppauge-new
+rc-rc5-tv
+rc-real-audio-220-32-keys
+rc-tbs-nec
+rc-terratec-cinergy-xs
+rc-tevii-nec
+rc-tt-1500
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-winfast
+rc-winfast-usbii-deluxe
+rdc321x-gpio
+rdc321x-southbridge
+rdma_cm
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+reiserfs
+rfc1051
+rfc1201
+ring_sw
+rio500
+riscom8
+rivafb
+rmd128
+rmd160
+rmd256
+rmd320
+rndis_host
+rndis_wlan
+rocket
+romfs
+rose
+rotary_encoder
+rpcsec_gss_krb5
+rrunner
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800pci
+rt2800usb
+rt2870sta
+rt2x00lib
+rt2x00pci
+rt2x00usb
+rt61pci
+rt73usb
+rtc-ab3100
+rtc-bq32k
+rtc-bq4802
+rtc-ds1286
+rtc-ds1307
+rtc-ds1374
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1742
+rtc-fm3130
+rtc-isl1208
+rtc-m41t80
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max8925
+rtc-msm6242
+rtc-pcf50633
+rtc-pcf8563
+rtc-pcf8583
+rtc-rp5c01
+rtc-rs5c372
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-stk17ta8
+rtc-test
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtl8150
+rtl8180
+rtl8187
+rxkad
+s2io
+s3fb
+s5h1411
+s5h1420
+saa7146
+safe_serial
+salsa20_generic
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savage
+sbp2
+sc92031
+sch_cbq
+sch_drr
+sch_dsmark
+sch_gpio
+sch_gred
+sch_hfsc
+sch_htb
+sch_ingress
+sch_multiq
+sch_netem
+sch_prio
+sch_red
+sch_sfq
+sch_tbf
+sch_teql
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_tgt
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_srp
+scsi_wait_scan
+sctp
+sctp_probe
+sdhci
+sdhci-pci
+sdhci-pltfm
+sdio_uart
+seed
+sep_driver
+seqiv
+serio_raw
+sermouse
+serpent
+serport
+serqt_usb2
+ses
+sfc
+sha1_generic
+sha256_generic
+sha512_generic
+si21xx
+siemens_mpi
+sierra
+sierra_net
+sis190
+sis900
+sisfb
+sisusbvga
+sit
+sja1000
+sja1000_platform
+skfp
+skge
+sky2
+sl811-hcd
+slip
+sm501
+sm501fb
+sm7xx
+smbfs
+smc911x
+smsc75xx
+smsc911x
+smsc9420
+smsc95xx
+smsdvb
+smsmdtv
+smssdio
+smsusb
+snd
+snd-aaci
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4xxx-adda
+snd-als300
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-cs5535audio
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1x
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-atihdmi
+snd-hda-codec-ca0110
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-idt
+snd-hda-codec-intelhdmi
+snd-hda-codec-nvhdmi
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hifier
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel8x0
+snd-intel8x0m
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mona
+snd-mpu401-uart
+snd-nm256
+snd-opl3-lib
+snd-oxygen
+snd-oxygen-lib
+snd-page-alloc
+snd-pcm
+snd-pcxhr
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-soc-ad193x
+snd-soc-ad73311
+snd-soc-ads117x
+snd-soc-ak4535
+snd-soc-ak4642
+snd-soc-ak4671
+snd-soc-core
+snd-soc-cs4270
+snd-soc-da7210
+snd-soc-l3
+snd-soc-max9877
+snd-soc-pcm3008
+snd-soc-spdif
+snd-soc-ssm2602
+snd-soc-tlv320aic23
+snd-soc-tlv320aic3x
+snd-soc-tlv320dac33
+snd-soc-tpa6130a2
+snd-soc-twl4030
+snd-soc-twl6040
+snd-soc-uda134x
+snd-soc-uda1380
+snd-soc-wm2000
+snd-soc-wm8350
+snd-soc-wm8400
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8727
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8776
+snd-soc-wm8900
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8940
+snd-soc-wm8955
+snd-soc-wm8960
+snd-soc-wm8961
+snd-soc-wm8971
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8988
+snd-soc-wm8990
+snd-soc-wm8993
+snd-soc-wm8994
+snd-soc-wm9081
+snd-soc-wm9090
+snd-soc-wm-hubs
+snd-sonicvibes
+snd-timer
+snd-trident
+snd-usb-audio
+snd-usb-caiaq
+snd-usbmidi-lib
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virtuoso
+snd-vx222
+snd-vx-lib
+snd-ymfpci
+soundcore
+sparse-keymap
+spcp8x5
+specialix
+squashfs
+ssb
+ssfdc
+sstfb
+st
+stallion
+starfire
+stb0899
+stb6000
+stb6100
+st_drv
+stex
+stowaway
+stp
+stv0288
+stv0297
+stv0299
+stv0900
+stv090x
+stv6110
+stv6110x
+sundance
+sunhme
+sunrpc
+svcrdma
+svgalib
+sx8
+symbolserial
+synaptics_i2c
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+tca6416-keypad
+tcp_probe
+tcrypt
+tda10023
+tda1004x
+tda10086
+tda18271
+tda8083
+tda826x
+tda827x
+tda8290
+tda9887
+tdfx
+tdfxfb
+tea
+tea5761
+tea5767
+tehuti
+test_power
+tg3
+tgr192
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timb_dma
+timberdale
+timbuart
+timeriomem-rng
+ti_usb_3410_5052
+tlan
+tmiofb
+tms380tr
+tmscsim
+tmspci
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+trancevibrator
+tranzport
+tridentfb
+ts_bm
+ts_fsm
+ts_kmp
+tsl2550
+tsl2563
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+tulip
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+twl4030-gpio
+twl4030_keypad
+twl4030-pwrbutton
+twl4030-usb
+twl4030-vibra
+twofish
+twofish_common
+typhoon
+u132-hcd
+ubi
+ubifs
+ucb1400_core
+udf
+udlfb
+ufs
+uhci-hcd
+uinput
+uio
+uio_aec
+uio_cif
+uio_netx
+uio_pci_generic
+uio_pdrv
+uio_pdrv_genirq
+uio_sercos3
+uli526x
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-sddr09
+ums-sddr55
+ums-usbat
+usb8xxx
+usb_debug
+usbhid
+usbip
+usbip_common_mod
+usblcd
+usbled
+usblp
+usbmon
+usbnet
+usbserial
+usbsevseg
+usb-storage
+usbtest
+usbtmc
+usb_wwan
+userspace-consumer
+uvesafb
+uwb
+vcan
+ves1820
+ves1x93
+veth
+vfat
+vgastate
+vhci-hcd
+via
+viafb
+via-rhine
+via-sdmmc
+via-velocity
+video1394
+virtual
+visor
+vivopay-serial
+vmac
+vme
+vme_user
+vme_vmivme7805
+vmwgfx
+vmxnet3
+vt8623fb
+vxge
+w1_bq27000
+w1_ds2431
+w1_ds2433
+w1_ds2760
+w1-gpio
+w1_smem
+w1_therm
+w35und
+wacom
+whci
+whci-hcd
+whc-rc
+whiteheat
+wimax
+winbond-840
+wire
+wl1251
+wl1251_sdio
+wlp
+wm831x_backup
+wm831x_bl
+wm831x-dcdc
+wm831x-gpio
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x_power
+wm8350-gpiolib
+wm8350_power
+wm8350-regulator
+wm8400-core
+wm8400-regulator
+wm8994-gpio
+wm8994-regulator
+wp512
+wusb-cbaf
+wusbcore
+wusb-wa
+xc5000
+xcbc
+xfrm4_mode_beet
+xfrm4_mode_transport
+xfrm4_mode_tunnel
+xfrm4_tunnel
+xfrm6_mode_beet
+xfrm6_mode_ro
+xfrm6_mode_transport
+xfrm6_mode_tunnel
+xfrm6_tunnel
+xfrm_ipcomp
+xfrm_user
+xfs
+xgifb
+xhci-hcd
+xor
+xprtrdma
+x_tables
+xt_CLASSIFY
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlimit
+xt_connmark
+xt_CONNSECMARK
+xt_conntrack
+xt_CT
+xt_dccp
+xt_dscp
+xt_DSCP
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_HL
+xt_iprange
+xt_LED
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_NFLOG
+xt_NFQUEUE
+xt_NOTRACK
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_RATEEST
+xt_realm
+xt_recent
+xts
+xt_sctp
+xt_SECMARK
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_TCPMSS
+xt_tcpudp
+xt_TEE
+xt_time
+xt_TPROXY
+xt_TRACE
+xt_u32
+xvmalloc
+yam
+yealink
+yellowfin
+zaurus
+zd1201
+zd1211rw
+zio
+zl10039
+zl10353
+zlib
+zlib_deflate
diff --git a/debian.master/abi/2.6.35-2.3/i386/generic b/debian.master/abi/2.6.35-2.3/i386/generic
new file mode 100644
index 00000000000..dfd80a30045
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/i386/generic
@@ -0,0 +1,11210 @@
+EXPORT_SYMBOL arch/x86/kernel/scx200 0x254e5667 scx200_gpio_base
+EXPORT_SYMBOL arch/x86/kernel/scx200 0x35a3c008 scx200_gpio_configure
+EXPORT_SYMBOL arch/x86/kernel/scx200 0x8cfa375c scx200_gpio_shadow
+EXPORT_SYMBOL arch/x86/kernel/scx200 0x907665bd scx200_cb_base
+EXPORT_SYMBOL arch/x86/kvm/kvm 0xa2ba9a70 kvm_read_guest_atomic
+EXPORT_SYMBOL arch/x86/kvm/kvm 0xbe82e360 kvm_cpu_has_pending_timer
+EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble
+EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle
+EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k
+EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks
+EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister
+EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register
+EXPORT_SYMBOL drivers/acpi/video 0x99ab66b6 acpi_video_get_edid
+EXPORT_SYMBOL drivers/atm/suni 0x1c39c381 suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0xbc8a9c92 uPD98402_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x0adbf135 pi_release
+EXPORT_SYMBOL drivers/block/paride/paride 0x357ec1be pi_write_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0x63f99550 pi_schedule_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x6b5705ea pi_do_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x7c340551 pi_write_block
+EXPORT_SYMBOL drivers/block/paride/paride 0x9a8bf156 paride_register
+EXPORT_SYMBOL drivers/block/paride/paride 0xbb1e9a8a pi_connect
+EXPORT_SYMBOL drivers/block/paride/paride 0xbbfe84cb paride_unregister
+EXPORT_SYMBOL drivers/block/paride/paride 0xcdf025d3 pi_disconnect
+EXPORT_SYMBOL drivers/block/paride/paride 0xd06448a4 pi_read_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0xdc607b82 pi_read_block
+EXPORT_SYMBOL drivers/block/paride/paride 0xfff2fe5b pi_init
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x0202f60f agp_generic_free_gatt_table
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x161c1936 agp_generic_insert_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x16917ac7 agp_generic_free_by_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x18dec40a agp_alloc_page_array
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x230e0a58 agp_allocate_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x2731b185 agp_generic_alloc_by_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x30226ddf agp_device_command
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x3d816fdd agp_create_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x40ca8f26 agp_collect_device_status
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x40eb2069 agp_free_page_array
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x41be1b0a agp_generic_alloc_pages
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x56e6895c agp_copy_info
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x58237f5d agp_find_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x5f94b838 agp_generic_alloc_page
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x6c708780 agp_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x86f5319e agp_generic_enable
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xa94e8450 agp_generic_create_gatt_table
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xaae00ea4 agp_generic_type_to_mask_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb028dd72 get_agp_version
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb04ea8f0 agp_rebind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb0784ac7 agp_generic_alloc_user
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb3826341 agp_generic_destroy_pages
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc03aa23d agp_generic_mask_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc089e274 agp_alloc_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc0ad9f84 agp_bind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc17f973d agp_unbind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2464aee agp_put_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xcd9e4f09 agp_generic_remove_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd5e28e4d agp_free_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xdf750aea agp_flush_chipset
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe05812ed agp3_generic_tlbflush
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe52a5b1d agp_backend_release
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xf25ee8b8 agp_generic_destroy_page
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xf736c9fe agp_enable
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xfd65dfde agp_backend_acquire
+EXPORT_SYMBOL drivers/char/agp/intel-agp 0x7b9a6116 intel_agp_enabled
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x05f7d394 ipmi_get_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x062db02e ipmi_register_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x071cd921 ipmi_unregister_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0ddf8bd1 ipmi_set_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x152ad91f ipmi_smi_add_proc_entry
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x165b325f ipmi_set_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1e999177 ipmi_register_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x31bf9a11 ipmi_set_gets_events
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3a3575f1 ipmi_free_recv_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40b27d77 ipmi_create_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4ebfea56 ipmi_smi_watcher_unregister
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x676f574a ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x757a1783 ipmi_get_version
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x76a33ca6 ipmi_get_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7a90a455 ipmi_request_settime
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8fbfe7f2 ipmi_request_supply_msgs
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xad3c9995 ipmi_destroy_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb0217b33 ipmi_unregister_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbc7824df ipmi_set_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc799c15e ipmi_poll_interface
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xea00cfe3 ipmi_get_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xedfe2c9d ipmi_smi_msg_received
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf59093c9 ipmi_smi_watcher_register
+EXPORT_SYMBOL drivers/char/nsc_gpio 0x10c86c9e nsc_gpio_read
+EXPORT_SYMBOL drivers/char/nsc_gpio 0x3fad3080 nsc_gpio_write
+EXPORT_SYMBOL drivers/char/nsc_gpio 0xc489c36a nsc_gpio_dump
+EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte
+EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte
+EXPORT_SYMBOL drivers/edac/edac_core 0x4cce3112 edac_mc_find
+EXPORT_SYMBOL drivers/edac/edac_core 0xc34ebfe3 edac_mc_handle_fbd_ce
+EXPORT_SYMBOL drivers/edac/edac_core 0xe9fe5513 edac_mc_handle_fbd_ue
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x26bc948d fw_core_handle_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x2a7e6bf4 fw_send_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x2d999b0a fw_core_remove_card
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x42346743 fw_card_initialize
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x46f03e4d fw_iso_context_queue
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x4a15b02d fw_iso_context_start
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x774c7b50 fw_core_add_address_handler
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x875793e6 fw_bus_type
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x930e844a fw_core_handle_request
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x98dc162a fw_send_request
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x99227d54 fw_iso_buffer_destroy
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xa1e28207 fw_fill_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xbab92534 fw_core_initiate_bus_reset
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xc6569931 fw_card_add
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xd29e94d7 fw_run_transaction
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xd4118a07 fw_device_enable_phys_dma
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xd7131d9a fw_iso_context_destroy
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xd7f75c4d fw_cancel_transaction
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xe1cabd5a fw_iso_context_stop
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xe4b1072c fw_core_handle_bus_reset
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xe7d20ee6 fw_iso_buffer_init
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xf091462b fw_core_remove_address_handler
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xf25289eb fw_iso_context_create
+EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x03971815 drm_core_ioremap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a31c727 drm_mode_config_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0aae8802 drm_i2c_encoder_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c2195eb drm_agp_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d1f665f drm_mode_attachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d4e803c drm_sysfs_connector_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x10d4eb1f drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d13802 drm_mm_search_free_in_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x143e9438 drm_agp_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x150f23e1 drm_unbind_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x169199e4 drm_mode_find_dmt
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b94754f drm_get_edid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1baf2d04 drm_gem_vm_close
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c9b6842 drm_agp_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d5cd9aa drm_mode_connector_attach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d8777a0 drm_free_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d93bc4e drm_master_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f07b7b8 drm_read
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x240d0d22 drm_sysfs_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c724c93 drm_agp_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2caf4de7 drm_connector_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d28b37c drm_agp_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2da56e10 drm_irq_uninstall
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e1eaa08 drm_mode_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f1e1faa drm_i2c_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x32ce286f drm_getsarea
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x32d995a0 drm_addmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3458dd6c drm_idlelock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3953e674 drm_exit
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a8ad0c3 drm_mode_create_dirty_info_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ae3af4a drm_mode_prune_invalid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3bbd734b drm_vblank_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3dd145aa drm_framebuffer_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3de338bd drm_gem_vm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e796a4a drm_gem_object_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x436a2a40 drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x453dc82d drm_core_reclaim_buffers
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x46cdecf8 drm_handle_vblank
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x47558fd5 drm_addbufs_pci
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x47bcbaf5 drm_mm_pre_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831d2c2 drm_mm_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c6c564c drm_irq_install
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4dcba71c drm_mode_detachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f52ef82 drm_put_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f9d74e4 drm_get_connector_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5111b94c drm_gtf_mode_complex
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5267aa23 drm_gem_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x54f4932b drm_crtc_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x55eeb828 drm_get_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x597ea0a6 drm_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f0c4030 drm_vblank_off
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6242e978 drm_vblank_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6283c11a drm_vblank_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x64281d1b drm_connector_property_set_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x65d2c13f drm_mode_connector_detach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a0a7ebb drm_connector_property_get_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x712c51cb drm_agp_unbind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x75bbe92f drm_mode_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x76c97bcd drm_mode_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x76ca1dc1 drm_crtc_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x770c3219 drm_mode_create_tv_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x790188b9 drm_mode_connector_list_update
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x799754eb drm_gem_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x79c536f3 drm_lock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x81339265 drm_mode_connector_update_edid_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x82731112 drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x83c10bf6 drm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x87764a5f drm_mode_validate_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8afebc42 drm_sg_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d0634b6 drm_gem_handle_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d88bb84 drm_poll
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x906fd61c drm_gem_object_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x939ad1f3 drm_agp_chipset_flush
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x93ae68e5 drm_ati_pcigart_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x975417f7 drm_agp_bind_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x995daa27 drm_sysfs_connector_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c717200 drm_mode_duplicate
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d4b1278 drm_cvt_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ea09666 drm_agp_bind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3cfa3ac drm_get_resource_start
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3e6e111 drm_master_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa7f77519 drm_pci_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa80f2e94 drm_mm_dump_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa92d598f drm_connector_attach_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9f17158 drm_gem_object_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xae0ca610 drm_add_modes_noedid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaee836c4 drm_mode_probed_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb31e2201 drm_rmmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7818b99 drm_property_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe5f7e4b drm_connector_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe6d5b8b drm_get_drawable_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf178abd drm_ati_pcigart_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf9bfcde drm_framebuffer_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc10e181a drm_debugfs_create_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1fd25dd drm_property_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc370838f drm_mode_validate_clocks
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4af5d8b drm_core_ioremapfree
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6794f16 drm_core_get_map_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6800002 drm_lock_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc98e11b2 drm_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9b43fa8 drm_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xca25e6bf drm_core_ioremap_wc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3b135b9 drm_vblank_count
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd41eb492 drm_add_edid_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd73d8735 drm_agp_acquire
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7f2240a drm_idlelock_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9dbcca0 drm_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd56c655 drm_mode_create_dithering_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xde788f84 drm_vblank_post_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe475c599 drm_fasync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f51a3d drm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe750ebac drm_i_have_hw_lock
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7558532 drm_vblank_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7778472 drm_mode_config_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe87ae3fc drm_mm_get_block_range_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xebb49785 drm_pci_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xee87ec67 drm_clflush_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xef2e35ad drm_mode_object_find
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xefcd3353 drm_get_resource_len
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0ff35a3 drm_encoder_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf10a7119 drm_addbufs_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf59a9f5e drm_rmmap_locked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5f6f147 drm_get_encoder_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8fb3e56 drm_core_get_reg_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf97b0fa4 drm_vblank_pre_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdaf360f drm_debugfs_remove_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xff4a1de0 drm_gtf_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x073fa774 drm_fb_helper_check_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x08392322 drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x10b653c5 drm_fb_helper_fill_fix
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1a91114f drm_fb_helper_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1d78582c drm_crtc_helper_set_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2a31ba28 drm_fb_helper_setcmap
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2a811822 drm_helper_crtc_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3b2864dd drm_fb_helper_blank
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5d365531 drm_crtc_helper_set_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5d7fb1ee drm_kms_helper_poll_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x671a2acb drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6e855ad4 drm_kms_helper_poll_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x72e41a99 drm_fb_helper_fill_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x75fa041b drm_helper_hpd_irq_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7cee4f8f drm_fb_helper_single_add_all_connectors
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x836247dc drm_helper_encoder_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9222f2a4 drm_fb_helper_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x92bf4e6c drm_fb_helper_set_par
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa02c7489 drm_fb_helper_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa08571b0 drm_fb_helper_pan_display
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa0e979bc drm_kms_helper_poll_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa410b6e0 drm_helper_connector_dpms
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7851b1b drm_kms_helper_poll_disable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb08bd0cc i2c_dp_aux_add_bus
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xce7ceaf1 drm_helper_resume_force_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd04324fd drm_fb_helper_single_fb_probe
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd948a08e drm_helper_disable_unused_functions
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xead44858 drm_fb_helper_initial_config
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x010f0997 ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x065426f7 ttm_bo_validate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07787990 ttm_bo_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x08c60b9a ttm_bo_move_ttm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x09bcd14e ttm_tt_populate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0ec36d02 ttm_mem_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17d02c4b ttm_base_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c4d494d ttm_object_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1cb88f83 ttm_tt_set_placement_caching
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1d0a8ea6 ttm_bo_swapout_all
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ee5f454 ttm_bo_evict_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ff54ff0 ttm_ref_object_add
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x24c529ef ttm_bo_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x256dacf5 ttm_mem_global_free
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x266bf753 ttm_bo_unmap_virtual
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2e336c7a ttm_bo_wait_unreserved
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34704ea7 ttm_global_item_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38c544b0 ttm_object_file_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c3c3af1 ttm_bo_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3f8037b5 ttm_bo_reserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4156febf ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x58e3d346 ttm_bo_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66666d70 ttm_global_item_ref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6eae9be7 ttm_bo_kmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x70489e0f ttm_agp_backend_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7c2798ae ttm_page_alloc_debugfs
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83c2d310 ttm_object_file_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8a35538e ttm_tt_bind
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e62fa47 ttm_object_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8f470149 ttm_bo_init_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8f9211df ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98b7a72b ttm_write_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9913f4a1 ttm_bo_wait
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x991b6856 ttm_bo_kunmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b7af728 ttm_ref_object_base_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cad9496 ttm_vt_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa2ab88e ttm_bo_synccpu_write_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb6d2fe49 ttm_bo_clean_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbd1f58af ttm_bo_move_memcpy
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc066774b ttm_bo_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcb804a62 ttm_bo_wait_cpu
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd509db6f ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd66ba4df ttm_base_object_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7b96220 ttm_mem_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xda96d584 ttm_base_object_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdad3afc9 ttm_fbdev_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdb4f8913 ttm_bo_mem_space
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe4bc515f ttm_bo_unreserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe8dfa3e5 ttm_bo_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf1a782a1 ttm_bo_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xff43a186 ttm_mem_global_alloc
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x08b9dc55 i2c_bit_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xe14cd49b i2c_bit_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x14dd5efe i2c_pca_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x17045ce1 i2c_pca_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x3cb1bbab i2c_pcf_add_bus
+EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xa4e27475 amd756_smbus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x00e47c19 hpsb_iso_stop
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x054e064d hpsb_iso_recv_release_packets
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07e751e7 csr1212_get_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x083d3dd3 hpsb_alloc_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x08487e78 hpsb_destroy_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0abb8236 hpsb_make_lock64packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0fd6f77a hpsb_reset_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x130b4782 hpsb_unregister_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1440b829 dma_region_mmap
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1856d284 hpsb_set_hostinfo_key
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19cea283 hpsb_get_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1aac469f hpsb_iso_recv_listen_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1d6a787d hpsb_iso_recv_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3394b6ad hpsb_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x363b6dce hpsb_iso_xmit_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3820a4f0 hpsb_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3b0def5f hpsb_unregister_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3e588779 hpsb_add_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x41ef42dc hpsb_iso_recv_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x43537e9e hpsb_protocol_class
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4a5092ab hpsb_send_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5324d447 hpsb_update_config_rom
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x57e4f28a hpsb_create_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5be87887 hpsb_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5ee41bdc hpsb_set_packet_complete_task
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x60022ea6 hpsb_make_phypacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x614cec26 hpsb_alloc_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x67362fae hpsb_get_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x67ef1734 hpsb_resume_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x685ae076 hpsb_iso_shutdown
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6b35b934 hpsb_bus_reset
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x780bf03f hpsb_remove_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7db04760 hpsb_make_lockpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x94861111 hpsb_iso_xmit_sync
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x95991ec9 hpsb_read_cycle_timer
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9b00980f hpsb_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9cecba67 __hpsb_register_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa2b61602 hpsb_make_readpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaa7b20f0 hpsb_iso_recv_flush
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb05924ec hpsb_unregister_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb634ee40 hpsb_make_writepacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb698fe24 hpsb_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb890b814 csr1212_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb9a9a3b4 hpsb_set_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbe4da68b hpsb_iso_n_ready
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc7ea7fd8 hpsb_allocate_and_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xca5bf5b4 hpsb_free_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcbc6b6e1 hpsb_iso_recv_set_channel_mask
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd34ca03 hpsb_selfid_complete
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xce5e9066 hpsb_free_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcf27d6f9 hpsb_make_streampacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd25ccfc3 hpsb_iso_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd42bb4ed hpsb_packet_success
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd4dfca6a hpsb_iso_recv_unlisten_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xda0fd1cf hpsb_node_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xde4d3995 hpsb_iso_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdee21b0e hpsb_node_fill_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xeba7dc73 hpsb_iso_xmit_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xedd419f8 hpsb_update_config_rom_image
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xee15afca hpsb_iso_wake
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xee251bbf hpsb_selfid_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xefb2f614 hpsb_iso_xmit_queue_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfa9a1d6b hpsb_get_hostinfo_bykey
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfb0aea25 hpsb_lock
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfd7f67e9 hpsb_register_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x0cc94239 ohci1394_stop_context
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x22ad32dc ohci1394_register_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xdd2e3488 ohci1394_unregister_iso_tasklet
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x29cbd5fe rdma_addr_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x3c472632 rdma_copy_addr
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x10c2705d ib_cm_notify
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x66e7a221 ib_send_cm_apr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x69b4a391 cm_class
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6df88779 ib_send_cm_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7cf6d4be ib_send_cm_drep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7db88287 ib_send_cm_sidr_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8436869d ib_send_cm_rtu
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9fa1e89a ib_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xaa5d241d ib_send_cm_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc2806a2d ib_send_cm_lap
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc63d97f3 ib_send_cm_sidr_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdb283270 ib_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe5c781ba ib_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xea48b799 ib_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf62ca951 ib_send_cm_rej
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf98ea696 ib_send_cm_dreq
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfb1b7432 ib_send_cm_mra
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00ca197f ib_dealloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0643f089 ib_find_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09db17b3 ib_query_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0cdbfab1 ib_find_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x13b7ad86 ib_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x15a62041 ib_get_cached_lmc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x179a5cd6 ib_modify_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x19acc9af ib_flush_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x19c1d1ac ib_attach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1bf3673c ib_modify_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d1dc261 ib_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x224aeb30 ib_query_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23de2517 ib_modify_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23eb7e4a ib_alloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24aecfd7 ib_query_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2b7d1331 ib_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f4976a7 ib_find_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30687d03 ib_rereg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x312b7499 ib_dealloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x32ad9649 ib_query_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x381efe66 ib_umem_page_count
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x38287299 ib_set_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3bc55556 ib_create_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3c3e21a4 ib_fmr_pool_unmap
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x456c0e70 ib_alloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4da5d16d ib_register_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4de57657 ib_alloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x55548fa9 ib_query_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x556e0731 ib_init_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62216549 ib_alloc_fast_reg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x64157b66 ib_modify_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x69335627 ib_reg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x697ccba4 ib_create_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73c62ee3 ib_get_dma_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7413b9d7 ib_detach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78ae2e2d ib_dispatch_event
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7eb5c33d ib_find_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9101912f ib_resize_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x979d934f ib_destroy_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ed19727 ib_unregister_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa851a915 ib_destroy_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb508b421 ib_dealloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbf494f4b ib_alloc_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2134cd2 ib_destroy_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2512834 ib_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc5c4c8a2 ib_get_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc678d6ba ib_umem_release
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc7564898 ib_get_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc7f69cee ib_query_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xca279261 ib_create_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd9fbf89 ib_free_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd113766b ib_alloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd92c306b ib_register_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd98fdf63 ib_modify_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdeaa7115 ib_dealloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe1a2dbe0 ib_create_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe1f8d3c5 ib_destroy_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe46c6ece ib_umem_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec6b39b8 ib_unregister_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xedf3eee9 ib_get_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf2352f26 ib_query_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf4c221a1 ib_modify_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6f10667 ib_fmr_pool_map_phys
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf9f61acd ib_dereg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfd374366 ib_query_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff13a490 ib_create_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x070a825d ib_get_rmpp_segment
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0890a2a8 ib_cancel_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2a3ff2c5 ib_post_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4da27584 ib_create_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5fe74014 ib_register_mad_snoop
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x648d7f7d ib_free_recv_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6fbaf73d ib_modify_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x802ca449 ib_register_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8ff28d2a ib_process_mad_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x978b332d ib_unregister_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xbee99147 ib_redirect_mad_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xedb13b31 ib_free_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8e90b0c2 ib_sa_path_rec_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95b79f3e ib_sa_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa6e0d9ca ib_sa_service_rec_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xbb71ae96 ib_init_ah_from_mcmember
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc28b0cf7 ib_init_ah_from_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd10c6aa2 ib_sa_get_mcmember_rec
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe0ccabac ib_sa_cancel_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x312a4da3 iw_cm_reject
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x35a1d130 iw_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3e73ed59 iw_cm_accept
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4adc6f25 iw_cm_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5a008cba iw_cm_connect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x875a9df5 iw_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xbcb41f83 iw_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xcbe0f9eb iw_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x098f5f59 rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x10b334bc rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x17ab86ea rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x392262bf rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x49322e9c rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x50ad660a rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x79a5909a rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8dcd94d9 rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9a4ba295 rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb2d72856 rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbc19d892 rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd0e21ddb rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd9c00558 rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdb7593d4 rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xede3bb8e rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xee5dea67 rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf300bcb1 rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xff4feac2 rdma_init_qp_attr
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x1542320b gameport_stop_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x5188539c __gameport_register_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x62508de9 gameport_set_phys
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x9544a723 __gameport_register_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xb8f6b875 gameport_open
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xbda107c6 gameport_unregister_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xcd9c06c0 gameport_close
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xed2041ef gameport_start_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xf09f0f79 gameport_unregister_driver
+EXPORT_SYMBOL drivers/input/input-polldev 0x29f66636 input_allocate_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x54a493ce input_free_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x89e57c11 input_unregister_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xede10295 input_register_polled_device
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x29b10610 ad714x_disable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x8a4e9c6d ad714x_enable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xddc779d0 ad714x_remove
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xf2272465 ad714x_probe
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x0955a24a sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x74e8f482 sparse_keymap_report_entry
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x8252dd52 sparse_keymap_setup
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xd8cc8f35 sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xe951dc5f sparse_keymap_free
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xf95d82db sparse_keymap_report_event
+EXPORT_SYMBOL drivers/isdn/capi/capifs 0x93633b3f capifs_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/capifs 0xf143cfc3 capifs_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x005d11cd capi20_put_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x05cf5138 detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x35d11bc6 capi_ctr_suspend_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3fa9cbba capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x476eaf7e capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4ca52df2 capi_ctr_down
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7bb9b1dc capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9ebe9230 capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa9b24eea capi20_register
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf0c78003 attach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x033235ed avmcard_dma_alloc
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x04a9fd82 b1_load_config
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1a6ff44b b1_load_t4file
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x32bd5b04 avmcard_dma_free
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3583e61b b1_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x3a5725f8 b1_getrevision
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7800a40f b1_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x7d7d2946 b1ctl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9bd06f60 b1_alloc_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xabdb6fc9 b1_loaded
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb072ebb9 b1_parse_version
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd1179920 b1_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd4a305ac b1_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe647a36c b1_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe72e0f16 b1_free_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1b75e516 b1dmactl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x657ed010 b1dma_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x7af07c3f b1dma_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x832f4dab b1dma_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8bf8c170 b1dma_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8c7e5a66 b1dma_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x96754878 t1pci_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x9804845f b1dma_reset
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xeb5b8d7c b1pciv4_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1
+EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x120721ff proc_net_eicon
+EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x158ee909 mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x8660e85f mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xa93eb57d mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xca46e7e3 mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x6084bb40 mISDNisar_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x8dfda5c8 mISDNisar_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x427ea441 FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa9a1ee40 FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb4870f64 FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb6490b13 hisax_init_pcmcia
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x1e912fd2 isacsx_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3d68e5fa isac_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x529a3ae3 isac_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x5d468993 isac_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x7baa2f6e isacsx_setup
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x40ac8932 isdn_ppp_register_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x87d82ef3 isdn_ppp_unregister_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x9ada98a0 register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0a40d12e mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0e2eff68 get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x10ef3f0c queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x26e81cd0 mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x27941c22 mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3b7aa6a0 recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x466bb1a9 confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4d414e43 get_next_dframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x572472a5 dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x61ae5419 l1_event
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x756d773d recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x874b1ab7 bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8dce2501 mISDN_freedchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x91af6382 mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x95694f8a mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9a785771 mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9abe86cc recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb09c1d60 create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb37a4902 recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc941daae mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcda80a84 mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xec5de4c9 recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register
+EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul
+EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp
+EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv
+EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page
+EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x28a5279b ir_raw_handler_register
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x622c4acc ir_raw_handler_unregister
+EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x3d3661e1 max2165_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x765888a8 mc44s803_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x53b68eee mt2060_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0xe30e4477 mt2131_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0xb38b0254 mt2266_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xd40422d2 mxl5005s_attach
+EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x113c23f3 qt1010_attach
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0xf3f4635e xc2028_attach
+EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x290b4613 xc5000_attach
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x021f0ccb flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0d8ecc96 flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x169c20c7 flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1dbdf001 flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3243d97c flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3d2a5d60 flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4ea47228 flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4fa46639 flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5bf47c47 flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5f0db665 flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7104ea54 flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x746a918b flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x75235011 flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8a747b01 flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xaa3b2d1b flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xab4650f5 flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc9509964 flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe9887c1c flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xeb18a860 flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfb43ca2e flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x0ca5939e bt878_device_control
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xa015b92a bt878_stop
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xab83b650 bt878
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xadc1ea7b bt878_start
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0b5b6aba write_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x19e5d5e1 dst_pio_disable
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x2cfc5d9d dst_error_bailout
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x5ed893f9 rdc_reset_state
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x60b83273 read_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x7e375a98 dst_comm_init
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xbf190704 dst_attach
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xdc2d1349 dst_wait_dst_ready
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xeb12c59c dst_error_recovery
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x480f3489 dst_ca_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0819bff9 dvb_net_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1038cc34 dvb_register_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x15f56831 dvb_dmxdev_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x191ef235 dvb_generic_open
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1ac82a73 dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1de5dde2 dvb_ringbuffer_flush
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2c202fc3 dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2fdd35ec dvb_frontend_detach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x33ec177d dvb_unregister_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4b0e0a77 dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x523a6701 dvb_unregister_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x554565b8 dvb_dmx_swfilter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x554a9756 dvb_register_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x558017d9 dvb_generic_ioctl
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x58b392bd dvb_dmx_swfilter_204
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5acbe913 dvb_net_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5f2d81f1 dvb_ca_en50221_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x688c2da8 dvb_ringbuffer_empty
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8264bb0f dvb_ca_en50221_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83225546 dvb_unregister_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x863bf410 dvb_ringbuffer_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x88dffd14 dvb_ringbuffer_free
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8efa24af dvb_dmxdev_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9e889bd9 dvb_ringbuffer_avail
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9f18d905 dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa0013274 dvb_generic_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xad6fe173 dvb_dmx_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb91fb828 dvb_dmx_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd04eb761 dvb_frontend_reinitialise
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd2e30721 dvb_ringbuffer_read_user
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdec17535 dvb_register_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe28e3ee7 dvb_dmx_swfilter_packets
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf764cbf8 dvb_ringbuffer_read
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfc3b495c dvb_ringbuffer_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2c25f943 dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x3652b7fa usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xacc69796 dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xc484e092 dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xc96ebfe1 dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xdb4dbd57 dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf1b88c7b dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xfed0fb64 af9005_rc_decode
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0a72b74e dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0e9335e1 dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x32d11c23 dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x36b4799f dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x57a2bd5d dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x5d34d7d7 dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6233a57b dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x63991487 dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6ea1fd10 dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x9faca571 dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc162698e dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xc2182161 af9013_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x6ddfb907 atbm8830_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x5bc1e3b7 au8522_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xf44b698d bcm3510_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x2524adea cx22700_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x0be83896 cx22702_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0xce4e0db9 cx24110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x77a62d20 cx24113_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xa80726dd cx24113_agc_callback
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x33a6ad44 cx24116_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x1cf5409e cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xf98e477b cx24123_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x4e4db6b0 dib0070_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x6484c50f dib0070_get_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x73b7bf5c dib0070_ctrl_agc_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xd57a9b65 dib0070_set_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xeae7bd7a dib0070_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x32beae1e dib0090_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x7284e92a dib0090_register
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8e5e21f0 dib0090_pwm_gain_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xaad5f6dd dib0090_dcc_freq
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb8117cf0 dib0090_get_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xd2b1fbc9 dib0090_gain_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xda650087 dib0090_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xfca83de5 dib0090_get_current_gain
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x606a9316 dib3000mb_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x136ee5aa dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x5be61436 dib3000mc_pid_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x71fa5c3e dib3000mc_set_config
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x720de1a6 dib3000mc_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x798cc89e dib3000mc_pid_parse
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xdcbd6384 dib3000mc_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x8646e090 dib7000m_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x9e0cf393 dib7000m_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x0063d9e7 dib7000p_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x07d8ebc6 dib7000p_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x6bd22ffc dib7000p_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x809c5b40 dib7000p_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa4869feb dib7000p_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xab2d72fb dib7000p_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc1eb0dd6 dib7000p_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xee4ac9d6 dib7000pc_detection
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1791dde8 dib8000_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x265a386c dib8000_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4d3fb011 dib8000_get_adc_power
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4f253114 dib8000_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x6766f657 dib8000_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x7e367860 dib8000_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x8694fe51 dib8000_pwm_agc_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x9864f70b dib8000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb3a31add dib8000_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc032d434 dib8000_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd1064453 dib8000_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x6fb5846b dibx000_init_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xb6420b62 dibx000_exit_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xd273e4ab dibx000_get_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xf25db25e dibx000_reset_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x5b2e3794 ds3000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xc3738e0b dvb_pll_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0xf86f096a isl6405_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xda5548f5 isl6421_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x9bb479b0 isl6423_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x4cbe28ee itd1000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xa13c2833 l64781_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x2f1e4f10 lgdt3305_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x6ab6c159 lgdt330x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x02572fa0 lgs8gxx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x645b8b52 lnbh24_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xf6fc0b0b lnbp21_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x882ce515 mb86a16_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x1411149c mt312_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xc0112de4 mt352_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x01ab2a8e nxt200x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x5c003605 nxt6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x61dd536c or51132_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x14ed6096 or51211_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x483e705a s5h1409_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x177dda54 s5h1411_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x3d8ed2fa s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x619dffd5 s5h1420_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0xc7c6165f si21xx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x4d0a5999 sp8870_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x7f8235f3 sp887x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x5c5376a8 stb0899_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x50c08b62 stb6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x3ab04366 stb6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x3a3075fe stv0288_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x4c619f66 stv0297_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xfef2ae45 stv0299_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x6c42c5ca stv0900_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x9a1c611b stv090x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x30779865 stv6110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xa14aa137 stv6110x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xef6e4f1a tda10021_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x0470c9ae tda10023_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x4b25a16c tda10048_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xa099cbcd tda10045_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xc988ea71 tda10046_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xf12b06e2 tda10086_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x0c70a296 tda8083_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0xf8cfa823 tda8261_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x31ffbfcd tda826x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0xfc838174 tua6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x1b068986 ves1820_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x9c7af023 ves1x93_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x96690b09 zl10036_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xd6fd2279 zl10039_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xd837b3b0 zl10353_attach
+EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xf278d5a1 ttpci_eeprom_parse_mac
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x07c6f36d ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x2c01f2a7 ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x96c8f90f bttv_get_pcidev
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x9df03f43 bttv_sub_register
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xa60582c3 bttv_sub_unregister
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xb33e50d0 btcx_riscmem_free
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xd1c96fef btcx_riscmem_alloc
+EXPORT_SYMBOL drivers/media/video/cpia 0x670ec0f5 cpia_register_camera
+EXPORT_SYMBOL drivers/media/video/cpia 0xf348df17 cpia_unregister_camera
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x08b52bb8 cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xb708f8e2 cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xc6145bf4 cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xc91ace2b cx18_release_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xfd400f94 cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xbf47428c cx231xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xc61df3b8 cx231xx_register_extension
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x7a40787a vp3054_i2c_probe
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xeaf7060e vp3054_i2c_remove
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x0b7d1e02 cx8800_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x24fdc376 cx88_get_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x465b6687 cx88_set_freq
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x5051b77f cx88_set_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x73c20698 cx88_video_mux
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x76001828 cx88_enum_input
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x96c07a23 cx8802_unregister_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xab958b83 cx8802_cancel_buffers
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xb40a8e2b cx8802_register_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xc0cd4822 cx8802_buf_queue
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xf404b6cc cx8802_get_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xfef765a0 cx8802_buf_prepare
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0535dec6 cx88_free_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x07089672 cx88_vdev_init
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0d9b0de4 cx88_set_tvaudio
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1612f928 cx88_wakeup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x23d00ffb cx88_risc_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x37e44bf2 cx88_set_stereo
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4481aa09 cx88_get_stereo
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4e63b05f cx88_newstation
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x53251e63 cx88_core_put
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5a764248 cx88_risc_stopper
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5e08b7ef cx88_sram_channel_setup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6d0c911c cx88_reset
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7ae8b83d cx88_core_get
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7e01dc49 cx88_sram_channel_dump
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8a525bf8 cx88_risc_databuffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xacfc56f1 cx88_shutdown
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xbc64f66c cx88_set_scale
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc900145d cx88_set_tvnorm
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc9d06c37 cx88_ir_start
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xde459955 cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe3aa2228 cx88_ir_stop
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xef37de9d cx88_core_irq
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x7b09b00e em28xx_register_extension
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xe8af1532 em28xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x00abe620 gspca_get_i_frame
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x7100a6c0 gspca_auto_gain_n_exposure
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x7ee5b6f5 gspca_dev_probe
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa036a442 gspca_suspend
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa65ee582 gspca_frame_add
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xb9d444a1 gspca_disconnect
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xda71f878 gspca_resume
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0826d7e4 ivtv_api
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4122c901 ivtv_udma_prepare
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4662d9e7 ivtv_clear_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4c1de176 ivtv_udma_alloc
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x65d02021 ivtv_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x743188a9 ivtv_udma_setup
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x89140040 ivtv_set_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x8f908cf0 ivtv_vapi
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9563aa98 ivtv_vapi_result
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xcc38eb8e ivtv_udma_unmap
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xee637d21 ivtv_init_on_first_open
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x21a0a7c8 saa7134_dmasound_exit
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x223fc430 saa7134_pgtable_build
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x267ba81c saa7134_set_gpio
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x27ba3a17 saa7134_set_dmabits
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x412b2cc8 saa_dsp_writel
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x78eab6ae saa7134_pgtable_free
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x80057e84 saa7134_ts_unregister
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x99613cc5 saa7134_tvaudio_setmute
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x9fec1f4d saa7134_dmasound_init
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb612da32 saa7134_devlist_lock
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd04a3b92 saa7134_ts_register
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe6f39159 saa7134_pgtable_alloc
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x0599a9d4 soc_camera_apply_sensor_flags
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x155fdbd1 soc_camera_xlate_by_fourcc
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x50e7306f soc_camera_host_unregister
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xe5f6d274 soc_camera_host_register
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x5fec7089 tveeprom_read
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x71ae6bca tveeprom_hauppauge_analog
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x431b39f1 usbvideo_DeinterlaceFrame
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x4f6c5d2f usbvideo_AllocateDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xced84029 usbvideo_TestPattern
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xe526548f usbvideo_register
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xe5f15e3e usbvideo_RegisterVideoDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xeb8fb67d usbvideo_Deregister
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush
+EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xc50233a7 v4l_compat_translate_ioctl
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x76870a2d v4l2_chip_match_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xcafd3675 v4l2_chip_ident_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x0fb0fd56 v4l2_m2m_get_vq
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x60427a7e v4l2_m2m_mmap
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x7c72b863 v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xb0115075 v4l2_m2m_job_finish
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x1171a560 videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x1acec383 videobuf_dvb_register_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x1daff6a0 videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x410c8b57 videobuf_dvb_find_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x4f557ea1 videobuf_dvb_get_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x88c1143b videobuf_dvb_dealloc_frontends
+EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period
+EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x237a16d1 video_usercopy
+EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x43393fe7 video_unregister_device
+EXPORT_SYMBOL drivers/media/video/videodev 0x43ffaaf7 video_ioctl2
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ae79a63 video_device_release_empty
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl
+EXPORT_SYMBOL drivers/media/video/videodev 0x6f20d30e video_device_release
+EXPORT_SYMBOL drivers/media/video/videodev 0x70a0ce23 video_register_device
+EXPORT_SYMBOL drivers/media/video/videodev 0x87747a6f video_register_device_no_warn
+EXPORT_SYMBOL drivers/media/video/videodev 0x9c6c8770 video_device_alloc
+EXPORT_SYMBOL drivers/media/video/videodev 0xaeb9b37b video_devdata
+EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct
+EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x0f04ff1a videocodec_attach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x15ef80ff videocodec_unregister
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xa7361cd2 videocodec_detach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xd8cc3561 videocodec_register
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x2a355c48 memstick_register_driver
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x3ffe70a4 memstick_free_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x5b5c17c8 memstick_init_req_sg
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x715a65cb memstick_unregister_driver
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x72dd049d memstick_new_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x8c9b5da4 memstick_init_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x988ed054 memstick_next_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xb07daf42 memstick_resume_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xb29859e1 memstick_detect_change
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xd05e99eb memstick_set_rw_addr
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xd4c455d1 memstick_alloc_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xd7b133f6 memstick_remove_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xf1186fcc memstick_add_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xfc128bcc memstick_suspend_host
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x146f9b3b mpt_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x191efb13 mpt_reset_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x21d5945b mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x21e1f034 mpt_print_ioc_summary
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2817a32c mpt_free_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2ec2718b mpt_alloc_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x397db89e mpt_halt_firmware
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4fb96e7a mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x57820a3b mpt_put_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6c466d1b mpt_send_handshake_request
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6d7e65ab mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7831ae92 mpt_verify_adapter
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7d784288 mpt_detach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7f230474 mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x81e85477 mpt_GetIocState
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x890565e1 mptbase_sas_persist_operation
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x930ad71c mpt_event_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9a6f8a32 mpt_findImVolumes
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb585a8d9 mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb5e37a7c mpt_resume
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbd9f405f mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc00d1748 mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0dc073d mpt_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc10a4a1e mpt_free_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd2ebce92 mpt_attach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd960b93e mpt_HardResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdfa6dd84 mpt_config
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe1345afa mpt_device_driver_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3b38e85 mpt_get_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x061225c3 mptscsih_proc_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x067dd4d3 mptscsih_remove
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x094db337 mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0c963d98 mptscsih_host_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1109f3cf mptscsih_get_scsi_lookup
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x18320c7d mptscsih_ioc_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x23a36d7b mptscsih_bus_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x29b05090 mptscsih_bios_param
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3fbb1890 mptscsih_abort
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x501fc62d mptscsih_host_attrs
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5f338d27 mptscsih_scandv_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6ca60620 mptscsih_event_process
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x70628d87 mptscsih_slave_destroy
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7fadf6d4 mptscsih_change_queue_depth
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa6931f5d mptscsih_taskmgmt_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa69d40ea mptscsih_resume
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaa064da5 mptscsih_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaa2a230a mptscsih_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb0cfd1aa mptscsih_shutdown
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb3972cae mptscsih_slave_configure
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd00e2c52 mptscsih_qcmd
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd1e1a881 mptscsih_dev_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xed3cf577 mptscsih_io_done
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf085d2e6 mptscsih_is_phys_disk
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf5647185 mptscsih_raid_id_to_num
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfc1c7881 mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x015c12e4 i2o_exec_lct_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x02ee95fe i2o_find_iop
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x10b4e670 i2o_driver_notify_device_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x114b76dd i2o_parm_issue
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x26656a69 i2o_parm_field_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x320d4e05 i2o_driver_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3749beb1 i2o_iop_find_device
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3a3595f2 i2o_device_claim
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3df58618 i2o_driver_notify_device_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3e614c52 i2o_msg_post_wait_mem
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5c742498 i2o_parm_table_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x86bfc725 i2o_driver_unregister
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9386d890 i2o_event_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x947b32ca i2o_msg_get_wait
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xaab376ba i2o_driver_notify_controller_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb2282c34 i2o_driver_notify_controller_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb41898bc i2o_status_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd99bb28d i2o_device_claim_release
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xc9c31206 pasic3_read_register
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xd5617b21 pasic3_write_register
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x07c5579f mc13783_lock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x091f558c mc13783_reg_write
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x192b920c mc13783_reg_read
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x1c3d6570 mc13783_irq_ack
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2beb18e4 mc13783_irq_status
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3fce8b92 mc13783_irq_request
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x9af099be mc13783_reg_rmw
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xabc10f18 mc13783_irq_request_nounmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xbea31100 mc13783_irq_mask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xca04f7cd mc13783_irq_free
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xdd338810 mc13783_irq_unmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe284bb62 mc13783_unlock
+EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2
+EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1
+EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib
+EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led
+EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw
+EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x6174680f ad_dpot_remove
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xeee93d4b ad_dpot_probe
+EXPORT_SYMBOL drivers/misc/c2port/core 0x674813da c2port_device_register
+EXPORT_SYMBOL drivers/misc/c2port/core 0x9e64ac5f c2port_device_unregister
+EXPORT_SYMBOL drivers/misc/ioc4 0x09e88221 ioc4_unregister_submodule
+EXPORT_SYMBOL drivers/misc/ioc4 0x4d721e80 ioc4_register_submodule
+EXPORT_SYMBOL drivers/misc/tifm_core 0x036cb5fd tifm_add_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x16040f67 tifm_unregister_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x271672f7 tifm_has_ms_pif
+EXPORT_SYMBOL drivers/misc/tifm_core 0x2a1cdc4a tifm_register_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work
+EXPORT_SYMBOL drivers/misc/tifm_core 0x44934c60 tifm_alloc_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x498c9589 tifm_remove_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x588b7a2c tifm_alloc_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x75fd31f2 tifm_map_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0xb6d5a822 tifm_eject
+EXPORT_SYMBOL drivers/misc/tifm_core 0xc52015ee tifm_free_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xcc0c7ef3 tifm_free_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0xe0cafb84 tifm_unmap_sg
+EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xb2823fa3 mmc_cleanup_queue
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x40936c5a cfi_varsize_frob
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x4fc31e0c cfi_read_pri
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x82742a74 cfi_fixup
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x2f5732fc unregister_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xc434f7ba register_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xe20af22a do_map_probe
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xee52ae40 map_destroy
+EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xdee77809 mtd_do_chip_probe
+EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xc59a3e60 lpddr_cmdset
+EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x223cd261 simple_map_init
+EXPORT_SYMBOL drivers/mtd/mtd 0x72e9a67a del_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtd 0xa043f370 add_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0xeba43263 mtd_concat_create
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0xf7874c74 mtd_concat_destroy
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x8d5f70a3 nand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand 0xfb83e999 nand_default_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x33b586bb nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x6a547f40 nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x434d8e5a onenand_addr
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x8270be96 onenand_default_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xb2ce8349 onenand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xc81d7565 flexonenand_region
+EXPORT_SYMBOL drivers/net/8390 0x1cdc8d7f ei_start_xmit
+EXPORT_SYMBOL drivers/net/8390 0x44f95ba4 ei_tx_timeout
+EXPORT_SYMBOL drivers/net/8390 0x49bf6f05 ei_open
+EXPORT_SYMBOL drivers/net/8390 0x5803dcde NS8390_init
+EXPORT_SYMBOL drivers/net/8390 0x741c9de4 ei_poll
+EXPORT_SYMBOL drivers/net/8390 0x7ff7bf47 ei_close
+EXPORT_SYMBOL drivers/net/8390 0xd9c9c175 __alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt
+EXPORT_SYMBOL drivers/net/8390 0xe05ffc27 ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390 0xe1ad5b59 ei_get_stats
+EXPORT_SYMBOL drivers/net/8390 0xf6462b4f ei_netdev_ops
+EXPORT_SYMBOL drivers/net/8390p 0x437d6837 eip_start_xmit
+EXPORT_SYMBOL drivers/net/8390p 0x4e73f68b NS8390p_init
+EXPORT_SYMBOL drivers/net/8390p 0x57b15966 eip_open
+EXPORT_SYMBOL drivers/net/8390p 0x700a1e89 eip_poll
+EXPORT_SYMBOL drivers/net/8390p 0x74ae2dfd eip_tx_timeout
+EXPORT_SYMBOL drivers/net/8390p 0x898571ec eip_get_stats
+EXPORT_SYMBOL drivers/net/8390p 0x95247112 eip_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390p 0xab528193 eip_close
+EXPORT_SYMBOL drivers/net/8390p 0xb663e226 eip_interrupt
+EXPORT_SYMBOL drivers/net/8390p 0xd3428395 eip_netdev_ops
+EXPORT_SYMBOL drivers/net/8390p 0xe3f9bd51 __alloc_eip_netdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x49250991 alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x59d0c5a1 arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6d288573 arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x79c87f2f arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x809f9331 arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x81e88f25 arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa38e08a0 arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa666bccb arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xce54838e arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xda94c103 arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x3ce81f40 com20020_check
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x56ce68be com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x6ee9e3a6 com20020_found
+EXPORT_SYMBOL drivers/net/bnx2 0xc1855bff bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/bnx2x 0x1b54c07e bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/cnic 0xae471715 cnic_register_driver
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1760e807 cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x317fd0d3 cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x42d8d7dd cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4a70d637 cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4b91adfc t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6c206df1 cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7117cda1 cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7f00e294 cxgb3_register_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x82f7bea5 cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8aac5c19 t3_l2e_free
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8ebe42e0 t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xad3e7930 cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xad62752a dev2t3cdev
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc72b9f42 cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd8fcc0f2 t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xdff410d4 t3_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x059a7658 cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x06241f47 cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x106c3862 cxgb4_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x381c27c0 cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x64c31672 cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x71a73084 cxgb4_netdev_by_hwid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x80656e9c cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x867420bf cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8e5ab2b3 cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x93b892f6 cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x9a9d258f cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa09a5411 cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa455e837 cxgb4_create_server
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xacadcb68 cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xbd9da070 cxgb4_create_server6
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd8a611a1 cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xdeb357c1 cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1200a736 hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x22a40064 hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x7ab295b9 hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xa2112370 hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xaaa1c5ed hdlcdrv_register
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x14f9f775 sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2870989c sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3df8d5aa sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x79c197d1 sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8437528e sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x849966f4 irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x8e0ea2c6 sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa18e2709 sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc15f2c62 sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc8eef222 irda_register_dongle
+EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage
+EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl
+EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart
+EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag
+EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe
+EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an
+EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok
+EXPORT_SYMBOL drivers/net/mii 0x42e8cabc generic_mii_ioctl
+EXPORT_SYMBOL drivers/net/mii 0x43246988 mii_ethtool_gset
+EXPORT_SYMBOL drivers/net/mii 0x65e248be mii_ethtool_sset
+EXPORT_SYMBOL drivers/net/mii 0xbb56e891 mii_check_media
+EXPORT_SYMBOL drivers/net/mii 0xc9c2ddae mii_nway_restart
+EXPORT_SYMBOL drivers/net/mii 0xee8ca4d2 mii_check_gmii_support
+EXPORT_SYMBOL drivers/net/mii 0xf2cd41e7 mii_check_link
+EXPORT_SYMBOL drivers/net/mii 0xf41e1a9b mii_link_ok
+EXPORT_SYMBOL drivers/net/pppox 0x2dcba2e3 register_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0xc7fb01b3 pppox_ioctl
+EXPORT_SYMBOL drivers/net/pppox 0xcd3dee1d pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/sungem_phy 0xbcdb05bd mii_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x2c774263 tmsdev_term
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x5163d4aa tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x7570464c tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x8741567d tms380tr_close
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xed511ea5 tms380tr_open
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x0708ee25 hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x09fe0a23 detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x11050c0f register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x3dd4b6fc hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xa15cc3a8 hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xc405bdd0 hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xc559ab55 alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xcec55ed0 unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xe11a31ed attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xf2f2b046 hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xf7afe425 unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/z85230 0x036d8d9e z8530_sync
+EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port
+EXPORT_SYMBOL drivers/net/wan/z85230 0x213abac6 z8530_interrupt
+EXPORT_SYMBOL drivers/net/wan/z85230 0x2866a8eb z8530_sync_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0x2ad95a86 z8530_shutdown
+EXPORT_SYMBOL drivers/net/wan/z85230 0x55499df1 z8530_nop
+EXPORT_SYMBOL drivers/net/wan/z85230 0x5aa09a3e z8530_describe
+EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream
+EXPORT_SYMBOL drivers/net/wan/z85230 0x5e933ba0 z8530_sync_txdma_open
+EXPORT_SYMBOL drivers/net/wan/z85230 0x7a9300bf z8530_init
+EXPORT_SYMBOL drivers/net/wan/z85230 0xb867a831 z8530_null_rx
+EXPORT_SYMBOL drivers/net/wan/z85230 0xcb1eac51 z8530_queue_xmit
+EXPORT_SYMBOL drivers/net/wan/z85230 0xcd9d7f43 z8530_sync_dma_open
+EXPORT_SYMBOL drivers/net/wan/z85230 0xdb2eb934 z8530_sync_open
+EXPORT_SYMBOL drivers/net/wan/z85230 0xdf814234 z8530_sync_txdma_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230
+EXPORT_SYMBOL drivers/net/wan/z85230 0xe611ffb2 z8530_sync_dma_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0xee19bc7d z8530_channel_load
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x5144d59a i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0xc689951e stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0xc89e53cc reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0xe0e88e97 init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7a045e21 ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9b5aa428 ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa4def5dd ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xaca6a074 ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x0b3c2dac ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x22b541ea ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x237b51df ath9k_cmn_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x76669a31 ath9k_cmn_rx_skb_preprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x9ae037e6 ath9k_cmn_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xce17c0fa ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xdf94f164 ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x01bc9dc4 ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x03853904 ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x18cd2947 ath9k_hw_setcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1935d9de ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1a5243d6 ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1edc14e9 ath9k_hw_setmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x230b60b7 ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x234e77e8 ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26a5ebab ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x297721bb ath9k_hw_keyisvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a60d267 ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2afcda5c ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ca15582 ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ce1a881 ath9k_hw_procmibevent
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e2b0796 ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x30075096 ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31d07571 ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x322fceee ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x34f1dd86 ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x351c2ee9 ath9k_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x36243537 ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e540470 ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x44e7cc1a ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x44ffa5b6 ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ebd9aa4 ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x500f2b88 ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x560a79e5 ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5fea9eac ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6109f34d ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x627329cf ath9k_hw_set_keycache_entry
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63b7754c ath9k_hw_cleartxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x65c48433 ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x67f42b0d ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x69157e96 ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6af17910 ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70fa2e85 ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72fbb0e7 ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73df6766 ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x771d332d ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79c70658 ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8142cd9d ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82386298 ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x841fb435 ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89bbb652 ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e2a4b45 ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x93622d28 ath9k_hw_keysetmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x949ed645 ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9b2557a9 ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e0fb7d8 ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f8940ab ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3338569 ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa13e0ae ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaac51d20 ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab23f9e6 ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab5ed6dd ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xacb68a61 ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0d499ad ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1fca989 ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4aa2955 ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb67f4a0f ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba4da2f7 ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb40b85b ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe58b530 ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbf32402a ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0949ecf ath9k_hw_getcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1caa4cd ath9k_hw_stoptxdma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc58ae8f0 ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc96556a1 ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb13b2e3 ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd27b8eb1 ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd9ab7460 ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb02d23c ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdba8029b ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdeaf0f5d ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xded0d51b ath9k_hw_stoppcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe167cde2 ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe32a38f1 ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe4396057 ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea9fe2af ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xecd6dae3 ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa37c56a ath9k_hw_extend_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff954861 ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x81f2803b atmel_open
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x82bdd71d init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xf39523b7 stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0f31a33d hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1861f743 hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1e5867aa hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2f99bdb3 hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3fe4964c hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x50e1202d hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5d05c2af hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x61396b15 hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x652e1268 hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6cad8591 hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7b6c84e1 hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x88870834 hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x89247296 prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x973f32f6 hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9dd1b90b hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa3650a1d hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xba1614f3 hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc95d776b hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd052fd36 hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd13c6dde hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd15d8ebc hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe8426ad2 hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe89fd182 hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xec1a1164 hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf8e66e34 hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x104b99d2 libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1527a344 libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1c301c6f libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2709343b libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x297c2f52 libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x30e38e1a libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3e4289ad libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3f56f435 libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4cefd194 libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x75a1c2f1 alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8c91a4bf free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x96bd765f libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa5bcdf43 libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa9589615 libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb9c83ffb libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xba86f47c libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xca6f492e libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xcea400cb libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd27e8c06 libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd740ea0f libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe1c48641 libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03f2e8c5 iwl_bg_start_internal_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0563e2e6 iwl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0b33bf22 iwl_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0bcd5a71 iwl_remove_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e247fe1 iwl_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e5c96ad iwl_sta_modify_sleep_tx_count
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0f8bfcff iwl_sta_rx_agg_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x12329981 iwl_set_rxon_chain
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14a15942 iwl_reply_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x197dab68 iwl_setup_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f6b1fc iwl_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1c4ade6d iwl_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21d051a1 iwl_verify_ucode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x255df8e5 iwl_eeprom_check_version
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x29ec65a1 iwl_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2a901a91 iwl_ht_enabled
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2aca719f iwl_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2eda4eda iwl_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x33eda267 iwl_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x343073cc iwl_bg_scan_check
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37327aaa iwl_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x377eec4c iwl_tt_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x389b2d59 iwlcore_eeprom_release_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3a85717d iwl_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3c44215c iwl_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3dc0dcc1 iwl_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3f0fa93b iwl_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3f3fd8f1 iwl_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x411f9d90 iwl_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x42026bc5 iwl_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x42ed4ea5 iwl_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x44eb3332 iwl_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4668a77c iwl_dump_fh
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4878ddb7 iwl_toggle_tx_ant
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a5f9cd2 iwl_force_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a81300c iwl_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4cc55a77 iwl_set_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5093646a iwl_bg_abort_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x510b544d iwl_tx_ant_restriction
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x551d2ee2 iwl_mac_beacon_update
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x57311e06 iwl_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x57a1b86a iwl_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58878668 iwl_good_plcp_health
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x588f5ff1 iwl_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58d1ac4d iwl_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5aeaf99c iwl_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c80e20c iwl_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5f08c25e iwl_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6023f08e iwl_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x61fbc726 iwl_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62727d56 iwl_calib_set
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x63d27ba9 iwl_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x65bc2b77 iwl_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6a43632f iwl_tt_exit_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6b029fcd iwl_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6b730bdd iwl_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6e2ffd32 iwl_set_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7082df5c iwl_tt_enter_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7209fcd8 iwl_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x72d9ac5e iwl_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x73bd345d iwl_tt_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x742f2fb7 iwl_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x779bcc3d iwl_restore_default_wep_keys
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7a99a626 iwl_send_calib_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7dfc756e iwl_led_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7fb1458c iwl_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x81bc424f iwl_set_hw_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8314c72a iwl_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x83902af2 iwl_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x84704ad1 iwl_eeprom_get_mac
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85720fa6 iwl_bg_scan_completed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x870b5007 iwl_remove_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8aae9fc4 iwl_rx_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8abcb030 iwl_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8ba88003 iwl_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9055945d iwl_rf_kill_ct_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x91593153 iwlcore_eeprom_enhanced_txpower
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x940c51aa iwlcore_rts_tx_cmd_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x972e5950 iwl_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x976ecf6f iwl_calib_free_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x98bbab60 iwl_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x99afd890 iwl_rx_missed_beacon_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x99bf3d32 iwl_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9cab7728 iwlcore_eeprom_verify_signature
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9d733fe6 iwl_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9f6dff06 iwl_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa044afe9 iwl_leds_background
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa0f9ce30 iwl_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa1efdc1f iwl_tt_handler
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa3503f51 iwl_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5a508c9 iwl_sta_modify_ps_wake
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa806b761 iwl_sta_tx_modify_enable_tid
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa8bdf043 iwlcore_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa91a317c iwl_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa972ef28 iwl_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa9bb9136 iwl_init_sensitivity
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaa127637 iwl_chain_noise_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xabdee1e3 iwl_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb5b4f693 iwl_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbafd5587 iwl_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbde28fb3 iwlcore_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc1560843 iwl_free_tfds_in_queue
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc68ca7db iwl_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc77dd134 iwl_reset_run_time_calib
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf21febf iwl_configure_filter
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd0c5ff39 iwl_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd0df9a99 iwl_free_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd8cb9bf0 iwl_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd9e00d2d iwl_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdd0b983d iwl_sta_rx_agg_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde9ce757 iwl_dump_csr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe03dfe1c iwl_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe22314b5 iwl_sensitivity_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe452604e iwl_update_tkip_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe73adb4f iwlcore_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe9027415 iwlcore_eeprom_acquire_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeaf92544 iwl_rate_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeb311c91 iwl_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeb4df56b iwl_add_bssid_station
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeb6307bb iwl_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xec0b601b iwl_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xec56be85 iwl_hw_detect
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedbc67df iwl_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xef4e2d68 iwl_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf3293234 iwl_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf58271fa iwl_recover_from_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf6f7c1a1 iwl_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf721c2a8 iwl_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf9e8bf4d iwl_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfc8992c1 iwl_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe741c35 iwl_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0113e6bc __orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x085cf312 orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x29a245e6 orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x34d6de28 orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x37282f38 alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3d56fc74 orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x49d7772e orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x710467d4 orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x75603a5d orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7dd8c537 orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9e78a3d6 orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbcfee7e4 free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcd239149 __orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xceccec1d orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xde73e278 orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe4a08b11 orinoco_open
+EXPORT_SYMBOL drivers/parport/parport 0x043199ac parport_claim
+EXPORT_SYMBOL drivers/parport/parport 0x0d5261cd parport_get_port
+EXPORT_SYMBOL drivers/parport/parport 0x0f3d116e parport_write
+EXPORT_SYMBOL drivers/parport/parport 0x1a4fe970 parport_wait_event
+EXPORT_SYMBOL drivers/parport/parport 0x26d3f4ee parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0x2c8c15e8 parport_negotiate
+EXPORT_SYMBOL drivers/parport/parport 0x2dc668a4 parport_release
+EXPORT_SYMBOL drivers/parport/parport 0x314cb403 parport_claim_or_block
+EXPORT_SYMBOL drivers/parport/parport 0x3ae5d842 parport_ieee1284_write_compat
+EXPORT_SYMBOL drivers/parport/parport 0x3bac3eaa parport_ieee1284_epp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0x49df3565 parport_ieee1284_epp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt
+EXPORT_SYMBOL drivers/parport/parport 0x669a8755 parport_find_base
+EXPORT_SYMBOL drivers/parport/parport 0x684c9d72 parport_remove_port
+EXPORT_SYMBOL drivers/parport/parport 0x74731ef5 parport_put_port
+EXPORT_SYMBOL drivers/parport/parport 0x7a68665e parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0x7ed22edc parport_read
+EXPORT_SYMBOL drivers/parport/parport 0x87c5a65e parport_find_number
+EXPORT_SYMBOL drivers/parport/parport 0x8e253dfc parport_wait_peripheral
+EXPORT_SYMBOL drivers/parport/parport 0x8ff681f4 parport_ieee1284_read_byte
+EXPORT_SYMBOL drivers/parport/parport 0x9019a181 parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x9231dd19 parport_register_device
+EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler
+EXPORT_SYMBOL drivers/parport/parport 0xa3aef2ba parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0xa64a351c parport_set_timeout
+EXPORT_SYMBOL drivers/parport/parport 0xb2f0676b parport_register_port
+EXPORT_SYMBOL drivers/parport/parport 0xc1e73a96 parport_unregister_device
+EXPORT_SYMBOL drivers/parport/parport 0xcd00454d parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL drivers/parport/parport 0xd4402ecf parport_register_driver
+EXPORT_SYMBOL drivers/parport/parport 0xd6468df3 parport_ieee1284_read_nibble
+EXPORT_SYMBOL drivers/parport/parport 0xddd02c6c parport_announce_port
+EXPORT_SYMBOL drivers/parport/parport 0xe041c838 parport_unregister_driver
+EXPORT_SYMBOL drivers/parport/parport_pc 0x30ae2918 parport_pc_probe_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0xf3499ed6 parport_pc_unregister_port
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x17959ebb pcmcia_dev_present
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1daebeeb pcmcia_get_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2321f1c3 pcmcia_unregister_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x303a0a80 pcmcia_disable_device
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x356214cb pcmcia_get_mac_from_cis
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x429f6060 pcmcia_request_io
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x64d5133c pcmcia_map_mem_page
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x661e8d08 pcmcia_release_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6e738bef pcmcia_request_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6f52cebd pcmcia_request_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7490a375 pcmcia_loop_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x957d7c3d pcmcia_request_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb023b17b pcmcia_loop_config
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc70e70e4 __pcmcia_request_exclusive_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc7cccef4 pcmcia_modify_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd0aed4f9 pcmcia_register_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf3cb91ee pcmcia_access_configuration_register
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0424f77c pcmcia_put_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x31ae361b pcmcia_parse_uevents
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x382d8e70 pccard_register_pcmcia
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3c0a2a5e pcmcia_register_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x518c71ff pcmcia_unregister_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5ce70e61 pcmcia_reset_card
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7756f991 pcmcia_get_socket_by_nr
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9ba51105 pcmcia_socket_class
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa4c24ad0 pcmcia_parse_events
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd678736d pcmcia_get_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x01d9108e pccard_nonstatic_ops
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x87785394 pccard_static_ops
+EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command
+EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x7351573a pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event
+EXPORT_SYMBOL drivers/scsi/53c700 0x2f26e218 NCR_700_release
+EXPORT_SYMBOL drivers/scsi/53c700 0x3c69c05d NCR_700_detect
+EXPORT_SYMBOL drivers/scsi/53c700 0xf13d9adc NCR_700_intr
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x12ff7fe9 fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x13222102 fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x473b5ac7 fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc787d220 fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc8938ebe fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xdca784d2 fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe56a348d fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x050e2fb0 fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x08475a98 fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x09c69f1d fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1556abf2 fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x16589d64 fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1e984d08 fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4d83ffb7 fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x51d297ae fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5296a379 fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54c0bb79 libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x60075f76 fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x63db8018 fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x69063a0d fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76c39afe fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x82e6fb57 fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x83ca372c fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8d7d6e72 fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x944ec7c2 fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x94b3f23a fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa32b1d81 fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa371d4ad fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa478ea07 fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa9aefed7 fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaad44a25 fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xabf895d7 fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xad361dac fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xae52cab4 _fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaf860006 fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb01d1663 fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb4fc7df1 fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbef97ff1 fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcd4e394d fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcfc92eb3 fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd09585ec fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd48b4427 fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd6618de8 fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd995ef5d fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2dbaa2f fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf0e7b508 fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf1b0eb6d fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc148186 fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfdf14338 fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x882feb22 mraid_mm_register_adp
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x070cad75 osd_dev_init
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1ac63e92 osd_auto_detect_ver
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1c3af9cc osd_req_flush_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2da9c560 osd_finalize_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2dacc537 osd_req_remove_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2ebfa508 osd_start_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x33bb3bc5 osd_req_list_partition_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3c0d64f8 osd_req_add_get_attr_page
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3c991035 osd_req_set_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x410a6672 osd_req_add_set_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4315a05a osd_dev_fini
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x48ebd556 osd_req_flush_collection
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5e4e8b7c osd_req_create_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5f04a90b osd_req_list_partition_collections
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6216686b osd_req_create_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x636d2536 osd_req_write
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x64b58237 osd_req_list_collection_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x88fd3f43 osd_execute_request_async
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x974db6ba osd_req_format
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9aaa8a98 osd_req_get_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa639502c osd_req_write_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa990b3ba osd_execute_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xacb8e56b osd_req_flush_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xadfcce01 osd_req_decode_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb17b2087 osd_req_decode_sense_full
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb1a7f407 osd_req_list_dev_partitions
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb809f049 osd_req_add_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf88845d osd_req_flush_obsd
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc1281343 osd_end_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdd26e069 osd_req_read
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe5b3d200 osd_req_remove_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfe22ae96 osd_req_read_kern
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x0a379c90 osduld_path_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x2fc53840 osduld_put_device
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x7ccea0f5 osduld_device_info
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xa634b23a osduld_info_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xc1df63b6 osduld_device_same
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xed45b44a osduld_register_test
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x29c614e3 qlogicfas408_queuecommand
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x693ba626 qlogicfas408_disable_ints
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x6cd777d2 qlogicfas408_biosparam
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x7733e706 qlogicfas408_abort
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x874a9256 qlogicfas408_bus_reset
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe18990be qlogicfas408_info
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup
+EXPORT_SYMBOL drivers/scsi/raid_class 0x1d152f15 raid_class_attach
+EXPORT_SYMBOL drivers/scsi/raid_class 0x9d6a44e8 raid_class_release
+EXPORT_SYMBOL drivers/scsi/raid_class 0xe01ea115 raid_component_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x01bf2afe fc_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0935dc94 fc_remote_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x54236356 fc_block_scsi_eh
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x570df251 fc_remote_port_rolechg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5796d2e7 fc_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5f955b72 fc_vport_create
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x62510f75 fc_host_post_vendor_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x77f2da9f fc_vport_terminate
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9d025fee fc_remote_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa823b99a scsi_is_fc_vport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb0af10ff scsi_is_fc_rport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc14af587 fc_host_post_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf35c3690 fc_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x044e5bd7 scsi_is_sas_port
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0596f474 sas_read_port_mode_page
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0cd92f21 sas_rphy_remove
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x14790458 sas_rphy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2439c6e8 sas_port_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6133ab31 scsi_is_sas_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x63023525 sas_end_device_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x68bd73d3 sas_rphy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x78fbfdf2 scsi_is_sas_rphy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7dd76b5f sas_expander_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8c4af188 sas_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8d4f0489 sas_port_alloc_num
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8df59131 sas_remove_children
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8feca4c3 sas_phy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x902e29ad sas_port_delete_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa81da29b sas_phy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb301521a sas_phy_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbf9d200e sas_port_mark_backlink
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc95e9193 sas_port_add_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcdf7ffe7 sas_rphy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd7cad2f8 sas_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdc4d498c sas_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe56f1dd8 sas_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeb0cdddc sas_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf1ecc0b5 sas_port_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf50cccd2 sas_phy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x06efb021 spi_schedule_dv_device
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x19d755f9 spi_display_xfer_agreement
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x23ba368f spi_dv_device
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x6e848807 spi_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x79174318 spi_attach_transport
+EXPORT_SYMBOL drivers/ssb/ssb 0x11e1c052 ssb_bus_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0x26c1d6f9 ssb_bus_sdiobus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x27dfc1f0 ssb_dma_translation
+EXPORT_SYMBOL drivers/ssb/ssb 0x314249bc __ssb_driver_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x339a4e24 ssb_bus_suspend
+EXPORT_SYMBOL drivers/ssb/ssb 0x4c182a08 ssb_bus_resume
+EXPORT_SYMBOL drivers/ssb/ssb 0x67361f83 ssb_chipco_gpio_control
+EXPORT_SYMBOL drivers/ssb/ssb 0x6c8bd05a ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL drivers/ssb/ssb 0x6d4ace29 ssb_bus_pcibus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x81835c73 ssb_clockspeed
+EXPORT_SYMBOL drivers/ssb/ssb 0x83493815 ssb_device_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x878cef9c ssb_pcihost_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x8ba62c19 ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x96c0fd57 ssb_device_is_enabled
+EXPORT_SYMBOL drivers/ssb/ssb 0x982bcf08 ssb_device_disable
+EXPORT_SYMBOL drivers/ssb/ssb 0xa23e1122 ssb_dma_free_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0xbe6c0f6f ssb_set_devtypedata
+EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base
+EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size
+EXPORT_SYMBOL drivers/ssb/ssb 0xe9607f61 ssb_bus_may_powerdown
+EXPORT_SYMBOL drivers/ssb/ssb 0xea669f52 ssb_dma_set_mask
+EXPORT_SYMBOL drivers/ssb/ssb 0xf627fc0d ssb_bus_powerup
+EXPORT_SYMBOL drivers/ssb/ssb 0xfc725a6d ssb_driver_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0xfe5c0fbe ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL drivers/ssb/ssb 0xffa58db6 ssb_dma_alloc_consistent
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x109b5d78 comedi_driver_register
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x1fe97556 comedi_buf_memcpy_to
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x30069a2b comedi_buf_read_free
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x43249337 comedi_buf_read_n_available
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x45b0cbfb comedi_buf_write_free
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4b3eb1a3 comedi_buf_write_alloc
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x5abff928 comedi_buf_get
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x985a775b comedi_check_chanlist
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xac0a9522 comedi_buf_put
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xadf19c9c comedi_buf_read_alloc
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc7744341 comedi_get_subdevice_runflags
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xcd9d0dde comedi_driver_unregister
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb3dceec comedi_error
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe4a67ac5 comedi_event
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe82255a3 comedi_buf_memcpy_from
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x86e4063b subdev_8255_init
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xcee84f20 subdev_8255_interrupt
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xd2a21d15 subdev_8255_cleanup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xdd42ded2 subdev_8255_init_irq
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x3177d6f4 cfc_write_array_to_buffer
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x71dd4be2 cfc_handle_events
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xe3a1102f cfc_read_array_from_buffer
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x0b664010 mite_done
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x16120d40 mite_buf_change
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x1652e432 mite_prep_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x22eda390 mite_bytes_written_to_memory_lb
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x2a5e2f55 mite_request_channel_in_range
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x2a6e325f mite_dma_disarm
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x2f9f2e2a mite_bytes_in_transit
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x32e502df mite_release_channel
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x3bbc4753 mite_bytes_read_from_memory_ub
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x48092406 mite_dma_arm
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x674a28ed mite_bytes_written_to_memory_ub
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6ce149fe mite_unsetup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x76dae697 mite_setup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7ba1dae4 mite_sync_input_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x7e1bcc2e mite_bytes_read_from_memory_lb
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x93911450 mite_setup2
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xaee2ce22 mite_devices
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xb0b7a276 mite_sync_output_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xccb01ff9 mite_dma_tcr
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xd61c4f8c mite_get_status
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x38003287 subdev_700_interrupt
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x77336c4e subdev_700_init_irq
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x95fd95bf subdev_700_init
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xb8a76c2f subdev_700_cleanup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0xc2501f48 comedi_pcm_cmdtest
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x183032ca comedi_open
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x306dd886 comedi_dio_config
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x6bf82995 comedi_get_n_channels
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x7f83be7f comedi_find_subdevice_by_type
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x84929993 comedi_close
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xb5e47614 comedi_dio_bitfield
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x15df1c57 cx25821_risc_databuffer_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x784853c3 cx25821_print_irqbits
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x95c383d2 cx25821_set_gpiopin_direction
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xa535af38 cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xd0c055a6 cx25821_dev_get
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xdc2c282f cx25821_sram_channel_setup
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xe3ba2534 cx25821_dev_unregister
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xe7d9dd39 cx25821_sram_channel_dump
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xee77b013 cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x29478332 go7007_read_interrupt
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x75c29158 go7007_boot_encoder
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x8d58e30f go7007_remove
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xa3e74865 go7007_parse_video_stream
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xa6ca9be8 go7007_alloc
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xbf0182e2 go7007_snd_remove
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xc64c9c5f go7007_register_encoder
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xcf688785 go7007_snd_init
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xf5067c24 go7007_read_addr
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x10a885b7 hv_cb_utils
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x253f3d14 vmbus_get_interface
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4102ac95 VmbusChannelRecvPacket
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x7740f07b vmbus_child_driver_unregister
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x77ff9d0f vmbus_child_driver_register
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x848c170c VmbusChannelSendPacket
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1081ccb9 iio_trigger_attach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x11a48c13 iio_scan_el_show
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x17ff384a iio_read_const_attr
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1bd7221e iio_ring_buffer_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1c86949c iio_store_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1e32d057 iio_register_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x21aed761 iio_device_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x25cf04a7 iio_scan_el_ts_show
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x37d44086 iio_ring_buffer_init
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3e40b00b iio_trigger_poll
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x42bc5f89 __iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x459facf2 iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x496a7da3 iio_remove_event_from_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4bacafa3 iio_write_ring_length
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4be1ef67 iio_allocate_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x52f25305 iio_unregister_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x56cfe665 iio_trigger_read_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6fbbf9de iio_allocate_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x79935af6 iio_read_ring_length
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7c697f4a iio_scan_el_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8096949b iio_scan_el_ts_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x83f41d0f iio_trigger_notify_done
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x893f725d iio_free_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9182d5a4 iio_device_unregister_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9bfa4969 iio_read_ring_bps
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9d0cd74b iio_bus_type
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa744e095 iio_trigger_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xac17e589 iio_device_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xae536d23 iio_trigger_dettach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb0e81791 iio_free_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb0fe3436 iio_add_event_to_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb60bef1c iio_get_new_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd682c80f iio_trigger_find_by_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xdcf6ad51 iio_push_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xde815c7a iio_push_or_escallate_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xe4e915b0 iio_free_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xf21e2064 iio_ring_buffer_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfbe8a030 iio_device_register_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfd73ce73 iio_trigger_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xff49d118 iio_show_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x01124c8a iio_sw_rb_free
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x1061f10e iio_read_last_from_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x10e9a75b iio_mark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x1a0d56b5 iio_sw_rb_allocate
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x2024ecb1 iio_store_to_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x5c61413a iio_get_length_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6b3008c4 iio_request_update_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6b6e2d23 iio_unmark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6f5faa8c iio_get_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x8f78e970 iio_set_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xa4d41658 iio_rip_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xdb2eccc8 iio_mark_update_needed_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xf5885abd iio_set_length_sw_rb
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x29aaad74 variax_create_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x417535ed pod_create_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x6347fc24 variax_remove_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0xc732379a pod_remove_files
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0x3cb44311 rar_release
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0xaf94751b rar_handle_to_bus
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0xc7723e22 rar_reserve
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x6cce72cd rar_get_address
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x01ad2f5d ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x078bd2d4 ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x08af002d SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x15ff9718 ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1cb5a523 Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1fd6667d ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x20232fe7 ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2223f1e4 IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2881ceaf ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2ea73326 ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x38733620 ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3ab5d442 ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cef1b8c ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x42ba967a ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x44683233 DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x466528c9 ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b9d0246 ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4e250123 ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x50c50231 ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5186c1b8 ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x59c90424 ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5f48e3b8 ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6709e0d1 ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6adb8f99 Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6f75a45d ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x70f6b6e6 ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x75889c0d ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7602941f ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7ba465b5 ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7bd3ccfd ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x832afe66 ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x840fe4f0 ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x865a8b1a ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8becd861 ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9264abcd ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb335c81d DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb5cc1d81 ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb6bda2a4 Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb792fc03 ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbaff17a8 ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xca2d4080 ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcfded82c ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd38acd0a ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd5da89f3 ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe301a172 ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe379b5e0 ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe40ff770 ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xebd11bf9 HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xede9610b ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xef23c605 ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf2bda8ae ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf4dd4cef notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf60ceeeb ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa63645e ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x4405dd91 tm6000_unregister_extension
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x814dc982 tm6000_register_extension
+EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count
+EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x20431ea8 vme_bus_type
+EXPORT_SYMBOL drivers/staging/vme/vme 0x251b9ed8 vme_slave_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x2c1a3c34 vme_dma_list_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x304e1189 vme_lm_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3d1af350 vme_dma_pci_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3ffefd03 vme_dma_list_add
+EXPORT_SYMBOL drivers/staging/vme/vme 0x41af7338 vme_irq_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x426fd49b vme_unregister_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x47146de8 vme_irq_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x5196035b vme_master_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x52f2d0df vme_unregister_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x66227eae vme_alloc_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0x6b4aa8ce vme_irq_generate
+EXPORT_SYMBOL drivers/staging/vme/vme 0x6b56ef23 vme_dma_list_exec
+EXPORT_SYMBOL drivers/staging/vme/vme 0x720bc6f7 vme_slot_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7ea759a8 vme_irq_handler
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7fde2edb vme_master_read
+EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach
+EXPORT_SYMBOL drivers/staging/vme/vme 0x93dff61f vme_slave_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x94b2590f vme_free_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0x9a8a26f8 vme_new_dma_list
+EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach
+EXPORT_SYMBOL drivers/staging/vme/vme 0xa3d592ce vme_slave_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xcc22678d vme_register_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0xd797b9a5 vme_master_write
+EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe5813ff0 vme_dma_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe693a6ce vme_get_size
+EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xfbb18a47 vme_register_bridge
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free
+EXPORT_SYMBOL drivers/telephony/ixj 0x114bef20 ixj_pcmcia_probe
+EXPORT_SYMBOL drivers/telephony/phonedev 0xbd768ebe phone_register_device
+EXPORT_SYMBOL drivers/telephony/phonedev 0xd24d197a phone_unregister_device
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x040647a0 usb_gadget_unregister_driver
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xbcdeee52 net2280_set_fifo_mode
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xeb176dfe usb_gadget_register_driver
+EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xb544d669 sl811h_driver
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x051336d6 usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x07650a61 usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7344acc8 usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x90b8b9ac usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x96e6e8bc usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9f26e189 usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xaec5eb79 usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xbb0b3395 usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xbe155701 usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc6c5b3bc usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc8b569c4 usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd506f9fa usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe7ea0dad usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xed82764a usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x004a5b5a usb_serial_resume
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x41e60a9f usb_serial_suspend
+EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x8cc2a6a1 lcd_device_unregister
+EXPORT_SYMBOL drivers/video/backlight/lcd 0xf9402c85 lcd_device_register
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0aa68047 cyber2000fb_attach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x1cbde80e cyber2000fb_enable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x1f554986 cyber2000fb_get_fb_var
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x5b7e8b27 cyber2000fb_disable_extregs
+EXPORT_SYMBOL drivers/video/display/display 0x9c63bf36 display_device_unregister
+EXPORT_SYMBOL drivers/video/display/display 0xb75ba30b display_device_register
+EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var
+EXPORT_SYMBOL drivers/video/macmodes 0x3a8207da mac_find_mode
+EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x2c27c917 matroxfb_g450_setclk
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xa9cbb492 matroxfb_g450_setpll_cond
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xb4594d80 g450_mnp2f
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x7d3c3931 matrox_mystique
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xaafb4b1c matrox_G100
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xc8a8f16a DAC1064_global_restore
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xe9afced7 DAC1064_global_init
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xca84dcc7 matrox_millennium
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x89160882 matrox_cfbX_init
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x23e09766 matroxfb_wait_for_sync
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x743365b8 matroxfb_enable_irq
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xe356dbeb matroxfb_unregister_driver
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xf3e64db7 matroxfb_register_driver
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x858fc3a1 matroxfb_g450_connect
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xe3570f25 matroxfb_g450_shutdown
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x3c32290d matroxfb_vgaHWrestore
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x55fa5be8 matroxfb_vgaHWinit
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x71cff18b matroxfb_DAC_out
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x791790e1 matroxfb_read_pins
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xccd0a220 matroxfb_DAC_in
+EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x03207bf7 mb862xxfb_init_accel
+EXPORT_SYMBOL drivers/video/output 0x6542e87a video_output_unregister
+EXPORT_SYMBOL drivers/video/output 0x6803fcba video_output_register
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free
+EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x0e45cdc5 svga_get_tilemax
+EXPORT_SYMBOL drivers/video/svgalib 0x10b9ad9f svga_settile
+EXPORT_SYMBOL drivers/video/svgalib 0x16537945 svga_tilecopy
+EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x63a61b7f svga_tilecursor
+EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xd2f1f987 svga_tilefill
+EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xe327d978 svga_tileblit
+EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format
+EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll
+EXPORT_SYMBOL drivers/video/svgalib 0xf0c996bc svga_get_caps
+EXPORT_SYMBOL drivers/video/syscopyarea 0x13a99523 sys_copyarea
+EXPORT_SYMBOL drivers/video/sysfillrect 0xa403761d sys_fillrect
+EXPORT_SYMBOL drivers/video/sysimgblt 0xc0750c44 sys_imageblit
+EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga
+EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x2c8df9d7 w1_bq27000_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xedc842af w1_bq27000_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x18005968 w1_ds2760_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x47d204df w1_ds2760_recall_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd8072404 w1_ds2760_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd9323589 w1_ds2760_store_eeprom
+EXPORT_SYMBOL drivers/w1/wire 0x3ed9c35c w1_register_family
+EXPORT_SYMBOL drivers/w1/wire 0x4b724d22 w1_remove_master_device
+EXPORT_SYMBOL drivers/w1/wire 0x733b0d09 w1_unregister_family
+EXPORT_SYMBOL drivers/w1/wire 0x87c45b9e w1_add_master_device
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop
+EXPORT_SYMBOL fs/configfs/configfs 0x28ca06ab config_group_find_item
+EXPORT_SYMBOL fs/configfs/configfs 0x34b6a2bf config_group_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x3a2afb35 config_item_init
+EXPORT_SYMBOL fs/configfs/configfs 0x5ce0d5f2 configfs_unregister_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0x70ef506a config_group_init
+EXPORT_SYMBOL fs/configfs/configfs 0x74cc8b6b configfs_undepend_item
+EXPORT_SYMBOL fs/configfs/configfs 0x9700a2a6 configfs_depend_item
+EXPORT_SYMBOL fs/configfs/configfs 0xaab03f31 config_item_set_name
+EXPORT_SYMBOL fs/configfs/configfs 0xb7e82412 config_item_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0xb937f2ca configfs_register_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xdeb325a1 config_item_put
+EXPORT_SYMBOL fs/configfs/configfs 0xf1249769 config_item_get
+EXPORT_SYMBOL fs/fscache/fscache 0x012404bf fscache_obtained_object
+EXPORT_SYMBOL fs/fscache/fscache 0x03cf7672 fscache_mark_pages_cached
+EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible
+EXPORT_SYMBOL fs/fscache/fscache 0x196c0ecc __fscache_relinquish_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x2138cdc2 __fscache_read_or_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0x28eff786 fscache_io_error
+EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit
+EXPORT_SYMBOL fs/fscache/fscache 0x4200f2b1 fscache_add_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x50055ce3 fscache_check_aux
+EXPORT_SYMBOL fs/fscache/fscache 0x52c7a3e2 __fscache_attr_changed
+EXPORT_SYMBOL fs/fscache/fscache 0x53272a3b __fscache_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0x65a4422b __fscache_uncache_page
+EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id
+EXPORT_SYMBOL fs/fscache/fscache 0x7b2ca5fd fscache_enqueue_operation
+EXPORT_SYMBOL fs/fscache/fscache 0x7edcb78e fscache_fsdef_index
+EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states
+EXPORT_SYMBOL fs/fscache/fscache 0x9027bca1 fscache_object_slow_work_ops
+EXPORT_SYMBOL fs/fscache/fscache 0x921f644c __fscache_check_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x96e0b27a fscache_init_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xa3213b18 __fscache_write_page
+EXPORT_SYMBOL fs/fscache/fscache 0xb00b3a31 __fscache_wait_on_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq
+EXPORT_SYMBOL fs/fscache/fscache 0xbf591c66 __fscache_update_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xbf70ef2b fscache_put_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xbfb67fd2 fscache_object_lookup_negative
+EXPORT_SYMBOL fs/fscache/fscache 0xc321b91c __fscache_maybe_release_page
+EXPORT_SYMBOL fs/fscache/fscache 0xc9288907 __fscache_acquire_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xe745a443 __fscache_register_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0xe9ff905a __fscache_read_or_alloc_pages
+EXPORT_SYMBOL fs/fscache/fscache 0xf3fceb13 fscache_withdraw_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xff8e3b57 __fscache_unregister_netfs
+EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix
+EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new
+EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who
+EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype
+EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4
+EXPORT_SYMBOL fs/quota/quota_tree 0x26a832f5 qtree_delete_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x332793cb qtree_entry_unused
+EXPORT_SYMBOL fs/quota/quota_tree 0x416444a6 qtree_release_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x70940f48 qtree_read_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xfa4e48be qtree_write_dquot
+EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt
+EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table
+EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table
+EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t
+EXPORT_SYMBOL lib/crc7 0xa7587646 crc7
+EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table
+EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd
+EXPORT_SYMBOL net/802/p8023 0x17ec89f2 destroy_8023_client
+EXPORT_SYMBOL net/802/p8023 0x19130b90 make_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x0597a52a p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0x09927cb3 p9_client_version
+EXPORT_SYMBOL net/9p/9pnet 0x09f63d97 p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x0a1ef2e1 p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0x127714d2 p9_idpool_check
+EXPORT_SYMBOL net/9p/9pnet 0x1306a99c p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x1c8ebad6 p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x3df52836 p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0x40597ea6 p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x42cc2db6 v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x5c6f9127 p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x7dd8465b p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x7e21331e p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0x8bbd6880 p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0x91280609 p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x91bd79a3 p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0x94464960 p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0xa124e4b0 p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0xa165944b p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0xab7187d7 p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0xac376bda p9_client_auth
+EXPORT_SYMBOL net/9p/9pnet 0xb0cde1c5 p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0xc18478d3 v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0xcce1ddcd p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump
+EXPORT_SYMBOL net/9p/9pnet 0xd43c7319 v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0xdab77c64 v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0xe19978b9 p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xe78bd51e p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0xf2b42d47 p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0xf3615b86 p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xf407bb07 p9_client_fcreate
+EXPORT_SYMBOL net/appletalk/appletalk 0x495a870f atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0x70d5bb3d atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0x795c265c alloc_ltalkdev
+EXPORT_SYMBOL net/appletalk/appletalk 0x824bc6c8 aarp_send_ddp
+EXPORT_SYMBOL net/atm/atm 0x22790917 vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x55464086 deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x75c87050 atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0x7644e481 atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0x8dff5f35 atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0x8fb73077 register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xa83c0ea3 atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xb18bb8e5 atm_charge
+EXPORT_SYMBOL net/atm/atm 0xba898f94 vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0xdee53e93 atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal
+EXPORT_SYMBOL net/atm/atm 0xfd194818 atm_dev_register
+EXPORT_SYMBOL net/ax25/ax25 0x14c89855 ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x166caa72 ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0x22b7344f ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0x23275554 ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x54ebb934 ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0xa749cccc ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0xaab611b6 ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xd24b51ae ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0xd35311a2 ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x040b1ecf bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0f601bf6 hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x14cca93f hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x15031cac bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1860d321 hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x197f7a83 hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x20523454 hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x29b6a1f1 bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x329d454f hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x358a2631 hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3faf2172 hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4d92fe22 hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5411e19f hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5a3ae61a hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x734cb961 bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7af89434 bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c0d4ff9 hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7e93b0cb hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7fad0ca6 hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x904708ab hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x93b5b28e bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa0f488cd hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa6f7733b hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xafa2915b hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb5a6c450 hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xba2c0d14 bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xbe1c4ca1 bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcd9a1d25 bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd7ba9d2b hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe277f6a7 hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xed2b9e79 bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xfff7e4f2 hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load
+EXPORT_SYMBOL net/bridge/bridge 0x06bbb1b8 br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x2e1c43c9 ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x97e78b1e ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd676eca3 ebt_register_table
+EXPORT_SYMBOL net/caif/caif 0x0180d01d cfpkt_setlen
+EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client
+EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer
+EXPORT_SYMBOL net/caif/caif 0x1549e15d cfpkt_add_trail
+EXPORT_SYMBOL net/caif/caif 0x2452de62 cfpkt_pad_trail
+EXPORT_SYMBOL net/caif/caif 0x2ebc6ade cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x3ff45f1c cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0x4622a5a3 cfpkt_extr_trail
+EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x49166afc cfpkt_addbdy
+EXPORT_SYMBOL net/caif/caif 0x5468ad83 cfpkt_dequeue
+EXPORT_SYMBOL net/caif/caif 0x5602d43f cfpkt_add_body
+EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create
+EXPORT_SYMBOL net/caif/caif 0x68ee4a0c cfpkt_extr_head
+EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x72289264 cfpkt_iterate
+EXPORT_SYMBOL net/caif/caif 0x784573e5 cfpkt_append
+EXPORT_SYMBOL net/caif/caif 0x86ba01b6 cfpkt_log_pkt
+EXPORT_SYMBOL net/caif/caif 0x9566804f cfpkt_clone_release
+EXPORT_SYMBOL net/caif/caif 0x9d18d85a cfpkt_create
+EXPORT_SYMBOL net/caif/caif 0xa0ed2d71 cfpkt_getlen
+EXPORT_SYMBOL net/caif/caif 0xa7f3d883 cfpkt_qpeek
+EXPORT_SYMBOL net/caif/caif 0xa833aa13 cfpkt_qcount
+EXPORT_SYMBOL net/caif/caif 0xaa77e55e cfpktq_create
+EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xb0422115 cfpkt_raw_append
+EXPORT_SYMBOL net/caif/caif 0xb0cd7895 cfpkt_create_uplink
+EXPORT_SYMBOL net/caif/caif 0xb26bd728 cfpkt_destroy
+EXPORT_SYMBOL net/caif/caif 0xba792e0b cfpkt_add_head
+EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer
+EXPORT_SYMBOL net/caif/caif 0xc50022dd cfpkt_peek_head
+EXPORT_SYMBOL net/caif/caif 0xc5a8e633 cfpkt_queue
+EXPORT_SYMBOL net/caif/caif 0xe8111859 cfpkt_more
+EXPORT_SYMBOL net/caif/caif 0xe8ddf0d2 cfpkt_info
+EXPORT_SYMBOL net/caif/caif 0xeb42e75f cfpkt_split
+EXPORT_SYMBOL net/caif/caif 0xf02b0408 cfpkt_raw_extract
+EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf
+EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer
+EXPORT_SYMBOL net/caif/caif 0xf9926e2c cfpkt_erroneous
+EXPORT_SYMBOL net/can/can 0x55b270d6 can_rx_unregister
+EXPORT_SYMBOL net/can/can 0x81926331 can_send
+EXPORT_SYMBOL net/can/can 0x85656582 can_rx_register
+EXPORT_SYMBOL net/can/can 0xa9e8547f can_proto_unregister
+EXPORT_SYMBOL net/can/can 0xb2da6294 can_proto_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0350a31d wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0a297f06 wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x243242ce ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x26792558 ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x2bd0ba33 ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x3f2c83aa ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x4522b22c wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x85d073a2 wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xa06ba1fb ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xc8c6a48f ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xdd43b5ab wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xefe7d6b0 ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xfdd8ad20 wpan_phy_alloc
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xb92d156e arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xb97da64f arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xff1bb8d3 arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x057f01f0 ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x8ebee7b2 ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf84f8e11 ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x205033b3 nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x27079fae nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x581bb441 nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5d600cbc nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb8844637 __nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xe42a47ff nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf51bf02c nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0x6b56e8e4 xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv4/tunnel4 0xd2e93046 xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x2b4473c8 ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x5a3baf76 ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x6cffcc7f ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x70631902 ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/tunnel6 0x31f2e456 xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/tunnel6 0xc09bcae2 xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x89e74dd7 xfrm6_tunnel_free_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xa4dadfc0 xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe47a73ef xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0c99fad9 ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x12c45cda ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1f2215cf ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4fdc8732 ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x59393053 ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6fac68f7 ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb2a87136 ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe5c08853 ircomm_close
+EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value
+EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service
+EXPORT_SYMBOL net/irda/irda 0x09014ffd iriap_open
+EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x10089c1d proc_irda
+EXPORT_SYMBOL net/irda/irda 0x16afff73 irttp_dup
+EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x23624bb8 hashbin_get_first
+EXPORT_SYMBOL net/irda/irda 0x29c016a2 irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug
+EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object
+EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value
+EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service
+EXPORT_SYMBOL net/irda/irda 0x478639fd irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x4f6b52b5 irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0x5aa5a6ac irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0x5e7a3d1f irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0x62529443 irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new
+EXPORT_SYMBOL net/irda/irda 0x677fad8e irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0x687e0d0d irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object
+EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies
+EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client
+EXPORT_SYMBOL net/irda/irda 0x71096f9b iriap_close
+EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x823ee9e5 irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0x909dec8d irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x95f2efa4 irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find
+EXPORT_SYMBOL net/irda/irda 0x9b35f23e irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0xa55dba26 irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0xa782a8df async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0xaaf1929b irlap_open
+EXPORT_SYMBOL net/irda/irda 0xb1c98c81 irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value
+EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute
+EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request
+EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next
+EXPORT_SYMBOL net/irda/irda 0xd667499f irlap_close
+EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xe1e5edad iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0xe4bdf66b irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xe61c0773 irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0xea13ec24 async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma
+EXPORT_SYMBOL net/irda/irda 0xf3fe47ca irlmp_open_lsap
+EXPORT_SYMBOL net/irda/irda 0xf5e6a708 irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xfb796e63 alloc_irdadev
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x3373dea0 l2tp_tunnel_destruct
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x728b8f61 l2tp_recv_common
+EXPORT_SYMBOL net/lapb/lapb 0x0c57064d lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x35f8a93e lapb_disconnect_request
+EXPORT_SYMBOL net/lapb/lapb 0x429462c9 lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0x7abcb6c2 lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0xab01d09d lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0xb6dcbea5 lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0xce4a4471 lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0xdaf96021 lapb_data_request
+EXPORT_SYMBOL net/mac80211/mac80211 0x05edb226 ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x06578dc0 ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x1adbc10e ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x1ed3b703 ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x332a675d __ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x37ad9d90 ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3ae52d60 ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x3bbeeb0a ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x4498bbd1 ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x453f7f98 __ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x45e956d2 ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x4e16bed0 ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0x60525d99 ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x61c7b7e9 ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x62b236f9 ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0x681e304f ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x6a11f380 ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x6eb062a8 ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0x71b208a3 ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x7a78e063 ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x856f30be ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0x86e71649 wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x8bd0ed74 ieee80211_get_tkip_key
+EXPORT_SYMBOL net/mac80211/mac80211 0x94dddff6 ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x98d93e48 ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x99409fa0 ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0xa34262b8 __ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xb1b7162c ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xb35d554e ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xb5c6f767 ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0xb95e5bff ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xba44c70d ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xdde2fc01 ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xeb44d538 __ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xef2ad08e rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0xf5a2e297 ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xfb72798e ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1ecbe052 unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4f69fe7b ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x52763a37 ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5b8d089e register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x667be7c9 ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7c068b58 register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8df475a1 unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xac1de532 ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb02bb3c8 ip_vs_skb_replace
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb5e6e467 ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfdac518d register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x72c5ddf8 __nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x813c7979 __nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xc2ea6391 nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x09ba024b xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x24ec39c2 xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x33db57de xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x3407224b xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x65b72602 xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x95155665 xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x9d08f54d xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0xa581a41e xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xa8d8da3b xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xcd1b2e00 xt_register_targets
+EXPORT_SYMBOL net/phonet/phonet 0x11f7ac97 phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0x1f78f645 pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0x470c9f49 pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0x5ea19771 pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0x8bb4473e phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0xb44bd04c phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0xc17d87ed pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0xc3fd15b9 phonet_proto_register
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x03524caa rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0d60430c rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x16164fbc rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x24727243 rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2def43b8 rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x358eb930 rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x373cf621 rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4c811edd rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x59f5f98a rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5d2b1776 rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6a7c3754 rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6c534e63 rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x9d5d0c97 key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb45481fe rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xefbe2129 rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x967bb975 svc_pool_stats_open
+EXPORT_SYMBOL net/tipc/tipc 0x00dff50e tipc_forward_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes
+EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected
+EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect
+EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport
+EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge
+EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port
+EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach
+EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name
+EXPORT_SYMBOL net/tipc/tipc 0x4bbac2b9 tipc_createport_raw
+EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw
+EXPORT_SYMBOL net/tipc/tipc 0x55848bdc tipc_register_media
+EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode
+EXPORT_SYMBOL net/tipc/tipc 0x58c840dd tipc_get_port
+EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid
+EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast
+EXPORT_SYMBOL net/tipc/tipc 0x75f43187 tipc_send_buf_fast
+EXPORT_SYMBOL net/tipc/tipc 0x77d9c81b tipc_reject_msg
+EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port
+EXPORT_SYMBOL net/tipc/tipc 0x86e05952 tipc_forward_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr
+EXPORT_SYMBOL net/tipc/tipc 0x8ee9f625 tipc_createport
+EXPORT_SYMBOL net/tipc/tipc 0x950b8ebf tipc_send_buf
+EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port
+EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown
+EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name
+EXPORT_SYMBOL net/tipc/tipc 0xb19f6c9e tipc_send_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish
+EXPORT_SYMBOL net/tipc/tipc 0xb58e68b1 tipc_recv_msg
+EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send
+EXPORT_SYMBOL net/tipc/tipc 0xbb34757d tipc_continue
+EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity
+EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach
+EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer
+EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished
+EXPORT_SYMBOL net/tipc/tipc 0xed081ba7 tipc_send_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle
+EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0xc7ffe4c4 register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x60ec2464 wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0xdaa20c6e wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x03ca57be cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0e013a8a ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x0e125efd cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x11b4f36c cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x22156d38 cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x3978672b ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0x4b9b1468 cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0x4d400610 ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x54a1279b freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x5addf185 __ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x5bad6d9b wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x5ed1f5cb regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x605607a1 cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x62bf085c wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x635ac7fe cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x649b241b wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x68008218 wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x6e3a393a cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x6f865370 cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x716cb188 cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x7710d556 cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x780a0208 ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x78270718 __cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x867a3c26 cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x8ee87ce6 cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0x8ff6d86d __cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x8ffdf9c2 cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x94d0d5c2 cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0x982c319b cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0xa844182d __cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xac1fe6dd wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xbf61719f cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xc06027e8 cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xc80dc8c8 cfg80211_rx_action
+EXPORT_SYMBOL net/wireless/cfg80211 0xc82015b1 cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0xd3986128 wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0xdb796a5b cfg80211_action_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0xe1da9271 cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0xe3672a1b cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0xe7b19611 wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0xea4e6433 cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xef3be6ba cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0xf0a4c4a8 cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0xf401ec3f cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xf6be6f08 wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0xf9ebdded cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/lib80211 0x098f2c35 lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x0b529353 lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x513456d0 lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0x7523741f lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x847c7f85 lib80211_crypt_quiescing
+EXPORT_SYMBOL net/wireless/lib80211 0xebf572ed lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0xedc8d5c6 lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xf1ef6b89 lib80211_crypt_deinit_entries
+EXPORT_SYMBOL sound/ac97_bus 0x63947d7b ac97_bus_type
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x01a87b2d snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3ba4f21f snd_seq_kernel_client_enqueue_blocking
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x4ef849a5 snd_seq_event_port_attach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe0edfb73 snd_seq_create_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x07c2df86 snd_seq_device_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x794e1399 snd_seq_device_register_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x017f4a67 snd_midi_event_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x949c9ac8 snd_midi_event_no_status
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x951ea30c snd_midi_event_reset_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb00606b7 snd_midi_event_encode_byte
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb30510f7 snd_midi_event_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbeaecf8c snd_midi_event_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xddc220c4 snd_midi_event_reset_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf5eb237e snd_midi_event_free
+EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x7b24e095 snd_virmidi_new
+EXPORT_SYMBOL sound/core/snd 0x02ebb8ec snd_jack_new
+EXPORT_SYMBOL sound/core/snd 0x04e33ba9 snd_ctl_register_ioctl
+EXPORT_SYMBOL sound/core/snd 0x061cc70b snd_ctl_free_one
+EXPORT_SYMBOL sound/core/snd 0x06f26015 snd_device_new
+EXPORT_SYMBOL sound/core/snd 0x0f0e017a snd_card_free
+EXPORT_SYMBOL sound/core/snd 0x17fe7281 snd_jack_report
+EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program
+EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer
+EXPORT_SYMBOL sound/core/snd 0x1924ccee snd_ctl_unregister_ioctl
+EXPORT_SYMBOL sound/core/snd 0x2060b3f4 snd_card_create
+EXPORT_SYMBOL sound/core/snd 0x213b4b93 snd_card_proc_new
+EXPORT_SYMBOL sound/core/snd 0x22e8cad9 snd_unregister_device
+EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line
+EXPORT_SYMBOL sound/core/snd 0x24acdc9e snd_pci_quirk_lookup
+EXPORT_SYMBOL sound/core/snd 0x28c0e908 snd_card_register
+EXPORT_SYMBOL sound/core/snd 0x31ff5389 snd_ctl_remove
+EXPORT_SYMBOL sound/core/snd 0x3363317c snd_card_set_id
+EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit
+EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card
+EXPORT_SYMBOL sound/core/snd 0x53bb24e5 snd_ctl_notify
+EXPORT_SYMBOL sound/core/snd 0x55b389ce snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL sound/core/snd 0x59cc99eb snd_card_disconnect
+EXPORT_SYMBOL sound/core/snd 0x5c261f89 snd_device_free
+EXPORT_SYMBOL sound/core/snd 0x5daba872 snd_jack_set_key
+EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio
+EXPORT_SYMBOL sound/core/snd 0x616adbf8 snd_power_wait
+EXPORT_SYMBOL sound/core/snd 0x66476fba snd_card_free_when_closed
+EXPORT_SYMBOL sound/core/snd 0x6f2e42f2 snd_ctl_make_virtual_master
+EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable
+EXPORT_SYMBOL sound/core/snd 0x77dffdea snd_ctl_remove_id
+EXPORT_SYMBOL sound/core/snd 0x860d74e3 _snd_ctl_add_slave
+EXPORT_SYMBOL sound/core/snd 0x8a0019a1 snd_info_create_module_entry
+EXPORT_SYMBOL sound/core/snd 0x8d6afdd0 snd_component_add
+EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major
+EXPORT_SYMBOL sound/core/snd 0x8fa8c0a1 snd_add_device_sysfs_file
+EXPORT_SYMBOL sound/core/snd 0x938a8b4f snd_info_register
+EXPORT_SYMBOL sound/core/snd 0x948c3cdc snd_device_register
+EXPORT_SYMBOL sound/core/snd 0x9ac9264b snd_info_free_entry
+EXPORT_SYMBOL sound/core/snd 0x9bf59094 snd_cards
+EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str
+EXPORT_SYMBOL sound/core/snd 0xa067a192 snd_ctl_boolean_mono_info
+EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id
+EXPORT_SYMBOL sound/core/snd 0xa34c3306 snd_register_device_for_dev
+EXPORT_SYMBOL sound/core/snd 0xa35bcda7 snd_info_create_card_entry
+EXPORT_SYMBOL sound/core/snd 0xa42d212c snd_ctl_find_numid
+EXPORT_SYMBOL sound/core/snd 0xa849d1ff snd_jack_set_parent
+EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data
+EXPORT_SYMBOL sound/core/snd 0xb54e1820 snd_ctl_find_id
+EXPORT_SYMBOL sound/core/snd 0xbc273bae snd_seq_root
+EXPORT_SYMBOL sound/core/snd 0xbc2fd988 snd_card_file_add
+EXPORT_SYMBOL sound/core/snd 0xc0a795f9 snd_ctl_add
+EXPORT_SYMBOL sound/core/snd 0xc45da743 snd_ctl_rename_id
+EXPORT_SYMBOL sound/core/snd 0xc7dfd1f6 snd_ctl_new1
+EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio
+EXPORT_SYMBOL sound/core/snd 0xd1157735 release_and_free_resource
+EXPORT_SYMBOL sound/core/snd 0xdd05607e snd_card_file_remove
+EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf
+EXPORT_SYMBOL sound/core/snd-hwdep 0x2a77e712 snd_hwdep_new
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x14da5725 snd_dma_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x3a33c783 snd_dma_reserve_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x7571df37 snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x7f193a5d snd_dma_get_reserved_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xf54fe198 snd_dma_alloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x0062ae25 snd_pcm_sgbuf_ops_page
+EXPORT_SYMBOL sound/core/snd-pcm 0x00b702c5 snd_pcm_hw_param_last
+EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any
+EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x142afe80 snd_pcm_lib_read
+EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed
+EXPORT_SYMBOL sound/core/snd-pcm 0x1df59ad1 snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL sound/core/snd-pcm 0x25875556 snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL sound/core/snd-pcm 0x285ea662 snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL sound/core/snd-pcm 0x28c78381 snd_pcm_set_sync
+EXPORT_SYMBOL sound/core/snd-pcm 0x2a6d7d2a snd_pcm_set_ops
+EXPORT_SYMBOL sound/core/snd-pcm 0x2af7f4f4 snd_pcm_limit_hw_rates
+EXPORT_SYMBOL sound/core/snd-pcm 0x30dab7f0 snd_pcm_mmap_data
+EXPORT_SYMBOL sound/core/snd-pcm 0x376477b7 snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty
+EXPORT_SYMBOL sound/core/snd-pcm 0x40d38da2 snd_pcm_new_stream
+EXPORT_SYMBOL sound/core/snd-pcm 0x423a0696 snd_pcm_new
+EXPORT_SYMBOL sound/core/snd-pcm 0x44c827fe snd_pcm_lib_writev
+EXPORT_SYMBOL sound/core/snd-pcm 0x45b6cc67 snd_pcm_hw_rule_add
+EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size
+EXPORT_SYMBOL sound/core/snd-pcm 0x4e19269b snd_pcm_hw_constraint_list
+EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value
+EXPORT_SYMBOL sound/core/snd-pcm 0x543e7b0d snd_pcm_lib_readv
+EXPORT_SYMBOL sound/core/snd-pcm 0x54e8913e snd_pcm_sgbuf_get_chunk_size
+EXPORT_SYMBOL sound/core/snd-pcm 0x5a7b446b snd_pcm_lib_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence
+EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64
+EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width
+EXPORT_SYMBOL sound/core/snd-pcm 0x6e333ff7 snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear
+EXPORT_SYMBOL sound/core/snd-pcm 0x82000305 snd_pcm_lib_mmap_noncached
+EXPORT_SYMBOL sound/core/snd-pcm 0x85e959fc snd_pcm_period_elapsed
+EXPORT_SYMBOL sound/core/snd-pcm 0x932b4ccd snd_pcm_suspend_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x9570aba0 snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL sound/core/snd-pcm 0x97bbb50b snd_pcm_open_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0x9b644713 snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0xa40e95ae snd_pcm_link_rwlock
+EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned
+EXPORT_SYMBOL sound/core/snd-pcm 0xa921801a snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL sound/core/snd-pcm 0xaeefddfb snd_pcm_suspend
+EXPORT_SYMBOL sound/core/snd-pcm 0xb086870e snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL sound/core/snd-pcm 0xb264bb31 _snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL sound/core/snd-pcm 0xba23262f snd_pcm_lib_write
+EXPORT_SYMBOL sound/core/snd-pcm 0xc509f0ff snd_pcm_hw_param_first
+EXPORT_SYMBOL sound/core/snd-pcm 0xc6c45d26 snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0xca12dccd snd_pcm_kernel_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xd5f0a825 snd_pcm_release_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xd6aa4db9 snd_pcm_stop
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width
+EXPORT_SYMBOL sound/core/snd-pcm 0xe94aba44 snd_pcm_hw_constraint_step
+EXPORT_SYMBOL sound/core/snd-pcm 0xea882a9c snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xecb30725 snd_pcm_lib_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xed16236b snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xedb79672 snd_pcm_notify
+EXPORT_SYMBOL sound/core/snd-pcm 0xf2a599eb snd_pcm_hw_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0xf2feeb57 snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x0746707b snd_rawmidi_receive
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x18ab099d snd_rawmidi_input_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x1b640844 snd_rawmidi_transmit_empty
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x38d777ad snd_rawmidi_output_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x3c835541 snd_rawmidi_set_ops
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x43638b99 snd_rawmidi_transmit_ack
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x45b4975d snd_rawmidi_transmit
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x4f1393b1 snd_rawmidi_kernel_write
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x60f06472 snd_rawmidi_kernel_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x698a0b1f snd_rawmidi_drain_input
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x7f367f78 snd_rawmidi_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x91d9d002 snd_rawmidi_drain_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xa7b27a6f snd_rawmidi_kernel_release
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xbb18eb69 snd_rawmidi_info_select
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xcc4cf894 snd_rawmidi_drop_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xd11b122b snd_rawmidi_kernel_open
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xf54fd864 snd_rawmidi_transmit_peek
+EXPORT_SYMBOL sound/core/snd-timer 0x03e44550 snd_timer_new
+EXPORT_SYMBOL sound/core/snd-timer 0x31893fcf snd_timer_notify
+EXPORT_SYMBOL sound/core/snd-timer 0x42bbfb0c snd_timer_global_free
+EXPORT_SYMBOL sound/core/snd-timer 0x4f5e19a3 snd_timer_pause
+EXPORT_SYMBOL sound/core/snd-timer 0x50296ec1 snd_timer_continue
+EXPORT_SYMBOL sound/core/snd-timer 0x6b6c9f6d snd_timer_open
+EXPORT_SYMBOL sound/core/snd-timer 0x8ad59274 snd_timer_global_register
+EXPORT_SYMBOL sound/core/snd-timer 0x96ab9132 snd_timer_resolution
+EXPORT_SYMBOL sound/core/snd-timer 0x9cfe7b42 snd_timer_stop
+EXPORT_SYMBOL sound/core/snd-timer 0xaf01e120 snd_timer_global_new
+EXPORT_SYMBOL sound/core/snd-timer 0xc04acac5 snd_timer_interrupt
+EXPORT_SYMBOL sound/core/snd-timer 0xde13fc17 snd_timer_close
+EXPORT_SYMBOL sound/core/snd-timer 0xf9adf5c5 snd_timer_start
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x9bb0152c snd_mpu401_uart_new
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1f9dd3ae snd_opl3_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x72e2e591 snd_opl3_find_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x79153e36 snd_opl3_timer_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7f566075 snd_opl3_init
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa1344b94 snd_opl3_create
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc32e446b snd_opl3_hwdep_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc6051aeb snd_opl3_reset
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xdfd5aeb1 snd_opl3_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe045a4cd snd_opl3_load_patch
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x109c74d7 snd_opl4_write
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x43a8d236 snd_opl4_write_memory
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x66908238 snd_opl4_read
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x6d5c647f snd_opl4_create
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xb478fc15 snd_opl4_read_memory
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1be1c0c6 snd_vx_check_reg_bit
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x56ab40d4 snd_vx_load_boot_image
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x5c8c6a53 snd_vx_setup_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x607d045c snd_vx_dsp_boot
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x69078eea snd_vx_suspend
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb1731325 snd_vx_create
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb9b6ccab snd_vx_dsp_load
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc021db48 snd_vx_free_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd14c3b7b snd_vx_resume
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x1d44e5ab snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x1ef983c1 snd_ak4114_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4185a164 snd_ak4114_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x64234735 snd_ak4114_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc698f3a1 snd_ak4114_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xddd30cd6 snd_ak4114_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6d77fdd6 snd_ak4117_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x84cddd7d snd_ak4117_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xb63e0e42 snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd6dbf1ea snd_ak4117_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xdd8d3668 snd_ak4117_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xf0349af0 snd_ak4117_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x080c7f24 snd_akm4xxx_init
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x641adde1 snd_akm4xxx_reset
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x6bc89ec7 snd_akm4xxx_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xc9092d16 snd_akm4xxx_write
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x3cf058f5 snd_pt2258_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x73c9eab3 snd_pt2258_reset
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x5006db5e snd_tea575x_init
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x512d89e4 snd_tea575x_exit
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x275a8ead snd_cs8427_iec958_pcm
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x3e68f680 snd_cs8427_iec958_build
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x5bbb5fb6 snd_cs8427_create
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x5bdaebdd snd_cs8427_reg_write
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x830f7573 snd_cs8427_iec958_active
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x519d8531 snd_i2c_probeaddr
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x77c0ef36 snd_i2c_device_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x94b2214a snd_i2c_sendbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xb1ef3e51 snd_i2c_readbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xbb8a01b0 snd_i2c_bus_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xc76bfd2d snd_i2c_device_free
+EXPORT_SYMBOL sound/i2c/snd-tea6330t 0x0232dcc1 snd_tea6330t_detect
+EXPORT_SYMBOL sound/i2c/snd-tea6330t 0x4f5166bd snd_tea6330t_update_mixer
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x0adfddcc snd_es1688_pcm
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x61443a7e snd_es1688_reset
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xd5142fc0 snd_es1688_mixer
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xdc2c420e snd_es1688_create
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xe60bf17b snd_es1688_mixer_write
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x01b172d3 snd_gf1_mem_lock
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x04510519 snd_gf1_i_look16
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x093cd341 snd_gf1_mem_xfree
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x14336ec2 snd_gf1_mem_free
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1ad597d0 snd_gus_dram_write
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1b883f8b snd_gf1_mem_alloc
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1ff9665a snd_gf1_dram_addr
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x2cae18b7 snd_gus_use_dec
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x37510073 snd_gf1_ctrl_stop
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x3b02f7b6 snd_gf1_delay
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46db8d67 snd_gf1_lvol_to_gvol_raw
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x484dc293 snd_gf1_write_addr
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x545d6d0f snd_gf1_stop_voice
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x68cf9ea2 snd_gf1_i_look8
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6b9b29a6 snd_gus_initialize
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x7ab0df7a snd_gf1_pcm_new
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x7ae073a9 snd_gf1_peek
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x7d37ff18 snd_gus_dram_read
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x84e88e26 snd_gus_create
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x88112a8f snd_gf1_poke
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x896ce4c5 snd_gus_interrupt
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa849ea24 snd_gf1_look16
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb6b40aef snd_gf1_alloc_voice
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xbe8a3288 snd_gf1_new_mixer
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc05a4e53 snd_gf1_look8
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xcb7d02cb snd_gf1_translate_freq
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xdefe8e16 snd_gf1_write8
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe8dea509 snd_gf1_i_write8
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xedda4fc2 snd_gf1_rawmidi_new
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xef98aa06 snd_gf1_write16
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf478df9b snd_gus_use_inc
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xfc9d8c77 snd_gf1_free_voice
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x1101be65 snd_msnd_send_dsp_cmd
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x3a4e4fea snd_msndmix_new
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x54dfb228 snd_msndmix_force_recsrc
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x6c562464 snd_msnd_upload_host
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x6f6573e0 snd_msnd_enable_irq
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x70a5db26 snd_msnd_dsp_halt
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x859dced0 snd_msnd_disable_irq
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xb6db0061 snd_msndmix_setup
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xbb5c8e0a snd_msnd_DARQ
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xbeb9ea9a snd_msnd_pcm
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xc864ee2c snd_msnd_send_word
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xd7feb761 snd_msnd_DAPQ
+EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x2f5be7ab snd_aci_cmd
+EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0xcd81879d snd_aci_get_aci
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x0446ed4a snd_sbmixer_add_ctl
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x1967dd94 snd_sbdsp_command
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x34af6975 snd_sbdsp_reset
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4c8b126f snd_sbdsp_get_byte
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x679e0fbe snd_sbmixer_new
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x867335bf snd_sbmixer_resume
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x92f63705 snd_sbdsp_create
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x9d28b339 snd_sbmixer_suspend
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc5994db2 snd_sbmixer_read
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf2389f59 snd_sbmixer_write
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0x1d206370 snd_sb_csp_new
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x804ce06b snd_sb16dsp_get_pcm_ops
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x8823f73a snd_sb16dsp_configure
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x9d8722cc snd_sb16dsp_pcm
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt
+EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x09a872a7 snd_sb8dsp_pcm
+EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x1d3d10fc snd_sb8dsp_interrupt
+EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x8ba3bf95 snd_sb8dsp_midi
+EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xc2a4723c snd_sb8dsp_midi_interrupt
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x1ae6db40 snd_emu8000_update_reverb_mode
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x48046436 snd_emu8000_poke_dw
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x5232cfc4 snd_emu8000_load_reverb_fx
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x71c840b0 snd_emu8000_init_fm
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x86f28aab snd_emu8000_load_chorus_fx
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x96d70a2c snd_emu8000_update_chorus_mode
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x98fb33b3 snd_emu8000_peek
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xad1fa677 snd_emu8000_update_equalizer
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xb8902e18 snd_emu8000_poke
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xd440e099 snd_emu8000_peek_dw
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xef715ef2 snd_emu8000_dma_chan
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x130057ea snd_wss_mce_up
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x1e8ab275 snd_wss_timer
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x25895299 snd_cs4236_ext_out
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x3807cf39 snd_wss_mce_down
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x40519109 snd_wss_overrange
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x41118f27 snd_wss_mixer
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x54ba8f61 snd_wss_info_single
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x56429164 snd_wss_chip_id
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x6a9eb2e9 snd_wss_put_double
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x7021dd5e snd_wss_get_single
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x714bc6a9 snd_wss_get_pcm_ops
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x88434a14 snd_cs4236_ext_in
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xa5076678 snd_wss_in
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc0df711f snd_wss_info_double
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc708e49b snd_wss_get_double
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xcf847053 snd_wss_pcm
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xda905e9c snd_wss_out
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xddb78b2c snd_wss_put_single
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xe46086f7 snd_wss_create
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xee5023e5 snd_wss_interrupt
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x07dc55d6 snd_ac97_bus
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1ed9ea77 snd_ac97_pcm_close
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x20246768 snd_ac97_resume
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3e76551d snd_ac97_update_power
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5c9dc34f snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x884a5652 snd_ac97_update
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8c48baec snd_ac97_set_rate
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x90b99f1c snd_ac97_update_bits
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x998c93d4 snd_ac97_write
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa0693b8d snd_ac97_write_cache
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa39ff310 snd_ac97_get_short_name
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xacb9afe6 snd_ac97_mixer
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbe7ce382 snd_ac97_pcm_assign
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc57a9184 snd_ac97_read
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc7171036 snd_ac97_pcm_open
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe743d283 snd_ac97_tune_hardware
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfccd02fe snd_ac97_suspend
+EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0x1eafdbd8 hpi_send_recv
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0813837e snd_emu10k1_synth_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x2b922499 snd_emu10k1_ptr_write
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x82094d49 snd_emu10k1_memblk_map
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb947c723 snd_emu10k1_synth_bzero
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xca974f29 snd_emu10k1_voice_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd0502665 snd_emu10k1_voice_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xef20daec snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xfe7a0fc4 snd_emu10k1_ptr_read
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xfe7fca88 snd_emu10k1_synth_alloc
+EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xceb08236 snd_hda_parse_generic_codec
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x1685f832 snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x16ee65e9 snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x34f17137 snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x006f11d7 oxygen_write16
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x294dcb5f oxygen_pci_probe
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x441a4eb4 oxygen_write32_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x53ad061d oxygen_write8_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x613f1293 oxygen_write_spi
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x754a85c1 oxygen_pci_suspend
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x776a57fd oxygen_write16_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7bd58b41 oxygen_read8
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8d01fcad oxygen_write_i2c
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x918ccb31 oxygen_pci_resume
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9b1a2f0a oxygen_pci_remove
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb55a31ab oxygen_read16
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb619bbf3 oxygen_read32
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xbc088c2b oxygen_default_i2s_mclk
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xcda86641 oxygen_write32
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd2104131 oxygen_write_ac97_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdfebac41 oxygen_write_uart
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe94ab785 oxygen_write_ac97
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xebeed7e2 oxygen_reset_uart
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfb82524f oxygen_write8
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfc57889a oxygen_read_ac97
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x199c68d4 snd_trident_start_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x2623f32d snd_trident_write_voice_regs
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x78b50ab0 snd_trident_free_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xf4632b1e snd_trident_alloc_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xf78ae550 snd_trident_stop_voice
+EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x0d69ddc8 uda134x_dai
+EXPORT_SYMBOL sound/soundcore 0xa665e042 sound_class
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x2148779b snd_emux_unlock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x5516b44f snd_emux_free
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xa386aa0e snd_emux_register
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xc63eef6c snd_emux_terminate_all
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe367153a snd_emux_lock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xf2d3e028 snd_emux_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x3232cc61 __snd_util_memblk_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x42039b35 snd_util_memhdr_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x5aa435e6 snd_util_mem_avail
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x5d00842d snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x61f598ad __snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x890a996f __snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xb67659cb snd_util_memhdr_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xe2d24c2d snd_util_mem_alloc
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xb9eb3105 snd_usbmidi_create
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x2cfde7a9 dm_mem_cache_alloc
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x3f0ef234 dm_mem_cache_client_create
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x44b7d4de dm_mem_cache_client_destroy
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x4fe95649 dm_mem_cache_shrink
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x7fdbc401 dm_mem_cache_free
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x9abab081 dm_mem_cache_grow
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x04dca738 lirc_unregister_driver
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x265745ee lirc_register_driver
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x3c621fc0 lirc_get_pdata
+EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list
+EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer
+EXPORT_SYMBOL vmlinux 0x00cc7b60 read_cache_page
+EXPORT_SYMBOL vmlinux 0x00dc4586 mca_register_driver_integrated
+EXPORT_SYMBOL vmlinux 0x00e21f57 pnp_activate_dev
+EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x01130c44 phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr
+EXPORT_SYMBOL vmlinux 0x01405f01 security_inode_permission
+EXPORT_SYMBOL vmlinux 0x01605c13 unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x018c5d36 find_lock_page
+EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap
+EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data
+EXPORT_SYMBOL vmlinux 0x01b2eb3d bio_map_user
+EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init
+EXPORT_SYMBOL vmlinux 0x01c7a27a dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x01cdc2ff inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem
+EXPORT_SYMBOL vmlinux 0x01e80984 phy_stop
+EXPORT_SYMBOL vmlinux 0x01f0693d tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check
+EXPORT_SYMBOL vmlinux 0x021fbf89 bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0x02218e4f km_policy_notify
+EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu
+EXPORT_SYMBOL vmlinux 0x025bd82e inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x025e8598 phy_enable_interrupts
+EXPORT_SYMBOL vmlinux 0x02618dd9 scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x026a839c pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x02780665 bdget
+EXPORT_SYMBOL vmlinux 0x028dbaf1 sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc
+EXPORT_SYMBOL vmlinux 0x029990c3 scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table
+EXPORT_SYMBOL vmlinux 0x02ad0d55 inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler
+EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02e3a245 rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0x02e484c6 skb_put
+EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact
+EXPORT_SYMBOL vmlinux 0x02f24694 xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0x030ae652 bio_copy_user
+EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key
+EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set
+EXPORT_SYMBOL vmlinux 0x0348192a simple_fill_super
+EXPORT_SYMBOL vmlinux 0x036707d2 vga_get
+EXPORT_SYMBOL vmlinux 0x0370d64c bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0x0378704c inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0x037a0cba kfree
+EXPORT_SYMBOL vmlinux 0x03945083 scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0x039a6358 __scm_send
+EXPORT_SYMBOL vmlinux 0x03b99fac dev_addr_init
+EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03d073df blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0x03ede693 __pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x040ec43f phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x041342ab acpi_bus_unregister_driver
+EXPORT_SYMBOL vmlinux 0x04159709 sk_wait_data
+EXPORT_SYMBOL vmlinux 0x0417f2fe inet_ioctl
+EXPORT_SYMBOL vmlinux 0x041e523b tcf_em_register
+EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x045e1cfa md_done_sync
+EXPORT_SYMBOL vmlinux 0x0463e95f acpi_bus_add
+EXPORT_SYMBOL vmlinux 0x0479e57f inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x04b42e78 pci_enable_msix
+EXPORT_SYMBOL vmlinux 0x04bfc489 pnp_device_attach
+EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0x04ec19ea rfkill_destroy
+EXPORT_SYMBOL vmlinux 0x050d9438 log_wait_commit
+EXPORT_SYMBOL vmlinux 0x051f60aa scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups
+EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x052865cc __generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x052a7d35 sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0x0540489c blk_stop_queue
+EXPORT_SYMBOL vmlinux 0x05579a76 rfkill_get_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x05e5133c neigh_for_each
+EXPORT_SYMBOL vmlinux 0x05ff00c3 ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x061651be strcat
+EXPORT_SYMBOL vmlinux 0x061fd13b set_pages_array_wc
+EXPORT_SYMBOL vmlinux 0x06347284 mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0x0649e0d2 dma_release_declared_memory
+EXPORT_SYMBOL vmlinux 0x06551a7f dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx
+EXPORT_SYMBOL vmlinux 0x06824431 blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x06b9348e pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0x06ed76b2 pci_disable_msix
+EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn
+EXPORT_SYMBOL vmlinux 0x071dd85d scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8
+EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace
+EXPORT_SYMBOL vmlinux 0x0741b02d tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0x075c515b keyring_clear
+EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource
+EXPORT_SYMBOL vmlinux 0x07760c1b idr_get_new
+EXPORT_SYMBOL vmlinux 0x077b098d dquot_drop
+EXPORT_SYMBOL vmlinux 0x079015c4 key_payload_reserve
+EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable
+EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong
+EXPORT_SYMBOL vmlinux 0x079a5273 jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07b1028e inet6_ioctl
+EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial
+EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x07df40e6 __register_chrdev
+EXPORT_SYMBOL vmlinux 0x07ef7a62 dev_set_mtu
+EXPORT_SYMBOL vmlinux 0x07f83f0c d_instantiate
+EXPORT_SYMBOL vmlinux 0x081271ad pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0x081501a9 dm_table_get_size
+EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses
+EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0x08690c9d skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x08776d96 tcp4_gro_receive
+EXPORT_SYMBOL vmlinux 0x088e082e __pagevec_release
+EXPORT_SYMBOL vmlinux 0x088f553d module_put
+EXPORT_SYMBOL vmlinux 0x08b216fd get_sb_bdev
+EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x08df1b5e inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x08f71b81 input_register_device
+EXPORT_SYMBOL vmlinux 0x08fd36fd cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x091316e5 scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled
+EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq
+EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages
+EXPORT_SYMBOL vmlinux 0x094af716 generic_listxattr
+EXPORT_SYMBOL vmlinux 0x094ef408 vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x0972908b submit_bh
+EXPORT_SYMBOL vmlinux 0x09775cdc kref_get
+EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x09a4d634 xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions
+EXPORT_SYMBOL vmlinux 0x09dba8ae console_start
+EXPORT_SYMBOL vmlinux 0x09f20dda idr_init
+EXPORT_SYMBOL vmlinux 0x0a08ae25 gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x0a0e2670 sock_create_lite
+EXPORT_SYMBOL vmlinux 0x0a161648 d_validate
+EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr
+EXPORT_SYMBOL vmlinux 0x0a33f050 default_unplug_io_fn
+EXPORT_SYMBOL vmlinux 0x0a59718e end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x0aada757 mmc_power_restore_host
+EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all
+EXPORT_SYMBOL vmlinux 0x0ad1b4ab atomic64_add_unless_386
+EXPORT_SYMBOL vmlinux 0x0aef0982 set_user_nice
+EXPORT_SYMBOL vmlinux 0x0af4d8d0 unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert
+EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b48b82d i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0x0b4f7b7f napi_get_frags
+EXPORT_SYMBOL vmlinux 0x0b5b5cc5 __tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0x0b6d7117 tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b896137 unregister_quota_format
+EXPORT_SYMBOL vmlinux 0x0b9c5b0a scsi_register_interface
+EXPORT_SYMBOL vmlinux 0x0bb6aad5 __dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x0bb88d25 tcp_parse_options
+EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat
+EXPORT_SYMBOL vmlinux 0x0c310dfc skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x0c3b6a41 ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c705dc4 __skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x0c742f5b scsi_block_requests
+EXPORT_SYMBOL vmlinux 0x0c80384c qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0c9644cd dev_close
+EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register
+EXPORT_SYMBOL vmlinux 0x0cd3ad24 install_exec_creds
+EXPORT_SYMBOL vmlinux 0x0d1b70e5 __mmc_claim_host
+EXPORT_SYMBOL vmlinux 0x0d335aef dquot_quota_on
+EXPORT_SYMBOL vmlinux 0x0d38933a registered_fb
+EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type
+EXPORT_SYMBOL vmlinux 0x0d3de64e udp_poll
+EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d7aaba3 filp_close
+EXPORT_SYMBOL vmlinux 0x0d93e9b7 mmc_alloc_host
+EXPORT_SYMBOL vmlinux 0x0d9bde18 do_SAK
+EXPORT_SYMBOL vmlinux 0x0d9c6130 dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x0da08123 simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0de3c19f icmpv6_send
+EXPORT_SYMBOL vmlinux 0x0df5811b bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x0e00e94d udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x0e1de534 slow_work_unregister_user
+EXPORT_SYMBOL vmlinux 0x0e224e22 tcp_connect
+EXPORT_SYMBOL vmlinux 0x0e2c632c genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0x0e524e30 key_link
+EXPORT_SYMBOL vmlinux 0x0e52592a panic
+EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0x0e67269e i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0x0e703682 generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x0e9de779 inet_select_addr
+EXPORT_SYMBOL vmlinux 0x0ea4fe38 __xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x0ed7fbd8 pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0x0eef4bec pnp_disable_dev
+EXPORT_SYMBOL vmlinux 0x0f09e63f intel_scu_ipc_register_read
+EXPORT_SYMBOL vmlinux 0x0f419f79 journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x0f5c1d2d inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x0f6b81f2 filemap_flush
+EXPORT_SYMBOL vmlinux 0x0f86558b bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x0f8b339c simple_transaction_release
+EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event
+EXPORT_SYMBOL vmlinux 0x0fe1e803 sock_register
+EXPORT_SYMBOL vmlinux 0x0fe80d94 md_register_thread
+EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress
+EXPORT_SYMBOL vmlinux 0x0ff6ae8d task_nice
+EXPORT_SYMBOL vmlinux 0x0ffd068c key_revoke
+EXPORT_SYMBOL vmlinux 0x102c4413 fsync_bdev
+EXPORT_SYMBOL vmlinux 0x102c56de irq_regs
+EXPORT_SYMBOL vmlinux 0x1051d8ea generic_setxattr
+EXPORT_SYMBOL vmlinux 0x1071a208 journal_start_commit
+EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint
+EXPORT_SYMBOL vmlinux 0x10abdf3e __invalidate_device
+EXPORT_SYMBOL vmlinux 0x10b6f19e journal_start
+EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu
+EXPORT_SYMBOL vmlinux 0x10fa44bb lro_vlan_hwaccel_receive_frags
+EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype
+EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x1152a68d wake_up_process
+EXPORT_SYMBOL vmlinux 0x1161bbed tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x118f01ea putname
+EXPORT_SYMBOL vmlinux 0x11c4bd0f dw_spi_remove_host
+EXPORT_SYMBOL vmlinux 0x11dd01ad intel_scu_ipc_command
+EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin
+EXPORT_SYMBOL vmlinux 0x11fb03b8 neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0x121b4758 keyring_search
+EXPORT_SYMBOL vmlinux 0x1225450e thermal_cooling_device_unregister
+EXPORT_SYMBOL vmlinux 0x1228514b dev_addr_del
+EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0x124b995b netpoll_poll
+EXPORT_SYMBOL vmlinux 0x12679117 key_type_keyring
+EXPORT_SYMBOL vmlinux 0x1268568a tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x129f4a44 processors
+EXPORT_SYMBOL vmlinux 0x12a6d88a vfs_llseek
+EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc
+EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x12e5fe51 nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x132b4134 dm_dirty_log_type_unregister
+EXPORT_SYMBOL vmlinux 0x132c51ab __napi_complete
+EXPORT_SYMBOL vmlinux 0x13375b6f security_task_getsecid
+EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x134b4fe8 dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x13613594 journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x137195ad in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support
+EXPORT_SYMBOL vmlinux 0x137b8d8a __blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x1397294a page_address
+EXPORT_SYMBOL vmlinux 0x1399e753 km_query
+EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid
+EXPORT_SYMBOL vmlinux 0x13c5ebc4 unregister_netdev
+EXPORT_SYMBOL vmlinux 0x13c777eb prepare_creds
+EXPORT_SYMBOL vmlinux 0x13c88ebc blk_plug_device
+EXPORT_SYMBOL vmlinux 0x13ca6fef sk_alloc
+EXPORT_SYMBOL vmlinux 0x13d6b220 log_start_commit
+EXPORT_SYMBOL vmlinux 0x13ea6d2f uart_match_port
+EXPORT_SYMBOL vmlinux 0x13efb45f elevator_exit
+EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation
+EXPORT_SYMBOL vmlinux 0x13f750cf tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x1416abc5 inet_stream_connect
+EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier
+EXPORT_SYMBOL vmlinux 0x1436917d down_write
+EXPORT_SYMBOL vmlinux 0x143ee9d3 mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0x14926602 security_path_mkdir
+EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x14cf249b blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0x14d2462b journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x151146cd pci_disable_link_state
+EXPORT_SYMBOL vmlinux 0x151ea1dd seq_release
+EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x155a2eac inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x1585d78f call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0x158b15a4 ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0x15983263 max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0x15a85a32 write_inode_now
+EXPORT_SYMBOL vmlinux 0x15b43b19 sock_no_getname
+EXPORT_SYMBOL vmlinux 0x15c32e7b __set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0x15c4746d bdi_destroy
+EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister
+EXPORT_SYMBOL vmlinux 0x15e011cc scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x15fd77d8 fb_set_var
+EXPORT_SYMBOL vmlinux 0x1602b412 netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x160361e2 genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0x1609b6ef kthread_bind
+EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled
+EXPORT_SYMBOL vmlinux 0x16194ddb blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x16323ae6 skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x163660ce load_nls
+EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock
+EXPORT_SYMBOL vmlinux 0x16596159 iterate_mounts
+EXPORT_SYMBOL vmlinux 0x165c287e scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0x1676ce13 mca_device_read_pos
+EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1
+EXPORT_SYMBOL vmlinux 0x168a8d87 thermal_zone_device_register
+EXPORT_SYMBOL vmlinux 0x169458e0 simple_transaction_get
+EXPORT_SYMBOL vmlinux 0x169557ff get_disk
+EXPORT_SYMBOL vmlinux 0x16da3097 put_page
+EXPORT_SYMBOL vmlinux 0x16da66d9 pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object
+EXPORT_SYMBOL vmlinux 0x170d5235 acpi_notifier_call_chain
+EXPORT_SYMBOL vmlinux 0x1724cd63 padata_do_serial
+EXPORT_SYMBOL vmlinux 0x1748433f in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x17667211 kmem_cache_create
+EXPORT_SYMBOL vmlinux 0x177fcc58 input_set_capability
+EXPORT_SYMBOL vmlinux 0x17d4c66d bio_pair_release
+EXPORT_SYMBOL vmlinux 0x17da95f7 eisa_driver_unregister
+EXPORT_SYMBOL vmlinux 0x17de7fbb thaw_bdev
+EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17e55ad9 audit_log_format
+EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x18263aa7 dump_trace
+EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL vmlinux 0x184b864b lro_vlan_hwaccel_receive_skb
+EXPORT_SYMBOL vmlinux 0x185227bc jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x186f65e7 lock_fb_info
+EXPORT_SYMBOL vmlinux 0x189eafc8 user_path_at
+EXPORT_SYMBOL vmlinux 0x18ab54be fd_install
+EXPORT_SYMBOL vmlinux 0x18ac0771 inet_frags_init
+EXPORT_SYMBOL vmlinux 0x18fadd17 tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x190ccb2b cdev_init
+EXPORT_SYMBOL vmlinux 0x192a0e73 arp_broken_ops
+EXPORT_SYMBOL vmlinux 0x192be2ff fsnotify_obtain_group
+EXPORT_SYMBOL vmlinux 0x192d0b98 dev_mc_flush
+EXPORT_SYMBOL vmlinux 0x19322c74 remove_from_page_cache
+EXPORT_SYMBOL vmlinux 0x196474b9 vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x197a40a5 i8042_install_filter
+EXPORT_SYMBOL vmlinux 0x198152c7 dev_disable_lro
+EXPORT_SYMBOL vmlinux 0x198e7146 dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0x19967b32 mmc_power_save_host
+EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x1a1b003e mca_device_transform_memory
+EXPORT_SYMBOL vmlinux 0x1a28c035 lock_may_write
+EXPORT_SYMBOL vmlinux 0x1a43e8a3 textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled
+EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch
+EXPORT_SYMBOL vmlinux 0x1a667a7e arch_debugfs_dir
+EXPORT_SYMBOL vmlinux 0x1a7c9669 iget5_locked
+EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait
+EXPORT_SYMBOL vmlinux 0x1a925a66 down
+EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in
+EXPORT_SYMBOL vmlinux 0x1ac34966 fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0x1ac4bfd7 inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1ad7114f kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b13f394 idr_pre_get
+EXPORT_SYMBOL vmlinux 0x1b1ff892 xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0x1b20adb8 __lookup_one_len
+EXPORT_SYMBOL vmlinux 0x1b39a2e3 skb_find_text
+EXPORT_SYMBOL vmlinux 0x1b3bab28 scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0x1b44bdb0 jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton
+EXPORT_SYMBOL vmlinux 0x1b8a314f jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake
+EXPORT_SYMBOL vmlinux 0x1b9deadf napi_reuse_skb
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1bd43e3e generic_readlink
+EXPORT_SYMBOL vmlinux 0x1bee5227 tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x1c00612f find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x1c0bf4e5 jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c2a8636 kmem_cache_alloc_notrace
+EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset
+EXPORT_SYMBOL vmlinux 0x1c9fb542 rfkill_register
+EXPORT_SYMBOL vmlinux 0x1cad6bc4 tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x1cb0e20b slow_work_register_user
+EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cd12d3f xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x1ce8fa6e blk_register_region
+EXPORT_SYMBOL vmlinux 0x1d09ce59 page_put_link
+EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d4b3ed2 tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x1d4e153b posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0x1d501f79 should_remove_suid
+EXPORT_SYMBOL vmlinux 0x1d55507b jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x1d5f010d jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0x1d75af12 tty_set_operations
+EXPORT_SYMBOL vmlinux 0x1d7dfb96 scsi_host_get
+EXPORT_SYMBOL vmlinux 0x1d8e9307 inet_sendmsg
+EXPORT_SYMBOL vmlinux 0x1d921d94 __inet6_hash
+EXPORT_SYMBOL vmlinux 0x1d94df62 __blk_end_request
+EXPORT_SYMBOL vmlinux 0x1d94fad2 generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dcb777d lock_may_read
+EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1ded0d51 pci_request_region
+EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe
+EXPORT_SYMBOL vmlinux 0x1e0ad7a0 inode_init_always
+EXPORT_SYMBOL vmlinux 0x1e3a4cf1 scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr
+EXPORT_SYMBOL vmlinux 0x1e8107fb journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1eb44d29 d_invalidate
+EXPORT_SYMBOL vmlinux 0x1ed962db phy_start
+EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set
+EXPORT_SYMBOL vmlinux 0x1f229c62 generic_removexattr
+EXPORT_SYMBOL vmlinux 0x1f42cf80 block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x1f49f65c seq_lseek
+EXPORT_SYMBOL vmlinux 0x1f4b9d3d md_unregister_thread
+EXPORT_SYMBOL vmlinux 0x1f602015 __module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x1f604223 md_write_end
+EXPORT_SYMBOL vmlinux 0x1f6d27fb alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x1f78722d unregister_filesystem
+EXPORT_SYMBOL vmlinux 0x1f83ec67 skb_queue_head
+EXPORT_SYMBOL vmlinux 0x1f8e24e7 search_binary_handler
+EXPORT_SYMBOL vmlinux 0x1f986336 kmem_ptr_validate
+EXPORT_SYMBOL vmlinux 0x1fa11946 free_task
+EXPORT_SYMBOL vmlinux 0x1fb7ff70 follow_up
+EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag
+EXPORT_SYMBOL vmlinux 0x1fd6b041 dm_io
+EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat
+EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul
+EXPORT_SYMBOL vmlinux 0x2005944a rtnl_unicast
+EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x20238300 dquot_file_open
+EXPORT_SYMBOL vmlinux 0x202f66e1 pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x20395d6b dev_load
+EXPORT_SYMBOL vmlinux 0x203f010a file_update_time
+EXPORT_SYMBOL vmlinux 0x20483c98 prepare_binprm
+EXPORT_SYMBOL vmlinux 0x207331f9 seq_puts
+EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x2085d625 set_trace_device
+EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table
+EXPORT_SYMBOL vmlinux 0x20875edd kernel_read
+EXPORT_SYMBOL vmlinux 0x20a82a1b filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x20bcf0be dm_snap_cow
+EXPORT_SYMBOL vmlinux 0x20c6192f intel_scu_ipc_ioread32
+EXPORT_SYMBOL vmlinux 0x20c644be phy_device_create
+EXPORT_SYMBOL vmlinux 0x20d95d46 splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x20ed8ec6 generic_file_mmap
+EXPORT_SYMBOL vmlinux 0x2100929a tcf_hash_create
+EXPORT_SYMBOL vmlinux 0x210c2aa9 nonseekable_open
+EXPORT_SYMBOL vmlinux 0x21336032 xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16
+EXPORT_SYMBOL vmlinux 0x2163aa89 tcp_v4_remember_stamp
+EXPORT_SYMBOL vmlinux 0x21ddc15c disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x21df3950 __bread
+EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id
+EXPORT_SYMBOL vmlinux 0x21e8fd29 neigh_parms_release
+EXPORT_SYMBOL vmlinux 0x220e97ef iget_locked
+EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq
+EXPORT_SYMBOL vmlinux 0x22323ca2 pci_clear_master
+EXPORT_SYMBOL vmlinux 0x224e385c vm_insert_page
+EXPORT_SYMBOL vmlinux 0x2260459a pci_get_slot
+EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log
+EXPORT_SYMBOL vmlinux 0x2288378f system_state
+EXPORT_SYMBOL vmlinux 0x22a0e306 dm_dirty_log_type_register
+EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound
+EXPORT_SYMBOL vmlinux 0x22b87550 pci_set_master
+EXPORT_SYMBOL vmlinux 0x22d355e5 open_by_devnum
+EXPORT_SYMBOL vmlinux 0x22dc2cd1 scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0x22f7113a scsi_scan_host
+EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul
+EXPORT_SYMBOL vmlinux 0x232a37cc fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x23546da3 iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0x2366c4ac invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x2397b40f journal_init_inode
+EXPORT_SYMBOL vmlinux 0x23b3b0ef uart_resume_port
+EXPORT_SYMBOL vmlinux 0x23b7b4fd skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0x23c4ddb6 input_unregister_handle
+EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23cdb9c5 netlink_ack
+EXPORT_SYMBOL vmlinux 0x23cefb59 neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x23eac8aa inet_bind
+EXPORT_SYMBOL vmlinux 0x23edab17 find_or_create_page
+EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node
+EXPORT_SYMBOL vmlinux 0x242e8e3d bd_set_size
+EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x2477e3bd xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x2499247f phy_connect
+EXPORT_SYMBOL vmlinux 0x24a5335e bdev_read_only
+EXPORT_SYMBOL vmlinux 0x24d8fbe4 journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add
+EXPORT_SYMBOL vmlinux 0x24e1c45a inode_init_owner
+EXPORT_SYMBOL vmlinux 0x24f19d12 destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function
+EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x25102d43 netif_receive_skb
+EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid
+EXPORT_SYMBOL vmlinux 0x25254d6d proc_symlink
+EXPORT_SYMBOL vmlinux 0x2532138a jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0x254cd6b7 i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x25cdfc4d touch_atime
+EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0x2608be34 shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x260d9b18 ll_rw_block
+EXPORT_SYMBOL vmlinux 0x26255b81 sock_rfree
+EXPORT_SYMBOL vmlinux 0x26518b68 idr_replace
+EXPORT_SYMBOL vmlinux 0x265d036c tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x2660b91c current_fs_time
+EXPORT_SYMBOL vmlinux 0x266594cd kill_litter_super
+EXPORT_SYMBOL vmlinux 0x267e87e2 ps2_begin_command
+EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close
+EXPORT_SYMBOL vmlinux 0x26b29bdb pci_restore_state
+EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create
+EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x271a9435 dev_change_flags
+EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler
+EXPORT_SYMBOL vmlinux 0x2722746a rtnl_create_link
+EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del
+EXPORT_SYMBOL vmlinux 0x276e2eef kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x277303d4 scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0x277d03c5 lock_sock_fast
+EXPORT_SYMBOL vmlinux 0x2781cd6e gen_pool_add
+EXPORT_SYMBOL vmlinux 0x27864d57 memparse
+EXPORT_SYMBOL vmlinux 0x27a0e60b phy_disconnect
+EXPORT_SYMBOL vmlinux 0x27a796e6 pcix_get_mmrbc
+EXPORT_SYMBOL vmlinux 0x27ae1b50 flush_signals
+EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic
+EXPORT_SYMBOL vmlinux 0x27d018a8 dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0x27d2ea5f dma_async_device_register
+EXPORT_SYMBOL vmlinux 0x284e5041 tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll
+EXPORT_SYMBOL vmlinux 0x2861370c serio_interrupt
+EXPORT_SYMBOL vmlinux 0x288bddf1 handle_sysrq
+EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28a941c9 __mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x28aa7121 truncate_pagecache
+EXPORT_SYMBOL vmlinux 0x28b682e8 phy_attach_direct
+EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end
+EXPORT_SYMBOL vmlinux 0x28d6e4e7 zero_fill_bio
+EXPORT_SYMBOL vmlinux 0x28de27ff blk_integrity_register
+EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0x29253457 ip6_frag_match
+EXPORT_SYMBOL vmlinux 0x293e686b dentry_unhash
+EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x297eef95 get_super
+EXPORT_SYMBOL vmlinux 0x29a784cb pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set
+EXPORT_SYMBOL vmlinux 0x29beb445 take_over_console
+EXPORT_SYMBOL vmlinux 0x29f0cc45 dev_driver_string
+EXPORT_SYMBOL vmlinux 0x2a075448 jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x2a10b768 xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq
+EXPORT_SYMBOL vmlinux 0x2a248d46 sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature
+EXPORT_SYMBOL vmlinux 0x2a57bc6f f_setown
+EXPORT_SYMBOL vmlinux 0x2a5def2f intel_scu_ipc_iowrite32
+EXPORT_SYMBOL vmlinux 0x2a5fa419 __blk_run_queue
+EXPORT_SYMBOL vmlinux 0x2a61de25 pcim_enable_device
+EXPORT_SYMBOL vmlinux 0x2a97e4c0 create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x2a9abecc mmc_try_claim_host
+EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp
+EXPORT_SYMBOL vmlinux 0x2aa6b206 dma_pool_create
+EXPORT_SYMBOL vmlinux 0x2aae9847 udp_ioctl
+EXPORT_SYMBOL vmlinux 0x2adb08a7 dput
+EXPORT_SYMBOL vmlinux 0x2ae7b394 balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0x2afb7557 task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b1ad890 blk_sync_queue
+EXPORT_SYMBOL vmlinux 0x2b1dd500 kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0x2b25172f scsi_free_command
+EXPORT_SYMBOL vmlinux 0x2b269324 journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x2b2b2eb4 dquot_quota_off
+EXPORT_SYMBOL vmlinux 0x2b601543 skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0x2b67311c i2c_clients_command
+EXPORT_SYMBOL vmlinux 0x2b88c3ac elv_rb_del
+EXPORT_SYMBOL vmlinux 0x2b8c737d sockfd_lookup
+EXPORT_SYMBOL vmlinux 0x2b8e8553 kset_register
+EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba5e568 give_up_console
+EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2baab3d8 generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler
+EXPORT_SYMBOL vmlinux 0x2bc17ffd skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset
+EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle
+EXPORT_SYMBOL vmlinux 0x2c0a80cd blkdev_put
+EXPORT_SYMBOL vmlinux 0x2c19439c generic_read_dir
+EXPORT_SYMBOL vmlinux 0x2c3e7825 do_splice_to
+EXPORT_SYMBOL vmlinux 0x2c5c25ec kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x2c98e8b6 vga_switcheroo_register_handler
+EXPORT_SYMBOL vmlinux 0x2cb48812 dcache_dir_open
+EXPORT_SYMBOL vmlinux 0x2cd0abfa uart_register_driver
+EXPORT_SYMBOL vmlinux 0x2cda6df3 llc_add_pack
+EXPORT_SYMBOL vmlinux 0x2ce1ad4b neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x2ce680b9 security_path_rename
+EXPORT_SYMBOL vmlinux 0x2ce90434 fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic
+EXPORT_SYMBOL vmlinux 0x2d0233a2 vfs_write
+EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d219228 remove_inode_hash
+EXPORT_SYMBOL vmlinux 0x2d231022 netif_device_attach
+EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask
+EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x2d79141b dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2d8b30de bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x2db77695 scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0x2dbc77af user_revoke
+EXPORT_SYMBOL vmlinux 0x2dc3f5a6 neigh_table_init
+EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu
+EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception
+EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write
+EXPORT_SYMBOL vmlinux 0x2e1690c8 mmc_set_data_timeout
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e325508 ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem
+EXPORT_SYMBOL vmlinux 0x2e60aad0 __mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x2e60bace memcpy
+EXPORT_SYMBOL vmlinux 0x2e7a6432 netif_napi_del
+EXPORT_SYMBOL vmlinux 0x2e9b7d44 inet6_bind
+EXPORT_SYMBOL vmlinux 0x2eb0b53e cdrom_open
+EXPORT_SYMBOL vmlinux 0x2eb78fc1 xfrm_input
+EXPORT_SYMBOL vmlinux 0x2ec29dd4 sg_miter_next
+EXPORT_SYMBOL vmlinux 0x2ee2e5c2 scm_detach_fds
+EXPORT_SYMBOL vmlinux 0x2f1ef7bf block_sync_page
+EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user
+EXPORT_SYMBOL vmlinux 0x2f6033ca devm_ioremap
+EXPORT_SYMBOL vmlinux 0x2f610d27 pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0x2f656ec2 ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x2f85e424 md_wakeup_thread
+EXPORT_SYMBOL vmlinux 0x2fa813d4 invalidate_bdev
+EXPORT_SYMBOL vmlinux 0x2fc6e7cd lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x2fc82fd3 jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0x2fcbd5b0 blk_peek_request
+EXPORT_SYMBOL vmlinux 0x2fe484cb unregister_key_type
+EXPORT_SYMBOL vmlinux 0x300c9e07 ethtool_ntuple_flush
+EXPORT_SYMBOL vmlinux 0x30207170 do_sync_write
+EXPORT_SYMBOL vmlinux 0x303e3d83 __nla_put
+EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write
+EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0x30f038d5 acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL vmlinux 0x310917fe sort
+EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x31254698 locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x312aaf4b set_anon_super
+EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d default_red
+EXPORT_SYMBOL vmlinux 0x3157301e rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x316cf1b2 nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0x31724701 lro_receive_frags
+EXPORT_SYMBOL vmlinux 0x318a183c atomic64_sub_386
+EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc
+EXPORT_SYMBOL vmlinux 0x31aa6813 __set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x31b96204 phy_driver_register
+EXPORT_SYMBOL vmlinux 0x31c167b0 pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz
+EXPORT_SYMBOL vmlinux 0x31fb9c35 bdi_register
+EXPORT_SYMBOL vmlinux 0x31ff4976 mmc_resume_host
+EXPORT_SYMBOL vmlinux 0x3202d920 lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x32104ba1 __breadahead
+EXPORT_SYMBOL vmlinux 0x32208b02 mapping_tagged
+EXPORT_SYMBOL vmlinux 0x32567d43 nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x326d7cad read_cache_pages
+EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat
+EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x32808adb seq_escape
+EXPORT_SYMBOL vmlinux 0x3283c969 set_groups
+EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint
+EXPORT_SYMBOL vmlinux 0x32b090d6 filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x32ca9939 set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0x32d08e33 thaw_super
+EXPORT_SYMBOL vmlinux 0x32f209ab dev_add_pack
+EXPORT_SYMBOL vmlinux 0x33015357 bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x3304a89d neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x33306c7a proto_register
+EXPORT_SYMBOL vmlinux 0x333c7c20 pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0x333e5f30 skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x3344c61d slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x334f7bec __destroy_inode
+EXPORT_SYMBOL vmlinux 0x337b325a write_one_page
+EXPORT_SYMBOL vmlinux 0x33811dce km_state_expired
+EXPORT_SYMBOL vmlinux 0x3389ed7b xfrm_bundle_ok
+EXPORT_SYMBOL vmlinux 0x3390119f cdev_del
+EXPORT_SYMBOL vmlinux 0x33a4edef pci_write_vpd
+EXPORT_SYMBOL vmlinux 0x33a52a94 blk_put_request
+EXPORT_SYMBOL vmlinux 0x33a67520 mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0x33e43600 sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0x342f60fe apm_info
+EXPORT_SYMBOL vmlinux 0x3436e4a6 ethtool_op_get_rx_csum
+EXPORT_SYMBOL vmlinux 0x344ce069 elevator_init
+EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long
+EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x346d36bd pci_dev_get
+EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x349cba85 strchr
+EXPORT_SYMBOL vmlinux 0x34c1ac3e scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0x34c265bf atomic64_dec_if_positive_cx8
+EXPORT_SYMBOL vmlinux 0x34db1de6 vlan_gro_receive
+EXPORT_SYMBOL vmlinux 0x34dd28f7 is_container_init
+EXPORT_SYMBOL vmlinux 0x34e29617 page_follow_link_light
+EXPORT_SYMBOL vmlinux 0x34ed755e tr_type_trans
+EXPORT_SYMBOL vmlinux 0x34ff79f5 uart_remove_one_port
+EXPORT_SYMBOL vmlinux 0x353574ce invalidate_inodes
+EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe
+EXPORT_SYMBOL vmlinux 0x353f2c0f kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0x354c84b3 blk_make_request
+EXPORT_SYMBOL vmlinux 0x355e2931 brioctl_set
+EXPORT_SYMBOL vmlinux 0x35704a37 i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x35acc9bf ether_setup
+EXPORT_SYMBOL vmlinux 0x35ad7ac8 ____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator
+EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x35e6d81a generic_unplug_device
+EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask
+EXPORT_SYMBOL vmlinux 0x3618507b __xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x36255a29 __scsi_add_device
+EXPORT_SYMBOL vmlinux 0x362c827d cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user
+EXPORT_SYMBOL vmlinux 0x368731fd unregister_qdisc
+EXPORT_SYMBOL vmlinux 0x36888998 kernel_listen
+EXPORT_SYMBOL vmlinux 0x36a9604e ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0x36b00fe7 elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0x36c6af51 intel_scu_ipc_iowrite8
+EXPORT_SYMBOL vmlinux 0x36cb3454 kobject_del
+EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36e6110c start_tty
+EXPORT_SYMBOL vmlinux 0x37163af9 tcp_read_sock
+EXPORT_SYMBOL vmlinux 0x371dafb7 dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x373a4803 ht_create_irq
+EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf
+EXPORT_SYMBOL vmlinux 0x37621e5f sock_i_ino
+EXPORT_SYMBOL vmlinux 0x376dc83c journal_abort
+EXPORT_SYMBOL vmlinux 0x37840342 dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0x3796556d netpoll_send_skb
+EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic
+EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date
+EXPORT_SYMBOL vmlinux 0x37dcfc4c nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64
+EXPORT_SYMBOL vmlinux 0x37f55456 ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow
+EXPORT_SYMBOL vmlinux 0x380b4d58 set_bdi_congested
+EXPORT_SYMBOL vmlinux 0x380fa1ff ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x3838a796 serio_close
+EXPORT_SYMBOL vmlinux 0x38547feb key_validate
+EXPORT_SYMBOL vmlinux 0x38551568 idr_for_each
+EXPORT_SYMBOL vmlinux 0x38804f4c fb_class
+EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe
+EXPORT_SYMBOL vmlinux 0x388db186 pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x38aa7d58 rwsem_wake
+EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0x3914fd75 arp_tbl
+EXPORT_SYMBOL vmlinux 0x39291142 devm_free_irq
+EXPORT_SYMBOL vmlinux 0x39606540 iget_failed
+EXPORT_SYMBOL vmlinux 0x3967b9b7 input_register_handle
+EXPORT_SYMBOL vmlinux 0x39724526 blk_start_queue
+EXPORT_SYMBOL vmlinux 0x3972473f bitmap_end_sync
+EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x39923482 mca_device_set_claim
+EXPORT_SYMBOL vmlinux 0x399a3afa close_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x39e4925d bdi_register_dev
+EXPORT_SYMBOL vmlinux 0x39f1ce47 mutex_unlock
+EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a2da023 vga_switcheroo_register_client
+EXPORT_SYMBOL vmlinux 0x3a631615 skb_set_dev
+EXPORT_SYMBOL vmlinux 0x3a69adc3 otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all
+EXPORT_SYMBOL vmlinux 0x3a91caea gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3aa33d8c jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x3aafcc41 unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x3abce177 skb_seq_read
+EXPORT_SYMBOL vmlinux 0x3ac3e838 register_netdevice
+EXPORT_SYMBOL vmlinux 0x3acdff81 atomic64_set_386
+EXPORT_SYMBOL vmlinux 0x3af98f9e ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x3b041b2e __dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b4f0df2 seq_bitmap
+EXPORT_SYMBOL vmlinux 0x3b622328 kobject_get
+EXPORT_SYMBOL vmlinux 0x3b66ed4c pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0x3b9b4300 writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0x3ba583c1 journal_init_dev
+EXPORT_SYMBOL vmlinux 0x3bb80bb3 clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x3bbe35f8 qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3bec4a5c pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0x3c1fb4cd rfkill_set_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf
+EXPORT_SYMBOL vmlinux 0x3c4c46fe llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0x3c553b61 ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x3c677e5d lro_flush_all
+EXPORT_SYMBOL vmlinux 0x3c7766ca mca_unregister_driver
+EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size
+EXPORT_SYMBOL vmlinux 0x3ca6ce4e get_write_access
+EXPORT_SYMBOL vmlinux 0x3ca8e710 scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0x3cce6de1 bio_init
+EXPORT_SYMBOL vmlinux 0x3ce0553e netif_carrier_off
+EXPORT_SYMBOL vmlinux 0x3ce195af path_lookup
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq
+EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0x3d3e7243 ip_fragment
+EXPORT_SYMBOL vmlinux 0x3d4fe071 current_task
+EXPORT_SYMBOL vmlinux 0x3d605d5d textsearch_register
+EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc
+EXPORT_SYMBOL vmlinux 0x3d898f3c i2c_master_recv
+EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start
+EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat
+EXPORT_SYMBOL vmlinux 0x3db27508 tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0x3db37727 block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x3dc006ef blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x3dc05aef lock_super
+EXPORT_SYMBOL vmlinux 0x3dc62ffd pnp_is_active
+EXPORT_SYMBOL vmlinux 0x3de9ca5b qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e19cb7f set_disk_ro
+EXPORT_SYMBOL vmlinux 0x3e1c003e dev_mc_del
+EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock
+EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks
+EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e5e4ace dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0x3e6a9925 dquot_enable
+EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3e9a99aa dquot_free_inode
+EXPORT_SYMBOL vmlinux 0x3ebab47d inet_release
+EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3ee8f2ae dmam_pool_create
+EXPORT_SYMBOL vmlinux 0x3ef448a1 uart_suspend_port
+EXPORT_SYMBOL vmlinux 0x3ef480b3 generic_show_options
+EXPORT_SYMBOL vmlinux 0x3eff5ac2 intel_scu_ipc_writev
+EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f1bc368 call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0x3f3159b4 gen_pool_free
+EXPORT_SYMBOL vmlinux 0x3f31bccf gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f4b8135 arp_create
+EXPORT_SYMBOL vmlinux 0x3f5fa24d tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x3f60d10f remove_proc_entry
+EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq
+EXPORT_SYMBOL vmlinux 0x3f9372f7 skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x3f991898 max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0x3fc378a0 input_unregister_handler
+EXPORT_SYMBOL vmlinux 0x3fc56922 blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0x3fdd9419 tty_port_init
+EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable
+EXPORT_SYMBOL vmlinux 0x401d6641 find_vma
+EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump
+EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds
+EXPORT_SYMBOL vmlinux 0x407fcc25 bd_claim
+EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register
+EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40c46a1a mark_info_dirty
+EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index
+EXPORT_SYMBOL vmlinux 0x40f05e98 tty_port_put
+EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring
+EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode
+EXPORT_SYMBOL vmlinux 0x410e807d pcim_pin_device
+EXPORT_SYMBOL vmlinux 0x412eaa15 fb_is_primary_device
+EXPORT_SYMBOL vmlinux 0x4132b5e8 __netif_schedule
+EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp
+EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user
+EXPORT_SYMBOL vmlinux 0x414cc80c cmpxchg8b_emu
+EXPORT_SYMBOL vmlinux 0x41596424 blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0x416137b1 gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0x41626a93 vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0x4167d012 serial8250_register_port
+EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features
+EXPORT_SYMBOL vmlinux 0x417d2c3a init_buffer
+EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x41cbd0c8 bio_alloc
+EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0x41ce35df bdevname
+EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock
+EXPORT_SYMBOL vmlinux 0x4206579a blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0x4207f135 skb_insert
+EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write
+EXPORT_SYMBOL vmlinux 0x420bf0b8 register_qdisc
+EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x4211d771 sk_dst_check
+EXPORT_SYMBOL vmlinux 0x42139e53 vga_tryget
+EXPORT_SYMBOL vmlinux 0x421b7192 fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x42224298 sscanf
+EXPORT_SYMBOL vmlinux 0x422fbf89 xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x4240798f km_state_notify
+EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force
+EXPORT_SYMBOL vmlinux 0x425a540c atomic64_dec_return_386
+EXPORT_SYMBOL vmlinux 0x4260f53c simple_rmdir
+EXPORT_SYMBOL vmlinux 0x4272d7ac __mutex_init
+EXPORT_SYMBOL vmlinux 0x427ecd94 prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0x4292364c schedule
+EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42d2893b make_EII_client
+EXPORT_SYMBOL vmlinux 0x42d38be5 free_buffer_head
+EXPORT_SYMBOL vmlinux 0x42f9996b dma_supported
+EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages
+EXPORT_SYMBOL vmlinux 0x4319df2c mpage_readpages
+EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short
+EXPORT_SYMBOL vmlinux 0x43347853 tcp_poll
+EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem
+EXPORT_SYMBOL vmlinux 0x4355e0fd sock_no_listen
+EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32
+EXPORT_SYMBOL vmlinux 0x4377fb3d mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0x43889435 pneigh_lookup
+EXPORT_SYMBOL vmlinux 0x4388d60c key_put
+EXPORT_SYMBOL vmlinux 0x43a46796 __neigh_event_send
+EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get
+EXPORT_SYMBOL vmlinux 0x43b87c21 input_allocate_device
+EXPORT_SYMBOL vmlinux 0x43c9f937 inet_put_port
+EXPORT_SYMBOL vmlinux 0x43cbc674 page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0x43f19663 pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0x44367ce4 generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x4438bd6c sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x443c2d19 bio_clone
+EXPORT_SYMBOL vmlinux 0x444201a2 xrlim_allow
+EXPORT_SYMBOL vmlinux 0x444779c4 nla_find
+EXPORT_SYMBOL vmlinux 0x4458cb79 put_mnt_ns
+EXPORT_SYMBOL vmlinux 0x445bfee9 mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0x4472d315 sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0x4490fb53 insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz
+EXPORT_SYMBOL vmlinux 0x44bebe82 __page_symlink
+EXPORT_SYMBOL vmlinux 0x44bef247 xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x44c7c9f7 phy_attach
+EXPORT_SYMBOL vmlinux 0x44dae6f1 elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0x44e9a829 match_token
+EXPORT_SYMBOL vmlinux 0x44f02e4a abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0x44fc1948 blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0x45097c06 neigh_create
+EXPORT_SYMBOL vmlinux 0x4515c62b md_wait_for_blocked_rdev
+EXPORT_SYMBOL vmlinux 0x4519caca mca_device_transform_irq
+EXPORT_SYMBOL vmlinux 0x4519fa23 bio_split
+EXPORT_SYMBOL vmlinux 0x45367c84 con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled
+EXPORT_SYMBOL vmlinux 0x45413f26 sk_receive_skb
+EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x4554b53d mca_device_read_stored_pos
+EXPORT_SYMBOL vmlinux 0x455d3fff __register_binfmt
+EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0x45897183 pci_disable_msi
+EXPORT_SYMBOL vmlinux 0x458c3868 slow_work_sleep_till_thread_needed
+EXPORT_SYMBOL vmlinux 0x4590ee31 generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0x45947727 param_array_set
+EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states
+EXPORT_SYMBOL vmlinux 0x459a6dab tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0x459af1e5 qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x45a0c1c1 bd_release
+EXPORT_SYMBOL vmlinux 0x45a0e3ac sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x45aa4610 tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45d67ad9 generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy
+EXPORT_SYMBOL vmlinux 0x46346e9b nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0x465d9151 init_special_inode
+EXPORT_SYMBOL vmlinux 0x466c14a7 __delay
+EXPORT_SYMBOL vmlinux 0x468b4e70 elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0x46a15291 sk_reset_timer
+EXPORT_SYMBOL vmlinux 0x46a72092 tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0x46bac662 xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0x46c5f1a9 notify_change
+EXPORT_SYMBOL vmlinux 0x46d82f91 bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x46dbd445 fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0x46e99e7e rfkill_unregister
+EXPORT_SYMBOL vmlinux 0x46fbdf55 fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0x46feceac inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x4709f41a ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0x4710edc5 xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects
+EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq
+EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit
+EXPORT_SYMBOL vmlinux 0x47a4ab8e pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number
+EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open
+EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep
+EXPORT_SYMBOL vmlinux 0x484d2e4f unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days
+EXPORT_SYMBOL vmlinux 0x488dd3cd tty_vhangup
+EXPORT_SYMBOL vmlinux 0x48946a19 noop_fsync
+EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map
+EXPORT_SYMBOL vmlinux 0x48cf0477 call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0x48d2eac0 softnet_data
+EXPORT_SYMBOL vmlinux 0x48fac5b5 tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0x49014b88 request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0x49169525 tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0x491ff3dc mmc_host_disable
+EXPORT_SYMBOL vmlinux 0x49377c7f request_key
+EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x494b449d nf_register_hooks
+EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x49774502 xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0x497f8d73 contig_page_data
+EXPORT_SYMBOL vmlinux 0x49abf871 napi_gro_frags
+EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49c3147b alloc_disk_node
+EXPORT_SYMBOL vmlinux 0x49d174fd netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x49d79db3 n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string
+EXPORT_SYMBOL vmlinux 0x49fa2fad acpi_check_resource_conflict
+EXPORT_SYMBOL vmlinux 0x4a07c7d8 jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0x4a0e36cd delayed_slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a66700e journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x4a68b405 dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc
+EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x4ada71ba mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x4adc7b2e unregister_8022_client
+EXPORT_SYMBOL vmlinux 0x4ae65fac llc_sap_close
+EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b014706 kmap_atomic_prot
+EXPORT_SYMBOL vmlinux 0x4b207421 filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals
+EXPORT_SYMBOL vmlinux 0x4b4d9bfc phy_device_free
+EXPORT_SYMBOL vmlinux 0x4b722415 alloc_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0x4b7336a5 skb_pull
+EXPORT_SYMBOL vmlinux 0x4b73d4df bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x4b8a9d5c page_readlink
+EXPORT_SYMBOL vmlinux 0x4b8ad36d tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0x4b98ff6d tty_free_termios
+EXPORT_SYMBOL vmlinux 0x4b9f5672 aio_put_req
+EXPORT_SYMBOL vmlinux 0x4baa3456 acpi_bus_start
+EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags
+EXPORT_SYMBOL vmlinux 0x4c0eefc0 netlink_set_err
+EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c195968 iput
+EXPORT_SYMBOL vmlinux 0x4c223a2f pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr
+EXPORT_SYMBOL vmlinux 0x4c492e0d rt6_lookup
+EXPORT_SYMBOL vmlinux 0x4c4fe4d2 blk_queue_ordered
+EXPORT_SYMBOL vmlinux 0x4c84f35b pci_choose_state
+EXPORT_SYMBOL vmlinux 0x4cb002ce poll_freewait
+EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cca8d83 dm_exception_store_create
+EXPORT_SYMBOL vmlinux 0x4ce6edb3 put_tty_driver
+EXPORT_SYMBOL vmlinux 0x4ce7a743 neigh_lookup
+EXPORT_SYMBOL vmlinux 0x4ce9edef qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0x4cf383e1 tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8
+EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask
+EXPORT_SYMBOL vmlinux 0x4d703900 atomic64_sub_return_386
+EXPORT_SYMBOL vmlinux 0x4da00277 pnp_stop_dev
+EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dddbfbd dentry_open
+EXPORT_SYMBOL vmlinux 0x4deb0494 journal_stop
+EXPORT_SYMBOL vmlinux 0x4ded4d2f __netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4e015fc5 pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e100379 ip_defrag
+EXPORT_SYMBOL vmlinux 0x4e1d0888 dquot_commit_info
+EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child
+EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int
+EXPORT_SYMBOL vmlinux 0x4e3c271a dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console
+EXPORT_SYMBOL vmlinux 0x4e743069 textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0x4e77f22f mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0x4e7b16d8 kmap
+EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp
+EXPORT_SYMBOL vmlinux 0x4ea35a7c cdrom_release
+EXPORT_SYMBOL vmlinux 0x4f0a8284 scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x4f174851 dev_uc_add
+EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f2fffaa pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt
+EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read
+EXPORT_SYMBOL vmlinux 0x4f9d28c0 dev_get_by_flags
+EXPORT_SYMBOL vmlinux 0x4fa99112 serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x4fbffc46 rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x4fda7fb2 simple_link
+EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command
+EXPORT_SYMBOL vmlinux 0x500bb64c __sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x502b542a bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0x504883b9 i2c_del_driver
+EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status
+EXPORT_SYMBOL vmlinux 0x5056e093 netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0x5063b2e8 ip_ct_attach
+EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x507fa1fb __xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x50a52bc8 rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0x50b986b9 kfree_skb
+EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x512449fe block_write_end
+EXPORT_SYMBOL vmlinux 0x5152e605 memcmp
+EXPORT_SYMBOL vmlinux 0x5155cc4a get_sb_nodev
+EXPORT_SYMBOL vmlinux 0x51642750 phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x516b539c journal_forget
+EXPORT_SYMBOL vmlinux 0x51799bbe release_sock
+EXPORT_SYMBOL vmlinux 0x5186518f profile_pc
+EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled
+EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x51e49f77 get_io_context
+EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup
+EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data
+EXPORT_SYMBOL vmlinux 0x5212ed1e simple_write_begin
+EXPORT_SYMBOL vmlinux 0x52142776 dma_async_memcpy_buf_to_buf
+EXPORT_SYMBOL vmlinux 0x521a7db8 bio_unmap_user
+EXPORT_SYMBOL vmlinux 0x522b5c83 pci_iomap
+EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue
+EXPORT_SYMBOL vmlinux 0x52434dc1 netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x5254eed1 scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x5275dc49 uart_update_timeout
+EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday
+EXPORT_SYMBOL vmlinux 0x52872b97 ida_destroy
+EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x529070fe dw_spi_resume_host
+EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy
+EXPORT_SYMBOL vmlinux 0x52c2ef34 rb_erase
+EXPORT_SYMBOL vmlinux 0x52cace06 __blockdev_direct_IO_newtrunc
+EXPORT_SYMBOL vmlinux 0x52d188eb sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52dafc88 tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0x52e75f23 abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort
+EXPORT_SYMBOL vmlinux 0x52ed5d63 netdev_features_change
+EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend
+EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid
+EXPORT_SYMBOL vmlinux 0x532e7392 dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat
+EXPORT_SYMBOL vmlinux 0x534d128d sk_common_release
+EXPORT_SYMBOL vmlinux 0x5361754c napi_skb_finish
+EXPORT_SYMBOL vmlinux 0x53638869 blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0x536b8908 d_add_ci
+EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0x53ad398d abx500_register_ops
+EXPORT_SYMBOL vmlinux 0x53ba8ea6 elv_register_queue
+EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x53c0ee01 key_negate_and_link
+EXPORT_SYMBOL vmlinux 0x53e18aef create_proc_entry
+EXPORT_SYMBOL vmlinux 0x54005641 idr_get_new_above
+EXPORT_SYMBOL vmlinux 0x540730ae acpi_is_video_device
+EXPORT_SYMBOL vmlinux 0x540f72ca journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x542862fc pci_set_mwi
+EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate
+EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x546c847f jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x546d4b59 nf_ct_attach
+EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port
+EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8
+EXPORT_SYMBOL vmlinux 0x54b80905 deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0x54c3a382 alloc_hippi_dev
+EXPORT_SYMBOL vmlinux 0x54df5983 md_write_start
+EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x5520af51 i2c_register_driver
+EXPORT_SYMBOL vmlinux 0x553d33e0 netif_rx
+EXPORT_SYMBOL vmlinux 0x5559399d elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x555b054d generic_delete_inode
+EXPORT_SYMBOL vmlinux 0x557dc3a7 unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0x558604a6 generic_fillattr
+EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a04602 mdiobus_free
+EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x55a83f92 scsi_register_driver
+EXPORT_SYMBOL vmlinux 0x55ba28c5 scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0x55d3f4b3 bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0x55ee4977 __find_get_block
+EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday
+EXPORT_SYMBOL vmlinux 0x56046d6c __serio_register_driver
+EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x5632e4e6 generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user
+EXPORT_SYMBOL vmlinux 0x56364221 blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0x56547630 file_permission
+EXPORT_SYMBOL vmlinux 0x565ac880 dma_release_from_coherent
+EXPORT_SYMBOL vmlinux 0x5676a3e5 intel_scu_ipc_ioread8
+EXPORT_SYMBOL vmlinux 0x568851de udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x5699c0c2 inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x569e0620 padata_start
+EXPORT_SYMBOL vmlinux 0x56a9513a tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr
+EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function
+EXPORT_SYMBOL vmlinux 0x571b4ef9 journal_force_commit
+EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x5737e39b sock_no_bind
+EXPORT_SYMBOL vmlinux 0x57398eab md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put
+EXPORT_SYMBOL vmlinux 0x57609cdc netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0x576120be seq_printf
+EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16
+EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on
+EXPORT_SYMBOL vmlinux 0x576bcf0f dquot_operations
+EXPORT_SYMBOL vmlinux 0x577842dc jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0x579b62b5 alloc_disk
+EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf
+EXPORT_SYMBOL vmlinux 0x57b09822 up
+EXPORT_SYMBOL vmlinux 0x57b1913f vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57d632aa kmalloc_caches
+EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path
+EXPORT_SYMBOL vmlinux 0x582cbd03 inet_add_protocol
+EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x583d7249 vfs_unlink
+EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x584a4d01 ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep
+EXPORT_SYMBOL vmlinux 0x5874f6e9 del_gendisk
+EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x588c94e4 kobject_put
+EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler
+EXPORT_SYMBOL vmlinux 0x58aa7fbc input_event
+EXPORT_SYMBOL vmlinux 0x58ae0566 key_unlink
+EXPORT_SYMBOL vmlinux 0x58ba069b skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x58c30dd4 scsi_finish_command
+EXPORT_SYMBOL vmlinux 0x58d7fda6 find_get_page
+EXPORT_SYMBOL vmlinux 0x58d849d1 inet_addr_type
+EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info
+EXPORT_SYMBOL vmlinux 0x59172768 phy_print_status
+EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed
+EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read
+EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client
+EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map
+EXPORT_SYMBOL vmlinux 0x594e5365 xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0x5954ca82 idr_destroy
+EXPORT_SYMBOL vmlinux 0x595614a4 scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0x5963170c register_framebuffer
+EXPORT_SYMBOL vmlinux 0x59679866 fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x597b746f __xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x59873f8f mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x59886905 skb_trim
+EXPORT_SYMBOL vmlinux 0x59a178e9 sock_wfree
+EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register
+EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource
+EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table
+EXPORT_SYMBOL vmlinux 0x5a2f0ee3 ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x5a30bcec pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0x5a3c44d5 journal_wipe
+EXPORT_SYMBOL vmlinux 0x5a3ea6ab bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2
+EXPORT_SYMBOL vmlinux 0x5a69cbdb blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5abd90cb vfs_readv
+EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x5ac4d25d dm_exception_store_type_register
+EXPORT_SYMBOL vmlinux 0x5ad7a899 ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0x5b0d9c6e scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem
+EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources
+EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0x5b81753d xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8
+EXPORT_SYMBOL vmlinux 0x5b9ccf95 skb_push
+EXPORT_SYMBOL vmlinux 0x5bba36a5 input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0x5bbb811b __starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x5c1619dd ip6_xmit
+EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one
+EXPORT_SYMBOL vmlinux 0x5c2aab6f __scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x5c2b3a7e __netdev_alloc_page
+EXPORT_SYMBOL vmlinux 0x5c362175 writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0x5c372050 nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x5c3ec33a dst_discard
+EXPORT_SYMBOL vmlinux 0x5c472819 journal_dirty_data
+EXPORT_SYMBOL vmlinux 0x5c498d2b unlock_super
+EXPORT_SYMBOL vmlinux 0x5c4ae8c0 dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x5c5ea8dd free_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0x5c5eba4c nla_put
+EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos
+EXPORT_SYMBOL vmlinux 0x5c8a0662 mca_device_write_pos
+EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock
+EXPORT_SYMBOL vmlinux 0x5c9a44ce eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x5c9c1b39 blk_plug_device_unlocked
+EXPORT_SYMBOL vmlinux 0x5cdcbc18 truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x5d10df88 ilookup
+EXPORT_SYMBOL vmlinux 0x5d23fa07 tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x5d2d3804 check_disk_change
+EXPORT_SYMBOL vmlinux 0x5d5e7200 unregister_nls
+EXPORT_SYMBOL vmlinux 0x5d68024a pcie_port_service_register
+EXPORT_SYMBOL vmlinux 0x5d7ecbf1 cfb_copyarea
+EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock
+EXPORT_SYMBOL vmlinux 0x5dc75fdd iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0x5dd6a604 proc_create_data
+EXPORT_SYMBOL vmlinux 0x5de6605f genphy_suspend
+EXPORT_SYMBOL vmlinux 0x5df7a31b open_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x5e09ca75 complete
+EXPORT_SYMBOL vmlinux 0x5e14a4d6 atomic64_add_386
+EXPORT_SYMBOL vmlinux 0x5e3023cf fb_blank
+EXPORT_SYMBOL vmlinux 0x5e7876a2 dm_exception_store_destroy
+EXPORT_SYMBOL vmlinux 0x5e7e4eea elv_add_request
+EXPORT_SYMBOL vmlinux 0x5e90db67 inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x5e9454f4 dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask
+EXPORT_SYMBOL vmlinux 0x5eb88e3c pci_reenable_device
+EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd
+EXPORT_SYMBOL vmlinux 0x5eeb4390 i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0x5ef40061 set_pages_array_wb
+EXPORT_SYMBOL vmlinux 0x5f1a4ccf intel_scu_ipc_update_register
+EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter
+EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock
+EXPORT_SYMBOL vmlinux 0x5f2ab8ca qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x5f53b312 simple_empty
+EXPORT_SYMBOL vmlinux 0x5f64e205 unregister_snap_client
+EXPORT_SYMBOL vmlinux 0x5f6a7b6c sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0x5f6f1bce check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x5f728a4c pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x5f76100b generic_writepages
+EXPORT_SYMBOL vmlinux 0x5f97c947 nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x5f9acd35 phy_disable_interrupts
+EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities
+EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x6008869d netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x600974d8 kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats
+EXPORT_SYMBOL vmlinux 0x602a57fb mddev_congested
+EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count
+EXPORT_SYMBOL vmlinux 0x60341882 dm_table_unplug_all
+EXPORT_SYMBOL vmlinux 0x604143b9 seq_read
+EXPORT_SYMBOL vmlinux 0x609c50bd mutex_trylock
+EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net
+EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off
+EXPORT_SYMBOL vmlinux 0x60ef96a1 module_refcount
+EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n
+EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer
+EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free
+EXPORT_SYMBOL vmlinux 0x61a60f1f rb_replace_node
+EXPORT_SYMBOL vmlinux 0x61ad931e generic_setattr
+EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61b993ba xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0x61ce16bb cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0x61e58486 devm_iounmap
+EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable
+EXPORT_SYMBOL vmlinux 0x620a2a64 input_get_keycode
+EXPORT_SYMBOL vmlinux 0x62193598 pnp_range_reserved
+EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0x6226818e vfs_rename
+EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event
+EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache
+EXPORT_SYMBOL vmlinux 0x6265ae17 serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister
+EXPORT_SYMBOL vmlinux 0x627432b2 pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x628bf2a3 register_8022_client
+EXPORT_SYMBOL vmlinux 0x62a9e29c thermal_cooling_device_register
+EXPORT_SYMBOL vmlinux 0x62c1451d scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x62c68622 invalidate_partition
+EXPORT_SYMBOL vmlinux 0x630ab825 dst_release
+EXPORT_SYMBOL vmlinux 0x633231bc xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0x6334ff7c xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0x633bec29 d_alloc_name
+EXPORT_SYMBOL vmlinux 0x6342695d generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0x635d57be alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic
+EXPORT_SYMBOL vmlinux 0x63712153 dev_uc_sync
+EXPORT_SYMBOL vmlinux 0x639dfe51 scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0x63a45bcb path_put
+EXPORT_SYMBOL vmlinux 0x63afe14b ps2_init
+EXPORT_SYMBOL vmlinux 0x63b1753d abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x63ce8cec remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x63d66ff4 tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0x63e124c0 jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x63e7f976 try_to_del_timer_sync
+EXPORT_SYMBOL vmlinux 0x63e9d199 tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0x6400bcc5 dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x640c5f71 pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0x642feb36 inet_listen
+EXPORT_SYMBOL vmlinux 0x64437e58 dm_dirty_log_create
+EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock
+EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable
+EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait
+EXPORT_SYMBOL vmlinux 0x64a1aa4a set_binfmt
+EXPORT_SYMBOL vmlinux 0x64ad33ab __ht_create_irq
+EXPORT_SYMBOL vmlinux 0x64d8ff75 sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x64dcacd8 bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer
+EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb
+EXPORT_SYMBOL vmlinux 0x64ed415f ip_route_output_key
+EXPORT_SYMBOL vmlinux 0x6513033d blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0x651a4139 test_taint
+EXPORT_SYMBOL vmlinux 0x651cd295 dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x65209f7d clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0x65353465 tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name
+EXPORT_SYMBOL vmlinux 0x65482404 tty_port_close_start
+EXPORT_SYMBOL vmlinux 0x65583451 pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc
+EXPORT_SYMBOL vmlinux 0x65631021 vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0x6568269d block_commit_write
+EXPORT_SYMBOL vmlinux 0x656827f3 alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0x658e9c80 inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x6592a323 clear_inode
+EXPORT_SYMBOL vmlinux 0x6595fc75 pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x65d223b6 sync_inode
+EXPORT_SYMBOL vmlinux 0x65f9b47e abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0x660a13fb journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x662e1aa9 __skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0x664d25d3 acpi_bus_register_driver
+EXPORT_SYMBOL vmlinux 0x6654df19 blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x66926992 generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x66b83c00 ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x66bfcae2 mmc_release_host
+EXPORT_SYMBOL vmlinux 0x66e93e5e tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x66f369e8 padata_do_parallel
+EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time
+EXPORT_SYMBOL vmlinux 0x6706d858 blk_init_allocated_queue_node
+EXPORT_SYMBOL vmlinux 0x6708cb55 bdi_unregister
+EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible
+EXPORT_SYMBOL vmlinux 0x671bb81a generic_file_llseek_unlocked
+EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4
+EXPORT_SYMBOL vmlinux 0x6744acc0 mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0x675075bf acpi_get_physical_device
+EXPORT_SYMBOL vmlinux 0x675cf391 fb_get_mode
+EXPORT_SYMBOL vmlinux 0x6774aecf ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0x67770a4d ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu
+EXPORT_SYMBOL vmlinux 0x6783b2a9 journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x6797880e xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x67a3ac84 read_dev_sector
+EXPORT_SYMBOL vmlinux 0x67abd343 eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios
+EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67cd50c6 ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0x67e8ce16 dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0x681386d8 input_release_device
+EXPORT_SYMBOL vmlinux 0x682a64e1 inet_shutdown
+EXPORT_SYMBOL vmlinux 0x683475af wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0x6843b43f register_con_driver
+EXPORT_SYMBOL vmlinux 0x6846f989 sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x689abddf fsnotify_find_mark_entry
+EXPORT_SYMBOL vmlinux 0x68f477d1 tcf_hash_check
+EXPORT_SYMBOL vmlinux 0x6933b6ce udp_proc_register
+EXPORT_SYMBOL vmlinux 0x694ec00f jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days
+EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int
+EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7
+EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem
+EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be
+EXPORT_SYMBOL vmlinux 0x69abe406 serio_reconnect
+EXPORT_SYMBOL vmlinux 0x69b0958c sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x69b59a99 napi_frags_skb
+EXPORT_SYMBOL vmlinux 0x69b8d993 filp_open
+EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x69d2575f efi
+EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69e37dc3 isapnp_protocol
+EXPORT_SYMBOL vmlinux 0x6a036840 ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a08c289 __scm_destroy
+EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic
+EXPORT_SYMBOL vmlinux 0x6a62b0ba dm_table_put
+EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6ab01c69 eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be
+EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp
+EXPORT_SYMBOL vmlinux 0x6ad93299 inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device
+EXPORT_SYMBOL vmlinux 0x6ae8df3a xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname
+EXPORT_SYMBOL vmlinux 0x6b258b08 elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0x6b27f84e generic_permission
+EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack
+EXPORT_SYMBOL vmlinux 0x6b389a2c ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0x6b3ec28f udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x6b58935e set_create_files_as
+EXPORT_SYMBOL vmlinux 0x6b63b8a5 eisa_driver_register
+EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x6b92986b __dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used
+EXPORT_SYMBOL vmlinux 0x6bb0bc3d vfs_readdir
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6bddf113 __dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock
+EXPORT_SYMBOL vmlinux 0x6c07f603 input_register_handler
+EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn
+EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp
+EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data
+EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0x6c565928 input_grab_device
+EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c73caad xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0x6c9572b1 dcache_readdir
+EXPORT_SYMBOL vmlinux 0x6c971f44 __xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0x6c9e7945 ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0x6ca9afa6 seq_putc
+EXPORT_SYMBOL vmlinux 0x6cc3ed27 __pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x6cc62e37 mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy
+EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table
+EXPORT_SYMBOL vmlinux 0x6d4a95dc journal_load
+EXPORT_SYMBOL vmlinux 0x6d53fc30 mpage_readpage
+EXPORT_SYMBOL vmlinux 0x6d56994a cmpxchg_486_u64
+EXPORT_SYMBOL vmlinux 0x6d6ba17f write_cache_pages
+EXPORT_SYMBOL vmlinux 0x6db8852f i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x6de44870 tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6e014e76 pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x6e2bd422 blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0x6e2c4a9b nf_afinfo
+EXPORT_SYMBOL vmlinux 0x6e3ecc9c cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0x6e4130ae qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0x6e561bf3 mmc_wait_for_req
+EXPORT_SYMBOL vmlinux 0x6e69a207 pci_map_rom
+EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put
+EXPORT_SYMBOL vmlinux 0x6ec108b9 sock_map_fd
+EXPORT_SYMBOL vmlinux 0x6f03baca may_umount_tree
+EXPORT_SYMBOL vmlinux 0x6f0fbedc xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x6f1e8934 phy_detach
+EXPORT_SYMBOL vmlinux 0x6f26242f __scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create
+EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device
+EXPORT_SYMBOL vmlinux 0x6f852cf8 acpi_processor_notify_smm
+EXPORT_SYMBOL vmlinux 0x6f86c27d block_write_begin
+EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x6fa44762 pci_enable_device
+EXPORT_SYMBOL vmlinux 0x6fc24c6b __nla_reserve
+EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fe382e9 sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write
+EXPORT_SYMBOL vmlinux 0x6ffb0f5c elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free
+EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm
+EXPORT_SYMBOL vmlinux 0x700388d4 ip_mc_rejoin_group
+EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf
+EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma
+EXPORT_SYMBOL vmlinux 0x705d6688 skb_append
+EXPORT_SYMBOL vmlinux 0x70932461 d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x709ef691 dev_uc_init
+EXPORT_SYMBOL vmlinux 0x70ae8b36 skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x70b47f49 get_phy_id
+EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait
+EXPORT_SYMBOL vmlinux 0x70cec18f ppp_dev_name
+EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat
+EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock
+EXPORT_SYMBOL vmlinux 0x70e51c83 phy_find_first
+EXPORT_SYMBOL vmlinux 0x7114a940 phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc
+EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x713e9bae blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0x714c7a81 acpi_check_mem_region
+EXPORT_SYMBOL vmlinux 0x715120f6 splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0x715d7e34 blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0x7160e4e8 ipv4_specific
+EXPORT_SYMBOL vmlinux 0x7171121c overflowgid
+EXPORT_SYMBOL vmlinux 0x71882412 __bio_clone
+EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev
+EXPORT_SYMBOL vmlinux 0x721c3531 tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0x7225bef2 tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x728012b6 serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x72813c98 vfs_mknod
+EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma
+EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add
+EXPORT_SYMBOL vmlinux 0x72c11245 register_sysrq_key
+EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte
+EXPORT_SYMBOL vmlinux 0x72cbb9d5 generic_write_end
+EXPORT_SYMBOL vmlinux 0x72e38097 pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0x72e8444c blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type
+EXPORT_SYMBOL vmlinux 0x7316f55e __lock_page
+EXPORT_SYMBOL vmlinux 0x732309aa set_pages_wb
+EXPORT_SYMBOL vmlinux 0x733d621c netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0x734d9749 lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay
+EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat
+EXPORT_SYMBOL vmlinux 0x7364ab95 dw_spi_add_host
+EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0x7387da78 set_security_override
+EXPORT_SYMBOL vmlinux 0x738803e6 strnlen
+EXPORT_SYMBOL vmlinux 0x7389bb14 dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power
+EXPORT_SYMBOL vmlinux 0x739af5a0 pnp_find_card
+EXPORT_SYMBOL vmlinux 0x73af0115 x86_hyper_vmware
+EXPORT_SYMBOL vmlinux 0x73b8afeb pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy
+EXPORT_SYMBOL vmlinux 0x73f75627 pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0x740d4ed3 mmc_card_awake
+EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus
+EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte
+EXPORT_SYMBOL vmlinux 0x744dc7f7 tty_port_close
+EXPORT_SYMBOL vmlinux 0x747ad474 dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0x747f7ff2 sock_init_data
+EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x74aa2b23 mnt_pin
+EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74c2fe44 skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74d1be2d release_firmware
+EXPORT_SYMBOL vmlinux 0x75004996 acpi_lock_battery_dir
+EXPORT_SYMBOL vmlinux 0x751aacca jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x751d52c8 d_lookup
+EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state
+EXPORT_SYMBOL vmlinux 0x75437ac3 netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x75715569 tcf_hash_search
+EXPORT_SYMBOL vmlinux 0x757681e4 napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x7584022c __skb_bond_should_drop
+EXPORT_SYMBOL vmlinux 0x75a85e4a ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x75abb58e dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x75ad33da sk_stop_timer
+EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75c4e122 elv_queue_empty
+EXPORT_SYMBOL vmlinux 0x75f07605 mmc_wait_for_app_cmd
+EXPORT_SYMBOL vmlinux 0x75f9f8b3 set_irq_chip
+EXPORT_SYMBOL vmlinux 0x760a0f4f yield
+EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x7617a6f6 generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0x761f1702 rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0x76241cc1 journal_errno
+EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off
+EXPORT_SYMBOL vmlinux 0x7632ec4b tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0x763b0cc3 fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0x763deb9a elv_rb_find
+EXPORT_SYMBOL vmlinux 0x765f373b redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x766d9d55 I_BDEV
+EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc
+EXPORT_SYMBOL vmlinux 0x769c8a95 inode_set_bytes
+EXPORT_SYMBOL vmlinux 0x76b618c3 pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode
+EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges
+EXPORT_SYMBOL vmlinux 0x76f4cd13 register_key_type
+EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic
+EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin
+EXPORT_SYMBOL vmlinux 0x770b84cc simple_setsize
+EXPORT_SYMBOL vmlinux 0x770fd822 tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0x771434c8 kill_pgrp
+EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x77407163 genphy_read_status
+EXPORT_SYMBOL vmlinux 0x774c5f80 ps2_command
+EXPORT_SYMBOL vmlinux 0x7755c1b1 pnp_register_card_driver
+EXPORT_SYMBOL vmlinux 0x77716de8 vmap
+EXPORT_SYMBOL vmlinux 0x778af545 pci_target_state
+EXPORT_SYMBOL vmlinux 0x77bc13a0 strim
+EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality
+EXPORT_SYMBOL vmlinux 0x77e020c1 __devm_release_region
+EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x781ac9c6 dm_io_client_resize
+EXPORT_SYMBOL vmlinux 0x78410fcc aio_complete
+EXPORT_SYMBOL vmlinux 0x7863c644 bitmap_unplug
+EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource
+EXPORT_SYMBOL vmlinux 0x789272a4 neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0x7893b673 unlock_buffer
+EXPORT_SYMBOL vmlinux 0x78ca4798 pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0x78ca4cce scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x78d0be95 tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x78d55d56 xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x78d8db9e idr_get_next
+EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78f599cb alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method
+EXPORT_SYMBOL vmlinux 0x790fbb75 netpoll_setup
+EXPORT_SYMBOL vmlinux 0x7917e887 genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt
+EXPORT_SYMBOL vmlinux 0x79579145 block_write_full_page
+EXPORT_SYMBOL vmlinux 0x795b9a02 jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x7978bc14 iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x799de680 phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79fc595c scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol
+EXPORT_SYMBOL vmlinux 0x7a3c686b alloc_file
+EXPORT_SYMBOL vmlinux 0x7a4497db kzfree
+EXPORT_SYMBOL vmlinux 0x7a4d8b18 blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x7a4e5a91 __bforget
+EXPORT_SYMBOL vmlinux 0x7a7cbec2 netpoll_poll_dev
+EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip
+EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user
+EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x7af556a8 dma_find_channel
+EXPORT_SYMBOL vmlinux 0x7b003520 generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler
+EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name
+EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register
+EXPORT_SYMBOL vmlinux 0x7b5bb683 skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0x7b7b5c0a scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x7b9e983f cpu_info
+EXPORT_SYMBOL vmlinux 0x7bbfb03c cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name
+EXPORT_SYMBOL vmlinux 0x7bf6cad3 __dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x7c035bd0 journal_extend
+EXPORT_SYMBOL vmlinux 0x7c03e9ec skb_checksum
+EXPORT_SYMBOL vmlinux 0x7c0da1e6 bio_add_page
+EXPORT_SYMBOL vmlinux 0x7c0edd7d acpi_check_region
+EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c59ce31 tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0x7c60d66e getname
+EXPORT_SYMBOL vmlinux 0x7c6bbaef bitmap_endwrite
+EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c95cb54 simple_getattr
+EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down
+EXPORT_SYMBOL vmlinux 0x7cde4041 atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0x7cebbc08 cap_file_mmap
+EXPORT_SYMBOL vmlinux 0x7cf30193 rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x7d0419e2 __xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies
+EXPORT_SYMBOL vmlinux 0x7d291a93 jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x7d320c06 posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x7d752f56 ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0x7d75e65b pci_pme_active
+EXPORT_SYMBOL vmlinux 0x7d87c48a mmc_detect_change
+EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec
+EXPORT_SYMBOL vmlinux 0x7dcc426f padata_alloc
+EXPORT_SYMBOL vmlinux 0x7dcdd7de generic_make_request
+EXPORT_SYMBOL vmlinux 0x7dceceac capable
+EXPORT_SYMBOL vmlinux 0x7e161897 atomic64_xchg_386
+EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8
+EXPORT_SYMBOL vmlinux 0x7e1f5cc7 ppp_channel_index
+EXPORT_SYMBOL vmlinux 0x7e290c0f ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e6f0960 skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x7e753674 seq_release_private
+EXPORT_SYMBOL vmlinux 0x7e768904 ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x7e85799e __nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x7e912aa6 read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread
+EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset
+EXPORT_SYMBOL vmlinux 0x7ed73b63 tcp_check_req
+EXPORT_SYMBOL vmlinux 0x7ee0dc73 tcp_ioctl
+EXPORT_SYMBOL vmlinux 0x7ee27d5f blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0x7ee88084 nla_append
+EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit
+EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f31307a nobh_write_begin
+EXPORT_SYMBOL vmlinux 0x7f77de36 scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0x7f80bf53 dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0x7f99406b thermal_zone_device_unregister
+EXPORT_SYMBOL vmlinux 0x7fd37c9b tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free
+EXPORT_SYMBOL vmlinux 0x8013bb42 tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x804e6829 simple_lookup
+EXPORT_SYMBOL vmlinux 0x8050a294 ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0x80530da6 flush_old_exec
+EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0x80a12a11 fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0x80a70d64 pnp_register_driver
+EXPORT_SYMBOL vmlinux 0x80bc7a18 input_inject_event
+EXPORT_SYMBOL vmlinux 0x80ed1376 tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0x81065397 sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x810c33c4 scsi_remove_device
+EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table
+EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal
+EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page
+EXPORT_SYMBOL vmlinux 0x816ef571 i2c_release_client
+EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf
+EXPORT_SYMBOL vmlinux 0x817b8a90 sock_setsockopt
+EXPORT_SYMBOL vmlinux 0x819a2b4f blkdev_fsync
+EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference
+EXPORT_SYMBOL vmlinux 0x819f548f tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x81a9a89c nobh_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x81b5b538 pnp_request_card_device
+EXPORT_SYMBOL vmlinux 0x81d0543e ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info
+EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill
+EXPORT_SYMBOL vmlinux 0x82228eb3 journal_restart
+EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x822d5b9d deactivate_super
+EXPORT_SYMBOL vmlinux 0x8235805b memmove
+EXPORT_SYMBOL vmlinux 0x8235f7a3 pnpbios_protocol
+EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x8258e758 simple_dir_operations
+EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8271f6e0 tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0x82890c60 gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82d85640 register_snap_client
+EXPORT_SYMBOL vmlinux 0x82e49927 sg_miter_start
+EXPORT_SYMBOL vmlinux 0x82e781fa lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x830706d6 register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x830aede4 tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit
+EXPORT_SYMBOL vmlinux 0x8323d918 kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x8338b6a6 file_remove_suid
+EXPORT_SYMBOL vmlinux 0x83479d00 inode_change_ok
+EXPORT_SYMBOL vmlinux 0x834b591e otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion
+EXPORT_SYMBOL vmlinux 0x8370c098 do_sync_read
+EXPORT_SYMBOL vmlinux 0x8370ee0c filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x8375b638 __blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring
+EXPORT_SYMBOL vmlinux 0x83800bfa kref_init
+EXPORT_SYMBOL vmlinux 0x838d018e journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8
+EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83a65510 pcie_port_service_unregister
+EXPORT_SYMBOL vmlinux 0x83b903f6 truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0x83f7df56 xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0x84211b6c i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0x84314ff0 starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x84520573 freeze_super
+EXPORT_SYMBOL vmlinux 0x8462acf2 fasync_helper
+EXPORT_SYMBOL vmlinux 0x846396c7 pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x8473b1b0 mpage_writepage
+EXPORT_SYMBOL vmlinux 0x847baf75 follow_pfn
+EXPORT_SYMBOL vmlinux 0x849d1ce4 kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x84a0489c dm_dirty_log_destroy
+EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x84a7ae61 dma_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x84b0eb47 dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0x84b493ea scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0x84d1195d open_exec
+EXPORT_SYMBOL vmlinux 0x84ea940a blk_init_tags
+EXPORT_SYMBOL vmlinux 0x85005610 generic_file_open
+EXPORT_SYMBOL vmlinux 0x8537df34 tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0x85614735 __elv_add_request
+EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x856a379c dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0x85dd1990 tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0x85df9b6c strsep
+EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x860d8aea test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0x862d7d9a pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x866a7b07 path_get
+EXPORT_SYMBOL vmlinux 0x868acba5 get_options
+EXPORT_SYMBOL vmlinux 0x86f5b3aa pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x87117034 ps2_end_command
+EXPORT_SYMBOL vmlinux 0x8712cf9d dm_table_event
+EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x872f34d2 generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0x87376841 inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0x8743ee3f hippi_neigh_setup_dev
+EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write
+EXPORT_SYMBOL vmlinux 0x87757ca4 sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0x8788f643 proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x878be32a inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh
+EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0x87b3a313 kill_anon_super
+EXPORT_SYMBOL vmlinux 0x87c7ac2b poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0x87e7cd8a pci_select_bars
+EXPORT_SYMBOL vmlinux 0x880e7a32 sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate
+EXPORT_SYMBOL vmlinux 0x88265f44 netlink_unicast
+EXPORT_SYMBOL vmlinux 0x8877f2f8 d_alloc_root
+EXPORT_SYMBOL vmlinux 0x887a55c1 sock_wake_async
+EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x88985afc kick_iocb
+EXPORT_SYMBOL vmlinux 0x88cb3b12 simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0x88e60714 generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0x88e88136 ioremap_prot
+EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx
+EXPORT_SYMBOL vmlinux 0x8949858b schedule_work
+EXPORT_SYMBOL vmlinux 0x8969623f wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x897473df mktime
+EXPORT_SYMBOL vmlinux 0x89935db2 tty_mutex
+EXPORT_SYMBOL vmlinux 0x89a1faf4 generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0x89b1c40e security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0x89b2b0f4 dm_put_device
+EXPORT_SYMBOL vmlinux 0x89c078ca __task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x89d12995 simple_set_mnt
+EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89f8f5c2 arp_xmit
+EXPORT_SYMBOL vmlinux 0x8a5434e5 skb_dequeue
+EXPORT_SYMBOL vmlinux 0x8a57951a kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory
+EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8abfc58c scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0x8ac0d183 tcp_child_process
+EXPORT_SYMBOL vmlinux 0x8ac0e33b blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0x8adb6d73 atomic64_add_return_386
+EXPORT_SYMBOL vmlinux 0x8af9e578 pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0x8b01a781 inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0x8b0e774e ab3100_event_register
+EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll
+EXPORT_SYMBOL vmlinux 0x8b1a2435 tcp_splice_read
+EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b1b6e57 blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0x8b4a962e skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x8b4eaa19 sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid
+EXPORT_SYMBOL vmlinux 0x8b631c18 xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup
+EXPORT_SYMBOL vmlinux 0x8b9d4509 pci_read_vpd
+EXPORT_SYMBOL vmlinux 0x8b9e678a nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock
+EXPORT_SYMBOL vmlinux 0x8bb75319 dm_exception_store_type_unregister
+EXPORT_SYMBOL vmlinux 0x8bbcd180 inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0x8bbfe50c genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0x8bc96b75 netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long
+EXPORT_SYMBOL vmlinux 0x8bee2cfb bio_put
+EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16
+EXPORT_SYMBOL vmlinux 0x8c2c324d mmc_host_enable
+EXPORT_SYMBOL vmlinux 0x8c392837 pnp_release_card_device
+EXPORT_SYMBOL vmlinux 0x8c423e96 register_netdev
+EXPORT_SYMBOL vmlinux 0x8c4aa0ab md_error
+EXPORT_SYMBOL vmlinux 0x8c4ba2da pv_cpu_ops
+EXPORT_SYMBOL vmlinux 0x8c4f9e88 vfs_fsync
+EXPORT_SYMBOL vmlinux 0x8c5ca86f pnp_find_dev
+EXPORT_SYMBOL vmlinux 0x8c6ba7ec scsi_print_command
+EXPORT_SYMBOL vmlinux 0x8c7ed567 bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x8c95d0e2 tty_register_device
+EXPORT_SYMBOL vmlinux 0x8cb2ac1f console_stop
+EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8ce06875 inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x8ce581d2 bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0x8cff1ea9 __getblk
+EXPORT_SYMBOL vmlinux 0x8d05eaab update_region
+EXPORT_SYMBOL vmlinux 0x8d10d020 alloc_trdev
+EXPORT_SYMBOL vmlinux 0x8d3ec786 bh_submit_read
+EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32
+EXPORT_SYMBOL vmlinux 0x8d7f411e pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data
+EXPORT_SYMBOL vmlinux 0x8d9e55c5 unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0x8da98dcc idr_remove_all
+EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state
+EXPORT_SYMBOL vmlinux 0x8dc97f0a dma_pool_free
+EXPORT_SYMBOL vmlinux 0x8ddd9ded vfs_readlink
+EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block
+EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and
+EXPORT_SYMBOL vmlinux 0x8e9768d7 i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0x8ea0cfbb ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler
+EXPORT_SYMBOL vmlinux 0x8ec00281 otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0x8ee323f3 cdev_add
+EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8eea7b2f key_task_permission
+EXPORT_SYMBOL vmlinux 0x8f1d4c8e netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus
+EXPORT_SYMBOL vmlinux 0x8f4392cb bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0x8f449097 i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev
+EXPORT_SYMBOL vmlinux 0x8f54a4ad set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0x8f60b3c2 skb_copy
+EXPORT_SYMBOL vmlinux 0x8f68c54d neigh_seq_start
+EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data
+EXPORT_SYMBOL vmlinux 0x8f8ac96d rtc_dev_update_irq_enable_emul
+EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2
+EXPORT_SYMBOL vmlinux 0x8fc2ea52 posix_acl_permission
+EXPORT_SYMBOL vmlinux 0x8fd2f0fd tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops
+EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16
+EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x901dfd16 alloc_netdev_mq
+EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync
+EXPORT_SYMBOL vmlinux 0x902e8dc1 netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x9031249d qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector
+EXPORT_SYMBOL vmlinux 0x90449479 rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0x905bf7eb dev_get_flags
+EXPORT_SYMBOL vmlinux 0x90764e99 scsi_dma_map
+EXPORT_SYMBOL vmlinux 0x907eeb32 tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0x90874be6 jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0x908d2c95 blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0x9096ca43 linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x909ccfbb udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x90a02039 dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system
+EXPORT_SYMBOL vmlinux 0x90a6eeb0 tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active
+EXPORT_SYMBOL vmlinux 0x90ab24e1 jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0x9102938f seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x912918f1 ip6_route_output
+EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable
+EXPORT_SYMBOL vmlinux 0x91546a88 redraw_screen
+EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb
+EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource
+EXPORT_SYMBOL vmlinux 0x9168c014 neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x9174898f __lock_buffer
+EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong
+EXPORT_SYMBOL vmlinux 0x91beb63c skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x91c52365 xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0x920a613d kthread_stop
+EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool
+EXPORT_SYMBOL vmlinux 0x922711f8 pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0x92275ab0 sock_i_uid
+EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get
+EXPORT_SYMBOL vmlinux 0x92437bcf con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0x92528bb8 ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0x9261eda8 i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0x9267a9ac dqput
+EXPORT_SYMBOL vmlinux 0x926e4ebb dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0x92814163 scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0x92897e3d default_idle
+EXPORT_SYMBOL vmlinux 0x92909507 sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0x9299421e splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0x92e0eac8 read_cache_page_async
+EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get
+EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x93448c57 screen_info
+EXPORT_SYMBOL vmlinux 0x93551288 mdio_bus_type
+EXPORT_SYMBOL vmlinux 0x9374124a bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0x9386669b __seq_open_private
+EXPORT_SYMBOL vmlinux 0x9393b088 proc_mkdir
+EXPORT_SYMBOL vmlinux 0x93a11a71 get_user_pages
+EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule
+EXPORT_SYMBOL vmlinux 0x93a7ce7a iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x93c31ba9 rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0x93c651be acpi_info
+EXPORT_SYMBOL vmlinux 0x93e33665 mca_device_claimed
+EXPORT_SYMBOL vmlinux 0x93f190e1 blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0x93fc88b7 blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages
+EXPORT_SYMBOL vmlinux 0x948368d0 neigh_seq_next
+EXPORT_SYMBOL vmlinux 0x94961283 vunmap
+EXPORT_SYMBOL vmlinux 0x949617a6 abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x94c60148 tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0x94caf4d7 unregister_binfmt
+EXPORT_SYMBOL vmlinux 0x94cc6168 simple_setattr
+EXPORT_SYMBOL vmlinux 0x94d31254 sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x94f2d802 sock_no_poll
+EXPORT_SYMBOL vmlinux 0x94fec2ec backlight_device_register
+EXPORT_SYMBOL vmlinux 0x9507a421 fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x950a77b6 scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x950c2671 do_truncate
+EXPORT_SYMBOL vmlinux 0x953376db mmc_card_sleep
+EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init
+EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf
+EXPORT_SYMBOL vmlinux 0x9553ba74 vga_switcheroo_unregister_client
+EXPORT_SYMBOL vmlinux 0x957a772d devm_ioport_map
+EXPORT_SYMBOL vmlinux 0x958aea42 shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x9593ae35 xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0x9598f57f xfrm_state_update
+EXPORT_SYMBOL vmlinux 0x959adfd7 inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0x95ae9d73 abort_creds
+EXPORT_SYMBOL vmlinux 0x95e9882a arp_send
+EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq
+EXPORT_SYMBOL vmlinux 0x9624654e bioset_free
+EXPORT_SYMBOL vmlinux 0x963cb735 skb_clone
+EXPORT_SYMBOL vmlinux 0x966eb2dd abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0x968133ba generic_write_checks
+EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0x968be640 __skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x9696a701 blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96da8ba5 kmem_cache_name
+EXPORT_SYMBOL vmlinux 0x97161073 mpage_writepages
+EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n
+EXPORT_SYMBOL vmlinux 0x973e35a5 intel_scu_ipc_register_write
+EXPORT_SYMBOL vmlinux 0x97438e0a pipe_unlock
+EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x97750a34 generic_write_sync
+EXPORT_SYMBOL vmlinux 0x977526be pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x9785a197 vm_map_ram
+EXPORT_SYMBOL vmlinux 0x978a2cf8 ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x978d0594 llc_sap_open
+EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance
+EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block
+EXPORT_SYMBOL vmlinux 0x97dfe170 journal_flush
+EXPORT_SYMBOL vmlinux 0x97e77c9b fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x97f21cf0 scsi_get_command
+EXPORT_SYMBOL vmlinux 0x9829c13e i2c_verify_client
+EXPORT_SYMBOL vmlinux 0x983715fd bmap
+EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x9875e433 eth_header_parse
+EXPORT_SYMBOL vmlinux 0x987e32a6 netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x9885b995 scsi_print_result
+EXPORT_SYMBOL vmlinux 0x988c6beb dm_get_device
+EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x
+EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init
+EXPORT_SYMBOL vmlinux 0x98b64a3b dw_spi_suspend_host
+EXPORT_SYMBOL vmlinux 0x98dde4a9 tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0x98deb424 dmam_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port
+EXPORT_SYMBOL vmlinux 0x9918393e eth_header_cache
+EXPORT_SYMBOL vmlinux 0x993f8dce __blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0x994e293b pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0x999367d0 setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999e8297 vfree
+EXPORT_SYMBOL vmlinux 0x99b46157 vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name
+EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink
+EXPORT_SYMBOL vmlinux 0x9a0284eb kill_fasync
+EXPORT_SYMBOL vmlinux 0x9a042bb3 unregister_md_personality
+EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk
+EXPORT_SYMBOL vmlinux 0x9a1fb87a blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0x9a3c94b3 dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x9a5d8c5d skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock
+EXPORT_SYMBOL vmlinux 0x9a6c1384 pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0x9a766e90 genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0x9a7af92a skb_pad
+EXPORT_SYMBOL vmlinux 0x9a8b88eb pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0x9ab70595 blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0x9acea396 scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0x9adb599a sk_filter
+EXPORT_SYMBOL vmlinux 0x9af6b929 bitmap_close_sync
+EXPORT_SYMBOL vmlinux 0x9b09db08 dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0x9b243624 sk_stream_error
+EXPORT_SYMBOL vmlinux 0x9b27cf45 nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0x9b31d847 atomic64_dec_if_positive_386
+EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b62129b ida_get_new
+EXPORT_SYMBOL vmlinux 0x9b647f58 remove_arg_zero
+EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize
+EXPORT_SYMBOL vmlinux 0x9b7a6de5 acpi_device_hid
+EXPORT_SYMBOL vmlinux 0x9b805208 copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split
+EXPORT_SYMBOL vmlinux 0x9baf60ce proto_unregister
+EXPORT_SYMBOL vmlinux 0x9bb1ca7c dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0x9bbd0821 __dquot_free_space
+EXPORT_SYMBOL vmlinux 0x9bc5476d rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0x9bce482f __release_region
+EXPORT_SYMBOL vmlinux 0x9c004cf4 vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c132463 no_llseek
+EXPORT_SYMBOL vmlinux 0x9c14bb8d nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x9c23bcba atomic64_add_return_cx8
+EXPORT_SYMBOL vmlinux 0x9c2c944a __copy_from_user_ll_nocache_nozero
+EXPORT_SYMBOL vmlinux 0x9c34d208 neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x9c383b22 tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0x9c3a4d96 scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt
+EXPORT_SYMBOL vmlinux 0x9c8294c0 replace_mount_options
+EXPORT_SYMBOL vmlinux 0x9c94aeb8 kill_pid
+EXPORT_SYMBOL vmlinux 0x9cb2f8ee mmc_suspend_host
+EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cbe376f inode_setattr
+EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x9cfbc7b1 blkdev_get
+EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9d06fbf3 mca_device_status
+EXPORT_SYMBOL vmlinux 0x9d0aadd6 jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x9d1e87cc dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x9d2bd700 clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable
+EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d3e9195 revert_creds
+EXPORT_SYMBOL vmlinux 0x9d7e40c6 inode_init_once
+EXPORT_SYMBOL vmlinux 0x9d88d7a2 __skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0x9db68339 pagecache_write_end
+EXPORT_SYMBOL vmlinux 0x9dcb6748 atomic64_xchg_cx8
+EXPORT_SYMBOL vmlinux 0x9dda0c09 vfs_writev
+EXPORT_SYMBOL vmlinux 0x9de6b324 netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x9e0a2024 pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0x9e17d33b mmc_wait_for_cmd
+EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x9e286617 skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0x9e33933c force_sig
+EXPORT_SYMBOL vmlinux 0x9e3d481e __dst_free
+EXPORT_SYMBOL vmlinux 0x9e5d9788 tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read
+EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x9e7941ce pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0x9e7be198 uart_get_divisor
+EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay
+EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ea77127 copy_io_context
+EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk
+EXPORT_SYMBOL vmlinux 0x9efb349d gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool
+EXPORT_SYMBOL vmlinux 0x9f323e41 cdrom_mode_sense
+EXPORT_SYMBOL vmlinux 0x9f3590af pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x9f3e373a i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0x9f450129 pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk
+EXPORT_SYMBOL vmlinux 0x9f984513 strrchr
+EXPORT_SYMBOL vmlinux 0x9f992ab1 mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x9fcd1c0a serio_rescan
+EXPORT_SYMBOL vmlinux 0x9fcdc0c3 blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0x9fe0b5f0 scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xa0040385 dmam_release_declared_memory
+EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa04e2bc6 generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa09cd4b2 tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock
+EXPORT_SYMBOL vmlinux 0xa0acc614 jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0b396a3 blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0xa0b7fb39 acpi_match_device_ids
+EXPORT_SYMBOL vmlinux 0xa0b8b7a0 dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa10fab63 security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0xa11276dd grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa14afe4a elv_rb_add
+EXPORT_SYMBOL vmlinux 0xa1950854 blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0xa19af14f xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock
+EXPORT_SYMBOL vmlinux 0xa1b1bcdd generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode
+EXPORT_SYMBOL vmlinux 0xa1c5797a tc_classify
+EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched
+EXPORT_SYMBOL vmlinux 0xa1d204d6 xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0xa1f67bb0 md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa21c57f2 pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0xa21d8874 inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0xa229d31f security_path_unlink
+EXPORT_SYMBOL vmlinux 0xa22d14bd tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0xa243cb49 inet_frag_find
+EXPORT_SYMBOL vmlinux 0xa25770f0 ppp_output_wakeup
+EXPORT_SYMBOL vmlinux 0xa282cd2b pnp_get_resource
+EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2c5d118 xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa313f93f filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker
+EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le
+EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc
+EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config
+EXPORT_SYMBOL vmlinux 0xa3678b8c skb_queue_purge
+EXPORT_SYMBOL vmlinux 0xa368f7f5 jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0xa3c55d40 __sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0xa3f5c300 ip6_frag_init
+EXPORT_SYMBOL vmlinux 0xa3fca120 seq_open_private
+EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0xa4990b56 elv_abort_queue
+EXPORT_SYMBOL vmlinux 0xa4b06d88 stop_tty
+EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq
+EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4c71db3 iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0xa4d50cbf pipe_to_file
+EXPORT_SYMBOL vmlinux 0xa4e16522 pipe_lock
+EXPORT_SYMBOL vmlinux 0xa4e2e486 dst_alloc
+EXPORT_SYMBOL vmlinux 0xa4ecbee1 complete_request_key
+EXPORT_SYMBOL vmlinux 0xa4f5bd80 rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0xa4ff8794 netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0xa4ff8b43 input_set_keycode
+EXPORT_SYMBOL vmlinux 0xa50175df dev_mc_add
+EXPORT_SYMBOL vmlinux 0xa50e2a3c tcp_prot
+EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP
+EXPORT_SYMBOL vmlinux 0xa564e856 invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone
+EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse
+EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes
+EXPORT_SYMBOL vmlinux 0xa59cb911 md_barrier_request
+EXPORT_SYMBOL vmlinux 0xa5a4b835 ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last
+EXPORT_SYMBOL vmlinux 0xa5a68811 napi_complete
+EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource
+EXPORT_SYMBOL vmlinux 0xa5d17ba5 fb_find_mode
+EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL vmlinux 0xa5dce27a follow_down
+EXPORT_SYMBOL vmlinux 0xa5ed2a93 noop_llseek
+EXPORT_SYMBOL vmlinux 0xa5f6516a inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0xa5fe4d5f eth_type_trans
+EXPORT_SYMBOL vmlinux 0xa5febad7 ip_dev_find
+EXPORT_SYMBOL vmlinux 0xa60ff2c9 kunmap_atomic
+EXPORT_SYMBOL vmlinux 0xa635f2cc pci_get_device
+EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember
+EXPORT_SYMBOL vmlinux 0xa661c4ce bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0xa6743398 request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa6856637 vga_put
+EXPORT_SYMBOL vmlinux 0xa688a730 fb_show_logo
+EXPORT_SYMBOL vmlinux 0xa68ef691 blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0xa699fcf3 tty_port_hangup
+EXPORT_SYMBOL vmlinux 0xa69e8e3f backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh
+EXPORT_SYMBOL vmlinux 0xa6a23b28 nf_reinject
+EXPORT_SYMBOL vmlinux 0xa6b7dcb0 xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0xa6bafb7a sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xa6ceff5c inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0xa6dc2ae2 generic_block_bmap
+EXPORT_SYMBOL vmlinux 0xa6e7a163 qdisc_reset
+EXPORT_SYMBOL vmlinux 0xa7046549 vprintk
+EXPORT_SYMBOL vmlinux 0xa706d5e0 mmc_remove_host
+EXPORT_SYMBOL vmlinux 0xa70812b3 cdev_index
+EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0xa716efd0 atomic64_read_386
+EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu
+EXPORT_SYMBOL vmlinux 0xa74253e3 pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0xa74b527e register_console
+EXPORT_SYMBOL vmlinux 0xa771a662 pnp_unregister_driver
+EXPORT_SYMBOL vmlinux 0xa77e94a4 cdev_alloc
+EXPORT_SYMBOL vmlinux 0xa788899b simple_release_fs
+EXPORT_SYMBOL vmlinux 0xa7da129b consume_skb
+EXPORT_SYMBOL vmlinux 0xa7de1120 inet_csk_accept
+EXPORT_SYMBOL vmlinux 0xa80f262f dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0xa8331b52 request_key_async
+EXPORT_SYMBOL vmlinux 0xa845cf36 qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0xa859f99e i2c_master_send
+EXPORT_SYMBOL vmlinux 0xa89c2429 udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0xa8c4800a scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning
+EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa90b4f8a ppp_register_channel
+EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support
+EXPORT_SYMBOL vmlinux 0xa92b7c4d xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0xa94a5474 __scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0xa995c098 eisa_bus_type
+EXPORT_SYMBOL vmlinux 0xa9a3e48e tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0xa9b54943 __neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize
+EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc
+EXPORT_SYMBOL vmlinux 0xa9e7458b pci_assign_resource
+EXPORT_SYMBOL vmlinux 0xa9fa77d2 dquot_release
+EXPORT_SYMBOL vmlinux 0xaa1efd2f uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0xaa4ec0ac xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0xaa5c17aa sg_miter_stop
+EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check
+EXPORT_SYMBOL vmlinux 0xaa8b624b pci_fixup_device
+EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance
+EXPORT_SYMBOL vmlinux 0xaaaaacd1 ioremap_wc
+EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0xaab414d2 fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0xaad3731f submit_bio
+EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable
+EXPORT_SYMBOL vmlinux 0xaaebe34f mca_write_pos
+EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister
+EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp
+EXPORT_SYMBOL vmlinux 0xab030092 bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0xab16e1ce journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off
+EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc
+EXPORT_SYMBOL vmlinux 0xab6fd3d4 acpi_unlock_battery_dir
+EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0xab94839f eth_header
+EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock
+EXPORT_SYMBOL vmlinux 0xaba88258 bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabd764b2 vc_resize
+EXPORT_SYMBOL vmlinux 0xabef1ace udplite_prot
+EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id
+EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac6878e4 atomic64_inc_return_cx8
+EXPORT_SYMBOL vmlinux 0xac867b4f path_is_under
+EXPORT_SYMBOL vmlinux 0xac964fda posix_test_lock
+EXPORT_SYMBOL vmlinux 0xaca6084d dm_unregister_target
+EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton
+EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup
+EXPORT_SYMBOL vmlinux 0xacfd2e68 cad_pid
+EXPORT_SYMBOL vmlinux 0xad0263ed i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex
+EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute
+EXPORT_SYMBOL vmlinux 0xad2a82b3 dev_mc_init
+EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad94bc05 tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0xada69daa dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region
+EXPORT_SYMBOL vmlinux 0xadf6862b ppp_input_error
+EXPORT_SYMBOL vmlinux 0xae04988e splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0xae0c6ca1 security_file_mmap
+EXPORT_SYMBOL vmlinux 0xae3b1e18 bdput
+EXPORT_SYMBOL vmlinux 0xae3dacd2 audit_log_end
+EXPORT_SYMBOL vmlinux 0xae3fd6fe pci_remove_bus
+EXPORT_SYMBOL vmlinux 0xae4e3d6c d_move
+EXPORT_SYMBOL vmlinux 0xae5a6d18 block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0xae60c129 udp_prot
+EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set
+EXPORT_SYMBOL vmlinux 0xae91b644 udp_disconnect
+EXPORT_SYMBOL vmlinux 0xaea38271 vc_cons
+EXPORT_SYMBOL vmlinux 0xaea9de1e journal_update_format
+EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0xaee632c3 ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0xaf16ac12 dquot_destroy
+EXPORT_SYMBOL vmlinux 0xaf30aeaa tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0xaf334312 km_policy_expired
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf42ce57 mem_map
+EXPORT_SYMBOL vmlinux 0xaf44f984 pci_get_subsys
+EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table
+EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register
+EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xaf6fdcb9 dquot_scan_active
+EXPORT_SYMBOL vmlinux 0xaf9adf61 send_sig
+EXPORT_SYMBOL vmlinux 0xafa46788 flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xafa51594 register_filesystem
+EXPORT_SYMBOL vmlinux 0xafa9ab4e security_inode_readlink
+EXPORT_SYMBOL vmlinux 0xafdd1ff4 fget
+EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait
+EXPORT_SYMBOL vmlinux 0xb01b4e68 key_alloc
+EXPORT_SYMBOL vmlinux 0xb02ab1ab kmap_high
+EXPORT_SYMBOL vmlinux 0xb02e73cd kernel_accept
+EXPORT_SYMBOL vmlinux 0xb03bce49 pci_release_region
+EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state
+EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler
+EXPORT_SYMBOL vmlinux 0xb09305db __nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0e10781 get_option
+EXPORT_SYMBOL vmlinux 0xb0faf7ee udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0xb100187f __serio_register_port
+EXPORT_SYMBOL vmlinux 0xb1029778 sock_no_accept
+EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb1264d93 mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0xb13fc24c blk_end_request
+EXPORT_SYMBOL vmlinux 0xb168314a pci_claim_resource
+EXPORT_SYMBOL vmlinux 0xb181feb9 tcf_register_action
+EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1c5d876 mb_cache_create
+EXPORT_SYMBOL vmlinux 0xb1cf6310 inet_accept
+EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xb1e1dad4 ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0xb1e71485 bio_map_kern
+EXPORT_SYMBOL vmlinux 0xb1e9f38b bitmap_cond_end_sync
+EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit
+EXPORT_SYMBOL vmlinux 0xb207e44e slow_work_cancel
+EXPORT_SYMBOL vmlinux 0xb2187d71 pci_get_class
+EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu
+EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short
+EXPORT_SYMBOL vmlinux 0xb22a19a9 kunmap_high
+EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xb24636d0 sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb2b48cfe bio_copy_kern
+EXPORT_SYMBOL vmlinux 0xb2eb9889 request_firmware
+EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos
+EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4
+EXPORT_SYMBOL vmlinux 0xb3133acc generic_setlease
+EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer
+EXPORT_SYMBOL vmlinux 0xb332bfad __rta_fill
+EXPORT_SYMBOL vmlinux 0xb34b505e pci_release_regions
+EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate
+EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit
+EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3db1987 get_phy_device
+EXPORT_SYMBOL vmlinux 0xb3df71e5 journal_destroy
+EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources
+EXPORT_SYMBOL vmlinux 0xb406e5b1 framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0xb4070d36 pci_find_bus
+EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked
+EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool
+EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0xb4390f9a mcount
+EXPORT_SYMBOL vmlinux 0xb45578b8 memscan
+EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids
+EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb472702a devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xb487a7ee blk_unplug
+EXPORT_SYMBOL vmlinux 0xb48e787c poll_initwait
+EXPORT_SYMBOL vmlinux 0xb495f8e1 dcache_dir_close
+EXPORT_SYMBOL vmlinux 0xb4a69859 security_inode_init_security
+EXPORT_SYMBOL vmlinux 0xb4e1efd7 free_netdev
+EXPORT_SYMBOL vmlinux 0xb4f56dec ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf
+EXPORT_SYMBOL vmlinux 0xb511ea17 __lru_cache_add
+EXPORT_SYMBOL vmlinux 0xb5267835 kset_unregister
+EXPORT_SYMBOL vmlinux 0xb52b8f12 blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0xb5350c93 kernel_connect
+EXPORT_SYMBOL vmlinux 0xb539b58c sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0xb542f50a inet6_release
+EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb56ae5e0 simple_unlink
+EXPORT_SYMBOL vmlinux 0xb56f75a2 hippi_type_trans
+EXPORT_SYMBOL vmlinux 0xb589e2bb iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5a4b5f2 sk_reset_txq
+EXPORT_SYMBOL vmlinux 0xb5a59e03 i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0xb5c44421 cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free
+EXPORT_SYMBOL vmlinux 0xb5cf2c72 ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction
+EXPORT_SYMBOL vmlinux 0xb5ec843f end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0xb5f143fb __inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0xb6049e97 security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0xb6107cad phy_sanitize_settings
+EXPORT_SYMBOL vmlinux 0xb64579fa nf_getsockopt
+EXPORT_SYMBOL vmlinux 0xb651a9c5 register_nls
+EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt
+EXPORT_SYMBOL vmlinux 0xb67adccc security_path_rmdir
+EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif
+EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu
+EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy
+EXPORT_SYMBOL vmlinux 0xb70014a3 tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0xb70aa9d6 __generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xb72397d5 printk
+EXPORT_SYMBOL vmlinux 0xb734aed4 phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xb7539924 d_path
+EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event
+EXPORT_SYMBOL vmlinux 0xb7647a91 ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0xb76ca8c3 generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0xb771c079 blk_get_request
+EXPORT_SYMBOL vmlinux 0xb7754bb2 misc_register
+EXPORT_SYMBOL vmlinux 0xb7a56691 pci_do_scan_bus
+EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be
+EXPORT_SYMBOL vmlinux 0xb7d69b87 rfkill_alloc
+EXPORT_SYMBOL vmlinux 0xb7dc7f30 tty_port_open
+EXPORT_SYMBOL vmlinux 0xb837b4fd tty_shutdown
+EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat
+EXPORT_SYMBOL vmlinux 0xb85e595c get_sb_ns
+EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops
+EXPORT_SYMBOL vmlinux 0xb86dbb7e vga_switcheroo_client_fb_set
+EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32
+EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release
+EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on
+EXPORT_SYMBOL vmlinux 0xb896b414 eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32
+EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue
+EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region
+EXPORT_SYMBOL vmlinux 0xb8b7e639 register_md_personality
+EXPORT_SYMBOL vmlinux 0xb8baccdd bio_phys_segments
+EXPORT_SYMBOL vmlinux 0xb8cdfe40 dm_table_get
+EXPORT_SYMBOL vmlinux 0xb8d18e3a dget_locked
+EXPORT_SYMBOL vmlinux 0xb8d3569c filemap_fault
+EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8
+EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory
+EXPORT_SYMBOL vmlinux 0xb9244db4 dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0xb942b513 smp_call_function_many
+EXPORT_SYMBOL vmlinux 0xb943f337 block_prepare_write
+EXPORT_SYMBOL vmlinux 0xb95fbf84 inode_permission
+EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb99e4f3b kthread_create
+EXPORT_SYMBOL vmlinux 0xb9a22bb8 unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0xb9b6425f sock_no_connect
+EXPORT_SYMBOL vmlinux 0xb9d69b3e wireless_spy_update
+EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable
+EXPORT_SYMBOL vmlinux 0xb9f1a68a pskb_copy
+EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap
+EXPORT_SYMBOL vmlinux 0xba19bbb4 skb_gso_segment
+EXPORT_SYMBOL vmlinux 0xba23227f bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read
+EXPORT_SYMBOL vmlinux 0xba318a6c send_sig_info
+EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba653d42 cont_write_begin
+EXPORT_SYMBOL vmlinux 0xba6d7e88 sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0xba76ca61 kmap_atomic_to_page
+EXPORT_SYMBOL vmlinux 0xba790b92 mmc_host_lazy_disable
+EXPORT_SYMBOL vmlinux 0xba7b31b1 misc_deregister
+EXPORT_SYMBOL vmlinux 0xba90a92d atomic64_inc_return_386
+EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbaacaff6 seq_write
+EXPORT_SYMBOL vmlinux 0xbabaf94f scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb2ced96 tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0xbb3e14db fsnotify_destroy_mark_by_entry
+EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb5f3a2a xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font
+EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xbbba38f4 simple_pin_fs
+EXPORT_SYMBOL vmlinux 0xbbe7053c journal_create
+EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit
+EXPORT_SYMBOL vmlinux 0xbc2185a2 journal_set_features
+EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table
+EXPORT_SYMBOL vmlinux 0xbc2e3acb sync_blockdev
+EXPORT_SYMBOL vmlinux 0xbc54aa99 soft_cursor
+EXPORT_SYMBOL vmlinux 0xbc591bc5 tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0xbc5bb013 __ip_select_ident
+EXPORT_SYMBOL vmlinux 0xbc689284 scsi_scan_target
+EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user
+EXPORT_SYMBOL vmlinux 0xbcf6fbb9 input_close_device
+EXPORT_SYMBOL vmlinux 0xbd0aa2b5 sk_run_filter
+EXPORT_SYMBOL vmlinux 0xbd33270a gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0xbd46fbf9 blk_rq_init
+EXPORT_SYMBOL vmlinux 0xbdd17d51 mntput_no_expire
+EXPORT_SYMBOL vmlinux 0xbdea7fd1 nf_log_unregister
+EXPORT_SYMBOL vmlinux 0xbdebb6f3 idr_find
+EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next
+EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp
+EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node
+EXPORT_SYMBOL vmlinux 0xbe5c1d4c atomic64_dec_386
+EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource
+EXPORT_SYMBOL vmlinux 0xbe6fd4f5 cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0xbe714427 __napi_schedule
+EXPORT_SYMBOL vmlinux 0xbe7d8496 pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0xbe82a5d7 block_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0xbe89114b mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0xbe8c37d9 intel_scu_ipc_simple_command
+EXPORT_SYMBOL vmlinux 0xbebbcf8b tty_throttle
+EXPORT_SYMBOL vmlinux 0xbed2a05a call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbef4ed4e security_d_instantiate
+EXPORT_SYMBOL vmlinux 0xbefd6eb5 scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0xbf02cfe0 ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0xbf4db301 generic_getxattr
+EXPORT_SYMBOL vmlinux 0xbf593540 kmem_cache_alloc_node_notrace
+EXPORT_SYMBOL vmlinux 0xbf62a7d9 pnp_start_dev
+EXPORT_SYMBOL vmlinux 0xbf76e333 kernel_getsockname
+EXPORT_SYMBOL vmlinux 0xbf78c5b6 blk_execute_rq
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbfa604c1 dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0xbfbda6e0 blk_recount_segments
+EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep
+EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xbff7e4ed blk_stack_limits
+EXPORT_SYMBOL vmlinux 0xbffeabde mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0xc000f882 d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user
+EXPORT_SYMBOL vmlinux 0xc006679b md_integrity_register
+EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero
+EXPORT_SYMBOL vmlinux 0xc05929d7 security_path_link
+EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc085d98d blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0xc08f61a8 ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit
+EXPORT_SYMBOL vmlinux 0xc0a71b39 pv_mmu_ops
+EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object
+EXPORT_SYMBOL vmlinux 0xc0cecbe2 fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0xc0df9f30 freeze_bdev
+EXPORT_SYMBOL vmlinux 0xc0f65988 machine_real_restart
+EXPORT_SYMBOL vmlinux 0xc11c7386 vmtruncate
+EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten
+EXPORT_SYMBOL vmlinux 0xc122cee2 gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xc12470b8 register_quota_format
+EXPORT_SYMBOL vmlinux 0xc12f96ff pid_task
+EXPORT_SYMBOL vmlinux 0xc14a8119 create_mnt_ns
+EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic
+EXPORT_SYMBOL vmlinux 0xc1674e2c module_layout
+EXPORT_SYMBOL vmlinux 0xc16e0473 mmc_register_driver
+EXPORT_SYMBOL vmlinux 0xc16f3e7d security_path_truncate
+EXPORT_SYMBOL vmlinux 0xc18988f7 filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0xc1abebe7 x86_hyper
+EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1de732f mca_register_driver
+EXPORT_SYMBOL vmlinux 0xc22c3291 skb_queue_tail
+EXPORT_SYMBOL vmlinux 0xc23e81f3 md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0xc2408acc x86_dma_fallback_dev
+EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc2719ff6 pci_disable_device
+EXPORT_SYMBOL vmlinux 0xc278e817 rtnl_notify
+EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll
+EXPORT_SYMBOL vmlinux 0xc2c5f6fb __scsi_put_command
+EXPORT_SYMBOL vmlinux 0xc2d679ad inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc
+EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices
+EXPORT_SYMBOL vmlinux 0xc313ea47 register_exec_domain
+EXPORT_SYMBOL vmlinux 0xc31f1219 tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0xc32e922b scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu
+EXPORT_SYMBOL vmlinux 0xc345ce54 intel_scu_ipc_fw_update
+EXPORT_SYMBOL vmlinux 0xc35c66cd inet_recvmsg
+EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout
+EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1
+EXPORT_SYMBOL vmlinux 0xc3af70c1 inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0xc3b06e2c get_gendisk
+EXPORT_SYMBOL vmlinux 0xc3be3a2f unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p
+EXPORT_SYMBOL vmlinux 0xc3e3eb20 dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr
+EXPORT_SYMBOL vmlinux 0xc3ff1e5d blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0xc3ffe13f tcf_action_exec
+EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier
+EXPORT_SYMBOL vmlinux 0xc40c06cd xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0xc40da2f0 security_file_permission
+EXPORT_SYMBOL vmlinux 0xc414399e make_bad_inode
+EXPORT_SYMBOL vmlinux 0xc442cad7 dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0xc45e0c24 tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0xc47e91a5 fput
+EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup
+EXPORT_SYMBOL vmlinux 0xc4a23c78 ip_getsockopt
+EXPORT_SYMBOL vmlinux 0xc4a71e6c load_nls_default
+EXPORT_SYMBOL vmlinux 0xc4c9e208 block_read_full_page
+EXPORT_SYMBOL vmlinux 0xc4ccf574 end_page_writeback
+EXPORT_SYMBOL vmlinux 0xc4d9f3b5 inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0xc4dd7092 rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic
+EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0xc5199fa2 skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0xc51a29e1 dev_get_stats
+EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc534c553 scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0xc53cd86b inode_add_bytes
+EXPORT_SYMBOL vmlinux 0xc547faa4 bio_sector_offset
+EXPORT_SYMBOL vmlinux 0xc5492dca commit_creds
+EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16
+EXPORT_SYMBOL vmlinux 0xc57000d7 pci_bus_type
+EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0xc57f7932 backlight_force_update
+EXPORT_SYMBOL vmlinux 0xc589aa06 set_blocksize
+EXPORT_SYMBOL vmlinux 0xc5916ebc tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0xc598104b unload_nls
+EXPORT_SYMBOL vmlinux 0xc5a65e5a tcp_shutdown
+EXPORT_SYMBOL vmlinux 0xc5a68c4a vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0xc5d835f7 register_gifconf
+EXPORT_SYMBOL vmlinux 0xc5eaeab6 x86_hyper_ms_hyperv
+EXPORT_SYMBOL vmlinux 0xc5f1535d generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xc6418bf9 get_fs_type
+EXPORT_SYMBOL vmlinux 0xc67441ce sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0xc675b5bf vfs_create
+EXPORT_SYMBOL vmlinux 0xc67f72f7 default_file_splice_read
+EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info
+EXPORT_SYMBOL vmlinux 0xc6ad66c7 dquot_initialize
+EXPORT_SYMBOL vmlinux 0xc6b23120 intel_scu_ipc_iowrite16
+EXPORT_SYMBOL vmlinux 0xc6b4705d km_new_mapping
+EXPORT_SYMBOL vmlinux 0xc6c20935 nf_register_hook
+EXPORT_SYMBOL vmlinux 0xc6d25b89 km_report
+EXPORT_SYMBOL vmlinux 0xc6dbe004 dst_destroy
+EXPORT_SYMBOL vmlinux 0xc6e2c51f __alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0xc7027327 tty_register_driver
+EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port
+EXPORT_SYMBOL vmlinux 0xc735f682 __locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xc74ace76 acpi_bus_get_device
+EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits
+EXPORT_SYMBOL vmlinux 0xc78c8b3d devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7c12490 bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0xc7c82f5a bio_endio
+EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn
+EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0xc810519a do_munmap
+EXPORT_SYMBOL vmlinux 0xc82929d9 pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc85560c7 i2c_transfer
+EXPORT_SYMBOL vmlinux 0xc85dd890 setup_new_exec
+EXPORT_SYMBOL vmlinux 0xc865554a ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8db77ea blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0xc8ddf0d5 tty_check_change
+EXPORT_SYMBOL vmlinux 0xc8f49599 sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xc93ec5fc single_open
+EXPORT_SYMBOL vmlinux 0xc94993cd blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0xc96ef7b5 jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev
+EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete
+EXPORT_SYMBOL vmlinux 0xc9e6ede2 md_check_recovery
+EXPORT_SYMBOL vmlinux 0xc9f8361d dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0xca14997d max8925_reg_write
+EXPORT_SYMBOL vmlinux 0xca222b18 kmap_atomic
+EXPORT_SYMBOL vmlinux 0xca240e46 scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0xca27a5c1 blk_free_tags
+EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca60f7d1 skb_split
+EXPORT_SYMBOL vmlinux 0xca6ae023 kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0xca6d5ef0 kernel_getpeername
+EXPORT_SYMBOL vmlinux 0xca724595 vfs_symlink
+EXPORT_SYMBOL vmlinux 0xca7f2c6c boot_cpu_data
+EXPORT_SYMBOL vmlinux 0xca843ff6 tty_write_room
+EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level
+EXPORT_SYMBOL vmlinux 0xcaa2710c set_pages_array_uc
+EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel
+EXPORT_SYMBOL vmlinux 0xcad2ffd5 input_unregister_device
+EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0xcaf7c8d5 blk_complete_request
+EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0xcb071523 cfb_imageblit
+EXPORT_SYMBOL vmlinux 0xcb37157e is_bad_inode
+EXPORT_SYMBOL vmlinux 0xcb3928ab dev_txq_stats_fold
+EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb71bedb set_device_ro
+EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power
+EXPORT_SYMBOL vmlinux 0xcb936f99 ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0xcba280c4 devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0xcbbabf98 __ps2_command
+EXPORT_SYMBOL vmlinux 0xcbf4dd04 wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port
+EXPORT_SYMBOL vmlinux 0xcc2a5737 nobh_writepage
+EXPORT_SYMBOL vmlinux 0xcc2e27e6 dquot_quota_on_path
+EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc464c11 try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc5857c7 pci_match_id
+EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package
+EXPORT_SYMBOL vmlinux 0xcc75566c pcibios_set_irq_routing
+EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc90fe08 dev_uc_flush
+EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0xcc9a8c7c mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0xccb8b6b0 dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0xccc23303 __secpath_destroy
+EXPORT_SYMBOL vmlinux 0xccfcc594 genl_register_ops
+EXPORT_SYMBOL vmlinux 0xcd038751 blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0xcd10b803 thaw_process
+EXPORT_SYMBOL vmlinux 0xcd56c22d __put_cred
+EXPORT_SYMBOL vmlinux 0xcd789712 pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0xcd7cd1d1 tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0xcd85c807 dqget
+EXPORT_SYMBOL vmlinux 0xcd898fe6 xfrm_register_type
+EXPORT_SYMBOL vmlinux 0xcdaef1f7 may_umount
+EXPORT_SYMBOL vmlinux 0xcdf73fb2 xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe
+EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0xce280c5c do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0xce2cd13a bio_integrity_free
+EXPORT_SYMBOL vmlinux 0xce30e910 uart_add_one_port
+EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xce43974a dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0xce47f3b9 pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state
+EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce5cc21e boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0xce743891 inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0xce7e0892 neigh_destroy
+EXPORT_SYMBOL vmlinux 0xcea0813e directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0xcebedda8 dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0xcecbb4d7 dev_addr_add
+EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free
+EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port
+EXPORT_SYMBOL vmlinux 0xcf0a4ec8 blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0xcf0dc059 mca_device_transform_ioport
+EXPORT_SYMBOL vmlinux 0xcf195a1b __break_lease
+EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error
+EXPORT_SYMBOL vmlinux 0xcf258714 devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xcf65479c sock_wmalloc
+EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free
+EXPORT_SYMBOL vmlinux 0xcf8c9e87 abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0xcf990d57 thermal_zone_bind_cooling_device
+EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe
+EXPORT_SYMBOL vmlinux 0xcff59758 pci_remove_behind_bridge
+EXPORT_SYMBOL vmlinux 0xd0047e99 input_free_device
+EXPORT_SYMBOL vmlinux 0xd00dd3d2 jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0xd00e92ba i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd02414a2 deny_write_access
+EXPORT_SYMBOL vmlinux 0xd0450160 tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0xd04db9d0 kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0xd055a8f4 file_fsync
+EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables
+EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0be03c7 vfs_statfs
+EXPORT_SYMBOL vmlinux 0xd0d8621b strlen
+EXPORT_SYMBOL vmlinux 0xd0de4b7a d_rehash
+EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0f78eaa sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd10ed2de xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xd12d9a16 xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0xd1385a57 scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver
+EXPORT_SYMBOL vmlinux 0xd18ae6b4 vfs_link
+EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic
+EXPORT_SYMBOL vmlinux 0xd1e4af54 unbind_con_driver
+EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings
+EXPORT_SYMBOL vmlinux 0xd1fd96aa fb_set_cmap
+EXPORT_SYMBOL vmlinux 0xd20bab38 put_disk
+EXPORT_SYMBOL vmlinux 0xd22b0ac7 set_pages_nx
+EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel
+EXPORT_SYMBOL vmlinux 0xd248bda4 tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0xd2496d3d pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0xd24ef6a7 padata_remove_cpu
+EXPORT_SYMBOL vmlinux 0xd250c718 dm_register_target
+EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t
+EXPORT_SYMBOL vmlinux 0xd256210f input_flush_device
+EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook
+EXPORT_SYMBOL vmlinux 0xd26274f6 vfs_getattr
+EXPORT_SYMBOL vmlinux 0xd266ad1b ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match
+EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table
+EXPORT_SYMBOL vmlinux 0xd2cf7852 con_is_bound
+EXPORT_SYMBOL vmlinux 0xd2e60f45 sock_update_classid
+EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance
+EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock
+EXPORT_SYMBOL vmlinux 0xd35aa98d splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0xd37064b0 jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xd379d3a4 scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xd37cd10f dquot_disable
+EXPORT_SYMBOL vmlinux 0xd382043a grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0xd383107d kobject_add
+EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64
+EXPORT_SYMBOL vmlinux 0xd3c33c31 scsi_register
+EXPORT_SYMBOL vmlinux 0xd3d1b7ff neigh_ifdown
+EXPORT_SYMBOL vmlinux 0xd3d8573c nf_log_register
+EXPORT_SYMBOL vmlinux 0xd3dccb78 dev_mc_sync
+EXPORT_SYMBOL vmlinux 0xd3e1d6df blk_end_request_all
+EXPORT_SYMBOL vmlinux 0xd40a3db0 dev_uc_del
+EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource
+EXPORT_SYMBOL vmlinux 0xd41ced3f init_task
+EXPORT_SYMBOL vmlinux 0xd41e6fd7 scsi_device_put
+EXPORT_SYMBOL vmlinux 0xd4686834 phy_connect_direct
+EXPORT_SYMBOL vmlinux 0xd4887691 scsi_init_io
+EXPORT_SYMBOL vmlinux 0xd4ae6fea inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0xd4d5cccb kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd4e6013e security_path_symlink
+EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data
+EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd52873f4 i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0xd52b45df simple_transaction_set
+EXPORT_SYMBOL vmlinux 0xd53f035f mfd_add_devices
+EXPORT_SYMBOL vmlinux 0xd5487aa7 jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8
+EXPORT_SYMBOL vmlinux 0xd54ca94a unlock_rename
+EXPORT_SYMBOL vmlinux 0xd5546610 dquot_transfer
+EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out
+EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit
+EXPORT_SYMBOL vmlinux 0xd57b3f00 mdiobus_scan
+EXPORT_SYMBOL vmlinux 0xd57d80cf tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put
+EXPORT_SYMBOL vmlinux 0xd5d25733 blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0xd5f4a790 __free_pages
+EXPORT_SYMBOL vmlinux 0xd5f858f9 uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xd5fb4679 netdev_set_master
+EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read
+EXPORT_SYMBOL vmlinux 0xd62c7b75 scsi_device_get
+EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd635d134 rb_last
+EXPORT_SYMBOL vmlinux 0xd659bbb8 jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0xd6708fb0 phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0xd6870eeb mca_bus_type
+EXPORT_SYMBOL vmlinux 0xd690e14e blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0xd6978c74 dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0xd6992425 phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single
+EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz
+EXPORT_SYMBOL vmlinux 0xd6d2d54e pnp_unregister_card_driver
+EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc
+EXPORT_SYMBOL vmlinux 0xd6f97ca1 rb_first
+EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh
+EXPORT_SYMBOL vmlinux 0xd77631f2 tcp_make_synack
+EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and
+EXPORT_SYMBOL vmlinux 0xd77d15b5 blk_remove_plug
+EXPORT_SYMBOL vmlinux 0xd79af21c block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal
+EXPORT_SYMBOL vmlinux 0xd7b811eb unregister_console
+EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7efcd0b cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0xd811a909 nobh_write_end
+EXPORT_SYMBOL vmlinux 0xd8227203 find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user
+EXPORT_SYMBOL vmlinux 0xd898fc11 xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone
+EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p
+EXPORT_SYMBOL vmlinux 0xd8c1a746 __pci_register_driver
+EXPORT_SYMBOL vmlinux 0xd8cea773 page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0xd8d0f3be ___pskb_trim
+EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler
+EXPORT_SYMBOL vmlinux 0xd925a8b5 scsi_prep_return
+EXPORT_SYMBOL vmlinux 0xd9263b4b pci_scan_slot
+EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd97f0a24 default_llseek
+EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd9a2845b i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0xd9ae07d7 neigh_update
+EXPORT_SYMBOL vmlinux 0xd9b64d77 locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused
+EXPORT_SYMBOL vmlinux 0xd9dabd73 netif_napi_add
+EXPORT_SYMBOL vmlinux 0xd9f98dcc arp_find
+EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table
+EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic
+EXPORT_SYMBOL vmlinux 0xda144626 remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0xda18a0f0 tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf
+EXPORT_SYMBOL vmlinux 0xda1cba74 nf_hook_slow
+EXPORT_SYMBOL vmlinux 0xda20cf7a mdiobus_read
+EXPORT_SYMBOL vmlinux 0xda2dd289 locks_init_lock
+EXPORT_SYMBOL vmlinux 0xda4cd31d fddi_type_trans
+EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue
+EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xda8be5b4 scsi_device_resume
+EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte
+EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages
+EXPORT_SYMBOL vmlinux 0xdab6b63f fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0xdadf799f mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0xdb128db1 try_to_release_page
+EXPORT_SYMBOL vmlinux 0xdb1586f5 jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0xdb414596 skb_make_writable
+EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0xdb93e681 ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0xdb9a3bdf ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0xdbae4e1b nla_reserve
+EXPORT_SYMBOL vmlinux 0xdbb765ba unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0xdbc31205 wireless_send_event
+EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbd80c62 netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done
+EXPORT_SYMBOL vmlinux 0xdbf49157 inode_needs_sync
+EXPORT_SYMBOL vmlinux 0xdbff1590 pci_dev_put
+EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc0d56d2 serio_open
+EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems
+EXPORT_SYMBOL vmlinux 0xdc1deac1 sock_release
+EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize
+EXPORT_SYMBOL vmlinux 0xdc54d3f8 generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0xdc56be3f d_find_alias
+EXPORT_SYMBOL vmlinux 0xdc6f2a35 lookup_hash
+EXPORT_SYMBOL vmlinux 0xdc713403 xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0xdc71c8f3 bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0xdc71e9ba bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0xdc74f76d lease_modify
+EXPORT_SYMBOL vmlinux 0xdc7d2153 genphy_resume
+EXPORT_SYMBOL vmlinux 0xdc985f09 override_creds
+EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family
+EXPORT_SYMBOL vmlinux 0xdcbf0c0f mark_page_accessed
+EXPORT_SYMBOL vmlinux 0xdcdc2cbc generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0xdce7c6ef scsi_add_device
+EXPORT_SYMBOL vmlinux 0xdcee5ac0 scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0xdcf8db7e insert_inode_locked
+EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat
+EXPORT_SYMBOL vmlinux 0xdd3f4df6 tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0xdd6f3ca7 add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0xdd877b28 rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0xdd961d12 init_net
+EXPORT_SYMBOL vmlinux 0xddb386d4 find_inode_number
+EXPORT_SYMBOL vmlinux 0xde2240bf dm_io_client_create
+EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending
+EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type
+EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages
+EXPORT_SYMBOL vmlinux 0xdec4b19c jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0xdeec6bd4 sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock
+EXPORT_SYMBOL vmlinux 0xdef4b1d1 neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0xdefc24af ppp_input
+EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices
+EXPORT_SYMBOL vmlinux 0xdf26ecee set_bh_page
+EXPORT_SYMBOL vmlinux 0xdf2cac81 eth_change_mtu
+EXPORT_SYMBOL vmlinux 0xdf39296c acpi_bus_generate_proc_event
+EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval
+EXPORT_SYMBOL vmlinux 0xdf60505d k8_northbridges
+EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol
+EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay
+EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdf9d9bac register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init
+EXPORT_SYMBOL vmlinux 0xdffbc3d4 kdb_current_task
+EXPORT_SYMBOL vmlinux 0xe00e64a8 skb_tx_hash
+EXPORT_SYMBOL vmlinux 0xe05685e7 jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0xe0715045 __vlan_hwaccel_rx
+EXPORT_SYMBOL vmlinux 0xe0753cec pagevec_lookup
+EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe078e530 bio_free
+EXPORT_SYMBOL vmlinux 0xe08a46e8 atomic64_inc_386
+EXPORT_SYMBOL vmlinux 0xe094d36a names_cachep
+EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next
+EXPORT_SYMBOL vmlinux 0xe0a16a20 intel_scu_ipc_i2c_cntrl
+EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event
+EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free
+EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort
+EXPORT_SYMBOL vmlinux 0xe0caccc3 scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0xe0e55afb blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0xe100f362 kobject_init
+EXPORT_SYMBOL vmlinux 0xe10bf661 pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0xe12beebb dma_ops
+EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors
+EXPORT_SYMBOL vmlinux 0xe14715d5 pnp_device_detach
+EXPORT_SYMBOL vmlinux 0xe1533794 kmem_cache_size
+EXPORT_SYMBOL vmlinux 0xe15cd5fc put_io_context
+EXPORT_SYMBOL vmlinux 0xe15dc9ab mmc_request_done
+EXPORT_SYMBOL vmlinux 0xe1659cdb alloc_fddidev
+EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe18aadec abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0xe18b797b acpi_lock_ac_dir
+EXPORT_SYMBOL vmlinux 0xe18f312b xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xe1a1190a vga_client_register
+EXPORT_SYMBOL vmlinux 0xe1a66386 set_pages_uc
+EXPORT_SYMBOL vmlinux 0xe1bad8a1 vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0xe1bf356b dquot_commit
+EXPORT_SYMBOL vmlinux 0xe1c74761 nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0xe1d0ef03 phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0xe1e67041 bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0xe2014698 dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0xe2246976 phy_register_fixup
+EXPORT_SYMBOL vmlinux 0xe22eb011 simple_readpage
+EXPORT_SYMBOL vmlinux 0xe2328b95 scsi_remove_host
+EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64
+EXPORT_SYMBOL vmlinux 0xe26fdc70 simple_write_end
+EXPORT_SYMBOL vmlinux 0xe275a314 bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0xe27fe1fa dev_getbyhwaddr
+EXPORT_SYMBOL vmlinux 0xe288448b set_page_dirty
+EXPORT_SYMBOL vmlinux 0xe29848b8 journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0xe2b6de54 page_symlink
+EXPORT_SYMBOL vmlinux 0xe2d36044 atomic64_inc_not_zero_386
+EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp
+EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user
+EXPORT_SYMBOL vmlinux 0xe2e8ad09 neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0xe2f8b909 skb_copy_bits
+EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup
+EXPORT_SYMBOL vmlinux 0xe308778b inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0xe32661a3 unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0xe33ef690 tcp_close
+EXPORT_SYMBOL vmlinux 0xe3636197 new_inode
+EXPORT_SYMBOL vmlinux 0xe3825be7 dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0xe3922b95 tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0xe39f1b53 scsi_remove_target
+EXPORT_SYMBOL vmlinux 0xe3a0b388 acpi_root_dir
+EXPORT_SYMBOL vmlinux 0xe3a4d3bd sock_no_mmap
+EXPORT_SYMBOL vmlinux 0xe3c4b9cb kunmap
+EXPORT_SYMBOL vmlinux 0xe3c4e066 dma_alloc_from_coherent
+EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8
+EXPORT_SYMBOL vmlinux 0xe3c7ff35 inet_register_protosw
+EXPORT_SYMBOL vmlinux 0xe3f66acc simple_statfs
+EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler
+EXPORT_SYMBOL vmlinux 0xe3fdd734 ida_remove
+EXPORT_SYMBOL vmlinux 0xe4017c29 __alloc_skb
+EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT
+EXPORT_SYMBOL vmlinux 0xe4410d3a xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0xe443b808 scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0xe44d3b9c scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem
+EXPORT_SYMBOL vmlinux 0xe46e1f65 secpath_dup
+EXPORT_SYMBOL vmlinux 0xe484e35f ioread32
+EXPORT_SYMBOL vmlinux 0xe4a2bda5 fb_set_suspend
+EXPORT_SYMBOL vmlinux 0xe4a99437 cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0xe4ae8cda llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0xe4c80436 dma_mark_declared_memory_occupied
+EXPORT_SYMBOL vmlinux 0xe4c8c179 have_submounts
+EXPORT_SYMBOL vmlinux 0xe4df7ce1 dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xe4ee3d30 tty_hangup
+EXPORT_SYMBOL vmlinux 0xe50f904f intel_scu_ipc_ioread16
+EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe5132a47 scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe52cd6f1 dev_open
+EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe
+EXPORT_SYMBOL vmlinux 0xe5426655 tc_classify_compat
+EXPORT_SYMBOL vmlinux 0xe5594f27 blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0xe574da2d pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton
+EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe58b4a7a netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0xe5b9497d pnpacpi_protocol
+EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5df989c uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0xe5e3b66f neigh_event_ns
+EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe6019428 tcp_disconnect
+EXPORT_SYMBOL vmlinux 0xe60c2cf0 scsi_unregister
+EXPORT_SYMBOL vmlinux 0xe6169459 tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0xe61ac203 scsi_host_put
+EXPORT_SYMBOL vmlinux 0xe6240fc9 pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0xe6714d65 journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid
+EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6b0ffb0 pcim_iounmap
+EXPORT_SYMBOL vmlinux 0xe6bba755 i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0xe6ccf4dd pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0xe6e0c059 tty_devnum
+EXPORT_SYMBOL vmlinux 0xe6e56e61 generic_file_llseek
+EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update
+EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe712e36f mnt_unpin
+EXPORT_SYMBOL vmlinux 0xe714edfd blk_start_request
+EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic
+EXPORT_SYMBOL vmlinux 0xe7305887 sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0xe7346785 udp_sendmsg
+EXPORT_SYMBOL vmlinux 0xe73be7ee igrab
+EXPORT_SYMBOL vmlinux 0xe73c2e14 inetdev_by_index
+EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy
+EXPORT_SYMBOL vmlinux 0xe754a126 pnp_possible_config
+EXPORT_SYMBOL vmlinux 0xe7708ca9 sock_sendmsg
+EXPORT_SYMBOL vmlinux 0xe781b5f6 intel_scu_ipc_readv
+EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7dfbbd6 xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0xe7fcf856 neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0xe8090438 blk_run_queue
+EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe81957e1 pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss
+EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit
+EXPORT_SYMBOL vmlinux 0xe8b01597 bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0xe8d09a6f padata_stop
+EXPORT_SYMBOL vmlinux 0xe9055773 __scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh
+EXPORT_SYMBOL vmlinux 0xe90aa4e9 rb_insert_color
+EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module
+EXPORT_SYMBOL vmlinux 0xe90e2191 mmc_align_data_size
+EXPORT_SYMBOL vmlinux 0xe914e41e strcpy
+EXPORT_SYMBOL vmlinux 0xe9218d41 seq_open
+EXPORT_SYMBOL vmlinux 0xe929074b sock_create_kern
+EXPORT_SYMBOL vmlinux 0xe94e8a30 kernel_bind
+EXPORT_SYMBOL vmlinux 0xe978e382 alloc_etherdev_mq
+EXPORT_SYMBOL vmlinux 0xe98ee10c nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0xe9936a36 security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xe9aa9d43 d_delete
+EXPORT_SYMBOL vmlinux 0xe9c84e51 register_sysctl_table
+EXPORT_SYMBOL vmlinux 0xe9eab7c0 netdev_state_change
+EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0xea47f217 vfs_rmdir
+EXPORT_SYMBOL vmlinux 0xea52aa7a security_path_mknod
+EXPORT_SYMBOL vmlinux 0xea7987f1 key_update
+EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xea865612 mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data
+EXPORT_SYMBOL vmlinux 0xea93b382 llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0xea944b64 dma_sync_wait
+EXPORT_SYMBOL vmlinux 0xead428cf cfb_fillrect
+EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay
+EXPORT_SYMBOL vmlinux 0xeb0a1428 pci_save_state
+EXPORT_SYMBOL vmlinux 0xeb44abca jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0xeb4ba6cc jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n
+EXPORT_SYMBOL vmlinux 0xeb8686ad sk_free
+EXPORT_SYMBOL vmlinux 0xeb901234 block_truncate_page
+EXPORT_SYMBOL vmlinux 0xeb936d8c dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0xeb9b7813 datagram_poll
+EXPORT_SYMBOL vmlinux 0xeb9c9d6a blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0xebbe7cd7 rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0xebbfa333 skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull
+EXPORT_SYMBOL vmlinux 0xebf3e0d4 d_prune_aliases
+EXPORT_SYMBOL vmlinux 0xec0b5df5 ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec241112 xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns
+EXPORT_SYMBOL vmlinux 0xec51d2a9 pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0xec75a9cd unregister_cdrom
+EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xec904f71 save_mount_options
+EXPORT_SYMBOL vmlinux 0xec96ee7c tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0xeca581bb nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0xeca6c793 pci_try_set_mwi
+EXPORT_SYMBOL vmlinux 0xecb829d9 mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0xecc09f92 ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0xecf2164b mdiobus_register
+EXPORT_SYMBOL vmlinux 0xecf9bc7c tty_unthrottle
+EXPORT_SYMBOL vmlinux 0xed18d106 vfs_follow_link
+EXPORT_SYMBOL vmlinux 0xed1eb091 __sk_dst_check
+EXPORT_SYMBOL vmlinux 0xed29d56f idr_remove
+EXPORT_SYMBOL vmlinux 0xed2c0dcb sock_kmalloc
+EXPORT_SYMBOL vmlinux 0xed4af84f bdi_init
+EXPORT_SYMBOL vmlinux 0xed741d67 tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0xed7a33e3 hippi_change_mtu
+EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xed8d585d framebuffer_release
+EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedc03953 iounmap
+EXPORT_SYMBOL vmlinux 0xedd901b8 dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0xedeef780 journal_revoke
+EXPORT_SYMBOL vmlinux 0xedfcca13 security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0xee22cd2a input_open_device
+EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee5f4c03 tcp4_gro_complete
+EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices
+EXPORT_SYMBOL vmlinux 0xee89c95a skb_recycle_check
+EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeeaae88e inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0xef1d2ac5 netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler
+EXPORT_SYMBOL vmlinux 0xef2ff425 lookup_one_len
+EXPORT_SYMBOL vmlinux 0xef38d8fa ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter
+EXPORT_SYMBOL vmlinux 0xef45ba57 icmp_send
+EXPORT_SYMBOL vmlinux 0xef4f6bb2 jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0xef5db4f2 neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc
+EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool
+EXPORT_SYMBOL vmlinux 0xef73857d cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override
+EXPORT_SYMBOL vmlinux 0xefad5cb9 kill_block_super
+EXPORT_SYMBOL vmlinux 0xefb9a9a3 sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0xefc2ef4e blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status
+EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock
+EXPORT_SYMBOL vmlinux 0xeff14be9 ioremap_cache
+EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list
+EXPORT_SYMBOL vmlinux 0xf0132862 nf_log_packet
+EXPORT_SYMBOL vmlinux 0xf025e3fa dma_set_mask
+EXPORT_SYMBOL vmlinux 0xf0264908 qdisc_list_del
+EXPORT_SYMBOL vmlinux 0xf03db616 __devm_request_region
+EXPORT_SYMBOL vmlinux 0xf0489760 vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0xf04c462f vlan_gro_frags
+EXPORT_SYMBOL vmlinux 0xf05549f2 drop_super
+EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be
+EXPORT_SYMBOL vmlinux 0xf0940398 d_genocide
+EXPORT_SYMBOL vmlinux 0xf095d7b2 noop_qdisc
+EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up
+EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0xf09e8176 blk_insert_request
+EXPORT_SYMBOL vmlinux 0xf0c2ee8e dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0xf0c787ee max8925_reg_read
+EXPORT_SYMBOL vmlinux 0xf0ece0aa __f_setown
+EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf
+EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail
+EXPORT_SYMBOL vmlinux 0xf10de535 ioread8
+EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit
+EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32
+EXPORT_SYMBOL vmlinux 0xf135e4dd blk_requeue_request
+EXPORT_SYMBOL vmlinux 0xf15568b6 sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem
+EXPORT_SYMBOL vmlinux 0xf17ed9f9 jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1c84cfb napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xf1d9121b kobject_set_name
+EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64
+EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun
+EXPORT_SYMBOL vmlinux 0xf200f36b pci_request_regions
+EXPORT_SYMBOL vmlinux 0xf2036286 audit_log_start
+EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq
+EXPORT_SYMBOL vmlinux 0xf2252706 locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer
+EXPORT_SYMBOL vmlinux 0xf240c3a3 genphy_update_link
+EXPORT_SYMBOL vmlinux 0xf249d9bb request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0xf24b8886 blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0xf2900a57 max8925_set_bits
+EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2a0406f bioset_create
+EXPORT_SYMBOL vmlinux 0xf2b51f70 padata_set_cpumask
+EXPORT_SYMBOL vmlinux 0xf2da58b5 phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name
+EXPORT_SYMBOL vmlinux 0xf2f6b7ad nf_setsockopt
+EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform
+EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name
+EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq
+EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user
+EXPORT_SYMBOL vmlinux 0xf33704f6 do_splice_from
+EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf350f46a __insert_inode_hash
+EXPORT_SYMBOL vmlinux 0xf359c0db llc_sap_find
+EXPORT_SYMBOL vmlinux 0xf3621cd4 ps2_drain
+EXPORT_SYMBOL vmlinux 0xf38676e8 tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf399ed6d ilookup5
+EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg
+EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3db5b0e ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0xf3df5c34 hippi_mac_addr
+EXPORT_SYMBOL vmlinux 0xf3ffcc4e dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xf41ea72b scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0xf430e2db pcim_iomap
+EXPORT_SYMBOL vmlinux 0xf43a6ac6 xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf450ac33 fb_pan_display
+EXPORT_SYMBOL vmlinux 0xf470d4c3 padata_free
+EXPORT_SYMBOL vmlinux 0xf478a87c d_splice_alias
+EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus
+EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask
+EXPORT_SYMBOL vmlinux 0xf4982616 __splice_from_pipe
+EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit
+EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced
+EXPORT_SYMBOL vmlinux 0xf4b771a3 scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0xf4b7f02e mmc_add_host
+EXPORT_SYMBOL vmlinux 0xf4da0d63 __brelse
+EXPORT_SYMBOL vmlinux 0xf4e7fd1f tty_kref_put
+EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf4f552ea sock_create
+EXPORT_SYMBOL vmlinux 0xf4ff754a ida_init
+EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources
+EXPORT_SYMBOL vmlinux 0xf5142158 ida_pre_get
+EXPORT_SYMBOL vmlinux 0xf5193d2f seq_path
+EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xf52e916f pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0xf52f3e63 __wait_on_buffer
+EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf54116d3 genphy_config_advert
+EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n
+EXPORT_SYMBOL vmlinux 0xf54c0f94 __dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xf57f5292 blk_init_queue
+EXPORT_SYMBOL vmlinux 0xf583f7f5 pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf607cd49 get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock
+EXPORT_SYMBOL vmlinux 0xf6149631 revalidate_disk
+EXPORT_SYMBOL vmlinux 0xf61aa987 mdiobus_write
+EXPORT_SYMBOL vmlinux 0xf62e1999 blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0xf6425149 dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0xf669724e xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0xf69a9724 dquot_alloc
+EXPORT_SYMBOL vmlinux 0xf69dc99e textsearch_prepare
+EXPORT_SYMBOL vmlinux 0xf6a5b570 pci_find_capability
+EXPORT_SYMBOL vmlinux 0xf6a95908 jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table
+EXPORT_SYMBOL vmlinux 0xf6c8d368 __inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0xf6dc7691 xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xf6dddc1c ps2_handle_response
+EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf70f4e92 thermal_zone_device_update
+EXPORT_SYMBOL vmlinux 0xf7584a9c find_font
+EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0xf76987ca inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7ab3b59 __kfree_skb
+EXPORT_SYMBOL vmlinux 0xf7c74e84 blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0xf7dca962 scsi_put_command
+EXPORT_SYMBOL vmlinux 0xf7e38832 mca_device_set_name
+EXPORT_SYMBOL vmlinux 0xf7ea2295 jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0xf7fcf961 cont_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0xf801db72 bdget_disk
+EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set
+EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects
+EXPORT_SYMBOL vmlinux 0xf84b1286 mutex_lock
+EXPORT_SYMBOL vmlinux 0xf867493c jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0xf88a3757 cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header
+EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle
+EXPORT_SYMBOL vmlinux 0xf8a7f17f xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0xf9145578 register_cdrom
+EXPORT_SYMBOL vmlinux 0xf9154bda inet_getname
+EXPORT_SYMBOL vmlinux 0xf93eec7a bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu
+EXPORT_SYMBOL vmlinux 0xf9440692 loop_register_transfer
+EXPORT_SYMBOL vmlinux 0xf952901c get_sb_pseudo
+EXPORT_SYMBOL vmlinux 0xf97d3bee pci_iounmap
+EXPORT_SYMBOL vmlinux 0xf9982a21 netif_device_detach
+EXPORT_SYMBOL vmlinux 0xf9a34f7e netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep
+EXPORT_SYMBOL vmlinux 0xf9a5fb8b dquot_acquire
+EXPORT_SYMBOL vmlinux 0xf9a8dcd0 ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0xf9c945ad jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0xf9ca2e68 xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0xf9e8f1b2 mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0xf9eaf0c0 tty_name
+EXPORT_SYMBOL vmlinux 0xf9ee7214 dev_trans_start
+EXPORT_SYMBOL vmlinux 0xf9f631c3 end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0xfa1ed1e7 unlock_page
+EXPORT_SYMBOL vmlinux 0xfa202ae8 dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0xfa45e7e3 pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0xfa5a3877 key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0xfa66be4d d_alloc
+EXPORT_SYMBOL vmlinux 0xfa73d055 sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0xfa80cd13 security_path_chown
+EXPORT_SYMBOL vmlinux 0xfa9a03e2 kern_path
+EXPORT_SYMBOL vmlinux 0xfac96e05 __dquot_transfer
+EXPORT_SYMBOL vmlinux 0xfaccb352 textsearch_unregister
+EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32
+EXPORT_SYMBOL vmlinux 0xfaf9d6ee dquot_resume
+EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent
+EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs
+EXPORT_SYMBOL vmlinux 0xfb2fb288 acpi_bus_get_status
+EXPORT_SYMBOL vmlinux 0xfb492a15 lock_rename
+EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb712cf7 acpi_unlock_ac_dir
+EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace
+EXPORT_SYMBOL vmlinux 0xfb8fb05b dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0xfba2e135 mmc_free_host
+EXPORT_SYMBOL vmlinux 0xfbb1fb1d get_sb_single
+EXPORT_SYMBOL vmlinux 0xfbb8f3ea lookup_bdev
+EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xfbdc709b pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0xfbea282c jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc2c7def i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc5250ad single_release
+EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc
+EXPORT_SYMBOL vmlinux 0xfc968bf5 ppp_unit_number
+EXPORT_SYMBOL vmlinux 0xfc98961f iunique
+EXPORT_SYMBOL vmlinux 0xfc9e9b75 journal_ack_err
+EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcaa7257 inet6_getname
+EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states
+EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq
+EXPORT_SYMBOL vmlinux 0xfcefd6ba dm_table_get_md
+EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfd295186 posix_lock_file
+EXPORT_SYMBOL vmlinux 0xfd2d4d01 pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0xfd5d21e0 skb_store_bits
+EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception
+EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be
+EXPORT_SYMBOL vmlinux 0xfdd3a606 ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe121d0a skb_unlink
+EXPORT_SYMBOL vmlinux 0xfe3f7146 rfkill_blocked
+EXPORT_SYMBOL vmlinux 0xfe5bb583 padata_add_cpu
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz
+EXPORT_SYMBOL vmlinux 0xfe65061e vfs_read
+EXPORT_SYMBOL vmlinux 0xfe6532c9 phy_device_register
+EXPORT_SYMBOL vmlinux 0xfe6c110a add_disk
+EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfe85f58f journal_clear_err
+EXPORT_SYMBOL vmlinux 0xfe9959a1 da903x_query_status
+EXPORT_SYMBOL vmlinux 0xfe9e78e2 dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0xfea53b9c thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin
+EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock
+EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfee0ef86 sock_recvmsg
+EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start
+EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu
+EXPORT_SYMBOL vmlinux 0xff536d2a scsi_execute
+EXPORT_SYMBOL vmlinux 0xff549c30 sget
+EXPORT_SYMBOL vmlinux 0xff608a15 tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff7903c8 security_path_chmod
+EXPORT_SYMBOL vmlinux 0xff8ce2db tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int
+EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xff9d9f4f simple_rename
+EXPORT_SYMBOL vmlinux 0xffb27f91 blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0xffbb911e i2c_use_client
+EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function
+EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table
+EXPORT_SYMBOL vmlinux 0xffdbcf91 set_pages_x
+EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0x7060bf0a crypto_aes_encrypt_x86
+EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0xe409b491 crypto_aes_decrypt_x86
+EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x01c7135a emulator_write_emulated
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x022e40f0 __tracepoint_kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0a6e7315 kvm_mmu_get_spte_hierarchy
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0e4ba53f kvm_get_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0e4cc32c kvm_set_cr0
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x19820333 kvm_set_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1da4e3d0 kvm_before_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x211a20e3 gfn_to_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2678cca2 emulate_instruction
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x26ce8079 kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27281f10 kvm_release_page_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x28aa56da kvm_set_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2a9f9a96 kvm_set_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2be258fb fx_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c034cc5 is_error_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x33c54417 gfn_to_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x33f0964c kvm_mmu_load
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x37913e77 kvm_get_guest_memory_type
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x37de5427 kvm_get_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3b43cee1 kvm_report_emulation_failure
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3b82caca kvm_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3dc8d386 kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3e43f05a kvm_write_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x41e05467 load_pdptrs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4b1264ac kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5339abf1 gfn_to_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x561a80e7 kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x599086dd kvm_handle_fault_on_reboot
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5acdfb19 kvm_requeue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x628a2f56 kvm_task_switch
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x682c8225 kvm_fast_pio_out
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x693962b7 kvm_release_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7a972e11 kvm_queue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x85dc131e kvm_vcpu_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x87480e44 kvm_resched
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x88ad62e6 kvm_lmsw
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ad62c57 kvm_clear_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8c4f9314 kvm_set_cr3
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x91b03f9e kvm_get_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9667ea07 kvm_emulate_halt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97d90562 kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99905e08 __tracepoint_kvm_inj_virq
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9be9f8f2 kvm_set_cr4
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9c3feca8 kvm_inject_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7b782b4 gfn_to_memslot_unaliased
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb02c632c kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb39278a3 kvm_get_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbb0f398a kvm_x86_ops
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd94103b kvm_mmu_set_base_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc0033f99 kvm_read_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc38b31f4 kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc3b4896b kvm_is_linear_rip
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc54183f5 kvm_read_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc6c9c511 kvm_after_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc8188cf0 kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xccad57b2 kvm_clear_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xccbe0b94 kvm_put_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcd24eb51 kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd1419e21 kvm_set_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd2b1ed1a kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd9281477 kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd9abd346 kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xda151ae1 kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdabb21a8 kvm_set_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xddd3504c kvm_vcpu_cache
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe0527275 kvm_queue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe61d42a8 kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe6b930a0 kvm_get_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe73f25c1 kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeb6d2340 __kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf799df42 kvm_require_cpl
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf8b8cb24 kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf9f7996e kvm_get_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfe77b2d1 kvm_set_cr8
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0xe3fd4fc4 crypto_aes_set_key
+EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x14abad7c async_memcpy
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xbf44f372 async_syndrome_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xea87c356 async_gen_syndrome
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x178431a6 async_raid6_datap_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xe49fa663 async_raid6_2data_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x1f678a51 __async_tx_find_channel
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x5d60a28b async_trigger_callback
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xbdb85afb async_tx_submit
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xc9e260de async_tx_quiesce
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x28473792 async_xor
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x5bdb4bd7 async_xor_val
+EXPORT_SYMBOL_GPL crypto/cryptd 0x1bf5f9ad cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x21c6eef7 cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x7f56a455 cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x9991c6e7 cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xcc2e9235 cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xe3e2f742 cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0xf8165ccf cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey
+EXPORT_SYMBOL_GPL crypto/twofish_common 0xa36cd13f twofish_setkey
+EXPORT_SYMBOL_GPL drivers/acpi/hed 0xa4ca0d4e unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL drivers/acpi/hed 0xaa3f13f7 register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x02caa6f2 ahci_ops
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0586a3fa ahci_print_info
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x45b2c5b4 ahci_save_initial_config
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5bffcfe8 ahci_check_ready
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5f7f4a19 ahci_init_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x60fc432d ahci_kick_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8b2fc1f0 ahci_start_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9e74f1aa ahci_reset_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb05af85f ahci_reset_em
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xcc98e9f9 ahci_do_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdba6bc50 ahci_sht
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe64ab185 ahci_set_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xee917366 ahci_stop_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x312fdfc4 btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x35cfab0b btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3604f0c3 btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5574740d btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x85d140b1 btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb8a8fe6f btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc0872f9a btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd4d63cd7 btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x5c131a45 agp_add_bridge
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xbdef6020 agp_remove_bridge
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved
+EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0x8bee9978 scx200_gpio_ops
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x11cdd8fd tpm_open
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x162c6751 tpm_dev_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x256c63ce tpm_pm_suspend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x28faeb36 tpm_show_active
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x30a6b6a0 tpm_get_timeouts
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x35ffb167 tpm_show_temp_deactivated
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3b26c627 tpm_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x485d19c1 tpm_dev_vendor_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5193ea16 tpm_show_owned
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x62698fd3 tpm_gen_interrupt
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x67fa2e61 tpm_show_caps_1_2
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6bd46b7f tpm_show_caps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x740bf2cc tpm_continue_selftest
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x74ae5385 tpm_register_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7ffccea7 tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x99d40fe9 tpm_store_cancel
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaaa33c26 tpm_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xbef70fa6 tpm_pm_resume
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc3b00768 tpm_show_pubek
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcd491137 tpm_write
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe3aa1dba tpm_remove_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf0f6cb7d tpm_show_enabled
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf750ad13 tpm_show_pcrs
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x1e57f478 tpm_bios_log_setup
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x51dc275c tpm_bios_log_teardown
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x2a457a28 free_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x578de8c4 dca3_get_tag
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x9a99e234 unregister_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xabdc6d21 dca_add_requester
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xc6490ed4 alloc_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xdf0c07f2 dca_remove_requester
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xe656eaf4 register_dca_provider
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x00d115d1 edac_mc_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x01ef0c52 edac_pci_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x45bc4941 edac_mc_handle_ce_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4a4bb751 edac_pci_handle_pe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4ef3d2ac edac_pci_reset_delay_period
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5afb1bbd edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5b1adb0c edac_pci_handle_npe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5cadb7b4 edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5e8e1d26 edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x61d963c2 edac_device_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x758fcd2b edac_mc_handle_ue_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x831477ef edac_mc_add_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8a3ba4ac edac_mc_free
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x92f20cae edac_device_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9877e3a3 edac_device_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa10ceead edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa15c2e9e edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xae4b159d edac_mc_alloc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb7b9bcbe edac_device_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc313d7f1 edac_mc_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd073beff edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd81e27c9 edac_mc_del_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd9b982a9 edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf87409e3 edac_pci_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1823885a amd_register_ecc_decoder
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x955c1f76 amd_decode_nb_mce
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2e765d2 amd_unregister_ecc_decoder
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xd0f094a0 ext_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x13c7f82c __max730x_remove
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xff964d9a __max730x_probe
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x37252c0f drm_class_device_unregister
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x47bb2c51 drm_class_device_register
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x064104f5 hid_dump_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x18523cec hid_register_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x1920896d hid_allocate_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x233bae12 hid_input_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x23b191c1 hid_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x2c254844 hid_add_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x36b6a06f __hid_register_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x3ccc9fa6 hidraw_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x49f04282 hidinput_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x4b1407fe hid_parse_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x5fce264d hidraw_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x6173e048 hid_unregister_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x7584e432 hidraw_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x767e8a71 hid_dump_input
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x9883e203 hid_dump_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x98c742b3 hid_output_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xa4e35c49 hid_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xa63e69d5 hidinput_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xac3f6088 hid_destroy_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xacb3fa7a hidinput_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xb05f32b4 hid_resolv_usage
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xcd8b6875 hid_check_keys_pressed
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe00e6c20 hidinput_find_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe93b8c7c hid_debug_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xecbd6887 hid_set_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xf044bda3 hid_report_raw_event
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x65099a46 roccat_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x1021b4e2 usbhid_wait_io
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x1d884f30 usbhid_submit_report
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x6823cfca hiddev_hid_event
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xe1a8c032 usbhid_set_leds
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x25eee222 lis3lv02d_init_device
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x69c999e3 lis3_dev
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6def6a90 lis3lv02d_poweron
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x8eb5beb2 lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xa204baf9 lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0xe1fff249 nforce2_smbus
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xb4bf3959 i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xf3d5ebbc i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x4f960cd1 hpsb_config_rom_ip1394_remove
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x57490909 hpsb_config_rom_ip1394_add
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm
+EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x66ae1da4 input_ff_create_memless
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x10832b20 wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x37d6fc32 wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x530e482f wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x63a0527d wm97xx_get_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x680669ac wm9713_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x68e36d04 wm97xx_config_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x803a7e7c wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa4ac6932 wm9712_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb19b1712 wm97xx_set_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb9127468 wm9705_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe1bc3c22 wm97xx_reg_write
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfc275450 wm97xx_reg_read
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1263954c gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2c83b565 gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4dcc7b8f gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5537741c gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x57b25bc6 gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5d154a40 gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x661dd293 gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x77e351b3 gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8a2407cc gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8f113cc8 gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9cf12b0c gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9f17c5a9 gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xabb1957f gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcb0b29af gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd88e0b5e gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe9a363f9 gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfadddd00 gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfc61cc4e gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x0c12cb46 led_classdev_suspend
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x127b1bc9 led_classdev_unregister
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0xb177e837 led_classdev_resume
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0xcb447a83 led_classdev_register
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x139a4491 ir_input_init
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xb5efd775 ir_input_nokey
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xfd777848 ir_input_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1d42bb15 ir_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x302536a6 get_rc_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x39af669e __ir_input_register
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x87b238d9 ir_g_keycode_from_table
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8fd647fb ir_register_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x99612455 ir_unregister_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xacf3588f ir_repeat
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xbfc4eba8 ir_raw_event_store
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xe605c622 ir_input_unregister
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xf2f8f098 ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xf653912c ir_raw_event_handle
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x086b556f saa7146_devices_lock
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x0e31a63c saa7146_register_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x0e73306b saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1d145c0c saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2c6bfec7 saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x3a90a093 saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x407c9eb8 saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x83bd1ed0 saa7146_setgpio
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x86b48297 saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8dc571ef saa7146_pgtable_free
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf63483ad saa7146_unregister_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x0643e77a saa7146_start_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x1bb47822 saa7146_vv_init
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x591f9f1e saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x9cac805b saa7146_register_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xc8ae9b17 saa7146_stop_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xda3b7531 saa7146_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xfe9f0ca7 saa7146_vv_release
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x3074489d microtune_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x4f1d1bd5 mxl5007t_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x3466a4cf tda18271_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x12b41435 tda827x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x9a53a5a1 tda829x_probe
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xff1f9569 tda829x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x141db628 tda9887_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x24cf1adb tea5761_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x74c39b92 tea5761_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x1bb4cc69 tea5767_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x79938b1f tea5767_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x60efd5e8 simple_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x106ff055 mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x199e6b65 ir_mantis
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x29a987f6 mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3a564b81 mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x3e9df7bf mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x45439b82 mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x48b3f551 gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4b0c9a7b mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6f7a2056 mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x71a3a8fc mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8da8aba9 mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9df5be01 mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa791107d mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb3f0251c mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbb8ac4ec mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbde115b5 mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbeea324a mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc6de7b49 mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x09be31cb sms_board_event
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x09e31259 sms_board_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x27e0c8e3 sms_board_lna_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2bc0dbc1 smscore_onresponse
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x30bcf8ab sms_board_led_feedback
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45247f59 smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5418c4ae smscore_get_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x661f9ef6 smscore_unregister_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7986e9e7 smscore_set_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7d5a2cf6 smsclient_sendrequest
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x91cdb8b3 sms_board_setup
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x97cdba50 smscore_start_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9b8b5459 smscore_getbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc4670d78 smscore_putbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc5f73c86 smscore_register_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc62c5807 smscore_get_device_mode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xca52f1f3 smscore_register_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd683c0c6 smscore_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xedf4d54a smscore_register_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x2c7ad1fb ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x8a9acae0 ttpci_budget_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x8b33f5f9 ttpci_budget_deinit
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xa52f99d1 ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xdbd54170 ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xe25a4151 ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xe57182de ttpci_budget_debiread
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x387d0ae4 cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x542125d9 cx231xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x641f02a8 cx231xx_dev_init
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6ecb0f33 cx231xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x8cd181d1 cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa08a921d cx231xx_capture_start
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc871bbfd cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xe2ad4be3 cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xee0d5b63 cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf9b23b80 cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfa7b8e1d cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xce5bda6c cx88_setup_xc3028
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x02192482 em28xx_audio_setup
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x360183e1 em28xx_isoc_dvb_max_packetsize
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7df24d09 em28xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x998630af em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xa24055c7 em28xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xcb7e97d7 em28xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x0066007f saa7134_s_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x0a8c9ef9 saa7134_s_std_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x48ab93fd saa7134_ts_qops
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x5c291b2a saa7134_queryctrl
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xd721c2cc saa7134_g_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x083a6057 v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x13720ee8 v4l2_i2c_new_subdev_cfg
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x4540319a v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x660ced34 v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x6f0d0dd9 v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xe9743227 v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x6ddc98fe v4l2_int_ioctl_1
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x7e3b2d88 v4l2_int_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xbd43279c v4l2_int_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xc17974e4 v4l2_int_ioctl_0
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2e35eb39 v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3807e6c9 v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3810f167 v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3fefb7ea v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x5dfe7073 v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x5fd3afd8 v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x7d9e0d5b v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8127a814 v4l2_m2m_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9d109628 v4l2_m2m_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa6b92259 v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa95bebc7 v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb70972b0 v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb77a7d27 v4l2_m2m_poll
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xee27eab4 v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x094a465c videobuf_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2e320fef videobuf_queue_cancel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x371d0b32 videobuf_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3c130687 videobuf_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x50fec444 videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x548e76d5 videobuf_poll_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x57262e4f videobuf_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x60b02b75 videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x62f3b5ab videobuf_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x65a09ecc videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6d154a13 videobuf_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7cf806f1 videobuf_queue_core_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9405459d videobuf_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x94a62f1a videobuf_read_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9a1c880a videobuf_next_field
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa6ec66e3 videobuf_read_start
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaa823ee2 videobuf_read_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb8c0300e videobuf_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc0430872 videobuf_iolock
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xca835991 __videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd293100c videobuf_mmap_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd9691513 videobuf_cgmbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe1fe873a videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf10b50d2 videobuf_waiton
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf5e3d5a4 videobuf_read_one
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x20bd6667 videobuf_to_dma_contig
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x3b2b716e videobuf_dma_contig_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xcbec3f89 videobuf_queue_dma_contig_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x068221b8 videobuf_sg_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x19dc4b6f videobuf_dma_init_kernel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x20586f67 videobuf_dma_init_user
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3d157f03 videobuf_dma_init_overlay
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7337b020 videobuf_to_dma
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7cb747be videobuf_dma_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xbbabd52a videobuf_dma_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe0a6c049 videobuf_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe8a24336 videobuf_vmalloc_to_sg
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xf2af6314 videobuf_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xf484cd33 videobuf_sg_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfe2f59f9 videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x07a1ed50 videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x1207f167 videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x1e3b7fbf videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0847cc6a v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1ac6692e v4l2_fh_exit
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1f9717d8 v4l2_event_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x2204f98a v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x38c2836a v4l2_fh_del
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4908e4a6 v4l2_event_queue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4c9b4877 v4l2_event_subscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x548c5848 v4l2_event_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6fdd3798 v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x765f49f2 v4l2_fh_add
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x837e4cd7 v4l2_event_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x83c98a9d v4l2_event_pending
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x93bcb99c v4l2_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x985074f9 v4l2_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9b0facad v4l2_fh_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa1785ed0 v4l2_event_dequeue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa4fd411d v4l2_device_disconnect
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb534d456 v4l2_device_set_name
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3648426c i2o_pool_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x38f8ed09 i2o_dma_map_single
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x49e759ef i2o_dma_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x7078173a i2o_dma_realloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x87ee2d10 i2o_pool_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8a59ff51 i2o_sg_tablesize
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x93fddd65 i2o_dma_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xecb2a033 i2o_dma_map_sg
+EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x5bffd974 mc13783_adc_do_conversion
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x35d37450 pcf50633_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x36874fa3 pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x41d7ad21 pcf50633_register_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4f1504e8 pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9b1d3935 pcf50633_free_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb1eb53c2 pcf50633_read_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xc7af87b9 pcf50633_reg_write
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe5292849 pcf50633_irq_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe89a5cd1 pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe91e9151 pcf50633_write_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xff28a57f pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x73f90ac5 pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xc3b2680b pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x38bc6c71 pcf50633_gpio_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5203f601 pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5f28d5f9 pcf50633_gpio_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x6df3ae84 pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x78ec6467 pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x4f0bcdab sm501_find_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x7d5bc850 sm501_modify_reg
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x939bac26 sm501_unit_power
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xae08223a sm501_misc_control
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xeb5e6c6a sm501_set_clock
+EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xdf88942f ucb1400_adc_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x1849f241 wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x301c5b1f wm8400_block_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x6ede298c wm8400_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xded43175 wm8400_set_bits
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x103b763a cb710_set_irq_handler
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x87eef128 cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x9f4cb5fb cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xb239e980 cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x52f7fb54 enclosure_component_register
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x5505c944 enclosure_find
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x69809eea enclosure_remove_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x89e5259c enclosure_unregister
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xe0b26aab enclosure_add_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xe154c183 enclosure_for_each_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfe3d8ef9 enclosure_register
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xa4612a37 sdhci_resume_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbb5b88ed sdhci_alloc_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbf121df4 sdhci_free_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xcaf33dd7 sdhci_add_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xee2fc02b sdhci_remove_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf6c9767e sdhci_suspend_host
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x9e561fff cfi_cmdset_0003
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xb74ce45c cfi_cmdset_0001
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xe13cf709 cfi_cmdset_0200
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x35561648 cfi_cmdset_0006
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x6763e10e cfi_cmdset_0002
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xca512223 cfi_cmdset_0701
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x018ff204 cfi_cmdset_0020
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x77fee4fb cfi_qry_present
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xc49c4c4f cfi_qry_mode_off
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xf49d1552 cfi_qry_mode_on
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x49a18e9a DoC2k_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xb99f175c DoCMil_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x76f289b3 DoCMilPlus_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x19b466b7 __put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2c06d0ed __mtd_next_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x55cb7a29 get_mtd_device_nm
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x68483a9f register_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6f029155 get_sb_mtd
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x84139f6d get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x86b5a2f3 default_mtd_writev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8932a2de put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8f03b1b5 mtd_table_mutex
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9b89c719 mtd_erase_callback
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa4f1438b add_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xabcef2c6 del_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xad2f19fd parse_mtd_partitions
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb48aafd7 kill_mtd_super
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc69d4dae register_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcdb9f833 deregister_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd2776374 unregister_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd6452f44 __get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x137fc2e5 register_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x4a68ca4c deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x7121c885 add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x907debd3 del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x2f667898 nand_lock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x60a3610d nand_unlock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x8f811350 nand_release
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x915c4322 nand_wait_ready
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x9958cb85 nand_scan_tail
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xce4336e6 nand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xd53c6a20 nand_scan_ident
+EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x55f799a3 sm_register_device
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x557e4cde onenand_release
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xa4c031b6 onenand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0654c378 ubi_leb_read
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0f02e2d8 ubi_do_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0fa1579e ubi_is_mapped
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x156315a6 ubi_leb_erase
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4c5a8ac1 ubi_leb_unmap
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x67b7e543 ubi_leb_write
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6d82b306 ubi_get_volume_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7d5d36d7 ubi_leb_map
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x938d977f ubi_open_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x956c58eb ubi_open_volume_path
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9a377701 ubi_close_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdf94d831 ubi_open_volume_nm
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe29162af ubi_leb_change
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x01db32db alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2afae99e can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2d930c5d alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x35e5626f free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x67a34ba5 can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8b968ad6 can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9e21160c can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xac1ee599 unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xaf056ee9 alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbb26c700 open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xccca6d27 close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf1ac1094 register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x2ace52e0 register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5fa5e764 unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xcb77cdf6 alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xf1baab8c free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x834e3080 macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xa5483dc7 macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xf7f3ad26 macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xfa701242 macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x069d030b mlx4_mr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x139cf478 mlx4_pd_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x16e7073d mlx4_uar_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1d8cf036 mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x273260da mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2d29ef7c mlx4_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2d2c3fa3 mlx4_uar_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2ddb6888 mlx4_unregister_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2ffbd87a mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3920dbe6 mlx4_cq_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3b6cf792 mlx4_srq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3e5ea3fe mlx4_qp_remove
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x40d4b1ef mlx4_srq_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4347337a mlx4_db_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x44eab260 mlx4_qp_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x478c1427 mlx4_multicast_detach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4b280855 mlx4_register_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4f1a7e17 mlx4_mr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x52c042de mlx4_srq_arm
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5d3b0510 mlx4_db_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x64e10176 mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x68ed3637 mlx4_mtt_init
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6b9478ee mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6ee897af mlx4_fmr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x743e7395 mlx4_cq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7606bd30 mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x791e981e mlx4_register_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x89c3b01b mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x89ff8144 mlx4_mr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x90498b85 mlx4_mtt_addr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x92a43afc mlx4_srq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x95bf71bb mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x96c0b359 mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x98fae27c mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9ec0d351 mlx4_qp_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa1c75082 mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa2699e11 mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa73806aa mlx4_qp_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa7cdf6e9 mlx4_cq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb2849def mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb380dcb5 __mlx4_cmd
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb39b0abc mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbc5a7fed mlx4_buf_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc7561bc3 mlx4_register_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd56c0d63 mlx4_qp_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd6853eb1 mlx4_fmr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd9f44b1e mlx4_multicast_attach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe331f6af mlx4_qp_release_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe6d52143 mlx4_cq_resize
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe8206c48 mlx4_buf_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xec702186 mlx4_unregister_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xee95f120 mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf37b1fea mlx4_pd_alloc
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x41c716f2 usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x91fd1ee7 usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x065e0e39 rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0ede75fb rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x51e1a207 generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x96bceea8 rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x973ef648 rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf41699cc rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x12d53307 usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x166de256 usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1fa4a787 usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x249dfa0f usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x249f05e3 usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2c915e3e usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x306eacf3 usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3f340ffc usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x40052831 usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4d2b2a9a usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x54ed6dc5 usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x54f01b8d usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x62bb2274 usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7809603c usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8eeceeb1 usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa4ee9706 usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xab56ffbd usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb6d7d68d usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdbc2acef usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdcd0728c usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xedc88d58 usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf84c6f47 usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfc31b936 usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfefbec2c usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x04516e34 i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x05b7c593 i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x08df9a66 i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x12c7af3b i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1faab406 i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x26e51e4e i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2b8f2d86 i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x30601daa i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3791f427 i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x495df191 i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x622aa445 i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x716526a3 i2400m_cmd_get_state
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa2795dc0 i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa8da1c42 i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb0dd12bb i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb1eb51a5 i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcf02be15 i2400m_set_init_config
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd8c19ebb i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x823bbabc libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x075ccd3e iwl_alloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x514591e3 iwl_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xc7207279 iwl_dealloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0344a4c4 lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x11363e62 lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x36b5456c lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4b7e267f lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5e8d9e97 __lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5e9a1fd8 lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x63d7bf99 lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x67e84094 lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8fe0f223 lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x96244656 lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa9ba8d5e lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb9098bab lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc3860fd5 lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xea33842d lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x04d85060 lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0c177d7e lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x27c3ddf3 lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x47d20b3b lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7987607b lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa25a9933 __lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd98bbc3d lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xdddd0898 lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xb02d8129 if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xb9b25e04 if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0542f243 p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x243e54ff p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2b55cfc2 p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5147cf36 p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x92d3095b p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa708c206 p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xaa232e00 p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc145b6c6 p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf4df230a p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x069a680f rt2800_write_txwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0ebca418 rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x10d5bfff rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2c366c24 rt2800_mac80211_ops
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x30eb4906 rt2800_init_rfcsr
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x37bf1837 rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x41ed1688 rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5c09a744 rt2800_init_registers
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x76a3eaef rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7b2425f8 rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7e37f2d7 rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x84a226a2 rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x874e3b68 rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9ab1cdb8 rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9b8ad1be rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9d6e5ea0 rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xac2ee5d8 rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xafed222e rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb67feb2f rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb76a16cd rt2800_init_bbp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcc0a1d46 rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xccecbb31 rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd55a16b4 rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd9ff442d rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0184c0af rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x077f2ce9 rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0c51edd4 rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2adf7599 rt2x00queue_get_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2e6b5561 rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x355560bd rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x356ce8d8 rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x39540e86 rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4ec21aca rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x58797025 rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x59f5aad8 rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x655006a4 rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x73bf3e75 rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7cf8d1e1 rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9aca493b rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa765df70 rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc7727dd6 rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xce38d723 rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd2a52a14 rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd56cc695 rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdd4af18d rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf5cc9b76 rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf8f655b7 rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x04d44289 rt2x00pci_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x44dd933f rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x47bd1853 rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x49440989 rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8904acfd rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x99ba7266 rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xabb03070 rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xbbf2fb2a rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xccfea880 rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0201141a rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0baf0d6b rt2x00usb_kill_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x162589b8 rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1b1ed299 rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4a87ca41 rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x513afe62 rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x66cf264d rt2x00usb_kick_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x70dff1b8 rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x73fa999e rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8c69aacd rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x98f3f3dc rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc710f6f8 rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd35c3c4b rt2x00usb_vendor_request_large_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe25fb53e rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xede6fea0 rt2x00usb_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xeea8b683 rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x597b6fa2 wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x9149cc52 wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xf0067ae2 wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x26a0bf80 wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x711a0373 wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x7e5d99b8 wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xa577fe71 wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xd3bc1f82 wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x36160cc4 acpiphp_unregister_attention
+EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x48d19c9f acpiphp_register_attention
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x7b93127a pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x9dd2ab25 pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xe85e0616 pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x36878416 wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x4bdb9f87 wm8350_register_regulator
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x94ed6b67 wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xca6dd459 wm8350_register_led
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xcff0aa74 wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xd38ada9a wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x94490733 wm8400_register_regulator
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x200974cf fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0344e848 iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0890caf6 iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0e7a5bdc iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x108902dc iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1963c750 iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1ca8be0f iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1e4cb329 iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x20b02d54 iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x23dc9f4f iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2467074a iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x278a2217 iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x28c332ee iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x28f50b9d iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2e838a21 iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2f212ccf iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x59589798 iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e611702 iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x684997ea __iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6feb8389 iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x81b876be iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x87ec240d iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x884557a3 iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8d93e9b7 iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x90f6b6d2 iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x90fed712 iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xac05caba iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xac2e6b88 iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xae23001a iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb45465b4 iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbc2d09cb iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc553e2aa iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc7ca749f iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd18a9a85 iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd6f0b9c6 iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xea5a0f2c iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xefa5bb4e iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf0cc3fb7 iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf18ef7a4 iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf255739b __iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf845e5a6 iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfcdc6b0a iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfd0fa8e7 iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1398a593 iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x147e929a iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3df0f48e iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4344421d iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x49520733 iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5d9de917 iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x67e03538 iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6807a981 iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x716a7a6d iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x973dc8b9 iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa9824be0 iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc0e84329 iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc4162ead iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc59604cc iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd6c0d621 iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xecbfada2 iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x080e20f7 sas_domain_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0e6ebf57 sas_find_local_phy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1799e6f5 sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x19355661 sas_slave_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2d9b7b97 __sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x38e4ad0d sas_bios_param
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3dc9db09 sas_change_queue_type
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x47cce5f3 sas_target_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x538c4637 sas_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5a4a07c8 sas_register_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x82c9147e sas_phy_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa8d88627 sas_phy_enable
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaf94a889 sas_eh_bus_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb78553b1 sas_ioctl
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc3c671f4 sas_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc88d3988 sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xca4d2046 sas_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcd3e3093 sas_request_addr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe3b75a01 sas_unregister_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xed01ab02 sas_slave_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xed3f072f sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf4b2697a sas_domain_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf93e6e9c sas_ssp_task_response
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x30431e18 srp_cmd_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x57522623 srp_iu_put
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x69683606 srp_iu_get
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb25115ee srp_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb7206b53 srp_transfer_data
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc6f458a8 srp_target_free
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x12ad0584 scsi_tgt_it_nexus_create
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x2e3243f7 scsi_tgt_tsk_mgmt_request
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x398a41b4 scsi_host_get_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5081865c scsi_tgt_queue_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6b5ff0d4 scsi_tgt_cmd_to_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9ed88786 scsi_tgt_it_nexus_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xa88f7e43 scsi_tgt_free_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd2c17ae5 scsi_tgt_alloc_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd43c6287 scsi_host_put_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0dd4aa56 iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x173206e6 iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x49c13afc iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x59a9d0b2 iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5acaf934 iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5ae94ddd iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x68365f19 iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x68637be5 iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6b3e5cd0 iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x79e2c0ef iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7ecd2c6b iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7fd9eccd iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8dcc5b18 iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x948fce3f iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9a8f1968 iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9acb1ac8 iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa52a91f4 iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcb734477 iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd29ed871 iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd6db1cc9 iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe9d98c07 iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf86626bf iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x390f8783 sas_disable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x4590934c sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x99118249 sas_tlr_supported
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xa84ee7db sas_enable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x2041c319 srp_rport_add
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x24459e18 srp_remove_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x80c96686 srp_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x94acefaf srp_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf895a57c srp_rport_del
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x04cd4208 spi_bitbang_stop
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x09c6504b spi_bitbang_setup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x1a2faa37 spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x37e6582a spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x59663178 spi_bitbang_start
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xfc5252cb spi_bitbang_transfer
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f92b8a0 comedi_pci_auto_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3ba80121 comedi_get_device_file_info
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x9f0c4ae7 comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbed5f0d9 comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe03fd961 comedi_usb_auto_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x84500769 das08_common_attach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xb1d56718 das08_common_detach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x7d24c4b1 labpc_common_detach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xb6e7f903 labpc_common_attach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x235ce503 ni_tio_init_counter
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x345d925f ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x5549dd7a ni_tio_insn_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x69c80533 ni_tio_arm
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd7532152 ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xf41e39ac ni_tio_winsn
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xf590b3d5 ni_tio_rinsn
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xfe8d0444 ni_gpct_device_construct
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x4b597953 ni_tio_acknowledge_and_confirm
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x59f844a6 ni_tio_cancel
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xa9998eef ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xad9d2fbe ni_tio_cmdtest
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xaef1386e ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xba0ece25 ni_tio_cmd
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x27efbf2a osd_WaitEventCreate
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5783d46c osd_WaitEventWait
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x746d1786 osd_PageAlloc
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x79298bac osd_WaitEventSet
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x83911c38 osd_PageFree
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8c5f0f3b osd_WaitEventWaitEx
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x7b9a069c st_register
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x59f11d21 tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xa2fb7b77 tm6000_get_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xf7d603c5 tm6000_set_reg
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x0353ac43 usbip_task_init
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x110e8c70 dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x4ab4614d usbip_stop_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6638e608 usbip_event_add
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x67c2cc9b usbip_dump_urb
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6a58d2c2 usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x71ba4078 usbip_start_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x80b1e483 usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb7c904d4 usbip_event_happened
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbae78389 usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xc29fb922 usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xcdebeea0 usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xed5dd50f usbip_stop_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xeea8ef14 usbip_start_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xf1216248 sockfd_to_socket
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x2ad32d3e __uio_register_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x936c0882 uio_event_notify
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xacfbb210 uio_unregister_device
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x24297c5a usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xab2c4eb2 usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x159ce7ef usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x45ed1879 ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x47d4a95d usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x71f2b3a8 usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x94aa91fb usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x96be1d33 usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9f0b005b usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xbe06d8e5 usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xeb6ecf27 usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x03584f05 ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1f00d43d usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x22d959b8 usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x27524b88 usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x37cba7ea usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x403117a0 ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4b2bf25d usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4b9d1343 usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4bd96015 usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x68b616bc usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8de3fe06 usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9a7e6407 usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xae12cbc8 usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbcdd2c5d usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbd525921 usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc325dee7 usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xcb16323a usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xef5e80bb usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf0da32fb usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1813f615 usb_stor_bulk_transfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x264794ca usb_stor_bulk_transfer_sg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x29f73c08 usb_stor_ctrl_transfer
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2e5f7795 usb_stor_suspend
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3b664af1 usb_stor_set_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x44608616 usb_stor_pre_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4f44d587 usb_stor_bulk_srb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x50cf783a usb_usual_ignore_device
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x51006bd4 usb_stor_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6638a7b6 usb_stor_transparent_scsi_command
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x856b5652 usb_stor_control_msg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa5f85c07 fill_inquiry_response
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xad9243c3 usb_stor_CB_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb3e8eb7d usb_stor_Bulk_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbf5bac0f usb_stor_clear_halt
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc05bc545 usb_stor_Bulk_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcff5d246 usb_stor_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd48f5679 usb_stor_access_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd7b00e30 usb_stor_probe1
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdcdad501 usb_stor_reset_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xeb00496d usb_stor_probe2
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xefe9d116 usb_stor_post_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfa14e61e usb_stor_CB_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0c33aec2 wa_urb_dequeue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x18bc1108 rpipe_ep_disable
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x416f3b30 __wa_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x6f5e8721 wa_urb_enqueue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x7c1fa906 wa_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x02373b48 wusbhc_handle_dn
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0934bd15 wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x49e21a5c wusbhc_rh_control
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4b82a648 wusbhc_b_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x53c9c4a8 wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x63ce2867 wusbhc_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7a11f2cb wusbhc_rh_suspend
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc3af595c wusbhc_b_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc6f99fe7 wusbhc_rh_resume
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd45478f8 wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd9fec202 wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xec3f4a2e wusbhc_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xee66c32d wusbhc_reset_all
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf0bd1df5 wusbhc_chid_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf6457ef5 __wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf9892199 wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x24d8dcf1 i1480_rceb_check
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x34916619 i1480_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xc4227ae2 i1480_fw_upload
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x018563db uwb_phy_rate_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x5ac45e5d uwb_rts_cts_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x625ae918 uwb_pca_base_priority_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x6ce3a987 uwb_ack_policy_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x818daa40 uwb_pca_base_priority_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x82451b0f uwb_rts_cts_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xc35873da uwb_phy_rate_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xf639ccf2 uwb_ack_policy_store
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x069498ad umc_driver_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x41663ede umc_device_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x5defb6d1 umc_device_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x878b64ee umc_device_create
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x89de1183 umc_bus_type
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x976b5be8 umc_controller_reset
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x9e5f132b __umc_driver_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa96d5698 umc_match_pci_id
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0a05a859 uwb_notifs_deregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1aa11fc1 uwb_rsv_modify
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1f658e48 uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x25dbe40c uwb_rc_post_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x27534d8a uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x28cf5f78 uwb_rc_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2d164974 uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x41b26bcb uwb_rsv_terminate
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x42c0983c uwb_est_find_size
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5823e385 uwb_rsv_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x64fca1a5 uwb_rc_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x685e1b05 uwb_rc_put
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6c17cf78 uwb_rsv_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x80e7032d uwb_rsv_accept
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9e613dbb uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa543fd13 uwb_dev_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa7caa47e uwb_rc_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb0e997a9 uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb2bbb07d uwb_rc_alloc
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc46eb69c uwb_rc_ie_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd1841dbc uwb_pal_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd28af8e8 uwb_dev_for_each
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd3d45b6c uwb_rc_neh_error
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd3eb8aae uwb_rc_vcmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd54002c6 uwb_notifs_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd6ad9581 uwb_pal_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd7fe6efe uwb_rc_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdaf1d2bb __uwb_rc_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdcb365ab uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe6fc69ad uwb_pal_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe9c708ab uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeaf074a6 uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf2df6122 uwb_radio_stop
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf6480aaa uwb_rsv_establish
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfb4b5dac uwb_rc_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfec377c5 uwb_radio_start
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfef98d59 uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL drivers/uwb/whci 0x464e4720 whci_wait_for
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x010fe8f5 wlp_eda_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x186d3a81 wlp_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1be535ef wlp_eda_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1e7d2bf5 wlp_dev_prim_subcat_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x25085604 wlp_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x387db4d4 wlp_dev_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x393bf419 wlp_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x41563e4d wlp_dev_prim_OUI_sub_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4352e3d8 wlp_dev_serial_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x44cc39ad wlp_dev_model_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x46949464 wlp_dev_prim_OUI_sub_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5666d42a wlp_dev_prim_category_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x713d95d6 wlp_dev_prim_subcat_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x80e5e832 wlp_wss_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x826edfff wlp_dev_model_nr_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x859c477b wlp_dev_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8624abb9 wlp_dev_manufacturer_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8e02d266 wlp_uuid_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x91ec273d wlp_dev_prim_OUI_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9b6b1126 wlp_dev_model_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9fc5db26 wlp_neighborhood_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xab521aea wlp_prepare_tx_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb9247bb1 wlp_dev_prim_category_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xbff5fe02 wlp_dev_model_nr_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc08d1972 wlp_uuid_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc4a5aca9 wlp_receive_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc5045d14 wlp_wss_activate_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc8f318a0 wlp_wss_activate_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xca8c7aa9 wlp_dev_prim_OUI_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe54abf19 wlp_wss_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xeaf73c0b wlp_dev_manufacturer_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf1eb7092 wlp_dev_serial_store
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x4293f084 ili9320_write
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x5d3fb967 ili9320_suspend
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x62995a49 ili9320_remove
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8a73deb5 ili9320_write_regs
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8d86d7a3 ili9320_shutdown
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe9290a2a ili9320_probe_spi
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xfa4092ad ili9320_resume
+EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0xa16ef6b3 fb_ddc_read
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x4a8efa09 fb_sys_read
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x723eb8b6 fb_sys_write
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x0c692fd1 sis_free_new
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x453ff5d8 sis_malloc_new
+EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys
+EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x557efa1c viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xbdc02254 viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x384825dd unregister_virtio_device
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x66631273 unregister_virtio_driver
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x6969db3b virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x95620f08 register_virtio_driver
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xd202c39c register_virtio_device
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x64acc8d6 vring_new_virtqueue
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x6fd018cd virtqueue_kick
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x7c973390 virtqueue_enable_cb
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x8f6ac059 virtqueue_get_buf
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x9428a9b9 virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xa2f3fefd virtqueue_add_buf_gfp
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xc43838ed vring_del_virtqueue
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xe8a746d8 vring_transport_features
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xf44db1b2 virtqueue_disable_cb
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x0e507450 w1_write_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x269bde22 w1_next_pullup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x2d94d0a2 w1_reset_bus
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x4134a81a w1_touch_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x589b1bf5 w1_read_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x6df7daf0 w1_write_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xda2b1a62 w1_read_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xef452a8d w1_reset_select_slave
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x6dafc8c5 dlm_posix_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x913eaf72 dlm_posix_get
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xff3673eb dlm_posix_unlock
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x03cae608 exportfs_decode_fh
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xc656ecb4 exportfs_encode_fh
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3062893b fat_flush_inodes
+EXPORT_SYMBOL_GPL fs/fat/fat 0x32e0a4e5 fat_detach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3a70479f fat_alloc_new_dir
+EXPORT_SYMBOL_GPL fs/fat/fat 0x72764ea2 fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL fs/fat/fat 0x75bac6dd fat_time_unix2fat
+EXPORT_SYMBOL_GPL fs/fat/fat 0x8663a177 fat_fill_super
+EXPORT_SYMBOL_GPL fs/fat/fat 0x9d49ffeb __fat_fs_error
+EXPORT_SYMBOL_GPL fs/fat/fat 0xaaf20987 fat_remove_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0xad1fc28e fat_scan
+EXPORT_SYMBOL_GPL fs/fat/fat 0xb612e21e fat_setattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0xc0ac13da fat_getattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0xd38c4433 fat_add_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0xd53801d7 fat_sync_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xdd9f1beb fat_build_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xdf0c5e21 fat_free_clusters
+EXPORT_SYMBOL_GPL fs/fat/fat 0xe6097e9f fat_search_long
+EXPORT_SYMBOL_GPL fs/fat/fat 0xe8553430 fat_attach
+EXPORT_SYMBOL_GPL fs/fat/fat 0xfb2bc432 fat_dir_empty
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0df7d938 nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1280361a nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x91c53e87 nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc1e9f8b9 nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xda130b09 nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xb47d958b nfsacl_decode
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xf7f7cf15 nfsacl_encode
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x157c2518 o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6581ec9d o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x66ff552b o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6e1d8b3a o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb1c0ae28 o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb2f646ad o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd7d96077 o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x0bdf677f dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x2077f4f4 dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x588371ae dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8ceb3205 dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc606ec7b dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe269419a dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x34f6d6d2 ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4787af7b ocfs2_plock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x6018efca ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs
+EXPORT_SYMBOL_GPL net/802/garp 0x1215c348 garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0x2db31637 garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0xa0f35218 garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0xb572dae8 garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0xc7a13322 garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0xd3f9dd49 garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/stp 0x7cc1e0fc stp_proto_unregister
+EXPORT_SYMBOL_GPL net/802/stp 0xe9d1854f stp_proto_register
+EXPORT_SYMBOL_GPL net/ax25/ax25 0x3a487303 ax25_register_pid
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x3c8958fa bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0066952b dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x16f353f1 dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1afe0ab3 dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1f219091 dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2218dc9b dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2824bf7a dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2d7bbbb8 dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x30b8cf00 dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x35712406 dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x41866ac5 dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x48a94d3d inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4d166c3f dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x59757ae7 dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5c51985f dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5f3f1a2d dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x6057dbc5 dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x66646e17 dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x78354933 dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86ed1174 dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8ba7e1f9 dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8d8bd296 dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9dd4038d dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa4b3aa73 dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xaa21bb9f dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xab6934d5 dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xabcb3f86 dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xafb440d8 dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbc482879 dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc526a361 dccp_insert_option_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xca7865b3 dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd5a6fc2d dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe15b3ac9 dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf2b9ed8e dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x81ab4993 dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x880944aa dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb490cf9d dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xc50e593e dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd2c47d75 dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd94f5e84 dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x3da946c5 arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x5b502250 ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0xfe3455e2 nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x17ed088c nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x21b40696 nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x3d314f21 nf_nat_proto_put
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x74da4403 nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x779b674e nf_nat_proto_find_get
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd75f5b74 nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe9cd35c1 nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf99f8163 nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x30a3bfec tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x49fffa32 tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7d5ba579 tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7fec0dc0 tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xdc417192 tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x531c537f ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x149ce1b9 l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2f0a2ac1 l2tp_udp_recv_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4028c473 l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x54aff78e l2tp_xmit_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x689a3177 l2tp_tunnel_closeall
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x83374827 l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8e9e3a9d l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9169f9e0 l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x98f649fc l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9d35e586 l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9fa0aaf5 l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa3e3ae62 l2tp_tunnel_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xba3ecbea l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe15c4938 l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe2738241 l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe4934339 l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf42353aa l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1452e1ed ieee80211_find_sta_by_hw
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9dd3c71c ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xbf464dd6 ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x03313046 __nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0728ae81 __nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a6508c0 nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0b166400 nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e44d734 __nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0fd3d035 nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x130bf25f nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x17463126 nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f2078d6 __nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20c45c40 seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20f96800 nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2363ccab nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x23ad4dc5 nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24edaf65 nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a72c57a nf_conntrack_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a7f882f nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30536415 nf_expect_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x312fcc9e nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x32ebcdd5 nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x36acd49a nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39bee63d nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3a587658 nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3cbe5ba1 nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d75ca1f nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4932f0b1 nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4a0cf6ef nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f52bcec nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5bebc895 nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x620d2f20 print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x644bf626 nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x659436a8 nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73004e18 nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x74023314 nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x74c0883d nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x783f38b6 nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7b745153 nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x854402ee nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x88e39bf1 nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9b154dd7 nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa1175f02 __nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa9232f55 nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa1f3340 nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaac72876 nf_ct_unlink_expect
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbed459f6 nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc2370cd1 nf_conntrack_untracked
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc4afa1f6 nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc6479324 nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc6db0fe1 nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd5bdb77c nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6b06724 nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd8aa7d36 nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe0125228 nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe17af059 __nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe524d407 __nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe6a7f309 nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf3ac5ce8 nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf3d0bddf nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf64f860e nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf699c374 nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf8975620 __nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfc8ec47c nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x60238e7d nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x0156db37 nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0793bb67 set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x187b6b49 set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x552e5dc3 nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x64f95834 set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x76d57cfc nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8ca5f18d get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xab2f66df nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xafb765ea nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcbfec9d6 nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xefebca32 set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xbfc60b5c nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x6e06547b nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd294b0fe nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xdb101d5a nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf1d8da86 nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x717c4206 nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xf96aea44 nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2c62b861 nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x42ceb29f nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5d609596 ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6ccb30ac nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x82cd13dc ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x84bcf96f ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x89e75729 ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8bca3216 nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9336630a ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xaef097d0 nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf26536e9 nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfb506fb5 ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfed2f155 nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x78038b7f nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x0566f3d3 nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x091b908d nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x28812ed2 nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x316257dc nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x366e5895 nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x49021f10 nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7c07ed00 nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xecbb2232 nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x1cbc8609 nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x253b4175 xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2ac5ced0 xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3fa44fda xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x542f3494 xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x646d8253 xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x74a32444 xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x88044bc2 xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8a51db9f xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x908fb05b xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9d359159 xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xab0a0e97 xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xae376ab0 xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb5ed25ec xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x4ac7eda1 xt_rateest_lookup
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x6a518c7f xt_rateest_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq
+EXPORT_SYMBOL_GPL net/rds/rds 0x1373167f rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0x1c818e7f rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0x28560451 rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3db26b03 rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x4560541b rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0x5cb30130 rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0x5de876cc rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x62388164 rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0x71972ee8 rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x7ada0d7e rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0x7b9164d3 rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x7bdf6761 rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0x8a8889f0 rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x8bf49e85 rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xa8198ff3 rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0xa884195a rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xb38dfa06 rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0xbb08f81a rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xce78f00c rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0xd2612a77 rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0xdbd5804b rds_inc_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0xefe1f373 rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xafe187bf rxrpc_register_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xb3f98958 rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1a573a7c gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x313ddcd0 gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x31eb6dde svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x36be17db gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x37a54193 gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x48a3b8cb gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6163b520 gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x751e7dbd svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x88334405 gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8f0b462e gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe7e6da9b gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x014ee2f5 xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0538341e __rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x059e9759 svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06abbda9 xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07755705 svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08928162 rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a097f76 sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c77b42f rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d140ffe xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d6865c8 svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0eca0528 xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x114eaf9c xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12b75831 xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12f0de21 svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1388d769 svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13b922a8 svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15cb3ea0 svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x181bc77c xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18eff874 rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a3dcf57 xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b32634f svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d2d7132 rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d6bdf2e xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e2a091c svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e431fae rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e5a6b48 rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1eea1e7b rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x203efa53 svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x232a334b svc_sock_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2876740f svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e7aaa92 svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37ec78e3 rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38b2d98a xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a658275 rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3adf0837 svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d32f4f4 rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e10c059 xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41ccd63b rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42471a24 svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42b4ab9f rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4530a6fa svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x482ab468 rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4906316a svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b593c15 xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e4e7764 xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51304ae0 auth_unix_forget_old
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5277af8e sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x531cc111 xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54bc3796 svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54f9b3ef rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x55b3f27f put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x567c85f1 svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57918842 rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x585b0789 sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5abf5779 auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f51c787 sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ffc00e9 svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x621e4e53 rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6658bab2 xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5b5d45 xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e30d3d7 rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eb27283 rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x706b75d6 svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x707f33fc rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x708c46f6 rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70cb9270 xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73b6c48d rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74e6de70 rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76c5c743 rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7830eb0b xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x798fe5d6 rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a29144d svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7afb5670 cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccb0c0e rpc_queue_empty
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x842c3883 rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x867007ee rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8994cf62 xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89d95162 read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a8daebd svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b1eeb0a rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e4c52fb rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93b953e5 rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9867c629 rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99bc55d5 rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a3ddf48 sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9dcad7c4 cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0019b89 svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa13b6974 rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1944a84 xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2eaf322 svc_sock_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa421906b svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6f590fb svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xabc00fcf xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaff5a9ab rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0fa0af8 svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb20d723e xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3db35af xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb95bcbae xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba5c0b58 xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdb59dd7 xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf8a22fe unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc370803b xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4edf79e svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6007107 xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd32426f xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0ca2bf6 rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2215d92 svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3bf5364 xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8112d44 rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd832beb7 auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc4ed1eb xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc94afdc svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4104d2f rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe459150e xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe62f8bc1 write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe66af9e1 rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7b74ddc csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xea3d8201 xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecb49497 svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeedcb2f9 svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef1fd118 cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0f71b75 svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1a443d4 xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1b6bd0c auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2f75d14 rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2fada1b xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4fbb184 rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf665ebae svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6f68cd7 rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7047a48 auth_unix_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfac642e3 cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb7503b0 xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc5153a8 rpc_exit_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdb9d16c rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe23a245 rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe7fbe73 auth_unix_add_addr
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x070deb30 wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x0a76ccd8 wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x36516712 wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x388f2ddc wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x721e29e7 wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x7f2fc5df wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x840ba8a8 wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x891c98ec wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xaa30c154 wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xbe1f474f wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf2df713a wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf59ad814 wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf8788789 wimax_dev_init
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0f0afee3 cfg80211_wext_siwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1977d5ce cfg80211_wext_giwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2d23b0c9 cfg80211_wext_giwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x30aff4cf cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x33843dbc cfg80211_wext_siwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3906f7f0 cfg80211_wext_siwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x392777a1 cfg80211_wext_siwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3f212344 cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x43441e68 cfg80211_wext_siwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x46b6b3b1 cfg80211_wext_giwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4971fa1e cfg80211_wext_giwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5ae121b1 cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x69716c33 cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6cdab906 cfg80211_wext_siwmlme
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7092a93c cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x77d6e146 cfg80211_wext_siwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7d20fa2b cfg80211_wext_siwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7fa88baf cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x859a399c cfg80211_wireless_stats
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x85b8be48 cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x85fc4614 cfg80211_wext_siwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x877d3374 cfg80211_wext_giwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8dd17137 cfg80211_wext_siwencodeext
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x995e3ed6 cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x99abd414 cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x99dabe01 cfg80211_wext_siwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9f586a33 cfg80211_wext_giwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa75c8bb9 cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc6d1fb90 cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe53b03fa cfg80211_wext_giwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe8d2dad9 cfg80211_wext_siwgenie
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe98580c3 cfg80211_wext_giwtxpower
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x34f90921 ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x3ce69d19 ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x5174b7ee ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x8d144feb ipcomp_input
+EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x2d10a5fc snd_ak4113_create
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x86988348 snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x97c50215 snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x9f61f341 snd_ak4113_build
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd22977c4 snd_ak4113_reinit
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf5d82c9a snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x10c6da72 snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12ed7980 snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x15e484b9 snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d80f3f9 snd_hdmi_get_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1fc099ee snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27d0808b query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2eadf271 snd_hdmi_get_eld_size
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3125eebc snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x346a39c4 snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3b38e5ea snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3fc2e47f snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x40d2f055 snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x46dc9142 snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48932cdb snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49ae0f87 snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d6d9f55 snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4e387c28 snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x51ad2b42 snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5212b194 snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x552bb4f2 snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58afb3e9 snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5966b202 snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a0e14ec snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a1963ed snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c0be76a snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c2c879e snd_hda_eld_proc_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c3c7277 snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5dc8a7a8 snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5e62318e snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f966aff snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x617c1ade snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63baf295 snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x65711c0f snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6584ac55 snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x68097f3c snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d1cc37c snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74885422 snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x74c1c8fa snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76628c0f snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fb194a7 snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x809aac4d snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x82d2e704 snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x893528cd snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x894570e5 snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e8385bc snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x909364d6 snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x97fcc544 snd_hdmi_show_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d80fbb0 snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d90c2e2 snd_hda_eld_proc_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9faee8cc snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5def999 snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa7e27267 snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8553b32 snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab141db1 snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab3087ea snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xac40b479 snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaef68813 snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb284c5bd snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb62d601c snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb88b84c1 snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8f18f91 snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb9ce4b9b snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb027b10 snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb96dc41 snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd11f0d1 snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbecccdd9 snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc110729c snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcad61463 snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd272818b snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9b8f3a4 snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdcdc985c snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdef257c7 snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe09dc135 snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe19bcba7 snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe290ef9a snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe81180fb snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8e5cd2b snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xea758f2c snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xecbda6ca snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xecdd235d snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed0bd69f snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf129a4f3 snd_hda_parse_pin_def_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf246bff6 snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf2a0c218 snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3a6cdcf snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5dea7c4 snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf96eeb32 snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb634d13 snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x27c4a71d soc_codec_dev_ad1836
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0xa0fef7f0 ad1836_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x59069c72 ad193x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xf182a2f3 soc_codec_dev_ad193x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x7d5280a2 soc_codec_dev_ad73311
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xe2e4a1c1 ad73311_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x1c64dbcd soc_codec_dev_ads117x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x52e1477e ads117x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0xe01a41f2 soc_codec_device_ak4104
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x06f38e4d ak4535_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xc73511a6 soc_codec_dev_ak4535
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x50de8798 ak4642_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x9f8e3e0a soc_codec_dev_ak4642
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xb6e5d390 soc_codec_dev_ak4671
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xe7a2efab ak4671_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xc4a14a29 cs4270_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xeb96ac42 soc_codec_device_cs4270
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x90127f25 soc_codec_dev_da7210
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x949c0780 da7210_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x27df7d47 max9877_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x6744da98 soc_codec_dev_pcm3008
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xfda35ecf pcm3008_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0xaade00b5 dit_stub_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x54447656 ssm2602_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x6cf1df53 soc_codec_dev_ssm2602
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x2ce3257c soc_codec_dev_tlv320aic23
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xce23d67a tlv320aic23_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x67af98ab aic26_soc_codec_dev
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x9b94febc aic26_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x08b19e14 aic3x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x2bdbc5f1 aic3x_button_pressed
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xbb140891 soc_codec_dev_aic3x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd599e65c aic3x_get_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xdc902050 aic3x_headset_detected
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xf5474b0f aic3x_set_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xfd5f6b60 aic3x_set_headset_detection
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x30df0de7 dac33_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x4d9c9539 soc_codec_dev_tlv320dac33
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x70d0dde9 tpa6130a2_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x245f6524 twl4030_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xc37c575b soc_codec_dev_twl4030
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x5dc35af6 twl6040_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xbcf312be soc_codec_dev_twl6040
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x02c4315e soc_codec_dev_uda134x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x337e0d37 soc_codec_dev_uda1380
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x961f10f3 uda1380_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x8d6a050d wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc7769763 wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xdfb542a9 wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x4c9e3b4d wm2000_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x01361f22 wm8350_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xb2a7f6a3 wm8350_hp_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xc39094dc soc_codec_dev_wm8350
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xdf36182f wm8350_mic_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x588c6e8e soc_codec_dev_wm8400
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x59cb399c wm8400_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x6cc8830c wm8510_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xae619665 soc_codec_dev_wm8510
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x870a7bff soc_codec_dev_wm8523
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0xdbb4eb3f wm8523_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xa1b0adea soc_codec_dev_wm8580
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xa4b1465f wm8580_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x1d736faf soc_codec_dev_wm8711
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xe5b157d4 wm8711_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x0200ae54 wm8727_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x496f7670 soc_codec_dev_wm8727
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xcef76abf soc_codec_dev_wm8728
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xf3561c81 wm8728_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x1ef7bbc1 soc_codec_dev_wm8731
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x722e46fd wm8731_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x0361f632 soc_codec_dev_wm8750
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xdaa2a062 wm8750_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x284ca5f1 soc_codec_dev_wm8753
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x65a781d7 wm8753_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x56bf85da soc_codec_dev_wm8776
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xd66c5c41 wm8776_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x9d109df7 wm8900_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0xe57543ea soc_codec_dev_wm8900
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x1b84ef59 wm8903_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xce581029 soc_codec_dev_wm8903
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xff9001aa wm8903_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x0681dfe1 wm8904_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x811986ee soc_codec_dev_wm8904
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x695fb9e4 wm8940_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xe27ceb36 soc_codec_dev_wm8940
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x9ec97544 soc_codec_dev_wm8955
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x9fe523e3 wm8955_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0xe1f83f58 soc_codec_dev_wm8960
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0xfec0a8cd wm8960_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x359c7b68 wm8961_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xf8e30e19 soc_codec_dev_wm8961
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x93eb70dc wm8971_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0xf921642e soc_codec_dev_wm8971
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x8456906b soc_codec_dev_wm8974
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0xc326e16f wm8974_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x28e3df67 soc_codec_dev_wm8978
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0xb4e42114 wm8978_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x23bf985a soc_codec_dev_wm8988
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x42ac51fd wm8988_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x0888d824 wm8990_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xeaa47865 soc_codec_dev_wm8990
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x8e1caa8a wm8993_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xc1892ba6 soc_codec_dev_wm8993
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x69de7464 wm8994_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x8619e0ff wm8994_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x8ec8bd61 soc_codec_dev_wm8994
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x6d970f5d wm9081_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xb2154529 soc_codec_dev_wm9081
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0xaacc1e5f soc_codec_dev_wm9090
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0476cae8 snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x04cacf3c snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06680716 snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x09c2aa26 snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x103d471a snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x18af1d7d snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1b75acfb snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x223f70cc snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x227427c6 snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x26fd61c5 snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2893d492 snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31ea5da3 snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a221605 snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e652e18 snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x44a83215 snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x46e7d58c snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47b9d9b6 snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x47d7423b snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c743fed snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4c8e1eb4 snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fec4d72 snd_soc_get_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55a413c0 snd_soc_free_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55c12e31 snd_soc_put_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5642a19a snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x59592e44 snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5c7bd912 snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ec9218c snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x606aca1b snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6467be52 snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65a8af1e dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6f2d7291 snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7011fdb4 snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73a205bb snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7542fce8 snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7aaa7599 snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x807b6488 snd_soc_new_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80f1d6e9 snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x85e8bd1d snd_soc_jack_new
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87426ad9 snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e0c6cbf snd_soc_dapm_stream_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8f2bbde0 snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8f7ef73e snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91cb75c6 snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91f18387 snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x92b6c47b snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x941e55cd snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9660e0ea snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x98c305e4 snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa270f04e snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3bb02a4 snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa75986f1 snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xabe4e8b1 snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac49707f snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xadd88475 snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4bf94d5 snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb56370d7 snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb8717e12 snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbabcd752 snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc21552e7 snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc7cc7d85 snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcaca77fa snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcdfa64ee snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd2244067 snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd237bf23 snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5f0e43f snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde58334b snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdf6a7480 snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe05cc842 snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5d34ec6 snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6cc025e snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec20e8c1 snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xefc9fd87 snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf038f960 snd_soc_info_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf28ba300 snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5e49ec4 snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf817e980 snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfcb5a4e1 snd_soc_register_dais
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x3ad6acb9 xv_free
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x415404a4 xv_malloc
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x422af118 xv_destroy_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6ae9c20d xv_get_total_size_bytes
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xd2ac5a4c xv_create_pool
+EXPORT_SYMBOL_GPL vmlinux 0x001b84b3 xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis
+EXPORT_SYMBOL_GPL vmlinux 0x00bb1375 pciserial_init_ports
+EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init
+EXPORT_SYMBOL_GPL vmlinux 0x00eb0903 fuse_request_send
+EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0x011ec4a4 user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x01772023 pm_runtime_enable
+EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok
+EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x01fbfc7e get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0x0220912c crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x02789847 __inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x02c379d8 isa_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x02de5f42 vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0x0317938b scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x0353da1d ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x03770c6b pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0x03a2533e scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0x03a3e9b2 n_tty_inherit_ops
+EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread
+EXPORT_SYMBOL_GPL vmlinux 0x043e2a39 crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x047fa994 devm_kfree
+EXPORT_SYMBOL_GPL vmlinux 0x04922559 ata_cable_unknown
+EXPORT_SYMBOL_GPL vmlinux 0x04a93edb sysdev_class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x04aada29 perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0x04d4ba8a platform_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x055d5a4b xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x059a1e77 bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0x05ab4721 __fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0x05b76278 ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0x05da12b4 relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0x0602fe26 sysfs_remove_files
+EXPORT_SYMBOL_GPL vmlinux 0x0602fe92 skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro
+EXPORT_SYMBOL_GPL vmlinux 0x06163ced sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x06605cdf raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0x0665c084 regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x06c8784a usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL vmlinux 0x06cdfc1f screen_glyph
+EXPORT_SYMBOL_GPL vmlinux 0x06d15e8d attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0x0710d619 inotify_rm_watch
+EXPORT_SYMBOL_GPL vmlinux 0x074a3e38 ata_port_desc
+EXPORT_SYMBOL_GPL vmlinux 0x07782b2e dm_rh_delay
+EXPORT_SYMBOL_GPL vmlinux 0x079d3c07 sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0x07a12473 pci_sriov_migration
+EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char
+EXPORT_SYMBOL_GPL vmlinux 0x07b506bf usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0823036c ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0x084727ae register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x088879b3 dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL vmlinux 0x089ca49d power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x08d03d2b device_schedule_callback_owner
+EXPORT_SYMBOL_GPL vmlinux 0x08f0601c srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0x093e8577 dm_rh_get_state
+EXPORT_SYMBOL_GPL vmlinux 0x0964d98e xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0x09708fbb page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x0989009b scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x09b292b9 rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0x09e2406a blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x0a05347b find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x0a0d3243 tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0x0a0f77c5 wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0x0a198ac2 class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x0a45557b perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0x0a5707a2 sata_link_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x0a6a46ba usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0x0ac0fd45 cpufreq_get_measured_perf
+EXPORT_SYMBOL_GPL vmlinux 0x0ac64f26 bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0ad79afb sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x0ad882bf __put_net
+EXPORT_SYMBOL_GPL vmlinux 0x0ade7283 unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b0b2084 debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header
+EXPORT_SYMBOL_GPL vmlinux 0x0b1b8eb8 da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x0b9f89e8 acpi_smbus_write
+EXPORT_SYMBOL_GPL vmlinux 0x0be2d6f2 usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0x0bfcfcc4 __module_address
+EXPORT_SYMBOL_GPL vmlinux 0x0c219524 gpio_export_link
+EXPORT_SYMBOL_GPL vmlinux 0x0c2bc46a sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c4b1632 cpuidle_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x0c6c811c debugfs_create_x64
+EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range
+EXPORT_SYMBOL_GPL vmlinux 0x0cb81ecf crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL vmlinux 0x0d0315ec crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x0d08afbb adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x0d0a81da skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x0d72a30c pci_dev_run_wake
+EXPORT_SYMBOL_GPL vmlinux 0x0d7977cd rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0d7e9a7a __inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0x0de438d1 sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x0deb0ade register_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release
+EXPORT_SYMBOL_GPL vmlinux 0x0e2d9b98 modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put
+EXPORT_SYMBOL_GPL vmlinux 0x0ec644da power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0x0f28b977 zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0x0f4e4d1b ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x0f5a0b8e regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0x0f78ec58 regulator_put
+EXPORT_SYMBOL_GPL vmlinux 0x0fdf338a inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x0ff9cb4e dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x10545963 crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x1090d594 usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x10d6dd5d ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x1127a40d sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x1196f536 hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0x11a346c6 sdio_release_irq
+EXPORT_SYMBOL_GPL vmlinux 0x11b8fbea sata_scr_write
+EXPORT_SYMBOL_GPL vmlinux 0x11f4437a sdio_claim_host
+EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x11fabb3b sdio_readl
+EXPORT_SYMBOL_GPL vmlinux 0x122beea1 device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0x1242497e attribute_container_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x12660a49 wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0x129a6f63 hwmon_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x12b803d8 __crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x1307239d usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0x130ec928 tc35892_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x13284ab4 scsi_dh_set_params
+EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0x13485160 tc35892_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x1387e5e6 securityfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x13b2082a unregister_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13e62241 crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x13efe196 dm_rh_get_region_key
+EXPORT_SYMBOL_GPL vmlinux 0x143e863c sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x14538824 ata_sff_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page
+EXPORT_SYMBOL_GPL vmlinux 0x147ac0b5 sata_link_resume
+EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid
+EXPORT_SYMBOL_GPL vmlinux 0x14cdbb56 ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x14d4a05e ipv6_opt_accepted
+EXPORT_SYMBOL_GPL vmlinux 0x14de65c5 blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x15326714 setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0x1570fa39 __cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped
+EXPORT_SYMBOL_GPL vmlinux 0x15c8ed27 crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x15e91bd7 fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0x15ea1b04 relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x16c0ce44 pci_block_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x16c57b0c unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x16cb5ca5 cpuidle_enable_device
+EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x171b577b unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x1751d007 usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub
+EXPORT_SYMBOL_GPL vmlinux 0x1775c8df sdio_writesb
+EXPORT_SYMBOL_GPL vmlinux 0x17c6092d blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0x17cf67be mm_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x186ff28d find_module
+EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert
+EXPORT_SYMBOL_GPL vmlinux 0x187de5bb ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0x1894bd0b get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0x18d328f0 ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL vmlinux 0x18ed1c36 __get_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x18ff6fd1 register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x1943c7aa ring_buffer_resize
+EXPORT_SYMBOL_GPL vmlinux 0x194eed0c sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19d8c36c d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x19efb102 blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x1a21719a blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x1a44029c dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0x1abf69c4 tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0x1ae1ef7d usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs
+EXPORT_SYMBOL_GPL vmlinux 0x1b8dc1ec ata_cable_ignore
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1c26fe58 transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1ca96ca4 sata_scr_write_flush
+EXPORT_SYMBOL_GPL vmlinux 0x1cccedb9 dm_region_hash_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x1d0a4f8e relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x1d6cd68b scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0x1d89aca9 pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x1dcaf211 blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x1dcd7e4f device_register
+EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf
+EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart
+EXPORT_SYMBOL_GPL vmlinux 0x1eb92cb4 pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names
+EXPORT_SYMBOL_GPL vmlinux 0x1ecfdf10 cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0x1ee8d833 blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0x1efa9752 da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x1f2c7f08 anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x1f3fbf6d skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle
+EXPORT_SYMBOL_GPL vmlinux 0x1fa0e0fb ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick
+EXPORT_SYMBOL_GPL vmlinux 0x1fddf9a1 fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x20103463 transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x202953e4 apic
+EXPORT_SYMBOL_GPL vmlinux 0x204c4303 cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x2068e95d __srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20cb3b6d ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x20f7e50a device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0x21272fb1 anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x21350114 __pm_runtime_set_status
+EXPORT_SYMBOL_GPL vmlinux 0x2157c1ed i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x216b473f pci_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x216e92f9 dev_attr_em_message
+EXPORT_SYMBOL_GPL vmlinux 0x2195c79d crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0x21fb8dd6 usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x21fcfab1 class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x225dc5bb spi_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x22613655 pm_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x2298049d single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x229dd7f8 fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0x22deb7c8 ata_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x22fcbf4d class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x2349f5c8 wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x2355d1b9 shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x236609ba ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x24067669 ata_std_bios_param
+EXPORT_SYMBOL_GPL vmlinux 0x240b739a iomap_create_wc
+EXPORT_SYMBOL_GPL vmlinux 0x241c4ee5 nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x243befbe __class_register
+EXPORT_SYMBOL_GPL vmlinux 0x243c81af acpi_pci_find_root
+EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0x2457c0dd fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops
+EXPORT_SYMBOL_GPL vmlinux 0x24b102f6 fuse_file_poll
+EXPORT_SYMBOL_GPL vmlinux 0x24debed8 inet6_destroy_sock
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x24ebe2b1 ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x2552d736 usb_set_device_state
+EXPORT_SYMBOL_GPL vmlinux 0x2568bd79 pm_generic_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x259a953b usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0x25bdc553 ata_host_start
+EXPORT_SYMBOL_GPL vmlinux 0x25be254c sata_std_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x25ccd3ed shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x263ea03d led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x266f3eae crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x26880062 sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x268b2fc9 sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL vmlinux 0x269d8333 ata_port_abort
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x2739c921 usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars
+EXPORT_SYMBOL_GPL vmlinux 0x279fd8a6 proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0x27a08936 wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x27a896c0 shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x27ad44a5 __rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x27b518e0 pm_generic_resume
+EXPORT_SYMBOL_GPL vmlinux 0x27d5779c ata_sff_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x27ddc742 debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range
+EXPORT_SYMBOL_GPL vmlinux 0x2807ced3 kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0x28558385 generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0x28582e19 ata_std_qc_defer
+EXPORT_SYMBOL_GPL vmlinux 0x287d7e6e pciserial_suspend_ports
+EXPORT_SYMBOL_GPL vmlinux 0x28a319f8 device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x29004077 inotify_inode_is_dead
+EXPORT_SYMBOL_GPL vmlinux 0x295dfc13 tc35892_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x2963b731 sdio_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x296c124c get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0x296ff436 br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0x29782492 scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x2990b867 ata_pci_device_resume
+EXPORT_SYMBOL_GPL vmlinux 0x2998b94a task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x2a160a1d led_trigger_show
+EXPORT_SYMBOL_GPL vmlinux 0x2a25d182 pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result
+EXPORT_SYMBOL_GPL vmlinux 0x2a8b4528 __scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0x2aa2b53a da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array
+EXPORT_SYMBOL_GPL vmlinux 0x2ad52285 vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0x2b28c5ae sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x2b36a545 inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x2b8ef321 ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL vmlinux 0x2b956977 platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0x2be7fb8e disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x2c17c936 crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c2b0310 tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x2c3b8338 blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x2c3dd152 elv_register
+EXPORT_SYMBOL_GPL vmlinux 0x2c50caad key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0x2c7b596d ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0x2c826b19 mce_chrdev_ops
+EXPORT_SYMBOL_GPL vmlinux 0x2ca10111 rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2cbf2f03 platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2d375115 ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x2d4da2dc device_find_child
+EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x2d5ac5b5 ata_host_detach
+EXPORT_SYMBOL_GPL vmlinux 0x2d9b7e1d sata_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL vmlinux 0x2dbd49f5 spi_unregister_master
+EXPORT_SYMBOL_GPL vmlinux 0x2ddb0c27 use_mm
+EXPORT_SYMBOL_GPL vmlinux 0x2de2eb9e pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0x2e19ff2d inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x2e371920 get_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x2e406cdd ata_noop_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e4ba0b7 __hvc_resize
+EXPORT_SYMBOL_GPL vmlinux 0x2e5809fd device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x2e6c453b ata_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x2e9ac4d4 scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x2eb91dfe scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0x2eb9e607 usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0x2ec5b3f5 debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table
+EXPORT_SYMBOL_GPL vmlinux 0x2f51da30 cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0x2f6340ac class_dev_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll
+EXPORT_SYMBOL_GPL vmlinux 0x2fc0b8a4 mmu_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x2ffd88ba crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0x302ec551 ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL vmlinux 0x30750da4 tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0x3080badf fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x30b287e5 simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0x30c41b04 ata_scsi_simulate
+EXPORT_SYMBOL_GPL vmlinux 0x30d288c6 inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0x31343bdf crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x3136a485 devres_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x315ed02d __srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x31a9c083 dm_dispatch_request
+EXPORT_SYMBOL_GPL vmlinux 0x31ac5500 crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0x31c99204 apei_get_debugfs_dir
+EXPORT_SYMBOL_GPL vmlinux 0x31f0d310 cpufreq_cpu_put
+EXPORT_SYMBOL_GPL vmlinux 0x320f6fc9 inotify_init
+EXPORT_SYMBOL_GPL vmlinux 0x325d8264 sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0x3268fa05 rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x3282cdc8 platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x32b04156 fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x333522f7 crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x33607d36 smp_ops
+EXPORT_SYMBOL_GPL vmlinux 0x338b3bd9 sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register
+EXPORT_SYMBOL_GPL vmlinux 0x33c889c4 tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x33d773ac kick_process
+EXPORT_SYMBOL_GPL vmlinux 0x33ed46f0 tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0x33fa69e4 cpci_hp_register_bus
+EXPORT_SYMBOL_GPL vmlinux 0x34143aa8 scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0x3422af3b blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x349137c8 fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0x34917198 free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0x34c98bad debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0x34ca3d92 platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0x34ec32ad regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x34ff8cdc platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0x352da304 device_create
+EXPORT_SYMBOL_GPL vmlinux 0x3565742f usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x3591f068 kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x35a30e33 cpuidle_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x35b484c1 security_inode_setattr
+EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x360e7786 vma_kernel_pagesize
+EXPORT_SYMBOL_GPL vmlinux 0x361d4d7b pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0x363893d3 find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0x3643cd5e class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x36558094 ata_slave_link_init
+EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x36a1b368 input_ff_event
+EXPORT_SYMBOL_GPL vmlinux 0x36b6077a clockevents_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x36cf1d11 sdio_writel
+EXPORT_SYMBOL_GPL vmlinux 0x36e5925d driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x36e61054 scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x36f6e386 queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x376bf6e3 dma_release_channel
+EXPORT_SYMBOL_GPL vmlinux 0x3799fb9c pm_generic_restore
+EXPORT_SYMBOL_GPL vmlinux 0x37cc09be wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x37d7d07e rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x37f29871 part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0x383c3797 vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x384ffbf3 crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x387a79a0 queue_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure
+EXPORT_SYMBOL_GPL vmlinux 0x38fdea40 pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0x3902ee43 blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x3912e6c9 crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0x3965be20 ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x3a150d39 ata_eh_qc_retry
+EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3a30d67b ata_bmdma_setup
+EXPORT_SYMBOL_GPL vmlinux 0x3a3a4368 platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0x3a52df0d usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0x3a711fdb sdio_release_host
+EXPORT_SYMBOL_GPL vmlinux 0x3a8a1a1d input_ff_erase
+EXPORT_SYMBOL_GPL vmlinux 0x3a9b123b device_attach
+EXPORT_SYMBOL_GPL vmlinux 0x3acbd62d regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x3b255b35 sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0x3b3b04e0 remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0x3b5a6132 ata_sas_slave_configure
+EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value
+EXPORT_SYMBOL_GPL vmlinux 0x3b8995da find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0x3b9a5801 attribute_container_find_class_device
+EXPORT_SYMBOL_GPL vmlinux 0x3be72c45 blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3beafbcd acpi_smbus_read
+EXPORT_SYMBOL_GPL vmlinux 0x3bfeab42 ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x3c436e70 usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x3c7133c4 br_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag
+EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3cbd0751 regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3ce9400d pci_hp_change_slot_info
+EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3d43f262 ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL vmlinux 0x3d71fe4c relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0x3d7a0e6f tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0x3dbe5e7b blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id
+EXPORT_SYMBOL_GPL vmlinux 0x3dfcccdb __ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0x3e355c89 ata_std_postreset
+EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0x3e84a1fb cpuidle_disable_device
+EXPORT_SYMBOL_GPL vmlinux 0x3ea7939e pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler
+EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0x3f008c39 led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register
+EXPORT_SYMBOL_GPL vmlinux 0x3f4160b2 file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0x3f532dff acpi_get_pci_dev
+EXPORT_SYMBOL_GPL vmlinux 0x3f91275c blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x3fa1757f ata_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x3fdfe82e ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL vmlinux 0x3ff938f3 inet6_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x402146d7 sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x4024f57d crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x40564a9b __inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0x405deb11 tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0x405fac01 __class_create
+EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL vmlinux 0x4101c626 xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0x4147887b pci_configure_slot
+EXPORT_SYMBOL_GPL vmlinux 0x4173c2ca inotify_inode_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x419fc0f4 device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0x4201fb03 kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0x4240cecd blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0x424a9e1d sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x425e84a2 cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped
+EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active
+EXPORT_SYMBOL_GPL vmlinux 0x4286386d ata_bmdma_status
+EXPORT_SYMBOL_GPL vmlinux 0x42a10dcd wm8350_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done
+EXPORT_SYMBOL_GPL vmlinux 0x4302c437 ata_eh_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x4319f399 vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x43ab5c5e crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x43b87b8e securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x43c973b6 eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x446ae8a4 debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0x447eeb56 apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44865554 ata_sff_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x449fe9b2 platform_device_register_data
+EXPORT_SYMBOL_GPL vmlinux 0x44a37eee tty_find_polling_driver
+EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x44b89afb register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x44d0c7af ata_sff_dma_pause
+EXPORT_SYMBOL_GPL vmlinux 0x44e1f48b platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x451e0b81 map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state
+EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list
+EXPORT_SYMBOL_GPL vmlinux 0x457c31d2 crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0x458e2674 skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0x4592c87d register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x45984803 inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45d7d97a bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x46042297 hwpoison_filter
+EXPORT_SYMBOL_GPL vmlinux 0x460615c6 fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data
+EXPORT_SYMBOL_GPL vmlinux 0x46560830 dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x4675bd25 hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x467b0027 ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0x46d6dd6a transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x47345869 firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x475b2e3b srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x4773b36f free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x47cf36a2 fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0x48226157 generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x48672258 sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4868d6a9 fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size
+EXPORT_SYMBOL_GPL vmlinux 0x48c19fa1 tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0x48e3e165 sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0x490c03ae crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x493114f4 wm8994_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x49403c84 uart_set_options
+EXPORT_SYMBOL_GPL vmlinux 0x49480f57 __lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0x4962ca2f platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x4964b0b4 platform_get_resource_byname
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue
+EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x4a2bf188 fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0x4a65ebac sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x4a759baf ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x4aa07b01 ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0x4aa0de85 find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x4aa265fe pm_generic_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x4abe5e9b ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0x4afdab7f __ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x4b1ec3f2 trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x4b3e2c0a save_stack_trace_tsk
+EXPORT_SYMBOL_GPL vmlinux 0x4b5c9683 __ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x4b614457 sdio_f0_readb
+EXPORT_SYMBOL_GPL vmlinux 0x4b7421d7 usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0x4bf20584 shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x4c09c8c7 dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0x4c0addc1 generic_subsys_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0x4c4cd5b4 fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x4c6598e1 tc35892_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4cd822fd invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0x4d0a668b ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0x4d0c8215 fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0x4d209e00 aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x4d28f2e9 i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x4d440520 __fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0x4d587efc inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0x4d6e09a6 usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0x4d97302e acpi_smbus_register_callback
+EXPORT_SYMBOL_GPL vmlinux 0x4dbd3f7d usb_ep0_reinit
+EXPORT_SYMBOL_GPL vmlinux 0x4e05bbb9 crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x4e4e54d2 ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL vmlinux 0x4e5a0675 sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0x4e74d439 __pm_runtime_disable
+EXPORT_SYMBOL_GPL vmlinux 0x4ed4d1dc cpufreq_register_governor
+EXPORT_SYMBOL_GPL vmlinux 0x4ed659b9 ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x4ee0a5f9 blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x4ee3d2d9 sdio_enable_func
+EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x4ef6d7aa init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0x4f0922f3 root_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4f4b02fa wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x4f4d9575 spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0x4f73d06e nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x4fa43e59 uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x4fc5b48c hwmon_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal
+EXPORT_SYMBOL_GPL vmlinux 0x4fdce633 wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array
+EXPORT_SYMBOL_GPL vmlinux 0x505667b7 sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x50b6b1c7 sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0x50c4dff1 ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched
+EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x5108b3fc acpi_os_map_memory
+EXPORT_SYMBOL_GPL vmlinux 0x512e9c6b blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0x513251b6 ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq
+EXPORT_SYMBOL_GPL vmlinux 0x51963ca2 ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x51d22db3 ata_pci_remove_one
+EXPORT_SYMBOL_GPL vmlinux 0x51f36ed8 unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x5224d8ee platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0x522fdf95 ata_sas_port_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x52bf766d ata_host_register
+EXPORT_SYMBOL_GPL vmlinux 0x52d29b12 debugfs_create_bool
+EXPORT_SYMBOL_GPL vmlinux 0x52f55da7 __pci_hp_register
+EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53a2a55f xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0x53bbf416 rtnl_kill_links
+EXPORT_SYMBOL_GPL vmlinux 0x53c3bf90 regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0x53e8ad12 unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x540c89e7 driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x543780f9 usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x54818e18 __css_put
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54c13e6b __root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x54d87e6d fib_rules_cleanup_ops
+EXPORT_SYMBOL_GPL vmlinux 0x54dcb0d2 rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0x556327a2 inet6_csk_xmit
+EXPORT_SYMBOL_GPL vmlinux 0x558f92cf dev_attr_unload_heads
+EXPORT_SYMBOL_GPL vmlinux 0x55cfd39b ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0x55da6686 device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x56108e63 skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0x561a8706 set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status
+EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable
+EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after
+EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen
+EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk
+EXPORT_SYMBOL_GPL vmlinux 0x56c963ca ata_host_resume
+EXPORT_SYMBOL_GPL vmlinux 0x56cdfbcc platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0x56df474a lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x570e5c34 inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x5732f7c8 skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x575712ac __module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x575901e0 input_ff_create
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x57aac7fc drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0x57bdcc59 disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x57dd1ced usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0x580684ac kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x58081666 regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0x58407f0f pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x589e6403 scsi_target_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x58c6cd49 ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0x59179b1f ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x59237ac8 spi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x5928d449 crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL vmlinux 0x5962593f register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x596e65ec __trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0x597efefa usb_match_id
+EXPORT_SYMBOL_GPL vmlinux 0x59b4f9e5 ata_sff_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0x59d52725 devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0x59ea94b0 usb_bus_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x59f037e8 debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0x5a15fd24 ata_link_online
+EXPORT_SYMBOL_GPL vmlinux 0x5a428e57 pm_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x5a56580a transport_configure_device
+EXPORT_SYMBOL_GPL vmlinux 0x5a587089 usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL vmlinux 0x5a6ce8a6 fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5a9ed5b6 ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL vmlinux 0x5ada1165 tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x5b03b4c0 __blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x5b258afc lookup_create
+EXPORT_SYMBOL_GPL vmlinux 0x5b386b6c wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty
+EXPORT_SYMBOL_GPL vmlinux 0x5bd3690c adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5c9eba22 dm_rh_start_recovery
+EXPORT_SYMBOL_GPL vmlinux 0x5cd51881 dm_rh_inc_pending
+EXPORT_SYMBOL_GPL vmlinux 0x5ce1f6f4 md_new_event
+EXPORT_SYMBOL_GPL vmlinux 0x5cf08204 raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table
+EXPORT_SYMBOL_GPL vmlinux 0x5d21427e ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x5d349f0e regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5d9aa0d0 simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5dd9c134 pciserial_resume_ports
+EXPORT_SYMBOL_GPL vmlinux 0x5ddbde0d ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x5de9667a wm831x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x5def77a4 cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0x5e957285 dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0x5f13c909 acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable
+EXPORT_SYMBOL_GPL vmlinux 0x5fbc13ab blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x5ff1bd6e pm_runtime_allow
+EXPORT_SYMBOL_GPL vmlinux 0x6022fd32 fuse_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0x605581d7 scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x60c6f982 sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops
+EXPORT_SYMBOL_GPL vmlinux 0x60d09f77 raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0x60ebf985 acpi_processor_ffh_cstate_enter
+EXPORT_SYMBOL_GPL vmlinux 0x611b975b cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0x6124449d regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x612a1390 disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x616cd524 usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0x617201dc xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0x623e30ef dm_rh_region_context
+EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x626e4bef rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x6287d3bb __cpufreq_driver_getavg
+EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep
+EXPORT_SYMBOL_GPL vmlinux 0x62fc1d37 do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x630a8a70 __sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0x631f04e9 pci_hp_create_module_link
+EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL vmlinux 0x633c0c55 disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x634dc231 usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL vmlinux 0x63730d83 pci_enable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x637fe502 led_trigger_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x63912b3b inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x63b30e63 spi_alloc_master
+EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap
+EXPORT_SYMBOL_GPL vmlinux 0x64cbea4b ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0x64d01f78 inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x64ebe677 wmi_query_block
+EXPORT_SYMBOL_GPL vmlinux 0x650a4e4f ring_buffer_overruns
+EXPORT_SYMBOL_GPL vmlinux 0x6526aff0 cpufreq_frequency_table_target
+EXPORT_SYMBOL_GPL vmlinux 0x6531efbb simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq
+EXPORT_SYMBOL_GPL vmlinux 0x65b3f23e regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65ce81b0 ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x666090ed ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66c4fe3b kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x66e9b49a vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x66f62d08 inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0x670c5bef hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0x671df168 aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x6733cd8c device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x6787ccab kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x679fcab1 inotify_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x67ff0a51 usb_disable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x68385be1 usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x684566b5 platform_device_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x6859dca9 cpufreq_frequency_table_cpuinfo
+EXPORT_SYMBOL_GPL vmlinux 0x685b5735 sdio_writew
+EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x687fadb2 inotify_find_update_watch
+EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x68e49dfd crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x69425485 debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0x6943439b xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0x695b6ba6 crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x695c7802 iomap_atomic_prot_pfn
+EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse
+EXPORT_SYMBOL_GPL vmlinux 0x69a9f956 wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x69bd054c usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config
+EXPORT_SYMBOL_GPL vmlinux 0x69f8548f ata_dev_disable
+EXPORT_SYMBOL_GPL vmlinux 0x6a4daaac ata_port_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x6a6f0235 init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start
+EXPORT_SYMBOL_GPL vmlinux 0x6aa6413e ata_sff_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid
+EXPORT_SYMBOL_GPL vmlinux 0x6b158179 sis_info133_for_sata
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low
+EXPORT_SYMBOL_GPL vmlinux 0x6b94c408 enable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x6c07a2ea sync_page_io
+EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c7e3491 skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6c9e6bce ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x6dc3426c inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x6de88a66 usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0x6e419267 fuse_direct_io
+EXPORT_SYMBOL_GPL vmlinux 0x6e427273 dm_put
+EXPORT_SYMBOL_GPL vmlinux 0x6e5b4f40 pcie_port_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x6e880a24 usb_driver_release_interface
+EXPORT_SYMBOL_GPL vmlinux 0x6ebd316b regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL vmlinux 0x6f2e64f6 ata_sas_port_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x6f38b160 driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x6f596dd0 crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0x6fa7373d acpi_bus_trim
+EXPORT_SYMBOL_GPL vmlinux 0x6fd6cf37 platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts
+EXPORT_SYMBOL_GPL vmlinux 0x7042d96c crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0x7066b02b usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr
+EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL vmlinux 0x7084594b put_device
+EXPORT_SYMBOL_GPL vmlinux 0x7098bc9a adp5520_read
+EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0x70aecb65 device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem
+EXPORT_SYMBOL_GPL vmlinux 0x70f1d521 debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0x71278ada crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x7156596b fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x718040f4 sdio_writeb_readb
+EXPORT_SYMBOL_GPL vmlinux 0x7196eea9 pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0x71a41fdc default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x71b117d3 transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0x71c36b39 rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x71dc8589 power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0x71e417d5 inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0x72050d8a ata_bmdma_stop
+EXPORT_SYMBOL_GPL vmlinux 0x724b1734 crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x725a31ad crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x7285f84f unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x72ed7ace usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x72ee0dea rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x72ee33bf rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0x730744f6 user_describe
+EXPORT_SYMBOL_GPL vmlinux 0x733623a3 ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x7349a05a dm_rh_update_states
+EXPORT_SYMBOL_GPL vmlinux 0x737cc0c1 skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0x739b577a hvc_poll
+EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports
+EXPORT_SYMBOL_GPL vmlinux 0x73c759bd inode_add_to_lists
+EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini
+EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read
+EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register
+EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors
+EXPORT_SYMBOL_GPL vmlinux 0x75212412 ab8500_read
+EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm
+EXPORT_SYMBOL_GPL vmlinux 0x7547f6c7 ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0x7555a9fd regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0x75876859 ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x75e76020 driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7602bc23 sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x7631cca7 vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0x763aaafe tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0x768e90f1 hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL vmlinux 0x76d1b617 perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0x76e62f96 ata_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0x77659526 power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs
+EXPORT_SYMBOL_GPL vmlinux 0x77e01697 device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0x7806b3cb ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x7860a857 cpuidle_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x78d3ca76 ata_link_next
+EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar
+EXPORT_SYMBOL_GPL vmlinux 0x78ea7917 tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x7990c57f inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x79a6a478 module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x79cdf9e3 usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x79cf2087 cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL vmlinux 0x79d1da06 wm8350_device_exit
+EXPORT_SYMBOL_GPL vmlinux 0x7a2bff21 queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info
+EXPORT_SYMBOL_GPL vmlinux 0x7a59dc84 sysdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7a643961 sdio_memcpy_toio
+EXPORT_SYMBOL_GPL vmlinux 0x7a7d7aa8 sata_link_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr
+EXPORT_SYMBOL_GPL vmlinux 0x7aef97ff debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set
+EXPORT_SYMBOL_GPL vmlinux 0x7b39fb94 inotify_dentry_parent_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x7b6b0d16 i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL vmlinux 0x7b818d21 ata_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0x7c2129fd ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0x7c47b89d iounmap_atomic
+EXPORT_SYMBOL_GPL vmlinux 0x7c6a36bc ata_cable_80wire
+EXPORT_SYMBOL_GPL vmlinux 0x7c9f4185 ata_sff_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x7caddf16 class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x7cf12393 user_match
+EXPORT_SYMBOL_GPL vmlinux 0x7cf1f8d7 inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7cfa3df8 i2c_new_probed_device
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq
+EXPORT_SYMBOL_GPL vmlinux 0x7da6420e blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values
+EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7dcfaac8 debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x7de3a685 usb_poison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x7de59c5c unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e605a6e get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7e802176 platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check
+EXPORT_SYMBOL_GPL vmlinux 0x7ec4739f inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x7ef69fbf tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x7f1e01c5 mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x7fc8b254 register_posix_clock
+EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x800fa61c bsg_unregister_queue
+EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x802adbb1 sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x80302f88 blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission
+EXPORT_SYMBOL_GPL vmlinux 0x8041c5ad crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x807348e0 alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x80c88498 ipv6_dup_options
+EXPORT_SYMBOL_GPL vmlinux 0x80cc706f spi_async
+EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc
+EXPORT_SYMBOL_GPL vmlinux 0x810510a6 platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x811767f7 __create_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0x8149cfd5 ata_sas_port_stop
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x81633c9f sysdev_class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x8163c927 dev_attr_sw_activity
+EXPORT_SYMBOL_GPL vmlinux 0x81709dae crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0x8180a9da netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0x8184658b show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0x8209aa20 inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x822474e1 ata_sff_pause
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x823d6a7b sdio_writeb
+EXPORT_SYMBOL_GPL vmlinux 0x82472d16 __audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0x826bb0ff aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write
+EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export
+EXPORT_SYMBOL_GPL vmlinux 0x837aba2b sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0x83daacde uart_console_write
+EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x8478d0ba page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x849f1803 pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0x84a3515a relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag
+EXPORT_SYMBOL_GPL vmlinux 0x85b1aa58 fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0x85ba768c xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh
+EXPORT_SYMBOL_GPL vmlinux 0x85d4ff8e udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq
+EXPORT_SYMBOL_GPL vmlinux 0x867c684a setup_APIC_eilvt_ibs
+EXPORT_SYMBOL_GPL vmlinux 0x86873e6a inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x87019897 spi_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error
+EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x87cb2b25 spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm
+EXPORT_SYMBOL_GPL vmlinux 0x87e3c4ab kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x880d7c67 sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x88200f3c cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL vmlinux 0x886736fc olpc_platform_info
+EXPORT_SYMBOL_GPL vmlinux 0x888dac38 device_add
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active
+EXPORT_SYMBOL_GPL vmlinux 0x88b8277c perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x88c40e49 sata_pmp_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x88c4ba6b ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x8934420d dm_device_name
+EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init
+EXPORT_SYMBOL_GPL vmlinux 0x8958ed8b dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0x8966ba4e ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0x89b1a75d spi_sync
+EXPORT_SYMBOL_GPL vmlinux 0x89b41d29 usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x89c39214 class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x89c869f6 inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0x89d6a632 fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0x8b05432f debugfs_create_u64
+EXPORT_SYMBOL_GPL vmlinux 0x8b30dfd7 scsi_dh_detach
+EXPORT_SYMBOL_GPL vmlinux 0x8b684f7c ata_bmdma_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis
+EXPORT_SYMBOL_GPL vmlinux 0x8bde11eb sdio_set_block_size
+EXPORT_SYMBOL_GPL vmlinux 0x8bfd9d22 pm_schedule_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8c12ff1a sata_async_notification
+EXPORT_SYMBOL_GPL vmlinux 0x8c38bc65 power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x8c4c984b srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x8c6f4560 device_create_vargs
+EXPORT_SYMBOL_GPL vmlinux 0x8c787745 usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x8c9f552d pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0x8cb41c0a devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x8d73e479 devres_find
+EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0x8dc1350c class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0x8dcf92f0 bus_register
+EXPORT_SYMBOL_GPL vmlinux 0x8df98122 md_do_sync
+EXPORT_SYMBOL_GPL vmlinux 0x8e1b0f5b ata_sff_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x8e216894 crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x8e329617 preempt_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8e6ccb2b dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0x8e71c447 crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x8e76318b user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x8e90463e dm_register_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0x8e9ac31f pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL vmlinux 0x8eaee625 tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0x8ee24ffa inet_diag_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8f0cdee6 devres_remove
+EXPORT_SYMBOL_GPL vmlinux 0x8f10dcc8 tty_prepare_flip_string_flags
+EXPORT_SYMBOL_GPL vmlinux 0x8f27a87a mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0x8f3466e1 kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x8f4971e2 adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8f9a5975 css_id
+EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL vmlinux 0x9028570d __blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x9051042f crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0x90895698 usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90af5876 ata_sff_hsm_move
+EXPORT_SYMBOL_GPL vmlinux 0x90dd99db class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x9104e3a3 wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x91b281e7 ata_sas_port_init
+EXPORT_SYMBOL_GPL vmlinux 0x91b86d8f locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0x91d11bd7 pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0x91e6854a wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0x9227d5d2 bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0x923f6c13 scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0x924d16eb ipv6_find_tlv
+EXPORT_SYMBOL_GPL vmlinux 0x92ae0ecc ata_dummy_port_info
+EXPORT_SYMBOL_GPL vmlinux 0x92afcd9c sata_scr_read
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92d76b1f usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x92ffa5e0 cpufreq_cpu_get
+EXPORT_SYMBOL_GPL vmlinux 0x932d3425 dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x936a3973 usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0x939353f0 platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x93d3054e bus_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x945d18c0 ip6_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x9470252d securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94c29e01 ata_std_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources
+EXPORT_SYMBOL_GPL vmlinux 0x94c8a095 ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0x94e41714 sdio_readsb
+EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x95473177 xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0x954c329d aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x95769bdf device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0x95d4e279 ata_sff_irq_on
+EXPORT_SYMBOL_GPL vmlinux 0x95e4401a ata_sas_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x95e546ef usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x960cecfb ab8500_write
+EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x962f245f dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0x964a8d96 inotify_remove_watch_locked
+EXPORT_SYMBOL_GPL vmlinux 0x96511ed5 rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key
+EXPORT_SYMBOL_GPL vmlinux 0x969cd328 usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL vmlinux 0x96a60325 spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0x96abdf3a regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0x96ae8aed rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x96b8c06d ata_do_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x96d4757c dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL vmlinux 0x96d7b77f fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x97067cc2 pci_hp_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x974d79d9 pci_destroy_slot
+EXPORT_SYMBOL_GPL vmlinux 0x97575e41 ata_base_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x975fedb0 crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0x97704631 gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0x979cc84c synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0x97a81791 vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0x97ddde9a rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x981eba1e sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick
+EXPORT_SYMBOL_GPL vmlinux 0x98544df1 wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x9857c325 regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0x986e8a34 ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x98adeaaa dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL vmlinux 0x98b51ef1 bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0x98c95467 ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x98d85427 __dma_request_channel
+EXPORT_SYMBOL_GPL vmlinux 0x99035c98 put_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on
+EXPORT_SYMBOL_GPL vmlinux 0x9a0a8eae sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9aefcf2f xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0x9af9701d ata_sas_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x9b09447a kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x9b657777 ata_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9be9a7b3 da903x_write
+EXPORT_SYMBOL_GPL vmlinux 0x9beb668d add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x9bfdffd2 scsi_dh_activate
+EXPORT_SYMBOL_GPL vmlinux 0x9c12405d usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0x9c1b4f31 blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x9c3cb5f6 ata_sff_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x9c481466 cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine
+EXPORT_SYMBOL_GPL vmlinux 0x9d1dff5d wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x9d3dc1c9 register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x9d648846 ata_acpi_gtm
+EXPORT_SYMBOL_GPL vmlinux 0x9d83d581 tracepoint_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x9de655fa hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x9e150d2f __pm_runtime_get
+EXPORT_SYMBOL_GPL vmlinux 0x9e59fb38 uhci_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x9e9d2fe2 security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0x9e9da985 usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread
+EXPORT_SYMBOL_GPL vmlinux 0x9ec7bac9 synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain
+EXPORT_SYMBOL_GPL vmlinux 0x9f740f84 nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x9f8337f3 sdio_f0_writeb
+EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc
+EXPORT_SYMBOL_GPL vmlinux 0x9fb5c6b4 pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL vmlinux 0x9fbf43e9 class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x9fe2f149 fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint
+EXPORT_SYMBOL_GPL vmlinux 0xa0260a6b input_class
+EXPORT_SYMBOL_GPL vmlinux 0xa09586b6 usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xa0b40571 debugfs_create_u32
+EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xa121be8a driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0xa13dcc55 ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xa149cc88 scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0xa15aae3a inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0xa1812f32 dm_get_rq_mapinfo
+EXPORT_SYMBOL_GPL vmlinux 0xa19855ef trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0xa1b3d835 crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xa1d08e02 bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0xa246c83a usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xa2e1b30b unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4
+EXPORT_SYMBOL_GPL vmlinux 0xa2fc051e __ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa31323a3 transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0xa326a759 __inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0xa328a72a wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xa3eba043 inet_diag_register
+EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa413a3f3 devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit
+EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx
+EXPORT_SYMBOL_GPL vmlinux 0xa4a970b8 elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa4debad0 devres_add
+EXPORT_SYMBOL_GPL vmlinux 0xa531d638 tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xa5411b27 skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0xa5569923 wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xa5694fd1 sata_set_spd
+EXPORT_SYMBOL_GPL vmlinux 0xa58f810d bd_claim_by_disk
+EXPORT_SYMBOL_GPL vmlinux 0xa5bd3c5c security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa67798bf ata_link_abort
+EXPORT_SYMBOL_GPL vmlinux 0xa6f0b852 relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0xa6f304be usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL vmlinux 0xa718b7ae ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xa793e209 tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0xa7d62019 hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xa7f4d5fc driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xa821891d dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll
+EXPORT_SYMBOL_GPL vmlinux 0xa86b329e spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit
+EXPORT_SYMBOL_GPL vmlinux 0xa91f74c1 tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0xa95a4634 crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0xa95a8cdc led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0xa972eb69 usb_store_new_id
+EXPORT_SYMBOL_GPL vmlinux 0xa98b3127 devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xa9a7b431 ata_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0xa9afbd21 get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0xa9b7afd8 wmi_set_block
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9e22d55 fsnotify
+EXPORT_SYMBOL_GPL vmlinux 0xa9e6a0d0 usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xaa121800 tasklet_hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock
+EXPORT_SYMBOL_GPL vmlinux 0xaaa69ffc dm_unregister_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0xaad98cec bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run
+EXPORT_SYMBOL_GPL vmlinux 0xab3ef2af unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0xab59a3a0 vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0xab5e4cd5 ip6_dst_blackhole
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xabb4797e cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xac16195b seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0xac661f61 tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0xac7334e6 do_add_mount
+EXPORT_SYMBOL_GPL vmlinux 0xaca8e9d3 ata_sff_check_status
+EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq
+EXPORT_SYMBOL_GPL vmlinux 0xacc19485 ibft_addr
+EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0xace0ea9f usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xad392307 scsi_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae19837e dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0xae1d0d0d dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL vmlinux 0xae58fae4 usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0xae65974f raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xaf29a93f crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xaf2f9263 inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xaf2ff35a adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0xaf69cdb2 pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0xaf6a572b sdio_readw
+EXPORT_SYMBOL_GPL vmlinux 0xaf98fc75 kmap_atomic_pfn
+EXPORT_SYMBOL_GPL vmlinux 0xafb2ddeb tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0xafbce6a6 crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0xafd4ee32 regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0xafe7924e proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xb010b44f pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0xb01d33e2 srcu_init_notifier_head
+EXPORT_SYMBOL_GPL vmlinux 0xb03410cb spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xb0504ab6 usb_autopm_put_interface
+EXPORT_SYMBOL_GPL vmlinux 0xb054951c __rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb05e90fa hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0xb07edd2e ip6_sk_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xb0986709 srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work
+EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send
+EXPORT_SYMBOL_GPL vmlinux 0xb1293fc9 __pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xb1332fc1 debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0xb13a358f class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0xb17c2f6f spi_register_master
+EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb1cc7587 ata_port_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0xb1dbe7eb tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0xb27f04b2 class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb298c1de ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xb29ac08a unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xb2a0bb4e usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0xb2a51915 scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0xb2bc250c rtc_class_close
+EXPORT_SYMBOL_GPL vmlinux 0xb2be41f8 crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xb303ad68 rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb30c5091 bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xb30c6d5e hrtimer_start
+EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init
+EXPORT_SYMBOL_GPL vmlinux 0xb35c0d6c simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0xb3738aac add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0xb38947c5 ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0xb391721d sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0xb3c72f2c regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write
+EXPORT_SYMBOL_GPL vmlinux 0xb41c6ac8 regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xb494a3ed disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0xb4d09c04 blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected
+EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state
+EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait
+EXPORT_SYMBOL_GPL vmlinux 0xb58852ee led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xb5a30542 inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler
+EXPORT_SYMBOL_GPL vmlinux 0xb5aa4ec0 ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL vmlinux 0xb5d8913d register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec
+EXPORT_SYMBOL_GPL vmlinux 0xb657bab8 device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string
+EXPORT_SYMBOL_GPL vmlinux 0xb6b395eb usb_hc_died
+EXPORT_SYMBOL_GPL vmlinux 0xb6bfde21 put_driver
+EXPORT_SYMBOL_GPL vmlinux 0xb6c37893 input_ff_upload
+EXPORT_SYMBOL_GPL vmlinux 0xb6fd6747 pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse
+EXPORT_SYMBOL_GPL vmlinux 0xb71d46e7 pci_create_slot
+EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb76e2a0b usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time
+EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll
+EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xb836c493 usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0xb83cd607 sdio_align_size
+EXPORT_SYMBOL_GPL vmlinux 0xb8492dfb debugfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0xb84e4c47 iomap_free
+EXPORT_SYMBOL_GPL vmlinux 0xb86386ca sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0xb88fb6f3 ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL vmlinux 0xb9486229 sysfs_notify_dirent
+EXPORT_SYMBOL_GPL vmlinux 0xb94affde ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0xb96df2d2 acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL vmlinux 0xb9ab37fe cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xb9aff47f kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xb9ef6dc7 ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0xba167562 inotify_find_watch
+EXPORT_SYMBOL_GPL vmlinux 0xba2c27f0 each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xba4c5e22 crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xba5e3c5b ata_pci_device_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xba902281 sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0xbaa24065 crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbaf75a99 wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks
+EXPORT_SYMBOL_GPL vmlinux 0xbb307409 raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0xbb64c55e pm_generic_thaw
+EXPORT_SYMBOL_GPL vmlinux 0xbb91fc2d set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL vmlinux 0xbb9f4f05 regulator_disable
+EXPORT_SYMBOL_GPL vmlinux 0xbba726c6 tracepoint_iter_start
+EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info
+EXPORT_SYMBOL_GPL vmlinux 0xbbe45750 ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xbc9e2854 ata_host_activate
+EXPORT_SYMBOL_GPL vmlinux 0xbcb419c2 usb_enable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0xbcbdecab devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0xbccf82f7 css_depth
+EXPORT_SYMBOL_GPL vmlinux 0xbce836dd cpuidle_get_driver
+EXPORT_SYMBOL_GPL vmlinux 0xbced843f preempt_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xbd705e96 usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse
+EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbdfd7c31 dm_region_hash_create
+EXPORT_SYMBOL_GPL vmlinux 0xbe039100 usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL vmlinux 0xbe111f5b sdio_claim_irq
+EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime
+EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xbe5163e2 usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xbed71b40 skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xbeddc094 rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xbf21e71d da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0xbf569d71 driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xbf5ddc0b seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0xbf73cdf6 __pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xbf888905 regulator_get_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xc000b0ed ata_std_prereset
+EXPORT_SYMBOL_GPL vmlinux 0xc00c7e90 device_del
+EXPORT_SYMBOL_GPL vmlinux 0xc0284cc9 crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xc046467c fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0xc07cc20a usb_string
+EXPORT_SYMBOL_GPL vmlinux 0xc0956d94 ata_dummy_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time
+EXPORT_SYMBOL_GPL vmlinux 0xc0c23f3f __srcu_read_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc0c3bc45 cpufreq_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc0f7db42 usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0xc0fedded ata_acpi_stm
+EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar
+EXPORT_SYMBOL_GPL vmlinux 0xc1286449 filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0xc12a70b4 usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc1f846f4 ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xc20246d7 __pci_complete_power_transition
+EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0xc225572c inotify_rm_wd
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc26fa385 crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0xc2ca3e15 platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable
+EXPORT_SYMBOL_GPL vmlinux 0xc2de6ff2 cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc3431494 fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc35402b0 tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL vmlinux 0xc37713ea generic_detach_inode
+EXPORT_SYMBOL_GPL vmlinux 0xc3798a8d __mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc3dad79a rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0xc407f887 rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0xc41e9c51 md_allow_write
+EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long
+EXPORT_SYMBOL_GPL vmlinux 0xc42b2495 crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0xc46d9c43 raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string
+EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask
+EXPORT_SYMBOL_GPL vmlinux 0xc57a4309 regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xc58cdb60 lookup_address
+EXPORT_SYMBOL_GPL vmlinux 0xc5c2ca22 ata_sff_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0xc5e14508 usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0xc5e3dddf wmi_get_event_data
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc67b3516 blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0xc68ff34f wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xc69d8013 ata_eh_thaw_port
+EXPORT_SYMBOL_GPL vmlinux 0xc6e5e9b2 inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xc73f3efd tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0xc7a5d74b rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xc7bee65e sysfs_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xc7f292ee ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL vmlinux 0xc847b39b fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0xc851bb2c blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0xc86bb6d4 da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xc86cb87b dm_rh_flush
+EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain
+EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event
+EXPORT_SYMBOL_GPL vmlinux 0xc8b1990f led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0xc8e6532e ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource
+EXPORT_SYMBOL_GPL vmlinux 0xc92c5291 get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist
+EXPORT_SYMBOL_GPL vmlinux 0xc95d7e87 device_rename
+EXPORT_SYMBOL_GPL vmlinux 0xc99309ae pci_disable_rom
+EXPORT_SYMBOL_GPL vmlinux 0xc99fbb12 usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0xc9bfbff3 ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xc9ef6c52 pci_ioremap_bar
+EXPORT_SYMBOL_GPL vmlinux 0xca552368 ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xca608fbc da903x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xcab2dfdb relay_close
+EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcb36320e sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL vmlinux 0xcb4047b3 pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xcbd2133a mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcbf8883a hvc_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xcc144b98 class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc5192db rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xcc6ff3be class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL vmlinux 0xcd997082 anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0xcd9ddea0 dev_attr_em_message_type
+EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xcdd20115 usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0xcdd2b4cd bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0xcdf97720 regulator_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0xcea4b0c7 devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback
+EXPORT_SYMBOL_GPL vmlinux 0xcf817d7c ata_sff_wait_ready
+EXPORT_SYMBOL_GPL vmlinux 0xcf91821f da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0xcfa4083b dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xcfad843a sysdev_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xcfb48333 regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcfb836e2 ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcfe87521 usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0xcffdadbb inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0xd017a09c ata_sff_postreset
+EXPORT_SYMBOL_GPL vmlinux 0xd03bb497 anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL vmlinux 0xd0429e8d noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0xd06ef2c1 shake_page
+EXPORT_SYMBOL_GPL vmlinux 0xd08a0041 sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0xd0be7365 usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd0c70652 __i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0xd115b3e4 crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xd12ac59b olpc_ec_cmd
+EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xd212dc40 scsi_register_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd2945d3e power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop
+EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0xd3548615 mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0xd3880d47 gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd3f3d15b usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0xd3fd6688 pci_restore_msi_state
+EXPORT_SYMBOL_GPL vmlinux 0xd418f33e tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0xd43a7bef __set_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0xd45f37ee rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0xd4a57423 dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0xd4da83aa ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0xd515f098 dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0xd5181f11 regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0xd57f3254 handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0xd58392cc crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0xd5b14cc4 mmput
+EXPORT_SYMBOL_GPL vmlinux 0xd5c16624 crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0xd5dfd92d dm_rh_dec
+EXPORT_SYMBOL_GPL vmlinux 0xd5e38bd9 pm_request_idle
+EXPORT_SYMBOL_GPL vmlinux 0xd633e7d2 usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0xd6499e44 __mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0xd654d016 adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0xd65874e6 acpi_smbus_unregister_callback
+EXPORT_SYMBOL_GPL vmlinux 0xd6e1538e ata_sff_softreset
+EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id
+EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout
+EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd75eb93d pci_disable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd774f6b1 smp_call_function_any
+EXPORT_SYMBOL_GPL vmlinux 0xd777d87e crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor
+EXPORT_SYMBOL_GPL vmlinux 0xd7c2c961 crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0xd861aec4 inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xd8b3753b usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0xd8dcea11 dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL vmlinux 0xd8f7695b ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xd944478c power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read
+EXPORT_SYMBOL_GPL vmlinux 0xd973dbcf page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0xd984aa05 queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0xd98e549a ata_bmdma_start
+EXPORT_SYMBOL_GPL vmlinux 0xd9b23806 crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0xd9f78c0a register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xd9fc0b68 ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xda087255 __rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL vmlinux 0xda513e7e clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0xda526a81 cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0xda95d6bc crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0xdaa2729f css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xdab05694 ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL vmlinux 0xdac834bd vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option
+EXPORT_SYMBOL_GPL vmlinux 0xdafe5715 tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdb7d6dec fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xdba1ce66 transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xdbb25f5e acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL vmlinux 0xdc3c5335 usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0xdc44c2d8 relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xdc86b26f sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0xdc977dc0 sata_scr_valid
+EXPORT_SYMBOL_GPL vmlinux 0xdca430aa ata_host_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xdccd5990 inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0xdcdd8941 isa_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xdce1df8f pm_runtime_forbid
+EXPORT_SYMBOL_GPL vmlinux 0xdd0f1955 usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0xdd2202cf ata_eh_freeze_port
+EXPORT_SYMBOL_GPL vmlinux 0xdd513dc4 pm_generic_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0xdd58878c device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0xde3a9244 ring_buffer_read_finish
+EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain
+EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init
+EXPORT_SYMBOL_GPL vmlinux 0xde627fb4 pci_bus_max_busnr
+EXPORT_SYMBOL_GPL vmlinux 0xde6d9cc4 led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0xde836647 alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0xdec7cd83 driver_find
+EXPORT_SYMBOL_GPL vmlinux 0xded77967 ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xded87b66 tc35892_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xdeeb6e56 unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xdeed18b5 posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0xdf2ce0b6 ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0xdf3ea1e6 regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xdf4281c3 rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xdf6445a1 i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0xdf7e78e4 input_ff_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xdfdac3e7 crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name
+EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xe0dbf2c4 sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0xe145a3f3 sdio_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xe1568d9c erst_read_next
+EXPORT_SYMBOL_GPL vmlinux 0xe16d9e71 usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0xe1745b39 rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0xe18c8160 ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xe1a9950b usb_driver_set_configuration
+EXPORT_SYMBOL_GPL vmlinux 0xe1bdfb54 print_context_stack_bp
+EXPORT_SYMBOL_GPL vmlinux 0xe1d33628 inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0xe1f85190 register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0xe2426710 wmi_evaluate_method
+EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe2a79290 crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0xe2acb564 scsi_dh_attach
+EXPORT_SYMBOL_GPL vmlinux 0xe2cbe1f7 platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe2d37894 sata_sff_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xe2dd3ded init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0xe318e182 shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0xe3338936 tracepoint_iter_stop
+EXPORT_SYMBOL_GPL vmlinux 0xe34da2db blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0xe381ebea ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL vmlinux 0xe391eb1f ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0xe41001ae fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count
+EXPORT_SYMBOL_GPL vmlinux 0xe44b20b1 ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register
+EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL vmlinux 0xe4ebbec5 init_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xe5109ab1 ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges
+EXPORT_SYMBOL_GPL vmlinux 0xe5b6e383 rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xe5f03524 bus_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xe6164736 crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport
+EXPORT_SYMBOL_GPL vmlinux 0xe61ab0c7 pci_test_config_bits
+EXPORT_SYMBOL_GPL vmlinux 0xe62a73e7 ata_port_pbar_desc
+EXPORT_SYMBOL_GPL vmlinux 0xe63db83b single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition
+EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe66ba25f flush_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0xe681b244 invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe71495bd sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe73cf53c usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0xe78ffd11 pci_find_ext_capability
+EXPORT_SYMBOL_GPL vmlinux 0xe7b63619 skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr
+EXPORT_SYMBOL_GPL vmlinux 0xe80a1a4c __inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0xe83e7b8b xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0xe844196e generic_fh_to_parent
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe86e15ac hvc_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0xe89749f2 pciserial_remove_ports
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe9505381 ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe96b03b0 devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0xe979db3d wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xe999f9c3 crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0xe9ab9c7b fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0xe9f1ddf3 eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0xe9f671c8 register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeaf833d5 get_device
+EXPORT_SYMBOL_GPL vmlinux 0xeb025317 sdio_readb
+EXPORT_SYMBOL_GPL vmlinux 0xeb3e311b eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0xeb4f2115 rt_mutex_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xeb7be26d mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0xebbf8560 rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0xebecfffc console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del
+EXPORT_SYMBOL_GPL vmlinux 0xec4b5501 spi_write_then_read
+EXPORT_SYMBOL_GPL vmlinux 0xec6db4ca __rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0xec9010af sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL vmlinux 0xeca7981e usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0xecb316bf dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL vmlinux 0xecb45a1b ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xecd7e3df crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0xed353c41 usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0xed3e81f5 destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0xed3f3417 ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0xed84d5e7 fuse_do_open
+EXPORT_SYMBOL_GPL vmlinux 0xeda9db11 user_update
+EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check
+EXPORT_SYMBOL_GPL vmlinux 0xee1f6b8e ata_do_dev_read_id
+EXPORT_SYMBOL_GPL vmlinux 0xee2b96b6 debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0xee597b1a put_pid
+EXPORT_SYMBOL_GPL vmlinux 0xee68b8ab dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL vmlinux 0xee6d2d3c ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xee9f7072 cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL vmlinux 0xeeaa28b8 usb_get_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xeecd222f __blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xeef4ece1 cpci_hp_register_controller
+EXPORT_SYMBOL_GPL vmlinux 0xef047d3e usb_sg_wait
+EXPORT_SYMBOL_GPL vmlinux 0xef0a1244 dm_rh_recovery_end
+EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request
+EXPORT_SYMBOL_GPL vmlinux 0xef2b1c62 pci_enable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0xef3c6674 sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xef725401 pci_get_hp_params
+EXPORT_SYMBOL_GPL vmlinux 0xef7c0dba crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xef7f9164 shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0xef82c637 usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0xefb3d3e0 platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0xefb4be8a dm_rh_get_region_size
+EXPORT_SYMBOL_GPL vmlinux 0xefc184fc pci_scan_child_bus
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xefe21106 snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0xefef0909 register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0xeff75f21 rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xf03b7413 dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0xf0611f26 __pm_runtime_put
+EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL vmlinux 0xf06c1cc7 unregister_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0xf0766fe2 tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0xf0db1eda i2c_new_dummy
+EXPORT_SYMBOL_GPL vmlinux 0xf14ea6e4 tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xf175aa34 get_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf19b0eef led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0xf19e5437 usb_create_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0xf1b92bc7 perf_arch_fetch_caller_regs
+EXPORT_SYMBOL_GPL vmlinux 0xf1c6fd03 sata_pmp_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xf1f69beb ab8500_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xf203a86a ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0xf21970ac sfi_mrtc_array
+EXPORT_SYMBOL_GPL vmlinux 0xf25a8658 pm_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xf266f0be usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0xf28abd62 ata_host_init
+EXPORT_SYMBOL_GPL vmlinux 0xf2bb75ee class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xf2c9538f pci_num_vf
+EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options
+EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0xf32b8e62 __mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf350e79b crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xf383fe10 blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0xf391f2b3 task_current_syscall
+EXPORT_SYMBOL_GPL vmlinux 0xf392cca0 attribute_container_register
+EXPORT_SYMBOL_GPL vmlinux 0xf3b1a479 inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf40ebf5c ring_buffer_record_enable
+EXPORT_SYMBOL_GPL vmlinux 0xf48c6f67 crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf49b35cc pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0xf5335d8f bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf5958732 tty_put_char
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf5c74771 proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0xf5dd6311 crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0xf5e30956 crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf62bb16d ata_sff_data_xfer
+EXPORT_SYMBOL_GPL vmlinux 0xf65e0149 xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0xf6644fd0 ata_dev_next
+EXPORT_SYMBOL_GPL vmlinux 0xf6706e3b inotify_init_watch
+EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id
+EXPORT_SYMBOL_GPL vmlinux 0xf6af4361 bd_release_from_disk
+EXPORT_SYMBOL_GPL vmlinux 0xf6cdc1f1 pci_bus_resource_n
+EXPORT_SYMBOL_GPL vmlinux 0xf6e38d54 wm8994_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xf6ea8ac3 bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0xf70bf8be pm_request_resume
+EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xf75d4be4 tty_mode_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xf76d1c7b da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error
+EXPORT_SYMBOL_GPL vmlinux 0xf7fea11d macvlan_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0xf7feaecd print_context_stack
+EXPORT_SYMBOL_GPL vmlinux 0xf8136959 crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf88323ac kill_pid_info_as_uid
+EXPORT_SYMBOL_GPL vmlinux 0xf8990a98 inotify_add_watch
+EXPORT_SYMBOL_GPL vmlinux 0xf89fe19a dm_kill_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0xf8a48a49 pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit
+EXPORT_SYMBOL_GPL vmlinux 0xf92f3346 cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf9372ea7 crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xf95eaa0e led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0xf967c246 user_read
+EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match
+EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw
+EXPORT_SYMBOL_GPL vmlinux 0xf97a8ac8 sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xf984c7c3 usb_ifnum_to_if
+EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register
+EXPORT_SYMBOL_GPL vmlinux 0xfa4d10cc dm_rh_recovery_start
+EXPORT_SYMBOL_GPL vmlinux 0xfa870f2d wm8350_gpio_config
+EXPORT_SYMBOL_GPL vmlinux 0xfaa01713 acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0xfaace91f regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xfab010a4 ata_sff_freeze
+EXPORT_SYMBOL_GPL vmlinux 0xfade87a2 skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0xfaff3bcf shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xfb1eb84a dm_rh_dirty_log
+EXPORT_SYMBOL_GPL vmlinux 0xfb2a3293 math_state_restore
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb48ba9b pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0xfb505ba5 disk_map_sector_rcu
+EXPORT_SYMBOL_GPL vmlinux 0xfb7dba1d __sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0xfb8f9de0 ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL vmlinux 0xfbdd9d7a tracepoint_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xfbdf8d2c sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfc08c326 bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0xfc09fb3b bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0xfc1ba8cc gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0xfc41a200 driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value
+EXPORT_SYMBOL_GPL vmlinux 0xfc9f7a2b ata_sff_exec_command
+EXPORT_SYMBOL_GPL vmlinux 0xfd026f56 dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xfd39e84e ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable
+EXPORT_SYMBOL_GPL vmlinux 0xfda6f977 rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0xfdd269b0 pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfdf1c1f6 device_move
+EXPORT_SYMBOL_GPL vmlinux 0xfdfb9ed5 usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xfe5584f2 ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0xfe5d5d9e tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0xfe7a7ef9 crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0xfe7aba2e regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfe9b1432 hvc_remove
+EXPORT_SYMBOL_GPL vmlinux 0xfeaf3e6c pci_find_next_capability
+EXPORT_SYMBOL_GPL vmlinux 0xfeb4c793 usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0xfec65ac1 scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfed33395 rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0xfedf023a pm_runtime_barrier
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback
+EXPORT_SYMBOL_GPL vmlinux 0xff8a1144 ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffc0b82d sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0xffc159e5 sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0xffc96752 regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0xffda9375 sdio_disable_func
diff --git a/debian.master/abi/2.6.35-2.3/i386/generic-pae b/debian.master/abi/2.6.35-2.3/i386/generic-pae
new file mode 100644
index 00000000000..4353fc07126
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/i386/generic-pae
@@ -0,0 +1,11259 @@
+EXPORT_SYMBOL arch/x86/kernel/scx200 0x254e5667 scx200_gpio_base
+EXPORT_SYMBOL arch/x86/kernel/scx200 0x35a3c008 scx200_gpio_configure
+EXPORT_SYMBOL arch/x86/kernel/scx200 0x8cfa375c scx200_gpio_shadow
+EXPORT_SYMBOL arch/x86/kernel/scx200 0x907665bd scx200_cb_base
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x78b49670 kvm_read_guest_atomic
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x9c55151f kvm_cpu_has_pending_timer
+EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble
+EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle
+EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k
+EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks
+EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister
+EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register
+EXPORT_SYMBOL drivers/acpi/video 0x963cf9b4 acpi_video_get_edid
+EXPORT_SYMBOL drivers/atm/suni 0x2763b739 suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0x01b08ec4 uPD98402_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x33b5f7ff pi_schedule_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x37b04649 pi_write_block
+EXPORT_SYMBOL drivers/block/paride/paride 0x3cf0edfa pi_write_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0x84c75b46 pi_read_block
+EXPORT_SYMBOL drivers/block/paride/paride 0x8e7cf0ab pi_connect
+EXPORT_SYMBOL drivers/block/paride/paride 0x9aa97477 pi_do_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x9fdb224b pi_disconnect
+EXPORT_SYMBOL drivers/block/paride/paride 0xc376314b paride_register
+EXPORT_SYMBOL drivers/block/paride/paride 0xcd695f58 pi_read_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0xd7b7cfd9 pi_release
+EXPORT_SYMBOL drivers/block/paride/paride 0xe48a10f3 pi_init
+EXPORT_SYMBOL drivers/block/paride/paride 0xf51ef892 paride_unregister
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x132bd24c agp_bind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x16eacb42 agp_free_page_array
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x178cf317 agp_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x1ef6ffc3 agp_generic_remove_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x270aa4a7 agp_generic_destroy_page
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x2efd0f2d agp_generic_alloc_pages
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x30226ddf agp_device_command
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x3108b55a agp_generic_free_gatt_table
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x36eb41f5 agp_generic_free_by_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x38951528 agp_generic_create_gatt_table
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x41220000 agp_generic_enable
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x50053c8c agp_collect_device_status
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x50acbc87 agp_generic_alloc_by_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x56949d05 agp_enable
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x5c13d456 agp_flush_chipset
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x5faedd86 agp_put_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x6285881a agp3_generic_tlbflush
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x689789da agp_generic_mask_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x6917ffe4 agp_generic_type_to_mask_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x6abd1ff7 agp_generic_alloc_page
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7144f91c agp_backend_release
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7346d4c9 get_agp_version
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x74c994dd agp_copy_info
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x77527b56 agp_alloc_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x969fb335 agp_find_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x9f3b0a91 agp_generic_alloc_user
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb04ea8f0 agp_rebind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb5986ba2 agp_generic_destroy_pages
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc48c1d0d agp_generic_insert_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd4cfa16a agp_create_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd8ee61b1 agp_backend_acquire
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe6f151c0 agp_alloc_page_array
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe7a5e0c1 agp_allocate_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xefdf8f4c agp_free_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xf77ee079 agp_unbind_memory
+EXPORT_SYMBOL drivers/char/agp/intel-agp 0x7b9a6116 intel_agp_enabled
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x03b9983b ipmi_smi_watcher_register
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0aae7108 ipmi_get_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x11b71f26 ipmi_create_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x18164cb1 ipmi_set_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1fc6501a ipmi_set_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2719859f ipmi_destroy_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x288acecf ipmi_set_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4296bec8 ipmi_free_recv_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4adba98c ipmi_register_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x627696d5 ipmi_poll_interface
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6348403e ipmi_get_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x636d699f ipmi_get_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x81f796b1 ipmi_smi_add_proc_entry
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x82f26d00 ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x92d06c13 ipmi_unregister_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa0db470d ipmi_request_supply_msgs
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa67e9861 ipmi_set_gets_events
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xadb67403 ipmi_unregister_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd29833a3 ipmi_request_settime
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd5b91ea2 ipmi_smi_msg_received
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xec354102 ipmi_get_version
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf20f72c5 ipmi_smi_watcher_unregister
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf565d564 ipmi_register_smi
+EXPORT_SYMBOL drivers/char/nsc_gpio 0x8e8e288d nsc_gpio_write
+EXPORT_SYMBOL drivers/char/nsc_gpio 0xc489c36a nsc_gpio_dump
+EXPORT_SYMBOL drivers/char/nsc_gpio 0xfe1674b8 nsc_gpio_read
+EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte
+EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte
+EXPORT_SYMBOL drivers/edac/edac_core 0x39ee7c0d edac_mc_find
+EXPORT_SYMBOL drivers/edac/edac_core 0x700f1275 edac_mc_handle_fbd_ce
+EXPORT_SYMBOL drivers/edac/edac_core 0xee27598a edac_mc_handle_fbd_ue
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x0991ea3c fw_iso_buffer_destroy
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x24442b34 fw_fill_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x2448a925 fw_device_enable_phys_dma
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x3e8fe422 fw_iso_context_create
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x45b00092 fw_core_initiate_bus_reset
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x465c0db4 fw_iso_context_destroy
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x553a2a47 fw_core_handle_request
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x5a1493d3 fw_card_initialize
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x5b3650db fw_send_request
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x6942c629 fw_core_add_address_handler
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x85ee1630 fw_iso_context_start
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x87430627 fw_iso_context_stop
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x875793e6 fw_bus_type
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x9143689b fw_core_remove_address_handler
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x921b2f33 fw_run_transaction
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xa71d3355 fw_core_remove_card
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xae2fd120 fw_core_handle_bus_reset
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xb2de9f9a fw_iso_context_queue
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xc1eeb9f0 fw_core_handle_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xd3e11d2b fw_cancel_transaction
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xe079e17c fw_iso_buffer_init
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xe7b4ecf0 fw_send_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xea4656dc fw_card_add
+EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x00ae6c8b drm_mode_object_find
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x02552c1e drm_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x036afc7d drm_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a54ffbb drm_mode_connector_update_edid_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b22e726 drm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b75775c drm_mode_config_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ee1a9f3 drm_addmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d13802 drm_mm_search_free_in_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c753a7 drm_master_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x13e76eb4 drm_framebuffer_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x15c12351 drm_cvt_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x18411a26 drm_idlelock_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ab01659 drm_agp_bind_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c24f939 drm_irq_install
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1eed648a drm_clflush_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1efd7471 drm_fasync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x20047f53 drm_agp_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x22be9f02 drm_mode_connector_detach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x290cb700 drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2964350d drm_get_resource_len
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b4cfb47 drm_property_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b804b4a drm_encoder_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x314da4c1 drm_connector_property_set_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x377e18f4 drm_gem_object_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3830f177 drm_idlelock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e4e7fb0 drm_agp_acquire
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x40980597 drm_mode_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4268740f drm_getsarea
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x433c224b drm_addbufs_pci
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4401f3ec drm_free_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4407f0c0 drm_debugfs_create_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x46d0cce9 drm_pci_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x47bcbaf5 drm_mm_pre_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831d2c2 drm_mm_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e8f3fd5 drm_agp_bind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4eacd601 drm_debugfs_remove_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4fbce921 drm_core_ioremap_wc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e959bf drm_ati_pcigart_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5846ab9e drm_mode_create_dirty_info_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x59abb961 drm_crtc_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x59b45062 drm_mode_probed_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x59fb8537 drm_i_have_hw_lock
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c6634d3 drm_mode_duplicate
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f2f1a34 drm_connector_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6269a121 drm_core_reclaim_buffers
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x69c68f6f drm_sysfs_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e381201 drm_connector_attach_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e56ddd7 drm_gem_object_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f6f545f drm_ati_pcigart_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x707aa103 drm_mode_create_dithering_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x72a50331 drm_pci_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7de8ae8a drm_agp_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ecc4f9d drm_gtf_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x822f1c01 drm_vblank_post_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x840e3f1f drm_gem_vm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8431286c drm_connector_property_get_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x85c6ee72 drm_poll
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x867c9f31 drm_unbind_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x86d4462c drm_agp_chipset_flush
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x87ad9ee1 drm_agp_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a4830ed drm_lock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c1afe8e drm_property_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ffc694c drm_mode_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x90813be0 drm_mode_detachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x90b63290 drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9162b0bd drm_crtc_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x964ffb9a drm_vblank_off
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x97982496 drm_sysfs_connector_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x986025da drm_rmmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c2c1cb7 drm_add_edid_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c946411 drm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d35a370 drm_core_get_reg_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e830d50 drm_i2c_encoder_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f0afa2c drm_i2c_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa12a7bcd drm_connector_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa20293a9 drm_gem_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6424fe2 drm_get_connector_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa72425e2 drm_vblank_pre_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8149714 drm_mode_connector_list_update
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8af12e2 drm_mode_attachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaacfec00 drm_master_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xac6ab591 drm_irq_uninstall
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0dd9f6e drm_vblank_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb40a9666 drm_lock_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5391714 drm_vblank_count
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6d79686 drm_core_ioremapfree
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd616986 drm_core_ioremap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc00af4d3 drm_vblank_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc076997f drm_vblank_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc139b67b drm_add_modes_noedid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc21dce5b drm_mode_prune_invalid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc2246573 drm_sg_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5f0981c drm_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc72255d1 drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc765cfe6 drm_read
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc885fe34 drm_mode_validate_clocks
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xca94d507 drm_get_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd396969 drm_gem_vm_close
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf45449d drm_mode_create_tv_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfd3d077 drm_rmmap_locked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcffae8bf drm_mode_config_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd073c565 drm_get_resource_start
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd12d8839 drm_agp_unbind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd34d2ad9 drm_get_edid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5f77926 drm_agp_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd90cb423 drm_mode_validate_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9b5c11d drm_mode_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xda35e2d5 drm_agp_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdaeee285 drm_mm_dump_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbae40f3 drm_put_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd85379f drm_gem_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf874498 drm_handle_vblank
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdfa3c534 drm_exit
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1d30d8a drm_gem_handle_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1f32a59 drm_get_encoder_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe753ce18 drm_mode_find_dmt
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe87ae3fc drm_mm_get_block_range_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb0e8565 drm_gem_object_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xec26663d drm_get_drawable_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xedf410f0 drm_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeeda308f drm_addbufs_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf00f95e8 drm_mode_connector_attach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42823dc drm_framebuffer_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5f557fa drm_sysfs_connector_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7e815b6 drm_gtf_mode_complex
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9739f8a drm_vblank_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x01d26772 drm_fb_helper_check_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12e7bbf1 drm_fb_helper_fill_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x24b5e35e drm_helper_crtc_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x25adc70f drm_fb_helper_pan_display
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2b134671 drm_helper_encoder_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2ecf6772 drm_fb_helper_single_fb_probe
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x32e8af85 drm_fb_helper_setcmap
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x383a1de3 i2c_dp_aux_add_bus
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x403fffe1 drm_fb_helper_initial_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x40dd7d0b drm_crtc_helper_set_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x466cf83b drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4f3a96bd drm_fb_helper_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5e612000 drm_fb_helper_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x68fc2bd7 drm_fb_helper_single_add_all_connectors
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x72d07e23 drm_helper_hpd_irq_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x75be3421 drm_crtc_helper_set_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x76de3de8 drm_fb_helper_blank
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c7595a7 drm_kms_helper_poll_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x865af73d drm_helper_disable_unused_functions
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91de393e drm_kms_helper_poll_disable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x94490b33 drm_helper_connector_dpms
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9518e94f drm_kms_helper_poll_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa81c9fbc drm_kms_helper_poll_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xac6544ae drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbe3bf331 drm_fb_helper_set_par
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcc41f379 drm_fb_helper_fill_fix
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdb5c0ceb drm_fb_helper_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xed17edb5 drm_helper_resume_force_mode
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x02a0a74e ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x02b53660 ttm_bo_kunmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0363a980 ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07787990 ttm_bo_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x13e2ed28 ttm_bo_unreserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x156660c6 ttm_bo_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17b751cd ttm_bo_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17d02c4b ttm_base_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c4d494d ttm_object_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ff54ff0 ttm_ref_object_add
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x266d8a60 ttm_io_prot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2941ea6f ttm_bo_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2a449d33 ttm_bo_move_memcpy
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34704ea7 ttm_global_item_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38c544b0 ttm_object_file_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c3c3af1 ttm_bo_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3de80ccb ttm_bo_reserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x49ef8a86 ttm_bo_unmap_virtual
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x51ac0254 ttm_bo_validate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x52433f76 ttm_bo_move_ttm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x53438b49 ttm_bo_init_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x53cc52d8 ttm_bo_kmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5bda83c4 ttm_bo_clean_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66666d70 ttm_global_item_ref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x690e354b ttm_bo_synccpu_write_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6fa4df78 ttm_bo_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7a5f39f4 ttm_mem_global_alloc
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7c9c8b83 ttm_tt_populate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83c2d310 ttm_object_file_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8dac6dd1 ttm_tt_set_placement_caching
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e62fa47 ttm_object_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9859a1d1 ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98b7a72b ttm_write_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b7af728 ttm_ref_object_base_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cad9496 ttm_vt_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa39a9363 ttm_tt_bind
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa9c71568 ttm_bo_swapout_all
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab64ff66 ttm_bo_mem_space
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4a2aaf3 ttm_mem_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4bd6211 ttm_bo_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc30784a2 ttm_mem_global_free
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd66ba4df ttm_base_object_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9646ea3 ttm_bo_wait_unreserved
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xda96d584 ttm_base_object_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdcf3eb67 ttm_page_alloc_debugfs
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd2fc745 ttm_bo_wait
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6d52a12 ttm_agp_backend_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe82e99fd ttm_fbdev_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe93d8429 ttm_bo_wait_cpu
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xead17d79 ttm_bo_evict_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf1921b0b ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc361f99 ttm_mem_global_release
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x0ef9c3b5 i2c_bit_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x2d7999bb i2c_bit_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x6bb42422 i2c_pca_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x777d1064 i2c_pca_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x78875173 i2c_pcf_add_bus
+EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x50f5f86c amd756_smbus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x04322b49 hpsb_make_streampacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07e751e7 csr1212_get_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0bb42b24 hpsb_make_lock64packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0f4be803 hpsb_iso_shutdown
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x113b59f8 hpsb_unregister_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2213871f hpsb_iso_recv_release_packets
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2718942b hpsb_iso_recv_unlisten_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x280275d3 hpsb_reset_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x29be2d24 hpsb_make_phypacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2cc996f6 hpsb_iso_xmit_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x373cead3 hpsb_alloc_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3a46cc22 hpsb_set_packet_complete_task
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3bb943ce hpsb_iso_n_ready
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3c1d40a2 hpsb_update_config_rom_image
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3d6fbace hpsb_alloc_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4286c552 hpsb_node_fill_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4739210d hpsb_iso_recv_listen_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x475e7e3a hpsb_selfid_complete
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4794aa6e hpsb_bus_reset
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x49e89e05 hpsb_add_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x50feb831 hpsb_resume_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x57278d0d hpsb_set_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5a729c28 hpsb_iso_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5f6b743c hpsb_allocate_and_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6541ce7b hpsb_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x68e1b21d hpsb_iso_stop
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6a0b275e hpsb_selfid_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6a5fd44a hpsb_get_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6bc35bdd hpsb_get_hostinfo_bykey
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x71fe6946 hpsb_iso_recv_set_channel_mask
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x763e6022 hpsb_remove_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7a422825 hpsb_protocol_class
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7cbfee72 hpsb_make_lockpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x88739046 hpsb_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x893b6488 hpsb_unregister_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x89ed432a hpsb_free_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8b000c6e dma_region_mmap
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8d1738aa hpsb_destroy_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8f97d52a hpsb_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x911441d9 hpsb_create_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x91eac584 hpsb_iso_recv_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x95783db0 hpsb_iso_recv_flush
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x993d5443 hpsb_register_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa0a14b9f hpsb_iso_xmit_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa1414780 hpsb_iso_xmit_sync
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa4a38ab2 hpsb_send_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa53dc856 __hpsb_register_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8b5291c hpsb_make_writepacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8b58e51 hpsb_make_readpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb1987671 hpsb_packet_success
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb451d897 hpsb_iso_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb890b814 csr1212_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbd1f8eba hpsb_update_config_rom
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc2e4bfd6 hpsb_set_hostinfo_key
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xce6ce094 hpsb_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd27ee934 hpsb_get_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd3a5c56d hpsb_lock
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd775648d hpsb_iso_recv_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd7dd3417 hpsb_iso_xmit_queue_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xda8f4264 hpsb_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdbc2839d hpsb_iso_wake
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe16a1838 hpsb_free_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe249ff98 hpsb_read_cycle_timer
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xef5abd1a hpsb_node_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf568dfa3 hpsb_unregister_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x43a4386d ohci1394_stop_context
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x5be88c3f ohci1394_register_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xc26569bd ohci1394_unregister_iso_tasklet
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x29cbd5fe rdma_addr_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x80257864 rdma_copy_addr
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0313e3d8 ib_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x03d0c131 ib_send_cm_rtu
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0612d50e ib_cm_notify
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x103f302a ib_send_cm_mra
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1e35941e ib_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1e6e11ad ib_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1f43ff79 ib_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x221c1050 ib_send_cm_drep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2a799ebd ib_send_cm_sidr_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x680ed79b ib_send_cm_sidr_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x69b4a391 cm_class
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa88a87a7 ib_send_cm_lap
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xabe23fa7 ib_send_cm_dreq
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb92a6f75 ib_send_cm_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd11ce705 ib_send_cm_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdb1e2891 ib_send_cm_apr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf71db71e ib_send_cm_rej
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00c7e829 ib_modify_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x04c49223 ib_modify_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x059a6b3d ib_resize_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16ebd959 ib_dereg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17cabe66 ib_umem_release
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x220c785f ib_dealloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26623374 ib_create_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2acb482d ib_dispatch_event
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x307d4bd8 ib_destroy_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x324248c4 ib_modify_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x332706ff ib_alloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x38858a8c ib_detach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a5bd155 ib_find_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f8bd2f9 ib_rereg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x416485dd ib_query_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x42dfdd31 ib_fmr_pool_unmap
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4cd377a2 ib_register_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x506c30d1 ib_umem_page_count
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x510241b2 ib_query_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x56c4893a ib_find_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e3925ef ib_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61d66a26 ib_init_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x64ef9686 ib_modify_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x694c47ba ib_create_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x72b791f5 ib_flush_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x732aa637 ib_unregister_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78ef8a18 ib_attach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x876e4076 ib_query_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b893ed ib_destroy_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x886bc4d7 ib_fmr_pool_map_phys
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x88a0c418 ib_destroy_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a97ed1b ib_find_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ef8ae84 ib_get_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96d7355b ib_query_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x98ef12d1 ib_dealloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x99133113 ib_alloc_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa05724de ib_modify_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa7d6eca5 ib_reg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa12d4da ib_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xab1b2af4 ib_get_cached_lmc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac3fd621 ib_dealloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb023c41f ib_register_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb43015b7 ib_destroy_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb9e4a33d ib_query_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4a485f7 ib_query_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcb0b2e42 ib_create_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc068acd ib_get_dma_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0a0ae1d ib_umem_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd32ac267 ib_alloc_fast_reg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd53a9f38 ib_modify_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6a21556 ib_query_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8c91cc3 ib_create_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda9a99b6 ib_get_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdbeac15e ib_unregister_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc1dd54c ib_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xded7dcfd ib_set_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe29130b1 ib_query_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe993f694 ib_create_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9b75a13 ib_dealloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xebafef00 ib_alloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec55dcbc ib_free_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf4f797fc ib_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf721269b ib_alloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7541c95 ib_find_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8e3bbcc ib_alloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa3e4178 ib_get_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1f9ff069 ib_cancel_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5d709878 ib_register_mad_snoop
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x63887b59 ib_modify_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x68d7a78f ib_free_recv_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6fbbb0db ib_redirect_mad_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x824d793c ib_create_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x93b65974 ib_register_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb6b27a5b ib_post_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd2255505 ib_unregister_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd3464c93 ib_free_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf0424ea2 ib_process_mad_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf4a3dbc5 ib_get_rmpp_segment
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x09877032 ib_sa_service_rec_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3ffbd890 ib_sa_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x73e642da ib_sa_path_rec_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8dcce4cc ib_init_ah_from_mcmember
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb8668176 ib_sa_get_mcmember_rec
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc10de428 ib_sa_cancel_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe0cd29d8 ib_init_ah_from_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x31b87a1b iw_cm_reject
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3f91036e iw_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4aa1b5f4 iw_cm_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4e0254a1 iw_cm_accept
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x912965d0 iw_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc66fb0f6 iw_cm_connect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xeb575b87 iw_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xfc67e948 iw_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x020f8e0b rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0c5e42c1 rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x10375d0a rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1ea898a2 rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1f72e598 rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3275bd43 rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x52b7824c rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x55f3fd85 rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5e8d8096 rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x74432e85 rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7e78cabf rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x87dfe750 rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa28e0ea7 rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xae096ad0 rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbc79263c rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc34bf233 rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe55754e2 rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf94fdc4b rdma_resolve_addr
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x0c243bb1 __gameport_register_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x3f4e334a gameport_unregister_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x837827bb gameport_start_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x95eba19a gameport_open
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xab5c6f74 gameport_stop_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xafee545d gameport_set_phys
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xcfe27321 gameport_unregister_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xed6fb345 gameport_close
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xf46eee79 __gameport_register_driver
+EXPORT_SYMBOL drivers/input/input-polldev 0x2c6b6228 input_unregister_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x516150ba input_register_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xb0704e40 input_allocate_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xb0a9e3b3 input_free_polled_device
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x4bfa5458 ad714x_remove
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xa05237a8 ad714x_disable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xcfd0d3e5 ad714x_probe
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xdec12a93 ad714x_enable
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x1bd9ab8f sparse_keymap_report_entry
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x4a8e6951 sparse_keymap_report_event
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x5f09e643 sparse_keymap_free
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x6e699d76 sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x87282498 sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xcf67d0d0 sparse_keymap_setup
+EXPORT_SYMBOL drivers/isdn/capi/capifs 0x5291ec49 capifs_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/capifs 0xbfee8c6b capifs_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x079cec82 capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x11e18d2c capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1a6bdfdf capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x327437c0 capi20_put_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5e3e1821 detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x68f69858 capi_ctr_suspend_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x74947136 capi_ctr_down
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xce4e9cfa capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd9dca2e2 attach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xef200ffa capi20_register
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0700a185 b1_free_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x15ab8956 b1ctl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x40c30423 b1_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x46ed03f6 b1_load_t4file
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6792b261 b1_loaded
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x69e3382d avmcard_dma_free
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6afe2fa2 b1_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8b76ee44 b1_getrevision
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8e6347e0 b1_parse_version
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xaa4ee71f b1_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xad55df62 avmcard_dma_alloc
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xae675bca b1_alloc_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc7ea97be b1_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xedf32a95 b1_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf8d500c1 b1_load_config
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4cc73210 b1dma_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6870b030 t1pci_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8bf5235a b1dma_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8d4ceefc b1dma_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x90264a02 b1dma_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x93bc4e07 b1dma_reset
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc6e48d06 b1dmactl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xfc279785 b1pciv4_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xfe2345bd b1dma_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1
+EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read
+EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0xc6cc3c10 proc_net_eicon
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x41594ea2 mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x5c1d472d mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x6ef02aab mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x767aaa81 mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x0f138d29 mISDNisar_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x250f8cba mISDNisar_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x427ea441 FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x5ee7fdf2 hisax_init_pcmcia
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa9a1ee40 FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb4870f64 FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x4ce33f6a isac_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xc1a4bb7a isac_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xe01c3cae isacsx_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf49c1c3b isac_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf73b5475 isacsx_setup
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x33383801 isdn_ppp_unregister_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x66dd853c isdn_ppp_register_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x75e6d142 register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x080690e3 recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1645c40f mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1d1c6cba recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x39cc5f30 dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4c5c788d queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x656b2944 get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x75d8a378 mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7736e057 get_next_dframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8b54907a mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9b4ac028 recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9be986bc mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa6116d93 mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbafe7be1 mISDN_freedchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc1a230ef mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc80f01eb confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd1fd3f49 mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd7cd8344 recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xde4bad2c bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf0a32745 create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf5893b5d recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf6eea52f l1_event
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xff9bf348 mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register
+EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul
+EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp
+EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv
+EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page
+EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi
+EXPORT_SYMBOL drivers/media/IR/ir-core 0xb9e456f4 ir_raw_handler_register
+EXPORT_SYMBOL drivers/media/IR/ir-core 0xbe4b6c49 ir_raw_handler_unregister
+EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x31f366b7 max2165_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x04ddeb1c mc44s803_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x73c85e44 mt2060_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0xc37094dd mt2131_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x7ec36b38 mt2266_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xb0d5e93b mxl5005s_attach
+EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xdc744a9f qt1010_attach
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x414bc211 xc2028_attach
+EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xe567963d xc5000_attach
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x035d76dc flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0868b732 flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x15d4a553 flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x19b651f6 flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1c09fea5 flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1e2f8209 flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2afaa24b flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3010b615 flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4a8295db flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7c80573e flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9a122c4b flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa334c7fc flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa512ad66 flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xabad6272 flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc436921c flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcb7693b7 flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe46e3daf flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfa55340f flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfdf0bdc2 flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xffc6f3b9 flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x0d07c87c bt878_stop
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x4105ab8e bt878_start
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xdbd41fa4 bt878_device_control
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xf5857239 bt878
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x349dabb9 write_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x49f4718f dst_error_recovery
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4af1e7f0 dst_wait_dst_ready
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x539c1bd3 read_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x683d8f3e dst_error_bailout
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x85d9063d rdc_reset_state
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x8bad1ac4 dst_attach
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xb8d5a3e8 dst_comm_init
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xcaa523ee dst_pio_disable
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x0ee9b81d dst_ca_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00dee856 dvb_ca_en50221_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0ea4303b dvb_register_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x18287c59 dvb_unregister_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1de5dde2 dvb_ringbuffer_flush
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x261ad174 dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2c202fc3 dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x40714012 dvb_dmx_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x43286494 dvb_dmx_swfilter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x48fd6544 dvb_frontend_reinitialise
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4ee8ee89 dvb_dmx_swfilter_packets
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x53e71396 dvb_dmx_swfilter_204
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x67cc17e4 dvb_dmx_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x688c2da8 dvb_ringbuffer_empty
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x79e00c15 dvb_unregister_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7ae9387e dvb_net_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7f0d62ae dvb_ca_en50221_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x84528575 dvb_dmxdev_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x85d609e0 dvb_register_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x861565f6 dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x863bf410 dvb_ringbuffer_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x88dffd14 dvb_ringbuffer_free
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8b6b12c8 dvb_net_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90f80ed0 dvb_generic_ioctl
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9e889bd9 dvb_ringbuffer_avail
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb4efdcd5 dvb_frontend_detach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc6dcbe2c dvb_register_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc74b274e dvb_generic_open
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcb185e2c dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcf4e3f18 dvb_dmxdev_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd2e30721 dvb_ringbuffer_read_user
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf60b6219 dvb_unregister_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf764cbf8 dvb_ringbuffer_read
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfc3b495c dvb_ringbuffer_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfcad231a dvb_generic_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x15517e9b dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4edf748a dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x67e7b0f1 usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6a79339e dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa679cc5f dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd3c16d8f dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xdaf299f9 dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x55089278 af9005_rc_decode
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00f15a0d dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0f84fe57 dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x300acd42 dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x36d6954f dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x80fe6de6 dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x81e46b7a dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb048a5fa dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xbb0de0d7 dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd8ae431b dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xda4e5812 dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf1abc696 dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xa74d0451 af9013_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x4072364d atbm8830_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x2980efb1 au8522_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xa9300a7e bcm3510_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xdbe99544 cx22700_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x861d1353 cx22702_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x30833517 cx24110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x66f33455 cx24113_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x72e52cac cx24113_agc_callback
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xc988a40f cx24116_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x1f851884 cx24123_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xc360a4c9 cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x37aba12c dib0070_get_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x75767cd1 dib0070_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7a28d6ca dib0070_set_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x85c55236 dib0070_ctrl_agc_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xc3c1c0bb dib0070_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x02a2665b dib0090_get_current_gain
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0573ab26 dib0090_pwm_gain_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x1a030499 dib0090_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4776fdf9 dib0090_dcc_freq
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xa08ff883 dib0090_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc16fb847 dib0090_gain_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xcb811be4 dib0090_register
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xda92f05e dib0090_get_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x30522f79 dib3000mb_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x1f186aa8 dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x2bba4b37 dib3000mc_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x2d6b5aa8 dib3000mc_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x79f2d3e9 dib3000mc_pid_parse
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa01f6ed2 dib3000mc_set_config
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xcdc152db dib3000mc_pid_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x0d71141e dib7000m_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x337503ac dib7000m_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x321746d7 dib7000pc_detection
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4adcf958 dib7000p_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x63115652 dib7000p_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x71185f1d dib7000p_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7de02980 dib7000p_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7eb5d823 dib7000p_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xaebb785a dib7000p_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xcaad46da dib7000p_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1d625c8b dib8000_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x301d17bf dib8000_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x41e3d669 dib8000_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x7dfa5f80 dib8000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x7f3ef192 dib8000_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x977e4a3a dib8000_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x9ad3d281 dib8000_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc669554e dib8000_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xcd7724a8 dib8000_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe02882d6 dib8000_pwm_agc_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xeab84fe3 dib8000_get_adc_power
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x1d3a141d dibx000_init_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x363c395f dibx000_reset_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x953a73a1 dibx000_exit_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xfc76f10e dibx000_get_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x14c0de02 ds3000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xbb7f156a dvb_pll_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x5b1b0ec2 isl6405_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x79214f5d isl6421_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x21d625b9 isl6423_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xb19818f1 itd1000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xeed2c1a5 l64781_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x39ac4f38 lgdt3305_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x8c5e67cb lgdt330x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xd9adb8d3 lgs8gxx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x4c5ead37 lnbp21_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xac5c5730 lnbh24_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x0c57042f mb86a16_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xd86fe66a mt312_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x426cb473 mt352_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x285f8a8e nxt200x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xafd5eeb9 nxt6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x4829f36c or51132_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x003a940e or51211_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xcf5fc3bb s5h1409_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x10881096 s5h1411_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x0c00e7ba s5h1420_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xe21b36ad s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x4a333d9a si21xx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x5963f581 sp8870_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x6beb99eb sp887x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x041700fd stb0899_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0xdc68c569 stb6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x6ea26abd stb6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x9da1a1cb stv0288_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x6108071f stv0297_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xe2788218 stv0299_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xd2278468 stv0900_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xf6722d3c stv090x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x5b006c9a stv6110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x15d7dd33 stv6110x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xf55f18a4 tda10021_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x52649c59 tda10023_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x1dd6d335 tda10048_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x9dad7732 tda10045_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xf4bc568e tda10046_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x838a7667 tda10086_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xf2bd9a38 tda8083_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0xd52b4cf1 tda8261_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xdc0b7a28 tda826x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x702bcf7f tua6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xece90acc ves1820_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x1e7ec1e5 ves1x93_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x4a736a16 zl10036_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xadcfda27 zl10039_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x49abe6c9 zl10353_attach
+EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x2f2dbe64 ttpci_eeprom_parse_mac
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xd382c712 ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xf845c6d8 ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x60806228 bttv_get_pcidev
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x860355e6 bttv_sub_register
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xdb9357a3 bttv_sub_unregister
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x2299d7f4 btcx_riscmem_alloc
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xff80d026 btcx_riscmem_free
+EXPORT_SYMBOL drivers/media/video/cpia 0x105fc11b cpia_unregister_camera
+EXPORT_SYMBOL drivers/media/video/cpia 0xb04fd02f cpia_register_camera
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x1598a92f cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x27e3bf1e cx18_release_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x4e982256 cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x848d2408 cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xc3bafad8 cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x627ceed0 cx231xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xdbdcfb27 cx231xx_register_extension
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x258d5604 vp3054_i2c_probe
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xe693fb7e vp3054_i2c_remove
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x01cef221 cx88_get_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x154516dc cx8800_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x3f35f161 cx88_set_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x7bd7d8eb cx88_set_freq
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb9389711 cx88_video_mux
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xdc0268aa cx88_enum_input
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x50c90fc6 cx8802_buf_prepare
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x63eb7921 cx8802_get_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x661942f9 cx8802_unregister_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8f2d851c cx8802_register_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa20d5486 cx8802_cancel_buffers
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xefce02e0 cx8802_buf_queue
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x046b413c cx88_free_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0ab97dd9 cx88_reset
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x12bdbed9 cx88_ir_stop
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x190ed388 cx88_risc_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2a0b1586 cx88_set_tvaudio
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2d39408a cx88_sram_channel_setup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x365e143a cx88_core_irq
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3e6ae275 cx88_set_stereo
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4fc51d97 cx88_wakeup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5d294101 cx88_sram_channel_dump
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x65cf1894 cx88_ir_start
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6c6cb9af cx88_core_get
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7214129e cx88_newstation
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x886fff7c cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b3e1518 cx88_set_scale
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa23f2830 cx88_risc_stopper
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xaf792e0e cx88_set_tvnorm
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc58c7314 cx88_vdev_init
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf71b5c32 cx88_core_put
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf8ebd0ec cx88_shutdown
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfee7f6fd cx88_risc_databuffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xffffa428 cx88_get_stereo
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x7512f545 em28xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xf0b29ec3 em28xx_register_extension
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x16d40c0f gspca_frame_add
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x1f38cb8d gspca_dev_probe
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x21c622b2 gspca_resume
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x477e8012 gspca_auto_gain_n_exposure
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xb28c9f4a gspca_suspend
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xd3d3edcb gspca_disconnect
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xe73ed351 gspca_get_i_frame
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0bc7cf3e ivtv_set_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x12989bc6 ivtv_udma_alloc
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x12c2c43d ivtv_udma_prepare
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3e054fbc ivtv_api
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x458555db ivtv_init_on_first_open
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5d0b8b8c ivtv_udma_unmap
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9d33f45e ivtv_vapi_result
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd2c02a3a ivtv_udma_setup
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xddcd858b ivtv_clear_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe9af17f4 ivtv_vapi
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xeb24b3ac ivtv_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x188bc195 saa7134_pgtable_build
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x2a993e75 saa7134_dmasound_exit
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4b85fe77 saa7134_pgtable_free
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4e764a5e saa7134_set_dmabits
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4f582d46 saa7134_set_gpio
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x54b73a3c saa7134_pgtable_alloc
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8546fd0d saa7134_tvaudio_setmute
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x85e638d2 saa7134_devlist_lock
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x9e8ec820 saa7134_dmasound_init
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa5882112 saa7134_ts_unregister
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xcd7bc82a saa7134_ts_register
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xfaa40cfa saa_dsp_writel
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x632e80bb soc_camera_apply_sensor_flags
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xb5377b92 soc_camera_host_unregister
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xd8a5211c soc_camera_host_register
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xffb3de9a soc_camera_xlate_by_fourcc
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x080194e5 tveeprom_read
+EXPORT_SYMBOL drivers/media/video/tveeprom 0xe100c4a8 tveeprom_hauppauge_analog
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x4556cdc2 usbvideo_register
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x47ab9093 usbvideo_RegisterVideoDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x5126a5cd usbvideo_DeinterlaceFrame
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x858c91a3 usbvideo_AllocateDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xa675be1a usbvideo_Deregister
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xeff89e03 usbvideo_TestPattern
+EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x89dd1829 v4l_compat_translate_ioctl
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x82250075 v4l2_chip_ident_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xae2e39c1 v4l2_chip_match_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x1d42a50c v4l2_m2m_job_finish
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x6111efc1 v4l2_m2m_mmap
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x842e4383 v4l2_m2m_get_vq
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xe2e52ae8 v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x28435429 videobuf_dvb_find_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x6e547cff videobuf_dvb_register_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x769d60b6 videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xac69a8d4 videobuf_dvb_dealloc_frontends
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb4f4dbf9 videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xe139a67d videobuf_dvb_get_frontend
+EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period
+EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x1ae8f1fb video_register_device_no_warn
+EXPORT_SYMBOL drivers/media/video/videodev 0x32931a71 video_device_release_empty
+EXPORT_SYMBOL drivers/media/video/videodev 0x33a66255 video_device_release
+EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl
+EXPORT_SYMBOL drivers/media/video/videodev 0x6f415598 video_usercopy
+EXPORT_SYMBOL drivers/media/video/videodev 0x7f06dcd4 video_ioctl2
+EXPORT_SYMBOL drivers/media/video/videodev 0x95a3e231 video_unregister_device
+EXPORT_SYMBOL drivers/media/video/videodev 0xa88b9b6c video_devdata
+EXPORT_SYMBOL drivers/media/video/videodev 0xdfdde17f video_device_alloc
+EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct
+EXPORT_SYMBOL drivers/media/video/videodev 0xeaea887c video_register_device
+EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x0f04ff1a videocodec_attach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x15ef80ff videocodec_unregister
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xa7361cd2 videocodec_detach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xd8cc3561 videocodec_register
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x12be40f0 memstick_alloc_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x13b48244 memstick_free_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x21716c03 memstick_next_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x3a7861c0 memstick_unregister_driver
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x5e97f67d memstick_new_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x61175843 memstick_register_driver
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x9c375da2 memstick_resume_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x9ed2ab01 memstick_detect_change
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5987a36 memstick_init_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xd058792c memstick_suspend_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xdd529d2c memstick_add_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xf145db31 memstick_set_rw_addr
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xfbfbc116 memstick_remove_host
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x019aa763 mpt_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x059b2e00 mpt_free_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x16cc447f mptbase_sas_persist_operation
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x17f6a487 mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2219ec17 mpt_config
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x237e97ed mpt_event_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x26957113 mpt_detach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2df32585 mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x321338ba mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x41c4f16c mpt_findImVolumes
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x47641b0d mpt_reset_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x54dad4f3 mpt_HardResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x59f30589 mpt_attach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x65af4be4 mpt_GetIocState
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6fedd111 mpt_device_driver_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x831fc007 mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x848e5263 mpt_get_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8c2bf2bc mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa3e5bfd9 mpt_alloc_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa7f64167 mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xac74933a mpt_put_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb6ef40ea mpt_resume
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc2718bfc mpt_verify_adapter
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcdc0f4cf mpt_print_ioc_summary
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd752bc2b mpt_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd7caa7fc mpt_free_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe13f80be mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe6aba79a mpt_send_handshake_request
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf6f79353 mpt_halt_firmware
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1b55c7b7 mptscsih_change_queue_depth
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x22f6b560 mptscsih_event_process
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x236ac42f mptscsih_proc_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2690beed mptscsih_shutdown
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x31856214 mptscsih_taskmgmt_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x38e381ac mptscsih_dev_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x51cd96e9 mptscsih_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5b610074 mptscsih_is_phys_disk
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5cd8e80d mptscsih_scandv_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5fc99418 mptscsih_abort
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6f7bd230 mptscsih_host_attrs
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7d1d44cc mptscsih_ioc_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7dab437a mptscsih_io_done
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x80217896 mptscsih_remove
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x84b90a1b mptscsih_bios_param
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9ce827e0 mptscsih_host_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa390d7a1 mptscsih_qcmd
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa5a357b8 mptscsih_bus_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb1839203 mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb4f63f4e mptscsih_slave_configure
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc63fc2f7 mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xceba55b4 mptscsih_resume
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd0cf2804 mptscsih_raid_id_to_num
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdc36f159 mptscsih_slave_destroy
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xddfbb271 mptscsih_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xff269fc4 mptscsih_get_scsi_lookup
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0d4d9573 i2o_msg_get_wait
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x14c40e93 i2o_driver_notify_device_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1b5a654e i2o_exec_lct_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1c6d582a i2o_parm_field_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3713e352 i2o_find_iop
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x416374d4 i2o_event_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x57654a35 i2o_driver_notify_controller_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x860f5434 i2o_status_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8c4e9b5a i2o_driver_unregister
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8e2f30e0 i2o_parm_issue
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa0895a6a i2o_driver_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa263b4bf i2o_driver_notify_device_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb43fa0e9 i2o_parm_table_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbddbbfdf i2o_msg_post_wait_mem
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc3c81a88 i2o_device_claim_release
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd11be2bf i2o_device_claim
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe101af19 i2o_iop_find_device
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf9726cae i2o_driver_notify_controller_add_all
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xc9c31206 pasic3_read_register
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xd5617b21 pasic3_write_register
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x07c5579f mc13783_lock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x091f558c mc13783_reg_write
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x192b920c mc13783_reg_read
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x1c3d6570 mc13783_irq_ack
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2beb18e4 mc13783_irq_status
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3fce8b92 mc13783_irq_request
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x9af099be mc13783_reg_rmw
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xabc10f18 mc13783_irq_request_nounmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xbea31100 mc13783_irq_mask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xca04f7cd mc13783_irq_free
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xdd338810 mc13783_irq_unmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe284bb62 mc13783_unlock
+EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2
+EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1
+EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib
+EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led
+EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw
+EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x6174680f ad_dpot_remove
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xeee93d4b ad_dpot_probe
+EXPORT_SYMBOL drivers/misc/c2port/core 0x42ec0439 c2port_device_unregister
+EXPORT_SYMBOL drivers/misc/c2port/core 0x86fd7b08 c2port_device_register
+EXPORT_SYMBOL drivers/misc/ioc4 0x3821bc4a ioc4_register_submodule
+EXPORT_SYMBOL drivers/misc/ioc4 0x5342f33e ioc4_unregister_submodule
+EXPORT_SYMBOL drivers/misc/tifm_core 0x036cb5fd tifm_add_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x16040f67 tifm_unregister_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x271672f7 tifm_has_ms_pif
+EXPORT_SYMBOL drivers/misc/tifm_core 0x2a1cdc4a tifm_register_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x2a782030 tifm_unmap_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work
+EXPORT_SYMBOL drivers/misc/tifm_core 0x44934c60 tifm_alloc_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x498c9589 tifm_remove_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x588b7a2c tifm_alloc_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xb6d5a822 tifm_eject
+EXPORT_SYMBOL drivers/misc/tifm_core 0xbf4fea46 tifm_map_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0xc52015ee tifm_free_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xcc0c7ef3 tifm_free_device
+EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xbaad9cae mmc_cleanup_queue
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x5965f692 cfi_varsize_frob
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x90545bbb cfi_fixup
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd5fe87bd cfi_read_pri
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x406b75f7 do_map_probe
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x588876d4 register_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x5c33c8a1 map_destroy
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb3ebb392 unregister_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x53a01ac8 mtd_do_chip_probe
+EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xa4c79886 lpddr_cmdset
+EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x549538e5 simple_map_init
+EXPORT_SYMBOL drivers/mtd/mtd 0x62f90ab0 add_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtd 0xc088c09b del_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x3bd091b3 mtd_concat_create
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x6099d341 mtd_concat_destroy
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x71c0c287 nand_default_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand 0xca168826 nand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x61e49354 nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x8ea22201 nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x046b1197 onenand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xa3346f32 onenand_default_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xb5c62be9 onenand_addr
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xb9ce8e5f flexonenand_region
+EXPORT_SYMBOL drivers/net/8390 0x1d19d38a ei_tx_timeout
+EXPORT_SYMBOL drivers/net/8390 0x345a35bc ei_open
+EXPORT_SYMBOL drivers/net/8390 0x4d76455b __alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/8390 0x7822c82b ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390 0x7aeb75c0 NS8390_init
+EXPORT_SYMBOL drivers/net/8390 0x97b756d7 ei_get_stats
+EXPORT_SYMBOL drivers/net/8390 0xa5736edc ei_netdev_ops
+EXPORT_SYMBOL drivers/net/8390 0xace40206 ei_close
+EXPORT_SYMBOL drivers/net/8390 0xb6402000 ei_poll
+EXPORT_SYMBOL drivers/net/8390 0xc1727a7f ei_start_xmit
+EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt
+EXPORT_SYMBOL drivers/net/8390p 0x1c5751bd eip_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390p 0x3fbb0f1a __alloc_eip_netdev
+EXPORT_SYMBOL drivers/net/8390p 0x4e926e17 eip_close
+EXPORT_SYMBOL drivers/net/8390p 0x505910b7 eip_start_xmit
+EXPORT_SYMBOL drivers/net/8390p 0x72d797bf eip_get_stats
+EXPORT_SYMBOL drivers/net/8390p 0x847c881c eip_poll
+EXPORT_SYMBOL drivers/net/8390p 0xb448b3da eip_tx_timeout
+EXPORT_SYMBOL drivers/net/8390p 0xb663e226 eip_interrupt
+EXPORT_SYMBOL drivers/net/8390p 0xba17742e eip_netdev_ops
+EXPORT_SYMBOL drivers/net/8390p 0xdda204d3 NS8390p_init
+EXPORT_SYMBOL drivers/net/8390p 0xfa4c3075 eip_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0c721908 arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4ab1bde4 alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x58b78ab4 arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x60f10ee2 arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6e23d002 arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x980e78b4 arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa42ad592 arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xaec02e60 arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd8be7eb5 arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xedfa170b arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x7a44ff87 com20020_found
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0xa172a1e0 com20020_check
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0xf4204310 com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/bnx2 0x150cde16 bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/bnx2x 0xc2561327 bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/cnic 0x87061c39 cnic_register_driver
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1b29dc7d t3_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3bee9f1f cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x45ee7679 t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4cb11eb5 cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4da50c08 cxgb3_register_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5b7f0875 dev2t3cdev
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5e343bf4 cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7a055b7c cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8b8facb5 cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa4c1e9a1 cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa4dbed3a t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa51f974f t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa75e737e cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc1c74b60 cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfb54a37c cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfe17eafe t3_l2e_free
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x010d082e cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x0a6fcc71 cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x106c3862 cxgb4_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x211e2c6e cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x24c7e500 cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6251999e cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6a9974cf cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x73041740 cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x730ecfb0 cxgb4_create_server6
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8e5ab2b3 cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x93b892f6 cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x97be318f cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd77c21f0 cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe78155e5 cxgb4_netdev_by_hwid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe9af18d3 cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf243578c cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf3dd8056 cxgb4_create_server
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x2d81470d hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x660f32af hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9c431f25 hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc0124aae hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xee200f97 hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2fec62c7 sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x44591e4c irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4502b766 sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x787175cc irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7aba5885 sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x82decacf sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd28d9462 sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xea132ced sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf7252eb9 sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfd35a8a4 sirdev_get_instance
+EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage
+EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl
+EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart
+EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag
+EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe
+EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an
+EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok
+EXPORT_SYMBOL drivers/net/mii 0x2c35c265 mii_check_media
+EXPORT_SYMBOL drivers/net/mii 0x34386496 mii_ethtool_sset
+EXPORT_SYMBOL drivers/net/mii 0x5aa3e4f7 mii_check_gmii_support
+EXPORT_SYMBOL drivers/net/mii 0x5e57cb3f mii_ethtool_gset
+EXPORT_SYMBOL drivers/net/mii 0x815cd5e5 mii_check_link
+EXPORT_SYMBOL drivers/net/mii 0xae2d3388 mii_nway_restart
+EXPORT_SYMBOL drivers/net/mii 0xd982bd2d generic_mii_ioctl
+EXPORT_SYMBOL drivers/net/mii 0xe4e96813 mii_link_ok
+EXPORT_SYMBOL drivers/net/pppox 0x9aefa94c pppox_ioctl
+EXPORT_SYMBOL drivers/net/pppox 0x9ef6612e pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/pppox 0xcd9b7d0a register_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/sungem_phy 0x45031fe3 mii_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x7d0549d7 tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x9cd53779 tmsdev_term
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xab86e75c tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc41cd58b tms380tr_close
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xdd53bce9 tms380tr_open
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x0d83909e alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x14dee49a unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x1bf3bc72 register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x272ba276 hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x392ea316 hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x754810b7 attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x8c2f30b1 hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x8fc3f71f unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xa35eea1a detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xbb07d002 hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xcf111558 hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port
+EXPORT_SYMBOL drivers/net/wan/z85230 0x18995fcd z8530_sync
+EXPORT_SYMBOL drivers/net/wan/z85230 0x213abac6 z8530_interrupt
+EXPORT_SYMBOL drivers/net/wan/z85230 0x21ed1d01 z8530_sync_txdma_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0x227877ea z8530_init
+EXPORT_SYMBOL drivers/net/wan/z85230 0x530f031b z8530_queue_xmit
+EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream
+EXPORT_SYMBOL drivers/net/wan/z85230 0x692b08a2 z8530_channel_load
+EXPORT_SYMBOL drivers/net/wan/z85230 0x92ccb26c z8530_sync_open
+EXPORT_SYMBOL drivers/net/wan/z85230 0x933c2194 z8530_sync_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0x9a6d268d z8530_null_rx
+EXPORT_SYMBOL drivers/net/wan/z85230 0x9fb54408 z8530_sync_dma_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0xa03eb5a4 z8530_nop
+EXPORT_SYMBOL drivers/net/wan/z85230 0xadb216a7 z8530_sync_dma_open
+EXPORT_SYMBOL drivers/net/wan/z85230 0xd1b45a69 z8530_shutdown
+EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230
+EXPORT_SYMBOL drivers/net/wan/z85230 0xf417181a z8530_describe
+EXPORT_SYMBOL drivers/net/wan/z85230 0xfefb0fd5 z8530_sync_txdma_open
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xb34fdde5 i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x07a838b0 init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x2a12323e stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x45f2981e reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0f8438b9 ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1242e3d6 ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x250d64e0 ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x75edfd3b ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x254384c3 ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x64d73aef ath9k_cmn_rx_skb_preprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x71afa2f3 ath9k_cmn_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x9ebc5e53 ath9k_cmn_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd0eae519 ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe6d8e919 ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xebb8b7cf ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x01600425 ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02e447e2 ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x034e34e1 ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x03f56908 ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x076ed92d ath9k_hw_keysetmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09ecf76a ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e462193 ath9k_hw_setcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e694a52 ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1765fd12 ath9k_hw_set_keycache_entry
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x18ca70e0 ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b10d8e0 ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b54e956 ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c47b19d ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1fa70cae ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x21095a3a ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a193e94 ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x386afe46 ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3954dce7 ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x39cfe292 ath9k_hw_procmibevent
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b39d585 ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f8f5def ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x401c18b6 ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x426349bb ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x478eefb1 ath9k_hw_stoppcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x486d2e08 ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a56f990 ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x502bf76a ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59d15f4e ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c5ec15b ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5eea0b9d ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60205036 ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x631ad267 ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63f3d6f6 ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x651664bc ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68520e2a ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b51da6c ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b5b1ce9 ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b9e23e2 ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7084d90b ath9k_hw_setmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72c5142d ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73e9cd6d ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75f79d78 ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76d80c12 ath9k_hw_stoptxdma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76e55a13 ath9k_hw_cleartxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x793fc1f7 ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79cb78c6 ath9k_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79ed4895 ath9k_hw_keyisvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c45dee0 ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e057cde ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8144f703 ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b3177ad ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d89c558 ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x911e27aa ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9508a91f ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x96c03a26 ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9efcbba3 ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f753e38 ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa036df55 ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa23c88c9 ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2b5c6f6 ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2b83e33 ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa93f1fef ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac80b1f7 ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb889778c ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3dd48bc ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc908eec ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xceada8ec ath9k_hw_extend_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcfaba91a ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd02ee55f ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0a607ee ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd54b5938 ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5d63f9b ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd71ec99d ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda830560 ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb18f28d ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf00810b ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe0b751d4 ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe23c1ddb ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed44b181 ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee4f7310 ath9k_hw_getcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4049afa ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff0affdb ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x994812f5 stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xb9a768bd init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xd082491c atmel_open
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x03d87618 hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0621cc1f hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1146ce33 hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1316807a hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1e886975 hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2161419b hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x333cb791 hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4f7dacbc hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5d469b2c hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6c9d8f86 prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6dffa4ef hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x821636bd hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x86c1a3e4 hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8f4dcf4a hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x94ad1803 hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x951dd3f6 hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x97b22e94 hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb7ab85e2 hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbd2a8e0c hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbe6a1c68 hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcf9900fb hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd20eff90 hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf01d52d8 hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf2c4b581 hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xff374283 hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x051c2f81 libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x262735ad libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2699698f libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3a2969b5 libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4b16ca18 libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x611e916a libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6d6a973a libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6e0a0e5c free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7244ec75 libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x74f21238 libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7902f30e libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x845157f1 libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x91591aa9 libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9cdcae19 libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9fb9a241 libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa79402e4 libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xab7deb19 alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xad7082fc libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc29f3003 libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc2a93cc0 libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdfa130a3 libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x00cac5bc iwl_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x01fc11df iwl_rate_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03f2e8c5 iwl_bg_start_internal_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x065e216c iwl_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x09b66478 iwl_rx_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0f9e2ebb iwl_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1182b743 iwl_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x13a46a5d iwl_set_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1488459e iwl_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14a2e067 iwl_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x176d9d41 iwl_init_sensitivity
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x18ea7fbf iwl_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a37692d iwl_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1aebf8d0 iwl_leds_background
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1f056e8f iwl_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21be8426 iwl_rf_kill_ct_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21e3e7d4 iwl_eeprom_check_version
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x22f8ad06 iwl_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x27073907 iwl_sta_rx_agg_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2ac68a81 iwl_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b0d5e14 iwl_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2c1c9160 iwlcore_eeprom_verify_signature
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2c27d3d3 iwl_rx_missed_beacon_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2e843da2 iwl_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2ef25279 iwl_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x31508296 iwl_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32917bef iwl_sensitivity_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x343073cc iwl_bg_scan_check
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37ed6286 iwl_tt_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x39f54f15 iwl_send_calib_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3e102b49 iwl_tt_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x410205c8 iwl_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41dc7efb iwl_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x42f7052e iwl_force_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x487885d7 iwl_set_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4ab2922c iwl_recover_from_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4b3bc2f3 iwl_dump_csr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4ba396d2 iwl_set_hw_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4ba3a6ec iwl_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e1a29c7 iwl_restore_default_wep_keys
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5093646a iwl_bg_abort_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50b97f67 iwl_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5143970c iwl_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x53df6491 iwl_sta_tx_modify_enable_tid
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x562f772b iwlcore_eeprom_release_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5a1c5f43 iwl_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5bedb6c6 iwlcore_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5d878614 iwl_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5f548be1 iwl_set_rxon_chain
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5f697a64 iwlcore_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x600e6de7 iwl_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6172d87c iwl_add_bssid_station
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6253c614 iwl_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62727d56 iwl_calib_set
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x67b259ac iwl_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x68a07500 iwl_remove_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6b094948 iwl_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c033b83 iwl_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6cc244d3 iwl_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7022cfc5 iwl_sta_modify_ps_wake
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x72f64e04 iwl_ht_enabled
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x736cff59 iwl_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7377d8ed iwl_chain_noise_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7b48b763 iwl_tx_ant_restriction
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x80185101 iwl_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x81d8d598 iwl_hw_detect
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8343c058 iwl_configure_filter
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x83cbb4d0 iwl_update_tkip_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85720fa6 iwl_bg_scan_completed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x867b94e6 iwl_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x87ab5334 iwl_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x87fd3f42 iwl_dump_fh
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a8a8a8a iwl_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8b1b297f iwl_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8c396c24 iwl_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8c9eb7db iwl_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8f6dbf1a iwl_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8fca2a81 iwl_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8ffceb54 iwl_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x902a0d35 iwl_free_tfds_in_queue
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x940c51aa iwlcore_rts_tx_cmd_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x94166cf1 iwl_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x98040641 iwl_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9b501967 iwl_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9d3a1549 iwl_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9dd4c33e iwl_led_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9f182af8 iwl_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa4ec575e iwl_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa53c1989 iwl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa6581e8c iwl_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa8933835 iwlcore_eeprom_enhanced_txpower
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa9157ab7 iwl_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa93e5d10 iwl_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa9498035 iwl_reply_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaa52360f iwl_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb166846a iwl_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb2547bf8 iwl_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb3dc7e81 iwl_tt_enter_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb52a6dee iwl_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb7756cc2 iwl_sta_rx_agg_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbac8aea5 iwl_free_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbefc26fc iwl_eeprom_get_mac
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc327f6e0 iwl_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc67f22d1 iwl_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc68dbff8 iwl_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc7505cc5 iwl_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc83af9ab iwl_sta_modify_sleep_tx_count
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcaa82ed9 iwl_tt_handler
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf688aef iwl_tt_exit_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd2131897 iwl_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd2aa7c20 iwl_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd36c09a1 iwl_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3d043c1 iwl_mac_beacon_update
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd5d0fc02 iwl_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd8aded7c iwl_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd93305ec iwl_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdd0d9e5d iwl_setup_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdfea9126 iwlcore_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe2fe4bc4 iwl_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe39b7837 iwlcore_eeprom_acquire_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xea2a46ec iwl_calib_free_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeba8bde7 iwl_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf02accbe iwl_good_plcp_health
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf334ec50 iwl_verify_ucode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa113bc7 iwl_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfb290223 iwl_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfb47b2b7 iwl_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfd268a72 iwl_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfd4c761d iwl_remove_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe3c51c6 iwl_reset_run_time_calib
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfffc55b1 iwl_toggle_tx_ant
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0d0a6dc7 orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3519366a free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3531dd07 orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x41241e29 orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x44a1eb51 orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x487fd785 orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5031644b alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x50c26af1 __orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x53fef7eb orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5a39bbc5 orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x71a2e6eb orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7c7592e5 orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbaae4c5f orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcd70211a orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf49f34ce __orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfe7d4d3c orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/parport/parport 0x09c9d198 parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL drivers/parport/parport 0x1553ae58 parport_claim_or_block
+EXPORT_SYMBOL drivers/parport/parport 0x1cccefed parport_ieee1284_read_byte
+EXPORT_SYMBOL drivers/parport/parport 0x24c86b23 parport_wait_peripheral
+EXPORT_SYMBOL drivers/parport/parport 0x292d6df9 parport_release
+EXPORT_SYMBOL drivers/parport/parport 0x300b6989 parport_register_device
+EXPORT_SYMBOL drivers/parport/parport 0x394d40bf parport_unregister_driver
+EXPORT_SYMBOL drivers/parport/parport 0x39d9d1d1 parport_ieee1284_write_compat
+EXPORT_SYMBOL drivers/parport/parport 0x450a2752 parport_claim
+EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt
+EXPORT_SYMBOL drivers/parport/parport 0x58783d70 parport_negotiate
+EXPORT_SYMBOL drivers/parport/parport 0x59efb162 parport_remove_port
+EXPORT_SYMBOL drivers/parport/parport 0x5a330f51 parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0x6817568c parport_ieee1284_epp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x903e183b parport_put_port
+EXPORT_SYMBOL drivers/parport/parport 0x90f1b7d0 parport_ieee1284_epp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler
+EXPORT_SYMBOL drivers/parport/parport 0x9eebe337 parport_find_number
+EXPORT_SYMBOL drivers/parport/parport 0xaa1fa146 parport_get_port
+EXPORT_SYMBOL drivers/parport/parport 0xb4bb149b parport_ieee1284_read_nibble
+EXPORT_SYMBOL drivers/parport/parport 0xcb86c56a parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0xccd5c149 parport_write
+EXPORT_SYMBOL drivers/parport/parport 0xcf220709 parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0xd0ccc679 parport_register_driver
+EXPORT_SYMBOL drivers/parport/parport 0xe195bf93 parport_set_timeout
+EXPORT_SYMBOL drivers/parport/parport 0xe1f04dc4 parport_read
+EXPORT_SYMBOL drivers/parport/parport 0xe23473da parport_wait_event
+EXPORT_SYMBOL drivers/parport/parport 0xeae0fda0 parport_register_port
+EXPORT_SYMBOL drivers/parport/parport 0xee6181e6 parport_unregister_device
+EXPORT_SYMBOL drivers/parport/parport 0xeefcf153 parport_announce_port
+EXPORT_SYMBOL drivers/parport/parport 0xef5bf7ae parport_find_base
+EXPORT_SYMBOL drivers/parport/parport 0xfd065ed4 parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL drivers/parport/parport_pc 0x3f6ebeef parport_pc_unregister_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0x691338fb parport_pc_probe_port
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x098858f4 pcmcia_request_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x135eb181 pcmcia_get_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x23541639 pcmcia_modify_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x27d3ba4e pcmcia_disable_device
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x29a922f4 pcmcia_map_mem_page
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3d785ee1 pcmcia_request_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x59aabbae pcmcia_access_configuration_register
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x65553aff pcmcia_loop_config
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6714c3f7 pcmcia_register_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7587f0b1 pcmcia_dev_present
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7a35d692 pcmcia_release_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x82c48d35 pcmcia_request_io
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9d938650 __pcmcia_request_exclusive_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbbd4fe4d pcmcia_loop_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc1126cf2 pcmcia_request_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe570e200 pcmcia_get_mac_from_cis
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf7657596 pcmcia_unregister_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0102b3a1 pcmcia_parse_uevents
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x03dca2e6 pcmcia_register_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x238a73e4 pcmcia_unregister_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3ce96a98 pcmcia_reset_card
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5ec86311 pcmcia_put_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x62610a8d pcmcia_parse_events
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x70d4742b pcmcia_get_socket_by_nr
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaf220c80 pcmcia_socket_class
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xda8b3a2a pcmcia_get_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe8e42807 pccard_register_pcmcia
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x2cf6fe4f pccard_static_ops
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x91aca677 pccard_nonstatic_ops
+EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command
+EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x5416d07c pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event
+EXPORT_SYMBOL drivers/scsi/53c700 0x0b2e4b62 NCR_700_release
+EXPORT_SYMBOL drivers/scsi/53c700 0x7fc3976c NCR_700_detect
+EXPORT_SYMBOL drivers/scsi/53c700 0xf13d9adc NCR_700_intr
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x02ee5bf5 fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x08c2235f fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x16a4b8a1 fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x45114b41 fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8892c3ac fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb7f3db24 fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd4e910e1 fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x04451aab fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x098a52ee libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x09c69f1d fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1308a54e fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1556abf2 fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1e1fab82 fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x20aaa77f fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x39f2b762 fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x405d3c72 fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4688c6a8 fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x51f5d038 fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f3e27a9 fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76c39afe fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7c9a082b fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8097a886 fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x840c337e fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x85c9b669 fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x94396e24 fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9664479d fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x98287d91 fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b7c92f6 fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9da0132a fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xadf5b308 fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xae52cab4 _fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaf860006 fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb41df1f2 fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb83000ae fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb9ede7e1 fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbaa8ee6a fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbd2cf22a fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc7d03914 fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb0c7bf8 fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce650b9a fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcef4495f fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcfc92eb3 fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe36ee89b fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe78f7947 fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe7c2ba18 fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe82d3fbc fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xebfa752b fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf1880475 fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf73ecec8 fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x13353687 mraid_mm_register_adp
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x027f1529 osd_req_remove_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x112d997e osd_execute_request_async
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x12f9bbc5 osd_req_flush_obsd
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x13413be9 osd_req_flush_collection
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x228c5b26 osd_req_add_set_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2838897c osd_start_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x29ff45eb osd_req_add_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2de567bd osd_req_list_dev_partitions
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2f23ced8 osd_req_set_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x32b089be osd_req_decode_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x36240528 osd_req_flush_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x365e917b osd_dev_fini
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x383fa1e3 osd_req_create_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x45f5fbed osd_auto_detect_ver
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x47761722 osd_req_write_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x60b3d738 osd_req_read
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x66a05934 osd_req_write
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6ad933db osd_req_get_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6cd2c146 osd_req_format
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7289f9be osd_execute_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x78721dbb osd_req_list_partition_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7f1cdf68 osd_req_list_partition_collections
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x84cbb653 osd_finalize_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x909690c0 osd_req_add_get_attr_page
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9de51b45 osd_dev_init
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa520f15d osd_req_read_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb959db5a osd_req_list_collection_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc39540f8 osd_req_flush_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcee3ed1d osd_req_remove_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xde150521 osd_end_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe6f002d7 osd_req_decode_sense_full
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe7789780 osd_req_create_partition
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x0a276857 osduld_put_device
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x1cd3a645 osduld_path_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x2e06c626 osduld_device_info
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x81f8ad6e osduld_register_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xa2d3fd47 osduld_device_same
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xb7e1f32e osduld_info_lookup
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1345d0bf qlogicfas408_biosparam
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x6305d4f3 qlogicfas408_abort
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x66544e36 qlogicfas408_disable_ints
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x7ec43214 qlogicfas408_info
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8a17b873 qlogicfas408_queuecommand
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd8d6c481 qlogicfas408_bus_reset
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup
+EXPORT_SYMBOL drivers/scsi/raid_class 0x457a2ecb raid_class_release
+EXPORT_SYMBOL drivers/scsi/raid_class 0x844d4193 raid_component_add
+EXPORT_SYMBOL drivers/scsi/raid_class 0x8876d7ad raid_class_attach
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x04005dd7 fc_host_post_vendor_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0cdd9c62 fc_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x182ef890 fc_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x25760af3 fc_remote_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2611144a fc_block_scsi_eh
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3233aa2d fc_remote_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3711f90e scsi_is_fc_vport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3ad8d216 fc_host_post_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7184ca87 fc_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8e8b3ea8 scsi_is_fc_rport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe7c514d0 fc_vport_terminate
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf637109e fc_vport_create
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xff6bf1b3 fc_remote_port_rolechg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x01dc0548 sas_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x03794b48 scsi_is_sas_rphy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0bac56dd sas_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0d30e9f3 sas_phy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0ec10907 sas_port_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x16f080a9 sas_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x17e8fd16 sas_remove_children
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1ab73162 sas_port_mark_backlink
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2a74a4c6 scsi_is_sas_port
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x401ec708 sas_port_delete_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x45ce4e5c sas_rphy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4a6657c7 sas_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x70485d89 sas_port_add_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x82e44147 sas_phy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8af237f8 sas_end_device_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8b46bca5 sas_phy_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9a1d7c83 sas_port_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa10b5b84 sas_phy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa145cdd1 sas_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa2939610 sas_rphy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb126e09b sas_rphy_remove
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc1021e64 sas_expander_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc32ed00d sas_read_port_mode_page
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdf3ee208 sas_port_alloc_num
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe2063942 sas_rphy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe562a8c0 scsi_is_sas_phy
+EXPORT_SYMBOL drivers/ssb/ssb 0x1b8f877d ssb_driver_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0x1e57d9e9 ssb_clockspeed
+EXPORT_SYMBOL drivers/ssb/ssb 0x2ffe0efa ssb_dma_set_mask
+EXPORT_SYMBOL drivers/ssb/ssb 0x366450fd __ssb_driver_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x3ef18a1a ssb_dma_translation
+EXPORT_SYMBOL drivers/ssb/ssb 0x4af0bbad ssb_bus_suspend
+EXPORT_SYMBOL drivers/ssb/ssb 0x6c79fe46 ssb_bus_may_powerdown
+EXPORT_SYMBOL drivers/ssb/ssb 0x6dff3db9 ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL drivers/ssb/ssb 0x7944ecc4 ssb_bus_resume
+EXPORT_SYMBOL drivers/ssb/ssb 0x7e1ce0db ssb_bus_sdiobus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x7fed4c3f ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL drivers/ssb/ssb 0xabf64702 ssb_pcihost_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xaf2b2d04 ssb_dma_free_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0xbc952544 ssb_device_is_enabled
+EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base
+EXPORT_SYMBOL drivers/ssb/ssb 0xc4c47e62 ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0xc4f3ad53 ssb_bus_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0xca839045 ssb_dma_alloc_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0xcc8d62d7 ssb_bus_powerup
+EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size
+EXPORT_SYMBOL drivers/ssb/ssb 0xd9618ba8 ssb_bus_pcibus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xdc3bb961 ssb_chipco_gpio_control
+EXPORT_SYMBOL drivers/ssb/ssb 0xe1947bd8 ssb_set_devtypedata
+EXPORT_SYMBOL drivers/ssb/ssb 0xe91eb10f ssb_device_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0xfed937ac ssb_device_disable
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x033287bf comedi_buf_get
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x144d5c48 comedi_driver_unregister
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x18df47c8 comedi_buf_write_alloc
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4051b9f1 comedi_check_chanlist
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x660544c8 comedi_buf_put
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x78050d29 comedi_event
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8339ed0b comedi_buf_read_n_available
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x9280fece comedi_driver_register
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x970340d2 comedi_error
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xb4cf4f26 comedi_buf_read_free
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc0a63187 comedi_buf_read_alloc
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xd568be55 comedi_get_subdevice_runflags
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdcb7c680 comedi_buf_memcpy_to
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe572f491 comedi_buf_memcpy_from
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xed922956 comedi_buf_write_free
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x66ddea2f subdev_8255_cleanup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x7a97b81a subdev_8255_interrupt
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xa2c88e9d subdev_8255_init
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xf96e5674 subdev_8255_init_irq
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x07ac97cc cfc_write_array_to_buffer
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xc5a2bcd8 cfc_handle_events
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xd57a5117 cfc_read_array_from_buffer
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x0af610b9 mite_release_channel
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x146bc558 mite_dma_tcr
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x192cfa56 mite_buf_change
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x19473847 mite_get_status
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x45e5abd2 mite_setup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x60ed55ed mite_dma_arm
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x63933000 mite_setup2
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6a017351 mite_bytes_in_transit
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6a96ba5e mite_bytes_read_from_memory_ub
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6d2f7f14 mite_prep_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x762e5368 mite_bytes_written_to_memory_lb
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x776b53a2 mite_done
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x9a4b6818 mite_request_channel_in_range
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xcb465747 mite_devices
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xcfe2a0f7 mite_bytes_read_from_memory_lb
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xd35a49c1 mite_bytes_written_to_memory_ub
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xde994197 mite_dma_disarm
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdfe12c69 mite_sync_output_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe6bc521e mite_unsetup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf3b6ec72 mite_sync_input_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x13971f05 subdev_700_init
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x22b33437 subdev_700_interrupt
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x7d127b1c subdev_700_init_irq
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xbb48ccaa subdev_700_cleanup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0xf250fac1 comedi_pcm_cmdtest
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x29bd0313 comedi_dio_bitfield
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x50bd0ba7 comedi_find_subdevice_by_type
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x71b2dc91 comedi_dio_config
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x74a8c943 comedi_open
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x80f1ceee comedi_get_n_channels
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xcfea465b comedi_close
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x0edd600c cx25821_dev_unregister
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x3c886e20 cx25821_dev_get
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x47441942 cx25821_sram_channel_setup
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x6dbaa9ec cx25821_set_gpiopin_direction
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x784853c3 cx25821_print_irqbits
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x7a8c2045 cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xa2c5931d cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xc8797d07 cx25821_sram_channel_dump
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xd5ba3572 cx25821_risc_databuffer_audio
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x04b2930b go7007_remove
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x16376163 go7007_snd_remove
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x3957539e go7007_boot_encoder
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x53bd9a5b go7007_parse_video_stream
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x5f872b74 go7007_read_addr
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xaf6fdddb go7007_alloc
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xdc19a8f7 go7007_read_interrupt
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xe89cf657 go7007_register_encoder
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xf96eedda go7007_snd_init
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x10a885b7 hv_cb_utils
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x253f3d14 vmbus_get_interface
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4102ac95 VmbusChannelRecvPacket
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x7740f07b vmbus_child_driver_unregister
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x77ff9d0f vmbus_child_driver_register
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x848c170c VmbusChannelSendPacket
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1081ccb9 iio_trigger_attach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x11a48c13 iio_scan_el_show
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x19457dd1 iio_ring_buffer_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1c86949c iio_store_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x25cf04a7 iio_scan_el_ts_show
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2f338f4a iio_add_event_to_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x308b5ac2 iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3d446dbf iio_free_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3e40b00b iio_trigger_poll
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4bacafa3 iio_write_ring_length
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x56cfe665 iio_trigger_read_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x592875b0 iio_read_const_attr
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x604edc08 iio_register_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6fbbf9de iio_allocate_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x78e02c28 __iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x79935af6 iio_read_ring_length
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7c697f4a iio_scan_el_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8096949b iio_scan_el_ts_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x83f41d0f iio_trigger_notify_done
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x893f725d iio_free_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8a3afa7a iio_device_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9182d5a4 iio_device_unregister_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x99ceb4e4 iio_unregister_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9bfa4969 iio_read_ring_bps
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa744e095 iio_trigger_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xac471936 iio_allocate_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xae536d23 iio_trigger_dettach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb0e81791 iio_free_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb2fb0779 iio_push_or_escallate_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb60bef1c iio_get_new_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbe4ff69e iio_device_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc0555455 iio_bus_type
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc541d2e0 iio_push_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd3300b1c iio_ring_buffer_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd67ff634 iio_ring_buffer_init
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd682c80f iio_trigger_find_by_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xde5062ca iio_remove_event_from_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfbe8a030 iio_device_register_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfd73ce73 iio_trigger_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xff49d118 iio_show_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x01124c8a iio_sw_rb_free
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x1061f10e iio_read_last_from_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x10e9a75b iio_mark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x1a0d56b5 iio_sw_rb_allocate
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x2024ecb1 iio_store_to_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x5c61413a iio_get_length_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6b3008c4 iio_request_update_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6b6e2d23 iio_unmark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6f5faa8c iio_get_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x8f78e970 iio_set_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xa4d41658 iio_rip_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xdb2eccc8 iio_mark_update_needed_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xf5885abd iio_set_length_sw_rb
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x4af3e45d variax_remove_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x68b01146 pod_remove_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0xdac5f59d variax_create_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0xe9dbd216 pod_create_files
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0x0be65bf8 rar_reserve
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0x62fd276e rar_release
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0xb260e0b9 rar_handle_to_bus
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x0072de2f rar_get_address
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0099f8dc ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x020fc98c HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0302f480 IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1175329f ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x199d26e2 ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1b2c4137 ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1c29e185 ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1d954c23 ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2be6d139 ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x35b2ec24 DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x36f2e36f ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3c9e5b85 ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3df64282 Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x43d20a33 ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4690c268 ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x475f0062 ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x47da60f2 ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a053ca4 ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c51254c ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x57ba2711 ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x63260f07 ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x63353228 ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x65fc6305 ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c362615 DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6cbdcfbe ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x71616db8 ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7a163e2e ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7d64785c ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x81724a3b ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x83795965 ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8e13e911 ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x92bb9f46 ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9f859c50 ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa146315f ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa45dec9b ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa4ad7c4f ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaa467c77 ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaab66b47 ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbfe4c79b ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc0023d3d notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc19b4a52 Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc98a939b ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xca249758 ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd57656ae ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe0632d4a ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe0fb9ff1 ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe37e36e7 SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xec5b0622 ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xec6b009a ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf3ac78c9 ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf8e39788 ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa6e652e Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfba872e1 ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfee2509e ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x877c9aeb tm6000_register_extension
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xa16fb786 tm6000_unregister_extension
+EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count
+EXPORT_SYMBOL drivers/staging/vme/vme 0x022daf76 vme_register_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x03c84420 vme_unregister_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw
+EXPORT_SYMBOL drivers/staging/vme/vme 0x091414b6 vme_slot_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0af7e58a vme_register_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0bd05eea vme_dma_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x325b68c0 vme_irq_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x35ac2abf vme_irq_generate
+EXPORT_SYMBOL drivers/staging/vme/vme 0x374cdc72 vme_irq_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x400924f8 vme_bus_type
+EXPORT_SYMBOL drivers/staging/vme/vme 0x41862ad4 vme_alloc_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0x43f2fc28 vme_lm_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x4a813911 vme_unregister_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x6f3c84a0 vme_dma_list_exec
+EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7fde2edb vme_master_read
+EXPORT_SYMBOL drivers/staging/vme/vme 0x83ca49cb vme_irq_handler
+EXPORT_SYMBOL drivers/staging/vme/vme 0x90695906 vme_free_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0x92f3cc49 vme_new_dma_list
+EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach
+EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach
+EXPORT_SYMBOL drivers/staging/vme/vme 0xbdc0a0fc vme_dma_list_add
+EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xcb820076 vme_master_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0xd0715c4a vme_slave_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xd797b9a5 vme_master_write
+EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe693a6ce vme_get_size
+EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xf7a5deaa vme_dma_list_free
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free
+EXPORT_SYMBOL drivers/telephony/ixj 0x16d4215f ixj_pcmcia_probe
+EXPORT_SYMBOL drivers/telephony/phonedev 0x88c87042 phone_register_device
+EXPORT_SYMBOL drivers/telephony/phonedev 0xc2217906 phone_unregister_device
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x513dbfc1 net2280_set_fifo_mode
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x7d237845 usb_gadget_unregister_driver
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xf59ab77c usb_gadget_register_driver
+EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x2ca6625d sl811h_driver
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x13eb4cd6 usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x32c5120c usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x518a84cc usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9b302400 usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9ceae988 usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa072290a usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc2a55ddf usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcc54fab1 usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd587cbfe usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xde5ab32e usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdfc39c84 usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe4d6209f usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf4602c82 usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfad863e9 usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x01e714a3 usb_serial_suspend
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x62eac673 usb_serial_resume
+EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x543a71fa lcd_device_register
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x7d26d885 lcd_device_unregister
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x1af63c71 cyber2000fb_attach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x3a075356 cyber2000fb_enable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x69529b82 cyber2000fb_disable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xa3160b7d cyber2000fb_get_fb_var
+EXPORT_SYMBOL drivers/video/display/display 0x9c63bf36 display_device_unregister
+EXPORT_SYMBOL drivers/video/display/display 0xb75ba30b display_device_register
+EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var
+EXPORT_SYMBOL drivers/video/macmodes 0xddaf601a mac_find_mode
+EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x26b1fa7c matroxfb_g450_setpll_cond
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xa5f1e953 matroxfb_g450_setclk
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xe754425f g450_mnp2f
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x35c41316 matrox_G100
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x484002b4 matrox_mystique
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x688a4f0c DAC1064_global_init
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6d1fcf09 DAC1064_global_restore
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x3d7b6c91 matrox_millennium
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x26d9b7c9 matrox_cfbX_init
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x217cef39 matroxfb_register_driver
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x5436f0d0 matroxfb_enable_irq
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd0913f40 matroxfb_unregister_driver
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xe2def043 matroxfb_wait_for_sync
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x05b5acca matroxfb_g450_connect
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xcc3d2b63 matroxfb_g450_shutdown
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x40b62aef matroxfb_vgaHWinit
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x4370dc9c matroxfb_DAC_out
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x622915b4 matroxfb_read_pins
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x9d3fd305 matroxfb_DAC_in
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xd0f8ae6b matroxfb_vgaHWrestore
+EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x2158522f mb862xxfb_init_accel
+EXPORT_SYMBOL drivers/video/output 0x6542e87a video_output_unregister
+EXPORT_SYMBOL drivers/video/output 0x6803fcba video_output_register
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free
+EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x2d3f5302 svga_settile
+EXPORT_SYMBOL drivers/video/svgalib 0x39bd9669 svga_get_tilemax
+EXPORT_SYMBOL drivers/video/svgalib 0x4b7b9ca2 svga_tilecopy
+EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x69ec12dc svga_tileblit
+EXPORT_SYMBOL drivers/video/svgalib 0x6d80abaf svga_get_caps
+EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x9d18d94a svga_tilefill
+EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xb4a5968c svga_tilecursor
+EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format
+EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll
+EXPORT_SYMBOL drivers/video/syscopyarea 0x60778207 sys_copyarea
+EXPORT_SYMBOL drivers/video/sysfillrect 0x576a8287 sys_fillrect
+EXPORT_SYMBOL drivers/video/sysimgblt 0x639c884c sys_imageblit
+EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga
+EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x2c8df9d7 w1_bq27000_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xedc842af w1_bq27000_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x18005968 w1_ds2760_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x47d204df w1_ds2760_recall_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd8072404 w1_ds2760_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd9323589 w1_ds2760_store_eeprom
+EXPORT_SYMBOL drivers/w1/wire 0x4e1ec6d3 w1_add_master_device
+EXPORT_SYMBOL drivers/w1/wire 0x6818f125 w1_unregister_family
+EXPORT_SYMBOL drivers/w1/wire 0x93336a49 w1_remove_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xb275b753 w1_register_family
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop
+EXPORT_SYMBOL fs/configfs/configfs 0x28ca06ab config_group_find_item
+EXPORT_SYMBOL fs/configfs/configfs 0x2d5eca53 configfs_undepend_item
+EXPORT_SYMBOL fs/configfs/configfs 0x34b6a2bf config_group_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x3a2afb35 config_item_init
+EXPORT_SYMBOL fs/configfs/configfs 0x58ab5995 configfs_depend_item
+EXPORT_SYMBOL fs/configfs/configfs 0x70ef506a config_group_init
+EXPORT_SYMBOL fs/configfs/configfs 0xa23560eb configfs_register_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xa26aa0aa configfs_unregister_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xaab03f31 config_item_set_name
+EXPORT_SYMBOL fs/configfs/configfs 0xb7e82412 config_item_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0xdeb325a1 config_item_put
+EXPORT_SYMBOL fs/configfs/configfs 0xf1249769 config_item_get
+EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible
+EXPORT_SYMBOL fs/fscache/fscache 0x09b8ae19 fscache_obtained_object
+EXPORT_SYMBOL fs/fscache/fscache 0x0dfa8911 __fscache_wait_on_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x10fb7697 __fscache_read_or_alloc_pages
+EXPORT_SYMBOL fs/fscache/fscache 0x1dc4c04f __fscache_check_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x2b5a933e __fscache_maybe_release_page
+EXPORT_SYMBOL fs/fscache/fscache 0x2bb319d3 fscache_io_error
+EXPORT_SYMBOL fs/fscache/fscache 0x3e3fad6f fscache_object_lookup_negative
+EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit
+EXPORT_SYMBOL fs/fscache/fscache 0x4a3ca692 fscache_add_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x5cd2c6dd fscache_enqueue_operation
+EXPORT_SYMBOL fs/fscache/fscache 0x71dfbcb5 __fscache_update_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id
+EXPORT_SYMBOL fs/fscache/fscache 0x82b73b13 __fscache_register_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states
+EXPORT_SYMBOL fs/fscache/fscache 0x95e61a7b __fscache_read_or_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0x9c5ae59e fscache_check_aux
+EXPORT_SYMBOL fs/fscache/fscache 0xa5ce9936 __fscache_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq
+EXPORT_SYMBOL fs/fscache/fscache 0xb49a97db fscache_init_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xc4d742df __fscache_write_page
+EXPORT_SYMBOL fs/fscache/fscache 0xc5acd6f1 __fscache_relinquish_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xc7b78346 __fscache_uncache_page
+EXPORT_SYMBOL fs/fscache/fscache 0xcc5cd543 __fscache_unregister_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0xd46932cf fscache_object_slow_work_ops
+EXPORT_SYMBOL fs/fscache/fscache 0xe100dc6f __fscache_acquire_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xe81109b2 fscache_fsdef_index
+EXPORT_SYMBOL fs/fscache/fscache 0xf59b26a9 fscache_mark_pages_cached
+EXPORT_SYMBOL fs/fscache/fscache 0xf7f54d64 fscache_put_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xfa9c76b3 fscache_withdraw_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xfb369492 __fscache_attr_changed
+EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix
+EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new
+EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who
+EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype
+EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4
+EXPORT_SYMBOL fs/quota/quota_tree 0x58346c41 qtree_write_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x5defcb14 qtree_entry_unused
+EXPORT_SYMBOL fs/quota/quota_tree 0x764840d4 qtree_delete_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xa72882d5 qtree_read_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xde0a4cb5 qtree_release_dquot
+EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt
+EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table
+EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table
+EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t
+EXPORT_SYMBOL lib/crc7 0xa7587646 crc7
+EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table
+EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd
+EXPORT_SYMBOL net/802/p8023 0x4bc77099 make_8023_client
+EXPORT_SYMBOL net/802/p8023 0x6b0b7bc0 destroy_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x000bc7a8 p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x04e90ea5 p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0x0d32b805 p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x127714d2 p9_idpool_check
+EXPORT_SYMBOL net/9p/9pnet 0x161243e8 p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x278c8805 p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0x2fb7eafd p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x36aca002 p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x42cc2db6 v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x4e5974ab p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x55997a67 p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0x5f7e49be p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x77cc79f4 p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0x85802ce4 p9_client_auth
+EXPORT_SYMBOL net/9p/9pnet 0x89e536e3 p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x8b2ad98e p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0x91bd79a3 p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0x956894ad p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0xa1f1c457 p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0xab7187d7 p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0xc18478d3 v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0xc18e2ec2 p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0xc72a9a64 p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump
+EXPORT_SYMBOL net/9p/9pnet 0xd43c7319 v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0xdab77c64 v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0xddb68441 p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0xe19978b9 p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xe7774b2d p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xf3615b86 p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xf6312c1d p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0xf75cfb4e p9_client_version
+EXPORT_SYMBOL net/appletalk/appletalk 0x1456cea3 atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0x1cc1fe8f atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0xbd4fcbda aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0xc12519da alloc_ltalkdev
+EXPORT_SYMBOL net/atm/atm 0x1137bb1b vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x1298f74c atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0x20be36a4 atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0x2227e364 atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x345fa25f atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0x4001ab5d atm_charge
+EXPORT_SYMBOL net/atm/atm 0x5d2a58ac atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x8633feb3 vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xa3aef3a2 deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xdc8cef9c atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0xec969c0d register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal
+EXPORT_SYMBOL net/ax25/ax25 0x0771fdcb ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x2b82bfbf ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0x3243885e ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0x3dbdc3f1 ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x6a59c5b3 ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x8272a10f ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0xbb361ff2 ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xda45be60 ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0xdd704619 ax25_header_ops
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x022b3de1 bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x03da9d13 bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x078a425e hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d830477 hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2487b833 hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x28208a94 bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2e00eca1 hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b9ffa60 hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3fb22f1a hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4d673bb2 bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e925071 bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x568d205a hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x572b1e83 hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5f1401e3 bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x65ab89dd hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x66e8a5a1 hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7e4a088d hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7ecd292d hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x89c0467a hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x9a70e512 hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x9e692de8 hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa308847e hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa4d34461 bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xaa1f9e56 hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xadd4c526 hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb3fce2dc hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc92a5a53 hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xce5d580f hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd1396e1f hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xdab9db91 bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe26bf44d bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xfd117b21 bt_sock_register
+EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load
+EXPORT_SYMBOL net/bridge/bridge 0x9bd2566d br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x24145dd6 ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x40807d2f ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x46cbb0c4 ebt_register_table
+EXPORT_SYMBOL net/caif/caif 0x0180d01d cfpkt_setlen
+EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client
+EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer
+EXPORT_SYMBOL net/caif/caif 0x1549e15d cfpkt_add_trail
+EXPORT_SYMBOL net/caif/caif 0x2452de62 cfpkt_pad_trail
+EXPORT_SYMBOL net/caif/caif 0x2ebc6ade cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x3ff45f1c cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0x4622a5a3 cfpkt_extr_trail
+EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x49166afc cfpkt_addbdy
+EXPORT_SYMBOL net/caif/caif 0x5468ad83 cfpkt_dequeue
+EXPORT_SYMBOL net/caif/caif 0x5602d43f cfpkt_add_body
+EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create
+EXPORT_SYMBOL net/caif/caif 0x68ee4a0c cfpkt_extr_head
+EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x72289264 cfpkt_iterate
+EXPORT_SYMBOL net/caif/caif 0x784573e5 cfpkt_append
+EXPORT_SYMBOL net/caif/caif 0x86ba01b6 cfpkt_log_pkt
+EXPORT_SYMBOL net/caif/caif 0x9566804f cfpkt_clone_release
+EXPORT_SYMBOL net/caif/caif 0x9d18d85a cfpkt_create
+EXPORT_SYMBOL net/caif/caif 0xa0ed2d71 cfpkt_getlen
+EXPORT_SYMBOL net/caif/caif 0xa7f3d883 cfpkt_qpeek
+EXPORT_SYMBOL net/caif/caif 0xa833aa13 cfpkt_qcount
+EXPORT_SYMBOL net/caif/caif 0xaa77e55e cfpktq_create
+EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xb0422115 cfpkt_raw_append
+EXPORT_SYMBOL net/caif/caif 0xb0cd7895 cfpkt_create_uplink
+EXPORT_SYMBOL net/caif/caif 0xb26bd728 cfpkt_destroy
+EXPORT_SYMBOL net/caif/caif 0xba792e0b cfpkt_add_head
+EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer
+EXPORT_SYMBOL net/caif/caif 0xc50022dd cfpkt_peek_head
+EXPORT_SYMBOL net/caif/caif 0xc5a8e633 cfpkt_queue
+EXPORT_SYMBOL net/caif/caif 0xe8111859 cfpkt_more
+EXPORT_SYMBOL net/caif/caif 0xe8ddf0d2 cfpkt_info
+EXPORT_SYMBOL net/caif/caif 0xeb42e75f cfpkt_split
+EXPORT_SYMBOL net/caif/caif 0xf02b0408 cfpkt_raw_extract
+EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf
+EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer
+EXPORT_SYMBOL net/caif/caif 0xf9926e2c cfpkt_erroneous
+EXPORT_SYMBOL net/can/can 0x4e0659b5 can_proto_register
+EXPORT_SYMBOL net/can/can 0x8fcd8d08 can_send
+EXPORT_SYMBOL net/can/can 0x9e088465 can_rx_register
+EXPORT_SYMBOL net/can/can 0xb31f2a7e can_rx_unregister
+EXPORT_SYMBOL net/can/can 0xd86025c6 can_proto_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x093f7356 wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x15d45492 ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x407cf76e ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x4cca3231 ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x5b45156e wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x6150f9cf ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x9bcc94ac ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xa0619385 wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xb743c333 wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xd8ceef0e wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xdad62c51 wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xdb287ffc ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xe65ec753 ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x100842f5 arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x6f55dc67 arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xa57cd1d1 arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x354c8477 ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x3ed13d3d ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xc72c96cc ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0537dede nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1b429bfc nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4d1061a2 nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x907cd682 nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb397ea1c __nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb572bf15 nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xc7815c1d nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/tunnel4 0x427e6cfe xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0x8e884e2a xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x2ab33fe0 ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x95967ee4 ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x9ed60a25 ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xcbfc9d6c ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/tunnel6 0x948d7a34 xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/tunnel6 0xd32ad231 xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x31b1e3af xfrm6_tunnel_free_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xac668e7d xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe93ed822 xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x29e3c9c4 ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2bf259fa ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x354a749d ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x47750938 ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x67c9777b ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x997fc9a9 ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9bd0ac82 ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xefdc05c2 ircomm_close
+EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value
+EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service
+EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x23624bb8 hashbin_get_first
+EXPORT_SYMBOL net/irda/irda 0x23f02a19 proc_irda
+EXPORT_SYMBOL net/irda/irda 0x29c016a2 irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0x35d6ee8c iriap_close
+EXPORT_SYMBOL net/irda/irda 0x3666c9c2 irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug
+EXPORT_SYMBOL net/irda/irda 0x3c84ebb9 irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object
+EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value
+EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service
+EXPORT_SYMBOL net/irda/irda 0x5eab00c8 async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new
+EXPORT_SYMBOL net/irda/irda 0x6601882c irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object
+EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies
+EXPORT_SYMBOL net/irda/irda 0x6b186466 irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client
+EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x86c95795 irlmp_open_lsap
+EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0x8cf4c91b irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x95f2efa4 irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0x989a4567 iriap_open
+EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find
+EXPORT_SYMBOL net/irda/irda 0x9c6e0125 irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0xb0800c75 irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value
+EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute
+EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request
+EXPORT_SYMBOL net/irda/irda 0xbf1aa764 irttp_dup
+EXPORT_SYMBOL net/irda/irda 0xc19c7d5b irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0xc34dc21b irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next
+EXPORT_SYMBOL net/irda/irda 0xc5fa870f irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xcb3fd862 irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0xd5c6cc4b irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma
+EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xe11db171 alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0xe2388dbb irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0xec43a8d0 irlap_close
+EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xf28d4047 iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0xf55b6f42 irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0xf71051f1 irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0xf967c130 async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0xfc6e92b2 irlap_open
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x4dfc9a5c l2tp_recv_common
+EXPORT_SYMBOL net/l2tp/l2tp_core 0xbeac3d25 l2tp_tunnel_destruct
+EXPORT_SYMBOL net/lapb/lapb 0x06994a0f lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0x0786b80c lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x29fdeed6 lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x619dd357 lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0x8b44a458 lapb_disconnect_request
+EXPORT_SYMBOL net/lapb/lapb 0xaf760c1d lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0xd6fe77c1 lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0xdcd6c3ac lapb_data_received
+EXPORT_SYMBOL net/mac80211/mac80211 0x066fd5e6 ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x150e4d59 ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x1ba5d95d ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x34264ff5 __ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x3a391ed3 rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x3d4dcb05 ieee80211_get_tkip_key
+EXPORT_SYMBOL net/mac80211/mac80211 0x564c87c5 __ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x564f162c ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x61170367 ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x62cc82b1 ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x63716e28 __ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x7b706d67 ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x7c1542dd ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0x815177ef ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x8c3d4fe0 ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x8cffb754 ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x9373ddbb wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x9c91ebea ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xa0e51af6 ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xaaf37ec3 __ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xab5c4356 ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0xaf0ac59a ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xb46aa21a ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xbbc15242 ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xc1639111 ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xc7438067 ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xcaf8926b ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xd9f49753 ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0xdda15c71 ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xde1625c4 ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xe0281a34 ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xe1ce4dcb ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xe6230678 ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xe7bb71b3 ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0xe8513e59 ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xeb01a7e8 ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xed992b1e ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5c9b2c94 ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x726c3178 ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x72d8b8c0 register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x90d2687c unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x938a2961 unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x94b09b62 ip_vs_skb_replace
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa09a7e6a register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd7a70160 register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd9be2721 ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdcc8e5df ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfc2d62e5 ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x389b9a08 __nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xa92b7264 __nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xf7398072 nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x229a411a xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x2e231c35 xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x3d565c9c xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x5e4949e6 xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x95f4a061 xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x9e354f83 xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xb9b868ba xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xd41a3ba9 xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xe13e6d47 xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xf5c756ba xt_unregister_target
+EXPORT_SYMBOL net/phonet/phonet 0x136bacfc phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x1b514334 phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0x2ec2e22e pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0x57a088c4 phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0x88303437 pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0x9d750e0d pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0x9ddaff42 pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0xe0bea8da phonet_proto_unregister
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x085c3df0 rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x24630937 rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x274032e2 rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4a1106b0 rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x556476d4 rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x590590ba rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x60bea23a rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6360b4e5 rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7607f2d3 rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8edcc97f rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x918cc9e8 rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x99b881c1 rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xad13cb2b rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbbb6b5db key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xda53ea38 rxrpc_kernel_end_call
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x496fed56 svc_pool_stats_open
+EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes
+EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected
+EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect
+EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport
+EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x1bbfea7f tipc_send_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge
+EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port
+EXPORT_SYMBOL net/tipc/tipc 0x2b090994 tipc_send_buf_fast
+EXPORT_SYMBOL net/tipc/tipc 0x3045e3b4 tipc_send_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach
+EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x39863357 tipc_createport_raw
+EXPORT_SYMBOL net/tipc/tipc 0x41592281 tipc_recv_msg
+EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name
+EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw
+EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode
+EXPORT_SYMBOL net/tipc/tipc 0x58c840dd tipc_get_port
+EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid
+EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0x642dfdac tipc_forward_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast
+EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port
+EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr
+EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xa1a8ce50 tipc_createport
+EXPORT_SYMBOL net/tipc/tipc 0xa4ffc39b tipc_forward_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port
+EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown
+EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name
+EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish
+EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send
+EXPORT_SYMBOL net/tipc/tipc 0xbb34757d tipc_continue
+EXPORT_SYMBOL net/tipc/tipc 0xbe00d2e9 tipc_send_buf
+EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0xd377b6c8 tipc_reject_msg
+EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity
+EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach
+EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer
+EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished
+EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle
+EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xf7752ea2 tipc_register_media
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x49ff2113 register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0xb6283b28 wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0xbf9a870d wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0ca5c01e cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x1922b8a6 __cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x1b6f72ee ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x213bf803 cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x28cd8167 cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0x28f90ee3 cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x29ec79a5 cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x3b74ca57 cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x3f25f706 ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x56e6ad84 cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0x5f788855 cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x67bc3427 wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x69e9c6c3 cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x6af9637f freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x7087f5ca wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x7119e9c0 cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x72fe96d4 __cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x776a0ce5 wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x7b9724c4 cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x7bcdb7f1 wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x7e65c197 cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x822c4de9 cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0x83fdfddd cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x89605ce6 wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c455a53 cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x8d55d869 cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x8eeece72 cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x96576b93 cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x9700da35 regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x989096bb cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0x99760b74 cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x99e668c1 cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0x9d309e90 __cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xa25a958b cfg80211_action_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0xa93890b9 wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xb274c15c wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0xbf6ae477 cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0xc14bb015 cfg80211_rx_action
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xc6986099 ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0xd90d0b74 cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xede77b80 wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0xef30ff63 cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xf10a04ef ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0xf19fca86 cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xf25f73b0 cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0xfa592bdb __ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/lib80211 0x098f2c35 lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x0b529353 lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x513456d0 lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0x7523741f lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x847c7f85 lib80211_crypt_quiescing
+EXPORT_SYMBOL net/wireless/lib80211 0xebf572ed lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0xedc8d5c6 lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xf1ef6b89 lib80211_crypt_deinit_entries
+EXPORT_SYMBOL sound/ac97_bus 0x63947d7b ac97_bus_type
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x0be04429 snd_seq_create_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x38468dcc snd_seq_kernel_client_enqueue_blocking
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xa6d47f45 snd_seq_event_port_attach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xdd381da8 snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x0cd9fac8 snd_seq_device_register_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x9e6c7b24 snd_seq_device_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x017f4a67 snd_midi_event_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x949c9ac8 snd_midi_event_no_status
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x951ea30c snd_midi_event_reset_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb00606b7 snd_midi_event_encode_byte
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb30510f7 snd_midi_event_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbeaecf8c snd_midi_event_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xddc220c4 snd_midi_event_reset_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf5eb237e snd_midi_event_free
+EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xd70ac96a snd_virmidi_new
+EXPORT_SYMBOL sound/core/snd 0x0269ef2b snd_jack_set_parent
+EXPORT_SYMBOL sound/core/snd 0x09896bc1 snd_jack_report
+EXPORT_SYMBOL sound/core/snd 0x0d3bfd70 snd_ctl_remove
+EXPORT_SYMBOL sound/core/snd 0x1111e037 snd_device_new
+EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program
+EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer
+EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line
+EXPORT_SYMBOL sound/core/snd 0x297a95a3 snd_card_file_add
+EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource
+EXPORT_SYMBOL sound/core/snd 0x30bdfac8 snd_card_proc_new
+EXPORT_SYMBOL sound/core/snd 0x33caa154 snd_card_file_remove
+EXPORT_SYMBOL sound/core/snd 0x35bc74c8 snd_ctl_boolean_mono_info
+EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit
+EXPORT_SYMBOL sound/core/snd 0x3978d6e0 snd_card_disconnect
+EXPORT_SYMBOL sound/core/snd 0x3c03cad7 snd_power_wait
+EXPORT_SYMBOL sound/core/snd 0x48aef757 snd_card_free
+EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card
+EXPORT_SYMBOL sound/core/snd 0x4cb91e31 snd_card_create
+EXPORT_SYMBOL sound/core/snd 0x52000d6d snd_unregister_device
+EXPORT_SYMBOL sound/core/snd 0x55487132 snd_ctl_find_numid
+EXPORT_SYMBOL sound/core/snd 0x5cdab228 snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL sound/core/snd 0x5f9c54bd snd_info_create_module_entry
+EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio
+EXPORT_SYMBOL sound/core/snd 0x63ca8b83 snd_jack_set_key
+EXPORT_SYMBOL sound/core/snd 0x64a72a5b snd_register_device_for_dev
+EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable
+EXPORT_SYMBOL sound/core/snd 0x76c780bb snd_info_create_card_entry
+EXPORT_SYMBOL sound/core/snd 0x7e7fab02 snd_ctl_remove_id
+EXPORT_SYMBOL sound/core/snd 0x809c40a1 snd_device_register
+EXPORT_SYMBOL sound/core/snd 0x832adbfb snd_ctl_find_id
+EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major
+EXPORT_SYMBOL sound/core/snd 0x939a3b62 snd_ctl_new1
+EXPORT_SYMBOL sound/core/snd 0x999bd7fc snd_cards
+EXPORT_SYMBOL sound/core/snd 0x9b073e2b snd_ctl_notify
+EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str
+EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id
+EXPORT_SYMBOL sound/core/snd 0xa22aafc5 snd_pci_quirk_lookup
+EXPORT_SYMBOL sound/core/snd 0xa3285c6e snd_add_device_sysfs_file
+EXPORT_SYMBOL sound/core/snd 0xad9856d3 snd_ctl_make_virtual_master
+EXPORT_SYMBOL sound/core/snd 0xb00adac6 snd_ctl_unregister_ioctl
+EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data
+EXPORT_SYMBOL sound/core/snd 0xb59cfb9a snd_info_register
+EXPORT_SYMBOL sound/core/snd 0xb67540f2 snd_card_set_id
+EXPORT_SYMBOL sound/core/snd 0xb81c55ff snd_ctl_register_ioctl
+EXPORT_SYMBOL sound/core/snd 0xbab4bae1 snd_component_add
+EXPORT_SYMBOL sound/core/snd 0xc017c264 snd_card_register
+EXPORT_SYMBOL sound/core/snd 0xc40f10f8 snd_seq_root
+EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio
+EXPORT_SYMBOL sound/core/snd 0xce5fcf5b snd_device_free
+EXPORT_SYMBOL sound/core/snd 0xcffa6f12 snd_ctl_rename_id
+EXPORT_SYMBOL sound/core/snd 0xe1b0b700 snd_info_free_entry
+EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf
+EXPORT_SYMBOL sound/core/snd 0xe320f764 snd_jack_new
+EXPORT_SYMBOL sound/core/snd 0xefcfe864 _snd_ctl_add_slave
+EXPORT_SYMBOL sound/core/snd 0xf0893ec0 snd_ctl_add
+EXPORT_SYMBOL sound/core/snd 0xf20c9462 snd_ctl_free_one
+EXPORT_SYMBOL sound/core/snd 0xf2e24d7a snd_card_free_when_closed
+EXPORT_SYMBOL sound/core/snd-hwdep 0x2e928a92 snd_hwdep_new
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x13e70813 snd_dma_alloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x93d936bc snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xa02de814 snd_dma_get_reserved_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xe50715ca snd_dma_reserve_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xf272beae snd_dma_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any
+EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x05e1d169 snd_pcm_kernel_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x0e47273a snd_pcm_limit_hw_rates
+EXPORT_SYMBOL sound/core/snd-pcm 0x0f624b6b snd_pcm_lib_mmap_noncached
+EXPORT_SYMBOL sound/core/snd-pcm 0x1186ea4b snd_pcm_hw_rule_add
+EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed
+EXPORT_SYMBOL sound/core/snd-pcm 0x248ab57f snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL sound/core/snd-pcm 0x315b4692 snd_pcm_notify
+EXPORT_SYMBOL sound/core/snd-pcm 0x323b6fd0 snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x355adbfe snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x399e93fb snd_pcm_new_stream
+EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty
+EXPORT_SYMBOL sound/core/snd-pcm 0x3d3b09ca snd_pcm_lib_writev
+EXPORT_SYMBOL sound/core/snd-pcm 0x4276860b snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x452f3d5c snd_pcm_lib_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size
+EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x51d13fb3 snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value
+EXPORT_SYMBOL sound/core/snd-pcm 0x582a1882 snd_pcm_set_ops
+EXPORT_SYMBOL sound/core/snd-pcm 0x5c8c3c87 snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence
+EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64
+EXPORT_SYMBOL sound/core/snd-pcm 0x673d23b8 snd_pcm_mmap_data
+EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width
+EXPORT_SYMBOL sound/core/snd-pcm 0x6b8d4b7b snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x6c09f1b9 snd_pcm_lib_read
+EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear
+EXPORT_SYMBOL sound/core/snd-pcm 0x6f6bdca9 snd_pcm_new
+EXPORT_SYMBOL sound/core/snd-pcm 0x74d5d3f7 snd_pcm_suspend_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x78821fbe snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL sound/core/snd-pcm 0x813b75ae _snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x852c4892 snd_pcm_lib_write
+EXPORT_SYMBOL sound/core/snd-pcm 0x87f53a8f snd_pcm_hw_param_first
+EXPORT_SYMBOL sound/core/snd-pcm 0x8bca610d snd_pcm_stop
+EXPORT_SYMBOL sound/core/snd-pcm 0x92668718 snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL sound/core/snd-pcm 0xa0469ea1 snd_pcm_set_sync
+EXPORT_SYMBOL sound/core/snd-pcm 0xa1c33f17 snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xa40e95ae snd_pcm_link_rwlock
+EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned
+EXPORT_SYMBOL sound/core/snd-pcm 0xaac66f8f snd_pcm_hw_param_last
+EXPORT_SYMBOL sound/core/snd-pcm 0xb6db4e5e snd_pcm_hw_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0xb6e48108 snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL sound/core/snd-pcm 0xc0b36cc4 snd_pcm_open_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xc54f7dc2 snd_pcm_period_elapsed
+EXPORT_SYMBOL sound/core/snd-pcm 0xc88e1dd4 snd_pcm_lib_readv
+EXPORT_SYMBOL sound/core/snd-pcm 0xcb82e97d snd_pcm_suspend
+EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xd5923f3c snd_pcm_sgbuf_ops_page
+EXPORT_SYMBOL sound/core/snd-pcm 0xd7589117 snd_pcm_hw_constraint_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xd91004ac snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL sound/core/snd-pcm 0xdba75df4 snd_pcm_release_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xe35647c3 snd_pcm_lib_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9e78 snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL sound/core/snd-pcm 0xf137bfd3 snd_pcm_hw_constraint_step
+EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum
+EXPORT_SYMBOL sound/core/snd-pcm 0xf64dee4b snd_pcm_sgbuf_get_chunk_size
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x169495e5 snd_rawmidi_transmit_peek
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x19de7036 snd_rawmidi_transmit
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x24efc63e snd_rawmidi_set_ops
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x2ae579ce snd_rawmidi_kernel_open
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x3192fee4 snd_rawmidi_transmit_ack
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x34a9b7f1 snd_rawmidi_info_select
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x3a39f76c snd_rawmidi_transmit_empty
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x4abf6608 snd_rawmidi_kernel_write
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x5ad1bed5 snd_rawmidi_drop_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x5cc4b848 snd_rawmidi_input_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x88c61319 snd_rawmidi_output_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x8c96c264 snd_rawmidi_kernel_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x8f68990f snd_rawmidi_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xcac26ea2 snd_rawmidi_receive
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xe8d7405b snd_rawmidi_drain_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xec4269d8 snd_rawmidi_kernel_release
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xff096483 snd_rawmidi_drain_input
+EXPORT_SYMBOL sound/core/snd-timer 0x1c879513 snd_timer_start
+EXPORT_SYMBOL sound/core/snd-timer 0x1d89370f snd_timer_resolution
+EXPORT_SYMBOL sound/core/snd-timer 0x510131fe snd_timer_global_free
+EXPORT_SYMBOL sound/core/snd-timer 0x574fb2d2 snd_timer_pause
+EXPORT_SYMBOL sound/core/snd-timer 0x9b9bdc69 snd_timer_continue
+EXPORT_SYMBOL sound/core/snd-timer 0xb172cb35 snd_timer_open
+EXPORT_SYMBOL sound/core/snd-timer 0xb3eecb58 snd_timer_global_register
+EXPORT_SYMBOL sound/core/snd-timer 0xce2110ee snd_timer_stop
+EXPORT_SYMBOL sound/core/snd-timer 0xd120fee4 snd_timer_new
+EXPORT_SYMBOL sound/core/snd-timer 0xd45293c5 snd_timer_interrupt
+EXPORT_SYMBOL sound/core/snd-timer 0xe7429c79 snd_timer_notify
+EXPORT_SYMBOL sound/core/snd-timer 0xea97be12 snd_timer_global_new
+EXPORT_SYMBOL sound/core/snd-timer 0xfe96d3f2 snd_timer_close
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x8bb347d9 snd_mpu401_uart_new
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0bc6dce8 snd_opl3_reset
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0d3e80ee snd_opl3_create
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2c70b666 snd_opl3_init
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x54335b33 snd_opl3_load_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa19e6f73 snd_opl3_timer_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb202c5df snd_opl3_find_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbc0a0b9d snd_opl3_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbe786dc0 snd_opl3_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xdf4c51fd snd_opl3_hwdep_new
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x2eaea4d7 snd_opl4_create
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x51f59167 snd_opl4_read
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x58af6ac9 snd_opl4_write
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x738e6419 snd_opl4_read_memory
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xd2ddbfb6 snd_opl4_write_memory
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x07805e79 snd_vx_free_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x20fb6c3e snd_vx_suspend
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x4fd02fb1 snd_vx_dsp_load
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6f087ed3 snd_vx_resume
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x756b2aef snd_vx_dsp_boot
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x76694136 snd_vx_create
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x967020e4 snd_vx_setup_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xa1084e39 snd_vx_load_boot_image
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb6d298ef snd_vx_check_reg_bit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x44813270 snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x48e8537d snd_ak4114_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa58f1a6f snd_ak4114_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc6c376f6 snd_ak4114_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xcf49e8c7 snd_ak4114_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf65aadf3 snd_ak4114_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x2e00c231 snd_ak4117_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x53556e5a snd_ak4117_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x651d67c7 snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6b734e28 snd_ak4117_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xa1334072 snd_ak4117_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xda548113 snd_ak4117_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x0a3b363a snd_akm4xxx_init
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x4afae596 snd_akm4xxx_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xabf031d7 snd_akm4xxx_reset
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xad38b9c8 snd_akm4xxx_write
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x039f7a24 snd_pt2258_reset
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x302f4d0c snd_pt2258_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x5c92a1e4 snd_tea575x_init
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xfe119875 snd_tea575x_exit
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x642e4791 snd_cs8427_iec958_build
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x812ca19c snd_cs8427_iec958_pcm
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9b2a167a snd_cs8427_reg_write
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf3960fc5 snd_cs8427_iec958_active
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf477dcb0 snd_cs8427_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x0fc89f50 snd_i2c_probeaddr
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x7546ae29 snd_i2c_bus_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x7eafcc41 snd_i2c_device_free
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x843b7a6e snd_i2c_readbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x96f0a53d snd_i2c_device_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xf8982d86 snd_i2c_sendbytes
+EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xb5f2b669 snd_tea6330t_update_mixer
+EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xec2887d8 snd_tea6330t_detect
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x2baf989f snd_es1688_create
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x47630583 snd_es1688_mixer_write
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x5fa658fb snd_es1688_reset
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x809c2083 snd_es1688_mixer
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xcc65d631 snd_es1688_pcm
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x026d5d74 snd_gf1_write16
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0ae5cf1e snd_gf1_stop_voice
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1bf8be19 snd_gf1_write8
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1cab3e47 snd_gf1_i_look16
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1cc1885f snd_gf1_translate_freq
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x28aff336 snd_gf1_peek
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x2c0e7adc snd_gf1_ctrl_stop
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x2e7d0c71 snd_gf1_new_mixer
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x36e4eadc snd_gf1_look8
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x3c49d42c snd_gf1_mem_free
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46db8d67 snd_gf1_lvol_to_gvol_raw
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x480c55cb snd_gf1_pcm_new
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4bed60c9 snd_gf1_free_voice
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4c8c70e0 snd_gus_create
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4cf4e4da snd_gus_use_inc
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4ed19145 snd_gf1_mem_lock
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x50db5a57 snd_gf1_delay
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6cb0da21 snd_gf1_alloc_voice
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6f99362e snd_gf1_write_addr
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x896ce4c5 snd_gus_interrupt
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9286115d snd_gus_dram_read
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa5680dda snd_gf1_mem_xfree
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xaf6cce59 snd_gf1_i_write8
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb3f0f0df snd_gf1_dram_addr
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb8f35607 snd_gus_initialize
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xcf95307b snd_gus_use_dec
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xdcf8dd99 snd_gf1_i_look8
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe1a030e2 snd_gf1_poke
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xecb7616a snd_gf1_mem_alloc
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf8661436 snd_gf1_look16
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xfb4133c8 snd_gf1_rawmidi_new
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xffcd2b05 snd_gus_dram_write
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0095b936 snd_msnd_disable_irq
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x41b3d46d snd_msndmix_force_recsrc
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x48c71de2 snd_msndmix_new
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x4c5e1fc2 snd_msnd_enable_irq
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x5628ea5b snd_msnd_send_word
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x61f98d82 snd_msnd_DARQ
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x66f7b6e1 snd_msnd_dsp_halt
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x76dbc389 snd_msnd_send_dsp_cmd
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x9365a505 snd_msndmix_setup
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xb740095e snd_msnd_DAPQ
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xee72625f snd_msnd_upload_host
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xf642332d snd_msnd_pcm
+EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x379b0aaf snd_aci_cmd
+EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x75f9c1a0 snd_aci_get_aci
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x18274432 snd_sbmixer_read
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x33da76d6 snd_sbmixer_add_ctl
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x47d46732 snd_sbdsp_reset
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x49c58446 snd_sbmixer_new
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5667dfdd snd_sbmixer_write
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5a51b75e snd_sbdsp_create
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x758a8f17 snd_sbmixer_suspend
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x88d46eec snd_sbdsp_command
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb6331698 snd_sbdsp_get_byte
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc89d27c3 snd_sbmixer_resume
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0xc982d9f6 snd_sb_csp_new
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x28b7fb0c snd_sb16dsp_pcm
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x7e3ec680 snd_sb16dsp_configure
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x86cbe15a snd_sb16dsp_get_pcm_ops
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt
+EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x08a03f48 snd_sb8dsp_pcm
+EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x1e798b31 snd_sb8dsp_interrupt
+EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xf317e83a snd_sb8dsp_midi_interrupt
+EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xfedb394a snd_sb8dsp_midi
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x219b88df snd_emu8000_peek_dw
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x2cb9c39f snd_emu8000_load_chorus_fx
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x47a22777 snd_emu8000_load_reverb_fx
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x559c5f90 snd_emu8000_init_fm
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x59cdca52 snd_emu8000_dma_chan
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x85611a9f snd_emu8000_update_reverb_mode
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xac149a8c snd_emu8000_update_equalizer
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xb84d0288 snd_emu8000_poke
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xb8666bea snd_emu8000_poke_dw
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xc61fcebe snd_emu8000_update_chorus_mode
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xe9233157 snd_emu8000_peek
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x20e65cf7 snd_wss_timer
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x330406e8 snd_wss_overrange
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x36dd3362 snd_wss_mixer
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x50c302f6 snd_wss_in
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x50f4f579 snd_cs4236_ext_in
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x71ffacef snd_wss_get_double
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x78a02309 snd_wss_put_single
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x80723fee snd_wss_mce_down
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xa227abba snd_wss_info_double
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xa7959b58 snd_wss_put_double
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xaeca14be snd_wss_get_single
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xbab2f59d snd_wss_create
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc55f52de snd_wss_out
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xcaf84026 snd_wss_mce_up
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xcb01640a snd_wss_pcm
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xdc4f535b snd_wss_chip_id
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xee5023e5 snd_wss_interrupt
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xf177a1b4 snd_wss_get_pcm_ops
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xf58800a7 snd_cs4236_ext_out
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xf7703916 snd_wss_info_single
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x17d4cb6e snd_ac97_write_cache
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x254d7ce8 snd_ac97_bus
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x32d52a74 snd_ac97_update_power
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3d136dbb snd_ac97_update_bits
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4f2a5edf snd_ac97_pcm_assign
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x51ae4910 snd_ac97_pcm_close
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x54a0dc63 snd_ac97_tune_hardware
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x60302a48 snd_ac97_pcm_open
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x70a1cb9b snd_ac97_set_rate
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb3d77442 snd_ac97_update
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb8d51bb1 snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xceadf301 snd_ac97_get_short_name
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd86138fb snd_ac97_mixer
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe47ee45c snd_ac97_write
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe8441d38 snd_ac97_suspend
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf63aca7f snd_ac97_resume
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfe4514e2 snd_ac97_read
+EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xe83dcac1 hpi_send_recv
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x20807898 snd_emu10k1_voice_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x27427e05 snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x74d711e7 snd_emu10k1_voice_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x895ef579 snd_emu10k1_synth_bzero
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8c44d7b3 snd_emu10k1_synth_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb34c92e0 snd_emu10k1_ptr_write
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb74b9b70 snd_emu10k1_synth_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xbffc1048 snd_emu10k1_ptr_read
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xddd6ab69 snd_emu10k1_memblk_map
+EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x6009e556 snd_hda_parse_generic_codec
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x8f8527c2 snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xa095fffe snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xb628750e snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x013268c5 oxygen_write_ac97
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x035960c5 oxygen_write_i2c
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x06d7ba58 oxygen_pci_resume
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x18a7c469 oxygen_write16_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x29104d53 oxygen_reset_uart
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x31e8fe30 oxygen_pci_probe
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4133b100 oxygen_write_ac97_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x437f28fe oxygen_write8
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x43e5d4e3 oxygen_read_ac97
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4af6fe1f oxygen_pci_remove
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5446e266 oxygen_read32
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x550f904f oxygen_write32_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x58e976a9 oxygen_read8
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x65202ef5 oxygen_write32
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8a6945c1 oxygen_read16
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x93a3ecc9 oxygen_default_i2s_mclk
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa484fc6a oxygen_write8_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xace88209 oxygen_pci_suspend
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe2b89c09 oxygen_write_spi
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf5bd747f oxygen_write16
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xff985bdc oxygen_write_uart
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x5b5250a8 snd_trident_alloc_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xaf0fc212 snd_trident_start_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xb108e942 snd_trident_stop_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xbf57c986 snd_trident_free_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xf95b206a snd_trident_write_voice_regs
+EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x1ece4281 uda134x_dai
+EXPORT_SYMBOL sound/soundcore 0xf8b94a35 sound_class
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x05eaf325 snd_emux_unlock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x10b8d065 snd_emux_lock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x58175eda snd_emux_terminate_all
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x6f477a28 snd_emux_register
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x704d1ebc snd_emux_new
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xba35bbd4 snd_emux_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x661d309e __snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x6fcc06d1 snd_util_mem_avail
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x7736716f snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x7c879734 snd_util_memhdr_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xb3753500 snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xe30246e8 __snd_util_memblk_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xe99ffbf9 __snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xf26913d9 snd_util_memhdr_free
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x71331f07 snd_usbmidi_create
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x1826e568 dm_mem_cache_free
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x421dc2f6 dm_mem_cache_grow
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x48b52602 dm_mem_cache_alloc
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x81ffd9af dm_mem_cache_client_destroy
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xcb340aff dm_mem_cache_client_create
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xebbe6f9e dm_mem_cache_shrink
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x04dca738 lirc_unregister_driver
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x3ca92961 lirc_get_pdata
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x459a5598 lirc_register_driver
+EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list
+EXPORT_SYMBOL vmlinux 0x0010ab63 register_netdev
+EXPORT_SYMBOL vmlinux 0x003b4a7b fb_find_mode
+EXPORT_SYMBOL vmlinux 0x005901b6 scsi_put_command
+EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x009a950f nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x00ac9a03 fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer
+EXPORT_SYMBOL vmlinux 0x00d26bbb security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0x00d374d4 sg_miter_next
+EXPORT_SYMBOL vmlinux 0x00d99b0c __dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x00dc4586 mca_register_driver_integrated
+EXPORT_SYMBOL vmlinux 0x00de2af7 eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0x00e21f57 pnp_activate_dev
+EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x00ed7d74 writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0x010dd90d d_alloc
+EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr
+EXPORT_SYMBOL vmlinux 0x0115f30d pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0x01317f9f __xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0x014befb8 tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x0155e074 inet_put_port
+EXPORT_SYMBOL vmlinux 0x0159d2eb i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x0165ce65 __mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap
+EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data
+EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init
+EXPORT_SYMBOL vmlinux 0x01cc316a arch_debugfs_dir
+EXPORT_SYMBOL vmlinux 0x01d012d9 blk_start_queue
+EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem
+EXPORT_SYMBOL vmlinux 0x01d4fd03 elv_add_request
+EXPORT_SYMBOL vmlinux 0x01d5859e udp_proc_register
+EXPORT_SYMBOL vmlinux 0x01ff13a9 genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0x02003403 fddi_type_trans
+EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check
+EXPORT_SYMBOL vmlinux 0x0215a367 dev_addr_init
+EXPORT_SYMBOL vmlinux 0x0235d3fa bio_alloc
+EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu
+EXPORT_SYMBOL vmlinux 0x025be8d6 skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x0264d0eb xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x028f896d scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc
+EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table
+EXPORT_SYMBOL vmlinux 0x02ad0d55 inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler
+EXPORT_SYMBOL vmlinux 0x02b7e8a3 remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02daa8be __blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x02e43118 delayed_slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact
+EXPORT_SYMBOL vmlinux 0x02fc7fc8 blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x02fcaf91 generic_getxattr
+EXPORT_SYMBOL vmlinux 0x0305dc9e kill_fasync
+EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key
+EXPORT_SYMBOL vmlinux 0x032c7e14 in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x0333d320 init_net
+EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x03350317 dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set
+EXPORT_SYMBOL vmlinux 0x037a0cba kfree
+EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x04224a9a scsi_unregister
+EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x043f4598 bdi_register_dev
+EXPORT_SYMBOL vmlinux 0x04524dde netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x0455aa09 __starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x0456ca3e dm_io_client_create
+EXPORT_SYMBOL vmlinux 0x0460be11 dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x0497fc25 security_inode_permission
+EXPORT_SYMBOL vmlinux 0x04b763a1 mmc_host_disable
+EXPORT_SYMBOL vmlinux 0x04b770e6 tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x04bfc489 pnp_device_attach
+EXPORT_SYMBOL vmlinux 0x04d3b3b8 simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0x04f28b60 set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0x04f6acf8 kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0x05133c83 jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x0514b569 inet6_release
+EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups
+EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x0538a7e0 generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0x05553c11 rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x058c610d find_vma
+EXPORT_SYMBOL vmlinux 0x05b1aecc i2c_verify_client
+EXPORT_SYMBOL vmlinux 0x05c3025c km_policy_notify
+EXPORT_SYMBOL vmlinux 0x05e2d7f4 sock_create
+EXPORT_SYMBOL vmlinux 0x06030cbf module_layout
+EXPORT_SYMBOL vmlinux 0x06108e61 dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x061651be strcat
+EXPORT_SYMBOL vmlinux 0x062b835c security_task_getsecid
+EXPORT_SYMBOL vmlinux 0x063809ec blk_make_request
+EXPORT_SYMBOL vmlinux 0x0649e0d2 dma_release_declared_memory
+EXPORT_SYMBOL vmlinux 0x06791431 tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx
+EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache
+EXPORT_SYMBOL vmlinux 0x06a8933d pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x06bf0397 unregister_snap_client
+EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0x06ec6fb4 vfs_readdir
+EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn
+EXPORT_SYMBOL vmlinux 0x070a1aeb xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0x071f0021 scsi_init_io
+EXPORT_SYMBOL vmlinux 0x07271305 test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8
+EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace
+EXPORT_SYMBOL vmlinux 0x075386c7 xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource
+EXPORT_SYMBOL vmlinux 0x07760c1b idr_get_new
+EXPORT_SYMBOL vmlinux 0x078375e8 rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x07853ec6 netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x078a7874 mmc_add_host
+EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable
+EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong
+EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07bf2f6d vlan_gro_receive
+EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial
+EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x08155724 __xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x08271116 fb_is_primary_device
+EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses
+EXPORT_SYMBOL vmlinux 0x083565ea kthread_create
+EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0x08819230 tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0x08b52de5 tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0x08d44500 abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0x08d5179f pcim_pin_device
+EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x08fd36fd cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled
+EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq
+EXPORT_SYMBOL vmlinux 0x0944b537 handle_sysrq
+EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages
+EXPORT_SYMBOL vmlinux 0x09560f80 netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0x096ce950 processors
+EXPORT_SYMBOL vmlinux 0x09775cdc kref_get
+EXPORT_SYMBOL vmlinux 0x098436a8 vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0x09bfbcec ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions
+EXPORT_SYMBOL vmlinux 0x09f20dda idr_init
+EXPORT_SYMBOL vmlinux 0x0a08ae25 gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x0a14495a phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a3077ac dev_open
+EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr
+EXPORT_SYMBOL vmlinux 0x0a4ce889 tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x0a4f2bd1 tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x0a8d4a7d bitmap_unplug
+EXPORT_SYMBOL vmlinux 0x0abfab83 dquot_disable
+EXPORT_SYMBOL vmlinux 0x0ac38c93 dma_mark_declared_memory_occupied
+EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all
+EXPORT_SYMBOL vmlinux 0x0adb5cd0 scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0x0b096aa0 pci_get_subsys
+EXPORT_SYMBOL vmlinux 0x0b0b7e7d ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0x0b0d2b94 __break_lease
+EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert
+EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b2a0547 jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x0b3e7a05 k8_northbridges
+EXPORT_SYMBOL vmlinux 0x0b48b82d i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0x0b5132c1 uart_suspend_port
+EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b7854d6 insert_inode_locked
+EXPORT_SYMBOL vmlinux 0x0b98a066 blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0x0baa9d47 ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat
+EXPORT_SYMBOL vmlinux 0x0bd41d5a pci_get_class
+EXPORT_SYMBOL vmlinux 0x0bd463d3 vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0x0c133ad8 pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x0c1e0b26 scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0x0c20fd6a cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0x0c38bf7e phy_detach
+EXPORT_SYMBOL vmlinux 0x0c485fe9 nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x0c4ba4de jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0x0c57776a __inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0x0c5d64ea skb_trim
+EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c7f5f83 linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region
+EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cc6c566 inet_addr_type
+EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register
+EXPORT_SYMBOL vmlinux 0x0d27d219 eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type
+EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d650f20 pipe_to_file
+EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0dacca13 wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x0dc2e1f3 bdget
+EXPORT_SYMBOL vmlinux 0x0e034aef set_create_files_as
+EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x0e3d07b5 __rta_fill
+EXPORT_SYMBOL vmlinux 0x0e52592a panic
+EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x0e967c87 sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0x0ee26cfb generic_write_sync
+EXPORT_SYMBOL vmlinux 0x0ee3abd9 tcp_poll
+EXPORT_SYMBOL vmlinux 0x0ee8e840 add_disk
+EXPORT_SYMBOL vmlinux 0x0eef4bec pnp_disable_dev
+EXPORT_SYMBOL vmlinux 0x0efdb6bd sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x0f09e63f intel_scu_ipc_register_read
+EXPORT_SYMBOL vmlinux 0x0f4e9f1d __kfree_skb
+EXPORT_SYMBOL vmlinux 0x0f6ceaeb uart_get_divisor
+EXPORT_SYMBOL vmlinux 0x0f7111a9 generic_listxattr
+EXPORT_SYMBOL vmlinux 0x0f81a41b audit_log_end
+EXPORT_SYMBOL vmlinux 0x0f9512f0 dev_mc_init
+EXPORT_SYMBOL vmlinux 0x0f95c105 max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0faf3537 pci_iounmap
+EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event
+EXPORT_SYMBOL vmlinux 0x0fd15d82 flush_old_exec
+EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress
+EXPORT_SYMBOL vmlinux 0x100d8ba7 tcf_em_register
+EXPORT_SYMBOL vmlinux 0x101e6fbb cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0x102c56de irq_regs
+EXPORT_SYMBOL vmlinux 0x10397855 writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0x105d03ea lock_may_read
+EXPORT_SYMBOL vmlinux 0x1062ca9a phy_disconnect
+EXPORT_SYMBOL vmlinux 0x107a0364 blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint
+EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu
+EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype
+EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x118f01ea putname
+EXPORT_SYMBOL vmlinux 0x1196c754 journal_wipe
+EXPORT_SYMBOL vmlinux 0x11b3de62 alloc_hippi_dev
+EXPORT_SYMBOL vmlinux 0x11c3c3c2 kernel_connect
+EXPORT_SYMBOL vmlinux 0x11ce935e generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0x11d59cf1 mpage_writepages
+EXPORT_SYMBOL vmlinux 0x11da3cb6 path_is_under
+EXPORT_SYMBOL vmlinux 0x11dd01ad intel_scu_ipc_command
+EXPORT_SYMBOL vmlinux 0x11ed128f fb_class
+EXPORT_SYMBOL vmlinux 0x11f2d09f qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin
+EXPORT_SYMBOL vmlinux 0x11f98103 registered_fb
+EXPORT_SYMBOL vmlinux 0x1225450e thermal_cooling_device_unregister
+EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0x127d9558 netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x129cf554 security_file_mmap
+EXPORT_SYMBOL vmlinux 0x12c74ddd jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc
+EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x12f8ab51 pci_disable_device
+EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x131fbd3b neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x1327b332 generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x134810bd mmc_wait_for_app_cmd
+EXPORT_SYMBOL vmlinux 0x136dc4f1 __inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support
+EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid
+EXPORT_SYMBOL vmlinux 0x13c777eb prepare_creds
+EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation
+EXPORT_SYMBOL vmlinux 0x14200f4e genphy_update_link
+EXPORT_SYMBOL vmlinux 0x14221d98 blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0x142dc6c3 jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier
+EXPORT_SYMBOL vmlinux 0x1436917d down_write
+EXPORT_SYMBOL vmlinux 0x1452651c bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0x149ab9e6 fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x14b30775 generic_file_mmap
+EXPORT_SYMBOL vmlinux 0x14b6cd2e md_check_recovery
+EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x14dd5548 sock_i_ino
+EXPORT_SYMBOL vmlinux 0x14e90958 names_cachep
+EXPORT_SYMBOL vmlinux 0x14fad722 acpi_lock_ac_dir
+EXPORT_SYMBOL vmlinux 0x152639fd rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x15383c16 seq_lseek
+EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x155a2eac inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x1585d78f call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0x1599d330 vfs_create
+EXPORT_SYMBOL vmlinux 0x15b917ed tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister
+EXPORT_SYMBOL vmlinux 0x15f5cf6f tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled
+EXPORT_SYMBOL vmlinux 0x161b9493 i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0x16300e86 force_sig
+EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x163660ce load_nls
+EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock
+EXPORT_SYMBOL vmlinux 0x1669b6c2 vfs_statfs
+EXPORT_SYMBOL vmlinux 0x1676ce13 mca_device_read_pos
+EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1
+EXPORT_SYMBOL vmlinux 0x1681e1b5 task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0x168a8d87 thermal_zone_device_register
+EXPORT_SYMBOL vmlinux 0x16962f3a xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0x16a1dc87 __sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x16dc2771 lock_super
+EXPORT_SYMBOL vmlinux 0x16dca11e vga_switcheroo_register_handler
+EXPORT_SYMBOL vmlinux 0x16ddf48a pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object
+EXPORT_SYMBOL vmlinux 0x171c1da7 proto_unregister
+EXPORT_SYMBOL vmlinux 0x173d6895 rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0x17506df2 input_release_device
+EXPORT_SYMBOL vmlinux 0x1750c580 xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x1754d932 pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0x176158d1 input_event
+EXPORT_SYMBOL vmlinux 0x1783c8a7 i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0x17ce52f1 dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0x17cf62f1 xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x17d62e73 sock_no_listen
+EXPORT_SYMBOL vmlinux 0x17d870ea kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x17da95f7 eisa_driver_unregister
+EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x181e411c scsi_prep_return
+EXPORT_SYMBOL vmlinux 0x18243b36 fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0x1831ef5e scsi_get_command
+EXPORT_SYMBOL vmlinux 0x183314f7 scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0x183e74c0 netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL vmlinux 0x1860c666 md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0x187d337b md_register_thread
+EXPORT_SYMBOL vmlinux 0x18887eb5 xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0x18a5f5bc complete_request_key
+EXPORT_SYMBOL vmlinux 0x18ac0771 inet_frags_init
+EXPORT_SYMBOL vmlinux 0x18ad79b0 default_llseek
+EXPORT_SYMBOL vmlinux 0x18b20b13 dm_exception_store_type_unregister
+EXPORT_SYMBOL vmlinux 0x18d3beee thaw_process
+EXPORT_SYMBOL vmlinux 0x1921a2fe mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0x194db45b tr_type_trans
+EXPORT_SYMBOL vmlinux 0x195dc408 __netif_schedule
+EXPORT_SYMBOL vmlinux 0x197a40a5 i8042_install_filter
+EXPORT_SYMBOL vmlinux 0x197d86dd mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19a767e3 mmc_card_awake
+EXPORT_SYMBOL vmlinux 0x19be40cf pci_match_id
+EXPORT_SYMBOL vmlinux 0x1a11973c register_netdevice
+EXPORT_SYMBOL vmlinux 0x1a1b003e mca_device_transform_memory
+EXPORT_SYMBOL vmlinux 0x1a43e8a3 textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled
+EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch
+EXPORT_SYMBOL vmlinux 0x1a85570a bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait
+EXPORT_SYMBOL vmlinux 0x1a8fbaae arp_send
+EXPORT_SYMBOL vmlinux 0x1a9110ea kmem_cache_size
+EXPORT_SYMBOL vmlinux 0x1a925a66 down
+EXPORT_SYMBOL vmlinux 0x1aa00efa sk_filter
+EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in
+EXPORT_SYMBOL vmlinux 0x1ac2d5f0 bio_pair_release
+EXPORT_SYMBOL vmlinux 0x1ac4bfd7 inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1ad82afc follow_down
+EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b13f394 idr_pre_get
+EXPORT_SYMBOL vmlinux 0x1b1f2597 blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0x1b3a37b8 i2c_release_client
+EXPORT_SYMBOL vmlinux 0x1b448411 i2c_del_driver
+EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton
+EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1bae748e netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0x1c1365f4 neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c29ee0e seq_path
+EXPORT_SYMBOL vmlinux 0x1c36f9c9 mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0x1c47c15b vfs_link
+EXPORT_SYMBOL vmlinux 0x1c549bdb page_symlink
+EXPORT_SYMBOL vmlinux 0x1c57100f neigh_destroy
+EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset
+EXPORT_SYMBOL vmlinux 0x1c99ecab blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0x1cbc7821 write_one_page
+EXPORT_SYMBOL vmlinux 0x1cbf04aa contig_page_data
+EXPORT_SYMBOL vmlinux 0x1cc0e232 tcp_read_sock
+EXPORT_SYMBOL vmlinux 0x1cc1b329 set_device_ro
+EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cd86e80 blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x1ce24d1a udp_prot
+EXPORT_SYMBOL vmlinux 0x1cf28e03 journal_revoke
+EXPORT_SYMBOL vmlinux 0x1cf33ddf seq_release_private
+EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d37c8df pnp_possible_config
+EXPORT_SYMBOL vmlinux 0x1d5df0ee inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0x1d833c08 dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x1d836139 __pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0x1d938165 inet_csk_accept
+EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe
+EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc
+EXPORT_SYMBOL vmlinux 0x1e301465 xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr
+EXPORT_SYMBOL vmlinux 0x1e8e617e inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1ec0ad89 rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x1ed5d573 xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0x1ee7dba9 __mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set
+EXPORT_SYMBOL vmlinux 0x1f1299a3 cdev_alloc
+EXPORT_SYMBOL vmlinux 0x1f14b70a follow_pfn
+EXPORT_SYMBOL vmlinux 0x1f52322d scm_detach_fds
+EXPORT_SYMBOL vmlinux 0x1f7b2304 bdev_read_only
+EXPORT_SYMBOL vmlinux 0x1f927f28 kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x1fa9bbf8 phy_attach
+EXPORT_SYMBOL vmlinux 0x1fab148b tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0x1fcf8ab8 acpi_processor_notify_smm
+EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag
+EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region
+EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat
+EXPORT_SYMBOL vmlinux 0x1ff83543 __dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x1ff8ca16 blkdev_put
+EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul
+EXPORT_SYMBOL vmlinux 0x20043092 nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x20111528 bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x2035e3fc dst_alloc
+EXPORT_SYMBOL vmlinux 0x20382d73 pci_try_set_mwi
+EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x206a4ad8 cdrom_mode_sense
+EXPORT_SYMBOL vmlinux 0x2071c371 sk_alloc
+EXPORT_SYMBOL vmlinux 0x207331f9 seq_puts
+EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x207fc42b path_get
+EXPORT_SYMBOL vmlinux 0x2085d625 set_trace_device
+EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table
+EXPORT_SYMBOL vmlinux 0x209ed12d i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0x20a79c3b pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0x20bdf188 mmc_power_save_host
+EXPORT_SYMBOL vmlinux 0x20c6192f intel_scu_ipc_ioread32
+EXPORT_SYMBOL vmlinux 0x21073c1d netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0x2119316f block_write_full_page
+EXPORT_SYMBOL vmlinux 0x211c4762 submit_bh
+EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16
+EXPORT_SYMBOL vmlinux 0x21678910 netlink_set_err
+EXPORT_SYMBOL vmlinux 0x21741faf dump_trace
+EXPORT_SYMBOL vmlinux 0x21b029ef nla_append
+EXPORT_SYMBOL vmlinux 0x21d7b4a1 skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id
+EXPORT_SYMBOL vmlinux 0x21e6c7b6 tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x221a3437 tcp_v4_remember_stamp
+EXPORT_SYMBOL vmlinux 0x2226a2b8 scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq
+EXPORT_SYMBOL vmlinux 0x22323594 pci_find_capability
+EXPORT_SYMBOL vmlinux 0x223d61fb dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0x226ac487 blk_integrity_register
+EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log
+EXPORT_SYMBOL vmlinux 0x226f4405 dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0x227c6dac __bio_clone
+EXPORT_SYMBOL vmlinux 0x2288378f system_state
+EXPORT_SYMBOL vmlinux 0x2295e5d2 tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound
+EXPORT_SYMBOL vmlinux 0x22b946e9 pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0x22c7265d input_set_keycode
+EXPORT_SYMBOL vmlinux 0x22cea7f7 __xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x22f9702d dentry_open
+EXPORT_SYMBOL vmlinux 0x23088b0c dma_set_mask
+EXPORT_SYMBOL vmlinux 0x2309f8c6 simple_transaction_get
+EXPORT_SYMBOL vmlinux 0x231ab5cc md_integrity_register
+EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul
+EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x2359503a pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0x2359bd96 nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x2391d23e register_snap_client
+EXPORT_SYMBOL vmlinux 0x23b1006b bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0x23c63b10 vmap
+EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23f38179 nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node
+EXPORT_SYMBOL vmlinux 0x2408523c blkdev_fsync
+EXPORT_SYMBOL vmlinux 0x243e4f05 kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x244db71a neigh_for_each
+EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x24809838 journal_flush
+EXPORT_SYMBOL vmlinux 0x24aae7fd disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x24ad3393 dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x24b6c0f4 pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add
+EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function
+EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x250b30af ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid
+EXPORT_SYMBOL vmlinux 0x251a8cb4 dquot_transfer
+EXPORT_SYMBOL vmlinux 0x25653774 unregister_netdev
+EXPORT_SYMBOL vmlinux 0x2570e7cc blk_put_request
+EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x25bf61cb qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0x25c0f499 inet_accept
+EXPORT_SYMBOL vmlinux 0x25c70d3d redraw_screen
+EXPORT_SYMBOL vmlinux 0x25c77c74 init_special_inode
+EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0x25eb5a50 journal_forget
+EXPORT_SYMBOL vmlinux 0x25ee698f pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0x26234f21 read_cache_page_async
+EXPORT_SYMBOL vmlinux 0x2628c04c neigh_update
+EXPORT_SYMBOL vmlinux 0x263c2db9 udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x26518b68 idr_replace
+EXPORT_SYMBOL vmlinux 0x26739872 __dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x2676e0d5 dm_io_client_resize
+EXPORT_SYMBOL vmlinux 0x26840cd7 __dst_free
+EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close
+EXPORT_SYMBOL vmlinux 0x26b03c9c security_path_unlink
+EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create
+EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler
+EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del
+EXPORT_SYMBOL vmlinux 0x27431f83 d_add_ci
+EXPORT_SYMBOL vmlinux 0x274f0945 bio_map_user
+EXPORT_SYMBOL vmlinux 0x2751cf88 dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0x275e0e05 unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0x276e1aae pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0x2781cd6e gen_pool_add
+EXPORT_SYMBOL vmlinux 0x27864d57 memparse
+EXPORT_SYMBOL vmlinux 0x2796ed15 ip6_frag_match
+EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic
+EXPORT_SYMBOL vmlinux 0x27e2a11a tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0x27ea9d67 posix_acl_permission
+EXPORT_SYMBOL vmlinux 0x27f548e7 eth_header_parse
+EXPORT_SYMBOL vmlinux 0x281a4fb9 sock_init_data
+EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll
+EXPORT_SYMBOL vmlinux 0x2872d881 tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x2881dfad sk_receive_skb
+EXPORT_SYMBOL vmlinux 0x28870c63 sk_reset_txq
+EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28b20ba1 ilookup
+EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end
+EXPORT_SYMBOL vmlinux 0x29026760 alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x291cf882 inet_register_protosw
+EXPORT_SYMBOL vmlinux 0x291fcb4e netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x2964a46d generic_delete_inode
+EXPORT_SYMBOL vmlinux 0x29667e40 acpi_bus_add
+EXPORT_SYMBOL vmlinux 0x296ae16a inet_select_addr
+EXPORT_SYMBOL vmlinux 0x2999a862 kmem_cache_create
+EXPORT_SYMBOL vmlinux 0x29a3dde0 llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0x29a4fcb7 softnet_data
+EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set
+EXPORT_SYMBOL vmlinux 0x29d21db2 ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x29e9d8aa skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x29f0cc45 dev_driver_string
+EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq
+EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature
+EXPORT_SYMBOL vmlinux 0x2a5def2f intel_scu_ipc_iowrite32
+EXPORT_SYMBOL vmlinux 0x2a72204a end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0x2a79524e pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x2a7b8467 __tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp
+EXPORT_SYMBOL vmlinux 0x2ab9e91e security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b2517f2 do_sync_read
+EXPORT_SYMBOL vmlinux 0x2b259bbb tty_port_open
+EXPORT_SYMBOL vmlinux 0x2b2a0e2f generic_file_open
+EXPORT_SYMBOL vmlinux 0x2b2f8251 tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0x2b30e722 pci_set_mwi
+EXPORT_SYMBOL vmlinux 0x2b42e8bb generic_write_checks
+EXPORT_SYMBOL vmlinux 0x2b43f212 cont_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x2b484e87 __nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x2b56cf8c blk_init_queue
+EXPORT_SYMBOL vmlinux 0x2b5d5823 do_splice_from
+EXPORT_SYMBOL vmlinux 0x2b83c53f directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0x2b8e8553 kset_register
+EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock
+EXPORT_SYMBOL vmlinux 0x2b9df70b blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2bab2b2e __dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler
+EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset
+EXPORT_SYMBOL vmlinux 0x2bcc8339 __scsi_add_device
+EXPORT_SYMBOL vmlinux 0x2bd08b48 page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0x2bf11c82 pci_disable_link_state
+EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle
+EXPORT_SYMBOL vmlinux 0x2c10a78f audit_log_format
+EXPORT_SYMBOL vmlinux 0x2c3f7a57 sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x2c6d4cee clear_inode
+EXPORT_SYMBOL vmlinux 0x2c70f80b padata_set_cpumask
+EXPORT_SYMBOL vmlinux 0x2c7d5821 consume_skb
+EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x2cdced55 set_blocksize
+EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic
+EXPORT_SYMBOL vmlinux 0x2d0cb1f6 fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d22901b put_page
+EXPORT_SYMBOL vmlinux 0x2d28b16a blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask
+EXPORT_SYMBOL vmlinux 0x2d39ca87 km_policy_expired
+EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x2d506c78 get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x2d878674 neigh_table_init
+EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2da65be8 bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x2dcac828 set_page_dirty
+EXPORT_SYMBOL vmlinux 0x2dcc4ecf mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu
+EXPORT_SYMBOL vmlinux 0x2deb7136 ether_setup
+EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception
+EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e2da753 single_release
+EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem
+EXPORT_SYMBOL vmlinux 0x2e60bace memcpy
+EXPORT_SYMBOL vmlinux 0x2e70b4e2 dma_pool_free
+EXPORT_SYMBOL vmlinux 0x2e953710 setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x2ea88596 serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x2f019603 input_get_keycode
+EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource
+EXPORT_SYMBOL vmlinux 0x2f17fcca atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user
+EXPORT_SYMBOL vmlinux 0x2f2f550c journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x2f451a60 thaw_bdev
+EXPORT_SYMBOL vmlinux 0x2f724554 bio_add_page
+EXPORT_SYMBOL vmlinux 0x2f7e3cb5 pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0x2f895941 qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x2f9c44a4 lro_vlan_hwaccel_receive_skb
+EXPORT_SYMBOL vmlinux 0x2fa393cb cdev_init
+EXPORT_SYMBOL vmlinux 0x2fb3c092 xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x2fbd2d93 skb_recycle_check
+EXPORT_SYMBOL vmlinux 0x2fd4cd74 pci_enable_device
+EXPORT_SYMBOL vmlinux 0x2fd8ef62 rt6_lookup
+EXPORT_SYMBOL vmlinux 0x30318a85 xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0x3046dea0 filp_open
+EXPORT_SYMBOL vmlinux 0x304e2a34 skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x3068053d tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0x30b882ea check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x30bfc96e journal_update_format
+EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write
+EXPORT_SYMBOL vmlinux 0x30dda86a end_page_writeback
+EXPORT_SYMBOL vmlinux 0x30e00123 sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0x310917fe sort
+EXPORT_SYMBOL vmlinux 0x310d5dda security_path_rmdir
+EXPORT_SYMBOL vmlinux 0x310f098a proc_mkdir
+EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x311e2c2c elv_register_queue
+EXPORT_SYMBOL vmlinux 0x3140daf8 alloc_disk_node
+EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d default_red
+EXPORT_SYMBOL vmlinux 0x314d51ff splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x3154c63f iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc
+EXPORT_SYMBOL vmlinux 0x31b28fdf tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0x31c217d2 md_write_end
+EXPORT_SYMBOL vmlinux 0x31cf467a max8925_reg_write
+EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz
+EXPORT_SYMBOL vmlinux 0x31e7ba17 fd_install
+EXPORT_SYMBOL vmlinux 0x31f444e9 d_validate
+EXPORT_SYMBOL vmlinux 0x31faa917 dev_uc_sync
+EXPORT_SYMBOL vmlinux 0x3208b173 ___pskb_trim
+EXPORT_SYMBOL vmlinux 0x321eb953 jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0x323329ca abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0x32501e68 lookup_one_len
+EXPORT_SYMBOL vmlinux 0x32605322 unregister_console
+EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat
+EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x32808adb seq_escape
+EXPORT_SYMBOL vmlinux 0x3283c969 set_groups
+EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint
+EXPORT_SYMBOL vmlinux 0x328e86e3 nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x32ab71ab ps2_begin_command
+EXPORT_SYMBOL vmlinux 0x32ca9939 set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0x32d8050d udp_disconnect
+EXPORT_SYMBOL vmlinux 0x32f14eb6 get_disk
+EXPORT_SYMBOL vmlinux 0x32ff7663 netif_device_attach
+EXPORT_SYMBOL vmlinux 0x330c89b6 find_or_create_page
+EXPORT_SYMBOL vmlinux 0x33140607 generic_setlease
+EXPORT_SYMBOL vmlinux 0x334cb89f get_write_access
+EXPORT_SYMBOL vmlinux 0x3363d1e6 slow_work_register_user
+EXPORT_SYMBOL vmlinux 0x336a1a4d neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x33a050de __f_setown
+EXPORT_SYMBOL vmlinux 0x34016296 ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0x342f60fe apm_info
+EXPORT_SYMBOL vmlinux 0x3438171f bioset_create
+EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long
+EXPORT_SYMBOL vmlinux 0x345a118e close_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x3470853b key_negate_and_link
+EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x349cba85 strchr
+EXPORT_SYMBOL vmlinux 0x349d57f9 skb_pull
+EXPORT_SYMBOL vmlinux 0x34c265bf atomic64_dec_if_positive_cx8
+EXPORT_SYMBOL vmlinux 0x34d3013f jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0x34dcf959 tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0x3536193e get_sb_pseudo
+EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe
+EXPORT_SYMBOL vmlinux 0x354972cf security_path_chmod
+EXPORT_SYMBOL vmlinux 0x357bdd5c __sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0x359565cf blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0x35a344a9 genphy_suspend
+EXPORT_SYMBOL vmlinux 0x35a74df7 inetdev_by_index
+EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator
+EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x360867ea sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask
+EXPORT_SYMBOL vmlinux 0x36255db9 fasync_helper
+EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user
+EXPORT_SYMBOL vmlinux 0x364e2ce5 generic_readlink
+EXPORT_SYMBOL vmlinux 0x367b4bfa elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg
+EXPORT_SYMBOL vmlinux 0x36ac6208 kernel_getpeername
+EXPORT_SYMBOL vmlinux 0x36bff149 tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0x36c27e48 mmc_set_data_timeout
+EXPORT_SYMBOL vmlinux 0x36c6af51 intel_scu_ipc_iowrite8
+EXPORT_SYMBOL vmlinux 0x36cb3454 kobject_del
+EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36f5672c pci_clear_master
+EXPORT_SYMBOL vmlinux 0x36f84da3 dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0x37337cd7 blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf
+EXPORT_SYMBOL vmlinux 0x3779d09b ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x377d545c read_cache_page
+EXPORT_SYMBOL vmlinux 0x378bcb79 register_filesystem
+EXPORT_SYMBOL vmlinux 0x37a02d02 is_container_init
+EXPORT_SYMBOL vmlinux 0x37a2f623 sk_stream_error
+EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic
+EXPORT_SYMBOL vmlinux 0x37b3c3c7 starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37db82d6 ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date
+EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64
+EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow
+EXPORT_SYMBOL vmlinux 0x380d270c setup_new_exec
+EXPORT_SYMBOL vmlinux 0x380fa1ff ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x382b6846 scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x382d43fe sock_create_lite
+EXPORT_SYMBOL vmlinux 0x38310948 simple_transaction_set
+EXPORT_SYMBOL vmlinux 0x383a388d md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0x38497c47 udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0x38551568 idr_for_each
+EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe
+EXPORT_SYMBOL vmlinux 0x388997f7 netif_napi_add
+EXPORT_SYMBOL vmlinux 0x388bbe40 scsi_register_driver
+EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x38a14d4f sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0x38aa7d58 rwsem_wake
+EXPORT_SYMBOL vmlinux 0x38b7db06 tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0x39291142 devm_free_irq
+EXPORT_SYMBOL vmlinux 0x3957530e blk_recount_segments
+EXPORT_SYMBOL vmlinux 0x39591295 nf_afinfo
+EXPORT_SYMBOL vmlinux 0x3967cdae vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x39923482 mca_device_set_claim
+EXPORT_SYMBOL vmlinux 0x39b39cb2 wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x39b98fc0 dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0x39ded85f dm_snap_cow
+EXPORT_SYMBOL vmlinux 0x39fc5e62 udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x3a150a09 uart_add_one_port
+EXPORT_SYMBOL vmlinux 0x3a179ad7 journal_start_commit
+EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a402be8 __generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x3a6497fe zero_fill_bio
+EXPORT_SYMBOL vmlinux 0x3a69adc3 otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all
+EXPORT_SYMBOL vmlinux 0x3a73f2bd scsi_dma_map
+EXPORT_SYMBOL vmlinux 0x3a91caea gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3a9e3b8d mmc_power_restore_host
+EXPORT_SYMBOL vmlinux 0x3ad5d9f4 vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x3ae37253 iget5_locked
+EXPORT_SYMBOL vmlinux 0x3aec5f07 md_unregister_thread
+EXPORT_SYMBOL vmlinux 0x3b053eeb __napi_complete
+EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b4f0df2 seq_bitmap
+EXPORT_SYMBOL vmlinux 0x3b622328 kobject_get
+EXPORT_SYMBOL vmlinux 0x3b637078 locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x3b7ab816 qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0x3b7dbc59 wireless_spy_update
+EXPORT_SYMBOL vmlinux 0x3b7ebd4d backlight_device_register
+EXPORT_SYMBOL vmlinux 0x3b97b6e6 xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3bd84506 netlink_unicast
+EXPORT_SYMBOL vmlinux 0x3bee2159 skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0x3c11ec91 sock_wmalloc
+EXPORT_SYMBOL vmlinux 0x3c287bef jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf
+EXPORT_SYMBOL vmlinux 0x3c568c17 __task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x3c7766ca mca_unregister_driver
+EXPORT_SYMBOL vmlinux 0x3c79e531 llc_add_pack
+EXPORT_SYMBOL vmlinux 0x3c7c1b5c journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x3c8c02cc __register_binfmt
+EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size
+EXPORT_SYMBOL vmlinux 0x3ca7dc86 find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x3cd698a5 __blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq
+EXPORT_SYMBOL vmlinux 0x3cf1a046 set_pages_array_wb
+EXPORT_SYMBOL vmlinux 0x3d1f2c96 fsnotify_obtain_group
+EXPORT_SYMBOL vmlinux 0x3d25617a scsi_remove_target
+EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0x3d605d5d textsearch_register
+EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc
+EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start
+EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat
+EXPORT_SYMBOL vmlinux 0x3dc2b1e8 save_mount_options
+EXPORT_SYMBOL vmlinux 0x3dc62ffd pnp_is_active
+EXPORT_SYMBOL vmlinux 0x3de030f6 dm_dirty_log_type_register
+EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e01b208 pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock
+EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks
+EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0x3e8bc645 tty_vhangup
+EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3eacb406 elv_rb_find
+EXPORT_SYMBOL vmlinux 0x3eb548e3 dm_table_unplug_all
+EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3edc1377 vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0x3ef78d80 vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x3eff54fd tty_register_device
+EXPORT_SYMBOL vmlinux 0x3eff5ac2 intel_scu_ipc_writev
+EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f123817 lookup_bdev
+EXPORT_SYMBOL vmlinux 0x3f1296c9 splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0x3f178891 blk_run_queue
+EXPORT_SYMBOL vmlinux 0x3f18eaa8 blk_complete_request
+EXPORT_SYMBOL vmlinux 0x3f19362b pci_request_region
+EXPORT_SYMBOL vmlinux 0x3f1bc368 call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0x3f254564 create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x3f2f650f md_barrier_request
+EXPORT_SYMBOL vmlinux 0x3f3159b4 gen_pool_free
+EXPORT_SYMBOL vmlinux 0x3f31bccf gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f471f7c scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq
+EXPORT_SYMBOL vmlinux 0x3f841445 xfrm_input
+EXPORT_SYMBOL vmlinux 0x3fec048f sg_next
+EXPORT_SYMBOL vmlinux 0x3feeff48 phy_enable_interrupts
+EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable
+EXPORT_SYMBOL vmlinux 0x3ffd2570 spi_dv_device
+EXPORT_SYMBOL vmlinux 0x402a8386 ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0x4038086d update_region
+EXPORT_SYMBOL vmlinux 0x405614c7 scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump
+EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds
+EXPORT_SYMBOL vmlinux 0x405d0fab bio_put
+EXPORT_SYMBOL vmlinux 0x4062aef8 tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register
+EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40a99adf mmc_host_lazy_disable
+EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index
+EXPORT_SYMBOL vmlinux 0x40fba2d2 sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring
+EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode
+EXPORT_SYMBOL vmlinux 0x41105216 put_tty_driver
+EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp
+EXPORT_SYMBOL vmlinux 0x4147f3b8 unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user
+EXPORT_SYMBOL vmlinux 0x416137b1 gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features
+EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x41a50ef6 dma_async_memcpy_buf_to_buf
+EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock
+EXPORT_SYMBOL vmlinux 0x41f9fac5 __vlan_hwaccel_rx
+EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write
+EXPORT_SYMBOL vmlinux 0x420cda73 journal_restart
+EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x4214ed96 tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x42224298 sscanf
+EXPORT_SYMBOL vmlinux 0x4231c6a5 inode_init_owner
+EXPORT_SYMBOL vmlinux 0x423d077d nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force
+EXPORT_SYMBOL vmlinux 0x426cf20b cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0x427580dc fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x427f5ae3 sockfd_lookup
+EXPORT_SYMBOL vmlinux 0x428251ab ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0x4283d61c tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0x4292364c schedule
+EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42ac8be7 pci_choose_state
+EXPORT_SYMBOL vmlinux 0x42b1ac69 sk_dst_check
+EXPORT_SYMBOL vmlinux 0x42c16c49 register_key_type
+EXPORT_SYMBOL vmlinux 0x42c344b5 i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x42f57f5e pcim_enable_device
+EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages
+EXPORT_SYMBOL vmlinux 0x431e164f unregister_cdrom
+EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short
+EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem
+EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32
+EXPORT_SYMBOL vmlinux 0x438e10cf blk_requeue_request
+EXPORT_SYMBOL vmlinux 0x438ecc5d skb_dequeue
+EXPORT_SYMBOL vmlinux 0x439bdc47 no_llseek
+EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get
+EXPORT_SYMBOL vmlinux 0x43ede7a3 do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0x43fc3375 dm_get_device
+EXPORT_SYMBOL vmlinux 0x4413c7e5 scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0x444779c4 nla_find
+EXPORT_SYMBOL vmlinux 0x4454ee6c journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x446789bb blk_init_tags
+EXPORT_SYMBOL vmlinux 0x44828927 journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x4495c48d uart_resume_port
+EXPORT_SYMBOL vmlinux 0x449e2602 jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x44aac1e9 generic_read_dir
+EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz
+EXPORT_SYMBOL vmlinux 0x44c97afa tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0x44e3dbb4 skb_seq_read
+EXPORT_SYMBOL vmlinux 0x44e9a829 match_token
+EXPORT_SYMBOL vmlinux 0x44eb77e7 key_revoke
+EXPORT_SYMBOL vmlinux 0x44fa26d0 get_sb_ns
+EXPORT_SYMBOL vmlinux 0x45173103 journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x4519caca mca_device_transform_irq
+EXPORT_SYMBOL vmlinux 0x452ba0cb pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0x453028dd block_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x45314b12 dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x4535d16b read_dev_sector
+EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled
+EXPORT_SYMBOL vmlinux 0x4541a3c8 task_nice
+EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x4554b53d mca_device_read_stored_pos
+EXPORT_SYMBOL vmlinux 0x4567ac9a acpi_bus_start
+EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0x45947727 param_array_set
+EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states
+EXPORT_SYMBOL vmlinux 0x45a32f1f unbind_con_driver
+EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45de9df3 sock_no_bind
+EXPORT_SYMBOL vmlinux 0x45e5353b dma_find_channel
+EXPORT_SYMBOL vmlinux 0x45e88123 vga_put
+EXPORT_SYMBOL vmlinux 0x45eace02 nobh_writepage
+EXPORT_SYMBOL vmlinux 0x45f5aae3 dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0x46015c5e neigh_create
+EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy
+EXPORT_SYMBOL vmlinux 0x463ed2f0 blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0x464c83d9 log_wait_commit
+EXPORT_SYMBOL vmlinux 0x466c14a7 __delay
+EXPORT_SYMBOL vmlinux 0x468e5ac9 lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x46ce6d0d neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x46cfb3d7 page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0x46e198f0 ab3100_event_register
+EXPORT_SYMBOL vmlinux 0x47035120 ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x4703e53f netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x47376f41 pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0x474721c6 __page_symlink
+EXPORT_SYMBOL vmlinux 0x4748a227 sk_reset_timer
+EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects
+EXPORT_SYMBOL vmlinux 0x4764b869 scsi_print_command
+EXPORT_SYMBOL vmlinux 0x47880a0b splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0x47899c17 pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq
+EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit
+EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number
+EXPORT_SYMBOL vmlinux 0x4809f3d9 ip_dev_find
+EXPORT_SYMBOL vmlinux 0x480f14d9 scsi_add_device
+EXPORT_SYMBOL vmlinux 0x480ff0b7 sk_wait_data
+EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open
+EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep
+EXPORT_SYMBOL vmlinux 0x48327a43 simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days
+EXPORT_SYMBOL vmlinux 0x487fb240 __netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x4896ff0c dm_unregister_target
+EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map
+EXPORT_SYMBOL vmlinux 0x48cf0477 call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0x48d16de3 netpoll_poll_dev
+EXPORT_SYMBOL vmlinux 0x48ef274c sock_recvmsg
+EXPORT_SYMBOL vmlinux 0x4905bc15 jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x490f0062 vfs_follow_link
+EXPORT_SYMBOL vmlinux 0x491e467a inet_release
+EXPORT_SYMBOL vmlinux 0x4933034a pipe_unlock
+EXPORT_SYMBOL vmlinux 0x493911d8 mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x493bc353 dquot_alloc
+EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x4949b504 tty_port_put
+EXPORT_SYMBOL vmlinux 0x494d5ab9 __pagevec_release
+EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x49a08099 kmem_ptr_validate
+EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49b3c2bd pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0x49cc838c scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0x49d78f88 mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string
+EXPORT_SYMBOL vmlinux 0x4a108149 kill_pid
+EXPORT_SYMBOL vmlinux 0x4a1c5a9c phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x4a345693 ppp_output_wakeup
+EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a4f994c uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0x4a901cd1 lock_may_write
+EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc
+EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x4ac52438 dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x4accd654 ip_route_output_key
+EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource
+EXPORT_SYMBOL vmlinux 0x4afa3dc8 i2c_master_recv
+EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b17eaa2 __invalidate_device
+EXPORT_SYMBOL vmlinux 0x4b257e53 sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals
+EXPORT_SYMBOL vmlinux 0x4b722415 alloc_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0x4b7c4b08 __nla_put
+EXPORT_SYMBOL vmlinux 0x4b95e6a4 sock_wfree
+EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags
+EXPORT_SYMBOL vmlinux 0x4c0d5848 blk_rq_init
+EXPORT_SYMBOL vmlinux 0x4c0e16aa ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c2a71db pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr
+EXPORT_SYMBOL vmlinux 0x4c340bb1 skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x4c4a27e5 neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x4c6ba508 kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x4c82f798 shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x4c8829f4 filemap_fault
+EXPORT_SYMBOL vmlinux 0x4c9b8b6c iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cd35443 tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0x4cdb86d7 tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0x4ce08440 udp_poll
+EXPORT_SYMBOL vmlinux 0x4ce90af0 sock_rfree
+EXPORT_SYMBOL vmlinux 0x4d081718 tty_free_termios
+EXPORT_SYMBOL vmlinux 0x4d178397 acpi_bus_unregister_driver
+EXPORT_SYMBOL vmlinux 0x4d1d2cf3 vfs_rename
+EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8
+EXPORT_SYMBOL vmlinux 0x4d2d67b8 mem_map
+EXPORT_SYMBOL vmlinux 0x4d355d91 thaw_super
+EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask
+EXPORT_SYMBOL vmlinux 0x4d76e561 key_unlink
+EXPORT_SYMBOL vmlinux 0x4d85ac95 blk_plug_device_unlocked
+EXPORT_SYMBOL vmlinux 0x4da00277 pnp_stop_dev
+EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dcd3604 fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0x4dd7bc53 skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child
+EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int
+EXPORT_SYMBOL vmlinux 0x4e46c7e8 key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0x4e5e219a security_path_mknod
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console
+EXPORT_SYMBOL vmlinux 0x4e743069 textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp
+EXPORT_SYMBOL vmlinux 0x4e93c516 phy_disable_interrupts
+EXPORT_SYMBOL vmlinux 0x4eaa87c4 keyring_search
+EXPORT_SYMBOL vmlinux 0x4eb146a8 skb_queue_tail
+EXPORT_SYMBOL vmlinux 0x4ebf151b get_user_pages
+EXPORT_SYMBOL vmlinux 0x4eccff83 pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0x4eff2e94 tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f3647d0 dma_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x4f3cc07e module_put
+EXPORT_SYMBOL vmlinux 0x4f3e6450 dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt
+EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read
+EXPORT_SYMBOL vmlinux 0x4f79af05 simple_set_mnt
+EXPORT_SYMBOL vmlinux 0x4f877cdd rtnl_create_link
+EXPORT_SYMBOL vmlinux 0x4f937654 __blk_run_queue
+EXPORT_SYMBOL vmlinux 0x4fae9e25 revalidate_disk
+EXPORT_SYMBOL vmlinux 0x4fdda67b qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x4fde41f6 kmem_cache_alloc_node_notrace
+EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command
+EXPORT_SYMBOL vmlinux 0x4fef871b neigh_lookup
+EXPORT_SYMBOL vmlinux 0x4ffc3971 dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0x5003bb3b i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x5032ba38 tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0x5051eb8e alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status
+EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x5071121c ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x5082f8cd vga_switcheroo_unregister_client
+EXPORT_SYMBOL vmlinux 0x5097ed1f set_pages_array_wc
+EXPORT_SYMBOL vmlinux 0x50a9e7a1 brioctl_set
+EXPORT_SYMBOL vmlinux 0x50b19420 do_sync_write
+EXPORT_SYMBOL vmlinux 0x50d27c5e request_key_async
+EXPORT_SYMBOL vmlinux 0x50fa44f1 phy_device_register
+EXPORT_SYMBOL vmlinux 0x50feb128 uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x51128e5d sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x512df144 uart_match_port
+EXPORT_SYMBOL vmlinux 0x51355888 bitmap_cond_end_sync
+EXPORT_SYMBOL vmlinux 0x5152e605 memcmp
+EXPORT_SYMBOL vmlinux 0x5186518f profile_pc
+EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn
+EXPORT_SYMBOL vmlinux 0x518ee1e6 tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0x51955e3a elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0x51ab3507 inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled
+EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x51e49f77 get_io_context
+EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup
+EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data
+EXPORT_SYMBOL vmlinux 0x52218f18 invalidate_partition
+EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue
+EXPORT_SYMBOL vmlinux 0x523bf5c7 ppp_input_error
+EXPORT_SYMBOL vmlinux 0x527273a6 console_stop
+EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday
+EXPORT_SYMBOL vmlinux 0x52872b97 ida_destroy
+EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x52934410 __set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x529c1168 icmpv6_send
+EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy
+EXPORT_SYMBOL vmlinux 0x52c2ef34 rb_erase
+EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort
+EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend
+EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid
+EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x5332fe7d seq_open_private
+EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat
+EXPORT_SYMBOL vmlinux 0x534f5673 skb_clone
+EXPORT_SYMBOL vmlinux 0x534f5d95 dmam_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x536b2670 i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0x5374d239 insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0x537798c5 notify_change
+EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x53d55813 dquot_operations
+EXPORT_SYMBOL vmlinux 0x53dab193 bitmap_end_sync
+EXPORT_SYMBOL vmlinux 0x53e378ea block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x53e3a3fb serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x53fa8d89 pcie_port_service_register
+EXPORT_SYMBOL vmlinux 0x54005641 idr_get_new_above
+EXPORT_SYMBOL vmlinux 0x5418d596 journal_errno
+EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate
+EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x54488be9 lock_fb_info
+EXPORT_SYMBOL vmlinux 0x5451300c inet_listen
+EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port
+EXPORT_SYMBOL vmlinux 0x549b44d1 fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8
+EXPORT_SYMBOL vmlinux 0x54be6d75 vc_resize
+EXPORT_SYMBOL vmlinux 0x54c0192c bdget_disk
+EXPORT_SYMBOL vmlinux 0x54c3a71d inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x54de9f76 tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x54e1b9fc fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54e77e02 genl_register_ops
+EXPORT_SYMBOL vmlinux 0x5520c2be tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0x553c3d83 unregister_qdisc
+EXPORT_SYMBOL vmlinux 0x55444f35 pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0x555e7951 icmp_send
+EXPORT_SYMBOL vmlinux 0x5582ccbf kernel_accept
+EXPORT_SYMBOL vmlinux 0x5590cf2b sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x55ab214f unlock_buffer
+EXPORT_SYMBOL vmlinux 0x55c2f3d5 uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0x55d85a41 phy_register_fixup
+EXPORT_SYMBOL vmlinux 0x55f1335f I_BDEV
+EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x5600f102 phy_sanitize_settings
+EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday
+EXPORT_SYMBOL vmlinux 0x56131cd2 acpi_bus_generate_proc_event
+EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user
+EXPORT_SYMBOL vmlinux 0x565ac880 dma_release_from_coherent
+EXPORT_SYMBOL vmlinux 0x566d03dc inode_setattr
+EXPORT_SYMBOL vmlinux 0x5676a3e5 intel_scu_ipc_ioread8
+EXPORT_SYMBOL vmlinux 0x569f1fae skb_gso_segment
+EXPORT_SYMBOL vmlinux 0x56be2bc3 n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr
+EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function
+EXPORT_SYMBOL vmlinux 0x56f84d0a sock_no_mmap
+EXPORT_SYMBOL vmlinux 0x56fbc7bc new_inode
+EXPORT_SYMBOL vmlinux 0x5705088a __vmalloc
+EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x57541460 locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put
+EXPORT_SYMBOL vmlinux 0x576120be seq_printf
+EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16
+EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on
+EXPORT_SYMBOL vmlinux 0x5770244b skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x57803885 d_genocide
+EXPORT_SYMBOL vmlinux 0x57829890 generic_setattr
+EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf
+EXPORT_SYMBOL vmlinux 0x57b09822 up
+EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57d3c165 pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path
+EXPORT_SYMBOL vmlinux 0x57efb373 sk_free
+EXPORT_SYMBOL vmlinux 0x57f227be vm_map_ram
+EXPORT_SYMBOL vmlinux 0x58113110 slow_work_cancel
+EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep
+EXPORT_SYMBOL vmlinux 0x5858d4d4 __scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x58725227 rfkill_get_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x5878c0da mb_cache_create
+EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x588c94e4 kobject_put
+EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler
+EXPORT_SYMBOL vmlinux 0x5892ffe0 __skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x58b23593 inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x58bd3d07 udplite_prot
+EXPORT_SYMBOL vmlinux 0x58c1adb3 llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0x58c6e10b dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0x58d0b727 mmc_request_done
+EXPORT_SYMBOL vmlinux 0x58f12325 generic_unplug_device
+EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info
+EXPORT_SYMBOL vmlinux 0x591cb7c1 jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed
+EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read
+EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client
+EXPORT_SYMBOL vmlinux 0x5938155d flush_signals
+EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map
+EXPORT_SYMBOL vmlinux 0x594c2c4b find_get_page
+EXPORT_SYMBOL vmlinux 0x5953bc80 skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x5954ca82 idr_destroy
+EXPORT_SYMBOL vmlinux 0x59571c13 nf_register_hooks
+EXPORT_SYMBOL vmlinux 0x5965c67a xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x599ea30f ht_create_irq
+EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register
+EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier
+EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table
+EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2
+EXPORT_SYMBOL vmlinux 0x5a60fe44 dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x5a667c0a mpage_readpages
+EXPORT_SYMBOL vmlinux 0x5a69b1df tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5ab57b4c xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0x5ac0d691 xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x5ae5db9a register_con_driver
+EXPORT_SYMBOL vmlinux 0x5af2172c bd_claim
+EXPORT_SYMBOL vmlinux 0x5afa2263 __secpath_destroy
+EXPORT_SYMBOL vmlinux 0x5afd3e4d kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem
+EXPORT_SYMBOL vmlinux 0x5b256f17 proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x5b35bbe2 phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x5b44a057 bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0x5b4fd289 xfrm_register_type
+EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources
+EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8
+EXPORT_SYMBOL vmlinux 0x5ba199c3 input_close_device
+EXPORT_SYMBOL vmlinux 0x5bb44b2f dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x5bbc4aed ethtool_ntuple_flush
+EXPORT_SYMBOL vmlinux 0x5bd8889a inet_ioctl
+EXPORT_SYMBOL vmlinux 0x5bed9f53 pci_set_master
+EXPORT_SYMBOL vmlinux 0x5bf83cf4 scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x5c1665a0 pci_select_bars
+EXPORT_SYMBOL vmlinux 0x5c1cab03 nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0x5c399f52 scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0x5c530cee mdiobus_scan
+EXPORT_SYMBOL vmlinux 0x5c5c46cb replace_mount_options
+EXPORT_SYMBOL vmlinux 0x5c5ea8dd free_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos
+EXPORT_SYMBOL vmlinux 0x5c7477d1 scsi_print_result
+EXPORT_SYMBOL vmlinux 0x5c8a0662 mca_device_write_pos
+EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock
+EXPORT_SYMBOL vmlinux 0x5cf2bac6 dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x5d0ec556 __scm_send
+EXPORT_SYMBOL vmlinux 0x5d10e05e skb_append
+EXPORT_SYMBOL vmlinux 0x5d315142 block_prepare_write
+EXPORT_SYMBOL vmlinux 0x5d45fcbb jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x5d5e7200 unregister_nls
+EXPORT_SYMBOL vmlinux 0x5d67b75a vfs_symlink
+EXPORT_SYMBOL vmlinux 0x5d6b7063 jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved
+EXPORT_SYMBOL vmlinux 0x5d7f79b6 blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0x5d97d50f pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock
+EXPORT_SYMBOL vmlinux 0x5dc236b5 unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0x5dccdb28 pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x5e09ca75 complete
+EXPORT_SYMBOL vmlinux 0x5e0ee78c set_bh_page
+EXPORT_SYMBOL vmlinux 0x5e510b8d mmc_wait_for_req
+EXPORT_SYMBOL vmlinux 0x5e684bc9 request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0x5e939cdb devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask
+EXPORT_SYMBOL vmlinux 0x5eb31329 tcp_shutdown
+EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5ed70d9e pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x5edcb9e1 journal_clear_err
+EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd
+EXPORT_SYMBOL vmlinux 0x5ee05950 remove_inode_hash
+EXPORT_SYMBOL vmlinux 0x5f1a4ccf intel_scu_ipc_update_register
+EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter
+EXPORT_SYMBOL vmlinux 0x5f2129eb bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock
+EXPORT_SYMBOL vmlinux 0x5f592d1e xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x5f5fcdb9 blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x5fdf7d57 blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0x5fe0ef57 __alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0x5ff02dd7 journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities
+EXPORT_SYMBOL vmlinux 0x5ffaa741 f_setown
+EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats
+EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count
+EXPORT_SYMBOL vmlinux 0x603cebad free_netdev
+EXPORT_SYMBOL vmlinux 0x605ae984 bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net
+EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off
+EXPORT_SYMBOL vmlinux 0x60c6d41e scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0x60c71f99 find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x60ec22cf phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0x60ef0d52 cdev_del
+EXPORT_SYMBOL vmlinux 0x60f30075 ____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0x60f62e8e generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n
+EXPORT_SYMBOL vmlinux 0x611b5c6a __lock_buffer
+EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x612b464d ip6_frag_init
+EXPORT_SYMBOL vmlinux 0x6151b896 jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x6154f636 filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x6156ac01 pci_get_device
+EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer
+EXPORT_SYMBOL vmlinux 0x61621a10 tc_classify
+EXPORT_SYMBOL vmlinux 0x6172f7b3 register_sysctl_table
+EXPORT_SYMBOL vmlinux 0x617f2530 mdiobus_register
+EXPORT_SYMBOL vmlinux 0x618c2655 xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free
+EXPORT_SYMBOL vmlinux 0x619b94ea invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0x61a60f1f rb_replace_node
+EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61e58486 devm_iounmap
+EXPORT_SYMBOL vmlinux 0x61ed184d proc_create_data
+EXPORT_SYMBOL vmlinux 0x61eeeee4 proc_symlink
+EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable
+EXPORT_SYMBOL vmlinux 0x621f534d mpage_readpage
+EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event
+EXPORT_SYMBOL vmlinux 0x62413c0a tty_port_close_start
+EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache
+EXPORT_SYMBOL vmlinux 0x626db546 mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister
+EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x62a9e29c thermal_cooling_device_register
+EXPORT_SYMBOL vmlinux 0x62bf3d07 wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0x63085765 kernel_listen
+EXPORT_SYMBOL vmlinux 0x630d1762 cdrom_open
+EXPORT_SYMBOL vmlinux 0x6312e241 napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x631b290b deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0x6341cf2a mmc_detect_change
+EXPORT_SYMBOL vmlinux 0x6343231d truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0x63587ad5 blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic
+EXPORT_SYMBOL vmlinux 0x636ababb blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0x63bf07d5 read_cache_pages
+EXPORT_SYMBOL vmlinux 0x63e7f976 try_to_del_timer_sync
+EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x64162568 __lock_page
+EXPORT_SYMBOL vmlinux 0x641c24c2 do_truncate
+EXPORT_SYMBOL vmlinux 0x6421f759 i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x6442e658 scsi_execute
+EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock
+EXPORT_SYMBOL vmlinux 0x64476f10 xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x64516675 mutex_unlock
+EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable
+EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait
+EXPORT_SYMBOL vmlinux 0x64cdd6ae generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x64e298ef vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x64e77168 inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer
+EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb
+EXPORT_SYMBOL vmlinux 0x64ec0e95 mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0x650fe6ad nobh_write_end
+EXPORT_SYMBOL vmlinux 0x651a4139 test_taint
+EXPORT_SYMBOL vmlinux 0x651f527e eth_change_mtu
+EXPORT_SYMBOL vmlinux 0x653e98d4 drop_super
+EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name
+EXPORT_SYMBOL vmlinux 0x6558dbf5 dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc
+EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x6576ee7f udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x65aa2359 jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x662ea3d0 unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0x66367526 dquot_file_open
+EXPORT_SYMBOL vmlinux 0x66413ab2 md_wakeup_thread
+EXPORT_SYMBOL vmlinux 0x666ce119 register_gifconf
+EXPORT_SYMBOL vmlinux 0x666f5db8 secpath_dup
+EXPORT_SYMBOL vmlinux 0x66893348 inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0x668bd3c0 dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x66d1c897 xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x66dbb7c8 dev_change_flags
+EXPORT_SYMBOL vmlinux 0x66e6ab0f input_allocate_device
+EXPORT_SYMBOL vmlinux 0x66fab4b8 mmc_resume_host
+EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time
+EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible
+EXPORT_SYMBOL vmlinux 0x671aea10 pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0x6725862b xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4
+EXPORT_SYMBOL vmlinux 0x67316c85 cdev_add
+EXPORT_SYMBOL vmlinux 0x676b53fb pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu
+EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios
+EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67ff79df netpoll_send_skb
+EXPORT_SYMBOL vmlinux 0x68190cbd nf_log_register
+EXPORT_SYMBOL vmlinux 0x68375ea9 serio_close
+EXPORT_SYMBOL vmlinux 0x6850f6c5 blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0x6857a1f1 blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x68828587 scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x6887486b scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x688db59a ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x6890e35f slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x68b434c5 dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0x68bcef0d lease_modify
+EXPORT_SYMBOL vmlinux 0x68e9b1fc arp_xmit
+EXPORT_SYMBOL vmlinux 0x6910d85e kmem_cache_name
+EXPORT_SYMBOL vmlinux 0x6918d01a blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x693bc885 framebuffer_release
+EXPORT_SYMBOL vmlinux 0x696ead68 phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days
+EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int
+EXPORT_SYMBOL vmlinux 0x6984e03a pci_remove_bus
+EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7
+EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem
+EXPORT_SYMBOL vmlinux 0x699748ec journal_start
+EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be
+EXPORT_SYMBOL vmlinux 0x69a1b6f8 bdi_register
+EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource
+EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x69d2575f efi
+EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69e34efa tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0x69e37dc3 isapnp_protocol
+EXPORT_SYMBOL vmlinux 0x69ef5a4b vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x69f64c0a cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0x6a034ede kthread_stop
+EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a0e87de rtc_dev_update_irq_enable_emul
+EXPORT_SYMBOL vmlinux 0x6a25f943 __serio_register_port
+EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic
+EXPORT_SYMBOL vmlinux 0x6a67bd5a bd_set_size
+EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6aab2536 touch_atime
+EXPORT_SYMBOL vmlinux 0x6abc8e7c lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x6abf64ec __devm_request_region
+EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be
+EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp
+EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device
+EXPORT_SYMBOL vmlinux 0x6af87e6a jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0x6b0cb9d4 dmam_pool_create
+EXPORT_SYMBOL vmlinux 0x6b121999 tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname
+EXPORT_SYMBOL vmlinux 0x6b2d7f76 pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack
+EXPORT_SYMBOL vmlinux 0x6b3202cd block_write_begin
+EXPORT_SYMBOL vmlinux 0x6b3ecc8b page_follow_link_light
+EXPORT_SYMBOL vmlinux 0x6b47ef4f blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0x6b4f362d blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x6b63b8a5 eisa_driver_register
+EXPORT_SYMBOL vmlinux 0x6b66b747 elevator_exit
+EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x6b7b28cd posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0x6b7c213d journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used
+EXPORT_SYMBOL vmlinux 0x6b9ba73c alloc_etherdev_mq
+EXPORT_SYMBOL vmlinux 0x6b9ef355 ipv4_specific
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6bed233a jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock
+EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn
+EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp
+EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data
+EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0x6c55d14b scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c6738ce vga_get
+EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c7cb1c1 pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0x6c892fbf netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x6c8b2202 posix_lock_file
+EXPORT_SYMBOL vmlinux 0x6c976dbc spi_schedule_dv_device
+EXPORT_SYMBOL vmlinux 0x6ca9afa6 seq_putc
+EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy
+EXPORT_SYMBOL vmlinux 0x6cf29021 mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x6d28acc2 bio_unmap_user
+EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0x6d5767a1 block_truncate_page
+EXPORT_SYMBOL vmlinux 0x6d7ee49e pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6df9d1aa simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0x6e0def12 register_framebuffer
+EXPORT_SYMBOL vmlinux 0x6e1b3781 neigh_ifdown
+EXPORT_SYMBOL vmlinux 0x6e2283b5 sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x6e3ecc9c cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0x6e489d88 __find_get_block
+EXPORT_SYMBOL vmlinux 0x6e4ad778 mmc_suspend_host
+EXPORT_SYMBOL vmlinux 0x6e700807 read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put
+EXPORT_SYMBOL vmlinux 0x6eb701f5 security_path_rename
+EXPORT_SYMBOL vmlinux 0x6ebc7403 vga_switcheroo_register_client
+EXPORT_SYMBOL vmlinux 0x6ed6c484 ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0x6edbe866 ppp_input
+EXPORT_SYMBOL vmlinux 0x6eea14d8 scsi_free_command
+EXPORT_SYMBOL vmlinux 0x6eef92a9 console_start
+EXPORT_SYMBOL vmlinux 0x6f0bf8d4 skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x6f0f5a4a ip6_xmit
+EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create
+EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device
+EXPORT_SYMBOL vmlinux 0x6f5689a8 input_unregister_handler
+EXPORT_SYMBOL vmlinux 0x6f5a35df tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x6f6b786f dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x6f7c35ae release_sock
+EXPORT_SYMBOL vmlinux 0x6f7cd2db padata_add_cpu
+EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x6f8aac6e mmc_free_host
+EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fdfa52e __dquot_free_space
+EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write
+EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free
+EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm
+EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf
+EXPORT_SYMBOL vmlinux 0x704b0d32 ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma
+EXPORT_SYMBOL vmlinux 0x7056d405 write_cache_pages
+EXPORT_SYMBOL vmlinux 0x705848be bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x7098f727 vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x70ac61d1 kthread_bind
+EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait
+EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat
+EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock
+EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc
+EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x714e5c9d neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x7151ec52 ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0x7169dd97 dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0x7171121c overflowgid
+EXPORT_SYMBOL vmlinux 0x717f5eca vfs_write
+EXPORT_SYMBOL vmlinux 0x7188509a end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x7193f7bd tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev
+EXPORT_SYMBOL vmlinux 0x71b14bb1 nobh_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x71ba45eb sock_register
+EXPORT_SYMBOL vmlinux 0x71e204f9 skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x71ebf4c0 netpoll_poll
+EXPORT_SYMBOL vmlinux 0x71fcd68d padata_start
+EXPORT_SYMBOL vmlinux 0x721322f8 con_is_bound
+EXPORT_SYMBOL vmlinux 0x72540640 nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0x7273c2f1 d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x727837a9 abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x7280d40c scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0x7285ec80 sync_inode
+EXPORT_SYMBOL vmlinux 0x72a1949f dma_supported
+EXPORT_SYMBOL vmlinux 0x72b097d6 blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma
+EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add
+EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte
+EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type
+EXPORT_SYMBOL vmlinux 0x730815a7 neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0x730db7aa jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x734aa42b ip_mc_rejoin_group
+EXPORT_SYMBOL vmlinux 0x735357c1 dquot_quota_on
+EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay
+EXPORT_SYMBOL vmlinux 0x73606b5c sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat
+EXPORT_SYMBOL vmlinux 0x73647755 __elv_add_request
+EXPORT_SYMBOL vmlinux 0x7386a0a8 filemap_flush
+EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0x7387da78 set_security_override
+EXPORT_SYMBOL vmlinux 0x738803e6 strnlen
+EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power
+EXPORT_SYMBOL vmlinux 0x739af5a0 pnp_find_card
+EXPORT_SYMBOL vmlinux 0x73af0115 x86_hyper_vmware
+EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy
+EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0x740b238e get_sb_single
+EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus
+EXPORT_SYMBOL vmlinux 0x741cabb3 simple_transaction_release
+EXPORT_SYMBOL vmlinux 0x7433c23d tty_port_close
+EXPORT_SYMBOL vmlinux 0x74380322 scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0x7439af14 skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte
+EXPORT_SYMBOL vmlinux 0x745189c6 pci_do_scan_bus
+EXPORT_SYMBOL vmlinux 0x746cf5ce scsi_remove_device
+EXPORT_SYMBOL vmlinux 0x7484b2de xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x74a270c6 generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0x74ad1be7 inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74c615c0 dquot_commit
+EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74e07c93 path_put
+EXPORT_SYMBOL vmlinux 0x74e7fe27 blk_peek_request
+EXPORT_SYMBOL vmlinux 0x7520f325 set_pages_array_uc
+EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state
+EXPORT_SYMBOL vmlinux 0x752ea2f7 abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0x753c346f misc_register
+EXPORT_SYMBOL vmlinux 0x75457399 dquot_commit_info
+EXPORT_SYMBOL vmlinux 0x7547001c alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x75474ffe generic_file_llseek_unlocked
+EXPORT_SYMBOL vmlinux 0x755665c3 ppp_unit_number
+EXPORT_SYMBOL vmlinux 0x755aa8b5 napi_skb_finish
+EXPORT_SYMBOL vmlinux 0x755c7ec4 blk_end_request
+EXPORT_SYMBOL vmlinux 0x75846f76 mmc_host_enable
+EXPORT_SYMBOL vmlinux 0x758515f7 kick_iocb
+EXPORT_SYMBOL vmlinux 0x75a2fabd xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75d2195e block_read_full_page
+EXPORT_SYMBOL vmlinux 0x75da1dff dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0x75f9f8b3 set_irq_chip
+EXPORT_SYMBOL vmlinux 0x7605b8d2 mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x760a0f4f yield
+EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x761108d5 bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off
+EXPORT_SYMBOL vmlinux 0x76429d05 redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x764bd77c request_resource
+EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc
+EXPORT_SYMBOL vmlinux 0x767deb52 sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76cbffe3 tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode
+EXPORT_SYMBOL vmlinux 0x76e0532b set_pages_uc
+EXPORT_SYMBOL vmlinux 0x76e2cd6d dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0x76e6462d tcf_hash_create
+EXPORT_SYMBOL vmlinux 0x76f17262 netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x76f3e309 __scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges
+EXPORT_SYMBOL vmlinux 0x76f47e54 elevator_init
+EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic
+EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin
+EXPORT_SYMBOL vmlinux 0x77226e24 get_sb_nodev
+EXPORT_SYMBOL vmlinux 0x772d230c scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0x772e5313 soft_cursor
+EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x7755c1b1 pnp_register_card_driver
+EXPORT_SYMBOL vmlinux 0x77998eac jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x779b7202 tty_check_change
+EXPORT_SYMBOL vmlinux 0x77bc13a0 strim
+EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality
+EXPORT_SYMBOL vmlinux 0x77e0f35b inet6_ioctl
+EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77f9fbe8 bio_clone
+EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x7841e8cb pagecache_write_end
+EXPORT_SYMBOL vmlinux 0x786907d8 i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0x787c4270 xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0x78a8a0ab backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x78b6b225 i2c_master_send
+EXPORT_SYMBOL vmlinux 0x78ccf645 register_cdrom
+EXPORT_SYMBOL vmlinux 0x78d8db9e idr_get_next
+EXPORT_SYMBOL vmlinux 0x78dd3445 km_state_notify
+EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78e900af tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method
+EXPORT_SYMBOL vmlinux 0x790dac4a hippi_type_trans
+EXPORT_SYMBOL vmlinux 0x791feb92 inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x792b5723 tcf_hash_search
+EXPORT_SYMBOL vmlinux 0x794355f2 blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt
+EXPORT_SYMBOL vmlinux 0x795c5d97 ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x79633365 __pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x7979afa0 sock_no_poll
+EXPORT_SYMBOL vmlinux 0x797d75e4 elv_rb_del
+EXPORT_SYMBOL vmlinux 0x799f4f2d jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x79a99df7 should_remove_suid
+EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79be8899 journal_stop
+EXPORT_SYMBOL vmlinux 0x7a053ec3 eth_header
+EXPORT_SYMBOL vmlinux 0x7a0a28c7 input_register_handler
+EXPORT_SYMBOL vmlinux 0x7a0aa8b3 register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol
+EXPORT_SYMBOL vmlinux 0x7a4497db kzfree
+EXPORT_SYMBOL vmlinux 0x7a57f186 sock_wake_async
+EXPORT_SYMBOL vmlinux 0x7a64bef2 d_path
+EXPORT_SYMBOL vmlinux 0x7a89c336 seq_open
+EXPORT_SYMBOL vmlinux 0x7abd0ac9 scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0x7abe5ab5 blk_get_request
+EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip
+EXPORT_SYMBOL vmlinux 0x7acbd223 noop_llseek
+EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user
+EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x7b0086fc scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler
+EXPORT_SYMBOL vmlinux 0x7b12a0e8 scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name
+EXPORT_SYMBOL vmlinux 0x7b152688 simple_statfs
+EXPORT_SYMBOL vmlinux 0x7b342104 serio_open
+EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register
+EXPORT_SYMBOL vmlinux 0x7b5a0bc5 security_path_mkdir
+EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0x7b7ab0ff fb_get_mode
+EXPORT_SYMBOL vmlinux 0x7b9e983f cpu_info
+EXPORT_SYMBOL vmlinux 0x7bb8649c __register_chrdev
+EXPORT_SYMBOL vmlinux 0x7bbbb9c3 __mmc_claim_host
+EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name
+EXPORT_SYMBOL vmlinux 0x7bdbb17f netdev_state_change
+EXPORT_SYMBOL vmlinux 0x7be498c3 blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0x7beb7d47 blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x7c1b7caf set_user_nice
+EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x7c233fd8 pv_mmu_ops
+EXPORT_SYMBOL vmlinux 0x7c2cb3ff pci_release_regions
+EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c60d66e getname
+EXPORT_SYMBOL vmlinux 0x7c61340c __release_region
+EXPORT_SYMBOL vmlinux 0x7c8247cc pskb_copy
+EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7ca446d7 dm_table_get_size
+EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down
+EXPORT_SYMBOL vmlinux 0x7cd99017 scsi_register_interface
+EXPORT_SYMBOL vmlinux 0x7ce5df48 vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0x7cf30193 rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x7cfa6d14 noop_fsync
+EXPORT_SYMBOL vmlinux 0x7d0c498c mapping_tagged
+EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies
+EXPORT_SYMBOL vmlinux 0x7d276359 blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x7d34d456 blk_remove_plug
+EXPORT_SYMBOL vmlinux 0x7d6fc09e devm_ioremap
+EXPORT_SYMBOL vmlinux 0x7d7b4f54 journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec
+EXPORT_SYMBOL vmlinux 0x7dcba4d0 del_gendisk
+EXPORT_SYMBOL vmlinux 0x7dceceac capable
+EXPORT_SYMBOL vmlinux 0x7ded1b76 scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x7df3e28e bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x7e0313fa pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0x7e0b08fb tty_port_hangup
+EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8
+EXPORT_SYMBOL vmlinux 0x7e24c39c pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x7e2eac64 km_new_mapping
+EXPORT_SYMBOL vmlinux 0x7e37d0d7 vc_cons
+EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e63a515 neigh_seq_next
+EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread
+EXPORT_SYMBOL vmlinux 0x7ead8c0b xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0x7ec80748 tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset
+EXPORT_SYMBOL vmlinux 0x7efa15a0 xrlim_allow
+EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit
+EXPORT_SYMBOL vmlinux 0x7f14e258 i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f425f8c padata_do_serial
+EXPORT_SYMBOL vmlinux 0x7f566fc1 nla_put
+EXPORT_SYMBOL vmlinux 0x7f6a9e66 inode_needs_sync
+EXPORT_SYMBOL vmlinux 0x7f6eb11f sock_kmalloc
+EXPORT_SYMBOL vmlinux 0x7f8f4618 noop_qdisc
+EXPORT_SYMBOL vmlinux 0x7f99406b thermal_zone_device_unregister
+EXPORT_SYMBOL vmlinux 0x7fa5647c blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0x7fc99a43 mdiobus_write
+EXPORT_SYMBOL vmlinux 0x7fd79282 jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x80024bb3 generic_writepages
+EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free
+EXPORT_SYMBOL vmlinux 0x8023fbac ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0x803c10d1 pci_assign_resource
+EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0x807d2eca blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0x807ebbc4 __nla_reserve
+EXPORT_SYMBOL vmlinux 0x80a70d64 pnp_register_driver
+EXPORT_SYMBOL vmlinux 0x80bb3de7 dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0x80ca79ae pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x80fb62fe kill_block_super
+EXPORT_SYMBOL vmlinux 0x81008c73 register_8022_client
+EXPORT_SYMBOL vmlinux 0x812d8ff6 ilookup5
+EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table
+EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0x81520d9e napi_complete
+EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal
+EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page
+EXPORT_SYMBOL vmlinux 0x815fedb3 inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x81745054 jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf
+EXPORT_SYMBOL vmlinux 0x817efbfa tty_set_operations
+EXPORT_SYMBOL vmlinux 0x81906e7e bdi_unregister
+EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference
+EXPORT_SYMBOL vmlinux 0x81ae4081 inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0x81b5b538 pnp_request_card_device
+EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info
+EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill
+EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply
+EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x823180b9 blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x8235805b memmove
+EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8266440e simple_empty
+EXPORT_SYMBOL vmlinux 0x826be25d dqget
+EXPORT_SYMBOL vmlinux 0x82890c60 gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0x82970550 acpi_bus_get_status
+EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82f26192 get_phy_id
+EXPORT_SYMBOL vmlinux 0x830c4094 misc_deregister
+EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot
+EXPORT_SYMBOL vmlinux 0x830fd627 serio_interrupt
+EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit
+EXPORT_SYMBOL vmlinux 0x834b591e otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0x834da1b0 invalidate_inodes
+EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion
+EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring
+EXPORT_SYMBOL vmlinux 0x8378e9dc register_quota_format
+EXPORT_SYMBOL vmlinux 0x83800bfa kref_init
+EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8
+EXPORT_SYMBOL vmlinux 0x838f9134 key_link
+EXPORT_SYMBOL vmlinux 0x8398cba5 vga_client_register
+EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83b4877d request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0x83d249a2 nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0x83fba785 proto_register
+EXPORT_SYMBOL vmlinux 0x840ba264 module_refcount
+EXPORT_SYMBOL vmlinux 0x840cb5b6 napi_frags_skb
+EXPORT_SYMBOL vmlinux 0x841f19bd netdev_set_master
+EXPORT_SYMBOL vmlinux 0x84211b6c i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0x8422b597 pci_fixup_device
+EXPORT_SYMBOL vmlinux 0x84301421 inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x84306048 dev_getbyhwaddr
+EXPORT_SYMBOL vmlinux 0x8445d326 dst_release
+EXPORT_SYMBOL vmlinux 0x8456c5a9 inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0x84662d3c pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x84b484e4 netdev_features_change
+EXPORT_SYMBOL vmlinux 0x84bca630 genphy_read_status
+EXPORT_SYMBOL vmlinux 0x84ca23aa pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0x852a8a00 bdi_destroy
+EXPORT_SYMBOL vmlinux 0x853608c4 kill_pgrp
+EXPORT_SYMBOL vmlinux 0x853d0686 tty_throttle
+EXPORT_SYMBOL vmlinux 0x854a2de1 scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x85992457 generic_show_options
+EXPORT_SYMBOL vmlinux 0x85abc101 kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0x85c89f4d tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0x85df9b6c strsep
+EXPORT_SYMBOL vmlinux 0x85e737bf tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x864bdc40 blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0x864f9780 grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x8676b53c set_binfmt
+EXPORT_SYMBOL vmlinux 0x868acba5 get_options
+EXPORT_SYMBOL vmlinux 0x869416de init_task
+EXPORT_SYMBOL vmlinux 0x86c5e6db vfs_llseek
+EXPORT_SYMBOL vmlinux 0x86eb578b xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x86fcb815 dst_destroy
+EXPORT_SYMBOL vmlinux 0x870281b3 sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x87040b93 balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x87236e81 inet_getname
+EXPORT_SYMBOL vmlinux 0x87376841 inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0x875384b1 neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0x8753ed4e serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x8754473f __brelse
+EXPORT_SYMBOL vmlinux 0x876cd584 uart_remove_one_port
+EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write
+EXPORT_SYMBOL vmlinux 0x8780e299 simple_write_begin
+EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh
+EXPORT_SYMBOL vmlinux 0x87a4a2af fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0x87c1bd94 page_address
+EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate
+EXPORT_SYMBOL vmlinux 0x88460c2b max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x884b1adf llc_sap_close
+EXPORT_SYMBOL vmlinux 0x884e929c pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0x88719278 path_lookup
+EXPORT_SYMBOL vmlinux 0x88736e78 dquot_resume
+EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x88a03681 dentry_unhash
+EXPORT_SYMBOL vmlinux 0x88c3a11d acpi_unlock_battery_dir
+EXPORT_SYMBOL vmlinux 0x88d1fa87 __xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x88d467ec pci_get_slot
+EXPORT_SYMBOL vmlinux 0x88f07740 fb_set_var
+EXPORT_SYMBOL vmlinux 0x891df308 input_unregister_handle
+EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx
+EXPORT_SYMBOL vmlinux 0x8934ee15 arp_broken_ops
+EXPORT_SYMBOL vmlinux 0x8949858b schedule_work
+EXPORT_SYMBOL vmlinux 0x8952c712 bh_submit_read
+EXPORT_SYMBOL vmlinux 0x8955056a security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0x8965967a inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x897473df mktime
+EXPORT_SYMBOL vmlinux 0x898d9d60 input_open_device
+EXPORT_SYMBOL vmlinux 0x89939d3f sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x899dca9d kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89e427e7 unregister_md_personality
+EXPORT_SYMBOL vmlinux 0x89ec8b7b sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x89ef22fd send_sig
+EXPORT_SYMBOL vmlinux 0x8a155e33 phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x8a419f31 netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x8a4aff92 sock_i_uid
+EXPORT_SYMBOL vmlinux 0x8a53cd25 tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x8a5619d0 tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0x8a6bb304 block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory
+EXPORT_SYMBOL vmlinux 0x8a8ed922 dev_set_mtu
+EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8ab6bad0 vga_switcheroo_client_fb_set
+EXPORT_SYMBOL vmlinux 0x8b1301b7 dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll
+EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last
+EXPORT_SYMBOL vmlinux 0x8b4f6a86 acpi_root_dir
+EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid
+EXPORT_SYMBOL vmlinux 0x8b87e433 in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x8b914118 init_buffer
+EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup
+EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock
+EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long
+EXPORT_SYMBOL vmlinux 0x8be82405 i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0x8be9173a xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0x8bf94688 dcache_dir_close
+EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16
+EXPORT_SYMBOL vmlinux 0x8c1a7a8c abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x8c216148 pci_reenable_device
+EXPORT_SYMBOL vmlinux 0x8c392837 pnp_release_card_device
+EXPORT_SYMBOL vmlinux 0x8c3c3f37 dev_disable_lro
+EXPORT_SYMBOL vmlinux 0x8c512a6b abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x8c5ca86f pnp_find_dev
+EXPORT_SYMBOL vmlinux 0x8c60eda6 pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0x8c770336 udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x8c96e3d6 filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x8c9c519b mnt_pin
+EXPORT_SYMBOL vmlinux 0x8c9e9805 xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0x8cbaf0e0 fsnotify_destroy_mark_by_entry
+EXPORT_SYMBOL vmlinux 0x8cc3bbdd tc_classify_compat
+EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8ccb1ca7 pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0x8ce06875 inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x8cee20a4 skb_pad
+EXPORT_SYMBOL vmlinux 0x8d00fb4f netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x8d113d44 pci_pme_active
+EXPORT_SYMBOL vmlinux 0x8d4585c3 blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d5962af dev_txq_stats_fold
+EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32
+EXPORT_SYMBOL vmlinux 0x8d794be2 mmc_try_claim_host
+EXPORT_SYMBOL vmlinux 0x8d7b4be8 security_path_chown
+EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data
+EXPORT_SYMBOL vmlinux 0x8d962613 con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0x8da98dcc idr_remove_all
+EXPORT_SYMBOL vmlinux 0x8db4a09c bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x8db6a9f8 inode_set_bytes
+EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x8dc3de43 jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state
+EXPORT_SYMBOL vmlinux 0x8de6167c sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x8deb7496 dev_uc_add
+EXPORT_SYMBOL vmlinux 0x8ded80d4 bio_copy_user
+EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block
+EXPORT_SYMBOL vmlinux 0x8e02f0b2 bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e197e16 elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x8e6f37ae ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0x8e723835 remove_proc_entry
+EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x8e77e58c journal_init_dev
+EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and
+EXPORT_SYMBOL vmlinux 0x8e9615e9 md_done_sync
+EXPORT_SYMBOL vmlinux 0x8eab2926 iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler
+EXPORT_SYMBOL vmlinux 0x8eb2b785 abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x8eb75e26 stop_tty
+EXPORT_SYMBOL vmlinux 0x8ec00281 otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8eeb576d filp_close
+EXPORT_SYMBOL vmlinux 0x8ef8b959 block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0x8f0744d3 filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x8f126a5d arp_tbl
+EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus
+EXPORT_SYMBOL vmlinux 0x8f291294 arp_find
+EXPORT_SYMBOL vmlinux 0x8f37f28b pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev
+EXPORT_SYMBOL vmlinux 0x8f5bc0a9 inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0x8f5c90de register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data
+EXPORT_SYMBOL vmlinux 0x8f72e0ed tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0x8f9bad5e mddev_congested
+EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2
+EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops
+EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16
+EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync
+EXPORT_SYMBOL vmlinux 0x903c9ffd pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector
+EXPORT_SYMBOL vmlinux 0x90449479 rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0x906f83df kmap_atomic
+EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system
+EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active
+EXPORT_SYMBOL vmlinux 0x90af5643 blk_start_request
+EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0x90b6349e dquot_destroy
+EXPORT_SYMBOL vmlinux 0x90d021e5 hippi_mac_addr
+EXPORT_SYMBOL vmlinux 0x90e42f73 tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0x90e44dde i2c_transfer
+EXPORT_SYMBOL vmlinux 0x90e84b15 security_d_instantiate
+EXPORT_SYMBOL vmlinux 0x9102938f seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x911403b6 dm_io
+EXPORT_SYMBOL vmlinux 0x91175e22 __lookup_one_len
+EXPORT_SYMBOL vmlinux 0x911d0b3c sock_setsockopt
+EXPORT_SYMBOL vmlinux 0x912085b9 clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable
+EXPORT_SYMBOL vmlinux 0x915ebf3a give_up_console
+EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb
+EXPORT_SYMBOL vmlinux 0x9173f24a pci_iomap
+EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong
+EXPORT_SYMBOL vmlinux 0x917e9a04 inode_change_ok
+EXPORT_SYMBOL vmlinux 0x918e1a35 vlan_gro_frags
+EXPORT_SYMBOL vmlinux 0x91a1c605 install_exec_creds
+EXPORT_SYMBOL vmlinux 0x91f5af8c cdev_index
+EXPORT_SYMBOL vmlinux 0x91f5d1b0 pci_claim_resource
+EXPORT_SYMBOL vmlinux 0x91fd7f0f generic_permission
+EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool
+EXPORT_SYMBOL vmlinux 0x92220f63 pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get
+EXPORT_SYMBOL vmlinux 0x925707b3 genphy_resume
+EXPORT_SYMBOL vmlinux 0x926c0134 bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0x92783a1a scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0x927887b5 netif_device_detach
+EXPORT_SYMBOL vmlinux 0x92897e3d default_idle
+EXPORT_SYMBOL vmlinux 0x928ca228 posix_test_lock
+EXPORT_SYMBOL vmlinux 0x92a65d8d unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x92c0b2ef blk_sync_queue
+EXPORT_SYMBOL vmlinux 0x92c87329 journal_set_features
+EXPORT_SYMBOL vmlinux 0x92d50987 acpi_match_device_ids
+EXPORT_SYMBOL vmlinux 0x92eb73a4 tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get
+EXPORT_SYMBOL vmlinux 0x93331a94 jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x933aaf83 dev_get_flags
+EXPORT_SYMBOL vmlinux 0x93448c57 screen_info
+EXPORT_SYMBOL vmlinux 0x93551288 mdio_bus_type
+EXPORT_SYMBOL vmlinux 0x93622811 blk_plug_device
+EXPORT_SYMBOL vmlinux 0x93767ee5 block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x93894b4f blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule
+EXPORT_SYMBOL vmlinux 0x93bc79d4 netpoll_setup
+EXPORT_SYMBOL vmlinux 0x93c651be acpi_info
+EXPORT_SYMBOL vmlinux 0x93cc8e25 jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0x93e33665 mca_device_claimed
+EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages
+EXPORT_SYMBOL vmlinux 0x9421bca3 xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x943dee02 bioset_free
+EXPORT_SYMBOL vmlinux 0x94546559 sock_release
+EXPORT_SYMBOL vmlinux 0x945ed3db bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0x946d39c4 jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0x94862854 generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x948914fe locks_init_lock
+EXPORT_SYMBOL vmlinux 0x94898216 security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0x948a6939 dev_mc_flush
+EXPORT_SYMBOL vmlinux 0x94961283 vunmap
+EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x94de8048 ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0x94e26f08 rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0x94e38626 ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0x953048d8 scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x95352ea9 acpi_check_mem_region
+EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init
+EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf
+EXPORT_SYMBOL vmlinux 0x95638a80 dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0x9573e86e tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x957a772d devm_ioport_map
+EXPORT_SYMBOL vmlinux 0x95837869 devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x95838541 blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0x95a0a2a7 i2c_register_driver
+EXPORT_SYMBOL vmlinux 0x95ae9d73 abort_creds
+EXPORT_SYMBOL vmlinux 0x95cc1867 keyring_clear
+EXPORT_SYMBOL vmlinux 0x95d4df6f dev_uc_init
+EXPORT_SYMBOL vmlinux 0x95db867a do_splice_to
+EXPORT_SYMBOL vmlinux 0x95eb75ed i2c_clients_command
+EXPORT_SYMBOL vmlinux 0x95ebb77d elv_abort_queue
+EXPORT_SYMBOL vmlinux 0x95f439b4 sk_common_release
+EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq
+EXPORT_SYMBOL vmlinux 0x95fedcc7 dw_spi_remove_host
+EXPORT_SYMBOL vmlinux 0x9611a958 bio_split
+EXPORT_SYMBOL vmlinux 0x96261d3c neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x9634e148 inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0x96774cb7 blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0x967b90f5 bitmap_endwrite
+EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0x96b02518 i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0x96c75fbf kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x96cd0934 skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96cddbd1 generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x9708bce7 padata_remove_cpu
+EXPORT_SYMBOL vmlinux 0x97216853 skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n
+EXPORT_SYMBOL vmlinux 0x973e35a5 intel_scu_ipc_register_write
+EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x975df484 acpi_get_physical_device
+EXPORT_SYMBOL vmlinux 0x976553c7 pcim_iounmap
+EXPORT_SYMBOL vmlinux 0x976d7454 __skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0x977d69cf blk_insert_request
+EXPORT_SYMBOL vmlinux 0x979018ff dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x97932633 __destroy_inode
+EXPORT_SYMBOL vmlinux 0x979f82fe inet_shutdown
+EXPORT_SYMBOL vmlinux 0x97acd502 remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance
+EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block
+EXPORT_SYMBOL vmlinux 0x981fd193 abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x9821a5df aio_complete
+EXPORT_SYMBOL vmlinux 0x982b4aec scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0x983afb13 tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x985e7ef1 vga_tryget
+EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x987fa51a d_alloc_name
+EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x
+EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init
+EXPORT_SYMBOL vmlinux 0x989ba6be blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0x98bb3a52 dev_add_pack
+EXPORT_SYMBOL vmlinux 0x98fd6627 tcf_register_action
+EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port
+EXPORT_SYMBOL vmlinux 0x993b2772 end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x9949de03 mmc_alloc_host
+EXPORT_SYMBOL vmlinux 0x9959cf21 rfkill_set_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x9982ca7d __nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x9983cf34 elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999e8297 vfree
+EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name
+EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99d55fad tty_write_room
+EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink
+EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk
+EXPORT_SYMBOL vmlinux 0x9a4d28c0 inode_init_once
+EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock
+EXPORT_SYMBOL vmlinux 0x9a700995 tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x9a70cd48 input_inject_event
+EXPORT_SYMBOL vmlinux 0x9a9a9e45 con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x9aa39796 sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x9aad20d5 __pci_register_driver
+EXPORT_SYMBOL vmlinux 0x9ac42608 blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0x9aefafca dquot_drop
+EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b519d3f da903x_query_status
+EXPORT_SYMBOL vmlinux 0x9b62129b ida_get_new
+EXPORT_SYMBOL vmlinux 0x9b63be0d may_umount_tree
+EXPORT_SYMBOL vmlinux 0x9b661a5c user_path_at
+EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize
+EXPORT_SYMBOL vmlinux 0x9b9575dc register_console
+EXPORT_SYMBOL vmlinux 0x9b9d49bf serio_reconnect
+EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split
+EXPORT_SYMBOL vmlinux 0x9ba8a1e6 pipe_lock
+EXPORT_SYMBOL vmlinux 0x9bccba51 mmc_wait_for_cmd
+EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c0fa8b6 pagevec_lookup
+EXPORT_SYMBOL vmlinux 0x9c1c92a1 pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0x9c23bcba atomic64_add_return_cx8
+EXPORT_SYMBOL vmlinux 0x9c2c944a __copy_from_user_ll_nocache_nozero
+EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x9c6f7083 create_proc_entry
+EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt
+EXPORT_SYMBOL vmlinux 0x9c718c43 put_disk
+EXPORT_SYMBOL vmlinux 0x9c784f97 serial8250_register_port
+EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cd2fa15 d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x9cf405b4 phy_attach_direct
+EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9d06fbf3 mca_device_status
+EXPORT_SYMBOL vmlinux 0x9d0da223 tty_register_driver
+EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable
+EXPORT_SYMBOL vmlinux 0x9d393ff0 input_flush_device
+EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d3e9195 revert_creds
+EXPORT_SYMBOL vmlinux 0x9d6ca92d jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x9d7f7832 skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x9d86a20c ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0x9d9cb70f inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x9da05b78 key_alloc
+EXPORT_SYMBOL vmlinux 0x9da21976 tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x9dcb6748 atomic64_xchg_cx8
+EXPORT_SYMBOL vmlinux 0x9dd89b06 dw_spi_suspend_host
+EXPORT_SYMBOL vmlinux 0x9ddcf240 may_umount
+EXPORT_SYMBOL vmlinux 0x9de21ffa __neigh_event_send
+EXPORT_SYMBOL vmlinux 0x9de7ac3c dput
+EXPORT_SYMBOL vmlinux 0x9df16a60 netif_carrier_off
+EXPORT_SYMBOL vmlinux 0x9df91ff6 tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x9e1b14eb pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x9e279091 netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read
+EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay
+EXPORT_SYMBOL vmlinux 0x9e936dc6 mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table
+EXPORT_SYMBOL vmlinux 0x9ea77127 copy_io_context
+EXPORT_SYMBOL vmlinux 0x9eb4613e create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource
+EXPORT_SYMBOL vmlinux 0x9ecac220 current_fs_time
+EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x9edb0dab ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk
+EXPORT_SYMBOL vmlinux 0x9ef83de2 ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0x9efb349d gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0x9f270612 __generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool
+EXPORT_SYMBOL vmlinux 0x9f2e9a73 ps2_init
+EXPORT_SYMBOL vmlinux 0x9f36d349 sync_blockdev
+EXPORT_SYMBOL vmlinux 0x9f4064b7 iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f55ba2d scsi_device_get
+EXPORT_SYMBOL vmlinux 0x9f7c7cda skb_queue_head
+EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk
+EXPORT_SYMBOL vmlinux 0x9f984513 strrchr
+EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x9fb43fe8 pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0x9fb46abd ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x9fb860cc request_firmware
+EXPORT_SYMBOL vmlinux 0x9fc1156e xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0x9fe2ffb6 tcp_prot
+EXPORT_SYMBOL vmlinux 0xa0040385 dmam_release_declared_memory
+EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0xa03bd418 mntput_no_expire
+EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa057ae5c dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa0889137 dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock
+EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0cf4288 tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0xa0de6258 __dquot_transfer
+EXPORT_SYMBOL vmlinux 0xa0fa3333 tcp4_gro_complete
+EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xa104e370 ps2_drain
+EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa108ebae sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa12c4aa0 tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0xa1374f13 release_firmware
+EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa164f3bb napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xa16a4115 open_by_devnum
+EXPORT_SYMBOL vmlinux 0xa17423ca __neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0xa17992a0 ps2_end_command
+EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock
+EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode
+EXPORT_SYMBOL vmlinux 0xa1c18820 d_find_alias
+EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched
+EXPORT_SYMBOL vmlinux 0xa1d42dda journal_release_buffer
+EXPORT_SYMBOL vmlinux 0xa1fb0eb0 km_query
+EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa21374b5 simple_setsize
+EXPORT_SYMBOL vmlinux 0xa2284f87 jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0xa243cb49 inet_frag_find
+EXPORT_SYMBOL vmlinux 0xa244b3a8 scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0xa27213fe free_task
+EXPORT_SYMBOL vmlinux 0xa299f259 filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2aa254f pcix_get_mmrbc
+EXPORT_SYMBOL vmlinux 0xa2b37184 vm_insert_page
+EXPORT_SYMBOL vmlinux 0xa2d7d3cf tty_port_init
+EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa2f3f581 ethtool_op_get_rx_csum
+EXPORT_SYMBOL vmlinux 0xa30fa423 scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0xa31c4b6e phy_device_create
+EXPORT_SYMBOL vmlinux 0xa3287796 rfkill_destroy
+EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker
+EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa3445d42 remove_from_page_cache
+EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le
+EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc
+EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config
+EXPORT_SYMBOL vmlinux 0xa3743a15 kernel_getsockname
+EXPORT_SYMBOL vmlinux 0xa3884de2 tty_devnum
+EXPORT_SYMBOL vmlinux 0xa3a495d1 __xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xa3e907af bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0xa4090944 ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xa40adc7c __inet6_hash
+EXPORT_SYMBOL vmlinux 0xa40c3197 tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0xa40cee89 unlock_rename
+EXPORT_SYMBOL vmlinux 0xa416674d bio_free
+EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0xa4882ba0 inode_init_always
+EXPORT_SYMBOL vmlinux 0xa495e42e tty_mutex
+EXPORT_SYMBOL vmlinux 0xa49b63b6 simple_link
+EXPORT_SYMBOL vmlinux 0xa4ac53ca qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0xa4b0c0b0 generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq
+EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4c2ec78 cap_file_mmap
+EXPORT_SYMBOL vmlinux 0xa4ca7dec dm_register_target
+EXPORT_SYMBOL vmlinux 0xa4d4916b send_sig_info
+EXPORT_SYMBOL vmlinux 0xa4ea9f0b xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0xa4f4c391 key_validate
+EXPORT_SYMBOL vmlinux 0xa4f63149 tty_name
+EXPORT_SYMBOL vmlinux 0xa51bb56f aio_put_req
+EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP
+EXPORT_SYMBOL vmlinux 0xa52cf6d7 start_tty
+EXPORT_SYMBOL vmlinux 0xa52fa925 alloc_file
+EXPORT_SYMBOL vmlinux 0xa5463167 pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone
+EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse
+EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xa5977527 blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a3c9d7 lock_sock_nested
+EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL vmlinux 0xa60837d5 lease_get_mtime
+EXPORT_SYMBOL vmlinux 0xa60ff2c9 kunmap_atomic
+EXPORT_SYMBOL vmlinux 0xa63cab15 spi_attach_transport
+EXPORT_SYMBOL vmlinux 0xa63ce0fa current_task
+EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember
+EXPORT_SYMBOL vmlinux 0xa63e2859 tcp_splice_read
+EXPORT_SYMBOL vmlinux 0xa63f528f neigh_parms_release
+EXPORT_SYMBOL vmlinux 0xa6771020 __napi_schedule
+EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa6877101 tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0xa68f1bc8 scsi_scan_target
+EXPORT_SYMBOL vmlinux 0xa693a6d8 pcim_iomap
+EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh
+EXPORT_SYMBOL vmlinux 0xa6a2ef76 tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0xa6c0d4e9 input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0xa6cb1b59 md_error
+EXPORT_SYMBOL vmlinux 0xa6f4ff9e set_pages_nx
+EXPORT_SYMBOL vmlinux 0xa7046549 vprintk
+EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu
+EXPORT_SYMBOL vmlinux 0xa722cbcb dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xa72d0fc4 xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0xa7350ed5 max8925_reg_read
+EXPORT_SYMBOL vmlinux 0xa73c207a pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0xa74554ec tcp_connect
+EXPORT_SYMBOL vmlinux 0xa751d1fc tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0xa76c5e54 bdi_init
+EXPORT_SYMBOL vmlinux 0xa771a662 pnp_unregister_driver
+EXPORT_SYMBOL vmlinux 0xa777ce61 bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0xa7e5f363 dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0xa7f2951d neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0xa809f581 __dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0xa811b4d1 dcache_dir_open
+EXPORT_SYMBOL vmlinux 0xa8450129 dev_uc_del
+EXPORT_SYMBOL vmlinux 0xa852f95f __scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0xa87c96a2 iterate_mounts
+EXPORT_SYMBOL vmlinux 0xa890008b blk_queue_ordered
+EXPORT_SYMBOL vmlinux 0xa891c6d3 generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0xa895c5c9 genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region
+EXPORT_SYMBOL vmlinux 0xa8b4725e pci_map_rom
+EXPORT_SYMBOL vmlinux 0xa8c1e29b pv_cpu_ops
+EXPORT_SYMBOL vmlinux 0xa8d280dc __sk_dst_check
+EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning
+EXPORT_SYMBOL vmlinux 0xa8e65314 pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0xa8f7e3c4 xfrm_init_state
+EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa9031f36 __getblk
+EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support
+EXPORT_SYMBOL vmlinux 0xa941321d scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0xa9440d3d fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0xa97fafc3 ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0xa995c098 eisa_bus_type
+EXPORT_SYMBOL vmlinux 0xa99ba559 sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize
+EXPORT_SYMBOL vmlinux 0xa9f2848d locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xa9f6ea46 abx500_register_ops
+EXPORT_SYMBOL vmlinux 0xaa04a6df bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0xaa20765b generic_file_llseek
+EXPORT_SYMBOL vmlinux 0xaa3cfd96 blk_execute_rq
+EXPORT_SYMBOL vmlinux 0xaa6c85ba xfrm_state_update
+EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check
+EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance
+EXPORT_SYMBOL vmlinux 0xaa93eff6 km_report
+EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0xaab50cf0 __skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xaad6a19e pci_find_bus
+EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable
+EXPORT_SYMBOL vmlinux 0xaaebe34f mca_write_pos
+EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister
+EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp
+EXPORT_SYMBOL vmlinux 0xab07a029 tcp_ioctl
+EXPORT_SYMBOL vmlinux 0xab36b6ab pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off
+EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc
+EXPORT_SYMBOL vmlinux 0xab67282c pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0xab779cf7 input_unregister_device
+EXPORT_SYMBOL vmlinux 0xab95ba41 sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock
+EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabf9aeaa napi_reuse_skb
+EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0xac41e177 skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0xac585644 do_SAK
+EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id
+EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac6878e4 atomic64_inc_return_cx8
+EXPORT_SYMBOL vmlinux 0xac959a41 i2c_use_client
+EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton
+EXPORT_SYMBOL vmlinux 0xace5cfc6 dev_load
+EXPORT_SYMBOL vmlinux 0xace68282 dm_table_event
+EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup
+EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex
+EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute
+EXPORT_SYMBOL vmlinux 0xad231918 rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad4b2b23 fget
+EXPORT_SYMBOL vmlinux 0xad52ba04 ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0xad78d6b8 dqput
+EXPORT_SYMBOL vmlinux 0xada8eeb4 nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xadaef2ef lro_flush_all
+EXPORT_SYMBOL vmlinux 0xadd2dbb2 sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0xadd32fe9 tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xadfbc217 bio_map_kern
+EXPORT_SYMBOL vmlinux 0xae2aebdc xfrm_bundle_ok
+EXPORT_SYMBOL vmlinux 0xae34fc79 jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0xae37ddd2 ip_defrag
+EXPORT_SYMBOL vmlinux 0xae3c003c sock_no_accept
+EXPORT_SYMBOL vmlinux 0xae506b3e register_qdisc
+EXPORT_SYMBOL vmlinux 0xae62c314 shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0xae6d72ae bio_endio
+EXPORT_SYMBOL vmlinux 0xae725ef1 unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0xae8a07e6 vmtruncate
+EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set
+EXPORT_SYMBOL vmlinux 0xae8c5ed5 journal_create
+EXPORT_SYMBOL vmlinux 0xaea81439 netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict
+EXPORT_SYMBOL vmlinux 0xaeac34f2 bmap
+EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0xaf3cfd9b invalidate_bdev
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table
+EXPORT_SYMBOL vmlinux 0xaf509f3e phy_device_free
+EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register
+EXPORT_SYMBOL vmlinux 0xaf5dfddb __netdev_alloc_page
+EXPORT_SYMBOL vmlinux 0xaf7404b2 security_path_link
+EXPORT_SYMBOL vmlinux 0xaf7ad5c7 pci_scan_slot
+EXPORT_SYMBOL vmlinux 0xaf89a9cb dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0xaf8dcd26 single_open
+EXPORT_SYMBOL vmlinux 0xafb9f10f wake_up_process
+EXPORT_SYMBOL vmlinux 0xafc39fef kfree_skb
+EXPORT_SYMBOL vmlinux 0xafc87123 kill_litter_super
+EXPORT_SYMBOL vmlinux 0xafe091d0 ppp_register_channel
+EXPORT_SYMBOL vmlinux 0xaff19e76 qdisc_reset
+EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait
+EXPORT_SYMBOL vmlinux 0xb0231de5 __mutex_init
+EXPORT_SYMBOL vmlinux 0xb0707f1e dquot_enable
+EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state
+EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler
+EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0c26f18 __module_put_and_exit
+EXPORT_SYMBOL vmlinux 0xb0c68c9f tty_port_close_end
+EXPORT_SYMBOL vmlinux 0xb0e10781 get_option
+EXPORT_SYMBOL vmlinux 0xb0f3df2b jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0xb0fe5755 inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb13eedc6 dm_table_get_md
+EXPORT_SYMBOL vmlinux 0xb15b867d bio_copy_kern
+EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table
+EXPORT_SYMBOL vmlinux 0xb16c0d0a inet_bind
+EXPORT_SYMBOL vmlinux 0xb17abb4a scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb199d31f flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xb1a3b446 nf_getsockopt
+EXPORT_SYMBOL vmlinux 0xb1ad754f udp_ioctl
+EXPORT_SYMBOL vmlinux 0xb1bf0deb __ht_create_irq
+EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xb1e5f5fc sk_run_filter
+EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit
+EXPORT_SYMBOL vmlinux 0xb1fd539e acpi_device_hid
+EXPORT_SYMBOL vmlinux 0xb20c06e2 __bread
+EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu
+EXPORT_SYMBOL vmlinux 0xb21b7b0e sg_miter_start
+EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short
+EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xb2372aa0 backlight_force_update
+EXPORT_SYMBOL vmlinux 0xb251144b x86_dma_fallback_dev
+EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb26c1f83 skb_put
+EXPORT_SYMBOL vmlinux 0xb27aa567 __locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xb28741b9 poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0xb28999fe scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos
+EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4
+EXPORT_SYMBOL vmlinux 0xb31ca596 netif_receive_skb
+EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer
+EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate
+EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit
+EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0xb37a4e4e write_inode_now
+EXPORT_SYMBOL vmlinux 0xb3a11c34 kmap
+EXPORT_SYMBOL vmlinux 0xb3a20e00 dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3a3b454 mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0xb3bba8ce __insert_inode_hash
+EXPORT_SYMBOL vmlinux 0xb3cf4788 ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources
+EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked
+EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool
+EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0xb4357847 bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xb4390f9a mcount
+EXPORT_SYMBOL vmlinux 0xb43aaef2 journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0xb4404d50 default_unplug_io_fn
+EXPORT_SYMBOL vmlinux 0xb4442efb llc_sap_open
+EXPORT_SYMBOL vmlinux 0xb44e8c54 bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0xb45578b8 memscan
+EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids
+EXPORT_SYMBOL vmlinux 0xb460c489 ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0xb4666ff9 simple_setattr
+EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb472702a devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xb4bb48d7 elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0xb4d1067a nf_register_hook
+EXPORT_SYMBOL vmlinux 0xb4d334c6 blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0xb4d4b82c phy_driver_register
+EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf
+EXPORT_SYMBOL vmlinux 0xb5267835 kset_unregister
+EXPORT_SYMBOL vmlinux 0xb54497b1 dev_get_stats
+EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb54f3f74 rtnl_unicast
+EXPORT_SYMBOL vmlinux 0xb550eacc neigh_seq_start
+EXPORT_SYMBOL vmlinux 0xb5642c6c d_delete
+EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5ac68b9 inode_add_bytes
+EXPORT_SYMBOL vmlinux 0xb5b77db7 padata_alloc
+EXPORT_SYMBOL vmlinux 0xb5c44421 cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free
+EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction
+EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one
+EXPORT_SYMBOL vmlinux 0xb651a9c5 register_nls
+EXPORT_SYMBOL vmlinux 0xb6523369 neigh_table_clear
+EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif
+EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6aaad10 bdput
+EXPORT_SYMBOL vmlinux 0xb6b951dc qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0xb6bcfe66 dev_close
+EXPORT_SYMBOL vmlinux 0xb6bdd582 genphy_config_advert
+EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu
+EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6d0b561 eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0xb6e37e5b md_write_start
+EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy
+EXPORT_SYMBOL vmlinux 0xb6f5865c tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xb70c1dd7 bitmap_close_sync
+EXPORT_SYMBOL vmlinux 0xb72397d5 printk
+EXPORT_SYMBOL vmlinux 0xb728fa91 bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event
+EXPORT_SYMBOL vmlinux 0xb75e327d sk_release_kernel
+EXPORT_SYMBOL vmlinux 0xb76b5e28 ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0xb7b3a1ba generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be
+EXPORT_SYMBOL vmlinux 0xb7bc9aaa request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0xb7c4ca85 phy_connect_direct
+EXPORT_SYMBOL vmlinux 0xb80cd563 unlock_page
+EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat
+EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops
+EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32
+EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release
+EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on
+EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32
+EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue
+EXPORT_SYMBOL vmlinux 0xb8b203c1 xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0xb8d4d9ff bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0xb8d9d113 tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0xb8d9ddec scsi_remove_host
+EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8
+EXPORT_SYMBOL vmlinux 0xb8fdc8f9 blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory
+EXPORT_SYMBOL vmlinux 0xb91bd288 __scsi_put_command
+EXPORT_SYMBOL vmlinux 0xb92d2e07 netif_rx
+EXPORT_SYMBOL vmlinux 0xb92f9ea7 blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0xb942b513 smp_call_function_many
+EXPORT_SYMBOL vmlinux 0xb94a599f netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0xb96ae732 jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xb96cf835 file_update_time
+EXPORT_SYMBOL vmlinux 0xb9786c61 phy_print_status
+EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb99464d1 mutex_trylock
+EXPORT_SYMBOL vmlinux 0xb9b430fe bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0xb9b6194d journal_ack_err
+EXPORT_SYMBOL vmlinux 0xb9d8e65c generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xb9e319b5 dm_table_get
+EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable
+EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap
+EXPORT_SYMBOL vmlinux 0xba052d24 pneigh_lookup
+EXPORT_SYMBOL vmlinux 0xba1bf281 generic_setxattr
+EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read
+EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba4cb5ca tty_shutdown
+EXPORT_SYMBOL vmlinux 0xba72ab8d tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xba9106df scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0xba9b1af1 netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0xbaa7cb1b jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xbaa9099c blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbaacaff6 seq_write
+EXPORT_SYMBOL vmlinux 0xbab5a3a6 unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0xbac98f09 kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0xbaf61720 bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0xbb1211d2 register_sysrq_key
+EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb1eaf13 acpi_bus_register_driver
+EXPORT_SYMBOL vmlinux 0xbb33a0af get_gendisk
+EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb8b025e fb_pan_display
+EXPORT_SYMBOL vmlinux 0xbb91b854 generic_removexattr
+EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font
+EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xbbc4adb3 vfs_fsync
+EXPORT_SYMBOL vmlinux 0xbbce91f0 sock_create_kern
+EXPORT_SYMBOL vmlinux 0xbbef8f5d pci_write_vpd
+EXPORT_SYMBOL vmlinux 0xbc05749a sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit
+EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table
+EXPORT_SYMBOL vmlinux 0xbc3df636 inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0xbc6e393c ip_getsockopt
+EXPORT_SYMBOL vmlinux 0xbcbafa81 __blk_end_request
+EXPORT_SYMBOL vmlinux 0xbcbbead4 rfkill_blocked
+EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user
+EXPORT_SYMBOL vmlinux 0xbcd52f2f dev_trans_start
+EXPORT_SYMBOL vmlinux 0xbcfc932f dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0xbd33270a gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0xbd395072 ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0xbd45e8b1 framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0xbdebb6f3 idr_find
+EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next
+EXPORT_SYMBOL vmlinux 0xbdfade9f pci_remove_behind_bridge
+EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp
+EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node
+EXPORT_SYMBOL vmlinux 0xbe535820 xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0xbe58fda6 inet_add_protocol
+EXPORT_SYMBOL vmlinux 0xbe8c37d9 intel_scu_ipc_simple_command
+EXPORT_SYMBOL vmlinux 0xbea78b39 inet_recvmsg
+EXPORT_SYMBOL vmlinux 0xbeacadfa scsi_scan_host
+EXPORT_SYMBOL vmlinux 0xbed2a05a call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbf0c4eb1 pci_target_state
+EXPORT_SYMBOL vmlinux 0xbf53ad73 eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xbf62a7d9 pnp_start_dev
+EXPORT_SYMBOL vmlinux 0xbf6ac22e eth_type_trans
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbf9df2be scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0xbfa0e53e unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0xbfa166c2 freeze_bdev
+EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep
+EXPORT_SYMBOL vmlinux 0xbfe11913 lro_receive_frags
+EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xbff7e4ed blk_stack_limits
+EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user
+EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero
+EXPORT_SYMBOL vmlinux 0xc0254f44 pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0xc045be13 alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0xc05b0d1c simple_release_fs
+EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit
+EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object
+EXPORT_SYMBOL vmlinux 0xc0a91348 dm_exception_store_create
+EXPORT_SYMBOL vmlinux 0xc0bb26f1 acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL vmlinux 0xc0c04c32 __set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0xc0d2f3b0 nf_reinject
+EXPORT_SYMBOL vmlinux 0xc0f533cc ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0xc0f65988 machine_real_restart
+EXPORT_SYMBOL vmlinux 0xc10df91e dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0xc11475c9 pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0xc115b6cf __xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten
+EXPORT_SYMBOL vmlinux 0xc12087a6 dev_mc_sync
+EXPORT_SYMBOL vmlinux 0xc122cee2 gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xc130aca3 security_inode_init_security
+EXPORT_SYMBOL vmlinux 0xc14f8db4 fb_show_logo
+EXPORT_SYMBOL vmlinux 0xc154ae7e scsi_finish_command
+EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic
+EXPORT_SYMBOL vmlinux 0xc189d392 mnt_unpin
+EXPORT_SYMBOL vmlinux 0xc1a08243 splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0xc1abebe7 x86_hyper
+EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1c34df9 hippi_neigh_setup_dev
+EXPORT_SYMBOL vmlinux 0xc1c81589 i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0xc1d22f2d ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xc1de732f mca_register_driver
+EXPORT_SYMBOL vmlinux 0xc1f9b647 ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0xc1fadfc8 ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0xc214190a simple_rename
+EXPORT_SYMBOL vmlinux 0xc253f985 pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0xc256ba68 __lru_cache_add
+EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc271bc6f dma_sync_wait
+EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll
+EXPORT_SYMBOL vmlinux 0xc2c098ea pnpacpi_protocol
+EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc
+EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices
+EXPORT_SYMBOL vmlinux 0xc311f39e slow_work_unregister_user
+EXPORT_SYMBOL vmlinux 0xc312c398 dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu
+EXPORT_SYMBOL vmlinux 0xc345ce54 intel_scu_ipc_fw_update
+EXPORT_SYMBOL vmlinux 0xc3742b79 xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout
+EXPORT_SYMBOL vmlinux 0xc3a28fc6 key_put
+EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1
+EXPORT_SYMBOL vmlinux 0xc3b7f453 tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0xc3c3bfe1 fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p
+EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr
+EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier
+EXPORT_SYMBOL vmlinux 0xc402f5cc file_fsync
+EXPORT_SYMBOL vmlinux 0xc404e014 scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0xc41f94fc mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0xc439cc4c sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0xc439f101 mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0xc444fdec sock_kfree_s
+EXPORT_SYMBOL vmlinux 0xc461eec0 mmc_register_driver
+EXPORT_SYMBOL vmlinux 0xc46f2f38 generic_fillattr
+EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup
+EXPORT_SYMBOL vmlinux 0xc4a71e6c load_nls_default
+EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic
+EXPORT_SYMBOL vmlinux 0xc4fe27bf filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0xc50933c4 genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc53a2e45 blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0xc546b825 dget_locked
+EXPORT_SYMBOL vmlinux 0xc5492dca commit_creds
+EXPORT_SYMBOL vmlinux 0xc54a7a4b wireless_send_event
+EXPORT_SYMBOL vmlinux 0xc54c641f mfd_add_devices
+EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16
+EXPORT_SYMBOL vmlinux 0xc55898e9 vfs_mknod
+EXPORT_SYMBOL vmlinux 0xc598104b unload_nls
+EXPORT_SYMBOL vmlinux 0xc5a2ea67 scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0xc5baa56e fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0xc5eaeab6 x86_hyper_ms_hyperv
+EXPORT_SYMBOL vmlinux 0xc5ed2590 rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0xc5fbaa7c block_sync_page
+EXPORT_SYMBOL vmlinux 0xc616ac6d phy_stop
+EXPORT_SYMBOL vmlinux 0xc63c2652 elv_rb_add
+EXPORT_SYMBOL vmlinux 0xc6502626 neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0xc661c1c7 __ip_select_ident
+EXPORT_SYMBOL vmlinux 0xc670feda scsi_device_resume
+EXPORT_SYMBOL vmlinux 0xc6838e44 tcf_exts_change
+EXPORT_SYMBOL vmlinux 0xc68576e5 skb_make_writable
+EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info
+EXPORT_SYMBOL vmlinux 0xc69146b1 pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0xc6a2a5b0 phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0xc6ac5eba dma_ops
+EXPORT_SYMBOL vmlinux 0xc6b17381 qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0xc6b20fe1 tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0xc6b23120 intel_scu_ipc_iowrite16
+EXPORT_SYMBOL vmlinux 0xc7010364 kill_anon_super
+EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port
+EXPORT_SYMBOL vmlinux 0xc72f9e87 skb_checksum
+EXPORT_SYMBOL vmlinux 0xc74fe0fe alloc_trdev
+EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits
+EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7a98280 simple_dir_operations
+EXPORT_SYMBOL vmlinux 0xc7bc7af0 scsi_ioctl
+EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn
+EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0xc83cc3fb ip_ct_attach
+EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc850e125 pci_request_regions
+EXPORT_SYMBOL vmlinux 0xc868aa7a pci_bus_type
+EXPORT_SYMBOL vmlinux 0xc8724724 inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc89297a5 find_inode_number
+EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table
+EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8f7bea5 jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0xc9093a7c pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0xc90b1da2 dm_table_put
+EXPORT_SYMBOL vmlinux 0xc923f687 page_readlink
+EXPORT_SYMBOL vmlinux 0xc98071f9 unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0xc9812f69 journal_abort
+EXPORT_SYMBOL vmlinux 0xc9860593 pci_save_state
+EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev
+EXPORT_SYMBOL vmlinux 0xc99e80f8 skb_queue_purge
+EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete
+EXPORT_SYMBOL vmlinux 0xc9eab16f iget_locked
+EXPORT_SYMBOL vmlinux 0xca013a50 fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0xca0768db pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0xca32f750 pci_disable_msix
+EXPORT_SYMBOL vmlinux 0xca3aba8e pci_dev_get
+EXPORT_SYMBOL vmlinux 0xca554c79 mmc_remove_host
+EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca62d5da cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0xca62f72b sock_no_connect
+EXPORT_SYMBOL vmlinux 0xca7ca86b rfkill_register
+EXPORT_SYMBOL vmlinux 0xca7d4fb7 elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0xca7f2c6c boot_cpu_data
+EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level
+EXPORT_SYMBOL vmlinux 0xca8ef3f1 generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0xcaa8ba12 loop_register_transfer
+EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel
+EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0xcae43143 inet6_bind
+EXPORT_SYMBOL vmlinux 0xcaebfd72 alloc_fddidev
+EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0xcafcfac0 set_anon_super
+EXPORT_SYMBOL vmlinux 0xcb579ea8 dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0xcb5d2b0d tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power
+EXPORT_SYMBOL vmlinux 0xcba93419 __scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xcbb04cd5 scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0xcbcb35df security_path_symlink
+EXPORT_SYMBOL vmlinux 0xcbcbe7b1 dma_pool_create
+EXPORT_SYMBOL vmlinux 0xcbfd2e9a mutex_lock
+EXPORT_SYMBOL vmlinux 0xcc1e9ff0 sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port
+EXPORT_SYMBOL vmlinux 0xcc26d033 blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc4b34b5 lro_vlan_hwaccel_receive_frags
+EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package
+EXPORT_SYMBOL vmlinux 0xcc659c9c bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0xcca497e0 udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0xcca9c947 seq_release
+EXPORT_SYMBOL vmlinux 0xccf62fdb get_phy_device
+EXPORT_SYMBOL vmlinux 0xcd17ad26 ip6_route_output
+EXPORT_SYMBOL vmlinux 0xcd2280d0 sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0xcd3689c6 dquot_quota_on_path
+EXPORT_SYMBOL vmlinux 0xcd56c22d __put_cred
+EXPORT_SYMBOL vmlinux 0xcd5a2e24 journal_dirty_data
+EXPORT_SYMBOL vmlinux 0xcd6065ae igrab
+EXPORT_SYMBOL vmlinux 0xcda5e06f llc_sap_find
+EXPORT_SYMBOL vmlinux 0xcdb500c1 tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0xcdc2073b make_bad_inode
+EXPORT_SYMBOL vmlinux 0xcdc83f1a truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0xcdd62086 dst_discard
+EXPORT_SYMBOL vmlinux 0xcddc207b inet_stream_connect
+EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe
+EXPORT_SYMBOL vmlinux 0xce0e2cf9 spi_release_transport
+EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0xce1d4069 scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state
+EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce5cc21e boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0xcea7183d jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0xceb6f988 i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free
+EXPORT_SYMBOL vmlinux 0xceedaac9 prepare_binprm
+EXPORT_SYMBOL vmlinux 0xceee491b try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port
+EXPORT_SYMBOL vmlinux 0xcf0c88f2 remove_arg_zero
+EXPORT_SYMBOL vmlinux 0xcf0dc059 mca_device_transform_ioport
+EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error
+EXPORT_SYMBOL vmlinux 0xcf258714 devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xcf2c7a26 put_mnt_ns
+EXPORT_SYMBOL vmlinux 0xcf2f465f key_type_keyring
+EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free
+EXPORT_SYMBOL vmlinux 0xcf8692e1 iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0xcf90ce8a dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xcf990d57 thermal_zone_bind_cooling_device
+EXPORT_SYMBOL vmlinux 0xcf9df6ab poll_initwait
+EXPORT_SYMBOL vmlinux 0xcfa957a2 skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfc5f030 udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe
+EXPORT_SYMBOL vmlinux 0xcffa3df8 ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd04dcae4 acpi_bus_get_device
+EXPORT_SYMBOL vmlinux 0xd0743488 file_remove_suid
+EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables
+EXPORT_SYMBOL vmlinux 0xd08198d3 inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0xd095cccb acpi_unlock_ac_dir
+EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0d8621b strlen
+EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0f60540 unregister_binfmt
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd10d18d7 generic_block_bmap
+EXPORT_SYMBOL vmlinux 0xd117ccef dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0xd13a0e92 nf_hook_slow
+EXPORT_SYMBOL vmlinux 0xd13e2cb1 mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver
+EXPORT_SYMBOL vmlinux 0xd14f9d85 acpi_lock_battery_dir
+EXPORT_SYMBOL vmlinux 0xd18a1e50 alloc_netdev_mq
+EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic
+EXPORT_SYMBOL vmlinux 0xd1ed61db sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings
+EXPORT_SYMBOL vmlinux 0xd21155dd dma_alloc_from_coherent
+EXPORT_SYMBOL vmlinux 0xd21450e8 user_revoke
+EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel
+EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t
+EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook
+EXPORT_SYMBOL vmlinux 0xd276e9b9 blk_register_region
+EXPORT_SYMBOL vmlinux 0xd28b5905 alloc_disk
+EXPORT_SYMBOL vmlinux 0xd28c9f0e bd_release
+EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match
+EXPORT_SYMBOL vmlinux 0xd2db3e39 dma_async_device_register
+EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance
+EXPORT_SYMBOL vmlinux 0xd2ef5ace dw_spi_resume_host
+EXPORT_SYMBOL vmlinux 0xd31734f6 mdiobus_free
+EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock
+EXPORT_SYMBOL vmlinux 0xd375572b phy_connect
+EXPORT_SYMBOL vmlinux 0xd37caf94 blk_init_allocated_queue_node
+EXPORT_SYMBOL vmlinux 0xd383107d kobject_add
+EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64
+EXPORT_SYMBOL vmlinux 0xd409f8f8 clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0xd4689b67 tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0xd47099b0 xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0xd47b98e8 kmem_cache_alloc_notrace
+EXPORT_SYMBOL vmlinux 0xd4b609aa blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0xd4cf70b5 get_sb_bdev
+EXPORT_SYMBOL vmlinux 0xd4f57369 tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0xd500696c tcp_disconnect
+EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data
+EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8
+EXPORT_SYMBOL vmlinux 0xd54cc85d __scm_destroy
+EXPORT_SYMBOL vmlinux 0xd550762a slow_work_sleep_till_thread_needed
+EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out
+EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit
+EXPORT_SYMBOL vmlinux 0xd571d5fe skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0xd59ff5f8 dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put
+EXPORT_SYMBOL vmlinux 0xd5b263ba pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xd5c8b5d4 dquot_acquire
+EXPORT_SYMBOL vmlinux 0xd5ccc8c7 unregister_key_type
+EXPORT_SYMBOL vmlinux 0xd5d343c8 cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0xd5f875b1 sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read
+EXPORT_SYMBOL vmlinux 0xd61ae197 sock_no_getname
+EXPORT_SYMBOL vmlinux 0xd62acd74 skb_copy
+EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd635d134 rb_last
+EXPORT_SYMBOL vmlinux 0xd668f29b rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0xd6870eeb mca_bus_type
+EXPORT_SYMBOL vmlinux 0xd68948a2 dev_addr_del
+EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single
+EXPORT_SYMBOL vmlinux 0xd6ad41bd scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz
+EXPORT_SYMBOL vmlinux 0xd6bc2422 skb_split
+EXPORT_SYMBOL vmlinux 0xd6c34c23 take_over_console
+EXPORT_SYMBOL vmlinux 0xd6d19f3e blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0xd6d2d54e pnp_unregister_card_driver
+EXPORT_SYMBOL vmlinux 0xd6e97ad8 input_register_handle
+EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc
+EXPORT_SYMBOL vmlinux 0xd6f97ca1 rb_first
+EXPORT_SYMBOL vmlinux 0xd70a41d2 ppp_channel_index
+EXPORT_SYMBOL vmlinux 0xd70c4cc5 bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh
+EXPORT_SYMBOL vmlinux 0xd71a0254 dquot_quota_off
+EXPORT_SYMBOL vmlinux 0xd7227f22 xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0xd7678632 rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0xd769e6d3 tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and
+EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal
+EXPORT_SYMBOL vmlinux 0xd79bfbed unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0xd7bbf661 __free_pages
+EXPORT_SYMBOL vmlinux 0xd7d223b2 unlock_super
+EXPORT_SYMBOL vmlinux 0xd7d7e8e9 d_splice_alias
+EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7e99c99 kern_path
+EXPORT_SYMBOL vmlinux 0xd7f373de acpi_notifier_call_chain
+EXPORT_SYMBOL vmlinux 0xd829ced8 tty_hangup
+EXPORT_SYMBOL vmlinux 0xd8469b9d mmc_release_host
+EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user
+EXPORT_SYMBOL vmlinux 0xd8726a1f __seq_open_private
+EXPORT_SYMBOL vmlinux 0xd883f794 splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0xd893adc5 nonseekable_open
+EXPORT_SYMBOL vmlinux 0xd89c094d __skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone
+EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p
+EXPORT_SYMBOL vmlinux 0xd8b96e28 sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0xd8c1da8e kunmap
+EXPORT_SYMBOL vmlinux 0xd8e10a2c pci_release_region
+EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler
+EXPORT_SYMBOL vmlinux 0xd926cf3b datagram_poll
+EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd95b0994 serio_rescan
+EXPORT_SYMBOL vmlinux 0xd9753ff9 poll_freewait
+EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd98be501 dev_mc_add
+EXPORT_SYMBOL vmlinux 0xd99b6099 security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0xd9a3fcfb netlink_ack
+EXPORT_SYMBOL vmlinux 0xd9b16e06 ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused
+EXPORT_SYMBOL vmlinux 0xd9cc0225 kernel_read
+EXPORT_SYMBOL vmlinux 0xd9d6915c vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0xd9f89e6e pcibios_set_irq_routing
+EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table
+EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic
+EXPORT_SYMBOL vmlinux 0xda111a1b unregister_quota_format
+EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf
+EXPORT_SYMBOL vmlinux 0xda25c876 xfrm_state_add
+EXPORT_SYMBOL vmlinux 0xda2606a0 mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0xda329e8c kernel_bind
+EXPORT_SYMBOL vmlinux 0xda3e3472 iunique
+EXPORT_SYMBOL vmlinux 0xda55b4ba free_buffer_head
+EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue
+EXPORT_SYMBOL vmlinux 0xda70ac48 dev_get_by_flags
+EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte
+EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xda99006e lookup_hash
+EXPORT_SYMBOL vmlinux 0xdaa2f00f mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages
+EXPORT_SYMBOL vmlinux 0xdaaa8ca8 kmap_atomic_to_page
+EXPORT_SYMBOL vmlinux 0xdabbc913 i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0xdacab08e dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0xdaf41581 skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0xdb0f8967 search_binary_handler
+EXPORT_SYMBOL vmlinux 0xdb3e4fa5 nf_log_packet
+EXPORT_SYMBOL vmlinux 0xdb47715b d_invalidate
+EXPORT_SYMBOL vmlinux 0xdb6229e4 posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xdb75a395 pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbd81b9a dm_dirty_log_create
+EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done
+EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc0813fc dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems
+EXPORT_SYMBOL vmlinux 0xdc17234d journal_init_inode
+EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize
+EXPORT_SYMBOL vmlinux 0xdc985f09 override_creds
+EXPORT_SYMBOL vmlinux 0xdc9c969f cfb_copyarea
+EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family
+EXPORT_SYMBOL vmlinux 0xdcdb3771 open_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0xdd044705 cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat
+EXPORT_SYMBOL vmlinux 0xdd0dca27 dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0xdd162be3 __blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0xdd209570 try_to_release_page
+EXPORT_SYMBOL vmlinux 0xdd4f716b pid_task
+EXPORT_SYMBOL vmlinux 0xdd5152b3 security_path_truncate
+EXPORT_SYMBOL vmlinux 0xdd5af23e __devm_release_region
+EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0xdd7978c9 cdrom_release
+EXPORT_SYMBOL vmlinux 0xdd877b28 rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0xdd9c88ff page_put_link
+EXPORT_SYMBOL vmlinux 0xddcb35b5 phy_start
+EXPORT_SYMBOL vmlinux 0xde09427e fb_blank
+EXPORT_SYMBOL vmlinux 0xde305795 inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending
+EXPORT_SYMBOL vmlinux 0xde4a820b pnpbios_protocol
+EXPORT_SYMBOL vmlinux 0xde536bd3 block_commit_write
+EXPORT_SYMBOL vmlinux 0xde58d47f have_submounts
+EXPORT_SYMBOL vmlinux 0xde6067a6 netif_napi_del
+EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type
+EXPORT_SYMBOL vmlinux 0xde8e7f8e ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages
+EXPORT_SYMBOL vmlinux 0xde9f3c35 tty_kref_put
+EXPORT_SYMBOL vmlinux 0xdea0a59f spi_display_xfer_agreement
+EXPORT_SYMBOL vmlinux 0xdee0dc71 clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock
+EXPORT_SYMBOL vmlinux 0xdf06e66b security_inode_readlink
+EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices
+EXPORT_SYMBOL vmlinux 0xdf365822 find_lock_page
+EXPORT_SYMBOL vmlinux 0xdf3683aa xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0xdf3c1b6d pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0xdf4bac37 dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval
+EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol
+EXPORT_SYMBOL vmlinux 0xdf676a1b km_state_expired
+EXPORT_SYMBOL vmlinux 0xdf6bba1c set_pages_wb
+EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay
+EXPORT_SYMBOL vmlinux 0xdf9246ab generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init
+EXPORT_SYMBOL vmlinux 0xdfca5df6 skb_insert
+EXPORT_SYMBOL vmlinux 0xdfcb287a inet6_getname
+EXPORT_SYMBOL vmlinux 0xdfd36562 ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0xdfd7acf8 nf_ct_attach
+EXPORT_SYMBOL vmlinux 0xdfe71052 request_key
+EXPORT_SYMBOL vmlinux 0xdfeb105d rfkill_unregister
+EXPORT_SYMBOL vmlinux 0xe001d308 xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0xe050e6b4 tty_unthrottle
+EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe0797963 dw_spi_add_host
+EXPORT_SYMBOL vmlinux 0xe0a16a20 intel_scu_ipc_i2c_cntrl
+EXPORT_SYMBOL vmlinux 0xe0a39550 ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event
+EXPORT_SYMBOL vmlinux 0xe0b0fc57 open_exec
+EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free
+EXPORT_SYMBOL vmlinux 0xe0ba55ba jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort
+EXPORT_SYMBOL vmlinux 0xe0bf770f pci_dev_put
+EXPORT_SYMBOL vmlinux 0xe100f362 kobject_init
+EXPORT_SYMBOL vmlinux 0xe1211124 ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0xe131c5ac xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0xe131e934 lock_rename
+EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0xe139b0a2 generic_ro_fops
+EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors
+EXPORT_SYMBOL vmlinux 0xe14715d5 pnp_device_detach
+EXPORT_SYMBOL vmlinux 0xe153f695 dquot_free_inode
+EXPORT_SYMBOL vmlinux 0xe159a176 mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0xe15cd5fc put_io_context
+EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe177e171 cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0xe1b98988 key_task_permission
+EXPORT_SYMBOL vmlinux 0xe1cf107f qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0xe1f8142e scsi_host_put
+EXPORT_SYMBOL vmlinux 0xe20912d4 jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0xe212bdc7 blk_unplug
+EXPORT_SYMBOL vmlinux 0xe21ea464 tcp4_gro_receive
+EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64
+EXPORT_SYMBOL vmlinux 0xe2525ad6 scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xe256eddc dm_exception_store_destroy
+EXPORT_SYMBOL vmlinux 0xe260b071 arp_create
+EXPORT_SYMBOL vmlinux 0xe2817593 genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0xe2a8889f kunmap_high
+EXPORT_SYMBOL vmlinux 0xe2b6d4cd __serio_register_driver
+EXPORT_SYMBOL vmlinux 0xe2ba2c1a max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp
+EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user
+EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup
+EXPORT_SYMBOL vmlinux 0xe30be379 scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0xe320be88 generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xe35e56f1 inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0xe3870708 security_file_permission
+EXPORT_SYMBOL vmlinux 0xe39546cf pci_read_vpd
+EXPORT_SYMBOL vmlinux 0xe3b2d860 blk_free_tags
+EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8
+EXPORT_SYMBOL vmlinux 0xe3d88ef7 iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0xe3dfa3b8 seq_read
+EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler
+EXPORT_SYMBOL vmlinux 0xe3fdd734 ida_remove
+EXPORT_SYMBOL vmlinux 0xe422e6b3 xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0xe42dd1ff blkdev_get
+EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT
+EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem
+EXPORT_SYMBOL vmlinux 0xe482349f cont_write_begin
+EXPORT_SYMBOL vmlinux 0xe484e35f ioread32
+EXPORT_SYMBOL vmlinux 0xe4a2aa87 vfs_getattr
+EXPORT_SYMBOL vmlinux 0xe4b507a6 nobh_write_begin
+EXPORT_SYMBOL vmlinux 0xe4b85ef9 xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0xe50f904f intel_scu_ipc_ioread16
+EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe
+EXPORT_SYMBOL vmlinux 0xe534a7c8 generic_write_end
+EXPORT_SYMBOL vmlinux 0xe53ad2d7 vfs_writev
+EXPORT_SYMBOL vmlinux 0xe54d492d register_exec_domain
+EXPORT_SYMBOL vmlinux 0xe54f07fd jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0xe5775d35 jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton
+EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5a7a350 napi_gro_frags
+EXPORT_SYMBOL vmlinux 0xe5a9c160 inet_sendmsg
+EXPORT_SYMBOL vmlinux 0xe5b4f24c iget_failed
+EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5d39d8a prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0xe5d77f48 skb_find_text
+EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe5f14ab0 fb_set_cmap
+EXPORT_SYMBOL vmlinux 0xe612b839 __alloc_skb
+EXPORT_SYMBOL vmlinux 0xe6357237 journal_load
+EXPORT_SYMBOL vmlinux 0xe6389102 follow_up
+EXPORT_SYMBOL vmlinux 0xe6566e4a is_bad_inode
+EXPORT_SYMBOL vmlinux 0xe674280d log_start_commit
+EXPORT_SYMBOL vmlinux 0xe68c4e74 destroy_EII_client
+EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid
+EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update
+EXPORT_SYMBOL vmlinux 0xe6f65450 napi_get_frags
+EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe7016da0 set_bdi_congested
+EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic
+EXPORT_SYMBOL vmlinux 0xe72c3e14 journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xe73a5ff0 tcf_hash_check
+EXPORT_SYMBOL vmlinux 0xe741b0e6 deny_write_access
+EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy
+EXPORT_SYMBOL vmlinux 0xe7790033 bio_init
+EXPORT_SYMBOL vmlinux 0xe781b5f6 intel_scu_ipc_readv
+EXPORT_SYMBOL vmlinux 0xe7a9e7fd skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0xe7b9b865 d_move
+EXPORT_SYMBOL vmlinux 0xe7cfdc02 pskb_expand_head
+EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next
+EXPORT_SYMBOL vmlinux 0xe805d539 tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xe80af0a2 input_set_capability
+EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe83191c9 acpi_is_video_device
+EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss
+EXPORT_SYMBOL vmlinux 0xe88d04d9 journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit
+EXPORT_SYMBOL vmlinux 0xe8b30d0e dquot_release
+EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh
+EXPORT_SYMBOL vmlinux 0xe90aa4e9 rb_insert_color
+EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module
+EXPORT_SYMBOL vmlinux 0xe91400e5 rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0xe914e41e strcpy
+EXPORT_SYMBOL vmlinux 0xe965a09d fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0xe96b85b1 dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0xe980da07 tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0xe99092b6 copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xe9da91db default_file_splice_read
+EXPORT_SYMBOL vmlinux 0xe9fca45c sock_update_classid
+EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0xea7987f1 key_update
+EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data
+EXPORT_SYMBOL vmlinux 0xeaaa1198 scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0xeadb4db6 block_write_end
+EXPORT_SYMBOL vmlinux 0xeadf9235 mpage_writepage
+EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay
+EXPORT_SYMBOL vmlinux 0xeae9f00e kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0xeb19b1c2 dm_dirty_log_type_unregister
+EXPORT_SYMBOL vmlinux 0xeb3f008f get_super
+EXPORT_SYMBOL vmlinux 0xeb518b2f blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0xeb7da8c2 jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0xeb80d9f4 dev_addr_add
+EXPORT_SYMBOL vmlinux 0xeb81961f cfb_fillrect
+EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n
+EXPORT_SYMBOL vmlinux 0xebb40f55 dquot_initialize
+EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull
+EXPORT_SYMBOL vmlinux 0xebd99481 dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0xebe94edd hippi_change_mtu
+EXPORT_SYMBOL vmlinux 0xec01c5b8 dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0xec052df9 simple_readpage
+EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec4a7ddb ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns
+EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xec7d63c3 nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xec81fe6b iput
+EXPORT_SYMBOL vmlinux 0xecd2ad97 __skb_bond_should_drop
+EXPORT_SYMBOL vmlinux 0xecdd9a06 tcp_parse_options
+EXPORT_SYMBOL vmlinux 0xed0a24ff phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xed0b3314 sk_stop_timer
+EXPORT_SYMBOL vmlinux 0xed29d56f idr_remove
+EXPORT_SYMBOL vmlinux 0xed2feb88 vfs_readlink
+EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xed9179a8 tcp_close
+EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xeda919b1 freeze_super
+EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedc03953 iounmap
+EXPORT_SYMBOL vmlinux 0xedc94e55 truncate_pagecache
+EXPORT_SYMBOL vmlinux 0xedd6ce1f journal_destroy
+EXPORT_SYMBOL vmlinux 0xee06ca06 xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0xee0a53c1 __ps2_command
+EXPORT_SYMBOL vmlinux 0xee0f1acf simple_getattr
+EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee386792 pcie_port_service_unregister
+EXPORT_SYMBOL vmlinux 0xee4ad281 uart_update_timeout
+EXPORT_SYMBOL vmlinux 0xee6c66e3 scsi_print_sense
+EXPORT_SYMBOL vmlinux 0xee759e99 d_instantiate
+EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices
+EXPORT_SYMBOL vmlinux 0xee83c7fa mdiobus_read
+EXPORT_SYMBOL vmlinux 0xee925786 generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0xeea55f3e skb_push
+EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeeb6dafa __breadahead
+EXPORT_SYMBOL vmlinux 0xeee5583c d_lookup
+EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler
+EXPORT_SYMBOL vmlinux 0xef2d1e7f skb_unlink
+EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter
+EXPORT_SYMBOL vmlinux 0xef3e1bad simple_rmdir
+EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc
+EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool
+EXPORT_SYMBOL vmlinux 0xef70e857 scsi_register
+EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override
+EXPORT_SYMBOL vmlinux 0xef9bdabc key_payload_reserve
+EXPORT_SYMBOL vmlinux 0xefd87bfe pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status
+EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock
+EXPORT_SYMBOL vmlinux 0xefffc486 mmc_card_sleep
+EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list
+EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be
+EXPORT_SYMBOL vmlinux 0xf06d41d5 scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0xf07890f4 inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0xf07aca22 sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0xf07f7b89 kdb_current_task
+EXPORT_SYMBOL vmlinux 0xf096692d phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up
+EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0xf0a8519b rtnl_notify
+EXPORT_SYMBOL vmlinux 0xf0af16f0 pci_restore_state
+EXPORT_SYMBOL vmlinux 0xf0b30bcb scsi_block_requests
+EXPORT_SYMBOL vmlinux 0xf0b36e81 sget
+EXPORT_SYMBOL vmlinux 0xf0e13888 journal_extend
+EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf
+EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail
+EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xf10de535 ioread8
+EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit
+EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32
+EXPORT_SYMBOL vmlinux 0xf127d9c9 simple_write_end
+EXPORT_SYMBOL vmlinux 0xf13be440 filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0xf13f1d37 jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0xf14da9d5 input_register_device
+EXPORT_SYMBOL vmlinux 0xf164ebd0 unregister_8022_client
+EXPORT_SYMBOL vmlinux 0xf16cb54b ps2_handle_response
+EXPORT_SYMBOL vmlinux 0xf16eaa14 nf_log_unregister
+EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem
+EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1cf1917 blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0xf1d1e8ed jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0xf1d9121b kobject_set_name
+EXPORT_SYMBOL vmlinux 0xf1da7c54 register_md_personality
+EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64
+EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun
+EXPORT_SYMBOL vmlinux 0xf1f45302 scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0xf20b447a dquot_scan_active
+EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq
+EXPORT_SYMBOL vmlinux 0xf20e86e8 skb_set_dev
+EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer
+EXPORT_SYMBOL vmlinux 0xf241354f dm_exception_store_type_register
+EXPORT_SYMBOL vmlinux 0xf24b111e mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0xf2564db3 journal_force_commit
+EXPORT_SYMBOL vmlinux 0xf25b43eb bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0xf273ce26 padata_do_parallel
+EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2b15900 blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0xf2b22597 elv_queue_empty
+EXPORT_SYMBOL vmlinux 0xf2e054b4 scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name
+EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform
+EXPORT_SYMBOL vmlinux 0xf3270353 mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name
+EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq
+EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user
+EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf341dc9e __blockdev_direct_IO_newtrunc
+EXPORT_SYMBOL vmlinux 0xf342cff2 tcp_child_process
+EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf3614112 sg_miter_stop
+EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg
+EXPORT_SYMBOL vmlinux 0xf3b42364 phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3ece765 scsi_device_put
+EXPORT_SYMBOL vmlinux 0xf41a628a dcache_readdir
+EXPORT_SYMBOL vmlinux 0xf42fab12 inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0xf4386804 md_wait_for_blocked_rdev
+EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf44b4b46 submit_bio
+EXPORT_SYMBOL vmlinux 0xf483809a journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus
+EXPORT_SYMBOL vmlinux 0xf48df59c vfs_readv
+EXPORT_SYMBOL vmlinux 0xf492e427 nla_reserve
+EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask
+EXPORT_SYMBOL vmlinux 0xf49b34fb audit_log_start
+EXPORT_SYMBOL vmlinux 0xf4a0a621 dev_uc_flush
+EXPORT_SYMBOL vmlinux 0xf4a550e9 lock_sock_fast
+EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit
+EXPORT_SYMBOL vmlinux 0xf4a7f96c sock_map_fd
+EXPORT_SYMBOL vmlinux 0xf4a94266 dm_put_device
+EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced
+EXPORT_SYMBOL vmlinux 0xf4eb0bec inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf4f7a725 simple_unlink
+EXPORT_SYMBOL vmlinux 0xf4ff754a ida_init
+EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources
+EXPORT_SYMBOL vmlinux 0xf5142158 ida_pre_get
+EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xf52585a5 nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n
+EXPORT_SYMBOL vmlinux 0xf546cf62 deactivate_super
+EXPORT_SYMBOL vmlinux 0xf58474ab check_disk_change
+EXPORT_SYMBOL vmlinux 0xf59bf07e xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0xf5b614f4 simple_lookup
+EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xf5e0c4e7 d_alloc_root
+EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock
+EXPORT_SYMBOL vmlinux 0xf6211389 vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0xf63624bd simple_fill_super
+EXPORT_SYMBOL vmlinux 0xf67f7cfd pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0xf69a5b1b eth_header_cache
+EXPORT_SYMBOL vmlinux 0xf69dc99e textsearch_prepare
+EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table
+EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf70f4e92 thermal_zone_device_update
+EXPORT_SYMBOL vmlinux 0xf721ee02 netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0xf752b56d ip_fragment
+EXPORT_SYMBOL vmlinux 0xf7584a9c find_font
+EXPORT_SYMBOL vmlinux 0xf75ffb3d d_rehash
+EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0xf7635c44 get_fs_type
+EXPORT_SYMBOL vmlinux 0xf7743617 input_grab_device
+EXPORT_SYMBOL vmlinux 0xf7816b25 kmalloc_caches
+EXPORT_SYMBOL vmlinux 0xf7892261 unregister_filesystem
+EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf794bc72 input_free_device
+EXPORT_SYMBOL vmlinux 0xf79ad71f bio_integrity_free
+EXPORT_SYMBOL vmlinux 0xf7a896c6 set_disk_ro
+EXPORT_SYMBOL vmlinux 0xf7b8e2a2 __bforget
+EXPORT_SYMBOL vmlinux 0xf7e38832 mca_device_set_name
+EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set
+EXPORT_SYMBOL vmlinux 0xf8079352 bio_kmalloc
+EXPORT_SYMBOL vmlinux 0xf80f7339 blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf81afcb6 tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf82d35a6 mark_info_dirty
+EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects
+EXPORT_SYMBOL vmlinux 0xf84042f9 mmc_align_data_size
+EXPORT_SYMBOL vmlinux 0xf8686426 journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header
+EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle
+EXPORT_SYMBOL vmlinux 0xf891d7fe vfs_unlink
+EXPORT_SYMBOL vmlinux 0xf893ffcb do_munmap
+EXPORT_SYMBOL vmlinux 0xf8a3e6e1 cad_pid
+EXPORT_SYMBOL vmlinux 0xf8bd805b generic_make_request
+EXPORT_SYMBOL vmlinux 0xf8f43242 dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xf91080eb xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0xf9266f82 __dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xf92f16dc grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu
+EXPORT_SYMBOL vmlinux 0xf9658be2 __splice_from_pipe
+EXPORT_SYMBOL vmlinux 0xf97d76ea scsi_host_get
+EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep
+EXPORT_SYMBOL vmlinux 0xf9b74cb3 fsync_bdev
+EXPORT_SYMBOL vmlinux 0xf9bc7737 inode_permission
+EXPORT_SYMBOL vmlinux 0xf9d19e66 xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0xf9d73adc set_pages_x
+EXPORT_SYMBOL vmlinux 0xf9e8e1d1 fb_set_suspend
+EXPORT_SYMBOL vmlinux 0xf9fd5d10 padata_stop
+EXPORT_SYMBOL vmlinux 0xfa2f7957 pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0xfa5bd6d1 d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xfa6f14a8 kmap_atomic_prot
+EXPORT_SYMBOL vmlinux 0xfa89d352 generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0xfac445cb scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0xfac7d64a ppp_dev_name
+EXPORT_SYMBOL vmlinux 0xfaccb352 textsearch_unregister
+EXPORT_SYMBOL vmlinux 0xfae1a8b0 tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32
+EXPORT_SYMBOL vmlinux 0xfafd851f add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent
+EXPORT_SYMBOL vmlinux 0xfb070f07 tcp_check_req
+EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs
+EXPORT_SYMBOL vmlinux 0xfb0f115b padata_free
+EXPORT_SYMBOL vmlinux 0xfb1becd0 dm_dirty_log_destroy
+EXPORT_SYMBOL vmlinux 0xfb2fc23f ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb6df3c8 uart_register_driver
+EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace
+EXPORT_SYMBOL vmlinux 0xfb80e242 generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0xfbac813d __wait_on_buffer
+EXPORT_SYMBOL vmlinux 0xfbbfa50c qdisc_destroy
+EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xfbd6ab7d tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0xfbfe1c99 invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc06d333 generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0xfc13cc53 cfb_imageblit
+EXPORT_SYMBOL vmlinux 0xfc1d70c8 nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0xfc2590be dev_mc_del
+EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc4715b7 md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc
+EXPORT_SYMBOL vmlinux 0xfc661492 dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0xfc6ea794 i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcad050a ll_rw_block
+EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states
+EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq
+EXPORT_SYMBOL vmlinux 0xfcedbf8f skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfd1311c3 kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception
+EXPORT_SYMBOL vmlinux 0xfd9b9cc6 ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be
+EXPORT_SYMBOL vmlinux 0xfde58f4d pci_enable_msix
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfdfe8907 pnp_get_resource
+EXPORT_SYMBOL vmlinux 0xfdffaf3f bdevname
+EXPORT_SYMBOL vmlinux 0xfe2e3a1c blk_stop_queue
+EXPORT_SYMBOL vmlinux 0xfe33e45f file_permission
+EXPORT_SYMBOL vmlinux 0xfe4244af llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0xfe4bb688 make_EII_client
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz
+EXPORT_SYMBOL vmlinux 0xfe5d83e1 ps2_command
+EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfe7e2296 fput
+EXPORT_SYMBOL vmlinux 0xfea53b9c thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL vmlinux 0xfea7faf5 pci_disable_msi
+EXPORT_SYMBOL vmlinux 0xfeab430c genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin
+EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock
+EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfee3280c tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start
+EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu
+EXPORT_SYMBOL vmlinux 0xff4c3552 skb_store_bits
+EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff6a1241 xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource
+EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int
+EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffa22e85 fsnotify_find_mark_entry
+EXPORT_SYMBOL vmlinux 0xffa63b60 ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0xffacfc61 phy_find_first
+EXPORT_SYMBOL vmlinux 0xffae2ff0 bio_phys_segments
+EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function
+EXPORT_SYMBOL vmlinux 0xffdf62bb vfs_read
+EXPORT_SYMBOL vmlinux 0xfff2b5d2 kmap_high
+EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0x7060bf0a crypto_aes_encrypt_x86
+EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0xe409b491 crypto_aes_decrypt_x86
+EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x022e40f0 __tracepoint_kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x08d9ca90 kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x15386da9 kvm_put_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x18827ce2 kvm_set_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x196133ea kvm_get_guest_memory_type
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e13dba2 kvm_lmsw
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x240cd5fb kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x276babd9 kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27c43c24 kvm_set_cr3
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x287d6756 kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c0fd6dd kvm_task_switch
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c60c572 kvm_set_cr0
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3144932c kvm_set_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x326ae3fe kvm_queue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x361199ba kvm_set_cr4
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36e58177 gfn_to_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x392d729b kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3a791be5 kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3faa563e kvm_read_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406b1f7c kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x412ac24c kvm_clear_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x412e2d19 kvm_after_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x44d5c5dd is_error_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x44df6e05 kvm_get_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4e45ec7a kvm_set_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4f3f9a30 kvm_write_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5061876d kvm_get_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53292db5 kvm_get_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53d21e01 kvm_x86_ops
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x599086dd kvm_handle_fault_on_reboot
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5b0f4859 kvm_set_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5cac1195 kvm_release_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5ee7dfeb kvm_read_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f05dcd1 load_pdptrs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f91325f kvm_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x60b2a311 kvm_set_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6bb8cc22 kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6dea2691 kvm_vcpu_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x703003db kvm_get_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7d28cd52 kvm_get_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7d7c5e70 __kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7dd58a0a kvm_requeue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7fae32c4 gfn_to_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x825d59c8 kvm_get_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x852fb3dd kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x88e38669 kvm_require_cpl
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ef85cbf kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8fee6428 kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x90da9ed4 kvm_fast_pio_out
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92193090 kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92749bf5 kvm_vcpu_cache
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x96803c24 gfn_to_memslot_unaliased
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97c13a33 kvm_before_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9850d262 emulator_write_emulated
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99905e08 __tracepoint_kvm_inj_virq
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa2470c58 kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa4c8c77f kvm_set_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa9ce0238 emulate_instruction
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xacc1576d kvm_mmu_load
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb2d88fe7 kvm_inject_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba900c26 kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd94103b kvm_mmu_set_base_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd230e799 fx_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd546d220 kvm_release_page_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd8761913 gfn_to_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xda7b155f kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe02fcb71 kvm_clear_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe24af5df kvm_is_linear_rip
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xea700769 kvm_emulate_halt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeea07198 kvm_queue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf190bf48 kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf2b4a4f5 kvm_report_emulation_failure
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfe87e22a kvm_mmu_get_spte_hierarchy
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfe882204 kvm_resched
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0xe3fd4fc4 crypto_aes_set_key
+EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xd95274d8 async_memcpy
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x87060abf async_syndrome_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xd93fa1b2 async_gen_syndrome
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x7d31a347 async_raid6_2data_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xc9fcef32 async_raid6_datap_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x0e35bb38 async_trigger_callback
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x5f66df3d async_tx_submit
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x8b4535c9 async_tx_quiesce
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9702b15a __async_tx_find_channel
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x14c4dc02 async_xor_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x4ba8b97e async_xor
+EXPORT_SYMBOL_GPL crypto/cryptd 0x10af5b63 cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x182c6359 cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x18e891f6 cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x413d1cf8 cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x7139a081 cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb49828e9 cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xe0ee4ec5 cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey
+EXPORT_SYMBOL_GPL crypto/twofish_common 0xa36cd13f twofish_setkey
+EXPORT_SYMBOL_GPL drivers/acpi/hed 0xa4ca0d4e unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL drivers/acpi/hed 0xaa3f13f7 register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0c7da6d8 ahci_ops
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x15b3aa2f ahci_start_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x26f3efe1 ahci_init_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x48bd239d ahci_set_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5fb5593a ahci_kick_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x70a12058 ahci_stop_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8b7f0d57 ahci_sht
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8e7406f2 ahci_check_ready
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x97fdca15 ahci_reset_em
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa222fde5 ahci_print_info
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe2a24cc4 ahci_reset_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe71d816a ahci_do_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf65faadb ahci_save_initial_config
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x26cb1764 btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x357eb824 btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4ce8d82d btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9469d679 btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9b0585cb btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9df044be btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xaed01a4d btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfe64fd33 btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x216cd686 agp_add_bridge
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x57cee089 agp_remove_bridge
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved
+EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0x8bee9978 scx200_gpio_ops
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x03c21e3c tpm_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0e46857a tpm_register_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x26737e0b tpm_pm_suspend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x31e41cd9 tpm_show_enabled
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3a649672 tpm_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4592b174 tpm_store_cancel
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x46447157 tpm_dev_vendor_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4d27cfa2 tpm_open
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x54c7e282 tpm_show_owned
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x612fcea7 tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6df2d5ae tpm_show_active
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x78d8d400 tpm_write
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x870bb1f1 tpm_show_caps_1_2
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8cec0d1a tpm_gen_interrupt
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa7e19ec5 tpm_show_pubek
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa9f496b5 tpm_remove_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaa7cf610 tpm_continue_selftest
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaee21179 tpm_pm_resume
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaff1c711 tpm_dev_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc4ccd255 tpm_show_caps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xda2838ef tpm_show_temp_deactivated
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xec48906e tpm_show_pcrs
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xff6e5adc tpm_get_timeouts
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x3b89f6a2 tpm_bios_log_teardown
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x49b356bf tpm_bios_log_setup
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x2a457a28 free_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x578de8c4 dca3_get_tag
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x9a99e234 unregister_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xabdc6d21 dca_add_requester
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xc6490ed4 alloc_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xdf0c07f2 dca_remove_requester
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xe656eaf4 register_dca_provider
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x03fef056 edac_device_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x16fb3649 edac_mc_handle_ce_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1e1d7acb edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x32225b15 edac_mc_alloc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x34691f54 edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3f77e2df edac_pci_handle_pe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x46128eb2 edac_mc_free
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4b97515a edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5e31a96a edac_mc_add_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x85dd7bcf edac_mc_del_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x86bf4d81 edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x949a6ebd edac_device_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9b5bd9a1 edac_mc_handle_ue_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa70077c9 edac_device_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb4ee4b18 edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb8d214ca edac_pci_reset_delay_period
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbccce6fa edac_pci_handle_npe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc8329f5e edac_pci_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe54186db edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe579376b edac_mc_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe638eb99 edac_device_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeb0ba212 edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xee017196 edac_mc_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeea8adcb edac_pci_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1823885a amd_register_ecc_decoder
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x955c1f76 amd_decode_nb_mce
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2e765d2 amd_unregister_ecc_decoder
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xd0f094a0 ext_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x13c7f82c __max730x_remove
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xff964d9a __max730x_probe
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x6fdb0b25 drm_class_device_register
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x81e93224 drm_class_device_unregister
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x04107340 hid_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x129517ee hid_register_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x139df26c hid_check_keys_pressed
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x1d730c53 hid_add_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x225e7283 hid_set_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x28cbc4f0 hid_allocate_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x308dac23 hidinput_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x30dba708 hidinput_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x4f54e309 hid_debug_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x4fc996be __hid_register_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x5db5f544 hid_dump_input
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x631b21d8 hid_output_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x66d70c0c hid_destroy_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x6923b8b2 hid_unregister_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x6a419c9f hidraw_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x702f5928 hid_report_raw_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x79576b71 hid_input_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x7958416a hid_resolv_usage
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x8b953612 hidraw_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xa0b66766 hidraw_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xa7b36d10 hidinput_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xb72054e8 hid_dump_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xdd0634ae hidinput_find_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe201af4d hid_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xea382a67 hid_dump_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xeaa7b8e5 hid_parse_report
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x79a40fdc roccat_connect
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x8aaa3c7a usbhid_set_leds
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x96dbc3f4 usbhid_submit_report
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb18ab56c usbhid_wait_io
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xfc788d76 hiddev_hid_event
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x78ae475c lis3lv02d_init_device
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xa22c9700 lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xb0befec4 lis3lv02d_poweron
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe4c84b51 lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe67390c4 lis3_dev
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0xe6ed38c2 nforce2_smbus
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xb85d05d1 i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xc5451ab9 i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x4f960cd1 hpsb_config_rom_ip1394_remove
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x57490909 hpsb_config_rom_ip1394_add
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm
+EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x8a7eaf22 input_ff_create_memless
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x11cb583f wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1f73844a wm97xx_config_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4a3b86a3 wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4a61338d wm9713_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7d5984fe wm97xx_reg_read
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x86cb3313 wm9712_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9b752e49 wm9705_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xab557d13 wm97xx_reg_write
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb555e97d wm97xx_set_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xcfed4e1b wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe4c20dd1 wm97xx_get_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe581c6a5 wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0b191364 gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0f723554 gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x11920942 gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2c7d55ad gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x31baa630 gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x44b5a1d5 gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x46a57156 gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6af52591 gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6ddee712 gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa5fe3e85 gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa78f87c0 gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc24779fc gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xda376f44 gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe9a363f9 gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xea2060f7 gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xea8f1802 gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf7d072f4 gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf7e11efc gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x0c12cb46 led_classdev_suspend
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x127b1bc9 led_classdev_unregister
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0xb177e837 led_classdev_resume
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0xcb447a83 led_classdev_register
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x077ac831 ir_input_nokey
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x13c174ef ir_input_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xbb062f10 ir_input_init
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x09e9cb95 __ir_input_register
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1890a257 ir_input_unregister
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1a5769cf ir_repeat
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x302536a6 get_rc_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x37229e3b ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x3a67d6a9 ir_g_keycode_from_table
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x7e631a45 ir_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8d72aa04 ir_raw_event_store
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8fd647fb ir_register_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x99612455 ir_unregister_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xebe3e70f ir_raw_event_handle
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x0f1c5d3f saa7146_devices_lock
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x106ee225 saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1b7c76d2 saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4354a342 saa7146_register_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x633dbfad saa7146_setgpio
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6ce87db0 saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6d5afe75 saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8ec3d215 saa7146_pgtable_free
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x93816d97 saa7146_unregister_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb8a53706 saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd88cb596 saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x001cb8ef saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x46b915d3 saa7146_register_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x5ce2268d saa7146_start_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x632d0f36 saa7146_vv_release
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7a5a14fb saa7146_vv_init
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xbc91eb0e saa7146_stop_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xfd56f519 saa7146_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xa72a395b microtune_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xed307c50 mxl5007t_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x37074253 tda18271_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xad71be5b tda827x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x3287af02 tda829x_probe
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xd6eb3569 tda829x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x242440e2 tda9887_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x5ffde285 tea5761_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xe7fc77e8 tea5761_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x02a17341 tea5767_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xfbf09681 tea5767_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xa4e4b0db simple_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x056e622c mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x08f7eef0 mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x14fe5471 mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x199e6b65 ir_mantis
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x31baf75b mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x43ed6b45 mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4758bbaf mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7e60ffdf gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x82ec9c9d mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x92d9ae13 mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x966c7ef9 mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x98a2f501 mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xace76dcc mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb439de4b mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc012e891 mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdc15dc08 mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe43be2e7 mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xec8f4e0b mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x02dca5f0 sms_board_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0386ee81 smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0717e5d1 smscore_get_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x18ceef4f sms_board_event
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1cad92ff smscore_register_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1cf9c2e1 smscore_set_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x23324c8f smscore_putbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x41e4a02a smscore_get_device_mode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4adacbab smscore_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4bae5039 smscore_onresponse
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x624ae919 smscore_start_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x68ee72d4 sms_board_setup
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7f0c898f sms_board_led_feedback
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa1f518f4 smscore_unregister_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xae61fb0b smscore_getbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb5f7978c smsclient_sendrequest
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd5876c69 smscore_register_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf502aca9 sms_board_lna_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfbbd21ef smscore_register_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x61e438d0 ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7529803b ttpci_budget_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x9e10bddb ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x9f8b1973 ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc5ad0d16 ttpci_budget_debiread
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc5ff7e50 ttpci_budget_deinit
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xe9be5624 ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x106f49fc cx231xx_dev_init
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x117b951f cx231xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3009bcf3 cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4105b060 cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x411619f1 cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x49033cca cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x68542ddd cx231xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa5ccd822 cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc6fe3595 cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd30c749f cx231xx_capture_start
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xff614f7f cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0x70cdecd3 cx88_setup_xc3028
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x69217b01 em28xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x75182b49 em28xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x9d4a9b06 em28xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xac65aae1 em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xbd8ed9a0 em28xx_isoc_dvb_max_packetsize
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc39a87f5 em28xx_audio_setup
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x2b887ba9 saa7134_queryctrl
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x41b03859 saa7134_g_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x806ed4a8 saa7134_ts_qops
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x9d90acac saa7134_s_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xe37717de saa7134_s_std_internal
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x4bc7ab30 v4l2_i2c_new_subdev_cfg
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x7105c3c7 v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x876e0e1d v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xadfc900c v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xc1b5617c v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xcb452435 v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x6ddc98fe v4l2_int_ioctl_1
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x7e3b2d88 v4l2_int_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xbd43279c v4l2_int_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xc17974e4 v4l2_int_ioctl_0
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x12ad0e54 v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x14179760 v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1a0d474d v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x28071ffc v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3b0a076d v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x5ccd5e58 v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x62a60141 v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x66901593 v4l2_m2m_poll
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x82348205 v4l2_m2m_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8c241737 v4l2_m2m_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9f4343ab v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa56fc6dd v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb1a68796 v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb28ac4be v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x02dd6861 videobuf_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0352c5f3 videobuf_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x04c34850 videobuf_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x06b332bd videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x161cb6dc videobuf_read_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1df6cc8a videobuf_next_field
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2933b70c videobuf_waiton
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x337d162c videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x39336d75 videobuf_read_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3ec1a531 videobuf_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x41dfad14 videobuf_queue_core_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4346b3f0 videobuf_iolock
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x46113be7 videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x57dc1c60 videobuf_cgmbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x58314f8e videobuf_read_one
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x678cd34f videobuf_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x689da6c8 videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6c653dbc videobuf_mmap_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8b98d2a0 videobuf_queue_cancel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9c1621fa videobuf_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa1cc6e29 videobuf_poll_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaaf58220 videobuf_read_start
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc58e1e55 __videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe801f3f4 videobuf_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xec58e2c0 videobuf_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x1944e985 videobuf_queue_dma_contig_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x3383e3e3 videobuf_to_dma_contig
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xb4194a8f videobuf_dma_contig_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x007843a0 videobuf_dma_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x79ac3887 videobuf_sg_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8110332b videobuf_to_dma
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8f42b6b1 videobuf_dma_init_user
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xaa0d0aef videobuf_dma_init_overlay
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb4398ecd videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xbe3f4328 videobuf_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc52cd55c videobuf_sg_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd0680df3 videobuf_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe5bba91e videobuf_dma_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe85e5b7a videobuf_dma_init_kernel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x7b5f88e0 videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x8e949b5b videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xb2256a85 videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0d9a9157 v4l2_event_queue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x11640fc6 v4l2_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1f076f7e v4l2_event_subscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x22e390a1 v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x34ba0e5d v4l2_fh_exit
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3d9cf567 v4l2_event_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x43b7d9c4 v4l2_device_disconnect
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5dac54be v4l2_event_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6b71fb99 v4l2_device_set_name
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6c0e14e7 v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa1b9e826 v4l2_fh_del
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xabfa0911 v4l2_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xaf742f07 v4l2_event_pending
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbb7747f3 v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc50d9402 v4l2_fh_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcfd52dd4 v4l2_fh_add
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe5f73afa v4l2_event_dequeue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xed20a67f v4l2_event_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1be8aabb i2o_dma_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x2277e46e i2o_dma_realloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x2534d02a i2o_dma_map_single
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3648426c i2o_pool_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x87ee2d10 i2o_pool_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x907f334a i2o_dma_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb36f0d1c i2o_sg_tablesize
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf6d736d0 i2o_dma_map_sg
+EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x5bffd974 mc13783_adc_do_conversion
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x094de975 pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1979ae92 pcf50633_irq_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3963522f pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x45877118 pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6490da83 pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x65524837 pcf50633_read_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x71aa7944 pcf50633_register_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x81357e0a pcf50633_write_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8caa157f pcf50633_free_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa66ea3e5 pcf50633_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd9340917 pcf50633_reg_write
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x0ce49d38 pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x41db43a4 pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x30e9c6bd pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x6185fd01 pcf50633_gpio_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x91a15630 pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xcef15a90 pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xd51157da pcf50633_gpio_get
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x457422df sm501_modify_reg
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6cb6ca18 sm501_set_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc5ed5294 sm501_find_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xcb4d62e7 sm501_misc_control
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd869bd02 sm501_unit_power
+EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x686005bf ucb1400_adc_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x6bf99bbb wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x9daddccf wm8400_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xe912891a wm8400_set_bits
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xf58a03be wm8400_block_read
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x1a626a44 cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x70cdd40a cb710_set_irq_handler
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x91a85e1f cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xef893459 cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x52f7fb54 enclosure_component_register
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x5505c944 enclosure_find
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x69809eea enclosure_remove_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x89e5259c enclosure_unregister
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xe0b26aab enclosure_add_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xe154c183 enclosure_for_each_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfe3d8ef9 enclosure_register
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x18cfaf51 sdhci_remove_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5c922729 sdhci_free_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9af22bd0 sdhci_resume_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd095c92a sdhci_suspend_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf26f5eb7 sdhci_add_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf710b25c sdhci_alloc_host
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x8effcb8c cfi_cmdset_0003
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xa7e5302f cfi_cmdset_0001
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xf195237a cfi_cmdset_0200
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x25ffc23b cfi_cmdset_0006
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x77ca357d cfi_cmdset_0002
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xdaf8f650 cfi_cmdset_0701
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x11262677 cfi_cmdset_0020
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x4a3e6847 cfi_qry_present
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x94fe5a44 cfi_qry_mode_off
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xb158f999 cfi_qry_mode_on
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xba4380c0 DoC2k_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x55eefe2a DoCMil_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xc0d1cfe9 DoCMilPlus_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0226223b __get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x03f34b49 mtd_erase_callback
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0b2291c3 put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x12bffecd parse_mtd_partitions
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1a087af2 unregister_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x241c8db4 register_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x32aad57c get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x63dd5835 add_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x81ed4f18 deregister_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x84630ce0 del_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8c645772 __put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x919d2538 __mtd_next_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9743da73 get_sb_mtd
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa311ddbf default_mtd_writev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaec03ddc kill_mtd_super
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd79a3884 mtd_table_mutex
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf74b461c get_mtd_device_nm
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfbd341cb register_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x036af236 deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x5c26ef61 add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xb9601fe6 del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd36d7425 register_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x4a288c95 nand_lock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x4fcc874f nand_wait_ready
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x656a6dd6 nand_release
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xbd8706fd nand_scan_ident
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xdef96db7 nand_scan_tail
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xe118effb nand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xec53b24f nand_unlock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x415d71ff sm_register_device
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x067478c6 onenand_release
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xd9883449 onenand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x17393213 ubi_do_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x231d8768 ubi_open_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3117528a ubi_close_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4d9a93f6 ubi_leb_change
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4e3793bd ubi_leb_erase
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x60abc588 ubi_leb_map
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x62adee09 ubi_leb_read
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x67d10acc ubi_get_volume_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x802d50fd ubi_open_volume_nm
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x896de240 ubi_open_volume_path
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb6707aa0 ubi_is_mapped
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc062c7bc ubi_leb_unmap
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xebfc5391 ubi_leb_write
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x61662c82 can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x681b8fbb free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x81aae100 alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x82761a95 alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x82812bb2 register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8ac0f7e5 can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8d884681 alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8fd0eaf0 can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x92d5650a unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa650cf88 close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcd21c479 can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfedefab0 open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5316a52f unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x684ec444 free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa1442273 alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xfa2d7854 register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x59e849bb macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x8161d4b0 macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x90dbb066 macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xa5109f36 macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0035b79f mlx4_cq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x01fd5113 mlx4_fmr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0b268caa mlx4_srq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0e1b748a mlx4_qp_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x11452301 mlx4_srq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1a8867ff mlx4_buf_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1bb62fc8 mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x24f5ef23 mlx4_srq_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x264885d4 mlx4_mr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2b60edae mlx4_cq_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2b80455d mlx4_qp_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3571ce7b mlx4_multicast_attach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x35d9896c mlx4_register_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x419381af mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x492f2bb6 mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4ea4437f mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x59cda081 mlx4_cq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6647a8da mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6a8ab7b8 mlx4_register_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6b278c47 mlx4_mtt_init
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7068d0f8 mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x72fb6e6b mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x73f3c978 mlx4_uar_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x76788d99 mlx4_mtt_addr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7a22e7d8 mlx4_qp_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7cf4080b mlx4_qp_remove
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7e4bc5fb mlx4_pd_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7ee22bbe mlx4_fmr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8bfb3cbd mlx4_pd_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8fe0e691 mlx4_buf_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x93a13bc8 mlx4_mr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa4a06337 mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa6be576b __mlx4_cmd
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb46a0047 mlx4_unregister_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb4e54120 mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb4ffd84b mlx4_srq_arm
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc2188e68 mlx4_db_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc2527dc3 mlx4_cq_resize
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc47614ec mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc9ff9ee0 mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xce0cd175 mlx4_qp_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd314b962 mlx4_register_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd7be59f9 mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd7d6c135 mlx4_qp_release_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd86276d1 mlx4_multicast_detach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdafd62f1 mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdc46b222 mlx4_uar_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdd4e60f6 mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdf565970 mlx4_db_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe2f94004 mlx4_unregister_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe493ec9b mlx4_mr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe693cb77 mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe9221d39 mlx4_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x173ac0e3 usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xee1021bf usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x2dd5c5c9 rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7e95fed1 rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9b98dd2f rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xdab2580f generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xee5edcc0 rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf6e127e9 rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0cd54701 usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1cd4c61d usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x269dd630 usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x50e3af49 usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x71c4b668 usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7f7315fb usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fdc05cb usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x80518b71 usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x835f6551 usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8852c4cb usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8c5023c6 usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa2297cee usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa4c42959 usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaa2daced usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaeecb6fe usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb342d738 usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb354bd3e usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbd8e7df0 usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc4506d41 usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd6055847 usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd75bf539 usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe51c37a2 usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf72e1585 usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfcd4eeaf usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1a60e818 i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2770db77 i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4b7b7cc1 i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5e9fbce4 i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6490f079 i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x650a9777 i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6f27fe2a i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7014bbca i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x779f94cb i2400m_cmd_get_state
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x836fc7f7 i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x89aebf32 i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8c7f743d i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xae90e75f i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd87f0707 i2400m_set_init_config
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd88ec99f i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdb3f5f10 i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdb522b0c i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf1a8926b i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xacb01b4d libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x0121ee28 iwl_dealloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xa5d7aa68 iwl_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xafb8caa2 iwl_alloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3b87a89f lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x711339a3 lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x75a5d7b4 lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7cb8aee9 lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x97f3be82 lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa33e05ee lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa9387b8d lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb1aa0d14 lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb5d48c34 __lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb63e58a5 lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd1edf00d lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe3fad5bb lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe45f93df lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe4a4c01e lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0c08b6a6 lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x17067e71 lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x61900bad lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x80dd7295 lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x8653c489 lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x90637985 lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9f1ed920 __lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb76db0fd lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x81841edd if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xa4a5f50b if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x053ffcd9 p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x17ff1318 p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x218747f1 p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3ff90d59 p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5568b4e1 p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x73280526 p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb9f87944 p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc7564a0d p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf348dfb7 p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x09a4c391 rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x10431ee7 rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x32e316e5 rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x43f9c96e rt2800_mac80211_ops
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4bcdf27e rt2800_init_bbp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4fb5aa00 rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x53921036 rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x618e9e22 rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x64007512 rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7d689077 rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9484a83e rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa77a2cd8 rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaaf5ae5f rt2800_init_registers
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb546fe91 rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbaa46690 rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc7cc160a rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd4f34573 rt2800_write_txwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd99b0664 rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd9f0ba09 rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe9047af2 rt2800_init_rfcsr
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xef2483c7 rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf398d598 rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf725cadd rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfae5768c rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x062e3f94 rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2139c5ea rt2x00queue_get_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3c33ad93 rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x53b87cd7 rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5b9d831f rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x76fd4907 rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8005112e rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8047a741 rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x82956fff rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x887be956 rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x893f3013 rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9020c820 rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x91ef80df rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x98d04746 rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9d84f701 rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa3f4a8e3 rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb857f49a rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc35af812 rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc9d5ee89 rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd744939c rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdf9a61bc rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe646c889 rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf8c2bb30 rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1a443dce rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2691ff88 rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x32bf2510 rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8b08888a rt2x00pci_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8bb6d329 rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa44b771e rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xca004f8a rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd7536a16 rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe8d5ab8c rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3d5342d2 rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x40ba81dc rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x56f80f07 rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7a7658e4 rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7b9036cc rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x88669def rt2x00usb_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9700ee23 rt2x00usb_kill_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9c3f78f3 rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9d1a2e66 rt2x00usb_vendor_request_large_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa4937323 rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd4389dd5 rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd6d9d6cd rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdcd3fe9e rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe4308d7e rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe6c51b8f rt2x00usb_kick_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfd555e2a rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xa7b0ea4a wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xacde0ebf wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xbcc904f9 wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x2d0145f5 wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x344421c3 wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x52fe607b wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x8ac6f20f wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xf6340f4a wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x1bff148d acpiphp_unregister_attention
+EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x5ea8d69a acpiphp_register_attention
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x58a58ae9 pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x59926d7d pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x8d9cf471 pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x0d5bc882 wm8350_register_regulator
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x56aa5c5d wm8350_register_led
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x56f875fc wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x6d2eb9fc wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7e678cb1 wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8bc15b67 wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x74ed5f50 wm8400_register_regulator
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0317048b fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x01da1cc7 iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0289f9db iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x02c80e88 iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x03316941 iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x04c685fd iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x07937a0b iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x126a43eb iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x14ca761c iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x15d1d9e3 iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16a6b597 iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16f7382f iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1b86959a iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2bb1dde5 iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2c606dd8 iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x397f471a iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x43ddbdda iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4aac51ea iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5266a98a iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a9c6be1 __iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5be9e662 iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5d919f9b iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e591263 iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7afbaf60 iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f8ead8d iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x81f9d65b iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x91babce4 iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x92abffc7 iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9346b2b7 iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a053f5b iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa036de7c iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc4e55cd8 iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc7707f17 __iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc85570bd iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd44e2ba0 iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd52229fe iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xde6a1272 iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe5271abb iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf01ba3dc iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf0cccb45 iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4c12b36 iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf9d10ff4 iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xffadfd18 iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x13727bcd iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2b96f8e8 iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x32023023 iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x416f9f3f iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x47b39a55 iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4d2d9a19 iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6afeac39 iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8c25c022 iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8e130597 iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x917df51a iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc778fc52 iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd0e8247d iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd3ce51d0 iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd612f949 iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdc3cfc67 iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xed121f8d iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00e286a0 sas_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2c88cc04 sas_bios_param
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2e85c77e sas_unregister_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x331751b8 sas_ssp_task_response
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x430fdf73 sas_eh_bus_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x50a029f8 sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x522729d9 sas_phy_enable
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5413e4e6 sas_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5a2c2dd6 sas_ioctl
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5f3c5583 sas_change_queue_type
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x695ce793 sas_domain_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x96fa524b __sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x989cf6e1 sas_request_addr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x99f2399e sas_register_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa035daf4 sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa075a848 sas_slave_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xac305529 sas_find_local_phy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xafcbd9ca sas_target_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb291d7a3 sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbec1f3e9 sas_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc3abb88e sas_domain_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc9343e96 sas_slave_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe04b9727 sas_phy_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xae101c94 srp_target_free
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb9e5f08d srp_iu_put
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc951b729 srp_iu_get
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf35d2bde srp_transfer_data
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfaa53635 srp_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfbb8d952 srp_cmd_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x0b9626c1 scsi_tgt_it_nexus_create
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1cd16b8c scsi_tgt_it_nexus_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4d9932a4 scsi_tgt_queue_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5890c193 scsi_tgt_tsk_mgmt_request
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x69f1066e scsi_host_get_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6bc73130 scsi_host_put_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7aa05b0a scsi_tgt_alloc_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9df48cc4 scsi_tgt_cmd_to_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xdc42af8b scsi_tgt_free_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0bf9dcd8 iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0c070dfb iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1802834c iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2e0964e2 iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36e20d57 iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3ddea0b3 iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4423d1b9 iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5740837e iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x60abaaa6 iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x694a0017 iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x69d9eb89 iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7297cd08 iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x76725b3c iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x93a32ee9 iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9d0535fb iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb6fafc19 iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc1141960 iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc770fee6 iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xde7274b1 iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe0de4b7d iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe2af895b iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xedae43e3 iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x4413bca2 sas_tlr_supported
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x682524e1 sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x99bda2c2 sas_disable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xcb722b9d sas_enable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3903edb1 srp_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x88e82a74 srp_rport_del
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8ad0e97a srp_remove_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8c7f4532 srp_rport_add
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc0f68688 srp_release_transport
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x09c6504b spi_bitbang_setup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x1a2faa37 spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x1a487bc2 spi_bitbang_start
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x47e308b2 spi_bitbang_stop
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xc331783b spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xfc5252cb spi_bitbang_transfer
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x08ac7a41 comedi_pci_auto_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x29444ec3 comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3448de21 comedi_get_device_file_info
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x632ecd5f comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xec443c13 comedi_usb_auto_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xb6b3fb58 das08_common_detach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xec52f544 das08_common_attach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x70fd415e labpc_common_attach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x7a4258f1 labpc_common_detach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x1035d1a1 ni_tio_arm
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x471dde0f ni_tio_insn_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x58c5907a ni_tio_init_counter
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x6336d089 ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x98e3341c ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd702681a ni_gpct_device_construct
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xe64a3ad9 ni_tio_winsn
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xe7c4b0a0 ni_tio_rinsn
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x0118e06a ni_tio_cancel
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x0147ee78 ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x33dd2d27 ni_tio_cmdtest
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x66dbe41a ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xae04d39d ni_tio_cmd
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xc6de8115 ni_tio_acknowledge_and_confirm
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x27efbf2a osd_WaitEventCreate
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5783d46c osd_WaitEventWait
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x746d1786 osd_PageAlloc
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x79298bac osd_WaitEventSet
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x83911c38 osd_PageFree
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8c5f0f3b osd_WaitEventWaitEx
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x61ba435d st_register
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x78ef4c1d tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x8d280721 tm6000_set_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xc5929769 tm6000_get_reg
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x242dc250 usbip_task_init
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x57018273 usbip_start_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5a419d60 usbip_event_add
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5e914c03 usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6426a775 usbip_dump_urb
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x689a3c73 dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7c16d4b1 usbip_stop_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x926739b6 usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x996fb838 usbip_stop_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb855b7d3 usbip_event_happened
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbc939ff2 sockfd_to_socket
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xc4b4f141 usbip_start_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd80ebee6 usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe04671c1 usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xfbd95886 usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x663120be uio_unregister_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x95f48af3 uio_event_notify
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xd1d0c3ff __uio_register_device
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xa07e25ab usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xf8d9e9f3 usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x302ada78 usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7b6d10fc usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x866d30e4 usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x89c46e5b usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb5d90e42 usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb9f7e763 usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xbd2a95e7 ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcdaf6a3a usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf44aba39 usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0d9fbd52 ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x185decb2 usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4418cf61 usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x48382e89 usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4d99fb8b ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5aa7e5b6 usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x68fa2cda usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6b9e4c94 usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x719c70c8 usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8411302b usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x92ffa6fc usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa21bac5e usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb5e12303 usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb826eda6 usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbdbbd297 usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc3dad3dd usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdebe81d7 usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe8f900bb usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xefff4ac9 usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0e7e0eb6 usb_stor_suspend
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x105868d0 usb_usual_ignore_device
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x10b38ac1 usb_stor_Bulk_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x17af2bf5 usb_stor_pre_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2cea880a usb_stor_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4035f50e usb_stor_probe2
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x432cf39d usb_stor_CB_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x437eed74 usb_stor_control_msg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x43a4c17c usb_stor_ctrl_transfer
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7a2817d7 usb_stor_bulk_transfer_sg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x818f5ec2 usb_stor_transparent_scsi_command
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8eeb1e31 usb_stor_access_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9ef28428 usb_stor_Bulk_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa12e2179 usb_stor_CB_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xac76228f fill_inquiry_response
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb2564fac usb_stor_set_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb9bea3a7 usb_stor_reset_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbfc14fb5 usb_stor_probe1
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc6a4d31c usb_stor_bulk_srb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcf2a8220 usb_stor_post_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd481c55d usb_stor_clear_halt
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xda92e50b usb_stor_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe5a8d2e7 usb_stor_bulk_transfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5ccf4d0b rpipe_ep_disable
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x72d5555d wa_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x782d24c4 wa_urb_enqueue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcc12aa28 __wa_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xd31531b9 wa_urb_dequeue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x02f1dd8b wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x221be88f wusbhc_b_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2fb4aad5 wusbhc_rh_suspend
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x32781067 wusbhc_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x34b7d31c wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x44b0d189 wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4e099402 wusbhc_b_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5107282d wusbhc_handle_dn
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x87ea254e wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8a2b83ad wusbhc_rh_resume
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x90a602d5 wusbhc_rh_control
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9bdb4341 wusbhc_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xad00ff00 __wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd3f330ea wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe719ad69 wusbhc_reset_all
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xef7133de wusbhc_chid_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x24d8dcf1 i1480_rceb_check
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x34916619 i1480_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xc4227ae2 i1480_fw_upload
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x0e5e2270 uwb_ack_policy_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x3bc0ccd4 uwb_pca_base_priority_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x4a2a3782 uwb_phy_rate_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x64c29339 uwb_pca_base_priority_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x7640b285 uwb_rts_cts_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x9c64da47 uwb_phy_rate_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xf6d44fdd uwb_ack_policy_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xf83611b3 uwb_rts_cts_show
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x14af8965 __umc_driver_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x202ee688 umc_match_pci_id
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x39d137e4 umc_controller_reset
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x89de1183 umc_bus_type
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xbe9e5e5b umc_driver_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xeeece25f umc_device_create
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xefdc52d2 umc_device_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xf355dadd umc_device_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0a05a859 uwb_notifs_deregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x18cbff12 uwb_rc_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1aa11fc1 uwb_rsv_modify
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x25dbe40c uwb_rc_post_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x27534d8a uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x28cf5f78 uwb_rc_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2d164974 uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2d76ccf1 uwb_pal_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x41b26bcb uwb_rsv_terminate
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x42c0983c uwb_est_find_size
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5823e385 uwb_rsv_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x64fca1a5 uwb_rc_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x66bc84cb uwb_pal_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6c17cf78 uwb_rsv_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x76f32e52 uwb_rc_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x80e7032d uwb_rsv_accept
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8ebf59f1 uwb_rc_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9e613dbb uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa543fd13 uwb_dev_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xac42f37c __uwb_rc_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb0e997a9 uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc15b4666 uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc2727203 uwb_rc_alloc
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc46eb69c uwb_rc_ie_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd28af8e8 uwb_dev_for_each
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd3d45b6c uwb_rc_neh_error
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd3eb8aae uwb_rc_vcmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd54002c6 uwb_notifs_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd92b41f4 uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdaaf2883 uwb_rc_put
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdcb365ab uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdeca0255 uwb_pal_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe9c708ab uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf2df6122 uwb_radio_stop
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf6480aaa uwb_rsv_establish
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfec377c5 uwb_radio_start
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfef98d59 uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL drivers/uwb/whci 0x464e4720 whci_wait_for
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x292ba343 wlp_dev_manufacturer_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x339589b2 wlp_dev_prim_OUI_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3b9ebc65 wlp_dev_serial_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4e683665 wlp_uuid_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x572fc865 wlp_dev_model_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5e8967ee wlp_uuid_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6d1daa24 wlp_dev_manufacturer_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7089a0f0 wlp_dev_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x75ced3f2 wlp_wss_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7b2f5481 wlp_dev_serial_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7e0af0f4 wlp_dev_model_nr_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x80e5e832 wlp_wss_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8677dc8a wlp_dev_model_nr_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x871ff321 wlp_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9ba81fa1 wlp_dev_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xad1a764f wlp_dev_prim_category_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb4afc55a wlp_dev_prim_subcat_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc24218fa wlp_dev_prim_OUI_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc5045d14 wlp_wss_activate_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc8f318a0 wlp_wss_activate_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcb2c107e wlp_dev_prim_category_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcb5b98bb wlp_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd3a1c780 wlp_prepare_tx_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd50b4295 wlp_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xda049f7a wlp_eda_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xda344ecc wlp_dev_prim_OUI_sub_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xdee3471c wlp_receive_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xecc7a48f wlp_dev_model_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf488105f wlp_eda_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf669236c wlp_neighborhood_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xfbd8b060 wlp_dev_prim_OUI_sub_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xff1b883f wlp_dev_prim_subcat_store
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x219fab4d ili9320_probe_spi
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x4b6368c2 ili9320_shutdown
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x856c9c06 ili9320_write_regs
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xad784a98 ili9320_write
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xb559b2f0 ili9320_resume
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xbf4bae7e ili9320_remove
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xecb71ab9 ili9320_suspend
+EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x4f52b3dc fb_ddc_read
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x7cfa1d9c fb_sys_write
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x84b78142 fb_sys_read
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x49b7b064 sis_malloc_new
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xc8d3c749 sis_free_new
+EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys
+EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xac6f27b0 viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x0e507450 w1_write_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x269bde22 w1_next_pullup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x2d94d0a2 w1_reset_bus
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x4134a81a w1_touch_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x589b1bf5 w1_read_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x6df7daf0 w1_write_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xda2b1a62 w1_read_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xef452a8d w1_reset_select_slave
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x481acbc6 dlm_posix_get
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x6563902a dlm_posix_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xad9dad0c dlm_posix_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x21ae2765 exportfs_encode_fh
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x9eef7b79 exportfs_decode_fh
+EXPORT_SYMBOL_GPL fs/fat/fat 0x0fe5a7b6 fat_fill_super
+EXPORT_SYMBOL_GPL fs/fat/fat 0x285ce807 fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL fs/fat/fat 0x2ee8de9f fat_scan
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3569e58c fat_sync_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0x38f131bf fat_setattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3f0d346d fat_remove_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x5a3dc216 fat_alloc_new_dir
+EXPORT_SYMBOL_GPL fs/fat/fat 0x5e06aa20 fat_attach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x8d0a4e16 fat_add_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x96126c88 fat_dir_empty
+EXPORT_SYMBOL_GPL fs/fat/fat 0x9a7d8f5c fat_time_unix2fat
+EXPORT_SYMBOL_GPL fs/fat/fat 0xb4b5cae1 fat_detach
+EXPORT_SYMBOL_GPL fs/fat/fat 0xbba69a6e fat_free_clusters
+EXPORT_SYMBOL_GPL fs/fat/fat 0xbc263a91 fat_search_long
+EXPORT_SYMBOL_GPL fs/fat/fat 0xd1c1f4c8 __fat_fs_error
+EXPORT_SYMBOL_GPL fs/fat/fat 0xeadd0ea5 fat_build_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xf396c052 fat_getattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0xf41c84b1 fat_flush_inodes
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x272d3c3c nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x34e2c150 nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6038a446 nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xad922a4a nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xaf597a49 nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x7a28d6d2 nfsacl_decode
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xf3c17182 nfsacl_encode
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0aec37eb o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x376a44e5 o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7e822195 o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8dd19eca o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xacfce063 o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xadb6e975 o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc451293a o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x061ac396 dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3ce53bcf dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5807f0a1 dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x81595b8d dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x94acbce1 dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbe9e504a dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x11525291 ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x135c480e ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xd60f5359 ocfs2_plock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs
+EXPORT_SYMBOL_GPL net/802/garp 0x0f8c21f8 garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0x182781b5 garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0x207ed4d1 garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0x3c8deea5 garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0x5acedb98 garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x6c957969 garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/stp 0x28b59d60 stp_proto_unregister
+EXPORT_SYMBOL_GPL net/802/stp 0x58b4a3a7 stp_proto_register
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xe223d065 ax25_register_pid
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x3aa6cca7 bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x08d93187 dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x15657f79 dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x19b08d5c dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1bf11d68 dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x34667c8c dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x35cf80e5 inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c88b74f dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3ccd8c55 dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3f0ffe61 dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4340ff53 dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x47e0c5a6 dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4e525499 dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5952262b dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x59f7c31d dccp_insert_option_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x63e7831a dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x683108af dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x756815b0 dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7b9f19ef dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7f129928 dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x92c4eb6d dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9fc3b29d dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa3d38988 dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa57a0242 dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xaed90b48 dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb2087b85 dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb3c86358 dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb41ac5c8 dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb424b878 dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb5b7c855 dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc1fd948c dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf4419387 dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf48af05f dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xfcc08883 dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x082b489b dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x32cb5d8e dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x34338e32 dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6537ce7e dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6ad371ff dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xde9a0383 dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x264b8c52 arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x8e61e2d0 ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x4611e088 nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x20ae6db4 nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4c37759c nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x5dd84733 nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7db0b3d5 nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8e3e35fe nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xabdaa31b nf_nat_proto_find_get
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbe7bb29d nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xcea34e0b nf_nat_proto_put
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x14804179 tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x172864f3 tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7507aeaa tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x766edc7c tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd9fa785a tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x578b20b4 ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0e9b3364 l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x13f2e2a2 l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x27142432 l2tp_tunnel_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x371c2e0b l2tp_udp_recv_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x463aa6c1 l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5289d40b l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5809c8ca l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x58a31f2b l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6a35b5aa l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7773be59 l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x79ab2d72 l2tp_tunnel_closeall
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7ac7909d l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9551ee44 l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xccd83d76 l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xee688a2d l2tp_xmit_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfa5f7ad8 l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xff2b30c6 l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x48bccea8 ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb8a21534 ieee80211_find_sta_by_hw
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc3ea4580 ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x03ef85d3 nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04f26e2e nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12c1c660 nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x162a7ab8 nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a1600ab nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ac9e0d2 nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1bc13483 __nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1bef33a7 nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1dae2376 nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e45fb04 nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f0502d6 nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x277c07e8 nf_expect_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b39fd26 nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2cc5a7ed __nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2df0e6c3 seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3044cee6 nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x307f129a __nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30882ca5 nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30f57a67 nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x36f0ace8 nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x38d698a4 nf_conntrack_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39ba025c nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d2afdbb nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f29aaa5 nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x50572469 nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x50a4a1d9 nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x527eefc6 nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x545a394b nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x552f9639 __nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x60488d44 nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x701911c4 nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x706c566a nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73892824 nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77a9c385 __nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e5dc534 nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7eb00654 nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x832cd25b nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85e4e3f7 print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9127841c nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x917bcee6 nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9753915e nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9b2a07dc nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa06967c8 __nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa461d87c __nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa91c655e nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab4922ca nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaba142c0 nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5c4c537 nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0b4649b nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc39e13ea nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc404186b nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc6c09ab0 __nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcd79bb14 nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcdc50acd nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd7d53a45 nf_ct_unlink_expect
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd90ab83d nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdc46f0b9 nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe06e4041 nf_conntrack_untracked
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe605a897 nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe7dcddde nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeedcdf11 nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x7d20f357 nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x150fff90 nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x06259476 set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0df2851f set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x120d1713 nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x164e8bc1 get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x41f3301b nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6221e9ca set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8310245e set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc6b7d363 nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xeacc8597 nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf4efedaa nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x267bf724 nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x003892ac nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x1b1b2862 nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xaeecdcee nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf2ab9b3c nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x73e663e9 nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x74dff9d8 nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1a8bcb24 nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2670f5b8 nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x299aa05b nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x45249d8b nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x46e9ce99 nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x50e1d4f9 ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5246f3fe nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6dc77868 ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb82f7ac3 ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc1a06f68 nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd18e0750 ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd67dcb07 ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf4d964df ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xbc568508 nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x262b6fb2 nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x5b87a307 nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3300fb88 nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x4166fcf1 nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x933ac77d nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x95447c2e nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd27b44fe nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf397654d nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x6e41739e nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0614bef9 xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x154556ad xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x356b0e4b xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6ca24aa2 xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7b8afe19 xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7ef6b92f xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9449d5df xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb62c5b33 xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xba31b691 xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc0c7e603 xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc7a84505 xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdc3c9186 xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf000190f xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x4ac7eda1 xt_rateest_lookup
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x6a518c7f xt_rateest_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq
+EXPORT_SYMBOL_GPL net/rds/rds 0x02d594d2 rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x06083d18 rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x093afa09 rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0x0d213a4f rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0x14107730 rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0x15dc2b74 rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0x15ee5104 rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x1a5ca8bc rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x34afe330 rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x3e3ddd7f rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x5ccc58e0 rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0x6b257a2d rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x74cfbc8c rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0x837595c8 rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0x8db0643e rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x903eac73 rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0x98e5d6e1 rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0xa55bc154 rds_inc_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0xba9bd1db rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0xe4a5d596 rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0xf47d76c7 rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats
+EXPORT_SYMBOL_GPL net/rds/rds 0xfb3ebd4b rds_trans_register
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x770d7212 rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x93d9e085 rxrpc_register_security
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x12dfc3c1 gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x19e9c05c gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2b500690 svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x39a04c89 gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3deb03cd gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6624c7d7 gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6e5a149e gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x72ec485e gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8e6e0b03 svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa43c6dc8 gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd4b23b64 gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02b36de5 auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x031e27b2 svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03afc10c xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x051b5d54 rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065fa83b xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06687e9d xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x066a92a1 auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a5fa5a6 svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e6d3c86 xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e8d6ac7 sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9bb104 svc_sock_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10c16dd5 rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x138daca8 svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x139ec5ca unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x140d974d cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16e4428b rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x172ae4f1 rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1978ead0 svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x198ad1a1 xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c5c21c2 rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d2d7132 rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d668c17 read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2126ae1c rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x223c76f6 xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x232b78d5 rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2352a8bf xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x278810bb xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28db7ec5 svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29911de7 __rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b727c3d rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2cf0c5f2 svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e77afaf xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f94e130 xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34d4eecd sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3714f81b put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3726faf4 xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x391453ec rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39e177d1 rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c8c0248 cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3eb24e5d xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41de876f svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43af449b rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x455c7950 svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x458689e4 svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45bba993 xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f0e867b rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x506800cf xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x549f44c5 cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x552a8f9b rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58e986b6 rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b989e25 rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c6fc9a5 rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5dd16fc6 sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f4a7031 auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61ff1438 write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6676971b svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6688df1f xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67297099 xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68006f64 svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a1e9ae2 xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b8b76c6 sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c02079f rpc_exit_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6cee4946 xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7358483e rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7433bd73 xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7536337d xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75ee40ed xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x760c6bf7 rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76c7ba66 rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77fc9f50 rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79514fe2 rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ac06fdb svc_sock_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7aec64e9 xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c5a7cb1 svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccb0c0e rpc_queue_empty
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8028c388 rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8138d3d7 sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a6acb93 rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e60902d rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ec99d14 rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90014ca3 xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90b25097 xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95aa0f26 xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9623817e svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97972404 auth_unix_add_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b17ad65 svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b661a91 svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ffa8174 svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa159808b xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa53e9eb8 xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa55c03b8 xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa63671e6 rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7e94ecb xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae6a3724 xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb115745e xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb21fc059 rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3a783d4 xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb430e684 rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4dc57cb svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb647b560 auth_unix_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbadddbe9 svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbba57594 rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc34cc3a rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdfaba39 rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe41f7a6 xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0433f4c svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2ceaa49 rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2de1a62 svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc719e47 svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccaab0ad rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1f2de60 svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd24f9abb xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3228a2d cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6127221 svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd94db769 svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc22a021 auth_unix_forget_old
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdcfa08c7 svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde3c1fde svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xded833d2 svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdef2159e svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf74d2b2 svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1a5ee20 rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1c6f2cc rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe23d163c rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3101b99 svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4f3b7b6 svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6ee37c9 rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9a57d46 svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb0b74b1 svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb17512e rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecccb95c rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf26653c9 csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4f59bea xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa8ae05b xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd838761 rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff40a312 rpc_mkpipe
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x0a3e7d17 wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x43fa4277 wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x449e76f6 wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x67e0eb27 wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x6e140c1a wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x8c813503 wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x92d377af wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xb99b30f7 wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xbe7491c4 wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xc4646653 wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xcd8e183a wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xe0fde672 wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf7acd367 wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x085be7f5 cfg80211_wext_siwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0a18acfd cfg80211_wext_siwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x16554281 cfg80211_wext_siwmlme
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x28e6b933 cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3df26418 cfg80211_wext_giwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4cb1d79a cfg80211_wext_siwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4cc8e9d5 cfg80211_wext_siwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4eb2d204 cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x52157d7c cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5fd9158c cfg80211_wireless_stats
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6e29495f cfg80211_wext_giwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6ea3e44d cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7a97a7a9 cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7b5b1f7f cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7cf95af4 cfg80211_wext_giwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8c07a14b cfg80211_wext_siwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8fc000f4 cfg80211_wext_giwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9c1f421b cfg80211_wext_siwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa1eacb26 cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa8006d54 cfg80211_wext_giwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb31790b4 cfg80211_wext_siwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbe75783a cfg80211_wext_siwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbefee291 cfg80211_wext_giwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd943ded6 cfg80211_wext_siwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdad0b277 cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdd069d03 cfg80211_wext_giwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe71c9ae7 cfg80211_wext_giwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe840fb15 cfg80211_wext_siwencodeext
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf5a7f39e cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf5e1c175 cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf8fb705f cfg80211_wext_siwgenie
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf95b9263 cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x09f21940 ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x31bf692d ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x5cfae120 ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x72c97368 ipcomp_input
+EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x42d7d67f snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x4a58586a snd_ak4113_build
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x5332dfd2 snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xba0efc12 snd_ak4113_create
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xe45201ce snd_ak4113_reinit
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf87fa254 snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00e5305d snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x019c6dff snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x036cb3f6 snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x077bddef snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ae63980 snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0b2bb6d8 snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c0ac557 snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13e49ed6 snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14e89e14 snd_hdmi_get_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x164b656d snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x18ff3fd4 snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x25e9db38 snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28c063b4 snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2a9a6d4e snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ada359d snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b49fd20 snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2fca6476 snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3951baed snd_hda_eld_proc_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x40b8015a snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x42959bd2 snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x433ed9b8 snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4386335e snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45d49bbc snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47d71cfa snd_hda_parse_pin_def_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4909be27 snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49732c37 snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4df70e7a snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x538ab173 snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58194a4c snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b6ef1e3 snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5bb7db48 snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5da2389d snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x624a8495 snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x64d2c445 snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6507f8c7 query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b8e0ea3 snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6c9bfffe snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e27db2c snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71610cd4 snd_hdmi_get_eld_size
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x772e3629 snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79849aa5 snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a260e5b snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a9bc666 snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b971072 snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c94a062 snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d4d01bc snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e2b5901 snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80444a97 snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x869c4c5a snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a03f68e snd_hdmi_show_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a7a943a snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b6bf01e snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b810d87 snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c10e390 snd_hda_eld_proc_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9045c300 snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x90a96dab snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94a5d549 snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b2bed09 snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b702b75 snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1a1ab58 snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa25af54b snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa9e90b08 snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab0ea483 snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1b79c18 snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb779072e snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8b8c588 snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb997d11f snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba35ef03 snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf5cdacb snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2498729 snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2d136d3 snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc3a16dda snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc79a44a9 snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc8ddfec8 snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb40e53e snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb59f284 snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd21f5a2d snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2b1e952 snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6599195 snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6626f18 snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6d3e4bc snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda36288e snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4f59ac1 snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeccf96d0 snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf16f9f3b snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4f918ec snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf585d9ca snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd603eb2 snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x6bf9e8e8 ad1836_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0xf521291e soc_codec_dev_ad1836
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x23672cf0 soc_codec_dev_ad193x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x9201836a ad193x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xe4893496 soc_codec_dev_ad73311
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xf1433e88 ad73311_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x4146d837 ads117x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x85bf6ff9 soc_codec_dev_ads117x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0x973c5c4b soc_codec_device_ak4104
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x15d09fa5 soc_codec_dev_ak4535
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xcdf49155 ak4535_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x4d6bb009 soc_codec_dev_ak4642
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x9bd99880 ak4642_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x2ca5f0b3 ak4671_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x64005d93 soc_codec_dev_ak4671
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x0fa65531 cs4270_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x9cb0b1fb soc_codec_device_cs4270
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x42f7f126 soc_codec_dev_da7210
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x5f9b1898 da7210_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x2afaee7d max9877_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xee04c186 pcm3008_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xfe9f6eac soc_codec_dev_pcm3008
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0xab65edb9 dit_stub_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x47e3e91f ssm2602_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xf52a6b67 soc_codec_dev_ssm2602
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x7ae22b72 soc_codec_dev_tlv320aic23
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xbb8855f0 tlv320aic23_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x8fa4668d aic26_soc_codec_dev
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xfd386a0c aic26_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x531ff6b7 soc_codec_dev_aic3x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x63e54cf6 aic3x_button_pressed
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x6e1d0aa4 aic3x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9cbf0494 aic3x_get_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xa25df78d aic3x_set_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb34d0b75 aic3x_set_headset_detection
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xf9540c79 aic3x_headset_detected
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x1b9d9b37 soc_codec_dev_tlv320dac33
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x56739957 dac33_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x85be2bee tpa6130a2_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x5aa7e36f soc_codec_dev_twl4030
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x9182b2d4 twl4030_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x2528a68a soc_codec_dev_twl6040
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x4e64c5bf twl6040_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x9b1f856a soc_codec_dev_uda134x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x23c2c703 uda1380_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xaaa5b903 soc_codec_dev_uda1380
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x1bbd932c wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xcc9f6030 wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xea638d4a wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x46b53e72 wm2000_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x1876abef wm8350_mic_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xca3ab171 wm8350_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xe600a2fe soc_codec_dev_wm8350
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xec0323c4 wm8350_hp_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x7d1c58ac soc_codec_dev_wm8400
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x92c797cf wm8400_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x7c841866 soc_codec_dev_wm8510
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xa7cf9c14 wm8510_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x10b3f427 wm8523_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x55eff5fc soc_codec_dev_wm8523
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x6591509d wm8580_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x735523e9 soc_codec_dev_wm8580
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x2eb648cc wm8711_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xcf96e1ac soc_codec_dev_wm8711
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x9b8af873 soc_codec_dev_wm8727
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xc907b14c wm8727_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x1c12e4bc soc_codec_dev_wm8728
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x38510399 wm8728_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xb92959e5 wm8731_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xcc1235c2 soc_codec_dev_wm8731
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x11a5bf7a wm8750_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xd1847831 soc_codec_dev_wm8750
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x68bf406a wm8753_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xfaa92bf2 soc_codec_dev_wm8753
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x174c4a83 wm8776_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x845a0bd9 soc_codec_dev_wm8776
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x3790cde9 soc_codec_dev_wm8900
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x561782ef wm8900_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x1cbd9e2a soc_codec_dev_wm8903
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xd083f041 wm8903_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xf0627f39 wm8903_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x53fc08ed soc_codec_dev_wm8904
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xcd86c0f9 wm8904_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x30996535 soc_codec_dev_wm8940
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xa258a6fc wm8940_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x4c2cfb47 soc_codec_dev_wm8955
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x54e23cfb wm8955_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x331db15b soc_codec_dev_wm8960
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x35c7b7d5 wm8960_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x2a06801a soc_codec_dev_wm8961
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xfe9b6470 wm8961_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x2bc4ea2d soc_codec_dev_wm8971
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x58ec6fc4 wm8971_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x0821fe77 wm8974_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x56b31e68 soc_codec_dev_wm8974
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x7fe33e0c wm8978_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0xfa065164 soc_codec_dev_wm8978
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x89ab4ee5 wm8988_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xf15a1659 soc_codec_dev_wm8988
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x3841f666 soc_codec_dev_wm8990
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xc38fc73c wm8990_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x136ca5a5 soc_codec_dev_wm8993
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x451bb592 wm8993_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x35c5b4fe wm8994_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x5c2d3362 soc_codec_dev_wm8994
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xa8fe62a6 wm8994_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x60f0cb2a soc_codec_dev_wm9081
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xa6901045 wm9081_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x7829905c soc_codec_dev_wm9090
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0312e896 snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06df21e7 snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0bdb2185 snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x117f414f snd_soc_free_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12360288 snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x13046224 snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16aef50c snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x17064f59 snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1babdd4c snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1c79c1f2 snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x206c0185 snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2423a254 snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24baec4d snd_soc_dapm_stream_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24d05796 snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x281f55d7 snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a781a46 snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3339f5d6 snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x35934b3d snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x35a7bb57 snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39c583dc snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b60d36d snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d73774d snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4109d07a snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x477c7b47 snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x479c060d snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48b59fe3 snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fba3a1e snd_soc_info_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x50d950cf snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x525e5813 snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x618e3a7c snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x622dc191 snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6779ab42 snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74d67b7b snd_soc_new_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7505ce0a snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x750f85ab snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x76518309 snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x774676d8 snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x77b71b4d snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80e5d453 snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x862b09d1 snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87c45464 snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8849cb7b snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8caa4cb7 snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x904364e1 snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x90bec3a1 snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x936f49ad snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96b062b0 snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b457093 snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa5bc2141 snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa732b48b snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xabc171c7 snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae598179 dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb077a1f5 snd_soc_jack_new
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb21f2f8d snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb35e9d5e snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb75e8ed8 snd_soc_get_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf004d74 snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc442562f snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc73a3c43 snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb0d291f snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xccbbeaea snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcec7b378 snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0a9f14d snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd17bcc7f snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5fc451d snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd6abe3b4 snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda51a615 snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdf1d05cc snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe386817a snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe440cc77 snd_soc_put_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4de7f9a snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe68534e2 snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeaea3db7 snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec92f292 snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8520862 snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc5e8578 snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfec92d01 snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x3ad6acb9 xv_free
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x415404a4 xv_malloc
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x422af118 xv_destroy_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6ae9c20d xv_get_total_size_bytes
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xd2ac5a4c xv_create_pool
+EXPORT_SYMBOL_GPL vmlinux 0x000d4cf0 input_ff_event
+EXPORT_SYMBOL_GPL vmlinux 0x003115f0 __fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis
+EXPORT_SYMBOL_GPL vmlinux 0x00add54c mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0x00be6ac3 xenbus_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init
+EXPORT_SYMBOL_GPL vmlinux 0x00e52289 rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0x0158bc77 console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x01790bcd blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok
+EXPORT_SYMBOL_GPL vmlinux 0x019fb029 __pm_runtime_get
+EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x02358c1e relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0x02528bb8 dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0x02a0aab2 rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0x02ab52a2 raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0x02c379d8 isa_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x02dfb414 rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x035dd1b5 lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL vmlinux 0x03f18a50 shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x0401d128 wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x047fa994 devm_kfree
+EXPORT_SYMBOL_GPL vmlinux 0x0491cc00 inotify_dentry_parent_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x049b7c44 usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0x04a93edb sysdev_class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x04aada29 perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0x04da25ef relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0x05004cf0 ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x0550239f scsi_dh_attach
+EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x0572669e ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x059a1e77 bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0x05bb8cd1 __pci_complete_power_transition
+EXPORT_SYMBOL_GPL vmlinux 0x05c7f84e relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x06d15e8d attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0x06e7017b crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x078d18ab blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0x079d3c07 sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0x07a6a801 cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x07c47550 usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf
+EXPORT_SYMBOL_GPL vmlinux 0x081c86dd vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0x087211be sata_pmp_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x087f71af wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x089ca49d power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x08a920d6 xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0x08d03d2b device_schedule_callback_owner
+EXPORT_SYMBOL_GPL vmlinux 0x08f97373 scsi_dh_activate
+EXPORT_SYMBOL_GPL vmlinux 0x09149adc __srcu_read_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0x09339e95 pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0x0952f135 dm_kill_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x0a198ac2 class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x0a285c08 pci_disable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0x0a4df3ce pci_ioremap_bar
+EXPORT_SYMBOL_GPL vmlinux 0x0a90beb7 scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0x0aa7488b blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0x0ab20242 register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x0ac0ab25 vring_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x0ac0fd45 cpufreq_get_measured_perf
+EXPORT_SYMBOL_GPL vmlinux 0x0ac64f26 bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b15d01d do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header
+EXPORT_SYMBOL_GPL vmlinux 0x0b6f20f4 crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x0bd3efe8 task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x0c0598ed usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0x0c219524 gpio_export_link
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c31082a usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range
+EXPORT_SYMBOL_GPL vmlinux 0x0cc381b6 inet6_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL vmlinux 0x0cdf9e10 fuse_file_poll
+EXPORT_SYMBOL_GPL vmlinux 0x0cf1d55d ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0x0d2d73c7 ata_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x0da68128 sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0x0db4aa5b skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0x0dbbb349 blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0x0dda2590 acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0x0de08cb6 blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0x0deb0ade register_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0x0df313c6 cpuidle_enable_device
+EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release
+EXPORT_SYMBOL_GPL vmlinux 0x0e2e5240 add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x0e2eafd7 usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL vmlinux 0x0e40c0f9 fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put
+EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info
+EXPORT_SYMBOL_GPL vmlinux 0x0ec644da power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0x0ee270e2 usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0x0ee8f61e scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL vmlinux 0x0f0720b5 __module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x0f179bde each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x0f27b5d8 dm_rh_recovery_start
+EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory
+EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x103e03fc inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x1044fdef wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x1047e176 inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x110b0ab6 __dma_request_channel
+EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x1127a40d sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x1166d30a regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x11714dcd mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0x1178685e regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x11fe07bb inotify_rm_watch
+EXPORT_SYMBOL_GPL vmlinux 0x1210e2f6 ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x122beea1 device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0x12337e22 crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x1242497e attribute_container_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0x129a6f63 hwmon_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x12d58d92 ata_cable_unknown
+EXPORT_SYMBOL_GPL vmlinux 0x12eb41d1 pciserial_resume_ports
+EXPORT_SYMBOL_GPL vmlinux 0x12f41c93 regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1334e998 generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x136d3f75 ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0x138b8976 inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0x1394c727 skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x13a0fb7d i2c_new_probed_device
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13b9c72c platform_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x13c3ac50 crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x13ec31dc tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0x1406a072 dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0x140ffe4f ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0x142b6278 ata_cable_80wire
+EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page
+EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid
+EXPORT_SYMBOL_GPL vmlinux 0x14c7ed35 acpi_bus_trim
+EXPORT_SYMBOL_GPL vmlinux 0x14fd7941 ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL vmlinux 0x150b65ad sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x15330eda proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0x154e201e crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x155624d9 wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0x15568631 lookup_address
+EXPORT_SYMBOL_GPL vmlinux 0x1570a178 fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1570fa39 __cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x1588a68a usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x15a98b54 ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped
+EXPORT_SYMBOL_GPL vmlinux 0x15b0c4b2 tracepoint_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x15c983bc usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x15eba9bd wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x16b85764 skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0x16c57b0c unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x16fb34d5 blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x171b577b unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub
+EXPORT_SYMBOL_GPL vmlinux 0x1777118d usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0x17853495 shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0x178d5c5f tracepoint_iter_start
+EXPORT_SYMBOL_GPL vmlinux 0x1793015b skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x17cf67be mm_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x17d60dc7 pci_sriov_migration
+EXPORT_SYMBOL_GPL vmlinux 0x18683bdb cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert
+EXPORT_SYMBOL_GPL vmlinux 0x18adcc27 fuse_request_send
+EXPORT_SYMBOL_GPL vmlinux 0x18eb1c1c sdio_readl
+EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref
+EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x19408f61 wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore
+EXPORT_SYMBOL_GPL vmlinux 0x196ff674 pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0x1976f3b4 bd_release_from_disk
+EXPORT_SYMBOL_GPL vmlinux 0x19812706 inotify_find_update_watch
+EXPORT_SYMBOL_GPL vmlinux 0x198c135a tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19b80d74 pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0x19d6ad12 da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0x19e31141 sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x19e4f40c inotify_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x1a0367e5 tc35892_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x1a145b60 usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x1a33c5b7 user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x1a6b443d ata_host_register
+EXPORT_SYMBOL_GPL vmlinux 0x1a877500 bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0x1aaf9e07 dm_rh_dec
+EXPORT_SYMBOL_GPL vmlinux 0x1b0ae4cd rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs
+EXPORT_SYMBOL_GPL vmlinux 0x1b3eb425 scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0x1b6de9a8 pci_enable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0x1b74782d ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL vmlinux 0x1b90e0bb fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1ba3bf47 __hvc_resize
+EXPORT_SYMBOL_GPL vmlinux 0x1bbb3af0 usb_ifnum_to_if
+EXPORT_SYMBOL_GPL vmlinux 0x1bbc3da3 tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x1bc7709a __trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0x1be02fca tc35892_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x1c0e2348 blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0x1c26fe58 transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0x1c2d3702 ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x1c4c9415 pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0x1c80f609 scsi_dh_detach
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1cc611f2 tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x1cf533ea anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0x1d30da5d ata_std_postreset
+EXPORT_SYMBOL_GPL vmlinux 0x1d3411fe __mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x1d77c2cd __pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0x1d89aca9 pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x1db88dda dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL vmlinux 0x1dc31621 ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x1dcd7e4f device_register
+EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf
+EXPORT_SYMBOL_GPL vmlinux 0x1dd70c82 queue_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart
+EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names
+EXPORT_SYMBOL_GPL vmlinux 0x1ece49bb ata_sas_port_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x1ecfdf10 cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0x1ed76675 crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0x1f2c7f08 anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle
+EXPORT_SYMBOL_GPL vmlinux 0x1f916aeb usb_disable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x1fc50f49 inet_diag_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1fcbe199 xenbus_free_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick
+EXPORT_SYMBOL_GPL vmlinux 0x1fdeb0b2 rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x1ff52861 ata_port_pbar_desc
+EXPORT_SYMBOL_GPL vmlinux 0x20103463 transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x202953e4 apic
+EXPORT_SYMBOL_GPL vmlinux 0x204d5b72 register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x20bb975f sdio_readw
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20f7d35e sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0x20f7e50a device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0x2125deda blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x21272fb1 anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x21797d1b debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0x21f5f826 regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x21fcfab1 class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x225dc5bb spi_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x2277e2fa trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x22a31c39 wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x22c18472 inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x22c6d403 platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x22f2ef5d usb_hc_died
+EXPORT_SYMBOL_GPL vmlinux 0x22fcbf4d class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x22ffc7ea crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0x234fd994 device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x23516bdc page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x2380db48 unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x2383ed3f d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x239f11db regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0x23d8116d vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0x23d960d0 rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0x241091a7 ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x243befbe __class_register
+EXPORT_SYMBOL_GPL vmlinux 0x243d4492 ata_sff_hsm_move
+EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops
+EXPORT_SYMBOL_GPL vmlinux 0x248aba8a ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL vmlinux 0x24b3d9f1 disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x2515a067 set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch
+EXPORT_SYMBOL_GPL vmlinux 0x254a55d4 xenbus_alloc_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x25664a04 crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x2568bd79 pm_generic_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x2630fe63 usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0x263ea03d led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x265a954a tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0x2692807e usb_string
+EXPORT_SYMBOL_GPL vmlinux 0x2692fd51 __sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x26e9f0fb inotify_init_watch
+EXPORT_SYMBOL_GPL vmlinux 0x26fd8f01 platform_get_resource_byname
+EXPORT_SYMBOL_GPL vmlinux 0x2759c655 cpuidle_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x277040fc blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0x27904178 ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars
+EXPORT_SYMBOL_GPL vmlinux 0x27a9dad9 invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x27b518e0 pm_generic_resume
+EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range
+EXPORT_SYMBOL_GPL vmlinux 0x2807ced3 kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0x281a193f __blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x28597d6f sata_scr_valid
+EXPORT_SYMBOL_GPL vmlinux 0x28b6bdcc da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28db7a89 tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x2963b731 sdio_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x29912393 rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x2a05d180 sdio_f0_readb
+EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x2a160a1d led_trigger_show
+EXPORT_SYMBOL_GPL vmlinux 0x2a32cf6d rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result
+EXPORT_SYMBOL_GPL vmlinux 0x2a926a3a dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array
+EXPORT_SYMBOL_GPL vmlinux 0x2ab62bab queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x2ac254b0 da903x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0x2b28c5ae sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x2b46bcdb ata_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x2b98af7c pci_enable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x2b9d2a0b ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0x2bbbe09a ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0x2bc493ee ata_sff_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0x2be7fb8e disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c4bb403 sata_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x2c66ddd4 pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0x2c6bd96d sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL vmlinux 0x2c7e0d50 usb_driver_set_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x2c8a67ec disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0x2cdf06f3 dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2ceccebe tracepoint_iter_stop
+EXPORT_SYMBOL_GPL vmlinux 0x2d064849 i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x2d151490 blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x2d174c7f shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x2d4da2dc device_find_child
+EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL vmlinux 0x2dbd49f5 spi_unregister_master
+EXPORT_SYMBOL_GPL vmlinux 0x2e262d59 rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e59e449 tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x2e913bdb zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0x2eb4155b ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0x2ed1593a __blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0x2ee46695 sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x2eff9086 dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x2f1b213c regulator_put
+EXPORT_SYMBOL_GPL vmlinux 0x2f45eaa7 platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table
+EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0x2f57d350 sysfs_remove_files
+EXPORT_SYMBOL_GPL vmlinux 0x2f6340ac class_dev_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x2f66e0f4 unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x2f6c3407 aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x2f7e7011 pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll
+EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x30d5e46c pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0x30eadb44 platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0x30ebc128 crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0x30fe0608 pm_request_resume
+EXPORT_SYMBOL_GPL vmlinux 0x30ff9e55 dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0x3136a485 devres_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x31594ba0 ata_bmdma_status
+EXPORT_SYMBOL_GPL vmlinux 0x3169bfa2 unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x317cf9c7 blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x31b2ab13 ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x31f0d310 cpufreq_cpu_put
+EXPORT_SYMBOL_GPL vmlinux 0x321c2f7f tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref
+EXPORT_SYMBOL_GPL vmlinux 0x3282cdc8 platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x32924a4d scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0x32aaaadf raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x32c0b54d pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0x32c6c24c platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x32e6012e pci_num_vf
+EXPORT_SYMBOL_GPL vmlinux 0x3346eb53 pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x334bec79 pci_restore_msi_state
+EXPORT_SYMBOL_GPL vmlinux 0x33607d36 smp_ops
+EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register
+EXPORT_SYMBOL_GPL vmlinux 0x33c294b5 ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0x33dccb1c regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x34586557 sdio_readb
+EXPORT_SYMBOL_GPL vmlinux 0x34c15143 crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0x34efe2a2 dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0x35190f49 __ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x352da304 device_create
+EXPORT_SYMBOL_GPL vmlinux 0x353f4746 apei_get_debugfs_dir
+EXPORT_SYMBOL_GPL vmlinux 0x356cf707 crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0x357b73aa xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL vmlinux 0x358aeae6 sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL vmlinux 0x35b4bb49 ata_port_abort
+EXPORT_SYMBOL_GPL vmlinux 0x35d15bc8 get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x35e15476 wm831x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x35ee75e6 usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0x3643cd5e class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x365895b0 dm_rh_update_states
+EXPORT_SYMBOL_GPL vmlinux 0x3665f879 usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x369c6be9 sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x36a747f7 sdio_f0_writeb
+EXPORT_SYMBOL_GPL vmlinux 0x36b6077a clockevents_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x36e5925d driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x36e6df7c sata_sff_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x36e76617 md_new_event
+EXPORT_SYMBOL_GPL vmlinux 0x370a6485 map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x373398c3 __sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0x3799fb9c pm_generic_restore
+EXPORT_SYMBOL_GPL vmlinux 0x37d549fc ata_link_online
+EXPORT_SYMBOL_GPL vmlinux 0x381c86f2 usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x384825dd unregister_virtio_device
+EXPORT_SYMBOL_GPL vmlinux 0x384fb68f usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x388018fd hvc_remove
+EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure
+EXPORT_SYMBOL_GPL vmlinux 0x38fdea40 pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0x39204940 dm_rh_get_region_key
+EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x3a0ee771 inotify_find_watch
+EXPORT_SYMBOL_GPL vmlinux 0x3a203dd8 __rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3a9cf58f shake_page
+EXPORT_SYMBOL_GPL vmlinux 0x3abf0f63 regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0x3af1c654 pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0x3b5df9aa user_match
+EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value
+EXPORT_SYMBOL_GPL vmlinux 0x3b91e24b ata_std_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x3b98926e regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0x3b9a5801 attribute_container_find_class_device
+EXPORT_SYMBOL_GPL vmlinux 0x3be4627c usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3c459c2f crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x3c75c4c6 uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag
+EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3cad9c0e pci_hp_change_slot_info
+EXPORT_SYMBOL_GPL vmlinux 0x3cc992e4 scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x3d9f4e94 anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0x3dac2cf5 sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0x3dcef2e3 acpi_smbus_unregister_callback
+EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x3dd88d8a task_current_syscall
+EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id
+EXPORT_SYMBOL_GPL vmlinux 0x3df46ff2 cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x3e13d4cd rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x3e398d67 regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x3e4e68c3 debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x3e726888 ata_acpi_gtm
+EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler
+EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0x3f008c39 led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register
+EXPORT_SYMBOL_GPL vmlinux 0x3f5eab43 fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x3f7669ea key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x3f983036 ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0x3fc76755 __audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0x40232091 crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0x4037895d rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x40446601 usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0x4045f152 kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x405fac01 __class_create
+EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL vmlinux 0x40f1a313 xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0x40f292a3 fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0x40f585b6 fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0x41766ecd ring_buffer_read_finish
+EXPORT_SYMBOL_GPL vmlinux 0x417ba602 sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x4189fbc1 da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x4201fb03 kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done
+EXPORT_SYMBOL_GPL vmlinux 0x4267def5 xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0x426e252f ata_pci_remove_one
+EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped
+EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active
+EXPORT_SYMBOL_GPL vmlinux 0x42af54d4 usb_poison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x42eedbfd crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x43b74e07 usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0x43bcb127 blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x43cfdd8f __rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x43e4a8cd dm_region_hash_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL vmlinux 0x4457a882 debugfs_create_x64
+EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x447ea073 ip6_dst_blackhole
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x44bb49b9 regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x44caa138 usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0x44db7172 pciserial_suspend_ports
+EXPORT_SYMBOL_GPL vmlinux 0x452d1e78 debugfs_create_bool
+EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state
+EXPORT_SYMBOL_GPL vmlinux 0x456bbaff securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list
+EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read
+EXPORT_SYMBOL_GPL vmlinux 0x45b0f960 crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x45bdf143 ata_eh_freeze_port
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page
+EXPORT_SYMBOL_GPL vmlinux 0x45d7d97a bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x45e39698 tc35892_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data
+EXPORT_SYMBOL_GPL vmlinux 0x465323ae sdio_set_block_size
+EXPORT_SYMBOL_GPL vmlinux 0x466bc01e register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x4675bd25 hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x467b657d crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x46b030bd ata_host_detach
+EXPORT_SYMBOL_GPL vmlinux 0x46d6dd6a transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0x46f8df5e inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x47345869 firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x479e730a kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x47be3c39 ata_sff_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0x48028dcb __put_net
+EXPORT_SYMBOL_GPL vmlinux 0x482e2adb usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0x48672258 sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size
+EXPORT_SYMBOL_GPL vmlinux 0x48c1d3eb fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0x48d081c0 inotify_inode_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x49301de2 wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue
+EXPORT_SYMBOL_GPL vmlinux 0x49918742 inotify_init
+EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x49de1f81 vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0x4a2b23aa pm_runtime_forbid
+EXPORT_SYMBOL_GPL vmlinux 0x4a57a099 kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x4aa265fe pm_generic_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x4aece391 crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0x4b191740 __ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x4b542a3d ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x4bf2cee4 __mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x4c0addc1 generic_subsys_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0x4c1f642f crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0x4c3e6d1b driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c8160c0 fuse_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0x4c8b9b80 crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x4c9edcc4 xenbus_bind_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x4d09b30a remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0x4d59f293 ata_sff_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0x4d6447ad tty_prepare_flip_string_flags
+EXPORT_SYMBOL_GPL vmlinux 0x4d8d254d elv_register
+EXPORT_SYMBOL_GPL vmlinux 0x4d9454a5 regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x4d9698f2 ata_base_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x4da55ea3 __crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x4e02b9d9 rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x4e86a742 ata_eh_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x4eb2a5d3 rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0x4ebfb387 pm_runtime_enable
+EXPORT_SYMBOL_GPL vmlinux 0x4ed4d1dc cpufreq_register_governor
+EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x4ef6d7aa init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0x4f0922f3 root_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4f0b0712 debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0x4f4d9575 spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0x4f579f65 single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x4fc5b48c hwmon_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal
+EXPORT_SYMBOL_GPL vmlinux 0x4fdea038 fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x4fdeb352 ata_sas_slave_configure
+EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array
+EXPORT_SYMBOL_GPL vmlinux 0x5051a132 rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0x5063247b ata_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x50793d00 sata_async_notification
+EXPORT_SYMBOL_GPL vmlinux 0x5081f6b3 ipv6_opt_accepted
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x50e5b488 regulator_disable
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched
+EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x5108b3fc acpi_os_map_memory
+EXPORT_SYMBOL_GPL vmlinux 0x5120eb1e scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x514f95f4 ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0x51558bf2 scsi_dh_set_params
+EXPORT_SYMBOL_GPL vmlinux 0x5169a667 crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0x5178abf9 md_allow_write
+EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq
+EXPORT_SYMBOL_GPL vmlinux 0x51a0bb4c ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0x5274048f usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0x529f402a rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0x52c9b6df tty_put_char
+EXPORT_SYMBOL_GPL vmlinux 0x52db3d8b simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53924bb2 xenbus_switch_state
+EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53bbb742 usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x540c89e7 driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x541fa8a3 module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x543b02f0 ata_sff_postreset
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54956567 sdio_memcpy_toio
+EXPORT_SYMBOL_GPL vmlinux 0x54b6e60b uhci_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x54bbe2c0 setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54c13e6b __root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x54c4dd0d i2c_new_dummy
+EXPORT_SYMBOL_GPL vmlinux 0x55006ca8 pci_destroy_slot
+EXPORT_SYMBOL_GPL vmlinux 0x5513aa17 shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features
+EXPORT_SYMBOL_GPL vmlinux 0x5584b0be ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x55da6686 device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x56055804 vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0x5619941f ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status
+EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable
+EXPORT_SYMBOL_GPL vmlinux 0x563c6860 crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after
+EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen
+EXPORT_SYMBOL_GPL vmlinux 0x566a904f find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0x566f0583 macvlan_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x56824317 sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk
+EXPORT_SYMBOL_GPL vmlinux 0x56dc3b0d scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x570994f5 xenbus_frontend_closed
+EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists
+EXPORT_SYMBOL_GPL vmlinux 0x5798dc06 proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x57a96e22 xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0x57b3d717 rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0x57b44923 perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x57e7a258 init_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x57fc7cd7 init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x580684ac kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x58156865 fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0x58a486d9 aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x58e9802c dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL vmlinux 0x58f50a07 __pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x590ef4b1 input_ff_create
+EXPORT_SYMBOL_GPL vmlinux 0x59237ac8 spi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL vmlinux 0x594bb462 ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x59b92e22 __pm_runtime_disable
+EXPORT_SYMBOL_GPL vmlinux 0x59d52725 devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0x59e25e47 ata_sff_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x5a56580a transport_configure_device
+EXPORT_SYMBOL_GPL vmlinux 0x5a688b0f find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5ab5e3e9 xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x5b1ecd22 find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x5b519467 usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5c0166de dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL vmlinux 0x5c24648b ata_sas_port_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x5c9f026a wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x5ca314d0 regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x5cf982b7 seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table
+EXPORT_SYMBOL_GPL vmlinux 0x5d1065c2 security_inode_setattr
+EXPORT_SYMBOL_GPL vmlinux 0x5d1d1457 save_stack_trace_tsk
+EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback
+EXPORT_SYMBOL_GPL vmlinux 0x5d708f34 wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d74abc6 dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5e49ad8a pci_dev_run_wake
+EXPORT_SYMBOL_GPL vmlinux 0x5e6dad00 get_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x5e8164d8 sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0x5ec401ea __pci_hp_register
+EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0x5f0554be __srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x5f1b10d4 ata_sff_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable
+EXPORT_SYMBOL_GPL vmlinux 0x5f5de5f8 alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x5f63ab3a pci_create_slot
+EXPORT_SYMBOL_GPL vmlinux 0x5f6c7acd usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0x5f79bc2b rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x5fb3d2f9 wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x6001b133 usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x60c6f982 sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops
+EXPORT_SYMBOL_GPL vmlinux 0x60ebf985 acpi_processor_ffh_cstate_enter
+EXPORT_SYMBOL_GPL vmlinux 0x60fd6f76 ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0x611daadb pci_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x611f50f1 tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0x61478620 ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x61704093 relay_close
+EXPORT_SYMBOL_GPL vmlinux 0x6172ced5 inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0x61a2f5c8 __rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x61a69fc0 __mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0x61a6ce7f sdio_readsb
+EXPORT_SYMBOL_GPL vmlinux 0x61adc76c crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x61e05183 xenbus_dev_error
+EXPORT_SYMBOL_GPL vmlinux 0x61fa131d ata_sff_pause
+EXPORT_SYMBOL_GPL vmlinux 0x61fbd19d securityfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x62258080 cpuidle_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x62518797 fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x6287d3bb __cpufreq_driver_getavg
+EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep
+EXPORT_SYMBOL_GPL vmlinux 0x62b952f2 sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0x62d93311 ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL vmlinux 0x6343f34b fib_rules_cleanup_ops
+EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL vmlinux 0x637fe502 led_trigger_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x63b30e63 spi_alloc_master
+EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap
+EXPORT_SYMBOL_GPL vmlinux 0x64832385 drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0x64acc8d6 vring_new_virtqueue
+EXPORT_SYMBOL_GPL vmlinux 0x64ebe677 wmi_query_block
+EXPORT_SYMBOL_GPL vmlinux 0x64f426dd usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x64ffe38d ring_buffer_overruns
+EXPORT_SYMBOL_GPL vmlinux 0x6526aff0 cpufreq_frequency_table_target
+EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq
+EXPORT_SYMBOL_GPL vmlinux 0x655467ee sata_scr_write
+EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65d847e9 tc35892_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x66052a32 debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x663dbde6 shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x66631273 unregister_virtio_driver
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x66b23258 usb_enable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66cf21ba relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x670c5bef hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0x671be7a9 ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x6733cd8c device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x676319ba da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x67cbc60b rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0x67cdd6ca regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x67e5844d usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0x682fd1ab ata_bmdma_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x6831f2a5 crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x6859dca9 cpufreq_frequency_table_cpuinfo
+EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x689ae2dc shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x68aba8b8 nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x68b11b5e sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x68bd9b39 sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x68cdeb71 blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x6902fd77 hwpoison_filter
+EXPORT_SYMBOL_GPL vmlinux 0x690b3f05 crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0x6969db3b virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse
+EXPORT_SYMBOL_GPL vmlinux 0x699a8c10 register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x699c588b nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x69a4db3c scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0x69b7efa2 platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config
+EXPORT_SYMBOL_GPL vmlinux 0x6a04be02 ata_link_next
+EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start
+EXPORT_SYMBOL_GPL vmlinux 0x6ac5f0a8 crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low
+EXPORT_SYMBOL_GPL vmlinux 0x6b8fa0d5 dm_rh_recovery_end
+EXPORT_SYMBOL_GPL vmlinux 0x6b9178b3 xenbus_strstate
+EXPORT_SYMBOL_GPL vmlinux 0x6b94c408 enable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x6bbb96b3 proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x6bc42417 scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x6bc74301 inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c563ef3 xenbus_grant_ring
+EXPORT_SYMBOL_GPL vmlinux 0x6c72fc3e cpci_hp_register_bus
+EXPORT_SYMBOL_GPL vmlinux 0x6c8aaad6 tc35892_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6cd0633a scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d6bf964 __inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x6dd80c63 skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x6e180dbb fsnotify
+EXPORT_SYMBOL_GPL vmlinux 0x6e234c09 modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x6e394aa0 crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref
+EXPORT_SYMBOL_GPL vmlinux 0x6e5b4f40 pcie_port_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x6e782c23 iomap_create_wc
+EXPORT_SYMBOL_GPL vmlinux 0x6e96da21 acpi_smbus_register_callback
+EXPORT_SYMBOL_GPL vmlinux 0x6e9da9d6 platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0x6ec9f38f usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x6ecbcc36 sysfs_notify_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x6ef2f626 sync_page_io
+EXPORT_SYMBOL_GPL vmlinux 0x6ef565e0 register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x6f0bd9c1 adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL vmlinux 0x6f38b160 driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x6f4f67c3 dm_unregister_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0x6f8621e4 ata_cable_ignore
+EXPORT_SYMBOL_GPL vmlinux 0x6f989b65 srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x6f9d27d4 crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x6f9d3e88 crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0x6fa7e887 ata_port_desc
+EXPORT_SYMBOL_GPL vmlinux 0x6fd018cd virtqueue_kick
+EXPORT_SYMBOL_GPL vmlinux 0x6fd6cf37 platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0x6fe6eedc debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0x6ff5347b inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x6ffd55ca sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0x702c97d3 wm8994_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts
+EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr
+EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL vmlinux 0x7084594b put_device
+EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0x70aecb65 device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem
+EXPORT_SYMBOL_GPL vmlinux 0x70eb6cb7 ip6_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x7111d0f1 rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x7153bcc9 usb_set_device_state
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x71b117d3 transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0x71c7a71d kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x71d95082 css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x71dc8589 power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0x71e16fc0 crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0x72572c6c scsi_register_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x7285f84f unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x7288b643 inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x729ad458 ata_pci_device_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x72e1098c xenbus_dev_changed
+EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type
+EXPORT_SYMBOL_GPL vmlinux 0x739be7f9 fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x739ed6e8 add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports
+EXPORT_SYMBOL_GPL vmlinux 0x7400280b default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x742f0c1a lookup_create
+EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini
+EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x746c770c scsi_target_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x74742ec6 simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read
+EXPORT_SYMBOL_GPL vmlinux 0x74963eef pciserial_init_ports
+EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register
+EXPORT_SYMBOL_GPL vmlinux 0x74b87bd8 usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74c80ed8 dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors
+EXPORT_SYMBOL_GPL vmlinux 0x75212412 ab8500_read
+EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm
+EXPORT_SYMBOL_GPL vmlinux 0x754d6754 usb_create_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x75c4d652 __ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x75cbc728 usb_store_new_id
+EXPORT_SYMBOL_GPL vmlinux 0x75cf56b9 ata_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x75f7901d crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x7642d22c dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL vmlinux 0x76563a77 fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x768e90f1 hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x77645df5 destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x77659526 power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x77722d02 platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs
+EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0x77e9795e ata_port_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x78289b9c ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0x782af852 srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x783fe067 synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x7840076b ata_host_init
+EXPORT_SYMBOL_GPL vmlinux 0x785ba88e ata_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0x7860a857 cpuidle_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x78aa14bc raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x78af748a crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar
+EXPORT_SYMBOL_GPL vmlinux 0x7923f76f fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x7973c398 ata_sff_data_xfer
+EXPORT_SYMBOL_GPL vmlinux 0x7981f09d inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x79a15557 crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0x79b8b5d7 elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x79cf2087 cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL vmlinux 0x79d1b3d3 da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x79dbfc8a crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x7a0f9a7e __rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0x7a2cc4e3 vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info
+EXPORT_SYMBOL_GPL vmlinux 0x7a59dc84 sysdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7a99ea75 wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr
+EXPORT_SYMBOL_GPL vmlinux 0x7b0b4178 mmu_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set
+EXPORT_SYMBOL_GPL vmlinux 0x7b43dd99 xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL vmlinux 0x7bbad306 ata_sff_wait_ready
+EXPORT_SYMBOL_GPL vmlinux 0x7c0775dd usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0x7c1331ea wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x7c47b89d iounmap_atomic
+EXPORT_SYMBOL_GPL vmlinux 0x7c551f65 eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x7c9363eb __get_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x7c9682ef disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0x7c973390 virtqueue_enable_cb
+EXPORT_SYMBOL_GPL vmlinux 0x7ca3321c blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x7caddf16 class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x7cb52b9f ata_dummy_port_info
+EXPORT_SYMBOL_GPL vmlinux 0x7d454a74 usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0x7d4dac36 sdio_disable_func
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq
+EXPORT_SYMBOL_GPL vmlinux 0x7d85ac65 fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0x7d9cc3e6 sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values
+EXPORT_SYMBOL_GPL vmlinux 0x7db89910 unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e34379a fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check
+EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x7f84ea23 pm_schedule_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x7f8ac0a7 xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0x7fb5f6e4 i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x7fdd4c7a inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x7fecf365 inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x802822f0 acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0x802adbb1 sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission
+EXPORT_SYMBOL_GPL vmlinux 0x804c528c __fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0x8059a040 uart_console_write
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x8090f463 tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x80cc706f spi_async
+EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x8159173a ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x815badac rtnl_kill_links
+EXPORT_SYMBOL_GPL vmlinux 0x81633c9f sysdev_class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x81799bf6 udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x817da381 srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x8184658b show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x824f5859 get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0x8262a883 ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x82977014 ata_host_activate
+EXPORT_SYMBOL_GPL vmlinux 0x82af1cda ata_pci_device_resume
+EXPORT_SYMBOL_GPL vmlinux 0x82b6608e ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write
+EXPORT_SYMBOL_GPL vmlinux 0x82e0bbba pci_hp_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x82e5e0db ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export
+EXPORT_SYMBOL_GPL vmlinux 0x83782674 wm8994_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x8416fe8e disk_map_sector_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x8435b808 fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x84405647 ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x84859be6 sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x8542f315 unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0x8545ae3a inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag
+EXPORT_SYMBOL_GPL vmlinux 0x85b1aa58 fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh
+EXPORT_SYMBOL_GPL vmlinux 0x85ce35b0 alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq
+EXPORT_SYMBOL_GPL vmlinux 0x85eb2715 cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x85ed7b0a kill_pid_info_as_uid
+EXPORT_SYMBOL_GPL vmlinux 0x860bc6a3 fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x861d352d regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0x861e2d8a usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0x865ad015 usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq
+EXPORT_SYMBOL_GPL vmlinux 0x867c684a setup_APIC_eilvt_ibs
+EXPORT_SYMBOL_GPL vmlinux 0x867e7a47 ata_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x86a3b45b crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x86de109d inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x87019897 spi_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x8708e0bf ata_sas_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error
+EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x87939482 dev_attr_unload_heads
+EXPORT_SYMBOL_GPL vmlinux 0x87ca6150 tty_find_polling_driver
+EXPORT_SYMBOL_GPL vmlinux 0x87cb2b25 spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm
+EXPORT_SYMBOL_GPL vmlinux 0x87e3c4ab kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x880d7c67 sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0x881007e8 tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x88200f3c cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL vmlinux 0x88456eb6 device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x886736fc olpc_platform_info
+EXPORT_SYMBOL_GPL vmlinux 0x888dac38 device_add
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active
+EXPORT_SYMBOL_GPL vmlinux 0x88ae3902 __module_address
+EXPORT_SYMBOL_GPL vmlinux 0x88e7a350 crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x893e60c7 pm_request_idle
+EXPORT_SYMBOL_GPL vmlinux 0x894f54af pci_hp_create_module_link
+EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init
+EXPORT_SYMBOL_GPL vmlinux 0x8958ed8b dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0x895cdb50 regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x8994f7fd tty_mode_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x89ac4ccf xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0x89b1a75d spi_sync
+EXPORT_SYMBOL_GPL vmlinux 0x89be54e7 eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0x89c39214 class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x8a13e4de sdio_claim_host
+EXPORT_SYMBOL_GPL vmlinux 0x8a1dc5c5 blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x8a3cfb9e tracepoint_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x8aee0a88 pci_find_ext_capability
+EXPORT_SYMBOL_GPL vmlinux 0x8b18a4e4 usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0x8b1a9aab ip6_sk_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis
+EXPORT_SYMBOL_GPL vmlinux 0x8bcdf038 register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x8bfd1dd6 ata_sas_port_stop
+EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start
+EXPORT_SYMBOL_GPL vmlinux 0x8c09d3b5 ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x8c38bc65 power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x8c6f4560 device_create_vargs
+EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x8cb41c0a devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x8d6bb2d8 crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x8d73e479 devres_find
+EXPORT_SYMBOL_GPL vmlinux 0x8dc1350c class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0x8dcf92f0 bus_register
+EXPORT_SYMBOL_GPL vmlinux 0x8dede734 ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0x8dee283b ata_sff_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x8e60fe62 platform_device_register_data
+EXPORT_SYMBOL_GPL vmlinux 0x8e664e0e sata_link_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x8e6ccb2b dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0x8ea8e063 xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0x8f0cdee6 devres_remove
+EXPORT_SYMBOL_GPL vmlinux 0x8f0ddcc6 usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x8f2d3741 dm_rh_inc_pending
+EXPORT_SYMBOL_GPL vmlinux 0x8f6ac059 virtqueue_get_buf
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8fce54e4 ata_eh_qc_retry
+EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL vmlinux 0x9088adf9 ata_slave_link_init
+EXPORT_SYMBOL_GPL vmlinux 0x9095410d ata_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90bcd32b securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x90dd99db class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x90e07901 dev_attr_sw_activity
+EXPORT_SYMBOL_GPL vmlinux 0x9103ffb0 dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x915ce6d9 debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0x91c5051e pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0x91d11bd7 pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0x9219c194 blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x9227d5d2 bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0x92282bf1 usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0x9253841a ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x9286ccc1 usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x928ac5b2 inet6_destroy_sock
+EXPORT_SYMBOL_GPL vmlinux 0x92cab973 adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x92ffa5e0 cpufreq_cpu_get
+EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x93474721 usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0x9364cfce ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0x937cce18 sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x939f5cb1 device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x93d3054e bus_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x93f0554a crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x940c188a ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x9428a9b9 virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL vmlinux 0x9466c1a6 ata_sff_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x94770b82 use_mm
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94b52812 usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources
+EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop
+EXPORT_SYMBOL_GPL vmlinux 0x95071709 ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL vmlinux 0x950e48a2 i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x95195589 sata_scr_read
+EXPORT_SYMBOL_GPL vmlinux 0x951f8da1 relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x954a26d2 ata_std_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x95620f08 register_virtio_driver
+EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x95769bdf device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0x95a24df8 ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x95f110b3 usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x95f328eb shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x95fe7163 skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x960cecfb ab8500_write
+EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x9653dcb5 pm_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x965d76ef preempt_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key
+EXPORT_SYMBOL_GPL vmlinux 0x96a60325 spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x96edb1d0 ata_sff_softreset
+EXPORT_SYMBOL_GPL vmlinux 0x975cbbe1 crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0x97704631 gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0x979d33b0 tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0x980ee705 usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick
+EXPORT_SYMBOL_GPL vmlinux 0x98541d59 disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x9869e765 tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x986d3421 regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0x987a438d queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0x98b51ef1 bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0x98cb0ba3 skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0x98f9c01e crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x9939c9b5 dm_region_hash_create
+EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on
+EXPORT_SYMBOL_GPL vmlinux 0x995d5308 tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x99872d8c input_ff_upload
+EXPORT_SYMBOL_GPL vmlinux 0x99f24de8 dm_register_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a174623 ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x9a2f7932 crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x9a4ffa11 ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x9a760958 wm8350_device_exit
+EXPORT_SYMBOL_GPL vmlinux 0x9a9dcf49 xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0x9aaa5904 __lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0x9ac001f1 __inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x9ad598ea crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x9b09447a kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x9b28de10 ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9babbf66 register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x9baf64e3 rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x9bb551ff skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x9bd1fb6c input_ff_erase
+EXPORT_SYMBOL_GPL vmlinux 0x9bd3b05c ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0x9bdf47b6 ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x9c3f6c34 posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine
+EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch
+EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0x9d5c4dad ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x9de655fa hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x9de74e58 invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0x9e7b878b dm_rh_start_recovery
+EXPORT_SYMBOL_GPL vmlinux 0x9e7dbfaf inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x9e91ace8 do_add_mount
+EXPORT_SYMBOL_GPL vmlinux 0x9e9f9505 dm_device_name
+EXPORT_SYMBOL_GPL vmlinux 0x9eb56036 uart_set_options
+EXPORT_SYMBOL_GPL vmlinux 0x9eb9d814 ata_sff_check_status
+EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread
+EXPORT_SYMBOL_GPL vmlinux 0x9eec0654 css_depth
+EXPORT_SYMBOL_GPL vmlinux 0x9f3ff434 ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain
+EXPORT_SYMBOL_GPL vmlinux 0x9f463dca inet6_csk_xmit
+EXPORT_SYMBOL_GPL vmlinux 0x9f55c4aa crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x9f67ea4d inotify_inode_is_dead
+EXPORT_SYMBOL_GPL vmlinux 0x9f8ad275 pciserial_remove_ports
+EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc
+EXPORT_SYMBOL_GPL vmlinux 0x9fa38c20 generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0x9fbf43e9 class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint
+EXPORT_SYMBOL_GPL vmlinux 0xa03d1039 ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0xa08c58bd ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0xa0ac1fa7 get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0xa0c31c08 mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg
+EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xa121be8a driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0xa125a10e fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa144d163 synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0xa1635762 dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0xa174bbc6 crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xa1d08e02 bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa208c7d7 ata_sas_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0xa2314722 wm8350_block_write
+EXPORT_SYMBOL_GPL vmlinux 0xa2984656 user_read
+EXPORT_SYMBOL_GPL vmlinux 0xa2cdd24a ata_do_dev_read_id
+EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4
+EXPORT_SYMBOL_GPL vmlinux 0xa30edaea rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa31323a3 transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0xa33a44c1 crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm
+EXPORT_SYMBOL_GPL vmlinux 0xa3670ee3 xenbus_dev_fatal
+EXPORT_SYMBOL_GPL vmlinux 0xa3d5e822 dev_attr_em_message
+EXPORT_SYMBOL_GPL vmlinux 0xa3e03efb crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa413a3f3 devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xa427f0a0 cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit
+EXPORT_SYMBOL_GPL vmlinux 0xa470a873 crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx
+EXPORT_SYMBOL_GPL vmlinux 0xa4863eb7 inotify_remove_watch_locked
+EXPORT_SYMBOL_GPL vmlinux 0xa4ab4bd7 ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa4debad0 devres_add
+EXPORT_SYMBOL_GPL vmlinux 0xa4e182f4 pci_disable_rom
+EXPORT_SYMBOL_GPL vmlinux 0xa4ed1e9d platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa505fda0 sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0xa50f508f ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0xa5193493 usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0xa548b686 __scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0xa55b726d ata_std_bios_param
+EXPORT_SYMBOL_GPL vmlinux 0xa591ba92 crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes
+EXPORT_SYMBOL_GPL vmlinux 0xa5c9180b free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa610bf28 debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa703fe2b pci_bus_resource_n
+EXPORT_SYMBOL_GPL vmlinux 0xa7072353 dm_get_rq_mapinfo
+EXPORT_SYMBOL_GPL vmlinux 0xa734d9aa tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0xa742fa26 input_class
+EXPORT_SYMBOL_GPL vmlinux 0xa7a9b788 sdio_enable_func
+EXPORT_SYMBOL_GPL vmlinux 0xa7d62019 hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xa7f04890 acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL vmlinux 0xa7f4d5fc driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xa8425b21 regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll
+EXPORT_SYMBOL_GPL vmlinux 0xa864b81d blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0xa86b329e spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0xa87f4716 device_attach
+EXPORT_SYMBOL_GPL vmlinux 0xa897a21a pci_test_config_bits
+EXPORT_SYMBOL_GPL vmlinux 0xa8a4d313 usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0xa8f0858d ipv6_find_tlv
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa8fe5a91 sata_set_spd
+EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit
+EXPORT_SYMBOL_GPL vmlinux 0xa94469aa __xenbus_register_frontend
+EXPORT_SYMBOL_GPL vmlinux 0xa94719f5 perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0xa94d2dc3 crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0xa95a4634 crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0xa95a8cdc led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0xa98b3127 devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xa9a970d6 sata_link_resume
+EXPORT_SYMBOL_GPL vmlinux 0xa9b7afd8 wmi_set_block
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xaa121800 tasklet_hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0xaa508521 inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0xaa5afadf ring_buffer_resize
+EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock
+EXPORT_SYMBOL_GPL vmlinux 0xaad98cec bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback
+EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab7f5f8a xenbus_watch_path
+EXPORT_SYMBOL_GPL vmlinux 0xab9e6d4c inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0xabab0ba4 ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL vmlinux 0xabc18ade ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xac2e171a fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0xac5c3ce7 usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL vmlinux 0xac79b62a acpi_get_pci_dev
+EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq
+EXPORT_SYMBOL_GPL vmlinux 0xacc19485 ibft_addr
+EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0xacdb83da tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf
+EXPORT_SYMBOL_GPL vmlinux 0xad110b24 aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xad29109b pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad6c5f9c page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module
+EXPORT_SYMBOL_GPL vmlinux 0xadd899ff ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0xadf33390 crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae25b315 sdio_writesb
+EXPORT_SYMBOL_GPL vmlinux 0xae429e8d pci_scan_child_bus
+EXPORT_SYMBOL_GPL vmlinux 0xae601411 inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xaeb1bfdc crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0xaebdb22d filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0xaeda2683 preempt_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0xaf567394 ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0xaf708a47 ata_sff_exec_command
+EXPORT_SYMBOL_GPL vmlinux 0xaf97b5d2 xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0xaf98fc75 kmap_atomic_pfn
+EXPORT_SYMBOL_GPL vmlinux 0xafa12d11 security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0xafc2eafe ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0xafe77d10 ata_sff_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xb0018fb2 sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL vmlinux 0xb03410cb spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xb0450bdf ata_host_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xb05e90fa hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work
+EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send
+EXPORT_SYMBOL_GPL vmlinux 0xb11dec25 generic_detach_inode
+EXPORT_SYMBOL_GPL vmlinux 0xb127b095 netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0xb13a358f class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0xb156d325 ata_bmdma_stop
+EXPORT_SYMBOL_GPL vmlinux 0xb17c2f6f spi_register_master
+EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xb193677b inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0xb19872f5 md_do_sync
+EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb1e4d852 rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xb2001031 regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0xb224911b debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0xb22fc247 ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xb262c500 ata_dev_next
+EXPORT_SYMBOL_GPL vmlinux 0xb27d3194 srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xb27f04b2 class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb2a980c8 sdio_writew
+EXPORT_SYMBOL_GPL vmlinux 0xb2ac02c0 usb_autopm_put_interface
+EXPORT_SYMBOL_GPL vmlinux 0xb30c5091 bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xb30c6d5e hrtimer_start
+EXPORT_SYMBOL_GPL vmlinux 0xb31b1010 dm_rh_region_context
+EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init
+EXPORT_SYMBOL_GPL vmlinux 0xb35291a1 generic_fh_to_parent
+EXPORT_SYMBOL_GPL vmlinux 0xb3d43b91 inotify_rm_wd
+EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write
+EXPORT_SYMBOL_GPL vmlinux 0xb3e08590 blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0xb3e50c5c pci_bus_max_busnr
+EXPORT_SYMBOL_GPL vmlinux 0xb3ff3c1d ata_link_abort
+EXPORT_SYMBOL_GPL vmlinux 0xb4305c9f usb_driver_release_interface
+EXPORT_SYMBOL_GPL vmlinux 0xb4353cd9 usb_ep0_reinit
+EXPORT_SYMBOL_GPL vmlinux 0xb4489623 blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0xb467b5e2 find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xb468069c page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected
+EXPORT_SYMBOL_GPL vmlinux 0xb4ef8f1a sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state
+EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait
+EXPORT_SYMBOL_GPL vmlinux 0xb549dad0 simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0xb553c3df adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0xb58852ee led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xb59f5d28 pm_runtime_allow
+EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler
+EXPORT_SYMBOL_GPL vmlinux 0xb5aa97fa cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0xb5d8913d register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb5f5351e da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0xb60552a6 sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0xb60f2187 skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0xb611d066 debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec
+EXPORT_SYMBOL_GPL vmlinux 0xb651c944 xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0xb656bc46 blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0xb657bab8 device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb65cd878 ata_dev_disable
+EXPORT_SYMBOL_GPL vmlinux 0xb679dc5a crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xb6a90b29 sata_link_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string
+EXPORT_SYMBOL_GPL vmlinux 0xb6bc49a9 __supported_pte_mask
+EXPORT_SYMBOL_GPL vmlinux 0xb6bfde21 put_driver
+EXPORT_SYMBOL_GPL vmlinux 0xb6c8c3aa sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0xb6d2fce9 sata_std_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse
+EXPORT_SYMBOL_GPL vmlinux 0xb7263249 platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb7a7bc51 sis_info133_for_sata
+EXPORT_SYMBOL_GPL vmlinux 0xb7b53808 scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xb7c88398 usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time
+EXPORT_SYMBOL_GPL vmlinux 0xb7db85e3 crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll
+EXPORT_SYMBOL_GPL vmlinux 0xb7f44762 blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xb8099e40 get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xb86386ca sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0xb8a78976 register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xb8bda440 sysfs_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xb8eb9b35 sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0xb8f4913e ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0xb90f7b43 print_context_stack
+EXPORT_SYMBOL_GPL vmlinux 0xb92ce004 kick_process
+EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read
+EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xb9efa853 fuse_direct_io
+EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0xba1796bc fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0xbac00ed2 flush_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks
+EXPORT_SYMBOL_GPL vmlinux 0xbb2c3c9d dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL vmlinux 0xbb58b814 iomap_free
+EXPORT_SYMBOL_GPL vmlinux 0xbb64c55e pm_generic_thaw
+EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info
+EXPORT_SYMBOL_GPL vmlinux 0xbbe5ca4f mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xbc0f92b8 debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0xbc44b47a user_update
+EXPORT_SYMBOL_GPL vmlinux 0xbc803415 usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0xbcbdecab devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0xbce836dd cpuidle_get_driver
+EXPORT_SYMBOL_GPL vmlinux 0xbd39674e sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xbd784834 rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0xbd87b9ea tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0xbd97ca61 fuse_do_open
+EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2b67b aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse
+EXPORT_SYMBOL_GPL vmlinux 0xbddd1e71 inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime
+EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xbe3295e6 sdio_writeb
+EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xbec5c5d6 crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xbf45ac97 ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL vmlinux 0xbf569d71 driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xbf7f674c inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xbf9a6d0d ata_host_start
+EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0xbffc0aa2 ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0xbffc7a02 tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xbfff797c crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0xc00c7e90 device_del
+EXPORT_SYMBOL_GPL vmlinux 0xc01b54fd queue_work
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf399b scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time
+EXPORT_SYMBOL_GPL vmlinux 0xc0c3bc45 cpufreq_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc0e40171 part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0xc0e440e2 tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xc0e89c59 raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar
+EXPORT_SYMBOL_GPL vmlinux 0xc135c69f pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0xc164e433 __inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc17b9c9a dm_put
+EXPORT_SYMBOL_GPL vmlinux 0xc1b5f4b8 ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xc1d75365 ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0xc21a03bb ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL vmlinux 0xc22076c0 usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc246ffcf rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0xc2c86cc7 init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable
+EXPORT_SYMBOL_GPL vmlinux 0xc2de6ff2 cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc2eae5f9 dma_release_channel
+EXPORT_SYMBOL_GPL vmlinux 0xc2f2714f apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0xc33e6ab1 debugfs_create_u64
+EXPORT_SYMBOL_GPL vmlinux 0xc3447640 raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL vmlinux 0xc36e07ac ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xc39747d8 hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long
+EXPORT_SYMBOL_GPL vmlinux 0xc42e6aa9 rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xc42f2f94 xenbus_read_driver_state
+EXPORT_SYMBOL_GPL vmlinux 0xc43838ed vring_del_virtqueue
+EXPORT_SYMBOL_GPL vmlinux 0xc448ab90 xenbus_map_ring
+EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string
+EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xc57d8546 sdio_writel
+EXPORT_SYMBOL_GPL vmlinux 0xc591333d regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0xc5943371 crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0xc5ac9a31 dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xc5c93552 pci_find_next_capability
+EXPORT_SYMBOL_GPL vmlinux 0xc5cff204 dm_rh_get_state
+EXPORT_SYMBOL_GPL vmlinux 0xc5e3dddf wmi_get_event_data
+EXPORT_SYMBOL_GPL vmlinux 0xc60d077e vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc61505f1 usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0xc6baa323 acpi_smbus_read
+EXPORT_SYMBOL_GPL vmlinux 0xc6f21ce3 dm_dispatch_request
+EXPORT_SYMBOL_GPL vmlinux 0xc79f671e sata_scr_write_flush
+EXPORT_SYMBOL_GPL vmlinux 0xc7b51207 xenbus_unmap_ring_vfree
+EXPORT_SYMBOL_GPL vmlinux 0xc7bb1254 wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xc7bdf7c6 ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xc829c83f sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0xc8493964 device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain
+EXPORT_SYMBOL_GPL vmlinux 0xc871eb1a cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event
+EXPORT_SYMBOL_GPL vmlinux 0xc883b61f nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0xc8b1990f led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0xc8dfa346 i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource
+EXPORT_SYMBOL_GPL vmlinux 0xc91e0944 sata_pmp_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xc922a8e4 scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0xc927b599 sdio_release_host
+EXPORT_SYMBOL_GPL vmlinux 0xc93bd4c7 kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xc9547c54 inotify_add_watch
+EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist
+EXPORT_SYMBOL_GPL vmlinux 0xc95d7e87 device_rename
+EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xc9f8c366 ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0xca098221 ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xca39fedf ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0xca4527c8 acpi_pci_find_root
+EXPORT_SYMBOL_GPL vmlinux 0xca6bead1 cpci_hp_register_controller
+EXPORT_SYMBOL_GPL vmlinux 0xca7d401d ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end
+EXPORT_SYMBOL_GPL vmlinux 0xca85bb37 ata_sff_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcadabe4b usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0xcadaefef ata_acpi_stm
+EXPORT_SYMBOL_GPL vmlinux 0xcb22de38 fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0xcb4047b3 pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xcb68db67 vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0xcb8959c5 sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcc144b98 class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc62166a usb_get_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xcc6ff3be class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xcc7ebced usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0xcca0edc9 security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL vmlinux 0xcd3dee28 unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0xcda1e8a8 rt_mutex_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xcdc6e399 inode_add_to_lists
+EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xcdd2b4cd bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0xce111a28 debugfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0xce7c20be hypervisor_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xcea4b0c7 devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0xcf471818 sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback
+EXPORT_SYMBOL_GPL vmlinux 0xcfad843a sysdev_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcfe54821 usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg
+EXPORT_SYMBOL_GPL vmlinux 0xd028e247 usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd0331186 pm_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL vmlinux 0xd08ce534 wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xd0a04cd3 sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0xd0ba622a usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xd0be7365 usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd0c70652 __i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0xd0c861df __ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0xd0da1eb0 pci_get_hp_params
+EXPORT_SYMBOL_GPL vmlinux 0xd0eee566 usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xd11160ce ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0xd12ac59b olpc_ec_cmd
+EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd1b03688 tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xd1d62f40 tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0xd1e9fbbb pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL vmlinux 0xd202c39c register_virtio_device
+EXPORT_SYMBOL_GPL vmlinux 0xd21cf8b3 ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd229c869 tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0xd25a699a adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd2945d3e power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop
+EXPORT_SYMBOL_GPL vmlinux 0xd2caf8d0 pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0xd2f0946b ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0xd3880d47 gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd389db53 wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xd3ac3f18 sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0xd3c52c88 ata_bmdma_start
+EXPORT_SYMBOL_GPL vmlinux 0xd43a7bef __set_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0xd4409f94 set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL vmlinux 0xd49af42e br_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0xd4bec9b6 n_tty_inherit_ops
+EXPORT_SYMBOL_GPL vmlinux 0xd4cae4ca mce_chrdev_ops
+EXPORT_SYMBOL_GPL vmlinux 0xd53c03b5 fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0xd54005c0 wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xd544e902 pgprot_writecombine
+EXPORT_SYMBOL_GPL vmlinux 0xd54ee17a usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xd55a0376 inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xd57f3254 handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0xd5b07546 dm_rh_get_region_size
+EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0xd5d7ec34 da903x_write
+EXPORT_SYMBOL_GPL vmlinux 0xd6313f55 raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0xd6369bee skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0xd68326ff ata_sff_irq_on
+EXPORT_SYMBOL_GPL vmlinux 0xd6af64c4 pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL vmlinux 0xd6cc0ff4 ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xd6d7681a scsi_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id
+EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout
+EXPORT_SYMBOL_GPL vmlinux 0xd735a607 pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd774f6b1 smp_call_function_any
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd7822ede usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor
+EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0xd7df36db crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xd8003030 dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0xd81a7b06 platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0xd875660c user_describe
+EXPORT_SYMBOL_GPL vmlinux 0xd88b6c80 usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0xd8bd05bd regulator_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xd8d44203 bd_claim_by_disk
+EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0xd9242864 pci_configure_slot
+EXPORT_SYMBOL_GPL vmlinux 0xd944478c power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read
+EXPORT_SYMBOL_GPL vmlinux 0xd9fb0dd0 inet_diag_register
+EXPORT_SYMBOL_GPL vmlinux 0xd9ff79aa ata_bmdma_setup
+EXPORT_SYMBOL_GPL vmlinux 0xda0eb71d crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL vmlinux 0xda383a72 unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xda3cabf5 cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL vmlinux 0xda513e7e clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0xda526a81 cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0xdac8e5c2 __blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option
+EXPORT_SYMBOL_GPL vmlinux 0xdafc8c13 css_id
+EXPORT_SYMBOL_GPL vmlinux 0xdb01dcb6 noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xdb21e6af virtqueue_add_buf_gfp
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdb4c3d91 single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0xdb66e380 user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0xdba1ce66 transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xdbb25f5e acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL vmlinux 0xdc6c6dc4 __pm_runtime_put
+EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xdc9c7e89 __srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0xdcdd8941 isa_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xdd513dc4 pm_generic_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0xdd6e8643 sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL vmlinux 0xdd7a4fc4 usb_match_id
+EXPORT_SYMBOL_GPL vmlinux 0xdde0eed2 unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xdde67d60 dm_rh_flush
+EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain
+EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init
+EXPORT_SYMBOL_GPL vmlinux 0xde6d9cc4 led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0xdea89749 pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0xdec7cd83 driver_find
+EXPORT_SYMBOL_GPL vmlinux 0xdedc34bc dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0xdf394748 platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0xdf5fcf18 inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0xdf702204 fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xdf78bbd0 regulator_get_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xdfc27e6e inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0xdfeaa95a iomap_atomic_prot_pfn
+EXPORT_SYMBOL_GPL vmlinux 0xdfeb77ea relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name
+EXPORT_SYMBOL_GPL vmlinux 0xe00d50cc crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0xe04d288c usb_sg_wait
+EXPORT_SYMBOL_GPL vmlinux 0xe0565755 platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xe07e1ff0 crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xe08d018d ipv6_dup_options
+EXPORT_SYMBOL_GPL vmlinux 0xe094e0d5 ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xe110d9fa crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xe12b00fc sdio_writeb_readb
+EXPORT_SYMBOL_GPL vmlinux 0xe12bfe12 blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xe145a3f3 sdio_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xe1568d9c erst_read_next
+EXPORT_SYMBOL_GPL vmlinux 0xe15f6dfd inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0xe1cf7a58 pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xe2426710 wmi_evaluate_method
+EXPORT_SYMBOL_GPL vmlinux 0xe280a128 __inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe2c444c7 ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL vmlinux 0xe2f3e0d5 hvc_poll
+EXPORT_SYMBOL_GPL vmlinux 0xe2f50824 screen_glyph
+EXPORT_SYMBOL_GPL vmlinux 0xe324093c br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0xe32ed39e adp5520_read
+EXPORT_SYMBOL_GPL vmlinux 0xe3983a16 ata_sff_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0xe3eae151 tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0xe40d8606 ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count
+EXPORT_SYMBOL_GPL vmlinux 0xe4695d7b perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0xe4885fb1 regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0xe49cf982 trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register
+EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL vmlinux 0xe4e202af blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges
+EXPORT_SYMBOL_GPL vmlinux 0xe5cda5a2 ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL vmlinux 0xe5f03524 bus_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xe6018207 sdio_claim_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe6164df2 sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport
+EXPORT_SYMBOL_GPL vmlinux 0xe63171d4 mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition
+EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe6739b7f cpuidle_disable_device
+EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe75cf02d blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xe763c97a platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0xe76b8402 skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0xe76d144e dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffd4f1 __pm_runtime_set_status
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr
+EXPORT_SYMBOL_GPL vmlinux 0xe8144b56 tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe88f2cef debugfs_create_u32
+EXPORT_SYMBOL_GPL vmlinux 0xe8a746d8 vring_transport_features
+EXPORT_SYMBOL_GPL vmlinux 0xe91fb293 ring_buffer_record_enable
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe94a9db6 inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe967d24a acpi_smbus_write
+EXPORT_SYMBOL_GPL vmlinux 0xe96b03b0 devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0xe9eb5f76 print_context_stack_bp
+EXPORT_SYMBOL_GPL vmlinux 0xe9f1ddf3 eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0xe9f49c75 tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea118e7e usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea1fd735 crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xea2d3656 da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xea60e7e6 wm8350_gpio_config
+EXPORT_SYMBOL_GPL vmlinux 0xea7a9f14 ata_port_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0xeaa3f6f2 sdio_release_irq
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeaf833d5 get_device
+EXPORT_SYMBOL_GPL vmlinux 0xeb32d80d rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xeb51e018 mmput
+EXPORT_SYMBOL_GPL vmlinux 0xeb83a113 regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xebc666b7 get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0xebd61475 seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0xebe9856d ata_dummy_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xebeeae76 debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del
+EXPORT_SYMBOL_GPL vmlinux 0xec3f7dba unregister_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0xec416572 simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0xec4b5501 spi_write_then_read
+EXPORT_SYMBOL_GPL vmlinux 0xece8602c bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0xed80b9ac usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeda694de register_posix_clock
+EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xede38c84 usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check
+EXPORT_SYMBOL_GPL vmlinux 0xee5c4b76 platform_device_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request
+EXPORT_SYMBOL_GPL vmlinux 0xef20fdb6 pm_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xef3c24ff regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0xef3c6674 sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xef6acff6 ata_host_resume
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xefa3432c input_ff_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xefce2a4f ata_do_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xefe21106 snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0xefef0909 register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0xf009f975 dm_rh_delay
+EXPORT_SYMBOL_GPL vmlinux 0xf02ae5fb usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL vmlinux 0xf06c1cc7 unregister_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0xf135812d __create_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0xf1562a6d xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0xf175aa34 get_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf19b0eef led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0xf1b69a66 tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0xf1b92bc7 perf_arch_fetch_caller_regs
+EXPORT_SYMBOL_GPL vmlinux 0xf1f69beb ab8500_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xf21970ac sfi_mrtc_array
+EXPORT_SYMBOL_GPL vmlinux 0xf23a5da5 crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0xf25efd7e locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0xf267705d vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0xf27e8de8 usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0xf2bb75ee class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options
+EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0xf3163639 usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0xf345f67e regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf34d62d2 find_module
+EXPORT_SYMBOL_GPL vmlinux 0xf392cca0 attribute_container_register
+EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf3bfded6 dm_rh_dirty_log
+EXPORT_SYMBOL_GPL vmlinux 0xf3c1fa25 ata_noop_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0xf3c7a300 cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0xf3fdf65f register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0xf41bfd95 usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xf44db1b2 virtqueue_disable_cb
+EXPORT_SYMBOL_GPL vmlinux 0xf48c6f67 crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf5335d8f bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xf536e9cb ata_scsi_simulate
+EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf559d2fa free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0xf5685537 ata_sff_dma_pause
+EXPORT_SYMBOL_GPL vmlinux 0xf5778e2a debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0xf57dc90d __css_put
+EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf5a69c51 platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf5b47378 platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0xf5bbd2ed tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id
+EXPORT_SYMBOL_GPL vmlinux 0xf69b3650 usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL vmlinux 0xf6b6863f crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0xf6d24ca7 vma_kernel_pagesize
+EXPORT_SYMBOL_GPL vmlinux 0xf6e41369 inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather
+EXPORT_SYMBOL_GPL vmlinux 0xf70274d6 get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xf71fd3d9 blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0xf7843b28 dev_attr_em_message_type
+EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error
+EXPORT_SYMBOL_GPL vmlinux 0xf7ef4dde usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL vmlinux 0xf8079691 put_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0xf82414dc vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0xf82546f4 usb_bus_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0xf849115d file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf890c771 pci_block_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0xf8a75444 put_pid
+EXPORT_SYMBOL_GPL vmlinux 0xf8df62e5 ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit
+EXPORT_SYMBOL_GPL vmlinux 0xf906802b rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf92f3346 cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf93de90e ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xf95eaa0e led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0xf960ec6a relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match
+EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw
+EXPORT_SYMBOL_GPL vmlinux 0xf97a8ac8 sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xf9811602 adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xf9902dd8 usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xf9db9cfa dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0xf9e9ead2 hvc_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0xf9eeee5a usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register
+EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0xfa25b5f2 rtc_class_close
+EXPORT_SYMBOL_GPL vmlinux 0xfa36f3b9 bsg_unregister_queue
+EXPORT_SYMBOL_GPL vmlinux 0xfaa0bd2c pm_runtime_barrier
+EXPORT_SYMBOL_GPL vmlinux 0xface6a83 ata_eh_thaw_port
+EXPORT_SYMBOL_GPL vmlinux 0xfaf33877 __inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0xfaf8f2a3 ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xfb203761 fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0xfb2a3293 math_state_restore
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb91794a hvc_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfc09fb3b bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0xfc1a636c ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0xfc1ba8cc gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0xfc41a200 driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xfc4aed0d wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0xfc75374f regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xfc8ffed0 ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value
+EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref
+EXPORT_SYMBOL_GPL vmlinux 0xfd6c23dc scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable
+EXPORT_SYMBOL_GPL vmlinux 0xfd72832d ata_sas_port_init
+EXPORT_SYMBOL_GPL vmlinux 0xfdb60380 skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfdf1c1f6 device_move
+EXPORT_SYMBOL_GPL vmlinux 0xfe562d58 xenbus_unmap_ring
+EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine
+EXPORT_SYMBOL_GPL vmlinux 0xfe7d9fd6 device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xff084f59 srcu_init_notifier_head
+EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffce32e3 sdio_align_size
+EXPORT_SYMBOL_GPL vmlinux 0xffebba95 ata_std_qc_defer
diff --git a/debian.master/abi/2.6.35-2.3/i386/generic-pae.modules b/debian.master/abi/2.6.35-2.3/i386/generic-pae.modules
new file mode 100644
index 00000000000..cfcf836a2c9
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/i386/generic-pae.modules
@@ -0,0 +1,3063 @@
+3c359
+3c501
+3c503
+3c505
+3c507
+3c509
+3c515
+3c523
+3c527
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+53c700
+6pack
+8021q
+8139cp
+8139too
+8250_accent
+8250_boca
+8250_exar_st16c554
+8250_fourport
+8250_hub6
+8250_mca
+8255
+82596
+8390
+8390p
+88pm860x_bl
+88pm860x_onkey
+88pm860x-ts
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a100u2w
+a3d
+aacraid
+ab3100
+ab3100-otp
+abituguru
+abituguru3
+abyss
+ac3200
+ac97_bus
+acecad
+acenic
+acerhdf
+acer-wmi
+acl7225b
+acpi_pad
+acpiphp
+acpiphp_ibm
+acquirewdt
+act2000
+act200l-sir
+act_gact
+act_ipt
+actisys-sir
+act_mirred
+act_nat
+act_pedit
+act_police
+act_simple
+act_skbedit
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7414
+ad7418
+ad7877
+ad7879
+adcxx
+addi_apci_035
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2016
+addi_apci_2032
+addi_apci_2200
+addi_apci_3001
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+adfs
+adi
+adis16209
+adis16220
+adis16240
+adis16255
+adis16260
+adis16300
+adis16350
+adis16400
+adl_pci6208
+adl_pci7230
+adl_pci7296
+adl_pci7432
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm8211
+adm9240
+adp5520_bl
+adp5520-gpio
+adp5520-keys
+adp5588-gpio
+adp5588-keys
+adp8860_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7411
+adt7462
+adt7470
+adt7475
+adutux
+adv7170
+adv7175
+advansys
+advantechwdt
+adv_pci1710
+adv_pci1723
+adv_pci_dio
+aes_generic
+aes-i586
+af_802154
+af9013
+affs
+af_key
+af-rxrpc
+agpgart
+ah4
+ah6
+aha152x
+aha152x_cs
+aha1542
+aha1740
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airo
+airo_cs
+alauda
+ali-agp
+ali-ircc
+alim1535_wdt
+alim7101_wdt
+alphatrack
+altera_jtaguart
+altera_ps2
+altera_uart
+ambassador
+amc6821
+amd64-agp
+amd76x_edac
+amd76xrom
+amd8111e
+amd-k7-agp
+amd-rng
+amplc_dio200
+amplc_pc236
+amplc_pc263
+amplc_pci224
+amplc_pci230
+analog
+ansi_cprng
+anubis
+aoe
+apm
+appledisplay
+applesmc
+appletalk
+appletouch
+applicom
+ar7part
+ar9170usb
+arc4
+arcfb
+arcmsr
+arcnet
+arc-rawmode
+arc-rimi
+ark3116
+arkfb
+arptable_filter
+arp_tables
+arpt_mangle
+asb100
+asc7621
+asix
+asus_atk0110
+asus-laptop
+asus_oled
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at1700
+at24
+at25
+at76c50x-usb
+atbm8830
+aten
+ath
+ath3k
+ath5k
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ati-agp
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlas_btns
+atm
+atmel
+atmel_cs
+atmel_pci
+atmtcp
+atp
+atp870u
+atxp1
+aty128fb
+atyfb
+au0828
+au8522
+aufs
+authenc
+auth_rpcgss
+autofs
+autofs4
+av5100
+avma1_cs
+avm_cs
+avmfritz
+ax25
+axnet_cs
+b1
+b1dma
+b1isa
+b1pci
+b1pcmcia
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+bas_gigaset
+batman-adv
+baycom_epp
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcm203x
+bcm3510
+bcm5974
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfs
+bfusb
+binfmt_aout
+binfmt_misc
+block2mtd
+blowfish
+bluecard_cs
+bluetooth
+bnep
+bnx2
+bnx2i
+bnx2x
+bonding
+bpa10x
+bpck
+bpck6
+bpqether
+bq24022
+bq27x00_battery
+br2684
+bridge
+broadsheetfb
+bsd_comp
+bt3c_cs
+bt819
+bt856
+bt866
+bt878
+btcx-risc
+bt_drv
+btmrvl
+btmrvl_sdio
+btrfs
+btsdio
+bttv
+btuart_cs
+btusb
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+BusLogic
+bw-qcam
+c101
+c2port-duramar2150
+c4
+c67x00
+c6xdigio
+cachefiles
+cafe_ccic
+cafe_nand
+caif
+caif_serial
+caif_socket
+camellia
+can
+can-bcm
+can-dev
+can-raw
+capi
+capidrv
+capifs
+capmode
+carminefb
+cassini
+cast5
+cast6
+catc
+cb710
+cb710-mmc
+cb_das16_cs
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcidio
+cb_pcimdas
+cb_pcimdda
+cciss
+ccm
+cdc-acm
+cdc_eem
+cdc_ether
+cdc-phonet
+cdc_subset
+cdc-wdm
+ceph
+cfag12864b
+cfag12864bfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+ch
+ch341
+ch7006
+chipreg
+chnl_net
+cifs
+cirrusfb
+ck804xrom
+classmate-laptop
+clip
+cls_basic
+cls_flow
+cls_fw
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cm4000_cs
+cm4040_cs
+cmtp
+cnic
+cobra
+coda
+com20020
+com20020_cs
+com20020-isa
+com20020-pci
+com90io
+com90xx
+comedi
+comedi_bond
+comedi_fc
+comedi_parport
+comedi_test
+comm
+compal-laptop
+configfs
+contec_pci_dio
+core
+coretemp
+cosa
+cp210x
+cpcihp_generic
+cpcihp_zt5550
+cpia
+cpia2
+cpia_pp
+cpia_usb
+cpqarray
+cpqphp
+cpu5wdt
+cpuid
+cpu-notifier-error-inject
+c-qcam
+cramfs
+cr_bllcd
+crc32c
+crc32c-intel
+crc7
+crc-ccitt
+crc-itu-t
+crvml
+cryptd
+cryptoloop
+crypto_null
+crystalhd
+cs5345
+cs53l32a
+cs5535_gpio
+cs5535-gpio
+cs553x_nand
+cs89x0
+ct82c710
+ctr
+cts
+cuse
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx8800
+cx8802
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx88xx
+cxacru
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxt1e1
+cyber2000fb
+cyberjack
+cyclades
+cyclomx
+cycx_drv
+cypress_cy7c63
+cypress_m8
+cytherm
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+dabusb
+DAC960
+daqboard2000
+das08
+das08_cs
+das16
+das16m1
+das1800
+das6402
+das800
+db9
+dc395x
+dca
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dccp_probe
+dcdbas
+de2104x
+de4x5
+de600
+de620
+decnet
+deflate
+defxx
+dell-laptop
+dell-led
+dell_rbu
+dell-wmi
+denali
+depca
+des_generic
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dibx000_common
+digi_acceleport
+diskonchip
+display
+divacapi
+divadidd
+diva_idi
+diva_mnt
+divas
+dlci
+dlm
+dm1105
+dm9601
+dm-crypt
+dme1737
+dmfe
+dmm32at
+dm-queue-length
+dm-raid45
+dm-service-time
+dmx3191d
+dm-zero
+dnet
+dn_rtmsg
+doc2000
+doc2001
+doc2001plus
+docecc
+docprobe
+donauboe
+dpt_i2o
+drm
+drm_kms_helper
+ds1621
+ds1682
+ds2482
+ds2490
+ds2760_battery
+ds2782_battery
+ds3000
+dsbr100
+dscc4
+dss1_divert
+dst
+dst_ca
+dstr
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt3155v4l
+dt9812
+dtc
+dtl1_cs
+dtlk
+dummy
+dummy_hcd
+dv1394
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dw2102
+dvb-usb-friio
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-m920x
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dw_spi_pci
+dynapro
+e100
+e1000
+e1000e
+e2100
+e752x_edac
+e7xxx_edac
+earth-pt1
+eata
+ebt_802_3
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_ulog
+ebt_vlan
+echo
+econet
+edac_core
+edac_mce_amd
+eeepc-laptop
+eeepc-wmi
+eepro
+eeprom
+eeprom_93cx6
+eeti_ts
+eexpress
+efficeon-agp
+efs
+einj
+elo
+elsa_cs
+em28xx
+em28xx-alsa
+em28xx-dvb
+emc1403
+em_cmp
+emi26
+emi62
+em_meta
+em_nbyte
+empeg
+ems_pci
+ems_usb
+em_text
+emu10k1-gp
+em_u32
+enclosure
+eni
+enic
+epat
+epca
+epia
+epic100
+e_powersaver
+eql
+es3210
+esb2rom
+esi-sir
+esp4
+esp6
+et131x
+et61x251
+eth1394
+eth16i
+ethoc
+eurotechwdt
+evbug
+evtchn
+ewrk3
+exofs
+exportfs
+f71805f
+f71882fg
+f75375s
+fakephp
+farsync
+fat
+faulty
+fb_ddc
+fb_sys_fops
+fcoe
+fcrypt
+fd_mcs
+fdomain
+fdomain_cs
+fealnx
+ff-memless
+firedtv
+firestream
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+fit2
+fit3
+fl512
+floppy
+fm801-gp
+fmvj18x_cs
+fnic
+forcedeth
+fore_200e
+freevxfs
+friq
+frpw
+fsam7400
+fscache
+fschmd
+ftdi-elan
+ftdi_sio
+ftl
+fujitsu-laptop
+fujitsu_ts
+funsoft
+g450_pll
+g760a
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+g_audio
+g_cdc
+gcm
+gdth
+generic
+generic_bl
+gen_probe
+geode-aes
+geode-rng
+g_ether
+gf128mul
+gf2k
+g_ffs
+g_file_storage
+gfs2
+ghash-generic
+ghes
+g_hid
+gigaset
+girbil-sir
+gl518sm
+gl520sm
+gl620a
+gluebi
+g_mass_storage
+g_midi
+g_NCR5380
+g_NCR5380_mmio
+g_nokia
+go7007
+go7007-usb
+gpio-addr-flash
+gpio_keys
+gpio_mouse
+gpio_vbus
+g_printer
+grip
+grip_mp
+gsc_hpdi
+g_serial
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_stk014
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_tv8532
+gspca_vc032x
+gspca_zc3xx
+gtco
+guillemot
+gunze
+g_webcam
+gx1fb
+gxfb
+g_zero
+hamachi
+hampshire
+hangcheck-timer
+hci_uart
+hci_vhci
+hdaps
+hdlc
+hdlc_cisco
+hdlcdrv
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdpvr
+he
+hecubafb
+hed
+hexium_gemini
+hexium_orion
+hfc4s8s_l1
+hfcmulti
+hfcpci
+hfcsusb
+hfc_usb
+hfs
+hfsplus
+hgafb
+hid
+hid-3m-pct
+hid-a4tech
+hid-apple
+hid-belkin
+hid-cando
+hid-cherry
+hid-chicony
+hid-cypress
+hid-drff
+hid-egalax
+hid-ezkey
+hid-gaff
+hid-gyration
+hid-kensington
+hid-kye
+hid-logitech
+hid-magicmouse
+hid-microsoft
+hid-monterey
+hid-mosart
+hid-ntrig
+hid-ortek
+hidp
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-prodikeys
+hid-quanta
+hid-roccat
+hid-roccat-kone
+hid-samsung
+hid-sjoy
+hid-sony
+hid-stantum
+hid-sunplus
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-wacom
+hid-zpff
+hid-zydacron
+hifn_795x
+hisax
+hisax_fcpcipnp
+hisax_isac
+hisax_st5481
+hopper
+horizon
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hostess_sv11
+hp
+hp100
+hp4x
+hp_accel
+hpfs
+hpilo
+hp-plus
+hpsa
+hptiop
+hp-wmi
+hso
+htc-pasic3
+htcpen
+hv_blkvsc
+hv_netvsc
+hv_storvsc
+hv_utils
+hv_vmbus
+hwa-hc
+hwa-rc
+hwmon-vid
+hysdn
+i1480-dfu-usb
+i1480-est
+i1480u-wlp
+i2400m
+i2400m-sdio
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-algo-pcf
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd756-s4882
+i2c-amd8111
+i2c-dev
+i2c-gpio
+i2c-i801
+i2c-isch
+i2c-matroxfb
+i2c-nforce2
+i2c-nforce2-s4985
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-isa
+i2c-pca-platform
+i2c-piix4
+i2c-scmi
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-xiic
+i2o_block
+i2o_bus
+i2o_config
+i2o_core
+i2o_proc
+i2o_scsi
+i3000_edac
+i3200_edac
+i5000_edac
+i5100_edac
+i5400_edac
+i5k_amb
+i6300esb
+i7core_edac
+i810
+i810fb
+i82092
+i82365
+i82860_edac
+i82875p_edac
+i82975x_edac
+i830
+i8k
+i915
+ib700wdt
+ib_addr
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_mad
+ibmaem
+ibmasm
+ibmasr
+ibmcam
+ibmlana
+ibmmca
+ibmpex
+ibmphp
+ib_mthca
+ibmtr
+ibmtr_cs
+ib_sa
+ib_srp
+ib_ucm
+ib_umad
+ib_uverbs
+ichxrom
+icn
+icp_multi
+ics932s401
+idmouse
+idt77252
+ieee1394
+ieee802154
+ifb
+iforce
+igb
+igbvf
+iio-trig-gpio
+iio-trig-periodic-rtc
+ii_pci20kc
+ili9320
+imm
+imon
+in2000
+industrialio
+inexio
+inftl
+initio
+inport
+input-polldev
+int51x1
+intel-agp
+intel_idle
+intel_menlow
+intel-rng
+intel_vr_nor
+interact
+ioatdma
+ioc4
+io_edgeport
+io_ti
+iowarrior
+ip2
+ip6_queue
+ip6table_filter
+ip6table_mangle
+ip6table_raw
+ip6_tables
+ip6table_security
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_LOG
+ip6t_mh
+ip6t_REJECT
+ip6t_rt
+ip6_tunnel
+ipaq
+ipcomp
+ipcomp6
+ipddp
+ipg
+ip_gre
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_watchdog
+ip_queue
+ipr
+ips
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+ip_tables
+iptable_security
+ipt_addrtype
+ipt_ah
+ipt_CLUSTERIP
+ipt_ecn
+ipt_ECN
+ipt_LOG
+ipt_MASQUERADE
+ipt_NETMAP
+ipt_REDIRECT
+ipt_REJECT
+ipt_ULOG
+ip_vs
+ip_vs_dh
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_nq
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ipw
+ipw2100
+ipw2200
+ipwireless
+ipx
+ircomm
+ir-common
+ircomm-tty
+ir-core
+irda
+irda-usb
+ir-jvc-decoder
+ir-kbd-i2c
+irlan
+ir-nec-decoder
+irnet
+ir-rc5-decoder
+ir-rc6-decoder
+ir-sony-decoder
+irtty-sir
+ir-usb
+iscsi_ibft
+iscsi_tcp
+iscsi_trgt
+isdn
+isdn_bsdcomp
+isdnhdlc
+isight_firmware
+isl29003
+isl6405
+isl6421
+isl6423
+isofs
+isp116x-hcd
+isp1362-hcd
+isp1760
+istallion
+it87
+it8712f_wdt
+it8761e_gpio
+it87_wdt
+iTCO_vendor_support
+iTCO_wdt
+itd1000
+iuu_phoenix
+ivtv
+ivtvfb
+iw_c2
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwlagn
+iwlcore
+iwmc3200top
+iwmc3200wifi
+ixgb
+ixgbe
+ixgbevf
+ixj
+ixj_pcmcia
+janz-cmodio
+janz-ican3
+janz-ttl
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsm
+k10temp
+k8temp
+kafs
+kaweth
+kb3886_bl
+kbic
+kbtab
+kcomedilib
+ke_counter
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+khazad
+kingsun-sir
+kl5kusb105
+kobil_sct
+konicawc
+ks0108
+ks0127
+ks8842
+ks8851
+ks8851_mll
+ks959-sir
+ksdazzle-sir
+ksz884x
+ktti
+kvaser_pci
+kvm
+kvm-amd
+kvm-intel
+kxsd9
+kyrofb
+l1oip
+l2cap
+l2tp_core
+l2tp_debugfs
+l2tp_ppp
+l440gx
+l4f00242t03
+l64781
+lanai
+lance
+lanstreamer
+lapb
+lapbether
+lcd
+ldusb
+lec
+led-class
+leds-88pm860x
+leds-adp5520
+leds-alix2
+leds-bd2802
+leds-da903x
+leds-dac124s085
+leds-gpio
+leds-lp3944
+leds-lt3593
+leds-mc13783
+leds-net48xx
+leds-net5501
+leds-pca9532
+leds-pca955x
+leds-regulator
+leds-ss4200
+leds-wm831x-status
+leds-wm8350
+leds-wrap
+ledtrig-backlight
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-timer
+legousbtower
+lgdt3305
+lgdt330x
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libcrc32c
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libosd
+libsas
+libsrp
+lightning
+line6usb
+linear
+lirc_atiusb
+lirc_bt829
+lirc_dev
+lirc_ene0100
+lirc_i2c
+lirc_igorplugusb
+lirc_imon
+lirc_it87
+lirc_ite8709
+lirc_mceusb
+lirc_sasem
+lirc_serial
+lirc_sir
+lirc_streamzap
+lirc_ttusbir
+lis3l02dq
+lis3lv02d
+lis3lv02d_i2c
+litelink-sir
+lkkbd
+llc2
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95241
+lmc
+lms283gf05
+lnbp21
+lne390
+lockd
+logibm
+lp
+lp3971
+lp486e
+lpc_sch
+lpddr_cmds
+lpfc
+lrw
+ltc4215
+ltc4245
+ltpc
+ltv350qv
+lxfb
+lzo
+lzo_compress
+m25p80
+m52790
+ma600-sir
+mac80211
+mac80211_hwsim
+machzwd
+macmodes
+macvlan
+madgemc
+magellan
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+matrix_keypad
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_DAC1064
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+matroxfb_Ti3026
+matrox_w1
+max1111
+max1363
+max1586
+max1619
+max17040_battery
+max2165
+max3100
+max6650
+max6875
+max7300
+max7301
+max730x
+max732x
+max7359_keypad
+max8649
+max8660
+max8925_bl
+max8925_onkey
+max8925_power
+max8925-regulator
+mb862xxfb
+mb862xxfb_accel
+mb86a16
+mbp_nvidia_bl
+mc13783-adc
+mc13783-core
+mc13783-regulator
+mc13783_ts
+mc33880
+mc44s803
+mce-inject
+mce-xeon75xx
+mcp2120-sir
+mcp23s08
+mcp251x
+mcs5000_ts
+mcs7780
+mcs7830
+mct_u232
+md4
+mdacon
+mdc800
+mdio
+me4000
+me_daq
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mem2mem_testdev
+memrar
+memstick
+metronomefb
+meye
+mga
+michael_mic
+micrel
+microcode
+microtek
+mii
+minix
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+mite
+mixcomwd
+mk712
+mkiss
+mlx4_core
+mlx4_en
+mlx4_ib
+mmc_block
+mos7720
+mos7840
+moto_modem
+moxa
+mpc624
+mpoa
+mpt2sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+msdos
+msi-laptop
+msi-wmi
+msp3400
+mspro_block
+msr
+mt2060
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt9m001
+mt9m111
+mt9t031
+mt9t112
+mt9v011
+mt9v022
+mtd
+mtd_blkdevs
+mtdblock
+mtdblock_ro
+mtdchar
+mtdconcat
+mtd_dataflash
+mtd_nandecctest
+mtd_oobtest
+mtdoops
+mtd_pagetest
+mtdram
+mtd_readtest
+mtd_speedtest
+mtd_stresstest
+mtd_subpagetest
+mtd_torturetest
+mtouch
+multipath
+multiq3
+mvsas
+mwave
+mwl8k
+mxb
+mxl5005s
+mxl5007t
+mxser
+myri10ge
+n2
+n411
+nand
+nand_ecc
+nand_ids
+nandsim
+natsemi
+navman
+nbd
+ncpfs
+NCR53c406a
+NCR_D700
+NCR_Q720_mod
+ndiswrapper
+ne
+ne2
+ne2k-pci
+ne3210
+neofb
+net1080
+netconsole
+netjet
+netrom
+netsc520
+nettel
+netxen_nic
+newtonkbd
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_ipv4
+nf_conntrack_ipv6
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_proto_dccp
+nf_conntrack_proto_gre
+nf_conntrack_proto_sctp
+nf_conntrack_proto_udplite
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_proto_dccp
+nf_nat_proto_gre
+nf_nat_proto_sctp
+nf_nat_proto_udplite
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nfnetlink
+nfnetlink_log
+nfnetlink_queue
+nfs
+nfs_acl
+nfsd
+nftl
+nf_tproxy_core
+ngene
+n_hdlc
+ni52
+ni65
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_at_a2150
+ni_at_ao
+ni_atmio
+ni_atmio16d
+nicstar
+ni_daq_700
+ni_daq_dio24
+ni_labpc
+ni_labpc_cs
+nilfs2
+ni_mio_cs
+ni_pcidio
+ni_pcimio
+ni_tio
+ni_tiocmd
+niu
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp437
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+nop-usb-xceiv
+nouveau
+nozomi
+n_r3964
+ns558
+ns83820
+nsc_gpio
+nsc-ircc
+nsp32
+nsp_cs
+ntfs
+nvidia-agp
+nvidiafb
+nvram
+nxt200x
+nxt6000
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stackglue
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ohci1394
+old_belkin-sir
+olpc_battery
+olympic
+omfs
+omnibook
+omninet
+on20
+on26
+onenand
+onenand_sim
+opencores-kbd
+oprofile
+opticon
+option
+or51132
+or51211
+orinoco
+orinoco_cs
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+osd
+osdblk
+osst
+oti6858
+output
+ov7670
+ov772x
+ov9640
+ovcamchip
+oxu210hp-hcd
+p4-clockmod
+p54common
+p54pci
+p54spi
+p54usb
+p8023
+padlock-aes
+padlock-sha
+panasonic-laptop
+panel
+paride
+parkbd
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+pas16
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cs5520
+pata_cs5530
+pata_cs5535
+pata_cs5536
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_isapnp
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pcmcia
+pata_pdc2027x
+pata_pdc202xx_old
+pata_qdi
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sc1200
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sl82c105
+pata_triflex
+pata_via
+pata_winbond
+pbe5
+pc110pad
+pc87360
+pc8736x_gpio
+pc87413_wdt
+pc87427
+pca953x
+pcbc
+pcbit
+pcc-cpufreq
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf857x
+pcf8591
+pci
+pci200syn
+pcilynx
+pcips2
+pci-stub
+pcl711
+pcl724
+pcl725
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcm3730
+pcmad
+pcmcia
+pcmcia_core
+pcmciamtd
+pcmcia_rsrc
+pcm_common
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcnet_cs
+pcrypt
+pcspkr
+pcwd
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pegasus
+penmount
+pf
+pg
+phantom
+phison
+phonedev
+phonet
+phram
+physmap
+pktgen
+pl2303
+platform_lcd
+plat_nand
+plat-ram
+plip
+plusb
+pluto2
+plx_pci
+pm2fb
+pm3fb
+pm8001
+pmc551
+pmcraid
+pms
+pn_pep
+poc
+pohmelfs
+poseidon
+powermate
+power_meter
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+pppoatm
+pppoe
+pppox
+ppp_synctty
+pps_core
+pps-ldisc
+prism2_usb
+prism54
+progear_bl
+proteon
+psmouse
+pt
+pvrusb2
+pwc
+qcaux
+qcserial
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas
+qlogicfas408
+qnx4
+qt1010
+quatech_daqp_cs
+quatech_usb2
+quickcam_messenger
+quota_tree
+quota_v1
+quota_v2
+r128
+r8169
+r8187se
+r8192e_pci
+r8192se_pci
+r8192s_usb
+r8192u_usb
+r82600_edac
+r852
+r8a66597-hcd
+radeon
+radeonfb
+radio-aimslab
+radio-aztech
+radio-cadet
+radio-gemtek
+radio-gemtek-pci
+radio-i2c-si470x
+radio-maestro
+radio-maxiradio
+radio-miropcm20
+radio-mr800
+radio-rtrack2
+radio-sf16fmi
+radio-sf16fmr2
+radio-si4713
+radio-tea5764
+radio-terratec
+radio-timb
+radio-trust
+radio-typhoon
+radio-usb-si470x
+radio-zoltrix
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid6test
+raid_class
+ramoops
+ramzswap
+rar_register
+raw
+raw1394
+ray_cs
+rc-adstech-dvb-t-pci
+rc-apac-viewcomp
+rc-asus-pc39
+rc-ati-tv-wonder-hd-600
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avertv-303
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-empty
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv2
+rc-encore-enltv-fm53
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge-new
+rc-imon-mce
+rc-imon-pad
+rc-iodata-bctv7e
+rc-kaiomy
+rc-kworld-315u
+rc-kworld-plus-tv-analog
+rc-manli
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc5-hauppauge-new
+rc-rc5-tv
+rc-real-audio-220-32-keys
+rc-tbs-nec
+rc-terratec-cinergy-xs
+rc-tevii-nec
+rc-tt-1500
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-winfast
+rc-winfast-usbii-deluxe
+rdc321x-gpio
+rdc321x-southbridge
+rdma_cm
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+redboot
+reed_solomon
+reiserfs
+rfc1051
+rfc1201
+rfcomm
+rfd_ftl
+ring_sw
+rio500
+riscom8
+rivafb
+rj54n1cb0c
+rmd128
+rmd160
+rmd256
+rmd320
+rndis_host
+rndis_wlan
+rocket
+romfs
+rose
+rotary_encoder
+rpcsec_gss_krb5
+rpcsec_gss_spkm3
+rrunner
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800pci
+rt2800usb
+rt2860sta
+rt2870sta
+rt2x00lib
+rt2x00pci
+rt2x00usb
+rt61pci
+rt73usb
+rtc-ab3100
+rtc-ab8500
+rtc-bq32k
+rtc-bq4802
+rtc-ds1286
+rtc-ds1305
+rtc-ds1307
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1742
+rtc-ds3234
+rtc-fm3130
+rtc-isl1208
+rtc-m41t80
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max8925
+rtc-mc13783
+rtc-msm6242
+rtc-pcf2123
+rtc-pcf50633
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-stk17ta8
+rtc-test
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtd520
+rti800
+rti802
+rtl8150
+rtl8180
+rtl8187
+rxkad
+s1d13xxxfb
+s2250
+s2250-loader
+s2255drv
+s2io
+s3fb
+s526
+s5h1409
+s5h1411
+s5h1420
+s626
+s6e63m0
+saa5246a
+saa5249
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+salsa20_generic
+salsa20-i586
+samsung-laptop
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savage
+savagefb
+sb1000
+sbc60xxwdt
+sbc7240_wdt
+sbc8360
+sbc_epx_c3
+sbc_fitpc2_wdt
+sbc_gxx
+sbni
+sbp2
+sc
+sc1200wdt
+sc520cdp
+sc520_wdt
+sc92031
+sca3000
+scb2_flash
+scc
+sch311x_wdt
+sch_atm
+sch_cbq
+sch_drr
+sch_dsmark
+sch_gpio
+sch_gred
+sch_hfsc
+sch_htb
+sch_ingress
+sch_multiq
+sch_netem
+sch_prio
+sch_red
+sch_sfq
+sch_tbf
+sch_teql
+sco
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_tgt
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_srp
+scsi_wait_scan
+sctp
+sctp_probe
+scx200
+scx200_acb
+scx200_docflash
+scx200_gpio
+scx200_hrt
+scx200_i2c
+scx200_wdt
+sdhci
+sdhci-pci
+sdhci-pltfm
+sdio_uart
+sdla
+sdricoh_cs
+se401
+sealevel
+sedlbauer_cs
+seed
+seeq8005
+sep_driver
+seqiv
+ser_gigaset
+serial2002
+serial_cs
+serio_raw
+sermouse
+serpent
+serport
+serqt_usb2
+ses
+sfc
+sha1_generic
+sha256_generic
+sha512_generic
+shpchp
+sht15
+si21xx
+si4713-i2c
+sidewinder
+siemens_mpi
+sierra
+sierra_net
+sim710
+sir-dev
+sis
+sis190
+sis5595
+sis900
+sis-agp
+sisfb
+sisusbvga
+sit
+sja1000
+sja1000_isa
+sja1000_platform
+skel
+skfp
+skge
+skisa
+sky2
+sl811_cs
+sl811-hcd
+slicoss
+slip
+slram
+sm501
+sm501fb
+sm7xx
+smbfs
+smc9194
+smc91c92_cs
+smc-mca
+sm_common
+smctr
+smc-ultra
+smc-ultra32
+smsc37b787_wdt
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc9420
+smsc95xx
+smsc-ircc2
+smsdvb
+smsmdtv
+smssdio
+smsusb
+sn9c102
+snd
+snd-ac97-codec
+snd-ad1816a
+snd-ad1848
+snd-ad1889
+snd-adlib
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-als100
+snd-als300
+snd-als4000
+snd-asihpi
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt2320
+snd-azt3328
+snd-bt87x
+snd-ca0106
+snd-cmi8330
+snd-cmipci
+snd-cs4231
+snd-cs4236
+snd-cs4281
+snd-cs46xx
+snd-cs5530
+snd-cs5535audio
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emu8000-synth
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1688
+snd-es1688-lib
+snd-es18xx
+snd-es1938
+snd-es1968
+snd-fm801
+snd-gina20
+snd-gina24
+snd-gusclassic
+snd-gusextreme
+snd-gus-lib
+snd-gusmax
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-atihdmi
+snd-hda-codec-ca0110
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-idt
+snd-hda-codec-intelhdmi
+snd-hda-codec-nvhdmi
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hifier
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel8x0
+snd-intel8x0m
+snd-interwave
+snd-interwave-stb
+snd-jazz16
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-miro
+snd-mixart
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-msnd-classic
+snd-msnd-lib
+snd-msnd-pinnacle
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3sa2
+snd-opl3-synth
+snd-opl4-lib
+snd-opl4-synth
+snd-opti92x-ad1848
+snd-opti92x-cs4231
+snd-opti93x
+snd-oxygen
+snd-oxygen-lib
+snd-page-alloc
+snd-pcm
+snd-pcsp
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-sb16
+snd-sb16-csp
+snd-sb16-dsp
+snd-sb8
+snd-sb8-dsp
+snd-sbawe
+snd-sb-common
+snd-sc6000
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-sgalaxy
+snd-sis7019
+snd-soc-ad1836
+snd-soc-ad193x
+snd-soc-ad73311
+snd-soc-ads117x
+snd-soc-ak4104
+snd-soc-ak4535
+snd-soc-ak4642
+snd-soc-ak4671
+snd-soc-core
+snd-soc-cs4270
+snd-soc-da7210
+snd-soc-l3
+snd-soc-max9877
+snd-soc-pcm3008
+snd-soc-spdif
+snd-soc-ssm2602
+snd-soc-tlv320aic23
+snd-soc-tlv320aic26
+snd-soc-tlv320aic3x
+snd-soc-tlv320dac33
+snd-soc-tpa6130a2
+snd-soc-twl4030
+snd-soc-twl6040
+snd-soc-uda134x
+snd-soc-uda1380
+snd-soc-wm2000
+snd-soc-wm8350
+snd-soc-wm8400
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8727
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8776
+snd-soc-wm8900
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8940
+snd-soc-wm8955
+snd-soc-wm8960
+snd-soc-wm8961
+snd-soc-wm8971
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8988
+snd-soc-wm8990
+snd-soc-wm8993
+snd-soc-wm8994
+snd-soc-wm9081
+snd-soc-wm9090
+snd-soc-wm-hubs
+snd-sonicvibes
+snd-sscape
+snd-tea575x-tuner
+snd-tea6330t
+snd-timer
+snd-trident
+snd-usb-audio
+snd-usb-caiaq
+snd-usbmidi-lib
+snd-usb-us122l
+snd-usb-usx2y
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx222
+snd-vx-lib
+snd-vxpocket
+snd-wavefront
+snd-wss-lib
+snd-ymfpci
+soc_camera
+soc_camera_platform
+soc_mediabus
+softdog
+solos-pci
+sony-laptop
+sonypi
+soundcore
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+specialix
+spectrum_cs
+speedfax
+speedtch
+spi_bitbang
+spi_butterfly
+spidev
+spi_gpio
+spi_lm70llp
+squashfs
+ssb
+ssfdc
+sst25l
+sstfb
+ssv_dnp
+st
+stallion
+starfire
+stb0899
+stb6000
+stb6100
+st_drv
+stex
+stinger
+stir4200
+stkwebcam
+stowaway
+stp
+stradis
+stv0288
+stv0297
+stv0299
+stv0900
+stv090x
+stv6110
+stv6110x
+stv680
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+svcrdma
+svgalib
+sworks-agp
+sx8
+sym53c416
+sym53c500_cs
+symbolserial
+synaptics_i2c
+synclink
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t128
+t1isa
+t1pci
+tc1100-wmi
+tca6416-keypad
+tcic
+tcp_bic
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_probe
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcrypt
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10086
+tda18271
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tdfx
+tdfxfb
+tdo24m
+tea
+tea5761
+tea5767
+tea6415c
+tea6420
+tef6862
+tehuti
+tekram-sir
+teles_cs
+test_power
+tg3
+tgr192
+thinkpad_acpi
+thmc50
+ti_dac7512
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timb_dma
+timberdale
+timbuart
+timeriomem-rng
+tipc
+ti_usb_3410_5052
+tlan
+tlclk
+tle62x0
+tm6000
+tm6000-alsa
+tmdc
+tmiofb
+tmp102
+tmp401
+tmp421
+tms380tr
+tmscsim
+tmspci
+toim3232-sir
+topstar-laptop
+toshiba_acpi
+toshiba_bluetooth
+touchit213
+touchright
+touchwin
+tpm
+tpm_atmel
+tpm_bios
+tpm_infineon
+tpm_nsc
+tpm_tis
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+trancevibrator
+tranzport
+tridentfb
+ts5500_flash
+ts_bm
+tsc2007
+ts_fsm
+ts_kmp
+tsl2550
+tsl2563
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+tua6100
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp5150
+tw9910
+twidjoy
+twl4030-gpio
+twl4030_keypad
+twl4030-pwrbutton
+twl4030-usb
+twl4030-vibra
+twl4030_wdt
+twofish
+twofish_common
+twofish-i586
+typhoon
+u132-hcd
+u14-34f
+uartlite
+ubi
+ubifs
+ucb1400_core
+ucb1400_ts
+udf
+udlfb
+ueagle-atm
+ufs
+uinput
+uio
+uio_aec
+uio_cif
+uio_netx
+uio_pci_generic
+uio_pdrv
+uio_pdrv_genirq
+uio_sercos3
+uli526x
+ultracam
+ultrastor
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-sddr09
+ums-sddr55
+ums-usbat
+unioxx5
+upd64031a
+upd64083
+uPD98402
+usb8xxx
+usbatm
+usb_debug
+usbdux
+usbduxfast
+usb_gigaset
+usbhid
+usbip
+usbip_common_mod
+usblcd
+usbled
+usblp
+usbnet
+usbserial
+usbsevseg
+usb-storage
+usbtest
+usbtmc
+usbtouchscreen
+usbvideo
+usbvision
+usb_wwan
+userspace-consumer
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l1-compat
+v4l2-common
+v4l2-int-device
+v4l2-mem2mem
+vcan
+ves1820
+ves1x93
+vesafb
+veth
+vfat
+vga16fb
+vgastate
+vgg2432a4
+vhci-hcd
+vhost_net
+via
+via686a
+via-agp
+via-cputemp
+viafb
+via-ircc
+via-rhine
+via-rng
+via-sdmmc
+via-velocity
+vicam
+video
+video1394
+videobuf-core
+videobuf-dma-contig
+videobuf-dma-sg
+videobuf-dvb
+videobuf-vmalloc
+videocodec
+videodev
+virtio_balloon
+virtio_console
+virtio-rng
+virtual
+visor
+vivopay-serial
+vlsi_ir
+vmac
+vme
+vme_ca91cx42
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmlfb
+vmwgfx
+vmw_pvscsi
+vmxnet3
+vp27smpx
+vpx3220
+vsxxxaa
+vt1211
+vt6656_stage
+vt8231
+vt8623fb
+vxge
+w1_bq27000
+w1_ds2431
+w1_ds2433
+w1_ds2760
+w1-gpio
+w1_smem
+w1_therm
+w35und
+w6692
+w83627ehf
+w83627hf
+w83627hf_wdt
+w83697hf_wdt
+w83697ug_wdt
+w83781d
+w83791d
+w83792d
+w83793
+w83877f_wdt
+w83977af_ir
+w83977f_wdt
+w83l785ts
+w83l786ng
+w9966
+w9968cf
+wacom
+wacom_w8001
+wafer5823wdt
+walkera0701
+wanrouter
+wanxl
+warrior
+wbsd
+wd
+wd7000
+wdt
+wdt_pci
+whci
+whci-hcd
+whc-rc
+whiteheat
+wimax
+winbond-840
+winbond-cir
+wire
+wis-ov7640
+wis-saa7113
+wis-saa7115
+wis-sony-tuner
+wistron_btns
+wis-tw2804
+wis-tw9903
+wis-uda1342
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1271
+wl1271_spi
+wl3501_cs
+wlags49_h25_cs
+wlags49_h2_cs
+wlp
+wm831x_backup
+wm831x_bl
+wm831x-dcdc
+wm831x-gpio
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x_power
+wm831x_wdt
+wm8350-gpiolib
+wm8350-hwmon
+wm8350_power
+wm8350-regulator
+wm8350_wdt
+wm8400-core
+wm8400-regulator
+wm8739
+wm8775
+wm8994-gpio
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusbcore
+wusb-wa
+x25
+x25_asy
+x38_edac
+xc5000
+xcbc
+xen-blkfront
+xen-fbfront
+xenfs
+xen-kbdfront
+xen-netfront
+xfrm4_mode_beet
+xfrm4_mode_transport
+xfrm4_mode_tunnel
+xfrm4_tunnel
+xfrm6_mode_beet
+xfrm6_mode_ro
+xfrm6_mode_transport
+xfrm6_mode_tunnel
+xfrm6_tunnel
+xfrm_ipcomp
+xfrm_user
+xfs
+xgifb
+xhci-hcd
+xirc2ps_cs
+xircom_cb
+xor
+xpad
+xprtrdma
+x_tables
+xt_CLASSIFY
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlimit
+xt_connmark
+xt_CONNSECMARK
+xt_conntrack
+xt_CT
+xt_dccp
+xt_dscp
+xt_DSCP
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_HL
+xt_iprange
+xtkbd
+xt_LED
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_NFLOG
+xt_NFQUEUE
+xt_NOTRACK
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_RATEEST
+xt_realm
+xt_recent
+xts
+xt_sctp
+xt_SECMARK
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_TCPMSS
+xt_tcpudp
+xt_TEE
+xt_time
+xt_TPROXY
+xt_TRACE
+xt_u32
+xusbatm
+xvmalloc
+yam
+yealink
+yellowfin
+yenta_socket
+z85230
+zatm
+zaurus
+zc0301
+zd1201
+zd1211rw
+zhenhua
+zio
+zl10036
+zl10039
+zl10353
+zlib
+zlib_deflate
+znet
+zr36016
+zr36050
+zr36060
+zr36067
+zr364xx
diff --git a/debian.master/abi/2.6.35-2.3/i386/generic.modules b/debian.master/abi/2.6.35-2.3/i386/generic.modules
new file mode 100644
index 00000000000..4337c808ec3
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/i386/generic.modules
@@ -0,0 +1,3064 @@
+3c359
+3c501
+3c503
+3c505
+3c507
+3c509
+3c515
+3c523
+3c527
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+53c700
+6pack
+8021q
+8139cp
+8139too
+8250_accent
+8250_boca
+8250_exar_st16c554
+8250_fourport
+8250_hub6
+8250_mca
+8255
+82596
+8390
+8390p
+88pm860x_bl
+88pm860x_onkey
+88pm860x-ts
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a100u2w
+a3d
+aacraid
+ab3100
+ab3100-otp
+abituguru
+abituguru3
+abyss
+ac3200
+ac97_bus
+acecad
+acenic
+acerhdf
+acer-wmi
+acl7225b
+acpi_pad
+acpiphp
+acpiphp_ibm
+acquirewdt
+act2000
+act200l-sir
+act_gact
+act_ipt
+actisys-sir
+act_mirred
+act_nat
+act_pedit
+act_police
+act_simple
+act_skbedit
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7414
+ad7418
+ad7877
+ad7879
+adcxx
+addi_apci_035
+addi_apci_1032
+addi_apci_1500
+addi_apci_1516
+addi_apci_1564
+addi_apci_16xx
+addi_apci_2016
+addi_apci_2032
+addi_apci_2200
+addi_apci_3001
+addi_apci_3120
+addi_apci_3501
+addi_apci_3xxx
+adfs
+adi
+adis16209
+adis16220
+adis16240
+adis16255
+adis16260
+adis16300
+adis16350
+adis16400
+adl_pci6208
+adl_pci7230
+adl_pci7296
+adl_pci7432
+adl_pci8164
+adl_pci9111
+adl_pci9118
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm8211
+adm9240
+adp5520_bl
+adp5520-gpio
+adp5520-keys
+adp5588-gpio
+adp5588-keys
+adp8860_bl
+adq12b
+ads7828
+ads7846
+ads7871
+adt7411
+adt7462
+adt7470
+adt7475
+adutux
+adv7170
+adv7175
+advansys
+advantechwdt
+adv_pci1710
+adv_pci1723
+adv_pci_dio
+aes_generic
+aes-i586
+af_802154
+af9013
+affs
+af_key
+af-rxrpc
+agpgart
+ah4
+ah6
+aha152x
+aha152x_cs
+aha1542
+aha1740
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aio_aio12_8
+aio_iiro_16
+aiptek
+aircable
+airo
+airo_cs
+alauda
+ali-agp
+ali-ircc
+alim1535_wdt
+alim7101_wdt
+alphatrack
+altera_jtaguart
+altera_ps2
+altera_uart
+ambassador
+amc6821
+amd64-agp
+amd76x_edac
+amd76xrom
+amd8111e
+amd-k7-agp
+amd-rng
+amplc_dio200
+amplc_pc236
+amplc_pc263
+amplc_pci224
+amplc_pci230
+analog
+ansi_cprng
+anubis
+aoe
+apm
+appledisplay
+applesmc
+appletalk
+appletouch
+applicom
+ar7part
+ar9170usb
+arc4
+arcfb
+arcmsr
+arcnet
+arc-rawmode
+arc-rimi
+ark3116
+arkfb
+arptable_filter
+arp_tables
+arpt_mangle
+asb100
+asc7621
+asix
+asus_atk0110
+asus-laptop
+asus_oled
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at1700
+at24
+at25
+at76c50x-usb
+atbm8830
+aten
+ath
+ath3k
+ath5k
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ati-agp
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atlas_btns
+atm
+atmel
+atmel_cs
+atmel_pci
+atmtcp
+atp
+atp870u
+atxp1
+aty128fb
+atyfb
+au0828
+au8522
+aufs
+authenc
+auth_rpcgss
+autofs
+autofs4
+av5100
+avma1_cs
+avm_cs
+avmfritz
+ax25
+axnet_cs
+b1
+b1dma
+b1isa
+b1pci
+b1pcmcia
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+bas_gigaset
+batman-adv
+baycom_epp
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcm203x
+bcm3510
+bcm5974
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfs
+bfusb
+binfmt_aout
+binfmt_misc
+block2mtd
+blowfish
+bluecard_cs
+bluetooth
+bnep
+bnx2
+bnx2i
+bnx2x
+bonding
+bpa10x
+bpck
+bpck6
+bpqether
+bq24022
+bq27x00_battery
+br2684
+bridge
+broadsheetfb
+bsd_comp
+bt3c_cs
+bt819
+bt856
+bt866
+bt878
+btcx-risc
+bt_drv
+btmrvl
+btmrvl_sdio
+btrfs
+btsdio
+bttv
+btuart_cs
+btusb
+budget
+budget-av
+budget-ci
+budget-core
+budget-patch
+BusLogic
+bw-qcam
+c101
+c2port-duramar2150
+c4
+c67x00
+c6xdigio
+cachefiles
+cafe_ccic
+cafe_nand
+caif
+caif_serial
+caif_socket
+camellia
+can
+can-bcm
+can-dev
+can-raw
+capi
+capidrv
+capifs
+capmode
+carminefb
+cassini
+cast5
+cast6
+catc
+cb710
+cb710-mmc
+cb_das16_cs
+cb_pcidas
+cb_pcidas64
+cb_pcidda
+cb_pcidio
+cb_pcimdas
+cb_pcimdda
+cciss
+ccm
+cdc-acm
+cdc_eem
+cdc_ether
+cdc-phonet
+cdc_subset
+cdc-wdm
+ceph
+cfag12864b
+cfag12864bfb
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+ch
+ch341
+ch7006
+chipreg
+chnl_net
+cifs
+cirrusfb
+ck804xrom
+classmate-laptop
+clip
+cls_basic
+cls_flow
+cls_fw
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cm4000_cs
+cm4040_cs
+cmtp
+cnic
+cobra
+coda
+com20020
+com20020_cs
+com20020-isa
+com20020-pci
+com90io
+com90xx
+comedi
+comedi_bond
+comedi_fc
+comedi_parport
+comedi_test
+comm
+compal-laptop
+configfs
+contec_pci_dio
+core
+coretemp
+cosa
+cp210x
+cpcihp_generic
+cpcihp_zt5550
+cpia
+cpia2
+cpia_pp
+cpia_usb
+cpqarray
+cpqphp
+cpu5wdt
+cpuid
+cpu-notifier-error-inject
+c-qcam
+cramfs
+cr_bllcd
+crc32c
+crc32c-intel
+crc7
+crc-ccitt
+crc-itu-t
+crvml
+cryptd
+cryptoloop
+crypto_null
+crystalhd
+cs5345
+cs53l32a
+cs5535_gpio
+cs5535-gpio
+cs553x_nand
+cs89x0
+ct82c710
+ctr
+cts
+cuse
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24123
+cx25821
+cx25821-alsa
+cx25840
+cx8800
+cx8802
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx88xx
+cxacru
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxt1e1
+cyber2000fb
+cyberjack
+cyclades
+cyclomx
+cycx_drv
+cypress_cy7c63
+cypress_m8
+cytherm
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+dabusb
+DAC960
+daqboard2000
+das08
+das08_cs
+das16
+das16m1
+das1800
+das6402
+das800
+db9
+dc395x
+dca
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dccp_probe
+dcdbas
+de2104x
+de4x5
+de600
+de620
+decnet
+deflate
+defxx
+dell-laptop
+dell-led
+dell_rbu
+dell-wmi
+denali
+depca
+des_generic
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dibx000_common
+digi_acceleport
+diskonchip
+display
+divacapi
+divadidd
+diva_idi
+diva_mnt
+divas
+dlci
+dlm
+dm1105
+dm9601
+dm-crypt
+dme1737
+dmfe
+dmm32at
+dm-queue-length
+dm-raid45
+dm-service-time
+dmx3191d
+dm-zero
+dnet
+dn_rtmsg
+doc2000
+doc2001
+doc2001plus
+docecc
+docprobe
+donauboe
+dpt_i2o
+drm
+drm_kms_helper
+ds1621
+ds1682
+ds2482
+ds2490
+ds2760_battery
+ds2782_battery
+ds3000
+dsbr100
+dscc4
+dss1_divert
+dst
+dst_ca
+dstr
+dt2801
+dt2811
+dt2814
+dt2815
+dt2817
+dt282x
+dt3000
+dt3155
+dt3155v4l
+dt9812
+dtc
+dtl1_cs
+dtlk
+dummy
+dummy_hcd
+dv1394
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dw2102
+dvb-usb-friio
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-m920x
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dw_spi_pci
+dynapro
+e100
+e1000
+e1000e
+e2100
+e752x_edac
+e7xxx_edac
+earth-pt1
+eata
+ebt_802_3
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_ulog
+ebt_vlan
+echo
+econet
+edac_core
+edac_mce_amd
+eeepc-laptop
+eeepc-wmi
+eepro
+eeprom
+eeprom_93cx6
+eeti_ts
+eexpress
+efficeon-agp
+efs
+einj
+elo
+elsa_cs
+em28xx
+em28xx-alsa
+em28xx-dvb
+emc1403
+em_cmp
+emi26
+emi62
+em_meta
+em_nbyte
+empeg
+ems_pci
+ems_usb
+em_text
+emu10k1-gp
+em_u32
+enclosure
+eni
+enic
+epat
+epca
+epia
+epic100
+e_powersaver
+eql
+es3210
+esb2rom
+esi-sir
+esp4
+esp6
+et131x
+et61x251
+eth1394
+eth16i
+ethoc
+eurotechwdt
+evbug
+ewrk3
+exofs
+exportfs
+f71805f
+f71882fg
+f75375s
+fakephp
+farsync
+fat
+faulty
+fb_ddc
+fb_sys_fops
+fcoe
+fcrypt
+fd_mcs
+fdomain
+fdomain_cs
+fealnx
+ff-memless
+firedtv
+firestream
+firewire-core
+firewire-net
+firewire-ohci
+firewire-sbp2
+fit2
+fit3
+fl512
+floppy
+fm801-gp
+fmvj18x_cs
+fnic
+forcedeth
+fore_200e
+freevxfs
+friq
+frpw
+fsam7400
+fscache
+fschmd
+ftdi-elan
+ftdi_sio
+ftl
+fujitsu-laptop
+fujitsu_ts
+funsoft
+g450_pll
+g760a
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+g_audio
+g_cdc
+gcm
+gdth
+generic
+generic_bl
+gen_probe
+geode-aes
+geode-rng
+g_ether
+gf128mul
+gf2k
+g_ffs
+g_file_storage
+gfs2
+ghash-generic
+ghes
+g_hid
+gigaset
+girbil-sir
+gl518sm
+gl520sm
+gl620a
+gluebi
+g_mass_storage
+g_midi
+g_NCR5380
+g_NCR5380_mmio
+g_nokia
+go7007
+go7007-usb
+gpio-addr-flash
+gpio_keys
+gpio_mouse
+gpio_vbus
+g_printer
+grip
+grip_mp
+gsc_hpdi
+g_serial
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_stk014
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_tv8532
+gspca_vc032x
+gspca_zc3xx
+gtco
+guillemot
+gunze
+g_webcam
+gx1fb
+gxfb
+g_zero
+hamachi
+hampshire
+hangcheck-timer
+hci_uart
+hci_vhci
+hdaps
+hdlc
+hdlc_cisco
+hdlcdrv
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdpvr
+he
+hecubafb
+hed
+hexium_gemini
+hexium_orion
+hfc4s8s_l1
+hfcmulti
+hfcpci
+hfcsusb
+hfc_usb
+hfs
+hfsplus
+hgafb
+hid
+hid-3m-pct
+hid-a4tech
+hid-apple
+hid-belkin
+hid-cando
+hid-cherry
+hid-chicony
+hid-cypress
+hid-drff
+hid-egalax
+hid-ezkey
+hid-gaff
+hid-gyration
+hid-kensington
+hid-kye
+hid-logitech
+hid-magicmouse
+hid-microsoft
+hid-monterey
+hid-mosart
+hid-ntrig
+hid-ortek
+hidp
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-prodikeys
+hid-quanta
+hid-roccat
+hid-roccat-kone
+hid-samsung
+hid-sjoy
+hid-sony
+hid-stantum
+hid-sunplus
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-wacom
+hid-zpff
+hid-zydacron
+hifn_795x
+hisax
+hisax_fcpcipnp
+hisax_isac
+hisax_st5481
+hopper
+horizon
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hostess_sv11
+hp
+hp100
+hp4x
+hp_accel
+hpfs
+hpilo
+hp-plus
+hpsa
+hptiop
+hp-wmi
+hso
+htc-pasic3
+htcpen
+hv_blkvsc
+hv_netvsc
+hv_storvsc
+hv_utils
+hv_vmbus
+hwa-hc
+hwa-rc
+hwmon-vid
+hysdn
+i1480-dfu-usb
+i1480-est
+i1480u-wlp
+i2400m
+i2400m-sdio
+i2400m-usb
+i2c-algo-bit
+i2c-algo-pca
+i2c-algo-pcf
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd756-s4882
+i2c-amd8111
+i2c-dev
+i2c-gpio
+i2c-i801
+i2c-isch
+i2c-matroxfb
+i2c-nforce2
+i2c-nforce2-s4985
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-isa
+i2c-pca-platform
+i2c-piix4
+i2c-scmi
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-xiic
+i2o_block
+i2o_bus
+i2o_config
+i2o_core
+i2o_proc
+i2o_scsi
+i3000_edac
+i3200_edac
+i5000_edac
+i5100_edac
+i5400_edac
+i5k_amb
+i6300esb
+i7core_edac
+i810
+i810fb
+i82092
+i82365
+i82860_edac
+i82875p_edac
+i82975x_edac
+i830
+i8k
+i915
+ib700wdt
+ib_addr
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_mad
+ibmaem
+ibmasm
+ibmasr
+ibmcam
+ibmlana
+ibmmca
+ibmpex
+ibmphp
+ib_mthca
+ibmtr
+ibmtr_cs
+ib_sa
+ib_srp
+ib_ucm
+ib_umad
+ib_uverbs
+ichxrom
+icn
+icp_multi
+ics932s401
+idmouse
+idt77252
+ieee1394
+ieee802154
+ifb
+iforce
+igb
+igbvf
+iio-trig-gpio
+iio-trig-periodic-rtc
+ii_pci20kc
+ili9320
+imm
+imon
+in2000
+industrialio
+inexio
+inftl
+initio
+inport
+input-polldev
+int51x1
+intel-agp
+intel_idle
+intel_menlow
+intel-rng
+intel_vr_nor
+interact
+ioatdma
+ioc4
+io_edgeport
+io_ti
+iowarrior
+ip2
+ip6_queue
+ip6table_filter
+ip6table_mangle
+ip6table_raw
+ip6_tables
+ip6table_security
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_LOG
+ip6t_mh
+ip6t_REJECT
+ip6t_rt
+ip6_tunnel
+ipaq
+ipcomp
+ipcomp6
+ipddp
+ipg
+ip_gre
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_watchdog
+ip_queue
+ipr
+ips
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+ip_tables
+iptable_security
+ipt_addrtype
+ipt_ah
+ipt_CLUSTERIP
+ipt_ecn
+ipt_ECN
+ipt_LOG
+ipt_MASQUERADE
+ipt_NETMAP
+ipt_REDIRECT
+ipt_REJECT
+ipt_ULOG
+ip_vs
+ip_vs_dh
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_nq
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ipw
+ipw2100
+ipw2200
+ipwireless
+ipx
+ircomm
+ir-common
+ircomm-tty
+ir-core
+irda
+irda-usb
+ir-jvc-decoder
+ir-kbd-i2c
+irlan
+ir-nec-decoder
+irnet
+ir-rc5-decoder
+ir-rc6-decoder
+ir-sony-decoder
+irtty-sir
+ir-usb
+iscsi_ibft
+iscsi_tcp
+iscsi_trgt
+isdn
+isdn_bsdcomp
+isdnhdlc
+isight_firmware
+isl29003
+isl6405
+isl6421
+isl6423
+isofs
+isp116x-hcd
+isp1362-hcd
+isp1760
+istallion
+it87
+it8712f_wdt
+it8761e_gpio
+it87_wdt
+iTCO_vendor_support
+iTCO_wdt
+itd1000
+iuu_phoenix
+ivtv
+ivtvfb
+iw_c2
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwl3945
+iwlagn
+iwlcore
+iwmc3200top
+iwmc3200wifi
+ixgb
+ixgbe
+ixgbevf
+ixj
+ixj_pcmcia
+janz-cmodio
+janz-ican3
+janz-ttl
+jedec_probe
+jffs2
+jfs
+jmb38x_ms
+jme
+joydev
+joydump
+jr3_pci
+jsm
+k10temp
+k8temp
+kafs
+kaweth
+kb3886_bl
+kbic
+kbtab
+kcomedilib
+ke_counter
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+khazad
+kingsun-sir
+kl5kusb105
+kobil_sct
+konicawc
+ks0108
+ks0127
+ks8842
+ks8851
+ks8851_mll
+ks959-sir
+ksdazzle-sir
+ksz884x
+ktti
+kvaser_pci
+kvm
+kvm-amd
+kvm-intel
+kxsd9
+kyrofb
+l1oip
+l2cap
+l2tp_core
+l2tp_debugfs
+l2tp_ppp
+l440gx
+l4f00242t03
+l64781
+lanai
+lance
+lanstreamer
+lapb
+lapbether
+lcd
+ldusb
+lec
+led-class
+leds-88pm860x
+leds-adp5520
+leds-alix2
+leds-bd2802
+leds-da903x
+leds-dac124s085
+leds-gpio
+leds-lp3944
+leds-lt3593
+leds-mc13783
+leds-net48xx
+leds-net5501
+leds-pca9532
+leds-pca955x
+leds-regulator
+leds-ss4200
+leds-wm831x-status
+leds-wm8350
+leds-wrap
+ledtrig-backlight
+ledtrig-default-on
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-timer
+legousbtower
+lgdt3305
+lgdt330x
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libcrc32c
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libosd
+libsas
+libsrp
+lightning
+line6usb
+linear
+lirc_atiusb
+lirc_bt829
+lirc_dev
+lirc_ene0100
+lirc_i2c
+lirc_igorplugusb
+lirc_imon
+lirc_it87
+lirc_ite8709
+lirc_mceusb
+lirc_sasem
+lirc_serial
+lirc_sir
+lirc_streamzap
+lirc_ttusbir
+lis3l02dq
+lis3lv02d
+lis3lv02d_i2c
+litelink-sir
+lkkbd
+llc2
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95241
+lmc
+lms283gf05
+lnbp21
+lne390
+lockd
+logibm
+lp
+lp3971
+lp486e
+lpc_sch
+lpddr_cmds
+lpfc
+lrw
+ltc4215
+ltc4245
+ltpc
+ltv350qv
+lxfb
+lzo
+lzo_compress
+m25p80
+m52790
+ma600-sir
+mac80211
+mac80211_hwsim
+machzwd
+macmodes
+macvlan
+madgemc
+magellan
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+matrix_keypad
+matroxfb_accel
+matroxfb_base
+matroxfb_crtc2
+matroxfb_DAC1064
+matroxfb_g450
+matroxfb_maven
+matroxfb_misc
+matroxfb_Ti3026
+matrox_w1
+max1111
+max1363
+max1586
+max1619
+max17040_battery
+max2165
+max3100
+max6650
+max6875
+max7300
+max7301
+max730x
+max732x
+max7359_keypad
+max8649
+max8660
+max8925_bl
+max8925_onkey
+max8925_power
+max8925-regulator
+mb862xxfb
+mb862xxfb_accel
+mb86a16
+mbp_nvidia_bl
+mc13783-adc
+mc13783-core
+mc13783-regulator
+mc13783_ts
+mc33880
+mc44s803
+mce-inject
+mce-xeon75xx
+mcp2120-sir
+mcp23s08
+mcp251x
+mcs5000_ts
+mcs7780
+mcs7830
+mct_u232
+md4
+mdacon
+mdc800
+mdio
+me4000
+me_daq
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mem2mem_testdev
+memrar
+memstick
+metronomefb
+meye
+mga
+michael_mic
+micrel
+microcode
+microtek
+mii
+minix
+mISDN_core
+mISDN_dsp
+mISDNinfineon
+mISDNipac
+mISDNisar
+mite
+mixcomwd
+mk712
+mkiss
+mlx4_core
+mlx4_en
+mlx4_ib
+mmc_block
+mos7720
+mos7840
+moto_modem
+moxa
+mpc624
+mpoa
+mpt2sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+msdos
+msi-laptop
+msi-wmi
+msp3400
+mspro_block
+msr
+mt2060
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt9m001
+mt9m111
+mt9t031
+mt9t112
+mt9v011
+mt9v022
+mtd
+mtd_blkdevs
+mtdblock
+mtdblock_ro
+mtdchar
+mtdconcat
+mtd_dataflash
+mtd_nandecctest
+mtd_oobtest
+mtdoops
+mtd_pagetest
+mtdram
+mtd_readtest
+mtd_speedtest
+mtd_stresstest
+mtd_subpagetest
+mtd_torturetest
+mtouch
+multipath
+multiq3
+mvsas
+mwave
+mwl8k
+mxb
+mxl5005s
+mxl5007t
+mxser
+myri10ge
+n2
+n411
+nand
+nand_ecc
+nand_ids
+nandsim
+natsemi
+navman
+nbd
+ncpfs
+NCR53c406a
+NCR_D700
+NCR_Q720_mod
+ndiswrapper
+ne
+ne2
+ne2k-pci
+ne3210
+neofb
+net1080
+netconsole
+netjet
+netrom
+netsc520
+nettel
+netxen_nic
+newtonkbd
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_ipv4
+nf_conntrack_ipv6
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_proto_dccp
+nf_conntrack_proto_gre
+nf_conntrack_proto_sctp
+nf_conntrack_proto_udplite
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_proto_dccp
+nf_nat_proto_gre
+nf_nat_proto_sctp
+nf_nat_proto_udplite
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nfnetlink
+nfnetlink_log
+nfnetlink_queue
+nfs
+nfs_acl
+nfsd
+nftl
+nf_tproxy_core
+ngene
+n_hdlc
+ni52
+ni65
+ni_6527
+ni_65xx
+ni_660x
+ni_670x
+ni_at_a2150
+ni_at_ao
+ni_atmio
+ni_atmio16d
+nicstar
+ni_daq_700
+ni_daq_dio24
+ni_labpc
+ni_labpc_cs
+nilfs2
+ni_mio_cs
+ni_pcidio
+ni_pcimio
+ni_tio
+ni_tiocmd
+niu
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp437
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+nop-usb-xceiv
+nouveau
+nozomi
+n_r3964
+ns558
+ns83820
+nsc_gpio
+nsc-ircc
+nsp32
+nsp_cs
+ntfs
+nvidia-agp
+nvidiafb
+nvram
+nxt200x
+nxt6000
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stackglue
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ohci1394
+old_belkin-sir
+olpc_battery
+olympic
+omfs
+omnibook
+omninet
+on20
+on26
+onenand
+onenand_sim
+opencores-kbd
+oprofile
+opticon
+option
+or51132
+or51211
+orinoco
+orinoco_cs
+orinoco_nortel
+orinoco_plx
+orinoco_tmd
+orinoco_usb
+osd
+osdblk
+osst
+oti6858
+output
+ov7670
+ov772x
+ov9640
+ovcamchip
+oxu210hp-hcd
+p4-clockmod
+p54common
+p54pci
+p54spi
+p54usb
+p8023
+padlock-aes
+padlock-sha
+panasonic-laptop
+panel
+paride
+parkbd
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+pas16
+pata_ali
+pata_amd
+pata_artop
+pata_atiixp
+pata_atp867x
+pata_cmd640
+pata_cmd64x
+pata_cs5520
+pata_cs5530
+pata_cs5535
+pata_cs5536
+pata_cypress
+pata_efar
+pata_hpt366
+pata_hpt37x
+pata_hpt3x2n
+pata_hpt3x3
+pata_isapnp
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_ns87410
+pata_ns87415
+pata_oldpiix
+pata_opti
+pata_optidma
+pata_pcmcia
+pata_pdc2027x
+pata_pdc202xx_old
+pata_qdi
+pata_radisys
+pata_rdc
+pata_rz1000
+pata_sc1200
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sl82c105
+pata_triflex
+pata_via
+pata_winbond
+pbe5
+pc110pad
+pc87360
+pc8736x_gpio
+pc87413_wdt
+pc87427
+pca953x
+pcbc
+pcbit
+pcc-cpufreq
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf857x
+pcf8591
+pci
+pci200syn
+pcilynx
+pcips2
+pci-stub
+pcl711
+pcl724
+pcl725
+pcl726
+pcl730
+pcl812
+pcl816
+pcl818
+pcm3724
+pcm3730
+pcmad
+pcmcia
+pcmcia_core
+pcmciamtd
+pcmcia_rsrc
+pcm_common
+pcmda12
+pcmmio
+pcmuio
+pcnet32
+pcnet_cs
+pcrypt
+pcspkr
+pcwd
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pegasus
+penmount
+pf
+pg
+phantom
+phison
+phonedev
+phonet
+phram
+physmap
+pktgen
+pl2303
+platform_lcd
+plat_nand
+plat-ram
+plip
+plusb
+pluto2
+plx_pci
+pm2fb
+pm3fb
+pm8001
+pmc551
+pmcraid
+pms
+pn_pep
+poc
+pohmelfs
+poseidon
+powermate
+power_meter
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+pppoatm
+pppoe
+pppox
+ppp_synctty
+pps_core
+pps-ldisc
+prism2_usb
+prism54
+progear_bl
+proteon
+psmouse
+pt
+pvrusb2
+pwc
+qcaux
+qcserial
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas
+qlogicfas408
+qnx4
+qt1010
+quatech_daqp_cs
+quatech_usb2
+quickcam_messenger
+quota_tree
+quota_v1
+quota_v2
+r128
+r8169
+r8187se
+r8192e_pci
+r8192se_pci
+r8192s_usb
+r8192u_usb
+r82600_edac
+r852
+r8a66597-hcd
+radeon
+radeonfb
+radio-aimslab
+radio-aztech
+radio-cadet
+radio-gemtek
+radio-gemtek-pci
+radio-i2c-si470x
+radio-maestro
+radio-maxiradio
+radio-miropcm20
+radio-mr800
+radio-rtrack2
+radio-sf16fmi
+radio-sf16fmr2
+radio-si4713
+radio-tea5764
+radio-terratec
+radio-timb
+radio-trust
+radio-typhoon
+radio-usb-si470x
+radio-zoltrix
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid6test
+raid_class
+ramoops
+ramzswap
+rar_register
+raw
+raw1394
+ray_cs
+rc-adstech-dvb-t-pci
+rc-apac-viewcomp
+rc-asus-pc39
+rc-ati-tv-wonder-hd-600
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avertv-303
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-empty
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv2
+rc-encore-enltv-fm53
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge-new
+rc-imon-mce
+rc-imon-pad
+rc-iodata-bctv7e
+rc-kaiomy
+rc-kworld-315u
+rc-kworld-plus-tv-analog
+rc-manli
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc5-hauppauge-new
+rc-rc5-tv
+rc-real-audio-220-32-keys
+rc-tbs-nec
+rc-terratec-cinergy-xs
+rc-tevii-nec
+rc-tt-1500
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-winfast
+rc-winfast-usbii-deluxe
+rdc321x-gpio
+rdc321x-southbridge
+rdma_cm
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+redboot
+reed_solomon
+reiserfs
+rfc1051
+rfc1201
+rfcomm
+rfd_ftl
+ring_sw
+rio500
+riscom8
+rivafb
+rj54n1cb0c
+rmd128
+rmd160
+rmd256
+rmd320
+rndis_host
+rndis_wlan
+rocket
+romfs
+rose
+rotary_encoder
+rpcsec_gss_krb5
+rpcsec_gss_spkm3
+rrunner
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800pci
+rt2800usb
+rt2860sta
+rt2870sta
+rt2x00lib
+rt2x00pci
+rt2x00usb
+rt61pci
+rt73usb
+rtc-ab3100
+rtc-ab8500
+rtc-bq32k
+rtc-bq4802
+rtc-ds1286
+rtc-ds1305
+rtc-ds1307
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1742
+rtc-ds3234
+rtc-fm3130
+rtc-isl1208
+rtc-m41t80
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max8925
+rtc-mc13783
+rtc-msm6242
+rtc-pcf2123
+rtc-pcf50633
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-stk17ta8
+rtc-test
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtd520
+rti800
+rti802
+rtl8150
+rtl8180
+rtl8187
+rxkad
+s1d13xxxfb
+s2250
+s2250-loader
+s2255drv
+s2io
+s3fb
+s526
+s5h1409
+s5h1411
+s5h1420
+s626
+s6e63m0
+saa5246a
+saa5249
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7706h
+safe_serial
+salsa20_generic
+salsa20-i586
+samsung-laptop
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savage
+savagefb
+sb1000
+sbc60xxwdt
+sbc7240_wdt
+sbc8360
+sbc_epx_c3
+sbc_fitpc2_wdt
+sbc_gxx
+sbni
+sbp2
+sc
+sc1200wdt
+sc520cdp
+sc520_wdt
+sc92031
+sca3000
+scb2_flash
+scc
+sch311x_wdt
+sch_atm
+sch_cbq
+sch_drr
+sch_dsmark
+sch_gpio
+sch_gred
+sch_hfsc
+sch_htb
+sch_ingress
+sch_multiq
+sch_netem
+sch_prio
+sch_red
+sch_sfq
+sch_tbf
+sch_teql
+sco
+scsi_debug
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_tgt
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+scsi_wait_scan
+sctp
+sctp_probe
+scx200
+scx200_acb
+scx200_docflash
+scx200_gpio
+scx200_hrt
+scx200_i2c
+scx200_wdt
+sdhci
+sdhci-pci
+sdhci-pltfm
+sdio_uart
+sdla
+sdricoh_cs
+se401
+sealevel
+sedlbauer_cs
+seed
+seeq8005
+sep_driver
+seqiv
+ser_gigaset
+serial2002
+serial_cs
+serio_raw
+sermouse
+serpent
+serport
+serqt_usb2
+ses
+sfc
+sha1_generic
+sha256_generic
+sha512_generic
+shpchp
+sht15
+si21xx
+si4713-i2c
+sidewinder
+siemens_mpi
+sierra
+sierra_net
+sim710
+sir-dev
+sis
+sis190
+sis5595
+sis900
+sis-agp
+sisfb
+sisusbvga
+sit
+sja1000
+sja1000_isa
+sja1000_platform
+skel
+skfp
+skge
+skisa
+sky2
+sl811_cs
+sl811-hcd
+slicoss
+slip
+slram
+sm501
+sm501fb
+sm7xx
+smbfs
+smc9194
+smc91c92_cs
+smc-mca
+sm_common
+smctr
+smc-ultra
+smc-ultra32
+smsc37b787_wdt
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc9420
+smsc95xx
+smsc-ircc2
+smsdvb
+smsmdtv
+smssdio
+smsusb
+sn9c102
+snd
+snd-ac97-codec
+snd-ad1816a
+snd-ad1848
+snd-ad1889
+snd-adlib
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-als100
+snd-als300
+snd-als4000
+snd-asihpi
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt2320
+snd-azt3328
+snd-bt87x
+snd-ca0106
+snd-cmi8330
+snd-cmipci
+snd-cs4231
+snd-cs4236
+snd-cs4281
+snd-cs46xx
+snd-cs5530
+snd-cs5535audio
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emu8000-synth
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1688
+snd-es1688-lib
+snd-es18xx
+snd-es1938
+snd-es1968
+snd-fm801
+snd-gina20
+snd-gina24
+snd-gusclassic
+snd-gusextreme
+snd-gus-lib
+snd-gusmax
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-atihdmi
+snd-hda-codec-ca0110
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-idt
+snd-hda-codec-intelhdmi
+snd-hda-codec-nvhdmi
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hifier
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel8x0
+snd-intel8x0m
+snd-interwave
+snd-interwave-stb
+snd-jazz16
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-miro
+snd-mixart
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-msnd-classic
+snd-msnd-lib
+snd-msnd-pinnacle
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3sa2
+snd-opl3-synth
+snd-opl4-lib
+snd-opl4-synth
+snd-opti92x-ad1848
+snd-opti92x-cs4231
+snd-opti93x
+snd-oxygen
+snd-oxygen-lib
+snd-page-alloc
+snd-pcm
+snd-pcsp
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-sb16
+snd-sb16-csp
+snd-sb16-dsp
+snd-sb8
+snd-sb8-dsp
+snd-sbawe
+snd-sb-common
+snd-sc6000
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-sgalaxy
+snd-sis7019
+snd-soc-ad1836
+snd-soc-ad193x
+snd-soc-ad73311
+snd-soc-ads117x
+snd-soc-ak4104
+snd-soc-ak4535
+snd-soc-ak4642
+snd-soc-ak4671
+snd-soc-core
+snd-soc-cs4270
+snd-soc-da7210
+snd-soc-l3
+snd-soc-max9877
+snd-soc-pcm3008
+snd-soc-spdif
+snd-soc-ssm2602
+snd-soc-tlv320aic23
+snd-soc-tlv320aic26
+snd-soc-tlv320aic3x
+snd-soc-tlv320dac33
+snd-soc-tpa6130a2
+snd-soc-twl4030
+snd-soc-twl6040
+snd-soc-uda134x
+snd-soc-uda1380
+snd-soc-wm2000
+snd-soc-wm8350
+snd-soc-wm8400
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8727
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8776
+snd-soc-wm8900
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8940
+snd-soc-wm8955
+snd-soc-wm8960
+snd-soc-wm8961
+snd-soc-wm8971
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8988
+snd-soc-wm8990
+snd-soc-wm8993
+snd-soc-wm8994
+snd-soc-wm9081
+snd-soc-wm9090
+snd-soc-wm-hubs
+snd-sonicvibes
+snd-sscape
+snd-tea575x-tuner
+snd-tea6330t
+snd-timer
+snd-trident
+snd-usb-audio
+snd-usb-caiaq
+snd-usbmidi-lib
+snd-usb-us122l
+snd-usb-usx2y
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-virtuoso
+snd-vx222
+snd-vx-lib
+snd-vxpocket
+snd-wavefront
+snd-wss-lib
+snd-ymfpci
+soc_camera
+soc_camera_platform
+soc_mediabus
+softdog
+solos-pci
+sony-laptop
+sonypi
+soundcore
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+specialix
+spectrum_cs
+speedfax
+speedtch
+spi_bitbang
+spi_butterfly
+spidev
+spi_gpio
+spi_lm70llp
+squashfs
+ssb
+ssfdc
+sst25l
+sstfb
+ssv_dnp
+st
+stallion
+starfire
+stb0899
+stb6000
+stb6100
+st_drv
+stex
+stinger
+stir4200
+stkwebcam
+stowaway
+stp
+stradis
+stv0288
+stv0297
+stv0299
+stv0900
+stv090x
+stv6110
+stv6110x
+stv680
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+svcrdma
+svgalib
+sworks-agp
+sx8
+sym53c416
+sym53c500_cs
+sym53c8xx
+symbolserial
+synaptics_i2c
+synclink
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+t128
+t1isa
+t1pci
+tc1100-wmi
+tca6416-keypad
+tcic
+tcp_bic
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_probe
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcrypt
+tda10021
+tda10023
+tda10048
+tda1004x
+tda10086
+tda18271
+tda7432
+tda8083
+tda8261
+tda826x
+tda827x
+tda8290
+tda9840
+tda9887
+tdfx
+tdfxfb
+tdo24m
+tea
+tea5761
+tea5767
+tea6415c
+tea6420
+tef6862
+tehuti
+tekram-sir
+teles_cs
+test_power
+tg3
+tgr192
+thinkpad_acpi
+thmc50
+ti_dac7512
+tifm_7xx1
+tifm_core
+tifm_ms
+tifm_sd
+timb_dma
+timberdale
+timbuart
+timeriomem-rng
+tipc
+ti_usb_3410_5052
+tlan
+tlclk
+tle62x0
+tm6000
+tm6000-alsa
+tmdc
+tmiofb
+tmp102
+tmp401
+tmp421
+tms380tr
+tmscsim
+tmspci
+toim3232-sir
+topstar-laptop
+toshiba_acpi
+toshiba_bluetooth
+touchit213
+touchright
+touchwin
+tpm
+tpm_atmel
+tpm_bios
+tpm_infineon
+tpm_nsc
+tpm_tis
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+trancevibrator
+tranzport
+tridentfb
+ts5500_flash
+ts_bm
+tsc2007
+ts_fsm
+ts_kmp
+tsl2550
+tsl2563
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+tua6100
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp5150
+tw9910
+twidjoy
+twl4030-gpio
+twl4030_keypad
+twl4030-pwrbutton
+twl4030-usb
+twl4030-vibra
+twl4030_wdt
+twofish
+twofish_common
+twofish-i586
+typhoon
+u132-hcd
+u14-34f
+uartlite
+ubi
+ubifs
+ucb1400_core
+ucb1400_ts
+udf
+udlfb
+ueagle-atm
+ufs
+uinput
+uio
+uio_aec
+uio_cif
+uio_netx
+uio_pci_generic
+uio_pdrv
+uio_pdrv_genirq
+uio_sercos3
+uli526x
+ultracam
+ultrastor
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-sddr09
+ums-sddr55
+ums-usbat
+unioxx5
+upd64031a
+upd64083
+uPD98402
+usb8xxx
+usbatm
+usb_debug
+usbdux
+usbduxfast
+usb_gigaset
+usbhid
+usbip
+usbip_common_mod
+usblcd
+usbled
+usblp
+usbnet
+usbserial
+usbsevseg
+usb-storage
+usbtest
+usbtmc
+usbtouchscreen
+usbvideo
+usbvision
+usb_wwan
+userspace-consumer
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l1-compat
+v4l2-common
+v4l2-int-device
+v4l2-mem2mem
+vcan
+ves1820
+ves1x93
+vesafb
+veth
+vfat
+vga16fb
+vgastate
+vgg2432a4
+vhci-hcd
+vhost_net
+via
+via686a
+via-agp
+via-cputemp
+viafb
+via-ircc
+via-rhine
+via-rng
+via-sdmmc
+via-velocity
+vicam
+video
+video1394
+videobuf-core
+videobuf-dma-contig
+videobuf-dma-sg
+videobuf-dvb
+videobuf-vmalloc
+videocodec
+videodev
+virtio
+virtio_balloon
+virtio_blk
+virtio_console
+virtio_net
+virtio_pci
+virtio_ring
+virtio-rng
+virtual
+visor
+vivopay-serial
+vlsi_ir
+vmac
+vme
+vme_ca91cx42
+vme_tsi148
+vme_user
+vme_vmivme7805
+vmk80xx
+vmlfb
+vmwgfx
+vmw_pvscsi
+vmxnet3
+vp27smpx
+vpx3220
+vsxxxaa
+vt1211
+vt6656_stage
+vt8231
+vt8623fb
+vxge
+w1_bq27000
+w1_ds2431
+w1_ds2433
+w1_ds2760
+w1-gpio
+w1_smem
+w1_therm
+w35und
+w6692
+w83627ehf
+w83627hf
+w83627hf_wdt
+w83697hf_wdt
+w83697ug_wdt
+w83781d
+w83791d
+w83792d
+w83793
+w83877f_wdt
+w83977af_ir
+w83977f_wdt
+w83l785ts
+w83l786ng
+w9966
+w9968cf
+wacom
+wacom_w8001
+wafer5823wdt
+walkera0701
+wanrouter
+wanxl
+warrior
+wbsd
+wd
+wd7000
+wdt
+wdt_pci
+whci
+whci-hcd
+whc-rc
+whiteheat
+wimax
+winbond-840
+winbond-cir
+wire
+wis-ov7640
+wis-saa7113
+wis-saa7115
+wis-sony-tuner
+wistron_btns
+wis-tw2804
+wis-tw9903
+wis-uda1342
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1271
+wl1271_spi
+wl3501_cs
+wlags49_h25_cs
+wlags49_h2_cs
+wlp
+wm831x_backup
+wm831x_bl
+wm831x-dcdc
+wm831x-gpio
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x_power
+wm831x_wdt
+wm8350-gpiolib
+wm8350-hwmon
+wm8350_power
+wm8350-regulator
+wm8350_wdt
+wm8400-core
+wm8400-regulator
+wm8739
+wm8775
+wm8994-gpio
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusbcore
+wusb-wa
+x25
+x25_asy
+x38_edac
+xc5000
+xcbc
+xfrm4_mode_beet
+xfrm4_mode_transport
+xfrm4_mode_tunnel
+xfrm4_tunnel
+xfrm6_mode_beet
+xfrm6_mode_ro
+xfrm6_mode_transport
+xfrm6_mode_tunnel
+xfrm6_tunnel
+xfrm_ipcomp
+xfrm_user
+xfs
+xgifb
+xhci-hcd
+xirc2ps_cs
+xircom_cb
+xor
+xpad
+xprtrdma
+x_tables
+xt_CLASSIFY
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlimit
+xt_connmark
+xt_CONNSECMARK
+xt_conntrack
+xt_CT
+xt_dccp
+xt_dscp
+xt_DSCP
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_HL
+xt_iprange
+xtkbd
+xt_LED
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_NFLOG
+xt_NFQUEUE
+xt_NOTRACK
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_RATEEST
+xt_realm
+xt_recent
+xts
+xt_sctp
+xt_SECMARK
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_TCPMSS
+xt_tcpudp
+xt_TEE
+xt_time
+xt_TPROXY
+xt_TRACE
+xt_u32
+xusbatm
+xvmalloc
+yam
+yealink
+yellowfin
+yenta_socket
+z85230
+zatm
+zaurus
+zc0301
+zd1201
+zd1211rw
+zhenhua
+zio
+zl10036
+zl10039
+zl10353
+zlib
+zlib_deflate
+znet
+zr36016
+zr36050
+zr36060
+zr36067
+zr364xx
diff --git a/debian.master/abi/2.6.35-2.3/i386/virtual b/debian.master/abi/2.6.35-2.3/i386/virtual
new file mode 100644
index 00000000000..4353fc07126
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/i386/virtual
@@ -0,0 +1,11259 @@
+EXPORT_SYMBOL arch/x86/kernel/scx200 0x254e5667 scx200_gpio_base
+EXPORT_SYMBOL arch/x86/kernel/scx200 0x35a3c008 scx200_gpio_configure
+EXPORT_SYMBOL arch/x86/kernel/scx200 0x8cfa375c scx200_gpio_shadow
+EXPORT_SYMBOL arch/x86/kernel/scx200 0x907665bd scx200_cb_base
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x78b49670 kvm_read_guest_atomic
+EXPORT_SYMBOL arch/x86/kvm/kvm 0x9c55151f kvm_cpu_has_pending_timer
+EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble
+EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle
+EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k
+EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks
+EXPORT_SYMBOL drivers/acpi/video 0x7a45377b acpi_video_unregister
+EXPORT_SYMBOL drivers/acpi/video 0x8826c13b acpi_video_register
+EXPORT_SYMBOL drivers/acpi/video 0x963cf9b4 acpi_video_get_edid
+EXPORT_SYMBOL drivers/atm/suni 0x2763b739 suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0x01b08ec4 uPD98402_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x33b5f7ff pi_schedule_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x37b04649 pi_write_block
+EXPORT_SYMBOL drivers/block/paride/paride 0x3cf0edfa pi_write_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0x84c75b46 pi_read_block
+EXPORT_SYMBOL drivers/block/paride/paride 0x8e7cf0ab pi_connect
+EXPORT_SYMBOL drivers/block/paride/paride 0x9aa97477 pi_do_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x9fdb224b pi_disconnect
+EXPORT_SYMBOL drivers/block/paride/paride 0xc376314b paride_register
+EXPORT_SYMBOL drivers/block/paride/paride 0xcd695f58 pi_read_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0xd7b7cfd9 pi_release
+EXPORT_SYMBOL drivers/block/paride/paride 0xe48a10f3 pi_init
+EXPORT_SYMBOL drivers/block/paride/paride 0xf51ef892 paride_unregister
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x132bd24c agp_bind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x16eacb42 agp_free_page_array
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x178cf317 agp_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x1ef6ffc3 agp_generic_remove_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x270aa4a7 agp_generic_destroy_page
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x2efd0f2d agp_generic_alloc_pages
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x30226ddf agp_device_command
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x3108b55a agp_generic_free_gatt_table
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x36eb41f5 agp_generic_free_by_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x38951528 agp_generic_create_gatt_table
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x41220000 agp_generic_enable
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x50053c8c agp_collect_device_status
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x50acbc87 agp_generic_alloc_by_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x56949d05 agp_enable
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x5c13d456 agp_flush_chipset
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x5faedd86 agp_put_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x6285881a agp3_generic_tlbflush
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x689789da agp_generic_mask_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x6917ffe4 agp_generic_type_to_mask_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x6abd1ff7 agp_generic_alloc_page
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7144f91c agp_backend_release
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7346d4c9 get_agp_version
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x74c994dd agp_copy_info
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x77527b56 agp_alloc_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x969fb335 agp_find_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x9f3b0a91 agp_generic_alloc_user
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb04ea8f0 agp_rebind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb5986ba2 agp_generic_destroy_pages
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc48c1d0d agp_generic_insert_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd4cfa16a agp_create_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd8ee61b1 agp_backend_acquire
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe6f151c0 agp_alloc_page_array
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe7a5e0c1 agp_allocate_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xefdf8f4c agp_free_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xf77ee079 agp_unbind_memory
+EXPORT_SYMBOL drivers/char/agp/intel-agp 0x7b9a6116 intel_agp_enabled
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x03b9983b ipmi_smi_watcher_register
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0aae7108 ipmi_get_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x11b71f26 ipmi_create_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x18164cb1 ipmi_set_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1fc6501a ipmi_set_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2719859f ipmi_destroy_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x288acecf ipmi_set_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4296bec8 ipmi_free_recv_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4adba98c ipmi_register_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x627696d5 ipmi_poll_interface
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6348403e ipmi_get_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x636d699f ipmi_get_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x81f796b1 ipmi_smi_add_proc_entry
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x82f26d00 ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x92d06c13 ipmi_unregister_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa0db470d ipmi_request_supply_msgs
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa67e9861 ipmi_set_gets_events
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xadb67403 ipmi_unregister_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd29833a3 ipmi_request_settime
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd5b91ea2 ipmi_smi_msg_received
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xec354102 ipmi_get_version
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf20f72c5 ipmi_smi_watcher_unregister
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf565d564 ipmi_register_smi
+EXPORT_SYMBOL drivers/char/nsc_gpio 0x8e8e288d nsc_gpio_write
+EXPORT_SYMBOL drivers/char/nsc_gpio 0xc489c36a nsc_gpio_dump
+EXPORT_SYMBOL drivers/char/nsc_gpio 0xfe1674b8 nsc_gpio_read
+EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte
+EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum
+EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte
+EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte
+EXPORT_SYMBOL drivers/edac/edac_core 0x39ee7c0d edac_mc_find
+EXPORT_SYMBOL drivers/edac/edac_core 0x700f1275 edac_mc_handle_fbd_ce
+EXPORT_SYMBOL drivers/edac/edac_core 0xee27598a edac_mc_handle_fbd_ue
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x0991ea3c fw_iso_buffer_destroy
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x24442b34 fw_fill_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x2448a925 fw_device_enable_phys_dma
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x3e8fe422 fw_iso_context_create
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x45b00092 fw_core_initiate_bus_reset
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x465c0db4 fw_iso_context_destroy
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x553a2a47 fw_core_handle_request
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x5a1493d3 fw_card_initialize
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x5b3650db fw_send_request
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x6942c629 fw_core_add_address_handler
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x85ee1630 fw_iso_context_start
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x87430627 fw_iso_context_stop
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x875793e6 fw_bus_type
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x9143689b fw_core_remove_address_handler
+EXPORT_SYMBOL drivers/firewire/firewire-core 0x921b2f33 fw_run_transaction
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xa71d3355 fw_core_remove_card
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xae2fd120 fw_core_handle_bus_reset
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xb2de9f9a fw_iso_context_queue
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xc1eeb9f0 fw_core_handle_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xd3e11d2b fw_cancel_transaction
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xe079e17c fw_iso_buffer_init
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xe7b4ecf0 fw_send_response
+EXPORT_SYMBOL drivers/firewire/firewire-core 0xea4656dc fw_card_add
+EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x00ae6c8b drm_mode_object_find
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x02552c1e drm_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x036afc7d drm_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a54ffbb drm_mode_connector_update_edid_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b22e726 drm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b75775c drm_mode_config_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ee1a9f3 drm_addmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x11d13802 drm_mm_search_free_in_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c753a7 drm_master_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x13e76eb4 drm_framebuffer_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x15c12351 drm_cvt_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x18411a26 drm_idlelock_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ab01659 drm_agp_bind_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c24f939 drm_irq_install
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1eed648a drm_clflush_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1efd7471 drm_fasync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x20047f53 drm_agp_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x22be9f02 drm_mode_connector_detach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x290cb700 drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2964350d drm_get_resource_len
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a32ea4d drm_mm_get_block_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b4cfb47 drm_property_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b804b4a drm_encoder_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x314da4c1 drm_connector_property_set_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x377e18f4 drm_gem_object_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x37bd8def drm_mm_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3830f177 drm_idlelock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e4e7fb0 drm_agp_acquire
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x40980597 drm_mode_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4268740f drm_getsarea
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x433c224b drm_addbufs_pci
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4401f3ec drm_free_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4407f0c0 drm_debugfs_create_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x46d0cce9 drm_pci_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x47bcbaf5 drm_mm_pre_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4831d2c2 drm_mm_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e8f3fd5 drm_agp_bind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4eacd601 drm_debugfs_remove_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4fbce921 drm_core_ioremap_wc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e959bf drm_ati_pcigart_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x53f3c3af drm_mm_search_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5846ab9e drm_mode_create_dirty_info_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x59abb961 drm_crtc_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x59b45062 drm_mode_probed_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x59fb8537 drm_i_have_hw_lock
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c6634d3 drm_mode_duplicate
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f2f1a34 drm_connector_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6269a121 drm_core_reclaim_buffers
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x69c68f6f drm_sysfs_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e381201 drm_connector_attach_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e56ddd7 drm_gem_object_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f6f545f drm_ati_pcigart_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x707aa103 drm_mode_create_dithering_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x72a50331 drm_pci_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7de8ae8a drm_agp_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ecc4f9d drm_gtf_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x822f1c01 drm_vblank_post_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x840e3f1f drm_gem_vm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8431286c drm_connector_property_get_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x85c6ee72 drm_poll
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x867c9f31 drm_unbind_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x86d4462c drm_agp_chipset_flush
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x87ad9ee1 drm_agp_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a4830ed drm_lock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c1afe8e drm_property_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ffc694c drm_mode_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x90813be0 drm_mode_detachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x90b63290 drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9162b0bd drm_crtc_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x964ffb9a drm_vblank_off
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x97982496 drm_sysfs_connector_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x986025da drm_rmmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c2c1cb7 drm_add_edid_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c946411 drm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d35a370 drm_core_get_reg_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e830d50 drm_i2c_encoder_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f0afa2c drm_i2c_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa12a7bcd drm_connector_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa20293a9 drm_gem_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6324b60 drm_mm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6424fe2 drm_get_connector_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa72425e2 drm_vblank_pre_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8149714 drm_mode_connector_list_update
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8af12e2 drm_mode_attachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa97a376e drm_mm_put_block
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaacfec00 drm_master_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xac6ab591 drm_irq_uninstall
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0dd9f6e drm_vblank_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb108f598 drm_mm_debug_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb40a9666 drm_lock_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5391714 drm_vblank_count
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6d79686 drm_core_ioremapfree
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd616986 drm_core_ioremap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc00af4d3 drm_vblank_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc076997f drm_vblank_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc139b67b drm_add_modes_noedid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc21dce5b drm_mode_prune_invalid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc2246573 drm_sg_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5f0981c drm_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc72255d1 drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc765cfe6 drm_read
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc885fe34 drm_mode_validate_clocks
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xca94d507 drm_get_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd396969 drm_gem_vm_close
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf45449d drm_mode_create_tv_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfd3d077 drm_rmmap_locked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcffae8bf drm_mode_config_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd073c565 drm_get_resource_start
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd12d8839 drm_agp_unbind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd34d2ad9 drm_get_edid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5f77926 drm_agp_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd90cb423 drm_mode_validate_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9b5c11d drm_mode_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xda35e2d5 drm_agp_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdaeee285 drm_mm_dump_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbae40f3 drm_put_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd85379f drm_gem_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf874498 drm_handle_vblank
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdfa3c534 drm_exit
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1d30d8a drm_gem_handle_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1f32a59 drm_get_encoder_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe753ce18 drm_mode_find_dmt
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe87ae3fc drm_mm_get_block_range_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb0e8565 drm_gem_object_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xec26663d drm_get_drawable_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xedf410f0 drm_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeeda308f drm_addbufs_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf00f95e8 drm_mode_connector_attach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42823dc drm_framebuffer_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5f557fa drm_sysfs_connector_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7e815b6 drm_gtf_mode_complex
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9739f8a drm_vblank_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x01d26772 drm_fb_helper_check_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12e7bbf1 drm_fb_helper_fill_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x24b5e35e drm_helper_crtc_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x25adc70f drm_fb_helper_pan_display
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2b134671 drm_helper_encoder_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2ecf6772 drm_fb_helper_single_fb_probe
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x32e8af85 drm_fb_helper_setcmap
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x383a1de3 i2c_dp_aux_add_bus
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x403fffe1 drm_fb_helper_initial_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x40dd7d0b drm_crtc_helper_set_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x466cf83b drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4f3a96bd drm_fb_helper_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5e612000 drm_fb_helper_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x68fc2bd7 drm_fb_helper_single_add_all_connectors
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x72d07e23 drm_helper_hpd_irq_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x75be3421 drm_crtc_helper_set_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x76de3de8 drm_fb_helper_blank
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c7595a7 drm_kms_helper_poll_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x865af73d drm_helper_disable_unused_functions
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91de393e drm_kms_helper_poll_disable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x94490b33 drm_helper_connector_dpms
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9518e94f drm_kms_helper_poll_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa81c9fbc drm_kms_helper_poll_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xac6544ae drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbe3bf331 drm_fb_helper_set_par
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xcc41f379 drm_fb_helper_fill_fix
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdb5c0ceb drm_fb_helper_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xed17edb5 drm_helper_resume_force_mode
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x02a0a74e ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x02b53660 ttm_bo_kunmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0363a980 ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07787990 ttm_bo_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1125b178 ttm_read_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x13e2ed28 ttm_bo_unreserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x156660c6 ttm_bo_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17b751cd ttm_bo_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17d02c4b ttm_base_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c4d494d ttm_object_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ff54ff0 ttm_ref_object_add
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x266d8a60 ttm_io_prot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2941ea6f ttm_bo_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2a449d33 ttm_bo_move_memcpy
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3238b786 ttm_suspend_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34704ea7 ttm_global_item_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x357d4fb7 ttm_read_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38c544b0 ttm_object_file_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38ea477e ttm_suspend_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c3c3af1 ttm_bo_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3de80ccb ttm_bo_reserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x49ef8a86 ttm_bo_unmap_virtual
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x51ac0254 ttm_bo_validate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x52433f76 ttm_bo_move_ttm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x53438b49 ttm_bo_init_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x53cc52d8 ttm_bo_kmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5bda83c4 ttm_bo_clean_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66666d70 ttm_global_item_ref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x690e354b ttm_bo_synccpu_write_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6fa4df78 ttm_bo_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78957fbc ttm_lock_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7a5f39f4 ttm_mem_global_alloc
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7c9c8b83 ttm_tt_populate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x83c2d310 ttm_object_file_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8dac6dd1 ttm_tt_set_placement_caching
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e62fa47 ttm_object_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9859a1d1 ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98b7a72b ttm_write_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b7af728 ttm_ref_object_base_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9cad9496 ttm_vt_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa39a9363 ttm_tt_bind
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa9c71568 ttm_bo_swapout_all
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab64ff66 ttm_bo_mem_space
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4a2aaf3 ttm_mem_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4bd6211 ttm_bo_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb962a394 ttm_vt_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc30784a2 ttm_mem_global_free
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd380a8c7 ttm_write_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd66ba4df ttm_base_object_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9646ea3 ttm_bo_wait_unreserved
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xda96d584 ttm_base_object_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdcf3eb67 ttm_page_alloc_debugfs
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdd2fc745 ttm_bo_wait
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6d52a12 ttm_agp_backend_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe82e99fd ttm_fbdev_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe93d8429 ttm_bo_wait_cpu
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xead17d79 ttm_bo_evict_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf1921b0b ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc361f99 ttm_mem_global_release
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x0ef9c3b5 i2c_bit_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x2d7999bb i2c_bit_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x6bb42422 i2c_pca_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x777d1064 i2c_pca_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pcf 0x78875173 i2c_pcf_add_bus
+EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x50f5f86c amd756_smbus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x04322b49 hpsb_make_streampacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07e751e7 csr1212_get_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0bb42b24 hpsb_make_lock64packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0f4be803 hpsb_iso_shutdown
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x113b59f8 hpsb_unregister_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2213871f hpsb_iso_recv_release_packets
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2718942b hpsb_iso_recv_unlisten_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x280275d3 hpsb_reset_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x29be2d24 hpsb_make_phypacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2cc996f6 hpsb_iso_xmit_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x373cead3 hpsb_alloc_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3a46cc22 hpsb_set_packet_complete_task
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3bb943ce hpsb_iso_n_ready
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3c1d40a2 hpsb_update_config_rom_image
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3d6fbace hpsb_alloc_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4286c552 hpsb_node_fill_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4739210d hpsb_iso_recv_listen_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x475e7e3a hpsb_selfid_complete
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4794aa6e hpsb_bus_reset
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x49e89e05 hpsb_add_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x50feb831 hpsb_resume_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x57278d0d hpsb_set_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5a729c28 hpsb_iso_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5f6b743c hpsb_allocate_and_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6541ce7b hpsb_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x68e1b21d hpsb_iso_stop
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6a0b275e hpsb_selfid_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6a5fd44a hpsb_get_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6bc35bdd hpsb_get_hostinfo_bykey
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x71fe6946 hpsb_iso_recv_set_channel_mask
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x763e6022 hpsb_remove_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7a422825 hpsb_protocol_class
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7cbfee72 hpsb_make_lockpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x88739046 hpsb_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x893b6488 hpsb_unregister_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x89ed432a hpsb_free_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8b000c6e dma_region_mmap
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8d1738aa hpsb_destroy_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8f97d52a hpsb_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x911441d9 hpsb_create_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x91eac584 hpsb_iso_recv_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x95783db0 hpsb_iso_recv_flush
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x993d5443 hpsb_register_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa0a14b9f hpsb_iso_xmit_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa1414780 hpsb_iso_xmit_sync
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa4a38ab2 hpsb_send_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa53dc856 __hpsb_register_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8b5291c hpsb_make_writepacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8b58e51 hpsb_make_readpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb1987671 hpsb_packet_success
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb451d897 hpsb_iso_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb890b814 csr1212_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbd1f8eba hpsb_update_config_rom
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc2e4bfd6 hpsb_set_hostinfo_key
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xce6ce094 hpsb_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd27ee934 hpsb_get_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd3a5c56d hpsb_lock
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd775648d hpsb_iso_recv_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd7dd3417 hpsb_iso_xmit_queue_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xda8f4264 hpsb_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdbc2839d hpsb_iso_wake
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe16a1838 hpsb_free_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe249ff98 hpsb_read_cycle_timer
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xef5abd1a hpsb_node_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf568dfa3 hpsb_unregister_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x43a4386d ohci1394_stop_context
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x5be88c3f ohci1394_register_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xc26569bd ohci1394_unregister_iso_tasklet
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x29cbd5fe rdma_addr_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x475199a5 rdma_addr_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x80257864 rdma_copy_addr
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x89ec0c6a rdma_resolve_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0313e3d8 ib_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x03d0c131 ib_send_cm_rtu
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0612d50e ib_cm_notify
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x103f302a ib_send_cm_mra
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1e35941e ib_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1e6e11ad ib_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1f43ff79 ib_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x221c1050 ib_send_cm_drep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2a799ebd ib_send_cm_sidr_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x680ed79b ib_send_cm_sidr_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x69b4a391 cm_class
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa88a87a7 ib_send_cm_lap
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xabe23fa7 ib_send_cm_dreq
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb92a6f75 ib_send_cm_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd11ce705 ib_send_cm_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdb1e2891 ib_send_cm_apr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf71db71e ib_send_cm_rej
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00c7e829 ib_modify_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x04c49223 ib_modify_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x059a6b3d ib_resize_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16ebd959 ib_dereg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x17cabe66 ib_umem_release
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x220c785f ib_dealloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26623374 ib_create_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2acb482d ib_dispatch_event
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x307d4bd8 ib_destroy_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x324248c4 ib_modify_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x332706ff ib_alloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x38858a8c ib_detach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a5bd155 ib_find_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f8bd2f9 ib_rereg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x416485dd ib_query_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x42dfdd31 ib_fmr_pool_unmap
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4cd377a2 ib_register_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x506c30d1 ib_umem_page_count
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x510241b2 ib_query_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x56c4893a ib_find_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e3925ef ib_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61d66a26 ib_init_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x64ef9686 ib_modify_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x694c47ba ib_create_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x72b791f5 ib_flush_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x732aa637 ib_unregister_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x78ef8a18 ib_attach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x876e4076 ib_query_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b893ed ib_destroy_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x886bc4d7 ib_fmr_pool_map_phys
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x88a0c418 ib_destroy_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a97ed1b ib_find_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ef8ae84 ib_get_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96d7355b ib_query_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x98ef12d1 ib_dealloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x99133113 ib_alloc_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa05724de ib_modify_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa7d6eca5 ib_reg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaa12d4da ib_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xab1b2af4 ib_get_cached_lmc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac3fd621 ib_dealloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb023c41f ib_register_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb43015b7 ib_destroy_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb9e4a33d ib_query_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4a485f7 ib_query_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcb0b2e42 ib_create_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc068acd ib_get_dma_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd0a0ae1d ib_umem_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd32ac267 ib_alloc_fast_reg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd53a9f38 ib_modify_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6a21556 ib_query_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8c91cc3 ib_create_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda9a99b6 ib_get_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdbeac15e ib_unregister_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc1dd54c ib_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xded7dcfd ib_set_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe29130b1 ib_query_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe993f694 ib_create_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9b75a13 ib_dealloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xebafef00 ib_alloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xec55dcbc ib_free_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf4f797fc ib_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf721269b ib_alloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7541c95 ib_find_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf8e3bbcc ib_alloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa3e4178 ib_get_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1f9ff069 ib_cancel_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5d709878 ib_register_mad_snoop
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x63887b59 ib_modify_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x68d7a78f ib_free_recv_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6fbbb0db ib_redirect_mad_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x824d793c ib_create_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x93b65974 ib_register_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb6b27a5b ib_post_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd2255505 ib_unregister_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd3464c93 ib_free_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf0424ea2 ib_process_mad_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf4a3dbc5 ib_get_rmpp_segment
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0143a9ed ib_sa_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x09877032 ib_sa_service_rec_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3ffbd890 ib_sa_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x73e642da ib_sa_path_rec_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8dcce4cc ib_init_ah_from_mcmember
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x95e7eeaa ib_sa_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb8668176 ib_sa_get_mcmember_rec
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc10de428 ib_sa_cancel_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe0cd29d8 ib_init_ah_from_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x31b87a1b iw_cm_reject
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3f91036e iw_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4aa1b5f4 iw_cm_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4e0254a1 iw_cm_accept
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x912965d0 iw_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc66fb0f6 iw_cm_connect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xeb575b87 iw_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xfc67e948 iw_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x020f8e0b rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0c5e42c1 rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x10375d0a rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1ea898a2 rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1f72e598 rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3275bd43 rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x52b7824c rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x55f3fd85 rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5e8d8096 rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x74432e85 rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7e78cabf rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x87dfe750 rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa28e0ea7 rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xae096ad0 rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbc79263c rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc34bf233 rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe55754e2 rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf94fdc4b rdma_resolve_addr
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x0c243bb1 __gameport_register_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x3f4e334a gameport_unregister_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x837827bb gameport_start_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x95eba19a gameport_open
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xab5c6f74 gameport_stop_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xafee545d gameport_set_phys
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xcfe27321 gameport_unregister_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xed6fb345 gameport_close
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xf46eee79 __gameport_register_driver
+EXPORT_SYMBOL drivers/input/input-polldev 0x2c6b6228 input_unregister_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x516150ba input_register_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xb0704e40 input_allocate_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xb0a9e3b3 input_free_polled_device
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x4bfa5458 ad714x_remove
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xa05237a8 ad714x_disable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xcfd0d3e5 ad714x_probe
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xdec12a93 ad714x_enable
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x1bd9ab8f sparse_keymap_report_entry
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x4a8e6951 sparse_keymap_report_event
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x5f09e643 sparse_keymap_free
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x6e699d76 sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x87282498 sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xcf67d0d0 sparse_keymap_setup
+EXPORT_SYMBOL drivers/isdn/capi/capifs 0x5291ec49 capifs_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/capifs 0xbfee8c6b capifs_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x079cec82 capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x11e18d2c capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1a6bdfdf capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x327437c0 capi20_put_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5e3e1821 detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x68f69858 capi_ctr_suspend_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x74947136 capi_ctr_down
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xa7c4fd6c capi_message2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc10fe128 cdebbuf_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xce4e9cfa capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd9dca2e2 attach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe8ad9bd1 capi_cmsg2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xef200ffa capi20_register
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0700a185 b1_free_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x15ab8956 b1ctl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x36b188d8 b1_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x40c30423 b1_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x46ed03f6 b1_load_t4file
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6792b261 b1_loaded
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x69e3382d avmcard_dma_free
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x6afe2fa2 b1_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8b76ee44 b1_getrevision
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8e6347e0 b1_parse_version
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xaa4ee71f b1_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xad55df62 avmcard_dma_alloc
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xae675bca b1_alloc_card
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc7ea97be b1_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xedf32a95 b1_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf8d500c1 b1_load_config
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x233ca0dc b1dma_interrupt
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x4cc73210 b1dma_register_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6870b030 t1pci_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8bf5235a b1dma_load_firmware
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x8d4ceefc b1dma_reset_ctr
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x90264a02 b1dma_release_appl
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x93bc4e07 b1dma_reset
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc6e48d06 b1dmactl_proc_fops
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xfc279785 b1pciv4_detect
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xfe2345bd b1dma_send_message
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2
+EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1
+EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read
+EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0xc6cc3c10 proc_net_eicon
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x41594ea2 mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x5c1d472d mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x6ef02aab mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x767aaa81 mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x0f138d29 mISDNisar_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x250f8cba mISDNisar_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x148f0c99 FsmFree
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x427ea441 FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x5ee7fdf2 hisax_init_pcmcia
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x93a64734 FsmChangeState
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x9df0cd27 FsmEvent
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xa9a1ee40 FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xb4870f64 FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xee93522c hisax_register
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xf0a16657 FsmNew
+EXPORT_SYMBOL drivers/isdn/hisax/hisax 0xfc27303b HiSax_closecard
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x4ce33f6a isac_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xc1a4bb7a isac_setup
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xe01c3cae isacsx_irq
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf49c1c3b isac_init
+EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xf73b5475 isacsx_setup
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x33383801 isdn_ppp_unregister_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x66dd853c isdn_ppp_register_compressor
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x75e6d142 register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x080690e3 recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1645c40f mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1d1c6cba recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x39cc5f30 dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4c5c788d queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x656b2944 get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x75d8a378 mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7736e057 get_next_dframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8b54907a mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9b4ac028 recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9be986bc mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa6116d93 mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbafe7be1 mISDN_freedchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc1a230ef mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc80f01eb confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd1fd3f49 mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd7cd8344 recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xde4bad2c bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf0a32745 create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf5893b5d recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf6eea52f l1_event
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xff9bf348 mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register
+EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul
+EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp
+EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv
+EXPORT_SYMBOL drivers/md/raid6_pq 0xb0d904b7 raid6_empty_zero_page
+EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi
+EXPORT_SYMBOL drivers/media/IR/ir-core 0xb9e456f4 ir_raw_handler_register
+EXPORT_SYMBOL drivers/media/IR/ir-core 0xbe4b6c49 ir_raw_handler_unregister
+EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x31f366b7 max2165_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x04ddeb1c mc44s803_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x73c85e44 mt2060_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0xc37094dd mt2131_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x7ec36b38 mt2266_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xb0d5e93b mxl5005s_attach
+EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xdc744a9f qt1010_attach
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x414bc211 xc2028_attach
+EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xe567963d xc5000_attach
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x035d76dc flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0868b732 flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x15d4a553 flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x19b651f6 flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1c09fea5 flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1e2f8209 flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2afaa24b flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3010b615 flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4a8295db flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7c80573e flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9a122c4b flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa334c7fc flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa512ad66 flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xabad6272 flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc436921c flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcb7693b7 flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe46e3daf flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfa55340f flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfdf0bdc2 flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xffc6f3b9 flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x0d07c87c bt878_stop
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x4105ab8e bt878_start
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xdbd41fa4 bt878_device_control
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xf5857239 bt878
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x349dabb9 write_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x49f4718f dst_error_recovery
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4af1e7f0 dst_wait_dst_ready
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x539c1bd3 read_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x683d8f3e dst_error_bailout
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x85d9063d rdc_reset_state
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x8bad1ac4 dst_attach
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xb8d5a3e8 dst_comm_init
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xcaa523ee dst_pio_disable
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x0ee9b81d dst_ca_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00dee856 dvb_ca_en50221_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0ea4303b dvb_register_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x18287c59 dvb_unregister_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1de5dde2 dvb_ringbuffer_flush
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x261ad174 dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2c202fc3 dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x40714012 dvb_dmx_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x43286494 dvb_dmx_swfilter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x48fd6544 dvb_frontend_reinitialise
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4ee8ee89 dvb_dmx_swfilter_packets
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x53e71396 dvb_dmx_swfilter_204
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x67cc17e4 dvb_dmx_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x688c2da8 dvb_ringbuffer_empty
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x79e00c15 dvb_unregister_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7ae9387e dvb_net_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7f0d62ae dvb_ca_en50221_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x84528575 dvb_dmxdev_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x85d609e0 dvb_register_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x861565f6 dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x863bf410 dvb_ringbuffer_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x88dffd14 dvb_ringbuffer_free
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8b6b12c8 dvb_net_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90f80ed0 dvb_generic_ioctl
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9e889bd9 dvb_ringbuffer_avail
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb4efdcd5 dvb_frontend_detach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc6dcbe2c dvb_register_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc74b274e dvb_generic_open
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcb185e2c dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcf4e3f18 dvb_dmxdev_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd2e30721 dvb_ringbuffer_read_user
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf60b6219 dvb_unregister_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf764cbf8 dvb_ringbuffer_read
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfc3b495c dvb_ringbuffer_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfcad231a dvb_generic_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x15517e9b dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4edf748a dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x67e7b0f1 usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x6a79339e dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa679cc5f dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd3c16d8f dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xdaf299f9 dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x55089278 af9005_rc_decode
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x00f15a0d dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x0f84fe57 dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x300acd42 dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x36d6954f dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x80fe6de6 dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x81e46b7a dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb048a5fa dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xbb0de0d7 dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd8ae431b dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xda4e5812 dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf1abc696 dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xa74d0451 af9013_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x4072364d atbm8830_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x2980efb1 au8522_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xa9300a7e bcm3510_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xdbe99544 cx22700_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x861d1353 cx22702_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x30833517 cx24110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x66f33455 cx24113_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x72e52cac cx24113_agc_callback
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xc988a40f cx24116_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x1f851884 cx24123_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xc360a4c9 cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x37aba12c dib0070_get_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x75767cd1 dib0070_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7a28d6ca dib0070_set_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x85c55236 dib0070_ctrl_agc_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xc3c1c0bb dib0070_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x02a2665b dib0090_get_current_gain
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x0573ab26 dib0090_pwm_gain_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x1a030499 dib0090_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x4776fdf9 dib0090_dcc_freq
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xa08ff883 dib0090_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc16fb847 dib0090_gain_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xcb811be4 dib0090_register
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xda92f05e dib0090_get_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x30522f79 dib3000mb_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x1f186aa8 dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x2bba4b37 dib3000mc_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x2d6b5aa8 dib3000mc_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x79f2d3e9 dib3000mc_pid_parse
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa01f6ed2 dib3000mc_set_config
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xcdc152db dib3000mc_pid_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x0d71141e dib7000m_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x337503ac dib7000m_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x321746d7 dib7000pc_detection
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4adcf958 dib7000p_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x63115652 dib7000p_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x71185f1d dib7000p_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7de02980 dib7000p_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7eb5d823 dib7000p_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xaebb785a dib7000p_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xcaad46da dib7000p_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1d625c8b dib8000_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x301d17bf dib8000_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x41e3d669 dib8000_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x7dfa5f80 dib8000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x7f3ef192 dib8000_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x977e4a3a dib8000_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x9ad3d281 dib8000_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc669554e dib8000_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xcd7724a8 dib8000_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe02882d6 dib8000_pwm_agc_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xeab84fe3 dib8000_get_adc_power
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x1d3a141d dibx000_init_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x363c395f dibx000_reset_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x953a73a1 dibx000_exit_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xfc76f10e dibx000_get_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x14c0de02 ds3000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xbb7f156a dvb_pll_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x5b1b0ec2 isl6405_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x79214f5d isl6421_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6423 0x21d625b9 isl6423_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xb19818f1 itd1000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xeed2c1a5 l64781_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x39ac4f38 lgdt3305_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x8c5e67cb lgdt330x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xd9adb8d3 lgs8gxx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x4c5ead37 lnbp21_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xac5c5730 lnbh24_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x0c57042f mb86a16_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0xd86fe66a mt312_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x426cb473 mt352_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x285f8a8e nxt200x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xafd5eeb9 nxt6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x4829f36c or51132_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x003a940e or51211_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xcf5fc3bb s5h1409_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x10881096 s5h1411_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x0c00e7ba s5h1420_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0xe21b36ad s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x4a333d9a si21xx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x5963f581 sp8870_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x6beb99eb sp887x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x041700fd stb0899_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0xdc68c569 stb6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0x6ea26abd stb6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x9da1a1cb stv0288_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x6108071f stv0297_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xe2788218 stv0299_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xd2278468 stv0900_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xf6722d3c stv090x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x5b006c9a stv6110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x15d7dd33 stv6110x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10021 0xf55f18a4 tda10021_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x52649c59 tda10023_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x1dd6d335 tda10048_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x9dad7732 tda10045_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xf4bc568e tda10046_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x838a7667 tda10086_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xf2bd9a38 tda8083_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8261 0xd52b4cf1 tda8261_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xdc0b7a28 tda826x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tua6100 0x702bcf7f tua6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xece90acc ves1820_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x1e7ec1e5 ves1x93_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x4a736a16 zl10036_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xadcfda27 zl10039_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x49abe6c9 zl10353_attach
+EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x2f2dbe64 ttpci_eeprom_parse_mac
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xd382c712 ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xf845c6d8 ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x60806228 bttv_get_pcidev
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x860355e6 bttv_sub_register
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xdb9357a3 bttv_sub_unregister
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x2299d7f4 btcx_riscmem_alloc
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xff80d026 btcx_riscmem_free
+EXPORT_SYMBOL drivers/media/video/cpia 0x105fc11b cpia_unregister_camera
+EXPORT_SYMBOL drivers/media/video/cpia 0xb04fd02f cpia_register_camera
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x1598a92f cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x27e3bf1e cx18_release_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x4e982256 cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x848d2408 cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xc3bafad8 cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x627ceed0 cx231xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xdbdcfb27 cx231xx_register_extension
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x258d5604 vp3054_i2c_probe
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xe693fb7e vp3054_i2c_remove
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x01cef221 cx88_get_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x154516dc cx8800_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x3f35f161 cx88_set_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x7bd7d8eb cx88_set_freq
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xb9389711 cx88_video_mux
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xdc0268aa cx88_enum_input
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x50c90fc6 cx8802_buf_prepare
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x63eb7921 cx8802_get_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x661942f9 cx8802_unregister_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8f2d851c cx8802_register_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xa20d5486 cx8802_cancel_buffers
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xefce02e0 cx8802_buf_queue
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x046b413c cx88_free_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0ab97dd9 cx88_reset
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x12bdbed9 cx88_ir_stop
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x190ed388 cx88_risc_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2a0b1586 cx88_set_tvaudio
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2d39408a cx88_sram_channel_setup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x365e143a cx88_core_irq
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3e6ae275 cx88_set_stereo
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4fc51d97 cx88_wakeup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5d294101 cx88_sram_channel_dump
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x65cf1894 cx88_ir_start
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6c6cb9af cx88_core_get
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7214129e cx88_newstation
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x886fff7c cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b3e1518 cx88_set_scale
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa23f2830 cx88_risc_stopper
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xaf792e0e cx88_set_tvnorm
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc58c7314 cx88_vdev_init
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf71b5c32 cx88_core_put
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf8ebd0ec cx88_shutdown
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xfee7f6fd cx88_risc_databuffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xffffa428 cx88_get_stereo
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x7512f545 em28xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xf0b29ec3 em28xx_register_extension
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x16d40c0f gspca_frame_add
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x1f38cb8d gspca_dev_probe
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x21c622b2 gspca_resume
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x477e8012 gspca_auto_gain_n_exposure
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xb28c9f4a gspca_suspend
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xd3d3edcb gspca_disconnect
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xe73ed351 gspca_get_i_frame
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0bc7cf3e ivtv_set_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x12989bc6 ivtv_udma_alloc
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x12c2c43d ivtv_udma_prepare
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3e054fbc ivtv_api
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x458555db ivtv_init_on_first_open
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5d0b8b8c ivtv_udma_unmap
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9d33f45e ivtv_vapi_result
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd2c02a3a ivtv_udma_setup
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xddcd858b ivtv_clear_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe9af17f4 ivtv_vapi
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xeb24b3ac ivtv_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x188bc195 saa7134_pgtable_build
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x2a993e75 saa7134_dmasound_exit
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4b85fe77 saa7134_pgtable_free
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4e764a5e saa7134_set_dmabits
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4f582d46 saa7134_set_gpio
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x54b73a3c saa7134_pgtable_alloc
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8546fd0d saa7134_tvaudio_setmute
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x85e638d2 saa7134_devlist_lock
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x9e8ec820 saa7134_dmasound_init
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa5882112 saa7134_ts_unregister
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xcd7bc82a saa7134_ts_register
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xfaa40cfa saa_dsp_writel
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x632e80bb soc_camera_apply_sensor_flags
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xb5377b92 soc_camera_host_unregister
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xd8a5211c soc_camera_host_register
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xffb3de9a soc_camera_xlate_by_fourcc
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x080194e5 tveeprom_read
+EXPORT_SYMBOL drivers/media/video/tveeprom 0xe100c4a8 tveeprom_hauppauge_analog
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x4556cdc2 usbvideo_register
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x46f9f67a RingQueue_Dequeue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x47ab9093 usbvideo_RegisterVideoDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x50672177 RingQueue_WakeUpInterruptible
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x5126a5cd usbvideo_DeinterlaceFrame
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x858c91a3 usbvideo_AllocateDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xa675be1a usbvideo_Deregister
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd64d1b8a RingQueue_Enqueue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xef6a2a19 RingQueue_Flush
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xeff89e03 usbvideo_TestPattern
+EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x89dd1829 v4l_compat_translate_ioctl
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x82250075 v4l2_chip_ident_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xae2e39c1 v4l2_chip_match_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x1d42a50c v4l2_m2m_job_finish
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x6111efc1 v4l2_m2m_mmap
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x842e4383 v4l2_m2m_get_vq
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xe2e52ae8 v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x28435429 videobuf_dvb_find_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x6e547cff videobuf_dvb_register_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x769d60b6 videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xac69a8d4 videobuf_dvb_dealloc_frontends
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb4f4dbf9 videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xe139a67d videobuf_dvb_get_frontend
+EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period
+EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x1ae8f1fb video_register_device_no_warn
+EXPORT_SYMBOL drivers/media/video/videodev 0x32931a71 video_device_release_empty
+EXPORT_SYMBOL drivers/media/video/videodev 0x33a66255 video_device_release
+EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl
+EXPORT_SYMBOL drivers/media/video/videodev 0x6f415598 video_usercopy
+EXPORT_SYMBOL drivers/media/video/videodev 0x7f06dcd4 video_ioctl2
+EXPORT_SYMBOL drivers/media/video/videodev 0x95a3e231 video_unregister_device
+EXPORT_SYMBOL drivers/media/video/videodev 0xa88b9b6c video_devdata
+EXPORT_SYMBOL drivers/media/video/videodev 0xdfdde17f video_device_alloc
+EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct
+EXPORT_SYMBOL drivers/media/video/videodev 0xeaea887c video_register_device
+EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x0f04ff1a videocodec_attach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x15ef80ff videocodec_unregister
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xa7361cd2 videocodec_detach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xd8cc3561 videocodec_register
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x12be40f0 memstick_alloc_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x13b48244 memstick_free_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x21716c03 memstick_next_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x3a7861c0 memstick_unregister_driver
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x5e97f67d memstick_new_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x61175843 memstick_register_driver
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x9c375da2 memstick_resume_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0x9ed2ab01 memstick_detect_change
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5987a36 memstick_init_req
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xd058792c memstick_suspend_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xdd529d2c memstick_add_host
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xf145db31 memstick_set_rw_addr
+EXPORT_SYMBOL drivers/memstick/core/memstick 0xfbfbc116 memstick_remove_host
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x019aa763 mpt_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x059b2e00 mpt_free_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x16cc447f mptbase_sas_persist_operation
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x17f6a487 mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2219ec17 mpt_config
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x237e97ed mpt_event_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x26957113 mpt_detach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2df32585 mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x321338ba mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x41c4f16c mpt_findImVolumes
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x47641b0d mpt_reset_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x54dad4f3 mpt_HardResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x59f30589 mpt_attach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x65af4be4 mpt_GetIocState
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6fedd111 mpt_device_driver_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x831fc007 mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x848e5263 mpt_get_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8c2bf2bc mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa3e5bfd9 mpt_alloc_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa7f64167 mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xac74933a mpt_put_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb6ef40ea mpt_resume
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc2718bfc mpt_verify_adapter
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcdc0f4cf mpt_print_ioc_summary
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd752bc2b mpt_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd7caa7fc mpt_free_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe13f80be mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe6aba79a mpt_send_handshake_request
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf6f79353 mpt_halt_firmware
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1b55c7b7 mptscsih_change_queue_depth
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x22f6b560 mptscsih_event_process
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x236ac42f mptscsih_proc_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2690beed mptscsih_shutdown
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x31856214 mptscsih_taskmgmt_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x38e381ac mptscsih_dev_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x51cd96e9 mptscsih_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5b610074 mptscsih_is_phys_disk
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5cd8e80d mptscsih_scandv_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5fc99418 mptscsih_abort
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6f7bd230 mptscsih_host_attrs
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7d1d44cc mptscsih_ioc_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7dab437a mptscsih_io_done
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x80217896 mptscsih_remove
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x84b90a1b mptscsih_bios_param
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9ce827e0 mptscsih_host_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa390d7a1 mptscsih_qcmd
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa5a357b8 mptscsih_bus_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb1839203 mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb4f63f4e mptscsih_slave_configure
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc63fc2f7 mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xceba55b4 mptscsih_resume
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd0cf2804 mptscsih_raid_id_to_num
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdc36f159 mptscsih_slave_destroy
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xddfbb271 mptscsih_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xff269fc4 mptscsih_get_scsi_lookup
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0d4d9573 i2o_msg_get_wait
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x14c40e93 i2o_driver_notify_device_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1b5a654e i2o_exec_lct_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1c6d582a i2o_parm_field_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3713e352 i2o_find_iop
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x416374d4 i2o_event_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x57654a35 i2o_driver_notify_controller_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x860f5434 i2o_status_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8c4e9b5a i2o_driver_unregister
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8e2f30e0 i2o_parm_issue
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa0895a6a i2o_driver_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa263b4bf i2o_driver_notify_device_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb43fa0e9 i2o_parm_table_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbddbbfdf i2o_msg_post_wait_mem
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc3c81a88 i2o_device_claim_release
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd11be2bf i2o_device_claim
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe101af19 i2o_iop_find_device
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf9726cae i2o_driver_notify_controller_add_all
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xc9c31206 pasic3_read_register
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xd5617b21 pasic3_write_register
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x07c5579f mc13783_lock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x091f558c mc13783_reg_write
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x192b920c mc13783_reg_read
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x1c3d6570 mc13783_irq_ack
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2beb18e4 mc13783_irq_status
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3fce8b92 mc13783_irq_request
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x9af099be mc13783_reg_rmw
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xabc10f18 mc13783_irq_request_nounmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xbea31100 mc13783_irq_mask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xca04f7cd mc13783_irq_free
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xdd338810 mc13783_irq_unmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe284bb62 mc13783_unlock
+EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2
+EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1
+EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib
+EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led
+EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw
+EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x6174680f ad_dpot_remove
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xeee93d4b ad_dpot_probe
+EXPORT_SYMBOL drivers/misc/c2port/core 0x42ec0439 c2port_device_unregister
+EXPORT_SYMBOL drivers/misc/c2port/core 0x86fd7b08 c2port_device_register
+EXPORT_SYMBOL drivers/misc/ioc4 0x3821bc4a ioc4_register_submodule
+EXPORT_SYMBOL drivers/misc/ioc4 0x5342f33e ioc4_unregister_submodule
+EXPORT_SYMBOL drivers/misc/tifm_core 0x036cb5fd tifm_add_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x16040f67 tifm_unregister_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x271672f7 tifm_has_ms_pif
+EXPORT_SYMBOL drivers/misc/tifm_core 0x2a1cdc4a tifm_register_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x2a782030 tifm_unmap_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work
+EXPORT_SYMBOL drivers/misc/tifm_core 0x44934c60 tifm_alloc_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x498c9589 tifm_remove_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x588b7a2c tifm_alloc_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xb6d5a822 tifm_eject
+EXPORT_SYMBOL drivers/misc/tifm_core 0xbf4fea46 tifm_map_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0xc52015ee tifm_free_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xcc0c7ef3 tifm_free_device
+EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xbaad9cae mmc_cleanup_queue
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x5965f692 cfi_varsize_frob
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x90545bbb cfi_fixup
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd5fe87bd cfi_read_pri
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x406b75f7 do_map_probe
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x588876d4 register_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x5c33c8a1 map_destroy
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb3ebb392 unregister_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x53a01ac8 mtd_do_chip_probe
+EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xa4c79886 lpddr_cmdset
+EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x549538e5 simple_map_init
+EXPORT_SYMBOL drivers/mtd/mtd 0x62f90ab0 add_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtd 0xc088c09b del_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x3bd091b3 mtd_concat_create
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x6099d341 mtd_concat_destroy
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x71c0c287 nand_default_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand 0xca168826 nand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x61e49354 nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x8ea22201 nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x046b1197 onenand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xa3346f32 onenand_default_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xb5c62be9 onenand_addr
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xb9ce8e5f flexonenand_region
+EXPORT_SYMBOL drivers/net/8390 0x1d19d38a ei_tx_timeout
+EXPORT_SYMBOL drivers/net/8390 0x345a35bc ei_open
+EXPORT_SYMBOL drivers/net/8390 0x4d76455b __alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/8390 0x7822c82b ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390 0x7aeb75c0 NS8390_init
+EXPORT_SYMBOL drivers/net/8390 0x97b756d7 ei_get_stats
+EXPORT_SYMBOL drivers/net/8390 0xa5736edc ei_netdev_ops
+EXPORT_SYMBOL drivers/net/8390 0xace40206 ei_close
+EXPORT_SYMBOL drivers/net/8390 0xb6402000 ei_poll
+EXPORT_SYMBOL drivers/net/8390 0xc1727a7f ei_start_xmit
+EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt
+EXPORT_SYMBOL drivers/net/8390p 0x1c5751bd eip_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390p 0x3fbb0f1a __alloc_eip_netdev
+EXPORT_SYMBOL drivers/net/8390p 0x4e926e17 eip_close
+EXPORT_SYMBOL drivers/net/8390p 0x505910b7 eip_start_xmit
+EXPORT_SYMBOL drivers/net/8390p 0x72d797bf eip_get_stats
+EXPORT_SYMBOL drivers/net/8390p 0x847c881c eip_poll
+EXPORT_SYMBOL drivers/net/8390p 0xb448b3da eip_tx_timeout
+EXPORT_SYMBOL drivers/net/8390p 0xb663e226 eip_interrupt
+EXPORT_SYMBOL drivers/net/8390p 0xba17742e eip_netdev_ops
+EXPORT_SYMBOL drivers/net/8390p 0xdda204d3 NS8390p_init
+EXPORT_SYMBOL drivers/net/8390p 0xfa4c3075 eip_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0c721908 arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4ab1bde4 alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x58b78ab4 arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x60f10ee2 arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6e23d002 arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x980e78b4 arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa42ad592 arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xaec02e60 arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd8be7eb5 arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xedfa170b arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x7a44ff87 com20020_found
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0xa172a1e0 com20020_check
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0xf4204310 com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/bnx2 0x150cde16 bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/bnx2x 0xc2561327 bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/cnic 0x87061c39 cnic_register_driver
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1b29dc7d t3_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3bee9f1f cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x45ee7679 t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4cb11eb5 cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4da50c08 cxgb3_register_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5b7f0875 dev2t3cdev
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5e343bf4 cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x7a055b7c cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8b8facb5 cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa4c1e9a1 cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa4dbed3a t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa51f974f t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa75e737e cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc1c74b60 cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfb54a37c cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xfe17eafe t3_l2e_free
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x010d082e cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x0a6fcc71 cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x106c3862 cxgb4_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x211e2c6e cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x24c7e500 cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x331daa97 cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6251999e cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6634d25d cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6a9974cf cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x73041740 cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x730ecfb0 cxgb4_create_server6
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8e5ab2b3 cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x93b892f6 cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x97be318f cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb01c0c43 cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd77c21f0 cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe78155e5 cxgb4_netdev_by_hwid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe9af18d3 cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf243578c cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf3dd8056 cxgb4_create_server
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x2d81470d hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x660f32af hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x9c431f25 hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc0124aae hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xee200f97 hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2fec62c7 sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x44591e4c irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4502b766 sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x787175cc irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7aba5885 sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x82decacf sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd28d9462 sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xea132ced sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf7252eb9 sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfd35a8a4 sirdev_get_instance
+EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage
+EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl
+EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart
+EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag
+EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe
+EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an
+EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok
+EXPORT_SYMBOL drivers/net/mii 0x2c35c265 mii_check_media
+EXPORT_SYMBOL drivers/net/mii 0x34386496 mii_ethtool_sset
+EXPORT_SYMBOL drivers/net/mii 0x5aa3e4f7 mii_check_gmii_support
+EXPORT_SYMBOL drivers/net/mii 0x5e57cb3f mii_ethtool_gset
+EXPORT_SYMBOL drivers/net/mii 0x815cd5e5 mii_check_link
+EXPORT_SYMBOL drivers/net/mii 0xae2d3388 mii_nway_restart
+EXPORT_SYMBOL drivers/net/mii 0xd982bd2d generic_mii_ioctl
+EXPORT_SYMBOL drivers/net/mii 0xe4e96813 mii_link_ok
+EXPORT_SYMBOL drivers/net/pppox 0x9aefa94c pppox_ioctl
+EXPORT_SYMBOL drivers/net/pppox 0x9ef6612e pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/pppox 0xcd9b7d0a register_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/sungem_phy 0x45031fe3 mii_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x7d0549d7 tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x9cd53779 tmsdev_term
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xab86e75c tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xc41cd58b tms380tr_close
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xdd53bce9 tms380tr_open
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x0d83909e alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x14dee49a unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x1bf3bc72 register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x272ba276 hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x392ea316 hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x754810b7 attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x8c2f30b1 hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x8fc3f71f unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xa35eea1a detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xbb07d002 hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xcf111558 hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port
+EXPORT_SYMBOL drivers/net/wan/z85230 0x18995fcd z8530_sync
+EXPORT_SYMBOL drivers/net/wan/z85230 0x213abac6 z8530_interrupt
+EXPORT_SYMBOL drivers/net/wan/z85230 0x21ed1d01 z8530_sync_txdma_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0x227877ea z8530_init
+EXPORT_SYMBOL drivers/net/wan/z85230 0x530f031b z8530_queue_xmit
+EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream
+EXPORT_SYMBOL drivers/net/wan/z85230 0x692b08a2 z8530_channel_load
+EXPORT_SYMBOL drivers/net/wan/z85230 0x92ccb26c z8530_sync_open
+EXPORT_SYMBOL drivers/net/wan/z85230 0x933c2194 z8530_sync_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0x9a6d268d z8530_null_rx
+EXPORT_SYMBOL drivers/net/wan/z85230 0x9fb54408 z8530_sync_dma_close
+EXPORT_SYMBOL drivers/net/wan/z85230 0xa03eb5a4 z8530_nop
+EXPORT_SYMBOL drivers/net/wan/z85230 0xadb216a7 z8530_sync_dma_open
+EXPORT_SYMBOL drivers/net/wan/z85230 0xd1b45a69 z8530_shutdown
+EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230
+EXPORT_SYMBOL drivers/net/wan/z85230 0xf417181a z8530_describe
+EXPORT_SYMBOL drivers/net/wan/z85230 0xfefb0fd5 z8530_sync_txdma_open
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xb34fdde5 i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x07a838b0 init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x2a12323e stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x45f2981e reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0f8438b9 ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1242e3d6 ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x250d64e0 ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x75edfd3b ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x254384c3 ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x64d73aef ath9k_cmn_rx_skb_preprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x71afa2f3 ath9k_cmn_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x9ebc5e53 ath9k_cmn_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd0eae519 ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe6d8e919 ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xebb8b7cf ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x01600425 ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02e447e2 ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x034e34e1 ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x03f56908 ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x076ed92d ath9k_hw_keysetmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09ecf76a ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e462193 ath9k_hw_setcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e694a52 ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1765fd12 ath9k_hw_set_keycache_entry
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x18ca70e0 ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b10d8e0 ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b54e956 ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c47b19d ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1fa70cae ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x21095a3a ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a193e94 ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x386afe46 ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3954dce7 ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x39cfe292 ath9k_hw_procmibevent
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b39d585 ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3f8f5def ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x401c18b6 ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x426349bb ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x478eefb1 ath9k_hw_stoppcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x486d2e08 ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a56f990 ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x502bf76a ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59d15f4e ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c5ec15b ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5eea0b9d ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x60205036 ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x631ad267 ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63f3d6f6 ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x651664bc ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68520e2a ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b51da6c ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b5b1ce9 ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b9e23e2 ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7084d90b ath9k_hw_setmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72c5142d ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73e9cd6d ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75f79d78 ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76d80c12 ath9k_hw_stoptxdma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76e55a13 ath9k_hw_cleartxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x793fc1f7 ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79cb78c6 ath9k_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79ed4895 ath9k_hw_keyisvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c45dee0 ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e057cde ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8144f703 ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b3177ad ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d89c558 ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x911e27aa ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9508a91f ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x96c03a26 ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9efcbba3 ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f753e38 ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa036df55 ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa23c88c9 ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2b5c6f6 ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2b83e33 ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa93f1fef ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac80b1f7 ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb889778c ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3dd48bc ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc908eec ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xceada8ec ath9k_hw_extend_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcfaba91a ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd02ee55f ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0a607ee ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd54b5938 ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5d63f9b ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd71ec99d ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda830560 ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb18f28d ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf00810b ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe0b751d4 ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe23c1ddb ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed44b181 ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee4f7310 ath9k_hw_getcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4049afa ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff0affdb ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x994812f5 stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xb9a768bd init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xd082491c atmel_open
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x03d87618 hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0621cc1f hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1146ce33 hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1316807a hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1e886975 hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2161419b hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x333cb791 hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4f7dacbc hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5d469b2c hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6c9d8f86 prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6dffa4ef hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x821636bd hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x86c1a3e4 hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8f4dcf4a hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x94ad1803 hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x951dd3f6 hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x97b22e94 hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb7ab85e2 hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbd2a8e0c hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbe6a1c68 hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcf9900fb hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd20eff90 hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf01d52d8 hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf2c4b581 hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xff374283 hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x051c2f81 libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x262735ad libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2699698f libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3a2969b5 libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4b16ca18 libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x611e916a libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6d6a973a libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6e0a0e5c free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7244ec75 libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x74f21238 libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7902f30e libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x845157f1 libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x91591aa9 libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9cdcae19 libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9fb9a241 libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa79402e4 libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xab7deb19 alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xad7082fc libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc29f3003 libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc2a93cc0 libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdfa130a3 libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x00cac5bc iwl_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x01fc11df iwl_rate_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03f2e8c5 iwl_bg_start_internal_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x065e216c iwl_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x09b66478 iwl_rx_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0f9e2ebb iwl_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1182b743 iwl_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x13a46a5d iwl_set_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1488459e iwl_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14a2e067 iwl_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x176d9d41 iwl_init_sensitivity
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x18ea7fbf iwl_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a37692d iwl_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1aebf8d0 iwl_leds_background
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1f056e8f iwl_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21be8426 iwl_rf_kill_ct_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x21e3e7d4 iwl_eeprom_check_version
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x22f8ad06 iwl_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x27073907 iwl_sta_rx_agg_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2ac68a81 iwl_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b0d5e14 iwl_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2c1c9160 iwlcore_eeprom_verify_signature
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2c27d3d3 iwl_rx_missed_beacon_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2e843da2 iwl_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2ef25279 iwl_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x31508296 iwl_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32917bef iwl_sensitivity_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x343073cc iwl_bg_scan_check
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37ed6286 iwl_tt_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x39f54f15 iwl_send_calib_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3e102b49 iwl_tt_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x410205c8 iwl_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41dc7efb iwl_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x42f7052e iwl_force_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x487885d7 iwl_set_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4ab2922c iwl_recover_from_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4b3bc2f3 iwl_dump_csr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4ba396d2 iwl_set_hw_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4ba3a6ec iwl_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e1a29c7 iwl_restore_default_wep_keys
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5093646a iwl_bg_abort_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50b97f67 iwl_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5143970c iwl_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x53df6491 iwl_sta_tx_modify_enable_tid
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x562f772b iwlcore_eeprom_release_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5a1c5f43 iwl_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5bedb6c6 iwlcore_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5d878614 iwl_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5f548be1 iwl_set_rxon_chain
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5f697a64 iwlcore_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x600e6de7 iwl_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6172d87c iwl_add_bssid_station
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6253c614 iwl_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62727d56 iwl_calib_set
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x67b259ac iwl_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x68a07500 iwl_remove_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6b094948 iwl_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c033b83 iwl_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6cc244d3 iwl_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7022cfc5 iwl_sta_modify_ps_wake
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x72f64e04 iwl_ht_enabled
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x736cff59 iwl_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7377d8ed iwl_chain_noise_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7b48b763 iwl_tx_ant_restriction
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x80185101 iwl_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x81d8d598 iwl_hw_detect
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8343c058 iwl_configure_filter
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x83cbb4d0 iwl_update_tkip_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85720fa6 iwl_bg_scan_completed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x867b94e6 iwl_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x87ab5334 iwl_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x87fd3f42 iwl_dump_fh
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a8a8a8a iwl_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8b1b297f iwl_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8c396c24 iwl_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8c9eb7db iwl_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8f6dbf1a iwl_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8fca2a81 iwl_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8ffceb54 iwl_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x902a0d35 iwl_free_tfds_in_queue
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x940c51aa iwlcore_rts_tx_cmd_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x94166cf1 iwl_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x98040641 iwl_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9b501967 iwl_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9d3a1549 iwl_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9dd4c33e iwl_led_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9f182af8 iwl_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa4ec575e iwl_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa53c1989 iwl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa6581e8c iwl_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa8933835 iwlcore_eeprom_enhanced_txpower
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa9157ab7 iwl_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa93e5d10 iwl_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa9498035 iwl_reply_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaa52360f iwl_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb166846a iwl_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb2547bf8 iwl_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb3dc7e81 iwl_tt_enter_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb52a6dee iwl_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb7756cc2 iwl_sta_rx_agg_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbac8aea5 iwl_free_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbefc26fc iwl_eeprom_get_mac
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc327f6e0 iwl_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc67f22d1 iwl_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc68dbff8 iwl_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc7505cc5 iwl_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc83af9ab iwl_sta_modify_sleep_tx_count
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcaa82ed9 iwl_tt_handler
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf688aef iwl_tt_exit_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd2131897 iwl_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd2aa7c20 iwl_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd36c09a1 iwl_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd3d043c1 iwl_mac_beacon_update
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd5d0fc02 iwl_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd8aded7c iwl_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd93305ec iwl_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdd0d9e5d iwl_setup_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdfea9126 iwlcore_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe2fe4bc4 iwl_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe39b7837 iwlcore_eeprom_acquire_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xea2a46ec iwl_calib_free_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeba8bde7 iwl_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf02accbe iwl_good_plcp_health
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf334ec50 iwl_verify_ucode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa113bc7 iwl_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfb290223 iwl_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfb47b2b7 iwl_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfd268a72 iwl_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfd4c761d iwl_remove_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe3c51c6 iwl_reset_run_time_calib
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfffc55b1 iwl_toggle_tx_ant
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0d0a6dc7 orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3519366a free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3531dd07 orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x41241e29 orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x44a1eb51 orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x487fd785 orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5031644b alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x50c26af1 __orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x53fef7eb orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5a39bbc5 orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x71a2e6eb orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7c7592e5 orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x916f08bc hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbaae4c5f orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xcd70211a orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf49f34ce __orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfe7d4d3c orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/parport/parport 0x09c9d198 parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL drivers/parport/parport 0x1553ae58 parport_claim_or_block
+EXPORT_SYMBOL drivers/parport/parport 0x1cccefed parport_ieee1284_read_byte
+EXPORT_SYMBOL drivers/parport/parport 0x24c86b23 parport_wait_peripheral
+EXPORT_SYMBOL drivers/parport/parport 0x292d6df9 parport_release
+EXPORT_SYMBOL drivers/parport/parport 0x300b6989 parport_register_device
+EXPORT_SYMBOL drivers/parport/parport 0x394d40bf parport_unregister_driver
+EXPORT_SYMBOL drivers/parport/parport 0x39d9d1d1 parport_ieee1284_write_compat
+EXPORT_SYMBOL drivers/parport/parport 0x450a2752 parport_claim
+EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt
+EXPORT_SYMBOL drivers/parport/parport 0x58783d70 parport_negotiate
+EXPORT_SYMBOL drivers/parport/parport 0x59efb162 parport_remove_port
+EXPORT_SYMBOL drivers/parport/parport 0x5a330f51 parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0x6817568c parport_ieee1284_epp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x903e183b parport_put_port
+EXPORT_SYMBOL drivers/parport/parport 0x90f1b7d0 parport_ieee1284_epp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler
+EXPORT_SYMBOL drivers/parport/parport 0x9eebe337 parport_find_number
+EXPORT_SYMBOL drivers/parport/parport 0xaa1fa146 parport_get_port
+EXPORT_SYMBOL drivers/parport/parport 0xb4bb149b parport_ieee1284_read_nibble
+EXPORT_SYMBOL drivers/parport/parport 0xcb86c56a parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0xccd5c149 parport_write
+EXPORT_SYMBOL drivers/parport/parport 0xcf220709 parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0xd0ccc679 parport_register_driver
+EXPORT_SYMBOL drivers/parport/parport 0xe195bf93 parport_set_timeout
+EXPORT_SYMBOL drivers/parport/parport 0xe1f04dc4 parport_read
+EXPORT_SYMBOL drivers/parport/parport 0xe23473da parport_wait_event
+EXPORT_SYMBOL drivers/parport/parport 0xeae0fda0 parport_register_port
+EXPORT_SYMBOL drivers/parport/parport 0xee6181e6 parport_unregister_device
+EXPORT_SYMBOL drivers/parport/parport 0xeefcf153 parport_announce_port
+EXPORT_SYMBOL drivers/parport/parport 0xef5bf7ae parport_find_base
+EXPORT_SYMBOL drivers/parport/parport 0xfd065ed4 parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL drivers/parport/parport_pc 0x3f6ebeef parport_pc_unregister_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0x691338fb parport_pc_probe_port
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x098858f4 pcmcia_request_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x135eb181 pcmcia_get_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x23541639 pcmcia_modify_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x27d3ba4e pcmcia_disable_device
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x29a922f4 pcmcia_map_mem_page
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3d785ee1 pcmcia_request_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x59aabbae pcmcia_access_configuration_register
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x65553aff pcmcia_loop_config
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6714c3f7 pcmcia_register_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7587f0b1 pcmcia_dev_present
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7a35d692 pcmcia_release_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x82c48d35 pcmcia_request_io
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9d938650 __pcmcia_request_exclusive_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbbd4fe4d pcmcia_loop_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc1126cf2 pcmcia_request_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe570e200 pcmcia_get_mac_from_cis
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf7657596 pcmcia_unregister_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0102b3a1 pcmcia_parse_uevents
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x03dca2e6 pcmcia_register_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x238a73e4 pcmcia_unregister_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3ce96a98 pcmcia_reset_card
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5ec86311 pcmcia_put_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x62610a8d pcmcia_parse_events
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x70d4742b pcmcia_get_socket_by_nr
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaf220c80 pcmcia_socket_class
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb46d1416 pcmcia_socket_list_rwsem
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xda8b3a2a pcmcia_get_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe8e42807 pccard_register_pcmcia
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x2cf6fe4f pccard_static_ops
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x91aca677 pccard_nonstatic_ops
+EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command
+EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x5416d07c pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event
+EXPORT_SYMBOL drivers/scsi/53c700 0x0b2e4b62 NCR_700_release
+EXPORT_SYMBOL drivers/scsi/53c700 0x7fc3976c NCR_700_detect
+EXPORT_SYMBOL drivers/scsi/53c700 0xf13d9adc NCR_700_intr
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x02ee5bf5 fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x08c2235f fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x16a4b8a1 fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x45114b41 fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8892c3ac fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb7f3db24 fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd4e910e1 fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x04451aab fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x098a52ee libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x09c69f1d fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1308a54e fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1556abf2 fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1e1fab82 fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x20aaa77f fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x39f2b762 fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x405d3c72 fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4688c6a8 fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x51f5d038 fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f3e27a9 fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76c39afe fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7c9a082b fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8097a886 fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x840c337e fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x85c9b669 fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x94396e24 fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9664479d fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x98287d91 fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9b7c92f6 fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9da0132a fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xadf5b308 fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xae52cab4 _fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaf860006 fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb41df1f2 fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb83000ae fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb9ede7e1 fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbaa8ee6a fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbd2cf22a fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc7d03914 fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb0c7bf8 fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce650b9a fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcef4495f fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcfc92eb3 fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe36ee89b fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe78f7947 fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe7c2ba18 fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe82d3fbc fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xebfa752b fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf1880475 fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf73ecec8 fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x13353687 mraid_mm_register_adp
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x027f1529 osd_req_remove_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x112d997e osd_execute_request_async
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x12f9bbc5 osd_req_flush_obsd
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x13413be9 osd_req_flush_collection
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x228c5b26 osd_req_add_set_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2838897c osd_start_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x29ff45eb osd_req_add_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2de567bd osd_req_list_dev_partitions
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2f23ced8 osd_req_set_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x32b089be osd_req_decode_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x36240528 osd_req_flush_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x365e917b osd_dev_fini
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x383fa1e3 osd_req_create_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x45f5fbed osd_auto_detect_ver
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x47761722 osd_req_write_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x60b3d738 osd_req_read
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x66a05934 osd_req_write
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6ad933db osd_req_get_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6cd2c146 osd_req_format
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7289f9be osd_execute_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x78721dbb osd_req_list_partition_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7f1cdf68 osd_req_list_partition_collections
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x84cbb653 osd_finalize_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x909690c0 osd_req_add_get_attr_page
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9de51b45 osd_dev_init
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa520f15d osd_req_read_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb959db5a osd_req_list_collection_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc39540f8 osd_req_flush_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcee3ed1d osd_req_remove_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xde150521 osd_end_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe6f002d7 osd_req_decode_sense_full
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe7789780 osd_req_create_partition
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x0a276857 osduld_put_device
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x1cd3a645 osduld_path_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x2e06c626 osduld_device_info
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x81f8ad6e osduld_register_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xa2d3fd47 osduld_device_same
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xb7e1f32e osduld_info_lookup
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1345d0bf qlogicfas408_biosparam
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x6305d4f3 qlogicfas408_abort
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x66544e36 qlogicfas408_disable_ints
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x7ec43214 qlogicfas408_info
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8a17b873 qlogicfas408_queuecommand
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd8d6c481 qlogicfas408_bus_reset
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup
+EXPORT_SYMBOL drivers/scsi/raid_class 0x457a2ecb raid_class_release
+EXPORT_SYMBOL drivers/scsi/raid_class 0x844d4193 raid_component_add
+EXPORT_SYMBOL drivers/scsi/raid_class 0x8876d7ad raid_class_attach
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x04005dd7 fc_host_post_vendor_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0cdd9c62 fc_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x182ef890 fc_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x25760af3 fc_remote_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2611144a fc_block_scsi_eh
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3233aa2d fc_remote_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3711f90e scsi_is_fc_vport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3ad8d216 fc_host_post_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7184ca87 fc_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8e8b3ea8 scsi_is_fc_rport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe7c514d0 fc_vport_terminate
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf637109e fc_vport_create
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xff6bf1b3 fc_remote_port_rolechg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x01dc0548 sas_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x03794b48 scsi_is_sas_rphy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0bac56dd sas_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0d30e9f3 sas_phy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0ec10907 sas_port_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x16f080a9 sas_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x17e8fd16 sas_remove_children
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1ab73162 sas_port_mark_backlink
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2a74a4c6 scsi_is_sas_port
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x401ec708 sas_port_delete_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x45ce4e5c sas_rphy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4a6657c7 sas_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x70485d89 sas_port_add_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x82e44147 sas_phy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8af237f8 sas_end_device_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8b46bca5 sas_phy_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9a1d7c83 sas_port_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa10b5b84 sas_phy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa145cdd1 sas_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa2939610 sas_rphy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb126e09b sas_rphy_remove
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc1021e64 sas_expander_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc32ed00d sas_read_port_mode_page
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdf3ee208 sas_port_alloc_num
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe2063942 sas_rphy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe562a8c0 scsi_is_sas_phy
+EXPORT_SYMBOL drivers/ssb/ssb 0x1b8f877d ssb_driver_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0x1e57d9e9 ssb_clockspeed
+EXPORT_SYMBOL drivers/ssb/ssb 0x2ffe0efa ssb_dma_set_mask
+EXPORT_SYMBOL drivers/ssb/ssb 0x366450fd __ssb_driver_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x3ef18a1a ssb_dma_translation
+EXPORT_SYMBOL drivers/ssb/ssb 0x4af0bbad ssb_bus_suspend
+EXPORT_SYMBOL drivers/ssb/ssb 0x6c79fe46 ssb_bus_may_powerdown
+EXPORT_SYMBOL drivers/ssb/ssb 0x6dff3db9 ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL drivers/ssb/ssb 0x7944ecc4 ssb_bus_resume
+EXPORT_SYMBOL drivers/ssb/ssb 0x7e1ce0db ssb_bus_sdiobus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x7fed4c3f ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL drivers/ssb/ssb 0xabf64702 ssb_pcihost_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xaf2b2d04 ssb_dma_free_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0xbc952544 ssb_device_is_enabled
+EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base
+EXPORT_SYMBOL drivers/ssb/ssb 0xc4c47e62 ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0xc4f3ad53 ssb_bus_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0xca839045 ssb_dma_alloc_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0xcc8d62d7 ssb_bus_powerup
+EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size
+EXPORT_SYMBOL drivers/ssb/ssb 0xd9618ba8 ssb_bus_pcibus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xdc3bb961 ssb_chipco_gpio_control
+EXPORT_SYMBOL drivers/ssb/ssb 0xe1947bd8 ssb_set_devtypedata
+EXPORT_SYMBOL drivers/ssb/ssb 0xe91eb10f ssb_device_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0xfed937ac ssb_device_disable
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x033287bf comedi_buf_get
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x144d5c48 comedi_driver_unregister
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x18df47c8 comedi_buf_write_alloc
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4051b9f1 comedi_check_chanlist
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x660544c8 comedi_buf_put
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x78050d29 comedi_event
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8113872c range_unipolar10
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x8339ed0b comedi_buf_read_n_available
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x9280fece comedi_driver_register
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0x970340d2 comedi_error
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xb4cf4f26 comedi_buf_read_free
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xc0a63187 comedi_buf_read_alloc
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xd568be55 comedi_get_subdevice_runflags
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xdcb7c680 comedi_buf_memcpy_to
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xe572f491 comedi_buf_memcpy_from
+EXPORT_SYMBOL drivers/staging/comedi/comedi 0xed922956 comedi_buf_write_free
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x66ddea2f subdev_8255_cleanup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0x7a97b81a subdev_8255_interrupt
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xa2c88e9d subdev_8255_init
+EXPORT_SYMBOL drivers/staging/comedi/drivers/8255 0xf96e5674 subdev_8255_init_irq
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0x07ac97cc cfc_write_array_to_buffer
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xc5a2bcd8 cfc_handle_events
+EXPORT_SYMBOL drivers/staging/comedi/drivers/comedi_fc 0xd57a5117 cfc_read_array_from_buffer
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x0af610b9 mite_release_channel
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x146bc558 mite_dma_tcr
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x192cfa56 mite_buf_change
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x19473847 mite_get_status
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x45e5abd2 mite_setup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x60ed55ed mite_dma_arm
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x63933000 mite_setup2
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6a017351 mite_bytes_in_transit
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6a96ba5e mite_bytes_read_from_memory_ub
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x6d2f7f14 mite_prep_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x762e5368 mite_bytes_written_to_memory_lb
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x776b53a2 mite_done
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0x9a4b6818 mite_request_channel_in_range
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xcb465747 mite_devices
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xcfe2a0f7 mite_bytes_read_from_memory_lb
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xd35a49c1 mite_bytes_written_to_memory_ub
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xde994197 mite_dma_disarm
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xdfe12c69 mite_sync_output_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xe6bc521e mite_unsetup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xf3b6ec72 mite_sync_input_dma
+EXPORT_SYMBOL drivers/staging/comedi/drivers/mite 0xfb3ba025 mite_list_devices
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x13971f05 subdev_700_init
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x22b33437 subdev_700_interrupt
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0x7d127b1c subdev_700_init_irq
+EXPORT_SYMBOL drivers/staging/comedi/drivers/ni_daq_700 0xbb48ccaa subdev_700_cleanup
+EXPORT_SYMBOL drivers/staging/comedi/drivers/pcm_common 0xf250fac1 comedi_pcm_cmdtest
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x29bd0313 comedi_dio_bitfield
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x50bd0ba7 comedi_find_subdevice_by_type
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x71b2dc91 comedi_dio_config
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x74a8c943 comedi_open
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0x80f1ceee comedi_get_n_channels
+EXPORT_SYMBOL drivers/staging/comedi/kcomedilib/kcomedilib 0xcfea465b comedi_close
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x0edd600c cx25821_dev_unregister
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x3c886e20 cx25821_dev_get
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x471e1cfb cx25821_devlist
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x47441942 cx25821_sram_channel_setup
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x67cc5b8b cx25821_sram_channels
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x6dbaa9ec cx25821_set_gpiopin_direction
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x784853c3 cx25821_print_irqbits
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0x7a8c2045 cx25821_sram_channel_dump_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xa2c5931d cx25821_sram_channel_setup_audio
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xc8797d07 cx25821_sram_channel_dump
+EXPORT_SYMBOL drivers/staging/cx25821/cx25821 0xd5ba3572 cx25821_risc_databuffer_audio
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x04b2930b go7007_remove
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x16376163 go7007_snd_remove
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x3957539e go7007_boot_encoder
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x53bd9a5b go7007_parse_video_stream
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0x5f872b74 go7007_read_addr
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xaf6fdddb go7007_alloc
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xdc19a8f7 go7007_read_interrupt
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xe89cf657 go7007_register_encoder
+EXPORT_SYMBOL drivers/staging/go7007/go7007 0xf96eedda go7007_snd_init
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x10a885b7 hv_cb_utils
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x253f3d14 vmbus_get_interface
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x2e0351a8 chn_cb_negotiate
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x4102ac95 VmbusChannelRecvPacket
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x7740f07b vmbus_child_driver_unregister
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x77ff9d0f vmbus_child_driver_register
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0x848c170c VmbusChannelSendPacket
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xd821e183 prep_negotiate_resp
+EXPORT_SYMBOL drivers/staging/hv/hv_vmbus 0xdf1a5ef6 vmbus_loglevel
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1081ccb9 iio_trigger_attach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x11a48c13 iio_scan_el_show
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x19457dd1 iio_ring_buffer_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x1c86949c iio_store_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x25cf04a7 iio_scan_el_ts_show
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x2f338f4a iio_add_event_to_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x308b5ac2 iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3d446dbf iio_free_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x3e40b00b iio_trigger_poll
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x4bacafa3 iio_write_ring_length
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x56cfe665 iio_trigger_read_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x592875b0 iio_read_const_attr
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x604edc08 iio_register_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x6fbbf9de iio_allocate_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x739ae300 iio_devt
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x78e02c28 __iio_push_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x79935af6 iio_read_ring_length
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x7c697f4a iio_scan_el_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8096949b iio_scan_el_ts_store
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x83f41d0f iio_trigger_notify_done
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x893f725d iio_free_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x8a3afa7a iio_device_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9182d5a4 iio_device_unregister_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x99ceb4e4 iio_unregister_interrupt_line
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0x9bfa4969 iio_read_ring_bps
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xa744e095 iio_trigger_unregister
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xac471936 iio_allocate_device
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xae536d23 iio_trigger_dettach_poll_func
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb0e81791 iio_free_trigger
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb2fb0779 iio_push_or_escallate_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xb60bef1c iio_get_new_idr_val
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xbe4ff69e iio_device_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc0555455 iio_bus_type
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xc541d2e0 iio_push_ring_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd3300b1c iio_ring_buffer_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd574a389 __iio_change_event
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd67ff634 iio_ring_buffer_init
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xd682c80f iio_trigger_find_by_name
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xde5062ca iio_remove_event_from_list
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfbe8a030 iio_device_register_trigger_consumer
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xfd73ce73 iio_trigger_register
+EXPORT_SYMBOL drivers/staging/iio/industrialio 0xff49d118 iio_show_ring_enable
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x01124c8a iio_sw_rb_free
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x1061f10e iio_read_last_from_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x10e9a75b iio_mark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x1a0d56b5 iio_sw_rb_allocate
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x2024ecb1 iio_store_to_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x5c61413a iio_get_length_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6b3008c4 iio_request_update_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6b6e2d23 iio_unmark_sw_rb_in_use
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x6f5faa8c iio_get_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0x8f78e970 iio_set_bpd_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xa4d41658 iio_rip_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xdb2eccc8 iio_mark_update_needed_sw_rb
+EXPORT_SYMBOL drivers/staging/iio/ring_sw 0xf5885abd iio_set_length_sw_rb
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x4af3e45d variax_remove_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0x68b01146 pod_remove_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0xdac5f59d variax_create_files
+EXPORT_SYMBOL drivers/staging/line6/line6usb 0xe9dbd216 pod_create_files
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0x0be65bf8 rar_reserve
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0x62fd276e rar_release
+EXPORT_SYMBOL drivers/staging/memrar/memrar 0xb260e0b9 rar_handle_to_bus
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x0072de2f rar_get_address
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0x795dda28 rar_lock
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xd0430f9f unregister_rar
+EXPORT_SYMBOL drivers/staging/rar_register/rar_register 0xdc043a43 register_rar
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0099f8dc ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x020fc98c HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0302f480 IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1175329f ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x199d26e2 ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1b2c4137 ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1c29e185 ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1d954c23 ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2be6d139 ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x35b2ec24 DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x36f2e36f ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3c9e5b85 ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3df64282 Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x43d20a33 ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4690c268 ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x475f0062 ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x47da60f2 ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a053ca4 ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c51254c ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x57ba2711 ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x63260f07 ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x63353228 ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x65fc6305 ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c362615 DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6cbdcfbe ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x71616db8 ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7a163e2e ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7d64785c ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x81724a3b ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x83795965 ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8e13e911 ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x92bb9f46 ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9f859c50 ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa146315f ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa45dec9b ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa4ad7c4f ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaa467c77 ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaab66b47 ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbfe4c79b ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc0023d3d notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc19b4a52 Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc98a939b ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xca249758 ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd57656ae ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe0632d4a ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe0fb9ff1 ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe37e36e7 SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xec5b0622 ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xec6b009a ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf3ac78c9 ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf8e39788 ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfa6e652e Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfba872e1 ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfee2509e ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x877c9aeb tm6000_register_extension
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xa16fb786 tm6000_unregister_extension
+EXPORT_SYMBOL drivers/staging/vme/vme 0x00d7e722 vme_lm_count
+EXPORT_SYMBOL drivers/staging/vme/vme 0x022daf76 vme_register_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x03c84420 vme_unregister_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x072f901c vme_master_rmw
+EXPORT_SYMBOL drivers/staging/vme/vme 0x091414b6 vme_slot_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0af7e58a vme_register_bridge
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0bd05eea vme_dma_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0e10859d vme_lm_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0x0ec5babe vme_dma_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x325b68c0 vme_irq_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x35ac2abf vme_irq_generate
+EXPORT_SYMBOL drivers/staging/vme/vme 0x374cdc72 vme_irq_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x3f68d4cf vme_lm_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x400924f8 vme_bus_type
+EXPORT_SYMBOL drivers/staging/vme/vme 0x41862ad4 vme_alloc_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0x43f2fc28 vme_lm_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0x48b99a13 vme_lm_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x4a813911 vme_unregister_driver
+EXPORT_SYMBOL drivers/staging/vme/vme 0x6666140f vme_dma_pci_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x6f3c84a0 vme_dma_list_exec
+EXPORT_SYMBOL drivers/staging/vme/vme 0x76bab4d4 vme_master_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7797a741 vme_dma_vme_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7cf35220 vme_master_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0x7fde2edb vme_master_read
+EXPORT_SYMBOL drivers/staging/vme/vme 0x83ca49cb vme_irq_handler
+EXPORT_SYMBOL drivers/staging/vme/vme 0x90695906 vme_free_consistent
+EXPORT_SYMBOL drivers/staging/vme/vme 0x92f3cc49 vme_new_dma_list
+EXPORT_SYMBOL drivers/staging/vme/vme 0x92fa5abb vme_lm_detach
+EXPORT_SYMBOL drivers/staging/vme/vme 0x9aeb07e8 vme_lm_attach
+EXPORT_SYMBOL drivers/staging/vme/vme 0xbdc0a0fc vme_dma_list_add
+EXPORT_SYMBOL drivers/staging/vme/vme 0xc8352002 vme_dma_pattern_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xcb820076 vme_master_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xcc5b0af0 vme_slave_set
+EXPORT_SYMBOL drivers/staging/vme/vme 0xd0715c4a vme_slave_request
+EXPORT_SYMBOL drivers/staging/vme/vme 0xd797b9a5 vme_master_write
+EXPORT_SYMBOL drivers/staging/vme/vme 0xdff905e5 vme_slave_free
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe60cbb2f vme_master_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe61b1e0b vme_slave_get
+EXPORT_SYMBOL drivers/staging/vme/vme 0xe693a6ce vme_get_size
+EXPORT_SYMBOL drivers/staging/vme/vme 0xeccbeafc vme_dma_free_attribute
+EXPORT_SYMBOL drivers/staging/vme/vme 0xf7a5deaa vme_dma_list_free
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free
+EXPORT_SYMBOL drivers/telephony/ixj 0x16d4215f ixj_pcmcia_probe
+EXPORT_SYMBOL drivers/telephony/phonedev 0x88c87042 phone_register_device
+EXPORT_SYMBOL drivers/telephony/phonedev 0xc2217906 phone_unregister_device
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x513dbfc1 net2280_set_fifo_mode
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0x7d237845 usb_gadget_unregister_driver
+EXPORT_SYMBOL drivers/usb/gadget/dummy_hcd 0xf59ab77c usb_gadget_register_driver
+EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x2ca6625d sl811h_driver
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x13eb4cd6 usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x32c5120c usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x518a84cc usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9b302400 usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9ceae988 usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa072290a usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc2a55ddf usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcc54fab1 usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd587cbfe usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xde5ab32e usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdfc39c84 usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe4d6209f usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf4602c82 usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfad863e9 usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x01e714a3 usb_serial_suspend
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x62eac673 usb_serial_resume
+EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x543a71fa lcd_device_register
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x7d26d885 lcd_device_unregister
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x1af63c71 cyber2000fb_attach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x3a075356 cyber2000fb_enable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x69529b82 cyber2000fb_disable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xa3160b7d cyber2000fb_get_fb_var
+EXPORT_SYMBOL drivers/video/display/display 0x9c63bf36 display_device_unregister
+EXPORT_SYMBOL drivers/video/display/display 0xb75ba30b display_device_register
+EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var
+EXPORT_SYMBOL drivers/video/macmodes 0xddaf601a mac_find_mode
+EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x26b1fa7c matroxfb_g450_setpll_cond
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xa5f1e953 matroxfb_g450_setclk
+EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xe754425f g450_mnp2f
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x35c41316 matrox_G100
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x484002b4 matrox_mystique
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x688a4f0c DAC1064_global_init
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x6d1fcf09 DAC1064_global_restore
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x3d7b6c91 matrox_millennium
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x26d9b7c9 matrox_cfbX_init
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x217cef39 matroxfb_register_driver
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x5436f0d0 matroxfb_enable_irq
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xd0913f40 matroxfb_unregister_driver
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xe2def043 matroxfb_wait_for_sync
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x05b5acca matroxfb_g450_connect
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xcc3d2b63 matroxfb_g450_shutdown
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x40b62aef matroxfb_vgaHWinit
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x4370dc9c matroxfb_DAC_out
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x622915b4 matroxfb_read_pins
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x9d3fd305 matroxfb_DAC_in
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xabd8e427 matroxfb_var2my
+EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xd0f8ae6b matroxfb_vgaHWrestore
+EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x2158522f mb862xxfb_init_accel
+EXPORT_SYMBOL drivers/video/output 0x6542e87a video_output_unregister
+EXPORT_SYMBOL drivers/video/output 0x6803fcba video_output_register
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free
+EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x2d3f5302 svga_settile
+EXPORT_SYMBOL drivers/video/svgalib 0x39bd9669 svga_get_tilemax
+EXPORT_SYMBOL drivers/video/svgalib 0x4b7b9ca2 svga_tilecopy
+EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x69ec12dc svga_tileblit
+EXPORT_SYMBOL drivers/video/svgalib 0x6d80abaf svga_get_caps
+EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x9d18d94a svga_tilefill
+EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xb4a5968c svga_tilecursor
+EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format
+EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll
+EXPORT_SYMBOL drivers/video/syscopyarea 0x60778207 sys_copyarea
+EXPORT_SYMBOL drivers/video/sysfillrect 0x576a8287 sys_fillrect
+EXPORT_SYMBOL drivers/video/sysimgblt 0x639c884c sys_imageblit
+EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga
+EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x2c8df9d7 w1_bq27000_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xedc842af w1_bq27000_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x18005968 w1_ds2760_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x47d204df w1_ds2760_recall_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd8072404 w1_ds2760_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd9323589 w1_ds2760_store_eeprom
+EXPORT_SYMBOL drivers/w1/wire 0x4e1ec6d3 w1_add_master_device
+EXPORT_SYMBOL drivers/w1/wire 0x6818f125 w1_unregister_family
+EXPORT_SYMBOL drivers/w1/wire 0x93336a49 w1_remove_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xb275b753 w1_register_family
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop
+EXPORT_SYMBOL fs/configfs/configfs 0x28ca06ab config_group_find_item
+EXPORT_SYMBOL fs/configfs/configfs 0x2d5eca53 configfs_undepend_item
+EXPORT_SYMBOL fs/configfs/configfs 0x34b6a2bf config_group_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x3a2afb35 config_item_init
+EXPORT_SYMBOL fs/configfs/configfs 0x58ab5995 configfs_depend_item
+EXPORT_SYMBOL fs/configfs/configfs 0x70ef506a config_group_init
+EXPORT_SYMBOL fs/configfs/configfs 0xa23560eb configfs_register_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xa26aa0aa configfs_unregister_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xaab03f31 config_item_set_name
+EXPORT_SYMBOL fs/configfs/configfs 0xb7e82412 config_item_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0xdeb325a1 config_item_put
+EXPORT_SYMBOL fs/configfs/configfs 0xf1249769 config_item_get
+EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible
+EXPORT_SYMBOL fs/fscache/fscache 0x09b8ae19 fscache_obtained_object
+EXPORT_SYMBOL fs/fscache/fscache 0x0dfa8911 __fscache_wait_on_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x10fb7697 __fscache_read_or_alloc_pages
+EXPORT_SYMBOL fs/fscache/fscache 0x1dc4c04f __fscache_check_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x2b5a933e __fscache_maybe_release_page
+EXPORT_SYMBOL fs/fscache/fscache 0x2bb319d3 fscache_io_error
+EXPORT_SYMBOL fs/fscache/fscache 0x3e3fad6f fscache_object_lookup_negative
+EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit
+EXPORT_SYMBOL fs/fscache/fscache 0x4a3ca692 fscache_add_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x5cd2c6dd fscache_enqueue_operation
+EXPORT_SYMBOL fs/fscache/fscache 0x71dfbcb5 __fscache_update_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id
+EXPORT_SYMBOL fs/fscache/fscache 0x82b73b13 __fscache_register_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states
+EXPORT_SYMBOL fs/fscache/fscache 0x95e61a7b __fscache_read_or_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0x9c5ae59e fscache_check_aux
+EXPORT_SYMBOL fs/fscache/fscache 0xa5ce9936 __fscache_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xb1729a27 fscache_cache_cleared_wq
+EXPORT_SYMBOL fs/fscache/fscache 0xb49a97db fscache_init_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xc4d742df __fscache_write_page
+EXPORT_SYMBOL fs/fscache/fscache 0xc5acd6f1 __fscache_relinquish_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xc7b78346 __fscache_uncache_page
+EXPORT_SYMBOL fs/fscache/fscache 0xcc5cd543 __fscache_unregister_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0xd46932cf fscache_object_slow_work_ops
+EXPORT_SYMBOL fs/fscache/fscache 0xe100dc6f __fscache_acquire_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xe81109b2 fscache_fsdef_index
+EXPORT_SYMBOL fs/fscache/fscache 0xf59b26a9 fscache_mark_pages_cached
+EXPORT_SYMBOL fs/fscache/fscache 0xf7f54d64 fscache_put_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xfa9c76b3 fscache_withdraw_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xfb369492 __fscache_attr_changed
+EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix
+EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new
+EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who
+EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype
+EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4
+EXPORT_SYMBOL fs/quota/quota_tree 0x58346c41 qtree_write_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x5defcb14 qtree_entry_unused
+EXPORT_SYMBOL fs/quota/quota_tree 0x764840d4 qtree_delete_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xa72882d5 qtree_read_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xde0a4cb5 qtree_release_dquot
+EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt
+EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table
+EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table
+EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t
+EXPORT_SYMBOL lib/crc7 0xa7587646 crc7
+EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table
+EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd
+EXPORT_SYMBOL net/802/p8023 0x4bc77099 make_8023_client
+EXPORT_SYMBOL net/802/p8023 0x6b0b7bc0 destroy_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x000bc7a8 p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x04e90ea5 p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0x0d32b805 p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x127714d2 p9_idpool_check
+EXPORT_SYMBOL net/9p/9pnet 0x161243e8 p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x278c8805 p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0x2fb7eafd p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x36aca002 p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x42cc2db6 v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x4e5974ab p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x55997a67 p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0x5f7e49be p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x77cc79f4 p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0x85802ce4 p9_client_auth
+EXPORT_SYMBOL net/9p/9pnet 0x89e536e3 p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x8b2ad98e p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0x91bd79a3 p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0x956894ad p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0xa1f1c457 p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0xab7187d7 p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0xc18478d3 v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0xc18e2ec2 p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0xc72a9a64 p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump
+EXPORT_SYMBOL net/9p/9pnet 0xd43c7319 v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0xdab77c64 v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0xddb68441 p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0xe19978b9 p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xe7774b2d p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xf3615b86 p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xf6312c1d p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0xf75cfb4e p9_client_version
+EXPORT_SYMBOL net/appletalk/appletalk 0x1456cea3 atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0x1cc1fe8f atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0xbd4fcbda aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0xc12519da alloc_ltalkdev
+EXPORT_SYMBOL net/atm/atm 0x1137bb1b vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x1298f74c atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0x20be36a4 atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0x2227e364 atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x345fa25f atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0x4001ab5d atm_charge
+EXPORT_SYMBOL net/atm/atm 0x5d2a58ac atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x8633feb3 vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xa3aef3a2 deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xdc8cef9c atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0xe201f843 vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0xec969c0d register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal
+EXPORT_SYMBOL net/ax25/ax25 0x0771fdcb ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x2b82bfbf ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0x3243885e ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0x3dbdc3f1 ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x6a59c5b3 ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x8272a10f ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0xbb361ff2 ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xda45be60 ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0xdd704619 ax25_header_ops
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x022b3de1 bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x03da9d13 bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x078a425e hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1d830477 hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2487b833 hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x28208a94 bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2e00eca1 hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3b9ffa60 hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3fb22f1a hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4d673bb2 bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e925071 bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x568d205a hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x572b1e83 hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5f1401e3 bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x65ab89dd hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x66e8a5a1 hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7e4a088d hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7ecd292d hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x89c0467a hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x9a70e512 hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x9e692de8 hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa308847e hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa4d34461 bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xaa1f9e56 hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xadd4c526 hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb3fce2dc hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc92a5a53 hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xce5d580f hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd1396e1f hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xdab9db91 bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe26bf44d bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xfd117b21 bt_sock_register
+EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load
+EXPORT_SYMBOL net/bridge/bridge 0x9bd2566d br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x24145dd6 ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x40807d2f ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x46cbb0c4 ebt_register_table
+EXPORT_SYMBOL net/caif/caif 0x0180d01d cfpkt_setlen
+EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client
+EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer
+EXPORT_SYMBOL net/caif/caif 0x1549e15d cfpkt_add_trail
+EXPORT_SYMBOL net/caif/caif 0x2452de62 cfpkt_pad_trail
+EXPORT_SYMBOL net/caif/caif 0x2ebc6ade cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x3ff45f1c cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0x4622a5a3 cfpkt_extr_trail
+EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x49166afc cfpkt_addbdy
+EXPORT_SYMBOL net/caif/caif 0x5468ad83 cfpkt_dequeue
+EXPORT_SYMBOL net/caif/caif 0x5602d43f cfpkt_add_body
+EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create
+EXPORT_SYMBOL net/caif/caif 0x68ee4a0c cfpkt_extr_head
+EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x72289264 cfpkt_iterate
+EXPORT_SYMBOL net/caif/caif 0x784573e5 cfpkt_append
+EXPORT_SYMBOL net/caif/caif 0x86ba01b6 cfpkt_log_pkt
+EXPORT_SYMBOL net/caif/caif 0x9566804f cfpkt_clone_release
+EXPORT_SYMBOL net/caif/caif 0x9d18d85a cfpkt_create
+EXPORT_SYMBOL net/caif/caif 0xa0ed2d71 cfpkt_getlen
+EXPORT_SYMBOL net/caif/caif 0xa7f3d883 cfpkt_qpeek
+EXPORT_SYMBOL net/caif/caif 0xa833aa13 cfpkt_qcount
+EXPORT_SYMBOL net/caif/caif 0xaa77e55e cfpktq_create
+EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xb0422115 cfpkt_raw_append
+EXPORT_SYMBOL net/caif/caif 0xb0cd7895 cfpkt_create_uplink
+EXPORT_SYMBOL net/caif/caif 0xb26bd728 cfpkt_destroy
+EXPORT_SYMBOL net/caif/caif 0xba792e0b cfpkt_add_head
+EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer
+EXPORT_SYMBOL net/caif/caif 0xc50022dd cfpkt_peek_head
+EXPORT_SYMBOL net/caif/caif 0xc5a8e633 cfpkt_queue
+EXPORT_SYMBOL net/caif/caif 0xe8111859 cfpkt_more
+EXPORT_SYMBOL net/caif/caif 0xe8ddf0d2 cfpkt_info
+EXPORT_SYMBOL net/caif/caif 0xeb42e75f cfpkt_split
+EXPORT_SYMBOL net/caif/caif 0xf02b0408 cfpkt_raw_extract
+EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf
+EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer
+EXPORT_SYMBOL net/caif/caif 0xf9926e2c cfpkt_erroneous
+EXPORT_SYMBOL net/can/can 0x4e0659b5 can_proto_register
+EXPORT_SYMBOL net/can/can 0x8fcd8d08 can_send
+EXPORT_SYMBOL net/can/can 0x9e088465 can_rx_register
+EXPORT_SYMBOL net/can/can 0xb31f2a7e can_rx_unregister
+EXPORT_SYMBOL net/can/can 0xd86025c6 can_proto_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x093f7356 wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x15d45492 ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x407cf76e ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x4cca3231 ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x5b45156e wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x6150f9cf ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x9bcc94ac ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xa0619385 wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xb743c333 wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xd8ceef0e wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xdad62c51 wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xdb287ffc ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xe65ec753 ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x100842f5 arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x6f55dc67 arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xa57cd1d1 arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x354c8477 ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x3ed13d3d ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xc72c96cc ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0537dede nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1b429bfc nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x4d1061a2 nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x907cd682 nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb397ea1c __nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb572bf15 nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xc7815c1d nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/tunnel4 0x427e6cfe xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0x8e884e2a xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x2ab33fe0 ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x95967ee4 ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x9ed60a25 ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xcbfc9d6c ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/tunnel6 0x948d7a34 xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/tunnel6 0xd32ad231 xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x31b1e3af xfrm6_tunnel_free_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xac668e7d xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe93ed822 xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x29e3c9c4 ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2bf259fa ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x354a749d ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x47750938 ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x67c9777b ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x997fc9a9 ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9bd0ac82 ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xefdc05c2 ircomm_close
+EXPORT_SYMBOL net/irda/irda 0x038a0ccd hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value
+EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service
+EXPORT_SYMBOL net/irda/irda 0x0b482c17 hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x23624bb8 hashbin_get_first
+EXPORT_SYMBOL net/irda/irda 0x23f02a19 proc_irda
+EXPORT_SYMBOL net/irda/irda 0x29c016a2 irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0x35d6ee8c iriap_close
+EXPORT_SYMBOL net/irda/irda 0x3666c9c2 irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug
+EXPORT_SYMBOL net/irda/irda 0x3c84ebb9 irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0x41350b33 irias_new_object
+EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value
+EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service
+EXPORT_SYMBOL net/irda/irda 0x5eab00c8 async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x62e074f2 hashbin_new
+EXPORT_SYMBOL net/irda/irda 0x6601882c irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x68a4e347 irias_find_object
+EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies
+EXPORT_SYMBOL net/irda/irda 0x6b186466 irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client
+EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x784ebb52 hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x86c95795 irlmp_open_lsap
+EXPORT_SYMBOL net/irda/irda 0x86e736e2 irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0x8cf4c91b irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x95f2efa4 irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0x989a4567 iriap_open
+EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0x9a078a82 hashbin_find
+EXPORT_SYMBOL net/irda/irda 0x9c6e0125 irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x9fd473a7 irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0xb0800c75 irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value
+EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute
+EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request
+EXPORT_SYMBOL net/irda/irda 0xbf1aa764 irttp_dup
+EXPORT_SYMBOL net/irda/irda 0xc19c7d5b irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0xc34dc21b irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0xc46ecccf hashbin_get_next
+EXPORT_SYMBOL net/irda/irda 0xc5fa870f irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xcb3fd862 irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0xd5c6cc4b irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma
+EXPORT_SYMBOL net/irda/irda 0xd729fe77 irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xe11db171 alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0xe2388dbb irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0xeab3dcec hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0xeafceb8e hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0xec43a8d0 irlap_close
+EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xf28d4047 iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0xf55b6f42 irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0xf71051f1 irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0xf967c130 async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0xfc6e92b2 irlap_open
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x4dfc9a5c l2tp_recv_common
+EXPORT_SYMBOL net/l2tp/l2tp_core 0xbeac3d25 l2tp_tunnel_destruct
+EXPORT_SYMBOL net/lapb/lapb 0x06994a0f lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0x0786b80c lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x29fdeed6 lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x619dd357 lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0x8b44a458 lapb_disconnect_request
+EXPORT_SYMBOL net/lapb/lapb 0xaf760c1d lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0xd6fe77c1 lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0xdcd6c3ac lapb_data_received
+EXPORT_SYMBOL net/mac80211/mac80211 0x066fd5e6 ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x150e4d59 ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x1ba5d95d ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x34264ff5 __ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x3a391ed3 rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x3d4dcb05 ieee80211_get_tkip_key
+EXPORT_SYMBOL net/mac80211/mac80211 0x564c87c5 __ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x564f162c ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x61170367 ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x62cc82b1 ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x63716e28 __ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x7b706d67 ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x7c1542dd ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0x815177ef ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x8c3d4fe0 ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x8cffb754 ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x9373ddbb wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x9c91ebea ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xa0e51af6 ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xaaf37ec3 __ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xab5c4356 ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0xaf0ac59a ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xb46aa21a ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xbbc15242 ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xc1639111 ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xc7438067 ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xcaf8926b ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xd9f49753 ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0xdda15c71 ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xde1625c4 ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xe0281a34 ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xe1ce4dcb ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xe6230678 ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xe7bb71b3 ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0xe8513e59 ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xeb01a7e8 ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xed992b1e ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5c9b2c94 ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x726c3178 ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x72d8b8c0 register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x90d2687c unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x938a2961 unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x94b09b62 ip_vs_skb_replace
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa09a7e6a register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd7a70160 register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd9be2721 ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdcc8e5df ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xfc2d62e5 ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x389b9a08 __nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xa92b7264 __nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xf7398072 nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x229a411a xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x2e231c35 xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x3d565c9c xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x5e4949e6 xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x95f4a061 xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x9e354f83 xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xb9b868ba xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xd41a3ba9 xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xe13e6d47 xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xf5c756ba xt_unregister_target
+EXPORT_SYMBOL net/phonet/phonet 0x136bacfc phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x1b514334 phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0x2ec2e22e pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0x57a088c4 phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0x88303437 pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0x9d750e0d pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0x9ddaff42 pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0xe0bea8da phonet_proto_unregister
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x085c3df0 rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x24630937 rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x274032e2 rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4a1106b0 rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x556476d4 rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x590590ba rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x60bea23a rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6360b4e5 rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7607f2d3 rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8edcc97f rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x918cc9e8 rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x99b881c1 rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xad13cb2b rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbbb6b5db key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xda53ea38 rxrpc_kernel_end_call
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x496fed56 svc_pool_stats_open
+EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes
+EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected
+EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect
+EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport
+EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x1bbfea7f tipc_send_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge
+EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port
+EXPORT_SYMBOL net/tipc/tipc 0x2b090994 tipc_send_buf_fast
+EXPORT_SYMBOL net/tipc/tipc 0x3045e3b4 tipc_send_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach
+EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x39863357 tipc_createport_raw
+EXPORT_SYMBOL net/tipc/tipc 0x41592281 tipc_recv_msg
+EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name
+EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw
+EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode
+EXPORT_SYMBOL net/tipc/tipc 0x58c840dd tipc_get_port
+EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid
+EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0x642dfdac tipc_forward_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast
+EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port
+EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr
+EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xa1a8ce50 tipc_createport
+EXPORT_SYMBOL net/tipc/tipc 0xa4ffc39b tipc_forward_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port
+EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown
+EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name
+EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish
+EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send
+EXPORT_SYMBOL net/tipc/tipc 0xbb34757d tipc_continue
+EXPORT_SYMBOL net/tipc/tipc 0xbe00d2e9 tipc_send_buf
+EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0xd377b6c8 tipc_reject_msg
+EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity
+EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach
+EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer
+EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished
+EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle
+EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xf7752ea2 tipc_register_media
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x49ff2113 register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0xb6283b28 wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0xbf9a870d wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0ca5c01e cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x1922b8a6 __cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x1b6f72ee ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x213bf803 cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x28cd8167 cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0x28f90ee3 cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x29ec79a5 cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x3b74ca57 cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x3f25f706 ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x56e6ad84 cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0x5f788855 cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x67bc3427 wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x69e9c6c3 cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x6af9637f freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x7087f5ca wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x7119e9c0 cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x72fe96d4 __cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x776a0ce5 wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x7b9724c4 cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x7bcdb7f1 wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x7e65c197 cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x822c4de9 cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0x83fdfddd cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x89605ce6 wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c455a53 cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x8d55d869 cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x8eeece72 cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x96576b93 cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x9700da35 regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x989096bb cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0x99760b74 cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x99e668c1 cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0x9d309e90 __cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xa25a958b cfg80211_action_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0xa93890b9 wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xb274c15c wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0xbf6ae477 cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0xc14bb015 cfg80211_rx_action
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xc6986099 ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0xd90d0b74 cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xede77b80 wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0xef30ff63 cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xf10a04ef ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0xf19fca86 cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xf25f73b0 cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0xfa592bdb __ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/lib80211 0x098f2c35 lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x0b529353 lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x513456d0 lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0x7523741f lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x847c7f85 lib80211_crypt_quiescing
+EXPORT_SYMBOL net/wireless/lib80211 0xebf572ed lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0xedc8d5c6 lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xf1ef6b89 lib80211_crypt_deinit_entries
+EXPORT_SYMBOL sound/ac97_bus 0x63947d7b ac97_bus_type
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x0be04429 snd_seq_create_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x38468dcc snd_seq_kernel_client_enqueue_blocking
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xa6d47f45 snd_seq_event_port_attach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xdd381da8 snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x0cd9fac8 snd_seq_device_register_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x9e6c7b24 snd_seq_device_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x017f4a67 snd_midi_event_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x949c9ac8 snd_midi_event_no_status
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x951ea30c snd_midi_event_reset_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb00606b7 snd_midi_event_encode_byte
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb30510f7 snd_midi_event_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbeaecf8c snd_midi_event_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xddc220c4 snd_midi_event_reset_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf5eb237e snd_midi_event_free
+EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xd70ac96a snd_virmidi_new
+EXPORT_SYMBOL sound/core/snd 0x0269ef2b snd_jack_set_parent
+EXPORT_SYMBOL sound/core/snd 0x09896bc1 snd_jack_report
+EXPORT_SYMBOL sound/core/snd 0x0d3bfd70 snd_ctl_remove
+EXPORT_SYMBOL sound/core/snd 0x1111e037 snd_device_new
+EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program
+EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer
+EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line
+EXPORT_SYMBOL sound/core/snd 0x297a95a3 snd_card_file_add
+EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource
+EXPORT_SYMBOL sound/core/snd 0x30bdfac8 snd_card_proc_new
+EXPORT_SYMBOL sound/core/snd 0x33caa154 snd_card_file_remove
+EXPORT_SYMBOL sound/core/snd 0x35bc74c8 snd_ctl_boolean_mono_info
+EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit
+EXPORT_SYMBOL sound/core/snd 0x3978d6e0 snd_card_disconnect
+EXPORT_SYMBOL sound/core/snd 0x3c03cad7 snd_power_wait
+EXPORT_SYMBOL sound/core/snd 0x48aef757 snd_card_free
+EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card
+EXPORT_SYMBOL sound/core/snd 0x4cb91e31 snd_card_create
+EXPORT_SYMBOL sound/core/snd 0x52000d6d snd_unregister_device
+EXPORT_SYMBOL sound/core/snd 0x55487132 snd_ctl_find_numid
+EXPORT_SYMBOL sound/core/snd 0x5cdab228 snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL sound/core/snd 0x5f9c54bd snd_info_create_module_entry
+EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio
+EXPORT_SYMBOL sound/core/snd 0x63ca8b83 snd_jack_set_key
+EXPORT_SYMBOL sound/core/snd 0x64a72a5b snd_register_device_for_dev
+EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable
+EXPORT_SYMBOL sound/core/snd 0x76c780bb snd_info_create_card_entry
+EXPORT_SYMBOL sound/core/snd 0x7e7fab02 snd_ctl_remove_id
+EXPORT_SYMBOL sound/core/snd 0x809c40a1 snd_device_register
+EXPORT_SYMBOL sound/core/snd 0x832adbfb snd_ctl_find_id
+EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major
+EXPORT_SYMBOL sound/core/snd 0x939a3b62 snd_ctl_new1
+EXPORT_SYMBOL sound/core/snd 0x999bd7fc snd_cards
+EXPORT_SYMBOL sound/core/snd 0x9b073e2b snd_ctl_notify
+EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str
+EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id
+EXPORT_SYMBOL sound/core/snd 0xa22aafc5 snd_pci_quirk_lookup
+EXPORT_SYMBOL sound/core/snd 0xa3285c6e snd_add_device_sysfs_file
+EXPORT_SYMBOL sound/core/snd 0xad9856d3 snd_ctl_make_virtual_master
+EXPORT_SYMBOL sound/core/snd 0xb00adac6 snd_ctl_unregister_ioctl
+EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data
+EXPORT_SYMBOL sound/core/snd 0xb59cfb9a snd_info_register
+EXPORT_SYMBOL sound/core/snd 0xb67540f2 snd_card_set_id
+EXPORT_SYMBOL sound/core/snd 0xb81c55ff snd_ctl_register_ioctl
+EXPORT_SYMBOL sound/core/snd 0xbab4bae1 snd_component_add
+EXPORT_SYMBOL sound/core/snd 0xc017c264 snd_card_register
+EXPORT_SYMBOL sound/core/snd 0xc40f10f8 snd_seq_root
+EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio
+EXPORT_SYMBOL sound/core/snd 0xce5fcf5b snd_device_free
+EXPORT_SYMBOL sound/core/snd 0xcffa6f12 snd_ctl_rename_id
+EXPORT_SYMBOL sound/core/snd 0xe1b0b700 snd_info_free_entry
+EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf
+EXPORT_SYMBOL sound/core/snd 0xe320f764 snd_jack_new
+EXPORT_SYMBOL sound/core/snd 0xefcfe864 _snd_ctl_add_slave
+EXPORT_SYMBOL sound/core/snd 0xf0893ec0 snd_ctl_add
+EXPORT_SYMBOL sound/core/snd 0xf20c9462 snd_ctl_free_one
+EXPORT_SYMBOL sound/core/snd 0xf2e24d7a snd_card_free_when_closed
+EXPORT_SYMBOL sound/core/snd-hwdep 0x2e928a92 snd_hwdep_new
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x13e70813 snd_dma_alloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x93d936bc snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xa02de814 snd_dma_get_reserved_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xe50715ca snd_dma_reserve_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xf272beae snd_dma_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any
+EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x05e1d169 snd_pcm_kernel_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x0e47273a snd_pcm_limit_hw_rates
+EXPORT_SYMBOL sound/core/snd-pcm 0x0f624b6b snd_pcm_lib_mmap_noncached
+EXPORT_SYMBOL sound/core/snd-pcm 0x1186ea4b snd_pcm_hw_rule_add
+EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed
+EXPORT_SYMBOL sound/core/snd-pcm 0x248ab57f snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL sound/core/snd-pcm 0x315b4692 snd_pcm_notify
+EXPORT_SYMBOL sound/core/snd-pcm 0x323b6fd0 snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x355adbfe snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x399e93fb snd_pcm_new_stream
+EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty
+EXPORT_SYMBOL sound/core/snd-pcm 0x3d3b09ca snd_pcm_lib_writev
+EXPORT_SYMBOL sound/core/snd-pcm 0x4276860b snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x452f3d5c snd_pcm_lib_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size
+EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x51d13fb3 snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value
+EXPORT_SYMBOL sound/core/snd-pcm 0x582a1882 snd_pcm_set_ops
+EXPORT_SYMBOL sound/core/snd-pcm 0x5c8c3c87 snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence
+EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64
+EXPORT_SYMBOL sound/core/snd-pcm 0x673d23b8 snd_pcm_mmap_data
+EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width
+EXPORT_SYMBOL sound/core/snd-pcm 0x6b8d4b7b snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x6c09f1b9 snd_pcm_lib_read
+EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear
+EXPORT_SYMBOL sound/core/snd-pcm 0x6f6bdca9 snd_pcm_new
+EXPORT_SYMBOL sound/core/snd-pcm 0x74d5d3f7 snd_pcm_suspend_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x78821fbe snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL sound/core/snd-pcm 0x813b75ae _snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x852c4892 snd_pcm_lib_write
+EXPORT_SYMBOL sound/core/snd-pcm 0x87f53a8f snd_pcm_hw_param_first
+EXPORT_SYMBOL sound/core/snd-pcm 0x8bca610d snd_pcm_stop
+EXPORT_SYMBOL sound/core/snd-pcm 0x92668718 snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL sound/core/snd-pcm 0xa0469ea1 snd_pcm_set_sync
+EXPORT_SYMBOL sound/core/snd-pcm 0xa1c33f17 snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xa40e95ae snd_pcm_link_rwlock
+EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned
+EXPORT_SYMBOL sound/core/snd-pcm 0xaac66f8f snd_pcm_hw_param_last
+EXPORT_SYMBOL sound/core/snd-pcm 0xb6db4e5e snd_pcm_hw_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0xb6e48108 snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL sound/core/snd-pcm 0xc0b36cc4 snd_pcm_open_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xc54f7dc2 snd_pcm_period_elapsed
+EXPORT_SYMBOL sound/core/snd-pcm 0xc88e1dd4 snd_pcm_lib_readv
+EXPORT_SYMBOL sound/core/snd-pcm 0xcb82e97d snd_pcm_suspend
+EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xd5923f3c snd_pcm_sgbuf_ops_page
+EXPORT_SYMBOL sound/core/snd-pcm 0xd7589117 snd_pcm_hw_constraint_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xd91004ac snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL sound/core/snd-pcm 0xdba75df4 snd_pcm_release_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xe35647c3 snd_pcm_lib_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9e78 snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL sound/core/snd-pcm 0xf137bfd3 snd_pcm_hw_constraint_step
+EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum
+EXPORT_SYMBOL sound/core/snd-pcm 0xf64dee4b snd_pcm_sgbuf_get_chunk_size
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x169495e5 snd_rawmidi_transmit_peek
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x19de7036 snd_rawmidi_transmit
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x24efc63e snd_rawmidi_set_ops
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x2ae579ce snd_rawmidi_kernel_open
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x3192fee4 snd_rawmidi_transmit_ack
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x34a9b7f1 snd_rawmidi_info_select
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x3a39f76c snd_rawmidi_transmit_empty
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x4abf6608 snd_rawmidi_kernel_write
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x5ad1bed5 snd_rawmidi_drop_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x5cc4b848 snd_rawmidi_input_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x88c61319 snd_rawmidi_output_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x8c96c264 snd_rawmidi_kernel_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x8f68990f snd_rawmidi_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xcac26ea2 snd_rawmidi_receive
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xe8d7405b snd_rawmidi_drain_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xec4269d8 snd_rawmidi_kernel_release
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xff096483 snd_rawmidi_drain_input
+EXPORT_SYMBOL sound/core/snd-timer 0x1c879513 snd_timer_start
+EXPORT_SYMBOL sound/core/snd-timer 0x1d89370f snd_timer_resolution
+EXPORT_SYMBOL sound/core/snd-timer 0x510131fe snd_timer_global_free
+EXPORT_SYMBOL sound/core/snd-timer 0x574fb2d2 snd_timer_pause
+EXPORT_SYMBOL sound/core/snd-timer 0x9b9bdc69 snd_timer_continue
+EXPORT_SYMBOL sound/core/snd-timer 0xb172cb35 snd_timer_open
+EXPORT_SYMBOL sound/core/snd-timer 0xb3eecb58 snd_timer_global_register
+EXPORT_SYMBOL sound/core/snd-timer 0xce2110ee snd_timer_stop
+EXPORT_SYMBOL sound/core/snd-timer 0xd120fee4 snd_timer_new
+EXPORT_SYMBOL sound/core/snd-timer 0xd45293c5 snd_timer_interrupt
+EXPORT_SYMBOL sound/core/snd-timer 0xe7429c79 snd_timer_notify
+EXPORT_SYMBOL sound/core/snd-timer 0xea97be12 snd_timer_global_new
+EXPORT_SYMBOL sound/core/snd-timer 0xfe96d3f2 snd_timer_close
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x8bb347d9 snd_mpu401_uart_new
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0bc6dce8 snd_opl3_reset
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0d3e80ee snd_opl3_create
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2c70b666 snd_opl3_init
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x54335b33 snd_opl3_load_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa19e6f73 snd_opl3_timer_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb202c5df snd_opl3_find_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbc0a0b9d snd_opl3_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xbe786dc0 snd_opl3_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xdf4c51fd snd_opl3_hwdep_new
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x2eaea4d7 snd_opl4_create
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x51f59167 snd_opl4_read
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x58af6ac9 snd_opl4_write
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x738e6419 snd_opl4_read_memory
+EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0xd2ddbfb6 snd_opl4_write_memory
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x07805e79 snd_vx_free_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x20fb6c3e snd_vx_suspend
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x4fd02fb1 snd_vx_dsp_load
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6f087ed3 snd_vx_resume
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x756b2aef snd_vx_dsp_boot
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x76694136 snd_vx_create
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x967020e4 snd_vx_setup_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xa1084e39 snd_vx_load_boot_image
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb6d298ef snd_vx_check_reg_bit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x44813270 snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x48e8537d snd_ak4114_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa58f1a6f snd_ak4114_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc6c376f6 snd_ak4114_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xcf49e8c7 snd_ak4114_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf65aadf3 snd_ak4114_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x2e00c231 snd_ak4117_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x53556e5a snd_ak4117_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x651d67c7 snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6b734e28 snd_ak4117_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xa1334072 snd_ak4117_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xda548113 snd_ak4117_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x0a3b363a snd_akm4xxx_init
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x4afae596 snd_akm4xxx_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xabf031d7 snd_akm4xxx_reset
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xad38b9c8 snd_akm4xxx_write
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x039f7a24 snd_pt2258_reset
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x302f4d0c snd_pt2258_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x5c92a1e4 snd_tea575x_init
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xfe119875 snd_tea575x_exit
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x642e4791 snd_cs8427_iec958_build
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x812ca19c snd_cs8427_iec958_pcm
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9b2a167a snd_cs8427_reg_write
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf3960fc5 snd_cs8427_iec958_active
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf477dcb0 snd_cs8427_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x0fc89f50 snd_i2c_probeaddr
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x7546ae29 snd_i2c_bus_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x7eafcc41 snd_i2c_device_free
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x843b7a6e snd_i2c_readbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x96f0a53d snd_i2c_device_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xf8982d86 snd_i2c_sendbytes
+EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xb5f2b669 snd_tea6330t_update_mixer
+EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xec2887d8 snd_tea6330t_detect
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x2baf989f snd_es1688_create
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x47630583 snd_es1688_mixer_write
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x5fa658fb snd_es1688_reset
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x809c2083 snd_es1688_mixer
+EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xcc65d631 snd_es1688_pcm
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x026d5d74 snd_gf1_write16
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0ae5cf1e snd_gf1_stop_voice
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1bf8be19 snd_gf1_write8
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1cab3e47 snd_gf1_i_look16
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1cc1885f snd_gf1_translate_freq
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x28aff336 snd_gf1_peek
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x2c0e7adc snd_gf1_ctrl_stop
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x2e7d0c71 snd_gf1_new_mixer
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x36e4eadc snd_gf1_look8
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x3c49d42c snd_gf1_mem_free
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46db8d67 snd_gf1_lvol_to_gvol_raw
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x480c55cb snd_gf1_pcm_new
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4bed60c9 snd_gf1_free_voice
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4c8c70e0 snd_gus_create
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4cf4e4da snd_gus_use_inc
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x4ed19145 snd_gf1_mem_lock
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x50db5a57 snd_gf1_delay
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6cb0da21 snd_gf1_alloc_voice
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6f99362e snd_gf1_write_addr
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x896ce4c5 snd_gus_interrupt
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x9286115d snd_gus_dram_read
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa5680dda snd_gf1_mem_xfree
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xaf6cce59 snd_gf1_i_write8
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb3f0f0df snd_gf1_dram_addr
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xb8f35607 snd_gus_initialize
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xcf95307b snd_gus_use_dec
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xdcf8dd99 snd_gf1_i_look8
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe1a030e2 snd_gf1_poke
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xecb7616a snd_gf1_mem_alloc
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xf8661436 snd_gf1_look16
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xfb4133c8 snd_gf1_rawmidi_new
+EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xffcd2b05 snd_gus_dram_write
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0095b936 snd_msnd_disable_irq
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x41b3d46d snd_msndmix_force_recsrc
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x48c71de2 snd_msndmix_new
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x4c5e1fc2 snd_msnd_enable_irq
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x5628ea5b snd_msnd_send_word
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x61f98d82 snd_msnd_DARQ
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x66f7b6e1 snd_msnd_dsp_halt
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x76dbc389 snd_msnd_send_dsp_cmd
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x9365a505 snd_msndmix_setup
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xb740095e snd_msnd_DAPQ
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xee72625f snd_msnd_upload_host
+EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xf642332d snd_msnd_pcm
+EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x379b0aaf snd_aci_cmd
+EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x75f9c1a0 snd_aci_get_aci
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x18274432 snd_sbmixer_read
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x33da76d6 snd_sbmixer_add_ctl
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x47d46732 snd_sbdsp_reset
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x49c58446 snd_sbmixer_new
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5667dfdd snd_sbmixer_write
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5a51b75e snd_sbdsp_create
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x758a8f17 snd_sbmixer_suspend
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x88d46eec snd_sbdsp_command
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb6331698 snd_sbdsp_get_byte
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc89d27c3 snd_sbmixer_resume
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0xc982d9f6 snd_sb_csp_new
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x28b7fb0c snd_sb16dsp_pcm
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x7e3ec680 snd_sb16dsp_configure
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x86cbe15a snd_sb16dsp_get_pcm_ops
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt
+EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x08a03f48 snd_sb8dsp_pcm
+EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x1e798b31 snd_sb8dsp_interrupt
+EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xf317e83a snd_sb8dsp_midi_interrupt
+EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xfedb394a snd_sb8dsp_midi
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x219b88df snd_emu8000_peek_dw
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x2cb9c39f snd_emu8000_load_chorus_fx
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x47a22777 snd_emu8000_load_reverb_fx
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x559c5f90 snd_emu8000_init_fm
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x59cdca52 snd_emu8000_dma_chan
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x85611a9f snd_emu8000_update_reverb_mode
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xac149a8c snd_emu8000_update_equalizer
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xb84d0288 snd_emu8000_poke
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xb8666bea snd_emu8000_poke_dw
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xc61fcebe snd_emu8000_update_chorus_mode
+EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xe9233157 snd_emu8000_peek
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x20e65cf7 snd_wss_timer
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x330406e8 snd_wss_overrange
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x36dd3362 snd_wss_mixer
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x50c302f6 snd_wss_in
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x50f4f579 snd_cs4236_ext_in
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x71ffacef snd_wss_get_double
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x78a02309 snd_wss_put_single
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x80723fee snd_wss_mce_down
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xa227abba snd_wss_info_double
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xa7959b58 snd_wss_put_double
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xaeca14be snd_wss_get_single
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xbab2f59d snd_wss_create
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc55f52de snd_wss_out
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xcaf84026 snd_wss_mce_up
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xcb01640a snd_wss_pcm
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xdc4f535b snd_wss_chip_id
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xee5023e5 snd_wss_interrupt
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xf177a1b4 snd_wss_get_pcm_ops
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xf58800a7 snd_cs4236_ext_out
+EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xf7703916 snd_wss_info_single
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x17d4cb6e snd_ac97_write_cache
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x254d7ce8 snd_ac97_bus
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x32d52a74 snd_ac97_update_power
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3d136dbb snd_ac97_update_bits
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4f2a5edf snd_ac97_pcm_assign
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x51ae4910 snd_ac97_pcm_close
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x54a0dc63 snd_ac97_tune_hardware
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x60302a48 snd_ac97_pcm_open
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x70a1cb9b snd_ac97_set_rate
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb3d77442 snd_ac97_update
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb8d51bb1 snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xceadf301 snd_ac97_get_short_name
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xd86138fb snd_ac97_mixer
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe47ee45c snd_ac97_write
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe8441d38 snd_ac97_suspend
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf63aca7f snd_ac97_resume
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfe4514e2 snd_ac97_read
+EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0xe83dcac1 hpi_send_recv
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x20807898 snd_emu10k1_voice_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x27427e05 snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x74d711e7 snd_emu10k1_voice_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x895ef579 snd_emu10k1_synth_bzero
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8c44d7b3 snd_emu10k1_synth_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb34c92e0 snd_emu10k1_ptr_write
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb74b9b70 snd_emu10k1_synth_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xbffc1048 snd_emu10k1_ptr_read
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xddd6ab69 snd_emu10k1_memblk_map
+EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x6009e556 snd_hda_parse_generic_codec
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x8f8527c2 snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xa095fffe snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xb628750e snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x013268c5 oxygen_write_ac97
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x035960c5 oxygen_write_i2c
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x06d7ba58 oxygen_pci_resume
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x18a7c469 oxygen_write16_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x29104d53 oxygen_reset_uart
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x31e8fe30 oxygen_pci_probe
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4133b100 oxygen_write_ac97_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x437f28fe oxygen_write8
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x43e5d4e3 oxygen_read_ac97
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4af6fe1f oxygen_pci_remove
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5446e266 oxygen_read32
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x550f904f oxygen_write32_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x58e976a9 oxygen_read8
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x65202ef5 oxygen_write32
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8a6945c1 oxygen_read16
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x93a3ecc9 oxygen_default_i2s_mclk
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa484fc6a oxygen_write8_masked
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xace88209 oxygen_pci_suspend
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xe2b89c09 oxygen_write_spi
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf5bd747f oxygen_write16
+EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xff985bdc oxygen_write_uart
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x5b5250a8 snd_trident_alloc_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xaf0fc212 snd_trident_start_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xb108e942 snd_trident_stop_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xbf57c986 snd_trident_free_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xf95b206a snd_trident_write_voice_regs
+EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x1ece4281 uda134x_dai
+EXPORT_SYMBOL sound/soundcore 0xf8b94a35 sound_class
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x05eaf325 snd_emux_unlock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x10b8d065 snd_emux_lock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x58175eda snd_emux_terminate_all
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x6f477a28 snd_emux_register
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x704d1ebc snd_emux_new
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xba35bbd4 snd_emux_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x661d309e __snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x6fcc06d1 snd_util_mem_avail
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x7736716f snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x7c879734 snd_util_memhdr_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xb3753500 snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xe30246e8 __snd_util_memblk_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xe99ffbf9 __snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xf26913d9 snd_util_memhdr_free
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x71331f07 snd_usbmidi_create
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x1826e568 dm_mem_cache_free
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x421dc2f6 dm_mem_cache_grow
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x48b52602 dm_mem_cache_alloc
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x81ffd9af dm_mem_cache_client_destroy
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xcb340aff dm_mem_cache_client_create
+EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xebbe6f9e dm_mem_cache_shrink
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x04dca738 lirc_unregister_driver
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x3ca92961 lirc_get_pdata
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x459a5598 lirc_register_driver
+EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list
+EXPORT_SYMBOL vmlinux 0x0010ab63 register_netdev
+EXPORT_SYMBOL vmlinux 0x003b4a7b fb_find_mode
+EXPORT_SYMBOL vmlinux 0x005901b6 scsi_put_command
+EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x009a950f nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x00ac9a03 fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x00bd9d31 add_timer
+EXPORT_SYMBOL vmlinux 0x00d26bbb security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0x00d374d4 sg_miter_next
+EXPORT_SYMBOL vmlinux 0x00d99b0c __dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x00dc4586 mca_register_driver_integrated
+EXPORT_SYMBOL vmlinux 0x00de2af7 eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0x00e21f57 pnp_activate_dev
+EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x00ed7d74 writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0x010dd90d d_alloc
+EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr
+EXPORT_SYMBOL vmlinux 0x0115f30d pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0x01317f9f __xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0x014befb8 tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x0155e074 inet_put_port
+EXPORT_SYMBOL vmlinux 0x0159d2eb i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x0165ce65 __mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap
+EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data
+EXPORT_SYMBOL vmlinux 0x01b70ef5 __percpu_counter_init
+EXPORT_SYMBOL vmlinux 0x01cc316a arch_debugfs_dir
+EXPORT_SYMBOL vmlinux 0x01d012d9 blk_start_queue
+EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem
+EXPORT_SYMBOL vmlinux 0x01d4fd03 elv_add_request
+EXPORT_SYMBOL vmlinux 0x01d5859e udp_proc_register
+EXPORT_SYMBOL vmlinux 0x01ff13a9 genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0x02003403 fddi_type_trans
+EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check
+EXPORT_SYMBOL vmlinux 0x0215a367 dev_addr_init
+EXPORT_SYMBOL vmlinux 0x0235d3fa bio_alloc
+EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu
+EXPORT_SYMBOL vmlinux 0x025be8d6 skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x0264d0eb xfrm6_rcv_spi
+EXPORT_SYMBOL vmlinux 0x028f896d scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc
+EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table
+EXPORT_SYMBOL vmlinux 0x02ad0d55 inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler
+EXPORT_SYMBOL vmlinux 0x02b7e8a3 remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02daa8be __blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x02e43118 delayed_slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact
+EXPORT_SYMBOL vmlinux 0x02fc7fc8 blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x02fcaf91 generic_getxattr
+EXPORT_SYMBOL vmlinux 0x0305dc9e kill_fasync
+EXPORT_SYMBOL vmlinux 0x03168f5d init_timer_key
+EXPORT_SYMBOL vmlinux 0x032c7e14 in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x0333d320 init_net
+EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x03350317 dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set
+EXPORT_SYMBOL vmlinux 0x037a0cba kfree
+EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x04224a9a scsi_unregister
+EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x043f4598 bdi_register_dev
+EXPORT_SYMBOL vmlinux 0x04524dde netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x0455aa09 __starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x0456ca3e dm_io_client_create
+EXPORT_SYMBOL vmlinux 0x0460be11 dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x0497fc25 security_inode_permission
+EXPORT_SYMBOL vmlinux 0x04b763a1 mmc_host_disable
+EXPORT_SYMBOL vmlinux 0x04b770e6 tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x04bfc489 pnp_device_attach
+EXPORT_SYMBOL vmlinux 0x04d3b3b8 simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0x04f28b60 set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0x04f6acf8 kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0x05133c83 jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x0514b569 inet6_release
+EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups
+EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x0538a7e0 generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0x05553c11 rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x058c610d find_vma
+EXPORT_SYMBOL vmlinux 0x05b1aecc i2c_verify_client
+EXPORT_SYMBOL vmlinux 0x05c3025c km_policy_notify
+EXPORT_SYMBOL vmlinux 0x05e2d7f4 sock_create
+EXPORT_SYMBOL vmlinux 0x06030cbf module_layout
+EXPORT_SYMBOL vmlinux 0x06108e61 dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x061651be strcat
+EXPORT_SYMBOL vmlinux 0x062b835c security_task_getsecid
+EXPORT_SYMBOL vmlinux 0x063809ec blk_make_request
+EXPORT_SYMBOL vmlinux 0x0649e0d2 dma_release_declared_memory
+EXPORT_SYMBOL vmlinux 0x06791431 tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx
+EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache
+EXPORT_SYMBOL vmlinux 0x06a8933d pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0x06ab60c0 _raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x06bf0397 unregister_snap_client
+EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0x06ec6fb4 vfs_readdir
+EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn
+EXPORT_SYMBOL vmlinux 0x070a1aeb xfrm6_rcv
+EXPORT_SYMBOL vmlinux 0x071f0021 scsi_init_io
+EXPORT_SYMBOL vmlinux 0x07271305 test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8
+EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace
+EXPORT_SYMBOL vmlinux 0x075386c7 xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource
+EXPORT_SYMBOL vmlinux 0x07760c1b idr_get_new
+EXPORT_SYMBOL vmlinux 0x078375e8 rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x07853ec6 netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x078a7874 mmc_add_host
+EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable
+EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong
+EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07bf2f6d vlan_gro_receive
+EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial
+EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x08155724 __xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x08271116 fb_is_primary_device
+EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses
+EXPORT_SYMBOL vmlinux 0x083565ea kthread_create
+EXPORT_SYMBOL vmlinux 0x0844ffb0 init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0x08819230 tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0x08b52de5 tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0x08d44500 abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0x08d5179f pcim_pin_device
+EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x08fd36fd cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x0933aae1 efi_enabled
+EXPORT_SYMBOL vmlinux 0x093e947e posix_acl_create_masq
+EXPORT_SYMBOL vmlinux 0x0944b537 handle_sysrq
+EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages
+EXPORT_SYMBOL vmlinux 0x09560f80 netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0x096ce950 processors
+EXPORT_SYMBOL vmlinux 0x09775cdc kref_get
+EXPORT_SYMBOL vmlinux 0x098436a8 vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x09bf1e6e _raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0x09bfbcec ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions
+EXPORT_SYMBOL vmlinux 0x09f20dda idr_init
+EXPORT_SYMBOL vmlinux 0x0a08ae25 gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x0a14495a phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a3077ac dev_open
+EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr
+EXPORT_SYMBOL vmlinux 0x0a4ce889 tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x0a4f2bd1 tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x0a8d4a7d bitmap_unplug
+EXPORT_SYMBOL vmlinux 0x0abfab83 dquot_disable
+EXPORT_SYMBOL vmlinux 0x0ac38c93 dma_mark_declared_memory_occupied
+EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all
+EXPORT_SYMBOL vmlinux 0x0adb5cd0 scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0x0b096aa0 pci_get_subsys
+EXPORT_SYMBOL vmlinux 0x0b0b7e7d ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0x0b0d2b94 __break_lease
+EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert
+EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b2a0547 jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x0b3e7a05 k8_northbridges
+EXPORT_SYMBOL vmlinux 0x0b48b82d i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0x0b5132c1 uart_suspend_port
+EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b7854d6 insert_inode_locked
+EXPORT_SYMBOL vmlinux 0x0b98a066 blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0x0baa9d47 ppp_unregister_channel
+EXPORT_SYMBOL vmlinux 0x0bbf5adb irq_stat
+EXPORT_SYMBOL vmlinux 0x0bd41d5a pci_get_class
+EXPORT_SYMBOL vmlinux 0x0bd463d3 vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0x0c133ad8 pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x0c1e0b26 scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0x0c20fd6a cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0x0c38bf7e phy_detach
+EXPORT_SYMBOL vmlinux 0x0c485fe9 nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x0c4ba4de jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0x0c57776a __inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0x0c5d64ea skb_trim
+EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c7f5f83 linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region
+EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cc6c566 inet_addr_type
+EXPORT_SYMBOL vmlinux 0x0cc7f956 edac_mce_register
+EXPORT_SYMBOL vmlinux 0x0d27d219 eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type
+EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d650f20 pipe_to_file
+EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0dacca13 wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x0dc2e1f3 bdget
+EXPORT_SYMBOL vmlinux 0x0e034aef set_create_files_as
+EXPORT_SYMBOL vmlinux 0x0e174aa7 __init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x0e3d07b5 __rta_fill
+EXPORT_SYMBOL vmlinux 0x0e52592a panic
+EXPORT_SYMBOL vmlinux 0x0e5e6719 tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0x0e75663a prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x0e967c87 sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0x0ee26cfb generic_write_sync
+EXPORT_SYMBOL vmlinux 0x0ee3abd9 tcp_poll
+EXPORT_SYMBOL vmlinux 0x0ee8e840 add_disk
+EXPORT_SYMBOL vmlinux 0x0eef4bec pnp_disable_dev
+EXPORT_SYMBOL vmlinux 0x0efdb6bd sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x0f09e63f intel_scu_ipc_register_read
+EXPORT_SYMBOL vmlinux 0x0f4e9f1d __kfree_skb
+EXPORT_SYMBOL vmlinux 0x0f6ceaeb uart_get_divisor
+EXPORT_SYMBOL vmlinux 0x0f7111a9 generic_listxattr
+EXPORT_SYMBOL vmlinux 0x0f81a41b audit_log_end
+EXPORT_SYMBOL vmlinux 0x0f9512f0 dev_mc_init
+EXPORT_SYMBOL vmlinux 0x0f95c105 max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0faf3537 pci_iounmap
+EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event
+EXPORT_SYMBOL vmlinux 0x0fd15d82 flush_old_exec
+EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress
+EXPORT_SYMBOL vmlinux 0x100d8ba7 tcf_em_register
+EXPORT_SYMBOL vmlinux 0x101e6fbb cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0x102c56de irq_regs
+EXPORT_SYMBOL vmlinux 0x10397855 writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0x105d03ea lock_may_read
+EXPORT_SYMBOL vmlinux 0x1062ca9a phy_disconnect
+EXPORT_SYMBOL vmlinux 0x107a0364 blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint
+EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu
+EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype
+EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x118f01ea putname
+EXPORT_SYMBOL vmlinux 0x1196c754 journal_wipe
+EXPORT_SYMBOL vmlinux 0x11b3de62 alloc_hippi_dev
+EXPORT_SYMBOL vmlinux 0x11c3c3c2 kernel_connect
+EXPORT_SYMBOL vmlinux 0x11ce935e generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0x11d59cf1 mpage_writepages
+EXPORT_SYMBOL vmlinux 0x11da3cb6 path_is_under
+EXPORT_SYMBOL vmlinux 0x11dd01ad intel_scu_ipc_command
+EXPORT_SYMBOL vmlinux 0x11ed128f fb_class
+EXPORT_SYMBOL vmlinux 0x11f2d09f qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin
+EXPORT_SYMBOL vmlinux 0x11f98103 registered_fb
+EXPORT_SYMBOL vmlinux 0x1225450e thermal_cooling_device_unregister
+EXPORT_SYMBOL vmlinux 0x12360b79 prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0x127d9558 netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x129cf554 security_file_mmap
+EXPORT_SYMBOL vmlinux 0x12c74ddd jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc
+EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x12f8ab51 pci_disable_device
+EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x131fbd3b neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x1327b332 generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x133cade5 interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x134810bd mmc_wait_for_app_cmd
+EXPORT_SYMBOL vmlinux 0x136dc4f1 __inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x1378e714 acpi_video_display_switch_support
+EXPORT_SYMBOL vmlinux 0x13b65a01 x86_bios_cpu_apicid
+EXPORT_SYMBOL vmlinux 0x13c777eb prepare_creds
+EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation
+EXPORT_SYMBOL vmlinux 0x14200f4e genphy_update_link
+EXPORT_SYMBOL vmlinux 0x14221d98 blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0x142dc6c3 jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier
+EXPORT_SYMBOL vmlinux 0x1436917d down_write
+EXPORT_SYMBOL vmlinux 0x1452651c bitmap_start_sync
+EXPORT_SYMBOL vmlinux 0x149ab9e6 fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x14b30775 generic_file_mmap
+EXPORT_SYMBOL vmlinux 0x14b6cd2e md_check_recovery
+EXPORT_SYMBOL vmlinux 0x14ce0ed4 wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x14dd5548 sock_i_ino
+EXPORT_SYMBOL vmlinux 0x14e90958 names_cachep
+EXPORT_SYMBOL vmlinux 0x14fad722 acpi_lock_ac_dir
+EXPORT_SYMBOL vmlinux 0x152639fd rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x15383c16 seq_lseek
+EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x155a2eac inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x1585d78f call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0x1599d330 vfs_create
+EXPORT_SYMBOL vmlinux 0x15b917ed tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0x15d8c8aa edac_mce_unregister
+EXPORT_SYMBOL vmlinux 0x15f5cf6f tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled
+EXPORT_SYMBOL vmlinux 0x161b9493 i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0x16300e86 force_sig
+EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x163660ce load_nls
+EXPORT_SYMBOL vmlinux 0x16592094 _raw_write_lock
+EXPORT_SYMBOL vmlinux 0x1669b6c2 vfs_statfs
+EXPORT_SYMBOL vmlinux 0x1676ce13 mca_device_read_pos
+EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1
+EXPORT_SYMBOL vmlinux 0x1681e1b5 task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0x168a8d87 thermal_zone_device_register
+EXPORT_SYMBOL vmlinux 0x16962f3a xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0x16a1dc87 __sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x16dc2771 lock_super
+EXPORT_SYMBOL vmlinux 0x16dca11e vga_switcheroo_register_handler
+EXPORT_SYMBOL vmlinux 0x16ddf48a pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object
+EXPORT_SYMBOL vmlinux 0x171c1da7 proto_unregister
+EXPORT_SYMBOL vmlinux 0x173d6895 rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0x17506df2 input_release_device
+EXPORT_SYMBOL vmlinux 0x1750c580 xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x1754d932 pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0x176158d1 input_event
+EXPORT_SYMBOL vmlinux 0x1783c8a7 i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0x17ce52f1 dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0x17cf62f1 xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x17d62e73 sock_no_listen
+EXPORT_SYMBOL vmlinux 0x17d870ea kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x17da95f7 eisa_driver_unregister
+EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x181e411c scsi_prep_return
+EXPORT_SYMBOL vmlinux 0x18243b36 fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0x1831ef5e scsi_get_command
+EXPORT_SYMBOL vmlinux 0x183314f7 scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0x183e74c0 netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL vmlinux 0x1860c666 md_integrity_add_rdev
+EXPORT_SYMBOL vmlinux 0x187d337b md_register_thread
+EXPORT_SYMBOL vmlinux 0x18887eb5 xfrm6_prepare_output
+EXPORT_SYMBOL vmlinux 0x18a5f5bc complete_request_key
+EXPORT_SYMBOL vmlinux 0x18ac0771 inet_frags_init
+EXPORT_SYMBOL vmlinux 0x18ad79b0 default_llseek
+EXPORT_SYMBOL vmlinux 0x18b20b13 dm_exception_store_type_unregister
+EXPORT_SYMBOL vmlinux 0x18d3beee thaw_process
+EXPORT_SYMBOL vmlinux 0x1921a2fe mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0x194db45b tr_type_trans
+EXPORT_SYMBOL vmlinux 0x195dc408 __netif_schedule
+EXPORT_SYMBOL vmlinux 0x197a40a5 i8042_install_filter
+EXPORT_SYMBOL vmlinux 0x197d86dd mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19a767e3 mmc_card_awake
+EXPORT_SYMBOL vmlinux 0x19be40cf pci_match_id
+EXPORT_SYMBOL vmlinux 0x1a11973c register_netdevice
+EXPORT_SYMBOL vmlinux 0x1a1b003e mca_device_transform_memory
+EXPORT_SYMBOL vmlinux 0x1a43e8a3 textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled
+EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch
+EXPORT_SYMBOL vmlinux 0x1a85570a bitmap_startwrite
+EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait
+EXPORT_SYMBOL vmlinux 0x1a8fbaae arp_send
+EXPORT_SYMBOL vmlinux 0x1a9110ea kmem_cache_size
+EXPORT_SYMBOL vmlinux 0x1a925a66 down
+EXPORT_SYMBOL vmlinux 0x1aa00efa sk_filter
+EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in
+EXPORT_SYMBOL vmlinux 0x1ac2d5f0 bio_pair_release
+EXPORT_SYMBOL vmlinux 0x1ac4bfd7 inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1ad82afc follow_down
+EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b13f394 idr_pre_get
+EXPORT_SYMBOL vmlinux 0x1b1f2597 blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0x1b3a37b8 i2c_release_client
+EXPORT_SYMBOL vmlinux 0x1b448411 i2c_del_driver
+EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton
+EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1bae748e netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0x1c1365f4 neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x1c16e9fe gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c29ee0e seq_path
+EXPORT_SYMBOL vmlinux 0x1c36f9c9 mmc_card_can_sleep
+EXPORT_SYMBOL vmlinux 0x1c47c15b vfs_link
+EXPORT_SYMBOL vmlinux 0x1c549bdb page_symlink
+EXPORT_SYMBOL vmlinux 0x1c57100f neigh_destroy
+EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset
+EXPORT_SYMBOL vmlinux 0x1c99ecab blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0x1cbc7821 write_one_page
+EXPORT_SYMBOL vmlinux 0x1cbf04aa contig_page_data
+EXPORT_SYMBOL vmlinux 0x1cc0e232 tcp_read_sock
+EXPORT_SYMBOL vmlinux 0x1cc1b329 set_device_ro
+EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cd86e80 blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x1ce24d1a udp_prot
+EXPORT_SYMBOL vmlinux 0x1cf28e03 journal_revoke
+EXPORT_SYMBOL vmlinux 0x1cf33ddf seq_release_private
+EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d37c8df pnp_possible_config
+EXPORT_SYMBOL vmlinux 0x1d5df0ee inet6_add_protocol
+EXPORT_SYMBOL vmlinux 0x1d833c08 dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x1d836139 __pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0x1d938165 inet_csk_accept
+EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe
+EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc
+EXPORT_SYMBOL vmlinux 0x1e301465 xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr
+EXPORT_SYMBOL vmlinux 0x1e8e617e inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1ec0ad89 rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x1ed5d573 xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0x1ee7dba9 __mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set
+EXPORT_SYMBOL vmlinux 0x1f1299a3 cdev_alloc
+EXPORT_SYMBOL vmlinux 0x1f14b70a follow_pfn
+EXPORT_SYMBOL vmlinux 0x1f52322d scm_detach_fds
+EXPORT_SYMBOL vmlinux 0x1f7b2304 bdev_read_only
+EXPORT_SYMBOL vmlinux 0x1f927f28 kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x1fa9bbf8 phy_attach
+EXPORT_SYMBOL vmlinux 0x1fab148b tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0x1fcf8ab8 acpi_processor_notify_smm
+EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag
+EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region
+EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat
+EXPORT_SYMBOL vmlinux 0x1ff83543 __dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x1ff8ca16 blkdev_put
+EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul
+EXPORT_SYMBOL vmlinux 0x20043092 nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x20111528 bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x2035e3fc dst_alloc
+EXPORT_SYMBOL vmlinux 0x20382d73 pci_try_set_mwi
+EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x206a4ad8 cdrom_mode_sense
+EXPORT_SYMBOL vmlinux 0x2071c371 sk_alloc
+EXPORT_SYMBOL vmlinux 0x207331f9 seq_puts
+EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x207fc42b path_get
+EXPORT_SYMBOL vmlinux 0x2085d625 set_trace_device
+EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table
+EXPORT_SYMBOL vmlinux 0x209ed12d i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0x20a79c3b pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0x20bdf188 mmc_power_save_host
+EXPORT_SYMBOL vmlinux 0x20c6192f intel_scu_ipc_ioread32
+EXPORT_SYMBOL vmlinux 0x21073c1d netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0x2119316f block_write_full_page
+EXPORT_SYMBOL vmlinux 0x211c4762 submit_bh
+EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16
+EXPORT_SYMBOL vmlinux 0x21678910 netlink_set_err
+EXPORT_SYMBOL vmlinux 0x21741faf dump_trace
+EXPORT_SYMBOL vmlinux 0x21b029ef nla_append
+EXPORT_SYMBOL vmlinux 0x21d7b4a1 skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id
+EXPORT_SYMBOL vmlinux 0x21e6c7b6 tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x221a3437 tcp_v4_remember_stamp
+EXPORT_SYMBOL vmlinux 0x2226a2b8 scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq
+EXPORT_SYMBOL vmlinux 0x22323594 pci_find_capability
+EXPORT_SYMBOL vmlinux 0x223d61fb dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0x226ac487 blk_integrity_register
+EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log
+EXPORT_SYMBOL vmlinux 0x226f4405 dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0x227c6dac __bio_clone
+EXPORT_SYMBOL vmlinux 0x2288378f system_state
+EXPORT_SYMBOL vmlinux 0x2295e5d2 tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound
+EXPORT_SYMBOL vmlinux 0x22b946e9 pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0x22c7265d input_set_keycode
+EXPORT_SYMBOL vmlinux 0x22cea7f7 __xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x22f9702d dentry_open
+EXPORT_SYMBOL vmlinux 0x23088b0c dma_set_mask
+EXPORT_SYMBOL vmlinux 0x2309f8c6 simple_transaction_get
+EXPORT_SYMBOL vmlinux 0x231ab5cc md_integrity_register
+EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul
+EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x2359503a pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0x2359bd96 nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x2391d23e register_snap_client
+EXPORT_SYMBOL vmlinux 0x23b1006b bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0x23c63b10 vmap
+EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress
+EXPORT_SYMBOL vmlinux 0x23f38179 nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node
+EXPORT_SYMBOL vmlinux 0x2408523c blkdev_fsync
+EXPORT_SYMBOL vmlinux 0x243e4f05 kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x244db71a neigh_for_each
+EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x24809838 journal_flush
+EXPORT_SYMBOL vmlinux 0x24aae7fd disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x24ad3393 dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x24b6c0f4 pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x24ddd89a __percpu_counter_add
+EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function
+EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x250b30af ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x2511771d x86_cpu_to_apicid
+EXPORT_SYMBOL vmlinux 0x251a8cb4 dquot_transfer
+EXPORT_SYMBOL vmlinux 0x25653774 unregister_netdev
+EXPORT_SYMBOL vmlinux 0x2570e7cc blk_put_request
+EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x25bf61cb qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0x25c0f499 inet_accept
+EXPORT_SYMBOL vmlinux 0x25c70d3d redraw_screen
+EXPORT_SYMBOL vmlinux 0x25c77c74 init_special_inode
+EXPORT_SYMBOL vmlinux 0x25d81960 posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0x25eb5a50 journal_forget
+EXPORT_SYMBOL vmlinux 0x25ee698f pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0x26234f21 read_cache_page_async
+EXPORT_SYMBOL vmlinux 0x2628c04c neigh_update
+EXPORT_SYMBOL vmlinux 0x263c2db9 udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x26518b68 idr_replace
+EXPORT_SYMBOL vmlinux 0x26739872 __dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x2676e0d5 dm_io_client_resize
+EXPORT_SYMBOL vmlinux 0x26840cd7 __dst_free
+EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close
+EXPORT_SYMBOL vmlinux 0x26b03c9c security_path_unlink
+EXPORT_SYMBOL vmlinux 0x26d6c0b6 mempool_create
+EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler
+EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del
+EXPORT_SYMBOL vmlinux 0x27431f83 d_add_ci
+EXPORT_SYMBOL vmlinux 0x274f0945 bio_map_user
+EXPORT_SYMBOL vmlinux 0x2751cf88 dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0x275e0e05 unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0x276e1aae pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0x2781cd6e gen_pool_add
+EXPORT_SYMBOL vmlinux 0x27864d57 memparse
+EXPORT_SYMBOL vmlinux 0x2796ed15 ip6_frag_match
+EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic
+EXPORT_SYMBOL vmlinux 0x27e2a11a tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0x27ea9d67 posix_acl_permission
+EXPORT_SYMBOL vmlinux 0x27f548e7 eth_header_parse
+EXPORT_SYMBOL vmlinux 0x281a4fb9 sock_init_data
+EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll
+EXPORT_SYMBOL vmlinux 0x2872d881 tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x2881dfad sk_receive_skb
+EXPORT_SYMBOL vmlinux 0x28870c63 sk_reset_txq
+EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28b20ba1 ilookup
+EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end
+EXPORT_SYMBOL vmlinux 0x29026760 alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x291cf882 inet_register_protosw
+EXPORT_SYMBOL vmlinux 0x291fcb4e netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0x292093f4 native_rdmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x2964a46d generic_delete_inode
+EXPORT_SYMBOL vmlinux 0x29667e40 acpi_bus_add
+EXPORT_SYMBOL vmlinux 0x296ae16a inet_select_addr
+EXPORT_SYMBOL vmlinux 0x2999a862 kmem_cache_create
+EXPORT_SYMBOL vmlinux 0x29a3dde0 llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0x29a4fcb7 softnet_data
+EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set
+EXPORT_SYMBOL vmlinux 0x29d21db2 ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x29e9d8aa skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x29f0cc45 dev_driver_string
+EXPORT_SYMBOL vmlinux 0x2a2285ec _raw_write_lock_irq
+EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature
+EXPORT_SYMBOL vmlinux 0x2a5def2f intel_scu_ipc_iowrite32
+EXPORT_SYMBOL vmlinux 0x2a72204a end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0x2a79524e pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x2a7b8467 __tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp
+EXPORT_SYMBOL vmlinux 0x2ab9e91e security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b2517f2 do_sync_read
+EXPORT_SYMBOL vmlinux 0x2b259bbb tty_port_open
+EXPORT_SYMBOL vmlinux 0x2b2a0e2f generic_file_open
+EXPORT_SYMBOL vmlinux 0x2b2f8251 tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0x2b30e722 pci_set_mwi
+EXPORT_SYMBOL vmlinux 0x2b42e8bb generic_write_checks
+EXPORT_SYMBOL vmlinux 0x2b43f212 cont_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x2b484e87 __nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x2b56cf8c blk_init_queue
+EXPORT_SYMBOL vmlinux 0x2b5d5823 do_splice_from
+EXPORT_SYMBOL vmlinux 0x2b83c53f directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0x2b8e8553 kset_register
+EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock
+EXPORT_SYMBOL vmlinux 0x2b9df70b blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2bab2b2e __dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler
+EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset
+EXPORT_SYMBOL vmlinux 0x2bcc8339 __scsi_add_device
+EXPORT_SYMBOL vmlinux 0x2bd08b48 page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0x2bf11c82 pci_disable_link_state
+EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle
+EXPORT_SYMBOL vmlinux 0x2c10a78f audit_log_format
+EXPORT_SYMBOL vmlinux 0x2c3f7a57 sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x2c6d4cee clear_inode
+EXPORT_SYMBOL vmlinux 0x2c70f80b padata_set_cpumask
+EXPORT_SYMBOL vmlinux 0x2c7d5821 consume_skb
+EXPORT_SYMBOL vmlinux 0x2c86b261 __cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x2cdced55 set_blocksize
+EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic
+EXPORT_SYMBOL vmlinux 0x2d0cb1f6 fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d22901b put_page
+EXPORT_SYMBOL vmlinux 0x2d28b16a blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask
+EXPORT_SYMBOL vmlinux 0x2d39ca87 km_policy_expired
+EXPORT_SYMBOL vmlinux 0x2d3b575f panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x2d506c78 get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x2d878674 neigh_table_init
+EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2da65be8 bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x2dcac828 set_page_dirty
+EXPORT_SYMBOL vmlinux 0x2dcc4ecf mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu
+EXPORT_SYMBOL vmlinux 0x2deb7136 ether_setup
+EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception
+EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e2da753 single_release
+EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem
+EXPORT_SYMBOL vmlinux 0x2e60bace memcpy
+EXPORT_SYMBOL vmlinux 0x2e70b4e2 dma_pool_free
+EXPORT_SYMBOL vmlinux 0x2e953710 setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x2ea88596 serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x2f019603 input_get_keycode
+EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource
+EXPORT_SYMBOL vmlinux 0x2f17fcca atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user
+EXPORT_SYMBOL vmlinux 0x2f2f550c journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x2f451a60 thaw_bdev
+EXPORT_SYMBOL vmlinux 0x2f724554 bio_add_page
+EXPORT_SYMBOL vmlinux 0x2f7e3cb5 pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0x2f895941 qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x2f9c44a4 lro_vlan_hwaccel_receive_skb
+EXPORT_SYMBOL vmlinux 0x2fa393cb cdev_init
+EXPORT_SYMBOL vmlinux 0x2fb3c092 xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x2fbd2d93 skb_recycle_check
+EXPORT_SYMBOL vmlinux 0x2fd4cd74 pci_enable_device
+EXPORT_SYMBOL vmlinux 0x2fd8ef62 rt6_lookup
+EXPORT_SYMBOL vmlinux 0x30318a85 xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0x3046dea0 filp_open
+EXPORT_SYMBOL vmlinux 0x304e2a34 skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x3068053d tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0x30b882ea check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x30bfc96e journal_update_format
+EXPORT_SYMBOL vmlinux 0x30c75199 downgrade_write
+EXPORT_SYMBOL vmlinux 0x30dda86a end_page_writeback
+EXPORT_SYMBOL vmlinux 0x30e00123 sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0x310917fe sort
+EXPORT_SYMBOL vmlinux 0x310d5dda security_path_rmdir
+EXPORT_SYMBOL vmlinux 0x310f098a proc_mkdir
+EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x311e2c2c elv_register_queue
+EXPORT_SYMBOL vmlinux 0x3140daf8 alloc_disk_node
+EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d default_red
+EXPORT_SYMBOL vmlinux 0x314d51ff splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x3154c63f iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc
+EXPORT_SYMBOL vmlinux 0x31b28fdf tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0x31c217d2 md_write_end
+EXPORT_SYMBOL vmlinux 0x31cf467a max8925_reg_write
+EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz
+EXPORT_SYMBOL vmlinux 0x31e7ba17 fd_install
+EXPORT_SYMBOL vmlinux 0x31f444e9 d_validate
+EXPORT_SYMBOL vmlinux 0x31faa917 dev_uc_sync
+EXPORT_SYMBOL vmlinux 0x3208b173 ___pskb_trim
+EXPORT_SYMBOL vmlinux 0x321eb953 jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0x323329ca abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0x32501e68 lookup_one_len
+EXPORT_SYMBOL vmlinux 0x32605322 unregister_console
+EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat
+EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x32808adb seq_escape
+EXPORT_SYMBOL vmlinux 0x3283c969 set_groups
+EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint
+EXPORT_SYMBOL vmlinux 0x328e86e3 nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x32ab71ab ps2_begin_command
+EXPORT_SYMBOL vmlinux 0x32ca9939 set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0x32d8050d udp_disconnect
+EXPORT_SYMBOL vmlinux 0x32f14eb6 get_disk
+EXPORT_SYMBOL vmlinux 0x32ff7663 netif_device_attach
+EXPORT_SYMBOL vmlinux 0x330c89b6 find_or_create_page
+EXPORT_SYMBOL vmlinux 0x33140607 generic_setlease
+EXPORT_SYMBOL vmlinux 0x334cb89f get_write_access
+EXPORT_SYMBOL vmlinux 0x3363d1e6 slow_work_register_user
+EXPORT_SYMBOL vmlinux 0x336a1a4d neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x33a050de __f_setown
+EXPORT_SYMBOL vmlinux 0x34016296 ipv6_setsockopt
+EXPORT_SYMBOL vmlinux 0x3411142f tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0x342f60fe apm_info
+EXPORT_SYMBOL vmlinux 0x3438171f bioset_create
+EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long
+EXPORT_SYMBOL vmlinux 0x345a118e close_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x345d7ff1 gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x3470853b key_negate_and_link
+EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x349cba85 strchr
+EXPORT_SYMBOL vmlinux 0x349d57f9 skb_pull
+EXPORT_SYMBOL vmlinux 0x34c265bf atomic64_dec_if_positive_cx8
+EXPORT_SYMBOL vmlinux 0x34d3013f jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0x34dcf959 tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0x3536193e get_sb_pseudo
+EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe
+EXPORT_SYMBOL vmlinux 0x354972cf security_path_chmod
+EXPORT_SYMBOL vmlinux 0x357bdd5c __sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0x359565cf blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0x35a344a9 genphy_suspend
+EXPORT_SYMBOL vmlinux 0x35a74df7 inetdev_by_index
+EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator
+EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x360867ea sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask
+EXPORT_SYMBOL vmlinux 0x36255db9 fasync_helper
+EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user
+EXPORT_SYMBOL vmlinux 0x364e2ce5 generic_readlink
+EXPORT_SYMBOL vmlinux 0x367b4bfa elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg
+EXPORT_SYMBOL vmlinux 0x36ac6208 kernel_getpeername
+EXPORT_SYMBOL vmlinux 0x36bff149 tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0x36c27e48 mmc_set_data_timeout
+EXPORT_SYMBOL vmlinux 0x36c6af51 intel_scu_ipc_iowrite8
+EXPORT_SYMBOL vmlinux 0x36cb3454 kobject_del
+EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36f5672c pci_clear_master
+EXPORT_SYMBOL vmlinux 0x36f84da3 dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0x37337cd7 blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf
+EXPORT_SYMBOL vmlinux 0x3779d09b ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x377d545c read_cache_page
+EXPORT_SYMBOL vmlinux 0x378bcb79 register_filesystem
+EXPORT_SYMBOL vmlinux 0x37a02d02 is_container_init
+EXPORT_SYMBOL vmlinux 0x37a2f623 sk_stream_error
+EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic
+EXPORT_SYMBOL vmlinux 0x37b3c3c7 starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37db82d6 ipv6_push_nfrag_opts
+EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date
+EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64
+EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow
+EXPORT_SYMBOL vmlinux 0x380d270c setup_new_exec
+EXPORT_SYMBOL vmlinux 0x380fa1ff ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x382b6846 scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x382d43fe sock_create_lite
+EXPORT_SYMBOL vmlinux 0x38310948 simple_transaction_set
+EXPORT_SYMBOL vmlinux 0x383a388d md_check_no_bitmap
+EXPORT_SYMBOL vmlinux 0x38497c47 udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0x38551568 idr_for_each
+EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe
+EXPORT_SYMBOL vmlinux 0x388997f7 netif_napi_add
+EXPORT_SYMBOL vmlinux 0x388bbe40 scsi_register_driver
+EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x38a14d4f sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0x38aa7d58 rwsem_wake
+EXPORT_SYMBOL vmlinux 0x38b7db06 tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0x39291142 devm_free_irq
+EXPORT_SYMBOL vmlinux 0x3957530e blk_recount_segments
+EXPORT_SYMBOL vmlinux 0x39591295 nf_afinfo
+EXPORT_SYMBOL vmlinux 0x3967cdae vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x39923482 mca_device_set_claim
+EXPORT_SYMBOL vmlinux 0x39b39cb2 wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x39b98fc0 dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0x39ded85f dm_snap_cow
+EXPORT_SYMBOL vmlinux 0x39fc5e62 udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x3a150a09 uart_add_one_port
+EXPORT_SYMBOL vmlinux 0x3a179ad7 journal_start_commit
+EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a402be8 __generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x3a6497fe zero_fill_bio
+EXPORT_SYMBOL vmlinux 0x3a69adc3 otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0x3a7173ac complete_all
+EXPORT_SYMBOL vmlinux 0x3a73f2bd scsi_dma_map
+EXPORT_SYMBOL vmlinux 0x3a91caea gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3a9e3b8d mmc_power_restore_host
+EXPORT_SYMBOL vmlinux 0x3ad5d9f4 vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x3ae37253 iget5_locked
+EXPORT_SYMBOL vmlinux 0x3aec5f07 md_unregister_thread
+EXPORT_SYMBOL vmlinux 0x3b053eeb __napi_complete
+EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b4f0df2 seq_bitmap
+EXPORT_SYMBOL vmlinux 0x3b622328 kobject_get
+EXPORT_SYMBOL vmlinux 0x3b637078 locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x3b7ab816 qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0x3b7dbc59 wireless_spy_update
+EXPORT_SYMBOL vmlinux 0x3b7ebd4d backlight_device_register
+EXPORT_SYMBOL vmlinux 0x3b97b6e6 xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3bd84506 netlink_unicast
+EXPORT_SYMBOL vmlinux 0x3bee2159 skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0x3c11ec91 sock_wmalloc
+EXPORT_SYMBOL vmlinux 0x3c287bef jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf
+EXPORT_SYMBOL vmlinux 0x3c568c17 __task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x3c7766ca mca_unregister_driver
+EXPORT_SYMBOL vmlinux 0x3c79e531 llc_add_pack
+EXPORT_SYMBOL vmlinux 0x3c7c1b5c journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x3c8c02cc __register_binfmt
+EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size
+EXPORT_SYMBOL vmlinux 0x3ca7dc86 find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x3cd698a5 __blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq
+EXPORT_SYMBOL vmlinux 0x3cf1a046 set_pages_array_wb
+EXPORT_SYMBOL vmlinux 0x3d1f2c96 fsnotify_obtain_group
+EXPORT_SYMBOL vmlinux 0x3d25617a scsi_remove_target
+EXPORT_SYMBOL vmlinux 0x3d2aafd1 try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0x3d605d5d textsearch_register
+EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc
+EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start
+EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat
+EXPORT_SYMBOL vmlinux 0x3dc2b1e8 save_mount_options
+EXPORT_SYMBOL vmlinux 0x3dc62ffd pnp_is_active
+EXPORT_SYMBOL vmlinux 0x3de030f6 dm_dirty_log_type_register
+EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e01b208 pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock
+EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks
+EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0x3e8bc645 tty_vhangup
+EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3eacb406 elv_rb_find
+EXPORT_SYMBOL vmlinux 0x3eb548e3 dm_table_unplug_all
+EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3edc1377 vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0x3ef78d80 vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x3eff54fd tty_register_device
+EXPORT_SYMBOL vmlinux 0x3eff5ac2 intel_scu_ipc_writev
+EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f123817 lookup_bdev
+EXPORT_SYMBOL vmlinux 0x3f1296c9 splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0x3f178891 blk_run_queue
+EXPORT_SYMBOL vmlinux 0x3f18eaa8 blk_complete_request
+EXPORT_SYMBOL vmlinux 0x3f19362b pci_request_region
+EXPORT_SYMBOL vmlinux 0x3f1bc368 call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0x3f254564 create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x3f2f650f md_barrier_request
+EXPORT_SYMBOL vmlinux 0x3f3159b4 gen_pool_free
+EXPORT_SYMBOL vmlinux 0x3f31bccf gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f471f7c scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x3f622645 _raw_read_lock_irq
+EXPORT_SYMBOL vmlinux 0x3f841445 xfrm_input
+EXPORT_SYMBOL vmlinux 0x3fec048f sg_next
+EXPORT_SYMBOL vmlinux 0x3feeff48 phy_enable_interrupts
+EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable
+EXPORT_SYMBOL vmlinux 0x3ffd2570 spi_dv_device
+EXPORT_SYMBOL vmlinux 0x402a8386 ndisc_build_skb
+EXPORT_SYMBOL vmlinux 0x4038086d update_region
+EXPORT_SYMBOL vmlinux 0x405614c7 scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump
+EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds
+EXPORT_SYMBOL vmlinux 0x405d0fab bio_put
+EXPORT_SYMBOL vmlinux 0x4062aef8 tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register
+EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40a99adf mmc_host_lazy_disable
+EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index
+EXPORT_SYMBOL vmlinux 0x40fba2d2 sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring
+EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode
+EXPORT_SYMBOL vmlinux 0x41105216 put_tty_driver
+EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp
+EXPORT_SYMBOL vmlinux 0x4147f3b8 unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user
+EXPORT_SYMBOL vmlinux 0x416137b1 gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features
+EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x41a50ef6 dma_async_memcpy_buf_to_buf
+EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0x41f1b43b i8253_lock
+EXPORT_SYMBOL vmlinux 0x41f9fac5 __vlan_hwaccel_rx
+EXPORT_SYMBOL vmlinux 0x420a6ab8 up_write
+EXPORT_SYMBOL vmlinux 0x420cda73 journal_restart
+EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x4214ed96 tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x42224298 sscanf
+EXPORT_SYMBOL vmlinux 0x4231c6a5 inode_init_owner
+EXPORT_SYMBOL vmlinux 0x423d077d nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force
+EXPORT_SYMBOL vmlinux 0x426cf20b cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0x427580dc fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x427f5ae3 sockfd_lookup
+EXPORT_SYMBOL vmlinux 0x428251ab ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0x4283d61c tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0x4292364c schedule
+EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42ac8be7 pci_choose_state
+EXPORT_SYMBOL vmlinux 0x42b1ac69 sk_dst_check
+EXPORT_SYMBOL vmlinux 0x42c16c49 register_key_type
+EXPORT_SYMBOL vmlinux 0x42c344b5 i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x42f57f5e pcim_enable_device
+EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages
+EXPORT_SYMBOL vmlinux 0x431e164f unregister_cdrom
+EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short
+EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem
+EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32
+EXPORT_SYMBOL vmlinux 0x438e10cf blk_requeue_request
+EXPORT_SYMBOL vmlinux 0x438ecc5d skb_dequeue
+EXPORT_SYMBOL vmlinux 0x439bdc47 no_llseek
+EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get
+EXPORT_SYMBOL vmlinux 0x43ede7a3 do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0x43fc3375 dm_get_device
+EXPORT_SYMBOL vmlinux 0x4413c7e5 scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0x444779c4 nla_find
+EXPORT_SYMBOL vmlinux 0x4454ee6c journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x446789bb blk_init_tags
+EXPORT_SYMBOL vmlinux 0x44828927 journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x4495c48d uart_resume_port
+EXPORT_SYMBOL vmlinux 0x449e2602 jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x44aac1e9 generic_read_dir
+EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz
+EXPORT_SYMBOL vmlinux 0x44c97afa tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0x44e3dbb4 skb_seq_read
+EXPORT_SYMBOL vmlinux 0x44e9a829 match_token
+EXPORT_SYMBOL vmlinux 0x44eb77e7 key_revoke
+EXPORT_SYMBOL vmlinux 0x44fa26d0 get_sb_ns
+EXPORT_SYMBOL vmlinux 0x45173103 journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x4519caca mca_device_transform_irq
+EXPORT_SYMBOL vmlinux 0x452ba0cb pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0x453028dd block_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x45314b12 dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x4535d16b read_dev_sector
+EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled
+EXPORT_SYMBOL vmlinux 0x4541a3c8 task_nice
+EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x4554b53d mca_device_read_stored_pos
+EXPORT_SYMBOL vmlinux 0x4567ac9a acpi_bus_start
+EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0x45947727 param_array_set
+EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states
+EXPORT_SYMBOL vmlinux 0x45a32f1f unbind_con_driver
+EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45de9df3 sock_no_bind
+EXPORT_SYMBOL vmlinux 0x45e5353b dma_find_channel
+EXPORT_SYMBOL vmlinux 0x45e88123 vga_put
+EXPORT_SYMBOL vmlinux 0x45eace02 nobh_writepage
+EXPORT_SYMBOL vmlinux 0x45f5aae3 dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0x46015c5e neigh_create
+EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy
+EXPORT_SYMBOL vmlinux 0x463ed2f0 blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0x464c83d9 log_wait_commit
+EXPORT_SYMBOL vmlinux 0x466c14a7 __delay
+EXPORT_SYMBOL vmlinux 0x468e5ac9 lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x46ce6d0d neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x46cfb3d7 page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0x46e198f0 ab3100_event_register
+EXPORT_SYMBOL vmlinux 0x47035120 ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x4703e53f netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x47376f41 pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0x474721c6 __page_symlink
+EXPORT_SYMBOL vmlinux 0x4748a227 sk_reset_timer
+EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects
+EXPORT_SYMBOL vmlinux 0x4764b869 scsi_print_command
+EXPORT_SYMBOL vmlinux 0x47880a0b splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0x47899c17 pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq
+EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit
+EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0x47c7b0d2 cpu_number
+EXPORT_SYMBOL vmlinux 0x4809f3d9 ip_dev_find
+EXPORT_SYMBOL vmlinux 0x480f14d9 scsi_add_device
+EXPORT_SYMBOL vmlinux 0x480ff0b7 sk_wait_data
+EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open
+EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep
+EXPORT_SYMBOL vmlinux 0x48327a43 simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days
+EXPORT_SYMBOL vmlinux 0x487fb240 __netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x4896ff0c dm_unregister_target
+EXPORT_SYMBOL vmlinux 0x48a771c5 cpu_core_map
+EXPORT_SYMBOL vmlinux 0x48cf0477 call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0x48d16de3 netpoll_poll_dev
+EXPORT_SYMBOL vmlinux 0x48ef274c sock_recvmsg
+EXPORT_SYMBOL vmlinux 0x4905bc15 jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x490f0062 vfs_follow_link
+EXPORT_SYMBOL vmlinux 0x491e467a inet_release
+EXPORT_SYMBOL vmlinux 0x4933034a pipe_unlock
+EXPORT_SYMBOL vmlinux 0x493911d8 mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x493bc353 dquot_alloc
+EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x4949b504 tty_port_put
+EXPORT_SYMBOL vmlinux 0x494d5ab9 __pagevec_release
+EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x49a08099 kmem_ptr_validate
+EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49b3c2bd pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0x49cc838c scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0x49d78f88 mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string
+EXPORT_SYMBOL vmlinux 0x4a108149 kill_pid
+EXPORT_SYMBOL vmlinux 0x4a1c5a9c phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x4a345693 ppp_output_wakeup
+EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a4f994c uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0x4a901cd1 lock_may_write
+EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc
+EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x4ac52438 dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x4accd654 ip_route_output_key
+EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource
+EXPORT_SYMBOL vmlinux 0x4afa3dc8 i2c_master_recv
+EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b17eaa2 __invalidate_device
+EXPORT_SYMBOL vmlinux 0x4b257e53 sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals
+EXPORT_SYMBOL vmlinux 0x4b722415 alloc_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0x4b7c4b08 __nla_put
+EXPORT_SYMBOL vmlinux 0x4b95e6a4 sock_wfree
+EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags
+EXPORT_SYMBOL vmlinux 0x4c0d5848 blk_rq_init
+EXPORT_SYMBOL vmlinux 0x4c0e16aa ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c2a71db pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr
+EXPORT_SYMBOL vmlinux 0x4c340bb1 skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x4c4a27e5 neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x4c6ba508 kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x4c82f798 shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x4c8829f4 filemap_fault
+EXPORT_SYMBOL vmlinux 0x4c9b8b6c iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cd35443 tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0x4cdb86d7 tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0x4ce08440 udp_poll
+EXPORT_SYMBOL vmlinux 0x4ce90af0 sock_rfree
+EXPORT_SYMBOL vmlinux 0x4d081718 tty_free_termios
+EXPORT_SYMBOL vmlinux 0x4d178397 acpi_bus_unregister_driver
+EXPORT_SYMBOL vmlinux 0x4d1d2cf3 vfs_rename
+EXPORT_SYMBOL vmlinux 0x4d20ddbc atomic64_inc_not_zero_cx8
+EXPORT_SYMBOL vmlinux 0x4d2d67b8 mem_map
+EXPORT_SYMBOL vmlinux 0x4d355d91 thaw_super
+EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask
+EXPORT_SYMBOL vmlinux 0x4d76e561 key_unlink
+EXPORT_SYMBOL vmlinux 0x4d85ac95 blk_plug_device_unlocked
+EXPORT_SYMBOL vmlinux 0x4da00277 pnp_stop_dev
+EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dcd3604 fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0x4dd7bc53 skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child
+EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int
+EXPORT_SYMBOL vmlinux 0x4e46c7e8 key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0x4e5e219a security_path_mknod
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console
+EXPORT_SYMBOL vmlinux 0x4e743069 textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp
+EXPORT_SYMBOL vmlinux 0x4e93c516 phy_disable_interrupts
+EXPORT_SYMBOL vmlinux 0x4eaa87c4 keyring_search
+EXPORT_SYMBOL vmlinux 0x4eb146a8 skb_queue_tail
+EXPORT_SYMBOL vmlinux 0x4ebf151b get_user_pages
+EXPORT_SYMBOL vmlinux 0x4eccff83 pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0x4eff2e94 tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f3647d0 dma_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x4f3cc07e module_put
+EXPORT_SYMBOL vmlinux 0x4f3e6450 dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt
+EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read
+EXPORT_SYMBOL vmlinux 0x4f79af05 simple_set_mnt
+EXPORT_SYMBOL vmlinux 0x4f877cdd rtnl_create_link
+EXPORT_SYMBOL vmlinux 0x4f937654 __blk_run_queue
+EXPORT_SYMBOL vmlinux 0x4fae9e25 revalidate_disk
+EXPORT_SYMBOL vmlinux 0x4fdda67b qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x4fde41f6 kmem_cache_alloc_node_notrace
+EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command
+EXPORT_SYMBOL vmlinux 0x4fef871b neigh_lookup
+EXPORT_SYMBOL vmlinux 0x4ffc3971 dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0x5003bb3b i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x5032ba38 tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0x5051eb8e alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status
+EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x506e6f2f _atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x5071121c ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x5082f8cd vga_switcheroo_unregister_client
+EXPORT_SYMBOL vmlinux 0x5097ed1f set_pages_array_wc
+EXPORT_SYMBOL vmlinux 0x50a9e7a1 brioctl_set
+EXPORT_SYMBOL vmlinux 0x50b19420 do_sync_write
+EXPORT_SYMBOL vmlinux 0x50d27c5e request_key_async
+EXPORT_SYMBOL vmlinux 0x50fa44f1 phy_device_register
+EXPORT_SYMBOL vmlinux 0x50feb128 uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x51128e5d sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x512df144 uart_match_port
+EXPORT_SYMBOL vmlinux 0x51355888 bitmap_cond_end_sync
+EXPORT_SYMBOL vmlinux 0x5152e605 memcmp
+EXPORT_SYMBOL vmlinux 0x5186518f profile_pc
+EXPORT_SYMBOL vmlinux 0x5187ac4b xen_store_evtchn
+EXPORT_SYMBOL vmlinux 0x518ee1e6 tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0x51955e3a elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0x51ab3507 inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled
+EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x51e49f77 get_io_context
+EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup
+EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data
+EXPORT_SYMBOL vmlinux 0x52218f18 invalidate_partition
+EXPORT_SYMBOL vmlinux 0x52373b22 bit_waitqueue
+EXPORT_SYMBOL vmlinux 0x523bf5c7 ppp_input_error
+EXPORT_SYMBOL vmlinux 0x527273a6 console_stop
+EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday
+EXPORT_SYMBOL vmlinux 0x52872b97 ida_destroy
+EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x52934410 __set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x529c1168 icmpv6_send
+EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy
+EXPORT_SYMBOL vmlinux 0x52c2ef34 rb_erase
+EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort
+EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend
+EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid
+EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x5332fe7d seq_open_private
+EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat
+EXPORT_SYMBOL vmlinux 0x534f5673 skb_clone
+EXPORT_SYMBOL vmlinux 0x534f5d95 dmam_declare_coherent_memory
+EXPORT_SYMBOL vmlinux 0x536b2670 i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0x5374d239 insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0x537798c5 notify_change
+EXPORT_SYMBOL vmlinux 0x538383c0 unregister_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x53d55813 dquot_operations
+EXPORT_SYMBOL vmlinux 0x53dab193 bitmap_end_sync
+EXPORT_SYMBOL vmlinux 0x53e378ea block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x53e3a3fb serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x53fa8d89 pcie_port_service_register
+EXPORT_SYMBOL vmlinux 0x54005641 idr_get_new_above
+EXPORT_SYMBOL vmlinux 0x5418d596 journal_errno
+EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate
+EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x54488be9 lock_fb_info
+EXPORT_SYMBOL vmlinux 0x5451300c inet_listen
+EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port
+EXPORT_SYMBOL vmlinux 0x549b44d1 fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x54a285c5 atomic64_dec_return_cx8
+EXPORT_SYMBOL vmlinux 0x54be6d75 vc_resize
+EXPORT_SYMBOL vmlinux 0x54c0192c bdget_disk
+EXPORT_SYMBOL vmlinux 0x54c3a71d inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x54de9f76 tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x54e1b9fc fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54e77e02 genl_register_ops
+EXPORT_SYMBOL vmlinux 0x5520c2be tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0x553c3d83 unregister_qdisc
+EXPORT_SYMBOL vmlinux 0x55444f35 pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0x555e7951 icmp_send
+EXPORT_SYMBOL vmlinux 0x5582ccbf kernel_accept
+EXPORT_SYMBOL vmlinux 0x5590cf2b sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x55ab214f unlock_buffer
+EXPORT_SYMBOL vmlinux 0x55c2f3d5 uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0x55d85a41 phy_register_fixup
+EXPORT_SYMBOL vmlinux 0x55f1335f I_BDEV
+EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x5600f102 phy_sanitize_settings
+EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday
+EXPORT_SYMBOL vmlinux 0x56131cd2 acpi_bus_generate_proc_event
+EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user
+EXPORT_SYMBOL vmlinux 0x565ac880 dma_release_from_coherent
+EXPORT_SYMBOL vmlinux 0x566d03dc inode_setattr
+EXPORT_SYMBOL vmlinux 0x5676a3e5 intel_scu_ipc_ioread8
+EXPORT_SYMBOL vmlinux 0x569f1fae skb_gso_segment
+EXPORT_SYMBOL vmlinux 0x56be2bc3 n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56df5a59 mmc_regulator_set_ocr
+EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function
+EXPORT_SYMBOL vmlinux 0x56f84d0a sock_no_mmap
+EXPORT_SYMBOL vmlinux 0x56fbc7bc new_inode
+EXPORT_SYMBOL vmlinux 0x5705088a __vmalloc
+EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x57541460 locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put
+EXPORT_SYMBOL vmlinux 0x576120be seq_printf
+EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16
+EXPORT_SYMBOL vmlinux 0x576ba11a sleep_on
+EXPORT_SYMBOL vmlinux 0x5770244b skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x57803885 d_genocide
+EXPORT_SYMBOL vmlinux 0x57829890 generic_setattr
+EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf
+EXPORT_SYMBOL vmlinux 0x57b09822 up
+EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57d3c165 pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path
+EXPORT_SYMBOL vmlinux 0x57efb373 sk_free
+EXPORT_SYMBOL vmlinux 0x57f227be vm_map_ram
+EXPORT_SYMBOL vmlinux 0x58113110 slow_work_cancel
+EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep
+EXPORT_SYMBOL vmlinux 0x5858d4d4 __scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x58725227 rfkill_get_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x5878c0da mb_cache_create
+EXPORT_SYMBOL vmlinux 0x587c70d8 _raw_spin_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x588c94e4 kobject_put
+EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler
+EXPORT_SYMBOL vmlinux 0x5892ffe0 __skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x58b23593 inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x58bd3d07 udplite_prot
+EXPORT_SYMBOL vmlinux 0x58c1adb3 llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0x58c6e10b dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0x58d0b727 mmc_request_done
+EXPORT_SYMBOL vmlinux 0x58f12325 generic_unplug_device
+EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info
+EXPORT_SYMBOL vmlinux 0x591cb7c1 jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed
+EXPORT_SYMBOL vmlinux 0x592b9cd7 down_read
+EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client
+EXPORT_SYMBOL vmlinux 0x5938155d flush_signals
+EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map
+EXPORT_SYMBOL vmlinux 0x594c2c4b find_get_page
+EXPORT_SYMBOL vmlinux 0x5953bc80 skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x5954ca82 idr_destroy
+EXPORT_SYMBOL vmlinux 0x59571c13 nf_register_hooks
+EXPORT_SYMBOL vmlinux 0x5965c67a xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x599ea30f ht_create_irq
+EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register
+EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier
+EXPORT_SYMBOL vmlinux 0x5a2bda12 udplite_table
+EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2
+EXPORT_SYMBOL vmlinux 0x5a60fe44 dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x5a667c0a mpage_readpages
+EXPORT_SYMBOL vmlinux 0x5a69b1df tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5ab57b4c xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0x5ac0d691 xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x5ae5db9a register_con_driver
+EXPORT_SYMBOL vmlinux 0x5af2172c bd_claim
+EXPORT_SYMBOL vmlinux 0x5afa2263 __secpath_destroy
+EXPORT_SYMBOL vmlinux 0x5afd3e4d kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem
+EXPORT_SYMBOL vmlinux 0x5b256f17 proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x5b35bbe2 phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x5b44a057 bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x5b4c6297 __percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0x5b4fd289 xfrm_register_type
+EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources
+EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0x5b7a81fd clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0x5b88e8c9 atomic64_sub_return_cx8
+EXPORT_SYMBOL vmlinux 0x5ba199c3 input_close_device
+EXPORT_SYMBOL vmlinux 0x5bb44b2f dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x5bbc4aed ethtool_ntuple_flush
+EXPORT_SYMBOL vmlinux 0x5bd8889a inet_ioctl
+EXPORT_SYMBOL vmlinux 0x5bed9f53 pci_set_master
+EXPORT_SYMBOL vmlinux 0x5bf83cf4 scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x5c1665a0 pci_select_bars
+EXPORT_SYMBOL vmlinux 0x5c1cab03 nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0x5c399f52 scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0x5c530cee mdiobus_scan
+EXPORT_SYMBOL vmlinux 0x5c5c46cb replace_mount_options
+EXPORT_SYMBOL vmlinux 0x5c5ea8dd free_mdio_bitbang
+EXPORT_SYMBOL vmlinux 0x5c68705b mca_read_pos
+EXPORT_SYMBOL vmlinux 0x5c7477d1 scsi_print_result
+EXPORT_SYMBOL vmlinux 0x5c8a0662 mca_device_write_pos
+EXPORT_SYMBOL vmlinux 0x5c9a1629 _raw_read_trylock
+EXPORT_SYMBOL vmlinux 0x5cf2bac6 dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x5d0ec556 __scm_send
+EXPORT_SYMBOL vmlinux 0x5d10e05e skb_append
+EXPORT_SYMBOL vmlinux 0x5d315142 block_prepare_write
+EXPORT_SYMBOL vmlinux 0x5d45fcbb jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x5d5e7200 unregister_nls
+EXPORT_SYMBOL vmlinux 0x5d67b75a vfs_symlink
+EXPORT_SYMBOL vmlinux 0x5d6b7063 jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved
+EXPORT_SYMBOL vmlinux 0x5d7f79b6 blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0x5d97d50f pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0x5dab6585 dev_base_lock
+EXPORT_SYMBOL vmlinux 0x5dc236b5 unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0x5dccdb28 pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x5e09ca75 complete
+EXPORT_SYMBOL vmlinux 0x5e0ee78c set_bh_page
+EXPORT_SYMBOL vmlinux 0x5e510b8d mmc_wait_for_req
+EXPORT_SYMBOL vmlinux 0x5e684bc9 request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0x5e939cdb devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask
+EXPORT_SYMBOL vmlinux 0x5eb31329 tcp_shutdown
+EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5ed70d9e pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x5edcb9e1 journal_clear_err
+EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd
+EXPORT_SYMBOL vmlinux 0x5ee05950 remove_inode_hash
+EXPORT_SYMBOL vmlinux 0x5f1a4ccf intel_scu_ipc_update_register
+EXPORT_SYMBOL vmlinux 0x5f1bd579 mca_find_adapter
+EXPORT_SYMBOL vmlinux 0x5f2129eb bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0x5f21ba5b _raw_write_trylock
+EXPORT_SYMBOL vmlinux 0x5f592d1e xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x5f5fcdb9 blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x5fdf7d57 blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0x5fe0ef57 __alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0x5ff02dd7 journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities
+EXPORT_SYMBOL vmlinux 0x5ffaa741 f_setown
+EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x601a17a5 dqstats
+EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count
+EXPORT_SYMBOL vmlinux 0x603cebad free_netdev
+EXPORT_SYMBOL vmlinux 0x605ae984 bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net
+EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off
+EXPORT_SYMBOL vmlinux 0x60c6d41e scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0x60c71f99 find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x60ec22cf phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0x60ef0d52 cdev_del
+EXPORT_SYMBOL vmlinux 0x60f30075 ____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0x60f62e8e generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n
+EXPORT_SYMBOL vmlinux 0x611b5c6a __lock_buffer
+EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x612b464d ip6_frag_init
+EXPORT_SYMBOL vmlinux 0x6151b896 jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x6154f636 filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x6156ac01 pci_get_device
+EXPORT_SYMBOL vmlinux 0x615a3dcb mod_timer
+EXPORT_SYMBOL vmlinux 0x61621a10 tc_classify
+EXPORT_SYMBOL vmlinux 0x6172f7b3 register_sysctl_table
+EXPORT_SYMBOL vmlinux 0x617f2530 mdiobus_register
+EXPORT_SYMBOL vmlinux 0x618c2655 xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free
+EXPORT_SYMBOL vmlinux 0x619b94ea invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0x61a60f1f rb_replace_node
+EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61e58486 devm_iounmap
+EXPORT_SYMBOL vmlinux 0x61ed184d proc_create_data
+EXPORT_SYMBOL vmlinux 0x61eeeee4 proc_symlink
+EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable
+EXPORT_SYMBOL vmlinux 0x621f534d mpage_readpage
+EXPORT_SYMBOL vmlinux 0x6223cafb _raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event
+EXPORT_SYMBOL vmlinux 0x62413c0a tty_port_close_start
+EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache
+EXPORT_SYMBOL vmlinux 0x626db546 mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister
+EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x62a9e29c thermal_cooling_device_register
+EXPORT_SYMBOL vmlinux 0x62bf3d07 wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0x63085765 kernel_listen
+EXPORT_SYMBOL vmlinux 0x630d1762 cdrom_open
+EXPORT_SYMBOL vmlinux 0x6312e241 napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x631b290b deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0x6341cf2a mmc_detect_change
+EXPORT_SYMBOL vmlinux 0x6343231d truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0x63587ad5 blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic
+EXPORT_SYMBOL vmlinux 0x636ababb blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0x63bf07d5 read_cache_pages
+EXPORT_SYMBOL vmlinux 0x63e7f976 try_to_del_timer_sync
+EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x64162568 __lock_page
+EXPORT_SYMBOL vmlinux 0x641c24c2 do_truncate
+EXPORT_SYMBOL vmlinux 0x6421f759 i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x6442e658 scsi_execute
+EXPORT_SYMBOL vmlinux 0x6443d74d _raw_spin_lock
+EXPORT_SYMBOL vmlinux 0x64476f10 xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x64516675 mutex_unlock
+EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable
+EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait
+EXPORT_SYMBOL vmlinux 0x64cdd6ae generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x64e298ef vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x64e77168 inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0x64e90ef0 del_timer
+EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb
+EXPORT_SYMBOL vmlinux 0x64ec0e95 mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0x650fe6ad nobh_write_end
+EXPORT_SYMBOL vmlinux 0x651a4139 test_taint
+EXPORT_SYMBOL vmlinux 0x651f527e eth_change_mtu
+EXPORT_SYMBOL vmlinux 0x653e98d4 drop_super
+EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name
+EXPORT_SYMBOL vmlinux 0x6558dbf5 dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc
+EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x6576ee7f udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x65aa2359 jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x662ea3d0 unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0x66367526 dquot_file_open
+EXPORT_SYMBOL vmlinux 0x66413ab2 md_wakeup_thread
+EXPORT_SYMBOL vmlinux 0x666ce119 register_gifconf
+EXPORT_SYMBOL vmlinux 0x666f5db8 secpath_dup
+EXPORT_SYMBOL vmlinux 0x66893348 inet6_del_protocol
+EXPORT_SYMBOL vmlinux 0x668bd3c0 dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x66d1c897 xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x66dbb7c8 dev_change_flags
+EXPORT_SYMBOL vmlinux 0x66e6ab0f input_allocate_device
+EXPORT_SYMBOL vmlinux 0x66fab4b8 mmc_resume_host
+EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time
+EXPORT_SYMBOL vmlinux 0x670c0597 down_interruptible
+EXPORT_SYMBOL vmlinux 0x671aea10 pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0x6725862b xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4
+EXPORT_SYMBOL vmlinux 0x67316c85 cdev_add
+EXPORT_SYMBOL vmlinux 0x676b53fb pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0x67804a19 __any_online_cpu
+EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios
+EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67ff79df netpoll_send_skb
+EXPORT_SYMBOL vmlinux 0x68190cbd nf_log_register
+EXPORT_SYMBOL vmlinux 0x68375ea9 serio_close
+EXPORT_SYMBOL vmlinux 0x6850f6c5 blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0x6857a1f1 blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x68828587 scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x6887486b scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x688db59a ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x6890e35f slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x68b434c5 dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0x68bcef0d lease_modify
+EXPORT_SYMBOL vmlinux 0x68e9b1fc arp_xmit
+EXPORT_SYMBOL vmlinux 0x6910d85e kmem_cache_name
+EXPORT_SYMBOL vmlinux 0x6918d01a blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x693bc885 framebuffer_release
+EXPORT_SYMBOL vmlinux 0x696ead68 phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days
+EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int
+EXPORT_SYMBOL vmlinux 0x6984e03a pci_remove_bus
+EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7
+EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem
+EXPORT_SYMBOL vmlinux 0x699748ec journal_start
+EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be
+EXPORT_SYMBOL vmlinux 0x69a1b6f8 bdi_register
+EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource
+EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x69d2575f efi
+EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69e34efa tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0x69e37dc3 isapnp_protocol
+EXPORT_SYMBOL vmlinux 0x69ef5a4b vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x69f64c0a cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0x6a034ede kthread_stop
+EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a0e87de rtc_dev_update_irq_enable_emul
+EXPORT_SYMBOL vmlinux 0x6a25f943 __serio_register_port
+EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic
+EXPORT_SYMBOL vmlinux 0x6a67bd5a bd_set_size
+EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6aab2536 touch_atime
+EXPORT_SYMBOL vmlinux 0x6abc8e7c lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x6abf64ec __devm_request_region
+EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be
+EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp
+EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device
+EXPORT_SYMBOL vmlinux 0x6af87e6a jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0x6b0cb9d4 dmam_pool_create
+EXPORT_SYMBOL vmlinux 0x6b121999 tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname
+EXPORT_SYMBOL vmlinux 0x6b2d7f76 pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack
+EXPORT_SYMBOL vmlinux 0x6b3202cd block_write_begin
+EXPORT_SYMBOL vmlinux 0x6b3ecc8b page_follow_link_light
+EXPORT_SYMBOL vmlinux 0x6b47ef4f blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0x6b4f362d blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x6b63b8a5 eisa_driver_register
+EXPORT_SYMBOL vmlinux 0x6b66b747 elevator_exit
+EXPORT_SYMBOL vmlinux 0x6b6dc165 __wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x6b7b28cd posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0x6b7c213d journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x6b937ffb mca_mark_as_used
+EXPORT_SYMBOL vmlinux 0x6b9ba73c alloc_etherdev_mq
+EXPORT_SYMBOL vmlinux 0x6b9ef355 ipv4_specific
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6bed233a jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x6bf8d133 down_trylock
+EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn
+EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp
+EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data
+EXPORT_SYMBOL vmlinux 0x6c3d8021 gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0x6c55d14b scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c6738ce vga_get
+EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c7cb1c1 pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0x6c892fbf netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x6c8b2202 posix_lock_file
+EXPORT_SYMBOL vmlinux 0x6c976dbc spi_schedule_dv_device
+EXPORT_SYMBOL vmlinux 0x6ca9afa6 seq_putc
+EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy
+EXPORT_SYMBOL vmlinux 0x6cf29021 mmc_unregister_driver
+EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x6d28acc2 bio_unmap_user
+EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0x6d5767a1 block_truncate_page
+EXPORT_SYMBOL vmlinux 0x6d7ee49e pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6df9d1aa simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0x6e0def12 register_framebuffer
+EXPORT_SYMBOL vmlinux 0x6e1b3781 neigh_ifdown
+EXPORT_SYMBOL vmlinux 0x6e2283b5 sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x6e3ecc9c cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0x6e489d88 __find_get_block
+EXPORT_SYMBOL vmlinux 0x6e4ad778 mmc_suspend_host
+EXPORT_SYMBOL vmlinux 0x6e700807 read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put
+EXPORT_SYMBOL vmlinux 0x6eb701f5 security_path_rename
+EXPORT_SYMBOL vmlinux 0x6ebc7403 vga_switcheroo_register_client
+EXPORT_SYMBOL vmlinux 0x6ed6c484 ipv6_dev_get_saddr
+EXPORT_SYMBOL vmlinux 0x6edbe866 ppp_input
+EXPORT_SYMBOL vmlinux 0x6eea14d8 scsi_free_command
+EXPORT_SYMBOL vmlinux 0x6eef92a9 console_start
+EXPORT_SYMBOL vmlinux 0x6f0bf8d4 skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x6f0f5a4a ip6_xmit
+EXPORT_SYMBOL vmlinux 0x6f36242b gen_pool_create
+EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device
+EXPORT_SYMBOL vmlinux 0x6f5689a8 input_unregister_handler
+EXPORT_SYMBOL vmlinux 0x6f5a35df tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x6f6b786f dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x6f7c35ae release_sock
+EXPORT_SYMBOL vmlinux 0x6f7cd2db padata_add_cpu
+EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x6f8aac6e mmc_free_host
+EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fdfa52e __dquot_free_space
+EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write
+EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free
+EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm
+EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf
+EXPORT_SYMBOL vmlinux 0x704b0d32 ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma
+EXPORT_SYMBOL vmlinux 0x7056d405 write_cache_pages
+EXPORT_SYMBOL vmlinux 0x705848be bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x7098f727 vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x70ac61d1 kthread_bind
+EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait
+EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat
+EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock
+EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc
+EXPORT_SYMBOL vmlinux 0x7138981b proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x714e5c9d neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x7151ec52 ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0x7169dd97 dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0x7171121c overflowgid
+EXPORT_SYMBOL vmlinux 0x717f5eca vfs_write
+EXPORT_SYMBOL vmlinux 0x7188509a end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x7193f7bd tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev
+EXPORT_SYMBOL vmlinux 0x71b14bb1 nobh_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x71ba45eb sock_register
+EXPORT_SYMBOL vmlinux 0x71e204f9 skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x71ebf4c0 netpoll_poll
+EXPORT_SYMBOL vmlinux 0x71fcd68d padata_start
+EXPORT_SYMBOL vmlinux 0x721322f8 con_is_bound
+EXPORT_SYMBOL vmlinux 0x72540640 nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0x7273c2f1 d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x727837a9 abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x7280d40c scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0x7285ec80 sync_inode
+EXPORT_SYMBOL vmlinux 0x72a1949f dma_supported
+EXPORT_SYMBOL vmlinux 0x72b097d6 blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma
+EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add
+EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte
+EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type
+EXPORT_SYMBOL vmlinux 0x730815a7 neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0x730db7aa jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x734aa42b ip_mc_rejoin_group
+EXPORT_SYMBOL vmlinux 0x735357c1 dquot_quota_on
+EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay
+EXPORT_SYMBOL vmlinux 0x73606b5c sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat
+EXPORT_SYMBOL vmlinux 0x73647755 __elv_add_request
+EXPORT_SYMBOL vmlinux 0x7386a0a8 filemap_flush
+EXPORT_SYMBOL vmlinux 0x73872e5e _raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0x7387da78 set_security_override
+EXPORT_SYMBOL vmlinux 0x738803e6 strnlen
+EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power
+EXPORT_SYMBOL vmlinux 0x739af5a0 pnp_find_card
+EXPORT_SYMBOL vmlinux 0x73af0115 x86_hyper_vmware
+EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy
+EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0x740b238e get_sb_single
+EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus
+EXPORT_SYMBOL vmlinux 0x741cabb3 simple_transaction_release
+EXPORT_SYMBOL vmlinux 0x7433c23d tty_port_close
+EXPORT_SYMBOL vmlinux 0x74380322 scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0x7439af14 skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte
+EXPORT_SYMBOL vmlinux 0x745189c6 pci_do_scan_bus
+EXPORT_SYMBOL vmlinux 0x746cf5ce scsi_remove_device
+EXPORT_SYMBOL vmlinux 0x7484b2de xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x74a270c6 generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0x74ad1be7 inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74c615c0 dquot_commit
+EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74e07c93 path_put
+EXPORT_SYMBOL vmlinux 0x74e7fe27 blk_peek_request
+EXPORT_SYMBOL vmlinux 0x7520f325 set_pages_array_uc
+EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state
+EXPORT_SYMBOL vmlinux 0x752ea2f7 abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0x753c346f misc_register
+EXPORT_SYMBOL vmlinux 0x75457399 dquot_commit_info
+EXPORT_SYMBOL vmlinux 0x7547001c alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x75474ffe generic_file_llseek_unlocked
+EXPORT_SYMBOL vmlinux 0x755665c3 ppp_unit_number
+EXPORT_SYMBOL vmlinux 0x755aa8b5 napi_skb_finish
+EXPORT_SYMBOL vmlinux 0x755c7ec4 blk_end_request
+EXPORT_SYMBOL vmlinux 0x75846f76 mmc_host_enable
+EXPORT_SYMBOL vmlinux 0x758515f7 kick_iocb
+EXPORT_SYMBOL vmlinux 0x75a2fabd xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75d2195e block_read_full_page
+EXPORT_SYMBOL vmlinux 0x75da1dff dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0x75f9f8b3 set_irq_chip
+EXPORT_SYMBOL vmlinux 0x7605b8d2 mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x760a0f4f yield
+EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x761108d5 bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off
+EXPORT_SYMBOL vmlinux 0x76429d05 redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x764bd77c request_resource
+EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc
+EXPORT_SYMBOL vmlinux 0x767deb52 sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76cbffe3 tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode
+EXPORT_SYMBOL vmlinux 0x76e0532b set_pages_uc
+EXPORT_SYMBOL vmlinux 0x76e2cd6d dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0x76e6462d tcf_hash_create
+EXPORT_SYMBOL vmlinux 0x76f17262 netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x76f3e309 __scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x76f3f8a5 num_k8_northbridges
+EXPORT_SYMBOL vmlinux 0x76f47e54 elevator_init
+EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic
+EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin
+EXPORT_SYMBOL vmlinux 0x77226e24 get_sb_nodev
+EXPORT_SYMBOL vmlinux 0x772d230c scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0x772e5313 soft_cursor
+EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x7755c1b1 pnp_register_card_driver
+EXPORT_SYMBOL vmlinux 0x77998eac jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x779b7202 tty_check_change
+EXPORT_SYMBOL vmlinux 0x77bc13a0 strim
+EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality
+EXPORT_SYMBOL vmlinux 0x77e0f35b inet6_ioctl
+EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77f9fbe8 bio_clone
+EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x7841e8cb pagecache_write_end
+EXPORT_SYMBOL vmlinux 0x786907d8 i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0x787c4270 xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0x78a8a0ab backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x78b6b225 i2c_master_send
+EXPORT_SYMBOL vmlinux 0x78ccf645 register_cdrom
+EXPORT_SYMBOL vmlinux 0x78d8db9e idr_get_next
+EXPORT_SYMBOL vmlinux 0x78dd3445 km_state_notify
+EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78e900af tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method
+EXPORT_SYMBOL vmlinux 0x790dac4a hippi_type_trans
+EXPORT_SYMBOL vmlinux 0x791feb92 inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x792b5723 tcf_hash_search
+EXPORT_SYMBOL vmlinux 0x794355f2 blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0x794487ee disable_hlt
+EXPORT_SYMBOL vmlinux 0x795c5d97 ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x79633365 __pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x7979afa0 sock_no_poll
+EXPORT_SYMBOL vmlinux 0x797d75e4 elv_rb_del
+EXPORT_SYMBOL vmlinux 0x799f4f2d jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x79a99df7 should_remove_suid
+EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79be8899 journal_stop
+EXPORT_SYMBOL vmlinux 0x7a053ec3 eth_header
+EXPORT_SYMBOL vmlinux 0x7a0a28c7 input_register_handler
+EXPORT_SYMBOL vmlinux 0x7a0aa8b3 register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol
+EXPORT_SYMBOL vmlinux 0x7a4497db kzfree
+EXPORT_SYMBOL vmlinux 0x7a57f186 sock_wake_async
+EXPORT_SYMBOL vmlinux 0x7a64bef2 d_path
+EXPORT_SYMBOL vmlinux 0x7a89c336 seq_open
+EXPORT_SYMBOL vmlinux 0x7abd0ac9 scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0x7abe5ab5 blk_get_request
+EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip
+EXPORT_SYMBOL vmlinux 0x7acbd223 noop_llseek
+EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user
+EXPORT_SYMBOL vmlinux 0x7aedc1ea tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x7b0086fc scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler
+EXPORT_SYMBOL vmlinux 0x7b12a0e8 scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name
+EXPORT_SYMBOL vmlinux 0x7b152688 simple_statfs
+EXPORT_SYMBOL vmlinux 0x7b342104 serio_open
+EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu
+EXPORT_SYMBOL vmlinux 0x7b56bd05 acpi_lid_notifier_register
+EXPORT_SYMBOL vmlinux 0x7b5a0bc5 security_path_mkdir
+EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0x7b7ab0ff fb_get_mode
+EXPORT_SYMBOL vmlinux 0x7b9e983f cpu_info
+EXPORT_SYMBOL vmlinux 0x7bb8649c __register_chrdev
+EXPORT_SYMBOL vmlinux 0x7bbbb9c3 __mmc_claim_host
+EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name
+EXPORT_SYMBOL vmlinux 0x7bdbb17f netdev_state_change
+EXPORT_SYMBOL vmlinux 0x7be498c3 blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0x7beb7d47 blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x7c1b7caf set_user_nice
+EXPORT_SYMBOL vmlinux 0x7c21e8a1 sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x7c233fd8 pv_mmu_ops
+EXPORT_SYMBOL vmlinux 0x7c2cb3ff pci_release_regions
+EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c60d66e getname
+EXPORT_SYMBOL vmlinux 0x7c61340c __release_region
+EXPORT_SYMBOL vmlinux 0x7c8247cc pskb_copy
+EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7ca446d7 dm_table_get_size
+EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down
+EXPORT_SYMBOL vmlinux 0x7cd99017 scsi_register_interface
+EXPORT_SYMBOL vmlinux 0x7ce5df48 vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0x7cf30193 rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x7cfa6d14 noop_fsync
+EXPORT_SYMBOL vmlinux 0x7d0c498c mapping_tagged
+EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies
+EXPORT_SYMBOL vmlinux 0x7d276359 blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x7d34d456 blk_remove_plug
+EXPORT_SYMBOL vmlinux 0x7d6fc09e devm_ioremap
+EXPORT_SYMBOL vmlinux 0x7d7b4f54 journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x7db57751 proc_dointvec
+EXPORT_SYMBOL vmlinux 0x7dcba4d0 del_gendisk
+EXPORT_SYMBOL vmlinux 0x7dceceac capable
+EXPORT_SYMBOL vmlinux 0x7ded1b76 scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x7df3e28e bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x7e0313fa pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0x7e0b08fb tty_port_hangup
+EXPORT_SYMBOL vmlinux 0x7e1d17cf atomic64_read_cx8
+EXPORT_SYMBOL vmlinux 0x7e24c39c pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x7e2eac64 km_new_mapping
+EXPORT_SYMBOL vmlinux 0x7e37d0d7 vc_cons
+EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e63a515 neigh_seq_next
+EXPORT_SYMBOL vmlinux 0x7e9ebb05 kernel_thread
+EXPORT_SYMBOL vmlinux 0x7ead8c0b xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0x7ec80748 tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset
+EXPORT_SYMBOL vmlinux 0x7efa15a0 xrlim_allow
+EXPORT_SYMBOL vmlinux 0x7f114141 complete_and_exit
+EXPORT_SYMBOL vmlinux 0x7f14e258 i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f425f8c padata_do_serial
+EXPORT_SYMBOL vmlinux 0x7f566fc1 nla_put
+EXPORT_SYMBOL vmlinux 0x7f6a9e66 inode_needs_sync
+EXPORT_SYMBOL vmlinux 0x7f6eb11f sock_kmalloc
+EXPORT_SYMBOL vmlinux 0x7f8f4618 noop_qdisc
+EXPORT_SYMBOL vmlinux 0x7f99406b thermal_zone_device_unregister
+EXPORT_SYMBOL vmlinux 0x7fa5647c blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0x7fc99a43 mdiobus_write
+EXPORT_SYMBOL vmlinux 0x7fd79282 jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x80024bb3 generic_writepages
+EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free
+EXPORT_SYMBOL vmlinux 0x8023fbac ndisc_mc_map
+EXPORT_SYMBOL vmlinux 0x803c10d1 pci_assign_resource
+EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0x807d2eca blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0x807ebbc4 __nla_reserve
+EXPORT_SYMBOL vmlinux 0x80a70d64 pnp_register_driver
+EXPORT_SYMBOL vmlinux 0x80bb3de7 dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0x80ca79ae pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x80fb62fe kill_block_super
+EXPORT_SYMBOL vmlinux 0x81008c73 register_8022_client
+EXPORT_SYMBOL vmlinux 0x812d8ff6 ilookup5
+EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table
+EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x814ea4e4 add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0x81520d9e napi_complete
+EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal
+EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page
+EXPORT_SYMBOL vmlinux 0x815fedb3 inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x81745054 jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf
+EXPORT_SYMBOL vmlinux 0x817efbfa tty_set_operations
+EXPORT_SYMBOL vmlinux 0x81906e7e bdi_unregister
+EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference
+EXPORT_SYMBOL vmlinux 0x81ae4081 inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0x81b5b538 pnp_request_card_device
+EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info
+EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill
+EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply
+EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x823180b9 blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x8235805b memmove
+EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8266440e simple_empty
+EXPORT_SYMBOL vmlinux 0x826be25d dqget
+EXPORT_SYMBOL vmlinux 0x82890c60 gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0x82970550 acpi_bus_get_status
+EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82f26192 get_phy_id
+EXPORT_SYMBOL vmlinux 0x830c4094 misc_deregister
+EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot
+EXPORT_SYMBOL vmlinux 0x830fd627 serio_interrupt
+EXPORT_SYMBOL vmlinux 0x831cb2a5 ___ratelimit
+EXPORT_SYMBOL vmlinux 0x834b591e otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0x834da1b0 invalidate_inodes
+EXPORT_SYMBOL vmlinux 0x83636ee3 wait_for_completion
+EXPORT_SYMBOL vmlinux 0x83767ca9 proc_dostring
+EXPORT_SYMBOL vmlinux 0x8378e9dc register_quota_format
+EXPORT_SYMBOL vmlinux 0x83800bfa kref_init
+EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8
+EXPORT_SYMBOL vmlinux 0x838f9134 key_link
+EXPORT_SYMBOL vmlinux 0x8398cba5 vga_client_register
+EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83b4877d request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0x83d249a2 nf_ip6_checksum
+EXPORT_SYMBOL vmlinux 0x83fba785 proto_register
+EXPORT_SYMBOL vmlinux 0x840ba264 module_refcount
+EXPORT_SYMBOL vmlinux 0x840cb5b6 napi_frags_skb
+EXPORT_SYMBOL vmlinux 0x841f19bd netdev_set_master
+EXPORT_SYMBOL vmlinux 0x84211b6c i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0x8422b597 pci_fixup_device
+EXPORT_SYMBOL vmlinux 0x84301421 inet6_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x84306048 dev_getbyhwaddr
+EXPORT_SYMBOL vmlinux 0x8445d326 dst_release
+EXPORT_SYMBOL vmlinux 0x8456c5a9 inet6_register_protosw
+EXPORT_SYMBOL vmlinux 0x84662d3c pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0x84a3930c clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x84b484e4 netdev_features_change
+EXPORT_SYMBOL vmlinux 0x84bca630 genphy_read_status
+EXPORT_SYMBOL vmlinux 0x84ca23aa pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0x852a8a00 bdi_destroy
+EXPORT_SYMBOL vmlinux 0x853608c4 kill_pgrp
+EXPORT_SYMBOL vmlinux 0x853d0686 tty_throttle
+EXPORT_SYMBOL vmlinux 0x854a2de1 scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x85992457 generic_show_options
+EXPORT_SYMBOL vmlinux 0x85abc101 kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0x85c89f4d tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0x85df9b6c strsep
+EXPORT_SYMBOL vmlinux 0x85e737bf tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x864bdc40 blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0x864f9780 grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x8676b53c set_binfmt
+EXPORT_SYMBOL vmlinux 0x868acba5 get_options
+EXPORT_SYMBOL vmlinux 0x869416de init_task
+EXPORT_SYMBOL vmlinux 0x86c5e6db vfs_llseek
+EXPORT_SYMBOL vmlinux 0x86eb578b xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x86fcb815 dst_destroy
+EXPORT_SYMBOL vmlinux 0x870281b3 sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x87040b93 balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x87236e81 inet_getname
+EXPORT_SYMBOL vmlinux 0x87376841 inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x873c376a tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0x875384b1 neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0x8753ed4e serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x8754473f __brelse
+EXPORT_SYMBOL vmlinux 0x876cd584 uart_remove_one_port
+EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write
+EXPORT_SYMBOL vmlinux 0x8780e299 simple_write_begin
+EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87a45ee9 _raw_spin_lock_bh
+EXPORT_SYMBOL vmlinux 0x87a4a2af fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0x87ac3bf3 wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0x87c1bd94 page_address
+EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate
+EXPORT_SYMBOL vmlinux 0x88460c2b max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x884b1adf llc_sap_close
+EXPORT_SYMBOL vmlinux 0x884e929c pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0x88719278 path_lookup
+EXPORT_SYMBOL vmlinux 0x88736e78 dquot_resume
+EXPORT_SYMBOL vmlinux 0x88941a06 _raw_spin_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x88a03681 dentry_unhash
+EXPORT_SYMBOL vmlinux 0x88c3a11d acpi_unlock_battery_dir
+EXPORT_SYMBOL vmlinux 0x88d1fa87 __xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x88d467ec pci_get_slot
+EXPORT_SYMBOL vmlinux 0x88f07740 fb_set_var
+EXPORT_SYMBOL vmlinux 0x891df308 input_unregister_handle
+EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx
+EXPORT_SYMBOL vmlinux 0x8934ee15 arp_broken_ops
+EXPORT_SYMBOL vmlinux 0x8949858b schedule_work
+EXPORT_SYMBOL vmlinux 0x8952c712 bh_submit_read
+EXPORT_SYMBOL vmlinux 0x8955056a security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0x8965967a inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x897473df mktime
+EXPORT_SYMBOL vmlinux 0x898d9d60 input_open_device
+EXPORT_SYMBOL vmlinux 0x89939d3f sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x899dca9d kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89e427e7 unregister_md_personality
+EXPORT_SYMBOL vmlinux 0x89ec8b7b sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x89ef22fd send_sig
+EXPORT_SYMBOL vmlinux 0x8a155e33 phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x8a419f31 netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x8a4aff92 sock_i_uid
+EXPORT_SYMBOL vmlinux 0x8a53cd25 tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x8a5619d0 tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0x8a6bb304 block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory
+EXPORT_SYMBOL vmlinux 0x8a8ed922 dev_set_mtu
+EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8ab6bad0 vga_switcheroo_client_fb_set
+EXPORT_SYMBOL vmlinux 0x8b1301b7 dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll
+EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last
+EXPORT_SYMBOL vmlinux 0x8b4f6a86 acpi_root_dir
+EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector
+EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid
+EXPORT_SYMBOL vmlinux 0x8b87e433 in6_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x8b914118 init_buffer
+EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup
+EXPORT_SYMBOL vmlinux 0x8bb18a1b down_write_trylock
+EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long
+EXPORT_SYMBOL vmlinux 0x8be82405 i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0x8be9173a xfrm6_input_addr
+EXPORT_SYMBOL vmlinux 0x8bf94688 dcache_dir_close
+EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16
+EXPORT_SYMBOL vmlinux 0x8c1a7a8c abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x8c216148 pci_reenable_device
+EXPORT_SYMBOL vmlinux 0x8c392837 pnp_release_card_device
+EXPORT_SYMBOL vmlinux 0x8c3c3f37 dev_disable_lro
+EXPORT_SYMBOL vmlinux 0x8c512a6b abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x8c5ca86f pnp_find_dev
+EXPORT_SYMBOL vmlinux 0x8c60eda6 pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0x8c770336 udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x8c96e3d6 filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x8c9c519b mnt_pin
+EXPORT_SYMBOL vmlinux 0x8c9e9805 xfrm6_find_1stfragopt
+EXPORT_SYMBOL vmlinux 0x8cbaf0e0 fsnotify_destroy_mark_by_entry
+EXPORT_SYMBOL vmlinux 0x8cc3bbdd tc_classify_compat
+EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8ccb1ca7 pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0x8ce06875 inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x8cee20a4 skb_pad
+EXPORT_SYMBOL vmlinux 0x8d00fb4f netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x8d113d44 pci_pme_active
+EXPORT_SYMBOL vmlinux 0x8d4585c3 blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0x8d4dcdc9 wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d5962af dev_txq_stats_fold
+EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32
+EXPORT_SYMBOL vmlinux 0x8d794be2 mmc_try_claim_host
+EXPORT_SYMBOL vmlinux 0x8d7b4be8 security_path_chown
+EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data
+EXPORT_SYMBOL vmlinux 0x8d962613 con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0x8da98dcc idr_remove_all
+EXPORT_SYMBOL vmlinux 0x8db4a09c bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x8db6a9f8 inode_set_bytes
+EXPORT_SYMBOL vmlinux 0x8dbac33d tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x8dc3de43 jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state
+EXPORT_SYMBOL vmlinux 0x8de6167c sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x8deb7496 dev_uc_add
+EXPORT_SYMBOL vmlinux 0x8ded80d4 bio_copy_user
+EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block
+EXPORT_SYMBOL vmlinux 0x8e02f0b2 bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e197e16 elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x8e6f37ae ppp_register_net_channel
+EXPORT_SYMBOL vmlinux 0x8e723835 remove_proc_entry
+EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x8e77e58c journal_init_dev
+EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and
+EXPORT_SYMBOL vmlinux 0x8e9615e9 md_done_sync
+EXPORT_SYMBOL vmlinux 0x8eab2926 iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler
+EXPORT_SYMBOL vmlinux 0x8eb2b785 abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x8eb75e26 stop_tty
+EXPORT_SYMBOL vmlinux 0x8ec00281 otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8eeb576d filp_close
+EXPORT_SYMBOL vmlinux 0x8ef8b959 block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0x8f0744d3 filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x8f126a5d arp_tbl
+EXPORT_SYMBOL vmlinux 0x8f2371ba percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus
+EXPORT_SYMBOL vmlinux 0x8f291294 arp_find
+EXPORT_SYMBOL vmlinux 0x8f37f28b pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev
+EXPORT_SYMBOL vmlinux 0x8f5bc0a9 inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0x8f5c90de register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data
+EXPORT_SYMBOL vmlinux 0x8f72e0ed tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0x8f9bad5e mddev_congested
+EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2
+EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops
+EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16
+EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x9021b097 del_timer_sync
+EXPORT_SYMBOL vmlinux 0x903c9ffd pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector
+EXPORT_SYMBOL vmlinux 0x90449479 rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0x906f83df kmap_atomic
+EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system
+EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active
+EXPORT_SYMBOL vmlinux 0x90af5643 blk_start_request
+EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0x90b6349e dquot_destroy
+EXPORT_SYMBOL vmlinux 0x90d021e5 hippi_mac_addr
+EXPORT_SYMBOL vmlinux 0x90e42f73 tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0x90e44dde i2c_transfer
+EXPORT_SYMBOL vmlinux 0x90e84b15 security_d_instantiate
+EXPORT_SYMBOL vmlinux 0x9102938f seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x911403b6 dm_io
+EXPORT_SYMBOL vmlinux 0x91175e22 __lookup_one_len
+EXPORT_SYMBOL vmlinux 0x911d0b3c sock_setsockopt
+EXPORT_SYMBOL vmlinux 0x912085b9 clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable
+EXPORT_SYMBOL vmlinux 0x915ebf3a give_up_console
+EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb
+EXPORT_SYMBOL vmlinux 0x9173f24a pci_iomap
+EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong
+EXPORT_SYMBOL vmlinux 0x917e9a04 inode_change_ok
+EXPORT_SYMBOL vmlinux 0x918e1a35 vlan_gro_frags
+EXPORT_SYMBOL vmlinux 0x91a1c605 install_exec_creds
+EXPORT_SYMBOL vmlinux 0x91f5af8c cdev_index
+EXPORT_SYMBOL vmlinux 0x91f5d1b0 pci_claim_resource
+EXPORT_SYMBOL vmlinux 0x91fd7f0f generic_permission
+EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool
+EXPORT_SYMBOL vmlinux 0x92220f63 pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get
+EXPORT_SYMBOL vmlinux 0x925707b3 genphy_resume
+EXPORT_SYMBOL vmlinux 0x926c0134 bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0x92783a1a scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0x927887b5 netif_device_detach
+EXPORT_SYMBOL vmlinux 0x92897e3d default_idle
+EXPORT_SYMBOL vmlinux 0x928ca228 posix_test_lock
+EXPORT_SYMBOL vmlinux 0x92a65d8d unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x92c0b2ef blk_sync_queue
+EXPORT_SYMBOL vmlinux 0x92c87329 journal_set_features
+EXPORT_SYMBOL vmlinux 0x92d50987 acpi_match_device_ids
+EXPORT_SYMBOL vmlinux 0x92eb73a4 tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get
+EXPORT_SYMBOL vmlinux 0x93331a94 jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x933aaf83 dev_get_flags
+EXPORT_SYMBOL vmlinux 0x93448c57 screen_info
+EXPORT_SYMBOL vmlinux 0x93551288 mdio_bus_type
+EXPORT_SYMBOL vmlinux 0x93622811 blk_plug_device
+EXPORT_SYMBOL vmlinux 0x93767ee5 block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x93894b4f blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule
+EXPORT_SYMBOL vmlinux 0x93bc79d4 netpoll_setup
+EXPORT_SYMBOL vmlinux 0x93c651be acpi_info
+EXPORT_SYMBOL vmlinux 0x93cc8e25 jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0x93e33665 mca_device_claimed
+EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages
+EXPORT_SYMBOL vmlinux 0x9421bca3 xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x943dee02 bioset_free
+EXPORT_SYMBOL vmlinux 0x94546559 sock_release
+EXPORT_SYMBOL vmlinux 0x945ed3db bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0x946d39c4 jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0x94862854 generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x948914fe locks_init_lock
+EXPORT_SYMBOL vmlinux 0x94898216 security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0x948a6939 dev_mc_flush
+EXPORT_SYMBOL vmlinux 0x94961283 vunmap
+EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x94de8048 ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0x94e26f08 rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0x94e38626 ppp_unregister_compressor
+EXPORT_SYMBOL vmlinux 0x953048d8 scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x95352ea9 acpi_check_mem_region
+EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init
+EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf
+EXPORT_SYMBOL vmlinux 0x95638a80 dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0x9573e86e tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x957a772d devm_ioport_map
+EXPORT_SYMBOL vmlinux 0x95837869 devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x95838541 blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0x95a0a2a7 i2c_register_driver
+EXPORT_SYMBOL vmlinux 0x95ae9d73 abort_creds
+EXPORT_SYMBOL vmlinux 0x95cc1867 keyring_clear
+EXPORT_SYMBOL vmlinux 0x95d4df6f dev_uc_init
+EXPORT_SYMBOL vmlinux 0x95db867a do_splice_to
+EXPORT_SYMBOL vmlinux 0x95eb75ed i2c_clients_command
+EXPORT_SYMBOL vmlinux 0x95ebb77d elv_abort_queue
+EXPORT_SYMBOL vmlinux 0x95f439b4 sk_common_release
+EXPORT_SYMBOL vmlinux 0x95f638d5 posix_acl_chmod_masq
+EXPORT_SYMBOL vmlinux 0x95fedcc7 dw_spi_remove_host
+EXPORT_SYMBOL vmlinux 0x9611a958 bio_split
+EXPORT_SYMBOL vmlinux 0x96261d3c neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x9634e148 inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0x96774cb7 blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0x967b90f5 bitmap_endwrite
+EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0x96b02518 i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0x96c75fbf kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x96cd0934 skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96cddbd1 generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x9708bce7 padata_remove_cpu
+EXPORT_SYMBOL vmlinux 0x97216853 skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n
+EXPORT_SYMBOL vmlinux 0x973e35a5 intel_scu_ipc_register_write
+EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x975df484 acpi_get_physical_device
+EXPORT_SYMBOL vmlinux 0x976553c7 pcim_iounmap
+EXPORT_SYMBOL vmlinux 0x976d7454 __skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0x977d69cf blk_insert_request
+EXPORT_SYMBOL vmlinux 0x979018ff dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x97932633 __destroy_inode
+EXPORT_SYMBOL vmlinux 0x979f82fe inet_shutdown
+EXPORT_SYMBOL vmlinux 0x97acd502 remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance
+EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block
+EXPORT_SYMBOL vmlinux 0x981fd193 abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x9821a5df aio_complete
+EXPORT_SYMBOL vmlinux 0x982b4aec scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0x983afb13 tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x985e7ef1 vga_tryget
+EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x987fa51a d_alloc_name
+EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x
+EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init
+EXPORT_SYMBOL vmlinux 0x989ba6be blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0x98bb3a52 dev_add_pack
+EXPORT_SYMBOL vmlinux 0x98fd6627 tcf_register_action
+EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port
+EXPORT_SYMBOL vmlinux 0x993b2772 end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x9949de03 mmc_alloc_host
+EXPORT_SYMBOL vmlinux 0x9959cf21 rfkill_set_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x9982ca7d __nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x9983cf34 elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999e8297 vfree
+EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name
+EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99d55fad tty_write_room
+EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink
+EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk
+EXPORT_SYMBOL vmlinux 0x9a4d28c0 inode_init_once
+EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock
+EXPORT_SYMBOL vmlinux 0x9a700995 tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x9a70cd48 input_inject_event
+EXPORT_SYMBOL vmlinux 0x9a9a9e45 con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x9aa39796 sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x9aad20d5 __pci_register_driver
+EXPORT_SYMBOL vmlinux 0x9ac42608 blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0x9aefafca dquot_drop
+EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b519d3f da903x_query_status
+EXPORT_SYMBOL vmlinux 0x9b62129b ida_get_new
+EXPORT_SYMBOL vmlinux 0x9b63be0d may_umount_tree
+EXPORT_SYMBOL vmlinux 0x9b661a5c user_path_at
+EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize
+EXPORT_SYMBOL vmlinux 0x9b9575dc register_console
+EXPORT_SYMBOL vmlinux 0x9b9d49bf serio_reconnect
+EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split
+EXPORT_SYMBOL vmlinux 0x9ba8a1e6 pipe_lock
+EXPORT_SYMBOL vmlinux 0x9bccba51 mmc_wait_for_cmd
+EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c0fa8b6 pagevec_lookup
+EXPORT_SYMBOL vmlinux 0x9c1c92a1 pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0x9c23bcba atomic64_add_return_cx8
+EXPORT_SYMBOL vmlinux 0x9c2c944a __copy_from_user_ll_nocache_nozero
+EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x9c6f7083 create_proc_entry
+EXPORT_SYMBOL vmlinux 0x9c7077bd enable_hlt
+EXPORT_SYMBOL vmlinux 0x9c718c43 put_disk
+EXPORT_SYMBOL vmlinux 0x9c784f97 serial8250_register_port
+EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cd2fa15 d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x9cf405b4 phy_attach_direct
+EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9d06fbf3 mca_device_status
+EXPORT_SYMBOL vmlinux 0x9d0da223 tty_register_driver
+EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable
+EXPORT_SYMBOL vmlinux 0x9d393ff0 input_flush_device
+EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d3e9195 revert_creds
+EXPORT_SYMBOL vmlinux 0x9d6ca92d jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x9d7f7832 skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x9d86a20c ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0x9d9cb70f inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x9da05b78 key_alloc
+EXPORT_SYMBOL vmlinux 0x9da21976 tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x9dcb6748 atomic64_xchg_cx8
+EXPORT_SYMBOL vmlinux 0x9dd89b06 dw_spi_suspend_host
+EXPORT_SYMBOL vmlinux 0x9ddcf240 may_umount
+EXPORT_SYMBOL vmlinux 0x9de21ffa __neigh_event_send
+EXPORT_SYMBOL vmlinux 0x9de7ac3c dput
+EXPORT_SYMBOL vmlinux 0x9df16a60 netif_carrier_off
+EXPORT_SYMBOL vmlinux 0x9df91ff6 tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x9e1b14eb pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x9e279091 netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read
+EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay
+EXPORT_SYMBOL vmlinux 0x9e936dc6 mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table
+EXPORT_SYMBOL vmlinux 0x9ea77127 copy_io_context
+EXPORT_SYMBOL vmlinux 0x9eb4613e create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource
+EXPORT_SYMBOL vmlinux 0x9ecac220 current_fs_time
+EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x9edb0dab ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x9eea1a9f _raw_read_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk
+EXPORT_SYMBOL vmlinux 0x9ef83de2 ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0x9efb349d gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0x9f270612 __generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool
+EXPORT_SYMBOL vmlinux 0x9f2e9a73 ps2_init
+EXPORT_SYMBOL vmlinux 0x9f36d349 sync_blockdev
+EXPORT_SYMBOL vmlinux 0x9f4064b7 iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f55ba2d scsi_device_get
+EXPORT_SYMBOL vmlinux 0x9f7c7cda skb_queue_head
+EXPORT_SYMBOL vmlinux 0x9f92efc4 mmiotrace_printk
+EXPORT_SYMBOL vmlinux 0x9f984513 strrchr
+EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x9fb43fe8 pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0x9fb46abd ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x9fb860cc request_firmware
+EXPORT_SYMBOL vmlinux 0x9fc1156e xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0x9fe2ffb6 tcp_prot
+EXPORT_SYMBOL vmlinux 0xa0040385 dmam_release_declared_memory
+EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0xa03bd418 mntput_no_expire
+EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa057ae5c dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa0889137 dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0xa0a41a27 rtc_lock
+EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0cf4288 tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0xa0de6258 __dquot_transfer
+EXPORT_SYMBOL vmlinux 0xa0fa3333 tcp4_gro_complete
+EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa10129ea _raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xa104e370 ps2_drain
+EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa108ebae sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa12c4aa0 tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0xa1374f13 release_firmware
+EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa164f3bb napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xa16a4115 open_by_devnum
+EXPORT_SYMBOL vmlinux 0xa17423ca __neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0xa17992a0 ps2_end_command
+EXPORT_SYMBOL vmlinux 0xa1a78823 down_read_trylock
+EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode
+EXPORT_SYMBOL vmlinux 0xa1c18820 d_find_alias
+EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched
+EXPORT_SYMBOL vmlinux 0xa1d42dda journal_release_buffer
+EXPORT_SYMBOL vmlinux 0xa1fb0eb0 km_query
+EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa21374b5 simple_setsize
+EXPORT_SYMBOL vmlinux 0xa2284f87 jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0xa243cb49 inet_frag_find
+EXPORT_SYMBOL vmlinux 0xa244b3a8 scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0xa27213fe free_task
+EXPORT_SYMBOL vmlinux 0xa299f259 filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2aa254f pcix_get_mmrbc
+EXPORT_SYMBOL vmlinux 0xa2b37184 vm_insert_page
+EXPORT_SYMBOL vmlinux 0xa2d7d3cf tty_port_init
+EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa2f3f581 ethtool_op_get_rx_csum
+EXPORT_SYMBOL vmlinux 0xa30fa423 scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0xa31c4b6e phy_device_create
+EXPORT_SYMBOL vmlinux 0xa3287796 rfkill_destroy
+EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker
+EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa3445d42 remove_from_page_cache
+EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le
+EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc
+EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config
+EXPORT_SYMBOL vmlinux 0xa3743a15 kernel_getsockname
+EXPORT_SYMBOL vmlinux 0xa3884de2 tty_devnum
+EXPORT_SYMBOL vmlinux 0xa3a495d1 __xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xa3e907af bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0xa4090944 ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xa40adc7c __inet6_hash
+EXPORT_SYMBOL vmlinux 0xa40c3197 tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0xa40cee89 unlock_rename
+EXPORT_SYMBOL vmlinux 0xa416674d bio_free
+EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0xa4882ba0 inode_init_always
+EXPORT_SYMBOL vmlinux 0xa495e42e tty_mutex
+EXPORT_SYMBOL vmlinux 0xa49b63b6 simple_link
+EXPORT_SYMBOL vmlinux 0xa4ac53ca qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0xa4b0c0b0 generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0xa4b3112a ftrace_event_seq
+EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4c2ec78 cap_file_mmap
+EXPORT_SYMBOL vmlinux 0xa4ca7dec dm_register_target
+EXPORT_SYMBOL vmlinux 0xa4d4916b send_sig_info
+EXPORT_SYMBOL vmlinux 0xa4ea9f0b xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0xa4f4c391 key_validate
+EXPORT_SYMBOL vmlinux 0xa4f63149 tty_name
+EXPORT_SYMBOL vmlinux 0xa51bb56f aio_put_req
+EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP
+EXPORT_SYMBOL vmlinux 0xa52cf6d7 start_tty
+EXPORT_SYMBOL vmlinux 0xa52fa925 alloc_file
+EXPORT_SYMBOL vmlinux 0xa5463167 pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone
+EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse
+EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xa5977527 blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a3c9d7 lock_sock_nested
+EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL vmlinux 0xa60837d5 lease_get_mtime
+EXPORT_SYMBOL vmlinux 0xa60ff2c9 kunmap_atomic
+EXPORT_SYMBOL vmlinux 0xa63cab15 spi_attach_transport
+EXPORT_SYMBOL vmlinux 0xa63ce0fa current_task
+EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember
+EXPORT_SYMBOL vmlinux 0xa63e2859 tcp_splice_read
+EXPORT_SYMBOL vmlinux 0xa63f528f neigh_parms_release
+EXPORT_SYMBOL vmlinux 0xa6771020 __napi_schedule
+EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa6877101 tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0xa68f1bc8 scsi_scan_target
+EXPORT_SYMBOL vmlinux 0xa693a6d8 pcim_iomap
+EXPORT_SYMBOL vmlinux 0xa6a04581 _raw_write_unlock_bh
+EXPORT_SYMBOL vmlinux 0xa6a2ef76 tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0xa6c0d4e9 input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0xa6cb1b59 md_error
+EXPORT_SYMBOL vmlinux 0xa6f4ff9e set_pages_nx
+EXPORT_SYMBOL vmlinux 0xa7046549 vprintk
+EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi
+EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu
+EXPORT_SYMBOL vmlinux 0xa722cbcb dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xa72d0fc4 xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0xa7350ed5 max8925_reg_read
+EXPORT_SYMBOL vmlinux 0xa73c207a pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0xa74554ec tcp_connect
+EXPORT_SYMBOL vmlinux 0xa751d1fc tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0xa76c5e54 bdi_init
+EXPORT_SYMBOL vmlinux 0xa771a662 pnp_unregister_driver
+EXPORT_SYMBOL vmlinux 0xa777ce61 bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0xa7e5f363 dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0xa7f2951d neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0xa809f581 __dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0xa811b4d1 dcache_dir_open
+EXPORT_SYMBOL vmlinux 0xa8450129 dev_uc_del
+EXPORT_SYMBOL vmlinux 0xa852f95f __scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0xa87c96a2 iterate_mounts
+EXPORT_SYMBOL vmlinux 0xa890008b blk_queue_ordered
+EXPORT_SYMBOL vmlinux 0xa891c6d3 generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0xa895c5c9 genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region
+EXPORT_SYMBOL vmlinux 0xa8b4725e pci_map_rom
+EXPORT_SYMBOL vmlinux 0xa8c1e29b pv_cpu_ops
+EXPORT_SYMBOL vmlinux 0xa8d280dc __sk_dst_check
+EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning
+EXPORT_SYMBOL vmlinux 0xa8e65314 pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0xa8f7e3c4 xfrm_init_state
+EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa9031f36 __getblk
+EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support
+EXPORT_SYMBOL vmlinux 0xa941321d scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0xa9440d3d fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0xa97fafc3 ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0xa995c098 eisa_bus_type
+EXPORT_SYMBOL vmlinux 0xa99ba559 sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0xa9bc4c86 mempool_resize
+EXPORT_SYMBOL vmlinux 0xa9f2848d locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xa9f6ea46 abx500_register_ops
+EXPORT_SYMBOL vmlinux 0xaa04a6df bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0xaa20765b generic_file_llseek
+EXPORT_SYMBOL vmlinux 0xaa3cfd96 blk_execute_rq
+EXPORT_SYMBOL vmlinux 0xaa6c85ba xfrm_state_update
+EXPORT_SYMBOL vmlinux 0xaa84a8ae acpi_processor_power_init_bm_check
+EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance
+EXPORT_SYMBOL vmlinux 0xaa93eff6 km_report
+EXPORT_SYMBOL vmlinux 0xaaab8067 cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0xaab50cf0 __skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xaad6a19e pci_find_bus
+EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable
+EXPORT_SYMBOL vmlinux 0xaaebe34f mca_write_pos
+EXPORT_SYMBOL vmlinux 0xaaf45875 acpi_lid_notifier_unregister
+EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp
+EXPORT_SYMBOL vmlinux 0xab07a029 tcp_ioctl
+EXPORT_SYMBOL vmlinux 0xab36b6ab pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off
+EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc
+EXPORT_SYMBOL vmlinux 0xab67282c pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu
+EXPORT_SYMBOL vmlinux 0xab779cf7 input_unregister_device
+EXPORT_SYMBOL vmlinux 0xab95ba41 sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0xaba259f1 _raw_read_lock
+EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabf9aeaa napi_reuse_skb
+EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac14bb42 abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0xac41e177 skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0xac585644 do_SAK
+EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id
+EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac6878e4 atomic64_inc_return_cx8
+EXPORT_SYMBOL vmlinux 0xac959a41 i2c_use_client
+EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton
+EXPORT_SYMBOL vmlinux 0xace5cfc6 dev_load
+EXPORT_SYMBOL vmlinux 0xace68282 dm_table_event
+EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup
+EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex
+EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute
+EXPORT_SYMBOL vmlinux 0xad231918 rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad4b2b23 fget
+EXPORT_SYMBOL vmlinux 0xad52ba04 ipv6_chk_prefix
+EXPORT_SYMBOL vmlinux 0xad78d6b8 dqput
+EXPORT_SYMBOL vmlinux 0xada8eeb4 nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xadaef2ef lro_flush_all
+EXPORT_SYMBOL vmlinux 0xadd2dbb2 sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0xadd32fe9 tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xadfbc217 bio_map_kern
+EXPORT_SYMBOL vmlinux 0xae2aebdc xfrm_bundle_ok
+EXPORT_SYMBOL vmlinux 0xae34fc79 jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0xae37ddd2 ip_defrag
+EXPORT_SYMBOL vmlinux 0xae3c003c sock_no_accept
+EXPORT_SYMBOL vmlinux 0xae506b3e register_qdisc
+EXPORT_SYMBOL vmlinux 0xae62c314 shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0xae6d72ae bio_endio
+EXPORT_SYMBOL vmlinux 0xae725ef1 unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0xae8a07e6 vmtruncate
+EXPORT_SYMBOL vmlinux 0xae8acf51 percpu_counter_set
+EXPORT_SYMBOL vmlinux 0xae8c5ed5 journal_create
+EXPORT_SYMBOL vmlinux 0xaea81439 netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict
+EXPORT_SYMBOL vmlinux 0xaeac34f2 bmap
+EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0xaf3cfd9b invalidate_bdev
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table
+EXPORT_SYMBOL vmlinux 0xaf509f3e phy_device_free
+EXPORT_SYMBOL vmlinux 0xaf51547a clocksource_register
+EXPORT_SYMBOL vmlinux 0xaf5dfddb __netdev_alloc_page
+EXPORT_SYMBOL vmlinux 0xaf7404b2 security_path_link
+EXPORT_SYMBOL vmlinux 0xaf7ad5c7 pci_scan_slot
+EXPORT_SYMBOL vmlinux 0xaf89a9cb dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0xaf8dcd26 single_open
+EXPORT_SYMBOL vmlinux 0xafb9f10f wake_up_process
+EXPORT_SYMBOL vmlinux 0xafc39fef kfree_skb
+EXPORT_SYMBOL vmlinux 0xafc87123 kill_litter_super
+EXPORT_SYMBOL vmlinux 0xafe091d0 ppp_register_channel
+EXPORT_SYMBOL vmlinux 0xaff19e76 qdisc_reset
+EXPORT_SYMBOL vmlinux 0xb00ccc33 finish_wait
+EXPORT_SYMBOL vmlinux 0xb0231de5 __mutex_init
+EXPORT_SYMBOL vmlinux 0xb0707f1e dquot_enable
+EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state
+EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler
+EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0c26f18 __module_put_and_exit
+EXPORT_SYMBOL vmlinux 0xb0c68c9f tty_port_close_end
+EXPORT_SYMBOL vmlinux 0xb0e10781 get_option
+EXPORT_SYMBOL vmlinux 0xb0f3df2b jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0xb0fe5755 inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0xb10ec686 wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb13eedc6 dm_table_get_md
+EXPORT_SYMBOL vmlinux 0xb15b867d bio_copy_kern
+EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table
+EXPORT_SYMBOL vmlinux 0xb16c0d0a inet_bind
+EXPORT_SYMBOL vmlinux 0xb17abb4a scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb199d31f flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xb1a3b446 nf_getsockopt
+EXPORT_SYMBOL vmlinux 0xb1ad754f udp_ioctl
+EXPORT_SYMBOL vmlinux 0xb1bf0deb __ht_create_irq
+EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xb1e5f5fc sk_run_filter
+EXPORT_SYMBOL vmlinux 0xb1f89a60 __wake_up_bit
+EXPORT_SYMBOL vmlinux 0xb1fd539e acpi_device_hid
+EXPORT_SYMBOL vmlinux 0xb20c06e2 __bread
+EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu
+EXPORT_SYMBOL vmlinux 0xb21b7b0e sg_miter_start
+EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short
+EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xb2372aa0 backlight_force_update
+EXPORT_SYMBOL vmlinux 0xb251144b x86_dma_fallback_dev
+EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb26c1f83 skb_put
+EXPORT_SYMBOL vmlinux 0xb27aa567 __locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xb28741b9 poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0xb28999fe scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0xb2efb6be mca_read_stored_pos
+EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4
+EXPORT_SYMBOL vmlinux 0xb31ca596 netif_receive_skb
+EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer
+EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate
+EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit
+EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0xb37a4e4e write_inode_now
+EXPORT_SYMBOL vmlinux 0xb3a11c34 kmap
+EXPORT_SYMBOL vmlinux 0xb3a20e00 dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3a3b454 mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0xb3bba8ce __insert_inode_hash
+EXPORT_SYMBOL vmlinux 0xb3cf4788 ipv6_getsockopt
+EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources
+EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked
+EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool
+EXPORT_SYMBOL vmlinux 0xb429410a posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0xb4357847 bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xb4390f9a mcount
+EXPORT_SYMBOL vmlinux 0xb43aaef2 journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0xb4404d50 default_unplug_io_fn
+EXPORT_SYMBOL vmlinux 0xb4442efb llc_sap_open
+EXPORT_SYMBOL vmlinux 0xb44e8c54 bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0xb45578b8 memscan
+EXPORT_SYMBOL vmlinux 0xb45b24f6 k8_nb_ids
+EXPORT_SYMBOL vmlinux 0xb460c489 ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0xb4666ff9 simple_setattr
+EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb472702a devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xb4bb48d7 elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0xb4d1067a nf_register_hook
+EXPORT_SYMBOL vmlinux 0xb4d334c6 blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0xb4d4b82c phy_driver_register
+EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf
+EXPORT_SYMBOL vmlinux 0xb5267835 kset_unregister
+EXPORT_SYMBOL vmlinux 0xb54497b1 dev_get_stats
+EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb54f3f74 rtnl_unicast
+EXPORT_SYMBOL vmlinux 0xb550eacc neigh_seq_start
+EXPORT_SYMBOL vmlinux 0xb5642c6c d_delete
+EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5ac68b9 inode_add_bytes
+EXPORT_SYMBOL vmlinux 0xb5b77db7 padata_alloc
+EXPORT_SYMBOL vmlinux 0xb5c44421 cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free
+EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction
+EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one
+EXPORT_SYMBOL vmlinux 0xb651a9c5 register_nls
+EXPORT_SYMBOL vmlinux 0xb6523369 neigh_table_clear
+EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif
+EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6aaad10 bdput
+EXPORT_SYMBOL vmlinux 0xb6b951dc qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0xb6bcfe66 dev_close
+EXPORT_SYMBOL vmlinux 0xb6bdd582 genphy_config_advert
+EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu
+EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6d0b561 eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0xb6e37e5b md_write_start
+EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy
+EXPORT_SYMBOL vmlinux 0xb6f5865c tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xb70c1dd7 bitmap_close_sync
+EXPORT_SYMBOL vmlinux 0xb72397d5 printk
+EXPORT_SYMBOL vmlinux 0xb728fa91 bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event
+EXPORT_SYMBOL vmlinux 0xb75e327d sk_release_kernel
+EXPORT_SYMBOL vmlinux 0xb76b5e28 ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0xb7b3a1ba generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be
+EXPORT_SYMBOL vmlinux 0xb7bc9aaa request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0xb7c4ca85 phy_connect_direct
+EXPORT_SYMBOL vmlinux 0xb80cd563 unlock_page
+EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat
+EXPORT_SYMBOL vmlinux 0xb85f3bbe pv_lock_ops
+EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32
+EXPORT_SYMBOL vmlinux 0xb87336f2 tcf_hash_release
+EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on
+EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32
+EXPORT_SYMBOL vmlinux 0xb89e62ec remove_wait_queue
+EXPORT_SYMBOL vmlinux 0xb8b203c1 xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0xb8d4d9ff bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0xb8d9d113 tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0xb8d9ddec scsi_remove_host
+EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8
+EXPORT_SYMBOL vmlinux 0xb8fdc8f9 blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory
+EXPORT_SYMBOL vmlinux 0xb91bd288 __scsi_put_command
+EXPORT_SYMBOL vmlinux 0xb92d2e07 netif_rx
+EXPORT_SYMBOL vmlinux 0xb92f9ea7 blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0xb942b513 smp_call_function_many
+EXPORT_SYMBOL vmlinux 0xb94a599f netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0xb96ae732 jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xb96cf835 file_update_time
+EXPORT_SYMBOL vmlinux 0xb9786c61 phy_print_status
+EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb99464d1 mutex_trylock
+EXPORT_SYMBOL vmlinux 0xb9b430fe bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0xb9b6194d journal_ack_err
+EXPORT_SYMBOL vmlinux 0xb9d8e65c generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xb9e319b5 dm_table_get
+EXPORT_SYMBOL vmlinux 0xb9ee4b5f down_killable
+EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap
+EXPORT_SYMBOL vmlinux 0xba052d24 pneigh_lookup
+EXPORT_SYMBOL vmlinux 0xba1bf281 generic_setxattr
+EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read
+EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba4cb5ca tty_shutdown
+EXPORT_SYMBOL vmlinux 0xba72ab8d tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xba9106df scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0xba9b1af1 netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0xbaa7cb1b jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xbaa9099c blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbaacaff6 seq_write
+EXPORT_SYMBOL vmlinux 0xbab5a3a6 unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0xbac98f09 kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0xbad7d2da interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0xbaf61720 bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0xbb1211d2 register_sysrq_key
+EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb1eaf13 acpi_bus_register_driver
+EXPORT_SYMBOL vmlinux 0xbb33a0af get_gendisk
+EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb8b025e fb_pan_display
+EXPORT_SYMBOL vmlinux 0xbb91b854 generic_removexattr
+EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font
+EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xbbc4adb3 vfs_fsync
+EXPORT_SYMBOL vmlinux 0xbbce91f0 sock_create_kern
+EXPORT_SYMBOL vmlinux 0xbbef8f5d pci_write_vpd
+EXPORT_SYMBOL vmlinux 0xbc05749a sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit
+EXPORT_SYMBOL vmlinux 0xbc27eea8 udp_table
+EXPORT_SYMBOL vmlinux 0xbc3df636 inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0xbc6e393c ip_getsockopt
+EXPORT_SYMBOL vmlinux 0xbcbafa81 __blk_end_request
+EXPORT_SYMBOL vmlinux 0xbcbbead4 rfkill_blocked
+EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user
+EXPORT_SYMBOL vmlinux 0xbcd52f2f dev_trans_start
+EXPORT_SYMBOL vmlinux 0xbcfc932f dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0xbd33270a gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0xbd395072 ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0xbd45e8b1 framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0xbdebb6f3 idr_find
+EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next
+EXPORT_SYMBOL vmlinux 0xbdfade9f pci_remove_behind_bridge
+EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp
+EXPORT_SYMBOL vmlinux 0xbe359542 mempool_create_node
+EXPORT_SYMBOL vmlinux 0xbe535820 xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0xbe58fda6 inet_add_protocol
+EXPORT_SYMBOL vmlinux 0xbe8c37d9 intel_scu_ipc_simple_command
+EXPORT_SYMBOL vmlinux 0xbea78b39 inet_recvmsg
+EXPORT_SYMBOL vmlinux 0xbeacadfa scsi_scan_host
+EXPORT_SYMBOL vmlinux 0xbed2a05a call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbf0c4eb1 pci_target_state
+EXPORT_SYMBOL vmlinux 0xbf53ad73 eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xbf62a7d9 pnp_start_dev
+EXPORT_SYMBOL vmlinux 0xbf6ac22e eth_type_trans
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbf9df2be scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0xbfa0e53e unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0xbfa166c2 freeze_bdev
+EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep
+EXPORT_SYMBOL vmlinux 0xbfe11913 lro_receive_frags
+EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xbff7e4ed blk_stack_limits
+EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user
+EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero
+EXPORT_SYMBOL vmlinux 0xc0254f44 pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0xc045be13 alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0xc05b0d1c simple_release_fs
+EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit
+EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object
+EXPORT_SYMBOL vmlinux 0xc0a91348 dm_exception_store_create
+EXPORT_SYMBOL vmlinux 0xc0bb26f1 acpi_get_hp_hw_control_from_firmware
+EXPORT_SYMBOL vmlinux 0xc0c04c32 __set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0xc0d2f3b0 nf_reinject
+EXPORT_SYMBOL vmlinux 0xc0f533cc ndisc_send_skb
+EXPORT_SYMBOL vmlinux 0xc0f65988 machine_real_restart
+EXPORT_SYMBOL vmlinux 0xc10df91e dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0xc11475c9 pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0xc115b6cf __xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten
+EXPORT_SYMBOL vmlinux 0xc12087a6 dev_mc_sync
+EXPORT_SYMBOL vmlinux 0xc122cee2 gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xc130aca3 security_inode_init_security
+EXPORT_SYMBOL vmlinux 0xc14f8db4 fb_show_logo
+EXPORT_SYMBOL vmlinux 0xc154ae7e scsi_finish_command
+EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic
+EXPORT_SYMBOL vmlinux 0xc189d392 mnt_unpin
+EXPORT_SYMBOL vmlinux 0xc1a08243 splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0xc1abebe7 x86_hyper
+EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1c34df9 hippi_neigh_setup_dev
+EXPORT_SYMBOL vmlinux 0xc1c81589 i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0xc1d22f2d ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xc1de732f mca_register_driver
+EXPORT_SYMBOL vmlinux 0xc1f9b647 ppp_register_compressor
+EXPORT_SYMBOL vmlinux 0xc1fadfc8 ipv6_chk_addr
+EXPORT_SYMBOL vmlinux 0xc214190a simple_rename
+EXPORT_SYMBOL vmlinux 0xc253f985 pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0xc256ba68 __lru_cache_add
+EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc271bc6f dma_sync_wait
+EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll
+EXPORT_SYMBOL vmlinux 0xc2c098ea pnpacpi_protocol
+EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc
+EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices
+EXPORT_SYMBOL vmlinux 0xc311f39e slow_work_unregister_user
+EXPORT_SYMBOL vmlinux 0xc312c398 dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu
+EXPORT_SYMBOL vmlinux 0xc345ce54 intel_scu_ipc_fw_update
+EXPORT_SYMBOL vmlinux 0xc3742b79 xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0xc38d9c7a down_timeout
+EXPORT_SYMBOL vmlinux 0xc3a28fc6 key_put
+EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1
+EXPORT_SYMBOL vmlinux 0xc3b7f453 tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0xc3c3bfe1 fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p
+EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr
+EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier
+EXPORT_SYMBOL vmlinux 0xc402f5cc file_fsync
+EXPORT_SYMBOL vmlinux 0xc404e014 scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0xc41f94fc mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0xc439cc4c sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0xc439f101 mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0xc444fdec sock_kfree_s
+EXPORT_SYMBOL vmlinux 0xc461eec0 mmc_register_driver
+EXPORT_SYMBOL vmlinux 0xc46f2f38 generic_fillattr
+EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup
+EXPORT_SYMBOL vmlinux 0xc4a71e6c load_nls_default
+EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic
+EXPORT_SYMBOL vmlinux 0xc4fe27bf filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0xc50933c4 genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc53a2e45 blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0xc546b825 dget_locked
+EXPORT_SYMBOL vmlinux 0xc5492dca commit_creds
+EXPORT_SYMBOL vmlinux 0xc54a7a4b wireless_send_event
+EXPORT_SYMBOL vmlinux 0xc54c641f mfd_add_devices
+EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16
+EXPORT_SYMBOL vmlinux 0xc55898e9 vfs_mknod
+EXPORT_SYMBOL vmlinux 0xc598104b unload_nls
+EXPORT_SYMBOL vmlinux 0xc5a2ea67 scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0xc5baa56e fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0xc5eaeab6 x86_hyper_ms_hyperv
+EXPORT_SYMBOL vmlinux 0xc5ed2590 rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0xc5fbaa7c block_sync_page
+EXPORT_SYMBOL vmlinux 0xc616ac6d phy_stop
+EXPORT_SYMBOL vmlinux 0xc63c2652 elv_rb_add
+EXPORT_SYMBOL vmlinux 0xc6502626 neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0xc661c1c7 __ip_select_ident
+EXPORT_SYMBOL vmlinux 0xc670feda scsi_device_resume
+EXPORT_SYMBOL vmlinux 0xc6838e44 tcf_exts_change
+EXPORT_SYMBOL vmlinux 0xc68576e5 skb_make_writable
+EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info
+EXPORT_SYMBOL vmlinux 0xc69146b1 pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0xc6a2a5b0 phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0xc6ac5eba dma_ops
+EXPORT_SYMBOL vmlinux 0xc6b17381 qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0xc6b20fe1 tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0xc6b23120 intel_scu_ipc_iowrite16
+EXPORT_SYMBOL vmlinux 0xc7010364 kill_anon_super
+EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port
+EXPORT_SYMBOL vmlinux 0xc72f9e87 skb_checksum
+EXPORT_SYMBOL vmlinux 0xc74fe0fe alloc_trdev
+EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits
+EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7a98280 simple_dir_operations
+EXPORT_SYMBOL vmlinux 0xc7bc7af0 scsi_ioctl
+EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn
+EXPORT_SYMBOL vmlinux 0xc8033012 proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0xc83cc3fb ip_ct_attach
+EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc850e125 pci_request_regions
+EXPORT_SYMBOL vmlinux 0xc868aa7a pci_bus_type
+EXPORT_SYMBOL vmlinux 0xc8724724 inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc89297a5 find_inode_number
+EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table
+EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8f7bea5 jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0xc9093a7c pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0xc90b1da2 dm_table_put
+EXPORT_SYMBOL vmlinux 0xc923f687 page_readlink
+EXPORT_SYMBOL vmlinux 0xc98071f9 unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0xc9812f69 journal_abort
+EXPORT_SYMBOL vmlinux 0xc9860593 pci_save_state
+EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev
+EXPORT_SYMBOL vmlinux 0xc99e80f8 skb_queue_purge
+EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete
+EXPORT_SYMBOL vmlinux 0xc9eab16f iget_locked
+EXPORT_SYMBOL vmlinux 0xca013a50 fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0xca0768db pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0xca32f750 pci_disable_msix
+EXPORT_SYMBOL vmlinux 0xca3aba8e pci_dev_get
+EXPORT_SYMBOL vmlinux 0xca554c79 mmc_remove_host
+EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca62d5da cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0xca62f72b sock_no_connect
+EXPORT_SYMBOL vmlinux 0xca7ca86b rfkill_register
+EXPORT_SYMBOL vmlinux 0xca7d4fb7 elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0xca7f2c6c boot_cpu_data
+EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level
+EXPORT_SYMBOL vmlinux 0xca8ef3f1 generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0xcaa8ba12 loop_register_transfer
+EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel
+EXPORT_SYMBOL vmlinux 0xcad63d8d proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0xcae43143 inet6_bind
+EXPORT_SYMBOL vmlinux 0xcaebfd72 alloc_fddidev
+EXPORT_SYMBOL vmlinux 0xcafb807f proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0xcafcfac0 set_anon_super
+EXPORT_SYMBOL vmlinux 0xcb579ea8 dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0xcb5d2b0d tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power
+EXPORT_SYMBOL vmlinux 0xcba93419 __scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xcbb04cd5 scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0xcbcb35df security_path_symlink
+EXPORT_SYMBOL vmlinux 0xcbcbe7b1 dma_pool_create
+EXPORT_SYMBOL vmlinux 0xcbfd2e9a mutex_lock
+EXPORT_SYMBOL vmlinux 0xcc1e9ff0 sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port
+EXPORT_SYMBOL vmlinux 0xcc26d033 blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc4b34b5 lro_vlan_hwaccel_receive_frags
+EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package
+EXPORT_SYMBOL vmlinux 0xcc659c9c bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc97f58e wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0xcca497e0 udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0xcca9c947 seq_release
+EXPORT_SYMBOL vmlinux 0xccf62fdb get_phy_device
+EXPORT_SYMBOL vmlinux 0xcd17ad26 ip6_route_output
+EXPORT_SYMBOL vmlinux 0xcd2280d0 sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0xcd3689c6 dquot_quota_on_path
+EXPORT_SYMBOL vmlinux 0xcd56c22d __put_cred
+EXPORT_SYMBOL vmlinux 0xcd5a2e24 journal_dirty_data
+EXPORT_SYMBOL vmlinux 0xcd6065ae igrab
+EXPORT_SYMBOL vmlinux 0xcda5e06f llc_sap_find
+EXPORT_SYMBOL vmlinux 0xcdb500c1 tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0xcdc2073b make_bad_inode
+EXPORT_SYMBOL vmlinux 0xcdc83f1a truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0xcdd62086 dst_discard
+EXPORT_SYMBOL vmlinux 0xcddc207b inet_stream_connect
+EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe
+EXPORT_SYMBOL vmlinux 0xce0e2cf9 spi_release_transport
+EXPORT_SYMBOL vmlinux 0xce19bac5 register_inet6addr_notifier
+EXPORT_SYMBOL vmlinux 0xce1d4069 scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state
+EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce5cc21e boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0xcea7183d jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0xceb6f988 i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0xceecfd70 mempool_free
+EXPORT_SYMBOL vmlinux 0xceedaac9 prepare_binprm
+EXPORT_SYMBOL vmlinux 0xceee491b try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port
+EXPORT_SYMBOL vmlinux 0xcf0c88f2 remove_arg_zero
+EXPORT_SYMBOL vmlinux 0xcf0dc059 mca_device_transform_ioport
+EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error
+EXPORT_SYMBOL vmlinux 0xcf258714 devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xcf2c7a26 put_mnt_ns
+EXPORT_SYMBOL vmlinux 0xcf2f465f key_type_keyring
+EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free
+EXPORT_SYMBOL vmlinux 0xcf8692e1 iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0xcf90ce8a dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xcf990d57 thermal_zone_bind_cooling_device
+EXPORT_SYMBOL vmlinux 0xcf9df6ab poll_initwait
+EXPORT_SYMBOL vmlinux 0xcfa957a2 skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfc5f030 udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe
+EXPORT_SYMBOL vmlinux 0xcffa3df8 ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd04dcae4 acpi_bus_get_device
+EXPORT_SYMBOL vmlinux 0xd0743488 file_remove_suid
+EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables
+EXPORT_SYMBOL vmlinux 0xd08198d3 inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0xd095cccb acpi_unlock_ac_dir
+EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0d8621b strlen
+EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0f60540 unregister_binfmt
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd10d18d7 generic_block_bmap
+EXPORT_SYMBOL vmlinux 0xd117ccef dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0xd13a0e92 nf_hook_slow
+EXPORT_SYMBOL vmlinux 0xd13e2cb1 mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver
+EXPORT_SYMBOL vmlinux 0xd14f9d85 acpi_lock_battery_dir
+EXPORT_SYMBOL vmlinux 0xd18a1e50 alloc_netdev_mq
+EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic
+EXPORT_SYMBOL vmlinux 0xd1ed61db sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings
+EXPORT_SYMBOL vmlinux 0xd21155dd dma_alloc_from_coherent
+EXPORT_SYMBOL vmlinux 0xd21450e8 user_revoke
+EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel
+EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t
+EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook
+EXPORT_SYMBOL vmlinux 0xd276e9b9 blk_register_region
+EXPORT_SYMBOL vmlinux 0xd28b5905 alloc_disk
+EXPORT_SYMBOL vmlinux 0xd28c9f0e bd_release
+EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match
+EXPORT_SYMBOL vmlinux 0xd2db3e39 dma_async_device_register
+EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance
+EXPORT_SYMBOL vmlinux 0xd2ef5ace dw_spi_resume_host
+EXPORT_SYMBOL vmlinux 0xd31734f6 mdiobus_free
+EXPORT_SYMBOL vmlinux 0xd337b902 llc_sap_list_lock
+EXPORT_SYMBOL vmlinux 0xd375572b phy_connect
+EXPORT_SYMBOL vmlinux 0xd37caf94 blk_init_allocated_queue_node
+EXPORT_SYMBOL vmlinux 0xd383107d kobject_add
+EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64
+EXPORT_SYMBOL vmlinux 0xd409f8f8 clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0xd4689b67 tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0xd47099b0 xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0xd47b98e8 kmem_cache_alloc_notrace
+EXPORT_SYMBOL vmlinux 0xd4b609aa blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0xd4cf70b5 get_sb_bdev
+EXPORT_SYMBOL vmlinux 0xd4f57369 tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0xd500696c tcp_disconnect
+EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data
+EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd54c96c7 atomic64_add_unless_cx8
+EXPORT_SYMBOL vmlinux 0xd54cc85d __scm_destroy
+EXPORT_SYMBOL vmlinux 0xd550762a slow_work_sleep_till_thread_needed
+EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out
+EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xd56e5509 __wait_on_bit
+EXPORT_SYMBOL vmlinux 0xd571d5fe skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0xd59ff5f8 dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put
+EXPORT_SYMBOL vmlinux 0xd5b263ba pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xd5c8b5d4 dquot_acquire
+EXPORT_SYMBOL vmlinux 0xd5ccc8c7 unregister_key_type
+EXPORT_SYMBOL vmlinux 0xd5d343c8 cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0xd5f875b1 sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0xd6147ae2 up_read
+EXPORT_SYMBOL vmlinux 0xd61ae197 sock_no_getname
+EXPORT_SYMBOL vmlinux 0xd62acd74 skb_copy
+EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd635d134 rb_last
+EXPORT_SYMBOL vmlinux 0xd668f29b rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0xd6870eeb mca_bus_type
+EXPORT_SYMBOL vmlinux 0xd68948a2 dev_addr_del
+EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single
+EXPORT_SYMBOL vmlinux 0xd6ad41bd scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz
+EXPORT_SYMBOL vmlinux 0xd6bc2422 skb_split
+EXPORT_SYMBOL vmlinux 0xd6c34c23 take_over_console
+EXPORT_SYMBOL vmlinux 0xd6d19f3e blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0xd6d2d54e pnp_unregister_card_driver
+EXPORT_SYMBOL vmlinux 0xd6e97ad8 input_register_handle
+EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc
+EXPORT_SYMBOL vmlinux 0xd6f97ca1 rb_first
+EXPORT_SYMBOL vmlinux 0xd70a41d2 ppp_channel_index
+EXPORT_SYMBOL vmlinux 0xd70c4cc5 bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0xd7150a4d _raw_spin_trylock_bh
+EXPORT_SYMBOL vmlinux 0xd71a0254 dquot_quota_off
+EXPORT_SYMBOL vmlinux 0xd7227f22 xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0xd7678632 rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0xd769e6d3 tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and
+EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal
+EXPORT_SYMBOL vmlinux 0xd79bfbed unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0xd7bbf661 __free_pages
+EXPORT_SYMBOL vmlinux 0xd7d223b2 unlock_super
+EXPORT_SYMBOL vmlinux 0xd7d7e8e9 d_splice_alias
+EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi
+EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7e99c99 kern_path
+EXPORT_SYMBOL vmlinux 0xd7f373de acpi_notifier_call_chain
+EXPORT_SYMBOL vmlinux 0xd829ced8 tty_hangup
+EXPORT_SYMBOL vmlinux 0xd8469b9d mmc_release_host
+EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user
+EXPORT_SYMBOL vmlinux 0xd8726a1f __seq_open_private
+EXPORT_SYMBOL vmlinux 0xd883f794 splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0xd893adc5 nonseekable_open
+EXPORT_SYMBOL vmlinux 0xd89c094d __skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone
+EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p
+EXPORT_SYMBOL vmlinux 0xd8b96e28 sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0xd8c1da8e kunmap
+EXPORT_SYMBOL vmlinux 0xd8e10a2c pci_release_region
+EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler
+EXPORT_SYMBOL vmlinux 0xd926cf3b datagram_poll
+EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd95b0994 serio_rescan
+EXPORT_SYMBOL vmlinux 0xd9753ff9 poll_freewait
+EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd98be501 dev_mc_add
+EXPORT_SYMBOL vmlinux 0xd99b6099 security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0xd9a3fcfb netlink_ack
+EXPORT_SYMBOL vmlinux 0xd9b16e06 ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0xd9c272aa mca_mark_as_unused
+EXPORT_SYMBOL vmlinux 0xd9cc0225 kernel_read
+EXPORT_SYMBOL vmlinux 0xd9d6915c vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0xd9f89e6e pcibios_set_irq_routing
+EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table
+EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic
+EXPORT_SYMBOL vmlinux 0xda111a1b unregister_quota_format
+EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf
+EXPORT_SYMBOL vmlinux 0xda25c876 xfrm_state_add
+EXPORT_SYMBOL vmlinux 0xda2606a0 mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0xda329e8c kernel_bind
+EXPORT_SYMBOL vmlinux 0xda3e3472 iunique
+EXPORT_SYMBOL vmlinux 0xda55b4ba free_buffer_head
+EXPORT_SYMBOL vmlinux 0xda5661a3 add_wait_queue
+EXPORT_SYMBOL vmlinux 0xda70ac48 dev_get_by_flags
+EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte
+EXPORT_SYMBOL vmlinux 0xda928914 nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xda99006e lookup_hash
+EXPORT_SYMBOL vmlinux 0xdaa2f00f mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages
+EXPORT_SYMBOL vmlinux 0xdaaa8ca8 kmap_atomic_to_page
+EXPORT_SYMBOL vmlinux 0xdabbc913 i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0xdacab08e dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0xdaf41581 skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0xdb0f8967 search_binary_handler
+EXPORT_SYMBOL vmlinux 0xdb3e4fa5 nf_log_packet
+EXPORT_SYMBOL vmlinux 0xdb47715b d_invalidate
+EXPORT_SYMBOL vmlinux 0xdb6229e4 posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xdb75a395 pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbd81b9a dm_dirty_log_create
+EXPORT_SYMBOL vmlinux 0xdbea9cac completion_done
+EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc0813fc dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems
+EXPORT_SYMBOL vmlinux 0xdc17234d journal_init_inode
+EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize
+EXPORT_SYMBOL vmlinux 0xdc985f09 override_creds
+EXPORT_SYMBOL vmlinux 0xdc9c969f cfb_copyarea
+EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family
+EXPORT_SYMBOL vmlinux 0xdcdb3771 open_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0xdd044705 cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat
+EXPORT_SYMBOL vmlinux 0xdd0dca27 dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0xdd162be3 __blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0xdd209570 try_to_release_page
+EXPORT_SYMBOL vmlinux 0xdd4f716b pid_task
+EXPORT_SYMBOL vmlinux 0xdd5152b3 security_path_truncate
+EXPORT_SYMBOL vmlinux 0xdd5af23e __devm_release_region
+EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0xdd7978c9 cdrom_release
+EXPORT_SYMBOL vmlinux 0xdd877b28 rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0xdd9c88ff page_put_link
+EXPORT_SYMBOL vmlinux 0xddcb35b5 phy_start
+EXPORT_SYMBOL vmlinux 0xde09427e fb_blank
+EXPORT_SYMBOL vmlinux 0xde305795 inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0xde472d70 mod_timer_pending
+EXPORT_SYMBOL vmlinux 0xde4a820b pnpbios_protocol
+EXPORT_SYMBOL vmlinux 0xde536bd3 block_commit_write
+EXPORT_SYMBOL vmlinux 0xde58d47f have_submounts
+EXPORT_SYMBOL vmlinux 0xde6067a6 netif_napi_del
+EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type
+EXPORT_SYMBOL vmlinux 0xde8e7f8e ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages
+EXPORT_SYMBOL vmlinux 0xde9f3c35 tty_kref_put
+EXPORT_SYMBOL vmlinux 0xdea0a59f spi_display_xfer_agreement
+EXPORT_SYMBOL vmlinux 0xdee0dc71 clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0xdeee8b96 dcache_lock
+EXPORT_SYMBOL vmlinux 0xdf06e66b security_inode_readlink
+EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices
+EXPORT_SYMBOL vmlinux 0xdf365822 find_lock_page
+EXPORT_SYMBOL vmlinux 0xdf3683aa xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0xdf3c1b6d pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0xdf4bac37 dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval
+EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol
+EXPORT_SYMBOL vmlinux 0xdf676a1b km_state_expired
+EXPORT_SYMBOL vmlinux 0xdf6bba1c set_pages_wb
+EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay
+EXPORT_SYMBOL vmlinux 0xdf9246ab generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init
+EXPORT_SYMBOL vmlinux 0xdfca5df6 skb_insert
+EXPORT_SYMBOL vmlinux 0xdfcb287a inet6_getname
+EXPORT_SYMBOL vmlinux 0xdfd36562 ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0xdfd7acf8 nf_ct_attach
+EXPORT_SYMBOL vmlinux 0xdfe71052 request_key
+EXPORT_SYMBOL vmlinux 0xdfeb105d rfkill_unregister
+EXPORT_SYMBOL vmlinux 0xe001d308 xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0xe050e6b4 tty_unthrottle
+EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe0797963 dw_spi_add_host
+EXPORT_SYMBOL vmlinux 0xe0a16a20 intel_scu_ipc_i2c_cntrl
+EXPORT_SYMBOL vmlinux 0xe0a39550 ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event
+EXPORT_SYMBOL vmlinux 0xe0b0fc57 open_exec
+EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free
+EXPORT_SYMBOL vmlinux 0xe0ba55ba jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort
+EXPORT_SYMBOL vmlinux 0xe0bf770f pci_dev_put
+EXPORT_SYMBOL vmlinux 0xe100f362 kobject_init
+EXPORT_SYMBOL vmlinux 0xe1211124 ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0xe131c5ac xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0xe131e934 lock_rename
+EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0xe139b0a2 generic_ro_fops
+EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors
+EXPORT_SYMBOL vmlinux 0xe14715d5 pnp_device_detach
+EXPORT_SYMBOL vmlinux 0xe153f695 dquot_free_inode
+EXPORT_SYMBOL vmlinux 0xe159a176 mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0xe15cd5fc put_io_context
+EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe177e171 cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0xe1b98988 key_task_permission
+EXPORT_SYMBOL vmlinux 0xe1cf107f qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0xe1f8142e scsi_host_put
+EXPORT_SYMBOL vmlinux 0xe20912d4 jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0xe212bdc7 blk_unplug
+EXPORT_SYMBOL vmlinux 0xe21ea464 tcp4_gro_receive
+EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64
+EXPORT_SYMBOL vmlinux 0xe2525ad6 scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xe256eddc dm_exception_store_destroy
+EXPORT_SYMBOL vmlinux 0xe260b071 arp_create
+EXPORT_SYMBOL vmlinux 0xe2817593 genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0xe2a8889f kunmap_high
+EXPORT_SYMBOL vmlinux 0xe2b6d4cd __serio_register_driver
+EXPORT_SYMBOL vmlinux 0xe2ba2c1a max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp
+EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user
+EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup
+EXPORT_SYMBOL vmlinux 0xe30be379 scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0xe320be88 generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xe35e56f1 inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0xe3870708 security_file_permission
+EXPORT_SYMBOL vmlinux 0xe39546cf pci_read_vpd
+EXPORT_SYMBOL vmlinux 0xe3b2d860 blk_free_tags
+EXPORT_SYMBOL vmlinux 0xe3c6079e atomic64_set_cx8
+EXPORT_SYMBOL vmlinux 0xe3d88ef7 iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0xe3dfa3b8 seq_read
+EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler
+EXPORT_SYMBOL vmlinux 0xe3fdd734 ida_remove
+EXPORT_SYMBOL vmlinux 0xe422e6b3 xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0xe42dd1ff blkdev_get
+EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT
+EXPORT_SYMBOL vmlinux 0xe456d99a __init_rwsem
+EXPORT_SYMBOL vmlinux 0xe482349f cont_write_begin
+EXPORT_SYMBOL vmlinux 0xe484e35f ioread32
+EXPORT_SYMBOL vmlinux 0xe4a2aa87 vfs_getattr
+EXPORT_SYMBOL vmlinux 0xe4b507a6 nobh_write_begin
+EXPORT_SYMBOL vmlinux 0xe4b85ef9 xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0xe50f904f intel_scu_ipc_ioread16
+EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe
+EXPORT_SYMBOL vmlinux 0xe534a7c8 generic_write_end
+EXPORT_SYMBOL vmlinux 0xe53ad2d7 vfs_writev
+EXPORT_SYMBOL vmlinux 0xe54d492d register_exec_domain
+EXPORT_SYMBOL vmlinux 0xe54f07fd jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0xe55e144a proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0xe5775d35 jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton
+EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5a7a350 napi_gro_frags
+EXPORT_SYMBOL vmlinux 0xe5a9c160 inet_sendmsg
+EXPORT_SYMBOL vmlinux 0xe5b4f24c iget_failed
+EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5d39d8a prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0xe5d77f48 skb_find_text
+EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe5f14ab0 fb_set_cmap
+EXPORT_SYMBOL vmlinux 0xe612b839 __alloc_skb
+EXPORT_SYMBOL vmlinux 0xe6357237 journal_load
+EXPORT_SYMBOL vmlinux 0xe6389102 follow_up
+EXPORT_SYMBOL vmlinux 0xe6566e4a is_bad_inode
+EXPORT_SYMBOL vmlinux 0xe674280d log_start_commit
+EXPORT_SYMBOL vmlinux 0xe68c4e74 destroy_EII_client
+EXPORT_SYMBOL vmlinux 0xe690b8fd __ipv6_isatap_ifid
+EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update
+EXPORT_SYMBOL vmlinux 0xe6f65450 napi_get_frags
+EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe7016da0 set_bdi_congested
+EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic
+EXPORT_SYMBOL vmlinux 0xe72c3e14 journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xe73a5ff0 tcf_hash_check
+EXPORT_SYMBOL vmlinux 0xe741b0e6 deny_write_access
+EXPORT_SYMBOL vmlinux 0xe74cf0a7 mempool_destroy
+EXPORT_SYMBOL vmlinux 0xe7790033 bio_init
+EXPORT_SYMBOL vmlinux 0xe781b5f6 intel_scu_ipc_readv
+EXPORT_SYMBOL vmlinux 0xe7a9e7fd skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0xe7b9b865 d_move
+EXPORT_SYMBOL vmlinux 0xe7cfdc02 pskb_expand_head
+EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next
+EXPORT_SYMBOL vmlinux 0xe805d539 tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xe80af0a2 input_set_capability
+EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak
+EXPORT_SYMBOL vmlinux 0xe83191c9 acpi_is_video_device
+EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss
+EXPORT_SYMBOL vmlinux 0xe88d04d9 journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xe8a3605f acpi_processor_set_thermal_limit
+EXPORT_SYMBOL vmlinux 0xe8b30d0e dquot_release
+EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus
+EXPORT_SYMBOL vmlinux 0xe909ce03 _raw_read_lock_bh
+EXPORT_SYMBOL vmlinux 0xe90aa4e9 rb_insert_color
+EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module
+EXPORT_SYMBOL vmlinux 0xe91400e5 rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0xe914e41e strcpy
+EXPORT_SYMBOL vmlinux 0xe965a09d fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0xe96b85b1 dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0xe980da07 tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0xe99092b6 copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu
+EXPORT_SYMBOL vmlinux 0xe9da91db default_file_splice_read
+EXPORT_SYMBOL vmlinux 0xe9fca45c sock_update_classid
+EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0xea7987f1 key_update
+EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data
+EXPORT_SYMBOL vmlinux 0xeaaa1198 scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0xeadb4db6 block_write_end
+EXPORT_SYMBOL vmlinux 0xeadf9235 mpage_writepage
+EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay
+EXPORT_SYMBOL vmlinux 0xeae9f00e kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0xeb19b1c2 dm_dirty_log_type_unregister
+EXPORT_SYMBOL vmlinux 0xeb3f008f get_super
+EXPORT_SYMBOL vmlinux 0xeb518b2f blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0xeb7da8c2 jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0xeb80d9f4 dev_addr_add
+EXPORT_SYMBOL vmlinux 0xeb81961f cfb_fillrect
+EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n
+EXPORT_SYMBOL vmlinux 0xebb40f55 dquot_initialize
+EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull
+EXPORT_SYMBOL vmlinux 0xebd99481 dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0xebe94edd hippi_change_mtu
+EXPORT_SYMBOL vmlinux 0xec01c5b8 dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0xec052df9 simple_readpage
+EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec4a7ddb ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0xec4e50df free_user_ns
+EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xec7d63c3 nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xec81fe6b iput
+EXPORT_SYMBOL vmlinux 0xecd2ad97 __skb_bond_should_drop
+EXPORT_SYMBOL vmlinux 0xecdd9a06 tcp_parse_options
+EXPORT_SYMBOL vmlinux 0xed0a24ff phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xed0b3314 sk_stop_timer
+EXPORT_SYMBOL vmlinux 0xed29d56f idr_remove
+EXPORT_SYMBOL vmlinux 0xed2feb88 vfs_readlink
+EXPORT_SYMBOL vmlinux 0xed8c53ac _raw_write_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xed9179a8 tcp_close
+EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xeda919b1 freeze_super
+EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedc03953 iounmap
+EXPORT_SYMBOL vmlinux 0xedc94e55 truncate_pagecache
+EXPORT_SYMBOL vmlinux 0xedd6ce1f journal_destroy
+EXPORT_SYMBOL vmlinux 0xee06ca06 xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0xee0a53c1 __ps2_command
+EXPORT_SYMBOL vmlinux 0xee0f1acf simple_getattr
+EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee386792 pcie_port_service_unregister
+EXPORT_SYMBOL vmlinux 0xee4ad281 uart_update_timeout
+EXPORT_SYMBOL vmlinux 0xee6c66e3 scsi_print_sense
+EXPORT_SYMBOL vmlinux 0xee759e99 d_instantiate
+EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices
+EXPORT_SYMBOL vmlinux 0xee83c7fa mdiobus_read
+EXPORT_SYMBOL vmlinux 0xee925786 generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0xeea55f3e skb_push
+EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeeb6dafa __breadahead
+EXPORT_SYMBOL vmlinux 0xeee5583c d_lookup
+EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler
+EXPORT_SYMBOL vmlinux 0xef2d1e7f skb_unlink
+EXPORT_SYMBOL vmlinux 0xef3bd862 mca_find_unused_adapter
+EXPORT_SYMBOL vmlinux 0xef3e1bad simple_rmdir
+EXPORT_SYMBOL vmlinux 0xef62e85f mempool_alloc
+EXPORT_SYMBOL vmlinux 0xef6eba41 proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool
+EXPORT_SYMBOL vmlinux 0xef70e857 scsi_register
+EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override
+EXPORT_SYMBOL vmlinux 0xef9bdabc key_payload_reserve
+EXPORT_SYMBOL vmlinux 0xefd87bfe pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status
+EXPORT_SYMBOL vmlinux 0xefe9feaa dma_spin_lock
+EXPORT_SYMBOL vmlinux 0xefffc486 mmc_card_sleep
+EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list
+EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be
+EXPORT_SYMBOL vmlinux 0xf06d41d5 scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0xf07890f4 inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0xf07aca22 sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0xf07f7b89 kdb_current_task
+EXPORT_SYMBOL vmlinux 0xf096692d phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0xf09c7f68 __wake_up
+EXPORT_SYMBOL vmlinux 0xf09d3f84 mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0xf0a8519b rtnl_notify
+EXPORT_SYMBOL vmlinux 0xf0af16f0 pci_restore_state
+EXPORT_SYMBOL vmlinux 0xf0b30bcb scsi_block_requests
+EXPORT_SYMBOL vmlinux 0xf0b36e81 sget
+EXPORT_SYMBOL vmlinux 0xf0e13888 journal_extend
+EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf
+EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail
+EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xf10de535 ioread8
+EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit
+EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32
+EXPORT_SYMBOL vmlinux 0xf127d9c9 simple_write_end
+EXPORT_SYMBOL vmlinux 0xf13be440 filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0xf13f1d37 jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0xf14da9d5 input_register_device
+EXPORT_SYMBOL vmlinux 0xf164ebd0 unregister_8022_client
+EXPORT_SYMBOL vmlinux 0xf16cb54b ps2_handle_response
+EXPORT_SYMBOL vmlinux 0xf16eaa14 nf_log_unregister
+EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem
+EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1cf1917 blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0xf1d1e8ed jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0xf1d9121b kobject_set_name
+EXPORT_SYMBOL vmlinux 0xf1da7c54 register_md_personality
+EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64
+EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun
+EXPORT_SYMBOL vmlinux 0xf1f45302 scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0xf20b447a dquot_scan_active
+EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq
+EXPORT_SYMBOL vmlinux 0xf20e86e8 skb_set_dev
+EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer
+EXPORT_SYMBOL vmlinux 0xf241354f dm_exception_store_type_register
+EXPORT_SYMBOL vmlinux 0xf24b111e mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0xf2564db3 journal_force_commit
+EXPORT_SYMBOL vmlinux 0xf25b43eb bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0xf273ce26 padata_do_parallel
+EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2b15900 blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0xf2b22597 elv_queue_empty
+EXPORT_SYMBOL vmlinux 0xf2e054b4 scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0xf2e74040 mca_set_adapter_name
+EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform
+EXPORT_SYMBOL vmlinux 0xf3270353 mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name
+EXPORT_SYMBOL vmlinux 0xf333a2fb _raw_spin_lock_irq
+EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user
+EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf341dc9e __blockdev_direct_IO_newtrunc
+EXPORT_SYMBOL vmlinux 0xf342cff2 tcp_child_process
+EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf3614112 sg_miter_stop
+EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg
+EXPORT_SYMBOL vmlinux 0xf3b42364 phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3ece765 scsi_device_put
+EXPORT_SYMBOL vmlinux 0xf41a628a dcache_readdir
+EXPORT_SYMBOL vmlinux 0xf42fab12 inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0xf4386804 md_wait_for_blocked_rdev
+EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf44b4b46 submit_bio
+EXPORT_SYMBOL vmlinux 0xf483809a journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xf48a2c4c MCA_bus
+EXPORT_SYMBOL vmlinux 0xf48df59c vfs_readv
+EXPORT_SYMBOL vmlinux 0xf492e427 nla_reserve
+EXPORT_SYMBOL vmlinux 0xf494f618 mmc_regulator_get_ocrmask
+EXPORT_SYMBOL vmlinux 0xf49b34fb audit_log_start
+EXPORT_SYMBOL vmlinux 0xf4a0a621 dev_uc_flush
+EXPORT_SYMBOL vmlinux 0xf4a550e9 lock_sock_fast
+EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit
+EXPORT_SYMBOL vmlinux 0xf4a7f96c sock_map_fd
+EXPORT_SYMBOL vmlinux 0xf4a94266 dm_put_device
+EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced
+EXPORT_SYMBOL vmlinux 0xf4eb0bec inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf4f7a725 simple_unlink
+EXPORT_SYMBOL vmlinux 0xf4ff754a ida_init
+EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources
+EXPORT_SYMBOL vmlinux 0xf5142158 ida_pre_get
+EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xf52585a5 nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n
+EXPORT_SYMBOL vmlinux 0xf546cf62 deactivate_super
+EXPORT_SYMBOL vmlinux 0xf58474ab check_disk_change
+EXPORT_SYMBOL vmlinux 0xf59bf07e xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0xf5b614f4 simple_lookup
+EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xf5e0c4e7 d_alloc_root
+EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf609aa30 _raw_spin_trylock
+EXPORT_SYMBOL vmlinux 0xf6211389 vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0xf63624bd simple_fill_super
+EXPORT_SYMBOL vmlinux 0xf67f7cfd pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0xf69a5b1b eth_header_cache
+EXPORT_SYMBOL vmlinux 0xf69dc99e textsearch_prepare
+EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table
+EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf70f4e92 thermal_zone_device_update
+EXPORT_SYMBOL vmlinux 0xf721ee02 netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0xf752b56d ip_fragment
+EXPORT_SYMBOL vmlinux 0xf7584a9c find_font
+EXPORT_SYMBOL vmlinux 0xf75ffb3d d_rehash
+EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0xf7635c44 get_fs_type
+EXPORT_SYMBOL vmlinux 0xf7743617 input_grab_device
+EXPORT_SYMBOL vmlinux 0xf7816b25 kmalloc_caches
+EXPORT_SYMBOL vmlinux 0xf7892261 unregister_filesystem
+EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf794bc72 input_free_device
+EXPORT_SYMBOL vmlinux 0xf79ad71f bio_integrity_free
+EXPORT_SYMBOL vmlinux 0xf7a896c6 set_disk_ro
+EXPORT_SYMBOL vmlinux 0xf7b8e2a2 __bforget
+EXPORT_SYMBOL vmlinux 0xf7e38832 mca_device_set_name
+EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set
+EXPORT_SYMBOL vmlinux 0xf8079352 bio_kmalloc
+EXPORT_SYMBOL vmlinux 0xf80f7339 blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf81afcb6 tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf82d35a6 mark_info_dirty
+EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects
+EXPORT_SYMBOL vmlinux 0xf84042f9 mmc_align_data_size
+EXPORT_SYMBOL vmlinux 0xf8686426 journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header
+EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle
+EXPORT_SYMBOL vmlinux 0xf891d7fe vfs_unlink
+EXPORT_SYMBOL vmlinux 0xf893ffcb do_munmap
+EXPORT_SYMBOL vmlinux 0xf8a3e6e1 cad_pid
+EXPORT_SYMBOL vmlinux 0xf8bd805b generic_make_request
+EXPORT_SYMBOL vmlinux 0xf8f43242 dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xf91080eb xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0xf9266f82 __dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xf92f16dc grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu
+EXPORT_SYMBOL vmlinux 0xf9658be2 __splice_from_pipe
+EXPORT_SYMBOL vmlinux 0xf97d76ea scsi_host_get
+EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep
+EXPORT_SYMBOL vmlinux 0xf9b74cb3 fsync_bdev
+EXPORT_SYMBOL vmlinux 0xf9bc7737 inode_permission
+EXPORT_SYMBOL vmlinux 0xf9d19e66 xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0xf9d73adc set_pages_x
+EXPORT_SYMBOL vmlinux 0xf9e8e1d1 fb_set_suspend
+EXPORT_SYMBOL vmlinux 0xf9fd5d10 padata_stop
+EXPORT_SYMBOL vmlinux 0xfa2f7957 pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0xfa5bd6d1 d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xfa6f14a8 kmap_atomic_prot
+EXPORT_SYMBOL vmlinux 0xfa89d352 generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0xfac445cb scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0xfac7d64a ppp_dev_name
+EXPORT_SYMBOL vmlinux 0xfaccb352 textsearch_unregister
+EXPORT_SYMBOL vmlinux 0xfae1a8b0 tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32
+EXPORT_SYMBOL vmlinux 0xfafd851f add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent
+EXPORT_SYMBOL vmlinux 0xfb070f07 tcp_check_req
+EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs
+EXPORT_SYMBOL vmlinux 0xfb0f115b padata_free
+EXPORT_SYMBOL vmlinux 0xfb1becd0 dm_dirty_log_destroy
+EXPORT_SYMBOL vmlinux 0xfb2fc23f ip6_route_me_harder
+EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb6df3c8 uart_register_driver
+EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace
+EXPORT_SYMBOL vmlinux 0xfb80e242 generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0xfbac813d __wait_on_buffer
+EXPORT_SYMBOL vmlinux 0xfbbfa50c qdisc_destroy
+EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xfbd6ab7d tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0xfbfe1c99 invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc06d333 generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0xfc13cc53 cfb_imageblit
+EXPORT_SYMBOL vmlinux 0xfc1d70c8 nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0xfc2590be dev_mc_del
+EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc4715b7 md_set_array_sectors
+EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc
+EXPORT_SYMBOL vmlinux 0xfc661492 dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0xfc6ea794 i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcad050a ll_rw_block
+EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states
+EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq
+EXPORT_SYMBOL vmlinux 0xfcedbf8f skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfd1311c3 kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0xfd6f4850 native_wrmsr_safe_regs
+EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception
+EXPORT_SYMBOL vmlinux 0xfd9b9cc6 ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be
+EXPORT_SYMBOL vmlinux 0xfde58f4d pci_enable_msix
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfdfe8907 pnp_get_resource
+EXPORT_SYMBOL vmlinux 0xfdffaf3f bdevname
+EXPORT_SYMBOL vmlinux 0xfe2e3a1c blk_stop_queue
+EXPORT_SYMBOL vmlinux 0xfe33e45f file_permission
+EXPORT_SYMBOL vmlinux 0xfe4244af llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0xfe4bb688 make_EII_client
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz
+EXPORT_SYMBOL vmlinux 0xfe5d83e1 ps2_command
+EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfe7e2296 fput
+EXPORT_SYMBOL vmlinux 0xfea53b9c thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL vmlinux 0xfea7faf5 pci_disable_msi
+EXPORT_SYMBOL vmlinux 0xfeab430c genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin
+EXPORT_SYMBOL vmlinux 0xfed53143 dq_data_lock
+EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfee3280c tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start
+EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu
+EXPORT_SYMBOL vmlinux 0xff4c3552 skb_store_bits
+EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff6a1241 xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource
+EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int
+EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffa22e85 fsnotify_find_mark_entry
+EXPORT_SYMBOL vmlinux 0xffa63b60 ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0xffacfc61 phy_find_first
+EXPORT_SYMBOL vmlinux 0xffae2ff0 bio_phys_segments
+EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function
+EXPORT_SYMBOL vmlinux 0xffdf62bb vfs_read
+EXPORT_SYMBOL vmlinux 0xfff2b5d2 kmap_high
+EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0x7060bf0a crypto_aes_encrypt_x86
+EXPORT_SYMBOL_GPL arch/x86/crypto/aes-i586 0xe409b491 crypto_aes_decrypt_x86
+EXPORT_SYMBOL_GPL arch/x86/kernel/microcode 0xdf66ca81 ucode_cpu_info
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x00aaf935 kvm_disable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x022e40f0 __tracepoint_kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x08d9ca90 kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x094ac8f4 kvm_get_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12d1b23b kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x15386da9 kvm_put_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x18827ce2 kvm_set_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x196133ea kvm_get_guest_memory_type
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e13dba2 kvm_lmsw
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2322e039 kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x240cd5fb kvm_get_cs_db_l_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x276babd9 kvm_mmu_unprotect_page_virt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27c43c24 kvm_set_cr3
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x287d6756 kvm_mmu_invlpg
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x288873c9 __tracepoint_kvm_nested_intercepts
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c0fd6dd kvm_task_switch
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2c60c572 kvm_set_cr0
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2e92867f __tracepoint_kvm_cr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3144932c kvm_set_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x326ae3fe kvm_queue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x361199ba kvm_set_cr4
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x36e58177 gfn_to_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x392d729b kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3a791be5 kvm_mmu_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3faa563e kvm_read_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406813bc __tracepoint_kvm_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x406b1f7c kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x412ac24c kvm_clear_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x412e2d19 kvm_after_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x44d5c5dd is_error_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x44df6e05 kvm_get_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4a7cbe69 is_error_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4e45ec7a kvm_set_msr_common
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4f3f9a30 kvm_write_guest_page
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5061876d kvm_get_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5102cf94 __tracepoint_kvm_nested_vmexit_inject
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53292db5 kvm_get_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53d21e01 kvm_x86_ops
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x552b4da5 __tracepoint_kvm_nested_intr_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x56869095 __tracepoint_kvm_invlpga
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x599086dd kvm_handle_fault_on_reboot
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5affceb8 __tracepoint_kvm_nested_vmrun
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5b0f4859 kvm_set_dr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5cac1195 kvm_release_page_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5ee7dfeb kvm_read_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f05dcd1 load_pdptrs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f91325f kvm_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x60b2a311 kvm_set_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6bb8cc22 kvm_inject_pending_timer_irqs
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6dea2691 kvm_vcpu_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x703003db kvm_get_rflags
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7d28cd52 kvm_get_kvm
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7d7c5e70 __kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7dd58a0a kvm_requeue_exception
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7fae32c4 gfn_to_pfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x825d59c8 kvm_get_cr8
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x852fb3dd kvm_mmu_reset_context
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x88e38669 kvm_require_cpl
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ef85cbf kvm_find_cpuid_entry
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8fee6428 kvm_emulate_hypercall
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x90da9ed4 kvm_fast_pio_out
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92193090 kvm_cpu_has_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9227f4b3 __tracepoint_kvm_skinit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x92749bf5 kvm_vcpu_cache
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x96803c24 gfn_to_memslot_unaliased
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x97c13a33 kvm_before_handle_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9850d262 emulator_write_emulated
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x99905e08 __tracepoint_kvm_inj_virq
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa2470c58 kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa4c8c77f kvm_set_apic_base
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa9ce0238 emulate_instruction
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xacc1576d kvm_mmu_load
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb2d88fe7 kvm_inject_nmi
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba900c26 kvm_requeue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd377dc9 kvm_mmu_set_nonpresent_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbd94103b kvm_mmu_set_base_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcecd28b4 __tracepoint_kvm_page_fault
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd230e799 fx_init
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd296def9 kvm_is_error_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd546d220 kvm_release_page_clean
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd7be16af __tracepoint_kvm_nested_vmexit
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd8761913 gfn_to_hva
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xda7b155f kvm_cpu_get_interrupt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe02fcb71 kvm_clear_guest
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe24af5df kvm_is_linear_rip
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xea700769 kvm_emulate_halt
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeea07198 kvm_queue_exception_e
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf190bf48 kvm_emulate_cpuid
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf2b4a4f5 kvm_report_emulation_failure
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfe87e22a kvm_mmu_get_spte_hierarchy
+EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfe882204 kvm_resched
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0xe3fd4fc4 crypto_aes_set_key
+EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xd95274d8 async_memcpy
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x87060abf async_syndrome_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xd93fa1b2 async_gen_syndrome
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x7d31a347 async_raid6_2data_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xc9fcef32 async_raid6_datap_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x0e35bb38 async_trigger_callback
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x5f66df3d async_tx_submit
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x8b4535c9 async_tx_quiesce
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9702b15a __async_tx_find_channel
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x14c4dc02 async_xor_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x4ba8b97e async_xor
+EXPORT_SYMBOL_GPL crypto/cryptd 0x10af5b63 cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x182c6359 cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x18e891f6 cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x413d1cf8 cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x7139a081 cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb49828e9 cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xe0ee4ec5 cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey
+EXPORT_SYMBOL_GPL crypto/twofish_common 0xa36cd13f twofish_setkey
+EXPORT_SYMBOL_GPL drivers/acpi/hed 0xa4ca0d4e unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL drivers/acpi/hed 0xaa3f13f7 register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0c7da6d8 ahci_ops
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x15b3aa2f ahci_start_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x26f3efe1 ahci_init_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x48bd239d ahci_set_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5fb5593a ahci_kick_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x70a12058 ahci_stop_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8b7f0d57 ahci_sht
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8e7406f2 ahci_check_ready
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x97fdca15 ahci_reset_em
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa222fde5 ahci_print_info
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe2a24cc4 ahci_reset_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe71d816a ahci_do_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf65faadb ahci_save_initial_config
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x02ff9464 cfag12864b_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x0ecb2e5d cfag12864b_disable
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x305dc3c6 cfag12864b_isenabled
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x3389f926 cfag12864b_enable
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0x9522a342 cfag12864b_getrate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/cfag12864b 0xc48e9d95 cfag12864b_buffer
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x26cb1764 btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x357eb824 btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4ce8d82d btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9469d679 btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9b0585cb btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9df044be btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xaed01a4d btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfe64fd33 btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x216cd686 agp_add_bridge
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x57cee089 agp_remove_bridge
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved
+EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0x8bee9978 scx200_gpio_ops
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x03c21e3c tpm_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0e46857a tpm_register_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x26737e0b tpm_pm_suspend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x31e41cd9 tpm_show_enabled
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3a649672 tpm_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4592b174 tpm_store_cancel
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x46447157 tpm_dev_vendor_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4d27cfa2 tpm_open
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x54c7e282 tpm_show_owned
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x612fcea7 tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6df2d5ae tpm_show_active
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x78d8d400 tpm_write
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x870bb1f1 tpm_show_caps_1_2
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8cec0d1a tpm_gen_interrupt
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa7e19ec5 tpm_show_pubek
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa9f496b5 tpm_remove_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaa7cf610 tpm_continue_selftest
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaee21179 tpm_pm_resume
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaff1c711 tpm_dev_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc4ccd255 tpm_show_caps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xda2838ef tpm_show_temp_deactivated
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xec48906e tpm_show_pcrs
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xff6e5adc tpm_get_timeouts
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x3b89f6a2 tpm_bios_log_teardown
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0x49b356bf tpm_bios_log_setup
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x2a457a28 free_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x2e471f01 dca_register_notify
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x578de8c4 dca3_get_tag
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x8006c614 dca_unregister_notify
+EXPORT_SYMBOL_GPL drivers/dca/dca 0x9a99e234 unregister_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xabdc6d21 dca_add_requester
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xc6490ed4 alloc_dca_provider
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xdf0c07f2 dca_remove_requester
+EXPORT_SYMBOL_GPL drivers/dca/dca 0xe656eaf4 register_dca_provider
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x03fef056 edac_device_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x16fb3649 edac_mc_handle_ce_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1e1d7acb edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x32225b15 edac_mc_alloc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x34691f54 edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3f77e2df edac_pci_handle_pe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x46128eb2 edac_mc_free
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4b97515a edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5e31a96a edac_mc_add_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x85dd7bcf edac_mc_del_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x86bf4d81 edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x949a6ebd edac_device_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9b5bd9a1 edac_mc_handle_ue_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa70077c9 edac_device_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb4ee4b18 edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb8d214ca edac_pci_reset_delay_period
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbccce6fa edac_pci_handle_npe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc8329f5e edac_pci_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe54186db edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe579376b edac_mc_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe638eb99 edac_device_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeb0ba212 edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xee017196 edac_mc_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeea8adcb edac_pci_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x0f0ba55e ii_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1823885a amd_register_ecc_decoder
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x4b01887d pp_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x7509830f to_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x955c1f76 amd_decode_nb_mce
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb98537cb rrrr_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xc2e765d2 amd_unregister_ecc_decoder
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xd0f094a0 ext_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xe6ff7e0c ll_msgs
+EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xf8dec080 tt_msgs
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x13c7f82c __max730x_remove
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xff964d9a __max730x_probe
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x6fdb0b25 drm_class_device_register
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x81e93224 drm_class_device_unregister
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x05876c69 i915_gpu_busy
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x08a7896d i915_gpu_raise
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x402468e9 i915_gpu_lower
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0x500858b9 i915_read_mch_val
+EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x04107340 hid_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x129517ee hid_register_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x139df26c hid_check_keys_pressed
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x1d730c53 hid_add_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x225e7283 hid_set_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x28cbc4f0 hid_allocate_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x308dac23 hidinput_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x30dba708 hidinput_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x4f54e309 hid_debug_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x4fc996be __hid_register_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x5db5f544 hid_dump_input
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x631b21d8 hid_output_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x66d70c0c hid_destroy_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x6923b8b2 hid_unregister_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x6a419c9f hidraw_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x702f5928 hid_report_raw_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x79576b71 hid_input_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x7958416a hid_resolv_usage
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x8b953612 hidraw_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xa0b66766 hidraw_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xa7b36d10 hidinput_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xb72054e8 hid_dump_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xdd0634ae hidinput_find_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe201af4d hid_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xea382a67 hid_dump_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xeaa7b8e5 hid_parse_report
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x79a40fdc roccat_connect
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x8aaa3c7a usbhid_set_leds
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x96dbc3f4 usbhid_submit_report
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb18ab56c usbhid_wait_io
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xfc788d76 hiddev_hid_event
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x78ae475c lis3lv02d_init_device
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xa22c9700 lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xb0befec4 lis3lv02d_poweron
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe4c84b51 lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe67390c4 lis3_dev
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0xe6ed38c2 nforce2_smbus
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xb85d05d1 i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xc5451ab9 i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x4f960cd1 hpsb_config_rom_ip1394_remove
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x57490909 hpsb_config_rom_ip1394_add
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm
+EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x8a7eaf22 input_ff_create_memless
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x11cb583f wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1f73844a wm97xx_config_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4a3b86a3 wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4a61338d wm9713_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x7d5984fe wm97xx_reg_read
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x86cb3313 wm9712_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9b752e49 wm9705_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xab557d13 wm97xx_reg_write
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb555e97d wm97xx_set_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xcfed4e1b wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe4c20dd1 wm97xx_get_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe581c6a5 wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0b191364 gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0f723554 gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x11920942 gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2c7d55ad gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x31baa630 gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x44b5a1d5 gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x46a57156 gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6af52591 gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6ddee712 gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa5fe3e85 gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa78f87c0 gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc24779fc gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xda376f44 gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe9a363f9 gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xea2060f7 gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xea8f1802 gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf7d072f4 gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf7e11efc gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x0c12cb46 led_classdev_suspend
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x127b1bc9 led_classdev_unregister
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0xb177e837 led_classdev_resume
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0xcb447a83 led_classdev_register
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x077ac831 ir_input_nokey
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x13c174ef ir_input_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xbb062f10 ir_input_init
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x09e9cb95 __ir_input_register
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1890a257 ir_input_unregister
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1a5769cf ir_repeat
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x302536a6 get_rc_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x37229e3b ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x3a67d6a9 ir_g_keycode_from_table
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x7e631a45 ir_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8d72aa04 ir_raw_event_store
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8fd647fb ir_register_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x99612455 ir_unregister_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xebe3e70f ir_raw_event_handle
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x0f1c5d3f saa7146_devices_lock
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x106ee225 saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1b7c76d2 saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4354a342 saa7146_register_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x633dbfad saa7146_setgpio
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6ce87db0 saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6d5afe75 saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8ec3d215 saa7146_pgtable_free
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x93816d97 saa7146_unregister_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb8a53706 saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd88cb596 saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x001cb8ef saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x46b915d3 saa7146_register_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x5ce2268d saa7146_start_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x632d0f36 saa7146_vv_release
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7a5a14fb saa7146_vv_init
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xbc91eb0e saa7146_stop_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xfd56f519 saa7146_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xa72a395b microtune_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xed307c50 mxl5007t_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x37074253 tda18271_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xad71be5b tda827x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x3287af02 tda829x_probe
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xd6eb3569 tda829x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x242440e2 tda9887_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x5ffde285 tea5761_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xe7fc77e8 tea5761_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x02a17341 tea5767_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xfbf09681 tea5767_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xa4e4b0db simple_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x056e622c mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x08f7eef0 mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x14fe5471 mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x199e6b65 ir_mantis
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x31baf75b mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x43ed6b45 mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x4758bbaf mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7e60ffdf gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x82ec9c9d mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x92d9ae13 mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x966c7ef9 mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x98a2f501 mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xace76dcc mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb439de4b mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc012e891 mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xdc15dc08 mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe43be2e7 mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xec8f4e0b mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x02dca5f0 sms_board_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0386ee81 smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0717e5d1 smscore_get_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x18ceef4f sms_board_event
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1cad92ff smscore_register_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1cf9c2e1 smscore_set_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x23324c8f smscore_putbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x41e4a02a smscore_get_device_mode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4adacbab smscore_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4bae5039 smscore_onresponse
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x624ae919 smscore_start_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x68ee72d4 sms_board_setup
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7f0c898f sms_board_led_feedback
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa1f518f4 smscore_unregister_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xae61fb0b smscore_getbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb5f7978c smsclient_sendrequest
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd5876c69 smscore_register_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf502aca9 sms_board_lna_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xfbbd21ef smscore_register_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x61e438d0 ttpci_budget_debiwrite
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7529803b ttpci_budget_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x7948c222 budget_debug
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x9e10bddb ttpci_budget_irq10_handler
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0x9f8b1973 ttpci_budget_init_hooks
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc5ad0d16 ttpci_budget_debiread
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xc5ff7e50 ttpci_budget_deinit
+EXPORT_SYMBOL_GPL drivers/media/dvb/ttpci/budget-core 0xe9be5624 ttpci_budget_set_video_port
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x106f49fc cx231xx_dev_init
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x117b951f cx231xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3009bcf3 cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4105b060 cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x411619f1 cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x49033cca cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x68542ddd cx231xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xa5ccd822 cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc6fe3595 cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd30c749f cx231xx_capture_start
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xff614f7f cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0x70cdecd3 cx88_setup_xc3028
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x69217b01 em28xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x75182b49 em28xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x9d4a9b06 em28xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xac65aae1 em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xbd8ed9a0 em28xx_isoc_dvb_max_packetsize
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xc39a87f5 em28xx_audio_setup
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x2b887ba9 saa7134_queryctrl
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x41b03859 saa7134_g_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x806ed4a8 saa7134_ts_qops
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x9d90acac saa7134_s_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xe37717de saa7134_s_std_internal
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x4bc7ab30 v4l2_i2c_new_subdev_cfg
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x7105c3c7 v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x876e0e1d v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xadfc900c v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xc1b5617c v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xcb452435 v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x6ddc98fe v4l2_int_ioctl_1
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x7e3b2d88 v4l2_int_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xbd43279c v4l2_int_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xc17974e4 v4l2_int_ioctl_0
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x12ad0e54 v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x14179760 v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x1a0d474d v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x28071ffc v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3b0a076d v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x5ccd5e58 v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x62a60141 v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x66901593 v4l2_m2m_poll
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x82348205 v4l2_m2m_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8c241737 v4l2_m2m_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9f4343ab v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa56fc6dd v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb1a68796 v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb28ac4be v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x02dd6861 videobuf_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0352c5f3 videobuf_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x04c34850 videobuf_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x06b332bd videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x161cb6dc videobuf_read_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1df6cc8a videobuf_next_field
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2933b70c videobuf_waiton
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x337d162c videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x39336d75 videobuf_read_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3ec1a531 videobuf_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x41dfad14 videobuf_queue_core_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4346b3f0 videobuf_iolock
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x46113be7 videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x57dc1c60 videobuf_cgmbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x58314f8e videobuf_read_one
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x678cd34f videobuf_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x689da6c8 videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6c653dbc videobuf_mmap_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8b98d2a0 videobuf_queue_cancel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9c1621fa videobuf_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa1cc6e29 videobuf_poll_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaaf58220 videobuf_read_start
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc58e1e55 __videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe801f3f4 videobuf_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xec58e2c0 videobuf_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x1944e985 videobuf_queue_dma_contig_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x3383e3e3 videobuf_to_dma_contig
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xb4194a8f videobuf_dma_contig_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x007843a0 videobuf_dma_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x79ac3887 videobuf_sg_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8110332b videobuf_to_dma
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8f42b6b1 videobuf_dma_init_user
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xaa0d0aef videobuf_dma_init_overlay
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb4398ecd videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xbe3f4328 videobuf_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc52cd55c videobuf_sg_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd0680df3 videobuf_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe5bba91e videobuf_dma_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe85e5b7a videobuf_dma_init_kernel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x7b5f88e0 videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x8e949b5b videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xb2256a85 videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0d9a9157 v4l2_event_queue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x11640fc6 v4l2_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1f076f7e v4l2_event_subscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x22e390a1 v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x34ba0e5d v4l2_fh_exit
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3d9cf567 v4l2_event_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x43b7d9c4 v4l2_device_disconnect
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5dac54be v4l2_event_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6b71fb99 v4l2_device_set_name
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6c0e14e7 v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa1b9e826 v4l2_fh_del
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xabfa0911 v4l2_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xaf742f07 v4l2_event_pending
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbb7747f3 v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc50d9402 v4l2_fh_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcfd52dd4 v4l2_fh_add
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe5f73afa v4l2_event_dequeue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xed20a67f v4l2_event_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x1be8aabb i2o_dma_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x2277e46e i2o_dma_realloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x2534d02a i2o_dma_map_single
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3648426c i2o_pool_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x87ee2d10 i2o_pool_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x907f334a i2o_dma_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb36f0d1c i2o_sg_tablesize
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf6d736d0 i2o_dma_map_sg
+EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x5bffd974 mc13783_adc_do_conversion
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x094de975 pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1979ae92 pcf50633_irq_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3963522f pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x45877118 pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6490da83 pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x65524837 pcf50633_read_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x71aa7944 pcf50633_register_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x81357e0a pcf50633_write_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8caa157f pcf50633_free_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa66ea3e5 pcf50633_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd9340917 pcf50633_reg_write
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x0ce49d38 pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x41db43a4 pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x30e9c6bd pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x6185fd01 pcf50633_gpio_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x91a15630 pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xcef15a90 pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xd51157da pcf50633_gpio_get
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x457422df sm501_modify_reg
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6cb6ca18 sm501_set_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc5ed5294 sm501_find_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xcb4d62e7 sm501_misc_control
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd869bd02 sm501_unit_power
+EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x686005bf ucb1400_adc_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x6bf99bbb wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x9daddccf wm8400_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xe912891a wm8400_set_bits
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xf58a03be wm8400_block_read
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x1a626a44 cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x70cdd40a cb710_set_irq_handler
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x91a85e1f cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xef893459 cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x52f7fb54 enclosure_component_register
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x5505c944 enclosure_find
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x69809eea enclosure_remove_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x89e5259c enclosure_unregister
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xe0b26aab enclosure_add_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xe154c183 enclosure_for_each_device
+EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfe3d8ef9 enclosure_register
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x18cfaf51 sdhci_remove_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5c922729 sdhci_free_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9af22bd0 sdhci_resume_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd095c92a sdhci_suspend_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf26f5eb7 sdhci_add_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf710b25c sdhci_alloc_host
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x8effcb8c cfi_cmdset_0003
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xa7e5302f cfi_cmdset_0001
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xf195237a cfi_cmdset_0200
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x25ffc23b cfi_cmdset_0006
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x77ca357d cfi_cmdset_0002
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xdaf8f650 cfi_cmdset_0701
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x11262677 cfi_cmdset_0020
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x4a3e6847 cfi_qry_present
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x94fe5a44 cfi_qry_mode_off
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xb158f999 cfi_qry_mode_on
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xba4380c0 DoC2k_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x55eefe2a DoCMil_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xc0d1cfe9 DoCMilPlus_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0226223b __get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x03f34b49 mtd_erase_callback
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0b2291c3 put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x12bffecd parse_mtd_partitions
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1a087af2 unregister_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x241c8db4 register_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x32aad57c get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x63dd5835 add_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x81ed4f18 deregister_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x84630ce0 del_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8c645772 __put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x919d2538 __mtd_next_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9743da73 get_sb_mtd
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa311ddbf default_mtd_writev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaec03ddc kill_mtd_super
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd79a3884 mtd_table_mutex
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf74b461c get_mtd_device_nm
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfbd341cb register_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x036af236 deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x5c26ef61 add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xb9601fe6 del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd36d7425 register_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x4a288c95 nand_lock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x4fcc874f nand_wait_ready
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x656a6dd6 nand_release
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xbd8706fd nand_scan_ident
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xdef96db7 nand_scan_tail
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xe118effb nand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xec53b24f nand_unlock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x415d71ff sm_register_device
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x067478c6 onenand_release
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xd9883449 onenand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x17393213 ubi_do_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x231d8768 ubi_open_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3117528a ubi_close_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4d9a93f6 ubi_leb_change
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4e3793bd ubi_leb_erase
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x60abc588 ubi_leb_map
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x62adee09 ubi_leb_read
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x67d10acc ubi_get_volume_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x802d50fd ubi_open_volume_nm
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x896de240 ubi_open_volume_path
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb6707aa0 ubi_is_mapped
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc062c7bc ubi_leb_unmap
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xebfc5391 ubi_leb_write
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x61662c82 can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x681b8fbb free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x81aae100 alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x82761a95 alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x82812bb2 register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8ac0f7e5 can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8d884681 alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8fd0eaf0 can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x92d5650a unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa650cf88 close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcd21c479 can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfedefab0 open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5316a52f unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x684ec444 free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa1442273 alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xfa2d7854 register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x59e849bb macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x8161d4b0 macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x90dbb066 macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xa5109f36 macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0035b79f mlx4_cq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x01fd5113 mlx4_fmr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0b268caa mlx4_srq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0e1b748a mlx4_qp_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x11452301 mlx4_srq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1a8867ff mlx4_buf_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1bb62fc8 mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x24f5ef23 mlx4_srq_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x264885d4 mlx4_mr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2b60edae mlx4_cq_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2b80455d mlx4_qp_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3571ce7b mlx4_multicast_attach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x35d9896c mlx4_register_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x419381af mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x492f2bb6 mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4ea4437f mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x59cda081 mlx4_cq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6647a8da mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6a8ab7b8 mlx4_register_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6b278c47 mlx4_mtt_init
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7068d0f8 mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x72fb6e6b mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x73f3c978 mlx4_uar_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x76788d99 mlx4_mtt_addr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7a22e7d8 mlx4_qp_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7cf4080b mlx4_qp_remove
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7e4bc5fb mlx4_pd_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7ee22bbe mlx4_fmr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8bfb3cbd mlx4_pd_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8fe0e691 mlx4_buf_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x93a13bc8 mlx4_mr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa4a06337 mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa6be576b __mlx4_cmd
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb46a0047 mlx4_unregister_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb4e54120 mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb4ffd84b mlx4_srq_arm
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc2188e68 mlx4_db_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc2527dc3 mlx4_cq_resize
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc47614ec mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc9ff9ee0 mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xce0cd175 mlx4_qp_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd314b962 mlx4_register_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd7be59f9 mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd7d6c135 mlx4_qp_release_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd86276d1 mlx4_multicast_detach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdafd62f1 mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdc46b222 mlx4_uar_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdd4e60f6 mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdf565970 mlx4_db_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe2f94004 mlx4_unregister_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe493ec9b mlx4_mr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe693cb77 mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe9221d39 mlx4_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x173ac0e3 usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xee1021bf usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x2dd5c5c9 rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7e95fed1 rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x9b98dd2f rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xdab2580f generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xee5edcc0 rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf6e127e9 rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0cd54701 usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1cd4c61d usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x269dd630 usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x50e3af49 usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x71c4b668 usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7f7315fb usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fdc05cb usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x80518b71 usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x835f6551 usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8852c4cb usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8c5023c6 usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa2297cee usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa4c42959 usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaa2daced usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xaeecb6fe usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb342d738 usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb354bd3e usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbd8e7df0 usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc4506d41 usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd6055847 usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd75bf539 usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe51c37a2 usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf72e1585 usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfcd4eeaf usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1a60e818 i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2770db77 i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4b7b7cc1 i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5e9fbce4 i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6490f079 i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x650a9777 i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6f27fe2a i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7014bbca i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x779f94cb i2400m_cmd_get_state
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x836fc7f7 i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x89aebf32 i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8c7f743d i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xae90e75f i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd87f0707 i2400m_set_init_config
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd88ec99f i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdb3f5f10 i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdb522b0c i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf1a8926b i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x1c820b19 libipw_debug_level
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xacb01b4d libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x0121ee28 iwl_dealloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xa5d7aa68 iwl_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xafb8caa2 iwl_alloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3b87a89f lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x711339a3 lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x75a5d7b4 lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7cb8aee9 lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x97f3be82 lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa33e05ee lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa9387b8d lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb1aa0d14 lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb5d48c34 __lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb63e58a5 lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd1edf00d lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe3fad5bb lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe45f93df lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe4a4c01e lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0c08b6a6 lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x17067e71 lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x61900bad lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x80dd7295 lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x8653c489 lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x90637985 lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9f1ed920 __lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb76db0fd lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x81841edd if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xa4a5f50b if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x053ffcd9 p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x17ff1318 p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x218747f1 p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3ff90d59 p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5568b4e1 p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x73280526 p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb9f87944 p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc7564a0d p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf348dfb7 p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x09a4c391 rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x10431ee7 rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x32e316e5 rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x43f9c96e rt2800_mac80211_ops
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4bcdf27e rt2800_init_bbp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4fb5aa00 rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x53921036 rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x618e9e22 rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x64007512 rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7d689077 rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9484a83e rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa77a2cd8 rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaaf5ae5f rt2800_init_registers
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb546fe91 rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbaa46690 rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc7cc160a rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd4f34573 rt2800_write_txwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd99b0664 rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd9f0ba09 rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe9047af2 rt2800_init_rfcsr
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xef2483c7 rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf398d598 rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf725cadd rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfae5768c rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x062e3f94 rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2139c5ea rt2x00queue_get_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3c33ad93 rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x53b87cd7 rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5b9d831f rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x76fd4907 rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8005112e rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8047a741 rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x82956fff rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x887be956 rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x893f3013 rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9020c820 rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x91ef80df rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x98d04746 rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9d84f701 rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa3f4a8e3 rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb857f49a rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc35af812 rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc9d5ee89 rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd744939c rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdf9a61bc rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe646c889 rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf8c2bb30 rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1a443dce rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2691ff88 rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x32bf2510 rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8b08888a rt2x00pci_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x8bb6d329 rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa44b771e rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xca004f8a rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd7536a16 rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe8d5ab8c rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3d5342d2 rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x40ba81dc rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x56f80f07 rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7a7658e4 rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7b9036cc rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x88669def rt2x00usb_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9700ee23 rt2x00usb_kill_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9c3f78f3 rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9d1a2e66 rt2x00usb_vendor_request_large_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa4937323 rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd4389dd5 rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd6d9d6cd rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdcd3fe9e rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe4308d7e rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe6c51b8f rt2x00usb_kick_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfd555e2a rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xa7b0ea4a wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xacde0ebf wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xbcc904f9 wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x2d0145f5 wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x344421c3 wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x52fe607b wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x8ac6f20f wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xf6340f4a wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x1bff148d acpiphp_unregister_attention
+EXPORT_SYMBOL_GPL drivers/pci/hotplug/acpiphp 0x5ea8d69a acpiphp_register_attention
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x58a58ae9 pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x59926d7d pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x8d9cf471 pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x0d5bc882 wm8350_register_regulator
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x56aa5c5d wm8350_register_led
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x56f875fc wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x6d2eb9fc wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7e678cb1 wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8bc15b67 wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x74ed5f50 wm8400_register_regulator
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0317048b fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x01da1cc7 iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0289f9db iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x02c80e88 iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x03316941 iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x04c685fd iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x07937a0b iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x126a43eb iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x14ca761c iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x15d1d9e3 iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16a6b597 iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16f7382f iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1b86959a iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2bb1dde5 iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2c606dd8 iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x397f471a iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x43ddbdda iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4aac51ea iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5266a98a iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a9c6be1 __iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5be9e662 iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5d919f9b iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5e591263 iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7afbaf60 iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7f8ead8d iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x81f9d65b iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x91babce4 iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x92abffc7 iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9346b2b7 iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a053f5b iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa036de7c iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc4e55cd8 iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc7707f17 __iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc85570bd iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd44e2ba0 iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd52229fe iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xde6a1272 iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe5271abb iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf01ba3dc iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf0cccb45 iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf4c12b36 iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf9d10ff4 iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xffadfd18 iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x13727bcd iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2b96f8e8 iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x32023023 iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x416f9f3f iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x47b39a55 iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4d2d9a19 iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6afeac39 iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8c25c022 iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8e130597 iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x917df51a iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc778fc52 iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd0e8247d iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd3ce51d0 iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd612f949 iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdc3cfc67 iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xed121f8d iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x00e286a0 sas_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2c88cc04 sas_bios_param
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2e85c77e sas_unregister_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x331751b8 sas_ssp_task_response
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x430fdf73 sas_eh_bus_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x50a029f8 sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x522729d9 sas_phy_enable
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5413e4e6 sas_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5a2c2dd6 sas_ioctl
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5f3c5583 sas_change_queue_type
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x695ce793 sas_domain_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x96fa524b __sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x989cf6e1 sas_request_addr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x99f2399e sas_register_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa035daf4 sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa075a848 sas_slave_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xac305529 sas_find_local_phy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xafcbd9ca sas_target_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb291d7a3 sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbec1f3e9 sas_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc3abb88e sas_domain_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc9343e96 sas_slave_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe04b9727 sas_phy_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xae101c94 srp_target_free
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb9e5f08d srp_iu_put
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc951b729 srp_iu_get
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf35d2bde srp_transfer_data
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfaa53635 srp_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfbb8d952 srp_cmd_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x0b9626c1 scsi_tgt_it_nexus_create
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1cd16b8c scsi_tgt_it_nexus_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4d9932a4 scsi_tgt_queue_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5890c193 scsi_tgt_tsk_mgmt_request
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x69f1066e scsi_host_get_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6bc73130 scsi_host_put_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7aa05b0a scsi_tgt_alloc_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9df48cc4 scsi_tgt_cmd_to_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xdc42af8b scsi_tgt_free_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0bf9dcd8 iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0c070dfb iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1802834c iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2e0964e2 iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36e20d57 iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3ddea0b3 iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4423d1b9 iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5740837e iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x60abaaa6 iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x694a0017 iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x69d9eb89 iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7297cd08 iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x76725b3c iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x93a32ee9 iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9d0535fb iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb6fafc19 iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc1141960 iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc770fee6 iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xde7274b1 iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe0de4b7d iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe2af895b iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xedae43e3 iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x4413bca2 sas_tlr_supported
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x682524e1 sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x99bda2c2 sas_disable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xcb722b9d sas_enable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3903edb1 srp_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x88e82a74 srp_rport_del
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8ad0e97a srp_remove_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8c7f4532 srp_rport_add
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc0f68688 srp_release_transport
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x09c6504b spi_bitbang_setup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x1a2faa37 spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x1a487bc2 spi_bitbang_start
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x47e308b2 spi_bitbang_stop
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xc331783b spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xfc5252cb spi_bitbang_transfer
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x08ac7a41 comedi_pci_auto_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x29444ec3 comedi_pci_auto_unconfig
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3448de21 comedi_get_device_file_info
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x632ecd5f comedi_usb_auto_unconfig
+EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xec443c13 comedi_usb_auto_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x86fcde20 das08_cs_boards
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xb6b3fb58 das08_common_detach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xec52f544 das08_common_attach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x25e55b95 labpc_1200_is_unipolar
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x70fd415e labpc_common_attach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x7a4258f1 labpc_common_detach
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x8285332a range_labpc_1200_ai
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xaf1e4347 labpc_1200_ai_gain_bits
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x1035d1a1 ni_tio_arm
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x471dde0f ni_tio_insn_config
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x58c5907a ni_tio_init_counter
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x6336d089 ni_gpct_device_destroy
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x98e3341c ni_tio_set_gate_src
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd702681a ni_gpct_device_construct
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xe64a3ad9 ni_tio_winsn
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xe7c4b0a0 ni_tio_rinsn
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x0118e06a ni_tio_cancel
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x0147ee78 ni_tio_set_mite_channel
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x33dd2d27 ni_tio_cmdtest
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x66dbe41a ni_tio_handle_interrupt
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xae04d39d ni_tio_cmd
+EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xc6de8115 ni_tio_acknowledge_and_confirm
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2468ed34 oslec_hpf_tx
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x579d2806 oslec_snapshot
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x587711de oslec_create
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x882d5f27 oslec_adaption_mode
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf828c15b oslec_flush
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xf923a5b1 oslec_free
+EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xfabc3747 oslec_update
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x27efbf2a osd_WaitEventCreate
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x5783d46c osd_WaitEventWait
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x746d1786 osd_PageAlloc
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x79298bac osd_WaitEventSet
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x83911c38 osd_PageFree
+EXPORT_SYMBOL_GPL drivers/staging/hv/hv_vmbus 0x8c5f0f3b osd_WaitEventWaitEx
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x61ba435d st_register
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x78ef4c1d tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x8d280721 tm6000_set_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xc5929769 tm6000_get_reg
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x242dc250 usbip_task_init
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x57018273 usbip_start_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5a419d60 usbip_event_add
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x5e914c03 usbip_recv_iso
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x6426a775 usbip_dump_urb
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x689a3c73 dev_attr_usbip_debug
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x78b72f44 usbip_debug_flag
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x7c16d4b1 usbip_stop_threads
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x926739b6 usbip_pack_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0x996fb838 usbip_stop_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xb855b7d3 usbip_event_happened
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xbc939ff2 sockfd_to_socket
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xc4b4f141 usbip_start_eh
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd02753dc usbip_header_correct_endian
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xd80ebee6 usbip_xmit
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe04671c1 usbip_alloc_iso_desc_pdu
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xe1ea0586 usbip_dump_header
+EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip_common_mod 0xfbd95886 usbip_recv_xbuff
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x663120be uio_unregister_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x95f48af3 uio_event_notify
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xd1d0c3ff __uio_register_device
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xa07e25ab usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xf8d9e9f3 usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x302ada78 usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7b6d10fc usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x866d30e4 usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x89c46e5b usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb5d90e42 usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb9f7e763 usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xbd2a95e7 ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcdaf6a3a usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf44aba39 usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0d9fbd52 ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x185decb2 usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4418cf61 usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x48382e89 usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4d99fb8b ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5aa7e5b6 usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x68fa2cda usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6b9e4c94 usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x719c70c8 usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8411302b usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x92ffa6fc usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa21bac5e usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb5e12303 usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb826eda6 usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbdbbd297 usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc3dad3dd usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdebe81d7 usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe8f900bb usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xefff4ac9 usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0e7e0eb6 usb_stor_suspend
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x105868d0 usb_usual_ignore_device
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x10b38ac1 usb_stor_Bulk_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x17af2bf5 usb_stor_pre_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2cea880a usb_stor_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4035f50e usb_stor_probe2
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x432cf39d usb_stor_CB_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x437eed74 usb_stor_control_msg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x43a4c17c usb_stor_ctrl_transfer
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7a2817d7 usb_stor_bulk_transfer_sg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x818f5ec2 usb_stor_transparent_scsi_command
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8eeb1e31 usb_stor_access_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9ef28428 usb_stor_Bulk_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa12e2179 usb_stor_CB_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xac76228f fill_inquiry_response
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb2564fac usb_stor_set_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb9bea3a7 usb_stor_reset_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbfc14fb5 usb_stor_probe1
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc6a4d31c usb_stor_bulk_srb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcf2a8220 usb_stor_post_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd481c55d usb_stor_clear_halt
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xda92e50b usb_stor_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe5a8d2e7 usb_stor_bulk_transfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5ccf4d0b rpipe_ep_disable
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x72d5555d wa_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x782d24c4 wa_urb_enqueue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcc12aa28 __wa_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xd31531b9 wa_urb_dequeue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x02f1dd8b wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x221be88f wusbhc_b_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2fb4aad5 wusbhc_rh_suspend
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x32781067 wusbhc_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x34b7d31c wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x44b0d189 wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4e099402 wusbhc_b_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5107282d wusbhc_handle_dn
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x87ea254e wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8a2b83ad wusbhc_rh_resume
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x90a602d5 wusbhc_rh_control
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9bdb4341 wusbhc_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xad00ff00 __wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd3f330ea wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe719ad69 wusbhc_reset_all
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xef7133de wusbhc_chid_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x24d8dcf1 i1480_rceb_check
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x34916619 i1480_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xc4227ae2 i1480_fw_upload
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x0e5e2270 uwb_ack_policy_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x3bc0ccd4 uwb_pca_base_priority_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x4a2a3782 uwb_phy_rate_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x64c29339 uwb_pca_base_priority_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x7640b285 uwb_rts_cts_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x9c64da47 uwb_phy_rate_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xf6d44fdd uwb_ack_policy_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xf83611b3 uwb_rts_cts_show
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x14af8965 __umc_driver_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x202ee688 umc_match_pci_id
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x39d137e4 umc_controller_reset
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x89de1183 umc_bus_type
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xbe9e5e5b umc_driver_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xeeece25f umc_device_create
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xefdc52d2 umc_device_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xf355dadd umc_device_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0a05a859 uwb_notifs_deregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x18cbff12 uwb_rc_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1aa11fc1 uwb_rsv_modify
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x25dbe40c uwb_rc_post_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x27534d8a uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x28cf5f78 uwb_rc_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2d164974 uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2d76ccf1 uwb_pal_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x41b26bcb uwb_rsv_terminate
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x42c0983c uwb_est_find_size
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5823e385 uwb_rsv_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x64fca1a5 uwb_rc_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x66bc84cb uwb_pal_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6c17cf78 uwb_rsv_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x76f32e52 uwb_rc_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x80e7032d uwb_rsv_accept
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8ebf59f1 uwb_rc_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9e613dbb uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa543fd13 uwb_dev_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xac42f37c __uwb_rc_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb0e997a9 uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc15b4666 uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc2727203 uwb_rc_alloc
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc46eb69c uwb_rc_ie_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd28af8e8 uwb_dev_for_each
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd3d45b6c uwb_rc_neh_error
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd3eb8aae uwb_rc_vcmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd54002c6 uwb_notifs_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd92b41f4 uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdaaf2883 uwb_rc_put
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdcb365ab uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdeca0255 uwb_pal_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe9c708ab uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf2df6122 uwb_radio_stop
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf6480aaa uwb_rsv_establish
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfec377c5 uwb_radio_start
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfef98d59 uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL drivers/uwb/whci 0x464e4720 whci_wait_for
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x292ba343 wlp_dev_manufacturer_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x339589b2 wlp_dev_prim_OUI_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3b9ebc65 wlp_dev_serial_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4e683665 wlp_uuid_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x572fc865 wlp_dev_model_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5e8967ee wlp_uuid_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6d1daa24 wlp_dev_manufacturer_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7089a0f0 wlp_dev_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x75ced3f2 wlp_wss_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7b2f5481 wlp_dev_serial_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7e0af0f4 wlp_dev_model_nr_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x80e5e832 wlp_wss_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8677dc8a wlp_dev_model_nr_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x871ff321 wlp_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9ba81fa1 wlp_dev_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xad1a764f wlp_dev_prim_category_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb4afc55a wlp_dev_prim_subcat_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc24218fa wlp_dev_prim_OUI_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc5045d14 wlp_wss_activate_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc8f318a0 wlp_wss_activate_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcb2c107e wlp_dev_prim_category_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcb5b98bb wlp_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd3a1c780 wlp_prepare_tx_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd50b4295 wlp_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xda049f7a wlp_eda_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xda344ecc wlp_dev_prim_OUI_sub_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xdee3471c wlp_receive_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xecc7a48f wlp_dev_model_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf488105f wlp_eda_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf669236c wlp_neighborhood_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xfbd8b060 wlp_dev_prim_OUI_sub_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xff1b883f wlp_dev_prim_subcat_store
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x219fab4d ili9320_probe_spi
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x4b6368c2 ili9320_shutdown
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x856c9c06 ili9320_write_regs
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xad784a98 ili9320_write
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xb559b2f0 ili9320_resume
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xbf4bae7e ili9320_remove
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xecb71ab9 ili9320_suspend
+EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x4f52b3dc fb_ddc_read
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x7cfa1d9c fb_sys_write
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x84b78142 fb_sys_read
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x49b7b064 sis_malloc_new
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xc8d3c749 sis_free_new
+EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x016e6c20 vmlfb_unregister_subsys
+EXPORT_SYMBOL_GPL drivers/video/vermilion/vmlfb 0x90c018c6 vmlfb_register_subsys
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xac6f27b0 viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x0e507450 w1_write_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x269bde22 w1_next_pullup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x2d94d0a2 w1_reset_bus
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x4134a81a w1_touch_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x589b1bf5 w1_read_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x6df7daf0 w1_write_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xda2b1a62 w1_read_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xef452a8d w1_reset_select_slave
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x481acbc6 dlm_posix_get
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x6563902a dlm_posix_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xad9dad0c dlm_posix_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x21ae2765 exportfs_encode_fh
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x9eef7b79 exportfs_decode_fh
+EXPORT_SYMBOL_GPL fs/fat/fat 0x0fe5a7b6 fat_fill_super
+EXPORT_SYMBOL_GPL fs/fat/fat 0x285ce807 fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL fs/fat/fat 0x2ee8de9f fat_scan
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3569e58c fat_sync_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0x38f131bf fat_setattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3f0d346d fat_remove_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x5a3dc216 fat_alloc_new_dir
+EXPORT_SYMBOL_GPL fs/fat/fat 0x5e06aa20 fat_attach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x8d0a4e16 fat_add_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x96126c88 fat_dir_empty
+EXPORT_SYMBOL_GPL fs/fat/fat 0x9a7d8f5c fat_time_unix2fat
+EXPORT_SYMBOL_GPL fs/fat/fat 0xb4b5cae1 fat_detach
+EXPORT_SYMBOL_GPL fs/fat/fat 0xbba69a6e fat_free_clusters
+EXPORT_SYMBOL_GPL fs/fat/fat 0xbc263a91 fat_search_long
+EXPORT_SYMBOL_GPL fs/fat/fat 0xd1c1f4c8 __fat_fs_error
+EXPORT_SYMBOL_GPL fs/fat/fat 0xeadd0ea5 fat_build_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xf396c052 fat_getattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0xf41c84b1 fat_flush_inodes
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x272d3c3c nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x34e2c150 nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6038a446 nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xad922a4a nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xaf597a49 nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x7a28d6d2 nfsacl_decode
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xf3c17182 nfsacl_encode
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0aec37eb o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x376a44e5 o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x7e822195 o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8dd19eca o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xacfce063 o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xadb6e975 o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc451293a o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x061ac396 dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3ce53bcf dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5807f0a1 dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x81595b8d dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x94acbce1 dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbe9e504a dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x11525291 ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x135c480e ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xd60f5359 ocfs2_plock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs
+EXPORT_SYMBOL_GPL net/802/garp 0x0f8c21f8 garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0x182781b5 garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0x207ed4d1 garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0x3c8deea5 garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0x5acedb98 garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x6c957969 garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/stp 0x28b59d60 stp_proto_unregister
+EXPORT_SYMBOL_GPL net/802/stp 0x58b4a3a7 stp_proto_register
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xe223d065 ax25_register_pid
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x3aa6cca7 bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x08d93187 dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x15657f79 dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x19b08d5c dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1bf11d68 dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x34667c8c dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x35cf80e5 inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c88b74f dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3ccd8c55 dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3f0ffe61 dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4340ff53 dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x47e0c5a6 dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4e525499 dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5952262b dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x59f7c31d dccp_insert_option_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x63e7831a dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x683108af dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x756815b0 dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7b9f19ef dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7f129928 dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x92c4eb6d dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9fc3b29d dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa00a52b9 dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa3d38988 dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa57a0242 dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xaed90b48 dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb2087b85 dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb3c86358 dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb41ac5c8 dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb424b878 dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb5b7c855 dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc1fd948c dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf4419387 dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf48af05f dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xfcc08883 dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x082b489b dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x32cb5d8e dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x34338e32 dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6537ce7e dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6ad371ff dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xde9a0383 dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x264b8c52 arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x8e61e2d0 ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x4611e088 nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x20ae6db4 nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4c37759c nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x5dd84733 nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7db0b3d5 nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8e3e35fe nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xabdaa31b nf_nat_proto_find_get
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbe7bb29d nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xcea34e0b nf_nat_proto_put
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x14804179 tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x172864f3 tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7507aeaa tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x766edc7c tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd9fa785a tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x578b20b4 ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0e9b3364 l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x13f2e2a2 l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x27142432 l2tp_tunnel_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x371c2e0b l2tp_udp_recv_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x463aa6c1 l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5289d40b l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5809c8ca l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x58a31f2b l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6a35b5aa l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7773be59 l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x79ab2d72 l2tp_tunnel_closeall
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7ac7909d l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9551ee44 l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xccd83d76 l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xee688a2d l2tp_xmit_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfa5f7ad8 l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xff2b30c6 l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x48bccea8 ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb8a21534 ieee80211_find_sta_by_hw
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc3ea4580 ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x03ef85d3 nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04f26e2e nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12c1c660 nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x162a7ab8 nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a1600ab nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1ac9e0d2 nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1bc13483 __nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1bef33a7 nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1dae2376 nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e45fb04 nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f0502d6 nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x277c07e8 nf_expect_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b39fd26 nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2cc5a7ed __nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2df0e6c3 seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3044cee6 nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x307f129a __nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30882ca5 nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30f57a67 nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x36f0ace8 nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x38d698a4 nf_conntrack_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39ba025c nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3d2afdbb nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4f29aaa5 nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x50572469 nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x50a4a1d9 nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x527eefc6 nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x545a394b nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x552f9639 __nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x60488d44 nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x701911c4 nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x706c566a nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73892824 nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77a9c385 __nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e5dc534 nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7eb00654 nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f96138c nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x832cd25b nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85e4e3f7 print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9127841c nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x917bcee6 nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9753915e nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9b2a07dc nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa06967c8 __nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa461d87c __nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa91c655e nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab4922ca nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaba142c0 nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5c4c537 nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0b4649b nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc39e13ea nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc404186b nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc6c09ab0 __nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcd79bb14 nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcdc50acd nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd7d53a45 nf_ct_unlink_expect
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd90ab83d nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdc46f0b9 nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe06e4041 nf_conntrack_untracked
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe605a897 nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe7dcddde nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeedcdf11 nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x7d20f357 nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x150fff90 nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x06259476 set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0df2851f set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x120d1713 nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x164e8bc1 get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x41f3301b nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6221e9ca set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8310245e set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc6b7d363 nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xeacc8597 nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf4efedaa nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x267bf724 nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x003892ac nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x1b1b2862 nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xaeecdcee nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf2ab9b3c nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x73e663e9 nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x74dff9d8 nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1a8bcb24 nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2670f5b8 nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x299aa05b nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x45249d8b nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x46e9ce99 nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x50e1d4f9 ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5246f3fe nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6dc77868 ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb82f7ac3 ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc1a06f68 nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd18e0750 ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd67dcb07 ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf4d964df ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0xbc568508 nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x262b6fb2 nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x5b87a307 nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3300fb88 nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x4166fcf1 nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x933ac77d nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x95447c2e nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd27b44fe nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf397654d nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x6e41739e nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0614bef9 xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x154556ad xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x356b0e4b xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6871255e xt_info_locks
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6ca24aa2 xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7b8afe19 xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7ef6b92f xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9449d5df xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb62c5b33 xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xba31b691 xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc0c7e603 xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc7a84505 xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdc3c9186 xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf000190f xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x4ac7eda1 xt_rateest_lookup
+EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x6a518c7f xt_rateest_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq
+EXPORT_SYMBOL_GPL net/rds/rds 0x02d594d2 rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x06083d18 rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x093afa09 rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0x0d213a4f rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0x14107730 rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0x15dc2b74 rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0x15ee5104 rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x1a5ca8bc rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x34afe330 rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x3e3ddd7f rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x5ccc58e0 rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0x6b257a2d rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x74cfbc8c rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0x837595c8 rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0x8940a87a rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0x8db0643e rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x903eac73 rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0x98e5d6e1 rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0xa55bc154 rds_inc_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0xba9bd1db rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0xe4a5d596 rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0xf47d76c7 rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats
+EXPORT_SYMBOL_GPL net/rds/rds 0xfb3ebd4b rds_trans_register
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x770d7212 rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x93d9e085 rxrpc_register_security
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x12dfc3c1 gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x19e9c05c gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2b500690 svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x39a04c89 gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3deb03cd gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6624c7d7 gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6e5a149e gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x72ec485e gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8e6e0b03 svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa43c6dc8 gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd4b23b64 gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02b36de5 auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x031e27b2 svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03afc10c xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x051b5d54 rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065fa83b xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06687e9d xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x066a92a1 auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a5fa5a6 svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e6d3c86 xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e8d6ac7 sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9bb104 svc_sock_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10c16dd5 rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x138daca8 svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x139ec5ca unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x140d974d cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16e4428b rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x172ae4f1 rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1978ead0 svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x198ad1a1 xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c5c21c2 rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d2d7132 rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d668c17 read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2126ae1c rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x223c76f6 xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x232b78d5 rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2352a8bf xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x278810bb xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28db7ec5 svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29911de7 __rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b727c3d rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2cf0c5f2 svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e77afaf xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f94e130 xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34d4eecd sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3714f81b put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3726faf4 xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x391453ec rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39e177d1 rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c8c0248 cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3eb24e5d xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41de876f svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43af449b rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x455c7950 svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x458689e4 svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45bba993 xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f0e867b rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x506800cf xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x549f44c5 cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x552a8f9b rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58e986b6 rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b989e25 rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c6fc9a5 rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5dd16fc6 sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f4a7031 auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61ff1438 write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6676971b svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6688df1f xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67297099 xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68006f64 svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a1e9ae2 xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b8b76c6 sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c02079f rpc_exit_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6cee4946 xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7358483e rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7433bd73 xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7536337d xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75ee40ed xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x760c6bf7 rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76c7ba66 rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77fc9f50 rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79514fe2 rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ac06fdb svc_sock_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7aec64e9 xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c5a7cb1 svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ccb0c0e rpc_queue_empty
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8028c388 rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8138d3d7 sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cda59b rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a6acb93 rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e60902d rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ec99d14 rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90014ca3 xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x90b25097 xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x949355b5 rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95aa0f26 xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9623817e svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97972404 auth_unix_add_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b17ad65 svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b661a91 svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9cc07685 rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ffa8174 svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa159808b xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa53e9eb8 xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa55c03b8 xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa63671e6 rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7e94ecb xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae6a3724 xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb115745e xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb21fc059 rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3a783d4 xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb430e684 rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4804cc0 rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4dc57cb svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb647b560 auth_unix_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbadddbe9 svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbba57594 rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc34cc3a rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdfaba39 rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe41f7a6 xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0433f4c svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2ceaa49 rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2de1a62 svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc719e47 svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccaab0ad rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1f2de60 svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd24f9abb xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3228a2d cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6127221 svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd94db769 svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc22a021 auth_unix_forget_old
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdcfa08c7 svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde3c1fde svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xded833d2 svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdef2159e svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf74d2b2 svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1a5ee20 rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1c6f2cc rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe23d163c rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe3101b99 svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4f3b7b6 svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6ee37c9 rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9a57d46 svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb0b74b1 svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb17512e rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xecccb95c rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf26653c9 csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4f59bea xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa8ae05b xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd838761 rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff40a312 rpc_mkpipe
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x0a3e7d17 wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x43fa4277 wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x449e76f6 wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x67e0eb27 wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x6e140c1a wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x8c813503 wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x92d377af wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xb99b30f7 wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xbe7491c4 wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xc4646653 wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xcd8e183a wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xe0fde672 wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf7acd367 wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x085be7f5 cfg80211_wext_siwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0a18acfd cfg80211_wext_siwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x16554281 cfg80211_wext_siwmlme
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x28e6b933 cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3df26418 cfg80211_wext_giwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4cb1d79a cfg80211_wext_siwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4cc8e9d5 cfg80211_wext_siwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4eb2d204 cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x52157d7c cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5fd9158c cfg80211_wireless_stats
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6e29495f cfg80211_wext_giwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6ea3e44d cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7a97a7a9 cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7b5b1f7f cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7cf95af4 cfg80211_wext_giwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8c07a14b cfg80211_wext_siwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8fc000f4 cfg80211_wext_giwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9c1f421b cfg80211_wext_siwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa1eacb26 cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa8006d54 cfg80211_wext_giwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb31790b4 cfg80211_wext_siwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbe75783a cfg80211_wext_siwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbefee291 cfg80211_wext_giwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd943ded6 cfg80211_wext_siwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdad0b277 cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdd069d03 cfg80211_wext_giwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe71c9ae7 cfg80211_wext_giwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe840fb15 cfg80211_wext_siwencodeext
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf5a7f39e cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf5e1c175 cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf8fb705f cfg80211_wext_siwgenie
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf95b9263 cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x09f21940 ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x31bf692d ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x5cfae120 ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x72c97368 ipcomp_input
+EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x42d7d67f snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x4a58586a snd_ak4113_build
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x5332dfd2 snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xba0efc12 snd_ak4113_create
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xe45201ce snd_ak4113_reinit
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf87fa254 snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x00e5305d snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x019c6dff snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x036cb3f6 snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x077bddef snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ae63980 snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0b2bb6d8 snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c0ac557 snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13e49ed6 snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14e89e14 snd_hdmi_get_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x164b656d snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x18ff3fd4 snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x25e9db38 snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28c063b4 snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2a9a6d4e snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ada359d snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b49fd20 snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2fca6476 snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3951baed snd_hda_eld_proc_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x40b8015a snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x42959bd2 snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x433ed9b8 snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4386335e snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45d49bbc snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47d71cfa snd_hda_parse_pin_def_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4909be27 snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49732c37 snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4df70e7a snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x538ab173 snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58194a4c snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b6ef1e3 snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5bb7db48 snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5da2389d snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x624a8495 snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x64d2c445 snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6507f8c7 query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b8e0ea3 snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6c9bfffe snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e27db2c snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71610cd4 snd_hdmi_get_eld_size
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x772e3629 snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79849aa5 snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a260e5b snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a9bc666 snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b971072 snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c94a062 snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d4d01bc snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e2b5901 snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80444a97 snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x869c4c5a snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a03f68e snd_hdmi_show_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a7a943a snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b6bf01e snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b810d87 snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c10e390 snd_hda_eld_proc_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9045c300 snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x90a96dab snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94a5d549 snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b2bed09 snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b702b75 snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1a1ab58 snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa25af54b snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa9e90b08 snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xab0ea483 snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1b79c18 snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb779072e snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8b8c588 snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb997d11f snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xba35ef03 snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf5cdacb snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2498729 snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2d136d3 snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc3a16dda snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc79a44a9 snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc8ddfec8 snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb40e53e snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb59f284 snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd21f5a2d snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2b1e952 snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6599195 snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6626f18 snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6d3e4bc snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda36288e snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4f59ac1 snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeccf96d0 snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf16f9f3b snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf4f918ec snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf585d9ca snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd603eb2 snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x6bf9e8e8 ad1836_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0xf521291e soc_codec_dev_ad1836
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x23672cf0 soc_codec_dev_ad193x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x9201836a ad193x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xe4893496 soc_codec_dev_ad73311
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xf1433e88 ad73311_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x4146d837 ads117x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x85bf6ff9 soc_codec_dev_ads117x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0x973c5c4b soc_codec_device_ak4104
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x15d09fa5 soc_codec_dev_ak4535
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xcdf49155 ak4535_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x4d6bb009 soc_codec_dev_ak4642
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x9bd99880 ak4642_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x2ca5f0b3 ak4671_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x64005d93 soc_codec_dev_ak4671
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x0fa65531 cs4270_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x9cb0b1fb soc_codec_device_cs4270
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x42f7f126 soc_codec_dev_da7210
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x5f9b1898 da7210_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x2afaee7d max9877_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xee04c186 pcm3008_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xfe9f6eac soc_codec_dev_pcm3008
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0xab65edb9 dit_stub_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x47e3e91f ssm2602_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xf52a6b67 soc_codec_dev_ssm2602
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x7ae22b72 soc_codec_dev_tlv320aic23
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xbb8855f0 tlv320aic23_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x8fa4668d aic26_soc_codec_dev
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xfd386a0c aic26_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x531ff6b7 soc_codec_dev_aic3x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x63e54cf6 aic3x_button_pressed
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x6e1d0aa4 aic3x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9cbf0494 aic3x_get_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xa25df78d aic3x_set_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb34d0b75 aic3x_set_headset_detection
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xf9540c79 aic3x_headset_detected
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x1b9d9b37 soc_codec_dev_tlv320dac33
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x56739957 dac33_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x85be2bee tpa6130a2_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x5aa7e36f soc_codec_dev_twl4030
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x9182b2d4 twl4030_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x2528a68a soc_codec_dev_twl6040
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x4e64c5bf twl6040_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x9b1f856a soc_codec_dev_uda134x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x23c2c703 uda1380_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xaaa5b903 soc_codec_dev_uda1380
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x1bbd932c wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xcc9f6030 wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xea638d4a wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x46b53e72 wm2000_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x1876abef wm8350_mic_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xca3ab171 wm8350_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xe600a2fe soc_codec_dev_wm8350
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xec0323c4 wm8350_hp_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x7d1c58ac soc_codec_dev_wm8400
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x92c797cf wm8400_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x7c841866 soc_codec_dev_wm8510
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xa7cf9c14 wm8510_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x10b3f427 wm8523_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x55eff5fc soc_codec_dev_wm8523
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x6591509d wm8580_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x735523e9 soc_codec_dev_wm8580
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x2eb648cc wm8711_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xcf96e1ac soc_codec_dev_wm8711
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x9b8af873 soc_codec_dev_wm8727
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xc907b14c wm8727_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x1c12e4bc soc_codec_dev_wm8728
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x38510399 wm8728_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xb92959e5 wm8731_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xcc1235c2 soc_codec_dev_wm8731
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x11a5bf7a wm8750_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xd1847831 soc_codec_dev_wm8750
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x68bf406a wm8753_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xfaa92bf2 soc_codec_dev_wm8753
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x174c4a83 wm8776_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x845a0bd9 soc_codec_dev_wm8776
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x3790cde9 soc_codec_dev_wm8900
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x561782ef wm8900_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x1cbd9e2a soc_codec_dev_wm8903
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xd083f041 wm8903_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xf0627f39 wm8903_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x53fc08ed soc_codec_dev_wm8904
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xcd86c0f9 wm8904_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x30996535 soc_codec_dev_wm8940
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xa258a6fc wm8940_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x4c2cfb47 soc_codec_dev_wm8955
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x54e23cfb wm8955_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x331db15b soc_codec_dev_wm8960
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x35c7b7d5 wm8960_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x2a06801a soc_codec_dev_wm8961
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xfe9b6470 wm8961_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x2bc4ea2d soc_codec_dev_wm8971
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x58ec6fc4 wm8971_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x0821fe77 wm8974_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x56b31e68 soc_codec_dev_wm8974
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x7fe33e0c wm8978_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0xfa065164 soc_codec_dev_wm8978
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x89ab4ee5 wm8988_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xf15a1659 soc_codec_dev_wm8988
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x3841f666 soc_codec_dev_wm8990
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xc38fc73c wm8990_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x136ca5a5 soc_codec_dev_wm8993
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x451bb592 wm8993_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x35c5b4fe wm8994_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x5c2d3362 soc_codec_dev_wm8994
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xa8fe62a6 wm8994_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x60f0cb2a soc_codec_dev_wm9081
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xa6901045 wm9081_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x7829905c soc_codec_dev_wm9090
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0312e896 snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06df21e7 snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0bdb2185 snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x117f414f snd_soc_free_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12360288 snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x13046224 snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16aef50c snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x17064f59 snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1babdd4c snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1c79c1f2 snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x206c0185 snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2423a254 snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24baec4d snd_soc_dapm_stream_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x24d05796 snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x281f55d7 snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a781a46 snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3339f5d6 snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x35934b3d snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x35a7bb57 snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39c583dc snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b60d36d snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d73774d snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4109d07a snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x477c7b47 snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x479c060d snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48b59fe3 snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4fba3a1e snd_soc_info_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x50d950cf snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x525e5813 snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x618e3a7c snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x622dc191 snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6779ab42 snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74d67b7b snd_soc_new_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7505ce0a snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x750f85ab snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x76518309 snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x774676d8 snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x77b71b4d snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x80e5d453 snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x862b09d1 snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x87c45464 snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8849cb7b snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8caa4cb7 snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x904364e1 snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x90bec3a1 snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x936f49ad snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96b062b0 snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b457093 snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa5bc2141 snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa732b48b snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xabc171c7 snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae598179 dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb077a1f5 snd_soc_jack_new
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb21f2f8d snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb35e9d5e snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb75e8ed8 snd_soc_get_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf004d74 snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc442562f snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc73a3c43 snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb0d291f snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xccbbeaea snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcec7b378 snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0a9f14d snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd17bcc7f snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd5fc451d snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd6abe3b4 snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda51a615 snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdf1d05cc snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe386817a snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe440cc77 snd_soc_put_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4de7f9a snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe68534e2 snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeaea3db7 snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec92f292 snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf8520862 snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc5e8578 snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfec92d01 snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x3ad6acb9 xv_free
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x415404a4 xv_malloc
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x422af118 xv_destroy_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x6ae9c20d xv_get_total_size_bytes
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xd2ac5a4c xv_create_pool
+EXPORT_SYMBOL_GPL vmlinux 0x000d4cf0 input_ff_event
+EXPORT_SYMBOL_GPL vmlinux 0x003115f0 __fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0x003ed6a6 hpet_unregister_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis
+EXPORT_SYMBOL_GPL vmlinux 0x00add54c mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0x00be6ac3 xenbus_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init
+EXPORT_SYMBOL_GPL vmlinux 0x00e52289 rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0x0158bc77 console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x017543f0 net_ipv6_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x01790bcd blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok
+EXPORT_SYMBOL_GPL vmlinux 0x019fb029 __pm_runtime_get
+EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x02358c1e relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0x02528bb8 dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0x02a0aab2 rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0x02ab52a2 raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0x02c379d8 isa_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x02dfb414 rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x035dd1b5 lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL vmlinux 0x03f18a50 shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x0401d128 wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x047fa994 devm_kfree
+EXPORT_SYMBOL_GPL vmlinux 0x0491cc00 inotify_dentry_parent_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x049b7c44 usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0x04a93edb sysdev_class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x04aada29 perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0x04da25ef relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0x05004cf0 ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x0550239f scsi_dh_attach
+EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x0572669e ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x059a1e77 bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0x05bb8cd1 __pci_complete_power_transition
+EXPORT_SYMBOL_GPL vmlinux 0x05c7f84e relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x06d15e8d attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0x06e7017b crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x078d18ab blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0x079d3c07 sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0x07a6a801 cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x07c47550 usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x07ff4aea xenbus_scanf
+EXPORT_SYMBOL_GPL vmlinux 0x081c86dd vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0x087211be sata_pmp_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x087f71af wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x089ca49d power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x08a920d6 xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0x08d03d2b device_schedule_callback_owner
+EXPORT_SYMBOL_GPL vmlinux 0x08f97373 scsi_dh_activate
+EXPORT_SYMBOL_GPL vmlinux 0x09149adc __srcu_read_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0x09339e95 pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0x0952f135 dm_kill_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x0a198ac2 class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x0a285c08 pci_disable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0x0a4df3ce pci_ioremap_bar
+EXPORT_SYMBOL_GPL vmlinux 0x0a90beb7 scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0x0aa7488b blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0x0ab20242 register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x0ac0ab25 vring_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x0ac0fd45 cpufreq_get_measured_perf
+EXPORT_SYMBOL_GPL vmlinux 0x0ac64f26 bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b15d01d do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header
+EXPORT_SYMBOL_GPL vmlinux 0x0b6f20f4 crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x0bd3efe8 task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x0c0598ed usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0x0c219524 gpio_export_link
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c31082a usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range
+EXPORT_SYMBOL_GPL vmlinux 0x0cc381b6 inet6_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL vmlinux 0x0cdf9e10 fuse_file_poll
+EXPORT_SYMBOL_GPL vmlinux 0x0cf1d55d ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0x0d2d73c7 ata_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x0d4e73c5 klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x0da68128 sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0x0db4aa5b skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0x0dbbb349 blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0x0dda2590 acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0x0de08cb6 blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0x0deb0ade register_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0x0df313c6 cpuidle_enable_device
+EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release
+EXPORT_SYMBOL_GPL vmlinux 0x0e2e5240 add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x0e2eafd7 usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL vmlinux 0x0e40c0f9 fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0x0e6a0889 eventfd_ctx_put
+EXPORT_SYMBOL_GPL vmlinux 0x0ec210b8 xen_start_info
+EXPORT_SYMBOL_GPL vmlinux 0x0ec644da power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0x0ee270e2 usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0x0ee8f61e scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL vmlinux 0x0f0720b5 __module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x0f179bde each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x0f27b5d8 dm_rh_recovery_start
+EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory
+EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x103e03fc inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x1044fdef wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x1047e176 inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0x10621889 hpet_rtc_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x110b0ab6 __dma_request_channel
+EXPORT_SYMBOL_GPL vmlinux 0x1125a51d usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x1127a40d sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x1166d30a regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x11714dcd mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0x1178685e regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x119cdcf9 tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x11fe07bb inotify_rm_watch
+EXPORT_SYMBOL_GPL vmlinux 0x1210e2f6 ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x122beea1 device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0x12337e22 crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x1242497e attribute_container_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0x129a6f63 hwmon_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x12d58d92 ata_cable_unknown
+EXPORT_SYMBOL_GPL vmlinux 0x12eb41d1 pciserial_resume_ports
+EXPORT_SYMBOL_GPL vmlinux 0x12f41c93 regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1334e998 generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x136d3f75 ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0x138b8976 inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0x1394c727 skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x13a0fb7d i2c_new_probed_device
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13b9c72c platform_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x13c3ac50 crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x13ec31dc tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0x1406a072 dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0x140ffe4f ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0x142b6278 ata_cable_80wire
+EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page
+EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid
+EXPORT_SYMBOL_GPL vmlinux 0x14c7ed35 acpi_bus_trim
+EXPORT_SYMBOL_GPL vmlinux 0x14fd7941 ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL vmlinux 0x150b65ad sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x15330eda proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0x154e201e crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x155624d9 wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0x15568631 lookup_address
+EXPORT_SYMBOL_GPL vmlinux 0x1570a178 fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1570fa39 __cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x1588a68a usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x15a98b54 ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped
+EXPORT_SYMBOL_GPL vmlinux 0x15b0c4b2 tracepoint_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x15c983bc usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x15eba9bd wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x16b85764 skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0x16c57b0c unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x16fb34d5 blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x171b577b unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub
+EXPORT_SYMBOL_GPL vmlinux 0x1777118d usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0x17853495 shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0x178d5c5f tracepoint_iter_start
+EXPORT_SYMBOL_GPL vmlinux 0x1793015b skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x17cf67be mm_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x17d60dc7 pci_sriov_migration
+EXPORT_SYMBOL_GPL vmlinux 0x18683bdb cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert
+EXPORT_SYMBOL_GPL vmlinux 0x18adcc27 fuse_request_send
+EXPORT_SYMBOL_GPL vmlinux 0x18eb1c1c sdio_readl
+EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref
+EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x19408f61 wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore
+EXPORT_SYMBOL_GPL vmlinux 0x196ff674 pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0x1976f3b4 bd_release_from_disk
+EXPORT_SYMBOL_GPL vmlinux 0x19812706 inotify_find_update_watch
+EXPORT_SYMBOL_GPL vmlinux 0x198c135a tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19b80d74 pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0x19d6ad12 da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0x19e31141 sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x19e4f40c inotify_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x1a0367e5 tc35892_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x1a145b60 usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x1a33c5b7 user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x1a6b443d ata_host_register
+EXPORT_SYMBOL_GPL vmlinux 0x1a877500 bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0x1aaf9e07 dm_rh_dec
+EXPORT_SYMBOL_GPL vmlinux 0x1b0ae4cd rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs
+EXPORT_SYMBOL_GPL vmlinux 0x1b3eb425 scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0x1b6de9a8 pci_enable_sriov
+EXPORT_SYMBOL_GPL vmlinux 0x1b74782d ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL vmlinux 0x1b90e0bb fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1ba3bf47 __hvc_resize
+EXPORT_SYMBOL_GPL vmlinux 0x1bbb3af0 usb_ifnum_to_if
+EXPORT_SYMBOL_GPL vmlinux 0x1bbc3da3 tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x1bc7709a __trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0x1be02fca tc35892_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x1c0e2348 blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0x1c26fe58 transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0x1c2d3702 ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x1c4c9415 pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0x1c80f609 scsi_dh_detach
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1cc611f2 tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x1cf533ea anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0x1d30da5d ata_std_postreset
+EXPORT_SYMBOL_GPL vmlinux 0x1d3411fe __mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0x1d6781a9 klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x1d77c2cd __pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0x1d89aca9 pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x1db88dda dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL vmlinux 0x1dc31621 ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x1dcd7e4f device_register
+EXPORT_SYMBOL_GPL vmlinux 0x1dd4db59 trace_seq_vprintf
+EXPORT_SYMBOL_GPL vmlinux 0x1dd70c82 queue_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x1e359831 eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart
+EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names
+EXPORT_SYMBOL_GPL vmlinux 0x1ece49bb ata_sas_port_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x1ecfdf10 cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0x1ed76675 crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0x1f2c7f08 anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle
+EXPORT_SYMBOL_GPL vmlinux 0x1f916aeb usb_disable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x1fc50f49 inet_diag_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1fcbe199 xenbus_free_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick
+EXPORT_SYMBOL_GPL vmlinux 0x1fdeb0b2 rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x1ff52861 ata_port_pbar_desc
+EXPORT_SYMBOL_GPL vmlinux 0x20103463 transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x202953e4 apic
+EXPORT_SYMBOL_GPL vmlinux 0x204d5b72 register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x20bb975f sdio_readw
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20f7d35e sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0x20f7e50a device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0x2125deda blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x21272fb1 anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x21797d1b debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0x21f5f826 regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x21fcfab1 class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x225dc5bb spi_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x2277e2fa trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x22a31c39 wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x22c18472 inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x22c6d403 platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x22f2ef5d usb_hc_died
+EXPORT_SYMBOL_GPL vmlinux 0x22fcbf4d class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x22ffc7ea crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0x234fd994 device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x23516bdc page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x2380db48 unregister_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x2383ed3f d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x239f11db regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0x23d8116d vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0x23d960d0 rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0x241091a7 ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x243befbe __class_register
+EXPORT_SYMBOL_GPL vmlinux 0x243d4492 ata_sff_hsm_move
+EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0x246f4153 pv_time_ops
+EXPORT_SYMBOL_GPL vmlinux 0x248aba8a ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL vmlinux 0x24b3d9f1 disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x2515a067 set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch
+EXPORT_SYMBOL_GPL vmlinux 0x254a55d4 xenbus_alloc_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x25664a04 crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x2568bd79 pm_generic_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x2630fe63 usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0x263ea03d led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x265a954a tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0x2692807e usb_string
+EXPORT_SYMBOL_GPL vmlinux 0x2692fd51 __sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x26e9f0fb inotify_init_watch
+EXPORT_SYMBOL_GPL vmlinux 0x26fd8f01 platform_get_resource_byname
+EXPORT_SYMBOL_GPL vmlinux 0x2759c655 cpuidle_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x277040fc blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0x27904178 ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars
+EXPORT_SYMBOL_GPL vmlinux 0x27a9dad9 invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x27b518e0 pm_generic_resume
+EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range
+EXPORT_SYMBOL_GPL vmlinux 0x2807ced3 kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0x281a193f __blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x28597d6f sata_scr_valid
+EXPORT_SYMBOL_GPL vmlinux 0x28b6bdcc da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28db7a89 tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x2963b731 sdio_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x29912393 rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x2a05d180 sdio_f0_readb
+EXPORT_SYMBOL_GPL vmlinux 0x2a0a4724 bind_evtchn_to_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x2a160a1d led_trigger_show
+EXPORT_SYMBOL_GPL vmlinux 0x2a32cf6d rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result
+EXPORT_SYMBOL_GPL vmlinux 0x2a926a3a dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array
+EXPORT_SYMBOL_GPL vmlinux 0x2ab62bab queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x2ac254b0 da903x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0x2b28c5ae sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x2b46bcdb ata_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x2b98af7c pci_enable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x2b9d2a0b ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0x2bbbe09a ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0x2bc493ee ata_sff_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0x2be7fb8e disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c4bb403 sata_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x2c66ddd4 pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0x2c6bd96d sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL vmlinux 0x2c7e0d50 usb_driver_set_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x2c8a67ec disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x2cc0d9b0 crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0x2cdf06f3 dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2ceccebe tracepoint_iter_stop
+EXPORT_SYMBOL_GPL vmlinux 0x2d064849 i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x2d151490 blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x2d174c7f shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x2d4da2dc device_find_child
+EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL vmlinux 0x2dbd49f5 spi_unregister_master
+EXPORT_SYMBOL_GPL vmlinux 0x2e262d59 rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e59e449 tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x2e913bdb zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0x2eb4155b ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL vmlinux 0x2ebad30b eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0x2ed1593a __blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0x2ee46695 sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x2eff9086 dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x2f1b213c regulator_put
+EXPORT_SYMBOL_GPL vmlinux 0x2f45eaa7 platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table
+EXPORT_SYMBOL_GPL vmlinux 0x2f54c193 eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0x2f57d350 sysfs_remove_files
+EXPORT_SYMBOL_GPL vmlinux 0x2f6340ac class_dev_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x2f66e0f4 unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x2f6c3407 aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x2f7e7011 pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll
+EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x30167838 add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x30d5e46c pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0x30eadb44 platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0x30ebc128 crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0x30fe0608 pm_request_resume
+EXPORT_SYMBOL_GPL vmlinux 0x30ff9e55 dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0x3136a485 devres_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x31594ba0 ata_bmdma_status
+EXPORT_SYMBOL_GPL vmlinux 0x3169bfa2 unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x317cf9c7 blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x31b2ab13 ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x31f0d310 cpufreq_cpu_put
+EXPORT_SYMBOL_GPL vmlinux 0x321c2f7f tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref
+EXPORT_SYMBOL_GPL vmlinux 0x3282cdc8 platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x32924a4d scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0x32aaaadf raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x32c0b54d pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0x32c6c24c platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x32e6012e pci_num_vf
+EXPORT_SYMBOL_GPL vmlinux 0x3346eb53 pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x334bec79 pci_restore_msi_state
+EXPORT_SYMBOL_GPL vmlinux 0x33607d36 smp_ops
+EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register
+EXPORT_SYMBOL_GPL vmlinux 0x33c294b5 ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0x33dccb1c regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x34586557 sdio_readb
+EXPORT_SYMBOL_GPL vmlinux 0x34c15143 crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0x34efe2a2 dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0x35190f49 __ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x352da304 device_create
+EXPORT_SYMBOL_GPL vmlinux 0x353f4746 apei_get_debugfs_dir
+EXPORT_SYMBOL_GPL vmlinux 0x356cf707 crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0x357b73aa xenbus_watch_pathfmt
+EXPORT_SYMBOL_GPL vmlinux 0x358aeae6 sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL vmlinux 0x35b4bb49 ata_port_abort
+EXPORT_SYMBOL_GPL vmlinux 0x35d15bc8 get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x35e15476 wm831x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x35ee75e6 usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0x3643cd5e class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x365895b0 dm_rh_update_states
+EXPORT_SYMBOL_GPL vmlinux 0x3665f879 usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x369c6be9 sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x36a747f7 sdio_f0_writeb
+EXPORT_SYMBOL_GPL vmlinux 0x36b6077a clockevents_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x36e5925d driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x36e6df7c sata_sff_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x36e76617 md_new_event
+EXPORT_SYMBOL_GPL vmlinux 0x370a6485 map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x373398c3 __sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0x3799fb9c pm_generic_restore
+EXPORT_SYMBOL_GPL vmlinux 0x37d549fc ata_link_online
+EXPORT_SYMBOL_GPL vmlinux 0x381c86f2 usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL vmlinux 0x3841ab01 unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x384825dd unregister_virtio_device
+EXPORT_SYMBOL_GPL vmlinux 0x384fb68f usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x388018fd hvc_remove
+EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x38ea936e __memory_failure
+EXPORT_SYMBOL_GPL vmlinux 0x38fdea40 pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0x39204940 dm_rh_get_region_key
+EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x3a0ee771 inotify_find_watch
+EXPORT_SYMBOL_GPL vmlinux 0x3a203dd8 __rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3a9cf58f shake_page
+EXPORT_SYMBOL_GPL vmlinux 0x3abf0f63 regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0x3af1c654 pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0x3b5df9aa user_match
+EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value
+EXPORT_SYMBOL_GPL vmlinux 0x3b91e24b ata_std_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x3b98926e regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0x3b9a5801 attribute_container_find_class_device
+EXPORT_SYMBOL_GPL vmlinux 0x3be4627c usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3c459c2f crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x3c75c4c6 uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag
+EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3cad9c0e pci_hp_change_slot_info
+EXPORT_SYMBOL_GPL vmlinux 0x3cc992e4 scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x3d9f4e94 anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0x3dac2cf5 sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0x3dcef2e3 acpi_smbus_unregister_callback
+EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x3dd88d8a task_current_syscall
+EXPORT_SYMBOL_GPL vmlinux 0x3dde0e07 amd_get_nb_id
+EXPORT_SYMBOL_GPL vmlinux 0x3df46ff2 cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x3e13d4cd rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x3e398d67 regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x3e4e68c3 debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x3e726888 ata_acpi_gtm
+EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0x3ecf6cfc wmi_install_notify_handler
+EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0x3f008c39 led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL vmlinux 0x3f0256f6 klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register
+EXPORT_SYMBOL_GPL vmlinux 0x3f5eab43 fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x3f7669ea key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x3f983036 ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0x3fc76755 __audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0x40232091 crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0x4037895d rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x40446601 usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0x4045f152 kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x405fac01 __class_create
+EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL vmlinux 0x40f1a313 xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0x40f292a3 fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0x40f585b6 fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0x41766ecd ring_buffer_read_finish
+EXPORT_SYMBOL_GPL vmlinux 0x417ba602 sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x4189fbc1 da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x4201fb03 kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done
+EXPORT_SYMBOL_GPL vmlinux 0x4267def5 xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0x426e252f ata_pci_remove_one
+EXPORT_SYMBOL_GPL vmlinux 0x426f13b9 e820_all_mapped
+EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active
+EXPORT_SYMBOL_GPL vmlinux 0x42af54d4 usb_poison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x42eedbfd crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x43b74e07 usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0x43bcb127 blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x43cfdd8f __rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x43e4a8cd dm_region_hash_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL vmlinux 0x4457a882 debugfs_create_x64
+EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x447ea073 ip6_dst_blackhole
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x44bb49b9 regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x44caa138 usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0x44db7172 pciserial_suspend_ports
+EXPORT_SYMBOL_GPL vmlinux 0x452d1e78 debugfs_create_bool
+EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state
+EXPORT_SYMBOL_GPL vmlinux 0x456bbaff securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list
+EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read
+EXPORT_SYMBOL_GPL vmlinux 0x45b0f960 crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x45bdf143 ata_eh_freeze_port
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page
+EXPORT_SYMBOL_GPL vmlinux 0x45d7d97a bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x45e39698 tc35892_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data
+EXPORT_SYMBOL_GPL vmlinux 0x465323ae sdio_set_block_size
+EXPORT_SYMBOL_GPL vmlinux 0x466bc01e register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x4675bd25 hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x467b657d crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x46b030bd ata_host_detach
+EXPORT_SYMBOL_GPL vmlinux 0x46d6dd6a transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0x46f8df5e inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x47345869 firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x479e730a kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x47be3c39 ata_sff_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0x48028dcb __put_net
+EXPORT_SYMBOL_GPL vmlinux 0x482e2adb usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0x48672258 sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size
+EXPORT_SYMBOL_GPL vmlinux 0x48c1d3eb fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0x48d081c0 inotify_inode_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x49301de2 wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue
+EXPORT_SYMBOL_GPL vmlinux 0x49918742 inotify_init
+EXPORT_SYMBOL_GPL vmlinux 0x49db8db4 register_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x49de1f81 vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0x4a2b23aa pm_runtime_forbid
+EXPORT_SYMBOL_GPL vmlinux 0x4a57a099 kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x4aa265fe pm_generic_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x4aece391 crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0x4b191740 __ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x4b542a3d ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x4bf2cee4 __mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x4c0addc1 generic_subsys_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0x4c1f642f crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0x4c3e6d1b driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c8160c0 fuse_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0x4c8b9b80 crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x4c9edcc4 xenbus_bind_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x4d09b30a remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0x4d59f293 ata_sff_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0x4d6447ad tty_prepare_flip_string_flags
+EXPORT_SYMBOL_GPL vmlinux 0x4d8d254d elv_register
+EXPORT_SYMBOL_GPL vmlinux 0x4d9454a5 regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x4d9698f2 ata_base_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x4da55ea3 __crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x4e02b9d9 rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x4e86a742 ata_eh_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x4eb2a5d3 rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0x4ebfb387 pm_runtime_enable
+EXPORT_SYMBOL_GPL vmlinux 0x4ed4d1dc cpufreq_register_governor
+EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x4ef6d7aa init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0x4f0922f3 root_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4f0b0712 debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0x4f4d9575 spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0x4f579f65 single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x4fc5b48c hwmon_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal
+EXPORT_SYMBOL_GPL vmlinux 0x4fdea038 fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x4fdeb352 ata_sas_slave_configure
+EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array
+EXPORT_SYMBOL_GPL vmlinux 0x5051a132 rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0x5063247b ata_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x50793d00 sata_async_notification
+EXPORT_SYMBOL_GPL vmlinux 0x5081f6b3 ipv6_opt_accepted
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x50e5b488 regulator_disable
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched
+EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x5108b3fc acpi_os_map_memory
+EXPORT_SYMBOL_GPL vmlinux 0x5120eb1e scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x514f95f4 ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0x51558bf2 scsi_dh_set_params
+EXPORT_SYMBOL_GPL vmlinux 0x5169a667 crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0x5178abf9 md_allow_write
+EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq
+EXPORT_SYMBOL_GPL vmlinux 0x51a0bb4c ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0x5274048f usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0x529f402a rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0x52c9b6df tty_put_char
+EXPORT_SYMBOL_GPL vmlinux 0x52db3d8b simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0x53596c62 atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53924bb2 xenbus_switch_state
+EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53bbb742 usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x540c89e7 driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x541fa8a3 module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x543b02f0 ata_sff_postreset
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54956567 sdio_memcpy_toio
+EXPORT_SYMBOL_GPL vmlinux 0x54b6e60b uhci_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x54bbe2c0 setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54c13e6b __root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x54c4dd0d i2c_new_dummy
+EXPORT_SYMBOL_GPL vmlinux 0x55006ca8 pci_destroy_slot
+EXPORT_SYMBOL_GPL vmlinux 0x5513aa17 shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features
+EXPORT_SYMBOL_GPL vmlinux 0x5584b0be ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x55da6686 device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x56055804 vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0x5619941f ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status
+EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable
+EXPORT_SYMBOL_GPL vmlinux 0x563c6860 crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after
+EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen
+EXPORT_SYMBOL_GPL vmlinux 0x566a904f find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0x566f0583 macvlan_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x56824317 sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk
+EXPORT_SYMBOL_GPL vmlinux 0x56dc3b0d scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x570994f5 xenbus_frontend_closed
+EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists
+EXPORT_SYMBOL_GPL vmlinux 0x5798dc06 proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x57a96e22 xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0x57b3d717 rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0x57b44923 perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x57e7a258 init_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x57fc7cd7 init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x580684ac kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x58156865 fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0x58a486d9 aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x58e9802c dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL vmlinux 0x58f50a07 __pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x590ef4b1 input_ff_create
+EXPORT_SYMBOL_GPL vmlinux 0x59237ac8 spi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x593a36c2 scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL vmlinux 0x594bb462 ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x59b92e22 __pm_runtime_disable
+EXPORT_SYMBOL_GPL vmlinux 0x59d52725 devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0x59e25e47 ata_sff_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x5a56580a transport_configure_device
+EXPORT_SYMBOL_GPL vmlinux 0x5a688b0f find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5ab5e3e9 xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference
+EXPORT_SYMBOL_GPL vmlinux 0x5b1ecd22 find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x5b519467 usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0x5bc21796 usb_anchor_empty
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5c0166de dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL vmlinux 0x5c24648b ata_sas_port_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x5c9f026a wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x5ca314d0 regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x5cf982b7 seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table
+EXPORT_SYMBOL_GPL vmlinux 0x5d1065c2 security_inode_setattr
+EXPORT_SYMBOL_GPL vmlinux 0x5d1d1457 save_stack_trace_tsk
+EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback
+EXPORT_SYMBOL_GPL vmlinux 0x5d708f34 wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d74abc6 dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5e49ad8a pci_dev_run_wake
+EXPORT_SYMBOL_GPL vmlinux 0x5e6dad00 get_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x5e8164d8 sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0x5ec401ea __pci_hp_register
+EXPORT_SYMBOL_GPL vmlinux 0x5ed954e1 set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0x5f0554be __srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x5f1b10d4 ata_sff_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable
+EXPORT_SYMBOL_GPL vmlinux 0x5f5de5f8 alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x5f63ab3a pci_create_slot
+EXPORT_SYMBOL_GPL vmlinux 0x5f6c7acd usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0x5f79bc2b rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x5fb3d2f9 wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x6001b133 usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x60c6f982 sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops
+EXPORT_SYMBOL_GPL vmlinux 0x60ebf985 acpi_processor_ffh_cstate_enter
+EXPORT_SYMBOL_GPL vmlinux 0x60fd6f76 ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0x611daadb pci_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x611f50f1 tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0x61478620 ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x61704093 relay_close
+EXPORT_SYMBOL_GPL vmlinux 0x6172ced5 inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0x61a2f5c8 __rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x61a69fc0 __mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0x61a6ce7f sdio_readsb
+EXPORT_SYMBOL_GPL vmlinux 0x61adc76c crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x61e05183 xenbus_dev_error
+EXPORT_SYMBOL_GPL vmlinux 0x61fa131d ata_sff_pause
+EXPORT_SYMBOL_GPL vmlinux 0x61fbd19d securityfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x62258080 cpuidle_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x62518797 fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x6287d3bb __cpufreq_driver_getavg
+EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep
+EXPORT_SYMBOL_GPL vmlinux 0x62b952f2 sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0x62d93311 ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL vmlinux 0x6343f34b fib_rules_cleanup_ops
+EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars
+EXPORT_SYMBOL_GPL vmlinux 0x637fe502 led_trigger_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x63b30e63 spi_alloc_master
+EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap
+EXPORT_SYMBOL_GPL vmlinux 0x64832385 drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0x64acc8d6 vring_new_virtqueue
+EXPORT_SYMBOL_GPL vmlinux 0x64ebe677 wmi_query_block
+EXPORT_SYMBOL_GPL vmlinux 0x64f426dd usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x64ffe38d ring_buffer_overruns
+EXPORT_SYMBOL_GPL vmlinux 0x6526aff0 cpufreq_frequency_table_target
+EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq
+EXPORT_SYMBOL_GPL vmlinux 0x655467ee sata_scr_write
+EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65d847e9 tc35892_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x66052a32 debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x663dbde6 shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x66631273 unregister_virtio_driver
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x66b23258 usb_enable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66cf21ba relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x670c5bef hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0x671be7a9 ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x6733cd8c device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x676319ba da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x67cbc60b rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0x67cdd6ca regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x67e5844d usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0x682fd1ab ata_bmdma_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x6831f2a5 crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x6859dca9 cpufreq_frequency_table_cpuinfo
+EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x689ae2dc shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x68aba8b8 nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x68b11b5e sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x68bd9b39 sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x68cdeb71 blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x6902fd77 hwpoison_filter
+EXPORT_SYMBOL_GPL vmlinux 0x690b3f05 crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0x6969db3b virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL vmlinux 0x69975e84 edac_mce_parse
+EXPORT_SYMBOL_GPL vmlinux 0x699a8c10 register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x699c588b nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x69a4db3c scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0x69b7efa2 platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config
+EXPORT_SYMBOL_GPL vmlinux 0x6a04be02 ata_link_next
+EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start
+EXPORT_SYMBOL_GPL vmlinux 0x6ac5f0a8 crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low
+EXPORT_SYMBOL_GPL vmlinux 0x6b8fa0d5 dm_rh_recovery_end
+EXPORT_SYMBOL_GPL vmlinux 0x6b9178b3 xenbus_strstate
+EXPORT_SYMBOL_GPL vmlinux 0x6b94c408 enable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x6bbb96b3 proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x6bc42417 scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x6bc74301 inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c563ef3 xenbus_grant_ring
+EXPORT_SYMBOL_GPL vmlinux 0x6c72fc3e cpci_hp_register_bus
+EXPORT_SYMBOL_GPL vmlinux 0x6c8aaad6 tc35892_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6cd0633a scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d6bf964 __inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x6dd80c63 skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x6e180dbb fsnotify
+EXPORT_SYMBOL_GPL vmlinux 0x6e234c09 modify_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x6e394aa0 crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref
+EXPORT_SYMBOL_GPL vmlinux 0x6e5b4f40 pcie_port_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x6e782c23 iomap_create_wc
+EXPORT_SYMBOL_GPL vmlinux 0x6e96da21 acpi_smbus_register_callback
+EXPORT_SYMBOL_GPL vmlinux 0x6e9da9d6 platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0x6ec9f38f usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x6ecbcc36 sysfs_notify_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x6ef2f626 sync_page_io
+EXPORT_SYMBOL_GPL vmlinux 0x6ef565e0 register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x6f0bd9c1 adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL vmlinux 0x6f38b160 driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x6f4f67c3 dm_unregister_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0x6f8621e4 ata_cable_ignore
+EXPORT_SYMBOL_GPL vmlinux 0x6f989b65 srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x6f9d27d4 crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x6f9d3e88 crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0x6fa7e887 ata_port_desc
+EXPORT_SYMBOL_GPL vmlinux 0x6fd018cd virtqueue_kick
+EXPORT_SYMBOL_GPL vmlinux 0x6fd6cf37 platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0x6fe6eedc debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0x6ff5347b inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x6ffd55ca sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0x702c97d3 wm8994_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x7037d79d k8_flush_garts
+EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr
+EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL vmlinux 0x7084594b put_device
+EXPORT_SYMBOL_GPL vmlinux 0x70a43e58 __wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0x70aecb65 device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x70d20dfa crypto_alg_sem
+EXPORT_SYMBOL_GPL vmlinux 0x70eb6cb7 ip6_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x7111d0f1 rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x7153bcc9 usb_set_device_state
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x71b117d3 transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0x71c7a71d kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x71d95082 css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x71dc8589 power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0x71e16fc0 crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x7204132c __wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0x72572c6c scsi_register_device_handler
+EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x7285f84f unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x7288b643 inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x729ad458 ata_pci_device_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x72e1098c xenbus_dev_changed
+EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type
+EXPORT_SYMBOL_GPL vmlinux 0x739be7f9 fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x739ed6e8 add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports
+EXPORT_SYMBOL_GPL vmlinux 0x7400280b default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x742f0c1a lookup_create
+EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini
+EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x746c770c scsi_target_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x74742ec6 simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read
+EXPORT_SYMBOL_GPL vmlinux 0x74963eef pciserial_init_ports
+EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register
+EXPORT_SYMBOL_GPL vmlinux 0x74b87bd8 usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74c80ed8 dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors
+EXPORT_SYMBOL_GPL vmlinux 0x75212412 ab8500_read
+EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm
+EXPORT_SYMBOL_GPL vmlinux 0x754d6754 usb_create_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x75c4d652 __ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x75cbc728 usb_store_new_id
+EXPORT_SYMBOL_GPL vmlinux 0x75cf56b9 ata_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x75f7901d crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x7642d22c dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL vmlinux 0x76563a77 fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x768e90f1 hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0x77645df5 destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x77659526 power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x77722d02 platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs
+EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0x77e9795e ata_port_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x78289b9c ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0x782af852 srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x783fe067 synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x7840076b ata_host_init
+EXPORT_SYMBOL_GPL vmlinux 0x785ba88e ata_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0x7860a857 cpuidle_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x78aa14bc raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x78af748a crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar
+EXPORT_SYMBOL_GPL vmlinux 0x7923f76f fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x793c8bde blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x7973c398 ata_sff_data_xfer
+EXPORT_SYMBOL_GPL vmlinux 0x7981f09d inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x79a15557 crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0x79b8b5d7 elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x79cf2087 cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL vmlinux 0x79d1b3d3 da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x79dbfc8a crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x7a0f9a7e __rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0x7a2cc4e3 vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info
+EXPORT_SYMBOL_GPL vmlinux 0x7a59dc84 sysdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7a99ea75 wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr
+EXPORT_SYMBOL_GPL vmlinux 0x7b0b4178 mmu_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set
+EXPORT_SYMBOL_GPL vmlinux 0x7b43dd99 xenbus_map_ring_valloc
+EXPORT_SYMBOL_GPL vmlinux 0x7bbad306 ata_sff_wait_ready
+EXPORT_SYMBOL_GPL vmlinux 0x7c0775dd usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0x7c1331ea wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x7c47b89d iounmap_atomic
+EXPORT_SYMBOL_GPL vmlinux 0x7c551f65 eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x7c9363eb __get_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x7c9682ef disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0x7c973390 virtqueue_enable_cb
+EXPORT_SYMBOL_GPL vmlinux 0x7ca3321c blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x7caddf16 class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x7cb52b9f ata_dummy_port_info
+EXPORT_SYMBOL_GPL vmlinux 0x7d454a74 usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0x7d4dac36 sdio_disable_func
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq
+EXPORT_SYMBOL_GPL vmlinux 0x7d85ac65 fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0x7d9cc3e6 sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values
+EXPORT_SYMBOL_GPL vmlinux 0x7db89910 unregister_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e34379a fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check
+EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x7f84ea23 pm_schedule_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x7f8ac0a7 xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0x7fb5f6e4 i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x7fdd4c7a inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x7fecf365 inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x802822f0 acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0x802adbb1 sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission
+EXPORT_SYMBOL_GPL vmlinux 0x804c528c __fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0x8059a040 uart_console_write
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x8090f463 tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x80cc706f spi_async
+EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x8159173a ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x815badac rtnl_kill_links
+EXPORT_SYMBOL_GPL vmlinux 0x81633c9f sysdev_class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x81799bf6 udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x817da381 srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x8184658b show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x824f5859 get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0x8262a883 ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x82977014 ata_host_activate
+EXPORT_SYMBOL_GPL vmlinux 0x82af1cda ata_pci_device_resume
+EXPORT_SYMBOL_GPL vmlinux 0x82b6608e ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x82cd19f3 register_xenstore_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write
+EXPORT_SYMBOL_GPL vmlinux 0x82e0bbba pci_hp_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x82e5e0db ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export
+EXPORT_SYMBOL_GPL vmlinux 0x83782674 wm8994_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x8416fe8e disk_map_sector_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x8435b808 fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x84405647 ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x84859be6 sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x8542f315 unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0x8545ae3a inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag
+EXPORT_SYMBOL_GPL vmlinux 0x85b1aa58 fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh
+EXPORT_SYMBOL_GPL vmlinux 0x85ce35b0 alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq
+EXPORT_SYMBOL_GPL vmlinux 0x85eb2715 cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x85ed7b0a kill_pid_info_as_uid
+EXPORT_SYMBOL_GPL vmlinux 0x860bc6a3 fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x861d352d regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0x861e2d8a usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0x865ad015 usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq
+EXPORT_SYMBOL_GPL vmlinux 0x867c684a setup_APIC_eilvt_ibs
+EXPORT_SYMBOL_GPL vmlinux 0x867e7a47 ata_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x86a3b45b crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x86de109d inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x87019897 spi_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x8708e0bf ata_sas_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error
+EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x87939482 dev_attr_unload_heads
+EXPORT_SYMBOL_GPL vmlinux 0x87ca6150 tty_find_polling_driver
+EXPORT_SYMBOL_GPL vmlinux 0x87cb2b25 spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0x87cf0a90 injectm
+EXPORT_SYMBOL_GPL vmlinux 0x87e3c4ab kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x880d7c67 sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0x881007e8 tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x88200f3c cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL vmlinux 0x88456eb6 device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x886736fc olpc_platform_info
+EXPORT_SYMBOL_GPL vmlinux 0x888dac38 device_add
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active
+EXPORT_SYMBOL_GPL vmlinux 0x88ae3902 __module_address
+EXPORT_SYMBOL_GPL vmlinux 0x88e7a350 crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x893e60c7 pm_request_idle
+EXPORT_SYMBOL_GPL vmlinux 0x894f54af pci_hp_create_module_link
+EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init
+EXPORT_SYMBOL_GPL vmlinux 0x8958ed8b dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0x895cdb50 regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x8994f7fd tty_mode_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x89ac4ccf xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0x89b1a75d spi_sync
+EXPORT_SYMBOL_GPL vmlinux 0x89be54e7 eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0x89c39214 class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x8a13e4de sdio_claim_host
+EXPORT_SYMBOL_GPL vmlinux 0x8a1dc5c5 blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x8a3cfb9e tracepoint_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn
+EXPORT_SYMBOL_GPL vmlinux 0x8aee0a88 pci_find_ext_capability
+EXPORT_SYMBOL_GPL vmlinux 0x8b18a4e4 usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0x8b1a9aab ip6_sk_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis
+EXPORT_SYMBOL_GPL vmlinux 0x8bcdf038 register_wide_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x8bfd1dd6 ata_sas_port_stop
+EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start
+EXPORT_SYMBOL_GPL vmlinux 0x8c09d3b5 ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x8c38074a unregister_xenstore_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x8c38bc65 power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x8c6f4560 device_create_vargs
+EXPORT_SYMBOL_GPL vmlinux 0x8c897f8c blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x8cb41c0a devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x8d6bb2d8 crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x8d73e479 devres_find
+EXPORT_SYMBOL_GPL vmlinux 0x8dc1350c class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0x8dcf92f0 bus_register
+EXPORT_SYMBOL_GPL vmlinux 0x8dede734 ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0x8dee283b ata_sff_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x8e60fe62 platform_device_register_data
+EXPORT_SYMBOL_GPL vmlinux 0x8e664e0e sata_link_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x8e6ccb2b dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0x8ea8e063 xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0x8f0cdee6 devres_remove
+EXPORT_SYMBOL_GPL vmlinux 0x8f0ddcc6 usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x8f2d3741 dm_rh_inc_pending
+EXPORT_SYMBOL_GPL vmlinux 0x8f6ac059 virtqueue_get_buf
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8fce54e4 ata_eh_qc_retry
+EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL vmlinux 0x9088adf9 ata_slave_link_init
+EXPORT_SYMBOL_GPL vmlinux 0x9095410d ata_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90bcd32b securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x90dd99db class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x90e07901 dev_attr_sw_activity
+EXPORT_SYMBOL_GPL vmlinux 0x9103ffb0 dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x915ce6d9 debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0x91c5051e pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0x91d11bd7 pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0x9219c194 blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x9227d5d2 bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0x92282bf1 usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0x9253841a ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x9286ccc1 usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x928ac5b2 inet6_destroy_sock
+EXPORT_SYMBOL_GPL vmlinux 0x92cab973 adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x92ffa5e0 cpufreq_cpu_get
+EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x93474721 usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0x9364cfce ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0x937cce18 sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x939f5cb1 device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL vmlinux 0x93af69ab __blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x93d3054e bus_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x93f0554a crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x940c188a ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x9428a9b9 virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL vmlinux 0x9466c1a6 ata_sff_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x94770b82 use_mm
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94b52812 usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources
+EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop
+EXPORT_SYMBOL_GPL vmlinux 0x95071709 ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL vmlinux 0x950e48a2 i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x95195589 sata_scr_read
+EXPORT_SYMBOL_GPL vmlinux 0x951f8da1 relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x954a26d2 ata_std_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x95620f08 register_virtio_driver
+EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x95769bdf device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0x95a24df8 ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x95f110b3 usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x95f328eb shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x95fe7163 skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x960cecfb ab8500_write
+EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x9653dcb5 pm_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x965d76ef preempt_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x96636cc3 __wake_up_sync_key
+EXPORT_SYMBOL_GPL vmlinux 0x96a60325 spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x96edb1d0 ata_sff_softreset
+EXPORT_SYMBOL_GPL vmlinux 0x975cbbe1 crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0x97704631 gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0x979d33b0 tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0x980ee705 usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick
+EXPORT_SYMBOL_GPL vmlinux 0x98541d59 disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x9869e765 tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x986d3421 regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0x987a438d queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0x98b51ef1 bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0x98cb0ba3 skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0x98f9c01e crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x9939c9b5 dm_region_hash_create
+EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on
+EXPORT_SYMBOL_GPL vmlinux 0x995d5308 tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x99872d8c input_ff_upload
+EXPORT_SYMBOL_GPL vmlinux 0x99f24de8 dm_register_path_selector
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a174623 ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x9a2f7932 crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x9a4ffa11 ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x9a760958 wm8350_device_exit
+EXPORT_SYMBOL_GPL vmlinux 0x9a9dcf49 xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0x9aaa5904 __lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0x9ac001f1 __inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x9ad598ea crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x9b09447a kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x9b28de10 ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9babbf66 register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x9baf64e3 rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x9bb551ff skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x9bd1fb6c input_ff_erase
+EXPORT_SYMBOL_GPL vmlinux 0x9bd3b05c ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0x9bdf47b6 ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x9c2ed62d leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x9c3f6c34 posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine
+EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch
+EXPORT_SYMBOL_GPL vmlinux 0x9d2b6a58 hpet_register_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0x9d5c4dad ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x9de655fa hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x9de74e58 invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0x9e7b878b dm_rh_start_recovery
+EXPORT_SYMBOL_GPL vmlinux 0x9e7dbfaf inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x9e91ace8 do_add_mount
+EXPORT_SYMBOL_GPL vmlinux 0x9e9f9505 dm_device_name
+EXPORT_SYMBOL_GPL vmlinux 0x9eb56036 uart_set_options
+EXPORT_SYMBOL_GPL vmlinux 0x9eb9d814 ata_sff_check_status
+EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread
+EXPORT_SYMBOL_GPL vmlinux 0x9eec0654 css_depth
+EXPORT_SYMBOL_GPL vmlinux 0x9f3ff434 ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain
+EXPORT_SYMBOL_GPL vmlinux 0x9f463dca inet6_csk_xmit
+EXPORT_SYMBOL_GPL vmlinux 0x9f55c4aa crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x9f67ea4d inotify_inode_is_dead
+EXPORT_SYMBOL_GPL vmlinux 0x9f8ad275 pciserial_remove_ports
+EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc
+EXPORT_SYMBOL_GPL vmlinux 0x9fa38c20 generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0x9fbf43e9 class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint
+EXPORT_SYMBOL_GPL vmlinux 0xa03d1039 ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0xa08c58bd ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0xa0ac1fa7 get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0xa0c31c08 mmu_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg
+EXPORT_SYMBOL_GPL vmlinux 0xa0db1d8d usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xa121be8a driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0xa125a10e fl6_sock_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa144d163 synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0xa1635762 dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0xa174bbc6 crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xa1d08e02 bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa208c7d7 ata_sas_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0xa21c68dc klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0xa2314722 wm8350_block_write
+EXPORT_SYMBOL_GPL vmlinux 0xa2984656 user_read
+EXPORT_SYMBOL_GPL vmlinux 0xa2cdd24a ata_do_dev_read_id
+EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4
+EXPORT_SYMBOL_GPL vmlinux 0xa30edaea rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa31323a3 transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0xa33a44c1 crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm
+EXPORT_SYMBOL_GPL vmlinux 0xa3670ee3 xenbus_dev_fatal
+EXPORT_SYMBOL_GPL vmlinux 0xa3d5e822 dev_attr_em_message
+EXPORT_SYMBOL_GPL vmlinux 0xa3e03efb crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa413a3f3 devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xa427f0a0 cpci_hp_unregister_bus
+EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit
+EXPORT_SYMBOL_GPL vmlinux 0xa470a873 crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx
+EXPORT_SYMBOL_GPL vmlinux 0xa4863eb7 inotify_remove_watch_locked
+EXPORT_SYMBOL_GPL vmlinux 0xa4ab4bd7 ip6_dst_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa4debad0 devres_add
+EXPORT_SYMBOL_GPL vmlinux 0xa4e182f4 pci_disable_rom
+EXPORT_SYMBOL_GPL vmlinux 0xa4ed1e9d platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa505fda0 sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0xa50f508f ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0xa5193493 usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0xa548b686 __scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0xa55b726d ata_std_bios_param
+EXPORT_SYMBOL_GPL vmlinux 0xa591ba92 crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes
+EXPORT_SYMBOL_GPL vmlinux 0xa5c9180b free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa610bf28 debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa703fe2b pci_bus_resource_n
+EXPORT_SYMBOL_GPL vmlinux 0xa7072353 dm_get_rq_mapinfo
+EXPORT_SYMBOL_GPL vmlinux 0xa734d9aa tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0xa742fa26 input_class
+EXPORT_SYMBOL_GPL vmlinux 0xa7a9b788 sdio_enable_func
+EXPORT_SYMBOL_GPL vmlinux 0xa7d62019 hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xa7f04890 acpi_pci_check_ejectable
+EXPORT_SYMBOL_GPL vmlinux 0xa7f4d5fc driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xa8425b21 regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll
+EXPORT_SYMBOL_GPL vmlinux 0xa864b81d blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0xa86b329e spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0xa87f4716 device_attach
+EXPORT_SYMBOL_GPL vmlinux 0xa897a21a pci_test_config_bits
+EXPORT_SYMBOL_GPL vmlinux 0xa8a4d313 usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0xa8f0858d ipv6_find_tlv
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa8fe5a91 sata_set_spd
+EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit
+EXPORT_SYMBOL_GPL vmlinux 0xa94469aa __xenbus_register_frontend
+EXPORT_SYMBOL_GPL vmlinux 0xa94719f5 perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0xa94d2dc3 crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0xa95a4634 crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0xa95a8cdc led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0xa98b3127 devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xa9a970d6 sata_link_resume
+EXPORT_SYMBOL_GPL vmlinux 0xa9b7afd8 wmi_set_block
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xaa121800 tasklet_hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0xaa508521 inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0xaa5afadf ring_buffer_resize
+EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock
+EXPORT_SYMBOL_GPL vmlinux 0xaad98cec bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback
+EXPORT_SYMBOL_GPL vmlinux 0xab01d91a apei_exec_run
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab7f5f8a xenbus_watch_path
+EXPORT_SYMBOL_GPL vmlinux 0xab9e6d4c inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0xabab0ba4 ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL vmlinux 0xabc18ade ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xabdedac0 blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xac2e171a fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0xac5c3ce7 usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL vmlinux 0xac79b62a acpi_get_pci_dev
+EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq
+EXPORT_SYMBOL_GPL vmlinux 0xacc19485 ibft_addr
+EXPORT_SYMBOL_GPL vmlinux 0xacca7068 eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0xacdb83da tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xad096363 xenbus_printf
+EXPORT_SYMBOL_GPL vmlinux 0xad110b24 aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xad29109b pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad6c5f9c page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module
+EXPORT_SYMBOL_GPL vmlinux 0xadd899ff ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0xadf33390 crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae25b315 sdio_writesb
+EXPORT_SYMBOL_GPL vmlinux 0xae429e8d pci_scan_child_bus
+EXPORT_SYMBOL_GPL vmlinux 0xae601411 inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0xae845609 edac_mce_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xaeb1bfdc crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0xaebdb22d filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0xaeda2683 preempt_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xaf51a717 trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0xaf567394 ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0xaf708a47 ata_sff_exec_command
+EXPORT_SYMBOL_GPL vmlinux 0xaf97b5d2 xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0xaf98fc75 kmap_atomic_pfn
+EXPORT_SYMBOL_GPL vmlinux 0xafa12d11 security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0xafc2eafe ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0xafe77d10 ata_sff_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xb0018fb2 sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL vmlinux 0xb03410cb spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xb0450bdf ata_host_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xb05e90fa hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work
+EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send
+EXPORT_SYMBOL_GPL vmlinux 0xb11dec25 generic_detach_inode
+EXPORT_SYMBOL_GPL vmlinux 0xb127b095 netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0xb13a358f class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0xb156d325 ata_bmdma_stop
+EXPORT_SYMBOL_GPL vmlinux 0xb17c2f6f spi_register_master
+EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xb193677b inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL vmlinux 0xb19872f5 md_do_sync
+EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb1e4d852 rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xb2001031 regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0xb224911b debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0xb22fc247 ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xb262c500 ata_dev_next
+EXPORT_SYMBOL_GPL vmlinux 0xb27d3194 srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xb27f04b2 class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb2a980c8 sdio_writew
+EXPORT_SYMBOL_GPL vmlinux 0xb2ac02c0 usb_autopm_put_interface
+EXPORT_SYMBOL_GPL vmlinux 0xb30c5091 bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xb30c6d5e hrtimer_start
+EXPORT_SYMBOL_GPL vmlinux 0xb31b1010 dm_rh_region_context
+EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init
+EXPORT_SYMBOL_GPL vmlinux 0xb35291a1 generic_fh_to_parent
+EXPORT_SYMBOL_GPL vmlinux 0xb3d43b91 inotify_rm_wd
+EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write
+EXPORT_SYMBOL_GPL vmlinux 0xb3e08590 blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0xb3e50c5c pci_bus_max_busnr
+EXPORT_SYMBOL_GPL vmlinux 0xb3ff3c1d ata_link_abort
+EXPORT_SYMBOL_GPL vmlinux 0xb4305c9f usb_driver_release_interface
+EXPORT_SYMBOL_GPL vmlinux 0xb4353cd9 usb_ep0_reinit
+EXPORT_SYMBOL_GPL vmlinux 0xb4489623 blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0xb467b5e2 find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xb468069c page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected
+EXPORT_SYMBOL_GPL vmlinux 0xb4ef8f1a sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state
+EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait
+EXPORT_SYMBOL_GPL vmlinux 0xb549dad0 simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0xb553c3df adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0xb58852ee led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xb59f5d28 pm_runtime_allow
+EXPORT_SYMBOL_GPL vmlinux 0xb5a6ebe2 wmi_remove_notify_handler
+EXPORT_SYMBOL_GPL vmlinux 0xb5aa97fa cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0xb5d8913d register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb5f5351e da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0xb60552a6 sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0xb60f2187 skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0xb611d066 debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec
+EXPORT_SYMBOL_GPL vmlinux 0xb651c944 xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0xb656bc46 blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0xb657bab8 device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb65cd878 ata_dev_disable
+EXPORT_SYMBOL_GPL vmlinux 0xb679dc5a crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xb6a90b29 sata_link_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string
+EXPORT_SYMBOL_GPL vmlinux 0xb6bc49a9 __supported_pte_mask
+EXPORT_SYMBOL_GPL vmlinux 0xb6bfde21 put_driver
+EXPORT_SYMBOL_GPL vmlinux 0xb6c8c3aa sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0xb6d2fce9 sata_std_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse
+EXPORT_SYMBOL_GPL vmlinux 0xb7263249 platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb7a7bc51 sis_info133_for_sata
+EXPORT_SYMBOL_GPL vmlinux 0xb7b53808 scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xb7c88398 usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time
+EXPORT_SYMBOL_GPL vmlinux 0xb7db85e3 crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0xb7e2eb91 mce_cpu_specific_poll
+EXPORT_SYMBOL_GPL vmlinux 0xb7f44762 blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xb8099e40 get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xb86386ca sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0xb8a78976 register_user_hw_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xb8bda440 sysfs_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xb8eb9b35 sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0xb8f4913e ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0xb90f7b43 print_context_stack
+EXPORT_SYMBOL_GPL vmlinux 0xb92ce004 kick_process
+EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read
+EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xb9efa853 fuse_direct_io
+EXPORT_SYMBOL_GPL vmlinux 0xba0882b5 klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0xba1796bc fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0xbac00ed2 flush_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks
+EXPORT_SYMBOL_GPL vmlinux 0xbb2c3c9d dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL vmlinux 0xbb58b814 iomap_free
+EXPORT_SYMBOL_GPL vmlinux 0xbb64c55e pm_generic_thaw
+EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info
+EXPORT_SYMBOL_GPL vmlinux 0xbbe5ca4f mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0xbbef7e72 usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xbc0f92b8 debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0xbc44b47a user_update
+EXPORT_SYMBOL_GPL vmlinux 0xbc803415 usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0xbcbdecab devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0xbce836dd cpuidle_get_driver
+EXPORT_SYMBOL_GPL vmlinux 0xbd39674e sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xbd784834 rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0xbd87b9ea tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0xbd97ca61 fuse_do_open
+EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2b67b aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0xbdd5f10f apei_hest_parse
+EXPORT_SYMBOL_GPL vmlinux 0xbddd1e71 inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime
+EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xbe3295e6 sdio_writeb
+EXPORT_SYMBOL_GPL vmlinux 0xbe7c7193 atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xbec5c5d6 crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0xbf1de88f atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xbf45ac97 ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL vmlinux 0xbf569d71 driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xbf7f674c inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xbf9a6d0d ata_host_start
+EXPORT_SYMBOL_GPL vmlinux 0xbfd94bb0 bind_virq_to_irqhandler
+EXPORT_SYMBOL_GPL vmlinux 0xbffc0aa2 ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0xbffc7a02 tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xbfff797c crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0xc00c7e90 device_del
+EXPORT_SYMBOL_GPL vmlinux 0xc01b54fd queue_work
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf399b scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time
+EXPORT_SYMBOL_GPL vmlinux 0xc0c3bc45 cpufreq_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc0e40171 part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0xc0e440e2 tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xc0e89c59 raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar
+EXPORT_SYMBOL_GPL vmlinux 0xc135c69f pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0xc164e433 __inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc17b9c9a dm_put
+EXPORT_SYMBOL_GPL vmlinux 0xc1b5f4b8 ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xc1d75365 ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0xc2060a9b __clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0xc21a03bb ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL vmlinux 0xc22076c0 usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc246ffcf rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0xc2c86cc7 init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xc2de27ca hest_disable
+EXPORT_SYMBOL_GPL vmlinux 0xc2de6ff2 cpuidle_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc2eae5f9 dma_release_channel
+EXPORT_SYMBOL_GPL vmlinux 0xc2f2714f apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0xc33e6ab1 debugfs_create_u64
+EXPORT_SYMBOL_GPL vmlinux 0xc3447640 raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc36acb88 blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL vmlinux 0xc36e07ac ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xc39747d8 hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long
+EXPORT_SYMBOL_GPL vmlinux 0xc42e6aa9 rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xc42f2f94 xenbus_read_driver_state
+EXPORT_SYMBOL_GPL vmlinux 0xc43838ed vring_del_virtqueue
+EXPORT_SYMBOL_GPL vmlinux 0xc448ab90 xenbus_map_ring
+EXPORT_SYMBOL_GPL vmlinux 0xc474c51c usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string
+EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xc57d8546 sdio_writel
+EXPORT_SYMBOL_GPL vmlinux 0xc591333d regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0xc5943371 crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0xc5ac9a31 dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xc5c93552 pci_find_next_capability
+EXPORT_SYMBOL_GPL vmlinux 0xc5cff204 dm_rh_get_state
+EXPORT_SYMBOL_GPL vmlinux 0xc5e3dddf wmi_get_event_data
+EXPORT_SYMBOL_GPL vmlinux 0xc60d077e vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc61505f1 usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0xc6baa323 acpi_smbus_read
+EXPORT_SYMBOL_GPL vmlinux 0xc6f21ce3 dm_dispatch_request
+EXPORT_SYMBOL_GPL vmlinux 0xc79f671e sata_scr_write_flush
+EXPORT_SYMBOL_GPL vmlinux 0xc7b51207 xenbus_unmap_ring_vfree
+EXPORT_SYMBOL_GPL vmlinux 0xc7bb1254 wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xc7bdf7c6 ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xc829c83f sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0xc8493964 device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc86dcfbe x86_mce_decoder_chain
+EXPORT_SYMBOL_GPL vmlinux 0xc871eb1a cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event
+EXPORT_SYMBOL_GPL vmlinux 0xc883b61f nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0xc8b1990f led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0xc8dfa346 i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource
+EXPORT_SYMBOL_GPL vmlinux 0xc91e0944 sata_pmp_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xc922a8e4 scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0xc927b599 sdio_release_host
+EXPORT_SYMBOL_GPL vmlinux 0xc93bd4c7 kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xc9547c54 inotify_add_watch
+EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist
+EXPORT_SYMBOL_GPL vmlinux 0xc95d7e87 device_rename
+EXPORT_SYMBOL_GPL vmlinux 0xc9d4d6d1 wmi_has_guid
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xc9f8c366 ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0xca098221 ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xca39fedf ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0xca4527c8 acpi_pci_find_root
+EXPORT_SYMBOL_GPL vmlinux 0xca6bead1 cpci_hp_register_controller
+EXPORT_SYMBOL_GPL vmlinux 0xca7d401d ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end
+EXPORT_SYMBOL_GPL vmlinux 0xca85bb37 ata_sff_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcadabe4b usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0xcadaefef ata_acpi_stm
+EXPORT_SYMBOL_GPL vmlinux 0xcb22de38 fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0xcb4047b3 pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xcb68db67 vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0xcb8959c5 sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcc144b98 class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc62166a usb_get_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xcc6ff3be class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xcc7ebced usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0xcca0edc9 security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL vmlinux 0xcd3dee28 unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0xcda1e8a8 rt_mutex_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xcdc6e399 inode_add_to_lists
+EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xcdd2b4cd bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0xce111a28 debugfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0xce36a5b6 __atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0xce7c20be hypervisor_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xcea4b0c7 devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0xcf471818 sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0xcf7a962e cn_add_callback
+EXPORT_SYMBOL_GPL vmlinux 0xcfad843a sysdev_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcfe54821 usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg
+EXPORT_SYMBOL_GPL vmlinux 0xd028e247 usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd0331186 pm_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL vmlinux 0xd08ce534 wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xd0a04cd3 sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0xd0ba622a usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xd0be7365 usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd0c70652 __i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0xd0c861df __ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0xd0da1eb0 pci_get_hp_params
+EXPORT_SYMBOL_GPL vmlinux 0xd0eee566 usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xd11160ce ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0xd12ac59b olpc_ec_cmd
+EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd1b03688 tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xd1d62f40 tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0xd1e9fbbb pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL vmlinux 0xd202c39c register_virtio_device
+EXPORT_SYMBOL_GPL vmlinux 0xd21cf8b3 ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd229c869 tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0xd25a699a adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd2945d3e power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop
+EXPORT_SYMBOL_GPL vmlinux 0xd2caf8d0 pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0xd2f0946b ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0xd3880d47 gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd389db53 wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xd3ac3f18 sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0xd3c52c88 ata_bmdma_start
+EXPORT_SYMBOL_GPL vmlinux 0xd43a7bef __set_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0xd4409f94 set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL vmlinux 0xd49af42e br_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0xd4bec9b6 n_tty_inherit_ops
+EXPORT_SYMBOL_GPL vmlinux 0xd4cae4ca mce_chrdev_ops
+EXPORT_SYMBOL_GPL vmlinux 0xd53c03b5 fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0xd54005c0 wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xd544e902 pgprot_writecombine
+EXPORT_SYMBOL_GPL vmlinux 0xd54ee17a usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xd55a0376 inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xd57f3254 handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0xd5b07546 dm_rh_get_region_size
+EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0xd5d7ec34 da903x_write
+EXPORT_SYMBOL_GPL vmlinux 0xd6313f55 raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0xd6369bee skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0xd68326ff ata_sff_irq_on
+EXPORT_SYMBOL_GPL vmlinux 0xd6af64c4 pci_hp_remove_module_link
+EXPORT_SYMBOL_GPL vmlinux 0xd6cc0ff4 ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xd6d7681a scsi_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id
+EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout
+EXPORT_SYMBOL_GPL vmlinux 0xd735a607 pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd774f6b1 smp_call_function_any
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd7822ede usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor
+EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0xd7df36db crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xd8003030 dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0xd81a7b06 platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0xd875660c user_describe
+EXPORT_SYMBOL_GPL vmlinux 0xd88b6c80 usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0xd8bd05bd regulator_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xd8d44203 bd_claim_by_disk
+EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0xd9242864 pci_configure_slot
+EXPORT_SYMBOL_GPL vmlinux 0xd944478c power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read
+EXPORT_SYMBOL_GPL vmlinux 0xd9fb0dd0 inet_diag_register
+EXPORT_SYMBOL_GPL vmlinux 0xd9ff79aa ata_bmdma_setup
+EXPORT_SYMBOL_GPL vmlinux 0xda0eb71d crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL vmlinux 0xda383a72 unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xda3cabf5 cpci_hp_unregister_controller
+EXPORT_SYMBOL_GPL vmlinux 0xda513e7e clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0xda526a81 cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0xdac8e5c2 __blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option
+EXPORT_SYMBOL_GPL vmlinux 0xdafc8c13 css_id
+EXPORT_SYMBOL_GPL vmlinux 0xdb01dcb6 noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xdb21e6af virtqueue_add_buf_gfp
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdb4c3d91 single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0xdb66e380 user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0xdba1ce66 transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xdbb25f5e acpi_processor_ffh_cstate_probe
+EXPORT_SYMBOL_GPL vmlinux 0xdc6c6dc4 __pm_runtime_put
+EXPORT_SYMBOL_GPL vmlinux 0xdc714560 register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xdc9c7e89 __srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0xdcdd8941 isa_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xdd513dc4 pm_generic_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0xdd6e8643 sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL vmlinux 0xdd7a4fc4 usb_match_id
+EXPORT_SYMBOL_GPL vmlinux 0xdde0eed2 unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xdde67d60 dm_rh_flush
+EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain
+EXPORT_SYMBOL_GPL vmlinux 0xde49e9f1 klist_init
+EXPORT_SYMBOL_GPL vmlinux 0xde6d9cc4 led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0xdea89749 pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0xdec7cd83 driver_find
+EXPORT_SYMBOL_GPL vmlinux 0xdedc34bc dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0xdf394748 platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0xdf5fcf18 inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0xdf702204 fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xdf78bbd0 regulator_get_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xdfc27e6e inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0xdfeaa95a iomap_atomic_prot_pfn
+EXPORT_SYMBOL_GPL vmlinux 0xdfeb77ea relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name
+EXPORT_SYMBOL_GPL vmlinux 0xe00d50cc crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0xe04d288c usb_sg_wait
+EXPORT_SYMBOL_GPL vmlinux 0xe0565755 platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xe07e1ff0 crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xe08d018d ipv6_dup_options
+EXPORT_SYMBOL_GPL vmlinux 0xe094e0d5 ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xe110d9fa crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xe12b00fc sdio_writeb_readb
+EXPORT_SYMBOL_GPL vmlinux 0xe12bfe12 blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xe145a3f3 sdio_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xe1568d9c erst_read_next
+EXPORT_SYMBOL_GPL vmlinux 0xe15f6dfd inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0xe1cf7a58 pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xe2426710 wmi_evaluate_method
+EXPORT_SYMBOL_GPL vmlinux 0xe280a128 __inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe2c444c7 ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL vmlinux 0xe2f3e0d5 hvc_poll
+EXPORT_SYMBOL_GPL vmlinux 0xe2f50824 screen_glyph
+EXPORT_SYMBOL_GPL vmlinux 0xe324093c br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0xe32ed39e adp5520_read
+EXPORT_SYMBOL_GPL vmlinux 0xe3983a16 ata_sff_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0xe3eae151 tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0xe40d8606 ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count
+EXPORT_SYMBOL_GPL vmlinux 0xe4695d7b perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0xe4885fb1 regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0xe49cf982 trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register
+EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL vmlinux 0xe4e202af blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xe513afc0 cache_k8_northbridges
+EXPORT_SYMBOL_GPL vmlinux 0xe5cda5a2 ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL vmlinux 0xe5f03524 bus_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xe6018207 sdio_claim_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe6164df2 sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport
+EXPORT_SYMBOL_GPL vmlinux 0xe63171d4 mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition
+EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe6739b7f cpuidle_disable_device
+EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe75cf02d blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xe763c97a platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0xe76b8402 skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0xe76d144e dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffd4f1 __pm_runtime_set_status
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr
+EXPORT_SYMBOL_GPL vmlinux 0xe8144b56 tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe88f2cef debugfs_create_u32
+EXPORT_SYMBOL_GPL vmlinux 0xe8a746d8 vring_transport_features
+EXPORT_SYMBOL_GPL vmlinux 0xe91fb293 ring_buffer_record_enable
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe94a9db6 inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe967d24a acpi_smbus_write
+EXPORT_SYMBOL_GPL vmlinux 0xe96b03b0 devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0xe9eb5f76 print_context_stack_bp
+EXPORT_SYMBOL_GPL vmlinux 0xe9f1ddf3 eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0xe9f49c75 tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea118e7e usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea1fd735 crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xea2d3656 da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xea60e7e6 wm8350_gpio_config
+EXPORT_SYMBOL_GPL vmlinux 0xea7a9f14 ata_port_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0xeaa3f6f2 sdio_release_irq
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeaf833d5 get_device
+EXPORT_SYMBOL_GPL vmlinux 0xeb32d80d rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xeb51e018 mmput
+EXPORT_SYMBOL_GPL vmlinux 0xeb83a113 regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xebc666b7 get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0xebd61475 seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0xebe9856d ata_dummy_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xebeeae76 debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del
+EXPORT_SYMBOL_GPL vmlinux 0xec3f7dba unregister_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0xec416572 simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0xec4b5501 spi_write_then_read
+EXPORT_SYMBOL_GPL vmlinux 0xece8602c bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0xed80b9ac usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeda694de register_posix_clock
+EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access
+EXPORT_SYMBOL_GPL vmlinux 0xede38c84 usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check
+EXPORT_SYMBOL_GPL vmlinux 0xee5c4b76 platform_device_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request
+EXPORT_SYMBOL_GPL vmlinux 0xef20fdb6 pm_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xef3c24ff regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0xef3c6674 sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xef6acff6 ata_host_resume
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xefa3432c input_ff_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xefce2a4f ata_do_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xefe21106 snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0xefef0909 register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0xf009f975 dm_rh_delay
+EXPORT_SYMBOL_GPL vmlinux 0xf02ae5fb usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable
+EXPORT_SYMBOL_GPL vmlinux 0xf06c1cc7 unregister_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0xf135812d __create_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0xf1562a6d xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0xf175aa34 get_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf19b0eef led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0xf1b4e105 ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0xf1b69a66 tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0xf1b92bc7 perf_arch_fetch_caller_regs
+EXPORT_SYMBOL_GPL vmlinux 0xf1f69beb ab8500_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xf21970ac sfi_mrtc_array
+EXPORT_SYMBOL_GPL vmlinux 0xf23a5da5 crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0xf25efd7e locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0xf267705d vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0xf27e8de8 usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0xf2bb75ee class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options
+EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0xf3163639 usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0xf345f67e regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf34d62d2 find_module
+EXPORT_SYMBOL_GPL vmlinux 0xf392cca0 attribute_container_register
+EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf3bfded6 dm_rh_dirty_log
+EXPORT_SYMBOL_GPL vmlinux 0xf3c1fa25 ata_noop_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0xf3c7a300 cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0xf3fdf65f register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0xf41bfd95 usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xf44db1b2 virtqueue_disable_cb
+EXPORT_SYMBOL_GPL vmlinux 0xf48c6f67 crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf5335d8f bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xf536e9cb ata_scsi_simulate
+EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf559d2fa free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0xf5685537 ata_sff_dma_pause
+EXPORT_SYMBOL_GPL vmlinux 0xf5778e2a debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0xf57dc90d __css_put
+EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf5a69c51 platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf5b47378 platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0xf5bbd2ed tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0xf6764492 erst_get_next_record_id
+EXPORT_SYMBOL_GPL vmlinux 0xf69b3650 usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL vmlinux 0xf6b6863f crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0xf6d24ca7 vma_kernel_pagesize
+EXPORT_SYMBOL_GPL vmlinux 0xf6e41369 inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather
+EXPORT_SYMBOL_GPL vmlinux 0xf70274d6 get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0xf717c2de usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xf71fd3d9 blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0xf7843b28 dev_attr_em_message_type
+EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error
+EXPORT_SYMBOL_GPL vmlinux 0xf7ef4dde usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL vmlinux 0xf8079691 put_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0xf82414dc vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0xf82546f4 usb_bus_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0xf849115d file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf890c771 pci_block_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0xf8a75444 put_pid
+EXPORT_SYMBOL_GPL vmlinux 0xf8df62e5 ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit
+EXPORT_SYMBOL_GPL vmlinux 0xf906802b rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf92f3346 cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf93de90e ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xf95eaa0e led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0xf960ec6a relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match
+EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw
+EXPORT_SYMBOL_GPL vmlinux 0xf97a8ac8 sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xf9811602 adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xf9902dd8 usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xf9db9cfa dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0xf9e9ead2 hvc_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0xf9eeee5a usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register
+EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0xfa25b5f2 rtc_class_close
+EXPORT_SYMBOL_GPL vmlinux 0xfa36f3b9 bsg_unregister_queue
+EXPORT_SYMBOL_GPL vmlinux 0xfaa0bd2c pm_runtime_barrier
+EXPORT_SYMBOL_GPL vmlinux 0xface6a83 ata_eh_thaw_port
+EXPORT_SYMBOL_GPL vmlinux 0xfaf33877 __inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0xfaf8f2a3 ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xfb203761 fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0xfb2a3293 math_state_restore
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb91794a hvc_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfc09fb3b bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0xfc1a636c ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0xfc1ba8cc gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0xfc41a200 driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xfc4aed0d wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0xfc75374f regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xfc7b6098 klist_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xfc8ffed0 ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value
+EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref
+EXPORT_SYMBOL_GPL vmlinux 0xfd6c23dc scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable
+EXPORT_SYMBOL_GPL vmlinux 0xfd72832d ata_sas_port_init
+EXPORT_SYMBOL_GPL vmlinux 0xfdb60380 skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfdf1c1f6 device_move
+EXPORT_SYMBOL_GPL vmlinux 0xfe562d58 xenbus_unmap_ring
+EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine
+EXPORT_SYMBOL_GPL vmlinux 0xfe7d9fd6 device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xff084f59 srcu_init_notifier_head
+EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffce32e3 sdio_align_size
+EXPORT_SYMBOL_GPL vmlinux 0xffebba95 ata_std_qc_defer
diff --git a/debian.master/abi/2.6.35-2.3/i386/virtual.modules b/debian.master/abi/2.6.35-2.3/i386/virtual.modules
new file mode 100644
index 00000000000..2c67d68d05b
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/i386/virtual.modules
@@ -0,0 +1,495 @@
+8021q
+8139cp
+8139too
+8390
+acpi_pad
+acpiphp
+act_gact
+act_ipt
+act_mirred
+act_nat
+act_pedit
+act_police
+act_simple
+act_skbedit
+aes_generic
+aes-i586
+af_802154
+af_key
+af-rxrpc
+ah4
+ah6
+ahci
+ansi_cprng
+anubis
+apm
+appletalk
+arc4
+arptable_filter
+arp_tables
+arpt_mangle
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+atm
+authenc
+ax25
+binfmt_misc
+blowfish
+bonding
+br2684
+bridge
+bsd_comp
+btrfs
+BusLogic
+camellia
+can
+can-bcm
+can-raw
+cast5
+cast6
+ccm
+cfg80211
+cifs
+cirrusfb
+clip
+cls_basic
+cls_flow
+cls_fw
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+configfs
+cpuid
+cpu-notifier-error-inject
+crc32c
+crc32c-intel
+crc7
+crc-ccitt
+crc-itu-t
+cryptd
+cryptoloop
+crypto_null
+ctr
+cts
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dccp_probe
+decnet
+deflate
+des_generic
+dm-crypt
+dm-queue-length
+dm-service-time
+dm-zero
+dn_rtmsg
+dummy
+e1000
+e1000e
+ebt_802_3
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_ulog
+ebt_vlan
+econet
+einj
+em_cmp
+em_meta
+em_nbyte
+em_text
+em_u32
+e_powersaver
+eql
+esp4
+esp6
+evbug
+evtchn
+exportfs
+fat
+faulty
+fb_sys_fops
+fcrypt
+floppy
+gameport
+garp
+gcm
+gf128mul
+ghash-generic
+ghes
+hangcheck-timer
+hed
+ieee802154
+ifb
+ip6_queue
+ip6table_filter
+ip6table_mangle
+ip6table_raw
+ip6_tables
+ip6table_security
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_LOG
+ip6t_mh
+ip6t_REJECT
+ip6t_rt
+ip6_tunnel
+ipcomp
+ipcomp6
+ipddp
+ip_gre
+ipip
+ip_queue
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+ip_tables
+iptable_security
+ipt_addrtype
+ipt_ah
+ipt_CLUSTERIP
+ipt_ecn
+ipt_ECN
+ipt_LOG
+ipt_MASQUERADE
+ipt_NETMAP
+ipt_REDIRECT
+ipt_REJECT
+ipt_ULOG
+ip_vs
+ip_vs_dh
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_nq
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ipx
+ircomm
+ircomm-tty
+irda
+irlan
+irnet
+iscsi_tcp
+iscsi_trgt
+isofs
+joydev
+khazad
+lapb
+lec
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libcrc32c
+libiscsi
+libiscsi_tcp
+libsas
+linear
+llc2
+lp
+lrw
+lzo
+lzo_compress
+mac80211
+mce-inject
+mce-xeon75xx
+md4
+michael_mic
+microcode
+mii
+mpoa
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+msdos
+msr
+multipath
+nbd
+ne2k-pci
+netconsole
+netrom
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_ipv4
+nf_conntrack_ipv6
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_proto_dccp
+nf_conntrack_proto_gre
+nf_conntrack_proto_sctp
+nf_conntrack_proto_udplite
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_proto_dccp
+nf_nat_proto_gre
+nf_nat_proto_sctp
+nf_nat_proto_udplite
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nfnetlink
+nfnetlink_log
+nfnetlink_queue
+nf_tproxy_core
+nvram
+oprofile
+output
+p4-clockmod
+p8023
+parport
+parport_pc
+pcbc
+pcc-cpufreq
+pcnet32
+pcrypt
+phonet
+pktgen
+pn_pep
+power_meter
+ppdev
+ppp_async
+ppp_deflate
+ppp_mppe
+pppoatm
+pppoe
+pppox
+ppp_synctty
+psmouse
+qla1280
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid6test
+raid_class
+raw
+reed_solomon
+rmd128
+rmd160
+rmd256
+rmd320
+rose
+rxkad
+salsa20_generic
+salsa20-i586
+sch_atm
+sch_cbq
+sch_drr
+sch_dsmark
+sch_gred
+sch_hfsc
+sch_htb
+sch_ingress
+sch_multiq
+sch_netem
+sch_prio
+sch_red
+sch_sfq
+sch_tbf
+sch_teql
+scsi_tgt
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_wait_scan
+sctp
+sctp_probe
+scx200
+seed
+seqiv
+serio_raw
+serpent
+serport
+sha1_generic
+sha256_generic
+sha512_generic
+sit
+slip
+smbfs
+snd
+snd-ens1370
+snd-hrtimer
+snd-hwdep
+snd-page-alloc
+snd-pcm
+snd-pcsp
+snd-rawmidi
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-timer
+softdog
+soundcore
+squashfs
+stp
+syscopyarea
+sysfillrect
+sysimgblt
+tcp_bic
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_probe
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcrypt
+tea
+tgr192
+tipc
+ts_bm
+ts_fsm
+ts_kmp
+tulip
+tunnel4
+tunnel6
+twofish
+twofish_common
+twofish-i586
+ufs
+uinput
+usb-storage
+usbtouchscreen
+vesafb
+veth
+vfat
+vga16fb
+vgastate
+video
+virtio_balloon
+vmac
+vmw_pvscsi
+vmxnet3
+wanrouter
+wp512
+x25
+xcbc
+xen-blkfront
+xen-fbfront
+xenfs
+xen-kbdfront
+xen-netfront
+xfrm4_mode_beet
+xfrm4_mode_transport
+xfrm4_mode_tunnel
+xfrm4_tunnel
+xfrm6_mode_beet
+xfrm6_mode_ro
+xfrm6_mode_transport
+xfrm6_mode_tunnel
+xfrm6_tunnel
+xfrm_ipcomp
+xfrm_user
+xfs
+xor
+x_tables
+xt_CLASSIFY
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlimit
+xt_connmark
+xt_CONNSECMARK
+xt_conntrack
+xt_CT
+xt_dccp
+xt_dscp
+xt_DSCP
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_HL
+xt_iprange
+xt_LED
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_NFLOG
+xt_NFQUEUE
+xt_NOTRACK
+xt_osf
+xt_owner
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_rateest
+xt_RATEEST
+xt_realm
+xt_recent
+xts
+xt_sctp
+xt_SECMARK
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_TCPMSS
+xt_tcpudp
+xt_TEE
+xt_time
+xt_TPROXY
+xt_TRACE
+xt_u32
+zlib
+zlib_deflate
diff --git a/debian.master/abi/2.6.35-2.3/ia64/ia64 b/debian.master/abi/2.6.35-2.3/ia64/ia64
new file mode 100644
index 00000000000..7e593afeeb8
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/ia64/ia64
@@ -0,0 +1,9877 @@
+EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble
+EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle
+EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k
+EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks
+EXPORT_SYMBOL drivers/acpi/button 0x48193639 acpi_lid_open
+EXPORT_SYMBOL drivers/acpi/button 0x7b56bd05 acpi_lid_notifier_register
+EXPORT_SYMBOL drivers/acpi/button 0xaaf45875 acpi_lid_notifier_unregister
+EXPORT_SYMBOL drivers/acpi/processor 0x0c06582d acpi_processor_unregister_performance
+EXPORT_SYMBOL drivers/acpi/processor 0x1f143cea acpi_processor_notify_smm
+EXPORT_SYMBOL drivers/acpi/processor 0x73933678 processors
+EXPORT_SYMBOL drivers/acpi/processor 0x96b1bbf9 acpi_processor_preregister_performance
+EXPORT_SYMBOL drivers/acpi/processor 0xa6ba23bc acpi_processor_register_performance
+EXPORT_SYMBOL drivers/acpi/processor 0xbc2031de acpi_processor_get_bios_limit
+EXPORT_SYMBOL drivers/acpi/processor 0xe8a3605f acpi_processor_set_thermal_limit
+EXPORT_SYMBOL drivers/atm/suni 0x233cd616 suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0x221b12af uPD98402_init
+EXPORT_SYMBOL drivers/block/loop 0x12a8e3ea loop_register_transfer
+EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer
+EXPORT_SYMBOL drivers/block/paride/paride 0x0c1ab017 pi_disconnect
+EXPORT_SYMBOL drivers/block/paride/paride 0x0c6ae8bb paride_register
+EXPORT_SYMBOL drivers/block/paride/paride 0x161c6130 pi_connect
+EXPORT_SYMBOL drivers/block/paride/paride 0x47ae7501 paride_unregister
+EXPORT_SYMBOL drivers/block/paride/paride 0x532b8cc4 pi_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x84d0f8e2 pi_read_block
+EXPORT_SYMBOL drivers/block/paride/paride 0x8e10b59d pi_write_block
+EXPORT_SYMBOL drivers/block/paride/paride 0xc4353248 pi_schedule_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0xcd59587f pi_write_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0xcf080c78 pi_read_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0xd7eb3574 pi_do_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0xe1b4b728 pi_release
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x032d469f cdrom_number_of_slots
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x2c971414 register_cdrom
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x327cf157 cdrom_release
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x4f476e96 init_cdrom_command
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x634e36f7 cdrom_open
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x6d090b29 unregister_cdrom
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x6e736932 cdrom_mode_select
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x9562844c cdrom_get_media_event
+EXPORT_SYMBOL drivers/cdrom/cdrom 0xaac70f60 cdrom_mode_sense
+EXPORT_SYMBOL drivers/cdrom/cdrom 0xce50ab6f cdrom_get_last_written
+EXPORT_SYMBOL drivers/cdrom/cdrom 0xdba1da11 cdrom_ioctl
+EXPORT_SYMBOL drivers/cdrom/cdrom 0xe7b73e65 cdrom_media_changed
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x03a9d176 agp_find_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x050496a5 get_agp_version
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x08c1f8c6 agp_generic_create_gatt_table
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x0c2dee29 agp_alloc_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x0ee02b2a agp_generic_mask_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x0f37dc36 agp_generic_alloc_by_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x0fe9fde9 agp_flush_chipset
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x1d8582b0 agp_backend_release
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x23044928 agp_backend_acquire
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x28803a58 agp_generic_type_to_mask_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x2e83b486 agp_generic_insert_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x30226ddf agp_device_command
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x3a34e209 agp_bind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x4f96cebd agp_unbind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x51a14010 agp_generic_alloc_page
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x51c81b9f agp_put_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x5ae59e0f agp_create_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x60cc0d54 agp_generic_destroy_page
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x60ddfecf agp_generic_alloc_user
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x69a7004d agp_free_page_array
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7b7fadd9 agp_generic_remove_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x982ab297 agp_generic_alloc_pages
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x9fb8b243 agp_generic_free_gatt_table
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xa0eb984b agp_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb04ea8f0 agp_rebind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb580102c agp_alloc_page_array
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb73ee90e agp_generic_destroy_pages
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc49d1063 agp_copy_info
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc55911ae agp_enable
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc60de06c agp_generic_enable
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xcd16a88a agp_collect_device_status
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd031fb9c agp_free_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xf4ae7d25 agp_generic_free_by_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xf811c9b3 agp_allocate_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xfdfe26bd agp3_generic_tlbflush
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0008e213 drm_mode_create_dithering_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x05e51a48 drm_mode_create_dirty_info_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x07e9937f drm_mode_probed_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae66bea drm_mm_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b6bb371 drm_gem_object_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0be5395b drm_mode_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c8f773a drm_add_modes_noedid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e678e4e drm_mode_connector_attach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x103c5a3b drm_mode_duplicate
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x15875e07 drm_mm_search_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x15d7ed20 drm_core_ioremap_wc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1aef7aab drm_mm_dump_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c994f41 drm_get_encoder_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1eabafa7 drm_irq_uninstall
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2208aae9 drm_connector_attach_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x221e98bf drm_gem_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x22205ec3 drm_connector_property_set_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x23c44aae drm_mm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x259fe9a0 drm_crtc_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x275af58e drm_crtc_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2798fad5 drm_vblank_off
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x27c75cb9 drm_mode_config_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x282bea4d drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x29e157c4 drm_connector_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a93b0ce drm_pci_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b03e5f5 drm_rmmap_locked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fbe5b98 drm_vblank_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x35ec23e5 drm_free_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x396d9684 drm_vblank_post_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x39c6c240 drm_addbufs_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b0bd670 drm_i2c_encoder_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c4b5e04 drm_framebuffer_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e9537b2 drm_gem_object_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4116db4a drm_lock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x44451c06 drm_mode_prune_invalid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x484fd901 drm_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4969b4e0 drm_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x497d95f2 drm_core_get_reg_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4faf13a1 drm_sysfs_connector_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ffa3d36 drm_gem_object_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x50cd490b drm_mm_pre_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x51428617 drm_sg_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x52619117 drm_mode_validate_clocks
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x52b79f92 drm_add_edid_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5320e96e drm_mm_search_free_in_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5a06c631 drm_property_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x61a97098 drm_mode_attachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x67671a1a drm_mode_config_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6aaffe52 drm_mode_create_tv_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ef5e5f9 drm_mode_connector_list_update
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x72a1c46f drm_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x74d6308f drm_addmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x75093e71 drm_cvt_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x770670a8 drm_read
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7718ccf2 drm_handle_vblank
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x782a3a97 drm_agp_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c577d60 drm_idlelock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d3a3c70 drm_pci_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x806f1c90 drm_vblank_count
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x811d984e drm_clflush_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x818b0a45 drm_addbufs_pci
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x818c1f70 drm_core_ioremapfree
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8381bcca drm_mode_connector_update_edid_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x83dfaef4 drm_master_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x87b0d929 drm_encoder_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x88de7783 drm_mode_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x893c0354 drm_core_ioremap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8fa4326f drm_gem_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x918262c5 drm_debugfs_remove_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x94829af9 drm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x94af1e90 drm_gem_handle_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9686cff0 drm_irq_install
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x981b3cfd drm_ati_pcigart_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c2ac916 drm_debugfs_create_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f21d2d9 drm_get_resource_start
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa08d2b83 drm_agp_chipset_flush
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1118876 drm_mode_detachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa23d2677 drm_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa37eeba4 drm_fasync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa4679745 drm_master_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6ba7bd5 drm_i2c_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6c743c8 drm_lock_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6ce2af2 drm_mm_debug_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa88f3b94 drm_gem_vm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa067b72 drm_framebuffer_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa335279 drm_put_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xab9faabc drm_vblank_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xac778b64 drm_gtf_mode_complex
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xad3acf55 drm_agp_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0f0ad04 drm_vblank_pre_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb173bd90 drm_unbind_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6685944 drm_vblank_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6e592ea drm_agp_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb87c05d7 drm_gtf_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9ecc4c4 drm_exit
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb7a5a47 drm_get_connector_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbcbecee0 drm_agp_unbind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe9b4bf6 drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc47c2f4b drm_mm_put_block
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4f52243 drm_rmmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5bcb157 drm_property_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5f09dd2 drm_get_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6ae5db3 drm_vblank_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc18613d drm_get_drawable_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xccd89ffa drm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0942f6c drm_mm_get_block_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0e667e4 drm_mm_get_block_range_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd23372a9 drm_mode_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd289485f drm_agp_bind_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7a2a700 drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc935c47 drm_mode_validate_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcd598d2 drm_core_reclaim_buffers
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcf10a35 drm_agp_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xddec3e27 drm_mode_connector_detach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xded1b133 drm_mode_object_find
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe30d3032 drm_sysfs_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe65bcfd0 drm_connector_property_get_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe90d538c drm_get_resource_len
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xebaa6812 drm_connector_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xed795724 drm_poll
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xee7460e9 drm_gem_vm_close
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeee3a9ca drm_agp_acquire
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xef208917 drm_mode_find_dmt
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0d01aa5 drm_idlelock_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1c3dad5 drm_agp_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1de2a0d drm_ati_pcigart_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf624c98d drm_mm_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7d7c12b drm_getsarea
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfcc123b3 drm_get_edid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd96a8a1 drm_sysfs_connector_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe0bf6a0 drm_i_have_hw_lock
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe28b73d drm_agp_bind
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x02d60275 drm_fb_helper_initial_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x04307348 drm_fb_helper_set_par
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0aff9d2f drm_fb_helper_check_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b32659b drm_kms_helper_poll_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0fe044cb drm_helper_crtc_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1bb0762e drm_helper_encoder_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2ff2e1cc drm_fb_helper_pan_display
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x30757528 drm_fb_helper_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x45fdecef drm_fb_helper_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x48a57945 drm_helper_hpd_irq_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x54e908d0 drm_helper_resume_force_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5c236dd8 drm_helper_connector_dpms
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x76bfc75e drm_fb_helper_blank
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7a34ca27 drm_kms_helper_poll_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fa08957 drm_kms_helper_poll_disable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x86141645 i2c_dp_aux_add_bus
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8d0c2b42 drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9acf6174 drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa67fdfb4 drm_fb_helper_single_fb_probe
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5d213f6 drm_fb_helper_setcmap
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb7e4bcde drm_fb_helper_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbffa14b4 drm_fb_helper_fill_fix
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd6d2c3c3 drm_crtc_helper_set_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd78ae726 drm_crtc_helper_set_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe154f2e6 drm_helper_disable_unused_functions
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe7f2ed32 drm_fb_helper_single_add_all_connectors
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf1b5160a drm_kms_helper_poll_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf4be2d4a drm_fb_helper_fill_var
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x012b0190 ttm_suspend_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0bab11c3 ttm_bo_swapout_all
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x12b72ea4 ttm_object_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x16896d7b ttm_bo_init_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1912ad9a ttm_vt_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x228a8c31 ttm_mem_global_free
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2cc0a820 ttm_agp_backend_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x39160dfe ttm_mem_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x39c4547b ttm_bo_wait_cpu
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3ea9f809 ttm_bo_kmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44409a13 ttm_global_item_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x447a19db ttm_ref_object_add
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x449f1b3b ttm_bo_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4702c7cd ttm_base_object_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4b1bc6ab ttm_bo_wait_unreserved
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4eee715d ttm_bo_unreserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4fa4a700 ttm_bo_clean_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5217edc0 ttm_bo_evict_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x529db741 ttm_bo_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a7b60d0 ttm_tt_bind
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ca5cb47 ttm_global_item_ref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x600a0715 ttm_ref_object_base_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x60b74bfc ttm_tt_populate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x633dfc86 ttm_bo_wait
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x683b42b5 ttm_bo_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6db08d48 ttm_bo_unmap_virtual
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x74730461 ttm_lock_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7cc25954 ttm_io_prot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d7c87e0 ttm_mem_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x816c8620 ttm_object_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x826cc552 ttm_page_alloc_debugfs
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x828919df ttm_write_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8554ef02 ttm_bo_move_memcpy
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x95bb03f6 ttm_bo_reserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x97e8d422 ttm_fbdev_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x98f79461 ttm_bo_kunmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa8011bc7 ttm_bo_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa9f8e4b9 ttm_read_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xab55230b ttm_mem_global_alloc
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xabfeb3cc ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaeda5d87 ttm_object_file_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4a61ad9 ttm_tt_set_placement_caching
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb8ca82b3 ttm_bo_move_ttm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb9c59a8e ttm_write_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbef8698a ttm_object_file_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc0f530fc ttm_base_object_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc64022a6 ttm_bo_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd21807e5 ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd40bc409 ttm_bo_synccpu_write_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdc74e38c ttm_bo_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe04e30a1 ttm_bo_validate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe108ae2c ttm_read_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6cc5e03 ttm_base_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeab8334d ttm_bo_mem_space
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xec6c89f3 ttm_vt_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf364c30f ttm_suspend_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf629ab79 ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc9f3726 ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfcce372b ttm_bo_global_release
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x1fd3bd47 i2c_pca_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x5725e6d1 i2c_pca_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xcd54e118 amd756_smbus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x02201576 hpsb_selfid_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c31002b hpsb_remove_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0cc1e0a9 hpsb_iso_wake
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x11905613 hpsb_iso_recv_unlisten_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x16b2de24 hpsb_set_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1850e488 hpsb_node_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x18ead822 hpsb_alloc_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x193d4b3e csr1212_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x194f2061 hpsb_update_config_rom_image
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x20c4b359 hpsb_update_config_rom
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2375401c hpsb_unregister_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2cf99ad8 hpsb_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3626b94a hpsb_send_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x39e909cb hpsb_iso_recv_set_channel_mask
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3d789b9c hpsb_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x43169839 dma_region_mmap
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4be81c2c hpsb_iso_recv_release_packets
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4d6a12c8 hpsb_iso_stop
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4dcddc3e hpsb_make_writepacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x518d4100 csr1212_get_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x55db8f8e hpsb_packet_success
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5893636a hpsb_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5d3fdb87 hpsb_set_packet_complete_task
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5e23f16d hpsb_get_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5e26ca8c hpsb_iso_xmit_sync
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6acde158 hpsb_free_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6ccf5929 hpsb_node_fill_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6efde161 hpsb_protocol_class
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x712239af hpsb_free_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x712b977c hpsb_iso_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x71319dce hpsb_make_readpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76f4d4ae hpsb_register_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7980c522 hpsb_add_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x79c0b2e2 hpsb_iso_recv_flush
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7c1d4e2c hpsb_iso_xmit_queue_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x81e49c72 hpsb_make_lock64packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x875bca56 hpsb_iso_xmit_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x87cabde8 hpsb_make_streampacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9223fc13 hpsb_iso_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x99b56600 hpsb_iso_shutdown
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x99cf7dcc hpsb_unregister_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa0a5525b hpsb_alloc_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa23458f4 hpsb_bus_reset
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa3fd0d8e hpsb_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa4efd788 hpsb_unregister_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa72cbdb2 hpsb_resume_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb11a836e hpsb_get_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbb65daf0 hpsb_create_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc468e8a6 hpsb_reset_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc5e19add hpsb_get_hostinfo_bykey
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc8ce2bf1 hpsb_iso_xmit_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcebf254f hpsb_set_hostinfo_key
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcf312a59 hpsb_lock
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd0f60f2d hpsb_selfid_complete
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd32311c3 hpsb_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd9fa902f hpsb_iso_recv_listen_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdaa86fd1 hpsb_read_cycle_timer
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdc380962 hpsb_iso_recv_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdd7fef50 hpsb_allocate_and_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdedc1f6c hpsb_destroy_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe8fc3366 hpsb_make_phypacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf08fe544 hpsb_iso_recv_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf3e51f79 hpsb_iso_n_ready
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf493cfc6 __hpsb_register_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf6ef5924 hpsb_make_lockpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x356a7f3e ohci1394_unregister_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x4a35c11c ohci1394_stop_context
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xa9a5f0a4 ohci1394_register_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x63d32f94 rdma_addr_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x922d112a rdma_resolve_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xa0050d2a rdma_copy_addr
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xb77bf32a rdma_addr_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0665cf95 ib_send_cm_drep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x180209a2 ib_send_cm_dreq
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1844b89b ib_send_cm_mra
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x2780d5d6 cm_class
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4e355162 ib_send_cm_sidr_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5457c0fa ib_send_cm_sidr_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5c2617e4 ib_send_cm_lap
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x623e73fe ib_send_cm_apr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x62dd4f96 ib_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7de2649c ib_send_cm_rej
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa857c113 ib_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb315131e ib_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb451ec37 ib_send_cm_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xca59a260 ib_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe5bc0559 ib_cm_notify
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xeb4dffcf ib_send_cm_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xec219ed9 ib_send_cm_rtu
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x012326b6 ib_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x01a95c5b ib_dealloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0231a3d6 ib_alloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x02e3c482 ib_dereg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0712782d ib_create_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x071a3f94 ib_get_dma_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09282414 ib_dispatch_event
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0b9de436 ib_modify_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c4482f9 ib_register_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2232f2bd ib_modify_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27562efc ib_query_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a9cae07 ib_query_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2b3cff41 ib_alloc_fast_reg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x30027f34 ib_alloc_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x31ce0745 ib_flush_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3e2aa497 ib_free_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f38842e ib_create_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x429d1317 ib_get_cached_lmc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x42aeb88d ib_modify_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x43b39488 ib_find_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4981cfec ib_rereg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x499c96fe ib_destroy_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4ac598f8 ib_modify_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5cfa2296 ib_destroy_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6163ce37 ib_destroy_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62ccb9c9 ib_reg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x63db507b ib_alloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b170877 ib_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6d651a64 ib_find_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73c3cf96 ib_unregister_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7cafc0c7 ib_query_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7d49d624 ib_alloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x82a8e157 ib_attach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87125807 ib_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8903abf1 ib_fmr_pool_map_phys
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x897bec1f ib_get_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a59bbab ib_modify_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8aa04c4f ib_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f68c1b3 ib_dealloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x935de9c9 ib_alloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9452aba1 ib_query_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9dc3d586 ib_query_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa759ea86 ib_get_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xabdb7def ib_query_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb30bda94 ib_create_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe66f58a ib_init_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc5abd4d3 ib_find_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcdff6dbd ib_register_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1113d39 ib_destroy_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1a80cde ib_create_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd95abf28 ib_modify_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe5107c1d ib_get_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe762af47 ib_dealloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9ec57c9 ib_query_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9f9b371 ib_resize_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xebf481f9 ib_fmr_pool_unmap
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xedf55bbd ib_find_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf0e2a10e ib_unregister_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf7b2bc13 ib_detach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa392ffb ib_dealloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfab62696 ib_set_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc54457b ib_create_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff2c91e7 ib_query_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x09eaf96f ib_post_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1e697b42 ib_redirect_mad_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x30afe595 ib_process_mad_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4ff134f5 ib_unregister_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa9e210ee ib_register_mad_snoop
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xaed25d7a ib_modify_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb97d89c9 ib_register_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc2893013 ib_free_recv_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc317606e ib_create_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd0dc1feb ib_get_rmpp_segment
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xeecf0062 ib_free_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xef08d504 ib_cancel_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x09010b96 ib_sa_service_rec_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x17767e01 ib_init_ah_from_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x50444cec ib_sa_path_rec_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5c2e8b3e ib_init_ah_from_mcmember
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x88bb764a ib_sa_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb0995b39 ib_sa_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xcb02de97 ib_sa_cancel_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xeeecab77 ib_sa_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf4c24875 ib_sa_get_mcmember_rec
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1a1a33d1 iw_cm_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4309b1c7 iw_cm_accept
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x5491c564 iw_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x72335dc1 iw_cm_reject
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9a27e2f6 iw_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa51941f0 iw_cm_connect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc0b6bda6 iw_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe9311f94 iw_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0b2848c1 rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1138bfd2 rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3f1ebbdc rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x43384636 rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x44287ed7 rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4606584a rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x881da068 rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8cbcc83f rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9f6b8345 rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc0b48bd2 rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc34d436b rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd03894be rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xda32504c rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xddbbdb29 rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf03292b8 rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf083f5ca rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf735fb2e rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfcb81ead rdma_set_service_type
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x07972d6f __gameport_register_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x1ac510bb gameport_unregister_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x484d2166 gameport_stop_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x4db9427a __gameport_register_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x851297e9 gameport_set_phys
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x9df448b6 gameport_open
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xaa59031f gameport_unregister_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xe270108f gameport_start_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xf1683da7 gameport_close
+EXPORT_SYMBOL drivers/input/input-polldev 0x93d4167e input_free_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xa8ba90fa input_allocate_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xc21913fc input_register_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xf7d30109 input_unregister_polled_device
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x14abb99d ad714x_enable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x3c5cefdb ad714x_disable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x4c322843 ad714x_probe
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x62d9fe91 ad714x_remove
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xbec13473 sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xc3943781 sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xe18d3a37 sparse_keymap_setup
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xe3defcbb sparse_keymap_report_event
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xe783415e sparse_keymap_report_entry
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xf8476a76 sparse_keymap_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x39e87387 capi20_register
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x3cd6e507 capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4789680a capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47dbfa0a capi_message2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5524ed75 capi_ctr_down
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x60bdf174 capi20_put_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x61572eaf capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8c39a69b attach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb2e5d02c capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd60f4734 detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xf1ef6736 capi_ctr_suspend_output
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x03893fc7 mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x48db43ab mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xc76dccaa mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xff936523 mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x57dab660 mISDNisar_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xe4d247ed mISDNisar_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x997f1032 register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x074c4772 recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x23d90a48 mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b9eec7c mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x327ccfc7 recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3622525c l1_event
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4d7b66d0 mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5533a94b bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5dc7400a mISDN_clock_update
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6dadb3ea mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6ec2b37e mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7a6e15d1 mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7d8afa13 recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x800e0977 mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x91a768fd mISDN_freedchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x937b3bfb mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa55a210b confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xaf68a186 queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb5843a38 get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb92b5998 recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd547378f recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xde671da7 dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xea4c4c69 create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfef02112 get_next_dframe
+EXPORT_SYMBOL drivers/md/dm-log 0x4183bec4 dm_dirty_log_type_unregister
+EXPORT_SYMBOL drivers/md/dm-log 0x451ee43c dm_dirty_log_create
+EXPORT_SYMBOL drivers/md/dm-log 0x7db8af10 dm_dirty_log_destroy
+EXPORT_SYMBOL drivers/md/dm-log 0xa4554982 dm_dirty_log_type_register
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x25d0db23 dm_snap_cow
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x5c091bbe dm_exception_store_type_register
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x97a33f0a dm_exception_store_create
+EXPORT_SYMBOL drivers/md/dm-snapshot 0xc2847529 dm_exception_store_type_unregister
+EXPORT_SYMBOL drivers/md/dm-snapshot 0xd5bb22c3 dm_exception_store_destroy
+EXPORT_SYMBOL drivers/md/md-mod 0x0740f3f4 bitmap_start_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x0cffe728 unregister_md_personality
+EXPORT_SYMBOL drivers/md/md-mod 0x0e989884 md_unregister_thread
+EXPORT_SYMBOL drivers/md/md-mod 0x0eed9731 md_integrity_add_rdev
+EXPORT_SYMBOL drivers/md/md-mod 0x13624e76 md_integrity_register
+EXPORT_SYMBOL drivers/md/md-mod 0x1402bcf3 bitmap_startwrite
+EXPORT_SYMBOL drivers/md/md-mod 0x1734f45a md_write_start
+EXPORT_SYMBOL drivers/md/md-mod 0x196cf931 bitmap_endwrite
+EXPORT_SYMBOL drivers/md/md-mod 0x2d4e4a1f md_error
+EXPORT_SYMBOL drivers/md/md-mod 0x42152fef md_write_end
+EXPORT_SYMBOL drivers/md/md-mod 0x5981325e bitmap_end_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x5f44ebf4 bitmap_close_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x608e4994 md_check_no_bitmap
+EXPORT_SYMBOL drivers/md/md-mod 0x6a77344e register_md_personality
+EXPORT_SYMBOL drivers/md/md-mod 0x83ef4a9d md_barrier_request
+EXPORT_SYMBOL drivers/md/md-mod 0x91c25c73 md_register_thread
+EXPORT_SYMBOL drivers/md/md-mod 0x95a1883b md_done_sync
+EXPORT_SYMBOL drivers/md/md-mod 0xad17461e md_wait_for_blocked_rdev
+EXPORT_SYMBOL drivers/md/md-mod 0xb3bd0f5c md_check_recovery
+EXPORT_SYMBOL drivers/md/md-mod 0xcecbc283 md_set_array_sectors
+EXPORT_SYMBOL drivers/md/md-mod 0xed3267fc mddev_congested
+EXPORT_SYMBOL drivers/md/md-mod 0xf0c4c97d bitmap_cond_end_sync
+EXPORT_SYMBOL drivers/md/md-mod 0xf202daf9 md_wakeup_thread
+EXPORT_SYMBOL drivers/md/md-mod 0xf594286f bitmap_unplug
+EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul
+EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp
+EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv
+EXPORT_SYMBOL drivers/md/raid6_pq 0xa20f2f7c raid6_empty_zero_page
+EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x3e815449 ir_raw_handler_unregister
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x8520404a ir_raw_handler_register
+EXPORT_SYMBOL drivers/media/common/tuners/max2165 0xb69e2d71 max2165_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x787384a1 mc44s803_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0xb66ce86e mt2060_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x06d422f7 mt2131_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x4dde37b7 mt2266_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xf60ad566 mxl5005s_attach
+EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0xef691610 qt1010_attach
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x2304c531 xc2028_attach
+EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x10e0395a xc5000_attach
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0cbb2ac2 flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2cb6aa28 flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2e8ce2ed flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x3b59e25e flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5f1506e6 flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x65dc7f84 flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6889b9ff flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6960cb62 flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x79c11e79 flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x81caf31a flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x96c69aee flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa126fd4f flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa7e1598d flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xaf6f4c61 flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe8abc713 flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfb6268e4 flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfb65fc56 flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfd603934 flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfd690d2b flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xffef97ab flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x033309b2 bt878_device_control
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x5f84ab81 bt878_start
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x78732238 bt878_stop
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x7fadea6f bt878
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x0971b299 dst_pio_disable
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x27d564a0 dst_attach
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x3f3636ef dst_comm_init
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6b73713c dst_error_bailout
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x6f1ddd03 dst_wait_dst_ready
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x846e2a8d dst_error_recovery
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa1d39a8a rdc_reset_state
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xa770d01a write_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd4ed969b read_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x49c2e1d2 dst_ca_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x00362bd3 dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x06847acc dvb_ringbuffer_free
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x10d8c1b6 dvb_frontend_detach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1e451059 dvb_ringbuffer_avail
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2a2e02d6 dvb_dmx_swfilter_packets
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31ca247d dvb_ca_en50221_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x334d3a26 dvb_dmx_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3f17d8cc dvb_ringbuffer_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x43e55589 dvb_generic_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x44c28888 dvb_register_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x476225e1 dvb_ringbuffer_empty
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x51a1f4e0 dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x53c1f930 dvb_net_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5d21400c dvb_ringbuffer_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6d914743 dvb_dmxdev_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6e4b4ecc dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7222458e dvb_generic_ioctl
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x72330aa3 dvb_ringbuffer_read
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7321e1f1 dvb_dmx_swfilter_204
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x73f4041e dvb_dmx_swfilter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x76e29b15 dvb_unregister_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8fd8fe3e dvb_frontend_reinitialise
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa12d06cf dvb_generic_open
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa6f669e1 dvb_register_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb28021b9 dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb9e30633 dvb_dmx_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc2a44c0 dvb_ca_en50221_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd5044105 dvb_ringbuffer_read_user
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdb0a9c6a dvb_unregister_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdf5ac3a0 dvb_net_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe1cbd3ec dvb_ringbuffer_flush
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe4820bb9 dvb_unregister_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe817999a dvb_register_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe818b2f0 dvb_dmxdev_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x92c03ab8 dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x943fa177 dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xbb201103 dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xbc31e754 usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xd873f13c dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf5ca6c4f dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xfb168816 dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x6f28819a af9005_rc_decode
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x238bdbe6 dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4b347001 dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x553114d1 dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x82ef9dbc dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa8340fed dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd96cf785 dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe14ea2b2 dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe7f16cb6 dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xec12061e dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf65ce461 dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfc501c6e dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x6ec0a712 af9013_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x1dc39295 atbm8830_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x84d584a8 au8522_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0xedb6658d bcm3510_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xb4166505 cx22700_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x197c315c cx22702_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x5f7cc556 cx24110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x787ea0ed cx24113_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x9796aeca cx24113_agc_callback
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xb7fa63b6 cx24116_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x162a7a50 cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xe3e2eb6d cx24123_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x136a77c9 dib0070_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x1a0d6b6d dib0070_ctrl_agc_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x1b8307f5 dib0070_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x23794530 dib0070_get_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x2cb3c90b dib0070_set_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x1e5c465c dib0090_get_current_gain
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x35d43775 dib0090_register
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x628fb08b dib0090_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x7164b23f dib0090_dcc_freq
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x85557bff dib0090_pwm_gain_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb1d25747 dib0090_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xce2143c9 dib0090_gain_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xf4b77228 dib0090_get_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x16412b16 dib3000mb_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x181fa261 dib3000mc_pid_parse
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x4eb52d5b dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x5958a1ee dib3000mc_set_config
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x81022710 dib3000mc_pid_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xa6621bd8 dib3000mc_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xc928ed4b dib3000mc_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x17eabe14 dib7000m_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x3e2814d8 dib7000m_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x000bc843 dib7000p_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x50475352 dib7000p_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x57001a90 dib7000p_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x71c3473f dib7000p_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x750263c5 dib7000p_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa1ea12b0 dib7000p_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd4092446 dib7000pc_detection
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xeaae5568 dib7000p_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1478100e dib8000_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1af555a7 dib8000_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x26bbfbd5 dib8000_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x53ef629a dib8000_pwm_agc_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x605e56b1 dib8000_get_adc_power
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x6dacb507 dib8000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x8717225a dib8000_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x98b2c5fd dib8000_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc7cf6c10 dib8000_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xd45f5629 dib8000_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xe6897984 dib8000_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xdcc52974 dibx000_init_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xe6d903d4 dibx000_reset_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xf354860f dibx000_exit_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xf6ee302d dibx000_get_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x4c925aa1 ds3000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x9b4bcf05 dvb_pll_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x10b9c201 isl6405_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x3283839e isl6421_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0x6f5eb2b7 itd1000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0xb6804506 l64781_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x912340de lgdt3305_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0x0f684bbb lgdt330x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x847fd2b0 lgs8gxx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x0a44d315 lnbh24_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x13844780 lnbp21_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x0b11caff mb86a16_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x6dc38734 mt312_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x6d3a6bf8 mt352_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x19e059f1 nxt200x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xbe29b89e nxt6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x79962013 or51132_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0xca03fd84 or51211_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x09ff2eda s5h1409_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xb037ee75 s5h1411_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x3751e834 s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x73e72890 s5h1420_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0xd5521f95 si21xx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x131758d7 sp8870_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x219f34bd sp887x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0xac317857 stb0899_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0xe10163aa stb6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xe2c4ba2f stb6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x3f04fcfb stv0288_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xb05597b1 stv0297_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x5d2d8a85 stv0299_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x6c1de852 stv0900_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x4e299bdc stv090x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0xbdf7333e stv6110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x5094d48d stv6110x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x741f09a8 tda10023_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0xadd3dec1 tda10048_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x17cb35a2 tda10046_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x7eda141e tda10045_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xa15117d1 tda10086_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x9d426a79 tda8083_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0xde8db24e tda826x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xfb326139 ves1820_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x6cfecb2b ves1x93_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x99501942 zl10036_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x1cfcce42 zl10039_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x4280e5ac zl10353_attach
+EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x03c57ef1 ttpci_eeprom_parse_mac
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x9ff54d52 ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xb4324c98 ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x33aeb4c0 bttv_sub_unregister
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x6a097ec1 bttv_sub_register
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x81137e0a bttv_get_pcidev
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x47c4d2c9 btcx_riscmem_alloc
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xae6c5c86 btcx_riscmem_free
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips
+EXPORT_SYMBOL drivers/media/video/cpia 0xa862c61a cpia_register_camera
+EXPORT_SYMBOL drivers/media/video/cpia 0xe755fc16 cpia_unregister_camera
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x1adefb02 cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x600922b6 cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x6acdfb50 cx18_release_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xbd630712 cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xec4d724a cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x3c89e7b2 cx231xx_register_extension
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x86e58a6d cx231xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x577352f9 vp3054_i2c_remove
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xd6484ffe vp3054_i2c_probe
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x11521d5e cx88_set_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x5ea90a64 cx88_set_freq
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x687d596a cx8800_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x8080231b cx88_get_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xd74c76db cx88_video_mux
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xfd694514 cx88_enum_input
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x530aa305 cx8802_get_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x5e526c98 cx8802_unregister_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x62252259 cx8802_buf_queue
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x87084404 cx8802_cancel_buffers
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xdabb38a6 cx8802_buf_prepare
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xe0856bfe cx8802_register_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x161792eb cx88_ir_start
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2ce14078 cx88_risc_stopper
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5210f19b cx88_core_get
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x528e265f cx88_set_stereo
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x626968fe cx88_sram_channel_setup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x65a57839 cx88_shutdown
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x70953718 cx88_risc_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x70cde402 cx88_free_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x718f1f9c cx88_wakeup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x75540571 cx88_set_tvnorm
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x7e7fc267 cx88_set_scale
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x911f3ff4 cx88_newstation
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x94ad1240 cx88_set_tvaudio
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa19d19e5 cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa2d43b22 cx88_reset
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc7185011 cx88_vdev_init
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xcb465e4a cx88_core_put
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd8e89b71 cx88_core_irq
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdab57206 cx88_get_stereo
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdbea39c9 cx88_sram_channel_dump
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe9f53150 cx88_risc_databuffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf7136152 cx88_ir_stop
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x0328f883 em28xx_register_extension
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x71465d8b em28xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x29616337 gspca_resume
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x2fbd92c7 gspca_auto_gain_n_exposure
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x423d960d gspca_frame_add
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x5f916f1a gspca_disconnect
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x663ad7f4 gspca_get_i_frame
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x8b1ba5af gspca_dev_probe
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xd8ac16d8 gspca_suspend
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x174e1193 ivtv_api
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x816cd06b ivtv_vapi
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xa0e8c74d ivtv_udma_setup
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb2ca6244 ivtv_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xbd7691c4 ivtv_udma_alloc
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd66f9469 ivtv_set_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe5368372 ivtv_udma_prepare
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xec53a951 ivtv_init_on_first_open
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xed91dbf8 ivtv_clear_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf71b3489 ivtv_vapi_result
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf79c7f92 ivtv_udma_unmap
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4d700d6b saa7134_pgtable_free
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4feaa597 saa7134_set_dmabits
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x553fd6ce saa7134_pgtable_build
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x672de722 saa7134_dmasound_exit
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x74e9007b saa7134_set_gpio
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7dd08447 saa7134_dmasound_init
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x8030fac7 saa7134_tvaudio_setmute
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xae3c1dc1 saa7134_devlist_lock
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xb3214e08 saa7134_pgtable_alloc
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xce54da74 saa7134_ts_unregister
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd612012c saa7134_ts_register
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe3fa1363 saa_dsp_writel
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x030f00fb soc_camera_host_register
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x32c32546 soc_camera_xlate_by_fourcc
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xa62d94bd soc_camera_host_unregister
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xc2518c10 soc_camera_apply_sensor_flags
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x6dbe7721 tveeprom_read
+EXPORT_SYMBOL drivers/media/video/tveeprom 0xe9ac8f3f tveeprom_hauppauge_analog
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x017a4145 usbvideo_RegisterVideoDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x345b7773 RingQueue_WakeUpInterruptible
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x4712ddaa RingQueue_Flush
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x55f443af usbvideo_register
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x9dc9ae34 usbvideo_TestPattern
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xa37643c1 usbvideo_DeinterlaceFrame
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd19dfcff RingQueue_Enqueue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xe42bbd6b usbvideo_AllocateDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xeb538f7a RingQueue_Dequeue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xf2842319 usbvideo_Deregister
+EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xbe56adfe v4l_compat_translate_ioctl
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xbe656b5e v4l2_chip_match_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe440aaf6 v4l2_chip_ident_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x0f7a3e4c v4l2_m2m_get_vq
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x7a9d7342 v4l2_m2m_job_finish
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x8549987c v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xcbbe5356 v4l2_m2m_mmap
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x22a27540 videobuf_dvb_register_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x387e1fd9 videobuf_dvb_get_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x48b38637 videobuf_dvb_find_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x893b96c7 videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc8116127 videobuf_dvb_dealloc_frontends
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xcc22707b videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period
+EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x16599ed5 video_devdata
+EXPORT_SYMBOL drivers/media/video/videodev 0x1ce96d0e video_device_release_empty
+EXPORT_SYMBOL drivers/media/video/videodev 0x2a4f1c9b video_unregister_device
+EXPORT_SYMBOL drivers/media/video/videodev 0x327e1c97 video_ioctl2
+EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl
+EXPORT_SYMBOL drivers/media/video/videodev 0xb5072efd video_register_device
+EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct
+EXPORT_SYMBOL drivers/media/video/videodev 0xe67324f5 video_usercopy
+EXPORT_SYMBOL drivers/media/video/videodev 0xe7cb6575 video_register_device_no_warn
+EXPORT_SYMBOL drivers/media/video/videodev 0xeebd0340 video_device_release
+EXPORT_SYMBOL drivers/media/video/videodev 0xf0ff6ca6 video_device_alloc
+EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x4ccedf31 videocodec_attach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x50bc72a3 videocodec_register
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x8885baac videocodec_detach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0xe31d45b8 videocodec_unregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x03821660 mpt_alloc_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x04634808 mpt_GetIocState
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0abc3fe1 mpt_findImVolumes
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0bc3b384 mpt_halt_firmware
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x159c22bb mpt_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2e2a443a mpt_HardResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x33a0d15d mpt_put_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x383a3614 mpt_resume
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3b8851bf mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x41682f03 mpt_device_driver_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4d71c114 mptbase_sas_persist_operation
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x508e707e mpt_print_ioc_summary
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5557700c mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x57aaea70 mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x59039aa7 mpt_send_handshake_request
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7057f944 mpt_config
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74150897 mpt_free_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x85d343b0 mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8b811259 mpt_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x996ef73e mpt_verify_adapter
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb6b3b75d mpt_detach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb71e0b0b mpt_attach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd3299e12 mpt_free_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd4327d7f mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd5dea309 mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdabb793a mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xeb4854b6 mpt_get_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xec63e0a0 mpt_reset_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf214261f mpt_event_register
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0701ff79 mptscsih_taskmgmt_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0a852203 mptscsih_raid_id_to_num
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x157d901c mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x33cef3b5 mptscsih_remove
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x34ada0d6 mptscsih_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x357b9e12 mptscsih_change_queue_depth
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x382d56d3 mptscsih_ioc_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3b4c4eb5 mptscsih_dev_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x55cf68be mptscsih_slave_configure
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5e509d81 mptscsih_qcmd
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x738f56f5 mptscsih_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x73cacf91 mptscsih_slave_destroy
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x81cd9b48 mptscsih_bios_param
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x913be60f mptscsih_host_attrs
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9a78463f mptscsih_io_done
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa3fe50e1 mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xae7ce8bd mptscsih_shutdown
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb1f583d9 mptscsih_host_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb9f5505b mptscsih_scandv_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc153db7d mptscsih_proc_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd9528845 mptscsih_is_phys_disk
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd9d569da mptscsih_get_scsi_lookup
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xddcc282c mptscsih_event_process
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf372b9b6 mptscsih_abort
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf691e16d mptscsih_resume
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfb0b8a00 mptscsih_bus_reset
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x07bc2b45 i2o_exec_lct_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x23044ec8 i2o_msg_post_wait_mem
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x237d1bd1 i2o_status_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x38152af1 i2o_driver_notify_device_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x45024c56 i2o_device_claim
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4aa6c24a i2o_msg_get_wait
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4cdea4e1 i2o_driver_notify_controller_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x553945d1 i2o_cntxt_list_remove
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5589dc7a i2o_cntxt_list_add
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x684b4f9d i2o_cntxt_list_get_ptr
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x74dc71e5 i2o_driver_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7cd6608f i2o_driver_notify_device_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x88157048 i2o_event_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9a54bcfe i2o_cntxt_list_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa488edb0 i2o_find_iop
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xaac74747 i2o_driver_unregister
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbc09343a i2o_driver_notify_controller_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc2308584 i2o_parm_field_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd99f1b84 i2o_parm_table_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe8c4545b i2o_device_claim_release
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf2fda386 i2o_parm_issue
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfae4f557 i2o_iop_find_device
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x979198ca pasic3_read_register
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xcdbc81a4 pasic3_write_register
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x051ff4e3 mc13783_reg_rmw
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3ddb46ff mc13783_unlock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x4b8182b7 mc13783_irq_request
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x59a4548b mc13783_reg_read
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x5f5074ab mc13783_irq_free
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x72341e53 mc13783_irq_unmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x90b2b1d4 mc13783_irq_status
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xb5f00035 mc13783_reg_write
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xcb55503a mc13783_lock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xd5859699 mc13783_irq_request_nounmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xd6652e5e mc13783_irq_mask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe4cca9dd mc13783_irq_ack
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x5fd4015e ad_dpot_probe
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x60806343 ad_dpot_remove
+EXPORT_SYMBOL drivers/misc/c2port/core 0x7f8dcfba c2port_device_unregister
+EXPORT_SYMBOL drivers/misc/c2port/core 0xd7bec364 c2port_device_register
+EXPORT_SYMBOL drivers/misc/ioc4 0x0492253d ioc4_register_submodule
+EXPORT_SYMBOL drivers/misc/ioc4 0x79b92695 ioc4_unregister_submodule
+EXPORT_SYMBOL drivers/misc/tifm_core 0x079c5a3f tifm_register_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x1d47f1a9 tifm_free_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x2789abcc tifm_map_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x2da2df96 tifm_alloc_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x3135a7c0 tifm_free_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x5cd39aae tifm_has_ms_pif
+EXPORT_SYMBOL drivers/misc/tifm_core 0xa3cf75a1 tifm_unmap_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work
+EXPORT_SYMBOL drivers/misc/tifm_core 0xb7e91f16 tifm_alloc_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xd0c46241 tifm_remove_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xe00d01cf tifm_eject
+EXPORT_SYMBOL drivers/misc/tifm_core 0xeaacc2a5 tifm_unregister_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0xf78431b2 tifm_add_adapter
+EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x86202a4b mmc_cleanup_queue
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0c59c041 mmc_card_sleep
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x11ff2f68 mmc_power_restore_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x184b82fb mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x29eacd27 mmc_try_claim_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x2a73b046 mmc_host_lazy_disable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x2ac3e971 mmc_host_disable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x49bbfc79 mmc_wait_for_cmd
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x55869b42 mmc_align_data_size
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x56df5a59 mmc_regulator_set_ocr
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x6af9c0c0 mmc_card_can_sleep
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x71514089 mmc_remove_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x7a7fd3bf mmc_detect_change
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8186a980 mmc_card_awake
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x82c1f282 mmc_suspend_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8abdc9fa mmc_add_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8c1f7bd6 mmc_set_data_timeout
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9c1092f2 mmc_wait_for_app_cmd
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa897127b mmc_register_driver
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb1f1934b mmc_unregister_driver
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb91ce1dc mmc_wait_for_req
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xbb9347b9 __mmc_claim_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xda34d093 mmc_free_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xdbed4873 mmc_resume_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xea6e1e46 mmc_alloc_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xee9e739f mmc_request_done
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf494f618 mmc_regulator_get_ocrmask
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xfb1f9d8f mmc_release_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xfdfd77e1 mmc_power_save_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xfffcc251 mmc_host_enable
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x86126271 cfi_fixup
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x90e6e94b cfi_varsize_frob
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xbc9daa10 cfi_read_pri
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x4ef685ae register_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x8e55cdf7 do_map_probe
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xc4de9041 unregister_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xf4d080e0 map_destroy
+EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x3d208025 mtd_do_chip_probe
+EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xfc250e1f lpddr_cmdset
+EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x5a5a3259 simple_map_init
+EXPORT_SYMBOL drivers/mtd/mtd 0x3a5cc443 add_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtd 0x81f151fc del_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x62041d59 mtd_concat_destroy
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x89b4cc1f mtd_concat_create
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x5ae598df nand_default_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand 0xdc1bbf72 nand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x65a56ad9 nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb57e9658 nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xc8f66a6f flexonenand_region
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xdb0c6d23 onenand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xe3e99fff onenand_addr
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xf9ac220a onenand_default_bbt
+EXPORT_SYMBOL drivers/net/8390 0x22b93abe ei_open
+EXPORT_SYMBOL drivers/net/8390 0x37df4f77 ei_tx_timeout
+EXPORT_SYMBOL drivers/net/8390 0x4847a829 ei_netdev_ops
+EXPORT_SYMBOL drivers/net/8390 0x613f7f71 ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390 0x671a4f91 ei_start_xmit
+EXPORT_SYMBOL drivers/net/8390 0xb10e9aff ei_get_stats
+EXPORT_SYMBOL drivers/net/8390 0xbbeeacb9 NS8390_init
+EXPORT_SYMBOL drivers/net/8390 0xbed88a36 __alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt
+EXPORT_SYMBOL drivers/net/8390 0xf0e1346d ei_poll
+EXPORT_SYMBOL drivers/net/8390 0xfbab1392 ei_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0c67c7fb alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x22af4614 arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x3048e580 arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x39c23595 arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5b35e652 arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x64d31205 arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb83e595f arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb8ad1cd9 arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc11395be arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc7661814 arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x0959fac4 com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x1106330f com20020_check
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0xec86dddf com20020_found
+EXPORT_SYMBOL drivers/net/bnx2 0x74988063 bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/bnx2x 0xe25802ca bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/cnic 0xb444475d cnic_register_driver
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1af89123 cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x20e557f4 cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2f2ce0fb cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x521b8810 t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6d366cc6 t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x84f17328 cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8bb487f0 cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9b0b5b5e cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa2388e47 t3_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa3bd5582 t3_l2e_free
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb1710bc9 t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb1d0d625 cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb5d3bb7c cxgb3_register_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd94dcbb9 cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xdf9d4543 dev2t3cdev
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf9e08351 cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x1105b9d8 cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2c572f46 cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3582dfca cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3e25e844 cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x43dc14eb cxgb4_create_server
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7e0d1e99 cxgb4_create_server6
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x86de5276 cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x944bd090 cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xac832bbd cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xad8755de cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xbc90d2d6 cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xcdc2c084 cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd2148262 cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xdb23548c cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xdcd2cbd3 cxgb4_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xeba34810 cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xef1c1a6c cxgb4_netdev_by_hwid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xef6dfbd1 cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xefb2a7a0 cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf98d1876 cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x025f62bd hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1b504d4e hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x2b6722f9 hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xaea3f701 hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb546f824 hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x098a63fd irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x16557cc6 sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2e1d1633 sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x4283a796 sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x765df9e2 sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x78b8aacb sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x7997089f irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb06f61c0 sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xb6bb1d45 sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd971fbd9 sirdev_raw_read
+EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage
+EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl
+EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart
+EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag
+EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe
+EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an
+EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok
+EXPORT_SYMBOL drivers/net/mii 0x04afb7e3 mii_nway_restart
+EXPORT_SYMBOL drivers/net/mii 0x12e2fb05 mii_check_link
+EXPORT_SYMBOL drivers/net/mii 0x194fce4e mii_check_media
+EXPORT_SYMBOL drivers/net/mii 0x20804246 mii_ethtool_gset
+EXPORT_SYMBOL drivers/net/mii 0x31730219 mii_ethtool_sset
+EXPORT_SYMBOL drivers/net/mii 0x3d499e16 generic_mii_ioctl
+EXPORT_SYMBOL drivers/net/mii 0xc90e85ea mii_check_gmii_support
+EXPORT_SYMBOL drivers/net/mii 0xdc5d8918 mii_link_ok
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xc5cc49f0 free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xd7019cf0 alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp_generic 0x0152588b ppp_output_wakeup
+EXPORT_SYMBOL drivers/net/ppp_generic 0x206ba883 ppp_input_error
+EXPORT_SYMBOL drivers/net/ppp_generic 0x278ebce6 ppp_dev_name
+EXPORT_SYMBOL drivers/net/ppp_generic 0x605ed9e4 ppp_register_net_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0x682e2c16 ppp_register_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0xa7468924 ppp_register_compressor
+EXPORT_SYMBOL drivers/net/ppp_generic 0xbad5486e ppp_unit_number
+EXPORT_SYMBOL drivers/net/ppp_generic 0xbaf81e5e ppp_channel_index
+EXPORT_SYMBOL drivers/net/ppp_generic 0xd837d10e ppp_unregister_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0xdea45af4 ppp_input
+EXPORT_SYMBOL drivers/net/ppp_generic 0xe48c9394 ppp_unregister_compressor
+EXPORT_SYMBOL drivers/net/pppox 0x413e909b pppox_ioctl
+EXPORT_SYMBOL drivers/net/pppox 0x5324c028 register_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0x8a0dae09 pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/slhc 0x0ff2b602 slhc_compress
+EXPORT_SYMBOL drivers/net/slhc 0x23c8f257 slhc_uncompress
+EXPORT_SYMBOL drivers/net/slhc 0xa63d85ab slhc_remember
+EXPORT_SYMBOL drivers/net/slhc 0xb5ca1c46 slhc_free
+EXPORT_SYMBOL drivers/net/slhc 0xdfc5169b slhc_init
+EXPORT_SYMBOL drivers/net/slhc 0xe8794ce1 slhc_toss
+EXPORT_SYMBOL drivers/net/sungem_phy 0x6bb34420 mii_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x2160e361 tms380tr_close
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x3cb82d67 tmsdev_term
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x89f119d5 tms380tr_open
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x9d67480b tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xdbfe73b9 tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x1488f061 alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x36aea530 hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x37996d70 detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x3c426e98 hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x5fcc1b48 unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x83c64db1 attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x83fc9651 unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x8eb8d194 hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xaa3f7fc6 register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xde58869c hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xe4c8fe4f hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x232dbd2c i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x15db30ab reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x6d53242b stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0xd7eb7648 init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa6ede918 ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xe9e9765e ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xeaefb55a ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf3e2745c ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x19be812d ath9k_cmn_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x221c1513 ath9k_cmn_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x44e9d0aa ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb2790c6b ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd302e3fc ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xefeb8196 ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf4cfde73 ath9k_cmn_rx_skb_preprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x048518d7 ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b5657f3 ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f582372 ath9k_hw_setmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x126567b2 ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x129cca47 ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x153b7746 ath9k_hw_getcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17021ab6 ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x18f493a8 ath9k_hw_cleartxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19a21925 ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19cc57f1 ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1d6b3849 ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1efba3fb ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22c3d23f ath9k_hw_setcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x233510d6 ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b374dae ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2caf0ef8 ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2f6c3585 ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x368c11cc ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3bbd7a51 ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3dba216e ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3dcb5bde ath9k_hw_stoptxdma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40ba1870 ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x42b507f1 ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4878b876 ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48802d14 ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c1455c1 ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x54da7bdf ath9k_hw_set_keycache_entry
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5a787095 ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5ab620b1 ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61b2c445 ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6202010e ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68a13b0f ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72e0bc8a ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x750334b8 ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77ac97b6 ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a2de4f0 ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d3c18ee ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8395461c ath9k_hw_procmibevent
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85cbdcf2 ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8629a7c3 ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x87c1b1de ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x893a1277 ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x899a1468 ath9k_hw_keysetmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c4874d2 ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x90963efd ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91a93b1c ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x92694b7a ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9c6b2513 ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d1ac0d9 ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9de796e0 ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9e14127a ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa02f296d ath9k_hw_stoppcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2f19d90 ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa2f575e2 ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa5ebd3d6 ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa77a9a06 ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac7a2efe ath9k_hw_extend_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad9f1a39 ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0c11e3b ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1a6ef4e ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbcd558e4 ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbdb3f62d ath9k_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9db6f71 ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcb5d2653 ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcbe0f8f3 ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc6bf068 ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcde6df67 ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcecca2c5 ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd127ebad ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd48ac5ec ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd864dbf9 ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd92eb610 ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3bfde82 ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7b73b23 ath9k_hw_keyisvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7d46659 ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee5e03cd ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1b44c8a ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf5dfebaf ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf96cbb14 ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfec0b2cc ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff0c235b ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xff471e35 ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x808652d3 atmel_open
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x8e765fa0 init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xf6952e1d stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x07333026 hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0874d1db hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x08853ce0 hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0edc868c hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x22d977b8 hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2a880f92 hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x373e0285 hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3d55c6dc hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4640aad7 hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x552c675a hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5cfa6535 prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5de0eeee hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x61ed4984 hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x628d896e hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x69c9091a hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6f1183e9 hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x84c0b9e7 hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x94cdd93b hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xba6c00a1 hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcd3ee38e hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd8a8c2cd hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdefa6c04 hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe0b1414c hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe6e80c48 hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf2b3e43e hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0e9c83ff libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x10d121b1 libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x37fdd182 libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3ed1fc42 libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4cd4f7e3 libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x634a312b libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6a7692a7 libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x741ddeaa libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7fe0e227 libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8a16b3ec libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8fbedd7d libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9af2964e libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xab178f29 libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xafe31d1c libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbdc70d16 free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc077ac87 alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc12c6115 libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc8723a1e libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc9895d53 libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd3e51831 libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf82186be libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x01160c21 iwl_led_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03279e82 iwl_sta_modify_ps_wake
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03c44a04 iwl_tt_exit_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x07c27949 iwl_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x08de8b68 iwlcore_eeprom_verify_signature
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0a14cefd iwl_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0b67d03a iwl_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0c965d2d iwl_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0d39d039 iwl_sta_tx_modify_enable_tid
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0db05acc iwl_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0df48ba7 iwl_rf_kill_ct_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e4f61c1 iwl_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e7c9c57 iwl_bg_start_internal_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0ffdd621 iwl_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x106d44e2 iwl_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1147b2c6 iwl_good_plcp_health
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x12cd6b8f iwl_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x15e1fe7e iwl_update_tkip_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x165594e5 iwl_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1784ccbd iwl_reset_run_time_calib
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x187b25d5 iwl_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1b62daf9 iwl_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1b82c4cc iwl_tx_ant_restriction
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1dc98e5d iwl_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1e35ce7e iwl_calib_free_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x255e549d iwl_mac_beacon_update
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x283c7fae iwlcore_eeprom_enhanced_txpower
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x292daf38 iwl_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2ff104ef iwl_recover_from_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x30defc7f iwl_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x31203e26 iwl_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3175078c iwlcore_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x33612a0a iwl_rx_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37c401ce iwlcore_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3c18e1eb iwl_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x416950da iwl_sta_modify_sleep_tx_count
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4179ae2c iwl_init_sensitivity
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41dc7efb iwl_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x42a53670 iwl_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x43d67b56 iwl_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x45631917 iwl_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4662043a iwl_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x49d5b0ab iwl_force_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4ddcf312 iwl_sta_rx_agg_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4f61839c iwl_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50b5b9f8 iwl_leds_background
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x510f1bf3 iwl_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x53c71ea7 iwl_free_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x592de28a iwl_dump_fh
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5931b3f7 iwl_tt_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5d2c52f7 iwl_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5e6c702c iwl_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5e8d3912 iwl_hw_detect
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5f137856 iwl_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5f2eb9e0 iwl_rate_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6762c4db iwl_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6a56ae5d iwl_verify_ucode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71db00d0 iwl_bg_abort_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x731c6a1a iwl_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7373e393 iwl_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x74d9e083 iwl_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x757810f0 iwl_eeprom_check_version
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x76f76f4b iwl_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x783ce2a9 iwl_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x79c59628 iwl_chain_noise_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7a556de3 iwl_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7b224756 iwl_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7be0c88f iwl_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7ed4ae1d iwl_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x81f24fc5 iwl_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x82dbe469 iwl_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x86b5fc14 iwlcore_eeprom_release_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x872bc490 iwl_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8850bc74 iwl_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8997d5fd iwl_remove_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8af11d55 iwl_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8f024c20 iwl_tt_handler
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x907318d1 iwl_send_calib_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x91b5ec21 iwl_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x926d2d74 iwl_remove_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x940c51aa iwlcore_rts_tx_cmd_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9715bd8c iwl_free_tfds_in_queue
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x99752fef iwl_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9d0b5391 iwl_tt_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9faced57 iwl_calib_set
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa0f5ed0a iwl_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa2ffc220 iwl_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa33ab8d6 iwl_configure_filter
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa7d178c0 iwl_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa83712c4 iwl_dump_csr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xae1c674b iwl_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaf0d50e6 iwl_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb04e264c iwl_set_rxon_chain
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb5c41f0a iwl_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb6297865 iwl_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb6581539 iwl_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb86a0fa3 iwl_bg_scan_completed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb877608d iwl_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbb9883b9 iwl_set_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbd0f6c19 iwl_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbf1636b5 iwl_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc10f5b4d iwl_sensitivity_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc2001b1f iwl_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc65f9395 iwl_setup_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc74f2620 iwl_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xccf3cc36 iwl_toggle_tx_ant
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcd453908 iwl_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcd9cb48f iwl_tt_enter_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd04e3c85 iwl_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd1286968 iwl_rx_missed_beacon_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd2316993 iwl_reply_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd383d09e iwl_add_bssid_station
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd6d9352b iwl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd865ebe4 iwl_restore_default_wep_keys
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd984a86a iwl_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde345eca iwl_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3eea7ab iwl_set_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe5775dda iwl_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67257a2 iwl_bg_scan_check
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe92b3e26 iwl_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xef8a2746 iwlcore_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeffa569e iwl_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf06c65dd iwl_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2b10aad iwl_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf3cf759c iwlcore_eeprom_acquire_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf86a28da iwl_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa5f9373 iwl_set_hw_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfc67a22f iwl_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfc9fcc38 iwl_sta_rx_agg_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfea34cfd iwl_ht_enabled
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xffd75175 iwl_eeprom_get_mac
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x00bebc4f orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x13ef8490 orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1c2b1101 orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2c4f46bc __orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2d170088 orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x36b9c0bc orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4485ff1c free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5f19099f __orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x629c0f98 orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8ecab5e9 orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb5b1e856 orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb9a90d8f orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc3472bea orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc6a141ce alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd5d841d1 hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd6b6bfb7 orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xde3c0d77 orinoco_init
+EXPORT_SYMBOL drivers/parport/parport 0x0302dddd parport_unregister_driver
+EXPORT_SYMBOL drivers/parport/parport 0x10aa41fa parport_put_port
+EXPORT_SYMBOL drivers/parport/parport 0x19a79681 parport_find_number
+EXPORT_SYMBOL drivers/parport/parport 0x19c3540e parport_claim
+EXPORT_SYMBOL drivers/parport/parport 0x1d9d6ba6 parport_ieee1284_epp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0x2df97836 parport_register_device
+EXPORT_SYMBOL drivers/parport/parport 0x2e4a5503 parport_register_driver
+EXPORT_SYMBOL drivers/parport/parport 0x3ace7197 parport_find_base
+EXPORT_SYMBOL drivers/parport/parport 0x3f95f31d parport_remove_port
+EXPORT_SYMBOL drivers/parport/parport 0x40ae90d8 parport_claim_or_block
+EXPORT_SYMBOL drivers/parport/parport 0x42724f2b parport_set_timeout
+EXPORT_SYMBOL drivers/parport/parport 0x43cd33f2 parport_announce_port
+EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt
+EXPORT_SYMBOL drivers/parport/parport 0x800b1d99 parport_ieee1284_read_byte
+EXPORT_SYMBOL drivers/parport/parport 0x816ceb3f parport_ieee1284_epp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x8f554eda parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL drivers/parport/parport 0x91b01537 parport_negotiate
+EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler
+EXPORT_SYMBOL drivers/parport/parport 0xa040df7c parport_get_port
+EXPORT_SYMBOL drivers/parport/parport 0xb4f0f4bc parport_unregister_device
+EXPORT_SYMBOL drivers/parport/parport 0xb9c32c86 parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0xc4479cb0 parport_ieee1284_write_compat
+EXPORT_SYMBOL drivers/parport/parport 0xc5549300 parport_wait_event
+EXPORT_SYMBOL drivers/parport/parport 0xcf2201ac parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0xe365ed77 parport_register_port
+EXPORT_SYMBOL drivers/parport/parport 0xe3e0faa5 parport_wait_peripheral
+EXPORT_SYMBOL drivers/parport/parport 0xe493436d parport_ieee1284_read_nibble
+EXPORT_SYMBOL drivers/parport/parport 0xe8b92a7c parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0xee6ba83c parport_read
+EXPORT_SYMBOL drivers/parport/parport 0xf4020030 parport_release
+EXPORT_SYMBOL drivers/parport/parport 0xf71b0ef4 parport_write
+EXPORT_SYMBOL drivers/parport/parport 0xf78dc615 parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL drivers/parport/parport_pc 0x4942962a parport_pc_unregister_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0xac7b6d55 parport_pc_probe_port
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0dbb65bc pcmcia_map_mem_page
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1241f2eb pcmcia_get_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1b1230a4 pcmcia_request_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4f64a4f2 pcmcia_modify_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x55d2d780 pcmcia_request_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x61104e09 pcmcia_loop_config
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7196bbe2 pcmcia_dev_present
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x72f31e17 pcmcia_disable_device
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7e62b883 pcmcia_get_mac_from_cis
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9ddc6a9c pcmcia_access_configuration_register
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xab01849b pcmcia_unregister_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xafae100d pcmcia_loop_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc4b13067 pcmcia_register_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcdc4657d pcmcia_release_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf5b249cf pcmcia_request_io
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xfa89b8dd pcmcia_request_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xff4ad1d7 __pcmcia_request_exclusive_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2358a379 pcmcia_parse_events
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x289860df pcmcia_get_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x295058c4 pcmcia_get_socket_by_nr
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2b12afb0 pcmcia_reset_card
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x31815a46 pcmcia_register_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3a5fd954 pcmcia_unregister_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x428eca0f pcmcia_socket_list_rwsem
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x98552926 pcmcia_socket_class
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb6daec3a pcmcia_parse_uevents
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb7d6b46a pcmcia_put_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xfc4cfc85 pccard_register_pcmcia
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x064d741a pccard_nonstatic_ops
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xb925be02 pccard_static_ops
+EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x3e4b15aa pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x390b6235 fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x400f4059 fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x69d9d689 fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xbd12543b fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd297cd37 fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe36b1bda fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xeffbb296 fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x042550a3 fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1a08ad8a fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1d641962 fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1fb8399d fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x20463b55 fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2078f304 fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3f9dea6c fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x426bf2f2 fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x47f35818 fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c78b6ec fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x57321d73 fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5e1ddf53 fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5e34c332 fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6404405c fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x641e6ac7 fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64efe0e2 fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x680232aa fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x696504ad fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6b626a63 fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x71755c37 fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76de62a4 fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x77cae5ba fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x77de2ac2 fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x85407252 fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8e6b3e41 fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x98697260 fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a08e753 fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa149c714 fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa41599d7 fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa5fe39b8 fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb7ce1eb0 fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb94febbe fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbcf80c70 fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbf6c18f7 _fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc4982615 fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc69fc6e6 libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcc0fa28c fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcd16a793 fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe302ac8c fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe8c143d4 fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe9fdb4bc fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf72ae371 fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xa28ee7a4 mraid_mm_register_adp
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x05c97347 osd_req_flush_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x05ff6775 osd_req_flush_obsd
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x06221c64 osd_req_list_dev_partitions
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x092ff19a osd_req_add_set_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1769a1a7 osd_execute_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1919c53e osd_req_flush_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2add4720 osd_req_decode_sense_full
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2b088d65 osd_req_create_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3040abac osd_finalize_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5f74f6d2 osd_req_decode_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6ac1bd5e osd_req_list_partition_collections
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7210594d osd_req_flush_collection
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7a4f5404 osd_req_read_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7c4a524e osd_req_read
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8dce8df8 osd_req_format
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8e2e18b9 osd_req_set_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x959080c4 osd_req_list_partition_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa7c8d060 osd_dev_init
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaa5b807a osd_req_get_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xab5fd435 osd_dev_fini
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xae623bd6 osd_auto_detect_ver
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xae8fa714 osd_req_list_collection_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb2016671 osd_req_remove_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc2f5483a osd_req_add_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xca82cb2e osd_req_write_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdcf34de2 osd_req_write
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe36fa4f7 osd_req_create_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xea576c7b osd_req_add_get_attr_page
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf46ec253 osd_start_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf52f1a1a osd_end_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf7758f13 osd_execute_request_async
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfcd9a0ce osd_req_remove_object
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x148a17b8 osduld_info_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x7f6b7d12 osduld_path_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x89f8c33b osduld_register_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x8d5585c0 osduld_device_same
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xc049cde2 osduld_device_info
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xf10bc524 osduld_put_device
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x2a81ce0a qlogicfas408_info
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x4840542a qlogicfas408_disable_ints
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5a00eacf qlogicfas408_queuecommand
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc51ce817 qlogicfas408_bus_reset
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xcc194baa qlogicfas408_biosparam
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf52141b1 qlogicfas408_abort
+EXPORT_SYMBOL drivers/scsi/raid_class 0x0121bd19 raid_class_release
+EXPORT_SYMBOL drivers/scsi/raid_class 0x5d82e649 raid_component_add
+EXPORT_SYMBOL drivers/scsi/raid_class 0x8cbbbb85 raid_class_attach
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x14a8b803 fc_host_post_vendor_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2ad6ba12 fc_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x47cfafe3 fc_remote_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4eae9438 fc_remote_port_rolechg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7556cce6 scsi_is_fc_vport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8f3c1d9c fc_vport_terminate
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x90939b26 fc_remote_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9f225775 fc_host_post_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc1392795 scsi_is_fc_rport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc5f855f3 fc_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd993d57a fc_block_scsi_eh
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xde7f18d0 fc_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xeaae3d8d fc_vport_create
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x01d77677 sas_port_alloc_num
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0b104b50 sas_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x17e32541 sas_expander_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x37be7eea sas_rphy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4caf3f9e sas_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x504cb95c sas_end_device_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x524bde2c sas_port_mark_backlink
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7fb778df sas_phy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8ae3a922 sas_read_port_mode_page
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8c8ae9e1 sas_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x908a5b07 sas_phy_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9133a561 scsi_is_sas_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x960bc15b sas_phy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x97f3e44d sas_port_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9df0e74c sas_remove_children
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xaf8a0631 sas_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb5b4cb69 sas_rphy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbd278ed2 sas_port_delete_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbe68b7e3 sas_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc41868e9 sas_rphy_remove
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc5d8900e sas_port_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc89eeec7 scsi_is_sas_port
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd26464c2 sas_phy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe671ab80 scsi_is_sas_rphy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe6b6e164 sas_port_add_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xed8579ff sas_rphy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x46e5a9cb spi_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x738fa194 spi_display_xfer_agreement
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x84650805 spi_dv_device
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xb0b19f6e spi_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xfc5cfe7a spi_schedule_dv_device
+EXPORT_SYMBOL drivers/serial/8250 0x4dfe5e62 serial8250_register_port
+EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port
+EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port
+EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x0e0e482e uart_remove_one_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x117924d8 uart_add_one_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x220a50f3 uart_unregister_driver
+EXPORT_SYMBOL drivers/serial/serial_core 0x2ae97313 uart_get_baud_rate
+EXPORT_SYMBOL drivers/serial/serial_core 0x4a5f4653 uart_write_wakeup
+EXPORT_SYMBOL drivers/serial/serial_core 0x85efaed1 uart_register_driver
+EXPORT_SYMBOL drivers/serial/serial_core 0x8b21e23d uart_update_timeout
+EXPORT_SYMBOL drivers/serial/serial_core 0xb0c552ca uart_resume_port
+EXPORT_SYMBOL drivers/serial/serial_core 0xbdfb7ee7 uart_suspend_port
+EXPORT_SYMBOL drivers/serial/serial_core 0xd4ae1103 uart_get_divisor
+EXPORT_SYMBOL drivers/serial/serial_core 0xf5b2063d uart_match_port
+EXPORT_SYMBOL drivers/ssb/ssb 0x127627ef ssb_clockspeed
+EXPORT_SYMBOL drivers/ssb/ssb 0x1b9610f0 ssb_dma_alloc_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0x2f04536e __ssb_driver_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x381c2505 ssb_driver_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0x494ca80a ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL drivers/ssb/ssb 0x4bd5534e ssb_chipco_gpio_control
+EXPORT_SYMBOL drivers/ssb/ssb 0x587f02a1 ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL drivers/ssb/ssb 0x5bc194f8 ssb_pcihost_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x6b489582 ssb_bus_powerup
+EXPORT_SYMBOL drivers/ssb/ssb 0x6f1779bb ssb_device_is_enabled
+EXPORT_SYMBOL drivers/ssb/ssb 0x7aec2cfc ssb_bus_resume
+EXPORT_SYMBOL drivers/ssb/ssb 0x8465e160 ssb_bus_may_powerdown
+EXPORT_SYMBOL drivers/ssb/ssb 0xb118b859 ssb_bus_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0xb37f0fad ssb_set_devtypedata
+EXPORT_SYMBOL drivers/ssb/ssb 0xb73ff14a ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0xbbacc849 ssb_device_disable
+EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base
+EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size
+EXPORT_SYMBOL drivers/ssb/ssb 0xd5f77a90 ssb_dma_free_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0xd8f5a587 ssb_device_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0xe2be6f74 ssb_dma_set_mask
+EXPORT_SYMBOL drivers/ssb/ssb 0xe94d104e ssb_bus_sdiobus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xe9b94af3 ssb_bus_pcibus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xebfa3c77 ssb_dma_translation
+EXPORT_SYMBOL drivers/ssb/ssb 0xf9a40734 ssb_bus_suspend
+EXPORT_SYMBOL drivers/telephony/ixj 0xc37b0c88 ixj_pcmcia_probe
+EXPORT_SYMBOL drivers/telephony/phonedev 0x3504c54a phone_register_device
+EXPORT_SYMBOL drivers/telephony/phonedev 0x559c31c4 phone_unregister_device
+EXPORT_SYMBOL drivers/thermal/thermal_sys 0x24af760c thermal_cooling_device_register
+EXPORT_SYMBOL drivers/thermal/thermal_sys 0x49e4a88c thermal_zone_device_unregister
+EXPORT_SYMBOL drivers/thermal/thermal_sys 0x56309fcd thermal_zone_bind_cooling_device
+EXPORT_SYMBOL drivers/thermal/thermal_sys 0x88888494 thermal_zone_device_register
+EXPORT_SYMBOL drivers/thermal/thermal_sys 0x894fd769 thermal_zone_device_update
+EXPORT_SYMBOL drivers/thermal/thermal_sys 0xd90964a9 thermal_cooling_device_unregister
+EXPORT_SYMBOL drivers/thermal/thermal_sys 0xfa61400f thermal_zone_unbind_cooling_device
+EXPORT_SYMBOL drivers/usb/gadget/net2280 0x5f864a69 usb_gadget_unregister_driver
+EXPORT_SYMBOL drivers/usb/gadget/net2280 0xa8fe9cae net2280_set_fifo_mode
+EXPORT_SYMBOL drivers/usb/gadget/net2280 0xf43694b0 usb_gadget_register_driver
+EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x9977045d sl811h_driver
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x00f66b31 usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x064da890 usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x102fd345 usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x118f549d usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1fe97b94 usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3cda3373 usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x720c57cf usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9575957b usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x991fd189 usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa439776b usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa5312442 usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd810ee27 usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf71006ac usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfb280d3d usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x32f474c3 usb_serial_suspend
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x64b8ec0d usb_serial_resume
+EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x0e5a1443 lcd_device_register
+EXPORT_SYMBOL drivers/video/backlight/lcd 0xc185550f lcd_device_unregister
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x42f81ef5 cyber2000fb_attach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x6f20147a cyber2000fb_disable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x85db2df3 cyber2000fb_get_fb_var
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xb6389999 cyber2000fb_enable_extregs
+EXPORT_SYMBOL drivers/video/display/display 0x072c1bd6 display_device_unregister
+EXPORT_SYMBOL drivers/video/display/display 0x26217c9a display_device_register
+EXPORT_SYMBOL drivers/video/macmodes 0x08ed0b62 mac_vmode_to_var
+EXPORT_SYMBOL drivers/video/macmodes 0x1f8b1966 mac_find_mode
+EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense
+EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x641415d1 mb862xxfb_init_accel
+EXPORT_SYMBOL drivers/video/output 0x7cdb68bc video_output_register
+EXPORT_SYMBOL drivers/video/output 0xb598a3e7 video_output_unregister
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free
+EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x69931fa5 svga_tilefill
+EXPORT_SYMBOL drivers/video/svgalib 0x73ef8e46 svga_tileblit
+EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x9b0de6fd svga_tilecopy
+EXPORT_SYMBOL drivers/video/svgalib 0xa450ba72 svga_get_caps
+EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xaf9033cf svga_tilecursor
+EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xdd1fdc65 svga_get_tilemax
+EXPORT_SYMBOL drivers/video/svgalib 0xe4577f23 svga_settile
+EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format
+EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll
+EXPORT_SYMBOL drivers/video/syscopyarea 0x83aff87c sys_copyarea
+EXPORT_SYMBOL drivers/video/sysfillrect 0x99694a44 sys_fillrect
+EXPORT_SYMBOL drivers/video/sysimgblt 0xde60d4ae sys_imageblit
+EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga
+EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x0e0fce93 w1_bq27000_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x7b6aefad w1_bq27000_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x258ece32 w1_ds2760_recall_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x6f8f0727 w1_ds2760_store_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x913049df w1_ds2760_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xc534af0b w1_ds2760_read
+EXPORT_SYMBOL drivers/w1/wire 0x113eeb4d w1_register_family
+EXPORT_SYMBOL drivers/w1/wire 0x11774974 w1_remove_master_device
+EXPORT_SYMBOL drivers/w1/wire 0x73bfccfc w1_add_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xc88383d4 w1_unregister_family
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x672c9d44 iTCO_vendor_pre_keepalive
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa8d6daac iTCO_vendor_pre_start
+EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xd0efe320 iTCO_vendor_pre_stop
+EXPORT_SYMBOL fs/configfs/configfs 0x006a5025 config_group_find_item
+EXPORT_SYMBOL fs/configfs/configfs 0x04704f85 config_group_init
+EXPORT_SYMBOL fs/configfs/configfs 0x453cc4f4 config_item_put
+EXPORT_SYMBOL fs/configfs/configfs 0x49ea5d87 configfs_unregister_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0x509cd136 config_item_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x53dcf1f8 config_item_set_name
+EXPORT_SYMBOL fs/configfs/configfs 0x6dc94869 configfs_depend_item
+EXPORT_SYMBOL fs/configfs/configfs 0x739f2436 config_group_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x9216e27d configfs_register_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xc1895e10 configfs_undepend_item
+EXPORT_SYMBOL fs/configfs/configfs 0xd7b236b1 config_item_init
+EXPORT_SYMBOL fs/configfs/configfs 0xf9d508f1 config_item_get
+EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible
+EXPORT_SYMBOL fs/fscache/fscache 0x124bd182 fscache_mark_pages_cached
+EXPORT_SYMBOL fs/fscache/fscache 0x2a201e5d __fscache_register_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x2e75175f __fscache_read_or_alloc_pages
+EXPORT_SYMBOL fs/fscache/fscache 0x341193c8 fscache_withdraw_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x34edc1a8 __fscache_read_or_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0x3966f22a __fscache_wait_on_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x3c8f24e5 fscache_init_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x3d6dbc7f __fscache_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit
+EXPORT_SYMBOL fs/fscache/fscache 0x43295ead fscache_io_error
+EXPORT_SYMBOL fs/fscache/fscache 0x4a8de2b3 fscache_object_slow_work_ops
+EXPORT_SYMBOL fs/fscache/fscache 0x6a3dc0e8 fscache_add_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x6b4b7474 fscache_check_aux
+EXPORT_SYMBOL fs/fscache/fscache 0x6fd96c2e __fscache_uncache_page
+EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id
+EXPORT_SYMBOL fs/fscache/fscache 0x7d66cb19 fscache_cache_cleared_wq
+EXPORT_SYMBOL fs/fscache/fscache 0x806e1350 fscache_fsdef_index
+EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states
+EXPORT_SYMBOL fs/fscache/fscache 0x8b981a8f __fscache_maybe_release_page
+EXPORT_SYMBOL fs/fscache/fscache 0x8d95dc96 __fscache_attr_changed
+EXPORT_SYMBOL fs/fscache/fscache 0x92d9450e __fscache_check_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x9c5ea207 fscache_enqueue_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xac089c89 __fscache_update_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xad77f387 __fscache_relinquish_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xba481a71 fscache_object_lookup_negative
+EXPORT_SYMBOL fs/fscache/fscache 0xd0df8463 __fscache_unregister_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0xdb4eb2d6 __fscache_acquire_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xe1e872b8 fscache_obtained_object
+EXPORT_SYMBOL fs/fscache/fscache 0xe6f45d3b fscache_put_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xf15e6df5 __fscache_write_page
+EXPORT_SYMBOL fs/nfsd/nfsd 0x23f0a2c8 nfs4_acl_nfsv4_to_posix
+EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who
+EXPORT_SYMBOL fs/nfsd/nfsd 0x46ffdc39 nfs4_acl_posix_to_nfsv4
+EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype
+EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new
+EXPORT_SYMBOL fs/quota/quota_tree 0x3cc505a3 qtree_entry_unused
+EXPORT_SYMBOL fs/quota/quota_tree 0x53e00905 qtree_write_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x77c03035 qtree_delete_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xf0e29b8a qtree_read_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xf1b43eb2 qtree_release_dquot
+EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt
+EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table
+EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t
+EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table
+EXPORT_SYMBOL lib/crc-t10dif 0x782acba5 crc_t10dif
+EXPORT_SYMBOL lib/crc7 0xc086bfba crc7
+EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table
+EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd
+EXPORT_SYMBOL net/802/p8023 0x1684410c make_8023_client
+EXPORT_SYMBOL net/802/p8023 0xed2ad231 destroy_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump
+EXPORT_SYMBOL net/9p/9pnet 0x0c0c55a7 p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0x100d7394 p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x197d9b95 p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0x2cdc8a3d p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x4727de79 p9_idpool_check
+EXPORT_SYMBOL net/9p/9pnet 0x4e8e8a09 p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x51cad309 p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x51dd9d6e p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0x5d11779b p9_client_auth
+EXPORT_SYMBOL net/9p/9pnet 0x61d35c8c p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x6793381d p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x7270b3e4 p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0x742690fc v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x78c8291a p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x7cbc6380 p9_client_version
+EXPORT_SYMBOL net/9p/9pnet 0x7ffb8cbc p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0x802219f0 p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x867c4f3f p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0x96a940f9 v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0x98e0dec7 v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x9c0a2b37 p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0xa4a1cbb8 p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0xb46a48fa p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xb6e78bcf p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0xcbecfe25 p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0xcca7f726 p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0xcdea1ece p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0xcf660d7b p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0xd6fc178e p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xf3a31615 p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0xf42afbee v9fs_register_trans
+EXPORT_SYMBOL net/appletalk/appletalk 0x3e946d3f atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0x5b144ed3 aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0xc2d16274 atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0xec38acd6 alloc_ltalkdev
+EXPORT_SYMBOL net/atm/atm 0x07746198 atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x4166ace6 atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x5e2d0fe6 atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0x5f692ddf atm_charge
+EXPORT_SYMBOL net/atm/atm 0x6b4d70df register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x7022f830 deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x77569984 vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x8835627a vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xa081730d atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0xa89a6235 vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xc6606eaf atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0xed29fd17 atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal
+EXPORT_SYMBOL net/ax25/ax25 0x0479d44f ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x2d2e23a3 ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0x42d39edc ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x49eba11d ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x4eb947f0 ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x5a090359 ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x8b5d57df ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0x943f87eb ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0xbf1d0cd5 ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xdd678b31 ax25_header_ops
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x010ac6b5 hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x08763421 hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0aff2a72 bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x12afea34 bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x173ed64a hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x23010b38 bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x29a26df5 hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2da19245 bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2db50dd6 hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x39b04114 hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x463d2d4f hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4bb23d7c bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5a9838e8 bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6475f344 hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6abb11d2 hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6b51f655 bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6dc4965b bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x71f5762f hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7f9238e5 hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x856bfa27 hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x96f8d38c hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x9a86321d hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa52dce44 hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa61c5501 hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa85f29b3 bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb1fa1338 hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb7b179e0 hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcbe82a2e bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd337e0e4 hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xdee1034d hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe78fb4c7 hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xfe3f35d1 hci_send_acl
+EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load
+EXPORT_SYMBOL net/bridge/bridge 0x7563992b br_should_route_hook
+EXPORT_SYMBOL net/caif/caif 0x05d6001f cfpkt_add_trail
+EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client
+EXPORT_SYMBOL net/caif/caif 0x084890b4 cfpkt_more
+EXPORT_SYMBOL net/caif/caif 0x0cc493be cfpkt_pad_trail
+EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer
+EXPORT_SYMBOL net/caif/caif 0x16dd9dd9 cfpkt_info
+EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x32c2cfeb cfpkt_add_body
+EXPORT_SYMBOL net/caif/caif 0x4507cfcd cfpkt_append
+EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x4ab4f875 cfpkt_raw_append
+EXPORT_SYMBOL net/caif/caif 0x4b1f8785 cfpkt_peek_head
+EXPORT_SYMBOL net/caif/caif 0x4b84d655 cfpkt_qpeek
+EXPORT_SYMBOL net/caif/caif 0x56676d06 cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create
+EXPORT_SYMBOL net/caif/caif 0x5bdcad17 cfpkt_create_uplink
+EXPORT_SYMBOL net/caif/caif 0x5be1f657 cfpkt_erroneous
+EXPORT_SYMBOL net/caif/caif 0x5be5b933 cfpkt_addbdy
+EXPORT_SYMBOL net/caif/caif 0x5c3e8e4b cfpkt_extr_head
+EXPORT_SYMBOL net/caif/caif 0x688502d6 cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x6fb28119 cfpkt_destroy
+EXPORT_SYMBOL net/caif/caif 0x71b01c40 cfpkt_add_head
+EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x76ef72e4 cfpkt_setlen
+EXPORT_SYMBOL net/caif/caif 0xa39429ca cfpkt_create
+EXPORT_SYMBOL net/caif/caif 0xab000832 cfpkt_getlen
+EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xb19f749b cfpkt_clone_release
+EXPORT_SYMBOL net/caif/caif 0xbc4d7898 cfpkt_queue
+EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer
+EXPORT_SYMBOL net/caif/caif 0xca8a5dfa cfpkt_dequeue
+EXPORT_SYMBOL net/caif/caif 0xe5cac5ce cfpkt_log_pkt
+EXPORT_SYMBOL net/caif/caif 0xe68642d0 cfpkt_extr_trail
+EXPORT_SYMBOL net/caif/caif 0xe8266e2c cfpkt_qcount
+EXPORT_SYMBOL net/caif/caif 0xebd538b7 cfpkt_raw_extract
+EXPORT_SYMBOL net/caif/caif 0xf1cb7b14 cfpkt_iterate
+EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf
+EXPORT_SYMBOL net/caif/caif 0xf4a15a9a cfpkt_split
+EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer
+EXPORT_SYMBOL net/caif/caif 0xf6844cee cfpktq_create
+EXPORT_SYMBOL net/can/can 0x1bbbcba1 can_rx_unregister
+EXPORT_SYMBOL net/can/can 0x2b18f88f can_send
+EXPORT_SYMBOL net/can/can 0x52c8fc1a can_proto_register
+EXPORT_SYMBOL net/can/can 0x6d20351c can_proto_unregister
+EXPORT_SYMBOL net/can/can 0xfa0d6ce7 can_rx_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x00d28410 wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0cdffbec wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0ea9a18e ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x118ea014 wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x2327a149 ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x4170a4bf ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x4ebdbfce ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x6653a3d8 ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xb59c6649 wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xc201d5cc wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xcae72ddf ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xd643b1bc wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xedb0a7d7 ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x05e7cef4 arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x58eceb13 arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x87917a86 arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x0260ef2f ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x94ce2cf1 ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xefaad056 ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2871f961 nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x41965c09 nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6045c037 nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x72ca950e nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x88a5e7ab nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x9febda57 __nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf679272e nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/tunnel4 0x32b03b7a xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv4/tunnel4 0x6dd5da74 xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv6/ipv6 0x0b0d888b icmpv6_err_convert
+EXPORT_SYMBOL net/ipv6/ipv6 0x0e6a0c40 ipv6_setsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0x149abfa8 ndisc_mc_map
+EXPORT_SYMBOL net/ipv6/ipv6 0x172bd61c in6_dev_finish_destroy
+EXPORT_SYMBOL net/ipv6/ipv6 0x23bde71f ipv6_getsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0x26d6dc2a inet6_getname
+EXPORT_SYMBOL net/ipv6/ipv6 0x4a480557 ip6_frag_match
+EXPORT_SYMBOL net/ipv6/ipv6 0x4a9b2cdc ip6_route_me_harder
+EXPORT_SYMBOL net/ipv6/ipv6 0x4c8a0bac ip6_route_output
+EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier
+EXPORT_SYMBOL net/ipv6/ipv6 0x693e87be ndisc_build_skb
+EXPORT_SYMBOL net/ipv6/ipv6 0x6a3972e1 nf_ip6_checksum
+EXPORT_SYMBOL net/ipv6/ipv6 0x6b218367 ipv6_chk_addr
+EXPORT_SYMBOL net/ipv6/ipv6 0x73bb8cc6 inet6_add_protocol
+EXPORT_SYMBOL net/ipv6/ipv6 0x7675c35e inet6_release
+EXPORT_SYMBOL net/ipv6/ipv6 0x7811092a ip6_frag_init
+EXPORT_SYMBOL net/ipv6/ipv6 0x7ae1589e xfrm6_input_addr
+EXPORT_SYMBOL net/ipv6/ipv6 0x7ec73e52 ndisc_send_skb
+EXPORT_SYMBOL net/ipv6/ipv6 0x800d5162 inet6_unregister_protosw
+EXPORT_SYMBOL net/ipv6/ipv6 0x907049aa xfrm6_rcv
+EXPORT_SYMBOL net/ipv6/ipv6 0xa04e6ca0 ipv6_dev_get_saddr
+EXPORT_SYMBOL net/ipv6/ipv6 0xa202de00 inet6_del_protocol
+EXPORT_SYMBOL net/ipv6/ipv6 0xb1aeb878 xfrm6_rcv_spi
+EXPORT_SYMBOL net/ipv6/ipv6 0xb5dad23b ipv6_chk_prefix
+EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier
+EXPORT_SYMBOL net/ipv6/ipv6 0xd82b9549 rt6_lookup
+EXPORT_SYMBOL net/ipv6/ipv6 0xdb0564ce inet6_register_protosw
+EXPORT_SYMBOL net/ipv6/ipv6 0xdf1b9d05 xfrm6_prepare_output
+EXPORT_SYMBOL net/ipv6/ipv6 0xe3cf4298 icmpv6_send
+EXPORT_SYMBOL net/ipv6/ipv6 0xe5976c80 ip6_xmit
+EXPORT_SYMBOL net/ipv6/ipv6 0xe5e9ae6a inet6_ioctl
+EXPORT_SYMBOL net/ipv6/ipv6 0xe690b8fd __ipv6_isatap_ifid
+EXPORT_SYMBOL net/ipv6/ipv6 0xe99f302c ipv6_push_nfrag_opts
+EXPORT_SYMBOL net/ipv6/ipv6 0xeb04b318 xfrm6_find_1stfragopt
+EXPORT_SYMBOL net/ipv6/ipv6 0xf53b1e35 inet6_bind
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4007d42e ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xde328a28 ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xe11fac09 ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xf3a29f59 ip6t_unregister_table
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1006459f ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x1de42d24 ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x23c2324b ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x3ddf5a47 ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x429a9244 ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x46d4ab06 ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4bb78e06 ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9d0b2865 ircomm_connect_request
+EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value
+EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service
+EXPORT_SYMBOL net/irda/irda 0x0cd96e3c irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x0f9b0d29 async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x11c3fabd hashbin_new
+EXPORT_SYMBOL net/irda/irda 0x13d8c33b irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0x1412b1de irlap_close
+EXPORT_SYMBOL net/irda/irda 0x17fcd49d hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x1c62b1cb irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0x1cd0fb81 proc_irda
+EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x265e4e14 irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x27dcf5af irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0x2cc5d338 iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug
+EXPORT_SYMBOL net/irda/irda 0x3daf2847 async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0x41b06ae0 hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x44811675 irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value
+EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service
+EXPORT_SYMBOL net/irda/irda 0x511bd30f irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x583db618 irlmp_open_lsap
+EXPORT_SYMBOL net/irda/irda 0x5ec732b1 irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies
+EXPORT_SYMBOL net/irda/irda 0x6d9d62f9 irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0x70316375 hashbin_find
+EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client
+EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x82d168df irttp_dup
+EXPORT_SYMBOL net/irda/irda 0x844a5b9e hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0x87db8d3e alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0x88ca6b38 hashbin_get_first
+EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x94426a99 irias_find_object
+EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0x99967c8a hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0x9c72f231 irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0x9dd5b2bd hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0xa32fa7d1 irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0xa5a146a9 irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0xad905452 irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0xadc10316 irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0xae0861cc irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value
+EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute
+EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request
+EXPORT_SYMBOL net/irda/irda 0xc0880e37 iriap_open
+EXPORT_SYMBOL net/irda/irda 0xd6c540c2 irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0xd8c79a68 hashbin_get_next
+EXPORT_SYMBOL net/irda/irda 0xd9e83742 irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xf2c73119 irias_new_object
+EXPORT_SYMBOL net/irda/irda 0xf4df0cd6 irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0xf86bfa6b irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0xfcb9ef7d irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xfd354cc3 iriap_close
+EXPORT_SYMBOL net/irda/irda 0xfffa88cc irlap_open
+EXPORT_SYMBOL net/l2tp/l2tp_core 0xd32e93ed l2tp_recv_common
+EXPORT_SYMBOL net/l2tp/l2tp_core 0xe58dc59b l2tp_tunnel_destruct
+EXPORT_SYMBOL net/lapb/lapb 0x18fea6b2 lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x28030f1b lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0x7f17c937 lapb_disconnect_request
+EXPORT_SYMBOL net/lapb/lapb 0x90b6a7d4 lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0x95afc4e4 lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0xe6c1c8d6 lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0xf55c23ed lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0xf7833c49 lapb_getparms
+EXPORT_SYMBOL net/mac80211/mac80211 0x063b40fa ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x11da85ab ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0x168ef6a7 ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x2002b567 ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0x201860ca ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x2465c2aa ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x315a1401 wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x3178ab66 ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x35491d47 ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x36484857 ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x3e5364b0 ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x430964f5 ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0x51e18d7f ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x57bee7c7 ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0x654a5533 ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x66a2eebe ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x67620b25 ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x67663ccb ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x6f1d9bc2 ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x71c12d88 __ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x738f90fe ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x7b49fa77 ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x8034670c ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x8632b92f ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x88bd0600 __ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x94807b61 __ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x95b536e1 ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x95dc3102 rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x9889b807 ieee80211_get_tkip_key
+EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xa6b0ca6a __ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xb395af01 ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xb81470a8 ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xd688b1e8 ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0xdde387b7 ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xecbb4569 ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0xf0e66aeb ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xfa7e2ed1 ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x18f9a9e3 unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1e50891c register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5799ca99 unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x72d0e74d ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x95e19e6e register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9a453266 register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb6522f4d ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xde592d39 ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe926c9b3 ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf0d52870 ip_vs_skb_replace
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf8a2307c ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x92c3c5f7 __nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xfb771b71 __nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xc7d9dae7 nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x03b5c8d6 xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x07ad4bb2 xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x091a018c xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x0e6b35ee xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x0e8df00d xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x43f3ee67 xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x6d668bc5 xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x8544e7d2 xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xcaee8f53 xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xe745cd2f xt_register_matches
+EXPORT_SYMBOL net/phonet/phonet 0x24a8c9da pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0x3a239651 phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0x4f761185 pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0x4f8e2006 pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0x64f8f502 phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0xa91423af phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0xde2dcddd phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0xfeb1d15f pn_sock_get_port
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0b193f58 rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0fcb9e92 rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x132a44bf rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x17c03f24 rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1defa66e rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3407b6af rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x413525c2 rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x46890179 rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x55a04fcf rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x56095f14 rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x653b8f40 rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb6ff4ae0 rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc84e4cf9 rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe8b59ad1 key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xff88ab9d rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x914152cb svc_pool_stats_open
+EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes
+EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast
+EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected
+EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect
+EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport
+EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send
+EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge
+EXPORT_SYMBOL net/tipc/tipc 0x2645335c tipc_createport
+EXPORT_SYMBOL net/tipc/tipc 0x29674e26 tipc_recv_msg
+EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach
+EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x39c10c4e tipc_register_media
+EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port
+EXPORT_SYMBOL net/tipc/tipc 0x436cfbac tipc_get_port
+EXPORT_SYMBOL net/tipc/tipc 0x46b42f68 tipc_continue
+EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x4fb68b8c tipc_reject_msg
+EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw
+EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode
+EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid
+EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0x6d22f7f0 tipc_send_buf
+EXPORT_SYMBOL net/tipc/tipc 0x75c3ed6e tipc_send_buf_fast
+EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr
+EXPORT_SYMBOL net/tipc/tipc 0x8ab96beb tipc_send_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x9d9dee3a tipc_send_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port
+EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port
+EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown
+EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name
+EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish
+EXPORT_SYMBOL net/tipc/tipc 0xb9e5afcd tipc_createport_raw
+EXPORT_SYMBOL net/tipc/tipc 0xc720a1bc tipc_forward_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name
+EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity
+EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach
+EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer
+EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished
+EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle
+EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xfbe7ab45 tipc_forward_buf2name
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0xfef4aec3 register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x54c45a05 wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0xa79979ae wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x0131d354 cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x086a3dca cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x11a8d658 wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x1fae6fc8 __ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x2b381ffa ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x2e515b0c cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0x2f7a445f cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x34c4e0b4 wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x353e06ad cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x3613673c cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x368bc057 ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x42850ffe cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x4653e790 cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x4a991b9b cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x4b7e4d65 cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0x4c7febed cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x4e1bf0c7 freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x5284dec5 cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0x52e2a2f4 cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0x5e6c9483 cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x5ec535f8 wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x5ef03811 wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0x5f837def wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x619bcba8 cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x6d4da095 cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x6f41677e __cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x79752891 cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x7a471b34 cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x7b08adc0 cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0x7f4a7236 cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c8daea4 wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x8ca6600e cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x96175975 __cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x96d9eecd cfg80211_action_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x97641520 ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x97dd46d3 ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0xaab3ddf4 cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xbbce12fb cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0xc0b90cc4 cfg80211_rx_action
+EXPORT_SYMBOL net/wireless/cfg80211 0xc24220f3 cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xc97b95b4 __cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0xc9dffede wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xcc96256b cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0xd2b7cabb regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0xd62ebcc2 ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0xdb543372 wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0xedee5044 cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/lib80211 0x01f0a2fe lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x88bbe2ab lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x96f00528 lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xb4bf0e2c lib80211_crypt_quiescing
+EXPORT_SYMBOL net/wireless/lib80211 0xc97ddb41 lib80211_crypt_deinit_entries
+EXPORT_SYMBOL net/wireless/lib80211 0xed462aed lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0xf17fe37f lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0xfb2f44f0 lib80211_get_crypto_ops
+EXPORT_SYMBOL sound/ac97_bus 0xb015d451 ac97_bus_type
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xdccd858c snd_seq_kernel_client_enqueue_blocking
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe146a9ff snd_seq_create_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe4aace55 snd_seq_event_port_attach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xee2646aa snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x64ce221c snd_seq_device_register_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb18e78f8 snd_seq_device_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x05d7c929 snd_midi_event_encode_byte
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x16bc6a45 snd_midi_event_no_status
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x42d821dc snd_midi_event_reset_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x80f16d46 snd_midi_event_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xa44834c7 snd_midi_event_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xa53c5655 snd_midi_event_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb26584ef snd_midi_event_free
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe3d90c8b snd_midi_event_reset_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x0e580c76 snd_virmidi_new
+EXPORT_SYMBOL sound/core/snd 0x007ef1b2 snd_ctl_unregister_ioctl
+EXPORT_SYMBOL sound/core/snd 0x01ca0ed5 snd_card_set_id
+EXPORT_SYMBOL sound/core/snd 0x059e39c8 snd_ctl_notify
+EXPORT_SYMBOL sound/core/snd 0x06881de7 snd_info_create_module_entry
+EXPORT_SYMBOL sound/core/snd 0x17aa51c8 snd_jack_set_key
+EXPORT_SYMBOL sound/core/snd 0x1f9b7b00 snd_ctl_register_ioctl
+EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line
+EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource
+EXPORT_SYMBOL sound/core/snd 0x2fd3c9e1 snd_info_create_card_entry
+EXPORT_SYMBOL sound/core/snd 0x32219756 snd_device_free
+EXPORT_SYMBOL sound/core/snd 0x36279481 snd_ctl_make_virtual_master
+EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit
+EXPORT_SYMBOL sound/core/snd 0x3dc58315 snd_card_proc_new
+EXPORT_SYMBOL sound/core/snd 0x3dec13bf snd_ctl_find_numid
+EXPORT_SYMBOL sound/core/snd 0x3edbc71d snd_card_register
+EXPORT_SYMBOL sound/core/snd 0x3f7544e1 snd_info_register
+EXPORT_SYMBOL sound/core/snd 0x44086af4 snd_jack_set_parent
+EXPORT_SYMBOL sound/core/snd 0x44b355e8 snd_card_disconnect
+EXPORT_SYMBOL sound/core/snd 0x44d17bc7 snd_card_file_add
+EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card
+EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio
+EXPORT_SYMBOL sound/core/snd 0x519dd21f snd_power_wait
+EXPORT_SYMBOL sound/core/snd 0x5322959d snd_card_free
+EXPORT_SYMBOL sound/core/snd 0x5440836b snd_ctl_new1
+EXPORT_SYMBOL sound/core/snd 0x642229e2 snd_ctl_remove
+EXPORT_SYMBOL sound/core/snd 0x7095d337 _snd_ctl_add_slave
+EXPORT_SYMBOL sound/core/snd 0x73525fe2 snd_device_new
+EXPORT_SYMBOL sound/core/snd 0x76acc8bb snd_info_free_entry
+EXPORT_SYMBOL sound/core/snd 0x7798e5e1 snd_ctl_free_one
+EXPORT_SYMBOL sound/core/snd 0x77aa936a snd_ctl_add
+EXPORT_SYMBOL sound/core/snd 0x78f55545 snd_card_free_when_closed
+EXPORT_SYMBOL sound/core/snd 0x7c58b5f5 snd_component_add
+EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major
+EXPORT_SYMBOL sound/core/snd 0x8fceee6a snd_device_register
+EXPORT_SYMBOL sound/core/snd 0x9879eb60 snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str
+EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id
+EXPORT_SYMBOL sound/core/snd 0xa58a44cf snd_card_file_remove
+EXPORT_SYMBOL sound/core/snd 0xa856f3cf snd_unregister_device
+EXPORT_SYMBOL sound/core/snd 0xb1c593cb snd_ctl_boolean_mono_info
+EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data
+EXPORT_SYMBOL sound/core/snd 0xbfd0930b snd_seq_root
+EXPORT_SYMBOL sound/core/snd 0xc35c3b5a snd_ctl_rename_id
+EXPORT_SYMBOL sound/core/snd 0xcb46f69c snd_ctl_remove_id
+EXPORT_SYMBOL sound/core/snd 0xcc14ae2e snd_jack_report
+EXPORT_SYMBOL sound/core/snd 0xcd8d12c0 snd_add_device_sysfs_file
+EXPORT_SYMBOL sound/core/snd 0xd1bde16f snd_ctl_find_id
+EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf
+EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio
+EXPORT_SYMBOL sound/core/snd 0xede7ef7a snd_pci_quirk_lookup
+EXPORT_SYMBOL sound/core/snd 0xf215fb74 snd_cards
+EXPORT_SYMBOL sound/core/snd 0xf9638d33 snd_card_create
+EXPORT_SYMBOL sound/core/snd 0xfc05fb05 snd_register_device_for_dev
+EXPORT_SYMBOL sound/core/snd 0xfd6d5d33 snd_jack_new
+EXPORT_SYMBOL sound/core/snd-hwdep 0xdfa3421f snd_hwdep_new
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x8b00bfc8 snd_dma_get_reserved_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x93d92c35 snd_dma_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xaf98c400 snd_dma_alloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xbe5feb3d snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xc8421483 snd_dma_reserve_buf
+EXPORT_SYMBOL sound/core/snd-pcm 0x0071047c _snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any
+EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x0b6bc018 snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL sound/core/snd-pcm 0x0bdfa984 snd_pcm_release_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed
+EXPORT_SYMBOL sound/core/snd-pcm 0x1e62ac97 snd_pcm_link_rwlock
+EXPORT_SYMBOL sound/core/snd-pcm 0x30be5dd5 snd_pcm_lib_write
+EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty
+EXPORT_SYMBOL sound/core/snd-pcm 0x3e6d916d snd_pcm_hw_constraint_step
+EXPORT_SYMBOL sound/core/snd-pcm 0x3e8959f6 snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x43facff9 snd_pcm_lib_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x4868fe09 snd_pcm_hw_param_first
+EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value
+EXPORT_SYMBOL sound/core/snd-pcm 0x5871912e snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL sound/core/snd-pcm 0x5cfdfba6 snd_pcm_lib_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence
+EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64
+EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width
+EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear
+EXPORT_SYMBOL sound/core/snd-pcm 0x73928aa9 snd_pcm_new
+EXPORT_SYMBOL sound/core/snd-pcm 0x775d9de3 snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x8b2dbc2e snd_pcm_kernel_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x93412a9b snd_pcm_new_stream
+EXPORT_SYMBOL sound/core/snd-pcm 0x964b9a6f snd_pcm_lib_mmap_noncached
+EXPORT_SYMBOL sound/core/snd-pcm 0x967effa5 snd_pcm_mmap_data
+EXPORT_SYMBOL sound/core/snd-pcm 0x96b53bbb snd_pcm_hw_param_last
+EXPORT_SYMBOL sound/core/snd-pcm 0x9bc0473c snd_pcm_hw_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0xa2dc4b35 snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0xa58c9289 snd_pcm_set_ops
+EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned
+EXPORT_SYMBOL sound/core/snd-pcm 0xab91c440 snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL sound/core/snd-pcm 0xae14bd40 snd_pcm_suspend
+EXPORT_SYMBOL sound/core/snd-pcm 0xaf737d64 snd_pcm_stop
+EXPORT_SYMBOL sound/core/snd-pcm 0xb3980623 snd_pcm_lib_writev
+EXPORT_SYMBOL sound/core/snd-pcm 0xb6b19636 snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL sound/core/snd-pcm 0xb938a3ce snd_pcm_suspend_all
+EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL sound/core/snd-pcm 0xb98eb859 snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL sound/core/snd-pcm 0xbe2d1f4b snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL sound/core/snd-pcm 0xc33fe73e snd_pcm_lib_readv
+EXPORT_SYMBOL sound/core/snd-pcm 0xc6692732 snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0xcbc42b21 snd_pcm_open_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xd6b52b0b snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL sound/core/snd-pcm 0xd7e80d83 snd_pcm_notify
+EXPORT_SYMBOL sound/core/snd-pcm 0xd9927ec1 snd_pcm_limit_hw_rates
+EXPORT_SYMBOL sound/core/snd-pcm 0xddf6358b snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width
+EXPORT_SYMBOL sound/core/snd-pcm 0xe77e0936 snd_pcm_period_elapsed
+EXPORT_SYMBOL sound/core/snd-pcm 0xe8183ac0 snd_pcm_hw_constraint_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xeba35f1e snd_pcm_set_sync
+EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum
+EXPORT_SYMBOL sound/core/snd-pcm 0xfcaa499a snd_pcm_hw_rule_add
+EXPORT_SYMBOL sound/core/snd-pcm 0xffaae8e1 snd_pcm_lib_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x2672e303 snd_rawmidi_output_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x2aa719df snd_rawmidi_input_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x367a1c59 snd_rawmidi_kernel_open
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x3ede18cf snd_rawmidi_transmit_ack
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x6d39561e snd_rawmidi_set_ops
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x6daf8f26 snd_rawmidi_kernel_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x92a01478 snd_rawmidi_drain_input
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xa2c61a32 snd_rawmidi_info_select
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xa424841b snd_rawmidi_kernel_write
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xb0630da5 snd_rawmidi_drop_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xb815ee6f snd_rawmidi_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xbc561dbd snd_rawmidi_kernel_release
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xc2942446 snd_rawmidi_transmit_peek
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xde21c2bf snd_rawmidi_transmit
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xe955e34d snd_rawmidi_transmit_empty
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xf78c57fb snd_rawmidi_drain_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xfb9544f7 snd_rawmidi_receive
+EXPORT_SYMBOL sound/core/snd-timer 0x00ba89de snd_timer_notify
+EXPORT_SYMBOL sound/core/snd-timer 0x1fbae2aa snd_timer_open
+EXPORT_SYMBOL sound/core/snd-timer 0x37d76227 snd_timer_continue
+EXPORT_SYMBOL sound/core/snd-timer 0x4cb367d4 snd_timer_stop
+EXPORT_SYMBOL sound/core/snd-timer 0x56d238c0 snd_timer_close
+EXPORT_SYMBOL sound/core/snd-timer 0x69043d58 snd_timer_global_free
+EXPORT_SYMBOL sound/core/snd-timer 0x6f57ea0a snd_timer_global_register
+EXPORT_SYMBOL sound/core/snd-timer 0x91fd18fe snd_timer_resolution
+EXPORT_SYMBOL sound/core/snd-timer 0x92cd8782 snd_timer_interrupt
+EXPORT_SYMBOL sound/core/snd-timer 0xa7ae638a snd_timer_new
+EXPORT_SYMBOL sound/core/snd-timer 0xbd23c4d0 snd_timer_pause
+EXPORT_SYMBOL sound/core/snd-timer 0xd7d3d496 snd_timer_start
+EXPORT_SYMBOL sound/core/snd-timer 0xf42af441 snd_timer_global_new
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x061de842 snd_mpu401_uart_new
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0792558b snd_opl3_init
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x127cbf56 snd_opl3_create
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x478ec3e9 snd_opl3_timer_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4eb29292 snd_opl3_find_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x54ef5fc6 snd_opl3_load_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x7163b817 snd_opl3_reset
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x74905fe2 snd_opl3_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x89254a9c snd_opl3_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa2b5cfe0 snd_opl3_hwdep_new
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1e91f058 snd_vx_dsp_load
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x39d50826 snd_vx_dsp_boot
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3e2212d7 snd_vx_setup_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x42c5bf56 snd_vx_check_reg_bit
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x54c72b74 snd_vx_free_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x59eb99db snd_vx_resume
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8bb66515 snd_vx_load_boot_image
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8f06c1b9 snd_vx_suspend
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe3facfb8 snd_vx_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xa4061d8c snd_ak4114_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xaf526185 snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb7044b21 snd_ak4114_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc4c8115d snd_ak4114_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xe917c6da snd_ak4114_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xedd3da6a snd_ak4114_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x0ee4ace2 snd_ak4117_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x513f671d snd_ak4117_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x59fbe9bc snd_ak4117_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x826ba6e9 snd_ak4117_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xb2fa3250 snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xf3877e90 snd_ak4117_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x07c6959a snd_akm4xxx_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x5fc1eb6a snd_akm4xxx_reset
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x71f495b7 snd_akm4xxx_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xc54f5c81 snd_akm4xxx_init
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x0312a1e2 snd_pt2258_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x2cafcf63 snd_pt2258_reset
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x3cc328ca snd_tea575x_init
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xd3efc92e snd_tea575x_exit
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x1fc4b6a0 snd_cs8427_iec958_build
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x3f10fdb0 snd_cs8427_iec958_pcm
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x6c1a85c4 snd_cs8427_reg_write
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9a649aa5 snd_cs8427_create
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xc614f71b snd_cs8427_iec958_active
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x1cd653e6 snd_i2c_probeaddr
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x433c92c7 snd_i2c_bus_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x4771042a snd_i2c_device_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x84eac31d snd_i2c_sendbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xe1d99981 snd_i2c_readbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xffb684f1 snd_i2c_device_free
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x07810c55 snd_ac97_read
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0dc7e8ce snd_ac97_get_short_name
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0f3814a2 snd_ac97_pcm_open
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2edd19c3 snd_ac97_update
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4fd2823a snd_ac97_write_cache
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x52f93073 snd_ac97_suspend
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5818af3a snd_ac97_write
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5ed19ce3 snd_ac97_update_bits
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x88de4eb7 snd_ac97_tune_hardware
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8b82c38e snd_ac97_mixer
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9df9afa1 snd_ac97_pcm_assign
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb4641edc snd_ac97_bus
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb944a656 snd_ac97_update_power
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe1d53b9f snd_ac97_resume
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe81639bc snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe8ee4c5c snd_ac97_pcm_close
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf56bac50 snd_ac97_set_rate
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x4f77473a snd_emu10k1_voice_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x535ed59d snd_emu10k1_ptr_read
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5c6026d4 snd_emu10k1_synth_bzero
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8ab9e50e snd_emu10k1_synth_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb208fe3d snd_emu10k1_memblk_map
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xcf99c2a5 snd_emu10k1_synth_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd16980a7 snd_emu10k1_voice_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf99457d8 snd_emu10k1_ptr_write
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xfc7fbd6a snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x02f752c3 snd_hda_parse_generic_codec
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x1fe1133c snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x25b17ce2 snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x4012f8e2 snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x1f65d30c snd_trident_free_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x320b9e82 snd_trident_stop_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x49746cc3 snd_trident_start_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xc7e23c37 snd_trident_alloc_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xdb59686c snd_trident_write_voice_regs
+EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0xf3493f6c uda134x_dai
+EXPORT_SYMBOL sound/soundcore 0x909a86af sound_class
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x13f0b2eb snd_emux_free
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x1ef15263 snd_emux_new
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x2630719b snd_emux_lock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x9babc8c3 snd_emux_unlock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe9f741a4 snd_emux_register
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xfd3f23c4 snd_emux_terminate_all
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x0c286365 __snd_util_memblk_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x26eae23b __snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x4f6f375c snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xae6ce342 snd_util_memhdr_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xc6f8f31b snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xe6067bdf snd_util_memhdr_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xee81dd05 snd_util_mem_avail
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xf33d71e5 __snd_util_mem_alloc
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x2286004d snd_usbmidi_create
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect
+EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list
+EXPORT_SYMBOL vmlinux 0x00083f10 jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0x000f1338 __wake_up
+EXPORT_SYMBOL vmlinux 0x00694498 default_file_splice_read
+EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x00970a3a dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x009f4866 tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0x009f9399 __bread
+EXPORT_SYMBOL vmlinux 0x00ee8bc0 key_unlink
+EXPORT_SYMBOL vmlinux 0x00eef49e __strnlen_user
+EXPORT_SYMBOL vmlinux 0x01132567 bd_release
+EXPORT_SYMBOL vmlinux 0x01698cae bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0x017641e8 scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x017ff74d skb_push
+EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap
+EXPORT_SYMBOL vmlinux 0x0199b2dd generic_file_llseek
+EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data
+EXPORT_SYMBOL vmlinux 0x01b00317 blk_rq_init
+EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem
+EXPORT_SYMBOL vmlinux 0x01de5f74 jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0x01e9c02c tcp_disconnect
+EXPORT_SYMBOL vmlinux 0x01f7d828 prepare_binprm
+EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check
+EXPORT_SYMBOL vmlinux 0x021a6b82 notify_change
+EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu
+EXPORT_SYMBOL vmlinux 0x025aae04 tty_throttle
+EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x0275d1d5 inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x02811244 setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x02815ebe sk_receive_skb
+EXPORT_SYMBOL vmlinux 0x0284a3c2 skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0x028c8e03 sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x029a145f get_fs_type
+EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table
+EXPORT_SYMBOL vmlinux 0x02afce4b dev_get_flags
+EXPORT_SYMBOL vmlinux 0x02aff2f4 acpi_install_gpe_handler
+EXPORT_SYMBOL vmlinux 0x02b018fc ia64_cpu_info
+EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02d9c89d wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0x02e41dac dma_ops
+EXPORT_SYMBOL vmlinux 0x02ecb99f shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x030eab79 simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0x03145600 __skb_bond_should_drop
+EXPORT_SYMBOL vmlinux 0x031e96b0 iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x0328a084 inode_init_owner
+EXPORT_SYMBOL vmlinux 0x0333865c mdiobus_register
+EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x0340d0e1 acpi_pci_osc_control_set
+EXPORT_SYMBOL vmlinux 0x034a8bff kmalloc_caches
+EXPORT_SYMBOL vmlinux 0x034b1d81 netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x037948aa dev_addr_init
+EXPORT_SYMBOL vmlinux 0x037a0cba kfree
+EXPORT_SYMBOL vmlinux 0x03a99a81 dma_async_memcpy_buf_to_buf
+EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03d85f0b bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x03df4bd4 security_path_mknod
+EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x04239dbe xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0x042afbb8 inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x0443e9da touch_atime
+EXPORT_SYMBOL vmlinux 0x044b07a7 alloc_hippi_dev
+EXPORT_SYMBOL vmlinux 0x047bf44a dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x04945ce3 set_user_nice
+EXPORT_SYMBOL vmlinux 0x04970f40 mdiobus_write
+EXPORT_SYMBOL vmlinux 0x04c7ab48 otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0x0504f0c2 bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x052faa45 skb_gso_segment
+EXPORT_SYMBOL vmlinux 0x053ea22b sn_region_size
+EXPORT_SYMBOL vmlinux 0x05556252 phy_stop
+EXPORT_SYMBOL vmlinux 0x0594549e __irq_regs
+EXPORT_SYMBOL vmlinux 0x05ec772f xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0x060d680f xor_ia64_4
+EXPORT_SYMBOL vmlinux 0x061651be strcat
+EXPORT_SYMBOL vmlinux 0x0619effb __lock_buffer
+EXPORT_SYMBOL vmlinux 0x0624d5f3 disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x064d42b7 scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx
+EXPORT_SYMBOL vmlinux 0x067ecae1 _raw_write_lock
+EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc
+EXPORT_SYMBOL vmlinux 0x06c45e0f dquot_scan_active
+EXPORT_SYMBOL vmlinux 0x06d59088 udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x06d728b1 tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0x06d9288c llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0x06dc1869 scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x06e25119 skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn
+EXPORT_SYMBOL vmlinux 0x071b61b5 pci_bus_type
+EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8
+EXPORT_SYMBOL vmlinux 0x077d3c78 blk_run_queue
+EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable
+EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong
+EXPORT_SYMBOL vmlinux 0x079cf424 simple_setattr
+EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07b0fcc0 open_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x07ea8f1f flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x081c2900 find_vma
+EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses
+EXPORT_SYMBOL vmlinux 0x083f5afd idr_get_next
+EXPORT_SYMBOL vmlinux 0x08538ed2 seq_puts
+EXPORT_SYMBOL vmlinux 0x08652207 force_sig
+EXPORT_SYMBOL vmlinux 0x08a74ea8 blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0x08a8e9f8 jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0x08b54f21 dget_locked
+EXPORT_SYMBOL vmlinux 0x08bc4d75 complete_request_key
+EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x08e6b007 ia64_iobase
+EXPORT_SYMBOL vmlinux 0x0910d755 security_inode_readlink
+EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages
+EXPORT_SYMBOL vmlinux 0x0954b1c1 tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0x095628b9 dma_pool_create
+EXPORT_SYMBOL vmlinux 0x09775cdc kref_get
+EXPORT_SYMBOL vmlinux 0x0977f200 unw_init_frame_info
+EXPORT_SYMBOL vmlinux 0x09827183 _raw_read_lock_bh
+EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources
+EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x098c06a8 complete_all
+EXPORT_SYMBOL vmlinux 0x098e6d04 tty_port_hangup
+EXPORT_SYMBOL vmlinux 0x09a8afdb padata_do_serial
+EXPORT_SYMBOL vmlinux 0x09ba12d1 generic_unplug_device
+EXPORT_SYMBOL vmlinux 0x09ba9f40 generic_setattr
+EXPORT_SYMBOL vmlinux 0x09c01103 __neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions
+EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a31c087 ethtool_op_get_rx_csum
+EXPORT_SYMBOL vmlinux 0x0a80e28c kernel_bind
+EXPORT_SYMBOL vmlinux 0x0a8b46b9 balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0x0aa2e4a7 inet_put_port
+EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0acca637 min_low_pfn
+EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all
+EXPORT_SYMBOL vmlinux 0x0ad4245c add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0x0ae52494 matrox_G100
+EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b27d827 register_qdisc
+EXPORT_SYMBOL vmlinux 0x0b466c03 neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0x0b4a95c0 xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0x0b4d6939 remove_wait_queue
+EXPORT_SYMBOL vmlinux 0x0b5bd18a block_truncate_page
+EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b94bc78 vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x0bb02a4b journal_start_commit
+EXPORT_SYMBOL vmlinux 0x0bb0a997 sn_sharing_domain_size
+EXPORT_SYMBOL vmlinux 0x0bb199cb security_task_getsecid
+EXPORT_SYMBOL vmlinux 0x0bff40e6 __scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x0c2ff0c4 request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0ca22e78 napi_skb_finish
+EXPORT_SYMBOL vmlinux 0x0ca7b7a8 acpi_check_region
+EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cc6308a dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0x0cce60bc security_path_symlink
+EXPORT_SYMBOL vmlinux 0x0ce67f05 down_interruptible
+EXPORT_SYMBOL vmlinux 0x0cec1f70 pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0x0d0dd7d2 dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0x0d19fada flush_tlb_range
+EXPORT_SYMBOL vmlinux 0x0d2b271e vmem_map
+EXPORT_SYMBOL vmlinux 0x0d2b3342 skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0x0d31fca2 seq_release_private
+EXPORT_SYMBOL vmlinux 0x0d38fe5e i2c_verify_client
+EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type
+EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d54589f pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0x0d59dbaa pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0x0d76fd84 ___ratelimit
+EXPORT_SYMBOL vmlinux 0x0d775522 read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0db2114e inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x0dbd4ef4 hwsw_dma_get_ops
+EXPORT_SYMBOL vmlinux 0x0dc9b2d0 neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x0de8daa0 nobh_write_begin
+EXPORT_SYMBOL vmlinux 0x0deabf6c framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x0e0235a5 inode_add_bytes
+EXPORT_SYMBOL vmlinux 0x0e3f0223 wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0x0e52592a panic
+EXPORT_SYMBOL vmlinux 0x0e81f0e4 cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x0e9cb5d8 module_put
+EXPORT_SYMBOL vmlinux 0x0eb80712 pipe_lock
+EXPORT_SYMBOL vmlinux 0x0ebb26ef __napi_complete
+EXPORT_SYMBOL vmlinux 0x0ebd5d86 blk_insert_request
+EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free
+EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed
+EXPORT_SYMBOL vmlinux 0x0ede6987 generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x0ee142a8 i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0x0ee2450c register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x0ee2b768 journal_revoke
+EXPORT_SYMBOL vmlinux 0x0f76c74c find_lock_page
+EXPORT_SYMBOL vmlinux 0x0f868450 generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x0f893375 tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0x0f9981ee napi_frags_skb
+EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fc5e8eb radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event
+EXPORT_SYMBOL vmlinux 0x0fe858a7 pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0x1028f28e path_lookup
+EXPORT_SYMBOL vmlinux 0x102b5b21 sn_system_serial_number_string
+EXPORT_SYMBOL vmlinux 0x103c0ca6 mdiobus_free
+EXPORT_SYMBOL vmlinux 0x105f33b9 rtnl_notify
+EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user
+EXPORT_SYMBOL vmlinux 0x107b2ea6 clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x10860f61 generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint
+EXPORT_SYMBOL vmlinux 0x109ec735 netif_device_detach
+EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10e34f21 neigh_table_init
+EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu
+EXPORT_SYMBOL vmlinux 0x10ee53e6 scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0x1102959e journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype
+EXPORT_SYMBOL vmlinux 0x11123201 put_disk
+EXPORT_SYMBOL vmlinux 0x111c9b5e tty_port_put
+EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x1128997f sock_kmalloc
+EXPORT_SYMBOL vmlinux 0x11389eac kernel_listen
+EXPORT_SYMBOL vmlinux 0x114390f3 _raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x1169b04f pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0x116b16ed fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0x116d256e kthread_stop
+EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x11735b1d fsnotify_find_mark_entry
+EXPORT_SYMBOL vmlinux 0x1186e8fe proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x118f01ea putname
+EXPORT_SYMBOL vmlinux 0x11b0f10b module_layout
+EXPORT_SYMBOL vmlinux 0x11b5a58c napi_reuse_skb
+EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin
+EXPORT_SYMBOL vmlinux 0x1210c092 elv_abort_queue
+EXPORT_SYMBOL vmlinux 0x121f33ff iput
+EXPORT_SYMBOL vmlinux 0x123e18ba dm_table_get
+EXPORT_SYMBOL vmlinux 0x124f5a0b sg_miter_stop
+EXPORT_SYMBOL vmlinux 0x1251122c splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0x12667483 journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x1285162e xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x1289a115 rfkill_get_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x12963851 ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0x129697b8 memcpy_toio
+EXPORT_SYMBOL vmlinux 0x12a8aed3 scsi_register_interface
+EXPORT_SYMBOL vmlinux 0x12aa234f __nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x12cf4705 sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x12fc3909 tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0x1307461a filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x1352addb i2c_clients_command
+EXPORT_SYMBOL vmlinux 0x1353c8e7 qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x1389a67d journal_init_inode
+EXPORT_SYMBOL vmlinux 0x138fed47 vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0x1403364f sock_no_connect
+EXPORT_SYMBOL vmlinux 0x14205ace sockfd_lookup
+EXPORT_SYMBOL vmlinux 0x1430e6e0 unregister_acpi_notifier
+EXPORT_SYMBOL vmlinux 0x1437b699 mnt_pin
+EXPORT_SYMBOL vmlinux 0x14756c4a tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x148f997c xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0x1492ff15 tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0x14cc8a34 genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x14cdb7cf matrox_mystique
+EXPORT_SYMBOL vmlinux 0x14fbea06 scsi_device_get
+EXPORT_SYMBOL vmlinux 0x15296ea5 ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x153ec951 rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0x153f9925 register_snap_client
+EXPORT_SYMBOL vmlinux 0x15443923 vc_resize
+EXPORT_SYMBOL vmlinux 0x154afa2c kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x1570ca92 pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0x15883d3d bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x15b19fba do_splice_to
+EXPORT_SYMBOL vmlinux 0x15d1e410 scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x15f9553b bio_unmap_user
+EXPORT_SYMBOL vmlinux 0x15fbdb78 __mutex_init
+EXPORT_SYMBOL vmlinux 0x162dba04 dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x1634e61a tcp_child_process
+EXPORT_SYMBOL vmlinux 0x1675606f bad_dma_address
+EXPORT_SYMBOL vmlinux 0x168607e9 fsnotify_destroy_mark_by_entry
+EXPORT_SYMBOL vmlinux 0x16915c4c phy_disable_interrupts
+EXPORT_SYMBOL vmlinux 0x16a0419c get_sb_pseudo
+EXPORT_SYMBOL vmlinux 0x16a5b1e3 pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x16c00620 fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0x16f5a570 ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0x16f7f957 mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0x1703ae16 clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object
+EXPORT_SYMBOL vmlinux 0x170cc3b7 sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x17203682 tcp_close
+EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17e9444a xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x1800eca2 buffer_migrate_page
+EXPORT_SYMBOL vmlinux 0x1802d96c xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x1806bd1d pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x1822e04e i2c_master_recv
+EXPORT_SYMBOL vmlinux 0x1835ed4e genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x18bd9b65 swiotlb_dma_supported
+EXPORT_SYMBOL vmlinux 0x18ed93c1 abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x18fcf95b __alloc_skb
+EXPORT_SYMBOL vmlinux 0x1902e38f dst_alloc
+EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x193d1e8c bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0x194f1579 __napi_schedule
+EXPORT_SYMBOL vmlinux 0x196be6cf xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0x1970b43e nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0x1973f3f3 netpoll_poll
+EXPORT_SYMBOL vmlinux 0x1989462b dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19a7285c elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0x19be3007 sk_reset_txq
+EXPORT_SYMBOL vmlinux 0x19c79b77 unregister_snap_client
+EXPORT_SYMBOL vmlinux 0x19c8a734 __ip_select_ident
+EXPORT_SYMBOL vmlinux 0x19e167ec __xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x19ed4a8c nf_log_packet
+EXPORT_SYMBOL vmlinux 0x19efb855 dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0x1a2eeafe tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x1a32798f security_path_link
+EXPORT_SYMBOL vmlinux 0x1a4ce341 dma_pool_free
+EXPORT_SYMBOL vmlinux 0x1a58232a pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0x1a8a845e idle_nomwait
+EXPORT_SYMBOL vmlinux 0x1a8b1218 matroxfb_DAC_in
+EXPORT_SYMBOL vmlinux 0x1a934292 kill_block_super
+EXPORT_SYMBOL vmlinux 0x1a9b678e _raw_spin_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in
+EXPORT_SYMBOL vmlinux 0x1ab08208 tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1aff077e panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b1c02c4 mdio_bus_type
+EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton
+EXPORT_SYMBOL vmlinux 0x1b74e698 mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0x1b81e980 sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b8f22ff bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0x1b930757 set_device_ro
+EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1ba792f7 napi_complete
+EXPORT_SYMBOL vmlinux 0x1bca3e4e pci_pme_active
+EXPORT_SYMBOL vmlinux 0x1bd37e35 devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x1be6550f vfs_stat
+EXPORT_SYMBOL vmlinux 0x1be710dd blk_plug_device_unlocked
+EXPORT_SYMBOL vmlinux 0x1c0ee767 set_security_override
+EXPORT_SYMBOL vmlinux 0x1c14544d blk_execute_rq
+EXPORT_SYMBOL vmlinux 0x1c17bd00 i2c_bit_add_bus
+EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c300ca8 neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0x1c49dd0a sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset
+EXPORT_SYMBOL vmlinux 0x1c9f8f92 remove_from_page_cache
+EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cd6dac5 filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x1cdb76b4 blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x1d0a7983 input_grab_device
+EXPORT_SYMBOL vmlinux 0x1d0cb773 fget
+EXPORT_SYMBOL vmlinux 0x1d1c21ff inet_recvmsg
+EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d4b5915 generic_write_end
+EXPORT_SYMBOL vmlinux 0x1d5c968c ia64_pal_call_stacked
+EXPORT_SYMBOL vmlinux 0x1da119b8 misc_deregister
+EXPORT_SYMBOL vmlinux 0x1db468be tty_hangup
+EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dccd490 rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1dd98449 tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0x1e02904f kobject_set_name
+EXPORT_SYMBOL vmlinux 0x1e036c98 acpi_set_gpe
+EXPORT_SYMBOL vmlinux 0x1e12e5fc journal_forget
+EXPORT_SYMBOL vmlinux 0x1e14f8fb i2c_release_client
+EXPORT_SYMBOL vmlinux 0x1e67c449 blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0x1e69ee0c pci_release_regions
+EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr
+EXPORT_SYMBOL vmlinux 0x1e6fe78a skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x1e7058db tty_set_operations
+EXPORT_SYMBOL vmlinux 0x1e745ab7 phy_disconnect
+EXPORT_SYMBOL vmlinux 0x1e98f82c fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0x1e9a57bb generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1ebd748e follow_down
+EXPORT_SYMBOL vmlinux 0x1ecd252a __init_rwsem
+EXPORT_SYMBOL vmlinux 0x1ed9246e input_release_device
+EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set
+EXPORT_SYMBOL vmlinux 0x1f091f38 try_to_release_page
+EXPORT_SYMBOL vmlinux 0x1f975aa4 pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x1f980a27 sock_i_ino
+EXPORT_SYMBOL vmlinux 0x1f98d24f dev_uc_add
+EXPORT_SYMBOL vmlinux 0x1fad77f7 load_nls_default
+EXPORT_SYMBOL vmlinux 0x1fae0c41 dqput
+EXPORT_SYMBOL vmlinux 0x1fafe137 phy_connect_direct
+EXPORT_SYMBOL vmlinux 0x1fb84079 fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0x1fcdeb13 blk_init_tags
+EXPORT_SYMBOL vmlinux 0x1fd833e2 sk_stop_timer
+EXPORT_SYMBOL vmlinux 0x1fe1a820 inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region
+EXPORT_SYMBOL vmlinux 0x1ffb4de0 abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul
+EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x200b2727 blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0x20301636 physical_node_map
+EXPORT_SYMBOL vmlinux 0x203538f8 tcf_hash_search
+EXPORT_SYMBOL vmlinux 0x20380919 inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x206a06b3 pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x206cb0e8 dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0x2070e69f dev_mc_flush
+EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table
+EXPORT_SYMBOL vmlinux 0x208c0ddd inet_accept
+EXPORT_SYMBOL vmlinux 0x20aee155 migrate_page
+EXPORT_SYMBOL vmlinux 0x20c9d137 fb_blank
+EXPORT_SYMBOL vmlinux 0x20cededb neigh_ifdown
+EXPORT_SYMBOL vmlinux 0x20d4eeea sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum
+EXPORT_SYMBOL vmlinux 0x210b84b6 blk_recount_segments
+EXPORT_SYMBOL vmlinux 0x211331fa __divsi3
+EXPORT_SYMBOL vmlinux 0x2113cfc9 vfs_read
+EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16
+EXPORT_SYMBOL vmlinux 0x21666afb brioctl_set
+EXPORT_SYMBOL vmlinux 0x216f6b88 local_per_cpu_offset
+EXPORT_SYMBOL vmlinux 0x217f22a6 dm_table_unplug_all
+EXPORT_SYMBOL vmlinux 0x2190ce17 rfkill_register
+EXPORT_SYMBOL vmlinux 0x21c0b4e6 dquot_release
+EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id
+EXPORT_SYMBOL vmlinux 0x220b31c6 inetdev_by_index
+EXPORT_SYMBOL vmlinux 0x222504f3 scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0x2226c38a dev_mc_sync
+EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq
+EXPORT_SYMBOL vmlinux 0x22699464 tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log
+EXPORT_SYMBOL vmlinux 0x2288378f system_state
+EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound
+EXPORT_SYMBOL vmlinux 0x22c4ab28 give_up_console
+EXPORT_SYMBOL vmlinux 0x22cea850 d_rehash
+EXPORT_SYMBOL vmlinux 0x23051e9d elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x2305d736 blk_init_allocated_queue_node
+EXPORT_SYMBOL vmlinux 0x232546c5 _raw_read_trylock
+EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul
+EXPORT_SYMBOL vmlinux 0x234509f3 strncat
+EXPORT_SYMBOL vmlinux 0x23a86180 neigh_lookup
+EXPORT_SYMBOL vmlinux 0x23cb503a get_phy_id
+EXPORT_SYMBOL vmlinux 0x23e4f056 tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node
+EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x24724830 sn_dma_flush
+EXPORT_SYMBOL vmlinux 0x24bcb293 acpi_notifier_call_chain
+EXPORT_SYMBOL vmlinux 0x24d0dc4c dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0x24e3646c kill_fasync
+EXPORT_SYMBOL vmlinux 0x24e975ba send_sig
+EXPORT_SYMBOL vmlinux 0x24f66570 sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function
+EXPORT_SYMBOL vmlinux 0x250adbb0 __skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x2518dfd9 sleep_on
+EXPORT_SYMBOL vmlinux 0x252c79a4 scsi_execute
+EXPORT_SYMBOL vmlinux 0x252e3f9a unregister_nls
+EXPORT_SYMBOL vmlinux 0x254b695c tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0x256990f8 security_path_unlink
+EXPORT_SYMBOL vmlinux 0x256e7062 init_buffer
+EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x258dda6c swiotlb_sync_sg_for_device
+EXPORT_SYMBOL vmlinux 0x259375f4 pci_set_master
+EXPORT_SYMBOL vmlinux 0x259f830a blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x25cf55c2 ethtool_ntuple_flush
+EXPORT_SYMBOL vmlinux 0x25cf8049 matroxfb_PLL_calcclock
+EXPORT_SYMBOL vmlinux 0x25de6b0c i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0x25f04e9b inode_permission
+EXPORT_SYMBOL vmlinux 0x25f1da7f __wait_on_bit
+EXPORT_SYMBOL vmlinux 0x25f4b6f6 pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0x25f829c8 unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x262e640e d_alloc
+EXPORT_SYMBOL vmlinux 0x263fd6c4 scsi_host_get
+EXPORT_SYMBOL vmlinux 0x264f61be stop_tty
+EXPORT_SYMBOL vmlinux 0x2659966d mdiobus_scan
+EXPORT_SYMBOL vmlinux 0x266912e4 slow_work_unregister_user
+EXPORT_SYMBOL vmlinux 0x266ab6e8 xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x26e4c518 phy_device_register
+EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x26f45a63 sock_release
+EXPORT_SYMBOL vmlinux 0x26fb2f11 splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0x2701ef3c new_inode
+EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler
+EXPORT_SYMBOL vmlinux 0x271fd804 destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x274bf118 bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0x274da794 write_one_page
+EXPORT_SYMBOL vmlinux 0x274ffd77 __lru_cache_add
+EXPORT_SYMBOL vmlinux 0x27567a38 neigh_seq_start
+EXPORT_SYMBOL vmlinux 0x27735c48 sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x277673d8 smp_call_function_many
+EXPORT_SYMBOL vmlinux 0x27864d57 memparse
+EXPORT_SYMBOL vmlinux 0x2799c9c9 ab3100_event_register
+EXPORT_SYMBOL vmlinux 0x27bad328 _atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic
+EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic
+EXPORT_SYMBOL vmlinux 0x2801e19a seq_read
+EXPORT_SYMBOL vmlinux 0x2810a8a4 jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0x281a1404 dw_spi_suspend_host
+EXPORT_SYMBOL vmlinux 0x2846ad3f lock_may_read
+EXPORT_SYMBOL vmlinux 0x284988d8 acpi_unlock_battery_dir
+EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll
+EXPORT_SYMBOL vmlinux 0x285bfc45 __dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x28932537 sn_coherency_id
+EXPORT_SYMBOL vmlinux 0x289f7453 fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28b5fcb7 xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x28d94dd0 input_unregister_device
+EXPORT_SYMBOL vmlinux 0x28e1e228 generic_file_llseek_unlocked
+EXPORT_SYMBOL vmlinux 0x28e515f5 unregister_quota_format
+EXPORT_SYMBOL vmlinux 0x29044edf filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x29262520 acpi_bus_get_status
+EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x29671305 alloc_file
+EXPORT_SYMBOL vmlinux 0x296b2679 release_firmware
+EXPORT_SYMBOL vmlinux 0x297c7029 sn_partition_serial_number
+EXPORT_SYMBOL vmlinux 0x29857de4 ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x29946087 blk_init_queue
+EXPORT_SYMBOL vmlinux 0x29b4e9c1 check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set
+EXPORT_SYMBOL vmlinux 0x29bf5612 __register_chrdev
+EXPORT_SYMBOL vmlinux 0x29c1844b seq_printf
+EXPORT_SYMBOL vmlinux 0x29f95f8a ip_fragment
+EXPORT_SYMBOL vmlinux 0x2a0f170f init_special_inode
+EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature
+EXPORT_SYMBOL vmlinux 0x2a3b9cfa bd_claim
+EXPORT_SYMBOL vmlinux 0x2a3d1554 kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x2a46bac5 neigh_create
+EXPORT_SYMBOL vmlinux 0x2a62bf0e bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0x2a65ab79 tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0x2a675b56 dquot_destroy
+EXPORT_SYMBOL vmlinux 0x2a8b36df module_refcount
+EXPORT_SYMBOL vmlinux 0x2a9af107 __insert_inode_hash
+EXPORT_SYMBOL vmlinux 0x2ab27950 vfs_writev
+EXPORT_SYMBOL vmlinux 0x2ad0745e thaw_super
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b428809 __percpu_counter_init
+EXPORT_SYMBOL vmlinux 0x2b545683 inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0x2b606088 ia64_pal_call_phys_static
+EXPORT_SYMBOL vmlinux 0x2b70bc48 unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0x2b9c306f pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler
+EXPORT_SYMBOL vmlinux 0x2bd2a026 phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0x2bec3523 dquot_commit_info
+EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle
+EXPORT_SYMBOL vmlinux 0x2c17508d phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0x2c2b0227 genphy_suspend
+EXPORT_SYMBOL vmlinux 0x2c3065bc vfs_symlink
+EXPORT_SYMBOL vmlinux 0x2c4e4308 dm_unregister_target
+EXPORT_SYMBOL vmlinux 0x2c509bcb unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x2c5189ed mod_timer_pending
+EXPORT_SYMBOL vmlinux 0x2c53e34e scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0x2c5b2a8f slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x2c7a8ca8 pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0x2c8d8a69 cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x2ca585cf tcp_prot
+EXPORT_SYMBOL vmlinux 0x2cb25f0d tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0x2cd50dc4 __sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0x2cdd20d0 blk_integrity_register
+EXPORT_SYMBOL vmlinux 0x2ce1e27f __sn_mmiowb
+EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic
+EXPORT_SYMBOL vmlinux 0x2cfdb6e8 __netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x2d056db1 tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0x2d0adee7 clear_inode
+EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d1cb70d matrox_cfbX_init
+EXPORT_SYMBOL vmlinux 0x2d4aa4b4 bioset_create
+EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x2d83d5d5 bio_copy_user
+EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2d8e1739 tcp_connect
+EXPORT_SYMBOL vmlinux 0x2d903067 dev_mc_del
+EXPORT_SYMBOL vmlinux 0x2d97f7d5 generic_file_open
+EXPORT_SYMBOL vmlinux 0x2dbd086f pci_disable_msi
+EXPORT_SYMBOL vmlinux 0x2dbdf3a5 sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0x2dc627ea netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0x2dcd7425 blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu
+EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception
+EXPORT_SYMBOL vmlinux 0x2e210cc4 generic_setxattr
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e3b6220 tty_unthrottle
+EXPORT_SYMBOL vmlinux 0x2e439bdf tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem
+EXPORT_SYMBOL vmlinux 0x2ebdaeb9 __set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0x2efa0ae0 input_inject_event
+EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource
+EXPORT_SYMBOL vmlinux 0x2f0b40ae printk
+EXPORT_SYMBOL vmlinux 0x2f2721a2 elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0x2f367d8c xor_ia64_3
+EXPORT_SYMBOL vmlinux 0x2f4a8363 rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x2f4ea1ac wait_for_completion
+EXPORT_SYMBOL vmlinux 0x2f5c6ec2 pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0x2f70c6f4 kill_litter_super
+EXPORT_SYMBOL vmlinux 0x2f7f766e vprintk
+EXPORT_SYMBOL vmlinux 0x2f9703a0 scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x2fa0c9b8 ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x2fc7a3a4 nobh_write_end
+EXPORT_SYMBOL vmlinux 0x2fdbbcf0 noop_fsync
+EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name
+EXPORT_SYMBOL vmlinux 0x30194d5e tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0x3097ac32 seq_open_private
+EXPORT_SYMBOL vmlinux 0x309a7281 blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0x30a20c4c sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0x30b6acbe n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x30c3fd68 read_cache_pages
+EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0x30fcba03 deny_write_access
+EXPORT_SYMBOL vmlinux 0x31003040 tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x3116c2b3 generic_fillattr
+EXPORT_SYMBOL vmlinux 0x3122685b __dquot_free_space
+EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d default_red
+EXPORT_SYMBOL vmlinux 0x317d2cd4 bh_submit_read
+EXPORT_SYMBOL vmlinux 0x31af3884 qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck
+EXPORT_SYMBOL vmlinux 0x31b36ce8 kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x31c887dd cdev_alloc
+EXPORT_SYMBOL vmlinux 0x31d67212 request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0x31e7acf5 skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x31e874ea sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p
+EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc
+EXPORT_SYMBOL vmlinux 0x31f25f85 security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0x32047ad5 __per_cpu_offset
+EXPORT_SYMBOL vmlinux 0x32093cc7 __udivdi3
+EXPORT_SYMBOL vmlinux 0x320b0697 scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0x320cbbfc udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x321c6304 simple_write_begin
+EXPORT_SYMBOL vmlinux 0x3224602d dqstats
+EXPORT_SYMBOL vmlinux 0x323bf876 sk_free
+EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint
+EXPORT_SYMBOL vmlinux 0x32bdb69e add_disk
+EXPORT_SYMBOL vmlinux 0x32c9854b rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0x32cdcabc block_read_full_page
+EXPORT_SYMBOL vmlinux 0x32dade6c inode_setattr
+EXPORT_SYMBOL vmlinux 0x332089ed cdev_init
+EXPORT_SYMBOL vmlinux 0x33280716 phy_device_create
+EXPORT_SYMBOL vmlinux 0x3354e922 ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x33590ade __generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x33873f23 fasync_helper
+EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page
+EXPORT_SYMBOL vmlinux 0x33c4265d scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x33c62c91 jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0x33e0ed22 block_prepare_write
+EXPORT_SYMBOL vmlinux 0x33e2b505 xrlim_allow
+EXPORT_SYMBOL vmlinux 0x33f249c6 journal_extend
+EXPORT_SYMBOL vmlinux 0x33f612ad tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x3439dd69 softnet_data
+EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long
+EXPORT_SYMBOL vmlinux 0x3475089d dentry_unhash
+EXPORT_SYMBOL vmlinux 0x347bc249 del_timer
+EXPORT_SYMBOL vmlinux 0x349cba85 strchr
+EXPORT_SYMBOL vmlinux 0x34b27886 jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0x34bfe31e pci_disable_device
+EXPORT_SYMBOL vmlinux 0x34e2d8d6 con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x3512526c locks_init_lock
+EXPORT_SYMBOL vmlinux 0x353ca2b3 acpi_disable_gpe
+EXPORT_SYMBOL vmlinux 0x35495554 insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0x3577fa73 dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0x35875273 kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0x359882f4 blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0x35ae38d6 tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf
+EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator
+EXPORT_SYMBOL vmlinux 0x35c3c190 block_write_end
+EXPORT_SYMBOL vmlinux 0x35c6adb9 d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x35cde21b xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0x35d5a9f0 kobject_del
+EXPORT_SYMBOL vmlinux 0x3609b793 cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask
+EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x361461a3 xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x361a9ef2 fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x365dd71f seq_bitmap
+EXPORT_SYMBOL vmlinux 0x36b9eca5 pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0x36c0933c mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0x36e25683 may_umount_tree
+EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x3717dbf9 ia64_pfn_valid
+EXPORT_SYMBOL vmlinux 0x371ae580 vlan_gro_receive
+EXPORT_SYMBOL vmlinux 0x3728d7fb scsi_register
+EXPORT_SYMBOL vmlinux 0x3735112d dw_spi_remove_host
+EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x375465a7 radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0x3762cb6e ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x37877f94 down
+EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic
+EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37ca881f datagram_poll
+EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date
+EXPORT_SYMBOL vmlinux 0x37dc5c6a test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0x37f4cf60 blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0x3808e4c8 jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x381333e3 d_alloc_root
+EXPORT_SYMBOL vmlinux 0x382a34b2 mpage_readpage
+EXPORT_SYMBOL vmlinux 0x38396577 rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0x386dc3cc ia64_sal_oemcall_nolock
+EXPORT_SYMBOL vmlinux 0x3878ddb5 __blk_run_queue
+EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x38a5ed04 pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x38a89a26 __sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x38b5cc2d sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38cd2f46 phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x38d47222 dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0x3902c406 udplite_table
+EXPORT_SYMBOL vmlinux 0x3925e28c scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x3927ade8 skb_copy
+EXPORT_SYMBOL vmlinux 0x392a7c6b simple_unlink
+EXPORT_SYMBOL vmlinux 0x3949a52f mempool_create_node
+EXPORT_SYMBOL vmlinux 0x395302bf invalidate_inodes
+EXPORT_SYMBOL vmlinux 0x397b45b7 tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x398a46d0 input_set_keycode
+EXPORT_SYMBOL vmlinux 0x39986f1c tty_vhangup
+EXPORT_SYMBOL vmlinux 0x39fa6263 make_bad_inode
+EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a54120b __neigh_event_send
+EXPORT_SYMBOL vmlinux 0x3a789797 abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x3a84dafc pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0x3a91a60e ps2_init
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3a9ccb44 kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0x3adb10e6 cpu_all_bits
+EXPORT_SYMBOL vmlinux 0x3aed7527 isa_irq_to_vector_map
+EXPORT_SYMBOL vmlinux 0x3b005020 dm_get_device
+EXPORT_SYMBOL vmlinux 0x3b2f0817 pcim_enable_device
+EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b502f70 _raw_spin_lock_bh
+EXPORT_SYMBOL vmlinux 0x3b708878 tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x3b70d71f vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x3b9242ed posix_test_lock
+EXPORT_SYMBOL vmlinux 0x3b98217c netlink_ack
+EXPORT_SYMBOL vmlinux 0x3b9e59d5 init_task
+EXPORT_SYMBOL vmlinux 0x3bb80ba3 pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0x3bc1f050 scsi_remove_target
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3be715c2 i8042_install_filter
+EXPORT_SYMBOL vmlinux 0x3c083ad9 dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf
+EXPORT_SYMBOL vmlinux 0x3c2f8e19 inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x3c4e02b3 pipe_to_file
+EXPORT_SYMBOL vmlinux 0x3c7119c4 alloc_fddidev
+EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size
+EXPORT_SYMBOL vmlinux 0x3ca3240f inode_init_once
+EXPORT_SYMBOL vmlinux 0x3cbc3a8d udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x3cd90102 search_binary_handler
+EXPORT_SYMBOL vmlinux 0x3cdde3b7 ia64_ivt
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq
+EXPORT_SYMBOL vmlinux 0x3ce57d25 dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x3cef39de max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0x3cf6e428 security_path_chown
+EXPORT_SYMBOL vmlinux 0x3d0da388 fd_install
+EXPORT_SYMBOL vmlinux 0x3d10b453 dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x3d4ba55a sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x3d65f451 blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x3d7462d8 inet_shutdown
+EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page
+EXPORT_SYMBOL vmlinux 0x3dacf554 i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0x3db44424 sget
+EXPORT_SYMBOL vmlinux 0x3de2b7a5 seq_release
+EXPORT_SYMBOL vmlinux 0x3de32554 pci_iounmap
+EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e0bef16 nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0x3e212a92 xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock
+EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks
+EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e6243ec generic_setlease
+EXPORT_SYMBOL vmlinux 0x3e635a85 pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0x3e89d6d5 __xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x3e8fb7f2 security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3e94c3fb phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x3ea84e12 mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0x3eca2db5 security_path_rmdir
+EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3ee52a10 ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f1076c4 bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0x3f2227eb dev_disable_lro
+EXPORT_SYMBOL vmlinux 0x3f2eeb88 check_disk_change
+EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f6bc633 __do_clear_user
+EXPORT_SYMBOL vmlinux 0x3fa03a97 memset
+EXPORT_SYMBOL vmlinux 0x3fa1d0ff __xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x3fa913da strspn
+EXPORT_SYMBOL vmlinux 0x3fc6ab14 dquot_operations
+EXPORT_SYMBOL vmlinux 0x3fca845b blk_stop_queue
+EXPORT_SYMBOL vmlinux 0x3fd4abba blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x3fec048f sg_next
+EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable
+EXPORT_SYMBOL vmlinux 0x3ff857cc udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x3ffe2def do_sync_write
+EXPORT_SYMBOL vmlinux 0x3ffe9440 dev_change_flags
+EXPORT_SYMBOL vmlinux 0x40229101 idr_init
+EXPORT_SYMBOL vmlinux 0x4031725a blkdev_put
+EXPORT_SYMBOL vmlinux 0x403391b4 blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x4043ed78 scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0x405053f9 lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x405350c3 proc_symlink
+EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds
+EXPORT_SYMBOL vmlinux 0x406bc506 vc_cons
+EXPORT_SYMBOL vmlinux 0x408dc874 pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x408dd791 journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register
+EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x409c4e42 pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40a40497 xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0x40a419e1 pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0x40c54b00 lookup_hash
+EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index
+EXPORT_SYMBOL vmlinux 0x40dc0593 unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x40e5db5f vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x40ee9230 jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x40f1a627 jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring
+EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode
+EXPORT_SYMBOL vmlinux 0x411393be jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0x4128f772 bio_split
+EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp
+EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user
+EXPORT_SYMBOL vmlinux 0x41678d54 vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features
+EXPORT_SYMBOL vmlinux 0x41846bce scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x419af39e pci_dev_put
+EXPORT_SYMBOL vmlinux 0x419d402d dquot_resume
+EXPORT_SYMBOL vmlinux 0x41aec9cd dquot_quota_on
+EXPORT_SYMBOL vmlinux 0x41c2af23 nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0x41d512f8 vfs_fstat
+EXPORT_SYMBOL vmlinux 0x41d53f8f free_netdev
+EXPORT_SYMBOL vmlinux 0x41f1ee59 sk_common_release
+EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x42224298 sscanf
+EXPORT_SYMBOL vmlinux 0x426da069 netdev_state_change
+EXPORT_SYMBOL vmlinux 0x42802d89 input_register_handle
+EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42a08f12 udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p
+EXPORT_SYMBOL vmlinux 0x42af2f53 pci_save_state
+EXPORT_SYMBOL vmlinux 0x42b8e31e scsi_free_command
+EXPORT_SYMBOL vmlinux 0x42ba72d3 slow_work_sleep_till_thread_needed
+EXPORT_SYMBOL vmlinux 0x42f4ccfd remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages
+EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short
+EXPORT_SYMBOL vmlinux 0x43385ad9 acpi_pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem
+EXPORT_SYMBOL vmlinux 0x43552b03 schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32
+EXPORT_SYMBOL vmlinux 0x438cfee8 elevator_exit
+EXPORT_SYMBOL vmlinux 0x439090b9 kernel_thread
+EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get
+EXPORT_SYMBOL vmlinux 0x43c2eab5 vfs_lstat
+EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg
+EXPORT_SYMBOL vmlinux 0x43f08f79 phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0x43fb52d9 tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x441c0bef generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0x4438212a filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x44457ec1 sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x444779c4 nla_find
+EXPORT_SYMBOL vmlinux 0x446a8c57 cpu_to_node_map
+EXPORT_SYMBOL vmlinux 0x44760240 rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0x447c2a88 bdi_register
+EXPORT_SYMBOL vmlinux 0x4486ea6b scsi_host_put
+EXPORT_SYMBOL vmlinux 0x449cfd13 mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object
+EXPORT_SYMBOL vmlinux 0x44c5cecb pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0x44d3d844 skb_clone
+EXPORT_SYMBOL vmlinux 0x44e9a829 match_token
+EXPORT_SYMBOL vmlinux 0x450e656d generic_show_options
+EXPORT_SYMBOL vmlinux 0x451cc3a4 sk_filter
+EXPORT_SYMBOL vmlinux 0x452b5b22 __elv_add_request
+EXPORT_SYMBOL vmlinux 0x452bdee6 kset_register
+EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled
+EXPORT_SYMBOL vmlinux 0x454fb519 ioremap
+EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0x45827480 end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x458b4d38 __destroy_inode
+EXPORT_SYMBOL vmlinux 0x45947727 param_array_set
+EXPORT_SYMBOL vmlinux 0x45abea45 file_fsync
+EXPORT_SYMBOL vmlinux 0x45b65536 key_link
+EXPORT_SYMBOL vmlinux 0x45c92313 VMALLOC_END
+EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x4602a57a read_dev_sector
+EXPORT_SYMBOL vmlinux 0x460e2c36 skb_pad
+EXPORT_SYMBOL vmlinux 0x467d4de5 jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0x46815f81 bdi_init
+EXPORT_SYMBOL vmlinux 0x46af5c36 __seq_open_private
+EXPORT_SYMBOL vmlinux 0x46f38f77 inet_release
+EXPORT_SYMBOL vmlinux 0x4725a74a security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0x47297f48 dma_get_cache_alignment
+EXPORT_SYMBOL vmlinux 0x473efebc inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x4755ce0b netif_rx
+EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects
+EXPORT_SYMBOL vmlinux 0x47636033 swiotlb
+EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit
+EXPORT_SYMBOL vmlinux 0x47a1a384 xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0x47bac437 ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0x47f696d8 qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep
+EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days
+EXPORT_SYMBOL vmlinux 0x487d68e3 xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x4897bd59 request_firmware
+EXPORT_SYMBOL vmlinux 0x48a22c37 cdev_del
+EXPORT_SYMBOL vmlinux 0x48b99b6f sync_inode
+EXPORT_SYMBOL vmlinux 0x48c99b8d vfs_getattr
+EXPORT_SYMBOL vmlinux 0x48ff71df skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x48fffdb1 ia64_pal_call_phys_stacked
+EXPORT_SYMBOL vmlinux 0x49029208 swiotlb_dma_mapping_error
+EXPORT_SYMBOL vmlinux 0x492a5338 d_splice_alias
+EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x4946ec36 path_get
+EXPORT_SYMBOL vmlinux 0x494a33f9 create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x495459f0 swiotlb_unmap_sg
+EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x499bb95a no_llseek
+EXPORT_SYMBOL vmlinux 0x49a55dfd ida_get_new
+EXPORT_SYMBOL vmlinux 0x49a87c45 phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49cf9cb5 user_revoke
+EXPORT_SYMBOL vmlinux 0x49cfd06f jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x49d4d844 _raw_spin_trylock_bh
+EXPORT_SYMBOL vmlinux 0x49e0964b bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string
+EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a515d90 i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0x4a541e2a __umoddi3
+EXPORT_SYMBOL vmlinux 0x4a866e7e ia64_sal_oemcall
+EXPORT_SYMBOL vmlinux 0x4a9a7c3d rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x4aa1fcaf idr_replace
+EXPORT_SYMBOL vmlinux 0x4aa50a4e iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0x4aafa5c9 cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0x4abbd722 matrox_millennium
+EXPORT_SYMBOL vmlinux 0x4ac35f12 pcix_get_mmrbc
+EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource
+EXPORT_SYMBOL vmlinux 0x4ad93931 mutex_unlock
+EXPORT_SYMBOL vmlinux 0x4adec25a dev_uc_flush
+EXPORT_SYMBOL vmlinux 0x4af4c322 drop_super
+EXPORT_SYMBOL vmlinux 0x4af627d8 dm_put_device
+EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b00294a textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x4b0350e5 dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x4b48251f blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0x4b723d00 vga_tryget
+EXPORT_SYMBOL vmlinux 0x4b7302ab unlock_rename
+EXPORT_SYMBOL vmlinux 0x4b793c69 tty_name
+EXPORT_SYMBOL vmlinux 0x4b795205 sn_pci_unfixup_slot
+EXPORT_SYMBOL vmlinux 0x4b9dd134 phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x4bb25714 idr_remove_all
+EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags
+EXPORT_SYMBOL vmlinux 0x4bc2fe0e zero_page_memmap_ptr
+EXPORT_SYMBOL vmlinux 0x4bcb1bec lookup_bdev
+EXPORT_SYMBOL vmlinux 0x4bd67569 unw_access_br
+EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp
+EXPORT_SYMBOL vmlinux 0x4c5923cc get_io_context
+EXPORT_SYMBOL vmlinux 0x4c62a2d0 fb_class
+EXPORT_SYMBOL vmlinux 0x4c6d8540 __serio_register_driver
+EXPORT_SYMBOL vmlinux 0x4c960edb invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0x4cb8d036 unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cbc6d5d posix_acl_permission
+EXPORT_SYMBOL vmlinux 0x4cbc779a inet_sendmsg
+EXPORT_SYMBOL vmlinux 0x4cd4594f sn_generate_path
+EXPORT_SYMBOL vmlinux 0x4d0635de dev_driver_string
+EXPORT_SYMBOL vmlinux 0x4d0bf88d pci_request_regions
+EXPORT_SYMBOL vmlinux 0x4d0d5a53 truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x4d6c1f2b cdev_index
+EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy
+EXPORT_SYMBOL vmlinux 0x4ddcfc72 dma_async_device_register
+EXPORT_SYMBOL vmlinux 0x4de40897 genphy_resume
+EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4dfdea72 scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e13b37f matroxfb_g450_connect
+EXPORT_SYMBOL vmlinux 0x4e21999c acpi_get_child
+EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int
+EXPORT_SYMBOL vmlinux 0x4e373524 __rta_fill
+EXPORT_SYMBOL vmlinux 0x4e41488e ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x4e531134 dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console
+EXPORT_SYMBOL vmlinux 0x4e98f7db netdev_features_change
+EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum
+EXPORT_SYMBOL vmlinux 0x4ea34a13 cfb_fillrect
+EXPORT_SYMBOL vmlinux 0x4eca83c0 netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x4edc14e4 journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals
+EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f26515b do_munmap
+EXPORT_SYMBOL vmlinux 0x4f4469c2 sync_blockdev
+EXPORT_SYMBOL vmlinux 0x4f5438c1 idle_halt
+EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read
+EXPORT_SYMBOL vmlinux 0x4f7b113a dev_txq_stats_fold
+EXPORT_SYMBOL vmlinux 0x4f8deaf7 kill_anon_super
+EXPORT_SYMBOL vmlinux 0x4f94d55a tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command
+EXPORT_SYMBOL vmlinux 0x4fe0a642 clocksource_register
+EXPORT_SYMBOL vmlinux 0x4ffd546a skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0x500bd493 find_or_create_page
+EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x50498117 tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status
+EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x509de26d bio_init
+EXPORT_SYMBOL vmlinux 0x50c94b66 __f_setown
+EXPORT_SYMBOL vmlinux 0x50facb84 open_by_devnum
+EXPORT_SYMBOL vmlinux 0x5118140a vmap
+EXPORT_SYMBOL vmlinux 0x511d45ab lock_may_write
+EXPORT_SYMBOL vmlinux 0x513ad455 get_gendisk
+EXPORT_SYMBOL vmlinux 0x514481f1 blk_requeue_request
+EXPORT_SYMBOL vmlinux 0x51459bd6 hp_acpi_csr_space
+EXPORT_SYMBOL vmlinux 0x51479484 truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0x51600daf input_event
+EXPORT_SYMBOL vmlinux 0x5186ce69 elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0x51c0eb2c sn_acpi_slot_fixup
+EXPORT_SYMBOL vmlinux 0x51c3cf6f tcp4_gro_receive
+EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x51e107a3 input_unregister_handle
+EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x5203a19b __nla_put
+EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data
+EXPORT_SYMBOL vmlinux 0x520b755a bio_phys_segments
+EXPORT_SYMBOL vmlinux 0x5222557c pnp_is_active
+EXPORT_SYMBOL vmlinux 0x5229c8f0 neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0x523b6ce0 neigh_update
+EXPORT_SYMBOL vmlinux 0x524e6bd6 pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday
+EXPORT_SYMBOL vmlinux 0x5285c0fe vm_insert_page
+EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy
+EXPORT_SYMBOL vmlinux 0x52c2ef34 rb_erase
+EXPORT_SYMBOL vmlinux 0x52d07ba4 gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52d9ecd4 set_irq_chip
+EXPORT_SYMBOL vmlinux 0x52e3a8b8 log_wait_commit
+EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort
+EXPORT_SYMBOL vmlinux 0x52f48a84 km_query
+EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0x5308c88b nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0x53104129 i2c_bit_add_numbered_bus
+EXPORT_SYMBOL vmlinux 0x5311037c ia64_sal_oemcall_reentrant
+EXPORT_SYMBOL vmlinux 0x5316413d neigh_destroy
+EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x53499c6f scsi_register_driver
+EXPORT_SYMBOL vmlinux 0x535bc253 proc_create_data
+EXPORT_SYMBOL vmlinux 0x536ea40c unbind_con_driver
+EXPORT_SYMBOL vmlinux 0x537f78a8 pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x538e0363 scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0x5398ff35 dev_open
+EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x53d4a771 secpath_dup
+EXPORT_SYMBOL vmlinux 0x540151ca mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x5407c6b3 xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0x5420ed27 pci_get_class
+EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate
+EXPORT_SYMBOL vmlinux 0x5432cd3b ida_destroy
+EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x5465f82b cfb_copyarea
+EXPORT_SYMBOL vmlinux 0x5488e870 matroxfb_g450_setpll_cond
+EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x55169666 km_new_mapping
+EXPORT_SYMBOL vmlinux 0x55259c49 lock_rename
+EXPORT_SYMBOL vmlinux 0x5530fe54 xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0x55810600 tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0x558bba5a nf_reinject
+EXPORT_SYMBOL vmlinux 0x5592ded7 get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap
+EXPORT_SYMBOL vmlinux 0x559a5e89 write_inode_now
+EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x55afdb8a tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x55c66d12 register_console
+EXPORT_SYMBOL vmlinux 0x55db9e5c dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0x55efd925 simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday
+EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x56200f59 __dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user
+EXPORT_SYMBOL vmlinux 0x56480153 remove_arg_zero
+EXPORT_SYMBOL vmlinux 0x56603dac tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x56784d16 arp_xmit
+EXPORT_SYMBOL vmlinux 0x567b1d42 request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0x5684fb9e interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic
+EXPORT_SYMBOL vmlinux 0x56b33a70 __netif_schedule
+EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function
+EXPORT_SYMBOL vmlinux 0x57047195 register_framebuffer
+EXPORT_SYMBOL vmlinux 0x5712feac insert_inode_locked
+EXPORT_SYMBOL vmlinux 0x5717adfe alloc_trdev
+EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x5742040c abort_creds
+EXPORT_SYMBOL vmlinux 0x574942ea bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x57496086 block_sync_page
+EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put
+EXPORT_SYMBOL vmlinux 0x575c0c59 d_genocide
+EXPORT_SYMBOL vmlinux 0x576cac93 acpi_get_physical_device
+EXPORT_SYMBOL vmlinux 0x579bd121 qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0x57abf1c7 bte_unaligned_copy
+EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path
+EXPORT_SYMBOL vmlinux 0x5801a729 aio_complete
+EXPORT_SYMBOL vmlinux 0x580e27bc _raw_read_lock
+EXPORT_SYMBOL vmlinux 0x58334e64 pnp_release_card_device
+EXPORT_SYMBOL vmlinux 0x5836073f inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x584f70e8 tcf_hash_release
+EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep
+EXPORT_SYMBOL vmlinux 0x5858c0f4 abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x585a4307 km_state_notify
+EXPORT_SYMBOL vmlinux 0x588ed5c9 bio_copy_kern
+EXPORT_SYMBOL vmlinux 0x5894dca4 phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x58ad5f01 register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x58ba038e phy_connect
+EXPORT_SYMBOL vmlinux 0x58cf16ab pci_match_id
+EXPORT_SYMBOL vmlinux 0x58f98cfb ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0x58fe1278 _raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0x58ffb14d pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0x590546e4 tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0x590ae569 qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x591a9bc3 scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client
+EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map
+EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3
+EXPORT_SYMBOL vmlinux 0x59555678 __page_cache_alloc
+EXPORT_SYMBOL vmlinux 0x59601525 sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0x596152f7 acpi_bus_add
+EXPORT_SYMBOL vmlinux 0x5971989d register_filesystem
+EXPORT_SYMBOL vmlinux 0x59738f61 blk_start_request
+EXPORT_SYMBOL vmlinux 0x59816b72 abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0x599c014a pcim_pin_device
+EXPORT_SYMBOL vmlinux 0x599c7834 vm_event_states
+EXPORT_SYMBOL vmlinux 0x59abdce3 fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register
+EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59dd77a9 jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x59eaf09a get_disk
+EXPORT_SYMBOL vmlinux 0x5a243ba3 skb_insert
+EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc
+EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x5a6c71d2 blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0x5a73b682 writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a780a9f __dquot_transfer
+EXPORT_SYMBOL vmlinux 0x5a78102d vmtruncate
+EXPORT_SYMBOL vmlinux 0x5a80bdaa prepare_creds
+EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler
+EXPORT_SYMBOL vmlinux 0x5acfafe8 generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x5b307473 __inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x5b51c6a7 acpi_walk_resources
+EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0x5b6fde78 swiotlb_sync_single_for_device
+EXPORT_SYMBOL vmlinux 0x5b7fb99b acpi_bus_unregister_driver
+EXPORT_SYMBOL vmlinux 0x5c0aeb7b dm_io_client_resize
+EXPORT_SYMBOL vmlinux 0x5c433798 input_flush_device
+EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq
+EXPORT_SYMBOL vmlinux 0x5c51187b gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x5c624ec7 bdi_register_dev
+EXPORT_SYMBOL vmlinux 0x5c953c68 rfkill_destroy
+EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0x5ccc3398 input_set_capability
+EXPORT_SYMBOL vmlinux 0x5d056330 blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat
+EXPORT_SYMBOL vmlinux 0x5d209f9a dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0x5d29fb1c xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0x5d2f3482 blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0x5d4f315b write_cache_pages
+EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved
+EXPORT_SYMBOL vmlinux 0x5dabf95f bio_alloc
+EXPORT_SYMBOL vmlinux 0x5db3c0b5 copy_io_context
+EXPORT_SYMBOL vmlinux 0x5dbbe98e memmove
+EXPORT_SYMBOL vmlinux 0x5dcf093f padata_start
+EXPORT_SYMBOL vmlinux 0x5dd960fc pci_release_region
+EXPORT_SYMBOL vmlinux 0x5e10047c input_register_device
+EXPORT_SYMBOL vmlinux 0x5e146ae1 I_BDEV
+EXPORT_SYMBOL vmlinux 0x5e21dc47 ps2_drain
+EXPORT_SYMBOL vmlinux 0x5e29978d mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0x5e30f0c1 pci_map_rom
+EXPORT_SYMBOL vmlinux 0x5e581831 journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x5e593075 aio_put_req
+EXPORT_SYMBOL vmlinux 0x5e79e544 dm_table_get_size
+EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask
+EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5ed23d04 pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd
+EXPORT_SYMBOL vmlinux 0x5f69db63 lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x5f7db17c gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr
+EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count
+EXPORT_SYMBOL vmlinux 0x60337ad5 find_inode_number
+EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x6067a146 memcpy
+EXPORT_SYMBOL vmlinux 0x609da127 may_umount
+EXPORT_SYMBOL vmlinux 0x609e5366 tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net
+EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off
+EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n
+EXPORT_SYMBOL vmlinux 0x610cdc9d phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x610cdfda blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x610f0605 netif_device_attach
+EXPORT_SYMBOL vmlinux 0x6113a857 iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x6128eb19 is_container_init
+EXPORT_SYMBOL vmlinux 0x612998fc get_sb_bdev
+EXPORT_SYMBOL vmlinux 0x614ab3a9 scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x615163cf dev_mc_init
+EXPORT_SYMBOL vmlinux 0x615f415e bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x617e9491 pnp_register_card_driver
+EXPORT_SYMBOL vmlinux 0x618325d2 blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0x61863d33 blk_unplug
+EXPORT_SYMBOL vmlinux 0x6189d3d7 padata_free
+EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free
+EXPORT_SYMBOL vmlinux 0x61a60f1f rb_replace_node
+EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61e97202 starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable
+EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event
+EXPORT_SYMBOL vmlinux 0x623f315d key_payload_reserve
+EXPORT_SYMBOL vmlinux 0x62716119 generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister
+EXPORT_SYMBOL vmlinux 0x6274056f ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources
+EXPORT_SYMBOL vmlinux 0x62767742 tcp_ioctl
+EXPORT_SYMBOL vmlinux 0x627de6ff blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x62b7cb77 blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0x62df59c2 iommu_dma_supported
+EXPORT_SYMBOL vmlinux 0x62f32c04 node_to_cpu_mask
+EXPORT_SYMBOL vmlinux 0x631223eb efi_mem_attributes
+EXPORT_SYMBOL vmlinux 0x6312e2d2 __alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0x63455944 blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic
+EXPORT_SYMBOL vmlinux 0x636b5427 gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0x6397e7f8 sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0x63dd1cca unw_access_gr
+EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x64401403 update_region
+EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler
+EXPORT_SYMBOL vmlinux 0x644ca548 vfs_create
+EXPORT_SYMBOL vmlinux 0x64511a67 skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x645515d5 xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable
+EXPORT_SYMBOL vmlinux 0x648ffd29 journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait
+EXPORT_SYMBOL vmlinux 0x649b4e42 pci_remove_behind_bridge
+EXPORT_SYMBOL vmlinux 0x64b7863a splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x64d448e2 serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x64eb6560 dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0x6515ac29 dmam_pool_create
+EXPORT_SYMBOL vmlinux 0x651a4139 test_taint
+EXPORT_SYMBOL vmlinux 0x653f9da9 __scm_destroy
+EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name
+EXPORT_SYMBOL vmlinux 0x65a89241 inet_select_addr
+EXPORT_SYMBOL vmlinux 0x65b1bb32 km_report
+EXPORT_SYMBOL vmlinux 0x65b6760b generic_delete_inode
+EXPORT_SYMBOL vmlinux 0x65cf3b50 thaw_process
+EXPORT_SYMBOL vmlinux 0x65ed7328 ____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0x65efe8e5 vfs_readv
+EXPORT_SYMBOL vmlinux 0x6605097d dev_addr_del
+EXPORT_SYMBOL vmlinux 0x66270b6e downgrade_write
+EXPORT_SYMBOL vmlinux 0x662dfaaf ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x66517630 generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0x665ef968 ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0x667b86c6 call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x66ac9f0c blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x66b172e9 dev_base_lock
+EXPORT_SYMBOL vmlinux 0x66d2725b skb_pull
+EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time
+EXPORT_SYMBOL vmlinux 0x672144bd strlcpy
+EXPORT_SYMBOL vmlinux 0x677f3ac7 arp_create
+EXPORT_SYMBOL vmlinux 0x6799b291 padata_remove_cpu
+EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios
+EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67bdcf0f iget_locked
+EXPORT_SYMBOL vmlinux 0x67e032ce dev_load
+EXPORT_SYMBOL vmlinux 0x67eee5cb sock_create
+EXPORT_SYMBOL vmlinux 0x67f6c347 fsnotify_obtain_group
+EXPORT_SYMBOL vmlinux 0x67fadebc ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0x67fc1099 ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x68065600 input_free_device
+EXPORT_SYMBOL vmlinux 0x681dbc09 __cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x6826aec4 zero_fill_bio
+EXPORT_SYMBOL vmlinux 0x68547be7 simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x6873227f pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0x68a32729 nobh_writepage
+EXPORT_SYMBOL vmlinux 0x68a354ff jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x68a5ce48 rfkill_set_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x68beb8c3 skb_dequeue
+EXPORT_SYMBOL vmlinux 0x68cd1238 bte_copy
+EXPORT_SYMBOL vmlinux 0x68cf4282 tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0x68ef3e40 eth_header_parse
+EXPORT_SYMBOL vmlinux 0x68f2f199 blk_stack_limits
+EXPORT_SYMBOL vmlinux 0x690407f9 journal_start
+EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer
+EXPORT_SYMBOL vmlinux 0x693a7826 pcie_port_service_unregister
+EXPORT_SYMBOL vmlinux 0x6961b568 padata_alloc
+EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days
+EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int
+EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem
+EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be
+EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource
+EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x69cbd1c1 mutex_trylock
+EXPORT_SYMBOL vmlinux 0x69cca306 blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x69d2575f efi
+EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69e03705 keyring_search
+EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69e37b48 dm_register_target
+EXPORT_SYMBOL vmlinux 0x69ebf134 dentry_open
+EXPORT_SYMBOL vmlinux 0x69eca7ee inet_stream_connect
+EXPORT_SYMBOL vmlinux 0x69ff5332 prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a05bb5d mempool_destroy
+EXPORT_SYMBOL vmlinux 0x6a06eeae sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x6a156ab9 blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0x6a24ef52 cont_write_begin
+EXPORT_SYMBOL vmlinux 0x6a45d888 read_cache_page
+EXPORT_SYMBOL vmlinux 0x6a560704 ip_dev_find
+EXPORT_SYMBOL vmlinux 0x6a5b7ed3 pcie_port_service_register
+EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask
+EXPORT_SYMBOL vmlinux 0x6a6e9c24 bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6a95ce1f scsi_put_command
+EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be
+EXPORT_SYMBOL vmlinux 0x6acd148f journal_update_format
+EXPORT_SYMBOL vmlinux 0x6acda98e sock_no_poll
+EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp
+EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device
+EXPORT_SYMBOL vmlinux 0x6ae8b5a9 bio_pair_release
+EXPORT_SYMBOL vmlinux 0x6b11807f pnp_start_dev
+EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname
+EXPORT_SYMBOL vmlinux 0x6b1ec9fb pskb_copy
+EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack
+EXPORT_SYMBOL vmlinux 0x6b3a5ffd bio_integrity_free
+EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x6b52d7fd ia64_reg_MCA_extension
+EXPORT_SYMBOL vmlinux 0x6b8879ec tcp4_gro_complete
+EXPORT_SYMBOL vmlinux 0x6b8de382 __tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0x6ba2e61c blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0x6bb5c8be bdget
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x6bd1c152 pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x6bd34fdd blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0x6bdce83d default_llseek
+EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6c327f24 d_find_alias
+EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data
+EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c7409d7 wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x6c8f3155 xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0x6c9bc0cf __scsi_add_device
+EXPORT_SYMBOL vmlinux 0x6c9ce49d security_d_instantiate
+EXPORT_SYMBOL vmlinux 0x6ca0f8ac alloc_pages_current
+EXPORT_SYMBOL vmlinux 0x6ca19a17 xfrm_register_type
+EXPORT_SYMBOL vmlinux 0x6caec9c6 bdi_unregister
+EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x6cd99a5d scsi_remove_device
+EXPORT_SYMBOL vmlinux 0x6d0ad3c0 sock_no_accept
+EXPORT_SYMBOL vmlinux 0x6d0d6a6e free_buffer_head
+EXPORT_SYMBOL vmlinux 0x6d1e6b8c elevator_init
+EXPORT_SYMBOL vmlinux 0x6d215e8c dquot_transfer
+EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0x6d3ad7b8 pnp_get_resource
+EXPORT_SYMBOL vmlinux 0x6d3fdd07 i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0x6d422540 xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0x6d636008 napi_get_frags
+EXPORT_SYMBOL vmlinux 0x6d86abca sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0x6dbdb00a skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0x6dce9f35 acpi_enter_sleep_state
+EXPORT_SYMBOL vmlinux 0x6dd825a6 sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6e0b1841 journal_flush
+EXPORT_SYMBOL vmlinux 0x6e219dde swiotlb_unmap_sg_attrs
+EXPORT_SYMBOL vmlinux 0x6e2830ba idr_find
+EXPORT_SYMBOL vmlinux 0x6e307951 console_stop
+EXPORT_SYMBOL vmlinux 0x6e31d642 alloc_netdev_mq
+EXPORT_SYMBOL vmlinux 0x6e4b02f4 idr_get_new
+EXPORT_SYMBOL vmlinux 0x6e58bdcf jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0x6e595d3e i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0x6e5d720e journal_create
+EXPORT_SYMBOL vmlinux 0x6e662417 __getblk
+EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e762b62 pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x6e8e104c tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put
+EXPORT_SYMBOL vmlinux 0x6ea9183a km_state_expired
+EXPORT_SYMBOL vmlinux 0x6ea92bdb sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0x6eb6ddad pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0x6ec279f1 qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0x6efa5e3a bio_put
+EXPORT_SYMBOL vmlinux 0x6f448620 netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device
+EXPORT_SYMBOL vmlinux 0x6f61d17f pipe_unlock
+EXPORT_SYMBOL vmlinux 0x6f8f043a vfs_llseek
+EXPORT_SYMBOL vmlinux 0x6f99a628 register_con_driver
+EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write
+EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free
+EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm
+EXPORT_SYMBOL vmlinux 0x70109847 backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x7034dcea vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x704845c0 find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x70750bcb __mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x70852fc5 bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0x708b2619 acpi_bus_generate_proc_event
+EXPORT_SYMBOL vmlinux 0x709212c4 set_groups
+EXPORT_SYMBOL vmlinux 0x70956fe0 nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait
+EXPORT_SYMBOL vmlinux 0x70bd3211 follow_pfn
+EXPORT_SYMBOL vmlinux 0x70c92a12 skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x70d229c1 sn_io_slot_fixup
+EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock
+EXPORT_SYMBOL vmlinux 0x70fc908c gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0x71023537 eth_header
+EXPORT_SYMBOL vmlinux 0x710868b5 tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0x7113871e journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc
+EXPORT_SYMBOL vmlinux 0x719cde2b bio_free
+EXPORT_SYMBOL vmlinux 0x71a217f4 ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev
+EXPORT_SYMBOL vmlinux 0x71ee9897 tty_mutex
+EXPORT_SYMBOL vmlinux 0x71ef7091 abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x7242e96d strnchr
+EXPORT_SYMBOL vmlinux 0x7250cde5 napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x72575dc2 __pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0x72781655 generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0x72a9ca3e key_task_permission
+EXPORT_SYMBOL vmlinux 0x72ba47ad simple_rmdir
+EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte
+EXPORT_SYMBOL vmlinux 0x72dea638 wireless_spy_update
+EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type
+EXPORT_SYMBOL vmlinux 0x72ec4e9b hippi_neigh_setup_dev
+EXPORT_SYMBOL vmlinux 0x72fe8d39 end_page_writeback
+EXPORT_SYMBOL vmlinux 0x7303257b phy_attach
+EXPORT_SYMBOL vmlinux 0x732de933 iget_failed
+EXPORT_SYMBOL vmlinux 0x73458b45 put_io_context
+EXPORT_SYMBOL vmlinux 0x73461c13 ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0x736936b5 audit_log_format
+EXPORT_SYMBOL vmlinux 0x7388a2dc tioca_fastwrite_enable
+EXPORT_SYMBOL vmlinux 0x7389c9a8 acpi_bus_get_power
+EXPORT_SYMBOL vmlinux 0x739bf558 tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0x73a1f176 swiotlb_free_coherent
+EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0x73d7386a try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0x73dd14dc blk_remove_plug
+EXPORT_SYMBOL vmlinux 0x73e397e1 acpi_lock_battery_dir
+EXPORT_SYMBOL vmlinux 0x73f33350 jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x7424354d proto_unregister
+EXPORT_SYMBOL vmlinux 0x743737ee framebuffer_release
+EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte
+EXPORT_SYMBOL vmlinux 0x745eb325 mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x7497d52c block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x749d12f2 simple_transaction_set
+EXPORT_SYMBOL vmlinux 0x74aafa20 kobject_init
+EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74ea1265 cpumask_next_and
+EXPORT_SYMBOL vmlinux 0x74f230d3 rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0x75040562 neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x75159b99 netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x752673f5 fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp
+EXPORT_SYMBOL vmlinux 0x7570a953 posix_lock_file
+EXPORT_SYMBOL vmlinux 0x75758aae sock_init_data
+EXPORT_SYMBOL vmlinux 0x759d9bce bdget_disk
+EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc
+EXPORT_SYMBOL vmlinux 0x75d84ad5 __sk_dst_check
+EXPORT_SYMBOL vmlinux 0x75e277e0 skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler
+EXPORT_SYMBOL vmlinux 0x760281b3 journal_load
+EXPORT_SYMBOL vmlinux 0x760a0f4f yield
+EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x764bd77c request_resource
+EXPORT_SYMBOL vmlinux 0x767dd8fd acpi_get_irq_routing_table
+EXPORT_SYMBOL vmlinux 0x76a39379 gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0x76a495c1 cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0x76bef587 inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76cc2c21 tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode
+EXPORT_SYMBOL vmlinux 0x76df1e4e i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic
+EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x779260a8 sock_wfree
+EXPORT_SYMBOL vmlinux 0x77967a30 __scm_send
+EXPORT_SYMBOL vmlinux 0x779af02d scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0x77a96a09 matroxfb_g450_setclk
+EXPORT_SYMBOL vmlinux 0x77b8fe9f log_start_commit
+EXPORT_SYMBOL vmlinux 0x77bc13a0 strim
+EXPORT_SYMBOL vmlinux 0x77d31594 neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality
+EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource
+EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x78067ccb simple_lookup
+EXPORT_SYMBOL vmlinux 0x780bf220 grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0x78115050 journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x7820f0c6 mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x783908fb max8925_reg_write
+EXPORT_SYMBOL vmlinux 0x78484cc5 scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0x785a13f1 __ps2_command
+EXPORT_SYMBOL vmlinux 0x786a564c dev_addr_add
+EXPORT_SYMBOL vmlinux 0x7886582f tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x78a1c7e1 vfs_readlink
+EXPORT_SYMBOL vmlinux 0x78a33819 add_wait_queue
+EXPORT_SYMBOL vmlinux 0x78ad5c4b sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x78d82bff mod_timer
+EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices
+EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method
+EXPORT_SYMBOL vmlinux 0x791d3076 unw_access_pr
+EXPORT_SYMBOL vmlinux 0x794c1266 inet_frag_find
+EXPORT_SYMBOL vmlinux 0x7952fa1a tcp_read_sock
+EXPORT_SYMBOL vmlinux 0x796c7928 devm_iounmap
+EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x7981a6e0 bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x7985e0e6 scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0x79a1a29b boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0x79a2fd35 ia64_unreg_MCA_extension
+EXPORT_SYMBOL vmlinux 0x79a4a178 seq_lseek
+EXPORT_SYMBOL vmlinux 0x79a74dc9 dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79ac12d5 pci_get_slot
+EXPORT_SYMBOL vmlinux 0x79b497cf kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0x79b7a9a5 matroxfb_g450_shutdown
+EXPORT_SYMBOL vmlinux 0x79c5b5ae find_get_page
+EXPORT_SYMBOL vmlinux 0x79ddd9f9 gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x79ea0fef __blk_end_request
+EXPORT_SYMBOL vmlinux 0x7a044f05 input_register_handler
+EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol
+EXPORT_SYMBOL vmlinux 0x7a2b6b30 tty_write_room
+EXPORT_SYMBOL vmlinux 0x7a2dd4da security_inode_init_security
+EXPORT_SYMBOL vmlinux 0x7a4497db kzfree
+EXPORT_SYMBOL vmlinux 0x7a70a69a nla_put
+EXPORT_SYMBOL vmlinux 0x7a7af6a5 dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x7a898984 audit_log_end
+EXPORT_SYMBOL vmlinux 0x7a9caf34 jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x7aa8dc4e sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip
+EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0x7b0b47fe skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x7b0c84c4 acpi_remove_table_handler
+EXPORT_SYMBOL vmlinux 0x7b2c7216 blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0x7b504921 generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x7b6e65a5 pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0x7b7277d7 revalidate_disk
+EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update
+EXPORT_SYMBOL vmlinux 0x7ba6a7ba request_key_async
+EXPORT_SYMBOL vmlinux 0x7bc49d66 mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0x7bccbe5f qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0x7bd0e62b skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name
+EXPORT_SYMBOL vmlinux 0x7bdd623c tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0x7be60f8d blkdev_get
+EXPORT_SYMBOL vmlinux 0x7bf93d13 set_bdi_congested
+EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x7c13722c sock_no_getname
+EXPORT_SYMBOL vmlinux 0x7c176586 sock_recvmsg
+EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c553d62 __skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x7c60d66e getname
+EXPORT_SYMBOL vmlinux 0x7c61340c __release_region
+EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down
+EXPORT_SYMBOL vmlinux 0x7ce294dc llc_sap_close
+EXPORT_SYMBOL vmlinux 0x7cf15604 page_put_link
+EXPORT_SYMBOL vmlinux 0x7d0904c3 dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies
+EXPORT_SYMBOL vmlinux 0x7d6277f3 pcim_iounmap
+EXPORT_SYMBOL vmlinux 0x7d6efcc8 do_truncate
+EXPORT_SYMBOL vmlinux 0x7d727261 dst_destroy
+EXPORT_SYMBOL vmlinux 0x7d91cc17 generic_file_mmap
+EXPORT_SYMBOL vmlinux 0x7d938edd pci_find_capability
+EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port
+EXPORT_SYMBOL vmlinux 0x7daa5d4b current_fs_time
+EXPORT_SYMBOL vmlinux 0x7dba6200 tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0x7dc39531 scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0x7dceceac capable
+EXPORT_SYMBOL vmlinux 0x7dd2dc89 unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x7e1060a2 locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x7e2baae1 tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e444114 jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0x7e5a4ab0 generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0x7e8456c9 cdev_add
+EXPORT_SYMBOL vmlinux 0x7ea126d7 clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0x7eb0b6be scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy
+EXPORT_SYMBOL vmlinux 0x7edc2d53 seq_escape
+EXPORT_SYMBOL vmlinux 0x7eef8ece skb_make_writable
+EXPORT_SYMBOL vmlinux 0x7f1a0e80 scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f4262b8 tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x7f4f308d tty_port_open
+EXPORT_SYMBOL vmlinux 0x7f5554de dev_uc_init
+EXPORT_SYMBOL vmlinux 0x7f6a6f77 security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0x7f9616d6 genphy_read_status
+EXPORT_SYMBOL vmlinux 0x7fbca2b0 unregister_key_type
+EXPORT_SYMBOL vmlinux 0x7fcd2ec8 llc_sap_open
+EXPORT_SYMBOL vmlinux 0x8022b696 pnp_stop_dev
+EXPORT_SYMBOL vmlinux 0x802f1b23 pci_claim_resource
+EXPORT_SYMBOL vmlinux 0x803730f4 tc_classify
+EXPORT_SYMBOL vmlinux 0x806031be tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0x808a2e06 dm_table_put
+EXPORT_SYMBOL vmlinux 0x80cae1ed udp_table
+EXPORT_SYMBOL vmlinux 0x81024f76 blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table
+EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x815a27e1 xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal
+EXPORT_SYMBOL vmlinux 0x817f7643 generic_writepages
+EXPORT_SYMBOL vmlinux 0x8194f7a9 sock_setsockopt
+EXPORT_SYMBOL vmlinux 0x81a452cf swiotlb_map_sg_attrs
+EXPORT_SYMBOL vmlinux 0x81deb69e inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0x81e3f963 dw_spi_add_host
+EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info
+EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill
+EXPORT_SYMBOL vmlinux 0x8217d3a1 remove_proc_entry
+EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x82353fb4 __wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8284e189 vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x828deb46 matroxfb_vgaHWinit
+EXPORT_SYMBOL vmlinux 0x82927ad6 inode_set_bytes
+EXPORT_SYMBOL vmlinux 0x82aa5b77 deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82cf7f38 shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x82ead7b4 up
+EXPORT_SYMBOL vmlinux 0x830efeb6 pci_fixup_device
+EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3
+EXPORT_SYMBOL vmlinux 0x8329b14d d_lookup
+EXPORT_SYMBOL vmlinux 0x834cfc21 eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0x8350b937 bio_flush_dcache_pages
+EXPORT_SYMBOL vmlinux 0x83640a10 scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0x836f7b53 gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x83800bfa kref_init
+EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8
+EXPORT_SYMBOL vmlinux 0x83998b0b ia64_save_scratch_fpregs
+EXPORT_SYMBOL vmlinux 0x839e6024 tcp_v4_remember_stamp
+EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83abf9d6 __invalidate_device
+EXPORT_SYMBOL vmlinux 0x8440b19c simple_set_mnt
+EXPORT_SYMBOL vmlinux 0x8448c036 key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0x8457dca6 kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0x8458a8b6 pci_read_vpd
+EXPORT_SYMBOL vmlinux 0x8474426e mapping_tagged
+EXPORT_SYMBOL vmlinux 0x848448ba i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0x848dedff DAC1064_global_restore
+EXPORT_SYMBOL vmlinux 0x84b4157b pcim_iomap
+EXPORT_SYMBOL vmlinux 0x84bac850 freeze_bdev
+EXPORT_SYMBOL vmlinux 0x84d4b009 inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0x84efd9ba dm_table_event
+EXPORT_SYMBOL vmlinux 0x84f804cd key_type_keyring
+EXPORT_SYMBOL vmlinux 0x852f4c4b netif_carrier_off
+EXPORT_SYMBOL vmlinux 0x8532d6a7 end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups
+EXPORT_SYMBOL vmlinux 0x857a9512 fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0x8592c37b tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0x85abc85f strncmp
+EXPORT_SYMBOL vmlinux 0x85c9ac27 udp_disconnect
+EXPORT_SYMBOL vmlinux 0x85df9b6c strsep
+EXPORT_SYMBOL vmlinux 0x85e13fa5 tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x85e6e40f down_timeout
+EXPORT_SYMBOL vmlinux 0x8611c6f4 kfree_skb
+EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x8633475c try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x8638a94e d_add_ci
+EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x865a7d89 alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x8664bba1 vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x868acba5 get_options
+EXPORT_SYMBOL vmlinux 0x86a34900 nonseekable_open
+EXPORT_SYMBOL vmlinux 0x86b4c13f i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x86bf6d1d get_sb_ns
+EXPORT_SYMBOL vmlinux 0x86c83149 kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x86d048fd _raw_read_lock_irq
+EXPORT_SYMBOL vmlinux 0x86f30c8d elv_queue_empty
+EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x870fa5b3 ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0x8716021f tioca_list
+EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x87235072 neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0x8742ffca udp_prot
+EXPORT_SYMBOL vmlinux 0x875b1457 delayed_slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x8762c94c tty_register_device
+EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write
+EXPORT_SYMBOL vmlinux 0x8771985b tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0x877cfefb journal_wipe
+EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87a0232c key_alloc
+EXPORT_SYMBOL vmlinux 0x87bb2b7f dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate
+EXPORT_SYMBOL vmlinux 0x8828e57b sock_no_mmap
+EXPORT_SYMBOL vmlinux 0x884c2281 sock_create_lite
+EXPORT_SYMBOL vmlinux 0x88845f7a gen_pool_add
+EXPORT_SYMBOL vmlinux 0x88888915 __bio_clone
+EXPORT_SYMBOL vmlinux 0x88adf498 __dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x88b49152 del_timer_sync
+EXPORT_SYMBOL vmlinux 0x88e1159d tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0x88ef1836 matroxfb_wait_for_sync
+EXPORT_SYMBOL vmlinux 0x88f2ac99 tty_shutdown
+EXPORT_SYMBOL vmlinux 0x8918112f security_path_mkdir
+EXPORT_SYMBOL vmlinux 0x89222a1f end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x892e48ce ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x8936c707 mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0x897473df mktime
+EXPORT_SYMBOL vmlinux 0x89819f3b pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89f7a86d pci_clear_master
+EXPORT_SYMBOL vmlinux 0x89fc0505 unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0x8a0f5022 arp_send
+EXPORT_SYMBOL vmlinux 0x8a609819 pnp_unregister_driver
+EXPORT_SYMBOL vmlinux 0x8a612126 read_cache_page_async
+EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory
+EXPORT_SYMBOL vmlinux 0x8a8d5709 page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8aac8da0 inode_needs_sync
+EXPORT_SYMBOL vmlinux 0x8ae43d75 journal_restart
+EXPORT_SYMBOL vmlinux 0x8b18f49c xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b205553 xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0x8b259aff jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0x8b33ddf0 inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last
+EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x8b62215e blk_start_queue
+EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup
+EXPORT_SYMBOL vmlinux 0x8b966b63 sn_rtc_cycles_per_second
+EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup
+EXPORT_SYMBOL vmlinux 0x8bd1ec4b ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0x8bd4cd6a __inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long
+EXPORT_SYMBOL vmlinux 0x8bf86698 generic_listxattr
+EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16
+EXPORT_SYMBOL vmlinux 0x8c330c0f kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0x8c690659 jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0x8c9e096e padata_add_cpu
+EXPORT_SYMBOL vmlinux 0x8caf61db file_permission
+EXPORT_SYMBOL vmlinux 0x8cb8e4ed __generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8ce39431 generic_write_sync
+EXPORT_SYMBOL vmlinux 0x8ce68771 ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0x8d01b108 names_cachep
+EXPORT_SYMBOL vmlinux 0x8d02aa94 kmem_ptr_validate
+EXPORT_SYMBOL vmlinux 0x8d173992 netif_napi_add
+EXPORT_SYMBOL vmlinux 0x8d23ffd1 input_open_device
+EXPORT_SYMBOL vmlinux 0x8d2d723f ia64_pal_call_static
+EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d5f44ff tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0x8d67e032 elv_register_queue
+EXPORT_SYMBOL vmlinux 0x8d72f8c4 invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0x8d7f7a15 scsi_finish_command
+EXPORT_SYMBOL vmlinux 0x8d8c22b0 bdevname
+EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data
+EXPORT_SYMBOL vmlinux 0x8da5dcd2 kill_pgrp
+EXPORT_SYMBOL vmlinux 0x8dd6c933 mempool_free
+EXPORT_SYMBOL vmlinux 0x8ddab831 _raw_spin_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block
+EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e27f489 jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0x8e321dd2 __starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x8e4cf862 scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0x8e6a67b4 nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x8e879bb7 __vmalloc
+EXPORT_SYMBOL vmlinux 0x8e8d5997 rfkill_blocked
+EXPORT_SYMBOL vmlinux 0x8e9a1158 sk_run_filter
+EXPORT_SYMBOL vmlinux 0x8eb27ee3 iunique
+EXPORT_SYMBOL vmlinux 0x8ecd7bc5 pci_target_state
+EXPORT_SYMBOL vmlinux 0x8ed247fa pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev
+EXPORT_SYMBOL vmlinux 0x8f509344 blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0x8f5c3900 sock_create_kern
+EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data
+EXPORT_SYMBOL vmlinux 0x8f72ed35 misc_register
+EXPORT_SYMBOL vmlinux 0x8fa8f41b blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0x8fcf9d57 dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x8fe21810 abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x900b7d4b linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x9025426b ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x903ab395 __moddi3
+EXPORT_SYMBOL vmlinux 0x903ebe46 dput
+EXPORT_SYMBOL vmlinux 0x9041d7a7 journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector
+EXPORT_SYMBOL vmlinux 0x90488cb4 _raw_write_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x90623ded seq_open
+EXPORT_SYMBOL vmlinux 0x908d8aeb ip_ct_attach
+EXPORT_SYMBOL vmlinux 0x90a1601f dmi_check_system
+EXPORT_SYMBOL vmlinux 0x90b9f160 do_SAK
+EXPORT_SYMBOL vmlinux 0x90c08512 i2c_master_send
+EXPORT_SYMBOL vmlinux 0x90c64e01 rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0x91141104 dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable
+EXPORT_SYMBOL vmlinux 0x91453422 mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0x91744f53 dev_get_stats
+EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong
+EXPORT_SYMBOL vmlinux 0x91cf5767 locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x91dddb4d jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x91e0ba82 up_read
+EXPORT_SYMBOL vmlinux 0x91ed305d pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0x91f112ff lro_flush_all
+EXPORT_SYMBOL vmlinux 0x9207f306 generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool
+EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten
+EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get
+EXPORT_SYMBOL vmlinux 0x92423110 generic_read_dir
+EXPORT_SYMBOL vmlinux 0x924896bc tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x92769eed blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0x92908392 bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x9298bba8 jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x929dd9f9 blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0x92b52a86 ps2_command
+EXPORT_SYMBOL vmlinux 0x92d7c987 unregister_8022_client
+EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le
+EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get
+EXPORT_SYMBOL vmlinux 0x9319c406 copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0x9323c858 vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0x93494062 mpage_readpages
+EXPORT_SYMBOL vmlinux 0x937078f8 del_gendisk
+EXPORT_SYMBOL vmlinux 0x93727668 rtnl_create_link
+EXPORT_SYMBOL vmlinux 0x93730dc5 scsi_block_requests
+EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule
+EXPORT_SYMBOL vmlinux 0x93ba5248 max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0x93bebbed hippi_change_mtu
+EXPORT_SYMBOL vmlinux 0x93c651be acpi_info
+EXPORT_SYMBOL vmlinux 0x93d8582b tcp_check_req
+EXPORT_SYMBOL vmlinux 0x93e80a8d dma_get_ops
+EXPORT_SYMBOL vmlinux 0x93f16e4d udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package
+EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages
+EXPORT_SYMBOL vmlinux 0x9403a393 _numa_mem_
+EXPORT_SYMBOL vmlinux 0x94659d1a genphy_update_link
+EXPORT_SYMBOL vmlinux 0x94961283 vunmap
+EXPORT_SYMBOL vmlinux 0x9497b0ec xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0x94b91ae0 netif_napi_del
+EXPORT_SYMBOL vmlinux 0x94dfb538 elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0x94ee1bec blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0x9500558d jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x95025bbc tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0x950ffff2 cpu_online_mask
+EXPORT_SYMBOL vmlinux 0x9525e2b7 create_proc_entry
+EXPORT_SYMBOL vmlinux 0x95352ea9 acpi_check_mem_region
+EXPORT_SYMBOL vmlinux 0x95425b90 __dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init
+EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf
+EXPORT_SYMBOL vmlinux 0x954f4e54 cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x95900f67 netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x95c8ccac ida_pre_get
+EXPORT_SYMBOL vmlinux 0x95ceb864 key_update
+EXPORT_SYMBOL vmlinux 0x95f9a59a pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0x95fa30d8 inet_frags_init
+EXPORT_SYMBOL vmlinux 0x962d2725 acpi_device_hid
+EXPORT_SYMBOL vmlinux 0x9657f5bb mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x967116a3 xfrm_bundle_ok
+EXPORT_SYMBOL vmlinux 0x967e4754 mutex_lock
+EXPORT_SYMBOL vmlinux 0x96988971 bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0x96ad582a page_follow_link_light
+EXPORT_SYMBOL vmlinux 0x96b01c3a register_exec_domain
+EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96d3d340 dev_uc_del
+EXPORT_SYMBOL vmlinux 0x96e829ab netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x96f2f88b xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0x97129f26 ip_defrag
+EXPORT_SYMBOL vmlinux 0x971a84ed dma_sync_wait
+EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n
+EXPORT_SYMBOL vmlinux 0x974714ba sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x978537e8 mark_info_dirty
+EXPORT_SYMBOL vmlinux 0x97a03e7f xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x97add07f scsi_init_io
+EXPORT_SYMBOL vmlinux 0x97b39929 do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0x97c74461 call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0x97d39913 vfs_rename
+EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block
+EXPORT_SYMBOL vmlinux 0x97de2e01 sk_stream_error
+EXPORT_SYMBOL vmlinux 0x98233fe8 generic_block_bmap
+EXPORT_SYMBOL vmlinux 0x983cf8fc fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x9845a352 tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init
+EXPORT_SYMBOL vmlinux 0x98dfe218 mempool_create
+EXPORT_SYMBOL vmlinux 0x98e6a85c dev_close
+EXPORT_SYMBOL vmlinux 0x98f263d6 scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0x98f55431 uncached_free_page
+EXPORT_SYMBOL vmlinux 0x991957ce posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0x99358d54 get_super
+EXPORT_SYMBOL vmlinux 0x993e6e37 __next_cpu
+EXPORT_SYMBOL vmlinux 0x9970696c abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x99914919 tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x99982fdc jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0x999e8297 vfree
+EXPORT_SYMBOL vmlinux 0x99b5da6d sk_dst_check
+EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name
+EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99d0158f tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x99d9e1c0 dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x99e1015c _raw_spin_trylock
+EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink
+EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0x99f4287f tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x99f972c1 scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk
+EXPORT_SYMBOL vmlinux 0x9a241437 journal_set_features
+EXPORT_SYMBOL vmlinux 0x9a28b0cd sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x9a301ca7 dm_io_client_create
+EXPORT_SYMBOL vmlinux 0x9a310a80 acpi_enter_sleep_state_s4bios
+EXPORT_SYMBOL vmlinux 0x9a3cf14e nf_log_register
+EXPORT_SYMBOL vmlinux 0x9a696087 pci_disable_link_state
+EXPORT_SYMBOL vmlinux 0x9a6fd088 ida_init
+EXPORT_SYMBOL vmlinux 0x9a7980c0 dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0x9a9a80bf interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0x9aabc564 crc16
+EXPORT_SYMBOL vmlinux 0x9ab1b9a8 ether_setup
+EXPORT_SYMBOL vmlinux 0x9abfb6dd max_low_pfn
+EXPORT_SYMBOL vmlinux 0x9af39f64 blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0x9b048d7a inet_getname
+EXPORT_SYMBOL vmlinux 0x9b095e4f fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x9b0a6d3e inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b4b513d tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x9b5987ed __sn_cnodeid_to_nasid
+EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x9b5fd507 wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0x9b6f0b51 bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x9b7b6461 kernel_accept
+EXPORT_SYMBOL vmlinux 0x9b94b553 pnp_device_attach
+EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split
+EXPORT_SYMBOL vmlinux 0x9bcfdbf2 pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan
+EXPORT_SYMBOL vmlinux 0x9c116adc nf_ct_attach
+EXPORT_SYMBOL vmlinux 0x9c2beb95 dev_getbyhwaddr
+EXPORT_SYMBOL vmlinux 0x9c32c0e2 elv_rb_add
+EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x9c6e42fa soft_cursor
+EXPORT_SYMBOL vmlinux 0x9c9435b2 pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0x9ca15c36 __pagevec_release
+EXPORT_SYMBOL vmlinux 0x9ca95a0e sort
+EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cc2625a dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x9cc4e1d0 sock_no_listen
+EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9d21fe6c set_blocksize
+EXPORT_SYMBOL vmlinux 0x9d2ba6d7 skb_checksum
+EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable
+EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d7157a0 vfs_link
+EXPORT_SYMBOL vmlinux 0x9d895da1 tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x9da55045 __vlan_hwaccel_rx
+EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x9dc57261 cont_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x9e01414a tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0x9e1420e6 blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x9e2b2e84 dma_find_channel
+EXPORT_SYMBOL vmlinux 0x9e6ea1ae dw_spi_resume_host
+EXPORT_SYMBOL vmlinux 0x9e8ca898 dquot_commit
+EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table
+EXPORT_SYMBOL vmlinux 0x9eb37825 d_validate
+EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource
+EXPORT_SYMBOL vmlinux 0x9edbecae snprintf
+EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk
+EXPORT_SYMBOL vmlinux 0x9f0cd211 kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool
+EXPORT_SYMBOL vmlinux 0x9f37b8b2 tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0x9f383170 splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0x9f497ffd set_anon_super
+EXPORT_SYMBOL vmlinux 0x9f542831 rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x9f568dd5 __dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x9f819d57 register_nls
+EXPORT_SYMBOL vmlinux 0x9f849908 load_nls
+EXPORT_SYMBOL vmlinux 0x9f88bbe7 textsearch_register
+EXPORT_SYMBOL vmlinux 0x9f984513 strrchr
+EXPORT_SYMBOL vmlinux 0x9fa6ace1 find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x9fb89e22 __sn_nodepda
+EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0x9fe0f6fc key_put
+EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa04fa807 __netdev_alloc_page
+EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa08a7c77 register_netdev
+EXPORT_SYMBOL vmlinux 0xa0996f6c fb_pan_display
+EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec
+EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0b4faf0 xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0xa0c78dc0 unregister_console
+EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize
+EXPORT_SYMBOL vmlinux 0xa0d44eaa jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0xa0d686a7 is_bad_inode
+EXPORT_SYMBOL vmlinux 0xa0db100e complete_and_exit
+EXPORT_SYMBOL vmlinux 0xa0ef57d8 pci_scan_slot
+EXPORT_SYMBOL vmlinux 0xa0f6ae37 xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa0ff02ab ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa1165125 __devm_request_region
+EXPORT_SYMBOL vmlinux 0xa11fac34 uncached_alloc_page
+EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa13487c0 udp_proc_register
+EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa1457bd0 blk_peek_request
+EXPORT_SYMBOL vmlinux 0xa14965f2 sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0xa15cd19c scm_detach_fds
+EXPORT_SYMBOL vmlinux 0xa179cec8 freeze_super
+EXPORT_SYMBOL vmlinux 0xa1809b1d genl_register_ops
+EXPORT_SYMBOL vmlinux 0xa192f09f kernel_getsockname
+EXPORT_SYMBOL vmlinux 0xa1a2b03e elv_rb_find
+EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode
+EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched
+EXPORT_SYMBOL vmlinux 0xa1d2934d sn_hwperf_get_nearest_node
+EXPORT_SYMBOL vmlinux 0xa1e0f6e8 fsync_bdev
+EXPORT_SYMBOL vmlinux 0xa1eb46ae pci_get_device
+EXPORT_SYMBOL vmlinux 0xa1f08afc tcf_hash_check
+EXPORT_SYMBOL vmlinux 0xa2043134 block_write_begin
+EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa21a89d5 i2c_register_driver
+EXPORT_SYMBOL vmlinux 0xa2755c7b fpswa_interface
+EXPORT_SYMBOL vmlinux 0xa287f374 pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0xa28f0f06 dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2dc0fff dcache_lock
+EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa2f24785 machvec_timer_interrupt
+EXPORT_SYMBOL vmlinux 0xa30044ba pci_reenable_device
+EXPORT_SYMBOL vmlinux 0xa3248789 rfkill_unregister
+EXPORT_SYMBOL vmlinux 0xa327d080 pci_select_bars
+EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker
+EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy
+EXPORT_SYMBOL vmlinux 0xa35a142f tty_devnum
+EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config
+EXPORT_SYMBOL vmlinux 0xa36b92a0 neigh_for_each
+EXPORT_SYMBOL vmlinux 0xa387f51c close_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay
+EXPORT_SYMBOL vmlinux 0xa3ad57ed sock_rfree
+EXPORT_SYMBOL vmlinux 0xa3b4b6c5 __blockdev_direct_IO_newtrunc
+EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0xa4450b11 jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0xa44fffc1 schedule
+EXPORT_SYMBOL vmlinux 0xa49fdd25 revert_creds
+EXPORT_SYMBOL vmlinux 0xa4b5866a serio_open
+EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4c48429 bio_map_user
+EXPORT_SYMBOL vmlinux 0xa4c5273f scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0xa4d0ebf7 slow_work_register_user
+EXPORT_SYMBOL vmlinux 0xa4db3168 dev_mc_add
+EXPORT_SYMBOL vmlinux 0xa509886a llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0xa5236bd7 block_commit_write
+EXPORT_SYMBOL vmlinux 0xa52f26d1 udplite_prot
+EXPORT_SYMBOL vmlinux 0xa537969a __skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xa53babdf redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0xa5565c45 blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone
+EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse
+EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes
+EXPORT_SYMBOL vmlinux 0xa6095be1 __xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0xa60fbaea atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0xa610e117 inet_csk_accept
+EXPORT_SYMBOL vmlinux 0xa634a275 tcp_poll
+EXPORT_SYMBOL vmlinux 0xa6428fb1 __locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xa65f0662 call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0xa66a300f netpoll_print_options
+EXPORT_SYMBOL vmlinux 0xa67017c8 init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0xa67210f2 phy_device_free
+EXPORT_SYMBOL vmlinux 0xa67bce75 netpoll_poll_dev
+EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa682111f fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0xa6895127 init_net
+EXPORT_SYMBOL vmlinux 0xa6d02843 d_path
+EXPORT_SYMBOL vmlinux 0xa6dc9a05 pnp_request_card_device
+EXPORT_SYMBOL vmlinux 0xa6df6e3f registered_fb
+EXPORT_SYMBOL vmlinux 0xa6e96842 sn_bus_store_sysdata
+EXPORT_SYMBOL vmlinux 0xa70d8ae4 scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0xa7164fd5 swiotlb_sync_single_for_cpu
+EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes
+EXPORT_SYMBOL vmlinux 0xa74654a0 napi_gro_frags
+EXPORT_SYMBOL vmlinux 0xa74f9981 set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0xa75b2363 __first_cpu
+EXPORT_SYMBOL vmlinux 0xa75d03b5 dquot_quota_off
+EXPORT_SYMBOL vmlinux 0xa79bff2d hpage_shift
+EXPORT_SYMBOL vmlinux 0xa79d82c5 netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0xa7ac60e9 deactivate_super
+EXPORT_SYMBOL vmlinux 0xa7ce2229 get_write_access
+EXPORT_SYMBOL vmlinux 0xa7e0bc27 kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on
+EXPORT_SYMBOL vmlinux 0xa831a13d numa_node
+EXPORT_SYMBOL vmlinux 0xa84f0ffa generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0xa84f6b1b __any_online_cpu
+EXPORT_SYMBOL vmlinux 0xa886a958 krealloc
+EXPORT_SYMBOL vmlinux 0xa8944f17 genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region
+EXPORT_SYMBOL vmlinux 0xa8ad2376 journal_destroy
+EXPORT_SYMBOL vmlinux 0xa8bf8b75 down_killable
+EXPORT_SYMBOL vmlinux 0xa8c4419d lock_sock_fast
+EXPORT_SYMBOL vmlinux 0xa8cceb4b __inet6_hash
+EXPORT_SYMBOL vmlinux 0xa8d16f2b dcache_dir_open
+EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning
+EXPORT_SYMBOL vmlinux 0xa8db02d7 skb_append
+EXPORT_SYMBOL vmlinux 0xa8e42ce3 acpi_root_dir
+EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa8ffe21b blk_register_region
+EXPORT_SYMBOL vmlinux 0xa90bfc94 scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0xa95e1cf4 tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0xa980cf6e generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0xa98a249d dst_release
+EXPORT_SYMBOL vmlinux 0xa9bf0efd sk_wait_data
+EXPORT_SYMBOL vmlinux 0xa9d166d1 mntput_no_expire
+EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xa9f2f9cc lookup_one_len
+EXPORT_SYMBOL vmlinux 0xa9ff7257 i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0xaa05278f scsi_print_result
+EXPORT_SYMBOL vmlinux 0xaa0bf0cd do_splice_from
+EXPORT_SYMBOL vmlinux 0xaa49b7b3 filemap_fault
+EXPORT_SYMBOL vmlinux 0xaa5a772f nla_reserve
+EXPORT_SYMBOL vmlinux 0xaa5f258f nobh_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0xaa621e77 tcf_em_register
+EXPORT_SYMBOL vmlinux 0xaa7656eb bio_endio
+EXPORT_SYMBOL vmlinux 0xaa811ddd hippi_mac_addr
+EXPORT_SYMBOL vmlinux 0xaa846ae3 __brelse
+EXPORT_SYMBOL vmlinux 0xaa8f3ada iget5_locked
+EXPORT_SYMBOL vmlinux 0xaaab24d9 scsi_device_put
+EXPORT_SYMBOL vmlinux 0xaab28600 kernel_connect
+EXPORT_SYMBOL vmlinux 0xaad43dc6 phy_start
+EXPORT_SYMBOL vmlinux 0xaae13ea4 con_is_bound
+EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable
+EXPORT_SYMBOL vmlinux 0xaaed2261 dev_trans_start
+EXPORT_SYMBOL vmlinux 0xaaf53c64 init_timer_key
+EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp
+EXPORT_SYMBOL vmlinux 0xab0b80dd idr_for_each
+EXPORT_SYMBOL vmlinux 0xab274adb jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0xab55c4de xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0xab56274b pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off
+EXPORT_SYMBOL vmlinux 0xab7171c9 vga_client_register
+EXPORT_SYMBOL vmlinux 0xab7ad40b inet_listen
+EXPORT_SYMBOL vmlinux 0xab81f203 ip_mc_rejoin_group
+EXPORT_SYMBOL vmlinux 0xab85a099 tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0xab8ae5bb tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabd16ecb serio_interrupt
+EXPORT_SYMBOL vmlinux 0xabd8e427 matroxfb_var2my
+EXPORT_SYMBOL vmlinux 0xabde9182 cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac193d93 d_invalidate
+EXPORT_SYMBOL vmlinux 0xac1a8cf9 vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0xac58501e splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id
+EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac7a48d9 rwsem_wake
+EXPORT_SYMBOL vmlinux 0xac812950 sn_send_IPI_phys
+EXPORT_SYMBOL vmlinux 0xac94152f dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton
+EXPORT_SYMBOL vmlinux 0xace51905 ip_route_output_key
+EXPORT_SYMBOL vmlinux 0xacf0f8a5 netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup
+EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex
+EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute
+EXPORT_SYMBOL vmlinux 0xad32cc93 inet_addr_type
+EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad84d7b0 save_mount_options
+EXPORT_SYMBOL vmlinux 0xad897408 kmem_cache_name
+EXPORT_SYMBOL vmlinux 0xad8bc01e __scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0xad998077 complete
+EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xadad7366 neigh_parms_release
+EXPORT_SYMBOL vmlinux 0xadb35749 eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xadd6a4cf blk_make_request
+EXPORT_SYMBOL vmlinux 0xadfca4c7 lock_sock_nested
+EXPORT_SYMBOL vmlinux 0xae05f947 prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0xae0a64c2 lock_fb_info
+EXPORT_SYMBOL vmlinux 0xae452c45 scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xae4a1bda csum_tcpudp_nofold
+EXPORT_SYMBOL vmlinux 0xae662878 iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0xae887158 put_tty_driver
+EXPORT_SYMBOL vmlinux 0xaea8a813 skb_free_datagram
+EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict
+EXPORT_SYMBOL vmlinux 0xaed4b87f kmem_cache_create
+EXPORT_SYMBOL vmlinux 0xaed86c8d filemap_flush
+EXPORT_SYMBOL vmlinux 0xaedac6b6 iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0xaf009830 ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0xaf0763d8 journal_dirty_data
+EXPORT_SYMBOL vmlinux 0xaf07cabb blk_free_tags
+EXPORT_SYMBOL vmlinux 0xaf12d563 tty_port_close_start
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf544712 fb_show_logo
+EXPORT_SYMBOL vmlinux 0xaf65f718 llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0xaf6bbc60 machvec_setup
+EXPORT_SYMBOL vmlinux 0xaf6da52d __mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0xaf7fb697 dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xaf939ada scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xafa50a42 __lock_page
+EXPORT_SYMBOL vmlinux 0xafa97225 tty_free_termios
+EXPORT_SYMBOL vmlinux 0xafd5ff7e set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0xafe2a6eb skb_queue_tail
+EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn
+EXPORT_SYMBOL vmlinux 0xb000565f generic_make_request
+EXPORT_SYMBOL vmlinux 0xb037d7b6 scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0xb03c1d78 scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0xb07dfb3d acpi_remove_gpe_handler
+EXPORT_SYMBOL vmlinux 0xb08d6c74 igrab
+EXPORT_SYMBOL vmlinux 0xb09dc1d5 journal_init_dev
+EXPORT_SYMBOL vmlinux 0xb0a26111 __nla_reserve
+EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0bb7c68 scsi_execute_req
+EXPORT_SYMBOL vmlinux 0xb0e10781 get_option
+EXPORT_SYMBOL vmlinux 0xb0e485d8 dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0xb0f32ebf xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0xb1169035 set_disk_ro
+EXPORT_SYMBOL vmlinux 0xb119aa5c simple_setsize
+EXPORT_SYMBOL vmlinux 0xb11b9869 blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xb11e6961 try_to_del_timer_sync
+EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat
+EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on
+EXPORT_SYMBOL vmlinux 0xb12a80bf xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0xb12df9fa journal_ack_err
+EXPORT_SYMBOL vmlinux 0xb15734ca scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table
+EXPORT_SYMBOL vmlinux 0xb173a3cb tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0xb18debb1 __module_put_and_exit
+EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xb19021d3 d_move
+EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1e62462 block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0xb1f32d3d ia64_max_iommu_merge_mask
+EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc
+EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short
+EXPORT_SYMBOL vmlinux 0xb22d6513 blk_complete_request
+EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xb23ea778 register_key_type
+EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb27b12da sn_partition_id
+EXPORT_SYMBOL vmlinux 0xb29b3705 flush_signals
+EXPORT_SYMBOL vmlinux 0xb29ce179 i2c_use_client
+EXPORT_SYMBOL vmlinux 0xb2a087d8 pci_get_subsys
+EXPORT_SYMBOL vmlinux 0xb2bf6b08 __scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xb2eaa80a wake_up_process
+EXPORT_SYMBOL vmlinux 0xb3164a29 bd_set_size
+EXPORT_SYMBOL vmlinux 0xb326376a sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer
+EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate
+EXPORT_SYMBOL vmlinux 0xb35ce2c7 skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0xb3654689 security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0xb368a433 netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0xb3912990 tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3bc88a7 vfs_mknod
+EXPORT_SYMBOL vmlinux 0xb3d9705c simple_transaction_get
+EXPORT_SYMBOL vmlinux 0xb3e5ee11 tcf_register_action
+EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact
+EXPORT_SYMBOL vmlinux 0xb40348f9 scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked
+EXPORT_SYMBOL vmlinux 0xb4240732 serio_reconnect
+EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool
+EXPORT_SYMBOL vmlinux 0xb43d4c2b _raw_read_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0xb45519b8 __percpu_counter_add
+EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb47ef95e pci_try_set_mwi
+EXPORT_SYMBOL vmlinux 0xb4858b68 jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xb4e3d0b1 ip_route_input_common
+EXPORT_SYMBOL vmlinux 0xb4eed524 blk_end_request
+EXPORT_SYMBOL vmlinux 0xb4f442bb input_get_keycode
+EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf
+EXPORT_SYMBOL vmlinux 0xb50e166d simple_empty
+EXPORT_SYMBOL vmlinux 0xb50f615a neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0xb52cbcc3 blk_queue_ordered
+EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb5457715 padata_do_parallel
+EXPORT_SYMBOL vmlinux 0xb55d54f1 fb_set_var
+EXPORT_SYMBOL vmlinux 0xb55d6b1c ipv4_specific
+EXPORT_SYMBOL vmlinux 0xb57a187f block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0xb5844a73 scsi_add_device
+EXPORT_SYMBOL vmlinux 0xb5866450 skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5bc98c9 eth_change_mtu
+EXPORT_SYMBOL vmlinux 0xb5d260a7 flush_old_exec
+EXPORT_SYMBOL vmlinux 0xb5d52c27 ec_transaction
+EXPORT_SYMBOL vmlinux 0xb5e4e9fe tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xb6109ea3 pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0xb61bdc56 dm_table_get_md
+EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one
+EXPORT_SYMBOL vmlinux 0xb632fbd3 have_submounts
+EXPORT_SYMBOL vmlinux 0xb6394385 pcibios_bus_to_resource
+EXPORT_SYMBOL vmlinux 0xb65a8dae matroxfb_unregister_driver
+EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6785f0d dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0xb68a61d1 filp_open
+EXPORT_SYMBOL vmlinux 0xb68ae196 eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0xb69bc9e2 bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6b4d601 da903x_query_status
+EXPORT_SYMBOL vmlinux 0xb6b4ecf2 blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu
+EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node
+EXPORT_SYMBOL vmlinux 0xb6f917ee xfrm_state_update
+EXPORT_SYMBOL vmlinux 0xb70590a2 con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0xb72b6131 journal_errno
+EXPORT_SYMBOL vmlinux 0xb73417e5 unlock_new_inode
+EXPORT_SYMBOL vmlinux 0xb734c093 seq_path
+EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event
+EXPORT_SYMBOL vmlinux 0xb785c458 dev_add_pack
+EXPORT_SYMBOL vmlinux 0xb78f064c ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0xb7ade065 sock_no_bind
+EXPORT_SYMBOL vmlinux 0xb7b02382 rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring
+EXPORT_SYMBOL vmlinux 0xb7d411d5 kern_mem_attribute
+EXPORT_SYMBOL vmlinux 0xb83a3f37 nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0xb84d120d matroxfb_register_driver
+EXPORT_SYMBOL vmlinux 0xb852284d proc_mkdir
+EXPORT_SYMBOL vmlinux 0xb860d231 journal_force_commit
+EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32
+EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32
+EXPORT_SYMBOL vmlinux 0xb8da7738 acpi_bus_get_device
+EXPORT_SYMBOL vmlinux 0xb8e0af71 pci_remove_bus
+EXPORT_SYMBOL vmlinux 0xb927d050 dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0xb95162c9 skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0xb95a2a60 alloc_fcdev
+EXPORT_SYMBOL vmlinux 0xb9647e1d generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0xb9805c45 inet_add_protocol
+EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb9daa12b netif_receive_skb
+EXPORT_SYMBOL vmlinux 0xb9eb08c6 serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0xb9fa695c sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0xba0d8fbc journal_stop
+EXPORT_SYMBOL vmlinux 0xba12ae74 idr_remove
+EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read
+EXPORT_SYMBOL vmlinux 0xba2ebb36 fput
+EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba5e8ae0 scsi_scan_host
+EXPORT_SYMBOL vmlinux 0xba9e7b3a vga_get
+EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup
+EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbab14f54 inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0xbabca4e1 i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0xbb109cb1 blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb1bc560 blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0xbb344b08 path_put
+EXPORT_SYMBOL vmlinux 0xbb35db68 dev_get_by_flags
+EXPORT_SYMBOL vmlinux 0xbb44f858 vga_put
+EXPORT_SYMBOL vmlinux 0xbb47c735 page_readlink
+EXPORT_SYMBOL vmlinux 0xbb4d325b mb_cache_create
+EXPORT_SYMBOL vmlinux 0xbb5bad3f i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb708b0b __scsi_put_command
+EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font
+EXPORT_SYMBOL vmlinux 0xbbee495b pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0xbbf7593a ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0xbc2421f9 udp_ioctl
+EXPORT_SYMBOL vmlinux 0xbc3d21af finish_wait
+EXPORT_SYMBOL vmlinux 0xbc4b73d9 journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0xbc796507 elv_add_request
+EXPORT_SYMBOL vmlinux 0xbc7a0d5a tty_kref_put
+EXPORT_SYMBOL vmlinux 0xbc8ccec9 ia64_mv
+EXPORT_SYMBOL vmlinux 0xbc930e2e unw_access_ar
+EXPORT_SYMBOL vmlinux 0xbca5c638 pci_restore_state
+EXPORT_SYMBOL vmlinux 0xbcac446e xfrm_input
+EXPORT_SYMBOL vmlinux 0xbcbfbad6 tty_port_close
+EXPORT_SYMBOL vmlinux 0xbcd5faf7 blk_put_request
+EXPORT_SYMBOL vmlinux 0xbd2e1b87 d_instantiate
+EXPORT_SYMBOL vmlinux 0xbd61d974 _raw_write_lock_irq
+EXPORT_SYMBOL vmlinux 0xbd70e127 ll_rw_block
+EXPORT_SYMBOL vmlinux 0xbd83f652 ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0xbd849d2a pagecache_write_end
+EXPORT_SYMBOL vmlinux 0xbd8e721b noop_qdisc
+EXPORT_SYMBOL vmlinux 0xbd8efe74 __skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port
+EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next
+EXPORT_SYMBOL vmlinux 0xbe0f7731 __wake_up_bit
+EXPORT_SYMBOL vmlinux 0xbe19b370 security_path_truncate
+EXPORT_SYMBOL vmlinux 0xbe224c5b key_negate_and_link
+EXPORT_SYMBOL vmlinux 0xbe23c07b tcp_splice_read
+EXPORT_SYMBOL vmlinux 0xbe3a101e thaw_bdev
+EXPORT_SYMBOL vmlinux 0xbe86baa2 sock_wake_async
+EXPORT_SYMBOL vmlinux 0xbe934880 netlink_unicast
+EXPORT_SYMBOL vmlinux 0xbead9728 nf_hook_slow
+EXPORT_SYMBOL vmlinux 0xbeaff72d nla_append
+EXPORT_SYMBOL vmlinux 0xbeb0fb21 ___pskb_trim
+EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbf00b897 nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0xbf429dfc pci_assign_resource
+EXPORT_SYMBOL vmlinux 0xbf6006ab netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0xbf604118 register_8022_client
+EXPORT_SYMBOL vmlinux 0xbf6350dc llc_sap_list_lock
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf83a2ae __devm_release_region
+EXPORT_SYMBOL vmlinux 0xbf949972 skb_put
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbf9d6c55 d_delete
+EXPORT_SYMBOL vmlinux 0xbfacd192 filp_close
+EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep
+EXPORT_SYMBOL vmlinux 0xbfc8a294 jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xbfc96326 simple_rename
+EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user
+EXPORT_SYMBOL vmlinux 0xc0067fb4 pnp_disable_dev
+EXPORT_SYMBOL vmlinux 0xc013f05a pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0xc0372279 unlock_buffer
+EXPORT_SYMBOL vmlinux 0xc0505c19 alloc_disk
+EXPORT_SYMBOL vmlinux 0xc05736ca otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0xc05e9edd key_validate
+EXPORT_SYMBOL vmlinux 0xc064a97e dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xc0691037 register_gifconf
+EXPORT_SYMBOL vmlinux 0xc069e2a1 textsearch_unregister
+EXPORT_SYMBOL vmlinux 0xc07061bc completion_done
+EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be
+EXPORT_SYMBOL vmlinux 0xc0a2bdb8 pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit
+EXPORT_SYMBOL vmlinux 0xc0db5b9d skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0xc0ec5c5f idr_destroy
+EXPORT_SYMBOL vmlinux 0xc12b79b0 jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0xc13b5307 eth_validate_addr
+EXPORT_SYMBOL vmlinux 0xc14771bf pnp_unregister_card_driver
+EXPORT_SYMBOL vmlinux 0xc14a6753 clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic
+EXPORT_SYMBOL vmlinux 0xc166c0de blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0xc19eea77 __page_symlink
+EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1cf5ffc should_remove_suid
+EXPORT_SYMBOL vmlinux 0xc1fa3a0b dquot_enable
+EXPORT_SYMBOL vmlinux 0xc200c074 nf_afinfo
+EXPORT_SYMBOL vmlinux 0xc211cad9 security_inode_permission
+EXPORT_SYMBOL vmlinux 0xc2367522 gen_pool_create
+EXPORT_SYMBOL vmlinux 0xc2565765 __blk_end_request_all
+EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc263fa7f pci_find_bus
+EXPORT_SYMBOL vmlinux 0xc26e685f tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0xc29173fd inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xc29d5343 sn_flush_all_caches
+EXPORT_SYMBOL vmlinux 0xc29db895 DAC1064_global_init
+EXPORT_SYMBOL vmlinux 0xc2a62b56 set_page_dirty
+EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices
+EXPORT_SYMBOL vmlinux 0xc2e660aa add_timer
+EXPORT_SYMBOL vmlinux 0xc2fd986b netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0xc32093e4 kernel_read
+EXPORT_SYMBOL vmlinux 0xc3265c97 tty_register_driver
+EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu
+EXPORT_SYMBOL vmlinux 0xc3491605 neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0xc37aeaa7 dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0xc3bcde5d file_remove_suid
+EXPORT_SYMBOL vmlinux 0xc3e9cf1c swiotlb_sync_sg_for_cpu
+EXPORT_SYMBOL vmlinux 0xc3ecb597 __task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0xc3f9258c scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0xc3fba4ae alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0xc3fccb53 netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0xc402cc99 register_acpi_notifier
+EXPORT_SYMBOL vmlinux 0xc4050792 in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xc4097c34 _raw_spin_lock
+EXPORT_SYMBOL vmlinux 0xc4172241 generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xc41de43b xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0xc436edad mfd_add_devices
+EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup
+EXPORT_SYMBOL vmlinux 0xc4a48341 dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0xc4a6e60d simple_fill_super
+EXPORT_SYMBOL vmlinux 0xc4c8b4e2 alloc_etherdev_mq
+EXPORT_SYMBOL vmlinux 0xc4d16bb4 skb_find_text
+EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic
+EXPORT_SYMBOL vmlinux 0xc4fa2ce6 __dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc540d092 pci_enable_msix
+EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16
+EXPORT_SYMBOL vmlinux 0xc58e1401 unregister_netdev
+EXPORT_SYMBOL vmlinux 0xc58f2418 journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xc5980c2c journal_clear_err
+EXPORT_SYMBOL vmlinux 0xc59b4fc4 submit_bh
+EXPORT_SYMBOL vmlinux 0xc5af6167 nf_register_hooks
+EXPORT_SYMBOL vmlinux 0xc5b70cca max8925_set_bits
+EXPORT_SYMBOL vmlinux 0xc5c1ce08 skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0xc6314416 backlight_force_update
+EXPORT_SYMBOL vmlinux 0xc63a6c3a lease_modify
+EXPORT_SYMBOL vmlinux 0xc6464953 blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0xc64d5fff tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0xc65331e0 ps2_end_command
+EXPORT_SYMBOL vmlinux 0xc6710c4b unw_access_fr
+EXPORT_SYMBOL vmlinux 0xc67afc97 tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xc6890ef3 acpi_get_object_info
+EXPORT_SYMBOL vmlinux 0xc6ca297c __sn_hub_info
+EXPORT_SYMBOL vmlinux 0xc6f5b1b3 llc_add_pack
+EXPORT_SYMBOL vmlinux 0xc700e8b4 devm_ioport_map
+EXPORT_SYMBOL vmlinux 0xc71426bd d_prune_aliases
+EXPORT_SYMBOL vmlinux 0xc73dd955 _raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0xc73e910e down_write
+EXPORT_SYMBOL vmlinux 0xc740c64a memchr
+EXPORT_SYMBOL vmlinux 0xc754602e kobject_add
+EXPORT_SYMBOL vmlinux 0xc783b7cf xor_ia64_5
+EXPORT_SYMBOL vmlinux 0xc78b78e3 wireless_send_event
+EXPORT_SYMBOL vmlinux 0xc7958ea4 keyring_clear
+EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0xc7a4db07 kmem_cache_size
+EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7af7bde d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xc7bc3abe security_path_rename
+EXPORT_SYMBOL vmlinux 0xc7d48973 gen_pool_free
+EXPORT_SYMBOL vmlinux 0xc7df1f08 xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0xc7ec28b0 memcmp
+EXPORT_SYMBOL vmlinux 0xc7edcf03 filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0xc7fa0c85 key_revoke
+EXPORT_SYMBOL vmlinux 0xc8054735 cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0xc80b6ca4 qdisc_reset
+EXPORT_SYMBOL vmlinux 0xc814e277 blk_sync_queue
+EXPORT_SYMBOL vmlinux 0xc819719a journal_release_buffer
+EXPORT_SYMBOL vmlinux 0xc81e5973 free_task
+EXPORT_SYMBOL vmlinux 0xc82eaae5 machvec_dma_sync_single
+EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc86106f1 handle_sysrq
+EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table
+EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8e9c676 generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0xc8fb8815 do_sync_read
+EXPORT_SYMBOL vmlinux 0xc90e1cfe bdi_destroy
+EXPORT_SYMBOL vmlinux 0xc90ff067 tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0xc9266a5a ia64_load_scratch_fpregs
+EXPORT_SYMBOL vmlinux 0xc97c6c55 sg_miter_next
+EXPORT_SYMBOL vmlinux 0xc9899c2d pcibios_resource_to_bus
+EXPORT_SYMBOL vmlinux 0xc99ca449 truncate_pagecache
+EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev
+EXPORT_SYMBOL vmlinux 0xc9ab2eef acpi_os_wait_events_complete
+EXPORT_SYMBOL vmlinux 0xca492625 inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca61686b scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0xca6925a8 mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0xca69c3db unlock_super
+EXPORT_SYMBOL vmlinux 0xca730d6b simple_dir_operations
+EXPORT_SYMBOL vmlinux 0xca7b1ce4 lro_vlan_hwaccel_receive_skb
+EXPORT_SYMBOL vmlinux 0xca7ded6a kset_unregister
+EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level
+EXPORT_SYMBOL vmlinux 0xcabac6bc pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel
+EXPORT_SYMBOL vmlinux 0xcac16839 register_quota_format
+EXPORT_SYMBOL vmlinux 0xcac7da3b dq_data_lock
+EXPORT_SYMBOL vmlinux 0xcacd0b3d remove_inode_hash
+EXPORT_SYMBOL vmlinux 0xcad7696d wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0xcae1c4f3 vfs_unlink
+EXPORT_SYMBOL vmlinux 0xcafb24bb vm_map_ram
+EXPORT_SYMBOL vmlinux 0xcafe9a8d fb_find_mode
+EXPORT_SYMBOL vmlinux 0xcb18cdd6 down_trylock
+EXPORT_SYMBOL vmlinux 0xcb1bb358 __next_cpu_nr
+EXPORT_SYMBOL vmlinux 0xcb2f51af scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0xcb30b231 proto_register
+EXPORT_SYMBOL vmlinux 0xcb4b7ed1 prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0xcb5267b8 dcache_dir_close
+EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power
+EXPORT_SYMBOL vmlinux 0xcb750e71 tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0xcba17fa8 down_read_trylock
+EXPORT_SYMBOL vmlinux 0xcbb18caa scsi_get_command
+EXPORT_SYMBOL vmlinux 0xcbbc16d2 locks_remove_posix
+EXPORT_SYMBOL vmlinux 0xcbbe0278 security_path_chmod
+EXPORT_SYMBOL vmlinux 0xcbe4df33 dquot_quota_on_path
+EXPORT_SYMBOL vmlinux 0xcbf8b23e __secpath_destroy
+EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen
+EXPORT_SYMBOL vmlinux 0xcc19fb2a unw_init_running
+EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc44f3a1 __bforget
+EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc5f86d7 input_allocate_device
+EXPORT_SYMBOL vmlinux 0xcc649cfd neigh_table_clear
+EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc82e403 get_phy_device
+EXPORT_SYMBOL vmlinux 0xcc95f3f4 dcache_readdir
+EXPORT_SYMBOL vmlinux 0xcc9c9b7d remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0xcca078ff ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0xcca1986d _raw_write_unlock_bh
+EXPORT_SYMBOL vmlinux 0xccb79fb6 kthread_bind
+EXPORT_SYMBOL vmlinux 0xccd380e7 inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0xcce694f9 fb_set_cmap
+EXPORT_SYMBOL vmlinux 0xcd187afe udp_poll
+EXPORT_SYMBOL vmlinux 0xcd2ec18d unregister_binfmt
+EXPORT_SYMBOL vmlinux 0xcd3cdf8e filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0xcd40c2f2 ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0xcd473329 memset_io
+EXPORT_SYMBOL vmlinux 0xcd5134bc invalidate_bdev
+EXPORT_SYMBOL vmlinux 0xcd5501d8 add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0xcd552259 consume_skb
+EXPORT_SYMBOL vmlinux 0xcd6c8c7b cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0xcd811998 skb_recycle_check
+EXPORT_SYMBOL vmlinux 0xcdd8cc00 arp_broken_ops
+EXPORT_SYMBOL vmlinux 0xcdfc8382 acpi_enable_gpe
+EXPORT_SYMBOL vmlinux 0xce12fbcb scsi_remove_host
+EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xce379596 dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state
+EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce680d7e xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0xce6dc68a tcp_parse_options
+EXPORT_SYMBOL vmlinux 0xce83861d netlink_set_err
+EXPORT_SYMBOL vmlinux 0xcea21d3d create_mnt_ns
+EXPORT_SYMBOL vmlinux 0xceb16156 iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0xceb72072 ilookup5
+EXPORT_SYMBOL vmlinux 0xcebf3ccc inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0xcec7549f pnp_device_detach
+EXPORT_SYMBOL vmlinux 0xced4599a input_unregister_handler
+EXPORT_SYMBOL vmlinux 0xcef02ef9 kobject_get
+EXPORT_SYMBOL vmlinux 0xcf0015e0 wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error
+EXPORT_SYMBOL vmlinux 0xcf473846 i2c_transfer
+EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfb98017 __dst_free
+EXPORT_SYMBOL vmlinux 0xcfbaf318 swiotlb_alloc_coherent
+EXPORT_SYMBOL vmlinux 0xcfc459b8 set_bh_page
+EXPORT_SYMBOL vmlinux 0xcfd38ecc dquot_alloc
+EXPORT_SYMBOL vmlinux 0xcfd660d2 block_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0xcffc5828 kobject_put
+EXPORT_SYMBOL vmlinux 0xd016bc86 cap_file_mmap
+EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd022612e d_alloc_name
+EXPORT_SYMBOL vmlinux 0xd0580aae inode_change_ok
+EXPORT_SYMBOL vmlinux 0xd06c0db6 generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xd07261e6 jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables
+EXPORT_SYMBOL vmlinux 0xd09c5971 netdev_set_master
+EXPORT_SYMBOL vmlinux 0xd0a0f7af dquot_disable
+EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0de01b7 llc_sap_find
+EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd1189c32 dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0xd1472061 acpi_pci_register_driver
+EXPORT_SYMBOL vmlinux 0xd172a878 mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0xd1838027 pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic
+EXPORT_SYMBOL vmlinux 0xd1cdafb5 inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0xd212c5fb tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0xd2141bf1 phy_sanitize_settings
+EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel
+EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t
+EXPORT_SYMBOL vmlinux 0xd25b4eaf take_over_console
+EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook
+EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2a75ee0 dmi_first_match
+EXPORT_SYMBOL vmlinux 0xd2c0e499 acpi_match_device_ids
+EXPORT_SYMBOL vmlinux 0xd2e1a762 __pci_enable_wake
+EXPORT_SYMBOL vmlinux 0xd32098ed dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0xd35a4496 seq_write
+EXPORT_SYMBOL vmlinux 0xd3951da4 acpi_resource_to_address64
+EXPORT_SYMBOL vmlinux 0xd3959cf7 override_creds
+EXPORT_SYMBOL vmlinux 0xd3aaf79d ilookup
+EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user
+EXPORT_SYMBOL vmlinux 0xd3cda579 unw_init_from_blocked_task
+EXPORT_SYMBOL vmlinux 0xd3e21701 vlan_gro_frags
+EXPORT_SYMBOL vmlinux 0xd3e2d504 seq_putc
+EXPORT_SYMBOL vmlinux 0xd3e356df netpoll_setup
+EXPORT_SYMBOL vmlinux 0xd3fbbfa1 mempool_resize
+EXPORT_SYMBOL vmlinux 0xd4240ace wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0xd466b029 sock_register
+EXPORT_SYMBOL vmlinux 0xd49591ae blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0xd4bbbb94 pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0xd4d8a503 dm_io
+EXPORT_SYMBOL vmlinux 0xd4e13b4b kern_path
+EXPORT_SYMBOL vmlinux 0xd4fc6360 skb_queue_head
+EXPORT_SYMBOL vmlinux 0xd4fdf732 pci_request_region
+EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data
+EXPORT_SYMBOL vmlinux 0xd519f81a devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out
+EXPORT_SYMBOL vmlinux 0xd55ec7f9 acpi_lock_ac_dir
+EXPORT_SYMBOL vmlinux 0xd5612172 make_EII_client
+EXPORT_SYMBOL vmlinux 0xd56823f3 __register_binfmt
+EXPORT_SYMBOL vmlinux 0xd568cf6c sock_update_classid
+EXPORT_SYMBOL vmlinux 0xd574fcf8 i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages
+EXPORT_SYMBOL vmlinux 0xd58017c4 genphy_config_advert
+EXPORT_SYMBOL vmlinux 0xd5888cda generic_write_checks
+EXPORT_SYMBOL vmlinux 0xd59e90b0 arp_tbl
+EXPORT_SYMBOL vmlinux 0xd59ebe8b kill_pid
+EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put
+EXPORT_SYMBOL vmlinux 0xd5bedae6 invalidate_partition
+EXPORT_SYMBOL vmlinux 0xd5ff8b2f bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0xd601d036 simple_write_end
+EXPORT_SYMBOL vmlinux 0xd61dc753 tcp_shutdown
+EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd63330a3 _raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0xd635d134 rb_last
+EXPORT_SYMBOL vmlinux 0xd64a573c sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0xd64bbaaa audit_log_start
+EXPORT_SYMBOL vmlinux 0xd66e9685 scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0xd67c8695 bdput
+EXPORT_SYMBOL vmlinux 0xd699e05d dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single
+EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc
+EXPORT_SYMBOL vmlinux 0xd6f97ca1 rb_first
+EXPORT_SYMBOL vmlinux 0xd7082908 percpu_counter_set
+EXPORT_SYMBOL vmlinux 0xd7273336 pci_disable_msix
+EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and
+EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal
+EXPORT_SYMBOL vmlinux 0xd79b662b clocksource_unregister
+EXPORT_SYMBOL vmlinux 0xd7b77c94 serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0xd7d1c34e devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xd7e18115 dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7f9499b xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0xd80a0e1c tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0xd814d626 percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0xd83e2a5a skb_queue_purge
+EXPORT_SYMBOL vmlinux 0xd83ec5fe generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0xd8468f1b padata_stop
+EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user
+EXPORT_SYMBOL vmlinux 0xd85a26b6 get_user_pages
+EXPORT_SYMBOL vmlinux 0xd88b8014 simple_transaction_release
+EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone
+EXPORT_SYMBOL vmlinux 0xd8c03bf5 scsi_prep_return
+EXPORT_SYMBOL vmlinux 0xd8da68f8 generic_getxattr
+EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd9008312 inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler
+EXPORT_SYMBOL vmlinux 0xd9131a2e bmap
+EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd92e861a generic_readlink
+EXPORT_SYMBOL vmlinux 0xd935bbc7 ia64_mca_printk
+EXPORT_SYMBOL vmlinux 0xd93cb8be sn_bus_free_sysdata
+EXPORT_SYMBOL vmlinux 0xd940847f machvec_dma_sync_sg
+EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference
+EXPORT_SYMBOL vmlinux 0xd953cd4c user_path_at
+EXPORT_SYMBOL vmlinux 0xd9619b58 bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd989a3c9 bio_integrity_split
+EXPORT_SYMBOL vmlinux 0xd997a7cb kmem_cache_free
+EXPORT_SYMBOL vmlinux 0xd9bd6812 tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xd9dd352d skb_seq_read
+EXPORT_SYMBOL vmlinux 0xd9e2d307 blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0xd9f38163 __scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic
+EXPORT_SYMBOL vmlinux 0xda0c4cb1 __breadahead
+EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf
+EXPORT_SYMBOL vmlinux 0xda2fbbce register_sysrq_key
+EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xda6985d5 get_sb_nodev
+EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda7f6475 put_mnt_ns
+EXPORT_SYMBOL vmlinux 0xda8ae104 scsi_dma_map
+EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xda8fd4bc security_file_mmap
+EXPORT_SYMBOL vmlinux 0xdaf13d92 journal_check_available_features
+EXPORT_SYMBOL vmlinux 0xdb10344b dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0xdb1e537e pci_enable_device
+EXPORT_SYMBOL vmlinux 0xdb1f8897 file_update_time
+EXPORT_SYMBOL vmlinux 0xdb22ec6b sn_prom_feature_available
+EXPORT_SYMBOL vmlinux 0xdb3d1945 xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0xdb49ae02 alloc_disk_node
+EXPORT_SYMBOL vmlinux 0xdb7181d5 cfb_imageblit
+EXPORT_SYMBOL vmlinux 0xdb9066e1 __break_lease
+EXPORT_SYMBOL vmlinux 0xdba33136 skb_unlink
+EXPORT_SYMBOL vmlinux 0xdba5c5d5 ps2_begin_command
+EXPORT_SYMBOL vmlinux 0xdbba2d74 simple_readpage
+EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbdb0273 tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0xdbf45102 icmp_send
+EXPORT_SYMBOL vmlinux 0xdbf8a152 matroxfb_DAC_out
+EXPORT_SYMBOL vmlinux 0xdbfbfe3f max8925_reg_read
+EXPORT_SYMBOL vmlinux 0xdc0356e9 grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems
+EXPORT_SYMBOL vmlinux 0xdc23c576 call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0xdc29267e scsi_device_resume
+EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint
+EXPORT_SYMBOL vmlinux 0xdc2f98f5 tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize
+EXPORT_SYMBOL vmlinux 0xdc477230 sn_io_addr
+EXPORT_SYMBOL vmlinux 0xdc4c91bc jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xdc52aaf4 genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0xdc58616f pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0xdc80f7d1 xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family
+EXPORT_SYMBOL vmlinux 0xdca88b16 f_setown
+EXPORT_SYMBOL vmlinux 0xdcb5671d strlen
+EXPORT_SYMBOL vmlinux 0xdcc1ae87 vfs_readdir
+EXPORT_SYMBOL vmlinux 0xdd1143a4 console_start
+EXPORT_SYMBOL vmlinux 0xdd126ead nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0xdd295156 pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0xdd2d8248 sock_map_fd
+EXPORT_SYMBOL vmlinux 0xdd57b046 nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0xdd5c6424 gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0xdd79a73b dqget
+EXPORT_SYMBOL vmlinux 0xdda82162 _raw_write_trylock
+EXPORT_SYMBOL vmlinux 0xddae6d15 scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0xddb526ed km_policy_notify
+EXPORT_SYMBOL vmlinux 0xddcd7ad4 single_open
+EXPORT_SYMBOL vmlinux 0xddd3bbb9 set_binfmt
+EXPORT_SYMBOL vmlinux 0xdde6f8f9 bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0xddfda8f6 tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0xde03fb3d rtc_dev_update_irq_enable_emul
+EXPORT_SYMBOL vmlinux 0xde15d5ef get_sb_single
+EXPORT_SYMBOL vmlinux 0xde44eb03 kstat
+EXPORT_SYMBOL vmlinux 0xde558e02 ia64_mlogbuf_dump
+EXPORT_SYMBOL vmlinux 0xde646d46 unregister_filesystem
+EXPORT_SYMBOL vmlinux 0xde6998f2 gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0xde71ff15 xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type
+EXPORT_SYMBOL vmlinux 0xde76d060 inet_register_protosw
+EXPORT_SYMBOL vmlinux 0xde76e7bc sys_close
+EXPORT_SYMBOL vmlinux 0xde78e150 dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0xde8077a0 kthread_create
+EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages
+EXPORT_SYMBOL vmlinux 0xded44ed2 lro_receive_frags
+EXPORT_SYMBOL vmlinux 0xdee9dce7 phy_enable_interrupts
+EXPORT_SYMBOL vmlinux 0xdf00d53f netpoll_send_skb
+EXPORT_SYMBOL vmlinux 0xdf0b1298 pid_task
+EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices
+EXPORT_SYMBOL vmlinux 0xdf168075 qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0xdf257b55 down_write_trylock
+EXPORT_SYMBOL vmlinux 0xdf363855 backlight_device_register
+EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval
+EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol
+EXPORT_SYMBOL vmlinux 0xdf6e1a7b mdiobus_read
+EXPORT_SYMBOL vmlinux 0xdf7047d2 security_file_permission
+EXPORT_SYMBOL vmlinux 0xdf83879e pnpacpi_protocol
+EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdfb0b468 nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xdfb7c842 node_states
+EXPORT_SYMBOL vmlinux 0xdfd043b1 dquot_initialize
+EXPORT_SYMBOL vmlinux 0xdfdb0105 cpu_core_map
+EXPORT_SYMBOL vmlinux 0xe0223503 scsi_unregister
+EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe092e1b6 tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0xe0aaa3e7 bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event
+EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free
+EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort
+EXPORT_SYMBOL vmlinux 0xe0bc2ab3 fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0xe0bf57e8 rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0xe0c56442 vfs_fstatat
+EXPORT_SYMBOL vmlinux 0xe0d68f2b pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0xe0e09aa2 dev_uc_sync
+EXPORT_SYMBOL vmlinux 0xe11141eb blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial
+EXPORT_SYMBOL vmlinux 0xe121a2d0 page_symlink
+EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors
+EXPORT_SYMBOL vmlinux 0xe13ffeed phy_attach_direct
+EXPORT_SYMBOL vmlinux 0xe1410139 inet_stream_ops
+EXPORT_SYMBOL vmlinux 0xe147985c wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0xe1523a03 tty_check_change
+EXPORT_SYMBOL vmlinux 0xe160ded6 register_netdevice
+EXPORT_SYMBOL vmlinux 0xe1660229 nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe17aaa76 inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0xe184bf25 dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0xe1bd9958 mnt_unpin
+EXPORT_SYMBOL vmlinux 0xe1d380c2 kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0xe206ea45 bio_add_page
+EXPORT_SYMBOL vmlinux 0xe2080cc7 skb_store_bits
+EXPORT_SYMBOL vmlinux 0xe20c926a alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0xe228b360 sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf
+EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64
+EXPORT_SYMBOL vmlinux 0xe2926392 sk_reset_timer
+EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64
+EXPORT_SYMBOL vmlinux 0xe2bc43cc scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp
+EXPORT_SYMBOL vmlinux 0xe2d9da8a tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0xe3048478 arp_find
+EXPORT_SYMBOL vmlinux 0xe3073076 sock_wmalloc
+EXPORT_SYMBOL vmlinux 0xe311f96c request_key
+EXPORT_SYMBOL vmlinux 0xe35b7332 eth_type_trans
+EXPORT_SYMBOL vmlinux 0xe39e300b poll_freewait
+EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf
+EXPORT_SYMBOL vmlinux 0xe3f68554 ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0xe3fbe148 acpi_install_table_handler
+EXPORT_SYMBOL vmlinux 0xe40dd6d7 abx500_register_ops
+EXPORT_SYMBOL vmlinux 0xe412cd1c pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0xe4208a8e xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xe43617f7 acpi_gbl_FADT
+EXPORT_SYMBOL vmlinux 0xe44ac713 lease_get_mtime
+EXPORT_SYMBOL vmlinux 0xe4571b01 sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0xe46665eb simple_getattr
+EXPORT_SYMBOL vmlinux 0xe46e7b88 pnp_possible_config
+EXPORT_SYMBOL vmlinux 0xe484e35f ioread32
+EXPORT_SYMBOL vmlinux 0xe4853065 down_read
+EXPORT_SYMBOL vmlinux 0xe4b844d8 skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0xe4c6e29b xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0xe4c91fa8 pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0xe4da33b0 __blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0xe4e9dd5b ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0xe507216c unw_unwind_to_user
+EXPORT_SYMBOL vmlinux 0xe50b7b7a send_sig_info
+EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe526f136 __copy_user
+EXPORT_SYMBOL vmlinux 0xe52d755f ia64_cpu_to_sapicid
+EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe
+EXPORT_SYMBOL vmlinux 0xe551272c _raw_spin_lock_irq
+EXPORT_SYMBOL vmlinux 0xe5583c10 qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0xe56391c1 vfs_follow_link
+EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton
+EXPORT_SYMBOL vmlinux 0xe57c95ec tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5a642ef i2c_del_driver
+EXPORT_SYMBOL vmlinux 0xe5adbd30 pnp_activate_dev
+EXPORT_SYMBOL vmlinux 0xe5b28d39 pci_set_mwi
+EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe619a7ea pneigh_lookup
+EXPORT_SYMBOL vmlinux 0xe6229458 fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0xe685924f i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0xe68d56c5 dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic
+EXPORT_SYMBOL vmlinux 0xe71a21db pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0xe76a5478 tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0xe799ab67 directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0xe79c6ece journal_abort
+EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7eecf81 pagevec_lookup
+EXPORT_SYMBOL vmlinux 0xe7f1e4d1 replace_mount_options
+EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node
+EXPORT_SYMBOL vmlinux 0xe81fa81a inet_bind
+EXPORT_SYMBOL vmlinux 0xe81fecd3 jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0xe8344817 matroxfb_vgaHWrestore
+EXPORT_SYMBOL vmlinux 0xe837d328 mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0xe838e3ef pci_write_vpd
+EXPORT_SYMBOL vmlinux 0xe849008d inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0xe8612b9c ida_remove
+EXPORT_SYMBOL vmlinux 0xe8679178 __divdi3
+EXPORT_SYMBOL vmlinux 0xe89cefb1 pci_dev_get
+EXPORT_SYMBOL vmlinux 0xe8a47547 acpi_bus_start
+EXPORT_SYMBOL vmlinux 0xe8b3aaa6 i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0xe8b768cc jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0xe8bca68b vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0xe900e542 default_unplug_io_fn
+EXPORT_SYMBOL vmlinux 0xe906a111 jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0xe90aa4e9 rb_insert_color
+EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module
+EXPORT_SYMBOL vmlinux 0xe91011d4 blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0xe914e41e strcpy
+EXPORT_SYMBOL vmlinux 0xe9184856 __xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0xe9653905 kick_iocb
+EXPORT_SYMBOL vmlinux 0xe9953aa9 sn_system_size
+EXPORT_SYMBOL vmlinux 0xe9a6b2cd elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0xe9aaa865 swiotlb_map_sg
+EXPORT_SYMBOL vmlinux 0xe9b33ca2 scsi_scan_target
+EXPORT_SYMBOL vmlinux 0xe9c8379d input_close_device
+EXPORT_SYMBOL vmlinux 0xe9d5d0b5 dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0xe9fe1945 udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea2260f7 noop_llseek
+EXPORT_SYMBOL vmlinux 0xea3fe46c register_sysctl_table
+EXPORT_SYMBOL vmlinux 0xea6f54d3 netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0xea7045ca sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0xea8782ba idr_pre_get
+EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data
+EXPORT_SYMBOL vmlinux 0xeaa20635 __splice_from_pipe
+EXPORT_SYMBOL vmlinux 0xead12f46 __pci_register_driver
+EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump
+EXPORT_SYMBOL vmlinux 0xeade3b48 sk_alloc
+EXPORT_SYMBOL vmlinux 0xeb16163b io_space
+EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq
+EXPORT_SYMBOL vmlinux 0xeb340c34 dquot_drop
+EXPORT_SYMBOL vmlinux 0xeb38e41f elv_rb_del
+EXPORT_SYMBOL vmlinux 0xeb3ef78a tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0xeb5a0d73 lock_super
+EXPORT_SYMBOL vmlinux 0xeb74c724 simple_release_fs
+EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n
+EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp
+EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull
+EXPORT_SYMBOL vmlinux 0xebf61616 unw_unwind
+EXPORT_SYMBOL vmlinux 0xec0f6c9b sn_dma_set_mask
+EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec406cf9 __free_pages
+EXPORT_SYMBOL vmlinux 0xec41a859 vfs_statfs
+EXPORT_SYMBOL vmlinux 0xec71a207 __put_cred
+EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xec8e064f nlmsg_notify
+EXPORT_SYMBOL vmlinux 0xecbcf738 pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0xecc04f8e nf_register_hook
+EXPORT_SYMBOL vmlinux 0xecc2242c scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0xecc827de devm_ioremap
+EXPORT_SYMBOL vmlinux 0xecd63aa7 skb_trim
+EXPORT_SYMBOL vmlinux 0xed590e4b inode_init_always
+EXPORT_SYMBOL vmlinux 0xed63079f dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0xed658a3a dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0xed68f03b fail_migrate_page
+EXPORT_SYMBOL vmlinux 0xed6eda92 fb_get_mode
+EXPORT_SYMBOL vmlinux 0xed8f79e4 install_exec_creds
+EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedbe222c napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xedc03953 iounmap
+EXPORT_SYMBOL vmlinux 0xee090701 sock_i_uid
+EXPORT_SYMBOL vmlinux 0xee19e8c4 mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee4e6151 bio_map_kern
+EXPORT_SYMBOL vmlinux 0xee571a0d phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0xee7d5d7f padata_set_cpumask
+EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices
+EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeeae7512 inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0xeeb8a24c xor_ia64_2
+EXPORT_SYMBOL vmlinux 0xeee004ee abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0xeef4bdc1 devm_free_irq
+EXPORT_SYMBOL vmlinux 0xeefe22ec generic_removexattr
+EXPORT_SYMBOL vmlinux 0xef15382e pci_iomap
+EXPORT_SYMBOL vmlinux 0xef239568 blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xef296057 phy_find_first
+EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool
+EXPORT_SYMBOL vmlinux 0xef80588c phy_detach
+EXPORT_SYMBOL vmlinux 0xef94fdd7 unlock_page
+EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override
+EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status
+EXPORT_SYMBOL vmlinux 0xefea8cff _raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list
+EXPORT_SYMBOL vmlinux 0xf03750dc block_invalidatepage
+EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be
+EXPORT_SYMBOL vmlinux 0xf087f1fa blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0xf092fb99 pv_cpu_ops
+EXPORT_SYMBOL vmlinux 0xf0b4bb1b unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0xf0cc4db6 bio_kmalloc
+EXPORT_SYMBOL vmlinux 0xf0e28f92 g450_mnp2f
+EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf
+EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xf10b7a85 tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0xf10de535 ioread8
+EXPORT_SYMBOL vmlinux 0xf1107ca0 jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32
+EXPORT_SYMBOL vmlinux 0xf1261a3f ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0xf12b0bc4 blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0xf1394a2a __strlen_user
+EXPORT_SYMBOL vmlinux 0xf15f32aa ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0xf16edaec tioca_gart_found
+EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem
+EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1aa540f bioset_free
+EXPORT_SYMBOL vmlinux 0xf1ac4d84 netlink_broadcast
+EXPORT_SYMBOL vmlinux 0xf1b311b5 __serio_register_port
+EXPORT_SYMBOL vmlinux 0xf1cd9864 ps2_handle_response
+EXPORT_SYMBOL vmlinux 0xf1da1f21 serio_rescan
+EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1db6be5 phy_print_status
+EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun
+EXPORT_SYMBOL vmlinux 0xf20217e3 i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq
+EXPORT_SYMBOL vmlinux 0xf213fca6 vfs_write
+EXPORT_SYMBOL vmlinux 0xf242bbf5 otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0xf286fdd7 __kfree_skb
+EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0xf2ba359b inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0xf2de98b9 commit_creds
+EXPORT_SYMBOL vmlinux 0xf2f53ac4 tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0xf2fca4ca __find_get_block
+EXPORT_SYMBOL vmlinux 0xf3091b18 task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform
+EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name
+EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf353f596 bio_clone
+EXPORT_SYMBOL vmlinux 0xf357fcd3 unload_nls
+EXPORT_SYMBOL vmlinux 0xf3592c8d sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0xf370dd39 bit_waitqueue
+EXPORT_SYMBOL vmlinux 0xf379edcc rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0xf3817793 scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf38d1ec4 hippi_type_trans
+EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf391d871 idr_get_new_above
+EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3c19c64 pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0xf4126035 inet_ioctl
+EXPORT_SYMBOL vmlinux 0xf422d5fa set_create_files_as
+EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf44d53d0 neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0xf47fbfc4 phy_driver_register
+EXPORT_SYMBOL vmlinux 0xf48a8eef lro_vlan_hwaccel_receive_frags
+EXPORT_SYMBOL vmlinux 0xf490a248 block_write_full_page
+EXPORT_SYMBOL vmlinux 0xf4a9be04 input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced
+EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf501dd51 pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0xf502e555 single_release
+EXPORT_SYMBOL vmlinux 0xf50333e0 mpage_writepage
+EXPORT_SYMBOL vmlinux 0xf51e5a0a blk_get_request
+EXPORT_SYMBOL vmlinux 0xf5358ec9 skb_split
+EXPORT_SYMBOL vmlinux 0xf539dc4a skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n
+EXPORT_SYMBOL vmlinux 0xf578fd0f tr_type_trans
+EXPORT_SYMBOL vmlinux 0xf58719af path_is_under
+EXPORT_SYMBOL vmlinux 0xf5a08460 page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xf5d84a49 dev_set_mtu
+EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf5ff9de5 unregister_qdisc
+EXPORT_SYMBOL vmlinux 0xf649a324 blk_plug_device
+EXPORT_SYMBOL vmlinux 0xf6940baa generic_permission
+EXPORT_SYMBOL vmlinux 0xf6972e16 skb_set_dev
+EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table
+EXPORT_SYMBOL vmlinux 0xf6cc2154 pnp_register_driver
+EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf6f66672 jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0xf6fd93d8 fddi_type_trans
+EXPORT_SYMBOL vmlinux 0xf703c181 pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0xf7086fc3 __set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0xf74b38da xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0xf7584a9c find_font
+EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7c093a8 neigh_seq_next
+EXPORT_SYMBOL vmlinux 0xf7c3b369 __nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0xf8005119 pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set
+EXPORT_SYMBOL vmlinux 0xf80f01b6 writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf81f2bcc matroxfb_enable_irq
+EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects
+EXPORT_SYMBOL vmlinux 0xf847a61e poll_initwait
+EXPORT_SYMBOL vmlinux 0xf84977bf dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0xf85fb13a submit_bio
+EXPORT_SYMBOL vmlinux 0xf86abdb4 dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header
+EXPORT_SYMBOL vmlinux 0xf890fe7f pm_idle
+EXPORT_SYMBOL vmlinux 0xf891e0bd i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work
+EXPORT_SYMBOL vmlinux 0xf8a18da1 acpi_bus_register_driver
+EXPORT_SYMBOL vmlinux 0xf8a7a141 pci_choose_state
+EXPORT_SYMBOL vmlinux 0xf8ad73cf release_sock
+EXPORT_SYMBOL vmlinux 0xf8eb97ce km_policy_expired
+EXPORT_SYMBOL vmlinux 0xf91354c1 jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0xf925835f up_write
+EXPORT_SYMBOL vmlinux 0xf93f777b jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0xf9616ac7 acpi_unlock_ac_dir
+EXPORT_SYMBOL vmlinux 0xf97157c9 tc_classify_compat
+EXPORT_SYMBOL vmlinux 0xf99ca11e cad_pid
+EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep
+EXPORT_SYMBOL vmlinux 0xf9b78f57 mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0xf9bfad79 journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xf9c14d4b textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0xf9c5c8e8 nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xf9da53e6 dst_discard
+EXPORT_SYMBOL vmlinux 0xf9f1726c pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0xfa0b35de eth_header_cache
+EXPORT_SYMBOL vmlinux 0xfa3304ea dquot_free_inode
+EXPORT_SYMBOL vmlinux 0xfa4f7cc0 mempool_alloc
+EXPORT_SYMBOL vmlinux 0xfa5cce37 kernel_getpeername
+EXPORT_SYMBOL vmlinux 0xfa607ca9 redraw_screen
+EXPORT_SYMBOL vmlinux 0xfa7c9a09 genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0xfaaa6112 ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0xfab1e05a neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0xfab85f0d tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0xfab8ca47 dquot_acquire
+EXPORT_SYMBOL vmlinux 0xfacc4005 bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0xfad1baf5 pci_pme_capable
+EXPORT_SYMBOL vmlinux 0xfae27dba mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32
+EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent
+EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs
+EXPORT_SYMBOL vmlinux 0xfb2d93a3 simple_statfs
+EXPORT_SYMBOL vmlinux 0xfb2e5493 posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xfb3a97f1 setup_new_exec
+EXPORT_SYMBOL vmlinux 0xfb4f4721 poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb7944ca iterate_mounts
+EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3
+EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace
+EXPORT_SYMBOL vmlinux 0xfba56960 fb_set_suspend
+EXPORT_SYMBOL vmlinux 0xfbb5b5c7 __xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xfbdbf36f open_exec
+EXPORT_SYMBOL vmlinux 0xfbddbdfc __lookup_one_len
+EXPORT_SYMBOL vmlinux 0xfbfa7ea6 mpage_writepages
+EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc195c99 serio_close
+EXPORT_SYMBOL vmlinux 0xfc22c1ac bdev_read_only
+EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc6e8775 __init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0xfc73742b blkdev_fsync
+EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcbc27a3 dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcd0a048 put_page
+EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq
+EXPORT_SYMBOL vmlinux 0xfcec80b4 task_nice
+EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfcfa7bb0 nf_log_unregister
+EXPORT_SYMBOL vmlinux 0xfd076885 generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0xfd0f3b1f sg_miter_start
+EXPORT_SYMBOL vmlinux 0xfd196498 phy_register_fixup
+EXPORT_SYMBOL vmlinux 0xfd19eaeb memcpy_fromio
+EXPORT_SYMBOL vmlinux 0xfd23e0d8 dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0xfd252e85 unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0xfd3d99ef start_tty
+EXPORT_SYMBOL vmlinux 0xfd4625c3 sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xfd481e53 tcf_hash_create
+EXPORT_SYMBOL vmlinux 0xfd526f5c inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0xfd797b4f __percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception
+EXPORT_SYMBOL vmlinux 0xfd7ffda5 rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0xfd829d14 rtnl_unicast
+EXPORT_SYMBOL vmlinux 0xfd9efb58 tty_port_init
+EXPORT_SYMBOL vmlinux 0xfda57d16 seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be
+EXPORT_SYMBOL vmlinux 0xfdc055ec textsearch_prepare
+EXPORT_SYMBOL vmlinux 0xfdd47f7c scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0xfde18559 __wait_on_buffer
+EXPORT_SYMBOL vmlinux 0xfdf398a7 jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe134b82 simple_link
+EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids
+EXPORT_SYMBOL vmlinux 0xfe276b87 slow_work_cancel
+EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xfe3d9ac8 pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0xfe4b805b netif_rx_ni
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz
+EXPORT_SYMBOL vmlinux 0xfe73f4f5 follow_up
+EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfe90524f scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0xfebe49a0 netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin
+EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff116b83 scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start
+EXPORT_SYMBOL vmlinux 0xff214c80 __blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xff3d037c vfs_fsync
+EXPORT_SYMBOL vmlinux 0xff5f89f9 i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource
+EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int
+EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffa3522e qdisc_destroy
+EXPORT_SYMBOL vmlinux 0xffab23df matroxfb_read_pins
+EXPORT_SYMBOL vmlinux 0xffc5277c blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function
+EXPORT_SYMBOL vmlinux 0xffeb1d60 scsi_print_command
+EXPORT_SYMBOL vmlinux 0xfffacb2f gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0xffff7114 dquot_file_open
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x07b2beb2 crypto_aes_set_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab
+EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xb3a938cc async_memcpy
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x180c0496 async_syndrome_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xff7c134b async_gen_syndrome
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x9d200d50 async_raid6_2data_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xb4dd51d5 async_raid6_datap_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xdc4cc217 async_tx_quiesce
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xdfda56d8 async_trigger_callback
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xec7bb38f async_tx_submit
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xef79a3d3 __async_tx_find_channel
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x7defcf7d async_xor
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x8c514d64 async_xor_val
+EXPORT_SYMBOL_GPL crypto/cryptd 0x33794e39 cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x788cbf9b cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x80ed43a6 cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x93020009 cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb78827b9 cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xbbc7a450 cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xc11e37b4 cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey
+EXPORT_SYMBOL_GPL crypto/twofish_common 0xfe837151 twofish_setkey
+EXPORT_SYMBOL_GPL drivers/acpi/hed 0xa4ca0d4e unregister_acpi_hed_notifier
+EXPORT_SYMBOL_GPL drivers/acpi/hed 0xaa3f13f7 register_acpi_hed_notifier
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x00f2d385 ahci_reset_em
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1593289e ahci_print_info
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x17381124 ahci_ops
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1f4b928d ahci_check_ready
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x227c0f46 ahci_stop_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2351a20c ahci_kick_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4dc75d8c ahci_reset_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x63dfbee2 ahci_start_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8801520a ahci_save_initial_config
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9c985f77 ahci_do_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb7883e37 ahci_sht
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe2347e43 ahci_set_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe4d47f44 ahci_init_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x022d9286 ata_port_abort
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0249e5ea ata_std_bios_param
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x03e3686c ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x05d82e01 sata_sff_hardreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x06cc33ea dev_attr_em_message_type
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0881d6b6 ata_pci_remove_one
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x092bb582 ata_eh_thaw_port
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x09f87b9f ata_std_postreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0a25796d ata_sff_error_handler
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0a2d192e ata_sff_exec_command
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0c3a6e72 ata_dev_next
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0cb17858 ata_acpi_stm
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0daf654b ata_sff_tf_read
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0ef8e09a ata_sff_postreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x122bdfdf ata_dummy_port_info
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x13483056 ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x1446ab2e ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x1470397e ata_dev_disable
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x1926ddb9 ata_eh_qc_retry
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x193833ee ata_host_suspend
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x1c78538c ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x1ccfa0a0 ata_host_start
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x1cd61968 sata_scr_write_flush
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x24b88074 ata_std_prereset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x27b64fdf ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x28938eeb ata_sas_port_destroy
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x2b7c7549 ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x2d4cdc80 ata_sas_port_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x2fc71e50 ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x308a16e3 ata_sff_check_status
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3688fccc dev_attr_sw_activity
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x38102bf5 ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3a75f861 ata_slave_link_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3cd1ad07 ata_host_register
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3d71868d ata_sff_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3e26596b ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3f0c5114 ata_acpi_cbl_80wire
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3fbb176e ata_do_eh
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x40af0dec ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x41474a73 ata_sff_irq_on
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4160ca29 ata_port_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x43f56e82 ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4494a89e ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x46a9b24b sata_scr_write
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4771f1fc ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4ed33961 ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5163ca5a sata_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x551a5905 ata_sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x585a7c2b ata_sas_port_alloc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x58735fca ata_port_pbar_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5ab7fef3 ata_sff_hsm_move
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5b79c59a ata_bmdma_start
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5f675e94 ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x606720f7 ata_sas_port_stop
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x62e0420a dev_attr_unload_heads
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x63205de1 ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x6d1e81da ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x6e9ba2c9 sata_link_debounce
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x6faa40fb ata_sff_prereset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x702a4d39 ata_pci_device_resume
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x707ff1bb ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x71b24ea5 ata_do_dev_read_id
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x73a48b4a ata_sff_std_ports
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x743a165e ata_pack_xfermask
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x74b53adf ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x7504b57e ata_scsi_simulate
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x7524437e ata_sg_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x754d5cdc ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x77074287 dev_attr_em_message
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x788199b3 ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x7c0574d2 ata_sff_dev_select
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x7c0e8466 ata_sff_dev_classify
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x7f9c4847 ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x7fdea2e3 ata_std_error_handler
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8149ea54 ata_timing_find_mode
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x81bdf477 ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x84928c22 ata_host_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x84daf729 ata_dummy_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x84ed709f sata_std_hardreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x85f1d6d3 ata_eh_qc_complete
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8889f468 ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8e2039ec ata_sff_dma_pause
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8e88815f ata_dev_pair
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8eca63ef ata_sff_freeze
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8f0bd94c sata_scr_read
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8fbcc8be ata_host_activate
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x9809744f ata_bmdma_setup
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x984d5214 pci_test_config_bits
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x99ff6c16 ata_ehi_push_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x9a1cac78 ata_sas_queuecmd
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x9df9fb1a ata_sff_thaw
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xa4a2547a ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xa8579971 ata_bmdma_port_start
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xa9b3291e ata_do_set_mode
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xa9fc391d ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xaa4bfcfd ata_sff_wait_ready
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xac0ad94a ata_port_schedule_eh
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xae0b1877 sata_link_resume
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xaee86ea4 ata_bmdma_status
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xaf3f6fe0 ata_sff_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xafdf5fb9 sata_scr_valid
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb05be828 dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb60e64c3 ata_link_offline
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb7807583 ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb7f2167c ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb9750e6e ata_sas_port_start
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb9c8064b ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xba9f1ecc ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xbc0a614d ata_std_qc_defer
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xbdb14b38 ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xbddb60d7 ata_host_detach
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xbe1887e4 ata_unpack_xfermask
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xbf4eb0a5 ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc284e992 ata_acpi_gtm_xfermask
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc2c30cd4 ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc33935c9 ata_sff_data_xfer
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc3a091c6 ata_cable_40wire
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc3cf2aec __ata_ehi_push_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc48b7ccf ata_mode_string
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc7a9c4c1 sata_pmp_error_handler
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc7bafa57 ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc7edeb64 ata_cable_ignore
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xcac71b30 ata_host_alloc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xcbafb510 ata_scsi_ioctl
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xccb6ae79 ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xcd32ae4b ata_link_online
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xce49ace6 sata_async_notification
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xcf392eb2 ata_sff_port_intr
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd2668bfe ata_sff_qc_issue
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd2a4bb3b ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd32fe193 ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd38cbf86 ata_port_freeze
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd6153eab ata_base_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xdb036b14 ata_link_next
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xdd7eeb86 sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xdd8889c2 sata_link_hardreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xddaa888f ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xdfc52e14 ata_pio_need_iordy
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe02d59d6 ata_host_resume
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe0891615 ata_sff_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe4193bd1 sata_set_spd
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe94f1cc1 ata_qc_complete
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe97fe0ff ata_pci_device_suspend
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe9da3402 ata_sff_pause
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe9de9f7a ata_timing_compute
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xea418e0f atapi_cmd_type
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xeacb1988 ata_wait_after_reset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xebd05022 ata_cable_80wire
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xedf25f1b ata_cable_sata
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xee021880 ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf139d69a ata_cable_unknown
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3d9f218 ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf4280763 ata_noop_qc_prep
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf43d72eb ata_acpi_gtm
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf44c51ee ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf5625075 ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf60e6762 ata_sff_tf_load
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf6e874f5 ata_timing_merge
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf9ca3160 ata_id_xfermask
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf9e188c5 ata_bmdma_stop
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xfb8b9aca ata_link_abort
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xfbcdefba ata_eh_freeze_port
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xfbee3328 sata_pmp_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x26bddca4 sis_info133_for_sata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x33dbc3f9 btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x50b97c8a btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa2ae7c91 btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa5afd1c2 btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xaaf3a410 btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf742d077 btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf77ed421 btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfea0cca8 btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x4fa7c303 agp_add_bridge
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x9e496c83 agp_remove_bridge
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x103ea508 tpm_show_temp_deactivated
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1747bc5e tpm_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x250b9296 tpm_register_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x28e04c19 tpm_show_active
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2fa24da7 tpm_gen_interrupt
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x31a5e6a7 tpm_open
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x47126e47 tpm_show_owned
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x492db76d tpm_pm_suspend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x59505296 tpm_dev_vendor_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x831b3856 tpm_store_cancel
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8c07b4d9 tpm_show_pubek
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8d95e660 tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8e439201 tpm_show_caps_1_2
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x992849ff tpm_dev_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9c7d40ba tpm_remove_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xaa35f1e6 tpm_write
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xabe5dc54 tpm_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb0e2e0d5 tpm_show_enabled
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xbecf7907 tpm_pm_resume
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xbfbd3726 tpm_get_timeouts
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc3f097e4 tpm_continue_selftest
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe46e04dd tpm_show_pcrs
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf71f689a tpm_show_caps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xa401dc13 tpm_bios_log_setup
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm_bios 0xf4c9f323 tpm_bios_log_teardown
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xcf7a962e cn_add_callback
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x3acb3474 drm_class_device_register
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xcd889eff drm_class_device_unregister
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x0b485a78 hidraw_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x14259df4 hidinput_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x23b32e1d hidinput_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x26447de0 hidraw_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x395234d7 hid_destroy_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x40eb0994 hid_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x419d894c hid_allocate_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x533710c3 __hid_register_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x5699eb86 hid_resolv_usage
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x716a9d15 hidinput_find_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x810b857e hid_unregister_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x830df795 hid_check_keys_pressed
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x94803219 hidinput_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x94aa7cd1 hidraw_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xa503c7db hid_dump_input
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xa9b147fc hid_output_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xb25030ec hid_report_raw_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xb96d838a hid_input_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xbf17ed9c hid_register_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xdfab4cbc hid_parse_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe57d3aea hid_add_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe99cad9d hid_dump_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xec937f94 hid_set_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xeecf0817 hid_debug_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xf018e619 hid_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xff506492 hid_dump_device
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x84f684c2 roccat_connect
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x17b9eb04 usbhid_submit_report
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x499b7cbb hiddev_hid_event
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x5bd6612a usbhid_wait_io
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xc1f34b67 usbhid_set_leds
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x4c6b022c lis3lv02d_poweron
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xbf4790e3 lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xc2b196bd lis3lv02d_init_device
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xf0fa7fca lis3_dev
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xf6f09e55 lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x39616cc9 i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x4fbc0aca i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x1e42b3bc hpsb_config_rom_ip1394_add
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x230f3c02 hpsb_config_rom_ip1394_remove
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm
+EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x70b74e84 input_ff_create_memless
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x0e9dcc3c wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2eefbd6a wm97xx_reg_write
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x32246e3b wm9713_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x343ea772 wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3991d847 wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x533241c0 wm97xx_get_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5c98ab78 wm97xx_reg_read
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9f325f69 wm97xx_config_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xcdcc2430 wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd30100d5 wm97xx_set_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe33073ff wm9705_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfe8e6ea5 wm9712_codec
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x040f326c led_classdev_register
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x378b2014 led_classdev_unregister
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x41b5cf74 led_classdev_resume
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0xbb2bac90 led_classdev_suspend
+EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x631eccdc dm_register_path_selector
+EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xfc825d90 dm_unregister_path_selector
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x13344fdd dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x21311e5b dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3123d604 dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x48217113 dm_rh_dirty_log
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4a759e48 dm_rh_get_state
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4d20968e dm_region_hash_destroy
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4df3f1b1 dm_region_hash_create
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x68fe87b4 dm_rh_recovery_start
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x95e520f7 dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x9b084396 dm_rh_inc_pending
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa67e8d15 dm_rh_region_context
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xac376b92 dm_rh_get_region_key
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb0fd92c6 dm_rh_flush
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb3c9846c dm_rh_update_states
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbfdacd8b dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc51822e8 dm_rh_dec
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xda51f59b dm_rh_start_recovery
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xdbf3ab75 dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe438219b dm_rh_delay
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe5405224 dm_rh_get_region_size
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe769de09 dm_rh_recovery_end
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0x4e88e0ff md_allow_write
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0x5ce1d6d7 md_do_sync
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0x927c2a03 sync_page_io
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0xfb9d00b6 md_new_event
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x24935f26 raid6_call
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xcdc24ab5 raid6_2data_recov
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xdbab0c01 raid6_datap_recov
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xac408cfb ir_input_nokey
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xbc617e37 ir_input_init
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf2d5f46c ir_input_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x3b2787f9 ir_g_keycode_from_table
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x412da9a7 ir_unregister_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x46e5995f ir_repeat
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x51a3ed7c ir_raw_event_handle
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x644bb045 ir_register_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x69a193af ir_input_unregister
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x729b4d2c ir_raw_event_store
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xae2b716a __ir_input_register
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xb8ffcf1c ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xd95764ed ir_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xf1fbbea0 get_rc_map
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x08377066 saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1ae81a50 saa7146_setgpio
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x22378bf8 saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4dfdba52 saa7146_pgtable_free
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x5a9d77eb saa7146_devices_lock
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7ad54eba saa7146_unregister_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8a48bb8b saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9d1d80c1 saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xaee58c38 saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd74e7810 saa7146_register_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdbd54c75 saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x081e7764 saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x2f893791 saa7146_vv_release
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x3d576b3e saa7146_stop_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4b9ec586 saa7146_start_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x52ddc446 saa7146_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xaaa2bf71 saa7146_register_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf8c540f6 saa7146_vv_init
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xa57ac3f7 microtune_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xa85fd0e3 mxl5007t_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0xbc974fc6 tda18271_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xb59c05ce tda827x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x5bf2e487 tda829x_probe
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xe754e616 tda829x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x0a322084 tda9887_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x46cec629 tea5761_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xeecef6e0 tea5761_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xb3926724 tea5767_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xe50bd2f4 tea5767_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x2b176dde simple_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x10875b4d gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x181d9708 mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1f746e96 mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x54a36d87 mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x570d41a6 mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x752d92d6 mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x824127fd mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x92da7697 mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9dde17c9 mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb3cf84ce mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb4a67d50 mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb9748c60 mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc8955c3f mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xcb40dc0d mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xcc292593 mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe33949b9 ir_mantis
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe3979d84 mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xfbae635f mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0c9c0fb3 smscore_start_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0df4ffca smscore_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x124831b9 smscore_onresponse
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x1ea62576 smscore_register_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x253b58f8 sms_board_setup
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4d6fc991 sms_board_lna_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x52cdcfc6 smsclient_sendrequest
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x62dbda4f smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x64ce68c8 sms_board_led_feedback
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7b12e170 sms_board_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x87584d84 smscore_putbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x93dae2a4 smscore_unregister_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x947e494e smscore_register_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9a24f97d sms_board_event
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa7ebc291 smscore_get_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd2543f7f smscore_get_device_mode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd88ca7e7 smscore_register_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe10def2f smscore_set_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf69ed89b smscore_getbuffer
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x18c81aec cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1985a218 cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x2a75a9f6 cx231xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3b082eb6 cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4efc2a6f cx231xx_dev_init
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5e3cb376 cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x7c109cc9 cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc78827d0 cx231xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xce3e2115 cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcf432eff cx231xx_capture_start
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xdeddaabb cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0x70555854 cx88_setup_xc3028
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x01ee9465 em28xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x570e33a8 em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x81b609cd em28xx_audio_setup
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x89c3e4b0 em28xx_isoc_dvb_max_packetsize
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xb4bf9b6c em28xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xbc17903d em28xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x247bc9ff saa7134_ts_qops
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x50d25bcd saa7134_g_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x66dfc6ba saa7134_s_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xa0def344 saa7134_queryctrl
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xb66aad18 saa7134_s_std_internal
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x6192afa8 v4l2_i2c_new_subdev_cfg
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x7e65c052 v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x9b9df3c9 v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xa9d7f601 v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xe5656356 v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xfdaac3af v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x14de5df0 v4l2_int_ioctl_1
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x8f717b44 v4l2_int_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x9382cd93 v4l2_int_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xcac43b61 v4l2_int_ioctl_0
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x19540478 v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x36218652 v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3cc76867 v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4b11a6e1 v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x55c2edff v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x6bbd0fd9 v4l2_m2m_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x83128c38 v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x89ddfcc2 v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9990da3c v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xaf0a3aa3 v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc95ce339 v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xcb1c955e v4l2_m2m_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xcbf9df72 v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe778dbcf v4l2_m2m_poll
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0d63fd21 videobuf_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x18f5d437 videobuf_read_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x229d0237 videobuf_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x288bc69c videobuf_next_field
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x36df8b6b videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x38dd4c15 videobuf_waiton
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3a6b78f1 videobuf_iolock
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x46bc8296 videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x75c4b904 videobuf_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8203dcad videobuf_read_start
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x83afae71 videobuf_read_one
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x85b01f2b videobuf_mmap_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8d600365 videobuf_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8fb2365d videobuf_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x955b9ce5 videobuf_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9cef0e83 videobuf_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb136cbe6 videobuf_cgmbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb2fb705e videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc7735b5d videobuf_queue_cancel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd4aaec33 videobuf_poll_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd513bbe4 videobuf_read_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdbd742ae __videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe736781b videobuf_queue_core_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xedd2408a videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf1a6b014 videobuf_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1750f445 videobuf_dma_init_user
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1c5405ce videobuf_dma_init_overlay
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x26553c67 videobuf_dma_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x39185f81 videobuf_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3acb6f2e videobuf_sg_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x3b41f15a videobuf_sg_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x85a0e94a videobuf_dma_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xafb7abbd videobuf_dma_init_kernel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xcf88ce4f videobuf_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe9655436 videobuf_to_dma
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfe58888d videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x44ebf15f videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x98af546a videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xae122771 videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0161322f v4l2_event_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3a031827 v4l2_fh_exit
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x503db553 v4l2_event_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x621bc3a2 v4l2_event_queue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x62c5c4d5 v4l2_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6b7cb82f v4l2_event_subscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6d19fab4 v4l2_device_set_name
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x71f4f82c v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x72d5f98c v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x788bcdd1 v4l2_event_pending
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8adaa513 v4l2_event_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8fa7eb77 v4l2_fh_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x96327ce5 v4l2_fh_add
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9c9e1e8d v4l2_event_dequeue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9d38c312 v4l2_device_disconnect
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xafa36176 v4l2_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdcf6b249 v4l2_fh_del
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdfe9cbac v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x0f173625 i2o_dma_realloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x2a98e19e i2o_pool_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6875ea13 i2o_pool_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x820c38af i2o_sg_tablesize
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xaa1729dc i2o_dma_map_sg
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb6bf9862 i2o_dma_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xca7ec866 i2o_dma_map_single
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xee71d6f3 i2o_dma_free
+EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x61f4cd18 mc13783_adc_do_conversion
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0225d424 pcf50633_read_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x074eabbc pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1f5e2f07 pcf50633_free_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2119787d pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x291d7a6b pcf50633_reg_write
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3ae45de7 pcf50633_irq_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7664f8fd pcf50633_write_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x78584737 pcf50633_register_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x82a43f5e pcf50633_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xa996080a pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfa4bcc66 pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x41f0d341 pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xe0835431 pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x18df5373 pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5b451372 pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x95370c02 pcf50633_gpio_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xadb0678a pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xc299c493 pcf50633_gpio_set
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x2c5cbfc6 sm501_modify_reg
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x9f5f029a sm501_set_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa208228c sm501_unit_power
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xbd39a924 sm501_find_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xef23545c sm501_misc_control
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x390d4ead wm8400_set_bits
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x5582c497 wm8400_block_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x8c8fcf5a wm8400_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xe4621487 wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x1192a3e1 cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x902fe535 cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xc02588e6 cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xc180a0f1 cb710_set_irq_handler
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0x1018eee0 xp_restrict_memprotect
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0x345c9217 xpc_disconnect
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0x39046c7a xpc_clear_interface
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0x4b1ca752 xp_nofault_PIOR_target
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0x5797cfbc xpc_set_interface
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0x6285dfe8 xp_cpu_to_nasid
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0x64ba5017 xp_pa
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0x68d27065 xp_expand_memprotect
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0x7204e746 xp_remote_memcpy
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0x76e36d39 xp_region_size
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0x7c3462de xp_nofault_PIOR
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0x8f5dbfde xpc_registrations
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0x937be528 xpc_interface
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0xcd468100 xpc_connect
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0xead4f7fe xp_max_npartitions
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0xed1d3813 xp_socket_pa
+EXPORT_SYMBOL_GPL drivers/misc/sgi-xp/xp 0xf3b47f67 xp_partition_id
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x021f4d1e sdio_memcpy_toio
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0740fac9 sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0d313ef3 sdio_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x17bcb2f1 sdio_release_irq
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1c0f9748 sdio_enable_func
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x32d9ff1f sdio_writel
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x352ded04 sdio_writeb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x46e92c67 sdio_f0_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x50b9505a sdio_claim_irq
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x5d064020 sdio_writew
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x64a2381b sdio_readl
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x6d7f4cbf sdio_align_size
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x6ed0d7c3 sdio_writesb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x88467991 sdio_register_driver
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x88a7acdb sdio_f0_writeb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x8e56ac22 sdio_claim_host
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa9a064b9 sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb35e8b91 sdio_readw
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc29eba8b sdio_set_block_size
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc34915b9 sdio_writeb_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc413573f sdio_release_host
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd4759307 sdio_disable_func
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd559570b sdio_readsb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xdfb2e255 sdio_unregister_driver
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xef55292a sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x230ad6e2 sdhci_add_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6477611f sdhci_alloc_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8ed4abe3 sdhci_remove_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe9e41a11 sdhci_free_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf0999faf sdhci_suspend_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf923bf7f sdhci_resume_host
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x02ccf0be cfi_cmdset_0001
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2bd60b1d cfi_cmdset_0003
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x54bce3eb cfi_cmdset_0200
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x7fd136c1 cfi_cmdset_0701
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x80d602aa cfi_cmdset_0006
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xd2e3f5ec cfi_cmdset_0002
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xb40fe6e6 cfi_cmdset_0020
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x0c22f412 cfi_qry_present
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x55627fa0 cfi_qry_mode_on
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xe25c354a cfi_qry_mode_off
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xd79275d9 DoC2k_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x7eb5306c DoCMil_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xc6781de9 DoCMilPlus_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x01093b7c deregister_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x08b32400 parse_mtd_partitions
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x17b6303f __put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1fe5a0fc get_mtd_device_nm
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x68cb8502 unregister_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x737f83c7 mtd_erase_callback
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x77b8dd1f get_sb_mtd
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8e451d36 kill_mtd_super
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9bb4691b register_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa78c8d93 register_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaec8b86c mtd_table_mutex
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc57d4b9c del_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcb3b2cf6 add_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd61947f1 __mtd_next_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe111808a __get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe40683ae default_mtd_writev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xeab89fb0 get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf1a6739d put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x0f8b5bdf add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xad73c8e4 register_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xbcb9d35b deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xd11519ef del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x19c97457 nand_scan_tail
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x3aa5f25d nand_lock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x3d56b86a nand_wait_ready
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x75e80604 nand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x77528cd4 nand_scan_ident
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x8aa1818c nand_release
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xb1f33a05 nand_unlock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x89ad2d74 sm_register_device
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xd9709942 onenand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xf5ebf204 onenand_release
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x061fd709 ubi_open_volume_nm
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1484173f ubi_leb_change
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1c7c52f1 ubi_leb_unmap
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x25206006 ubi_do_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2eb7c83b ubi_close_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x36322a74 ubi_leb_erase
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x53d092a8 ubi_leb_read
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa993ad42 ubi_leb_map
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc1e74b32 ubi_get_volume_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd92b86ce ubi_is_mapped
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe900979a ubi_open_volume_path
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe90c875b ubi_open_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf3e0dd05 ubi_leb_write
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x18e63fd4 open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2238551e can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x283b7f2f alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x414360ca free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4d016c83 close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x81863738 can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9b35384a register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb307381b can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb8a7ce1e unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe671bd54 alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe7c70738 alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf9089105 can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x36b9ab98 register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5e730dd4 free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x9ad2bb8e alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xde70f4a0 unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0326f6cc mlx4_register_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0443ff88 mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x180e4dc1 mlx4_cq_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2733c17a mlx4_unregister_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2b81bd27 mlx4_cq_resize
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2c634ce2 mlx4_db_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2ed0a95e mlx4_register_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x327f3573 mlx4_fmr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3996d389 mlx4_uar_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x430a9134 mlx4_mtt_addr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x46b33599 mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4997e95c mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4b4cda1c mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5048778c mlx4_buf_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x51eadbd7 mlx4_buf_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x583ee47c mlx4_pd_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5a91f885 mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5e1b55a2 mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5f6632bc mlx4_srq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x67aca5e2 mlx4_mtt_init
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x69088fbc mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x701796ea __mlx4_cmd
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x764606e7 mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x811ca5b2 mlx4_qp_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x841d673a mlx4_mr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x88ebd85e mlx4_srq_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8a2d5c3e mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8aca8bfd mlx4_unregister_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8acfcdf8 mlx4_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x90f77702 mlx4_qp_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x936e8493 mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9474cf06 mlx4_multicast_attach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x949044b2 mlx4_pd_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x960fdd57 mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x99a85ea3 mlx4_cq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9d27aad9 mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xabc87827 mlx4_multicast_detach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb221b1eb mlx4_cq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb4ab8ad9 mlx4_srq_arm
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbd398b5b mlx4_fmr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbf071917 mlx4_qp_remove
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc4b65e54 mlx4_register_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcbc6efbe mlx4_qp_release_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd25f013a mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdc44b968 mlx4_mr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe3111572 mlx4_db_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe72421ed mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe9d93bdf mlx4_srq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xec1c46f5 mlx4_uar_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf8ad484e mlx4_qp_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf8e6da0f mlx4_qp_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfa149915 mlx4_mr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfbe3dd31 mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x51bdacd6 usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x8c259133 usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x52943f75 rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x6abdc563 rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xec603640 rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xeda79fb8 rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfbeb6b55 rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfde2fba9 generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0699f782 usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0a9424e4 usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0ce51715 usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x137c169e usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x17744d4f usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x231fbe03 usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2c85d316 usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x317e89ee usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3407d643 usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x39e9d7fa usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4af5d177 usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4c8a7b1a usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x549449e7 usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6049325c usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x674ed7d4 usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x92c59e2d usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x92e04f2c usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x989526d3 usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa906237c usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb13bcda5 usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb1eb3a01 usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc82c9476 usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcb162eb9 usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xffbf88c1 usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0c8fea17 i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x19c17848 i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1a63fe88 i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x22c1470a i2400m_set_init_config
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2f67f15e i2400m_cmd_get_state
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3bf24fe3 i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3e124ac7 i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3fa7651e i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x57c32af3 i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x66d4163d i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x973aeeed i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9867f5c5 i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xab8b1562 i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xabf0e6e3 i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb7e4a516 i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc13d78c2 i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc4769e04 i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf82e77bf i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xa8208b06 libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x0980e208 iwl_alloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x22863df3 iwl_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x85290eb9 iwl_dealloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x02af07c1 lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x28ee8e05 lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x36130ded lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x361f9ef5 lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8a4098fa lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8bf1d118 lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa0c3067c lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa90d5409 lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa92659b6 __lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xac728a85 lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbd208904 lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc0a3ef18 lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe36c8385 lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xebfec4c0 lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0500cb64 lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x232aa90a lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x2817e7b2 lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x41ff255e __lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7c710aa9 lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x87f46cf9 lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xabea5a35 lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc69be283 lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x28474de5 if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x7288489c if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x13afb3a6 p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x77c00e0e p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x79e6c674 p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7a07d876 p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb1564803 p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc43499d3 p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xcea10e86 p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd86a02ba p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdb31695d p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1a56e4b4 rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x24d17fc7 rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2ae11b96 rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2f37e907 rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3034e166 rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x34ab4c85 rt2800_mac80211_ops
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3e6323c7 rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5a5c234e rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5e3f9407 rt2800_init_registers
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6be5183b rt2800_write_txwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6c05528a rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8a0bdcb3 rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa3da91c4 rt2800_init_bbp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xae31b260 rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb621b686 rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xba61f963 rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc02e0cde rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc37128b0 rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc5febb6c rt2800_init_rfcsr
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcb14e028 rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcbc7532e rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe64b12bf rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xedadaa3a rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeee170dd rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x11953c4f rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1908621b rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2a7faa91 rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x54a6ba33 rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6ad84a0a rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7bbe20ed rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8979d16c rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9155ed7f rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x928a3515 rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x97bbbba8 rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9c02b8f5 rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9c031e72 rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa9e9200a rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaac6d179 rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb8c8f302 rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd05e56a7 rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd4c31732 rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd6fb21c1 rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xda9f09fb rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdd970edc rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea453604 rt2x00queue_get_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf51ff0bd rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfd0b31ae rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x0332b1ae rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x0450f376 rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x0ec0e2a9 rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x38779337 rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x391d764c rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x3e915e4f rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xca7b7072 rt2x00pci_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd6e7cd48 rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xec6f3113 rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x05ef2ccf rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0647c9be rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x12297819 rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x25d559d3 rt2x00usb_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2ef695f0 rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3bfc37df rt2x00usb_vendor_request_large_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x55bde4c8 rt2x00usb_kick_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5c807a02 rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5d21d47f rt2x00usb_kill_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6b68a5f0 rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8df596e0 rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x944dbc3c rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x97f9e0db rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe84ff9ab rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xead2e01c rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xffc7ffb3 rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x1834b0ec wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x2f6e4903 wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x4cb06154 wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x278bdadb wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x69824d7e wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x7d991954 wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xb3da8f83 wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xfa5ac53f wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x7cc1a4e3 pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x7e6d64ab pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xcaa0e335 pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x09618a05 wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x25f1d36f wm8350_register_regulator
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x576bb979 wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc2780dac wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc96ba886 wm8350_register_led
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xd3998213 wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x4bdd8db3 wm8400_register_regulator
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x02a17b65 scsi_dh_activate
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x08a53a53 scsi_dh_detach
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x0f63eb8f scsi_dh_attach
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x178dae44 scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x30d7bdb2 scsi_register_device_handler
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x3cf689a1 scsi_dh_set_params
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x054477bd fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0b50da4e iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0e3b8d89 iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x11c0ce6f iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x30609c49 iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x30a0518a iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3613fdcf iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x398681c7 iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3b962f23 iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3fbbd8ed iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x416c32bb iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x47525112 __iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4d08b4ef iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5333a165 iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x546ae0a0 iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a934a9e iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x614a334b iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62f0bf02 iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x66de7d65 iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x676535ba iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6c50cd35 iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x72c761e8 iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7e1d6af9 iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x83a6f6df iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x85a61de4 iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x86309a00 iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8e7101b8 iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9386c7f8 iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x96b85ef6 iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a62280b iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9d3b1df4 iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e56c7a7 iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa6b99fe7 __iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa8e25674 iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb09a2879 iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb3327396 iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcb4efb2c iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd0908953 iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd9231412 iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdc7bbdcf iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe1c9a5b5 iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe3cf93df iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xebfe9775 iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0dc8ca49 iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x23503ea9 iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3050b346 iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6494dcc4 iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x77f18bcf iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8545892b iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8564d5bf iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa55ff4c3 iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa76d9690 iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xab3eef96 iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb120643a iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xba7128c5 iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd2300010 iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe6024a89 iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf3601d12 iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf9264606 iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x21b22db9 sas_target_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x21d82d61 sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x290c31c5 sas_phy_enable
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x34030c37 sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x426732dd sas_phy_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x47c2ebdf sas_ioctl
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x47d62d45 sas_bios_param
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6ee062b6 __sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x73bfe800 sas_slave_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x84efec1c sas_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8b2e618c sas_domain_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8c686fb8 sas_find_local_phy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8ff68496 sas_slave_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaf62f2b7 sas_domain_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbb32eadc sas_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc0920559 sas_request_addr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcb5324e6 sas_register_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd3b2a29f sas_unregister_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd62b21c3 sas_change_queue_type
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd646590a sas_eh_bus_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xedb4198f sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xefb118f4 sas_ssp_task_response
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xff2b19b1 sas_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x0c4ba72e srp_cmd_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3774523f srp_target_free
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x6d9328f5 srp_iu_put
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x7fee39bc srp_iu_get
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xacd91eab srp_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xe7b7b4ee srp_transfer_data
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x0b767a0a scsi_tgt_it_nexus_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x771bedee scsi_host_get_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7a7fed83 scsi_host_put_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x98fb07f2 scsi_tgt_it_nexus_create
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xa3ec7158 scsi_tgt_cmd_to_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc46f75f6 scsi_tgt_tsk_mgmt_request
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd4a43a78 scsi_tgt_queue_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe47a6a70 scsi_tgt_free_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xf0519e31 scsi_tgt_alloc_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x09c1897d iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1e9d2246 iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x29505152 iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x32041262 iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x328dad20 iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3eccc19c iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3ef01034 iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4a33b396 iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5a78f9a2 iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x62913f20 iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6c48de1c iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x761dc1a9 iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7b85b37b iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x82ceab2f iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa05fb338 iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb74c256e iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd18a8296 iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe4f31421 iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe5559ab4 iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe7ae301c iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xef09d885 iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfb9d4235 iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x1544a487 sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x170e31a9 sas_disable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x82b1fd3e sas_tlr_supported
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xc8c939cc sas_enable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x0fc90f47 srp_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x11adf9d7 srp_remove_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1447c4f1 srp_rport_del
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x14b4a3b1 srp_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x680d27e3 srp_rport_add
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x59390d3a pciserial_resume_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x867931b1 pciserial_remove_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x903b01bb pciserial_init_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x9fdac0f5 pciserial_suspend_ports
+EXPORT_SYMBOL_GPL drivers/sn/ioc3 0x0582362b ioc3_gpcr_set
+EXPORT_SYMBOL_GPL drivers/sn/ioc3 0x0f6d82c2 ioc3_enable
+EXPORT_SYMBOL_GPL drivers/sn/ioc3 0x3619a739 ioc3_register_submodule
+EXPORT_SYMBOL_GPL drivers/sn/ioc3 0x6ba4afcf ioc3_unregister_submodule
+EXPORT_SYMBOL_GPL drivers/sn/ioc3 0xba032d41 ioc3_disable
+EXPORT_SYMBOL_GPL drivers/sn/ioc3 0xf5092859 ioc3_ack
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x0b97cd15 spi_bitbang_stop
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x5daad999 spi_bitbang_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x7a74e185 spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xd5cd6321 spi_bitbang_start
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xd6fd22a4 spi_bitbang_setup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xe39fe273 spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x9f008c8a uio_event_notify
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xb018948a uio_unregister_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xbeddaa64 __uio_register_device
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x6a68f519 usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x7c3f43df usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x09ba6f27 usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0f6bda7a usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2f58882d usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x36f343c6 usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3a0d3e64 usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6b72b39c usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x912e377c usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xb960672c ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xddf01da2 usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0119d818 usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x24ed6395 usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x27314788 usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3ba76bfd ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x41edfbb2 ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x463cbb60 usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x512ea5a6 usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x620d61f4 usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x62934d6a usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x65d310e3 usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6c3d798d usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x732179c9 usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x757e6090 usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x75bde439 usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb0ed3823 usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbc2f8c06 usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbdd8c581 usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xed4793d0 usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf1ea12f9 usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0bd5d56c usb_stor_bulk_srb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2db29d6f usb_stor_pre_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3123126c usb_stor_Bulk_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x362d8801 usb_stor_bulk_transfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x48e227bf usb_stor_control_msg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x57ae37cf usb_stor_CB_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5e0615d8 usb_stor_suspend
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x92a20217 usb_stor_probe2
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x989e4416 usb_stor_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9b243ec4 usb_stor_Bulk_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9f68dfa5 usb_stor_bulk_transfer_sg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa936eac6 usb_stor_set_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb1652f6d usb_stor_probe1
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb6258d3d usb_stor_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc450c94a fill_inquiry_response
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc825ac46 usb_stor_post_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcb002da4 usb_stor_reset_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcc5337e8 usb_stor_access_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcfbbf47d usb_stor_clear_halt
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd6be3edc usb_stor_transparent_scsi_command
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe90a4dd4 usb_stor_ctrl_transfer
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfcaa83c8 usb_usual_ignore_device
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfd171bb6 usb_stor_CB_transport
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x52063f61 wa_urb_dequeue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x9977e8b5 wa_urb_enqueue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x9cc7c665 wa_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xa797108d __wa_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf95daa8d rpipe_ep_disable
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x293ac04f wusbhc_b_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x36718f79 wusbhc_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4ba58058 wusbhc_rh_suspend
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x597c3141 wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6c686414 wusbhc_reset_all
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x775ff6af wusbhc_b_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7abd6b40 wusbhc_chid_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x844dd69d wusbhc_rh_control
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9c49af2a wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9e112b03 wusbhc_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb218dbbf wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb6dffe9d wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xca01d9e7 wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcf922e72 wusbhc_rh_resume
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd46129e2 __wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe6858267 wusbhc_handle_dn
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x26307508 i1480_rceb_check
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x55807537 i1480_fw_upload
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x8db61d7e i1480_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x00aa7fa3 uwb_pca_base_priority_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x1c135455 uwb_phy_rate_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x2c059263 uwb_pca_base_priority_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x583449f5 uwb_phy_rate_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x7bd1c8df uwb_ack_policy_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x8819d11d uwb_rts_cts_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x99edf643 uwb_rts_cts_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xf3205336 uwb_ack_policy_store
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x07c24da6 umc_match_pci_id
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x1c0a09b3 umc_controller_reset
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6e4a02c3 umc_device_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xad56b7a8 umc_driver_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb1394719 __umc_driver_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb2642b37 umc_device_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe8c0f598 umc_bus_type
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xee41ce1c umc_device_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0eca71d9 uwb_rsv_establish
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1399a45e uwb_rc_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1472c95d uwb_radio_stop
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1709aec3 uwb_dev_for_each
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1a9786de uwb_rc_neh_error
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1b48f94d uwb_rc_ie_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1b99dc90 uwb_rc_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x232583f2 uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2cc40caf uwb_dev_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2e8d9a9a uwb_rc_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x31b0f071 uwb_rsv_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x320b681d uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x32431ba0 uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3d0544f4 uwb_pal_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d03c58f uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d7e4407 uwb_notifs_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x50a0d013 uwb_rsv_terminate
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5aec185c uwb_radio_start
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5cf50134 uwb_rc_post_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e701771 uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x661560b4 uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7cc2b230 uwb_rsv_accept
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8568b1fd uwb_notifs_deregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8770a499 uwb_rc_vcmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa105f43f uwb_rsv_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa33bede3 uwb_est_find_size
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb1547b24 uwb_rsv_modify
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb3485460 uwb_rc_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb9048a1d uwb_pal_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc59a632d uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc5da1f3d uwb_rc_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc6027138 uwb_pal_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc87e035c __uwb_rc_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xccd49e56 uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd35fdf3d uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf12fc078 uwb_rc_put
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf84cb73d uwb_rc_alloc
+EXPORT_SYMBOL_GPL drivers/uwb/whci 0xd9caacda whci_wait_for
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x0faa6e2d wlp_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2aa87514 wlp_receive_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2b13802d wlp_wss_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x33843564 wlp_wss_activate_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x37ea2b9f wlp_dev_prim_category_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x40a9c08e wlp_wss_activate_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x56361119 wlp_dev_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5a1bb7a6 wlp_eda_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5b4f7ec3 wlp_dev_serial_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5bacf20d wlp_dev_model_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6b1b9ada wlp_dev_prim_OUI_sub_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x71ab8c9b wlp_dev_prim_category_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x71da2554 wlp_dev_prim_subcat_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x71e70f6f wlp_eda_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x71fa34d5 wlp_neighborhood_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x723b9233 wlp_dev_model_nr_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x75e239e6 wlp_dev_prim_subcat_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x83d3145a wlp_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9550b4f1 wlp_dev_prim_OUI_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9770d32c wlp_dev_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x99fcdbc9 wlp_uuid_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa17f6cd4 wlp_prepare_tx_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb3428899 wlp_dev_manufacturer_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xbfdff1ba wlp_dev_prim_OUI_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd53a1284 wlp_uuid_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd78fa696 wlp_dev_model_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xdb0c6b4d wlp_dev_prim_OUI_sub_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe0caf314 wlp_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf0cc686e wlp_dev_model_nr_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf5b9af54 wlp_wss_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xfd33577c wlp_dev_serial_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xff284f0b wlp_dev_manufacturer_show
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x09037c8c ili9320_shutdown
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x0b1fda11 ili9320_resume
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x1c50ad3c ili9320_suspend
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3ec3b9fa ili9320_remove
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3ee5eceb ili9320_write
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7bc328ef ili9320_write_regs
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xdcaca65c ili9320_probe_spi
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x3d00dd13 fb_sys_write
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xe4d6cb86 fb_sys_read
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x4d41ea3e sis_malloc_new
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x60779990 sis_free_new
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x16ada5eb w1_write_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x4412f1fa w1_next_pullup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x4dfec675 w1_reset_bus
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x90777665 w1_write_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x90a33442 w1_read_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x939f320f w1_reset_select_slave
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xbff97e02 w1_touch_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xf02ed383 w1_read_8
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x25f6bc51 dlm_posix_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xb2dd6bbf dlm_posix_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xb405f004 dlm_posix_get
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x5fc58291 exportfs_decode_fh
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x87bb5e49 exportfs_encode_fh
+EXPORT_SYMBOL_GPL fs/fat/fat 0x07597e3d fat_scan
+EXPORT_SYMBOL_GPL fs/fat/fat 0x10a123d7 fat_add_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x22d3d2b6 fat_remove_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x22fe2437 fat_getattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x254bd328 fat_build_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0x4b316e51 fat_attach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x56ade11b fat_flush_inodes
+EXPORT_SYMBOL_GPL fs/fat/fat 0x686f7632 fat_detach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x6a39bed1 fat_setattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x744e2bf5 __fat_fs_error
+EXPORT_SYMBOL_GPL fs/fat/fat 0x7d0e641e fat_time_unix2fat
+EXPORT_SYMBOL_GPL fs/fat/fat 0x835f5825 fat_dir_empty
+EXPORT_SYMBOL_GPL fs/fat/fat 0xaf64137f fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL fs/fat/fat 0xbda77984 fat_free_clusters
+EXPORT_SYMBOL_GPL fs/fat/fat 0xc1adf583 fat_fill_super
+EXPORT_SYMBOL_GPL fs/fat/fat 0xcff11fe7 fat_sync_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xdf8c4e3d fat_search_long
+EXPORT_SYMBOL_GPL fs/fat/fat 0xfbdcf30f fat_alloc_new_dir
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x22fd81c8 nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x2b509d09 nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x379d6f9e nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x469fbb96 nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x50c2ab39 nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x06000e89 nfsacl_decode
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x1c5c771e nfsacl_encode
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2b61f73c o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2ce320ea o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3c3eace1 o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3ea07859 o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8c28d76b o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc5f82967 o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf7726d34 o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x38b22e72 dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x65944c93 dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x78c2bfb2 dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7aac0ba1 dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xbc1a3d16 dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc65dff88 dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4c6ec7b1 ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x602ab7e9 ocfs2_plock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdd05c53f ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x2e1d43cf lzo1x_1_compress
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs
+EXPORT_SYMBOL_GPL net/802/garp 0x02e28dd1 garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x3727a8a5 garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0xd470d534 garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0xe3ad70f5 garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0xe695e1d6 garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0xf5784230 garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/stp 0xaaf3925c stp_proto_unregister
+EXPORT_SYMBOL_GPL net/802/stp 0xc4f43cce stp_proto_register
+EXPORT_SYMBOL_GPL net/ax25/ax25 0x50627672 ax25_register_pid
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x327f1de2 bt_debugfs
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xb55799ca arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x79adaa40 ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x15509a25 nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x2d4b9105 nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x39574dbd nf_nat_proto_put
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x69274e08 nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x6afc60ed nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x73356a79 nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xc9620541 nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xcdc0c419 nf_nat_proto_find_get
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd7d7d4d2 nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x04f91b29 tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x71737d7a tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8e51928c tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xbab64b29 tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xdb3b6c0c tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x017543f0 net_ipv6_ctl_path
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x01dd9ae9 inet6_csk_search_req
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0fd73612 inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x1c33e56f ip6_sk_dst_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x23d1f946 inet6_csk_xmit
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x7e7d458d inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x85478a0b inet6_hash_frag
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x8fa002af ip6_dst_blackhole
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x92424291 ipv6_dup_options
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa12b10c4 ip6_local_out
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa8e9e218 inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xae919ae1 inet6_destroy_sock
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb33a51fe ipv6_opt_accepted
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc6def8ea ipv6_find_tlv
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xcc3f6dcd ip6_dst_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe91fb8db fl6_sock_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xfa126f28 inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xd944d957 ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1aab7697 l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1f60fc6f l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2e00c9b5 l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3a1e918b l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x469255e2 l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x46f6a959 l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x90fb1c16 l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x92066112 l2tp_tunnel_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9294072e l2tp_udp_recv_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xae80f926 l2tp_xmit_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb4903635 l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc1f84116 l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd72a9721 l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdaf205e0 l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe550e104 l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf5dc747c l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfa275d8a l2tp_tunnel_closeall
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x2008a757 ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x3640d2e9 ieee80211_find_sta_by_hw
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xce361768 ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02467084 nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x05ee28b8 seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x13c2fa52 nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1779858b nf_conntrack_untracked
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x180fbad7 nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1b66679b nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1fe67ca1 nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20454b1f nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x27db362d nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2da04ff1 nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30a90772 __nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x351e126b nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3523c73c nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x35db8398 nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e5bfae3 __nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x420dc370 nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x444bfaa2 nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45df6730 nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x46878833 nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x53b57014 nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5cf31207 nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x64adcc87 __nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x68143371 nf_ct_unlink_expect
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d35230f nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d9b27f2 nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x703ba1f2 nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x717dae42 nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73197dd2 nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x74fdbe05 nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77a45512 nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a84d9c1 nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7b114dff nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7eec7032 nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x822845bb nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8659db63 nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8cd4f4ff nf_expect_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x91095f0d nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x91801c8b nf_conntrack_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x91f579a0 print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x945c057d nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97942b8d nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9f8f8112 nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa744f41b __nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab08e35e __nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb23c4da4 __nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb266c176 nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2a522fb nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb46fb9e1 nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xba9b310d nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbba7303e nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbfd8e738 nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc9bb4a66 nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcd58749b __nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd3086160 nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd4b0be3a nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd5c0ba09 nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd74edb8d nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2fd4698 nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe5933d98 nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf470f118 nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf4be60a7 nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa4c4280 __nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xb87d5918 nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x674841fc nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3260a4a7 nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x5882a99e nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6a88be34 nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x886fd5f8 nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9336b4d8 set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x93f9b6a6 get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9734d5f7 set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb483cc44 set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcd44464b nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xede4549c set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x5039dfd1 nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x0a635179 nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x35030a49 nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x3660d3ea nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x86fcff5f nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x2c9a7c74 nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xf3e664ab nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x45486de4 nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4b6d0659 ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5347ec86 nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5c4f3b7a nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6508a877 ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6f6971da nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7ce84693 nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9088aede nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc763fe4c ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xeb5f51ee ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf693c149 ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfaeb03c4 nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfd6a429b ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x5e1100bc nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x2ef259a6 nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xa8e85f0c nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5b216237 nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x846bc9c3 nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa1f8fd6e nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc3fe8950 nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc6013e56 nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcc3caa59 nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x0694b968 nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0182e8a7 xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1bcd45b0 xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1bd1df23 xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2122c23d xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x26944cf4 xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x48d5d375 xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4b42e11e xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6a9a1d56 xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x86949c70 xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb31dba9e xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb3a6a718 xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xedf2902c xt_info_locks
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf423c21d xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xfc3142be xt_register_table
+EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq
+EXPORT_SYMBOL_GPL net/rds/rds 0x026cac9d rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0x098c43af rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0x2280e3cb rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x23a20fad rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0x2478473b rds_stats
+EXPORT_SYMBOL_GPL net/rds/rds 0x24ea57c0 rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3c7941ff rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x42a71e25 rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0x4a12b550 rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x6432768a rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0x67d8f6db rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0x72fccf55 rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x8fce5ff2 rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0x9fcd0722 rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0xa7c6a77f rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xae8b4d52 rds_inc_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0xb219d757 rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0xbbc86413 rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0xbf4445e7 rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xc7e37ac1 rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0xc8cf4e83 rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0xcf99789c rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0xe4f79445 rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xf757a31b rds_trans_register
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x1a3a280f rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x98410e5f rxrpc_register_security
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3fc4656a gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4a8ff341 gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x556d4135 gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x572afec4 svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x60436274 gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x6cca8ada gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7258bd6d svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8692d86f gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb66499ef gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xbd3f2e00 gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xcfe5cd72 gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00b12caf cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x071647af sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x072949f8 rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07ab0c06 rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x09be1096 xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d004ac9 rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0dcd34be xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e8c0a04 xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0efcda21 rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1512398c xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x188270c9 rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cf9f882 xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x200834f9 rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20bbac3a svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21c60fb5 xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x232811d4 xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24576319 rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24bab2b5 rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b29c8fc svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2bf1967d auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e3a7f58 xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e718cdd svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x358f9e70 svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35dc240f rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x366bfc55 xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x366f3d8d rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x378d5d19 svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387623b9 svc_sock_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x391d4e17 svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39fe973f xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e4c5e3f xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e78c3d7 rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x41c8ae23 xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4302f9af svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x434f962f svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4444a965 rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x486c74de auth_unix_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48e90fa9 svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x494cbf3b svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4958439c rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d46c98f cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4dce01cb svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e264554 xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fb6266c svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x534d178d svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x539ba1ee auth_unix_add_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5406f0ed svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54689435 xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57c27d3c rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e4bb9d0 xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6172bfaf rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62170b05 unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x62be6558 cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63789301 rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63df4a11 svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65eaffc6 svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x665f3970 rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66a38fb7 xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x695333d9 svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a587a44 auth_unix_forget_old
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6dcd6caa xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ffd94eb put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x713037de rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73560367 svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x737d6f10 rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74787bc2 xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x760c84b1 xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7757047e sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78566758 rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7881a4a6 xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x789be51d sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a998185 rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ee35c5c xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86b46d3b rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86c39222 rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89381ae5 rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c243b15 svc_sock_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c946235 rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8cfd581f svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fcd625f svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95684e7b svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x965cc73d xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x976d785e xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a39a194 xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a7fb5ad rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9d8dac9e xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e00d7f9 svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e7244de rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2701b60 xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa77ca452 rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7c7f9a5 rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa566ccb rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac49aa65 rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf858d28 svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0ef733f sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2198d16 rpc_exit_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb63f3b75 xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9ac799a rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9bd06ef auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba96d72e rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbada135c rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb822bd4 xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc314be1 svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc7e54fb svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdb28b07 xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfe4e5bf csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc372d350 rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3e13ef4 __rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc40eba57 rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc85dd490 svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc9f6c0f rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee8335f xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcfe029d5 rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0913f9b rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd12c5670 svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd51f5503 rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6f07e2d svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd79ab91b auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd89a8b22 xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8fce17f svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd90c0a8f xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd92f4ff6 xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdaaaf5c4 sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbd1b32f svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe14ab5d4 xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe445da2d write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe46dfd77 svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe74ece19 rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe91c7fed rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec470ea4 rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2a329e0 rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3af0037 read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4095361 rpc_queue_empty
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf4b34e20 xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7f762e4 cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf857b2ac rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8d38d3f rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9c25772 rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa8540af xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb184fa4 svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe865d01 svc_xprt_put
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x0a318ebf wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x17a35f03 wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x42a1366d wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x457b4b8a wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x5895053d wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x63ae8813 wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x793cb294 wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x7b58ec0e wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x7f3dbac6 wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xc6ec0c6c wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xeb511ea4 wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xfa56dd0f wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xff51f990 wimax_dev_add
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x05db179f cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x09e4ef6e cfg80211_wext_siwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0a0a8bf8 cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0ddc49bd cfg80211_wext_giwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x135315c8 cfg80211_wext_giwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x14385abb cfg80211_wext_giwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x23ccae8d cfg80211_wireless_stats
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2754b989 cfg80211_wext_siwgenie
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2aaabe8b cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x39d0563d cfg80211_wext_siwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3f259195 cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4196220b cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x42f6edd1 cfg80211_wext_siwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x47929e70 cfg80211_wext_siwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x541acd8c cfg80211_wext_siwencodeext
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5ca91610 cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x634e829f cfg80211_wext_giwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6f6bb980 cfg80211_wext_siwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x81fc2b41 cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8cdc86ca cfg80211_wext_siwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8d831935 cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x905c29a3 cfg80211_wext_giwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x92e66919 cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9e91d91b cfg80211_wext_giwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa18b5dd0 cfg80211_wext_giwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xad8aaf1c cfg80211_wext_siwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd5654b89 cfg80211_wext_siwmlme
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd771d3ed cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdda9d967 cfg80211_wext_siwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe24e4de8 cfg80211_wext_siwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xea42405c cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf94b24a4 cfg80211_wext_giwauth
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x125f59ec ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x51269eb5 ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc3eb53e3 ipcomp_input
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xf6f39ec8 ipcomp_init_state
+EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x32eb49e5 snd_ak4113_build
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x4973e0ac snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x63e23461 snd_ak4113_create
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x6b9fddd9 snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd5c0f34a snd_ak4113_reinit
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd6ae12e3 snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0470790c snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x071ab1b7 snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x07361505 snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0b57b6c1 snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bdaacfe snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0d0004c9 snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x102a6532 snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1102e343 snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x123038d8 snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x153babdd snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x168e1b45 snd_hda_eld_proc_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b5dc500 snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x218f1162 snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x25b348a1 snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x266e2cbe snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2c4a4114 snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2c5159a6 snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ceceb9d snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2dfa4487 snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x345625e4 snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x346a875c snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a3c6c9e snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45ded3f6 snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a71790c snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4af65ee5 snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4cd6c256 snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f951686 snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x53249c81 snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5688dd94 snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x57349a98 snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x66b428e0 snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6901a944 snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6aa7a693 snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d61a755 snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x782b9209 snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78854501 snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a4bcbf2 snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7e782695 snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x81cc306e snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x827edc30 snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8321eb5f snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x846b2c69 snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84cb97a3 snd_hdmi_get_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x863634e9 snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86ce548b snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87d34dd0 snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x887ff48a snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8917cd95 snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x937e2c99 snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9471c1d5 snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x958ea1a1 snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x96b79de1 snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9725fad3 snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x98ca681f snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ff5e465 snd_hdmi_show_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5f68a95 snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa720c20f snd_hda_parse_pin_def_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa94b4700 snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaae8054e snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad480f00 snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb5b5b8d6 snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbaa5c634 query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbfa89082 snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0268b1e snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc49182b4 snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5159851 snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc9792822 snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc984ddca snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc9df82ab snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb132a87 snd_hda_eld_proc_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd642e82 snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcea330ce snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf71509d snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd002bad3 snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd01550b6 snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd425c7dc snd_hdmi_get_eld_size
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6587ede snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd909c6fa snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd952a3d2 snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9c69e34 snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe7b666f4 snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeae774c5 snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xecd54459 snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xefe31639 snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf55fa422 snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf7d066d4 snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfbe11be2 snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd14df84 snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x54072568 ad1836_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0xfc6a5e72 soc_codec_dev_ad1836
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x2a2c5b9c soc_codec_dev_ad193x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xadff4eea ad193x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x1cc44365 ad73311_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xa0845292 soc_codec_dev_ad73311
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0xacc1a5da ads117x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0xc1b209fd soc_codec_dev_ads117x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0x5781192f soc_codec_device_ak4104
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x1c9be8c9 soc_codec_dev_ak4535
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xf20a5cd5 ak4535_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x4420c765 soc_codec_dev_ak4642
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xa4275500 ak4642_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x135b3d33 ak4671_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x6d4b2aff soc_codec_dev_ak4671
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x305898b1 cs4270_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x5c0df49f soc_codec_device_cs4270
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x4bbc864a soc_codec_dev_da7210
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x6065d518 da7210_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x110703a8 max9877_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x0383bc6b pcm3008_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xba9208a8 soc_codec_dev_pcm3008
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x6c3bed81 dit_stub_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xaa6494f2 ssm2602_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xb1270d63 soc_codec_dev_ssm2602
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x69cda75f tlv320aic23_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x7dc5f073 soc_codec_dev_tlv320aic23
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x729f2181 aic26_soc_codec_dev
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xb6f337aa aic26_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x041ffad7 aic3x_set_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x25d65702 aic3x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x5e30fd44 aic3x_button_pressed
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xaa51cba3 aic3x_headset_detected
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xae24b1bb soc_codec_dev_aic3x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xc18fc92d aic3x_get_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xf414fabc aic3x_set_headset_detection
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x1cba4036 soc_codec_dev_tlv320dac33
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x1db8c4f1 dac33_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x739d5b9b tpa6130a2_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x1eaa856b soc_codec_dev_twl4030
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xebae5387 twl4030_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x6125c08e soc_codec_dev_twl6040
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xa3e3b852 twl6040_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0xdf12e36e soc_codec_dev_uda134x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x59ee2650 uda1380_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xeea8df07 soc_codec_dev_uda1380
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x1d259355 wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc3585f27 wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc9d57846 wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x885cb71e wm2000_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x18f63d8d soc_codec_dev_wm8350
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x292b0e55 wm8350_hp_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x8bf4bbc3 wm8350_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x9ca294c9 wm8350_mic_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x83eac7df soc_codec_dev_wm8400
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xd3099d7d wm8400_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x75cf6f0a soc_codec_dev_wm8510
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x98315194 wm8510_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x2f4d39a7 wm8523_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x5ca48290 soc_codec_dev_wm8523
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x2de602bb wm8580_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x7a1e5485 soc_codec_dev_wm8580
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x1148854c wm8711_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xc6dd96c0 soc_codec_dev_wm8711
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x92c18f1f soc_codec_dev_wm8727
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xf6f97ccc wm8727_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x07afce19 wm8728_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x155993d0 soc_codec_dev_wm8728
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x86d79465 wm8731_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xc55942ae soc_codec_dev_wm8731
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x2e5b72fa wm8750_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xd8cf0f5d soc_codec_dev_wm8750
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x2e04bbe1 wm8753_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xf3e25c9e soc_codec_dev_wm8753
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x5f3b18a5 wm8776_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x8d117cb5 soc_codec_dev_wm8776
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x3edbba85 soc_codec_dev_wm8900
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x69e94f6f wm8900_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x15f6e946 soc_codec_dev_wm8903
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xaa3045ea wm8903_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xef7d3dc1 wm8903_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x5ab77f81 soc_codec_dev_wm8904
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xf2780d79 wm8904_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x39d21259 soc_codec_dev_wm8940
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x9da66b7c wm8940_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x45678c2b soc_codec_dev_wm8955
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x6b1cf17b wm8955_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x0a397a55 wm8960_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x3a56c637 soc_codec_dev_wm8960
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x234df776 soc_codec_dev_wm8961
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xc165a9f0 wm8961_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x228f9d41 soc_codec_dev_wm8971
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x6712a244 wm8971_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x37df33f7 wm8974_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x5ff86904 soc_codec_dev_wm8974
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x401df38c wm8978_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0xf34d2608 soc_codec_dev_wm8978
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xb6558365 wm8988_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xf8116135 soc_codec_dev_wm8988
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x310a810a soc_codec_dev_wm8990
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xfc710abc wm8990_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x1a27d2c9 soc_codec_dev_wm8993
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x7ae57812 wm8993_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x38a38604 wm8994_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x5566440e soc_codec_dev_wm8994
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xe0893080 wm8994_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x69bbbc46 soc_codec_dev_wm9081
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x996eddc5 wm9081_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x7162e730 soc_codec_dev_wm9090
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x08b16ee5 snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x10acc321 snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1300885c snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x15d36624 snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f042ec1 snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ff1b348 snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x259b92e6 snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3585b6e7 snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39d49611 snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3ab3b9db snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b296620 snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4363e2e6 snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4385c48e snd_soc_free_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4505a290 snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4868f0d7 snd_soc_get_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4ed9024c snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x551b8691 snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x57a4b81f snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a1011df snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5c9c1116 snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5d863f8f snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e071708 snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x64022e98 snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x671f4a83 snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6889ac24 snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x68de33ac snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x69652a6e snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a160176 snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6d2f2c49 snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ed5667d snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x751e0bc8 snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x768201dd snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x77916303 snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7b5254de snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x836a6edf snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x854168a2 snd_soc_info_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x86bc623e snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x880e53a6 snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88215f13 snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8c3c509e snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9042d8f0 snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9246f375 snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93f048b2 snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9bbe3f32 snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d787f10 snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9e7d745a snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9feb6403 snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa797ad40 snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xacc33aae snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xad296e7f snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae750db8 snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaea53fe0 dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0593dc2 snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1af3644 snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb1ebf7c6 snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xba3d0747 snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb2d2dcf snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb693997 snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd657384 snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca4c9d48 snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xce85a6ad snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd0e56ce5 snd_soc_put_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd2dd955c snd_soc_dapm_stream_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9fee70e snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb317b39 snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdda53b01 snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xded52d4f snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe3763829 snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6f1943c snd_soc_jack_new
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe74eba2a snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xea242b1d snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xed1de0e0 snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf46a74fd snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf55df442 snd_soc_new_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfe70f53c snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x0007e4a4 sn_dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0x00091751 usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x00262a6f platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x0078d1bf nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x00a5cbe1 iommu_iova_to_phys
+EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init
+EXPORT_SYMBOL_GPL vmlinux 0x00f98fee destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x0110b3d1 register_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0x0143fd59 user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x0155b3c8 inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x016b51a6 fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x01739e67 page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x019bd43b bus_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x01af0539 wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x01dbbd07 debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0x01fba995 inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x0205e001 anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x021e1bc6 skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x0251bd72 device_register
+EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x02ec8fb8 rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0x02f4ece1 sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x030f18ca crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x038d5d33 __inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0x03936d06 dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0x039b58b9 tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x03bc7c1b led_trigger_show
+EXPORT_SYMBOL_GPL vmlinux 0x03e2cc52 regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x03e5a7b8 blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0x03fe2cca flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread
+EXPORT_SYMBOL_GPL vmlinux 0x041bb07a inet_diag_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0436424b dm_kill_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x0438b0ce tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x0470c5d3 regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x0472ebdb ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x04b4fd53 pci_find_next_capability
+EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0x052134e3 pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x054e6835 usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0x060540bb wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x06328c81 __audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0x0643ba9a skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x06b4d509 device_find_child
+EXPORT_SYMBOL_GPL vmlinux 0x072664a8 raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0x07573f1c ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0x0783a786 invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x07e1c6db seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x0825f4ca ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x084d8458 power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x08be14fb dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0x08f1eff6 srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0x092a542d i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL vmlinux 0x097c4102 ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0x097dabe0 ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x099f30f0 crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0x099faadc crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x0a5f74a9 platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0x0a8d0087 sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x0ad204bf usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x0ad59768 usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b772e7e ezx_pcap_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x0bac9195 iommu_map
+EXPORT_SYMBOL_GPL vmlinux 0x0bcee2e0 sysdev_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x0c245ae8 sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c920a34 crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x0d444946 ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0x0d4784e5 klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0x0dbb33eb map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x0e91250a crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0x0e9caf2e platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0x0ea271a3 bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0x0eb913ab acpi_bus_trim
+EXPORT_SYMBOL_GPL vmlinux 0x0f0d88c3 pm_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x0f7a1be0 transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0f881928 usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x0f8dce6c ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0x0fa25852 tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x0ff23b93 scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x100c48a2 unregister_dock_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x10a70258 device_del
+EXPORT_SYMBOL_GPL vmlinux 0x10bb28f4 tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0x10c078b5 input_class
+EXPORT_SYMBOL_GPL vmlinux 0x117aca92 ab8500_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x118a6aeb class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x118b9f38 inotify_inode_is_dead
+EXPORT_SYMBOL_GPL vmlinux 0x118c69f0 __ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x11ba3300 sn_ioboard_to_pci_bus
+EXPORT_SYMBOL_GPL vmlinux 0x11cf2744 crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x11f65dc1 sysdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x11f8e3c3 vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0x11fdc0e7 spi_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x12f83bd4 scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x1328114f bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0x1331a430 platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0x134afcb0 css_id
+EXPORT_SYMBOL_GPL vmlinux 0x135710ea kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x1378adf7 wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x137958bd wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x1447a037 rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0x1451306c ia64_sal_cache_flush
+EXPORT_SYMBOL_GPL vmlinux 0x145a6648 device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0x14670dba regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x1468eb70 sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x14912e4a synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid
+EXPORT_SYMBOL_GPL vmlinux 0x14d42c89 __rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x14d4ca60 inotify_find_watch
+EXPORT_SYMBOL_GPL vmlinux 0x14f80857 rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x14f8a4cc bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x152c9940 usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x15c82fec debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0x15e2c2e8 blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0x1626bb6b __inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x1630abac device_create_vargs
+EXPORT_SYMBOL_GPL vmlinux 0x167cefc2 fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x167e792f blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x16d1f705 crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0x172b62bc xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0x173df463 sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0x1768415a pm_runtime_enable
+EXPORT_SYMBOL_GPL vmlinux 0x17abf5eb crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x17b487d1 crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x17b8682d lookup_create
+EXPORT_SYMBOL_GPL vmlinux 0x17efe62e ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x17fba709 pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x181fde9b regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0x189ce514 power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x18b236c7 pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0x18b9007c usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x197bcac9 vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x1a3cf710 sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x1b15acf9 register_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0x1b385146 rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1ba340d6 wm8994_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x1beeb232 acpi_ec_add_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0x1bf6b7bc anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x1c4d8dc0 relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x1c61666c class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1d266a70 tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0x1d496a2e cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x1d878ec4 shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x1db6cf78 unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x1e17cdd0 usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0x1e282672 pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0x1e774030 d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart
+EXPORT_SYMBOL_GPL vmlinux 0x1e9ff605 driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x1ea62310 get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names
+EXPORT_SYMBOL_GPL vmlinux 0x1f8ec1b3 acpi_get_pci_rootbridge_handle
+EXPORT_SYMBOL_GPL vmlinux 0x1f995849 transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick
+EXPORT_SYMBOL_GPL vmlinux 0x204f4554 device_add
+EXPORT_SYMBOL_GPL vmlinux 0x20aadf1c fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0x20aef792 simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20cf9c9a crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x20d22764 iommu_found
+EXPORT_SYMBOL_GPL vmlinux 0x20d6be12 irq_to_pcap
+EXPORT_SYMBOL_GPL vmlinux 0x20ffd815 cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x21537e85 usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x21785f83 class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x217b1866 spi_register_master
+EXPORT_SYMBOL_GPL vmlinux 0x21dd9fa0 sal_pcibr_slot_disable
+EXPORT_SYMBOL_GPL vmlinux 0x21f5006c bsg_unregister_queue
+EXPORT_SYMBOL_GPL vmlinux 0x22238cd0 usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0x2255ef2b usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL vmlinux 0x2258480b ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x22dbd66c attribute_container_register
+EXPORT_SYMBOL_GPL vmlinux 0x22efb825 klist_init
+EXPORT_SYMBOL_GPL vmlinux 0x230a177b bus_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x2329e439 blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0x232c1005 regulator_put
+EXPORT_SYMBOL_GPL vmlinux 0x2378eadc rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x23aee2a1 pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0x23cd5dbc pcie_port_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x23d0445d fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0x23d793d3 blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x23ead95d crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x240122a2 led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0x244ad75d eventfd_ctx_put
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x2579ce3b blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x257aa069 platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x25b1858b remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0x25d030b5 usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x25d88b6d nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x2608f1db crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x26541cf5 device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0x268a50eb relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0x269b115c wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x26b6798a register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x27400ae4 ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0x2776f6cb vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x278b40a5 adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0x27ca1492 crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0x27e233e4 crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x27ebe572 ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x282c91d1 crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x28909f73 shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x28f1a392 eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0x291ad57d sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x2933d2d0 debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0x2992fc1e inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0x29eeb9e4 bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0x2a2c811a __wake_up_sync_key
+EXPORT_SYMBOL_GPL vmlinux 0x2abed336 usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0x2acddf5e input_ff_event
+EXPORT_SYMBOL_GPL vmlinux 0x2b2d15f1 inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0x2b535a56 tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0x2b5c303b smp_send_reschedule
+EXPORT_SYMBOL_GPL vmlinux 0x2b6d6759 setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0x2c0b8a54 ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x2c17684f tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c46d793 scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x2c66217c wm8350_device_exit
+EXPORT_SYMBOL_GPL vmlinux 0x2cad434f dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2cfad96d crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x2d37f2e2 single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event
+EXPORT_SYMBOL_GPL vmlinux 0x2dc0dc54 crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0x2dc2a11f handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0x2e14f8f0 cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL vmlinux 0x2e2c49b3 tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e7dd07c usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0x2eed2630 iommu_domain_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x2efce2a1 pci_enable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x2f080bcb input_ff_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x2f2b44c3 ring_buffer_read_finish
+EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table
+EXPORT_SYMBOL_GPL vmlinux 0x2fafc48d usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0x2fd544e4 crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x301df870 usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL vmlinux 0x305f0aab transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0x30c2365b ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x30fb006b led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0x314eed80 eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0x3169a5bc da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x318920b1 register_dock_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x318b7d84 raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x31a69f25 screen_glyph
+EXPORT_SYMBOL_GPL vmlinux 0x31a72315 generic_detach_inode
+EXPORT_SYMBOL_GPL vmlinux 0x31df425f single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x3213024c usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0x326f6f26 inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x32d46bdd shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x32d4c1f1 set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x32d734d0 sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0x32fda84e usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x33425290 sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0x33439b81 __pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x33a1f553 inotify_rm_watch
+EXPORT_SYMBOL_GPL vmlinux 0x33a49f0f cpufreq_cpu_get
+EXPORT_SYMBOL_GPL vmlinux 0x33b4883e proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x33ec59a9 rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0x33fc012c scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0x34279fe2 shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0x344b8563 rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0x34af446d platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0x34c58fce tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0x34cfb029 find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0x34da9a66 __cpufreq_driver_getavg
+EXPORT_SYMBOL_GPL vmlinux 0x34e41113 ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0x3572cd49 attribute_container_find_class_device
+EXPORT_SYMBOL_GPL vmlinux 0x35aa391c key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x35ec28e8 atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0x362fb25d platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x363ae473 flush_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x3699d795 dm_get_rq_mapinfo
+EXPORT_SYMBOL_GPL vmlinux 0x36f8607a tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x379008d3 pci_find_ext_capability
+EXPORT_SYMBOL_GPL vmlinux 0x37a45363 blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x383ea6f9 tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0x386f9efd debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x389eeb25 usb_create_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x38aa8e1b debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0x38c64924 ab8500_write
+EXPORT_SYMBOL_GPL vmlinux 0x38ca69ad elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x391eee29 put_driver
+EXPORT_SYMBOL_GPL vmlinux 0x3921b4a9 wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x3974db13 regulator_disable
+EXPORT_SYMBOL_GPL vmlinux 0x399a51b0 unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x3a11d933 inotify_dentry_parent_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x3a20871e ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3a93a490 wm8350_gpio_config
+EXPORT_SYMBOL_GPL vmlinux 0x3ab2f746 crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0x3ac265fe sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3b173520 pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0x3b32e319 unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x3b3dab03 ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x3b4b3a9b tty_mode_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x3b9083ec spi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x3bcb2eb6 pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag
+EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3d1b4dcb devres_remove
+EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory
+EXPORT_SYMBOL_GPL vmlinux 0x3d6acb94 rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x3dd571cd module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x3e61cbce fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x3eaa39c2 swiotlb_map_page
+EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register
+EXPORT_SYMBOL_GPL vmlinux 0x3f3b1af0 scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0x3f638f0d adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x3f6c8610 scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0x403d13e4 crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x404d9d28 __inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x40502b18 init_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x4089cb1e usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL vmlinux 0x4123f042 usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x413eff0b rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x4145484f usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0x417ceec0 pm_generic_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x41cd0726 crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0x41dc41a0 rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x41eec892 securityfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x4221a413 sal_pcibr_slot_enable
+EXPORT_SYMBOL_GPL vmlinux 0x422d29d7 platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done
+EXPORT_SYMBOL_GPL vmlinux 0x42651d88 blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x4268cee4 mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active
+EXPORT_SYMBOL_GPL vmlinux 0x429102d3 rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0x430fe5a4 usb_ep0_reinit
+EXPORT_SYMBOL_GPL vmlinux 0x43a656d9 devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0x43a731ea klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0x43d1489b usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL vmlinux 0x43d93aff blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x44296a37 skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44889751 dm_put
+EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x44e84eba usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x45199a94 hwmon_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x4539fd63 __dma_request_channel
+EXPORT_SYMBOL_GPL vmlinux 0x454d5a8b wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list
+EXPORT_SYMBOL_GPL vmlinux 0x4590aafa crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x45a4afdd acpi_atomic_read
+EXPORT_SYMBOL_GPL vmlinux 0x45a88b20 platform_get_resource_byname
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45c153c9 pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0x45c6de24 klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x45f0c2d8 transport_configure_device
+EXPORT_SYMBOL_GPL vmlinux 0x46599662 usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x46bbb1c6 eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0x476ab9e5 spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0x47a39836 regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size
+EXPORT_SYMBOL_GPL vmlinux 0x48be5c89 crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x49234e19 wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x49559aa3 crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue
+EXPORT_SYMBOL_GPL vmlinux 0x49b34062 tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0x49cebaaa blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x4a1e2923 blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0x4a460426 tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x4a533d83 get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0x4a824fdc acpi_get_pci_dev
+EXPORT_SYMBOL_GPL vmlinux 0x4ac25e37 blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x4adb605f fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0x4aef597a fb_ddc_read
+EXPORT_SYMBOL_GPL vmlinux 0x4b729cb5 regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0x4b877d8e debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0x4bb8850d blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x4bbf2002 usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x4bdde4b9 fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0x4bfb2231 da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0x4c19da42 blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c999cad ia64_itr_entry
+EXPORT_SYMBOL_GPL vmlinux 0x4cd74e03 ring_buffer_overruns
+EXPORT_SYMBOL_GPL vmlinux 0x4d817b40 bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0x4e3e076b scsi_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x4ecfa605 __fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0x4eeda35a skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0x4f3b0ead mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0x4f4bb159 regulator_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x4fc56cce iommu_detach_device
+EXPORT_SYMBOL_GPL vmlinux 0x5000b75d generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0x500a765c usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0x504d8eb0 device_schedule_callback_owner
+EXPORT_SYMBOL_GPL vmlinux 0x5051ba90 show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched
+EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x5113194f skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0x517005b6 pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0x51a095d6 crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0x51a0c0c2 drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0x51bb2af0 ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0x522d7a5f elv_register
+EXPORT_SYMBOL_GPL vmlinux 0x526d530a pm_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x5283e031 inet_diag_register
+EXPORT_SYMBOL_GPL vmlinux 0x52895a22 account_system_vtime
+EXPORT_SYMBOL_GPL vmlinux 0x52920df4 usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0x52f9dc88 ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0x53297ba9 fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0x534a1ecc pci_ioremap_bar
+EXPORT_SYMBOL_GPL vmlinux 0x536759f2 klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x5372dede unregister_acpi_bus_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5402d2cd sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54ebe347 sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0x54f14e0b usb_enable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x55857de3 fuse_file_poll
+EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status
+EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after
+EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen
+EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk
+EXPORT_SYMBOL_GPL vmlinux 0x569eb4f0 pcap_adc_sync
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x56ecb574 dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0x574c201f dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0x578169a4 fib_rules_cleanup_ops
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x580bb04f regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0x58416d1e fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x58652ab0 platform_device_register_data
+EXPORT_SYMBOL_GPL vmlinux 0x58de6d05 hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0x595f48e3 i2c_new_dummy
+EXPORT_SYMBOL_GPL vmlinux 0x59d6650e relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x5a2640ad inode_add_to_lists
+EXPORT_SYMBOL_GPL vmlinux 0x5a455c3e usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0x5a704d20 sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5a8074ac dm_device_name
+EXPORT_SYMBOL_GPL vmlinux 0x5a81659e cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL vmlinux 0x5ad20436 enable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x5ada1d2b cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x5adbcfda regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0x5b3d6004 unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x5b57bc2b debugfs_create_u32
+EXPORT_SYMBOL_GPL vmlinux 0x5bc8c259 inotify_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x5bcc1945 crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5c2a5616 anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0x5c487a2f rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x5c577174 spi_sync
+EXPORT_SYMBOL_GPL vmlinux 0x5c5b0206 transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0x5c6281c5 wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x5c8cd8d6 debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x5c9d48e5 __cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table
+EXPORT_SYMBOL_GPL vmlinux 0x5d640748 usb_sg_wait
+EXPORT_SYMBOL_GPL vmlinux 0x5d646900 cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d87c067 register_acpi_bus_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5d8ce551 i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x5d91224d acpi_ec_remove_query_handler
+EXPORT_SYMBOL_GPL vmlinux 0x5db8fab7 crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5ebd7944 spi_alloc_master
+EXPORT_SYMBOL_GPL vmlinux 0x5ec50fea crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x5efb3711 spi_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x5f037921 disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x5f5ade80 crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0x5f61c7ed shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x5f70a1ad regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x5f95aab6 sn_acpi_rev
+EXPORT_SYMBOL_GPL vmlinux 0x5f9ff739 __put_net
+EXPORT_SYMBOL_GPL vmlinux 0x5fc56639 pm_request_resume
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x5ff2093d __fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0x606d52fb smp_call_function_any
+EXPORT_SYMBOL_GPL vmlinux 0x6083dfe7 platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x608f8385 led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x60aee4cc hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0x61509f14 crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x615a3a96 eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x61870150 hwmon_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x61bfd202 __sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0x61c95ec1 invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0x62036f39 usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x62346998 inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x62951d71 led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep
+EXPORT_SYMBOL_GPL vmlinux 0x62a16bf6 class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x62a4c559 usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x62c9de5a alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x630667ba vma_kernel_pagesize
+EXPORT_SYMBOL_GPL vmlinux 0x633ccb8a scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0x63809327 usb_store_new_id
+EXPORT_SYMBOL_GPL vmlinux 0x63942c80 sysfs_notify_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x63a37f08 rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x63ceaf61 class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0x63e1cf7e securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x63f95d12 device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x643ffcb7 input_ff_create
+EXPORT_SYMBOL_GPL vmlinux 0x645b5419 inotify_init
+EXPORT_SYMBOL_GPL vmlinux 0x6494d923 aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x64a4d685 devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0x64c49391 wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x64d07e85 scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x651824bf part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq
+EXPORT_SYMBOL_GPL vmlinux 0x6561833b pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL vmlinux 0x657a2621 regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0x65959fe6 aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0x65bdee20 spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65d1c4d5 pci_scan_child_bus
+EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x6639dffb __lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x66954941 da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x671a9a4e rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x67f6eaff fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0x68034afb inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0x68110b8e each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x681e97fb do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x68766601 pcap_adc_async
+EXPORT_SYMBOL_GPL vmlinux 0x68f1f64f tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0x69557dfc lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0x697337f4 synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x69789edc n_tty_inherit_ops
+EXPORT_SYMBOL_GPL vmlinux 0x69b44a54 rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x69e5bb2b crypto_alg_sem
+EXPORT_SYMBOL_GPL vmlinux 0x6a0722c7 kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x6a174a17 devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0x6a31b2b5 proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x6a64fc77 tc35892_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x6a724875 ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0x6a8bb155 unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid
+EXPORT_SYMBOL_GPL vmlinux 0x6ad0d73f disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0x6ae6fd82 __i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0x6b14bbb3 unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0x6b15062d __ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x6b189553 ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b8a87b9 __set_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x6bc6922c apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0x6bd0a7d1 register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x6c11c9c8 disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x6c1e13f9 regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x6c5f4767 blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6cb0d718 inotify_add_watch
+EXPORT_SYMBOL_GPL vmlinux 0x6cd2c800 hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0x6cf102b1 br_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d428a59 __atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x6d6c31da mmput
+EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x6e27accb __blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0x6e52cfc2 power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x6e818ff3 ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x6ed85f40 hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x6eeb18b5 crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x6fb41752 dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0x6fb88d80 bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x700faada usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0x700ff78d kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x701e5705 generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x703aea71 tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x704778c4 sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr
+EXPORT_SYMBOL_GPL vmlinux 0x70bc6130 blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL vmlinux 0x70e6fa75 debugfs_create_u64
+EXPORT_SYMBOL_GPL vmlinux 0x710abfb3 register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x71cfd8fb __create_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0x71eb3a99 usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0x7232eb96 sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x72536b0d transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0x72708759 usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x72cb4cac sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0x72e829fc tc35892_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x738e958d platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0x73b2a540 tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x73ee44ce register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x74188a68 usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0x74566a61 css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x7486c582 usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read
+EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register
+EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74d1878d pm_runtime_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x74e78eaf empty_zero_page
+EXPORT_SYMBOL_GPL vmlinux 0x757ce68f adp5520_read
+EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x75a3e901 css_depth
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x760ee1d2 bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x761d6a4f crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0x7659d644 __get_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x765c45d6 fuse_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0x768c1261 attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0x76c732d4 scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x76c8d572 __scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0x76d2706f rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0x76de15d2 usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x7704d0be pci_restore_msi_state
+EXPORT_SYMBOL_GPL vmlinux 0x7712fc65 vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x77617d7e dm_dispatch_request
+EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0x77f1e0da __rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x78402e0b usb_match_id
+EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x78485417 get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0x784b68eb usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0x78951092 platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x789acd66 arch_fix_phys_package_id
+EXPORT_SYMBOL_GPL vmlinux 0x78b6226f crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x78e7ff33 acpi_post_unmap_gar
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x7961bc90 security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0x796ec3a1 __ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0x797c34ce tc35892_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x79f50107 hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0x79ff2399 dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x7a57ff0a srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x7a8ee959 driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x7a9c85b5 xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0x7a9d1526 inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr
+EXPORT_SYMBOL_GPL vmlinux 0x7ae68012 spi_write_then_read
+EXPORT_SYMBOL_GPL vmlinux 0x7b4b9421 device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0x7bf45f8d __class_create
+EXPORT_SYMBOL_GPL vmlinux 0x7bf87d56 register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x7cd8afc8 inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x7d5835eb bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq
+EXPORT_SYMBOL_GPL vmlinux 0x7d5c4306 ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x7d5e8ea5 devres_add
+EXPORT_SYMBOL_GPL vmlinux 0x7d611332 cpufreq_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x7d67743a dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0x7da57fa5 blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0x7da80155 inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values
+EXPORT_SYMBOL_GPL vmlinux 0x7dbaa712 usb_set_device_state
+EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7dcbda4c crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ddced17 get_device
+EXPORT_SYMBOL_GPL vmlinux 0x7e0f971e raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7e7d3844 platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x7e87ad1b ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0x7e91c990 cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x7eb0e193 vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0x7eb8e61e sysdev_class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x7f217ec9 __srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x801ebdf1 eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission
+EXPORT_SYMBOL_GPL vmlinux 0x803cc338 get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0x806a727b aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x806e6edc cpufreq_frequency_table_target
+EXPORT_SYMBOL_GPL vmlinux 0x807fab92 inotify_find_update_watch
+EXPORT_SYMBOL_GPL vmlinux 0x8083a9b2 driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x809872a8 pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0x80998e4c class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x80b85c45 acpi_pci_find_root
+EXPORT_SYMBOL_GPL vmlinux 0x80c99287 cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0x80d994e3 regulator_get_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc
+EXPORT_SYMBOL_GPL vmlinux 0x811bd401 ring_buffer_record_enable
+EXPORT_SYMBOL_GPL vmlinux 0x81bbd38c alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x81c4d599 device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x81c9f5d7 debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x81dda93b free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0x82280cf6 regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x829a3061 scsi_target_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x82afdd8b crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0x82b765a6 pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x83201504 unregister_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x833062a8 adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge
+EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x84953f4e inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0x84fa1076 add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x851960fc leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x853bf804 wm8350_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x8570bb81 find_module
+EXPORT_SYMBOL_GPL vmlinux 0x85918457 user_read
+EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh
+EXPORT_SYMBOL_GPL vmlinux 0x8653b1c3 kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x8657fd5a platform_device_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x86af23a8 user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x86cfb37e ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x86e6a4f7 get_driver
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x8704591e __pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0x87190ba5 crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x8734a67f seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x875f014f __class_register
+EXPORT_SYMBOL_GPL vmlinux 0x876f8f88 relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x878e54a1 device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x87acc277 cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x87e6ef6e srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x883c16fc power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0x883cea6a __mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0x883e10c7 ab8500_read
+EXPORT_SYMBOL_GPL vmlinux 0x884239f2 i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x884bdbfd pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x89648e88 simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0x89b061fd rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0x89ce8abe __pm_runtime_set_status
+EXPORT_SYMBOL_GPL vmlinux 0x89dfe237 usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x8a925ed1 ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x8ab5312f task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x8b07bcda driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x8b2e7fb9 tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0x8b3fdb57 irq_set_affinity_hint
+EXPORT_SYMBOL_GPL vmlinux 0x8b4fb15b attribute_container_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8b58323b xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0x8bb354a9 usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0x8be54b03 sysdev_class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x8c0bb314 dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0x8c4b63dd user_describe
+EXPORT_SYMBOL_GPL vmlinux 0x8c6433be kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x8c84731a i2c_new_probed_device
+EXPORT_SYMBOL_GPL vmlinux 0x8d201514 is_multithreading_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x8d5ad4ec rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x8d95ab06 tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0x8dae2c5e put_pid
+EXPORT_SYMBOL_GPL vmlinux 0x8dbac4e5 class_dev_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x8e6bb1ea pci_bus_resource_n
+EXPORT_SYMBOL_GPL vmlinux 0x8eaae818 inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0x8ee4fc88 usb_driver_release_interface
+EXPORT_SYMBOL_GPL vmlinux 0x8f47e706 posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8f6d7c91 rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8fcc1727 driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x8ffbd5a1 ezx_pcap_read
+EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd
+EXPORT_SYMBOL_GPL vmlinux 0x900b22df skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x902093f6 default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x90692aba pm_schedule_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90f62d3d ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x91839656 driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x919071b2 usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0x91e60e01 pci_destroy_slot
+EXPORT_SYMBOL_GPL vmlinux 0x92062cf3 usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0x9276ae35 crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0x92a1eddf debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92faa93a crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x930fafc3 disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x932da5ba bd_claim_by_disk
+EXPORT_SYMBOL_GPL vmlinux 0x9364b281 kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x93696afd __srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x946904fb debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0x948d2445 crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x956570c8 tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x962fcf4d sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x96320968 get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0x963fbd07 devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0x964d5c39 acpi_os_map_memory
+EXPORT_SYMBOL_GPL vmlinux 0x96549034 xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x96dab071 nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x97183def aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x971b24be skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x971c86d2 cpufreq_register_governor
+EXPORT_SYMBOL_GPL vmlinux 0x971f9880 usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x97682b9e fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x9825c240 __pm_runtime_get
+EXPORT_SYMBOL_GPL vmlinux 0x9844418f ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x986a6cd2 crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x98943733 sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x989f9a02 usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL vmlinux 0x9904c229 ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on
+EXPORT_SYMBOL_GPL vmlinux 0x998162ec devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x9991a2a8 skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0x9a090906 pcibios_fixup_device_resources
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a600cc9 noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x9ad67ed7 file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0x9ad913b4 bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0x9b1271f7 __wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0x9b1983ed __wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9bb44874 crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x9bca75b5 rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x9bf34fb9 __rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0x9bff87c6 usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0x9c0236c8 i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x9c25f011 usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x9c55575c spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0x9c920064 device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x9cb4226d device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9ceb6250 tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x9d3053a5 spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0x9d781e37 regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x9dec225d relay_close
+EXPORT_SYMBOL_GPL vmlinux 0x9e28094e tasklet_hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0x9eea9107 stop_machine
+EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain
+EXPORT_SYMBOL_GPL vmlinux 0x9f4caec5 add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0x9f92db31 acpi_processor_set_pdc
+EXPORT_SYMBOL_GPL vmlinux 0x9fb1747a led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL vmlinux 0x9fc70d6e find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x9ff9da32 spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xa08a1e95 regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0xa0fb7bd2 atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xa1254b07 ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xa193afb0 skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0xa2585c88 class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xa2841cb4 console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4
+EXPORT_SYMBOL_GPL vmlinux 0xa31af5e5 crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0xa33c3b53 usb_driver_set_configuration
+EXPORT_SYMBOL_GPL vmlinux 0xa39be4ab br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa473f278 queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0xa4cfac28 class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa4f649a8 tc35892_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xa51ad488 regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xa5382e2a platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa551396e ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0xa5a34aa3 __srcu_read_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xa5c2ffa4 udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes
+EXPORT_SYMBOL_GPL vmlinux 0xa5dd6d47 regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0xa5df1335 wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa61838e6 cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xa6be116e class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0xa72aa90e rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xa7467c31 inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xa755b41d regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0xa75a0c7f led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0xa768d80c wm8994_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0xa78f8872 hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL vmlinux 0xa7cfff64 register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0xa7fd591b pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0xa86b682c hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0xa9231bca cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0xa9315104 __rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0xa941541b debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0xa980edc9 crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0xa9ab6105 crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9c5ad9f power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0xa9e32286 fuse_request_send
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xaa6be1a5 fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0xaa808e38 fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock
+EXPORT_SYMBOL_GPL vmlinux 0xab042fdb pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0xab323bc4 do_add_mount
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xabaf4ec1 __root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xac2a7660 pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xace4ade2 __mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xacfaeefe xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0xad4f1a78 atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0xadc85133 driver_find
+EXPORT_SYMBOL_GPL vmlinux 0xadcfa26f led_trigger_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae53b5d3 pci_create_slot
+EXPORT_SYMBOL_GPL vmlinux 0xae728963 usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0xaeb1bc48 blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xaf079dd2 driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xaf27c7f3 fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0xafaa5222 platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0xafe845e8 iommu_attach_device
+EXPORT_SYMBOL_GPL vmlinux 0xb02865f3 wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xb14ed20b usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb1bb625f tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0xb1c6a42f usb_autopm_put_interface
+EXPORT_SYMBOL_GPL vmlinux 0xb2030832 disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xb2b1d585 pci_bus_max_busnr
+EXPORT_SYMBOL_GPL vmlinux 0xb2b71d70 sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0xb2ea6dfa generic_subsys_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0xb32c7ba5 devm_kfree
+EXPORT_SYMBOL_GPL vmlinux 0xb34df4cc sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0xb3d5eab7 acpi_atomic_write
+EXPORT_SYMBOL_GPL vmlinux 0xb400f8ee inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0xb407bf1f sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xb47f3427 crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0xb49caabf dma_release_channel
+EXPORT_SYMBOL_GPL vmlinux 0xb4ac9caa blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0xb4b3e0d3 kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0xb5053b91 raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0xb506929c power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL vmlinux 0xb521b598 fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL vmlinux 0xb53ae573 cpu_idle_wait
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xb5cf4768 ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xb5d984b8 led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0xb6059ec4 sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0xb612444d snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0xb638cf97 security_inode_setattr
+EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec
+EXPORT_SYMBOL_GPL vmlinux 0xb6a9f25f pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xb6f5800d ezx_pcap_write
+EXPORT_SYMBOL_GPL vmlinux 0xb72e3d7a pci_disable_rom
+EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb7456067 tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0xb7d56de6 bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb7fbab1b usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xb7fe3cb5 usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xb876405b sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0xb8a35181 class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xb8a6d32d crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0xb91998d9 pm_request_idle
+EXPORT_SYMBOL_GPL vmlinux 0xb94d2c17 usb_anchor_empty
+EXPORT_SYMBOL_GPL vmlinux 0xb95b4995 raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0xb97d7f90 xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0xb9ba0852 device_attach
+EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xba396c3e __inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0xba980b94 blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks
+EXPORT_SYMBOL_GPL vmlinux 0xbb325e40 blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0xbb727f99 dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL vmlinux 0xbb737dac inotify_init_watch
+EXPORT_SYMBOL_GPL vmlinux 0xbbaa27da regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0xbbcf707d page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0xbbcf7acf regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0xbbed70a1 sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0xbc42ecc3 inotify_remove_watch_locked
+EXPORT_SYMBOL_GPL vmlinux 0xbcafa6e8 spi_unregister_master
+EXPORT_SYMBOL_GPL vmlinux 0xbcba2e1f sysfs_remove_files
+EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xbd52289c proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime
+EXPORT_SYMBOL_GPL vmlinux 0xbe3a492c power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0xbf0553fc sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0xbf0f3b5f queue_work_on
+EXPORT_SYMBOL_GPL vmlinux 0xbf29ae31 inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0xbf4ebb1d unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xbf675d35 sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xbf740334 crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xbf89cf61 find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xbfeeff8d pm_runtime_forbid
+EXPORT_SYMBOL_GPL vmlinux 0xc040bc73 mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0xc06539c9 regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xc07d8395 blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xc0949cec rtc_class_close
+EXPORT_SYMBOL_GPL vmlinux 0xc0b8d998 class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time
+EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc127fa26 acpi_pre_map_gar
+EXPORT_SYMBOL_GPL vmlinux 0xc16a5abb fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc1814d4a unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xc19c7631 usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc1e6167e usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0xc2000b57 swiotlb_unmap_page
+EXPORT_SYMBOL_GPL vmlinux 0xc2184128 devres_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xc21924ab da903x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc2b1ef5d __crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xc2cc8caa usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0xc2e28146 fsnotify
+EXPORT_SYMBOL_GPL vmlinux 0xc303021a root_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc3272b74 ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xc3281918 disk_map_sector_rcu
+EXPORT_SYMBOL_GPL vmlinux 0xc33de512 devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc36be7f7 kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xc37004db rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc37209d3 sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0xc38e2139 sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc3bf7c28 device_create
+EXPORT_SYMBOL_GPL vmlinux 0xc3f00468 __css_put
+EXPORT_SYMBOL_GPL vmlinux 0xc4117318 kill_pid_info_as_uid
+EXPORT_SYMBOL_GPL vmlinux 0xc43a6ba7 da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0xc466ec02 crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0xc495799f inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xc50bbb4a simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0xc5383dc9 pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0xc670eafb get_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0xc6735de8 usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0xc6b8ce13 usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc6e21723 usb_poison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xc7491f93 usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0xc757372c tc35892_block_read
+EXPORT_SYMBOL_GPL vmlinux 0xc760ec42 da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xc769c7b1 wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xc82f1436 usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event
+EXPORT_SYMBOL_GPL vmlinux 0xc8fe2798 sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource
+EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist
+EXPORT_SYMBOL_GPL vmlinux 0xc958c7a3 shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0xc96fc782 __blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xc9858949 queue_work
+EXPORT_SYMBOL_GPL vmlinux 0xc9e3f196 __blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xca175ad6 securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0xca1a5dff add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0xca4317eb __pm_runtime_disable
+EXPORT_SYMBOL_GPL vmlinux 0xca5a1c9d uhci_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0xca8e3138 crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xcaf9b750 fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xcb66221b blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xcb8249e7 __blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xcb8fd0cb xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0xcb922af0 skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc211bdb sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0xcc2e395d __uv_hub_info
+EXPORT_SYMBOL_GPL vmlinux 0xcc4bd565 ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device
+EXPORT_SYMBOL_GPL vmlinux 0xcc975a30 task_current_syscall
+EXPORT_SYMBOL_GPL vmlinux 0xcca2a7db inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0xcccb0a95 scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0xcd0c0e70 put_device
+EXPORT_SYMBOL_GPL vmlinux 0xcd17ed06 page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0xcd1ca2cb iommu_domain_has_cap
+EXPORT_SYMBOL_GPL vmlinux 0xcd56db8f kick_process
+EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xcddbd132 relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0xcddc12fa rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0xce29c95d xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0xce383fd1 tty_prepare_flip_string_flags
+EXPORT_SYMBOL_GPL vmlinux 0xce563f93 device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0xce68f727 pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0xce7222a5 rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xce7d4a24 fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0xce830904 zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0xce9fa77c ring_buffer_resize
+EXPORT_SYMBOL_GPL vmlinux 0xcebdb282 kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xcec71b0c tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0xcecd6b5e fuse_do_open
+EXPORT_SYMBOL_GPL vmlinux 0xcf586bf9 kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcffe4010 __sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0xd025bf26 sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL vmlinux 0xd0782f3c generic_fh_to_parent
+EXPORT_SYMBOL_GPL vmlinux 0xd0a18d12 pci_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0xd0a7a797 input_ff_erase
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd10973fb adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xd129bfe1 tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0xd14ac857 xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd20529ff register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xd2249d26 usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd22bb3c1 usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd27e91fa netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xd30cce40 usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL vmlinux 0xd31066f7 usb_disable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0xd375c8dc usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0xd3b5865f fuse_direct_io
+EXPORT_SYMBOL_GPL vmlinux 0xd3fb9b60 usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0xd411eb2b crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0xd457b4d8 set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0xd46c6aed __module_address
+EXPORT_SYMBOL_GPL vmlinux 0xd470bb12 adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xd47636c4 blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xd478c5f7 __inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0xd4e3a14c crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xd4ee2517 scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0xd5a127d8 dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0xd5a3a27d find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0xd6227477 usb_string
+EXPORT_SYMBOL_GPL vmlinux 0xd624d83f regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0xd6869bf4 dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0xd699113e pci_dev_run_wake
+EXPORT_SYMBOL_GPL vmlinux 0xd6d2a672 unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout
+EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd743911a ia64_sal_freq_base
+EXPORT_SYMBOL_GPL vmlinux 0xd7524560 crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xd7598a61 platform_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd77833c2 crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd79b3d8f usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0xd7d34c0b anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0xd85a190a simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0xd86e317d blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0xd8a02163 put_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0xd8cc8366 vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0xd997c041 debugfs_create_bool
+EXPORT_SYMBOL_GPL vmlinux 0xd9e1c0f0 ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xda0f223e crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL vmlinux 0xda3a096c register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xda4f7684 usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xda51ce85 ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdb393b42 fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xdbffc5c1 sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0xdc357999 locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0xdc3e7e18 debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0xdc5ffe7e vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0xdc657a90 crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xdc840ed0 crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0xdcd42666 iommu_unmap
+EXPORT_SYMBOL_GPL vmlinux 0xdcdc045f free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xdcdc313e class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xdd43e0fa rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0xdd58cf1d crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0xdd5b7464 ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xdd913d09 pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0xdda75b3b da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain
+EXPORT_SYMBOL_GPL vmlinux 0xde541f36 scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0xdf4f0e30 wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name
+EXPORT_SYMBOL_GPL vmlinux 0xe01d1bde usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0xe06a4d7d device_rename
+EXPORT_SYMBOL_GPL vmlinux 0xe089fa95 skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xe0b97dc3 usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xe18896b3 register_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0xe1988ebd usb_bus_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0xe1c3e647 crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0xe1fb422f dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0xe270ac5e usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xe29ab065 pm_runtime_allow
+EXPORT_SYMBOL_GPL vmlinux 0xe3d65517 pcap_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe3e1f28b unregister_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0xe42c09b9 ia64_dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0xe4925b5d security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xe4bf9367 klist_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xe4ed8d3f crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0xe5333c8a use_mm
+EXPORT_SYMBOL_GPL vmlinux 0xe54c9102 vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0xe561378c dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0xe57b9ed1 srcu_init_notifier_head
+EXPORT_SYMBOL_GPL vmlinux 0xe596a898 device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xe5a85077 sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0xe5e2a86e crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0xe5e9a841 cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0xe60927b8 inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0xe628d288 wm831x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xe6425414 driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe64719a7 uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition
+EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe66769f3 dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0xe6c1c07f relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe6fde45f cpufreq_cpu_put
+EXPORT_SYMBOL_GPL vmlinux 0xe7282d2c crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xe74713b2 fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0xe74a252e inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0xe762b7c9 rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xe7883c94 tty_put_char
+EXPORT_SYMBOL_GPL vmlinux 0xe79819a9 crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xe7d330f1 input_ff_upload
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr
+EXPORT_SYMBOL_GPL vmlinux 0xe8adbe30 rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xe8b5e866 ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0xe93c134c pci_block_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe98a9194 platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0xe98f8e44 register_posix_clock
+EXPORT_SYMBOL_GPL vmlinux 0xe9eebdf9 ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0xea03777c usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea08a2b6 klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea1f7b7f __pci_complete_power_transition
+EXPORT_SYMBOL_GPL vmlinux 0xea72685c usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0xeaddb5cc bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeb129680 cpufreq_frequency_table_cpuinfo
+EXPORT_SYMBOL_GPL vmlinux 0xeb277535 bus_register
+EXPORT_SYMBOL_GPL vmlinux 0xeb599927 spi_async
+EXPORT_SYMBOL_GPL vmlinux 0xec09505a xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del
+EXPORT_SYMBOL_GPL vmlinux 0xec580c27 pcap_set_ts_bits
+EXPORT_SYMBOL_GPL vmlinux 0xec65a8d8 da903x_write
+EXPORT_SYMBOL_GPL vmlinux 0xec69e739 regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xec98e232 inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0xecb73ed4 devres_find
+EXPORT_SYMBOL_GPL vmlinux 0xecf81fc8 sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0xed1b2f6c led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0xedb248af wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0xedb60518 wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0xedf70435 usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0xee1c4375 inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0xee4b8170 ia64_ptr_entry
+EXPORT_SYMBOL_GPL vmlinux 0xee526703 queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0xee6e0c15 fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xee846e04 tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0xeea1b015 crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xeec734f9 xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0xeeddb273 device_move
+EXPORT_SYMBOL_GPL vmlinux 0xeee0fb8e ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xeef35e23 init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xefa75d2c sysfs_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xf0349018 bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0xf071da03 rt_mutex_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xf08aecfa usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xf13c1efc hrtimer_start
+EXPORT_SYMBOL_GPL vmlinux 0xf1683cdb fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf18f2b13 usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xf1a3cc8b __clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0xf242aca9 fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0xf2684bd4 crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0xf28f9975 sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xf2ae53bf user_match
+EXPORT_SYMBOL_GPL vmlinux 0xf2f78f7d device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xf2ffd8bd dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0xf30a634e init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xf346223b sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf3e036a5 fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0xf3fb0dd5 init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0xf44e6681 rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf4a8385f iommu_domain_free
+EXPORT_SYMBOL_GPL vmlinux 0xf54850e2 crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf56d1c11 srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf5a8a464 devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0xf5d2996e firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xf5ea8d06 rtnl_kill_links
+EXPORT_SYMBOL_GPL vmlinux 0xf61064b0 relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0xf62a76ab bd_release_from_disk
+EXPORT_SYMBOL_GPL vmlinux 0xf67d1036 ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0xf68e8980 usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0xf6d3366e vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0xf73c3d26 eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0xf753ce26 cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0xf75dd5b2 usb_hc_died
+EXPORT_SYMBOL_GPL vmlinux 0xf77627db mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0xf7825937 tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0xf78f3846 debugfs_create_x64
+EXPORT_SYMBOL_GPL vmlinux 0xf7fcfa6d inotify_rm_wd
+EXPORT_SYMBOL_GPL vmlinux 0xf81e8081 __module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0xf839ba69 skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xf84a3b1f eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0xf878cd99 raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xf91a24a7 sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xf932b01a tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0xf95f9aa2 inotify_inode_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0xf96600a9 pm_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match
+EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0xf9f27c1d regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfa1cc34a shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0xfa735b78 mca_recover_range
+EXPORT_SYMBOL_GPL vmlinux 0xfa884c56 bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0xfa8c4c88 mm_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xfaa30cbd wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0xfacf7542 get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0xfaf59b40 wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xfb00e71d tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb35897d sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0xfb393cbe transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0xfb6a80b1 pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0xfb8c106f xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0xfbac3b72 register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xfbccd8a5 usb_get_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfc3d4ce1 inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0xfc697592 sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xfc8cd059 set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL vmlinux 0xfcdb458a user_update
+EXPORT_SYMBOL_GPL vmlinux 0xfd39e404 regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xfd3af41d inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0xfd44823f class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0xfd4bb857 class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xfd546f2a platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xfd58f4fb usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0xfd64ed1e platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0xfd903d81 da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfdac66f2 ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfecf34a5 debugfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0xff3cd5c5 crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0xff43b8b0 __pm_runtime_put
+EXPORT_SYMBOL_GPL vmlinux 0xff6e5a5d usb_ifnum_to_if
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock
diff --git a/debian.master/abi/2.6.35-2.3/ia64/ia64.modules b/debian.master/abi/2.6.35-2.3/ia64/ia64.modules
new file mode 100644
index 00000000000..e0c27db5f22
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/ia64/ia64.modules
@@ -0,0 +1,2285 @@
+3c359
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+6pack
+8021q
+8139cp
+8139too
+8250
+8250_pci
+8250_pnp
+8390
+88pm860x_bl
+88pm860x_onkey
+88pm860x-ts
+9p
+9pnet
+9pnet_rdma
+a100u2w
+a3d
+aacraid
+ab3100
+ab3100-otp
+abyss
+ac97_bus
+acecad
+acenic
+act200l-sir
+act_gact
+act_ipt
+actisys-sir
+act_mirred
+act_nat
+act_pedit
+act_police
+act_simple
+act_skbedit
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7414
+ad7418
+ad7877
+ad7879
+adcxx
+adfs
+adi
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm8211
+adm9240
+adp5520_bl
+adp5520-keys
+adp5588-keys
+adp8860_bl
+ads7846
+ads7871
+adt7411
+adt7462
+adt7470
+adt7475
+adutux
+adv7170
+adv7175
+adv7180
+adv7343
+advansys
+aes_generic
+af_802154
+af9013
+affs
+af_key
+af-rxrpc
+agpgart
+ah4
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aiptek
+aircable
+airo
+airo_cs
+ak881x
+alauda
+altera_jtaguart
+altera_ps2
+altera_uart
+ambassador
+amc6821
+amd8111e
+analog
+ansi_cprng
+anubis
+aoe
+appledisplay
+appletalk
+appletouch
+applicom
+ar7part
+ar9170usb
+arc4
+arcmsr
+arcnet
+arc-rawmode
+arc-rimi
+ark3116
+arkfb
+arptable_filter
+arp_tables
+arpt_mangle
+asc7621
+asix
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+ata_generic
+ata_piix
+atbm8830
+aten
+ath
+ath3k
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atm
+atmel
+atmel_cs
+atmel_pci
+atmtcp
+atp870u
+atxp1
+aty128fb
+atyfb
+au0828
+au8522
+authenc
+auth_rpcgss
+autofs
+autofs4
+avmfritz
+ax25
+axnet_cs
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcm203x
+bcm3510
+bcm5974
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfs
+bfusb
+binfmt_misc
+block2mtd
+blowfish
+bluecard_cs
+bluetooth
+bnep
+bnx2
+bnx2i
+bnx2x
+bpa10x
+bpck
+bpqether
+bq24022
+bq27x00_battery
+br2684
+bridge
+broadcom
+broadsheetfb
+bsd_comp
+bt3c_cs
+bt819
+bt856
+bt866
+bt878
+btcx-risc
+btmrvl
+btmrvl_sdio
+btrfs
+btsdio
+bttv
+btuart_cs
+btusb
+button
+bw-qcam
+c67x00
+cachefiles
+cafe_ccic
+cafe_nand
+caif
+caif_serial
+caif_socket
+camellia
+can
+can-bcm
+can-dev
+can-raw
+capmode
+carminefb
+cassini
+cast5
+cast6
+catc
+cb710
+cb710-mmc
+cciss
+cdc-acm
+cdc_eem
+cdc_ether
+cdc-phonet
+cdc_subset
+cdc-wdm
+cdrom
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+ch
+ch341
+chipreg
+chnl_net
+cicada
+cifs
+cirrusfb
+clip
+cls_basic
+cls_flow
+cls_fw
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cn
+cnic
+cobra
+coda
+com20020
+com20020_cs
+com20020-pci
+com90io
+com90xx
+comm
+configfs
+container
+core
+cp210x
+cpia
+cpia2
+cpia_pp
+cpia_usb
+cpqarray
+cpufreq_stats
+cpu-notifier-error-inject
+c-qcam
+cramfs
+crc32c
+crc7
+crc-ccitt
+crc-itu-t
+crc-t10dif
+cryptd
+cryptoloop
+crypto_null
+cs5345
+cs53l32a
+cts
+cuse
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24123
+cx25840
+cx8800
+cx8802
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx88xx
+cxacru
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cyber2000fb
+cyberjack
+cyclades
+cyclomx
+cycx_drv
+cypress_cy7c63
+cypress_m8
+cytherm
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+DAC960
+davicom
+db9
+dc395x
+de2104x
+de4x5
+de600
+de620
+decnet
+deflate
+defxx
+denali
+des_generic
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dibx000_common
+digi_acceleport
+diskonchip
+display
+dl2k
+dlci
+dlm
+dm1105
+dm9601
+dm-crypt
+dme1737
+dmfe
+dm-log
+dm-mirror
+dm-multipath
+dm-queue-length
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dmx3191d
+dm-zero
+dnet
+dn_rtmsg
+doc2000
+doc2001
+doc2001plus
+docecc
+docprobe
+dpt_i2o
+drm
+drm_kms_helper
+ds1621
+ds1682
+ds2482
+ds2490
+ds2760_battery
+ds2782_battery
+ds3000
+dsbr100
+dscc4
+dst
+dst_ca
+dstr
+dtl1_cs
+dummy
+dv1394
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dw2102
+dvb-usb-friio
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-m920x
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dw_spi_pci
+dynapro
+e100
+e1000
+e1000e
+earth-pt1
+econet
+eeprom
+eeprom_93cx6
+eeti_ts
+efivars
+efs
+elo
+em28xx
+em28xx-dvb
+emc1403
+em_cmp
+emi26
+emi62
+em_meta
+em_nbyte
+empeg
+ems_pci
+ems_usb
+em_text
+emu10k1-gp
+em_u32
+eni
+enic
+epat
+epca
+epia
+epic100
+eql
+esi-sir
+esp4
+et1011c
+et61x251
+eth1394
+ethoc
+evbug
+evdev
+exofs
+exportfs
+f71805f
+f71882fg
+f75375s
+fan
+farsync
+fat
+faulty
+fb_sys_fops
+fcoe
+fcrypt
+fdomain
+fdomain_cs
+fealnx
+ff-memless
+firedtv
+firestream
+fit2
+fit3
+fm801-gp
+fmvj18x_cs
+forcedeth
+fore_200e
+freevxfs
+friq
+frpw
+fscache
+ftdi-elan
+ftdi_sio
+ftl
+fujitsu_ts
+funsoft
+g760a
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+g_audio
+g_cdc
+generic
+generic_bl
+gen_probe
+g_ether
+gf128mul
+gf2k
+g_ffs
+g_file_storage
+gfs2
+ghash-generic
+g_hid
+girbil-sir
+gl518sm
+gl520sm
+gl620a
+gluebi
+g_mass_storage
+g_midi
+g_nokia
+g_printer
+grip
+grip_mp
+g_serial
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_stk014
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_tv8532
+gspca_vc032x
+gspca_zc3xx
+gtco
+guillemot
+gunze
+g_webcam
+g_zero
+hamachi
+hampshire
+hangcheck-timer
+hci_uart
+hci_vhci
+hdlc
+hdlc_cisco
+hdlcdrv
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdpvr
+he
+hed
+hexium_gemini
+hexium_orion
+hfs
+hfsplus
+hid
+hid-3m-pct
+hid-a4tech
+hid-apple
+hid-belkin
+hid-cando
+hid-cherry
+hid-chicony
+hid-cypress
+hid-drff
+hid-egalax
+hid-ezkey
+hid-gaff
+hid-gyration
+hid-kensington
+hid-kye
+hid-logitech
+hid-magicmouse
+hid-microsoft
+hid-monterey
+hid-mosart
+hid-ntrig
+hid-ortek
+hidp
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-prodikeys
+hid-quanta
+hid-roccat
+hid-roccat-kone
+hid-samsung
+hid-sjoy
+hid-sony
+hid-stantum
+hid-sunplus
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-wacom
+hid-zpff
+hid-zydacron
+hopper
+horizon
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hp100
+hp4x
+hp_accel
+hpfs
+hpilo
+hpsa
+hptiop
+hso
+htc-pasic3
+hwa-hc
+hwa-rc
+hwmon-vid
+i1480-dfu-usb
+i1480-est
+i1480u-wlp
+i2400m
+i2400m-sdio
+i2400m-usb
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd8111
+i2c-dev
+i2c-i801
+i2c-isch
+i2c-matroxfb
+i2c-nforce2
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-scmi
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-xiic
+i2o_block
+i2o_bus
+i2o_config
+i2o_core
+i2o_proc
+i2o_scsi
+i5k_amb
+i82092
+ib_addr
+ib_cm
+ib_core
+ib_ipoib
+ib_mad
+ibmcam
+ib_mthca
+ibmtr_cs
+ib_qib
+ib_sa
+icplus
+ics932s401
+idmouse
+idt77252
+ieee1394
+ieee802154
+ifb
+iforce
+igbvf
+ili9320
+imm
+imon
+inexio
+initio
+input-polldev
+int51x1
+intel-rng
+intel_vr_nor
+interact
+ioc3
+ioc4
+io_edgeport
+io_ti
+iowarrior
+ip2
+ip6_queue
+ip6table_filter
+ip6table_mangle
+ip6table_raw
+ip6_tables
+ip6table_security
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_LOG
+ip6t_mh
+ip6t_REJECT
+ip6t_rt
+ipaq
+ipcomp
+ipddp
+ip_gre
+iphase
+ipheth
+ipip
+ipr
+ips
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+ip_tables
+iptable_security
+ipt_addrtype
+ipt_ah
+ipt_CLUSTERIP
+ipt_ecn
+ipt_ECN
+ipt_LOG
+ipt_MASQUERADE
+ipt_NETMAP
+ipt_REDIRECT
+ipt_REJECT
+ipt_ULOG
+ipv6
+ip_vs
+ip_vs_dh
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_nq
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ipw
+ipw2100
+ipw2200
+ipx
+ircomm
+ir-common
+ircomm-tty
+ir-core
+irda
+irda-usb
+ir-jvc-decoder
+ir-kbd-i2c
+irlan
+ir-nec-decoder
+irnet
+ir-rc5-decoder
+ir-rc6-decoder
+ir-sony-decoder
+irtty-sir
+ir-usb
+iscsi_tcp
+isdn
+isdnhdlc
+isight_firmware
+isl29003
+isl6405
+isl6421
+isofs
+isp116x-hcd
+isp1362-hcd
+isp1760
+istallion
+it87
+iTCO_vendor_support
+iTCO_wdt
+itd1000
+iuu_phoenix
+ivtv
+ivtvfb
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwlagn
+iwlcore
+iwmc3200top
+iwmc3200wifi
+ixgb
+ixgbe
+ixgbevf
+ixj
+ixj_pcmcia
+janz-cmodio
+janz-ican3
+jedec_probe
+jffs2
+jfs
+jme
+joydev
+joydump
+jsm
+kafs
+kaweth
+kbic
+kbtab
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+khazad
+kingsun-sir
+kl5kusb105
+kobil_sct
+konicawc
+ks0108
+ks0127
+ks8842
+ks8851
+ks8851_mll
+ks959-sir
+ksdazzle-sir
+ksz884x
+ktti
+kvaser_pci
+kyrofb
+l2cap
+l2tp_core
+l2tp_debugfs
+l2tp_ppp
+l64781
+lanai
+lapb
+lapbether
+lcd
+ldusb
+lec
+led-class
+leds-88pm860x
+leds-adp5520
+leds-bd2802
+leds-da903x
+leds-dac124s085
+leds-lp3944
+leds-mc13783
+leds-pca9532
+leds-pca955x
+leds-regulator
+leds-ss4200
+leds-wm831x-status
+leds-wm8350
+ledtrig-backlight
+ledtrig-default-on
+ledtrig-heartbeat
+ledtrig-timer
+legousbtower
+lgdt3305
+lgdt330x
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libata
+libcrc32c
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libosd
+libsas
+libsrp
+lightning
+linear
+lis3lv02d
+lis3lv02d_i2c
+litelink-sir
+lkkbd
+llc2
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95241
+lmc
+lnbp21
+lockd
+loop
+lp
+lp3971
+lpc_sch
+lpddr_cmds
+lpfc
+lrw
+ltc4215
+ltc4245
+ltv350qv
+lxt
+lzo
+lzo_compress
+m25p80
+m52790
+ma600-sir
+mac80211
+mac80211_hwsim
+macmodes
+magellan
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+matroxfb_maven
+matrox_w1
+max1111
+max1586
+max1619
+max17040_battery
+max2165
+max3100
+max6650
+max6875
+max7359_keypad
+max8649
+max8660
+max8925_bl
+max8925_onkey
+max8925_power
+max8925-regulator
+mb862xxfb
+mb862xxfb_accel
+mb86a16
+mc13783-adc
+mc13783-core
+mc13783-regulator
+mc13783_ts
+mc44s803
+mcp2120-sir
+mcp251x
+mcs5000_ts
+mcs7780
+mcs7830
+mct_u232
+md4
+mdc800
+mdio
+mdio-bitbang
+md-mod
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mem2mem_testdev
+metronomefb
+mga
+michael_mic
+micrel
+microtek
+mii
+minix
+mISDN_core
+mISDNinfineon
+mISDNipac
+mISDNisar
+mk712
+mkiss
+mlx4_core
+mlx4_en
+mlx4_ib
+mmc_block
+mmc_core
+mmc_spi
+mos7720
+mos7840
+moto_modem
+moxa
+mpoa
+mpt2sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+msdos
+msp3400
+mt2060
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt9m001
+mt9m111
+mt9t031
+mt9t112
+mt9v011
+mt9v022
+mtd
+mtd_blkdevs
+mtdblock
+mtdblock_ro
+mtdchar
+mtdconcat
+mtd_dataflash
+mtd_nandecctest
+mtd_oobtest
+mtdoops
+mtd_pagetest
+mtdram
+mtd_readtest
+mtd_speedtest
+mtd_stresstest
+mtd_subpagetest
+mtd_torturetest
+mtouch
+multipath
+mwl8k
+mxl5005s
+mxl5007t
+myri10ge
+nand
+nand_ecc
+nand_ids
+nandsim
+national
+natsemi
+navman
+nbd
+ncpfs
+ne2k-pci
+neofb
+net1080
+net2280
+netconsole
+netjet
+netrom
+netxen_nic
+newtonkbd
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_ipv4
+nf_conntrack_ipv6
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_proto_dccp
+nf_conntrack_proto_gre
+nf_conntrack_proto_sctp
+nf_conntrack_proto_udplite
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_proto_dccp
+nf_nat_proto_gre
+nf_nat_proto_sctp
+nf_nat_proto_udplite
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nfnetlink
+nfnetlink_log
+nfnetlink_queue
+nfs
+nfs_acl
+nfsd
+nftl
+nf_tproxy_core
+ngene
+n_hdlc
+nilfs2
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp437
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+nop-usb-xceiv
+n_r3964
+ns558
+ns83820
+ntfs
+nvidiafb
+nxt200x
+nxt6000
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stackglue
+ocfs2_stack_o2cb
+ocfs2_stack_user
+ohci1394
+old_belkin-sir
+olympic
+omfs
+omninet
+on20
+on26
+onenand
+onenand_sim
+opencores-kbd
+oprofile
+opticon
+option
+or51132
+or51211
+orinoco
+orinoco_cs
+orinoco_usb
+osd
+osdblk
+osst
+oti6858
+output
+ov7670
+ov772x
+ov9640
+ovcamchip
+oxu210hp-hcd
+p54common
+p54pci
+p54spi
+p54usb
+p8023
+paride
+parkbd
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+pata_acpi
+pata_amd
+pata_atp867x
+pata_cs5520
+pata_efar
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_oldpiix
+pata_pcmcia
+pata_pdc2027x
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sis
+pata_sl82c105
+pata_triflex
+pata_via
+pc87360
+pc87427
+pcap_keys
+pcap-regulator
+pcap_ts
+pcbc
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf8591
+pci
+pci200syn
+pcips2
+pci_slot
+pcmcia
+pcmcia_core
+pcmciamtd
+pcmcia_rsrc
+pcnet32
+pcnet_cs
+pcrypt
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pdc_adma
+pegasus
+penmount
+pf
+pg
+phantom
+phonedev
+phonet
+phram
+physmap
+pktcdvd
+pktgen
+pl2303
+platform_lcd
+plat_nand
+plat-ram
+plip
+plusb
+pluto2
+plx_pci
+pm2fb
+pm3fb
+pm8001
+pmc551
+pmcraid
+pn_pep
+poseidon
+powermate
+power_meter
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_generic
+ppp_mppe
+pppoatm
+pppoe
+pppox
+ppp_synctty
+pps_core
+pps-ldisc
+prism54
+processor
+psmouse
+pt
+pvrusb2
+pwc
+qcaux
+qcserial
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas408
+qnx4
+qsemi
+qt1010
+quickcam_messenger
+quota_tree
+quota_v1
+quota_v2
+r128
+r8169
+r852
+r8a66597-hcd
+radeon
+radio-gemtek-pci
+radio-i2c-si470x
+radio-maestro
+radio-maxiradio
+radio-mr800
+radio-si4713
+radio-tea5764
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid6test
+raid_class
+ramoops
+raw
+raw1394
+ray_cs
+rc-adstech-dvb-t-pci
+rc-apac-viewcomp
+rc-asus-pc39
+rc-ati-tv-wonder-hd-600
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avertv-303
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-empty
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv2
+rc-encore-enltv-fm53
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge-new
+rc-imon-mce
+rc-imon-pad
+rc-iodata-bctv7e
+rc-kaiomy
+rc-kworld-315u
+rc-kworld-plus-tv-analog
+rc-manli
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc5-hauppauge-new
+rc-rc5-tv
+rc-real-audio-220-32-keys
+rc-tbs-nec
+rc-terratec-cinergy-xs
+rc-tevii-nec
+rc-tt-1500
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-winfast
+rc-winfast-usbii-deluxe
+rdc321x-southbridge
+rdma_cm
+rds
+rds_rdma
+rds_tcp
+redboot
+reed_solomon
+reiserfs
+rfc1051
+rfc1201
+rfcomm
+rfd_ftl
+rio500
+riscom8
+rivafb
+rj54n1cb0c
+rmd128
+rmd160
+rmd256
+rmd320
+rndis_host
+rocket
+romfs
+rose
+rpcsec_gss_krb5
+rpcsec_gss_spkm3
+rrunner
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00pci
+rt2x00usb
+rt61pci
+rt73usb
+rtc-ab3100
+rtc-ab8500
+rtc-bq32k
+rtc-bq4802
+rtc-ds1286
+rtc-ds1305
+rtc-ds1307
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1742
+rtc-ds3234
+rtc-efi
+rtc-fm3130
+rtc-isl1208
+rtc-m41t80
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max8925
+rtc-mc13783
+rtc-msm6242
+rtc-pcap
+rtc-pcf2123
+rtc-pcf50633
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-stk17ta8
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtl8150
+rtl8187
+rxkad
+s1d13xxxfb
+s2255drv
+s2io
+s3fb
+s5h1409
+s5h1411
+s5h1420
+s6e63m0
+saa5246a
+saa5249
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7191
+saa7706h
+safe_serial
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savage
+savagefb
+sbp2
+sc92031
+sch_atm
+sch_cbq
+sch_drr
+sch_dsmark
+sch_gred
+sch_hfsc
+sch_htb
+sch_ingress
+sch_multiq
+sch_netem
+sch_prio
+sch_red
+sch_sfq
+sch_tbf
+sch_teql
+sco
+scsi_debug
+scsi_dh
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_tgt
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+scsi_wait_scan
+sctp
+sctp_probe
+sdhci
+sdhci-pci
+sdhci-pltfm
+sdio_uart
+sd_mod
+sdricoh_cs
+se401
+seed
+serial_core
+serial_cs
+serio_raw
+sermouse
+serpent
+serport
+sfc
+sg
+sha1_generic
+sha256_generic
+sha512_generic
+si21xx
+si4713-i2c
+sidewinder
+siemens_mpi
+sierra
+sierra_net
+sir-dev
+sis
+sis190
+sis5595
+sis900
+sisfb
+sisusbvga
+sit
+sja1000
+sja1000_platform
+skfp
+skge
+sky2
+sl811_cs
+sl811-hcd
+slhc
+slip
+slram
+sm501
+sm501fb
+smbfs
+smc91c92_cs
+sm_common
+smsc
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc9420
+smsc95xx
+smsdvb
+smsmdtv
+smssdio
+smsusb
+sn9c102
+snd
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-als300
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-cs5535audio
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-atihdmi
+snd-hda-codec-ca0110
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-idt
+snd-hda-codec-intelhdmi
+snd-hda-codec-nvhdmi
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel8x0
+snd-intel8x0m
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-page-alloc
+snd-pcm
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ad1836
+snd-soc-ad193x
+snd-soc-ad73311
+snd-soc-ads117x
+snd-soc-ak4104
+snd-soc-ak4535
+snd-soc-ak4642
+snd-soc-ak4671
+snd-soc-core
+snd-soc-cs4270
+snd-soc-da7210
+snd-soc-l3
+snd-soc-max9877
+snd-soc-pcm3008
+snd-soc-spdif
+snd-soc-ssm2602
+snd-soc-tlv320aic23
+snd-soc-tlv320aic26
+snd-soc-tlv320aic3x
+snd-soc-tlv320dac33
+snd-soc-tpa6130a2
+snd-soc-twl4030
+snd-soc-twl6040
+snd-soc-uda134x
+snd-soc-uda1380
+snd-soc-wm2000
+snd-soc-wm8350
+snd-soc-wm8400
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8727
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8776
+snd-soc-wm8900
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8940
+snd-soc-wm8955
+snd-soc-wm8960
+snd-soc-wm8961
+snd-soc-wm8971
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8988
+snd-soc-wm8990
+snd-soc-wm8993
+snd-soc-wm8994
+snd-soc-wm9081
+snd-soc-wm9090
+snd-soc-wm-hubs
+snd-sonicvibes
+snd-tea575x-tuner
+snd-timer
+snd-trident
+snd-usb-audio
+snd-usb-caiaq
+snd-usbmidi-lib
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-vx222
+snd-vx-lib
+snd-vxpocket
+snd-ymfpci
+soc_camera
+soc_camera_platform
+soc_mediabus
+softdog
+solos-pci
+soundcore
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+specialix
+spectrum_cs
+speedfax
+speedtch
+spi_bitbang
+spi_butterfly
+spidev
+spi_lm70llp
+squashfs
+sr_mod
+ssb
+ssfdc
+sst25l
+st
+stallion
+starfire
+stb0899
+stb6000
+stb6100
+ste10Xp
+stex
+stinger
+stir4200
+stowaway
+stp
+stradis
+stv0288
+stv0297
+stv0299
+stv0900
+stv090x
+stv6110
+stv6110x
+stv680
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+svcrdma
+svgalib
+sx8
+sym53c500_cs
+sym53c8xx
+symbolserial
+synaptics_i2c
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+tca6416-keypad
+tcm825x
+tcp_bic
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_probe
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcrypt
+tda10023
+tda10048
+tda1004x
+tda10086
+tda18271
+tda7432
+tda8083
+tda826x
+tda827x
+tda8290
+tda9840
+tda9875
+tda9887
+tdfx
+tdo24m
+tea
+tea5761
+tea5767
+tea6415c
+tea6420
+tef6862
+tehuti
+tekram-sir
+test_power
+tg3
+tgr192
+thermal
+thermal_sys
+thmc50
+ths7303
+ti_dac7512
+tifm_7xx1
+tifm_core
+tifm_sd
+timb_dma
+timbuart
+timeriomem-rng
+tipc
+ti_usb_3410_5052
+tlan
+tle62x0
+tlv320aic23b
+tmdc
+tmiofb
+tmp102
+tmp401
+tmp421
+tms380tr
+tmscsim
+tmspci
+toim3232-sir
+touchit213
+touchright
+touchwin
+tpm
+tpm_atmel
+tpm_bios
+tpm_nsc
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+trancevibrator
+tridentfb
+ts_bm
+tsc2007
+ts_fsm
+ts_kmp
+tsl2550
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+turbografx
+tvaudio
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw9910
+twidjoy
+twl4030_keypad
+twl4030-pwrbutton
+twl4030-usb
+twl4030-vibra
+twl4030_wdt
+twofish
+twofish_common
+typhoon
+u132-hcd
+ubi
+ubifs
+udf
+ueagle-atm
+uinput
+uio
+uio_aec
+uio_cif
+uio_netx
+uio_pci_generic
+uio_pdrv
+uio_pdrv_genirq
+uio_sercos3
+uli526x
+ultracam
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-sddr09
+ums-sddr55
+ums-usbat
+upd64031a
+upd64083
+uPD98402
+usb8xxx
+usbatm
+usb_debug
+usbhid
+usblcd
+usbled
+usblp
+usbnet
+usbserial
+usbsevseg
+usb-storage
+usbtest
+usbtmc
+usbtouchscreen
+usbvideo
+usbvision
+usb_wwan
+userspace-consumer
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l1-compat
+v4l2-common
+v4l2-int-device
+v4l2-mem2mem
+vcan
+ves1820
+ves1x93
+veth
+vfat
+vgastate
+vgg2432a4
+via
+via686a
+via-rhine
+via-sdmmc
+via-velocity
+vicam
+video1394
+videobuf-core
+videobuf-dma-sg
+videobuf-dvb
+videobuf-vmalloc
+videocodec
+videodev
+virtual
+visor
+vitesse
+vivopay-serial
+vlsi_ir
+vmac
+vmxnet3
+vp27smpx
+vpx3220
+vsxxxaa
+vt1211
+vt8231
+vt8623fb
+vxge
+w1_bq27000
+w1_ds2431
+w1_ds2433
+w1_ds2760
+w1_smem
+w1_therm
+w6692
+w83627ehf
+w83627hf
+w83781d
+w83791d
+w83792d
+w83793
+w83l785ts
+w9966
+w9968cf
+wacom
+wacom_w8001
+wanrouter
+wanxl
+warrior
+wdt_pci
+whci
+whci-hcd
+whc-rc
+whiteheat
+wimax
+winbond-840
+wire
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1271
+wl1271_spi
+wl3501_cs
+wlp
+wm831x_backup
+wm831x_bl
+wm831x-dcdc
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x_power
+wm831x_wdt
+wm8350-hwmon
+wm8350_power
+wm8350-regulator
+wm8350_wdt
+wm8400-core
+wm8400-regulator
+wm8739
+wm8775
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusbcore
+wusb-wa
+x25
+x25_asy
+xc5000
+xcbc
+xfrm4_mode_beet
+xfrm4_mode_transport
+xfrm4_mode_tunnel
+xfrm4_tunnel
+xfrm6_mode_beet
+xfrm6_mode_transport
+xfrm6_mode_tunnel
+xfrm_ipcomp
+xfrm_user
+xfs
+xhci-hcd
+xirc2ps_cs
+xircom_cb
+xor
+xp
+xpad
+xpc
+xpnet
+xprtrdma
+x_tables
+xt_CLASSIFY
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlimit
+xt_connmark
+xt_CONNSECMARK
+xt_conntrack
+xt_CT
+xt_dccp
+xt_dscp
+xt_DSCP
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_HL
+xtkbd
+xt_LED
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_NFLOG
+xt_NFQUEUE
+xt_NOTRACK
+xt_osf
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_realm
+xt_recent
+xts
+xt_sctp
+xt_SECMARK
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_TCPMSS
+xt_tcpudp
+xt_TEE
+xt_time
+xt_TPROXY
+xt_TRACE
+xt_u32
+xusbatm
+yam
+yealink
+yellowfin
+yenta_socket
+zatm
+zc0301
+zd1201
+zd1211rw
+zhenhua
+zio
+zl10036
+zl10039
+zl10353
+zlib
+zlib_deflate
+zr36016
+zr36050
+zr36060
+zr36067
+zr364xx
diff --git a/debian.master/abi/2.6.35-2.3/powerpc/powerpc b/debian.master/abi/2.6.35-2.3/powerpc/powerpc
new file mode 100644
index 00000000000..b5e968cf330
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/powerpc/powerpc
@@ -0,0 +1,10168 @@
+EXPORT_SYMBOL arch/powerpc/kvm/kvm 0x51c7fd55 kvm_read_guest_atomic
+EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble
+EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle
+EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k
+EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks
+EXPORT_SYMBOL drivers/atm/suni 0x506b2d9c suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0x79b743bf uPD98402_init
+EXPORT_SYMBOL drivers/block/loop 0x52078ff6 loop_register_transfer
+EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer
+EXPORT_SYMBOL drivers/block/paride/paride 0x0f58cd0b paride_unregister
+EXPORT_SYMBOL drivers/block/paride/paride 0x1ff3a419 paride_register
+EXPORT_SYMBOL drivers/block/paride/paride 0x3a8fd888 pi_disconnect
+EXPORT_SYMBOL drivers/block/paride/paride 0x4a12350d pi_schedule_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x5c61dae8 pi_release
+EXPORT_SYMBOL drivers/block/paride/paride 0x742d45e7 pi_connect
+EXPORT_SYMBOL drivers/block/paride/paride 0x74fa8f3f pi_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x765e2990 pi_write_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0xa8fb385f pi_write_block
+EXPORT_SYMBOL drivers/block/paride/paride 0xb75d7836 pi_do_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0xbc05fb03 pi_read_block
+EXPORT_SYMBOL drivers/block/paride/paride 0xd87338b6 pi_read_regr
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x08203479 agp_generic_mask_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x0cdc4c59 agp_generic_remove_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x1561647d agp_create_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x1b41b09c agp_generic_alloc_by_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x224a3e29 agp_free_page_array
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x29b35924 get_agp_version
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x2fe5a3ac agp_enable
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x30226ddf agp_device_command
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x37be3884 agp_free_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x471317c8 agp_put_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x535254af agp_backend_release
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x68980aa8 agp_generic_free_gatt_table
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x6d6c0f24 agp_generic_alloc_user
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7e301da3 agp_generic_free_by_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x80968ed3 agp_generic_destroy_pages
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x90914bff agp_generic_alloc_pages
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x9422f818 agp_generic_create_gatt_table
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xa077950e agp_allocate_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4632ff9 agp_generic_destroy_page
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xa927c5b5 agp_generic_alloc_page
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb04ea8f0 agp_rebind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb2d88ed3 agp_backend_acquire
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xbf2b4824 agp3_generic_tlbflush
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xcb382dbb agp_alloc_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xcb8eb05a agp_bind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd1e972ae agp_flush_chipset
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xdc567563 agp_generic_type_to_mask_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe187f2b7 agp_collect_device_status
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe1bb54ed agp_alloc_page_array
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe683e9fa agp_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe9e0066b agp_unbind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xea61c1af agp_generic_insert_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xf0fd63a9 agp_copy_info
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xf1e12fcf agp_find_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xfd07e862 agp_generic_enable
+EXPORT_SYMBOL drivers/char/apm-emulation 0x129e74f2 apm_get_power_status
+EXPORT_SYMBOL drivers/char/apm-emulation 0xdf3329b8 apm_queue_event
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x10c07b6d ipmi_set_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x135154d1 ipmi_request_settime
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x165ddd20 ipmi_poll_interface
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x18a89af0 ipmi_smi_watcher_register
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x190c4a31 ipmi_free_recv_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x438e57d9 ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4d1f3b32 ipmi_destroy_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4e940927 ipmi_set_gets_events
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x57304215 ipmi_smi_add_proc_entry
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x617ee6ce ipmi_register_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6aa892e5 ipmi_set_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6dde4ef1 ipmi_get_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7a5ee5bd ipmi_smi_msg_received
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x83113955 ipmi_register_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8979dff4 ipmi_get_version
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x93fc6596 ipmi_unregister_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x94f67c6e ipmi_get_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9a99185c ipmi_set_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xae8bda00 ipmi_unregister_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc188c3d6 ipmi_create_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc60d48c9 ipmi_get_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xddb6c25a ipmi_smi_watcher_unregister
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfab43bf7 ipmi_request_supply_msgs
+EXPORT_SYMBOL drivers/edac/edac_core 0x65a67d67 edac_mc_find
+EXPORT_SYMBOL drivers/edac/edac_core 0x7c9ffd8f edac_mc_handle_fbd_ce
+EXPORT_SYMBOL drivers/edac/edac_core 0x8e5fa17b edac_mc_handle_fbd_ue
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x049c1e53 drm_agp_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x05081d88 drm_mode_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x05992eb3 drm_clflush_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x07724154 drm_lock_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x07ec7c9e drm_add_modes_noedid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x08890258 drm_crtc_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x08b213d5 drm_mode_connector_attach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x09782f4f drm_mode_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x09e111c4 drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a69ab90 drm_core_ioremapfree
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cf947cc drm_mm_dump_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ed391c9 drm_mode_detachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f32f34a drm_get_edid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0feac314 drm_gem_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x144f6d48 drm_fasync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x16062d23 drm_mode_duplicate
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b64b2a9 drm_connector_property_get_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1bc850ed drm_lock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c9aeebe drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1dff02ce drm_vblank_off
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1eaa71ea drm_mode_connector_detach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1eee807b drm_mm_search_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f4d48af drm_agp_bind_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2310ac65 drm_master_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x24088dda drm_gtf_mode_complex
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x298faae0 drm_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2a2f94f9 drm_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d1ab1b3 drm_mode_create_tv_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f2ab6cd drm_mode_object_find
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fe344ce drm_ati_pcigart_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x301f5029 drm_mm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x316f2935 drm_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x349a5f26 drm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3526759c drm_connector_attach_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x37d84152 drm_idlelock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x37e8a536 drm_gem_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x37f8db72 drm_rmmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3847607c drm_mm_put_block
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x38e15075 drm_add_edid_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d02e929 drm_mm_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x47413755 drm_mm_search_free_in_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x519d0167 drm_agp_bind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x542ef868 drm_vblank_pre_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x54937752 drm_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x564ffa94 drm_sysfs_connector_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5aa967ac drm_agp_chipset_flush
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ae2f944 drm_connector_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c8c8949 drm_cvt_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d27e78f drm_mode_validate_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6018763c drm_mode_connector_update_edid_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x61aabb69 drm_framebuffer_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x62c69291 drm_sg_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x66ad397f drm_unbind_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a3d974a drm_mode_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x72c6176c drm_core_get_reg_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x744a4af4 drm_irq_uninstall
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b15e907 drm_vblank_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b434fdb drm_gtf_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d14e171 drm_mode_probed_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e362291 drm_core_ioremap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x81537dad drm_i_have_hw_lock
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8178ae87 drm_rmmap_locked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x81bf0bd1 drm_master_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x86e6e150 drm_mode_attachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x887b7568 drm_vblank_count
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x88a03801 drm_mode_create_dirty_info_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x88dda5c5 drm_free_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x89514344 drm_handle_vblank
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a2ff31c drm_gem_object_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a73a1a5 drm_gem_vm_close
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c52eaf5 drm_put_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d3f636e drm_mm_get_block_range_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ecfc56c drm_mm_get_block_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x90562f87 drm_exit
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9248991e drm_get_encoder_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x93d2111e drm_addbufs_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x951228b2 drm_property_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x95e31997 drm_property_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x96ce8d50 drm_agp_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x985a0118 drm_agp_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b656059 drm_gem_vm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d62dc37 drm_mode_config_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ed29094 drm_addbufs_pci
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3949476 drm_pci_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8390b55 drm_connector_property_set_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xabf81200 drm_poll
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xacd57639 drm_pci_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xae432715 drm_agp_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0492996 drm_getsarea
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb07ad8fc drm_core_ioremap_wc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1be59cb drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1c63889 drm_mode_connector_list_update
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb401cb96 drm_get_resource_start
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb686b6f5 drm_mm_debug_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6d99adf drm_encoder_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd7d34f6 drm_vblank_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf38348a drm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0447cff drm_mode_find_dmt
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc5797917 drm_crtc_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6794f16 drm_core_get_map_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7194b36 drm_agp_unbind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc77318d0 drm_core_reclaim_buffers
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcce7cef0 drm_gem_object_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xce205b66 drm_idlelock_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xce421853 drm_get_connector_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfa5244f drm_debugfs_remove_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0390028 drm_mm_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd19a2187 drm_mode_validate_clocks
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4468377 drm_get_drawable_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7bdabe4 drm_addmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8bd0837 drm_irq_install
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8f5c8f0 drm_sysfs_connector_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdab0f025 drm_vblank_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb972a2 drm_gem_handle_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcaf35dc drm_sysfs_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0d6f9bf drm_ati_pcigart_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe21b8cd4 drm_debugfs_create_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe37ba2ba drm_agp_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe42d902c drm_mm_pre_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6106871 drm_i2c_encoder_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe613ca33 drm_i2c_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe69be8cf drm_get_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6e417cf drm_get_resource_len
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7e07a8d drm_mode_create_dithering_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb298d4a drm_vblank_post_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xee7a4bf1 drm_mode_config_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeef78228 drm_framebuffer_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0616440 drm_connector_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf29c2536 drm_mode_prune_invalid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3e9ab96 drm_vblank_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf419260e drm_agp_acquire
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6f21b2d drm_gem_object_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf70579eb drm_read
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0458777d drm_fb_helper_initial_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x09312a66 drm_fb_helper_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1406179b drm_kms_helper_poll_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1c255f6c drm_kms_helper_poll_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4170a519 drm_helper_disable_unused_functions
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5c9f2547 drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5d4cbffd drm_fb_helper_pan_display
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5da0e2d0 drm_helper_connector_dpms
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6540c4b5 drm_helper_crtc_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x65c3db92 drm_kms_helper_poll_disable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x66ab8494 drm_fb_helper_setcmap
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x71c3014c drm_helper_hpd_irq_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7f16caa5 drm_helper_resume_force_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x804686d8 drm_fb_helper_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x88f2b362 i2c_dp_aux_add_bus
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x89cef2ea drm_fb_helper_set_par
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8c3aaa54 drm_fb_helper_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8dbeef20 drm_fb_helper_fill_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x951c7e6f drm_fb_helper_check_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9c4e95dc drm_fb_helper_fill_fix
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9fe533f7 drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa5eb2a4e drm_fb_helper_single_add_all_connectors
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xaa67659a drm_fb_helper_single_fb_probe
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb4c9bc61 drm_helper_encoder_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5b3fc65 drm_crtc_helper_set_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbc3c543a drm_fb_helper_blank
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc0a72648 drm_crtc_helper_set_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd9aa5770 drm_kms_helper_poll_enable
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07787990 ttm_bo_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0b5ee647 ttm_lock_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x16c741df ttm_bo_move_memcpy
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x183cf8b4 ttm_bo_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2498b035 ttm_bo_synccpu_write_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34704ea7 ttm_global_item_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x37c2b6e9 ttm_ref_object_add
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3b6f6d38 ttm_ref_object_base_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c3c3af1 ttm_bo_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x42fea97e ttm_write_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x47a353db ttm_bo_swapout_all
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x47bf2b03 ttm_bo_wait_cpu
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4a6f4aec ttm_bo_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4b68233b ttm_read_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5221bdad ttm_bo_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x590475f9 ttm_bo_kmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x59ffe763 ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5eb1b02e ttm_page_alloc_debugfs
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x60b694f3 ttm_bo_evict_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6173f025 ttm_bo_unmap_virtual
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x64a1d1ed ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x65b020d6 ttm_bo_validate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66666d70 ttm_global_item_ref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66e55b87 ttm_object_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6a3f3409 ttm_tt_set_placement_caching
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6fb8acaf ttm_vt_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x720773db ttm_mem_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x762bee79 ttm_bo_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x766bb247 ttm_bo_wait
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7a60791d ttm_fbdev_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7b2aed97 ttm_tt_bind
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8327e4e2 ttm_tt_populate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8b2a7232 ttm_bo_mem_space
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x91b34fc7 ttm_bo_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x96b40b1c ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9eb4fdc3 ttm_bo_kunmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9f199514 ttm_bo_move_ttm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa07cd551 ttm_bo_clean_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2c7632b ttm_suspend_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa3363a15 ttm_mem_global_free
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa3cc98d0 ttm_object_file_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xabb0a47d ttm_suspend_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xadbafaca ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb095d42c ttm_mem_global_alloc
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb915d46a ttm_base_object_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xba570a94 ttm_bo_unreserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4a5d4ab ttm_base_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd79db104 ttm_vt_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xde391364 ttm_base_object_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe32cae47 ttm_bo_init_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe4b042ee ttm_agp_backend_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5531167 ttm_write_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe96acf68 ttm_object_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf263ab98 ttm_mem_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf6a695ac ttm_object_file_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf8ec8ae8 ttm_bo_wait_unreserved
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc9f7f92 ttm_read_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfe470d47 ttm_bo_reserve
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x6888cea2 i2c_pca_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x6d90f4f3 i2c_pca_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xbf6d2947 amd756_smbus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x079e2275 dma_region_mmap
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07e751e7 csr1212_get_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x11ed02cb hpsb_bus_reset
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19c78b3e hpsb_iso_xmit_queue_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1d3c13da hpsb_get_hostinfo_bykey
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x23899e22 hpsb_make_lock64packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2891391f hpsb_set_hostinfo_key
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2f506bd4 hpsb_iso_recv_listen_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x32a0ba9d hpsb_packet_success
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x33065063 hpsb_unregister_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x368abec1 hpsb_iso_recv_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3b26792a hpsb_iso_recv_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3b5ba6f1 hpsb_iso_recv_unlisten_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x42edcb0b hpsb_send_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4784056b hpsb_unregister_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4a637028 hpsb_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4cf25638 hpsb_iso_xmit_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4dae8509 hpsb_iso_n_ready
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x54825b74 hpsb_make_lockpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5581abdf hpsb_iso_wake
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x59581347 hpsb_selfid_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5be12d2c hpsb_get_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5fadddf1 hpsb_iso_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x674fed93 hpsb_make_streampacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6caf930e hpsb_lock
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6f15c402 hpsb_iso_xmit_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x744f7997 hpsb_node_fill_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bf21f2 hpsb_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7a6f8d92 hpsb_iso_recv_release_packets
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8095c56d hpsb_unregister_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x82fc09ad hpsb_add_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8774ade1 __hpsb_register_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8988ce14 hpsb_set_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8d508c75 hpsb_resume_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8e6fef5e hpsb_register_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x92eabe1a hpsb_free_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x96e7bebe hpsb_set_packet_complete_task
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x97687a72 hpsb_iso_shutdown
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9872763b hpsb_iso_recv_flush
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9ea4de62 hpsb_allocate_and_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xafa56bf7 hpsb_reset_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb1586377 hpsb_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb1ef046b hpsb_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb66422c2 hpsb_destroy_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb6dadf22 hpsb_iso_xmit_sync
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb890b814 csr1212_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbbd6dadd hpsb_get_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbd9d0c1b hpsb_selfid_complete
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc2280a1e hpsb_create_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc495d3d3 hpsb_alloc_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc53970df hpsb_iso_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc56a3409 hpsb_alloc_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc5d3569f hpsb_remove_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc6a5e9af hpsb_node_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc719006f hpsb_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd2bacd8d hpsb_make_readpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd618b6a0 hpsb_update_config_rom_image
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdc113e9f hpsb_read_cycle_timer
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe3d7fe34 hpsb_iso_stop
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe3e65c44 hpsb_iso_recv_set_channel_mask
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe97f0636 hpsb_free_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xee22cb6a hpsb_make_phypacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xef1b4283 hpsb_protocol_class
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf5a0bd4c hpsb_update_config_rom
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf98bfafb hpsb_make_writepacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x6f6fd7f7 ohci1394_register_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xa258fb0d ohci1394_stop_context
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xda30f630 ohci1394_unregister_iso_tasklet
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x10faf4e5 rdma_addr_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xa30db2f9 rdma_copy_addr
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xea9ed28a rdma_resolve_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xee034f38 rdma_addr_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0b6cace3 ib_send_cm_mra
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0f3144c8 ib_send_cm_apr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x23d14b50 ib_send_cm_rtu
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3666c1c4 ib_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3db4df2c ib_send_cm_rej
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x40777eb7 ib_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4508ff39 ib_send_cm_lap
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x58eb39b9 ib_send_cm_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa37fe1db ib_send_cm_sidr_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xab7ca2eb cm_class
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xac5ea63c ib_send_cm_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbe49d3da ib_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd9c31aa6 ib_send_cm_drep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdcdaec65 ib_send_cm_sidr_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe45c2286 ib_send_cm_dreq
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfc5a1909 ib_cm_notify
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfcbfedff ib_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00b4dbaa ib_alloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x010903dd ib_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x038cc069 ib_alloc_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x089b67d5 ib_detach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c77bb77 ib_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x143d959e ib_query_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x16da8e7e ib_modify_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x172ac20a ib_find_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x174b7b7d ib_resize_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1d125e15 ib_modify_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2036230b ib_query_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26dd5bcf ib_get_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x29f806e8 ib_get_cached_lmc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f6fb72e ib_unregister_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3197b063 ib_query_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x32853dd0 ib_get_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x32b2120e ib_destroy_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a57cc2d ib_umem_page_count
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3d015ac5 ib_register_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4079496e ib_dealloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x441fe8ec ib_create_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x44bf4de5 ib_dealloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x46b6f3d6 ib_query_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48a399d4 ib_alloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49517891 ib_modify_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4fe7e6fa ib_free_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d1feb83 ib_create_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6050baf9 ib_attach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b6dbcc1 ib_dispatch_event
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e7343f4 ib_register_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75972193 ib_modify_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x75d5c0fe ib_find_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77d5f43d ib_query_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x798e0867 ib_fmr_pool_unmap
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ce7ce74 ib_destroy_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7f81a0af ib_modify_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x814c7d28 ib_create_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x86411549 ib_reg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87bb5314 ib_umem_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f779db1 ib_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9468ef64 ib_create_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96300a74 ib_get_dma_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x98625543 ib_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ac39de7 ib_umem_release
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa010b73b ib_dealloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa281fca5 ib_init_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa61a5621 ib_fmr_pool_map_phys
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa827c5b6 ib_find_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaafd8ff4 ib_dealloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb57e5872 ib_find_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb5e43af1 ib_create_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb8c8a3c2 ib_dereg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd24896ef ib_rereg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd2e9c276 ib_get_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd3ff99db ib_query_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd80c7702 ib_query_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8be4b21 ib_set_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xde2a2c00 ib_alloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xde792622 ib_destroy_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe0bd5d56 ib_alloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe16fa4c8 ib_query_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf2a67e2c ib_alloc_fast_reg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf367e51d ib_flush_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36e1c89 ib_destroy_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf52263bd ib_unregister_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbe7a2cd ib_modify_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0a2af7e4 ib_register_mad_snoop
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0eb481c3 ib_redirect_mad_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x28a89059 ib_create_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4be20fc2 ib_modify_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x535d7d17 ib_register_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x58fa04a7 ib_unregister_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x79d3c30f ib_process_mad_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb11ce62e ib_get_rmpp_segment
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc1111ef8 ib_free_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe63a22a0 ib_free_recv_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xefe911c2 ib_post_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xff35ab0d ib_cancel_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x1aa4c672 ib_sa_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2617e775 ib_sa_get_mcmember_rec
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x75246607 ib_sa_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x90480d64 ib_sa_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x952e1261 ib_sa_cancel_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x967ba7af ib_init_ah_from_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xbb6caf71 ib_init_ah_from_mcmember
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xbe3ced36 ib_sa_path_rec_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe63668a9 ib_sa_service_rec_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1b42c556 iw_cm_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1ef3b9f3 iw_cm_connect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3a2f17dc iw_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x456d37e4 iw_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x561fc70a iw_cm_accept
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7d31baf9 iw_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8cc7c673 iw_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa7a84567 iw_cm_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0d40f049 rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1ea03266 rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x37825c23 rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x56921df9 rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x726810e0 rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x79932c3d rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x80a9402a rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x815964a9 rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x90b83191 rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x98d22b26 rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9c6b4ea9 rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xae1a9d9a rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xafd015d0 rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbda96f7b rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc48d209e rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd302c3fc rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe6fd4070 rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xffb91756 rdma_init_qp_attr
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x2cd5c400 gameport_unregister_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x52bc7b82 gameport_close
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x5a9d4f4e __gameport_register_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x8025d533 gameport_unregister_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x9005c5b6 gameport_stop_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xa06df3a0 __gameport_register_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xac97e7f2 gameport_set_phys
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xc4c63687 gameport_start_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xd0462079 gameport_open
+EXPORT_SYMBOL drivers/input/input-polldev 0x4d74aaf8 input_register_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x94f66cea input_unregister_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xc231c7f7 input_allocate_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xc4edc4c9 input_free_polled_device
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x003a90ff ad714x_remove
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xc7bccbfe ad714x_disable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xd339290a ad714x_enable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xeb39c8fc ad714x_probe
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x0638804a sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x3b6f007c sparse_keymap_report_entry
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xabe2ad43 sparse_keymap_free
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xda22e311 sparse_keymap_report_event
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xdc7fc576 sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xfe59a365 sparse_keymap_setup
+EXPORT_SYMBOL drivers/md/dm-log 0x3404f481 dm_dirty_log_type_register
+EXPORT_SYMBOL drivers/md/dm-log 0xcb34833c dm_dirty_log_type_unregister
+EXPORT_SYMBOL drivers/md/dm-log 0xdc06031d dm_dirty_log_create
+EXPORT_SYMBOL drivers/md/dm-log 0xf0edd1d3 dm_dirty_log_destroy
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x4e39749a dm_exception_store_type_unregister
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x7fefe313 dm_snap_cow
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x86bee706 dm_exception_store_type_register
+EXPORT_SYMBOL drivers/md/dm-snapshot 0xb05c8b5c dm_exception_store_create
+EXPORT_SYMBOL drivers/md/dm-snapshot 0xdc0db847 dm_exception_store_destroy
+EXPORT_SYMBOL drivers/md/md-mod 0x1a1149b4 md_barrier_request
+EXPORT_SYMBOL drivers/md/md-mod 0x1fe9f9f9 register_md_personality
+EXPORT_SYMBOL drivers/md/md-mod 0x287d43b6 unregister_md_personality
+EXPORT_SYMBOL drivers/md/md-mod 0x2de3da82 md_integrity_register
+EXPORT_SYMBOL drivers/md/md-mod 0x41f59b18 md_unregister_thread
+EXPORT_SYMBOL drivers/md/md-mod 0x598da827 bitmap_cond_end_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x5ac53980 md_done_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x5d3865d5 bitmap_end_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x688bfce4 md_write_end
+EXPORT_SYMBOL drivers/md/md-mod 0x6e81eace bitmap_start_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x6fd82be7 mddev_congested
+EXPORT_SYMBOL drivers/md/md-mod 0x70907bba md_integrity_add_rdev
+EXPORT_SYMBOL drivers/md/md-mod 0x75e855fb bitmap_unplug
+EXPORT_SYMBOL drivers/md/md-mod 0x770a9f23 md_error
+EXPORT_SYMBOL drivers/md/md-mod 0x8c856627 md_check_recovery
+EXPORT_SYMBOL drivers/md/md-mod 0x9cce8b08 bitmap_close_sync
+EXPORT_SYMBOL drivers/md/md-mod 0xaad84b76 bitmap_endwrite
+EXPORT_SYMBOL drivers/md/md-mod 0xb0cd4d42 md_set_array_sectors
+EXPORT_SYMBOL drivers/md/md-mod 0xc4bd6fc3 md_check_no_bitmap
+EXPORT_SYMBOL drivers/md/md-mod 0xd42e6e48 bitmap_startwrite
+EXPORT_SYMBOL drivers/md/md-mod 0xd5b51b03 md_wait_for_blocked_rdev
+EXPORT_SYMBOL drivers/md/md-mod 0xdaf2721a md_wakeup_thread
+EXPORT_SYMBOL drivers/md/md-mod 0xe731d297 md_register_thread
+EXPORT_SYMBOL drivers/md/md-mod 0xf6b9bffc md_write_start
+EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul
+EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp
+EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv
+EXPORT_SYMBOL drivers/md/raid6_pq 0x7456cc61 raid6_empty_zero_page
+EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x0506d211 ir_raw_handler_unregister
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x1687216d ir_raw_handler_register
+EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x1dbbeb80 max2165_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x07d398fd mc44s803_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x4c36d224 mt2060_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0xfc8e18bd mt2131_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x8730e077 mt2266_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0xbe0c99c6 mxl5005s_attach
+EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x2587c1d0 qt1010_attach
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0xa573b942 xc2028_attach
+EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x7cfd73f0 xc5000_attach
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x0518caa9 flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x095a9bf8 flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x286b1deb flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x44c62193 flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4ebae883 flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x545a87e3 flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x72a5566d flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x8ea86842 flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9299dd82 flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x94f6d7f3 flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa5aa7d5f flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb5cb0aa6 flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc14724b9 flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc3cdd752 flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xcedc38c4 flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd2decaa3 flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd8bdb463 flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe27ee367 flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe53711a5 flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xeaff31e3 flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x529a32fb bt878
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x7c2605eb bt878_start
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x80d433cd bt878_stop
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xb1d89f90 bt878_device_control
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x11750474 read_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x13337ff1 dst_error_bailout
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x31350af5 dst_pio_disable
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4458db44 dst_attach
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x4d9e0a09 write_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x775ed7c3 dst_wait_dst_ready
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x8bb48858 dst_comm_init
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x9345d3b2 rdc_reset_state
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xf72258e2 dst_error_recovery
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x59c731fa dst_ca_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x15c26f49 dvb_dmx_swfilter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1bf427b1 dvb_net_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1f04303f dvb_frontend_detach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x26b68e44 dvb_frontend_reinitialise
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x29f4ec79 dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x31409c4b dvb_dmx_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x355aa91d dvb_register_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3d8c710e dvb_ca_en50221_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4ad600a1 dvb_dmxdev_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4b42ee5b dvb_net_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x56e801c8 dvb_register_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x5e80ec71 dvb_dmx_swfilter_204
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6225816a dvb_ringbuffer_flush
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x687066ad dvb_ringbuffer_read
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6c7157c4 dvb_generic_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x709a9126 dvb_generic_ioctl
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x746b02ad dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x77098206 dvb_register_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x83a2ef94 dvb_ringbuffer_empty
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x883c17c6 dvb_ringbuffer_read_user
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x90b3c91f dvb_ringbuffer_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb408a42e dvb_unregister_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb52fefff dvb_unregister_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb5f93340 dvb_dmx_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbdd74bf6 dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xc7b9a233 dvb_ca_en50221_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcd6c036b dvb_dmx_swfilter_packets
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xce6772d0 dvb_dmxdev_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed7ab346 dvb_unregister_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xed9e5ee7 dvb_ringbuffer_free
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf2e573cf dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf487376d dvb_ringbuffer_avail
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf6be7429 dvb_generic_open
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfb25f454 dvb_ringbuffer_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x2c7df29b dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4c546f8a dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x547657ba usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x796a5df5 dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xa1611b50 dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xe5fc20e7 dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xef2c1499 dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x96a81ddc af9005_rc_decode
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x1d9c00f5 dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x743977d8 dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x8bcd0bd0 dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x941feffe dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa73588bb dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xbd5e699a dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xc31663d6 dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdeb43f3a dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xdf7f1348 dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe2084ec2 dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe54247fe dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xbd71c6f8 af9013_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0xce79ddb8 atbm8830_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xd037b8e1 au8522_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x24d6e036 bcm3510_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x1e712103 cx22700_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x01183b71 cx22702_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0xf51b8150 cx24110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x2d7989f3 cx24113_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x870c48ec cx24113_agc_callback
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x7cb0136a cx24116_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x202b522b cx24123_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0xb0d3d341 cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x34f3bfc8 dib0070_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x531b3887 dib0070_ctrl_agc_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xf6484bad dib0070_get_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xf7679bd3 dib0070_set_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xfc0c417f dib0070_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x18eb81f1 dib0090_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x1dd060ce dib0090_dcc_freq
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x32ae15e4 dib0090_register
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x81a94322 dib0090_gain_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8a50b901 dib0090_get_current_gain
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x9fdb4ab9 dib0090_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xde8c835b dib0090_pwm_gain_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xf5a76562 dib0090_get_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x97e4817d dib3000mb_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x15a16622 dib3000mc_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x2f95c73b dib3000mc_pid_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x52ca4f98 dib3000mc_set_config
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x5b2bbb60 dib3000mc_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x9c2b8ef2 dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xf1e64d2c dib3000mc_pid_parse
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x0b8e3c2e dib7000m_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xe85eec7b dib7000m_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x42cffd25 dib7000p_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x7afe7a7a dib7000p_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x931c62b2 dib7000pc_detection
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9858d8cf dib7000p_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xa7b72aa1 dib7000p_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xaa6f62ba dib7000p_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xaff3013d dib7000p_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc1872fe8 dib7000p_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x16382833 dib8000_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x259d3c60 dib8000_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2907d2dc dib8000_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x3c2f3d83 dib8000_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x4e826359 dib8000_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x6e620b4a dib8000_get_adc_power
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x7b22991d dib8000_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa0b96724 dib8000_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xb09a744f dib8000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc5fe6ed9 dib8000_pwm_agc_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xefbd98a6 dib8000_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x35c23b96 dibx000_get_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x657a6fe2 dibx000_reset_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xee3958ec dibx000_exit_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xfdda61a7 dibx000_init_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0x992fdfb4 ds3000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0x1a282a5d dvb_pll_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x1922dfea isl6405_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x3b189e75 isl6421_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xbc13e860 itd1000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x633dc013 l64781_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x9a95119d lgdt3305_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xc398a5d3 lgdt330x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x74879baf lgs8gxx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x27151319 lnbh24_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x3a6a92b2 lnbp21_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0xba458057 mb86a16_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x0f613af7 mt312_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x74875ad3 mt352_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xca6b0b30 nxt200x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xbbdf0158 nxt6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xaa1d72d2 or51132_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x5dd6f81b or51211_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0x11da017b s5h1409_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0x0c0a89d1 s5h1411_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x42a51e4d s5h1420_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x91a84125 s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0xcd3615b8 si21xx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0xb0bfc683 sp8870_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x8237aae9 sp887x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x652f1830 stb0899_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x11c23053 stb6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xe0cb8b98 stb6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0x32c19680 stv0288_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xedf3add6 stv0297_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xe370c375 stv0299_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x226f2d0e stv0900_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0xa8a40311 stv090x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x73d656c4 stv6110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x515bc037 stv6110x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xb3c56476 tda10023_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x35299005 tda10048_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xb8856ed2 tda10046_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xd1944f6e tda10045_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xd3c20509 tda10086_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x37252e7f tda8083_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x429f7dbc tda826x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x464d72b5 ves1820_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0xa6ef2c67 ves1x93_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0xaf3f4efe zl10036_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0xd03c73d2 zl10039_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xab1d350b zl10353_attach
+EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0xb5f95881 ttpci_eeprom_parse_mac
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xdc7998ff ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xf7be9935 ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x0e72f74f bttv_sub_unregister
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x49478edf bttv_get_pcidev
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xc4996f4d bttv_sub_register
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x00bcffde btcx_riscmem_alloc
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x2958343f btcx_riscmem_free
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips
+EXPORT_SYMBOL drivers/media/video/cpia 0x8f7ba806 cpia_unregister_camera
+EXPORT_SYMBOL drivers/media/video/cpia 0xa2a630a1 cpia_register_camera
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x07054438 cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2dffefbe cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x45217d31 cx18_release_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xb4219ca9 cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xf38f8542 cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x7beb9689 cx231xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xc3e5d5fb cx231xx_register_extension
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x7fec274d vp3054_i2c_probe
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xbddb7055 vp3054_i2c_remove
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x091b19b3 cx88_set_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x2a0dfb24 cx88_get_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x32f1cfdd cx88_enum_input
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x6a41feb8 cx88_set_freq
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x6e5c4599 cx8800_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xaec7a4f8 cx88_video_mux
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x6622856e cx8802_unregister_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x71f847ff cx8802_get_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x835d7547 cx8802_cancel_buffers
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xb17a7cfe cx8802_register_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xfa3c20fc cx8802_buf_queue
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xfaaf28cc cx8802_buf_prepare
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x26122bdb cx88_vdev_init
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x33495386 cx88_wakeup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3c816011 cx88_reset
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3f525480 cx88_core_put
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x4282f219 cx88_risc_databuffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x46fac6fa cx88_newstation
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5695ed30 cx88_sram_channel_dump
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5cdbe2dc cx88_sram_channel_setup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x723ad11f cx88_risc_stopper
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x74e9f986 cx88_ir_start
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9348e312 cx88_core_irq
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x99bdcfd8 cx88_set_stereo
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9bcd1572 cx88_set_tvaudio
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9edb0933 cx88_ir_stop
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa28abf86 cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xaf8123c6 cx88_set_tvnorm
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb676053c cx88_risc_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc5380885 cx88_shutdown
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd2d459bb cx88_free_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd312da1c cx88_set_scale
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd96feef5 cx88_core_get
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xff612b15 cx88_get_stereo
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xd6b54134 em28xx_register_extension
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xdf1bb217 em28xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x24778c71 gspca_disconnect
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x45bbbe94 gspca_frame_add
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x68080e8b gspca_get_i_frame
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x6d5fbc61 gspca_suspend
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x8dd6cd5d gspca_auto_gain_n_exposure
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9d084134 gspca_dev_probe
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa5719f90 gspca_resume
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x08e1ce98 ivtv_vapi_result
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x19bc8963 ivtv_init_on_first_open
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x39fe7858 ivtv_clear_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x426c2fc5 ivtv_udma_unmap
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4cbdddef ivtv_api
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x4f9679de ivtv_udma_alloc
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5cb06b8d ivtv_set_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x762d7bc8 ivtv_vapi
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xce2e6f15 ivtv_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf9ce6ba2 ivtv_udma_prepare
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xfa2a7e2e ivtv_udma_setup
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04bafe26 saa7134_tvaudio_setmute
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04c7d8bc saa_dsp_writel
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x10c8d7e2 saa7134_dmasound_init
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3e780b16 saa7134_devlist_lock
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7b55ef0c saa7134_dmasound_exit
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x80e7b03c saa7134_ts_unregister
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa0944608 saa7134_ts_register
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbf37acee saa7134_pgtable_free
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe3d2c9aa saa7134_pgtable_alloc
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xea935a74 saa7134_set_gpio
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xec20e446 saa7134_pgtable_build
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xfd577e30 saa7134_set_dmabits
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x5fb2a637 soc_camera_host_unregister
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x8a065be9 soc_camera_host_register
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x9783180c soc_camera_xlate_by_fourcc
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x9ae1469c soc_camera_apply_sensor_flags
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x8e67ae69 tveeprom_hauppauge_analog
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x9de918ef tveeprom_read
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x02bdc9c0 RingQueue_WakeUpInterruptible
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x0358c42e usbvideo_TestPattern
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x08aedcb3 usbvideo_Deregister
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x1d2cbade usbvideo_DeinterlaceFrame
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x79172f82 RingQueue_Enqueue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xadcd846e RingQueue_Flush
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd26d1f7c RingQueue_Dequeue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xe0df8d49 usbvideo_register
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xed611b43 usbvideo_RegisterVideoDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xfd83942b usbvideo_AllocateDevice
+EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xfcc239bb v4l_compat_translate_ioctl
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb35cd382 v4l2_chip_ident_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xe236b7fe v4l2_chip_match_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x06a41451 v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x67deb52f v4l2_m2m_job_finish
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xad2db86f v4l2_m2m_mmap
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xdf21237e v4l2_m2m_get_vq
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x09339d79 videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x29f4f4ca videobuf_dvb_register_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x3ffffef6 videobuf_dvb_get_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x4a92c565 videobuf_dvb_find_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xa3dc8a22 videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xc0784377 videobuf_dvb_dealloc_frontends
+EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period
+EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x381722a5 video_ioctl2
+EXPORT_SYMBOL drivers/media/video/videodev 0x390ddf65 video_register_device_no_warn
+EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x4b6f9ca7 video_device_release_empty
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl
+EXPORT_SYMBOL drivers/media/video/videodev 0x75940b34 video_devdata
+EXPORT_SYMBOL drivers/media/video/videodev 0x8b3c4ef0 video_usercopy
+EXPORT_SYMBOL drivers/media/video/videodev 0x9a994e6e video_register_device
+EXPORT_SYMBOL drivers/media/video/videodev 0xcf701423 video_device_release
+EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct
+EXPORT_SYMBOL drivers/media/video/videodev 0xf2ce39da video_device_alloc
+EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name
+EXPORT_SYMBOL drivers/media/video/videodev 0xfb27d0e1 video_unregister_device
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x1a29208c videocodec_unregister
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x1dad6544 videocodec_attach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x7476ffbf videocodec_detach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x81ea9576 videocodec_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1e547aaa mpt_free_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x208736f5 mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x264ef0d4 mpt_free_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x321a5d3e mpt_HardResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x38426e0b mpt_get_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x42f3e4d9 mpt_findImVolumes
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4cb445e3 mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4f7e1b24 mpt_attach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x54788931 mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x550cf7d1 mpt_send_handshake_request
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5eaa6b69 mpt_resume
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x610cb53c mpt_detach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x69be8940 mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x74183181 mptbase_sas_persist_operation
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x75946afa mpt_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x792f99ee mpt_device_driver_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8213feb1 mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8c004656 mpt_event_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x97fc7b26 mpt_verify_adapter
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa19cfc2a mpt_config
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb257c545 mpt_halt_firmware
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb259a2f2 mpt_print_ioc_summary
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc379c74c mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xccde2b0c mpt_GetIocState
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdae55269 mpt_put_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe0382acf mpt_alloc_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf8222a42 mpt_reset_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfb6e4c9d mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfc6682e4 mpt_register
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x044792fd mptscsih_bios_param
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x10e25a3e mptscsih_get_scsi_lookup
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x141972ab mptscsih_slave_destroy
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x19dd7a78 mptscsih_change_queue_depth
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x21f0a41b mptscsih_abort
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3675c7b4 mptscsih_event_process
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5362dfad mptscsih_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5c581ad3 mptscsih_scandv_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x61a8af9f mptscsih_host_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x61e480ce mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6203f5a4 mptscsih_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x769d1efe mptscsih_host_attrs
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x78a8b93d mptscsih_dev_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x90401fb0 mptscsih_slave_configure
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x927343d6 mptscsih_taskmgmt_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xaf1d03ea mptscsih_raid_id_to_num
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb7b720b3 mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbe1598a0 mptscsih_resume
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbfe09a9a mptscsih_is_phys_disk
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc8ca69ca mptscsih_ioc_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xec7051ee mptscsih_qcmd
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf5e67ec7 mptscsih_bus_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf8491c98 mptscsih_shutdown
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf9574934 mptscsih_remove
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf97db16c mptscsih_proc_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfff53258 mptscsih_io_done
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x059c43b8 i2o_driver_unregister
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x221f7be4 i2o_driver_notify_device_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2929f8fa i2o_status_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x32dea63d i2o_find_iop
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x45066c33 i2o_parm_field_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4dcbb5b5 i2o_device_claim
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x55e3c5b6 i2o_driver_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8af93a0e i2o_msg_post_wait_mem
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x96c1b059 i2o_exec_lct_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x99c57de7 i2o_driver_notify_controller_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa4a9ae38 i2o_msg_get_wait
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd272d405 i2o_iop_find_device
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd2c53cf2 i2o_parm_table_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdc3a7d0d i2o_driver_notify_device_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe4c61176 i2o_driver_notify_controller_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xec23365b i2o_parm_issue
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xec4f2e0a i2o_event_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xef952cb8 i2o_device_claim_release
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x0ff5deb9 pasic3_read_register
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x9576eb97 pasic3_write_register
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x12c685bb mc13783_lock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x30159e9a mc13783_irq_status
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x67f4771d mc13783_irq_free
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x77dccd19 mc13783_reg_read
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x8add0fab mc13783_irq_unmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xa8fc1a03 mc13783_irq_request
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xb031edcb mc13783_irq_mask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xce655c12 mc13783_irq_request_nounmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xd6b4b0b1 mc13783_irq_ack
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xdc4f5e9a mc13783_reg_rmw
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xecb44513 mc13783_unlock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xedea2f88 mc13783_reg_write
+EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2
+EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1
+EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib
+EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led
+EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw
+EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x1dcc256e ad_dpot_probe
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x5c245570 ad_dpot_remove
+EXPORT_SYMBOL drivers/misc/c2port/core 0x171efc61 c2port_device_unregister
+EXPORT_SYMBOL drivers/misc/c2port/core 0x8b27fa2d c2port_device_register
+EXPORT_SYMBOL drivers/misc/ioc4 0x785e1872 ioc4_register_submodule
+EXPORT_SYMBOL drivers/misc/ioc4 0xd542221c ioc4_unregister_submodule
+EXPORT_SYMBOL drivers/misc/tifm_core 0x08b18bac tifm_register_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x0ed95fab tifm_alloc_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x11934c02 tifm_eject
+EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work
+EXPORT_SYMBOL drivers/misc/tifm_core 0x5623739e tifm_unmap_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x584d4c75 tifm_unregister_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x5a06c08f tifm_add_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x6110753b tifm_free_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x80844be6 tifm_map_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0xccdaf42e tifm_free_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xd5051491 tifm_has_ms_pif
+EXPORT_SYMBOL drivers/misc/tifm_core 0xe8468823 tifm_remove_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xf8520aca tifm_alloc_device
+EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xc5f9f925 mmc_cleanup_queue
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0e3332aa mmc_register_driver
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x101b667d mmc_suspend_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x184b82fb mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x18de335a mmc_wait_for_req
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x1d271b84 mmc_power_restore_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x2e7f0614 mmc_wait_for_cmd
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x46cd4412 mmc_free_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x4db2d0dc mmc_try_claim_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x547786a1 mmc_detect_change
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x56df5a59 mmc_regulator_set_ocr
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x5e1309f0 mmc_remove_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x627325bb mmc_power_save_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x64426370 mmc_host_lazy_disable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x733a0f2b mmc_request_done
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x7c0611e8 mmc_card_awake
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x852656fa mmc_host_enable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8cd9d67b mmc_align_data_size
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x951b145c mmc_set_data_timeout
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x952628ed mmc_host_disable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x962124b7 mmc_alloc_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x96c3d38f mmc_card_sleep
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x983f5399 __mmc_claim_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa3344480 mmc_wait_for_app_cmd
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa907ecb0 mmc_unregister_driver
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc7d0cb5e mmc_resume_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd21b6f69 mmc_add_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xe37bff65 mmc_release_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf37eacf3 mmc_card_can_sleep
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf494f618 mmc_regulator_get_ocrmask
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7deb50cf cfi_read_pri
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xcd6a9114 cfi_fixup
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xe739dab4 cfi_varsize_frob
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x1b722fc2 do_map_probe
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x2216e4b9 map_destroy
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xa602d479 unregister_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xd89142ca register_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x9125064b mtd_do_chip_probe
+EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0xd00aeea9 lpddr_cmdset
+EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x4e61c664 simple_map_init
+EXPORT_SYMBOL drivers/mtd/mtd 0x0a4014b3 add_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtd 0x7862ad8e del_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0xa408c304 mtd_concat_create
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0xe691e51a mtd_concat_destroy
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x394b994b nand_default_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x415f60dd nand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x767dce7f nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x84b1b726 nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x60e515c3 flexonenand_region
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xb771baa7 onenand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xbd9dbbc7 onenand_default_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xe5b7319c onenand_addr
+EXPORT_SYMBOL drivers/net/8390 0x0816e544 ei_poll
+EXPORT_SYMBOL drivers/net/8390 0x2531f8ad ei_tx_timeout
+EXPORT_SYMBOL drivers/net/8390 0x4dd2f821 NS8390_init
+EXPORT_SYMBOL drivers/net/8390 0xa6780321 ei_get_stats
+EXPORT_SYMBOL drivers/net/8390 0xab25755b ei_netdev_ops
+EXPORT_SYMBOL drivers/net/8390 0xbb86546b ei_start_xmit
+EXPORT_SYMBOL drivers/net/8390 0xbd056199 ei_close
+EXPORT_SYMBOL drivers/net/8390 0xc48b9c2a __alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/8390 0xc8a18cdd ei_open
+EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt
+EXPORT_SYMBOL drivers/net/8390 0xf65c470c ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0a291ee4 arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1d37b94b arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x72ea4424 arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x74f7a12b arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8761619f arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd317b4e8 arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe38834a1 arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe8600605 arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf6178b0c alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf7ee6593 arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x021a708c com20020_found
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x045dbc97 com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x1b25ca58 com20020_check
+EXPORT_SYMBOL drivers/net/bnx2 0xebd74ec8 bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/bnx2x 0xa3c33764 bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/cnic 0x2278288f cnic_register_driver
+EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0cdf0da9 dev2t3cdev
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1e2a1987 cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x21e7eeda t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2831f097 cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x284a4810 t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x2ab6d725 cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3b7e6b89 cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4be23b2a cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x59880fff t3_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5b7774d4 t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6b15b47e cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9133e8ff cxgb3_register_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbb90ed32 cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd59a307c cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe1f5a0df cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe3acb0a2 t3_l2e_free
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x12327ac6 cxgb4_netdev_by_hwid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x12358fae cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x1cdb2db3 cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x25c8899b cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3fefcaa7 cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x52d69a1a cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5d49e35c cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7010d0b9 cxgb4_create_server6
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x793c3d69 cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x80ed42cd cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x9262e175 cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb2929ec1 cxgb4_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb8c7a2c6 cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc88fca8c cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xcc7d904d cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd32cab42 cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd6831053 cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xdfa96c72 cxgb4_create_server
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xec3012ed cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xfe7ad4ac cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x0b14df88 hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x8e3ccf0f hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x99b50fe4 hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xbf44837e hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xef1189ac hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x19086218 sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3e31aa21 sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x68876521 sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x88efea32 sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9630b9ab sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9941e030 sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xacada01e sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdd157c76 irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe45a5143 irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xfe30b87c sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage
+EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl
+EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart
+EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag
+EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe
+EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an
+EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok
+EXPORT_SYMBOL drivers/net/mii 0x35521b04 mii_link_ok
+EXPORT_SYMBOL drivers/net/mii 0x442453d8 mii_ethtool_sset
+EXPORT_SYMBOL drivers/net/mii 0x7ab39db1 mii_ethtool_gset
+EXPORT_SYMBOL drivers/net/mii 0x9d3f390f mii_check_media
+EXPORT_SYMBOL drivers/net/mii 0xaa84af3d mii_check_link
+EXPORT_SYMBOL drivers/net/mii 0xaaae132e generic_mii_ioctl
+EXPORT_SYMBOL drivers/net/mii 0xad5e6855 mii_check_gmii_support
+EXPORT_SYMBOL drivers/net/mii 0xecb2cc1a mii_nway_restart
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xb94cc8ee alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xc72d7f36 free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp_generic 0x06cf1c06 ppp_output_wakeup
+EXPORT_SYMBOL drivers/net/ppp_generic 0x36cc3f48 ppp_dev_name
+EXPORT_SYMBOL drivers/net/ppp_generic 0x4067336a ppp_unregister_compressor
+EXPORT_SYMBOL drivers/net/ppp_generic 0x4a7f80a3 ppp_register_net_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0x8934327e ppp_unit_number
+EXPORT_SYMBOL drivers/net/ppp_generic 0x9434fe52 ppp_input_error
+EXPORT_SYMBOL drivers/net/ppp_generic 0xa0a1ff27 ppp_channel_index
+EXPORT_SYMBOL drivers/net/ppp_generic 0xb96b444f ppp_register_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0xcdda1d27 ppp_input
+EXPORT_SYMBOL drivers/net/ppp_generic 0xe1955f93 ppp_unregister_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0xe576863b ppp_register_compressor
+EXPORT_SYMBOL drivers/net/pppox 0x57bd90ba pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/pppox 0x71ac1067 register_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0x7208064e pppox_ioctl
+EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember
+EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init
+EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free
+EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss
+EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress
+EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress
+EXPORT_SYMBOL drivers/net/sungem_phy 0x0ee789e6 mii_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x2fde0df8 tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x3bea83bf tmsdev_term
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x6181ff9c tms380tr_close
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x9a3246f3 tms380tr_open
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd6fa35ea tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x02c61ff2 hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x12758564 alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x3786b72c hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x44caee36 hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x53b83bd5 unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x5d0c7d66 unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x6a64d36d attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x6fad371c detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x93422593 hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x9976be39 register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xab90b683 hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x09a0b29b i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x0a853238 init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x2710bcde stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x4674cc77 reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x082a1dcf ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x59106f93 ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8c3be377 ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x8ea19039 ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x057839aa ath9k_cmn_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3045ad0d ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x345557e0 ath9k_cmn_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3b4cc3b8 ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x4ede3bdc ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7991f1a7 ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf5e023a0 ath9k_cmn_rx_skb_preprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0087e5d6 ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x05e8b1bf ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x05faf710 ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0cb0a95d ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0e060e3d ath9k_hw_cleartxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0eb903e9 ath9k_hw_getcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f71d611 ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0feac951 ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e01b8ca ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1fe05b08 ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22a1c414 ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x23e37abe ath9k_hw_setcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2457c6f1 ath9k_hw_extend_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24a10d73 ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24e4132d ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25a1e27c ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a39df8a ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2afff9c5 ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2ba4c153 ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d166e19 ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2dbe9e54 ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x356e4778 ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x35c5fc17 ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3970cd3d ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b099885 ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x42a4acd7 ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4401678c ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4695c64b ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4bdcf89e ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d5a1b8a ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d9000a6 ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ded982d ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f2c05bf ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5110f3bf ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51949b6c ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56408efa ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x58b9281a ath9k_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5caad0d2 ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63a1e969 ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6494ebdc ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x64c51d96 ath9k_hw_stoptxdma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x680eff80 ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x760bf684 ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x76c7b909 ath9k_hw_procmibevent
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x778e2553 ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82c3c8f0 ath9k_hw_keysetmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x841ca7ba ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8705f284 ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f6dd95f ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x905e9ca2 ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91d5c17d ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x95264011 ath9k_hw_keyisvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x974ea6f2 ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98e0440f ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98f0b1a3 ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9c3f9d67 ath9k_hw_setmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0ef0f12 ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa4e32506 ath9k_hw_stoppcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa500b7bc ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xadf0c94d ath9k_hw_set_keycache_entry
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf6646ea ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xafb6f9f9 ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7cc5872 ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb83154aa ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd9529e5 ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5c9bf6c ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc84b8790 ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd153fcdc ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd45ff592 ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd4fa5055 ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd666cf0a ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd73c4788 ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd9ca87e4 ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb65ac69 ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdfaac7f3 ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe287a0b8 ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea37527e ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0395150 ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1101655 ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6cfc332 ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd57b49c ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfdc0d184 ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x48b237ab atmel_open
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x4d4969cc stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0xbf60d2f2 init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x038df19e hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x15ce0eb1 hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2e102043 hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x377efd10 hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3d1fafea hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3e7b828e hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3f3752e3 hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x45a24abf hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x49fb7919 hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4fe7b894 hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x550e12d5 hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x711ce8fc hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x830f772d prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8ed22668 hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9e15575b hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa53a3df4 hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa80d1ce6 hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xabaf04eb hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaf71d582 hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb8b01a3f hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb9930ac4 hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbfc36540 hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd65d9d06 hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd8016596 hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xde240165 hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x01362a85 libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x02cc4c92 free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x060489e8 libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x15ad7d35 libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x18d1ea04 libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x229f1079 libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x31d3322c libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x33482ebf libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3922e3d1 libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3c8371e5 libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x52ecd712 libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5dd4913f libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x631c35fc alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x69075fc2 libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7708370f libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x80337907 libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x884680cd libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb6580b05 libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc386c1c8 libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe312670b libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfcef6d85 libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x00158493 iwl_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03cb6c6a iwl_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03f2e8c5 iwl_bg_start_internal_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x06215379 iwl_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x074fb591 iwl_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x07b52d9e iwl_rate_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x09df2f1c iwl_add_bssid_station
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x104ee384 iwl_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14c6b6bc iwl_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x15a3f70c iwl_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1956e32b iwl_chain_noise_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1958a3fb iwl_free_tfds_in_queue
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x20954ebf iwl_recover_from_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x22a664c0 iwl_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2762644b iwl_update_tkip_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x27ec6a8d iwl_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2a1a3001 iwl_reply_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b62c0ec iwl_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x30343755 iwl_eeprom_check_version
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32a2a6b9 iwl_ht_enabled
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3308efa4 iwl_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x343073cc iwl_bg_scan_check
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3521588a iwl_sta_modify_sleep_tx_count
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35de89f5 iwl_sta_rx_agg_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x375acb5c iwl_tt_enter_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3918740e iwlcore_eeprom_release_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3c6d19d5 iwl_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x403a3219 iwl_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41d0834d iwl_tt_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x42b1c0b0 iwl_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x455c04ed iwl_verify_ucode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x457d8589 iwl_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x48585c6b iwl_configure_filter
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4b005dbc iwl_free_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4fb9efb5 iwl_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5093646a iwl_bg_abort_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x52544347 iwl_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x52e41bfe iwl_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x55b12d07 iwl_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5ae92af9 iwl_sta_rx_agg_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5dca002e iwl_force_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x602f6339 iwl_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62727d56 iwl_calib_set
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62f753b2 iwl_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x63beb6a0 iwl_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6602d251 iwl_reset_run_time_calib
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x67addbd6 iwl_dump_fh
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x69430cde iwl_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6ab6f915 iwl_rx_missed_beacon_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6e707387 iwlcore_eeprom_verify_signature
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6f58fd80 iwl_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6fd98bda iwl_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x74f7acca iwl_remove_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x77190ee5 iwl_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7c1705ce iwl_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7c27d5b0 iwl_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x820f52f2 iwl_setup_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x829d4070 iwl_calib_free_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8314c72a iwl_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85720fa6 iwl_bg_scan_completed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a0922fe iwlcore_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8d7b7b1c iwl_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8e41cdeb iwl_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8f8a9ecc iwl_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x902c329b iwl_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x91c0d402 iwl_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92da9345 iwl_set_hw_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x940c51aa iwlcore_rts_tx_cmd_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x96392ce0 iwl_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x976c36c4 iwl_sta_tx_modify_enable_tid
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9836f3aa iwl_send_calib_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9869d860 iwl_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x99100d28 iwl_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x996fd496 iwl_set_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9afd4342 iwl_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9cdb835b iwl_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa16a22b0 iwl_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa1c5010a iwl_remove_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa1c9a335 iwl_sensitivity_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa1ca5240 iwlcore_eeprom_acquire_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa504d35b iwl_tt_handler
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5451ff1 iwl_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa79c9424 iwl_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xab43c432 iwl_hw_detect
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb02b322a iwl_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb121ebf3 iwl_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb31fa488 iwl_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb74d95dd iwl_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8403314 iwl_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb9559fc5 iwl_eeprom_get_mac
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbd020e88 iwl_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbf2e49a9 iwl_rx_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc3f584ad iwl_set_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc62c0a5a iwlcore_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc696d702 iwl_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcaf56b25 iwl_restore_default_wep_keys
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcc58a84e iwl_mac_beacon_update
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd11e3ef3 iwl_leds_background
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd2d8cf02 iwl_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd4853b55 iwl_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd5ab93fe iwl_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd7046f07 iwl_dump_csr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd996b49b iwl_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xda116387 iwl_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdbbc37ea iwl_rf_kill_ct_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdd253293 iwl_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdda0de35 iwl_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdda5de75 iwl_set_rxon_chain
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde815a4b iwl_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdf7c0242 iwl_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe0b25aa5 iwl_toggle_tx_ant
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe1e05da2 iwl_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3a40b46 iwl_tt_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe442e772 iwl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7819f8c iwl_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe8d3d252 iwl_led_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe99cabfc iwl_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe9ea49ab iwl_tt_exit_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeafd859d iwlcore_eeprom_enhanced_txpower
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xebf031ec iwl_init_sensitivity
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xebfdacf0 iwl_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xec437c40 iwl_good_plcp_health
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedb4eae6 iwl_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf28651b9 iwl_tx_ant_restriction
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2b081ef iwl_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf76be051 iwl_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf7b4169b iwl_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf7e1fad8 iwl_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa092735 iwl_sta_modify_ps_wake
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa662d37 iwlcore_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff3093a6 iwl_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x02f49a8c alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0f51adc8 __orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2a5362ee orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3a3916ec orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x3e082b4c orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x44b2e401 orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x588c5060 free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5a7efd2f orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x62991aaf hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8453b663 orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8b7591ab orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x954054fc orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa5efd873 orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa9a7585c orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xaad0a127 orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xad7ec531 __orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbd668f29 orinoco_if_add
+EXPORT_SYMBOL drivers/parport/parport 0x0d0de786 parport_set_timeout
+EXPORT_SYMBOL drivers/parport/parport 0x17dd84b8 parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x1d74d551 parport_register_device
+EXPORT_SYMBOL drivers/parport/parport 0x226702d6 parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL drivers/parport/parport 0x2913fbab parport_claim
+EXPORT_SYMBOL drivers/parport/parport 0x3ab7ea9a parport_ieee1284_read_nibble
+EXPORT_SYMBOL drivers/parport/parport 0x3af1ca51 parport_unregister_driver
+EXPORT_SYMBOL drivers/parport/parport 0x3b5f4c5b parport_wait_event
+EXPORT_SYMBOL drivers/parport/parport 0x45f6a9e2 parport_negotiate
+EXPORT_SYMBOL drivers/parport/parport 0x4b2d5893 parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt
+EXPORT_SYMBOL drivers/parport/parport 0x553bdd14 parport_ieee1284_write_compat
+EXPORT_SYMBOL drivers/parport/parport 0x588f73ce parport_put_port
+EXPORT_SYMBOL drivers/parport/parport 0x5cf0357e parport_find_number
+EXPORT_SYMBOL drivers/parport/parport 0x7fbfe7d6 parport_read
+EXPORT_SYMBOL drivers/parport/parport 0x8789a7fb parport_ieee1284_read_byte
+EXPORT_SYMBOL drivers/parport/parport 0x96cbb560 parport_unregister_device
+EXPORT_SYMBOL drivers/parport/parport 0x976f6fd9 parport_ieee1284_epp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x9c604e79 parport_register_driver
+EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler
+EXPORT_SYMBOL drivers/parport/parport 0xa55e7985 parport_write
+EXPORT_SYMBOL drivers/parport/parport 0xb8c8937b parport_register_port
+EXPORT_SYMBOL drivers/parport/parport 0xc9b605c0 parport_ieee1284_epp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0xcb9fb3f2 parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0xd5fe1640 parport_get_port
+EXPORT_SYMBOL drivers/parport/parport 0xd73278da parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0xdd83d29e parport_release
+EXPORT_SYMBOL drivers/parport/parport 0xe5b5533a parport_wait_peripheral
+EXPORT_SYMBOL drivers/parport/parport 0xeb5e51f4 parport_find_base
+EXPORT_SYMBOL drivers/parport/parport 0xf4ec7e9f parport_announce_port
+EXPORT_SYMBOL drivers/parport/parport 0xf70ded39 parport_claim_or_block
+EXPORT_SYMBOL drivers/parport/parport 0xfd4fc8a3 parport_remove_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0x98a3b8cc parport_pc_unregister_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0xf14cb8b1 parport_pc_probe_port
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1395a6ad pcmcia_request_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x149412ce pcmcia_get_mac_from_cis
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x14c7380e pcmcia_map_mem_page
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x295ad3e4 pcmcia_register_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2f2390c9 pcmcia_unregister_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3930d385 pcmcia_dev_present
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3ccca5ed pcmcia_get_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4739004f pcmcia_release_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4cdd8952 pcmcia_access_configuration_register
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4d2ace74 __pcmcia_request_exclusive_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x531fef5c pcmcia_modify_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x700e0488 pcmcia_loop_config
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x949fb1a8 pcmcia_disable_device
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe96a21fb pcmcia_loop_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xea239e16 pcmcia_request_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xee864655 pcmcia_request_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xfe60b347 pcmcia_request_io
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x048e7b37 pcmcia_register_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x113e2e8d pcmcia_parse_uevents
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3617c05c pcmcia_parse_events
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x39dabd74 pcmcia_unregister_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4eac1df7 pcmcia_socket_list_rwsem
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5dd8d03e pcmcia_get_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x795fd560 pcmcia_socket_class
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x79dcb6af pcmcia_reset_card
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcfde0dc1 pccard_register_pcmcia
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe3be8913 pcmcia_put_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf5d57adf pcmcia_get_socket_by_nr
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x20755d5d pccard_nonstatic_ops
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x7db3b69c pccard_static_ops
+EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x50df1aa4 pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x04dad381 fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2da62514 fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6a9e1b6d fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb974bbc7 fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe5b2dd57 fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf2047330 fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xfd0b5180 fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x020c6424 fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x06dc3a0c fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ccaa5bd fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x135ca9a9 fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1a870db6 fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c321563 fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1fb71b61 fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22889dfb fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2436a66f fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x25a682df fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x281661e6 fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x298e130b fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x32ca55c0 fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x32f3acee fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x340bbc0b fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x459722cb fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4bfe45aa fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4dd4d8cf fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4df2bce1 fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x50ec67dc fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5a5705bb fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6155b723 fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67b3f1b7 fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c4f0680 fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x71dd0e66 fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x782210c7 fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x83997517 fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9230cedc fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa119629e fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xae127a08 fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb167e309 fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb4a6a293 fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc37574c5 fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5ff01c4 fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd6be858b fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xda86d0af fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdf87c8b3 fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2880a85 fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe69a7763 libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xef87c209 fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf9876808 _fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfda2e9eb fc_linkup
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xd3ae7987 mraid_mm_register_adp
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x03159d20 osd_req_flush_obsd
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x04f45531 osd_end_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c5d71aa osd_req_write_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x21af2e21 osd_req_format
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2936d5ed osd_execute_request_async
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x365b470f osd_req_list_dev_partitions
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x38b9984f osd_req_add_set_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3d8f511b osd_dev_fini
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4185fa6f osd_req_remove_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x47518a91 osd_req_list_partition_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4fa2f76c osd_req_decode_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5f78c977 osd_req_write
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x79d67e12 osd_req_create_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7fec1e19 osd_req_read_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8971ae8e osd_auto_detect_ver
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x91274d57 osd_req_decode_sense_full
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9c0daa8f osd_req_add_get_attr_page
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9cae7e53 osd_req_flush_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9e304c37 osd_req_flush_collection
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb22fb3a9 osd_execute_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb8c6dd57 osd_req_list_partition_collections
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf9f7739 osd_finalize_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xca6fdbe5 osd_req_flush_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcb2c16c8 osd_req_add_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcbdd41db osd_req_read
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcd458e70 osd_dev_init
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd0a9fed6 osd_req_set_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdbbec7cc osd_req_get_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe193d8a4 osd_start_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe46b8114 osd_req_list_collection_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf18333eb osd_req_remove_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfcd41ce9 osd_req_create_object
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x1c1944e5 osduld_device_info
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x4b63061c osduld_register_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x9cae609d osduld_device_same
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xbec8a006 osduld_put_device
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xf89177b6 osduld_info_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xfd8af079 osduld_path_lookup
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8f0c1fd5 qlogicfas408_bus_reset
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xbbf14180 qlogicfas408_info
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe3b1ddca qlogicfas408_biosparam
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe5efe512 qlogicfas408_queuecommand
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf01db0d2 qlogicfas408_disable_ints
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf3e74c2a qlogicfas408_abort
+EXPORT_SYMBOL drivers/scsi/raid_class 0x01b86338 raid_class_release
+EXPORT_SYMBOL drivers/scsi/raid_class 0x0c11f8e8 raid_component_add
+EXPORT_SYMBOL drivers/scsi/raid_class 0xe0ecd33d raid_class_attach
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x02d4ab48 fc_host_post_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x100de294 fc_vport_terminate
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x169ac86f fc_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x36e283a3 scsi_is_fc_vport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5c25ca51 fc_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5f1e3032 fc_remote_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7eaa1126 fc_host_post_vendor_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x809f1251 fc_vport_create
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x83ca9119 scsi_is_fc_rport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9ef4bbb9 fc_block_scsi_eh
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbc39b9bf fc_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xce78dba7 fc_remote_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf68362da fc_remote_port_rolechg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0cdad0e2 sas_expander_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0e466dff sas_port_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1757f172 sas_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x21996359 sas_phy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x258c2b2a sas_port_alloc_num
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2b9f9608 sas_rphy_remove
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3517e155 sas_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x413d72ac scsi_is_sas_port
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x48f8f7df sas_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x716e1811 sas_phy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x820431f8 scsi_is_sas_rphy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x90ce5a7c scsi_is_sas_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9a2c8ae0 sas_remove_children
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9fa6e73a sas_phy_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa7e16939 sas_port_add_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa7feae70 sas_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb9384e60 sas_rphy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xba65517e sas_port_delete_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd2d95330 sas_rphy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd4b289aa sas_rphy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdf17ba05 sas_port_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe6e2edd4 sas_port_mark_backlink
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe7112768 sas_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xeca920cb sas_phy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfce98373 sas_end_device_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfd37bae0 sas_read_port_mode_page
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x1b8247ea spi_display_xfer_agreement
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x5695b533 spi_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x581ea956 spi_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xd904f334 spi_schedule_dv_device
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xf4aa3eca spi_dv_device
+EXPORT_SYMBOL drivers/serial/8250 0x16b902f5 serial8250_register_port
+EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port
+EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port
+EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x05c809ba uart_write_wakeup
+EXPORT_SYMBOL drivers/serial/serial_core 0x5d62c900 uart_suspend_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x5dfa4c3c uart_resume_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x60ba26b7 uart_get_divisor
+EXPORT_SYMBOL drivers/serial/serial_core 0x6726078e uart_unregister_driver
+EXPORT_SYMBOL drivers/serial/serial_core 0x702d4750 uart_get_baud_rate
+EXPORT_SYMBOL drivers/serial/serial_core 0xab485401 uart_register_driver
+EXPORT_SYMBOL drivers/serial/serial_core 0xb41b6fbe uart_add_one_port
+EXPORT_SYMBOL drivers/serial/serial_core 0xe25a5a67 uart_remove_one_port
+EXPORT_SYMBOL drivers/serial/serial_core 0xe370f843 uart_update_timeout
+EXPORT_SYMBOL drivers/serial/serial_core 0xf43fa01a uart_match_port
+EXPORT_SYMBOL drivers/ssb/ssb 0x00d8ddbb ssb_bus_sdiobus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x05d69e69 ssb_bus_powerup
+EXPORT_SYMBOL drivers/ssb/ssb 0x175fe1e3 ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x1d0e1585 ssb_bus_pcibus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x1fb51d45 ssb_chipco_gpio_control
+EXPORT_SYMBOL drivers/ssb/ssb 0x2df77d7c ssb_dma_translation
+EXPORT_SYMBOL drivers/ssb/ssb 0x4911740e ssb_bus_may_powerdown
+EXPORT_SYMBOL drivers/ssb/ssb 0x4e7191ad ssb_bus_resume
+EXPORT_SYMBOL drivers/ssb/ssb 0x50640522 ssb_dma_free_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0x666a9235 ssb_dma_alloc_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0x7460c58a ssb_pcihost_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x79664755 __ssb_driver_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x8c87117b ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL drivers/ssb/ssb 0x90b3e8eb ssb_device_disable
+EXPORT_SYMBOL drivers/ssb/ssb 0xac72700f ssb_clockspeed
+EXPORT_SYMBOL drivers/ssb/ssb 0xb20d4ae6 ssb_set_devtypedata
+EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base
+EXPORT_SYMBOL drivers/ssb/ssb 0xc99d9d40 ssb_bus_suspend
+EXPORT_SYMBOL drivers/ssb/ssb 0xca8b86d0 ssb_driver_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0xcf978960 ssb_device_is_enabled
+EXPORT_SYMBOL drivers/ssb/ssb 0xd3785e70 ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size
+EXPORT_SYMBOL drivers/ssb/ssb 0xdc983f46 ssb_dma_set_mask
+EXPORT_SYMBOL drivers/ssb/ssb 0xe18c9157 ssb_device_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0xfe2935ec ssb_bus_unregister
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0049c65c DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x00827148 ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x02fad685 ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x074cebb2 ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1e9dfa3d ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2579eddd ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2f466d6b ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x312fb5da ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3369080a ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3913c75a ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a192ac0 ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a2c554c Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c0c6200 ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x51591882 ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x516efa34 ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x57eabce4 ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5aee34b0 DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x60bf1e84 ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6363a1da ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x643fdfbb ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x650f90cb ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6af40104 ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x766eddb6 ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x81437dcb ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x88a687e5 ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b1ef262 ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8ccab23e ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8d96ef93 ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8f3e96da ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9d25f399 ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9d335059 SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa4084869 ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa4733edb IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb0637149 ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb2631f34 ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb47779cc ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb6d40752 ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbf2a1d1f ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc3b08592 ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc59c3227 ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcd0e3477 ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcf1f4771 ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd59868ce ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdec9b16e Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe0a42456 ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe5a96943 ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe78674f5 ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeb53e6ad ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xebb59ce7 Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xed81add2 ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeebb7d27 ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf26bdb64 notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf3d3e38d ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfdd6c9e7 HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x863c6ac6 tm6000_register_extension
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xa8defadd tm6000_unregister_extension
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free
+EXPORT_SYMBOL drivers/telephony/ixj 0xef860f34 ixj_pcmcia_probe
+EXPORT_SYMBOL drivers/telephony/phonedev 0x0f28d4f6 phone_unregister_device
+EXPORT_SYMBOL drivers/telephony/phonedev 0xfacd57c1 phone_register_device
+EXPORT_SYMBOL drivers/usb/gadget/net2280 0x676ce7e9 usb_gadget_unregister_driver
+EXPORT_SYMBOL drivers/usb/gadget/net2280 0xb6f0853f net2280_set_fifo_mode
+EXPORT_SYMBOL drivers/usb/gadget/net2280 0xbd249052 usb_gadget_register_driver
+EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x1c69df9d sl811h_driver
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x07c64543 usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x12894099 usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1e24b6e6 usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2146630a usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3ed377a8 usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4277e5e7 usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5c17a6fc usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6eeae916 usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6f61f908 usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9f72b94f usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xafc1f466 usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb800fd82 usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc3daff3b usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdf7e1856 usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0xbbe51330 usb_serial_resume
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0xc080694e usb_serial_suspend
+EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x9114a97c lcd_device_unregister
+EXPORT_SYMBOL drivers/video/backlight/lcd 0xc8fca131 lcd_device_register
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x3305785f cyber2000fb_enable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xa909b90d cyber2000fb_disable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xeefe51d3 cyber2000fb_get_fb_var
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xf01a7398 cyber2000fb_attach
+EXPORT_SYMBOL drivers/video/display/display 0x2cf5945a display_device_register
+EXPORT_SYMBOL drivers/video/display/display 0x8d9746d3 display_device_unregister
+EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xb13a7f13 mb862xxfb_init_accel
+EXPORT_SYMBOL drivers/video/output 0x8c49d135 video_output_register
+EXPORT_SYMBOL drivers/video/output 0xaf04cdf0 video_output_unregister
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free
+EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x2539e655 svga_tilefill
+EXPORT_SYMBOL drivers/video/svgalib 0x28bdea7d svga_settile
+EXPORT_SYMBOL drivers/video/svgalib 0x398e91a8 svga_get_tilemax
+EXPORT_SYMBOL drivers/video/svgalib 0x50f9148e svga_tileblit
+EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x8791f565 svga_tilecopy
+EXPORT_SYMBOL drivers/video/svgalib 0x8bf8cf5e svga_get_caps
+EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format
+EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll
+EXPORT_SYMBOL drivers/video/svgalib 0xf28b2901 svga_tilecursor
+EXPORT_SYMBOL drivers/video/syscopyarea 0xffc63e41 sys_copyarea
+EXPORT_SYMBOL drivers/video/sysfillrect 0xfa8bf71d sys_fillrect
+EXPORT_SYMBOL drivers/video/sysimgblt 0x9c93f5cb sys_imageblit
+EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga
+EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x9851580a w1_bq27000_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xdb487245 w1_bq27000_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x1509ac4e w1_ds2760_store_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x45344bd7 w1_ds2760_recall_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x849195d5 w1_ds2760_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xcff4f4e6 w1_ds2760_write
+EXPORT_SYMBOL drivers/w1/wire 0x2372a71c w1_remove_master_device
+EXPORT_SYMBOL drivers/w1/wire 0x36c543b1 w1_unregister_family
+EXPORT_SYMBOL drivers/w1/wire 0xa71f40a0 w1_add_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xaba797cc w1_register_family
+EXPORT_SYMBOL fs/configfs/configfs 0x0f997df0 config_group_find_item
+EXPORT_SYMBOL fs/configfs/configfs 0x3b1dd6a8 config_item_get
+EXPORT_SYMBOL fs/configfs/configfs 0x5314a4a0 configfs_unregister_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0x7717fc62 config_item_set_name
+EXPORT_SYMBOL fs/configfs/configfs 0x94f5a5f9 config_group_init
+EXPORT_SYMBOL fs/configfs/configfs 0x9c4c5b95 config_group_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0xaa14d51a configfs_depend_item
+EXPORT_SYMBOL fs/configfs/configfs 0xc0c8efb4 config_item_init
+EXPORT_SYMBOL fs/configfs/configfs 0xcd0561f8 config_item_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0xe1eba613 configfs_undepend_item
+EXPORT_SYMBOL fs/configfs/configfs 0xef4bc318 configfs_register_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xff418563 config_item_put
+EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible
+EXPORT_SYMBOL fs/fscache/fscache 0x1403d76a __fscache_maybe_release_page
+EXPORT_SYMBOL fs/fscache/fscache 0x21ff2bff fscache_io_error
+EXPORT_SYMBOL fs/fscache/fscache 0x22c95e0f fscache_object_slow_work_ops
+EXPORT_SYMBOL fs/fscache/fscache 0x25207638 fscache_init_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x2b0af97c __fscache_wait_on_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x2b965478 __fscache_read_or_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0x3615bb95 __fscache_write_page
+EXPORT_SYMBOL fs/fscache/fscache 0x394c16e9 fscache_cache_cleared_wq
+EXPORT_SYMBOL fs/fscache/fscache 0x3a32720c fscache_obtained_object
+EXPORT_SYMBOL fs/fscache/fscache 0x3fbd13d2 fscache_object_lookup_negative
+EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit
+EXPORT_SYMBOL fs/fscache/fscache 0x4792965b fscache_enqueue_operation
+EXPORT_SYMBOL fs/fscache/fscache 0x4aeeff02 fscache_mark_pages_cached
+EXPORT_SYMBOL fs/fscache/fscache 0x4c6a46ed __fscache_attr_changed
+EXPORT_SYMBOL fs/fscache/fscache 0x58230442 __fscache_read_or_alloc_pages
+EXPORT_SYMBOL fs/fscache/fscache 0x592cc222 __fscache_acquire_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x62efea73 fscache_withdraw_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x68f9c967 __fscache_register_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id
+EXPORT_SYMBOL fs/fscache/fscache 0x754de2d0 __fscache_relinquish_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x7c58f829 __fscache_uncache_page
+EXPORT_SYMBOL fs/fscache/fscache 0x7d727639 fscache_put_operation
+EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states
+EXPORT_SYMBOL fs/fscache/fscache 0x9258e203 __fscache_check_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0xa40e3656 fscache_add_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xa83d20ca fscache_check_aux
+EXPORT_SYMBOL fs/fscache/fscache 0xa863846b __fscache_update_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xb061edce __fscache_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xd06f8779 fscache_fsdef_index
+EXPORT_SYMBOL fs/fscache/fscache 0xedd88e19 __fscache_unregister_netfs
+EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix
+EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new
+EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who
+EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype
+EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4
+EXPORT_SYMBOL fs/quota/quota_tree 0x19fe22e6 qtree_write_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x686726ef qtree_release_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x81f9c8b0 qtree_delete_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xbc197eab qtree_read_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xe2e16b92 qtree_entry_unused
+EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt
+EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table
+EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table
+EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t
+EXPORT_SYMBOL lib/crc-t10dif 0xb6896671 crc_t10dif
+EXPORT_SYMBOL lib/crc7 0xa7587646 crc7
+EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table
+EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd
+EXPORT_SYMBOL net/802/p8023 0x68ad7891 make_8023_client
+EXPORT_SYMBOL net/802/p8023 0xea2f0752 destroy_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x019e5a36 v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x038866ca p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0x13b76f9a p9_client_version
+EXPORT_SYMBOL net/9p/9pnet 0x1789a353 p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0x1a20238b p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0x2332581e p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x2c53e029 p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x2f2945c1 p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x343d78ce p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x4377c137 p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x61657a3d p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x626d91fa v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x6d05378b p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x6ff05405 p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x70819096 p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x740597bc p9_idpool_check
+EXPORT_SYMBOL net/9p/9pnet 0x76387100 p9_client_auth
+EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x7ccfba11 p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0x88120903 p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x896b1812 p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x94ddb4bf v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0xa2bce8b7 p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xa81a1921 p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0xba797033 p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0xca7edc7e p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0xcc7577c7 v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0xd0c332cb p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump
+EXPORT_SYMBOL net/9p/9pnet 0xe125d8a8 p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0xe4b1fbc7 p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xecafa00e p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0xfd150915 p9_client_create
+EXPORT_SYMBOL net/appletalk/appletalk 0x34831d75 alloc_ltalkdev
+EXPORT_SYMBOL net/appletalk/appletalk 0x5f253966 aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0x735f94c6 atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0x92c21d70 atalk_find_dev_addr
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x369386eb atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0x501e9f0c atm_charge
+EXPORT_SYMBOL net/atm/atm 0x70e5f47c atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0x765c87cd atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x7d302e3c atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x88b81ffb register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xa94431df vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xbf4ab8f0 atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0xccdf817c atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal
+EXPORT_SYMBOL net/atm/atm 0xf559e27f deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xf5eab1ab vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0xff659579 vcc_insert_socket
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x46609a18 ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x49cbe685 ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0x96e0b6c1 ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0x9fdc455f ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0xa2c0ca7c ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0xafde21e4 ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0xb130d8a5 ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address
+EXPORT_SYMBOL net/ax25/ax25 0xd6d23be1 ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0xe8af8dfc ax25_listen_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x016fbdd1 hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0ec57b15 hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x111af05a hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x11d0bc3c hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1652a2d0 hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1c15bcc8 bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x21c10c8b bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2326025d hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x26334886 bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2e7797a8 hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x35531b7a hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4ce96749 bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e1e438f bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x61074da7 hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x61a81aab hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x669ac6c3 hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x66bee727 hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6dea09f7 hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6ed0484f bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x73c74aff hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7cc0832a bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x83ba830c hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x874fbc6c hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa8db7de5 hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa934df11 hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb8e6d5c5 bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc313ab99 hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd89aa558 bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xdc0e8c76 hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf1ff3312 bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf373ec38 hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xfbba2994 hci_register_cb
+EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load
+EXPORT_SYMBOL net/bridge/bridge 0x105c50b1 br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x74cedbc6 ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x766e1cb5 ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x8196aaa2 ebt_register_table
+EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client
+EXPORT_SYMBOL net/caif/caif 0x0f161837 cfpkt_extr_head
+EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer
+EXPORT_SYMBOL net/caif/caif 0x0fb045aa cfpkt_qcount
+EXPORT_SYMBOL net/caif/caif 0x14a5c9a7 cfpkt_raw_extract
+EXPORT_SYMBOL net/caif/caif 0x283c1a51 cfpkt_add_body
+EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x31e6487c cfpkt_add_trail
+EXPORT_SYMBOL net/caif/caif 0x33de7b24 cfpkt_more
+EXPORT_SYMBOL net/caif/caif 0x40ec3d41 cfpkt_extr_trail
+EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x4d481eaa cfpkt_log_pkt
+EXPORT_SYMBOL net/caif/caif 0x54deec86 cfpkt_info
+EXPORT_SYMBOL net/caif/caif 0x556e4dec cfpkt_clone_release
+EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create
+EXPORT_SYMBOL net/caif/caif 0x64dc60e8 cfpkt_add_head
+EXPORT_SYMBOL net/caif/caif 0x6a86ba12 cfpkt_create_uplink
+EXPORT_SYMBOL net/caif/caif 0x7029b982 cfpkt_getlen
+EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x7538d94c cfpkt_append
+EXPORT_SYMBOL net/caif/caif 0x7a196fe4 cfpkt_raw_append
+EXPORT_SYMBOL net/caif/caif 0x7e0110a2 cfpkt_erroneous
+EXPORT_SYMBOL net/caif/caif 0x7ec8311c cfpkt_addbdy
+EXPORT_SYMBOL net/caif/caif 0x801f4558 cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x95654cb9 cfpkt_qpeek
+EXPORT_SYMBOL net/caif/caif 0x9bab361c cfpkt_queue
+EXPORT_SYMBOL net/caif/caif 0x9e1ee41c cfpkt_setlen
+EXPORT_SYMBOL net/caif/caif 0xa0a254d9 cfpkt_peek_head
+EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xba0c74e2 cfpkt_destroy
+EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer
+EXPORT_SYMBOL net/caif/caif 0xc038b034 cfpkt_split
+EXPORT_SYMBOL net/caif/caif 0xc557ffe7 cfpkt_iterate
+EXPORT_SYMBOL net/caif/caif 0xc9d362cc cfpktq_create
+EXPORT_SYMBOL net/caif/caif 0xd2c13a45 cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0xda535cc3 cfpkt_dequeue
+EXPORT_SYMBOL net/caif/caif 0xdb7b8fbe cfpkt_pad_trail
+EXPORT_SYMBOL net/caif/caif 0xeb518d31 cfpkt_create
+EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf
+EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer
+EXPORT_SYMBOL net/can/can 0x23761b69 can_rx_register
+EXPORT_SYMBOL net/can/can 0x92eb8931 can_proto_register
+EXPORT_SYMBOL net/can/can 0xb4876180 can_send
+EXPORT_SYMBOL net/can/can 0xfc832484 can_rx_unregister
+EXPORT_SYMBOL net/can/can 0xffe3be25 can_proto_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x138d30b8 wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x17dd4d2a wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x19852600 wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x1e17f991 ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x486dbbd1 ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x493fdfde ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x6f0886af ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x87841716 wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x929e07b2 ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x9411ff71 wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xbb45f3b6 wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xd2185144 ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xe4164870 ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x0d0684c7 arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x112bb12a arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xa4b92e95 arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x12301de7 ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x2632fe45 ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xce4a43c3 ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1104094b nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x295e4983 nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x59d2a6d2 nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5bb74bd8 __nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb5be822a nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb6715edc nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xdab17d78 nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/tunnel4 0x7fd16726 xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv4/tunnel4 0xf8b7542f xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv6/ipv6 0x04b01178 icmpv6_send
+EXPORT_SYMBOL net/ipv6/ipv6 0x0b0d888b icmpv6_err_convert
+EXPORT_SYMBOL net/ipv6/ipv6 0x0c7a294e xfrm6_prepare_output
+EXPORT_SYMBOL net/ipv6/ipv6 0x129737ad xfrm6_input_addr
+EXPORT_SYMBOL net/ipv6/ipv6 0x2377bcfb nf_ip6_checksum
+EXPORT_SYMBOL net/ipv6/ipv6 0x32eec954 inet6_register_protosw
+EXPORT_SYMBOL net/ipv6/ipv6 0x4947234f ip6_route_output
+EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier
+EXPORT_SYMBOL net/ipv6/ipv6 0x5c0d3997 ipv6_getsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0x70bd43c6 xfrm6_find_1stfragopt
+EXPORT_SYMBOL net/ipv6/ipv6 0x77603ea0 inet6_bind
+EXPORT_SYMBOL net/ipv6/ipv6 0x863d9a10 inet6_release
+EXPORT_SYMBOL net/ipv6/ipv6 0x89de3b96 inet6_unregister_protosw
+EXPORT_SYMBOL net/ipv6/ipv6 0x89e2bd98 ipv6_push_nfrag_opts
+EXPORT_SYMBOL net/ipv6/ipv6 0x8cd6de5a ndisc_build_skb
+EXPORT_SYMBOL net/ipv6/ipv6 0x8e877238 in6_dev_finish_destroy
+EXPORT_SYMBOL net/ipv6/ipv6 0x90d7c2bc ip6_xmit
+EXPORT_SYMBOL net/ipv6/ipv6 0x9631267d ip6_frag_match
+EXPORT_SYMBOL net/ipv6/ipv6 0x9640859f inet6_getname
+EXPORT_SYMBOL net/ipv6/ipv6 0xa20e926a xfrm6_rcv_spi
+EXPORT_SYMBOL net/ipv6/ipv6 0xad42c18a ipv6_setsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0xbe2aa01f ndisc_send_skb
+EXPORT_SYMBOL net/ipv6/ipv6 0xc5e474e6 ipv6_dev_get_saddr
+EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier
+EXPORT_SYMBOL net/ipv6/ipv6 0xcf4cdf2b ip6_route_me_harder
+EXPORT_SYMBOL net/ipv6/ipv6 0xd0fbc038 inet6_ioctl
+EXPORT_SYMBOL net/ipv6/ipv6 0xd62c560a rt6_lookup
+EXPORT_SYMBOL net/ipv6/ipv6 0xd9c91a5a ipv6_chk_addr
+EXPORT_SYMBOL net/ipv6/ipv6 0xe4550ff2 inet6_add_protocol
+EXPORT_SYMBOL net/ipv6/ipv6 0xe690b8fd __ipv6_isatap_ifid
+EXPORT_SYMBOL net/ipv6/ipv6 0xeca5b227 ip6_frag_init
+EXPORT_SYMBOL net/ipv6/ipv6 0xeea68db0 ipv6_chk_prefix
+EXPORT_SYMBOL net/ipv6/ipv6 0xf4e22649 inet6_del_protocol
+EXPORT_SYMBOL net/ipv6/ipv6 0xf8f59ee3 xfrm6_rcv
+EXPORT_SYMBOL net/ipv6/ipv6 0xfb370947 ndisc_mc_map
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x385dafb8 ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x6c1a2ebc ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x9792fda2 ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xd49162a0 ip6t_do_table
+EXPORT_SYMBOL net/ipv6/tunnel6 0x3179ecdb xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/tunnel6 0x703c2654 xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x15669548 xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x8accbc33 xfrm6_tunnel_free_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xff3c7848 xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x20c3dc2d ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x501ab747 ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5c18d16d ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6b925fee ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7cca9043 ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9653b236 ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf65ccb9c ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xfa9bffaa ircomm_open
+EXPORT_SYMBOL net/irda/irda 0x069d00f8 iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value
+EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service
+EXPORT_SYMBOL net/irda/irda 0x08569fa5 iriap_open
+EXPORT_SYMBOL net/irda/irda 0x0aff0efb irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x0bd06bac irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0x0be09c95 irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0x0be3f114 irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x1f3be860 irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x22caf86e hashbin_remove_this
+EXPORT_SYMBOL net/irda/irda 0x289f507b proc_irda
+EXPORT_SYMBOL net/irda/irda 0x2d3765bc hashbin_find
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug
+EXPORT_SYMBOL net/irda/irda 0x3e56b722 alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0x40d60dfe irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0x4479ef51 hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value
+EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service
+EXPORT_SYMBOL net/irda/irda 0x538d5d22 irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0x572583cf irias_new_object
+EXPORT_SYMBOL net/irda/irda 0x576b720d irlap_close
+EXPORT_SYMBOL net/irda/irda 0x589c4330 async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x5f55c3a2 hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x6227308f irlap_open
+EXPORT_SYMBOL net/irda/irda 0x6323917e irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies
+EXPORT_SYMBOL net/irda/irda 0x6b8ab421 irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client
+EXPORT_SYMBOL net/irda/irda 0x74c6eb16 hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x769bdf0d irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x7aa1ddbc irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0x7de04a81 irias_find_object
+EXPORT_SYMBOL net/irda/irda 0x7e01f6e1 irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0x80da7829 irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x93146490 irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0xa39609d6 irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0xa7d9174e irlmp_open_lsap
+EXPORT_SYMBOL net/irda/irda 0xaae155da irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0xb3cdab47 irttp_dup
+EXPORT_SYMBOL net/irda/irda 0xb5c93e6b irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0xb710786e hashbin_get_first
+EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value
+EXPORT_SYMBOL net/irda/irda 0xba2001b9 irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute
+EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request
+EXPORT_SYMBOL net/irda/irda 0xbf285a4c hashbin_get_next
+EXPORT_SYMBOL net/irda/irda 0xc3a512dd hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0xc7b9d1fc iriap_close
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xe017e9ee irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xedf805a9 irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0xef16660b hashbin_new
+EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma
+EXPORT_SYMBOL net/irda/irda 0xfdfdb742 async_unwrap_char
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x2722cffa l2tp_tunnel_destruct
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x9a68593c l2tp_recv_common
+EXPORT_SYMBOL net/lapb/lapb 0x062ecd66 lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0x4b7239dd lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0x4bd460a2 lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0x61088597 lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0x933e6a19 lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0xc3ce56e9 lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0xe640a6fe lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0xe7da3f85 lapb_disconnect_request
+EXPORT_SYMBOL net/mac80211/mac80211 0x019b6c14 ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x114a1d7d __ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x17a8d436 ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x1c61cbe0 ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x2f6e83b3 ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x30e78121 ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x3cb996d2 rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x46ecad73 ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x4b7d91f3 ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x4c5462fd __ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x535248af ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x544447e8 ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x5534f45a ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x55fcb269 ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0x708c3f83 __ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x741d118d ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x7e911886 ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x87e9c5e4 ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x980abac7 ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x993ec367 ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x9ccfb89b ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x9d8923c5 ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x9e699f26 ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xa0e1ecaf ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xa0fbf73e ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0xa2616a98 wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xa902108d ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xaae0770d ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0xad15b781 ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xae6d89d4 ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0xaf6e3aa1 ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xc57fa21a ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0xc9fca312 ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0xcaab2cda __ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xd9d092c7 ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xe18b2bc8 ieee80211_get_tkip_key
+EXPORT_SYMBOL net/mac80211/mac80211 0xeb28785c ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4028984b register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5ac25cab register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7e285fa6 ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x891ef4c4 ip_vs_skb_replace
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x89a82f4d register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xab5a2fbd unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xae40f2be ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb30e88f7 unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb8d99c9c ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcddb12ee ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe53f18a7 ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xb96dfed1 __nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xfe21f587 __nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xea7af22d nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x0bb00956 xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x26574889 xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x2a114f2f xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x71855b0d xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x832eb15d xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x9592f43d xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x9fbdf523 xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xc62dca91 xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xcae56cfc xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0xe92a84d7 xt_unregister_match
+EXPORT_SYMBOL net/phonet/phonet 0x090429bd phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0x5f590238 phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0x7c5e6e5d pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0x85e4aec8 pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0x97264e7f phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0xb9dd6e53 phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0xbaaaa7e8 pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0xf175c06e pn_sock_hash
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x019ddb84 rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x04a50605 rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0cf5cf0f rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3af4de89 key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x514185cf rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x678f0973 rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x79190c93 rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7c664647 rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7d4abca1 rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa7710308 rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xabb410ab rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xabfa341d rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbf2bb23b rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd9b4c76a rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfbad49f9 rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/sunrpc/sunrpc 0xb3441138 svc_pool_stats_open
+EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes
+EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected
+EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect
+EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport
+EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x1c1644d7 tipc_register_media
+EXPORT_SYMBOL net/tipc/tipc 0x257a6517 tipc_forward_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge
+EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port
+EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach
+EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name
+EXPORT_SYMBOL net/tipc/tipc 0x4ec59699 tipc_createport_raw
+EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw
+EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode
+EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid
+EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast
+EXPORT_SYMBOL net/tipc/tipc 0x6b06b7dc tipc_send_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x7bf66053 tipc_send_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port
+EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr
+EXPORT_SYMBOL net/tipc/tipc 0x8a64c545 tipc_continue
+EXPORT_SYMBOL net/tipc/tipc 0x979d02df tipc_get_port
+EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port
+EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown
+EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name
+EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish
+EXPORT_SYMBOL net/tipc/tipc 0xb39ffbc9 tipc_reject_msg
+EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send
+EXPORT_SYMBOL net/tipc/tipc 0xbd236ad8 tipc_send_buf
+EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0xd0c7d4f3 tipc_createport
+EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity
+EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach
+EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer
+EXPORT_SYMBOL net/tipc/tipc 0xe0006d78 tipc_recv_msg
+EXPORT_SYMBOL net/tipc/tipc 0xe74575d5 tipc_forward_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished
+EXPORT_SYMBOL net/tipc/tipc 0xeacd6eb3 tipc_send_buf_fast
+EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle
+EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x1cfa97e1 register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x56ebc347 wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0xd7bade47 wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x001d137d wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x0364ed01 cfg80211_action_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0c4b8e93 regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x0d1f53e1 ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x14141de5 cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x189a5986 cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x1ebef6c2 cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0x20a299f7 cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x25124b84 cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x2692afec __cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x29c4f703 wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x29dae695 ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0x2cbd9020 cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x2e834f91 cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0x3fe0cf67 cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x416a275b wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x4f30f99e cfg80211_rx_action
+EXPORT_SYMBOL net/wireless/cfg80211 0x55464373 cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x5bffb5b2 wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0x5cdc9cfc __cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x5dbd5d99 cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x5df77c0e cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0x61b1bd3a __ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x6739c178 wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x69619c93 wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x6e9b60a5 cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x70cdaa73 cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0x7f8db108 cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x82096495 ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x84b4f4db wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x8d36aa75 __cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x91e9c308 cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x98dfb0e8 cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x98e7283c wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0xa063297f cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0xa2b8948f cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xb359f210 cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xc56fe1e2 cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xc7a10d96 cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0xdd8380e3 ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0xdde03ba5 cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xe5e434dc cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xe7b5d247 cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0xf00ea132 freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0xf0a07fbc cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0xf33ffac2 cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x49ce1335 lib80211_crypt_quiescing
+EXPORT_SYMBOL net/wireless/lib80211 0x4fa6e875 lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0x78638ed4 lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0x9afb7307 lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x9d2ff46f lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xaca6e82e lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0xb0c09a50 lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xb3d634ee lib80211_crypt_deinit_entries
+EXPORT_SYMBOL sound/ac97_bus 0x81ba1a5b ac97_bus_type
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x72987005 snd_seq_kernel_client_enqueue_blocking
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb32be772 snd_seq_create_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xcea7f5d9 snd_seq_event_port_attach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xdaca892e snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x23c5a0fc snd_seq_device_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xf160288b snd_seq_device_register_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x0df2e317 snd_midi_event_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x26885c56 snd_midi_event_no_status
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7ab3ab98 snd_midi_event_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7ddf2a2e snd_midi_event_reset_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x85c27c7a snd_midi_event_reset_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x85e4ac82 snd_midi_event_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd4945484 snd_midi_event_encode_byte
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xfcf964a7 snd_midi_event_free
+EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x971e337e snd_virmidi_new
+EXPORT_SYMBOL sound/core/snd 0x044eabda snd_ctl_free_one
+EXPORT_SYMBOL sound/core/snd 0x09329f83 snd_info_free_entry
+EXPORT_SYMBOL sound/core/snd 0x11c594b9 snd_component_add
+EXPORT_SYMBOL sound/core/snd 0x128d98ec snd_device_free
+EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program
+EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer
+EXPORT_SYMBOL sound/core/snd 0x1a0fef59 snd_ctl_rename_id
+EXPORT_SYMBOL sound/core/snd 0x1bdf5b50 snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL sound/core/snd 0x1dddcdfa snd_add_device_sysfs_file
+EXPORT_SYMBOL sound/core/snd 0x1f721f2e snd_ctl_register_ioctl
+EXPORT_SYMBOL sound/core/snd 0x2196f8cd snd_ctl_notify
+EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line
+EXPORT_SYMBOL sound/core/snd 0x2cc251e2 snd_ctl_unregister_ioctl
+EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit
+EXPORT_SYMBOL sound/core/snd 0x39a2a1e7 snd_card_file_add
+EXPORT_SYMBOL sound/core/snd 0x3c2743c1 snd_ctl_boolean_mono_info
+EXPORT_SYMBOL sound/core/snd 0x3c964614 _snd_ctl_add_slave
+EXPORT_SYMBOL sound/core/snd 0x41c3a8c8 snd_seq_root
+EXPORT_SYMBOL sound/core/snd 0x42912469 snd_ctl_add
+EXPORT_SYMBOL sound/core/snd 0x444608ac snd_info_create_module_entry
+EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card
+EXPORT_SYMBOL sound/core/snd 0x52077a66 snd_register_device_for_dev
+EXPORT_SYMBOL sound/core/snd 0x53ddc52f snd_card_create
+EXPORT_SYMBOL sound/core/snd 0x58b61a0a snd_unregister_device
+EXPORT_SYMBOL sound/core/snd 0x5aab7b50 snd_jack_set_key
+EXPORT_SYMBOL sound/core/snd 0x5ac53111 snd_info_register
+EXPORT_SYMBOL sound/core/snd 0x5c8c7513 snd_card_disconnect
+EXPORT_SYMBOL sound/core/snd 0x5d654e22 snd_ctl_remove
+EXPORT_SYMBOL sound/core/snd 0x5f89de7e snd_ctl_find_id
+EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio
+EXPORT_SYMBOL sound/core/snd 0x6d1ddcaa snd_info_create_card_entry
+EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable
+EXPORT_SYMBOL sound/core/snd 0x78a9abd7 snd_card_proc_new
+EXPORT_SYMBOL sound/core/snd 0x7d016a23 snd_jack_set_parent
+EXPORT_SYMBOL sound/core/snd 0x7db1722a snd_jack_new
+EXPORT_SYMBOL sound/core/snd 0x7fbfcbf1 snd_card_free_when_closed
+EXPORT_SYMBOL sound/core/snd 0x82d07a0d snd_device_new
+EXPORT_SYMBOL sound/core/snd 0x8b341a58 snd_card_register
+EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major
+EXPORT_SYMBOL sound/core/snd 0x95b9f4d6 snd_device_register
+EXPORT_SYMBOL sound/core/snd 0x982cee78 snd_card_set_id
+EXPORT_SYMBOL sound/core/snd 0x99afebbe snd_ctl_remove_id
+EXPORT_SYMBOL sound/core/snd 0x9b172edd snd_ctl_make_virtual_master
+EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str
+EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id
+EXPORT_SYMBOL sound/core/snd 0xa321b5a4 snd_cards
+EXPORT_SYMBOL sound/core/snd 0xa9b59804 snd_jack_report
+EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data
+EXPORT_SYMBOL sound/core/snd 0xc12c7d6f snd_pci_quirk_lookup
+EXPORT_SYMBOL sound/core/snd 0xcae85afa snd_ctl_new1
+EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio
+EXPORT_SYMBOL sound/core/snd 0xd1157735 release_and_free_resource
+EXPORT_SYMBOL sound/core/snd 0xd1921e2a snd_card_free
+EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf
+EXPORT_SYMBOL sound/core/snd 0xe9ca6c95 snd_power_wait
+EXPORT_SYMBOL sound/core/snd 0xedc6aeca snd_ctl_find_numid
+EXPORT_SYMBOL sound/core/snd 0xf314c652 snd_card_file_remove
+EXPORT_SYMBOL sound/core/snd-hwdep 0xdab1469e snd_hwdep_new
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x23d30678 snd_dma_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x27aa1c4b snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x7e0c9dc5 snd_dma_reserve_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xab706d99 snd_dma_alloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xcc6e7dd3 snd_dma_get_reserved_buf
+EXPORT_SYMBOL sound/core/snd-pcm 0x026456a7 snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any
+EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x060372e8 snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL sound/core/snd-pcm 0x08f3265b snd_pcm_suspend_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x139a25dc snd_pcm_stop
+EXPORT_SYMBOL sound/core/snd-pcm 0x16d3c2ce snd_pcm_mmap_data
+EXPORT_SYMBOL sound/core/snd-pcm 0x19e83f76 snd_pcm_lib_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed
+EXPORT_SYMBOL sound/core/snd-pcm 0x295da1e5 snd_pcm_lib_readv
+EXPORT_SYMBOL sound/core/snd-pcm 0x2fe273d2 snd_pcm_lib_read
+EXPORT_SYMBOL sound/core/snd-pcm 0x31a09946 snd_pcm_set_ops
+EXPORT_SYMBOL sound/core/snd-pcm 0x3277e134 snd_pcm_lib_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x32d8bac5 snd_pcm_hw_rule_add
+EXPORT_SYMBOL sound/core/snd-pcm 0x369d2766 snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty
+EXPORT_SYMBOL sound/core/snd-pcm 0x3cdc6090 snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL sound/core/snd-pcm 0x4b74bc35 snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size
+EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x52638fdd snd_pcm_new
+EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value
+EXPORT_SYMBOL sound/core/snd-pcm 0x550c8e56 snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL sound/core/snd-pcm 0x5cc0b155 snd_pcm_open_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence
+EXPORT_SYMBOL sound/core/snd-pcm 0x5fa96f0f snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64
+EXPORT_SYMBOL sound/core/snd-pcm 0x654657d7 snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width
+EXPORT_SYMBOL sound/core/snd-pcm 0x6966ea74 snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear
+EXPORT_SYMBOL sound/core/snd-pcm 0x77d8c7bf snd_pcm_hw_constraint_step
+EXPORT_SYMBOL sound/core/snd-pcm 0x78f3ab8a snd_pcm_release_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0x7db9c365 snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL sound/core/snd-pcm 0x7eca4331 snd_pcm_limit_hw_rates
+EXPORT_SYMBOL sound/core/snd-pcm 0x872978d6 snd_pcm_lib_mmap_noncached
+EXPORT_SYMBOL sound/core/snd-pcm 0x873304b6 snd_pcm_new_stream
+EXPORT_SYMBOL sound/core/snd-pcm 0x8c7ed979 snd_pcm_hw_constraint_list
+EXPORT_SYMBOL sound/core/snd-pcm 0x93a5f163 snd_pcm_kernel_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x96408314 snd_pcm_hw_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned
+EXPORT_SYMBOL sound/core/snd-pcm 0xaa789bfb snd_pcm_suspend
+EXPORT_SYMBOL sound/core/snd-pcm 0xaac61677 snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0xb0ef08c9 snd_pcm_lib_writev
+EXPORT_SYMBOL sound/core/snd-pcm 0xb5bc83b2 snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL sound/core/snd-pcm 0xb77bd59d snd_pcm_lib_write
+EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL sound/core/snd-pcm 0xcaf9a664 snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL sound/core/snd-pcm 0xcbc7fd5d snd_pcm_set_sync
+EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xdbb72044 snd_pcm_hw_param_first
+EXPORT_SYMBOL sound/core/snd-pcm 0xdbd902fb _snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width
+EXPORT_SYMBOL sound/core/snd-pcm 0xea6f711a snd_pcm_notify
+EXPORT_SYMBOL sound/core/snd-pcm 0xecea8ca1 snd_pcm_period_elapsed
+EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum
+EXPORT_SYMBOL sound/core/snd-pcm 0xf6d7e5d6 snd_pcm_link_rwlock
+EXPORT_SYMBOL sound/core/snd-pcm 0xfeb3afbf snd_pcm_hw_param_last
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x02b23aed snd_rawmidi_info_select
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x07a550e6 snd_rawmidi_receive
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x0c86599c snd_rawmidi_set_ops
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x1e3e55e6 snd_rawmidi_output_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x283828a3 snd_rawmidi_transmit
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x474d6fb6 snd_rawmidi_transmit_peek
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x59b69e24 snd_rawmidi_transmit_empty
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x63422a2d snd_rawmidi_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x71cba1b1 snd_rawmidi_transmit_ack
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x75c81e5e snd_rawmidi_kernel_open
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x78b04d70 snd_rawmidi_kernel_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x9b09da53 snd_rawmidi_kernel_release
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xb1490039 snd_rawmidi_drain_input
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xb2651079 snd_rawmidi_drain_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xbbcab4b0 snd_rawmidi_input_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xdaa392f7 snd_rawmidi_drop_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xf67ee220 snd_rawmidi_kernel_write
+EXPORT_SYMBOL sound/core/snd-timer 0x028a8872 snd_timer_resolution
+EXPORT_SYMBOL sound/core/snd-timer 0x2c21ff77 snd_timer_pause
+EXPORT_SYMBOL sound/core/snd-timer 0x319fd804 snd_timer_global_free
+EXPORT_SYMBOL sound/core/snd-timer 0x41c83f9c snd_timer_global_new
+EXPORT_SYMBOL sound/core/snd-timer 0x5eab961e snd_timer_start
+EXPORT_SYMBOL sound/core/snd-timer 0x7fc04c93 snd_timer_continue
+EXPORT_SYMBOL sound/core/snd-timer 0x824d6807 snd_timer_global_register
+EXPORT_SYMBOL sound/core/snd-timer 0xa39abd9c snd_timer_close
+EXPORT_SYMBOL sound/core/snd-timer 0xa40d122b snd_timer_open
+EXPORT_SYMBOL sound/core/snd-timer 0xb1ad5e31 snd_timer_stop
+EXPORT_SYMBOL sound/core/snd-timer 0xb2d6c258 snd_timer_new
+EXPORT_SYMBOL sound/core/snd-timer 0xf4c2d6dc snd_timer_interrupt
+EXPORT_SYMBOL sound/core/snd-timer 0xfec76ba4 snd_timer_notify
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x24804e0a snd_mpu401_uart_new
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x11fa5365 snd_opl3_load_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x211e04ad snd_opl3_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x67ecae46 snd_opl3_init
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6b6d080b snd_opl3_reset
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x941417e1 snd_opl3_timer_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x965dc17c snd_opl3_hwdep_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc9572503 snd_opl3_find_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd0fe24f7 snd_opl3_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf2494da6 snd_opl3_create
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x2c25c47c snd_vx_create
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x35372380 snd_vx_load_boot_image
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3c528685 snd_vx_resume
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x509535da snd_vx_setup_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xa54ee4a4 snd_vx_dsp_boot
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc50b9e72 snd_vx_free_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd6809a44 snd_vx_check_reg_bit
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xea33df06 snd_vx_suspend
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfebeb023 snd_vx_dsp_load
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x432d7f2f snd_ak4114_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x5959a143 snd_ak4114_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x5f60144a snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x9efe52d2 snd_ak4114_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xae6f0054 snd_ak4114_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc7847512 snd_ak4114_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x757025d4 snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x7a3f6cef snd_ak4117_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x97e65f16 snd_ak4117_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xabc086c5 snd_ak4117_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xc3c882c8 snd_ak4117_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe1b6e62e snd_ak4117_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x18bfdd0e snd_akm4xxx_init
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x70e75d46 snd_akm4xxx_reset
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xbb12dcf0 snd_akm4xxx_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xc2e5b74a snd_akm4xxx_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x71915005 snd_pt2258_reset
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xcdf6e656 snd_pt2258_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x7124e7e8 snd_tea575x_init
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xeca310e6 snd_tea575x_exit
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x146ca0cb snd_cs8427_create
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x285c17d1 snd_cs8427_iec958_active
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x74416c25 snd_cs8427_reg_write
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x7eec928d snd_cs8427_iec958_pcm
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xea0720e1 snd_cs8427_iec958_build
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x2346cf81 snd_i2c_probeaddr
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x533eb437 snd_i2c_readbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x76acc2c8 snd_i2c_sendbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x76b33c5b snd_i2c_device_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x989f28ce snd_i2c_bus_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xdd4ca077 snd_i2c_device_free
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x0ff97f2a snd_sbmixer_resume
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x1e871677 snd_sbmixer_suspend
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4ef1e5c6 snd_sbmixer_new
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x670ea8eb snd_sbmixer_read
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x7ecd47f6 snd_sbdsp_create
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8e927a99 snd_sbmixer_add_ctl
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb0f4a038 snd_sbdsp_command
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb27b9e54 snd_sbdsp_get_byte
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb39eb763 snd_sbmixer_write
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xdd40e0ab snd_sbdsp_reset
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x056a2ca7 snd_sb16dsp_configure
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x8396b7ab snd_sb16dsp_get_pcm_ops
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x8edec573 snd_sb16dsp_pcm
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0f672236 snd_ac97_read
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0f918f25 snd_ac97_tune_hardware
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1adb5e6f snd_ac97_write_cache
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x37426138 snd_ac97_update
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3d3de55b snd_ac97_pcm_close
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x41c968ed snd_ac97_update_bits
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4dc02fa2 snd_ac97_resume
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5ab09100 snd_ac97_get_short_name
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6e11cdba snd_ac97_suspend
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x78c7a911 snd_ac97_bus
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x81e76c0b snd_ac97_write
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8396a410 snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa33c6925 snd_ac97_update_power
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xaad2f2a0 snd_ac97_pcm_assign
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdf7a3f3e snd_ac97_set_rate
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xebff43c3 snd_ac97_pcm_open
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf9440cb0 snd_ac97_mixer
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x10e6ce54 snd_emu10k1_synth_bzero
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3191c3ff snd_emu10k1_synth_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x34669eb7 snd_emu10k1_voice_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5e7a60d2 snd_emu10k1_ptr_read
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x732828c4 snd_emu10k1_synth_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9601348b snd_emu10k1_ptr_write
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x9bc35971 snd_emu10k1_voice_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd8594526 snd_emu10k1_memblk_map
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf99407fb snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x36951928 snd_hda_parse_generic_codec
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x048fe2f3 snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x313504aa snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x47e9cd3e snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x4609f1d1 snd_trident_start_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7fdff1c0 snd_trident_stop_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe545d331 snd_trident_alloc_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xf23037e3 snd_trident_free_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xf767efd0 snd_trident_write_voice_regs
+EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x23a1ea4f uda134x_dai
+EXPORT_SYMBOL sound/soundcore 0xa48f6662 sound_class
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x1f8844f3 snd_emux_new
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x252dac99 snd_emux_lock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x2b7f1d06 snd_emux_unlock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x57bce0e0 snd_emux_free
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xa60d4270 snd_emux_terminate_all
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xcbea2784 snd_emux_register
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x33dc5202 snd_util_memhdr_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x43178f7e snd_util_mem_avail
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x5d25ada3 __snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x694c6b7a snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x74624765 __snd_util_memblk_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x80b8d66f snd_util_memhdr_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xc535653c snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xe6ce4268 __snd_util_mem_free
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xb3600d54 snd_usbmidi_create
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x04dca738 lirc_unregister_driver
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x68872c34 lirc_register_driver
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0xba202e2f lirc_get_pdata
+EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list
+EXPORT_SYMBOL vmlinux 0x00092daa napi_frags_finish
+EXPORT_SYMBOL vmlinux 0x003fa36b ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0x00433c72 pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0x0047e0c0 vfs_readdir
+EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x00d1d26f proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0x00d1e25c pci_request_regions
+EXPORT_SYMBOL vmlinux 0x00e7b012 __devm_request_region
+EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x01000e51 schedule
+EXPORT_SYMBOL vmlinux 0x01011cfc mapping_tagged
+EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr
+EXPORT_SYMBOL vmlinux 0x0117d6b6 journal_load
+EXPORT_SYMBOL vmlinux 0x012e826a macio_dev_put
+EXPORT_SYMBOL vmlinux 0x013eebde pci_enable_device
+EXPORT_SYMBOL vmlinux 0x015af802 fb_blank
+EXPORT_SYMBOL vmlinux 0x015db6ff __generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x017611f9 blk_insert_request
+EXPORT_SYMBOL vmlinux 0x0187a2ba dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x018b7d20 i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap
+EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data
+EXPORT_SYMBOL vmlinux 0x01f03c2f find_lock_page
+EXPORT_SYMBOL vmlinux 0x02270412 dev_uc_flush
+EXPORT_SYMBOL vmlinux 0x02384e8d ioremap_flags
+EXPORT_SYMBOL vmlinux 0x024d9b02 tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0x024fe8d5 udp_table
+EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x026be8e5 xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0x026f782e keyring_clear
+EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table
+EXPORT_SYMBOL vmlinux 0x02a94f74 replace_mount_options
+EXPORT_SYMBOL vmlinux 0x02aec767 blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02ec1025 journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact
+EXPORT_SYMBOL vmlinux 0x02f0069b unregister_cdrom
+EXPORT_SYMBOL vmlinux 0x0302c48b idr_destroy
+EXPORT_SYMBOL vmlinux 0x03095328 secpath_dup
+EXPORT_SYMBOL vmlinux 0x031ba9bf atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0x031dc795 sock_map_fd
+EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x03439890 vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x034a060f generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x03541669 skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x037a0cba kfree
+EXPORT_SYMBOL vmlinux 0x03a3b0a6 security_file_permission
+EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03c502c4 get_disk
+EXPORT_SYMBOL vmlinux 0x03c9a297 sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0x03d0be03 pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0x03d9765c pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0x03e78e8b ps2_begin_command
+EXPORT_SYMBOL vmlinux 0x03e8c774 bdput
+EXPORT_SYMBOL vmlinux 0x03fcbf73 sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x0400429e set_irq_chip
+EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x042fd888 force_sig
+EXPORT_SYMBOL vmlinux 0x0446f3e3 __pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x0495ee88 __sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0x04b773d8 netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x04bbedd7 proto_register
+EXPORT_SYMBOL vmlinux 0x04f441ff scsi_put_command
+EXPORT_SYMBOL vmlinux 0x05143fa4 of_platform_device_create
+EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups
+EXPORT_SYMBOL vmlinux 0x0543d988 tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns
+EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion
+EXPORT_SYMBOL vmlinux 0x05be4567 devm_free_irq
+EXPORT_SYMBOL vmlinux 0x05c341f0 pci_release_regions
+EXPORT_SYMBOL vmlinux 0x05d27386 elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0x05ec1fc3 tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x05ee764e kmem_cache_name
+EXPORT_SYMBOL vmlinux 0x05f309ac d_rehash
+EXPORT_SYMBOL vmlinux 0x05f97894 inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x061651be strcat
+EXPORT_SYMBOL vmlinux 0x065d939b tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0x066ab1bb set_blocksize
+EXPORT_SYMBOL vmlinux 0x0675c7eb atomic64_cmpxchg
+EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx
+EXPORT_SYMBOL vmlinux 0x068d433b dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x06d7f13f unlock_rename
+EXPORT_SYMBOL vmlinux 0x06ea04c7 xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x06f4db50 ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn
+EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8
+EXPORT_SYMBOL vmlinux 0x0745bb59 scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x076c3af5 of_mdiobus_register
+EXPORT_SYMBOL vmlinux 0x07972cf8 sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable
+EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong
+EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07b9e774 kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0x07c3e162 d_splice_alias
+EXPORT_SYMBOL vmlinux 0x07c44a77 of_find_property
+EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07cf0d7b blk_start_queue
+EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x07dc5619 pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0x081ebce8 find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x0827d19d bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x082987a7 jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses
+EXPORT_SYMBOL vmlinux 0x0855ccb1 backlight_force_update
+EXPORT_SYMBOL vmlinux 0x089518a4 soft_cursor
+EXPORT_SYMBOL vmlinux 0x08acb29e scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0x08c3f50a scsi_dma_map
+EXPORT_SYMBOL vmlinux 0x08ded414 ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var
+EXPORT_SYMBOL vmlinux 0x08febba4 inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0x0936a4f4 scsi_remove_target
+EXPORT_SYMBOL vmlinux 0x09440e84 audit_log_format
+EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages
+EXPORT_SYMBOL vmlinux 0x09748281 alloc_hippi_dev
+EXPORT_SYMBOL vmlinux 0x09775cdc kref_get
+EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x0990bd4d pci_clear_master
+EXPORT_SYMBOL vmlinux 0x09a63ef9 ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d0b9e3 vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0x09d6b9c1 skb_set_dev
+EXPORT_SYMBOL vmlinux 0x09dc8284 tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0x09ecca7d bio_endio
+EXPORT_SYMBOL vmlinux 0x0a1da047 set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a2dc69f dquot_operations
+EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr
+EXPORT_SYMBOL vmlinux 0x0a3eb1d0 alloc_disk_node
+EXPORT_SYMBOL vmlinux 0x0a3f2a9b dw_spi_remove_host
+EXPORT_SYMBOL vmlinux 0x0a66c242 dquot_commit
+EXPORT_SYMBOL vmlinux 0x0a777bd6 generic_fillattr
+EXPORT_SYMBOL vmlinux 0x0a8229b1 filemap_fault
+EXPORT_SYMBOL vmlinux 0x0a88a903 rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0acc66c7 read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x0b16d7f1 rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b319336 inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize
+EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b760686 bio_unmap_user
+EXPORT_SYMBOL vmlinux 0x0b7ce08a xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0x0ba4a453 vfs_symlink
+EXPORT_SYMBOL vmlinux 0x0bba5e98 vfs_fsync
+EXPORT_SYMBOL vmlinux 0x0bbd047a blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x0bcaf6e7 genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x0be10607 napi_get_frags
+EXPORT_SYMBOL vmlinux 0x0c12e626 __debugger_bpt
+EXPORT_SYMBOL vmlinux 0x0c150544 __bio_clone
+EXPORT_SYMBOL vmlinux 0x0c195e20 down_timeout
+EXPORT_SYMBOL vmlinux 0x0c35f2c6 sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x0c47e5f3 of_find_device_by_node
+EXPORT_SYMBOL vmlinux 0x0c4ce9af pci_disable_device
+EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c6b855c iput
+EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0c9b6089 nvram_get_size
+EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0ca55147 kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cc42fc7 file_remove_suid
+EXPORT_SYMBOL vmlinux 0x0cea6d5e proc_symlink
+EXPORT_SYMBOL vmlinux 0x0d12ef44 __xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x0d264cc2 remove_proc_entry
+EXPORT_SYMBOL vmlinux 0x0d384f6c genphy_resume
+EXPORT_SYMBOL vmlinux 0x0d38a2db blk_plug_device
+EXPORT_SYMBOL vmlinux 0x0d401544 dev_driver_string
+EXPORT_SYMBOL vmlinux 0x0d407c82 ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0x0d43e4ee dev_close
+EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d7b490d vc_resize
+EXPORT_SYMBOL vmlinux 0x0d887f95 skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0x0d95fd8e ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0dbf38b8 mol_trampoline
+EXPORT_SYMBOL vmlinux 0x0dcc7a1b skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x0dcf90d9 generic_setxattr
+EXPORT_SYMBOL vmlinux 0x0de9a87a journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x0e2770aa input_register_handle
+EXPORT_SYMBOL vmlinux 0x0e3a67f7 kobject_set_name
+EXPORT_SYMBOL vmlinux 0x0e48bbd5 tty_port_close_start
+EXPORT_SYMBOL vmlinux 0x0e52592a panic
+EXPORT_SYMBOL vmlinux 0x0e787b67 iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x0e793ac5 neigh_destroy
+EXPORT_SYMBOL vmlinux 0x0e884c7b cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0x0e945715 dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0x0e99ea7b devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0x0ead91b5 eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x0ec98808 ida_init
+EXPORT_SYMBOL vmlinux 0x0ef20db1 kernstart_addr
+EXPORT_SYMBOL vmlinux 0x0efeeb5e da903x_query_status
+EXPORT_SYMBOL vmlinux 0x0f28cb91 nvram_read_byte
+EXPORT_SYMBOL vmlinux 0x0f440b98 inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x1017b6f1 clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0x10370ed4 pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0x104b723b nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint
+EXPORT_SYMBOL vmlinux 0x10cc0385 bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x10d34e56 blkdev_fsync
+EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10ed8567 scsi_init_io
+EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu
+EXPORT_SYMBOL vmlinux 0x10f89bde is_bad_inode
+EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype
+EXPORT_SYMBOL vmlinux 0x11110e05 freeze_super
+EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x11276f73 pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0x113a8ab4 bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x1162e001 blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x11659c47 pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0x11663cec adb_register
+EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x1180130f get_phy_id
+EXPORT_SYMBOL vmlinux 0x118f01ea putname
+EXPORT_SYMBOL vmlinux 0x11bb1946 pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x11cac9fe fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0x11db75c9 kobject_add
+EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin
+EXPORT_SYMBOL vmlinux 0x121e40bb jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0x1233a98a pipe_lock
+EXPORT_SYMBOL vmlinux 0x123afe22 blk_put_request
+EXPORT_SYMBOL vmlinux 0x12a9154c cap_file_mmap
+EXPORT_SYMBOL vmlinux 0x12d1694f inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc
+EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level
+EXPORT_SYMBOL vmlinux 0x12e9bbe8 I_BDEV
+EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x12fdf9af tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x132152b9 generic_write_sync
+EXPORT_SYMBOL vmlinux 0x1333b06e ps2_handle_response
+EXPORT_SYMBOL vmlinux 0x13446012 dm_unregister_target
+EXPORT_SYMBOL vmlinux 0x1357f85e names_cachep
+EXPORT_SYMBOL vmlinux 0x138bdfdf slow_work_register_user
+EXPORT_SYMBOL vmlinux 0x13933580 lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x13ac9ee2 bio_init
+EXPORT_SYMBOL vmlinux 0x13f2663a unlock_buffer
+EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation
+EXPORT_SYMBOL vmlinux 0x13f5dee1 console_stop
+EXPORT_SYMBOL vmlinux 0x1407c6e7 kmap_prot
+EXPORT_SYMBOL vmlinux 0x141b8472 blk_end_request
+EXPORT_SYMBOL vmlinux 0x142a0046 serio_open
+EXPORT_SYMBOL vmlinux 0x143dbce7 pcibios_resource_to_bus
+EXPORT_SYMBOL vmlinux 0x144736b2 register_sysctl_table
+EXPORT_SYMBOL vmlinux 0x146cce7f dev_getbyhwaddr
+EXPORT_SYMBOL vmlinux 0x146f70fc pci_set_mwi
+EXPORT_SYMBOL vmlinux 0x14762091 blk_remove_plug
+EXPORT_SYMBOL vmlinux 0x149a4ff3 in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x14a207f5 fget
+EXPORT_SYMBOL vmlinux 0x14caa695 proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x14d34c7a xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0x14f305fa generic_make_request
+EXPORT_SYMBOL vmlinux 0x14fbb20d lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x15008951 rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x150afed3 km_report
+EXPORT_SYMBOL vmlinux 0x15131503 scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0x153ff1da blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0x15461bc2 dquot_initialize
+EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x1566fab8 dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0x1582e8bf sock_no_mmap
+EXPORT_SYMBOL vmlinux 0x15a41ce4 do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0x15a8f38b do_splice_to
+EXPORT_SYMBOL vmlinux 0x15e80c85 ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0x15fba160 unregister_qdisc
+EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token
+EXPORT_SYMBOL vmlinux 0x160e762d tty_shutdown
+EXPORT_SYMBOL vmlinux 0x16265347 vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0x165403f0 skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0x1654c6f9 of_get_mac_address
+EXPORT_SYMBOL vmlinux 0x166f7a62 pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0x1678ae5f setup_new_exec
+EXPORT_SYMBOL vmlinux 0x167d4fe0 d_lookup
+EXPORT_SYMBOL vmlinux 0x16a74049 tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0x16f62729 elv_register_queue
+EXPORT_SYMBOL vmlinux 0x170aee64 tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x170ec140 seq_printf
+EXPORT_SYMBOL vmlinux 0x1731226f tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x176bf970 blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0x17aa156a __ucmpdi2
+EXPORT_SYMBOL vmlinux 0x17b1a753 scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17efae28 blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x1817b5d6 of_parse_phandles_with_args
+EXPORT_SYMBOL vmlinux 0x181f153e pci_dev_put
+EXPORT_SYMBOL vmlinux 0x1830bb36 datagram_poll
+EXPORT_SYMBOL vmlinux 0x18338cf3 blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x1849b8e9 pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0x187acbf4 dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0x1880158b __scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x1889b95c swiotlb_sync_sg_for_cpu
+EXPORT_SYMBOL vmlinux 0x188b3925 __netdev_alloc_page
+EXPORT_SYMBOL vmlinux 0x1892cdc2 scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0x189c4897 simple_set_mnt
+EXPORT_SYMBOL vmlinux 0x18a34cd9 scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0x18b92e4c do_SAK
+EXPORT_SYMBOL vmlinux 0x18c61d1d consume_skb
+EXPORT_SYMBOL vmlinux 0x18d28e52 key_payload_reserve
+EXPORT_SYMBOL vmlinux 0x1904b696 jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0x191917cc llc_add_pack
+EXPORT_SYMBOL vmlinux 0x19222b79 default_file_splice_read
+EXPORT_SYMBOL vmlinux 0x19317066 inet_register_protosw
+EXPORT_SYMBOL vmlinux 0x1954f04f framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x1956e6ab dev_addr_del
+EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock
+EXPORT_SYMBOL vmlinux 0x1975cc65 tty_port_hangup
+EXPORT_SYMBOL vmlinux 0x197cf19d fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x199b0f3e journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19a70f2a try_to_release_page
+EXPORT_SYMBOL vmlinux 0x19aaa810 pci_find_bus
+EXPORT_SYMBOL vmlinux 0x19b156c8 seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x19b1b2fc pid_task
+EXPORT_SYMBOL vmlinux 0x19b8f686 __kfree_skb
+EXPORT_SYMBOL vmlinux 0x19d2fe01 journal_start_commit
+EXPORT_SYMBOL vmlinux 0x19f51579 simple_rmdir
+EXPORT_SYMBOL vmlinux 0x1a0c6c4b scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x1a14ef68 mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0x1a1a6733 i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0x1a3d4fa7 pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0x1a41a7eb serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x1a677b02 get_user_pages
+EXPORT_SYMBOL vmlinux 0x1a6daddf down_read
+EXPORT_SYMBOL vmlinux 0x1a808e0f netlink_set_err
+EXPORT_SYMBOL vmlinux 0x1a882364 down_killable
+EXPORT_SYMBOL vmlinux 0x1a9f5c0c scsi_remove_host
+EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in
+EXPORT_SYMBOL vmlinux 0x1aa30cc0 gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1ace7788 posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0x1ad33966 dm_put_device
+EXPORT_SYMBOL vmlinux 0x1afa974b security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b046e13 genphy_suspend
+EXPORT_SYMBOL vmlinux 0x1b180dde sk_wait_data
+EXPORT_SYMBOL vmlinux 0x1b37948a llc_sap_close
+EXPORT_SYMBOL vmlinux 0x1b5dbbf2 tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton
+EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1bbd928a unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0x1bcf1d17 alloc_etherdev_mq
+EXPORT_SYMBOL vmlinux 0x1bd92df4 tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0x1be015e3 audit_log_start
+EXPORT_SYMBOL vmlinux 0x1c0e23ad ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0x1c19a00e bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete
+EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check
+EXPORT_SYMBOL vmlinux 0x1cb707f5 sock_init_data
+EXPORT_SYMBOL vmlinux 0x1cb94dd9 inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cd0d6c0 kobject_put
+EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc
+EXPORT_SYMBOL vmlinux 0x1ceb2a43 nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x1cf3387c unregister_binfmt
+EXPORT_SYMBOL vmlinux 0x1cf7585b tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0x1d22967c call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d4abf0c xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x1d507ec9 start_tty
+EXPORT_SYMBOL vmlinux 0x1d710953 dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0x1d8a4f86 tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0x1d8af1a8 ip_mc_rejoin_group
+EXPORT_SYMBOL vmlinux 0x1d98c1a1 load_nls_default
+EXPORT_SYMBOL vmlinux 0x1dada68c dev_addr_init
+EXPORT_SYMBOL vmlinux 0x1dc311aa dev_mc_del
+EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1de01fe0 tty_hangup
+EXPORT_SYMBOL vmlinux 0x1dfb9b71 abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x1e0ae691 tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x1e1b0901 genl_register_ops
+EXPORT_SYMBOL vmlinux 0x1e4b6062 pagevec_lookup
+EXPORT_SYMBOL vmlinux 0x1e563909 xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr
+EXPORT_SYMBOL vmlinux 0x1e90ed50 fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0x1e9c8595 ether_setup
+EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1ebdf267 phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x1efbd0e1 blk_init_tags
+EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set
+EXPORT_SYMBOL vmlinux 0x1f05a72b phy_sanitize_settings
+EXPORT_SYMBOL vmlinux 0x1f153ee8 phy_device_register
+EXPORT_SYMBOL vmlinux 0x1f1a2dcc skb_gso_segment
+EXPORT_SYMBOL vmlinux 0x1f1f3799 vfs_create
+EXPORT_SYMBOL vmlinux 0x1f355ad0 lookup_bdev
+EXPORT_SYMBOL vmlinux 0x1fbcb1ed phy_driver_register
+EXPORT_SYMBOL vmlinux 0x1fc030df end_page_writeback
+EXPORT_SYMBOL vmlinux 0x1fcb38e7 jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x1fccc67b scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag
+EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat
+EXPORT_SYMBOL vmlinux 0x1ff6d6b7 block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul
+EXPORT_SYMBOL vmlinux 0x20030ecd ioremap
+EXPORT_SYMBOL vmlinux 0x200b9cf7 __lock_buffer
+EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x204b2324 netdev_state_change
+EXPORT_SYMBOL vmlinux 0x2062389d netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x20a70a13 tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x20d5383e tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x2110fe9b tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0x2120e6a9 rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0x21370249 unregister_netdev
+EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16
+EXPORT_SYMBOL vmlinux 0x2160c78d kobject_del
+EXPORT_SYMBOL vmlinux 0x217c1c5c vfs_mknod
+EXPORT_SYMBOL vmlinux 0x219f7265 scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0x21c6ad02 free_netdev
+EXPORT_SYMBOL vmlinux 0x21c8e783 mpage_readpage
+EXPORT_SYMBOL vmlinux 0x21ca429b genphy_update_link
+EXPORT_SYMBOL vmlinux 0x22017e30 sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x221dfde0 idr_pre_get
+EXPORT_SYMBOL vmlinux 0x22291b07 unregister_console
+EXPORT_SYMBOL vmlinux 0x222923d2 dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq
+EXPORT_SYMBOL vmlinux 0x223423b7 tty_port_put
+EXPORT_SYMBOL vmlinux 0x2242e5f7 blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log
+EXPORT_SYMBOL vmlinux 0x2270e889 truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x228275ff blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0x2288378f system_state
+EXPORT_SYMBOL vmlinux 0x2298cddf kmem_cache_alloc_notrace
+EXPORT_SYMBOL vmlinux 0x22a100d5 cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound
+EXPORT_SYMBOL vmlinux 0x22b60254 single_release
+EXPORT_SYMBOL vmlinux 0x2302984e dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x2306d261 of_find_node_by_name
+EXPORT_SYMBOL vmlinux 0x2321f371 seq_write
+EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul
+EXPORT_SYMBOL vmlinux 0x232be1eb sock_kmalloc
+EXPORT_SYMBOL vmlinux 0x232f3ced dev_open
+EXPORT_SYMBOL vmlinux 0x23566f90 dev_load
+EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x23e11e58 proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0x23ee844c netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0x23f9f3e5 simple_link
+EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node
+EXPORT_SYMBOL vmlinux 0x242a2752 lro_flush_all
+EXPORT_SYMBOL vmlinux 0x2437eedb inode_init_always
+EXPORT_SYMBOL vmlinux 0x243db5e0 blk_requeue_request
+EXPORT_SYMBOL vmlinux 0x2459b85b cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x24762e80 neigh_parms_release
+EXPORT_SYMBOL vmlinux 0x24849353 of_match_device
+EXPORT_SYMBOL vmlinux 0x248ea467 cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0x249bb1ad netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0x24ae8588 tty_port_init
+EXPORT_SYMBOL vmlinux 0x24affea8 gen_pool_create
+EXPORT_SYMBOL vmlinux 0x24b6e4a6 find_get_page
+EXPORT_SYMBOL vmlinux 0x24c509a4 sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x24ca22ff do_splice_from
+EXPORT_SYMBOL vmlinux 0x24dd5859 path_put
+EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function
+EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x250b6761 vlan_gro_receive
+EXPORT_SYMBOL vmlinux 0x252d7640 panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x254564e4 devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x25783410 override_creds
+EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x25c91429 phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x25cf8049 matroxfb_PLL_calcclock
+EXPORT_SYMBOL vmlinux 0x25e63f51 pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0x25f3bd2e atomic64_xchg
+EXPORT_SYMBOL vmlinux 0x2643544a devm_ioremap_prot
+EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc
+EXPORT_SYMBOL vmlinux 0x268f575e mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0x26911e4d gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x26a90515 swiotlb_sync_single_for_cpu
+EXPORT_SYMBOL vmlinux 0x26ab781a pci_disable_link_state
+EXPORT_SYMBOL vmlinux 0x26b22c88 bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x26c8a8dc ide_proc_register_driver
+EXPORT_SYMBOL vmlinux 0x26ca995a scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0x26d19ff9 writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0x26e3805a ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x26e84b57 abort_creds
+EXPORT_SYMBOL vmlinux 0x26efb25d remove_arg_zero
+EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x272c9acd pmu_battery_count
+EXPORT_SYMBOL vmlinux 0x273046eb abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0x27544709 sock_no_accept
+EXPORT_SYMBOL vmlinux 0x276c9d18 dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0x277af174 boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0x27864d57 memparse
+EXPORT_SYMBOL vmlinux 0x27871fa9 mpage_writepages
+EXPORT_SYMBOL vmlinux 0x279340f8 skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x27a6fbec tcp_read_sock
+EXPORT_SYMBOL vmlinux 0x27a99237 blk_queue_ordered
+EXPORT_SYMBOL vmlinux 0x27abc388 init_task
+EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic
+EXPORT_SYMBOL vmlinux 0x27d48f43 skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x2830fee2 idr_get_next
+EXPORT_SYMBOL vmlinux 0x2835c88f jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll
+EXPORT_SYMBOL vmlinux 0x2860bcd7 of_phy_connect_fixed_link
+EXPORT_SYMBOL vmlinux 0x288b10b3 input_unregister_device
+EXPORT_SYMBOL vmlinux 0x2894fb88 nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28b047b2 generic_permission
+EXPORT_SYMBOL vmlinux 0x28c0a855 ide_dma_off_quietly
+EXPORT_SYMBOL vmlinux 0x28e2806b remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0x2918ad06 __inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0x2945bb3b pmac_resume_agp_for_card
+EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x298a588d blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0x29933b60 journal_init_dev
+EXPORT_SYMBOL vmlinux 0x29a87e2b proc_dostring
+EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set
+EXPORT_SYMBOL vmlinux 0x29bf2605 destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x29d8f5f5 skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x29dde92c rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x2a0cb0cf jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x2a0cebcd tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0x2a1ba816 journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x2a1c1e26 swiotlb_unmap_sg_attrs
+EXPORT_SYMBOL vmlinux 0x2a2355cf mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature
+EXPORT_SYMBOL vmlinux 0x2a88d848 i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0x2a8b3769 pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0x2a9a0686 kmem_cache_create
+EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp
+EXPORT_SYMBOL vmlinux 0x2aa7e293 call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0x2ab07bf2 matroxfb_vgaHWrestore
+EXPORT_SYMBOL vmlinux 0x2ab0f8e4 blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0x2ad31827 ip_ct_attach
+EXPORT_SYMBOL vmlinux 0x2ae04d5e adb_client_list
+EXPORT_SYMBOL vmlinux 0x2af84e72 fsnotify_destroy_mark_by_entry
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b0c4f15 inet_recvmsg
+EXPORT_SYMBOL vmlinux 0x2b1643e4 commit_creds
+EXPORT_SYMBOL vmlinux 0x2b2173fe lock_sock_fast
+EXPORT_SYMBOL vmlinux 0x2b688622 complete_and_exit
+EXPORT_SYMBOL vmlinux 0x2b90cdaa mempool_create
+EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2ba7e988 ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x2ba91e83 fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0x2bc61da1 program_check_exception
+EXPORT_SYMBOL vmlinux 0x2bd447b9 registered_fb
+EXPORT_SYMBOL vmlinux 0x2beedda2 tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x2c34c9b9 blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x2c4623ac dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0x2c4ec8fb i2c_use_client
+EXPORT_SYMBOL vmlinux 0x2c707593 devm_iounmap
+EXPORT_SYMBOL vmlinux 0x2c800026 submit_bh
+EXPORT_SYMBOL vmlinux 0x2c8df441 proto_unregister
+EXPORT_SYMBOL vmlinux 0x2caf6c74 eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0x2cc4026e may_umount_tree
+EXPORT_SYMBOL vmlinux 0x2ceff670 pci_disable_msi
+EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic
+EXPORT_SYMBOL vmlinux 0x2cf32143 vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d1af463 kmap_high
+EXPORT_SYMBOL vmlinux 0x2d34a1b4 dq_data_lock
+EXPORT_SYMBOL vmlinux 0x2d376777 dev_uc_init
+EXPORT_SYMBOL vmlinux 0x2d3a0a42 pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2dc6242a journal_abort
+EXPORT_SYMBOL vmlinux 0x2dda3027 __bread
+EXPORT_SYMBOL vmlinux 0x2dffca50 sk_filter
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e2d2e55 posix_acl_permission
+EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem
+EXPORT_SYMBOL vmlinux 0x2e4a56ef nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x2e8af85a xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x2e96c19f neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x2e9adcbd dma_pool_free
+EXPORT_SYMBOL vmlinux 0x2ebc827f i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0x2ec4ea6e xfrm_register_type
+EXPORT_SYMBOL vmlinux 0x2eee14ce xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x2f1e9055 netpoll_setup
+EXPORT_SYMBOL vmlinux 0x2f461160 rtnl_unicast
+EXPORT_SYMBOL vmlinux 0x2f7718e0 jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0x2f945690 i2c_register_driver
+EXPORT_SYMBOL vmlinux 0x2fe836d4 jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0x2ff211fa km_policy_expired
+EXPORT_SYMBOL vmlinux 0x3000e7c9 arp_create
+EXPORT_SYMBOL vmlinux 0x3006f8e4 fd_install
+EXPORT_SYMBOL vmlinux 0x30101306 init_net
+EXPORT_SYMBOL vmlinux 0x303b86f2 rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0x30688e93 scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0x306fb173 dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0x3097f788 ip_dev_find
+EXPORT_SYMBOL vmlinux 0x309bce7d pci_get_slot
+EXPORT_SYMBOL vmlinux 0x30c40762 bio_copy_kern
+EXPORT_SYMBOL vmlinux 0x30eed4d2 sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x310917fe sort
+EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x311bc14e qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0x313c8b4a macio_request_resources
+EXPORT_SYMBOL vmlinux 0x313e64d1 kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d default_red
+EXPORT_SYMBOL vmlinux 0x31601fea phy_detach
+EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit
+EXPORT_SYMBOL vmlinux 0x3170d08c security_inode_init_security
+EXPORT_SYMBOL vmlinux 0x318b94a4 dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0x318bf85c lookup_hash
+EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc
+EXPORT_SYMBOL vmlinux 0x31925351 thaw_bdev
+EXPORT_SYMBOL vmlinux 0x31a223bc wireless_send_event
+EXPORT_SYMBOL vmlinux 0x31a2452d brioctl_set
+EXPORT_SYMBOL vmlinux 0x31a59d7b tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x31e79b07 pcibios_fixup_bus
+EXPORT_SYMBOL vmlinux 0x31e919fe key_put
+EXPORT_SYMBOL vmlinux 0x3203c4f1 tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x32090f92 lock_rename
+EXPORT_SYMBOL vmlinux 0x32091bc1 tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x32159522 nf_afinfo
+EXPORT_SYMBOL vmlinux 0x32376007 gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0x324484bc mdiobus_register
+EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat
+EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb
+EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint
+EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy
+EXPORT_SYMBOL vmlinux 0x3292f3e2 gen_pool_add
+EXPORT_SYMBOL vmlinux 0x32b16cfe bio_put
+EXPORT_SYMBOL vmlinux 0x32c36c32 kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x32ce6470 vfs_read
+EXPORT_SYMBOL vmlinux 0x32d83276 tty_devnum
+EXPORT_SYMBOL vmlinux 0x32ec8d3b dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0x32f80c08 blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0x3303d3c7 ilookup5
+EXPORT_SYMBOL vmlinux 0x332af451 kmap_atomic_prot
+EXPORT_SYMBOL vmlinux 0x332fbc9c ide_dma_off
+EXPORT_SYMBOL vmlinux 0x336dd5cb pneigh_lookup
+EXPORT_SYMBOL vmlinux 0x33705880 mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x33a452c2 xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0x33ae2aa9 current_fs_time
+EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page
+EXPORT_SYMBOL vmlinux 0x33ca911a elv_rb_find
+EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0x33d44196 fsync_bdev
+EXPORT_SYMBOL vmlinux 0x3406b8f8 splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x343797e8 key_task_permission
+EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long
+EXPORT_SYMBOL vmlinux 0x3457f0f7 scsi_device_put
+EXPORT_SYMBOL vmlinux 0x34595e07 scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0x345b36d5 wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x34818676 bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x34909d0f __lookup_one_len
+EXPORT_SYMBOL vmlinux 0x349cba85 strchr
+EXPORT_SYMBOL vmlinux 0x34a007aa flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x34aa37c3 __mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x34db2d2f input_flush_device
+EXPORT_SYMBOL vmlinux 0x34e37009 rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0x34eaf3ae dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0x352509ef blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0x35390678 scsi_print_command
+EXPORT_SYMBOL vmlinux 0x35406317 neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x355d5b4c dm_get_device
+EXPORT_SYMBOL vmlinux 0x356cac75 qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x3576b2cb iget_locked
+EXPORT_SYMBOL vmlinux 0x357be829 fb_find_mode
+EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator
+EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x35dc2e47 clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0x35f17e2a tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x35f26463 sock_create_kern
+EXPORT_SYMBOL vmlinux 0x3617f323 vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x363e7004 arp_find
+EXPORT_SYMBOL vmlinux 0x364b3a12 cdrom_mode_sense
+EXPORT_SYMBOL vmlinux 0x365ef2ab pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x36726ef4 dev_mc_sync
+EXPORT_SYMBOL vmlinux 0x36841c67 scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0x36965309 inode_permission
+EXPORT_SYMBOL vmlinux 0x36ab6d41 fput
+EXPORT_SYMBOL vmlinux 0x36b1df55 mnt_pin
+EXPORT_SYMBOL vmlinux 0x36b930c7 of_register_driver
+EXPORT_SYMBOL vmlinux 0x36daf233 page_address
+EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x37080c46 __starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport
+EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level
+EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf
+EXPORT_SYMBOL vmlinux 0x3750a217 i2c_release_client
+EXPORT_SYMBOL vmlinux 0x3782e98b clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0x378a4cd8 __skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic
+EXPORT_SYMBOL vmlinux 0x37aa1f21 __irq_regs
+EXPORT_SYMBOL vmlinux 0x37bac514 splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37c6bcff netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0x37c96fd6 key_validate
+EXPORT_SYMBOL vmlinux 0x37cd5f7c napi_reuse_skb
+EXPORT_SYMBOL vmlinux 0x37df229b sock_no_getname
+EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64
+EXPORT_SYMBOL vmlinux 0x37ff5c27 xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0x38062ce2 bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0x38133c8b dqstats
+EXPORT_SYMBOL vmlinux 0x3830bbd6 i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38caa24a simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x38f0cff8 llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios
+EXPORT_SYMBOL vmlinux 0x391ece02 skb_make_writable
+EXPORT_SYMBOL vmlinux 0x394a509f f_setown
+EXPORT_SYMBOL vmlinux 0x395417ef xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0x397ad715 mdiobus_free
+EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x399e0537 powerpc_debugfs_root
+EXPORT_SYMBOL vmlinux 0x39a3e2e6 bio_clone
+EXPORT_SYMBOL vmlinux 0x39a4fc4f __nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x39c805fc check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x39de6975 km_state_expired
+EXPORT_SYMBOL vmlinux 0x39f042c5 neigh_ifdown
+EXPORT_SYMBOL vmlinux 0x39fc3a94 request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0x3a0137bf read_cache_pages
+EXPORT_SYMBOL vmlinux 0x3a1d62c5 DAC1064_global_init
+EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a3435d1 nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x3a37433d cad_pid
+EXPORT_SYMBOL vmlinux 0x3a4f20c3 sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3ad18a16 kthread_bind
+EXPORT_SYMBOL vmlinux 0x3b186f36 tcp_shutdown
+EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b3d52a7 console_start
+EXPORT_SYMBOL vmlinux 0x3b7ed4cf register_key_type
+EXPORT_SYMBOL vmlinux 0x3baa6bdb locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x3bb3fd22 blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3bf48756 cdev_alloc
+EXPORT_SYMBOL vmlinux 0x3bf7c05c xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf
+EXPORT_SYMBOL vmlinux 0x3c4f0437 sg_miter_stop
+EXPORT_SYMBOL vmlinux 0x3c666619 tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x3c7b4fda pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0x3c84e7e7 netpoll_poll
+EXPORT_SYMBOL vmlinux 0x3c8fa684 sock_recvmsg
+EXPORT_SYMBOL vmlinux 0x3c9ba221 ps2_drain
+EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size
+EXPORT_SYMBOL vmlinux 0x3ca84a54 dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0x3cda7628 tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq
+EXPORT_SYMBOL vmlinux 0x3ce5e4df macio_dev_get
+EXPORT_SYMBOL vmlinux 0x3cf26ef4 __ps2_command
+EXPORT_SYMBOL vmlinux 0x3d0e444e rfkill_get_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x3d14557d scm_detach_fds
+EXPORT_SYMBOL vmlinux 0x3d3ef5bc scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x3d40e0a3 elv_queue_empty
+EXPORT_SYMBOL vmlinux 0x3d4ac5a8 get_write_access
+EXPORT_SYMBOL vmlinux 0x3d4c10cf d_path
+EXPORT_SYMBOL vmlinux 0x3d58a1a0 con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0x3d6dec05 key_type_keyring
+EXPORT_SYMBOL vmlinux 0x3d78fd48 set_security_override
+EXPORT_SYMBOL vmlinux 0x3d83b45e arp_xmit
+EXPORT_SYMBOL vmlinux 0x3d990441 filp_open
+EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat
+EXPORT_SYMBOL vmlinux 0x3dac7eef ide_set_handler
+EXPORT_SYMBOL vmlinux 0x3dacdb3d scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0x3df72c3d splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e001d94 dma_direct_ops
+EXPORT_SYMBOL vmlinux 0x3e13f1a3 arp_tbl
+EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks
+EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e46670a __inet6_hash
+EXPORT_SYMBOL vmlinux 0x3e55bef7 __dquot_transfer
+EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3e91f255 tcf_hash_search
+EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3ed91a8e nf_log_packet
+EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f0d760c get_super
+EXPORT_SYMBOL vmlinux 0x3f2a8ff1 fsnotify_find_mark_entry
+EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec
+EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f5a9f4d scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0x3f69925e pci_enable_msix
+EXPORT_SYMBOL vmlinux 0x3fe28586 bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0x3fed4e4b skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable
+EXPORT_SYMBOL vmlinux 0x4022257a jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0x4042e0b3 blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump
+EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds
+EXPORT_SYMBOL vmlinux 0x406ff8ac jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x4075ba97 km_new_mapping
+EXPORT_SYMBOL vmlinux 0x40794379 __scm_destroy
+EXPORT_SYMBOL vmlinux 0x40828ae9 dquot_scan_active
+EXPORT_SYMBOL vmlinux 0x40895701 zero_fill_bio
+EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40b3b434 journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x40f13ec6 filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x40f1ad10 tb_ticks_per_jiffy
+EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring
+EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring
+EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode
+EXPORT_SYMBOL vmlinux 0x41092697 sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0x410ee545 deactivate_super
+EXPORT_SYMBOL vmlinux 0x41291379 dst_discard
+EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp
+EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user
+EXPORT_SYMBOL vmlinux 0x4163d713 bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features
+EXPORT_SYMBOL vmlinux 0x41742bb7 gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x4179940c locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x417e94d7 alloc_trdev
+EXPORT_SYMBOL vmlinux 0x41830904 of_release_dev
+EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x41bcfcf7 i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0x41cd3fa5 i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0x41d5b30e stop_tty
+EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x4218d1c1 generic_file_llseek_unlocked
+EXPORT_SYMBOL vmlinux 0x42224298 sscanf
+EXPORT_SYMBOL vmlinux 0x42438ba1 ___pskb_trim
+EXPORT_SYMBOL vmlinux 0x42612318 input_register_device
+EXPORT_SYMBOL vmlinux 0x4292ff3f __getblk
+EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42a01768 filp_close
+EXPORT_SYMBOL vmlinux 0x42a81bb0 wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0x42b3722e sock_i_ino
+EXPORT_SYMBOL vmlinux 0x42ea5c30 netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages
+EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short
+EXPORT_SYMBOL vmlinux 0x4347b971 idr_init
+EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem
+EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32
+EXPORT_SYMBOL vmlinux 0x4375247d generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0x43874175 max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get
+EXPORT_SYMBOL vmlinux 0x43b9d5f9 copy_io_context
+EXPORT_SYMBOL vmlinux 0x43bd27cf of_device_register
+EXPORT_SYMBOL vmlinux 0x43ca64c1 set_disk_ro
+EXPORT_SYMBOL vmlinux 0x44028914 iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0x444779c4 nla_find
+EXPORT_SYMBOL vmlinux 0x44594cd5 bio_copy_user
+EXPORT_SYMBOL vmlinux 0x448212fa down_trylock
+EXPORT_SYMBOL vmlinux 0x44c747df netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0x44e9a829 match_token
+EXPORT_SYMBOL vmlinux 0x45082196 create_proc_entry
+EXPORT_SYMBOL vmlinux 0x45154219 tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x4526746f hippi_type_trans
+EXPORT_SYMBOL vmlinux 0x452e50d8 phys_mem_access_prot
+EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled
+EXPORT_SYMBOL vmlinux 0x4540734b seq_lseek
+EXPORT_SYMBOL vmlinux 0x454cf38f do_munmap
+EXPORT_SYMBOL vmlinux 0x456d80b9 __breadahead
+EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0x45947727 param_array_set
+EXPORT_SYMBOL vmlinux 0x4596db6a sys_sigreturn
+EXPORT_SYMBOL vmlinux 0x45a575aa unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x45b0c3f7 iterate_mounts
+EXPORT_SYMBOL vmlinux 0x45b6c97b of_scan_pci_bridge
+EXPORT_SYMBOL vmlinux 0x45c4b00b skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x45ce366b dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x460ea1c5 udplite_table
+EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user
+EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy
+EXPORT_SYMBOL vmlinux 0x466c14a7 __delay
+EXPORT_SYMBOL vmlinux 0x4684bb15 i2c_del_driver
+EXPORT_SYMBOL vmlinux 0x46a7f298 pci_release_region
+EXPORT_SYMBOL vmlinux 0x46a94fc3 clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x4737f91d xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x476a8d9b invalidate_partition
+EXPORT_SYMBOL vmlinux 0x477fd401 phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit
+EXPORT_SYMBOL vmlinux 0x47b7cc84 pci_pme_active
+EXPORT_SYMBOL vmlinux 0x47e623dd of_iomap
+EXPORT_SYMBOL vmlinux 0x47f2518b scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0x4802595e do_truncate
+EXPORT_SYMBOL vmlinux 0x4803dc4a inode_change_ok
+EXPORT_SYMBOL vmlinux 0x481c312b udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x482015c4 xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0x48364250 scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0x483e3c87 sget
+EXPORT_SYMBOL vmlinux 0x483ec199 __cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x484f89b6 rfkill_blocked
+EXPORT_SYMBOL vmlinux 0x48501d83 cont_write_begin
+EXPORT_SYMBOL vmlinux 0x4853c21c cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x4859ae1a free_task
+EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days
+EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition
+EXPORT_SYMBOL vmlinux 0x48843074 jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x488a4d2d ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x48a80496 abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x48aa7b6d blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0x48b0bf7f clear_inode
+EXPORT_SYMBOL vmlinux 0x48bc9ba5 __invalidate_device
+EXPORT_SYMBOL vmlinux 0x48c1d080 tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0x48cbfc23 end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x48cc3db4 dev_txq_stats_fold
+EXPORT_SYMBOL vmlinux 0x4925eda1 max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x4930ba17 scsi_finish_command
+EXPORT_SYMBOL vmlinux 0x49333047 matroxfb_enable_irq
+EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x496403c6 invalidate_bdev
+EXPORT_SYMBOL vmlinux 0x4973c1e9 truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49d3831e softnet_data
+EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string
+EXPORT_SYMBOL vmlinux 0x49fae00e simple_write_begin
+EXPORT_SYMBOL vmlinux 0x4a290d4d cur_cpu_spec
+EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a40efab netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x4a5a3201 skb_queue_head
+EXPORT_SYMBOL vmlinux 0x4a5ff06b blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0x4a73e524 dm_io_client_resize
+EXPORT_SYMBOL vmlinux 0x4a809304 dqget
+EXPORT_SYMBOL vmlinux 0x4a833a0b sk_stop_timer
+EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc
+EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x4abb12aa slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x4ad1424a input_close_device
+EXPORT_SYMBOL vmlinux 0x4ae9672a xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0x4af9f022 invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b18495d sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0x4b20cbd2 ida_remove
+EXPORT_SYMBOL vmlinux 0x4b2ef876 journal_revoke
+EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals
+EXPORT_SYMBOL vmlinux 0x4b4281c2 elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x4b66ebd4 macio_request_resource
+EXPORT_SYMBOL vmlinux 0x4b686514 call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0x4b6e3154 simple_statfs
+EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags
+EXPORT_SYMBOL vmlinux 0x4bc8d71d i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x4bdd9a53 open_by_devnum
+EXPORT_SYMBOL vmlinux 0x4be3964c dcache_readdir
+EXPORT_SYMBOL vmlinux 0x4be541f0 dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0x4bec4939 __blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x4bf2b8cc pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0x4bf62c1e netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c1b6ae6 complete_request_key
+EXPORT_SYMBOL vmlinux 0x4c1e0ef0 of_gpio_simple_xlate
+EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr
+EXPORT_SYMBOL vmlinux 0x4c3b19d8 ethtool_ntuple_flush
+EXPORT_SYMBOL vmlinux 0x4c54555d vc_cons
+EXPORT_SYMBOL vmlinux 0x4c64d88f vm_event_states
+EXPORT_SYMBOL vmlinux 0x4c695be5 tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x4ca5fabf matrox_cfbX_init
+EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cc56cda inet_ioctl
+EXPORT_SYMBOL vmlinux 0x4cc7d25e tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x4cd845d3 nobh_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x4cdafe32 vfs_unlink
+EXPORT_SYMBOL vmlinux 0x4cdef5cc __blk_run_queue
+EXPORT_SYMBOL vmlinux 0x4d037c40 pci_remove_behind_bridge
+EXPORT_SYMBOL vmlinux 0x4d140821 __free_pages
+EXPORT_SYMBOL vmlinux 0x4d24017f make_EII_client
+EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask
+EXPORT_SYMBOL vmlinux 0x4d7f5417 shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x4d8658ea udp_ioctl
+EXPORT_SYMBOL vmlinux 0x4d9edcd5 cdrom_open
+EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dda9fdc do_sync_write
+EXPORT_SYMBOL vmlinux 0x4deb6cb2 xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x4dec6038 memscan
+EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e07c5b3 deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int
+EXPORT_SYMBOL vmlinux 0x4e41f280 generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x4e4c04e4 default_unplug_io_fn
+EXPORT_SYMBOL vmlinux 0x4e507c63 register_8022_client
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console
+EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp
+EXPORT_SYMBOL vmlinux 0x4e94ae22 pci_set_master
+EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum
+EXPORT_SYMBOL vmlinux 0x4ed68375 blk_get_request
+EXPORT_SYMBOL vmlinux 0x4ede8d89 input_get_keycode
+EXPORT_SYMBOL vmlinux 0x4eee9380 sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x4ef979c6 scsi_prep_return
+EXPORT_SYMBOL vmlinux 0x4f103f9e tcp_poll
+EXPORT_SYMBOL vmlinux 0x4f13f609 ethtool_op_get_rx_csum
+EXPORT_SYMBOL vmlinux 0x4f185ba6 revert_creds
+EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f261313 ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x4f36dcd8 netif_device_attach
+EXPORT_SYMBOL vmlinux 0x4f46c439 pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x4f4b99aa llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0x4f5250c5 of_platform_bus_probe
+EXPORT_SYMBOL vmlinux 0x4f69072c register_con_driver
+EXPORT_SYMBOL vmlinux 0x4f6caf01 netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x4f80500e jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x4f94a8a8 pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x4f966dae blk_rq_init
+EXPORT_SYMBOL vmlinux 0x4fa2e97c security_path_symlink
+EXPORT_SYMBOL vmlinux 0x4fc54ea7 of_find_all_nodes
+EXPORT_SYMBOL vmlinux 0x4fd58d1c get_sb_nodev
+EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command
+EXPORT_SYMBOL vmlinux 0x4fe7c5a8 write_cache_pages
+EXPORT_SYMBOL vmlinux 0x4fe99583 atomic64_dec_if_positive
+EXPORT_SYMBOL vmlinux 0x4fed7448 skb_seq_read
+EXPORT_SYMBOL vmlinux 0x4ff259c8 generic_write_checks
+EXPORT_SYMBOL vmlinux 0x5007f418 cont_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x5009c1b0 sock_no_listen
+EXPORT_SYMBOL vmlinux 0x500ef984 qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x502bab36 pci_map_rom
+EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x50a73fff elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0x50c71330 idr_get_new
+EXPORT_SYMBOL vmlinux 0x51125f66 d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x511524f6 of_translate_dma_address
+EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x514bbef5 skb_checksum
+EXPORT_SYMBOL vmlinux 0x514c0f2d pci_write_vpd
+EXPORT_SYMBOL vmlinux 0x515e24a7 flush_instruction_cache
+EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x51ebfa7f posix_lock_file
+EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup
+EXPORT_SYMBOL vmlinux 0x5200dab9 poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x521e3f3c serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x524c8667 security_path_mknod
+EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday
+EXPORT_SYMBOL vmlinux 0x5276bd55 tcp4_gro_complete
+EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read
+EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x529da6a7 fb_set_suspend
+EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy
+EXPORT_SYMBOL vmlinux 0x52addb91 matroxfb_DAC_in
+EXPORT_SYMBOL vmlinux 0x52c0379d deny_write_access
+EXPORT_SYMBOL vmlinux 0x52c2ef34 rb_erase
+EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52db2ae3 cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort
+EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend
+EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x5341c94b dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0x53779903 block_prepare_write
+EXPORT_SYMBOL vmlinux 0x538a856e textsearch_register
+EXPORT_SYMBOL vmlinux 0x539113b6 fddi_type_trans
+EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x53c6f769 skb_put
+EXPORT_SYMBOL vmlinux 0x53e1df2f generic_setlease
+EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns
+EXPORT_SYMBOL vmlinux 0x53fc7af3 neigh_lookup
+EXPORT_SYMBOL vmlinux 0x54207a68 bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate
+EXPORT_SYMBOL vmlinux 0x54355922 inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0x543d5de7 phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x543e9a75 bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x545fccf3 jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x54601b86 ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x546826bd skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x5472e55f page_put_link
+EXPORT_SYMBOL vmlinux 0x54789f6b otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0x547b3610 rfkill_register
+EXPORT_SYMBOL vmlinux 0x549a0d86 blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0x54d1bb9e ide_geometry_proc_fops
+EXPORT_SYMBOL vmlinux 0x54e0cd41 skb_clone
+EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x550bd5d6 phy_disable_interrupts
+EXPORT_SYMBOL vmlinux 0x551db63d fb_set_cmap
+EXPORT_SYMBOL vmlinux 0x551f4501 splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0x553e6f62 vga_client_register
+EXPORT_SYMBOL vmlinux 0x555362a5 bio_alloc
+EXPORT_SYMBOL vmlinux 0x5586360b xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x55aff3d1 tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0x55b7c154 pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday
+EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x56208321 vfs_writev
+EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0x562e3c33 mod_timer_pending
+EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user
+EXPORT_SYMBOL vmlinux 0x5670ca61 find_inode_number
+EXPORT_SYMBOL vmlinux 0x56745e2d dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0x567a98bd nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x567c339b d_instantiate
+EXPORT_SYMBOL vmlinux 0x567c4724 pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0x568e4046 dquot_transfer
+EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic
+EXPORT_SYMBOL vmlinux 0x56b1388d phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0x56b72d67 genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress
+EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56d2c275 bio_map_kern
+EXPORT_SYMBOL vmlinux 0x56dfdaac generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x570bda08 sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0x572a2d80 simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x57382199 simple_rename
+EXPORT_SYMBOL vmlinux 0x573ef0c7 dquot_release
+EXPORT_SYMBOL vmlinux 0x57518000 request_key_async
+EXPORT_SYMBOL vmlinux 0x575cb159 of_register_spi_devices
+EXPORT_SYMBOL vmlinux 0x575cb933 dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x575e555d skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16
+EXPORT_SYMBOL vmlinux 0x5786e5d2 unregister_quota_format
+EXPORT_SYMBOL vmlinux 0x578f77aa input_grab_device
+EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf
+EXPORT_SYMBOL vmlinux 0x57b0e776 find_or_create_page
+EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57cd9266 tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x57d2ac7c switch_mmu_context
+EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path
+EXPORT_SYMBOL vmlinux 0x57db861c log_start_commit
+EXPORT_SYMBOL vmlinux 0x581ba000 pci_get_device
+EXPORT_SYMBOL vmlinux 0x582a4747 cacheable_memcpy
+EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x583a15f0 unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x5846528d qdisc_reset
+EXPORT_SYMBOL vmlinux 0x584cd6a2 bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0x584e86f0 __pci_register_driver
+EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep
+EXPORT_SYMBOL vmlinux 0x586818d2 wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x586a5896 scsi_add_device
+EXPORT_SYMBOL vmlinux 0x58773ebc generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0x5892e9a8 request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0x58cb549d scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0x58ed302f con_is_bound
+EXPORT_SYMBOL vmlinux 0x59045875 __register_binfmt
+EXPORT_SYMBOL vmlinux 0x59303385 fail_migrate_page
+EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client
+EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map
+EXPORT_SYMBOL vmlinux 0x595b0433 nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page
+EXPORT_SYMBOL vmlinux 0x59676242 eth_header_parse
+EXPORT_SYMBOL vmlinux 0x597e4db1 bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x59b9fe4b ide_do_reset
+EXPORT_SYMBOL vmlinux 0x59bf020e pci_select_bars
+EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource
+EXPORT_SYMBOL vmlinux 0x5a11a866 inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x5a12a1b6 neigh_create
+EXPORT_SYMBOL vmlinux 0x5a3b115a kstat
+EXPORT_SYMBOL vmlinux 0x5a4ae3e8 km_policy_notify
+EXPORT_SYMBOL vmlinux 0x5a5cfc41 pcim_pin_device
+EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a899d5c dentry_open
+EXPORT_SYMBOL vmlinux 0x5a91cf85 __set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0x5aaa5736 skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0x5ab236be security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0x5ab67931 do_IRQ
+EXPORT_SYMBOL vmlinux 0x5ae0d47f clocksource_register
+EXPORT_SYMBOL vmlinux 0x5ae72ed6 tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0x5b0fcc8d mdiobus_write
+EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem
+EXPORT_SYMBOL vmlinux 0x5b242f90 tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present
+EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0x5b824eaf fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0x5b98a740 pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0x5bba6feb ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x5c2174d7 simple_lookup
+EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one
+EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq
+EXPORT_SYMBOL vmlinux 0x5c9e67f1 pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x5c9fae31 register_snap_client
+EXPORT_SYMBOL vmlinux 0x5cd3cf36 sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x5d0efae1 starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x5d4f96f6 bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0x5d963a08 __xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x5dccad60 jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x5de4b7c6 inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0x5e3c68e7 key_revoke
+EXPORT_SYMBOL vmlinux 0x5e7147cd journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x5e7b4627 generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask
+EXPORT_SYMBOL vmlinux 0x5eb16ca4 matroxfb_DAC_out
+EXPORT_SYMBOL vmlinux 0x5ec510e1 ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd
+EXPORT_SYMBOL vmlinux 0x5eee5399 blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0x5ef545c4 unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0x5f0ddeb3 sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x5f271059 mach_chrp
+EXPORT_SYMBOL vmlinux 0x5f363dc9 pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0x5f37062d truncate_pagecache
+EXPORT_SYMBOL vmlinux 0x5f370684 generic_file_open
+EXPORT_SYMBOL vmlinux 0x5f72660f seq_path
+EXPORT_SYMBOL vmlinux 0x5f754e5a memset
+EXPORT_SYMBOL vmlinux 0x5f8728f6 pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base
+EXPORT_SYMBOL vmlinux 0x5fa8afcc pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x5fabe7bd blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0x5fb28e84 skb_store_bits
+EXPORT_SYMBOL vmlinux 0x5fbc4f57 delayed_slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x5fe182f4 inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0x5ffc358a km_state_notify
+EXPORT_SYMBOL vmlinux 0x5ffe877d jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x6006654c journal_wipe
+EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x60388d15 seq_bitmap
+EXPORT_SYMBOL vmlinux 0x6039d650 inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x603e665e serio_interrupt
+EXPORT_SYMBOL vmlinux 0x604b325e qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x606e032e skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x60796008 pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0x60824c8d jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x608b2612 kobject_init
+EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net
+EXPORT_SYMBOL vmlinux 0x60c1efc0 bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0x60e3b1fa tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0x60f71cfa complete
+EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n
+EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x612e4b68 note_scsi_host
+EXPORT_SYMBOL vmlinux 0x615773a8 create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x616f9138 rtnl_create_link
+EXPORT_SYMBOL vmlinux 0x61710eee tcf_register_action
+EXPORT_SYMBOL vmlinux 0x6176e517 sk_receive_skb
+EXPORT_SYMBOL vmlinux 0x6180a41e dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free
+EXPORT_SYMBOL vmlinux 0x61a2a758 ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x61a60f1f rb_replace_node
+EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61bff810 neigh_update
+EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb
+EXPORT_SYMBOL vmlinux 0x61f0a1cb pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0x623b964a simple_release_fs
+EXPORT_SYMBOL vmlinux 0x623d7182 _chrp_type
+EXPORT_SYMBOL vmlinux 0x62469f06 swiotlb_sync_sg_for_device
+EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister
+EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x628332e8 pmu_power_flags
+EXPORT_SYMBOL vmlinux 0x62896ff9 sk_common_release
+EXPORT_SYMBOL vmlinux 0x62b72b0d mutex_unlock
+EXPORT_SYMBOL vmlinux 0x62cc569e cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x62f1b9a7 unregister_snap_client
+EXPORT_SYMBOL vmlinux 0x6332de0f bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0x636d4cea i2c_bit_add_numbered_bus
+EXPORT_SYMBOL vmlinux 0x636db1d3 create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x637ec3d2 tc_classify_compat
+EXPORT_SYMBOL vmlinux 0x63cda512 sock_register
+EXPORT_SYMBOL vmlinux 0x63e0e86b lro_vlan_hwaccel_receive_frags
+EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x64353198 filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x6438f1b5 jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x645341cf tty_register_driver
+EXPORT_SYMBOL vmlinux 0x64547e47 aio_put_req
+EXPORT_SYMBOL vmlinux 0x64591185 simple_transaction_get
+EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll
+EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait
+EXPORT_SYMBOL vmlinux 0x64b635dd netpoll_send_skb
+EXPORT_SYMBOL vmlinux 0x64d889b0 kmem_cache_size
+EXPORT_SYMBOL vmlinux 0x64d8f0b4 nobh_write_end
+EXPORT_SYMBOL vmlinux 0x64f14a34 tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0x651a4139 test_taint
+EXPORT_SYMBOL vmlinux 0x65400222 __irq_offset_value
+EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name
+EXPORT_SYMBOL vmlinux 0x6577f0e5 scsi_print_result
+EXPORT_SYMBOL vmlinux 0x659ba7b8 journal_create
+EXPORT_SYMBOL vmlinux 0x65b25aeb elv_abort_queue
+EXPORT_SYMBOL vmlinux 0x65d16a71 splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x661e194e xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0x6624a464 vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0x664dbee9 qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x66581e86 skb_pad
+EXPORT_SYMBOL vmlinux 0x6669d1cd serio_close
+EXPORT_SYMBOL vmlinux 0x6680f244 __wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x6681746b iget5_locked
+EXPORT_SYMBOL vmlinux 0x66894638 netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x66998e60 fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x66a33c88 inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0x66ba9a34 dev_disable_lro
+EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write
+EXPORT_SYMBOL vmlinux 0x66ee917b tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0x66ff1b4a blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time
+EXPORT_SYMBOL vmlinux 0x6720a37b tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x67262919 mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0x67391e99 block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x674eb33a __scsi_add_device
+EXPORT_SYMBOL vmlinux 0x6790d1ba kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67be1d3d cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x67cd120e sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x67f3508d get_io_context
+EXPORT_SYMBOL vmlinux 0x680cf210 tty_register_device
+EXPORT_SYMBOL vmlinux 0x68326727 thaw_process
+EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x687d32c1 tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0x689dfb3f dst_destroy
+EXPORT_SYMBOL vmlinux 0x68c91e4b unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0x68e0af52 __break_lease
+EXPORT_SYMBOL vmlinux 0x68e60a6b __register_chrdev
+EXPORT_SYMBOL vmlinux 0x69110581 sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x691be7e1 napi_frags_skb
+EXPORT_SYMBOL vmlinux 0x693df217 i2c_master_send
+EXPORT_SYMBOL vmlinux 0x694ffe81 icmp_send
+EXPORT_SYMBOL vmlinux 0x6956fde3 mach_powermac
+EXPORT_SYMBOL vmlinux 0x6957e081 i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days
+EXPORT_SYMBOL vmlinux 0x698097e0 nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int
+EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem
+EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be
+EXPORT_SYMBOL vmlinux 0x69a18bc2 kthread_create
+EXPORT_SYMBOL vmlinux 0x69c8944f journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69d7e5b8 __debugger_ipi
+EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69ffa4db __locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a1e3312 of_find_i2c_device_by_node
+EXPORT_SYMBOL vmlinux 0x6a460c8e scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0x6a5522f9 dev_mc_add
+EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm
+EXPORT_SYMBOL vmlinux 0x6a725cbe pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0x6a7492f2 phy_connect_direct
+EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6a7f86ef kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x6a8a45a6 invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0x6a9c7152 pmac_register_agp_pm
+EXPORT_SYMBOL vmlinux 0x6ac5b76e scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be
+EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp
+EXPORT_SYMBOL vmlinux 0x6b0e495c generic_read_dir
+EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname
+EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack
+EXPORT_SYMBOL vmlinux 0x6b56499a remove_from_page_cache
+EXPORT_SYMBOL vmlinux 0x6b5a7057 ida_destroy
+EXPORT_SYMBOL vmlinux 0x6b7228e3 napi_gro_frags
+EXPORT_SYMBOL vmlinux 0x6b747dfa inet_sendmsg
+EXPORT_SYMBOL vmlinux 0x6b910e28 kset_register
+EXPORT_SYMBOL vmlinux 0x6b930423 qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0x6b9ae7d1 unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0x6bc2db05 neigh_table_init
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6bee8287 inet_accept
+EXPORT_SYMBOL vmlinux 0x6bfc0ed7 vmtruncate
+EXPORT_SYMBOL vmlinux 0x6c094334 pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn
+EXPORT_SYMBOL vmlinux 0x6c2f2935 bio_map_user
+EXPORT_SYMBOL vmlinux 0x6c59ab80 xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0x6c5cf242 generic_write_end
+EXPORT_SYMBOL vmlinux 0x6c5f7dd0 proc_mkdir
+EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c8abe81 put_mnt_ns
+EXPORT_SYMBOL vmlinux 0x6ca1d1a4 atomic64_read
+EXPORT_SYMBOL vmlinux 0x6caa9910 alloc_file
+EXPORT_SYMBOL vmlinux 0x6cbb6200 kthread_stop
+EXPORT_SYMBOL vmlinux 0x6cbf37d6 pci_iomap
+EXPORT_SYMBOL vmlinux 0x6cc663d0 ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy
+EXPORT_SYMBOL vmlinux 0x6ceb3866 xfrm_input
+EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d2fb39b pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0x6d40b131 xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table
+EXPORT_SYMBOL vmlinux 0x6d46a216 input_set_capability
+EXPORT_SYMBOL vmlinux 0x6d5993a7 grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0x6d5ceb26 pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x6d82faed gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns
+EXPORT_SYMBOL vmlinux 0x6dab647b mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x6db6ff0e i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0x6dbf6dfb pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0x6de2287d bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0x6debac14 generic_file_mmap
+EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6e0c6e9e n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x6e609109 follow_pfn
+EXPORT_SYMBOL vmlinux 0x6e6cfa45 dquot_free_inode
+EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e8742e5 qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0x6e9b548f __bforget
+EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put
+EXPORT_SYMBOL vmlinux 0x6eb2ab7a ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x6eba4d1e try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x6ee42bed pcim_enable_device
+EXPORT_SYMBOL vmlinux 0x6ee4a1b7 generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x6ee62df2 tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x6efdef5b serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x6f404a3b sk_alloc
+EXPORT_SYMBOL vmlinux 0x6f586781 have_submounts
+EXPORT_SYMBOL vmlinux 0x6f659cd2 kernel_read
+EXPORT_SYMBOL vmlinux 0x6f69ee5f dm_table_unplug_all
+EXPORT_SYMBOL vmlinux 0x6f7969e4 prepare_creds
+EXPORT_SYMBOL vmlinux 0x6f7f9a5b security_d_instantiate
+EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x6f9a4dfc i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0x6fa43cea pci_reenable_device
+EXPORT_SYMBOL vmlinux 0x6fb018af nf_register_hooks
+EXPORT_SYMBOL vmlinux 0x6fbeac17 input_unregister_handle
+EXPORT_SYMBOL vmlinux 0x6fc42825 netif_receive_skb
+EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fcd8cf0 giveup_fpu
+EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free
+EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm
+EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf
+EXPORT_SYMBOL vmlinux 0x7049a2f4 d_delete
+EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma
+EXPORT_SYMBOL vmlinux 0x706e30fd rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x706f3d98 qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x707d33a1 generic_readlink
+EXPORT_SYMBOL vmlinux 0x708a9ccc alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0x709cc168 seq_puts
+EXPORT_SYMBOL vmlinux 0x70b5e55e filemap_flush
+EXPORT_SYMBOL vmlinux 0x70b845bb pci_disable_msix
+EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait
+EXPORT_SYMBOL vmlinux 0x70d888b7 __debugger_fault_handler
+EXPORT_SYMBOL vmlinux 0x70db4d1f tty_check_change
+EXPORT_SYMBOL vmlinux 0x70de1a8a __serio_register_driver
+EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request
+EXPORT_SYMBOL vmlinux 0x71157980 d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc
+EXPORT_SYMBOL vmlinux 0x712ca1dd matroxfb_wait_for_sync
+EXPORT_SYMBOL vmlinux 0x7153cb80 blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0x715f2db8 pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0x717acc4c serio_rescan
+EXPORT_SYMBOL vmlinux 0x717d611a bio_pair_release
+EXPORT_SYMBOL vmlinux 0x71825c42 sk_run_filter
+EXPORT_SYMBOL vmlinux 0x719abde3 locks_init_lock
+EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev
+EXPORT_SYMBOL vmlinux 0x71c90087 memcmp
+EXPORT_SYMBOL vmlinux 0x71caa164 udp_prot
+EXPORT_SYMBOL vmlinux 0x71da3f80 dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x71e0b703 elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0x71f6cb4c gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x722bd174 giveup_altivec
+EXPORT_SYMBOL vmlinux 0x723dd2e8 kset_unregister
+EXPORT_SYMBOL vmlinux 0x7248fb30 tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x725e1958 textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0x72619de3 sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x7294a8d4 __task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x729e63d5 udp_poll
+EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma
+EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte
+EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type
+EXPORT_SYMBOL vmlinux 0x731f4e3a gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x733eb6fe journal_extend
+EXPORT_SYMBOL vmlinux 0x734730c5 notify_change
+EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat
+EXPORT_SYMBOL vmlinux 0x736df7ac matroxfb_g450_shutdown
+EXPORT_SYMBOL vmlinux 0x73a37f81 __sk_dst_check
+EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy
+EXPORT_SYMBOL vmlinux 0x73fcf5ef sk_free
+EXPORT_SYMBOL vmlinux 0x741efd71 __alloc_skb
+EXPORT_SYMBOL vmlinux 0x741fa8ad of_n_addr_cells
+EXPORT_SYMBOL vmlinux 0x74431c02 __skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x7445322e log_wait_commit
+EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte
+EXPORT_SYMBOL vmlinux 0x7458793c generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x747d0d99 cdev_index
+EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x74a078de blk_init_allocated_queue_node
+EXPORT_SYMBOL vmlinux 0x74ba4d1d elv_rb_del
+EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74ea0eeb clear_user_page
+EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler
+EXPORT_SYMBOL vmlinux 0x7565a0af kill_anon_super
+EXPORT_SYMBOL vmlinux 0x756dd160 start_thread
+EXPORT_SYMBOL vmlinux 0x7589301c dm_table_get_md
+EXPORT_SYMBOL vmlinux 0x75a17bed prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc
+EXPORT_SYMBOL vmlinux 0x75c6da47 xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0x75ecb6b8 textsearch_prepare
+EXPORT_SYMBOL vmlinux 0x75efa4fe of_node_put
+EXPORT_SYMBOL vmlinux 0x760a0f4f yield
+EXPORT_SYMBOL vmlinux 0x760ac4d7 __f_setown
+EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x76257e21 tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0x76b96a4e ide_wait_stat
+EXPORT_SYMBOL vmlinux 0x76bc92f7 neigh_seq_next
+EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76cc90c7 unlock_page
+EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode
+EXPORT_SYMBOL vmlinux 0x7702fffe rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic
+EXPORT_SYMBOL vmlinux 0x770f9e8e mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0x7727f7b1 tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0x772ebfd7 xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x775166d4 get_phy_device
+EXPORT_SYMBOL vmlinux 0x7753dac9 end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x775ea09b set_binfmt
+EXPORT_SYMBOL vmlinux 0x77720a3f jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0x77b24edc page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0x77b851c4 cacheable_memzero
+EXPORT_SYMBOL vmlinux 0x77bc13a0 strim
+EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality
+EXPORT_SYMBOL vmlinux 0x77eb87e0 skb_append
+EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x78140dd0 dput
+EXPORT_SYMBOL vmlinux 0x7815e0d4 mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x7845842e nf_log_unregister
+EXPORT_SYMBOL vmlinux 0x7858541a dev_trans_start
+EXPORT_SYMBOL vmlinux 0x7881ac18 dqput
+EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource
+EXPORT_SYMBOL vmlinux 0x78bdfa03 blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78f187cd tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0x7929d7d0 pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0x792f480c dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0x794206b5 bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x795ec106 pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0x79607cdd __nla_reserve
+EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x798b0d29 i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0x79a2d725 default_llseek
+EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79ad966a register_framebuffer
+EXPORT_SYMBOL vmlinux 0x79c4f13e dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0x79c83d2b pcibios_bus_to_resource
+EXPORT_SYMBOL vmlinux 0x79cbe8b4 kernel_accept
+EXPORT_SYMBOL vmlinux 0x79de3a1c __dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0x79ecc7d5 __scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0x79edc8e6 __scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol
+EXPORT_SYMBOL vmlinux 0x7a3d0702 module_refcount
+EXPORT_SYMBOL vmlinux 0x7a4497db kzfree
+EXPORT_SYMBOL vmlinux 0x7ac3f230 __neigh_event_send
+EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip
+EXPORT_SYMBOL vmlinux 0x7ad1992f input_register_handler
+EXPORT_SYMBOL vmlinux 0x7ad3ec3f tcp_child_process
+EXPORT_SYMBOL vmlinux 0x7b0e3c1c release_sock
+EXPORT_SYMBOL vmlinux 0x7b17bb85 nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x7b21aea6 ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x7b2ddcfe pskb_copy
+EXPORT_SYMBOL vmlinux 0x7b47de97 blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x7b52d745 sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x7b5f42b9 proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0x7b94d57b bd_claim
+EXPORT_SYMBOL vmlinux 0x7b9d6107 nf_ct_attach
+EXPORT_SYMBOL vmlinux 0x7ba8b273 of_phy_find_device
+EXPORT_SYMBOL vmlinux 0x7baa4315 disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x7bb270cc ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x7bc027ab pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name
+EXPORT_SYMBOL vmlinux 0x7bd3037a eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x7be4827c pci_dram_offset
+EXPORT_SYMBOL vmlinux 0x7bf784ba dcache_dir_open
+EXPORT_SYMBOL vmlinux 0x7c15e878 scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0x7c41c812 phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c60d66e getname
+EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic
+EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7ca341af kernel_thread
+EXPORT_SYMBOL vmlinux 0x7cefdd14 dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x7d084568 blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies
+EXPORT_SYMBOL vmlinux 0x7d1bbdae i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0x7d434d80 release_firmware
+EXPORT_SYMBOL vmlinux 0x7d44e5fc netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x7d86675a request_key
+EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max
+EXPORT_SYMBOL vmlinux 0x7dceceac capable
+EXPORT_SYMBOL vmlinux 0x7ddb9196 fb_get_mode
+EXPORT_SYMBOL vmlinux 0x7e323513 __dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x7e36b0ad blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0x7e36d101 swiotlb_free_coherent
+EXPORT_SYMBOL vmlinux 0x7e373805 vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e4551bf ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x7e64749e ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0x7e7dee03 jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0x7e805514 tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x7e897937 of_get_property
+EXPORT_SYMBOL vmlinux 0x7e947e29 tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x7ed5e738 hippi_neigh_setup_dev
+EXPORT_SYMBOL vmlinux 0x7ee1a75f journal_forget
+EXPORT_SYMBOL vmlinux 0x7f15001c textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f298c26 sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x7f29efaa d_validate
+EXPORT_SYMBOL vmlinux 0x7f2e4757 remove_inode_hash
+EXPORT_SYMBOL vmlinux 0x7f43682a key_unlink
+EXPORT_SYMBOL vmlinux 0x7f6956b2 submit_bio
+EXPORT_SYMBOL vmlinux 0x7f9e3d8b __xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0x7fb45098 fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0x7fbc2af5 flush_old_exec
+EXPORT_SYMBOL vmlinux 0x7fec0493 jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0x7fff8a0c block_read_full_page
+EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free
+EXPORT_SYMBOL vmlinux 0x801b52c0 blk_peek_request
+EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x803aae4f block_sync_page
+EXPORT_SYMBOL vmlinux 0x804dcb87 get_gendisk
+EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0x8066ff6d linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x808bcc33 dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x808bfc88 alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0x808e754a generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0x8099ca08 kfree_skb
+EXPORT_SYMBOL vmlinux 0x80b3dd00 irq_stat
+EXPORT_SYMBOL vmlinux 0x80c707be pci_domain_nr
+EXPORT_SYMBOL vmlinux 0x80d817ab wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0x80de231a idr_remove
+EXPORT_SYMBOL vmlinux 0x8115d0fb bio_flush_dcache_pages
+EXPORT_SYMBOL vmlinux 0x813ed040 idr_remove_all
+EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x815131ba mempool_destroy
+EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal
+EXPORT_SYMBOL vmlinux 0x8177d91d xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf
+EXPORT_SYMBOL vmlinux 0x8193405e llc_sap_find
+EXPORT_SYMBOL vmlinux 0x81a0db9d of_gpio_count
+EXPORT_SYMBOL vmlinux 0x81b04bfc completion_done
+EXPORT_SYMBOL vmlinux 0x81b571aa tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator
+EXPORT_SYMBOL vmlinux 0x81d1e759 skb_dequeue
+EXPORT_SYMBOL vmlinux 0x81d42794 kmem_cache_alloc_node_notrace
+EXPORT_SYMBOL vmlinux 0x81d6a34a of_get_address
+EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill
+EXPORT_SYMBOL vmlinux 0x8208f8df __sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x821e8d91 gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x82530f92 sock_update_classid
+EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8262f64b tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x826db9b7 skb_recycle_check
+EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82cb4012 dget_locked
+EXPORT_SYMBOL vmlinux 0x82d4025c otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x82ebb588 fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x83066824 of_device_is_available
+EXPORT_SYMBOL vmlinux 0x831c8b38 posix_test_lock
+EXPORT_SYMBOL vmlinux 0x8338aec9 abx500_register_ops
+EXPORT_SYMBOL vmlinux 0x833a42b4 dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0x83800bfa kref_init
+EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8
+EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83a930f6 tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0x83d0614b scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit
+EXPORT_SYMBOL vmlinux 0x84120fe3 mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0x844404cf ISA_DMA_THRESHOLD
+EXPORT_SYMBOL vmlinux 0x84482ed9 of_get_pci_address
+EXPORT_SYMBOL vmlinux 0x8448adf1 find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x845d71bd iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0x847f4756 search_binary_handler
+EXPORT_SYMBOL vmlinux 0x847fa68c scsi_device_resume
+EXPORT_SYMBOL vmlinux 0x84b183ae strncmp
+EXPORT_SYMBOL vmlinux 0x84b7fe7e vfs_llseek
+EXPORT_SYMBOL vmlinux 0x84ba1feb sk_reset_timer
+EXPORT_SYMBOL vmlinux 0x84db4b6e wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0x8539d37a inode_init_once
+EXPORT_SYMBOL vmlinux 0x8541bccc intercept_table
+EXPORT_SYMBOL vmlinux 0x855e7be7 security_file_mmap
+EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x857501f1 get_sb_ns
+EXPORT_SYMBOL vmlinux 0x859765ac __init_rwsem
+EXPORT_SYMBOL vmlinux 0x85c7405e kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x85df9b6c strsep
+EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x85fa7d8b kernel_getsockname
+EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x868acba5 get_options
+EXPORT_SYMBOL vmlinux 0x86b2c17a downgrade_write
+EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook
+EXPORT_SYMBOL vmlinux 0x86dc5df9 tty_vhangup
+EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x87260a6d __scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x872f85ed pcim_iounmap
+EXPORT_SYMBOL vmlinux 0x8766e262 phy_stop
+EXPORT_SYMBOL vmlinux 0x876a4bf5 input_free_device
+EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87dbba14 ida_get_new
+EXPORT_SYMBOL vmlinux 0x87ea9401 __skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0x87f37789 inet_bind
+EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate
+EXPORT_SYMBOL vmlinux 0x887210ae skb_pull
+EXPORT_SYMBOL vmlinux 0x888a3c89 kill_pgrp
+EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait
+EXPORT_SYMBOL vmlinux 0x889c5913 sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0x88acfe7d request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0x88bf427e tcf_hash_create
+EXPORT_SYMBOL vmlinux 0x88c3641e ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x88cfbc17 of_phy_connect
+EXPORT_SYMBOL vmlinux 0x88d9f63c dentry_unhash
+EXPORT_SYMBOL vmlinux 0x892297e8 update_region
+EXPORT_SYMBOL vmlinux 0x8926ac9d vmap
+EXPORT_SYMBOL vmlinux 0x8949858b schedule_work
+EXPORT_SYMBOL vmlinux 0x8962cfbe locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x897473df mktime
+EXPORT_SYMBOL vmlinux 0x8980554d udp_proc_register
+EXPORT_SYMBOL vmlinux 0x8996665d drop_super
+EXPORT_SYMBOL vmlinux 0x89ae07e7 i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0x89afd585 path_lookup
+EXPORT_SYMBOL vmlinux 0x89b3107b isa_mem_base
+EXPORT_SYMBOL vmlinux 0x89ba45c3 scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x8a01b3e8 pci_target_state
+EXPORT_SYMBOL vmlinux 0x8a684a38 may_umount
+EXPORT_SYMBOL vmlinux 0x8a765b21 generic_getxattr
+EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory
+EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8ab38448 pci_busdev_to_OF_node
+EXPORT_SYMBOL vmlinux 0x8ab4079e atomic64_add
+EXPORT_SYMBOL vmlinux 0x8ab7f42b __splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x8ad88de3 register_gifconf
+EXPORT_SYMBOL vmlinux 0x8ae5ac33 scsi_remove_device
+EXPORT_SYMBOL vmlinux 0x8aee3016 blk_plug_device_unlocked
+EXPORT_SYMBOL vmlinux 0x8aeff78b neigh_for_each
+EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b1f4718 register_cdrom
+EXPORT_SYMBOL vmlinux 0x8b426dcd filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x8b43caea test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x8b70af90 register_qdisc
+EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long
+EXPORT_SYMBOL vmlinux 0x8be33fc8 neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x8be99109 i2c_transfer
+EXPORT_SYMBOL vmlinux 0x8beb22ed blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0x8bedb3df matroxfb_g450_setpll_cond
+EXPORT_SYMBOL vmlinux 0x8bf249c5 neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16
+EXPORT_SYMBOL vmlinux 0x8c2036c6 block_truncate_page
+EXPORT_SYMBOL vmlinux 0x8c36b23a tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0x8c5465df eth_type_trans
+EXPORT_SYMBOL vmlinux 0x8c64f121 pci_get_class
+EXPORT_SYMBOL vmlinux 0x8c751817 pci_dev_get
+EXPORT_SYMBOL vmlinux 0x8c863dde tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0x8c917a53 tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8cf3a34f phy_connect
+EXPORT_SYMBOL vmlinux 0x8cf51d15 up
+EXPORT_SYMBOL vmlinux 0x8d01ab8c tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0x8d06698f dm_table_event
+EXPORT_SYMBOL vmlinux 0x8d44e829 register_quota_format
+EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d7bd9f3 xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0x8da29715 xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x8dd2bff6 journal_flush
+EXPORT_SYMBOL vmlinux 0x8df5da63 memstart_addr
+EXPORT_SYMBOL vmlinux 0x8df72e53 ftrace_event_seq
+EXPORT_SYMBOL vmlinux 0x8dfa3271 posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e0d4921 security_inode_permission
+EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk
+EXPORT_SYMBOL vmlinux 0x8e4215d1 task_nice
+EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x8e8232b8 security_path_rename
+EXPORT_SYMBOL vmlinux 0x8e8453ea of_find_matching_node
+EXPORT_SYMBOL vmlinux 0x8e8cb6ed set_user_nice
+EXPORT_SYMBOL vmlinux 0x8e98a5b5 proc_dointvec
+EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8f1a6c17 register_exec_domain
+EXPORT_SYMBOL vmlinux 0x8f2a1be0 kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0x8f37ab7e security_path_unlink
+EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev
+EXPORT_SYMBOL vmlinux 0x8f51bee9 netlink_ack
+EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data
+EXPORT_SYMBOL vmlinux 0x8f78e212 unregister_filesystem
+EXPORT_SYMBOL vmlinux 0x8f932800 lock_super
+EXPORT_SYMBOL vmlinux 0x8fa1999d pci_device_to_OF_node
+EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16
+EXPORT_SYMBOL vmlinux 0x90011755 nf_reinject
+EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x9025aa51 scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x90501868 transfer_to_handler
+EXPORT_SYMBOL vmlinux 0x905f9bac tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0x907676e8 skb_unlink
+EXPORT_SYMBOL vmlinux 0x907ec864 rtas
+EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0x90cdc7ec wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x91227ec1 fb_show_logo
+EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay
+EXPORT_SYMBOL vmlinux 0x91297606 wireless_spy_update
+EXPORT_SYMBOL vmlinux 0x9153534f write_one_page
+EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec
+EXPORT_SYMBOL vmlinux 0x915f6a36 xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource
+EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor
+EXPORT_SYMBOL vmlinux 0x916a4266 lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x9175aee5 of_find_node_with_property
+EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong
+EXPORT_SYMBOL vmlinux 0x91829b20 inet_shutdown
+EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x91c8d16f tty_throttle
+EXPORT_SYMBOL vmlinux 0x91d41c7d dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x91d88e48 __debugger_dabr_match
+EXPORT_SYMBOL vmlinux 0x91fa7788 register_netdevice
+EXPORT_SYMBOL vmlinux 0x920664c8 mempool_free
+EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool
+EXPORT_SYMBOL vmlinux 0x9230d56c blk_execute_rq
+EXPORT_SYMBOL vmlinux 0x92b1b494 __insert_inode_hash
+EXPORT_SYMBOL vmlinux 0x92c60aad dw_spi_suspend_host
+EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get
+EXPORT_SYMBOL vmlinux 0x9309de94 cuda_request
+EXPORT_SYMBOL vmlinux 0x9319190e tcp_check_req
+EXPORT_SYMBOL vmlinux 0x9321ea1f add_disk
+EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x933a97bb __blockdev_direct_IO_newtrunc
+EXPORT_SYMBOL vmlinux 0x93473e68 put_disk
+EXPORT_SYMBOL vmlinux 0x937c88ff balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0x9389ff0f eth_header_cache
+EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule
+EXPORT_SYMBOL vmlinux 0x93b68f0f xfrm_bundle_ok
+EXPORT_SYMBOL vmlinux 0x93c7d636 grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0x93cbf3bc file_fsync
+EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages
+EXPORT_SYMBOL vmlinux 0x943694a7 neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x944bec71 bd_release
+EXPORT_SYMBOL vmlinux 0x946c7d3f dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0x946e0391 dev_get_flags
+EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex
+EXPORT_SYMBOL vmlinux 0x948d8ffb inet_add_protocol
+EXPORT_SYMBOL vmlinux 0x94961283 vunmap
+EXPORT_SYMBOL vmlinux 0x94a45e59 con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x94af632e complete_all
+EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x9509653c bioset_free
+EXPORT_SYMBOL vmlinux 0x9514151a _mcount
+EXPORT_SYMBOL vmlinux 0x9524690d swiotlb_dma_mapping_error
+EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb
+EXPORT_SYMBOL vmlinux 0x95344f87 nla_reserve
+EXPORT_SYMBOL vmlinux 0x95345dd1 blkdev_get
+EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init
+EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf
+EXPORT_SYMBOL vmlinux 0x9575474f machine_id
+EXPORT_SYMBOL vmlinux 0x9580850a ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x95a347e6 aio_complete
+EXPORT_SYMBOL vmlinux 0x95ab34de inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x95c4bbb5 flush_tlb_page
+EXPORT_SYMBOL vmlinux 0x95db4206 macio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x9601f3c2 vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x961cc5e0 of_unregister_driver
+EXPORT_SYMBOL vmlinux 0x963ff3b9 generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0x9656f8a0 llc_sap_list_lock
+EXPORT_SYMBOL vmlinux 0x9674be9e macio_release_resource
+EXPORT_SYMBOL vmlinux 0x967561c6 journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0x969214cc set_create_files_as
+EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96f12e92 inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0x97118776 tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x97255bdf strlen
+EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n
+EXPORT_SYMBOL vmlinux 0x9741990d sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns
+EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x977b1d8c bdi_unregister
+EXPORT_SYMBOL vmlinux 0x9782cc99 inet_frags_init
+EXPORT_SYMBOL vmlinux 0x9785034f scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0x978b794b inet_addr_type
+EXPORT_SYMBOL vmlinux 0x97a822ed blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0x97eb1ef0 tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x97f80ed5 of_register_i2c_devices
+EXPORT_SYMBOL vmlinux 0x97f9124b tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x980114d4 jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x9824b7b4 dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0x982d2d9e jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x9856acbd blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0x985d0309 bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0x9869cb7a bdget
+EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x987eba46 noop_llseek
+EXPORT_SYMBOL vmlinux 0x9894e099 bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init
+EXPORT_SYMBOL vmlinux 0x98a049bc scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0x98c028aa security_inode_readlink
+EXPORT_SYMBOL vmlinux 0x98c5c000 lease_modify
+EXPORT_SYMBOL vmlinux 0x98f591a8 jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0x98fe7882 DMA_MODE_READ
+EXPORT_SYMBOL vmlinux 0x9901ca60 blk_make_request
+EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x9949a13c of_get_cpu_node
+EXPORT_SYMBOL vmlinux 0x995110a2 matrox_mystique
+EXPORT_SYMBOL vmlinux 0x99921b30 open_exec
+EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999e8297 vfree
+EXPORT_SYMBOL vmlinux 0x99bb8806 memmove
+EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name
+EXPORT_SYMBOL vmlinux 0x99ccf595 skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink
+EXPORT_SYMBOL vmlinux 0x99f2dae8 set_device_ro
+EXPORT_SYMBOL vmlinux 0x99fef8f5 pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0x9a0f81d5 ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk
+EXPORT_SYMBOL vmlinux 0x9a3cbf8e block_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0x9a669aa0 dev_set_mtu
+EXPORT_SYMBOL vmlinux 0x9a87c5b8 __dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x9a88cef6 handle_sysrq
+EXPORT_SYMBOL vmlinux 0x9abb70c0 nonseekable_open
+EXPORT_SYMBOL vmlinux 0x9af3b80a cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0x9b006e50 ps2_end_command
+EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b503c72 blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0x9b5ef883 inet_select_addr
+EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize
+EXPORT_SYMBOL vmlinux 0x9b6f6a8d blk_free_tags
+EXPORT_SYMBOL vmlinux 0x9b948918 skb_queue_purge
+EXPORT_SYMBOL vmlinux 0x9b987d1c __set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0x9b99c5cf scm_fp_dup
+EXPORT_SYMBOL vmlinux 0x9ba495ee __rta_fill
+EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split
+EXPORT_SYMBOL vmlinux 0x9bc3ccea sync_blockdev
+EXPORT_SYMBOL vmlinux 0x9bce482f __release_region
+EXPORT_SYMBOL vmlinux 0x9be27a2c netdev_features_change
+EXPORT_SYMBOL vmlinux 0x9be31170 down_write_trylock
+EXPORT_SYMBOL vmlinux 0x9be6df87 inode_add_bytes
+EXPORT_SYMBOL vmlinux 0x9bef396c genphy_read_status
+EXPORT_SYMBOL vmlinux 0x9bf7460a of_find_device_by_phandle
+EXPORT_SYMBOL vmlinux 0x9bfaefae g450_mnp2f
+EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c329e7e dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x9c6309e5 dm_io
+EXPORT_SYMBOL vmlinux 0x9c92ab46 filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x9ca75235 tcf_hash_check
+EXPORT_SYMBOL vmlinux 0x9cb7bf85 pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9ce1b86e pcim_iomap
+EXPORT_SYMBOL vmlinux 0x9ce3f83f nvram_write_byte
+EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x9cecb74d neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x9cfc93a7 proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9d0f61a5 blk_unplug
+EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs
+EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d47a2c2 jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0x9d55d9c7 qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0x9d669763 memcpy
+EXPORT_SYMBOL vmlinux 0x9da12609 journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x9db01981 mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0x9dbc009c arp_send
+EXPORT_SYMBOL vmlinux 0x9dd94064 abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x9dda06b5 inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x9dffc31e dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x9e4a7816 xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0x9e4e3ade neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x9e5a8d08 of_translate_address
+EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x9e79a674 bdevname
+EXPORT_SYMBOL vmlinux 0x9e7beeff inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time
+EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ead6cca wake_up_process
+EXPORT_SYMBOL vmlinux 0x9ecc5123 ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x9ed79f64 __dquot_free_space
+EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk
+EXPORT_SYMBOL vmlinux 0x9ef1abfd devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0x9f1b3dd2 unregister_nls
+EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool
+EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f541520 matroxfb_unregister_driver
+EXPORT_SYMBOL vmlinux 0x9f68032e mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x9f907acd swiotlb_sync_single_for_device
+EXPORT_SYMBOL vmlinux 0x9f984513 strrchr
+EXPORT_SYMBOL vmlinux 0x9f99d9bf ida_pre_get
+EXPORT_SYMBOL vmlinux 0x9f9c2b1c blk_sync_queue
+EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x9fdc0201 netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0xa00c91c7 pci_request_region
+EXPORT_SYMBOL vmlinux 0xa022f05c tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0xa024d47a netif_napi_add
+EXPORT_SYMBOL vmlinux 0xa024d915 jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa069d398 of_find_node_by_type
+EXPORT_SYMBOL vmlinux 0xa085d7a8 journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xa09952cd elevator_exit
+EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0c07989 ide_proc_unregister_driver
+EXPORT_SYMBOL vmlinux 0xa0c81e10 devm_ioport_map
+EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0fade29 del_timer
+EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa13de105 tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa185c10d tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0xa193c281 sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode
+EXPORT_SYMBOL vmlinux 0xa1b8a064 vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched
+EXPORT_SYMBOL vmlinux 0xa1cb8934 dw_spi_add_host
+EXPORT_SYMBOL vmlinux 0xa1ddabb2 xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xa1de0e0b pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0xa1fb6c92 __dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa20cf428 matrox_G100
+EXPORT_SYMBOL vmlinux 0xa22a45c8 __napi_complete
+EXPORT_SYMBOL vmlinux 0xa2574e5b unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0xa2895bdd pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2b03cf5 ipv4_specific
+EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register
+EXPORT_SYMBOL vmlinux 0xa2cb4e6a sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0xa2ef5732 jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker
+EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa33f2fec jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le
+EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config
+EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot
+EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay
+EXPORT_SYMBOL vmlinux 0xa3c8a79d tty_name
+EXPORT_SYMBOL vmlinux 0xa3caa9e2 cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0xa3cad0b0 journal_stop
+EXPORT_SYMBOL vmlinux 0xa3e75545 flush_tlb_kernel_range
+EXPORT_SYMBOL vmlinux 0xa403aae2 nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0xa420ad07 elv_add_request
+EXPORT_SYMBOL vmlinux 0xa42db514 writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0xa4318f2a xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0xa4579faa nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xa48c3422 security_path_chown
+EXPORT_SYMBOL vmlinux 0xa49aa718 dev_mc_init
+EXPORT_SYMBOL vmlinux 0xa4a15a08 pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4dfb6bc input_unregister_handler
+EXPORT_SYMBOL vmlinux 0xa4ef01df dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0xa5187ac8 sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0xa51d48ab simple_unlink
+EXPORT_SYMBOL vmlinux 0xa5366047 scsi_free_command
+EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone
+EXPORT_SYMBOL vmlinux 0xa573beed tcp_connect
+EXPORT_SYMBOL vmlinux 0xa576c263 generic_find_next_le_bit
+EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse
+EXPORT_SYMBOL vmlinux 0xa58ccc04 mac_find_mode
+EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a15c7b inetdev_by_index
+EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last
+EXPORT_SYMBOL vmlinux 0xa5abf5e6 jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0xa5adad4f journal_restart
+EXPORT_SYMBOL vmlinux 0xa5b00659 ppc_proc_freq
+EXPORT_SYMBOL vmlinux 0xa5b2d457 udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource
+EXPORT_SYMBOL vmlinux 0xa5e180df lock_fb_info
+EXPORT_SYMBOL vmlinux 0xa5f49138 up_read
+EXPORT_SYMBOL vmlinux 0xa618a9c8 matroxfb_g450_connect
+EXPORT_SYMBOL vmlinux 0xa62afe4c gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0xa6593957 genphy_config_advert
+EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio
+EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa6c8d43a seq_release_private
+EXPORT_SYMBOL vmlinux 0xa6d3bc79 page_follow_link_light
+EXPORT_SYMBOL vmlinux 0xa6d9c3ec dw_spi_resume_host
+EXPORT_SYMBOL vmlinux 0xa739dd43 matroxfb_read_pins
+EXPORT_SYMBOL vmlinux 0xa75e0fc0 jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0xa776c322 devm_ioremap
+EXPORT_SYMBOL vmlinux 0xa77a8a6e dm_table_get_size
+EXPORT_SYMBOL vmlinux 0xa781a52a del_gendisk
+EXPORT_SYMBOL vmlinux 0xa7bd4c7c textsearch_unregister
+EXPORT_SYMBOL vmlinux 0xa7da18f5 xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0xa7df234a jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0xa7ee0caf scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xa7f97622 journal_get_create_access
+EXPORT_SYMBOL vmlinux 0xa80c0538 inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0xa81b92d0 of_platform_bus_type
+EXPORT_SYMBOL vmlinux 0xa81f9f5d fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0xa861ab6e __ioremap
+EXPORT_SYMBOL vmlinux 0xa86823e9 udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0xa86cd4ef ab3100_event_register
+EXPORT_SYMBOL vmlinux 0xa8720df1 dquot_quota_off
+EXPORT_SYMBOL vmlinux 0xa876dbef simple_getattr
+EXPORT_SYMBOL vmlinux 0xa8872e6a udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0xa89464b7 __ashldi3
+EXPORT_SYMBOL vmlinux 0xa8976555 udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0xa89dab4b macio_release_resources
+EXPORT_SYMBOL vmlinux 0xa8abf693 of_device_uevent
+EXPORT_SYMBOL vmlinux 0xa8b2772f pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue
+EXPORT_SYMBOL vmlinux 0xa8d4c660 register_nls
+EXPORT_SYMBOL vmlinux 0xa8e6193b of_find_compatible_node
+EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa904993e scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0xa90ebbc9 dev_get_stats
+EXPORT_SYMBOL vmlinux 0xa912e8e7 dma_pool_create
+EXPORT_SYMBOL vmlinux 0xa9254760 sock_wmalloc
+EXPORT_SYMBOL vmlinux 0xa92a4821 journal_clear_err
+EXPORT_SYMBOL vmlinux 0xa9571d6d DMA_MODE_WRITE
+EXPORT_SYMBOL vmlinux 0xa96ed545 mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0xa9899276 xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xa9a9a441 dst_release
+EXPORT_SYMBOL vmlinux 0xa9afda50 blkdev_put
+EXPORT_SYMBOL vmlinux 0xa9b115f3 seq_open_private
+EXPORT_SYMBOL vmlinux 0xa9b3cee6 arp_broken_ops
+EXPORT_SYMBOL vmlinux 0xa9b5e95a tc_classify
+EXPORT_SYMBOL vmlinux 0xa9ebbe06 dm_io_client_create
+EXPORT_SYMBOL vmlinux 0xaa063383 get_sb_single
+EXPORT_SYMBOL vmlinux 0xaa44f72e sock_wfree
+EXPORT_SYMBOL vmlinux 0xaa4b1203 dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0xaa4be8c6 napi_gro_receive
+EXPORT_SYMBOL vmlinux 0xaa4df512 pmu_batteries
+EXPORT_SYMBOL vmlinux 0xaa682fc5 sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0xaa6d62a7 skb_find_text
+EXPORT_SYMBOL vmlinux 0xaa8e8441 blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0xaa99b4d7 jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0xaab56081 pcie_port_service_unregister
+EXPORT_SYMBOL vmlinux 0xaad9f243 simple_transaction_release
+EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp
+EXPORT_SYMBOL vmlinux 0xab217412 tcp_disconnect
+EXPORT_SYMBOL vmlinux 0xab2e2ed0 abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0xab6d7b57 ide_complete_rq
+EXPORT_SYMBOL vmlinux 0xab78c895 slow_work_unregister_user
+EXPORT_SYMBOL vmlinux 0xab98c52e dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0xabb4f1c6 clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0xabbce8cb __elv_add_request
+EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabd8e427 matroxfb_var2my
+EXPORT_SYMBOL vmlinux 0xabdd3b1d blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0xabf8a81a phy_device_free
+EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0xac010419 scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac13d687 add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits
+EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac857718 i8042_install_filter
+EXPORT_SYMBOL vmlinux 0xac8a60cd of_device_alloc
+EXPORT_SYMBOL vmlinux 0xaca397f5 call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0xaca44a3a inet_del_protocol
+EXPORT_SYMBOL vmlinux 0xaca86e0b key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton
+EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup
+EXPORT_SYMBOL vmlinux 0xad0285fb sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex
+EXPORT_SYMBOL vmlinux 0xad25bb20 init_timer_key
+EXPORT_SYMBOL vmlinux 0xad311123 of_dev_put
+EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad69a637 pci_find_capability
+EXPORT_SYMBOL vmlinux 0xad6f1f9f bd_set_size
+EXPORT_SYMBOL vmlinux 0xad906bef netif_rx
+EXPORT_SYMBOL vmlinux 0xada8039d scsi_execute
+EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xadae0114 netlink_unicast
+EXPORT_SYMBOL vmlinux 0xadb1f4cd journal_force_commit
+EXPORT_SYMBOL vmlinux 0xadcbcbcc i2c_master_recv
+EXPORT_SYMBOL vmlinux 0xadd1e971 alignment_exception
+EXPORT_SYMBOL vmlinux 0xaddd4770 __debugger_iabr_match
+EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region
+EXPORT_SYMBOL vmlinux 0xae01ea67 follow_down
+EXPORT_SYMBOL vmlinux 0xae040b20 ip_defrag
+EXPORT_SYMBOL vmlinux 0xae212430 redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0xae3fd9da phy_find_first
+EXPORT_SYMBOL vmlinux 0xae463074 migrate_page
+EXPORT_SYMBOL vmlinux 0xae5251f0 llc_sap_open
+EXPORT_SYMBOL vmlinux 0xae67a493 simple_setattr
+EXPORT_SYMBOL vmlinux 0xae70da54 tty_kref_put
+EXPORT_SYMBOL vmlinux 0xae736a14 vga_tryget
+EXPORT_SYMBOL vmlinux 0xae7d88e0 simple_empty
+EXPORT_SYMBOL vmlinux 0xaeb436ec inet_csk_accept
+EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0xaedea5e7 dev_change_flags
+EXPORT_SYMBOL vmlinux 0xaf08cc20 eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xaf15b010 generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0xaf331349 alloc_fcdev
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xaf722302 netif_carrier_on
+EXPORT_SYMBOL vmlinux 0xaf96ff79 register_filesystem
+EXPORT_SYMBOL vmlinux 0xafa3a68e d_alloc
+EXPORT_SYMBOL vmlinux 0xafa5f4a2 pcix_get_mmrbc
+EXPORT_SYMBOL vmlinux 0xafff7b41 nobh_write_begin
+EXPORT_SYMBOL vmlinux 0xb008b79f inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0xb0498f5a put_io_context
+EXPORT_SYMBOL vmlinux 0xb04aa72d generic_writepages
+EXPORT_SYMBOL vmlinux 0xb05bf394 backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0b89c18 shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0xb0cec886 blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xb0e10781 get_option
+EXPORT_SYMBOL vmlinux 0xb0eb82ed of_device_unregister
+EXPORT_SYMBOL vmlinux 0xb0ed0e3e xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0xb10ddd90 rtnl_notify
+EXPORT_SYMBOL vmlinux 0xb1135c65 tr_type_trans
+EXPORT_SYMBOL vmlinux 0xb1274eb6 udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0xb1385f20 dev_add_pack
+EXPORT_SYMBOL vmlinux 0xb1571e18 ____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec
+EXPORT_SYMBOL vmlinux 0xb16f53a3 unlock_new_inode
+EXPORT_SYMBOL vmlinux 0xb17dd636 sock_no_poll
+EXPORT_SYMBOL vmlinux 0xb18f3f06 ide_xfer_verbose
+EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1bd4a59 follow_up
+EXPORT_SYMBOL vmlinux 0xb1c34f4c vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1ca01a1 pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0xb1fceb4d mem_map
+EXPORT_SYMBOL vmlinux 0xb208a06c ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0xb208e4ff __blk_end_request
+EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short
+EXPORT_SYMBOL vmlinux 0xb22fa9f7 rfkill_set_led_trigger_name
+EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xb233762c atomic64_set
+EXPORT_SYMBOL vmlinux 0xb258c283 insert_inode_locked
+EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb26d3cd0 d_alloc_root
+EXPORT_SYMBOL vmlinux 0xb2aa3d4f framebuffer_release
+EXPORT_SYMBOL vmlinux 0xb2b38dd9 skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0xb2d6a10d phy_enable_interrupts
+EXPORT_SYMBOL vmlinux 0xb3119cd6 bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0xb318e1b6 of_get_parent
+EXPORT_SYMBOL vmlinux 0xb3363865 read_dev_sector
+EXPORT_SYMBOL vmlinux 0xb33ab067 blk_register_region
+EXPORT_SYMBOL vmlinux 0xb342ec98 sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0xb36817ad inet_put_port
+EXPORT_SYMBOL vmlinux 0xb36eaae8 sk_reset_txq
+EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0xb37fbf76 dquot_destroy
+EXPORT_SYMBOL vmlinux 0xb384189e of_device_get_modalias
+EXPORT_SYMBOL vmlinux 0xb38d4bf4 rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0xb38e2fcc generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0xb38f581f take_over_console
+EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3bff391 poll_freewait
+EXPORT_SYMBOL vmlinux 0xb3c82ba9 seq_putc
+EXPORT_SYMBOL vmlinux 0xb3efc72d down
+EXPORT_SYMBOL vmlinux 0xb418c9a1 remap_pfn_range
+EXPORT_SYMBOL vmlinux 0xb41c6ae3 pci_remove_bus
+EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked
+EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool
+EXPORT_SYMBOL vmlinux 0xb4255c05 tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0xb4368b14 mnt_unpin
+EXPORT_SYMBOL vmlinux 0xb4653540 kunmap_high
+EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb4b07002 netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0xb4d58198 do_sync_read
+EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf
+EXPORT_SYMBOL vmlinux 0xb52a0d96 sock_setsockopt
+EXPORT_SYMBOL vmlinux 0xb5331285 inode_set_bytes
+EXPORT_SYMBOL vmlinux 0xb53a4336 kmap_pte
+EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb59936a0 generic_delete_inode
+EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5afc625 mark_info_dirty
+EXPORT_SYMBOL vmlinux 0xb5e8e715 scsi_scan_target
+EXPORT_SYMBOL vmlinux 0xb5fa7cd4 iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0xb6004f02 macio_register_driver
+EXPORT_SYMBOL vmlinux 0xb6335bac neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0xb6364340 generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0xb6599b9a machine_check_exception
+EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6786759 phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0xb680d499 sock_release
+EXPORT_SYMBOL vmlinux 0xb69c4dc7 neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu
+EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6ff2df5 security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0xb741ffb3 swiotlb_unmap_sg
+EXPORT_SYMBOL vmlinux 0xb74c1a59 dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0xb753bcc8 __ashrdi3
+EXPORT_SYMBOL vmlinux 0xb75eb6a1 load_nls
+EXPORT_SYMBOL vmlinux 0xb763dd6c journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xb7798df9 pci_try_set_mwi
+EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0xb78b3626 interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0xb7908c94 i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be
+EXPORT_SYMBOL vmlinux 0xb7c3d3c3 kmem_cache_free
+EXPORT_SYMBOL vmlinux 0xb7d7e6bb tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0xb7de63d3 generic_removexattr
+EXPORT_SYMBOL vmlinux 0xb7e4e14b bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0xb7ed4d21 unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0xb80f6e5c rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0xb81fd3be idr_find
+EXPORT_SYMBOL vmlinux 0xb835473e redraw_screen
+EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat
+EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32
+EXPORT_SYMBOL vmlinux 0xb876532f phy_device_create
+EXPORT_SYMBOL vmlinux 0xb88429a2 rfkill_destroy
+EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on
+EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32
+EXPORT_SYMBOL vmlinux 0xb89d9caa hippi_change_mtu
+EXPORT_SYMBOL vmlinux 0xb8a3f8dc tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region
+EXPORT_SYMBOL vmlinux 0xb8b01dad user_revoke
+EXPORT_SYMBOL vmlinux 0xb8f0707c pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0xb8f82752 nla_put
+EXPORT_SYMBOL vmlinux 0xb933d6bb input_inject_event
+EXPORT_SYMBOL vmlinux 0xb97ababc dm_table_put
+EXPORT_SYMBOL vmlinux 0xb983b7ea scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb9a515fa scsi_register_driver
+EXPORT_SYMBOL vmlinux 0xb9b9117f page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0xb9ccac77 neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0xb9e52429 __wake_up
+EXPORT_SYMBOL vmlinux 0xb9e71a04 down_read_trylock
+EXPORT_SYMBOL vmlinux 0xb9f79010 blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xbaa3710f blk_recount_segments
+EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbabddfac inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0xbac931e0 tty_free_termios
+EXPORT_SYMBOL vmlinux 0xbad8f1a7 dev_uc_add
+EXPORT_SYMBOL vmlinux 0xbae002c0 dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0xbaefac04 dm_table_get
+EXPORT_SYMBOL vmlinux 0xbb0aaea2 bdi_destroy
+EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb174f69 gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0xbb179408 ppc_md
+EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb248e93 tty_port_open
+EXPORT_SYMBOL vmlinux 0xbb2cc0e0 bio_add_page
+EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb82b988 abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0xbb84df59 i2c_verify_client
+EXPORT_SYMBOL vmlinux 0xbb8ba577 alloc_fddidev
+EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font
+EXPORT_SYMBOL vmlinux 0xbba812e0 input_set_keycode
+EXPORT_SYMBOL vmlinux 0xbbb45268 cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xbbfedc84 key_negate_and_link
+EXPORT_SYMBOL vmlinux 0xbc1cfcca input_allocate_device
+EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0xbc33a0fc kill_litter_super
+EXPORT_SYMBOL vmlinux 0xbc4a2c42 vm_insert_page
+EXPORT_SYMBOL vmlinux 0xbc4b5d6e pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0xbc8cb370 gen_pool_free
+EXPORT_SYMBOL vmlinux 0xbc9a600c poll_initwait
+EXPORT_SYMBOL vmlinux 0xbcb6ceba of_dev_get
+EXPORT_SYMBOL vmlinux 0xbcbf8867 set_bh_page
+EXPORT_SYMBOL vmlinux 0xbcc706fb pci_device_from_OF_node
+EXPORT_SYMBOL vmlinux 0xbccad775 journal_update_format
+EXPORT_SYMBOL vmlinux 0xbcf0f7b7 fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0xbd12294b pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0xbd301e61 seq_open
+EXPORT_SYMBOL vmlinux 0xbd60a8e1 phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0xbd6100ec bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0xbd7e7ebd proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0xbd8d541d flush_hash_pages
+EXPORT_SYMBOL vmlinux 0xbd9c3c84 unregister_8022_client
+EXPORT_SYMBOL vmlinux 0xbd9e5d49 __lshrdi3
+EXPORT_SYMBOL vmlinux 0xbda2f583 mb_cache_create
+EXPORT_SYMBOL vmlinux 0xbdae9f6e pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0xbdb1e2f7 nobh_writepage
+EXPORT_SYMBOL vmlinux 0xbdc936ec ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0xbdcbc100 mod_timer
+EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next
+EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp
+EXPORT_SYMBOL vmlinux 0xbe124904 of_mm_gpiochip_add
+EXPORT_SYMBOL vmlinux 0xbe17e786 lock_may_write
+EXPORT_SYMBOL vmlinux 0xbe45536d pci_restore_state
+EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource
+EXPORT_SYMBOL vmlinux 0xbe8af172 vfs_readv
+EXPORT_SYMBOL vmlinux 0xbea312ef genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0xbeb631e7 nf_hook_slow
+EXPORT_SYMBOL vmlinux 0xbecc1bf2 inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbef8b403 flush_tlb_mm
+EXPORT_SYMBOL vmlinux 0xbf02862b DAC1064_global_restore
+EXPORT_SYMBOL vmlinux 0xbf14739f get_sb_bdev
+EXPORT_SYMBOL vmlinux 0xbf1faebe mutex_trylock
+EXPORT_SYMBOL vmlinux 0xbf239487 fsnotify_obtain_group
+EXPORT_SYMBOL vmlinux 0xbf46630a noop_qdisc
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbfc0932b jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep
+EXPORT_SYMBOL vmlinux 0xbfcba927 xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0xbfd2f1e6 neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0xbfded277 blk_start_request
+EXPORT_SYMBOL vmlinux 0xbff7e4ed blk_stack_limits
+EXPORT_SYMBOL vmlinux 0xc06ec2c8 abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0xc071fdd7 lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit
+EXPORT_SYMBOL vmlinux 0xc0d84ced cuda_poll
+EXPORT_SYMBOL vmlinux 0xc0f2224f ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten
+EXPORT_SYMBOL vmlinux 0xc12b5a98 get_pci_dma_ops
+EXPORT_SYMBOL vmlinux 0xc140ccc5 pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit
+EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic
+EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0xc18799d3 phy_register_fixup
+EXPORT_SYMBOL vmlinux 0xc19984fb bdi_register_dev
+EXPORT_SYMBOL vmlinux 0xc199ccc9 pci_choose_state
+EXPORT_SYMBOL vmlinux 0xc1b7f784 should_remove_suid
+EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1c97684 copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0xc1dd4a7f adb_request
+EXPORT_SYMBOL vmlinux 0xc226c0e9 kill_pid
+EXPORT_SYMBOL vmlinux 0xc228de6c register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0xc2336b0d skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc264cdc8 flush_dcache_page
+EXPORT_SYMBOL vmlinux 0xc2968efc mark_page_accessed
+EXPORT_SYMBOL vmlinux 0xc2aafc3b i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0xc2c668ee get_sb_pseudo
+EXPORT_SYMBOL vmlinux 0xc2cd74ed rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0xc2d02d4e send_sig_info
+EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc
+EXPORT_SYMBOL vmlinux 0xc2d972d1 check_disk_change
+EXPORT_SYMBOL vmlinux 0xc2e058a4 idr_get_new_above
+EXPORT_SYMBOL vmlinux 0xc2e0718e xrlim_allow
+EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices
+EXPORT_SYMBOL vmlinux 0xc2e818f9 __ip_select_ident
+EXPORT_SYMBOL vmlinux 0xc2fd34bf __seq_open_private
+EXPORT_SYMBOL vmlinux 0xc32cb5a1 bdi_init
+EXPORT_SYMBOL vmlinux 0xc3372b72 nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0xc33d09f4 udp_disconnect
+EXPORT_SYMBOL vmlinux 0xc34511ac input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0xc368849f nvram_sync
+EXPORT_SYMBOL vmlinux 0xc36a7f88 cdev_init
+EXPORT_SYMBOL vmlinux 0xc395facb audit_log_end
+EXPORT_SYMBOL vmlinux 0xc3a20506 noop_fsync
+EXPORT_SYMBOL vmlinux 0xc3ae157a pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p
+EXPORT_SYMBOL vmlinux 0xc3eeb281 of_get_next_child
+EXPORT_SYMBOL vmlinux 0xc40586f8 cdev_add
+EXPORT_SYMBOL vmlinux 0xc43e7a3d journal_start
+EXPORT_SYMBOL vmlinux 0xc45ef616 idr_for_each
+EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup
+EXPORT_SYMBOL vmlinux 0xc4a051bd module_layout
+EXPORT_SYMBOL vmlinux 0xc4a5110f unregister_key_type
+EXPORT_SYMBOL vmlinux 0xc4ba0742 i2c_bit_add_bus
+EXPORT_SYMBOL vmlinux 0xc4c248b9 ___ratelimit
+EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic
+EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0xc52641f5 bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xc52675fc scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16
+EXPORT_SYMBOL vmlinux 0xc569cc74 iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0xc58c1c48 set_groups
+EXPORT_SYMBOL vmlinux 0xc5ac9100 pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0xc5bb4bd5 vm_map_ram
+EXPORT_SYMBOL vmlinux 0xc5c6052f dquot_file_open
+EXPORT_SYMBOL vmlinux 0xc613a316 lro_receive_frags
+EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0xc63767ba d_add_ci
+EXPORT_SYMBOL vmlinux 0xc6650d09 skb_insert
+EXPORT_SYMBOL vmlinux 0xc66b473f skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0xc6be124f dst_alloc
+EXPORT_SYMBOL vmlinux 0xc6dc1731 user_path_at
+EXPORT_SYMBOL vmlinux 0xc6df9eb4 get_fs_type
+EXPORT_SYMBOL vmlinux 0xc72d9227 ilookup
+EXPORT_SYMBOL vmlinux 0xc738bd99 ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0xc73c64c5 qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0xc73de61e sg_miter_start
+EXPORT_SYMBOL vmlinux 0xc757d5db generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0xc75d9989 dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0xc76f3583 __tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0xc7972555 tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0xc7977879 fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a2850e of_get_gpio_flags
+EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn
+EXPORT_SYMBOL vmlinux 0xc7f5269a journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xc80195e9 jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0xc82953c1 netif_carrier_off
+EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc87914c5 pcie_port_service_register
+EXPORT_SYMBOL vmlinux 0xc898dbee generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xc8a64747 phy_print_status
+EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8dbb586 scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0xc8e5f8fb input_release_device
+EXPORT_SYMBOL vmlinux 0xc8fd239f sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0xc9161a57 down_interruptible
+EXPORT_SYMBOL vmlinux 0xc923d744 put_page
+EXPORT_SYMBOL vmlinux 0xc956c931 bioset_create
+EXPORT_SYMBOL vmlinux 0xc95cefef dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0xc960b05d inet_release
+EXPORT_SYMBOL vmlinux 0xc9912b6d matroxfb_vgaHWinit
+EXPORT_SYMBOL vmlinux 0xc99bee96 vfs_follow_link
+EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev
+EXPORT_SYMBOL vmlinux 0xc9aa4433 sock_no_connect
+EXPORT_SYMBOL vmlinux 0xc9c3be28 of_create_pci_dev
+EXPORT_SYMBOL vmlinux 0xca2537f5 page_symlink
+EXPORT_SYMBOL vmlinux 0xca2a38ee new_inode
+EXPORT_SYMBOL vmlinux 0xca2d87a0 pci_assign_resource
+EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca66cba2 bdi_register
+EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend
+EXPORT_SYMBOL vmlinux 0xca99f7d0 tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0xca9ef80f of_find_node_by_phandle
+EXPORT_SYMBOL vmlinux 0xcaa2ea66 fb_pan_display
+EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0xcacd272d atomic64_sub_return
+EXPORT_SYMBOL vmlinux 0xcae0983e input_open_device
+EXPORT_SYMBOL vmlinux 0xcae88731 get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0xcb2443c7 directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0xcb34f67e scsi_execute_req
+EXPORT_SYMBOL vmlinux 0xcb3a2881 blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb7ef327 ide_raw_taskfile
+EXPORT_SYMBOL vmlinux 0xcb8d79b5 wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0xcb9df5e7 jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xcba68f2c scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0xcbea80e6 blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0xcbf45a59 journal_ack_err
+EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc3d7a83 swiotlb_map_sg
+EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc554eb4 alloc_netdev_mq
+EXPORT_SYMBOL vmlinux 0xcc664b51 fb_class
+EXPORT_SYMBOL vmlinux 0xcc7cb7f1 dev_addr_flush
+EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc9a2432 pagecache_write_end
+EXPORT_SYMBOL vmlinux 0xccafb24b iunique
+EXPORT_SYMBOL vmlinux 0xcce37885 dma_spin_lock
+EXPORT_SYMBOL vmlinux 0xcce5bf84 is_container_init
+EXPORT_SYMBOL vmlinux 0xcd244784 __blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xcd2607cf __pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0xcd38d9ca mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0xcd4b6310 unbind_con_driver
+EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue
+EXPORT_SYMBOL vmlinux 0xcd4ec2f4 dev_uc_del
+EXPORT_SYMBOL vmlinux 0xcd58a632 scsi_scan_host
+EXPORT_SYMBOL vmlinux 0xcd58ebdf bh_submit_read
+EXPORT_SYMBOL vmlinux 0xcd5c833a write_inode_now
+EXPORT_SYMBOL vmlinux 0xcd70e36f security_path_link
+EXPORT_SYMBOL vmlinux 0xcd7ec945 pipe_to_file
+EXPORT_SYMBOL vmlinux 0xcd839d4c ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0xcdbe7d3f xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0xcde2c717 generic_setattr
+EXPORT_SYMBOL vmlinux 0xcdf3053d scsi_register
+EXPORT_SYMBOL vmlinux 0xce13eb2d generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0xce334060 jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume
+EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce6c8678 pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0xce71af11 mntput_no_expire
+EXPORT_SYMBOL vmlinux 0xce877f43 tcp4_gro_receive
+EXPORT_SYMBOL vmlinux 0xce8c2556 proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0xce8dbbf6 tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0xcecba855 skb_push
+EXPORT_SYMBOL vmlinux 0xceebb68e block_write_begin
+EXPORT_SYMBOL vmlinux 0xceefc561 genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0xcef80c98 sk_dst_check
+EXPORT_SYMBOL vmlinux 0xcf12ea7f flush_hash_entry
+EXPORT_SYMBOL vmlinux 0xcf411d2c blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0xcf6d15dc journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user
+EXPORT_SYMBOL vmlinux 0xcfb29c1f scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfd8e5b6 udplite_prot
+EXPORT_SYMBOL vmlinux 0xcff295d9 journal_destroy
+EXPORT_SYMBOL vmlinux 0xcffbbd99 dquot_acquire
+EXPORT_SYMBOL vmlinux 0xcffcbc9a pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0xd0063095 freeze_bdev
+EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd0189b1a i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0xd03ef67d neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xd06901bc mpage_writepage
+EXPORT_SYMBOL vmlinux 0xd076ff8c kern_path
+EXPORT_SYMBOL vmlinux 0xd0791a76 generic_unplug_device
+EXPORT_SYMBOL vmlinux 0xd07d0610 dquot_alloc
+EXPORT_SYMBOL vmlinux 0xd07eba63 mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0xd092758d abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0xd0a45fa5 pmu_enable_irled
+EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0cbc5c3 buffer_migrate_page
+EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd113d3a7 cfb_imageblit
+EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf
+EXPORT_SYMBOL vmlinux 0xd16b44ad kunmap_atomic
+EXPORT_SYMBOL vmlinux 0xd17267d4 bdev_read_only
+EXPORT_SYMBOL vmlinux 0xd18f0808 max8925_reg_read
+EXPORT_SYMBOL vmlinux 0xd19a25ae __netif_schedule
+EXPORT_SYMBOL vmlinux 0xd19fb715 __alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0xd1b79bbb sync_inode
+EXPORT_SYMBOL vmlinux 0xd1cea543 d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xd1d19834 pci_save_state
+EXPORT_SYMBOL vmlinux 0xd1e6e259 generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0xd2243c19 scsi_host_put
+EXPORT_SYMBOL vmlinux 0xd23150e9 pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0xd2440ca9 inet_listen
+EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t
+EXPORT_SYMBOL vmlinux 0xd25a791f matrox_millennium
+EXPORT_SYMBOL vmlinux 0xd25b1cf6 sock_no_bind
+EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook
+EXPORT_SYMBOL vmlinux 0xd2915fb3 mdio_bus_type
+EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table
+EXPORT_SYMBOL vmlinux 0xd2c56f5f simple_readpage
+EXPORT_SYMBOL vmlinux 0xd2cb8bb4 ps2_init
+EXPORT_SYMBOL vmlinux 0xd3009ad0 block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0xd3114575 filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0xd312f5cb pci_iounmap
+EXPORT_SYMBOL vmlinux 0xd313951e sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible
+EXPORT_SYMBOL vmlinux 0xd32ebf6e page_readlink
+EXPORT_SYMBOL vmlinux 0xd33ea7c6 inet_frag_find
+EXPORT_SYMBOL vmlinux 0xd34ab1f1 unload_nls
+EXPORT_SYMBOL vmlinux 0xd36d381d dev_gro_receive
+EXPORT_SYMBOL vmlinux 0xd37604ff netif_napi_del
+EXPORT_SYMBOL vmlinux 0xd3930656 generic_file_llseek
+EXPORT_SYMBOL vmlinux 0xd3a7691a skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xd3aa2dd2 tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0xd3b8e94a eth_change_mtu
+EXPORT_SYMBOL vmlinux 0xd3c72d7d bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0xd3de90fd scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0xd3ed4a84 tty_unthrottle
+EXPORT_SYMBOL vmlinux 0xd409383c pmu_request
+EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource
+EXPORT_SYMBOL vmlinux 0xd43bfdb9 tty_set_operations
+EXPORT_SYMBOL vmlinux 0xd44a594a kill_block_super
+EXPORT_SYMBOL vmlinux 0xd455525c bmap
+EXPORT_SYMBOL vmlinux 0xd4742684 kdb_current_task
+EXPORT_SYMBOL vmlinux 0xd47aa06c down_write
+EXPORT_SYMBOL vmlinux 0xd47b3705 inet_stream_connect
+EXPORT_SYMBOL vmlinux 0xd4aaa6c6 ip_setsockopt
+EXPORT_SYMBOL vmlinux 0xd4b485ad dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0xd522cb86 block_write_full_page
+EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd52f7772 kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0xd53b1e5d elv_rb_add
+EXPORT_SYMBOL vmlinux 0xd5526e08 backlight_device_register
+EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out
+EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages
+EXPORT_SYMBOL vmlinux 0xd5b02a05 unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put
+EXPORT_SYMBOL vmlinux 0xd5b2e52a single_step_exception
+EXPORT_SYMBOL vmlinux 0xd5c7dbd2 ip_route_output_key
+EXPORT_SYMBOL vmlinux 0xd5cb8314 blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0xd5dcf50d netpoll_poll_dev
+EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32
+EXPORT_SYMBOL vmlinux 0xd5fc4b8b path_is_under
+EXPORT_SYMBOL vmlinux 0xd6081674 insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0xd61d77b0 vlan_gro_frags
+EXPORT_SYMBOL vmlinux 0xd6246357 fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0xd627480b strncat
+EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd635d134 rb_last
+EXPORT_SYMBOL vmlinux 0xd64049b6 set_page_dirty
+EXPORT_SYMBOL vmlinux 0xd641f376 end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0xd65ab3d6 contig_page_data
+EXPORT_SYMBOL vmlinux 0xd65b8a20 of_match_node
+EXPORT_SYMBOL vmlinux 0xd664ac1a tcp_ioctl
+EXPORT_SYMBOL vmlinux 0xd66e02e6 elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0xd66f7486 vfs_link
+EXPORT_SYMBOL vmlinux 0xd69b30e0 atomic64_add_unless
+EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single
+EXPORT_SYMBOL vmlinux 0xd6a7c667 __secpath_destroy
+EXPORT_SYMBOL vmlinux 0xd6a88d99 iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0xd6b0d498 tcf_em_register
+EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc
+EXPORT_SYMBOL vmlinux 0xd6f4616d dev_get_by_flags
+EXPORT_SYMBOL vmlinux 0xd6f97ca1 rb_first
+EXPORT_SYMBOL vmlinux 0xd6fa2762 jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0xd72643a0 __nla_put
+EXPORT_SYMBOL vmlinux 0xd7337a5b key_alloc
+EXPORT_SYMBOL vmlinux 0xd74dcac5 jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0xd75b1d75 pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0xd76abfcb block_write_end
+EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and
+EXPORT_SYMBOL vmlinux 0xd78e7b35 nla_append
+EXPORT_SYMBOL vmlinux 0xd79a5317 blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal
+EXPORT_SYMBOL vmlinux 0xd79c0b53 __page_symlink
+EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd83cb20c llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user
+EXPORT_SYMBOL vmlinux 0xd853d6c5 blk_complete_request
+EXPORT_SYMBOL vmlinux 0xd86340ec phy_start
+EXPORT_SYMBOL vmlinux 0xd884a89e vga_put
+EXPORT_SYMBOL vmlinux 0xd8926fb2 find_vma
+EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone
+EXPORT_SYMBOL vmlinux 0xd89dfd8e register_sysrq_key
+EXPORT_SYMBOL vmlinux 0xd8a1cda8 bdget_disk
+EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p
+EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd8f76cfa pipe_unlock
+EXPORT_SYMBOL vmlinux 0xd9120613 ide_dump_status
+EXPORT_SYMBOL vmlinux 0xd92514ca agp_special_page
+EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd930862b skb_trim
+EXPORT_SYMBOL vmlinux 0xd9385ba7 ps2_command
+EXPORT_SYMBOL vmlinux 0xd9856e50 xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd9929912 udp_sendmsg
+EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node
+EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen
+EXPORT_SYMBOL vmlinux 0xda12a0b1 jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf
+EXPORT_SYMBOL vmlinux 0xda31d5f5 block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0xda4c28c3 dquot_enable
+EXPORT_SYMBOL vmlinux 0xda529ab2 __nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xda5843d1 alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0xda7c6b44 __skb_bond_should_drop
+EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages
+EXPORT_SYMBOL vmlinux 0xdaba01af genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0xdae2a668 security_path_truncate
+EXPORT_SYMBOL vmlinux 0xdaf45a59 rtas_data_buf_lock
+EXPORT_SYMBOL vmlinux 0xdb0ae184 tcp_sendpage
+EXPORT_SYMBOL vmlinux 0xdb1d0970 journal_set_features
+EXPORT_SYMBOL vmlinux 0xdb47a9de kernel_listen
+EXPORT_SYMBOL vmlinux 0xdb5e962a tcp_parse_options
+EXPORT_SYMBOL vmlinux 0xdb72a326 module_put
+EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbd4aae1 macio_enable_devres
+EXPORT_SYMBOL vmlinux 0xdbe08e2a phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xdbea3dd4 file_update_time
+EXPORT_SYMBOL vmlinux 0xdbffd9f7 nf_register_hook
+EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc086d0f dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xdc0f63fd cdev_del
+EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems
+EXPORT_SYMBOL vmlinux 0xdc1628cd kick_iocb
+EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize
+EXPORT_SYMBOL vmlinux 0xdc5976b5 __module_put_and_exit
+EXPORT_SYMBOL vmlinux 0xdc798d37 __mutex_init
+EXPORT_SYMBOL vmlinux 0xdc7db14f seq_read
+EXPORT_SYMBOL vmlinux 0xdc80f8dc bio_integrity_free
+EXPORT_SYMBOL vmlinux 0xdc9071c0 sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0xdc9b56ac scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family
+EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close
+EXPORT_SYMBOL vmlinux 0xdcbcc9d6 rwsem_wake
+EXPORT_SYMBOL vmlinux 0xdcc0cbba generic_show_options
+EXPORT_SYMBOL vmlinux 0xdcc6146d xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0xdcd84ea3 __xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume
+EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat
+EXPORT_SYMBOL vmlinux 0xdd0a3477 revalidate_disk
+EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr
+EXPORT_SYMBOL vmlinux 0xdd37f8cd pci_fixup_device
+EXPORT_SYMBOL vmlinux 0xdd5600df skb_queue_tail
+EXPORT_SYMBOL vmlinux 0xdd5a034d scsi_get_command
+EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0xdd7f1ff5 mfd_add_devices
+EXPORT_SYMBOL vmlinux 0xdd838796 __neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0xdd9105c9 tcp_close
+EXPORT_SYMBOL vmlinux 0xddab6326 alloc_disk
+EXPORT_SYMBOL vmlinux 0xdde9fe79 pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0xddea2b4f matroxfb_register_driver
+EXPORT_SYMBOL vmlinux 0xde0f022e dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0xde216dac journal_init_inode
+EXPORT_SYMBOL vmlinux 0xde3350d8 sockfd_lookup
+EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask
+EXPORT_SYMBOL vmlinux 0xde4d1f8f put_tty_driver
+EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type
+EXPORT_SYMBOL vmlinux 0xde825e75 netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages
+EXPORT_SYMBOL vmlinux 0xdec1d1db mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0xdec44948 pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0xdeed840e security_path_rmdir
+EXPORT_SYMBOL vmlinux 0xdf0bbdc2 xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0xdf2661bb cdrom_release
+EXPORT_SYMBOL vmlinux 0xdf3e7d72 kmalloc_caches
+EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval
+EXPORT_SYMBOL vmlinux 0xdf54721a blk_stop_queue
+EXPORT_SYMBOL vmlinux 0xdf58a007 dquot_quota_on
+EXPORT_SYMBOL vmlinux 0xdf5ccb24 blk_run_queue
+EXPORT_SYMBOL vmlinux 0xdf5ff504 generic_block_bmap
+EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol
+EXPORT_SYMBOL vmlinux 0xdf6a314b lock_may_read
+EXPORT_SYMBOL vmlinux 0xdf8d11d3 scsi_register_interface
+EXPORT_SYMBOL vmlinux 0xdf9217d1 __scsi_put_command
+EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdf9ca372 cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0xdfa3d51b dev_mc_flush
+EXPORT_SYMBOL vmlinux 0xdfb8571d napi_skb_finish
+EXPORT_SYMBOL vmlinux 0xdff4359b __pagevec_release
+EXPORT_SYMBOL vmlinux 0xdff43ed4 __debugger
+EXPORT_SYMBOL vmlinux 0xdff56e64 adb_poll
+EXPORT_SYMBOL vmlinux 0xe0112338 kmem_ptr_validate
+EXPORT_SYMBOL vmlinux 0xe03dffec dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0xe03f0710 misc_deregister
+EXPORT_SYMBOL vmlinux 0xe04463bc inode_needs_sync
+EXPORT_SYMBOL vmlinux 0xe05d0dff mdiobus_read
+EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe080d6d4 tcf_exts_change
+EXPORT_SYMBOL vmlinux 0xe08245cb sock_i_uid
+EXPORT_SYMBOL vmlinux 0xe08371b7 dquot_quota_on_path
+EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next
+EXPORT_SYMBOL vmlinux 0xe0a68d61 tty_write_room
+EXPORT_SYMBOL vmlinux 0xe0af38a4 inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0xe0b12a7d inet_stream_ops
+EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free
+EXPORT_SYMBOL vmlinux 0xe0b2c6e9 tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0xe0bb4318 __skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort
+EXPORT_SYMBOL vmlinux 0xe0c29b98 elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0xe0ca4cb7 phy_disconnect
+EXPORT_SYMBOL vmlinux 0xe0d185c3 lookup_one_len
+EXPORT_SYMBOL vmlinux 0xe0d6d73b cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0xe0d7caf0 max8925_reg_write
+EXPORT_SYMBOL vmlinux 0xe10f7422 phy_attach
+EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial
+EXPORT_SYMBOL vmlinux 0xe12897fa security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0xe142d10f jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0xe149cc26 d_invalidate
+EXPORT_SYMBOL vmlinux 0xe16b893b mutex_lock
+EXPORT_SYMBOL vmlinux 0xe174c156 sk_stream_error
+EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe1c5fef2 dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0xe1ca735f generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0xe1ce1bcb cfb_fillrect
+EXPORT_SYMBOL vmlinux 0xe1d6e7b2 scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0xe1d8c758 fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0xe210ad62 scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense
+EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe248a974 blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64
+EXPORT_SYMBOL vmlinux 0xe25b57b1 tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0xe25c954e slow_work_sleep_till_thread_needed
+EXPORT_SYMBOL vmlinux 0xe2612d85 tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0xe264a771 free_buffer_head
+EXPORT_SYMBOL vmlinux 0xe2a3fd4f scsi_unregister
+EXPORT_SYMBOL vmlinux 0xe2ae4c74 netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0xe2bd0431 blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0xe2be5457 of_device_is_compatible
+EXPORT_SYMBOL vmlinux 0xe2d1eb5f slow_work_cancel
+EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp
+EXPORT_SYMBOL vmlinux 0xe2deaedc __devm_release_region
+EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range
+EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user
+EXPORT_SYMBOL vmlinux 0xe2f581df netif_device_detach
+EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup
+EXPORT_SYMBOL vmlinux 0xe305de42 invalidate_inodes
+EXPORT_SYMBOL vmlinux 0xe319bbfe matroxfb_g450_setclk
+EXPORT_SYMBOL vmlinux 0xe31ac874 save_mount_options
+EXPORT_SYMBOL vmlinux 0xe366b1f6 xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0xe36e1c2d of_n_size_cells
+EXPORT_SYMBOL vmlinux 0xe3783562 phy_attach_direct
+EXPORT_SYMBOL vmlinux 0xe380606e dquot_resume
+EXPORT_SYMBOL vmlinux 0xe3fbc179 neigh_seq_start
+EXPORT_SYMBOL vmlinux 0xe41964f5 tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0xe41eb2e9 vfs_write
+EXPORT_SYMBOL vmlinux 0xe43892b7 tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0xe483d297 cfb_copyarea
+EXPORT_SYMBOL vmlinux 0xe484e35f ioread32
+EXPORT_SYMBOL vmlinux 0xe4b960fc flush_tlb_range
+EXPORT_SYMBOL vmlinux 0xe4d8afd2 __generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xe4e2b2fa pci_read_vpd
+EXPORT_SYMBOL vmlinux 0xe500bfd3 scsi_host_get
+EXPORT_SYMBOL vmlinux 0xe50804c6 nf_log_register
+EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe519b5c5 __napi_schedule
+EXPORT_SYMBOL vmlinux 0xe51bf4ef __destroy_inode
+EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe52dd6ae tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0xe550d9f1 xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton
+EXPORT_SYMBOL vmlinux 0xe5842a49 netdev_set_master
+EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5900b6b make_bad_inode
+EXPORT_SYMBOL vmlinux 0xe59bd49d filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0xe5aa2113 simple_dir_operations
+EXPORT_SYMBOL vmlinux 0xe5ac627d tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0xe5c5b182 swiotlb_map_sg_attrs
+EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5c87dfe pci_match_id
+EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe60c69eb blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0xe64c7017 d_find_alias
+EXPORT_SYMBOL vmlinux 0xe6540d01 __netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0xe66c6c8a register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe69cedb1 sock_wake_async
+EXPORT_SYMBOL vmlinux 0xe69d451f d_move
+EXPORT_SYMBOL vmlinux 0xe6a19255 tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0xe6bfae7c inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0xe6c1e20c xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0xe6dd236d clear_pages
+EXPORT_SYMBOL vmlinux 0xe6e1910e simple_write_end
+EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update
+EXPORT_SYMBOL vmlinux 0xe6f3b50c tcp_prot
+EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe6fca112 kill_fasync
+EXPORT_SYMBOL vmlinux 0xe6fd1ac1 path_get
+EXPORT_SYMBOL vmlinux 0xe7153cde otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0xe724376f ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0xe73d0fde sleep_on
+EXPORT_SYMBOL vmlinux 0xe7bbf656 d_alloc_name
+EXPORT_SYMBOL vmlinux 0xe7c68e05 inet_getname
+EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio
+EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7e27c36 __xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0xe7e44084 __xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xe7f038e5 gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0xe7fab82e pci_get_subsys
+EXPORT_SYMBOL vmlinux 0xe80b299a scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0xe81c4d7d kernel_bind
+EXPORT_SYMBOL vmlinux 0xe8272f82 abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0xe82743f9 tcf_hash_release
+EXPORT_SYMBOL vmlinux 0xe8580890 netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0xe87a4fdf dquot_disable
+EXPORT_SYMBOL vmlinux 0xe87ed1ce idr_replace
+EXPORT_SYMBOL vmlinux 0xe88fabf4 dquot_commit_info
+EXPORT_SYMBOL vmlinux 0xe8a35ff6 seq_escape
+EXPORT_SYMBOL vmlinux 0xe90aa4e9 rb_insert_color
+EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module
+EXPORT_SYMBOL vmlinux 0xe914e41e strcpy
+EXPORT_SYMBOL vmlinux 0xe91ec496 rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0xe9308a75 blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0xe9481aa2 xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0xe966941a dmam_pool_create
+EXPORT_SYMBOL vmlinux 0xe98a87f1 dcache_lock
+EXPORT_SYMBOL vmlinux 0xe98bb852 nlmsg_notify
+EXPORT_SYMBOL vmlinux 0xe9afa98f security_path_mkdir
+EXPORT_SYMBOL vmlinux 0xe9b32157 security_path_chmod
+EXPORT_SYMBOL vmlinux 0xe9b5eed2 single_open
+EXPORT_SYMBOL vmlinux 0xe9cf27a1 pci_claim_resource
+EXPORT_SYMBOL vmlinux 0xe9e9159a skb_split
+EXPORT_SYMBOL vmlinux 0xe9efa82f of_node_get
+EXPORT_SYMBOL vmlinux 0xe9fbe85b vfs_readlink
+EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea147363 printk
+EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0xea36beff set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0xea7987f1 key_update
+EXPORT_SYMBOL vmlinux 0xea7faad6 register_console
+EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xea8aa064 sock_create_lite
+EXPORT_SYMBOL vmlinux 0xeaa36d79 journal_dirty_data
+EXPORT_SYMBOL vmlinux 0xeaab4e8b up_write
+EXPORT_SYMBOL vmlinux 0xeabde0b4 __put_cred
+EXPORT_SYMBOL vmlinux 0xeb09ecc3 vfs_statfs
+EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq
+EXPORT_SYMBOL vmlinux 0xeb46e882 pci_bus_type
+EXPORT_SYMBOL vmlinux 0xeb662f25 __serio_register_port
+EXPORT_SYMBOL vmlinux 0xeb8317c8 inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n
+EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present
+EXPORT_SYMBOL vmlinux 0xebbc7d15 igrab
+EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull
+EXPORT_SYMBOL vmlinux 0xebe3e9f7 vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0xec016ef7 kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec1c1074 tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0xec6349a7 fb_validate_mode
+EXPORT_SYMBOL vmlinux 0xec639031 blk_init_queue
+EXPORT_SYMBOL vmlinux 0xec6a4d04 wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0xec6e3eee scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xec765a7a open_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xecbd4e44 pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0xecbe7690 dm_register_target
+EXPORT_SYMBOL vmlinux 0xecc94911 dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0xeccedb68 vfs_getattr
+EXPORT_SYMBOL vmlinux 0xed1d3f3f read_cache_page
+EXPORT_SYMBOL vmlinux 0xed493d3a pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0xed6544e5 dev_uc_sync
+EXPORT_SYMBOL vmlinux 0xed7b14eb bio_free
+EXPORT_SYMBOL vmlinux 0xed9c1dbe pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedc03953 iounmap
+EXPORT_SYMBOL vmlinux 0xede11ef7 ide_stall_queue
+EXPORT_SYMBOL vmlinux 0xede60269 flush_icache_user_range
+EXPORT_SYMBOL vmlinux 0xedf04b3e keyring_search
+EXPORT_SYMBOL vmlinux 0xee28561d block_commit_write
+EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee44563f seq_release
+EXPORT_SYMBOL vmlinux 0xee59412f adb_try_handler_change
+EXPORT_SYMBOL vmlinux 0xee5eda8c hippi_mac_addr
+EXPORT_SYMBOL vmlinux 0xee798167 vfs_rename
+EXPORT_SYMBOL vmlinux 0xeea6f9c5 mdiobus_scan
+EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeebb99be blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0xeebf7254 xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0xeee6da00 phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0xeeea662d sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0xeeeb1dfc key_link
+EXPORT_SYMBOL vmlinux 0xef433e12 scsi_device_get
+EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool
+EXPORT_SYMBOL vmlinux 0xef87e24e tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0xef8e533a scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0xef8ec095 setup_arg_pages
+EXPORT_SYMBOL vmlinux 0xefabf23b blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xefcbefa6 give_up_console
+EXPORT_SYMBOL vmlinux 0xefd69496 blk_integrity_register
+EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range
+EXPORT_SYMBOL vmlinux 0xeff30190 inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list
+EXPORT_SYMBOL vmlinux 0xf021997c pci_scan_slot
+EXPORT_SYMBOL vmlinux 0xf0249b3a ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0xf02e5801 km_query
+EXPORT_SYMBOL vmlinux 0xf04e4cfe eth_header
+EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be
+EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf
+EXPORT_SYMBOL vmlinux 0xf105db7a __lru_cache_add
+EXPORT_SYMBOL vmlinux 0xf10de535 ioread8
+EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32
+EXPORT_SYMBOL vmlinux 0xf136c279 add_timer
+EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem
+EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1bb26e8 sg_miter_next
+EXPORT_SYMBOL vmlinux 0xf1d2dcc0 scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64
+EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun
+EXPORT_SYMBOL vmlinux 0xf1fb352c security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq
+EXPORT_SYMBOL vmlinux 0xf20f794d tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0xf227ab7e blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0xf231a676 fb_set_var
+EXPORT_SYMBOL vmlinux 0xf2409c3d i2c_clients_command
+EXPORT_SYMBOL vmlinux 0xf24438b9 __vlan_hwaccel_rx
+EXPORT_SYMBOL vmlinux 0xf250b9f5 fasync_helper
+EXPORT_SYMBOL vmlinux 0xf25c7b7d tty_port_close
+EXPORT_SYMBOL vmlinux 0xf2739ba9 bio_split
+EXPORT_SYMBOL vmlinux 0xf28fe672 thaw_super
+EXPORT_SYMBOL vmlinux 0xf2ab4bd1 security_task_getsecid
+EXPORT_SYMBOL vmlinux 0xf2c890ab simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0xf2cfa8c7 kobject_get
+EXPORT_SYMBOL vmlinux 0xf2f0714a ll_rw_block
+EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform
+EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name
+EXPORT_SYMBOL vmlinux 0xf33089ec close_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user
+EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf34d21ce sock_rfree
+EXPORT_SYMBOL vmlinux 0xf3585915 set_bdi_congested
+EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf38aadc2 __scm_send
+EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg
+EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf42bfd95 kernel_connect
+EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf4449388 timer_interrupt
+EXPORT_SYMBOL vmlinux 0xf452b7e4 blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0xf4666f95 prepare_binprm
+EXPORT_SYMBOL vmlinux 0xf4ae3598 sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0xf4b6c7e1 init_buffer
+EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf52321e0 atomic64_sub
+EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n
+EXPORT_SYMBOL vmlinux 0xf5443478 generic_listxattr
+EXPORT_SYMBOL vmlinux 0xf54d3fa0 simple_transaction_set
+EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io
+EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister
+EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf6288e02 __init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0xf649eb9f rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0xf64cd6be journal_errno
+EXPORT_SYMBOL vmlinux 0xf6680438 rtc_dev_update_irq_enable_emul
+EXPORT_SYMBOL vmlinux 0xf67e3089 dquot_drop
+EXPORT_SYMBOL vmlinux 0xf6a4172b scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table
+EXPORT_SYMBOL vmlinux 0xf6caad0b max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0xf6de85fa __dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf6f37691 tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0xf70384d7 __debugger_sstep
+EXPORT_SYMBOL vmlinux 0xf707466f d_genocide
+EXPORT_SYMBOL vmlinux 0xf71521ba atomic64_add_return
+EXPORT_SYMBOL vmlinux 0xf72003ea tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0xf7252a7e scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0xf7340588 send_sig
+EXPORT_SYMBOL vmlinux 0xf7417703 ip_route_input_common
+EXPORT_SYMBOL vmlinux 0xf7584a9c find_font
+EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0xf76b6306 mpage_readpages
+EXPORT_SYMBOL vmlinux 0xf77a91fd blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7dd5711 serio_reconnect
+EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set
+EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf8231098 sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf861a8c6 pmac_suspend_agp_for_card
+EXPORT_SYMBOL vmlinux 0xf8aa961f __lock_page
+EXPORT_SYMBOL vmlinux 0xf8ab9148 register_netdev
+EXPORT_SYMBOL vmlinux 0xf8bff209 rfkill_unregister
+EXPORT_SYMBOL vmlinux 0xf8c4df21 elevator_init
+EXPORT_SYMBOL vmlinux 0xf8c725d5 skb_copy_bits
+EXPORT_SYMBOL vmlinux 0xf8d6533e request_firmware
+EXPORT_SYMBOL vmlinux 0xf8d7062f xfrm_state_update
+EXPORT_SYMBOL vmlinux 0xf8edffa2 kernel_getpeername
+EXPORT_SYMBOL vmlinux 0xf90c155d init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0xf90cf0f7 install_exec_creds
+EXPORT_SYMBOL vmlinux 0xf9499beb pci_read_irq_line
+EXPORT_SYMBOL vmlinux 0xf9602fcf lro_vlan_hwaccel_receive_skb
+EXPORT_SYMBOL vmlinux 0xf96053d6 of_parse_phandle
+EXPORT_SYMBOL vmlinux 0xf9663893 init_special_inode
+EXPORT_SYMBOL vmlinux 0xf96bf5db __blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep
+EXPORT_SYMBOL vmlinux 0xf9b3d6fa sock_create
+EXPORT_SYMBOL vmlinux 0xf9d0019a proc_create_data
+EXPORT_SYMBOL vmlinux 0xfa01e05b tcp_splice_read
+EXPORT_SYMBOL vmlinux 0xfa2dca11 tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0xfa2e8f6c __brelse
+EXPORT_SYMBOL vmlinux 0xfacb2ae1 devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0xfacd8084 flush_signals
+EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock
+EXPORT_SYMBOL vmlinux 0xfaefccad skb_copy
+EXPORT_SYMBOL vmlinux 0xfaf09bd4 vga_get
+EXPORT_SYMBOL vmlinux 0xfaf2e5c5 simple_setsize
+EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32
+EXPORT_SYMBOL vmlinux 0xfaff6244 swiotlb_alloc_coherent
+EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs
+EXPORT_SYMBOL vmlinux 0xfb2c2390 unlock_super
+EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb99139c __find_get_block
+EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xfbd27a4c bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0xfbf6cc4c pci_set_power_state
+EXPORT_SYMBOL vmlinux 0xfbfdc405 iget_failed
+EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc07ddb0 generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0xfc18fc86 task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0xfc39028a of_find_node_by_path
+EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc91e2aa dcache_dir_close
+EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states
+EXPORT_SYMBOL vmlinux 0xfce1577a __ide_dma_bad_drive
+EXPORT_SYMBOL vmlinux 0xfce38d8a no_llseek
+EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq
+EXPORT_SYMBOL vmlinux 0xfcedafa7 pci_dev_driver
+EXPORT_SYMBOL vmlinux 0xfcf5b4d5 bio_phys_segments
+EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfd0c5038 adb_unregister
+EXPORT_SYMBOL vmlinux 0xfd3b1c21 scsi_block_requests
+EXPORT_SYMBOL vmlinux 0xfd50403d blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0xfd9588c7 jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0xfd99336c read_cache_page_async
+EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xfda8dc96 touch_atime
+EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be
+EXPORT_SYMBOL vmlinux 0xfdbff551 jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0xfde1e544 i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0xfde2f98d inode_init_owner
+EXPORT_SYMBOL vmlinux 0xfdec2a87 set_anon_super
+EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp
+EXPORT_SYMBOL vmlinux 0xfdf1a4d7 simple_fill_super
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe0df95f generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0xfe12e72b validate_sp
+EXPORT_SYMBOL vmlinux 0xfe1c6baf napi_complete
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz
+EXPORT_SYMBOL vmlinux 0xfe634f58 add_wait_queue
+EXPORT_SYMBOL vmlinux 0xfe6fce4f ip_fragment
+EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe84d04e dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xfe8d19a4 kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0xfe8f833e inode_setattr
+EXPORT_SYMBOL vmlinux 0xfeae40fb file_permission
+EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin
+EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfee4cef7 nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0xfee7af9e __dst_free
+EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff054f76 skb_tx_hash
+EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call
+EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start
+EXPORT_SYMBOL vmlinux 0xff45b570 misc_register
+EXPORT_SYMBOL vmlinux 0xff499502 prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0xff4c8550 generic_ide_ioctl
+EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff6c5403 input_event
+EXPORT_SYMBOL vmlinux 0xff93766a swiotlb_dma_supported
+EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int
+EXPORT_SYMBOL vmlinux 0xff99b371 dev_addr_add
+EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffb3b632 tcp_v4_remember_stamp
+EXPORT_SYMBOL vmlinux 0xffb6b5e0 scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function
+EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table
+EXPORT_SYMBOL vmlinux 0xffe6602f skb_realloc_headroom
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x094ac8f4 kvm_get_pfn
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x12d1b23b kvm_release_pfn_clean
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x1e4580bb kvm_release_pfn_dirty
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x1f4f7ff8 is_error_page
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x20de5193 kvm_disable_largepages
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x2322e039 kvm_set_pfn_accessed
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x254f7515 gfn_to_memslot_unaliased
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x27046576 kvm_exit
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x2d53fa6b kvm_vcpu_cache
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x414c6184 gfn_to_pfn
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x41e5d98d kvm_set_page_dirty
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x47f543ce kvm_release_page_dirty
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x4a7cbe69 is_error_pfn
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x4f54b45e kvm_init
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x5acfc1de kvm_vcpu_uninit
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x6a1edd01 kvm_vcpu_on_spin
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x70558d74 gfn_to_hva
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x73995498 __kvm_set_memory_region
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x75712bf2 gfn_to_page
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x76c9afe7 kvm_resched
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x870c2591 kvm_is_visible_gfn
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x876f3ef0 kvm_get_kvm
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x94573c3f kvm_clear_guest_page
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0x9fdda33b kvm_clear_guest
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xa361bc65 kvm_set_pfn_dirty
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xbd86163a kvm_handle_fault_on_reboot
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xc6340595 kvm_read_guest_page
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xcdd62571 kvm_put_kvm
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd01c85f3 kvm_vcpu_init
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd155b36a kvm_release_page_clean
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd296def9 kvm_is_error_hva
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd480d6fb kvm_write_guest_page
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xd87b84c5 kvm_read_guest
+EXPORT_SYMBOL_GPL arch/powerpc/kvm/kvm 0xdee7e624 kvm_set_memory_region
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0xce26973d crypto_aes_set_key
+EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x529f8795 async_memcpy
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xc15dab09 async_syndrome_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xdb45d840 async_gen_syndrome
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x7262eb9a async_raid6_2data_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xe66d944f async_raid6_datap_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x16ca998b async_tx_submit
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x48bc81e6 async_tx_quiesce
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe0c7d943 async_trigger_callback
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x0919d209 async_xor
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x45acf10f async_xor_val
+EXPORT_SYMBOL_GPL crypto/cryptd 0x5380a21d cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0x9b0e900a cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb4ca6e08 cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xbacb7f70 cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xd0997a50 cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xe051d394 cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xef7528e1 cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey
+EXPORT_SYMBOL_GPL crypto/twofish_common 0x298735bc twofish_setkey
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2568bd50 ahci_kick_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2e990822 ahci_reset_em
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x31e3aab7 ahci_print_info
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x47cd4556 ahci_stop_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4ab0a5c6 ahci_reset_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x848fe860 ahci_ops
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x91afa2b7 ahci_sht
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x930b5d7c ahci_set_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9acfe17a ahci_init_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa1a7f1c7 ahci_save_initial_config
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa4ca9515 ahci_do_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd1dc755e ahci_start_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe10255cb ahci_check_ready
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xc300d010 __pata_platform_probe
+EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xd1c7d80c __pata_platform_remove
+EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0x8552d6bf sis_info133_for_sata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x062012c1 btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x20ffbf67 btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x25f65564 btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x47dc4476 btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x51a37f53 btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xa6bc4fef btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb5beedbb btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xff129edc btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xb8d71399 agp_remove_bridge
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xf75de105 agp_add_bridge
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0b2364cc tpm_remove_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1a81e216 tpm_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2ac3dcfc tpm_gen_interrupt
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3b82639a tpm_open
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x417cfe9f tpm_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x466e09dd tpm_dev_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5735dcfc tpm_store_cancel
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x62b1f402 tpm_continue_selftest
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x76f17579 tpm_show_pubek
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x88d569d7 tpm_show_enabled
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8dac89be tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x927b436d tpm_show_caps_1_2
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb4e27acf tpm_show_pcrs
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xbf8835aa tpm_write
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcc621d97 tpm_show_owned
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xda615849 tpm_pm_suspend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe2089a24 tpm_get_timeouts
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe29ae3c0 tpm_show_active
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe3188333 tpm_dev_vendor_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xef71dd03 tpm_show_caps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf2c2b3d8 tpm_pm_resume
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xfe191472 tpm_register_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xfeab939d tpm_show_temp_deactivated
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xcf7a962e cn_add_callback
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0313751b edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x12e6916d edac_pci_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x14bae209 edac_pci_reset_delay_period
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2922c339 edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x338fd2e2 edac_mc_handle_ce_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x426a7915 edac_mc_del_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x447359ea edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x54b46c5f edac_mc_alloc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x58d70038 edac_device_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5bd00eb4 edac_mc_add_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x650af13f edac_device_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x700c1753 edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7bcd2ee2 edac_mc_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x82b7f0b1 edac_pci_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x83752966 edac_device_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x863979ce edac_mc_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x87f11470 edac_pci_handle_pe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x88f81bb5 edac_mc_handle_ue_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8c91ee8d edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9935cf74 edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9b4a7b2e edac_pci_handle_npe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc3ccd403 edac_mc_free
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xedf9503d edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfd04353d edac_device_del_device
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x0c6c374b __max730x_remove
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xcbcf453d __max730x_probe
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1a27b2f0 drm_class_device_unregister
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xc5d780f2 drm_class_device_register
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x121473f8 hid_destroy_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x13ef6456 __hid_register_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x1d781856 hidraw_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x24bdc0db hid_resolv_usage
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x2845260a hidraw_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x35332e84 hid_parse_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x3c204201 hid_input_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x4ff60b9b hid_debug_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x5f057124 hid_output_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x663d44d1 hid_dump_input
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x66d494d3 hidinput_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x74bc6a76 hid_register_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x78674a5d hid_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x7a989b2c hid_check_keys_pressed
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fee6293 hidraw_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x92656d37 hid_set_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x99e29024 hid_allocate_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x9bba7f5b hid_dump_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc45027ac hidinput_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xce8cb9ab hid_unregister_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xcf840c39 hid_add_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xd7ebd131 hid_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe8e0df2c hid_dump_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xebcf5bf6 hid_report_raw_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xf6e24af5 hidinput_find_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xfa733577 hidinput_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x984fba3b roccat_connect
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x04b8b631 hiddev_hid_event
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x6223b8b7 usbhid_set_leds
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xd1c80533 usbhid_wait_io
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xe367ad22 usbhid_submit_report
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x53d2a783 lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x63bdc94e lis3lv02d_init_device
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xa2c749ba lis3_dev
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xa6824ae0 lis3lv02d_poweron
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xf43e430a lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xaf5668af i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xb901fffc i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xc7f3d62b hpsb_config_rom_ip1394_remove
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xe0878fac hpsb_config_rom_ip1394_add
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm
+EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x99c64334 input_ff_create_memless
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x0b583f51 wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x266bd58e wm97xx_reg_read
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x35f0c293 wm97xx_config_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x4f6ec673 wm97xx_reg_write
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x633f12ca wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6dd72bc8 wm9712_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x70693692 wm9705_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x94cb409c wm97xx_get_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa17d2b56 wm9713_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa7bf399f wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xad91885c wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbaca4a08 wm97xx_set_gpio
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x1c795343 wf_unregister_control
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x2f816e86 wf_find_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x37d3ac27 wf_put_control
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x3cd6d3f4 wf_find_control
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x5a5cc0da wf_put_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xabae83a7 wf_unregister_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf15726f wf_unregister_client
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xc6539c50 wf_register_control
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xd4d4cd40 wf_register_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdb7e8499 wf_register_client
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xebcd9c97 wf_get_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xf7e8660d wf_get_control
+EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x0ab2569a dm_register_path_selector
+EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xdbde598d dm_unregister_path_selector
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x00b09789 dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x0bde7953 dm_rh_recovery_start
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2b9f380f dm_rh_flush
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x337d2e5e dm_region_hash_destroy
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x36b9c492 dm_rh_inc_pending
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x39db40cd dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x41a3037e dm_rh_start_recovery
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x45308d50 dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4a6f6da0 dm_region_hash_create
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4bad0eb8 dm_rh_get_region_key
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x6fcc42be dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7950520e dm_rh_update_states
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7bdca78c dm_rh_region_context
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7f0c8fce dm_rh_get_state
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x81ea5107 dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x9701dbdb dm_rh_dirty_log
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa748448b dm_rh_delay
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc5c9f8aa dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd4ace1dc dm_rh_recovery_end
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe3c8a0c8 dm_rh_get_region_size
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfbded0be dm_rh_dec
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0x05736b89 md_do_sync
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0xcc75ef4d sync_page_io
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0xdf5911eb md_allow_write
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0xf93e2768 md_new_event
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x63c7acf2 ir_input_init
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x8c96cdec ir_input_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xba536b97 ir_input_nokey
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x03bd7f09 ir_unregister_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x2a627f30 ir_raw_event_store
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x61a2dffd ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x897b3cfa ir_repeat
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x9e7e4cd4 ir_g_keycode_from_table
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xc163a203 __ir_input_register
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xd0bedc24 ir_raw_event_handle
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xde3fc8d9 get_rc_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xf190292d ir_register_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xf4e73831 ir_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xf9227ad5 ir_input_unregister
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2880efd6 saa7146_register_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x29b34553 saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x39dfdd55 saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x3bcec92e saa7146_pgtable_free
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x4ae93b33 saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6773050a saa7146_devices_lock
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x78d1d025 saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x8c1e6715 saa7146_setgpio
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc473347c saa7146_unregister_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xdacb98bd saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xf8d9260f saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x59dea2be saa7146_start_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x621c2b13 saa7146_stop_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x9f66de6d saa7146_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xcad09d5b saa7146_register_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xdd77e0ef saa7146_vv_release
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xe04fae9b saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xe09744e1 saa7146_vv_init
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x61eb4a1c microtune_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0xf15d5b10 mxl5007t_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0xf82f6b8b tda18271_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x5d9b76ec tda827x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x061d8c6d tda829x_probe
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x34dfb4d7 tda829x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x1fb984ff tda9887_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x220e4b70 tea5761_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x9d4168fb tea5761_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x7f52dab4 tea5767_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xc4c1b2f9 tea5767_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x3319ee26 simple_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2b78941d mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x33da544f mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5c3f27a9 mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5c7bdc4d mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x753c37a6 gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7a00cd81 mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x7a14ce64 mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x938133fd mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa4f9d1d6 mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb1332a3f mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb58cee69 mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xbfbc2079 mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc28fa639 mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc2cb5ddd mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc836c2f1 mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xca2a270b ir_mantis
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xde8032d3 mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe53c0dbc mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x02a09235 sms_board_led_feedback
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x39aaa4c0 sms_board_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3f9c98b0 smsclient_sendrequest
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5ef00e16 smscore_get_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6289513f smscore_get_device_mode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x67583bcb sms_board_setup
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x677c80c0 smscore_onresponse
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6b5e9d94 sms_board_event
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7cfcd952 smscore_register_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x890d26a5 smscore_set_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8c1aee62 smscore_unregister_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa8bb0e56 smscore_start_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xb6127484 sms_board_lna_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xbdaa7e0c smscore_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcb9faccc smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd17e8d41 smscore_register_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd80c46a1 smscore_getbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdf447d12 smscore_register_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf4ef9872 smscore_putbuffer
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x440199ab cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4836d199 cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x488c87f0 cx231xx_dev_init
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x4f58b90d cx231xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5c7c6d0c cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x5d292b39 cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6556c241 cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x6712aa6b cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x91ce8711 cx231xx_capture_start
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc140c856 cx231xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf1ce19bc cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0x7feaf43c cx88_setup_xc3028
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x055dbaba em28xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x45d00812 em28xx_isoc_dvb_max_packetsize
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x6dea86da em28xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x86470ec6 em28xx_audio_setup
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x866bcaab em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xa6dc77f6 em28xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x2c0b909f saa7134_queryctrl
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x5e065226 saa7134_s_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xc35108cd saa7134_s_std_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xe4ce4d94 saa7134_g_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xec6031df saa7134_ts_qops
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x132fc37e v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x2f8a8197 v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x43424965 v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xa3b6384e v4l2_i2c_new_subdev_cfg
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xb7a70b6d v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xd6a0c6e8 v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x038a5692 v4l2_int_ioctl_0
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x4e7468e8 v4l2_int_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x5cb1435c v4l2_int_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x7ce293fc v4l2_int_ioctl_1
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x0a6f7c1d v4l2_m2m_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3e4f5a05 v4l2_m2m_poll
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x472b1dff v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x592e95ae v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x64d068f1 v4l2_m2m_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x71619234 v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9aaf3932 v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xad2e8d8c v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xba51157c v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc1c0b9ed v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xcf9e2d04 v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd3982a05 v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xd4012df5 v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xddd338e8 v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x025053c2 videobuf_read_one
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x274efdea videobuf_cgmbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2a9eeb73 videobuf_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3c0abbf1 videobuf_poll_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x45f67934 videobuf_waiton
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4959e444 videobuf_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x56ed6b72 videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5c4f9624 videobuf_next_field
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x60a44325 videobuf_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x67a02e51 videobuf_mmap_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8ca55f40 videobuf_iolock
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8d4cb42a videobuf_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x97f748aa videobuf_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9cef32ea videobuf_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa530934f videobuf_queue_cancel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb538d5cd videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb5b1e889 __videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbd27e655 videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc99d858f videobuf_read_start
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xcd4f3d85 videobuf_read_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd58bff6c videobuf_queue_core_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xde792932 videobuf_read_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe9051288 videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf4c16004 videobuf_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfb9f5eda videobuf_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xbf282ba4 videobuf_to_dma_contig
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xd0a4e65a videobuf_queue_dma_contig_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xe2e2a119 videobuf_dma_contig_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x226288f0 videobuf_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x4bf3d172 videobuf_dma_init_overlay
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x4e03c31c videobuf_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5b9601df videobuf_sg_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x5c277b18 videobuf_dma_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x65ad1a20 videobuf_dma_init_user
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x6b662f85 videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8d73b466 videobuf_sg_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb323c90d videobuf_dma_init_kernel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe527285a videobuf_to_dma
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe8a24336 videobuf_vmalloc_to_sg
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xfbfaebbf videobuf_dma_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x4b538907 videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x58316e17 videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x77a69b9b videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0496c5ce v4l2_event_pending
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0cf084ba v4l2_fh_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x10a0aa96 v4l2_device_disconnect
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x27b71b64 v4l2_fh_add
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x37179a0b v4l2_event_queue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x40745195 v4l2_fh_exit
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x42e2fb1f v4l2_device_set_name
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x63a0bcd1 v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x75a69e43 v4l2_event_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x94361c6b v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xaae49b0b v4l2_fh_del
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb15f18ce v4l2_event_subscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb81f16b1 v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc6535f35 v4l2_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc815a30a v4l2_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe26fdbd9 v4l2_event_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xe8d7595f v4l2_event_dequeue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xea44b65d v4l2_event_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x523d305a i2o_sg_tablesize
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x52ea2be2 i2o_dma_map_single
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6a1c6ba9 i2o_dma_realloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8e8de8ce i2o_dma_map_sg
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x9f1c3865 i2o_dma_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xbecf96c0 i2o_pool_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xee5fb2a5 i2o_dma_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf0e36431 i2o_pool_free
+EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0xd8553fe5 mc13783_adc_do_conversion
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x160bd344 pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x597bd0b9 pcf50633_irq_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6533d718 pcf50633_reg_write
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x65f7926e pcf50633_write_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6a8daeaf pcf50633_read_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6e6e8ede pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9e2baefe pcf50633_register_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xbe09735b pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd5e8af17 pcf50633_free_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe420297d pcf50633_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe9d3905b pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x2b838c86 pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x41f2343b pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x044148a7 pcf50633_gpio_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x1f88db2b pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x217ebb02 pcf50633_gpio_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xbe053c1a pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xcf8c7585 pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x300b1192 sm501_unit_power
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x56ca4675 sm501_misc_control
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6df13538 sm501_find_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x95781971 sm501_set_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xd7238422 sm501_modify_reg
+EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xfd50bd8f ucb1400_adc_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x97ad0468 wm8400_block_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x9b20f40c wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xa04650b8 wm8400_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xb99f9f30 wm8400_set_bits
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x203ed7f5 cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x687bab3e cb710_set_irq_handler
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x72207491 cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x73d81c25 cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0665134f sdio_enable_func
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x08917670 sdio_memcpy_toio
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x096035ec sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0f37b230 sdio_unregister_driver
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1f2e7877 sdio_release_irq
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x20dacfa1 sdio_readl
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x29ab42ff sdio_writeb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x332d32c2 sdio_writeb_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x3d497e6d sdio_set_block_size
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x3f7f721b sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x4c1451f2 sdio_readsb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x572dc650 sdio_release_host
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x72c74308 sdio_readw
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x76a09806 sdio_register_driver
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7f324cd4 sdio_writew
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x83e87f69 sdio_align_size
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x94654b20 sdio_writel
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa114a95a sdio_f0_writeb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb5d91bb7 sdio_f0_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb74b61f6 sdio_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xbe40c517 sdio_writesb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd9e46bbb sdio_disable_func
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xdc302e48 sdio_claim_irq
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xea2b4779 sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xefa346b1 sdio_claim_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x00bc6c00 sdhci_add_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1673c3d9 sdhci_suspend_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x1d54f53c sdhci_resume_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x31c0e5a5 sdhci_free_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3c5009c5 sdhci_remove_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x72f1c482 sdhci_alloc_host
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x0a875f2e cfi_cmdset_0003
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x239da48d cfi_cmdset_0001
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x75edb7d8 cfi_cmdset_0200
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x5e8062f2 cfi_cmdset_0701
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xa1875699 cfi_cmdset_0006
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xf3b2a1df cfi_cmdset_0002
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x955eb2d5 cfi_cmdset_0020
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x20f0e751 cfi_qry_present
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x88c5acd0 cfi_qry_mode_off
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xeb011aa5 cfi_qry_mode_on
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xd0c9c59a DoC2k_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x79c6f964 DoCMil_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xbc586962 DoCMilPlus_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x057a11fc add_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x07b11ea1 get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x08a873eb __get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0aa848fd kill_mtd_super
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x20c9788e register_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x21766975 __put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4d1dcdd9 del_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x574c1a60 deregister_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5c3afc29 default_mtd_writev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x61bb24fc get_sb_mtd
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x63e2bca9 parse_mtd_partitions
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7e19d107 __mtd_next_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8d5db5d9 register_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x90ef9b9d unregister_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x995b38b2 mtd_table_mutex
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc4bc3af8 put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe6a93419 get_mtd_device_nm
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf9e7afc9 mtd_erase_callback
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x04ee463d deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x8151f1e2 register_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xbeab4c66 add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xed74084f del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x1d514d23 nand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x28412918 nand_wait_ready
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x3c2d9020 nand_lock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x614ad592 nand_release
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x70d3c21f nand_unlock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xa56d4770 nand_scan_tail
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xbc1e910b nand_scan_ident
+EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x53309bc4 sm_register_device
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x3c8f9e54 onenand_release
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x42870a6e onenand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x049677f5 ubi_leb_unmap
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x093c91b4 ubi_leb_write
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x162566ff ubi_open_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x39b7498c ubi_close_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x49f5ddea ubi_do_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x61530058 ubi_open_volume_nm
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7a33c71e ubi_get_volume_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8817403d ubi_open_volume_path
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa3f10abc ubi_leb_erase
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xafe77a3b ubi_is_mapped
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb8e688f5 ubi_leb_map
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe5c33345 ubi_leb_read
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf1e2122b ubi_leb_change
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x00244657 open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x01a9d005 can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x25069f9d can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x62112ede free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x68a27504 alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x697910b9 register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6e744720 alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x739ac850 can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x969e164f unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa7f22231 alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdd6b94d7 close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe6af3643 can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x2a7fe3c6 free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa0f47703 unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xa39e0f05 alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdaada64c register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x142ae254 macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x21b8e77d macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x2d34bbb8 macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xfdbf114a macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x026cab45 mlx4_qp_remove
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0abe2749 mlx4_cq_resize
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0ae9e137 mlx4_fmr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1b9435c1 mlx4_uar_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1c80aa6d mlx4_register_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1d703db5 mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1ddb3bdd mlx4_db_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x219a07e9 mlx4_multicast_detach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x222f9da3 mlx4_qp_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2404afb3 mlx4_qp_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2e861b5f mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x32592d8b mlx4_mtt_init
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x355b6828 mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x38d40904 mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3fcb4411 mlx4_pd_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x449a5dcf mlx4_fmr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x461deb7d mlx4_srq_arm
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4aec70ca mlx4_qp_release_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4c1d2ef1 __mlx4_cmd
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5a753a50 mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x62c1e6c2 mlx4_register_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x62eca224 mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x644638f7 mlx4_cq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6eba8b99 mlx4_qp_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6f52e4e0 mlx4_mr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x701ef629 mlx4_cq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x71c9924b mlx4_unregister_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x736a16c9 mlx4_pd_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7d978534 mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8983b027 mlx4_unregister_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8c47c2b7 mlx4_uar_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8e3573d8 mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x930640b2 mlx4_buf_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9a82df17 mlx4_mr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9b829a3f mlx4_srq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9b9fb920 mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa2436ed6 mlx4_buf_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa24fa999 mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa3edc28e mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa70785a6 mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb824ad74 mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbc2522cb mlx4_qp_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc4d38831 mlx4_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcba950c6 mlx4_mr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcbe5ea59 mlx4_srq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd3a4baa0 mlx4_mtt_addr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd86626b8 mlx4_srq_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe15853d0 mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe25cafb4 mlx4_cq_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe5400fc1 mlx4_db_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe61aa6b8 mlx4_register_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfc03cf9f mlx4_multicast_attach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfd29fcc7 mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x1bfa6e3d usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9b75ab51 usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x480999c8 rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x69749017 rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x69f1e7ec rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x6a5c8ff5 rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7349ed15 generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x7f726a5f rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0f351e74 usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2ccba3c3 usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x39137cad usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x393d1d85 usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3a124549 usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3b63d5b0 usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3f2c74d2 usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4fafa734 usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x63bed1f5 usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6a9dcc3e usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x77155f73 usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7947e88b usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8362bb69 usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x97f73491 usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xadc3fddb usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xae9a9cbd usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb15e2df7 usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb33f16d7 usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc8d00a07 usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd3a65c40 usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd795c260 usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe9995662 usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe9c1a10a usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xed0a2134 usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x04745b70 i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1473b2d8 i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x1d7cd397 i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2817ee95 i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2878f57a i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2bd99647 i2400m_cmd_get_state
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x36a56f52 i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3f6bc5bc i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x43c04c93 i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4b59248a i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x50c28431 i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x58858637 i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7808dc2b i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7db15600 i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7ef71a51 i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8578f3c6 i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9eb8d1b0 i2400m_set_init_config
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa78f88e7 i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x9394f2a5 libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xa5e75b19 iwl_alloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xe148ae35 iwl_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xf1766ecc iwl_dealloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2126f930 lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x43387656 lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x496fadda lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x56bebcc7 lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x62717b15 lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x81a3134a lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x88ac5fd1 lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa0e279a5 lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa58d2774 lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xabc66487 lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb02383c5 __lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdd1dd1a0 lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xde0eac2d lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf827e7ff lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x04729a8c __lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0e006d42 lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x11d0ec6b lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x41512948 lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x5f912ccd lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x64036553 lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xa8a05d88 lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd7b82d77 lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x56a2663f if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x97cb778a if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0a7f5cf6 p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x15c13660 p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x1dfc6f4a p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x306c5418 p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x33d86dc7 p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3b2ff47a p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4d00a4f0 p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7bab9b99 p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe9ec9b65 p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x026d5898 rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1404a043 rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x144d73f0 rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1589d550 rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x27df38b3 rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3f2a6239 rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x55b5c711 rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x59419c9a rt2800_init_registers
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x60c82ed6 rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6f62bf8f rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7b83025f rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x84b71954 rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x85bf7325 rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa5243385 rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xae70de0e rt2800_init_bbp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbb5926d7 rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbbe22164 rt2800_init_rfcsr
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbec39aff rt2800_mac80211_ops
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcc873a2b rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd039c58a rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd0842238 rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd8c96bed rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe51a9c08 rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf8f0816d rt2800_write_txwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x139f745c rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x201c5601 rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2a0c7fee rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2a743289 rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x38c71433 rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x418492d7 rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6d5ce453 rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6e5da076 rt2x00queue_get_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x725a3937 rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x94600d23 rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9dbd99da rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xab77678c rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xadb22d44 rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb9435055 rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb9cd457f rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbd5a6750 rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbfd677d1 rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd647ea64 rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdff30d33 rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe50ad5dd rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf4c41925 rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfa9b18a5 rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfdc3990a rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x477bac42 rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x68bb7050 rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xaa52e8c4 rt2x00pci_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc4856102 rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd02de77a rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xd6945c78 rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xdbe42049 rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xecdb72e6 rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xff4ba2ee rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x11728918 rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1c777d85 rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x34423f68 rt2x00usb_kick_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x466efbaa rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x487a7941 rt2x00usb_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6019d286 rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6561a247 rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6c910dad rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7ac59e10 rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7c4314e5 rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x839edfc0 rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbb7256d3 rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe94cdc7c rt2x00usb_vendor_request_large_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xedd36d01 rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf050d09f rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf62a78f1 rt2x00usb_kill_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x10348f8c wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x66061bb4 wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x97379884 wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x71880301 wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xb4deb452 wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xdddceff2 wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xe0bb2324 wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xfc153c50 wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x28b0b77e pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x7a1f6da1 pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x80ba9803 pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x40b992b8 wm8350_register_led
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x8e89e632 wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xb3b18230 wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xdd3adc07 wm8350_register_regulator
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xde2e57d7 wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xeff4cff1 wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xc7d3d186 wm8400_register_regulator
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x069ede99 scsi_dh_attach
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x5f8ac4e1 scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x90c43322 scsi_dh_activate
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xd9309290 scsi_dh_set_params
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xe4b40a52 scsi_register_device_handler
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xf0ba1c6c scsi_dh_detach
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5ea20dae fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x124b207f __iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x14b503fc iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x160fe465 iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1c7cbf67 iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1d0d8985 iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x203f7591 iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x26ca970b iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x27947692 iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2906bc3f iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2af31306 iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2e202459 __iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3e21600a iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x45bb04c8 iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x49f0a3f1 iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4ee5ad1c iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4f0d4843 iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x57396413 iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a38a31e iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6956aaa4 iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x71c15e85 iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x74b3bfec iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x77c2ef8a iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7818c31d iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7b15ef2b iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7e9f3022 iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8069fe1f iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8fb2cc4e iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x928afcb4 iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x973bd476 iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa3680e92 iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbd254ff5 iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc537d3e3 iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc7199665 iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd16d6e9b iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd5dff502 iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd77b8fa3 iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe20f6c82 iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe7d3b0ae iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeddc68bf iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xef0a3a55 iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf004ec6a iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfeedc26b iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0d642aca iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1524ae2f iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1b9d48e4 iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x488fffd3 iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x561837a0 iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6199bdc2 iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7d221801 iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8ceb3e71 iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9a936de7 iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9c06c861 iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9e76784b iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9f206f79 iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe15e5eed iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe855ebea iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe9db1091 iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf40ebf37 iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0b40dd1e sas_find_local_phy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2d292674 sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x36bfacfd sas_ioctl
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3d37c0f7 sas_request_addr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x45937fad sas_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x45d1d553 sas_domain_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x463b6d46 sas_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4e641b42 sas_slave_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x54a6b834 sas_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x58de63b0 sas_domain_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5e57bb95 sas_eh_bus_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6d31f983 __sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x749046da sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x75f96a43 sas_target_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x816a4a98 sas_slave_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x880b76f3 sas_unregister_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x99afab19 sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa7c265b1 sas_phy_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xacb97d51 sas_register_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbc621ed8 sas_phy_enable
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc85fc97a sas_bios_param
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd06b7ab2 sas_change_queue_type
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdec9a89d sas_ssp_task_response
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x0b3aa9c5 srp_transfer_data
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x44e99262 srp_iu_put
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x4e4fd4b7 srp_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x629fccaa srp_target_free
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x7fac9bd1 srp_cmd_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf33c56d1 srp_iu_get
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x22cc217c scsi_tgt_tsk_mgmt_request
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4cceb05b scsi_tgt_queue_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5d0c2443 scsi_tgt_it_nexus_create
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x88aed2c9 scsi_tgt_free_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb546f677 scsi_tgt_it_nexus_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xba56edd1 scsi_tgt_cmd_to_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc27baeb8 scsi_host_get_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc4ed8a4f scsi_host_put_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd4263fca scsi_tgt_alloc_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x01941f33 iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0ca827b0 iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x14e00c4c iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x20ec0ffd iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x283b764c iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2f267e9b iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36c37539 iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x37e343c7 iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4539859f iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x604a0a46 iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x73f6c35a iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x74c4d391 iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x76978113 iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x916fd5b9 iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9a7cfc27 iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa3d64c8c iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb8530d45 iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd4913df1 iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe052fb08 iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe3202c0d iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf4e5d60f iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfa65c374 iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x26cf55c7 sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x2d850916 sas_tlr_supported
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x31c9c93d sas_disable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x395006fc sas_enable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x009b2802 srp_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x43327dc2 srp_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x71cc5b2c srp_remove_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x76f86c16 srp_rport_del
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8e116cfa srp_rport_add
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x19ae582a pciserial_resume_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x2b29f2a1 pciserial_suspend_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x8d007973 pciserial_init_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xedba43f5 pciserial_remove_ports
+EXPORT_SYMBOL_GPL drivers/serial/serial_core 0x2efcd6f0 uart_console_write
+EXPORT_SYMBOL_GPL drivers/serial/serial_core 0x6e0b4ca0 uart_set_options
+EXPORT_SYMBOL_GPL drivers/serial/serial_core 0xf2fca922 uart_parse_options
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x3657c821 spi_bitbang_setup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x3d55f36d spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x3fd1d9d2 spi_bitbang_stop
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xc0241ce0 spi_bitbang_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xcd82aa41 spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xe0378a54 spi_bitbang_start
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x2d309342 st_register
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x6765b83e tm6000_set_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x74273068 tm6000_get_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0xcea74db6 tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x6212e50c __uio_register_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x62a704fa uio_unregister_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x6c186724 uio_event_notify
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x31ef9d0f usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x9051405a usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x08c55021 usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0e21421f usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0fc9d555 usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x122a87a8 usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7f91f695 usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x86170b63 usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x957591d5 ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf27f069b usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfa8a975a usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x07e0da06 usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x147e47c9 usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x18791771 usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x259ef7bb usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x31c1b343 usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x35000987 ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x444bdf73 usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4c87faad usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4e77598f usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x604a4abf usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6b51ef35 usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7833acaf usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa5411424 usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb05d6222 usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb2c81b28 usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbeada36a ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc21aadc4 usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd236f404 usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xde991853 usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x050c1736 usb_stor_CB_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0d51abb7 usb_stor_access_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x15e99988 usb_stor_post_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x20ffb10a usb_stor_clear_halt
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2e1cbd36 usb_stor_set_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x34dfae49 usb_stor_suspend
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3d9e97cc usb_usual_ignore_device
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5141e8a6 usb_stor_Bulk_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6aaf7b50 usb_stor_CB_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa33d50ea usb_stor_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa40ad43d usb_stor_control_msg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb211318e usb_stor_Bulk_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb56f1b70 usb_stor_reset_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb7ec75a7 usb_stor_transparent_scsi_command
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbba53b39 usb_stor_probe1
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc9b6ef65 usb_stor_probe2
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcf4607db usb_stor_bulk_transfer_sg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd1b67f67 usb_stor_bulk_srb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe09887b8 usb_stor_ctrl_transfer
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe180fc5e usb_stor_bulk_transfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe86dbb5a usb_stor_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf4610927 fill_inquiry_response
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfa91a832 usb_stor_pre_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0b4b185e wa_urb_enqueue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x6882b00c rpipe_ep_disable
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xa032d643 wa_urb_dequeue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xce03ff6b __wa_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xd4594aee wa_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x01dd71f8 wusbhc_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x12183c2f __wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2852b958 wusbhc_rh_suspend
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x38bc4460 wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4e05fa89 wusbhc_b_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x57003b23 wusbhc_rh_resume
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x709317ff wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7fc2b1f2 wusbhc_rh_control
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x81a45838 wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9c076370 wusbhc_b_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb7749275 wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb9a217db wusbhc_reset_all
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd38577da wusbhc_handle_dn
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd67018cd wusbhc_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe4cab772 wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe874e6b7 wusbhc_chid_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x368fbaf3 i1480_rceb_check
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xca9e6709 i1480_fw_upload
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xdef85c33 i1480_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x01aa41d1 uwb_phy_rate_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x070e041e uwb_rts_cts_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x329c78a3 uwb_ack_policy_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x3898490f uwb_ack_policy_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x88b3f687 uwb_pca_base_priority_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd06997e1 uwb_phy_rate_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe307e93f uwb_rts_cts_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe6b83119 uwb_pca_base_priority_show
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0f0c0f8d umc_device_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x1e7b7e05 umc_device_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x591f5a24 umc_match_pci_id
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x90dd5e69 umc_controller_reset
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x973891e6 umc_bus_type
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb66595e9 __umc_driver_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xdf75da6b umc_driver_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xeb103608 umc_device_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x02b774c1 uwb_pal_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x19a2cbf1 uwb_rc_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1a75f1f0 uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1aadd959 uwb_rc_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x21034790 uwb_rsv_accept
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x25641a1e uwb_rc_ie_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x332c39dd uwb_rsv_modify
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3902e240 uwb_est_find_size
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3969c668 uwb_dev_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3b5657a8 uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4441c2ec uwb_rc_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4798b2ba uwb_notifs_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x49b70853 uwb_rc_post_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d11065d uwb_dev_for_each
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4e5ac24b uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5300ee53 uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5f366897 uwb_rsv_terminate
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x60a179e8 uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6674581a uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6802a8e5 uwb_radio_stop
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7066557f uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8ead946d uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9815be6a uwb_radio_start
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9d74a1e6 uwb_rsv_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa3249281 __uwb_rc_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa89398c3 uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xaf8e8a15 uwb_rc_neh_error
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbcfa394e uwb_rc_alloc
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc839b592 uwb_rc_vcmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcd4e82c7 uwb_rsv_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd6bf8c51 uwb_rc_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd98820c0 uwb_pal_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdf359a4b uwb_pal_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe816a96d uwb_notifs_deregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe8d7ceca uwb_rc_put
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xee13d0b7 uwb_rc_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfcb33e32 uwb_rsv_establish
+EXPORT_SYMBOL_GPL drivers/uwb/whci 0x8e56ec0c whci_wait_for
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x052bbc80 wlp_dev_model_nr_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x10c2387c wlp_receive_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1a5144c6 wlp_uuid_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x360f5865 wlp_dev_manufacturer_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3d112664 wlp_eda_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3d5f208d wlp_dev_model_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4f51a9bc wlp_dev_prim_subcat_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5ea06020 wlp_dev_prim_OUI_sub_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x62d0a995 wlp_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x638e33d7 wlp_dev_prim_category_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x65ad961f wlp_dev_serial_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x69c96ffb wlp_dev_manufacturer_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x69dc0324 wlp_dev_prim_subcat_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6b3fe857 wlp_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6f62f320 wlp_wss_activate_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x72b303be wlp_dev_prim_OUI_sub_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x74259a87 wlp_dev_serial_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x93b1feaa wlp_dev_prim_OUI_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9636dbf9 wlp_dev_model_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9c1d2a3f wlp_dev_prim_OUI_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9e927487 wlp_dev_model_nr_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa7350774 wlp_prepare_tx_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xaeb12262 wlp_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb4906dcd wlp_dev_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcae48046 wlp_neighborhood_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcf001738 wlp_uuid_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd01f6582 wlp_wss_activate_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd59f8b64 wlp_dev_prim_category_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xdd5b8e43 wlp_dev_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf06c3248 wlp_wss_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf4fd00fe wlp_eda_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf75cfdfc wlp_wss_setup
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x0940e3ea ili9320_probe_spi
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x16b9e587 ili9320_shutdown
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x171655cd ili9320_resume
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x50872d4c ili9320_write_regs
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x805411ac ili9320_write
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd4fcea3a ili9320_remove
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xddfa2c0a ili9320_suspend
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x299729ae fb_sys_read
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x80d8d4ef fb_sys_write
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x5b5b0fee sis_malloc_new
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x78f68b45 sis_free_new
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x557efa1c viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xa7fd0c5b viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x06be38d2 virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x2625665c unregister_virtio_driver
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x581aaea6 unregister_virtio_device
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x676b8fd5 register_virtio_driver
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xf3d9faba register_virtio_device
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0bf47a78 virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x38abb5d4 vring_del_virtqueue
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x38fa6a90 vring_transport_features
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x7b1f7afc virtqueue_enable_cb
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x84fba86d virtqueue_get_buf
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x9b5f50da virtqueue_add_buf_gfp
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xaee3640c virtqueue_kick
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xcaafbb2f virtqueue_disable_cb
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xd0935b66 vring_new_virtqueue
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x1ac5a2b5 w1_reset_bus
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x3f54f551 w1_read_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x4ce720a6 w1_read_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x5e35daba w1_write_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x9f487f96 w1_next_pullup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xba171ac4 w1_touch_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xc42c149d w1_write_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xd32b65b3 w1_reset_select_slave
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x5d17fe72 dlm_posix_get
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x8e70d0db dlm_posix_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdfe2f022 dlm_posix_unlock
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x210f3578 exportfs_decode_fh
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x83751287 exportfs_encode_fh
+EXPORT_SYMBOL_GPL fs/fat/fat 0x04ce0540 fat_alloc_new_dir
+EXPORT_SYMBOL_GPL fs/fat/fat 0x0ea03bfb fat_getattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x29324758 fat_dir_empty
+EXPORT_SYMBOL_GPL fs/fat/fat 0x2f55f59c fat_add_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3193da72 fat_flush_inodes
+EXPORT_SYMBOL_GPL fs/fat/fat 0x37a86f0f fat_free_clusters
+EXPORT_SYMBOL_GPL fs/fat/fat 0x5d1dca2e fat_sync_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0x7f57bb5b fat_search_long
+EXPORT_SYMBOL_GPL fs/fat/fat 0x92f1331f fat_attach
+EXPORT_SYMBOL_GPL fs/fat/fat 0xb36b9c5a __fat_fs_error
+EXPORT_SYMBOL_GPL fs/fat/fat 0xb64f2469 fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL fs/fat/fat 0xbaed8fcb fat_setattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0xc2c07ef9 fat_remove_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0xd1bc3a55 fat_detach
+EXPORT_SYMBOL_GPL fs/fat/fat 0xe5f4d3a5 fat_time_unix2fat
+EXPORT_SYMBOL_GPL fs/fat/fat 0xe860caa7 fat_build_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xf4a0ba66 fat_scan
+EXPORT_SYMBOL_GPL fs/fat/fat 0xf5fe7b94 fat_fill_super
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1ffe1875 nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x5010cb23 nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x544beeff nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xaef8f54f nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xbb5d7971 nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xb6200fd0 nfsacl_encode
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xd440d1b0 nfsacl_decode
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x12f8496e o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x47ed29d3 o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x519b4e79 o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x971d34b1 o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9ad255eb o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x9df0eb26 o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa3462fee o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x59180421 dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x5ff7112b dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x79853d7b dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8cdbaf83 dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd04843b8 dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xf20fd199 dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x313e2cee ocfs2_plock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x82155da5 ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x86fb790b ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs
+EXPORT_SYMBOL_GPL net/802/garp 0x04b2f04b garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0x3a1d7545 garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x5b4534cd garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0x5b4e4789 garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x667e13b0 garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0xa538a014 garp_request_join
+EXPORT_SYMBOL_GPL net/802/stp 0x44311504 stp_proto_unregister
+EXPORT_SYMBOL_GPL net/802/stp 0xb68dc2df stp_proto_register
+EXPORT_SYMBOL_GPL net/ax25/ax25 0x161654ec ax25_register_pid
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x3da35dcd bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x006aa11b dccp_insert_option_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x17f53d27 dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d5bcb85 dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x364f75b1 dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x36eabdc9 dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x39e9e98f dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4 dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4edfc5f8 dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x504f9e45 dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x50c0c7bd dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x605a4514 inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x643631c9 dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x649b0bf4 dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x652afc78 dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7ec25c04 dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7ec44a23 dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x812efae9 dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x82a64adc dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8d525918 dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x91928fc3 dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9394deff dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x97b076d0 dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9a7eee8b dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa104c72c dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa7c07741 dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb849323e dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb977b699 dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbda266d9 dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc82c1966 dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd113800b dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd42f6b06 dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd56320b4 dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xdf1f9bf4 dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xec229ced dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x539e0fd4 dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7edaaabb dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7f1cc2b7 dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x87c04269 dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x94896cc5 dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xd7968416 dccp_v4_connect
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xa655ccf7 arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xc699667f ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0xd87944d7 nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x0b9e1820 nf_nat_proto_put
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x600664b7 nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x7517f5b5 nf_nat_proto_find_get
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xc4f4e2db nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xdef0f859 nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfa9a87b1 nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfab1a762 nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfb887882 nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x12c6dd4d tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x30bbbb13 tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x4539893c tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x82c4e708 tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf33a35c9 tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x017543f0 net_ipv6_ctl_path
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0982b0c8 inet6_csk_search_req
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x1753333d ip6_dst_blackhole
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x360609c4 ipv6_opt_accepted
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x61ed4d2d inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x819eb6d6 ip6_sk_dst_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x85478a0b inet6_hash_frag
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x944a2afe fl6_sock_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x94984224 ipv6_dup_options
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa3f7a3da ip6_local_out
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xbc9f7f92 ipv6_find_tlv
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xbca59c6d inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xbdf49735 inet6_destroy_sock
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc1b1a9b2 inet6_csk_xmit
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc23a14e4 inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe1223c47 inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xf232181e ip6_dst_lookup
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x334a9702 ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x12043781 l2tp_tunnel_closeall
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x33291362 l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x41d5c60c l2tp_udp_recv_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x42aa50b9 l2tp_xmit_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x565c75f7 l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x69bedcac l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x710fdf1e l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xadae5fcc l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb2efcf9e l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbe5875b8 l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc1dc7283 l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc3c756b5 l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc4f59970 l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc5e61c29 l2tp_tunnel_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xec06298b l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf10aae9e l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf9670c5a l2tp_session_free
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x56e61a17 ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xce4b6adf ieee80211_find_sta_by_hw
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd4f0122b ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x031ce424 nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15a9b565 nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x16b261d8 nf_conntrack_untracked
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x17dcf5a2 nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x187027f8 nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1a4f56bf nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1aa50770 nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2166649d nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25ea9720 nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2837eefc __nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2b7df799 nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2bfd8b9b nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3af7522e nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3b9c1487 __nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45eecebd nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45f2615d nf_conntrack_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x46618445 __nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x48e0caf7 nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63070598 nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6f8c7c15 nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fbcf5fc nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x70dc9b3f nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x71390a29 nf_ct_unlink_expect
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x732ce213 nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75011595 nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77eee8cb nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7aa54dc3 nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7efc18fc nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x813971c2 __nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x856b09b6 nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x88c42401 nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89c27a92 nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c8077eb nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x91cf82a0 nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9485d033 nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x96e808d5 nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9896d636 __nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a524b07 nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9f35961b nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa9b5e9cc nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad6de2de nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae37ab88 nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaf185d3a nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb20786f7 __nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb27d75d9 nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb57d3a5e print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb5cc26e7 nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb75d6b34 nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb8f67a83 nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb9ebc0cf nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xba9f2a8a nf_expect_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbd518a21 nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc66e7dba __nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8e3588e seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd2886f2a nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd51b5cb3 nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6498392 nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe23b941f __nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4bc5c2b nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec573bb1 nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf4b6125e nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa66f22e nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x85f27e0f nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x1fadd65f nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x149e7142 set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1e6361f8 set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1f2954e0 nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x229afee3 get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x54cb7da9 nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8a911b04 nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa82a184c set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbc24dffa nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe557e838 set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe6949bdc nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x3977f10c nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x3793246e nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x5cd211a0 nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x7681f251 nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb34de993 nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x1569219b nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xc6781ed9 nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0595dba6 nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x27ec5827 ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x29ae445b nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x335ca458 ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x55cbf59e nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6d11dc2a nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7c49a192 ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x83c6f717 ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x91fdce5f nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9ed69b8e ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbe0f997b ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf16121af nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf8a67000 nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x1bb38fcb nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x90f8136f nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xaa0429b5 nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0b44d385 nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0f5348e1 nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x18796c8f nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x522b44ed nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd7b64b07 nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf65b38b1 nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x93306cf6 nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b634f9e xt_info_locks
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x2127097f xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5a957192 xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5b4998e9 xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6192070f xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63e91e9c xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6905cb70 xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8c852fca xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x999f81d4 xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9d7ff3da xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaca83453 xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcd67d0df xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd690ff1e xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf973da5b xt_proto_init
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x27a8a721 rxrpc_register_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x54c9f1b0 rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x09db35cc gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x0b337208 svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x22589e29 gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2453d6a5 gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8f3c61ce gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x96fb5611 gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x9c1afe5c gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xadc9fdfe gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xcdac0bb6 gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd9545ff4 gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xfdc49db8 svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00267091 xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x012506ec rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04bc9289 rpc_exit_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x059089bd rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x079beb0d svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a6943bc sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a8be6a0 svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b11cb76 svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d9f7e04 svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f4b0823 xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0fb0c2f8 auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ff29f9e rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11ac49f1 xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14f756f8 rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x154d559c rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16aab079 xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1717eb45 rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17816117 svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17e8abde xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18a367ee svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1e097171 rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fb7cb57 svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1fc7debd rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2130b2c0 xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24bdfe79 svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x255472bb rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26ce401e rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27b4890d svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27be6bc6 xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28a8c2df svc_sock_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28b62d9e svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d933e46 rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e059ec2 xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e99bff3 rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2fa3880e put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31d92f84 rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32037993 xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32df3038 rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x34887763 svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35448c65 rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3586d625 auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3644c21d svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36cb4483 xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38053f2c cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c4a9ae3 svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cd60f75 rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ce3ab19 cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e6dd7d1 sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42de235f xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x453b596f svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4637fd84 rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49185d7d svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c338be8 svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4c9c5302 rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d29a551 rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4daf3da0 xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e64e668 write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ec9aef7 auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f143ea9 xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50d61d02 xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53e8c341 xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56492f77 rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56e56e31 rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x58bab7b4 rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5aefeb20 rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b378f93 svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d7a2fce xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5de7a275 svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x605019f8 rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60c291b2 svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61ea4177 rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6217fb6c xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63516cd2 rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63602ea3 svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x646b4d4d svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a528e76 rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c9a2a2b svc_sock_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f3f76bb rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70922ee1 svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70ae0b53 cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70bed9fc rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72470fb3 rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76f67397 read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7703bd84 rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7889c700 svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79139453 rpc_queue_empty
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b924f05 rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d28450c xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ec191a8 xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7faf6a4c svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x800e06e6 xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84ae5e1c sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84ee85cc svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85142488 svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x867ee1d1 svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8835024d xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e52b861 svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x942c151b xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94e3a080 xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9bbaeace unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4c40492 cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa858e740 rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa883dea3 auth_unix_forget_old
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9da5194 rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae217959 rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb02dfa12 xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1fd84fb xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb2377874 rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbba24770 sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe0626b4 rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf356f59 xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfa034dc __rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfbfb76e svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc10bb00a svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1abe49b xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3bd0b66 rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5d813b5 svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc78ed511 rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8c6cb5b xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc81e79b xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccb73663 rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf4a0635 rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd235c16e rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd40b966a csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd45a39b0 rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd520629d xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd8f00603 xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9000d4d xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb94e673 rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc7a40da rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xddde84c7 rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe301dc1a xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe387237e xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe430d3b9 auth_unix_add_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe70bd37f auth_unix_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedf1ed69 svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef402486 xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf259221f svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf99d867d xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9f1063a sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc98a039 rpc_print_iostats
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x02e7cee7 wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x066469e1 wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x26b29f43 wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x3021ec57 wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x3ac24762 wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x4282b643 wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x49a45b84 wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x4c60d7a9 wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x6a802098 wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x6f58d963 wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x8cb2bbb1 wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xa1740447 wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xeea3b83c wimax_msg_data
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x00b380b9 cfg80211_wext_siwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x021bb69b cfg80211_wext_giwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0d7bad69 cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x10df55a6 cfg80211_wireless_stats
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2bfa6aee cfg80211_wext_siwencodeext
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2de4b494 cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x33ff37a7 cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4aaf97ed cfg80211_wext_giwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x55e4419d cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5cc6a355 cfg80211_wext_siwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5d24b5db cfg80211_wext_siwgenie
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x65744046 cfg80211_wext_giwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x66db4167 cfg80211_wext_giwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x731d74fe cfg80211_wext_siwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7443402e cfg80211_wext_giwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7778b103 cfg80211_wext_siwmlme
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x87ac33af cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9128bc2a cfg80211_wext_siwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9e5a560a cfg80211_wext_giwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa0404174 cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb34b6778 cfg80211_wext_siwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb422c4ae cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc50d0803 cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc51391cd cfg80211_wext_siwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc5629131 cfg80211_wext_siwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdc94f494 cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdeaab2ea cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdf74d3b5 cfg80211_wext_giwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe25cb25a cfg80211_wext_siwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe4b4907e cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe6daa606 cfg80211_wext_giwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfcbfeb10 cfg80211_wext_siwretry
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x064a6914 ipcomp_input
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x162724f7 ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x2d769126 ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc4102a4d ipcomp_destroy
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x396a0708 aoa_snd_ctl_add
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x46b523d9 ftr_gpio_methods
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x4eb4da95 aoa_codec_unregister
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x93fd1b4e aoa_snd_device_new
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x96e76479 aoa_codec_register
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xa115b3f2 aoa_get_card
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xa2ae19d9 aoa_fabric_unlink_codec
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xb9be0d8f aoa_fabric_register
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xd69d2be8 aoa_fabric_unregister
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xd6e03893 pmf_gpio_methods
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x22645272 soundbus_dev_get
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x6f6659fa soundbus_register_driver
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x84bb744e soundbus_unregister_driver
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xcadd3015 soundbus_add_one
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xe0d2c4dc soundbus_remove_one
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xe73b2542 soundbus_dev_put
+EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x25801fb3 snd_ak4113_create
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x63344ea8 snd_ak4113_build
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x804a99e3 snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa3c1880b snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc06d2637 snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xdd53d33d snd_ak4113_reinit
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x02c04752 snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0471043e snd_hdmi_get_eld_size
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05c662de snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x094fde8a snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ee50423 snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1195431b snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1798bb4f snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x185979c5 snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1be34574 snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ed9c82d snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1fd93848 snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x224dace6 snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x23a6c70f snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27e26626 snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28c7687a snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x30b55460 snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x342fa8c9 snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x346fb37f snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a0ac6d3 query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a485b72 snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x419c010d snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x43d81f85 snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x447d3c6b snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c044711 snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dc79b7a snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x534f5edd snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x573aa016 snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x577523e1 snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5cff244c snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x606b73d3 snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61abbc69 snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61c27498 snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x697a9c33 snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x719b7881 snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7224586b snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72a8ec0b snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7506687f snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7578957c snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75bb0305 snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79e62238 snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fe07962 snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x81609f47 snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x849e7030 snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x872082f5 snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c710afa snd_hdmi_get_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8cc9727a snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d180949 snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8dcf71fc snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x92991332 snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x93230ade snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x96862180 snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a77b328 snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9da20e82 snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9eaf7e0c snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4ff6bf9 snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5721d4b snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa669923f snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa7c2517c snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0ffcf6e snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1637344 snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1820eb5 snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb79605ea snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb7edb5e0 snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8bd8319 snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbeb95772 snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbf138e8f snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2c7fa71 snd_hdmi_show_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7a27560 snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7abd725 snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc8a92ec0 snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca2bc8fa snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcdf6f9d2 snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd59d5f38 snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd734e4cd snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdab03210 snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdbd52b91 snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd026f75 snd_hda_eld_proc_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd184ab9 snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfd2b55b snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2e5d718 snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeaa2b337 snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeec58996 snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf69b23a9 snd_hda_eld_proc_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfa175940 snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb481c55 snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc23db6e snd_hda_parse_pin_def_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfed2d4dc snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xffb8eead snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0xdcc4f18d ad1836_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0xf5aeb21e soc_codec_dev_ad1836
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xb5db0625 ad193x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xf4a78e76 soc_codec_dev_ad193x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xcc2c9646 ad73311_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xe489bb0d soc_codec_dev_ad73311
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x7c2970f9 ads117x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x85bfe062 soc_codec_dev_ads117x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0x788e912b soc_codec_device_ak4104
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xc2103d23 soc_codec_dev_ak4535
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xea2e141a ak4535_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x9aab128f soc_codec_dev_ak4642
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xbc031dcf ak4642_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x0b7f75fc ak4671_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xb3c0ff15 soc_codec_dev_ak4671
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x287cd07e cs4270_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x7e5dcac5 soc_codec_device_cs4270
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x78419dd7 da7210_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x953753a0 soc_codec_dev_da7210
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xf22c4a99 max9877_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xd36b6948 pcm3008_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xfe9fe137 soc_codec_dev_pcm3008
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x21d34462 dit_stub_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xa1a76f9b ssm2602_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xf1268dd0 soc_codec_dev_ssm2602
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xe177dee2 tlv320aic23_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xfcf07a56 soc_codec_dev_tlv320aic23
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x003f668d aic26_soc_codec_dev
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x7d7d3472 aic26_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x5cb44901 aic3x_button_pressed
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9e6f9e56 soc_codec_dev_aic3x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb6d9efd5 aic3x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd3c2bdeb aic3x_set_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd8a88f20 aic3x_headset_detected
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xda427554 aic3x_set_headset_detection
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xf72281d4 aic3x_get_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x8eb77c26 dac33_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x9d8fca13 soc_codec_dev_tlv320dac33
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x8fb5aec7 tpa6130a2_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x5eab05d8 soc_codec_dev_twl4030
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x931cc250 twl4030_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x2124403d soc_codec_dev_twl6040
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xa820433b twl6040_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x9b1f0af1 soc_codec_dev_uda134x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x215cb787 uda1380_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xaea95fb4 soc_codec_dev_uda1380
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x45bd53b8 wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5cccbd92 wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xfef8f730 wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xc4a1493f wm2000_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x111b4582 wm8350_hp_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x38f856b2 wm8350_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x4d272f5a soc_codec_dev_wm8350
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xf80b2d4f wm8350_mic_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x6005700c wm8400_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xd63bd508 soc_codec_dev_wm8400
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x8015195b wm8510_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xab44bae0 soc_codec_dev_wm8510
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x37697168 wm8523_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x822f577a soc_codec_dev_wm8523
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x9fc55963 wm8580_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xa495816f soc_codec_dev_wm8580
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x096ccd83 wm8711_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x1856432a soc_codec_dev_wm8711
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x7e3aa829 wm8727_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x9b056373 soc_codec_dev_wm8727
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x1f8b86d6 wm8728_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xcbd2463a soc_codec_dev_wm8728
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x1bd29744 soc_codec_dev_wm8731
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x9ef3dcaa wm8731_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x0644dab7 soc_codec_dev_wm8750
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x367f3a35 wm8750_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x2d698974 soc_codec_dev_wm8753
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x9b5ccea9 wm8753_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x539aa95f soc_codec_dev_wm8776
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xed18437d wm8776_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x71cd07a0 wm8900_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0xe0506f6f soc_codec_dev_wm8900
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x6dcaaca2 wm8903_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xcb7d3cac soc_codec_dev_wm8903
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xf759750e wm8903_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x843caa6b soc_codec_dev_wm8904
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xea5c45b6 wm8904_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x858223b3 wm8940_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xe759c7b3 soc_codec_dev_wm8940
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x7338b9b4 wm8955_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x9bec59c1 soc_codec_dev_wm8955
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x121d329a wm8960_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0xe4dd13dd soc_codec_dev_wm8960
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xd941e13f wm8961_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xfdc6229c soc_codec_dev_wm8961
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x7f36ea8b wm8971_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0xfc0448ab soc_codec_dev_wm8971
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x2ffb7b38 wm8974_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x8173bcee soc_codec_dev_wm8974
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x2dc6f3e2 soc_codec_dev_wm8978
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x5839bb43 wm8978_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x269ab4df soc_codec_dev_wm8988
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0xae71cbaa wm8988_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xe4554273 wm8990_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xef8154e0 soc_codec_dev_wm8990
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x62c130dd wm8993_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xc4ac0723 soc_codec_dev_wm8993
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x52aa6b58 wm8994_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x8bed91e4 soc_codec_dev_wm8994
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xc448ecea wm8994_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x814a950a wm9081_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xb73069ac soc_codec_dev_wm9081
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0xafe932da soc_codec_dev_wm9090
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0688c964 snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a6cd7ca snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0eff5d2e snd_soc_new_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f2a2dec snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ae74c74 snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1e1c6086 snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21737c53 snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x227e05c1 snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x30481ce2 snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x314b66b1 snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31c60476 snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3518adce snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x36e7b8aa snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3f14cf7d snd_soc_get_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3fb955e2 snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4760f985 snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4a92567c snd_soc_dapm_stream_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4ba67a53 snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e769661 snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4ffb03a9 snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5551d88e snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x570c159b snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x57a3921e snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5968f8f3 snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x59c0f360 snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5cd41da7 snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5cdce75f snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6312f0b1 snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x66ee677d snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6cef5e0c snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6d0efb7d snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6e96d377 snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6edd6d53 snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7110e314 snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73526c78 snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74e3c458 snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7911adfa snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x793bb033 snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x82e53a37 snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x83f852e8 snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8462fca6 dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89666f4f snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8ce3514d snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x949fc59b snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96e29da4 snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x990d43b6 snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9a5744bb snd_soc_jack_new
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa222dce2 snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa9fcc951 snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa9667f5 snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaa9b6aea snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac18a815 snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xadffc6f2 snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae3db8aa snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb013ccc8 snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb42f864c snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb53bcb31 snd_soc_put_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb8b8c3e7 snd_soc_free_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xba42db26 snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbba54b95 snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc515bb9 snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc5d407e5 snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcca1170f snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd3f88aaa snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xda714491 snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdcca30e2 snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdfbc5a33 snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe19e1e6d snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe54141d0 snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6e49912 snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb350ea3 snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xef8ec873 snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf331f952 snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf43d8b04 snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5d3cddc snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf88611f3 snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfc29f6ff snd_soc_info_volsw_2r
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x30bed6f2 xv_create_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x60443f07 xv_get_total_size_bytes
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x90e0e9c6 xv_malloc
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x95609052 xv_destroy_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xd148ead8 xv_free
+EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis
+EXPORT_SYMBOL_GPL vmlinux 0x006e294f tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0x00a93051 dev_attr_sw_activity
+EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init
+EXPORT_SYMBOL_GPL vmlinux 0x00e32318 shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x01187a64 regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x01adfec5 bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0x01c617d9 hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0x01d6809b usb_poison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x024d2f07 macvlan_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x029532ed ide_setting_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x02b0c164 platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x02c7ce54 crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x02d74146 led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread
+EXPORT_SYMBOL_GPL vmlinux 0x040bf83a sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0x0443c92d pmac_low_i2c_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x04a222f2 sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0x04ecb9c8 cvt_fd
+EXPORT_SYMBOL_GPL vmlinux 0x05149420 usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x055d688d platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x059026c4 ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL vmlinux 0x05a211e3 kvmppc_rmcall
+EXPORT_SYMBOL_GPL vmlinux 0x05d6fd5d sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x061fe0d3 device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x0624083e pci_find_ext_capability
+EXPORT_SYMBOL_GPL vmlinux 0x063648d5 simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x066e4834 pmac_i2c_setmode
+EXPORT_SYMBOL_GPL vmlinux 0x0716930c ata_host_init
+EXPORT_SYMBOL_GPL vmlinux 0x079a21f1 ata_sff_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char
+EXPORT_SYMBOL_GPL vmlinux 0x07b24e92 mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x07f866ef zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0x0810dca4 pmac_backlight_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x08169ead d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x0862ddc6 blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x0877b627 tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0x088d81ca hwmon_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0894b744 debugfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off
+EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0x098f348c crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x09e1b4c8 perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0x09e6882d user_match
+EXPORT_SYMBOL_GPL vmlinux 0x0a05f274 ring_buffer_overruns
+EXPORT_SYMBOL_GPL vmlinux 0x0a2cd249 platform_get_resource_byname
+EXPORT_SYMBOL_GPL vmlinux 0x0a3d966e sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x0a48f7a3 rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw
+EXPORT_SYMBOL_GPL vmlinux 0x0a8ee604 mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0x0ac44f57 ata_sff_dma_pause
+EXPORT_SYMBOL_GPL vmlinux 0x0af7be70 rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b08623e ata_host_register
+EXPORT_SYMBOL_GPL vmlinux 0x0b26112e usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x0b4f2a1d rt_mutex_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x0b6ecdab scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0x0b75e8e4 ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0x0bd08d07 ata_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c53e8a3 led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL vmlinux 0x0cd62f95 regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x0cdfa805 pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0x0d0d0eed pmac_i2c_get_controller
+EXPORT_SYMBOL_GPL vmlinux 0x0d1399cc scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x0d632235 skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x0db41e25 fuse_direct_io
+EXPORT_SYMBOL_GPL vmlinux 0x0dbcd026 preempt_notifier_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0e0bc25a inotify_inode_is_dead
+EXPORT_SYMBOL_GPL vmlinux 0x0e1b5eae pm_generic_restore
+EXPORT_SYMBOL_GPL vmlinux 0x0e771901 of_address_to_resource
+EXPORT_SYMBOL_GPL vmlinux 0x0e7a9293 crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0x0e81ac00 spi_register_master
+EXPORT_SYMBOL_GPL vmlinux 0x0ed946cf ata_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x0edbd7dc ide_host_free
+EXPORT_SYMBOL_GPL vmlinux 0x0f0c500f da903x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0x0f124add ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL vmlinux 0x0f34de0c __sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0x0f47f05f scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x0f5c1e4a __put_net
+EXPORT_SYMBOL_GPL vmlinux 0x0f7fde44 ide_dma_sff_timer_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x1014c22a ata_dev_disable
+EXPORT_SYMBOL_GPL vmlinux 0x1089fbb0 tc35892_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x10bf7e75 br_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x10c85b84 crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x110a093c klist_init
+EXPORT_SYMBOL_GPL vmlinux 0x1130addb register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x11b94929 ide_write_devctl
+EXPORT_SYMBOL_GPL vmlinux 0x11da92ba ata_dummy_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x11dd5845 crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x12031ce3 securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x124bb732 ata_sff_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0x12834ea2 single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x12be30f6 ata_link_online
+EXPORT_SYMBOL_GPL vmlinux 0x12eadf27 rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0x12fc3680 inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x1325aceb pmac_i2c_get_type
+EXPORT_SYMBOL_GPL vmlinux 0x132bc2db crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0x132ee7e9 bus_register
+EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0x133a5d68 ata_sas_slave_configure
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x139994ae cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13e6401d platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x142d5038 __inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x14485402 power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x1450eed0 gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x148c9e1f fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid
+EXPORT_SYMBOL_GPL vmlinux 0x14bae655 tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x14bd26b2 irq_create_mapping
+EXPORT_SYMBOL_GPL vmlinux 0x14cf4ee7 proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x15235082 pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0x152cb3ac fuse_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0x1541c287 sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x15661f52 wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x1581b840 ide_pci_check_simplex
+EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x159891d5 rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x1638708a wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x163ab2ab input_ff_upload
+EXPORT_SYMBOL_GPL vmlinux 0x16651298 debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0x16bb7ebf perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0x16cb514f skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x17142764 ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x179366a1 page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x17947b3c devres_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x17f798c9 blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x18427d4b inotify_find_watch
+EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert
+EXPORT_SYMBOL_GPL vmlinux 0x18a2bb17 regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x18ab96ff crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x18fea67a inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0x1903c5df usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0x190ade8d usb_hc_died
+EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x197a2b5f attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0x199232b0 module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19ae1d48 pci_bus_resource_n
+EXPORT_SYMBOL_GPL vmlinux 0x19d328d5 class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x1a0f60de usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x1a5b2951 power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0x1a899315 preempt_notifier_register
+EXPORT_SYMBOL_GPL vmlinux 0x1a9965aa ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x1b0cdd4a kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1ba7ba8a power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL vmlinux 0x1c27aa44 cpufreq_frequency_table_target
+EXPORT_SYMBOL_GPL vmlinux 0x1c32788b get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1ccab7ae ide_dma_lost_irq
+EXPORT_SYMBOL_GPL vmlinux 0x1ce34641 usb_match_id
+EXPORT_SYMBOL_GPL vmlinux 0x1d0a4f52 shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x1d0dae28 get_driver
+EXPORT_SYMBOL_GPL vmlinux 0x1d59a217 kvmppc_trampoline_enter
+EXPORT_SYMBOL_GPL vmlinux 0x1d9cc105 platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0x1ded174d ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bd46a crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x1eb6b99a da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names
+EXPORT_SYMBOL_GPL vmlinux 0x1ee55eb0 hvc_remove
+EXPORT_SYMBOL_GPL vmlinux 0x1eed5888 blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1fc28e37 __mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick
+EXPORT_SYMBOL_GPL vmlinux 0x1ffe448f crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0x2001d0e0 scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x200f5b9c led_classdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x2036a324 ata_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x20450f2d ata_sas_port_init
+EXPORT_SYMBOL_GPL vmlinux 0x2049bab8 __destroy_context
+EXPORT_SYMBOL_GPL vmlinux 0x2066f29d setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20cb3689 eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0x20e991e1 ide_init_sg_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x20f4f33a unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x20fe20c2 ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x2127c58d usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x21408125 da903x_write
+EXPORT_SYMBOL_GPL vmlinux 0x2168e606 of_pci_address_to_resource
+EXPORT_SYMBOL_GPL vmlinux 0x2187df59 sata_scr_write_flush
+EXPORT_SYMBOL_GPL vmlinux 0x21a754e0 cvt_df
+EXPORT_SYMBOL_GPL vmlinux 0x21f44adf usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0x2202e3e7 usb_store_new_id
+EXPORT_SYMBOL_GPL vmlinux 0x2259010c device_attach
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x22a149c7 crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0x22db7f23 ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x2329999b usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x23878669 ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x23a9d937 regulator_put
+EXPORT_SYMBOL_GPL vmlinux 0x23c76d0e rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x23eec228 ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0x23fc87d0 ide_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x2406dae3 pci_address_to_pio
+EXPORT_SYMBOL_GPL vmlinux 0x2410f8ba ata_pci_device_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x2417fa28 ide_read_altstatus
+EXPORT_SYMBOL_GPL vmlinux 0x244e82a5 srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x24b340ba inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x24b46910 crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x24bdf150 usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x24c9b8fa simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0x24cda041 ide_vlb_clk
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x24eda965 __cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x250d2b03 pm_request_idle
+EXPORT_SYMBOL_GPL vmlinux 0x250f7f7a fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0x2549e669 pm_generic_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x254d7f3c inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x2559c68f wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x2573bab4 tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x2581f000 tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0x25b57969 hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL vmlinux 0x25b8b8d3 klist_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x25c5ed01 __ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x266df444 device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x26c1e36b usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x26d94004 pmf_get_function
+EXPORT_SYMBOL_GPL vmlinux 0x26e700f1 fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x271fa000 part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0x27784d15 pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0x279d206e ide_pci_dma_base
+EXPORT_SYMBOL_GPL vmlinux 0x279e4da0 user_describe
+EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x27d1b018 regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0x27febd41 wm8350_device_exit
+EXPORT_SYMBOL_GPL vmlinux 0x2801b8bc crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range
+EXPORT_SYMBOL_GPL vmlinux 0x282075cb led_classdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x282dd71a hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0x28315337 ide_read_status
+EXPORT_SYMBOL_GPL vmlinux 0x2845ecd4 rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0x288d589b device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0x28a3886d wm8350_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x28b91a4a ide_build_dmatable
+EXPORT_SYMBOL_GPL vmlinux 0x28cf466e seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x28eee407 crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x291b4c99 ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL vmlinux 0x2925a46c ata_eh_qc_retry
+EXPORT_SYMBOL_GPL vmlinux 0x296c9e5a bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x29a4c37b eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0x2a560087 xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result
+EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array
+EXPORT_SYMBOL_GPL vmlinux 0x2ab496e8 ata_do_dev_read_id
+EXPORT_SYMBOL_GPL vmlinux 0x2b5d6ef3 isa_bridge_pcidev
+EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns
+EXPORT_SYMBOL_GPL vmlinux 0x2b62db58 ata_sas_port_stop
+EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x2bf662b6 ata_sff_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c299df7 bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping
+EXPORT_SYMBOL_GPL vmlinux 0x2c82789f ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2d1dc60b pmac_i2c_close
+EXPORT_SYMBOL_GPL vmlinux 0x2d3fbb38 fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0x2d436a44 ata_link_next
+EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x2d6d677d ata_bmdma_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x2e1cea6c mmput
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e4f8117 ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0x2e8f7d98 ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0x2e955758 alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x2eb91dfe scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0x2ed9efbd usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x2ee8c9fa vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0x2ef06498 pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x2f2aa116 unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x2f3a72be put_pid
+EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table
+EXPORT_SYMBOL_GPL vmlinux 0x2fb7fc7f pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0x2fc1dacc spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x30010ccf ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0x302717e6 sysfs_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x302f17ca regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3050ec18 perf_trace_buf_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x308ff9a9 srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x30bca880 of_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x3111609b ata_sff_data_xfer
+EXPORT_SYMBOL_GPL vmlinux 0x3143236d ide_dma_sff_read_status
+EXPORT_SYMBOL_GPL vmlinux 0x31689360 ata_bmdma_start
+EXPORT_SYMBOL_GPL vmlinux 0x31a05d5a usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0x31d3cb72 raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x31de6218 ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x323221cc usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0x3242aa9c inotify_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x324cd0e6 proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0x3254046f bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0x32a3d1b6 ata_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0x32d49b1b register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x32f23415 of_irq_to_resource
+EXPORT_SYMBOL_GPL vmlinux 0x337b1e3f spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0x339b89cd transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x33d0b011 scsi_target_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x341309fd inotify_init
+EXPORT_SYMBOL_GPL vmlinux 0x342b614d regulator_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0x343ee26c xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x3449a845 device_rename
+EXPORT_SYMBOL_GPL vmlinux 0x348eb070 crypto_alg_sem
+EXPORT_SYMBOL_GPL vmlinux 0x35229fdc usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0x3537cb26 crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x3554cc03 usb_bus_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x3566d1d8 raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x35e729fa ata_port_desc
+EXPORT_SYMBOL_GPL vmlinux 0x3604b1af sysdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0x362957e7 bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0x36782561 __inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x368938e4 crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0x36c6d72a __pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x37561e58 usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0x3769ab0c klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x377266d5 usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0x378e3f95 blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0x37900f95 dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0x379d6759 pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0x37bd5710 ide_host_register
+EXPORT_SYMBOL_GPL vmlinux 0x37bf59b7 rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x37c244ad elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x37d9eaba blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x37e8d699 aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x37f48dc5 pmf_do_irq
+EXPORT_SYMBOL_GPL vmlinux 0x383937ea sata_sff_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x38cf2df3 clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0x39004ea9 sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x390b4370 invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0x390b5e5e cpufreq_register_governor
+EXPORT_SYMBOL_GPL vmlinux 0x391825f2 tracepoint_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x3928cf1e pm_generic_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x39388ddb cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x393e1c29 pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0x39c93984 clockevents_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x39d8722c kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x39d9cbf7 crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x39ed408c pci_restore_msi_state
+EXPORT_SYMBOL_GPL vmlinux 0x3a152bd0 ata_port_pbar_desc
+EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3a297f89 class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3a60b2c3 tty_put_char
+EXPORT_SYMBOL_GPL vmlinux 0x3a9e5c03 spi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x3ad8ef36 usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x3af0c33f bus_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x3b5b70da kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x3ba1de7f elv_register
+EXPORT_SYMBOL_GPL vmlinux 0x3bb0eaeb crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x3bcf4ee5 register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3c108719 ata_eh_freeze_port
+EXPORT_SYMBOL_GPL vmlinux 0x3c11d7ec usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x3c13d859 xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0x3c1aaa4d ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0x3c7767f9 crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x3c8075f2 crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag
+EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3ca2f2b1 unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3cd6ae9c usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x3cdd3390 single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x3ce24185 flush_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3da5ba20 shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x3dac473d device_create_vargs
+EXPORT_SYMBOL_GPL vmlinux 0x3db07afd driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x3e218131 ata_sff_postreset
+EXPORT_SYMBOL_GPL vmlinux 0x3e39fd33 fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0x3e4a480a crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0x3e5cf2fe relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0x3e5ef4c8 platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0x3e990f55 hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x3eb8b6d8 unlock_media_bay
+EXPORT_SYMBOL_GPL vmlinux 0x3ed0bef3 kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0x3ed679a8 queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0x3ee16cbd init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0x3ee32801 pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0x3ef60f45 show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register
+EXPORT_SYMBOL_GPL vmlinux 0x3f498959 debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0x3f50c044 __trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0x3f6565de sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0x3f693967 register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x3f705784 pmac_i2c_open
+EXPORT_SYMBOL_GPL vmlinux 0x3fd6e22d ide_allocate_dma_engine
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x404c1807 input_ff_erase
+EXPORT_SYMBOL_GPL vmlinux 0x406f10c7 ide_dma_setup
+EXPORT_SYMBOL_GPL vmlinux 0x40997d60 device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL vmlinux 0x40b4f27f seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x40b9369d tc35892_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x40cf45f8 crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x40dafac9 queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x41389212 trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0x4154c3d9 drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0x41643760 regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x4178381a pci_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x41acd670 crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x41bac202 screen_glyph
+EXPORT_SYMBOL_GPL vmlinux 0x41ea9d3a usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0x41eaa852 ata_sff_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0x4233acfc crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x425c1c0b ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0x426ae628 xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0x4279f193 cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active
+EXPORT_SYMBOL_GPL vmlinux 0x42918904 ata_sff_pause
+EXPORT_SYMBOL_GPL vmlinux 0x42a33aec scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done
+EXPORT_SYMBOL_GPL vmlinux 0x430a22eb platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x433b59a9 perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x435e74ee sff_dma_ops
+EXPORT_SYMBOL_GPL vmlinux 0x43a3cbe7 fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL vmlinux 0x43f58d96 dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0x442ed901 usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0x443d86cb __module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x44b01273 usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0x44e72824 __class_register
+EXPORT_SYMBOL_GPL vmlinux 0x45346978 wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45c40255 sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x45dd7644 hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0x46027d55 scsi_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x4615ccd0 transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x46712797 ide_cd_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x46848ee1 inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x46853f92 ide_pio_bytes
+EXPORT_SYMBOL_GPL vmlinux 0x46a40f16 inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x46bb1d99 ata_eh_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x46ce6dbc pm_generic_resume
+EXPORT_SYMBOL_GPL vmlinux 0x46d10de2 transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0x46f9a902 ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x473d8d8f debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0x474e14c9 fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x478827d6 usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL vmlinux 0x47b1e4c6 usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x47b4b7f4 anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x47e6aa80 netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0x483737b5 wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x485b4c2e wm8350_gpio_config
+EXPORT_SYMBOL_GPL vmlinux 0x48916609 usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size
+EXPORT_SYMBOL_GPL vmlinux 0x4932ff5c register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x4943a338 __init_new_context
+EXPORT_SYMBOL_GPL vmlinux 0x496448b5 ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL vmlinux 0x49750205 relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue
+EXPORT_SYMBOL_GPL vmlinux 0x49cf5d15 usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x49fd3916 sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0x4a012a6d class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4a6b8b1f eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0x4a92d85b crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0x4ac96ecf cpu_remove_sysdev_attr
+EXPORT_SYMBOL_GPL vmlinux 0x4af1cce0 sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x4b645e57 register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0x4c62fcea ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0x4c656120 inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c848371 tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0x4cb5001c tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0x4d33d4cc ide_pio_cycle_time
+EXPORT_SYMBOL_GPL vmlinux 0x4d8bb0c1 ata_port_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x4dc9bef5 dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0x4dca9799 bd_release_from_disk
+EXPORT_SYMBOL_GPL vmlinux 0x4e398500 ata_sff_check_status
+EXPORT_SYMBOL_GPL vmlinux 0x4e400cd4 blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x4f0a6d40 bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x4f1927be fuse_request_send
+EXPORT_SYMBOL_GPL vmlinux 0x4f5b9ed5 ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL vmlinux 0x4f5f6f02 crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0x4f7514d7 ide_dma_test_irq
+EXPORT_SYMBOL_GPL vmlinux 0x4f98bd4d sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x4f9eb6d1 inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0x4fc4c3f3 ata_sff_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x4fd0255a irq_of_parse_and_map
+EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal
+EXPORT_SYMBOL_GPL vmlinux 0x4fe0c389 ata_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array
+EXPORT_SYMBOL_GPL vmlinux 0x4ff5ae9f __wake_up_sync_key
+EXPORT_SYMBOL_GPL vmlinux 0x500e1685 ata_sff_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0x502372f2 rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x502f40a4 task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x50461e6f sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0x50827a9e ata_port_abort
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x508f824c ring_buffer_read_finish
+EXPORT_SYMBOL_GPL vmlinux 0x508fd4d9 blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x50dd5558 inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched
+EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x514a069c pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0x51a66890 crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0x51af7f83 unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x51c46681 sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x51d17433 transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x51fbc57a css_id
+EXPORT_SYMBOL_GPL vmlinux 0x523865ad debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0x523c4f18 wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0x526daadb cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x528e8435 regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x52e819d8 disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x530adb9c ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x53233dd5 driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x53596650 sata_link_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL vmlinux 0x536260b0 hwmon_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53b64b6e ata_dummy_port_info
+EXPORT_SYMBOL_GPL vmlinux 0x53d2c315 rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x541d116a tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x54842269 input_ff_event
+EXPORT_SYMBOL_GPL vmlinux 0x548c5828 platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0x5491e761 __create_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54991efe ring_buffer_resize
+EXPORT_SYMBOL_GPL vmlinux 0x54ee9100 fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0x551802d7 blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL vmlinux 0x5542b913 cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0x555f7a71 xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0x5581292d dev_attr_em_message
+EXPORT_SYMBOL_GPL vmlinux 0x55b0b625 blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0x55c7f239 class_dev_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x55c856ad of_modalias_node
+EXPORT_SYMBOL_GPL vmlinux 0x55fad43f aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x5627d13b fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status
+EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after
+EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen
+EXPORT_SYMBOL_GPL vmlinux 0x566cce55 crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0x56728164 raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0x56c12174 inotify_find_update_watch
+EXPORT_SYMBOL_GPL vmlinux 0x56d59b1b tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0x56de4aba page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x56fc9785 atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x570a86fa ide_read_bcount_and_ireason
+EXPORT_SYMBOL_GPL vmlinux 0x571ec83c aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x572c6d17 get_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x57dff798 devm_kfree
+EXPORT_SYMBOL_GPL vmlinux 0x58083bfe ide_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0x58171bbc ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x586fa68d ide_do_test_unit_ready
+EXPORT_SYMBOL_GPL vmlinux 0x5886fa56 ide_pad_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware
+EXPORT_SYMBOL_GPL vmlinux 0x5894a2fe ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0x58ab5b28 map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x58cb15cf ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x58f7e98f blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x59000cd3 rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x5911cd7b sata_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x591fc6f1 ata_sff_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x59c6c95d ata_scsi_simulate
+EXPORT_SYMBOL_GPL vmlinux 0x59dbde35 usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0x59ecb645 usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0x5a379141 usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL vmlinux 0x5a675cc0 debugfs_create_x64
+EXPORT_SYMBOL_GPL vmlinux 0x5a6cca21 bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5acc42d3 regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x5adbac65 devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0x5aed715e __inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0x5aff157f i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x5b0d97e2 schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0x5bd69fab fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5bde9315 unregister_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5c152f69 led_trigger_show
+EXPORT_SYMBOL_GPL vmlinux 0x5c22f839 ide_read_error
+EXPORT_SYMBOL_GPL vmlinux 0x5c24cae8 ata_pci_device_resume
+EXPORT_SYMBOL_GPL vmlinux 0x5c3ca181 eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x5c79d6f9 sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x5c87d83c find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0x5c9117b3 dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0x5cb5f0d8 ata_cable_ignore
+EXPORT_SYMBOL_GPL vmlinux 0x5cc0dd2c wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x5cc0e3b3 ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0x5ccfd51a pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table
+EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d75e3d3 xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0x5db00c9a ide_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5e45c268 ata_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x5e50c9ff inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0x5ebbc511 ide_set_media_lock
+EXPORT_SYMBOL_GPL vmlinux 0x5ec51351 pmf_do_functions
+EXPORT_SYMBOL_GPL vmlinux 0x5ef9e63f pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x5f81a28b ide_dma_unmap_sg
+EXPORT_SYMBOL_GPL vmlinux 0x5f93cc48 register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x5fd815ae __audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0x5ffdf406 pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0x60235a95 __scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3 synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off
+EXPORT_SYMBOL_GPL vmlinux 0x60ad56fc bd_claim_by_disk
+EXPORT_SYMBOL_GPL vmlinux 0x60dc6355 tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x60de2813 platform_device_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x611cb042 bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x615513e2 sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x6177a43b fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0x61d1a09a crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0x61d2e731 __pci_complete_power_transition
+EXPORT_SYMBOL_GPL vmlinux 0x6228f1a5 pcie_port_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x6244dce8 ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x626143cc devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep
+EXPORT_SYMBOL_GPL vmlinux 0x62a1ba7d sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0x62b24ed1 set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0x62e17421 simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0x62f8fade pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL vmlinux 0x633557db sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x635add9c sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0x637ef5b5 noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x6387195b dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0x63d2b483 device_del
+EXPORT_SYMBOL_GPL vmlinux 0x63f91c70 ata_sas_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap
+EXPORT_SYMBOL_GPL vmlinux 0x642567a7 crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x643f9780 kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x6453f77c pmac_has_backlight_type
+EXPORT_SYMBOL_GPL vmlinux 0x64564681 tc35892_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x646b7610 usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0x64845243 ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL vmlinux 0x64a22aab queue_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x6529380e pmac_i2c_get_channel
+EXPORT_SYMBOL_GPL vmlinux 0x652c9fc0 security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq
+EXPORT_SYMBOL_GPL vmlinux 0x654db4bd sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x6550c404 usb_ep0_reinit
+EXPORT_SYMBOL_GPL vmlinux 0x656a0c31 led_trigger_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x656eaee8 ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x65b465c7 usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0x65b5f72f lock_media_bay
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65f3ff11 xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x662f3d8f ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x663fae61 ata_std_qc_defer
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x6726772d tracepoint_iter_start
+EXPORT_SYMBOL_GPL vmlinux 0x67801b43 platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x67d10932 da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x67d69b15 ide_prep_sense
+EXPORT_SYMBOL_GPL vmlinux 0x682cbfc8 adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x68554622 skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x68ad8804 tc35892_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x68d4e898 cpufreq_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x68e5d7ed vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0x6940c8be fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x694e12c4 ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x699be045 crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0x69d25a6e ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config
+EXPORT_SYMBOL_GPL vmlinux 0x6a2ebd66 device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL vmlinux 0x6a32a76f generic_fh_to_parent
+EXPORT_SYMBOL_GPL vmlinux 0x6a35f1a9 led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL vmlinux 0x6a559116 rtc_lock
+EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x6a6f515c shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0x6a7e19f8 pm_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x6ab766e0 gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x6ac6d51c find_module
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b365887 fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0x6b4e09c2 sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0x6b525d5c ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x6b6e3080 apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0x6b9ade2a device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x6baf0de8 regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x6bb303d0 ata_cable_unknown
+EXPORT_SYMBOL_GPL vmlinux 0x6bc650fc ata_dev_next
+EXPORT_SYMBOL_GPL vmlinux 0x6bc8aabc inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c4b1104 inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0x6c52d2f8 filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0x6c7a0e5b sysdev_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d3790 usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6cc1a3c2 ide_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x6d0aebb4 of_irq_map_raw
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d32a65d synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0x6d6073c9 __hvc_resize
+EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x6d9661d5 add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x6dc05666 usb_string
+EXPORT_SYMBOL_GPL vmlinux 0x6de13f61 cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x6df03601 __inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0x6e1e8596 ide_register_region
+EXPORT_SYMBOL_GPL vmlinux 0x6e1eb6ba sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0x6e51cb7b scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x6e8f07d6 cpufreq_cpu_get
+EXPORT_SYMBOL_GPL vmlinux 0x6ea55532 driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x6ee5be74 rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0x6eecd603 inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x6f0e223d usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL vmlinux 0x6fc3fbc4 pmac_i2c_match_adapter
+EXPORT_SYMBOL_GPL vmlinux 0x6fc7d1ae cpu_add_sysdev_attr_group
+EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x70077535 usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x700d6c9f blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x7010dd37 ide_dma_end
+EXPORT_SYMBOL_GPL vmlinux 0x701330d2 free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x70166662 scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x702477a7 invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0x7028e8fd kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr
+EXPORT_SYMBOL_GPL vmlinux 0x707049a1 ata_bmdma_stop
+EXPORT_SYMBOL_GPL vmlinux 0x70722161 ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL vmlinux 0x70afb0c6 usb_sg_wait
+EXPORT_SYMBOL_GPL vmlinux 0x70d91039 pci_bus_max_busnr
+EXPORT_SYMBOL_GPL vmlinux 0x7101993e ata_sff_softreset
+EXPORT_SYMBOL_GPL vmlinux 0x7104ac54 ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0x7112ca0b cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x71854792 sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0x718cb85f spi_async
+EXPORT_SYMBOL_GPL vmlinux 0x71bbcd0e ide_pci_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x71d61a9e debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0x71d63886 class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0x72006166 __blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x72067a58 rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x720ee982 ide_init_pc
+EXPORT_SYMBOL_GPL vmlinux 0x7219afc5 __crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x72584faf xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x727b57ae sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0x729e17e4 ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0x72ae81ff swiotlb_unmap_page
+EXPORT_SYMBOL_GPL vmlinux 0x72f3bed8 tc35892_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x72fe883e __srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0x73564277 __timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x737bb671 wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports
+EXPORT_SYMBOL_GPL vmlinux 0x740df74d cpu_remove_sysdev_attr_group
+EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x7456049e regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0x746d995d driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7478a209 usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read
+EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register
+EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74dca3ec usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x74ea73bb fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x74f6f7c4 free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0x74f8b940 sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x751312dd __ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0x754665ec of_irq_map_pci
+EXPORT_SYMBOL_GPL vmlinux 0x75548f34 pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x7571ad09 da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x75afa856 debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x76267e86 ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL vmlinux 0x762688b2 vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x7626b273 unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x7649d1f2 unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x7669cc72 tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0x7671224b eventfd_ctx_put
+EXPORT_SYMBOL_GPL vmlinux 0x76a854d8 sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0x77b41dee fib_rules_cleanup_ops
+EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0x77fb4943 rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x783af141 udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x7842201d tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0x7843932a crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0x7844616a crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x7896afd0 sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x7910312f spi_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x791274d7 dm_put
+EXPORT_SYMBOL_GPL vmlinux 0x792661a9 ide_set_pio
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x796384bf tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0x7978534b led_classdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0x79aecb93 pm_schedule_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x79b133e5 blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x79c3ad3c pmf_call_function
+EXPORT_SYMBOL_GPL vmlinux 0x7a42f613 inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr
+EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set
+EXPORT_SYMBOL_GPL vmlinux 0x7b229da6 crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x7b924c85 of_irq_map_one
+EXPORT_SYMBOL_GPL vmlinux 0x7ba159f6 cpufreq_frequency_table_cpuinfo
+EXPORT_SYMBOL_GPL vmlinux 0x7be317ef regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0x7bea0cae disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x7beb4f0c fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x7c684e81 dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0x7cbfa286 sata_set_spd
+EXPORT_SYMBOL_GPL vmlinux 0x7cf53d0a get_device
+EXPORT_SYMBOL_GPL vmlinux 0x7cf7623a register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x7d110da0 devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0x7d21da4d usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq
+EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values
+EXPORT_SYMBOL_GPL vmlinux 0x7dc563b0 relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7dfcb115 attribute_container_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7e05bc8f disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e2d29ec ide_pci_clk
+EXPORT_SYMBOL_GPL vmlinux 0x7e5e4c3a ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7e72d3f6 rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x7e8f4ec3 ata_sff_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x7ea18703 inotify_init_watch
+EXPORT_SYMBOL_GPL vmlinux 0x7f095401 class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x7f1f9dcc ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x7f58dedd transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0x7f829983 wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x7f8c434b spi_write_then_read
+EXPORT_SYMBOL_GPL vmlinux 0x7f9d06c7 tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x7fbffca9 crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x80040040 device_find_child
+EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x802ad65b tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x80c26bd5 wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc
+EXPORT_SYMBOL_GPL vmlinux 0x81035a54 rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x82270700 xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0x827f0c06 kill_pid_info_as_uid
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x82c681ae usb_anchor_empty
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x832451ec remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0x8343d393 devres_remove
+EXPORT_SYMBOL_GPL vmlinux 0x83748eab blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x83da2775 tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0x83dcb3a8 crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x83dfa173 root_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x83f69ff1 generic_detach_inode
+EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x849eb902 usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0x84a1c1d4 platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0x84d4f7d8 rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x84d72302 rtnl_kill_links
+EXPORT_SYMBOL_GPL vmlinux 0x84e6f97e do_add_mount
+EXPORT_SYMBOL_GPL vmlinux 0x84fe406e skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x854da6b4 device_add
+EXPORT_SYMBOL_GPL vmlinux 0x85a5db04 platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh
+EXPORT_SYMBOL_GPL vmlinux 0x860a1561 inotify_rm_watch
+EXPORT_SYMBOL_GPL vmlinux 0x8618523a dm_kill_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x8630f4fb driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x8647aa6c use_mm
+EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x8693e135 regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0x869a7fac inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x86abd055 ata_bmdma_status
+EXPORT_SYMBOL_GPL vmlinux 0x86be25ae pci_enable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x872a3b1f fb_ddc_read
+EXPORT_SYMBOL_GPL vmlinux 0x8733d47e platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0x873f7b63 input_ff_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error
+EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x879a4e3a led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x88527412 mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0x8862eacd skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x88928d3f hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0x889418bd wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active
+EXPORT_SYMBOL_GPL vmlinux 0x88cd93ae regulator_disable
+EXPORT_SYMBOL_GPL vmlinux 0x88f0a7e4 ide_port_scan
+EXPORT_SYMBOL_GPL vmlinux 0x8922d436 pci_create_slot
+EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x8926ca4a fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x898edb99 inotify_dentry_parent_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x8995c93d skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0x89f8bddd fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0x8a16b797 register_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x8a3e5124 shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x8a7657aa __fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5 klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0x8abeab77 pmac_i2c_adapter_to_bus
+EXPORT_SYMBOL_GPL vmlinux 0x8ad2f3bb usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0x8afed182 ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0x8b1ddd35 ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0x8b2937f3 crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x8b5a75eb blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis
+EXPORT_SYMBOL_GPL vmlinux 0x8bea43e5 attribute_container_find_class_device
+EXPORT_SYMBOL_GPL vmlinux 0x8bed93ea crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0x8c16c379 rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x8c1d40f3 dm_device_name
+EXPORT_SYMBOL_GPL vmlinux 0x8c3a08e9 ide_get_lba_addr
+EXPORT_SYMBOL_GPL vmlinux 0x8c5329ff usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x8c6e2cb1 driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x8c81436d usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x8cebf3f1 usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0x8d390e07 debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x8d484963 vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0x8d7156ca ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x8d897911 driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0x8db799f4 ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0x8dfc04b4 tty_mode_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x8dfe6da4 find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x8e388024 init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x8e5f6665 sata_pmp_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x8e69fe55 trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x8e810b6b input_ff_create
+EXPORT_SYMBOL_GPL vmlinux 0x8ecfbf77 ata_std_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x8f005211 crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x8f170690 crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0x8f2364aa rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8fe588e1 pci_scan_child_bus
+EXPORT_SYMBOL_GPL vmlinux 0x900087cd user_update
+EXPORT_SYMBOL_GPL vmlinux 0x9006e4ec __pm_runtime_disable
+EXPORT_SYMBOL_GPL vmlinux 0x900a8d5f mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0x902499f1 led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0x9061d536 rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x90801923 ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90e76752 sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0x90f9370c power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x9173c454 ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x918decd4 usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0x9193ac8a device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0x91ab56d7 eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0x91ae3ada pm_runtime_allow
+EXPORT_SYMBOL_GPL vmlinux 0x91aff1e3 wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0x9202e32d input_class
+EXPORT_SYMBOL_GPL vmlinux 0x921c74ee usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x9262d6ae check_media_bay
+EXPORT_SYMBOL_GPL vmlinux 0x926cb62c usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x9276e5cd dev_attr_em_message_type
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92d735b0 inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9336f7b7 ata_sff_wait_ready
+EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x933fbd10 class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x939af59b regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x93a2cb47 reserve_pmc_hardware
+EXPORT_SYMBOL_GPL vmlinux 0x93b75f02 ide_capacity_proc_fops
+EXPORT_SYMBOL_GPL vmlinux 0x93c0b5ed rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0x93c93ff5 ide_issue_pc
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x93d8e9f1 ata_host_start
+EXPORT_SYMBOL_GPL vmlinux 0x9434cfcb class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x94800882 ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0x948083f2 crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x9482997f devres_add
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94a88b32 ata_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0x94c48023 skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x94e06442 usb_ifnum_to_if
+EXPORT_SYMBOL_GPL vmlinux 0x94eedb3f regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0x951d53a8 ata_std_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x958207cf klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0x95a6a015 transport_configure_device
+EXPORT_SYMBOL_GPL vmlinux 0x95aa61ce blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0x95bf7d14 ata_bmdma_setup
+EXPORT_SYMBOL_GPL vmlinux 0x95ce4faf register_posix_clock
+EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x962067fa ide_pci_resume
+EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x967ea425 tty_find_polling_driver
+EXPORT_SYMBOL_GPL vmlinux 0x96ca4e8f adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x96df2ac5 crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0x97026bee pmf_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x971dce07 eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x9746438f platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0x974f99b0 device_move
+EXPORT_SYMBOL_GPL vmlinux 0x982141e0 anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick
+EXPORT_SYMBOL_GPL vmlinux 0x987667e6 pmf_unregister_irq_client
+EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on
+EXPORT_SYMBOL_GPL vmlinux 0x99710d81 relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0x9987282d fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0x99b2d22d skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0x99f91a78 mm_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a15393e spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0x9a428177 fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0x9a5615e6 destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x9a8e3f57 ide_check_ireason
+EXPORT_SYMBOL_GPL vmlinux 0x9b943898 usb_disable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9be2158d put_device
+EXPORT_SYMBOL_GPL vmlinux 0x9bec0cf8 ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0x9bee25c6 ide_pci_setup_ports
+EXPORT_SYMBOL_GPL vmlinux 0x9c00cf82 adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9ca8f64c ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9cf511d5 perf_arch_fetch_caller_regs
+EXPORT_SYMBOL_GPL vmlinux 0x9cf89854 usb_set_device_state
+EXPORT_SYMBOL_GPL vmlinux 0x9d24b870 ide_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x9d272fdd led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0x9e5c1963 device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0x9e97e00d ata_do_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x9ebcf3ba bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x9eddadce pci_dev_run_wake
+EXPORT_SYMBOL_GPL vmlinux 0x9ee320ef crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain
+EXPORT_SYMBOL_GPL vmlinux 0x9fb958da ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x9ffe41e5 skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0xa017cab1 relay_open
+EXPORT_SYMBOL_GPL vmlinux 0xa07c90bd crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0xa0ca47bc ide_host_remove
+EXPORT_SYMBOL_GPL vmlinux 0xa0d69756 swiotlb_map_page
+EXPORT_SYMBOL_GPL vmlinux 0xa1176d38 tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0xa124fcfd pm_generic_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0xa148a352 pci_ioremap_bar
+EXPORT_SYMBOL_GPL vmlinux 0xa1614f96 ata_host_detach
+EXPORT_SYMBOL_GPL vmlinux 0xa1f3241c kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xa283ac28 pmac_backlight
+EXPORT_SYMBOL_GPL vmlinux 0xa29b3732 led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0xa2b0b7f4 pmac_low_i2c_lock
+EXPORT_SYMBOL_GPL vmlinux 0xa2bee2ec wm831x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xa2d8a6b6 inet_diag_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa2d97b0b __pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xa2e31b93 dm_dispatch_request
+EXPORT_SYMBOL_GPL vmlinux 0xa30eebf1 __ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0xa324e1d2 init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xa357d56e ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xa39d9220 unregister_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range
+EXPORT_SYMBOL_GPL vmlinux 0xa3dc647f tty_prepare_flip_string_flags
+EXPORT_SYMBOL_GPL vmlinux 0xa3ebeb13 ide_create_request_sense_cmd
+EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa40bc001 i2c_new_probed_device
+EXPORT_SYMBOL_GPL vmlinux 0xa42d71cb spi_new_device
+EXPORT_SYMBOL_GPL vmlinux 0xa47bfdfe __i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx
+EXPORT_SYMBOL_GPL vmlinux 0xa4afb36a spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0xa4dc78b2 pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0xa4f452b7 sata_async_notification
+EXPORT_SYMBOL_GPL vmlinux 0xa5066b97 inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0xa5145a5e ide_device_get
+EXPORT_SYMBOL_GPL vmlinux 0xa51b3869 wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xa5215994 wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xa539755d irq_find_host
+EXPORT_SYMBOL_GPL vmlinux 0xa55d7fd7 da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0xa587d645 inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0xa59da643 save_stack_trace_tsk
+EXPORT_SYMBOL_GPL vmlinux 0xa5a4e509 ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa6015a53 debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa6237c0d ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0xa63a0b71 power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa67140a8 xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0xa694f8b6 ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0xa70f10cb vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0xa74e8e62 debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xa7720b17 usb_create_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xa77ba8d8 ata_sas_port_start
+EXPORT_SYMBOL_GPL vmlinux 0xa7810490 cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL vmlinux 0xa7b50fb3 dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0xa7e33716 ata_sff_exec_command
+EXPORT_SYMBOL_GPL vmlinux 0xa7f467b8 i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0xa800f49f uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0xa81a0bea tasklet_hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll
+EXPORT_SYMBOL_GPL vmlinux 0xa85d1005 pci_block_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0xa885a5a2 sysdev_class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xa8d90218 blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa960de67 pci_find_next_capability
+EXPORT_SYMBOL_GPL vmlinux 0xa9b8f871 sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0xa9c177f0 class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xaa04bd97 dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0xaa17a7e9 ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0xaa39d9c5 usb_driver_release_interface
+EXPORT_SYMBOL_GPL vmlinux 0xaa53a4b4 ide_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock
+EXPORT_SYMBOL_GPL vmlinux 0xab05c400 macio_find
+EXPORT_SYMBOL_GPL vmlinux 0xab170ac3 usb_get_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xab387597 transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab8f4ea4 ata_sff_freeze
+EXPORT_SYMBOL_GPL vmlinux 0xabfc0017 class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xac2aa866 pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0xac7c4a90 generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0xac9206e3 adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xacb3c586 blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0xacb7777e tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad7bb29f crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xadaa26f2 perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0xadad8449 inotify_remove_watch_locked
+EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module
+EXPORT_SYMBOL_GPL vmlinux 0xade3889f tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xaed148bd anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0xaf0369c0 tracepoint_iter_stop
+EXPORT_SYMBOL_GPL vmlinux 0xaf34a871 ata_sas_port_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xafaeaedd ide_unregister_region
+EXPORT_SYMBOL_GPL vmlinux 0xaff0f224 class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0xaff20498 ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xb01b2c60 dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0xb0215808 ata_link_abort
+EXPORT_SYMBOL_GPL vmlinux 0xb03bfa63 sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0xb05457e0 kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xb0772a86 sata_link_resume
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work
+EXPORT_SYMBOL_GPL vmlinux 0xb104b40c crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xb10ff5e7 nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0xb128bae5 cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0xb13887e1 ide_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0xb168eea7 wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xb19b0974 shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xb1a0bab5 skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb1c1fec4 spi_unregister_master
+EXPORT_SYMBOL_GPL vmlinux 0xb1d70d3b hrtimer_start
+EXPORT_SYMBOL_GPL vmlinux 0xb1f53191 wm8994_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0xb1f8d7a6 da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0xb29250f7 kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0xb2c8c2ce ide_release_dma_engine
+EXPORT_SYMBOL_GPL vmlinux 0xb2ec62ff platform_device_register_data
+EXPORT_SYMBOL_GPL vmlinux 0xb30f3725 regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0xb32c65e8 raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xb3489e88 __fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0xb35201a5 set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0xb3a2e237 pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0xb3a41333 regulator_get_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xb3aca3d5 firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xb436afee vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0xb45e826e scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0xb47567ad usb_autopm_put_interface
+EXPORT_SYMBOL_GPL vmlinux 0xb4dba3fe relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected
+EXPORT_SYMBOL_GPL vmlinux 0xb4f4bc2d dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0xb51168cd usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state
+EXPORT_SYMBOL_GPL vmlinux 0xb526b753 sata_scr_read
+EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL vmlinux 0xb53a91f5 inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0xb54c8414 sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xb55c4a65 register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xb5970b19 handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0xb5a40554 led_classdev_register
+EXPORT_SYMBOL_GPL vmlinux 0xb5d3f62e ide_pci_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb5f1a8de do_rw_taskfile
+EXPORT_SYMBOL_GPL vmlinux 0xb6010572 ref_module
+EXPORT_SYMBOL_GPL vmlinux 0xb622e128 usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0xb6502063 ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec
+EXPORT_SYMBOL_GPL vmlinux 0xb68fa188 __lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string
+EXPORT_SYMBOL_GPL vmlinux 0xb6c14e69 rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb6cad4b4 ide_undecoded_slave
+EXPORT_SYMBOL_GPL vmlinux 0xb70b87c0 srcu_init_notifier_head
+EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb7832e25 ata_pci_remove_one
+EXPORT_SYMBOL_GPL vmlinux 0xb783dfc2 crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0xb7a3d1a6 pm_runtime_enable
+EXPORT_SYMBOL_GPL vmlinux 0xb7c1c8ca usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0xb7daf2fe ide_queue_sense_rq
+EXPORT_SYMBOL_GPL vmlinux 0xb7edd037 get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0xb8123ba0 tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0xb8204b6a debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0xb83d36cd sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xb886bdec page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0xb888a365 generic_subsys_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0xb8b33b1d dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL vmlinux 0xb951b69c pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xb9b5057d do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0xb9c81da5 ata_host_resume
+EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xba2fede5 ata_slave_link_init
+EXPORT_SYMBOL_GPL vmlinux 0xba4ff47e nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0xba84165e fuse_file_poll
+EXPORT_SYMBOL_GPL vmlinux 0xbab7eae6 register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbaf8a043 dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks
+EXPORT_SYMBOL_GPL vmlinux 0xbb8da1c9 ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0xbba827ea __pm_runtime_put
+EXPORT_SYMBOL_GPL vmlinux 0xbbc0a432 ide_exec_command
+EXPORT_SYMBOL_GPL vmlinux 0xbbdc4247 ata_host_activate
+EXPORT_SYMBOL_GPL vmlinux 0xbbedef0e fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xbbfac69f user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xbc529f04 __root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xbc68ec34 n_tty_inherit_ops
+EXPORT_SYMBOL_GPL vmlinux 0xbc90aa58 br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0xbc9d114a ata_cable_80wire
+EXPORT_SYMBOL_GPL vmlinux 0xbcebebf9 __rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbcff4866 pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0xbd145e15 dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0xbd2654ad i2c_new_dummy
+EXPORT_SYMBOL_GPL vmlinux 0xbdbcda1a pci_test_config_bits
+EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbe024ed8 task_current_syscall
+EXPORT_SYMBOL_GPL vmlinux 0xbe0ec9ce platform_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xbe1068ed cpufreq_cpu_put
+EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime
+EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xbe3734b5 init_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xbe76e1ea tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0xbeacc0fc usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0xbec5ba93 inotify_add_watch
+EXPORT_SYMBOL_GPL vmlinux 0xbecb769e __ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xbeefb057 ide_dma_host_set
+EXPORT_SYMBOL_GPL vmlinux 0xbef5c1da disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0xbf17557c vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0xbf2749da vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0xbf98f972 pm_generic_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0xbf99256b regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xbfc1c0b7 tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xbfc204f7 crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0xbfcd21b9 tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0xbfe229d9 blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0xbfe3ddbb sata_scr_write
+EXPORT_SYMBOL_GPL vmlinux 0xbfefc47d inet_diag_register
+EXPORT_SYMBOL_GPL vmlinux 0xbff262ae crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0xbffdf60e bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0xc0084534 tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0xc04a304b srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xc091a5f7 ide_output_data
+EXPORT_SYMBOL_GPL vmlinux 0xc0b18ae8 of_scan_bus
+EXPORT_SYMBOL_GPL vmlinux 0xc0b96ed9 bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time
+EXPORT_SYMBOL_GPL vmlinux 0xc0cc4788 unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xc0e3313b ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc143bedf device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc1a8526b ide_pci_init_two
+EXPORT_SYMBOL_GPL vmlinux 0xc1d9b975 platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0xc1dca752 usb_driver_set_configuration
+EXPORT_SYMBOL_GPL vmlinux 0xc1f348a7 ab8500_write
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc250c1a4 unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0xc2bc2369 power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0xc3007eba crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0xc30cf47b irq_create_of_mapping
+EXPORT_SYMBOL_GPL vmlinux 0xc32ac316 console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0xc34c0a21 usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc3f58053 ide_init_disk
+EXPORT_SYMBOL_GPL vmlinux 0xc4150212 eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long
+EXPORT_SYMBOL_GPL vmlinux 0xc44a20f1 rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0xc46d877e schedule_hrtimeout
+EXPORT_SYMBOL_GPL vmlinux 0xc478b172 uhci_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0xc4889ff7 platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string
+EXPORT_SYMBOL_GPL vmlinux 0xc490cbcd shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xc4a7df5e spi_alloc_master
+EXPORT_SYMBOL_GPL vmlinux 0xc4db992e kvmppc_load_up_fpu
+EXPORT_SYMBOL_GPL vmlinux 0xc5183905 pmac_i2c_get_dev_addr
+EXPORT_SYMBOL_GPL vmlinux 0xc51c3fce relay_close
+EXPORT_SYMBOL_GPL vmlinux 0xc5640ca4 xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0xc5953482 sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0xc5a79fab unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0xc5b1d204 raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0xc5d23a2d ide_check_atapi_device
+EXPORT_SYMBOL_GPL vmlinux 0xc5e0b1ca ide_retry_pc
+EXPORT_SYMBOL_GPL vmlinux 0xc5f4c808 class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xc5f671f4 __srcu_read_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc606cd3c boot_cpuid
+EXPORT_SYMBOL_GPL vmlinux 0xc60a730b klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc6464c86 ide_cd_get_xferlen
+EXPORT_SYMBOL_GPL vmlinux 0xc663c8fd fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0xc66d70a8 usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0xc68a8ab1 pmac_i2c_find_bus
+EXPORT_SYMBOL_GPL vmlinux 0xc7245faf pmf_put_function
+EXPORT_SYMBOL_GPL vmlinux 0xc757229c __inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0xc7717ff5 dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0xc78f205f key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0xc81cf239 ata_host_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xc82d29b6 scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0xc82fb9dd cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL vmlinux 0xc83011ea ide_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0xc852254c pm_runtime_barrier
+EXPORT_SYMBOL_GPL vmlinux 0xc853b147 ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0xc8e0abdd sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc90da1a8 unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource
+EXPORT_SYMBOL_GPL vmlinux 0xc9312087 __module_address
+EXPORT_SYMBOL_GPL vmlinux 0xc94ce711 ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist
+EXPORT_SYMBOL_GPL vmlinux 0xc9b449a2 atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xc9e442fe ab8500_read
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xca08a7f7 device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0xca2a5881 __pm_runtime_get
+EXPORT_SYMBOL_GPL vmlinux 0xca32a2aa ide_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xca38e2b2 __rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0xca54df56 generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0xca67cd25 crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xca9b6406 vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0xcaa2eb55 ata_eh_thaw_port
+EXPORT_SYMBOL_GPL vmlinux 0xcabbefe3 ata_sff_hsm_move
+EXPORT_SYMBOL_GPL vmlinux 0xcb0e4f24 ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xcb1cc1b4 ide_dma_start
+EXPORT_SYMBOL_GPL vmlinux 0xcb3aa567 ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL vmlinux 0xcb47332f regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0xcb9548ad crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xcbb2e924 da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xcbd03662 simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0xcbd2b81b usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc3935c9 device_create
+EXPORT_SYMBOL_GPL vmlinux 0xcc5ab895 add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0xcc83e186 wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0xcc9f70b0 ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL vmlinux 0xccf55cd1 inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xcd026110 sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0xcd02854b usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xcd75fb6b pm_request_resume
+EXPORT_SYMBOL_GPL vmlinux 0xcdb01877 ktime_add_ns
+EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xcdec0485 devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0xce2a8d1e rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xce5c1ad4 ata_sff_irq_on
+EXPORT_SYMBOL_GPL vmlinux 0xce694e12 ide_host_add
+EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0xcea44b96 raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0xcef64008 pm_runtime_forbid
+EXPORT_SYMBOL_GPL vmlinux 0xcf354097 sata_scr_valid
+EXPORT_SYMBOL_GPL vmlinux 0xcf4a5e18 ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xcf60a8f6 sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xd00652f3 timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0xd038b68c css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL vmlinux 0xd0568914 ide_input_data
+EXPORT_SYMBOL_GPL vmlinux 0xd0b048b2 rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd0f02cc8 disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xd0f8853d usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xd1643afe find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xd21cf7f5 security_inode_setattr
+EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd253b1a5 devres_find
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd27d99ee ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0xd2be651c hvc_poll
+EXPORT_SYMBOL_GPL vmlinux 0xd2f3fb62 wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xd2fcc53e tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xd329375b pcibios_finish_adding_to_bus
+EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0xd33c4fca __wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0xd35633a8 devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xd365538b device_schedule_callback_owner
+EXPORT_SYMBOL_GPL vmlinux 0xd3704bca xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0xd3a7a1c6 put_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0xd413706b blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0xd41e835a srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xd4267ccf rtc_class_close
+EXPORT_SYMBOL_GPL vmlinux 0xd42fe5d2 wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xd434cae5 css_depth
+EXPORT_SYMBOL_GPL vmlinux 0xd443f3ce regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xd44f7d05 get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0xd4725224 usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL vmlinux 0xd48ba9ac fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0xd4fad0e5 ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xd52c7895 pmac_i2c_get_flags
+EXPORT_SYMBOL_GPL vmlinux 0xd5570a4f device_register
+EXPORT_SYMBOL_GPL vmlinux 0xd5b2b542 queue_work
+EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0xd5fa366a blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xd6405585 sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL vmlinux 0xd66429cd securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0xd68abb6c ide_map_sg
+EXPORT_SYMBOL_GPL vmlinux 0xd6dc1dcd fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0xd7023652 inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0xd72ecc9c crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd747b33e blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0xd74e7b16 driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xd766f0cc blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd7b5fc2d regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0xd7bd4c80 crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xd7f09ef1 aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xd8067333 ata_base_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xd81cdb05 device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0xd85a28bc security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0xd8726ba7 leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0xd8731722 get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0xd92800df cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0xd9caa99a sysdev_class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xd9eef782 usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xda021e25 tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL vmlinux 0xda37ada3 i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xda93ec1d da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option
+EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdb28f257 pm_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xdb6707df dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0xdb6ac766 get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0xdbba7911 usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL vmlinux 0xdbd2466d sata_link_debounce
+EXPORT_SYMBOL_GPL vmlinux 0xdbd68f93 file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0xdc03194d ata_port_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0xdc1f5578 kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0xdc2db6f7 fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0xdc3ee302 device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xdcbfa83b scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0xdcdbc52b blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xdd0e9ef3 debugfs_create_u64
+EXPORT_SYMBOL_GPL vmlinux 0xdd2a816c scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xdd40fc57 locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0xdd8783c5 power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xddaa4bf0 usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0xddc7cfb3 skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0xdde10e30 debugfs_create_bool
+EXPORT_SYMBOL_GPL vmlinux 0xde064c17 user_read
+EXPORT_SYMBOL_GPL vmlinux 0xde3e2a82 skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain
+EXPORT_SYMBOL_GPL vmlinux 0xde856e5c usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xde9aa219 ide_error
+EXPORT_SYMBOL_GPL vmlinux 0xdea477ab ide_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0xdeb0b167 inode_add_to_lists
+EXPORT_SYMBOL_GPL vmlinux 0xdee7654b ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xdef9af14 __blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xdf27877b register_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0xdfb991c4 ata_sas_port_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name
+EXPORT_SYMBOL_GPL vmlinux 0xe01e3cd1 ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0xe0245614 ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0xe06872be scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0xe06f8b32 anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0xe0959411 pmac_i2c_get_bus_node
+EXPORT_SYMBOL_GPL vmlinux 0xe0b7a4e8 pmf_register_irq_client
+EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xe12575a5 usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xe1420f03 ata_std_bios_param
+EXPORT_SYMBOL_GPL vmlinux 0xe1836f15 inotify_inode_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0xe18720c7 pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0xe1b7df2f platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0xe1ea5972 alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xe20d2695 __atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xe24881f3 usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL vmlinux 0xe2acc09a class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xe2b9f177 led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0xe2c8ffbf hvc_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0xe2c9b321 pmac_i2c_get_adapter
+EXPORT_SYMBOL_GPL vmlinux 0xe31f11c3 inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0xe3a7e18f __cpufreq_driver_getavg
+EXPORT_SYMBOL_GPL vmlinux 0xe3f01dd7 __ide_pci_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xe4613106 sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0xe4649ae8 wm8994_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register
+EXPORT_SYMBOL_GPL vmlinux 0xe50a0610 sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xe5265485 blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xe5745863 regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0xe5ed11a0 crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0xe6220764 ide_port_unregister_devices
+EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition
+EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe65f6746 devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xe6ab267b ata_noop_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0xe6b592a7 pmf_find_function
+EXPORT_SYMBOL_GPL vmlinux 0xe6d5a4f0 get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0xe6dc5596 sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe738a885 __wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0xe755fe12 spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xe783c330 ide_do_start_stop
+EXPORT_SYMBOL_GPL vmlinux 0xe78ecdbd cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xe7d0c08d tracepoint_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0xe82aab06 rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0xe8403493 ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe86c6741 trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0xe8b2c1b5 attribute_container_register
+EXPORT_SYMBOL_GPL vmlinux 0xe8d0c54c spi_sync
+EXPORT_SYMBOL_GPL vmlinux 0xe8d9c05e ide_setup_pci_noise
+EXPORT_SYMBOL_GPL vmlinux 0xe8e936d3 __class_create
+EXPORT_SYMBOL_GPL vmlinux 0xe915ef68 fsnotify
+EXPORT_SYMBOL_GPL vmlinux 0xe91c6b37 add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe9614137 ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0xe98f4d5f usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0xe9939909 bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0xe9c16a7a regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea0e5594 devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea3b07ef pci_destroy_slot
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xea695ed2 kvmppc_load_up_altivec
+EXPORT_SYMBOL_GPL vmlinux 0xeab90123 usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0xeacc53d4 kvmppc_trampoline_lowmem
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeb08b714 __set_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0xeb1cc4ba hvc_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xeb756508 ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xeb770d4d ring_buffer_record_enable
+EXPORT_SYMBOL_GPL vmlinux 0xebdad4c0 sysfs_notify_dirent
+EXPORT_SYMBOL_GPL vmlinux 0xebf86a79 bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xec004c8d crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del
+EXPORT_SYMBOL_GPL vmlinux 0xec3982a3 crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xec688c3f dev_attr_unload_heads
+EXPORT_SYMBOL_GPL vmlinux 0xecc46a16 driver_find
+EXPORT_SYMBOL_GPL vmlinux 0xeccd9c7d blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0xece56f60 class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0xecea75d0 enable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xed8088a2 rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0xed8879c9 usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xedc2994d ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0xedfb1b24 i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL vmlinux 0xee08fcd3 usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0xee184f40 adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xee1dfba7 pmf_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xee315eb0 atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xee3b4793 regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0xee6446bd usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xee744067 ide_no_data_taskfile
+EXPORT_SYMBOL_GPL vmlinux 0xee7c147a ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xeea69d03 pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0xeeaf7797 ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL vmlinux 0xeef7eec2 hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0xef250737 crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0xef4d446b sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0xef68669c usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3764 usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xef784b38 usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0xefae93d3 securityfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xefe21106 snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0xf00ffbcc dm_get_rq_mapinfo
+EXPORT_SYMBOL_GPL vmlinux 0xf01d2f1d ab8500_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xf04a27fe sata_pmp_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xf0643eb2 usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xf084c8c6 inotify_rm_wd
+EXPORT_SYMBOL_GPL vmlinux 0xf0ef3dfd crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xf105d00d ide_in_drive_list
+EXPORT_SYMBOL_GPL vmlinux 0xf105e6e3 blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xf14342f1 each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf1d3a461 adp5520_read
+EXPORT_SYMBOL_GPL vmlinux 0xf1de99a6 regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0xf22e22f9 ide_end_rq
+EXPORT_SYMBOL_GPL vmlinux 0xf2598557 debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0xf294c822 ide_set_dma_mode
+EXPORT_SYMBOL_GPL vmlinux 0xf29c70a7 crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0xf29fc267 crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0xf2ab7d6b pmac_i2c_xfer
+EXPORT_SYMBOL_GPL vmlinux 0xf2ba65ac default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0xf2eaddee pm_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0xf31c283a tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0xf33490d8 pmf_call_one
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf37914bc __blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xf3a2c3ac ide_intr
+EXPORT_SYMBOL_GPL vmlinux 0xf3ae9ec5 blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs
+EXPORT_SYMBOL_GPL vmlinux 0xf3b76864 ide_pci_set_master
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf44c6235 ata_sff_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xf44e2adb ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xf466e170 find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xf492b43d posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf4dcb4f1 proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0xf50f9f8a cpu_add_sysdev_attr
+EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf54c79fa lookup_create
+EXPORT_SYMBOL_GPL vmlinux 0xf55a5cce lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0xf55f8951 rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0xf56b6247 irq_find_mapping
+EXPORT_SYMBOL_GPL vmlinux 0xf595cd9c crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf5bb39d0 crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xf5cb5858 disk_map_sector_rcu
+EXPORT_SYMBOL_GPL vmlinux 0xf5cf9c94 usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0xf5d6173f crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf5fb59a7 __css_put
+EXPORT_SYMBOL_GPL vmlinux 0xf661a1d9 ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xf69318a0 ata_std_postreset
+EXPORT_SYMBOL_GPL vmlinux 0xf6b187f4 bus_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xf6bfd8ad debugfs_create_u32
+EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xf71d2337 ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0xf76bb508 put_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf77a2281 ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xf77aaa11 ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0xf7aa68a1 __mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0xf82381cb crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0xf840472d platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf864a43c usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf8888049 __blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xf898fd7f ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0xf8e4a743 __srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit
+EXPORT_SYMBOL_GPL vmlinux 0xf9001261 class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xf91cafe3 nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0xf9215ce0 ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL vmlinux 0xf9534452 __get_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xf97e38dd __sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0xf9c06feb blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xf9c30b13 usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xf9d046f0 klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0xf9d77e1c pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register
+EXPORT_SYMBOL_GPL vmlinux 0xfa27ac79 fuse_do_open
+EXPORT_SYMBOL_GPL vmlinux 0xfa2bc0f2 usb_enable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0xfa9dd504 timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xfab44056 __rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0xfabf91c0 platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0xfac2a437 usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0xfac447e0 __rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xfaf8093f relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0xfb00bfd7 bsg_unregister_queue
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfbbdb6f9 __clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfc092197 inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0xfc2e13ea trace_seq_vprintf
+EXPORT_SYMBOL_GPL vmlinux 0xfc9a0dea user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0xfcbfba98 cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0xfcd20e8b ide_queue_pc_tail
+EXPORT_SYMBOL_GPL vmlinux 0xfd028966 tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0xfd235d47 regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0xfd3a42e0 usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xfdd1bef8 ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0xfddc8af4 crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfde37e47 sata_std_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xfde5ffff gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0xfe431703 __pm_runtime_set_status
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfe9db298 crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xfecc1c4e blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfed1ed74 debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xff16b7e2 ide_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0xff1cb042 rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffb97c2a ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL vmlinux 0xffe3db79 sysfs_remove_files
+EXPORT_SYMBOL_GPL vmlinux 0xffee172e pci_disable_rom
diff --git a/debian.master/abi/2.6.35-2.3/powerpc/powerpc-smp b/debian.master/abi/2.6.35-2.3/powerpc/powerpc-smp
new file mode 100644
index 00000000000..23691af3c0c
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/powerpc/powerpc-smp
@@ -0,0 +1,10177 @@
+EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble
+EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle
+EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k
+EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks
+EXPORT_SYMBOL drivers/atm/suni 0x83bc3e69 suni_init
+EXPORT_SYMBOL drivers/atm/uPD98402 0x2aa780b5 uPD98402_init
+EXPORT_SYMBOL drivers/block/loop 0x5dbd7c72 loop_register_transfer
+EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer
+EXPORT_SYMBOL drivers/block/paride/paride 0x42cb90e1 pi_read_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0x50d83481 pi_schedule_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x5e595499 pi_read_block
+EXPORT_SYMBOL drivers/block/paride/paride 0xa9fa34ed pi_init
+EXPORT_SYMBOL drivers/block/paride/paride 0xb704c4eb pi_disconnect
+EXPORT_SYMBOL drivers/block/paride/paride 0xc14edf14 pi_release
+EXPORT_SYMBOL drivers/block/paride/paride 0xc8bb539f paride_unregister
+EXPORT_SYMBOL drivers/block/paride/paride 0xe17e5a5f pi_connect
+EXPORT_SYMBOL drivers/block/paride/paride 0xe989197f pi_write_block
+EXPORT_SYMBOL drivers/block/paride/paride 0xea86e072 pi_do_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0xeaf0f1c1 pi_write_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0xee3b4b2e paride_register
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x034e9955 agp_free_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x03b839ac agp_allocate_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x07945ebc agp_bind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x1b2a094e agp_generic_free_gatt_table
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x1c4a761b agp_generic_alloc_page
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x21ab245a agp_generic_insert_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x28756f75 agp_unbind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x30226ddf agp_device_command
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x31528828 agp_collect_device_status
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x33c11cf2 agp_backend_acquire
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x451be167 agp_generic_alloc_user
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x5e41cdc2 agp_alloc_page_array
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x637f495d agp_find_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x6701b9d0 agp_generic_alloc_by_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x68c020b5 agp3_generic_tlbflush
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x717749ab agp_generic_type_to_mask_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x846c116e agp_backend_release
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x8872d208 get_agp_version
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xa07a2718 agp_alloc_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb04ea8f0 agp_rebind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb33b0841 agp_generic_create_gatt_table
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2deb97a agp_generic_alloc_pages
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5627f63 agp_put_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc6b7c0f2 agp_copy_info
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc710504f agp_generic_mask_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xccd9a2ac agp_generic_enable
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd1b5ce9e agp_generic_free_by_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd7ce1c10 agp_create_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xdad6dda1 agp_enable
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe22215c7 agp_free_page_array
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe51b49fc agp_flush_chipset
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe9ad81d0 agp_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe9b8c051 agp_generic_destroy_pages
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xec670c0e agp_generic_remove_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xeff00eb6 agp_generic_destroy_page
+EXPORT_SYMBOL drivers/char/apm-emulation 0x129e74f2 apm_get_power_status
+EXPORT_SYMBOL drivers/char/apm-emulation 0xdf3329b8 apm_queue_event
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0d0425ba ipmi_get_version
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1728e0f9 ipmi_register_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x28f08146 ipmi_smi_watcher_unregister
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2da6281b ipmi_smi_msg_received
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x2db3194f ipmi_smi_add_proc_entry
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3abe309b ipmi_unregister_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x50592701 ipmi_create_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x56fc550f ipmi_set_gets_events
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x75996d75 ipmi_get_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8fcb45fc ipmi_destroy_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x91479b46 ipmi_set_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x920524b5 ipmi_get_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x997d9c84 ipmi_smi_watcher_register
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9df62656 ipmi_unregister_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xab7537ed ipmi_set_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xad4084df ipmi_request_settime
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb00e576d ipmi_free_recv_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb0b636f0 ipmi_set_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb6772e21 ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xba717d96 ipmi_register_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbec40144 ipmi_get_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe0787be7 ipmi_poll_interface
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfd048e32 ipmi_request_supply_msgs
+EXPORT_SYMBOL drivers/edac/edac_core 0x1a7f4032 edac_mc_handle_fbd_ce
+EXPORT_SYMBOL drivers/edac/edac_core 0x2f1124fe edac_mc_handle_fbd_ue
+EXPORT_SYMBOL drivers/edac/edac_core 0xef84f580 edac_mc_find
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x01b3b912 drm_gem_vm_close
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x05835668 drm_mode_connector_list_update
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0681e51b drm_master_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x06c591a9 drm_mode_attachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x08e4cce1 drm_mode_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x09f4822a drm_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c43dc6f drm_mode_validate_clocks
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e044440 drm_property_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x15580a1b drm_cvt_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x15edd9b6 drm_get_edid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x16247549 drm_master_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x197412ef drm_debugfs_remove_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d003ea1 drm_gtf_mode_complex
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ed094a8 drm_mm_get_block_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ee3e8bd drm_mm_search_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x21ef4b0a drm_agp_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x293b37a3 drm_connector_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x29a4656b drm_mode_create_dirty_info_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2aa3497e drm_irq_uninstall
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b9184d0 drm_agp_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f878994 drm_mode_create_dithering_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fef7359 drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x30ed1562 drm_vblank_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3233aa96 drm_agp_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x33ca2cfe drm_mode_duplicate
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x34df4537 drm_vblank_post_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x38dcdc0a drm_i_have_hw_lock
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x39297c7c drm_mode_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3abc3d26 drm_sg_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b5335a4 drm_add_edid_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e982130 drm_gem_handle_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eca8d83 drm_connector_property_set_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43067c7b drm_irq_install
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x46db4db4 drm_get_encoder_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a128c3d drm_get_drawable_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ce0a52f drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e804ac9 drm_rmmap_locked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x51f89af8 drm_mode_probed_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x52a923be drm_core_ioremapfree
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x537a925c drm_gem_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5897dc5c drm_free_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5b2841e4 drm_core_ioremap_wc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d9a364e drm_encoder_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x626d3f3f drm_mm_debug_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x67b76c0d drm_mode_prune_invalid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x68905e53 drm_mode_create_tv_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ac27ecb drm_vblank_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x71637476 drm_gem_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x73c6c83f drm_gem_object_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x744cd7e1 drm_sysfs_connector_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x783eda1f drm_mm_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x786516c5 drm_idlelock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c43158a drm_mm_pre_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c7b526e drm_crtc_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e543f0c drm_get_connector_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f7f47a5 drm_core_get_reg_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x83bfc5eb drm_core_reclaim_buffers
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x843a54b5 drm_i2c_encoder_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x86a64224 drm_handle_vblank
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8838220d drm_pci_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a4b7b37 drm_connector_attach_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c0ce0b6 drm_sysfs_connector_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d3bb9ee drm_getsarea
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e94c884 drm_vblank_count
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x91c9d008 drm_gtf_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x92c44fdb drm_mm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x96cd8ec8 drm_vblank_off
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x96e7d67e drm_mm_dump_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x98ea5b1e drm_get_resource_len
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x99b48bf5 drm_unbind_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x99edf0c4 drm_agp_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dc3d1c8 drm_add_modes_noedid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e0fb4b6 drm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e94ae2b drm_mode_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f547d26 drm_addbufs_pci
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0467f85 drm_agp_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1b11d81 drm_rmmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa80d4642 drm_agp_acquire
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa8fac8c4 drm_put_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xab14ec46 drm_mm_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xab3b51ee drm_mode_connector_detach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xab87f2ff drm_addmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xac18e5d8 drm_exit
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf0c3910 drm_addbufs_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb38621fb drm_vblank_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb53b59a8 drm_i2c_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5c74385 drm_gem_object_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5f012c9 drm_mode_connector_attach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xba5bf2e9 drm_ati_pcigart_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbcfd5319 drm_mode_config_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc02fcdd7 drm_get_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc152d57b drm_read
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc1d38128 drm_connector_property_get_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc2dcedbd drm_lock_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc32dd029 drm_gem_object_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc35e57f4 drm_idlelock_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc40f91cd drm_mode_config_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4c34390 drm_mode_connector_update_edid_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6794f16 drm_core_get_map_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8d82b44 drm_mode_detachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc94df9f8 drm_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xca7c6e6e drm_get_resource_start
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcbb9858d drm_mm_search_free_in_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd3fd54a drm_agp_unbind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf596a08 drm_mm_put_block
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfe4d6b5 drm_clflush_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd5023eec drm_vblank_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd65885f4 drm_core_ioremap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7c31136 drm_agp_bind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8f9c484 drm_debugfs_create_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xda9c98ad drm_framebuffer_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1b17221 drm_mm_get_block_range_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2409437 drm_ati_pcigart_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe36766fd drm_agp_bind_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe45e4da4 drm_poll
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5b750a6 drm_gem_vm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe821dd43 drm_mode_find_dmt
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe97fb6a0 drm_pci_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xea0ff28d drm_vblank_pre_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeabf8888 drm_crtc_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb327f8e drm_sysfs_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xee132da2 drm_mode_validate_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xee27abda drm_fasync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xefd9b042 drm_connector_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf08def74 drm_framebuffer_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf19d6070 drm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf52a04d5 drm_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5890676 drm_lock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6169038 drm_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf80c6c94 drm_agp_chipset_flush
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfbfc3a44 drm_mode_object_find
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfcac560a drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd0f6015 drm_property_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b4ed25f drm_helper_crtc_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x10610848 drm_fb_helper_check_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x112c8ee2 drm_helper_encoder_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x12d3ffd9 drm_fb_helper_blank
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1e63cc37 drm_fb_helper_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x29376527 drm_fb_helper_single_add_all_connectors
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x349ec993 drm_kms_helper_poll_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3ef0592a drm_kms_helper_poll_disable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x47d46106 drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x548f16dd drm_fb_helper_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5e4306ef drm_kms_helper_poll_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x65ef5026 drm_fb_helper_single_fb_probe
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x69abb1fa drm_helper_hpd_irq_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6f6b4e1a drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x71cc6790 drm_crtc_helper_set_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x720f86e5 drm_helper_disable_unused_functions
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x721a5b6f drm_fb_helper_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7fa5a1a8 drm_fb_helper_initial_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x83c996d2 drm_fb_helper_fill_fix
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8d6c03d1 drm_helper_resume_force_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x921fa7c7 drm_fb_helper_pan_display
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xae0442e9 drm_crtc_helper_set_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbdf2576e drm_helper_connector_dpms
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbf9e8487 drm_fb_helper_fill_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc1570492 i2c_dp_aux_add_bus
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd6720fd8 drm_fb_helper_setcmap
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf228305b drm_fb_helper_set_par
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf6af3891 drm_kms_helper_poll_enable
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x07787990 ttm_bo_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0a597d7b ttm_object_file_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x14153ded ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x16470a4b ttm_bo_mem_space
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1aa6e32d ttm_agp_backend_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1d89df73 ttm_suspend_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x225e68a8 ttm_base_object_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x226c364f ttm_bo_evict_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x22828d75 ttm_bo_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x22ee0078 ttm_object_file_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b88665a ttm_bo_move_memcpy
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2e09fbb1 ttm_bo_synccpu_write_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x34704ea7 ttm_global_item_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3472135a ttm_bo_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38816404 ttm_bo_kmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x39a1b267 ttm_object_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3c3c3af1 ttm_bo_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3f6d170b ttm_tt_populate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3fd155ed ttm_read_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x424ab2e0 ttm_fbdev_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x46e7de3d ttm_bo_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x47142bd1 ttm_bo_kunmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4ac167d5 ttm_bo_reserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4fb481ce ttm_bo_init_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5136dacd ttm_bo_wait_unreserved
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x66666d70 ttm_global_item_ref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7c0e8129 ttm_ref_object_base_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7dcb1e64 ttm_suspend_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7ecc6003 ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8928d531 ttm_base_object_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8abd9f06 ttm_bo_swapout_all
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x940438e7 ttm_write_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x985bdff9 ttm_mem_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9a534b33 ttm_base_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b2be07d ttm_write_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9d06ced6 ttm_vt_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa068577d ttm_vt_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa31f7c3 ttm_ref_object_add
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac843717 ttm_read_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xad981606 ttm_mem_global_alloc
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb4ac2d2b ttm_bo_validate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb5e69ce0 ttm_bo_clean_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb6695d57 ttm_object_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb70484eb ttm_lock_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc31dc832 ttm_bo_wait_cpu
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc422ab50 ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc6c44a39 ttm_bo_wait
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc6cf9185 ttm_bo_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc78f799e ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc9fcc4e8 ttm_bo_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xca09ceca ttm_mem_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcd8faebf ttm_page_alloc_debugfs
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe4e69eed ttm_mem_global_free
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe8e856f3 ttm_bo_move_ttm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe9c64dad ttm_bo_unmap_virtual
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf19a1fae ttm_tt_bind
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf3b2f8f5 ttm_bo_unreserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfb8b13c7 ttm_tt_set_placement_caching
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x0c038fbe i2c_pca_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x9c253472 i2c_pca_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x8df1e6d1 amd756_smbus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x00f87438 hpsb_iso_xmit_queue_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x050fac7a hpsb_unregister_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x073a3886 hpsb_get_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x07e751e7 csr1212_get_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b870cc4 hpsb_make_writepacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0edadd4e hpsb_iso_recv_set_channel_mask
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1064391e hpsb_selfid_complete
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x12d42bc5 hpsb_get_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1429be35 hpsb_node_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x18592bb5 hpsb_selfid_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1d8c2b5f hpsb_register_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x206821fc hpsb_make_streampacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x20dae81c hpsb_iso_shutdown
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x24424cfd hpsb_destroy_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x248df286 hpsb_make_readpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x316ebefd hpsb_make_phypacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x33246895 hpsb_reset_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x36fd0591 hpsb_set_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x37f29467 hpsb_iso_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3839ea65 hpsb_iso_wake
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3ae030f3 hpsb_unregister_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3b9c9061 __hpsb_register_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3dfc1356 hpsb_make_lock64packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4a1e3002 hpsb_add_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4af7d600 hpsb_make_lockpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x588a7f90 hpsb_iso_xmit_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5ff815b2 hpsb_unregister_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x60a8941a hpsb_resume_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x61b285f0 hpsb_iso_recv_listen_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6b3412b8 hpsb_iso_recv_release_packets
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6f33b530 hpsb_read_cycle_timer
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7046e886 csr1212_parse_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x70d6dfa2 hpsb_protocol_class
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x72bc1cf2 hpsb_iso_recv_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7774a702 hpsb_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7a5a55fa hpsb_set_hostinfo_key
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7e842a17 dma_region_mmap
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8eea90d6 hpsb_iso_xmit_sync
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9015e197 hpsb_alloc_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9155bdff hpsb_iso_recv_flush
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x91f7f548 hpsb_free_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9674a83c hpsb_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9bdae063 hpsb_iso_recv_unlisten_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa1215ff6 hpsb_node_fill_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa776e0c5 hpsb_free_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xab3a344d hpsb_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xae12a159 hpsb_packet_success
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb2151d79 hpsb_allocate_and_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb4e01f50 hpsb_iso_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb890b814 csr1212_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xba4b3f13 hpsb_iso_xmit_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbda5a7e3 hpsb_iso_n_ready
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc062ec84 hpsb_iso_stop
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc14cd0a3 hpsb_send_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc8cc69d1 hpsb_bus_reset
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcb30a5d9 hpsb_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9f1001 hpsb_iso_recv_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd316f8a1 hpsb_update_config_rom
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdcacfb63 hpsb_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xde15855e hpsb_alloc_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe4b734be hpsb_get_hostinfo_bykey
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf5b2951d hpsb_remove_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf9505107 hpsb_lock
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfaff8b74 hpsb_set_packet_complete_task
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfd13be74 hpsb_create_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfe2f3c64 hpsb_update_config_rom_image
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x18886fe3 ohci1394_stop_context
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xc739106b ohci1394_unregister_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xfec77209 ohci1394_register_iso_tasklet
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1ea5767b rdma_addr_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x32a8402c rdma_addr_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x602e2c26 rdma_resolve_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd6637eb4 rdma_copy_addr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x04f02aeb ib_send_cm_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0d5fc595 ib_send_cm_rej
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x34c5a3a3 ib_cm_notify
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x49224110 ib_send_cm_apr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x50afb5cc cm_class
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x51b127e0 ib_send_cm_rtu
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x566becba ib_send_cm_dreq
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x56bafeea ib_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6320d58f ib_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8d619664 ib_send_cm_mra
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa62accad ib_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbc10a116 ib_send_cm_sidr_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbfbb1183 ib_send_cm_sidr_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe55e5ab9 ib_send_cm_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xe93505bb ib_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf004c196 ib_send_cm_drep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf54e0cfb ib_send_cm_lap
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0bdf99fb ib_find_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0ef02eb6 ib_get_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1285b1ef ib_query_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x12d108a3 ib_umem_release
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1944a05e ib_unregister_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1c862d5b ib_query_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e8fef11 ib_query_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x28283942 ib_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x329eae58 ib_create_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x32f9614a ib_dispatch_event
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f2ed830 ib_modify_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x401dff41 ib_free_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x434bbc7c ib_find_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x441c7b48 ib_find_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x455d3f24 ib_create_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45f3301c ib_get_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x489509e4 ib_alloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4b221d40 ib_rereg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4b55c0aa ib_init_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x514f46b3 ib_query_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x59bd2b9a ib_query_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5b607058 ib_attach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5df9213f ib_alloc_fast_reg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6ca09875 ib_destroy_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e3e678f ib_alloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x72343372 ib_get_cached_lmc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73d16e3f ib_alloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x77d39864 ib_detach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7847dbeb ib_dealloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7a2a8e9f ib_register_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e7c0c0a ib_modify_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8a909f33 ib_destroy_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8ffb26a7 ib_modify_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9554764b ib_dealloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x968bb1e5 ib_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9749eff6 ib_register_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9a6f6733 ib_query_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d92b37a ib_dealloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e5f1012 ib_fmr_pool_unmap
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa46bd872 ib_create_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa5b15e57 ib_flush_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaaee23e5 ib_get_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae4bee93 ib_create_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb18964e0 ib_modify_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1af673e ib_alloc_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb499819a ib_modify_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb5815167 ib_get_dma_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb765721f ib_destroy_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbaa33ddf ib_unregister_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbd1c3701 ib_set_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbe3b562b ib_dereg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1184406 ib_query_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd095d546 ib_find_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1ae513b ib_modify_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd58004b1 ib_umem_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd74a950e ib_reg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd7ce9f6c ib_umem_page_count
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xde884b8c ib_alloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe1845fe6 ib_destroy_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea4c8083 ib_create_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xece92ee5 ib_fmr_pool_map_phys
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf01dc16a ib_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf1199bda ib_query_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa2bc39e ib_dealloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbaf866c ib_resize_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xffa0f5f6 ib_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0ba3c957 ib_post_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1843629d ib_register_mad_snoop
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x38c27069 ib_modify_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3f1fd9d8 ib_process_mad_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x42964e6c ib_get_rmpp_segment
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x4b01f058 ib_cancel_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x63aeacb3 ib_register_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa73b2115 ib_unregister_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xda83c556 ib_create_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xdd40a4fc ib_free_recv_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe7ffdd3b ib_redirect_mad_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf929d3cf ib_free_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x0f92a467 ib_sa_service_rec_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2113cdda ib_sa_cancel_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x522399f8 ib_sa_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5328d7a6 ib_sa_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8315f366 ib_init_ah_from_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x92733a2f ib_init_ah_from_mcmember
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x94ebbd7c ib_sa_get_mcmember_rec
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9a1cd50d ib_sa_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xfab2ca97 ib_sa_path_rec_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3329cff4 iw_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x43b48084 iw_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x688aea92 iw_cm_connect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x70d3e3b5 iw_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9976fb77 iw_cm_reject
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xd97157c1 iw_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf04d563c iw_cm_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xf7079523 iw_cm_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x147749a4 rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x17964d60 rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1f9f4404 rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2a114c2d rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x31a3ffc6 rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x43e308df rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5418dfc6 rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x55f77377 rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x65f9d177 rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6ce5e61e rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9189d38a rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x92b85098 rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9690878d rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x98fb0289 rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xabe4acc4 rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xafe47cf5 rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdaf606b7 rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfa5d5a72 rdma_resolve_addr
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x249c93ef gameport_open
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x5f894de1 gameport_unregister_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x906e54ae __gameport_register_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xa995a737 gameport_set_phys
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xcfd74735 gameport_close
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xdc77763f gameport_start_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xed3cf08e __gameport_register_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xf5533452 gameport_unregister_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xfe84b55f gameport_stop_polling
+EXPORT_SYMBOL drivers/input/input-polldev 0x140adbb9 input_register_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x26855a0d input_allocate_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x3b147bc3 input_unregister_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xe9e7670a input_free_polled_device
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x3f5fa103 ad714x_disable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x4cfd97c4 ad714x_remove
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x8ec4b3b4 ad714x_enable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xa2e7c90b ad714x_probe
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x0931a0bb sparse_keymap_free
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x43dd6a37 sparse_keymap_report_event
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x4645526e sparse_keymap_report_entry
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x57830e6d sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x6f8345d6 sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xbbcde98d sparse_keymap_setup
+EXPORT_SYMBOL drivers/md/dm-log 0x11aa5a20 dm_dirty_log_type_register
+EXPORT_SYMBOL drivers/md/dm-log 0x6aeaab05 dm_dirty_log_create
+EXPORT_SYMBOL drivers/md/dm-log 0xa5f71c0e dm_dirty_log_destroy
+EXPORT_SYMBOL drivers/md/dm-log 0xe7142cb0 dm_dirty_log_type_unregister
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x2715c9e3 dm_exception_store_destroy
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x379d4ceb dm_snap_cow
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x39a4ecab dm_exception_store_type_register
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x47bdaa4b dm_exception_store_create
+EXPORT_SYMBOL drivers/md/dm-snapshot 0xd6131277 dm_exception_store_type_unregister
+EXPORT_SYMBOL drivers/md/md-mod 0x07a48189 mddev_congested
+EXPORT_SYMBOL drivers/md/md-mod 0x12087d10 bitmap_close_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x14412109 bitmap_cond_end_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x212bdac3 unregister_md_personality
+EXPORT_SYMBOL drivers/md/md-mod 0x252ad494 md_error
+EXPORT_SYMBOL drivers/md/md-mod 0x2ba8200c register_md_personality
+EXPORT_SYMBOL drivers/md/md-mod 0x2bb56950 md_write_start
+EXPORT_SYMBOL drivers/md/md-mod 0x33fbb0a8 md_integrity_register
+EXPORT_SYMBOL drivers/md/md-mod 0x3c83f605 bitmap_endwrite
+EXPORT_SYMBOL drivers/md/md-mod 0x3ff58a5c bitmap_start_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x412c7cbb md_barrier_request
+EXPORT_SYMBOL drivers/md/md-mod 0x41a1dfce bitmap_unplug
+EXPORT_SYMBOL drivers/md/md-mod 0x6e689d89 md_integrity_add_rdev
+EXPORT_SYMBOL drivers/md/md-mod 0x6ef516d1 md_set_array_sectors
+EXPORT_SYMBOL drivers/md/md-mod 0x805f422a md_write_end
+EXPORT_SYMBOL drivers/md/md-mod 0x864a393f bitmap_end_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x8a9d4d04 md_check_recovery
+EXPORT_SYMBOL drivers/md/md-mod 0xbe8e869f md_wakeup_thread
+EXPORT_SYMBOL drivers/md/md-mod 0xc704e3c8 md_wait_for_blocked_rdev
+EXPORT_SYMBOL drivers/md/md-mod 0xd46a6d01 md_register_thread
+EXPORT_SYMBOL drivers/md/md-mod 0xd82ce0a1 md_unregister_thread
+EXPORT_SYMBOL drivers/md/md-mod 0xe2e92b16 md_done_sync
+EXPORT_SYMBOL drivers/md/md-mod 0xe8a4b18f bitmap_startwrite
+EXPORT_SYMBOL drivers/md/md-mod 0xf95eeb3f md_check_no_bitmap
+EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul
+EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp
+EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv
+EXPORT_SYMBOL drivers/md/raid6_pq 0x7456cc61 raid6_empty_zero_page
+EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x15cc6dd9 ir_raw_handler_register
+EXPORT_SYMBOL drivers/media/IR/ir-core 0xa48c0939 ir_raw_handler_unregister
+EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x8cf4257d max2165_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xda1d79f5 mc44s803_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x8cb914f5 mt2060_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x3c01de6c mt2131_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0xebf70edc mt2266_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x98c1a90a mxl5005s_attach
+EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x49402f7b qt1010_attach
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x9df7cb3a xc2028_attach
+EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xacfeec95 xc5000_attach
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x07984559 flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x10550172 flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1e72d6f1 flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2856bb71 flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2c232d40 flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x4c8fa545 flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6c97a04c flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x708954a4 flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7609ddab flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x811d7deb flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9831abcf flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa903693b flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb0f3b6ff flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xb6479b69 flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xbc509105 flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd8415809 flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe3e2a774 flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe5bc1e58 flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xe8fa84ba flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfb63149a flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xa9a1a27c bt878_start
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xc8e7d44b bt878_stop
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd94f4d8e bt878_device_control
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xfbc73a19 bt878
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x10d06450 dst_error_recovery
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x16cc883e dst_comm_init
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x481489d6 rdc_reset_state
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x62f5d2fd dst_pio_disable
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x63ed50d4 dst_error_bailout
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x718cdf4f write_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x9c48a962 dst_attach
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xb9321dcf dst_wait_dst_ready
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xce158c36 read_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x6c529ca4 dst_ca_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0aa06fc8 dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0b33df26 dvb_ca_en50221_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x19591134 dvb_ringbuffer_read
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x22d6ce4a dvb_ringbuffer_avail
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x28ee2ae8 dvb_ringbuffer_flush
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3bbf52eb dvb_dmx_swfilter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3e4cb810 dvb_generic_open
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3eadfc98 dvb_dmxdev_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3f7224d5 dvb_ringbuffer_read_user
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4d3b9a9c dvb_ringbuffer_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x57b6892f dvb_ca_en50221_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x58001974 dvb_dmx_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x59f1f531 dvb_dmx_swfilter_packets
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7056f37d dvb_unregister_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x78d62338 dvb_ringbuffer_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7a8725d5 dvb_generic_ioctl
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x7ba5d8bd dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x82945723 dvb_net_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8691e1a1 dvb_register_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8881259f dvb_dmx_swfilter_204
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8ace7da0 dvb_dmxdev_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8e47dce5 dvb_ringbuffer_empty
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x8f103545 dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9b0a0d96 dvb_unregister_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa45850a7 dvb_net_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa76963a0 dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb0d9645b dvb_generic_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb27d23f6 dvb_frontend_detach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbafde817 dvb_dmx_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xcf41c6f5 dvb_register_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd629eb12 dvb_unregister_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdb576668 dvb_ringbuffer_free
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe110dad1 dvb_frontend_reinitialise
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe2430d96 dvb_register_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4e9d56a6 dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x75cd0c85 dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x791e68d6 dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xceeb3637 usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xebc8ec52 dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xec85ee4f dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xfcc7aee1 dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xfd68c53d af9005_rc_decode
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x2d84d0aa dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x3ac0e1b6 dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x3ea280ee dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x659d0c10 dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x6bc66a33 dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x72e2dd3e dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x77fd2bf7 dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb8910c00 dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb8bc3f31 dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xd71dfa0b dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xe4544c67 dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0xfc91d887 af9013_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x4b1c5318 atbm8830_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0x2ca5cfdd au8522_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x7d951866 bcm3510_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0x3b0fc493 cx22700_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0x11c800ed cx22702_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0xd06564c0 cx24110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x18d3f58c cx24113_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0xe4c327a1 cx24113_agc_callback
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0xeb986896 cx24116_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x58515265 cx24123_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x7fc7ca16 cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7b3f7ac0 dib0070_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x9b154d9f dib0070_get_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xac9b96f8 dib0070_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xc71714f3 dib0070_ctrl_agc_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xfe2f43b6 dib0070_set_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x2e7ee542 dib0090_gain_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x2fc695b5 dib0090_get_current_gain
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8553aa0c dib0090_get_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x87f2a97f dib0090_pwm_gain_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x941666b7 dib0090_register
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xe2623b1c dib0090_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xec75db17 dib0090_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xf97c7e1e dib0090_dcc_freq
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0xf4646b48 dib3000mb_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x39d0d2a4 dib3000mc_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x743f5d89 dib3000mc_pid_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x7b98cbc7 dib3000mc_set_config
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x7eed7e6d dib3000mc_pid_parse
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x9ca426c7 dib3000mc_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0xe5cec58a dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x13c49dab dib7000m_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0xec3adda2 dib7000m_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x297c24ed dib7000pc_detection
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x2a64d2ea dib7000p_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x2eed67bd dib7000p_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x546970ed dib7000p_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x96f86de7 dib7000p_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd0fbae0e dib7000p_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xe10661bb dib7000p_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xf7608d32 dib7000p_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x380183e4 dib8000_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x41260a11 dib8000_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x52663133 dib8000_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x721288dc dib8000_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x79273c66 dib8000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x863cddda dib8000_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x9e91a059 dib8000_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc5d412a8 dib8000_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xef5e1db6 dib8000_pwm_agc_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xef7bc51b dib8000_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xfec8ac03 dib8000_get_adc_power
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x0abe010b dibx000_exit_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x3ea1f987 dibx000_get_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x6fa09692 dibx000_reset_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xe2abbd97 dibx000_init_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xaf14316f ds3000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xaf9c13e9 dvb_pll_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x6de5d7c4 isl6405_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0x4fdf965b isl6421_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xb6522efa itd1000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x55062ec8 l64781_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0x9ade53b4 lgdt3305_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xc2f60566 lgdt330x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0xe3ffab2b lgs8gxx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x36809c79 lnbp21_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0x51cfa79a lnbh24_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x64061f6d mb86a16_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x01677c24 mt312_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0xff0cfaa6 mt352_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0x89c986c7 nxt200x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0x1b4adae3 nxt6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0xe9bfff25 or51132_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x82069e26 or51211_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xa6633a2f s5h1409_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xa13d29f9 s5h1411_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x3221f5f9 s5h1420_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x5ebc5872 s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0xdde62e24 si21xx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x7a6bfe13 sp8870_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x48e39279 sp887x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x6a7380fc stb0899_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0x345aecf6 stb6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xff1f0eb0 stb6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xce31503f stv0288_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0x269730be stv0297_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0xd89f3cc2 stv0299_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0x90115889 stv0900_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x146ec186 stv090x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x76f8b274 stv6110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0x595bc2ea stv6110x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0xe8e73aad tda10023_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0x4060ab5e tda10048_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x81c7131c tda10045_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0xe8d632a0 tda10046_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0x54223335 tda10086_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0x125bcbef tda8083_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x013922f9 tda826x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0x6781bcc1 ves1820_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x6572ed08 ves1x93_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x9237d8b6 zl10036_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x27327660 zl10039_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0xcb9d4b1a zl10353_attach
+EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x4fff37bd ttpci_eeprom_parse_mac
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x12cebca3 ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0x3909bd69 ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8550bb3c bttv_sub_unregister
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xb886e586 bttv_get_pcidev
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xd7adcf76 bttv_sub_register
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x7345fb24 btcx_riscmem_alloc
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xb2394b22 btcx_riscmem_free
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips
+EXPORT_SYMBOL drivers/media/video/cpia 0x32f0bf87 cpia_register_camera
+EXPORT_SYMBOL drivers/media/video/cpia 0x6d17c693 cpia_unregister_camera
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x6e19e1bf cx18_release_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x75f23eeb cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x87c38515 cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xbb413c13 cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xc17f0950 cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x74fa213b cx231xx_register_extension
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x999dcf12 cx231xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x518070cc vp3054_i2c_probe
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x9cfb8b56 vp3054_i2c_remove
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x1ab31beb cx88_set_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x59342a0f cx8800_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x6473a0ee cx88_get_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x8ca936e8 cx88_video_mux
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x90e8115f cx88_enum_input
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xc69d0551 cx88_set_freq
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x4a16f951 cx8802_buf_queue
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x63b50499 cx8802_cancel_buffers
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x8233fce8 cx8802_unregister_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x94732695 cx8802_get_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xb5259abb cx8802_buf_prepare
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xe99f66c5 cx8802_register_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x05da4af3 cx88_sram_channel_dump
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x0adbbdd7 cx88_risc_stopper
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x171c69c2 cx88_set_stereo
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x1c5d2d48 cx88_ir_start
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3185b27c cx88_sram_channel_setup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x5a0b2f7b cx88_set_scale
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x663a9b01 cx88_core_get
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x66f61814 cx88_core_irq
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8166d684 cx88_free_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8405686d cx88_reset
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8a475680 cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8d8c808a cx88_risc_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8e844c94 cx88_vdev_init
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8f78a2c1 cx88_ir_stop
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa4e93280 cx88_get_stereo
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa5bb1aa7 cx88_core_put
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb705ebcb cx88_set_tvaudio
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb9c6e06d cx88_set_tvnorm
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc4a47289 cx88_risc_databuffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd242244c cx88_newstation
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf487f0ce cx88_shutdown
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf99b36ef cx88_wakeup
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x1af6f2b8 em28xx_register_extension
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0xc94a2ff1 em28xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x0e6b0801 gspca_get_i_frame
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x3559c03c gspca_resume
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x3e563673 gspca_dev_probe
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x7d96319e gspca_auto_gain_n_exposure
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x82c73343 gspca_frame_add
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xade8bcfe gspca_suspend
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xfe8804a6 gspca_disconnect
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0c402ffe ivtv_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x27c56f14 ivtv_clear_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5486b7e0 ivtv_api
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x5a9a755c ivtv_init_on_first_open
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x84045ed7 ivtv_vapi
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x91517c5b ivtv_set_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x9c7ed237 ivtv_udma_setup
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc3110706 ivtv_udma_unmap
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xd1fd95f1 ivtv_vapi_result
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xde111ba6 ivtv_udma_alloc
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xe4399c5d ivtv_udma_prepare
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0071287c saa7134_pgtable_build
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x2ac5ee45 saa7134_devlist_lock
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x45bdaaff saa7134_pgtable_alloc
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4c15217a saa7134_ts_unregister
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4e3dd04a saa7134_dmasound_init
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x72849a12 saa7134_set_gpio
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x783e96a3 saa7134_set_dmabits
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x95f0ffb3 saa7134_dmasound_exit
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa7dc4b26 saa7134_tvaudio_setmute
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xad4e3a2f saa7134_ts_register
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xcb38115e saa7134_pgtable_free
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd0f61df5 saa_dsp_writel
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x1ac8f090 soc_camera_host_register
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x78c0c111 soc_camera_xlate_by_fourcc
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x9d8dbbf6 soc_camera_apply_sensor_flags
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xbdb68273 soc_camera_host_unregister
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc
+EXPORT_SYMBOL drivers/media/video/tveeprom 0xca896c96 tveeprom_read
+EXPORT_SYMBOL drivers/media/video/tveeprom 0xdd68802c tveeprom_hauppauge_analog
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x04401a3a RingQueue_WakeUpInterruptible
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x17a73fb2 usbvideo_AllocateDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x1a26ad15 RingQueue_Dequeue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x46aaa370 usbvideo_RegisterVideoDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x53573292 usbvideo_register
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x8d2dda41 usbvideo_Deregister
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x93a9d732 usbvideo_TestPattern
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd4201e63 usbvideo_DeinterlaceFrame
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xe63fb6e9 RingQueue_Enqueue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xfb3c39e0 RingQueue_Flush
+EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xa0ccd025 v4l_compat_translate_ioctl
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xbcc1c0fe v4l2_chip_match_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xf5a104bd v4l2_chip_ident_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x4219219b v4l2_m2m_mmap
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x4f2d29d0 v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xa88a19ca v4l2_m2m_job_finish
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xce11afd2 v4l2_m2m_get_vq
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x156ef03d videobuf_dvb_dealloc_frontends
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x6194334a videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x67f82038 videobuf_dvb_register_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x8e76657a videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xb790dc01 videobuf_dvb_find_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xd64f3796 videobuf_dvb_get_frontend
+EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period
+EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ba23eab video_devdata
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl
+EXPORT_SYMBOL drivers/media/video/videodev 0x5f0ef501 video_unregister_device
+EXPORT_SYMBOL drivers/media/video/videodev 0x717ac0c0 video_register_device
+EXPORT_SYMBOL drivers/media/video/videodev 0x7850b860 video_usercopy
+EXPORT_SYMBOL drivers/media/video/videodev 0x91a619f8 video_register_device_no_warn
+EXPORT_SYMBOL drivers/media/video/videodev 0xb4f9dee3 video_device_alloc
+EXPORT_SYMBOL drivers/media/video/videodev 0xb9f735f7 video_device_release_empty
+EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct
+EXPORT_SYMBOL drivers/media/video/videodev 0xec4265f1 video_ioctl2
+EXPORT_SYMBOL drivers/media/video/videodev 0xf0d5f412 video_device_release
+EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x4dcd61b5 videocodec_attach
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x541fe2d8 videocodec_register
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x729b5be4 videocodec_unregister
+EXPORT_SYMBOL drivers/media/video/zoran/videocodec 0x7dbffcea videocodec_detach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x050f3336 mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1737678d mpt_halt_firmware
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2b352ea3 mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x324030a2 mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x33d486c0 mpt_attach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x345d8d7b mpt_device_driver_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x41535d13 mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4229eb39 mpt_HardResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5aa9641f mpt_event_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x60573e2e mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x644bb3be mpt_resume
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6e5bb2ce mpt_alloc_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6e735812 mpt_config
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7366a926 mpt_send_handshake_request
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x75ccfb60 mptbase_sas_persist_operation
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x79bbe2f2 mpt_findImVolumes
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7b4d8943 mpt_GetIocState
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7bab62b2 mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7cf2a326 mpt_detach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8159638f mpt_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x89895415 mpt_free_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x93cdb3bf mpt_print_ioc_summary
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9858b165 mpt_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa7814e81 mpt_verify_adapter
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb50bf318 mpt_put_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xda1c9c42 mpt_reset_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xde4c67ac mpt_get_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe2ef384f mpt_free_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf2ec20e1 mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x02a83ac8 mptscsih_resume
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x09336ce7 mptscsih_abort
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2302b331 mptscsih_raid_id_to_num
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2f2ec381 mptscsih_slave_configure
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x429fc186 mptscsih_ioc_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4be6b1ad mptscsih_get_scsi_lookup
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x56df12f6 mptscsih_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5d37575d mptscsih_taskmgmt_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5dc42ef0 mptscsih_is_phys_disk
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6a04563b mptscsih_proc_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6fcef498 mptscsih_bios_param
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x740c5e4b mptscsih_shutdown
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x78151712 mptscsih_remove
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7c4b0f21 mptscsih_host_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x86cce00b mptscsih_bus_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9c1bd2b7 mptscsih_event_process
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa0adde4a mptscsih_host_attrs
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa60fcf2d mptscsih_dev_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbd5458b6 mptscsih_qcmd
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc27f9c72 mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xced98738 mptscsih_change_queue_depth
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xebc9b7ff mptscsih_scandv_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf183ccdf mptscsih_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf7312db9 mptscsih_io_done
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf7c0898f mptscsih_slave_destroy
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfb687159 mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x02654d5b i2o_parm_issue
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x037903a6 i2o_event_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x0985b96a i2o_status_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x182f8c62 i2o_driver_notify_device_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2947e0c5 i2o_exec_lct_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5a199e41 i2o_parm_table_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x62cfde1a i2o_msg_get_wait
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x63d97187 i2o_driver_notify_controller_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6afa9c2e i2o_parm_field_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6ee161b4 i2o_driver_notify_device_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7185a01e i2o_driver_unregister
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x792f83ff i2o_device_claim
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8a738d98 i2o_device_claim_release
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9104ff1a i2o_iop_find_device
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa86bb4c5 i2o_driver_notify_controller_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xabdac4a1 i2o_msg_post_wait_mem
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xeb9b2625 i2o_driver_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf237065d i2o_find_iop
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xd41f5ecf pasic3_write_register
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xddc2905a pasic3_read_register
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x04393573 mc13783_irq_free
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x0e8b7706 mc13783_irq_request
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2c7cc069 mc13783_irq_unmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3adca79f mc13783_reg_rmw
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x5b2431c5 mc13783_reg_write
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x6c0b5c17 mc13783_irq_request_nounmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x889dfd8f mc13783_irq_ack
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x8d791a72 mc13783_unlock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x9f77bb50 mc13783_lock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xa2655112 mc13783_irq_status
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xa9c5adaf mc13783_irq_mask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xd8349b9d mc13783_reg_read
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x0442a637 ad_dpot_remove
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x7f18e5d0 ad_dpot_probe
+EXPORT_SYMBOL drivers/misc/c2port/core 0x2fbe70d2 c2port_device_unregister
+EXPORT_SYMBOL drivers/misc/c2port/core 0x9ae05ca6 c2port_device_register
+EXPORT_SYMBOL drivers/misc/ioc4 0x73163a84 ioc4_register_submodule
+EXPORT_SYMBOL drivers/misc/ioc4 0xafc57aae ioc4_unregister_submodule
+EXPORT_SYMBOL drivers/misc/tifm_core 0x156c40f2 tifm_eject
+EXPORT_SYMBOL drivers/misc/tifm_core 0x164409d9 tifm_register_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work
+EXPORT_SYMBOL drivers/misc/tifm_core 0x402756bc tifm_add_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x4582434f tifm_unmap_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x6b4c4fb9 tifm_free_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x8d0c156b tifm_remove_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x8ee33ccc tifm_free_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x947b9f1d tifm_unregister_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0xb270d593 tifm_map_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0xd2b35d7e tifm_has_ms_pif
+EXPORT_SYMBOL drivers/misc/tifm_core 0xda04f8e0 tifm_alloc_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0xfda3bd89 tifm_alloc_adapter
+EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xf10f71f3 mmc_cleanup_queue
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x184b82fb mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x2fbe8489 mmc_alloc_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x324a3c48 mmc_wait_for_app_cmd
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x492368af mmc_align_data_size
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x4d8b999b mmc_free_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x4f2f1475 mmc_unregister_driver
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x53c3966a mmc_add_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x56df5a59 mmc_regulator_set_ocr
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x5c6f4a3a mmc_detect_change
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x61e3dfe8 mmc_suspend_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x63c1370b mmc_wait_for_req
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x6d7e6502 mmc_host_enable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x73c0cdd3 mmc_host_disable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x81182f42 mmc_set_data_timeout
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8248e637 mmc_card_can_sleep
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x84e299d9 mmc_try_claim_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8506a879 mmc_remove_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x8c4044c9 mmc_card_awake
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x951e94f7 mmc_card_sleep
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x960bec87 mmc_power_restore_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9949b3a4 mmc_resume_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9981c613 mmc_release_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xad356ee6 mmc_request_done
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb68a942f mmc_wait_for_cmd
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd54e97ca __mmc_claim_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd987a031 mmc_register_driver
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf494f618 mmc_regulator_get_ocrmask
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf77329ff mmc_power_save_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xfe508f3b mmc_host_lazy_disable
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x2ed63d47 cfi_varsize_frob
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x8d3fa55c cfi_read_pri
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xae60f293 cfi_fixup
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x20e43644 do_map_probe
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x2402b46a map_destroy
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x53106e88 unregister_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x6bd22f87 register_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xef7efb72 mtd_do_chip_probe
+EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x19b6a0f1 lpddr_cmdset
+EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x77902488 simple_map_init
+EXPORT_SYMBOL drivers/mtd/mtd 0x1865272f del_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtd 0xe00e91ac add_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x26d3300a mtd_concat_destroy
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x7a40854b mtd_concat_create
+EXPORT_SYMBOL drivers/mtd/nand/nand 0xa9fa3663 nand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand 0xdea55c5b nand_default_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x40503212 nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xc30f974c nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x07a49e8e onenand_default_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x10f4a650 flexonenand_region
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x54dabb7c onenand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x66e3ab24 onenand_addr
+EXPORT_SYMBOL drivers/net/8390 0x1afb58ef ei_poll
+EXPORT_SYMBOL drivers/net/8390 0x357cd965 ei_get_stats
+EXPORT_SYMBOL drivers/net/8390 0x576556fa ei_netdev_ops
+EXPORT_SYMBOL drivers/net/8390 0x636a2a25 ei_start_xmit
+EXPORT_SYMBOL drivers/net/8390 0x77b329cd NS8390_init
+EXPORT_SYMBOL drivers/net/8390 0x8aec8dd0 ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390 0x8db4f644 __alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/8390 0x8e304fb4 ei_tx_timeout
+EXPORT_SYMBOL drivers/net/8390 0xca1a60c1 ei_open
+EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt
+EXPORT_SYMBOL drivers/net/8390 0xdecac420 ei_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x1123540f arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4106e5a9 arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x978792c0 arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9deb9d29 alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xaa0db3db arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xafd78223 arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xb8d03a2c arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xc56ea9ed arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xce950986 arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdf99a238 arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x39674d03 com20020_check
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x77b6f981 com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0xed165fc0 com20020_found
+EXPORT_SYMBOL drivers/net/bnx2 0xe61f8b8c bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/bnx2x 0xd27f7a28 bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/cnic 0x4db4b29c cnic_register_driver
+EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x01e71ab9 cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x0904853a t3_l2e_free
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x104f1042 dev2t3cdev
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x179501d7 t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x20a5506c t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x31ef91a3 t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5219a055 cxgb3_register_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6b5961d2 cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x76669d66 cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9fdeec54 cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xabdab6bb cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbd002bd4 cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xc7908c37 t3_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xdd5c1f44 cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf5f966c2 cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf76fc609 cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x024d5c3f cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x0d1e0e01 cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x15d8f3d4 cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x1af65b19 cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3377b9fd cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3af71209 cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3e5d3d29 cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x409d140a cxgb4_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x550c299b cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5e4c268a cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6978bb6f cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x717257ef cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x72130b9b cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x762d1ad6 cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8e03a3db cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa8eec25a cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc0b59e07 cxgb4_create_server
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xcbf6b8a4 cxgb4_netdev_by_hwid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xce53d643 cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xdea440e0 cxgb4_create_server6
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x11b27167 hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x5655b734 hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x83f87a30 hdlcdrv_register
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc25a30de hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd9d4b561 hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x169d2f81 sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2050fc9d sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x231f1921 sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x26c93ec4 sirdev_raw_write
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x401ae594 sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5185b3a2 sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x55547fff irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x56088cac irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xaec52296 sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe8e64ab2 sirdev_get_instance
+EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage
+EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl
+EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart
+EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag
+EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe
+EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an
+EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok
+EXPORT_SYMBOL drivers/net/mii 0x077cdb75 mii_ethtool_gset
+EXPORT_SYMBOL drivers/net/mii 0x228aaa5c generic_mii_ioctl
+EXPORT_SYMBOL drivers/net/mii 0x47fbf902 mii_check_gmii_support
+EXPORT_SYMBOL drivers/net/mii 0x508e21e0 mii_check_media
+EXPORT_SYMBOL drivers/net/mii 0x6ef3d503 mii_ethtool_sset
+EXPORT_SYMBOL drivers/net/mii 0x707d1f1b mii_nway_restart
+EXPORT_SYMBOL drivers/net/mii 0xd6a2d0eb mii_link_ok
+EXPORT_SYMBOL drivers/net/mii 0xe9779c23 mii_check_link
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x7fac52ea alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x9759606b free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp_generic 0x1e3a3b46 ppp_channel_index
+EXPORT_SYMBOL drivers/net/ppp_generic 0x37acd1d4 ppp_unregister_compressor
+EXPORT_SYMBOL drivers/net/ppp_generic 0x3a5f2f69 ppp_input_error
+EXPORT_SYMBOL drivers/net/ppp_generic 0x3ad58832 ppp_register_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0x4489ec61 ppp_unit_number
+EXPORT_SYMBOL drivers/net/ppp_generic 0x5b0cb34a ppp_output_wakeup
+EXPORT_SYMBOL drivers/net/ppp_generic 0x689f7890 ppp_register_compressor
+EXPORT_SYMBOL drivers/net/ppp_generic 0x768a9e0a ppp_unregister_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0x8b23a1fc ppp_input
+EXPORT_SYMBOL drivers/net/ppp_generic 0xbb6b2721 ppp_dev_name
+EXPORT_SYMBOL drivers/net/ppp_generic 0xd39a8c11 ppp_register_net_channel
+EXPORT_SYMBOL drivers/net/pppox 0x3315adcd register_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0x569a486f pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/pppox 0x8179dedb pppox_ioctl
+EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember
+EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init
+EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free
+EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss
+EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress
+EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress
+EXPORT_SYMBOL drivers/net/sungem_phy 0xe96654e4 mii_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x0c1f5ac7 tms380tr_open
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x376f642f tms380tr_close
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x92028840 tmsdev_term
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa51170fc tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xcfaa6dd3 tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x01fa2496 hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x096fcd1e hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x2762ddc5 unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x601a43ff detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x79a6d717 hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x816bf482 hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x828ae6f5 hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x8848c7c0 unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xcefc2dc6 register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xd4036843 attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xf1c6c03a alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x7f50495f i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x03051964 reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x314a58f5 stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x9b46e2bd init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x3d083a16 ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x54d3e3eb ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x5c15ff1d ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6f11cb4c ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x21afe124 ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3a7d2be2 ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x56465b76 ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x78b4bcd1 ath9k_cmn_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8caf2c63 ath9k_cmn_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xa8f2f695 ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc6194029 ath9k_cmn_rx_skb_preprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0376f063 ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x06569327 ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x06bfa0d8 ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x074baca5 ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x08446847 ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d267c5f ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f5681ba ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x141b195e ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x147f448e ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x17ff71ee ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x18415a48 ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1ab9bf8f ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1dd2a144 ath9k_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f06c5f7 ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x21c3f12f ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x263c0915 ath9k_hw_keyisvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x280fe0b7 ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b3249e7 ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2cb0a00c ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d2996fe ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3246e3ea ath9k_hw_stoptxdma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38c06f5b ath9k_hw_getcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3b589fd8 ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3feb60c4 ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x436e3ee2 ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x441edd44 ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x49413d93 ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x497664e7 ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a70bf0c ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x54d82828 ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56db8bc6 ath9k_hw_setmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x56e6e583 ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c8ca313 ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5cafe783 ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e437949 ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x662f93b9 ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6888400b ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x689c9510 ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7476a67f ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75acf0bb ath9k_hw_extend_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7929ba9f ath9k_hw_setcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7d1d8be5 ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82264b9d ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x840c16f9 ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x86094116 ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x860ae3d7 ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x870ea778 ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c191141 ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c1c3045 ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d8d1a81 ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x90be16c2 ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x960ed3c2 ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9865de9b ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x989fbb54 ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x99a991e7 ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa07921ee ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa185bba6 ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa55a5f1e ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa5ca2a17 ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa784a152 ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xae66129b ath9k_hw_cleartxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3b12c0d ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb3c68116 ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba992127 ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe2b39a3 ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xca8199fa ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcfcb1223 ath9k_hw_stoppcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd7a48ba4 ath9k_hw_procmibevent
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xddb1b906 ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdfacaaee ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe218ab62 ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe3fa94f1 ath9k_hw_set_keycache_entry
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe57a83d8 ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7737b72 ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xea39d15e ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf01101c0 ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7ec0f2a ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf94a0d19 ath9k_hw_keysetmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf997606c ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa413e06 ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfb386d7b ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfbabd2a3 ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x06c5bfd4 stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x2cdb9a86 atmel_open
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x49e2b933 init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x11319904 hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x12e74d9a hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1e62a265 hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2a79ad9b hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2c8595d7 hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3f9b0bca hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x460138df hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4e011173 prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5448f57a hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5edaf702 hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x62702e64 hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6bdd4bea hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x75f59df0 hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x99f74420 hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa4e00f4f hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2809bc8 hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbacead34 hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcdd61fcb hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd571fb96 hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdaba99d4 hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdbaffe7f hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf02f00af hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf19d0b26 hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf290656e hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfc039492 hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0c03611c libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x14208ecf libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x14a8ace3 libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x165eb4ef libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x17e9ab4d libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x27f1efbd libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x35528664 libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x456cf9cd libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4a12fe8c libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4b587fc9 libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4fc82084 libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x51393389 libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x564592c2 libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5b58e372 libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x97a77ff9 libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb86742e2 alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbee171ac free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc1910473 libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd9fb405f libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xead76160 libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfa296c09 libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03a0caa5 iwl_sta_modify_ps_wake
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03f2e8c5 iwl_bg_start_internal_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x04a4a29f iwl_reply_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0693cd00 iwl_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0732637d iwl_tt_exit_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x098644c1 iwl_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x099551d8 iwl_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x10836b9d iwl_toggle_tx_ant
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x13292a4a iwl_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x15b9425f iwl_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x15fce0ae iwl_sta_tx_modify_enable_tid
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1c0c5625 iwl_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x20a1de1c iwl_sta_rx_agg_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x248ec705 iwl_sensitivity_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2a5ee552 iwl_init_sensitivity
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2dbb2cf2 iwl_led_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2ddf38f1 iwl_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2f0c079d iwl_rx_missed_beacon_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x311392b2 iwl_eeprom_check_version
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x31bd654d iwl_tt_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3246d211 iwl_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x343073cc iwl_bg_scan_check
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3433db48 iwl_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35a05573 iwl_tt_enter_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35e9df17 iwl_tx_ant_restriction
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x36b318ea iwl_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x375ad06e iwl_configure_filter
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x389b8bbf iwl_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3c53dc49 iwl_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3f519fbf iwl_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x402e8c76 iwl_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x40916d6c iwl_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x40e612b5 iwl_set_hw_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41623d34 iwl_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x416cb987 iwl_hw_detect
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x42112e7d iwl_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x44825525 iwl_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x458b28c2 iwl_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x45f368c7 iwl_set_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x470a7113 iwl_calib_free_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4d7aa0e7 iwl_ht_enabled
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e79d7c5 iwl_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5093646a iwl_bg_abort_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x50b4f244 iwl_rx_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x515ad16f iwl_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x599577c1 iwl_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x608a1e92 iwl_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x60cffa9a iwl_update_tkip_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x62727d56 iwl_calib_set
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x684baad1 iwl_recover_from_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x73f726f7 iwl_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7501af7a iwl_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x772c7fda iwlcore_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7a4d94ab iwlcore_eeprom_release_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7a9e4e6f iwl_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x80420a5f iwl_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x81060ea8 iwl_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x82d9b477 iwl_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8314c72a iwl_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8517edf8 iwl_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x85720fa6 iwl_bg_scan_completed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x86c4fb01 iwl_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x873d110f iwl_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8993854a iwl_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a9302cd iwl_verify_ucode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x908f6ad9 iwl_dump_fh
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x93353b64 iwl_free_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x93ec1191 iwl_sta_rx_agg_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x940c51aa iwlcore_rts_tx_cmd_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x96eac4a2 iwl_free_tfds_in_queue
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9790412a iwl_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x97b7ebf3 iwl_remove_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9b0f2ad8 iwl_set_rxon_chain
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9dcb005c iwlcore_eeprom_verify_signature
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9fed0d4c iwl_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa03dddba iwl_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa2b1204c iwl_leds_background
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa7fda992 iwl_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa88b3228 iwl_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa9010845 iwl_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xabcf1d97 iwl_sta_modify_sleep_tx_count
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xac49c8e4 iwl_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaeb0e7b5 iwl_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaf37c1c6 iwl_add_bssid_station
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaf5e5b58 iwl_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb0497f84 iwl_mac_beacon_update
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb0890856 iwlcore_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb0e09d1d iwl_tt_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb41f47d2 iwl_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb4ba9289 iwl_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb4e18027 iwl_remove_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb5b450f5 iwl_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb60365ae iwl_eeprom_get_mac
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb885cd9f iwl_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbc8665e3 iwl_restore_default_wep_keys
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbca245f9 iwl_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbcbfa9d9 iwl_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbef88faf iwlcore_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc17a9819 iwl_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc1cba686 iwl_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc2bf2176 iwl_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc3ac026d iwl_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc6f59f9b iwlcore_eeprom_acquire_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca6477fe iwl_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcd0bc4d7 iwl_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcdea1b23 iwl_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcef8cee0 iwl_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd46b6ffa iwl_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd5c20d89 iwl_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd667ec9f iwl_rate_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdb7d8321 iwl_good_plcp_health
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde5dc162 iwlcore_eeprom_enhanced_txpower
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xded5038f iwl_dump_csr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe0e5f675 iwl_chain_noise_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe1121d75 iwl_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe3c0c1d5 iwl_force_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe5cefb9a iwl_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe8044cf7 iwl_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xecbdc9a2 iwl_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xecc870b4 iwl_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xed75a998 iwl_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf0722e4f iwl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf1a3e0e6 iwl_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2351757 iwl_setup_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf34ceccb iwl_tt_handler
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfa20f983 iwl_rf_kill_ct_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfb8c4044 iwl_reset_run_time_calib
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfdc84bc5 iwl_send_calib_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfde74901 iwl_set_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe81b2ce iwl_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfec7a70d iwl_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x08a70c11 hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x34ef771c __orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x566e7a36 orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5f90dc5a orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x608fccc9 free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x611a3146 __orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x774a9552 orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x79fa26f9 orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x838a21fe orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbb2755d0 orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbfe8fe43 orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd606e382 orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdadd1395 orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdedbb7f2 orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdf1c4537 orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe907a9e0 alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xecc90b70 orinoco_stop
+EXPORT_SYMBOL drivers/parport/parport 0x011b0bdc parport_ieee1284_read_nibble
+EXPORT_SYMBOL drivers/parport/parport 0x05c35eed parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0x05c41222 parport_wait_peripheral
+EXPORT_SYMBOL drivers/parport/parport 0x1473a47a parport_find_number
+EXPORT_SYMBOL drivers/parport/parport 0x1bf71f1f parport_register_port
+EXPORT_SYMBOL drivers/parport/parport 0x2683a4a3 parport_remove_port
+EXPORT_SYMBOL drivers/parport/parport 0x2879cb43 parport_release
+EXPORT_SYMBOL drivers/parport/parport 0x4ab55a7f parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt
+EXPORT_SYMBOL drivers/parport/parport 0x519418f3 parport_announce_port
+EXPORT_SYMBOL drivers/parport/parport 0x6c7ca6b6 parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL drivers/parport/parport 0x7b0e095a parport_claim_or_block
+EXPORT_SYMBOL drivers/parport/parport 0x85870349 parport_unregister_driver
+EXPORT_SYMBOL drivers/parport/parport 0x89fb8470 parport_unregister_device
+EXPORT_SYMBOL drivers/parport/parport 0x95081a35 parport_ieee1284_read_byte
+EXPORT_SYMBOL drivers/parport/parport 0x96f43422 parport_put_port
+EXPORT_SYMBOL drivers/parport/parport 0x999bb5b3 parport_wait_event
+EXPORT_SYMBOL drivers/parport/parport 0x99fb6536 parport_register_device
+EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler
+EXPORT_SYMBOL drivers/parport/parport 0xa0a1fcb6 parport_set_timeout
+EXPORT_SYMBOL drivers/parport/parport 0xa52bdda0 parport_read
+EXPORT_SYMBOL drivers/parport/parport 0xabab5960 parport_get_port
+EXPORT_SYMBOL drivers/parport/parport 0xad1b4fee parport_negotiate
+EXPORT_SYMBOL drivers/parport/parport 0xb59b9717 parport_ieee1284_epp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0xbe07f5e9 parport_ieee1284_epp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0xc12a81a2 parport_ieee1284_write_compat
+EXPORT_SYMBOL drivers/parport/parport 0xd60c5778 parport_find_base
+EXPORT_SYMBOL drivers/parport/parport 0xefec6db8 parport_claim
+EXPORT_SYMBOL drivers/parport/parport 0xf69d1c0f parport_write
+EXPORT_SYMBOL drivers/parport/parport 0xf7e5bcbc parport_register_driver
+EXPORT_SYMBOL drivers/parport/parport 0xf8aac98a parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0xfaed9385 parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL drivers/parport/parport_pc 0x0bca6150 parport_pc_probe_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0x9bd52a3d parport_pc_unregister_port
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x359ac87e pcmcia_request_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x4e737817 pcmcia_request_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6695269b pcmcia_unregister_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6ba4d1c6 pcmcia_disable_device
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6bcf83e5 pcmcia_register_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x75b4650a pcmcia_request_io
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7d8eb7bb pcmcia_loop_config
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb8d0452f pcmcia_map_mem_page
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbaeaa553 pcmcia_get_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcb065045 pcmcia_dev_present
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd2c9d9c7 pcmcia_access_configuration_register
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd964fb47 __pcmcia_request_exclusive_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xda2a5148 pcmcia_loop_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdca143a4 pcmcia_modify_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe8e06bbb pcmcia_get_mac_from_cis
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xeb699efc pcmcia_request_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf4089c60 pcmcia_release_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x21ac91de pcmcia_parse_uevents
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x32400757 pcmcia_socket_list_rwsem
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x416f5b59 pcmcia_get_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x438719e6 pcmcia_register_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4886a53d pcmcia_reset_card
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x5bcd4d36 pcmcia_parse_events
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x98b44aba pccard_register_pcmcia
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb5253016 pcmcia_socket_class
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc52c1b86 pcmcia_get_socket_by_nr
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf29902d6 pcmcia_put_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf82ce8d5 pcmcia_unregister_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x453f9444 pccard_static_ops
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xe053b0c6 pccard_nonstatic_ops
+EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0x88960c4d pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x235a6998 fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2d98036c fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3e754161 fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5c6d9f9c fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7d2bb118 fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb450b6d4 fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xd09233b9 fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x06bf6a20 fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x086e699b fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0c35354d fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x11dd9592 fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1fb71b61 fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2031c978 fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2f5a1135 fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3218e726 fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x340bbc0b fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3c254ca7 fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x53d7b82a fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x57c20d45 fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x59b90c64 fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x61511c52 fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x61a4f0d6 fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6293b73a fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x66b380f3 fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6c4f0680 fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x79d463c7 fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7ff4f6b7 fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x843052dd fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x94078fc1 fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x953b35d5 libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa4775d1e fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa5fb8e72 fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb24f6ca1 fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbb8cf572 fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc07e8073 fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc1c4ff5d fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc61cb572 fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc769fd48 fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc913ef2e fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc9cdea36 fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd2b2601a fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd659170c fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdebba5af fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdf87c8b3 fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe0fb22e9 fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf3ba7bfc fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf5dad6f0 fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf9876808 _fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfa5a7dd7 fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x8dc4245c mraid_mm_register_adp
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x04b99d5c osd_execute_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0947c06d osd_req_set_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x098f0824 osd_auto_detect_ver
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x10185350 osd_req_list_collection_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x167212f2 osd_req_decode_sense_full
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1902cc2d osd_req_write
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1d2aa6e9 osd_req_create_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2639472f osd_req_flush_collection
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2d4664cd osd_req_remove_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3a26989a osd_start_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x463b110b osd_req_read
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4648fb32 osd_req_decode_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x58cc3e91 osd_finalize_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x60557625 osd_end_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x725011b9 osd_req_list_dev_partitions
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x735e4095 osd_execute_request_async
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x743617f5 osd_req_get_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x784489f1 osd_req_list_partition_collections
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x83ebbc8a osd_req_read_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x890b57d8 osd_req_flush_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x897fcd6f osd_req_remove_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x950b5196 osd_req_add_get_attr_page
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x99cda876 osd_req_add_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xac148b09 osd_req_format
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb4085e9e osd_req_write_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc669addf osd_req_flush_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc7859069 osd_req_add_set_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd5093ebf osd_dev_fini
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xda2c16e6 osd_dev_init
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf04ea0b6 osd_req_create_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf279023d osd_req_list_partition_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf61e47b2 osd_req_flush_obsd
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x2ec197d2 osduld_register_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x3c6afc05 osduld_put_device
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x56e4fb2c osduld_device_info
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x60a8bbfa osduld_info_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x8e2b0485 osduld_path_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xeb6a0958 osduld_device_same
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x01145679 qlogicfas408_bus_reset
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x04cce2cb qlogicfas408_disable_ints
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x13cc76b8 qlogicfas408_biosparam
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1403f462 qlogicfas408_info
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8a26048c qlogicfas408_queuecommand
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf08ce66e qlogicfas408_abort
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup
+EXPORT_SYMBOL drivers/scsi/raid_class 0x26beeec6 raid_class_attach
+EXPORT_SYMBOL drivers/scsi/raid_class 0x6a8f70c2 raid_component_add
+EXPORT_SYMBOL drivers/scsi/raid_class 0x9adcbf95 raid_class_release
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x01c0c518 fc_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x11c5e3c2 fc_remote_port_rolechg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x11ec0993 fc_remote_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3e735020 fc_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x53a2ee98 fc_vport_terminate
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x675bc097 fc_vport_create
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7aad3042 scsi_is_fc_rport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8734247c fc_host_post_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x8e56dcea fc_remote_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc76094cf fc_host_post_vendor_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd87187a2 fc_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xeef81ab0 fc_block_scsi_eh
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xffcaa35a scsi_is_fc_vport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1596ce9d sas_expander_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x182535ee sas_port_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2997f818 sas_remove_children
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x518142bf scsi_is_sas_port
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5d024a7a sas_phy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x61d892de sas_end_device_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x744e34ec sas_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7455a7dc sas_port_add_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7bc11f51 scsi_is_sas_rphy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x80804414 sas_phy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8bf3f9d9 sas_rphy_remove
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8c731e64 sas_port_mark_backlink
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8ed37b80 sas_port_alloc_num
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x98683ee5 sas_phy_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9e409339 sas_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa642e6fc scsi_is_sas_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa9aa2139 sas_read_port_mode_page
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbacc424e sas_rphy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbbb23782 sas_phy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbd60a876 sas_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd308e492 sas_rphy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd647ff3b sas_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd8ea52d2 sas_rphy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe09414cd sas_port_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe2b49ca2 sas_port_delete_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe8d7db38 sas_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x367fb99c spi_schedule_dv_device
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x36a44dbd spi_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x4b8adf36 spi_dv_device
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x4d20db01 spi_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x5d7e9e4b spi_display_xfer_agreement
+EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port
+EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port
+EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port
+EXPORT_SYMBOL drivers/serial/8250 0xdedd6b89 serial8250_register_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x015f2fd2 uart_match_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x1a70f1fe uart_suspend_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x36f0cc3c uart_get_baud_rate
+EXPORT_SYMBOL drivers/serial/serial_core 0x5148b86d uart_resume_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x9442134f uart_add_one_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x96baf73d uart_unregister_driver
+EXPORT_SYMBOL drivers/serial/serial_core 0x9914e156 uart_get_divisor
+EXPORT_SYMBOL drivers/serial/serial_core 0xb95a92d4 uart_remove_one_port
+EXPORT_SYMBOL drivers/serial/serial_core 0xd3e75c33 uart_update_timeout
+EXPORT_SYMBOL drivers/serial/serial_core 0xed7114b3 uart_register_driver
+EXPORT_SYMBOL drivers/serial/serial_core 0xefdd3335 uart_write_wakeup
+EXPORT_SYMBOL drivers/ssb/ssb 0x28eecc9f ssb_device_is_enabled
+EXPORT_SYMBOL drivers/ssb/ssb 0x2f5fad60 ssb_bus_sdiobus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x41b81bea ssb_dma_alloc_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0x5a1e8092 ssb_dma_free_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0x5a2dc085 ssb_bus_suspend
+EXPORT_SYMBOL drivers/ssb/ssb 0x5ea2ee88 ssb_device_disable
+EXPORT_SYMBOL drivers/ssb/ssb 0x62201cd5 ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x66254737 ssb_device_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x69ef5e42 ssb_driver_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0x6cd2bbd1 ssb_bus_pcibus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x77d3f23a ssb_dma_set_mask
+EXPORT_SYMBOL drivers/ssb/ssb 0x7ecbd641 ssb_chipco_gpio_control
+EXPORT_SYMBOL drivers/ssb/ssb 0x816e5b06 ssb_bus_may_powerdown
+EXPORT_SYMBOL drivers/ssb/ssb 0x82197e53 ssb_dma_translation
+EXPORT_SYMBOL drivers/ssb/ssb 0x8a8b5c2d ssb_bus_resume
+EXPORT_SYMBOL drivers/ssb/ssb 0x96476ca1 ssb_bus_powerup
+EXPORT_SYMBOL drivers/ssb/ssb 0xa1bf1699 ssb_pcihost_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base
+EXPORT_SYMBOL drivers/ssb/ssb 0xc67bf48e __ssb_driver_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xcd368507 ssb_set_devtypedata
+EXPORT_SYMBOL drivers/ssb/ssb 0xd2740bca ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size
+EXPORT_SYMBOL drivers/ssb/ssb 0xef8c4173 ssb_bus_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0xf3d93f53 ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL drivers/ssb/ssb 0xfeb17d51 ssb_clockspeed
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x044975e9 ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x05c2c09f ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x09999bc1 ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0d6fd91c ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x104b197e ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1399bc99 Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x17602c20 ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1fd93812 ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x23c60711 ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x261cbab1 Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x27cfdc15 ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2826377a ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x29a9d55e ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2c94b5e2 ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2ea4bbf1 Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x32184263 ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x34ab6738 ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3c69dcf8 ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4308bf1d notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x43751cd2 ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x484cff53 DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4d45687d ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x543bd9a3 ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x557af1b3 ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x60737e96 HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x621e3f32 ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x62928d5c ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x67107a7b ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6de43604 ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6dff6787 ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x868ce2e0 ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8fba830d ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x912791e1 ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x946d2b1d ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x94c2034d ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x95c8c67c ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x96c0012a IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9eef151c ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9faaeb83 DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xac8c8484 ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaf8acd92 ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xafae3905 ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbbae6d55 ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc42c08a3 ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc813e377 ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcb44a81a ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xcc1c3a1f ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd046144b ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd13f8a1b SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd7a18e37 ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd89b185c ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdd09ee49 ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf2a6a888 ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf452bdd6 ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf69a4b93 ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfe5894f4 ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0x8abc483d tm6000_register_extension
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xc69b0cac tm6000_unregister_extension
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free
+EXPORT_SYMBOL drivers/telephony/ixj 0x1222058f ixj_pcmcia_probe
+EXPORT_SYMBOL drivers/telephony/phonedev 0xac9dec60 phone_register_device
+EXPORT_SYMBOL drivers/telephony/phonedev 0xd68ae9d9 phone_unregister_device
+EXPORT_SYMBOL drivers/usb/gadget/goku_udc 0x3faff41e usb_gadget_unregister_driver
+EXPORT_SYMBOL drivers/usb/gadget/goku_udc 0xdc935a3b usb_gadget_register_driver
+EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x28f58103 sl811h_driver
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x085cad41 usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0924f491 usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0be8dbc7 usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1ef29860 usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x309ca600 usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x50d44575 usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x67ec3855 usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x893a06d3 usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb35edd85 usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcb3f344c usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xcc898b1f usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdc0a2e68 usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe3e60d44 usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe40f3b0a usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x66f6e78f usb_serial_suspend
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0xae34a962 usb_serial_resume
+EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity
+EXPORT_SYMBOL drivers/video/backlight/lcd 0xbda16f4c lcd_device_unregister
+EXPORT_SYMBOL drivers/video/backlight/lcd 0xf8084c13 lcd_device_register
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x1e070829 cyber2000fb_attach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x701fbfab cyber2000fb_get_fb_var
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x7c84b811 cyber2000fb_disable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xf2306565 cyber2000fb_enable_extregs
+EXPORT_SYMBOL drivers/video/display/display 0x4970d5bb display_device_unregister
+EXPORT_SYMBOL drivers/video/display/display 0xf7f4f54f display_device_register
+EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xcc0dd61e mb862xxfb_init_accel
+EXPORT_SYMBOL drivers/video/output 0x4ae83212 video_output_register
+EXPORT_SYMBOL drivers/video/output 0xc5472983 video_output_unregister
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free
+EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x06558d47 svga_tileblit
+EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x52af74bf svga_tilecursor
+EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x642e6db8 svga_get_caps
+EXPORT_SYMBOL drivers/video/svgalib 0x74b8f2fd svga_tilecopy
+EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x9f2c6db1 svga_get_tilemax
+EXPORT_SYMBOL drivers/video/svgalib 0xa6f20dec svga_tilefill
+EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xcd98cf0e svga_settile
+EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format
+EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll
+EXPORT_SYMBOL drivers/video/syscopyarea 0xe648d53b sys_copyarea
+EXPORT_SYMBOL drivers/video/sysfillrect 0xaea98d26 sys_fillrect
+EXPORT_SYMBOL drivers/video/sysimgblt 0x01f49497 sys_imageblit
+EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga
+EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x45dff0d6 w1_bq27000_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x56e5a478 w1_bq27000_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x4401733b w1_ds2760_store_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x7a096729 w1_ds2760_recall_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xb82f2c5a w1_ds2760_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe6305d42 w1_ds2760_read
+EXPORT_SYMBOL drivers/w1/wire 0x04ffabd9 w1_add_master_device
+EXPORT_SYMBOL drivers/w1/wire 0x3301b1c4 w1_register_family
+EXPORT_SYMBOL drivers/w1/wire 0x582db8b1 w1_unregister_family
+EXPORT_SYMBOL drivers/w1/wire 0xf1ad9760 w1_remove_master_device
+EXPORT_SYMBOL fs/configfs/configfs 0x0f18f149 config_group_find_item
+EXPORT_SYMBOL fs/configfs/configfs 0x3e0af7ee configfs_undepend_item
+EXPORT_SYMBOL fs/configfs/configfs 0x45af4e74 config_group_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x624a19ff configfs_depend_item
+EXPORT_SYMBOL fs/configfs/configfs 0x8ea04dc1 config_item_put
+EXPORT_SYMBOL fs/configfs/configfs 0x9bf82398 configfs_unregister_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xa73e1192 config_item_set_name
+EXPORT_SYMBOL fs/configfs/configfs 0xb85caaa2 config_group_init
+EXPORT_SYMBOL fs/configfs/configfs 0xc3f1ea9e configfs_register_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xcefec01f config_item_get
+EXPORT_SYMBOL fs/configfs/configfs 0xdd6979e6 config_item_init
+EXPORT_SYMBOL fs/configfs/configfs 0xf3986c4b config_item_init_type_name
+EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible
+EXPORT_SYMBOL fs/fscache/fscache 0x18aeb0d5 fscache_object_lookup_negative
+EXPORT_SYMBOL fs/fscache/fscache 0x2bd22a89 __fscache_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0x2cca6b07 __fscache_read_or_alloc_pages
+EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit
+EXPORT_SYMBOL fs/fscache/fscache 0x412b534d __fscache_attr_changed
+EXPORT_SYMBOL fs/fscache/fscache 0x4fbcb29c fscache_fsdef_index
+EXPORT_SYMBOL fs/fscache/fscache 0x55f62b39 __fscache_register_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x65af3455 __fscache_wait_on_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x684674cc fscache_init_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x6ae64c5c __fscache_relinquish_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x6df82275 fscache_io_error
+EXPORT_SYMBOL fs/fscache/fscache 0x72453d95 fscache_cache_cleared_wq
+EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id
+EXPORT_SYMBOL fs/fscache/fscache 0x773ae9f0 fscache_enqueue_operation
+EXPORT_SYMBOL fs/fscache/fscache 0x7b96f83e __fscache_write_page
+EXPORT_SYMBOL fs/fscache/fscache 0x7e59e4b9 __fscache_uncache_page
+EXPORT_SYMBOL fs/fscache/fscache 0x84377141 fscache_check_aux
+EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states
+EXPORT_SYMBOL fs/fscache/fscache 0x8c7e2b7f __fscache_check_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x9ba0c305 fscache_withdraw_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xa6e25df6 fscache_add_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xa7c37537 __fscache_unregister_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0xad2c809e fscache_object_slow_work_ops
+EXPORT_SYMBOL fs/fscache/fscache 0xaf415175 fscache_put_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xb4612815 fscache_mark_pages_cached
+EXPORT_SYMBOL fs/fscache/fscache 0xc4130a71 __fscache_acquire_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xc5d343fd fscache_obtained_object
+EXPORT_SYMBOL fs/fscache/fscache 0xc898c69d __fscache_read_or_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xd0e0127f __fscache_update_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xf1011403 __fscache_maybe_release_page
+EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix
+EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new
+EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who
+EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype
+EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4
+EXPORT_SYMBOL fs/quota/quota_tree 0x791600aa qtree_release_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xb3485473 qtree_read_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xda71e7a8 qtree_write_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xe43543e3 qtree_delete_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xef86a737 qtree_entry_unused
+EXPORT_SYMBOL lib/crc-ccitt 0x3771b461 crc_ccitt
+EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table
+EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table
+EXPORT_SYMBOL lib/crc-itu-t 0xf5b4a948 crc_itu_t
+EXPORT_SYMBOL lib/crc-t10dif 0xb6896671 crc_t10dif
+EXPORT_SYMBOL lib/crc7 0xa7587646 crc7
+EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table
+EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd
+EXPORT_SYMBOL net/802/p8023 0x0cbabc06 destroy_8023_client
+EXPORT_SYMBOL net/802/p8023 0xada43a0c make_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x074a3512 p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x092cf2db p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0x198d7762 p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0x1dc4200c p9_client_version
+EXPORT_SYMBOL net/9p/9pnet 0x259042c0 p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0x33622fc4 p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0x358972d7 p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x374518e2 p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x3860e02f p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x3a3d65c9 p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x400053ae p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x545d8d8d p9_client_auth
+EXPORT_SYMBOL net/9p/9pnet 0x554f02db v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0x5909b782 p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x5e7b526a p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0x68c64834 p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0x6b754e6f p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x751007d6 p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x77f9cac5 p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x7fe5771a p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0x8f542c86 p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x9145960a v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x91d9f206 p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0x98e79900 p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0xa3888ae4 v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0xa964f34a v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0xac1c90f0 p9_idpool_check
+EXPORT_SYMBOL net/9p/9pnet 0xbef7d419 p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0xcbd0b91d p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0xce4d460f p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0xd331fc1d p9pdu_dump
+EXPORT_SYMBOL net/9p/9pnet 0xe0de4183 p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xfd70ed05 p9_idpool_create
+EXPORT_SYMBOL net/appletalk/appletalk 0x15e74048 aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0x275f5c86 atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0x3bfcbcfd atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0xb7d38b72 alloc_ltalkdev
+EXPORT_SYMBOL net/atm/atm 0x1440cf5c vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x1dab29f9 vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x4b0d4279 atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x61711d79 atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0x6cd4d91e atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xa6c9429e atm_charge
+EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xb8d318b8 atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0xbcf5ebf9 register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0xe8f17007 atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0xedb78f35 atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal
+EXPORT_SYMBOL net/atm/atm 0xf9be6db2 deregister_atm_ioctl
+EXPORT_SYMBOL net/ax25/ax25 0x008dde35 ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0x1b3384cf ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0x215b923c ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x2d5b0e42 ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0x2e06a3b8 ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0xaf0b80a9 ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0xb34ba175 ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xce086e51 ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0xd08f2597 ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x08ecbbbc bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0d6eac14 bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0f860124 hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1a43e529 hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2377a788 hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x26aa02bf bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2ddbcf74 hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x400b329f bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x45be94ca hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e4e98ab hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5b559f04 hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e7c25c7 bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6359c0d1 hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x662cdf02 hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6cefee49 hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8c83ac62 hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xaa88aa1e bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xaf0dbeff hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb468182d hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xb9c01e5a hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xca12827d hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcaffc123 hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcdafca6e hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcdb96fc7 hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd172875b bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd2044dcc bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xd814a137 hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xe07b4bdc bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf00cd7cb hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf1574a8d hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf1bfd8bc hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf239c409 bt_sock_link
+EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load
+EXPORT_SYMBOL net/bridge/bridge 0xb7b37388 br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x1d8587ec ebt_register_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x81307e73 ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa9601b4a ebt_do_table
+EXPORT_SYMBOL net/caif/caif 0x0468d378 cfpkt_queue
+EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client
+EXPORT_SYMBOL net/caif/caif 0x0f161837 cfpkt_extr_head
+EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer
+EXPORT_SYMBOL net/caif/caif 0x14a5c9a7 cfpkt_raw_extract
+EXPORT_SYMBOL net/caif/caif 0x1ba752fb cfpktq_create
+EXPORT_SYMBOL net/caif/caif 0x283c1a51 cfpkt_add_body
+EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x31e6487c cfpkt_add_trail
+EXPORT_SYMBOL net/caif/caif 0x33de7b24 cfpkt_more
+EXPORT_SYMBOL net/caif/caif 0x3966dd61 cfpkt_qpeek
+EXPORT_SYMBOL net/caif/caif 0x40ec3d41 cfpkt_extr_trail
+EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x4d481eaa cfpkt_log_pkt
+EXPORT_SYMBOL net/caif/caif 0x54deec86 cfpkt_info
+EXPORT_SYMBOL net/caif/caif 0x556e4dec cfpkt_clone_release
+EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create
+EXPORT_SYMBOL net/caif/caif 0x64dc60e8 cfpkt_add_head
+EXPORT_SYMBOL net/caif/caif 0x6a86ba12 cfpkt_create_uplink
+EXPORT_SYMBOL net/caif/caif 0x7029b982 cfpkt_getlen
+EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x7538d94c cfpkt_append
+EXPORT_SYMBOL net/caif/caif 0x7a196fe4 cfpkt_raw_append
+EXPORT_SYMBOL net/caif/caif 0x7e0110a2 cfpkt_erroneous
+EXPORT_SYMBOL net/caif/caif 0x7ec8311c cfpkt_addbdy
+EXPORT_SYMBOL net/caif/caif 0x801f4558 cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x9e1ee41c cfpkt_setlen
+EXPORT_SYMBOL net/caif/caif 0xa0a254d9 cfpkt_peek_head
+EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xb494d2b2 cfpkt_qcount
+EXPORT_SYMBOL net/caif/caif 0xba0c74e2 cfpkt_destroy
+EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer
+EXPORT_SYMBOL net/caif/caif 0xc038b034 cfpkt_split
+EXPORT_SYMBOL net/caif/caif 0xc557ffe7 cfpkt_iterate
+EXPORT_SYMBOL net/caif/caif 0xd2c13a45 cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0xdb7b8fbe cfpkt_pad_trail
+EXPORT_SYMBOL net/caif/caif 0xeb518d31 cfpkt_create
+EXPORT_SYMBOL net/caif/caif 0xec447d1d cfpkt_dequeue
+EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf
+EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer
+EXPORT_SYMBOL net/can/can 0x3156db73 can_rx_register
+EXPORT_SYMBOL net/can/can 0x4f5406b9 can_rx_unregister
+EXPORT_SYMBOL net/can/can 0x9e00ced8 can_proto_unregister
+EXPORT_SYMBOL net/can/can 0xe6fbc24f can_send
+EXPORT_SYMBOL net/can/can 0xe8434a4a can_proto_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0d569f0a ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x1d275481 wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x411b1798 ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x47606ce7 wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x73031197 ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x7f74ed69 wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x8b44bc03 wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x9b9ba7b0 ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xabbbb7c4 ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xbeabd83e ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xd31f5ba8 wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xd9074637 ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xef4f2605 wpan_phy_register
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x9fe9fc81 arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xd2ab17ef arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xdce6b75e arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x020896b8 ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x701949ca ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xdd3d35b2 ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x01186fb3 nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1c9c99b5 nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2420157e nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x311059ef nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x45453b4e nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xb587e7f2 nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf1d87a95 __nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/tunnel4 0x046ba980 xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv4/tunnel4 0xa57c1c05 xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv6/ipv6 0x0872cc9c inet6_del_protocol
+EXPORT_SYMBOL net/ipv6/ipv6 0x0b0d888b icmpv6_err_convert
+EXPORT_SYMBOL net/ipv6/ipv6 0x1e2e187c xfrm6_rcv
+EXPORT_SYMBOL net/ipv6/ipv6 0x21f6f441 icmpv6_send
+EXPORT_SYMBOL net/ipv6/ipv6 0x272e9224 xfrm6_prepare_output
+EXPORT_SYMBOL net/ipv6/ipv6 0x3ce6a4f8 ndisc_send_skb
+EXPORT_SYMBOL net/ipv6/ipv6 0x401a7290 inet6_getname
+EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier
+EXPORT_SYMBOL net/ipv6/ipv6 0x56b85eae inet6_unregister_protosw
+EXPORT_SYMBOL net/ipv6/ipv6 0x6837b40f inet6_add_protocol
+EXPORT_SYMBOL net/ipv6/ipv6 0x6d35c79b inet6_register_protosw
+EXPORT_SYMBOL net/ipv6/ipv6 0x6dc430c7 ip6_route_me_harder
+EXPORT_SYMBOL net/ipv6/ipv6 0x767926fa ndisc_mc_map
+EXPORT_SYMBOL net/ipv6/ipv6 0x79f98c63 ipv6_getsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0x8e847196 inet6_release
+EXPORT_SYMBOL net/ipv6/ipv6 0x933a5b88 inet6_bind
+EXPORT_SYMBOL net/ipv6/ipv6 0xa2f7cc39 xfrm6_input_addr
+EXPORT_SYMBOL net/ipv6/ipv6 0xa9e6d363 xfrm6_rcv_spi
+EXPORT_SYMBOL net/ipv6/ipv6 0xb0379e99 xfrm6_find_1stfragopt
+EXPORT_SYMBOL net/ipv6/ipv6 0xbc7b95f0 ipv6_push_nfrag_opts
+EXPORT_SYMBOL net/ipv6/ipv6 0xc1dc5138 ip6_frag_init
+EXPORT_SYMBOL net/ipv6/ipv6 0xc3ea9a0c ipv6_chk_addr
+EXPORT_SYMBOL net/ipv6/ipv6 0xc5370981 rt6_lookup
+EXPORT_SYMBOL net/ipv6/ipv6 0xc6baa6e0 in6_dev_finish_destroy
+EXPORT_SYMBOL net/ipv6/ipv6 0xca7c0fc4 ndisc_build_skb
+EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier
+EXPORT_SYMBOL net/ipv6/ipv6 0xdbddc934 ipv6_dev_get_saddr
+EXPORT_SYMBOL net/ipv6/ipv6 0xe135d4bc ip6_xmit
+EXPORT_SYMBOL net/ipv6/ipv6 0xe675a3d4 ip6_route_output
+EXPORT_SYMBOL net/ipv6/ipv6 0xe690b8fd __ipv6_isatap_ifid
+EXPORT_SYMBOL net/ipv6/ipv6 0xe87a16eb inet6_ioctl
+EXPORT_SYMBOL net/ipv6/ipv6 0xf1e864d9 ipv6_chk_prefix
+EXPORT_SYMBOL net/ipv6/ipv6 0xfca1cc51 ip6_frag_match
+EXPORT_SYMBOL net/ipv6/ipv6 0xfe0e38d8 ipv6_setsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0xfe4bcfd5 nf_ip6_checksum
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x480e67e0 ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4d2596e4 ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x91c81566 ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xabff8c68 ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/tunnel6 0x69f25bc6 xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/tunnel6 0x854b246e xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x0498246e xfrm6_tunnel_free_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x3ac1ead2 xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x4b414279 xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x06b3d382 ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x180ed067 ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6739a7d9 ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x6e733933 ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x71a258ca ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x75420644 ircomm_data_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x7cd50404 ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xf8f91b9b ircomm_flow_request
+EXPORT_SYMBOL net/irda/irda 0x0064e0ea hashbin_get_first
+EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value
+EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service
+EXPORT_SYMBOL net/irda/irda 0x07da87cd iriap_open
+EXPORT_SYMBOL net/irda/irda 0x1de4f9ac irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0x1e6cade0 irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0x1f507ca1 irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x2f832c96 iriap_close
+EXPORT_SYMBOL net/irda/irda 0x2feec57a irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug
+EXPORT_SYMBOL net/irda/irda 0x3e110066 irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x3e56064f hashbin_new
+EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value
+EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service
+EXPORT_SYMBOL net/irda/irda 0x4e184480 proc_irda
+EXPORT_SYMBOL net/irda/irda 0x4fc47ba4 irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x616743ea irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0x6516d59f irlap_close
+EXPORT_SYMBOL net/irda/irda 0x6866203b alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies
+EXPORT_SYMBOL net/irda/irda 0x6b5fbcef hashbin_get_next
+EXPORT_SYMBOL net/irda/irda 0x6e0ab3c7 irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0x6f546a09 irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client
+EXPORT_SYMBOL net/irda/irda 0x7062e1a6 async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x85b6b2cf irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x85d88217 irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x9523ae6d irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0xa1521fa8 irlmp_open_lsap
+EXPORT_SYMBOL net/irda/irda 0xa1d41e58 hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0xa5924465 irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0xaa557515 irias_new_object
+EXPORT_SYMBOL net/irda/irda 0xaf6f6e55 irttp_dup
+EXPORT_SYMBOL net/irda/irda 0xb2ccc4e5 irlap_open
+EXPORT_SYMBOL net/irda/irda 0xb33ab57c irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0xb6312631 irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xb6af76a9 async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value
+EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute
+EXPORT_SYMBOL net/irda/irda 0xbe096b62 irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request
+EXPORT_SYMBOL net/irda/irda 0xc68e43be irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0xcabe5ff8 iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0xcead7dbb hashbin_find
+EXPORT_SYMBOL net/irda/irda 0xd2108314 hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xe3463529 hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0xe3bde43e irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0xe81f216c irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xf0a694a1 irias_find_object
+EXPORT_SYMBOL net/irda/irda 0xf0faee70 irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0xf39b7fe0 irda_setup_dma
+EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x575d2bae l2tp_tunnel_destruct
+EXPORT_SYMBOL net/l2tp/l2tp_core 0xe78c3ff3 l2tp_recv_common
+EXPORT_SYMBOL net/lapb/lapb 0x54197c68 lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0x5a58e756 lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0x5fc3ec52 lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x76ff6e9a lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0x7e01695d lapb_data_received
+EXPORT_SYMBOL net/lapb/lapb 0x961f0d6b lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0xe1dfb6d6 lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0xe4eb6485 lapb_disconnect_request
+EXPORT_SYMBOL net/mac80211/mac80211 0x02fc9452 ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x0c644f96 ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0x190749c2 ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x2670e80d ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x27dede55 ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x32371489 ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x357ae39c ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x41b1b75a ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x4704e61d ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0x48d62072 wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x494bb654 ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x49f369a6 ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x4cf47bd7 ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x4e244da6 __ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x4f49d27f ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x50518a35 ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x54a51edf rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0x6a8f5946 ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x74b5588f ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x80ba402c ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0x856303c4 ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x88ba6a95 ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x8b03a95d ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x9e944265 __ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xa4c00455 ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xa5286dbd ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xa9d4d8c8 ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xab0c0617 __ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xafa8dc47 ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xc4e80802 ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xc9a9efae ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xd2d3c787 ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xda0b148b __ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xdccfd347 ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xdfb536eb ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xe1da161d ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0xf801d18b ieee80211_get_tkip_key
+EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x16d0962f register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1f174447 unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x368f702d ip_vs_skb_replace
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x44e865a3 ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x71437125 unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x84aa5317 register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa820b002 ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xbd5c5ab4 ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc889a829 ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd36b425b register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf766d05f ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xab006d5b __nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xfeccb99b __nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x4bcb8a06 nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x00629a34 xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x20e02462 xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x23522d77 xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x23c65358 xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x49d94e53 xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x5545cc0a xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x7f74a0f5 xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xaf89e9ef xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xba5c7d10 xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xc9838854 xt_register_matches
+EXPORT_SYMBOL net/phonet/phonet 0x278175b9 phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0x3b6dfb4c pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0x76aa9446 pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0x9b4d5df4 pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0xba0c7977 phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0xbe87194b phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0xd0b4b557 pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0xf0e163fe phonet_stream_ops
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0cdd1172 rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x23470e98 rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3ed1388f rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4093024c rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x530eb84e rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x62592f1b rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x73edff02 rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7cf362c3 rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x962a137a rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa453cbad key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xaec4ba6f rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb0dd72cc rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcc33d3d9 rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd5182f02 rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd6036c00 rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/sunrpc/sunrpc 0xdb551b05 svc_pool_stats_open
+EXPORT_SYMBOL net/tipc/tipc 0x05427353 tipc_forward_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes
+EXPORT_SYMBOL net/tipc/tipc 0x0b004fb8 tipc_forward_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected
+EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect
+EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport
+EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge
+EXPORT_SYMBOL net/tipc/tipc 0x27d8bb58 tipc_send2port
+EXPORT_SYMBOL net/tipc/tipc 0x298bcfa9 tipc_reject_msg
+EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach
+EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x4ba3cfc8 tipc_send2name
+EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw
+EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode
+EXPORT_SYMBOL net/tipc/tipc 0x575cc095 tipc_register_media
+EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid
+EXPORT_SYMBOL net/tipc/tipc 0x5d4593e1 tipc_createport
+EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0x64357d3c tipc_multicast
+EXPORT_SYMBOL net/tipc/tipc 0x7892efcf tipc_continue
+EXPORT_SYMBOL net/tipc/tipc 0x8001e3d7 tipc_forward2port
+EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr
+EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x9f3d761f tipc_send_buf_fast
+EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port
+EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown
+EXPORT_SYMBOL net/tipc/tipc 0xb01ffc2c tipc_forward2name
+EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish
+EXPORT_SYMBOL net/tipc/tipc 0xbb2b2504 tipc_send
+EXPORT_SYMBOL net/tipc/tipc 0xbbfc18b5 tipc_get_port
+EXPORT_SYMBOL net/tipc/tipc 0xc2ed88db tipc_createport_raw
+EXPORT_SYMBOL net/tipc/tipc 0xcb8c1137 tipc_send_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity
+EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach
+EXPORT_SYMBOL net/tipc/tipc 0xdec5e4e3 tipc_send_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer
+EXPORT_SYMBOL net/tipc/tipc 0xe7399d7a tipc_send_buf
+EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished
+EXPORT_SYMBOL net/tipc/tipc 0xeaac2014 tipc_recv_msg
+EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle
+EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x30644de6 register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x4f875689 wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0x982cac7f wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x00f4ed7d ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x13980416 wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x190a30b7 cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x1d39863f cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x21b5c954 wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x234e4112 wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x256beccd cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0x26ae040e cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0x29d09ec2 cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x2c231eca wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0x33ad1bf9 cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0x3d0ce9df cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0x41d31f6c cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0x43307d40 cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x4539f70b ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x471739e0 ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0x4e19e14c __cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x580aea9c cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x6a1e2222 cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x6d8775d2 ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x6fa08e3f wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x743e7e14 __ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x753d920f cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x78bdc1f6 cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x79a5f818 wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x8720afa2 cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x9549d06c freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0xa0d7d3e9 cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0xa10b4a43 __cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0xa4982fe2 cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xa58a445f cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0xa5f9f5a2 cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0xa9fd030f cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0xace074dc wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xb10e1b65 cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0xb1f28746 cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xb5828797 cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xc49352a2 cfg80211_rx_action
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xcc523aee cfg80211_action_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0xcf833b95 cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0xd274d982 wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0xd391db49 cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0xde0301b4 cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xeae9152f cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xeb2dd501 __cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xf4d767a0 cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0xfbe6cf77 ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0xfe8b9561 regulatory_hint
+EXPORT_SYMBOL net/wireless/lib80211 0x0f3a02b6 lib80211_crypt_quiescing
+EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler
+EXPORT_SYMBOL net/wireless/lib80211 0x258fb755 lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0x267987f7 lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x33954b7e lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xbc693f35 lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0xcc8bc321 lib80211_crypt_deinit_entries
+EXPORT_SYMBOL net/wireless/lib80211 0xe019e4df lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xf35008fa lib80211_unregister_crypto_ops
+EXPORT_SYMBOL sound/ac97_bus 0xf0f83b47 ac97_bus_type
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x1123e308 snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x17aa4dd8 snd_seq_create_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xd1fde91b snd_seq_kernel_client_enqueue_blocking
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xd2a7b2ed snd_seq_event_port_attach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x44421fee snd_seq_device_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x814a33a2 snd_seq_device_register_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x072d978b snd_midi_event_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x13a17752 snd_midi_event_reset_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2eed26bf snd_midi_event_no_status
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x4d5ca523 snd_midi_event_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x592f6e9b snd_midi_event_free
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd7c7afcc snd_midi_event_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe60fb228 snd_midi_event_reset_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xecbde43c snd_midi_event_encode_byte
+EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x0614143c snd_virmidi_new
+EXPORT_SYMBOL sound/core/snd 0x0250c5b9 snd_jack_set_parent
+EXPORT_SYMBOL sound/core/snd 0x15e3ec01 snd_jack_set_key
+EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program
+EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer
+EXPORT_SYMBOL sound/core/snd 0x199a9639 snd_register_device_for_dev
+EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line
+EXPORT_SYMBOL sound/core/snd 0x26c8c35a snd_unregister_device
+EXPORT_SYMBOL sound/core/snd 0x2e714992 snd_component_add
+EXPORT_SYMBOL sound/core/snd 0x35519ea1 snd_ctl_register_ioctl
+EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit
+EXPORT_SYMBOL sound/core/snd 0x3a2fc0be snd_ctl_find_numid
+EXPORT_SYMBOL sound/core/snd 0x3e6548f0 snd_ctl_notify
+EXPORT_SYMBOL sound/core/snd 0x3fb62818 snd_power_wait
+EXPORT_SYMBOL sound/core/snd 0x44f526c8 snd_add_device_sysfs_file
+EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card
+EXPORT_SYMBOL sound/core/snd 0x5ddc28b6 snd_ctl_make_virtual_master
+EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio
+EXPORT_SYMBOL sound/core/snd 0x63c9b8a9 snd_ctl_rename_id
+EXPORT_SYMBOL sound/core/snd 0x64658559 snd_ctl_remove_id
+EXPORT_SYMBOL sound/core/snd 0x6a671394 snd_jack_new
+EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable
+EXPORT_SYMBOL sound/core/snd 0x70e8428f snd_info_register
+EXPORT_SYMBOL sound/core/snd 0x7375650e snd_card_disconnect
+EXPORT_SYMBOL sound/core/snd 0x75bb2e5f snd_card_proc_new
+EXPORT_SYMBOL sound/core/snd 0x7b2fd6dc snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL sound/core/snd 0x7d1ac4fa snd_card_set_id
+EXPORT_SYMBOL sound/core/snd 0x7fab93e8 snd_card_free_when_closed
+EXPORT_SYMBOL sound/core/snd 0x84451fb4 snd_card_create
+EXPORT_SYMBOL sound/core/snd 0x8a92eb90 snd_card_file_remove
+EXPORT_SYMBOL sound/core/snd 0x8da7a795 snd_card_register
+EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major
+EXPORT_SYMBOL sound/core/snd 0x9d0c79f5 snd_device_register
+EXPORT_SYMBOL sound/core/snd 0x9e670698 snd_card_file_add
+EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str
+EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id
+EXPORT_SYMBOL sound/core/snd 0xaea4317d snd_ctl_find_id
+EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data
+EXPORT_SYMBOL sound/core/snd 0xb8e5f79c snd_device_free
+EXPORT_SYMBOL sound/core/snd 0xb9fca782 snd_ctl_remove
+EXPORT_SYMBOL sound/core/snd 0xba1f0205 snd_ctl_free_one
+EXPORT_SYMBOL sound/core/snd 0xbd3c4d7d snd_info_free_entry
+EXPORT_SYMBOL sound/core/snd 0xcae18dd4 snd_ctl_add
+EXPORT_SYMBOL sound/core/snd 0xcbbade88 snd_pci_quirk_lookup
+EXPORT_SYMBOL sound/core/snd 0xcd6a31f9 snd_info_create_module_entry
+EXPORT_SYMBOL sound/core/snd 0xcdfccd6e snd_jack_report
+EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio
+EXPORT_SYMBOL sound/core/snd 0xcf0c97a8 snd_seq_root
+EXPORT_SYMBOL sound/core/snd 0xd024fc0a snd_ctl_boolean_mono_info
+EXPORT_SYMBOL sound/core/snd 0xd1157735 release_and_free_resource
+EXPORT_SYMBOL sound/core/snd 0xdd754aa6 snd_card_free
+EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf
+EXPORT_SYMBOL sound/core/snd 0xe431e5ff snd_info_create_card_entry
+EXPORT_SYMBOL sound/core/snd 0xebd4085b snd_cards
+EXPORT_SYMBOL sound/core/snd 0xec15c015 snd_ctl_unregister_ioctl
+EXPORT_SYMBOL sound/core/snd 0xec1d978d snd_device_new
+EXPORT_SYMBOL sound/core/snd 0xf32ad44f snd_ctl_new1
+EXPORT_SYMBOL sound/core/snd 0xf35562a3 _snd_ctl_add_slave
+EXPORT_SYMBOL sound/core/snd-hwdep 0xa9a1d3ba snd_hwdep_new
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x5847e6b3 snd_dma_alloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x6110a0d0 snd_dma_reserve_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x851e5a69 snd_dma_get_reserved_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xee8b4548 snd_dma_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xfd88a481 snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL sound/core/snd-pcm 0x00a9c1c7 snd_pcm_new_stream
+EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any
+EXPORT_SYMBOL sound/core/snd-pcm 0x03619b88 snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x06abc3d2 snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL sound/core/snd-pcm 0x0ced4d12 snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x0fba4371 snd_pcm_hw_constraint_step
+EXPORT_SYMBOL sound/core/snd-pcm 0x14ef44c9 snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x19e21bef snd_pcm_lib_readv
+EXPORT_SYMBOL sound/core/snd-pcm 0x1a5c6dd6 snd_pcm_new
+EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed
+EXPORT_SYMBOL sound/core/snd-pcm 0x1dfe6982 snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL sound/core/snd-pcm 0x2b9846c0 snd_pcm_kernel_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty
+EXPORT_SYMBOL sound/core/snd-pcm 0x3bffe0e3 snd_pcm_hw_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x4ad922df snd_pcm_lib_writev
+EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size
+EXPORT_SYMBOL sound/core/snd-pcm 0x4e54ddb5 snd_pcm_notify
+EXPORT_SYMBOL sound/core/snd-pcm 0x4e779be0 snd_pcm_lib_read
+EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x504b5204 snd_pcm_hw_param_first
+EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value
+EXPORT_SYMBOL sound/core/snd-pcm 0x5bebb782 snd_pcm_lib_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence
+EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64
+EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width
+EXPORT_SYMBOL sound/core/snd-pcm 0x692cbc6c snd_pcm_suspend
+EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear
+EXPORT_SYMBOL sound/core/snd-pcm 0x6f3f4385 snd_pcm_set_ops
+EXPORT_SYMBOL sound/core/snd-pcm 0x74fbdf99 snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL sound/core/snd-pcm 0x770971d3 _snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x77e15f65 snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x7872aa69 snd_pcm_mmap_data
+EXPORT_SYMBOL sound/core/snd-pcm 0x78f1c6d1 snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL sound/core/snd-pcm 0x7b096ca9 snd_pcm_period_elapsed
+EXPORT_SYMBOL sound/core/snd-pcm 0x7c66fd12 snd_pcm_hw_constraint_list
+EXPORT_SYMBOL sound/core/snd-pcm 0x8ad8b781 snd_pcm_lib_mmap_noncached
+EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned
+EXPORT_SYMBOL sound/core/snd-pcm 0xb2f69f97 snd_pcm_release_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xb6792980 snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL sound/core/snd-pcm 0xb6c71932 snd_pcm_hw_param_last
+EXPORT_SYMBOL sound/core/snd-pcm 0xb6d5b6e2 snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL sound/core/snd-pcm 0xb7fda1d0 snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL sound/core/snd-pcm 0xc3e0b4d6 snd_pcm_set_sync
+EXPORT_SYMBOL sound/core/snd-pcm 0xcc1815fb snd_pcm_suspend_all
+EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xd22b9f82 snd_pcm_limit_hw_rates
+EXPORT_SYMBOL sound/core/snd-pcm 0xd5fb21a2 snd_pcm_link_rwlock
+EXPORT_SYMBOL sound/core/snd-pcm 0xd5ffa4e4 snd_pcm_lib_write
+EXPORT_SYMBOL sound/core/snd-pcm 0xd7e6730b snd_pcm_lib_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width
+EXPORT_SYMBOL sound/core/snd-pcm 0xe84bb809 snd_pcm_hw_rule_add
+EXPORT_SYMBOL sound/core/snd-pcm 0xe856715a snd_pcm_stop
+EXPORT_SYMBOL sound/core/snd-pcm 0xec1e6172 snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum
+EXPORT_SYMBOL sound/core/snd-pcm 0xf542511d snd_pcm_open_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xfe583d7a snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x0de8f6e0 snd_rawmidi_kernel_write
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x13ccaa3b snd_rawmidi_kernel_open
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x171e8bf2 snd_rawmidi_kernel_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x1de07a93 snd_rawmidi_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x2bbc84b6 snd_rawmidi_transmit_ack
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x475342b0 snd_rawmidi_transmit
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x4e0b917f snd_rawmidi_info_select
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x6359645c snd_rawmidi_drop_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x6f15eabc snd_rawmidi_receive
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x7257abeb snd_rawmidi_set_ops
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x802deb2d snd_rawmidi_input_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x805e6d22 snd_rawmidi_drain_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x924ad5d3 snd_rawmidi_transmit_peek
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xb59e30e3 snd_rawmidi_kernel_release
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xc94fd072 snd_rawmidi_drain_input
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xdd430045 snd_rawmidi_transmit_empty
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xf39e0339 snd_rawmidi_output_params
+EXPORT_SYMBOL sound/core/snd-timer 0x16a15c45 snd_timer_pause
+EXPORT_SYMBOL sound/core/snd-timer 0x1c21d399 snd_timer_resolution
+EXPORT_SYMBOL sound/core/snd-timer 0x3016cfd9 snd_timer_continue
+EXPORT_SYMBOL sound/core/snd-timer 0x45d3d4c5 snd_timer_open
+EXPORT_SYMBOL sound/core/snd-timer 0x47739e13 snd_timer_global_new
+EXPORT_SYMBOL sound/core/snd-timer 0x62844b9a snd_timer_global_register
+EXPORT_SYMBOL sound/core/snd-timer 0x6b81a432 snd_timer_stop
+EXPORT_SYMBOL sound/core/snd-timer 0x91355aeb snd_timer_start
+EXPORT_SYMBOL sound/core/snd-timer 0xa64ec45a snd_timer_interrupt
+EXPORT_SYMBOL sound/core/snd-timer 0xcbb53369 snd_timer_close
+EXPORT_SYMBOL sound/core/snd-timer 0xe0deb40e snd_timer_notify
+EXPORT_SYMBOL sound/core/snd-timer 0xe153af58 snd_timer_global_free
+EXPORT_SYMBOL sound/core/snd-timer 0xefe37316 snd_timer_new
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x585f85d4 snd_mpu401_uart_new
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x03b8fbfd snd_opl3_hwdep_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1917f4de snd_opl3_load_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x43157428 snd_opl3_find_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4a98cb95 snd_opl3_init
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x588bdc2f snd_opl3_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x94da9aac snd_opl3_timer_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x953a6e5f snd_opl3_create
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf9e88a82 snd_opl3_reset
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xfc29f267 snd_opl3_new
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1180f2df snd_vx_suspend
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1d08c249 snd_vx_dsp_boot
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3b725dcc snd_vx_setup_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x67ffa102 snd_vx_free_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x848575ca snd_vx_resume
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99551ba2 snd_vx_check_reg_bit
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xa5633741 snd_vx_load_boot_image
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xba8d7705 snd_vx_dsp_load
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe3aaa112 snd_vx_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x12aa8789 snd_ak4114_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x3e97f613 snd_ak4114_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x77e3d34c snd_ak4114_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x8ef13a2c snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xdae793e3 snd_ak4114_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf8e8b3f1 snd_ak4114_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x626c87e8 snd_ak4117_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x6eeb22b4 snd_ak4117_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x9d6e74ac snd_ak4117_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xa3104971 snd_ak4117_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xc6e524e1 snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd1f93cda snd_ak4117_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x083f6c35 snd_akm4xxx_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x1cbe9214 snd_akm4xxx_init
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x435f764e snd_akm4xxx_reset
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x8ec1daf5 snd_akm4xxx_write
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x2fd561ef snd_pt2258_reset
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xd0360984 snd_pt2258_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xc82e9321 snd_tea575x_init
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xfd54b9c0 snd_tea575x_exit
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x091ac738 snd_cs8427_iec958_build
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x22a041fb snd_cs8427_create
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x31ed9cd0 snd_cs8427_iec958_active
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd4628edd snd_cs8427_iec958_pcm
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xea88bf92 snd_cs8427_reg_write
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x319aa5c8 snd_i2c_device_free
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x4e89546f snd_i2c_probeaddr
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x6d2a7774 snd_i2c_device_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xb36cf357 snd_i2c_readbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xc7b0a913 snd_i2c_bus_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xedb02b6c snd_i2c_sendbytes
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x378bcc63 snd_sbdsp_create
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3f886570 snd_sbdsp_get_byte
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4012db2e snd_sbmixer_add_ctl
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x44814dd2 snd_sbmixer_read
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x4543c9b2 snd_sbdsp_command
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x7e64d54e snd_sbmixer_new
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x950fb48a snd_sbmixer_write
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc4a879be snd_sbmixer_resume
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xdd5d5c58 snd_sbdsp_reset
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xecfef68f snd_sbmixer_suspend
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x80a5fb97 snd_sb16dsp_pcm
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x9a8ddfe8 snd_sb16dsp_configure
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc981fb73 snd_sb16dsp_get_pcm_ops
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0dec1a47 snd_ac97_write
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x12e92f85 snd_ac97_mixer
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1c1a74b4 snd_ac97_pcm_close
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x238285b9 snd_ac97_write_cache
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x36db347f snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3aa4c22a snd_ac97_update
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x472c0237 snd_ac97_pcm_open
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4b67911e snd_ac97_update_bits
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5293b62d snd_ac97_bus
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x87561230 snd_ac97_pcm_assign
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x87e5fe28 snd_ac97_tune_hardware
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8ff7409b snd_ac97_get_short_name
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x96b5c663 snd_ac97_read
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9e818e6d snd_ac97_suspend
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa32415e7 snd_ac97_resume
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc56fd6be snd_ac97_set_rate
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcd1636d0 snd_ac97_update_power
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0b123401 snd_emu10k1_ptr_read
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x28ad8676 snd_emu10k1_synth_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x52d44d9a snd_emu10k1_synth_bzero
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x609b57ef snd_emu10k1_memblk_map
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x64b572cc snd_emu10k1_voice_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x75876502 snd_emu10k1_synth_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb6d3839a snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xea96006e snd_emu10k1_ptr_write
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf1c58643 snd_emu10k1_voice_alloc
+EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x7ddfeaf5 snd_hda_parse_generic_codec
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x6eba29bc snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x6f89c33d snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xf477b429 snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x250fc706 snd_trident_start_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x417c3fcd snd_trident_write_voice_regs
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xddb8b8a0 snd_trident_alloc_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe4c5e23a snd_trident_free_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xf665ec28 snd_trident_stop_voice
+EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x46c325d4 uda134x_dai
+EXPORT_SYMBOL sound/soundcore 0x5dab3aed sound_class
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x0c49619a snd_emux_new
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x16bb4fb8 snd_emux_unlock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x2f277547 snd_emux_free
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x448c03d5 snd_emux_terminate_all
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x6255ebad snd_emux_lock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x8343afc9 snd_emux_register
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x1a03e2a7 snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x1fd5c633 __snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x3b7a5dd5 __snd_util_memblk_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x5df2a7c8 snd_util_memhdr_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x730ef00e snd_util_mem_avail
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xa5644603 snd_util_memhdr_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xcad2f9f0 __snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xf7b219e6 snd_util_mem_free
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xef276860 snd_usbmidi_create
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x04dca738 lirc_unregister_driver
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x3f328c02 lirc_get_pdata
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0xc8eab2b9 lirc_register_driver
+EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list
+EXPORT_SYMBOL vmlinux 0x0006f45b scsi_remove_device
+EXPORT_SYMBOL vmlinux 0x001c6503 ps2_handle_response
+EXPORT_SYMBOL vmlinux 0x001c865b blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x009c7190 tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x00a49322 fb_class
+EXPORT_SYMBOL vmlinux 0x00d1d26f proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0x00d3d24c ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x00ea99b1 matroxfb_g450_setpll_cond
+EXPORT_SYMBOL vmlinux 0x01000e51 schedule
+EXPORT_SYMBOL vmlinux 0x01131ab6 netpoll_poll
+EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr
+EXPORT_SYMBOL vmlinux 0x012b230a kick_iocb
+EXPORT_SYMBOL vmlinux 0x0130beb5 skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0x013ab50b scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0x01533af1 bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0x01720c25 skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x0182f500 textsearch_unregister
+EXPORT_SYMBOL vmlinux 0x01873630 complete_request_key
+EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap
+EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data
+EXPORT_SYMBOL vmlinux 0x01a5fe7c skb_queue_purge
+EXPORT_SYMBOL vmlinux 0x01bb7a30 take_over_console
+EXPORT_SYMBOL vmlinux 0x01bcc99f tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0x01e82295 input_unregister_handler
+EXPORT_SYMBOL vmlinux 0x01eaf783 init_timer_key
+EXPORT_SYMBOL vmlinux 0x02145a43 nf_ct_attach
+EXPORT_SYMBOL vmlinux 0x022b01c3 fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x02384e8d ioremap_flags
+EXPORT_SYMBOL vmlinux 0x02413a76 udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0x024775b3 gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0x024fa810 fd_install
+EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x026ca26f dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0x029209b2 dquot_quota_on
+EXPORT_SYMBOL vmlinux 0x02991628 tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0x029d2f9e downgrade_write
+EXPORT_SYMBOL vmlinux 0x029d7ff4 bio_put
+EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a4181a inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table
+EXPORT_SYMBOL vmlinux 0x02b9b629 lookup_bdev
+EXPORT_SYMBOL vmlinux 0x02d30f9b blk_init_queue
+EXPORT_SYMBOL vmlinux 0x02d57849 sock_create_kern
+EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02ecd1bb tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact
+EXPORT_SYMBOL vmlinux 0x02f57a32 jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0x03102137 swiotlb_map_sg_attrs
+EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x035d7ff7 vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0x037a0cba kfree
+EXPORT_SYMBOL vmlinux 0x0385dd31 xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x039624e7 kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03ea4c51 soft_cursor
+EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x041d268f blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x04600899 pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0x0460a098 scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x046a9734 dquot_enable
+EXPORT_SYMBOL vmlinux 0x0478abb3 f_setown
+EXPORT_SYMBOL vmlinux 0x0479882b inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x047c7239 vfs_unlink
+EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x04a76b16 of_unregister_driver
+EXPORT_SYMBOL vmlinux 0x0518041e tcp_shutdown
+EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups
+EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock
+EXPORT_SYMBOL vmlinux 0x05704173 sock_no_bind
+EXPORT_SYMBOL vmlinux 0x05739aa6 alloc_etherdev_mq
+EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x0587e81b blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns
+EXPORT_SYMBOL vmlinux 0x05bd7497 ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x05c2c181 simple_transaction_set
+EXPORT_SYMBOL vmlinux 0x061651be strcat
+EXPORT_SYMBOL vmlinux 0x061c849c kmap_high
+EXPORT_SYMBOL vmlinux 0x0641dfc2 of_dev_put
+EXPORT_SYMBOL vmlinux 0x06453dd3 journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x0645662e phy_device_free
+EXPORT_SYMBOL vmlinux 0x065eab57 bio_flush_dcache_pages
+EXPORT_SYMBOL vmlinux 0x0675c7eb atomic64_cmpxchg
+EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx
+EXPORT_SYMBOL vmlinux 0x06960499 __f_setown
+EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize
+EXPORT_SYMBOL vmlinux 0x06c2ba3a bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x06ce15d3 xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0x06e85ee6 abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn
+EXPORT_SYMBOL vmlinux 0x0708d503 dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0x071d2642 of_find_compatible_node
+EXPORT_SYMBOL vmlinux 0x0724b03a qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8
+EXPORT_SYMBOL vmlinux 0x0728b391 udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x07780910 iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable
+EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong
+EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07c613a7 xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07d05d8f inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x07dfe95a pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0x07e8e6a4 should_remove_suid
+EXPORT_SYMBOL vmlinux 0x07fda63c generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x08127748 grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses
+EXPORT_SYMBOL vmlinux 0x0846ccbc fsnotify_find_mark_entry
+EXPORT_SYMBOL vmlinux 0x0851e7de otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0x0876b0e4 netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0x088cedac inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x08c5fa3e __xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0x08cb73ce tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0x08e509d8 unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var
+EXPORT_SYMBOL vmlinux 0x08ef074d generic_file_llseek_unlocked
+EXPORT_SYMBOL vmlinux 0x08f6a28d sock_no_listen
+EXPORT_SYMBOL vmlinux 0x09364ec7 __skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x093ec5d1 blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages
+EXPORT_SYMBOL vmlinux 0x09775cdc kref_get
+EXPORT_SYMBOL vmlinux 0x09835be9 alloc_file
+EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x0997de42 clocksource_register
+EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions
+EXPORT_SYMBOL vmlinux 0x09f91077 simple_fill_super
+EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a291241 thaw_super
+EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr
+EXPORT_SYMBOL vmlinux 0x0a4cceb1 phy_device_register
+EXPORT_SYMBOL vmlinux 0x0a53ec92 napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x0a889138 proto_register
+EXPORT_SYMBOL vmlinux 0x0a91e141 blk_recount_segments
+EXPORT_SYMBOL vmlinux 0x0ab7949e up
+EXPORT_SYMBOL vmlinux 0x0ac50b66 cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0x0ac7c8d2 __starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x0ac8f297 key_payload_reserve
+EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0ad81b8f blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0x0b0e9e8d ide_geometry_proc_fops
+EXPORT_SYMBOL vmlinux 0x0b167b83 journal_flush
+EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b673ce9 invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0x0b707ec3 dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b78aa6b block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0x0b817f13 of_device_alloc
+EXPORT_SYMBOL vmlinux 0x0b972424 qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0x0baca4b3 inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0x0bc148dc tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x0bd39c7d __dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x0bd4889f of_gpio_simple_xlate
+EXPORT_SYMBOL vmlinux 0x0bdaacf0 simple_unlink
+EXPORT_SYMBOL vmlinux 0x0be0ec8b register_framebuffer
+EXPORT_SYMBOL vmlinux 0x0c02f22d module_put
+EXPORT_SYMBOL vmlinux 0x0c12e626 __debugger_bpt
+EXPORT_SYMBOL vmlinux 0x0c1bd002 tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x0c3871a7 sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x0c478fc7 pmac_resume_agp_for_card
+EXPORT_SYMBOL vmlinux 0x0c658bb1 pci_claim_resource
+EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0c9b6089 nvram_get_size
+EXPORT_SYMBOL vmlinux 0x0c9fd1f1 block_truncate_page
+EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cb9460f swiotlb_sync_single_for_cpu
+EXPORT_SYMBOL vmlinux 0x0cb9aed8 find_or_create_page
+EXPORT_SYMBOL vmlinux 0x0cc73cf7 inode_add_bytes
+EXPORT_SYMBOL vmlinux 0x0d1694ca netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x0d37e1c2 lookup_one_len
+EXPORT_SYMBOL vmlinux 0x0d4cb7cd scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d605297 journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0dac7fe1 tty_unthrottle
+EXPORT_SYMBOL vmlinux 0x0db9a718 skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x0dbf38b8 mol_trampoline
+EXPORT_SYMBOL vmlinux 0x0debce95 bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x0dec36cd bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0x0e52592a panic
+EXPORT_SYMBOL vmlinux 0x0e711042 bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0x0e87aaf7 km_new_mapping
+EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq
+EXPORT_SYMBOL vmlinux 0x0ec646fb unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0x0ee62eed redraw_screen
+EXPORT_SYMBOL vmlinux 0x0eeb42ec sync_inode
+EXPORT_SYMBOL vmlinux 0x0ef20db1 kernstart_addr
+EXPORT_SYMBOL vmlinux 0x0f28cb91 nvram_read_byte
+EXPORT_SYMBOL vmlinux 0x0f32a909 ipv4_specific
+EXPORT_SYMBOL vmlinux 0x0f61c66d stop_tty
+EXPORT_SYMBOL vmlinux 0x0f745503 tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0x0f7ea48c ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x0f959ed3 bio_map_kern
+EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fc4a91e swiotlb_dma_supported
+EXPORT_SYMBOL vmlinux 0x0fcc4a59 unload_nls
+EXPORT_SYMBOL vmlinux 0x0fe905d6 napi_reuse_skb
+EXPORT_SYMBOL vmlinux 0x0ffdff6c scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x102185c1 backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x102c0df4 d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x103c3a34 d_invalidate
+EXPORT_SYMBOL vmlinux 0x10471118 wireless_send_event
+EXPORT_SYMBOL vmlinux 0x105c97bc inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0x106f9ae3 vlan_gro_receive
+EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint
+EXPORT_SYMBOL vmlinux 0x10991a9d jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0x10d47200 seq_putc
+EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10dfa6cb softnet_data
+EXPORT_SYMBOL vmlinux 0x10e5bc48 rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu
+EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype
+EXPORT_SYMBOL vmlinux 0x110ea538 blkdev_get
+EXPORT_SYMBOL vmlinux 0x1111665b jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x11538ca9 pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x11607a3b dquot_commit_info
+EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x11663cec adb_register
+EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x1170bdd0 serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x118f01ea putname
+EXPORT_SYMBOL vmlinux 0x11cf27a9 idr_destroy
+EXPORT_SYMBOL vmlinux 0x11d92a69 kill_block_super
+EXPORT_SYMBOL vmlinux 0x11dab3e0 eth_type_trans
+EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin
+EXPORT_SYMBOL vmlinux 0x12191db3 macio_dev_get
+EXPORT_SYMBOL vmlinux 0x121b8d21 vfs_readv
+EXPORT_SYMBOL vmlinux 0x121c1487 tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0x12207c2c ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x12475b44 of_platform_device_create
+EXPORT_SYMBOL vmlinux 0x1256133d pci_set_master
+EXPORT_SYMBOL vmlinux 0x126dbda8 dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0x128d2964 pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x12995b54 register_sysrq_key
+EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc
+EXPORT_SYMBOL vmlinux 0x12e54ad6 cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level
+EXPORT_SYMBOL vmlinux 0x12ef3535 eth_header
+EXPORT_SYMBOL vmlinux 0x12f225be call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0x12f40ed7 sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x12fa7db3 bio_pair_release
+EXPORT_SYMBOL vmlinux 0x1314425d d_alloc_name
+EXPORT_SYMBOL vmlinux 0x131cb88b scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x13303e12 tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0x133b4ee4 idr_get_next
+EXPORT_SYMBOL vmlinux 0x133be3ed invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0x133d3dd3 page_readlink
+EXPORT_SYMBOL vmlinux 0x133dddd1 netif_carrier_off
+EXPORT_SYMBOL vmlinux 0x13400ddf scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x134d25ae find_lock_page
+EXPORT_SYMBOL vmlinux 0x135d82ca simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x1362d4cf of_get_pci_address
+EXPORT_SYMBOL vmlinux 0x13752614 jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x13a9fd21 phy_attach_direct
+EXPORT_SYMBOL vmlinux 0x13e61c8c dput
+EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation
+EXPORT_SYMBOL vmlinux 0x1407c6e7 kmap_prot
+EXPORT_SYMBOL vmlinux 0x142e06fc pipe_unlock
+EXPORT_SYMBOL vmlinux 0x143fbc73 inet_put_port
+EXPORT_SYMBOL vmlinux 0x14675e59 phy_disable_interrupts
+EXPORT_SYMBOL vmlinux 0x146ede47 unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0x14caa695 proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x14d6017c phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x14d67aaf tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0x14e837a0 idr_find
+EXPORT_SYMBOL vmlinux 0x14f2f03a udp_proc_register
+EXPORT_SYMBOL vmlinux 0x1516dae6 bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x152e4f80 user_path_at
+EXPORT_SYMBOL vmlinux 0x153252ca netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x156a736a giveup_fpu
+EXPORT_SYMBOL vmlinux 0x15795b3d generic_getxattr
+EXPORT_SYMBOL vmlinux 0x15a58216 blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0x15be0fac get_gendisk
+EXPORT_SYMBOL vmlinux 0x15fe4df3 blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token
+EXPORT_SYMBOL vmlinux 0x164645d8 phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x164970a3 skb_push
+EXPORT_SYMBOL vmlinux 0x165dd184 alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x1693cbee skb_seq_read
+EXPORT_SYMBOL vmlinux 0x16e24cdd cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0x16f6388b security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0x1702316f kobject_del
+EXPORT_SYMBOL vmlinux 0x1715c784 hippi_type_trans
+EXPORT_SYMBOL vmlinux 0x172aa889 lookup_hash
+EXPORT_SYMBOL vmlinux 0x172c8d82 dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0x172e81d4 bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0x17391e58 remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x173f40db __scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock
+EXPORT_SYMBOL vmlinux 0x17782f2d neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x1783ccf9 napi_complete
+EXPORT_SYMBOL vmlinux 0x17aa156a __ucmpdi2
+EXPORT_SYMBOL vmlinux 0x17afeaf2 nobh_write_begin
+EXPORT_SYMBOL vmlinux 0x17cfbbcf swiotlb_unmap_sg
+EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17e86444 tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x18023939 __blk_run_queue
+EXPORT_SYMBOL vmlinux 0x181a8dea mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0x181eaaf9 sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0x1834d912 __neigh_event_send
+EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x1857be37 pci_map_rom
+EXPORT_SYMBOL vmlinux 0x1860d690 tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0x1863b714 copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0x192ed16e check_disk_change
+EXPORT_SYMBOL vmlinux 0x194caf7e tcp_parse_options
+EXPORT_SYMBOL vmlinux 0x19610e1f cpu_all_bits
+EXPORT_SYMBOL vmlinux 0x19918d7f fddi_type_trans
+EXPORT_SYMBOL vmlinux 0x199ce8f6 dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19d442a2 neigh_destroy
+EXPORT_SYMBOL vmlinux 0x19ee260a pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0x19f3816f pcim_pin_device
+EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x1a2d0555 jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0x1a4ee25a blk_plug_device_unlocked
+EXPORT_SYMBOL vmlinux 0x1a6c0725 pci_request_region
+EXPORT_SYMBOL vmlinux 0x1a785e44 pci_choose_state
+EXPORT_SYMBOL vmlinux 0x1a85029b tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in
+EXPORT_SYMBOL vmlinux 0x1aa33163 __sk_dst_check
+EXPORT_SYMBOL vmlinux 0x1abab98d phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x1abbe440 dqput
+EXPORT_SYMBOL vmlinux 0x1abdc3f2 unlock_buffer
+EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1ae62259 scsi_execute
+EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b139cc9 kmem_ptr_validate
+EXPORT_SYMBOL vmlinux 0x1b2a1600 of_n_addr_cells
+EXPORT_SYMBOL vmlinux 0x1b3676c4 __lock_page
+EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton
+EXPORT_SYMBOL vmlinux 0x1b753098 bio_alloc
+EXPORT_SYMBOL vmlinux 0x1b8a9d71 elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b8dd0dc jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1bb6ada5 tty_devnum
+EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0x1bc6284e iget_locked
+EXPORT_SYMBOL vmlinux 0x1bcfda71 module_refcount
+EXPORT_SYMBOL vmlinux 0x1bf47cf5 find_vma
+EXPORT_SYMBOL vmlinux 0x1c170f3d rtas
+EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c34cf5f xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x1c37dcb0 pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete
+EXPORT_SYMBOL vmlinux 0x1c76effc padata_alloc
+EXPORT_SYMBOL vmlinux 0x1c7e990c inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check
+EXPORT_SYMBOL vmlinux 0x1c89237a registered_fb
+EXPORT_SYMBOL vmlinux 0x1cbd4f1a bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cdec3d7 i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0x1cf7b7bb setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x1cf8e22b __alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0x1d00b67e dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d69c37d wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x1d9bf62f sk_alloc
+EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dca60f0 blk_get_request
+EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1ddf9d1b free_task
+EXPORT_SYMBOL vmlinux 0x1e15e983 blk_start_request
+EXPORT_SYMBOL vmlinux 0x1e17ec16 netif_rx
+EXPORT_SYMBOL vmlinux 0x1e2ad901 tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x1e3141e9 slow_work_cancel
+EXPORT_SYMBOL vmlinux 0x1e48e923 iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0x1e63118b generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr
+EXPORT_SYMBOL vmlinux 0x1e8ed981 scsi_block_requests
+EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1eb2c802 ip_mc_rejoin_group
+EXPORT_SYMBOL vmlinux 0x1eb66c94 macio_release_resource
+EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set
+EXPORT_SYMBOL vmlinux 0x1f0030e7 register_exec_domain
+EXPORT_SYMBOL vmlinux 0x1f02e0b5 pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x1f046c39 pcim_enable_device
+EXPORT_SYMBOL vmlinux 0x1f1411b2 phy_disconnect
+EXPORT_SYMBOL vmlinux 0x1f2bb62b fsnotify_obtain_group
+EXPORT_SYMBOL vmlinux 0x1f9ecb00 __xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x1fa9e85a mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x1fb8f80a do_truncate
+EXPORT_SYMBOL vmlinux 0x1fe5d1f2 get_sb_single
+EXPORT_SYMBOL vmlinux 0x1feaaf17 __wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x1ff5951d nf_reinject
+EXPORT_SYMBOL vmlinux 0x1ff69dd8 vfs_fstatat
+EXPORT_SYMBOL vmlinux 0x1ff7203e skb_store_bits
+EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul
+EXPORT_SYMBOL vmlinux 0x2002e042 phy_register_fixup
+EXPORT_SYMBOL vmlinux 0x20030ecd ioremap
+EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x206a15f4 tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x206b5fdc sock_rfree
+EXPORT_SYMBOL vmlinux 0x20752a3d shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x20804c3f audit_log_format
+EXPORT_SYMBOL vmlinux 0x2099f227 task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0x20a8df5e __blk_end_request
+EXPORT_SYMBOL vmlinux 0x20bd784d pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0x20c4fdca i2c_verify_client
+EXPORT_SYMBOL vmlinux 0x20e4d0e3 register_nls
+EXPORT_SYMBOL vmlinux 0x20f83a1c iterate_mounts
+EXPORT_SYMBOL vmlinux 0x20f93a47 kernel_connect
+EXPORT_SYMBOL vmlinux 0x21486e5d __breadahead
+EXPORT_SYMBOL vmlinux 0x214914d2 eth_header_parse
+EXPORT_SYMBOL vmlinux 0x2150d8f1 log_start_commit
+EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16
+EXPORT_SYMBOL vmlinux 0x21850ffe igrab
+EXPORT_SYMBOL vmlinux 0x21889179 bio_add_page
+EXPORT_SYMBOL vmlinux 0x21891752 jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x219f9bce tcf_hash_check
+EXPORT_SYMBOL vmlinux 0x21c7a09f cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0x2209c902 xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq
+EXPORT_SYMBOL vmlinux 0x223fb76c filemap_flush
+EXPORT_SYMBOL vmlinux 0x225f92f2 qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log
+EXPORT_SYMBOL vmlinux 0x2288378f system_state
+EXPORT_SYMBOL vmlinux 0x22a100d5 cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound
+EXPORT_SYMBOL vmlinux 0x22cd7e21 pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0x22e645b6 locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x22f0c6e0 switch_mmu_context
+EXPORT_SYMBOL vmlinux 0x22fa1f2c simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x2300f8a4 register_console
+EXPORT_SYMBOL vmlinux 0x230a0f69 swiotlb_sync_sg_for_device
+EXPORT_SYMBOL vmlinux 0x230c6d4b elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0x23154f71 of_register_driver
+EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul
+EXPORT_SYMBOL vmlinux 0x234e94bb __ide_dma_bad_drive
+EXPORT_SYMBOL vmlinux 0x2350034d end_page_writeback
+EXPORT_SYMBOL vmlinux 0x235e90f3 __wake_up_bit
+EXPORT_SYMBOL vmlinux 0x2368be6d posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x23880df6 __pagevec_release
+EXPORT_SYMBOL vmlinux 0x23b827ae devm_iounmap
+EXPORT_SYMBOL vmlinux 0x23e11e58 proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0x23e393b3 xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free
+EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node
+EXPORT_SYMBOL vmlinux 0x2425e596 rtnl_notify
+EXPORT_SYMBOL vmlinux 0x244e5c56 __napi_schedule
+EXPORT_SYMBOL vmlinux 0x2450a352 input_set_capability
+EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x249ea591 netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x24a6a2bf scsi_register_driver
+EXPORT_SYMBOL vmlinux 0x24bae219 get_pci_dma_ops
+EXPORT_SYMBOL vmlinux 0x24e9c32f pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0x24effdd9 scsi_remove_target
+EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function
+EXPORT_SYMBOL vmlinux 0x250059ba __nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x250178c5 dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x252fd2a0 load_nls
+EXPORT_SYMBOL vmlinux 0x25387280 tcp_disconnect
+EXPORT_SYMBOL vmlinux 0x253e064f i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0x2574ae2a blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0x257d5e2f mac_find_mode
+EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x259807e8 tc_classify_compat
+EXPORT_SYMBOL vmlinux 0x25cf8049 matroxfb_PLL_calcclock
+EXPORT_SYMBOL vmlinux 0x25f3bd2e atomic64_xchg
+EXPORT_SYMBOL vmlinux 0x262ae3d8 netdev_set_master
+EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc
+EXPORT_SYMBOL vmlinux 0x2656023f tcp4_gro_receive
+EXPORT_SYMBOL vmlinux 0x26945c13 pci_disable_msi
+EXPORT_SYMBOL vmlinux 0x26c92cc2 dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0x26d196f5 scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x26ed13c5 jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x26f495a4 mpage_writepage
+EXPORT_SYMBOL vmlinux 0x2711122c generic_listxattr
+EXPORT_SYMBOL vmlinux 0x2714042f mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x2715c1fc open_by_devnum
+EXPORT_SYMBOL vmlinux 0x272c9acd pmu_battery_count
+EXPORT_SYMBOL vmlinux 0x27445f83 pci_save_state
+EXPORT_SYMBOL vmlinux 0x275249ad register_con_driver
+EXPORT_SYMBOL vmlinux 0x277800b6 fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x278104ff bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0x2783515a sock_create_lite
+EXPORT_SYMBOL vmlinux 0x27864d57 memparse
+EXPORT_SYMBOL vmlinux 0x27a61b28 __secpath_destroy
+EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x27ca29b0 kernel_getpeername
+EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic
+EXPORT_SYMBOL vmlinux 0x27d64421 input_register_handler
+EXPORT_SYMBOL vmlinux 0x27e14f47 mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x27e69091 do_munmap
+EXPORT_SYMBOL vmlinux 0x282a8054 page_symlink
+EXPORT_SYMBOL vmlinux 0x28357659 tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0x28502d25 skb_find_text
+EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll
+EXPORT_SYMBOL vmlinux 0x287db73a security_inode_readlink
+EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28ad2056 simple_statfs
+EXPORT_SYMBOL vmlinux 0x28e6935e phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0x2935ff94 security_inode_permission
+EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x297945b4 ide_wait_stat
+EXPORT_SYMBOL vmlinux 0x2980d344 jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0x2984f71f dev_close
+EXPORT_SYMBOL vmlinux 0x2992ada8 new_inode
+EXPORT_SYMBOL vmlinux 0x29a10f4d truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x29a2f234 xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0x29a87e2b proc_dostring
+EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set
+EXPORT_SYMBOL vmlinux 0x29e062bc bioset_free
+EXPORT_SYMBOL vmlinux 0x29ebaa40 kern_path
+EXPORT_SYMBOL vmlinux 0x29ed27fc tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0x29ef58c6 inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x29f52bf9 inode_init_always
+EXPORT_SYMBOL vmlinux 0x2a05b3fd journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x2a11aa02 qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature
+EXPORT_SYMBOL vmlinux 0x2a40448d scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0x2a4b0110 fb_pan_display
+EXPORT_SYMBOL vmlinux 0x2a527006 bio_split
+EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp
+EXPORT_SYMBOL vmlinux 0x2aa519e0 matrox_mystique
+EXPORT_SYMBOL vmlinux 0x2abde94d update_region
+EXPORT_SYMBOL vmlinux 0x2ac179f2 inet_recvmsg
+EXPORT_SYMBOL vmlinux 0x2ad7ae5f ide_dump_status
+EXPORT_SYMBOL vmlinux 0x2b056cc9 blk_queue_ordered
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b1254c5 jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0x2b12925d cpumask_next_and
+EXPORT_SYMBOL vmlinux 0x2b304023 ftrace_event_seq
+EXPORT_SYMBOL vmlinux 0x2b704c30 vfs_readdir
+EXPORT_SYMBOL vmlinux 0x2b712bdc __mutex_init
+EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2bbdb9a5 __percpu_counter_add
+EXPORT_SYMBOL vmlinux 0x2bbfeeb0 nf_log_register
+EXPORT_SYMBOL vmlinux 0x2bc61da1 program_check_exception
+EXPORT_SYMBOL vmlinux 0x2bd6c0ff tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0x2bdb5344 inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0x2bdfba9d inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0x2be51648 tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x2c228e6f xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0x2c917f49 jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0x2c919c63 gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x2cb33a4c tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0x2ce3c8ce __generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic
+EXPORT_SYMBOL vmlinux 0x2cf3b368 find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x2cf9db12 percpu_counter_set
+EXPORT_SYMBOL vmlinux 0x2d01348b tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d557e3f journal_load
+EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2dbb7c77 simple_link
+EXPORT_SYMBOL vmlinux 0x2ddaf543 dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x2df595f4 set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0x2e290993 phy_connect_direct
+EXPORT_SYMBOL vmlinux 0x2e2c045b serio_open
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e321b0c pci_try_set_mwi
+EXPORT_SYMBOL vmlinux 0x2e32c51d lock_super
+EXPORT_SYMBOL vmlinux 0x2e4635ff find_get_page
+EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem
+EXPORT_SYMBOL vmlinux 0x2e5bfc5c follow_down
+EXPORT_SYMBOL vmlinux 0x2e935e50 km_policy_expired
+EXPORT_SYMBOL vmlinux 0x2e9db980 poll_freewait
+EXPORT_SYMBOL vmlinux 0x2f0afccd journal_destroy
+EXPORT_SYMBOL vmlinux 0x2f13bb14 udplite_prot
+EXPORT_SYMBOL vmlinux 0x2f213f32 tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x2f2a491c __scsi_put_command
+EXPORT_SYMBOL vmlinux 0x2f73b85b replace_mount_options
+EXPORT_SYMBOL vmlinux 0x2fae96de rtas_data_buf_lock
+EXPORT_SYMBOL vmlinux 0x2fb5333a devm_ioremap_prot
+EXPORT_SYMBOL vmlinux 0x2fee6235 matroxfb_vgaHWrestore
+EXPORT_SYMBOL vmlinux 0x2feea371 inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0x2ff713bc ip_ct_attach
+EXPORT_SYMBOL vmlinux 0x30084e13 jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0x302a35f1 writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0x303bee04 set_user_nice
+EXPORT_SYMBOL vmlinux 0x303ddf56 alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0x30543e04 of_platform_bus_probe
+EXPORT_SYMBOL vmlinux 0x30555a51 textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0x30c6509b netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x30f385b9 __devm_release_region
+EXPORT_SYMBOL vmlinux 0x310917fe sort
+EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x311d4631 __register_binfmt
+EXPORT_SYMBOL vmlinux 0x3121af38 fb_blank
+EXPORT_SYMBOL vmlinux 0x31410893 devm_ioremap
+EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d default_red
+EXPORT_SYMBOL vmlinux 0x314f2c37 journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x316bf0ca rfkill_get_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x316cd9fe down
+EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc
+EXPORT_SYMBOL vmlinux 0x31ed1707 down_timeout
+EXPORT_SYMBOL vmlinux 0x3201571f journal_start
+EXPORT_SYMBOL vmlinux 0x3233ce06 smp_call_function_many
+EXPORT_SYMBOL vmlinux 0x32690024 netif_device_detach
+EXPORT_SYMBOL vmlinux 0x326c2ee7 __dquot_transfer
+EXPORT_SYMBOL vmlinux 0x326df9e1 vfs_stat
+EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x327685ed save_mount_options
+EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb
+EXPORT_SYMBOL vmlinux 0x327bb243 pci_device_to_OF_node
+EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint
+EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy
+EXPORT_SYMBOL vmlinux 0x329859e0 neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x32af8b75 vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0x32bd9db1 netpoll_send_skb
+EXPORT_SYMBOL vmlinux 0x331c3ac1 ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x3325edcb bio_copy_kern
+EXPORT_SYMBOL vmlinux 0x3354c4fd register_netdevice
+EXPORT_SYMBOL vmlinux 0x33b2939a i8042_install_filter
+EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page
+EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0x33ed0a6f iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x33ff3cbb brioctl_set
+EXPORT_SYMBOL vmlinux 0x34043fa9 udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x340befe5 inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0x341dbfa3 __per_cpu_offset
+EXPORT_SYMBOL vmlinux 0x343b9bb2 tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x344c8d5d mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long
+EXPORT_SYMBOL vmlinux 0x34595e1a ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0x346789cc tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x34908c14 print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x3490c536 ethtool_op_get_rx_csum
+EXPORT_SYMBOL vmlinux 0x349cba85 strchr
+EXPORT_SYMBOL vmlinux 0x34dc0f03 bd_set_size
+EXPORT_SYMBOL vmlinux 0x34ec10e4 dev_mc_init
+EXPORT_SYMBOL vmlinux 0x350266d3 noop_llseek
+EXPORT_SYMBOL vmlinux 0x3509fc41 mark_info_dirty
+EXPORT_SYMBOL vmlinux 0x351238b2 dev_addr_init
+EXPORT_SYMBOL vmlinux 0x3520c456 generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x3525ca9f tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0x353931c5 serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x35424228 pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0x35580b8b free_netdev
+EXPORT_SYMBOL vmlinux 0x35586a35 scsi_register_interface
+EXPORT_SYMBOL vmlinux 0x358036a5 lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x35ad4da0 udp_poll
+EXPORT_SYMBOL vmlinux 0x35bf6cfa jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator
+EXPORT_SYMBOL vmlinux 0x35da2e61 radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x35ebb34e vc_resize
+EXPORT_SYMBOL vmlinux 0x35ede8de clear_user_page
+EXPORT_SYMBOL vmlinux 0x35f3e2f8 sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x35fccfc5 __pci_register_driver
+EXPORT_SYMBOL vmlinux 0x36220ea8 blk_remove_plug
+EXPORT_SYMBOL vmlinux 0x36247a01 mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x36370f07 skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x369171c5 vm_map_ram
+EXPORT_SYMBOL vmlinux 0x3697b78d input_release_device
+EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36fbc4c9 mdiobus_scan
+EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport
+EXPORT_SYMBOL vmlinux 0x371dcfeb security_path_rename
+EXPORT_SYMBOL vmlinux 0x3726da0a __xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level
+EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x374ed073 scnprintf
+EXPORT_SYMBOL vmlinux 0x3754c06e ip_defrag
+EXPORT_SYMBOL vmlinux 0x376f82a5 prepare_creds
+EXPORT_SYMBOL vmlinux 0x37952add key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic
+EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37e21e8f wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64
+EXPORT_SYMBOL vmlinux 0x38278311 tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0x384789d8 input_allocate_device
+EXPORT_SYMBOL vmlinux 0x38482f11 __bforget
+EXPORT_SYMBOL vmlinux 0x38630acc security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x38689a7a devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0x386f7bb7 __inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x38730db8 sg_miter_start
+EXPORT_SYMBOL vmlinux 0x387468af da903x_query_status
+EXPORT_SYMBOL vmlinux 0x38821188 pci_domain_nr
+EXPORT_SYMBOL vmlinux 0x3886f0c2 fput
+EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x389a96d5 scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0x38b6adae seq_path
+EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38ca19c3 mapping_tagged
+EXPORT_SYMBOL vmlinux 0x38dd67e6 ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios
+EXPORT_SYMBOL vmlinux 0x38fc0ead bdget
+EXPORT_SYMBOL vmlinux 0x390a7b72 seq_bitmap
+EXPORT_SYMBOL vmlinux 0x39186ba5 dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0x3923e171 arp_create
+EXPORT_SYMBOL vmlinux 0x3964f076 netlink_set_err
+EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x399dc033 scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x39a7671f i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x39acf7c0 __serio_register_driver
+EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0x39ce6224 blk_plug_device
+EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a36fb33 pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0x3a6e1810 alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0x3a92c104 rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x3a9ab4c1 phy_driver_register
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3abf785f blk_complete_request
+EXPORT_SYMBOL vmlinux 0x3af33deb matroxfb_wait_for_sync
+EXPORT_SYMBOL vmlinux 0x3af62668 unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x3b06f27d sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0x3b1e34cb cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0x3b1fae52 inet_release
+EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0x3b64f8e6 __lookup_one_len
+EXPORT_SYMBOL vmlinux 0x3b66f88a __netif_schedule
+EXPORT_SYMBOL vmlinux 0x3b8b4e51 datagram_poll
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3bd524c2 bd_claim
+EXPORT_SYMBOL vmlinux 0x3c1c41d3 rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf
+EXPORT_SYMBOL vmlinux 0x3c316053 padata_stop
+EXPORT_SYMBOL vmlinux 0x3c61861d vga_client_register
+EXPORT_SYMBOL vmlinux 0x3c8a8cff directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0x3c962561 pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size
+EXPORT_SYMBOL vmlinux 0x3cb785ab gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq
+EXPORT_SYMBOL vmlinux 0x3cf1289b sockfd_lookup
+EXPORT_SYMBOL vmlinux 0x3d11c336 filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x3d2fa84f mntput_no_expire
+EXPORT_SYMBOL vmlinux 0x3d3fc9e9 sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0x3d685cb6 make_bad_inode
+EXPORT_SYMBOL vmlinux 0x3d87c296 i2c_del_driver
+EXPORT_SYMBOL vmlinux 0x3d8e8f45 dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0x3daa69da vfs_lstat
+EXPORT_SYMBOL vmlinux 0x3dc5ded3 cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0x3ddce47d kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0x3de29a68 qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e07c18d nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks
+EXPORT_SYMBOL vmlinux 0x3e38c5bd unregister_nls
+EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e775a72 udp_ioctl
+EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3ea486aa sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x3eaf8801 scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0x3ebc58e3 register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x3ecfd7b8 genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f16cf9f blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0x3f394702 slow_work_unregister_user
+EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec
+EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f4e8984 end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0x3f5013ec of_find_device_by_node
+EXPORT_SYMBOL vmlinux 0x3f550bc0 clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x3f85933d phy_attach
+EXPORT_SYMBOL vmlinux 0x3f874ef7 clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0x3f8b5170 seq_open
+EXPORT_SYMBOL vmlinux 0x3f95504d seq_read
+EXPORT_SYMBOL vmlinux 0x3fa8e9d1 __scm_destroy
+EXPORT_SYMBOL vmlinux 0x3fc6cdc8 pagevec_lookup
+EXPORT_SYMBOL vmlinux 0x3fea8492 scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0x3feb36b8 __scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable
+EXPORT_SYMBOL vmlinux 0x4002170a skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x40349008 kobject_put
+EXPORT_SYMBOL vmlinux 0x404d9331 is_container_init
+EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump
+EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds
+EXPORT_SYMBOL vmlinux 0x4073d318 pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0x407a8b3a __lru_cache_add
+EXPORT_SYMBOL vmlinux 0x4087daa4 nla_reserve
+EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40b908f2 dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x40da9f91 __dquot_free_space
+EXPORT_SYMBOL vmlinux 0x40f1ad10 tb_ticks_per_jiffy
+EXPORT_SYMBOL vmlinux 0x40fb418b try_to_release_page
+EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring
+EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring
+EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode
+EXPORT_SYMBOL vmlinux 0x411821c6 blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0x4126c789 gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp
+EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user
+EXPORT_SYMBOL vmlinux 0x41553148 ps2_drain
+EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features
+EXPORT_SYMBOL vmlinux 0x4185cf4b radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x419cdb64 tty_port_hangup
+EXPORT_SYMBOL vmlinux 0x41a8606b pci_pme_active
+EXPORT_SYMBOL vmlinux 0x41a89280 ether_setup
+EXPORT_SYMBOL vmlinux 0x41bb9511 neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0x41d72574 vga_tryget
+EXPORT_SYMBOL vmlinux 0x41f4121d macio_enable_devres
+EXPORT_SYMBOL vmlinux 0x4209a1f6 path_is_under
+EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x4212182a ilookup5
+EXPORT_SYMBOL vmlinux 0x42132829 tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0x42224298 sscanf
+EXPORT_SYMBOL vmlinux 0x4252a8d7 tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0x425e7f98 names_cachep
+EXPORT_SYMBOL vmlinux 0x42644e26 grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0x426ccd5a generic_make_request
+EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42a9db0a lock_may_write
+EXPORT_SYMBOL vmlinux 0x42d7eb65 bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x42e7bad3 xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x42e9745f i2c_release_client
+EXPORT_SYMBOL vmlinux 0x42f66ea6 call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages
+EXPORT_SYMBOL vmlinux 0x4305e294 napi_gro_frags
+EXPORT_SYMBOL vmlinux 0x43277049 generic_show_options
+EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short
+EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem
+EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32
+EXPORT_SYMBOL vmlinux 0x43792928 sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all
+EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get
+EXPORT_SYMBOL vmlinux 0x43e40ffe devm_free_irq
+EXPORT_SYMBOL vmlinux 0x4413f7f8 generic_file_mmap
+EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x4430c75c ida_pre_get
+EXPORT_SYMBOL vmlinux 0x44314efb radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0x444779c4 nla_find
+EXPORT_SYMBOL vmlinux 0x44869dfc swiotlb_sync_single_for_device
+EXPORT_SYMBOL vmlinux 0x44a73e4c ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0x44b9d3c6 tcp_connect
+EXPORT_SYMBOL vmlinux 0x44cf7f35 sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0x44ddc58b kobject_init
+EXPORT_SYMBOL vmlinux 0x44e42983 unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0x44e9a829 match_token
+EXPORT_SYMBOL vmlinux 0x44eb192e wait_for_completion
+EXPORT_SYMBOL vmlinux 0x45205470 remove_proc_entry
+EXPORT_SYMBOL vmlinux 0x453b1097 pci_fixup_device
+EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled
+EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x4572fc24 pagecache_write_end
+EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0x458b8b91 swiotlb_sync_sg_for_cpu
+EXPORT_SYMBOL vmlinux 0x45947727 param_array_set
+EXPORT_SYMBOL vmlinux 0x4596db6a sys_sigreturn
+EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states
+EXPORT_SYMBOL vmlinux 0x45beb14b padata_set_cpumask
+EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45d34a27 i2c_use_client
+EXPORT_SYMBOL vmlinux 0x45e53dc2 unlock_rename
+EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user
+EXPORT_SYMBOL vmlinux 0x4628a922 dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy
+EXPORT_SYMBOL vmlinux 0x465757c3 cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x466c14a7 __delay
+EXPORT_SYMBOL vmlinux 0x467702a4 bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0x46d96030 blk_unplug
+EXPORT_SYMBOL vmlinux 0x46e2d745 dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x472d2a9a radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x4743b11b skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x474662c8 pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x47609187 freeze_bdev
+EXPORT_SYMBOL vmlinux 0x476172ac phy_sanitize_settings
+EXPORT_SYMBOL vmlinux 0x478dbf23 dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x479b786b inet_frags_init
+EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit
+EXPORT_SYMBOL vmlinux 0x47a8980e ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x47ca5cf9 inet_register_protosw
+EXPORT_SYMBOL vmlinux 0x48000553 mempool_create_node
+EXPORT_SYMBOL vmlinux 0x481ce6ce cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x4828e088 ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0x482fd567 dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x483688e9 filp_open
+EXPORT_SYMBOL vmlinux 0x483d1c74 bdi_unregister
+EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue
+EXPORT_SYMBOL vmlinux 0x48500a0f do_splice_from
+EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days
+EXPORT_SYMBOL vmlinux 0x4859eff8 __blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x48676171 vfs_link
+EXPORT_SYMBOL vmlinux 0x486a845a inet_add_protocol
+EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition
+EXPORT_SYMBOL vmlinux 0x48ae9d21 matroxfb_register_driver
+EXPORT_SYMBOL vmlinux 0x48b7c0d8 padata_remove_cpu
+EXPORT_SYMBOL vmlinux 0x48bf3610 __skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x48c1d080 tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0x48cc03ab key_link
+EXPORT_SYMBOL vmlinux 0x48f0326e mod_timer
+EXPORT_SYMBOL vmlinux 0x4902ee0b splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0x492d57fa of_get_gpio_flags
+EXPORT_SYMBOL vmlinux 0x493f18ac sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x49510b25 sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x499d26e6 simple_setsize
+EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49bec2a3 dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x49c3ddbb netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0x49db2a33 ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string
+EXPORT_SYMBOL vmlinux 0x4a05db89 request_key
+EXPORT_SYMBOL vmlinux 0x4a080328 lock_may_read
+EXPORT_SYMBOL vmlinux 0x4a0b5d1f dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0x4a164f4d pci_read_vpd
+EXPORT_SYMBOL vmlinux 0x4a290d4d cur_cpu_spec
+EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a6d499b d_genocide
+EXPORT_SYMBOL vmlinux 0x4a7724dd create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x4a8853fa key_put
+EXPORT_SYMBOL vmlinux 0x4a8973d3 neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x4a8cac0e backlight_force_update
+EXPORT_SYMBOL vmlinux 0x4a971ec7 radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc
+EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x4aad83cc vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x4afc8175 clear_inode
+EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b33997b dquot_file_open
+EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals
+EXPORT_SYMBOL vmlinux 0x4b469a59 dev_get_by_flags
+EXPORT_SYMBOL vmlinux 0x4b4b52b2 netif_device_attach
+EXPORT_SYMBOL vmlinux 0x4b5584ba security_path_unlink
+EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on
+EXPORT_SYMBOL vmlinux 0x4b8358e0 fsync_bdev
+EXPORT_SYMBOL vmlinux 0x4b86404e __generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x4b8d1a5e padata_start
+EXPORT_SYMBOL vmlinux 0x4b98ed51 kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0x4b9ed75d search_binary_handler
+EXPORT_SYMBOL vmlinux 0x4b9f9a0b input_register_handle
+EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags
+EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh
+EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr
+EXPORT_SYMBOL vmlinux 0x4c2de5e6 file_fsync
+EXPORT_SYMBOL vmlinux 0x4ca52200 xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0x4cbb7921 unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cd0ffb3 tr_type_trans
+EXPORT_SYMBOL vmlinux 0x4cebe3b1 default_unplug_io_fn
+EXPORT_SYMBOL vmlinux 0x4cf4bde9 pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0x4d0577b6 wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0x4d0bac16 d_rehash
+EXPORT_SYMBOL vmlinux 0x4d1dd539 tcf_hash_search
+EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask
+EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0x4db7201e netlink_unicast
+EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dec6038 memscan
+EXPORT_SYMBOL vmlinux 0x4def52f0 seq_lseek
+EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e0d213b pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0x4e174f35 dst_discard
+EXPORT_SYMBOL vmlinux 0x4e2b7c74 dm_get_device
+EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int
+EXPORT_SYMBOL vmlinux 0x4e36aa5b tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console
+EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp
+EXPORT_SYMBOL vmlinux 0x4e8fc850 journal_ack_err
+EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum
+EXPORT_SYMBOL vmlinux 0x4ecbf80c abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x4ed96438 sock_wfree
+EXPORT_SYMBOL vmlinux 0x4eecda83 put_mnt_ns
+EXPORT_SYMBOL vmlinux 0x4f078338 __scm_send
+EXPORT_SYMBOL vmlinux 0x4f14b788 journal_init_dev
+EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f907bb8 pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0x4fab7934 padata_add_cpu
+EXPORT_SYMBOL vmlinux 0x4fbf0562 vfs_follow_link
+EXPORT_SYMBOL vmlinux 0x4fd1526d skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command
+EXPORT_SYMBOL vmlinux 0x4fe99583 atomic64_dec_if_positive
+EXPORT_SYMBOL vmlinux 0x4ff1807f ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x4ffc1558 netpoll_poll_dev
+EXPORT_SYMBOL vmlinux 0x50167da7 posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x50563c0d tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x50868358 km_query
+EXPORT_SYMBOL vmlinux 0x50884b60 pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0x5094ce15 zero_fill_bio
+EXPORT_SYMBOL vmlinux 0x50def7cb phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x50ed45d3 pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0x50fcc97b of_find_device_by_phandle
+EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x511bd689 dqget
+EXPORT_SYMBOL vmlinux 0x5126b0f7 simple_getattr
+EXPORT_SYMBOL vmlinux 0x512bb340 pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0x514b518f elv_add_request
+EXPORT_SYMBOL vmlinux 0x515e24a7 flush_instruction_cache
+EXPORT_SYMBOL vmlinux 0x516bbed7 iput
+EXPORT_SYMBOL vmlinux 0x51861e48 vfs_writev
+EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait
+EXPORT_SYMBOL vmlinux 0x51a3b045 matrox_G100
+EXPORT_SYMBOL vmlinux 0x51b7bfd8 devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0x51c52f69 read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup
+EXPORT_SYMBOL vmlinux 0x51f03014 pci_restore_state
+EXPORT_SYMBOL vmlinux 0x51f33586 ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x5217f12b dquot_release
+EXPORT_SYMBOL vmlinux 0x52214677 pci_assign_resource
+EXPORT_SYMBOL vmlinux 0x522c8862 scsi_scan_target
+EXPORT_SYMBOL vmlinux 0x52391895 blk_execute_rq
+EXPORT_SYMBOL vmlinux 0x524ddcc7 fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x525694c9 qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday
+EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read
+EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy
+EXPORT_SYMBOL vmlinux 0x52c2ef34 rb_erase
+EXPORT_SYMBOL vmlinux 0x52c56030 cdrom_open
+EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort
+EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend
+EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x5332a705 of_find_node_by_type
+EXPORT_SYMBOL vmlinux 0x533d2e30 security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat
+EXPORT_SYMBOL vmlinux 0x53462c7d iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x53463ab3 dma_pool_free
+EXPORT_SYMBOL vmlinux 0x5369502e tty_set_operations
+EXPORT_SYMBOL vmlinux 0x539d6b11 pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0x53a612bb proc_mkdir
+EXPORT_SYMBOL vmlinux 0x53a80262 simple_write_begin
+EXPORT_SYMBOL vmlinux 0x53aafe96 blk_register_region
+EXPORT_SYMBOL vmlinux 0x53bfac7c macio_dev_put
+EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x53cc615e ppc_md
+EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns
+EXPORT_SYMBOL vmlinux 0x54095c02 vmap
+EXPORT_SYMBOL vmlinux 0x541064e2 dev_change_flags
+EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate
+EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x544cd955 pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0x549d2fb9 unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x54ac9b9b scsi_host_put
+EXPORT_SYMBOL vmlinux 0x54c85d41 key_validate
+EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54ef4b66 gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0x54f8c7b3 jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x552836c2 jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x5558c4e9 blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x5568c553 complete
+EXPORT_SYMBOL vmlinux 0x55693f04 __ip_select_ident
+EXPORT_SYMBOL vmlinux 0x556dd08d blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table
+EXPORT_SYMBOL vmlinux 0x55899733 qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x558cc1ea locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x55b93df3 log_wait_commit
+EXPORT_SYMBOL vmlinux 0x55c3958f elv_rb_del
+EXPORT_SYMBOL vmlinux 0x55e5ccc4 udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday
+EXPORT_SYMBOL vmlinux 0x560a53b9 lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x561fc913 thaw_process
+EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user
+EXPORT_SYMBOL vmlinux 0x5665ed01 sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x5682fbd3 block_read_full_page
+EXPORT_SYMBOL vmlinux 0x568a6686 scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0x5698cc8e tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic
+EXPORT_SYMBOL vmlinux 0x56a2c139 pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress
+EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56cb313b unregister_quota_format
+EXPORT_SYMBOL vmlinux 0x56d45849 pci_dev_get
+EXPORT_SYMBOL vmlinux 0x56da48ef dev_set_mtu
+EXPORT_SYMBOL vmlinux 0x56dbbeee netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0x56e62688 DAC1064_global_init
+EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function
+EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x5745394d dev_trans_start
+EXPORT_SYMBOL vmlinux 0x574a7f71 cfb_imageblit
+EXPORT_SYMBOL vmlinux 0x574ac5d5 __pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x5750e7b1 mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0x57515c66 skb_unlink
+EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16
+EXPORT_SYMBOL vmlinux 0x577de0c3 insert_inode_locked
+EXPORT_SYMBOL vmlinux 0x57941f75 of_get_mac_address
+EXPORT_SYMBOL vmlinux 0x57a6504e vsnprintf
+EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57c4a1d6 sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path
+EXPORT_SYMBOL vmlinux 0x57dfd8e6 tty_write_room
+EXPORT_SYMBOL vmlinux 0x57e65328 iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0x5809f299 pci_disable_device
+EXPORT_SYMBOL vmlinux 0x582a4747 cacheable_memcpy
+EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep
+EXPORT_SYMBOL vmlinux 0x586e4c7e ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x58770b82 rfkill_unregister
+EXPORT_SYMBOL vmlinux 0x58aa7ace dcache_dir_open
+EXPORT_SYMBOL vmlinux 0x58ba72b0 security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0x58c7ecf4 path_put
+EXPORT_SYMBOL vmlinux 0x58c91af6 abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x58f2d882 nf_log_packet
+EXPORT_SYMBOL vmlinux 0x5917f832 blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0x59215077 do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client
+EXPORT_SYMBOL vmlinux 0x593ad8fa tcp4_gro_complete
+EXPORT_SYMBOL vmlinux 0x5949881e dm_table_put
+EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map
+EXPORT_SYMBOL vmlinux 0x594e75da set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page
+EXPORT_SYMBOL vmlinux 0x596165fd rfkill_set_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x596be8e8 lease_modify
+EXPORT_SYMBOL vmlinux 0x597628bf tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0x59ac4799 scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0x59b3378a completion_done
+EXPORT_SYMBOL vmlinux 0x59b46fd1 mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x59c995bf of_register_i2c_devices
+EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource
+EXPORT_SYMBOL vmlinux 0x59fe406b udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x5a20cefb ide_proc_register_driver
+EXPORT_SYMBOL vmlinux 0x5a3c3c1c scsi_register
+EXPORT_SYMBOL vmlinux 0x5a45fbe7 pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x5a54c4a2 dm_table_get_md
+EXPORT_SYMBOL vmlinux 0x5a634234 pci_find_capability
+EXPORT_SYMBOL vmlinux 0x5a70c822 netdev_state_change
+EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a8132a5 framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x5a9c8154 dst_destroy
+EXPORT_SYMBOL vmlinux 0x5aa1375b tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0x5ab67931 do_IRQ
+EXPORT_SYMBOL vmlinux 0x5ad8cd27 ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0x5aee0f69 mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem
+EXPORT_SYMBOL vmlinux 0x5b281a6f wake_up_process
+EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present
+EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0x5b7ee4ff sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x5b831d8e netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock
+EXPORT_SYMBOL vmlinux 0x5ba5f3ae dw_spi_suspend_host
+EXPORT_SYMBOL vmlinux 0x5bcb3949 of_match_node
+EXPORT_SYMBOL vmlinux 0x5bfd4104 xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x5c02a7fe block_commit_write
+EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one
+EXPORT_SYMBOL vmlinux 0x5c37f319 _raw_spin_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq
+EXPORT_SYMBOL vmlinux 0x5c4c73e1 scsi_add_device
+EXPORT_SYMBOL vmlinux 0x5c53825f write_cache_pages
+EXPORT_SYMBOL vmlinux 0x5cceded8 generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0x5cdeb469 tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0x5ce0e76a bio_free
+EXPORT_SYMBOL vmlinux 0x5ce75bb0 scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0x5cf28eb0 seq_write
+EXPORT_SYMBOL vmlinux 0x5cfc7fe6 follow_up
+EXPORT_SYMBOL vmlinux 0x5d23f12d get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x5d307d0f genphy_update_link
+EXPORT_SYMBOL vmlinux 0x5d4bc209 set_create_files_as
+EXPORT_SYMBOL vmlinux 0x5d744831 serio_rescan
+EXPORT_SYMBOL vmlinux 0x5d8a5793 of_match_device
+EXPORT_SYMBOL vmlinux 0x5da7e4bc blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0x5db08fed pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0x5db64a21 fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0x5df3e79e __skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up
+EXPORT_SYMBOL vmlinux 0x5e3c4079 pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0x5e481010 input_get_keycode
+EXPORT_SYMBOL vmlinux 0x5e536ced security_path_truncate
+EXPORT_SYMBOL vmlinux 0x5e5c1ee9 skb_queue_head
+EXPORT_SYMBOL vmlinux 0x5e932c5d bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask
+EXPORT_SYMBOL vmlinux 0x5e9e0663 kernel_accept
+EXPORT_SYMBOL vmlinux 0x5eb68174 blk_free_tags
+EXPORT_SYMBOL vmlinux 0x5ebf1861 generic_delete_inode
+EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd
+EXPORT_SYMBOL vmlinux 0x5efbf006 tty_kref_put
+EXPORT_SYMBOL vmlinux 0x5f0b6b65 i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0x5f754e5a memset
+EXPORT_SYMBOL vmlinux 0x5f863ab1 sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x5f8963d9 page_follow_link_light
+EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base
+EXPORT_SYMBOL vmlinux 0x5f9e7a5c tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0x5fa74a43 blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0x5fc7c1f2 dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0x5feedba6 skb_trim
+EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x6044f123 max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x605f246a register_netdev
+EXPORT_SYMBOL vmlinux 0x60690eee cont_write_begin
+EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net
+EXPORT_SYMBOL vmlinux 0x60a45b13 pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0x60b8b2b3 swiotlb_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x60e4ae24 tc_classify
+EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n
+EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x615e4857 tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0x61681cd3 iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0x61862c72 rfkill_register
+EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free
+EXPORT_SYMBOL vmlinux 0x6196f8bf pcibios_fixup_bus
+EXPORT_SYMBOL vmlinux 0x6197767d __elv_add_request
+EXPORT_SYMBOL vmlinux 0x61a60f1f rb_replace_node
+EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61c3688b module_layout
+EXPORT_SYMBOL vmlinux 0x61cc9d30 tcp_poll
+EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb
+EXPORT_SYMBOL vmlinux 0x62053825 wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0x620ed9fa matroxfb_g450_setclk
+EXPORT_SYMBOL vmlinux 0x623d7182 _chrp_type
+EXPORT_SYMBOL vmlinux 0x6241f6c1 blk_insert_request
+EXPORT_SYMBOL vmlinux 0x6258ff7a panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister
+EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x628332e8 pmu_power_flags
+EXPORT_SYMBOL vmlinux 0x62841a37 contig_page_data
+EXPORT_SYMBOL vmlinux 0x62b30b31 tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x6300f8dc unregister_key_type
+EXPORT_SYMBOL vmlinux 0x63146556 iget5_locked
+EXPORT_SYMBOL vmlinux 0x633dcd84 pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0x63538716 kernel_getsockname
+EXPORT_SYMBOL vmlinux 0x635f75d9 pcim_iomap
+EXPORT_SYMBOL vmlinux 0x6379439f del_timer_sync
+EXPORT_SYMBOL vmlinux 0x637f9f70 input_open_device
+EXPORT_SYMBOL vmlinux 0x638c2984 dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x63bfdcf7 scsi_device_get
+EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x63efc536 radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x640c0e36 init_net
+EXPORT_SYMBOL vmlinux 0x64127703 disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x6449f2cb dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x645e1b2c i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll
+EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait
+EXPORT_SYMBOL vmlinux 0x649fbf07 giveup_altivec
+EXPORT_SYMBOL vmlinux 0x64a485f7 neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0x64c52704 __bio_clone
+EXPORT_SYMBOL vmlinux 0x64cec367 jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x64e73697 flush_signals
+EXPORT_SYMBOL vmlinux 0x65028e7b __rta_fill
+EXPORT_SYMBOL vmlinux 0x65165ed5 rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0x651a4139 test_taint
+EXPORT_SYMBOL vmlinux 0x6525ac02 blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x652bae35 dst_release
+EXPORT_SYMBOL vmlinux 0x65400222 __irq_offset_value
+EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name
+EXPORT_SYMBOL vmlinux 0x654a73ba register_8022_client
+EXPORT_SYMBOL vmlinux 0x65708264 tty_name
+EXPORT_SYMBOL vmlinux 0x6577280f __blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x6581154c blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0x65ba476e scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock
+EXPORT_SYMBOL vmlinux 0x65bed8a2 pcim_iounmap
+EXPORT_SYMBOL vmlinux 0x65ccf7dd inet_bind
+EXPORT_SYMBOL vmlinux 0x65ee7398 udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0x65f9a8eb i2c_master_send
+EXPORT_SYMBOL vmlinux 0x662f1e4a ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x6642bcf3 init_buffer
+EXPORT_SYMBOL vmlinux 0x664baa55 abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x664e3077 sock_wake_async
+EXPORT_SYMBOL vmlinux 0x6663db60 __init_rwsem
+EXPORT_SYMBOL vmlinux 0x666dee05 of_phy_connect
+EXPORT_SYMBOL vmlinux 0x66881ae8 neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x668eb5a9 invalidate_partition
+EXPORT_SYMBOL vmlinux 0x66aec0ae kernel_read
+EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write
+EXPORT_SYMBOL vmlinux 0x66d9c3f4 consume_skb
+EXPORT_SYMBOL vmlinux 0x66e546d7 fb_find_mode
+EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time
+EXPORT_SYMBOL vmlinux 0x67118860 tty_port_put
+EXPORT_SYMBOL vmlinux 0x6736745c __netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x6739aa74 set_bh_page
+EXPORT_SYMBOL vmlinux 0x673ad9af cdrom_mode_sense
+EXPORT_SYMBOL vmlinux 0x6740903e generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0x676a35fd kmem_cache_alloc_notrace
+EXPORT_SYMBOL vmlinux 0x676d7f82 dw_spi_add_host
+EXPORT_SYMBOL vmlinux 0x676fcf0d pcix_get_mmrbc
+EXPORT_SYMBOL vmlinux 0x677aa65f file_update_time
+EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67f4fc91 dcache_readdir
+EXPORT_SYMBOL vmlinux 0x67f90785 destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x681c7814 xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x68270d3e block_write_end
+EXPORT_SYMBOL vmlinux 0x6828e6a7 generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x682bd0e5 xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0x683c4933 kernel_listen
+EXPORT_SYMBOL vmlinux 0x684ef92e __serio_register_port
+EXPORT_SYMBOL vmlinux 0x685745ed single_open
+EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit
+EXPORT_SYMBOL vmlinux 0x68700216 of_mm_gpiochip_add
+EXPORT_SYMBOL vmlinux 0x68745c18 matroxfb_DAC_out
+EXPORT_SYMBOL vmlinux 0x6882037d kunmap_high
+EXPORT_SYMBOL vmlinux 0x689bef16 vfs_fsync
+EXPORT_SYMBOL vmlinux 0x68b0ac13 pci_release_regions
+EXPORT_SYMBOL vmlinux 0x68cab3b8 unlock_super
+EXPORT_SYMBOL vmlinux 0x68e00c03 of_device_is_compatible
+EXPORT_SYMBOL vmlinux 0x68e0e289 idr_remove
+EXPORT_SYMBOL vmlinux 0x68e15662 bio_clone
+EXPORT_SYMBOL vmlinux 0x68e1bc96 mpage_readpages
+EXPORT_SYMBOL vmlinux 0x69168ec7 arp_broken_ops
+EXPORT_SYMBOL vmlinux 0x692372d2 netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0x6956442c generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days
+EXPORT_SYMBOL vmlinux 0x6971c3df __any_online_cpu
+EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int
+EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem
+EXPORT_SYMBOL vmlinux 0x699be7af generic_setattr
+EXPORT_SYMBOL vmlinux 0x699c17ea inet_getname
+EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be
+EXPORT_SYMBOL vmlinux 0x69aa7aa2 block_write_begin
+EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x69c95fc8 matrox_millennium
+EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69d7e5b8 __debugger_ipi
+EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a42e920 kthread_stop
+EXPORT_SYMBOL vmlinux 0x6a5aea23 blk_integrity_register
+EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm
+EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6a7a1d50 i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x6a7e5a52 tcp_ioctl
+EXPORT_SYMBOL vmlinux 0x6a8a2b7d generic_write_checks
+EXPORT_SYMBOL vmlinux 0x6aab6133 copy_io_context
+EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be
+EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp
+EXPORT_SYMBOL vmlinux 0x6ae7e1ff of_parse_phandle
+EXPORT_SYMBOL vmlinux 0x6ae9a79f generic_setlease
+EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname
+EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack
+EXPORT_SYMBOL vmlinux 0x6b35bdd1 rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0x6b467fd3 nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x6b5064c6 get_io_context
+EXPORT_SYMBOL vmlinux 0x6b64b30a bio_init
+EXPORT_SYMBOL vmlinux 0x6b7b6074 set_disk_ro
+EXPORT_SYMBOL vmlinux 0x6b9b19d0 neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x6bc17609 inode_init_owner
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bd60b9f pci_get_subsys
+EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6bf383af start_tty
+EXPORT_SYMBOL vmlinux 0x6c1ae3bf ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn
+EXPORT_SYMBOL vmlinux 0x6c255158 lro_vlan_hwaccel_receive_skb
+EXPORT_SYMBOL vmlinux 0x6c49f0ba vc_cons
+EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c6ce915 inet_ioctl
+EXPORT_SYMBOL vmlinux 0x6c6d3a9f blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c8ebe2a pci_disable_link_state
+EXPORT_SYMBOL vmlinux 0x6ca1d1a4 atomic64_read
+EXPORT_SYMBOL vmlinux 0x6cab3b39 block_sync_page
+EXPORT_SYMBOL vmlinux 0x6cc14aa7 try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy
+EXPORT_SYMBOL vmlinux 0x6ceca5f8 posix_acl_permission
+EXPORT_SYMBOL vmlinux 0x6cf74ca4 slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d288375 radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table
+EXPORT_SYMBOL vmlinux 0x6d4bf85e scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0x6d5f3896 release_firmware
+EXPORT_SYMBOL vmlinux 0x6d6d9602 skb_put
+EXPORT_SYMBOL vmlinux 0x6d87d914 input_unregister_device
+EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns
+EXPORT_SYMBOL vmlinux 0x6dadaaee simple_transaction_get
+EXPORT_SYMBOL vmlinux 0x6dd576c4 journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x6ddc739e jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0x6dea6a4b pci_get_class
+EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6dfd9eff send_sig_info
+EXPORT_SYMBOL vmlinux 0x6e1d6460 udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x6e383dd6 gen_pool_add
+EXPORT_SYMBOL vmlinux 0x6e4aaa9b tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0x6e6df559 sock_update_classid
+EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put
+EXPORT_SYMBOL vmlinux 0x6ebe3762 dm_register_target
+EXPORT_SYMBOL vmlinux 0x6eea29dc xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x6ef01aa9 tcp_prot
+EXPORT_SYMBOL vmlinux 0x6f0b012e cdev_del
+EXPORT_SYMBOL vmlinux 0x6f1dc50f of_get_property
+EXPORT_SYMBOL vmlinux 0x6f2a5217 journal_restart
+EXPORT_SYMBOL vmlinux 0x6f325802 block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x6f38485b mdiobus_write
+EXPORT_SYMBOL vmlinux 0x6f61017a generic_unplug_device
+EXPORT_SYMBOL vmlinux 0x6f6dbd7a proc_create_data
+EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x6fa0def4 llc_sap_find
+EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free
+EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm
+EXPORT_SYMBOL vmlinux 0x7000e3e9 __dst_free
+EXPORT_SYMBOL vmlinux 0x701d0ebd snprintf
+EXPORT_SYMBOL vmlinux 0x701f855c xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x704fc258 blk_put_request
+EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7053bcc9 request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma
+EXPORT_SYMBOL vmlinux 0x705c57b2 __percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0x7081a9b3 pci_bus_type
+EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait
+EXPORT_SYMBOL vmlinux 0x70bffcc5 dev_mc_sync
+EXPORT_SYMBOL vmlinux 0x70d098a6 blk_start_queue
+EXPORT_SYMBOL vmlinux 0x70d4d552 pci_enable_device
+EXPORT_SYMBOL vmlinux 0x70d888b7 __debugger_fault_handler
+EXPORT_SYMBOL vmlinux 0x70ec1d51 jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x70ef0858 ide_dma_off
+EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request
+EXPORT_SYMBOL vmlinux 0x71138f5a __scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc
+EXPORT_SYMBOL vmlinux 0x712e88d3 xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0x714f79ac qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0x715d11f0 cdev_alloc
+EXPORT_SYMBOL vmlinux 0x719a4e68 truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev
+EXPORT_SYMBOL vmlinux 0x71a8e47e scsi_scan_host
+EXPORT_SYMBOL vmlinux 0x71af98d6 misc_deregister
+EXPORT_SYMBOL vmlinux 0x71b825fb mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0x71c59a84 inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0x71c8da94 set_irq_chip
+EXPORT_SYMBOL vmlinux 0x71c90087 memcmp
+EXPORT_SYMBOL vmlinux 0x71cb3949 bdevname
+EXPORT_SYMBOL vmlinux 0x71e6aa61 security_path_symlink
+EXPORT_SYMBOL vmlinux 0x7208beee scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x7228690b tcf_em_register
+EXPORT_SYMBOL vmlinux 0x7248c270 scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0x7294be51 pci_device_from_OF_node
+EXPORT_SYMBOL vmlinux 0x729ad9c5 scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x72abf75f skb_queue_tail
+EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma
+EXPORT_SYMBOL vmlinux 0x72bbfb0b vmtruncate
+EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte
+EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type
+EXPORT_SYMBOL vmlinux 0x7312edbc generic_readlink
+EXPORT_SYMBOL vmlinux 0x731e2b53 netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0x7334508a dquot_initialize
+EXPORT_SYMBOL vmlinux 0x733d533b shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x734eddac inode_setattr
+EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue
+EXPORT_SYMBOL vmlinux 0x7362dd1e vfs_fstat
+EXPORT_SYMBOL vmlinux 0x736ed06c scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0x739d0305 dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x739e611e ps2_end_command
+EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0x73d53d70 padata_do_serial
+EXPORT_SYMBOL vmlinux 0x73d8704f rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy
+EXPORT_SYMBOL vmlinux 0x741d04a3 sg_miter_next
+EXPORT_SYMBOL vmlinux 0x7440d40c neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte
+EXPORT_SYMBOL vmlinux 0x745edf62 splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x7493e6ef register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x74a9708e bdi_register_dev
+EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74d3eef5 elevator_init
+EXPORT_SYMBOL vmlinux 0x74f798a4 sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler
+EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit
+EXPORT_SYMBOL vmlinux 0x751d9323 sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0x7544f0d8 get_super
+EXPORT_SYMBOL vmlinux 0x756dd160 start_thread
+EXPORT_SYMBOL vmlinux 0x757ad8fa xfrm_bundle_ok
+EXPORT_SYMBOL vmlinux 0x75994700 add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0x759ccd62 matroxfb_g450_shutdown
+EXPORT_SYMBOL vmlinux 0x759df7f7 swiotlb_unmap_sg_attrs
+EXPORT_SYMBOL vmlinux 0x759eb044 abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x75aa02e9 scsi_get_command
+EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc
+EXPORT_SYMBOL vmlinux 0x75cbde20 setup_new_exec
+EXPORT_SYMBOL vmlinux 0x75d685f7 inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x760a0f4f yield
+EXPORT_SYMBOL vmlinux 0x760a99e1 mb_cache_create
+EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x7612d254 neigh_table_init
+EXPORT_SYMBOL vmlinux 0x7612de37 sock_register
+EXPORT_SYMBOL vmlinux 0x7622aafc xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x763852e5 lock_sock_fast
+EXPORT_SYMBOL vmlinux 0x764cdc5a of_find_i2c_device_by_node
+EXPORT_SYMBOL vmlinux 0x768ca787 bdev_read_only
+EXPORT_SYMBOL vmlinux 0x768f8322 llc_add_pack
+EXPORT_SYMBOL vmlinux 0x7691bc81 blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x76b604ce block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode
+EXPORT_SYMBOL vmlinux 0x76e07962 idr_get_new
+EXPORT_SYMBOL vmlinux 0x76ee9285 matrox_cfbX_init
+EXPORT_SYMBOL vmlinux 0x76f02422 blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0x76f7750d flush_tlb_range
+EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic
+EXPORT_SYMBOL vmlinux 0x771f5b35 simple_set_mnt
+EXPORT_SYMBOL vmlinux 0x7723e632 napi_skb_finish
+EXPORT_SYMBOL vmlinux 0x77296fa8 llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0x772b8b03 dm_table_event
+EXPORT_SYMBOL vmlinux 0x7731caee tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x7788ad9d deny_write_access
+EXPORT_SYMBOL vmlinux 0x77b851c4 cacheable_memzero
+EXPORT_SYMBOL vmlinux 0x77ba5fa4 pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0x77bc13a0 strim
+EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality
+EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77ef608e kmem_cache_size
+EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x7825f893 inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x7851bee9 cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0x786b1fe6 rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource
+EXPORT_SYMBOL vmlinux 0x78b10b14 simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0x78bcdf6b block_prepare_write
+EXPORT_SYMBOL vmlinux 0x78c1b215 pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78ed3e5c __init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x78ef9488 blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x790df6ca __wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x792a263d truncate_pagecache
+EXPORT_SYMBOL vmlinux 0x792ab2bc qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0x793004d9 journal_forget
+EXPORT_SYMBOL vmlinux 0x7934fe2d hippi_neigh_setup_dev
+EXPORT_SYMBOL vmlinux 0x7935fab6 inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x79416714 filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x79465f4d revalidate_disk
+EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x798403e8 phy_device_create
+EXPORT_SYMBOL vmlinux 0x79a4e35a journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79c2dcbd ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x79c8f0de blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0x79d25090 abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x7a042211 sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x7a1fc20f pci_get_device
+EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol
+EXPORT_SYMBOL vmlinux 0x7a2ad56a pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0x7a4497db kzfree
+EXPORT_SYMBOL vmlinux 0x7a4bad67 fb_show_logo
+EXPORT_SYMBOL vmlinux 0x7a61acc9 skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0x7a8a9910 journal_abort
+EXPORT_SYMBOL vmlinux 0x7aa439c1 elv_queue_empty
+EXPORT_SYMBOL vmlinux 0x7aaf16bc journal_wipe
+EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip
+EXPORT_SYMBOL vmlinux 0x7b047172 bdget_disk
+EXPORT_SYMBOL vmlinux 0x7b0ba319 inet_shutdown
+EXPORT_SYMBOL vmlinux 0x7b0c9edb tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x7b1e6c10 scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0x7b44af65 __sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x7b5f42b9 proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0x7b69467e posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0x7b7779dd pcie_port_service_unregister
+EXPORT_SYMBOL vmlinux 0x7b834675 skb_gso_segment
+EXPORT_SYMBOL vmlinux 0x7bb1d2c4 dquot_drop
+EXPORT_SYMBOL vmlinux 0x7bb51cc3 pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0x7bcb2e31 nobh_write_end
+EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name
+EXPORT_SYMBOL vmlinux 0x7bd33aa7 blk_run_queue
+EXPORT_SYMBOL vmlinux 0x7be4827c pci_dram_offset
+EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq
+EXPORT_SYMBOL vmlinux 0x7c222620 delayed_slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x7c3724dd tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c4f48d7 filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0x7c601874 pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0x7c60d66e getname
+EXPORT_SYMBOL vmlinux 0x7c6869ea pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x7c7ffe6c eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic
+EXPORT_SYMBOL vmlinux 0x7c969853 page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7ca341af kernel_thread
+EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down
+EXPORT_SYMBOL vmlinux 0x7cd27404 sock_release
+EXPORT_SYMBOL vmlinux 0x7cd77c71 tty_port_init
+EXPORT_SYMBOL vmlinux 0x7cf225bb elv_rb_add
+EXPORT_SYMBOL vmlinux 0x7cf48afc dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x7cfaa4e4 sk_stream_error
+EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies
+EXPORT_SYMBOL vmlinux 0x7d484f6c skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0x7d4e92a8 pci_set_mwi
+EXPORT_SYMBOL vmlinux 0x7d7ec8c1 simple_readpage
+EXPORT_SYMBOL vmlinux 0x7d80667c sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x7dbf0024 I_BDEV
+EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max
+EXPORT_SYMBOL vmlinux 0x7dceceac capable
+EXPORT_SYMBOL vmlinux 0x7e302093 tty_shutdown
+EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e3f6114 ide_proc_unregister_driver
+EXPORT_SYMBOL vmlinux 0x7e69322b sock_no_poll
+EXPORT_SYMBOL vmlinux 0x7e71543d vfs_readlink
+EXPORT_SYMBOL vmlinux 0x7e76e9ef sk_reset_timer
+EXPORT_SYMBOL vmlinux 0x7ebc97d3 jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x7ec84b0f i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0x7eff7d82 km_policy_notify
+EXPORT_SYMBOL vmlinux 0x7f182384 __nla_reserve
+EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f5292b2 get_disk
+EXPORT_SYMBOL vmlinux 0x7f554a6e xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x7f7b6e1d tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x7f968eae filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x7fa423ca force_sig
+EXPORT_SYMBOL vmlinux 0x7fa71ac9 __neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0x7fb24168 input_set_keycode
+EXPORT_SYMBOL vmlinux 0x7fbed22e input_inject_event
+EXPORT_SYMBOL vmlinux 0x7fc21e20 skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free
+EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x803f1495 down_read
+EXPORT_SYMBOL vmlinux 0x8050d485 find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x805259f7 do_splice_to
+EXPORT_SYMBOL vmlinux 0x805bfc7f d_alloc
+EXPORT_SYMBOL vmlinux 0x8063f83d radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0x80b676c7 inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x80d3caf6 __ps2_command
+EXPORT_SYMBOL vmlinux 0x80e4a7eb nla_append
+EXPORT_SYMBOL vmlinux 0x8100740c prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0x813e900c i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal
+EXPORT_SYMBOL vmlinux 0x81799cee vscnprintf
+EXPORT_SYMBOL vmlinux 0x81819480 cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0x819bd702 pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator
+EXPORT_SYMBOL vmlinux 0x81daa68c d_splice_alias
+EXPORT_SYMBOL vmlinux 0x81e5b2b7 __free_pages
+EXPORT_SYMBOL vmlinux 0x81e7cc8b mdiobus_register
+EXPORT_SYMBOL vmlinux 0x81fb238a redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill
+EXPORT_SYMBOL vmlinux 0x821fc17b phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x8235c274 cdev_add
+EXPORT_SYMBOL vmlinux 0x82478b02 sk_wait_data
+EXPORT_SYMBOL vmlinux 0x824bee81 call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x8255c717 i2c_transfer
+EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x82716049 dqstats
+EXPORT_SYMBOL vmlinux 0x829b025b dev_load
+EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82c0f3cb splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x82d668ee filp_close
+EXPORT_SYMBOL vmlinux 0x82dc81d2 llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x8313f6c8 linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x831b01d0 pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x832f2cf0 security_path_mknod
+EXPORT_SYMBOL vmlinux 0x83800bfa kref_init
+EXPORT_SYMBOL vmlinux 0x838c5e06 follow_pfn
+EXPORT_SYMBOL vmlinux 0x838cbd94 get_phy_device
+EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8
+EXPORT_SYMBOL vmlinux 0x83a2e2cf mach_powermac
+EXPORT_SYMBOL vmlinux 0x83a452d0 blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83b8e23c of_find_matching_node
+EXPORT_SYMBOL vmlinux 0x83b9b048 netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x84314e42 pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x843bb4b2 kset_register
+EXPORT_SYMBOL vmlinux 0x844404cf ISA_DMA_THRESHOLD
+EXPORT_SYMBOL vmlinux 0x84573fd4 get_sb_pseudo
+EXPORT_SYMBOL vmlinux 0x847ed632 phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0x84b183ae strncmp
+EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock
+EXPORT_SYMBOL vmlinux 0x8541bccc intercept_table
+EXPORT_SYMBOL vmlinux 0x854f066d __put_cred
+EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x857dce56 dget_locked
+EXPORT_SYMBOL vmlinux 0x85868be3 devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x859bb0d6 jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0x859fed07 __blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0x85de2694 generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0x85df9b6c strsep
+EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x862163a9 rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0x8643d150 set_anon_super
+EXPORT_SYMBOL vmlinux 0x86494e8c init_special_inode
+EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x865368f4 __break_lease
+EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x8665d8a9 genphy_read_status
+EXPORT_SYMBOL vmlinux 0x8668bf9d ide_do_reset
+EXPORT_SYMBOL vmlinux 0x866bf99d macio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x868acba5 get_options
+EXPORT_SYMBOL vmlinux 0x86923c99 d_instantiate
+EXPORT_SYMBOL vmlinux 0x86ce4ccd i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0x86d1f5cd scsi_free_command
+EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook
+EXPORT_SYMBOL vmlinux 0x86dc276e simple_release_fs
+EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x86fbd611 blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x872fe94a dquot_transfer
+EXPORT_SYMBOL vmlinux 0x87349b36 in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x875d6c31 nf_log_unregister
+EXPORT_SYMBOL vmlinux 0x87697772 serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x877ad2a3 fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87dce43e remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0x87ecd5b4 generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x880545a0 is_bad_inode
+EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate
+EXPORT_SYMBOL vmlinux 0x882e2a2d napi_get_frags
+EXPORT_SYMBOL vmlinux 0x8858987b generic_fillattr
+EXPORT_SYMBOL vmlinux 0x885ce47c genphy_suspend
+EXPORT_SYMBOL vmlinux 0x8892b45a kmem_cache_name
+EXPORT_SYMBOL vmlinux 0x88d27e4b user_revoke
+EXPORT_SYMBOL vmlinux 0x88d95b91 __mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x88dc074a simple_setattr
+EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy
+EXPORT_SYMBOL vmlinux 0x8921ff1c kfree_skb
+EXPORT_SYMBOL vmlinux 0x8924d7c3 dma_pool_create
+EXPORT_SYMBOL vmlinux 0x893fa95c phy_detach
+EXPORT_SYMBOL vmlinux 0x89456c0c get_sb_bdev
+EXPORT_SYMBOL vmlinux 0x8949858b schedule_work
+EXPORT_SYMBOL vmlinux 0x897473df mktime
+EXPORT_SYMBOL vmlinux 0x8974c4ed generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock
+EXPORT_SYMBOL vmlinux 0x897bbe0f scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0x89953f0b fb_get_mode
+EXPORT_SYMBOL vmlinux 0x89b3107b isa_mem_base
+EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89dcd655 end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x89f1e1a4 dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x89ff3713 dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x8a01e920 skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x8a1a1c4b kmap_atomic_prot
+EXPORT_SYMBOL vmlinux 0x8a617fd0 sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x8a71f679 dev_disable_lro
+EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory
+EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8a9bd7e5 g450_mnp2f
+EXPORT_SYMBOL vmlinux 0x8ab4079e atomic64_add
+EXPORT_SYMBOL vmlinux 0x8ad5b410 jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0x8b149778 scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b420e51 qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0x8b46dd67 __dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x8b867690 scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x8b8a809f validate_sp
+EXPORT_SYMBOL vmlinux 0x8bb608de udp_prot
+EXPORT_SYMBOL vmlinux 0x8bd111c9 blk_sync_queue
+EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long
+EXPORT_SYMBOL vmlinux 0x8bf4b136 neigh_ifdown
+EXPORT_SYMBOL vmlinux 0x8bf73c7e bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0x8c0934a6 __skb_bond_should_drop
+EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16
+EXPORT_SYMBOL vmlinux 0x8c1c0eb5 pipe_to_file
+EXPORT_SYMBOL vmlinux 0x8c26ba57 generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x8c32e250 pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x8c42e690 lro_vlan_hwaccel_receive_frags
+EXPORT_SYMBOL vmlinux 0x8c61bf65 pid_task
+EXPORT_SYMBOL vmlinux 0x8c9ebac6 tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x8cc6368f rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8d150d36 blk_peek_request
+EXPORT_SYMBOL vmlinux 0x8d1d4aaa generic_block_bmap
+EXPORT_SYMBOL vmlinux 0x8d39be8f dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x8d4c5e78 posix_test_lock
+EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d73306c bio_phys_segments
+EXPORT_SYMBOL vmlinux 0x8d734f88 serio_close
+EXPORT_SYMBOL vmlinux 0x8d7affbf path_lookup
+EXPORT_SYMBOL vmlinux 0x8d93769f fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create
+EXPORT_SYMBOL vmlinux 0x8df5da63 memstart_addr
+EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e0bb1c5 phy_enable_interrupts
+EXPORT_SYMBOL vmlinux 0x8e22c603 d_validate
+EXPORT_SYMBOL vmlinux 0x8e3b0f78 unbind_con_driver
+EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk
+EXPORT_SYMBOL vmlinux 0x8e3ca0fa xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0x8e422ab0 of_find_node_by_phandle
+EXPORT_SYMBOL vmlinux 0x8e4a489e jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x8e4cba9f sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0x8e63350d idr_replace
+EXPORT_SYMBOL vmlinux 0x8e658a93 pci_scan_slot
+EXPORT_SYMBOL vmlinux 0x8e68f63e mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x8e768192 dquot_free_inode
+EXPORT_SYMBOL vmlinux 0x8e98a5b5 proc_dointvec
+EXPORT_SYMBOL vmlinux 0x8ea56737 of_phy_find_device
+EXPORT_SYMBOL vmlinux 0x8eb157bc note_scsi_host
+EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh
+EXPORT_SYMBOL vmlinux 0x8eda7505 pmac_register_agp_pm
+EXPORT_SYMBOL vmlinux 0x8ee18356 eth_mac_addr
+EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8ef3dd82 tty_hangup
+EXPORT_SYMBOL vmlinux 0x8f32c417 pci_release_region
+EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev
+EXPORT_SYMBOL vmlinux 0x8f52304d key_unlink
+EXPORT_SYMBOL vmlinux 0x8f575d55 max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data
+EXPORT_SYMBOL vmlinux 0x8f6d5c38 swiotlb_dma_mapping_error
+EXPORT_SYMBOL vmlinux 0x8f74b723 input_flush_device
+EXPORT_SYMBOL vmlinux 0x8f7e382d napi_frags_finish
+EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0x8f8d2174 pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0x8fa80ec0 i2c_bit_add_bus
+EXPORT_SYMBOL vmlinux 0x8fbf37e0 profile_pc
+EXPORT_SYMBOL vmlinux 0x8fc8175c scsi_print_result
+EXPORT_SYMBOL vmlinux 0x8ffcfed4 hippi_change_mtu
+EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16
+EXPORT_SYMBOL vmlinux 0x9002ab46 bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x90431666 override_creds
+EXPORT_SYMBOL vmlinux 0x904df2db jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x904ffa51 scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x90501868 transfer_to_handler
+EXPORT_SYMBOL vmlinux 0x908bc21f __task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x9099ea9d blk_end_request
+EXPORT_SYMBOL vmlinux 0x90b51d6c schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x90f51048 nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0x90f9d3bc pci_busdev_to_OF_node
+EXPORT_SYMBOL vmlinux 0x90ff037b locks_init_lock
+EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay
+EXPORT_SYMBOL vmlinux 0x9127ce41 eth_header_cache
+EXPORT_SYMBOL vmlinux 0x9155b402 cfb_fillrect
+EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec
+EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource
+EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor
+EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong
+EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x91d88e48 __debugger_dabr_match
+EXPORT_SYMBOL vmlinux 0x91daceb2 skb_copy
+EXPORT_SYMBOL vmlinux 0x91ed8bca nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x91f34757 create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x91fd49eb filemap_fault
+EXPORT_SYMBOL vmlinux 0x920eb1ca pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool
+EXPORT_SYMBOL vmlinux 0x9235b6b3 sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0x92708c25 kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x928bc5d1 pci_iounmap
+EXPORT_SYMBOL vmlinux 0x92a2c46d ida_get_new
+EXPORT_SYMBOL vmlinux 0x92ba1ca1 may_umount
+EXPORT_SYMBOL vmlinux 0x92c450ae __tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get
+EXPORT_SYMBOL vmlinux 0x9308f2ce dm_table_get
+EXPORT_SYMBOL vmlinux 0x9309de94 cuda_request
+EXPORT_SYMBOL vmlinux 0x930f7dd1 key_revoke
+EXPORT_SYMBOL vmlinux 0x9312c928 vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x9322d07d scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule
+EXPORT_SYMBOL vmlinux 0x93b69298 mem_map
+EXPORT_SYMBOL vmlinux 0x93c192ac dev_add_pack
+EXPORT_SYMBOL vmlinux 0x93d5b13f netlink_ack
+EXPORT_SYMBOL vmlinux 0x93e31a87 phy_stop
+EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages
+EXPORT_SYMBOL vmlinux 0x94743585 pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0x94961283 vunmap
+EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x95115693 noop_qdisc
+EXPORT_SYMBOL vmlinux 0x9514151a _mcount
+EXPORT_SYMBOL vmlinux 0x951c892f xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb
+EXPORT_SYMBOL vmlinux 0x9530a845 tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init
+EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf
+EXPORT_SYMBOL vmlinux 0x9551ee68 xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0x95c76c53 simple_dir_operations
+EXPORT_SYMBOL vmlinux 0x95e5d796 __blockdev_direct_IO_newtrunc
+EXPORT_SYMBOL vmlinux 0x9642419b ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0x9660c446 sk_free
+EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0x9698eed6 of_phy_connect_fixed_link
+EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96cf30f5 bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x96e07691 add_disk
+EXPORT_SYMBOL vmlinux 0x96e43844 skb_split
+EXPORT_SYMBOL vmlinux 0x9704e93a ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x97255bdf strlen
+EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n
+EXPORT_SYMBOL vmlinux 0x97324bf7 unregister_snap_client
+EXPORT_SYMBOL vmlinux 0x97459746 keyring_clear
+EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns
+EXPORT_SYMBOL vmlinux 0x9751a85d of_find_node_with_property
+EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x97602899 __nla_put
+EXPORT_SYMBOL vmlinux 0x976203a8 netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x976268ee load_nls_default
+EXPORT_SYMBOL vmlinux 0x9766a0c0 dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0x9772021d bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x977d2f40 dm_io_client_resize
+EXPORT_SYMBOL vmlinux 0x977dd680 bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x979af215 tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0x980ea0be __alloc_skb
+EXPORT_SYMBOL vmlinux 0x9811a9a2 rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0x9838ac6f skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0x9848e18c tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0x9857bed0 of_get_parent
+EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x986f4c5f sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x987f9a7e thaw_bdev
+EXPORT_SYMBOL vmlinux 0x9892fd70 ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0x989a6e80 dm_io
+EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init
+EXPORT_SYMBOL vmlinux 0x98dd3d4a of_scan_pci_bridge
+EXPORT_SYMBOL vmlinux 0x98e2e0a9 pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0x98f30c30 lock_fb_info
+EXPORT_SYMBOL vmlinux 0x98fe7882 DMA_MODE_READ
+EXPORT_SYMBOL vmlinux 0x9905064b flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x99978b5b journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x999e8297 vfree
+EXPORT_SYMBOL vmlinux 0x99a614b3 dev_txq_stats_fold
+EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh
+EXPORT_SYMBOL vmlinux 0x99bb8806 memmove
+EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name
+EXPORT_SYMBOL vmlinux 0x99c84eb8 vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99d2cc08 machine_id
+EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink
+EXPORT_SYMBOL vmlinux 0x9a0b9178 i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0x9a1db3ee netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk
+EXPORT_SYMBOL vmlinux 0x9a508d7a vfs_symlink
+EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0x9a67538d pci_target_state
+EXPORT_SYMBOL vmlinux 0x9a824470 dm_unregister_target
+EXPORT_SYMBOL vmlinux 0x9a965782 blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x9aab01d2 sget
+EXPORT_SYMBOL vmlinux 0x9aae7798 dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0x9ab5b145 bio_endio
+EXPORT_SYMBOL vmlinux 0x9ab994d8 of_node_put
+EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b3bc962 request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0x9b45849e journal_stop
+EXPORT_SYMBOL vmlinux 0x9b52c713 mnt_unpin
+EXPORT_SYMBOL vmlinux 0x9b575771 ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize
+EXPORT_SYMBOL vmlinux 0x9b7f44e0 blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0x9b88dbd5 genphy_resume
+EXPORT_SYMBOL vmlinux 0x9b8c47b7 blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split
+EXPORT_SYMBOL vmlinux 0x9bad9447 jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0x9bce482f __release_region
+EXPORT_SYMBOL vmlinux 0x9bde7b7a tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x9be4341e tty_register_driver
+EXPORT_SYMBOL vmlinux 0x9bfabb6a tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c2df5d5 security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0x9c386add generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0x9c61f199 blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0x9c6e7986 i2c_master_recv
+EXPORT_SYMBOL vmlinux 0x9c713f31 kill_fasync
+EXPORT_SYMBOL vmlinux 0x9c837358 tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0x9c9330a1 elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x9ca22507 inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9ccc2f51 tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x9cd22661 do_SAK
+EXPORT_SYMBOL vmlinux 0x9cd8e62f sock_i_ino
+EXPORT_SYMBOL vmlinux 0x9ce3f83f nvram_write_byte
+EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x9ceecafd scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0x9cf74046 tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x9cfc93a7 proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9d09e168 default_file_splice_read
+EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs
+EXPORT_SYMBOL vmlinux 0x9d293cb0 scsi_device_put
+EXPORT_SYMBOL vmlinux 0x9d2ba62a inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d669763 memcpy
+EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock
+EXPORT_SYMBOL vmlinux 0x9d8d3ab7 tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0x9d94b6e4 set_binfmt
+EXPORT_SYMBOL vmlinux 0x9d98ff7c splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0x9d9c9597 idr_init
+EXPORT_SYMBOL vmlinux 0x9d9fa7af up_write
+EXPORT_SYMBOL vmlinux 0x9da5277f dm_table_get_size
+EXPORT_SYMBOL vmlinux 0x9dc53d2a ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x9e3a52e7 journal_extend
+EXPORT_SYMBOL vmlinux 0x9e58b17f phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x9e672ff6 scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x9e70cb14 nla_put
+EXPORT_SYMBOL vmlinux 0x9e7d91f8 of_find_all_nodes
+EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time
+EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9eaaae77 bdi_register
+EXPORT_SYMBOL vmlinux 0x9ebc583d pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x9ed3ab19 generic_writepages
+EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x9ed93a08 security_d_instantiate
+EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk
+EXPORT_SYMBOL vmlinux 0x9ef89dd3 register_qdisc
+EXPORT_SYMBOL vmlinux 0x9f0f38e1 register_quota_format
+EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool
+EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f839506 of_translate_dma_address
+EXPORT_SYMBOL vmlinux 0x9f8b9b3e journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x9f8d822a __module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x9f984513 strrchr
+EXPORT_SYMBOL vmlinux 0x9f9f2245 sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x9fcd75fb alloc_disk_node
+EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0xa0222cbe simple_empty
+EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0xa03c22e7 journal_start_commit
+EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0b1900e input_grab_device
+EXPORT_SYMBOL vmlinux 0xa0b39d46 dquot_destroy
+EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0e950d8 elevator_exit
+EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa10fc69a xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0xa1181094 dquot_disable
+EXPORT_SYMBOL vmlinux 0xa11b390f rtc_dev_update_irq_enable_emul
+EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa1348aa1 jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa1850baf blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0xa1a4a70d register_sysctl_table
+EXPORT_SYMBOL vmlinux 0xa1a66a84 max8925_reg_write
+EXPORT_SYMBOL vmlinux 0xa1b5d002 blk_stop_queue
+EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode
+EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched
+EXPORT_SYMBOL vmlinux 0xa1c7c68a inode_init_once
+EXPORT_SYMBOL vmlinux 0xa1d4faa8 n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0xa1de38c1 page_put_link
+EXPORT_SYMBOL vmlinux 0xa2061592 dma_direct_ops
+EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa28fcfa7 __set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0xa294f65b fb_set_suspend
+EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register
+EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa2f6e9a3 tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0xa2fb06a7 inet_accept
+EXPORT_SYMBOL vmlinux 0xa313f996 get_user_pages
+EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker
+EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa3353902 pneigh_lookup
+EXPORT_SYMBOL vmlinux 0xa34533a8 tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0xa348ce19 simple_rmdir
+EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le
+EXPORT_SYMBOL vmlinux 0xa35c49cd iunique
+EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config
+EXPORT_SYMBOL vmlinux 0xa3629930 deactivate_super
+EXPORT_SYMBOL vmlinux 0xa38192b7 framebuffer_release
+EXPORT_SYMBOL vmlinux 0xa384b5fe down_write
+EXPORT_SYMBOL vmlinux 0xa38e691a ioremap_bot
+EXPORT_SYMBOL vmlinux 0xa39720b3 free_buffer_head
+EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay
+EXPORT_SYMBOL vmlinux 0xa3a37aba kobject_get
+EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0xa3aed510 jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0xa3bf6245 blk_make_request
+EXPORT_SYMBOL vmlinux 0xa3cd55c5 vga_get
+EXPORT_SYMBOL vmlinux 0xa3e57090 posix_lock_file
+EXPORT_SYMBOL vmlinux 0xa3e75545 flush_tlb_kernel_range
+EXPORT_SYMBOL vmlinux 0xa42744d0 blk_init_tags
+EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0xa461232a macio_release_resources
+EXPORT_SYMBOL vmlinux 0xa4935d30 dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0xa4a0f4d1 security_inode_init_security
+EXPORT_SYMBOL vmlinux 0xa4b68d4b xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0xa4b91e85 scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4c85ded pci_clear_master
+EXPORT_SYMBOL vmlinux 0xa50d2890 dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0xa51d3f43 __xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xa521369f dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xa5460bf5 generic_ide_ioctl
+EXPORT_SYMBOL vmlinux 0xa554104d rwsem_wake
+EXPORT_SYMBOL vmlinux 0xa55d5184 dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone
+EXPORT_SYMBOL vmlinux 0xa5713b9a file_remove_suid
+EXPORT_SYMBOL vmlinux 0xa5724406 dquot_commit
+EXPORT_SYMBOL vmlinux 0xa576c263 generic_find_next_le_bit
+EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse
+EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last
+EXPORT_SYMBOL vmlinux 0xa5aaad05 input_unregister_handle
+EXPORT_SYMBOL vmlinux 0xa5b00659 ppc_proc_freq
+EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource
+EXPORT_SYMBOL vmlinux 0xa6299709 dw_spi_resume_host
+EXPORT_SYMBOL vmlinux 0xa62df2ea pci_dev_put
+EXPORT_SYMBOL vmlinux 0xa6310660 elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0xa63246c0 kobject_set_name
+EXPORT_SYMBOL vmlinux 0xa6500ece locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio
+EXPORT_SYMBOL vmlinux 0xa6598f7c skb_append
+EXPORT_SYMBOL vmlinux 0xa665b4a6 writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0xa67e06b3 sync_blockdev
+EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa6987f2a starget_for_each_device
+EXPORT_SYMBOL vmlinux 0xa6e69b3d inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0xa6efc7e2 proto_unregister
+EXPORT_SYMBOL vmlinux 0xa6f8b713 dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0xa726988a cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0xa72d5ef5 inode_change_ok
+EXPORT_SYMBOL vmlinux 0xa730331b kmem_cache_alloc_node_notrace
+EXPORT_SYMBOL vmlinux 0xa7623742 page_address
+EXPORT_SYMBOL vmlinux 0xa79df315 i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0xa7a40c9d skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0xa7a4cf4f release_sock
+EXPORT_SYMBOL vmlinux 0xa7d98c07 register_snap_client
+EXPORT_SYMBOL vmlinux 0xa7d9ca22 simple_lookup
+EXPORT_SYMBOL vmlinux 0xa81326b9 xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0xa81da28a call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0xa8266732 security_path_rmdir
+EXPORT_SYMBOL vmlinux 0xa829d3e3 tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0xa8413e59 scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0xa8516dc6 qdisc_reset
+EXPORT_SYMBOL vmlinux 0xa85d3858 phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0xa861ab6e __ioremap
+EXPORT_SYMBOL vmlinux 0xa87a5721 scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xa89464b7 __ashldi3
+EXPORT_SYMBOL vmlinux 0xa8a5f784 bio_copy_user
+EXPORT_SYMBOL vmlinux 0xa8bbee2e __getblk
+EXPORT_SYMBOL vmlinux 0xa8d318a9 cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0xa8dccd8e drop_super
+EXPORT_SYMBOL vmlinux 0xa8dd2433 tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0xa8e88a18 mutex_lock
+EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa90448b7 __dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xa9058ccc seq_puts
+EXPORT_SYMBOL vmlinux 0xa94266f0 down_trylock
+EXPORT_SYMBOL vmlinux 0xa94d49cc vfs_statfs
+EXPORT_SYMBOL vmlinux 0xa9571d6d DMA_MODE_WRITE
+EXPORT_SYMBOL vmlinux 0xa99551b9 hippi_mac_addr
+EXPORT_SYMBOL vmlinux 0xa9c00c0a journal_init_inode
+EXPORT_SYMBOL vmlinux 0xa9c557a9 pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0xa9c9dc56 netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0xa9d3bad5 __netdev_alloc_page
+EXPORT_SYMBOL vmlinux 0xa9e1fda4 mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0xa9effda5 __first_cpu
+EXPORT_SYMBOL vmlinux 0xa9f3854d pci_disable_msix
+EXPORT_SYMBOL vmlinux 0xaa148084 blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0xaa28bf9a kthread_create
+EXPORT_SYMBOL vmlinux 0xaa2c6666 dm_put_device
+EXPORT_SYMBOL vmlinux 0xaa3655da vfs_getattr
+EXPORT_SYMBOL vmlinux 0xaa4df512 pmu_batteries
+EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xaab76889 inet_addr_type
+EXPORT_SYMBOL vmlinux 0xaac3fcef ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0xaad1d710 i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp
+EXPORT_SYMBOL vmlinux 0xab2ec4fd unregister_filesystem
+EXPORT_SYMBOL vmlinux 0xab3ef5d8 remove_arg_zero
+EXPORT_SYMBOL vmlinux 0xab78073f tcp_close
+EXPORT_SYMBOL vmlinux 0xab784207 buffer_migrate_page
+EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabd8e427 matroxfb_var2my
+EXPORT_SYMBOL vmlinux 0xabfdaddd skb_checksum
+EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac1411fc of_n_size_cells
+EXPORT_SYMBOL vmlinux 0xac15796d scsi_remove_host
+EXPORT_SYMBOL vmlinux 0xac1a96d3 netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock
+EXPORT_SYMBOL vmlinux 0xac469f18 unregister_qdisc
+EXPORT_SYMBOL vmlinux 0xac4fa0a0 nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac8c098e pci_read_irq_line
+EXPORT_SYMBOL vmlinux 0xac94469e skb_pad
+EXPORT_SYMBOL vmlinux 0xac9cb36a cdev_index
+EXPORT_SYMBOL vmlinux 0xaca3b295 dw_spi_remove_host
+EXPORT_SYMBOL vmlinux 0xacbac34b sock_i_uid
+EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton
+EXPORT_SYMBOL vmlinux 0xacd375fd bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0xacd5a6cd register_gifconf
+EXPORT_SYMBOL vmlinux 0xacdba9c4 journal_force_commit
+EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup
+EXPORT_SYMBOL vmlinux 0xacfde1dd skb_set_dev
+EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex
+EXPORT_SYMBOL vmlinux 0xad1cf6d3 sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning
+EXPORT_SYMBOL vmlinux 0xada281aa llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xadc17332 xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0xadd1e971 alignment_exception
+EXPORT_SYMBOL vmlinux 0xaddd4770 __debugger_iabr_match
+EXPORT_SYMBOL vmlinux 0xadec9242 skb_dequeue
+EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region
+EXPORT_SYMBOL vmlinux 0xadf58e1b set_security_override
+EXPORT_SYMBOL vmlinux 0xadff497c pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0xae3e16f8 scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0xae65bbb3 journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xae767e62 input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0xae9bee4a dquot_quota_off
+EXPORT_SYMBOL vmlinux 0xae9dd2cc bio_map_user
+EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0xaee0f16b kill_pgrp
+EXPORT_SYMBOL vmlinux 0xaee201b2 scsi_host_get
+EXPORT_SYMBOL vmlinux 0xaef17632 dst_alloc
+EXPORT_SYMBOL vmlinux 0xaef93ad3 set_page_dirty
+EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh
+EXPORT_SYMBOL vmlinux 0xaf1b5b58 down_read_trylock
+EXPORT_SYMBOL vmlinux 0xaf293636 key_task_permission
+EXPORT_SYMBOL vmlinux 0xaf2ce732 of_get_next_child
+EXPORT_SYMBOL vmlinux 0xaf2d872c prepare_to_wait
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf4b4a69 keyring_search
+EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xaf6d4db6 gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0xaf84cd5d ab3100_event_register
+EXPORT_SYMBOL vmlinux 0xaf8591e2 dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0xaf959501 give_up_console
+EXPORT_SYMBOL vmlinux 0xafa701cb skb_copy_expand
+EXPORT_SYMBOL vmlinux 0xafb416fc sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0xafbc6729 input_event
+EXPORT_SYMBOL vmlinux 0xafc78473 aio_put_req
+EXPORT_SYMBOL vmlinux 0xafcc716f read_cache_page
+EXPORT_SYMBOL vmlinux 0xaff7f4de pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc
+EXPORT_SYMBOL vmlinux 0xb0089af3 kmalloc_caches
+EXPORT_SYMBOL vmlinux 0xb03dcc47 ll_rw_block
+EXPORT_SYMBOL vmlinux 0xb03ee026 pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0xb04e35a1 blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0xb072bf21 phy_print_status
+EXPORT_SYMBOL vmlinux 0xb098bc36 pci_get_slot
+EXPORT_SYMBOL vmlinux 0xb0af7625 block_write_full_page
+EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0e10781 get_option
+EXPORT_SYMBOL vmlinux 0xb0fcd376 inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0xb1218f31 inet_csk_accept
+EXPORT_SYMBOL vmlinux 0xb13d4796 cdev_init
+EXPORT_SYMBOL vmlinux 0xb13da29f __inet6_hash
+EXPORT_SYMBOL vmlinux 0xb14bc519 of_mdiobus_register
+EXPORT_SYMBOL vmlinux 0xb151f155 sock_no_getname
+EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec
+EXPORT_SYMBOL vmlinux 0xb1613103 __brelse
+EXPORT_SYMBOL vmlinux 0xb18f3f06 ide_xfer_verbose
+EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1ade676 ethtool_ntuple_flush
+EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1c6e787 wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0xb1e26f01 phy_start
+EXPORT_SYMBOL vmlinux 0xb1ecb8d7 bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short
+EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xb233762c atomic64_set
+EXPORT_SYMBOL vmlinux 0xb24a0457 of_parse_phandles_with_args
+EXPORT_SYMBOL vmlinux 0xb24c2db9 idr_get_new_above
+EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb26b9251 journal_revoke
+EXPORT_SYMBOL vmlinux 0xb275dae0 of_node_get
+EXPORT_SYMBOL vmlinux 0xb278d8f5 set_bdi_congested
+EXPORT_SYMBOL vmlinux 0xb281fe72 ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0xb2ddbca5 insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0xb2e7216a of_translate_address
+EXPORT_SYMBOL vmlinux 0xb2ef034f generic_permission
+EXPORT_SYMBOL vmlinux 0xb31526ee sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0xb3231aef bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0xb33f8b58 nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xb36ce7c6 llc_sap_close
+EXPORT_SYMBOL vmlinux 0xb36fde77 of_device_get_modalias
+EXPORT_SYMBOL vmlinux 0xb376d79d radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0xb378bd09 scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0xb39f0d88 test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3a9979c __seq_open_private
+EXPORT_SYMBOL vmlinux 0xb3b02645 sock_create
+EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked
+EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool
+EXPORT_SYMBOL vmlinux 0xb46e1ee0 dev_getbyhwaddr
+EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb4716211 tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0xb48dd668 tty_free_termios
+EXPORT_SYMBOL vmlinux 0xb4d4b380 i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0xb4e87be1 vga_put
+EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf
+EXPORT_SYMBOL vmlinux 0xb516005f security_path_link
+EXPORT_SYMBOL vmlinux 0xb53a4336 kmap_pte
+EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5b29b45 neigh_parms_release
+EXPORT_SYMBOL vmlinux 0xb5b881c3 security_file_permission
+EXPORT_SYMBOL vmlinux 0xb5bb42fd tcp_v4_remember_stamp
+EXPORT_SYMBOL vmlinux 0xb5d9da1a tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0xb5dbb294 d_alloc_root
+EXPORT_SYMBOL vmlinux 0xb5e8874f nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0xb612158a rtnl_create_link
+EXPORT_SYMBOL vmlinux 0xb633ee39 eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0xb64e53bb pci_match_id
+EXPORT_SYMBOL vmlinux 0xb6599b9a machine_check_exception
+EXPORT_SYMBOL vmlinux 0xb65ba564 audit_log_start
+EXPORT_SYMBOL vmlinux 0xb65f1b2c down_interruptible
+EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt
+EXPORT_SYMBOL vmlinux 0xb67cdcd5 generic_read_dir
+EXPORT_SYMBOL vmlinux 0xb682c5a0 otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0xb688cd70 generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0xb68bf046 blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0xb6a40904 put_tty_driver
+EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6b3a453 unlock_page
+EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu
+EXPORT_SYMBOL vmlinux 0xb6c23650 inet_listen
+EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6e21f0f blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xb6f99a31 ide_set_handler
+EXPORT_SYMBOL vmlinux 0xb73ef6a9 pmac_suspend_agp_for_card
+EXPORT_SYMBOL vmlinux 0xb753bcc8 __ashrdi3
+EXPORT_SYMBOL vmlinux 0xb759856e sk_stop_timer
+EXPORT_SYMBOL vmlinux 0xb75a4abd __napi_complete
+EXPORT_SYMBOL vmlinux 0xb75da79a d_lookup
+EXPORT_SYMBOL vmlinux 0xb77ee770 sk_common_release
+EXPORT_SYMBOL vmlinux 0xb78f3db6 input_register_device
+EXPORT_SYMBOL vmlinux 0xb7a99781 __irq_regs
+EXPORT_SYMBOL vmlinux 0xb7ab4308 flush_old_exec
+EXPORT_SYMBOL vmlinux 0xb7ac152c arp_find
+EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be
+EXPORT_SYMBOL vmlinux 0xb7d77ce8 jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0xb800781d km_state_expired
+EXPORT_SYMBOL vmlinux 0xb82fcb4a tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0xb84398b3 nf_register_hook
+EXPORT_SYMBOL vmlinux 0xb857da73 ida_destroy
+EXPORT_SYMBOL vmlinux 0xb85b2bac vm_stat
+EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32
+EXPORT_SYMBOL vmlinux 0xb88c073b netpoll_setup
+EXPORT_SYMBOL vmlinux 0xb88c653b sk_reset_txq
+EXPORT_SYMBOL vmlinux 0xb88dcc97 close_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0xb88f5c73 flush_hash_entry
+EXPORT_SYMBOL vmlinux 0xb894926d schedule_work_on
+EXPORT_SYMBOL vmlinux 0xb8950337 pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32
+EXPORT_SYMBOL vmlinux 0xb89ee1b9 fb_set_var
+EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region
+EXPORT_SYMBOL vmlinux 0xb8d6d5be get_fs_type
+EXPORT_SYMBOL vmlinux 0xb8e9293a sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xb92af419 pcie_port_service_register
+EXPORT_SYMBOL vmlinux 0xb94faea1 set_blocksize
+EXPORT_SYMBOL vmlinux 0xb97016b8 pipe_lock
+EXPORT_SYMBOL vmlinux 0xb979071a of_platform_bus_type
+EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb99468b0 scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0xb99c4a1d skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0xb9a19f93 skb_copy_bits
+EXPORT_SYMBOL vmlinux 0xb9eddf41 security_path_chmod
+EXPORT_SYMBOL vmlinux 0xba19f88e secpath_dup
+EXPORT_SYMBOL vmlinux 0xba3c8d7f genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0xba3fcbfa tcp_splice_read
+EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba7a4bc7 jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0xba90177c scsi_unregister
+EXPORT_SYMBOL vmlinux 0xbaaa9c26 sk_run_filter
+EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbac05213 max8925_reg_read
+EXPORT_SYMBOL vmlinux 0xbac48d52 fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0xbaf1b6a0 abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0xbafa1c4e pcibios_resource_to_bus
+EXPORT_SYMBOL vmlinux 0xbb143fe1 __devm_request_region
+EXPORT_SYMBOL vmlinux 0xbb1535e7 neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb1dca84 mod_timer_pending
+EXPORT_SYMBOL vmlinux 0xbb21f402 ilookup
+EXPORT_SYMBOL vmlinux 0xbb336242 dev_mc_add
+EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb744a73 generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0xbb7cbd5a xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font
+EXPORT_SYMBOL vmlinux 0xbb9f5fa5 down_write_trylock
+EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xbbd7ef03 dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0xbbe8ccea sock_setsockopt
+EXPORT_SYMBOL vmlinux 0xbc0ccbc7 pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0xbc271120 journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0xbc4b38a4 prepare_binprm
+EXPORT_SYMBOL vmlinux 0xbc78b787 journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xbcf2a3d1 generic_write_end
+EXPORT_SYMBOL vmlinux 0xbcf868c2 check_disk_size_change
+EXPORT_SYMBOL vmlinux 0xbcffe639 idr_pre_get
+EXPORT_SYMBOL vmlinux 0xbd1c0b10 put_page
+EXPORT_SYMBOL vmlinux 0xbd229e92 scsi_print_command
+EXPORT_SYMBOL vmlinux 0xbd4612f9 genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0xbd564010 ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0xbd5fe3d6 clocksource_unregister
+EXPORT_SYMBOL vmlinux 0xbd7dab29 jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0xbd8c922f get_sb_nodev
+EXPORT_SYMBOL vmlinux 0xbd8d541d flush_hash_pages
+EXPORT_SYMBOL vmlinux 0xbd9e5d49 __lshrdi3
+EXPORT_SYMBOL vmlinux 0xbdcf7d50 d_delete
+EXPORT_SYMBOL vmlinux 0xbde8c8f4 kill_anon_super
+EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next
+EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp
+EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource
+EXPORT_SYMBOL vmlinux 0xbe6f064d idr_for_each
+EXPORT_SYMBOL vmlinux 0xbeb7ba67 find_inode_number
+EXPORT_SYMBOL vmlinux 0xbec509cd proc_symlink
+EXPORT_SYMBOL vmlinux 0xbed0a447 skb_insert
+EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbf7b4b7f dev_uc_del
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf85ca3f tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep
+EXPORT_SYMBOL vmlinux 0xbfcf5ac0 inet_select_addr
+EXPORT_SYMBOL vmlinux 0xbfd9fa3f xrlim_allow
+EXPORT_SYMBOL vmlinux 0xbff4b1d0 ps2_command
+EXPORT_SYMBOL vmlinux 0xbff7e4ed blk_stack_limits
+EXPORT_SYMBOL vmlinux 0xc02e3dae arp_tbl
+EXPORT_SYMBOL vmlinux 0xc03d49a2 security_path_chown
+EXPORT_SYMBOL vmlinux 0xc04ce74f scsi_print_sense
+EXPORT_SYMBOL vmlinux 0xc05db902 gen_pool_create
+EXPORT_SYMBOL vmlinux 0xc06dddf9 journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xc074f8c4 noop_fsync
+EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc0a017df dm_table_unplug_all
+EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit
+EXPORT_SYMBOL vmlinux 0xc0b1bf25 poll_initwait
+EXPORT_SYMBOL vmlinux 0xc0d84ced cuda_poll
+EXPORT_SYMBOL vmlinux 0xc0dc3a2f i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0xc0e86d4c nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0xc0f8c75d scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten
+EXPORT_SYMBOL vmlinux 0xc12069ba genphy_config_advert
+EXPORT_SYMBOL vmlinux 0xc121ad01 dev_mc_flush
+EXPORT_SYMBOL vmlinux 0xc14d516f inet_frag_find
+EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit
+EXPORT_SYMBOL vmlinux 0xc15f0cb4 seq_release_private
+EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic
+EXPORT_SYMBOL vmlinux 0xc162a37a phys_mem_access_prot
+EXPORT_SYMBOL vmlinux 0xc16e3f10 scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0xc17a43ea tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0xc18153e3 tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0xc19d5741 nonseekable_open
+EXPORT_SYMBOL vmlinux 0xc1b679ed clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1dd4a7f adb_request
+EXPORT_SYMBOL vmlinux 0xc2118a88 gen_pool_free
+EXPORT_SYMBOL vmlinux 0xc238e4c6 xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xc2469402 xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc26041ab scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0xc2842636 dquot_operations
+EXPORT_SYMBOL vmlinux 0xc2a06f89 seq_open_private
+EXPORT_SYMBOL vmlinux 0xc2ad70be unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0xc2b2ea8d pcibios_bus_to_resource
+EXPORT_SYMBOL vmlinux 0xc2be3feb unregister_netdev
+EXPORT_SYMBOL vmlinux 0xc2c1e47f commit_creds
+EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc
+EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices
+EXPORT_SYMBOL vmlinux 0xc30849fb i2c_clients_command
+EXPORT_SYMBOL vmlinux 0xc30d3795 scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0xc337e4fb nf_hook_slow
+EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu
+EXPORT_SYMBOL vmlinux 0xc3447de9 tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xc34707db flush_tlb_mm
+EXPORT_SYMBOL vmlinux 0xc354edea del_gendisk
+EXPORT_SYMBOL vmlinux 0xc35e28f7 llc_sap_list_lock
+EXPORT_SYMBOL vmlinux 0xc368849f nvram_sync
+EXPORT_SYMBOL vmlinux 0xc3708a40 generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xc3734b62 security_path_mkdir
+EXPORT_SYMBOL vmlinux 0xc392c60f con_copy_unimap
+EXPORT_SYMBOL vmlinux 0xc39d92d0 nf_afinfo
+EXPORT_SYMBOL vmlinux 0xc3a8c484 pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0xc3aa4d6a phy_find_first
+EXPORT_SYMBOL vmlinux 0xc3bd2686 serio_reconnect
+EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p
+EXPORT_SYMBOL vmlinux 0xc3e21e92 tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0xc3ef3fff seq_release
+EXPORT_SYMBOL vmlinux 0xc42acf8f neigh_create
+EXPORT_SYMBOL vmlinux 0xc43ca20f open_exec
+EXPORT_SYMBOL vmlinux 0xc44740b0 nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xc451e09f pci_find_bus
+EXPORT_SYMBOL vmlinux 0xc47a2cd9 scsi_dma_map
+EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0xc47d56cd inet_frags_fini
+EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup
+EXPORT_SYMBOL vmlinux 0xc4c346c7 xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0xc4ca505a padata_do_parallel
+EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic
+EXPORT_SYMBOL vmlinux 0xc4eab11c tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0xc5067ad0 schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc5527a0a inode_permission
+EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16
+EXPORT_SYMBOL vmlinux 0xc5718627 sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0xc58ee5d7 scsi_prep_return
+EXPORT_SYMBOL vmlinux 0xc5a06836 ps2_init
+EXPORT_SYMBOL vmlinux 0xc5d77e78 dev_get_stats
+EXPORT_SYMBOL vmlinux 0xc5e33ea1 blkdev_put
+EXPORT_SYMBOL vmlinux 0xc5ef426b blk_init_allocated_queue_node
+EXPORT_SYMBOL vmlinux 0xc5f14fce put_disk
+EXPORT_SYMBOL vmlinux 0xc5fcaf88 phy_connect
+EXPORT_SYMBOL vmlinux 0xc6032d49 unregister_8022_client
+EXPORT_SYMBOL vmlinux 0xc6140e75 ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0xc61be59c ida_remove
+EXPORT_SYMBOL vmlinux 0xc64d5c17 elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0xc660b609 may_umount_tree
+EXPORT_SYMBOL vmlinux 0xc671d752 tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0xc6876776 sock_map_fd
+EXPORT_SYMBOL vmlinux 0xc6882a31 of_device_unregister
+EXPORT_SYMBOL vmlinux 0xc69ac3e9 dquot_alloc
+EXPORT_SYMBOL vmlinux 0xc6a2b7a0 dev_addr_del
+EXPORT_SYMBOL vmlinux 0xc6ca99d7 matroxfb_g450_connect
+EXPORT_SYMBOL vmlinux 0xc6e2c2fe audit_log_end
+EXPORT_SYMBOL vmlinux 0xc6eff4c7 ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0xc714e81f generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0xc7153348 elv_register_queue
+EXPORT_SYMBOL vmlinux 0xc73fdb73 d_path
+EXPORT_SYMBOL vmlinux 0xc742445e pci_iomap
+EXPORT_SYMBOL vmlinux 0xc7676c06 flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xc78d61ce elv_rb_find
+EXPORT_SYMBOL vmlinux 0xc795e23e cpu_core_map
+EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7ab7898 posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0xc7b4eef2 kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0xc7b88a56 journal_update_format
+EXPORT_SYMBOL vmlinux 0xc7c7274d kernel_sendpage
+EXPORT_SYMBOL vmlinux 0xc7de65c3 open_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn
+EXPORT_SYMBOL vmlinux 0xc7ece02d tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0xc81207c1 sock_init_data
+EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc87cc047 ide_dma_off_quietly
+EXPORT_SYMBOL vmlinux 0xc87e0d37 pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0xc8909855 tty_port_close_start
+EXPORT_SYMBOL vmlinux 0xc8a50401 tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8b6b2da kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0xc8e1f631 dev_open
+EXPORT_SYMBOL vmlinux 0xc8e63ed3 __find_get_block
+EXPORT_SYMBOL vmlinux 0xc8f934a6 default_llseek
+EXPORT_SYMBOL vmlinux 0xc93048dc scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0xc9927ea4 of_release_dev
+EXPORT_SYMBOL vmlinux 0xc9944329 inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xc99b43ad xfrm_state_update
+EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev
+EXPORT_SYMBOL vmlinux 0xc9bf6006 matroxfb_unregister_driver
+EXPORT_SYMBOL vmlinux 0xc9de12f4 tty_check_change
+EXPORT_SYMBOL vmlinux 0xca1d7980 gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0xca1f3e2b fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0xca3af7e4 vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0xca5780a0 dentry_unhash
+EXPORT_SYMBOL vmlinux 0xca5d18bc pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend
+EXPORT_SYMBOL vmlinux 0xcaa9dcc7 __scsi_add_device
+EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel
+EXPORT_SYMBOL vmlinux 0xcacd272d atomic64_sub_return
+EXPORT_SYMBOL vmlinux 0xcad08e48 mmu_hash_lock
+EXPORT_SYMBOL vmlinux 0xcad36107 neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xcae5350e blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xcaed730b macio_register_driver
+EXPORT_SYMBOL vmlinux 0xcb066b15 ide_raw_taskfile
+EXPORT_SYMBOL vmlinux 0xcb28bbe5 jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0xcb3d330d vlan_gro_frags
+EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb7ceaf2 set_device_ro
+EXPORT_SYMBOL vmlinux 0xcbaf6103 scsi_finish_command
+EXPORT_SYMBOL vmlinux 0xcbbdb69b skb_recycle_check
+EXPORT_SYMBOL vmlinux 0xcbded079 ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0xcbe1789f get_sb_ns
+EXPORT_SYMBOL vmlinux 0xcbeae428 arp_send
+EXPORT_SYMBOL vmlinux 0xcbf93ad9 journal_dirty_data
+EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc54d640 register_cdrom
+EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc93a48c generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0xcc966805 sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0xccb1639e abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0xccd34cb8 poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0xccda9609 block_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0xcce40c42 put_io_context
+EXPORT_SYMBOL vmlinux 0xcce93ed2 eth_change_mtu
+EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq
+EXPORT_SYMBOL vmlinux 0xcd10aa90 ____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0xcd1bc632 generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0xcd1db28d vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0xcd2398f9 abx500_register_ops
+EXPORT_SYMBOL vmlinux 0xcd2b9747 remove_inode_hash
+EXPORT_SYMBOL vmlinux 0xcd35c305 __pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0xcd39f13f blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0xcd3c5a34 dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0xcd5f5dc6 fb_set_cmap
+EXPORT_SYMBOL vmlinux 0xcd718862 xfrm_register_type
+EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock
+EXPORT_SYMBOL vmlinux 0xcdb1fc02 __vlan_hwaccel_rx
+EXPORT_SYMBOL vmlinux 0xcdb21255 lro_flush_all
+EXPORT_SYMBOL vmlinux 0xcdc414ca neigh_lookup
+EXPORT_SYMBOL vmlinux 0xcdeaf847 dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0xce1ba00a neigh_seq_start
+EXPORT_SYMBOL vmlinux 0xce1de70f __destroy_inode
+EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xce3724c7 ide_complete_rq
+EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume
+EXPORT_SYMBOL vmlinux 0xce465243 scsi_put_command
+EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce8c2556 proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0xcea7f645 tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0xcef094d1 nf_register_hooks
+EXPORT_SYMBOL vmlinux 0xcf077cf6 d_obtain_alias
+EXPORT_SYMBOL vmlinux 0xcf1b18ad freeze_super
+EXPORT_SYMBOL vmlinux 0xcf2cbb3c bdput
+EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user
+EXPORT_SYMBOL vmlinux 0xcfaee2e8 tcp_check_req
+EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfd0b608 mpage_writepages
+EXPORT_SYMBOL vmlinux 0xcffa0692 of_device_register
+EXPORT_SYMBOL vmlinux 0xd002270e elv_abort_queue
+EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd0556b40 add_timer
+EXPORT_SYMBOL vmlinux 0xd059d3d2 wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0xd05da6fc of_find_node_by_name
+EXPORT_SYMBOL vmlinux 0xd062cab8 tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0xd0a45fa5 pmu_enable_irled
+EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0d8fb62 vfs_create
+EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd101e93e console_start
+EXPORT_SYMBOL vmlinux 0xd104bb0e seq_printf
+EXPORT_SYMBOL vmlinux 0xd11fd0f1 flush_icache_user_range
+EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf
+EXPORT_SYMBOL vmlinux 0xd151b689 macio_request_resources
+EXPORT_SYMBOL vmlinux 0xd16b44ad kunmap_atomic
+EXPORT_SYMBOL vmlinux 0xd1768ac6 fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0xd18c18a3 __bread
+EXPORT_SYMBOL vmlinux 0xd19383b9 skb_make_writable
+EXPORT_SYMBOL vmlinux 0xd1a4e9d3 remove_from_page_cache
+EXPORT_SYMBOL vmlinux 0xd1f88ba2 fsnotify_destroy_mark_by_entry
+EXPORT_SYMBOL vmlinux 0xd20ec0d5 tty_throttle
+EXPORT_SYMBOL vmlinux 0xd2134af5 kmem_cache_create
+EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel
+EXPORT_SYMBOL vmlinux 0xd2394a0b jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xd247d2a4 matroxfb_read_pins
+EXPORT_SYMBOL vmlinux 0xd2495e09 pci_write_vpd
+EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t
+EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook
+EXPORT_SYMBOL vmlinux 0xd27cabe5 fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table
+EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0xd2cfb2b8 devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0xd31403e3 scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0xd3187da4 pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible
+EXPORT_SYMBOL vmlinux 0xd320e0ed scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0xd35f1d18 dev_uc_flush
+EXPORT_SYMBOL vmlinux 0xd3674bc4 otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0xd3791d39 pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0xd3a0ca64 pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0xd3acf67a genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0xd3d15b97 seq_escape
+EXPORT_SYMBOL vmlinux 0xd3e31653 neigh_table_clear
+EXPORT_SYMBOL vmlinux 0xd3e6f60d cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0xd3f8497c kernel_bind
+EXPORT_SYMBOL vmlinux 0xd4072ccc vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0xd409383c pmu_request
+EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource
+EXPORT_SYMBOL vmlinux 0xd4232bbf pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0xd435330e gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0xd44f45bb scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0xd451a2b6 blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0xd4690b56 bio_integrity_free
+EXPORT_SYMBOL vmlinux 0xd47f3252 security_file_mmap
+EXPORT_SYMBOL vmlinux 0xd495ac79 tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0xd4a458b3 input_free_device
+EXPORT_SYMBOL vmlinux 0xd4d46fcd wireless_spy_update
+EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd54546f4 dmam_pool_create
+EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out
+EXPORT_SYMBOL vmlinux 0xd5688a7a radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xd5792e80 i2c_register_driver
+EXPORT_SYMBOL vmlinux 0xd57c5907 jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0xd57d1033 inet_sendmsg
+EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages
+EXPORT_SYMBOL vmlinux 0xd5816a25 kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0xd592cd6d of_register_spi_devices
+EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put
+EXPORT_SYMBOL vmlinux 0xd5b2e52a single_step_exception
+EXPORT_SYMBOL vmlinux 0xd5bbfed5 atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0xd5ce1be7 sock_kfree_s
+EXPORT_SYMBOL vmlinux 0xd5e412d9 xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0xd5e8444a __div64_32
+EXPORT_SYMBOL vmlinux 0xd5ed92bf dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0xd5f8893e filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0xd5f8e768 of_create_pci_dev
+EXPORT_SYMBOL vmlinux 0xd616108a phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0xd61b0c95 journal_clear_err
+EXPORT_SYMBOL vmlinux 0xd627480b strncat
+EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd63290b7 elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0xd635d134 rb_last
+EXPORT_SYMBOL vmlinux 0xd64c831f pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0xd6501c27 page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0xd69b30e0 atomic64_add_unless
+EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single
+EXPORT_SYMBOL vmlinux 0xd6c19259 xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xd6c4bbd5 blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0xd6d8956f xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0xd6e3d706 ip_fragment
+EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc
+EXPORT_SYMBOL vmlinux 0xd6f97ca1 rb_first
+EXPORT_SYMBOL vmlinux 0xd723de3c mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0xd735f46e xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0xd73657c9 abort_creds
+EXPORT_SYMBOL vmlinux 0xd7504fc6 iget_failed
+EXPORT_SYMBOL vmlinux 0xd753260a matroxfb_DAC_in
+EXPORT_SYMBOL vmlinux 0xd7679a2f create_proc_entry
+EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and
+EXPORT_SYMBOL vmlinux 0xd77c5ff8 dev_uc_sync
+EXPORT_SYMBOL vmlinux 0xd77e4f89 unregister_binfmt
+EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal
+EXPORT_SYMBOL vmlinux 0xd79e81cd tty_port_close
+EXPORT_SYMBOL vmlinux 0xd7df3f37 skb_pull
+EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7e845a8 fail_migrate_page
+EXPORT_SYMBOL vmlinux 0xd7e9c73a matroxfb_vgaHWinit
+EXPORT_SYMBOL vmlinux 0xd7efd09d fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0xd7f36505 neigh_for_each
+EXPORT_SYMBOL vmlinux 0xd7f3da7e handle_sysrq
+EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user
+EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone
+EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p
+EXPORT_SYMBOL vmlinux 0xd8c30c5d of_gpio_count
+EXPORT_SYMBOL vmlinux 0xd8e4475d xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd90fb811 generic_setxattr
+EXPORT_SYMBOL vmlinux 0xd91954e1 get_write_access
+EXPORT_SYMBOL vmlinux 0xd91f6445 sock_no_accept
+EXPORT_SYMBOL vmlinux 0xd9217658 aio_complete
+EXPORT_SYMBOL vmlinux 0xd92514ca agp_special_page
+EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd93e0821 kset_unregister
+EXPORT_SYMBOL vmlinux 0xd956fe1f blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0xd97027ad i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd999330d inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0xd9a3f422 bio_unmap_user
+EXPORT_SYMBOL vmlinux 0xd9a5f57a __invalidate_device
+EXPORT_SYMBOL vmlinux 0xd9b4ec1f cfb_copyarea
+EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen
+EXPORT_SYMBOL vmlinux 0xd9cefa6d tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xd9e0b1f6 generic_write_sync
+EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf
+EXPORT_SYMBOL vmlinux 0xda68732e tcf_register_action
+EXPORT_SYMBOL vmlinux 0xda792bf2 swiotlb_free_coherent
+EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda7fd455 matroxfb_enable_irq
+EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xdaa0ef85 pci_request_regions
+EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages
+EXPORT_SYMBOL vmlinux 0xdac84a3d xfrm_input
+EXPORT_SYMBOL vmlinux 0xdb65c9db simple_write_end
+EXPORT_SYMBOL vmlinux 0xdb687d04 unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0xdb78c185 slow_work_register_user
+EXPORT_SYMBOL vmlinux 0xdb864d65 iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0xdb88d7f5 of_find_property
+EXPORT_SYMBOL vmlinux 0xdbbf6c7d generic_removexattr
+EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbd205bb blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0xdbe70e39 skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc0d8c82 set_groups
+EXPORT_SYMBOL vmlinux 0xdc0decbd inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems
+EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint
+EXPORT_SYMBOL vmlinux 0xdc3735d5 kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize
+EXPORT_SYMBOL vmlinux 0xdc516947 dentry_open
+EXPORT_SYMBOL vmlinux 0xdc531277 alloc_netdev_mq
+EXPORT_SYMBOL vmlinux 0xdc640323 dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0xdc6aba03 jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0xdc727289 __percpu_counter_init
+EXPORT_SYMBOL vmlinux 0xdc732024 irq_stat
+EXPORT_SYMBOL vmlinux 0xdc7fe515 tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0xdc908871 try_to_del_timer_sync
+EXPORT_SYMBOL vmlinux 0xdc909b3d rfkill_destroy
+EXPORT_SYMBOL vmlinux 0xdc91e8bb scsi_device_resume
+EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family
+EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close
+EXPORT_SYMBOL vmlinux 0xdcd7263e key_alloc
+EXPORT_SYMBOL vmlinux 0xdcecdf1d dcache_lock
+EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume
+EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat
+EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr
+EXPORT_SYMBOL vmlinux 0xdd2ace10 get_phy_id
+EXPORT_SYMBOL vmlinux 0xdd382e15 cap_file_mmap
+EXPORT_SYMBOL vmlinux 0xdd3f067c blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0xdd436ae5 request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0xdd6bfccd radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0xdd74b89d nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0xdd77718d request_firmware
+EXPORT_SYMBOL vmlinux 0xdd7bf6cd dcache_dir_close
+EXPORT_SYMBOL vmlinux 0xdd8d66d5 cdrom_release
+EXPORT_SYMBOL vmlinux 0xdda167d0 cad_pid
+EXPORT_SYMBOL vmlinux 0xddbcae99 mutex_unlock
+EXPORT_SYMBOL vmlinux 0xddddc17e d_add_ci
+EXPORT_SYMBOL vmlinux 0xddde81df journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0xde02baeb lro_receive_frags
+EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock
+EXPORT_SYMBOL vmlinux 0xde53f864 console_stop
+EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type
+EXPORT_SYMBOL vmlinux 0xde869d6b init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0xde88b0c0 sg_miter_stop
+EXPORT_SYMBOL vmlinux 0xde90fe3d d_move
+EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages
+EXPORT_SYMBOL vmlinux 0xdea939d8 skb_clone
+EXPORT_SYMBOL vmlinux 0xdebb7754 of_get_address
+EXPORT_SYMBOL vmlinux 0xdee40a80 dev_alloc_name
+EXPORT_SYMBOL vmlinux 0xdf15a772 lock_rename
+EXPORT_SYMBOL vmlinux 0xdf31ac0f ide_stall_queue
+EXPORT_SYMBOL vmlinux 0xdf342df3 bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval
+EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol
+EXPORT_SYMBOL vmlinux 0xdf84795d pci_enable_msix
+EXPORT_SYMBOL vmlinux 0xdf88135e single_release
+EXPORT_SYMBOL vmlinux 0xdf8b600c submit_bio
+EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdf9a9a01 ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0xdfa94dda adb_client_list
+EXPORT_SYMBOL vmlinux 0xdff43ed4 __debugger
+EXPORT_SYMBOL vmlinux 0xdff56e64 adb_poll
+EXPORT_SYMBOL vmlinux 0xdffa24cf d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xe000c2fe __dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0xe0235f29 tcp_child_process
+EXPORT_SYMBOL vmlinux 0xe0459d70 inet_stream_connect
+EXPORT_SYMBOL vmlinux 0xe04f52cd mdiobus_free
+EXPORT_SYMBOL vmlinux 0xe06bc64d netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0xe073cc24 xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe07b8b79 tty_register_device
+EXPORT_SYMBOL vmlinux 0xe082071c sock_wmalloc
+EXPORT_SYMBOL vmlinux 0xe085d5ae flush_dcache_page
+EXPORT_SYMBOL vmlinux 0xe08cc92d input_close_device
+EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next
+EXPORT_SYMBOL vmlinux 0xe0aa4cbf bd_release
+EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free
+EXPORT_SYMBOL vmlinux 0xe0b6326d gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort
+EXPORT_SYMBOL vmlinux 0xe0c71b1d mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0xe0d8a87d vm_insert_page
+EXPORT_SYMBOL vmlinux 0xe0e1c034 blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0xe110a864 kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial
+EXPORT_SYMBOL vmlinux 0xe1502521 dquot_acquire
+EXPORT_SYMBOL vmlinux 0xe16e6252 xfrm_state_add
+EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe179fc1b lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0xe1df4f43 inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0xe1e13156 of_device_is_available
+EXPORT_SYMBOL vmlinux 0xe1eccb2b blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0xe1ed06c5 mutex_trylock
+EXPORT_SYMBOL vmlinux 0xe1fafe53 d_find_alias
+EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense
+EXPORT_SYMBOL vmlinux 0xe237cbd5 dquot_resume
+EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64
+EXPORT_SYMBOL vmlinux 0xe257ca20 netif_carrier_on
+EXPORT_SYMBOL vmlinux 0xe29ca19c __set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0xe2ae4be3 gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp
+EXPORT_SYMBOL vmlinux 0xe2de9642 llc_sap_open
+EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range
+EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user
+EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup
+EXPORT_SYMBOL vmlinux 0xe308c54d splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0xe33062b1 devm_ioport_map
+EXPORT_SYMBOL vmlinux 0xe3345bdd dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0xe33d4342 skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xe3593ede bdi_destroy
+EXPORT_SYMBOL vmlinux 0xe363e6a6 dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0xe39df308 jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0xe3a578d0 mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0xe3a7191f register_filesystem
+EXPORT_SYMBOL vmlinux 0xe3a810a4 mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0xe3ca9c26 generic_file_llseek
+EXPORT_SYMBOL vmlinux 0xe3db26b8 submit_bh
+EXPORT_SYMBOL vmlinux 0xe3e0fbcd blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0xe3e266b0 seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0xe3e7a195 con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0xe40f0788 bioset_create
+EXPORT_SYMBOL vmlinux 0xe4380d98 blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0xe4644f22 register_key_type
+EXPORT_SYMBOL vmlinux 0xe4659be2 xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xe46e632a __splice_from_pipe
+EXPORT_SYMBOL vmlinux 0xe476a9af add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0xe484e35f ioread32
+EXPORT_SYMBOL vmlinux 0xe48e64dd neigh_seq_next
+EXPORT_SYMBOL vmlinux 0xe497ac1e percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0xe4d0aad3 task_nice
+EXPORT_SYMBOL vmlinux 0xe4d9f105 netif_receive_skb
+EXPORT_SYMBOL vmlinux 0xe4eb7246 tty_mutex
+EXPORT_SYMBOL vmlinux 0xe4f6f543 scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe51db71a jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0xe51e1643 scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe5373670 neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0xe553601a nobh_writepage
+EXPORT_SYMBOL vmlinux 0xe57476e9 simple_rename
+EXPORT_SYMBOL vmlinux 0xe575eabc fasync_helper
+EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton
+EXPORT_SYMBOL vmlinux 0xe57d8022 blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5c136ba km_report
+EXPORT_SYMBOL vmlinux 0xe5c24fea proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5c80170 dquot_quota_on_path
+EXPORT_SYMBOL vmlinux 0xe5cdc9bc mnt_pin
+EXPORT_SYMBOL vmlinux 0xe5d3ebf4 rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe5efbfe9 journal_errno
+EXPORT_SYMBOL vmlinux 0xe6321cb0 tty_vhangup
+EXPORT_SYMBOL vmlinux 0xe65d4893 i2c_bit_add_numbered_bus
+EXPORT_SYMBOL vmlinux 0xe65e20c0 invalidate_inodes
+EXPORT_SYMBOL vmlinux 0xe68b5565 ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6b0570f block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0xe6cd2ffd xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0xe6dd236d clear_pages
+EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update
+EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe6fe33e4 down_killable
+EXPORT_SYMBOL vmlinux 0xe71c5ec9 blk_requeue_request
+EXPORT_SYMBOL vmlinux 0xe72323b8 rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0xe74f08d7 pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0xe758a330 vfs_read
+EXPORT_SYMBOL vmlinux 0xe75aa229 filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0xe77b8b1b sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0xe7bc0106 pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0xe7c7b436 read_cache_pages
+EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio
+EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7ee980b journal_set_features
+EXPORT_SYMBOL vmlinux 0xe7f4b9d5 __register_chrdev
+EXPORT_SYMBOL vmlinux 0xe805fdbe neigh_update
+EXPORT_SYMBOL vmlinux 0xe8160839 ___pskb_trim
+EXPORT_SYMBOL vmlinux 0xe85b4ca9 scsi_target_resume
+EXPORT_SYMBOL vmlinux 0xe862a071 blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0xe8dde568 dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0xe9062268 fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0xe90aa4e9 rb_insert_color
+EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module
+EXPORT_SYMBOL vmlinux 0xe914e41e strcpy
+EXPORT_SYMBOL vmlinux 0xe9407a98 vfs_llseek
+EXPORT_SYMBOL vmlinux 0xe966b84c pci_remove_bus
+EXPORT_SYMBOL vmlinux 0xe99d9f3b fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0xe9a04520 del_timer
+EXPORT_SYMBOL vmlinux 0xe9a1222c i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0xe9afcaef ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0xe9b3247a bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0xe9d71892 jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0xe9d7ade3 xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0xe9f05f10 vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0xe9f589b7 xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea13403b textsearch_register
+EXPORT_SYMBOL vmlinux 0xea147363 printk
+EXPORT_SYMBOL vmlinux 0xea19a921 slow_work_sleep_till_thread_needed
+EXPORT_SYMBOL vmlinux 0xea1d24d0 path_get
+EXPORT_SYMBOL vmlinux 0xea2d33a2 radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0xea3d7227 nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0xea6dc1bf netif_napi_add
+EXPORT_SYMBOL vmlinux 0xea7987f1 key_update
+EXPORT_SYMBOL vmlinux 0xea843426 clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0xea858cb5 radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xeab3efc4 inode_set_bytes
+EXPORT_SYMBOL vmlinux 0xead4cbcb napi_frags_skb
+EXPORT_SYMBOL vmlinux 0xeade6051 __insert_inode_hash
+EXPORT_SYMBOL vmlinux 0xeaf16558 ida_init
+EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq
+EXPORT_SYMBOL vmlinux 0xeb31b34b mdio_bus_type
+EXPORT_SYMBOL vmlinux 0xeb5a54ad ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0xeb66240d ip_route_output_key
+EXPORT_SYMBOL vmlinux 0xeb6c1362 scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n
+EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present
+EXPORT_SYMBOL vmlinux 0xeba8dbd4 vfs_write
+EXPORT_SYMBOL vmlinux 0xebc5505c sock_no_connect
+EXPORT_SYMBOL vmlinux 0xebd10f00 __xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull
+EXPORT_SYMBOL vmlinux 0xebf5ec30 kill_litter_super
+EXPORT_SYMBOL vmlinux 0xebf95533 key_negate_and_link
+EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec3795d3 bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0xec66898e blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xecddce42 __dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0xed5a1392 nf_getsockopt
+EXPORT_SYMBOL vmlinux 0xed86b3b7 ___ratelimit
+EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xedad0732 alloc_hippi_dev
+EXPORT_SYMBOL vmlinux 0xedb5f9ad bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedc03953 iounmap
+EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table
+EXPORT_SYMBOL vmlinux 0xeddb067f kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0xedfb9a0f balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee30a3bd pci_remove_behind_bridge
+EXPORT_SYMBOL vmlinux 0xee59412f adb_try_handler_change
+EXPORT_SYMBOL vmlinux 0xee5967ea tcf_hash_create
+EXPORT_SYMBOL vmlinux 0xee84bd7d bdi_init
+EXPORT_SYMBOL vmlinux 0xee859ec6 current_fs_time
+EXPORT_SYMBOL vmlinux 0xeea04dc7 textsearch_destroy
+EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeeebb9a3 tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0xef31056a tcf_hash_release
+EXPORT_SYMBOL vmlinux 0xef3cc77d tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0xef51cda2 send_sig
+EXPORT_SYMBOL vmlinux 0xef5cc8d9 dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0xef6c5bed migrate_page
+EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool
+EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range
+EXPORT_SYMBOL vmlinux 0xeff4d8b7 generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0xeffeb99c do_sync_read
+EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list
+EXPORT_SYMBOL vmlinux 0xf0184088 pci_reenable_device
+EXPORT_SYMBOL vmlinux 0xf01cbe2c mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0xf027908c netdev_features_change
+EXPORT_SYMBOL vmlinux 0xf04061a9 sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xf043f17d __inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0xf04561ec ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0xf04ae1ba idr_remove_all
+EXPORT_SYMBOL vmlinux 0xf0553993 sock_kmalloc
+EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be
+EXPORT_SYMBOL vmlinux 0xf08c0eee vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0xf08e8bfd __scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xf0909586 skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0xf0cc936d __mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0xf0ce8bfd __xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xf0eb4aab unregister_console
+EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf
+EXPORT_SYMBOL vmlinux 0xf0f89a5b scsi_init_io
+EXPORT_SYMBOL vmlinux 0xf10de535 ioread8
+EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32
+EXPORT_SYMBOL vmlinux 0xf127c045 notify_change
+EXPORT_SYMBOL vmlinux 0xf1642867 pskb_copy
+EXPORT_SYMBOL vmlinux 0xf170bf6d key_type_keyring
+EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem
+EXPORT_SYMBOL vmlinux 0xf194c3f8 cont_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1963de7 write_inode_now
+EXPORT_SYMBOL vmlinux 0xf19e9355 cpu_online_mask
+EXPORT_SYMBOL vmlinux 0xf1ab34d0 scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0xf1d3f332 __lock_buffer
+EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1de3a35 file_permission
+EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64
+EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun
+EXPORT_SYMBOL vmlinux 0xf1fff2de invalidate_bdev
+EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq
+EXPORT_SYMBOL vmlinux 0xf2146a2d jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xf2182098 nobh_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0xf218c380 xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0xf24d7c6b dev_addr_add
+EXPORT_SYMBOL vmlinux 0xf268c5ce install_exec_creds
+EXPORT_SYMBOL vmlinux 0xf2a7e887 flush_tlb_page
+EXPORT_SYMBOL vmlinux 0xf2c29419 sock_no_mmap
+EXPORT_SYMBOL vmlinux 0xf2cc2f40 cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0xf2d75bef vfs_rename
+EXPORT_SYMBOL vmlinux 0xf30ca741 sock_recvmsg
+EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform
+EXPORT_SYMBOL vmlinux 0xf3185c8e rtnl_unicast
+EXPORT_SYMBOL vmlinux 0xf322a206 bit_waitqueue
+EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name
+EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user
+EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf33b28cf touch_atime
+EXPORT_SYMBOL vmlinux 0xf33d01ea do_sync_write
+EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf36cdd84 of_iomap
+EXPORT_SYMBOL vmlinux 0xf3880883 skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf38be0f8 nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf39bf4d9 put_cmsg
+EXPORT_SYMBOL vmlinux 0xf3a8df01 dev_mc_del
+EXPORT_SYMBOL vmlinux 0xf3ba5d5b generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3c7f356 skb_free_datagram
+EXPORT_SYMBOL vmlinux 0xf3eb0047 kthread_bind
+EXPORT_SYMBOL vmlinux 0xf3f120a6 write_one_page
+EXPORT_SYMBOL vmlinux 0xf417004d blkdev_fsync
+EXPORT_SYMBOL vmlinux 0xf423529d genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf4449388 timer_interrupt
+EXPORT_SYMBOL vmlinux 0xf44f8c91 pci_select_bars
+EXPORT_SYMBOL vmlinux 0xf45180dd sk_dst_check
+EXPORT_SYMBOL vmlinux 0xf4599ec2 dquot_scan_active
+EXPORT_SYMBOL vmlinux 0xf46988b5 sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0xf4787bfd deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0xf489be91 sk_filter
+EXPORT_SYMBOL vmlinux 0xf48f4e44 genl_register_ops
+EXPORT_SYMBOL vmlinux 0xf49254d6 no_llseek
+EXPORT_SYMBOL vmlinux 0xf4abd18e rfkill_blocked
+EXPORT_SYMBOL vmlinux 0xf4d6560a lro_receive_skb
+EXPORT_SYMBOL vmlinux 0xf4d707c6 con_is_bound
+EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xf52321e0 atomic64_sub
+EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n
+EXPORT_SYMBOL vmlinux 0xf55a9e72 up_read
+EXPORT_SYMBOL vmlinux 0xf5742444 alloc_disk
+EXPORT_SYMBOL vmlinux 0xf59398fa init_task
+EXPORT_SYMBOL vmlinux 0xf59fca77 mfd_add_devices
+EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io
+EXPORT_SYMBOL vmlinux 0xf5b2b9a2 pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xf5cefdb6 swiotlb_map_sg
+EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister
+EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf61129d2 unregister_cdrom
+EXPORT_SYMBOL vmlinux 0xf611416b rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0xf6132509 jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0xf6318528 inode_needs_sync
+EXPORT_SYMBOL vmlinux 0xf648493e end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0xf66f32a1 rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0xf6739665 tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0xf674511a tcp_read_sock
+EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table
+EXPORT_SYMBOL vmlinux 0xf6bf72c9 icmp_send
+EXPORT_SYMBOL vmlinux 0xf6c50108 bmap
+EXPORT_SYMBOL vmlinux 0xf6ddd3c2 mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf6f3cb24 gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0xf6fd3b99 kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0xf70384d7 __debugger_sstep
+EXPORT_SYMBOL vmlinux 0xf70a8413 jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0xf71521ba atomic64_add_return
+EXPORT_SYMBOL vmlinux 0xf72d0495 padata_free
+EXPORT_SYMBOL vmlinux 0xf74025c7 nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xf748847f textsearch_prepare
+EXPORT_SYMBOL vmlinux 0xf7584a9c find_font
+EXPORT_SYMBOL vmlinux 0xf7623914 radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0xf767efa3 misc_register
+EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf79d6f4f have_submounts
+EXPORT_SYMBOL vmlinux 0xf7a18f0e tty_port_open
+EXPORT_SYMBOL vmlinux 0xf7b12aee __next_cpu
+EXPORT_SYMBOL vmlinux 0xf7b947d9 of_find_node_by_path
+EXPORT_SYMBOL vmlinux 0xf7ba4b53 mpage_readpage
+EXPORT_SYMBOL vmlinux 0xf7bb1a0d macio_request_resource
+EXPORT_SYMBOL vmlinux 0xf7c0708e xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0xf7c17cd9 bio_sector_offset
+EXPORT_SYMBOL vmlinux 0xf7d90599 jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0xf7da3040 bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0xf7e0f63c dev_uc_add
+EXPORT_SYMBOL vmlinux 0xf803b3fd udp_disconnect
+EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set
+EXPORT_SYMBOL vmlinux 0xf804c7e8 kill_pid
+EXPORT_SYMBOL vmlinux 0xf810561a alloc_trdev
+EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf812371f vfs_mknod
+EXPORT_SYMBOL vmlinux 0xf81b69f9 blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf854c4d6 mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0xf86f420e ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0xf8c11bde DAC1064_global_restore
+EXPORT_SYMBOL vmlinux 0xf9131ae2 netlink_broadcast
+EXPORT_SYMBOL vmlinux 0xf92aa9f0 read_dev_sector
+EXPORT_SYMBOL vmlinux 0xf957845d __dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xf95e2a9a journal_check_available_features
+EXPORT_SYMBOL vmlinux 0xf97352d9 request_key_async
+EXPORT_SYMBOL vmlinux 0xf983f72e __kfree_skb
+EXPORT_SYMBOL vmlinux 0xf98e16fd mach_chrp
+EXPORT_SYMBOL vmlinux 0xf98e4f58 unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0xf99ba082 blk_rq_init
+EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep
+EXPORT_SYMBOL vmlinux 0xf9e42a90 powerpc_debugfs_root
+EXPORT_SYMBOL vmlinux 0xfa348cff pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0xfa5dd00a tty_unregister_device
+EXPORT_SYMBOL vmlinux 0xfa658e98 i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0xfa86556e netif_napi_del
+EXPORT_SYMBOL vmlinux 0xfa958698 dm_io_client_create
+EXPORT_SYMBOL vmlinux 0xfaa4cf91 inetdev_by_index
+EXPORT_SYMBOL vmlinux 0xfabe804e kobject_add
+EXPORT_SYMBOL vmlinux 0xfad24137 tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock
+EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32
+EXPORT_SYMBOL vmlinux 0xfb085522 sk_receive_skb
+EXPORT_SYMBOL vmlinux 0xfb0b68c2 vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs
+EXPORT_SYMBOL vmlinux 0xfb21c438 jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xfb225ae1 read_cache_page_async
+EXPORT_SYMBOL vmlinux 0xfb29b8aa cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb7ab4d3 __sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0xfb7e366d max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0xfba3700b i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0xfbaeff9c arp_xmit
+EXPORT_SYMBOL vmlinux 0xfbbc2f15 dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xfbf5067f dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0xfbf5afa1 backlight_device_register
+EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc09af47 journal_create
+EXPORT_SYMBOL vmlinux 0xfc0bbc91 ps2_begin_command
+EXPORT_SYMBOL vmlinux 0xfc18f298 scm_detach_fds
+EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc42e087 pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0xfc4a023d xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0xfc53e0a0 serio_interrupt
+EXPORT_SYMBOL vmlinux 0xfc6c6574 __page_symlink
+EXPORT_SYMBOL vmlinux 0xfc82cd2b of_device_uevent
+EXPORT_SYMBOL vmlinux 0xfc921813 dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcacf7f1 of_dev_get
+EXPORT_SYMBOL vmlinux 0xfcb676e9 bh_submit_read
+EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states
+EXPORT_SYMBOL vmlinux 0xfce1c796 alloc_fddidev
+EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq
+EXPORT_SYMBOL vmlinux 0xfcec499e blk_end_request_all
+EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfd0c5038 adb_unregister
+EXPORT_SYMBOL vmlinux 0xfd276707 dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0xfd6ec18c inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xfda8703c alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0xfdb559bd dev_uc_init
+EXPORT_SYMBOL vmlinux 0xfdb6cedc _raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be
+EXPORT_SYMBOL vmlinux 0xfdcdecdd revert_creds
+EXPORT_SYMBOL vmlinux 0xfddf38fc mdiobus_read
+EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe3c0c6d tcf_exts_change
+EXPORT_SYMBOL vmlinux 0xfe50c64a __nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xfe549245 simple_transaction_release
+EXPORT_SYMBOL vmlinux 0xfe5987d4 __locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xfe5b0457 security_task_getsecid
+EXPORT_SYMBOL vmlinux 0xfe5d22c7 make_EII_client
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz
+EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfe958c24 dev_driver_string
+EXPORT_SYMBOL vmlinux 0xfeb17543 of_get_cpu_node
+EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin
+EXPORT_SYMBOL vmlinux 0xfecec02d fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0xfed2aa63 generic_file_open
+EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfeddee02 dev_get_flags
+EXPORT_SYMBOL vmlinux 0xfeedd9c9 ip_dev_find
+EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call
+EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start
+EXPORT_SYMBOL vmlinux 0xff2ffcf9 tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xff48d92a eth_validate_addr
+EXPORT_SYMBOL vmlinux 0xff4ce35c boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0xff54e9fa km_state_notify
+EXPORT_SYMBOL vmlinux 0xff61ed5e fget
+EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff6dea25 smp_hw_index
+EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int
+EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffacc20e __skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xffc6ea84 blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function
+EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x59f9e6a4 crypto_aes_set_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab
+EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x5ab6e4b5 async_memcpy
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x1d812284 async_syndrome_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xa34d5363 async_gen_syndrome
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xb6a1be5b async_raid6_2data_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xb88a37be async_raid6_datap_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x05952a15 async_tx_quiesce
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xb5c47b4a async_tx_submit
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xf9745008 async_trigger_callback
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xa871bd79 async_xor
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xd79654d9 async_xor_val
+EXPORT_SYMBOL_GPL crypto/cryptd 0x0850afd8 cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x18511ce3 cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x2f3a0185 cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x524d9318 cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x784ef127 cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x88423368 cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0xcee93cb8 cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey
+EXPORT_SYMBOL_GPL crypto/twofish_common 0xba39efad twofish_setkey
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x05797d88 ahci_save_initial_config
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x43213219 ahci_print_info
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6905390b ahci_sht
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6d3b70c8 ahci_ops
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x87fc341a ahci_start_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa30a53f4 ahci_reset_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb59fae7b ahci_reset_em
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb93b920d ahci_check_ready
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xbad73b1d ahci_do_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdf336f1d ahci_kick_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe4365ea5 ahci_init_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xfb82f772 ahci_set_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xfe6f3c48 ahci_stop_engine
+EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x8072527b __pata_platform_remove
+EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xedb47409 __pata_platform_probe
+EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xf0e733b6 sis_info133_for_sata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x00cf3508 btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0cc47d16 btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4fb83d1e btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4fc100c6 btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x54829276 btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x622bd1de btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x995ed935 btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xff146ce8 btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x81582b0b agp_add_bridge
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xac7e95d6 agp_remove_bridge
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x0e9d1960 tpm_show_enabled
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1121ff01 tpm_show_pcrs
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x14794467 tpm_get_timeouts
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x14911b74 tpm_gen_interrupt
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1863655b tpm_remove_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x26d6d4c2 tpm_dev_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x320e1ca5 tpm_show_caps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x39991b17 tpm_pm_resume
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x43358d6e tpm_store_cancel
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4408fa17 tpm_show_active
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4856707a tpm_show_temp_deactivated
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4dd8530b tpm_show_owned
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x59c420d7 tpm_show_pubek
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x62a23e07 tpm_open
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x84f2f235 tpm_write
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8b7d088c tpm_pm_suspend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x9d874438 tpm_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa414dade tpm_dev_vendor_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb702795a tpm_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcb254970 tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf82adecd tpm_continue_selftest
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf96c9daf tpm_register_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xffb9eabc tpm_show_caps_1_2
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xcf7a962e cn_add_callback
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x08e7ee13 edac_mc_handle_ce_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0ade7ba6 edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x100d64c7 edac_mc_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x34a96ff7 edac_pci_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3af3f3e8 edac_pci_handle_npe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6428e12a edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x644c3726 edac_mc_handle_ue_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6dddf17f edac_pci_reset_delay_period
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x74878f49 edac_device_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x75b1a1d6 edac_device_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x79b3251f edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7c841d4c edac_device_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7f158cd6 edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7fc93a46 edac_device_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x87d916f2 edac_mc_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x93ebc98e edac_mc_add_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x944ec5ef edac_pci_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb0415035 edac_pci_handle_pe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb3246d18 edac_mc_del_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc08db9a4 edac_mc_free
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd2752d53 edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe2f1f02b edac_mc_alloc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf2322e11 edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf4fe0496 edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xdde500db __max730x_probe
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xeeead707 __max730x_remove
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x8bd4e4a9 drm_class_device_unregister
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xcf982e94 drm_class_device_register
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x14623255 hid_debug_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x1aabfd44 hid_report_raw_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x1f329f7f hidinput_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x1fc5af3b hid_output_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x2204d413 hid_unregister_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x22336af7 hid_destroy_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x30b6c4f6 hid_dump_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x3bb33556 hid_set_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x449129fb hid_parse_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x46c43ebb hidraw_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x535cde02 hid_register_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x5407279e hid_allocate_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x73e5ac9e hidraw_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x7e7626f9 hid_input_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x85cb8a08 hid_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x8901f2f6 hidinput_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xac4d662a hid_dump_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xbbe3ebbf hidinput_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc136f3c5 hid_resolv_usage
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xca83fa6e hid_add_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xd6d6615d hid_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xdfc76b8e hid_dump_input
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe803899b hid_check_keys_pressed
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xf2bd2212 hidinput_find_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xfbed4833 hidraw_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xfcffda72 __hid_register_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xa364574a roccat_connect
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x274bca5c usbhid_set_leds
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x5a4a7bfa hiddev_hid_event
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x8cc22ab4 usbhid_submit_report
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xfac8b708 usbhid_wait_io
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x321f3a96 lis3_dev
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x64058be6 lis3lv02d_init_device
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x9d938638 lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xddc8e298 lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe690827f lis3lv02d_poweron
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x46e7453d i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xf20364ac i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x9322713a hpsb_config_rom_ip1394_add
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xb87ae3a9 hpsb_config_rom_ip1394_remove
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm
+EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x4c96b226 input_ff_create_memless
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x10980280 wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2eb8a9ea wm9705_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3306b4b0 wm9712_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x49dce8ff wm97xx_config_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6c4e36e1 wm97xx_set_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6d40dd28 wm97xx_reg_write
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa8a3a628 wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa99814ec wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xdb725e1f wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xdc4e2b35 wm97xx_reg_read
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf8a38635 wm97xx_get_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xffacb42e wm9713_codec
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x009020ba wf_find_control
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x14a649e2 wf_get_control
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x1a58b7a7 wf_get_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x1bb76f88 wf_find_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x1fbe9eee wf_register_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x24ddb64d wf_unregister_control
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x4d7e63eb wf_register_control
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x56c98fc1 wf_put_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf15726f wf_unregister_client
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xb39c5d13 wf_unregister_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdb7e8499 wf_register_client
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xf8a5d85f wf_put_control
+EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x72adca8a dm_unregister_path_selector
+EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x8fc8500e dm_register_path_selector
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x02c11da7 dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x36b3e66e dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3bd33c06 dm_region_hash_create
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3ee15b5a dm_rh_update_states
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5166c0d3 dm_rh_start_recovery
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x6092a2d4 dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x67dadf69 dm_rh_recovery_start
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x74f012d4 dm_rh_recovery_end
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x76297845 dm_rh_inc_pending
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x82021748 dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x86ad1b13 dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x8eb29de0 dm_rh_flush
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x92d7012f dm_rh_region_context
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x95758b59 dm_rh_get_region_size
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x9d63739f dm_rh_dirty_log
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xac4a8847 dm_rh_get_state
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbc4b08cb dm_region_hash_destroy
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe0a90fa5 dm_rh_delay
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe89a5b3c dm_rh_dec
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xed164389 dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfc349666 dm_rh_get_region_key
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0x2d857aca md_do_sync
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0x5b9491dc sync_page_io
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0x8e0f040b md_new_event
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0xbc5420d7 md_allow_write
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x05513b71 raid6_call
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x0b8ef590 raid6_2data_recov
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x4a48d81c raid6_datap_recov
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x0349ce31 ir_input_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x31c5b436 ir_input_nokey
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x45e2d69b ir_input_init
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x0e12ac30 ir_unregister_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x2c5f93f7 ir_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x2e096f2c ir_input_unregister
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x34bdec59 ir_raw_event_store
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x3c8be95e __ir_input_register
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x4033497d ir_register_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x62ca613f ir_raw_event_handle
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x9e90b7ce ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xad2a9818 ir_repeat
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xe7ca8964 ir_g_keycode_from_table
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xe8366d2c get_rc_map
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x06b3830d saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x1700cc02 saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2984ddd6 saa7146_setgpio
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x63b303f6 saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x66193f67 saa7146_register_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x73cee059 saa7146_devices_lock
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x816539bd saa7146_pgtable_free
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9a56e613 saa7146_unregister_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa6e6ac7d saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xbfd0ea0e saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd4cd6b22 saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x2de5af74 saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x5fa4c11f saa7146_vv_release
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x752e117a saa7146_start_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xac8bfd98 saa7146_vv_init
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xb68ad3e0 saa7146_register_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xcace1e6f saa7146_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xe9b42143 saa7146_stop_preview
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xc77285a7 microtune_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x8de81156 mxl5007t_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x59ee4af9 tda18271_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0xff474ab4 tda827x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x777d3920 tda829x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xa4e7894e tda829x_probe
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0x9fe0b8e0 tda9887_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x8abf1046 tea5761_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xd5004ec2 tea5761_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x4277d2bc tea5767_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x885cdf06 tea5767_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xacee9726 simple_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0ba683d8 mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x1af18f70 mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x24343747 mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2861f762 mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2d18de08 mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5172cb6d mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x58023639 mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5a5038cf ir_mantis
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6928b682 mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x6ba7e3a1 mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9687bd04 mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9819e5b5 mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd42a800e mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd474044d mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xd9faef80 mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe6e47c5f mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xea00f5fa mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xef45b311 gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x153bf64d smscore_putbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2143eec5 sms_board_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x2779e25d smscore_register_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x30578938 smscore_register_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x33a190e1 smscore_set_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x36199c79 smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4196d78a smscore_get_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7d1c84c2 smscore_getbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8a1cb794 smscore_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x91f866cf smscore_get_device_mode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x96b0ce64 sms_board_event
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xa5b77e80 sms_board_led_feedback
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xad2744c7 smscore_onresponse
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc21f2c8f smscore_start_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xc3bcf932 smscore_register_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xd5c0a52c smscore_unregister_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xdb4f25e2 sms_board_setup
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe4c442fd smsclient_sendrequest
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xeffa361b sms_board_lna_control
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x0f8f9073 cx231xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x15ce2787 cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1b2a8534 cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x46101682 cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x655c4f95 cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x8e87dcb6 cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xaf159b51 cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc84574e9 cx231xx_dev_init
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcaa227f0 cx231xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcb3edeb0 cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xd4fe05da cx231xx_capture_start
+EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0x7ffc74a7 cx88_setup_xc3028
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x41511213 em28xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x4f0e69a5 em28xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x910f80d2 em28xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xb4d7e278 em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xf9dc1623 em28xx_audio_setup
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xfdf6daad em28xx_isoc_dvb_max_packetsize
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x03aa56ad saa7134_ts_qops
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x2e96fb53 saa7134_s_std_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xcb8e7665 saa7134_g_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xe2459e44 saa7134_queryctrl
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xe910ef55 saa7134_s_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x16c7bf76 v4l2_i2c_new_subdev_cfg
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x31b0e750 v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x816a8949 v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x872c11f5 v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x9a633317 v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xd9c33881 v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x47ac857d v4l2_int_ioctl_0
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x4fe4cfbe v4l2_int_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x6e621aae v4l2_int_ioctl_1
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x9cb06963 v4l2_int_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x175b34fc v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x183be43a v4l2_m2m_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2cbae762 v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x3a54c0b3 v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4e5ba3cc v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4f9463fa v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x62bea753 v4l2_m2m_poll
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x6b7a5e23 v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x6bd3aeee v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x95a60ede v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa7a2ec64 v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xa93c6b37 v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xbf8a6c2d v4l2_m2m_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xec1bd6c4 v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x10b4edcb videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1ddc3f63 videobuf_read_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2bbe164a videobuf_queue_core_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2be5fb35 videobuf_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3c508435 __videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x3eabe9a4 videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x48a81de6 videobuf_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x56e40a72 videobuf_queue_cancel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5f9ad784 videobuf_cgmbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x673f63f4 videobuf_read_one
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6805fcd6 videobuf_poll_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6c58ab3f videobuf_read_start
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x85fb93a4 videobuf_waiton
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8df10ace videobuf_iolock
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9732f46d videobuf_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9cd99bbb videobuf_mmap_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa7f36068 videobuf_next_field
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc37ebbd6 videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xcf35f9af videobuf_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd801c909 videobuf_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdcb4a94d videobuf_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdf43273e videobuf_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe21431bf videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xef9f19dd videobuf_read_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfd8c0fe6 videobuf_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x1befd200 videobuf_queue_dma_contig_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x36c635de videobuf_dma_contig_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x75d58012 videobuf_to_dma_contig
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x0660f124 videobuf_to_dma
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x0eb48fb4 videobuf_dma_init_user
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1ac12417 videobuf_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x1fcfa84e videobuf_sg_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x23622ab2 videobuf_sg_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x78b65617 videobuf_dma_init_overlay
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7bb1d33a videobuf_dma_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8e731f99 videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9eb5c7da videobuf_dma_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xaa0777b3 videobuf_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe8a24336 videobuf_vmalloc_to_sg
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xf6a07628 videobuf_dma_init_kernel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x34817a48 videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x78b9f99c videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xbd16cd00 videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x02bc4bef v4l2_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x056bf578 v4l2_device_set_name
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1c88687b v4l2_event_queue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x31ae5b36 v4l2_event_dequeue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x34b53f8e v4l2_fh_exit
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x538f553f v4l2_device_disconnect
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x550f5fc3 v4l2_event_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5ff61533 v4l2_fh_del
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6c9f0304 v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x777a8e44 v4l2_fh_add
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x81f47940 v4l2_event_subscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8b1a00c3 v4l2_event_pending
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa18a2237 v4l2_event_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb9aa76d5 v4l2_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xbf7badd8 v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xca3194c5 v4l2_fh_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcb3d1d1c v4l2_event_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xec289481 v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3855a2e1 i2o_sg_tablesize
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x3cb7691e i2o_pool_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x4a74f3d1 i2o_dma_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x7b26e93f i2o_pool_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x98bdd4e7 i2o_dma_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xccd73cf8 i2o_dma_map_single
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xd52ca49d i2o_dma_map_sg
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf02538cb i2o_dma_realloc
+EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x8992f662 mc13783_adc_do_conversion
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0eec3167 pcf50633_register_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x282d63d9 pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x289aee99 pcf50633_write_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2d5c2401 pcf50633_read_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2e7d1202 pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6b9dcc1f pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x811248cb pcf50633_free_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xacdf2c19 pcf50633_irq_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb959b36b pcf50633_reg_write
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xbb7844c1 pcf50633_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfda4cc63 pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x01094b27 pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x3078588f pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x861ccbcd pcf50633_gpio_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x9cc56d67 pcf50633_gpio_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x9d3f3a87 pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xbfd82e27 pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xce9f83c5 pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x01d957d2 sm501_misc_control
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x105e03fe sm501_unit_power
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x1e8fb182 sm501_find_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x71c12baf sm501_set_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x9d75bb76 sm501_modify_reg
+EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x8389642a ucb1400_adc_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x5cfc31e4 wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xc3f21e95 wm8400_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xd62e7810 wm8400_set_bits
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xf1a551db wm8400_block_read
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x4fa58ab7 cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x976e201a cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x9e75b6e6 cb710_set_irq_handler
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xe3d7df52 cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0aba056e sdio_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0f0901a5 sdio_unregister_driver
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1299a146 sdio_release_host
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x16cceddf sdio_set_block_size
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1c7a4187 sdio_writeb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x216da382 sdio_align_size
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x2933cb60 sdio_disable_func
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x37c760bc sdio_writesb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x3a2466f5 sdio_writel
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x490e5a49 sdio_readl
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x52104f88 sdio_readsb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x521d2cb4 sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x551f311c sdio_enable_func
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x57bd682f sdio_claim_irq
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x5c2d415e sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x5fa40ec5 sdio_memcpy_toio
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7127b337 sdio_f0_writeb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9302c88f sdio_f0_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x93036e1c sdio_writew
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb63525c0 sdio_writeb_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb8ab9d56 sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xbc15e531 sdio_readw
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc1fc56e8 sdio_claim_host
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf457b9f2 sdio_release_irq
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xffecfd3f sdio_register_driver
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x09f76c26 sdhci_remove_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x23bd2c6e sdhci_free_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x25484560 sdhci_alloc_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x4a50b6a6 sdhci_resume_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x88e850bc sdhci_suspend_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x89a20bb0 sdhci_add_host
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x944a89e4 cfi_cmdset_0003
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xbd507247 cfi_cmdset_0001
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xeb206112 cfi_cmdset_0200
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x3f4a8053 cfi_cmdset_0006
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x6d7f7715 cfi_cmdset_0002
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xc04db438 cfi_cmdset_0701
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x0b93641f cfi_cmdset_0020
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x4249ffff cfi_qry_present
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xc2e7ae26 cfi_qry_mode_off
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xe9d2812f cfi_qry_mode_on
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xc46ef1b3 DoC2k_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x3541fbd2 DoCMil_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x96e20cd0 DoCMilPlus_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0e2e6bfd __mtd_next_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0f3acbd6 get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x318ae07f add_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3c11ab75 put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x48df91ab deregister_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6509890e del_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x66d95164 mtd_erase_callback
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x851405b6 parse_mtd_partitions
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8b608dac kill_mtd_super
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8e22f3c3 register_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x930eef05 __get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9a42c7d2 register_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa8e0de32 __put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb2f53714 unregister_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc4a1216f get_mtd_device_nm
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc7dbc61d get_sb_mtd
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xec57c6c8 mtd_table_mutex
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf9bec5d1 default_mtd_writev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x15a9856d deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x884b72cd add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xa2e807b5 del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe1d0b1b3 register_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x2aa38aaf nand_scan_ident
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x480981c7 nand_wait_ready
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x7ec454ab nand_unlock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xa395944a nand_scan_tail
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xac2081fc nand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xe49ec792 nand_release
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xfd8701a3 nand_lock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xe516eb24 sm_register_device
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x4fd91b83 onenand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x850562ba onenand_release
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x01ce0898 ubi_leb_change
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x058298c0 ubi_leb_erase
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2eae2567 ubi_close_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3f34a32a ubi_open_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5c941422 ubi_open_volume_path
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x639fd871 ubi_is_mapped
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x75169716 ubi_leb_read
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x88357437 ubi_get_volume_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8d9371fb ubi_leb_map
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x938c1cb8 ubi_open_volume_nm
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa9b5f768 ubi_do_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe66cada1 ubi_leb_unmap
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf7156c5a ubi_leb_write
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x05d8156f alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x09715ca5 register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x0ac0afc3 can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x372fab44 unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3e0ed9c0 close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x51fddd18 can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x54577253 alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5a4a77bc open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x71326c53 free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb452e036 alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd494ccca can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xff3b5aa9 can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x250ed209 free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xbe3f78bd unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd8f2bd8f register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xf5b32ce3 alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xbbe9a445 macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc5cad509 macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xcce405ba macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xcef5872b macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x03457ed3 mlx4_qp_remove
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0a3eadb7 mlx4_srq_arm
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0c7a19ef mlx4_srq_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1709424a mlx4_db_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1cfdfcb9 mlx4_pd_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2412e7b2 mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2896ff78 mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x29423c31 mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2a95a89e mlx4_unregister_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x365ab8b1 mlx4_srq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x377c40c8 mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3db63e45 mlx4_register_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3e086d39 mlx4_multicast_detach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3ffae1f8 mlx4_cq_resize
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x403d88ea mlx4_mr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4619ba10 mlx4_cq_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x480c8961 mlx4_qp_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4833c53d mlx4_mr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4c6695bd mlx4_mr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x50c979f8 mlx4_db_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x514d8842 mlx4_multicast_attach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x541633ed mlx4_register_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x576a59c1 mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5b5a69c7 mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x67e4e1a1 mlx4_qp_release_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x686e2305 mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x693553b3 mlx4_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x696d05f2 mlx4_qp_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6c42b257 mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6d34f940 mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x719191ff mlx4_pd_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7449da8f mlx4_buf_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x79cdee6b mlx4_register_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x83691a73 __mlx4_cmd
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8dfdd4be mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9534fe93 mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9da3f807 mlx4_cq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa43428ec mlx4_qp_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa47370b1 mlx4_qp_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa7ad8d22 mlx4_fmr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xad2b3e8b mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xae05cca9 mlx4_buf_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb23cf487 mlx4_mtt_init
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xca8b735e mlx4_srq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe0ae88d1 mlx4_uar_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe1e16079 mlx4_fmr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe98403ba mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe9b78da1 mlx4_mtt_addr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xec4847a0 mlx4_uar_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf023dfeb mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf0260583 mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf77128ee mlx4_cq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf83aa5db mlx4_unregister_interface
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x2a108741 usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x9ab4e867 usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x16e08c43 rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x65a2abca generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x84209f3d rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb70f3d4c rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xdbe4b6bd rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xfe66b714 rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x125f2cff usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1550967c usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3425c980 usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x385be171 usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3f866179 usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4d0884e1 usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4f385891 usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5b510672 usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x61502ac2 usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x65ea7358 usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6876fc2e usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6ad2e841 usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6d23da54 usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x77b8ee44 usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7e38ba4d usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7f8c85cf usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x866af27e usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x888b2560 usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8d825a9c usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa3881e18 usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xabeee8f9 usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc45d0d26 usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xea490ba0 usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfef29a7c usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x53829e9b i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5573811e i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x877452f7 i2400m_cmd_get_state
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x92a19b11 i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9f4382e7 i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9f7a1924 i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa0a063ff i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa8af7230 i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa9c667ac i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xad018431 i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xaf373ba1 i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xaff1141f i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd17f8803 i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd76cf368 i2400m_set_init_config
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdce5c69f i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe6fb1322 i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xeb0fe42c i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf08d3edf i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xa1f18d12 libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x5fefee6f iwl_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xb6bcbd87 iwl_dealloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xbca483b2 iwl_alloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x19397085 lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4897bfac lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4d79c911 lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x61f969d1 lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8f01e4fc lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x91037636 lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9deee04b lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbb23a3a3 lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbce52104 lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd197a1f0 lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdc853d5d __lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xeab8b76f lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf47dc911 lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf7e2f60e lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x5bf99441 lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x64a44f0e lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x7c1e028e lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb0529364 __lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb9276b2c lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc2cb6ca8 lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd08f5af4 lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xe6af9ad1 lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xd6eace0e if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xec623e68 if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x3af037af p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x45b54328 p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x65234358 p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7168ce3c p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7bbc214e p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x892a59e2 p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x922adaf2 p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xb49b46a8 p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc01441f4 p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0046f9bf rt2800_write_txwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x129198ec rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1519f63c rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x23bfe28e rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x315ba1a4 rt2800_init_bbp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3a4eaf9c rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3b7d7eac rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3dc986c8 rt2800_mac80211_ops
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4abe25b1 rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x58ff210e rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5e87c663 rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x60461bc7 rt2800_init_registers
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x63224432 rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6bd23427 rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7318da1b rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x77ff571b rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7cb9b3de rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8e4c242d rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb1cb9832 rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb646cfcc rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd35c5cfe rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd5ffbfb7 rt2800_init_rfcsr
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeef89e0e rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf59b1f30 rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0f44c386 rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2ab4bcf2 rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x45974372 rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x52b250e1 rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5a0fe107 rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5a588bad rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6a2901ff rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6c33e831 rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6fcc369d rt2x00queue_get_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x771a85ae rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x809e99a9 rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x946f10d8 rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x99f90809 rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9f7b4c73 rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa59ff0ef rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb1cb6bcc rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb32464f6 rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb59fb2d5 rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc19a6868 rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcec50b91 rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea57f121 rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xecf06bf2 rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf6e706e6 rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x23c5dc1a rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6443bea0 rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x70ecded5 rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x82dea58b rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x86d5de88 rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa862c027 rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xab91629e rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xdb534262 rt2x00pci_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xfb240f39 rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x126c47a1 rt2x00usb_vendor_request_large_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1886ec00 rt2x00usb_kick_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x486d4be6 rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4b3ab36e rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x502b5261 rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6e15f248 rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x700a2619 rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x89f5f107 rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8ab6f15c rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8e164f40 rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x95f41c9e rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe1f35416 rt2x00usb_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xeb923e68 rt2x00usb_kill_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xed2a3e9e rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xef931fee rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf4676d70 rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x2c4cb5a6 wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x479e90d5 wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x75a1186d wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x1eb8acc1 wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x6ab5bd12 wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x85700552 wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xd6ed000e wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xfb459fdb wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x08863f3d pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x0c45a686 pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x370ecae1 pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x33dab725 wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x3910c66d wm8350_register_led
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x45d3d91b wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x6b601c41 wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xae8dff08 wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xb65b1a58 wm8350_register_regulator
+EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x688e6a14 wm8400_register_regulator
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x058571f1 scsi_dh_activate
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x1a01bce2 scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x3939b082 scsi_register_device_handler
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x9b564451 scsi_dh_set_params
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xb82d4019 scsi_dh_attach
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xd0212236 scsi_dh_detach
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x500dbfb9 fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09f7f6cf iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0c178f07 iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x137b2575 iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1daedd7b iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x21af4e21 iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x344d2c44 iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x34a3ae7f iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3921aa04 iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3de10568 iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x41701494 iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4f2326e8 iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5abd5efc __iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5bfa11ba iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5ea5fadb iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x730e99ea iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8502885d iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9690e781 iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9737ecfe iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9875c237 iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9ab75059 iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9baf6e2f iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9f82442d iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa113165f iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa624fe4c iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa778ea34 iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaa9a58e8 iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaaed4750 iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb42b6547 iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb6d3ae44 iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbe05d4de iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2690109 iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc3d8f5e4 iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc6102dc6 iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe2a88758 __iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe4d96597 iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe679b2e7 iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xea82e76a iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf2c4a2b8 iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf42ccc03 iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf7048e75 iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf78d9a44 iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf9858623 iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x04ef58c5 iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2099c231 iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x268cf5ef iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4dd1c8da iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5266a3c9 iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x58313521 iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x77f29cbe iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x81250551 iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9ed930f3 iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xac78cdbf iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb70def63 iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd05280c3 iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd3e65285 iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf0082479 iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf7dfa8ce iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xfb19640e iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x006e5be2 sas_slave_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0bdc5adf sas_ssp_task_response
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x231efb99 sas_register_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x24acf4f7 sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x38a3b42c sas_phy_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x39fc5228 sas_find_local_phy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3d6d46f2 sas_unregister_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4734415e sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6e411523 sas_change_queue_type
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x74d7050b sas_domain_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7847cdf3 sas_eh_bus_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8a8ac64e sas_request_addr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa69de3aa sas_target_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb77a07ac sas_slave_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb880f7b1 sas_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd985f4fc sas_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xda64af4e sas_phy_enable
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdf455c91 sas_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe00f8f54 sas_bios_param
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe4c2dc95 sas_ioctl
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe61b4981 sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe7f94833 __sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xecbc4e63 sas_domain_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x0a9e067a srp_iu_get
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x1c00763a srp_target_free
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x34c2b0b8 srp_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x5f957407 srp_iu_put
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x923b1b8c srp_transfer_data
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xdb8311f7 srp_cmd_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x119a6af8 scsi_tgt_it_nexus_create
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5a52dd20 scsi_tgt_alloc_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5ba49fe3 scsi_host_get_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5f9b9846 scsi_tgt_it_nexus_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x64ea4c81 scsi_tgt_queue_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7648018b scsi_tgt_free_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x823c989e scsi_tgt_tsk_mgmt_request
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc419b7f0 scsi_tgt_cmd_to_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc7d6bf50 scsi_host_put_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x05ada7de iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1c2446f3 iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x27770c95 iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2cd7a0db iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x31c5416d iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x366dcc35 iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x40e5e24a iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x506d7b3c iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x744f9b15 iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x77598c12 iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7ca96e26 iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x990c5e60 iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa0dc6309 iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa446f068 iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaccf5195 iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xadcdb1fa iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb76d6bfc iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbb3e030c iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbfeab5af iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xed038724 iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xeed796d5 iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf84d4b29 iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x03e5adfe sas_tlr_supported
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x35476ea2 sas_disable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x44d18aec sas_enable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xebe3e840 sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x05825864 srp_rport_del
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x37cc2cc4 srp_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x42e9c697 srp_rport_add
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xdcacc2b9 srp_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xfe388fb4 srp_remove_host
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x5ccb2395 pciserial_resume_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x7932edae pciserial_suspend_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xe3376fc2 pciserial_remove_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xef3e1c24 pciserial_init_ports
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x2035f3e1 spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x53523dc5 spi_bitbang_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x889c2c1d spi_bitbang_setup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xa944d94c spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xd49317d0 spi_bitbang_stop
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xe4c6d3d1 spi_bitbang_start
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x4fedc23e st_register
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x0b9e526a tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x29ccf204 tm6000_get_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x309e5437 tm6000_set_reg
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x01d51988 __uio_register_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xc2b4653e uio_event_notify
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xd71be0c2 uio_unregister_device
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x293086da usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x6c602034 usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0cf53624 usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3df7ae05 usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x642cdbf4 usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x7b4ebe2b ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x859017af usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xab293dce usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe3ea5fd1 usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xecf5e8c1 usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xee4c56ed usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x119129f9 usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1e4a7a28 usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2512a72b usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x259d62e9 usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x32b8aedf usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x351f3845 usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x361593bd usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4d770a05 usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x60e24fed usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6be16b93 usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6ed673ce usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x755b9ee3 usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7a58b51b usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7e78f83a usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x85784ccc ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb163a0c3 usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd6adbd40 ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe9ab5581 usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf12ce1c3 usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x05ceacae usb_stor_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x392df356 usb_stor_reset_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4152dd71 usb_stor_clear_halt
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4857fad1 fill_inquiry_response
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4f0178c2 usb_stor_bulk_srb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5a6ad08b usb_stor_transparent_scsi_command
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6182b19e usb_stor_set_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x625a9915 usb_stor_control_msg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6ced9dc5 usb_stor_Bulk_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6e34d3bc usb_stor_CB_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x731a205a usb_stor_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x89f3aa3a usb_stor_pre_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8a0dad22 usb_usual_ignore_device
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8f4c2b2a usb_stor_bulk_transfer_sg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xaebf3536 usb_stor_probe1
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb05cb253 usb_stor_ctrl_transfer
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb6df23e1 usb_stor_post_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbad43421 usb_stor_probe2
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc9a1f22b usb_stor_bulk_transfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xdb5feb87 usb_stor_CB_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe366dd15 usb_stor_access_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe58bb0a6 usb_stor_suspend
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xea0c1f45 usb_stor_Bulk_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x2c139d63 wa_urb_enqueue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x4becef13 wa_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x50eb8b84 __wa_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x8101e79c rpipe_ep_disable
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x95a83cc6 wa_urb_dequeue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x01593293 wusbhc_rh_suspend
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0e56822b wusbhc_chid_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0fc1da48 wusbhc_rh_resume
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3899f5b7 wusbhc_b_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4396d24a wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4903598c wusbhc_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x57bbe03d wusbhc_reset_all
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5e77ae1c wusbhc_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x72c4b98a __wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7912fbfa wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8094143d wusbhc_rh_control
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8540036a wusbhc_b_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcef0b2a2 wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcf93c8b8 wusbhc_handle_dn
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe44acd6d wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xe649352e wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x2e4bbf2f i1480_fw_upload
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x819a2593 i1480_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x8a605119 i1480_rceb_check
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x160eb21e uwb_rts_cts_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x25557bb4 uwb_rts_cts_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x31abe276 uwb_phy_rate_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x75022642 uwb_phy_rate_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x98ec7199 uwb_pca_base_priority_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xaead4269 uwb_pca_base_priority_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xc45ddae3 uwb_ack_policy_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd31ee467 uwb_ack_policy_show
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x0b47dcb1 umc_driver_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x48bb8f4f umc_bus_type
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x541e122a __umc_driver_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x62f6e96b umc_device_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x7cb7e654 umc_controller_reset
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x9fc90d65 umc_device_create
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc53d4010 umc_device_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc8c36b41 umc_match_pci_id
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0851e2e7 uwb_rc_ie_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0f75eb3f uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1085fac8 uwb_rc_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1281569f uwb_radio_stop
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x19442723 uwb_rc_put
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2ce47066 uwb_rc_post_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x33a5f271 uwb_rc_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4a420f6b uwb_rsv_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x506edc75 uwb_notifs_deregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5328b0f5 uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x582eb899 uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x60a24bdd uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x72205081 uwb_rsv_modify
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7fc74731 uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x82d11b95 uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8313d4ff uwb_notifs_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8530b960 uwb_est_find_size
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8a0a5b27 uwb_rsv_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x909c4fea uwb_rc_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x926a331c __uwb_rc_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x930b9981 uwb_dev_for_each
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x988d6b32 uwb_rc_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x991f1eda uwb_rc_vcmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa22c4693 uwb_rc_neh_error
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa7540ad0 uwb_radio_start
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa9fa89a1 uwb_rsv_accept
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb20b963d uwb_pal_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbbd4ddf5 uwb_rsv_terminate
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbffdb103 uwb_rsv_establish
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc7d678d9 uwb_rc_alloc
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xce8c8d5a uwb_dev_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd5699831 uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdeef8040 uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe35cb534 uwb_rc_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xed12c303 uwb_pal_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xefb39b1c uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf5c1c8d0 uwb_pal_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/whci 0x92687b4d whci_wait_for
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x003798d1 wlp_dev_prim_category_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x130aa596 wlp_dev_prim_category_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1b60b7de wlp_neighborhood_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x24fab556 wlp_dev_model_nr_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x26c24c7e wlp_eda_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x27c6654d wlp_uuid_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x28bf244e wlp_dev_prim_subcat_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x29a2e17c wlp_prepare_tx_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x29ef5d58 wlp_dev_prim_OUI_sub_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3cbfc774 wlp_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4eb583c5 wlp_dev_model_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6264832d wlp_eda_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6933725a wlp_dev_manufacturer_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6e692d0c wlp_uuid_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6e700034 wlp_wss_activate_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x84af268e wlp_dev_serial_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x86bd08a5 wlp_dev_prim_OUI_sub_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x888abb40 wlp_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8ca1c1ee wlp_dev_serial_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x90a5a5c6 wlp_dev_prim_subcat_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x937c6637 wlp_dev_prim_OUI_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x96c2cd43 wlp_dev_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9906a2e4 wlp_dev_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9efc586a wlp_dev_model_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa3af3d37 wlp_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc032b5ae wlp_dev_model_nr_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc102b809 wlp_dev_prim_OUI_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc84f140b wlp_wss_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xee50f43c wlp_dev_manufacturer_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf3be4c00 wlp_wss_activate_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf5a35e1b wlp_wss_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf6db6aaa wlp_receive_frame
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x053f8b2a ili9320_write
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x087c8ab5 ili9320_shutdown
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x43150022 ili9320_remove
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7567557a ili9320_suspend
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7be22ccc ili9320_write_regs
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xcfe4315b ili9320_resume
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe3a39e1c ili9320_probe_spi
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x56b9bebe fb_sys_read
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xddcc1919 fb_sys_write
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x208526fc sis_free_new
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x68eebaa4 sis_malloc_new
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x1cb91dce viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x557efa1c viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x39dee338 register_virtio_device
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x46d8900c virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x6b305851 unregister_virtio_device
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xbdfa3eb3 register_virtio_driver
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0xf439a8df unregister_virtio_driver
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x1d8a6ce6 virtqueue_kick
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x2066d30e virtqueue_enable_cb
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x4544a2fc vring_new_virtqueue
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x8d55ab07 virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xb676c51a vring_del_virtqueue
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xd650d732 virtqueue_get_buf
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xdcfb0382 virtqueue_disable_cb
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xf7dc01aa vring_transport_features
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0xfbed2ed1 virtqueue_add_buf_gfp
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x18906502 w1_read_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x1b7d79b4 w1_write_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x1fef4596 w1_next_pullup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x2337bfec w1_read_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x85311fbe w1_reset_select_slave
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xcbcdfc09 w1_write_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xd356df04 w1_touch_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xdfad05f4 w1_reset_bus
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0499a204 dlm_posix_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x07a4ed60 dlm_posix_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xd75fa7e5 dlm_posix_get
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x21ba15a7 exportfs_encode_fh
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x41a1350e exportfs_decode_fh
+EXPORT_SYMBOL_GPL fs/fat/fat 0x0c0ab512 fat_fill_super
+EXPORT_SYMBOL_GPL fs/fat/fat 0x0dfe3af7 fat_getattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x208fb467 fat_dir_empty
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3eb0dc25 fat_free_clusters
+EXPORT_SYMBOL_GPL fs/fat/fat 0x5bc46603 __fat_fs_error
+EXPORT_SYMBOL_GPL fs/fat/fat 0x6983fadd fat_alloc_new_dir
+EXPORT_SYMBOL_GPL fs/fat/fat 0x73d00998 fat_time_unix2fat
+EXPORT_SYMBOL_GPL fs/fat/fat 0x77b8a849 fat_flush_inodes
+EXPORT_SYMBOL_GPL fs/fat/fat 0x82329147 fat_add_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x8e82c033 fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL fs/fat/fat 0x960cb7e0 fat_build_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0xa07b71c2 fat_detach
+EXPORT_SYMBOL_GPL fs/fat/fat 0xa9ac6a62 fat_attach
+EXPORT_SYMBOL_GPL fs/fat/fat 0xc18a5dd4 fat_scan
+EXPORT_SYMBOL_GPL fs/fat/fat 0xc246015c fat_search_long
+EXPORT_SYMBOL_GPL fs/fat/fat 0xcea0d7b0 fat_remove_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0xe0af61ea fat_setattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0xe8b5919d fat_sync_inode
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1277f1ec nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x438c1d9b nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8c151e87 nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb3647e33 nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc9e6699e nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x1f855496 nfsacl_encode
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x803a1d3b nfsacl_decode
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x125d462d o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2adba6ff o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x37977e08 o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3e0c7790 o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xba5a1404 o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xce3fac93 o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd578c3e7 o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3e4f7a57 dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x61993776 dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc52f9f74 dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd1a0dbe5 dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xeb2999a2 dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xef05acf1 dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x434492d5 ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x9a850de1 ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xd6843e0e ocfs2_plock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x56b63670 lzo1x_1_compress
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs
+EXPORT_SYMBOL_GPL net/802/garp 0x1081bf49 garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0x12b0f4ed garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0x6f811091 garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0x774b0d2e garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x8d4b7e64 garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0x9fb213f8 garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/stp 0x6906238b stp_proto_unregister
+EXPORT_SYMBOL_GPL net/802/stp 0x858dac53 stp_proto_register
+EXPORT_SYMBOL_GPL net/ax25/ax25 0x374eca9f ax25_register_pid
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x0ed9ad78 bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x067ffab4 dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0860cc34 dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1238c761 dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x137205b2 dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1be296ec dccp_insert_option_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1cf4ec00 dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x210b24e1 dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x24f95561 dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3260b93e dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3f1b242e dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4647fd5e dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4f79960e dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x579f6503 dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x71027567 dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x71561c0f dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7fa93dd0 dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x919804b8 dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb4fa09ef dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbc3a829d dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc2f0b098 dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xca134538 dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xcb2fb394 dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xcb7f43fc dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd435c028 dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd998755a dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xdbd086cb dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe5b20d38 dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xeb403572 dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xee8531a5 dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf17cc288 dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf28a73ec inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8d1f97e dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf9057f37 dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf91e372c dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x33dcf8ee dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6abeaadc dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6f87113d dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x7cbf219e dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb2cfe034 dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xc8bc01ad dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x46e54826 arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x0e67b71d ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x5a5c1709 nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x444abfad nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4cc267e6 nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x566cfe03 nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x6414966c nf_nat_proto_find_get
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x76c536d7 nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbd875ca9 nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xbf016368 nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xd030b2df nf_nat_proto_put
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x0357de80 tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x528b8d67 tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x588d91d9 tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x5e2f5af2 tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7a2fbbb9 tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x017543f0 net_ipv6_ctl_path
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x1c166e38 inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x2747e497 ipv6_opt_accepted
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x2fc692b2 inet6_destroy_sock
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x408bf633 ip6_local_out
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x591a9e00 ipv6_find_tlv
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x67d95bc3 ipv6_dup_options
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x6cb9097e inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x7d70c930 inet6_csk_search_req
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x85478a0b inet6_hash_frag
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x935e74a1 inet6_csk_xmit
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x9e4399ce inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x9f42309f ip6_dst_blackhole
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa7c6ed10 ip6_sk_dst_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa9bbb47c fl6_sock_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xd1032260 inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xfb0e0cd2 ip6_dst_lookup
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x057fa55d ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0beab002 l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1ad4681d l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1e31912d l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x247d1114 l2tp_tunnel_closeall
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x637a1950 l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x64cd5ae5 l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6ea87eed l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7151131b l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8108097f l2tp_tunnel_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x9fcff7a1 l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa9daa5f0 l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xba7bc234 l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbb0e25a1 l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc737349a l2tp_xmit_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd37996cb l2tp_udp_recv_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xebab37bd l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf8b35cb9 l2tp_session_delete
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00410ba7 ieee80211_find_sta_by_hw
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1bbea74e ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xd024e899 ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02e2915b __nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0395b4d4 nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0bb50355 __nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0c77aedb nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0c9563f5 nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12f278f5 seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1440ae02 nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x149b34be nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1d61be83 nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e1106d1 nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x200ab0a3 nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20e4fc83 nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22443341 nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26d82172 nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3bddbdaa nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4148556d nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44485036 __nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x444dc40f nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45515bfe nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x457d9a0b nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x46b57f4d __nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x46daf888 nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4a0e1993 nf_ct_unlink_expect
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4af5ddcb nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x51778c58 nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5c9c2ea9 nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5df78af6 nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5e4d8e35 nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62e7821b nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x656d1742 nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6983589c nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6a423c2e nf_conntrack_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6c7becb7 nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fff8279 nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73e8c47a nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x740e4540 nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x774bf889 nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7b3a2379 nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7cc4e1f6 nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x80dd3d88 __nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9462deef nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9ad33c9a __nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9ae5a759 nf_expect_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c3a671e nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa31e7510 nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xacb0b051 nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae8173ab nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1fcc327 nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xba9cc52a nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc2c7a4f7 __nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc6140e3d nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc78e2519 nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcb678d0a nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xce1fdba5 nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd422f536 __nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd8fc63d9 nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe2e2d768 nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe50542cb nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xed5fd93e nf_conntrack_untracked
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa3d1f8d print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfb5251c9 nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfc1f4511 nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x4c142d6b nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xf993c6a7 nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x10b85977 nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x30c24e4b set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x479d4851 set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x86d3acae get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x92fa902f nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa26cec60 nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xafbcc5dd nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe7d0827b nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe838cfd1 set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xef8ae2a9 set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x605ca696 nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x104ecab7 nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x411244ac nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x8a447b8a nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xa0eee64a nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x247c8859 nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x3c7b66a0 nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0fcb146d nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1960d277 ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1b181fea ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2273c0ef nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x69f21526 ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x75211d67 nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7b88d915 nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x89e5d1a6 nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8e3eb7aa ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc1eba562 nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc3b695f3 ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdbf30e86 nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe020b0b7 ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x9ff597df nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x212ca475 nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x3c98a649 nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x03dd281c nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x38fd8cc7 nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x57225911 nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc60f1d19 nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcbda8371 nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xec731922 nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x83f66f17 nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3e5d36c0 xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x46075bcc xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7054b2dc xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x80cac5ac xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8e4c9e4a xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9554d443 xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9713bf9f xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa72c32f9 xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xba3a549a xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcf9c6042 xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd101e5c2 xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd2478812 xt_info_locks
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe1e95106 xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xff394f2a xt_hook_unlink
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x7352c823 rxrpc_register_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xe1176927 rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x09f2750b gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x21c25a92 svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2fbc71ff gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x464105d5 gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x50ef0d7b svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x61fb7a0e gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa6a9acd0 gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xad6fe17c gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xada2f461 gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5ee4fc3 gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xea6090d1 gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x002c4c77 rpc_queue_empty
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x009278b9 xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00a3f2f0 xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03ad2356 rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04020c54 rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04b53670 svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05244d99 rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065a41a1 rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07bec1da xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0843c4f8 svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x086913cf sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x097bb4ef rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a7c997f xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bf923b5 cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c4375e0 write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ebddd2a svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f9fd9c0 rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13f8465d xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1529be4f svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1995a8d6 rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1a5c16dd xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1c6e99d5 read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ce2e5ff xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21ca76c0 xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x233b591b xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23c2cd42 rpc_exit_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2626c9ff rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2654d2c5 xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2738fe33 rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28d7b629 auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28ef9f7a rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a84d372 xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c42f008 rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ffdfbc8 rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3095a379 sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x334ca150 xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35448c65 rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38a9bbe6 xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3998d504 __rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a4d91be xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cef1e58 rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cfd5b86 svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d426cdc svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x420d14be rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x420e128f xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x427b44f4 rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x432583f5 svc_sock_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49a96e40 rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ae0e3bf xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fe7724f rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x509ac555 rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52bf306f xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52c7a294 unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56f47260 xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57049b29 rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5916f061 svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c955934 rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e22eb49 rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61680f5f rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x622a17cf xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6233126a svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6247a1f2 rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65b5b78c xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6604d0c6 rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x694b285d svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x696eb7ab svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a6a915f svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6acbba85 xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6af090d0 xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b545e3a rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c0faf7d svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f276f54 xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x710c2c09 rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x724cf558 rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7356a5df rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74f8f8a8 csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7651498d xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78996b32 svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79976a1b auth_unix_add_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b95943a xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7df37cdf cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f5bc070 xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f76d075 svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80aceac5 xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x822350da xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x827ff768 svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8353a2c0 svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86ed282a rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b94d483 sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8bd236ca xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8bea9f9b svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8d282516 rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8febc106 rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91e38da0 svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94726915 auth_unix_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94ebba3c sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x956e9222 cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x971767c8 xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x975c35d6 rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e7dbaae svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3a1f995 sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6dec430 rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7c0468d rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa7d8c4de svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa85e6114 rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac71e870 svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad255956 cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae725fee rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaea00461 rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0c04b04 svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1d1405d rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3570acd svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5dc538c svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb832b63 xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc144428 rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc013e5b0 auth_unix_forget_old
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc06e86a5 xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc10dbbd0 svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3e49655 rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4faf152 auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6635d12 xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc84ccffc rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc86a3228 svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb9bbb89 rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccc2372e rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd454091 svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0cafe90 xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd2d49ca5 svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd515f192 rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd83f84dd svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda10cf35 svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb4e74c9 svc_sock_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0129ec3 rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe38d6832 rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9fde1f4 xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb3a3415 rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedc04aa4 auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef67f6c6 rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xefab5c01 svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf21d6df9 svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf238bfa4 svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf510bc23 xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6500fd9 put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb88d27d rpc_call_null
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x1fc2d35e wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x21d5d2f6 wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x2a709c1a wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x6416363d wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x7fd2a591 wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x847f5fd5 wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x84e924b8 wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x900d8300 wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xa37b2f6c wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xad7720b0 wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xe0bee59a wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf25ba83c wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xff756acf wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0801090f cfg80211_wireless_stats
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x17e2fd3a cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x226fd081 cfg80211_wext_giwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x24f18088 cfg80211_wext_siwgenie
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2d2a2d6b cfg80211_wext_giwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x35949670 cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x38be9f21 cfg80211_wext_siwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x46f3bd04 cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4a224503 cfg80211_wext_siwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4eb3e747 cfg80211_wext_giwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x516d880c cfg80211_wext_siwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x57f87141 cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5f42fc76 cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x60bc60ec cfg80211_wext_siwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6b0bde98 cfg80211_wext_giwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6e7c335e cfg80211_wext_siwmlme
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6f9a7cdc cfg80211_wext_siwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x76d1eada cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9073b6ee cfg80211_wext_siwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x942736f7 cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x997197b9 cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9f2e6ecd cfg80211_wext_giwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa405b038 cfg80211_wext_giwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa7883443 cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbf00feb5 cfg80211_wext_siwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbf05c2fa cfg80211_wext_giwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd8f9a1ad cfg80211_wext_siwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdb9c9330 cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf21c503f cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf394deed cfg80211_wext_giwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf8d20d9a cfg80211_wext_siwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfb48aea2 cfg80211_wext_siwencodeext
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x13d1834a ipcomp_input
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x5798623e ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa0b04282 ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xeef67b3a ipcomp_output
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x0918c4ed pmf_gpio_methods
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x17a7859b aoa_codec_unregister
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x1a86fdaf aoa_snd_ctl_add
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x319d6776 aoa_fabric_unregister
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x570d45d3 aoa_snd_device_new
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x8fbd1842 aoa_fabric_unlink_codec
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xb62dc170 ftr_gpio_methods
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xbebc4c53 aoa_codec_register
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xc667bd96 aoa_fabric_register
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xfd1c8350 aoa_get_card
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x1b274998 soundbus_add_one
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x1b571aee soundbus_remove_one
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x53b12021 soundbus_dev_put
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xa386a940 soundbus_dev_get
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xfb638060 soundbus_register_driver
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xfc12d539 soundbus_unregister_driver
+EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x1e6dd046 snd_ak4113_create
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x2d54e0a9 snd_ak4113_build
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x82e6032f snd_ak4113_reinit
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa587a3ac snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xab2a7ffc snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd8d8a6b5 snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x04e5d113 snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05594494 snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x07df7718 snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x089f2209 snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c279472 snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ba48d89 snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d3e42a9 snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ecc7a2b snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f9c5410 snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2930b5b6 snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2bd2eb0f snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e9538a3 snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2f50cf68 snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33828f7b snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33ed9d48 snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3592dfcb snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35aa0412 snd_hda_eld_proc_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x369040e2 snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3bd5d286 snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3bf7c8f4 snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c674b39 snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x42d38bad snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x436cd775 snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4647250d snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x47124ba4 snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48944d3c snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d697b33 snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d729d17 snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4efd7e6e snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5062823c snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5760ea08 snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x59d6dae2 snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61ea9d47 snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x64e9548d snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x666c7c35 snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x674eaefa snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6864b07b snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x73c0c0fc snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75125e66 snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7531d075 snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7888f251 snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78b7dbc5 snd_hda_eld_proc_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d82ea1f snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x845bdca0 snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x85691e74 snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x88af46f4 snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b5181cb snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c50d736 snd_hdmi_get_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8fac4048 snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x93c00974 snd_hdmi_show_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9bb19118 snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d0d501a snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa00e4839 snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa170f22d snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa713d574 snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa75fb61b snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8aa9ee2 snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8e941c9 snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8f3b7ab query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8f666eb snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaac283bb snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xac038f57 snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb16444d3 snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc20a8bf2 snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc41925c3 snd_hdmi_get_eld_size
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc41d8ea3 snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc98e7f0d snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc9b8898b snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcba7abdf snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce893d60 snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0629183 snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd6e911da snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd7ca1e6b snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdafcb462 snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc66d5e9 snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdcc645b1 snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdd36fbd2 snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdf829e3d snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2668110 snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2fad2c1 snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4e2baf7 snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe784e46b snd_hda_parse_pin_def_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8b19610 snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8c506b7 snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed8b3522 snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf382ee0c snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf98c3e1a snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfecde4fb snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x0ed2acd5 ad1836_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0xf99c4332 soc_codec_dev_ad1836
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x3f71c6a0 ad193x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xd500d9be soc_codec_dev_ad193x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xa94e59dd ad73311_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xd65de51f soc_codec_dev_ad73311
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x194bbf62 ads117x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0xb76bbe70 soc_codec_dev_ads117x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0x8ca9afdf soc_codec_device_ak4104
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x6084d49f ak4535_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xe3b76aeb soc_codec_dev_ak4535
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x36a9dd4a ak4642_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0xbb0c4547 soc_codec_dev_ak4642
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x81d5b579 ak4671_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x9267a8dd soc_codec_dev_ak4671
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x5ca9f0c4 soc_codec_device_cs4270
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xa2d610fb cs4270_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0xb4900468 soc_codec_dev_da7210
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0xf2eb5d52 da7210_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x8b60b9c4 max9877_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xb609a6d3 pcm3008_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xcc4bbf25 soc_codec_dev_pcm3008
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0xa9867756 dit_stub_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x3cffb2f4 ssm2602_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x64b86005 soc_codec_dev_ssm2602
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x23e7b051 soc_codec_dev_tlv320aic23
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xfbbfa771 tlv320aic23_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x66a59154 aic26_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x84d57246 aic26_soc_codec_dev
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x369ce120 aic3x_get_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x736b52d2 aic3x_set_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x79d086ce aic3x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x8dcce362 soc_codec_dev_aic3x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x9502009f aic3x_set_headset_detection
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xe382dc5f aic3x_headset_detected
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xecb1a384 aic3x_button_pressed
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x41be153d dac33_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x42980014 soc_codec_dev_tlv320dac33
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x585f5df9 tpa6130a2_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xcb35e80d soc_codec_dev_twl4030
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xe0a9c8d9 twl4030_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x35789e54 twl6040_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xb4baade8 soc_codec_dev_twl6040
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0xa9cb54e3 soc_codec_dev_uda134x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x3b37b261 soc_codec_dev_uda1380
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x52e9bd0e uda1380_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x4d367bb4 wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x7f996e07 wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xfa26f37c wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0xf6740ffd wm2000_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x4e7dd352 wm8350_mic_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xa42be808 wm8350_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xdc362f63 soc_codec_dev_wm8350
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xec2c29b1 wm8350_hp_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x472ad531 soc_codec_dev_wm8400
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xfcd6ceb6 wm8400_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x0abfd9de wm8510_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x8ae3ed28 soc_codec_dev_wm8510
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0xa38800b2 soc_codec_dev_wm8523
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0xbdc3b1ed wm8523_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x8532d6a7 soc_codec_dev_wm8580
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x8d68b777 wm8580_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x39f114e2 soc_codec_dev_wm8711
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x83c60d06 wm8711_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x9737925f soc_codec_dev_wm8727
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xac2cf571 wm8727_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x95214653 wm8728_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xea7511f2 soc_codec_dev_wm8728
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x14591c2f wm8731_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x3a75c08c soc_codec_dev_wm8731
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x27e38d7f soc_codec_dev_wm8750
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xbcd5fab0 wm8750_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x0ccedebc soc_codec_dev_wm8753
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0xf240c42e wm8753_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x723dfe97 soc_codec_dev_wm8776
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xffb5ad69 wm8776_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0xc1f738a7 soc_codec_dev_wm8900
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0xfb67c725 wm8900_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x1848fb3f wm8903_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x7df3b58b wm8903_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xeada6b64 soc_codec_dev_wm8903
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x60f68533 wm8904_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xa59bfda3 soc_codec_dev_wm8904
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x0f28e336 wm8940_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xc6fe907b soc_codec_dev_wm8940
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0xba4b0e09 soc_codec_dev_wm8955
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0xf9927931 wm8955_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x98b7f21f wm8960_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0xc57a4415 soc_codec_dev_wm8960
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x53eb21ba wm8961_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xdc617554 soc_codec_dev_wm8961
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0xdda31f63 soc_codec_dev_wm8971
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0xf59c2a0e wm8971_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0xa0d4eb26 soc_codec_dev_wm8974
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0xa551bbbd wm8974_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x0c61a42a soc_codec_dev_wm8978
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0xd2937bc6 wm8978_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x073de317 soc_codec_dev_wm8988
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x24db0b2f wm8988_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x6eff82f6 wm8990_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xce260328 soc_codec_dev_wm8990
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xe50b50eb soc_codec_dev_wm8993
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xe86bf058 wm8993_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x4007854c wm8994_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xa5ce6ff1 wm8994_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xaa4ac62c soc_codec_dev_wm8994
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x0be0558f wm9081_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x96973e64 soc_codec_dev_wm9081
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x8e4e6512 soc_codec_dev_wm9090
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05bd1869 snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x087779c7 snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d4d365e snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1788ee08 snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x179c6faa snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x22149d48 snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2522618b snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x262eae56 snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x27d42028 snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29a3b366 snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2e73a125 snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x328751f3 snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x33c19ef9 snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34371bce snd_soc_get_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x349ea476 snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3eb74cc1 snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x411db052 snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x42d889a1 snd_soc_free_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x471fdfc6 snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x474b18ef snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x487e32c7 snd_soc_new_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48868712 snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49c3dd36 snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4ad719d0 snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4b7d1f3a snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x51093bc9 snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5200eeaa snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x63c1f91c snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x651a8e83 snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x691036d9 snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6bc03631 snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c739a98 snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6d62d44d snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x715cbc5e snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78010811 snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e25a37d snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f1ce2ef snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8261882e snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88fc5d38 snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x914b6bf4 snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94678551 snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94b80fe7 snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x95844dc5 snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x96f47449 snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x98646c9d snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c504c66 snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f61bf36 snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa43f5078 snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa468165a snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa939a3d4 dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa9b06076 snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaf720974 snd_soc_jack_new
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb129a12c snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb3535702 snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb47d7976 snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb68a0a37 snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6c3bb7a snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb7167f57 snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbbc21ed9 snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbc590b0b snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc70a7b8c snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc722df2 snd_soc_info_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd8d4139 snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xce56a7fe snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd06cf24d snd_soc_dapm_stream_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd16a6898 snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd1db8e16 snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd783cb53 snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb088f2a snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdd6c10f3 snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdf1cc9aa snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe8f0b3c9 snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xee84c7fe snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5467f8d snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfcccf0cd snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfed014f2 snd_soc_put_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff47411b snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x055b05d2 xv_free
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x219f85f4 xv_malloc
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xb2a28707 xv_destroy_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xc4c915c8 xv_get_total_size_bytes
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xd24f6b4f xv_create_pool
+EXPORT_SYMBOL_GPL vmlinux 0x0007d9a5 led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0x0039d2f8 raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x005d0691 blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis
+EXPORT_SYMBOL_GPL vmlinux 0x00855b2c sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init
+EXPORT_SYMBOL_GPL vmlinux 0x00e3da86 pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x01505c7a devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x019a5b4b sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x0217b1be platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x02e29a7d register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x03048d41 alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x0308054f ab8500_write
+EXPORT_SYMBOL_GPL vmlinux 0x032fbc85 raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x0371876b rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x0399d712 nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread
+EXPORT_SYMBOL_GPL vmlinux 0x0414cd7c unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x0417606a device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0x043d69a3 regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x046ea98d gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x048b898a kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x04a5f0da lookup_create
+EXPORT_SYMBOL_GPL vmlinux 0x05007d52 regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x05a55739 usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x05a89413 blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x06134192 cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x06221f21 d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x064aea46 inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x064d9215 task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x06c811a5 cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x06e5bc90 ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0x074d8b3f pcibios_finish_adding_to_bus
+EXPORT_SYMBOL_GPL vmlinux 0x07792055 fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x078719a1 inotify_init
+EXPORT_SYMBOL_GPL vmlinux 0x07983f72 power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x07f35880 rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x0845bf11 debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0x0848f8d2 ata_host_start
+EXPORT_SYMBOL_GPL vmlinux 0x086580db crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x08b9ad2c rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x08bbd581 usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x08dfcccb ide_do_start_stop
+EXPORT_SYMBOL_GPL vmlinux 0x08f9701e blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x08fa20b6 ata_cable_80wire
+EXPORT_SYMBOL_GPL vmlinux 0x090a66db usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0x09138b7d usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL vmlinux 0x09162fb2 ide_dma_start
+EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off
+EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0x098bd03c blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x09b429a9 platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x09c88bec platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x09caba1e ide_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0x09f410ce usb_match_id
+EXPORT_SYMBOL_GPL vmlinux 0x09f8b22b tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x0a130bdd blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x0a4ffc7c __fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw
+EXPORT_SYMBOL_GPL vmlinux 0x0a5ba03a __put_net
+EXPORT_SYMBOL_GPL vmlinux 0x0a8155b6 ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0x0aae947f free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0x0ae69749 ide_issue_pc
+EXPORT_SYMBOL_GPL vmlinux 0x0b07345e usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b24fc82 irq_find_host
+EXPORT_SYMBOL_GPL vmlinux 0x0b663397 device_create_vargs
+EXPORT_SYMBOL_GPL vmlinux 0x0be0b4aa put_pid
+EXPORT_SYMBOL_GPL vmlinux 0x0c0f16c2 transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c69977f register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0x0c92a8b6 init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0x0cc00e88 fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL vmlinux 0x0cd20ca7 css_id
+EXPORT_SYMBOL_GPL vmlinux 0x0cdf1775 netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0x0ce0487b irq_create_mapping
+EXPORT_SYMBOL_GPL vmlinux 0x0cf1942d debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0x0cf5646d usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x0cfecd0d pm_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x0d4376a4 seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x0d4d5f76 ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x0d5b063c atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x0d7ad5cb each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x0df6ac35 ide_cd_get_xferlen
+EXPORT_SYMBOL_GPL vmlinux 0x0e67c69b __i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0x0ee893af apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0x0ef69449 blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0x0f3440f0 tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0x0fc02191 ata_do_dev_read_id
+EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x10a35e8f devres_find
+EXPORT_SYMBOL_GPL vmlinux 0x112b75bd ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x1130addb register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x113b2709 led_classdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x11573ed8 ide_pci_dma_base
+EXPORT_SYMBOL_GPL vmlinux 0x115ddbaa ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x1164f940 ata_eh_qc_retry
+EXPORT_SYMBOL_GPL vmlinux 0x1194bd74 br_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x11ad7917 ide_unregister_region
+EXPORT_SYMBOL_GPL vmlinux 0x11dcc22b ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x11e791e1 crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x1200b8a7 user_match
+EXPORT_SYMBOL_GPL vmlinux 0x1241a69a __class_create
+EXPORT_SYMBOL_GPL vmlinux 0x124a0ba4 relay_close
+EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0x1250edd1 ide_cd_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0x12bd01f6 usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0x131b4146 tty_prepare_flip_string_flags
+EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x137cb962 usb_sg_wait
+EXPORT_SYMBOL_GPL vmlinux 0x13a212e5 led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0x13aa98e0 regulator_disable
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0x13f4acc9 device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x140db6d2 input_class
+EXPORT_SYMBOL_GPL vmlinux 0x14174702 ata_sff_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x14183180 hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0x141abf43 irq_create_of_mapping
+EXPORT_SYMBOL_GPL vmlinux 0x147d71fa inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x148dd879 sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid
+EXPORT_SYMBOL_GPL vmlinux 0x14b34a2a dm_dispatch_request
+EXPORT_SYMBOL_GPL vmlinux 0x14d0a66b __mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0x14e0ed0a blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0x14f92dd6 pm_runtime_forbid
+EXPORT_SYMBOL_GPL vmlinux 0x15085456 ata_std_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x15416ea8 vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x1572b618 vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x159a505e __clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0x159abb63 usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x15e4537b __pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x15f519f1 pmac_low_i2c_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x161d97b8 ata_dummy_port_info
+EXPORT_SYMBOL_GPL vmlinux 0x1624ae36 blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x16b236fc led_trigger_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x16ef7499 ide_read_error
+EXPORT_SYMBOL_GPL vmlinux 0x16f13f0b skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x16f76869 probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x16fa0874 power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1731fd7e seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x17b5291e skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0x17b8e3c7 ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x17e0dd95 ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0x17fcbe93 alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x182dce9d platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0x1864ca6d da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert
+EXPORT_SYMBOL_GPL vmlinux 0x187cb2b7 inet_diag_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x188da885 pci_block_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x18ddb840 platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x193b8c67 macvlan_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19c83a79 da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x19d5549d driver_find
+EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x1a4859c4 ata_sas_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x1a516fc0 securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x1a6546be ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x1a6df8b3 ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL vmlinux 0x1a7cc8a0 regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0x1a9873a2 kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0x1aaa6c87 mm_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x1ad79c82 fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0x1aeeffeb ata_dev_next
+EXPORT_SYMBOL_GPL vmlinux 0x1b3d5b00 srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x1b61935d get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1bacb489 device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x1bd0a2dd i2c_new_dummy
+EXPORT_SYMBOL_GPL vmlinux 0x1bd518fb security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0x1bf6526e trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0x1c4d4924 ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1c96e050 lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0x1c98fced crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0x1cedca43 crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x1cfb5f0a platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x1d4cfbbe usb_enable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x1d765b1d device_find_child
+EXPORT_SYMBOL_GPL vmlinux 0x1da14db4 pm_generic_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x1dbdc0d7 regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x1e17d4d5 usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL vmlinux 0x1e2f3a94 debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x1e38acfd sff_dma_ops
+EXPORT_SYMBOL_GPL vmlinux 0x1e556db2 device_register
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart
+EXPORT_SYMBOL_GPL vmlinux 0x1e91fbef inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x1eae1917 __cpufreq_driver_getavg
+EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names
+EXPORT_SYMBOL_GPL vmlinux 0x1f1a575b usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0x1f277b99 crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0x1f395853 ata_sff_hsm_move
+EXPORT_SYMBOL_GPL vmlinux 0x1f94040c ata_sas_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick
+EXPORT_SYMBOL_GPL vmlinux 0x1fd6cd28 crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x1fd9f9c3 inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x1feea774 cpufreq_register_governor
+EXPORT_SYMBOL_GPL vmlinux 0x1ff6c168 inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0x2049bab8 __destroy_context
+EXPORT_SYMBOL_GPL vmlinux 0x2095fe8b ide_dma_host_set
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20d06872 pci_find_ext_capability
+EXPORT_SYMBOL_GPL vmlinux 0x20e67f44 ata_std_bios_param
+EXPORT_SYMBOL_GPL vmlinux 0x20f85e86 crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x21bdef01 devm_kfree
+EXPORT_SYMBOL_GPL vmlinux 0x2242052b ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x22772caa pmac_i2c_setmode
+EXPORT_SYMBOL_GPL vmlinux 0x228479dc ide_dma_sff_read_status
+EXPORT_SYMBOL_GPL vmlinux 0x2285200f usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x22e48b99 rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x230a8cb6 dev_attr_sw_activity
+EXPORT_SYMBOL_GPL vmlinux 0x2339c5f9 filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0x233c9861 regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0x2342d780 tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x23b6fccc xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0x23d3df27 tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0x23e480b3 disk_map_sector_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x23ef0760 ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x23fc87d0 ide_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x24011f32 platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2406dae3 pci_address_to_pio
+EXPORT_SYMBOL_GPL vmlinux 0x241984f7 ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0x2428f838 usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x243bc52c ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0x24a5b3ff ata_sff_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x24cda041 ide_vlb_clk
+EXPORT_SYMBOL_GPL vmlinux 0x24d32006 raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x2509da3d wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x2564ca43 usb_ep0_reinit
+EXPORT_SYMBOL_GPL vmlinux 0x257ae3cd ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0x2592022a ata_scsi_simulate
+EXPORT_SYMBOL_GPL vmlinux 0x259be73c hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0x259f9a8f usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x25b08413 ata_port_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x266a1ac5 ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x26d637bc spi_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x277333f9 usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0x27a295f8 sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x27d2f6da usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range
+EXPORT_SYMBOL_GPL vmlinux 0x2856cbd2 wm8994_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x287ab654 crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x28bc9ee3 pm_generic_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x28c89160 __inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28d79792 ide_create_request_sense_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x28f96180 pmac_backlight
+EXPORT_SYMBOL_GPL vmlinux 0x2938be71 sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0x29757281 flush_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x298d8a27 inotify_find_watch
+EXPORT_SYMBOL_GPL vmlinux 0x2a0cea47 wm8350_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x2a3f6108 user_read
+EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result
+EXPORT_SYMBOL_GPL vmlinux 0x2a80b050 ata_sff_irq_on
+EXPORT_SYMBOL_GPL vmlinux 0x2aabb777 gpio_free_array
+EXPORT_SYMBOL_GPL vmlinux 0x2aae620f page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x2ab383ea bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x2ac5590a ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0x2add68fe shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x2afbe2a5 usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x2b304589 ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0x2b607170 ktime_sub_ns
+EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x2b91649f ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL vmlinux 0x2bba146e platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0x2bcc081e pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c2b213d sysdev_class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x2c2bebcd simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0x2c460492 hvc_poll
+EXPORT_SYMBOL_GPL vmlinux 0x2c6cf4a5 i2c_new_probed_device
+EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping
+EXPORT_SYMBOL_GPL vmlinux 0x2cc89c32 usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2cfdb792 led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x2ddee4bb usb_anchor_empty
+EXPORT_SYMBOL_GPL vmlinux 0x2deb79c0 __sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0x2e267a89 crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0x2e3fe105 rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e678bb1 proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x2e80d590 tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0x2eb483f6 proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0x2eb91dfe scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0x2ed3d1fa transport_configure_device
+EXPORT_SYMBOL_GPL vmlinux 0x2f2aa116 unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table
+EXPORT_SYMBOL_GPL vmlinux 0x2f5a71da dev_attr_em_message
+EXPORT_SYMBOL_GPL vmlinux 0x2f7b9baf crypto_alg_sem
+EXPORT_SYMBOL_GPL vmlinux 0x2fc7df23 crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x2fcf0f1d pm_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0x30013ee9 shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x3025eb3d wm8994_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x30301151 atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x3043cc9e usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0x3050ec18 perf_trace_buf_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x30b405da usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0x30bad191 devres_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x31be78c3 ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL vmlinux 0x31dc5493 dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0x323465cc usb_driver_set_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x32360ee9 crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x32553863 ide_read_altstatus
+EXPORT_SYMBOL_GPL vmlinux 0x32a30fe0 ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL vmlinux 0x32be381a synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x32d49841 ide_set_media_lock
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x32d70560 dev_attr_em_message_type
+EXPORT_SYMBOL_GPL vmlinux 0x32e26a12 class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x32f937aa get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0x3393524e security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x33cb59f9 wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x33d897ce __root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x33ef9d6b pci_disable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x34349735 dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x343a933f wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x345408a6 driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x34568705 ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL vmlinux 0x345bffff usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x34aeda63 dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0x34fb0aeb ide_pci_resume
+EXPORT_SYMBOL_GPL vmlinux 0x3500df30 tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0x35404b2e bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3546fd9e __pm_runtime_disable
+EXPORT_SYMBOL_GPL vmlinux 0x356579c8 pci_destroy_slot
+EXPORT_SYMBOL_GPL vmlinux 0x356a1564 scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x35ab6628 simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0x35c521d0 usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0x36ad7dbf da903x_write
+EXPORT_SYMBOL_GPL vmlinux 0x36cd6250 ide_dma_test_irq
+EXPORT_SYMBOL_GPL vmlinux 0x36cdcfdc blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL vmlinux 0x37163b96 ata_std_qc_defer
+EXPORT_SYMBOL_GPL vmlinux 0x37776fdf usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x37dd33f6 usb_hc_died
+EXPORT_SYMBOL_GPL vmlinux 0x381c68a8 queue_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x388e8dbb ide_input_data
+EXPORT_SYMBOL_GPL vmlinux 0x38926678 unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x38c24c14 regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x38e27819 vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0x38f7e5fd blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0x3905f989 uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x3925ac48 devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x3939e478 ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x396ad2e5 ata_sff_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x3983b66c css_depth
+EXPORT_SYMBOL_GPL vmlinux 0x39885bbb drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0x39b89272 dm_kill_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x39d7bb0a usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x3a1813ca hvc_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3a2eb586 tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0x3a84cebf input_ff_create
+EXPORT_SYMBOL_GPL vmlinux 0x3ab89a15 driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x3acb8c42 inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x3b84b215 usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL vmlinux 0x3bd02f79 crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3be94e2c skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0x3c048d9e add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x3c6c47a4 page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag
+EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x3d208ea8 ide_pci_check_simplex
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3d997a3f usb_get_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x3db55930 dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL vmlinux 0x3dc6035e crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x3ddf9b0d mmput
+EXPORT_SYMBOL_GPL vmlinux 0x3e297fc5 ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x3e5b6ef8 class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x3e6a7439 inotify_inode_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x3e99a6fe pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0x3eac686e spi_async
+EXPORT_SYMBOL_GPL vmlinux 0x3ec1e5fc regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x3ed1411c cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL vmlinux 0x3eda21b2 transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0x3f1e8f35 scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register
+EXPORT_SYMBOL_GPL vmlinux 0x3f3f4aa3 tty_put_char
+EXPORT_SYMBOL_GPL vmlinux 0x3f4a5098 skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0x3f6fe82c ata_base_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x3f7e7e60 kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x3f89e6af sata_std_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x3f914154 xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0x3faf9a90 single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x3fc2eafb dm_get_rq_mapinfo
+EXPORT_SYMBOL_GPL vmlinux 0x3feac3a9 of_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x3ffc4e1b ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0x401c972c ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x405f9a2f queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x4093260e fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL vmlinux 0x411445c0 class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x41389212 trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0x4164adb0 fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x41e40308 rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x42019192 scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0x425c1c0b ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0x42722478 bd_release_from_disk
+EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active
+EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done
+EXPORT_SYMBOL_GPL vmlinux 0x42df289b tc35892_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x42ff465e unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x43090c22 blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x43be678f crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL vmlinux 0x441ce16b aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x44261239 ata_eh_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0x4450b42c ide_host_free
+EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x454d37f2 ata_sff_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list
+EXPORT_SYMBOL_GPL vmlinux 0x458cc7fb sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x45a5f53b __ide_pci_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45c0c91a __rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0x46159c44 rt_mutex_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x4630c328 ata_sas_port_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x468a12a0 pmf_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x46a558ee kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x46b82d1a device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0x46c1d617 sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x46da2cd6 debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0x46df42c2 transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x46f466c7 tracepoint_iter_start
+EXPORT_SYMBOL_GPL vmlinux 0x46f9d722 blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x47843dfe crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x47a3dabb cvt_fd
+EXPORT_SYMBOL_GPL vmlinux 0x47db2089 ata_host_register
+EXPORT_SYMBOL_GPL vmlinux 0x4828742c pmf_call_one
+EXPORT_SYMBOL_GPL vmlinux 0x4835c1e2 power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL vmlinux 0x486557f9 inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x4893093d ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0x489c0da6 proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size
+EXPORT_SYMBOL_GPL vmlinux 0x48b40106 sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x4943a338 __init_new_context
+EXPORT_SYMBOL_GPL vmlinux 0x49569cc7 hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0x49740a7a ata_sff_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue
+EXPORT_SYMBOL_GPL vmlinux 0x49b4f42e usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x49c562bf sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x49c8f402 inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x4a4a4ad8 usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0x4a58ca2a ata_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x4a63c643 ata_sff_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x4a89ae13 ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x4a8ac94c rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0x4abdbb58 cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x4aca64e2 rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0x4afbdac9 tracepoint_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x4b022b73 ata_eh_freeze_port
+EXPORT_SYMBOL_GPL vmlinux 0x4b2613b5 ide_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0x4b35cabf disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0x4b987e1b xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0x4ba5886c spi_alloc_master
+EXPORT_SYMBOL_GPL vmlinux 0x4bc54bff pm_generic_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x4bcc52f3 usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0x4bfef2f3 of_irq_to_resource
+EXPORT_SYMBOL_GPL vmlinux 0x4c03a906 crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c925d03 class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0x4ca12979 xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0x4caa3211 sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x4cbc31bf bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0x4cbf8a05 crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0x4cf05789 vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0x4cf5770c crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0x4cf95dee blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x4d050660 ata_bmdma_status
+EXPORT_SYMBOL_GPL vmlinux 0x4d1cfb53 probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0x4d2c88cc class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4d82c88d nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x4da8e8e3 device_attach
+EXPORT_SYMBOL_GPL vmlinux 0x4ddad660 vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0x4e0e2ee7 usb_store_new_id
+EXPORT_SYMBOL_GPL vmlinux 0x4e479d2a ide_check_atapi_device
+EXPORT_SYMBOL_GPL vmlinux 0x4e87d022 get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x4f2dddb0 usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x4f327f75 fuse_file_poll
+EXPORT_SYMBOL_GPL vmlinux 0x4f4134d5 ide_port_scan
+EXPORT_SYMBOL_GPL vmlinux 0x4f45450b adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x4fa0003d fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal
+EXPORT_SYMBOL_GPL vmlinux 0x4fea5839 regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x4ff1b6d1 gpio_request_array
+EXPORT_SYMBOL_GPL vmlinux 0x5079be13 fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x50900195 fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0x50b61666 ata_bmdma_setup
+EXPORT_SYMBOL_GPL vmlinux 0x50c4a17e cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched
+EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x514c8382 wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x518183b0 dm_device_name
+EXPORT_SYMBOL_GPL vmlinux 0x51825b42 wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0x51af7f83 unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x51b1f37f ide_retry_pc
+EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock
+EXPORT_SYMBOL_GPL vmlinux 0x51dd64ab tasklet_hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0x51e7cffa crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x5211c707 sysdev_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x5273f78f clockevents_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x52ee6e2b sata_pmp_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x530d1303 cpu_remove_sysdev_attr
+EXPORT_SYMBOL_GPL vmlinux 0x533a7754 tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL vmlinux 0x5375e3f8 clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53a810a2 blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x53b9c56b bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x53dd6252 bsg_unregister_queue
+EXPORT_SYMBOL_GPL vmlinux 0x53dee5d4 usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0x53f2d976 swiotlb_unmap_page
+EXPORT_SYMBOL_GPL vmlinux 0x53f70402 pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0x541c86c3 crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0x541d46e9 anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0x541e3e76 attribute_container_register
+EXPORT_SYMBOL_GPL vmlinux 0x5446368a kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54acd26d sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0x54b8eb6f __srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x54bb3f39 fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0x54c10cdd debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0x5519b8c7 set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL vmlinux 0x559df984 class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x55ed4072 crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status
+EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0x5645508e adp5520_read
+EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after
+EXPORT_SYMBOL_GPL vmlinux 0x56547cf9 ata_slave_link_init
+EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen
+EXPORT_SYMBOL_GPL vmlinux 0x56638570 raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0x56b0e322 of_modalias_node
+EXPORT_SYMBOL_GPL vmlinux 0x56e727bd pci_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x57117f63 regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x57434df4 usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0x5760595b macio_find
+EXPORT_SYMBOL_GPL vmlinux 0x5788c3e5 blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x57c98ea7 sata_set_spd
+EXPORT_SYMBOL_GPL vmlinux 0x57d29ef6 cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x58119ab3 rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x5829d087 ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware
+EXPORT_SYMBOL_GPL vmlinux 0x58e2914e crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x58f02f26 pci_ioremap_bar
+EXPORT_SYMBOL_GPL vmlinux 0x59517a38 ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x59b5f19f power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0x59de61ba ata_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0x5a0ec60c devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x5a2bba00 platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x5a56833b ata_sff_dma_pause
+EXPORT_SYMBOL_GPL vmlinux 0x5a5d893d rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5a8aeda2 ide_check_ireason
+EXPORT_SYMBOL_GPL vmlinux 0x5ab22165 ide_dma_unmap_sg
+EXPORT_SYMBOL_GPL vmlinux 0x5ac14701 user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x5ac4b572 power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0x5b0d97e2 schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0x5b4251c9 anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x5b47645d ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0x5b5b7f41 of_scan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x5b60e293 pci_create_slot
+EXPORT_SYMBOL_GPL vmlinux 0x5b8a58ca unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x5bd13986 crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5c0765e2 ata_port_abort
+EXPORT_SYMBOL_GPL vmlinux 0x5c14fa47 sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x5c24af26 pmac_backlight_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x5c5dce9b __rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5cbb6761 devres_remove
+EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table
+EXPORT_SYMBOL_GPL vmlinux 0x5d393ffe ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0x5d47d9ae ide_host_remove
+EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0x5d644370 crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d947a97 pci_find_next_capability
+EXPORT_SYMBOL_GPL vmlinux 0x5da07510 device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5dfa0d04 ata_host_resume
+EXPORT_SYMBOL_GPL vmlinux 0x5e19b154 da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0x5e37f8b7 dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0x5e64d125 bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x5e9bc53f ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0x5eacc531 ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x5ee85db7 ata_sff_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x5f534396 hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x5f58a77b crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x5f5b456c perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x5f7f873f class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x5f93cc48 register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x607830bb register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off
+EXPORT_SYMBOL_GPL vmlinux 0x60a92799 pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0x60eb00e8 usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x61021d7d attribute_container_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x6164ff0c rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x61a8621d wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0x61c1b5d0 ab8500_read
+EXPORT_SYMBOL_GPL vmlinux 0x61d07855 bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0x61fbd4c0 key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0x620e4b3d mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x62838bcd sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep
+EXPORT_SYMBOL_GPL vmlinux 0x62ab18de sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0x630bd97b pmac_i2c_find_bus
+EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL vmlinux 0x6320e6e7 ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap
+EXPORT_SYMBOL_GPL vmlinux 0x6453f77c pmac_has_backlight_type
+EXPORT_SYMBOL_GPL vmlinux 0x6468f376 usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0x648dbf33 spi_sync
+EXPORT_SYMBOL_GPL vmlinux 0x649013fa ide_pci_setup_ports
+EXPORT_SYMBOL_GPL vmlinux 0x64ac04ba crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0x64c386da ide_dma_sff_timer_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x64f748c4 crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x65370388 regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq
+EXPORT_SYMBOL_GPL vmlinux 0x6574db84 usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0x65a63d3f blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65e30a38 crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x65f8da11 ata_pci_device_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x660b5d1f srcu_init_notifier_head
+EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x661b1dce blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66bb15d1 ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x66f3dfdb regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x670269be pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0x67077540 pm_request_resume
+EXPORT_SYMBOL_GPL vmlinux 0x670cdd51 tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x671502ce ata_pci_remove_one
+EXPORT_SYMBOL_GPL vmlinux 0x676c89cf driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x678e8829 ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x67958c82 ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x67a7652e sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0x67c31730 wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0x682dfd19 br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x688ef886 relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x68bc7b76 sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x68f4b145 dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0x69309be4 register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x695a721a screen_glyph
+EXPORT_SYMBOL_GPL vmlinux 0x696f8586 sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0x69971fc2 register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x69c5730d pmac_i2c_get_dev_addr
+EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config
+EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x6aee8b53 devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b7310d9 usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x6bb1db6b transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0x6be54f82 ide_pad_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x6c384084 ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x6c3b7ac5 __sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0x6c499500 usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c6f0f3f usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0x6c7b0ea4 ata_sff_data_xfer
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6cd227fe css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d6b6a88 debugfs_create_x64
+EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x6d9868b6 led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0x6da1b14d usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0x6dcd78c4 wm8350_gpio_config
+EXPORT_SYMBOL_GPL vmlinux 0x6df35d3b device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x6dffdfc2 da903x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x6f09e34f fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0x6f8b5698 cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0x6f8d6952 led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL vmlinux 0x6f8f8a56 crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr
+EXPORT_SYMBOL_GPL vmlinux 0x70716584 sata_link_resume
+EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL vmlinux 0x70c4cdb8 power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x70d337bd pmf_unregister_irq_client
+EXPORT_SYMBOL_GPL vmlinux 0x71084e89 invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0x710dc75c device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0x71423cb6 tc35892_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x71534a9c queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x7169839b ide_init_pc
+EXPORT_SYMBOL_GPL vmlinux 0x71a050de usb_driver_release_interface
+EXPORT_SYMBOL_GPL vmlinux 0x71cba353 put_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x72066181 inotify_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x721f1b55 eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0x72249fed tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x726b61f8 pci_scan_child_bus
+EXPORT_SYMBOL_GPL vmlinux 0x726e54e7 driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x72bd5ed7 fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0x72c4ed39 pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0x72c91f11 pmac_i2c_open
+EXPORT_SYMBOL_GPL vmlinux 0x732bb458 perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0x73564277 __timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x7379b87d sata_scr_write
+EXPORT_SYMBOL_GPL vmlinux 0x7396ce6c hvc_remove
+EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports
+EXPORT_SYMBOL_GPL vmlinux 0x73c1b373 debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0x73edebd1 crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x74531a49 sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read
+EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register
+EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74fc4da3 spi_unregister_master
+EXPORT_SYMBOL_GPL vmlinux 0x7503b538 ata_bmdma_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x750466a6 eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0x757ce925 ide_dma_lost_irq
+EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x75bbd9a5 __module_address
+EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x7626b273 unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x76528560 bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0x76528a16 crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0x76eadf9e default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x76f40623 ata_dev_disable
+EXPORT_SYMBOL_GPL vmlinux 0x7709f7f3 ide_set_dma_mode
+EXPORT_SYMBOL_GPL vmlinux 0x770c117d ide_get_lba_addr
+EXPORT_SYMBOL_GPL vmlinux 0x770d560e mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0x77409fea devres_add
+EXPORT_SYMBOL_GPL vmlinux 0x77544a50 rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x7769115d __pm_runtime_put
+EXPORT_SYMBOL_GPL vmlinux 0x7799f244 ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0x779e7004 isa_bridge_pcidev
+EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0x77e5d508 ring_buffer_record_enable
+EXPORT_SYMBOL_GPL vmlinux 0x77e85507 firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x780619a4 xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0x78369fa3 do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x78631660 ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x788c0a7e blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x78be01c8 irq_find_mapping
+EXPORT_SYMBOL_GPL vmlinux 0x78c1edcc debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x79388f66 root_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x7946272e ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x796a93e4 usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x799b2b1a swiotlb_map_page
+EXPORT_SYMBOL_GPL vmlinux 0x79a3af24 crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0x79a63b5a generic_fh_to_parent
+EXPORT_SYMBOL_GPL vmlinux 0x79bd3881 tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x79c41349 ata_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0x79ca8db9 tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0x79f05e0b hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0x7a09c5be regulator_put
+EXPORT_SYMBOL_GPL vmlinux 0x7a9976f8 pm_schedule_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x7a9b2747 synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr
+EXPORT_SYMBOL_GPL vmlinux 0x7aeff24a debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0x7af11871 ata_sff_check_status
+EXPORT_SYMBOL_GPL vmlinux 0x7af5a6f5 register_posix_clock
+EXPORT_SYMBOL_GPL vmlinux 0x7b065b14 skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x7b0efa4c usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set
+EXPORT_SYMBOL_GPL vmlinux 0x7b2ee2a2 ide_pci_init_two
+EXPORT_SYMBOL_GPL vmlinux 0x7b481a7c wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x7b621722 sata_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x7b8f1000 aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x7bc6218c gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0x7bea0cae disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x7c2f30d3 rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0x7c34266f class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x7c6b0c51 rtc_class_close
+EXPORT_SYMBOL_GPL vmlinux 0x7c6b8d30 usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x7c934963 platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x7cc2c4cf platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0x7d4145ca xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq
+EXPORT_SYMBOL_GPL vmlinux 0x7d884ac0 of_pci_address_to_resource
+EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values
+EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7deaada2 inotify_init_watch
+EXPORT_SYMBOL_GPL vmlinux 0x7df00ceb pci_restore_msi_state
+EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e17ba7b klist_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e2d29ec ide_pci_clk
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x7f577dbc rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x7f87568a sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0x7f8e2321 da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x7fa96a56 of_irq_map_raw
+EXPORT_SYMBOL_GPL vmlinux 0x7facada1 inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7fbe1433 tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0x7fe77a61 wm831x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x80043ade ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x80089c0c ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission
+EXPORT_SYMBOL_GPL vmlinux 0x8050286a spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x8091cb18 relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0x80abfa9b __mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0x80d4dc34 dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0x80de6d5d pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc
+EXPORT_SYMBOL_GPL vmlinux 0x8107bb59 usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0x8110afdb sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x81880e88 module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x818af8f3 pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x818da0cf ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0x81916c34 crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x81ca7b0e spi_register_master
+EXPORT_SYMBOL_GPL vmlinux 0x81e6ec60 pmf_call_function
+EXPORT_SYMBOL_GPL vmlinux 0x8224cb35 fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x825f5ffd aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x826c40c7 tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0x828e1954 add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x82c6089e platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0x82c6e33d pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0x82ce6505 pmac_i2c_match_adapter
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x82d800e2 bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x82ffff43 skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x83289b27 pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL vmlinux 0x832c48e4 driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x834e8f4c pci_dev_run_wake
+EXPORT_SYMBOL_GPL vmlinux 0x83516fd2 udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x837aeda8 unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x838704e4 i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x8397e1d7 rtnl_kill_links
+EXPORT_SYMBOL_GPL vmlinux 0x83abc764 ata_host_detach
+EXPORT_SYMBOL_GPL vmlinux 0x83d6db35 pci_test_config_bits
+EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x84e19143 blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0x84fc109e ata_sff_postreset
+EXPORT_SYMBOL_GPL vmlinux 0x850738fc wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x85138a85 rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0x851b4252 class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x851d31d5 skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x85437514 driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x8557b5fc tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0x8571c40e get_device
+EXPORT_SYMBOL_GPL vmlinux 0x8571e913 usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x85763214 sysfs_remove_files
+EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh
+EXPORT_SYMBOL_GPL vmlinux 0x85e50dda ata_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x86258525 device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x867bec94 ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x86b2f959 regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x86d58ac0 fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x86f9ee56 disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x87066fb9 ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0x870c5fe2 sata_async_notification
+EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error
+EXPORT_SYMBOL_GPL vmlinux 0x874849eb elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x876ae14d fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0x876d75f3 __blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x87988fda spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0x87ae7617 pmac_i2c_get_flags
+EXPORT_SYMBOL_GPL vmlinux 0x87d18662 sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x881173bc spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x881fe348 class_dev_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x8820e083 simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0x88614b01 ata_link_abort
+EXPORT_SYMBOL_GPL vmlinux 0x88748fc9 ring_buffer_read_finish
+EXPORT_SYMBOL_GPL vmlinux 0x88999068 debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x88b644ce task_current_syscall
+EXPORT_SYMBOL_GPL vmlinux 0x88c0218f ata_do_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x88c61692 tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x893ec43c transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x894a41fc device_rename
+EXPORT_SYMBOL_GPL vmlinux 0x89797b69 ata_host_activate
+EXPORT_SYMBOL_GPL vmlinux 0x8988936e vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x89de7a00 xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0x89e9c47b led_classdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8a02f9a1 kick_process
+EXPORT_SYMBOL_GPL vmlinux 0x8a16b797 register_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x8a20fa12 do_rw_taskfile
+EXPORT_SYMBOL_GPL vmlinux 0x8ad8a816 usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x8b212f98 user_describe
+EXPORT_SYMBOL_GPL vmlinux 0x8b6c51cf xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key
+EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis
+EXPORT_SYMBOL_GPL vmlinux 0x8b96034b __srcu_read_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x8bbcbe64 kill_pid_info_as_uid
+EXPORT_SYMBOL_GPL vmlinux 0x8bbeec5f __blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x8bc13c2e tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x8bce1a88 blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x8c0eb802 ide_init_sg_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x8c1c602e blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0x8d0d5500 device_del
+EXPORT_SYMBOL_GPL vmlinux 0x8d104c44 usb_poison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x8d1a481f eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x8d6a7d3b crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x8da17b42 scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0x8e16b150 do_add_mount
+EXPORT_SYMBOL_GPL vmlinux 0x8e3c3ae5 pm_runtime_enable
+EXPORT_SYMBOL_GPL vmlinux 0x8e4da894 crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0x8e76f96c find_module
+EXPORT_SYMBOL_GPL vmlinux 0x8e89f71a bus_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x8ea08798 wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x8eb880da inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0x8ee69aba ata_sas_slave_configure
+EXPORT_SYMBOL_GPL vmlinux 0x8ee9738e pmac_i2c_get_bus_node
+EXPORT_SYMBOL_GPL vmlinux 0x8ef7c351 check_media_bay
+EXPORT_SYMBOL_GPL vmlinux 0x8ef8cb97 da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0x8f15326a part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0x8f2c7d22 debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8f731795 find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8fdebad0 __rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x9023c4d0 cpu_add_sysdev_attr
+EXPORT_SYMBOL_GPL vmlinux 0x903789cf rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x90395be1 scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x903ecdf0 bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0x9061bb94 usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL vmlinux 0x907755db destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x90845fe1 spi_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x912446be pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0x913c908b sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x91543ab5 __pm_runtime_set_status
+EXPORT_SYMBOL_GPL vmlinux 0x91544a22 ide_no_data_taskfile
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x915cad29 inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0x9163ee73 init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x916aca45 crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0x91e5c696 ide_map_sg
+EXPORT_SYMBOL_GPL vmlinux 0x91e6483b fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x91e70926 dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x933740ca cancel_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x934af511 simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0x937a8ee0 ide_register_region
+EXPORT_SYMBOL_GPL vmlinux 0x938d26c3 irq_of_parse_and_map
+EXPORT_SYMBOL_GPL vmlinux 0x93a22fb4 ata_sas_port_init
+EXPORT_SYMBOL_GPL vmlinux 0x93a2cb47 reserve_pmc_hardware
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x93ddbc66 ide_error
+EXPORT_SYMBOL_GPL vmlinux 0x93e34e52 fuse_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0x94282a64 tc35892_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x94390675 usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0x943d2e31 sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x94a9c698 fuse_direct_io
+EXPORT_SYMBOL_GPL vmlinux 0x94b0a52b n_tty_inherit_ops
+EXPORT_SYMBOL_GPL vmlinux 0x94c98e99 skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0x9518002c led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x95513592 usb_ifnum_to_if
+EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x9578b558 relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0x9596e36a cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL vmlinux 0x95cb611b ata_pci_device_resume
+EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x961c0907 ata_bmdma_start
+EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x9633a5e3 ide_end_rq
+EXPORT_SYMBOL_GPL vmlinux 0x96544ccf tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x96a0a4fb pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x96deaba6 anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x96e98db1 inotify_inode_is_dead
+EXPORT_SYMBOL_GPL vmlinux 0x9748a808 __lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0x975b3430 pmf_register_irq_client
+EXPORT_SYMBOL_GPL vmlinux 0x975bcac3 fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0x976955b9 page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x978f24b1 __wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0x97ba03cc inotify_dentry_parent_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x98261a08 scsi_target_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick
+EXPORT_SYMBOL_GPL vmlinux 0x9838d2fc ide_port_unregister_devices
+EXPORT_SYMBOL_GPL vmlinux 0x98d66295 ide_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0x98f28239 anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0x99002d09 ide_setting_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x99074e53 bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0x9919b2a2 ide_init_disk
+EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x993fc1f1 dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0x99426653 cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on
+EXPORT_SYMBOL_GPL vmlinux 0x9967a65e ide_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x99cfa3bb sata_sff_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a1a47d5 usb_autopm_put_interface
+EXPORT_SYMBOL_GPL vmlinux 0x9a94d52d ide_read_status
+EXPORT_SYMBOL_GPL vmlinux 0x9aaccb78 pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x9ab5102c mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0x9af9c8f5 set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0x9b01e610 blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0x9b059550 pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0x9b23b4db sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0x9b501658 class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9b58aa5c regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0x9b7a0300 ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9c167908 usb_disable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x9c529909 crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0x9c60c314 __inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9cf511d5 perf_arch_fetch_caller_regs
+EXPORT_SYMBOL_GPL vmlinux 0x9cf92fbf cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0x9d00d520 sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x9d25ec7b platform_get_resource_byname
+EXPORT_SYMBOL_GPL vmlinux 0x9d92835d ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x9dcd6ddc wm8350_device_exit
+EXPORT_SYMBOL_GPL vmlinux 0x9e0adf05 get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0x9e277abe ide_build_dmatable
+EXPORT_SYMBOL_GPL vmlinux 0x9e555760 platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0x9e85c07f __ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x9e9ba6e9 ab8500_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x9eaf677d __crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x9f3c3fa4 add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain
+EXPORT_SYMBOL_GPL vmlinux 0x9f4ce240 rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x9f50a129 regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0x9f582301 class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x9f79bdb9 ide_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0x9f8eeb9b __ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x9f9b793f gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xa02d6315 __cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0xa07bfc46 device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0xa080dc60 __module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0xa093396d fb_ddc_read
+EXPORT_SYMBOL_GPL vmlinux 0xa0c3d0b1 __ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0xa0f56f08 ide_write_devctl
+EXPORT_SYMBOL_GPL vmlinux 0xa10edc21 user_update
+EXPORT_SYMBOL_GPL vmlinux 0xa12f3b3e ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xa15ede15 ata_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa182f1bd class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa1be735b crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0xa1d61c62 fuse_request_send
+EXPORT_SYMBOL_GPL vmlinux 0xa1f9e9a2 device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL vmlinux 0xa27b0ac4 tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0xa2cf5f0e sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xa2fa5867 usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0xa2fe64d1 ata_eh_thaw_port
+EXPORT_SYMBOL_GPL vmlinux 0xa3259447 tc35892_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xa33aa47c fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xa357d56e ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xa36a6ab8 scsi_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0xa39d9220 unregister_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range
+EXPORT_SYMBOL_GPL vmlinux 0xa3c3a6ba scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0xa3e71c3c ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL vmlinux 0xa3ed1938 sata_scr_write_flush
+EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa41db487 scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0xa42194c5 sysdev_class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xa43fdd58 i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0xa441484d __ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa4604d04 debugfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0xa484a793 ide_host_register
+EXPORT_SYMBOL_GPL vmlinux 0xa493df4c inotify_add_watch
+EXPORT_SYMBOL_GPL vmlinux 0xa4cf839e usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0xa5370d25 sata_pmp_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes
+EXPORT_SYMBOL_GPL vmlinux 0xa5d1cba4 debugfs_create_bool
+EXPORT_SYMBOL_GPL vmlinux 0xa5d24876 crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0xa5e82dd3 ide_pci_set_master
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa5f5c9ba class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xa5f9eede inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa6b060ad usb_string
+EXPORT_SYMBOL_GPL vmlinux 0xa6d7e492 fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0xa70be901 usb_set_device_state
+EXPORT_SYMBOL_GPL vmlinux 0xa7957c86 sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0xa7bf245d crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xa7c29bed led_classdev_register
+EXPORT_SYMBOL_GPL vmlinux 0xa7e6494d adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0xa84d6522 register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll
+EXPORT_SYMBOL_GPL vmlinux 0xa87dfabe __rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0xa88ecd97 blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0xa8b0a806 xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0xa8c32ca7 ide_queue_pc_tail
+EXPORT_SYMBOL_GPL vmlinux 0xa8d445d1 regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0xa8eceb65 sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xa8f25c43 blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0xa8f2f6c3 usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa907f072 shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xa9199a33 tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0xa929a190 eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0xa931e348 ata_noop_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0xa98c7231 scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9e5cda3 ata_sff_wait_ready
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0xaa426f00 inotify_remove_watch_locked
+EXPORT_SYMBOL_GPL vmlinux 0xaa6a92fb regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock
+EXPORT_SYMBOL_GPL vmlinux 0xaac93e56 ata_std_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xaada79d7 crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0xab0f7399 hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL vmlinux 0xab402c33 rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0xab4109b2 inet_diag_register
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xabb3f543 usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0xabd46e92 cpufreq_frequency_table_cpuinfo
+EXPORT_SYMBOL_GPL vmlinux 0xac752b82 usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0xac82fde2 crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xac9c722d ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL vmlinux 0xacb6d25e put_driver
+EXPORT_SYMBOL_GPL vmlinux 0xacd98115 shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xad1d3e68 tty_mode_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad618c8c tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0xad64e597 xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0xadaa26f2 perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0xade3cf38 sata_scr_read
+EXPORT_SYMBOL_GPL vmlinux 0xadfb4238 ide_device_get
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae21f18d __inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0xae2a720a input_ff_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xaeb471ad cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0xaf335c8f get_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xaf419351 skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0xaf7488b0 led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0xaf907962 xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0xaf929da1 zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0xaff63300 crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xb055a094 pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0xb056b101 ata_sff_pause
+EXPORT_SYMBOL_GPL vmlinux 0xb0937e3f inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xb0ab9f8c flush_work
+EXPORT_SYMBOL_GPL vmlinux 0xb0b16ab2 ide_undecoded_slave
+EXPORT_SYMBOL_GPL vmlinux 0xb0e03341 inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xb11e5bba cpu_add_sysdev_attr_group
+EXPORT_SYMBOL_GPL vmlinux 0xb12b4c1a of_address_to_resource
+EXPORT_SYMBOL_GPL vmlinux 0xb13b8fad usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0xb14b285f shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0xb14c279c crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xb1a573b0 ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb1c02e86 register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xb1fac6e0 blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0xb1fcdd04 tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0xb1fd5149 eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0xb209fa6c srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xb23ede8e locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0xb2498d1e cvt_df
+EXPORT_SYMBOL_GPL vmlinux 0xb28c892b save_stack_trace_tsk
+EXPORT_SYMBOL_GPL vmlinux 0xb2912514 regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0xb332a9f9 crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0xb341fb0d find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xb34baea1 kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xb374ddfe bus_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xb393c77c inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0xb3a5cfc5 ring_buffer_resize
+EXPORT_SYMBOL_GPL vmlinux 0xb3ae5af7 relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0xb3ebf79e spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0xb3f82a15 aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0xb418ee45 hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0xb43c42f3 usb_bus_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0xb44577bc usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL vmlinux 0xb44eaaaa da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0xb4790ef7 platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state
+EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL vmlinux 0xb54df1ae perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0xb55e9190 pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0xb5638934 pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xb58a4627 crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xb58c0425 ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xb5a10d67 ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0xb5a84bae usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xb5a89451 transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb61d081a get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0xb63fb104 queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec
+EXPORT_SYMBOL_GPL vmlinux 0xb6522794 skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0xb6a0b64c ata_bmdma_stop
+EXPORT_SYMBOL_GPL vmlinux 0xb6a47cc6 crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string
+EXPORT_SYMBOL_GPL vmlinux 0xb6bf4b6a __set_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0xb6c301eb handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0xb6c565c4 ata_std_postreset
+EXPORT_SYMBOL_GPL vmlinux 0xb6c91417 wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xb6c963c6 usb_create_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xb6d4422f eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0xb6e09e51 bd_claim_by_disk
+EXPORT_SYMBOL_GPL vmlinux 0xb6fb02bf unlock_media_bay
+EXPORT_SYMBOL_GPL vmlinux 0xb73f1a61 ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb7fe6b7a unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0xb80c9fc0 __pci_complete_power_transition
+EXPORT_SYMBOL_GPL vmlinux 0xb811dd8c bus_register
+EXPORT_SYMBOL_GPL vmlinux 0xb83c657d input_ff_erase
+EXPORT_SYMBOL_GPL vmlinux 0xb879113b crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xb93aee1f ata_sas_port_stop
+EXPORT_SYMBOL_GPL vmlinux 0xb9bd877a shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xb9f03f49 crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0xb9f186bc kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0xb9f86a0c ide_device_put
+EXPORT_SYMBOL_GPL vmlinux 0xb9fa24e6 ide_allocate_dma_engine
+EXPORT_SYMBOL_GPL vmlinux 0xba02e1da rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xba0ac23a usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0xba2b3fdf usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0xba5dcd0c crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0xba685160 ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0xbab7eae6 register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0xbac3a0b6 usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL vmlinux 0xbacf6f29 sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0xbad26090 __atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks
+EXPORT_SYMBOL_GPL vmlinux 0xbb1c6c21 regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0xbb2a33e3 rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0xbb660303 __get_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xbb7a3460 device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbb97e0de usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0xbbc6fa02 spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0xbca80718 ide_pio_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xbcf2bf56 fuse_do_open
+EXPORT_SYMBOL_GPL vmlinux 0xbd0f9eed led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0xbd5602f9 pmf_put_function
+EXPORT_SYMBOL_GPL vmlinux 0xbd6c9afa ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0xbda40ada pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime
+EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xbe2a1203 disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xbe4e7276 pmf_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xbebc8ce8 crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0xbec15e29 wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xbec18b6e pmf_do_irq
+EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0xbf253ee5 xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0xbf4ab275 init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xbf86dbe8 pci_bus_resource_n
+EXPORT_SYMBOL_GPL vmlinux 0xbffe1e51 ide_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xc00527c4 inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0xc005d86e ata_sas_port_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xc0831ce2 __blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xc0be44d6 driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time
+EXPORT_SYMBOL_GPL vmlinux 0xc0e5f3e7 inotify_rm_watch
+EXPORT_SYMBOL_GPL vmlinux 0xc1036cb6 da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0xc109aa2a hwmon_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc1336153 elv_register
+EXPORT_SYMBOL_GPL vmlinux 0xc14d5ae1 platform_device_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc17fc76d adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xc1b3eee5 debugfs_create_u32
+EXPORT_SYMBOL_GPL vmlinux 0xc1e81958 srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0xc20386a9 devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc23333af power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0xc2602847 dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0xc2cf02ff crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0xc2db5b6f pm_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0xc2f4a96c inotify_rm_wd
+EXPORT_SYMBOL_GPL vmlinux 0xc33f8abe securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc3874078 leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc3998855 __trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0xc39e229d ide_release_dma_engine
+EXPORT_SYMBOL_GPL vmlinux 0xc3ee406f ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0xc3f53042 kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0xc3f8c950 fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0xc40269f5 ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xc410a966 find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long
+EXPORT_SYMBOL_GPL vmlinux 0xc44a5580 pmf_get_function
+EXPORT_SYMBOL_GPL vmlinux 0xc44b9575 inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0xc46d877e schedule_hrtimeout
+EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string
+EXPORT_SYMBOL_GPL vmlinux 0xc4afed23 kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xc5681dc8 fib_rules_cleanup_ops
+EXPORT_SYMBOL_GPL vmlinux 0xc56df4a2 sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0xc577e1cd trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0xc58716a9 rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0xc5a79fab unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0xc5b7990e sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0xc5ba819f pmac_i2c_get_controller
+EXPORT_SYMBOL_GPL vmlinux 0xc5bc4692 ide_pio_cycle_time
+EXPORT_SYMBOL_GPL vmlinux 0xc5c938ea ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0xc6010274 ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL vmlinux 0xc6034b54 usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0xc606cd3c boot_cpuid
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc6114794 sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xc687dd49 ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0xc692a1ae device_move
+EXPORT_SYMBOL_GPL vmlinux 0xc6cca58a ata_sff_exec_command
+EXPORT_SYMBOL_GPL vmlinux 0xc73cc952 ata_cable_unknown
+EXPORT_SYMBOL_GPL vmlinux 0xc743388b bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0xc78a1cea ata_link_online
+EXPORT_SYMBOL_GPL vmlinux 0xc7a6ad07 ata_link_next
+EXPORT_SYMBOL_GPL vmlinux 0xc80ce80e attribute_container_find_class_device
+EXPORT_SYMBOL_GPL vmlinux 0xc843de3e security_inode_setattr
+EXPORT_SYMBOL_GPL vmlinux 0xc8c40fbe ide_dma_setup
+EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0xc8d35b31 __scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0xc8d38c8c ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0xc8d80440 rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc8eb5ee0 ide_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0xc8fab2d3 console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource
+EXPORT_SYMBOL_GPL vmlinux 0xc933b85e fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0xc94297a2 devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist
+EXPORT_SYMBOL_GPL vmlinux 0xc9765b37 usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0xc97ff83f crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0xc987ee25 nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xca0e8585 __fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0xca32a2aa ide_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xca4477a1 debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0xca5465c5 scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xcabccb66 tracepoint_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xcb2d3671 inode_add_to_lists
+EXPORT_SYMBOL_GPL vmlinux 0xcb2f3ee6 platform_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xcb510dee hrtimer_start
+EXPORT_SYMBOL_GPL vmlinux 0xcb5bd78c regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0xcb61ce56 wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0xcb8dacc2 sysfs_notify_dirent
+EXPORT_SYMBOL_GPL vmlinux 0xcbc2c8dd atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xcbc9a315 usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0xcbdc4185 ata_sff_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc2cd3cf wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xcc687a11 ide_capacity_proc_fops
+EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL vmlinux 0xcd28ce98 rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xcd42248a adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcd4c31b6 usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0xcd56270a pmf_find_function
+EXPORT_SYMBOL_GPL vmlinux 0xcd986d43 ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0xcdb01877 ktime_add_ns
+EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xcdfb37be crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0xce3d01ce put_device
+EXPORT_SYMBOL_GPL vmlinux 0xce6104f0 ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL vmlinux 0xce65f590 setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0xce994d89 pmac_low_i2c_lock
+EXPORT_SYMBOL_GPL vmlinux 0xcecabbe8 eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0xced9df6c __hvc_resize
+EXPORT_SYMBOL_GPL vmlinux 0xcf207f29 usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0xcf286d6b pmac_i2c_adapter_to_bus
+EXPORT_SYMBOL_GPL vmlinux 0xcf96a396 inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcfdced3a ide_exec_command
+EXPORT_SYMBOL_GPL vmlinux 0xd00652f3 timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0xd030372d input_ff_event
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL vmlinux 0xd045a289 use_mm
+EXPORT_SYMBOL_GPL vmlinux 0xd05b1008 sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0xd0af3684 __create_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd0c5dd8a dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0xd0d0fca6 sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0xd0fa7cd9 ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd1490253 bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0xd15113e9 smp_call_function_any
+EXPORT_SYMBOL_GPL vmlinux 0xd156fe68 fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd18b1312 raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0xd19d00e0 ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xd2255858 dev_attr_unload_heads
+EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd22d67ce skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xd2af09ef blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xd2b58553 regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0xd2b7987c spi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xd30e3b8e adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0xd33fdf08 usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xd3829e0b unregister_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0xd3937270 sata_link_debounce
+EXPORT_SYMBOL_GPL vmlinux 0xd3946ad4 cpufreq_cpu_get
+EXPORT_SYMBOL_GPL vmlinux 0xd3ca1b91 crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xd3d94b7d of_irq_map_one
+EXPORT_SYMBOL_GPL vmlinux 0xd3e377e7 sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0xd405b725 ata_sff_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0xd44dff77 ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xd4581f24 sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0xd45f3f6b pm_generic_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd4708729 pci_bus_max_busnr
+EXPORT_SYMBOL_GPL vmlinux 0xd483295a usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xd48a8a16 regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0xd4c4304d ata_dummy_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0xd4d45e39 ide_do_test_unit_ready
+EXPORT_SYMBOL_GPL vmlinux 0xd501b0f1 usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0xd51fb890 dm_put
+EXPORT_SYMBOL_GPL vmlinux 0xd51fccb1 shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xd527b167 usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0xd555da3b ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL vmlinux 0xd5779a9e usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0xd5c26dcb platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0xd5ce3414 uhci_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0xd6160b6a ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL vmlinux 0xd617ac53 ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL vmlinux 0xd61de790 scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0xd6626b22 blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0xd67449b5 remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0xd6d77e8e vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0xd73ba541 show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd795401f inotify_find_update_watch
+EXPORT_SYMBOL_GPL vmlinux 0xd7d5d5de disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0xd88dc4a8 crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0xd8c8b5ae pmac_i2c_get_adapter
+EXPORT_SYMBOL_GPL vmlinux 0xd8d7c1e2 usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0xd8f1a224 wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xd928d669 file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0xd97e6adb device_create
+EXPORT_SYMBOL_GPL vmlinux 0xd9c04363 generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0xd9c9251c vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL vmlinux 0xda2b24bd __inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0xda5709c6 pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xda62328b usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0xda647434 usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xda6ba414 ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL vmlinux 0xda808e37 sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0xdab21282 led_classdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xdab82643 ata_port_freeze
+EXPORT_SYMBOL_GPL vmlinux 0xdac79b3d __css_put
+EXPORT_SYMBOL_GPL vmlinux 0xdad9ea65 dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option
+EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdb5a3dad device_schedule_callback_owner
+EXPORT_SYMBOL_GPL vmlinux 0xdb678091 devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0xdbac7173 fsnotify
+EXPORT_SYMBOL_GPL vmlinux 0xdbb632e4 fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0xdbef6267 cpu_remove_sysdev_attr_group
+EXPORT_SYMBOL_GPL vmlinux 0xdc1d9298 of_irq_map_pci
+EXPORT_SYMBOL_GPL vmlinux 0xdc461430 irq_set_affinity_hint
+EXPORT_SYMBOL_GPL vmlinux 0xdc91b673 i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL vmlinux 0xdcc76dbd inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0xdd031cc9 relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0xdd06b804 dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0xdd3360d2 generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0xde0a3c7d device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0xde0c8cc7 __srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain
+EXPORT_SYMBOL_GPL vmlinux 0xde8a4681 crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0xdea3a1d5 __pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xded75f8f led_trigger_show
+EXPORT_SYMBOL_GPL vmlinux 0xdf27877b register_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0xdf28de24 blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xdf6eda7c sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xdf8cb8fc tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0xdfa79229 skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0xdfab117d dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0xdfbb7697 hvc_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xdfd7a4d0 get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0xdfdda090 rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0xdfde3540 sysdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name
+EXPORT_SYMBOL_GPL vmlinux 0xe021c342 lock_media_bay
+EXPORT_SYMBOL_GPL vmlinux 0xe04ce315 pm_runtime_barrier
+EXPORT_SYMBOL_GPL vmlinux 0xe075af1b tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0xe07ca631 cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0xe0a3ff6a __blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xe0ef1a46 get_driver
+EXPORT_SYMBOL_GPL vmlinux 0xe105d518 regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xe109e512 attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0xe16591ab stop_machine
+EXPORT_SYMBOL_GPL vmlinux 0xe167432e rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0xe16e3511 __class_register
+EXPORT_SYMBOL_GPL vmlinux 0xe185a0e2 noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0xe1c6ca28 sata_link_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xe1daf7ec driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xe26bd8e7 crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xe2848376 pci_enable_rom
+EXPORT_SYMBOL_GPL vmlinux 0xe28daae8 tracepoint_iter_stop
+EXPORT_SYMBOL_GPL vmlinux 0xe2ccbdc1 crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xe34019c7 generic_subsys_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0xe345822d sysfs_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xe350b4f3 ata_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xe395566a vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0xe39be6cb dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0xe4355cab ata_host_init
+EXPORT_SYMBOL_GPL vmlinux 0xe49754e4 pm_request_idle
+EXPORT_SYMBOL_GPL vmlinux 0xe49bfd96 user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register
+EXPORT_SYMBOL_GPL vmlinux 0xe52af111 kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0xe585bfd8 ata_host_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xe5c805c1 wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xe5cb9d89 scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0xe62e5cd1 blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xe63469b4 pmac_i2c_close
+EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition
+EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe6778754 fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0xe67ddef6 rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe6c8bb77 hwmon_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xe6db2e2f ide_read_bcount_and_ireason
+EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe7024ee4 cpufreq_frequency_table_target
+EXPORT_SYMBOL_GPL vmlinux 0xe77bf204 tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0xe7a17b03 device_add
+EXPORT_SYMBOL_GPL vmlinux 0xe7a53e80 wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr
+EXPORT_SYMBOL_GPL vmlinux 0xe800df50 find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe8779c59 ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0xe8910960 pm_generic_restore
+EXPORT_SYMBOL_GPL vmlinux 0xe919e715 tc35892_block_write
+EXPORT_SYMBOL_GPL vmlinux 0xe91f92c8 ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe9f1bef2 fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0xea02a8bb debugfs_create_u64
+EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xea7716f2 crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0xea9c6cbd crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xeaaa08e0 regulator_get_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xeac052e6 ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeb075071 eventfd_ctx_put
+EXPORT_SYMBOL_GPL vmlinux 0xeb1c9b39 ide_set_pio
+EXPORT_SYMBOL_GPL vmlinux 0xeb8ae736 klist_init
+EXPORT_SYMBOL_GPL vmlinux 0xebafa825 sata_scr_valid
+EXPORT_SYMBOL_GPL vmlinux 0xebdfb4cf ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xebe0b60b map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xebe73215 platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del
+EXPORT_SYMBOL_GPL vmlinux 0xec3778c0 crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0xec3abff1 free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xec5e3cc9 ide_setup_pci_noise
+EXPORT_SYMBOL_GPL vmlinux 0xec895b4e rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0xec98d34c scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0xecea75d0 enable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xedc2994d ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0xeec6609c ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0xeecef2f6 ide_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0xef133923 platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0xef3ade28 bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xef804a76 tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0xef9d7a02 pmf_do_functions
+EXPORT_SYMBOL_GPL vmlinux 0xefc2939c pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xefe21106 snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0xf00dee5e platform_device_register_data
+EXPORT_SYMBOL_GPL vmlinux 0xf03c22ed ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0xf105d00d ide_in_drive_list
+EXPORT_SYMBOL_GPL vmlinux 0xf10acaca cpufreq_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xf12f1944 srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf13640b1 usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf1a9a65a init_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xf1b9b784 inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xf284275e single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0xf2ad683d tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf366e61b pmac_i2c_get_type
+EXPORT_SYMBOL_GPL vmlinux 0xf3885aee tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0xf39d2034 ref_module
+EXPORT_SYMBOL_GPL vmlinux 0xf3a2c3ac ide_intr
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf405aa12 class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0xf43d5e6c mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0xf4932a69 crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0xf5451d97 ata_port_pbar_desc
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf56e2e04 inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xf578b584 __audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf5b2730f cpufreq_cpu_put
+EXPORT_SYMBOL_GPL vmlinux 0xf5baa25b ata_cable_ignore
+EXPORT_SYMBOL_GPL vmlinux 0xf6857f52 generic_detach_inode
+EXPORT_SYMBOL_GPL vmlinux 0xf6a66a5e input_ff_upload
+EXPORT_SYMBOL_GPL vmlinux 0xf6dd7de0 pm_runtime_allow
+EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xf6fe9145 sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0xf7678b28 usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xf7963d35 crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0xf86a2aad __inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit
+EXPORT_SYMBOL_GPL vmlinux 0xf8f638de ata_sff_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0xf900ac00 ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xf906e3ef ide_dma_end
+EXPORT_SYMBOL_GPL vmlinux 0xf93622e0 pmac_i2c_get_channel
+EXPORT_SYMBOL_GPL vmlinux 0xf9395719 ide_pci_init_one
+EXPORT_SYMBOL_GPL vmlinux 0xf93a7ca1 pm_generic_freeze
+EXPORT_SYMBOL_GPL vmlinux 0xf949292d pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0xf958926d inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register
+EXPORT_SYMBOL_GPL vmlinux 0xfa11d376 scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0xfa7cb952 ide_queue_sense_rq
+EXPORT_SYMBOL_GPL vmlinux 0xfa8beafa relay_open
+EXPORT_SYMBOL_GPL vmlinux 0xfa9d9c29 __pm_runtime_get
+EXPORT_SYMBOL_GPL vmlinux 0xfa9dd504 timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0xfac8f69b regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0xfad2f3b8 pcie_port_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xfb06ce56 ring_buffer_overruns
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb47e12f inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0xfb71731b debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0xfb7306c7 crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xfb861de3 raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xfba2f35d ata_port_desc
+EXPORT_SYMBOL_GPL vmlinux 0xfba7ac57 relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0xfbafd1ec wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xfbd7144e usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0xfbeae892 ide_prep_sense
+EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfc2e13ea trace_seq_vprintf
+EXPORT_SYMBOL_GPL vmlinux 0xfc6d0c4b pmac_i2c_xfer
+EXPORT_SYMBOL_GPL vmlinux 0xfc714867 set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0xfc921403 ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0xfcdbcde4 cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0xfcf93cbb regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0xfd0d9274 rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0xfd2731be spi_write_then_read
+EXPORT_SYMBOL_GPL vmlinux 0xfd3b5e10 i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0xfd4b64be invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0xfd772f78 ide_host_add
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfde752c9 posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0xfe8119a9 crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfec3258c usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0xfec70995 sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xfec9db2b regulator_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xfefcd9a0 ide_output_data
+EXPORT_SYMBOL_GPL vmlinux 0xff257e35 ide_pci_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xff417092 ata_sff_softreset
+EXPORT_SYMBOL_GPL vmlinux 0xff56a0f6 ata_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffe35f61 securityfs_create_file
diff --git a/debian.master/abi/2.6.35-2.3/powerpc/powerpc-smp.modules b/debian.master/abi/2.6.35-2.3/powerpc/powerpc-smp.modules
new file mode 100644
index 00000000000..c70400b0fb4
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/powerpc/powerpc-smp.modules
@@ -0,0 +1,2441 @@
+3c359
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+6pack
+8021q
+8139cp
+8139too
+8250
+8250_pci
+8390
+88pm860x_bl
+88pm860x_onkey
+88pm860x-ts
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a100u2w
+a3d
+aacraid
+ab3100
+ab3100-otp
+abyss
+ac97_bus
+acecad
+acenic
+act200l-sir
+act_gact
+act_ipt
+actisys-sir
+act_mirred
+act_nat
+act_pedit
+act_police
+act_simple
+act_skbedit
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7414
+ad7418
+ad7877
+ad7879
+adcxx
+adfs
+adi
+adis16255
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm8211
+adm9240
+adp5520_bl
+adp5520-gpio
+adp5520-keys
+adp5588-gpio
+adp5588-keys
+adp8860_bl
+ads7846
+ads7871
+adt7411
+adt7462
+adt7470
+adt7475
+adutux
+adv7170
+adv7175
+adv7180
+adv7343
+advansys
+aes_generic
+af_802154
+af9013
+affs
+af_key
+af-rxrpc
+agpgart
+ah4
+ah6
+aha152x_cs
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aiptek
+aircable
+airo
+airo_cs
+airport
+ak881x
+alauda
+ali-ircc
+altera_jtaguart
+altera_ps2
+altera_uart
+ambassador
+amc6821
+amd8111e
+ams
+analog
+ansi_cprng
+ans-lcd
+anubis
+aoe
+apbuart
+apm_emu
+apm-emulation
+apm_power
+appledisplay
+appletalk
+appletouch
+applicom
+ar7part
+ar9170usb
+arc4
+arcmsr
+arcnet
+arc-rawmode
+arc-rimi
+ark3116
+arkfb
+arptable_filter
+arp_tables
+arpt_mangle
+asc7621
+asix
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+ata_generic
+ata_piix
+atbm8830
+aten
+ath
+ath3k
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atm
+atmel
+atmel_cs
+atmel_pci
+atmtcp
+atp870u
+atxp1
+au0828
+au8522
+aufs
+authenc
+auth_rpcgss
+autofs
+autofs4
+ax25
+axnet_cs
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+batman-adv
+baycom_epp
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcm203x
+bcm3510
+bcm5974
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfs
+bfusb
+binfmt_misc
+block2mtd
+blowfish
+bluecard_cs
+bluetooth
+bmac
+bnep
+bnx2
+bnx2i
+bnx2x
+bonding
+bpa10x
+bpck
+bpck6
+bpqether
+bq24022
+bq27x00_battery
+br2684
+bridge
+briq_panel
+broadcom
+broadsheetfb
+bsd_comp
+bt3c_cs
+bt819
+bt856
+bt866
+bt878
+btcx-risc
+bt_drv
+btmrvl
+btmrvl_sdio
+btrfs
+btsdio
+bttv
+btuart_cs
+btusb
+BusLogic
+bw-qcam
+c67x00
+cachefiles
+cafe_ccic
+cafe_nand
+caif
+caif_serial
+caif_socket
+camellia
+can
+can-bcm
+can-dev
+can-raw
+capmode
+carminefb
+cassini
+cast5
+cast6
+catc
+cb710
+cb710-mmc
+cciss
+cdc-acm
+cdc_eem
+cdc_ether
+cdc-phonet
+cdc_subset
+cdc-wdm
+ceph
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+ch
+ch341
+ch7006
+chipreg
+chnl_net
+cicada
+cifs
+cirrusfb
+clip
+cls_basic
+cls_flow
+cls_fw
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cn
+cnic
+cobra
+coda
+com20020
+com20020_cs
+com20020-pci
+com90io
+com90xx
+comm
+configfs
+core
+cp210x
+cpia
+cpia2
+cpia_pp
+cpia_usb
+cpqarray
+cpufreq_stats
+cpu-notifier-error-inject
+c-qcam
+cramfs
+crc32c
+crc7
+crc-ccitt
+crc-itu-t
+crc-t10dif
+cryptd
+cryptoloop
+crypto_null
+crystalhd
+cs5345
+cs53l32a
+cs5535-gpio
+cts
+cuse
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24123
+cx25840
+cx8800
+cx8802
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx88xx
+cxacru
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxt1e1
+cyber2000fb
+cyberjack
+cyclades
+cyclomx
+cycx_drv
+cypress_cy7c63
+cypress_m8
+cytherm
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+DAC960
+davicom
+db9
+dc395x
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dccp_probe
+de2104x
+de4x5
+de600
+de620
+decnet
+deflate
+defxx
+denali
+des_generic
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dibx000_common
+digi_acceleport
+diskonchip
+display
+dl2k
+dlci
+dlm
+dm1105
+dm9601
+dm-crypt
+dme1737
+dmfe
+dm-log
+dm-mirror
+dm-multipath
+dm-queue-length
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dmx3191d
+dm-zero
+dnet
+dn_rtmsg
+doc2000
+doc2001
+doc2001plus
+docecc
+docprobe
+donauboe
+dpt_i2o
+drm
+drm_kms_helper
+ds1621
+ds1682
+ds2482
+ds2490
+ds2760_battery
+ds2782_battery
+ds3000
+dsbr100
+dscc4
+dst
+dst_ca
+dstr
+dt3155
+dt3155v4l
+dtl1_cs
+dummy
+dv1394
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dw2102
+dvb-usb-friio
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-m920x
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dw_spi_pci
+dynapro
+e100
+e1000
+e1000e
+earth-pt1
+eata
+ebt_802_3
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_ulog
+ebt_vlan
+econet
+edac_core
+eeprom
+eeprom_93cx6
+eeti_ts
+efs
+elo
+em28xx
+em28xx-dvb
+emc1403
+em_cmp
+emi26
+emi62
+em_meta
+em_nbyte
+empeg
+ems_pci
+ems_usb
+em_text
+emu10k1-gp
+em_u32
+eni
+enic
+epat
+epca
+epia
+epic100
+eql
+esi-sir
+esp4
+esp6
+et1011c
+et61x251
+eth1394
+ethoc
+evbug
+evdev
+exofs
+exportfs
+f71805f
+f71882fg
+f75375s
+farsync
+fat
+faulty
+fb_sys_fops
+fcoe
+fcrypt
+fdomain
+fdomain_cs
+fealnx
+ff-memless
+firedtv
+firestream
+fit2
+fit3
+floppy
+fm801-gp
+fmvj18x_cs
+forcedeth
+fore_200e
+freevxfs
+friq
+frpw
+fscache
+ftdi-elan
+ftdi_sio
+ftl
+fujitsu_ts
+funsoft
+g760a
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+g_audio
+g_cdc
+gdth
+generic
+generic_bl
+gen_probe
+g_ether
+gf128mul
+gf2k
+g_ffs
+g_file_storage
+gfs2
+ghash-generic
+g_hid
+girbil-sir
+gl518sm
+gl520sm
+gl620a
+gluebi
+g_mass_storage
+g_midi
+g_nokia
+goku_udc
+gpio-addr-flash
+gpio_keys
+gpio_mouse
+gpio_vbus
+g_printer
+grip
+grip_mp
+g_serial
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_stk014
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_tv8532
+gspca_vc032x
+gspca_zc3xx
+gtco
+guillemot
+gunze
+g_webcam
+gxt4500
+g_zero
+hamachi
+hampshire
+hci_uart
+hci_vhci
+hdlc
+hdlc_cisco
+hdlcdrv
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdpvr
+he
+hexium_gemini
+hexium_orion
+hfs
+hfsplus
+hid
+hid-3m-pct
+hid-a4tech
+hid-apple
+hid-belkin
+hid-cando
+hid-cherry
+hid-chicony
+hid-cypress
+hid-drff
+hid-egalax
+hid-ezkey
+hid-gaff
+hid-gyration
+hid-kensington
+hid-kye
+hid-logitech
+hid-magicmouse
+hid-microsoft
+hid-monterey
+hid-mosart
+hid-ntrig
+hid-ortek
+hidp
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-prodikeys
+hid-quanta
+hid-roccat
+hid-roccat-kone
+hid-samsung
+hid-sjoy
+hid-sony
+hid-stantum
+hid-sunplus
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-wacom
+hid-zpff
+hid-zydacron
+hopper
+horizon
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hp100
+hp4x
+hpfs
+hpsa
+hptiop
+hso
+htc-pasic3
+hwa-hc
+hwa-rc
+hwmon-vid
+i1480-dfu-usb
+i1480-est
+i1480u-wlp
+i2400m
+i2400m-sdio
+i2400m-usb
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd8111
+i2c-dev
+i2c-gpio
+i2c-hydra
+i2c-i801
+i2c-isch
+i2c-matroxfb
+i2c-mpc
+i2c-nforce2
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-xiic
+i2o_block
+i2o_bus
+i2o_config
+i2o_core
+i2o_proc
+i2o_scsi
+i5k_amb
+i82092
+ib_addr
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_mad
+ibmaem
+ibmcam
+ibmpex
+ib_mthca
+ibmtr_cs
+ib_sa
+ib_srp
+ib_ucm
+ib_umad
+ib_uverbs
+icplus
+ics932s401
+idmouse
+idt77252
+ieee1394
+ieee802154
+ifb
+iforce
+igbvf
+ili9320
+imm
+imon
+inexio
+inftl
+initio
+input-polldev
+int51x1
+intel_vr_nor
+interact
+ioc4
+io_edgeport
+io_ti
+iowarrior
+ip2
+ip6_queue
+ip6table_filter
+ip6table_mangle
+ip6table_raw
+ip6_tables
+ip6table_security
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_LOG
+ip6t_mh
+ip6t_REJECT
+ip6t_rt
+ip6_tunnel
+ipaq
+ipcomp
+ipcomp6
+ipddp
+ipg
+ip_gre
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_watchdog
+ip_queue
+ips
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+ip_tables
+iptable_security
+ipt_addrtype
+ipt_ah
+ipt_CLUSTERIP
+ipt_ecn
+ipt_ECN
+ipt_LOG
+ipt_MASQUERADE
+ipt_NETMAP
+ipt_REDIRECT
+ipt_REJECT
+ipt_ULOG
+ipv6
+ip_vs
+ip_vs_dh
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_nq
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ipw
+ipw2100
+ipw2200
+ipx
+ircomm
+ir-common
+ircomm-tty
+ir-core
+irda
+irda-usb
+ir-jvc-decoder
+ir-kbd-i2c
+irlan
+ir-nec-decoder
+irnet
+ir-rc5-decoder
+ir-rc6-decoder
+ir-sony-decoder
+irtty-sir
+ir-usb
+iscsi_tcp
+iscsi_trgt
+isight_firmware
+isl29003
+isl6405
+isl6421
+isofs
+isp116x-hcd
+isp1362-hcd
+isp1760
+istallion
+it87
+it8761e_gpio
+itd1000
+iuu_phoenix
+ivtv
+ivtvfb
+iw_c2
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwlagn
+iwlcore
+iwmc3200top
+iwmc3200wifi
+ixgb
+ixgbe
+ixgbevf
+ixj
+ixj_pcmcia
+janz-cmodio
+janz-ican3
+janz-ttl
+jedec_probe
+jffs2
+jfs
+jme
+joydev
+joydump
+jsm
+kafs
+kaweth
+kbic
+kbtab
+keyspan
+keyspan_pda
+keyspan_remote
+khazad
+kingsun-sir
+kl5kusb105
+kobil_sct
+konicawc
+ks0108
+ks0127
+ks8842
+ks8851
+ks8851_mll
+ks959-sir
+ksdazzle-sir
+ksz884x
+ktti
+kvaser_pci
+kyrofb
+l2cap
+l2tp_core
+l2tp_debugfs
+l2tp_ppp
+l4f00242t03
+l64781
+lanai
+lanstreamer
+lapb
+lapbether
+lcd
+ldusb
+lec
+leds-88pm860x
+leds-adp5520
+leds-bd2802
+leds-da903x
+leds-dac124s085
+leds-lp3944
+leds-lt3593
+leds-mc13783
+leds-regulator
+leds-wm831x-status
+leds-wm8350
+ledtrig-backlight
+ledtrig-gpio
+legousbtower
+lgdt3305
+lgdt330x
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libcrc32c
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libosd
+libsas
+libsrp
+lightning
+linear
+lirc_atiusb
+lirc_bt829
+lirc_dev
+lirc_ene0100
+lirc_i2c
+lirc_igorplugusb
+lirc_imon
+lirc_it87
+lirc_ite8709
+lirc_mceusb
+lirc_sasem
+lirc_serial
+lirc_sir
+lirc_streamzap
+lirc_ttusbir
+lis3lv02d
+lis3lv02d_i2c
+lis3lv02d_spi
+litelink-sir
+lkkbd
+llc2
+ll_temac
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95241
+lmc
+lms283gf05
+lnbp21
+lockd
+loop
+lp
+lp3971
+lpc_sch
+lpddr_cmds
+lpfc
+lrw
+ltc4215
+ltc4245
+ltv350qv
+lxt
+lzo_compress
+m25p80
+m52790
+ma600-sir
+mac53c94
+mac80211
+mac80211_hwsim
+mace
+macvlan
+magellan
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+matrix_keypad
+matroxfb_maven
+matrox_w1
+max1111
+max1586
+max1619
+max17040_battery
+max2165
+max3100
+max6650
+max6875
+max7300
+max7301
+max730x
+max732x
+max7359_keypad
+max8649
+max8660
+max8925_bl
+max8925_onkey
+max8925_power
+max8925-regulator
+mb862xxfb
+mb862xxfb_accel
+mb86a16
+mc13783-adc
+mc13783-core
+mc13783-regulator
+mc13783_ts
+mc33880
+mc44s803
+mcp2120-sir
+mcp23s08
+mcp251x
+mcs5000_ts
+mcs7780
+mcs7830
+mct_u232
+md4
+mdc800
+mdio
+mdio-bitbang
+mdio-gpio
+md-mod
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mem2mem_testdev
+mesh
+metronomefb
+mga
+michael_mic
+micrel
+microtek
+mii
+minix
+mk712
+mkiss
+mlx4_core
+mlx4_en
+mlx4_ib
+mmc_block
+mmc_core
+mos7720
+mos7840
+moto_modem
+moxa
+mpoa
+mpt2sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+msdos
+msp3400
+mt2060
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt9m001
+mt9m111
+mt9t031
+mt9t112
+mt9v011
+mt9v022
+mtd
+mtd_blkdevs
+mtdblock
+mtdblock_ro
+mtdchar
+mtdconcat
+mtd_dataflash
+mtd_nandecctest
+mtd_oobtest
+mtdoops
+mtd_pagetest
+mtdram
+mtd_readtest
+mtd_speedtest
+mtd_stresstest
+mtd_subpagetest
+mtd_torturetest
+mtouch
+multipath
+mv643xx_eth
+mwl8k
+mxl5005s
+mxl5007t
+myri10ge
+nand
+nand_ecc
+nand_ids
+nandsim
+national
+natsemi
+navman
+nbd
+ncpfs
+ne2k-pci
+neofb
+net1080
+netconsole
+netrom
+netxen_nic
+newtonkbd
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_ipv4
+nf_conntrack_ipv6
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_proto_dccp
+nf_conntrack_proto_gre
+nf_conntrack_proto_sctp
+nf_conntrack_proto_udplite
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_proto_dccp
+nf_nat_proto_gre
+nf_nat_proto_sctp
+nf_nat_proto_udplite
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nfnetlink
+nfnetlink_log
+nfnetlink_queue
+nfs
+nfs_acl
+nfsd
+nftl
+nf_tproxy_core
+ngene
+n_hdlc
+nicstar
+nilfs2
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp437
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+nop-usb-xceiv
+nouveau
+n_r3964
+ns558
+ns83820
+nsc-ircc
+nsp32
+nsp_cs
+ntfs
+nvidiafb
+nxt200x
+nxt6000
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stackglue
+ocfs2_stack_o2cb
+ocfs2_stack_user
+of_serial
+ohci1394
+old_belkin-sir
+olympic
+omfs
+omninet
+on20
+on26
+onenand
+onenand_sim
+opencores-kbd
+oprofile
+opticon
+option
+or51132
+or51211
+orinoco
+orinoco_cs
+orinoco_usb
+osd
+osdblk
+osst
+oti6858
+output
+ov7670
+ov772x
+ov9640
+ovcamchip
+oxu210hp-hcd
+p54common
+p54pci
+p54spi
+p54usb
+p8023
+paride
+parkbd
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+pata_amd
+pata_atp867x
+pata_cs5520
+pata_efar
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_macio
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_of_platform
+pata_oldpiix
+pata_pcmcia
+pata_pdc2027x
+pata_platform
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sis
+pata_sl82c105
+pata_triflex
+pata_via
+pc87360
+pc87427
+pca953x
+pcbc
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf857x
+pcf8591
+pci
+pci200syn
+pcilynx
+pcips2
+pcmcia
+pcmcia_core
+pcmciamtd
+pcmcia_rsrc
+pcnet32
+pcnet_cs
+pcrypt
+pcspkr
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pdc_adma
+pegasus
+penmount
+pf
+pg
+phantom
+phonedev
+phonet
+phram
+physmap
+physmap_of
+pktcdvd
+pktgen
+pl2303
+platform_lcd
+plat_nand
+plat-ram
+plip
+plusb
+pluto2
+plx_pci
+pm2fb
+pm3fb
+pm8001
+pmac_zilog
+pmc551
+pmcraid
+pmu_battery
+pn_pep
+poseidon
+powermate
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_generic
+ppp_mppe
+pppoatm
+pppoe
+pppox
+ppp_synctty
+pps_core
+pps-ldisc
+prism54
+psmouse
+pt
+pvrusb2
+pwc
+qcaux
+qcserial
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas408
+qnx4
+qsemi
+qt1010
+quickcam_messenger
+quota_tree
+quota_v1
+quota_v2
+r128
+r8169
+r8187se
+r8192u_usb
+r852
+r8a66597-hcd
+rack-meter
+radeon
+radio-gemtek-pci
+radio-i2c-si470x
+radio-maestro
+radio-maxiradio
+radio-mr800
+radio-si4713
+radio-tea5764
+radio-timb
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid6test
+raid_class
+ramoops
+ramzswap
+raw
+raw1394
+ray_cs
+rc-adstech-dvb-t-pci
+rc-apac-viewcomp
+rc-asus-pc39
+rc-ati-tv-wonder-hd-600
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avertv-303
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-empty
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv2
+rc-encore-enltv-fm53
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge-new
+rc-imon-mce
+rc-imon-pad
+rc-iodata-bctv7e
+rc-kaiomy
+rc-kworld-315u
+rc-kworld-plus-tv-analog
+rc-manli
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc5-hauppauge-new
+rc-rc5-tv
+rc-real-audio-220-32-keys
+rc-tbs-nec
+rc-terratec-cinergy-xs
+rc-tevii-nec
+rc-tt-1500
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-winfast
+rc-winfast-usbii-deluxe
+rdc321x-gpio
+rdc321x-southbridge
+rdma_cm
+rdma_ucm
+redboot
+reed_solomon
+reiserfs
+rfc1051
+rfc1201
+rfcomm
+rfd_ftl
+rio500
+rivafb
+rj54n1cb0c
+rmd128
+rmd160
+rmd256
+rmd320
+rndis_host
+rocket
+romfs
+rose
+rotary_encoder
+rpcsec_gss_krb5
+rpcsec_gss_spkm3
+rrunner
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00pci
+rt2x00usb
+rt61pci
+rt73usb
+rtc-ab3100
+rtc-ab8500
+rtc-bq32k
+rtc-bq4802
+rtc-cmos
+rtc_cmos_setup
+rtc-ds1286
+rtc-ds1305
+rtc-ds1307
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1742
+rtc-ds3234
+rtc-fm3130
+rtc-generic
+rtc-isl1208
+rtc-m41t80
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max8925
+rtc-mc13783
+rtc-msm6242
+rtc-pcf2123
+rtc-pcf50633
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-stk17ta8
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtl8150
+rtl8187
+rxkad
+s1d13xxxfb
+s2255drv
+s2io
+s3fb
+s5h1409
+s5h1411
+s5h1420
+s6e63m0
+saa5246a
+saa5249
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7191
+saa7706h
+safe_serial
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savage
+savagefb
+sbp2
+sc92031
+sch_atm
+sch_cbq
+sch_drr
+sch_dsmark
+sch_gpio
+sch_gred
+sch_hfsc
+sch_htb
+sch_ingress
+sch_multiq
+sch_netem
+sch_prio
+sch_red
+sch_sfq
+sch_tbf
+sch_teql
+sco
+scsi_debug
+scsi_dh
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_tgt
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+scsi_wait_scan
+sctp
+sctp_probe
+sdhci
+sdhci-of
+sdhci-pci
+sdhci-pltfm
+sdio_uart
+sd_mod
+sdricoh_cs
+se401
+seed
+serial_core
+serial_cs
+serio_raw
+sermouse
+serpent
+serport
+sfc
+sg
+sha1_generic
+sha256_generic
+sha512_generic
+sht15
+si21xx
+si4713-i2c
+sidewinder
+siemens_mpi
+sierra
+sierra_net
+sir-dev
+sis
+sis190
+sis5595
+sis900
+sisfb
+sisusbvga
+sit
+sja1000
+sja1000_of_platform
+sja1000_platform
+skfp
+skge
+sky2
+sl811_cs
+sl811-hcd
+slhc
+slip
+slram
+sm501
+sm501fb
+sm7xx
+smbfs
+smc91c92_cs
+sm_common
+smsc
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc9420
+smsc95xx
+smsc-ircc2
+smsdvb
+smsmdtv
+smssdio
+smsusb
+sn9c102
+snd
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-als300
+snd-als4000
+snd-aoa
+snd-aoa-codec-onyx
+snd-aoa-codec-tas
+snd-aoa-codec-toonie
+snd-aoa-fabric-layout
+snd-aoa-i2sbus
+snd-aoa-soundbus
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-cs5530
+snd-cs5535audio
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-atihdmi
+snd-hda-codec-ca0110
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-idt
+snd-hda-codec-intelhdmi
+snd-hda-codec-nvhdmi
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel8x0
+snd-intel8x0m
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-page-alloc
+snd-pcm
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-powermac
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-sb16-dsp
+snd-sb-common
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ad1836
+snd-soc-ad193x
+snd-soc-ad73311
+snd-soc-ads117x
+snd-soc-ak4104
+snd-soc-ak4535
+snd-soc-ak4642
+snd-soc-ak4671
+snd-soc-core
+snd-soc-cs4270
+snd-soc-da7210
+snd-soc-l3
+snd-soc-max9877
+snd-soc-pcm3008
+snd-soc-spdif
+snd-soc-ssm2602
+snd-soc-tlv320aic23
+snd-soc-tlv320aic26
+snd-soc-tlv320aic3x
+snd-soc-tlv320dac33
+snd-soc-tpa6130a2
+snd-soc-twl4030
+snd-soc-twl6040
+snd-soc-uda134x
+snd-soc-uda1380
+snd-soc-wm2000
+snd-soc-wm8350
+snd-soc-wm8400
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8727
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8776
+snd-soc-wm8900
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8940
+snd-soc-wm8955
+snd-soc-wm8960
+snd-soc-wm8961
+snd-soc-wm8971
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8988
+snd-soc-wm8990
+snd-soc-wm8993
+snd-soc-wm8994
+snd-soc-wm9081
+snd-soc-wm9090
+snd-soc-wm-hubs
+snd-sonicvibes
+snd-tea575x-tuner
+snd-timer
+snd-trident
+snd-usb-audio
+snd-usb-caiaq
+snd-usbmidi-lib
+snd-usb-usx2y
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-vx222
+snd-vx-lib
+snd-vxpocket
+snd-ymfpci
+soc_camera
+soc_camera_platform
+soc_mediabus
+softdog
+solos-pci
+soundcore
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+specialix
+spectrum_cs
+speedtch
+spi_bitbang
+spi_butterfly
+spidev
+spi_gpio
+spi_lm70llp
+squashfs
+sr_mod
+ssb
+ssfdc
+sst25l
+st
+stallion
+starfire
+stb0899
+stb6000
+stb6100
+st_drv
+ste10Xp
+stex
+stinger
+stir4200
+stowaway
+stp
+stradis
+stv0288
+stv0297
+stv0299
+stv0900
+stv090x
+stv6110
+stv6110x
+stv680
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+svcrdma
+svgalib
+swim3
+sx8
+sym53c500_cs
+sym53c8xx
+symbolserial
+synaptics_i2c
+synclink
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+tca6416-keypad
+tcm825x
+tcp_bic
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_probe
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcrypt
+tda10023
+tda10048
+tda1004x
+tda10086
+tda18271
+tda7432
+tda8083
+tda826x
+tda827x
+tda8290
+tda9840
+tda9875
+tda9887
+tdfx
+tdo24m
+tea
+tea5761
+tea5767
+tea6415c
+tea6420
+tef6862
+tehuti
+tekram-sir
+test_power
+tg3
+tgr192
+therm_adt746x
+therm_windtunnel
+thmc50
+ths7303
+ti_dac7512
+tifm_7xx1
+tifm_core
+tifm_sd
+timberdale
+timbuart
+timeriomem-rng
+tipc
+ti_usb_3410_5052
+tlan
+tle62x0
+tlv320aic23b
+tm6000
+tm6000-alsa
+tmdc
+tmiofb
+tmp102
+tmp401
+tmp421
+tms380tr
+tmscsim
+tmspci
+toim3232-sir
+touchit213
+touchright
+touchwin
+tpm
+tpm_atmel
+tpm_nsc
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+trancevibrator
+tridentfb
+ts_bm
+tsc2007
+ts_fsm
+ts_kmp
+tsl2550
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw9910
+twidjoy
+twl4030-gpio
+twl4030_keypad
+twl4030-pwrbutton
+twl4030-usb
+twl4030-vibra
+twl4030_wdt
+twofish
+twofish_common
+typhoon
+u132-hcd
+uartlite
+ubi
+ucb1400_core
+ucb1400_ts
+udf
+ueagle-atm
+ufs
+uinput
+uio
+uio_aec
+uio_cif
+uio_netx
+uio_pci_generic
+uio_pdrv
+uio_pdrv_genirq
+uio_sercos3
+uli526x
+ultracam
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-sddr09
+ums-sddr55
+ums-usbat
+uninorth-agp
+upd64031a
+upd64083
+uPD98402
+usb8xxx
+usbatm
+usb_debug
+usbhid
+usblcd
+usbled
+usblp
+usbnet
+usbserial
+usbsevseg
+usb-storage
+usbtest
+usbtmc
+usbtouchscreen
+usbvideo
+usbvision
+usb_wwan
+userspace-consumer
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l1-compat
+v4l2-common
+v4l2-int-device
+v4l2-mem2mem
+vcan
+ves1820
+ves1x93
+veth
+vfat
+vgastate
+vgg2432a4
+vhost_net
+via
+via686a
+viafb
+via-ircc
+via-rhine
+via-sdmmc
+via-velocity
+vicam
+video1394
+videobuf-core
+videobuf-dma-contig
+videobuf-dma-sg
+videobuf-dvb
+videobuf-vmalloc
+videocodec
+videodev
+virtio
+virtio_balloon
+virtio_blk
+virtio_console
+virtio_net
+virtio_pci
+virtio_ring
+virtio-rng
+virtual
+visor
+vitesse
+vivopay-serial
+vlsi_ir
+vmac
+vmwgfx
+vmxnet3
+vp27smpx
+vpx3220
+vsxxxaa
+vt1211
+vt8231
+vt8623fb
+vxge
+w1_bq27000
+w1_ds2431
+w1_ds2433
+w1_ds2760
+w1-gpio
+w1_smem
+w1_therm
+w83627ehf
+w83627hf
+w83781d
+w83791d
+w83792d
+w83793
+w83977af_ir
+w83l785ts
+w9966
+w9968cf
+wacom_w8001
+walkera0701
+wanrouter
+wanxl
+warrior
+wbsd
+wdrtas
+wdt_pci
+whci
+whci-hcd
+whc-rc
+whiteheat
+wimax
+winbond-840
+windfarm_core
+wire
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1271
+wl1271_spi
+wl3501_cs
+wlags49_h25_cs
+wlags49_h2_cs
+wlp
+wm831x_backup
+wm831x_bl
+wm831x-dcdc
+wm831x-gpio
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x_power
+wm831x_wdt
+wm8350-gpiolib
+wm8350-hwmon
+wm8350_power
+wm8350-regulator
+wm8350_wdt
+wm8400-core
+wm8400-regulator
+wm8739
+wm8775
+wm8994-gpio
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusbcore
+wusb-wa
+x25
+x25_asy
+xc5000
+xcbc
+xfrm4_mode_beet
+xfrm4_mode_transport
+xfrm4_mode_tunnel
+xfrm4_tunnel
+xfrm6_mode_beet
+xfrm6_mode_ro
+xfrm6_mode_transport
+xfrm6_mode_tunnel
+xfrm6_tunnel
+xfrm_ipcomp
+xfrm_user
+xfs
+xgifb
+xhci-hcd
+xilinx_emaclite
+xilinx_ps2
+xirc2ps_cs
+xircom_cb
+xor
+xpad
+xprtrdma
+x_tables
+xt_CLASSIFY
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlimit
+xt_connmark
+xt_CONNSECMARK
+xt_conntrack
+xt_CT
+xt_dccp
+xt_dscp
+xt_DSCP
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_HL
+xtkbd
+xt_LED
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_NFLOG
+xt_NFQUEUE
+xt_NOTRACK
+xt_osf
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_realm
+xt_recent
+xts
+xt_sctp
+xt_SECMARK
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_TCPMSS
+xt_tcpudp
+xt_TEE
+xt_time
+xt_TPROXY
+xt_TRACE
+xt_u32
+xusbatm
+xvmalloc
+yam
+yealink
+yellowfin
+yenta_socket
+zatm
+zc0301
+zd1201
+zd1211rw
+zhenhua
+zio
+zl10036
+zl10039
+zl10353
+zlib
+zlib_deflate
+zr36016
+zr36050
+zr36060
+zr36067
+zr364xx
diff --git a/debian.master/abi/2.6.35-2.3/powerpc/powerpc.modules b/debian.master/abi/2.6.35-2.3/powerpc/powerpc.modules
new file mode 100644
index 00000000000..974279d1f61
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/powerpc/powerpc.modules
@@ -0,0 +1,2445 @@
+3c359
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+6pack
+8021q
+8139cp
+8139too
+8250
+8250_pci
+8390
+88pm860x_bl
+88pm860x_onkey
+88pm860x-ts
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a100u2w
+a3d
+aacraid
+ab3100
+ab3100-otp
+abyss
+ac97_bus
+acecad
+acenic
+act200l-sir
+act_gact
+act_ipt
+actisys-sir
+act_mirred
+act_nat
+act_pedit
+act_police
+act_simple
+act_skbedit
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7414
+ad7418
+ad7877
+ad7879
+adcxx
+adfs
+adi
+adis16255
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm8211
+adm9240
+adp5520_bl
+adp5520-gpio
+adp5520-keys
+adp5588-gpio
+adp5588-keys
+adp8860_bl
+ads7846
+ads7871
+adt7411
+adt7462
+adt7470
+adt7475
+adutux
+adv7170
+adv7175
+adv7180
+adv7343
+advansys
+aes_generic
+af_802154
+af9013
+affs
+af_key
+af-rxrpc
+agpgart
+ah4
+ah6
+aha152x_cs
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aiptek
+aircable
+airo
+airo_cs
+airport
+ak881x
+alauda
+ali-ircc
+altera_jtaguart
+altera_ps2
+altera_uart
+ambassador
+amc6821
+amd8111e
+ams
+analog
+ansi_cprng
+ans-lcd
+anubis
+aoe
+apbuart
+apm_emu
+apm-emulation
+apm_power
+appledisplay
+appletalk
+appletouch
+applicom
+ar7part
+ar9170usb
+arc4
+arcmsr
+arcnet
+arc-rawmode
+arc-rimi
+ark3116
+arkfb
+arptable_filter
+arp_tables
+arpt_mangle
+asc7621
+asix
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+ata_generic
+ata_piix
+atbm8830
+aten
+ath
+ath3k
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atm
+atmel
+atmel_cs
+atmel_pci
+atmtcp
+atp870u
+atxp1
+au0828
+au8522
+aufs
+authenc
+auth_rpcgss
+autofs
+autofs4
+ax25
+axnet_cs
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+batman-adv
+baycom_epp
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcm203x
+bcm3510
+bcm5974
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfs
+bfusb
+binfmt_misc
+block2mtd
+blowfish
+bluecard_cs
+bluetooth
+bmac
+bnep
+bnx2
+bnx2i
+bnx2x
+bonding
+bpa10x
+bpck
+bpck6
+bpqether
+bq24022
+bq27x00_battery
+br2684
+bridge
+briq_panel
+broadcom
+broadsheetfb
+bsd_comp
+bt3c_cs
+bt819
+bt856
+bt866
+bt878
+btcx-risc
+bt_drv
+btmrvl
+btmrvl_sdio
+btrfs
+btsdio
+bttv
+btuart_cs
+btusb
+BusLogic
+bw-qcam
+c67x00
+cachefiles
+cafe_ccic
+cafe_nand
+caif
+caif_serial
+caif_socket
+camellia
+can
+can-bcm
+can-dev
+can-raw
+capmode
+carminefb
+cassini
+cast5
+cast6
+catc
+cb710
+cb710-mmc
+cciss
+cdc-acm
+cdc_eem
+cdc_ether
+cdc-phonet
+cdc_subset
+cdc-wdm
+ceph
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+ch
+ch341
+ch7006
+chipreg
+chnl_net
+cicada
+cifs
+cirrusfb
+clip
+cls_basic
+cls_flow
+cls_fw
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cn
+cnic
+cobra
+coda
+com20020
+com20020_cs
+com20020-pci
+com90io
+com90xx
+comm
+configfs
+core
+cp210x
+cpia
+cpia2
+cpia_pp
+cpia_usb
+cpqarray
+cpufreq_stats
+c-qcam
+cramfs
+crc32c
+crc7
+crc-ccitt
+crc-itu-t
+crc-t10dif
+cryptd
+cryptoloop
+crypto_null
+crystalhd
+cs5345
+cs53l32a
+cs5535-gpio
+cts
+cuse
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24123
+cx25840
+cx8800
+cx8802
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx88xx
+cxacru
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxt1e1
+cyber2000fb
+cyberjack
+cyclades
+cyclomx
+cycx_drv
+cypress_cy7c63
+cypress_m8
+cytherm
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+DAC960
+davicom
+db9
+dc395x
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dccp_probe
+de2104x
+de4x5
+de600
+de620
+decnet
+deflate
+defxx
+denali
+des_generic
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dibx000_common
+digi_acceleport
+diskonchip
+display
+dl2k
+dlci
+dlm
+dm1105
+dm9601
+dm-crypt
+dme1737
+dmfe
+dm-log
+dm-mirror
+dm-multipath
+dm-queue-length
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dmx3191d
+dm-zero
+dnet
+dn_rtmsg
+doc2000
+doc2001
+doc2001plus
+docecc
+docprobe
+donauboe
+dpt_i2o
+drm
+drm_kms_helper
+ds1621
+ds1682
+ds2482
+ds2490
+ds2760_battery
+ds2782_battery
+ds3000
+dsbr100
+dscc4
+dst
+dst_ca
+dstr
+dt3155
+dt3155v4l
+dtl1_cs
+dummy
+dv1394
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dw2102
+dvb-usb-friio
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-m920x
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dw_spi_pci
+dynapro
+e100
+e1000
+e1000e
+earth-pt1
+eata
+ebt_802_3
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_ulog
+ebt_vlan
+econet
+edac_core
+eeprom
+eeprom_93cx6
+eeti_ts
+efs
+elo
+em28xx
+em28xx-dvb
+emc1403
+em_cmp
+emi26
+emi62
+em_meta
+em_nbyte
+empeg
+ems_pci
+ems_usb
+em_text
+emu10k1-gp
+em_u32
+eni
+enic
+epat
+epca
+epia
+epic100
+eql
+esi-sir
+esp4
+esp6
+et1011c
+et61x251
+eth1394
+ethoc
+evbug
+evdev
+exofs
+exportfs
+f71805f
+f71882fg
+f75375s
+farsync
+fat
+faulty
+fb_sys_fops
+fcoe
+fcrypt
+fdomain
+fdomain_cs
+fealnx
+ff-memless
+firedtv
+firestream
+fit2
+fit3
+floppy
+fm801-gp
+fmvj18x_cs
+forcedeth
+fore_200e
+freevxfs
+friq
+frpw
+fscache
+ftdi-elan
+ftdi_sio
+ftl
+fujitsu_ts
+funsoft
+g760a
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+g_audio
+g_cdc
+gdth
+generic
+generic_bl
+gen_probe
+g_ether
+gf128mul
+gf2k
+g_ffs
+g_file_storage
+gfs2
+ghash-generic
+g_hid
+girbil-sir
+gl518sm
+gl520sm
+gl620a
+gluebi
+g_mass_storage
+g_midi
+g_nokia
+gpio-addr-flash
+gpio_keys
+gpio_mouse
+gpio_vbus
+g_printer
+grip
+grip_mp
+g_serial
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_stk014
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_tv8532
+gspca_vc032x
+gspca_zc3xx
+gtco
+guillemot
+gunze
+g_webcam
+gxt4500
+g_zero
+hamachi
+hampshire
+hci_uart
+hci_vhci
+hdlc
+hdlc_cisco
+hdlcdrv
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdpvr
+he
+hexium_gemini
+hexium_orion
+hfs
+hfsplus
+hid
+hid-3m-pct
+hid-a4tech
+hid-apple
+hid-belkin
+hid-cando
+hid-cherry
+hid-chicony
+hid-cypress
+hid-drff
+hid-egalax
+hid-ezkey
+hid-gaff
+hid-gyration
+hid-kensington
+hid-kye
+hid-logitech
+hid-magicmouse
+hid-microsoft
+hid-monterey
+hid-mosart
+hid-ntrig
+hid-ortek
+hidp
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-prodikeys
+hid-quanta
+hid-roccat
+hid-roccat-kone
+hid-samsung
+hid-sjoy
+hid-sony
+hid-stantum
+hid-sunplus
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-wacom
+hid-zpff
+hid-zydacron
+hopper
+horizon
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hp100
+hp4x
+hpfs
+hpilo
+hpsa
+hptiop
+hso
+htc-pasic3
+hwa-hc
+hwa-rc
+hwmon-vid
+i1480-dfu-usb
+i1480-est
+i1480u-wlp
+i2400m
+i2400m-sdio
+i2400m-usb
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd8111
+i2c-dev
+i2c-gpio
+i2c-hydra
+i2c-i801
+i2c-isch
+i2c-matroxfb
+i2c-mpc
+i2c-nforce2
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-xiic
+i2o_block
+i2o_bus
+i2o_config
+i2o_core
+i2o_proc
+i2o_scsi
+i5k_amb
+i82092
+ib_addr
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_mad
+ibmaem
+ibmcam
+ibmpex
+ib_mthca
+ibmtr_cs
+ib_sa
+ib_srp
+ib_ucm
+ib_umad
+ib_uverbs
+icplus
+ics932s401
+idmouse
+idt77252
+ieee1394
+ieee802154
+ifb
+iforce
+igbvf
+ili9320
+imm
+imon
+inexio
+inftl
+initio
+input-polldev
+int51x1
+intel_vr_nor
+interact
+ioc4
+io_edgeport
+io_ti
+iowarrior
+ip2
+ip6_queue
+ip6table_filter
+ip6table_mangle
+ip6table_raw
+ip6_tables
+ip6table_security
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_LOG
+ip6t_mh
+ip6t_REJECT
+ip6t_rt
+ip6_tunnel
+ipaq
+ipcomp
+ipcomp6
+ipddp
+ipg
+ip_gre
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_watchdog
+ip_queue
+ips
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+ip_tables
+iptable_security
+ipt_addrtype
+ipt_ah
+ipt_CLUSTERIP
+ipt_ecn
+ipt_ECN
+ipt_LOG
+ipt_MASQUERADE
+ipt_NETMAP
+ipt_REDIRECT
+ipt_REJECT
+ipt_ULOG
+ipv6
+ip_vs
+ip_vs_dh
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_nq
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ipw
+ipw2100
+ipw2200
+ipx
+ircomm
+ir-common
+ircomm-tty
+ir-core
+irda
+irda-usb
+ir-jvc-decoder
+ir-kbd-i2c
+irlan
+ir-nec-decoder
+irnet
+ir-rc5-decoder
+ir-rc6-decoder
+ir-sony-decoder
+irtty-sir
+ir-usb
+iscsi_tcp
+iscsi_trgt
+isight_firmware
+isl29003
+isl6405
+isl6421
+isofs
+isp116x-hcd
+isp1362-hcd
+isp1760
+istallion
+it87
+it8761e_gpio
+itd1000
+iuu_phoenix
+ivtv
+ivtvfb
+iw_c2
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwlagn
+iwlcore
+iwmc3200top
+iwmc3200wifi
+ixgb
+ixgbe
+ixgbevf
+ixj
+ixj_pcmcia
+janz-cmodio
+janz-ican3
+janz-ttl
+jedec_probe
+jffs2
+jfs
+jme
+joydev
+joydump
+jsm
+kafs
+kaweth
+kbic
+kbtab
+keyspan
+keyspan_pda
+keyspan_remote
+khazad
+kingsun-sir
+kl5kusb105
+kobil_sct
+konicawc
+ks0108
+ks0127
+ks8842
+ks8851
+ks8851_mll
+ks959-sir
+ksdazzle-sir
+ksz884x
+ktti
+kvaser_pci
+kvm
+kyrofb
+l2cap
+l2tp_core
+l2tp_debugfs
+l2tp_ppp
+l4f00242t03
+l64781
+lanai
+lanstreamer
+lapb
+lapbether
+lcd
+ldusb
+lec
+leds-88pm860x
+leds-adp5520
+leds-bd2802
+leds-da903x
+leds-dac124s085
+leds-lp3944
+leds-lt3593
+leds-mc13783
+leds-regulator
+leds-wm831x-status
+leds-wm8350
+ledtrig-backlight
+ledtrig-gpio
+legousbtower
+lgdt3305
+lgdt330x
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libcrc32c
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libosd
+libsas
+libsrp
+lightning
+linear
+lirc_atiusb
+lirc_bt829
+lirc_dev
+lirc_ene0100
+lirc_i2c
+lirc_igorplugusb
+lirc_imon
+lirc_it87
+lirc_ite8709
+lirc_mceusb
+lirc_sasem
+lirc_serial
+lirc_sir
+lirc_streamzap
+lirc_ttusbir
+lis3lv02d
+lis3lv02d_i2c
+lis3lv02d_spi
+litelink-sir
+lkkbd
+llc2
+ll_temac
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95241
+lmc
+lms283gf05
+lnbp21
+lockd
+loop
+lp
+lp3971
+lpc_sch
+lpddr_cmds
+lpfc
+lrw
+ltc4215
+ltc4245
+ltv350qv
+lxt
+lzo
+lzo_compress
+m25p80
+m52790
+ma600-sir
+mac53c94
+mac80211
+mac80211_hwsim
+mace
+macvlan
+magellan
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+matrix_keypad
+matroxfb_maven
+matrox_w1
+max1111
+max1586
+max1619
+max17040_battery
+max2165
+max3100
+max6650
+max6875
+max7300
+max7301
+max730x
+max732x
+max7359_keypad
+max8649
+max8660
+max8925_bl
+max8925_onkey
+max8925_power
+max8925-regulator
+mb862xxfb
+mb862xxfb_accel
+mb86a16
+mc13783-adc
+mc13783-core
+mc13783-regulator
+mc13783_ts
+mc33880
+mc44s803
+mcp2120-sir
+mcp23s08
+mcp251x
+mcs5000_ts
+mcs7780
+mcs7830
+mct_u232
+md4
+mdc800
+mdio
+mdio-bitbang
+mdio-gpio
+md-mod
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mem2mem_testdev
+mesh
+metronomefb
+mga
+michael_mic
+micrel
+microtek
+mii
+minix
+mk712
+mkiss
+mlx4_core
+mlx4_en
+mlx4_ib
+mmc_block
+mmc_core
+mos7720
+mos7840
+moto_modem
+moxa
+mpoa
+mpt2sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+msdos
+msp3400
+mt2060
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt9m001
+mt9m111
+mt9t031
+mt9t112
+mt9v011
+mt9v022
+mtd
+mtd_blkdevs
+mtdblock
+mtdblock_ro
+mtdchar
+mtdconcat
+mtd_dataflash
+mtd_nandecctest
+mtd_oobtest
+mtdoops
+mtd_pagetest
+mtdram
+mtd_readtest
+mtd_speedtest
+mtd_stresstest
+mtd_subpagetest
+mtd_torturetest
+mtouch
+multipath
+mv643xx_eth
+mwl8k
+mxl5005s
+mxl5007t
+myri10ge
+nand
+nand_ecc
+nand_ids
+nandsim
+national
+natsemi
+navman
+nbd
+ncpfs
+ne2k-pci
+neofb
+net1080
+net2280
+netconsole
+netrom
+netxen_nic
+newtonkbd
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_ipv4
+nf_conntrack_ipv6
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_proto_dccp
+nf_conntrack_proto_gre
+nf_conntrack_proto_sctp
+nf_conntrack_proto_udplite
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_proto_dccp
+nf_nat_proto_gre
+nf_nat_proto_sctp
+nf_nat_proto_udplite
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nfnetlink
+nfnetlink_log
+nfnetlink_queue
+nfs
+nfs_acl
+nfsd
+nftl
+nf_tproxy_core
+ngene
+n_hdlc
+nicstar
+nilfs2
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp437
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+nop-usb-xceiv
+nouveau
+n_r3964
+ns558
+ns83820
+nsc-ircc
+nsp32
+nsp_cs
+ntfs
+nvidiafb
+nxt200x
+nxt6000
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stackglue
+ocfs2_stack_o2cb
+ocfs2_stack_user
+of_serial
+ohci1394
+old_belkin-sir
+olympic
+omfs
+omninet
+on20
+on26
+onenand
+onenand_sim
+opencores-kbd
+oprofile
+opticon
+option
+or51132
+or51211
+orinoco
+orinoco_cs
+orinoco_usb
+osd
+osdblk
+osst
+oti6858
+output
+ov7670
+ov772x
+ov9640
+ovcamchip
+oxu210hp-hcd
+p54common
+p54pci
+p54spi
+p54usb
+p8023
+paride
+parkbd
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+pata_amd
+pata_atp867x
+pata_cs5520
+pata_efar
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_macio
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_of_platform
+pata_oldpiix
+pata_pcmcia
+pata_pdc2027x
+pata_platform
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sis
+pata_sl82c105
+pata_triflex
+pata_via
+pc87360
+pc87427
+pca953x
+pcbc
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf857x
+pcf8591
+pci
+pci200syn
+pcilynx
+pcips2
+pcmcia
+pcmcia_core
+pcmciamtd
+pcmcia_rsrc
+pcnet32
+pcnet_cs
+pcspkr
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pdc_adma
+pegasus
+penmount
+pf
+pg
+phantom
+phonedev
+phonet
+phram
+physmap
+physmap_of
+pktcdvd
+pktgen
+pl2303
+platform_lcd
+plat_nand
+plat-ram
+plip
+plusb
+pluto2
+plx_pci
+pm2fb
+pm3fb
+pm8001
+pmac_zilog
+pmc551
+pmcraid
+pmu_battery
+pn_pep
+poseidon
+powermate
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_generic
+ppp_mppe
+pppoatm
+pppoe
+pppox
+ppp_synctty
+pps_core
+pps-ldisc
+prism54
+psmouse
+pt
+pvrusb2
+pwc
+qcaux
+qcserial
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas408
+qnx4
+qsemi
+qt1010
+quickcam_messenger
+quota_tree
+quota_v1
+quota_v2
+r128
+r8169
+r8187se
+r8192u_usb
+r852
+r8a66597-hcd
+rack-meter
+radeon
+radio-gemtek-pci
+radio-i2c-si470x
+radio-maestro
+radio-maxiradio
+radio-mr800
+radio-si4713
+radio-tea5764
+radio-timb
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid6test
+raid_class
+ramoops
+ramzswap
+raw
+raw1394
+ray_cs
+rc-adstech-dvb-t-pci
+rc-apac-viewcomp
+rc-asus-pc39
+rc-ati-tv-wonder-hd-600
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avertv-303
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-empty
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv2
+rc-encore-enltv-fm53
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge-new
+rc-imon-mce
+rc-imon-pad
+rc-iodata-bctv7e
+rc-kaiomy
+rc-kworld-315u
+rc-kworld-plus-tv-analog
+rc-manli
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc5-hauppauge-new
+rc-rc5-tv
+rc-real-audio-220-32-keys
+rc-tbs-nec
+rc-terratec-cinergy-xs
+rc-tevii-nec
+rc-tt-1500
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-winfast
+rc-winfast-usbii-deluxe
+rdc321x-gpio
+rdc321x-southbridge
+rdma_cm
+rdma_ucm
+redboot
+reed_solomon
+reiserfs
+rfc1051
+rfc1201
+rfcomm
+rfd_ftl
+rio500
+riscom8
+rivafb
+rj54n1cb0c
+rmd128
+rmd160
+rmd256
+rmd320
+rndis_host
+rocket
+romfs
+rose
+rotary_encoder
+rpcsec_gss_krb5
+rpcsec_gss_spkm3
+rrunner
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00pci
+rt2x00usb
+rt61pci
+rt73usb
+rtc-ab3100
+rtc-ab8500
+rtc-bq32k
+rtc-bq4802
+rtc-cmos
+rtc_cmos_setup
+rtc-ds1286
+rtc-ds1305
+rtc-ds1307
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1742
+rtc-ds3234
+rtc-fm3130
+rtc-generic
+rtc-isl1208
+rtc-m41t80
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max8925
+rtc-mc13783
+rtc-msm6242
+rtc-pcf2123
+rtc-pcf50633
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-stk17ta8
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtl8150
+rtl8187
+rxkad
+s1d13xxxfb
+s2255drv
+s2io
+s3fb
+s5h1409
+s5h1411
+s5h1420
+s6e63m0
+saa5246a
+saa5249
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7191
+saa7706h
+safe_serial
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savage
+savagefb
+sbp2
+sc92031
+sch_atm
+sch_cbq
+sch_drr
+sch_dsmark
+sch_gpio
+sch_gred
+sch_hfsc
+sch_htb
+sch_ingress
+sch_multiq
+sch_netem
+sch_prio
+sch_red
+sch_sfq
+sch_tbf
+sch_teql
+sco
+scsi_debug
+scsi_dh
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_tgt
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+scsi_wait_scan
+sctp
+sctp_probe
+sdhci
+sdhci-of
+sdhci-pci
+sdhci-pltfm
+sdio_uart
+sd_mod
+sdricoh_cs
+se401
+seed
+serial_core
+serial_cs
+serio_raw
+sermouse
+serpent
+serport
+sfc
+sg
+sha1_generic
+sha256_generic
+sha512_generic
+sht15
+si21xx
+si4713-i2c
+sidewinder
+siemens_mpi
+sierra
+sierra_net
+sir-dev
+sis
+sis190
+sis5595
+sis900
+sisfb
+sisusbvga
+sit
+sja1000
+sja1000_of_platform
+sja1000_platform
+skfp
+skge
+sky2
+sl811_cs
+sl811-hcd
+slhc
+slip
+slram
+sm501
+sm501fb
+sm7xx
+smbfs
+smc91c92_cs
+sm_common
+smsc
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc9420
+smsc95xx
+smsc-ircc2
+smsdvb
+smsmdtv
+smssdio
+smsusb
+sn9c102
+snd
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-als300
+snd-als4000
+snd-aoa
+snd-aoa-codec-onyx
+snd-aoa-codec-tas
+snd-aoa-codec-toonie
+snd-aoa-fabric-layout
+snd-aoa-i2sbus
+snd-aoa-soundbus
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-cs5530
+snd-cs5535audio
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-atihdmi
+snd-hda-codec-ca0110
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-idt
+snd-hda-codec-intelhdmi
+snd-hda-codec-nvhdmi
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel8x0
+snd-intel8x0m
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-page-alloc
+snd-pcm
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-powermac
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-sb16-dsp
+snd-sb-common
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ad1836
+snd-soc-ad193x
+snd-soc-ad73311
+snd-soc-ads117x
+snd-soc-ak4104
+snd-soc-ak4535
+snd-soc-ak4642
+snd-soc-ak4671
+snd-soc-core
+snd-soc-cs4270
+snd-soc-da7210
+snd-soc-l3
+snd-soc-max9877
+snd-soc-pcm3008
+snd-soc-spdif
+snd-soc-ssm2602
+snd-soc-tlv320aic23
+snd-soc-tlv320aic26
+snd-soc-tlv320aic3x
+snd-soc-tlv320dac33
+snd-soc-tpa6130a2
+snd-soc-twl4030
+snd-soc-twl6040
+snd-soc-uda134x
+snd-soc-uda1380
+snd-soc-wm2000
+snd-soc-wm8350
+snd-soc-wm8400
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8727
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8776
+snd-soc-wm8900
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8940
+snd-soc-wm8955
+snd-soc-wm8960
+snd-soc-wm8961
+snd-soc-wm8971
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8988
+snd-soc-wm8990
+snd-soc-wm8993
+snd-soc-wm8994
+snd-soc-wm9081
+snd-soc-wm9090
+snd-soc-wm-hubs
+snd-sonicvibes
+snd-tea575x-tuner
+snd-timer
+snd-trident
+snd-usb-audio
+snd-usb-caiaq
+snd-usbmidi-lib
+snd-usb-usx2y
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-vx222
+snd-vx-lib
+snd-vxpocket
+snd-ymfpci
+soc_camera
+soc_camera_platform
+soc_mediabus
+softdog
+solos-pci
+soundcore
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+specialix
+spectrum_cs
+speedtch
+spi_bitbang
+spi_butterfly
+spidev
+spi_gpio
+spi_lm70llp
+squashfs
+sr_mod
+ssb
+ssfdc
+sst25l
+st
+stallion
+starfire
+stb0899
+stb6000
+stb6100
+st_drv
+ste10Xp
+stex
+stinger
+stir4200
+stowaway
+stp
+stradis
+stv0288
+stv0297
+stv0299
+stv0900
+stv090x
+stv6110
+stv6110x
+stv680
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+svcrdma
+svgalib
+swim3
+sx8
+sym53c500_cs
+sym53c8xx
+symbolserial
+synaptics_i2c
+synclink
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+tca6416-keypad
+tcm825x
+tcp_bic
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_probe
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcrypt
+tda10023
+tda10048
+tda1004x
+tda10086
+tda18271
+tda7432
+tda8083
+tda826x
+tda827x
+tda8290
+tda9840
+tda9875
+tda9887
+tdfx
+tdo24m
+tea
+tea5761
+tea5767
+tea6415c
+tea6420
+tef6862
+tehuti
+tekram-sir
+test_power
+tg3
+tgr192
+therm_adt746x
+therm_windtunnel
+thmc50
+ths7303
+ti_dac7512
+tifm_7xx1
+tifm_core
+tifm_sd
+timberdale
+timbuart
+timeriomem-rng
+tipc
+ti_usb_3410_5052
+tlan
+tle62x0
+tlv320aic23b
+tm6000
+tm6000-alsa
+tmdc
+tmiofb
+tmp102
+tmp401
+tmp421
+tms380tr
+tmscsim
+tmspci
+toim3232-sir
+touchit213
+touchright
+touchwin
+tpm
+tpm_atmel
+tpm_nsc
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+trancevibrator
+tridentfb
+ts_bm
+tsc2007
+ts_fsm
+ts_kmp
+tsl2550
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw9910
+twidjoy
+twl4030-gpio
+twl4030_keypad
+twl4030-pwrbutton
+twl4030-usb
+twl4030-vibra
+twl4030_wdt
+twofish
+twofish_common
+typhoon
+u132-hcd
+uartlite
+ubi
+ubifs
+ucb1400_core
+ucb1400_ts
+udf
+ueagle-atm
+ufs
+uinput
+uio
+uio_aec
+uio_cif
+uio_netx
+uio_pci_generic
+uio_pdrv
+uio_pdrv_genirq
+uio_sercos3
+uli526x
+ultracam
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-sddr09
+ums-sddr55
+ums-usbat
+uninorth-agp
+upd64031a
+upd64083
+uPD98402
+usb8xxx
+usbatm
+usb_debug
+usbhid
+usblcd
+usbled
+usblp
+usbnet
+usbserial
+usbsevseg
+usb-storage
+usbtest
+usbtmc
+usbtouchscreen
+usbvideo
+usbvision
+usb_wwan
+userspace-consumer
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l1-compat
+v4l2-common
+v4l2-int-device
+v4l2-mem2mem
+vcan
+ves1820
+ves1x93
+veth
+vfat
+vgastate
+vgg2432a4
+vhost_net
+via
+via686a
+viafb
+via-ircc
+via-rhine
+via-sdmmc
+via-velocity
+vicam
+video1394
+videobuf-core
+videobuf-dma-contig
+videobuf-dma-sg
+videobuf-dvb
+videobuf-vmalloc
+videocodec
+videodev
+virtio
+virtio_balloon
+virtio_blk
+virtio_console
+virtio_net
+virtio_pci
+virtio_ring
+virtio-rng
+virtual
+visor
+vitesse
+vivopay-serial
+vlsi_ir
+vmac
+vmwgfx
+vmxnet3
+vp27smpx
+vpx3220
+vsxxxaa
+vt1211
+vt8231
+vt8623fb
+vxge
+w1_bq27000
+w1_ds2431
+w1_ds2433
+w1_ds2760
+w1-gpio
+w1_smem
+w1_therm
+w83627ehf
+w83627hf
+w83781d
+w83791d
+w83792d
+w83793
+w83977af_ir
+w83l785ts
+w9966
+w9968cf
+wacom_w8001
+walkera0701
+wanrouter
+wanxl
+warrior
+wbsd
+wdrtas
+wdt_pci
+whci
+whci-hcd
+whc-rc
+whiteheat
+wimax
+winbond-840
+windfarm_core
+wire
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1271
+wl1271_spi
+wl3501_cs
+wlags49_h25_cs
+wlags49_h2_cs
+wlp
+wm831x_backup
+wm831x_bl
+wm831x-dcdc
+wm831x-gpio
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x_power
+wm831x_wdt
+wm8350-gpiolib
+wm8350-hwmon
+wm8350_power
+wm8350-regulator
+wm8350_wdt
+wm8400-core
+wm8400-regulator
+wm8739
+wm8775
+wm8994-gpio
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusbcore
+wusb-wa
+x25
+x25_asy
+xc5000
+xcbc
+xfrm4_mode_beet
+xfrm4_mode_transport
+xfrm4_mode_tunnel
+xfrm4_tunnel
+xfrm6_mode_beet
+xfrm6_mode_ro
+xfrm6_mode_transport
+xfrm6_mode_tunnel
+xfrm6_tunnel
+xfrm_ipcomp
+xfrm_user
+xfs
+xgifb
+xhci-hcd
+xilinx_emaclite
+xilinx_ps2
+xirc2ps_cs
+xircom_cb
+xor
+xpad
+xprtrdma
+x_tables
+xt_CLASSIFY
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlimit
+xt_connmark
+xt_CONNSECMARK
+xt_conntrack
+xt_CT
+xt_dccp
+xt_dscp
+xt_DSCP
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_HL
+xtkbd
+xt_LED
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_NFLOG
+xt_NFQUEUE
+xt_NOTRACK
+xt_osf
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_realm
+xt_recent
+xts
+xt_sctp
+xt_SECMARK
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_TCPMSS
+xt_tcpudp
+xt_TEE
+xt_time
+xt_TPROXY
+xt_TRACE
+xt_u32
+xusbatm
+xvmalloc
+yam
+yealink
+yellowfin
+yenta_socket
+zatm
+zc0301
+zd1201
+zd1211rw
+zhenhua
+zio
+zl10036
+zl10039
+zl10353
+zlib
+zlib_deflate
+zr36016
+zr36050
+zr36060
+zr36067
+zr364xx
diff --git a/debian.master/abi/2.6.35-2.3/powerpc/powerpc64-smp b/debian.master/abi/2.6.35-2.3/powerpc/powerpc64-smp
new file mode 100644
index 00000000000..f0cfc05e641
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/powerpc/powerpc64-smp
@@ -0,0 +1,10466 @@
+EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble
+EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle
+EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k
+EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks
+EXPORT_SYMBOL drivers/atm/suni 0xc545ed6a suni_init
+EXPORT_SYMBOL drivers/block/loop 0xbfee3ad5 loop_unregister_transfer
+EXPORT_SYMBOL drivers/block/loop 0xd9d85dc3 loop_register_transfer
+EXPORT_SYMBOL drivers/block/paride/paride 0x06706fd0 pi_write_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0x235a5bca pi_disconnect
+EXPORT_SYMBOL drivers/block/paride/paride 0x39698719 pi_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x3ddc5fb1 paride_unregister
+EXPORT_SYMBOL drivers/block/paride/paride 0x49c199f8 pi_read_block
+EXPORT_SYMBOL drivers/block/paride/paride 0xa397d5d2 pi_release
+EXPORT_SYMBOL drivers/block/paride/paride 0xa8d60dc2 pi_schedule_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0xaf73ed0c pi_connect
+EXPORT_SYMBOL drivers/block/paride/paride 0xb53078c6 paride_register
+EXPORT_SYMBOL drivers/block/paride/paride 0xdd8467fc pi_write_block
+EXPORT_SYMBOL drivers/block/paride/paride 0xdf6abc1a pi_read_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0xedce4437 pi_do_claimed
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x07f686bf get_agp_version
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x07f6a598 agp_generic_alloc_page
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x0fccd6dd agp_generic_free_by_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x15e9262c agp_generic_destroy_pages
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x1eae2d6d agp_flush_chipset
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x2f581830 agp_find_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x30226ddf agp_device_command
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x3260f2f6 agp_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x37043a3f agp_generic_enable
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x3c077627 agp_alloc_page_array
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x40643502 agp_generic_alloc_pages
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x443b55aa agp_copy_info
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x4b085dbf agp3_generic_configure
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x52632fea agp_generic_alloc_user
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x5492185d agp_put_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x673f815e agp_bridges
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x6ee10336 agp_free_page_array
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x737256fe agp_collect_device_status
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7538b132 agp_off
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x76716910 agp_backend_acquire
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7dbf684e agp_generic_free_gatt_table
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x7de198fd agp_generic_mask_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x826eeeb9 agp_generic_type_to_mask_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x8478dee1 agp3_generic_tlbflush
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x854b32da agp_generic_alloc_by_type
+EXPORT_SYMBOL drivers/char/agp/agpgart 0x8f18e343 agp_create_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xa4d4f0e6 global_cache_flush
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xaa675f7f agp_enable
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb04ea8f0 agp_rebind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xb25647e8 agp_backend_release
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xbfd8fa45 agp_generic_create_gatt_table
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc2424641 agp3_generic_cleanup
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc5d9c46c agp_try_unsupported_boot
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc65abeb7 agp3_generic_sizes
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc68e43f3 agp_unbind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xc7276054 agp_generic_remove_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xcc66d5b8 agp_bind_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd0fef3b2 agp_free_key
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xd85f788a agp_generic_destroy_page
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xde9b17ed agp3_generic_fetch_size
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xdf14e363 agp_generic_insert_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xe76458fd agp_allocate_memory
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xebae1eca agp_alloc_bridge
+EXPORT_SYMBOL drivers/char/agp/agpgart 0xf50e9560 agp_free_memory
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x06d83a0e ipmi_set_gets_events
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x338693c5 ipmi_set_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x37aaf709 ipmi_get_version
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x39aeede6 ipmi_register_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x3beb048f ipmi_get_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4debd91a ipmi_poll_interface
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5318105d ipmi_create_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5cf322ca ipmi_set_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5dc45dbc ipmi_get_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6adc6494 ipmi_request_supply_msgs
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6e36c33a ipmi_destroy_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7d7b9683 ipmi_free_recv_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x99afa440 ipmi_smi_msg_received
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9a701f4f ipmi_set_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa4c30c54 ipmi_smi_add_proc_entry
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa86a78a1 ipmi_get_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb10fcf93 ipmi_unregister_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb43b9e45 ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb80328f7 ipmi_smi_watcher_unregister
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd18ed0b5 ipmi_request_settime
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdae837da ipmi_smi_watcher_register
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe1f2842c ipmi_register_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf763af59 ipmi_unregister_smi
+EXPORT_SYMBOL drivers/edac/edac_core 0x6c89895c edac_mc_handle_fbd_ce
+EXPORT_SYMBOL drivers/edac/edac_core 0xdc6b2a74 edac_mc_handle_fbd_ue
+EXPORT_SYMBOL drivers/edac/edac_core 0xe0c162b4 edac_mc_find
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0544e834 drm_get_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0836695c drm_sman_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x09beefe2 drm_mode_create_tv_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x09db2e17 drm_mm_dump_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c592951 drm_mode_config_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f199001 drm_vblank_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f9a33c0 drm_mode_create_dithering_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1214fc2d drm_vblank_pre_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x151642a0 drm_i_have_hw_lock
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x18aa8616 drm_core_reclaim_buffers
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d3737f4 drm_mode_attachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1daaacaf drm_property_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ed094a8 drm_mm_get_block_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ee3e8bd drm_mm_search_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f072c59 drm_property_add_enum
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x205de1e0 drm_vblank_count
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x21451ac4 drm_sman_owner_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x254d587e drm_connector_property_set_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2573b474 drm_mode_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x260c7954 drm_agp_unbind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x26f219a5 drm_compat_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x279372fe drm_addbufs_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2916bf63 drm_sman_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2bb75d09 drm_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2bc35f4a drm_mode_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c6b1468 drm_addmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x2eb2f903 drm_sman_free_key
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3036657c drm_get_edid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x34ca5922 drm_gem_vm_close
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c9a1409 drm_ht_just_insert_please
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d790ca6 drm_read
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3de787cf drm_agp_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fac1638 drm_ioctl
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x422ad179 drm_get_resource_len
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4be6aeb8 drm_idlelock_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c63d6d6 drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c78bbb5 drm_property_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e54b25 drm_get_encoder_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x55f060ee drm_sman_set_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x580830f0 drm_mode_set_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x58d69742 drm_get_connector_name
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5cd58b59 drm_i2c_encoder_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d4620cf drm_framebuffer_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e577db8 drm_rmmap_locked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f7e33ce drm_gtf_mode_complex
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x61083200 drm_agp_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x626d3f3f drm_mm_debug_table
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x62c4f941 drm_encoder_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6328a065 drm_mode_connector_list_update
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x63c14e0f drm_core_ioremapfree
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x64db0b12 drm_core_get_reg_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x65e8ae2b drm_gtf_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6810efd4 drm_mode_connector_update_edid_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900dd25 drm_get_resource_start
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6915e900 drm_mode_connector_detach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c484d3e drm_add_edid_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d2e5837 drm_ut_debug_printk
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d59f6ac drm_gem_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f4abc41 drm_i2c_encoder_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fc30481 drm_mode_hsync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7134a85d drm_vblank_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x71b0c5cd drm_cvt_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x72fb2b15 drm_framebuffer_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7658a720 drm_vblank_off
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x783eda1f drm_mm_takedown
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x784915eb drm_mode_vrefresh
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x793932e3 drm_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x797cc3eb drm_crtc_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x798f1434 drm_mode_probed_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a0d495c drm_mode_config_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c1fd6c8 drm_mode_equal
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c43158a drm_mm_pre_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x7edde2cd drm_mode_find_dmt
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x800d5fbb drm_gem_object_free_unlocked
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x805d8171 drm_exit
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x81470822 drm_agp_acquire
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x847d7d04 drm_sysfs_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x856f7749 drm_gem_object_release
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x857bf0bf drm_sysfs_connector_add
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x85de09f5 drm_mode_width
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x876b129c drm_mode_object_find
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x87734f56 drm_free_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8783436e drm_connector_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x87dbc27f drm_agp_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8848ef81 drm_poll
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x92c44fdb drm_mm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x95bedc51 drm_mode_create_dirty_info_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9938722a drm_pci_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9b168013 drm_addbufs_pci
+EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c63f5c3 drm_add_modes_noedid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0ec29b8 drm_clflush_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa16476a2 drm_mode_destroy
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3cc9ad3 drm_agp_bind_pages
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa620114f drm_idlelock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6570150 drm_gem_object_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6e2a5b1 drm_agp_chipset_flush
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa967881c drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9ccc814 drm_rmmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xab14ec46 drm_mm_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xab4e9669 drm_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xab69e3cc drm_agp_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaeaa4b88 drm_getsarea
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf29788e drm_sman_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xaff9f6c5 drm_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2a53988 drm_fasync
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb556e322 drm_mode_validate_size
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb58ac51c drm_vblank_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb6a467b1 drm_edid_is_valid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7b480fe drm_core_ioremap_wc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb670bed drm_vblank_post_modeset
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc080eb9b drm_gem_object_handle_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3c8d485 drm_connector_property_get_value
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc44b3fc0 drm_mode_detachmode_crtc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4b00583 drm_get_drawable_info
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc50eabb0 drm_unbind_agp
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9ff5123 drm_put_dev
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcab53e50 drm_irq_install
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcbb9858d drm_mm_search_free_in_range
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc25a5ae drm_irq_uninstall
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc50d878 drm_connector_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdf2eff4 drm_mode_height
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf596a08 drm_mm_put_block
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf8ca8d8 drm_connector_attach_property
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfb36582 drm_ati_pcigart_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfbbfa18 drm_debugfs_remove_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd02ae53c drm_master_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd08fa3f0 drm_mode_set_crtcinfo
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1ac889a drm_mode_duplicate
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3028e75 drm_sman_set_manager
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3ffab51 drm_ht_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd63d6819 drm_core_get_map_ofs
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6b19d12 drm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6ba584a drm_agp_bind
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd73e0d7f drm_gem_handle_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7c7cc69 drm_gem_vm_open
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdad253f1 drm_debugfs_create_files
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd49095c drm_ht_insert_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xdde9e45f drm_sysfs_connector_remove
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0edf4ac drm_lock_take
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1457735 drm_ht_remove_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe19a9abf drm_handle_vblank
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe1b17221 drm_mm_get_block_range_generic
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe24a7b88 drm_ht_find_item
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2ec6eef drm_lock_free
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe30d4b0b drm_mode_connector_attach_encoder
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3487343 drm_agp_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe3ccea55 drm_mode_prune_invalid
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe435991c drm_vblank_get
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe5bdce7e drm_mode_debug_printmodeline
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe919dd5c drm_sman_owner_clean
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xe98ab650 drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb7f4aec drm_crtc_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xecb99d40 drm_ati_pcigart_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xeccc9f7d drm_detect_hdmi_monitor
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xedc2f6dc drm_gem_object_init
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf42a2b26 drm_ht_create
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xf766d4b1 drm_core_ioremap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa0597c1 drm_sg_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa391054 drm_master_put
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb82481b drm_mode_validate_clocks
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdfbad19 drm_sman_alloc
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe72758b drm_gem_mmap
+EXPORT_SYMBOL drivers/gpu/drm/drm 0xfec4c401 drm_pci_free
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x039fa19a drm_fb_helper_check_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x06db9932 drm_crtc_helper_set_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b1bbc30 drm_fb_helper_single_add_all_connectors
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0f7f2fc1 drm_fb_helper_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x173a70e6 drm_helper_disable_unused_functions
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x18fcf84b drm_fb_helper_set_par
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1c5227f9 drm_kms_helper_poll_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x20392fed drm_helper_crtc_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x248f1b84 drm_kms_helper_poll_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2a10de48 drm_fb_helper_pan_display
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3bcd6ed3 drm_fb_helper_blank
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3cbbf71b drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3e05225f drm_kms_helper_poll_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x41a7c26f drm_fb_helper_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x54437bd2 drm_helper_hpd_irq_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x64a88ea9 drm_fb_helper_setcmap
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6f719989 drm_helper_encoder_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x703fd0a5 drm_crtc_helper_set_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x86d5976a drm_fb_helper_fill_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x99d7ead0 drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa2c1fbff drm_fb_helper_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa607ac69 drm_helper_connector_dpms
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc1c9bfa1 drm_fb_helper_single_fb_probe
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd42b771a i2c_dp_aux_add_bus
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd6e01026 drm_helper_resume_force_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeba50349 drm_fb_helper_fill_fix
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xede335ee drm_kms_helper_poll_disable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf357e907 drm_fb_helper_initial_config
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x075b07a2 ttm_bo_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x08678f1b ttm_bo_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0d5e48df ttm_bo_unreserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x11c98cc2 ttm_object_file_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1d89df73 ttm_suspend_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x245aeaef ttm_mem_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x24cc73f9 ttm_base_object_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3b1fb702 ttm_bo_move_ttm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3fd155ed ttm_read_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44409a13 ttm_global_item_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44c274e6 ttm_bo_wait
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x459dc4d2 ttm_tt_set_placement_caching
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x495d095c ttm_tt_populate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5563cf8b ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5801c604 ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ca5cb47 ttm_global_item_ref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5fc192db ttm_object_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6a60631a ttm_bo_clean_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x721ae0ce ttm_bo_init_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x72617a3c ttm_fbdev_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7894531a ttm_page_alloc_debugfs
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x790ae1ad ttm_bo_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7dcb1e64 ttm_suspend_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7f76f75c ttm_bo_wait_cpu
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7fae1861 ttm_bo_swapout_all
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x82c2bd02 ttm_bo_unmap_virtual
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8d14adbf ttm_io_prot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x90eebf43 ttm_bo_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x91676b02 ttm_mem_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x940438e7 ttm_write_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x945e90e6 ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x992837bd ttm_bo_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b2be07d ttm_write_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9b760cf3 ttm_base_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9d06ced6 ttm_vt_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9d77bdee ttm_object_file_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa068577d ttm_vt_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa1a7abd2 ttm_bo_wait_unreserved
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa28ec557 ttm_bo_kmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa015638 ttm_bo_synccpu_write_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac090e3f ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac843717 ttm_read_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xadd501b0 ttm_mem_global_alloc
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb70484eb ttm_lock_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb8acac50 ttm_ref_object_base_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb9cf6034 ttm_mem_global_free
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc01e5576 ttm_base_object_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc64022a6 ttm_bo_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xca74ea24 ttm_bo_move_memcpy
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd259557b ttm_bo_mem_space
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdee8f365 ttm_bo_kunmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe00c6ca7 ttm_tt_bind
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe3510d7e ttm_ref_object_add
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe6e43636 ttm_bo_validate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xed0d0ebc ttm_bo_evict_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf316970e ttm_bo_reserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf7cbb1a6 ttm_object_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfcce372b ttm_bo_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfd731de3 ttm_agp_backend_init
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x412cc02f i2c_pca_add_numbered_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x5dfc4be4 i2c_pca_add_bus
+EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x8930d19b amd756_smbus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0b234c4e dma_prog_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c2f86e5 hpsb_get_hostinfo_bykey
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x12cc319f hpsb_iso_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x144e9641 hpsb_unregister_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x158ac548 dma_region_offset_to_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x193d4b3e csr1212_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x23984274 hpsb_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2a96a8b6 hpsb_make_streampacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2a9d9ac3 hpsb_iso_recv_set_channel_mask
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2ebf6e5a dma_prog_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x30171203 hpsb_make_lockpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x30c6e627 hpsb_destroy_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x310e9690 hpsb_bus_reset
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x317aa632 hpsb_unregister_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x33c4566a hpsb_update_config_rom
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x34ebcb14 hpsb_iso_recv_listen_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x37c80508 hpsb_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3d4a0450 hpsb_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3e0a8f2c hpsb_selfid_complete
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x46f32d5f hpsb_make_readpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x471cd755 hpsb_make_lock64packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4c5ef52e hpsb_make_phypacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x518d4100 csr1212_get_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5abcbe19 hpsb_add_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5e1cd314 hpsb_free_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x626e8423 hpsb_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x768fd2dc hpsb_alloc_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x795be294 hpsb_iso_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x79e5bfbf hpsb_lock
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7c287535 hpsb_iso_recv_flush
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7f34aa44 hpsb_free_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x830f1e6b hpsb_node_fill_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x84f283c9 hpsb_register_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x861352f9 hpsb_iso_recv_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x891c9ba2 hpsb_protocol_class
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x92456eef hpsb_iso_recv_release_packets
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x96a7e044 hpsb_iso_xmit_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9a74eea3 hpsb_allocate_and_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa156005f hpsb_iso_stop
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa307b924 hpsb_set_packet_complete_task
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa928dc2d hpsb_resume_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa98bda0b hpsb_node_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xadf1cadd hpsb_create_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xadfd4f19 hpsb_get_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb1801e9e dma_region_mmap
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb266fc0b hpsb_iso_recv_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb3ab4f18 hpsb_remove_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb70d15a1 hpsb_reset_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb76861af hpsb_iso_n_ready
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbd3a2d61 hpsb_packet_success
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbfc7662a hpsb_set_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc1c78abc hpsb_selfid_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc41819e1 hpsb_get_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc5b2d319 hpsb_iso_xmit_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc8408c0a hpsb_update_config_rom_image
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xca79c213 hpsb_iso_wake
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcb7c1d08 hpsb_make_writepacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcd9e772b dma_prog_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd2e4af5b hpsb_iso_xmit_sync
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd4731f3d __hpsb_register_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd6d1e210 hpsb_read_cycle_timer
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd84d5c2d hpsb_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdab06b3a hpsb_send_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe575bb7a hpsb_iso_recv_unlisten_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xece75f98 hpsb_unregister_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xeda4b91d hpsb_set_hostinfo_key
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf76d9640 hpsb_alloc_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfc190e62 hpsb_iso_xmit_queue_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfffefbda hpsb_iso_shutdown
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x3696ec35 ohci1394_unregister_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x6baea798 ohci1394_stop_context
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb82a9943 ohci1394_register_iso_tasklet
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1ea5767b rdma_addr_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x32a8402c rdma_addr_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x602e2c26 rdma_resolve_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd99f3586 rdma_copy_addr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x341907cc ib_send_cm_dreq
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x34e6dd3e ib_send_cm_apr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x37c3af12 ib_send_cm_sidr_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x45c67323 ib_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x496f7105 ib_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x49d9120e cm_class
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x52bfd03f ib_send_cm_drep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x52e26843 ib_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x617b2f1e ib_send_cm_sidr_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x77560ed8 ib_send_cm_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7bbce70a ib_send_cm_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x8a2ea370 ib_send_cm_lap
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xadad108e ib_send_cm_rtu
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb598d002 ib_cm_notify
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbd0a2873 ib_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbd1c103e ib_send_cm_mra
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc6fe6605 ib_send_cm_rej
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09d5e813 ib_destroy_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0e8b5af1 ib_modify_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0f1b7f43 ib_create_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0fcdc08c ib_attach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x11b7a6d1 ib_modify_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x12005492 ib_resize_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x135f40b7 ib_free_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x188c98b8 ib_dealloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x19900192 ib_dealloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1db85366 ib_dealloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1dbd5297 ib_query_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e2458de ib_query_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e778e89 ib_alloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20055e03 ib_alloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x201e56c8 ib_init_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x20b73680 ib_find_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2511f43d ib_modify_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x36c15700 ib_query_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x39e399c7 ib_modify_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45dd6314 ib_create_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4830f0ec ib_get_dma_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4bc97738 ib_destroy_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50148db9 ib_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x509c7949 ib_unregister_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50cc0357 ib_get_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53f2494d ib_get_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x551827f4 ib_flush_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x580abda5 ib_register_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5c03b2a2 ib_alloc_fast_reg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e4a0657 ib_query_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x690843ed ib_find_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x690e166f ib_query_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6935cecb ib_umem_release
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6d624f63 ib_find_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6e29ac42 ib_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7203ddaa ib_create_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7763bf22 ib_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7aa69714 ib_alloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7b2af6f5 ib_query_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7c833c29 ib_register_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8232a65d ib_destroy_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x88371860 ib_alloc_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x88f5c0a0 ib_rereg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f397164 ib_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8fa5654b ib_umem_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c0d3492 ib_dispatch_event
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2ee5029 ib_set_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa8c22e84 ib_fmr_pool_map_phys
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa9e742a6 ib_destroy_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xac33dda7 ib_get_cached_lmc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbcf01c9c ib_get_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbd663721 ib_dereg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2052e7d ib_query_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc210c9cf ib_reg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc64107ec ib_find_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xca1f55ea ib_alloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xca47efb5 ib_query_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcad83395 ib_create_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcfd271e0 ib_fmr_pool_unmap
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda751d47 ib_umem_page_count
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdaa06db4 ib_dealloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdd9e830b ib_unregister_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9050d80 ib_detach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe94a25c8 ib_modify_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfb1b9533 ib_modify_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfbb16505 ib_create_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1964d18b ib_unregister_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5598992b ib_process_mad_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x598b2dd0 ib_redirect_mad_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8618cf0d ib_modify_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x950f50cb ib_register_mad_snoop
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc090ca7e ib_cancel_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc76ec586 ib_free_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xc9403752 ib_create_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd51500a9 ib_get_rmpp_segment
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe1a3b8c5 ib_free_recv_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf767c8b7 ib_register_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfa0f7c12 ib_post_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x06cc4395 ib_init_ah_from_mcmember
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x089af431 ib_sa_get_mcmember_rec
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3731d343 ib_sa_path_rec_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x409d1e87 ib_init_ah_from_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5328d7a6 ib_sa_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5766d475 ib_sa_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8a9b9681 ib_sa_cancel_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9a1cd50d ib_sa_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf99a621f ib_sa_service_rec_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x38bd58ef iw_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x55f520f9 iw_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8ac47c61 iw_cm_connect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x947bb458 iw_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xd28d2d8e iw_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xdace2709 iw_cm_accept
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xed86cdcc iw_cm_reject
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xeeab424a iw_cm_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1d98cd26 rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x40ad63ff rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x483c58c5 rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x58bac6c9 rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x692d0392 rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x77729ce1 rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8e5ae1c5 rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8f1fd5d8 rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9d80975c rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbb474fde rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbcaab477 rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc674ca7d rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd6f34677 rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe3f43dd6 rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe741d7e5 rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xea48449c rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf700102f rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfb3ab051 rdma_resolve_addr
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x3f57383e gameport_close
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x52b687b8 gameport_open
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x542fbfc6 __gameport_register_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x65dfc543 gameport_unregister_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x68b4af11 gameport_unregister_driver
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x7a65ce95 __gameport_register_port
+EXPORT_SYMBOL drivers/input/gameport/gameport 0x8f40b3f9 gameport_start_polling
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xac3397eb gameport_set_phys
+EXPORT_SYMBOL drivers/input/gameport/gameport 0xb8358719 gameport_stop_polling
+EXPORT_SYMBOL drivers/input/input-polldev 0x1cd9b47e input_register_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x316ac1f1 input_allocate_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x33f28af4 input_unregister_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xc35d57e9 input_free_polled_device
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x3b215557 ad714x_enable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x3eb5ff45 ad714x_probe
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x763f26c1 ad714x_disable
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xf743aaac ad714x_remove
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x2fcd82f4 sparse_keymap_setup
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x9cbd6e4f sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xa267c2e6 sparse_keymap_report_entry
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xa3b5c355 sparse_keymap_free
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xa7ec3c17 sparse_keymap_report_event
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xdbc797b9 sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL drivers/md/dm-log 0x14da05ad dm_dirty_log_destroy
+EXPORT_SYMBOL drivers/md/dm-log 0x702cfaf7 dm_dirty_log_type_register
+EXPORT_SYMBOL drivers/md/dm-log 0x85d45a40 dm_dirty_log_type_unregister
+EXPORT_SYMBOL drivers/md/dm-log 0xe682d8d1 dm_dirty_log_create
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x15bb73e4 dm_exception_store_type_unregister
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x4ff999eb dm_exception_store_create
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x767ab844 dm_exception_store_type_register
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x79ced13b dm_exception_store_destroy
+EXPORT_SYMBOL drivers/md/dm-snapshot 0xd7eab674 dm_snap_cow
+EXPORT_SYMBOL drivers/md/md-mod 0x0145d415 bitmap_endwrite
+EXPORT_SYMBOL drivers/md/md-mod 0x0db44a9b md_integrity_add_rdev
+EXPORT_SYMBOL drivers/md/md-mod 0x0f470577 register_md_personality
+EXPORT_SYMBOL drivers/md/md-mod 0x13fe0182 md_barrier_request
+EXPORT_SYMBOL drivers/md/md-mod 0x1522c966 md_set_array_sectors
+EXPORT_SYMBOL drivers/md/md-mod 0x17d86ed0 md_register_thread
+EXPORT_SYMBOL drivers/md/md-mod 0x31148d7c mddev_congested
+EXPORT_SYMBOL drivers/md/md-mod 0x381a13f4 bitmap_close_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x5677d273 md_check_recovery
+EXPORT_SYMBOL drivers/md/md-mod 0x6122046a md_wait_for_blocked_rdev
+EXPORT_SYMBOL drivers/md/md-mod 0x6f35fbfd md_unregister_thread
+EXPORT_SYMBOL drivers/md/md-mod 0x828e6a85 md_write_end
+EXPORT_SYMBOL drivers/md/md-mod 0x82a5ab67 md_write_start
+EXPORT_SYMBOL drivers/md/md-mod 0x8543c17e bitmap_start_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x8f82afb6 bitmap_end_sync
+EXPORT_SYMBOL drivers/md/md-mod 0xb945feb8 md_integrity_register
+EXPORT_SYMBOL drivers/md/md-mod 0xc5fe9798 md_check_no_bitmap
+EXPORT_SYMBOL drivers/md/md-mod 0xcd6132a0 md_error
+EXPORT_SYMBOL drivers/md/md-mod 0xd4f56c44 md_wakeup_thread
+EXPORT_SYMBOL drivers/md/md-mod 0xd5bc1843 md_done_sync
+EXPORT_SYMBOL drivers/md/md-mod 0xe0cac7f4 bitmap_cond_end_sync
+EXPORT_SYMBOL drivers/md/md-mod 0xe552dfcd bitmap_unplug
+EXPORT_SYMBOL drivers/md/md-mod 0xf61f418d bitmap_startwrite
+EXPORT_SYMBOL drivers/md/md-mod 0xf99e9dce unregister_md_personality
+EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul
+EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp
+EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv
+EXPORT_SYMBOL drivers/md/raid6_pq 0x7456cc61 raid6_empty_zero_page
+EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x198817cc ir_raw_handler_unregister
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x89a130fe ir_raw_handler_register
+EXPORT_SYMBOL drivers/media/common/tuners/max2165 0x305ee5b7 max2165_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x706c382b mc44s803_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2060 0x3b4d3fe9 mt2060_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2131 0x8bf5f570 mt2131_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mt2266 0x23c1ba45 mt2266_attach
+EXPORT_SYMBOL drivers/media/common/tuners/mxl5005s 0x5767b81b mxl5005s_attach
+EXPORT_SYMBOL drivers/media/common/tuners/qt1010 0x81769be2 qt1010_attach
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x2de24276 xc2028_attach
+EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0xd5e81ef7 xc5000_attach
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x02f762b9 flexcop_sram_ctrl
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x1e4d0c2e flexcop_eeprom_check_mac_addr
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x2a1a5459 flexcop_sram_set_dest
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x30a7a235 flexcop_device_kfree
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x39d06cc6 flexcop_dma_control_timer_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x435d4788 flexcop_dma_allocate
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x471208f5 flexcop_pass_dmx_data
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x53df97c9 flexcop_wan_set_speed
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x5c0b5eb9 flexcop_pass_dmx_packets
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x62d03c95 flexcop_dma_config_timer
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x6a2b9857 flexcop_pid_feed_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x7a4714ac flexcop_device_exit
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x92672340 flexcop_dump_reg
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0x9396c2f5 flexcop_dma_free
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xa1d795a0 flexcop_i2c_request
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc1d28e60 flexcop_dma_config
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xc6d331be flexcop_dma_xfer_control
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xd9eebbe7 flexcop_dma_control_size_irq
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xef30a90c flexcop_device_kmalloc
+EXPORT_SYMBOL drivers/media/dvb/b2c2/b2c2-flexcop 0xfb2fa5c9 flexcop_device_initialize
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x1cf29f19 bt878
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x2572374d bt878_start
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x3b12bd9d bt878_stop
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0x9c02f1df bt878_device_control
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/bt878 0xd5d0bdef bt878_num
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x48b7c547 read_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x671724c4 dst_error_bailout
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x67281338 rdc_reset_state
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x751a257c dst_pio_disable
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0x7f1cf97d dst_wait_dst_ready
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xbad46693 dst_error_recovery
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xd84f0833 dst_comm_init
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xdfbeedc9 dst_attach
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe413b8d0 write_dst
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst 0xe94b8c9c dst_check_sum
+EXPORT_SYMBOL drivers/media/dvb/bt8xx/dst_ca 0x32ea13c6 dst_ca_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x04b2f12f dvb_register_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0b531d19 dvb_ringbuffer_flush_spinlock_wakeup
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x0c4d4a14 dvb_frontend_sleep_until
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1001f390 dvb_ringbuffer_flush
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x192c9982 dvb_ringbuffer_read
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1b5d4f57 dvb_register_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x1d5ac09a dvb_frontend_detach
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x263ea814 dvb_ringbuffer_read_user
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2b889cf1 dvb_ringbuffer_free
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x2de82985 dvb_dmx_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x32716a0e dvb_frontend_reinitialise
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3a644b1c dvb_dmxdev_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x3c6fb010 dvb_ca_en50221_camready_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x40662fc9 dvb_ringbuffer_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x40bab85d dvb_ca_en50221_camchange_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x4e406812 dvb_dmx_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x60d5c7c3 dvb_dmx_swfilter_204
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x60ecae7f dvb_dmx_swfilter_packets
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x62ff7349 dvb_generic_ioctl
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6c475117 dvb_ca_en50221_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x6e1626db dvb_ringbuffer_empty
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x88a9c1bc dvb_generic_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x986a4701 dvb_net_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0x9cc3866b dvb_unregister_adapter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa679da68 dvb_generic_open
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xa8fb1327 dvb_unregister_device
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xabf53a50 dvb_ringbuffer_avail
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xac4ca1b0 intlog2
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb1e8bfa5 dvb_net_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb6098324 dvb_ca_en50221_frda_irq
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb95ee5b5 dvb_ringbuffer_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xb9bfa1d8 dvb_ca_en50221_release
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xbc0d91e1 timeval_usec_diff
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xd385ec59 dvb_dmx_swfilter
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdb290a0e dvb_register_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xdec8d7b7 dvb_dmxdev_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xe5ae8707 intlog10
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts
+EXPORT_SYMBOL drivers/media/dvb/dvb-core/dvb-core 0xfb01e168 dvb_unregister_frontend
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x0361a3b1 dvb_usb_device_exit
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x330bd591 dvb_usb_device_init
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x33a421d7 dvb_usb_generic_rw
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x4634f703 dvb_usb_generic_write
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0x740dda56 dvb_usb_nec_rc_key_to_event
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xf2652cf9 usb_cypress_load_firmware
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb 0xfd5c02bf dvb_usb_get_hexline
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x116be8b8 ir_codes_af9005_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0x16a05255 af9005_rc_decode
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-af9005-remote 0xcc891f6b ir_codes_af9005_table_size
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x4b418394 dibusb2_0_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x631bf47e dibusb_dib3000mc_frontend_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x88146b28 dibusb_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0x9b8a8e0a dibusb_read_eeprom_byte
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa69cad16 dibusb_dib3000mc_tuner_attach
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xa7751197 dibusb_rc_query
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xad24039b dibusb_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xae89f14e dibusb_streaming_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xb6fcf6b8 ir_codes_dibusb_table
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xda2c7b29 dibusb2_0_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xf640ee6c dibusb_i2c_algo
+EXPORT_SYMBOL drivers/media/dvb/dvb-usb/dvb-usb-dibusb-common 0xfb8f3551 dibusb_power_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/af9013 0x564d3421 af9013_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/atbm8830 0x473a3bcb atbm8830_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/au8522 0xe7d7a405 au8522_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/bcm3510 0x453aa166 bcm3510_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22700 0xfbdccb94 cx22700_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx22702 0xac197d7f cx22702_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24110 0x10b66bc7 cx24110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x2c46d33b cx24113_agc_callback
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24113 0x51a4d2f2 cx24113_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24116 0x1d4136d1 cx24116_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x64421bdd cx24123_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/cx24123 0x805bb68c cx24123_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0x7b8209e8 dib0070_get_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xac1d4442 dib0070_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xc6077a3d dib0070_ctrl_agc_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xc7a00cfa dib0070_set_rf_output
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0070 0xe73b009f dib0070_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x3ee4d954 dib0090_register
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x49471e8c dib0090_dcc_freq
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0x8236d152 dib0090_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xb7e74392 dib0090_get_current_gain
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xc7c14f69 dib0090_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xda65c8a4 dib0090_gain_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xfb517ded dib0090_pwm_gain_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib0090 0xfc31140c dib0090_get_wbd_offset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mb 0x1ee3f3f9 dib3000mb_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x0ca82e0d dib3000mc_get_tuner_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x47d262b1 dib3000mc_pid_parse
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x5656771b dib3000mc_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x653f6702 dib3000mc_set_config
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x926ba87d dib3000mc_pid_control
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib3000mc 0x9a7002ed dib3000mc_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x8b738cc7 dib7000m_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000m 0x97b506c8 dib7000m_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x425a9e04 dib7000pc_detection
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x4734ead1 dib7000p_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0x9a315745 dib7000p_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xc6d7d4c3 dib7000p_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xccde6181 dib7000p_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xce0658ab dib7000p_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xd8c99118 dib7000p_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib7000p 0xec9597d9 dib7000p_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x1723589e dib8000_get_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x2111b798 dib8000_i2c_enumeration
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x27297672 dib8000_pwm_agc_reset
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x69886db5 dib8000_get_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x7d529192 dib8000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x8b5b4a85 dib8000_set_gpio
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0x97e6270b dib8000_pid_filter_ctrl
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa54d59ed dib8000_set_tune_state
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xa71208b8 dib8000_pid_filter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xbb799420 dib8000_set_wbd_ref
+EXPORT_SYMBOL drivers/media/dvb/frontends/dib8000 0xc14b0908 dib8000_get_adc_power
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x047dc493 dibx000_get_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x182c93f3 dibx000_init_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0x919422e0 dibx000_reset_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xad3ad91c systime
+EXPORT_SYMBOL drivers/media/dvb/frontends/dibx000_common 0xe20da577 dibx000_exit_i2c_master
+EXPORT_SYMBOL drivers/media/dvb/frontends/ds3000 0xca7cb0fc ds3000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/dvb-pll 0xdcb5fc62 dvb_pll_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6405 0x9ed97461 isl6405_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/isl6421 0xbce335fe isl6421_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/itd1000 0xdadda00a itd1000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/l64781 0x306eaf5b l64781_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt3305 0xb8cf5b9f lgdt3305_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgdt330x 0xf90b09f1 lgdt330x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lgs8gxx 0x44e3ba82 lgs8gxx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xc3c4779e lnbp21_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/lnbp21 0xd41d4a88 lnbh24_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mb86a16 0x6575e331 mb86a16_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt312 0x60a6f2b6 mt312_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/mt352 0x8e94b2f8 mt352_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt200x 0xf8f205f1 nxt200x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/nxt6000 0xca65dbab nxt6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51132 0x98847c13 or51132_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/or51211 0x7fe0fa28 or51211_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1409 0xc442c350 s5h1409_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1411 0xb523f580 s5h1411_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x453989b9 s5h1420_get_tuner_i2c_adapter
+EXPORT_SYMBOL drivers/media/dvb/frontends/s5h1420 0x46cc96c6 s5h1420_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/si21xx 0x603753b6 si21xx_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp8870 0x069fca12 sp8870_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/sp887x 0x3417a678 sp887x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb0899 0x24f5a30e stb0899_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6000 0xe4105b4c stb6000_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stb6100 0xe17f3d56 stb6100_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0288 0xbdf1e11c stv0288_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0297 0xac918ffa stv0297_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0299 0x0f71b4bc stv0299_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv0900 0xd20f9c32 stv0900_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv090x 0x63866e73 stv090x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110 0x158e1a6f stv6110_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/stv6110x 0xed130f4d stv6110x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10023 0x4af38b6e tda10023_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10048 0xe0d20465 tda10048_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x14454299 tda10046_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda1004x 0x7d546325 tda10045_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda10086 0xb070afdf tda10086_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda8083 0xd288c4e8 tda8083_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/tda826x 0x61af4b87 tda826x_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1820 0xfe8c9598 ves1820_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/ves1x93 0x1e7f6c66 ves1x93_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10036 0x31f2ce30 zl10036_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10039 0x0d933b85 zl10039_attach
+EXPORT_SYMBOL drivers/media/dvb/frontends/zl10353 0x4d5a7b5a zl10353_attach
+EXPORT_SYMBOL drivers/media/dvb/ttpci/ttpci-eeprom 0x4f3ca295 ttpci_eeprom_parse_mac
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xcd4e08e3 ttusbdecfe_dvbt_attach
+EXPORT_SYMBOL drivers/media/dvb/ttusb-dec/ttusbdecfe 0xe6890929 ttusbdecfe_dvbs_attach
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x8ecf4acc bttv_write_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0x9668e9e8 bttv_sub_register
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xa1498ec7 bttv_sub_unregister
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio
+EXPORT_SYMBOL drivers/media/video/bt8xx/bttv 0xc5b2224c bttv_get_pcidev
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x05138520 btcx_riscmem_free
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x495e4b0c btcx_calc_skips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0x6ce25916 btcx_riscmem_alloc
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xad2fe38b btcx_sort_clips
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xc368f8e6 btcx_align
+EXPORT_SYMBOL drivers/media/video/btcx-risc 0xcda0ded2 btcx_screen_clips
+EXPORT_SYMBOL drivers/media/video/cpia 0x1001b1e8 cpia_register_camera
+EXPORT_SYMBOL drivers/media/video/cpia 0x7dbb279d cpia_unregister_camera
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0x8b7e17cd cx18_release_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xbd7116df cx18_stop_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xe1907481 cx18_claim_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xe7fd0644 cx18_start_v4l2_encode_stream
+EXPORT_SYMBOL drivers/media/video/cx18/cx18 0xf35490ef cx18_ext_init
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x47007a8d cx231xx_register_extension
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x9f108c43 cx231xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0x9af5c2f0 vp3054_i2c_remove
+EXPORT_SYMBOL drivers/media/video/cx88/cx88-vp3054-i2c 0xabf742e3 vp3054_i2c_probe
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0x29f78937 cx88_get_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xa69f5211 cx88_set_freq
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xac4e53b9 cx88_user_ctrls
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xccb81d81 cx8800_ctrl_query
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xd3d616d2 cx88_video_mux
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xd6a29089 cx88_set_control
+EXPORT_SYMBOL drivers/media/video/cx88/cx8800 0xe3cf2cb0 cx88_enum_input
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x2adea225 cx8802_get_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x3e65ef62 cx8802_register_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x3eca985e cx8802_buf_queue
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x60b87751 cx8802_buf_prepare
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0x937b617d cx8802_unregister_driver
+EXPORT_SYMBOL drivers/media/video/cx88/cx8802 0xc68ad8d9 cx8802_cancel_buffers
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x03e79cee cx88_dsp_detect_stereo_sap
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x08aa0064 cx88_vdev_init
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x27aad219 cx88_ir_stop
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x2cab694a cx88_sram_channel_setup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x3f93fcc0 cx88_core_get
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x432e1d0d cx88_set_scale
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x44294b14 cx88_core_put
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x47c1841c cx88_free_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x67a48ba5 cx88_set_tvnorm
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x77f8e72b cx88_reset
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x8eb6045c cx88_get_stereo
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x904b8696 cx88_audio_thread
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9069eb6e cx88_newstation
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x966158db cx88_risc_stopper
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0x9b140fff cx88_sram_channels
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xa82c077c cx88_set_tvaudio
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xb47f6cda cx88_print_irqbits
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc0f2b7c7 cx88_shutdown
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xc148a3c3 cx88_set_stereo
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xccda23a3 cx88_risc_buffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xd1c419dc cx88_risc_databuffer
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xdbc5b8e9 cx88_core_irq
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe7328715 cx88_ir_start
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xe784d548 cx88_wakeup
+EXPORT_SYMBOL drivers/media/video/cx88/cx88xx 0xf6a18d26 cx88_sram_channel_dump
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x4b094b79 em28xx_register_extension
+EXPORT_SYMBOL drivers/media/video/em28xx/em28xx 0x549ce140 em28xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x0cc17c75 gspca_frame_add
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x63522da6 gspca_disconnect
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9679a751 gspca_auto_gain_n_exposure
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa446db20 gspca_suspend
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xbb6ff890 gspca_get_i_frame
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xbe443f16 gspca_dev_probe
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xf456b7d6 gspca_resume
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x0ac6f7e9 ivtv_vapi
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x14f67530 ivtv_debug
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x25f28349 ivtv_set_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x2e4b2668 ivtv_reset_ir_gpio
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x3de1c759 ivtv_udma_prepare
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x595c7cf2 ivtv_udma_alloc
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x622e6094 ivtv_api
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x82ba8b8a ivtv_udma_unmap
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0x87f9540b ivtv_clear_irq_mask
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xb48da1ad ivtv_vapi_result
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xc8a256f6 ivtv_init_on_first_open
+EXPORT_SYMBOL drivers/media/video/ivtv/ivtv 0xf6094e2c ivtv_udma_setup
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x00712818 saa7134_pgtable_alloc
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x117a0a81 saa7134_dmasound_init
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x12461b39 saa7134_set_gpio
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3d6977f7 saa_dsp_writel
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x4205bd49 saa7134_ts_register
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x6b10ca52 saa7134_tvaudio_setmute
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x6f106682 saa7134_set_dmabits
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xbe046d31 saa7134_pgtable_free
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xdf557a1f saa7134_devlist_lock
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe385594a saa7134_pgtable_build
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xe95afc8b saa7134_ts_unregister
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xfca88394 saa7134_dmasound_exit
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x618a1507 soc_camera_host_register
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xa5b91d47 soc_camera_apply_sensor_flags
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xc5b365e6 soc_camera_host_unregister
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xcaf92cd9 soc_camera_xlate_by_fourcc
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x84b0ed2c tveeprom_read
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x9d6c2233 tveeprom_hauppauge_analog
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x04401a3a RingQueue_WakeUpInterruptible
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x1a26ad15 RingQueue_Dequeue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x237bf8d5 usbvideo_register
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x2ca02137 usbvideo_AllocateDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0x92027187 usbvideo_Deregister
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xb6565216 usbvideo_TestPattern
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xd1b3d0ad usbvideo_RegisterVideoDevice
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xe63fb6e9 RingQueue_Enqueue
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xe8f8df20 usbvideo_DeinterlaceFrame
+EXPORT_SYMBOL drivers/media/video/usbvideo/usbvideo 0xfb3c39e0 RingQueue_Flush
+EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x2d65eeb6 v4l_compat_translate_ioctl
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0034b53e v4l2_chip_ident_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa660d286 v4l2_chip_match_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x0914435e v4l2_m2m_mmap
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x11e92a62 v4l2_m2m_job_finish
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xcdd78080 v4l2_m2m_get_vq
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xed521995 v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x2583f44b videobuf_dvb_alloc_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x592e27b8 videobuf_dvb_find_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x5d6c1ee3 videobuf_dvb_dealloc_frontends
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0x79b03c11 videobuf_dvb_register_bus
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xce84be65 videobuf_dvb_get_frontend
+EXPORT_SYMBOL drivers/media/video/videobuf-dvb 0xf0199f4d videobuf_dvb_unregister_bus
+EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period
+EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x20f44ebd video_unregister_device
+EXPORT_SYMBOL drivers/media/video/videodev 0x21b9eb4d video_device_release
+EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x4abeb30a video_register_device_no_warn
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl
+EXPORT_SYMBOL drivers/media/video/videodev 0x65b3e720 video_ioctl2
+EXPORT_SYMBOL drivers/media/video/videodev 0x6c44bf80 video_register_device
+EXPORT_SYMBOL drivers/media/video/videodev 0x7610ff91 video_device_release_empty
+EXPORT_SYMBOL drivers/media/video/videodev 0x8b75de3f video_devdata
+EXPORT_SYMBOL drivers/media/video/videodev 0xbb585b3f video_usercopy
+EXPORT_SYMBOL drivers/media/video/videodev 0xd0e033c3 video_device_alloc
+EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct
+EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0add4c8c mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1301b801 mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x13db5b7e mpt_device_driver_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x14f79210 mpt_print_ioc_summary
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x170a118d mpt_alloc_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x17442a1c mpt_free_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x284fcdf5 mpt_config
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x325d3c7c mpt_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x38f7ef78 mpt_put_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5729521d mpt_send_handshake_request
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5b3a8cee mpt_attach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5c269f47 mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8ab48862 mpt_resume
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8fe80fc8 mpt_free_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9728ef61 mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb0ae1b70 mpt_findImVolumes
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb2fa3284 mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb39dd9b0 mpt_halt_firmware
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbde111c3 mpt_detach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xccd37695 mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd31ff1a4 mpt_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd36584bd mpt_get_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd59019e9 mpt_event_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd675c7d8 mptbase_sas_persist_operation
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe4d1dad6 mpt_HardResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe585c158 mpt_verify_adapter
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xef551c81 mpt_GetIocState
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf8ace77d mpt_reset_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf9cdd4b6 mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0ae7e8ef mptscsih_suspend
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x22c132d9 mptscsih_get_scsi_lookup
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2895c644 mptscsih_scandv_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2e573217 mptscsih_event_process
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x30d218a2 mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3d45772b mptscsih_raid_id_to_num
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x677a31ea mptscsih_remove
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6a6c2a0a mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6f08fb94 mptscsih_abort
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x72165554 mptscsih_io_done
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7be6f1f4 mptscsih_bios_param
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7c5f298f mptscsih_proc_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7e363bb6 mptscsih_shutdown
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x827c13e9 mptscsih_dev_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8af8e3ad mptscsih_slave_configure
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8b2b085c mptscsih_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8ba4d45d mptscsih_taskmgmt_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc3622e1d mptscsih_bus_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc5cb8f19 mptscsih_resume
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc77bd53f mptscsih_qcmd
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc92135be mptscsih_is_phys_disk
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdeb0d3d5 mptscsih_host_attrs
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe105b136 mptscsih_host_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf3a7e04c mptscsih_slave_destroy
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfc37633b mptscsih_change_queue_depth
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xff5b8fca mptscsih_ioc_reset
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x06b9252a i2o_driver_notify_controller_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x17102c43 i2o_device_claim
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x175c4378 i2o_driver_notify_controller_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2bedc7fa i2o_msg_get_wait
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x38eeb48c i2o_exec_lct_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3de63baf i2o_driver_notify_device_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x428d5a41 i2o_driver_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4291ad0e i2o_msg_post_wait_mem
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4ff38f65 i2o_status_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x7e510a42 i2o_cntxt_list_add
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x85b756e6 i2o_cntxt_list_get_ptr
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x87e74bdd i2o_iop_find_device
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x927123ed i2o_event_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa0d12bfb i2o_driver_notify_device_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xaa8587ae i2o_cntxt_list_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbae6ffef i2o_parm_table_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc57f3c86 i2o_cntxt_list_remove
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd8edb093 i2o_parm_issue
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xda1b9129 i2o_parm_field_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdf3c0eaf i2o_find_iop
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe7630d36 i2o_driver_unregister
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xfbf0016f i2o_device_claim_release
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x2c8a1433 pasic3_read_register
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x7210ba4b pasic3_write_register
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x0311889b mc13783_lock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x1de6fe57 mc13783_reg_write
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x23e138cc mc13783_irq_free
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x246f5032 mc13783_irq_request_nounmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x3804f202 mc13783_irq_ack
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x4290ccb1 mc13783_unlock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x449757c6 mc13783_irq_status
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x648880fa mc13783_irq_request
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x661fdbee mc13783_reg_read
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xc42f079a mc13783_irq_mask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xd3e76c3e mc13783_irq_unmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe71e9570 mc13783_reg_rmw
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xabe15a17 ad_dpot_remove
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xf8c640d3 ad_dpot_probe
+EXPORT_SYMBOL drivers/misc/c2port/core 0x1dc80e59 c2port_device_unregister
+EXPORT_SYMBOL drivers/misc/c2port/core 0xb0533b96 c2port_device_register
+EXPORT_SYMBOL drivers/misc/ioc4 0xb434676d ioc4_register_submodule
+EXPORT_SYMBOL drivers/misc/ioc4 0xbee8a4d9 ioc4_unregister_submodule
+EXPORT_SYMBOL drivers/misc/tifm_core 0x0a85232e tifm_remove_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x2f09fe8e tifm_alloc_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x2f2645a9 tifm_map_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x3cf83bfe tifm_register_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x87ab180b tifm_alloc_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x8d847737 tifm_free_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0xa2876747 tifm_eject
+EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work
+EXPORT_SYMBOL drivers/misc/tifm_core 0xa8d3be29 tifm_unmap_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0xb14c8964 tifm_add_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xd3c8f250 tifm_free_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xf957a596 tifm_unregister_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0xfaa76d10 tifm_has_ms_pif
+EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x6b7d1544 mmc_cleanup_queue
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0d25d5be mmc_wait_for_app_cmd
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0f499d7b mmc_free_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x17999290 mmc_host_lazy_disable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x184b82fb mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x2837d171 mmc_register_driver
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x351da3f3 mmc_request_done
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x4ce7eeaa mmc_try_claim_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x4e8fd9d5 __mmc_claim_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x56df5a59 mmc_regulator_set_ocr
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x575e97c1 mmc_release_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x60d40e11 mmc_power_restore_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x68361489 mmc_detect_change
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x71140ad8 mmc_set_data_timeout
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x7496a9a1 mmc_remove_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x755f23da mmc_card_awake
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x7bdcf7da mmc_card_can_sleep
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9081bc9c mmc_host_disable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa28073b9 mmc_resume_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa97a2600 mmc_wait_for_cmd
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb8784899 mmc_align_data_size
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xbd9971fc mmc_power_save_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc55afe2c mmc_card_sleep
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd040f58b mmc_unregister_driver
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xd71183a4 mmc_wait_for_req
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xe76ace9a mmc_host_enable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xef8df58d mmc_suspend_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf0f4b7f4 mmc_add_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf494f618 mmc_regulator_get_ocrmask
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xfc67e7c7 mmc_alloc_host
+EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x2ac995ae mmc_spi_put_pdata
+EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x5c339bd4 mmc_spi_get_pdata
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x49677318 cfi_fixup
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7c7922ba cfi_read_pri
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xd446b669 cfi_varsize_frob
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x60af3ddd map_destroy
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x8a4b080a unregister_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xb585f0ab register_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xe34fbe81 do_map_probe
+EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x11b8586f mtd_do_chip_probe
+EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x1395dae8 lpddr_cmdset
+EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xcd4fec4f simple_map_init
+EXPORT_SYMBOL drivers/mtd/mtd 0xe0eed27f add_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtd 0xeae642d6 del_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x8b7cc4cd mtd_concat_create
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x8eb62ef7 mtd_concat_destroy
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x50d83057 nand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand 0xf0e20246 nand_default_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x2f536496 nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x508d8ee7 nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x0c9578b6 onenand_addr
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x29589eec onenand_default_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x8a84045c onenand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x8c443777 flexonenand_region
+EXPORT_SYMBOL drivers/net/8390 0x05f219fa ei_get_stats
+EXPORT_SYMBOL drivers/net/8390 0x69d65f73 __alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/8390 0x7576372d ei_poll
+EXPORT_SYMBOL drivers/net/8390 0x7773c6c1 ei_open
+EXPORT_SYMBOL drivers/net/8390 0x79f9ffa5 ei_start_xmit
+EXPORT_SYMBOL drivers/net/8390 0x8ea57a42 ei_netdev_ops
+EXPORT_SYMBOL drivers/net/8390 0xc46294e2 ei_tx_timeout
+EXPORT_SYMBOL drivers/net/8390 0xceb63e35 NS8390_init
+EXPORT_SYMBOL drivers/net/8390 0xcf61f581 ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt
+EXPORT_SYMBOL drivers/net/8390 0xde39b2a1 ei_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x23f86078 arcnet_interrupt
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x26bce710 arc_proto_map
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4247e9f1 arcnet_send_packet
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x72d6db55 alloc_arcdev
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x7cb5dbe8 arcnet_open
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x89e36f59 arc_bcast_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa797344e arcnet_unregister_proto
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe1e493d4 arcnet_close
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe3e31bd0 arcnet_timeout
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe53ab11a arc_proto_default
+EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xed05f7f0 arc_raw_proto
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x2294550e com20020_check
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x710b4a25 com20020_netdev_ops
+EXPORT_SYMBOL drivers/net/arcnet/com20020 0x8eefc17d com20020_found
+EXPORT_SYMBOL drivers/net/bnx2 0x328d45db bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/bnx2x 0x27a42cb1 bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/cnic 0xfe4aa15f cnic_register_driver
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x1d29d2f2 cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x32fb6e6d cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x3717040f cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x42ff8673 dev2t3cdev
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x69033231 t3_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8bc55a82 t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x916da511 cxgb3_register_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x93a74763 t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9a40faaa cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9bee636c cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xaad4f787 cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb0685122 t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb1512c9f cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xba9d7ec1 t3_l2e_free
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xca20d259 cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xe97d11f0 cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x01bcfeaf cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x0daf63cf cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x22f52a66 cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x24a8fdc6 cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5c350345 cxgb4_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x65078084 cxgb4_netdev_by_hwid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6a6a21c4 cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x6d3fad68 cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x74174ccf cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x86956310 cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8deb5ebc cxgb4_create_server6
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x92ff3407 cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x991d827b cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa5d5384c cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa6979383 cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xaaec69a7 cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xad4c30dc cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xdb9610b0 cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xdcb5164d cxgb4_create_server
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf6bae4cc cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x01708624 hdlcdrv_receiver
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x268d251f hdlcdrv_arbitrate
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x4c7d56a2 hdlcdrv_unregister
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x68cf903c hdlcdrv_transmitter
+EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb232fa7b hdlcdrv_register
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x021494f3 sirdev_set_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0ea4ca84 irda_unregister_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x21c4b8a5 sirdev_receive
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x41f53daf sirdev_raw_read
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x490560df sirdev_get_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x632a865d irda_register_dongle
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x68eaba6f sirdev_set_dtr_rts
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0x824eec9a sirdev_put_instance
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd5e3c65c sirdev_write_complete
+EXPORT_SYMBOL drivers/net/irda/sir-dev 0xd9d1edc0 sirdev_raw_write
+EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage
+EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl
+EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart
+EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag
+EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe
+EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an
+EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok
+EXPORT_SYMBOL drivers/net/mii 0x06e80779 mii_check_media
+EXPORT_SYMBOL drivers/net/mii 0x0ddeaab9 mii_link_ok
+EXPORT_SYMBOL drivers/net/mii 0x15a28210 mii_nway_restart
+EXPORT_SYMBOL drivers/net/mii 0x1c3c1b6f generic_mii_ioctl
+EXPORT_SYMBOL drivers/net/mii 0x51407116 mii_ethtool_sset
+EXPORT_SYMBOL drivers/net/mii 0x5b951c74 mii_ethtool_gset
+EXPORT_SYMBOL drivers/net/mii 0x91080265 mii_check_link
+EXPORT_SYMBOL drivers/net/mii 0xa59f5fb7 mii_check_gmii_support
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x017dc4fe free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xe969e88a alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp_generic 0x09e7cab9 ppp_register_compressor
+EXPORT_SYMBOL drivers/net/ppp_generic 0x3090ee57 ppp_unregister_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0x4058d7d2 ppp_output_wakeup
+EXPORT_SYMBOL drivers/net/ppp_generic 0x47fb165b ppp_channel_index
+EXPORT_SYMBOL drivers/net/ppp_generic 0x65845e3a ppp_register_net_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0x673838e1 ppp_register_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0x90f69704 ppp_unit_number
+EXPORT_SYMBOL drivers/net/ppp_generic 0xaef32238 ppp_input
+EXPORT_SYMBOL drivers/net/ppp_generic 0xb1c9b437 ppp_input_error
+EXPORT_SYMBOL drivers/net/ppp_generic 0xb5a28421 ppp_dev_name
+EXPORT_SYMBOL drivers/net/ppp_generic 0xcc72fc76 ppp_unregister_compressor
+EXPORT_SYMBOL drivers/net/pppox 0x01d91dac pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/pppox 0x1eeff2da register_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0xe5aa624a pppox_ioctl
+EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember
+EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init
+EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free
+EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss
+EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress
+EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress
+EXPORT_SYMBOL drivers/net/sungem_phy 0x8d774809 mii_phy_probe
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0x7f4de6ef tmsdev_term
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xa3acc358 tms380tr_netdev_ops
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd2328794 tms380tr_wait
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xd49af46e tms380tr_interrupt
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xf23eda64 tmsdev_init
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xf27fee32 tms380tr_open
+EXPORT_SYMBOL drivers/net/tokenring/tms380tr 0xfa081d2f tms380tr_close
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x38da4725 cycx_intr
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x62be23ea cycx_setup
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x66a4c4e6 cycx_down
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0x968458a6 cycx_peek
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xb6f383de cycx_poke
+EXPORT_SYMBOL drivers/net/wan/cycx_drv 0xfe7cd576 cycx_exec
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x0126d1c9 hdlc_start_xmit
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x03063ab5 detach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x05e3ad9a unregister_hdlc_device
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x4a10c5fa attach_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x6dab1675 register_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x6dcefbc7 hdlc_close
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x76609f4a unregister_hdlc_protocol
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x8110b563 hdlc_change_mtu
+EXPORT_SYMBOL drivers/net/wan/hdlc 0x83492da4 hdlc_ioctl
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xb097b6f2 hdlc_open
+EXPORT_SYMBOL drivers/net/wan/hdlc 0xce6c926d alloc_hdlcdev
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x68ab6d44 i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x0b6fcb1b init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x12eebff8 reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x7ea07a8e stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x049ebd11 ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x305ce555 ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x849c774e ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa641498c ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x33952c5e ath9k_cmn_rx_skb_preprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3eab8a0b ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x49ca04e6 ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x4b9dfb44 ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x9b81cf77 ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd8bcb5bc ath9k_cmn_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe588d4fd ath9k_cmn_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x073a5129 ath9k_hw_set_keycache_entry
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09b95464 ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c8c532b ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1031b83f ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x11ba9114 ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b64d6aa ath9k_hw_keyisvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1b89f1a3 ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e627365 ath9k_hw_setcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x201317be ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2368d9d3 ath9k_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2474e719 ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2625e9b0 ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d7431d3 ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2fd317c8 ath9k_hw_stoppcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3364a7d9 ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38567f98 ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38dd8e92 ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3af876a3 ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3dbe4d59 ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40b5fd9b ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x42212de3 ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x43e75eb4 ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4775840b ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d068a0e ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x507a7a00 ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51e8eb33 ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x542411ef ath9k_hw_stoptxdma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x59c75440 ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b5389aa ath9k_hw_cleartxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5cb11539 ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66a55b83 ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ea3a607 ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x700082bd ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72aa5295 ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7403c7c3 ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77c6e442 ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ce75036 ath9k_hw_setmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x833162db ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x844befa3 ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x84a30fad ath9k_hw_extend_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85419079 ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8bd4be8a ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x963c5698 ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98204c6a ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x99ece5ca ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9c91295e ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9db6546b ath9k_hw_procmibevent
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f85d313 ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa4810f77 ath9k_hw_getcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7902163 ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa7dac0ce ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac3a3357 ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac6b1174 ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad3fd049 ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2d2a3e4 ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb614723a ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb63474bb ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb71624ef ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb81fe231 ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb905c193 ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbaf4894b ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc134f76f ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc49b01b1 ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc511cef6 ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc61c6743 ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc9bc405d ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xccc62a59 ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcea0a463 ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd0cc71ea ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdbd3b8e3 ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xddf0eb7b ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe16b1603 ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6152043 ath9k_hw_keysetmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe72fbb3e ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe930aeca ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xee939a46 ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xefd29402 ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf66f2bc8 ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9dda7c3 ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa1d02b0 ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfbb7e36a ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfdea7ce5 ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x551ea217 init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x61f40a95 atmel_open
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x70eea033 stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x03b1a9ea hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0f4bf6fd hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x116e1574 hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1e995a1d hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2ffd40a8 hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x35b2d90e hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3c7f3c6d hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4fb2a3ff hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x538f0909 hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x58f03b48 hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x60d6d5b5 hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x73f6fd41 hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7c5506cc hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8c35997c hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8d752382 hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9b25d441 hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9f24c60d hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9f3eb7d4 hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa2e4bf2a hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa7ebad88 hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb03b0a26 prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb515b8d9 hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd580b3f9 hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfbc0f9af hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfe483441 hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0016d54d libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x14d476b4 alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x23874c2d free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2859746a libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2c97a60c libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x37aca84e libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3e436816 libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4026e223 libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4a6cdc68 libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5ea3be91 libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x766f8585 libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x814db9ff libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8d7117c7 libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9096158c libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9976db61 libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd53adba4 libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd5dcb35c libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe45f3906 libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xef51be12 libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf4548fba libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfceb8dbc libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x00850830 iwlcore_eeprom_verify_signature
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x05f2a62e iwl_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0679437d iwl_reply_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x07e52d21 iwl_tt_enter_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x07f6b3a8 iwl_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x08a50d4d iwl_set_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x09f19e15 iwl_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x09fa5daa iwl_setup_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0b0145fe iwl_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0b6f67c2 iwl_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0c10b820 iwl_reset_run_time_calib
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e7c9c57 iwl_bg_start_internal_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0fdaec66 iwl_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x16126612 iwl_init_sensitivity
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19801c83 iwl_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19be3c89 iwl_led_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1a7a61b8 iwl_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1ec72cfd iwlcore_eeprom_acquire_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1fc39733 iwl_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2853f899 iwl_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x30203601 iwl_remove_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x31743fea iwl_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x31fe5cbf iwl_chain_noise_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x34d6ff15 iwl_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x355a6b94 iwl_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x373c5194 iwl_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x387f655a iwl_force_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x38cab3c2 iwl_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x38ce90df iwl_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x41dc7efb iwl_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x43ca8963 iwl_tt_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4737a8cd iwl_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x47ad5973 iwl_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x48cce1c7 iwl_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4acab619 iwl_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4dde2e94 iwl_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x540de437 iwl_free_tfds_in_queue
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58af9b84 iwl_sta_rx_agg_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5a94ae12 iwl_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5ac45d52 iwl_hw_detect
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5d28f903 iwlcore_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5e835a2d iwl_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x63c305b3 iwl_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x67181fea iwl_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x682f24df iwlcore_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6aabf073 iwl_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6bbb356d iwl_calib_free_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6fc0c1f5 iwl_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x70449040 iwl_leds_background
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71637d80 iwl_mac_beacon_update
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71db00d0 iwl_bg_abort_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x73573125 iwl_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x745c22f5 iwl_rf_kill_ct_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x74c83a2b iwl_rate_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x74ddbb80 iwl_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x757c46e7 iwl_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78724086 iwl_recover_from_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7be734a1 iwl_add_bssid_station
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7de06dfc iwl_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7f665b17 iwl_rx_missed_beacon_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7fce495a iwl_dump_fh
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7ff6e713 iwlcore_eeprom_release_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x80322587 iwl_pci_resume
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8091f344 iwl_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x86570391 iwl_sta_rx_agg_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89235a42 iwl_eeprom_get_mac
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8930ebd9 iwl_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89763335 iwl_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x89a2ceb0 iwl_free_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8c67b617 iwl_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8dba1723 iwl_ht_enabled
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x940c51aa iwlcore_rts_tx_cmd_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x961cf0b1 iwl_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9834c7a7 iwl_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x98ab42d3 iwl_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9c970d8e iwl_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9e29b48c iwl_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9faced57 iwl_calib_set
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa8418565 iwl_remove_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xac968a5f iwl_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb684409c iwl_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb86a0fa3 iwl_bg_scan_completed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbdfdc7bf iwl_send_calib_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbff0f3c2 iwl_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc07f93b5 iwl_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc0dfe668 iwl_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc2626978 iwl_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc2c3869d iwlcore_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc71a4e6b iwl_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca704ed8 iwl_set_rxon_chain
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcac61bca iwl_sta_modify_sleep_tx_count
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbc0fafa iwl_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcc07f3b6 iwl_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcccfe18b iwl_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcdd1aa18 iwl_rx_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf23652c iwl_update_tkip_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd23fb369 iwl_pci_suspend
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd50b6814 iwl_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd6266bb4 iwl_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd7130de5 iwl_set_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd76b3284 iwl_tt_exit_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdbd456c9 iwl_good_plcp_health
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdd17e378 iwl_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xddcb3119 iwl_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xddd1885b iwl_verify_ucode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde9a47fc iwl_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdfcc66c3 iwl_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe44c59c0 iwl_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe55b01d5 iwl_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe594f532 iwl_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe5ad8c05 iwl_toggle_tx_ant
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67257a2 iwl_bg_scan_check
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe69a5090 iwl_sta_tx_modify_enable_tid
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe6a70889 iwlcore_eeprom_enhanced_txpower
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe80ce109 iwl_set_hw_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe93c7013 iwl_dump_csr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xebb3d477 iwl_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xebda3c92 iwl_tt_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xed11407c iwl_sensitivity_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xefe2b533 iwl_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf4173a53 iwl_eeprom_check_version
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf4e1d84f iwl_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf6280a7e iwl_tt_handler
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf66b8fb2 iwl_tx_ant_restriction
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf873d233 iwl_sta_modify_ps_wake
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf8e4ba1b iwl_configure_filter
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf92202af iwl_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfaa68176 iwl_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfb4ebf98 iwl_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfe242d92 iwl_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfff37136 iwl_restore_default_wep_keys
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0574032c orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x08a70c11 hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0fff0c33 orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x35808067 __orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x4a41ac6e alloc_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x54df1cc3 free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5f94413a orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x601e9bb2 orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x63ce3fbf orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x78bb02e9 orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x829fef89 orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8aa923c1 orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9ad56232 orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa96fdd8e __orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd9a119ae orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf22fe1f5 orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf97f3745 orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/parport/parport 0x02a98062 parport_release
+EXPORT_SYMBOL drivers/parport/parport 0x03cb3ba8 parport_claim
+EXPORT_SYMBOL drivers/parport/parport 0x0660e266 parport_ieee1284_read_byte
+EXPORT_SYMBOL drivers/parport/parport 0x0bba5c87 parport_get_port
+EXPORT_SYMBOL drivers/parport/parport 0x18b0b132 parport_ieee1284_write_compat
+EXPORT_SYMBOL drivers/parport/parport 0x2ebf7c21 parport_register_device
+EXPORT_SYMBOL drivers/parport/parport 0x2f0f965d parport_read
+EXPORT_SYMBOL drivers/parport/parport 0x3036cc2d parport_find_base
+EXPORT_SYMBOL drivers/parport/parport 0x371c1f17 parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt
+EXPORT_SYMBOL drivers/parport/parport 0x5438ed7d parport_find_number
+EXPORT_SYMBOL drivers/parport/parport 0x6d57d0b3 parport_wait_peripheral
+EXPORT_SYMBOL drivers/parport/parport 0x6dd15286 parport_claim_or_block
+EXPORT_SYMBOL drivers/parport/parport 0x86473f74 parport_put_port
+EXPORT_SYMBOL drivers/parport/parport 0x88e69f26 parport_negotiate
+EXPORT_SYMBOL drivers/parport/parport 0x8a920f34 parport_unregister_driver
+EXPORT_SYMBOL drivers/parport/parport 0x91bb230a parport_ieee1284_read_nibble
+EXPORT_SYMBOL drivers/parport/parport 0x94bd407a parport_ieee1284_epp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler
+EXPORT_SYMBOL drivers/parport/parport 0xadfc1f93 parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0xc7806789 parport_remove_port
+EXPORT_SYMBOL drivers/parport/parport 0xcb09ff77 parport_announce_port
+EXPORT_SYMBOL drivers/parport/parport 0xcc1ac84f parport_unregister_device
+EXPORT_SYMBOL drivers/parport/parport 0xcf16d043 parport_register_driver
+EXPORT_SYMBOL drivers/parport/parport 0xcf3b3fb4 parport_ieee1284_epp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0xd3aa00a5 parport_set_timeout
+EXPORT_SYMBOL drivers/parport/parport 0xd56141e3 parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0xd69e40ed parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL drivers/parport/parport 0xebe36a39 parport_wait_event
+EXPORT_SYMBOL drivers/parport/parport 0xec201e0a parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0xf1349200 parport_register_port
+EXPORT_SYMBOL drivers/parport/parport 0xf6368f03 parport_write
+EXPORT_SYMBOL drivers/parport/parport_pc 0x624562e6 parport_pc_unregister_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0x63c38b13 parport_pc_probe_port
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x02b01b6f pcmcia_get_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1d6f9de7 pcmcia_register_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x23af8ca0 pcmcia_unregister_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x24810d55 pcmcia_get_mac_from_cis
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x343a399f pcmcia_access_configuration_register
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3c287237 pcmcia_disable_device
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x40579a74 pcmcia_request_io
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x654dacc3 __pcmcia_request_exclusive_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x70d6f0b3 pcmcia_release_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x78cfb442 pcmcia_request_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7cf33de5 pcmcia_loop_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8c965b6f pcmcia_modify_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9363f0e3 pcmcia_map_mem_page
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb242a301 pcmcia_request_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc8a915ab pcmcia_dev_present
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd962910b pcmcia_request_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe2e47eeb pcmcia_loop_config
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0b74e06b pcmcia_unregister_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1d45d52e pcmcia_reset_card
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x32400757 pcmcia_socket_list_rwsem
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x554ff810 pcmcia_put_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x574d88e5 pcmcia_get_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x695213a0 pccard_register_pcmcia
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9b443632 pcmcia_parse_events
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9d7b36cf pcmcia_register_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xd87ae562 pcmcia_socket_class
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdebf5f73 pcmcia_get_socket_by_nr
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xe896d972 pcmcia_parse_uevents
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x02ddec76 pccard_static_ops
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x6e5ef1d5 pccard_nonstatic_ops
+EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xaac8e458 pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5f73021e fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8ca79844 fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9831c0d4 fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa4cbc321 fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa9008c00 fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xae7ef427 fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xfdf5af6b fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x017bcf84 fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1232ebc5 fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x14a3cca6 fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x243ecab2 fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x27eeddd6 fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x28aebe07 fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x31dca7c9 fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3396d51b fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x426bf2f2 fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x47f35818 fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x49878c6e fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x57321d73 fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5c58e0b5 fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x641e6ac7 fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6952b2c8 fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6e18b2ec fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f4f6b15 fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x702f7bc8 fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x72ff7242 libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x78f420eb fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x808387b4 fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x854c1ee0 fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8d480890 fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8e28c55f fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a94be16 fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa3bc6603 fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa4f7c8e2 fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa8c1f675 fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xab02aa0c fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb3d383b3 fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb837e0e8 fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbf6c18f7 _fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc2d49e75 fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc60dcac5 fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc8da4cf2 fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd09a4d72 fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd5bcb0e8 fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe913cb8d fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeec46bd6 fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf0bcdf00 fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf2b9c3df fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf90efaf3 fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xbd0fed38 mraid_mm_register_adp
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0ae66f60 osd_req_flush_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0bce4b1b osd_req_set_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x29fc1139 osd_req_remove_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2ac6724d osd_req_list_partition_collections
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3d8a439b osd_req_flush_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4b3a48e6 osd_req_create_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4bb35b61 osd_req_add_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x509d1b8b osd_req_decode_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x523fb685 osd_execute_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x57fe491e osd_req_flush_obsd
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x58b088c0 osd_dev_init
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x60daf303 osd_auto_detect_ver
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x634c9b93 osd_req_list_partition_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x68f69c73 osd_req_list_dev_partitions
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6b0fc9d0 osd_finalize_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6e9f7019 osd_end_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6f077cc8 osd_req_flush_collection
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x861a49c9 osd_req_add_set_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x91876909 osd_req_get_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9738c6c3 osd_req_read
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9f480b48 osd_req_write
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa03af232 osd_req_create_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa3855e24 osd_req_remove_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaabd5c09 osd_dev_fini
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb0825814 osd_start_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb2c3fe04 osd_req_decode_sense_full
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc0b9c780 osd_req_add_get_attr_page
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc26b5537 osd_req_list_collection_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcb278ea2 osd_req_read_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd048598c osd_execute_request_async
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe3a2a371 osd_req_write_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe81a6123 osd_req_format
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x42972829 osduld_device_info
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x640d425a osduld_register_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x9358b57a osduld_put_device
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x9359cc16 osduld_info_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xbe8a4a89 osduld_device_same
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xeffee5b6 osduld_path_lookup
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x19284103 qlogicfas408_queuecommand
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3d750e34 qlogicfas408_biosparam
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x4b6ea4f5 qlogicfas408_info
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x5409d79d qlogicfas408_abort
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x918c30e4 qlogicfas408_bus_reset
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xaa38a891 qlogicfas408_disable_ints
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup
+EXPORT_SYMBOL drivers/scsi/raid_class 0x62b8c7a7 raid_component_add
+EXPORT_SYMBOL drivers/scsi/raid_class 0x637d3b20 raid_class_release
+EXPORT_SYMBOL drivers/scsi/raid_class 0xc7d499eb raid_class_attach
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x00830ec7 fc_host_post_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x21c2be36 fc_host_post_vendor_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2555ef6d scsi_is_fc_vport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2dce6596 fc_remote_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4c41e0ce fc_vport_create
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4c572465 fc_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4d21eaa2 fc_block_scsi_eh
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x565bfacd fc_remote_port_rolechg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x67b3da0c scsi_is_fc_rport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6e0e6d4b fc_remote_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9aa2709f fc_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf43ff9d6 fc_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf79b53d4 fc_vport_terminate
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x03088f4c scsi_is_sas_port
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0aeb790c sas_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0e9e2a78 sas_port_add_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1d8a1a73 sas_port_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1dfa9cb5 sas_expander_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x246fe562 sas_phy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x290c401a sas_remove_children
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2d9beca3 sas_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2e798f2a sas_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3ee343c8 sas_phy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x43e32c3e sas_rphy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x532dbfe1 sas_port_mark_backlink
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x726468ba sas_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x72a47ff5 sas_rphy_remove
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9ae674ea scsi_is_sas_rphy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb74cc603 sas_phy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc25a45e6 sas_port_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc5365834 sas_port_alloc_num
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc625b9a4 sas_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdb8ebbb5 sas_rphy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe0b83a66 sas_phy_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe296eb61 sas_end_device_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xec1fa842 sas_read_port_mode_page
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf64f4537 sas_rphy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfcdc34d7 sas_port_delete_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfd7cd563 scsi_is_sas_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x75b3ad8c spi_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x8f4ab538 spi_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xccbaf4e2 spi_schedule_dv_device
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xd42730fe spi_dv_device
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xee5d0a9c spi_display_xfer_agreement
+EXPORT_SYMBOL drivers/serial/8250 0x61e35d32 serial8250_register_port
+EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port
+EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port
+EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x195d9a94 uart_suspend_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x432f47d9 uart_add_one_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x586643e4 uart_update_timeout
+EXPORT_SYMBOL drivers/serial/serial_core 0x5fa9c30c uart_write_wakeup
+EXPORT_SYMBOL drivers/serial/serial_core 0x907fc47c uart_remove_one_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x954ba69c uart_match_port
+EXPORT_SYMBOL drivers/serial/serial_core 0x975150b3 uart_register_driver
+EXPORT_SYMBOL drivers/serial/serial_core 0xa88eb32d uart_get_divisor
+EXPORT_SYMBOL drivers/serial/serial_core 0xbf9d42e4 uart_resume_port
+EXPORT_SYMBOL drivers/serial/serial_core 0xeea2dcc4 uart_get_baud_rate
+EXPORT_SYMBOL drivers/serial/serial_core 0xf40be678 uart_unregister_driver
+EXPORT_SYMBOL drivers/ssb/ssb 0x07b19d07 ssb_pcihost_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x07bc3f39 ssb_device_is_enabled
+EXPORT_SYMBOL drivers/ssb/ssb 0x1c44458b ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL drivers/ssb/ssb 0x245ef647 __ssb_driver_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x33043f62 ssb_chipco_gpio_control
+EXPORT_SYMBOL drivers/ssb/ssb 0x366d36b9 ssb_dma_alloc_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0x4710150d ssb_dma_set_mask
+EXPORT_SYMBOL drivers/ssb/ssb 0x4b335d18 ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL drivers/ssb/ssb 0x667d1609 ssb_bus_may_powerdown
+EXPORT_SYMBOL drivers/ssb/ssb 0x6b2fe2ee ssb_device_disable
+EXPORT_SYMBOL drivers/ssb/ssb 0x6ba6f2ac ssb_bus_suspend
+EXPORT_SYMBOL drivers/ssb/ssb 0x72af08b3 ssb_device_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x7f4d5e7d ssb_driver_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0x81e8fc6e ssb_bus_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0x91db0555 ssb_bus_sdiobus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x9b20554f ssb_bus_pcibus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xb5611b63 ssb_bus_resume
+EXPORT_SYMBOL drivers/ssb/ssb 0xb95e04f0 ssb_dma_free_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0xbd7ae4e7 ssb_dma_translation
+EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base
+EXPORT_SYMBOL drivers/ssb/ssb 0xcbdfc23d ssb_set_devtypedata
+EXPORT_SYMBOL drivers/ssb/ssb 0xccf1797c ssb_bus_powerup
+EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size
+EXPORT_SYMBOL drivers/ssb/ssb 0xe7145177 ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0xf753469d ssb_clockspeed
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x007d116e SendDisassociation_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x07110a4c ieee80211_wx_get_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x076c0404 ieee80211_wx_set_mlme_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0acd9b49 ieee80211_wx_get_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0c39c8a4 ieee80211_send_probe_requests_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0f36f5d9 ieee80211_wx_get_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x15bcd500 ieee80211_stop_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x164a07ed ieee80211_start_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1963da4c ieee80211_rx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2cfdac89 HTUpdateSelfAndPeerSetting
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2e840541 ieee80211_wpa_supplicant_ioctl_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3073c665 ieee80211_softmac_start_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x34e525d3 ieee80211_stop_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x354c3bb4 ieee80211_wx_set_encode_ext_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x35501283 DOT11D_GetMaxTxPwrInDbm
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3bc8a03e ieee80211_wx_get_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3f412727 ieee80211_wx_get_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4136ebf0 ieee80211_wx_set_encode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4c443016 ieee80211_wx_get_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4ead7f04 ieee80211_wx_set_rawtx_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5ab78e77 ieee80211_rx_mgt_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x615468cd notify_wx_assoc_event_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6313d933 ToLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x64708105 Dot11d_Init
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6b015f85 ieee80211_txb_free_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c63900c ieee80211_stop_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6db2f7f1 ieee80211_wx_get_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x76afa741 DOT11D_ScanComplete
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7bae82bf ieee80211_softmac_scan_syncro_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8b209cb4 ieee80211_ps_tx_ack_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x902f9cd2 Dot11d_Reset
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9b024021 ieee80211_wx_get_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa79b033e Dot11d_UpdateCountryIe
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaae4b9ed ieee80211_is_54g_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xab5764a5 ieee80211_softmac_xmit_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xafd02b12 ieee80211_wx_set_power_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb3843ab0 ieee80211_wx_set_scan_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb7552acd ieee80211_reset_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb83e5af6 ieee80211_start_send_beacons_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbba3c525 ieee80211_wx_set_freq_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc97aab47 ieee80211_wx_set_auth_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xca959657 ieee80211_wx_set_gen_ie_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xce5eea00 ieee80211_get_beacon_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd01bf61b ieee80211_wx_set_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd1003898 ieee80211_wx_set_mode_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdc2d9c6e ieee80211_softmac_stop_protocol_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xde862753 ieee80211_is_shortslot_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe282db6b IsLegalChannel
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe4c99d28 ieee80211_wx_get_essid_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe7c00bfd ieee80211_disassociate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe8b7807b ieee80211_wake_queue_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeb0d5496 ieee80211_wx_set_wap_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xef84d38f ieee80211_wx_set_rts_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf0f6ff7f ieee80211_wx_set_rate_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf3137eb3 ieee80211_wx_get_name_rsl
+EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfed2588d ieee80211_wx_get_encode_rsl
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xae86cd9d tm6000_register_extension
+EXPORT_SYMBOL drivers/staging/tm6000/tm6000 0xdf5e3344 tm6000_unregister_extension
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0x37881ca8 XGI_malloc
+EXPORT_SYMBOL drivers/staging/xgifb/xgifb 0xb25b6234 XGI_free
+EXPORT_SYMBOL drivers/telephony/ixj 0x0ede35b2 ixj_pcmcia_probe
+EXPORT_SYMBOL drivers/telephony/phonedev 0xd0018212 phone_register_device
+EXPORT_SYMBOL drivers/telephony/phonedev 0xdb7c9ae1 phone_unregister_device
+EXPORT_SYMBOL drivers/usb/gadget/net2280 0x2522e92a usb_gadget_register_driver
+EXPORT_SYMBOL drivers/usb/gadget/net2280 0x8328e690 net2280_set_fifo_mode
+EXPORT_SYMBOL drivers/usb/gadget/net2280 0xb5fcf3e9 usb_gadget_unregister_driver
+EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xc6718aa7 sl811h_driver
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0897fb22 usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1d2c738c usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x69f092dc usb_wwan_suspend
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x717a7481 usb_wwan_resume
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x762d3b89 usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9b5a54ab usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb5e5da5b usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc54b7dcb usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd16c0a38 usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd37233a5 usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd3b851bc usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd42d5adf usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd5e67c90 usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe99565c6 usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x09fe2cb6 usb_serial_suspend
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x297947cf usb_serial_resume
+EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity
+EXPORT_SYMBOL drivers/video/backlight/lcd 0xc562673b lcd_device_register
+EXPORT_SYMBOL drivers/video/backlight/lcd 0xde0df8e3 lcd_device_unregister
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0x19d6e410 cyber2000fb_enable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xbc3fc3e7 cyber2000fb_attach
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xd02cb54e cyber2000fb_disable_extregs
+EXPORT_SYMBOL drivers/video/cyber2000fb 0xd316e7c4 cyber2000fb_get_fb_var
+EXPORT_SYMBOL drivers/video/display/display 0x1d9ac89b display_device_unregister
+EXPORT_SYMBOL drivers/video/display/display 0x8a3b6e6f display_device_register
+EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x92ffb5b5 mb862xxfb_init_accel
+EXPORT_SYMBOL drivers/video/output 0x6534c914 video_output_register
+EXPORT_SYMBOL drivers/video/output 0xae420bb2 video_output_unregister
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x3037658e sis_malloc
+EXPORT_SYMBOL drivers/video/sis/sisfb 0x454a3cf0 sis_free
+EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x09609909 svga_get_tilemax
+EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x37edf9ae svga_tileblit
+EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xa899038e svga_tilecopy
+EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xc8e3a3c3 svga_tilefill
+EXPORT_SYMBOL drivers/video/svgalib 0xce8e0ba9 svga_get_caps
+EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format
+EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll
+EXPORT_SYMBOL drivers/video/svgalib 0xfb2d8e9a svga_tilecursor
+EXPORT_SYMBOL drivers/video/svgalib 0xfc0e8c49 svga_settile
+EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga
+EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x12684097 w1_bq27000_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x917bd1df w1_bq27000_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x354a2d00 w1_ds2760_store_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x518dfd18 w1_ds2760_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x6646aa6f w1_ds2760_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x894ad2e0 w1_ds2760_recall_eeprom
+EXPORT_SYMBOL drivers/w1/wire 0x00065872 w1_register_family
+EXPORT_SYMBOL drivers/w1/wire 0x4200a513 w1_unregister_family
+EXPORT_SYMBOL drivers/w1/wire 0x425714f1 w1_remove_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xdd09ab72 w1_add_master_device
+EXPORT_SYMBOL fs/configfs/configfs 0x0401c108 configfs_depend_item
+EXPORT_SYMBOL fs/configfs/configfs 0x134fbf85 config_item_get
+EXPORT_SYMBOL fs/configfs/configfs 0x1646bf0e config_item_init
+EXPORT_SYMBOL fs/configfs/configfs 0x47129c4b config_item_set_name
+EXPORT_SYMBOL fs/configfs/configfs 0x90a8bab9 configfs_unregister_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xa6b65214 config_group_find_item
+EXPORT_SYMBOL fs/configfs/configfs 0xabc2e2ba config_item_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0xae037db0 configfs_undepend_item
+EXPORT_SYMBOL fs/configfs/configfs 0xb29f2391 config_item_put
+EXPORT_SYMBOL fs/configfs/configfs 0xc47e2ec5 config_group_init
+EXPORT_SYMBOL fs/configfs/configfs 0xcbd2b224 configfs_register_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xd9536452 config_group_init_type_name
+EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible
+EXPORT_SYMBOL fs/fscache/fscache 0x1df3da1e __fscache_attr_changed
+EXPORT_SYMBOL fs/fscache/fscache 0x2c1f0d39 fscache_add_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x38aa9cd8 fscache_fsdef_index
+EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit
+EXPORT_SYMBOL fs/fscache/fscache 0x4c0af40c __fscache_unregister_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x5d403fdd fscache_object_lookup_negative
+EXPORT_SYMBOL fs/fscache/fscache 0x72453d95 fscache_cache_cleared_wq
+EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id
+EXPORT_SYMBOL fs/fscache/fscache 0x78c61fe1 fscache_io_error
+EXPORT_SYMBOL fs/fscache/fscache 0x7a734557 fscache_obtained_object
+EXPORT_SYMBOL fs/fscache/fscache 0x7b4df453 fscache_withdraw_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states
+EXPORT_SYMBOL fs/fscache/fscache 0x91be360c __fscache_write_page
+EXPORT_SYMBOL fs/fscache/fscache 0x938d280b __fscache_read_or_alloc_pages
+EXPORT_SYMBOL fs/fscache/fscache 0x9db36bd9 fscache_put_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xaf959a37 __fscache_update_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xb45a5aab fscache_enqueue_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xb785d0e0 __fscache_acquire_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xbd1b2e32 fscache_object_slow_work_ops
+EXPORT_SYMBOL fs/fscache/fscache 0xc52043c7 __fscache_check_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0xcb6b5664 __fscache_register_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0xcf329375 fscache_mark_pages_cached
+EXPORT_SYMBOL fs/fscache/fscache 0xdcd5e72c fscache_init_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xdf244044 __fscache_maybe_release_page
+EXPORT_SYMBOL fs/fscache/fscache 0xe03302e3 __fscache_wait_on_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0xe334d2d7 __fscache_relinquish_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xe76e08f7 __fscache_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xf7b20d2f __fscache_read_or_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xf9af441f __fscache_uncache_page
+EXPORT_SYMBOL fs/fscache/fscache 0xfdc26a0a fscache_check_aux
+EXPORT_SYMBOL fs/nfsd/nfsd 0x0f3e6e01 nfs4_acl_nfsv4_to_posix
+EXPORT_SYMBOL fs/nfsd/nfsd 0x2095976a nfs4_acl_new
+EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who
+EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype
+EXPORT_SYMBOL fs/nfsd/nfsd 0x7ee78c79 nfs4_acl_posix_to_nfsv4
+EXPORT_SYMBOL fs/quota/quota_tree 0x3c716971 qtree_entry_unused
+EXPORT_SYMBOL fs/quota/quota_tree 0x8abc5640 qtree_write_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xa782c15e qtree_read_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xcce3388d qtree_delete_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xf3355e25 qtree_release_dquot
+EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt
+EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table
+EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t
+EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table
+EXPORT_SYMBOL lib/crc-t10dif 0x782acba5 crc_t10dif
+EXPORT_SYMBOL lib/crc7 0xc086bfba crc7
+EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table
+EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd
+EXPORT_SYMBOL net/802/p8023 0x37046fd6 make_8023_client
+EXPORT_SYMBOL net/802/p8023 0xc96ce30c destroy_8023_client
+EXPORT_SYMBOL net/9p/9pnet 0x01a026dc p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x0a1677d5 p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump
+EXPORT_SYMBOL net/9p/9pnet 0x17739c74 p9_client_auth
+EXPORT_SYMBOL net/9p/9pnet 0x22e89aaa p9_idpool_check
+EXPORT_SYMBOL net/9p/9pnet 0x2336bfa4 v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0x27f5f213 p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0x2db61611 p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x2f4267ab v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x40b94c55 p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x425ce365 p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0x4631697d p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0x5001233b p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x54d91862 p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x5bc8b06a p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0x69cfbbad p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x6b87e4a3 p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x6ea4e33c p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x779183de p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0x78a7d475 p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0x812117b7 p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0x9dda37f4 p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0xa086d8ae p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0xa21bebf5 p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0xabc4bef5 p9_client_version
+EXPORT_SYMBOL net/9p/9pnet 0xbd96259e p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0xda9540b5 v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xe64d87e2 p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0xe9086658 p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0xee5022c4 v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0xef2c1dde p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0xf7089bbb p9_client_attach
+EXPORT_SYMBOL net/appletalk/appletalk 0x7afdb775 aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0xae3c0aed alloc_ltalkdev
+EXPORT_SYMBOL net/appletalk/appletalk 0xafb60a6a atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0xc14f1889 atrtr_get_dev
+EXPORT_SYMBOL net/atm/atm 0x07753642 atm_charge
+EXPORT_SYMBOL net/atm/atm 0x0b5321fd vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x0b6e8adf register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x167bdb21 vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x2561f0c5 deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x27cf86a1 atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x4c172228 atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0x6b151a89 atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xa6c2e090 atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xc6307c84 atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0xc911e546 atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0xca87b453 vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal
+EXPORT_SYMBOL net/ax25/ax25 0x0993d9a4 ax25_linkfail_release
+EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy
+EXPORT_SYMBOL net/ax25/ax25 0x376101a1 ax25_listen_release
+EXPORT_SYMBOL net/ax25/ax25 0x3c3bc059 ax25_find_cb
+EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax
+EXPORT_SYMBOL net/ax25/ax25 0x49ab5314 ax25_findbyuid
+EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc
+EXPORT_SYMBOL net/ax25/ax25 0x64b33fa2 ax25_hard_header
+EXPORT_SYMBOL net/ax25/ax25 0x6bae9678 ax25_rebuild_header
+EXPORT_SYMBOL net/ax25/ax25 0x73f1dd21 ax25_display_timer
+EXPORT_SYMBOL net/ax25/ax25 0x88199aa7 ax25_listen_register
+EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release
+EXPORT_SYMBOL net/ax25/ax25 0x8fe4ee5c ax25_header_ops
+EXPORT_SYMBOL net/ax25/ax25 0xbdc90b37 ax25_send_frame
+EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp
+EXPORT_SYMBOL net/ax25/ax25 0xc471b791 ax25_linkfail_register
+EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x016318a0 bt_sock_ioctl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x0dab3c55 hci_conn_switch_role
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x19d5c01b hci_recv_frame
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1b8bae28 hci_register_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x1de793ff hci_free_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x20072f4a bt_sock_register
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2502dfb6 bt_accept_dequeue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x26ebacb7 hci_connect
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2d922601 hci_conn_put_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x2eaacebb bt_accept_enqueue
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x36a508b7 bt_sock_link
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x3d154322 hci_conn_check_link_mode
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x46b2ed14 hci_unregister_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b5a8b22 hci_send_sco
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x55f18da1 bt_sock_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x5cf5a5b8 hci_alloc_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x6d648dba hci_suspend_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x700b4df8 hci_register_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x7094f8ae bt_err
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x87425e20 hci_get_route
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x8a8803ac hci_conn_hold_device
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x91e67c82 bt_sock_wait_state
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x96691781 hci_recv_fragment
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x97be4a29 hci_unregister_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x98e0b4de hci_unregister_proto
+EXPORT_SYMBOL net/bluetooth/bluetooth 0x99e73030 hci_conn_change_link_key
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xa4a43b23 bt_sock_poll
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xac3cb8a9 hci_send_acl
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xaf1afa18 hci_conn_security
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2066af0 batostr
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xc5ddc357 hci_resume_dev
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xcdcf4b8b hci_register_cb
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf19294db bt_sock_unregister
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf9a4d587 bt_accept_unlink
+EXPORT_SYMBOL net/bluetooth/bluetooth 0xf9d2548d bt_sock_recvmsg
+EXPORT_SYMBOL net/bluetooth/l2cap 0xfc31fe88 l2cap_load
+EXPORT_SYMBOL net/bridge/bridge 0xc552d75a br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x68f1088e ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc4dd1db6 ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xccb0a950 ebt_register_table
+EXPORT_SYMBOL net/caif/caif 0x05d6001f cfpkt_add_trail
+EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client
+EXPORT_SYMBOL net/caif/caif 0x084890b4 cfpkt_more
+EXPORT_SYMBOL net/caif/caif 0x0cc493be cfpkt_pad_trail
+EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer
+EXPORT_SYMBOL net/caif/caif 0x1217f524 cfpkt_qpeek
+EXPORT_SYMBOL net/caif/caif 0x16dd9dd9 cfpkt_info
+EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x32c2cfeb cfpkt_add_body
+EXPORT_SYMBOL net/caif/caif 0x3b6d9e04 cfpkt_qcount
+EXPORT_SYMBOL net/caif/caif 0x4507cfcd cfpkt_append
+EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x4ab4f875 cfpkt_raw_append
+EXPORT_SYMBOL net/caif/caif 0x4b1f8785 cfpkt_peek_head
+EXPORT_SYMBOL net/caif/caif 0x54ff45d6 cfpkt_dequeue
+EXPORT_SYMBOL net/caif/caif 0x56676d06 cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create
+EXPORT_SYMBOL net/caif/caif 0x5bdcad17 cfpkt_create_uplink
+EXPORT_SYMBOL net/caif/caif 0x5be1f657 cfpkt_erroneous
+EXPORT_SYMBOL net/caif/caif 0x5be5b933 cfpkt_addbdy
+EXPORT_SYMBOL net/caif/caif 0x5c3e8e4b cfpkt_extr_head
+EXPORT_SYMBOL net/caif/caif 0x688502d6 cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x6fb28119 cfpkt_destroy
+EXPORT_SYMBOL net/caif/caif 0x71b01c40 cfpkt_add_head
+EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x76ef72e4 cfpkt_setlen
+EXPORT_SYMBOL net/caif/caif 0xa1db55e6 cfpkt_queue
+EXPORT_SYMBOL net/caif/caif 0xa39429ca cfpkt_create
+EXPORT_SYMBOL net/caif/caif 0xab000832 cfpkt_getlen
+EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xb19f749b cfpkt_clone_release
+EXPORT_SYMBOL net/caif/caif 0xb5b4ccfd cfpktq_create
+EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer
+EXPORT_SYMBOL net/caif/caif 0xe5cac5ce cfpkt_log_pkt
+EXPORT_SYMBOL net/caif/caif 0xe68642d0 cfpkt_extr_trail
+EXPORT_SYMBOL net/caif/caif 0xebd538b7 cfpkt_raw_extract
+EXPORT_SYMBOL net/caif/caif 0xf1cb7b14 cfpkt_iterate
+EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf
+EXPORT_SYMBOL net/caif/caif 0xf4a15a9a cfpkt_split
+EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer
+EXPORT_SYMBOL net/can/can 0x47d8918e can_rx_unregister
+EXPORT_SYMBOL net/can/can 0x6551bd2e can_send
+EXPORT_SYMBOL net/can/can 0x8a64050c can_proto_register
+EXPORT_SYMBOL net/can/can 0xbd64937f can_proto_unregister
+EXPORT_SYMBOL net/can/can 0xc6da3fcd can_rx_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x2e67bd22 ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x4ea2fb79 ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x5066bf37 wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x609a798b wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x6b1db4f2 ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x7969b69a wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x9dc6d07f wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xb167f100 ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xc3b83cda ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xda4a1e3a ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xe765562d ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xe9677fb3 wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xef64ae6c wpan_phy_for_each
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x458ecaaa arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xa1fe505f arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xb3a0013f arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x681d0ac5 ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x78029501 ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xc4de87b7 ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1e89971d nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x37a361c8 __nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x5c0c6fd3 nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x81625bde nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x8b3e5be9 nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa26144f9 nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xed61f39c nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/tunnel4 0x68543b14 xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv4/tunnel4 0x7a668846 xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv6/ipv6 0x00795d81 ndisc_send_skb
+EXPORT_SYMBOL net/ipv6/ipv6 0x0b0d888b icmpv6_err_convert
+EXPORT_SYMBOL net/ipv6/ipv6 0x1bf19325 xfrm6_input_addr
+EXPORT_SYMBOL net/ipv6/ipv6 0x1fa35161 in6_dev_finish_destroy
+EXPORT_SYMBOL net/ipv6/ipv6 0x230c7666 ndisc_mc_map
+EXPORT_SYMBOL net/ipv6/ipv6 0x23fd0601 ipv6_chk_addr
+EXPORT_SYMBOL net/ipv6/ipv6 0x2501a6f5 xfrm6_find_1stfragopt
+EXPORT_SYMBOL net/ipv6/ipv6 0x30081687 nf_ip6_checksum
+EXPORT_SYMBOL net/ipv6/ipv6 0x3c244b61 inet6_del_protocol
+EXPORT_SYMBOL net/ipv6/ipv6 0x439a717d inet6_ioctl
+EXPORT_SYMBOL net/ipv6/ipv6 0x47134e1c ipv6_dev_get_saddr
+EXPORT_SYMBOL net/ipv6/ipv6 0x494488df ipv6_getsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0x4dba709f xfrm6_rcv_spi
+EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier
+EXPORT_SYMBOL net/ipv6/ipv6 0x54459429 ip6_route_output
+EXPORT_SYMBOL net/ipv6/ipv6 0x5579c5fe rt6_lookup
+EXPORT_SYMBOL net/ipv6/ipv6 0x57c1bb54 inet6_bind
+EXPORT_SYMBOL net/ipv6/ipv6 0x58219f07 inet6_unregister_protosw
+EXPORT_SYMBOL net/ipv6/ipv6 0x62f99e20 ip6_frag_match
+EXPORT_SYMBOL net/ipv6/ipv6 0x6746d448 compat_ipv6_getsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0x6ed7ade6 inet6_release
+EXPORT_SYMBOL net/ipv6/ipv6 0x706867ea inet6_getname
+EXPORT_SYMBOL net/ipv6/ipv6 0x82840dc0 ndisc_build_skb
+EXPORT_SYMBOL net/ipv6/ipv6 0x883c39ab ipv6_chk_prefix
+EXPORT_SYMBOL net/ipv6/ipv6 0x93b3505b ipv6_setsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0x9dd70da0 ipv6_push_nfrag_opts
+EXPORT_SYMBOL net/ipv6/ipv6 0xb0e57021 inet6_register_protosw
+EXPORT_SYMBOL net/ipv6/ipv6 0xbb3eaf69 inet6_add_protocol
+EXPORT_SYMBOL net/ipv6/ipv6 0xbf642906 ip6_frag_init
+EXPORT_SYMBOL net/ipv6/ipv6 0xc6868402 xfrm6_prepare_output
+EXPORT_SYMBOL net/ipv6/ipv6 0xc8536f9f icmpv6_send
+EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier
+EXPORT_SYMBOL net/ipv6/ipv6 0xde87c79b ip6_xmit
+EXPORT_SYMBOL net/ipv6/ipv6 0xe004a1e3 xfrm6_rcv
+EXPORT_SYMBOL net/ipv6/ipv6 0xe690b8fd __ipv6_isatap_ifid
+EXPORT_SYMBOL net/ipv6/ipv6 0xf8bd5b08 compat_ipv6_setsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0xf913837c ip6_route_me_harder
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x031fd671 ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x03617320 ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3d39f377 ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8be445c2 ip6t_do_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/tunnel6 0x7fe07984 xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/tunnel6 0xba7af701 xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x70d3fb3d xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9ed1fca6 xfrm6_tunnel_free_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xc179fd0f xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0139620f ircomm_disconnect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x12fa5053 ircomm_flow_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x19fb7227 ircomm_close
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x31ec871e ircomm_connect_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x75f4e70b ircomm_connect_response
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0x84608198 ircomm_open
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc4bc3eea ircomm_control_request
+EXPORT_SYMBOL net/irda/ircomm/ircomm 0xd9a4169f ircomm_data_request
+EXPORT_SYMBOL net/irda/irda 0x0064e0ea hashbin_get_first
+EXPORT_SYMBOL net/irda/irda 0x05d995fa irlmp_open_lsap
+EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value
+EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service
+EXPORT_SYMBOL net/irda/irda 0x11dd393c alloc_irdadev
+EXPORT_SYMBOL net/irda/irda 0x1e6cade0 irias_add_integer_attrib
+EXPORT_SYMBOL net/irda/irda 0x1ee979fa irlmp_data_request
+EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert
+EXPORT_SYMBOL net/irda/irda 0x2cb16ac9 iriap_getvaluebyclass_request
+EXPORT_SYMBOL net/irda/irda 0x2cb6da78 irttp_udata_request
+EXPORT_SYMBOL net/irda/irda 0x344390c7 irlap_open
+EXPORT_SYMBOL net/irda/irda 0x38a20e5b irda_debug
+EXPORT_SYMBOL net/irda/irda 0x3e56064f hashbin_new
+EXPORT_SYMBOL net/irda/irda 0x41a214fc irlmp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x42d34f12 async_wrap_skb
+EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value
+EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service
+EXPORT_SYMBOL net/irda/irda 0x4db7df39 irttp_open_tsap
+EXPORT_SYMBOL net/irda/irda 0x5893b580 irttp_connect_response
+EXPORT_SYMBOL net/irda/irda 0x5cf13f2e irttp_close_tsap
+EXPORT_SYMBOL net/irda/irda 0x601bda46 hashbin_remove
+EXPORT_SYMBOL net/irda/irda 0x629e9c3e irlmp_close_lsap
+EXPORT_SYMBOL net/irda/irda 0x67656903 irttp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies
+EXPORT_SYMBOL net/irda/irda 0x6b5fbcef hashbin_get_next
+EXPORT_SYMBOL net/irda/irda 0x6e0ab3c7 irias_add_string_attrib
+EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client
+EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client
+EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client
+EXPORT_SYMBOL net/irda/irda 0x7c7aff48 irlmp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0x7d3211e8 irlmp_connect_request
+EXPORT_SYMBOL net/irda/irda 0x85d88217 irias_delete_object
+EXPORT_SYMBOL net/irda/irda 0x8a8761a4 irttp_dup
+EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack
+EXPORT_SYMBOL net/irda/irda 0x95721a68 proc_irda
+EXPORT_SYMBOL net/irda/irda 0x97c9bdfd irttp_data_request
+EXPORT_SYMBOL net/irda/irda 0x985cca2c irda_device_set_media_busy
+EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all
+EXPORT_SYMBOL net/irda/irda 0x9d38e976 irttp_flow_request
+EXPORT_SYMBOL net/irda/irda 0xa1d41e58 hashbin_delete
+EXPORT_SYMBOL net/irda/irda 0xaa557515 irias_new_object
+EXPORT_SYMBOL net/irda/irda 0xb5aed60b iriap_close
+EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value
+EXPORT_SYMBOL net/irda/irda 0xbb318034 iriap_open
+EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute
+EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request
+EXPORT_SYMBOL net/irda/irda 0xbe911612 irlap_close
+EXPORT_SYMBOL net/irda/irda 0xc68e43be irias_add_octseq_attrib
+EXPORT_SYMBOL net/irda/irda 0xcead7dbb hashbin_find
+EXPORT_SYMBOL net/irda/irda 0xd2108314 hashbin_insert
+EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma
+EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint
+EXPORT_SYMBOL net/irda/irda 0xe1058170 irda_notify_init
+EXPORT_SYMBOL net/irda/irda 0xe3463529 hashbin_lock_find
+EXPORT_SYMBOL net/irda/irda 0xe3bde43e irias_insert_object
+EXPORT_SYMBOL net/irda/irda 0xe5f0f1af irttp_disconnect_request
+EXPORT_SYMBOL net/irda/irda 0xeccb824b async_unwrap_char
+EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries
+EXPORT_SYMBOL net/irda/irda 0xf0a694a1 irias_find_object
+EXPORT_SYMBOL net/irda/irda 0xf5876b95 hashbin_remove_this
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x17c0accd l2tp_recv_common
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x6203a6b2 l2tp_tunnel_destruct
+EXPORT_SYMBOL net/lapb/lapb 0x08e67d1a lapb_setparms
+EXPORT_SYMBOL net/lapb/lapb 0x2b68a5a7 lapb_data_request
+EXPORT_SYMBOL net/lapb/lapb 0x49a9450e lapb_getparms
+EXPORT_SYMBOL net/lapb/lapb 0x78c623f2 lapb_unregister
+EXPORT_SYMBOL net/lapb/lapb 0xbd18f74f lapb_register
+EXPORT_SYMBOL net/lapb/lapb 0xbd2a3795 lapb_connect_request
+EXPORT_SYMBOL net/lapb/lapb 0xe09024fb lapb_disconnect_request
+EXPORT_SYMBOL net/lapb/lapb 0xfa0f7ed0 lapb_data_received
+EXPORT_SYMBOL net/mac80211/mac80211 0x047302dd ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x0c7cdf97 ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x12df0d46 __ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x174abc31 ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x18ab7079 ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x2711469c ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x31d62a87 ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x474a9816 ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x4b62b1ae __ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x526998b3 ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x5319a030 ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x55a15eb3 __ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x5ee08c43 ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x6044bfdb ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0x70262900 ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x7a8f11ad ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x7af7454d ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0x7eb76dec ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x83175d21 ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x8e2197cf ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0x8ffb8208 __ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x9149f02f ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x9aa3f4e4 ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xa03ea3fa ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0xa2a099c3 ieee80211_get_tkip_key
+EXPORT_SYMBOL net/mac80211/mac80211 0xa2cf2558 wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xac60e2e6 ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0xaebcb7b6 ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0xc70eceff ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0xc7b40c35 ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xc81ac5b3 ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0xc92a3ade ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xd19baaad ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xdb5dc06a ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xe8a35052 ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0xe92e447c rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0xfaee80bd ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x387cba7b ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x51b8d75f ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x63533b1f ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6c9895c2 register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7c9746ac ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x82c21840 ip_vs_skb_replace
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x896daa1f unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa6fcfa3d register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa77c08de register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe54b3e71 unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf441d6ba ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xa4f28692 __nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xe6d1186d __nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x5a6b1410 nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x34b02e7a xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x4b4b72ec xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x4c2675b0 xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x5d521581 xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x5fddb8ae xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0x6573d9c3 xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xbf9efb08 xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xcac88fd0 xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xf22eb61f xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xfd6b2a19 xt_unregister_matches
+EXPORT_SYMBOL net/phonet/phonet 0x0d50c991 phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0x2128f7c4 pn_skb_send
+EXPORT_SYMBOL net/phonet/phonet 0x29779546 phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0x77102715 phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0x79e0a6ad phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x98293475 pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0xba8063b8 pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0xd6bc0f05 pn_sock_get_port
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x043a1f36 rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x05e9ad55 rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0b3a0e9b rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3ddcfb03 rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4b534be5 rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x511478b7 rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x51db291e rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5ed4d7d6 rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6cb4ac80 rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x83e02f64 rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x88f0a757 rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xaa0cdb98 rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xbb7a053a rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf8b7b1cb rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfbc3e323 key_type_rxrpc
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x4aee0297 svc_pool_stats_open
+EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes
+EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast
+EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected
+EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect
+EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport
+EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send
+EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge
+EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach
+EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port
+EXPORT_SYMBOL net/tipc/tipc 0x44391b75 tipc_send_buf_fast
+EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x4e5fdd58 tipc_forward_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw
+EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode
+EXPORT_SYMBOL net/tipc/tipc 0x5aa7429f tipc_createport_raw
+EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid
+EXPORT_SYMBOL net/tipc/tipc 0x5d0de2c5 tipc_register_media
+EXPORT_SYMBOL net/tipc/tipc 0x5d78fc7b tipc_send_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0x6a0da8f1 tipc_createport
+EXPORT_SYMBOL net/tipc/tipc 0x7892efcf tipc_continue
+EXPORT_SYMBOL net/tipc/tipc 0x84d614ba tipc_reject_msg
+EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr
+EXPORT_SYMBOL net/tipc/tipc 0x9118ce69 tipc_send_buf
+EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port
+EXPORT_SYMBOL net/tipc/tipc 0xa606ca3c tipc_send_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port
+EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown
+EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name
+EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish
+EXPORT_SYMBOL net/tipc/tipc 0xb9109819 tipc_forward_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0xbbfc18b5 tipc_get_port
+EXPORT_SYMBOL net/tipc/tipc 0xc503ad9c tipc_recv_msg
+EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name
+EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity
+EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach
+EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer
+EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished
+EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle
+EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x0ebe03d1 unregister_wan_device
+EXPORT_SYMBOL net/wanrouter/wanrouter 0x6e910bf2 register_wan_device
+EXPORT_SYMBOL net/wimax/wimax 0x2ede2e65 wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0xadf067d5 wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0ca761be ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x1857ab60 wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x188a9d25 cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x1a4d8731 ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0x1b4de816 cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0x26be361b cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0x2802998b ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x33fd365c cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x455addbe cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x4b5bc9c7 cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0x4c3a1dd7 cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x56e87661 wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x5c3232d3 cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x5ed0bc1b __cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x5ed56b20 cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0x65fa894f regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x67a9ab6c freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x68306f7d cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x6b1e7e89 cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0x715637a7 cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x72030f7a wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x76bca856 ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x7e154bf9 cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0x7f2ecc4e cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x81a733d4 cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0x8bae02c8 cfg80211_action_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x913dec9b wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x91fcecad __ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x97dd46d3 ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x98586e8e __cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x9eb379ff cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0xa0db0fa5 cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0xa5b514cd cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xb51a1b5e wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0xbd532053 wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0xc4ecd17b cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0xce3c9618 cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0xd4940a8d cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xd5fcdea8 cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0xdd52441b wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0xdf08d2e9 cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0xe1771c63 cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0xe1790928 cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xe5faf4b0 cfg80211_rx_action
+EXPORT_SYMBOL net/wireless/cfg80211 0xefba8abd wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0xf430f7ae __cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xfca5aee2 cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/lib80211 0x02cd6cac lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x17d370b9 lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x5f45e12d lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0x63cff34a lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x7cc16f4b lib80211_crypt_deinit_entries
+EXPORT_SYMBOL net/wireless/lib80211 0x8a4d8886 lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0x99ec2d81 lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xb684eba7 lib80211_crypt_quiescing
+EXPORT_SYMBOL sound/ac97_bus 0xc5cb6c59 ac97_bus_type
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x4cb14397 snd_seq_create_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x67b21daf snd_seq_event_port_attach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xd7adacc2 snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe61995d9 snd_seq_kernel_client_enqueue_blocking
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x15754b4f snd_seq_device_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xd8541377 snd_seq_device_register_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x072d978b snd_midi_event_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x13a17752 snd_midi_event_reset_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2eed26bf snd_midi_event_no_status
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x4d5ca523 snd_midi_event_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x592f6e9b snd_midi_event_free
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd7c7afcc snd_midi_event_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe60fb228 snd_midi_event_reset_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xecbde43c snd_midi_event_encode_byte
+EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xfd9f4f5b snd_virmidi_new
+EXPORT_SYMBOL sound/core/snd 0x05801ffc snd_register_device_for_dev
+EXPORT_SYMBOL sound/core/snd 0x12ee4aa5 snd_ctl_find_numid
+EXPORT_SYMBOL sound/core/snd 0x142bf0fd snd_ctl_register_ioctl
+EXPORT_SYMBOL sound/core/snd 0x162a9387 snd_card_create
+EXPORT_SYMBOL sound/core/snd 0x1713f105 snd_pci_quirk_lookup
+EXPORT_SYMBOL sound/core/snd 0x182ec5f3 snd_card_free
+EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program
+EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer
+EXPORT_SYMBOL sound/core/snd 0x1a642f4b snd_ctl_add
+EXPORT_SYMBOL sound/core/snd 0x1b6f6609 snd_card_proc_new
+EXPORT_SYMBOL sound/core/snd 0x209099ec snd_unregister_device
+EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line
+EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource
+EXPORT_SYMBOL sound/core/snd 0x33732f47 snd_card_file_remove
+EXPORT_SYMBOL sound/core/snd 0x395f766c snd_card_file_add
+EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit
+EXPORT_SYMBOL sound/core/snd 0x40a15439 snd_cards
+EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card
+EXPORT_SYMBOL sound/core/snd 0x4c2dc888 snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio
+EXPORT_SYMBOL sound/core/snd 0x570c6b3a snd_seq_root
+EXPORT_SYMBOL sound/core/snd 0x57f89dfa snd_device_new
+EXPORT_SYMBOL sound/core/snd 0x581d36f5 _snd_ctl_add_slave
+EXPORT_SYMBOL sound/core/snd 0x5c08f5c7 snd_ctl_notify
+EXPORT_SYMBOL sound/core/snd 0x62809f59 snd_card_free_when_closed
+EXPORT_SYMBOL sound/core/snd 0x63ce4d0d snd_device_free
+EXPORT_SYMBOL sound/core/snd 0x669b1fe8 snd_card_register
+EXPORT_SYMBOL sound/core/snd 0x6b7e6478 snd_add_device_sysfs_file
+EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable
+EXPORT_SYMBOL sound/core/snd 0x74ef6c15 snd_ctl_free_one
+EXPORT_SYMBOL sound/core/snd 0x78473a8c snd_info_register
+EXPORT_SYMBOL sound/core/snd 0x81d73306 snd_ctl_remove_id
+EXPORT_SYMBOL sound/core/snd 0x887d76db snd_jack_new
+EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major
+EXPORT_SYMBOL sound/core/snd 0x93ef1a54 snd_component_add
+EXPORT_SYMBOL sound/core/snd 0x96e835be snd_jack_set_parent
+EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str
+EXPORT_SYMBOL sound/core/snd 0x9e9c0579 snd_info_create_module_entry
+EXPORT_SYMBOL sound/core/snd 0xa0db16a5 snd_card_set_id
+EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id
+EXPORT_SYMBOL sound/core/snd 0xb147637c snd_jack_report
+EXPORT_SYMBOL sound/core/snd 0xb1eaddee snd_ctl_make_virtual_master
+EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data
+EXPORT_SYMBOL sound/core/snd 0xb377133e snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL sound/core/snd 0xb6065b0a snd_power_wait
+EXPORT_SYMBOL sound/core/snd 0xb7c7d17f snd_info_create_card_entry
+EXPORT_SYMBOL sound/core/snd 0xc35f67a7 snd_ctl_find_id
+EXPORT_SYMBOL sound/core/snd 0xc5ee71db snd_ctl_new1
+EXPORT_SYMBOL sound/core/snd 0xcb69ec97 snd_card_disconnect
+EXPORT_SYMBOL sound/core/snd 0xd53ee02d snd_info_free_entry
+EXPORT_SYMBOL sound/core/snd 0xdc316a5b snd_ctl_remove
+EXPORT_SYMBOL sound/core/snd 0xe1a0ba8a snd_device_register
+EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf
+EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio
+EXPORT_SYMBOL sound/core/snd 0xe5cc5e73 snd_ctl_unregister_ioctl
+EXPORT_SYMBOL sound/core/snd 0xec669802 snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL sound/core/snd 0xed887723 snd_jack_set_key
+EXPORT_SYMBOL sound/core/snd 0xef65ca70 snd_ctl_boolean_mono_info
+EXPORT_SYMBOL sound/core/snd 0xefece57d snd_ctl_rename_id
+EXPORT_SYMBOL sound/core/snd-hwdep 0x71d74755 snd_hwdep_new
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x09bbc82c snd_dma_get_reserved_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x66aed9db snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x7767cf49 snd_dma_alloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xc2b2771d snd_dma_reserve_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xc4c3bbcc snd_dma_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any
+EXPORT_SYMBOL sound/core/snd-pcm 0x039db76c snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x03c3ca08 snd_pcm_set_sync
+EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x08d88950 snd_pcm_kernel_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x10cb7ec8 snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL sound/core/snd-pcm 0x18e4db17 snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL sound/core/snd-pcm 0x1916f69a snd_pcm_hw_param_first
+EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed
+EXPORT_SYMBOL sound/core/snd-pcm 0x27615260 snd_pcm_hw_rule_add
+EXPORT_SYMBOL sound/core/snd-pcm 0x2b563dc6 snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL sound/core/snd-pcm 0x2f0ebfaf snd_pcm_lib_mmap_iomem
+EXPORT_SYMBOL sound/core/snd-pcm 0x30d5d1e2 snd_pcm_period_elapsed
+EXPORT_SYMBOL sound/core/snd-pcm 0x3150923b _snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x32dc54ed snd_pcm_suspend
+EXPORT_SYMBOL sound/core/snd-pcm 0x341544d7 snd_pcm_notify
+EXPORT_SYMBOL sound/core/snd-pcm 0x3526d85a snd_pcm_mmap_data
+EXPORT_SYMBOL sound/core/snd-pcm 0x36ad29ce snd_pcm_new
+EXPORT_SYMBOL sound/core/snd-pcm 0x3721c465 snd_pcm_stop
+EXPORT_SYMBOL sound/core/snd-pcm 0x3773b5b2 snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty
+EXPORT_SYMBOL sound/core/snd-pcm 0x46d381ec snd_pcm_suspend_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x50990449 snd_pcm_hw_constraint_list
+EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value
+EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence
+EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64
+EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width
+EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear
+EXPORT_SYMBOL sound/core/snd-pcm 0x88905061 snd_pcm_lib_read
+EXPORT_SYMBOL sound/core/snd-pcm 0x8b1acb53 snd_pcm_set_ops
+EXPORT_SYMBOL sound/core/snd-pcm 0x8fb982e8 snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL sound/core/snd-pcm 0x90998782 snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL sound/core/snd-pcm 0x96d9e144 snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL sound/core/snd-pcm 0xa0b2cc3c snd_pcm_limit_hw_rates
+EXPORT_SYMBOL sound/core/snd-pcm 0xa40d9997 snd_pcm_lib_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned
+EXPORT_SYMBOL sound/core/snd-pcm 0xb7801a15 snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL sound/core/snd-pcm 0xbc974eb0 snd_pcm_hw_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0xbfa58119 snd_pcm_lib_writev
+EXPORT_SYMBOL sound/core/snd-pcm 0xc0d2a5c2 snd_pcm_hw_param_last
+EXPORT_SYMBOL sound/core/snd-pcm 0xc8f0df73 snd_pcm_lib_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0xc97044ce snd_pcm_lib_write
+EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xd5fb21a2 snd_pcm_link_rwlock
+EXPORT_SYMBOL sound/core/snd-pcm 0xdcbfd61c snd_pcm_open_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xdf6e592a snd_pcm_release_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xdfe7c62f snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL sound/core/snd-pcm 0xe0da6ffd snd_pcm_new_stream
+EXPORT_SYMBOL sound/core/snd-pcm 0xe1302ccf snd_pcm_lib_readv
+EXPORT_SYMBOL sound/core/snd-pcm 0xe2391948 snd_pcm_lib_mmap_noncached
+EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width
+EXPORT_SYMBOL sound/core/snd-pcm 0xe68e55bf snd_pcm_hw_constraint_step
+EXPORT_SYMBOL sound/core/snd-pcm 0xece1c362 snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum
+EXPORT_SYMBOL sound/core/snd-pcm 0xfd4120e4 snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x0d6066c2 snd_rawmidi_transmit_ack
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x13d59a55 snd_rawmidi_output_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x2a800aef snd_rawmidi_receive
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x510e2f29 snd_rawmidi_kernel_write
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x57e3547f snd_rawmidi_kernel_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x5bba0709 snd_rawmidi_transmit_peek
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x5dcd7556 snd_rawmidi_transmit_empty
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x63c860f6 snd_rawmidi_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x89b16aef snd_rawmidi_transmit
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xa2efcf78 snd_rawmidi_drop_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xa76aef76 snd_rawmidi_info_select
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xaba83b1a snd_rawmidi_drain_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xd148bbd1 snd_rawmidi_set_ops
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xd7b8974f snd_rawmidi_kernel_release
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xde2acb1b snd_rawmidi_kernel_open
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xeab007de snd_rawmidi_input_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xfffdf57e snd_rawmidi_drain_input
+EXPORT_SYMBOL sound/core/snd-timer 0x0811f9a8 snd_timer_global_free
+EXPORT_SYMBOL sound/core/snd-timer 0x09f71b42 snd_timer_new
+EXPORT_SYMBOL sound/core/snd-timer 0x29941127 snd_timer_stop
+EXPORT_SYMBOL sound/core/snd-timer 0x39782fe0 snd_timer_close
+EXPORT_SYMBOL sound/core/snd-timer 0x63a9012c snd_timer_resolution
+EXPORT_SYMBOL sound/core/snd-timer 0x6ff97fa8 snd_timer_open
+EXPORT_SYMBOL sound/core/snd-timer 0x8692b96f snd_timer_interrupt
+EXPORT_SYMBOL sound/core/snd-timer 0x8ad58beb snd_timer_notify
+EXPORT_SYMBOL sound/core/snd-timer 0x95d06787 snd_timer_global_new
+EXPORT_SYMBOL sound/core/snd-timer 0x9b397654 snd_timer_pause
+EXPORT_SYMBOL sound/core/snd-timer 0xc753da67 snd_timer_start
+EXPORT_SYMBOL sound/core/snd-timer 0xcaf1ce3b snd_timer_continue
+EXPORT_SYMBOL sound/core/snd-timer 0xe82462e7 snd_timer_global_register
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc53f3544 snd_mpu401_uart_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x35d88070 snd_opl3_init
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x433a77f1 snd_opl3_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5d0477d5 snd_opl3_find_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9b7bc5c8 snd_opl3_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9bc8dd61 snd_opl3_reset
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9cab7d46 snd_opl3_hwdep_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb0b81b2a snd_opl3_create
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xcb932866 snd_opl3_timer_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf97b67e3 snd_opl3_load_patch
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x08db3cb5 snd_vx_load_boot_image
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1bfb9922 snd_vx_resume
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x39fd8443 snd_vx_dsp_boot
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x4ef382ad snd_vx_free_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x977eddec snd_vx_create
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xbaeb3f94 snd_vx_setup_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xbc9ecb2d snd_vx_suspend
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf541a731 snd_vx_check_reg_bit
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf7ec86f7 snd_vx_dsp_load
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x111f0ef7 snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x21b3582b snd_ak4114_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x2c0c296d snd_ak4114_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x4a18a0ee snd_ak4114_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x569b7597 snd_ak4114_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x69613833 snd_ak4114_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x5bcec18a snd_ak4117_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x610c0b47 snd_ak4117_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x73214268 snd_ak4117_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd3eed272 snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xda8eedd1 snd_ak4117_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xe3db563c snd_ak4117_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xa6b76692 snd_akm4xxx_init
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xd4bcede1 snd_akm4xxx_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xdc390a9f snd_akm4xxx_reset
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf2f78421 snd_akm4xxx_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x279ecbad snd_pt2258_reset
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xba4733d2 snd_pt2258_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x248ffdd2 snd_tea575x_init
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xbc8ce674 snd_tea575x_exit
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x68c62881 snd_cs8427_reg_write
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb11bf8a9 snd_cs8427_iec958_active
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xc6d4e36d snd_cs8427_iec958_pcm
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xcff5094b snd_cs8427_iec958_build
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xecaf9641 snd_cs8427_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x6450d4a1 snd_i2c_sendbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x8ecb4d15 snd_i2c_bus_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x9a364841 snd_i2c_device_free
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xb2f2ac20 snd_i2c_readbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xc14c3f59 snd_i2c_device_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xe32a5981 snd_i2c_probeaddr
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x14ccfd78 snd_sbdsp_get_byte
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x397f85ed snd_sbdsp_create
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x3f8c239e snd_sbmixer_add_ctl
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x5420449c snd_sbdsp_command
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x98d07e88 snd_sbmixer_resume
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xa075ee0d snd_sbdsp_reset
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xc9875789 snd_sbmixer_new
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xd8f44823 snd_sbmixer_read
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xeb46b1f4 snd_sbmixer_write
+EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf5ab9766 snd_sbmixer_suspend
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x648e7fff snd_sb16dsp_pcm
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xa59bc96b snd_sb16dsp_configure
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc51b5c99 snd_sb16dsp_get_pcm_ops
+EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xc57f5b54 snd_sb16dsp_interrupt
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x28c115af snd_ac97_mixer
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x36bcbddc snd_ac97_update
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x40690772 snd_ac97_tune_hardware
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x49676c38 snd_ac97_write
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x56598b93 snd_ac97_update_bits
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6b0a44f7 snd_ac97_set_rate
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6d6cf315 snd_ac97_pcm_assign
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7b273b55 snd_ac97_suspend
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8ced18b2 snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8f3f22c7 snd_ac97_update_power
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x932541a8 snd_ac97_bus
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9402696a snd_ac97_pcm_open
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa2e1fd55 snd_ac97_write_cache
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xaa65c3fe snd_ac97_resume
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xaa8c97e3 snd_ac97_read
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbfebb296 snd_ac97_get_short_name
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe8d2b290 snd_ac97_pcm_close
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x03065606 snd_emu10k1_voice_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0c02ed43 snd_emu10k1_synth_bzero
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0c950ee8 snd_emu10k1_voice_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0d00f2d0 snd_emu10k1_memblk_map
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1fbfee77 snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x23a966fa snd_emu10k1_ptr_read
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3431b58f snd_emu10k1_synth_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd4cc95ca snd_emu10k1_ptr_write
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd7e52ce8 snd_emu10k1_synth_free
+EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xc63c16d2 snd_hda_parse_generic_codec
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x25e5c9ff snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x26684536 snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x48a777ac snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x09b1fedc snd_trident_write_voice_regs
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x31152b17 snd_trident_start_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6c8499c7 snd_trident_alloc_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x9db398c4 snd_trident_stop_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xb4fddf0b snd_trident_free_voice
+EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0xced04cf8 uda134x_dai
+EXPORT_SYMBOL sound/soundcore 0xdf23d2a9 sound_class
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x05f50255 snd_emux_lock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x319419f8 snd_emux_free
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x3c64c15f snd_emux_new
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x75c7e0cf snd_emux_register
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x7d24d923 snd_emux_unlock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x9cc8429d snd_emux_terminate_all
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x0205c511 __snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x1d639a2e __snd_util_memblk_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x5386f80e snd_util_mem_avail
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x67feec24 snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x87f69f40 snd_util_memhdr_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xbf1c95f4 __snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xfb091441 snd_util_memhdr_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xfd01ec87 snd_util_mem_free
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x9310c34a snd_usbmidi_create
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x04dca738 lirc_unregister_driver
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0x5bb0e6bb lirc_register_driver
+EXPORT_SYMBOL ubuntu/lirc/lirc_dev/lirc_dev 0xa3e65490 lirc_get_pdata
+EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list
+EXPORT_SYMBOL vmlinux 0x000be8d6 devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x0033fd4c iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0x003871eb swiotlb_sync_sg_for_cpu
+EXPORT_SYMBOL vmlinux 0x0038c35f dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x005a4975 cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0x007f9402 igrab
+EXPORT_SYMBOL vmlinux 0x007fef4b blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x00a94a08 block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x00b4f2af tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0x00c01ecb bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0x01000e51 schedule
+EXPORT_SYMBOL vmlinux 0x0122f95e _lv1_get_spe_irq_outlet
+EXPORT_SYMBOL vmlinux 0x01471d41 blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x0175cfef sk_stream_error
+EXPORT_SYMBOL vmlinux 0x018d9919 _lv1_set_lpm_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap
+EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data
+EXPORT_SYMBOL vmlinux 0x01b4906b tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x01dc061f dmam_pool_create
+EXPORT_SYMBOL vmlinux 0x01eaf783 init_timer_key
+EXPORT_SYMBOL vmlinux 0x01f4d30b textsearch_prepare
+EXPORT_SYMBOL vmlinux 0x020d18d7 _lv1_set_lpm_debug_bus_control
+EXPORT_SYMBOL vmlinux 0x02170115 inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x0227155e cdev_del
+EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x0265dedb ide_dma_off_quietly
+EXPORT_SYMBOL vmlinux 0x027d5499 _lv1_did_update_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x028c9d93 bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0x02932307 __napi_complete
+EXPORT_SYMBOL vmlinux 0x029d2f9e downgrade_write
+EXPORT_SYMBOL vmlinux 0x029f5092 xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a35667 blk_integrity_register
+EXPORT_SYMBOL vmlinux 0x02a5349d seq_read
+EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table
+EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02e0b938 mark_info_dirty
+EXPORT_SYMBOL vmlinux 0x02e950a3 __neigh_event_send
+EXPORT_SYMBOL vmlinux 0x02f55251 scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0x0303e59f pcibios_fixup_bus
+EXPORT_SYMBOL vmlinux 0x031dc65e pasemi_dma_free_chan
+EXPORT_SYMBOL vmlinux 0x0326f5b7 udp_prot
+EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x034045d3 pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x037a0cba kfree
+EXPORT_SYMBOL vmlinux 0x0383d7b2 security_path_mkdir
+EXPORT_SYMBOL vmlinux 0x03912d07 __blk_end_request
+EXPORT_SYMBOL vmlinux 0x03975d68 idr_find
+EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03f1da32 napi_complete
+EXPORT_SYMBOL vmlinux 0x03f8523c xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x04074f48 ioremap
+EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x0430fbef find_inode_number
+EXPORT_SYMBOL vmlinux 0x044058ae proto_register
+EXPORT_SYMBOL vmlinux 0x0440a533 _lv1_net_remove_multicast_address
+EXPORT_SYMBOL vmlinux 0x045d5a6d page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x048ddadf pci_map_rom
+EXPORT_SYMBOL vmlinux 0x04e0bc7f ps2_command
+EXPORT_SYMBOL vmlinux 0x0510b5c0 bdi_register
+EXPORT_SYMBOL vmlinux 0x05165f61 scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0x0521b2ee set_current_groups
+EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x05267b2c rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0x0530dede _raw_write_trylock
+EXPORT_SYMBOL vmlinux 0x053fd28c macio_request_resource
+EXPORT_SYMBOL vmlinux 0x053fd56b pskb_copy
+EXPORT_SYMBOL vmlinux 0x0540b32a cpu_core_map
+EXPORT_SYMBOL vmlinux 0x05850f93 pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x05938f84 scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0x05956511 __locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x05a514a1 _insl_ns
+EXPORT_SYMBOL vmlinux 0x05a8e091 eth_type_trans
+EXPORT_SYMBOL vmlinux 0x05b1c32a sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x05b8d7ae rfkill_set_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x05e66d38 jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0x06026989 sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0x060ca320 skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x0614d9d5 serio_rescan
+EXPORT_SYMBOL vmlinux 0x061651be strcat
+EXPORT_SYMBOL vmlinux 0x06218c58 swiotlb_dma_mapping_error
+EXPORT_SYMBOL vmlinux 0x0647a88d flush_signals
+EXPORT_SYMBOL vmlinux 0x0656296d dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0x065bed3e scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x06651aeb inet_select_addr
+EXPORT_SYMBOL vmlinux 0x066604ea unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x066a7f0a commit_creds
+EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx
+EXPORT_SYMBOL vmlinux 0x068c9935 journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x069e0b51 register_snap_client
+EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc
+EXPORT_SYMBOL vmlinux 0x06b2c8c5 set_irq_chip
+EXPORT_SYMBOL vmlinux 0x06bbb24a mempool_resize
+EXPORT_SYMBOL vmlinux 0x06be6023 cfb_imageblit
+EXPORT_SYMBOL vmlinux 0x06c4bbe5 security_path_unlink
+EXPORT_SYMBOL vmlinux 0x06ed69f3 of_iomap
+EXPORT_SYMBOL vmlinux 0x06f6b832 sync_inode
+EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn
+EXPORT_SYMBOL vmlinux 0x0715f1db of_platform_bus_type
+EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8
+EXPORT_SYMBOL vmlinux 0x074467fe filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x07757f22 ide_proc_register_driver
+EXPORT_SYMBOL vmlinux 0x077923bd dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0x077bda54 find_get_page
+EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable
+EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong
+EXPORT_SYMBOL vmlinux 0x07a7a3e7 bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07b458e6 dw_spi_suspend_host
+EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07cd891b __destroy_inode
+EXPORT_SYMBOL vmlinux 0x07cf9fd3 skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x07d0a05b pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0x07d0b13e dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x07ef213a pasemi_dma_free_fun
+EXPORT_SYMBOL vmlinux 0x07f8ee15 _lv1_unmap_device_dma_region
+EXPORT_SYMBOL vmlinux 0x07fcc315 vio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x081d0912 dev_addr_init
+EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses
+EXPORT_SYMBOL vmlinux 0x083182c4 blk_start_queue
+EXPORT_SYMBOL vmlinux 0x0848d167 dev_addr_flush
+EXPORT_SYMBOL vmlinux 0x085cf6a8 nf_reinject
+EXPORT_SYMBOL vmlinux 0x085ddc99 netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0x086e05dd key_task_permission
+EXPORT_SYMBOL vmlinux 0x08967b65 phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x08a967e6 security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var
+EXPORT_SYMBOL vmlinux 0x08fa758d __scm_send
+EXPORT_SYMBOL vmlinux 0x090621b6 scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0x09076619 ip_fragment
+EXPORT_SYMBOL vmlinux 0x0924049d block_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x092491d5 splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x092c0249 set_security_override
+EXPORT_SYMBOL vmlinux 0x093c6d6f get_phy_device
+EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages
+EXPORT_SYMBOL vmlinux 0x096341c2 _lv1_connect_irq_plug_ext
+EXPORT_SYMBOL vmlinux 0x09775cdc kref_get
+EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x099c7f8e handle_sysrq
+EXPORT_SYMBOL vmlinux 0x09a08e36 udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x09bec591 blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions
+EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a2a58f8 neigh_seq_start
+EXPORT_SYMBOL vmlinux 0x0a2a840f call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0x0a31f64c get_sb_pseudo
+EXPORT_SYMBOL vmlinux 0x0a3d0644 cpu_online_mask
+EXPORT_SYMBOL vmlinux 0x0a669406 skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0x0a702f3c d_instantiate
+EXPORT_SYMBOL vmlinux 0x0a73c765 skb_split
+EXPORT_SYMBOL vmlinux 0x0a79fa2d register_8022_client
+EXPORT_SYMBOL vmlinux 0x0a7a2c72 tcf_hash_check
+EXPORT_SYMBOL vmlinux 0x0a7a5f90 proc_symlink
+EXPORT_SYMBOL vmlinux 0x0a8370ee ide_geometry_proc_fops
+EXPORT_SYMBOL vmlinux 0x0a8b7141 pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0x0a959337 inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0x0ab14985 bio_init
+EXPORT_SYMBOL vmlinux 0x0ab7949e up
+EXPORT_SYMBOL vmlinux 0x0ac5c372 llc_set_station_handler
+EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b22ad1c journal_stop
+EXPORT_SYMBOL vmlinux 0x0b22cacd swiotlb_unmap_sg_attrs
+EXPORT_SYMBOL vmlinux 0x0b2cbcbf nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol
+EXPORT_SYMBOL vmlinux 0x0bc54c2c padata_alloc
+EXPORT_SYMBOL vmlinux 0x0bd050be __seq_open_private
+EXPORT_SYMBOL vmlinux 0x0bd4913d max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0x0bdf6368 bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x0bf61925 kthread_create
+EXPORT_SYMBOL vmlinux 0x0c000272 dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x0c0e9445 tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0x0c1ad162 _lv1_net_start_rx_dma
+EXPORT_SYMBOL vmlinux 0x0c1c9094 ps2_init
+EXPORT_SYMBOL vmlinux 0x0c1ee7ea d_splice_alias
+EXPORT_SYMBOL vmlinux 0x0c43b5c1 clocksource_register
+EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cd07764 cont_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x0cddd7ef page_follow_link_light
+EXPORT_SYMBOL vmlinux 0x0cf9c08a ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x0d4505ec seq_open_private
+EXPORT_SYMBOL vmlinux 0x0d460e0e netdev_state_change
+EXPORT_SYMBOL vmlinux 0x0d49ff1b skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d652bb4 unregister_memory_isolate_notifier
+EXPORT_SYMBOL vmlinux 0x0d6c963c copy_from_user
+EXPORT_SYMBOL vmlinux 0x0d805a50 bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x0d9317f8 have_submounts
+EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0de2490b seq_bitmap
+EXPORT_SYMBOL vmlinux 0x0df9f4aa inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0x0e128bcb sk_reset_timer
+EXPORT_SYMBOL vmlinux 0x0e2600a0 sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x0e52592a panic
+EXPORT_SYMBOL vmlinux 0x0e5ccbc0 dst_release
+EXPORT_SYMBOL vmlinux 0x0e668bee blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0x0e7a36da padata_add_cpu
+EXPORT_SYMBOL vmlinux 0x0e853698 giveup_altivec
+EXPORT_SYMBOL vmlinux 0x0e8f30f6 _raw_write_lock_irq
+EXPORT_SYMBOL vmlinux 0x0e9c889a kobject_get
+EXPORT_SYMBOL vmlinux 0x0ea31a61 __inet6_hash
+EXPORT_SYMBOL vmlinux 0x0eb3cd2a tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x0ed097c8 generic_readlink
+EXPORT_SYMBOL vmlinux 0x0ee19e6e blk_sync_queue
+EXPORT_SYMBOL vmlinux 0x0ee5a2cb vio_enable_interrupts
+EXPORT_SYMBOL vmlinux 0x0eed5e0c tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0x0ef88ee5 input_register_device
+EXPORT_SYMBOL vmlinux 0x0f0490bc DAC1064_global_init
+EXPORT_SYMBOL vmlinux 0x0f623bda journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x0f8566b9 input_set_keycode
+EXPORT_SYMBOL vmlinux 0x0f8fc464 xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fc5e8eb radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0x0fe1ace3 eth_change_mtu
+EXPORT_SYMBOL vmlinux 0x1031aae8 devm_ioremap
+EXPORT_SYMBOL vmlinux 0x1034baff sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x1059bc0e gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint
+EXPORT_SYMBOL vmlinux 0x10a2f44a pcibios_bus_to_resource
+EXPORT_SYMBOL vmlinux 0x10abdca2 cfb_fillrect
+EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10e20f5a of_find_node_by_path
+EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu
+EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype
+EXPORT_SYMBOL vmlinux 0x1114bd3e compat_tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x114817b6 phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0x114927e3 unload_nls
+EXPORT_SYMBOL vmlinux 0x11615b90 block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x1171b635 _lv1_delete_lpm_event_bookmark
+EXPORT_SYMBOL vmlinux 0x117537ae jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0x118591af kernel_bind
+EXPORT_SYMBOL vmlinux 0x118f01ea putname
+EXPORT_SYMBOL vmlinux 0x11ac9f05 xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0x11e737b9 scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0x11f5fcc2 __task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin
+EXPORT_SYMBOL vmlinux 0x120aee75 max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x12516ff3 scsi_finish_command
+EXPORT_SYMBOL vmlinux 0x1258e34f nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0x126369c2 neigh_lookup
+EXPORT_SYMBOL vmlinux 0x126b381e macio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x126e641a blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0x127f7050 tcf_hash_create
+EXPORT_SYMBOL vmlinux 0x12a9b5ab get_super
+EXPORT_SYMBOL vmlinux 0x12b580c2 tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0x12cb6622 _lv1_map_device_dma_region
+EXPORT_SYMBOL vmlinux 0x12e5ef0c rtas_set_power_level
+EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x1362ea76 phy_sanitize_settings
+EXPORT_SYMBOL vmlinux 0x136ea64a bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0x1389d688 pci_write_vpd
+EXPORT_SYMBOL vmlinux 0x1399c8d4 kill_pid
+EXPORT_SYMBOL vmlinux 0x13b2041e generic_listxattr
+EXPORT_SYMBOL vmlinux 0x13ca8cb4 tty_mutex
+EXPORT_SYMBOL vmlinux 0x13e0fa2a check_disk_change
+EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation
+EXPORT_SYMBOL vmlinux 0x13f53da6 CMO_PageSize
+EXPORT_SYMBOL vmlinux 0x14082051 fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x141fe5fd pasemi_read_iob_reg
+EXPORT_SYMBOL vmlinux 0x14655cf9 nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x14713adf locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x148d8bc5 dquot_enable
+EXPORT_SYMBOL vmlinux 0x14933a91 bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0x1493e102 compat_nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x14bd7862 open_exec
+EXPORT_SYMBOL vmlinux 0x14fab764 matroxfb_g450_setpll_cond
+EXPORT_SYMBOL vmlinux 0x151592c4 _lv1_invalidate_htab_entries
+EXPORT_SYMBOL vmlinux 0x152d4984 pci_dev_put
+EXPORT_SYMBOL vmlinux 0x152e6a45 security_task_getsecid
+EXPORT_SYMBOL vmlinux 0x15405253 mach_maple
+EXPORT_SYMBOL vmlinux 0x15441edb __scm_destroy
+EXPORT_SYMBOL vmlinux 0x154a5909 unregister_nls
+EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x1591692a try_to_release_page
+EXPORT_SYMBOL vmlinux 0x15a0ef5b qdisc_reset
+EXPORT_SYMBOL vmlinux 0x15ed391c rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0x15f4e801 block_commit_write
+EXPORT_SYMBOL vmlinux 0x160bd45c rtas_token
+EXPORT_SYMBOL vmlinux 0x160bd6ec of_register_spi_devices
+EXPORT_SYMBOL vmlinux 0x16346eef nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x1635a93e sys_fillrect
+EXPORT_SYMBOL vmlinux 0x16373cef simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x16449b86 tty_port_close_start
+EXPORT_SYMBOL vmlinux 0x1662876f tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0x166c5e19 tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0x16829475 netif_rx
+EXPORT_SYMBOL vmlinux 0x168b50a6 sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0x169fbc1c key_link
+EXPORT_SYMBOL vmlinux 0x16b58ef6 __pagevec_release
+EXPORT_SYMBOL vmlinux 0x16dbaccd elevator_exit
+EXPORT_SYMBOL vmlinux 0x172c0ba0 dw_spi_add_host
+EXPORT_SYMBOL vmlinux 0x1743414f __debugger_fault_handler
+EXPORT_SYMBOL vmlinux 0x17539437 release_sock
+EXPORT_SYMBOL vmlinux 0x17648396 dev_base_lock
+EXPORT_SYMBOL vmlinux 0x1765b693 pci_claim_resource
+EXPORT_SYMBOL vmlinux 0x1789b582 xfrm_init_state
+EXPORT_SYMBOL vmlinux 0x17b548fd get_sb_ns
+EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0x17cb8c79 _lv1_read_htab_entries
+EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x18226fec xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0x18293085 of_get_pci_address
+EXPORT_SYMBOL vmlinux 0x182cad01 mb_cache_create
+EXPORT_SYMBOL vmlinux 0x182f50af _lv1_open_device
+EXPORT_SYMBOL vmlinux 0x183872d3 hippi_mac_addr
+EXPORT_SYMBOL vmlinux 0x183f2725 devm_ioport_map
+EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x185b7dd6 _lv1_modify_repository_node_value
+EXPORT_SYMBOL vmlinux 0x188d99f1 journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x188db5e2 clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x18c98205 _lv1_destruct_virtual_address_space
+EXPORT_SYMBOL vmlinux 0x18e8d400 bdev_read_only
+EXPORT_SYMBOL vmlinux 0x18ee2715 sk_free
+EXPORT_SYMBOL vmlinux 0x19166bb5 of_find_node_by_type
+EXPORT_SYMBOL vmlinux 0x192b0dce inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x193bc4c3 __pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0x19688366 blk_init_queue
+EXPORT_SYMBOL vmlinux 0x19699e37 qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0x1969f1a0 bd_release
+EXPORT_SYMBOL vmlinux 0x19829707 scsi_init_io
+EXPORT_SYMBOL vmlinux 0x19881dbc swiotlb_unmap_sg
+EXPORT_SYMBOL vmlinux 0x199c6050 inet_sendmsg
+EXPORT_SYMBOL vmlinux 0x199ec4fb arch_spin_unlock_wait
+EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19c7f892 linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x19c968d1 pasemi_dma_start_chan
+EXPORT_SYMBOL vmlinux 0x19ce6762 setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x19da94bd inet_bind
+EXPORT_SYMBOL vmlinux 0x19e79fca xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0x1a111a41 ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0x1a2c4982 pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0x1a2f6945 __next_cpu
+EXPORT_SYMBOL vmlinux 0x1a2f7f93 bio_free
+EXPORT_SYMBOL vmlinux 0x1a3487ee dw_spi_remove_host
+EXPORT_SYMBOL vmlinux 0x1a5a2558 dev_txq_stats_fold
+EXPORT_SYMBOL vmlinux 0x1a746f28 qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0x1a7b18d3 neigh_parms_release
+EXPORT_SYMBOL vmlinux 0x1a91663d pasemi_dma_free_buf
+EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in
+EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1ad40c45 jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0x1af05a75 read_cache_page
+EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b03bc12 tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0x1b5687fd blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton
+EXPORT_SYMBOL vmlinux 0x1b72c458 test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0x1b731971 follow_up
+EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b8db287 neigh_create
+EXPORT_SYMBOL vmlinux 0x1b91bd5b sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1ba2c143 init_net
+EXPORT_SYMBOL vmlinux 0x1bb4c13d bdget
+EXPORT_SYMBOL vmlinux 0x1bc4ff03 tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0x1bfec830 __iounmap_at
+EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c200a7d pasemi_dma_stop_chan
+EXPORT_SYMBOL vmlinux 0x1c210791 proc_create_data
+EXPORT_SYMBOL vmlinux 0x1c261315 pci_reenable_device
+EXPORT_SYMBOL vmlinux 0x1c46bf98 blk_queue_bounce
+EXPORT_SYMBOL vmlinux 0x1c4d401b single_open
+EXPORT_SYMBOL vmlinux 0x1c4dab93 _lv1_connect_irq_plug
+EXPORT_SYMBOL vmlinux 0x1c50dd4d jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x1c5b2c15 pmu_wait_complete
+EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check
+EXPORT_SYMBOL vmlinux 0x1c92b9c1 insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cf08bf8 of_parse_phandle
+EXPORT_SYMBOL vmlinux 0x1cf78e23 default_file_splice_read
+EXPORT_SYMBOL vmlinux 0x1d0ed923 inode_add_bytes
+EXPORT_SYMBOL vmlinux 0x1d139df7 simple_setattr
+EXPORT_SYMBOL vmlinux 0x1d2e87c6 do_gettimeofday
+EXPORT_SYMBOL vmlinux 0x1d4750bc _lv1_stop_lpm
+EXPORT_SYMBOL vmlinux 0x1d5495a2 lock_rename
+EXPORT_SYMBOL vmlinux 0x1d59cc28 compat_sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x1d7400f6 skb_pad
+EXPORT_SYMBOL vmlinux 0x1da13cf4 dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1ddd5461 freeze_bdev
+EXPORT_SYMBOL vmlinux 0x1deb9989 lock_super
+EXPORT_SYMBOL vmlinux 0x1e03569f pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0x1e0f350a padata_free
+EXPORT_SYMBOL vmlinux 0x1e1d75d6 pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x1e1e0d20 ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x1e629665 simple_unlink
+EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr
+EXPORT_SYMBOL vmlinux 0x1e6fe6f1 idr_init
+EXPORT_SYMBOL vmlinux 0x1e7ff2b5 nf_hook_slow
+EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1eae1b94 mach_ps3
+EXPORT_SYMBOL vmlinux 0x1edc522a skb_find_text
+EXPORT_SYMBOL vmlinux 0x1ee9ed82 slow_work_sleep_till_thread_needed
+EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set
+EXPORT_SYMBOL vmlinux 0x1fa84ab0 ps3_dma_region_init
+EXPORT_SYMBOL vmlinux 0x1fa92c7b generic_setxattr
+EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag
+EXPORT_SYMBOL vmlinux 0x1fe7b4ab pasemi_write_dma_reg
+EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region
+EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul
+EXPORT_SYMBOL vmlinux 0x200d17a1 mem_section
+EXPORT_SYMBOL vmlinux 0x201494ee _lv1_net_set_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x204eddfc ps3_dma_region_create
+EXPORT_SYMBOL vmlinux 0x20532d42 inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x2054b8e2 of_get_address
+EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x2075961d module_put
+EXPORT_SYMBOL vmlinux 0x208a7b0f dquot_free_inode
+EXPORT_SYMBOL vmlinux 0x209a83aa jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x20a4bedd vfs_unlink
+EXPORT_SYMBOL vmlinux 0x20af2bdf inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0x213603bf pasemi_dma_free_ring
+EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16
+EXPORT_SYMBOL vmlinux 0x21694743 add_disk
+EXPORT_SYMBOL vmlinux 0x217e4764 blk_end_request
+EXPORT_SYMBOL vmlinux 0x218577fe vio_register_device_node
+EXPORT_SYMBOL vmlinux 0x21c7ee61 __inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x21d6ae02 tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x22085f68 kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq
+EXPORT_SYMBOL vmlinux 0x2237be7e blk_run_queue
+EXPORT_SYMBOL vmlinux 0x225ebee6 _lv1_destruct_lpm
+EXPORT_SYMBOL vmlinux 0x22662d56 __splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log
+EXPORT_SYMBOL vmlinux 0x227f171b bioset_create
+EXPORT_SYMBOL vmlinux 0x2288378f system_state
+EXPORT_SYMBOL vmlinux 0x22a4cf54 skb_dequeue
+EXPORT_SYMBOL vmlinux 0x22a5fddc neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0x22aef9f4 inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound
+EXPORT_SYMBOL vmlinux 0x22c2edef skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x22d2c2f8 genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0x22e653b6 security_path_truncate
+EXPORT_SYMBOL vmlinux 0x22fd889b bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x2306940e udp_poll
+EXPORT_SYMBOL vmlinux 0x230c3722 idr_for_each
+EXPORT_SYMBOL vmlinux 0x230d4a1a matroxfb_enable_irq
+EXPORT_SYMBOL vmlinux 0x230fa53c register_cdrom
+EXPORT_SYMBOL vmlinux 0x231cc931 mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul
+EXPORT_SYMBOL vmlinux 0x233696d2 ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x233bdb2f scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0x234509f3 strncat
+EXPORT_SYMBOL vmlinux 0x234d61b6 dentry_open
+EXPORT_SYMBOL vmlinux 0x2354922b inet_csk_accept
+EXPORT_SYMBOL vmlinux 0x235e90f3 __wake_up_bit
+EXPORT_SYMBOL vmlinux 0x2379380d ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0x2392146f genphy_read_status
+EXPORT_SYMBOL vmlinux 0x23a868e4 udp_ioctl
+EXPORT_SYMBOL vmlinux 0x23aaf012 pci_remove_behind_bridge
+EXPORT_SYMBOL vmlinux 0x23f2243d mempool_free
+EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node
+EXPORT_SYMBOL vmlinux 0x240806be tty_register_device
+EXPORT_SYMBOL vmlinux 0x244a2411 __first_cpu
+EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x245a5a94 sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x24680672 ide_proc_unregister_driver
+EXPORT_SYMBOL vmlinux 0x246c3f20 journal_forget
+EXPORT_SYMBOL vmlinux 0x247b88a9 swiotlb_map_sg_attrs
+EXPORT_SYMBOL vmlinux 0x24a70937 i2c_register_driver
+EXPORT_SYMBOL vmlinux 0x24c8770c scsi_remove_device
+EXPORT_SYMBOL vmlinux 0x24cfd438 _lv1_copy_lpm_trace_buffer
+EXPORT_SYMBOL vmlinux 0x24dd0a78 dm_table_event
+EXPORT_SYMBOL vmlinux 0x24de8927 blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0x24dfcf51 scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function
+EXPORT_SYMBOL vmlinux 0x24ffaa3e of_device_register
+EXPORT_SYMBOL vmlinux 0x2517c2a9 call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0x251e8972 llc_sap_close
+EXPORT_SYMBOL vmlinux 0x256c19eb __register_chrdev
+EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x25b6b8f7 _lv1_set_spe_transition_notifier
+EXPORT_SYMBOL vmlinux 0x25b8f432 blk_init_tags
+EXPORT_SYMBOL vmlinux 0x25cf8049 matroxfb_PLL_calcclock
+EXPORT_SYMBOL vmlinux 0x25e607e5 vm_insert_page
+EXPORT_SYMBOL vmlinux 0x25eb7043 ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0x25f21d98 km_query
+EXPORT_SYMBOL vmlinux 0x25f9fba2 dev_change_flags
+EXPORT_SYMBOL vmlinux 0x25fb20eb netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0x26080f9e scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0x2631dd15 unlock_buffer
+EXPORT_SYMBOL vmlinux 0x26477c07 __vmalloc
+EXPORT_SYMBOL vmlinux 0x265b58c8 jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x266148b5 security_path_rmdir
+EXPORT_SYMBOL vmlinux 0x26792660 jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x2688c1e1 __serio_register_driver
+EXPORT_SYMBOL vmlinux 0x26a41860 bio_unmap_user
+EXPORT_SYMBOL vmlinux 0x26aad9b1 netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0x26d519de key_revoke
+EXPORT_SYMBOL vmlinux 0x26d5d6d2 input_get_keycode
+EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x27160fa0 netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0x271fbe46 giveup_fpu
+EXPORT_SYMBOL vmlinux 0x2740c6b8 dev_uc_add
+EXPORT_SYMBOL vmlinux 0x27490018 xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x27646df3 start_thread
+EXPORT_SYMBOL vmlinux 0x276570b1 pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0x27846cad mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x278560bd block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0x27864d57 memparse
+EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic
+EXPORT_SYMBOL vmlinux 0x27df77ac get_sb_nodev
+EXPORT_SYMBOL vmlinux 0x27df9724 elv_queue_empty
+EXPORT_SYMBOL vmlinux 0x27ec7a31 scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0x27ff7590 pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0x280784a2 poll_initwait
+EXPORT_SYMBOL vmlinux 0x2823b8ef bdi_init
+EXPORT_SYMBOL vmlinux 0x2837ee1b alloc_disk_node
+EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll
+EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28ab7b27 module_refcount
+EXPORT_SYMBOL vmlinux 0x28c941ba of_device_is_compatible
+EXPORT_SYMBOL vmlinux 0x28d60bc9 eth_header_cache
+EXPORT_SYMBOL vmlinux 0x2940e9cb __nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x2960019b eeh_check_failure
+EXPORT_SYMBOL vmlinux 0x2965c070 vfs_read
+EXPORT_SYMBOL vmlinux 0x2977d814 sk_dst_check
+EXPORT_SYMBOL vmlinux 0x297f5321 vga_client_register
+EXPORT_SYMBOL vmlinux 0x2985f053 genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0x298ccdd1 file_permission
+EXPORT_SYMBOL vmlinux 0x299854a3 pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0x29a4a26a tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set
+EXPORT_SYMBOL vmlinux 0x29d73d03 ida_init
+EXPORT_SYMBOL vmlinux 0x29ebc7fc netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x2a01aa3c noop_fsync
+EXPORT_SYMBOL vmlinux 0x2a19376f d_path
+EXPORT_SYMBOL vmlinux 0x2a1970f5 mach_powermac
+EXPORT_SYMBOL vmlinux 0x2a1ca19b fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature
+EXPORT_SYMBOL vmlinux 0x2a514c33 jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x2a602732 mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0x2a6fe305 i8042_install_filter
+EXPORT_SYMBOL vmlinux 0x2a70e360 splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0x2a905592 i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x2adfa976 jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x2ae60f8c redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x2aea04e3 simple_write_begin
+EXPORT_SYMBOL vmlinux 0x2aea61e5 rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0x2af2c4d4 skb_clone
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b304023 ftrace_event_seq
+EXPORT_SYMBOL vmlinux 0x2b4b3a3a arp_tbl
+EXPORT_SYMBOL vmlinux 0x2b4e6230 __set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0x2b5a3254 scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x2b5e6c69 __any_online_cpu
+EXPORT_SYMBOL vmlinux 0x2b6c42d0 sock_no_bind
+EXPORT_SYMBOL vmlinux 0x2b79d7c7 sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x2b9ab9e0 get_pci_dma_ops
+EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2bbdb9a5 __percpu_counter_add
+EXPORT_SYMBOL vmlinux 0x2be7bef5 qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x2c075248 abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x2c0ac215 default_unplug_io_fn
+EXPORT_SYMBOL vmlinux 0x2c1cd4a4 cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x2c2c1c37 ___pskb_trim
+EXPORT_SYMBOL vmlinux 0x2c3a15df set_binfmt
+EXPORT_SYMBOL vmlinux 0x2c4c7997 _lv1_construct_lpm
+EXPORT_SYMBOL vmlinux 0x2c59f5ef __serio_register_port
+EXPORT_SYMBOL vmlinux 0x2c89bba8 scm_detach_fds
+EXPORT_SYMBOL vmlinux 0x2c919c63 gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x2ca32b69 matrox_cfbX_init
+EXPORT_SYMBOL vmlinux 0x2cb2bc43 dm_io_client_resize
+EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic
+EXPORT_SYMBOL vmlinux 0x2cf9db12 percpu_counter_set
+EXPORT_SYMBOL vmlinux 0x2d0815ce gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d4b7b64 journal_restart
+EXPORT_SYMBOL vmlinux 0x2d5528c9 sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x2d577f22 ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0x2d7d2767 _lv1_set_lpm_group_control
+EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2d910e94 dqget
+EXPORT_SYMBOL vmlinux 0x2db97171 kset_register
+EXPORT_SYMBOL vmlinux 0x2dc4ed1c kmem_cache_name
+EXPORT_SYMBOL vmlinux 0x2e14eb1c dquot_destroy
+EXPORT_SYMBOL vmlinux 0x2e1bef92 eeh_subsystem_enabled
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem
+EXPORT_SYMBOL vmlinux 0x2e57f4df sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0x2e69d37d generic_writepages
+EXPORT_SYMBOL vmlinux 0x2e8c3f84 get_io_context
+EXPORT_SYMBOL vmlinux 0x2e93495e _lv1_write_htab_entry
+EXPORT_SYMBOL vmlinux 0x2ed96f5b thaw_bdev
+EXPORT_SYMBOL vmlinux 0x2edad467 pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0x2ee1f956 idr_pre_get
+EXPORT_SYMBOL vmlinux 0x2ee4337f smu_queue_cmd
+EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource
+EXPORT_SYMBOL vmlinux 0x2f0dc9a2 fsnotify_find_mark_entry
+EXPORT_SYMBOL vmlinux 0x2f1a72f5 dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0x2f1ab87a skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user
+EXPORT_SYMBOL vmlinux 0x2f331440 mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x2f64b927 blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0x2f8b17a7 mdiobus_write
+EXPORT_SYMBOL vmlinux 0x2fae96de rtas_data_buf_lock
+EXPORT_SYMBOL vmlinux 0x2fcf740d idr_get_new_above
+EXPORT_SYMBOL vmlinux 0x2fd2d8b0 sock_create
+EXPORT_SYMBOL vmlinux 0x2fe0a25d inode_init_always
+EXPORT_SYMBOL vmlinux 0x2feecd36 ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0x30081f3d bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x301f0821 skb_copy
+EXPORT_SYMBOL vmlinux 0x3020faeb console_stop
+EXPORT_SYMBOL vmlinux 0x306ab96b fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0x30b318a1 journal_load
+EXPORT_SYMBOL vmlinux 0x30b4b122 phy_attach_direct
+EXPORT_SYMBOL vmlinux 0x30ced77d cdev_index
+EXPORT_SYMBOL vmlinux 0x30e7aeb8 __getblk
+EXPORT_SYMBOL vmlinux 0x30e8e445 otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x31165fe2 vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x312cfaf2 _lv1_disable_logical_spe
+EXPORT_SYMBOL vmlinux 0x313098b0 tcp_read_sock
+EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d default_red
+EXPORT_SYMBOL vmlinux 0x316cd9fe down
+EXPORT_SYMBOL vmlinux 0x31732152 tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0x31845e57 kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0x318c4cd4 fb_set_suspend
+EXPORT_SYMBOL vmlinux 0x31ab0131 bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0x31b7f300 _lv1_set_lpm_signal
+EXPORT_SYMBOL vmlinux 0x31c4afa4 tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x31cd509a _lv1_net_control
+EXPORT_SYMBOL vmlinux 0x31ed1707 down_timeout
+EXPORT_SYMBOL vmlinux 0x31f84576 free_buffer_head
+EXPORT_SYMBOL vmlinux 0x3208c6db find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x32243378 of_device_get_modalias
+EXPORT_SYMBOL vmlinux 0x3250f179 netpoll_poll_dev
+EXPORT_SYMBOL vmlinux 0x325e9f73 seq_write
+EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x327217fd tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0x327529d3 scsi_scan_target
+EXPORT_SYMBOL vmlinux 0x327607cb __blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x327b9c1b pmu_poll_adb
+EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint
+EXPORT_SYMBOL vmlinux 0x32afec35 inetdev_by_index
+EXPORT_SYMBOL vmlinux 0x32b0e27b kthread_bind
+EXPORT_SYMBOL vmlinux 0x32bbbd81 hippi_type_trans
+EXPORT_SYMBOL vmlinux 0x32bf94f5 neigh_ifdown
+EXPORT_SYMBOL vmlinux 0x32cebcae generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x32ebf362 bioset_free
+EXPORT_SYMBOL vmlinux 0x331aea17 rtc_dev_update_irq_enable_emul
+EXPORT_SYMBOL vmlinux 0x331f0ca1 jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0x33540f11 matrox_G100
+EXPORT_SYMBOL vmlinux 0x3378a9bb dquot_scan_active
+EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0x33ea6c1f inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x33fbc439 xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x34007a66 no_llseek
+EXPORT_SYMBOL vmlinux 0x3438aaae vio_cmo_set_dev_desired
+EXPORT_SYMBOL vmlinux 0x344adbd5 init_cdrom_command
+EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long
+EXPORT_SYMBOL vmlinux 0x346c29ee __scsi_put_command
+EXPORT_SYMBOL vmlinux 0x34922ab9 inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x349cba85 strchr
+EXPORT_SYMBOL vmlinux 0x34aa0aea __free_pages
+EXPORT_SYMBOL vmlinux 0x34bfe13a wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x34c04792 dquot_resume
+EXPORT_SYMBOL vmlinux 0x34c2d5b3 ps3_sb_event_receive_port_setup
+EXPORT_SYMBOL vmlinux 0x34d5ad63 netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x351d94f9 blk_get_request
+EXPORT_SYMBOL vmlinux 0x3529986d sock_no_connect
+EXPORT_SYMBOL vmlinux 0x3552ce53 may_umount_tree
+EXPORT_SYMBOL vmlinux 0x3557edcc ide_set_handler
+EXPORT_SYMBOL vmlinux 0x356a18e4 generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf
+EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator
+EXPORT_SYMBOL vmlinux 0x35d23449 scsi_put_command
+EXPORT_SYMBOL vmlinux 0x35ed6e4e phy_driver_register
+EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x362bbc77 tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0x369b0758 do_truncate
+EXPORT_SYMBOL vmlinux 0x36b0e732 try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x370cface node_data
+EXPORT_SYMBOL vmlinux 0x371902e9 _lv1_get_lpm_interrupt_status
+EXPORT_SYMBOL vmlinux 0x371d2130 check_legacy_ioport
+EXPORT_SYMBOL vmlinux 0x37383edd rtas_get_power_level
+EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x375465a7 radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0x375f9746 unregister_console
+EXPORT_SYMBOL vmlinux 0x379d9761 genphy_suspend
+EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic
+EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37e21e8f wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x37f282e3 of_register_i2c_devices
+EXPORT_SYMBOL vmlinux 0x382777ab _lv1_gpu_context_allocate
+EXPORT_SYMBOL vmlinux 0x382edb9b posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0x383ad2a2 jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x38433657 generic_file_llseek
+EXPORT_SYMBOL vmlinux 0x386a663d __dst_free
+EXPORT_SYMBOL vmlinux 0x38719fc9 netif_device_detach
+EXPORT_SYMBOL vmlinux 0x388959b5 _lv1_net_stop_tx_dma
+EXPORT_SYMBOL vmlinux 0x3889f940 dev_getbyhwaddr
+EXPORT_SYMBOL vmlinux 0x388bf8fd udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x38b92846 llc_remove_pack
+EXPORT_SYMBOL vmlinux 0x38bf9739 pci_enable_msi_block
+EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0x38fb9933 tty_std_termios
+EXPORT_SYMBOL vmlinux 0x39012054 sg_miter_next
+EXPORT_SYMBOL vmlinux 0x39051f5d pci_disable_device
+EXPORT_SYMBOL vmlinux 0x391e2055 neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x393b43c8 pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x397a8960 unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x399b1912 log_start_commit
+EXPORT_SYMBOL vmlinux 0x39bdece3 pcim_iomap
+EXPORT_SYMBOL vmlinux 0x39cdf63c wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0x39f158e8 i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0x3a031269 __napi_schedule
+EXPORT_SYMBOL vmlinux 0x3a0521df scsi_host_get
+EXPORT_SYMBOL vmlinux 0x3a139d43 arp_send
+EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a3d720c __scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x3a53b7b5 neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x3a5e3fe1 security_path_mknod
+EXPORT_SYMBOL vmlinux 0x3a68b102 submit_bh
+EXPORT_SYMBOL vmlinux 0x3a7cf4d1 eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x3a8dfb32 netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3aa69f78 bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0x3b002cc9 ip_dev_find
+EXPORT_SYMBOL vmlinux 0x3b1e4eb4 inode_setattr
+EXPORT_SYMBOL vmlinux 0x3b3016d3 cpufreq_unregister_notifier
+EXPORT_SYMBOL vmlinux 0x3b615a21 wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0x3b6ef6c6 tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x3baa6db5 phys_mem_access_prot
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3bf72d18 __wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x3bfc816d simple_write_end
+EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf
+EXPORT_SYMBOL vmlinux 0x3c4c784b bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x3c528475 remove_arg_zero
+EXPORT_SYMBOL vmlinux 0x3c782261 journal_abort
+EXPORT_SYMBOL vmlinux 0x3c880297 mpage_writepage
+EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size
+EXPORT_SYMBOL vmlinux 0x3ca3bbbc matrox_millennium
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq
+EXPORT_SYMBOL vmlinux 0x3cfc2d6a jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0x3d17c384 tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x3d38e7a3 swiotlb_dma_supported
+EXPORT_SYMBOL vmlinux 0x3d3d0b78 udp_disconnect
+EXPORT_SYMBOL vmlinux 0x3d400804 mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0x3d40885e mpage_readpages
+EXPORT_SYMBOL vmlinux 0x3d539383 rtnl_notify
+EXPORT_SYMBOL vmlinux 0x3d54ac01 _lv1_net_stop_rx_dma
+EXPORT_SYMBOL vmlinux 0x3d5fb186 kick_iocb
+EXPORT_SYMBOL vmlinux 0x3d6b62f1 tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0x3d75a543 generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x3d9aa61f tcp_poll
+EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0x3daa2d55 dquot_acquire
+EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0x3dc20fa4 simple_link
+EXPORT_SYMBOL vmlinux 0x3dce3512 generic_delete_inode
+EXPORT_SYMBOL vmlinux 0x3dd636e2 kobject_del
+EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e2195be __ide_dma_bad_drive
+EXPORT_SYMBOL vmlinux 0x3e23f038 scsi_device_resume
+EXPORT_SYMBOL vmlinux 0x3e286dca _lv1_get_rtc
+EXPORT_SYMBOL vmlinux 0x3e35a95f pci_request_region
+EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks
+EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e51e207 scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource
+EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3ec60d87 netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x3ecdf9c4 create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3f03b70f tty_port_open
+EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep
+EXPORT_SYMBOL vmlinux 0x3f06a656 _lv1_construct_event_receive_port
+EXPORT_SYMBOL vmlinux 0x3f15d85a pci_release_regions
+EXPORT_SYMBOL vmlinux 0x3f22d192 sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x3f3585f8 kobject_set_name
+EXPORT_SYMBOL vmlinux 0x3f3e5ce9 blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0x3f406a3b enable_kernel_altivec
+EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3fa03a97 memset
+EXPORT_SYMBOL vmlinux 0x3fa913da strspn
+EXPORT_SYMBOL vmlinux 0x3fbfd6ed _lv1_gpu_open
+EXPORT_SYMBOL vmlinux 0x3fd557f0 security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0x3fe74d5d rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0x3fe8d8ad __tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0x3fec048f sg_next
+EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable
+EXPORT_SYMBOL vmlinux 0x3ff8d0f1 security_file_mmap
+EXPORT_SYMBOL vmlinux 0x3fff7c1f tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x4044dc10 inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x404e6d38 pci_match_id
+EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds
+EXPORT_SYMBOL vmlinux 0x40698b7a sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x407debbe elv_register_queue
+EXPORT_SYMBOL vmlinux 0x409a56d0 ps2_begin_command
+EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40b570d5 ppc_md
+EXPORT_SYMBOL vmlinux 0x40c260d0 qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x40ea9e2c security_path_symlink
+EXPORT_SYMBOL vmlinux 0x4101a975 ide_fixstring
+EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring
+EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode
+EXPORT_SYMBOL vmlinux 0x410ab63c jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0x410e8440 inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0x4126c789 gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x412d20fc datagram_poll
+EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp
+EXPORT_SYMBOL vmlinux 0x41361807 _lv1_get_logical_ppe_id
+EXPORT_SYMBOL vmlinux 0x4144854f key_unlink
+EXPORT_SYMBOL vmlinux 0x41482bae blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user
+EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features
+EXPORT_SYMBOL vmlinux 0x4183373d phy_disable_interrupts
+EXPORT_SYMBOL vmlinux 0x418559ef fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x4189b8b6 tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0x41c893b7 jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0x41ca30d3 i2c_release_client
+EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0x41d1d0f7 console_start
+EXPORT_SYMBOL vmlinux 0x41dbf4de _lv1_start_lpm
+EXPORT_SYMBOL vmlinux 0x41e31af5 start_tty
+EXPORT_SYMBOL vmlinux 0x4206ff1b tty_check_change
+EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x421f4746 blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0x42224298 sscanf
+EXPORT_SYMBOL vmlinux 0x42551ac5 tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42b0ff04 __blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0x42b4f1a5 input_flush_device
+EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages
+EXPORT_SYMBOL vmlinux 0x431a3d41 simple_rename
+EXPORT_SYMBOL vmlinux 0x433308e8 pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short
+EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem
+EXPORT_SYMBOL vmlinux 0x43552b03 schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0x43583718 vfs_readv
+EXPORT_SYMBOL vmlinux 0x43583c34 tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32
+EXPORT_SYMBOL vmlinux 0x43a01f90 complete_all
+EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get
+EXPORT_SYMBOL vmlinux 0x43ac8d7e compat_sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0x43b6b835 inet_listen
+EXPORT_SYMBOL vmlinux 0x43bcd220 cpufreq_global_kobject
+EXPORT_SYMBOL vmlinux 0x43c66774 sock_create_kern
+EXPORT_SYMBOL vmlinux 0x43d6c82d clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0x43d96e45 force_sig
+EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg
+EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x4419d906 init_special_inode
+EXPORT_SYMBOL vmlinux 0x4432359a alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0x44336a39 dev_uc_flush
+EXPORT_SYMBOL vmlinux 0x443541c4 touch_atime
+EXPORT_SYMBOL vmlinux 0x444779c4 nla_find
+EXPORT_SYMBOL vmlinux 0x444ea289 security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x4450743e blk_queue_ordered
+EXPORT_SYMBOL vmlinux 0x4472b8aa filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x447dde2a d_move
+EXPORT_SYMBOL vmlinux 0x4482fbda cdrom_number_of_slots
+EXPORT_SYMBOL vmlinux 0x448c37b4 slow_work_cancel
+EXPORT_SYMBOL vmlinux 0x449c8327 set_bh_page
+EXPORT_SYMBOL vmlinux 0x44c763be blk_free_tags
+EXPORT_SYMBOL vmlinux 0x44e6a3d4 cdrom_ioctl
+EXPORT_SYMBOL vmlinux 0x44e9a829 match_token
+EXPORT_SYMBOL vmlinux 0x44eacb07 dqput
+EXPORT_SYMBOL vmlinux 0x44eb192e wait_for_completion
+EXPORT_SYMBOL vmlinux 0x44f3b717 i2c_clients_command
+EXPORT_SYMBOL vmlinux 0x44fb098d simple_statfs
+EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled
+EXPORT_SYMBOL vmlinux 0x4544b7d6 get_user_pages
+EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x45528ae9 vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x456355f2 alloc_file
+EXPORT_SYMBOL vmlinux 0x4564459b _lv1_set_virtual_uart_param
+EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0x45947727 param_array_set
+EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states
+EXPORT_SYMBOL vmlinux 0x45a55ec8 __iounmap
+EXPORT_SYMBOL vmlinux 0x45b219a8 tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0x45b9bb97 pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0x45c2b2ec bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0x45cfe80b pasemi_dma_free_flag
+EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x45de7aed devm_iounmap
+EXPORT_SYMBOL vmlinux 0x45eebf59 dma_pool_free
+EXPORT_SYMBOL vmlinux 0x4601b4fd kmem_cache_size
+EXPORT_SYMBOL vmlinux 0x461ebfa0 __copy_tofrom_user
+EXPORT_SYMBOL vmlinux 0x4620ce21 deactivate_super
+EXPORT_SYMBOL vmlinux 0x46623515 of_gpio_count
+EXPORT_SYMBOL vmlinux 0x466c14a7 __delay
+EXPORT_SYMBOL vmlinux 0x467d7682 dquot_quota_off
+EXPORT_SYMBOL vmlinux 0x46a4d8a1 vio_unregister_device
+EXPORT_SYMBOL vmlinux 0x46ae18b8 inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x46bc59fe phy_connect
+EXPORT_SYMBOL vmlinux 0x46d55d12 scsi_free_command
+EXPORT_SYMBOL vmlinux 0x46d7dc05 install_exec_creds
+EXPORT_SYMBOL vmlinux 0x46ec329a neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0x46f6041e unregister_snap_client
+EXPORT_SYMBOL vmlinux 0x47075d5d macio_release_resource
+EXPORT_SYMBOL vmlinux 0x474d8f12 of_find_all_nodes
+EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x47582a14 otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0x476df15a dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x479a75c4 matroxfb_register_driver
+EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit
+EXPORT_SYMBOL vmlinux 0x47b75641 pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0x47b9da30 pci_disable_msix
+EXPORT_SYMBOL vmlinux 0x47c235bd __dquot_transfer
+EXPORT_SYMBOL vmlinux 0x48000553 mempool_create_node
+EXPORT_SYMBOL vmlinux 0x48079250 inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x480ab42a __next_cpu_nr
+EXPORT_SYMBOL vmlinux 0x48273140 abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x48404b9a remove_wait_queue
+EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days
+EXPORT_SYMBOL vmlinux 0x4881efab pmac_get_partition
+EXPORT_SYMBOL vmlinux 0x48bdd6bd register_qdisc
+EXPORT_SYMBOL vmlinux 0x48c1d080 tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0x48f0326e mod_timer
+EXPORT_SYMBOL vmlinux 0x49216c85 DAC1064_global_restore
+EXPORT_SYMBOL vmlinux 0x4941f5ea unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x4948c0a9 gen_pool_add
+EXPORT_SYMBOL vmlinux 0x494b3f75 d_lookup
+EXPORT_SYMBOL vmlinux 0x495c2956 pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0x495ec6eb pasemi_dma_alloc_buf
+EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x4969ef56 sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x4977391c scsi_register_driver
+EXPORT_SYMBOL vmlinux 0x4992907f blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string
+EXPORT_SYMBOL vmlinux 0x49f6445a cfb_copyarea
+EXPORT_SYMBOL vmlinux 0x49fe99e0 tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x4a0399cf end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x4a25c68f serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x4a2a5aba dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a3abbae __xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x4a44d923 input_open_device
+EXPORT_SYMBOL vmlinux 0x4a69a939 macio_enable_devres
+EXPORT_SYMBOL vmlinux 0x4a76b163 request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0x4a872318 i2c_del_driver
+EXPORT_SYMBOL vmlinux 0x4a8b55ec dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x4a9e1a1f ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0x4aa905b3 of_scan_pci_bridge
+EXPORT_SYMBOL vmlinux 0x4aaab2b1 groups_alloc
+EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x4ac64da4 _lv1_select_virtual_address_space
+EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource
+EXPORT_SYMBOL vmlinux 0x4adad6df simple_setsize
+EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b1c2db4 eth_header_parse
+EXPORT_SYMBOL vmlinux 0x4b34f6a9 kmem_cache_alloc_node_notrace
+EXPORT_SYMBOL vmlinux 0x4b3cb349 _lv1_destruct_io_irq_outlet
+EXPORT_SYMBOL vmlinux 0x4b6fcddc _lv1_set_spe_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x4b7ed27b sleep_on
+EXPORT_SYMBOL vmlinux 0x4b97c0b7 scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x4ba3d243 fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0x4baeacc2 vga_put
+EXPORT_SYMBOL vmlinux 0x4bbc3e5f pm_flags
+EXPORT_SYMBOL vmlinux 0x4be5286d key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0x4be9f91c generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0x4c10b286 framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x4c11435a _raw_read_lock_bh
+EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c29563f wireless_send_event
+EXPORT_SYMBOL vmlinux 0x4c30d77a dquot_file_open
+EXPORT_SYMBOL vmlinux 0x4c38ab47 xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp
+EXPORT_SYMBOL vmlinux 0x4c5c52e8 scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0x4c6b2aff jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0x4c8aae67 sock_wfree
+EXPORT_SYMBOL vmlinux 0x4c945100 __nla_put
+EXPORT_SYMBOL vmlinux 0x4ca60384 genl_register_ops
+EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cbecd8b cdrom_get_media_event
+EXPORT_SYMBOL vmlinux 0x4cbf3eaf journal_dirty_data
+EXPORT_SYMBOL vmlinux 0x4cddbd3b dev_mc_del
+EXPORT_SYMBOL vmlinux 0x4cef0eba framebuffer_release
+EXPORT_SYMBOL vmlinux 0x4d0577b6 wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0x4d0900f6 fput
+EXPORT_SYMBOL vmlinux 0x4d6cb01a cdrom_mode_select
+EXPORT_SYMBOL vmlinux 0x4d91f9c4 simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0x4d9e1b6f blk_complete_request
+EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy
+EXPORT_SYMBOL vmlinux 0x4ddaa335 scsi_host_put
+EXPORT_SYMBOL vmlinux 0x4dee9f9a skb_store_bits
+EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int
+EXPORT_SYMBOL vmlinux 0x4e439fb8 dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console
+EXPORT_SYMBOL vmlinux 0x4e714572 vfs_getattr
+EXPORT_SYMBOL vmlinux 0x4e76525a dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum
+EXPORT_SYMBOL vmlinux 0x4eb3ea9b notify_change
+EXPORT_SYMBOL vmlinux 0x4edc1e72 f_setown
+EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals
+EXPORT_SYMBOL vmlinux 0x4ee50a08 netpoll_poll
+EXPORT_SYMBOL vmlinux 0x4ef05dc6 of_find_matching_node
+EXPORT_SYMBOL vmlinux 0x4ef3875c __blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x4ef63de1 __xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0x4f0d708e xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x4f142606 con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f59f761 bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x4f664db6 _lv1_insert_htab_entry
+EXPORT_SYMBOL vmlinux 0x4f6831c6 sys_copyarea
+EXPORT_SYMBOL vmlinux 0x4f6f8530 sock_register
+EXPORT_SYMBOL vmlinux 0x4f8bfb9f ilookup5
+EXPORT_SYMBOL vmlinux 0x4f8e72db bdevname
+EXPORT_SYMBOL vmlinux 0x4fad3beb mdiobus_scan
+EXPORT_SYMBOL vmlinux 0x4fb37f00 dev_mc_init
+EXPORT_SYMBOL vmlinux 0x4fd14a7b register_console
+EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command
+EXPORT_SYMBOL vmlinux 0x4fe01a34 __module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x5004bf79 kernel_connect
+EXPORT_SYMBOL vmlinux 0x50082b43 skb_set_dev
+EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x503ee3bd skb_checksum
+EXPORT_SYMBOL vmlinux 0x5063bad7 gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0x50646e83 __scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x50754ed5 i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0x50ae3c54 _lv1_gpu_attribute
+EXPORT_SYMBOL vmlinux 0x50cf360e of_translate_address
+EXPORT_SYMBOL vmlinux 0x50e1f867 kobject_init
+EXPORT_SYMBOL vmlinux 0x50e3430e dst_destroy
+EXPORT_SYMBOL vmlinux 0x50e97ec0 mutex_trylock
+EXPORT_SYMBOL vmlinux 0x50f8a9c6 generic_removexattr
+EXPORT_SYMBOL vmlinux 0x510b87ef pipe_lock
+EXPORT_SYMBOL vmlinux 0x510c7962 journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x51105eee of_node_get
+EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x513acc4d generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0x513b2907 elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0x51718fd6 dm_io
+EXPORT_SYMBOL vmlinux 0x51829ba8 xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x518f04c0 pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x51906341 generic_write_checks
+EXPORT_SYMBOL vmlinux 0x519b0da3 finish_wait
+EXPORT_SYMBOL vmlinux 0x51aab6d6 journal_revoke
+EXPORT_SYMBOL vmlinux 0x51af151f tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x5209c2ec security_d_instantiate
+EXPORT_SYMBOL vmlinux 0x523db853 jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x52606221 find_lock_page
+EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday
+EXPORT_SYMBOL vmlinux 0x527830ff pmac_xpram_read
+EXPORT_SYMBOL vmlinux 0x5294a6f6 rfkill_blocked
+EXPORT_SYMBOL vmlinux 0x52a3f215 pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy
+EXPORT_SYMBOL vmlinux 0x52c2ef34 rb_erase
+EXPORT_SYMBOL vmlinux 0x52d7b2fd llc_sap_list
+EXPORT_SYMBOL vmlinux 0x52e3fa05 _lv1_allocate_memory
+EXPORT_SYMBOL vmlinux 0x52e41ee1 __skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort
+EXPORT_SYMBOL vmlinux 0x53036f4d simple_dir_operations
+EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend
+EXPORT_SYMBOL vmlinux 0x532eb70d scsi_scan_host
+EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x5339f5f8 _lv1_read_virtual_uart
+EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat
+EXPORT_SYMBOL vmlinux 0x5384446c of_gpio_simple_xlate
+EXPORT_SYMBOL vmlinux 0x53879146 fb_blank
+EXPORT_SYMBOL vmlinux 0x53899050 scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0x538bf4bd bio_alloc
+EXPORT_SYMBOL vmlinux 0x538f74cc unregister_binfmt
+EXPORT_SYMBOL vmlinux 0x53977d4a generic_getxattr
+EXPORT_SYMBOL vmlinux 0x53a07aee simple_empty
+EXPORT_SYMBOL vmlinux 0x53a55762 tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x53ccd9dc sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x53ebab1b _outsl_ns
+EXPORT_SYMBOL vmlinux 0x5422b0a8 da903x_query_status
+EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate
+EXPORT_SYMBOL vmlinux 0x542f4f00 simple_fill_super
+EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x544738d9 vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0x54568b75 register_memory_isolate_notifier
+EXPORT_SYMBOL vmlinux 0x546359ed serio_open
+EXPORT_SYMBOL vmlinux 0x547e4c43 block_write_full_page
+EXPORT_SYMBOL vmlinux 0x548f6b16 copy_4K_page
+EXPORT_SYMBOL vmlinux 0x5497bd04 journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x54a4470d phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x54bd4603 tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0x54c10f92 vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54fe77fe pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x55031291 dev_add_pack
+EXPORT_SYMBOL vmlinux 0x550bbd09 __brelse
+EXPORT_SYMBOL vmlinux 0x552c8fca blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x55327f0e fd_install
+EXPORT_SYMBOL vmlinux 0x55502fea elv_add_request
+EXPORT_SYMBOL vmlinux 0x5564444a of_n_size_cells
+EXPORT_SYMBOL vmlinux 0x5568c553 complete
+EXPORT_SYMBOL vmlinux 0x5573c300 register_netdevice
+EXPORT_SYMBOL vmlinux 0x5577ef9e udp_table
+EXPORT_SYMBOL vmlinux 0x557b3dd8 _lv1_gpu_close
+EXPORT_SYMBOL vmlinux 0x55923682 blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday
+EXPORT_SYMBOL vmlinux 0x561411f8 blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x561fec86 softnet_data
+EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user
+EXPORT_SYMBOL vmlinux 0x564ecad1 input_inject_event
+EXPORT_SYMBOL vmlinux 0x568804ee _lv1_destruct_event_receive_port
+EXPORT_SYMBOL vmlinux 0x5698a39f netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x569ae908 ipv4_specific
+EXPORT_SYMBOL vmlinux 0x56a10763 csum_tcpudp_magic
+EXPORT_SYMBOL vmlinux 0x56c2b95b rtas_progress
+EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function
+EXPORT_SYMBOL vmlinux 0x5711d693 generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x57345f39 mpage_readpage
+EXPORT_SYMBOL vmlinux 0x574cca4e ide_stall_queue
+EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16
+EXPORT_SYMBOL vmlinux 0x576fa2ee of_dev_put
+EXPORT_SYMBOL vmlinux 0x57972c9f compat_ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x579bab50 _lv1_gpu_memory_free
+EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57cbf6b0 writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path
+EXPORT_SYMBOL vmlinux 0x57f3cf06 of_device_alloc
+EXPORT_SYMBOL vmlinux 0x5802bd17 vfs_writev
+EXPORT_SYMBOL vmlinux 0x5808e275 netlink_ack
+EXPORT_SYMBOL vmlinux 0x581a2253 vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x583ced6e inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0x584a73ab swiotlb_free_coherent
+EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep
+EXPORT_SYMBOL vmlinux 0x585aadb1 xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0x586b609a vfs_lstat
+EXPORT_SYMBOL vmlinux 0x58894f36 matrox_mystique
+EXPORT_SYMBOL vmlinux 0x58a0eebd __dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x58cc778c generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x58d6440b tcp_connect
+EXPORT_SYMBOL vmlinux 0x58dfee20 generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0x5901263d dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0x59286d59 bio_copy_kern
+EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client
+EXPORT_SYMBOL vmlinux 0x5934f159 block_sync_page
+EXPORT_SYMBOL vmlinux 0x593bfd50 paca
+EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map
+EXPORT_SYMBOL vmlinux 0x59537f4d starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x595d0946 empty_zero_page
+EXPORT_SYMBOL vmlinux 0x5969889a scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x596d18ae i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x59754053 dm_table_get_md
+EXPORT_SYMBOL vmlinux 0x59816f8a scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0x598765c6 journal_init_inode
+EXPORT_SYMBOL vmlinux 0x599217b4 cpufreq_get_policy
+EXPORT_SYMBOL vmlinux 0x599f3ff3 pcibios_resource_to_bus
+EXPORT_SYMBOL vmlinux 0x59acdc3a dev_addr_del
+EXPORT_SYMBOL vmlinux 0x59ad89ef ether_setup
+EXPORT_SYMBOL vmlinux 0x59b3378a completion_done
+EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier
+EXPORT_SYMBOL vmlinux 0x59e79f0f otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0x59eea2ad inet_put_port
+EXPORT_SYMBOL vmlinux 0x59f1b6e1 inet_frags_init
+EXPORT_SYMBOL vmlinux 0x59f49c48 napi_skb_finish
+EXPORT_SYMBOL vmlinux 0x5a08d5a3 input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0x5a0a3134 init_task
+EXPORT_SYMBOL vmlinux 0x5a12cce7 bd_set_size
+EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc
+EXPORT_SYMBOL vmlinux 0x5a50a056 deny_write_access
+EXPORT_SYMBOL vmlinux 0x5a5e55fb jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a783587 i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0x5a87cce8 blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x5aaddd3c sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0x5ac43df8 pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0x5ad10e49 vga_tryget
+EXPORT_SYMBOL vmlinux 0x5b2fc6d8 simple_getattr
+EXPORT_SYMBOL vmlinux 0x5b39988e ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0x5b43f1f1 rtas_service_present
+EXPORT_SYMBOL vmlinux 0x5b5166c7 alloc_netdev_mq
+EXPORT_SYMBOL vmlinux 0x5b639fa6 register_nls
+EXPORT_SYMBOL vmlinux 0x5b65a79c generic_setattr
+EXPORT_SYMBOL vmlinux 0x5b6c13c6 blk_peek_request
+EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0x5b81a561 journal_destroy
+EXPORT_SYMBOL vmlinux 0x5b9828c5 dma_spin_lock
+EXPORT_SYMBOL vmlinux 0x5bb7e3ee jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x5bbfe09d scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0x5bd05d57 input_grab_device
+EXPORT_SYMBOL vmlinux 0x5be49176 scsi_add_device
+EXPORT_SYMBOL vmlinux 0x5c0113e9 inet_addr_type
+EXPORT_SYMBOL vmlinux 0x5c37f319 _raw_spin_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x5c415b2e wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq
+EXPORT_SYMBOL vmlinux 0x5c5aa2f6 put_page
+EXPORT_SYMBOL vmlinux 0x5c681111 mdio_bus_type
+EXPORT_SYMBOL vmlinux 0x5c8eeade __dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x5cb976a2 inet_accept
+EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0x5ccc9045 _lv1_close_device
+EXPORT_SYMBOL vmlinux 0x5ccf115f xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0x5cd35488 qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x5cf30e10 __debugger_ipi
+EXPORT_SYMBOL vmlinux 0x5d0a638a dev_addr_add
+EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat
+EXPORT_SYMBOL vmlinux 0x5d2cb7e8 blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0x5d353f02 tcp4_gro_complete
+EXPORT_SYMBOL vmlinux 0x5d6d6e03 netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x5da632a9 blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0x5dbbe98e memmove
+EXPORT_SYMBOL vmlinux 0x5dd39cfd vfs_fstatat
+EXPORT_SYMBOL vmlinux 0x5dd511fc simple_set_mnt
+EXPORT_SYMBOL vmlinux 0x5e0395dc dquot_alloc
+EXPORT_SYMBOL vmlinux 0x5e0ccbe2 tty_vhangup
+EXPORT_SYMBOL vmlinux 0x5e18b173 ps2_handle_response
+EXPORT_SYMBOL vmlinux 0x5e3a8a9c __wake_up
+EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask
+EXPORT_SYMBOL vmlinux 0x5ea2a20f dquot_drop
+EXPORT_SYMBOL vmlinux 0x5ead016e of_phy_connect_fixed_link
+EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5edb2267 alloc_hippi_dev
+EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd
+EXPORT_SYMBOL vmlinux 0x5ef16460 of_get_cpu_node
+EXPORT_SYMBOL vmlinux 0x5f3e0528 fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x5f4bd24d cdrom_open
+EXPORT_SYMBOL vmlinux 0x5f4df130 journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x5f5bef28 xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x5f5e9e87 fb_get_mode
+EXPORT_SYMBOL vmlinux 0x5f66f68e __register_binfmt
+EXPORT_SYMBOL vmlinux 0x5f702aba keyring_clear
+EXPORT_SYMBOL vmlinux 0x5f8a2728 isa_io_base
+EXPORT_SYMBOL vmlinux 0x5fa3e504 i2c_use_client
+EXPORT_SYMBOL vmlinux 0x5fa79d2f pci_get_subsys
+EXPORT_SYMBOL vmlinux 0x5fc60f18 tcp_check_req
+EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr
+EXPORT_SYMBOL vmlinux 0x5fdc8c35 matroxfb_g450_setclk
+EXPORT_SYMBOL vmlinux 0x5fec32e1 __bread
+EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x600ad29e simple_transaction_set
+EXPORT_SYMBOL vmlinux 0x601e25ae save_mount_options
+EXPORT_SYMBOL vmlinux 0x60564543 register_netdev
+EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x6067a146 memcpy
+EXPORT_SYMBOL vmlinux 0x606d9a12 dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0x60820ad4 fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net
+EXPORT_SYMBOL vmlinux 0x60ba0592 iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0x60c90227 vm_map_ram
+EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n
+EXPORT_SYMBOL vmlinux 0x61229b10 node_to_cpumask_map
+EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x612b3ee6 journal_start
+EXPORT_SYMBOL vmlinux 0x61381de4 dma_direct_ops
+EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free
+EXPORT_SYMBOL vmlinux 0x6197219a end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0x61a4487c _lv1_gpu_device_unmap
+EXPORT_SYMBOL vmlinux 0x61a60f1f rb_replace_node
+EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61caa2b8 path_lookup
+EXPORT_SYMBOL vmlinux 0x61d27943 lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x61dcdcd3 _lv1_pause
+EXPORT_SYMBOL vmlinux 0x61eef2c9 _insb
+EXPORT_SYMBOL vmlinux 0x61f7d50a tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0x620a3fbd mnt_pin
+EXPORT_SYMBOL vmlinux 0x621a656e bdi_unregister
+EXPORT_SYMBOL vmlinux 0x622151c8 __invalidate_device
+EXPORT_SYMBOL vmlinux 0x6258ff7a panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister
+EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x63231f8e journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x6347d8c4 serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x6349e46b keyring_search
+EXPORT_SYMBOL vmlinux 0x6360d639 cpu_all_bits
+EXPORT_SYMBOL vmlinux 0x6379439f del_timer_sync
+EXPORT_SYMBOL vmlinux 0x638c172e vfs_fstat
+EXPORT_SYMBOL vmlinux 0x638ff0d3 create_proc_entry
+EXPORT_SYMBOL vmlinux 0x63a305f0 filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x63ed3227 of_phy_connect
+EXPORT_SYMBOL vmlinux 0x63f75920 _lv1_construct_virtual_address_space
+EXPORT_SYMBOL vmlinux 0x63f9c93f ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x641548fd journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x6416a9de textsearch_unregister
+EXPORT_SYMBOL vmlinux 0x64185f15 dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0x64390f0e phy_disconnect
+EXPORT_SYMBOL vmlinux 0x643ad3e7 blk_make_request
+EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x64695ffb __secpath_destroy
+EXPORT_SYMBOL vmlinux 0x646cc6ab pmu_poll
+EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait
+EXPORT_SYMBOL vmlinux 0x64c2a849 __inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0x64d1a27e soft_cursor
+EXPORT_SYMBOL vmlinux 0x64f20313 tty_name
+EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0x650aef39 rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x651a4139 test_taint
+EXPORT_SYMBOL vmlinux 0x652b5984 __sk_dst_check
+EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name
+EXPORT_SYMBOL vmlinux 0x654d4dc8 kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0x6563f05c i2c_bit_add_bus
+EXPORT_SYMBOL vmlinux 0x6572e8ce d_genocide
+EXPORT_SYMBOL vmlinux 0x65b3cfb0 dm_table_unplug_all
+EXPORT_SYMBOL vmlinux 0x65bb58a2 _raw_read_trylock
+EXPORT_SYMBOL vmlinux 0x65c6e016 pci_choose_state
+EXPORT_SYMBOL vmlinux 0x65c8eb12 seq_open
+EXPORT_SYMBOL vmlinux 0x663e1583 mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x6643b148 prepare_creds
+EXPORT_SYMBOL vmlinux 0x66508b49 max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0x66535777 d_invalidate
+EXPORT_SYMBOL vmlinux 0x665ac41f bh_submit_read
+EXPORT_SYMBOL vmlinux 0x66614731 rfkill_register
+EXPORT_SYMBOL vmlinux 0x6663db60 __init_rwsem
+EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x6693c8a7 kernel_accept
+EXPORT_SYMBOL vmlinux 0x66a256b3 ida_pre_get
+EXPORT_SYMBOL vmlinux 0x66ad1cb3 _lv1_set_lpm_general_control
+EXPORT_SYMBOL vmlinux 0x66bf5721 compat_ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x66cbf14b pmac_xpram_write
+EXPORT_SYMBOL vmlinux 0x6704ed82 ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time
+EXPORT_SYMBOL vmlinux 0x672144bd strlcpy
+EXPORT_SYMBOL vmlinux 0x6727ef73 sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x67398cfa blk_register_region
+EXPORT_SYMBOL vmlinux 0x6777684c kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0x67816f87 dst_discard
+EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67be14a3 __insert_inode_hash
+EXPORT_SYMBOL vmlinux 0x67c959f7 bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0x67d26228 lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x67dc1611 genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0x67ed7f7b scsi_unregister
+EXPORT_SYMBOL vmlinux 0x68049d09 ps3_dma_region_free
+EXPORT_SYMBOL vmlinux 0x68186239 of_register_driver
+EXPORT_SYMBOL vmlinux 0x681ac108 set_page_dirty
+EXPORT_SYMBOL vmlinux 0x68320844 tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0x684adae2 sock_init_data
+EXPORT_SYMBOL vmlinux 0x68609857 complete_and_exit
+EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval
+EXPORT_SYMBOL vmlinux 0x688196b2 __xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x68b67d54 input_release_device
+EXPORT_SYMBOL vmlinux 0x68ca78e2 check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x68e1ef51 smu_present
+EXPORT_SYMBOL vmlinux 0x68f2f199 blk_stack_limits
+EXPORT_SYMBOL vmlinux 0x690f4d93 mach_pseries
+EXPORT_SYMBOL vmlinux 0x691afb61 pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0x692ea18f sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0x69643270 scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days
+EXPORT_SYMBOL vmlinux 0x6974866b cdrom_get_last_written
+EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int
+EXPORT_SYMBOL vmlinux 0x698b97e5 ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem
+EXPORT_SYMBOL vmlinux 0x69998558 inode_init_once
+EXPORT_SYMBOL vmlinux 0x699ccbf8 _lv1_deconfigure_virtual_uart_irq
+EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be
+EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource
+EXPORT_SYMBOL vmlinux 0x69ae52a0 xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0x69c57c86 tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69f32610 __cputime_msec_factor
+EXPORT_SYMBOL vmlinux 0x69f60bd4 skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a04a119 dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x6a3636d9 scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0x6a3cdf21 ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x6a4d1695 dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0x6a50e8a2 genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask
+EXPORT_SYMBOL vmlinux 0x6a61f874 to_tm
+EXPORT_SYMBOL vmlinux 0x6a64c78b search_binary_handler
+EXPORT_SYMBOL vmlinux 0x6a6e320d pcibus_to_node
+EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6a828cee pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x6a911f99 pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0x6ab2b619 bio_split
+EXPORT_SYMBOL vmlinux 0x6aca5b6e get_disk
+EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be
+EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp
+EXPORT_SYMBOL vmlinux 0x6ad48290 prepare_binprm
+EXPORT_SYMBOL vmlinux 0x6afbe869 eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0x6b18072d phy_register_fixup
+EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname
+EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack
+EXPORT_SYMBOL vmlinux 0x6b387694 _lv1_end_of_interrupt_ext
+EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x6b589a6e _lv1_net_add_multicast_address
+EXPORT_SYMBOL vmlinux 0x6b5dfe73 __debugger_bpt
+EXPORT_SYMBOL vmlinux 0x6b5e6d31 compat_tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x6b6a6498 vio_register_driver
+EXPORT_SYMBOL vmlinux 0x6b6f0c4b _lv1_create_repository_node
+EXPORT_SYMBOL vmlinux 0x6b7f85b5 dquot_quota_on_path
+EXPORT_SYMBOL vmlinux 0x6b8ff509 skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x6bae26d9 lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x6bd226a2 jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6c256050 vmtruncate
+EXPORT_SYMBOL vmlinux 0x6c34ed1f replace_mount_options
+EXPORT_SYMBOL vmlinux 0x6c37f602 pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0x6c427309 sk_reset_txq
+EXPORT_SYMBOL vmlinux 0x6c4327f6 new_inode
+EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x6cc87e5c atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0x6cd3a05c blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0x6ce860f8 dev_uc_init
+EXPORT_SYMBOL vmlinux 0x6cf79aea dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x6d098d2b __mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x6d1743eb _lv1_get_total_execution_time
+EXPORT_SYMBOL vmlinux 0x6d214742 unlock_page
+EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d3cc4e3 skb_queue_head
+EXPORT_SYMBOL vmlinux 0x6d4361bd blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0x6d792256 pci_select_bars
+EXPORT_SYMBOL vmlinux 0x6d816713 unregister_cdrom
+EXPORT_SYMBOL vmlinux 0x6d9c5e8f scsi_device_put
+EXPORT_SYMBOL vmlinux 0x6da928f4 _insw_ns
+EXPORT_SYMBOL vmlinux 0x6dae159f find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x6dc17c45 netlink_unicast
+EXPORT_SYMBOL vmlinux 0x6dc2f816 blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x6de429f9 remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x6de7f575 bio_integrity_free
+EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6df22270 __generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x6df74e3c blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0x6df901f8 eth_header
+EXPORT_SYMBOL vmlinux 0x6e15c8c0 page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0x6e3e42e1 pid_task
+EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e800069 dcache_readdir
+EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x6e883b15 __dquot_free_space
+EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put
+EXPORT_SYMBOL vmlinux 0x6eaed057 blk_stop_queue
+EXPORT_SYMBOL vmlinux 0x6ecab34e create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x6edced98 blk_unplug
+EXPORT_SYMBOL vmlinux 0x6edd1334 module_layout
+EXPORT_SYMBOL vmlinux 0x6f222f78 padata_start
+EXPORT_SYMBOL vmlinux 0x6f3bbdc4 fb_set_cmap
+EXPORT_SYMBOL vmlinux 0x6f5b93a5 __pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x6fa331ed _lv1_construct_io_irq_outlet
+EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fd83b14 tcp_disconnect
+EXPORT_SYMBOL vmlinux 0x6fdcbfc5 scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0x6fe9d8ea dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free
+EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm
+EXPORT_SYMBOL vmlinux 0x7008201c __xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0x701699b2 _lv1_set_spe_privilege_state_area_1_register
+EXPORT_SYMBOL vmlinux 0x70232538 udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0x70493871 __nla_reserve
+EXPORT_SYMBOL vmlinux 0x704c4365 __cputime_sec_factor
+EXPORT_SYMBOL vmlinux 0x704efa05 serio_interrupt
+EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma
+EXPORT_SYMBOL vmlinux 0x705c57b2 __percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0x7064c2a8 phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x70b335b7 complete_request_key
+EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait
+EXPORT_SYMBOL vmlinux 0x70ca7371 security_path_rename
+EXPORT_SYMBOL vmlinux 0x70cae6a8 skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0x70cfa576 sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x70cfcc34 audit_log_end
+EXPORT_SYMBOL vmlinux 0x70ed7df1 fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0x70f86c70 pmu_queue_request
+EXPORT_SYMBOL vmlinux 0x71169d36 generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc
+EXPORT_SYMBOL vmlinux 0x714a6a93 dm_register_target
+EXPORT_SYMBOL vmlinux 0x714c45d4 bio_map_user
+EXPORT_SYMBOL vmlinux 0x715d15bb xfrm_input
+EXPORT_SYMBOL vmlinux 0x716c4990 of_device_unregister
+EXPORT_SYMBOL vmlinux 0x7174e575 xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x717b9f47 sock_create_lite
+EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev
+EXPORT_SYMBOL vmlinux 0x71ac27f0 jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x71ac535d scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x71d1b57c phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0x71e5ab63 dm_table_get_size
+EXPORT_SYMBOL vmlinux 0x71f6eb38 sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x720233c2 tcp_splice_read
+EXPORT_SYMBOL vmlinux 0x72178215 iget_failed
+EXPORT_SYMBOL vmlinux 0x7218fcab alloc_trdev
+EXPORT_SYMBOL vmlinux 0x722bf919 bio_flush_dcache_pages
+EXPORT_SYMBOL vmlinux 0x7242e96d strnchr
+EXPORT_SYMBOL vmlinux 0x729b4a83 _lv1_get_spe_all_interrupt_statuses
+EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma
+EXPORT_SYMBOL vmlinux 0x72bec276 input_register_handler
+EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte
+EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type
+EXPORT_SYMBOL vmlinux 0x7300e84c qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x7314c086 kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0x731a747a pci_io_base
+EXPORT_SYMBOL vmlinux 0x73492d29 skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x735d8503 add_wait_queue
+EXPORT_SYMBOL vmlinux 0x7360484d rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x7375eb5f sock_update_classid
+EXPORT_SYMBOL vmlinux 0x739670e0 gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x73a26d30 truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0x73b992dc idr_remove_all
+EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0x73d6c20b unlock_super
+EXPORT_SYMBOL vmlinux 0x73f6b5c1 __lock_page
+EXPORT_SYMBOL vmlinux 0x73fc7aa9 abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0x73fd02c7 revert_creds
+EXPORT_SYMBOL vmlinux 0x740648f3 d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0x740e4cf6 phy_enable_interrupts
+EXPORT_SYMBOL vmlinux 0x741908ce init_buffer
+EXPORT_SYMBOL vmlinux 0x742a9fc8 seq_path
+EXPORT_SYMBOL vmlinux 0x742e0df6 __xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte
+EXPORT_SYMBOL vmlinux 0x7455ffde set_create_files_as
+EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x74ab133e proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74c2daf8 proto_unregister
+EXPORT_SYMBOL vmlinux 0x74c8cb36 brioctl_set
+EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74dcdcaa qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0x74fadebd __page_cache_alloc
+EXPORT_SYMBOL vmlinux 0x74fe8730 sys_ctrler
+EXPORT_SYMBOL vmlinux 0x751c2917 __wait_on_bit
+EXPORT_SYMBOL vmlinux 0x75270d58 sk_common_release
+EXPORT_SYMBOL vmlinux 0x754578b6 con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x756b6b7d lookup_one_len
+EXPORT_SYMBOL vmlinux 0x756c786e _lv1_connect_interrupt_event_receive_port
+EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp
+EXPORT_SYMBOL vmlinux 0x75754995 _lv1_storage_check_async_status
+EXPORT_SYMBOL vmlinux 0x75994700 add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0x75a5d559 pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0x75a77ae9 tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0x75bcf126 ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc
+EXPORT_SYMBOL vmlinux 0x75e4f5aa pasemi_read_mac_reg
+EXPORT_SYMBOL vmlinux 0x75e8901e of_get_gpio_flags
+EXPORT_SYMBOL vmlinux 0x7605d2c1 vc_resize
+EXPORT_SYMBOL vmlinux 0x760a0f4f yield
+EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x76265e99 skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0x7627bdcf napi_gro_frags
+EXPORT_SYMBOL vmlinux 0x763f935c flush_old_exec
+EXPORT_SYMBOL vmlinux 0x764bd77c request_resource
+EXPORT_SYMBOL vmlinux 0x764e2224 _lv1_disconnect_irq_plug_ext
+EXPORT_SYMBOL vmlinux 0x76534952 unregister_netdev
+EXPORT_SYMBOL vmlinux 0x76566c47 pci_iomap
+EXPORT_SYMBOL vmlinux 0x7667843a sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x766e2abb pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0x769b25d2 _lv1_get_version_info
+EXPORT_SYMBOL vmlinux 0x76b64505 blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0x76b76386 mdiobus_free
+EXPORT_SYMBOL vmlinux 0x76b78448 get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76c28255 xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0x76c98b10 register_gifconf
+EXPORT_SYMBOL vmlinux 0x76ca67c3 ide_complete_rq
+EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode
+EXPORT_SYMBOL vmlinux 0x76d59e51 of_create_pci_dev
+EXPORT_SYMBOL vmlinux 0x76d7d257 set_groups
+EXPORT_SYMBOL vmlinux 0x76e1b2de vfs_rename
+EXPORT_SYMBOL vmlinux 0x76e3a2be __scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x76e6a208 do_splice_to
+EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic
+EXPORT_SYMBOL vmlinux 0x77144936 _lv1_disconnect_irq_plug
+EXPORT_SYMBOL vmlinux 0x77293f07 scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x775bb003 pci_get_class
+EXPORT_SYMBOL vmlinux 0x77622a06 tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x77626337 pagecache_write_end
+EXPORT_SYMBOL vmlinux 0x776e6435 iterate_mounts
+EXPORT_SYMBOL vmlinux 0x7778b968 add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0x779b03fe cdev_add
+EXPORT_SYMBOL vmlinux 0x779bb687 phy_attach
+EXPORT_SYMBOL vmlinux 0x77acd910 inet_ioctl
+EXPORT_SYMBOL vmlinux 0x77bc13a0 strim
+EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality
+EXPORT_SYMBOL vmlinux 0x77e36ef2 genphy_update_link
+EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77f9625d of_unregister_driver
+EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x77fdbbbd follow_down
+EXPORT_SYMBOL vmlinux 0x780529f0 request_firmware
+EXPORT_SYMBOL vmlinux 0x781bf770 matroxfb_g450_connect
+EXPORT_SYMBOL vmlinux 0x7824892a tcp4_gro_receive
+EXPORT_SYMBOL vmlinux 0x78325162 abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x785140a0 scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0x78514e10 hippi_change_mtu
+EXPORT_SYMBOL vmlinux 0x789a17f7 _lv1_destruct_logical_spe
+EXPORT_SYMBOL vmlinux 0x78a99242 ide_do_reset
+EXPORT_SYMBOL vmlinux 0x78cf8855 fetch_dev_dn
+EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78e3825b kern_path
+EXPORT_SYMBOL vmlinux 0x78ed3e5c __init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x790311d1 lock_fb_info
+EXPORT_SYMBOL vmlinux 0x790df6ca __wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x7932b77f napi_frags_finish
+EXPORT_SYMBOL vmlinux 0x793cac8d register_key_type
+EXPORT_SYMBOL vmlinux 0x794391bb clear_user_page
+EXPORT_SYMBOL vmlinux 0x796f5c74 vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x7977afc3 ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79c964f0 redraw_screen
+EXPORT_SYMBOL vmlinux 0x79e0650c alloc_fddidev
+EXPORT_SYMBOL vmlinux 0x79e5c1ee locks_init_lock
+EXPORT_SYMBOL vmlinux 0x79ee6782 macio_request_resources
+EXPORT_SYMBOL vmlinux 0x7a1cc740 pci_scan_slot
+EXPORT_SYMBOL vmlinux 0x7a216c67 ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol
+EXPORT_SYMBOL vmlinux 0x7a4497db kzfree
+EXPORT_SYMBOL vmlinux 0x7a83bb32 macio_register_driver
+EXPORT_SYMBOL vmlinux 0x7aa9e259 _lv1_map_htab
+EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip
+EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0x7afaf039 netlink_set_err
+EXPORT_SYMBOL vmlinux 0x7b33701c swiotlb_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x7b3a6f4c tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x7b41084c __vlan_hwaccel_rx
+EXPORT_SYMBOL vmlinux 0x7b48bdc6 textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x7b718228 ida_destroy
+EXPORT_SYMBOL vmlinux 0x7b757f7e follow_pfn
+EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update
+EXPORT_SYMBOL vmlinux 0x7ba678ab __mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x7bb7e5c1 generic_permission
+EXPORT_SYMBOL vmlinux 0x7bc2940f __bio_clone
+EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name
+EXPORT_SYMBOL vmlinux 0x7bd1bc0d blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0x7bec6284 audit_log_start
+EXPORT_SYMBOL vmlinux 0x7befdfc3 pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0x7bf26213 poll_freewait
+EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x7c003aef _raw_read_lock_irq
+EXPORT_SYMBOL vmlinux 0x7c1085a4 tty_write_room
+EXPORT_SYMBOL vmlinux 0x7c332e31 mntput_no_expire
+EXPORT_SYMBOL vmlinux 0x7c3e78c9 ab3100_event_register
+EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get
+EXPORT_SYMBOL vmlinux 0x7c60d66e getname
+EXPORT_SYMBOL vmlinux 0x7c61340c __release_region
+EXPORT_SYMBOL vmlinux 0x7c87fa65 dquot_quota_on
+EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c9291d1 csum_partial_copy_generic
+EXPORT_SYMBOL vmlinux 0x7c939f06 __kfree_skb
+EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7ca341af kernel_thread
+EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down
+EXPORT_SYMBOL vmlinux 0x7cb41a1f fddi_type_trans
+EXPORT_SYMBOL vmlinux 0x7cb6e3e9 kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x7cc936bf netdev_set_master
+EXPORT_SYMBOL vmlinux 0x7cedc421 posix_test_lock
+EXPORT_SYMBOL vmlinux 0x7d0f3aed dev_close
+EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies
+EXPORT_SYMBOL vmlinux 0x7d715596 directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0x7d7aa404 serio_reconnect
+EXPORT_SYMBOL vmlinux 0x7d8e6af3 blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0x7d96de54 override_creds
+EXPORT_SYMBOL vmlinux 0x7dba03cd journal_start_commit
+EXPORT_SYMBOL vmlinux 0x7dc0b187 slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x7dc5c4e4 prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0x7dc97879 rtas_get_error_log_max
+EXPORT_SYMBOL vmlinux 0x7dceceac capable
+EXPORT_SYMBOL vmlinux 0x7df1cd08 make_bad_inode
+EXPORT_SYMBOL vmlinux 0x7df695a7 __alloc_skb
+EXPORT_SYMBOL vmlinux 0x7e0b1628 scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e3f9ac1 dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x7e43fbdb ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x7e78d2e9 path_get
+EXPORT_SYMBOL vmlinux 0x7e97d2fb ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x7eb829c6 unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy
+EXPORT_SYMBOL vmlinux 0x7ee0c880 sk_run_filter
+EXPORT_SYMBOL vmlinux 0x7eeda8b9 jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0x7f034e7f kmem_cache_create
+EXPORT_SYMBOL vmlinux 0x7f11a86e of_dev_get
+EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f6f658f i2c_master_send
+EXPORT_SYMBOL vmlinux 0x7f914000 lro_flush_all
+EXPORT_SYMBOL vmlinux 0x7f9f8841 idr_remove
+EXPORT_SYMBOL vmlinux 0x7fb1fb90 dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x800df1d7 groups_free
+EXPORT_SYMBOL vmlinux 0x801f5a3f __strncpy_from_user
+EXPORT_SYMBOL vmlinux 0x80291fc3 locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x803f1495 down_read
+EXPORT_SYMBOL vmlinux 0x805c623a pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0x8077bac5 of_find_i2c_device_by_node
+EXPORT_SYMBOL vmlinux 0x809e1ecc ip_ct_attach
+EXPORT_SYMBOL vmlinux 0x80a8e31c sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x80e9aecd xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0x810453b2 kobject_put
+EXPORT_SYMBOL vmlinux 0x811928cc genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0x8130ace5 nonseekable_open
+EXPORT_SYMBOL vmlinux 0x8131c671 inet_shutdown
+EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x81546927 dquot_transfer
+EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal
+EXPORT_SYMBOL vmlinux 0x816f0d55 rfkill_destroy
+EXPORT_SYMBOL vmlinux 0x81902738 fb_class
+EXPORT_SYMBOL vmlinux 0x81a07f4e _atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x81a093e5 read_dev_sector
+EXPORT_SYMBOL vmlinux 0x81a53908 rfkill_unregister
+EXPORT_SYMBOL vmlinux 0x81b32d76 scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x81c0a84f rtas_set_indicator
+EXPORT_SYMBOL vmlinux 0x81d9f7f2 _lv1_put_iopte
+EXPORT_SYMBOL vmlinux 0x81f48bc6 rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0x81fb1353 vfs_llseek
+EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill
+EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x8240ac13 vfs_fsync
+EXPORT_SYMBOL vmlinux 0x824a43c2 pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0x824afa38 tr_type_trans
+EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x826308ae mac_find_mode
+EXPORT_SYMBOL vmlinux 0x8269a30a phy_find_first
+EXPORT_SYMBOL vmlinux 0x82716049 dqstats
+EXPORT_SYMBOL vmlinux 0x82738dda eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x829ba1f3 sock_no_listen
+EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82bd165e scsi_block_requests
+EXPORT_SYMBOL vmlinux 0x82c03637 set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0x82e5a238 vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x82ffb187 dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0x83308fd9 netif_carrier_off
+EXPORT_SYMBOL vmlinux 0x837aa6d6 mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0x837f68ac free_task
+EXPORT_SYMBOL vmlinux 0x83800bfa kref_init
+EXPORT_SYMBOL vmlinux 0x8385918c netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8
+EXPORT_SYMBOL vmlinux 0x83a0407f journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83d4d884 clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0x83d60702 tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0x8425716b blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x843c34a8 tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0x845124e0 ps3_mm_phys_to_lpar
+EXPORT_SYMBOL vmlinux 0x845765c0 sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0x84a7c921 inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x84bd69bf dq_data_lock
+EXPORT_SYMBOL vmlinux 0x84c9aa34 tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0x8527ee28 rtas
+EXPORT_SYMBOL vmlinux 0x854c1b93 jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x858913a2 scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x8590ec2c xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0x8596a4fb scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0x8597eb47 plpar_hcall
+EXPORT_SYMBOL vmlinux 0x85abc85f strncmp
+EXPORT_SYMBOL vmlinux 0x85df9b6c strsep
+EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy
+EXPORT_SYMBOL vmlinux 0x8677ea9f __sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x86796dbe __dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x868acba5 get_options
+EXPORT_SYMBOL vmlinux 0x868d05a0 pci_read_irq_line
+EXPORT_SYMBOL vmlinux 0x8694abfd qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0x86c427d3 ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0x86cf2558 pipe_unlock
+EXPORT_SYMBOL vmlinux 0x86db1cbb rtas_flash_term_hook
+EXPORT_SYMBOL vmlinux 0x86e59352 input_unregister_device
+EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x87044e25 iget5_locked
+EXPORT_SYMBOL vmlinux 0x87059ee4 padata_stop
+EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x875f6acf dquot_release
+EXPORT_SYMBOL vmlinux 0x87767ee1 freeze_super
+EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87b8e783 vmap
+EXPORT_SYMBOL vmlinux 0x87b8fbb9 dput
+EXPORT_SYMBOL vmlinux 0x87cebb17 dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0x87eb4927 abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0x87f36715 tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x87f777b5 tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0x880da1b1 _lv1_get_logical_partition_id
+EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate
+EXPORT_SYMBOL vmlinux 0x882f4fb6 devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0x8841fbc1 jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x8863d21f do_splice_from
+EXPORT_SYMBOL vmlinux 0x886c32af mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0x886dfc7c skb_queue_purge
+EXPORT_SYMBOL vmlinux 0x886f0cf1 sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x888cccce matroxfb_g450_shutdown
+EXPORT_SYMBOL vmlinux 0x889d5003 register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x88a09fa0 journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x88c2ac31 blkdev_put
+EXPORT_SYMBOL vmlinux 0x88cd3638 of_find_node_by_phandle
+EXPORT_SYMBOL vmlinux 0x88e94d34 nf_log_register
+EXPORT_SYMBOL vmlinux 0x891fbb10 mempool_destroy
+EXPORT_SYMBOL vmlinux 0x892111c6 bio_clone
+EXPORT_SYMBOL vmlinux 0x89360101 netif_receive_skb
+EXPORT_SYMBOL vmlinux 0x893f64bf udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x895577b0 numa_cpu_lookup_table
+EXPORT_SYMBOL vmlinux 0x89635a47 pci_bus_type
+EXPORT_SYMBOL vmlinux 0x8968372a bmap
+EXPORT_SYMBOL vmlinux 0x897473df mktime
+EXPORT_SYMBOL vmlinux 0x89759d5f journal_wipe
+EXPORT_SYMBOL vmlinux 0x89797060 _raw_read_lock
+EXPORT_SYMBOL vmlinux 0x897e2d7d sock_no_mmap
+EXPORT_SYMBOL vmlinux 0x8980399e pagevec_lookup
+EXPORT_SYMBOL vmlinux 0x898278f7 dev_get_by_flags
+EXPORT_SYMBOL vmlinux 0x898bdb5a pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0x89afab07 block_write_end
+EXPORT_SYMBOL vmlinux 0x89c5a8be smu_get_sdb_partition
+EXPORT_SYMBOL vmlinux 0x89ca2a90 journal_init_dev
+EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x8a072f13 km_state_notify
+EXPORT_SYMBOL vmlinux 0x8a25a26a flush_icache_user_range
+EXPORT_SYMBOL vmlinux 0x8a270d28 alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0x8a6b300a tcf_em_register
+EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory
+EXPORT_SYMBOL vmlinux 0x8a7ed7a7 tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0x8a8e801d mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0x8a980e0f abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8a9cef2a _lv1_allocate_device_dma_region
+EXPORT_SYMBOL vmlinux 0x8aa4315d truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x8abd7ccd blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0x8abfa3de i2c_verify_client
+EXPORT_SYMBOL vmlinux 0x8ac17151 scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled
+EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last
+EXPORT_SYMBOL vmlinux 0x8b3b9f48 slow_work_unregister_user
+EXPORT_SYMBOL vmlinux 0x8b3d2f3b do_sync_write
+EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x8b5644ec i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup
+EXPORT_SYMBOL vmlinux 0x8bc9f045 kmem_cache_alloc_notrace
+EXPORT_SYMBOL vmlinux 0x8bd10261 xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long
+EXPORT_SYMBOL vmlinux 0x8be0c1ec should_remove_suid
+EXPORT_SYMBOL vmlinux 0x8bf83acc d_find_alias
+EXPORT_SYMBOL vmlinux 0x8c0d0325 elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0x8c0fe857 of_device_is_available
+EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16
+EXPORT_SYMBOL vmlinux 0x8c1db6d6 genphy_resume
+EXPORT_SYMBOL vmlinux 0x8c3befa2 blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0x8c3e55ef filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x8c537ada file_update_time
+EXPORT_SYMBOL vmlinux 0x8c6d41ce skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0x8c7f02c1 skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0x8c8d79c0 _lv1_gpu_context_iomap
+EXPORT_SYMBOL vmlinux 0x8c9ae539 copy_io_context
+EXPORT_SYMBOL vmlinux 0x8cc6368f rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep
+EXPORT_SYMBOL vmlinux 0x8cc9c285 get_write_access
+EXPORT_SYMBOL vmlinux 0x8cd76aaf tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0x8cecf2ad neigh_for_each
+EXPORT_SYMBOL vmlinux 0x8d49a148 __elv_add_request
+EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d5a725a generic_fillattr
+EXPORT_SYMBOL vmlinux 0x8d5c3724 bio_endio
+EXPORT_SYMBOL vmlinux 0x8d6906d4 unregister_memory_notifier
+EXPORT_SYMBOL vmlinux 0x8d944cbb copy_in_user
+EXPORT_SYMBOL vmlinux 0x8d95be42 serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x8da2e9f3 elv_rb_del
+EXPORT_SYMBOL vmlinux 0x8dbbf25b jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0x8dcf953f con_is_bound
+EXPORT_SYMBOL vmlinux 0x8dde71e1 seq_escape
+EXPORT_SYMBOL vmlinux 0x8ddf806c dev_set_mtu
+EXPORT_SYMBOL vmlinux 0x8de0b5ac mempool_create
+EXPORT_SYMBOL vmlinux 0x8de2fbc5 _lv1_get_virtual_uart_param
+EXPORT_SYMBOL vmlinux 0x8df1d039 pmac_register_agp_pm
+EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e20ad85 generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x8e3a2943 tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk
+EXPORT_SYMBOL vmlinux 0x8e5137b6 flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x8e533244 input_register_handle
+EXPORT_SYMBOL vmlinux 0x8e573c08 generic_setlease
+EXPORT_SYMBOL vmlinux 0x8e74ee18 napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x8e8299f1 arp_xmit
+EXPORT_SYMBOL vmlinux 0x8ec04552 _raw_spin_trylock_bh
+EXPORT_SYMBOL vmlinux 0x8ee69235 timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x8eea1bc9 smu_poll
+EXPORT_SYMBOL vmlinux 0x8f406772 netif_device_attach
+EXPORT_SYMBOL vmlinux 0x8f43b156 filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev
+EXPORT_SYMBOL vmlinux 0x8f4ac4e2 n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data
+EXPORT_SYMBOL vmlinux 0x8f83abcd pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0x8f85f835 prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0x8fa65dc3 scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x8fa9b3af kobject_add
+EXPORT_SYMBOL vmlinux 0x8ff317cd pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x90217300 generic_make_request
+EXPORT_SYMBOL vmlinux 0x9045fbb9 security_path_chown
+EXPORT_SYMBOL vmlinux 0x906f6bc7 gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x909357dc llc_sap_open
+EXPORT_SYMBOL vmlinux 0x90bb710f pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x90cb11e3 scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0x90e146c2 trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x90edbb42 fget
+EXPORT_SYMBOL vmlinux 0x91201cef _lv1_enable_logical_spe
+EXPORT_SYMBOL vmlinux 0x9122d02f pci_find_bus
+EXPORT_SYMBOL vmlinux 0x912557ce rtas_busy_delay
+EXPORT_SYMBOL vmlinux 0x9147c339 kernel_getsockname
+EXPORT_SYMBOL vmlinux 0x914ec03f generic_file_llseek_unlocked
+EXPORT_SYMBOL vmlinux 0x91511194 dev_get_stats
+EXPORT_SYMBOL vmlinux 0x915e1208 tb_ticks_per_usec
+EXPORT_SYMBOL vmlinux 0x9161a849 page_put_link
+EXPORT_SYMBOL vmlinux 0x9168c033 rtas_get_sensor
+EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong
+EXPORT_SYMBOL vmlinux 0x918ebe04 udplite_prot
+EXPORT_SYMBOL vmlinux 0x919d1163 tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x91c4feca _lv1_unmap_htab
+EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool
+EXPORT_SYMBOL vmlinux 0x9238b4ab mfd_add_devices
+EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten
+EXPORT_SYMBOL vmlinux 0x923c54cf idr_destroy
+EXPORT_SYMBOL vmlinux 0x925cd90c cap_file_mmap
+EXPORT_SYMBOL vmlinux 0x925ed609 request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0x92908b67 fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0x92e2df27 tty_port_init
+EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le
+EXPORT_SYMBOL vmlinux 0x92ecab5f invalidate_inodes
+EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get
+EXPORT_SYMBOL vmlinux 0x934b5f98 ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0x93507f1c _lv1_gpu_memory_allocate
+EXPORT_SYMBOL vmlinux 0x93540b0b jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0x936b52ad wake_up_process
+EXPORT_SYMBOL vmlinux 0x9389d852 i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0x9397adeb dev_mc_sync
+EXPORT_SYMBOL vmlinux 0x939ece84 generic_ide_ioctl
+EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule
+EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages
+EXPORT_SYMBOL vmlinux 0x94270ade elv_abort_queue
+EXPORT_SYMBOL vmlinux 0x944d50dd bdget_disk
+EXPORT_SYMBOL vmlinux 0x945b1603 bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0x946e9db1 neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x9476859b invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0x94961283 vunmap
+EXPORT_SYMBOL vmlinux 0x94c7ceb4 bio_map_kern
+EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x94ed1344 tty_throttle
+EXPORT_SYMBOL vmlinux 0x94f0e8c1 jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x9500da9e nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0x9514151a _mcount
+EXPORT_SYMBOL vmlinux 0x951899aa inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x9524b0ae _outsb
+EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init
+EXPORT_SYMBOL vmlinux 0x954b22ac unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf
+EXPORT_SYMBOL vmlinux 0x95530e3a dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x955b3359 scsi_register
+EXPORT_SYMBOL vmlinux 0x95850efb generic_file_open
+EXPORT_SYMBOL vmlinux 0x958ebb50 input_unregister_handler
+EXPORT_SYMBOL vmlinux 0x959b1871 tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0x95be3aff sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x95ceb864 key_update
+EXPORT_SYMBOL vmlinux 0x95d2d581 dquot_operations
+EXPORT_SYMBOL vmlinux 0x95ed6773 unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0x95f5351c __dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x95ffb641 sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0x96161eeb read_cache_page_async
+EXPORT_SYMBOL vmlinux 0x963959b0 ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0x9676000f phy_stop
+EXPORT_SYMBOL vmlinux 0x967c5fa2 udp_proc_register
+EXPORT_SYMBOL vmlinux 0x96812124 dev_driver_string
+EXPORT_SYMBOL vmlinux 0x9690f9f7 smp_call_function_many
+EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96cdcad6 dev_mc_add
+EXPORT_SYMBOL vmlinux 0x96cf193f __netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x96ddae9a bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0x96f63190 netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0x96f7adc9 seq_release
+EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n
+EXPORT_SYMBOL vmlinux 0x973c9dc6 pcix_get_mmrbc
+EXPORT_SYMBOL vmlinux 0x9748927f _outsw_ns
+EXPORT_SYMBOL vmlinux 0x974d30ee netpoll_send_skb
+EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x976d1ab9 max8925_reg_read
+EXPORT_SYMBOL vmlinux 0x976e014f _lv1_map_device_mmio_region
+EXPORT_SYMBOL vmlinux 0x9772f5b6 grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0x977f271f pipe_to_file
+EXPORT_SYMBOL vmlinux 0x978bf5f0 do_munmap
+EXPORT_SYMBOL vmlinux 0x978c3f52 journal_set_features
+EXPORT_SYMBOL vmlinux 0x978d3493 i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0x97ce3a9d nobh_write_begin
+EXPORT_SYMBOL vmlinux 0x97d8bd20 get_phy_id
+EXPORT_SYMBOL vmlinux 0x97dc87b9 devm_free_irq
+EXPORT_SYMBOL vmlinux 0x97e7294e set_anon_super
+EXPORT_SYMBOL vmlinux 0x980fb08e xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x9811a9a2 rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0x98177648 _lv1_set_lpm_interval
+EXPORT_SYMBOL vmlinux 0x983e09f5 irq_stat
+EXPORT_SYMBOL vmlinux 0x98443c02 tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0x985f73dc blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x9898047f tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init
+EXPORT_SYMBOL vmlinux 0x98acf265 sock_rfree
+EXPORT_SYMBOL vmlinux 0x98c3237e nf_ct_attach
+EXPORT_SYMBOL vmlinux 0x98cba1f6 put_mnt_ns
+EXPORT_SYMBOL vmlinux 0x98e7b901 skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x98f5461a disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x992ca406 dcache_dir_close
+EXPORT_SYMBOL vmlinux 0x9960fb8e end_page_writeback
+EXPORT_SYMBOL vmlinux 0x998de0bc kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999e8297 vfree
+EXPORT_SYMBOL vmlinux 0x999eac60 fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x99afe916 _raw_write_unlock_bh
+EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99c24cfe _lv1_free_device_dma_region
+EXPORT_SYMBOL vmlinux 0x99c2c97f i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name
+EXPORT_SYMBOL vmlinux 0x99c88fc9 skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99d3e3a6 nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x99d9193a shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x99e7b9c4 inet_register_protosw
+EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink
+EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0x99f82de1 jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x9a0ac3fd udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x9a137e70 devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk
+EXPORT_SYMBOL vmlinux 0x9a1ffb92 _lv1_clear_spe_interrupt_status
+EXPORT_SYMBOL vmlinux 0x9a2a2db3 blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x9a2a9d52 pci_request_regions
+EXPORT_SYMBOL vmlinux 0x9a2b6e74 llc_add_pack
+EXPORT_SYMBOL vmlinux 0x9a2fb80f request_key
+EXPORT_SYMBOL vmlinux 0x9a4632f9 unregister_qdisc
+EXPORT_SYMBOL vmlinux 0x9a626734 ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0x9a6c2531 pasemi_dma_init
+EXPORT_SYMBOL vmlinux 0x9a796a4c of_find_node_by_name
+EXPORT_SYMBOL vmlinux 0x9aa8e70e blk_plug_device_unlocked
+EXPORT_SYMBOL vmlinux 0x9aabc564 crc16
+EXPORT_SYMBOL vmlinux 0x9ab3efbb sk_stop_timer
+EXPORT_SYMBOL vmlinux 0x9ae97585 __skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x9b7afe38 zero_fill_bio
+EXPORT_SYMBOL vmlinux 0x9b86635b blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x9b8a8d1e sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split
+EXPORT_SYMBOL vmlinux 0x9bde7b7a tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x9bdfbd54 inet_add_protocol
+EXPORT_SYMBOL vmlinux 0x9bfabb6a tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan
+EXPORT_SYMBOL vmlinux 0x9c26b501 mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x9c411237 journal_update_format
+EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x9c557b35 alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x9c679a18 pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0x9ca95a0e sort
+EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cc2f921 lock_may_write
+EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x9ccc4c6f security_inode_permission
+EXPORT_SYMBOL vmlinux 0x9cdfe3cb macio_dev_put
+EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9d0c1dce unregister_8022_client
+EXPORT_SYMBOL vmlinux 0x9d14983a ppc_enable_pmcs
+EXPORT_SYMBOL vmlinux 0x9d18698b elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x9d23434e bdi_register_dev
+EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d63a9c1 set_user_nice
+EXPORT_SYMBOL vmlinux 0x9d7ce8dd _raw_spin_trylock
+EXPORT_SYMBOL vmlinux 0x9d8c91f5 registered_fb
+EXPORT_SYMBOL vmlinux 0x9d9fa7af up_write
+EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x9dd0b1ec lease_modify
+EXPORT_SYMBOL vmlinux 0x9e0ed22b inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x9e1c777d generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0x9e27b8a2 vio_get_attribute
+EXPORT_SYMBOL vmlinux 0x9e288b43 dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0x9e35fa89 invalidate_partition
+EXPORT_SYMBOL vmlinux 0x9e3f1199 tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x9e4d0d61 i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0x9e87e578 i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0x9e93c876 tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0x9e94c983 tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x9e97375d rtas_busy_delay_time
+EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table
+EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource
+EXPORT_SYMBOL vmlinux 0x9edbecae snprintf
+EXPORT_SYMBOL vmlinux 0x9ee709be posix_lock_file
+EXPORT_SYMBOL vmlinux 0x9ee78669 _lv1_write_virtual_uart
+EXPORT_SYMBOL vmlinux 0x9eeab49e generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk
+EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0x9f163fb8 pci_restore_state
+EXPORT_SYMBOL vmlinux 0x9f21520a input_free_device
+EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool
+EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f4c3cd7 simple_transaction_get
+EXPORT_SYMBOL vmlinux 0x9f524dbb pci_iounmap
+EXPORT_SYMBOL vmlinux 0x9f984513 strrchr
+EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0x9fe42ecb ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0xa014390f tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0xa01fbaf3 swiotlb_sync_single_for_device
+EXPORT_SYMBOL vmlinux 0xa0318fb8 dquot_commit
+EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa07770f7 pci_disable_link_state
+EXPORT_SYMBOL vmlinux 0xa07e08a6 vga_get
+EXPORT_SYMBOL vmlinux 0xa08cc41e path_is_under
+EXPORT_SYMBOL vmlinux 0xa0abec87 abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec
+EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0b7e406 kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0xa0badd7c delayed_slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0xa0ca84fe genphy_config_advert
+EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0d2edde key_negate_and_link
+EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize
+EXPORT_SYMBOL vmlinux 0xa0e1ff11 inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0xa0e748a1 tty_devnum
+EXPORT_SYMBOL vmlinux 0xa0f753e8 pci_remove_bus
+EXPORT_SYMBOL vmlinux 0xa0fa91ec user_revoke
+EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa1145e8d bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0xa11f9236 inode_set_bytes
+EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa12a02b8 __lookup_one_len
+EXPORT_SYMBOL vmlinux 0xa13bddaa __devm_release_region
+EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa14a3ccf dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0xa14ad4ae mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0xa14b7979 of_find_property
+EXPORT_SYMBOL vmlinux 0xa1529f08 ethtool_ntuple_flush
+EXPORT_SYMBOL vmlinux 0xa1566ba5 pmac_resume_agp_for_card
+EXPORT_SYMBOL vmlinux 0xa1674182 pci_enable_msix
+EXPORT_SYMBOL vmlinux 0xa187d077 ide_dma_off
+EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode
+EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched
+EXPORT_SYMBOL vmlinux 0xa2072704 llc_build_and_send_ui_pkt
+EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa2127cdc pasemi_dma_alloc_flag
+EXPORT_SYMBOL vmlinux 0xa240da8f pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0xa244944c get_gendisk
+EXPORT_SYMBOL vmlinux 0xa26242b9 sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0xa289a3cf nla_reserve
+EXPORT_SYMBOL vmlinux 0xa2a3da05 sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2af1306 phy_start
+EXPORT_SYMBOL vmlinux 0xa2afc202 nla_append
+EXPORT_SYMBOL vmlinux 0xa2bbed37 crash_shutdown_register
+EXPORT_SYMBOL vmlinux 0xa2c31796 padata_do_serial
+EXPORT_SYMBOL vmlinux 0xa2dd7f7e update_region
+EXPORT_SYMBOL vmlinux 0xa2ee87eb ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa2f700a4 tcf_hash_search
+EXPORT_SYMBOL vmlinux 0xa2f9f2aa bio_add_page
+EXPORT_SYMBOL vmlinux 0xa30e6233 nla_put
+EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker
+EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy
+EXPORT_SYMBOL vmlinux 0xa35930d0 netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0xa35d5dc5 scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config
+EXPORT_SYMBOL vmlinux 0xa384b5fe down_write
+EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay
+EXPORT_SYMBOL vmlinux 0xa3abc422 abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0xa3c3d2c2 dst_alloc
+EXPORT_SYMBOL vmlinux 0xa3d39665 splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0xa3e68484 generic_show_options
+EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0xa44e976a mutex_lock
+EXPORT_SYMBOL vmlinux 0xa45779b7 jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0xa45cf947 alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0xa480c04b _lv1_gpu_context_attribute
+EXPORT_SYMBOL vmlinux 0xa48a45e6 scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xa496abb1 mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0xa4b47a47 xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep
+EXPORT_SYMBOL vmlinux 0xa4bdd447 __cputime_clockt_factor
+EXPORT_SYMBOL vmlinux 0xa4df8c7b skb_recycle_check
+EXPORT_SYMBOL vmlinux 0xa5476a8c dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0xa554104d rwsem_wake
+EXPORT_SYMBOL vmlinux 0xa55a339d tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0xa568dc41 dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone
+EXPORT_SYMBOL vmlinux 0xa56b1d91 key_alloc
+EXPORT_SYMBOL vmlinux 0xa576c263 generic_find_next_le_bit
+EXPORT_SYMBOL vmlinux 0xa57b0846 unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0xa57ba965 inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0xa585208d sock_no_getname
+EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse
+EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a18b4f cdev_init
+EXPORT_SYMBOL vmlinux 0xa5a2e5de seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0xa5b00659 ppc_proc_freq
+EXPORT_SYMBOL vmlinux 0xa5d78688 d_obtain_alias
+EXPORT_SYMBOL vmlinux 0xa5e8c741 proc_mkdir
+EXPORT_SYMBOL vmlinux 0xa61bf617 thaw_super
+EXPORT_SYMBOL vmlinux 0xa622fdeb tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0xa623604f send_sig_info
+EXPORT_SYMBOL vmlinux 0xa62fb9cd dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xa63b4564 blk_requeue_request
+EXPORT_SYMBOL vmlinux 0xa642a55c key_put
+EXPORT_SYMBOL vmlinux 0xa654a518 set_blocksize
+EXPORT_SYMBOL vmlinux 0xa65972b8 _memcpy_toio
+EXPORT_SYMBOL vmlinux 0xa6629cd5 generic_file_mmap
+EXPORT_SYMBOL vmlinux 0xa679ce3a padata_do_parallel
+EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa6826ade __mutex_init
+EXPORT_SYMBOL vmlinux 0xa6848a85 scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0xa6a1dd9a secpath_dup
+EXPORT_SYMBOL vmlinux 0xa6bdbcaa neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0xa700284b generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0xa70472dd dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0xa7078acb dm_unregister_target
+EXPORT_SYMBOL vmlinux 0xa718a0ff phy_device_free
+EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes
+EXPORT_SYMBOL vmlinux 0xa752a96d of_get_property
+EXPORT_SYMBOL vmlinux 0xa75fe466 bio_phys_segments
+EXPORT_SYMBOL vmlinux 0xa760e966 netdev_features_change
+EXPORT_SYMBOL vmlinux 0xa7ba5f4a elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0xa7cb85e7 serio_close
+EXPORT_SYMBOL vmlinux 0xa7cce85f scsi_dma_map
+EXPORT_SYMBOL vmlinux 0xa7e413ec scsi_register_interface
+EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on
+EXPORT_SYMBOL vmlinux 0xa848bcc5 dev_open
+EXPORT_SYMBOL vmlinux 0xa886a958 krealloc
+EXPORT_SYMBOL vmlinux 0xa8950160 generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0xa89d3c0e kill_litter_super
+EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region
+EXPORT_SYMBOL vmlinux 0xa8ba7558 get_sb_single
+EXPORT_SYMBOL vmlinux 0xa8cde5d1 fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0xa8ced546 _lv1_net_set_interrupt_status_indicator
+EXPORT_SYMBOL vmlinux 0xa8d16c02 xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xa8dbc55c scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0xa8dd2433 tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0xa8e5c82d of_parse_phandles_with_args
+EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa91c77b6 _lv1_end_of_interrupt
+EXPORT_SYMBOL vmlinux 0xa92acbca noop_qdisc
+EXPORT_SYMBOL vmlinux 0xa94266f0 down_trylock
+EXPORT_SYMBOL vmlinux 0xa96f67e7 dm_put_device
+EXPORT_SYMBOL vmlinux 0xa975f82a blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0xa9838a17 block_truncate_page
+EXPORT_SYMBOL vmlinux 0xa9e7b9f6 neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0xa9ec638c pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xaa0edca8 pasemi_dma_alloc_fun
+EXPORT_SYMBOL vmlinux 0xaa1cfa34 kfree_skb
+EXPORT_SYMBOL vmlinux 0xaa61bf57 nf_register_hook
+EXPORT_SYMBOL vmlinux 0xaa63cfcd security_inode_init_security
+EXPORT_SYMBOL vmlinux 0xaa6e4df5 _raw_write_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xaa950f98 flush_dcache_page
+EXPORT_SYMBOL vmlinux 0xaab1f22e __xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0xaac0ae93 __blockdev_direct_IO_newtrunc
+EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp
+EXPORT_SYMBOL vmlinux 0xab31f5a0 scsi_print_result
+EXPORT_SYMBOL vmlinux 0xab351be4 simple_rmdir
+EXPORT_SYMBOL vmlinux 0xab47454c blk_init_allocated_queue_node
+EXPORT_SYMBOL vmlinux 0xab477e9c pci_clear_master
+EXPORT_SYMBOL vmlinux 0xab4ca887 __break_lease
+EXPORT_SYMBOL vmlinux 0xab4fbd01 call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0xab54dea0 dma_pool_create
+EXPORT_SYMBOL vmlinux 0xab594720 ip_mc_rejoin_group
+EXPORT_SYMBOL vmlinux 0xab5d5613 xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0xab66f611 _lv1_set_lpm_trigger_control
+EXPORT_SYMBOL vmlinux 0xaba7090e arp_broken_ops
+EXPORT_SYMBOL vmlinux 0xabb82c9f tty_port_hangup
+EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabd8e427 matroxfb_var2my
+EXPORT_SYMBOL vmlinux 0xabf849ea vfs_mkdir
+EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac121bd7 xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0xac20c610 elv_rb_find
+EXPORT_SYMBOL vmlinux 0xac26b820 _raw_write_lock
+EXPORT_SYMBOL vmlinux 0xac2cc2bc backlight_device_register
+EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0xac39f12c journal_get_write_access
+EXPORT_SYMBOL vmlinux 0xac3eab31 default_llseek
+EXPORT_SYMBOL vmlinux 0xac5cb805 phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0xac67da8b get_sb_bdev
+EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac9d077a generic_write_end
+EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton
+EXPORT_SYMBOL vmlinux 0xacd14ab8 _lv1_construct_logical_spe
+EXPORT_SYMBOL vmlinux 0xacebe228 dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0xacf487c3 __netdev_alloc_page
+EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup
+EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex
+EXPORT_SYMBOL vmlinux 0xad080c6b fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0xad0e1736 pcie_port_service_unregister
+EXPORT_SYMBOL vmlinux 0xad2acf29 fb_set_var
+EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad4b8597 vfs_readlink
+EXPORT_SYMBOL vmlinux 0xad82e500 ilookup
+EXPORT_SYMBOL vmlinux 0xada22fdc input_event
+EXPORT_SYMBOL vmlinux 0xadaa2657 cpufreq_register_notifier
+EXPORT_SYMBOL vmlinux 0xadc8e6dc backlight_force_update
+EXPORT_SYMBOL vmlinux 0xadeffe25 _lv1_gpu_context_intr
+EXPORT_SYMBOL vmlinux 0xae1ff674 skb_insert
+EXPORT_SYMBOL vmlinux 0xae542f7a read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0xae545f06 _raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0xae733940 bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0xaeaa9920 tty_register_driver
+EXPORT_SYMBOL vmlinux 0xaee3d056 noop_llseek
+EXPORT_SYMBOL vmlinux 0xaee3dfd0 simple_transaction_read
+EXPORT_SYMBOL vmlinux 0xaee4e97e generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xaef3d7dd pci_save_state
+EXPORT_SYMBOL vmlinux 0xaef6342d skb_make_writable
+EXPORT_SYMBOL vmlinux 0xaf063510 _raw_spin_lock_bh
+EXPORT_SYMBOL vmlinux 0xaf1b5b58 down_read_trylock
+EXPORT_SYMBOL vmlinux 0xaf1d18d7 mnt_unpin
+EXPORT_SYMBOL vmlinux 0xaf2d872c prepare_to_wait
+EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level
+EXPORT_SYMBOL vmlinux 0xaf438d65 _lv1_get_repository_node_value
+EXPORT_SYMBOL vmlinux 0xafa6756c skb_put
+EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn
+EXPORT_SYMBOL vmlinux 0xafef8fa9 register_memory_notifier
+EXPORT_SYMBOL vmlinux 0xaff9a3bb nobh_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0xafff3d1d mempool_alloc
+EXPORT_SYMBOL vmlinux 0xb0189574 vfs_mknod
+EXPORT_SYMBOL vmlinux 0xb02fc45d request_key_async
+EXPORT_SYMBOL vmlinux 0xb0308491 pci_read_vpd
+EXPORT_SYMBOL vmlinux 0xb03f1c6b tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0xb065fad9 block_write_begin
+EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0c1ccf7 kset_unregister
+EXPORT_SYMBOL vmlinux 0xb0e10781 get_option
+EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat
+EXPORT_SYMBOL vmlinux 0xb15bd8fa tb_ticks_per_sec
+EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table
+EXPORT_SYMBOL vmlinux 0xb165ef45 __irq_regs
+EXPORT_SYMBOL vmlinux 0xb18d0afd __ip_select_ident
+EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xb18f3f06 ide_xfer_verbose
+EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1995b32 dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0xb1b2e17d nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0xb1b3a7af remap_pfn_range
+EXPORT_SYMBOL vmlinux 0xb1b6a8a2 matroxfb_DAC_out
+EXPORT_SYMBOL vmlinux 0xb1b6ed12 mark_page_accessed
+EXPORT_SYMBOL vmlinux 0xb1b81587 security_path_chmod
+EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1c6e787 wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0xb1e893d0 scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short
+EXPORT_SYMBOL vmlinux 0xb22d94d9 abx500_register_ops
+EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xb243883a xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0xb25e5d55 sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb294d6a6 neigh_destroy
+EXPORT_SYMBOL vmlinux 0xb2d6a5f1 register_sysctl_table
+EXPORT_SYMBOL vmlinux 0xb2f0a2cf blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0xb2f9c746 generic_unplug_device
+EXPORT_SYMBOL vmlinux 0xb3011b05 inode_change_ok
+EXPORT_SYMBOL vmlinux 0xb345c1d5 compat_sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0xb35d5d28 tcf_action_exec
+EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3b9e923 matroxfb_vgaHWinit
+EXPORT_SYMBOL vmlinux 0xb3bf73df cpu_active_mask
+EXPORT_SYMBOL vmlinux 0xb3d5f04d page_symlink
+EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact
+EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked
+EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool
+EXPORT_SYMBOL vmlinux 0xb433e4a3 simple_transaction_release
+EXPORT_SYMBOL vmlinux 0xb4677160 scsi_print_command
+EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb4716211 tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0xb4a87a02 journal_create
+EXPORT_SYMBOL vmlinux 0xb4a96b36 unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0xb4bdca64 pci_pme_capable
+EXPORT_SYMBOL vmlinux 0xb4cd9059 tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0xb4fdac67 xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0xb4fee08f tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf
+EXPORT_SYMBOL vmlinux 0xb510aa46 pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0xb515d957 ide_wait_stat
+EXPORT_SYMBOL vmlinux 0xb53f2e52 pcim_pin_device
+EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb5501a9b tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xb55dbc89 vfs_readdir
+EXPORT_SYMBOL vmlinux 0xb56bfd9e smu_spinwait_cmd
+EXPORT_SYMBOL vmlinux 0xb572308f task_nice
+EXPORT_SYMBOL vmlinux 0xb57b3fad nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xb589eec4 pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5bb42b7 submit_bio
+EXPORT_SYMBOL vmlinux 0xb5e87a5b set_device_ro
+EXPORT_SYMBOL vmlinux 0xb5f371aa fsnotify_destroy_mark_by_entry
+EXPORT_SYMBOL vmlinux 0xb61f64ef nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0xb61faddf netpoll_setup
+EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one
+EXPORT_SYMBOL vmlinux 0xb628293b tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0xb6400e4d __pci_register_driver
+EXPORT_SYMBOL vmlinux 0xb659b818 tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0xb65d08b7 kernel_sendpage
+EXPORT_SYMBOL vmlinux 0xb65f1b2c down_interruptible
+EXPORT_SYMBOL vmlinux 0xb673bda8 file_remove_suid
+EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt
+EXPORT_SYMBOL vmlinux 0xb68af1f8 xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0xb698d1d7 inet_frag_find
+EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6abd524 ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0xb6af59ab single_release
+EXPORT_SYMBOL vmlinux 0xb6b5901d napi_get_frags
+EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu
+EXPORT_SYMBOL vmlinux 0xb6c4e9e3 dm_table_get
+EXPORT_SYMBOL vmlinux 0xb6c543a4 posix_acl_permission
+EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6d20226 kmem_ptr_validate
+EXPORT_SYMBOL vmlinux 0xb746700f qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0xb74eb13e in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xb7578139 set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0xb764f5dd tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0xb79b8e5e pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0xb7a3f2d6 swiotlb_sync_sg_for_device
+EXPORT_SYMBOL vmlinux 0xb7ac61e2 phy_detach
+EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring
+EXPORT_SYMBOL vmlinux 0xb7e0ecc6 of_mm_gpiochip_add
+EXPORT_SYMBOL vmlinux 0xb8002624 tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0xb8163973 ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0xb83a7af6 tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0xb84daa2e pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0xb85322b0 compat_nf_setsockopt
+EXPORT_SYMBOL vmlinux 0xb8562f6b find_vma
+EXPORT_SYMBOL vmlinux 0xb8677e03 __put_cred
+EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32
+EXPORT_SYMBOL vmlinux 0xb872641e machine_id
+EXPORT_SYMBOL vmlinux 0xb88b8855 clocksource_unregister
+EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32
+EXPORT_SYMBOL vmlinux 0xb8a30c7e _lv1_add_lpm_event_bookmark
+EXPORT_SYMBOL vmlinux 0xb8b6cea8 __ps2_command
+EXPORT_SYMBOL vmlinux 0xb8c98905 xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0xb8ce6d8e kernel_listen
+EXPORT_SYMBOL vmlinux 0xb8f21b5d gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0xb90dc293 jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0xb92e7673 vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0xb945ead7 pci_fixup_device
+EXPORT_SYMBOL vmlinux 0xb968be23 filp_close
+EXPORT_SYMBOL vmlinux 0xb96fd405 splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0xb97aa5f2 tcp_make_synack
+EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb9b6700c clear_inode
+EXPORT_SYMBOL vmlinux 0xb9f90b04 of_match_device
+EXPORT_SYMBOL vmlinux 0xba013461 node_states
+EXPORT_SYMBOL vmlinux 0xba038b00 write_cache_pages
+EXPORT_SYMBOL vmlinux 0xba122a2c smu_done_complete
+EXPORT_SYMBOL vmlinux 0xba2284f6 cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0xba31b3f0 hippi_neigh_setup_dev
+EXPORT_SYMBOL vmlinux 0xba4402f8 sock_no_accept
+EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba54f598 note_scsi_host
+EXPORT_SYMBOL vmlinux 0xba5b7e49 tcp_prot
+EXPORT_SYMBOL vmlinux 0xba84614d sync_blockdev
+EXPORT_SYMBOL vmlinux 0xba9984e9 lro_vlan_hwaccel_receive_skb
+EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup
+EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbab87a7f neigh_event_ns
+EXPORT_SYMBOL vmlinux 0xbabc730a rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0xbacf8f45 __skb_bond_should_drop
+EXPORT_SYMBOL vmlinux 0xbad375f1 arp_find
+EXPORT_SYMBOL vmlinux 0xbaddea75 alloc_pages_current
+EXPORT_SYMBOL vmlinux 0xbaea4f55 matroxfb_wait_for_sync
+EXPORT_SYMBOL vmlinux 0xbaffd3d2 dquot_commit_info
+EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb1d009c filp_open
+EXPORT_SYMBOL vmlinux 0xbb1dca84 mod_timer_pending
+EXPORT_SYMBOL vmlinux 0xbb28f18c jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xbb403af5 blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0xbb4d3187 ll_rw_block
+EXPORT_SYMBOL vmlinux 0xbb56293d end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb5d3528 compat_sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0xbb7a0353 __netif_schedule
+EXPORT_SYMBOL vmlinux 0xbb851441 sock_no_poll
+EXPORT_SYMBOL vmlinux 0xbb8b3ea3 tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0xbb9148f9 pci_get_device
+EXPORT_SYMBOL vmlinux 0xbb9784d4 tty_port_close
+EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font
+EXPORT_SYMBOL vmlinux 0xbb9f5fa5 down_write_trylock
+EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xbc28ca53 tty_port_put
+EXPORT_SYMBOL vmlinux 0xbc316de4 tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0xbc3f19f1 gen_pool_free
+EXPORT_SYMBOL vmlinux 0xbca923b9 scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0xbce1b723 tc_classify_compat
+EXPORT_SYMBOL vmlinux 0xbce781e7 key_validate
+EXPORT_SYMBOL vmlinux 0xbcf95f66 vfs_link
+EXPORT_SYMBOL vmlinux 0xbd0390d3 bio_put
+EXPORT_SYMBOL vmlinux 0xbd20825c kernel_getpeername
+EXPORT_SYMBOL vmlinux 0xbd33c6ad put_io_context
+EXPORT_SYMBOL vmlinux 0xbd4b35e0 seq_puts
+EXPORT_SYMBOL vmlinux 0xbd6f83ac pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0xbd7d85e9 jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xbd7f8c9b idr_get_next
+EXPORT_SYMBOL vmlinux 0xbd8cfa15 pasemi_write_mac_reg
+EXPORT_SYMBOL vmlinux 0xbdb3d78a jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0xbdc5892c sockfd_lookup
+EXPORT_SYMBOL vmlinux 0xbdeab3b5 swiotlb_sync_single_for_cpu
+EXPORT_SYMBOL vmlinux 0xbdf1e3d0 kmalloc_caches
+EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next
+EXPORT_SYMBOL vmlinux 0xbe059b84 blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0xbe1613d3 pci_dev_get
+EXPORT_SYMBOL vmlinux 0xbe23b9c3 i2c_master_recv
+EXPORT_SYMBOL vmlinux 0xbe3839e8 tty_unthrottle
+EXPORT_SYMBOL vmlinux 0xbe5dfbac block_prepare_write
+EXPORT_SYMBOL vmlinux 0xbe654b6c journal_get_create_access
+EXPORT_SYMBOL vmlinux 0xbe6ae3e7 skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0xbe7110d4 scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0xbe7216df lro_receive_frags
+EXPORT_SYMBOL vmlinux 0xbe814159 ida_remove
+EXPORT_SYMBOL vmlinux 0xbebc544c __lru_cache_add
+EXPORT_SYMBOL vmlinux 0xbed2fbbc pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0xbed8a19b neigh_table_init
+EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbef5bf2e netif_rx_ni
+EXPORT_SYMBOL vmlinux 0xbf081b84 __scsi_add_device
+EXPORT_SYMBOL vmlinux 0xbf0f5d68 cdrom_release
+EXPORT_SYMBOL vmlinux 0xbf4c0060 generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0xbf5c0df1 blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0xbf68bb71 misc_deregister
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf81eb88 kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0xbf84370f pci_find_capability
+EXPORT_SYMBOL vmlinux 0xbf85ca3f tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbfabcf4a i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0xbfabfe59 __debugger_iabr_match
+EXPORT_SYMBOL vmlinux 0xbfb8b0b7 _raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep
+EXPORT_SYMBOL vmlinux 0xbfd36321 sock_i_uid
+EXPORT_SYMBOL vmlinux 0xbfd7e892 i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0xbff2bcbe xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0xbff8182c plpar_hcall_norets
+EXPORT_SYMBOL vmlinux 0xbffe052b of_platform_bus_probe
+EXPORT_SYMBOL vmlinux 0xc0159018 shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0xc058013e fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0xc05db902 gen_pool_create
+EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc08a7845 buffer_migrate_page
+EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be
+EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit
+EXPORT_SYMBOL vmlinux 0xc0bf76cb d_alloc
+EXPORT_SYMBOL vmlinux 0xc0c7f401 blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0xc0cfc645 blk_remove_plug
+EXPORT_SYMBOL vmlinux 0xc0d12d36 fail_migrate_page
+EXPORT_SYMBOL vmlinux 0xc0f0c9d0 inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0xc10c038c pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0xc1101b28 pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0xc11c6f01 tc_classify
+EXPORT_SYMBOL vmlinux 0xc1228c1e kill_fasync
+EXPORT_SYMBOL vmlinux 0xc13511d7 cpumask_next_and
+EXPORT_SYMBOL vmlinux 0xc13f51d5 pci_assign_resource
+EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit
+EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic
+EXPORT_SYMBOL vmlinux 0xc16c0815 xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1c9ed93 fb_find_mode
+EXPORT_SYMBOL vmlinux 0xc1e80e70 skb_push
+EXPORT_SYMBOL vmlinux 0xc23e59ec ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0xc23efc9b phy_print_status
+EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc2cf66f5 filemap_fault
+EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices
+EXPORT_SYMBOL vmlinux 0xc2ec7e50 blkdev_get
+EXPORT_SYMBOL vmlinux 0xc2fb9ee1 _lv1_shutdown_logical_partition
+EXPORT_SYMBOL vmlinux 0xc2fcb584 km_report
+EXPORT_SYMBOL vmlinux 0xc3094fa6 tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0xc314c3d2 __cputime_jiffies_factor
+EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu
+EXPORT_SYMBOL vmlinux 0xc3590a73 xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0xc35e28f7 llc_sap_list_lock
+EXPORT_SYMBOL vmlinux 0xc36ff192 dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0xc3749ba9 input_close_device
+EXPORT_SYMBOL vmlinux 0xc37e7cfb phy_start_aneg
+EXPORT_SYMBOL vmlinux 0xc392f7c2 ps3_sb_event_receive_port_destroy
+EXPORT_SYMBOL vmlinux 0xc3944da4 dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0xc3ade5fc generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0xc3b5d73e pcie_port_service_register
+EXPORT_SYMBOL vmlinux 0xc3ba4237 tcf_register_action
+EXPORT_SYMBOL vmlinux 0xc3ce40a0 vfs_symlink
+EXPORT_SYMBOL vmlinux 0xc3cf1128 in_group_p
+EXPORT_SYMBOL vmlinux 0xc3d52f8a dev_remove_pack
+EXPORT_SYMBOL vmlinux 0xc3e15dbc fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0xc3e166b4 padata_remove_cpu
+EXPORT_SYMBOL vmlinux 0xc3eff95d blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0xc40a69d6 pci_domain_nr
+EXPORT_SYMBOL vmlinux 0xc41628c2 dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0xc41f1696 _lv1_configure_virtual_uart_irq
+EXPORT_SYMBOL vmlinux 0xc450cd81 mdiobus_register
+EXPORT_SYMBOL vmlinux 0xc47cdf9c _raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0xc485bb1b sys_imageblit
+EXPORT_SYMBOL vmlinux 0xc485ef65 __rta_fill
+EXPORT_SYMBOL vmlinux 0xc48f537c ____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0xc4983f74 scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup
+EXPORT_SYMBOL vmlinux 0xc4a38519 grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0xc4b2d82c km_new_mapping
+EXPORT_SYMBOL vmlinux 0xc4bc77c1 of_node_put
+EXPORT_SYMBOL vmlinux 0xc4cb1cd2 vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0xc4d64d67 pneigh_lookup
+EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic
+EXPORT_SYMBOL vmlinux 0xc4f19095 mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0xc5050316 sg_miter_start
+EXPORT_SYMBOL vmlinux 0xc5089620 _lv1_stop_ppe_periodic_tracer
+EXPORT_SYMBOL vmlinux 0xc5129909 file_fsync
+EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc5388c12 vlan_gro_frags
+EXPORT_SYMBOL vmlinux 0xc53a4d12 tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0xc5533771 ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16
+EXPORT_SYMBOL vmlinux 0xc583f38c generic_read_dir
+EXPORT_SYMBOL vmlinux 0xc5f78dda bio_pair_release
+EXPORT_SYMBOL vmlinux 0xc60d9b98 mdiobus_read
+EXPORT_SYMBOL vmlinux 0xc61ee9cf ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0xc650cefa __generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xc663b075 __ioremap
+EXPORT_SYMBOL vmlinux 0xc697f849 validate_sp
+EXPORT_SYMBOL vmlinux 0xc6b4a879 tty_kref_put
+EXPORT_SYMBOL vmlinux 0xc6b7d622 mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0xc6bbd337 of_find_compatible_node
+EXPORT_SYMBOL vmlinux 0xc6c941e5 of_get_parent
+EXPORT_SYMBOL vmlinux 0xc6da7b63 mapping_tagged
+EXPORT_SYMBOL vmlinux 0xc6dadaf8 nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xc702a194 clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0xc70549c3 pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0xc70d9b65 sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0xc70eea55 load_nls
+EXPORT_SYMBOL vmlinux 0xc740c64a memchr
+EXPORT_SYMBOL vmlinux 0xc7491da6 bio_sector_offset
+EXPORT_SYMBOL vmlinux 0xc760c381 i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0xc76254e0 xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7abc760 writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0xc7aca503 lookup_hash
+EXPORT_SYMBOL vmlinux 0xc7bdc23f kill_pgrp
+EXPORT_SYMBOL vmlinux 0xc7ce0006 read_cache_pages
+EXPORT_SYMBOL vmlinux 0xc7df8045 ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0xc7e4f917 phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0xc7e7709a dev_disable_lro
+EXPORT_SYMBOL vmlinux 0xc7ea4c83 tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0xc7ec28b0 memcmp
+EXPORT_SYMBOL vmlinux 0xc7f2c527 sock_i_ino
+EXPORT_SYMBOL vmlinux 0xc7f31893 dev_get_flags
+EXPORT_SYMBOL vmlinux 0xc8054735 cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0xc81c35f1 destroy_EII_client
+EXPORT_SYMBOL vmlinux 0xc82e126f sock_release
+EXPORT_SYMBOL vmlinux 0xc83b2266 wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0xc83ff5dc sget
+EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc87e2fea set_bdi_congested
+EXPORT_SYMBOL vmlinux 0xc8814c7d lease_get_mtime
+EXPORT_SYMBOL vmlinux 0xc88f3f1d pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0xc8973471 nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table
+EXPORT_SYMBOL vmlinux 0xc8a4bacf idr_replace
+EXPORT_SYMBOL vmlinux 0xc8a5eb4e i2c_bit_add_numbered_bus
+EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8b99923 tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0xc8bdd85b generic_file_fsync
+EXPORT_SYMBOL vmlinux 0xc8c92ad1 skb_seq_read
+EXPORT_SYMBOL vmlinux 0xc8e2c0db of_release_dev
+EXPORT_SYMBOL vmlinux 0xc8e31d75 _lv1_configure_irq_state_bitmap
+EXPORT_SYMBOL vmlinux 0xc8e4e76a filemap_flush
+EXPORT_SYMBOL vmlinux 0xc8ee7a0e open_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0xc90b6c59 journal_extend
+EXPORT_SYMBOL vmlinux 0xc97565fe blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0xc978fd52 request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0xc97ef5ca open_by_devnum
+EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev
+EXPORT_SYMBOL vmlinux 0xc9a8edab skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0xc9af7661 page_readlink
+EXPORT_SYMBOL vmlinux 0xc9dc3dd7 register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0xc9fc598d pasemi_read_dma_reg
+EXPORT_SYMBOL vmlinux 0xca2d0987 scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0xca371c8d of_phy_find_device
+EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca672f90 xfrm_bundle_ok
+EXPORT_SYMBOL vmlinux 0xca825895 pmu_suspend
+EXPORT_SYMBOL vmlinux 0xca8f45d0 __skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xca9c597a llc_mac_hdr_init
+EXPORT_SYMBOL vmlinux 0xcaa5c1a7 unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0xcaabf3f9 pasemi_write_iob_reg
+EXPORT_SYMBOL vmlinux 0xcab26fa4 bd_claim
+EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel
+EXPORT_SYMBOL vmlinux 0xcad50413 skb_pull
+EXPORT_SYMBOL vmlinux 0xcb0af2f6 fb_show_logo
+EXPORT_SYMBOL vmlinux 0xcb298bb9 d_rehash
+EXPORT_SYMBOL vmlinux 0xcb524fd8 dm_io_client_create
+EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options
+EXPORT_SYMBOL vmlinux 0xcba934b0 xfrm_state_update
+EXPORT_SYMBOL vmlinux 0xcbb24281 lock_sock_fast
+EXPORT_SYMBOL vmlinux 0xcbb3bd00 key_type_keyring
+EXPORT_SYMBOL vmlinux 0xcbca3447 scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0xcbe8b038 _lv1_configure_execution_time_variable
+EXPORT_SYMBOL vmlinux 0xcbeb81ad seq_lseek
+EXPORT_SYMBOL vmlinux 0xcbed18b5 dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0xcbfa3783 blk_fetch_request
+EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen
+EXPORT_SYMBOL vmlinux 0xcc17504d _raw_read_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0xcc2de5f3 remove_inode_hash
+EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc7bdd6a unlock_rename
+EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc89c246 pasemi_dma_alloc_chan
+EXPORT_SYMBOL vmlinux 0xcc8ab0a4 iunique
+EXPORT_SYMBOL vmlinux 0xcc97f71e fsnotify_obtain_group
+EXPORT_SYMBOL vmlinux 0xcca103eb migrate_page
+EXPORT_SYMBOL vmlinux 0xcca68915 blk_insert_request
+EXPORT_SYMBOL vmlinux 0xccb7f600 blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0xccca2a7e ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0xccd28a10 kernel_read
+EXPORT_SYMBOL vmlinux 0xccd2b90e journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0xccf4be48 arp_create
+EXPORT_SYMBOL vmlinux 0xccff0e23 unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0xcd0529c7 _raw_spin_lock_irq
+EXPORT_SYMBOL vmlinux 0xcd1d231f abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0xcd5799c0 blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0xcd769f62 _lv1_gpu_device_map
+EXPORT_SYMBOL vmlinux 0xcd86c87f __cond_resched_lock
+EXPORT_SYMBOL vmlinux 0xcdbf9556 inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0xcdd66bac jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0xcdf9ad73 generic_block_bmap
+EXPORT_SYMBOL vmlinux 0xce15fd94 cdrom_media_changed
+EXPORT_SYMBOL vmlinux 0xce1f0430 d_delete
+EXPORT_SYMBOL vmlinux 0xce1fc23e vfs_rmdir
+EXPORT_SYMBOL vmlinux 0xce2187df wireless_spy_update
+EXPORT_SYMBOL vmlinux 0xce2ca8a4 neigh_table_clear
+EXPORT_SYMBOL vmlinux 0xce351ea9 padata_set_cpumask
+EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xce3b3f09 profile_pc
+EXPORT_SYMBOL vmlinux 0xce409cda pmac_set_early_video_resume
+EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce92f241 elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0xcec54149 rfkill_get_led_trigger_name
+EXPORT_SYMBOL vmlinux 0xced79078 compat_mc_getsockopt
+EXPORT_SYMBOL vmlinux 0xceff3ee0 tcp_parse_options
+EXPORT_SYMBOL vmlinux 0xcf07494d vfs_create
+EXPORT_SYMBOL vmlinux 0xcf29b7a9 dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0xcf5d602b set_disk_ro
+EXPORT_SYMBOL vmlinux 0xcf69ae94 alloc_disk
+EXPORT_SYMBOL vmlinux 0xcf901697 __strnlen_user
+EXPORT_SYMBOL vmlinux 0xcfa67212 jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0xcfb7d5a0 cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0xcfb9006e jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0xcfcaa12b free_netdev
+EXPORT_SYMBOL vmlinux 0xd00bdc3d jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd01a0e20 __scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0xd01f4b6e gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xd04b5699 tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0xd0556b40 add_timer
+EXPORT_SYMBOL vmlinux 0xd056c62b __starget_for_each_device
+EXPORT_SYMBOL vmlinux 0xd05931ec _lv1_set_lpm_counter_control
+EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0b5d84c ps2_end_command
+EXPORT_SYMBOL vmlinux 0xd0b6322e __dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd0ff0aa8 security_file_permission
+EXPORT_SYMBOL vmlinux 0xd103f02c sk_filter
+EXPORT_SYMBOL vmlinux 0xd1262886 rtas_data_buf
+EXPORT_SYMBOL vmlinux 0xd12dae57 sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0xd156f9c7 kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd18022f3 blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0xd18271a3 rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0xd187afdf sk_alloc
+EXPORT_SYMBOL vmlinux 0xd1899537 dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xd1ad4007 qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0xd1d2deba sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0xd1fd7262 i2c_transfer
+EXPORT_SYMBOL vmlinux 0xd1fe8ebb _lv1_get_spe_interrupt_status
+EXPORT_SYMBOL vmlinux 0xd2207b23 pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0xd2276026 __bforget
+EXPORT_SYMBOL vmlinux 0xd228da9c input_unregister_handle
+EXPORT_SYMBOL vmlinux 0xd235b785 vc_cons
+EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel
+EXPORT_SYMBOL vmlinux 0xd23a28fd skb_free_datagram
+EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd25247fb dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t
+EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook
+EXPORT_SYMBOL vmlinux 0xd26d133e inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2a859b5 kill_anon_super
+EXPORT_SYMBOL vmlinux 0xd2ae5ef6 write_inode_now
+EXPORT_SYMBOL vmlinux 0xd2b49a8f sock_wake_async
+EXPORT_SYMBOL vmlinux 0xd2bac1ca blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0xd2cd5568 interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0xd2ef2638 smu_cmdbuf_abs
+EXPORT_SYMBOL vmlinux 0xd2f09ac0 may_umount
+EXPORT_SYMBOL vmlinux 0xd2f7bc98 pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0xd30d2579 dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0xd315fff9 sock_wmalloc
+EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible
+EXPORT_SYMBOL vmlinux 0xd34629ac dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0xd3729050 call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user
+EXPORT_SYMBOL vmlinux 0xd3bf42d4 devm_ioremap_prot
+EXPORT_SYMBOL vmlinux 0xd409383c pmu_request
+EXPORT_SYMBOL vmlinux 0xd40c7e5a unregister_key_type
+EXPORT_SYMBOL vmlinux 0xd44f71fb napi_frags_skb
+EXPORT_SYMBOL vmlinux 0xd45ca283 llc_sap_find
+EXPORT_SYMBOL vmlinux 0xd46812f8 skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0xd46d0968 ioremap_flags
+EXPORT_SYMBOL vmlinux 0xd4824ce8 pci_target_state
+EXPORT_SYMBOL vmlinux 0xd490f397 put_tty_driver
+EXPORT_SYMBOL vmlinux 0xd4cce4f3 pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0xd5150ffd setup_new_exec
+EXPORT_SYMBOL vmlinux 0xd521b9a1 ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out
+EXPORT_SYMBOL vmlinux 0xd55f3209 _lv1_remove_repository_node
+EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages
+EXPORT_SYMBOL vmlinux 0xd59b17a5 invalidate_bdev
+EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put
+EXPORT_SYMBOL vmlinux 0xd5b568a9 drop_super
+EXPORT_SYMBOL vmlinux 0xd5e1d719 _lv1_set_ppe_periodic_tracer_frequency
+EXPORT_SYMBOL vmlinux 0xd5f2202e jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0xd5f2c785 sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0xd61b42b3 remove_proc_entry
+EXPORT_SYMBOL vmlinux 0xd620aee4 km_state_expired
+EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd634e139 ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0xd635d134 rb_last
+EXPORT_SYMBOL vmlinux 0xd64ecc31 nf_afinfo
+EXPORT_SYMBOL vmlinux 0xd656b9bb pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0xd6641d50 jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0xd66fa6d8 sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0xd67eb40d log_wait_commit
+EXPORT_SYMBOL vmlinux 0xd6879770 blk_recount_segments
+EXPORT_SYMBOL vmlinux 0xd6891b14 blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single
+EXPORT_SYMBOL vmlinux 0xd6da08fd rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0xd6e33e29 dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0xd6edf811 _lv1_release_memory
+EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc
+EXPORT_SYMBOL vmlinux 0xd6f97ca1 rb_first
+EXPORT_SYMBOL vmlinux 0xd72e1cfc _lv1_set_lpm_spr_trigger
+EXPORT_SYMBOL vmlinux 0xd72f9596 d_validate
+EXPORT_SYMBOL vmlinux 0xd73d246a jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and
+EXPORT_SYMBOL vmlinux 0xd786c0ea plpar_hcall9
+EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal
+EXPORT_SYMBOL vmlinux 0xd7d3e102 tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd7fc59c3 try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xd81861f0 kill_block_super
+EXPORT_SYMBOL vmlinux 0xd826ba95 dev_trans_start
+EXPORT_SYMBOL vmlinux 0xd82aa7ff consume_skb
+EXPORT_SYMBOL vmlinux 0xd82ccf2d pci_dev_driver
+EXPORT_SYMBOL vmlinux 0xd82d3c13 inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0xd83c9220 pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user
+EXPORT_SYMBOL vmlinux 0xd86a5f0d of_device_uevent
+EXPORT_SYMBOL vmlinux 0xd874b80a block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0xd886af60 tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0xd899adba sock_setsockopt
+EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone
+EXPORT_SYMBOL vmlinux 0xd8a2ab95 in_egroup_p
+EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd8e8b601 key_payload_reserve
+EXPORT_SYMBOL vmlinux 0xd8fa43a6 rtnl_create_link
+EXPORT_SYMBOL vmlinux 0xd9249140 skb_append
+EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd93dc777 bdput
+EXPORT_SYMBOL vmlinux 0xd9856761 security_inode_readlink
+EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd98c0a3a scsi_execute
+EXPORT_SYMBOL vmlinux 0xd9b74f2d tty_hangup
+EXPORT_SYMBOL vmlinux 0xd9bac924 tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0xd9d4d09d _lv1_release_io_segment
+EXPORT_SYMBOL vmlinux 0xda01ff9c aio_put_req
+EXPORT_SYMBOL vmlinux 0xda0dcfff stop_tty
+EXPORT_SYMBOL vmlinux 0xda14f07b phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0xda190423 vfs_write
+EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf
+EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xdaa70e67 of_find_device_by_phandle
+EXPORT_SYMBOL vmlinux 0xdaacb39c send_sig
+EXPORT_SYMBOL vmlinux 0xdacc8379 pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0xdb07e74d bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0xdb09946d simple_release_fs
+EXPORT_SYMBOL vmlinux 0xdb33705a xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0xdb350f5d __sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0xdb39c713 ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0xdb8bd78a tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0xdb968922 pci_get_slot
+EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbee0969 __neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems
+EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint
+EXPORT_SYMBOL vmlinux 0xdc37e0a7 tty_free_termios
+EXPORT_SYMBOL vmlinux 0xdc3da720 inode_needs_sync
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize
+EXPORT_SYMBOL vmlinux 0xdc6e0d37 do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0xdc727289 __percpu_counter_init
+EXPORT_SYMBOL vmlinux 0xdc89ef5e pci_set_master
+EXPORT_SYMBOL vmlinux 0xdc908871 try_to_del_timer_sync
+EXPORT_SYMBOL vmlinux 0xdc9b072b scsi_remove_target
+EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family
+EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close
+EXPORT_SYMBOL vmlinux 0xdcb5671d strlen
+EXPORT_SYMBOL vmlinux 0xdcd848bc current_fs_time
+EXPORT_SYMBOL vmlinux 0xdcecdf1d dcache_lock
+EXPORT_SYMBOL vmlinux 0xdcefb9a5 pmu_resume
+EXPORT_SYMBOL vmlinux 0xdcf2f44d bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0xdcf419d7 abort_creds
+EXPORT_SYMBOL vmlinux 0xdcf6a039 macio_dev_get
+EXPORT_SYMBOL vmlinux 0xdd1274ba inet_getname
+EXPORT_SYMBOL vmlinux 0xdd2c188c task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0xdd5c8151 pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0xdd955144 __debugger
+EXPORT_SYMBOL vmlinux 0xdd9b3257 tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0xddc2383c textsearch_register
+EXPORT_SYMBOL vmlinux 0xddd573f9 iget_locked
+EXPORT_SYMBOL vmlinux 0xddda8f48 __breadahead
+EXPORT_SYMBOL vmlinux 0xde0887d6 register_sysrq_key
+EXPORT_SYMBOL vmlinux 0xde0965f6 journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xde48e9ca _raw_spin_lock
+EXPORT_SYMBOL vmlinux 0xde52b827 inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type
+EXPORT_SYMBOL vmlinux 0xde7755b3 matroxfb_vgaHWrestore
+EXPORT_SYMBOL vmlinux 0xde869d6b init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages
+EXPORT_SYMBOL vmlinux 0xdeb33a71 tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0xdee47147 tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0xdf11c8c5 tcp_child_process
+EXPORT_SYMBOL vmlinux 0xdf19a51d xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0xdf1c63a2 thaw_process
+EXPORT_SYMBOL vmlinux 0xdf38e0ed backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0xdf47be0d I_BDEV
+EXPORT_SYMBOL vmlinux 0xdf4c8767 ns_to_timeval
+EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol
+EXPORT_SYMBOL vmlinux 0xdf60fc83 _lv1_net_start_tx_dma
+EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdf9b7fc2 vio_disable_interrupts
+EXPORT_SYMBOL vmlinux 0xdfa99242 ip_getsockopt
+EXPORT_SYMBOL vmlinux 0xdfb10773 raw_local_irq_restore
+EXPORT_SYMBOL vmlinux 0xdfbe05a6 seq_printf
+EXPORT_SYMBOL vmlinux 0xdfd9760b d_alloc_root
+EXPORT_SYMBOL vmlinux 0xdfe060f2 d_add_ci
+EXPORT_SYMBOL vmlinux 0xdfff6181 ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0xe0368a69 inode_init_owner
+EXPORT_SYMBOL vmlinux 0xe03d0b39 icmp_send
+EXPORT_SYMBOL vmlinux 0xe0724372 unbind_con_driver
+EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe08fcf66 __nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0xe092b79d vfs_statfs
+EXPORT_SYMBOL vmlinux 0xe096f9c0 locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free
+EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort
+EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0xe1087689 ide_raw_taskfile
+EXPORT_SYMBOL vmlinux 0xe10a5cfa truncate_pagecache
+EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial
+EXPORT_SYMBOL vmlinux 0xe12f3741 give_up_console
+EXPORT_SYMBOL vmlinux 0xe13b89d6 scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0xe140f928 __lock_buffer
+EXPORT_SYMBOL vmlinux 0xe14265ca journal_clear_err
+EXPORT_SYMBOL vmlinux 0xe152cf6e ip_defrag
+EXPORT_SYMBOL vmlinux 0xe165d180 generic_write_sync
+EXPORT_SYMBOL vmlinux 0xe16dcca2 blk_start_request
+EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe1946800 mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0xe1bb4e46 make_EII_client
+EXPORT_SYMBOL vmlinux 0xe1ed9a3f register_quota_format
+EXPORT_SYMBOL vmlinux 0xe20c63e7 _lv1_unmap_device_mmio_region
+EXPORT_SYMBOL vmlinux 0xe22087d7 powerpc_debugfs_root
+EXPORT_SYMBOL vmlinux 0xe220ceb8 __debugger_sstep
+EXPORT_SYMBOL vmlinux 0xe22135e3 dcache_dir_open
+EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense
+EXPORT_SYMBOL vmlinux 0xe235ae45 bio_kmalloc
+EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf
+EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64
+EXPORT_SYMBOL vmlinux 0xe2ae4be3 gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0xe2ae5716 vio_find_node
+EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp
+EXPORT_SYMBOL vmlinux 0xe2e0c7c6 __flush_icache_range
+EXPORT_SYMBOL vmlinux 0xe2f5e1d8 scsi_get_command
+EXPORT_SYMBOL vmlinux 0xe324e525 audit_log_format
+EXPORT_SYMBOL vmlinux 0xe336f3a4 unregister_quota_format
+EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf
+EXPORT_SYMBOL vmlinux 0xe3b04a21 tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0xe3bc4d3e iput
+EXPORT_SYMBOL vmlinux 0xe3c1dfa2 neigh_update
+EXPORT_SYMBOL vmlinux 0xe3c6c704 alloc_etherdev_mq
+EXPORT_SYMBOL vmlinux 0xe3d15f6e dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0xe40a06b4 scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xe4148782 lro_vlan_hwaccel_receive_frags
+EXPORT_SYMBOL vmlinux 0xe45991d3 i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0xe45a88b1 journal_force_commit
+EXPORT_SYMBOL vmlinux 0xe484e35f ioread32
+EXPORT_SYMBOL vmlinux 0xe497ac1e percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0xe4a27a2d path_put
+EXPORT_SYMBOL vmlinux 0xe4bd33a9 macio_release_resources
+EXPORT_SYMBOL vmlinux 0xe4d6da21 journal_ack_err
+EXPORT_SYMBOL vmlinux 0xe4e928c4 pci_release_region
+EXPORT_SYMBOL vmlinux 0xe4fe8ca1 _raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0xe505575d ide_dump_status
+EXPORT_SYMBOL vmlinux 0xe508506f pcim_enable_device
+EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe53d7002 mpage_writepages
+EXPORT_SYMBOL vmlinux 0xe563ca0e jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0xe5736eae sk_receive_skb
+EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton
+EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5da8a15 journal_errno
+EXPORT_SYMBOL vmlinux 0xe5ea8f21 nf_log_unregister
+EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe5fdb54a skb_queue_tail
+EXPORT_SYMBOL vmlinux 0xe60988ac _lv1_query_logical_partition_address_region_info
+EXPORT_SYMBOL vmlinux 0xe655b6ca sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0xe6677270 cdrom_mode_sense
+EXPORT_SYMBOL vmlinux 0xe667c7e8 __dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xe66cbe18 revalidate_disk
+EXPORT_SYMBOL vmlinux 0xe6837105 devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6a1aee7 scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0xe6cc9de1 vfs_stat
+EXPORT_SYMBOL vmlinux 0xe6f62bfe pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0xe6f7890d ethtool_op_get_rx_csum
+EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe6fe33e4 down_killable
+EXPORT_SYMBOL vmlinux 0xe72146dd security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0xe72323b8 rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0xe72ff4bb inet_release
+EXPORT_SYMBOL vmlinux 0xe74aa406 _lv1_set_dabr
+EXPORT_SYMBOL vmlinux 0xe75ac9be i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0xe75b7d46 ip_route_output_key
+EXPORT_SYMBOL vmlinux 0xe78757d0 elv_rb_add
+EXPORT_SYMBOL vmlinux 0xe79078ac register_exec_domain
+EXPORT_SYMBOL vmlinux 0xe7a88e9f ps2_drain
+EXPORT_SYMBOL vmlinux 0xe7cd99b7 smu_queue_simple
+EXPORT_SYMBOL vmlinux 0xe7ce7439 _memcpy_fromio
+EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next
+EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node
+EXPORT_SYMBOL vmlinux 0xe81a463e d_prune_aliases
+EXPORT_SYMBOL vmlinux 0xe83184c9 release_firmware
+EXPORT_SYMBOL vmlinux 0xe8350059 eth_mac_addr
+EXPORT_SYMBOL vmlinux 0xe8424381 sg_miter_stop
+EXPORT_SYMBOL vmlinux 0xe8440d69 of_translate_dma_address
+EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0xe858783e xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0xe894136e udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0xe8fa6db7 g450_mnp2f
+EXPORT_SYMBOL vmlinux 0xe90aa4e9 rb_insert_color
+EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module
+EXPORT_SYMBOL vmlinux 0xe914e41e strcpy
+EXPORT_SYMBOL vmlinux 0xe94a6f65 inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0xe969ad69 pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0xe9a04520 del_timer
+EXPORT_SYMBOL vmlinux 0xe9b4faae inode_permission
+EXPORT_SYMBOL vmlinux 0xe9e9a2e2 scsi_prep_return
+EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea095853 mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea147363 printk
+EXPORT_SYMBOL vmlinux 0xea177f16 deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0xea27f73c register_framebuffer
+EXPORT_SYMBOL vmlinux 0xea587ec2 dm_table_put
+EXPORT_SYMBOL vmlinux 0xea58d486 posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xea5f09c9 __alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0xea618863 blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump
+EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq
+EXPORT_SYMBOL vmlinux 0xeb2c9ac3 get_fs_type
+EXPORT_SYMBOL vmlinux 0xeb2e1e12 bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0xeb37269a dentry_unhash
+EXPORT_SYMBOL vmlinux 0xeb44c66a slow_work_register_user
+EXPORT_SYMBOL vmlinux 0xeb499a85 tcp_v4_remember_stamp
+EXPORT_SYMBOL vmlinux 0xeb54083d km_policy_notify
+EXPORT_SYMBOL vmlinux 0xeb54e971 iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0xeb580433 pmac_suspend_agp_for_card
+EXPORT_SYMBOL vmlinux 0xeb6cffab max8925_reg_write
+EXPORT_SYMBOL vmlinux 0xeb70cc55 dev_uc_sync
+EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n
+EXPORT_SYMBOL vmlinux 0xeba2a1f7 rtas_indicator_present
+EXPORT_SYMBOL vmlinux 0xeba9339c pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp
+EXPORT_SYMBOL vmlinux 0xebcf320a pci_try_set_mwi
+EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull
+EXPORT_SYMBOL vmlinux 0xebe1cb8e blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec30765a _lv1_allocate_io_segment
+EXPORT_SYMBOL vmlinux 0xec3efcf5 aio_complete
+EXPORT_SYMBOL vmlinux 0xec4e23df nobh_write_end
+EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xec804de1 iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0xecad90d0 balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0xed065a63 names_cachep
+EXPORT_SYMBOL vmlinux 0xed1aebe9 dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0xed1b83ae bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0xed1ed1c3 journal_flush
+EXPORT_SYMBOL vmlinux 0xed239dab sock_recvmsg
+EXPORT_SYMBOL vmlinux 0xed303c38 iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0xed37ef01 netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0xed652427 _lv1_set_interrupt_mask
+EXPORT_SYMBOL vmlinux 0xed86b3b7 ___ratelimit
+EXPORT_SYMBOL vmlinux 0xed87790c pci_pme_active
+EXPORT_SYMBOL vmlinux 0xed89a9fb dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedc03953 iounmap
+EXPORT_SYMBOL vmlinux 0xedc410d0 udplite_table
+EXPORT_SYMBOL vmlinux 0xedd47b9b tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0xedf0b48c _lv1_storage_get_async_status
+EXPORT_SYMBOL vmlinux 0xedf904a7 security_path_link
+EXPORT_SYMBOL vmlinux 0xedf9080e xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0xedf91a89 kthread_stop
+EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee57a023 compat_mc_setsockopt
+EXPORT_SYMBOL vmlinux 0xee5bb20b _lv1_panic
+EXPORT_SYMBOL vmlinux 0xee68e952 cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0xee9174c5 _lv1_storage_read
+EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xef0ef9a4 of_n_addr_cells
+EXPORT_SYMBOL vmlinux 0xef109449 interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0xef1385cf invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0xef31056a tcf_hash_release
+EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool
+EXPORT_SYMBOL vmlinux 0xef7f0ac9 dget_locked
+EXPORT_SYMBOL vmlinux 0xefa2e7c5 neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0xefc2e54d _lv1_storage_send_device_command
+EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefde1bbe flush_dcache_range
+EXPORT_SYMBOL vmlinux 0xefe8c18b pcim_iounmap
+EXPORT_SYMBOL vmlinux 0xeff69d87 misc_register
+EXPORT_SYMBOL vmlinux 0xefffac0a dev_alloc_name
+EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list
+EXPORT_SYMBOL vmlinux 0xf04b668b vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0xf05a63de security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be
+EXPORT_SYMBOL vmlinux 0xf0662e2c kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0xf07ce860 neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0xf08b50cc simple_lookup
+EXPORT_SYMBOL vmlinux 0xf0d2f84a _lv1_gpu_context_free
+EXPORT_SYMBOL vmlinux 0xf0dcf3bc tcp_shutdown
+EXPORT_SYMBOL vmlinux 0xf0eb208a i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf
+EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xf10de535 ioread8
+EXPORT_SYMBOL vmlinux 0xf10e0fab cdev_alloc
+EXPORT_SYMBOL vmlinux 0xf112cf4f inet_stream_connect
+EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32
+EXPORT_SYMBOL vmlinux 0xf12f997c kdb_current_task
+EXPORT_SYMBOL vmlinux 0xf142aa9f input_allocate_device
+EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem
+EXPORT_SYMBOL vmlinux 0xf183189b __ioremap_at
+EXPORT_SYMBOL vmlinux 0xf184df96 load_nls_default
+EXPORT_SYMBOL vmlinux 0xf185a8a5 scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1df2d99 tty_shutdown
+EXPORT_SYMBOL vmlinux 0xf1e36cac rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun
+EXPORT_SYMBOL vmlinux 0xf1ee399f seq_release_private
+EXPORT_SYMBOL vmlinux 0xf1fa765f phy_connect_direct
+EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq
+EXPORT_SYMBOL vmlinux 0xf222dee9 do_SAK
+EXPORT_SYMBOL vmlinux 0xf22b14d8 idr_get_new
+EXPORT_SYMBOL vmlinux 0xf2469f8e vfs_follow_link
+EXPORT_SYMBOL vmlinux 0xf25aa79c udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0xf25d500c iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0xf29261a6 textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0xf2a37df4 blk_plug_device
+EXPORT_SYMBOL vmlinux 0xf2af9325 tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0xf2c36d74 dquot_disable
+EXPORT_SYMBOL vmlinux 0xf2fca0e0 bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0xf309e9ee cur_cpu_spec
+EXPORT_SYMBOL vmlinux 0xf30d1036 _lv1_start_ppe_periodic_tracer
+EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform
+EXPORT_SYMBOL vmlinux 0xf322a206 bit_waitqueue
+EXPORT_SYMBOL vmlinux 0xf3238e8d of_find_node_with_property
+EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name
+EXPORT_SYMBOL vmlinux 0xf328aecb find_or_create_page
+EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user
+EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf3453c15 xrlim_allow
+EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf34e81d5 skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0xf357db8d pasemi_dma_set_flag
+EXPORT_SYMBOL vmlinux 0xf360168b matroxfb_unregister_driver
+EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf38ffe82 lock_may_read
+EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf397f637 fb_pan_display
+EXPORT_SYMBOL vmlinux 0xf39a5222 _lv1_get_virtual_address_space_id_of_ppe
+EXPORT_SYMBOL vmlinux 0xf3a440f5 unregister_filesystem
+EXPORT_SYMBOL vmlinux 0xf3b2edc7 tcp_close
+EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf42c31df poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep
+EXPORT_SYMBOL vmlinux 0xf441cd90 copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0xf4528073 scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0xf46450ad phy_device_create
+EXPORT_SYMBOL vmlinux 0xf49d3eb0 napi_reuse_skb
+EXPORT_SYMBOL vmlinux 0xf4aabe04 of_match_node
+EXPORT_SYMBOL vmlinux 0xf4ab61e0 remove_from_page_cache
+EXPORT_SYMBOL vmlinux 0xf4bf3061 input_set_capability
+EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf518c8d4 bio_copy_user
+EXPORT_SYMBOL vmlinux 0xf5222143 _raw_spin_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n
+EXPORT_SYMBOL vmlinux 0xf55a9e72 up_read
+EXPORT_SYMBOL vmlinux 0xf55d7006 cont_write_begin
+EXPORT_SYMBOL vmlinux 0xf5647a14 of_get_next_child
+EXPORT_SYMBOL vmlinux 0xf56576cb put_disk
+EXPORT_SYMBOL vmlinux 0xf56b3d22 fasync_helper
+EXPORT_SYMBOL vmlinux 0xf56dfad3 is_container_init
+EXPORT_SYMBOL vmlinux 0xf57a9e78 seq_putc
+EXPORT_SYMBOL vmlinux 0xf594f80d ida_get_new
+EXPORT_SYMBOL vmlinux 0xf5a62ecc _memset_io
+EXPORT_SYMBOL vmlinux 0xf5ad0423 blk_rq_init
+EXPORT_SYMBOL vmlinux 0xf5b4e8a9 mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xf5d8e02c pci_enable_device
+EXPORT_SYMBOL vmlinux 0xf5e1558d crash_shutdown_unregister
+EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf5f66995 netif_napi_del
+EXPORT_SYMBOL vmlinux 0xf6129f2d neigh_seq_next
+EXPORT_SYMBOL vmlinux 0xf6213e12 pasemi_dma_clear_flag
+EXPORT_SYMBOL vmlinux 0xf6246ed9 close_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0xf634846c __skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0xf64902a0 pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0xf6743613 xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0xf67d0276 __blk_run_queue
+EXPORT_SYMBOL vmlinux 0xf67d6477 filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table
+EXPORT_SYMBOL vmlinux 0xf6c14957 write_one_page
+EXPORT_SYMBOL vmlinux 0xf6ddd3c2 mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf6ebe0c9 skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xf6ecb763 _lv1_send_event_locally
+EXPORT_SYMBOL vmlinux 0xf73534cd pci_set_mwi
+EXPORT_SYMBOL vmlinux 0xf754030e ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0xf7584a9c find_font
+EXPORT_SYMBOL vmlinux 0xf76d3a60 netif_napi_add
+EXPORT_SYMBOL vmlinux 0xf7764b08 dev_mc_flush
+EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7bac0ec _lv1_set_lpm_counter
+EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0xf7d8e996 neigh_connected_output
+EXPORT_SYMBOL vmlinux 0xf7ed1711 matroxfb_read_pins
+EXPORT_SYMBOL vmlinux 0xf8004bfd _lv1_disconnect_interrupt_event_receive_port
+EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set
+EXPORT_SYMBOL vmlinux 0xf80b23c1 __set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf8766113 inet_recvmsg
+EXPORT_SYMBOL vmlinux 0xf8906870 vio_cmo_entitlement_update
+EXPORT_SYMBOL vmlinux 0xf894f03f inet_frag_kill
+EXPORT_SYMBOL vmlinux 0xf8971b85 sk_wait_data
+EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work
+EXPORT_SYMBOL vmlinux 0xf8acd1ac nf_getsockopt
+EXPORT_SYMBOL vmlinux 0xf8af7ff5 scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0xf8d03e26 scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0xf8d44ce7 swiotlb_map_sg
+EXPORT_SYMBOL vmlinux 0xf8d45e53 skb_trim
+EXPORT_SYMBOL vmlinux 0xf8da4606 dev_load
+EXPORT_SYMBOL vmlinux 0xf8e98e7b splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0xf8f9cae8 dquot_initialize
+EXPORT_SYMBOL vmlinux 0xf916a8e2 __devm_request_region
+EXPORT_SYMBOL vmlinux 0xf9238b09 sock_map_fd
+EXPORT_SYMBOL vmlinux 0xf92c59c3 pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0xf9481234 block_read_full_page
+EXPORT_SYMBOL vmlinux 0xf952a4c1 rtnl_unicast
+EXPORT_SYMBOL vmlinux 0xf9607664 user_path_at
+EXPORT_SYMBOL vmlinux 0xf96d1a7d mutex_unlock
+EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep
+EXPORT_SYMBOL vmlinux 0xf9aed612 nf_register_hooks
+EXPORT_SYMBOL vmlinux 0xf9b0844a tty_set_operations
+EXPORT_SYMBOL vmlinux 0xf9c34b9b of_get_mac_address
+EXPORT_SYMBOL vmlinux 0xf9ded9cd gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0xf9e0f11d jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0xfa0edce5 jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0xfa4e4627 of_find_device_by_node
+EXPORT_SYMBOL vmlinux 0xfa538f6f fsync_bdev
+EXPORT_SYMBOL vmlinux 0xfa5d460c dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0xfa63d427 km_policy_expired
+EXPORT_SYMBOL vmlinux 0xfa86e630 netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0xfa9c71c0 of_mdiobus_register
+EXPORT_SYMBOL vmlinux 0xfac110d8 i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0xfacd1c80 register_con_driver
+EXPORT_SYMBOL vmlinux 0xfadb5750 pmu_unlock
+EXPORT_SYMBOL vmlinux 0xfae3b3a9 skb_gso_segment
+EXPORT_SYMBOL vmlinux 0xfaf64b5e scsi_device_get
+EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32
+EXPORT_SYMBOL vmlinux 0xfb0090ab nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs
+EXPORT_SYMBOL vmlinux 0xfb192e46 inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0xfb1ad3ae blk_execute_rq
+EXPORT_SYMBOL vmlinux 0xfb21b9cc __f_setown
+EXPORT_SYMBOL vmlinux 0xfb4ac772 dm_get_device
+EXPORT_SYMBOL vmlinux 0xfb4eb184 xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0xfb620a58 blk_put_request
+EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb8aab88 of_platform_device_create
+EXPORT_SYMBOL vmlinux 0xfb9d2e8a sock_kmalloc
+EXPORT_SYMBOL vmlinux 0xfba84ad3 del_gendisk
+EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xfbd2551d blkdev_fsync
+EXPORT_SYMBOL vmlinux 0xfbf90666 __page_symlink
+EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc0532fc lookup_bdev
+EXPORT_SYMBOL vmlinux 0xfc14aacf scsi_remove_host
+EXPORT_SYMBOL vmlinux 0xfc199ff6 bdi_destroy
+EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc5a38f9 tcp_ioctl
+EXPORT_SYMBOL vmlinux 0xfc7780f0 nlmsg_notify
+EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfce3fb55 nf_log_packet
+EXPORT_SYMBOL vmlinux 0xfce55584 is_bad_inode
+EXPORT_SYMBOL vmlinux 0xfce6607d d_alloc_name
+EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq
+EXPORT_SYMBOL vmlinux 0xfcf9b213 elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfd14276e do_sync_read
+EXPORT_SYMBOL vmlinux 0xfd1dca3c matroxfb_DAC_in
+EXPORT_SYMBOL vmlinux 0xfd50b155 dev_uc_del
+EXPORT_SYMBOL vmlinux 0xfd5760aa pci_disable_msi
+EXPORT_SYMBOL vmlinux 0xfd6d257b phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xfd78ef1c blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0xfd8d19e4 xfrm_register_type
+EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xfdb18d79 xfrm_register_km
+EXPORT_SYMBOL vmlinux 0xfdb6cedc _raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be
+EXPORT_SYMBOL vmlinux 0xfdcdb033 netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0xfddec651 phy_device_register
+EXPORT_SYMBOL vmlinux 0xfded48ed enable_kernel_fp
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe03a555 vlan_gro_receive
+EXPORT_SYMBOL vmlinux 0xfe13e5cc netlink_dump_start
+EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids
+EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xfe3c712c scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0xfe48dfa7 blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0xfe4cb4b5 _lv1_storage_write
+EXPORT_SYMBOL vmlinux 0xfe54af36 nobh_writepage
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz
+EXPORT_SYMBOL vmlinux 0xfe6f4ca9 skb_unlink
+EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe780671 dw_spi_resume_host
+EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfe90cb3b pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0xfe90f47e generic_ro_fops
+EXPORT_SYMBOL vmlinux 0xfe9ed307 cad_pid
+EXPORT_SYMBOL vmlinux 0xfea54a08 dma_iommu_ops
+EXPORT_SYMBOL vmlinux 0xfeb7c370 elevator_init
+EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin
+EXPORT_SYMBOL vmlinux 0xfec97bc5 insert_inode_locked
+EXPORT_SYMBOL vmlinux 0xfed221d9 pasemi_dma_alloc_ring
+EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfef60d87 take_over_console
+EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command
+EXPORT_SYMBOL vmlinux 0xfefee251 generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0xff1765c7 rtas_call
+EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start
+EXPORT_SYMBOL vmlinux 0xff32fc29 kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0xff385281 __find_get_block
+EXPORT_SYMBOL vmlinux 0xff4ce35c boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0xff53db43 mach_pasemi
+EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource
+EXPORT_SYMBOL vmlinux 0xff7c5242 xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0xff81d2c5 __debugger_dabr_match
+EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int
+EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffab1b1f xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0xffb99ab8 simple_readpage
+EXPORT_SYMBOL vmlinux 0xffc6a698 register_filesystem
+EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function
+EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0x3b04b0ec spu_save
+EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0xc5823823 spu_restore
+EXPORT_SYMBOL_GPL arch/powerpc/platforms/cell/spufs/spufs 0xeb299010 spufs_context_fops
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3710f902 crypto_aes_set_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab
+EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x59f65ae3 async_memcpy
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x40c87b59 async_gen_syndrome
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x9e04a378 async_syndrome_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xa6bd2b5d async_raid6_2data_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xeb9e8491 async_raid6_datap_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x26288347 async_trigger_callback
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x73d9455d async_tx_quiesce
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xcd1bf643 async_tx_submit
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x1397055e async_xor_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x50367457 async_xor
+EXPORT_SYMBOL_GPL crypto/cryptd 0x1f0c370b cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0x20bbf114 cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x34251e14 cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x5f06e18b cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0x93b2ae7d cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xd34d3d16 cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xe859230a cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey
+EXPORT_SYMBOL_GPL crypto/twofish_common 0x19ebf2d1 twofish_setkey
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0021b470 ahci_print_info
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x07fec2d0 ahci_set_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0928957f ahci_sht
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2939bfe6 ahci_ops
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x349d3c98 ahci_reset_em
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x41bef9cc ahci_save_initial_config
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x44d9f2e1 ahci_stop_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4ec6915c ahci_init_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x81cddc94 ahci_reset_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb9a72f59 ahci_start_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc1bad679 ahci_do_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc57206ff ahci_kick_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd3fc5855 ahci_check_ready
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x74da6279 __pata_platform_probe
+EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x7cac6f1e __pata_platform_remove
+EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xd0ee800f sis_info133_for_sata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0a88f308 btmrvl_check_evtpkt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x405cd603 btmrvl_register_hdev
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x42e1696a btmrvl_process_event
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4a4966e9 btmrvl_enable_ps
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x53f3a4ec btmrvl_remove_card
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb954c443 btmrvl_send_module_cfg_cmd
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xca401951 btmrvl_interrupt
+EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf8365d57 btmrvl_add_card
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x10dea11d agp_remove_bridge
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0x3dc780a2 agp_add_bridge
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xd6feefa5 agp_num_entries
+EXPORT_SYMBOL_GPL drivers/char/agp/agpgart 0xe089cfcc agp_memory_reserved
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x02caaffc tpm_show_owned
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3795ef8a tpm_continue_selftest
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4ebdf6a7 tpm_open
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5c014e8f tpm_show_caps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x69391ef3 tpm_dev_vendor_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x69c35d0f tpm_register_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6c4cae51 tpm_gen_interrupt
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7297d04d tpm_pm_suspend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7bd04328 tpm_show_enabled
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x7d201dd6 tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8880a5af tpm_show_pcrs
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa9a0170a tpm_store_cancel
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb254a611 tpm_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb4123da4 tpm_write
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xbb50c0dd tpm_show_temp_deactivated
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xbd0eee64 tpm_show_active
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc1f797b3 tpm_show_pubek
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc27b1941 tpm_remove_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd1fbde82 tpm_pm_resume
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd5a20738 tpm_dev_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd8b3d9c5 tpm_get_timeouts
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe3f63c76 tpm_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe8a93188 tpm_show_caps_1_2
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xcf7a962e cn_add_callback
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x003329e8 edac_pci_handle_pe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x09e04b59 edac_mc_free
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0ffabe3e edac_device_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x114b70db edac_pci_handle_npe
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1b18e5ea edac_device_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2b193a01 edac_pci_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x33ad40b7 edac_mc_handle_ce_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x351fd735 edac_pci_reset_delay_period
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3993ceae edac_mc_add_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4201209f edac_device_add_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x479c1857 edac_mc_handle_ue
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x50cce042 edac_pci_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x53781704 edac_mc_del_mc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x68f6d67b edac_device_free_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8704487d edac_mc_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x95641533 edac_mc_alloc
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xabdeefc6 edac_pci_create_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xae1a7e64 edac_device_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaf7f0e56 edac_mc_handle_ue_no_info
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc4ae76e2 edac_pci_release_generic_ctl
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd49e818c edac_device_handle_ce
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd6698546 edac_pci_del_device
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd9fe22d0 edac_mc_find_csrow_by_page
+EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfb4f3881 edac_pci_alloc_ctl_info
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x238efa6e __max730x_probe
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xd6b4c8b7 __max730x_remove
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7f382110 drm_class_device_register
+EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x93ab683a drm_class_device_unregister
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x17fcbb26 hidinput_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x2e663ee1 hid_report_raw_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x39ca0721 hid_set_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x44370d45 hid_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x45c84075 hid_resolv_usage
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x58bc8607 hidinput_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x60268dd4 hidraw_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x6837b708 hid_add_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x718a2db7 hid_check_keys_pressed
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x71be4b3a hid_dump_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x76e34412 hid_unregister_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x8d1f1958 hid_parse_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x8de73077 hidinput_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xa8b2c957 hidraw_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xbaf5494e hid_output_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xd3d85263 hid_input_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xd52f98fb hid_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xd5c30bdb hid_allocate_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xd5c3a030 hid_dump_input
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xd94aaee9 hid_register_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe9c3a7dd hidraw_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xed4c9d8d __hid_register_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xed523eb9 hid_dump_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xf86e5aec hid_debug_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xfba4cee3 hid_destroy_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xfe1975a6 hidinput_find_field
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xfe919395 roccat_connect
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x5168a731 usbhid_submit_report
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x668ed726 hiddev_hid_event
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xa4bdca49 usbhid_set_leds
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xbc25d3ff usbhid_wait_io
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x16b25e20 lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x8ac3971e lis3lv02d_init_device
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x8de97554 lis3lv02d_poweron
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xb34f71bc lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xd7dd3995 lis3_dev
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x5922d534 i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xf8955208 i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x5d0375d5 hpsb_config_rom_ip1394_add
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xab80947f hpsb_config_rom_ip1394_remove
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm
+EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x5a82ef24 input_ff_create_memless
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x00ea7291 wm97xx_config_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x09086731 wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x184b343a wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1ef55297 wm97xx_set_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x220a33e1 wm97xx_reg_read
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2ed83626 wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x34ec5ac3 wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x64676fe2 wm9712_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x79d972b8 wm9705_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x94cbf2c3 wm97xx_reg_write
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa8cd6f7c wm9713_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf5864602 wm97xx_get_gpio
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x0f82076b wf_register_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x217cd43f wf_get_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x25ffd4b7 wf_put_control
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x370faa53 wf_register_control
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x67ae1aab wf_find_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x75147afa wf_set_overtemp
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x773b48c0 wf_get_control
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x94765fac wf_critical_overtemp
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x9a37efc0 wf_find_control
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0x9fd69269 wf_unregister_control
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xa2f19a49 wf_is_overtemp
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xaf15726f wf_unregister_client
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xd052f2e6 wf_unregister_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xdb7e8499 wf_register_client
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xed82a14f wf_clear_overtemp
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_core 0xf0bb8a2a wf_put_sensor
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0x9808f147 wf_pid_run
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xb8ed5b2c wf_cpu_pid_init
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xcd9a18ef wf_pid_init
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_pid 0xceda69f1 wf_cpu_pid_run
+EXPORT_SYMBOL_GPL drivers/macintosh/windfarm_smu_sat 0xe05851d5 smu_sat_get_sdb_partition
+EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x00feb97b dm_register_path_selector
+EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x94f96927 dm_unregister_path_selector
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x018eb111 dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x0209b3cc dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x105d879c dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x13ac68f1 dm_rh_recovery_end
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x168f8000 dm_rh_recovery_start
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3b9414e9 dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x41580344 dm_region_hash_create
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4e6be549 dm_rh_inc_pending
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5177c48d dm_rh_get_region_size
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x597736d6 dm_rh_start_recovery
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x600afbe4 dm_rh_region_context
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x684301d0 dm_rh_delay
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7143d11d dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x835a7be5 dm_rh_get_region_key
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x8b0ad38f dm_rh_dirty_log
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x9796e026 dm_rh_flush
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa219e167 dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb997fdcc dm_region_hash_destroy
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xba4c2614 dm_rh_get_state
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd2d4dea8 dm_rh_dec
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe81976a2 dm_rh_update_states
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0x07ad02ca md_do_sync
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0x6ac7fd08 md_new_event
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0xbd54cdaf md_allow_write
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0xc99377fb sync_page_io
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x24935f26 raid6_call
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xcdc24ab5 raid6_2data_recov
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xdbab0c01 raid6_datap_recov
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1e0f9f7a ir_input_init
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x8f0cfa5b ir_input_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf6708ad6 ir_input_nokey
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x07542568 ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x0e12ac30 ir_unregister_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1d4c8fb3 ir_repeat
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x2c306b1f ir_raw_event_handle
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x3e2e17c9 ir_g_keycode_from_table
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x4033497d ir_register_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x43d5f0b7 ir_raw_event_store
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xcc949b32 ir_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xd7eea406 __ir_input_register
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xe6923749 ir_input_unregister
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xe8366d2c get_rc_map
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x0228ed78 saa7146_unregister_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x10df560b saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x61463d03 saa7146_setgpio
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6aff7b8e saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x865e7403 saa7146_devices_lock
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9d451d72 saa7146_pgtable_free
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xb9ac17ff saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xbe68b0d3 saa7146_register_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc2a0d50f saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xc62894f1 saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe2f87aeb saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x12029e73 saa7146_start_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x3d55a655 saa7146_register_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x433d559e saa7146_vv_release
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x5846c653 saa7146_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x69936ed1 saa7146_stop_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x8f138f71 saa7146_vv_init
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xcb0ea046 saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xec169582 microtune_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mxl5007t 0x309b79d8 mxl5007t_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda18271 0x79d2bc6e tda18271_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda827x 0x8eb8aefc tda827x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x0646ba16 tda829x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x8ad05fd4 tda829x_probe
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0xea7cb89b tda9887_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x73fb54f3 tea5761_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xffa10327 tea5761_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x62002c67 tea5767_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xa2fd92e3 tea5767_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x5d75b60a simple_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x03bab523 mantis_dvb_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x059ea681 mantis_dvb_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x0e354d0f gpio_set_bits
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x2a5b0a38 mantis_uart_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x5a5038cf ir_mantis
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x78438f1b mantis_uart_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8287d1b3 mantis_stream_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8955de6a mantis_dma_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x8f71cdc8 mantis_dma_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0x9f759d84 mantis_frontend_soft_reset
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xa838f0a7 mantis_pci_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb126d93c mantis_ca_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xb7ecb89e mantis_pci_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xc40e1bec mantis_ca_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xe87b1a5d mantis_i2c_exit
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xee5f09ff mantis_i2c_init
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xee6f7482 mantis_frontend_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/mantis/mantis_core 0xf3af5702 mantis_get_mac
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x0c033e95 smscore_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x21ea3feb smscore_unregister_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x35dbd7d1 smscore_register_hotplug
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x3956feed smscore_get_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4546fe83 sms_board_power
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x47060966 sms_board_led_feedback
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4ae0cc0d sms_board_event
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x4aef6d7c sms_get_board
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x5a552de4 sms_board_lna_control
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x61ea347b sms_board_setup
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x64588496 smscore_set_board_id
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x67b41760 smscore_unregister_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x6854b721 smscore_putbuffer
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x74ee9098 sms_board_load_modules
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7bbf4387 smsclient_sendrequest
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x7c576277 smsendian_handle_message_header
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x8aa0a72f smscore_get_device_mode
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0x9514c272 smscore_register_client
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xcd2929d9 smscore_start_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xced2ae9b smscore_onresponse
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xe13bd8e6 smscore_register_device
+EXPORT_SYMBOL_GPL drivers/media/dvb/siano/smsmdtv 0xf107af78 smscore_getbuffer
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x18245942 cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x26889ced cx231xx_capture_start
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3716b994 cx231xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x37b88882 cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x62fa73a1 cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x92251cee cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xbdf9dbfd cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xbfe9c1ae cx231xx_dev_init
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xcc8b8825 cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xef2922e1 cx231xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf73d2772 cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx88/cx88xx 0xff3d7937 cx88_setup_xc3028
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x31f843ef em28xx_isoc_dvb_max_packetsize
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x3be5c0cf em28xx_audio_analog_set
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x4da21e1b em28xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x536c988a em28xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0x971b8b1c em28xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/em28xx/em28xx 0xd365c3a5 em28xx_audio_setup
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x44c96a38 saa7134_s_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x72455edb saa7134_ts_qops
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xa4249acf saa7134_g_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xb8468290 saa7134_queryctrl
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xcc15d2e6 saa7134_s_std_internal
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x4eb49edf v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x4f553bf3 v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x6e0eb281 v4l2_i2c_new_subdev_cfg
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x84a9d9a4 v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xc9bc558c v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xe9fb9b4a v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-compat-ioctl32 0x413a7d03 v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x02e7c304 v4l2_int_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x1a1b8fdf v4l2_int_ioctl_1
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xb15ccf6d v4l2_int_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xd4126980 v4l2_int_ioctl_0
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x04612a48 v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2e6a14e9 v4l2_m2m_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4b44ceb8 v4l2_m2m_poll
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x7ad3d799 v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x818be3e5 v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x8c86b010 v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x90467035 v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x9ea9fe64 v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xbfe2bd41 v4l2_m2m_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xcf135f0f v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xdf79399d v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe0f13f88 v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xe2fc4255 v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xffbef9f7 v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x027a379a videobuf_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1a822aaa videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4725e3c7 videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x53fc0498 videobuf_read_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x6ba082e3 videobuf_iolock
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x78689ef8 videobuf_read_one
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8843e8a6 videobuf_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8c59c6d7 videobuf_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9c1d2f89 videobuf_cgmbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9f2d502d videobuf_poll_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa05dde16 videobuf_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xa84ee9c7 videobuf_next_field
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb2b9ae29 videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb4eab664 __videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb4fd3447 videobuf_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb5bd2fe9 videobuf_read_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xb8b7c185 videobuf_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc1a8a390 videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xcab80bd1 videobuf_waiton
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xcf2d0ed5 videobuf_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd2b39e17 videobuf_mmap_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd63c994c videobuf_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd6a260cd videobuf_read_start
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe800d4d5 videobuf_queue_cancel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe8607d75 videobuf_queue_core_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0x61934388 videobuf_dma_contig_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xc878ad28 videobuf_to_dma_contig
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-contig 0xcc1e50c8 videobuf_queue_dma_contig_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x0e63b19e videobuf_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x14f49d6c videobuf_dma_init_kernel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x6598d123 videobuf_dma_init_user
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8719b02c videobuf_dma_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x8ae2ba22 videobuf_to_dma
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x933dfb43 videobuf_vmalloc_to_sg
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9774026b videobuf_dma_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa4fe2f04 videobuf_sg_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xbf5b37a8 videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd30513ce videobuf_sg_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xdaa4eea4 videobuf_dma_init_overlay
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xec85aec6 videobuf_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xad247b2a videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xb2b3cd17 videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xc5e70e63 videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x07141a2e v4l2_event_queue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x225f6954 v4l2_fh_exit
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3525d5fb v4l2_event_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x3ef9e1ae v4l2_device_set_name
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x45c8808a v4l2_event_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x683f3bf1 v4l2_fh_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6b6574b2 v4l2_fh_del
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x839515ff v4l2_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x86e24bf5 v4l2_event_dequeue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x9e01e1a4 v4l2_fh_add
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa71334a9 v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc7166296 v4l2_event_pending
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcc4e8880 v4l2_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xce6cc1e7 v4l2_device_disconnect
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xd41353fa v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdb0910ef v4l2_event_subscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdc5a217e v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xf2d86c4e v4l2_event_init
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x0da7c34e i2o_dma_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x25f17278 i2o_dma_realloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x4e76f71e i2o_dma_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x51d827e5 i2o_dma_map_sg
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x57de3036 i2o_pool_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x74f2f743 i2o_pool_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x8ceafe8c i2o_sg_tablesize
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xd38ff4b7 i2o_dma_map_single
+EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x738c8b4f mc13783_adc_do_conversion
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0f381326 pcf50633_free_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1108b30d pcf50633_read_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1fe078bc pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x220afcaa pcf50633_reg_write
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x293da424 pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2e8c3f37 pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4100cc89 pcf50633_register_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x54a01fdc pcf50633_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x5eb16408 pcf50633_irq_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6aead9fc pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xb198340e pcf50633_write_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x3e550277 pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xd25b1bac pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x112b8f4b pcf50633_gpio_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x4df32d27 pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x608786e4 pcf50633_gpio_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xe128dce4 pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xfdc43b7b pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x4edcdd10 sm501_set_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x74ae1abf sm501_misc_control
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa32207d0 sm501_unit_power
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xb4a045a2 sm501_find_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf3f592d5 sm501_modify_reg
+EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x006daa34 ucb1400_adc_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x2faace88 wm8400_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x853cad21 wm8400_block_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x9f1df3ed wm8400_set_bits
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xdb453bb4 wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x9e84064b cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xbc868a67 cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xd5bf85eb cb710_set_irq_handler
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xf50b6882 cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x004c83c8 sdio_writel
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x027de048 sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1a78b4ee sdio_f0_writeb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x2891bc9f sdio_unregister_driver
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x2c591020 sdio_set_block_size
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x37f49058 sdio_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x465de02c sdio_memcpy_toio
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x4db3795c sdio_enable_func
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x71c4011e sdio_writesb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x73a3220a sdio_claim_host
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7d999b4f sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x835c9342 sdio_readsb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa12056e8 sdio_readl
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb564eb91 sdio_release_irq
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xb89a805b sdio_writeb_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xbc478133 sdio_release_host
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xbcd2c0d1 sdio_f0_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc9b01945 sdio_writeb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd074b57d sdio_claim_irq
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xdeec65af sdio_readw
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xe93aaa76 sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf7a836c6 sdio_align_size
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xfc97d78f sdio_writew
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xfd683c93 sdio_register_driver
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xff04aba8 sdio_disable_func
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x30fc7227 sdhci_add_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x5a40c91c sdhci_suspend_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x679f4040 sdhci_alloc_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x6b67b4cc sdhci_remove_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x96b6ed1b sdhci_resume_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf59d8460 sdhci_free_host
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xa0a97033 cfi_cmdset_0200
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xdfc398c5 cfi_cmdset_0003
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xf6d96366 cfi_cmdset_0001
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x26f66634 cfi_cmdset_0002
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x74c39172 cfi_cmdset_0006
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x8bc4a519 cfi_cmdset_0701
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x401a753e cfi_cmdset_0020
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x0829b799 cfi_qry_mode_off
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xc1f8767b cfi_qry_present
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xdc20a8fb cfi_qry_mode_on
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xbc2b4a34 DoC2k_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xd542fdbf DoCMil_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x80e3ec51 DoCMilPlus_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x28c8ba04 __mtd_next_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2bb9b241 register_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4719dd4e get_sb_mtd
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x487b0f88 del_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x56a89add put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x65e2049c mtd_erase_callback
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6c63ad5c unregister_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x75866eb2 register_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x85c6572a get_mtd_device_nm
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x89ca095d deregister_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x90298cf5 kill_mtd_super
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x919dac55 get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9b397fed __put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa5331d8f mtd_table_mutex
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb9461df1 add_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd465bc1d parse_mtd_partitions
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd966b07c __get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xde5e06b8 default_mtd_writev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x1fabf563 register_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x4c6dd2e0 add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xb1d73885 deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xea520fc6 del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x258188fd nand_scan_tail
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x40c67697 nand_scan_ident
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x4b3f905c nand_unlock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x4c5f3ae5 nand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x72a6e105 nand_lock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xda9ae91d nand_release
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xe751237a nand_wait_ready
+EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x70b201bd sm_register_device
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x0e65d372 onenand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x31d629c8 onenand_release
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x17bedc51 ubi_leb_change
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3f5de9ad ubi_open_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x459c64b7 ubi_get_volume_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x832b77d5 ubi_leb_write
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9b53439f ubi_leb_erase
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9de2d7a6 ubi_leb_map
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9ec6f406 ubi_open_volume_nm
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xcaeaec44 ubi_open_volume_path
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd4d6ad72 ubi_is_mapped
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xee4634ad ubi_do_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf9192776 ubi_close_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf968321b ubi_leb_unmap
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfc18eddd ubi_leb_read
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1373391e register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x17199bb8 can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x3099a426 can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x38f63d98 close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6216dee0 alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x631418ac can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x64ae7495 can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x93b01ab4 alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb1e3af13 open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb9152378 unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcd806432 alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf6a7417d free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x6eb0a5f2 unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x99d5106f alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd31a7b65 register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xf8b3c314 free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x3075bdc2 macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x889da092 macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x9f7dee26 macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xb7d94a16 macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x08368a31 mlx4_buf_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0b17e0f7 mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0bf84cd6 mlx4_unregister_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1407d4b7 mlx4_srq_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2128994f mlx4_cq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x24dcd07c mlx4_register_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x30791a8d mlx4_qp_release_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x36dccc49 mlx4_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x39cf1733 mlx4_srq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3a5fccb7 mlx4_register_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x41effdef mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4229025d mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x45d26cc1 mlx4_pd_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4a17dc38 mlx4_fmr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4c5409d5 mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4de5622a mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4edd47ee mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4f80f0f0 mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x58b2b211 mlx4_register_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5f4bacec mlx4_qp_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x78da75cb mlx4_fmr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7de92931 mlx4_buf_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7e2f32a3 mlx4_mr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x80e13412 mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x81ee7740 mlx4_srq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8946c081 mlx4_mr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8e576394 mlx4_uar_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x931228db mlx4_qp_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9f101513 mlx4_db_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa623f333 mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa642d356 mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xac0e6840 mlx4_cq_resize
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xac2928c4 mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb0b3c98e mlx4_pd_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbff73289 mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc417bb08 mlx4_multicast_detach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc670a46b mlx4_qp_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc8ae85af mlx4_db_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcb0f7422 mlx4_mtt_addr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcdfdb49d mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd3d3e797 mlx4_srq_arm
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdbe8fa74 mlx4_qp_remove
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xde592e9e mlx4_mr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe1089479 mlx4_mtt_init
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe3874189 mlx4_multicast_attach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe3a21a5f mlx4_cq_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe722f717 mlx4_unregister_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe7c30231 mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe822ab0d mlx4_cq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe83b52b8 mlx4_qp_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf35366c6 __mlx4_cmd
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf47e3a97 mlx4_uar_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfd7d51ce mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x23fd33f0 usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x40e818cd usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1037cdaf rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x374ef5d0 generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x66b2d6ff rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x995051ce rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xb1255d71 rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xf023825f rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2d6000fe usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2f9c5cee usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x363f9f7f usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3656381c usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3b129d00 usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4bf50bd4 usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4e04918c usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x51e42b40 usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x54280fa3 usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x57ac2316 usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x59b059de usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x647c35a6 usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x65a8a9c0 usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6d69652a usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6db5964e usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x859dedf6 usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8d705acc usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb67ad033 usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc817a1cb usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdfd31e47 usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdfd78cc6 usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe3a1c515 usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xef9b88ed usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf39f5f28 usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0872a15d i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x14e41be0 i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4c178a9a i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4fbf407f i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x52337b54 i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x54f8bbf6 i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x622f7e14 i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x69f766fd i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x921e2daa i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x966f7bae i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa60dfdad i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa6af98c4 i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa6e7b093 i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa99c8e4d i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb30f762f i2400m_cmd_get_state
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb50aaa4b i2400m_set_init_config
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcaeb7dde i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xda58d7f1 i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0xc2447acb libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x02fa097b iwl_dealloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x0d44a661 iwl_alloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x4e6ad307 iwl_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x02ae7208 lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2c3d176e lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x32a65cf9 lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x35f9baad lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4174c826 lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4abc497b __lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4b0b4903 lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5ae1c591 lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5f20a340 lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7c89b4d0 lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x83059c3d lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x864a1d04 lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xb7853696 lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd9e03ebe lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x08a1f46b lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x08babfd4 lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0c75dd30 __lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1556162a lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x51b7a0cd lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x82fd7353 lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xef597c4d lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xfd3a5f81 lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x2f3005b9 if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xa27c44be if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0f16b086 p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x4160bdad p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x712d800f p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7dec931d p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x81af2afd p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xa3ded998 p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf1267a51 p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf1df1f6a p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf27846c4 p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x04d19233 rt2800_init_rfcsr
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0d192b40 rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0ee8b1ca rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x38694cfe rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3b8cb3f7 rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3f627208 rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x436a28a6 rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4b1b3a7a rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5b6b3267 rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5ed19c34 rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6342d222 rt2800_init_bbp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6a73eb1e rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8b661898 rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x901c2a04 rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9c8513d4 rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa45676c4 rt2800_mac80211_ops
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc8300449 rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc88c96a6 rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd471a5ab rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd6a3cf6a rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd6feb45a rt2800_write_txwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xde041236 rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf0311977 rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfa8fef19 rt2800_init_registers
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x060ad1c9 rt2x00lib_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0fed7270 rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x12bb2d82 rt2x00lib_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2bfb5b61 rt2x00queue_get_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2c4b467b rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x31582191 rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x534b16fe rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x578c8766 rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6276c6b0 rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6aa70b58 rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x700a5898 rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x76f1662b rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7d9b2160 rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8162a150 rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x946b67d3 rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9917f6fb rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa3982724 rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb69a3078 rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcf34382a rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe516ca0c rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeb6b2d5e rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf49a506c rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf51713c0 rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x0c7f4aa7 rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x23a1428b rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x75768878 rt2x00pci_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x980a6c08 rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x98498631 rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xa050e05c rt2x00pci_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xb10c2877 rt2x00pci_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xec4b2ccc rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf05d84c0 rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1b2f1825 rt2x00usb_vendor_request_large_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x285cc5a6 rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2efd681d rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x382dbf80 rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3930338b rt2x00usb_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4c02f54c rt2x00usb_kick_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4df002e8 rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6e405706 rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x8015dcab rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x86ee00b1 rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x977d3c6c rt2x00usb_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x99c0ca1a rt2x00usb_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb5e6587a rt2x00usb_kill_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc7544ead rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdb318d26 rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xfde07af1 rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x674e356d wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x7e374c17 wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xbb2fa380 wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x4f195518 wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x985d9bef wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x99530d21 wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xd1fa0251 wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xe54fbc7c wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xd0f2fc78 pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xde576c97 pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xecc68313 pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x003998ab ps3_write_ctr
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x0bdf50c4 ps3_disable_pm_interrupts
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x0e622920 ps3_write_pm07_control
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x181e55ab ps3_read_phys_ctr
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x1bcb88c1 ps3_write_pm
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x2abf1471 ps3_get_hw_thread_id
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x2b339635 ps3_disable_pm
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x3c71a6b2 ps3_set_ctr_size
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x4a24996f ps3_lpm_copy_tb_to_user
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x50488f64 ps3_lpm_close
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x58e642c1 ps3_lpm_copy_tb
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x59c54782 ps3_set_bookmark
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x5eca6711 ps3_get_ctr_size
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x60e3f0d7 ps3_read_ctr
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x6702a28c ps3_get_and_clear_pm_interrupts
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x69010c19 ps3_set_signal
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0x70177200 ps3_write_phys_ctr
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xa76ee01d ps3_read_pm07_control
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xaa190bc1 ps3_read_pm
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xbb72a01c ps3_enable_pm_interrupts
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xce72c9c0 ps3_lpm_open
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xdddfc980 ps3_set_pm_bookmark
+EXPORT_SYMBOL_GPL drivers/ps3/ps3-lpm 0xfae0ab68 ps3_enable_pm
+EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0x503c7c99 ps3stor_setup
+EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0x962c36a6 ps3stor_read_write_sectors
+EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0xd8e2a3f3 ps3stor_teardown
+EXPORT_SYMBOL_GPL drivers/ps3/ps3stor_lib 0xfb8f4713 ps3stor_send_command
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x19be8161 wm8350_register_regulator
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x3f7def79 wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x48aa0740 wm8350_register_led
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x7b694b80 wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa3b7a4cd wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xb987b379 wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x28a3a547 wm8400_register_regulator
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x0e0a3e09 scsi_dh_attach
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x1eb7febf scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x39bb48fb scsi_dh_detach
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x5f30292b scsi_register_device_handler
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x80251fb0 scsi_dh_activate
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xbae2f75a scsi_dh_set_params
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1da7eb9d fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x007a30e1 iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x134f1163 iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1731c036 iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1d539693 iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1dd24be5 iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x21f179f1 iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x285f7693 iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2d9a88c6 iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2f53fbaa iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2fbc1515 iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x33022db9 iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x39619458 iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3efc4aac iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x416a0aae iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x450e2c7d iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x49d066e8 iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4f6859e3 iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x59f76f23 iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5a78f116 iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6fee8932 iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7c799902 iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7d2bf572 iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7d557675 iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x85063d2c iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x937231c6 iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9a3a38d5 iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa65b1e23 iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2461f6f iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb83c62a1 __iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb86cb89d iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb8883083 __iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc0b40209 iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2948142 iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc6f0f5a2 iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xca7dc8e1 iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd4bdb871 iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xda354340 iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe608d5a4 iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xef0f878b iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf6fb98a3 iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfdf8588d iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfe1b4748 iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x072e5e5e iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x08ddb519 iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1d8ca1b5 iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x26ee1cf9 iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3838fc59 iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x3af26016 iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x403fde57 iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4e8f0cd7 iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x57861c4f iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5cb22226 iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6db40088 iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x82b8cc4b iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x888b7688 iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc1b8ac7c iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe30d3ac4 iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf93f0024 iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0090bea5 sas_slave_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x104c7d2e sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1cf7956f sas_eh_bus_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x297611c3 sas_phy_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2d6149e5 sas_phy_enable
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x326b0e3b sas_domain_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3488bc1c __sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4337d5cd sas_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4441e351 sas_domain_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x824bd445 sas_unregister_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x85346cca sas_request_addr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9214063d sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9555348a sas_register_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x95e5c339 sas_slave_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x996a23a7 sas_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9aab8766 sas_ssp_task_response
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9f23f70f sas_change_queue_type
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbec48ecf sas_ioctl
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc36f763f sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xce8068b6 sas_bios_param
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf4bb65ff sas_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf8e2d96b sas_target_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xff13d9d4 sas_find_local_phy
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x079706a7 srp_target_free
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x53c8b6ec srp_cmd_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x9099dec6 srp_iu_get
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa278e945 srp_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa78658c6 srp_transfer_data
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd67a1c8e srp_iu_put
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x293a749f scsi_tgt_it_nexus_create
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3e99bbcd scsi_host_put_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x40f99865 scsi_tgt_free_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x773f437f scsi_host_get_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x9f8ca583 scsi_tgt_alloc_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xad0070e7 scsi_tgt_queue_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb2b08e08 scsi_tgt_tsk_mgmt_request
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb956bd60 scsi_tgt_cmd_to_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd3313d56 scsi_tgt_it_nexus_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x130c53ac iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1d939be4 iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x32b52f51 iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3b2a149b iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4c6c034c iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5161fe12 iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x58aaf2b7 iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5abcbfb7 iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x64d0b877 iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6804ed44 iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x77466bd4 iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x792aa456 iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x83f10217 iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x99a6fd8d iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xace93a67 iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc0ac460d iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcd6efe49 iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd0e85bc8 iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd90cd6ea iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd98e2403 iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdaa44ef9 iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe95bb9f9 iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x1ec36100 sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x302a415f sas_enable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x647c125d sas_disable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x9babe940 sas_tlr_supported
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3ef8e61c srp_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8c3eed8d srp_remove_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x8ed64c5f srp_rport_del
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x9ddbeb75 srp_rport_add
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xe1b5cdac srp_attach_transport
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x090eb045 pciserial_resume_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x4a1d7d61 pciserial_init_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x8faa5c60 pciserial_remove_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xa538aa44 pciserial_suspend_ports
+EXPORT_SYMBOL_GPL drivers/serial/serial_core 0x43d2eeea uart_set_options
+EXPORT_SYMBOL_GPL drivers/serial/serial_core 0x6daad160 uart_console_write
+EXPORT_SYMBOL_GPL drivers/serial/serial_core 0xf2fca922 uart_parse_options
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x25a02577 spi_bitbang_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x3165825c spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x939f3e11 spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xab4dda20 spi_bitbang_stop
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xda0b2f4a spi_bitbang_setup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xf2b165fa spi_bitbang_start
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x0b64beb3 st_unregister
+EXPORT_SYMBOL_GPL drivers/staging/ti-st/st_drv 0x9a252244 st_register
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x2b182d59 tm6000_set_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x491bcbab tm6000_get_reg
+EXPORT_SYMBOL_GPL drivers/staging/tm6000/tm6000 0x893b6b34 tm6000_set_audio_bitrate
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xc5a5bb70 uio_unregister_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xc9c77c1f uio_event_notify
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xd10c4bcd __uio_register_device
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x65a946b2 usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x6bd76aee usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2a86be33 usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5ce1bf34 usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x681716c9 usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6a3f8bed usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8350d4f6 usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x917dc6dc usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa14d6f96 usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xadb842f8 ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xfe4f0991 usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x020b3aad usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x198ef312 usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1c723ac8 usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x24cb8782 usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x287c8bfb usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2ae20a9c usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2fd91cf0 ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3290831f usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3c496c6d usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x45adaf7a usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x81259970 usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x86d36c81 usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8b2e1ab3 usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9ff6d89a usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb638a7bf usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe1eeb9f6 usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe5588044 usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xec1c2888 ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf06a13b2 usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1dcf185d usb_stor_bulk_transfer_sg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2eae145a usb_stor_post_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x44beaf99 usb_stor_ctrl_transfer
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4df3a9fa usb_stor_CB_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x60b5a837 fill_inquiry_response
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x68905a3f usb_stor_clear_halt
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x708b10bd usb_stor_set_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7b123bf3 usb_stor_probe1
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8f5ac030 usb_stor_transparent_scsi_command
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9bba512b usb_stor_probe2
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa16b314a usb_stor_CB_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa6fce581 usb_usual_ignore_device
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa88a2bf0 usb_stor_pre_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xab086961 usb_stor_reset_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbbebf5fb usb_stor_resume
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc48bae47 usb_stor_bulk_srb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xca8bdb47 usb_stor_suspend
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcb5832c1 usb_stor_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcfa1e283 usb_stor_bulk_transfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd848e5bf usb_stor_access_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xeea9ad67 usb_stor_Bulk_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf32545ec usb_stor_Bulk_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf8a21c5c usb_stor_control_msg
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x039f338a rpipe_ep_disable
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x2b0fbfa5 __wa_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x4764e221 wa_urb_dequeue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x57e5d332 wa_urb_enqueue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xb4bb90bb wa_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0876e9aa wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1153086c wusbhc_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1230b31c wusbhc_rh_suspend
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x15a6a2de wusbhc_chid_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x17e34cba wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x21f37092 wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x438f76ac wusbhc_b_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5f764fbe __wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x62ef6d75 wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7756c48a wusbhc_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x85ce6261 wusbhc_reset_all
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9eeb0875 wusbhc_rh_resume
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa13742ce wusbhc_b_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb3453997 wusbhc_rh_control
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb8138a75 wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xdae845d9 wusbhc_handle_dn
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x4468a926 i1480_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xa9fdff8e i1480_rceb_check
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xad08fcd1 i1480_fw_upload
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x02842279 uwb_phy_rate_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x08b13dbb uwb_ack_policy_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x1fb17078 uwb_pca_base_priority_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x53edad64 uwb_rts_cts_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xa5a1f1f4 uwb_phy_rate_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xb94adcd3 uwb_ack_policy_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xc30a9a97 uwb_rts_cts_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xdde3532d uwb_pca_base_priority_store
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x225952ff umc_device_create
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x4a489b12 umc_driver_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x58485eed umc_controller_reset
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x92de3ad1 umc_device_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa9004ab8 __umc_driver_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb2721157 umc_device_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xcf33bc01 umc_match_pci_id
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe97844ef umc_bus_type
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x144ed60a uwb_est_find_size
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1d9e2ce9 uwb_dev_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1e3959d5 uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2e43f252 uwb_dev_for_each
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3a131ffa uwb_rsv_terminate
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4426aff6 uwb_pal_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x469b8eb2 uwb_notifs_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x56815ba6 uwb_rc_vcmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5b2c53ec uwb_rsv_establish
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5ea80cc1 uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6fca0d4b uwb_notifs_deregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x72e46493 uwb_rc_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7c16ba21 uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7c5215ae __uwb_rc_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7d628ceb uwb_rc_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x821ed807 uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8e0b5605 uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x95b9583b uwb_rc_post_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9d56bd12 uwb_radio_stop
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa1f80ec3 uwb_rc_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb177e4e6 uwb_rsv_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb720cd59 uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb8ad6070 uwb_rc_alloc
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbba42ce7 uwb_radio_start
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbc9d9aee uwb_rc_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbd509245 uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc13f2887 uwb_pal_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc209aa42 uwb_rc_neh_error
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xca6c512c uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xceccf49a uwb_rc_put
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd1a81849 uwb_rc_ie_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdaa3d5ae uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe2cd8992 uwb_rsv_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe660f686 uwb_pal_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb70f5b2 uwb_rc_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xee3508ab uwb_rsv_modify
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf316cb5f uwb_rsv_accept
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/whci 0xaf865395 whci_wait_for
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3a681fbd wlp_eda_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3bca16f7 wlp_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4086a31c wlp_uuid_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x52f0cbaa wlp_uuid_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5b4197a4 wlp_wss_activate_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5dd9f138 wlp_dev_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x60e006e5 wlp_neighborhood_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x648ebaa3 wlp_dev_manufacturer_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x6596fe38 wlp_dev_prim_subcat_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x67903487 wlp_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x74e113e4 wlp_wss_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7c97418c wlp_wss_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7f744c17 wlp_dev_prim_OUI_sub_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x861f3191 wlp_dev_model_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x881a30f6 wlp_dev_prim_category_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8cc965a7 wlp_dev_prim_subcat_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9216db7f wlp_dev_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9352d096 wlp_eda_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x95599e0d wlp_receive_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9e4dc628 wlp_dev_prim_OUI_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa43278b1 wlp_dev_manufacturer_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa61cb0b7 wlp_dev_model_nr_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa6a58110 wlp_dev_serial_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb347a876 wlp_wss_activate_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc5d02453 wlp_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcdab21b9 wlp_dev_serial_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd2a0a227 wlp_dev_model_nr_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd2f613b5 wlp_dev_prim_OUI_sub_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd9310c08 wlp_prepare_tx_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xdbd1669f wlp_dev_model_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf2c6d84b wlp_dev_prim_OUI_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf7f4fa49 wlp_dev_prim_category_store
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x306b1d8f ili9320_write
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x47f24087 ili9320_resume
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x7eec743c ili9320_probe_spi
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xb337b293 ili9320_write_regs
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd22c5994 ili9320_suspend
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe6bb43c1 ili9320_shutdown
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xfa878116 ili9320_remove
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x23ad639b sis_malloc_new
+EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x32b9b6b1 sis_free_new
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x22a7af24 viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xd52f3dd6 viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x107bec0a register_virtio_driver
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x481f312d unregister_virtio_driver
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x4938b7f3 virtio_check_driver_offered_feature
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x595a7224 register_virtio_device
+EXPORT_SYMBOL_GPL drivers/virtio/virtio 0x8f93c129 unregister_virtio_device
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x006769f5 virtqueue_kick
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0ac0ab25 vring_interrupt
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x0cd70707 virtqueue_detach_unused_buf
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x3cb2062e vring_transport_features
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x55c57269 virtqueue_disable_cb
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x637007cc virtqueue_enable_cb
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x6a8fc92a vring_new_virtqueue
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x7ab5cf15 virtqueue_add_buf_gfp
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x981f883d virtqueue_get_buf
+EXPORT_SYMBOL_GPL drivers/virtio/virtio_ring 0x9c09e326 vring_del_virtqueue
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x279968ef w1_read_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x5821c7a6 w1_write_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x5fea173d w1_write_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x72e7a82e w1_next_pullup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7ded4902 w1_touch_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x907384a2 w1_read_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xbcfc50d6 w1_reset_bus
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xc3571f4a w1_reset_select_slave
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x491df0eb dlm_posix_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x637ae631 dlm_posix_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x72b0a45a dlm_posix_get
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x7af9634e exportfs_encode_fh
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x90745bc5 exportfs_decode_fh
+EXPORT_SYMBOL_GPL fs/fat/fat 0x08379e1f fat_sync_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0x120bedf3 fat_build_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0x1db58c2e fat_flush_inodes
+EXPORT_SYMBOL_GPL fs/fat/fat 0x2ba4332a fat_attach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x2c9dd4e6 fat_dir_empty
+EXPORT_SYMBOL_GPL fs/fat/fat 0x2cbbbd97 __fat_fs_error
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3dfae93f fat_search_long
+EXPORT_SYMBOL_GPL fs/fat/fat 0x5463d617 fat_fill_super
+EXPORT_SYMBOL_GPL fs/fat/fat 0x6ca12113 fat_free_clusters
+EXPORT_SYMBOL_GPL fs/fat/fat 0x843976bf fat_detach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x8f1ce4a5 fat_alloc_new_dir
+EXPORT_SYMBOL_GPL fs/fat/fat 0xa3ee63fa fat_getattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0xaab420f2 fat_add_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0xb4dd5f0f fat_scan
+EXPORT_SYMBOL_GPL fs/fat/fat 0xb87d628b fat_remove_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0xbe334cb8 fat_setattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0xc799e8ea fat_time_unix2fat
+EXPORT_SYMBOL_GPL fs/fat/fat 0xeae5fe3c fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x45d40554 nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x47b66386 nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4b4370d6 nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x86f50b53 nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xad15259c nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x0a472743 nfsacl_encode
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x4a675fcc nfsacl_decode
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2af710a7 o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x37465f61 o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbeab3df7 o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbf880144 o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc60a91dd o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xcca64bd2 o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd65306ab o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x47301439 dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x4b7c3541 dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x53086b53 dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x6b5a52c2 dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb9db18ec dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xdfba1319 dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x2f69dce5 ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x64b69be3 ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xd422ce22 ocfs2_plock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs
+EXPORT_SYMBOL_GPL net/802/garp 0x49887bbf garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0x5f4a7426 garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x992a0e69 garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0xab3d1d84 garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0xbc85a5e5 garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0xcdc2b6bb garp_request_leave
+EXPORT_SYMBOL_GPL net/802/stp 0xae49d3bb stp_proto_register
+EXPORT_SYMBOL_GPL net/802/stp 0xd6f08024 stp_proto_unregister
+EXPORT_SYMBOL_GPL net/ax25/ax25 0x6187b605 ax25_register_pid
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xac93ae05 ax25_bcast
+EXPORT_SYMBOL_GPL net/ax25/ax25 0xaeb7451e ax25_defaddr
+EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x955b1c61 bt_debugfs
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x00d65b4a dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0713662d dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x26c37e04 dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c5ba7e7 dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3f3fb7e4 dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x44361af1 dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x494bd60d dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4c515879 dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x50c6c6a8 dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x520f5076 dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x548ccd1c dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x73523b1e dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x769b6778 dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7b9e56bc dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7ed1e559 dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7ed3a148 compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86dc07f7 dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86dee7fc dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8ba3b276 dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x942bc3c8 compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9449b622 dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa8d9c15c dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa957d6db dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xaa2c84e2 dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xaaa1e6e7 dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xae7542a4 dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xafba3c5e dccp_insert_option_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xb8a5cbdf dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc3b0fa46 dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc588d982 dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc75b7972 dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd84ae5ee inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xebe68d42 dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf6054a4f dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf8d1f97e dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xfa89a457 dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x911201a7 dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9b49e30d dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb521fe90 dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb7ac90fd dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xcfa45582 dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf3f78a90 dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x2664c874 arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xc4ece319 ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x10ca3791 nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x44c06ad0 nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x536d62b8 nf_nat_proto_find_get
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9a0af1c2 nf_nat_proto_put
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xab4422ca nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xc75bd5bd nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe9a20e90 nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xf3d019a3 nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xfb1697f8 nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x3ab7d628 tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x513ec5e9 tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x52f0dc2a tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x9f3e1446 tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xf87564a9 tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x017543f0 net_ipv6_ctl_path
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x3b04481f inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x46e1ad68 ip6_sk_dst_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x643b88da inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x6bee518f ip6_dst_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x7bd9d768 fl6_sock_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x85478a0b inet6_hash_frag
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x8abde44b ip6_local_out
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa4626b12 ipv6_find_tlv
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa481a44f inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xaa4c04f8 ipv6_dup_options
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xcf8345f5 ipv6_opt_accepted
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xd249678c inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xdbd5ac52 inet6_csk_search_req
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xdcbe76cb inet6_destroy_sock
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe1827230 ip6_dst_blackhole
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xfec4ba37 inet6_csk_xmit
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x89663296 ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0204a4f6 l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x07cf8562 l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1b221107 l2tp_tunnel_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x244f4b38 l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x27daf19d l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2b81a49e l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2d21b539 l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x48f818a6 l2tp_udp_recv_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5493206e l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5f1a3b58 l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6c43f196 l2tp_xmit_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x74967536 l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa64565fc l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbcfa01af l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbfcabb8e l2tp_tunnel_closeall
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xef480619 l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf0096de9 l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x21ef1752 ieee80211_find_sta_by_hw
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xadcff099 ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xbd19fd31 ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0093e970 nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06449922 nf_ct_unlink_expect
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0719b237 nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0c521142 __nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0d06f937 __nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e30caca nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1017cbfe nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x107ecc75 nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x10a04dbc nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1237511f nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x12a06469 nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x15a736a9 nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1d807ecb nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e9a4816 nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x25867c44 nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2791542b nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2a22dcab nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30dc3ba2 nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x56a9047f nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5f922773 nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6380faa7 __nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x63eb1e99 nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x649f66fd nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x69eabbfc nf_conntrack_untracked
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d8ad068 nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e58ec7a nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6fff8279 nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x71abf427 nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x72af2cd1 nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7720666f nf_conntrack_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7cad72a8 nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d645614 nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e54a992 nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x812e6543 nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x82b03981 __nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x86b8ee37 __nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x893fe18b nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e988a61 print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8fb48195 seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x917ae147 nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x94a8fcb4 __nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9abbf061 nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9f2182d3 nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa3120bd9 nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb7a17cbd nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc2c17cd4 nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc413a39a nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc5c3d26c nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0cf8539 nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdad71281 nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdc49229d nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4aab922 nf_expect_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe7b59877 nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe9f5ceb8 nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xef7824e6 __nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf0396fbc nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf19c56e6 nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf4900697 nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9b319bd nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfa53787d __nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfbf70ebe nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffee7b45 nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x46894273 nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xe8718865 nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1f80cf6a nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3a871877 set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6b06b5e7 nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa86b139f get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb48e9a0b set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd3bada3a nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xd8dcac5f nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe406c59e nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe7fce0d0 set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfd1acc3d set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0xb750ceaa nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x37f1dcd7 nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x8e3d2e18 nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xeb40918d nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf64faca7 nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x39e80229 nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x3cff86bb nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0c24f168 ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x257e26ec nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2a48a8e2 nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x37a8a46f nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x52c334f0 nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x703b1583 nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x76e3e975 ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9f325798 ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb7c3c984 ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbddf0a17 nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbf57f415 nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xcf51706b ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf2dd853d ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x313166c0 nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x0792b796 nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x35dbedf2 nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f1acce4 nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3adbd02a nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x92f2c1c0 nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe6294c3e nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xecfa29b6 nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf7b54f02 nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xf1b19a7c nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1556b1f4 xt_compat_target_to_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1a68368b xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x47d2a22b xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x52bfdf5e xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5a27f1eb xt_compat_match_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6002e6cf xt_compat_match_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x684694c5 xt_compat_add_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8b7e752b xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa5b7c978 xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xaaa1684b xt_compat_target_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xab92be03 xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xabd2f1af xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc11bca40 xt_compat_match_to_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc1c33242 xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc824cb5a xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xce267678 xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd2478812 xt_info_locks
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd2a8fb2a xt_compat_target_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdd272ece xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdf81ec1c xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe305493b xt_find_table_lock
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xc6a45075 rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xfdf1ad48 rxrpc_register_security
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x2aaf15a4 gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4695d5b4 gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x5fb0f215 gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x609248ca gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x915c8315 svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa028327c gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xa5b82458 gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xdb50a2af gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe177e95f gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe59bf722 gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xecdf4d92 svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x002c4c77 rpc_queue_empty
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x014c9e98 rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x016b6fa8 xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02ba4c6b svc_sock_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04499706 svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0abbb598 rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c312574 rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c3b66b9 svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c539f06 svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0dc75d0c rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ea5de06 rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0efcda21 rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f186337 rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1038cb0a rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x132370d9 svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x149a3a5b xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17457161 xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1bf318ee rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d394573 xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1dc33cb5 xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2144cb36 svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x223d79d4 auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2467ca8d svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24e7a9dd svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x24eaf555 svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2626c9ff rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26c04c6b xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c39f0b3 rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ca8eac4 auth_unix_add_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ce83461 rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2d845b7b rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f97e719 xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33302e86 rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x35c2e4be svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38d637c1 cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a3a64e8 rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b01f3e3 rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c597292 cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43e03bc5 rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4628e9dc xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ab412c3 xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b201efd sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d56971c rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e6844ed xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f41e943 xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52885aad rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52eaeb1e xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x537d8d9b xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53a4af09 rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5466618f rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x558407aa rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5abe38b1 sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c955934 rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e22eb49 rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5eb4a9d9 xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fd95fef rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61a24962 xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x676000b5 svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67d1d738 svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x681e4ea6 svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68a3087a cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b2e69d7 rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b9d8365 svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e2d94ab svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e4b4c79 sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f9ee79a svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72aab35b xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x732e17fa rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x764d7d80 xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76a96052 cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79b554ab svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ad547c5 rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b6077bc xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e2c43d4 rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e5426f1 svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ec7d4f6 xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f475c41 rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fba9f95 rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80cae82d xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85cce219 xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8669b903 csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b83a769 svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8bca3884 rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8bcc5cd0 svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91df346a rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92949c6b rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x930900e9 xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x959d8e5f rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95a025f6 svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95b3930b xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96af0aa8 xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98ae64a9 svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa096f035 xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa13257dc svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2a00094 sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa303018e rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa6dec430 rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa75f88ff auth_unix_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9dcb06f xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb06d3e21 svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3083822 xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5974d79 rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6d9150e svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb74e1e1a xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb94aa0f5 auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3c76ffc rpc_exit_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4c242ea svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5231e10 rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc56066a1 svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc61d5474 read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc85b7667 svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8cce046 svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9100d9c rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9e340a1 sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca9b9cba rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcae4cfe2 xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcbf6d3c5 xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc0f7430 __rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc4c2806 svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc9eb51a xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf8f4ffd xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd209d0f7 xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd599e6b5 unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5c63fb2 svc_sock_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5dc36e8 xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd62729a4 write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd9ad9c37 auth_unix_forget_old
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda36f5bd svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde5a4f3d svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf2cf6bf svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe176df8b xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4ffb983 rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb3a3415 rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec9e0872 rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef458264 rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf23242fa svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2485b54 auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf554fe05 rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf659002d put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa5e8103 xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfc55b686 rpcauth_create
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x0f34eca5 wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x270f30d9 wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x3fd4e6e3 wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x55dc4475 wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x5980e539 wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x6852cb04 wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x76f3a384 wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x7f4f1e1a wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x9c1c9ec1 wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xa90c642c wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xb4288c0a wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xc8dacced wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xcb948b6f wimax_msg_len
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1177d87c cfg80211_wext_giwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x13314ade cfg80211_wext_giwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x17b3769e cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x23820f4f cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x325034cf cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3dd60d66 cfg80211_wext_giwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4255f369 cfg80211_wext_giwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5d260fe2 cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5df7d9b1 cfg80211_wext_siwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5fe1398d cfg80211_wext_giwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x62c5f00d cfg80211_wext_siwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6546a601 cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6778c5df cfg80211_wext_giwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x759f41b9 cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7ba72750 cfg80211_wext_giwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7ed646f8 cfg80211_wext_siwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x93cd0f8e cfg80211_wext_siwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x963717ed cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x974ead0a cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa8ad52e5 cfg80211_wext_giwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa9c745a1 cfg80211_wext_siwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xad106737 cfg80211_wext_siwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb7d872b5 cfg80211_wext_siwmlme
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbf6cda94 cfg80211_wext_siwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc89e276b cfg80211_wireless_stats
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcb5da4e9 cfg80211_wext_siwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd4bf7b80 cfg80211_wext_siwencodeext
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd4cad62b cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe9424e8e cfg80211_wext_siwgenie
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xeb6c45bc cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf19e48c5 cfg80211_wext_siwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xf1e26dbe cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x249db5ba ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x9d4161fe ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xbc2bd5be ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xff7ba33f ipcomp_input
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x46e9cd21 aoa_codec_unregister
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x516d3785 aoa_fabric_register
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x54cb73fd aoa_snd_ctl_add
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x64f76f8f aoa_get_card
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x6780f861 aoa_fabric_unregister
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x7d9b2c19 pmf_gpio_methods
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x822e6c97 aoa_snd_device_new
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0x8b38609f ftr_gpio_methods
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xc03a1a0c aoa_fabric_unlink_codec
+EXPORT_SYMBOL_GPL sound/aoa/core/snd-aoa 0xc1533736 aoa_codec_register
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x02c4677b soundbus_register_driver
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x55fe8900 soundbus_add_one
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0x865d5419 soundbus_remove_one
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xaef3218d soundbus_dev_get
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xe046bcd6 soundbus_unregister_driver
+EXPORT_SYMBOL_GPL sound/aoa/soundbus/snd-aoa-soundbus 0xea080db1 soundbus_dev_put
+EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7581b834 snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xbe3ddab5 snd_ak4113_reinit
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xdc869f59 snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xde30d4f6 snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xecab5b20 snd_ak4113_build
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xfb33b111 snd_ak4113_create
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05aa8177 snd_hdmi_show_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x080e96be snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0d152b61 snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e6bc92e snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x131ded8a snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1452beff snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x205bd82a snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x215ececb snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2212083a snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22a179c1 snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x248f4a09 snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2491ae2b snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27942e15 snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27a89f84 query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x27ca4968 snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2fac4ffc snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x327f9a60 snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34d94fa4 snd_hda_suspend
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x34ea1cb2 snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3768832a snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3823bb89 snd_hdmi_get_eld_size
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a9dba5c snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3efd0723 snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4020ec13 snd_hda_resume
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x40233399 snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x41d8599c snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4404d572 snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48f5f53c snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a720df7 snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4a7220ea snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ab193f7 snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4b8b0d7a snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c0e35c5 snd_hda_eld_proc_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4c190682 snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4da5332f snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4e3b2eee snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f30edbf snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x50a3e29a snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x54146784 snd_hda_parse_pin_def_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x54a177cd snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x54ef4680 snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x550110f3 snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5607886f snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x574c8928 snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58d52632 snd_hda_eld_proc_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x590cafd3 snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5af9c62b snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x656c2b15 snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x673cfebc snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x67b59cb0 snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6e85b59e snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70ca79e8 snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79582073 snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x821b7087 snd_hdmi_get_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x828bb874 snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x838fb825 snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x84d4a577 snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8792f640 snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x89bc7a6d snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b5d8ee1 snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8cfe9a25 snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9205b4e9 snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x926ae450 snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ba84a27 snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9ea607c0 snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9f53ba2d snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4f28926 snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa7dcaff1 snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa29111e snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad9d2538 snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaff336fa snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb2e7e84b snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb9e543ea snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1e738a8 snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5e7e323 snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc89aad27 snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcbc0e124 snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd1ab1251 snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda0e62f5 snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdda85083 snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe141d469 snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe6d74ff8 snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe9e981ca snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xea28dce2 snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef86137b snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf07b76a6 snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6583cf0 snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6b99d07 snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x15e1660d ad1836_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x32661d9d soc_codec_dev_ad1836
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x9254edd9 ad193x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xf4cdd99f soc_codec_dev_ad193x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x215d30f1 ad73311_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x90ffa138 soc_codec_dev_ad73311
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x9158d64e ads117x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0xf1c9fa57 soc_codec_dev_ads117x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0x27ddde91 soc_codec_device_ak4104
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xc27a6aca soc_codec_dev_ak4535
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xcda1ffe6 ak4535_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x9ac14566 soc_codec_dev_ak4642
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x9b8cf633 ak4642_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x2cf09e00 ak4671_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xb3aaa8fc soc_codec_dev_ak4671
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x0ff33b82 cs4270_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x80f3623f soc_codec_device_cs4270
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x5fce762b da7210_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x955d0449 soc_codec_dev_da7210
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xd3b57f9c max9877_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x3e1acfff pcm3008_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x8ae9fb02 soc_codec_dev_pcm3008
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0xad0229b7 dit_stub_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x158b5e47 ssm2602_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x28f0bd5b soc_codec_dev_ssm2602
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x5d614b5f tlv320aic23_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xcaaea615 soc_codec_dev_tlv320aic23
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x1f3851f6 aic26_soc_codec_dev
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x54ca3201 aic26_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x02cf55e2 aic3x_button_pressed
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x0791f52a aic3x_set_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x316e9b7e aic3x_set_headset_detection
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x3b73b9a4 aic3x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x3df64cf8 aic3x_get_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xcd96ea82 aic3x_headset_detected
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xf4387756 soc_codec_dev_aic3x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x031d2a57 dac33_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xabd11650 soc_codec_dev_tlv320dac33
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x8e4238d8 tpa6130a2_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x4212c978 twl4030_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x877d3553 soc_codec_dev_twl4030
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x1c0c72e7 twl6040_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xf8f270b6 soc_codec_dev_twl6040
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0xef6910c4 soc_codec_dev_uda134x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x777f6f3f soc_codec_dev_uda1380
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xf052bcaf uda1380_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xa820edc9 wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xbbeaec56 wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc9a02add wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x2170177a wm2000_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x53dd02e6 wm8350_mic_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xa353839d wm8350_hp_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xa7fc3449 soc_codec_dev_wm8350
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xfe191f21 wm8350_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x3ce0ce1b soc_codec_dev_wm8400
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xa6e4399f wm8400_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xa79af2a7 wm8510_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xab2eed09 soc_codec_dev_wm8510
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x10e69a94 wm8523_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x82450093 soc_codec_dev_wm8523
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xa4ffd686 soc_codec_dev_wm8580
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xefd3fed2 wm8580_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x183c14c3 soc_codec_dev_wm8711
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x2ee3267f wm8711_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x5ccdccf0 soc_codec_dev_wm8727
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xb71f3fa9 wm8727_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x38046d2a wm8728_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xcbb811d3 soc_codec_dev_wm8728
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x1bb8c0ad soc_codec_dev_wm8731
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xb97c3756 wm8731_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x062e8d5e soc_codec_dev_wm8750
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x11f0d1c9 wm8750_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x2d03de9d soc_codec_dev_wm8753
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x2e30170d wm8753_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x53f0feb6 soc_codec_dev_wm8776
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x9d0ee4cc wm8776_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x5642ec5c wm8900_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0xe03a3886 soc_codec_dev_wm8900
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x07d5ed01 wm8903_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xcb176b45 soc_codec_dev_wm8903
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xd0d69ef2 wm8903_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x8456fd82 soc_codec_dev_wm8904
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0xcdd3ae4a wm8904_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xa20dc84f wm8940_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xe733905a soc_codec_dev_wm8940
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x54b75248 wm8955_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x9b860e28 soc_codec_dev_wm8955
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x3592d966 wm8960_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0xe4b74434 soc_codec_dev_wm8960
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xfdac7575 soc_codec_dev_wm8961
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xfece0ac3 wm8961_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x58b90177 wm8971_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0xfc6e1f42 soc_codec_dev_wm8971
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x087490c4 wm8974_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x8119eb07 soc_codec_dev_wm8974
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x2daca40b soc_codec_dev_wm8978
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x7fb650bf wm8978_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x26f0e336 soc_codec_dev_wm8988
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x89fe2056 wm8988_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xc3daa98f wm8990_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xefeb0309 soc_codec_dev_wm8990
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x454edb21 wm8993_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xc4c650ca soc_codec_dev_wm8993
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x22bccce9 wm8994_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x5e66a261 wm8994_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x8b87c60d soc_codec_dev_wm8994
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xa6c57ef6 wm9081_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xb75a3e45 soc_codec_dev_wm9081
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0xaf836533 soc_codec_dev_wm9090
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x02d7d6f1 snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x03c31b7b snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x04156adc snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x04c4a6b5 snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x04debb41 snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0665dea8 snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x085d92f8 snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x14110385 snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x150976dc snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16f65a93 snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1c124985 snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1cb10074 snd_soc_get_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2a5c6695 snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2f842f2a snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3230d202 snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x33a421c4 snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38b79504 snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3950bdc2 snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c4278bd snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3f8c0477 snd_soc_jack_new
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48b520e4 snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x56373941 snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5858abc0 snd_soc_new_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5a504427 snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5bc9d38b snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ccaebad snd_soc_free_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x627a6b16 snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a2ccbbb snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a710b6d snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71ab628a snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x72bb6bb6 snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x73d684f7 snd_soc_put_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7a03c1c4 snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c796771 snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7dba8ae2 snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x847d8a18 snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9057286d snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x918d6f45 snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94b31908 snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x977f5fd9 snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x991c44a9 snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9a96a327 snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c4ec76a snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d92d145 snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f6d35c9 snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa1303e6e snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa37e5724 snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3af3f54 snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa9081164 snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb312c65a snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb50a4c4d snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb67f256 snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc06d6b2f snd_soc_dapm_stream_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc08a8cb9 snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2a20861 snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc44655e4 snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc5218f6c snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc80f0680 snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc93c6860 dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcaf3425b snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb2f25cf snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc345b26 snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd7750583 snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdae06511 snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdcc7ad14 snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe18038aa snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe90d1acb snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec2426a7 snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xefe9474e snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf21671c3 snd_soc_info_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2d8dd47 snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf3de8404 snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf4355d81 snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf98baa42 snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfa1c54de snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfd3fd331 snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfeb534bf snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x1eb241c2 xv_malloc
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0x48396591 xv_destroy_pool
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xa4593725 xv_get_total_size_bytes
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xaf69699e xv_get_object_size
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xc3730252 xv_free
+EXPORT_SYMBOL_GPL ubuntu/compcache/xvmalloc 0xd575dcd5 xv_create_pool
+EXPORT_SYMBOL_GPL vmlinux 0x0030d317 tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0x0034e891 usb_autopm_get_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis
+EXPORT_SYMBOL_GPL vmlinux 0x007ef3d7 ring_buffer_read_finish
+EXPORT_SYMBOL_GPL vmlinux 0x0092b47c bus_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init
+EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string
+EXPORT_SYMBOL_GPL vmlinux 0x00f888ec ata_cable_unknown
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x011dc19e rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x012957aa pmac_i2c_find_bus
+EXPORT_SYMBOL_GPL vmlinux 0x01532196 rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x01831d38 pci_block_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0x0204214c ring_buffer_record_enable
+EXPORT_SYMBOL_GPL vmlinux 0x02ccea56 lock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x02d1db02 of_irq_to_resource
+EXPORT_SYMBOL_GPL vmlinux 0x02dfe321 sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x0345d87f gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL vmlinux 0x03fe2cca flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread
+EXPORT_SYMBOL_GPL vmlinux 0x042dd1a5 scsi_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x04a627f0 ide_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0x054cbce2 crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0x054dfc63 irq_create_mapping
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x0560bc35 pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0x056d8679 kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x05a89413 blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x05eba310 relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x069c9e24 blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0x06a84943 sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0x06b02a68 rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x06d483d8 spi_unregister_master
+EXPORT_SYMBOL_GPL vmlinux 0x0763c857 pm_request_idle
+EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char
+EXPORT_SYMBOL_GPL vmlinux 0x07b42b70 security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x08313659 fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0x08788a86 fuse_file_poll
+EXPORT_SYMBOL_GPL vmlinux 0x08895130 ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0x08a3d22f pmac_i2c_open
+EXPORT_SYMBOL_GPL vmlinux 0x08c88eeb usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x0914e5bb adp5520_read
+EXPORT_SYMBOL_GPL vmlinux 0x091c824a machine_power_off
+EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0x0983bc47 usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0x09a9967d blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x09ac76ee remove_phb_dynamic
+EXPORT_SYMBOL_GPL vmlinux 0x09cca3a9 __root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x0a1c9f59 sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0a29b1a6 da903x_write
+EXPORT_SYMBOL_GPL vmlinux 0x0a51ae5b virq_to_hw
+EXPORT_SYMBOL_GPL vmlinux 0x0a853c28 wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x0a85b75f fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0x0ac10040 wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x0af6ff59 fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b09f7dc ide_prep_sense
+EXPORT_SYMBOL_GPL vmlinux 0x0b69c10e bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x0b8d3592 usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x0bffc53f dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c6e6cae lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0x0c8309e1 of_scan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x0ca69f18 debugfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL vmlinux 0x0ce31e4a ps3_vuart_port_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x0cf5646d usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x0d0b7f8e scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x0d2dc0ba adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0x0d304c84 kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0x0d5b063c atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x0d68434e tc35892_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x0d6d2322 shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x0dbf0b0f xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0x0dd2e2ad of_node_to_nid
+EXPORT_SYMBOL_GPL vmlinux 0x0df354ee rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0x0e2a8464 raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x0e67c69b __i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0x0e6d04d6 crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0x0e87a064 swiotlb_map_page
+EXPORT_SYMBOL_GPL vmlinux 0x0ed8b687 crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x0f69fc6f swiotlb_unmap_page
+EXPORT_SYMBOL_GPL vmlinux 0x0fc03172 ata_pci_device_do_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x0fefd9c4 ata_link_offline
+EXPORT_SYMBOL_GPL vmlinux 0x0ffcd1b9 srcu_init_notifier_head
+EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x1032c641 da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x103a7dbd spu_init_channels
+EXPORT_SYMBOL_GPL vmlinux 0x103c5dc4 usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0x10575cfb regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0x1085d286 led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0x10b44ea8 raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x1133b7a3 of_irq_map_raw
+EXPORT_SYMBOL_GPL vmlinux 0x11340a75 force_sig_info
+EXPORT_SYMBOL_GPL vmlinux 0x11388756 ps3_mmio_region_create
+EXPORT_SYMBOL_GPL vmlinux 0x115dfe5e usb_autopm_get_interface
+EXPORT_SYMBOL_GPL vmlinux 0x11a55fa8 dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x11f5aa22 pci_destroy_slot
+EXPORT_SYMBOL_GPL vmlinux 0x12115b38 i2c_new_dummy
+EXPORT_SYMBOL_GPL vmlinux 0x121af690 vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0x129d1af9 setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0x12fc8a69 rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x1333d8b3 ps3av_video_mode2res
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x137ad358 regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0x137d8525 cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13d52112 ide_dma_lost_irq
+EXPORT_SYMBOL_GPL vmlinux 0x13e4e2ce spu_add_sysdev_attr_group
+EXPORT_SYMBOL_GPL vmlinux 0x13e5ea13 __wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0x13f0ce6c single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x140688c2 xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0x142e74d6 ide_pci_setup_ports
+EXPORT_SYMBOL_GPL vmlinux 0x14331a06 transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0x143d54a8 usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL vmlinux 0x14582cbb ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL vmlinux 0x14726935 debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x14982992 smp_call_function_any
+EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid
+EXPORT_SYMBOL_GPL vmlinux 0x14cd793c put_driver
+EXPORT_SYMBOL_GPL vmlinux 0x1583a0b3 usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x158611cf devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x1591feae driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x159abb63 usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x162255bd ide_write_devctl
+EXPORT_SYMBOL_GPL vmlinux 0x163b15fe fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0x163f4cfc platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x1646fcc8 fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x16628cb3 inotify_init_watch
+EXPORT_SYMBOL_GPL vmlinux 0x16a50ae7 sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0x174e2213 sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x17701cd7 bus_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x17c919ab platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x17e821b3 mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0x17f417c2 sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0x1806cddb ata_pci_device_do_resume
+EXPORT_SYMBOL_GPL vmlinux 0x186e0d37 relay_close
+EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert
+EXPORT_SYMBOL_GPL vmlinux 0x18e310d6 __ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x18ff2b72 cpufreq_freq_attr_scaling_available_freqs
+EXPORT_SYMBOL_GPL vmlinux 0x192f3184 driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x195c2d10 device_attach
+EXPORT_SYMBOL_GPL vmlinux 0x195cfbdb usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0x195f13b6 dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0x197bed33 sata_scr_read
+EXPORT_SYMBOL_GPL vmlinux 0x1999fa10 input_ff_event
+EXPORT_SYMBOL_GPL vmlinux 0x199e7331 usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19f87381 debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0x1a234674 invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x1a898a5a ide_pci_dma_base
+EXPORT_SYMBOL_GPL vmlinux 0x1a9d7936 __audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0x1aaab58d usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0x1aacfa27 crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x1ac717e3 ps3_os_area_get_rtc_diff
+EXPORT_SYMBOL_GPL vmlinux 0x1b22de9d proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0x1b46c8ca ata_host_init
+EXPORT_SYMBOL_GPL vmlinux 0x1b60dff7 regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0x1b9664d1 __destroy_context
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1b9e7f28 ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0x1bbabc9f sysdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1bbe7aa6 inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x1bf43f64 ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL vmlinux 0x1c0b22a1 usb_string
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1caef988 device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x1cb81443 usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0x1cc03e57 ata_sas_slave_configure
+EXPORT_SYMBOL_GPL vmlinux 0x1cd79248 devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x1cf486b8 noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x1d1e44a6 regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x1d254b2c usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x1d3ed398 regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0x1d4f04d8 shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x1d8b14dc sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x1da005f9 unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x1defb779 cpufreq_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x1e24c0fc ide_port_unregister_devices
+EXPORT_SYMBOL_GPL vmlinux 0x1e335b23 ide_port_scan
+EXPORT_SYMBOL_GPL vmlinux 0x1e5be09c ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart
+EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names
+EXPORT_SYMBOL_GPL vmlinux 0x1f2165c1 devres_add
+EXPORT_SYMBOL_GPL vmlinux 0x1f2c8414 ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0x1f99d0fc ide_input_data
+EXPORT_SYMBOL_GPL vmlinux 0x1fa0ef2e init_phb_dynamic
+EXPORT_SYMBOL_GPL vmlinux 0x1fa92eef led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick
+EXPORT_SYMBOL_GPL vmlinux 0x1fe7faeb hwmon_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x1fe970cb ps3_io_irq_setup
+EXPORT_SYMBOL_GPL vmlinux 0x1feb0d8d ata_bmdma_port_start
+EXPORT_SYMBOL_GPL vmlinux 0x205172a6 platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20d038ca rtnl_kill_links
+EXPORT_SYMBOL_GPL vmlinux 0x20e11f45 pci_bus_max_busnr
+EXPORT_SYMBOL_GPL vmlinux 0x20f63393 dev_attr_unload_heads
+EXPORT_SYMBOL_GPL vmlinux 0x211850f5 htab_hash_mask
+EXPORT_SYMBOL_GPL vmlinux 0x2130efc8 __ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x21ad9c04 crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x21e07539 pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0x22509fc1 fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0x22719d17 ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x228265aa pm_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x2285200f usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x22a9bdb0 nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x22e781d7 inotify_rm_wd
+EXPORT_SYMBOL_GPL vmlinux 0x22ef5385 debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0x2320b616 posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0x235014b6 wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0x2363ac14 generic_subsys_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x23db6f7a ide_check_atapi_device
+EXPORT_SYMBOL_GPL vmlinux 0x23fc87d0 ide_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x23fdd28c ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x242c3a99 sata_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0x2453ed4a usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0x24a7db2c tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0x24c87662 pm_runtime_forbid
+EXPORT_SYMBOL_GPL vmlinux 0x24cda041 ide_vlb_clk
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x25031bcb generic_fh_to_parent
+EXPORT_SYMBOL_GPL vmlinux 0x254e310c ps3_os_area_flash_register
+EXPORT_SYMBOL_GPL vmlinux 0x2662ed3e ata_sff_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x2666b62a xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0x266b74db use_mm
+EXPORT_SYMBOL_GPL vmlinux 0x26912901 ide_undecoded_slave
+EXPORT_SYMBOL_GPL vmlinux 0x269dfd98 inotify_init
+EXPORT_SYMBOL_GPL vmlinux 0x26b17165 tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x26d0eecf ata_link_next
+EXPORT_SYMBOL_GPL vmlinux 0x26f3d3aa inet_diag_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x26f8bdfc irq_find_mapping
+EXPORT_SYMBOL_GPL vmlinux 0x276a22f7 tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0x276abfba user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x27af48fd of_irq_map_one
+EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range
+EXPORT_SYMBOL_GPL vmlinux 0x2879b36f dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0x28849218 sata_pmp_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x28ac2eb1 ps3_system_bus_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x28b9dc0c unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x290a965c ide_no_data_taskfile
+EXPORT_SYMBOL_GPL vmlinux 0x29827260 debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0x29b938b0 proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0x29d43ffc ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x29f9f315 ring_buffer_resize
+EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result
+EXPORT_SYMBOL_GPL vmlinux 0x2a8833c7 mm_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x2a8a8ee1 css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x2a941574 rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0x2ad1ddb6 ide_pci_check_simplex
+EXPORT_SYMBOL_GPL vmlinux 0x2ad8f30f input_ff_create
+EXPORT_SYMBOL_GPL vmlinux 0x2afbe2a5 usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x2b7c7549 ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x2bcd9ca6 spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0x2bd0ef8d ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0x2bfc67e2 dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL vmlinux 0x2c174179 ata_port_desc
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c2b0962 nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x2c473063 usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0x2c4e6cad vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2cebb6a1 ata_dummy_port_info
+EXPORT_SYMBOL_GPL vmlinux 0x2d010ae4 fuse_direct_io
+EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x2d7f4bbc regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0x2dcf7841 device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x2ddee4bb usb_anchor_empty
+EXPORT_SYMBOL_GPL vmlinux 0x2e1d43cf lzo1x_1_compress
+EXPORT_SYMBOL_GPL vmlinux 0x2e32c43b sata_async_notification
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e9b9711 usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x2ebc9763 kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x2ec45305 cpufreq_cpu_get
+EXPORT_SYMBOL_GPL vmlinux 0x2ec92012 scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0x2ed54160 pmac_i2c_get_channel
+EXPORT_SYMBOL_GPL vmlinux 0x2f0c9101 udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x2f11fa15 ab8500_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x2f2bf1e3 zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0x2f47d8c7 cpufreq_frequency_get_table
+EXPORT_SYMBOL_GPL vmlinux 0x2f5844e2 fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0x2f7b9baf crypto_alg_sem
+EXPORT_SYMBOL_GPL vmlinux 0x2f7d6829 security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x2f92bae5 attribute_container_register
+EXPORT_SYMBOL_GPL vmlinux 0x2fb61d19 attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0x2fcd9e17 dpm_resume_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x2fdfa2d0 spu_get_profile_private_kref
+EXPORT_SYMBOL_GPL vmlinux 0x301d2cf3 crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x30301151 atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x3054b737 rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x30609642 xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0x3080e649 irq_create_of_mapping
+EXPORT_SYMBOL_GPL vmlinux 0x30cd6112 ata_sas_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x30e3a0a3 pmf_get_function
+EXPORT_SYMBOL_GPL vmlinux 0x311b78c2 ps3_get_spe_id
+EXPORT_SYMBOL_GPL vmlinux 0x31480538 ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0x3153f309 regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0x315e1db4 rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x316971ed simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0x31728f6d __module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x318a62fe usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x319a5621 inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x320219a1 ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL vmlinux 0x324a614e trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x327344eb inotify_inode_is_dead
+EXPORT_SYMBOL_GPL vmlinux 0x328d4ccc __set_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x32b12dee kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x32e72972 inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL vmlinux 0x32f10f44 __mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0x3309ea64 ps3av_audio_mute
+EXPORT_SYMBOL_GPL vmlinux 0x333284ce tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x33b49d26 queue_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x33e8604a __srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0x34201dc3 mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0x343e19b7 simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x34f9798f driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3503c973 save_stack_trace_tsk
+EXPORT_SYMBOL_GPL vmlinux 0x3592c872 pm_generic_restore
+EXPORT_SYMBOL_GPL vmlinux 0x35b5fac4 css_id
+EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x35e1f2b1 __inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0x35ec0dbc bus_register
+EXPORT_SYMBOL_GPL vmlinux 0x35eeaa88 perf_trace_buf_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x35f7401e scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0x363077a9 ata_scsi_simulate
+EXPORT_SYMBOL_GPL vmlinux 0x3661641d ide_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0x366ded1a find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x36bba210 ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x36cdcfdc blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL vmlinux 0x36dfc710 crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0x36fe4d31 dev_attr_em_message_type
+EXPORT_SYMBOL_GPL vmlinux 0x370c8b22 usb_match_id
+EXPORT_SYMBOL_GPL vmlinux 0x370e390e hvc_poll
+EXPORT_SYMBOL_GPL vmlinux 0x3715fa93 ide_pci_set_master
+EXPORT_SYMBOL_GPL vmlinux 0x37ad7137 ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL vmlinux 0x37b9dded fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x383f0763 fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x3843fb54 elv_register
+EXPORT_SYMBOL_GPL vmlinux 0x38591854 raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0x389e7f48 shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0x38c09e7a tty_find_polling_driver
+EXPORT_SYMBOL_GPL vmlinux 0x38cd988d ide_device_get
+EXPORT_SYMBOL_GPL vmlinux 0x39074f50 set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0x3933fa8d bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0x395aa4d9 ata_sff_dma_pause
+EXPORT_SYMBOL_GPL vmlinux 0x39bfc90a crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x39d7bb0a usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3a5030de usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL vmlinux 0x3a57c0b8 usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x3a7ea1d7 ata_sff_hsm_move
+EXPORT_SYMBOL_GPL vmlinux 0x3a887118 led_classdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x3ad5926d __ide_pci_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x3b1093c8 ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x3b1c5afc ps3_vuart_irq_setup
+EXPORT_SYMBOL_GPL vmlinux 0x3b823a53 device_pm_wait_for_dev
+EXPORT_SYMBOL_GPL vmlinux 0x3b9b9918 fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0x3bddb9ca pcibios_add_pci_devices
+EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3bef98b7 sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x3bf5d471 usb_enable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x3c01cb93 dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0x3c1abda4 driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x3c510fe1 kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x3c752445 crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x3c90f304 ide_init_disk
+EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag
+EXPORT_SYMBOL_GPL vmlinux 0x3c942368 profile_event_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3c9cf799 ide_create_request_sense_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x3cbb2278 crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3cfedb3f register_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end
+EXPORT_SYMBOL_GPL vmlinux 0x3d437d5f register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x3d62a789 usb_sg_wait
+EXPORT_SYMBOL_GPL vmlinux 0x3d9260b5 irq_find_host
+EXPORT_SYMBOL_GPL vmlinux 0x3e0f8af4 hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0x3e518f8e bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0x3e595fd2 wm8350_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x3e960629 ide_host_free
+EXPORT_SYMBOL_GPL vmlinux 0x3e9b6142 blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x3ea2cf1f input_ff_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x3eaa33d4 attribute_container_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3eb5a259 ide_do_start_stop
+EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0x3f03649b wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x3f238101 dcookie_register
+EXPORT_SYMBOL_GPL vmlinux 0x3f41e6e4 ata_host_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x3f89e36b hvc_remove
+EXPORT_SYMBOL_GPL vmlinux 0x3fc32f6b debugfs_create_x64
+EXPORT_SYMBOL_GPL vmlinux 0x3fda9b51 sysfs_add_device_to_node
+EXPORT_SYMBOL_GPL vmlinux 0x401aa2ce ide_init_sg_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x407cec4a pci_create_slot
+EXPORT_SYMBOL_GPL vmlinux 0x407e83a0 sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL vmlinux 0x40b6883b unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0x40c54fcd enable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x41336a28 wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x41389212 trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0x4140727b device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x415727b4 __trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0x4160015a vma_kernel_pagesize
+EXPORT_SYMBOL_GPL vmlinux 0x4192159b ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x41bab895 ps3_gpu_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x41c83c24 gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0x41d6214d pmac_i2c_get_type
+EXPORT_SYMBOL_GPL vmlinux 0x4223eec8 get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0x422cc7f1 ata_sff_softreset
+EXPORT_SYMBOL_GPL vmlinux 0x42367449 __rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x42482246 cpufreq_register_governor
+EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done
+EXPORT_SYMBOL_GPL vmlinux 0x425a4245 xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active
+EXPORT_SYMBOL_GPL vmlinux 0x42870685 ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL vmlinux 0x42b53679 wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0x42d60071 usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x42dad17b ata_link_abort
+EXPORT_SYMBOL_GPL vmlinux 0x42f08a13 ide_pad_transfer
+EXPORT_SYMBOL_GPL vmlinux 0x4301f17f fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x43237242 usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x434909ae platform_device_register_data
+EXPORT_SYMBOL_GPL vmlinux 0x434a649b tracepoint_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x43907979 tc35892_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x439b7563 eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x43a05395 usb_poison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x43cc8f78 __fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL vmlinux 0x440c5b69 crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0x44287bec ata_pio_need_iordy
+EXPORT_SYMBOL_GPL vmlinux 0x444c87c0 inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x447dbbb0 scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44a65d5c lock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x44d4e951 sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0x44d85e35 ide_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0x44dd21c4 ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0x4527eed0 ata_sff_check_status
+EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45e16553 add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x463b4ac3 alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x46b06469 regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0x46bb0082 pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0x46c1fbf9 ps3_vuart_read
+EXPORT_SYMBOL_GPL vmlinux 0x46d9f955 ps3_irq_plug_setup
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x4741db42 ps3av_set_audio_mode
+EXPORT_SYMBOL_GPL vmlinux 0x474c3acb ata_host_resume
+EXPORT_SYMBOL_GPL vmlinux 0x4774425b ide_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x478a3fcd pm_generic_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x478b2286 ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x47acddea ps3_sys_manager_set_wol
+EXPORT_SYMBOL_GPL vmlinux 0x47af0876 crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x47e88ce8 ata_cable_ignore
+EXPORT_SYMBOL_GPL vmlinux 0x47edaf0a scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x47f4283b ide_dma_sff_read_status
+EXPORT_SYMBOL_GPL vmlinux 0x4824771a tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0x48285b5d pcibios_finish_adding_to_bus
+EXPORT_SYMBOL_GPL vmlinux 0x4896a65a tc35892_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x48975b24 tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size
+EXPORT_SYMBOL_GPL vmlinux 0x48fca49c ata_sas_port_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x492f9431 pmac_i2c_close
+EXPORT_SYMBOL_GPL vmlinux 0x49317c29 __module_address
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue
+EXPORT_SYMBOL_GPL vmlinux 0x49a6c3ff pmac_i2c_setmode
+EXPORT_SYMBOL_GPL vmlinux 0x49ba10c4 uhci_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x49d8f3cb tty_prepare_flip_string_flags
+EXPORT_SYMBOL_GPL vmlinux 0x4a04a51e crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x4a462707 crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x4a98c9de __pm_runtime_set_status
+EXPORT_SYMBOL_GPL vmlinux 0x4a9caefe single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x4ad7a0c5 crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x4afb6d5b tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x4b18d813 adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x4b2661db scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x4b590bf3 hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0x4b73007a kick_process
+EXPORT_SYMBOL_GPL vmlinux 0x4be92257 dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0x4bf8e17a tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0x4bfa6834 __fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0x4c18f773 ps3_os_area_set_rtc_diff
+EXPORT_SYMBOL_GPL vmlinux 0x4c394f18 pci_enable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0x4c3ea685 task_current_syscall
+EXPORT_SYMBOL_GPL vmlinux 0x4c53a1b5 uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c95fa65 vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0x4ca9432a ata_cable_sata
+EXPORT_SYMBOL_GPL vmlinux 0x4ccf30b3 pci_enable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x4dc118c2 rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0x4e27f50a handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0x4e2dc4fe console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0x4e33bc1c sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0x4e78a9f2 __sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0x4e7a7bb6 clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0x4eb82d9e ring_buffer_overruns
+EXPORT_SYMBOL_GPL vmlinux 0x4ede57ae usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x4efdbaaa ide_dma_unmap_sg
+EXPORT_SYMBOL_GPL vmlinux 0x4f3221e6 spi_alloc_master
+EXPORT_SYMBOL_GPL vmlinux 0x4f3606e1 dev_attr_em_message
+EXPORT_SYMBOL_GPL vmlinux 0x4f45c965 ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL vmlinux 0x4f86a448 rt_mutex_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x4fcda2a7 sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal
+EXPORT_SYMBOL_GPL vmlinux 0x4fedbbff fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0x4ff93eae sysfs_notify_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x50632003 ide_release_dma_engine
+EXPORT_SYMBOL_GPL vmlinux 0x5074e787 platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0x507be2f2 part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x508c592d cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0x50916265 skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0x50a7daea ata_base_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x50c7d83e aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL vmlinux 0x50e95eb4 ide_dma_start
+EXPORT_SYMBOL_GPL vmlinux 0x50f53d7a spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched
+EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x51570d3f regulator_disable
+EXPORT_SYMBOL_GPL vmlinux 0x515b8f9a crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0x51711965 scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x519beb25 usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0x51b65a26 rtc_lock
+EXPORT_SYMBOL_GPL vmlinux 0x5201881e ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x52191d51 unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x527ad836 wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0x52e0f4ec inotify_remove_watch_locked
+EXPORT_SYMBOL_GPL vmlinux 0x530711f2 relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0x531aadbc vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x5325345e blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x5328662c anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL vmlinux 0x53896dad usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53a810a2 blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x53b002a7 tracepoint_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x53b33e12 inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x53bb9a86 crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0x53db245e raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x53e489aa scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0x542f676f key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0x543fc8b7 sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0x544e2c03 wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x5455555c pm_generic_runtime_idle
+EXPORT_SYMBOL_GPL vmlinux 0x545f8098 macio_find
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x54c2bd60 mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0x54ee27b0 da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0x54f38182 tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0x54fc3694 crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x5520046a usb_disable_autosuspend
+EXPORT_SYMBOL_GPL vmlinux 0x5588eb23 pm_generic_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x55a07f79 ata_sff_pause
+EXPORT_SYMBOL_GPL vmlinux 0x55d07dc8 destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x55f91fd8 platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status
+EXPORT_SYMBOL_GPL vmlinux 0x5636ab6a put_device
+EXPORT_SYMBOL_GPL vmlinux 0x56388abd spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after
+EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen
+EXPORT_SYMBOL_GPL vmlinux 0x56794797 regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x56969e56 inotify_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x570a05e2 scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x570a1daa init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x5742b485 ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x57a19c67 usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x5800273a rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x584162b7 class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x5892f832 release_pmc_hardware
+EXPORT_SYMBOL_GPL vmlinux 0x58b8b17d devres_remove
+EXPORT_SYMBOL_GPL vmlinux 0x5900f0b2 sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0x59aedb97 xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0x59f4d4e9 pmac_i2c_adapter_to_bus
+EXPORT_SYMBOL_GPL vmlinux 0x5a38805d devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0x5a4c07a7 spi_async
+EXPORT_SYMBOL_GPL vmlinux 0x5a528b8a ab8500_read
+EXPORT_SYMBOL_GPL vmlinux 0x5a6faab8 bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5a8a3f23 ide_get_lba_addr
+EXPORT_SYMBOL_GPL vmlinux 0x5abdbfc0 ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL vmlinux 0x5aedfaf2 debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0x5b2d43f8 free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x5b3f1e6c ata_sff_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x5b5c725a regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x5b6b8b3f skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x5b6f09d7 synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0x5bb8730d spu_invalidate_slbs
+EXPORT_SYMBOL_GPL vmlinux 0x5beac13e crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x5bedde06 inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x5bf788ca __blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5c3be6d9 device_move
+EXPORT_SYMBOL_GPL vmlinux 0x5c4b4e7d crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0x5c6058a0 sata_scr_write_flush
+EXPORT_SYMBOL_GPL vmlinux 0x5c7f0465 ata_std_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x5c98770d smu_get_ofdev
+EXPORT_SYMBOL_GPL vmlinux 0x5cb4dfc1 usb_bus_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x5cc46e1a ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x5cf41a2e vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d837c31 ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x5dca30b4 shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x5dcc3595 ata_sff_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5e01cee4 fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0x5e0e8424 of_address_to_resource
+EXPORT_SYMBOL_GPL vmlinux 0x5e57078a usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0x5e769986 ps3_os_area_get_av_multi_out
+EXPORT_SYMBOL_GPL vmlinux 0x5eb2d39d pmf_unregister_irq_client
+EXPORT_SYMBOL_GPL vmlinux 0x5ee7542e reserve_pmc_hardware
+EXPORT_SYMBOL_GPL vmlinux 0x5f8cb800 __scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0x5f8d78a1 cpufreq_frequency_table_verify
+EXPORT_SYMBOL_GPL vmlinux 0x5fc5004d inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x5ff4e489 ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x6016b1b4 ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL vmlinux 0x602acdf2 inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x60619d49 dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x607f9b93 crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0x608aaef0 __sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0x608b8284 fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x608ba85c register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x608cd682 ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x60a32ea9 pm_power_off
+EXPORT_SYMBOL_GPL vmlinux 0x60ce3cf5 ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x611ff065 page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x614e0e7b fsnotify
+EXPORT_SYMBOL_GPL vmlinux 0x614e672b regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x61912201 sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL vmlinux 0x61a90c54 klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0x61b168b6 sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x61b25634 cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0x61e35dd0 user_match
+EXPORT_SYMBOL_GPL vmlinux 0x62493b6e ata_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x625d35cd ide_set_media_lock
+EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep
+EXPORT_SYMBOL_GPL vmlinux 0x62c8bb15 relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0x62f72f76 simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL vmlinux 0x634e80cb fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x636e3e75 alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x6377d40c register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x638d66bb da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0x639d0322 get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0x63a3c9a0 pci_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x63b23937 class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x63fe228e __create_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap
+EXPORT_SYMBOL_GPL vmlinux 0x6432d07b ide_set_pio
+EXPORT_SYMBOL_GPL vmlinux 0x64b39e5e blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x64d1a9e2 class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x64f63784 ata_sff_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0x654c49e2 aer_irq
+EXPORT_SYMBOL_GPL vmlinux 0x659eeff9 pmac_i2c_match_adapter
+EXPORT_SYMBOL_GPL vmlinux 0x65a63d3f blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x65addad9 ata_cable_80wire
+EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65d9372d ide_end_rq
+EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x663eb718 platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6655c6dd set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL vmlinux 0x667a812c ps3av_set_video_mode
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66d02466 inotify_find_watch
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x677f67ea scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits
+EXPORT_SYMBOL_GPL vmlinux 0x67ad1bc9 invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0x67c3ecf7 class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x67c6902c usb_hcd_resume_root_hub
+EXPORT_SYMBOL_GPL vmlinux 0x67e4be8b crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0x67f93563 usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0x67fba805 mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0x680d82fa pci_ioremap_bar
+EXPORT_SYMBOL_GPL vmlinux 0x680eac12 ata_pci_remove_one
+EXPORT_SYMBOL_GPL vmlinux 0x68398a04 of_modalias_node
+EXPORT_SYMBOL_GPL vmlinux 0x685d77be power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x68716fe3 ide_dma_test_irq
+EXPORT_SYMBOL_GPL vmlinux 0x688caf8c dm_device_name
+EXPORT_SYMBOL_GPL vmlinux 0x6892088c unregister_pm_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x68b73b77 each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x68c67348 ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x69022318 __css_put
+EXPORT_SYMBOL_GPL vmlinux 0x69790ef6 __init_new_context
+EXPORT_SYMBOL_GPL vmlinux 0x699129a6 platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config
+EXPORT_SYMBOL_GPL vmlinux 0x69f1451e pm_generic_resume
+EXPORT_SYMBOL_GPL vmlinux 0x69fde2ea ata_bmdma_start
+EXPORT_SYMBOL_GPL vmlinux 0x6a1090f2 debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x6a5bf046 pmf_find_function
+EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x6a90025f class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x6abb9ad4 ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x6acb8d84 ppc64_caches
+EXPORT_SYMBOL_GPL vmlinux 0x6ae5dcd8 crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b2e257e transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0x6b68931f device_create
+EXPORT_SYMBOL_GPL vmlinux 0x6b8a665a rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0x6b8d89ed sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x6bb654e4 cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x6bb8c893 add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x6bde35d8 relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x6bec2853 usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0x6c19df3d sff_dma_ops
+EXPORT_SYMBOL_GPL vmlinux 0x6c47aa21 relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c5ceec5 tty_mode_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x6c63ccf7 ata_link_online
+EXPORT_SYMBOL_GPL vmlinux 0x6c87f49c ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6c955a8d rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0x6c9e07b4 wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0x6cbfea84 crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0x6ccd178d cpu_add_sysdev_attr
+EXPORT_SYMBOL_GPL vmlinux 0x6cd6f862 module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x6cde281e platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0x6d0b1109 firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d5137e3 rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x6d5b964e __clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0x6d7eee7b ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x6da6685d spu_remove_sysdev_attr
+EXPORT_SYMBOL_GPL vmlinux 0x6df952b5 ata_sff_thaw
+EXPORT_SYMBOL_GPL vmlinux 0x6e35f62f pmf_unregister_driver
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x6e763bcb ide_pci_init_two
+EXPORT_SYMBOL_GPL vmlinux 0x6ea3d8f2 blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x6f05183f ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module
+EXPORT_SYMBOL_GPL vmlinux 0x6f687f16 get_driver
+EXPORT_SYMBOL_GPL vmlinux 0x6f7702eb crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x6f8b3781 crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x6f9b9ee2 spu_setup_kernel_slbs
+EXPORT_SYMBOL_GPL vmlinux 0x6f9ef669 wm831x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x6fe2c2eb da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0x6fe52a2e pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x70091c4e rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x70221248 transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0x705d84ea pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0x706b3a33 cpufreq_frequency_table_get_attr
+EXPORT_SYMBOL_GPL vmlinux 0x7074eace ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL vmlinux 0x708fc6aa ide_exec_command
+EXPORT_SYMBOL_GPL vmlinux 0x70ad3fc6 remove_memory
+EXPORT_SYMBOL_GPL vmlinux 0x70eee0b8 cvt_df
+EXPORT_SYMBOL_GPL vmlinux 0x70fa0ec7 ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0x713972d3 led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0x7153959d ata_bmdma_status
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x71bd1917 pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x71c1da3a ata_sff_postreset
+EXPORT_SYMBOL_GPL vmlinux 0x71d298df inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0x721f1b55 eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0x7240a35b dm_dispatch_request
+EXPORT_SYMBOL_GPL vmlinux 0x7273d6c1 ata_cable_40wire
+EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x728e02ba of_irq_map_pci
+EXPORT_SYMBOL_GPL vmlinux 0x72d6dca3 register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x738b0d5d show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0x73a2bb01 ata_sff_prereset
+EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports
+EXPORT_SYMBOL_GPL vmlinux 0x73d544d3 xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0x741a0703 eeh_add_device_tree_early
+EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0x743bbf3a sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0x7487a0b4 __ata_ehi_push_desc
+EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read
+EXPORT_SYMBOL_GPL vmlinux 0x74a3d01f __lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0x74abdafa task_handoff_register
+EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74c86564 ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0x74ea1d33 platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0x754be177 tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x75e6e037 hash_page
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x761188fd dpm_suspend_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x7653fe0f ata_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x765df353 inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0x76bc88ee class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x76e81bab ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL vmlinux 0x770bac5c dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0x7732a998 ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL vmlinux 0x7756d90f pmf_call_function
+EXPORT_SYMBOL_GPL vmlinux 0x7763e208 usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x776c2af5 crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x7799f244 ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0x77b9b1e8 ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x77db4827 hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0x78118e79 ps3_vuart_cancel_async
+EXPORT_SYMBOL_GPL vmlinux 0x7824b209 led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x78486c70 ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0x7884cf9d screen_glyph
+EXPORT_SYMBOL_GPL vmlinux 0x792fce95 css_depth
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x798e6992 spi_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x799929e7 clockevents_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x799c78b9 da903x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0x79d934e5 usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0x79dba295 irq_of_parse_and_map
+EXPORT_SYMBOL_GPL vmlinux 0x7a2204f0 __remove_pages
+EXPORT_SYMBOL_GPL vmlinux 0x7a5a0934 crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0x7a83dd28 ide_tf_load
+EXPORT_SYMBOL_GPL vmlinux 0x7aaee7d9 ide_map_sg
+EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr
+EXPORT_SYMBOL_GPL vmlinux 0x7ae1f2ef inotify_find_update_watch
+EXPORT_SYMBOL_GPL vmlinux 0x7b0b5434 regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set
+EXPORT_SYMBOL_GPL vmlinux 0x7b2fa704 pm_runtime_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x7b6209d5 inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x7b728ff4 tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0x7b9fd563 regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x7bad0ade regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0x7bd142c8 ata_host_start
+EXPORT_SYMBOL_GPL vmlinux 0x7bfca020 pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x7c43ec1a platform_device_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x7c6b8d30 usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x7cc7e85b ata_port_pbar_desc
+EXPORT_SYMBOL_GPL vmlinux 0x7d1002bf sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x7d1cfc18 fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq
+EXPORT_SYMBOL_GPL vmlinux 0x7d8b261e bd_claim_by_disk
+EXPORT_SYMBOL_GPL vmlinux 0x7d9ff311 pmac_low_i2c_lock
+EXPORT_SYMBOL_GPL vmlinux 0x7da995ac __rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values
+EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7de9485a disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x7df62c44 ide_setting_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x7dffa8f9 ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e17ba7b klist_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e2d29ec ide_pci_clk
+EXPORT_SYMBOL_GPL vmlinux 0x7e4172e4 pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0x7e486c8f inode_add_to_lists
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7e81d3b6 device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x7ed2ba9c ata_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0x7ef9c9f9 usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x7f19c836 unlock_policy_rwsem_write
+EXPORT_SYMBOL_GPL vmlinux 0x7f4d3011 scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0x7f52c522 ps3av_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0x7f7bc710 klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x7f8f1aa5 ide_set_dma_mode
+EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x8014b6af input_event_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission
+EXPORT_SYMBOL_GPL vmlinux 0x8042e055 skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x80507f72 ps3av_audio_mute_analog
+EXPORT_SYMBOL_GPL vmlinux 0x806ac4a0 relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x80927303 regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x80bec714 ata_dummy_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc
+EXPORT_SYMBOL_GPL vmlinux 0x80f057a3 ata_host_detach
+EXPORT_SYMBOL_GPL vmlinux 0x812a24fc inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x8132b933 inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0x813bbbe4 register_spu_syscalls
+EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode
+EXPORT_SYMBOL_GPL vmlinux 0x814c2a94 crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x818b5d18 init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x8195eab9 inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0x81ecbfbf class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x821b1db4 __inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x824fa1ed find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0x825e43c7 blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x825e56c8 spu_management_ops
+EXPORT_SYMBOL_GPL vmlinux 0x827edfde ide_read_altstatus
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x82982051 usb_driver_set_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x82a557b6 file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0x82d544ef ide_register_region
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x82f617ed perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x83138545 sata_link_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x832a284b crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x8367fc44 usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0x83835430 power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x83c29510 inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x83c8008d ide_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x83db0083 ps3_close_hv_device
+EXPORT_SYMBOL_GPL vmlinux 0x840f42f2 device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0x842c3600 crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x84af8874 register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0x84b89ec6 usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0x852533b1 ide_cd_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x856563f2 generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x857a7c31 device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh
+EXPORT_SYMBOL_GPL vmlinux 0x85d42167 __pci_complete_power_transition
+EXPORT_SYMBOL_GPL vmlinux 0x85d9bb7a pmf_do_irq
+EXPORT_SYMBOL_GPL vmlinux 0x86316414 inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x864fe99d __pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x868afa51 spu_add_sysdev_attr
+EXPORT_SYMBOL_GPL vmlinux 0x869b1174 cpufreq_cpu_put
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x87036b75 relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error
+EXPORT_SYMBOL_GPL vmlinux 0x8753c3d4 inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0x87664260 sata_scr_valid
+EXPORT_SYMBOL_GPL vmlinux 0x87683ac9 pmf_call_one
+EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x878935fb wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0x878f8a3c page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x87ae485b crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x87b6e4db trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x8818cf3f platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0x8823721a inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0x88531547 ps3_vuart_read_async
+EXPORT_SYMBOL_GPL vmlinux 0x885ae414 blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active
+EXPORT_SYMBOL_GPL vmlinux 0x88f07f2e fuse_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x88f2d170 queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x8903c535 nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x8958ee97 bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x897d41f6 adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x8a31b110 cvt_fd
+EXPORT_SYMBOL_GPL vmlinux 0x8a55ab36 inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x8a65dbb7 wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0x8a8192c4 ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0x8ad14b4f find_module
+EXPORT_SYMBOL_GPL vmlinux 0x8b1430c9 regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x8b2b756a da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0x8b70e8ea __wake_up_sync_key
+EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis
+EXPORT_SYMBOL_GPL vmlinux 0x8b764846 sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0x8b826049 usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0x8b9b6686 tty_put_char
+EXPORT_SYMBOL_GPL vmlinux 0x8bb2acc3 wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x8bdcacbe pmac_i2c_get_controller
+EXPORT_SYMBOL_GPL vmlinux 0x8bf2b637 blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0x8bf2e64f sysfs_remove_files
+EXPORT_SYMBOL_GPL vmlinux 0x8c3e6ca5 sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x8c866e95 rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x8cd184f1 led_trigger_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x8d0fec13 wm8994_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x8d1a481f eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x8d269d07 drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0x8d42ce6a seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x8d87b41f device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0x8d92637c unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x8d9b8213 xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0x8da4e829 spu_remove_sysdev_attr_group
+EXPORT_SYMBOL_GPL vmlinux 0x8dbf41ba ps3_free_mmio_region
+EXPORT_SYMBOL_GPL vmlinux 0x8dc607ca register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x8e246e07 power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x8e42e308 ata_sff_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x8ea448ae spi_sync
+EXPORT_SYMBOL_GPL vmlinux 0x8f45c559 crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8f770ad8 __ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8fd3607a tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0x8ff8ac4a ata_port_freeze
+EXPORT_SYMBOL_GPL vmlinux 0x900c4c78 pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0x900c89ee usb_store_new_id
+EXPORT_SYMBOL_GPL vmlinux 0x90673390 spu_switch_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x90969230 srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9159b9d6 profile_event_register
+EXPORT_SYMBOL_GPL vmlinux 0x916cbf61 wm8350_gpio_config
+EXPORT_SYMBOL_GPL vmlinux 0x91b99495 shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array
+EXPORT_SYMBOL_GPL vmlinux 0x91d58660 ps3_open_hv_device
+EXPORT_SYMBOL_GPL vmlinux 0x91eaefae usb_autopm_put_interface_async
+EXPORT_SYMBOL_GPL vmlinux 0x91fb8d77 device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0x926109e5 dev_attr_sw_activity
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92e3745e crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x92e58a13 crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x92eaa3d3 usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0x92eea310 usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x92fb217b dcookie_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x92fbcba1 platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0x930316c4 slice_get_unmapped_area
+EXPORT_SYMBOL_GPL vmlinux 0x93067ba3 pci_bus_resource_n
+EXPORT_SYMBOL_GPL vmlinux 0x931bab06 debugfs_create_u32
+EXPORT_SYMBOL_GPL vmlinux 0x93342160 blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0x9373de5e dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0x93822fdb i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x93cf62c9 inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x93d45aa6 ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL vmlinux 0x940c9e65 ata_eh_freeze_port
+EXPORT_SYMBOL_GPL vmlinux 0x940f7ab4 usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x942aae14 regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x94838eeb blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x953871d0 page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x957304b9 cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0x95c76b1c wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x95d09835 ata_sff_irq_on
+EXPORT_SYMBOL_GPL vmlinux 0x95d1a245 usb_ifnum_to_if
+EXPORT_SYMBOL_GPL vmlinux 0x95dc8f24 elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x95f71ef8 pci_cleanup_aer_uncorrect_error_status
+EXPORT_SYMBOL_GPL vmlinux 0x95fca5c6 driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0x961702d7 securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x961a8cd3 unlock_policy_rwsem_read
+EXPORT_SYMBOL_GPL vmlinux 0x961c1267 usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x9682b3a9 hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL vmlinux 0x96918f9e ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x96ca8ff8 netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x96d7e3d6 inotify_dentry_parent_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x96e0b1eb crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x96f964e1 inotify_add_watch
+EXPORT_SYMBOL_GPL vmlinux 0x9727e1d0 bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0x975131ae mmput
+EXPORT_SYMBOL_GPL vmlinux 0x976643a7 ata_sas_port_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x978f24b1 __wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0x97b1658d power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0x981e7d98 tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick
+EXPORT_SYMBOL_GPL vmlinux 0x985ca82f hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x98893445 ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL vmlinux 0x988f9e7d crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0x98a0a7e3 led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL vmlinux 0x98c158e1 led_classdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x98de14f8 usb_set_device_state
+EXPORT_SYMBOL_GPL vmlinux 0x99097fb1 sata_sff_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0x990a71e2 wm8994_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x99269f9e blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0x9943d571 ide_pci_init_one
+EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on
+EXPORT_SYMBOL_GPL vmlinux 0x995d3dc5 sata_pmp_error_handler
+EXPORT_SYMBOL_GPL vmlinux 0x99979ee1 tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0x99a1762c tc35892_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x99a8b18f pm_schedule_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x99c7a316 raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0x99d8368d transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a756bf1 ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x9aad6540 klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x9ab0890f crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x9abb02e2 ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x9acae6b5 ata_host_activate
+EXPORT_SYMBOL_GPL vmlinux 0x9b0d32c3 devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0x9b3b737f register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x9b67ebda devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0x9b684f45 cbe_spu_info
+EXPORT_SYMBOL_GPL vmlinux 0x9b88e4da disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9bc9b70e get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0x9bc9dd2c macvlan_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x9c5e6e91 eeh_add_device_tree_late
+EXPORT_SYMBOL_GPL vmlinux 0x9c67c765 cpufreq_frequency_table_target
+EXPORT_SYMBOL_GPL vmlinux 0x9c80d023 debugfs_create_bool
+EXPORT_SYMBOL_GPL vmlinux 0x9c922254 ide_setup_pci_noise
+EXPORT_SYMBOL_GPL vmlinux 0x9ca4229d usb_autopm_get_interface_no_resume
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9cb9815e perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0x9cd116fd pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0x9cf17c05 usb_root_hub_lost_power
+EXPORT_SYMBOL_GPL vmlinux 0x9d1324a9 ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0x9d238070 fb_sys_read
+EXPORT_SYMBOL_GPL vmlinux 0x9d27e0dc debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x9d3870e1 ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL vmlinux 0x9d6802f1 ata_sas_port_stop
+EXPORT_SYMBOL_GPL vmlinux 0x9dd240a3 regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x9e3035fa raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0x9e3b80c9 crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x9e496ed8 locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0x9e532c5a register_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x9e997cc2 register_posix_clock
+EXPORT_SYMBOL_GPL vmlinux 0x9ec806fe find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x9ec98f7a rtc_class_close
+EXPORT_SYMBOL_GPL vmlinux 0x9ee2f0c0 i2c_new_probed_device
+EXPORT_SYMBOL_GPL vmlinux 0x9f247e1c __hvc_resize
+EXPORT_SYMBOL_GPL vmlinux 0x9f3c3fa4 add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain
+EXPORT_SYMBOL_GPL vmlinux 0x9f41df4f __inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0x9f71491f input_ff_upload
+EXPORT_SYMBOL_GPL vmlinux 0x9f82ca86 pci_scan_child_bus
+EXPORT_SYMBOL_GPL vmlinux 0x9fb60ff0 ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x9fd26e5d ata_sff_wait_ready
+EXPORT_SYMBOL_GPL vmlinux 0x9ff6f551 __pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa004b0fb skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0xa00d2ebb sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0xa04b9f9c pm_generic_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xa05e409d ata_eh_qc_retry
+EXPORT_SYMBOL_GPL vmlinux 0xa0a27fff pci_address_to_pio
+EXPORT_SYMBOL_GPL vmlinux 0xa0a30d0a ata_sff_exec_command
+EXPORT_SYMBOL_GPL vmlinux 0xa0e5e85f ide_host_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xa13bddc2 __mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0xa1921f91 wm8350_device_exit
+EXPORT_SYMBOL_GPL vmlinux 0xa1a0a00a ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0xa1b86a73 usb_hcd_pci_pm_ops
+EXPORT_SYMBOL_GPL vmlinux 0xa2353312 blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xa237c7cd ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL vmlinux 0xa26afc60 ata_dev_next
+EXPORT_SYMBOL_GPL vmlinux 0xa27b0ac4 tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0xa27ed2a3 get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0xa2851728 xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0xa2cb8de3 ata_std_prereset
+EXPORT_SYMBOL_GPL vmlinux 0xa2e8ad95 perf_arch_fetch_caller_regs
+EXPORT_SYMBOL_GPL vmlinux 0xa321374f rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0xa33cfcbe tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0xa34f419b usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0xa3886682 pmf_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xa38c9ca0 hrtimer_start
+EXPORT_SYMBOL_GPL vmlinux 0xa3970ed9 unregister_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0xa3a2d9af walk_system_ram_range
+EXPORT_SYMBOL_GPL vmlinux 0xa3ab862f crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xa40a8590 input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa42849ec ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xa44d3dfe ata_std_postreset
+EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx
+EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0xa4a68cdd dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0xa4ae2ab9 ide_check_ireason
+EXPORT_SYMBOL_GPL vmlinux 0xa4c8eacd ring_buffer_swap_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xa4fa6626 led_classdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xa54ddd8e blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xa5799f5d device_rename
+EXPORT_SYMBOL_GPL vmlinux 0xa5abad87 synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes
+EXPORT_SYMBOL_GPL vmlinux 0xa5d4bec6 ide_pio_cycle_time
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa6038d3a securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0xa61bcd1e ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa6319ea4 driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xa63318cf ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL vmlinux 0xa669ac32 usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xa68b4d0d usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0xa6aba4c2 skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0xa6ae8b4c crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0xa72f25a7 map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xa7418944 class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xa78f3bed fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0xa7dc6943 i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0xa7e4376c vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0xa80a2bd3 rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0xa82dee55 usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll
+EXPORT_SYMBOL_GPL vmlinux 0xa8619c3b bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0xa870cdb0 fuse_do_open
+EXPORT_SYMBOL_GPL vmlinux 0xa88096bc eeh_dn_check_failure
+EXPORT_SYMBOL_GPL vmlinux 0xa88d537f inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa89d02f8 usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0xa8a0fdc5 device_register
+EXPORT_SYMBOL_GPL vmlinux 0xa8bdc9b8 ata_do_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0xa8e5de92 spi_register_master
+EXPORT_SYMBOL_GPL vmlinux 0xa8eb85d7 bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa900fe6a xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0xa90b47d3 devres_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xa965c245 hwmon_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa96af0af power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xa98cdb36 ps3_get_firmware_version
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xaa3d3948 pci_restore_msi_state
+EXPORT_SYMBOL_GPL vmlinux 0xaa6c42f6 spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock
+EXPORT_SYMBOL_GPL vmlinux 0xaabc4e90 crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0xaac0a257 disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xaada79d7 crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0xab14110a stop_machine
+EXPORT_SYMBOL_GPL vmlinux 0xab2b243d ps3_irq_plug_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab8cfef1 fb_sys_write
+EXPORT_SYMBOL_GPL vmlinux 0xab8e7f70 ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0xabb86b20 cpufreq_frequency_table_cpuinfo
+EXPORT_SYMBOL_GPL vmlinux 0xabc2c6eb task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0xabc6c478 inet_diag_register
+EXPORT_SYMBOL_GPL vmlinux 0xabd1b9a3 inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0xac0c1ca6 tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0xac3330ad spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0xac3a6a5f tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0xac3d8063 pcibios_unmap_io_space
+EXPORT_SYMBOL_GPL vmlinux 0xac722b3b rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0xaca13596 usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xacb4301e ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0xacc2633c spu_switch_event_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xace5e2a1 class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xacfe997e powerpc_firmware_features
+EXPORT_SYMBOL_GPL vmlinux 0xad51c213 crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xad55bb2b pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad5fc606 usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0xad60d014 tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0xad99cc8a put_pid
+EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module
+EXPORT_SYMBOL_GPL vmlinux 0xadde731d d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae240239 crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0xae4997f2 pci_disable_pcie_error_reporting
+EXPORT_SYMBOL_GPL vmlinux 0xae5d7891 ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xae62ffb4 ata_sff_qc_issue
+EXPORT_SYMBOL_GPL vmlinux 0xae6f965b kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0xae81b2c7 anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0xaee43e7c unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xaeef3e1e usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0xaf196bdc spi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xaf3f6fe0 ata_sff_interrupt
+EXPORT_SYMBOL_GPL vmlinux 0xaf5785b1 fb_ddc_read
+EXPORT_SYMBOL_GPL vmlinux 0xaf639761 vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0xaf80ca01 ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0xaf86fc60 ata_do_dev_read_id
+EXPORT_SYMBOL_GPL vmlinux 0xaf93a0f3 pm_generic_thaw
+EXPORT_SYMBOL_GPL vmlinux 0xb084514d init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xb0e91fac register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0xb0f27300 platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0xb1183e2c regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xb12b3bda platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0xb164c64a ps3_vuart_clear_rx_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb1e618d0 sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xb1efc3c1 wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0xb1fd5149 eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0xb216ef79 pci_test_config_bits
+EXPORT_SYMBOL_GPL vmlinux 0xb2226277 ata_std_bios_param
+EXPORT_SYMBOL_GPL vmlinux 0xb22da526 tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0xb2883f30 register_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0xb2bdc77d register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xb305e374 hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0xb32b61e9 xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0xb39e503e transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xb39e5fa3 sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xb3e579fc debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0xb41ad90d do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0xb4c99e33 ide_retry_pc
+EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected
+EXPORT_SYMBOL_GPL vmlinux 0xb518e1a6 sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state
+EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL vmlinux 0xb538aeae cpu_remove_sysdev_attr
+EXPORT_SYMBOL_GPL vmlinux 0xb577f581 dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xb5b1640b dm_put
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb5fe2b06 init_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xb612444d snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0xb61ec95c ps3_vuart_write
+EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec
+EXPORT_SYMBOL_GPL vmlinux 0xb684b7a4 device_find_child
+EXPORT_SYMBOL_GPL vmlinux 0xb68a02bd crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string
+EXPORT_SYMBOL_GPL vmlinux 0xb6b5874f __inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0xb6bc007a spu_sys_callback
+EXPORT_SYMBOL_GPL vmlinux 0xb6d4422f eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0xb6f953d1 rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0xb72918ea sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0xb73ee3f1 regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb7a565b6 wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xb7f5c09e crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0xb7fc6f02 ata_sff_data_xfer
+EXPORT_SYMBOL_GPL vmlinux 0xb80ae662 blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xb82c253d rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0xb84b1aae ps3_event_receive_port_setup
+EXPORT_SYMBOL_GPL vmlinux 0xb8a4a00a blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0xb8aaed58 debugfs_create_u64
+EXPORT_SYMBOL_GPL vmlinux 0xb8c40ee8 debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0xb8ed9ce8 __rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0xb90695a1 anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0xb90a078a ata_port_abort
+EXPORT_SYMBOL_GPL vmlinux 0xb91ab1dc crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0xb98772e1 led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0xb98b8d21 bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0xb990447e sata_link_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xb9bcd7cf platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb9c7f111 usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xba1fb93b pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xbad26090 __atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xbadca378 kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbaeea952 __class_register
+EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks
+EXPORT_SYMBOL_GPL vmlinux 0xbb0c790d ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0xbb12fa37 ide_pio_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xbb23886a br_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0xbb27882c scsi_target_unblock
+EXPORT_SYMBOL_GPL vmlinux 0xbb49aafe spu_64k_pages_available
+EXPORT_SYMBOL_GPL vmlinux 0xbb96ad0e pmf_put_function
+EXPORT_SYMBOL_GPL vmlinux 0xbba75170 sysfs_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xbbc6aba8 adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0xbc19573b attribute_container_find_class_device
+EXPORT_SYMBOL_GPL vmlinux 0xbc2ab361 pcibios_find_pci_bus
+EXPORT_SYMBOL_GPL vmlinux 0xbc4abc4a regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0xbc8f758c srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbca94922 get_dcookie
+EXPORT_SYMBOL_GPL vmlinux 0xbccbfa4e isa_bridge_pcidev
+EXPORT_SYMBOL_GPL vmlinux 0xbcdee844 ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0xbcee222a aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0xbd07427d bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0xbd3f4aa7 filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0xbd5e5356 ide_do_test_unit_ready
+EXPORT_SYMBOL_GPL vmlinux 0xbd841547 usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0xbda7d7ff ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xbdabcf0f rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0xbdde20d9 crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0xbdf7782f user_read
+EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbe0c9adb skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime
+EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xbe200a55 debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0xbe350142 device_del
+EXPORT_SYMBOL_GPL vmlinux 0xbe52162f usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0xbec15b5a irq_set_affinity_hint
+EXPORT_SYMBOL_GPL vmlinux 0xbec62823 pm_generic_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xbed967c5 ide_dma_setup
+EXPORT_SYMBOL_GPL vmlinux 0xbef80707 ata_pci_device_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xbf1cc04b tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0xc0464839 shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xc05a71a4 cpufreq_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc081d741 crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xc0831ce2 __blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time
+EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc13a8f3f ata_bmdma_stop
+EXPORT_SYMBOL_GPL vmlinux 0xc1494d23 pcie_port_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xc14ce08f pci_find_ext_capability
+EXPORT_SYMBOL_GPL vmlinux 0xc15b6c16 input_class
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc1a47b6b pmf_register_irq_client
+EXPORT_SYMBOL_GPL vmlinux 0xc1cd9f7b sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0xc1e8561b aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xc1fa4dfb unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xc1fb98f0 dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc2cfd1ee perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc3781403 blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xc3874078 leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc40c60fa usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long
+EXPORT_SYMBOL_GPL vmlinux 0xc453ce1f i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xc456df3d bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc474c74d tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0xc480c6b6 ide_queue_pc_tail
+EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string
+EXPORT_SYMBOL_GPL vmlinux 0xc491c848 fuse_request_send
+EXPORT_SYMBOL_GPL vmlinux 0xc4f3feef ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL vmlinux 0xc53650f3 register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xc568bf56 pcibios_remove_pci_devices
+EXPORT_SYMBOL_GPL vmlinux 0xc588ac48 rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc598c4a4 usb_create_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xc609dde4 spu_priv1_ops
+EXPORT_SYMBOL_GPL vmlinux 0xc60e6b12 pci_disable_rom
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc617acd8 tracepoint_iter_start
+EXPORT_SYMBOL_GPL vmlinux 0xc64f72e2 br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0xc66c2311 ps3_vuart_irq_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xc66cb788 get_slice_psize
+EXPORT_SYMBOL_GPL vmlinux 0xc66de754 ide_dma_end
+EXPORT_SYMBOL_GPL vmlinux 0xc6d4898f dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0xc701fc18 da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xc70a533d skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0xc712091b cpufreq_unregister_governor
+EXPORT_SYMBOL_GPL vmlinux 0xc7253978 tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xc77c10fd __crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xc7906cbc flush_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0xc7b1fdb4 ata_sas_port_init
+EXPORT_SYMBOL_GPL vmlinux 0xc7d97d49 blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0xc8079d53 devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xc895ecd9 __class_create
+EXPORT_SYMBOL_GPL vmlinux 0xc8ac3533 rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0xc8b1ef50 pm_runtime_enable
+EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0xc8d14e2b sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0xc8e088e1 tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint
+EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource
+EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist
+EXPORT_SYMBOL_GPL vmlinux 0xc9600d1f spi_new_device
+EXPORT_SYMBOL_GPL vmlinux 0xc96d5577 pmac_i2c_get_bus_node
+EXPORT_SYMBOL_GPL vmlinux 0xc9da738c device_add
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xca038c55 usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0xca0a2936 cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0xca153443 queue_work
+EXPORT_SYMBOL_GPL vmlinux 0xca32a2aa ide_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xca4253cf device_create_vargs
+EXPORT_SYMBOL_GPL vmlinux 0xca7d9c56 unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xca8b195b do_add_mount
+EXPORT_SYMBOL_GPL vmlinux 0xca8fdfeb platform_get_resource_byname
+EXPORT_SYMBOL_GPL vmlinux 0xcab31ba8 do_rw_taskfile
+EXPORT_SYMBOL_GPL vmlinux 0xcab83078 wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xcae7f36a __srcu_read_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcb32610f srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xcb45ca4a led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xcb4ec3f3 ide_host_register
+EXPORT_SYMBOL_GPL vmlinux 0xcb628afe skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xcb66645d inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0xcb85e2e7 pmac_low_i2c_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xcbc2c8dd atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xcbd8080b crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc6e5cab tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xcc8a6f8b usb_driver_release_interface
+EXPORT_SYMBOL_GPL vmlinux 0xcca23437 scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xccacaff3 ata_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0xccba34f8 ide_host_remove
+EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL vmlinux 0xcd33fcd2 platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0xcd43face __blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0xcd4d3b31 led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0xcd4e022c vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0xcd8fa03a dm_kill_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xcde2382e sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0xcde59472 ide_capacity_proc_fops
+EXPORT_SYMBOL_GPL vmlinux 0xce4d6386 rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xce52ad08 tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0xce60429b unregister_timer_hook
+EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0xceb68826 crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0xcedd6d10 ide_host_add
+EXPORT_SYMBOL_GPL vmlinux 0xcef92778 get_device
+EXPORT_SYMBOL_GPL vmlinux 0xcf5f6870 kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0xcf966ad8 unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xcfb2b320 skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0xcfcb8ae4 rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcfe9c54e crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0xd00485fc ide_output_data
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL vmlinux 0xd04ac485 pmac_i2c_xfer
+EXPORT_SYMBOL_GPL vmlinux 0xd0a05a60 spu_associate_mm
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd11d80f5 ide_allocate_dma_engine
+EXPORT_SYMBOL_GPL vmlinux 0xd15ee7e4 spu_set_profile_private_kref
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd1887c3b sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xd1b7fb9d wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xd1dc36e8 ide_dma_sff_timer_expiry
+EXPORT_SYMBOL_GPL vmlinux 0xd215519e __cpufreq_driver_getavg
+EXPORT_SYMBOL_GPL vmlinux 0xd221c5d0 tc35892_block_write
+EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd23094a6 user_update
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd2928290 sysdev_class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xd2ef5764 spu_switch_notify
+EXPORT_SYMBOL_GPL vmlinux 0xd2f4732f spu_handle_mm_fault
+EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL vmlinux 0xd3437e9f crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0xd3552b1f ide_read_error
+EXPORT_SYMBOL_GPL vmlinux 0xd36f0729 regulator_get_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xd38c4d27 pm_request_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd3c28010 class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0xd3ed0555 unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0xd40e21e0 user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xd4215a8d tracepoint_iter_stop
+EXPORT_SYMBOL_GPL vmlinux 0xd48db6c6 bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xd4a0ddcb simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0xd4a81e2a sysdev_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xd4a9f391 ata_dev_pair
+EXPORT_SYMBOL_GPL vmlinux 0xd4d0d72a ide_error
+EXPORT_SYMBOL_GPL vmlinux 0xd572afca led_trigger_show
+EXPORT_SYMBOL_GPL vmlinux 0xd5782121 hvc_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0xd5956b8a blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0xd5c56e82 cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0xd6003837 srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0xd651f814 power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0xd6ea82b2 ide_unregister_region
+EXPORT_SYMBOL_GPL vmlinux 0xd6ea86f6 devm_kfree
+EXPORT_SYMBOL_GPL vmlinux 0xd6f3e10c pm_runtime_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout
+EXPORT_SYMBOL_GPL vmlinux 0xd705d8aa sata_set_spd
+EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd7a2fedf eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0xd7aaa322 transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0xd8039edc ide_cd_get_xferlen
+EXPORT_SYMBOL_GPL vmlinux 0xd80b8a82 of_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0xd8263870 mmu_slb_size
+EXPORT_SYMBOL_GPL vmlinux 0xd8340263 find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xd8498f4d ps3av_mode_cs_info
+EXPORT_SYMBOL_GPL vmlinux 0xd8682cbe pm_runtime_allow
+EXPORT_SYMBOL_GPL vmlinux 0xd8ae6276 __pm_runtime_disable
+EXPORT_SYMBOL_GPL vmlinux 0xd8dbda21 crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xd9042fa8 scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0xd94f270b ata_sff_port_intr
+EXPORT_SYMBOL_GPL vmlinux 0xd9754047 sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0xd9aa70dc eeh_remove_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0xd9cda2a6 get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0xd9d9358a n_tty_inherit_ops
+EXPORT_SYMBOL_GPL vmlinux 0xd9f857ee of_pci_address_to_resource
+EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL vmlinux 0xda3fc075 devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xda5e828a tasklet_hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xdacf2033 ps3_sys_manager_register_ops
+EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option
+EXPORT_SYMBOL_GPL vmlinux 0xdaf92863 pm_runtime_resume
+EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xdb0ac13b ps3_compare_firmware_version
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdba52d14 skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0xdbb398a7 hvc_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xdbc77f01 crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xdc1d969a apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0xdc1f6a89 shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xdc35fb21 ata_eh_thaw_port
+EXPORT_SYMBOL_GPL vmlinux 0xdc427fee free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0xdc819f62 ide_read_bcount_and_ireason
+EXPORT_SYMBOL_GPL vmlinux 0xdcb4825b fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0xdce0597d tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0xdce896ba regulator_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xdd043eea ps3av_get_auto_mode
+EXPORT_SYMBOL_GPL vmlinux 0xdd0b6e4b tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0xdd802737 ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0xdd817795 ata_std_qc_defer
+EXPORT_SYMBOL_GPL vmlinux 0xdd8438c1 debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0xddac1bbe fib_rules_cleanup_ops
+EXPORT_SYMBOL_GPL vmlinux 0xddaf0b64 blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0xddbf69cb devres_find
+EXPORT_SYMBOL_GPL vmlinux 0xddcd3866 dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0xde145b17 platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xde19c339 spi_write_then_read
+EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain
+EXPORT_SYMBOL_GPL vmlinux 0xde5dd057 inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0xde61bf32 pmac_i2c_get_flags
+EXPORT_SYMBOL_GPL vmlinux 0xde8abc7d driver_find
+EXPORT_SYMBOL_GPL vmlinux 0xde8ca797 crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xde948b85 user_describe
+EXPORT_SYMBOL_GPL vmlinux 0xdf4f9a89 ide_pci_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xdf53265f pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0xdf68be39 securityfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xdf6b7e37 sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xdf85a753 __rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0xdfc3abc4 ide_read_status
+EXPORT_SYMBOL_GPL vmlinux 0xdfeacbb5 sata_scr_write
+EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name
+EXPORT_SYMBOL_GPL vmlinux 0xe011f817 ps3flash_bounce_buffer
+EXPORT_SYMBOL_GPL vmlinux 0xe03872c5 pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xe057c8bf disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xe06aeeff kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xe07dd81e wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xe165bc80 cpu_add_sysdev_attr_group
+EXPORT_SYMBOL_GPL vmlinux 0xe16d868f usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0xe191e241 input_ff_erase
+EXPORT_SYMBOL_GPL vmlinux 0xe198459e fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0xe198e590 __pm_runtime_get
+EXPORT_SYMBOL_GPL vmlinux 0xe19fc092 ps3fb_videomemory
+EXPORT_SYMBOL_GPL vmlinux 0xe24eff64 dm_get_rq_mapinfo
+EXPORT_SYMBOL_GPL vmlinux 0xe2540143 __cpufreq_driver_target
+EXPORT_SYMBOL_GPL vmlinux 0xe258c420 hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0xe2984db1 anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe29928ab ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL vmlinux 0xe2e522b1 ata_pci_device_resume
+EXPORT_SYMBOL_GPL vmlinux 0xe2ecc29f ide_build_dmatable
+EXPORT_SYMBOL_GPL vmlinux 0xe305868d ata_sas_port_start
+EXPORT_SYMBOL_GPL vmlinux 0xe349fcc9 usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0xe355a9f3 usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0xe35e7720 perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0xe3a0a379 ata_sff_dev_classify
+EXPORT_SYMBOL_GPL vmlinux 0xe3b46a15 ata_bmdma_setup
+EXPORT_SYMBOL_GPL vmlinux 0xe3c72330 ps3_system_bus_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe4049c60 class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xe451bf13 transport_configure_device
+EXPORT_SYMBOL_GPL vmlinux 0xe49ff3b0 ata_wait_register
+EXPORT_SYMBOL_GPL vmlinux 0xe504daec fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xe5060e79 regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xe52eefd7 sysfs_remove_device_from_node
+EXPORT_SYMBOL_GPL vmlinux 0xe538938e sata_std_hardreset
+EXPORT_SYMBOL_GPL vmlinux 0xe53ff513 crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0xe561447c inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0xe59001a7 pci_find_next_capability
+EXPORT_SYMBOL_GPL vmlinux 0xe595fc1e __blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xe5a1f6ab account_system_vtime
+EXPORT_SYMBOL_GPL vmlinux 0xe5e4646c cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xe618fbc7 usb_hc_died
+EXPORT_SYMBOL_GPL vmlinux 0xe6347b71 ata_sff_dev_select
+EXPORT_SYMBOL_GPL vmlinux 0xe6488b47 cpufreq_notify_transition
+EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe68a5622 crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0xe6958094 lookup_create
+EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe702db15 sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xe712c7ff class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xe737c889 pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0xe772d074 usb_autopm_put_interface
+EXPORT_SYMBOL_GPL vmlinux 0xe7f256d4 class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0xe7fa1cf2 usb_ep0_reinit
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr
+EXPORT_SYMBOL_GPL vmlinux 0xe8269ac9 sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xe849f4fd inotify_rm_watch
+EXPORT_SYMBOL_GPL vmlinux 0xe8525bf7 kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0xe85c91f4 usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start
+EXPORT_SYMBOL_GPL vmlinux 0xe88cce58 class_dev_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xe8aceebc ab8500_write
+EXPORT_SYMBOL_GPL vmlinux 0xe8afea43 usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0xe8bfd6b0 sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xe8cf8fe4 rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0xe8d2bc19 ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL vmlinux 0xe91a4a1e pci_dev_run_wake
+EXPORT_SYMBOL_GPL vmlinux 0xe9394ed6 regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe9ce94ee usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL vmlinux 0xe9fd4941 device_schedule_callback_owner
+EXPORT_SYMBOL_GPL vmlinux 0xea004fbd security_inode_setattr
+EXPORT_SYMBOL_GPL vmlinux 0xea065e01 task_handoff_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type
+EXPORT_SYMBOL_GPL vmlinux 0xea53827b root_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xea92d38c skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0xea930505 cpu_remove_sysdev_attr_group
+EXPORT_SYMBOL_GPL vmlinux 0xeab8ce3f power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL vmlinux 0xead724bf usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0xead8d42d crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeafa122f ps3_system_bus_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xeb075071 eventfd_ctx_put
+EXPORT_SYMBOL_GPL vmlinux 0xeb25b4bc __srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xeb8ae736 klist_init
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del
+EXPORT_SYMBOL_GPL vmlinux 0xec37dde1 sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xec4e4704 aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0xec6e7620 sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0xec8d62f0 __get_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xec938153 __inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0xecc5d87c disk_map_sector_rcu
+EXPORT_SYMBOL_GPL vmlinux 0xecdde02d crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0xecf496c3 pmac_i2c_get_adapter
+EXPORT_SYMBOL_GPL vmlinux 0xecfeb92f gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0xed0755d8 usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0xed7540d1 pmac_i2c_get_dev_addr
+EXPORT_SYMBOL_GPL vmlinux 0xed771593 fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0xede2011a bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0xedf6fdbc blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0xee05f157 ide_init_pc
+EXPORT_SYMBOL_GPL vmlinux 0xee18dd4f ata_host_register
+EXPORT_SYMBOL_GPL vmlinux 0xee560571 regulator_put
+EXPORT_SYMBOL_GPL vmlinux 0xee5f61cc blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0xeec6ca44 ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0xeecd31ec queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0xeee40193 crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xeeff255f ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0xef3de84f fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0xef4b9da7 sata_link_resume
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xef8b3558 ide_issue_pc
+EXPORT_SYMBOL_GPL vmlinux 0xef9404e3 fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0xefb48579 ata_dev_disable
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xeff4c3d0 pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xeffec6cc ps3_mmio_region_init
+EXPORT_SYMBOL_GPL vmlinux 0xf047de6c skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0xf050ad5b device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0xf087c0cd driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xf098dd15 cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0xf0c184f9 kill_pid_info_as_uid
+EXPORT_SYMBOL_GPL vmlinux 0xf105d00d ide_in_drive_list
+EXPORT_SYMBOL_GPL vmlinux 0xf155f60e __put_net
+EXPORT_SYMBOL_GPL vmlinux 0xf158f170 klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0xf1602f0e bd_release_from_disk
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf1a4b581 sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0xf1f71cae seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0xf20812b0 adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xf2576ef6 class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf289be68 blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0xf2b122ab pmf_do_functions
+EXPORT_SYMBOL_GPL vmlinux 0xf2c82c26 __add_pages
+EXPORT_SYMBOL_GPL vmlinux 0xf2da00c3 ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL vmlinux 0xf31db68b default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0xf331fc3d crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf35b5d30 ide_dma_host_set
+EXPORT_SYMBOL_GPL vmlinux 0xf3a2c3ac ide_intr
+EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf4165057 vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf44a4a98 crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xf469c705 ps3_io_irq_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf4c7c3a5 crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf55accb0 generic_detach_inode
+EXPORT_SYMBOL_GPL vmlinux 0xf58fb343 blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf5c09b27 led_classdev_register
+EXPORT_SYMBOL_GPL vmlinux 0xf657402e usb_get_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xf66cf5e8 generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0xf67ec40f eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0xf69f5b0e ide_pci_resume
+EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge
+EXPORT_SYMBOL_GPL vmlinux 0xf756f6e9 usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xf78cf0cd xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0xf8255f19 usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0xf831a4da regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0xf87d00f1 ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf8c1b0e7 blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0xf8eea66e sysdev_class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit
+EXPORT_SYMBOL_GPL vmlinux 0xf8f4e4e0 pm_generic_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xf9040c06 ata_do_eh
+EXPORT_SYMBOL_GPL vmlinux 0xf911f4d3 usb_autopm_put_interface_no_suspend
+EXPORT_SYMBOL_GPL vmlinux 0xf9361717 get_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0xf9758d7b ata_wait_after_reset
+EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask
+EXPORT_SYMBOL_GPL vmlinux 0xf9ecb29c disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register
+EXPORT_SYMBOL_GPL vmlinux 0xfa180725 device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xfa1c77b6 ide_tf_read
+EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0xfa396a99 platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xfa44283e rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xfa7847d1 ata_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0xfa8cf6a7 ata_eh_qc_complete
+EXPORT_SYMBOL_GPL vmlinux 0xfab60503 klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0xfae142bf pcibios_map_io_space
+EXPORT_SYMBOL_GPL vmlinux 0xfaea5403 device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xfb01338c unregister_spu_syscalls
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb5b7a2e ide_queue_sense_rq
+EXPORT_SYMBOL_GPL vmlinux 0xfbc073a5 bsg_unregister_queue
+EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfbfa03e8 platform_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xfbfcdc2b ps3_sys_manager_get_wol
+EXPORT_SYMBOL_GPL vmlinux 0xfc2e13ea trace_seq_vprintf
+EXPORT_SYMBOL_GPL vmlinux 0xfc714867 set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0xfc754dbd i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL vmlinux 0xfc9ccd70 ide_timing_compute
+EXPORT_SYMBOL_GPL vmlinux 0xfcfc1599 ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0xfd35ddb0 __pm_runtime_put
+EXPORT_SYMBOL_GPL vmlinux 0xfd49986b driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0xfd7f2127 ps3_vuart_port_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xfd8d4333 remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0xfdcba4b8 fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xfdccf9f5 da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xfdceb2dd crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfdeafd80 inotify_inode_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0xfe5504b0 ata_noop_qc_prep
+EXPORT_SYMBOL_GPL vmlinux 0xfe6ab829 ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL vmlinux 0xfe768007 debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfeaa0c1a sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0xfeacdbbb rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0xfeb8962d sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xfeccbf5c usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0xfed0eda7 put_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0xfed1134f proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfeee1767 scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0xff0dacff ps3av_video_mute
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffe7d620 ata_port_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0xffefeccf ata_slave_link_init
diff --git a/debian.master/abi/2.6.35-2.3/powerpc/powerpc64-smp.modules b/debian.master/abi/2.6.35-2.3/powerpc/powerpc64-smp.modules
new file mode 100644
index 00000000000..6eaa84bcd54
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/powerpc/powerpc64-smp.modules
@@ -0,0 +1,2424 @@
+3c359
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+6pack
+8021q
+8139cp
+8139too
+8250
+8250_pci
+8390
+88pm860x_bl
+88pm860x_onkey
+88pm860x-ts
+9p
+9pnet
+9pnet_rdma
+9pnet_virtio
+a100u2w
+a3d
+aacraid
+ab3100
+ab3100-otp
+abyss
+ac97_bus
+acecad
+acenic
+act200l-sir
+act_gact
+act_ipt
+actisys-sir
+act_mirred
+act_nat
+act_pedit
+act_police
+act_simple
+act_skbedit
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7414
+ad7418
+ad7877
+ad7879
+adcxx
+adfs
+adi
+adis16255
+adm1021
+adm1025
+adm1026
+adm1029
+adm1031
+adm8211
+adm9240
+adp5520_bl
+adp5520-gpio
+adp5520-keys
+adp5588-gpio
+adp5588-keys
+adp8860_bl
+ads7846
+ads7871
+adt7411
+adt7462
+adt7470
+adt7475
+adutux
+adv7170
+adv7175
+adv7180
+adv7343
+aes_generic
+af_802154
+af9013
+affs
+af_key
+af-rxrpc
+agpgart
+ah4
+ah6
+ahci
+ahci_platform
+aic79xx
+aic7xxx
+aic94xx
+aiptek
+aircable
+airo
+airo_cs
+airport
+ak881x
+alauda
+ali-ircc
+altera_jtaguart
+altera_ps2
+altera_uart
+amc6821
+amd8111e
+analog
+ansi_cprng
+anubis
+aoe
+apbuart
+appledisplay
+appletalk
+appletouch
+applicom
+ar7part
+ar9170usb
+arc4
+arcmsr
+arcnet
+arc-rawmode
+arc-rimi
+ark3116
+arkfb
+arptable_filter
+arp_tables
+arpt_mangle
+asc7621
+asix
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+ata_generic
+ata_piix
+atbm8830
+aten
+ath
+ath3k
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atm
+atmel
+atmel_cs
+atmel_pci
+atmtcp
+atp870u
+atxp1
+au0828
+au8522
+aufs
+authenc
+auth_rpcgss
+autofs
+autofs4
+ax25
+axnet_cs
+b2c2-flexcop
+b2c2-flexcop-pci
+b2c2-flexcop-usb
+b43
+b43legacy
+b44
+batman-adv
+baycom_par
+baycom_ser_fdx
+baycom_ser_hdx
+bcm203x
+bcm3510
+bcm5974
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfs
+bfusb
+binfmt_misc
+block2mtd
+blowfish
+bluecard_cs
+bluetooth
+bnep
+bnx2
+bnx2i
+bnx2x
+bonding
+bpa10x
+bpck
+bpqether
+bq24022
+bq27x00_battery
+br2684
+bridge
+broadcom
+broadsheetfb
+bsd_comp
+bt3c_cs
+bt819
+bt856
+bt866
+bt878
+btcx-risc
+bt_drv
+btmrvl
+btmrvl_sdio
+btrfs
+btsdio
+bttv
+btuart_cs
+btusb
+bw-qcam
+c67x00
+cachefiles
+cafe_ccic
+cafe_nand
+caif
+caif_serial
+caif_socket
+camellia
+can
+can-bcm
+can-dev
+can-raw
+capmode
+carminefb
+cassini
+cast5
+cast6
+catc
+cb710
+cb710-mmc
+cciss
+cdc-acm
+cdc_eem
+cdc_ether
+cdc-phonet
+cdc_subset
+cdc-wdm
+ceph
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+ch
+ch341
+ch7006
+chipreg
+chnl_net
+cicada
+cifs
+cirrusfb
+clip
+cls_basic
+cls_flow
+cls_fw
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cn
+cnic
+cobra
+coda
+com20020
+com20020_cs
+com20020-pci
+com90io
+com90xx
+comm
+configfs
+core
+cp210x
+cpia
+cpia2
+cpia_pp
+cpia_usb
+cpufreq_spudemand
+cpufreq_stats
+cpu-notifier-error-inject
+c-qcam
+cramfs
+crc32c
+crc7
+crc-ccitt
+crc-itu-t
+crc-t10dif
+cryptd
+cryptoloop
+crypto_null
+crystalhd
+cs5345
+cs53l32a
+cs5535-gpio
+cts
+cuse
+cx18
+cx18-alsa
+cx22700
+cx22702
+cx231xx
+cx231xx-alsa
+cx231xx-dvb
+cx2341x
+cx23885
+cx24110
+cx24113
+cx24116
+cx24123
+cx25840
+cx8800
+cx8802
+cx88-alsa
+cx88-blackbird
+cx88-dvb
+cx88-vp3054-i2c
+cx88xx
+cxacru
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cxt1e1
+cyber2000fb
+cyberjack
+cyclades
+cyclomx
+cycx_drv
+cypress_cy7c63
+cypress_m8
+cytherm
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+DAC960
+davicom
+db9
+dc395x
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dccp_probe
+de2104x
+de4x5
+de600
+de620
+decnet
+deflate
+defxx
+denali
+des_generic
+dib0070
+dib0090
+dib3000mb
+dib3000mc
+dib7000m
+dib7000p
+dib8000
+dibx000_common
+digi_acceleport
+diskonchip
+display
+dl2k
+dlci
+dlm
+dm1105
+dm9601
+dm-crypt
+dme1737
+dmfe
+dm-log
+dm-mirror
+dm-multipath
+dm-queue-length
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dmx3191d
+dm-zero
+dnet
+dn_rtmsg
+doc2000
+doc2001
+doc2001plus
+docecc
+docprobe
+drm
+drm_kms_helper
+ds1621
+ds1682
+ds2482
+ds2490
+ds2760_battery
+ds2782_battery
+ds3000
+dsbr100
+dscc4
+dst
+dst_ca
+dstr
+dt3155
+dt3155v4l
+dtl1_cs
+dummy
+dv1394
+dvb-bt8xx
+dvb-core
+dvb-pll
+dvb-ttpci
+dvb-ttusb-budget
+dvb-usb
+dvb-usb-a800
+dvb-usb-af9005
+dvb-usb-af9005-remote
+dvb-usb-af9015
+dvb-usb-anysee
+dvb-usb-au6610
+dvb-usb-az6027
+dvb-usb-ce6230
+dvb-usb-cinergyT2
+dvb-usb-cxusb
+dvb-usb-dib0700
+dvb-usb-dibusb-common
+dvb-usb-dibusb-mb
+dvb-usb-dibusb-mc
+dvb-usb-digitv
+dvb-usb-dtt200u
+dvb-usb-dtv5100
+dvb-usb-dw2102
+dvb-usb-friio
+dvb-usb-gl861
+dvb-usb-gp8psk
+dvb-usb-m920x
+dvb-usb-nova-t-usb2
+dvb-usb-opera
+dvb-usb-ttusb2
+dvb-usb-umt-010
+dvb-usb-vp702x
+dvb-usb-vp7045
+dw_spi_pci
+dynapro
+e100
+e1000
+e1000e
+earth-pt1
+eata
+ebt_802_3
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_ulog
+ebt_vlan
+econet
+edac_core
+eeprom
+eeprom_93cx6
+eeti_ts
+efs
+elo
+em28xx
+em28xx-dvb
+emc1403
+em_cmp
+emi26
+emi62
+em_meta
+em_nbyte
+empeg
+ems_pci
+ems_usb
+em_text
+emu10k1-gp
+em_u32
+eni
+enic
+epat
+epca
+epia
+epic100
+eql
+esi-sir
+esp4
+esp6
+et1011c
+et61x251
+eth1394
+ethoc
+evbug
+evdev
+exofs
+exportfs
+f71805f
+f71882fg
+f75375s
+farsync
+fat
+faulty
+fcoe
+fcrypt
+fdomain
+fdomain_cs
+fealnx
+ff-memless
+firedtv
+fit2
+fit3
+floppy
+fm801-gp
+fmvj18x_cs
+forcedeth
+fore_200e
+freevxfs
+friq
+frpw
+fscache
+ftdi-elan
+ftdi_sio
+ftl
+fujitsu_ts
+funsoft
+g760a
+gadgetfs
+gamecon
+gameport
+garmin_gps
+garp
+g_audio
+g_cdc
+gdth
+generic
+generic_bl
+gen_probe
+g_ether
+gf128mul
+gf2k
+g_ffs
+g_file_storage
+gfs2
+ghash-generic
+g_hid
+girbil-sir
+gl518sm
+gl520sm
+gl620a
+gluebi
+g_mass_storage
+g_midi
+g_nokia
+gpio-addr-flash
+gpio_keys
+gpio_mouse
+gpio_vbus
+g_printer
+grip
+grip_mp
+g_serial
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_stk014
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_tv8532
+gspca_vc032x
+gspca_zc3xx
+gtco
+guillemot
+gunze
+g_webcam
+gxt4500
+g_zero
+hamachi
+hampshire
+hangcheck-timer
+hci_uart
+hci_vhci
+hdlc
+hdlc_cisco
+hdlcdrv
+hdlc_fr
+hdlc_ppp
+hdlc_raw
+hdlc_raw_eth
+hdlc_x25
+hdpvr
+he
+hexium_gemini
+hexium_orion
+hfs
+hfsplus
+hid
+hid-3m-pct
+hid-a4tech
+hid-apple
+hid-belkin
+hid-cando
+hid-cherry
+hid-chicony
+hid-cypress
+hid-drff
+hid-egalax
+hid-ezkey
+hid-gaff
+hid-gyration
+hid-kensington
+hid-kye
+hid-logitech
+hid-magicmouse
+hid-microsoft
+hid-monterey
+hid-mosart
+hid-ntrig
+hid-ortek
+hidp
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-prodikeys
+hid-quanta
+hid-roccat
+hid-roccat-kone
+hid-samsung
+hid-sjoy
+hid-sony
+hid-stantum
+hid-sunplus
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-wacom
+hid-zpff
+hid-zydacron
+hopper
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hp100
+hp4x
+hpfs
+hpilo
+hpsa
+hptiop
+hso
+htc-pasic3
+hwa-hc
+hwa-rc
+hwmon-vid
+i1480-dfu-usb
+i1480-est
+i1480u-wlp
+i2400m
+i2400m-sdio
+i2400m-usb
+i2c-algo-pca
+i2c-ali1535
+i2c-ali1563
+i2c-ali15x3
+i2c-amd756
+i2c-amd8111
+i2c-dev
+i2c-i801
+i2c-isch
+i2c-matroxfb
+i2c-nforce2
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-simtec
+i2c-sis5595
+i2c-sis630
+i2c-sis96x
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-via
+i2c-viapro
+i2c-xiic
+i2o_block
+i2o_bus
+i2o_core
+i2o_proc
+i2o_scsi
+i5k_amb
+i82092
+ib_addr
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_mad
+ibmaem
+ibmcam
+ibmpex
+ib_mthca
+ibmtr_cs
+ib_qib
+ib_sa
+ib_srp
+ib_ucm
+ib_umad
+ib_uverbs
+icplus
+ics932s401
+idmouse
+idt77252
+ieee1394
+ieee802154
+ifb
+iforce
+igbvf
+ili9320
+imm
+imon
+inexio
+inftl
+initio
+input-polldev
+int51x1
+intel_vr_nor
+interact
+ioc4
+io_edgeport
+io_ti
+iowarrior
+ip2
+ip6_queue
+ip6table_filter
+ip6table_mangle
+ip6table_raw
+ip6_tables
+ip6table_security
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_LOG
+ip6t_mh
+ip6t_REJECT
+ip6t_rt
+ip6_tunnel
+ipaq
+ipcomp
+ipcomp6
+ipddp
+ipg
+ip_gre
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_poweroff
+ipmi_si
+ipmi_watchdog
+ip_queue
+ips
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+ip_tables
+iptable_security
+ipt_addrtype
+ipt_ah
+ipt_CLUSTERIP
+ipt_ecn
+ipt_ECN
+ipt_LOG
+ipt_MASQUERADE
+ipt_NETMAP
+ipt_REDIRECT
+ipt_REJECT
+ipt_ULOG
+ipv6
+ip_vs
+ip_vs_dh
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_nq
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ipw
+ipw2100
+ipw2200
+ipx
+ircomm
+ir-common
+ircomm-tty
+ir-core
+irda
+irda-usb
+ir-jvc-decoder
+ir-kbd-i2c
+irlan
+ir-nec-decoder
+irnet
+ir-rc5-decoder
+ir-rc6-decoder
+ir-sony-decoder
+irtty-sir
+ir-usb
+iscsi_tcp
+iscsi_trgt
+isight_firmware
+isl29003
+isl6405
+isl6421
+isofs
+isp116x-hcd
+isp1362-hcd
+isp1760
+istallion
+it87
+it8761e_gpio
+itd1000
+iuu_phoenix
+ivtv
+ivtvfb
+iw_c2
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwlagn
+iwlcore
+iwmc3200top
+iwmc3200wifi
+ixgb
+ixgbe
+ixgbevf
+ixj
+ixj_pcmcia
+janz-cmodio
+janz-ican3
+janz-ttl
+jedec_probe
+jffs2
+jfs
+jme
+joydev
+joydump
+jsm
+kafs
+kaweth
+kbic
+kbtab
+keyspan
+keyspan_pda
+keyspan_remote
+khazad
+kingsun-sir
+kl5kusb105
+kobil_sct
+konicawc
+ks0108
+ks0127
+ks8842
+ks8851
+ks8851_mll
+ks959-sir
+ksdazzle-sir
+ksz884x
+ktti
+kvaser_pci
+kyrofb
+l2cap
+l2tp_core
+l2tp_debugfs
+l2tp_ppp
+l4f00242t03
+l64781
+lanai
+lapb
+lapbether
+lcd
+ldusb
+lec
+leds-88pm860x
+leds-adp5520
+leds-bd2802
+leds-da903x
+leds-dac124s085
+leds-lp3944
+leds-lt3593
+leds-mc13783
+leds-regulator
+leds-wm831x-status
+leds-wm8350
+ledtrig-backlight
+ledtrig-default-on
+ledtrig-gpio
+legousbtower
+lgdt3305
+lgdt330x
+lgs8gxx
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libcrc32c
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libosd
+libsas
+libsrp
+lightning
+linear
+lirc_atiusb
+lirc_bt829
+lirc_dev
+lirc_ene0100
+lirc_i2c
+lirc_igorplugusb
+lirc_imon
+lirc_it87
+lirc_ite8709
+lirc_mceusb
+lirc_sasem
+lirc_serial
+lirc_sir
+lirc_streamzap
+lirc_ttusbir
+lis3lv02d
+lis3lv02d_i2c
+lis3lv02d_spi
+litelink-sir
+lkkbd
+llc2
+ll_temac
+lm63
+lm70
+lm73
+lm75
+lm77
+lm78
+lm80
+lm83
+lm8323
+lm85
+lm87
+lm90
+lm92
+lm93
+lm95241
+lms283gf05
+lnbp21
+lockd
+loop
+lp
+lp3971
+lpc_sch
+lpddr_cmds
+lpfc
+lrw
+ltc4215
+ltc4245
+ltv350qv
+lxt
+m25p80
+m52790
+ma600-sir
+mac80211
+mac80211_hwsim
+macvlan
+magellan
+mantis
+mantis_core
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+matrix_keypad
+matroxfb_maven
+matrox_w1
+max1111
+max1586
+max1619
+max17040_battery
+max2165
+max3100
+max6650
+max6875
+max7300
+max7301
+max730x
+max732x
+max7359_keypad
+max8649
+max8660
+max8925_bl
+max8925_onkey
+max8925_power
+max8925-regulator
+mb862xxfb
+mb862xxfb_accel
+mb86a16
+mc13783-adc
+mc13783-core
+mc13783-regulator
+mc13783_ts
+mc33880
+mc44s803
+mcp2120-sir
+mcp23s08
+mcp251x
+mcs5000_ts
+mcs7780
+mcs7830
+mct_u232
+md4
+mdc800
+mdio
+mdio-bitbang
+mdio-gpio
+md-mod
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mem2mem_testdev
+metronomefb
+mga
+michael_mic
+micrel
+microtek
+mii
+minix
+mk712
+mkiss
+mlx4_core
+mlx4_en
+mlx4_ib
+mmc_block
+mmc_core
+mmc_spi
+mos7720
+mos7840
+moto_modem
+moxa
+mpoa
+mpt2sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+msdos
+msp3400
+mt2060
+mt20xx
+mt2131
+mt2266
+mt312
+mt352
+mt9m001
+mt9m111
+mt9t031
+mt9t112
+mt9v011
+mt9v022
+mtd
+mtd_blkdevs
+mtdblock
+mtdblock_ro
+mtdchar
+mtdconcat
+mtd_dataflash
+mtd_nandecctest
+mtd_oobtest
+mtdoops
+mtd_pagetest
+mtdram
+mtd_readtest
+mtd_speedtest
+mtd_stresstest
+mtd_subpagetest
+mtd_torturetest
+mtouch
+multipath
+mwl8k
+mxl5005s
+mxl5007t
+myri10ge
+nand
+nand_ecc
+nand_ids
+nandsim
+national
+natsemi
+navman
+nbd
+ncpfs
+ne2k-pci
+neofb
+net1080
+net2280
+netconsole
+netrom
+netxen_nic
+newtonkbd
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_ipv4
+nf_conntrack_ipv6
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_proto_dccp
+nf_conntrack_proto_gre
+nf_conntrack_proto_sctp
+nf_conntrack_proto_udplite
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_proto_dccp
+nf_nat_proto_gre
+nf_nat_proto_sctp
+nf_nat_proto_udplite
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nfnetlink
+nfnetlink_log
+nfnetlink_queue
+nfs
+nfs_acl
+nfsd
+nftl
+nf_tproxy_core
+ngene
+n_hdlc
+nilfs2
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp437
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+nop-usb-xceiv
+nouveau
+n_r3964
+ns558
+ns83820
+nsc-ircc
+ntfs
+nvidiafb
+nxt200x
+nxt6000
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stackglue
+ocfs2_stack_o2cb
+ocfs2_stack_user
+of_mmc_spi
+of_serial
+ohci1394
+old_belkin-sir
+olympic
+omfs
+omninet
+on20
+on26
+onenand
+onenand_sim
+opencores-kbd
+oprofile
+opticon
+option
+or51132
+or51211
+orinoco
+orinoco_cs
+orinoco_usb
+osd
+osdblk
+osst
+oti6858
+output
+ov7670
+ov772x
+ov9640
+ovcamchip
+oxu210hp-hcd
+p54common
+p54pci
+p54spi
+p54usb
+p8023
+paride
+parkbd
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+pata_amd
+pata_atp867x
+pata_cs5520
+pata_efar
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_macio
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_of_platform
+pata_oldpiix
+pata_pcmcia
+pata_pdc2027x
+pata_platform
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sis
+pata_sl82c105
+pata_triflex
+pata_via
+pc87360
+pc87427
+pca953x
+pcbc
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf857x
+pcf8591
+pci
+pci200syn
+pcilynx
+pcips2
+pcmcia
+pcmcia_core
+pcmciamtd
+pcmcia_rsrc
+pcnet32
+pcnet_cs
+pcrypt
+pcspkr
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pdc_adma
+pegasus
+penmount
+pf
+pg
+phantom
+phonedev
+phonet
+phram
+physmap
+physmap_of
+pktcdvd
+pktgen
+pl2303
+platform_lcd
+plat_nand
+plat-ram
+plip
+plusb
+pluto2
+plx_pci
+pm2fb
+pm3fb
+pm8001
+pmac_zilog
+pmc551
+pmcraid
+pn_pep
+poseidon
+powermate
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_generic
+ppp_mppe
+pppoatm
+pppoe
+pppox
+ppp_synctty
+pps_core
+pps-ldisc
+prism54
+ps3disk
+ps3flash
+ps3_gelic
+ps3-lpm
+ps3rom
+ps3stor_lib
+ps3vram
+psmouse
+pt
+pvrusb2
+pwc
+qcaux
+qcserial
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas408
+qnx4
+qsemi
+qt1010
+quickcam_messenger
+quota_tree
+quota_v1
+quota_v2
+r128
+r8169
+r8187se
+r8192u_usb
+r852
+r8a66597-hcd
+rack-meter
+radeon
+radio-gemtek-pci
+radio-i2c-si470x
+radio-maestro
+radio-maxiradio
+radio-mr800
+radio-si4713
+radio-tea5764
+radio-timb
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid6test
+raid_class
+ramoops
+ramzswap
+raw
+raw1394
+ray_cs
+rc-adstech-dvb-t-pci
+rc-apac-viewcomp
+rc-asus-pc39
+rc-ati-tv-wonder-hd-600
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avertv-303
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-empty
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv2
+rc-encore-enltv-fm53
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge-new
+rc-imon-mce
+rc-imon-pad
+rc-iodata-bctv7e
+rc-kaiomy
+rc-kworld-315u
+rc-kworld-plus-tv-analog
+rc-manli
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc5-hauppauge-new
+rc-rc5-tv
+rc-real-audio-220-32-keys
+rc-tbs-nec
+rc-terratec-cinergy-xs
+rc-tevii-nec
+rc-tt-1500
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-winfast
+rc-winfast-usbii-deluxe
+rdc321x-gpio
+rdc321x-southbridge
+rdma_cm
+rdma_ucm
+redboot
+reed_solomon
+reiserfs
+rfc1051
+rfc1201
+rfcomm
+rfd_ftl
+rio500
+riscom8
+rivafb
+rj54n1cb0c
+rmd128
+rmd160
+rmd256
+rmd320
+rndis_host
+rocket
+romfs
+rose
+rotary_encoder
+rpcsec_gss_krb5
+rpcsec_gss_spkm3
+rrunner
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00pci
+rt2x00usb
+rt61pci
+rt73usb
+rtc-ab3100
+rtc-ab8500
+rtc-bq32k
+rtc-bq4802
+rtc-cmos
+rtc_cmos_setup
+rtc-ds1286
+rtc-ds1305
+rtc-ds1307
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1742
+rtc-ds3234
+rtc-fm3130
+rtc-generic
+rtc-isl1208
+rtc-m41t80
+rtc-m41t94
+rtc-m48t35
+rtc-m48t59
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max8925
+rtc-mc13783
+rtc-msm6242
+rtc-pcf2123
+rtc-pcf50633
+rtc-pcf8563
+rtc-pcf8583
+rtc-ps3
+rtc-r9701
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-stk17ta8
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtl8150
+rtl8187
+rxkad
+s1d13xxxfb
+s2255drv
+s2io
+s3fb
+s5h1409
+s5h1411
+s5h1420
+s6e63m0
+saa5246a
+saa5249
+saa6588
+saa6752hs
+saa7110
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-dvb
+saa7134-empress
+saa7146
+saa7146_vv
+saa7164
+saa717x
+saa7185
+saa7191
+saa7706h
+safe_serial
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savage
+savagefb
+sbp2
+sc92031
+sch_atm
+sch_cbq
+sch_drr
+sch_dsmark
+sch_gpio
+sch_gred
+sch_hfsc
+sch_htb
+sch_ingress
+sch_multiq
+sch_netem
+sch_prio
+sch_red
+sch_sfq
+sch_tbf
+sch_teql
+sco
+scsi_debug
+scsi_dh
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_tgt
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+scsi_wait_scan
+sctp
+sctp_probe
+sdhci
+sdhci-of
+sdhci-pci
+sdhci-pltfm
+sdio_uart
+sd_mod
+sdricoh_cs
+se401
+seed
+serial_core
+serial_cs
+serio_raw
+sermouse
+serpent
+serport
+sfc
+sg
+sha1_generic
+sha256_generic
+sha512_generic
+sht15
+si21xx
+si4713-i2c
+sidewinder
+siemens_mpi
+sierra
+sierra_net
+sir-dev
+sis
+sis190
+sis5595
+sis900
+sisfb
+sisusbvga
+sit
+sja1000
+sja1000_of_platform
+sja1000_platform
+skfp
+skge
+sky2
+sl811_cs
+sl811-hcd
+slhc
+slip
+slram
+sm501
+sm501fb
+sm7xx
+smbfs
+smc91c92_cs
+sm_common
+smsc
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc9420
+smsc95xx
+smsc-ircc2
+smsdvb
+smsmdtv
+smssdio
+smsusb
+sn9c102
+snd
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-als300
+snd-als4000
+snd-aoa
+snd-aoa-codec-onyx
+snd-aoa-codec-tas
+snd-aoa-codec-toonie
+snd-aoa-fabric-layout
+snd-aoa-i2sbus
+snd-aoa-soundbus
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-cs5530
+snd-cs5535audio
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-atihdmi
+snd-hda-codec-ca0110
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-idt
+snd-hda-codec-intelhdmi
+snd-hda-codec-nvhdmi
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel8x0
+snd-intel8x0m
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-page-alloc
+snd-pcm
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-powermac
+snd_ps3
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-sb16-dsp
+snd-sb-common
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ad1836
+snd-soc-ad193x
+snd-soc-ad73311
+snd-soc-ads117x
+snd-soc-ak4104
+snd-soc-ak4535
+snd-soc-ak4642
+snd-soc-ak4671
+snd-soc-core
+snd-soc-cs4270
+snd-soc-da7210
+snd-soc-l3
+snd-soc-max9877
+snd-soc-pcm3008
+snd-soc-spdif
+snd-soc-ssm2602
+snd-soc-tlv320aic23
+snd-soc-tlv320aic26
+snd-soc-tlv320aic3x
+snd-soc-tlv320dac33
+snd-soc-tpa6130a2
+snd-soc-twl4030
+snd-soc-twl6040
+snd-soc-uda134x
+snd-soc-uda1380
+snd-soc-wm2000
+snd-soc-wm8350
+snd-soc-wm8400
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8727
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8776
+snd-soc-wm8900
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8940
+snd-soc-wm8955
+snd-soc-wm8960
+snd-soc-wm8961
+snd-soc-wm8971
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8988
+snd-soc-wm8990
+snd-soc-wm8993
+snd-soc-wm8994
+snd-soc-wm9081
+snd-soc-wm9090
+snd-soc-wm-hubs
+snd-sonicvibes
+snd-tea575x-tuner
+snd-timer
+snd-trident
+snd-usb-audio
+snd-usb-caiaq
+snd-usbmidi-lib
+snd-usb-usx2y
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-vx222
+snd-vx-lib
+snd-vxpocket
+snd-ymfpci
+soc_camera
+soc_camera_platform
+soc_mediabus
+softdog
+solos-pci
+soundcore
+sp8870
+sp887x
+spaceball
+spaceorb
+sparse-keymap
+spcp8x5
+specialix
+spectrum_cs
+speedtch
+spi_bitbang
+spi_butterfly
+spidev
+spi_gpio
+spi_lm70llp
+spufs
+squashfs
+sr_mod
+ssb
+ssfdc
+sst25l
+st
+stallion
+starfire
+stb0899
+stb6000
+stb6100
+st_drv
+ste10Xp
+stex
+stinger
+stir4200
+stowaway
+stp
+stv0288
+stv0297
+stv0299
+stv0900
+stv090x
+stv6110
+stv6110x
+stv680
+sundance
+sungem
+sungem_phy
+sunhme
+suni
+sunkbd
+sunrpc
+svcrdma
+svgalib
+sx8
+sym53c500_cs
+sym53c8xx
+symbolserial
+synaptics_i2c
+synclink
+synclink_cs
+synclink_gt
+synclinkmp
+sysv
+tca6416-keypad
+tcm825x
+tcp_bic
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_probe
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tcrypt
+tda10023
+tda10048
+tda1004x
+tda10086
+tda18271
+tda7432
+tda8083
+tda826x
+tda827x
+tda8290
+tda9840
+tda9875
+tda9887
+tdfx
+tdo24m
+tea
+tea5761
+tea5767
+tea6415c
+tea6420
+tef6862
+tehuti
+tekram-sir
+test_power
+tg3
+tgr192
+therm_pm72
+thmc50
+ths7303
+ti_dac7512
+tifm_7xx1
+tifm_core
+tifm_sd
+timberdale
+timbuart
+timeriomem-rng
+tipc
+ti_usb_3410_5052
+tlan
+tle62x0
+tlv320aic23b
+tm6000
+tm6000-alsa
+tmdc
+tmiofb
+tmp102
+tmp401
+tmp421
+tms380tr
+tmscsim
+tmspci
+toim3232-sir
+touchit213
+touchright
+touchwin
+tpm
+tpm_atmel
+tpm_nsc
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+trancevibrator
+tridentfb
+ts_bm
+tsc2007
+ts_fsm
+ts_kmp
+tsl2550
+ttm
+ttpci-eeprom
+ttusb_dec
+ttusbdecfe
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+turbografx
+tvaudio
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw9910
+twidjoy
+twl4030-gpio
+twl4030_keypad
+twl4030-pwrbutton
+twl4030-usb
+twl4030-vibra
+twl4030_wdt
+twofish
+twofish_common
+typhoon
+u132-hcd
+uartlite
+ubi
+ubifs
+ucb1400_core
+ucb1400_ts
+udf
+ueagle-atm
+ufs
+uinput
+uio
+uio_aec
+uio_cif
+uio_netx
+uio_pci_generic
+uio_pdrv
+uio_pdrv_genirq
+uio_sercos3
+uli526x
+ultracam
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-sddr09
+ums-sddr55
+ums-usbat
+uninorth-agp
+upd64031a
+upd64083
+usb8xxx
+usbatm
+usb_debug
+usbhid
+usblcd
+usbled
+usblp
+usbnet
+usbserial
+usbsevseg
+usb-storage
+usbtest
+usbtmc
+usbtouchscreen
+usbvideo
+usbvision
+usb_wwan
+userspace-consumer
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l1-compat
+v4l2-common
+v4l2-compat-ioctl32
+v4l2-int-device
+v4l2-mem2mem
+vcan
+ves1820
+ves1x93
+veth
+vfat
+vgastate
+vgg2432a4
+vhost_net
+via
+via686a
+viafb
+via-ircc
+via-rhine
+via-sdmmc
+via-velocity
+vicam
+video1394
+videobuf-core
+videobuf-dma-contig
+videobuf-dma-sg
+videobuf-dvb
+videobuf-vmalloc
+videodev
+virtio
+virtio_balloon
+virtio_blk
+virtio_console
+virtio_net
+virtio_pci
+virtio_ring
+virtio-rng
+virtual
+visor
+vitesse
+vivopay-serial
+vlsi_ir
+vmac
+vmwgfx
+vmxnet3
+vp27smpx
+vpx3220
+vsxxxaa
+vt1211
+vt8231
+vt8623fb
+vxge
+w1_bq27000
+w1_ds2431
+w1_ds2433
+w1_ds2760
+w1-gpio
+w1_smem
+w1_therm
+w83627ehf
+w83627hf
+w83781d
+w83791d
+w83792d
+w83793
+w83977af_ir
+w83l785ts
+w9966
+w9968cf
+wacom_w8001
+walkera0701
+wanrouter
+wanxl
+warrior
+wbsd
+wdrtas
+wdt_pci
+whci
+whci-hcd
+whc-rc
+whiteheat
+wimax
+winbond-840
+windfarm_core
+windfarm_cpufreq_clamp
+windfarm_lm75_sensor
+windfarm_max6690_sensor
+windfarm_pid
+windfarm_pm112
+windfarm_pm121
+windfarm_pm81
+windfarm_pm91
+windfarm_smu_controls
+windfarm_smu_sat
+windfarm_smu_sensors
+wire
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1271
+wl1271_spi
+wl3501_cs
+wlags49_h25_cs
+wlags49_h2_cs
+wlp
+wm831x_backup
+wm831x_bl
+wm831x-dcdc
+wm831x-gpio
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x_power
+wm831x_wdt
+wm8350-gpiolib
+wm8350-hwmon
+wm8350_power
+wm8350-regulator
+wm8350_wdt
+wm8400-core
+wm8400-regulator
+wm8739
+wm8775
+wm8994-gpio
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusbcore
+wusb-wa
+x25
+x25_asy
+xc5000
+xcbc
+xfrm4_mode_beet
+xfrm4_mode_transport
+xfrm4_mode_tunnel
+xfrm4_tunnel
+xfrm6_mode_beet
+xfrm6_mode_ro
+xfrm6_mode_transport
+xfrm6_mode_tunnel
+xfrm6_tunnel
+xfrm_ipcomp
+xfrm_user
+xfs
+xgifb
+xhci-hcd
+xilinx_ps2
+xirc2ps_cs
+xircom_cb
+xor
+xpad
+xprtrdma
+x_tables
+xt_CLASSIFY
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlimit
+xt_connmark
+xt_CONNSECMARK
+xt_conntrack
+xt_CT
+xt_dccp
+xt_dscp
+xt_DSCP
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_HL
+xtkbd
+xt_LED
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_NFLOG
+xt_NFQUEUE
+xt_NOTRACK
+xt_osf
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_realm
+xt_recent
+xts
+xt_sctp
+xt_SECMARK
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_TCPMSS
+xt_tcpudp
+xt_TEE
+xt_time
+xt_TPROXY
+xt_TRACE
+xt_u32
+xusbatm
+xvmalloc
+yam
+yealink
+yellowfin
+yenta_socket
+zc0301
+zd1201
+zd1211rw
+zhenhua
+zio
+zl10036
+zl10039
+zl10353
+zlib
+zlib_deflate
+zr364xx
diff --git a/debian.master/abi/2.6.35-2.3/sparc/sparc64 b/debian.master/abi/2.6.35-2.3/sparc/sparc64
new file mode 100644
index 00000000000..6a035654223
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/sparc/sparc64
@@ -0,0 +1,9081 @@
+EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble
+EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle
+EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k
+EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks
+EXPORT_SYMBOL drivers/atm/suni 0xf1a72887 suni_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x082b06c2 pi_write_block
+EXPORT_SYMBOL drivers/block/paride/paride 0x158b96c2 pi_schedule_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x1ab2cc45 pi_write_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0x3c68e355 pi_disconnect
+EXPORT_SYMBOL drivers/block/paride/paride 0x40a25363 pi_release
+EXPORT_SYMBOL drivers/block/paride/paride 0x47161714 paride_register
+EXPORT_SYMBOL drivers/block/paride/paride 0x474405b2 pi_read_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0x7f0f6073 pi_read_block
+EXPORT_SYMBOL drivers/block/paride/paride 0x7f8d5cac pi_connect
+EXPORT_SYMBOL drivers/block/paride/paride 0xc1b86f64 paride_unregister
+EXPORT_SYMBOL drivers/block/paride/paride 0xc5baafda pi_do_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0xf212bf95 pi_init
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x246be3bb cdrom_get_media_event
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x256c9a8e cdrom_mode_sense
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x344adbd5 init_cdrom_command
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x39b93dcb cdrom_release
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x567275f4 cdrom_media_changed
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x65a464dd register_cdrom
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x73353a54 cdrom_open
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x8d659431 unregister_cdrom
+EXPORT_SYMBOL drivers/cdrom/cdrom 0xb7c8d093 cdrom_ioctl
+EXPORT_SYMBOL drivers/cdrom/cdrom 0xcb246a9d cdrom_number_of_slots
+EXPORT_SYMBOL drivers/cdrom/cdrom 0xd07244d5 cdrom_mode_select
+EXPORT_SYMBOL drivers/cdrom/cdrom 0xeaac503b cdrom_get_last_written
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1720fb60 ipmi_create_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x19391a03 ipmi_request_supply_msgs
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x38159345 ipmi_unregister_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x47f62510 ipmi_register_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c59ba71 ipmi_request_settime
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4fb76ba2 ipmi_get_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5b879c68 ipmi_set_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x68311f4d ipmi_smi_watcher_register
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9424a752 ipmi_smi_msg_received
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9e88009a ipmi_register_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xab962ad5 ipmi_destroy_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xaf029367 ipmi_smi_watcher_unregister
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb093bf7b ipmi_set_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb859b3c0 ipmi_smi_add_proc_entry
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbb9fe5fe ipmi_unregister_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc35c61a2 ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc379015d ipmi_set_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcb0606ee ipmi_poll_interface
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xcfdbecf8 ipmi_get_version
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xd6646fe2 ipmi_get_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4aeda96 ipmi_get_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xee383b4b ipmi_free_recv_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf54efcff ipmi_set_gets_events
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x00b51acc drm_fb_helper_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x047f809f drm_fb_helper_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x05f5cdf0 drm_kms_helper_poll_disable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1bc861d3 drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x20f552be drm_fb_helper_check_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2ab5a5f7 drm_fb_helper_fill_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d651f25 drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3064eca3 drm_helper_disable_unused_functions
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x33862988 drm_fb_helper_blank
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x40601564 i2c_dp_aux_add_bus
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x41c772d7 drm_fb_helper_set_par
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5779fc21 drm_kms_helper_poll_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6c314c3d drm_crtc_helper_set_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7a2d275b drm_helper_hpd_irq_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x81d0747d drm_helper_resume_force_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8931820d drm_fb_helper_fill_fix
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8ddd9050 drm_helper_connector_dpms
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x928011bf drm_crtc_helper_set_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x935975c5 drm_fb_helper_setcmap
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9ec16251 drm_kms_helper_poll_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc4833151 drm_kms_helper_poll_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xccc4f2b3 drm_fb_helper_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd07ba70c drm_fb_helper_single_add_all_connectors
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd28c678c drm_fb_helper_pan_display
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd7c33a5d drm_fb_helper_single_fb_probe
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xef1a7f54 drm_fb_helper_initial_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf4e21516 drm_helper_encoder_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfac1990c drm_helper_crtc_in_use
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0178c356 ttm_bo_wait_cpu
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0b5ee647 ttm_lock_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x115a6a02 ttm_bo_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x14f886c3 ttm_mem_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1665537a ttm_bo_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1878fa75 ttm_object_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x20254bc0 ttm_bo_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2327aad9 ttm_bo_init_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x291ab8e7 ttm_bo_synccpu_write_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2c4bfb87 ttm_tt_populate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x31ba2463 ttm_bo_validate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x32ec5b56 ttm_bo_unmap_virtual
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x35e2a569 ttm_ref_object_base_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x36125d3d ttm_ref_object_add
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x42fea97e ttm_write_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x433346ee ttm_bo_clean_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44409a13 ttm_global_item_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4838f8e4 ttm_mem_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4b68233b ttm_read_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5767b78b ttm_bo_reserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5835143d ttm_tt_bind
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5c18f705 ttm_page_alloc_debugfs
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ca5cb47 ttm_global_item_ref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x63b35a5a ttm_object_file_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x63d7ec2d ttm_base_object_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6fb8acaf ttm_vt_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x75c4b266 ttm_bo_move_memcpy
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7cc25954 ttm_io_prot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80758117 ttm_object_file_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8145b0d7 ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x93f20e2d ttm_bo_wait
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa2c7632b ttm_suspend_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa387ddc2 ttm_bo_evict_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa4a74bf7 ttm_bo_kunmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa6f9339c ttm_bo_swapout_all
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa9caaa09 ttm_bo_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xabb0a47d ttm_suspend_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xadd04f59 ttm_bo_kmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xae30aa32 ttm_mem_global_free
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb669fe8d ttm_mem_global_alloc
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb819a341 ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc57c4e0e ttm_bo_move_ttm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc64022a6 ttm_bo_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc9808e09 ttm_bo_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcad34c77 ttm_bo_mem_space
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcb3c037b ttm_base_object_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd3d49f2e ttm_object_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd49a2981 ttm_fbdev_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd71322f6 ttm_base_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd79db104 ttm_vt_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd895825a ttm_bo_wait_unreserved
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9ddf811 ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe123199b ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe3f20773 ttm_tt_set_placement_caching
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5531167 ttm_write_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeab50e8c ttm_bo_unreserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc9f7f92 ttm_read_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfcce372b ttm_bo_global_release
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x7611bb8f i2c_pca_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xeafa8bdc i2c_pca_add_numbered_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x00619f9c hpsb_node_fill_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x01126c60 __hpsb_register_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x028a0795 hpsb_make_readpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x047803f7 hpsb_make_streampacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x070a6e4c hpsb_bus_reset
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c782cf1 hpsb_iso_shutdown
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0f8b5a1b hpsb_set_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0fe534dc hpsb_unregister_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1144b895 hpsb_iso_n_ready
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x184e97a2 hpsb_free_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x185e5789 hpsb_set_hostinfo_key
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x193d4b3e csr1212_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1eb9e18c hpsb_selfid_complete
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x20cef1b6 hpsb_iso_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x22236f83 hpsb_remove_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x24aa5ffa hpsb_iso_xmit_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x251a6fbd hpsb_make_lockpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x26028668 hpsb_add_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x27487729 hpsb_get_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3169197f dma_region_mmap
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3958b378 hpsb_make_writepacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3b73ad4f hpsb_iso_xmit_queue_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4000c15f hpsb_iso_xmit_sync
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x44c0d522 hpsb_iso_wake
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x46d90c3a hpsb_iso_recv_set_channel_mask
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4a32e0fd hpsb_node_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4fa26bfb hpsb_selfid_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x518d4100 csr1212_get_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x51f6d0b5 hpsb_iso_stop
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5211aaeb hpsb_make_lock64packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x53b85d6d hpsb_iso_recv_listen_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5b42f132 hpsb_alloc_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5fb549ee hpsb_alloc_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x694d32d8 hpsb_make_phypacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6b96ed8c hpsb_unregister_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x72d5d00d hpsb_get_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7ab74fd7 hpsb_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7bf6e330 hpsb_set_packet_complete_task
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x7cf69bfb hpsb_iso_recv_flush
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x93c48c48 hpsb_iso_recv_release_packets
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x989c553d hpsb_protocol_class
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9b56db21 hpsb_lock
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9c00f59a hpsb_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9dac7bc5 hpsb_read_cycle_timer
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9dd06d18 hpsb_packet_success
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa652b0c4 hpsb_register_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa6cc5b45 hpsb_iso_xmit_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa8bd5d4b hpsb_update_config_rom_image
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xab0e3f1f hpsb_get_hostinfo_bykey
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb4924c37 hpsb_iso_recv_unlisten_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc827164e hpsb_reset_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcca05aac hpsb_resume_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xcf8cef29 hpsb_update_config_rom
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd1187457 hpsb_iso_recv_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd39e5443 hpsb_allocate_and_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd727c1dd hpsb_create_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd89f823c hpsb_free_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdb3dd04c hpsb_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe079fc96 hpsb_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe76f5f94 hpsb_iso_recv_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe86dd035 hpsb_unregister_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe8a9653c hpsb_send_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xee02546b hpsb_iso_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xee26c3b3 hpsb_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xf028ddf2 hpsb_destroy_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x5f6d4e51 ohci1394_stop_context
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x77d85337 ohci1394_register_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x88200b6a ohci1394_unregister_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x10faf4e5 rdma_addr_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc5d00fb6 rdma_copy_addr
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xea9ed28a rdma_resolve_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xee034f38 rdma_addr_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1e6afe5a ib_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x27d08ee6 ib_send_cm_sidr_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x347e7c58 ib_send_cm_apr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x404a9423 ib_send_cm_sidr_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x60302fe4 ib_send_cm_rtu
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x64123971 cm_class
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6f53aca4 ib_send_cm_lap
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x78619887 ib_send_cm_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x89585f7e ib_send_cm_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb5415e78 ib_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb8d6b19f ib_send_cm_drep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbb7e4f1a ib_cm_notify
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcb7be3b0 ib_send_cm_rej
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf8225127 ib_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf909ba80 ib_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfeee047f ib_send_cm_mra
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xff941fa6 ib_send_cm_dreq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x027fffbb ib_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x094bbdf6 ib_query_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x15fa1dbd ib_create_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1fcb8653 ib_destroy_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x26cbb224 ib_create_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2d6d51fc ib_free_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x329f6d27 ib_destroy_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x35971de2 ib_create_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x37a9dde1 ib_query_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x396dea02 ib_destroy_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x41a5b1a0 ib_alloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4318edce ib_get_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4421c46b ib_unregister_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x450dafdb ib_modify_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4686b2da ib_query_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x479cec2b ib_alloc_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x47bf2d6c ib_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4b235823 ib_query_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4be8980a ib_find_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53f2a1c5 ib_modify_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x61483876 ib_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6be6c396 ib_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6eb2c43f ib_modify_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6f1af15c ib_get_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x73ea635b ib_unregister_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74a67612 ib_fmr_pool_map_phys
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7c0e600a ib_fmr_pool_unmap
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e830f84 ib_find_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x80cb6e68 ib_register_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x820b3bcc ib_attach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8433f6da ib_modify_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x84481d7b ib_dealloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x86ecc366 ib_rereg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x875a0b73 ib_dereg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9117fb45 ib_umem_page_count
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x915dc7ed ib_umem_release
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94c71cef ib_destroy_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9997e437 ib_init_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9c6e94f1 ib_flush_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d399d10 ib_query_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa01966b3 ib_query_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa4f2318f ib_create_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaaa78017 ib_query_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaca04609 ib_modify_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae9018ef ib_alloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb0323d70 ib_umem_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb117602d ib_register_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1c9be75 ib_dealloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb660deeb ib_dealloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb6a98459 ib_dealloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc07454e4 ib_modify_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc24aa55e ib_find_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc4746c94 ib_get_dma_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc6009eef ib_query_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc900cbf4 ib_find_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc4eaacf ib_set_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1c662d1 ib_get_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd56933dd ib_dispatch_event
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe1875bb1 ib_resize_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe36340e6 ib_detach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe3dc0ddc ib_alloc_fast_reg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe76fae97 ib_reg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf003c499 ib_alloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf0c79240 ib_get_cached_lmc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf1dbb939 ib_alloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf6085498 ib_create_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x051d4d3b ib_redirect_mad_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x157ae1f2 ib_cancel_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x20d9fea9 ib_unregister_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x261fa655 ib_get_rmpp_segment
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x54c7a6a3 ib_register_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6b1e162e ib_process_mad_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x752e78a4 ib_free_recv_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x82eaad38 ib_post_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb7dc872b ib_modify_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd36ad7bc ib_register_mad_snoop
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd9b87c8b ib_create_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf04eaaac ib_free_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x1dd35876 ib_sa_get_mcmember_rec
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x381d6278 ib_sa_cancel_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x75246607 ib_sa_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x77308024 ib_sa_path_rec_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x824c089b ib_init_ah_from_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x86d338a1 ib_sa_service_rec_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x890eb869 ib_sa_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x90480d64 ib_sa_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe0eaa622 ib_init_ah_from_mcmember
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4480e4eb iw_cm_reject
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x4f3d068d iw_cm_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x859f2712 iw_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x9e21bfc5 iw_cm_accept
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb7fa1a9e iw_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xdbe12932 iw_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xefd5704c iw_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xfcbab3f4 iw_cm_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x05660bbf rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0b8d9aec rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x15d5995f rdma_bind_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x179faa6c rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x26510c81 rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x28ea7ce6 rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x29f62019 rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x38ace96b rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3dc06976 rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x54a835c2 rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9d5c65ea rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9ec7e964 rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa02fcf45 rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xaab88849 rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbd60d10d rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcc30fd29 rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe1f4fee8 rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf9f98a26 rdma_reject
+EXPORT_SYMBOL drivers/input/input-polldev 0x2b0a4240 input_unregister_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x7450ede4 input_free_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xa6c79b25 input_allocate_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xf3972a39 input_register_polled_device
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x2bef4e29 ad714x_probe
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xf1f8a3e3 ad714x_remove
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x1e7275f7 sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x2fed4bf9 sparse_keymap_report_event
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x4720c169 sparse_keymap_report_entry
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x8784e488 sparse_keymap_free
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xbc3002ec sparse_keymap_setup
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xc4ada791 sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04f251e8 capi20_put_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47dbfa0a capi_message2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4acd41b2 capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4c22f669 capi_ctr_suspend_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x57b4535b capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x966f2e3d capi_ctr_down
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x97fcce30 capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xbb7b9159 attach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd4869d3b capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xec429940 detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfaaa26a7 capi20_register
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x0901f587 mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x3dcfc049 mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xa3ccd92d mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xe260f00d mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x96b53de7 mISDNisar_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xd0e108a9 mISDNisar_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xaf2acc3e register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x00836518 mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x09b39a13 get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0fc2b4a9 mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1035bad7 recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x22e1d5cd mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54eedf71 mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5a61bf6f mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x66b8c517 queue_ch_frame
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8eb71d4e bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9752c7f5 recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9fddb0ad mISDN_clock_update
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa1d5fcce mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xae14f33e get_next_dframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb69a90ac mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc2acc051 mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcb8c7d73 create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd186ef9c recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd4448a8a recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd67ba37f l1_event
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe1f32fab dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf185338b confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf3db1ff5 recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf4409272 mISDN_freedchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew
+EXPORT_SYMBOL drivers/md/dm-log 0x330274c9 dm_dirty_log_type_unregister
+EXPORT_SYMBOL drivers/md/dm-log 0x8079b6bd dm_dirty_log_destroy
+EXPORT_SYMBOL drivers/md/dm-log 0x95d64219 dm_dirty_log_create
+EXPORT_SYMBOL drivers/md/dm-log 0xe2574738 dm_dirty_log_type_register
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x622f30b0 dm_exception_store_create
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x898bd9a7 dm_snap_cow
+EXPORT_SYMBOL drivers/md/dm-snapshot 0xb3e21ca8 dm_exception_store_destroy
+EXPORT_SYMBOL drivers/md/dm-snapshot 0xbe7cc74e dm_exception_store_type_register
+EXPORT_SYMBOL drivers/md/dm-snapshot 0xfda47894 dm_exception_store_type_unregister
+EXPORT_SYMBOL drivers/md/md-mod 0x0f2e2ad7 md_integrity_register
+EXPORT_SYMBOL drivers/md/md-mod 0x0f5cc1cb md_unregister_thread
+EXPORT_SYMBOL drivers/md/md-mod 0x11f81bf7 md_error
+EXPORT_SYMBOL drivers/md/md-mod 0x12a7a55d md_barrier_request
+EXPORT_SYMBOL drivers/md/md-mod 0x16139fcf md_set_array_sectors
+EXPORT_SYMBOL drivers/md/md-mod 0x31486fcd bitmap_startwrite
+EXPORT_SYMBOL drivers/md/md-mod 0x4125b249 md_write_start
+EXPORT_SYMBOL drivers/md/md-mod 0x4903157f md_wakeup_thread
+EXPORT_SYMBOL drivers/md/md-mod 0x4e6305fa bitmap_endwrite
+EXPORT_SYMBOL drivers/md/md-mod 0x5b81416a md_check_recovery
+EXPORT_SYMBOL drivers/md/md-mod 0x64eef1c5 bitmap_start_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x775188f1 bitmap_unplug
+EXPORT_SYMBOL drivers/md/md-mod 0x786fd639 md_integrity_add_rdev
+EXPORT_SYMBOL drivers/md/md-mod 0x82b5ff6c unregister_md_personality
+EXPORT_SYMBOL drivers/md/md-mod 0x88b1d0d4 md_wait_for_blocked_rdev
+EXPORT_SYMBOL drivers/md/md-mod 0x8f43bc35 bitmap_close_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x94bc6f5b md_write_end
+EXPORT_SYMBOL drivers/md/md-mod 0xa7e78bad mddev_congested
+EXPORT_SYMBOL drivers/md/md-mod 0xab34970e md_done_sync
+EXPORT_SYMBOL drivers/md/md-mod 0xc2924160 bitmap_cond_end_sync
+EXPORT_SYMBOL drivers/md/md-mod 0xe22b2949 md_check_no_bitmap
+EXPORT_SYMBOL drivers/md/md-mod 0xe9631858 md_register_thread
+EXPORT_SYMBOL drivers/md/md-mod 0xea4028f7 bitmap_end_sync
+EXPORT_SYMBOL drivers/md/md-mod 0xf24af22c register_md_personality
+EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul
+EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp
+EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv
+EXPORT_SYMBOL drivers/md/raid6_pq 0x7b85d712 raid6_empty_zero_page
+EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x1808f685 ir_raw_handler_register
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x31a2ccc8 ir_raw_handler_unregister
+EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0xf7d68412 mc44s803_attach
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x79c46ec0 xc2028_attach
+EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x9d1dd92a xc5000_attach
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x6d84b399 cx231xx_register_extension
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0x90b6555b cx231xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x21ca2879 gspca_dev_probe
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x7419b00f gspca_auto_gain_n_exposure
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xa8bca88a gspca_get_i_frame
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xe9fd644e gspca_frame_add
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0xfe8328aa gspca_disconnect
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x00b170de saa7134_dmasound_exit
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x0d4bb7d5 saa7134_tvaudio_setmute
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3564c10e saa7134_pgtable_build
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3e780b16 saa7134_devlist_lock
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x88b86b00 saa7134_set_gpio
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa042d035 saa7134_ts_unregister
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa0861ee2 saa7134_ts_register
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xa3c165ca saa7134_pgtable_alloc
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xcf02899d saa7134_set_dmabits
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xd2834125 saa7134_dmasound_init
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xda257056 saa7134_pgtable_free
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xfd5fb6e3 saa_dsp_writel
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x052b7529 soc_camera_host_unregister
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x41f50bfe soc_camera_xlate_by_fourcc
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x468dbf81 soc_camera_host_register
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x86592794 soc_camera_apply_sensor_flags
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x81cfb1ab tveeprom_hauppauge_analog
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x9457815a tveeprom_read
+EXPORT_SYMBOL drivers/media/video/v4l1-compat 0x4abebb72 v4l_compat_translate_ioctl
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x457a6e41 v4l2_chip_ident_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xa0c1ae41 v4l2_chip_match_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x090f828b v4l2_m2m_mmap
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x88c26e05 v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xbaa70518 v4l2_m2m_get_vq
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xbd68fd77 v4l2_m2m_job_finish
+EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period
+EXPORT_SYMBOL drivers/media/video/videodev 0x0ac026af video_device_alloc
+EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x13eae877 video_devdata
+EXPORT_SYMBOL drivers/media/video/videodev 0x2310092d video_device_release_empty
+EXPORT_SYMBOL drivers/media/video/videodev 0x33ac79bd video_register_device_no_warn
+EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x40561e4b video_register_device
+EXPORT_SYMBOL drivers/media/video/videodev 0x5b137aa8 video_ioctl2
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl
+EXPORT_SYMBOL drivers/media/video/videodev 0xadd0af80 video_device_release
+EXPORT_SYMBOL drivers/media/video/videodev 0xc561cbea video_unregister_device
+EXPORT_SYMBOL drivers/media/video/videodev 0xd7ec1046 video_usercopy
+EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct
+EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x04f6adac mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2a6961e8 mpt_halt_firmware
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3a9c1951 mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3e57cf33 mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x431d781a mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x435ca5e5 mpt_HardResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x48a0fb33 mpt_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x51243a61 mptbase_sas_persist_operation
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x53cd9205 mpt_get_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x67154478 mpt_detach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6770e9c0 mpt_verify_adapter
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6c481b7c mpt_findImVolumes
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x780055ed mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x80fc6bf0 mpt_config
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x87172995 mpt_free_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9186c414 mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaa8fc32e mpt_attach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xad29c7fd mpt_event_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb35efac0 mpt_GetIocState
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb6841a4e mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb91466ab mpt_put_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc6bedc6b mpt_print_ioc_summary
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcd73ff32 mpt_alloc_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd912aeaa mpt_reset_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe410d317 mpt_free_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xef36d8b6 mpt_device_driver_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf4e40d87 mpt_send_handshake_request
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x030a5557 mptscsih_bus_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x036e6bb9 mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0dce06d3 mptscsih_io_done
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x10004f01 mptscsih_remove
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x20b2e677 mptscsih_host_attrs
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x34ab926d mptscsih_is_phys_disk
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x36805751 mptscsih_dev_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3b11e93a mptscsih_abort
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3fbda077 mptscsih_change_queue_depth
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x47cde4cc mptscsih_event_process
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x582d1740 mptscsih_qcmd
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5a052a53 mptscsih_host_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6207c484 mptscsih_bios_param
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x71b3272b mptscsih_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7f3dd823 mptscsih_slave_destroy
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x817ae0cb mptscsih_ioc_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa1c6a10b mptscsih_scandv_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa49a6935 mptscsih_shutdown
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa9cfb8cc mptscsih_slave_configure
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd0e3be04 mptscsih_proc_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xddc8de67 mptscsih_taskmgmt_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe20d0838 mptscsih_raid_id_to_num
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xebce52a2 mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf1991180 mptscsih_get_scsi_lookup
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x194560bb i2o_device_claim_release
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1c7167c1 i2o_cntxt_list_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1eb3704c i2o_msg_post_wait_mem
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x32c6585b i2o_iop_find_device
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x48fe819b i2o_cntxt_list_remove
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4bcabfa0 i2o_driver_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x508a7950 i2o_status_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x52008bf4 i2o_driver_unregister
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x5c697fd5 i2o_parm_issue
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x680029aa i2o_driver_notify_device_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6da58278 i2o_event_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x72436634 i2o_cntxt_list_get_ptr
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x768f0897 i2o_cntxt_list_add
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x921c6d82 i2o_driver_notify_controller_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x95ecb468 i2o_driver_notify_device_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9b4f3f85 i2o_exec_lct_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xaa255083 i2o_parm_field_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc24b492c i2o_find_iop
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc40bffb3 i2o_driver_notify_controller_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdb8a3a01 i2o_msg_get_wait
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe0f35c72 i2o_device_claim
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf419fe2c i2o_parm_table_get
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xdc41689a pasic3_read_register
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xe2969aa9 pasic3_write_register
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x484cb804 mc13783_irq_mask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x4c1bd675 mc13783_reg_write
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x5ff6ae3d mc13783_irq_status
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x6411d98b mc13783_irq_request_nounmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x65b563c7 mc13783_reg_rmw
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x740613c4 mc13783_irq_free
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x9681ec9f mc13783_irq_request
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xac1b5add mc13783_irq_unmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xb6cbdca6 mc13783_unlock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xc2bb6a2a mc13783_lock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xc47dba0a mc13783_reg_read
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xcf7769ae mc13783_irq_ack
+EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2
+EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1
+EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib
+EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led
+EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw
+EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x9356fe96 ad_dpot_remove
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xfb12a045 ad_dpot_probe
+EXPORT_SYMBOL drivers/misc/c2port/core 0x0d84b0ba c2port_device_register
+EXPORT_SYMBOL drivers/misc/c2port/core 0x1fb690fa c2port_device_unregister
+EXPORT_SYMBOL drivers/misc/ioc4 0x73f1c8f6 ioc4_unregister_submodule
+EXPORT_SYMBOL drivers/misc/ioc4 0xba9e2519 ioc4_register_submodule
+EXPORT_SYMBOL drivers/misc/tifm_core 0x2239751c tifm_add_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x3ce261e9 tifm_map_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x40b45f2d tifm_alloc_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x40dd197e tifm_alloc_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x75031003 tifm_unmap_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0x7af77745 tifm_unregister_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x906f98d4 tifm_has_ms_pif
+EXPORT_SYMBOL drivers/misc/tifm_core 0xa32afab6 tifm_eject
+EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work
+EXPORT_SYMBOL drivers/misc/tifm_core 0xb4839c3f tifm_free_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0xd735c015 tifm_register_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0xdf6ef064 tifm_remove_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xf75df1b4 tifm_free_adapter
+EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x949d32de mmc_cleanup_queue
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x00bdd475 mmc_detect_change
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x05573839 mmc_card_can_sleep
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x05e088ef mmc_alloc_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x184b82fb mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x2e0eef76 mmc_unregister_driver
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x3d30fd13 mmc_host_lazy_disable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x49c3bd2a mmc_card_sleep
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x4d74b1a1 mmc_wait_for_app_cmd
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x51bc012a mmc_wait_for_req
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x56df5a59 mmc_regulator_set_ocr
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x738750a7 mmc_host_disable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x7829df6b mmc_card_awake
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x79dae596 mmc_try_claim_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x87d3885e mmc_align_data_size
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9450201e mmc_power_save_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9b170a6e mmc_wait_for_cmd
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9deadb7f mmc_add_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x9df7883e mmc_release_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa2b2350a mmc_request_done
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xaa8b39a4 mmc_power_restore_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xaf87ea96 mmc_register_driver
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xbab979a8 mmc_free_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xbf79d8d3 __mmc_claim_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc363a028 mmc_remove_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc6f7ea3b mmc_host_enable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf494f618 mmc_regulator_get_ocrmask
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf55ca709 mmc_set_data_timeout
+EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0xd3094398 mmc_spi_put_pdata
+EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0xf2132369 mmc_spi_get_pdata
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x15f6a7c1 cfi_read_pri
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x264c56f6 cfi_varsize_frob
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x501bb441 cfi_fixup
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x1a6ca1be register_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x337673f4 unregister_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x517fe349 do_map_probe
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xa6940f20 map_destroy
+EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0xb3460d66 mtd_do_chip_probe
+EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x71de5bd3 lpddr_cmdset
+EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x802da3c1 simple_map_init
+EXPORT_SYMBOL drivers/mtd/mtd 0x21469a34 del_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtd 0x6414f9f0 add_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x16b12f7d mtd_concat_create
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0x194207ee mtd_concat_destroy
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x22234b59 nand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand 0x4e59946b nand_default_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xabcab7e0 nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xbd33e63c nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x28a48ed1 onenand_default_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x3b12b85d onenand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xc466fae3 onenand_addr
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xef5b4579 flexonenand_region
+EXPORT_SYMBOL drivers/net/8390 0x0b4239b4 ei_netdev_ops
+EXPORT_SYMBOL drivers/net/8390 0x20072444 ei_start_xmit
+EXPORT_SYMBOL drivers/net/8390 0x5def7a49 ei_tx_timeout
+EXPORT_SYMBOL drivers/net/8390 0x8447f6dc ei_get_stats
+EXPORT_SYMBOL drivers/net/8390 0x8dcfba81 ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390 0x99b9594f ei_poll
+EXPORT_SYMBOL drivers/net/8390 0xaae8df55 NS8390_init
+EXPORT_SYMBOL drivers/net/8390 0xadd8a5f6 ei_close
+EXPORT_SYMBOL drivers/net/8390 0xb2a3faec ei_open
+EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt
+EXPORT_SYMBOL drivers/net/8390 0xe3738783 __alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/bnx2 0x8f0b2972 bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/bnx2x 0x8813b191 bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/cnic 0x9101a7ba cnic_register_driver
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x042d7da0 cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x05802147 cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x11a00b3e t3_l2e_free
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x14b23e5b dev2t3cdev
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4445284e cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x504390ea cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x600110e8 cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x60884e8d t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x6862b70f t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8dd8166b cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x8e56eb89 cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x9182b12d cxgb3_register_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x969fe520 cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa76245c8 t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbc5774be cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xd851839f t3_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x14a7cae8 cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2f15d545 cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x34ac2a83 cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x425476a5 cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x42d72144 cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x45431d2c cxgb4_netdev_by_hwid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5a8fb7f9 cxgb4_create_server
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x5d49e35c cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x788564ab cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x80ed42cd cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x8ec6220a cxgb4_create_server6
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x92e4b501 cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xa7b386a5 cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb2929ec1 cxgb4_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb6e78774 cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xb9ea0e25 cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc88fca8c cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xec3012ed cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xf42c94c6 cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xfe7ad4ac cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage
+EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl
+EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart
+EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag
+EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe
+EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an
+EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok
+EXPORT_SYMBOL drivers/net/mii 0x5e09f09b mii_check_link
+EXPORT_SYMBOL drivers/net/mii 0x90475023 mii_ethtool_gset
+EXPORT_SYMBOL drivers/net/mii 0xa59aa455 generic_mii_ioctl
+EXPORT_SYMBOL drivers/net/mii 0xbffa090e mii_link_ok
+EXPORT_SYMBOL drivers/net/mii 0xc5a02fd6 mii_check_gmii_support
+EXPORT_SYMBOL drivers/net/mii 0xea811c9a mii_check_media
+EXPORT_SYMBOL drivers/net/mii 0xee09a22e mii_nway_restart
+EXPORT_SYMBOL drivers/net/mii 0xf117b47f mii_ethtool_sset
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xbb06551b alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0xd14c39a5 free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp_generic 0x22b58b3d ppp_channel_index
+EXPORT_SYMBOL drivers/net/ppp_generic 0x416b9613 ppp_input_error
+EXPORT_SYMBOL drivers/net/ppp_generic 0x7f639bb8 ppp_unregister_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0xa616b8a2 ppp_register_compressor
+EXPORT_SYMBOL drivers/net/ppp_generic 0xac68478f ppp_output_wakeup
+EXPORT_SYMBOL drivers/net/ppp_generic 0xb930e411 ppp_unit_number
+EXPORT_SYMBOL drivers/net/ppp_generic 0xedb45698 ppp_dev_name
+EXPORT_SYMBOL drivers/net/ppp_generic 0xedb7fa3b ppp_input
+EXPORT_SYMBOL drivers/net/ppp_generic 0xf564a424 ppp_unregister_compressor
+EXPORT_SYMBOL drivers/net/ppp_generic 0xf7e3ad83 ppp_register_net_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0xfabc2307 ppp_register_channel
+EXPORT_SYMBOL drivers/net/pppox 0x00097b0f pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/pppox 0x0e11dc97 pppox_ioctl
+EXPORT_SYMBOL drivers/net/pppox 0x1747122f register_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember
+EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init
+EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free
+EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss
+EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress
+EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x18165da2 i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x5271451d reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x5db1e58d stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x7ef9f47d init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1fd544eb ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4164ab0e ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x778009d6 ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9e741755 ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x12d1c392 ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x29f07330 ath9k_cmn_rx_skb_preprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3a87ff97 ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x9843497d ath9k_cmn_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xda236d85 ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe7154fcc ath9k_cmn_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xe925c630 ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x02c595d9 ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0421d332 ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07193b23 ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b1f9466 ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b717733 ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x100f153a ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x165e2920 ath9k_hw_keysetmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1cc977ae ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x20a29fc6 ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x220707e0 ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x22eb238e ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24546a18 ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25ab5810 ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25ff5161 ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26fd5cdd ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29c4aa42 ath9k_hw_setcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c012e89 ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2c9e13f4 ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e573df7 ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x33f3f443 ath9k_hw_cleartxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x356550f4 ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d720f23 ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x44d2b261 ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x46c524de ath9k_hw_setmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ba14e02 ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4cf574ba ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x53d83a90 ath9k_hw_stoppcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c344411 ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e66d0af ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f3c35ab ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ea448ed ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77bc5ffb ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a1555eb ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82c9ef50 ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x85cc39e4 ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8c480bda ath9k_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x93faa078 ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x949c0b8c ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x954f158e ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x955d6cac ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a9907ca ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9b3d4438 ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f0d764d ath9k_hw_procmibevent
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa07d4ce0 ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa6cd3710 ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab349b18 ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xafb7a5bf ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb475c441 ath9k_hw_stoptxdma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb6f07429 ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb8961aa4 ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb969c574 ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba557a8c ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe4aad2e ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe59b1f9 ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc23e7f69 ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc55f7c2e ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6466bc6 ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc78ab167 ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc8074688 ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xced74b8d ath9k_hw_set_keycache_entry
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd17b9d35 ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd3ba412f ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5214059 ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5c1ae29 ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd9997af9 ath9k_hw_extend_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda31ecb6 ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc0ee72e ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdda6d16f ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe173a8da ath9k_hw_getcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1b06af7 ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe52c58f3 ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe994907d ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef2c3444 ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2b88e51 ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf344f932 ath9k_hw_keyisvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3ef7e80 ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf4a23fc7 ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf518d3fb ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf6778ea4 ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8e374e7 ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9907ed1 ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfe2e7597 ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x19788318 stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x37905b31 atmel_open
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x7bab77cc init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x01244076 hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x166ddfb6 hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x29ddc24b hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2d69a36f prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x38f4d3f6 hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4ff996c4 hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x5f40be4e hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x61939b69 hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6495afb4 hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x67ec965a hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x90f7b6f8 hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa0831e7a hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa630e99e hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaee4de6c hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbc4db3a2 hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc09eb315 hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc36d5111 hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd4cdc42d hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdb5ec358 hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe50eb2eb hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe8d94b73 hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe95522ae hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf462535f hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf496bbaa hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfd893621 hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0661daae libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x076b4227 libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0a7157c3 libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0c28615e libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0f272a63 libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3c622435 libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3ed4ea8a free_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x40c4d069 libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4e9ded2c libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5da17d9c libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x718f22a0 libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7268b140 libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x72ad2956 libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa4702f71 libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa731fc14 libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc04d9eea libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc4358f73 alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd188ec4c libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe91f166d libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xed57e0c1 libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf53a214b libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0058748f iwl_sensitivity_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x02b73ef7 iwl_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x039e9499 iwl_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x05cc0700 iwl_free_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e7c9c57 iwl_bg_start_internal_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x133b5973 iwl_sta_rx_agg_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x133e2dd6 iwl_setup_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x135c768f iwl_init_sensitivity
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x14a131a1 iwl_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x171bb0ec iwl_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x18940ed5 iwl_sta_modify_sleep_tx_count
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1906320b iwl_tt_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19edbd3c iwl_toggle_tx_ant
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1bf6308f iwl_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1c7da3e2 iwl_led_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1c9ad8eb iwl_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1fd12262 iwl_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x204e5217 iwl_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x207cca71 iwl_reply_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x22958bdc iwl_sta_rx_agg_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x23ab4047 iwl_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2669a34d iwl_tt_exit_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2763b9c9 iwl_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x27d8071e iwl_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2840192c iwl_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x28550595 iwl_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3007721e iwl_remove_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3133d68b iwl_set_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x35ee3751 iwl_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3662fd8e iwl_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x37e4280b iwl_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3aa45dc9 iwl_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3b1ded77 iwl_send_calib_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3f926308 iwl_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x449dfa8f iwl_hw_detect
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4954db49 iwl_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a2d27af iwl_tx_ant_restriction
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4b692077 iwl_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c79a613 iwl_set_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4e972232 iwl_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4fc4e923 iwl_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5060782f iwl_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x527f9836 iwl_ht_enabled
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x53327a33 iwl_rx_missed_beacon_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x537135a4 iwl_eeprom_get_mac
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58938b34 iwl_tt_enter_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5932e251 iwl_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5b922f5b iwl_sta_modify_ps_wake
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c32a487 iwl_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5cb99737 iwl_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x618a2277 iwlcore_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x61f7bc46 iwl_mac_beacon_update
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x640e6042 iwl_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x643068cf iwl_rf_kill_ct_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x65b3dcb3 iwl_rx_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6809d097 iwl_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x69db9756 iwl_tt_handler
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71db00d0 iwl_bg_abort_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x726581ca iwl_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x733d8018 iwl_configure_filter
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x738f70a8 iwl_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x73dcc476 iwl_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x73dfda71 iwl_leds_background
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x77225c48 iwl_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7766fb53 iwl_force_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x77ddbe11 iwl_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7ba0c3d4 iwl_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7c706bbd iwl_dump_fh
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7feec1a3 iwlcore_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8314c72a iwl_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8395e22c iwl_restore_default_wep_keys
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8453c719 iwl_sta_tx_modify_enable_tid
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x858449b8 iwl_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x872e5238 iwl_chain_noise_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a572dbb iwl_update_tkip_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a73e42e iwlcore_eeprom_acquire_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8b36e6b3 iwl_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9071231e iwl_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x92746543 iwlcore_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x940c51aa iwlcore_rts_tx_cmd_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x95a31de6 iwl_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x95e51a6b iwl_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x991b96e7 iwl_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x99b5f0a7 iwl_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9a629cb2 iwl_eeprom_check_version
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9c9eb250 iwl_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9faced57 iwl_calib_set
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5dfb57f iwl_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa67abf06 iwl_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa6d1ca38 iwl_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaa4dd2e3 iwl_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xab4f40f9 iwlcore_eeprom_verify_signature
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xabc2777c iwl_tt_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb3e368da iwl_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb427581c iwl_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb86a0fa3 iwl_bg_scan_completed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xbbc3660d iwl_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc71bc8c3 iwl_verify_ucode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc9b99f24 iwl_set_rxon_chain
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xca62a32d iwl_add_bssid_station
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcad0402b iwl_reset_run_time_calib
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcc1df57c iwl_remove_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcf4bb10d iwl_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd25284fd iwl_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd7a6906c iwl_rate_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd8160d39 iwl_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd8b2bb87 iwl_dump_csr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd9515ae0 iwl_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd9c1096a iwl_recover_from_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd9f679c6 iwl_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdbd747cf iwl_free_tfds_in_queue
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xddde1971 iwl_calib_free_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdf305211 iwl_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe06f2b6e iwl_set_hw_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe61c58c6 iwl_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67257a2 iwl_bg_scan_check
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe94103d0 iwl_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeaaa0181 iwl_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xeb8b4a12 iwl_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xec96b467 iwl_good_plcp_health
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xefe34191 iwl_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf1db2155 iwl_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf414e9b7 iwl_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf772eed2 iwlcore_eeprom_enhanced_txpower
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf8abd0ea iwlcore_eeprom_release_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfaf0c8e0 iwl_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdc9af5 iwl_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfc71ba50 iwl_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xff80fb7e iwl_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0a7899c8 orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2e30bed1 orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x37194bdd __orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6160ec76 orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x62991aaf hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x71236ab5 orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbc6fd5b8 orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc66fd64d orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc93f3b56 orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd95eeebf orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe6aea6e2 orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe8b4e9ab free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xeb4a457f orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf2f12782 orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfad7358a __orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xff662d68 orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffde7a34 alloc_orinocodev
+EXPORT_SYMBOL drivers/parport/parport 0x04f9b0fb parport_wait_event
+EXPORT_SYMBOL drivers/parport/parport 0x08f5a9b5 parport_register_port
+EXPORT_SYMBOL drivers/parport/parport 0x103e45c3 parport_unregister_device
+EXPORT_SYMBOL drivers/parport/parport 0x2e24586f parport_write
+EXPORT_SYMBOL drivers/parport/parport 0x31f5b793 parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL drivers/parport/parport 0x367771de parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0x4bfc91fd parport_claim
+EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt
+EXPORT_SYMBOL drivers/parport/parport 0x519e2023 parport_register_device
+EXPORT_SYMBOL drivers/parport/parport 0x529e648a parport_ieee1284_read_byte
+EXPORT_SYMBOL drivers/parport/parport 0x62753622 parport_announce_port
+EXPORT_SYMBOL drivers/parport/parport 0x69eb1ddf parport_ieee1284_epp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0x6cb2b4cd parport_claim_or_block
+EXPORT_SYMBOL drivers/parport/parport 0x6f684ac9 parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0x789f3102 parport_release
+EXPORT_SYMBOL drivers/parport/parport 0x80975230 parport_ieee1284_read_nibble
+EXPORT_SYMBOL drivers/parport/parport 0x850d1429 parport_register_driver
+EXPORT_SYMBOL drivers/parport/parport 0x8714b7b2 parport_negotiate
+EXPORT_SYMBOL drivers/parport/parport 0x98cea25e parport_find_base
+EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler
+EXPORT_SYMBOL drivers/parport/parport 0xa5a29215 parport_get_port
+EXPORT_SYMBOL drivers/parport/parport 0xa613635a parport_ieee1284_epp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0xa7c5b803 parport_unregister_driver
+EXPORT_SYMBOL drivers/parport/parport 0xab5fa724 parport_read
+EXPORT_SYMBOL drivers/parport/parport 0xb7342f94 parport_set_timeout
+EXPORT_SYMBOL drivers/parport/parport 0xb8639471 parport_ieee1284_write_compat
+EXPORT_SYMBOL drivers/parport/parport 0xc952d033 parport_wait_peripheral
+EXPORT_SYMBOL drivers/parport/parport 0xce603d3c parport_remove_port
+EXPORT_SYMBOL drivers/parport/parport 0xd309ecce parport_put_port
+EXPORT_SYMBOL drivers/parport/parport 0xdc45e80a parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0xf23309ac parport_find_number
+EXPORT_SYMBOL drivers/parport/parport 0xff0c584d parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL drivers/parport/parport_pc 0x724570c0 parport_pc_unregister_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0xe1c2a205 parport_pc_probe_port
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x18c88795 pcmcia_get_mac_from_cis
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x19f1483c pcmcia_unregister_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x27367baa pcmcia_dev_present
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x39812135 __pcmcia_request_exclusive_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x444e5ef2 pcmcia_access_configuration_register
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x558fe734 pcmcia_get_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5d70d09a pcmcia_loop_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x785715d1 pcmcia_register_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7aef79fa pcmcia_modify_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x84f2fe4a pcmcia_request_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa3424237 pcmcia_request_io
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb847bbe6 pcmcia_loop_config
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb85da467 pcmcia_request_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe85006b4 pcmcia_request_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf15b86ae pcmcia_release_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf8e10031 pcmcia_map_mem_page
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xfa120507 pcmcia_disable_device
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x17092384 pcmcia_put_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1ddaf3f7 pcmcia_register_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4eac1df7 pcmcia_socket_list_rwsem
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x57d56252 pcmcia_get_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x606a1669 pcmcia_socket_class
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7fcbafd0 pcmcia_get_socket_by_nr
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8c85da0d pcmcia_unregister_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x932a4a2f pccard_register_pcmcia
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xc6435f59 pcmcia_parse_uevents
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdaaf2ba8 pcmcia_reset_card
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdf165c05 pcmcia_parse_events
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x4ac0f7cb pccard_static_ops
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x69e83b9d pccard_nonstatic_ops
+EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6eb4014 pps_register_source
+EXPORT_SYMBOL drivers/sbus/char/bbc 0x64cdb045 bbc_i2c_detach
+EXPORT_SYMBOL drivers/sbus/char/bbc 0x9f53013c bbc_i2c_getdev
+EXPORT_SYMBOL drivers/sbus/char/bbc 0xa0082e6e bbc_i2c_read_buf
+EXPORT_SYMBOL drivers/sbus/char/bbc 0xaa884f8c bbc_i2c_attach
+EXPORT_SYMBOL drivers/sbus/char/bbc 0xce0a68f7 bbc_i2c_write_buf
+EXPORT_SYMBOL drivers/sbus/char/bbc 0xd830a0ed bbc_i2c_readb
+EXPORT_SYMBOL drivers/sbus/char/bbc 0xd9a62c51 bbc_i2c_writeb
+EXPORT_SYMBOL drivers/scsi/esp_scsi 0x104273b5 scsi_esp_template
+EXPORT_SYMBOL drivers/scsi/esp_scsi 0x658a76c9 scsi_esp_intr
+EXPORT_SYMBOL drivers/scsi/esp_scsi 0xc183fb25 scsi_esp_cmd
+EXPORT_SYMBOL drivers/scsi/esp_scsi 0xe142dca2 scsi_esp_register
+EXPORT_SYMBOL drivers/scsi/esp_scsi 0xee0c7308 scsi_esp_unregister
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x1a3002f4 fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x4f06155f fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x77b1cc9c fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x956875b2 fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa0e723c5 fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xdb6242cf fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf90d5f5f fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x09f3993c fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x147d831f fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1c9223f2 fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2633a60f fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2968c90a fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x354fda05 fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3db37f74 fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3e39dfd0 fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x426bf2f2 fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x440cbc86 fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x45377830 fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x47f35818 fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4bdebe66 fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4fc39664 libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x513c0645 fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x53f66be4 fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x54a395c2 fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x57321d73 fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5e61c6c2 fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5f1d669e fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5f8aba28 fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x60f3148a fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x641e6ac7 fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6f6bb3e5 fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x709ab9fa fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7364498b fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x78fa5956 fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9d92897b fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9e709c02 fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaaca10ab fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb7179bad fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbf505d02 fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbf6c18f7 _fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc6e51030 fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc82ac50b fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd3379b38 fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd76c3a6b fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdd91c81f fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe23fb255 fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xefff5b35 fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf53b7cbe fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfc824330 fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xcd5298bf mraid_mm_register_adp
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0621c36b osd_dev_fini
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0f499829 osd_end_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1dd9893a osd_req_list_partition_collections
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x37efd503 osd_req_add_set_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x380d92b0 osd_execute_request_async
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3bab17c6 osd_req_decode_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4234f8f9 osd_auto_detect_ver
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x56cd93e0 osd_req_create_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x59f279aa osd_req_remove_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5c6f5216 osd_req_decode_sense_full
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6095e3bb osd_req_add_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6dc2b761 osd_req_list_collection_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7003be1d osd_req_flush_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7020a391 osd_req_set_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7eed0831 osd_start_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x843fbb14 osd_req_create_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8e60fd3e osd_dev_init
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9309eff9 osd_req_flush_obsd
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x97aee2b2 osd_req_add_get_attr_page
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa3cad6c5 osd_finalize_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb7a0cbb4 osd_execute_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbdfd69bc osd_req_remove_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbe3407b9 osd_req_read
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc49ec7e1 osd_req_flush_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc60ed6e4 osd_req_list_dev_partitions
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc88b9e7f osd_req_get_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd237453b osd_req_format
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd2a57bac osd_req_list_partition_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd4264bcd osd_req_flush_collection
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd80f3f51 osd_req_write_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe7f153bf osd_req_read_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf0256791 osd_req_write
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x679e9bf5 osduld_register_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xa1fcb9a9 osduld_put_device
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xbb3e9154 osduld_device_info
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xc591d93c osduld_device_same
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xd12b25e5 osduld_path_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xfcf5e1f5 osduld_info_lookup
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x2472105a qlogicfas408_bus_reset
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x59f48a48 qlogicfas408_disable_ints
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x6d7042be qlogicfas408_queuecommand
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x827af801 qlogicfas408_biosparam
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdbaabe2a qlogicfas408_abort
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xfdf63b7f qlogicfas408_info
+EXPORT_SYMBOL drivers/scsi/raid_class 0x43a2a502 raid_class_attach
+EXPORT_SYMBOL drivers/scsi/raid_class 0x6e69ca11 raid_component_add
+EXPORT_SYMBOL drivers/scsi/raid_class 0x72e3b883 raid_class_release
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2c09d65b fc_vport_terminate
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3561df45 scsi_is_fc_rport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3b02ac56 fc_remote_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3e15b12e fc_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x73a0a8a7 fc_block_scsi_eh
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa5056240 fc_host_post_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb3140a52 fc_remote_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xbab24277 fc_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xc8164c6e fc_host_post_vendor_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xceaa9ce4 fc_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe16aa620 scsi_is_fc_vport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe5616777 fc_remote_port_rolechg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xffce8ade fc_vport_create
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0671b68f sas_port_alloc_num
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x089a8dbd sas_port_add_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x15df4046 sas_read_port_mode_page
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1a00f7b2 sas_rphy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2de9572d scsi_is_sas_rphy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x36a7d54a sas_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x452c5ce4 sas_rphy_remove
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4fe99fad scsi_is_sas_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5014e2c2 sas_port_delete_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x82d93ead sas_port_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8880dc82 sas_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9413e91b sas_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9c3d9edd sas_end_device_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa22e251b sas_remove_children
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa7148356 sas_rphy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb8557f2d sas_port_mark_backlink
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc99071a9 sas_phy_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xccb70880 sas_phy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd0f3b7e0 sas_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xde88a039 sas_rphy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe15aa60a sas_phy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe6010361 sas_expander_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe68c562f sas_phy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf41f95d6 scsi_is_sas_port
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf473532a sas_port_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfdc68e84 sas_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x050e1abb spi_schedule_dv_device
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x08a6b616 spi_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x257f9fa2 spi_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x47a67012 spi_dv_device
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xd381cbc4 spi_display_xfer_agreement
+EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port
+EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port
+EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port
+EXPORT_SYMBOL drivers/serial/8250 0xdac1a268 serial8250_register_port
+EXPORT_SYMBOL drivers/ssb/ssb 0x090eecaa ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x1d00701f ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL drivers/ssb/ssb 0x26223ed9 ssb_device_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x28c47e65 ssb_clockspeed
+EXPORT_SYMBOL drivers/ssb/ssb 0x340e6a8d __ssb_driver_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x349ea96a ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL drivers/ssb/ssb 0x3fe08e5a ssb_pcihost_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x3fe7bc3e ssb_bus_may_powerdown
+EXPORT_SYMBOL drivers/ssb/ssb 0x43bc0c46 ssb_bus_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0x4ab4439f ssb_device_is_enabled
+EXPORT_SYMBOL drivers/ssb/ssb 0x548e3224 ssb_driver_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0x67b78467 ssb_bus_sdiobus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x75746ed1 ssb_bus_resume
+EXPORT_SYMBOL drivers/ssb/ssb 0x82d2c499 ssb_chipco_gpio_control
+EXPORT_SYMBOL drivers/ssb/ssb 0x88d0272d ssb_bus_suspend
+EXPORT_SYMBOL drivers/ssb/ssb 0x8ab4271e ssb_dma_free_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0x8d73683d ssb_dma_set_mask
+EXPORT_SYMBOL drivers/ssb/ssb 0x911559ac ssb_bus_pcibus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x9ac1fabe ssb_set_devtypedata
+EXPORT_SYMBOL drivers/ssb/ssb 0xb78a4602 ssb_dma_translation
+EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base
+EXPORT_SYMBOL drivers/ssb/ssb 0xc9d07ac3 ssb_device_disable
+EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size
+EXPORT_SYMBOL drivers/ssb/ssb 0xde1ef02e ssb_bus_powerup
+EXPORT_SYMBOL drivers/ssb/ssb 0xf84973fb ssb_dma_alloc_consistent
+EXPORT_SYMBOL drivers/telephony/ixj 0xa3cd5b71 ixj_pcmcia_probe
+EXPORT_SYMBOL drivers/telephony/phonedev 0x5a61584f phone_unregister_device
+EXPORT_SYMBOL drivers/telephony/phonedev 0x9ee4854e phone_register_device
+EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xf254d3a6 sl811h_driver
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x078ed4d8 usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1147f5de usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x12be97d1 usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1eb25a49 usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6d51177f usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8bbfbe9d usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8c3152b4 usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa21584f2 usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xb65aa918 usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc646402e usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd867f41d usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdbf8c005 usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x689a929a usb_serial_resume
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0xacf4ae14 usb_serial_suspend
+EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x75368211 lcd_device_unregister
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x984b27bd lcd_device_register
+EXPORT_SYMBOL drivers/video/display/display 0x48d1bb23 display_device_register
+EXPORT_SYMBOL drivers/video/display/display 0x4daf8bb2 display_device_unregister
+EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0xf2aa7e0c mb862xxfb_init_accel
+EXPORT_SYMBOL drivers/video/output 0xd1bb10c0 video_output_register
+EXPORT_SYMBOL drivers/video/output 0xddf9d1d0 video_output_unregister
+EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xb1ebd252 svga_get_tilemax
+EXPORT_SYMBOL drivers/video/svgalib 0xb3c32974 svga_get_caps
+EXPORT_SYMBOL drivers/video/svgalib 0xb45c91a0 svga_tilecopy
+EXPORT_SYMBOL drivers/video/svgalib 0xc202e59d svga_tilecursor
+EXPORT_SYMBOL drivers/video/svgalib 0xcb5314d1 svga_settile
+EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xe417c3fb svga_tileblit
+EXPORT_SYMBOL drivers/video/svgalib 0xe4b3acaa svga_tilefill
+EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format
+EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll
+EXPORT_SYMBOL drivers/video/syscopyarea 0xec9dc0ae sys_copyarea
+EXPORT_SYMBOL drivers/video/sysfillrect 0x5f556f3e sys_fillrect
+EXPORT_SYMBOL drivers/video/sysimgblt 0x99544a6e sys_imageblit
+EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga
+EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x4b0fd619 w1_bq27000_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xf70885b1 w1_bq27000_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x5ef52973 w1_ds2760_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x7a35d6c7 w1_ds2760_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd13c08b2 w1_ds2760_recall_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd29db4dc w1_ds2760_store_eeprom
+EXPORT_SYMBOL drivers/w1/wire 0x24be2f42 w1_remove_master_device
+EXPORT_SYMBOL drivers/w1/wire 0x7241745d w1_add_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xbb5b3b88 w1_unregister_family
+EXPORT_SYMBOL drivers/w1/wire 0xecae7cd8 w1_register_family
+EXPORT_SYMBOL fs/configfs/configfs 0x2c291224 config_group_init
+EXPORT_SYMBOL fs/configfs/configfs 0x39216ac0 config_item_set_name
+EXPORT_SYMBOL fs/configfs/configfs 0x3a4121c2 configfs_depend_item
+EXPORT_SYMBOL fs/configfs/configfs 0x3c81b406 configfs_undepend_item
+EXPORT_SYMBOL fs/configfs/configfs 0x5849c9f9 config_group_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x68c84310 config_item_init
+EXPORT_SYMBOL fs/configfs/configfs 0x7ac605c0 config_item_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0xa0c62858 config_group_find_item
+EXPORT_SYMBOL fs/configfs/configfs 0xb2891389 config_item_get
+EXPORT_SYMBOL fs/configfs/configfs 0xb702aa60 configfs_register_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xc64e2b6a config_item_put
+EXPORT_SYMBOL fs/configfs/configfs 0xc8dd4e7d configfs_unregister_subsystem
+EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible
+EXPORT_SYMBOL fs/fscache/fscache 0x08f045c1 __fscache_read_or_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0x0c7c8c46 __fscache_unregister_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x0fc6053b fscache_init_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x180d01ac __fscache_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0x1be780e0 fscache_io_error
+EXPORT_SYMBOL fs/fscache/fscache 0x2c00c8a3 __fscache_uncache_page
+EXPORT_SYMBOL fs/fscache/fscache 0x2f8681fb __fscache_acquire_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x394c16e9 fscache_cache_cleared_wq
+EXPORT_SYMBOL fs/fscache/fscache 0x3d06ab96 __fscache_relinquish_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit
+EXPORT_SYMBOL fs/fscache/fscache 0x4b852f3b __fscache_maybe_release_page
+EXPORT_SYMBOL fs/fscache/fscache 0x507a953a fscache_check_aux
+EXPORT_SYMBOL fs/fscache/fscache 0x5bc80adf fscache_add_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x5dbb5fdb __fscache_wait_on_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x60ffc2e5 __fscache_read_or_alloc_pages
+EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id
+EXPORT_SYMBOL fs/fscache/fscache 0x85a43e9b fscache_put_operation
+EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states
+EXPORT_SYMBOL fs/fscache/fscache 0x8c4c75ac fscache_obtained_object
+EXPORT_SYMBOL fs/fscache/fscache 0x9fea7980 __fscache_update_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0xa00c007a __fscache_register_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0xacdad00b fscache_withdraw_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xb3df0268 fscache_fsdef_index
+EXPORT_SYMBOL fs/fscache/fscache 0xd019238d fscache_object_slow_work_ops
+EXPORT_SYMBOL fs/fscache/fscache 0xd60c6712 fscache_mark_pages_cached
+EXPORT_SYMBOL fs/fscache/fscache 0xdadb05cc fscache_enqueue_operation
+EXPORT_SYMBOL fs/fscache/fscache 0xdd312fae fscache_object_lookup_negative
+EXPORT_SYMBOL fs/fscache/fscache 0xea47b445 __fscache_write_page
+EXPORT_SYMBOL fs/fscache/fscache 0xf2d6810a __fscache_check_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0xfedb269a __fscache_attr_changed
+EXPORT_SYMBOL fs/nfsd/nfsd 0x23f0a2c8 nfs4_acl_nfsv4_to_posix
+EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who
+EXPORT_SYMBOL fs/nfsd/nfsd 0x46ffdc39 nfs4_acl_posix_to_nfsv4
+EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype
+EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new
+EXPORT_SYMBOL fs/quota/quota_tree 0x51bd2ddc qtree_write_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x7fea318b qtree_release_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x8d4dbf30 qtree_entry_unused
+EXPORT_SYMBOL fs/quota/quota_tree 0x9e999beb qtree_read_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xb935a302 qtree_delete_dquot
+EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt
+EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table
+EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t
+EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table
+EXPORT_SYMBOL lib/crc-t10dif 0x782acba5 crc_t10dif
+EXPORT_SYMBOL lib/crc7 0xc086bfba crc7
+EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table
+EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd
+EXPORT_SYMBOL net/802/p8022 0x130b17cb register_8022_client
+EXPORT_SYMBOL net/802/p8022 0xec712c0e unregister_8022_client
+EXPORT_SYMBOL net/802/p8023 0x3e734da6 destroy_8023_client
+EXPORT_SYMBOL net/802/p8023 0xfa8e6610 make_8023_client
+EXPORT_SYMBOL net/802/psnap 0x0a4cb959 register_snap_client
+EXPORT_SYMBOL net/802/psnap 0xc4263066 unregister_snap_client
+EXPORT_SYMBOL net/9p/9pnet 0x04c2c132 p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump
+EXPORT_SYMBOL net/9p/9pnet 0x15ee8929 p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x18450cc7 p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x1e96abde p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0x25e9e0b3 p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x29c9a5d1 p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0x2c48e2ed p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x4a643f9e p9_client_auth
+EXPORT_SYMBOL net/9p/9pnet 0x4de27648 v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0x5e80f6fd p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0x65fb3430 p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0x665c9229 p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x6c0faabe p9_client_attach
+EXPORT_SYMBOL net/9p/9pnet 0x6cdb5d83 p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x7373a708 p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0x767b6fa4 p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x77e17abb v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0x7ff58773 v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x94d429d1 p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0x9baf1982 p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0xa85246ad p9_client_version
+EXPORT_SYMBOL net/9p/9pnet 0xae0005a9 p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0xb02140a1 p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0xb7d77997 p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xb90dc422 p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0xbac97294 p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0xc30f4759 v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0xdd6dc30b p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0xdeb60af5 p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0xdfa6c68c p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xfaf19de6 p9_idpool_check
+EXPORT_SYMBOL net/appletalk/appletalk 0x0fb72cc2 alloc_ltalkdev
+EXPORT_SYMBOL net/appletalk/appletalk 0x57be4549 aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0x61b4f4f9 atrtr_get_dev
+EXPORT_SYMBOL net/appletalk/appletalk 0xd76a6765 atalk_find_dev_addr
+EXPORT_SYMBOL net/atm/atm 0x0a9ef891 vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0x18b7bb62 atm_proc_root
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x2fce7b6e atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x5bf348c2 atm_charge
+EXPORT_SYMBOL net/atm/atm 0x637f6080 vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0x6adda92f atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0x8ef6c896 atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xa956e58c atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xbe83bb2d atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0xcb192b6c deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xd525d075 register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal
+EXPORT_SYMBOL net/atm/atm 0xf5eab1ab vcc_sklist_lock
+EXPORT_SYMBOL net/bridge/bridge 0xbfe6ee1e br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x0d0d0173 ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x18fbdef6 ebt_do_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xa4af63e6 ebt_register_table
+EXPORT_SYMBOL net/caif/caif 0x05d6001f cfpkt_add_trail
+EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client
+EXPORT_SYMBOL net/caif/caif 0x084890b4 cfpkt_more
+EXPORT_SYMBOL net/caif/caif 0x0cc493be cfpkt_pad_trail
+EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer
+EXPORT_SYMBOL net/caif/caif 0x16dd9dd9 cfpkt_info
+EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x32c2cfeb cfpkt_add_body
+EXPORT_SYMBOL net/caif/caif 0x3775da46 cfpkt_qpeek
+EXPORT_SYMBOL net/caif/caif 0x4507cfcd cfpkt_append
+EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x4ab4f875 cfpkt_raw_append
+EXPORT_SYMBOL net/caif/caif 0x4b1f8785 cfpkt_peek_head
+EXPORT_SYMBOL net/caif/caif 0x501b35d0 cfpkt_dequeue
+EXPORT_SYMBOL net/caif/caif 0x56676d06 cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0x594eaabb cfpkt_qcount
+EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create
+EXPORT_SYMBOL net/caif/caif 0x5bdcad17 cfpkt_create_uplink
+EXPORT_SYMBOL net/caif/caif 0x5be1f657 cfpkt_erroneous
+EXPORT_SYMBOL net/caif/caif 0x5be5b933 cfpkt_addbdy
+EXPORT_SYMBOL net/caif/caif 0x5c3e8e4b cfpkt_extr_head
+EXPORT_SYMBOL net/caif/caif 0x67dd212e cfpkt_queue
+EXPORT_SYMBOL net/caif/caif 0x688502d6 cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x6fb28119 cfpkt_destroy
+EXPORT_SYMBOL net/caif/caif 0x71b01c40 cfpkt_add_head
+EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x76ef72e4 cfpkt_setlen
+EXPORT_SYMBOL net/caif/caif 0x855308d9 cfpktq_create
+EXPORT_SYMBOL net/caif/caif 0xa39429ca cfpkt_create
+EXPORT_SYMBOL net/caif/caif 0xab000832 cfpkt_getlen
+EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xb19f749b cfpkt_clone_release
+EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer
+EXPORT_SYMBOL net/caif/caif 0xe5cac5ce cfpkt_log_pkt
+EXPORT_SYMBOL net/caif/caif 0xe68642d0 cfpkt_extr_trail
+EXPORT_SYMBOL net/caif/caif 0xebd538b7 cfpkt_raw_extract
+EXPORT_SYMBOL net/caif/caif 0xf1cb7b14 cfpkt_iterate
+EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf
+EXPORT_SYMBOL net/caif/caif 0xf4a15a9a cfpkt_split
+EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer
+EXPORT_SYMBOL net/can/can 0x1b7fa91d can_proto_register
+EXPORT_SYMBOL net/can/can 0x5c8d1590 can_proto_unregister
+EXPORT_SYMBOL net/can/can 0x6228aae8 can_send
+EXPORT_SYMBOL net/can/can 0x7ad8a7b0 can_rx_unregister
+EXPORT_SYMBOL net/can/can 0xabdb0506 can_rx_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0408573c wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x286da00d ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x5a6ae5cc wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x7cd82504 ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x846b51e8 ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x99d8d1f5 ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x9aa97be4 wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xa7231d94 wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xb49ef464 ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xb8366d1a wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xcd3c1453 ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xd45e5c74 ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xf588a0ad wpan_phy_alloc
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x39e9e49a arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x46ff3346 arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xd6fd0460 arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x379770fe ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x6fff5902 ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xac5c2405 ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x0ebf2a53 nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x1581faa3 nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x206e5bf7 nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2a3b7599 __nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x52d633f1 nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x70bcb867 nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x916a8735 nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0x30b5359f xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv4/tunnel4 0xa734f799 xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/ipv6 0x0b0d888b icmpv6_err_convert
+EXPORT_SYMBOL net/ipv6/ipv6 0x1ebef1e0 inet6_register_protosw
+EXPORT_SYMBOL net/ipv6/ipv6 0x25039015 ndisc_build_skb
+EXPORT_SYMBOL net/ipv6/ipv6 0x26897bc3 ip6_xmit
+EXPORT_SYMBOL net/ipv6/ipv6 0x2a6a9b45 ipv6_setsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0x2fd2fd98 ipv6_dev_get_saddr
+EXPORT_SYMBOL net/ipv6/ipv6 0x3bb969c5 nf_ip6_checksum
+EXPORT_SYMBOL net/ipv6/ipv6 0x415ce99b inet6_ioctl
+EXPORT_SYMBOL net/ipv6/ipv6 0x43fb81ba ipv6_chk_addr
+EXPORT_SYMBOL net/ipv6/ipv6 0x4583781b ip6_route_output
+EXPORT_SYMBOL net/ipv6/ipv6 0x471aca87 inet6_getname
+EXPORT_SYMBOL net/ipv6/ipv6 0x4b930104 ipv6_getsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0x52e5f259 xfrm6_prepare_output
+EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier
+EXPORT_SYMBOL net/ipv6/ipv6 0x54816ea1 ip6_route_me_harder
+EXPORT_SYMBOL net/ipv6/ipv6 0x6b78ba33 ipv6_chk_prefix
+EXPORT_SYMBOL net/ipv6/ipv6 0x6e2c7be8 inet6_unregister_protosw
+EXPORT_SYMBOL net/ipv6/ipv6 0x7bd8f035 rt6_lookup
+EXPORT_SYMBOL net/ipv6/ipv6 0x8a29cbd1 xfrm6_input_addr
+EXPORT_SYMBOL net/ipv6/ipv6 0x8d0c7350 compat_ipv6_getsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0x8e2578b4 ndisc_mc_map
+EXPORT_SYMBOL net/ipv6/ipv6 0xa490813b inet6_bind
+EXPORT_SYMBOL net/ipv6/ipv6 0xad60292b xfrm6_rcv
+EXPORT_SYMBOL net/ipv6/ipv6 0xaf8b1a14 ndisc_send_skb
+EXPORT_SYMBOL net/ipv6/ipv6 0xb55b26bd in6_dev_finish_destroy
+EXPORT_SYMBOL net/ipv6/ipv6 0xbb6afb30 compat_ipv6_setsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0xc33b64c5 ip6_frag_match
+EXPORT_SYMBOL net/ipv6/ipv6 0xc6119f54 inet6_del_protocol
+EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier
+EXPORT_SYMBOL net/ipv6/ipv6 0xd02e9529 xfrm6_rcv_spi
+EXPORT_SYMBOL net/ipv6/ipv6 0xd4f0607a icmpv6_send
+EXPORT_SYMBOL net/ipv6/ipv6 0xe31e6931 inet6_add_protocol
+EXPORT_SYMBOL net/ipv6/ipv6 0xe690b8fd __ipv6_isatap_ifid
+EXPORT_SYMBOL net/ipv6/ipv6 0xf13203be ip6_frag_init
+EXPORT_SYMBOL net/ipv6/ipv6 0xf5bf1533 inet6_release
+EXPORT_SYMBOL net/ipv6/ipv6 0xf743d71e ipv6_push_nfrag_opts
+EXPORT_SYMBOL net/ipv6/ipv6 0xfbe7c6cd xfrm6_find_1stfragopt
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x2977f9b2 ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8b8d99cd ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xc7cf612e ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xf8bd64a8 ip6t_do_table
+EXPORT_SYMBOL net/ipv6/tunnel6 0x8e38cef3 xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/tunnel6 0x9cdcbc06 xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x0db9e3c3 xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xb380c036 xfrm6_tunnel_free_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xd34971d1 xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x6dbc3b6a l2tp_recv_common
+EXPORT_SYMBOL net/l2tp/l2tp_core 0xe483c045 l2tp_tunnel_destruct
+EXPORT_SYMBOL net/llc/llc 0x0403142e llc_set_station_handler
+EXPORT_SYMBOL net/llc/llc 0x04de2972 llc_build_and_send_ui_pkt
+EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack
+EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list
+EXPORT_SYMBOL net/llc/llc 0x9656f8a0 llc_sap_list_lock
+EXPORT_SYMBOL net/llc/llc 0x9c412ecd llc_sap_close
+EXPORT_SYMBOL net/llc/llc 0x9eca32ad llc_sap_find
+EXPORT_SYMBOL net/llc/llc 0xc88252a5 llc_sap_open
+EXPORT_SYMBOL net/llc/llc 0xd9472d5e llc_mac_hdr_init
+EXPORT_SYMBOL net/llc/llc 0xf1633be4 llc_add_pack
+EXPORT_SYMBOL net/mac80211/mac80211 0x014749c1 ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x02818cc2 ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x0639f6aa ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x0c860e65 ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x1ed69949 ieee80211_tx_status
+EXPORT_SYMBOL net/mac80211/mac80211 0x2296a6a1 ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x28bb65bd ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x30275db1 ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x3e65187e ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x44f6741d ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x50961bb6 ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x556ac022 ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x5a7836a8 ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0x6915b462 __ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x6c6f35f8 ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x6f61cfe3 wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x783e3308 ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x78b3c4ab ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0x81aeec13 ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x8cb59284 ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0x90b2cf6f __ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x93055767 ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x986032da ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x98cf7340 rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x9ee81528 __ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0x9fb13ef6 ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xa564bb03 __ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xae7897e6 ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xb1a90a6e ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0xc3b1e3ad ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xc5a2e758 ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xcd17dd15 ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0xd1182d28 ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xee1a134f ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xef65e6c1 ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xf90becc5 ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0xfe492281 ieee80211_get_tkip_key
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0fc57475 ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x32244fb3 register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x352f1c86 register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4ebc3dd1 ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5d02b096 unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x88749956 ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x92a9f047 unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa2af4973 ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xbca11ae0 ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd9e04e76 register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf8c48bfa ip_vs_skb_replace
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0x8ea967cf __nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xa90d4dbd __nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xbf6dc349 nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x34a43b78 xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x466c7d3b xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0x8530de87 xt_unregister_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0xa3bb1544 xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xac48bb8e xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xbc085f90 xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xbc73e148 xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xc0a807c6 xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xda6ab3eb xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xf7d9c883 xt_register_targets
+EXPORT_SYMBOL net/phonet/phonet 0x76b28e62 phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0x7763cb22 phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0x834dae94 pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0xa46460e8 phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0xa9df7cd7 phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0xcf2b6253 pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0xd7de6ba3 pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0xe0a98ecc pn_skb_send
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x08984f0e rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x09ce165a rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0dd31ba9 rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x52f68dfb rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x53996791 rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5b145a09 key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x81f1b678 rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x95e11fdc rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb2b2d027 rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb2c8f55a rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb2e4330a rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xce63a88b rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd4107d57 rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdb3ec80d rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xefc67c0e rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x10111894 svc_pool_stats_open
+EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes
+EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast
+EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected
+EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect
+EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport
+EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x1cc16133 tipc_send_buf
+EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send
+EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge
+EXPORT_SYMBOL net/tipc/tipc 0x2f9b2f96 tipc_reject_msg
+EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach
+EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port
+EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw
+EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode
+EXPORT_SYMBOL net/tipc/tipc 0x59ba4dc6 tipc_recv_msg
+EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid
+EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0x71788e84 tipc_forward_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr
+EXPORT_SYMBOL net/tipc/tipc 0x8a64c545 tipc_continue
+EXPORT_SYMBOL net/tipc/tipc 0x979d02df tipc_get_port
+EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port
+EXPORT_SYMBOL net/tipc/tipc 0xaa403d2a tipc_send_buf_fast
+EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port
+EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown
+EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name
+EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish
+EXPORT_SYMBOL net/tipc/tipc 0xbd0eaa91 tipc_register_media
+EXPORT_SYMBOL net/tipc/tipc 0xc531cb59 tipc_forward_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0xce1d0904 tipc_createport
+EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name
+EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity
+EXPORT_SYMBOL net/tipc/tipc 0xd7ad24a1 tipc_send_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach
+EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer
+EXPORT_SYMBOL net/tipc/tipc 0xe22ac810 tipc_send_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0xe3d4b40d tipc_createport_raw
+EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished
+EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle
+EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer
+EXPORT_SYMBOL net/wimax/wimax 0x2595b008 wimax_rfkill
+EXPORT_SYMBOL net/wimax/wimax 0x3392b322 wimax_reset
+EXPORT_SYMBOL net/wireless/cfg80211 0x05f1cec4 __ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0fd801db cfg80211_rx_action
+EXPORT_SYMBOL net/wireless/cfg80211 0x1259d526 cfg80211_action_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x1c23d2ea cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0x1e96b1b3 cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x258df193 cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x2a48c162 regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x2ad628c9 wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0x32fc09ad cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0x34e8cebf __cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x38042cf9 cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0x3c0cc815 wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x47771516 cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0x5cb655eb cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x5d2cc821 cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x5fc310fc cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x69e80fb1 cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x774a236f wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x7c4edaa6 cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x83ec1886 __cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x84531a54 cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x847873f1 cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x8cd0e0ea wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0x94598ca2 wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x97dd46d3 ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x99aefbdb ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0xaae3174c ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0xb4cacfc9 cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0xb65d53cf cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xb91c1874 ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xc41a8a5d wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xc9ff90f2 cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0xcca6ee8a freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0xcd94cef6 cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xcf226f23 __cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0xcffbc044 cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0xd910ac8c wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0xdef0552b cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0xe0ac81ac ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0xe491d885 cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xf250adb6 cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xf36ae296 cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xf4a7404a cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xf676f931 cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0xf85f1548 cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0xf910b484 cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0xfa2305aa wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/lib80211 0x1c719ff0 lib80211_crypt_info_free
+EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x39e337cd lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x4685b320 lib80211_crypt_deinit_entries
+EXPORT_SYMBOL net/wireless/lib80211 0x6fea4d2b lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x93452ca5 lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0xc2d98e8f lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xcd62297e lib80211_crypt_quiescing
+EXPORT_SYMBOL net/wireless/lib80211 0xef8fb5f5 lib80211_crypt_info_init
+EXPORT_SYMBOL sound/ac97_bus 0xe3eaef81 ac97_bus_type
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x043b26d7 snd_seq_create_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x08aa4354 snd_seq_kernel_client_enqueue_blocking
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x45598f6a snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xfb7faee9 snd_seq_event_port_attach
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x03e56f05 snd_seq_device_register_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xbdd54964 snd_seq_device_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x0df2e317 snd_midi_event_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x26885c56 snd_midi_event_no_status
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7ab3ab98 snd_midi_event_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7ddf2a2e snd_midi_event_reset_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x85c27c7a snd_midi_event_reset_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x85e4ac82 snd_midi_event_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xd4945484 snd_midi_event_encode_byte
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xfcf964a7 snd_midi_event_free
+EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0xbfd79f9e snd_virmidi_new
+EXPORT_SYMBOL sound/core/snd 0x002a9a79 snd_jack_set_parent
+EXPORT_SYMBOL sound/core/snd 0x012da7c4 snd_component_add
+EXPORT_SYMBOL sound/core/snd 0x046c93ef snd_info_free_entry
+EXPORT_SYMBOL sound/core/snd 0x070f5c92 snd_add_device_sysfs_file
+EXPORT_SYMBOL sound/core/snd 0x0bf8d7e8 snd_ctl_make_virtual_master
+EXPORT_SYMBOL sound/core/snd 0x1691db25 snd_ctl_notify
+EXPORT_SYMBOL sound/core/snd 0x1756fff2 snd_cards
+EXPORT_SYMBOL sound/core/snd 0x1f30273b snd_ctl_remove_id
+EXPORT_SYMBOL sound/core/snd 0x22116fd4 snd_ctl_remove
+EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line
+EXPORT_SYMBOL sound/core/snd 0x263ca4d9 snd_ctl_new1
+EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource
+EXPORT_SYMBOL sound/core/snd 0x2cd55eea snd_device_new
+EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit
+EXPORT_SYMBOL sound/core/snd 0x46bea971 snd_device_register
+EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card
+EXPORT_SYMBOL sound/core/snd 0x4f145035 snd_card_free_when_closed
+EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio
+EXPORT_SYMBOL sound/core/snd 0x53c96f7d snd_info_register
+EXPORT_SYMBOL sound/core/snd 0x53dd079b snd_register_device_for_dev
+EXPORT_SYMBOL sound/core/snd 0x5531cb4f _snd_ctl_add_slave
+EXPORT_SYMBOL sound/core/snd 0x591fd3d0 snd_ctl_boolean_mono_info
+EXPORT_SYMBOL sound/core/snd 0x6206f451 snd_ctl_add
+EXPORT_SYMBOL sound/core/snd 0x62461c13 snd_card_proc_new
+EXPORT_SYMBOL sound/core/snd 0x660f1270 snd_seq_root
+EXPORT_SYMBOL sound/core/snd 0x6dcb1d74 snd_device_free
+EXPORT_SYMBOL sound/core/snd 0x6edaafae snd_card_register
+EXPORT_SYMBOL sound/core/snd 0x70e710a8 snd_unregister_device
+EXPORT_SYMBOL sound/core/snd 0x74d01393 snd_ctl_rename_id
+EXPORT_SYMBOL sound/core/snd 0x7a29ed42 snd_card_disconnect
+EXPORT_SYMBOL sound/core/snd 0x7cec1282 snd_card_file_add
+EXPORT_SYMBOL sound/core/snd 0x843a327e snd_card_set_id
+EXPORT_SYMBOL sound/core/snd 0x8d132c4b snd_info_create_module_entry
+EXPORT_SYMBOL sound/core/snd 0x8e492b0a snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major
+EXPORT_SYMBOL sound/core/snd 0x99b367a7 snd_pci_quirk_lookup
+EXPORT_SYMBOL sound/core/snd 0x9b47b1c0 snd_card_free
+EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str
+EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id
+EXPORT_SYMBOL sound/core/snd 0xa448f84d snd_info_create_card_entry
+EXPORT_SYMBOL sound/core/snd 0xb115b91d snd_ctl_register_ioctl
+EXPORT_SYMBOL sound/core/snd 0xb198e860 snd_ctl_unregister_ioctl
+EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data
+EXPORT_SYMBOL sound/core/snd 0xb8d2f277 snd_card_create
+EXPORT_SYMBOL sound/core/snd 0xb9be9692 snd_card_file_remove
+EXPORT_SYMBOL sound/core/snd 0xbff359c5 snd_jack_set_key
+EXPORT_SYMBOL sound/core/snd 0xcc3ff53a snd_ctl_find_numid
+EXPORT_SYMBOL sound/core/snd 0xcdb9d213 snd_jack_report
+EXPORT_SYMBOL sound/core/snd 0xd302166a snd_jack_new
+EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf
+EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio
+EXPORT_SYMBOL sound/core/snd 0xf0a6bbe6 snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL sound/core/snd 0xf3bda57c snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL sound/core/snd 0xfb607de1 snd_ctl_free_one
+EXPORT_SYMBOL sound/core/snd 0xfc255bed snd_ctl_find_id
+EXPORT_SYMBOL sound/core/snd-hwdep 0xbb61d82d snd_hwdep_new
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x212c45ce snd_dma_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x275fc2b4 snd_dma_reserve_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x7c4dfd6d snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x804a6cb4 snd_dma_get_reserved_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xc14e3052 snd_dma_alloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any
+EXPORT_SYMBOL sound/core/snd-pcm 0x03fb976b snd_pcm_limit_hw_rates
+EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x0f144269 snd_pcm_lib_mmap_noncached
+EXPORT_SYMBOL sound/core/snd-pcm 0x1ad647ce snd_pcm_mmap_data
+EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed
+EXPORT_SYMBOL sound/core/snd-pcm 0x2217da8b snd_pcm_hw_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x231105f0 snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x31c7405a snd_pcm_set_ops
+EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x38cb68ea snd_pcm_lib_write
+EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty
+EXPORT_SYMBOL sound/core/snd-pcm 0x3c189f97 snd_pcm_hw_rule_add
+EXPORT_SYMBOL sound/core/snd-pcm 0x4d622ca1 snd_pcm_stop
+EXPORT_SYMBOL sound/core/snd-pcm 0x4dc1b27e snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value
+EXPORT_SYMBOL sound/core/snd-pcm 0x534c2400 snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL sound/core/snd-pcm 0x5615d1f2 snd_pcm_lib_read
+EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence
+EXPORT_SYMBOL sound/core/snd-pcm 0x6114022e snd_pcm_lib_readv
+EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64
+EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width
+EXPORT_SYMBOL sound/core/snd-pcm 0x6ddf3a3f snd_pcm_release_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear
+EXPORT_SYMBOL sound/core/snd-pcm 0x75ab1eed snd_pcm_hw_constraint_list
+EXPORT_SYMBOL sound/core/snd-pcm 0x761531a0 snd_pcm_period_elapsed
+EXPORT_SYMBOL sound/core/snd-pcm 0x7b2f05ee snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL sound/core/snd-pcm 0x7f216c18 snd_pcm_set_sync
+EXPORT_SYMBOL sound/core/snd-pcm 0x807fb050 snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL sound/core/snd-pcm 0x84964395 _snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x8882926a snd_pcm_open_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0x891f36cd snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL sound/core/snd-pcm 0x8af2ef47 snd_pcm_notify
+EXPORT_SYMBOL sound/core/snd-pcm 0x9e6a6e13 snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0xa4e61e10 snd_pcm_lib_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned
+EXPORT_SYMBOL sound/core/snd-pcm 0xa8c8c0ff snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xb6c5b162 snd_pcm_new_stream
+EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL sound/core/snd-pcm 0xbd6e47ba snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL sound/core/snd-pcm 0xc0b171b0 snd_pcm_new
+EXPORT_SYMBOL sound/core/snd-pcm 0xc1eac459 snd_pcm_hw_param_first
+EXPORT_SYMBOL sound/core/snd-pcm 0xc9941999 snd_pcm_hw_constraint_step
+EXPORT_SYMBOL sound/core/snd-pcm 0xcdc06da3 snd_pcm_hw_param_last
+EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xdfd21c27 snd_pcm_lib_writev
+EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width
+EXPORT_SYMBOL sound/core/snd-pcm 0xee872c43 snd_pcm_lib_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum
+EXPORT_SYMBOL sound/core/snd-pcm 0xf6d7e5d6 snd_pcm_link_rwlock
+EXPORT_SYMBOL sound/core/snd-pcm 0xf7441771 snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0xf7804218 snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL sound/core/snd-pcm 0xfc1b5770 snd_pcm_kernel_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0xff79e39c snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x13950560 snd_rawmidi_transmit
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x1b0d53ac snd_rawmidi_info_select
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x2f9a4277 snd_rawmidi_kernel_write
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x3bdecbf8 snd_rawmidi_drain_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x46635847 snd_rawmidi_kernel_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x49f3f91e snd_rawmidi_set_ops
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x54cef338 snd_rawmidi_kernel_release
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x85d1fa6a snd_rawmidi_transmit_peek
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x883563b2 snd_rawmidi_transmit_empty
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x918cb7fb snd_rawmidi_kernel_open
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x92739349 snd_rawmidi_drain_input
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xaa63183a snd_rawmidi_output_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xd90806fc snd_rawmidi_transmit_ack
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xe390bf5b snd_rawmidi_input_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xef4b9c6d snd_rawmidi_receive
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xfaf13404 snd_rawmidi_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xfeb203ea snd_rawmidi_drop_output
+EXPORT_SYMBOL sound/core/snd-timer 0x0bdb572b snd_timer_pause
+EXPORT_SYMBOL sound/core/snd-timer 0x18d2937c snd_timer_open
+EXPORT_SYMBOL sound/core/snd-timer 0x2e9343d7 snd_timer_new
+EXPORT_SYMBOL sound/core/snd-timer 0x2ebc0850 snd_timer_interrupt
+EXPORT_SYMBOL sound/core/snd-timer 0x52eaaf5c snd_timer_global_new
+EXPORT_SYMBOL sound/core/snd-timer 0x6462b9bc snd_timer_close
+EXPORT_SYMBOL sound/core/snd-timer 0x6bfd2605 snd_timer_resolution
+EXPORT_SYMBOL sound/core/snd-timer 0x7d71211b snd_timer_continue
+EXPORT_SYMBOL sound/core/snd-timer 0x880ce226 snd_timer_global_register
+EXPORT_SYMBOL sound/core/snd-timer 0x8b7ebaf2 snd_timer_notify
+EXPORT_SYMBOL sound/core/snd-timer 0x9f36c9b9 snd_timer_start
+EXPORT_SYMBOL sound/core/snd-timer 0xed6ca27f snd_timer_stop
+EXPORT_SYMBOL sound/core/snd-timer 0xfd65d3f9 snd_timer_global_free
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc7cb810d snd_mpu401_uart_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2622b82f snd_opl3_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x2ac5c98a snd_opl3_find_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x6ccc96e1 snd_opl3_hwdep_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8037c4b6 snd_opl3_timer_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa2017581 snd_opl3_init
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xe5cbc18c snd_opl3_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xed54a2fc snd_opl3_reset
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf3b806d4 snd_opl3_create
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xffadd3b5 snd_opl3_load_patch
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0f0a80e1 snd_vx_check_reg_bit
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x44f9b47a snd_vx_load_boot_image
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6fcbe347 snd_vx_free_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8176c9a4 snd_vx_dsp_load
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x9fb06a06 snd_vx_setup_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb8ab0d4a snd_vx_dsp_boot
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xd9de5289 snd_vx_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x0bb341ac snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x0c59202c snd_ak4114_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x35bc47da snd_ak4114_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x970b26a1 snd_ak4114_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xb6a73696 snd_ak4114_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf760a723 snd_ak4114_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x11c93c0e snd_ak4117_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x2ff9c99b snd_ak4117_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x52155a21 snd_ak4117_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x5b5621db snd_ak4117_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xc7fb32df snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xf94fac1d snd_ak4117_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x2bb1f03a snd_akm4xxx_reset
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x33d8a98c snd_akm4xxx_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x53eb3fea snd_akm4xxx_init
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x71dfb937 snd_akm4xxx_write
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x1165c3d4 snd_pt2258_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xa05edd4d snd_pt2258_reset
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x325a45cd snd_tea575x_init
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x98b92718 snd_tea575x_exit
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x308d4fa2 snd_cs8427_iec958_pcm
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x7e697b3d snd_cs8427_iec958_active
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xb17739fc snd_cs8427_reg_write
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xe8251106 snd_cs8427_create
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xf8d1d4f4 snd_cs8427_iec958_build
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x45442d56 snd_i2c_probeaddr
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x65c98240 snd_i2c_device_free
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x87633fb2 snd_i2c_device_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x98c2c1a9 snd_i2c_sendbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xba734b59 snd_i2c_readbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xd6d2abef snd_i2c_bus_create
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0a29f908 snd_ac97_bus
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0ee88fd1 snd_ac97_set_rate
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x29f87513 snd_ac97_update_power
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x412abeeb snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4b51cf4f snd_ac97_tune_hardware
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4eb431be snd_ac97_write
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5bd0465f snd_ac97_read
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6fe85814 snd_ac97_write_cache
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x844dd09b snd_ac97_mixer
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa74d81fc snd_ac97_pcm_assign
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xaf876174 snd_ac97_get_short_name
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc4a0e349 snd_ac97_update
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcd9f29bb snd_ac97_update_bits
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdb820b43 snd_ac97_pcm_open
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe09c2ae1 snd_ac97_pcm_close
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0878edcb snd_emu10k1_memblk_map
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0e5a8987 snd_emu10k1_synth_bzero
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x78094da2 snd_emu10k1_ptr_write
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x7c6cc242 snd_emu10k1_ptr_read
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8ba2002c snd_emu10k1_synth_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x95e2c7f3 snd_emu10k1_synth_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xb7791ebd snd_emu10k1_voice_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xd74adc6a snd_emu10k1_voice_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xee26bffa snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0xa4261372 snd_hda_parse_generic_codec
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x370daf52 snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x73ef347c snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xd529d262 snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6436910f snd_trident_alloc_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x67fa5378 snd_trident_write_voice_regs
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x6a9619e5 snd_trident_start_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x75b66b0a snd_trident_free_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xc818dae4 snd_trident_stop_voice
+EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x51b925e1 uda134x_dai
+EXPORT_SYMBOL sound/soundcore 0x094aa5e9 sound_class
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x0c645911 snd_emux_terminate_all
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x681b15ed snd_emux_unlock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xa4b19cee snd_emux_register
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xb79a99cb snd_emux_free
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xd113fc05 snd_emux_lock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xd5b99588 snd_emux_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x33dc5202 snd_util_memhdr_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x43178f7e snd_util_mem_avail
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x5d25ada3 __snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x694c6b7a snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x74624765 __snd_util_memblk_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x80b8d66f snd_util_memhdr_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xc535653c snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xe6ce4268 __snd_util_mem_free
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x154ea890 snd_usbmidi_create
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect
+EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list
+EXPORT_SYMBOL vmlinux 0x0001fde5 read_cache_page
+EXPORT_SYMBOL vmlinux 0x000b52bd nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0x006aa0fb fb_find_mode
+EXPORT_SYMBOL vmlinux 0x006e7cc6 ida_remove
+EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x008693d7 __nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x0095d3ef unlock_super
+EXPORT_SYMBOL vmlinux 0x00a5a4c2 vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x00aa3e50 generic_fillattr
+EXPORT_SYMBOL vmlinux 0x00bbce52 remove_inode_hash
+EXPORT_SYMBOL vmlinux 0x00e49ca7 rfkill_unregister
+EXPORT_SYMBOL vmlinux 0x00ebb967 idr_destroy
+EXPORT_SYMBOL vmlinux 0x01000e51 schedule
+EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr
+EXPORT_SYMBOL vmlinux 0x0116e5e1 inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x0126b5dc skb_split
+EXPORT_SYMBOL vmlinux 0x01407911 is_bad_inode
+EXPORT_SYMBOL vmlinux 0x014873cb security_path_rename
+EXPORT_SYMBOL vmlinux 0x0184bfae tc_classify
+EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap
+EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data
+EXPORT_SYMBOL vmlinux 0x01c928d8 journal_init_dev
+EXPORT_SYMBOL vmlinux 0x01cf82b8 neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x01d33349 i2c_master_send
+EXPORT_SYMBOL vmlinux 0x01e02bba sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x01e02fc2 drm_gem_object_release
+EXPORT_SYMBOL vmlinux 0x01f67911 ___copy_in_user
+EXPORT_SYMBOL vmlinux 0x02099dc4 block_prepare_write
+EXPORT_SYMBOL vmlinux 0x020af0e4 __blockdev_direct_IO_newtrunc
+EXPORT_SYMBOL vmlinux 0x020f3a94 scsi_get_command
+EXPORT_SYMBOL vmlinux 0x0214ab19 tcp_disconnect
+EXPORT_SYMBOL vmlinux 0x021db662 __getblk
+EXPORT_SYMBOL vmlinux 0x0228bda0 udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x0246ce9c rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x024fe8d5 udp_table
+EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x02749fab pci_find_bus
+EXPORT_SYMBOL vmlinux 0x028d5784 mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table
+EXPORT_SYMBOL vmlinux 0x02cf5b22 pipe_unlock
+EXPORT_SYMBOL vmlinux 0x02d69014 scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02eb367d register_gifconf
+EXPORT_SYMBOL vmlinux 0x02fad106 fb_blank
+EXPORT_SYMBOL vmlinux 0x02fcc4e0 skb_make_writable
+EXPORT_SYMBOL vmlinux 0x030bf84c __downgrade_write
+EXPORT_SYMBOL vmlinux 0x031ba9bf atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0x031e4fd9 file_fsync
+EXPORT_SYMBOL vmlinux 0x031ee678 xor_niagara_2
+EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x037a0cba kfree
+EXPORT_SYMBOL vmlinux 0x038be199 elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x03b53058 clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03cbabca tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x03e716e0 mpage_readpage
+EXPORT_SYMBOL vmlinux 0x03ea9cf3 sun4v_hvapi_get
+EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x0400429e set_irq_chip
+EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x0479fd5a cfb_fillrect
+EXPORT_SYMBOL vmlinux 0x047e4dae blk_stop_queue
+EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x048a50ce fb_set_var
+EXPORT_SYMBOL vmlinux 0x05186ca4 flush_icache_range
+EXPORT_SYMBOL vmlinux 0x055a5670 serio_interrupt
+EXPORT_SYMBOL vmlinux 0x05923152 scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0x05b478d2 pci_restore_state
+EXPORT_SYMBOL vmlinux 0x05baaba0 wait_for_completion
+EXPORT_SYMBOL vmlinux 0x05bb5141 dev_disable_lro
+EXPORT_SYMBOL vmlinux 0x05bbfafe journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x05c214ad i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0x05d58f78 blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0x0615b502 init_buffer
+EXPORT_SYMBOL vmlinux 0x061651be strcat
+EXPORT_SYMBOL vmlinux 0x062a1049 request_key_async
+EXPORT_SYMBOL vmlinux 0x066d641b drm_init
+EXPORT_SYMBOL vmlinux 0x0671792f sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx
+EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc
+EXPORT_SYMBOL vmlinux 0x06e22983 of_find_node_by_path
+EXPORT_SYMBOL vmlinux 0x06ed660a phy_attach_direct
+EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn
+EXPORT_SYMBOL vmlinux 0x071b4fbd idr_get_next
+EXPORT_SYMBOL vmlinux 0x07396179 phy_enable_interrupts
+EXPORT_SYMBOL vmlinux 0x074e93d0 pci_target_state
+EXPORT_SYMBOL vmlinux 0x0777463c scsi_put_command
+EXPORT_SYMBOL vmlinux 0x078900b2 ethtool_ntuple_flush
+EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable
+EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong
+EXPORT_SYMBOL vmlinux 0x07a4f92a filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x08183775 lock_fb_info
+EXPORT_SYMBOL vmlinux 0x081d4c72 blk_queue_ordered
+EXPORT_SYMBOL vmlinux 0x0826b0dc __flush_dcache_range
+EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses
+EXPORT_SYMBOL vmlinux 0x0836695c drm_sman_takedown
+EXPORT_SYMBOL vmlinux 0x089a7be8 of_device_unregister
+EXPORT_SYMBOL vmlinux 0x089f3742 of_unregister_driver
+EXPORT_SYMBOL vmlinux 0x089fdc8a __down_read_trylock
+EXPORT_SYMBOL vmlinux 0x08b4070f genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0x08c14c4e dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x08ec8574 phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var
+EXPORT_SYMBOL vmlinux 0x090579a7 blk_remove_plug
+EXPORT_SYMBOL vmlinux 0x09114b98 eth_mac_addr
+EXPORT_SYMBOL vmlinux 0x093ca579 disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages
+EXPORT_SYMBOL vmlinux 0x09526ea0 dev_set_mtu
+EXPORT_SYMBOL vmlinux 0x09775cdc kref_get
+EXPORT_SYMBOL vmlinux 0x097ebd40 qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d4c977 i2c_transfer
+EXPORT_SYMBOL vmlinux 0x09dc70dc unregister_netdev
+EXPORT_SYMBOL vmlinux 0x09f717b3 dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a2b4633 xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0x0a50d8c8 inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x0a6faee9 drm_gem_object_lookup
+EXPORT_SYMBOL vmlinux 0x0a76e46b alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0x0aaf6902 of_dev_get
+EXPORT_SYMBOL vmlinux 0x0ab20b31 i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x0ab39df2 mnt_pin
+EXPORT_SYMBOL vmlinux 0x0abba3da drm_pci_alloc
+EXPORT_SYMBOL vmlinux 0x0abdb743 seq_path
+EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0ace3fed ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all
+EXPORT_SYMBOL vmlinux 0x0b0c0353 alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b351ada mempool_resize
+EXPORT_SYMBOL vmlinux 0x0b51f534 pneigh_lookup
+EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol
+EXPORT_SYMBOL vmlinux 0x0b7725a2 inet_ioctl
+EXPORT_SYMBOL vmlinux 0x0b7db907 dev_driver_string
+EXPORT_SYMBOL vmlinux 0x0b8cadc9 inet_csk_accept
+EXPORT_SYMBOL vmlinux 0x0b96e4bf journal_abort
+EXPORT_SYMBOL vmlinux 0x0bbff687 skb_unlink
+EXPORT_SYMBOL vmlinux 0x0bc071a6 jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0x0bf1de71 qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0x0bf4284d unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0x0c12dcbf phy_attach
+EXPORT_SYMBOL vmlinux 0x0c195e20 down_timeout
+EXPORT_SYMBOL vmlinux 0x0c35f2c6 sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c6d016f dst_alloc
+EXPORT_SYMBOL vmlinux 0x0c7c78dc simple_dir_operations
+EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0c992205 path_is_under
+EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0cf00b2c nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0x0d45543d wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d80ee07 drm_release
+EXPORT_SYMBOL vmlinux 0x0d861646 vmtruncate
+EXPORT_SYMBOL vmlinux 0x0d9ce8f1 register_filesystem
+EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0da2fa87 rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0x0dae21de jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0x0db0b078 km_policy_expired
+EXPORT_SYMBOL vmlinux 0x0dd38bc4 drm_mode_connector_update_edid_property
+EXPORT_SYMBOL vmlinux 0x0dd89752 skb_pull
+EXPORT_SYMBOL vmlinux 0x0dec9f2f dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0x0df2c195 bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0x0e374584 dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0x0e43bdc9 pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0x0e52592a panic
+EXPORT_SYMBOL vmlinux 0x0ea04f65 drm_mode_create_dirty_info_property
+EXPORT_SYMBOL vmlinux 0x0ea3b4ea i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free
+EXPORT_SYMBOL vmlinux 0x0ebeca58 ebus_dma_prepare
+EXPORT_SYMBOL vmlinux 0x0ec0bfbd filp_close
+EXPORT_SYMBOL vmlinux 0x0ecbcc11 tcp_child_process
+EXPORT_SYMBOL vmlinux 0x0ee5f0e3 sbus_set_sbus64
+EXPORT_SYMBOL vmlinux 0x0f1f6605 test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0x0f27fee6 gen_pool_free
+EXPORT_SYMBOL vmlinux 0x0f378a1e ___copy_from_user
+EXPORT_SYMBOL vmlinux 0x0f439a7f drm_mode_validate_clocks
+EXPORT_SYMBOL vmlinux 0x0f8c98af ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x0f9e83ac sk_filter
+EXPORT_SYMBOL vmlinux 0x0fa0bb44 load_nls_default
+EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fc5e8eb radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0x0fdbd13c simple_write_begin
+EXPORT_SYMBOL vmlinux 0x0ffa8302 _atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x0ffce4c3 skb_pad
+EXPORT_SYMBOL vmlinux 0x100774cd xfrm_state_add
+EXPORT_SYMBOL vmlinux 0x10137162 pskb_copy
+EXPORT_SYMBOL vmlinux 0x1035c922 dst_discard
+EXPORT_SYMBOL vmlinux 0x106831ff blk_integrity_register
+EXPORT_SYMBOL vmlinux 0x106a0d70 journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x108c427f fb_class
+EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint
+EXPORT_SYMBOL vmlinux 0x10902bf7 insb
+EXPORT_SYMBOL vmlinux 0x10964c15 ip_fragment
+EXPORT_SYMBOL vmlinux 0x10a3296e f_setown
+EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10ede8a6 bdi_destroy
+EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu
+EXPORT_SYMBOL vmlinux 0x10ee31af generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype
+EXPORT_SYMBOL vmlinux 0x110c906f phy_register_fixup
+EXPORT_SYMBOL vmlinux 0x11109680 sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x115dbe0a generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x118f01ea putname
+EXPORT_SYMBOL vmlinux 0x119e7829 journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin
+EXPORT_SYMBOL vmlinux 0x11fa3523 read_cache_pages
+EXPORT_SYMBOL vmlinux 0x121e7789 lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x12436d33 security_path_chown
+EXPORT_SYMBOL vmlinux 0x125b9a1e __set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0x127bdb3f page_readlink
+EXPORT_SYMBOL vmlinux 0x12883268 __page_symlink
+EXPORT_SYMBOL vmlinux 0x128e1864 filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0x12a88906 register_quota_format
+EXPORT_SYMBOL vmlinux 0x12c6276a drm_buffer_read_object
+EXPORT_SYMBOL vmlinux 0x12d09a67 sun4v_hvapi_unregister
+EXPORT_SYMBOL vmlinux 0x12ea337e outsb
+EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x130a5331 pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x130b216d tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0x1316441b put_mnt_ns
+EXPORT_SYMBOL vmlinux 0x131ba16f simple_empty
+EXPORT_SYMBOL vmlinux 0x13444cbf nf_log_register
+EXPORT_SYMBOL vmlinux 0x13531e60 dev_uc_del
+EXPORT_SYMBOL vmlinux 0x1361fad9 dquot_initialize
+EXPORT_SYMBOL vmlinux 0x137b91e8 of_find_node_by_type
+EXPORT_SYMBOL vmlinux 0x137d80e2 napi_complete
+EXPORT_SYMBOL vmlinux 0x138ae115 __sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0x13a6745c generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0x13ab07f2 blk_init_tags
+EXPORT_SYMBOL vmlinux 0x13c379b1 uart_suspend_port
+EXPORT_SYMBOL vmlinux 0x13ca9827 __scsi_put_command
+EXPORT_SYMBOL vmlinux 0x13d78aad update_region
+EXPORT_SYMBOL vmlinux 0x13ebcb3b arp_broken_ops
+EXPORT_SYMBOL vmlinux 0x141320c7 blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x14234016 follow_pfn
+EXPORT_SYMBOL vmlinux 0x142b8b35 drm_buffer_copy_from_user
+EXPORT_SYMBOL vmlinux 0x143252e7 __inet6_hash
+EXPORT_SYMBOL vmlinux 0x1452db40 blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0x148f3f9b __lock_page
+EXPORT_SYMBOL vmlinux 0x14924584 sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0x1498cfbb dw_spi_add_host
+EXPORT_SYMBOL vmlinux 0x14b32968 datagram_poll
+EXPORT_SYMBOL vmlinux 0x14b8befc rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0x14c5767b phy_start
+EXPORT_SYMBOL vmlinux 0x15071c97 pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0x1514417b eth_header
+EXPORT_SYMBOL vmlinux 0x152735e7 inode_init_owner
+EXPORT_SYMBOL vmlinux 0x154038b9 jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x156f116c register_exec_domain
+EXPORT_SYMBOL vmlinux 0x15974a5c net2280_set_fifo_mode
+EXPORT_SYMBOL vmlinux 0x15cb745d scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0x15d05171 tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0x15dbdb39 generic_show_options
+EXPORT_SYMBOL vmlinux 0x160b004a max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x1611f89b scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x16635bde dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0x16637f1d tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0x16774c9a bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x16dd4565 flush_old_exec
+EXPORT_SYMBOL vmlinux 0x16e69d14 tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0x16e9a421 __blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x16f112dd write_inode_now
+EXPORT_SYMBOL vmlinux 0x170aee64 tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x171219cf remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0x1716493b register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x1741b69a set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0x1784d533 uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0x17850e12 skb_put
+EXPORT_SYMBOL vmlinux 0x17a3d8e2 security_path_mkdir
+EXPORT_SYMBOL vmlinux 0x17b76403 drm_core_ioremapfree
+EXPORT_SYMBOL vmlinux 0x17bc6104 sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x17c3f05d vio_driver_init
+EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0x17cd6d56 elv_register_queue
+EXPORT_SYMBOL vmlinux 0x17d7b525 dquot_scan_active
+EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17f15b38 rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0x17f2a361 dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x17fb2c68 udplite_prot
+EXPORT_SYMBOL vmlinux 0x1804c18f task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0x1814480e rfkill_register
+EXPORT_SYMBOL vmlinux 0x181ecd71 shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x184da1ab i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0x1867ee94 tty_vhangup
+EXPORT_SYMBOL vmlinux 0x1899049e dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x18d0a9d4 journal_stop
+EXPORT_SYMBOL vmlinux 0x18e10df8 pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0x1934cc6b balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x195fb884 blk_start_request
+EXPORT_SYMBOL vmlinux 0x196aff3e dev_base_lock
+EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19a0c0d8 of_register_driver
+EXPORT_SYMBOL vmlinux 0x19a155fa scsi_finish_command
+EXPORT_SYMBOL vmlinux 0x19ae2011 arp_create
+EXPORT_SYMBOL vmlinux 0x19ae703e generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0x19b0c972 write_one_page
+EXPORT_SYMBOL vmlinux 0x19dcc44b tty_port_init
+EXPORT_SYMBOL vmlinux 0x1a031e81 textsearch_unregister
+EXPORT_SYMBOL vmlinux 0x1a174a24 vfs_read
+EXPORT_SYMBOL vmlinux 0x1a217aa4 ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0x1a2e58ae of_find_compatible_node
+EXPORT_SYMBOL vmlinux 0x1a35b649 d_alloc
+EXPORT_SYMBOL vmlinux 0x1a35bcbc VISenter
+EXPORT_SYMBOL vmlinux 0x1a6daddf down_read
+EXPORT_SYMBOL vmlinux 0x1a7b1d7d blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x1a7fdacd scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x1a882364 down_killable
+EXPORT_SYMBOL vmlinux 0x1a92d99b xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in
+EXPORT_SYMBOL vmlinux 0x1aa759d0 ns_to_timeval
+EXPORT_SYMBOL vmlinux 0x1ab1d0d0 find_vma
+EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1ad9f95a prom_finddevice
+EXPORT_SYMBOL vmlinux 0x1adbc514 tcp_prot
+EXPORT_SYMBOL vmlinux 0x1aec451d xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b1fe7cb sk_stream_error
+EXPORT_SYMBOL vmlinux 0x1b36b70a phy_disconnect
+EXPORT_SYMBOL vmlinux 0x1b440cb4 devm_free_irq
+EXPORT_SYMBOL vmlinux 0x1b4a614d scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0x1b52e1fb proto_register
+EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton
+EXPORT_SYMBOL vmlinux 0x1b750ae1 journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b94d345 dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1b9e1739 ebus_dma_irq_enable
+EXPORT_SYMBOL vmlinux 0x1bd7948f textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x1bdc1b5b igrab
+EXPORT_SYMBOL vmlinux 0x1bf391ee blk_start_queue
+EXPORT_SYMBOL vmlinux 0x1bfc103e drm_master_put
+EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c25de8f uart_add_one_port
+EXPORT_SYMBOL vmlinux 0x1c531799 kfree_skb
+EXPORT_SYMBOL vmlinux 0x1c615431 abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check
+EXPORT_SYMBOL vmlinux 0x1c934200 tcf_action_exec
+EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cd0f6c0 mempool_alloc
+EXPORT_SYMBOL vmlinux 0x1d0b08d2 ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0x1d2fb410 drm_gem_mmap
+EXPORT_SYMBOL vmlinux 0x1d357ed2 jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0x1d7de83f drm_ioctl
+EXPORT_SYMBOL vmlinux 0x1d89c30a alloc_disk_node
+EXPORT_SYMBOL vmlinux 0x1d8c1f1c ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x1d9966bd file_remove_suid
+EXPORT_SYMBOL vmlinux 0x1d9e857c sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1dddc4c0 drm_gem_object_alloc
+EXPORT_SYMBOL vmlinux 0x1e3374e2 sk_alloc
+EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr
+EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1eaca710 simple_set_mnt
+EXPORT_SYMBOL vmlinux 0x1eb37c8b atomic64_add
+EXPORT_SYMBOL vmlinux 0x1ec63ed1 tty_port_put
+EXPORT_SYMBOL vmlinux 0x1ed45f32 generic_write_end
+EXPORT_SYMBOL vmlinux 0x1ed8e8ad generic_block_bmap
+EXPORT_SYMBOL vmlinux 0x1eee807b drm_mm_search_free
+EXPORT_SYMBOL vmlinux 0x1ef6bd27 thaw_process
+EXPORT_SYMBOL vmlinux 0x1efcb547 pipe_to_file
+EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set
+EXPORT_SYMBOL vmlinux 0x1f00b47f __xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x1f072c59 drm_property_add_enum
+EXPORT_SYMBOL vmlinux 0x1f0d6969 xfrm_register_km
+EXPORT_SYMBOL vmlinux 0x1f15e2b0 inet_bind
+EXPORT_SYMBOL vmlinux 0x1f1bc6aa ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0x1f22e863 fget
+EXPORT_SYMBOL vmlinux 0x1f8dd0f3 qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x1f9ee0ba xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x1fd647c7 netpoll_poll
+EXPORT_SYMBOL vmlinux 0x1fe96352 inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region
+EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul
+EXPORT_SYMBOL vmlinux 0x200ee330 pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x20459ad7 tcp_check_req
+EXPORT_SYMBOL vmlinux 0x204cdf61 i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0x20645642 drm_debug
+EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x208109cb xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0x20938a56 __blk_run_queue
+EXPORT_SYMBOL vmlinux 0x20a1c4d8 pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0x20a94f51 drm_rmmap
+EXPORT_SYMBOL vmlinux 0x20c826f0 i2c_bit_add_numbered_bus
+EXPORT_SYMBOL vmlinux 0x2114d881 sock_recvmsg
+EXPORT_SYMBOL vmlinux 0x21259329 jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x21451ac4 drm_sman_owner_cleanup
+EXPORT_SYMBOL vmlinux 0x2147d348 blk_insert_request
+EXPORT_SYMBOL vmlinux 0x215cc14c ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16
+EXPORT_SYMBOL vmlinux 0x216639a1 bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0x2194d1fd bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0x21d8eba3 jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x21e00793 sock_no_listen
+EXPORT_SYMBOL vmlinux 0x21e3fce2 filemap_flush
+EXPORT_SYMBOL vmlinux 0x21e664af kernel_connect
+EXPORT_SYMBOL vmlinux 0x21ef987c set_security_override
+EXPORT_SYMBOL vmlinux 0x2228449a jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq
+EXPORT_SYMBOL vmlinux 0x223923f7 lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x22423abf sget
+EXPORT_SYMBOL vmlinux 0x22497c9e drm_vblank_init
+EXPORT_SYMBOL vmlinux 0x2260325f security_inode_permission
+EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log
+EXPORT_SYMBOL vmlinux 0x2274b7a4 do_splice_from
+EXPORT_SYMBOL vmlinux 0x2288378f system_state
+EXPORT_SYMBOL vmlinux 0x22978635 vfs_follow_link
+EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound
+EXPORT_SYMBOL vmlinux 0x22bd846b dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0x22c740c9 inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x2315b19f blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul
+EXPORT_SYMBOL vmlinux 0x234509f3 strncat
+EXPORT_SYMBOL vmlinux 0x23986496 sock_create
+EXPORT_SYMBOL vmlinux 0x23e63c4e pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0x23fbb281 dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node
+EXPORT_SYMBOL vmlinux 0x2405fef0 scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x242766df xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x242dd227 inode_init_always
+EXPORT_SYMBOL vmlinux 0x24353978 inet_frags_init
+EXPORT_SYMBOL vmlinux 0x2454b457 dquot_quota_on_path
+EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x24662e7c drm_mode_create
+EXPORT_SYMBOL vmlinux 0x246d7ac6 loop_register_transfer
+EXPORT_SYMBOL vmlinux 0x24affea8 gen_pool_create
+EXPORT_SYMBOL vmlinux 0x24bd930a outsl
+EXPORT_SYMBOL vmlinux 0x24d8170f tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0x24dcc98f sunserial_register_minors
+EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function
+EXPORT_SYMBOL vmlinux 0x250bce7d kill_fasync
+EXPORT_SYMBOL vmlinux 0x252d7640 panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x2534132a of_match_node
+EXPORT_SYMBOL vmlinux 0x253aab2d phy_print_status
+EXPORT_SYMBOL vmlinux 0x2542a970 udp_disconnect
+EXPORT_SYMBOL vmlinux 0x2572a799 con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x25971b64 of_n_size_cells
+EXPORT_SYMBOL vmlinux 0x259fd615 eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0x25c3dbca prom_nextprop
+EXPORT_SYMBOL vmlinux 0x25f0f137 textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0x25f19519 journal_load
+EXPORT_SYMBOL vmlinux 0x25fcd561 request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0x25ffe8e9 tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0x26088870 console_stop
+EXPORT_SYMBOL vmlinux 0x261505d1 drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL vmlinux 0x261f21fd vlan_gro_frags
+EXPORT_SYMBOL vmlinux 0x26252cef dev_get_stats
+EXPORT_SYMBOL vmlinux 0x26470079 generic_setxattr
+EXPORT_SYMBOL vmlinux 0x264a6d00 xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0x26618317 skb_store_bits
+EXPORT_SYMBOL vmlinux 0x26911e4d gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x26e28ea8 user_path_at
+EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x26ff6428 tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0x2700b38a mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x273db8c7 genphy_resume
+EXPORT_SYMBOL vmlinux 0x27442d23 xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0x275505cd tty_shutdown
+EXPORT_SYMBOL vmlinux 0x277af174 boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0x27849a93 dev_close
+EXPORT_SYMBOL vmlinux 0x27864d57 memparse
+EXPORT_SYMBOL vmlinux 0x279ba725 drm_add_modes_noedid
+EXPORT_SYMBOL vmlinux 0x27b81daa xor_niagara_3
+EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x27c6eed0 fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic
+EXPORT_SYMBOL vmlinux 0x27d881b2 simple_transaction_get
+EXPORT_SYMBOL vmlinux 0x27f916bb __cpu_data
+EXPORT_SYMBOL vmlinux 0x27fcafe9 keyring_search
+EXPORT_SYMBOL vmlinux 0x2815f9a3 sk_reset_txq
+EXPORT_SYMBOL vmlinux 0x28258cb8 inode_setattr
+EXPORT_SYMBOL vmlinux 0x282a0bbf atomic_sub
+EXPORT_SYMBOL vmlinux 0x282dfe13 key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0x2834587a block_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x2842da89 pcibios_bus_to_resource
+EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll
+EXPORT_SYMBOL vmlinux 0x28713bbe poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28c82451 proc_symlink
+EXPORT_SYMBOL vmlinux 0x28d5b8ad set_bdi_congested
+EXPORT_SYMBOL vmlinux 0x2909efa4 key_negate_and_link
+EXPORT_SYMBOL vmlinux 0x290e5e0e get_sb_bdev
+EXPORT_SYMBOL vmlinux 0x291068d2 atomic64_sub
+EXPORT_SYMBOL vmlinux 0x2916bf63 drm_sman_cleanup
+EXPORT_SYMBOL vmlinux 0x2922e341 kill_anon_super
+EXPORT_SYMBOL vmlinux 0x292829c2 create_mnt_ns
+EXPORT_SYMBOL vmlinux 0x292ab166 of_phy_find_device
+EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x297247ad tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0x297dc207 pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0x297ec4b4 xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0x29866cfd init_net
+EXPORT_SYMBOL vmlinux 0x29a7ea56 ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set
+EXPORT_SYMBOL vmlinux 0x29dc4be7 of_console_options
+EXPORT_SYMBOL vmlinux 0x29f99bab inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0x2a0e249a redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0x2a396746 scsi_free_command
+EXPORT_SYMBOL vmlinux 0x2a3a849b block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0x2a475ef2 slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x2a75fe47 jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0x2ac02c4c abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x2af485ab arp_find
+EXPORT_SYMBOL vmlinux 0x2af5c9a2 pci_try_set_mwi
+EXPORT_SYMBOL vmlinux 0x2af5d7e5 neigh_destroy
+EXPORT_SYMBOL vmlinux 0x2afcc796 pci_bus_type
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b54d5b8 neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0x2b61f425 find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x2b688622 complete_and_exit
+EXPORT_SYMBOL vmlinux 0x2b758d7a generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x2b83df89 stop_tty
+EXPORT_SYMBOL vmlinux 0x2b90cdaa mempool_create
+EXPORT_SYMBOL vmlinux 0x2b937a6f __ret_efault
+EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock
+EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2bac500b serio_rescan
+EXPORT_SYMBOL vmlinux 0x2baf4431 io_remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x2bd60163 ldc_unmap
+EXPORT_SYMBOL vmlinux 0x2be9efb7 dquot_transfer
+EXPORT_SYMBOL vmlinux 0x2c0745e6 inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x2c087f48 drm_sysfs_connector_add
+EXPORT_SYMBOL vmlinux 0x2c270ae9 set_bh_page
+EXPORT_SYMBOL vmlinux 0x2c3a46c4 eth_header_cache
+EXPORT_SYMBOL vmlinux 0x2c72ea19 neigh_update
+EXPORT_SYMBOL vmlinux 0x2c97d612 netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0x2cc8de8e scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0x2cee8e2d eth_type_trans
+EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic
+EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d34a1b4 dq_data_lock
+EXPORT_SYMBOL vmlinux 0x2d40fc57 xfrm_state_update
+EXPORT_SYMBOL vmlinux 0x2d414aa9 writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0x2d5b52a8 blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2d8bcd85 scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0x2d8dd6d6 tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0x2da45412 find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x2da8bab0 serio_open
+EXPORT_SYMBOL vmlinux 0x2daa7939 xor_vis_4
+EXPORT_SYMBOL vmlinux 0x2dd7c71b scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem
+EXPORT_SYMBOL vmlinux 0x2e5a8ca4 inet_del_protocol
+EXPORT_SYMBOL vmlinux 0x2e648b3d kill_block_super
+EXPORT_SYMBOL vmlinux 0x2e902eed bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0x2e9946f1 tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0x2ea441bf con_is_bound
+EXPORT_SYMBOL vmlinux 0x2eb2f903 drm_sman_free_key
+EXPORT_SYMBOL vmlinux 0x2ec257a2 devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x2ed1bef5 sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x2ed4a515 __wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x2edee7f4 sunserial_console_match
+EXPORT_SYMBOL vmlinux 0x2efb3606 nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource
+EXPORT_SYMBOL vmlinux 0x2f0e56a0 aio_complete
+EXPORT_SYMBOL vmlinux 0x2f28f6f3 ebus_dma_addr
+EXPORT_SYMBOL vmlinux 0x2f520a0b bioset_free
+EXPORT_SYMBOL vmlinux 0x2f5e1817 drm_vblank_get
+EXPORT_SYMBOL vmlinux 0x2f653fab ebus_dma_enable
+EXPORT_SYMBOL vmlinux 0x2f74ac59 simple_rename
+EXPORT_SYMBOL vmlinux 0x2f8275b3 posix_test_lock
+EXPORT_SYMBOL vmlinux 0x2fcbedf5 slow_work_sleep_till_thread_needed
+EXPORT_SYMBOL vmlinux 0x2fef1971 __scm_destroy
+EXPORT_SYMBOL vmlinux 0x300b2000 of_find_in_proplist
+EXPORT_SYMBOL vmlinux 0x301c83fb ps2_command
+EXPORT_SYMBOL vmlinux 0x301f5029 drm_mm_init
+EXPORT_SYMBOL vmlinux 0x303b86f2 rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0x3066d48a dev_getbyhwaddr
+EXPORT_SYMBOL vmlinux 0x3074f033 drm_order
+EXPORT_SYMBOL vmlinux 0x30959bae drm_mode_connector_list_update
+EXPORT_SYMBOL vmlinux 0x30b1a57f generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0x30bd2249 cad_pid
+EXPORT_SYMBOL vmlinux 0x30be593f drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL vmlinux 0x30d5f8aa __ps2_command
+EXPORT_SYMBOL vmlinux 0x30e46013 iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0x30ea80df simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x3118092b of_find_matching_node
+EXPORT_SYMBOL vmlinux 0x3119b87c find_or_create_page
+EXPORT_SYMBOL vmlinux 0x3126b80e dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x3144d5c9 sync_inode
+EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present
+EXPORT_SYMBOL vmlinux 0x314563da jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0x3147857d default_red
+EXPORT_SYMBOL vmlinux 0x315bb3bf i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0x3161864c bio_map_kern
+EXPORT_SYMBOL vmlinux 0x316dd1cd __wait_on_bit
+EXPORT_SYMBOL vmlinux 0x318b37cc ilookup
+EXPORT_SYMBOL vmlinux 0x3194468a tcf_register_action
+EXPORT_SYMBOL vmlinux 0x31a2e826 tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck
+EXPORT_SYMBOL vmlinux 0x31b5bfbd tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0x31ba233b dev_mc_init
+EXPORT_SYMBOL vmlinux 0x31cd53f3 skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0x31d4a7bf ida_pre_get
+EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p
+EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc
+EXPORT_SYMBOL vmlinux 0x3219b1fe pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x32224169 nobh_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x3230b5a3 gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x323cefec copy_from_user_fixup
+EXPORT_SYMBOL vmlinux 0x32478be4 tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x3254d965 pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x327b21c5 kill_litter_super
+EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint
+EXPORT_SYMBOL vmlinux 0x32d1a843 drm_sysfs_connector_remove
+EXPORT_SYMBOL vmlinux 0x32d656e7 tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0x32f1f4f0 generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x3307ad0c block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0x330ee50d journal_destroy
+EXPORT_SYMBOL vmlinux 0x33134f61 jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0x331a9395 vfs_symlink
+EXPORT_SYMBOL vmlinux 0x332f01a4 dm_register_target
+EXPORT_SYMBOL vmlinux 0x334f5bb9 ldc_bind
+EXPORT_SYMBOL vmlinux 0x3352d1fc directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0x3389b930 vfs_link
+EXPORT_SYMBOL vmlinux 0x33969b8c __up_write
+EXPORT_SYMBOL vmlinux 0x33a90d51 dquot_enable
+EXPORT_SYMBOL vmlinux 0x33b8f41e follow_up
+EXPORT_SYMBOL vmlinux 0x33c25df1 neigh_for_each
+EXPORT_SYMBOL vmlinux 0x33cc9a04 i2c_master_recv
+EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0x33d2f499 sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x33ecb1cf put_disk
+EXPORT_SYMBOL vmlinux 0x33faf950 pci_read_vpd
+EXPORT_SYMBOL vmlinux 0x33fe7472 pci_release_region
+EXPORT_SYMBOL vmlinux 0x340d9392 blk_make_request
+EXPORT_SYMBOL vmlinux 0x34244ad2 vio_ldc_send
+EXPORT_SYMBOL vmlinux 0x34289b2b generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0x3451608b pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long
+EXPORT_SYMBOL vmlinux 0x3459ad59 udp_poll
+EXPORT_SYMBOL vmlinux 0x346794a6 journal_ack_err
+EXPORT_SYMBOL vmlinux 0x3474cb79 blk_init_allocated_queue_node
+EXPORT_SYMBOL vmlinux 0x34932e65 set_anon_super
+EXPORT_SYMBOL vmlinux 0x349cba85 strchr
+EXPORT_SYMBOL vmlinux 0x34c016ef tty_kref_put
+EXPORT_SYMBOL vmlinux 0x35079933 soft_cursor
+EXPORT_SYMBOL vmlinux 0x3508c896 generic_write_checks
+EXPORT_SYMBOL vmlinux 0x350903af blk_unplug
+EXPORT_SYMBOL vmlinux 0x3513cb87 sk_free
+EXPORT_SYMBOL vmlinux 0x353c6ae9 kernel_read
+EXPORT_SYMBOL vmlinux 0x3582ed17 vfs_stat
+EXPORT_SYMBOL vmlinux 0x359a135d bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf
+EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator
+EXPORT_SYMBOL vmlinux 0x35cc8342 uart_remove_one_port
+EXPORT_SYMBOL vmlinux 0x35f78e87 generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x363342eb nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x3639ddc2 sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0x363bcf26 __irq_regs
+EXPORT_SYMBOL vmlinux 0x3690904a set_blocksize
+EXPORT_SYMBOL vmlinux 0x369c2b57 mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0x36a77e8d lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x36b4766c register_netdevice
+EXPORT_SYMBOL vmlinux 0x36c6dcfb devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0x36d617c5 pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x36f82597 sk_reset_timer
+EXPORT_SYMBOL vmlinux 0x37200330 vfs_llseek
+EXPORT_SYMBOL vmlinux 0x37278b40 __dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x37384ab5 rtc_dev_update_irq_enable_emul
+EXPORT_SYMBOL vmlinux 0x373cd439 km_report
+EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x375465a7 radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0x3763dff5 ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0x3781367d tcp_read_sock
+EXPORT_SYMBOL vmlinux 0x3782e98b clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0x378cf565 sock_init_data
+EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic
+EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37cbab56 ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0x37f8bc96 skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow
+EXPORT_SYMBOL vmlinux 0x38133c8b dqstats
+EXPORT_SYMBOL vmlinux 0x382843ce of_dev_put
+EXPORT_SYMBOL vmlinux 0x3847607c drm_mm_put_block
+EXPORT_SYMBOL vmlinux 0x3865c2d9 drm_encoder_cleanup
+EXPORT_SYMBOL vmlinux 0x38822f97 copy_user_page
+EXPORT_SYMBOL vmlinux 0x388ab28b filp_open
+EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x38b9ad1b skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0x38bbf21e qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0x3929d758 elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0x3946918b pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x396f0e62 rtnl_unicast
+EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x398eefda ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0x39954d90 phy_disable_interrupts
+EXPORT_SYMBOL vmlinux 0x39979926 phy_driver_register
+EXPORT_SYMBOL vmlinux 0x39d530cb simple_write_end
+EXPORT_SYMBOL vmlinux 0x39dd4c36 scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0x39dd7bd3 nf_reinject
+EXPORT_SYMBOL vmlinux 0x39ebf1f0 tty_check_change
+EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a2e4e3b open_exec
+EXPORT_SYMBOL vmlinux 0x3a31715c drm_compat_ioctl
+EXPORT_SYMBOL vmlinux 0x3a3c7166 blk_register_region
+EXPORT_SYMBOL vmlinux 0x3a496193 proc_create_data
+EXPORT_SYMBOL vmlinux 0x3a4a9a6b rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x3a9aa54d clear_bit
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3aa904de input_inject_event
+EXPORT_SYMBOL vmlinux 0x3ab83cb3 nf_register_hooks
+EXPORT_SYMBOL vmlinux 0x3abae6ab sock_i_uid
+EXPORT_SYMBOL vmlinux 0x3ac4ee1e serio_unregister_port
+EXPORT_SYMBOL vmlinux 0x3b176f4b xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0x3b1dfbeb tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x3b27cc7a sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0x3b313ea4 genphy_suspend
+EXPORT_SYMBOL vmlinux 0x3b3fe8cb prom_getsibling
+EXPORT_SYMBOL vmlinux 0x3b59061f brioctl_set
+EXPORT_SYMBOL vmlinux 0x3b7d3d24 scsi_print_command
+EXPORT_SYMBOL vmlinux 0x3b8ea850 drm_mode_attachmode_crtc
+EXPORT_SYMBOL vmlinux 0x3bcadfad fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0x3bcfe9fd drm_lock_free
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3bda9e19 get_fs_type
+EXPORT_SYMBOL vmlinux 0x3beb1b1f __scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x3bfcba47 block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf
+EXPORT_SYMBOL vmlinux 0x3c4e39ea notify_change
+EXPORT_SYMBOL vmlinux 0x3c6076c3 blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0x3c7538a6 mdesc_next_arc
+EXPORT_SYMBOL vmlinux 0x3c8ecf11 scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0x3c90153d remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x3c9a1409 drm_ht_just_insert_please
+EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size
+EXPORT_SYMBOL vmlinux 0x3ca4c7df __serio_register_port
+EXPORT_SYMBOL vmlinux 0x3cb77e15 inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0x3cc86f6a napi_reuse_skb
+EXPORT_SYMBOL vmlinux 0x3cd416db serio_reconnect
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq
+EXPORT_SYMBOL vmlinux 0x3ce7b235 rtnl_create_link
+EXPORT_SYMBOL vmlinux 0x3d02e929 drm_mm_clean
+EXPORT_SYMBOL vmlinux 0x3d1c0526 dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0x3d40effb i2c_use_client
+EXPORT_SYMBOL vmlinux 0x3d41c75c remove_proc_entry
+EXPORT_SYMBOL vmlinux 0x3d5b2e91 register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0x3d79c79c drm_property_create
+EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x3d952949 __netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0x3da399bb key_type_keyring
+EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0x3dc0edd5 dquot_quota_off
+EXPORT_SYMBOL vmlinux 0x3dccea3f phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0x3de77de8 qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks
+EXPORT_SYMBOL vmlinux 0x3e4276ae dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0x3e4290fa abort_creds
+EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e580825 bio_free
+EXPORT_SYMBOL vmlinux 0x3e6037d3 nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x3e770561 revalidate_disk
+EXPORT_SYMBOL vmlinux 0x3e7e1af0 fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3ea5f650 abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0x3eb4f4fb dmam_pool_create
+EXPORT_SYMBOL vmlinux 0x3ed4dfa3 dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3ed7095c setup_new_exec
+EXPORT_SYMBOL vmlinux 0x3ee2c507 skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x3f0a4428 nobh_writepage
+EXPORT_SYMBOL vmlinux 0x3f25e9a1 dput
+EXPORT_SYMBOL vmlinux 0x3f3bd7ab of_console_device
+EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f4b637b scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0x3f5b4373 tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0x3f8a2c5b xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x3fa03a97 memset
+EXPORT_SYMBOL vmlinux 0x3fa3290e inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x3fa913da strspn
+EXPORT_SYMBOL vmlinux 0x3fc20820 dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0x3fc8119b vio_ldc_alloc
+EXPORT_SYMBOL vmlinux 0x3fcf8e68 __scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0x3fde60dd skb_clone
+EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable
+EXPORT_SYMBOL vmlinux 0x40018cdf generic_delete_inode
+EXPORT_SYMBOL vmlinux 0x402e9807 jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x40332ad5 mdesc_node_by_name
+EXPORT_SYMBOL vmlinux 0x40379990 inode_needs_sync
+EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds
+EXPORT_SYMBOL vmlinux 0x40732335 pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0x4083c618 fsnotify_obtain_group
+EXPORT_SYMBOL vmlinux 0x40959bac idr_for_each
+EXPORT_SYMBOL vmlinux 0x409f5612 jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40ad61d4 invalidate_inodes
+EXPORT_SYMBOL vmlinux 0x40aec49d idr_init
+EXPORT_SYMBOL vmlinux 0x40b6c0dd xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0x40ed2c40 journal_forget
+EXPORT_SYMBOL vmlinux 0x40ee15cd generic_file_llseek
+EXPORT_SYMBOL vmlinux 0x40f9ece4 input_register_handle
+EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring
+EXPORT_SYMBOL vmlinux 0x410496ad input_event
+EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode
+EXPORT_SYMBOL vmlinux 0x412578dd tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp
+EXPORT_SYMBOL vmlinux 0x4139a4d0 drm_get_resource_start
+EXPORT_SYMBOL vmlinux 0x413a64d3 vlan_gro_receive
+EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user
+EXPORT_SYMBOL vmlinux 0x4155254f lro_receive_frags
+EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features
+EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x41ac5b5d dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0x41ddef1f vc_cons
+EXPORT_SYMBOL vmlinux 0x41fe7219 security_path_rmdir
+EXPORT_SYMBOL vmlinux 0x42078959 framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x421d23bc pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0x42224298 sscanf
+EXPORT_SYMBOL vmlinux 0x4237adba sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0x4242f9a5 dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p
+EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages
+EXPORT_SYMBOL vmlinux 0x430f5dee inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short
+EXPORT_SYMBOL vmlinux 0x4334830e get_sb_nodev
+EXPORT_SYMBOL vmlinux 0x43383be4 tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0x43384bd9 drm_buffer_alloc
+EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem
+EXPORT_SYMBOL vmlinux 0x43552b03 schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0x438a2ca9 block_read_full_page
+EXPORT_SYMBOL vmlinux 0x439090b9 kernel_thread
+EXPORT_SYMBOL vmlinux 0x439b7def dentry_unhash
+EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get
+EXPORT_SYMBOL vmlinux 0x43bb3543 sk_release_kernel
+EXPORT_SYMBOL vmlinux 0x43bea045 auxio_register
+EXPORT_SYMBOL vmlinux 0x43bffa57 km_policy_notify
+EXPORT_SYMBOL vmlinux 0x43cc9947 input_register_device
+EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg
+EXPORT_SYMBOL vmlinux 0x4405da16 bio_flush_dcache_pages
+EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x444779c4 nla_find
+EXPORT_SYMBOL vmlinux 0x4466a084 ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0x447f7e18 sun4v_niagara2_getperf
+EXPORT_SYMBOL vmlinux 0x448212fa down_trylock
+EXPORT_SYMBOL vmlinux 0x4491c46f km_state_expired
+EXPORT_SYMBOL vmlinux 0x449d6688 __dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x44b7d16a d_path
+EXPORT_SYMBOL vmlinux 0x44b9c025 simple_unlink
+EXPORT_SYMBOL vmlinux 0x44e9a829 match_token
+EXPORT_SYMBOL vmlinux 0x45114bb5 dquot_destroy
+EXPORT_SYMBOL vmlinux 0x4516919f prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0x452702ab put_io_context
+EXPORT_SYMBOL vmlinux 0x45339a90 create_empty_buffers
+EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0x4575c225 slow_work_unregister_user
+EXPORT_SYMBOL vmlinux 0x45914f68 seq_open_private
+EXPORT_SYMBOL vmlinux 0x45947727 param_array_set
+EXPORT_SYMBOL vmlinux 0x45a55c97 usb_gadget_register_driver
+EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x460ea1c5 udplite_table
+EXPORT_SYMBOL vmlinux 0x466c14a7 __delay
+EXPORT_SYMBOL vmlinux 0x4678b9d5 slow_work_register_user
+EXPORT_SYMBOL vmlinux 0x46a94fc3 clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x46c4b962 mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0x46c74ccf unregister_qdisc
+EXPORT_SYMBOL vmlinux 0x46f79dc2 abx500_register_ops
+EXPORT_SYMBOL vmlinux 0x4712c3e9 dquot_free_inode
+EXPORT_SYMBOL vmlinux 0x471a76e0 simple_rmdir
+EXPORT_SYMBOL vmlinux 0x47245df1 dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x472ca3c8 nla_put
+EXPORT_SYMBOL vmlinux 0x4738a73f iget_locked
+EXPORT_SYMBOL vmlinux 0x473d4000 invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0x47413755 drm_mm_search_free_in_range
+EXPORT_SYMBOL vmlinux 0x474649ab jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x4746a13b ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0x474f18ad kset_register
+EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x47691155 pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0x47861142 put_tty_driver
+EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x4799ceb3 init_special_inode
+EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit
+EXPORT_SYMBOL vmlinux 0x47c28789 netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0x47e078fe unload_nls
+EXPORT_SYMBOL vmlinux 0x4808e1c7 user_revoke
+EXPORT_SYMBOL vmlinux 0x48201dc4 mdesc_get_property
+EXPORT_SYMBOL vmlinux 0x482174e7 ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0x482533ab vfs_fsync
+EXPORT_SYMBOL vmlinux 0x483ec199 __cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days
+EXPORT_SYMBOL vmlinux 0x486874e9 request_key
+EXPORT_SYMBOL vmlinux 0x48796ee2 pci_release_regions
+EXPORT_SYMBOL vmlinux 0x489b553c __register_binfmt
+EXPORT_SYMBOL vmlinux 0x489b6d8f drm_gem_vm_open
+EXPORT_SYMBOL vmlinux 0x48b2a289 sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0x48b55ab8 drm_i_have_hw_lock
+EXPORT_SYMBOL vmlinux 0x48c1d080 tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0x492b6c76 idr_remove
+EXPORT_SYMBOL vmlinux 0x49438f6a path_lookup
+EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x49560398 pci_get_subsys
+EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x49689f63 pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0x497606c8 skb_insert
+EXPORT_SYMBOL vmlinux 0x497a89ec generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0x497b5efd vfs_mknod
+EXPORT_SYMBOL vmlinux 0x49a6d16e scsi_execute
+EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49c94e05 in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string
+EXPORT_SYMBOL vmlinux 0x49f28f05 sock_create_kern
+EXPORT_SYMBOL vmlinux 0x49f54cbb do_sync_read
+EXPORT_SYMBOL vmlinux 0x4a0a25b3 tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x4a15ae23 prom_node_has_property
+EXPORT_SYMBOL vmlinux 0x4a27664b __starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a4853e1 otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0x4a4b55d9 bio_endio
+EXPORT_SYMBOL vmlinux 0x4a4df675 set_user_nice
+EXPORT_SYMBOL vmlinux 0x4a55de8f dcache_dir_close
+EXPORT_SYMBOL vmlinux 0x4a5a15b3 pci_remove_behind_bridge
+EXPORT_SYMBOL vmlinux 0x4a6696ee scsi_register_driver
+EXPORT_SYMBOL vmlinux 0x4a6918b4 scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0x4a6e1f65 ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0x4a809f5b sock_setsockopt
+EXPORT_SYMBOL vmlinux 0x4a813b09 dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x4a8251b5 drm_crtc_cleanup
+EXPORT_SYMBOL vmlinux 0x4a86f037 generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0x4a897770 drm_clflush_pages
+EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x4ab3ac9d bio_phys_segments
+EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource
+EXPORT_SYMBOL vmlinux 0x4ad4574e rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0x4aecffe2 security_path_chmod
+EXPORT_SYMBOL vmlinux 0x4af4b19e generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4aff7fe4 nf_log_packet
+EXPORT_SYMBOL vmlinux 0x4b03db47 napi_skb_finish
+EXPORT_SYMBOL vmlinux 0x4b12d20a nla_reserve
+EXPORT_SYMBOL vmlinux 0x4b4ed97f of_device_is_compatible
+EXPORT_SYMBOL vmlinux 0x4b767810 input_set_capability
+EXPORT_SYMBOL vmlinux 0x4b8b9454 scm_detach_fds
+EXPORT_SYMBOL vmlinux 0x4bb9d4bf prepare_binprm
+EXPORT_SYMBOL vmlinux 0x4bc997d1 dquot_disable
+EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c26822a tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp
+EXPORT_SYMBOL vmlinux 0x4c5d3ad6 default_unplug_io_fn
+EXPORT_SYMBOL vmlinux 0x4c64d88f vm_event_states
+EXPORT_SYMBOL vmlinux 0x4c66e92b ps2_init
+EXPORT_SYMBOL vmlinux 0x4c72c8b3 netif_napi_add
+EXPORT_SYMBOL vmlinux 0x4c7d5bcc free_task
+EXPORT_SYMBOL vmlinux 0x4c954764 tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x4ca9e9a5 skb_find_text
+EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cbda2bf prom_setprop
+EXPORT_SYMBOL vmlinux 0x4ccb6699 netdev_state_change
+EXPORT_SYMBOL vmlinux 0x4ce71aa5 __blk_end_request
+EXPORT_SYMBOL vmlinux 0x4d15400f dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0x4d1c84de lease_modify
+EXPORT_SYMBOL vmlinux 0x4d28b7d5 blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x4d32f1de blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0x4d351074 simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x4d409b7b kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0x4d5270c7 tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0x4d52b844 bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x4d75ae56 compat_mc_getsockopt
+EXPORT_SYMBOL vmlinux 0x4d7ed20e xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0x4d8de3c6 inet_listen
+EXPORT_SYMBOL vmlinux 0x4d989374 __generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x4d9b7d19 __seq_open_private
+EXPORT_SYMBOL vmlinux 0x4da65ce0 drm_mode_create_tv_properties
+EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0x4dc16264 kmem_cache_name
+EXPORT_SYMBOL vmlinux 0x4dc1a0e3 journal_init_inode
+EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dd8e6cf arp_tbl
+EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy
+EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4df7458e blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e183253 drm_connector_property_set_value
+EXPORT_SYMBOL vmlinux 0x4e21262f tcp_close
+EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console
+EXPORT_SYMBOL vmlinux 0x4e7b4ad1 __up_read
+EXPORT_SYMBOL vmlinux 0x4e8db98e of_parse_phandle
+EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum
+EXPORT_SYMBOL vmlinux 0x4ea1f5a2 drm_gem_object_free
+EXPORT_SYMBOL vmlinux 0x4eaae8e7 drm_connector_attach_property
+EXPORT_SYMBOL vmlinux 0x4eb13a29 ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x4eb8f587 get_sb_ns
+EXPORT_SYMBOL vmlinux 0x4ebb7337 registered_fb
+EXPORT_SYMBOL vmlinux 0x4ed9bdb3 pci_get_device
+EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals
+EXPORT_SYMBOL vmlinux 0x4ee17ce8 cont_write_begin
+EXPORT_SYMBOL vmlinux 0x4f006ccd ps2_begin_command
+EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f56b9a8 mnt_unpin
+EXPORT_SYMBOL vmlinux 0x4f6085e0 __elv_add_request
+EXPORT_SYMBOL vmlinux 0x4f76ae66 ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x4fc29875 dev_addr_init
+EXPORT_SYMBOL vmlinux 0x4fd3561c dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command
+EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x50306603 filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0x50400c9e skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x504c2c9d splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x505e9b8c compat_ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x5062670f log_start_commit
+EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x50833c30 pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0x50bb3295 i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0x50d06c8a dev_uc_flush
+EXPORT_SYMBOL vmlinux 0x50f3f439 blk_recount_segments
+EXPORT_SYMBOL vmlinux 0x510154f6 pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x512e2acc scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0x515e55f3 drm_fasync
+EXPORT_SYMBOL vmlinux 0x516fdfbd textsearch_register
+EXPORT_SYMBOL vmlinux 0x5174c604 abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x51995903 kern_path
+EXPORT_SYMBOL vmlinux 0x519b7d80 dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x51e03927 kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x51e26590 jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x51e2a671 bioset_create
+EXPORT_SYMBOL vmlinux 0x51f332f9 d_alloc_name
+EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x521aaad0 security_inode_init_security
+EXPORT_SYMBOL vmlinux 0x522d7dd7 call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0x524262bd blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x5243d229 fput
+EXPORT_SYMBOL vmlinux 0x524c48f9 ps2_end_command
+EXPORT_SYMBOL vmlinux 0x5251cae4 prom_getbool
+EXPORT_SYMBOL vmlinux 0x527408a2 genphy_config_advert
+EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday
+EXPORT_SYMBOL vmlinux 0x52856d20 vio_conn_reset
+EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy
+EXPORT_SYMBOL vmlinux 0x52b49720 blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0x52c2ef34 rb_erase
+EXPORT_SYMBOL vmlinux 0x52e4cdd4 drm_mode_connector_attach_encoder
+EXPORT_SYMBOL vmlinux 0x52e552b5 generic_removexattr
+EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort
+EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x533903d8 outsw
+EXPORT_SYMBOL vmlinux 0x533c3b65 __find_get_block
+EXPORT_SYMBOL vmlinux 0x534dd959 genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0x53605590 fsnotify_destroy_mark_by_entry
+EXPORT_SYMBOL vmlinux 0x53957ec1 scsi_scan_host
+EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x53ced485 lock_may_write
+EXPORT_SYMBOL vmlinux 0x5412f58d ethtool_op_get_rx_csum
+EXPORT_SYMBOL vmlinux 0x541319d6 key_validate
+EXPORT_SYMBOL vmlinux 0x54132dfe udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0x541d08a0 pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate
+EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x543fad41 blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0x54445b4a blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x545c8680 drm_debugfs_create_files
+EXPORT_SYMBOL vmlinux 0x54cf8700 pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x54d4637e blk_plug_device_unlocked
+EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54ef8909 simple_transaction_set
+EXPORT_SYMBOL vmlinux 0x550345da __break_lease
+EXPORT_SYMBOL vmlinux 0x55072d28 ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0x5513349f fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x551c564b skb_gso_segment
+EXPORT_SYMBOL vmlinux 0x554a7b31 file_permission
+EXPORT_SYMBOL vmlinux 0x555e1a8d sock_wake_async
+EXPORT_SYMBOL vmlinux 0x5561abb0 key_unlink
+EXPORT_SYMBOL vmlinux 0x556db901 xor_vis_5
+EXPORT_SYMBOL vmlinux 0x556f6a86 dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x55a4fd23 pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0x55c54397 generic_make_request
+EXPORT_SYMBOL vmlinux 0x55f060ee drm_sman_set_range
+EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday
+EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x562ad513 interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0x562e3c33 mod_timer_pending
+EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user
+EXPORT_SYMBOL vmlinux 0x565e8ebc scsi_remove_device
+EXPORT_SYMBOL vmlinux 0x566b555d xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0x56985fe2 thaw_super
+EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56cda35a sun4v_niagara2_setperf
+EXPORT_SYMBOL vmlinux 0x56e95022 pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x56fc2f86 scsi_init_io
+EXPORT_SYMBOL vmlinux 0x57009082 sbusfb_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x5712ad08 bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0x572b4951 lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put
+EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16
+EXPORT_SYMBOL vmlinux 0x577e507a trap_block
+EXPORT_SYMBOL vmlinux 0x577f4bff do_BUG
+EXPORT_SYMBOL vmlinux 0x5788724b dev_alloc_name
+EXPORT_SYMBOL vmlinux 0x57915dba pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0x57b57ac7 scsi_block_requests
+EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57ca578d dm_table_get
+EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path
+EXPORT_SYMBOL vmlinux 0x57f7c686 sparc64_valid_addr_bitmap
+EXPORT_SYMBOL vmlinux 0x57f8a694 tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0x5800a571 tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0x580830f0 drm_mode_set_name
+EXPORT_SYMBOL vmlinux 0x5828dcf4 __splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x582fef16 auxio_set_lte
+EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x584bd5e8 neigh_event_ns
+EXPORT_SYMBOL vmlinux 0x584f14e8 blk_execute_rq
+EXPORT_SYMBOL vmlinux 0x58509009 of_platform_bus_type
+EXPORT_SYMBOL vmlinux 0x5850d520 dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0x586818d2 wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x58ab0b77 __scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x59045e3e xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x591c04f9 touch_atime
+EXPORT_SYMBOL vmlinux 0x59208f51 lock_rename
+EXPORT_SYMBOL vmlinux 0x5922fff4 ab3100_event_register
+EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client
+EXPORT_SYMBOL vmlinux 0x5941b549 dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map
+EXPORT_SYMBOL vmlinux 0x59812959 sock_register
+EXPORT_SYMBOL vmlinux 0x59b83793 blk_requeue_request
+EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier
+EXPORT_SYMBOL vmlinux 0x5a0baf88 get_user_pages
+EXPORT_SYMBOL vmlinux 0x5a286699 lock_may_read
+EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc
+EXPORT_SYMBOL vmlinux 0x5a3b115a kstat
+EXPORT_SYMBOL vmlinux 0x5a3e9116 blk_peek_request
+EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x5a632f25 dma_sync_wait
+EXPORT_SYMBOL vmlinux 0x5a669a9f unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0x5a69d70f of_find_all_nodes
+EXPORT_SYMBOL vmlinux 0x5a6c48af blk_complete_request
+EXPORT_SYMBOL vmlinux 0x5a6f8f6b blk_free_tags
+EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5aa04eba genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0x5ae0d47f clocksource_register
+EXPORT_SYMBOL vmlinux 0x5b20d570 vm_map_ram
+EXPORT_SYMBOL vmlinux 0x5b2d7684 ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0x5baa5800 tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0x5bc073aa cdev_add
+EXPORT_SYMBOL vmlinux 0x5bc916d3 rfkill_set_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x5bf81007 tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x5c0ccbfc drm_put_dev
+EXPORT_SYMBOL vmlinux 0x5c112d3b jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0x5c15e91b of_get_parent
+EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one
+EXPORT_SYMBOL vmlinux 0x5c423a40 get_disk
+EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq
+EXPORT_SYMBOL vmlinux 0x5c4d3de9 blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0x5c9189e7 blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0x5c9ef1ba tty_name
+EXPORT_SYMBOL vmlinux 0x5ca0b42a end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x5ca4a0a8 dump_fpu
+EXPORT_SYMBOL vmlinux 0x5cc64e25 drm_mode_duplicate
+EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0x5ce875cf prom_root_node
+EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat
+EXPORT_SYMBOL vmlinux 0x5d4d0e26 __csum_partial_copy_from_user
+EXPORT_SYMBOL vmlinux 0x5d6d82f7 pid_task
+EXPORT_SYMBOL vmlinux 0x5d8e6c8e kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0x5dbbe98e memmove
+EXPORT_SYMBOL vmlinux 0x5de9f57f bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0x5e01beb6 ps2_handle_response
+EXPORT_SYMBOL vmlinux 0x5e39c515 drm_mode_validate_size
+EXPORT_SYMBOL vmlinux 0x5e5a31c4 pcim_iomap
+EXPORT_SYMBOL vmlinux 0x5e6b4e57 kobject_add
+EXPORT_SYMBOL vmlinux 0x5e6e749c drm_mode_detachmode_crtc
+EXPORT_SYMBOL vmlinux 0x5e71eb08 n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x5e8966c6 jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x5e8afac8 pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x5e8f1dd3 security_path_mknod
+EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask
+EXPORT_SYMBOL vmlinux 0x5ea5ce7f netlink_unicast
+EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5ed52c2d clear_user_page
+EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd
+EXPORT_SYMBOL vmlinux 0x5ee0a984 prom_getchild
+EXPORT_SYMBOL vmlinux 0x5eea52d8 tty_free_termios
+EXPORT_SYMBOL vmlinux 0x5f080b1b bio_unmap_user
+EXPORT_SYMBOL vmlinux 0x5fc48bbe tty_devnum
+EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr
+EXPORT_SYMBOL vmlinux 0x5fe0aaea serio_close
+EXPORT_SYMBOL vmlinux 0x5fea47ad cdev_alloc
+EXPORT_SYMBOL vmlinux 0x5ff39d3e lookup_one_len
+EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x600e5e79 input_allocate_device
+EXPORT_SYMBOL vmlinux 0x604a1a9a drm_vblank_cleanup
+EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x6067a146 memcpy
+EXPORT_SYMBOL vmlinux 0x606e492a bio_add_page
+EXPORT_SYMBOL vmlinux 0x6084e4f6 dcache_readdir
+EXPORT_SYMBOL vmlinux 0x609368f8 d_rehash
+EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net
+EXPORT_SYMBOL vmlinux 0x60a07ab2 tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off
+EXPORT_SYMBOL vmlinux 0x60a76db7 __blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x60b0f8b2 ps2_drain
+EXPORT_SYMBOL vmlinux 0x60c45f74 idr_pre_get
+EXPORT_SYMBOL vmlinux 0x60c8f216 sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0x60e07cfc seq_bitmap
+EXPORT_SYMBOL vmlinux 0x60e1fe74 alloc_fddidev
+EXPORT_SYMBOL vmlinux 0x60ec6384 rfkill_destroy
+EXPORT_SYMBOL vmlinux 0x60f0fe16 bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x60f71cfa complete
+EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n
+EXPORT_SYMBOL vmlinux 0x61010180 force_sig
+EXPORT_SYMBOL vmlinux 0x6102e4ad cdev_init
+EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x6133fef1 bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0x61488c81 scsi_dma_map
+EXPORT_SYMBOL vmlinux 0x614f320e compat_sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x617f48e7 dev_uc_add
+EXPORT_SYMBOL vmlinux 0x6180c1cb module_layout
+EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free
+EXPORT_SYMBOL vmlinux 0x61a60f1f rb_replace_node
+EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61e8ceea get_sb_single
+EXPORT_SYMBOL vmlinux 0x61ea8543 blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0x620aac69 udp_ioctl
+EXPORT_SYMBOL vmlinux 0x621c8528 security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x62294853 bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x624aa931 kernel_getsockname
+EXPORT_SYMBOL vmlinux 0x624d6de4 tcp4_gro_complete
+EXPORT_SYMBOL vmlinux 0x624f0078 kill_pgrp
+EXPORT_SYMBOL vmlinux 0x62587307 skb_checksum_help
+EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister
+EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x62a04329 rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0x62a9293f _clear_page
+EXPORT_SYMBOL vmlinux 0x62b72b0d mutex_unlock
+EXPORT_SYMBOL vmlinux 0x62cc569e cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x62f1f452 journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0x63342955 phy_device_register
+EXPORT_SYMBOL vmlinux 0x63428ad0 register_sysctl_table
+EXPORT_SYMBOL vmlinux 0x635c5af0 inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0x63609d49 netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0x6362820d security_path_truncate
+EXPORT_SYMBOL vmlinux 0x637ca4f1 simple_getattr
+EXPORT_SYMBOL vmlinux 0x63e4e38f dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x6409e8c2 __nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x64140a5d do_truncate
+EXPORT_SYMBOL vmlinux 0x6417cc94 journal_flush
+EXPORT_SYMBOL vmlinux 0x64262938 vfs_readlink
+EXPORT_SYMBOL vmlinux 0x64400920 inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x645c4109 kset_unregister
+EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait
+EXPORT_SYMBOL vmlinux 0x64b60492 blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0x64cca20e pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0x650eb1cd __module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x651a4139 test_taint
+EXPORT_SYMBOL vmlinux 0x651ac824 blkdev_put
+EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name
+EXPORT_SYMBOL vmlinux 0x65457938 sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0x654e74cf tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0x6553a4d4 ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0x657456ae truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0x657f03d6 no_llseek
+EXPORT_SYMBOL vmlinux 0x65a19ec7 delayed_slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x65ac8b58 destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x65b0a97e _PAGE_IE
+EXPORT_SYMBOL vmlinux 0x65beac90 dquot_commit_info
+EXPORT_SYMBOL vmlinux 0x65d30fa6 drm_vblank_post_modeset
+EXPORT_SYMBOL vmlinux 0x65ee5fc3 pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0x65f06641 __lookup_one_len
+EXPORT_SYMBOL vmlinux 0x65ff2735 jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0x65ffb5c0 security_path_link
+EXPORT_SYMBOL vmlinux 0x6618d215 of_set_property_mutex
+EXPORT_SYMBOL vmlinux 0x661c1c4a read_cache_page_async
+EXPORT_SYMBOL vmlinux 0x66249a40 bd_release
+EXPORT_SYMBOL vmlinux 0x6672d054 flush_dcache_page
+EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x66bccab0 phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x66c1b7b9 scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x66cae227 stop_a_enabled
+EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time
+EXPORT_SYMBOL vmlinux 0x672144bd strlcpy
+EXPORT_SYMBOL vmlinux 0x67346fb8 start_tty
+EXPORT_SYMBOL vmlinux 0x6735b675 netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0x674aeea0 lro_flush_all
+EXPORT_SYMBOL vmlinux 0x675fa44c audit_log_format
+EXPORT_SYMBOL vmlinux 0x677aeb8e inet_put_port
+EXPORT_SYMBOL vmlinux 0x678485d0 dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x67932ab5 drm_addmap
+EXPORT_SYMBOL vmlinux 0x67b42845 dm_table_unplug_all
+EXPORT_SYMBOL vmlinux 0x67b5f269 generic_write_sync
+EXPORT_SYMBOL vmlinux 0x67b680f7 cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67be1d3d cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x67c4046c of_find_node_by_phandle
+EXPORT_SYMBOL vmlinux 0x67ccdc04 register_nls
+EXPORT_SYMBOL vmlinux 0x67cf97f9 atomic64_sub_ret
+EXPORT_SYMBOL vmlinux 0x67da4e40 seq_puts
+EXPORT_SYMBOL vmlinux 0x68446138 blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x686012e7 bio_copy_kern
+EXPORT_SYMBOL vmlinux 0x686aa042 sk_run_filter
+EXPORT_SYMBOL vmlinux 0x6895a358 tty_port_hangup
+EXPORT_SYMBOL vmlinux 0x6896b39b mdesc_release
+EXPORT_SYMBOL vmlinux 0x689c3fd7 iget5_locked
+EXPORT_SYMBOL vmlinux 0x68a09ed2 gen_pool_add
+EXPORT_SYMBOL vmlinux 0x68ef1d1b scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0x68f2f199 blk_stack_limits
+EXPORT_SYMBOL vmlinux 0x68fb74ca timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x68ffebb3 pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0x69010b06 insw
+EXPORT_SYMBOL vmlinux 0x6932f700 blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0x69663b4c compat_nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x696b55e6 sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days
+EXPORT_SYMBOL vmlinux 0x697cf08e xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int
+EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem
+EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource
+EXPORT_SYMBOL vmlinux 0x69be838c scsi_host_put
+EXPORT_SYMBOL vmlinux 0x69c54d6c dentry_open
+EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x69cd098a kobject_set_name
+EXPORT_SYMBOL vmlinux 0x69cf230d dev_add_pack
+EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69de7e3a simple_readpage
+EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a09c16d blk_run_queue
+EXPORT_SYMBOL vmlinux 0x6a18994e kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0x6a46daca jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask
+EXPORT_SYMBOL vmlinux 0x6a693497 jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6a8a6e0a seq_open
+EXPORT_SYMBOL vmlinux 0x6a9ab552 sock_update_classid
+EXPORT_SYMBOL vmlinux 0x6aad3862 invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp
+EXPORT_SYMBOL vmlinux 0x6add462b d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x6b105a9a locks_init_lock
+EXPORT_SYMBOL vmlinux 0x6b158f0c neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname
+EXPORT_SYMBOL vmlinux 0x6b23e488 pci_get_class
+EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack
+EXPORT_SYMBOL vmlinux 0x6b43fcd2 try_to_release_page
+EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x6b52146f drm_connector_property_get_value
+EXPORT_SYMBOL vmlinux 0x6b7a20ba xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x6bc99c33 of_find_property
+EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6bde0990 ldc_state
+EXPORT_SYMBOL vmlinux 0x6bf5bfe7 tcp_sendpage
+EXPORT_SYMBOL vmlinux 0x6c367ead __invalidate_device
+EXPORT_SYMBOL vmlinux 0x6c5fc409 __f_setown
+EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c6539cd read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c97619b compat_ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x6cc394f1 input_unregister_device
+EXPORT_SYMBOL vmlinux 0x6d0e3039 vfs_fstatat
+EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d2e5837 drm_ut_debug_printk
+EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table
+EXPORT_SYMBOL vmlinux 0x6d7075e5 wireless_spy_update
+EXPORT_SYMBOL vmlinux 0x6d7d8e7f prepare_creds
+EXPORT_SYMBOL vmlinux 0x6d82c9cd __down_write
+EXPORT_SYMBOL vmlinux 0x6d8ee7ca dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0x6dc60109 ip_dev_find
+EXPORT_SYMBOL vmlinux 0x6de375c1 xor_niagara_5
+EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6e05f6d5 cdev_del
+EXPORT_SYMBOL vmlinux 0x6e15f90a __dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x6e4e7e20 atomic_sub_ret
+EXPORT_SYMBOL vmlinux 0x6e6023c5 block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x6e60c83f ___pskb_trim
+EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x6e90c591 tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0x6e945202 tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0x6e9d9171 dev_uc_sync
+EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put
+EXPORT_SYMBOL vmlinux 0x6ec9d585 pci_pme_active
+EXPORT_SYMBOL vmlinux 0x6f0ba937 ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x6f0dfe00 locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x6f428953 generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x6fac64fc __napi_complete
+EXPORT_SYMBOL vmlinux 0x6fc28b24 bio_init
+EXPORT_SYMBOL vmlinux 0x6fc30481 drm_mode_hsync
+EXPORT_SYMBOL vmlinux 0x6fc3317d sock_release
+EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6ff692ab tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free
+EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm
+EXPORT_SYMBOL vmlinux 0x700faf69 mfd_add_devices
+EXPORT_SYMBOL vmlinux 0x702f162c __memscan_generic
+EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x705bd67f load_nls
+EXPORT_SYMBOL vmlinux 0x705e1add scsi_add_device
+EXPORT_SYMBOL vmlinux 0x70765d1c vfs_lstat
+EXPORT_SYMBOL vmlinux 0x707838ee __mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x70923499 blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0x70a35b09 jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x70b8a65d i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait
+EXPORT_SYMBOL vmlinux 0x70f6e2ee of_n_addr_cells
+EXPORT_SYMBOL vmlinux 0x710bd206 icmp_send
+EXPORT_SYMBOL vmlinux 0x711f26ab invalidate_bdev
+EXPORT_SYMBOL vmlinux 0x712730a7 __flushw_user
+EXPORT_SYMBOL vmlinux 0x71286172 generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc
+EXPORT_SYMBOL vmlinux 0x7134ec77 tty_set_operations
+EXPORT_SYMBOL vmlinux 0x7151cd68 netdev_features_change
+EXPORT_SYMBOL vmlinux 0x7171121c overflowgid
+EXPORT_SYMBOL vmlinux 0x71837949 ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x71863f9b i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0x718a4e53 elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0x719fd610 mem_section
+EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev
+EXPORT_SYMBOL vmlinux 0x71adf2a5 bio_integrity_free
+EXPORT_SYMBOL vmlinux 0x71c7bba2 posix_acl_permission
+EXPORT_SYMBOL vmlinux 0x71dae0a2 dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0x71ea9cd2 idr_find
+EXPORT_SYMBOL vmlinux 0x71f6cb4c gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0x71fbc34e pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0x72018259 inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x721e8e1f blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0x722b1189 security_d_instantiate
+EXPORT_SYMBOL vmlinux 0x7242e96d strnchr
+EXPORT_SYMBOL vmlinux 0x726dc9ad d_validate
+EXPORT_SYMBOL vmlinux 0x727a2cb3 tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0x72b1df89 may_umount_tree
+EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte
+EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type
+EXPORT_SYMBOL vmlinux 0x72f1fe3a inet_select_addr
+EXPORT_SYMBOL vmlinux 0x73102ae2 xfrm_bundle_ok
+EXPORT_SYMBOL vmlinux 0x73182763 gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x73710c7a scsi_remove_host
+EXPORT_SYMBOL vmlinux 0x7393421d blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0x739a6600 bdget
+EXPORT_SYMBOL vmlinux 0x73bd06dc vfs_rename
+EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0x73d871fe scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0x73e0877a insl
+EXPORT_SYMBOL vmlinux 0x73e4589f skb_set_dev
+EXPORT_SYMBOL vmlinux 0x742e43ff netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0x744933fd netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte
+EXPORT_SYMBOL vmlinux 0x74621e43 handle_sysrq
+EXPORT_SYMBOL vmlinux 0x746ae799 scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x748cd7cd vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0x7494a757 inet_recvmsg
+EXPORT_SYMBOL vmlinux 0x74a5a115 compat_sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0x74b90e69 vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74ce2016 drm_mode_prune_invalid
+EXPORT_SYMBOL vmlinux 0x74d64087 pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0x74f63a41 jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x74fb0011 eth_header_parse
+EXPORT_SYMBOL vmlinux 0x750bbaa6 netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x7537e307 pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0x753adda7 mdesc_grab
+EXPORT_SYMBOL vmlinux 0x754adbad elv_queue_empty
+EXPORT_SYMBOL vmlinux 0x755bedfd register_con_driver
+EXPORT_SYMBOL vmlinux 0x75677a6f pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp
+EXPORT_SYMBOL vmlinux 0x756fea4d elevator_init
+EXPORT_SYMBOL vmlinux 0x757c7811 unregister_console
+EXPORT_SYMBOL vmlinux 0x758059ff filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0x75a17bed prepare_to_wait
+EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc
+EXPORT_SYMBOL vmlinux 0x75c3b9f2 journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x760a0f4f yield
+EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x76177b84 xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x76431438 xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0x7643e685 give_up_console
+EXPORT_SYMBOL vmlinux 0x764bd77c request_resource
+EXPORT_SYMBOL vmlinux 0x76a0e706 dma_pool_create
+EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode
+EXPORT_SYMBOL vmlinux 0x76fa905d pci_scan_slot
+EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic
+EXPORT_SYMBOL vmlinux 0x770f9e8e mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0x771962a7 seq_read
+EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x773c9e15 get_phy_device
+EXPORT_SYMBOL vmlinux 0x77685a14 inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0x778104bd mdiobus_free
+EXPORT_SYMBOL vmlinux 0x778ed4c1 scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x7797476c dma_supported
+EXPORT_SYMBOL vmlinux 0x77b4ac8a drm_ati_pcigart_cleanup
+EXPORT_SYMBOL vmlinux 0x77bc13a0 strim
+EXPORT_SYMBOL vmlinux 0x77cfcb3f blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality
+EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x782e9bb6 generic_read_dir
+EXPORT_SYMBOL vmlinux 0x7839872b simple_fill_super
+EXPORT_SYMBOL vmlinux 0x784915eb drm_mode_vrefresh
+EXPORT_SYMBOL vmlinux 0x784ec670 i2c_clients_command
+EXPORT_SYMBOL vmlinux 0x7886503a kernel_listen
+EXPORT_SYMBOL vmlinux 0x78abe1cc mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x78db3095 sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78f95d75 ll_rw_block
+EXPORT_SYMBOL vmlinux 0x790f7f08 pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x792aac0f put_page
+EXPORT_SYMBOL vmlinux 0x79322735 pci_domain_nr
+EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x798733b9 uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79c61eed get_write_access
+EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol
+EXPORT_SYMBOL vmlinux 0x7a4497db kzfree
+EXPORT_SYMBOL vmlinux 0x7a5637b5 truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0x7a6b5627 rtnl_notify
+EXPORT_SYMBOL vmlinux 0x7a6fb7ef netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0x7a73573e current_fs_time
+EXPORT_SYMBOL vmlinux 0x7a9bedb2 iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip
+EXPORT_SYMBOL vmlinux 0x7acb5e87 pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0x7acd3134 vfs_create
+EXPORT_SYMBOL vmlinux 0x7ae47df2 drm_sysfs_hotplug_event
+EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0x7ae79972 pci_set_mwi
+EXPORT_SYMBOL vmlinux 0x7af5b73f journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x7b170b6f drm_pci_free
+EXPORT_SYMBOL vmlinux 0x7b523e89 blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0x7b6c591e block_write_full_page
+EXPORT_SYMBOL vmlinux 0x7b89315e inode_change_ok
+EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update
+EXPORT_SYMBOL vmlinux 0x7b96e3f9 tcf_hash_search
+EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name
+EXPORT_SYMBOL vmlinux 0x7be74acc sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x7bf40cd0 simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0x7bf874bd skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0x7bfc339e ldc_write
+EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x7c07551f vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x7c1fd6c8 drm_mode_equal
+EXPORT_SYMBOL vmlinux 0x7c2346b5 block_commit_write
+EXPORT_SYMBOL vmlinux 0x7c248a95 scsi_ioctl
+EXPORT_SYMBOL vmlinux 0x7c2c37db scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0x7c309fce udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0x7c329baf drm_connector_init
+EXPORT_SYMBOL vmlinux 0x7c419357 compat_nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x7c60d66e getname
+EXPORT_SYMBOL vmlinux 0x7c61340c __release_region
+EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7ca49916 splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0x7ca9a19a drm_mode_object_find
+EXPORT_SYMBOL vmlinux 0x7cacd186 page_put_link
+EXPORT_SYMBOL vmlinux 0x7cce3464 atomic_add_ret
+EXPORT_SYMBOL vmlinux 0x7cfdf4f4 pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0x7d053fe2 blk_init_queue
+EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies
+EXPORT_SYMBOL vmlinux 0x7d508073 of_device_is_available
+EXPORT_SYMBOL vmlinux 0x7d6b9bfd __dst_free
+EXPORT_SYMBOL vmlinux 0x7d962429 task_nice
+EXPORT_SYMBOL vmlinux 0x7d980bcd __bread
+EXPORT_SYMBOL vmlinux 0x7dace085 tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x7db56473 bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0x7dcc8c5c of_get_next_child
+EXPORT_SYMBOL vmlinux 0x7dceceac capable
+EXPORT_SYMBOL vmlinux 0x7dd6600f __skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0x7de4c1ba skb_queue_purge
+EXPORT_SYMBOL vmlinux 0x7df4b070 block_write_end
+EXPORT_SYMBOL vmlinux 0x7dfc1726 have_submounts
+EXPORT_SYMBOL vmlinux 0x7e071bcd scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x7e1e9b39 d_delete
+EXPORT_SYMBOL vmlinux 0x7e2e3b57 dma_async_memcpy_buf_to_buf
+EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e749947 send_sig
+EXPORT_SYMBOL vmlinux 0x7e8771d0 drm_idlelock_take
+EXPORT_SYMBOL vmlinux 0x7e8d946c commit_creds
+EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0x7ec71c1d pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0x7ec7c906 phy_stop
+EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy
+EXPORT_SYMBOL vmlinux 0x7ecd2765 kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x7f0dd4cc filemap_fault
+EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f4be5f4 tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x7f9bafbf drm_gem_object_init
+EXPORT_SYMBOL vmlinux 0x7fa15ab1 bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x7fbf363a tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0x7fc701a4 netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x7fca38be flush_signals
+EXPORT_SYMBOL vmlinux 0x7fd03809 napi_gro_frags
+EXPORT_SYMBOL vmlinux 0x7ff517ee __alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0x8001fa6f mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0x800d5fbb drm_gem_object_free_unlocked
+EXPORT_SYMBOL vmlinux 0x800f254c scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0x803c7ccd dqget
+EXPORT_SYMBOL vmlinux 0x803d08a0 vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x8047b7de tcf_hash_check
+EXPORT_SYMBOL vmlinux 0x806f9ecd mem_map_zero
+EXPORT_SYMBOL vmlinux 0x807a412c pci_clear_master
+EXPORT_SYMBOL vmlinux 0x807b7089 prom_firstprop
+EXPORT_SYMBOL vmlinux 0x80808486 vc_resize
+EXPORT_SYMBOL vmlinux 0x809981b2 journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x80ad7f37 generic_setlease
+EXPORT_SYMBOL vmlinux 0x80bf3bc5 sun4v_niagara_getperf
+EXPORT_SYMBOL vmlinux 0x80d39f49 simple_release_fs
+EXPORT_SYMBOL vmlinux 0x80d7a7a1 iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x80d817ab wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0x80f0d44f netif_device_attach
+EXPORT_SYMBOL vmlinux 0x811840c3 unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0x8128d337 truncate_pagecache
+EXPORT_SYMBOL vmlinux 0x813cc283 compat_tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x8142bf59 iterate_mounts
+EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x815131ba mempool_destroy
+EXPORT_SYMBOL vmlinux 0x81523d69 pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0x8154e146 freeze_super
+EXPORT_SYMBOL vmlinux 0x815895bf dm_table_get_md
+EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal
+EXPORT_SYMBOL vmlinux 0x817cf4e1 __skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0x818c319e tty_port_open
+EXPORT_SYMBOL vmlinux 0x81b04bfc completion_done
+EXPORT_SYMBOL vmlinux 0x81ca2209 inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0x81cc5bf5 end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0x81f740a6 cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill
+EXPORT_SYMBOL vmlinux 0x821e8d91 gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x8242993c vio_control_pkt_engine
+EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8262f64b tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x82636d9c pcim_pin_device
+EXPORT_SYMBOL vmlinux 0x828b9fef inet_addr_type
+EXPORT_SYMBOL vmlinux 0x82a9ff4f km_new_mapping
+EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82bad429 tty_hangup
+EXPORT_SYMBOL vmlinux 0x82bbef92 d_add_ci
+EXPORT_SYMBOL vmlinux 0x82d58f78 d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x82d7adac idr_remove_all
+EXPORT_SYMBOL vmlinux 0x82d8bfce jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x8322b6a8 bio_alloc
+EXPORT_SYMBOL vmlinux 0x832667af sock_no_poll
+EXPORT_SYMBOL vmlinux 0x8355473c sg_miter_start
+EXPORT_SYMBOL vmlinux 0x83575bf8 ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x835ae75b jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0x837fe717 close_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x83800bfa kref_init
+EXPORT_SYMBOL vmlinux 0x838c4d23 sg_miter_stop
+EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8
+EXPORT_SYMBOL vmlinux 0x839472af sock_wmalloc
+EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83ab8fd8 pagecache_write_end
+EXPORT_SYMBOL vmlinux 0x83ad82d7 phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0x83d25c38 __wake_up_bit
+EXPORT_SYMBOL vmlinux 0x83e2fb01 elv_abort_queue
+EXPORT_SYMBOL vmlinux 0x83f87061 vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x840ccab9 nf_register_hook
+EXPORT_SYMBOL vmlinux 0x8426045b dquot_release
+EXPORT_SYMBOL vmlinux 0x84301fc9 generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x84431397 unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0x84523f24 i2c_release_client
+EXPORT_SYMBOL vmlinux 0x84569471 netif_rx_ni
+EXPORT_SYMBOL vmlinux 0x846f5e18 add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0x84941374 setup_arg_pages
+EXPORT_SYMBOL vmlinux 0x849acd76 bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0x84b21ff6 dev_uc_init
+EXPORT_SYMBOL vmlinux 0x84bd6909 blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0x84d005a9 __down_read
+EXPORT_SYMBOL vmlinux 0x84db4b6e wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0x85035e62 drm_get_drawable_info
+EXPORT_SYMBOL vmlinux 0x85156072 blkdev_fsync
+EXPORT_SYMBOL vmlinux 0x852f65a6 tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0x8539e9f7 __lock_buffer
+EXPORT_SYMBOL vmlinux 0x85474df1 max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0x8548f902 invalidate_partition
+EXPORT_SYMBOL vmlinux 0x8558c578 fasync_helper
+EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x856c7750 of_find_node_with_property
+EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups
+EXPORT_SYMBOL vmlinux 0x857b3137 jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x859765ac __init_rwsem
+EXPORT_SYMBOL vmlinux 0x859a2eef pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0x85abc85f strncmp
+EXPORT_SYMBOL vmlinux 0x85aeb557 bdi_register_dev
+EXPORT_SYMBOL vmlinux 0x85de09f5 drm_mode_width
+EXPORT_SYMBOL vmlinux 0x85df9b6c strsep
+EXPORT_SYMBOL vmlinux 0x85eca970 drm_poll
+EXPORT_SYMBOL vmlinux 0x85f788d1 mdio_bus_type
+EXPORT_SYMBOL vmlinux 0x8600d0b4 netpoll_send_skb
+EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x86398407 find_get_page
+EXPORT_SYMBOL vmlinux 0x864b91b6 neigh_connected_output
+EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x8672f24f scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0x868493b6 generic_unplug_device
+EXPORT_SYMBOL vmlinux 0x868acba5 get_options
+EXPORT_SYMBOL vmlinux 0x869d91d9 __neigh_event_send
+EXPORT_SYMBOL vmlinux 0x86b1bef4 __dquot_free_space
+EXPORT_SYMBOL vmlinux 0x86b2c17a downgrade_write
+EXPORT_SYMBOL vmlinux 0x86c5c72d read_dev_sector
+EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat
+EXPORT_SYMBOL vmlinux 0x86e5e495 free_buffer_head
+EXPORT_SYMBOL vmlinux 0x86ebb746 tty_register_device
+EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x872bd087 suncore_mouse_baud_detection
+EXPORT_SYMBOL vmlinux 0x876caa99 dma_ops
+EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87ab7cad of_get_property
+EXPORT_SYMBOL vmlinux 0x87aedba1 trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x87f07fc5 ipv4_specific
+EXPORT_SYMBOL vmlinux 0x880c05f1 override_creds
+EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate
+EXPORT_SYMBOL vmlinux 0x88157ef9 ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0x883b24fb sun4v_niagara_setperf
+EXPORT_SYMBOL vmlinux 0x885caf6f vio_link_state_change
+EXPORT_SYMBOL vmlinux 0x8865d9d5 end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x888298b1 redraw_screen
+EXPORT_SYMBOL vmlinux 0x8893fa5d finish_wait
+EXPORT_SYMBOL vmlinux 0x88a9fe4b vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x88bfe571 input_open_device
+EXPORT_SYMBOL vmlinux 0x88ed7677 journal_revoke
+EXPORT_SYMBOL vmlinux 0x8902f1af of_console_path
+EXPORT_SYMBOL vmlinux 0x8918b2d8 mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0x893df443 generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0x897081a4 of_set_property
+EXPORT_SYMBOL vmlinux 0x897473df mktime
+EXPORT_SYMBOL vmlinux 0x898292db of_release_dev
+EXPORT_SYMBOL vmlinux 0x89c3f62f nobh_write_end
+EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x8a08e5e6 netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x8a1cc51b dev_open
+EXPORT_SYMBOL vmlinux 0x8a4a2b47 devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x8a521b96 skb_queue_tail
+EXPORT_SYMBOL vmlinux 0x8a6eea14 noop_qdisc
+EXPORT_SYMBOL vmlinux 0x8a7b3945 dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory
+EXPORT_SYMBOL vmlinux 0x8a87654e nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x8a8a1a13 scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0x8a937c5d tty_unthrottle
+EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8aba6e99 xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x8adce5a4 inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x8aff668b pci_find_capability
+EXPORT_SYMBOL vmlinux 0x8b0403e6 prom_getproperty
+EXPORT_SYMBOL vmlinux 0x8b046a93 compat_sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x8b0eaede pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0x8b369f89 dm_io_client_resize
+EXPORT_SYMBOL vmlinux 0x8b4f7268 __register_chrdev
+EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid
+EXPORT_SYMBOL vmlinux 0x8b6916b1 __free_pages
+EXPORT_SYMBOL vmlinux 0x8b6b0ad5 blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0x8b74fc2b iunique
+EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup
+EXPORT_SYMBOL vmlinux 0x8b89a701 follow_down
+EXPORT_SYMBOL vmlinux 0x8b8aea58 sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user
+EXPORT_SYMBOL vmlinux 0x8b9325da xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0x8bc329f9 sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x8bc92978 serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x8bcb6026 backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long
+EXPORT_SYMBOL vmlinux 0x8bf87169 __bzero
+EXPORT_SYMBOL vmlinux 0x8bfbfb08 netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x8bff8c6d tcp4_gro_receive
+EXPORT_SYMBOL vmlinux 0x8c07b76d drm_crtc_init
+EXPORT_SYMBOL vmlinux 0x8c081f17 drm_gem_handle_create
+EXPORT_SYMBOL vmlinux 0x8c0bc16d serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x8c39ee70 register_netdev
+EXPORT_SYMBOL vmlinux 0x8c3ebc72 saved_command_line
+EXPORT_SYMBOL vmlinux 0x8c446030 skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0x8c52e576 neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0x8c661ad8 alloc_fcdev
+EXPORT_SYMBOL vmlinux 0x8c6b568d i2c_bit_add_bus
+EXPORT_SYMBOL vmlinux 0x8c804db7 drm_core_ioremap
+EXPORT_SYMBOL vmlinux 0x8ca43365 kthread_stop
+EXPORT_SYMBOL vmlinux 0x8ce7e420 dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0x8cf51d15 up
+EXPORT_SYMBOL vmlinux 0x8d03d43f ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x8d3f636e drm_mm_get_block_range_generic
+EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d769085 ebus_dma_request
+EXPORT_SYMBOL vmlinux 0x8d88a5bd seq_write
+EXPORT_SYMBOL vmlinux 0x8d8fec9e set_groups
+EXPORT_SYMBOL vmlinux 0x8d947713 nlmsg_notify
+EXPORT_SYMBOL vmlinux 0x8db449bc textsearch_prepare
+EXPORT_SYMBOL vmlinux 0x8db8744e neigh_ifdown
+EXPORT_SYMBOL vmlinux 0x8db8d044 scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0x8dde1365 dev_addr_add
+EXPORT_SYMBOL vmlinux 0x8dfb019d drm_buffer_free
+EXPORT_SYMBOL vmlinux 0x8dff3694 wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x8e016845 drm_get_dev
+EXPORT_SYMBOL vmlinux 0x8e02abc0 pcim_iounmap
+EXPORT_SYMBOL vmlinux 0x8e062174 page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e261ba4 unregister_quota_format
+EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk
+EXPORT_SYMBOL vmlinux 0x8e52d79e dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x8e6dab5a unlock_buffer
+EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x8e7a0ea5 send_sig_info
+EXPORT_SYMBOL vmlinux 0x8e879bb7 __vmalloc
+EXPORT_SYMBOL vmlinux 0x8ea656df fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0x8ec7578c blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0x8ec9fa57 blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x8ecfc56c drm_mm_get_block_generic
+EXPORT_SYMBOL vmlinux 0x8f34453b phy_detach
+EXPORT_SYMBOL vmlinux 0x8f36b764 inet_accept
+EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev
+EXPORT_SYMBOL vmlinux 0x8f4da0b3 phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0x8f560c81 drm_framebuffer_init
+EXPORT_SYMBOL vmlinux 0x8f5dd8a3 xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data
+EXPORT_SYMBOL vmlinux 0x8f7cefbf dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0x8f8af923 security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0x8fa2bab2 proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x8fb9f879 set_binfmt
+EXPORT_SYMBOL vmlinux 0x8ff5a643 unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x90149011 of_find_node_by_name
+EXPORT_SYMBOL vmlinux 0x902a5406 skb_queue_head
+EXPORT_SYMBOL vmlinux 0x902e9608 phy_connect_direct
+EXPORT_SYMBOL vmlinux 0x903cd3e7 get_super
+EXPORT_SYMBOL vmlinux 0x9056dc3f bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active
+EXPORT_SYMBOL vmlinux 0x9117a881 prom_getstring
+EXPORT_SYMBOL vmlinux 0x9129c6c1 skb_push
+EXPORT_SYMBOL vmlinux 0x9139b159 scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0x9152c791 __down_write_trylock
+EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong
+EXPORT_SYMBOL vmlinux 0x917fa6be drm_get_connector_name
+EXPORT_SYMBOL vmlinux 0x91a7735a kmalloc_caches
+EXPORT_SYMBOL vmlinux 0x91d21209 scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0x920664c8 mempool_free
+EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool
+EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten
+EXPORT_SYMBOL vmlinux 0x9239d477 journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get
+EXPORT_SYMBOL vmlinux 0x923f559d fb_show_logo
+EXPORT_SYMBOL vmlinux 0x924ff51a sync_blockdev
+EXPORT_SYMBOL vmlinux 0x9272c699 may_umount
+EXPORT_SYMBOL vmlinux 0x929f0d53 max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0x92abd2a3 phy_connect
+EXPORT_SYMBOL vmlinux 0x92ace64a softnet_data
+EXPORT_SYMBOL vmlinux 0x92be56dd drm_get_encoder_name
+EXPORT_SYMBOL vmlinux 0x92d3a689 sock_sendmsg
+EXPORT_SYMBOL vmlinux 0x92d67d99 pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0x92e7b301 write_cache_pages
+EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le
+EXPORT_SYMBOL vmlinux 0x930ab63d pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0x932d6c31 netif_device_detach
+EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x933fc363 submit_bio
+EXPORT_SYMBOL vmlinux 0x934985f4 idr_get_new_above
+EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule
+EXPORT_SYMBOL vmlinux 0x93c1f3d7 tty_write_room
+EXPORT_SYMBOL vmlinux 0x93c37cc2 jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x93eff773 journal_restart
+EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages
+EXPORT_SYMBOL vmlinux 0x94031068 set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0x940c2164 vfs_readdir
+EXPORT_SYMBOL vmlinux 0x9420c9e4 scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0x9441adbf __pagevec_release
+EXPORT_SYMBOL vmlinux 0x9443289e set_bit
+EXPORT_SYMBOL vmlinux 0x946da89d i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0x946e2c58 tty_mutex
+EXPORT_SYMBOL vmlinux 0x947b3bcc check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x94961283 vunmap
+EXPORT_SYMBOL vmlinux 0x94af632e complete_all
+EXPORT_SYMBOL vmlinux 0x94c17e5e make_bad_inode
+EXPORT_SYMBOL vmlinux 0x94c7982e __kfree_skb
+EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x950b0b51 test_and_set_bit
+EXPORT_SYMBOL vmlinux 0x9514151a _mcount
+EXPORT_SYMBOL vmlinux 0x951f7133 pci_select_bars
+EXPORT_SYMBOL vmlinux 0x9522cd1e __pci_register_driver
+EXPORT_SYMBOL vmlinux 0x952d3d6a generic_file_open
+EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init
+EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf
+EXPORT_SYMBOL vmlinux 0x9555dbfe bdevname
+EXPORT_SYMBOL vmlinux 0x955790ff kernel_sendpage
+EXPORT_SYMBOL vmlinux 0x9558ce46 mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0x95680f55 sbusfb_fill_var
+EXPORT_SYMBOL vmlinux 0x9595c075 ip_route_output_key
+EXPORT_SYMBOL vmlinux 0x95a5ba84 ns87303_lock
+EXPORT_SYMBOL vmlinux 0x95be00b8 pci_enable_device
+EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x95ceb864 key_update
+EXPORT_SYMBOL vmlinux 0x95efc591 replace_mount_options
+EXPORT_SYMBOL vmlinux 0x95f608d0 inode_set_bytes
+EXPORT_SYMBOL vmlinux 0x95fbdbb2 dm_put_device
+EXPORT_SYMBOL vmlinux 0x95fea1ea mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0x9616ec17 __sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0x962006f6 of_phy_connect
+EXPORT_SYMBOL vmlinux 0x962a2a46 I_BDEV
+EXPORT_SYMBOL vmlinux 0x962b4323 dev_get_flags
+EXPORT_SYMBOL vmlinux 0x96385519 ip_defrag
+EXPORT_SYMBOL vmlinux 0x9663b80f security_inode_readlink
+EXPORT_SYMBOL vmlinux 0x96a384eb netif_rx
+EXPORT_SYMBOL vmlinux 0x96b45d5f scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0x96b9ad78 journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x96bbebde tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96e74646 tcp_poll
+EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n
+EXPORT_SYMBOL vmlinux 0x973a1430 single_open
+EXPORT_SYMBOL vmlinux 0x97513bb5 flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x9781a0d1 netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0x9783070b d_alloc_root
+EXPORT_SYMBOL vmlinux 0x978e03a2 set_disk_ro
+EXPORT_SYMBOL vmlinux 0x97a087a2 bh_submit_read
+EXPORT_SYMBOL vmlinux 0x97b16d8b sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0x97b9e621 ip_setsockopt
+EXPORT_SYMBOL vmlinux 0x97beafa0 release_sock
+EXPORT_SYMBOL vmlinux 0x97fab95d get_gendisk
+EXPORT_SYMBOL vmlinux 0x9819be2b tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x981db8c4 vga_client_register
+EXPORT_SYMBOL vmlinux 0x98497f2c skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x9872d116 cmos_regs
+EXPORT_SYMBOL vmlinux 0x98813473 seq_escape
+EXPORT_SYMBOL vmlinux 0x988ddd1f nla_append
+EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init
+EXPORT_SYMBOL vmlinux 0x98a5c171 devm_ioport_map
+EXPORT_SYMBOL vmlinux 0x98b5e6a1 scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0x98fb5b4e seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x990a8932 vio_register_driver
+EXPORT_SYMBOL vmlinux 0x9911f7a8 key_revoke
+EXPORT_SYMBOL vmlinux 0x993006dd i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x994434d0 alloc_file
+EXPORT_SYMBOL vmlinux 0x994b545e ldc_copy
+EXPORT_SYMBOL vmlinux 0x995df621 unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0x99645efc phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x996a8b6d grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0x99918ca4 sk_wait_data
+EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x9999d435 drm_master_get
+EXPORT_SYMBOL vmlinux 0x999e8297 vfree
+EXPORT_SYMBOL vmlinux 0x999ec955 sock_no_bind
+EXPORT_SYMBOL vmlinux 0x99a2e208 tcp_splice_read
+EXPORT_SYMBOL vmlinux 0x99aa1235 kmem_ptr_validate
+EXPORT_SYMBOL vmlinux 0x99adf4d0 pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99c76578 scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name
+EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink
+EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0x99f2d7cb __netif_schedule
+EXPORT_SYMBOL vmlinux 0x99fe26bd alloc_disk
+EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk
+EXPORT_SYMBOL vmlinux 0x9a604c60 xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0x9a632f00 block_sync_page
+EXPORT_SYMBOL vmlinux 0x9a79cadc grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0x9a8678ca max8925_reg_write
+EXPORT_SYMBOL vmlinux 0x9a9b9830 unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x9aa3be0d simple_transaction_release
+EXPORT_SYMBOL vmlinux 0x9aa6d5f4 udp_prot
+EXPORT_SYMBOL vmlinux 0x9aabc564 crc16
+EXPORT_SYMBOL vmlinux 0x9aacd62b prom_getintdefault
+EXPORT_SYMBOL vmlinux 0x9acca432 lookup_hash
+EXPORT_SYMBOL vmlinux 0x9ad84a31 ldc_map_single
+EXPORT_SYMBOL vmlinux 0x9ada2c42 set_create_files_as
+EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b49a39f kick_iocb
+EXPORT_SYMBOL vmlinux 0x9b5883a6 nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x9b6d042c release_firmware
+EXPORT_SYMBOL vmlinux 0x9b866e08 journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split
+EXPORT_SYMBOL vmlinux 0x9bb1196f drm_handle_vblank
+EXPORT_SYMBOL vmlinux 0x9bd4329c jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0x9be31170 down_write_trylock
+EXPORT_SYMBOL vmlinux 0x9bf85db6 mapping_tagged
+EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c05dbf4 __scsi_add_device
+EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan
+EXPORT_SYMBOL vmlinux 0x9c25acf1 drm_mm_dump_table
+EXPORT_SYMBOL vmlinux 0x9c434f13 tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0x9c4487e5 fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0x9c593bd7 phy_device_free
+EXPORT_SYMBOL vmlinux 0x9c5b17a5 __wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x9ca95a0e sort
+EXPORT_SYMBOL vmlinux 0x9cb4685e pagevec_lookup
+EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x9cc74345 pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0x9cd52c64 sock_create_lite
+EXPORT_SYMBOL vmlinux 0x9cdb35bf blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9d18f9e0 inet_register_protosw
+EXPORT_SYMBOL vmlinux 0x9d38a6a1 dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d5fab53 bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0x9d8a742b vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0x9d94a8b4 freeze_bdev
+EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x9db34c55 nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x9db37875 change_bit
+EXPORT_SYMBOL vmlinux 0x9dbff6dc log_wait_commit
+EXPORT_SYMBOL vmlinux 0x9dd417c0 elv_rb_add
+EXPORT_SYMBOL vmlinux 0x9df1d614 end_page_writeback
+EXPORT_SYMBOL vmlinux 0x9df3a872 skb_trim
+EXPORT_SYMBOL vmlinux 0x9df9ea6a bio_put
+EXPORT_SYMBOL vmlinux 0x9e05e427 dquot_file_open
+EXPORT_SYMBOL vmlinux 0x9e0e2ff3 kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x9e391f00 journal_clear_err
+EXPORT_SYMBOL vmlinux 0x9e3ee13f drm_mode_create_dithering_property
+EXPORT_SYMBOL vmlinux 0x9e771285 _PAGE_E
+EXPORT_SYMBOL vmlinux 0x9e898a7b unregister_filesystem
+EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9eb6d4d8 splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource
+EXPORT_SYMBOL vmlinux 0x9ecf0519 d_splice_alias
+EXPORT_SYMBOL vmlinux 0x9edbecae snprintf
+EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk
+EXPORT_SYMBOL vmlinux 0x9f0270e6 ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool
+EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f984513 strrchr
+EXPORT_SYMBOL vmlinux 0x9fa42af5 input_unregister_handler
+EXPORT_SYMBOL vmlinux 0x9fcd4e53 scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0x9fdd34bb vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0x9ffc1305 del_gendisk
+EXPORT_SYMBOL vmlinux 0xa0088e0c ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0xa014d2a5 mac_find_mode
+EXPORT_SYMBOL vmlinux 0xa0191ff6 __pci_enable_wake
+EXPORT_SYMBOL vmlinux 0xa01ea046 of_mdiobus_register
+EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa051b197 rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0xa05313c3 sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0xa059d800 mdiobus_read
+EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa05f3de4 pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0xa081cf76 drm_lock_take
+EXPORT_SYMBOL vmlinux 0xa0832031 find_lock_page
+EXPORT_SYMBOL vmlinux 0xa0a089df inet_sendmsg
+EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec
+EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0ba83f8 drm_open
+EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize
+EXPORT_SYMBOL vmlinux 0xa0d8c8ab kmem_cache_size
+EXPORT_SYMBOL vmlinux 0xa0ebb2ba _PAGE_CACHE
+EXPORT_SYMBOL vmlinux 0xa0fade29 del_timer
+EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa12d6f64 kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0xa13173df xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0xa13f2e59 sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa177a4ad dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0xa17b38ad mb_cache_create
+EXPORT_SYMBOL vmlinux 0xa185c10d tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0xa187794a vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0xa1b5e87e xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode
+EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa1bd3d6d drm_vblank_count
+EXPORT_SYMBOL vmlinux 0xa1beda7e dev_mc_add
+EXPORT_SYMBOL vmlinux 0xa1c6e65a cdev_index
+EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched
+EXPORT_SYMBOL vmlinux 0xa1e9c6df drm_read
+EXPORT_SYMBOL vmlinux 0xa1eabd87 drm_mode_list_concat
+EXPORT_SYMBOL vmlinux 0xa208df72 skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa223024b of_parse_phandles_with_args
+EXPORT_SYMBOL vmlinux 0xa235293d idr_replace
+EXPORT_SYMBOL vmlinux 0xa246e8ae mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0xa25b9765 qdisc_reset
+EXPORT_SYMBOL vmlinux 0xa26227ba xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0xa26f6146 skb_tx_hash
+EXPORT_SYMBOL vmlinux 0xa280bf29 dm_get_device
+EXPORT_SYMBOL vmlinux 0xa28b767e tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0xa29b75a8 wireless_send_event
+EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2ddf51b vio_validate_sid
+EXPORT_SYMBOL vmlinux 0xa2e9e2eb iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0xa2f7c7c2 neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0xa305acfa sk_dst_check
+EXPORT_SYMBOL vmlinux 0xa30fd9e1 pcim_enable_device
+EXPORT_SYMBOL vmlinux 0xa326b85a fsync_bdev
+EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker
+EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy
+EXPORT_SYMBOL vmlinux 0xa34a4aa7 ___copy_to_user
+EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config
+EXPORT_SYMBOL vmlinux 0xa370cd31 ip_ct_attach
+EXPORT_SYMBOL vmlinux 0xa394a9fd __alloc_skb
+EXPORT_SYMBOL vmlinux 0xa397809e d_invalidate
+EXPORT_SYMBOL vmlinux 0xa39871d1 audit_log_end
+EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay
+EXPORT_SYMBOL vmlinux 0xa3d53ef9 dquot_commit
+EXPORT_SYMBOL vmlinux 0xa3df9a7c rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0xa3e0a2f6 napi_get_frags
+EXPORT_SYMBOL vmlinux 0xa4128798 simple_lookup
+EXPORT_SYMBOL vmlinux 0xa4245378 sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0xa43b0db5 input_unregister_handle
+EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0xa48348d5 wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0xa4908091 dqput
+EXPORT_SYMBOL vmlinux 0xa4b8f41f devm_ioremap
+EXPORT_SYMBOL vmlinux 0xa4bb414b tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0xa51c1eab keyring_clear
+EXPORT_SYMBOL vmlinux 0xa51e9bc5 bio_split
+EXPORT_SYMBOL vmlinux 0xa53bba92 elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0xa53d6101 skb_recycle_check
+EXPORT_SYMBOL vmlinux 0xa55a79af do_splice_to
+EXPORT_SYMBOL vmlinux 0xa55ea9fa ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0xa5616b5b get_fb_unmapped_area
+EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone
+EXPORT_SYMBOL vmlinux 0xa576c263 generic_find_next_le_bit
+EXPORT_SYMBOL vmlinux 0xa57c85a7 netif_napi_del
+EXPORT_SYMBOL vmlinux 0xa5842de3 file_update_time
+EXPORT_SYMBOL vmlinux 0xa586931f tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0xa58b00fa ldc_free
+EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse
+EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a416a5 da903x_query_status
+EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last
+EXPORT_SYMBOL vmlinux 0xa5d71530 neigh_table_clear
+EXPORT_SYMBOL vmlinux 0xa5e1749e fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0xa5e68673 tlb_type
+EXPORT_SYMBOL vmlinux 0xa5ef2be0 save_mount_options
+EXPORT_SYMBOL vmlinux 0xa5f49138 up_read
+EXPORT_SYMBOL vmlinux 0xa60561d2 udp_proc_register
+EXPORT_SYMBOL vmlinux 0xa6510f63 __scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0xa667560e jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0xa673959c i2c_del_driver
+EXPORT_SYMBOL vmlinux 0xa67e8bc3 rfkill_blocked
+EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa6d9f277 drm_property_destroy
+EXPORT_SYMBOL vmlinux 0xa6e4026f lookup_bdev
+EXPORT_SYMBOL vmlinux 0xa7117d7b mark_info_dirty
+EXPORT_SYMBOL vmlinux 0xa7138301 tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0xa722407c clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0xa7257bc9 dget_locked
+EXPORT_SYMBOL vmlinux 0xa7502551 register_qdisc
+EXPORT_SYMBOL vmlinux 0xa75b7b8e tcp_make_synack
+EXPORT_SYMBOL vmlinux 0xa773418f fddi_type_trans
+EXPORT_SYMBOL vmlinux 0xa77645b2 ldc_disconnect
+EXPORT_SYMBOL vmlinux 0xa787e012 should_remove_suid
+EXPORT_SYMBOL vmlinux 0xa79a887c do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0xa7c28317 __locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xa7cc38d2 usb_gadget_unregister_driver
+EXPORT_SYMBOL vmlinux 0xa7f331cd iget_failed
+EXPORT_SYMBOL vmlinux 0xa7ff4075 inetdev_by_index
+EXPORT_SYMBOL vmlinux 0xa816a9e9 skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on
+EXPORT_SYMBOL vmlinux 0xa827381a noop_llseek
+EXPORT_SYMBOL vmlinux 0xa8337489 journal_set_features
+EXPORT_SYMBOL vmlinux 0xa85f3bfb unregister_key_type
+EXPORT_SYMBOL vmlinux 0xa86cf2f5 clear_inode
+EXPORT_SYMBOL vmlinux 0xa8837f1d neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0xa886a958 krealloc
+EXPORT_SYMBOL vmlinux 0xa89cd7f5 blk_end_request
+EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region
+EXPORT_SYMBOL vmlinux 0xa8c1ffaa xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0xa8cde9a7 remove_wait_queue
+EXPORT_SYMBOL vmlinux 0xa8f567cb nf_log_unregister
+EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa9111a47 do_gettimeofday
+EXPORT_SYMBOL vmlinux 0xa92edde4 slow_work_cancel
+EXPORT_SYMBOL vmlinux 0xa98d3893 journal_extend
+EXPORT_SYMBOL vmlinux 0xa9bfda81 skb_append
+EXPORT_SYMBOL vmlinux 0xa9d69b04 generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xaa2c956c key_task_permission
+EXPORT_SYMBOL vmlinux 0xaa4790a8 __tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0xaa526272 pci_dev_put
+EXPORT_SYMBOL vmlinux 0xaa5fa6fe xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0xaa796430 vio_unregister_driver
+EXPORT_SYMBOL vmlinux 0xaae1fabc __generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xaaf31321 poll_initwait
+EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp
+EXPORT_SYMBOL vmlinux 0xab046829 drm_exit
+EXPORT_SYMBOL vmlinux 0xab3de3bc phy_sanitize_settings
+EXPORT_SYMBOL vmlinux 0xab60f500 submit_bh
+EXPORT_SYMBOL vmlinux 0xab6fed12 skb_seq_read
+EXPORT_SYMBOL vmlinux 0xab78acad tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xab7f1ef8 iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0xaba8a65a default_llseek
+EXPORT_SYMBOL vmlinux 0xabb7600a tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0xabbd4657 sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabf1d9ab key_payload_reserve
+EXPORT_SYMBOL vmlinux 0xabfcfac5 add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac2dab09 prom_getint
+EXPORT_SYMBOL vmlinux 0xac373076 drm_mode_remove
+EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0xac452012 scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xac4fc5f1 kmem_cache_create
+EXPORT_SYMBOL vmlinux 0xac5f113d cpu_all_bits
+EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xacc6f2c9 ebus_dma_residue
+EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton
+EXPORT_SYMBOL vmlinux 0xacd288b1 generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xace49056 drm_rmmap_locked
+EXPORT_SYMBOL vmlinux 0xace4c8ed tick_ops
+EXPORT_SYMBOL vmlinux 0xace58f63 mpage_writepage
+EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup
+EXPORT_SYMBOL vmlinux 0xad016e0d netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex
+EXPORT_SYMBOL vmlinux 0xad0defac pci_choose_state
+EXPORT_SYMBOL vmlinux 0xad25bb20 init_timer_key
+EXPORT_SYMBOL vmlinux 0xad3317f4 generic_setattr
+EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad4fcb50 tcp_shutdown
+EXPORT_SYMBOL vmlinux 0xade2aca7 jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xadf79b19 bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0xadf84505 kernel_getpeername
+EXPORT_SYMBOL vmlinux 0xae043370 drm_framebuffer_cleanup
+EXPORT_SYMBOL vmlinux 0xae556c98 sock_no_getname
+EXPORT_SYMBOL vmlinux 0xae644b16 __napi_schedule
+EXPORT_SYMBOL vmlinux 0xae90407b arp_xmit
+EXPORT_SYMBOL vmlinux 0xae9ab4c6 dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xaeaccef3 tty_register_driver
+EXPORT_SYMBOL vmlinux 0xaec62480 bdi_register
+EXPORT_SYMBOL vmlinux 0xaecbf4b8 ldc_free_exp_dring
+EXPORT_SYMBOL vmlinux 0xaed483c9 bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0xaef5d795 uart_get_divisor
+EXPORT_SYMBOL vmlinux 0xaf02592e sock_no_mmap
+EXPORT_SYMBOL vmlinux 0xaf29788e drm_sman_init
+EXPORT_SYMBOL vmlinux 0xaf2b76d3 __dquot_transfer
+EXPORT_SYMBOL vmlinux 0xaf2ca1fe nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0xaf4326d3 qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn
+EXPORT_SYMBOL vmlinux 0xafe9b3a0 get_sb_pseudo
+EXPORT_SYMBOL vmlinux 0xb00cacb3 scsi_register
+EXPORT_SYMBOL vmlinux 0xb02968c0 netif_carrier_off
+EXPORT_SYMBOL vmlinux 0xb02b8406 mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0xb037e39a netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0xb045151b scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0xb04865fa __lru_cache_add
+EXPORT_SYMBOL vmlinux 0xb0741858 filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0xb096e1ca vfs_readv
+EXPORT_SYMBOL vmlinux 0xb0a66491 __skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0c7eafb uart_update_timeout
+EXPORT_SYMBOL vmlinux 0xb0e10781 get_option
+EXPORT_SYMBOL vmlinux 0xb0e797e4 backlight_force_update
+EXPORT_SYMBOL vmlinux 0xb0f24f05 cont_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0xb107fb05 unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat
+EXPORT_SYMBOL vmlinux 0xb13f83a1 secpath_dup
+EXPORT_SYMBOL vmlinux 0xb147ea92 skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xb157cb18 request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1b11fae gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1ed8d77 input_get_keycode
+EXPORT_SYMBOL vmlinux 0xb1f79252 alloc_netdev_mq
+EXPORT_SYMBOL vmlinux 0xb20c24e9 pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0xb222df20 dm_table_event
+EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short
+EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xb24dd473 of_phy_connect_fixed_link
+EXPORT_SYMBOL vmlinux 0xb257bd81 __insert_inode_hash
+EXPORT_SYMBOL vmlinux 0xb2629e6e dst_destroy
+EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb28705ef bdev_read_only
+EXPORT_SYMBOL vmlinux 0xb2877100 mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0xb28c1a97 call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0xb291d890 bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0xb3164a1b inet_getname
+EXPORT_SYMBOL vmlinux 0xb3342ea9 do_SAK
+EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3efc72d down
+EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact
+EXPORT_SYMBOL vmlinux 0xb41c14e9 drm_cvt_mode
+EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked
+EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool
+EXPORT_SYMBOL vmlinux 0xb42fdef7 drm_vblank_off
+EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb48aeb92 tty_throttle
+EXPORT_SYMBOL vmlinux 0xb4a88382 i2c_verify_client
+EXPORT_SYMBOL vmlinux 0xb4ab325d inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0xb4b3b0b7 backlight_device_register
+EXPORT_SYMBOL vmlinux 0xb4ca785f qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0xb4d549e1 xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0xb4df4d6a tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0xb4e749cf otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf
+EXPORT_SYMBOL vmlinux 0xb532c26e drm_i2c_encoder_destroy
+EXPORT_SYMBOL vmlinux 0xb5368efc console_start
+EXPORT_SYMBOL vmlinux 0xb544237a pcibios_resource_to_bus
+EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb54e631d drm_encoder_init
+EXPORT_SYMBOL vmlinux 0xb5780a80 deactivate_super
+EXPORT_SYMBOL vmlinux 0xb585f3a6 copy_io_context
+EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5a7003d __task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0xb5b0dabb dev_mc_flush
+EXPORT_SYMBOL vmlinux 0xb5dd436e iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0xb5eacce8 misc_deregister
+EXPORT_SYMBOL vmlinux 0xb5eeb64b page_follow_link_light
+EXPORT_SYMBOL vmlinux 0xb5f8ea63 jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0xb6127469 dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0xb62396eb scsi_register_interface
+EXPORT_SYMBOL vmlinux 0xb646f103 scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt
+EXPORT_SYMBOL vmlinux 0xb680986d ldc_connect
+EXPORT_SYMBOL vmlinux 0xb681b328 tty_port_close
+EXPORT_SYMBOL vmlinux 0xb686b6f5 drm_mm_debug_table
+EXPORT_SYMBOL vmlinux 0xb693c3c5 inode_add_bytes
+EXPORT_SYMBOL vmlinux 0xb69527f5 tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0xb6a467b1 drm_edid_is_valid
+EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu
+EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6e9a6dd tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0xb6eb16ea of_device_register
+EXPORT_SYMBOL vmlinux 0xb6ed3adb tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0xb6f10f67 xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0xb6f25ef1 neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0xb6f6817f posix_lock_file
+EXPORT_SYMBOL vmlinux 0xb70d1c0b blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0xb733f8fc set_device_ro
+EXPORT_SYMBOL vmlinux 0xb749de4f __secpath_destroy
+EXPORT_SYMBOL vmlinux 0xb75a7732 unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0xb75e6937 journal_update_format
+EXPORT_SYMBOL vmlinux 0xb75fec21 pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0xb77a7c47 prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0xb78b3626 interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0xb78f5ce7 scsi_device_put
+EXPORT_SYMBOL vmlinux 0xb79409a6 pcix_get_mmrbc
+EXPORT_SYMBOL vmlinux 0xb79700c2 simple_setsize
+EXPORT_SYMBOL vmlinux 0xb7b152ca cfb_copyarea
+EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring
+EXPORT_SYMBOL vmlinux 0xb8043c27 input_flush_device
+EXPORT_SYMBOL vmlinux 0xb8147d1c dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0xb828d243 sockfd_lookup
+EXPORT_SYMBOL vmlinux 0xb83a0c65 writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0xb86b836b input_grab_device
+EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32
+EXPORT_SYMBOL vmlinux 0xb878a3aa kthread_bind
+EXPORT_SYMBOL vmlinux 0xb87e1c50 netlink_set_err
+EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32
+EXPORT_SYMBOL vmlinux 0xb8ae70c8 unregister_binfmt
+EXPORT_SYMBOL vmlinux 0xb8b5dc9c bio_pair_release
+EXPORT_SYMBOL vmlinux 0xb905ec63 pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0xb90894c7 ida_init
+EXPORT_SYMBOL vmlinux 0xb90a88ab vio_send_sid
+EXPORT_SYMBOL vmlinux 0xb929e5aa kernel_bind
+EXPORT_SYMBOL vmlinux 0xb92da043 drm_getsarea
+EXPORT_SYMBOL vmlinux 0xb9438880 __netdev_alloc_page
+EXPORT_SYMBOL vmlinux 0xb9588932 drm_debugfs_remove_files
+EXPORT_SYMBOL vmlinux 0xb9740abb dev_addr_flush
+EXPORT_SYMBOL vmlinux 0xb97fc8df jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb9a95dbc fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0xb9c122d0 __blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0xb9e52429 __wake_up
+EXPORT_SYMBOL vmlinux 0xb9e71a04 down_read_trylock
+EXPORT_SYMBOL vmlinux 0xba3fa89e tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0xba486c14 locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba6ab61a km_state_notify
+EXPORT_SYMBOL vmlinux 0xba838387 dcache_dir_open
+EXPORT_SYMBOL vmlinux 0xba992b02 i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup
+EXPORT_SYMBOL vmlinux 0xbaa2cf5a tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbab26ab8 vm_insert_page
+EXPORT_SYMBOL vmlinux 0xbabeac1b unregister_nls
+EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb4dd478 ip_mc_rejoin_group
+EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb70f84c thaw_bdev
+EXPORT_SYMBOL vmlinux 0xbb90c8f3 sock_map_fd
+EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font
+EXPORT_SYMBOL vmlinux 0xbb9aa92b uart_match_port
+EXPORT_SYMBOL vmlinux 0xbbafa7cd bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xbbb9aafb drm_mode_connector_detach_encoder
+EXPORT_SYMBOL vmlinux 0xbbda0f00 ldc_alloc
+EXPORT_SYMBOL vmlinux 0xbc011760 inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0xbc0c14b4 dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0xbc22b29b abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0xbc2b402a netpoll_setup
+EXPORT_SYMBOL vmlinux 0xbc2f643c do_sync_write
+EXPORT_SYMBOL vmlinux 0xbc47f140 uart_register_driver
+EXPORT_SYMBOL vmlinux 0xbc73e6c0 seq_release
+EXPORT_SYMBOL vmlinux 0xbc7d19b3 i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0xbc8832cd starget_for_each_device
+EXPORT_SYMBOL vmlinux 0xbc8b81b3 drm_connector_cleanup
+EXPORT_SYMBOL vmlinux 0xbcb41bb3 make_EII_client
+EXPORT_SYMBOL vmlinux 0xbcca03ab dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xbcde1272 vga_put
+EXPORT_SYMBOL vmlinux 0xbce9f647 kmem_cache_alloc_notrace
+EXPORT_SYMBOL vmlinux 0xbd06579b fb_set_cmap
+EXPORT_SYMBOL vmlinux 0xbd46e9bc pipe_lock
+EXPORT_SYMBOL vmlinux 0xbd508630 vio_port_up
+EXPORT_SYMBOL vmlinux 0xbd5b79c1 blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0xbd5ba91a filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0xbd80161e dev_addr_del
+EXPORT_SYMBOL vmlinux 0xbdbbafae module_put
+EXPORT_SYMBOL vmlinux 0xbdcbc100 mod_timer
+EXPORT_SYMBOL vmlinux 0xbdcd63af security_task_getsecid
+EXPORT_SYMBOL vmlinux 0xbde23d53 lro_vlan_hwaccel_receive_frags
+EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next
+EXPORT_SYMBOL vmlinux 0xbe019562 sock_rfree
+EXPORT_SYMBOL vmlinux 0xbe13ea0f sock_kmalloc
+EXPORT_SYMBOL vmlinux 0xbe452c5f drm_core_ioremap_wc
+EXPORT_SYMBOL vmlinux 0xbe54808b inet_add_protocol
+EXPORT_SYMBOL vmlinux 0xbe7a7f2c iput
+EXPORT_SYMBOL vmlinux 0xbe940c6e remove_arg_zero
+EXPORT_SYMBOL vmlinux 0xbeaf9e45 fd_install
+EXPORT_SYMBOL vmlinux 0xbebbc344 drm_ati_pcigart_init
+EXPORT_SYMBOL vmlinux 0xbec0c04d km_query
+EXPORT_SYMBOL vmlinux 0xbee00b99 ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0xbef2fd95 security_path_symlink
+EXPORT_SYMBOL vmlinux 0xbef3ffa1 fsnotify_find_mark_entry
+EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbf1faebe mutex_trylock
+EXPORT_SYMBOL vmlinux 0xbf589a99 tc_classify_compat
+EXPORT_SYMBOL vmlinux 0xbf718040 single_release
+EXPORT_SYMBOL vmlinux 0xbf71d37e blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0xbf77a27a kobject_get
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf993764 __memscan_zero
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbf9c5e23 dma_find_channel
+EXPORT_SYMBOL vmlinux 0xbfc4b855 input_close_device
+EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user
+EXPORT_SYMBOL vmlinux 0xc01c21e3 tcf_hash_create
+EXPORT_SYMBOL vmlinux 0xc057fee7 register_key_type
+EXPORT_SYMBOL vmlinux 0xc05814f4 __brelse
+EXPORT_SYMBOL vmlinux 0xc05a5eb4 mii_phy_probe
+EXPORT_SYMBOL vmlinux 0xc0614c1e jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0xc06ec2c8 abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0xc07098d6 seq_putc
+EXPORT_SYMBOL vmlinux 0xc080eb9b drm_gem_object_handle_free
+EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be
+EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit
+EXPORT_SYMBOL vmlinux 0xc0bbb4f4 elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0xc0dbee77 xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0xc0f63c74 sbusfb_mmap_helper
+EXPORT_SYMBOL vmlinux 0xc11a4310 napi_frags_skb
+EXPORT_SYMBOL vmlinux 0xc14522b3 jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit
+EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic
+EXPORT_SYMBOL vmlinux 0xc1776fda sock_wfree
+EXPORT_SYMBOL vmlinux 0xc17b6a0e try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0xc185f07d bdget_disk
+EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1ee17ca test_and_change_bit
+EXPORT_SYMBOL vmlinux 0xc22287bc mdiobus_register
+EXPORT_SYMBOL vmlinux 0xc23bb34f scsi_unregister
+EXPORT_SYMBOL vmlinux 0xc25038bc tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc2d3c8da jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0xc2e35558 bdi_init
+EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices
+EXPORT_SYMBOL vmlinux 0xc2ea8dc5 tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0xc310936f block_write_begin
+EXPORT_SYMBOL vmlinux 0xc32ca4c2 napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xc36708bc netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0xc38c4ca2 PAGE_SHARED
+EXPORT_SYMBOL vmlinux 0xc3a24bcc d_find_alias
+EXPORT_SYMBOL vmlinux 0xc3d21a31 dev_txq_stats_fold
+EXPORT_SYMBOL vmlinux 0xc3e25426 compat_sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0xc3e31831 drm_core_reclaim_buffers
+EXPORT_SYMBOL vmlinux 0xc3fd6d02 scsi_device_get
+EXPORT_SYMBOL vmlinux 0xc4137036 dquot_resume
+EXPORT_SYMBOL vmlinux 0xc41f9e62 inode_init_once
+EXPORT_SYMBOL vmlinux 0xc43b0432 vfs_getattr
+EXPORT_SYMBOL vmlinux 0xc43db659 blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0xc43eed91 fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0xc44032f0 journal_check_available_features
+EXPORT_SYMBOL vmlinux 0xc44b0ed2 unlock_new_inode
+EXPORT_SYMBOL vmlinux 0xc4542147 journal_create
+EXPORT_SYMBOL vmlinux 0xc464e31f skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xc4678d41 key_link
+EXPORT_SYMBOL vmlinux 0xc47aea93 pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup
+EXPORT_SYMBOL vmlinux 0xc4c248b9 ___ratelimit
+EXPORT_SYMBOL vmlinux 0xc4c359fa bio_clone
+EXPORT_SYMBOL vmlinux 0xc4d4591e tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0xc4e062d5 gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0xc4e39fd7 tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic
+EXPORT_SYMBOL vmlinux 0xc5098c4d nf_afinfo
+EXPORT_SYMBOL vmlinux 0xc523b32c __xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc57442af skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xc5861a07 __rta_fill
+EXPORT_SYMBOL vmlinux 0xc594e5f8 xfrm_init_state
+EXPORT_SYMBOL vmlinux 0xc5a861ed abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0xc5a94439 call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0xc5b81c68 pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0xc6184045 cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0xc6327b65 sun4v_chip_type
+EXPORT_SYMBOL vmlinux 0xc66001d5 mem_map
+EXPORT_SYMBOL vmlinux 0xc66398d4 nobh_write_begin
+EXPORT_SYMBOL vmlinux 0xc672c3bd drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL vmlinux 0xc6a7cb1f proto_unregister
+EXPORT_SYMBOL vmlinux 0xc6b12a69 bdput
+EXPORT_SYMBOL vmlinux 0xc6bbb945 blk_sync_queue
+EXPORT_SYMBOL vmlinux 0xc6c7eff9 sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0xc6fa552b i2c_register_driver
+EXPORT_SYMBOL vmlinux 0xc70ae017 pci_request_region
+EXPORT_SYMBOL vmlinux 0xc72dbb3d cfb_imageblit
+EXPORT_SYMBOL vmlinux 0xc740c64a memchr
+EXPORT_SYMBOL vmlinux 0xc75ac6a8 max8925_reg_read
+EXPORT_SYMBOL vmlinux 0xc773da4b kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0xc77b0f81 key_alloc
+EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7ae7e82 pci_match_id
+EXPORT_SYMBOL vmlinux 0xc7b7d20f __dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xc7c6977c scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0xc7d42a47 tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0xc7ec28b0 memcmp
+EXPORT_SYMBOL vmlinux 0xc803c8f7 pci_save_state
+EXPORT_SYMBOL vmlinux 0xc8054735 cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0xc8333d81 devm_iounmap
+EXPORT_SYMBOL vmlinux 0xc8437d20 scsi_remove_target
+EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc898959b __xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc910e2e2 __scm_send
+EXPORT_SYMBOL vmlinux 0xc9161a57 down_interruptible
+EXPORT_SYMBOL vmlinux 0xc92ff765 uart_resume_port
+EXPORT_SYMBOL vmlinux 0xc95d5fcb dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0xc96598ca udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0xc96923e5 scsi_target_resume
+EXPORT_SYMBOL vmlinux 0xc98f1efd skb_copy_bits
+EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev
+EXPORT_SYMBOL vmlinux 0xc9b53df1 __bio_clone
+EXPORT_SYMBOL vmlinux 0xc9d71dfc gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0xca0f74e2 dm_table_put
+EXPORT_SYMBOL vmlinux 0xca366416 simple_link
+EXPORT_SYMBOL vmlinux 0xca4d39a5 is_container_init
+EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca66f06c nf_ct_attach
+EXPORT_SYMBOL vmlinux 0xca6818c8 mntput_no_expire
+EXPORT_SYMBOL vmlinux 0xca99f7d0 tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0xcaa887df zero_fill_bio
+EXPORT_SYMBOL vmlinux 0xcaad3aa5 pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0xcab17e69 xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0xcab85839 pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0xcae2e9e0 tcp_connect
+EXPORT_SYMBOL vmlinux 0xcb1ab0e1 inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0xcb535404 d_genocide
+EXPORT_SYMBOL vmlinux 0xcb5ede6c locks_copy_lock
+EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb8312d0 mdiobus_scan
+EXPORT_SYMBOL vmlinux 0xcb88bc94 remove_from_page_cache
+EXPORT_SYMBOL vmlinux 0xcb8d79b5 wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0xcb903907 blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0xcbbb3d0b phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0xcbbe0ef3 tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0xcbfc24f4 pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen
+EXPORT_SYMBOL vmlinux 0xcc17de5f pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc3c1ab7 copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc5243a8 nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0xcc671263 dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcca572ab tty_std_termios
+EXPORT_SYMBOL vmlinux 0xccb7b87e scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0xccc7dc4a add_disk
+EXPORT_SYMBOL vmlinux 0xccc82ecc inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0xccd2adfe tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0xcd12e77d try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xcd3a4188 i8042_install_filter
+EXPORT_SYMBOL vmlinux 0xcd42833b vga_get
+EXPORT_SYMBOL vmlinux 0xcd4a3c7c tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0xcd4b732f bit_waitqueue
+EXPORT_SYMBOL vmlinux 0xcd671083 mpage_writepages
+EXPORT_SYMBOL vmlinux 0xcd69fa87 tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0xcd820d8b dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0xcd8cc578 tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0xcd93a155 bd_claim
+EXPORT_SYMBOL vmlinux 0xcdc0aad3 drm_mode_destroy
+EXPORT_SYMBOL vmlinux 0xcddd6e1a eth_validate_addr
+EXPORT_SYMBOL vmlinux 0xcdf05195 install_exec_creds
+EXPORT_SYMBOL vmlinux 0xcdf2eff4 drm_mode_height
+EXPORT_SYMBOL vmlinux 0xcdf3aff2 page_symlink
+EXPORT_SYMBOL vmlinux 0xce2f43cb blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xce50c651 blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0xce58dd22 i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce5dd282 sunserial_unregister_minors
+EXPORT_SYMBOL vmlinux 0xce7c789b drm_get_edid
+EXPORT_SYMBOL vmlinux 0xcefa62b8 atomic_add
+EXPORT_SYMBOL vmlinux 0xcf394acd napi_gro_receive
+EXPORT_SYMBOL vmlinux 0xcf41b278 drm_get_resource_len
+EXPORT_SYMBOL vmlinux 0xcf6f11fe bio_sector_offset
+EXPORT_SYMBOL vmlinux 0xcf9c469b open_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0xcfa36073 pci_get_slot
+EXPORT_SYMBOL vmlinux 0xcfb962e5 seq_lseek
+EXPORT_SYMBOL vmlinux 0xcfcb9d61 journal_errno
+EXPORT_SYMBOL vmlinux 0xcfe13710 sparc64_get_clock_tick
+EXPORT_SYMBOL vmlinux 0xd00f659b compat_mc_setsockopt
+EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd0390028 drm_mm_takedown
+EXPORT_SYMBOL vmlinux 0xd0574ab6 blk_put_request
+EXPORT_SYMBOL vmlinux 0xd062107d mdesc_node_name
+EXPORT_SYMBOL vmlinux 0xd08fa3f0 drm_mode_set_crtcinfo
+EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd1023b9e kill_pid
+EXPORT_SYMBOL vmlinux 0xd10ed5c4 drm_gem_vm_close
+EXPORT_SYMBOL vmlinux 0xd12566fe phy_device_create
+EXPORT_SYMBOL vmlinux 0xd1b56db1 new_inode
+EXPORT_SYMBOL vmlinux 0xd2059b29 shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0xd21fad4b dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t
+EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook
+EXPORT_SYMBOL vmlinux 0xd28202b2 noop_fsync
+EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table
+EXPORT_SYMBOL vmlinux 0xd2b63a42 netlink_broadcast
+EXPORT_SYMBOL vmlinux 0xd2c8042a scsi_print_result
+EXPORT_SYMBOL vmlinux 0xd2e4c896 dev_change_flags
+EXPORT_SYMBOL vmlinux 0xd3028e75 drm_sman_set_manager
+EXPORT_SYMBOL vmlinux 0xd30bad25 blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0xd317dd54 security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible
+EXPORT_SYMBOL vmlinux 0xd3504b7d jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0xd384c91f genphy_read_status
+EXPORT_SYMBOL vmlinux 0xd38a530f generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0xd3928cf9 dev_mc_del
+EXPORT_SYMBOL vmlinux 0xd3adc6bd pci_fixup_device
+EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user
+EXPORT_SYMBOL vmlinux 0xd3c7c931 sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0xd3e185f5 xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0xd3e28865 create_proc_entry
+EXPORT_SYMBOL vmlinux 0xd3e7d1d4 generic_readlink
+EXPORT_SYMBOL vmlinux 0xd3f2f4c1 neigh_seq_next
+EXPORT_SYMBOL vmlinux 0xd3f9eba1 journal_release_buffer
+EXPORT_SYMBOL vmlinux 0xd3ffab51 drm_ht_remove
+EXPORT_SYMBOL vmlinux 0xd42d8f09 skb_dequeue
+EXPORT_SYMBOL vmlinux 0xd4596e9a mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0xd45a1b36 xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0xd4793821 fb_set_suspend
+EXPORT_SYMBOL vmlinux 0xd47aa06c down_write
+EXPORT_SYMBOL vmlinux 0xd49f1ef6 test_and_clear_bit
+EXPORT_SYMBOL vmlinux 0xd4a8ce70 scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0xd4d0b7d9 bd_set_size
+EXPORT_SYMBOL vmlinux 0xd4d330ad fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0xd4d52b3d input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0xd4ee70cc genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0xd4fa03a2 __bforget
+EXPORT_SYMBOL vmlinux 0xd503cf1e blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0xd5204a80 deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd5282783 of_match_device
+EXPORT_SYMBOL vmlinux 0xd548782f dw_spi_suspend_host
+EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out
+EXPORT_SYMBOL vmlinux 0xd56b0599 d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0xd56ba0a0 sun4v_hvapi_register
+EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages
+EXPORT_SYMBOL vmlinux 0xd58c749c jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put
+EXPORT_SYMBOL vmlinux 0xd5bc4d9b clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0xd5e38d95 jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0xd6011ee1 kobject_init
+EXPORT_SYMBOL vmlinux 0xd60fbea4 inode_get_bytes
+EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd635d134 rb_last
+EXPORT_SYMBOL vmlinux 0xd63d6819 drm_core_get_map_ofs
+EXPORT_SYMBOL vmlinux 0xd643dea2 abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0xd6723354 path_get
+EXPORT_SYMBOL vmlinux 0xd6801f1d phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0xd6949295 inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single
+EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc
+EXPORT_SYMBOL vmlinux 0xd6f0f559 idprom
+EXPORT_SYMBOL vmlinux 0xd6f5bdc0 mdiobus_write
+EXPORT_SYMBOL vmlinux 0xd6f97ca1 rb_first
+EXPORT_SYMBOL vmlinux 0xd707e110 inode_permission
+EXPORT_SYMBOL vmlinux 0xd7098a1e generic_file_mmap
+EXPORT_SYMBOL vmlinux 0xd71d32f5 __xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0xd73d7410 __xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0xd75038ca vfs_statfs
+EXPORT_SYMBOL vmlinux 0xd7691942 neigh_parms_release
+EXPORT_SYMBOL vmlinux 0xd7744dce drm_sg_alloc
+EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and
+EXPORT_SYMBOL vmlinux 0xd785b99f drm_mode_config_cleanup
+EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal
+EXPORT_SYMBOL vmlinux 0xd7c3d78a blkdev_get
+EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd81d7e53 __dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0xd832c828 kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0xd83370d0 skb_checksum
+EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user
+EXPORT_SYMBOL vmlinux 0xd8652c2f drm_gtf_mode
+EXPORT_SYMBOL vmlinux 0xd86b7ff8 ldc_read
+EXPORT_SYMBOL vmlinux 0xd8959f23 auxio_set_led
+EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone
+EXPORT_SYMBOL vmlinux 0xd8acc3c1 d_move
+EXPORT_SYMBOL vmlinux 0xd8b6acf1 simple_statfs
+EXPORT_SYMBOL vmlinux 0xd8c1d342 revert_creds
+EXPORT_SYMBOL vmlinux 0xd8cb09e1 __devm_request_region
+EXPORT_SYMBOL vmlinux 0xd8dbe3a6 netif_receive_skb
+EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd8fa6f36 compat_tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0xd90a3182 jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd944c1c8 pci_iounmap
+EXPORT_SYMBOL vmlinux 0xd94cfeed blk_rq_init
+EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd993648d pci_set_power_state
+EXPORT_SYMBOL vmlinux 0xd9aa27a2 mempool_create_node
+EXPORT_SYMBOL vmlinux 0xd9c1b31a uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xd9c66b98 nonseekable_open
+EXPORT_SYMBOL vmlinux 0xd9c990e2 skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0xd9c9e222 drm_idlelock_release
+EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf
+EXPORT_SYMBOL vmlinux 0xda27e4fc i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0xda3d2c3c prom_feval
+EXPORT_SYMBOL vmlinux 0xda3e1a2e pci_assign_resource
+EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xda7b732d journal_start_commit
+EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xdaa65880 tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0xdaffcd18 mdesc_arc_target
+EXPORT_SYMBOL vmlinux 0xdb19f005 scsi_prep_return
+EXPORT_SYMBOL vmlinux 0xdb2b33a1 otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0xdb4822d2 sk_receive_skb
+EXPORT_SYMBOL vmlinux 0xdb688072 genphy_update_link
+EXPORT_SYMBOL vmlinux 0xdb76ca1d mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0xdb8352f3 arp_send
+EXPORT_SYMBOL vmlinux 0xdbadfd54 init_task
+EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbe3ecbb page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems
+EXPORT_SYMBOL vmlinux 0xdc2448be wake_up_process
+EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint
+EXPORT_SYMBOL vmlinux 0xdc30912b idr_get_new
+EXPORT_SYMBOL vmlinux 0xdc3b3809 drm_core_get_reg_ofs
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize
+EXPORT_SYMBOL vmlinux 0xdc469149 check_disk_change
+EXPORT_SYMBOL vmlinux 0xdc759040 contig_page_data
+EXPORT_SYMBOL vmlinux 0xdc798d37 __mutex_init
+EXPORT_SYMBOL vmlinux 0xdc7d64bd qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0xdc9b6c98 ida_destroy
+EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family
+EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close
+EXPORT_SYMBOL vmlinux 0xdcb5671d strlen
+EXPORT_SYMBOL vmlinux 0xdcbcc9d6 rwsem_wake
+EXPORT_SYMBOL vmlinux 0xdce94149 blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0xdd05351c inet_frag_find
+EXPORT_SYMBOL vmlinux 0xdd07947c rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0xdd0b5986 pci_map_rom
+EXPORT_SYMBOL vmlinux 0xdd1197c8 xor_vis_3
+EXPORT_SYMBOL vmlinux 0xdd202570 blk_plug_device
+EXPORT_SYMBOL vmlinux 0xdd49095c drm_ht_insert_item
+EXPORT_SYMBOL vmlinux 0xdd4c155d phy_find_first
+EXPORT_SYMBOL vmlinux 0xdd55a88b pci_device_to_OF_node
+EXPORT_SYMBOL vmlinux 0xdd5cba54 nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xdd5fe983 sg_miter_next
+EXPORT_SYMBOL vmlinux 0xdd6a1f20 set_page_dirty
+EXPORT_SYMBOL vmlinux 0xdd894c18 netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0xdd94f990 do_munmap
+EXPORT_SYMBOL vmlinux 0xde02dcc5 jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0xde0433d1 neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0xde17bae7 complete_request_key
+EXPORT_SYMBOL vmlinux 0xde2167d6 xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0xde21b8aa of_find_device_by_node
+EXPORT_SYMBOL vmlinux 0xde3c68a6 cpu_online_mask
+EXPORT_SYMBOL vmlinux 0xde589e60 xor_vis_2
+EXPORT_SYMBOL vmlinux 0xde7502a8 PAGE_KERNEL
+EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type
+EXPORT_SYMBOL vmlinux 0xde92d6f3 con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages
+EXPORT_SYMBOL vmlinux 0xded1ecf1 pci_set_master
+EXPORT_SYMBOL vmlinux 0xdf11783b blk_get_request
+EXPORT_SYMBOL vmlinux 0xdf4c4703 sk_stop_timer
+EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol
+EXPORT_SYMBOL vmlinux 0xdf8fef53 prom_getproplen
+EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdfa3d235 dev_get_by_flags
+EXPORT_SYMBOL vmlinux 0xdff80e03 drm_gtf_mode_complex
+EXPORT_SYMBOL vmlinux 0xdfffaf10 pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0xe0001ab9 generic_file_llseek_unlocked
+EXPORT_SYMBOL vmlinux 0xe00d2481 gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0xe04c2854 blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0xe060a2a9 dm_unregister_target
+EXPORT_SYMBOL vmlinux 0xe0643df9 generic_file_fsync
+EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next
+EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free
+EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort
+EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0xe0bf990f __breadahead
+EXPORT_SYMBOL vmlinux 0xe0cd1a31 scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0xe0ed034f ether_setup
+EXPORT_SYMBOL vmlinux 0xe1112fbe irq_of_parse_and_map
+EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial
+EXPORT_SYMBOL vmlinux 0xe122c789 pci_pme_capable
+EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0xe139173b journal_force_commit
+EXPORT_SYMBOL vmlinux 0xe14352d7 tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0xe1457735 drm_ht_remove_item
+EXPORT_SYMBOL vmlinux 0xe16b893b mutex_lock
+EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe1a4b753 rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0xe1a63bb4 __ip_select_ident
+EXPORT_SYMBOL vmlinux 0xe1af4407 sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0xe1c6870f request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0xe1c94ac1 tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0xe1d5b0a5 dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0xe1d8301a d_lookup
+EXPORT_SYMBOL vmlinux 0xe1fecdd4 seq_printf
+EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense
+EXPORT_SYMBOL vmlinux 0xe2385554 __skb_bond_should_drop
+EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf
+EXPORT_SYMBOL vmlinux 0xe2477067 tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0xe24a7b88 drm_ht_find_item
+EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64
+EXPORT_SYMBOL vmlinux 0xe268d959 scsi_host_get
+EXPORT_SYMBOL vmlinux 0xe27807cb drm_vblank_pre_modeset
+EXPORT_SYMBOL vmlinux 0xe288fbbe scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0xe29c5784 blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp
+EXPORT_SYMBOL vmlinux 0xe2e24264 ____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0xe2e27304 vfs_writev
+EXPORT_SYMBOL vmlinux 0xe30399ce vfs_unlink
+EXPORT_SYMBOL vmlinux 0xe3281c50 scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0xe33e93e7 drm_addbufs_pci
+EXPORT_SYMBOL vmlinux 0xe33edd65 genl_register_ops
+EXPORT_SYMBOL vmlinux 0xe385cd63 __pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0xe387864b __serio_register_driver
+EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf
+EXPORT_SYMBOL vmlinux 0xe3cb0816 drm_mode_find_dmt
+EXPORT_SYMBOL vmlinux 0xe3cf0a2e dev_trans_start
+EXPORT_SYMBOL vmlinux 0xe3e7f691 dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0xe4159837 blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0xe42d902c drm_mm_pre_get
+EXPORT_SYMBOL vmlinux 0xe479d21e dev_load
+EXPORT_SYMBOL vmlinux 0xe4ac6bff dquot_acquire
+EXPORT_SYMBOL vmlinux 0xe4bfb4dd input_release_device
+EXPORT_SYMBOL vmlinux 0xe4c281e4 tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xe4ce9e3e insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0xe4e713f1 sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0xe4e73386 netlink_ack
+EXPORT_SYMBOL vmlinux 0xe4f074cc generic_permission
+EXPORT_SYMBOL vmlinux 0xe50ded6c fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe52dd6ae tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0xe536d5d7 inet_release
+EXPORT_SYMBOL vmlinux 0xe53ca048 take_over_console
+EXPORT_SYMBOL vmlinux 0xe56b7a0b rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0xe577c132 dquot_quota_on
+EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton
+EXPORT_SYMBOL vmlinux 0xe57fedf9 sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5bdce7e drm_mode_debug_printmodeline
+EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5ec94f8 qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe66759b1 dm_table_get_size
+EXPORT_SYMBOL vmlinux 0xe68a2a70 scm_fp_dup
+EXPORT_SYMBOL vmlinux 0xe68c88cb udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe69894c9 bmap
+EXPORT_SYMBOL vmlinux 0xe69928b3 kmem_cache_alloc_node_notrace
+EXPORT_SYMBOL vmlinux 0xe6b42519 eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0xe6beb990 drm_irq_uninstall
+EXPORT_SYMBOL vmlinux 0xe6d5b98e free_netdev
+EXPORT_SYMBOL vmlinux 0xe6d8ee4e posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0xe6f45291 tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe70e2fc9 generic_getxattr
+EXPORT_SYMBOL vmlinux 0xe727e6c3 ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0xe73d0fde sleep_on
+EXPORT_SYMBOL vmlinux 0xe750e071 jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0xe75fb238 __destroy_inode
+EXPORT_SYMBOL vmlinux 0xe7683ed9 journal_dirty_data
+EXPORT_SYMBOL vmlinux 0xe782899e prom_searchsiblings
+EXPORT_SYMBOL vmlinux 0xe7a2d902 tcp_proc_register
+EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7d4fa20 __neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0xe7d52810 __vlan_hwaccel_rx
+EXPORT_SYMBOL vmlinux 0xe7f5c0cd devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xe7fcb972 inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0xe7fdf521 i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0xe8184d22 register_console
+EXPORT_SYMBOL vmlinux 0xe82743f9 tcf_hash_release
+EXPORT_SYMBOL vmlinux 0xe82a1180 bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0xe82d3bfc fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0xe84c5f39 udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0xe86ec329 rfkill_get_led_trigger_name
+EXPORT_SYMBOL vmlinux 0xe8762270 dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0xe8a6fd95 consume_skb
+EXPORT_SYMBOL vmlinux 0xe8dfcdf9 __csum_partial_copy_to_user
+EXPORT_SYMBOL vmlinux 0xe8e08d5f journal_get_write_access
+EXPORT_SYMBOL vmlinux 0xe8e103d2 bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0xe8ece6e0 simple_setattr
+EXPORT_SYMBOL vmlinux 0xe8f3ecaf kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0xe90aa4e9 rb_insert_color
+EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module
+EXPORT_SYMBOL vmlinux 0xe914e41e strcpy
+EXPORT_SYMBOL vmlinux 0xe919dd5c drm_sman_owner_clean
+EXPORT_SYMBOL vmlinux 0xe922869c security_file_permission
+EXPORT_SYMBOL vmlinux 0xe932591d bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0xe96c3188 scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0xe98a87f1 dcache_lock
+EXPORT_SYMBOL vmlinux 0xe9b42d8e module_refcount
+EXPORT_SYMBOL vmlinux 0xe9d441c0 ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea147363 printk
+EXPORT_SYMBOL vmlinux 0xea212c69 poll_freewait
+EXPORT_SYMBOL vmlinux 0xea21cbb6 scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0xea705f3d ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0xea8dfb00 blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0xeaab4e8b up_write
+EXPORT_SYMBOL vmlinux 0xeacab53d blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump
+EXPORT_SYMBOL vmlinux 0xeaeb56bd get_io_context
+EXPORT_SYMBOL vmlinux 0xeb0970cc input_register_handler
+EXPORT_SYMBOL vmlinux 0xeb179848 mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0xeb1f8014 mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq
+EXPORT_SYMBOL vmlinux 0xeb36ba7e scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0xeb39c96c nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0xeb3f9117 udp_sendmsg
+EXPORT_SYMBOL vmlinux 0xeb451413 inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0xeb4a0e05 dm_io_client_create
+EXPORT_SYMBOL vmlinux 0xeb4feeb6 bio_copy_user
+EXPORT_SYMBOL vmlinux 0xeb5578e9 input_free_device
+EXPORT_SYMBOL vmlinux 0xeb6f06eb jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0xeb7688c0 sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0xeb818bd2 tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n
+EXPORT_SYMBOL vmlinux 0xeb8f6afd linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0xebaa8fdf security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0xebb6f94b pci_remove_bus
+EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp
+EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull
+EXPORT_SYMBOL vmlinux 0xebd4dca9 seq_release_private
+EXPORT_SYMBOL vmlinux 0xebf5a8e4 bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0xec0a3eb1 neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0xec11f47a scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec425cc0 netpoll_poll_dev
+EXPORT_SYMBOL vmlinux 0xec487953 dw_spi_remove_host
+EXPORT_SYMBOL vmlinux 0xec6a4d04 wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xec851674 framebuffer_release
+EXPORT_SYMBOL vmlinux 0xec8a9c2e proc_mkdir
+EXPORT_SYMBOL vmlinux 0xeccc9f7d drm_detect_hdmi_monitor
+EXPORT_SYMBOL vmlinux 0xecf9428a register_framebuffer
+EXPORT_SYMBOL vmlinux 0xed167b51 neigh_table_init
+EXPORT_SYMBOL vmlinux 0xed1f83f0 default_file_splice_read
+EXPORT_SYMBOL vmlinux 0xed4a737f deny_write_access
+EXPORT_SYMBOL vmlinux 0xed502bd6 tty_port_close_start
+EXPORT_SYMBOL vmlinux 0xed503fd4 pci_claim_resource
+EXPORT_SYMBOL vmlinux 0xed5f323b __inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0xed7d3ef1 mpage_readpages
+EXPORT_SYMBOL vmlinux 0xed970ff6 ilookup5
+EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedcb7ce2 splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0xede04ae3 drm_i2c_encoder_init
+EXPORT_SYMBOL vmlinux 0xedf106ec jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0xedfccdee inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0xee09257b dma_async_device_register
+EXPORT_SYMBOL vmlinux 0xee0c9c80 pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0xee1ef55e __devm_release_region
+EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee3ceba6 __set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0xee420799 unlock_page
+EXPORT_SYMBOL vmlinux 0xee5f3ddb kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0xee6d8130 dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0xee7c3ce2 register_sysrq_key
+EXPORT_SYMBOL vmlinux 0xee989c4a input_set_keycode
+EXPORT_SYMBOL vmlinux 0xee9d6430 ebus_dma_register
+EXPORT_SYMBOL vmlinux 0xeea10615 xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeef90b0c vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0xef2b4d38 find_inode_number
+EXPORT_SYMBOL vmlinux 0xef6876f8 fb_pan_display
+EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool
+EXPORT_SYMBOL vmlinux 0xef77ae05 xfrm_input
+EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefe74f3c ebus_dma_unregister
+EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list
+EXPORT_SYMBOL vmlinux 0xf002f589 __put_cred
+EXPORT_SYMBOL vmlinux 0xf042aacc of_getintprop_default
+EXPORT_SYMBOL vmlinux 0xf059904f elv_rb_find
+EXPORT_SYMBOL vmlinux 0xf06e41cb dquot_operations
+EXPORT_SYMBOL vmlinux 0xf0798ce1 of_ioremap
+EXPORT_SYMBOL vmlinux 0xf09880a9 request_firmware
+EXPORT_SYMBOL vmlinux 0xf0c70d05 splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf
+EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xf1078cc9 skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32
+EXPORT_SYMBOL vmlinux 0xf136c279 add_timer
+EXPORT_SYMBOL vmlinux 0xf1421d13 drm_mode_sort
+EXPORT_SYMBOL vmlinux 0xf16dbf1d gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0xf16e72be ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem
+EXPORT_SYMBOL vmlinux 0xf17a437c __skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1b552ed search_binary_handler
+EXPORT_SYMBOL vmlinux 0xf1c3b00e copy_in_user_fixup
+EXPORT_SYMBOL vmlinux 0xf1c5467e vio_ldc_free
+EXPORT_SYMBOL vmlinux 0xf1ccc6a3 path_put
+EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun
+EXPORT_SYMBOL vmlinux 0xf206619a blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0xf2082a7b lock_sock_fast
+EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq
+EXPORT_SYMBOL vmlinux 0xf213476c vmap
+EXPORT_SYMBOL vmlinux 0xf2197b7d phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0xf26a1c55 drm_mode_config_init
+EXPORT_SYMBOL vmlinux 0xf26b093f xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0xf29bc10b kobject_del
+EXPORT_SYMBOL vmlinux 0xf2a2ead6 dma_pool_free
+EXPORT_SYMBOL vmlinux 0xf2b78cba tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0xf2ba06eb pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0xf2ba2721 elevator_exit
+EXPORT_SYMBOL vmlinux 0xf2beb8b1 __sk_dst_check
+EXPORT_SYMBOL vmlinux 0xf2d0919a skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0xf2f70676 fifo_set_limit
+EXPORT_SYMBOL vmlinux 0xf2fa0110 scsi_scan_target
+EXPORT_SYMBOL vmlinux 0xf302511d dm_io
+EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform
+EXPORT_SYMBOL vmlinux 0xf315c32d dev_get_by_index
+EXPORT_SYMBOL vmlinux 0xf321d25a pci_disable_device
+EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name
+EXPORT_SYMBOL vmlinux 0xf32b20fc alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user
+EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf33e6483 tcf_em_register
+EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf379f2ae pci_request_regions
+EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf3b0a8b9 drm_vblank_put
+EXPORT_SYMBOL vmlinux 0xf3ba0c60 abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3bf5e27 inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0xf3c5167e blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0xf3e91407 pci_reenable_device
+EXPORT_SYMBOL vmlinux 0xf405c6fe neigh_seq_start
+EXPORT_SYMBOL vmlinux 0xf4080b93 tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0xf42a2b26 drm_ht_create
+EXPORT_SYMBOL vmlinux 0xf45a8d0e tcp_parse_options
+EXPORT_SYMBOL vmlinux 0xf4847f7e sbusfb_compat_ioctl
+EXPORT_SYMBOL vmlinux 0xf4ac4f1b genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0xf4b046ce inet_stream_connect
+EXPORT_SYMBOL vmlinux 0xf4dbba95 ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf4f57aa6 netdev_set_master
+EXPORT_SYMBOL vmlinux 0xf4fcceeb get_phy_id
+EXPORT_SYMBOL vmlinux 0xf50f5a87 lock_super
+EXPORT_SYMBOL vmlinux 0xf5126e2d kernel_accept
+EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xf53cce33 ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n
+EXPORT_SYMBOL vmlinux 0xf54c504c misc_register
+EXPORT_SYMBOL vmlinux 0xf55feb93 scsi_device_resume
+EXPORT_SYMBOL vmlinux 0xf58de5c5 elv_add_request
+EXPORT_SYMBOL vmlinux 0xf58f6f05 journal_wipe
+EXPORT_SYMBOL vmlinux 0xf5b7161e block_truncate_page
+EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf5f0025c nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0xf5fe9df5 tcp_ioctl
+EXPORT_SYMBOL vmlinux 0xf60e5fb2 drop_super
+EXPORT_SYMBOL vmlinux 0xf6288e02 __init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0xf62d93e1 bio_map_user
+EXPORT_SYMBOL vmlinux 0xf632f5e6 of_iounmap
+EXPORT_SYMBOL vmlinux 0xf6360bdc sock_no_accept
+EXPORT_SYMBOL vmlinux 0xf63ebc88 audit_log_start
+EXPORT_SYMBOL vmlinux 0xf6474d9a tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0xf66bfea2 rfkill_set_states
+EXPORT_SYMBOL vmlinux 0xf6aeeb15 suncore_mouse_baud_cflag_next
+EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table
+EXPORT_SYMBOL vmlinux 0xf6e041fe dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf7063853 mark_page_accessed
+EXPORT_SYMBOL vmlinux 0xf7584a9c find_font
+EXPORT_SYMBOL vmlinux 0xf761c3ae copy_to_user_fixup
+EXPORT_SYMBOL vmlinux 0xf7628c87 dquot_drop
+EXPORT_SYMBOL vmlinux 0xf7646623 neigh_create
+EXPORT_SYMBOL vmlinux 0xf7663644 sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0xf7729658 atomic64_add_ret
+EXPORT_SYMBOL vmlinux 0xf77598e8 security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7af0598 inet_shutdown
+EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0xf7dd0bf7 posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0xf7eb6fa3 blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set
+EXPORT_SYMBOL vmlinux 0xf80c69d2 __strlen_user
+EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf85ab507 vfs_write
+EXPORT_SYMBOL vmlinux 0xf87e2ad7 qdisc_destroy
+EXPORT_SYMBOL vmlinux 0xf87f6656 get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0xf88eff53 key_put
+EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work
+EXPORT_SYMBOL vmlinux 0xf89f54f1 names_cachep
+EXPORT_SYMBOL vmlinux 0xf8c24423 pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0xf8ed2f6e tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0xf90c155d init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0xf90ffc7a lro_vlan_hwaccel_receive_skb
+EXPORT_SYMBOL vmlinux 0xf92020e9 xfrm_register_type
+EXPORT_SYMBOL vmlinux 0xf9275f96 tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0xf9652493 dst_release
+EXPORT_SYMBOL vmlinux 0xf97700f8 skb_free_datagram
+EXPORT_SYMBOL vmlinux 0xf98519fa ldc_alloc_exp_dring
+EXPORT_SYMBOL vmlinux 0xf98afc2e die_if_kernel
+EXPORT_SYMBOL vmlinux 0xf98ba044 pci_iomap
+EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep
+EXPORT_SYMBOL vmlinux 0xf9e2f42a __nla_reserve
+EXPORT_SYMBOL vmlinux 0xf9e4bd92 skb_copy
+EXPORT_SYMBOL vmlinux 0xfa0d2ad9 aio_put_req
+EXPORT_SYMBOL vmlinux 0xfa1352c3 phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0xfa2e1130 ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0xfa305780 drm_add_edid_modes
+EXPORT_SYMBOL vmlinux 0xfa4f6cc9 security_file_mmap
+EXPORT_SYMBOL vmlinux 0xfa811f8b eth_change_mtu
+EXPORT_SYMBOL vmlinux 0xfaa2668a tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0xfabb6aaa unbind_con_driver
+EXPORT_SYMBOL vmlinux 0xfabf1f7a insert_inode_locked
+EXPORT_SYMBOL vmlinux 0xfae5ae7b alloc_etherdev_mq
+EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32
+EXPORT_SYMBOL vmlinux 0xfb04b009 skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs
+EXPORT_SYMBOL vmlinux 0xfb5ebc5c __xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfb8e983f i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0xfbbe7ef4 security_path_unlink
+EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc1d1897 d_instantiate
+EXPORT_SYMBOL vmlinux 0xfc2293ba fb_get_mode
+EXPORT_SYMBOL vmlinux 0xfc2a11a8 tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0xfc36f614 vga_tryget
+EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc42994e generic_listxattr
+EXPORT_SYMBOL vmlinux 0xfc45a49a open_by_devnum
+EXPORT_SYMBOL vmlinux 0xfc700020 ida_get_new
+EXPORT_SYMBOL vmlinux 0xfc86e2e4 sock_i_ino
+EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcb4bed0 nf_hook_slow
+EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcda63a3 node_states
+EXPORT_SYMBOL vmlinux 0xfcdfec63 ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq
+EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfd071842 xrlim_allow
+EXPORT_SYMBOL vmlinux 0xfd11d39c kthread_create
+EXPORT_SYMBOL vmlinux 0xfd1fcbd4 generic_writepages
+EXPORT_SYMBOL vmlinux 0xfd29cdaf tcp_v4_remember_stamp
+EXPORT_SYMBOL vmlinux 0xfd3b9a89 xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0xfd6613cd dw_spi_resume_host
+EXPORT_SYMBOL vmlinux 0xfd81e2ec ldc_map_sg
+EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xfdc4e677 i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0xfdcf8639 sock_no_connect
+EXPORT_SYMBOL vmlinux 0xfddbd8ac cap_file_mmap
+EXPORT_SYMBOL vmlinux 0xfdf0ebb4 elv_rb_del
+EXPORT_SYMBOL vmlinux 0xfdfbad19 drm_sman_alloc
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfdfecf99 sk_common_release
+EXPORT_SYMBOL vmlinux 0xfe0b9313 pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0xfe27759c gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xfe420c62 xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0xfe55d606 dev_mc_sync
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz
+EXPORT_SYMBOL vmlinux 0xfe609fd2 elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0xfe60e4f6 drm_mmap
+EXPORT_SYMBOL vmlinux 0xfe634f58 add_wait_queue
+EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe78010d xor_niagara_4
+EXPORT_SYMBOL vmlinux 0xfe79f15e __nla_put
+EXPORT_SYMBOL vmlinux 0xfe844ca1 drm_irq_install
+EXPORT_SYMBOL vmlinux 0xfe8684cb pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0xfe8abd66 neigh_lookup
+EXPORT_SYMBOL vmlinux 0xfec05366 sun_do_break
+EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin
+EXPORT_SYMBOL vmlinux 0xfec69406 call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0xfec8a66f dquot_alloc
+EXPORT_SYMBOL vmlinux 0xfed9441b unlock_rename
+EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfee3c541 fb_validate_mode
+EXPORT_SYMBOL vmlinux 0xfee7514c pci_dev_get
+EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command
+EXPORT_SYMBOL vmlinux 0xff11f22f jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start
+EXPORT_SYMBOL vmlinux 0xff452648 xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource
+EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int
+EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffaaf18d ftrace_event_seq
+EXPORT_SYMBOL vmlinux 0xffac85f5 pci_write_vpd
+EXPORT_SYMBOL vmlinux 0xffb017ec journal_start
+EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function
+EXPORT_SYMBOL vmlinux 0xffd70fb9 sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table
+EXPORT_SYMBOL vmlinux 0xffdcef23 kobject_put
+EXPORT_SYMBOL vmlinux 0xffe6d286 drm_mode_probed_add
+EXPORT_SYMBOL vmlinux 0xffedd39a blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0xffff809e bdi_unregister
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x2dff20d6 crypto_aes_set_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab
+EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x4f55f8ae async_memcpy
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x70b84889 async_syndrome_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x9e189738 async_gen_syndrome
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x73e70138 async_raid6_2data_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xcdeea892 async_raid6_datap_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x15ad2d5a async_tx_quiesce
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xb9ff8a53 __async_tx_find_channel
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xf404a21e async_tx_submit
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xffd21643 async_trigger_callback
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x67677699 async_xor
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xdb8d22c8 async_xor_val
+EXPORT_SYMBOL_GPL crypto/cryptd 0x08b3d443 cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x1d58a8b0 cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x8941a3a0 cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0x902b838a cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0xa420fdc6 cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xe8dd1823 cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xeabdfa2f cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/twofish_common 0x85070c31 twofish_setkey
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x1e40f61d ahci_stop_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x38c4c123 ahci_reset_em
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3ab9de51 ahci_set_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x4c7359d7 ahci_init_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5883688c ahci_kick_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5b68f090 ahci_save_initial_config
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6aee9374 ahci_ops
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x8152a186 ahci_reset_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xafbbe047 ahci_start_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc54c528d ahci_sht
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdc0fa572 ahci_print_info
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xef25c490 ahci_check_ready
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf8f8bd28 ahci_do_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x027b6f5b ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x02afd7f2 sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x03e3686c ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x05e78ee6 ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0b305211 ata_sas_port_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0b8db9a7 sata_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0d1c0a86 ata_eh_thaw_port
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0de2ed37 ata_cable_sata
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0eb0669d sata_scr_valid
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x107d28df ata_host_register
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x117bbf43 ata_wait_after_reset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x11d4bed1 ata_host_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x1440b3bb ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x15196ecd ata_sas_port_alloc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x1a1fdc5f sata_sff_hardreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x1cd889e6 ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x1dcd4b25 ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x211aabfb ata_std_prereset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x21401b3e ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x23da5162 ata_sff_exec_command
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x27d9038b ata_bmdma_status
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x2b7c7549 ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x2b9eb230 ata_bmdma_setup
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x2d315c2d dev_attr_em_message_type
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x2df0b89f ata_do_set_mode
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x30563e18 ata_qc_complete
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x36066c66 sata_set_spd
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x39d8f1c1 ata_std_qc_defer
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3ad97844 ata_do_eh
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3b911e49 ata_port_schedule_eh
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3f63e938 ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x40af0dec ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x424e4bb1 ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x43f56e82 ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x44a33de7 ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4586ff3d ata_host_detach
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x458a35de ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x48b37556 ata_cable_unknown
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x496bc6c2 ata_pci_remove_one
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4d6dc3f7 ata_cable_80wire
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4d6dce4b sata_scr_write_flush
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4da9dbdb ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5030ed7b ata_scsi_simulate
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x51350bfa ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x52b7b38f ata_dev_pair
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5515ddbe ata_sg_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5606a884 ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x56598db6 ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5a72aab5 ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5ec84652 ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x62b8de43 ata_sff_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x62e93834 sata_std_hardreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x63205de1 ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x689cf541 ata_port_pbar_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x691b6729 sata_link_debounce
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x6a2fd75d ata_host_alloc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x6a8dc7c0 ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x6d7d6907 ata_port_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x6fd2bda6 dev_attr_em_message
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x70722363 ata_sas_queuecmd
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x707ff1bb ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x73a48b4a ata_sff_std_ports
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x743a165e ata_pack_xfermask
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x755ff74a ata_std_error_handler
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x770e1f27 ata_timing_compute
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x778d0c23 ata_eh_freeze_port
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x7ad7ac8a ata_dev_disable
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x7af9396d dev_attr_sw_activity
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x7e35f586 ata_sff_data_xfer
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x7fe37bf9 dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x811ff711 ata_link_online
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8149ea54 ata_timing_find_mode
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x82d7570e __ata_ehi_push_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x83306d8e ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x84b57fa7 ata_ehi_push_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x84f62076 sata_link_resume
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8515b9b7 ata_sff_port_intr
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x862fb482 ata_sff_prereset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x882d140b ata_sff_wait_ready
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x88bef23d ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b06a3b6 ata_std_postreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b89622c ata_sff_dev_classify
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8c903eff ata_sff_check_status
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x909ed5dd ata_dev_next
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x93d97065 ata_std_bios_param
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x96fb0f58 ata_bmdma_stop
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x986ad875 ata_link_offline
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x9a09f5b0 ata_bmdma_start
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x9a1ea5a3 ata_sas_port_stop
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x9ece65a7 ata_sff_pause
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xa45277dc ata_sff_tf_load
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xa4603e1a ata_sff_irq_on
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xa7aa0e40 ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xa9c99cd1 ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xaa457fe0 ata_sff_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xaab8b687 ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xac49c2df ata_sff_postreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xaf3f6fe0 ata_sff_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb0c05536 ata_do_dev_read_id
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb181af6e ata_sff_freeze
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb214237c ata_sff_error_handler
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb2b8a751 pci_test_config_bits
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb550e53f ata_sas_port_start
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb56f49df ata_link_next
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb7e33c8a ata_link_abort
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xbe1887e4 ata_unpack_xfermask
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xbfed4050 ata_base_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc37da0b1 dev_attr_unload_heads
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc48b7ccf ata_mode_string
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc5fbbe8c ata_eh_qc_complete
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xca22cc83 ata_dummy_port_info
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xcc125413 ata_sas_port_destroy
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd00e80e6 ata_port_abort
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd1b92207 ata_sff_dma_pause
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd32fe193 ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd5080f54 ata_host_activate
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd5cd1fcd ata_sff_hsm_move
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd5e15120 ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd93f2e03 ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd949ee2f ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xdbd843df sata_link_hardreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xdd6d4c49 sata_pmp_error_handler
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xdf3603bf ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe0572a3f ata_dummy_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe0a1b2f6 ata_sff_thaw
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe0e9293e ata_sff_tf_read
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe37bce9f ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe467c643 ata_port_freeze
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe490a5f6 ata_host_start
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe529ac9d sata_scr_write
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe5c8b23c ata_slave_link_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe77c0d32 ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe99afa16 ata_scsi_ioctl
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xea418e0f atapi_cmd_type
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xeaa6950f sata_pmp_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xeaea01cd ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xeceed96c ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xeff21192 ata_cable_ignore
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf0257bcd ata_noop_qc_prep
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf26649cb ata_cable_40wire
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf309fdb2 ata_sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf47df099 ata_eh_qc_retry
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf6e874f5 ata_timing_merge
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf6f8c6e0 ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf7e38ff3 ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8900923 sata_scr_read
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf91e84f5 ata_pio_need_iordy
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf9ca3160 ata_id_xfermask
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xfa1d06eb sata_async_notification
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xfa21e240 ata_sff_dev_select
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xfbc2d036 ata_sff_qc_issue
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xfc758bb5 ata_bmdma_port_start
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xffb40a4d ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xae559b7e sis_info133_for_sata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1373bc54 tpm_open
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x14779fea tpm_dev_vendor_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x16f8bc92 tpm_show_pcrs
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x1b841bbf tpm_show_temp_deactivated
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2befeb71 tpm_show_active
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4b40c2f1 tpm_pm_resume
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x56946fab tpm_show_pubek
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x752a4aae tpm_remove_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8c38daf9 tpm_show_caps_1_2
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x8e824c6f tpm_get_timeouts
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xa4d975d0 tpm_gen_interrupt
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb191f5d9 tpm_register_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb2b0443a tpm_show_caps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc4c76a62 tpm_show_owned
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc4ccff60 tpm_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcba83169 tpm_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xcebb056e tpm_continue_selftest
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xd51f3ee9 tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xdcb4686a tpm_show_enabled
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe2b56675 tpm_dev_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe5e18e4a tpm_write
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf942c3f8 tpm_store_cancel
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xfd570a07 tpm_pm_suspend
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xcf7a962e cn_add_callback
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xedbeb1d6 __max730x_probe
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0xf433f035 __max730x_remove
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x1eed6de4 hid_report_raw_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x22d2df96 hidraw_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x281d20c3 hid_set_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x3018a731 hidinput_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x364a84f1 hidinput_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x40394f67 hid_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x454a1f41 __hid_register_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x566c481d hidraw_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x69f6c735 hid_debug_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x7399af82 hid_input_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x76cecc10 hid_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x789e3f5a hid_check_keys_pressed
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x7f334f30 hid_dump_input
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x845fb84d hid_unregister_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x8a2356a5 hidraw_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xa28ef99b hid_allocate_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xb42ce86e hid_dump_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xb689ac93 hid_resolv_usage
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xb8adc8b6 hid_dump_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xbb5daad3 hid_output_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc2b07225 hidinput_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc6fc456d hidinput_find_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xdeabdd2b hid_add_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe75cd101 hid_register_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xf74601bd hid_parse_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xfdfa0162 hid_destroy_device
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x08af19b6 roccat_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x4d4ec3cb usbhid_submit_report
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x4eedeb01 usbhid_set_leds
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x6ca582b5 usbhid_wait_io
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x1ee24c11 lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x2f49f834 lis3lv02d_poweron
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x7b43f97c lis3_dev
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xa8dfa93d lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xf9e44c8a lis3lv02d_init_device
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x1cdb0a2c i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x4267bc34 i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x2a58e0cd hpsb_config_rom_ip1394_add
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xb7d47a44 hpsb_config_rom_ip1394_remove
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm
+EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x458e7b0d input_ff_create_memless
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x134b587b wm97xx_reg_write
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x25c72166 wm97xx_set_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3b35418c wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x43e28ce0 wm97xx_config_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x52ae594c wm9713_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x83ba4488 wm9705_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9e0459d2 wm9712_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9f555dfe wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb473ce46 wm97xx_get_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe2342e58 wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe5f56f64 wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf1cb1184 wm97xx_reg_read
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0ae98bdd gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0b864655 gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0f930338 gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0fd6de67 gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x161c7013 gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1c939baa gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x246274bf gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x34558f9c gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3b31d3ab gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4c16a75a gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4e274ad6 gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6c7e43bf gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6cf68d0a gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8d2353c3 gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc8a06c84 gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xcd9da106 gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd9b2e9d4 gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xedc8fe47 gigaset_stop
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x0284c106 led_classdev_register
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x95ed7e68 led_classdev_resume
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0xa712ea4a led_classdev_unregister
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0xfa89a7d4 led_classdev_suspend
+EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x7fe1d72a dm_register_path_selector
+EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xe29a6e67 dm_unregister_path_selector
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x141db069 dm_rh_delay
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2611fe7b dm_rh_dirty_log
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2e52b5a0 dm_rh_recovery_start
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3651ec5f dm_rh_dec
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3e72151e dm_rh_region_context
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4f1a2193 dm_rh_get_region_size
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x6710a607 dm_region_hash_destroy
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x6edd5d27 dm_rh_recovery_end
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x76305aee dm_rh_get_state
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7a838e92 dm_rh_start_recovery
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7ef2a7f3 dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x88384c0e dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x9320fcb7 dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa048a1ee dm_rh_get_region_key
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa37b6f8f dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb5b87180 dm_rh_flush
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xb880e2d5 dm_rh_inc_pending
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc987cb62 dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd4355a52 dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd9ccdb51 dm_region_hash_create
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xe5963437 dm_rh_update_states
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0x2193556f md_do_sync
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0x9756b0e3 sync_page_io
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0xa5f81337 md_allow_write
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0xbda66a0f md_new_event
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x24935f26 raid6_call
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xcdc24ab5 raid6_2data_recov
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xdbab0c01 raid6_datap_recov
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xadd581aa ir_input_nokey
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xda2a33b5 ir_input_init
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xe10e3c36 ir_input_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x03bd7f09 ir_unregister_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x18ce25ee ir_input_unregister
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x25694bee ir_raw_event_store
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x382f5894 ir_repeat
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x39dfe5d4 ir_g_keycode_from_table
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x8baae4d6 ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x9cf9ca41 ir_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xc21d5d12 __ir_input_register
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xde3fc8d9 get_rc_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xe2e254fd ir_raw_event_handle
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xf190292d ir_register_map
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x05130f05 saa7146_register_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x09f331af saa7146_setgpio
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x42ca8144 saa7146_pgtable_free
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6773050a saa7146_devices_lock
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x7bf8800b saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x90001045 saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa227100d saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa913f569 saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa9da440e saa7146_unregister_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xaa220a96 saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xee8e4717 saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x149c3b12 saa7146_register_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x27ffc105 saa7146_vv_init
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x33ebd838 saa7146_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x50068af5 saa7146_stop_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x5a0d7fdb saa7146_vv_release
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x70000fb7 saa7146_start_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x88f96bda saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0x6248af90 microtune_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xc5f53d78 tda829x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xfb3f26a3 tda829x_probe
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0xe2de20eb tda9887_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x90c127cd tea5761_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xffa3802d tea5761_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0x37c12003 tea5767_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xa2ff11e9 tea5767_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0x02ac6941 simple_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x0c30696d cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1571269f cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1b5a82c7 cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x26f2bd8a cx231xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x3e03653a cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x945520f3 cx231xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x95bdc4bb cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xc33fed67 cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xea605538 cx231xx_capture_start
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xee0b6523 cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xf09841b2 cx231xx_dev_init
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x028a1a79 saa7134_queryctrl
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x7d2d03b9 saa7134_g_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xc99da3e8 saa7134_ts_qops
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xde839d09 saa7134_s_std_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xe371d321 saa7134_s_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x1d17c781 v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x66459420 v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x68335ab8 v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x9035c491 v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xa98a643c v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xc74140ad v4l2_i2c_new_subdev_cfg
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-compat-ioctl32 0xfab2ba48 v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x0b658f5a v4l2_int_ioctl_1
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x7bff15f7 v4l2_int_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x89e491f8 v4l2_int_ioctl_0
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xdd08dc50 v4l2_int_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x06468ebc v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x20bee10a v4l2_m2m_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x25394d23 v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x28a4989d v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2b5fef20 v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x5fcd3961 v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x694ce513 v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x811de01e v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x81bb67d3 v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x844bccbc v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xabd2652c v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xb4dfa9b7 v4l2_m2m_poll
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc14cc655 v4l2_m2m_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc4d26fd5 v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x06cfecd0 videobuf_cgmbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x19b2eb45 videobuf_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1e04a5cf videobuf_queue_cancel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x1ea20095 videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x49c40b17 videobuf_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5e0b4db7 videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7031bf31 videobuf_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x718904dc videobuf_read_start
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x821d7943 videobuf_next_field
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x8913b1fd videobuf_iolock
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x91594563 videobuf_read_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x988743a3 videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9f1c5577 videobuf_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xabaaf54f videobuf_queue_core_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xba7ef940 videobuf_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc0a51c08 videobuf_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xce6ccced videobuf_read_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xd3d23dcf videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe0753306 __videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe290e3ed videobuf_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe2f6870d videobuf_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe4e3df83 videobuf_read_one
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xea8cca00 videobuf_waiton
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xecd27f0a videobuf_mmap_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf678df04 videobuf_poll_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x4fd22666 videobuf_to_dma
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x696122cb videobuf_dma_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x7ea16cf3 videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9480af1d videobuf_dma_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x9924c5bc videobuf_dma_init_user
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa3600deb videobuf_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd0215ebc videobuf_dma_init_overlay
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd1f056fc videobuf_dma_init_kernel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd66f870b videobuf_sg_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xdacec350 videobuf_sg_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe8a24336 videobuf_vmalloc_to_sg
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xee813fc0 videobuf_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x1a99ea8e videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x6bc222ac videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xd19b583a videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0b7d6e39 v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x1bf28ca6 v4l2_device_set_name
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x22b7a018 v4l2_event_dequeue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x27c635b9 v4l2_event_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x42535d7f v4l2_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4a5ff755 v4l2_event_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5b27a266 v4l2_event_queue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5c74677e v4l2_event_subscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x60cff8ac v4l2_fh_add
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x64750646 v4l2_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x70aadd90 v4l2_event_pending
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x7ff2468a v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x8b6d776f v4l2_fh_del
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xad6a7c21 v4l2_event_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc4b30de6 v4l2_device_disconnect
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xcc34e8ed v4l2_fh_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdabfe1ef v4l2_fh_exit
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xea73dfa7 v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x2dd6f7fd i2o_pool_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x454a48a4 i2o_pool_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x5469bac6 i2o_dma_map_sg
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6292a6d5 i2o_dma_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x73900f9b i2o_dma_map_single
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x75c4e2a9 i2o_dma_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x96c838b0 i2o_sg_tablesize
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xc8d8c421 i2o_dma_realloc
+EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x4d97614b mc13783_adc_do_conversion
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1b0ce2fe pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1b8eca7d pcf50633_reg_write
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2d8dd59d pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4dc19d75 pcf50633_read_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x4e58398d pcf50633_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x707bd2d7 pcf50633_irq_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x783cfb48 pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8334ac5c pcf50633_free_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd3d31505 pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd57a06e0 pcf50633_write_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe41826de pcf50633_register_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xbe125a1a pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xcbdf7085 pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x3382d1b6 pcf50633_gpio_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x4c23a795 pcf50633_gpio_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xa49fc543 pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xd6229d98 pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xeb3b22a0 pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x03eeb070 sm501_modify_reg
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x3dc598a9 sm501_misc_control
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x6ab7940d sm501_unit_power
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x78b932a3 sm501_find_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x7f11667c sm501_set_clock
+EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x697ee7bc ucb1400_adc_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x330f229f wm8400_block_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x47c60d2e wm8400_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x4aa3e2a2 wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xfdbf0d85 wm8400_set_bits
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x52dd05c5 cb710_set_irq_handler
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xb4925906 cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xdca26d6f cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xe883329b cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0009696a sdio_readw
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x16473605 sdio_disable_func
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x1a522270 sdio_release_irq
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x282ccc23 sdio_readl
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x294d6cab sdio_align_size
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x31d0cdbe sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x4f362cb2 sdio_register_driver
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x583498e5 sdio_writesb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x5d05ff69 sdio_memcpy_toio
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x5ea913a2 sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7be8fb7a sdio_release_host
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x97351760 sdio_set_block_size
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9c8f9c11 sdio_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9d30ad1c sdio_readsb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa889de21 sdio_enable_func
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa966a2e1 sdio_f0_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xaac0e98f sdio_writeb_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xad36c964 sdio_writel
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc9ecc187 sdio_f0_writeb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xc9eda971 sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xcec4f338 sdio_claim_host
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd174aba6 sdio_writew
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd59b9200 sdio_unregister_driver
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xde1dde98 sdio_writeb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xf24b9bfd sdio_claim_irq
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x4bb5fcf2 sdhci_free_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x9c41c8b6 sdhci_alloc_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb55505b6 sdhci_add_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe2b53190 sdhci_remove_host
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xbf2fb6af cfi_cmdset_0200
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xc0455e59 cfi_cmdset_0003
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xe95fa5fa cfi_cmdset_0001
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x3970a0a8 cfi_cmdset_0002
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x6b4557ee cfi_cmdset_0006
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x94426385 cfi_cmdset_0701
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x5f9cb3a2 cfi_cmdset_0020
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x8059b9c2 cfi_qry_mode_off
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x959a0c14 cfi_qry_present
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xf05e6746 cfi_qry_mode_on
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0xb080ba63 DoC2k_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0x60462d44 DoCMil_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0xfad6e88c DoCMilPlus_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x00f2f06f unregister_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x07e34c77 kill_mtd_super
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1660c857 get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x38533ebb deregister_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x629cefe5 get_mtd_device_nm
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x69881a8c default_mtd_writev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7ee43ca4 register_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x891b285d add_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x95525add mtd_erase_callback
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x995b38b2 mtd_table_mutex
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9bd225f4 get_sb_mtd
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa816c964 __get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xad1294da del_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb6082e5a register_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc1460bcd __mtd_next_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc94da998 put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe4a1a36b __put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xef6524e5 parse_mtd_partitions
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x176951d7 register_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x39747205 del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x49a405f9 add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xab7b0d8b deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x32e3517b nand_release
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x3769a2ec nand_unlock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x84819188 nand_lock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x9840abe0 nand_scan_tail
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xb21913c2 nand_scan_ident
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xd4e8ba5b nand_wait_ready
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xebfc859a nand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xaebf0ad0 sm_register_device
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xbf3d488d onenand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xe61d5818 onenand_release
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0bcf07f3 ubi_get_volume_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1029ccd5 ubi_close_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2ad8b3a8 ubi_open_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3621fc93 ubi_leb_change
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3b62d67f ubi_leb_write
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7a0fc3cd ubi_open_volume_nm
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x97a07c77 ubi_do_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa1172eab ubi_is_mapped
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa562b850 ubi_leb_read
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc8c3f508 ubi_leb_map
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xcda5490f ubi_leb_unmap
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe3d2c940 ubi_open_volume_path
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf2ff7f1a ubi_leb_erase
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x01530688 alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x02d3e111 alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x23464626 unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5151d9a2 close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5f2bf009 can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9d375a03 alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa9dccc9e can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc1071a2f register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xcad904e9 free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd260ca48 can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xde9e84c4 can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf3f7e6b6 open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x59c40c74 alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x8e91ba10 register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe88a39e9 unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe8b2d51d free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x043d0ad8 macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x3feefcf3 macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xaacdd940 macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0xcd2dc533 macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x152d39a1 mlx4_register_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x169ad172 mlx4_qp_release_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1976de14 mlx4_qp_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1abba4fb mlx4_db_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1e292f8b mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1e6c299d mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x25f47649 mlx4_buf_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2f909eb7 mlx4_qp_remove
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4ad3687d mlx4_mtt_addr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4dd40719 mlx4_multicast_attach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4ec1c8e4 mlx4_mr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x50f31f04 mlx4_mr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5613a45b mlx4_srq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x572b72dc mlx4_srq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x592472ae mlx4_srq_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x5bf1fbb2 mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x64b86c20 mlx4_fmr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x67385cba mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x704b087d mlx4_cq_resize
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x750a6c80 mlx4_qp_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7d692247 mlx4_mtt_init
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x7f9a7510 mlx4_mr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x84066aa2 mlx4_buf_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x858a410e mlx4_cq_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x85d220f7 mlx4_pd_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x872d7217 mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x985edac3 mlx4_db_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x99dc83eb mlx4_cq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9e6941c4 mlx4_qp_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x9f4bc0c6 mlx4_srq_arm
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa475afdf mlx4_fmr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa4d3244e mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa5eb8578 __mlx4_cmd
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xac2f3589 mlx4_uar_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xad8c6616 mlx4_register_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb6a41fd6 mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc0176e84 mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc03141bf mlx4_cq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc80e734e mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc9f67db1 mlx4_uar_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xce5ff2ef mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd0c6724e mlx4_qp_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd52a9251 mlx4_unregister_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd7bec918 mlx4_register_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd9cde391 mlx4_multicast_detach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdc08613b mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdffd470a mlx4_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf40a2ecd mlx4_pd_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xf75fd218 mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfb78de1a mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfd4fbc54 mlx4_unregister_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfda384ba mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfea0dbf6 mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x0ab89e5c usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xf5892713 usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x0087d5ea rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x054b2eed rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x3224c185 rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x44dde3b7 generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x5372498a rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc3130784 rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x08689751 usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x09614410 usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x15846610 usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x161702f4 usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x232b2099 usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x28cb906c usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2a26e55f usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x33ff0123 usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x576bce77 usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5bd0483d usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x84554331 usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x89be2247 usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9faeb91f usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x9fe7887a usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa983bfd9 usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xab0fa62b usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xad69b2b2 usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb11ea3af usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbe64c988 usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc657edae usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe0116de5 usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xeb4fb1d6 usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf47bce4f usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf4c61d08 usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x10413983 i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x11ba2dae i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x27a620aa i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x46468875 i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x504df464 i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x56178cec i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x66934d26 i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x68e51250 i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x83d9ba1e i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x89717aff i2400m_set_init_config
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9ccf702b i2400m_cmd_get_state
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa799aa8c i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbed124c7 i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc2728ffb i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd35d1d1f i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd3c440bd i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd82febeb i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe65c136f i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x0fbb681f libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x95be4bda iwl_dealloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xe37860e2 iwl_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xebcb81f5 iwl_alloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0e1b0880 lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0e6c1851 lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x13cdd198 lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1fd61718 __lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x25027fd6 lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x30310c9b lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x4a3f3f16 lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x56e583eb lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x594eb36a lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5a15fc69 lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x93dce757 lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe1a9c700 lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf87407da lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfe72c1e2 lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x12585c14 lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x5ab21e17 lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x65b60e33 lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x917455c6 __lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb490612f lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xcec6fed5 lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xeb238f00 lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xfef6de54 lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xb6f557f0 if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xd71964d1 if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x0e2b1477 p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2396fc3a p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x60003f84 p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x76638ad2 p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x77154941 p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbf08e3bd p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xe71c35b0 p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf9850299 p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xff4f270f p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0f231616 rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x174aba8e rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1a40030b rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1daa7713 rt2800_init_registers
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1ddfec99 rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x34571dad rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3d6fd14e rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3eb88296 rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4a1d1ad6 rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4a286c2f rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7e97fd15 rt2800_write_txwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x82b034a9 rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x94052e3a rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x99148a36 rt2800_mac80211_ops
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa2790a34 rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xba0c4c6f rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd1b9b61c rt2800_init_bbp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd57cf1b8 rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd6244e22 rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdc22f266 rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe36bee38 rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe4c7f326 rt2800_init_rfcsr
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe9096c9d rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfa7de858 rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x42b7f308 rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x48036272 rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4c3714d0 rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6de298e6 rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6f6094d8 rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x754e02b5 rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x893eea14 rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x903d26e1 rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x92caff55 rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa6ac5598 rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa98a9b62 rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaeb5b4dc rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb4a810d2 rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb96fbfa7 rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc17b6614 rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc309248c rt2x00queue_get_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd0860bf8 rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe0faa751 rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf7164ac7 rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf72d1973 rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfddc30a5 rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1765da40 rt2x00pci_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6f410429 rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x99e6f069 rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xac57c91a rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xde6d545f rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xdf9a0066 rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf892f09d rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0cd32c0f rt2x00usb_kick_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x146d7fed rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x25fcb74d rt2x00usb_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x375dd9cc rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3b7946dd rt2x00usb_kill_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x41956fed rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x47a3030a rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x6f5a7e8e rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x811325bc rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb3e81dcb rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd1af71a7 rt2x00usb_vendor_request_large_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe16da7a7 rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe7c66525 rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xefb2101c rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xc1c4f287 wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xe44e3101 wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0xfe22f3c1 wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x32b5d0c3 wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x844bba28 wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x91c2720c wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x9d886704 wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xe3e0cbb5 wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xadfeddcd pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xbb7bca17 pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xe9436045 pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x3e6959a8 wm8350_register_regulator
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x4bba2407 wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x71251849 wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa63fbbac wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xd402ed87 wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xe70ebe7d wm8350_register_led
+EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x9f5ca67a wm8400_register_regulator
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x091d4b03 scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x6fad78ac scsi_dh_set_params
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x74249168 scsi_dh_attach
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xc504c7fb scsi_dh_activate
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xce7ce4ed scsi_dh_detach
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xfcc7792b scsi_register_device_handler
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xcab4319e fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x00d295e6 iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0189af05 iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0bbf15be iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0f63512e iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x118210f1 __iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x133bbd1c iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x146ca102 iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1a252997 iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1a433b7a iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x243bed05 __iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2a48ee17 iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2ca5f259 iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x329d3cb1 iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x44e740fe iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4fbd092a iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x58254355 iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b9836db iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x622ce425 iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x71400efe iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x841e43bd iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x924bb05a iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x93c6c7c6 iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x988e836f iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e45ee84 iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa009228b iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa45400c1 iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa491f088 iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4abb003 iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xacc1c93b iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb4ffc810 iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbf6a3822 iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc2099435 iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc43fc35c iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc723db68 iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd2f9fe25 iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd5ed16ca iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd99c60ed iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xda2b3595 iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdc380e16 iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xee4aae15 iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xefac4a28 iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf3257c6d iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x16a1a2ca iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x25cc197d iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2b670202 iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x49d265e6 iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x51e66fb5 iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x77969b97 iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7d449be7 iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x828777e2 iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8436b0ee iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb3842e09 iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb5321ccc iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc7e5b974 iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcd7ac969 iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd4eedaaf iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xed726ce0 iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xee3aecdf iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x13dbcb4c sas_request_addr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1496ef44 sas_find_local_phy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3759ed65 __sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x38eaa911 sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3956ccdb sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4b1c6fc1 sas_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4f3dc3b9 sas_slave_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5186aee7 sas_ioctl
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x57859f04 sas_bios_param
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5ed69d51 sas_change_queue_type
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x65d13227 sas_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x669a97ff sas_register_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x7f022511 sas_phy_enable
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaeffd2eb sas_target_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc2968243 sas_phy_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd4065840 sas_slave_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe4dcbb8b sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe82f9fb4 sas_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe908953c sas_unregister_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xecf98634 sas_domain_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xefd1cf4c sas_ssp_task_response
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf36db914 sas_eh_bus_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfe5051c9 sas_domain_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x31ba1051 srp_target_free
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3c46e78a srp_transfer_data
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x99e267b2 srp_cmd_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd91804f5 srp_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xeb3936e5 srp_iu_put
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfaed28b6 srp_iu_get
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x38f78abd scsi_host_put_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6a7c8dd0 scsi_host_get_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x780a506c scsi_tgt_tsk_mgmt_request
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x873dfab3 scsi_tgt_free_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8d65cef1 scsi_tgt_it_nexus_create
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc2cbf8b2 scsi_tgt_cmd_to_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe0bb66d0 scsi_tgt_it_nexus_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xed7ae59b scsi_tgt_alloc_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfd5c13c7 scsi_tgt_queue_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0963a8e7 iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36c52f27 iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3a37e9e2 iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3dfe880f iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x47d5adf3 iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4bbadaf4 iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x59f10f67 iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6113fea0 iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x70f01024 iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7e4eab93 iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x853cfb08 iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x88341220 iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x884eeb42 iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x897b59a9 iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8d1c9d34 iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9b5c3f8c iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd27cf2a5 iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xef7aa16c iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf8cfc7cd iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf9b8e0f0 iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf9c506eb iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfb39b4df iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x120609c7 sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xbd33f592 sas_tlr_supported
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xc4ab0192 sas_disable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xfd456f3a sas_enable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x19113973 srp_rport_del
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x29cfe76d srp_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x4c120a05 srp_remove_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x7ecf5c02 srp_rport_add
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xef1fffda srp_attach_transport
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x3281f757 pciserial_resume_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x45bea118 pciserial_suspend_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x834ab244 pciserial_remove_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xf743dc46 pciserial_init_ports
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x02504f50 spi_bitbang_start
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x1c1e57e3 spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x5657c3d3 spi_bitbang_setup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x8839ef12 spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x9c7c2fab spi_bitbang_stop
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xd983633b spi_bitbang_transfer
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x15dbbb25 __uio_register_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x5d13920d uio_event_notify
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xb8463992 uio_unregister_device
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x74a3a41d usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x8770b4a8 usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0c3a9208 usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2e8a7ad5 usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4beedf9b usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4d2f7142 usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4e717b5f usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5305aaeb usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6e78445f usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x6f47332d ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x8c844fd6 usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x114c9c5b usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1216f24c usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x314fd27e usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x464bb7c7 usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x53f8e0b5 usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x58e09bef ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x619dd5fb ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6619a8d7 usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x70f4fc2b usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8a9eb00c usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x95115353 usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa49321e1 usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xba6c3aad usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc83ee9cb usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xca804d1f usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe2486d97 usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xee03ba8c usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf48d2251 usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf6871386 usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x01c9b79a usb_stor_Bulk_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0f10c5c3 usb_stor_probe1
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x170db80d usb_stor_probe2
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x220db63a fill_inquiry_response
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x226fffe3 usb_stor_CB_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x25d6d9fa usb_stor_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3a910644 usb_stor_pre_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x53cb4e80 usb_stor_Bulk_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x639d182b usb_stor_bulk_srb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x853355b1 usb_stor_post_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8725c508 usb_stor_CB_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8fdba141 usb_stor_set_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x925aec7d usb_stor_ctrl_transfer
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa27bc0e6 usb_stor_transparent_scsi_command
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa97695a6 usb_usual_ignore_device
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc68ab459 usb_stor_bulk_transfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xde178910 usb_stor_access_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf42d1daa usb_stor_clear_halt
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf4e23ac8 usb_stor_bulk_transfer_sg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf8f26562 usb_stor_control_msg
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x2c083dce rpipe_ep_disable
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5a996606 __wa_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc6f2c732 wa_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf80420aa wa_urb_enqueue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xff28ff86 wa_urb_dequeue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x11225042 wusbhc_rh_control
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x22e2b2d8 wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x324bfaa8 wusbhc_rh_suspend
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x345b4568 wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x41c2d3a0 __wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x50c99558 wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x61bdb75b wusbhc_b_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x84aa44b6 wusbhc_rh_resume
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x955ddb45 wusbhc_chid_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9e8d3482 wusbhc_handle_dn
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa1f45b13 wusbhc_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa71a6c83 wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb2c82a1b wusbhc_reset_all
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xca64f099 wusbhc_b_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd6db0785 wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfec6d3a9 wusbhc_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x0aa62d32 i1480_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x1fc2e195 i1480_fw_upload
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xa6e55e3e i1480_rceb_check
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x41a2f1f0 uwb_rts_cts_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x4a8daff3 uwb_pca_base_priority_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x6517acd0 uwb_phy_rate_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x8cc86642 uwb_ack_policy_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x98c206be uwb_rts_cts_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xdb10edd8 uwb_phy_rate_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xe7cfadd3 uwb_pca_base_priority_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xef5d7c04 uwb_ack_policy_store
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x33c3ca06 umc_device_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x5c1625bd umc_controller_reset
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x7b167607 __umc_driver_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x7c8f7c43 umc_match_pci_id
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa1ef9d37 umc_device_create
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb701cd9a umc_device_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd8789c77 umc_bus_type
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xea5dc91e umc_driver_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0a10a8ef uwb_dev_for_each
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0f4d24af uwb_rsv_modify
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x10cb1134 uwb_rc_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x271cec43 uwb_rc_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x29e6a577 uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2eecd2ea uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x30376629 uwb_rsv_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3c9b1f38 uwb_rsv_accept
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4ef4c471 uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4f096da4 uwb_rc_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5bd9fd72 uwb_pal_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x69d2b836 uwb_rc_ie_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6c5d2427 uwb_rc_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6d1e64fe uwb_dev_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x703d8c38 uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7b0d0c1a __uwb_rc_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7d3afc81 uwb_rsv_terminate
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x84ab7e37 uwb_rc_put
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x85a60d0c uwb_rc_post_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8c313ed0 uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8ca870fb uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8dfe7948 uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x927f5cf6 uwb_rsv_establish
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x97b916ea uwb_rc_neh_error
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9a4bbedf uwb_rc_alloc
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9ff4cbfe uwb_notifs_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa1294b99 uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xaf791fb1 uwb_pal_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xafa402c8 uwb_rsv_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb38a38f3 uwb_radio_start
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb3cc61e7 uwb_radio_stop
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb774a774 uwb_rc_vcmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbb79ac76 uwb_pal_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbf8e21e7 uwb_est_find_size
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd502dd91 uwb_notifs_deregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf67f6f19 uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfd8e4b59 uwb_rc_rm
+EXPORT_SYMBOL_GPL drivers/uwb/whci 0x6b79622c whci_wait_for
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x028b55de wlp_dev_prim_OUI_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x037dedc1 wlp_dev_prim_subcat_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1902bb90 wlp_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2a13d72d wlp_wss_activate_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x2f27b245 wlp_eda_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3f83147e wlp_dev_model_nr_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3fe6beda wlp_dev_manufacturer_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x526721c4 wlp_dev_model_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5ef8340f wlp_uuid_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x62b8cea1 wlp_dev_prim_category_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x665b3b09 wlp_receive_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x732ed920 wlp_dev_prim_OUI_sub_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7448fe59 wlp_dev_serial_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x74882972 wlp_dev_model_nr_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7ab0e4e6 wlp_dev_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7cc82cb9 wlp_dev_manufacturer_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8ad88198 wlp_neighborhood_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x93d7de0b wlp_wss_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9907d385 wlp_dev_model_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9f96ae28 wlp_dev_prim_subcat_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa4c361ea wlp_wss_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xaa6302ed wlp_dev_prim_category_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb9697658 wlp_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc09d02db wlp_dev_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc7754df4 wlp_wss_activate_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd418f519 wlp_eda_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xdff516c5 wlp_uuid_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xebb2473e wlp_dev_serial_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf30709ba wlp_dev_prim_OUI_sub_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf65caecd wlp_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf6baa4f5 wlp_dev_prim_OUI_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xfc25a5d1 wlp_prepare_tx_frame
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x06f8f1e9 ili9320_write
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x69bbed62 ili9320_probe_spi
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc2bf00dc ili9320_remove
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc627b2f7 ili9320_write_regs
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xc85543b6 ili9320_shutdown
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x3bbe9da8 fb_sys_write
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x96f04381 fb_sys_read
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x43cc68af viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x557efa1c viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x040f4e08 w1_touch_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x4c78a3e3 w1_next_pullup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x60e2afb6 w1_write_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x69c97af6 w1_read_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x6fe94264 w1_write_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x85ca8db7 w1_reset_bus
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xd18b2bce w1_reset_select_slave
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xe845c7e6 w1_read_8
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x279cf3e6 dlm_posix_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x570810c0 dlm_posix_get
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xe2b20eea dlm_posix_lock
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x559878f9 exportfs_decode_fh
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x99538c53 exportfs_encode_fh
+EXPORT_SYMBOL_GPL fs/fat/fat 0x0490ff19 fat_build_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0x0ce1df89 fat_setattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x1344f32f fat_alloc_new_dir
+EXPORT_SYMBOL_GPL fs/fat/fat 0x281c5d19 __fat_fs_error
+EXPORT_SYMBOL_GPL fs/fat/fat 0x33db8796 fat_remove_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x349779c8 fat_flush_inodes
+EXPORT_SYMBOL_GPL fs/fat/fat 0x353d50b2 fat_time_unix2fat
+EXPORT_SYMBOL_GPL fs/fat/fat 0x59e1142e fat_detach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x6610973d fat_dir_empty
+EXPORT_SYMBOL_GPL fs/fat/fat 0x686059ae fat_fill_super
+EXPORT_SYMBOL_GPL fs/fat/fat 0x935abafc fat_free_clusters
+EXPORT_SYMBOL_GPL fs/fat/fat 0x9fd3a53e fat_scan
+EXPORT_SYMBOL_GPL fs/fat/fat 0xad3b4c99 fat_search_long
+EXPORT_SYMBOL_GPL fs/fat/fat 0xcbec346f fat_attach
+EXPORT_SYMBOL_GPL fs/fat/fat 0xcf3c6858 fat_getattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0xe59352b5 fat_add_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0xf16631e7 fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL fs/fat/fat 0xf1c3ad8d fat_sync_inode
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x07a2d3a9 nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x49c68e22 nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x524962d5 nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x54bbaa17 nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6b5cd036 nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x118f393f nfsacl_decode
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x449e38ac nfsacl_encode
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x14e54d52 o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x418774d7 o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x552e673e o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x62740ff7 o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x63fc6bab o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbf965611 o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe8b9adfb o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x119fcf00 dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x4ed47b9b dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x756e4550 dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x8b63dfab dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x94815f4b dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xc6c9aa98 dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x1831691a ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xda54afb7 ocfs2_plock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xec8f1164 ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x2e1d43cf lzo1x_1_compress
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs
+EXPORT_SYMBOL_GPL net/802/garp 0x440f66b1 garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0x542d5766 garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0x5f48116a garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x9b048c3b garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0xa35209c8 garp_request_join
+EXPORT_SYMBOL_GPL net/802/garp 0xdb44ac19 garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/stp 0x15771ba7 stp_proto_unregister
+EXPORT_SYMBOL_GPL net/802/stp 0x26894e2b stp_proto_register
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0c95793f dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x10da147d dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x188c85af dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x22474a29 dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x265f05a6 dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2b981ca9 dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2e966a79 dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x32559c17 inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3eacc037 dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x433441f4 dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x46cedee5 dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x47f504cd dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4e41ccec dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x51fdfde4 dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x532a71c2 dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x58e7d963 dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x786511dc dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x79d81737 dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7d005b89 dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x815a8f3d dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x85fbe8cc dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x88c4cf86 compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x88d26c8f dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8c92abf6 dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9a945c22 dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9dc5e17e dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa1528df1 compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa21561ab dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe87ff14 dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbef54634 dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xbf01692a dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc19c0c38 dccp_insert_option_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe2d4d128 dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf285dfe7 dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf4708a55 dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xff085db3 dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x07c5ec8a dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3a4958dd dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x44f96da6 dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x68895bf2 dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xbd915950 dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe1d08f3d dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xa7418090 arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x4e2a8178 ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x0c38d2ad nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x1aa27340 nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x35c77649 nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x438178f8 nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x71ea044e nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x86b1792f nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9c562aa5 nf_nat_proto_put
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x9c98cc78 nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xdef5e687 nf_nat_proto_find_get
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x04a402f2 tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7aa82c2d tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb5395f2b tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xcdf97004 tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xec0a9a13 tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x017543f0 net_ipv6_ctl_path
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x027239fe inet6_csk_xmit
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0a874fb8 fl6_sock_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x0c664d6f inet6_destroy_sock
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x159b307d inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x259b649f ipv6_find_tlv
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x3ea9ae08 ipv6_dup_options
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x4cd89695 ip6_local_out
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x525234fa ipv6_opt_accepted
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x665f0180 ip6_dst_blackhole
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x85478a0b inet6_hash_frag
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xa522ac33 inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xb3e8127f inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xc0432967 inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xcf004733 inet6_csk_search_req
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xd24d800f ip6_dst_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xd57b38b7 ip6_sk_dst_lookup
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xf56c93f6 ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x02cecd31 l2tp_xmit_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x03e80d91 l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0a8b7e0f l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0d2f4b7d l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x20b63b36 l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2327fcbd l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3d4ab4cf l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4054e729 l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x42bba22a l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4bad282c l2tp_tunnel_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4c5004bc l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x551cbf6e l2tp_udp_recv_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x56792e3e l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x82f58ac3 l2tp_tunnel_closeall
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x87c2b6ff l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x98c3900e l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc4154b4e l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x0b88e655 ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x391cf20d ieee80211_find_sta_by_hw
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x66671ccd ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x027d67b2 nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x116ad775 nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1234c463 nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x163ea976 nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1b3119ba nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1dd7c20f nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1fdc0773 nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x238d6cdf nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24aa9547 nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x285ef439 nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2da4bb15 nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2fe1a08d nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x331fb021 nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x36650c78 nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3680db1e nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39cd4f8e nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3af7522e nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x41ea4f99 nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45fd85d7 nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49584876 __nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d1ff3b6 nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x526977df __nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x554e2cc5 nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x55d8250c nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x58d2afc2 nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x59324c67 nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x59530297 nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x626bfc1f nf_conntrack_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6892a1a9 __nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x71c8541e __nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x72eb8263 nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8155cf7b nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x83635c89 __nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8464cec0 nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85785700 nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x88f77e33 nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8a01f25e nf_expect_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8a889a1b seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9236320e nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x93b95662 nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9721e258 nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97ff82ef nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a83479f nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa51780da nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa546cd84 nf_conntrack_untracked
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa807976c __nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa28ace9 nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb0ad1d8c nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb266793b nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbfbd5004 nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xce744699 print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xce8669a0 nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd53ec678 nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd56b3a32 nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb9e2586 nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf73c40c __nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdfb08b49 nf_ct_unlink_expect
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe019fa03 nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe13a323b __nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf0845ead nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf3049ddd nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf3e42c26 nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x2629f3bb nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x824bdbbc nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x10c4a9b2 nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2da5d3b1 get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3e1ed22d nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x4f36815e nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8f3b5b95 set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x94c9383f nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9d690b19 set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbd2b27fa nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc4e66d96 set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xef4f55a2 set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x7717c216 nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9db224d9 nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xcaf1b17a nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xe1ece144 nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf9842023 nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xa9290e68 nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xb96bd3ad nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x1fa832a6 ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x30bd7a1c nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3c93b4ca nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x954e7bd3 nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa912fa9d ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb83a391e nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xba02ae54 nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbdb64749 nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc563bb6f ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd31dbda3 nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xea2a117b ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf0a37dae ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf6204269 ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x22e1273c nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xb3cc9864 nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xb8e43959 nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3f0875ca nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x59a62c06 nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x7f86b68e nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x987f9aff nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe43d5e02 nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xefdcadcb nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xa745639b nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x171af382 xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1955548e xt_compat_target_to_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1b634f9e xt_info_locks
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x3fd62162 xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x546ae702 xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x552c1302 xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x60aa1e0b xt_compat_match_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63880df0 xt_compat_target_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x684694c5 xt_compat_add_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7b52d6e5 xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8a6c5e3b xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb33b40d0 xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbd3875e4 xt_compat_match_to_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc520bf0a xt_compat_target_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd43323b0 xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdadd78d4 xt_compat_match_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdcc0a258 xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdd6b22ec xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe3e3a4ba xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe5345adf xt_replace_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xed3c9d7e xt_hook_unlink
+EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq
+EXPORT_SYMBOL_GPL net/rds/rds 0x016d1ed9 rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x09742fc8 rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0x0a7777f0 rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0x0d8ed5f8 rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0x16f8e043 rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x1c6d7ee3 rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x1cf80d32 rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x27c3000d rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0x2b96e8da rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0x2bfd18e6 rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x47354805 rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0x5ac243c3 rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0x6fe073f2 rds_inc_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x7226623b rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0x72c01304 rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x87a38ad3 rds_stats
+EXPORT_SYMBOL_GPL net/rds/rds 0x9256d75b rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0x976b9a98 rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x9e2a6d52 rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0xa1171564 rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xb249081e rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0xb63a9a72 rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xc71d5d9c rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0xea0ed3b0 rds_message_addref
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x43d98f4a rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x6b2ac0ed rxrpc_register_security
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00e549a5 gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x25aa3dd1 gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x338d7d0b gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x4e09dd40 gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x538ad45f gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x72a6e0ff gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8c83acec svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x97d1bfee svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xaf2937c9 gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd7f3b8a3 gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xdaa41087 gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00bb958c xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x057987da rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x059089bd rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05b8fde5 rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x081adc0b svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x094fb895 svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bbad736 xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0efcda21 rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x128c1659 svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12a77a5c rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x132d7231 cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x136e5b8d rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x154d559c rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1692e1ad cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1717eb45 rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19f63c3f xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1af55db2 svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b6b75a0 rpc_exit_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cd82ddb unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x20a9dd76 svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x229f905b xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22e87cff svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x261c57ec xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2729e91a rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x281e36d3 rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2838b950 rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2882d2e0 rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29ab8471 auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b8262ec svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e82fc65 xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f756a02 svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2faad079 rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2fdfc4c4 xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3357e281 auth_unix_add_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3394a64e rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3443be7b xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x38fff9bc rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ba6887e xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3bb9d8d4 xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c9bc68f svc_sock_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cfcfdaf rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x432624e1 xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45073218 xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x481a09ca svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48382bd2 xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x489b2db3 xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ba5d820 svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d234020 sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d29a551 rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4ef3e60f svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x501bcd48 svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x511b0c6a cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51431572 xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54d48547 auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x561612c0 svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56656a28 sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x583ef475 rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c05b03b rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ce41c0b xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64e50ca3 rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6783ac9c rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a1ba367 xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a528e76 rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ce093b9 rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ee93423 csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71080351 rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7489654e rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77aededc svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79139453 rpc_queue_empty
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b5d1264 rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x805389cf svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x817ae806 xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8307ce57 svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8423e02f xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86a22499 xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x87d53554 rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8984aa4f svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89a28bcf auth_unix_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ed799f3 rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x943e2b19 rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9503a475 xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9517330f xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x951b913b xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96361c7e rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x974fdcb3 cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9786a9a5 rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97b8f7a2 svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x993b7069 svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a133431 xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0ec07cf read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa170b012 svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa3042ca9 __rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa619ee67 xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa68599be svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa82e7141 xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad55dc20 svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb13f0ad5 xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb317f8e5 xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb481d6d7 svc_sock_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb7c39d39 rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbabba0fc put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbac743ea rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb9b75bf svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe0921ae sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc08ca5db rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc48edfc8 svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4cd31b1 rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc63a904b xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9e7d4a2 svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca4e91cf sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcfe77840 auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd15ab5f7 sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3c09f6b rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6c97d57 svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd744fa10 rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd783e0b5 rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda591722 rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdad7e766 xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbb26afc write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbfe318f xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc3afd1f svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdda485e4 svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe33c3609 xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4fc315d svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5d71f8b svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6270cce auth_unix_forget_old
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeaa43b19 xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb30ad61 svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb7577aa xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb94f2f9 rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedd4be73 rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0f6b2c4 xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf12ef7a7 rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf2d9899f rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf41f364d rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf47225f3 svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6bd7c32 svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9f3fd55 xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfda91216 rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe78e948 rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff97c167 rpc_malloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x0272fdd4 wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x069a5d1a wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x106a72f4 wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x355d66ef wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x453765b4 wimax_state_change
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x5438b43f wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x59dc3d98 wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x68bd3f80 wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x883b1494 wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xb939bb49 wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xb98927e2 wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xcc352364 wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xe1c36cc0 wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x17a1dab0 cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1e890308 cfg80211_wext_giwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x256da35a cfg80211_wext_giwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x27a1ce8b cfg80211_wireless_stats
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x296f3e55 cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2a4168d0 cfg80211_wext_siwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2edc7551 cfg80211_wext_siwmlme
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4ab2456a cfg80211_wext_siwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x53fca022 cfg80211_wext_siwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5db1ac26 cfg80211_wext_siwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x60b2d333 cfg80211_wext_giwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x66550c74 cfg80211_wext_siwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x66ae76c7 cfg80211_wext_siwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6979c7fe cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x774a36c9 cfg80211_wext_giwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7dffdb5b cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8f49847d cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8f49e478 cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8fe58881 cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9072016d cfg80211_wext_siwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x954f97ff cfg80211_wext_giwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x9627700a cfg80211_wext_giwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa93cfd28 cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xacc24489 cfg80211_wext_siwencodeext
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb6dde053 cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc1344505 cfg80211_wext_giwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc409d397 cfg80211_wext_siwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xde0fa010 cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdfe7dbaf cfg80211_wext_siwgenie
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe138bb8b cfg80211_wext_siwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe3ec92b9 cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xfeea24f6 cfg80211_wext_giwfreq
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x059adcae ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x3db81e7f ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x4f41cbd0 ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x800cc083 ipcomp_input
+EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x35911ee0 snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x9141411b snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa6411414 snd_ak4113_create
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xace359d9 snd_ak4113_build
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc76fa34d snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xd6242281 snd_ak4113_reinit
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0684506a snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0728a8fc snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0b7cf6de snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e6a9097 snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x105774e7 snd_hda_parse_pin_def_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11da0b8a snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17fc8376 snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x17fd0b47 snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1afe9f69 snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2095a73c snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x260b69f0 snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2862a103 snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x296a8a5e snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2cfc7beb snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2f4baa2d snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x307374ea snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x356272f7 snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x36c591df snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c1f4011 snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x412fd827 snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x42a9c4e7 snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x42c2243b snd_hdmi_show_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4438bc3d snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48133bd2 snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49c0747f snd_hda_eld_proc_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49d86263 snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x50a09847 snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5207f1c5 snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55da17af snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b005dfe snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b92ebf7 snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c9fe62d snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62a95666 snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x65ebbac9 snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x65f7b738 snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71230b68 query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x73b08735 snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x77a67b93 snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x783f024e snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x79061988 snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7bb25f56 snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x86469fef snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8666a3c2 snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8668b593 snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a85d8ff snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8f7951dc snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x933926ba snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x93abdda8 snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c711377 snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c9f5641 snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9eacc42e snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9fe89830 snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1f600b1 snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa41a9cab snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4415738 snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8ae3ae0 snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb1250716 snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb2c81a8a snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb36e7488 snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb4a4bd28 snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb7e60ff snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbdc3a7e3 snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc59a7d0a snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7968908 snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca5c660d snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca7d4540 snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb4956a0 snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xccdabed7 snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd6fc10a snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0f92448 snd_hda_eld_proc_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd42da945 snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd557442f snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd5989a4d snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd842d81e snd_hdmi_get_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb2af96e snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc1446f8 snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe16feebb snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe603aaf9 snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe658d423 snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe70245c9 snd_hdmi_get_eld_size
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeaf2264c snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed8e15d3 snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeef2357f snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf163d9d6 snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf1a0ad21 snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf8e81b79 snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0x84ce58cc soc_codec_dev_ad1836
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0xc36cda4b ad1836_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x3c072ea3 ad193x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0xfd9bee5d soc_codec_dev_ad193x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x8c25681f soc_codec_dev_ad73311
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0xbe3459e8 ad73311_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x0e31bf57 ads117x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0xed133370 soc_codec_dev_ads117x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0x1fa00a3a soc_codec_device_ak4104
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x63f23c9c ak4535_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0xcb2c5d08 soc_codec_dev_ak4535
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x35df3549 ak4642_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x939772a4 soc_codec_dev_ak4642
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x82a35d7a ak4671_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xbafc9f3e soc_codec_dev_ak4671
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x00d774ed soc_codec_device_cs4270
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xa1a0f8f8 cs4270_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x9c0b338b soc_codec_dev_da7210
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0xf19db551 da7210_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xa076b337 max9877_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x96333225 soc_codec_dev_pcm3008
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0xa173a6e6 pcm3008_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0xe9314f93 dit_stub_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x5d9348f0 soc_codec_dev_ssm2602
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xa5f595a6 ssm2602_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x8d7434fd soc_codec_dev_tlv320aic23
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xd485f357 tlv320aic23_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0x0fd59ca1 aic26_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xd1503dc9 aic26_soc_codec_dev
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x14439e5a soc_codec_dev_aic3x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x77b518cf aic3x_headset_detected
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x7e588e2f aic3x_button_pressed
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xaca47950 aic3x_set_headset_detection
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb913b32c aic3x_get_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb9da894c aic3x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xba5a387b aic3x_set_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x81b41abf dac33_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0xec0b84b8 soc_codec_dev_tlv320dac33
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x66a0b02c tpa6130a2_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x4f71f12a twl4030_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0xf21ec0f8 soc_codec_dev_twl4030
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x8d91851d soc_codec_dev_twl6040
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xac72b906 twl6040_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0xf3b3d9e3 soc_codec_dev_uda134x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x021c9a94 soc_codec_dev_uda1380
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0xfd3184fd uda1380_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x09c79e0e wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xaac3e918 wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xf8a8528f wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x3035a164 wm2000_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x3dc38e12 wm8350_mic_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x603da4bd wm8350_hp_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xb9a3a0a3 wm8350_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xff93b7e7 soc_codec_dev_wm8350
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x648f4db5 soc_codec_dev_wm8400
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xe15e861d wm8400_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x09c931dd wm8510_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0xa278dacb soc_codec_dev_wm8510
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x8b133751 soc_codec_dev_wm8523
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0xbeb559ee wm8523_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xada9e144 soc_codec_dev_wm8580
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0xd840164b wm8580_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x116a2301 soc_codec_dev_wm8711
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0x80b0e505 wm8711_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x619283ef wm8727_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xea6589a1 soc_codec_dev_wm8727
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x9657ae50 wm8728_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xc2ee2611 soc_codec_dev_wm8728
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x12eef76f soc_codec_dev_wm8731
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x172ff42c wm8731_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x0f78ba9c soc_codec_dev_wm8750
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xbfa312b3 wm8750_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x20627b87 wm8753_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x2455e95f soc_codec_dev_wm8753
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0x5aa6c974 soc_codec_dev_wm8776
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xaa9d0c55 wm8776_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0xe96c0f44 soc_codec_dev_wm8900
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0xf8112f26 wm8900_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x10b740ef wm8903_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x7e855d88 wm8903_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xc2415c87 soc_codec_dev_wm8903
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x63806d30 wm8904_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x8d00ca40 soc_codec_dev_wm8904
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x0c5e0b35 wm8940_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0xee65a798 soc_codec_dev_wm8940
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x92d039ea soc_codec_dev_wm8955
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0xfae49132 wm8955_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x9bc11a1c wm8960_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0xede173f6 soc_codec_dev_wm8960
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x509dc9b9 wm8961_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0xf4fa42b7 soc_codec_dev_wm8961
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0xf5382880 soc_codec_dev_wm8971
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0xf6eac20d wm8971_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x884fdcc5 soc_codec_dev_wm8974
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0xa62753be wm8974_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x24fa93c9 soc_codec_dev_wm8978
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0xd1e593c5 wm8978_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x27ade32c wm8988_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x2fa6d4f4 soc_codec_dev_wm8988
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x6d896af5 wm8990_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0xe6bd34cb soc_codec_dev_wm8990
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xcd906708 soc_codec_dev_wm8993
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xeb1d185b wm8993_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x152f2470 wm8994_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x82d1f1cf soc_codec_dev_wm8994
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x968aa616 wm8994_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x0896bd8c wm9081_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0xbe0c0987 soc_codec_dev_wm9081
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0xa6d552f1 soc_codec_dev_wm9090
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05454006 snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x05b7919f snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x08aa1218 snd_soc_get_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x094febc0 snd_soc_new_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0c8bc5a4 snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0e30f298 snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x11bbea1a snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x158585f7 snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16af9111 snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x17f5b541 snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1dddb876 snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ec99527 snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20671c0d snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x225ca2b0 snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x230b92c9 snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x259adf71 snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2fb57fb2 snd_soc_free_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3589ebd9 snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3bfe56e0 snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c35de75 snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3d3c706f snd_soc_info_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x423cba0a snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x432b44fe snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x44ed393f snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4aa31638 snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f807bf7 snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54cef70f snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58962444 snd_soc_jack_new
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f02869b snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f4bc6eb snd_soc_dapm_stream_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5fe8a22e snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ff0971d snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6254b5fe snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65057e0d snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x669af034 snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x70bb9601 snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71be4c5e snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7281d332 snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74cf2a25 snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x760fa708 snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x784ec6e7 snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x786e5150 snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78f76a75 snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7a52e382 snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7be0f2c4 snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8377ba5b snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x83afbca8 snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d72056e snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa21f302b snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa30afe32 snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa31e37fd snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa4422212 snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa919c8e3 snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xae94dcf9 snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaf2fa413 snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0870fb9 snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0b86036 snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4eb0246 snd_soc_put_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb80d87cb snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2c68955 snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc2c8b437 snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc41ffed1 snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc44c0269 snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca1c24ed snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcbfa1f0e snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcc5af9ff snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcca9102b snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd26d645c snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd4789b71 snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd7c88811 snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdf0535e7 snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe88fe751 snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeab363d4 snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2a5ef23 dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf41b50d0 snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf9d809b5 snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfeeeeed1 snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL vmlinux 0x00447271 rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x004c7f7a debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0x00520f62 sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x005bbcf9 class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init
+EXPORT_SYMBOL_GPL vmlinux 0x00fa3793 register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0x00ffbf5e fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x01b7caf8 tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0x0203d967 usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0x020d80e6 input_event_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x0248121b crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x0261623b regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x02ab753a inotify_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x02c5c525 regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0x02d089c8 posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0x02ff2bd0 usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x0392d945 sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x03b03975 flush_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x03b2dcd3 device_create
+EXPORT_SYMBOL_GPL vmlinux 0x03fe2cca flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread
+EXPORT_SYMBOL_GPL vmlinux 0x043d95fd __lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x04a50e52 crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0x04a602e0 usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0x04dbfea7 vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0x0505aa34 regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0x05326fe8 inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x056db772 firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x057ddf3e perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0x059dd869 inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x06141856 devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0x06198882 br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x0628c760 usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x06ef75fb crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0x06f6aca7 hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x073eb6c5 dma_release_channel
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x07be91c7 blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0x07d616d0 shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x07dbdd17 trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0x08880f76 rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0x0895e2a7 fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0x08be5dce invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0x08e0acdc usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0x0904f4c6 inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0x092ce0e9 bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0x0994f7fe usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0x09bc921a inotify_find_update_watch
+EXPORT_SYMBOL_GPL vmlinux 0x09beccd4 cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0x09f3b5e9 lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b75e8e4 ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0x0b8fe433 each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x0b959058 device_schedule_callback_owner
+EXPORT_SYMBOL_GPL vmlinux 0x0ba55809 device_rename
+EXPORT_SYMBOL_GPL vmlinux 0x0bdb0cee shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x0c068934 pcr_ops
+EXPORT_SYMBOL_GPL vmlinux 0x0c1b9740 perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c8c24bf crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x0cb33e77 d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL vmlinux 0x0cd0b7cc usb_match_id
+EXPORT_SYMBOL_GPL vmlinux 0x0cdb5797 crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x0dbc2e13 class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x0dcc64d7 spi_alloc_master
+EXPORT_SYMBOL_GPL vmlinux 0x0dfab39c sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0x0e3da8a6 tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x0ecf2eaf usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x0ee2a954 crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x0f17daa9 inotify_inode_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x0f918e5b scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0x0febd954 usb_poison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x0ffa4ee5 tracepoint_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x1013eb13 bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0x10734ca3 rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0x107bc2fd inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x10a8c9aa relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0x110a093c klist_init
+EXPORT_SYMBOL_GPL vmlinux 0x1187d254 scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x1215f31e usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0x1238a1aa hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x13b0f4a4 da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13c763ec bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x13d42246 wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid
+EXPORT_SYMBOL_GPL vmlinux 0x14b469e3 usb_set_device_state
+EXPORT_SYMBOL_GPL vmlinux 0x14b84b56 regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x158c28fb tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x158e23bd pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x15dc56de bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x16025151 usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x1619cd44 tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x1678307a put_device
+EXPORT_SYMBOL_GPL vmlinux 0x16dc45a7 trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0x16e73a7d register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x16f352cf fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0x17403f99 pci_dev_run_wake
+EXPORT_SYMBOL_GPL vmlinux 0x176b22cb relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0x176b8f81 power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0x178ab7d4 scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x17c62914 da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x17d789cc regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x17deae83 put_pid
+EXPORT_SYMBOL_GPL vmlinux 0x17e09015 scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0x18391f9c ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x18542413 kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x1894b8b5 sysdev_class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x18a706c1 led_trigger_show
+EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x195b00c0 tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0x1986cd70 transport_configure_device
+EXPORT_SYMBOL_GPL vmlinux 0x199232b0 module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19caf38b hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL vmlinux 0x19f9df08 ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x1a201370 device_add
+EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x1a370479 security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x1a528b54 skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x1a8d6905 securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x1aa42131 tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0x1b283008 device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0x1b8239ec proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0x1b83ad2b blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1ba412b4 user_read
+EXPORT_SYMBOL_GPL vmlinux 0x1c3c6bad skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1ccc7dfc regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x1cd134e0 pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0x1cdf16bb __rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1ce502d7 fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0x1e40466b sysdev_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart
+EXPORT_SYMBOL_GPL vmlinux 0x1e93d671 kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names
+EXPORT_SYMBOL_GPL vmlinux 0x1edca79e tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x1ee59c15 inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0x1eed5888 blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1f2f392c bus_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x1f68f9d2 inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0x1f91644f adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick
+EXPORT_SYMBOL_GPL vmlinux 0x2021aa39 scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20c802a1 crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x20cb3689 eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0x21326920 tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0x218ffd51 sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0x2201f8fa relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x2387325b rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x23b6d365 devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0x23c3d449 sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0x23f43810 blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x241304e2 sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0x242691cb inet_diag_register
+EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0x244e82a5 srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x25178836 platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0x25b8b8d3 klist_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x25e6b73b regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0x2608c13b usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL vmlinux 0x262ebc22 wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x267c9354 ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x269b3eeb rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x26c2b1c1 tty_prepare_flip_string_flags
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x26d82fa5 tty_mode_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x26efe357 inotify_find_watch
+EXPORT_SYMBOL_GPL vmlinux 0x2703afa2 device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x274536cc __ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0x2778859b debugfs_create_bool
+EXPORT_SYMBOL_GPL vmlinux 0x279f8cdc crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x27ced862 __pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range
+EXPORT_SYMBOL_GPL vmlinux 0x28ab260e regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x28c60cdf attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x28e34fe7 ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0x28f09b27 adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0x28fd4b32 adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x292313b7 skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0x297d5341 __inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x298ef231 nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0x29a4c37b eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0x2a828cd6 default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x2abeb0b6 platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x2acb5339 fuse_file_poll
+EXPORT_SYMBOL_GPL vmlinux 0x2adface0 udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x2b67abc0 driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c212d7f skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0x2c2fccaa ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2d19b51e crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0x2d1fc092 kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x2d407f78 sysfs_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x2d626131 scsi_target_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x2d8bf2be power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2dcffd38 tc35892_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e5716ee enable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x2e80cdfa alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x2e92f561 relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0x2e968374 debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0x2eb91dfe scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0x2ed9efbd usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x2f90e559 tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0x2fa495bb blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0x3007603f debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0x303ceac8 shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x30702320 ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0x308ff9a9 srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x30df24f0 inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x314f19bc fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x3154a201 dm_get_rq_mapinfo
+EXPORT_SYMBOL_GPL vmlinux 0x318dafed crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0x31c2ca2d xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0x32022a5b spi_unregister_master
+EXPORT_SYMBOL_GPL vmlinux 0x3219d5db blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x327253be usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0x32a5f20c simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0x32b0c730 inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x32e0db5f __module_address
+EXPORT_SYMBOL_GPL vmlinux 0x33564be0 xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0x33fc19cd i2c_new_dummy
+EXPORT_SYMBOL_GPL vmlinux 0x340e8b52 spi_async
+EXPORT_SYMBOL_GPL vmlinux 0x34101965 platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x346fd45e blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x348eb070 crypto_alg_sem
+EXPORT_SYMBOL_GPL vmlinux 0x349ae062 inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x349c1a69 usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0x34b91ff4 usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x34c851b2 tc35892_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x354a5fb9 usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x354ea37e pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0x3554cc03 usb_bus_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x35a09bcd regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0x35a55d81 sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0x366e41b7 perf_trace_buf_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x36841ceb __css_put
+EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x3707b205 usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0x37423389 map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x3769ab0c klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x3830439b i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x3951263d alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3ab56547 fuse_direct_io
+EXPORT_SYMBOL_GPL vmlinux 0x3acdcfb4 sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x3aecdba6 wm8350_block_write
+EXPORT_SYMBOL_GPL vmlinux 0x3afa4435 usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x3b799759 usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x3b79a3c3 unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x3baac916 usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0x3bbdfe22 rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3bf28216 wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0x3bfc377d anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x3c6ff3bc skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x3c88151b ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag
+EXPORT_SYMBOL_GPL vmlinux 0x3cc4f2ea class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x3ccb0f7a pci_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3db9f982 usb_ep0_reinit
+EXPORT_SYMBOL_GPL vmlinux 0x3dd95be3 pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0x3e1b1717 driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x3e291515 ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x3e300214 pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0x3e3fd6fa crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x3ecde66f input_ff_upload
+EXPORT_SYMBOL_GPL vmlinux 0x3f937cf4 register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x3fad38af tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0x3fc630c6 sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0x3fe6fb79 skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x40c8a61a __inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0x4195a299 fuse_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0x41ba700e sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0x41c9b168 raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0x42129c2e hrtimer_start
+EXPORT_SYMBOL_GPL vmlinux 0x427105ef wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active
+EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done
+EXPORT_SYMBOL_GPL vmlinux 0x4319c7ee mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0x432a6703 init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x433fb357 task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x43799d7e rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x43f7bcbe ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x447186f3 class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44928588 pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list
+EXPORT_SYMBOL_GPL vmlinux 0x458f8f52 spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0x45ad4096 crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x45bd54a7 platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45d4d148 vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x46b03018 device_register
+EXPORT_SYMBOL_GPL vmlinux 0x46c5ee28 spi_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x46dd02ce inotify_add_watch
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x479fe7c3 cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x47da9327 regulator_put
+EXPORT_SYMBOL_GPL vmlinux 0x47e52721 device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0x4817a600 led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0x4854a5a4 class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0x488ecd74 mm_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size
+EXPORT_SYMBOL_GPL vmlinux 0x48aaa081 inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0x48d59d25 seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x4903800f device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue
+EXPORT_SYMBOL_GPL vmlinux 0x49a61768 usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x49b01570 attribute_container_find_class_device
+EXPORT_SYMBOL_GPL vmlinux 0x49baa4ac rtc_class_close
+EXPORT_SYMBOL_GPL vmlinux 0x49c9d6de pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0x49d81e10 __rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0x4a220964 __mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0x4a6b8b1f eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0x4a9468e3 get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0x4b174c13 skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x4b2425ce platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x4bb856ed debugfs_create_u64
+EXPORT_SYMBOL_GPL vmlinux 0x4bb8e3f2 kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x4c1308c5 rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x4c3b10e8 inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x4c3c5b36 kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0x4c5d7954 pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0x4c6e2c5e uart_console_write
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c848371 tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0x4c8fbe7c fib_rules_cleanup_ops
+EXPORT_SYMBOL_GPL vmlinux 0x4cbae7c8 usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0x4cc26b22 unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x4cc2b28b regulator_disable
+EXPORT_SYMBOL_GPL vmlinux 0x4d0b3a3c gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0x4e4e2a5b zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0x4e714b6a inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0x4e82492f fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x4f110fbc fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0x4f4dc5b1 crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x4f53d309 vma_kernel_pagesize
+EXPORT_SYMBOL_GPL vmlinux 0x4f62af11 crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0x4f877c6a i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x4ff5ae9f __wake_up_sync_key
+EXPORT_SYMBOL_GPL vmlinux 0x5042179c regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x5075ec94 __set_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL vmlinux 0x50f5b930 debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched
+EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x510c60a2 perf_arch_fetch_caller_regs
+EXPORT_SYMBOL_GPL vmlinux 0x518c8c63 pci_ioremap_bar
+EXPORT_SYMBOL_GPL vmlinux 0x51b6b50b devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x526f22d6 crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x52bff5b6 free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0x52e18ec5 pci_destroy_slot
+EXPORT_SYMBOL_GPL vmlinux 0x530ecd6f seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x5358bf45 queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53f4297b __ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x541d7160 driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x5434ca76 platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x551802d7 blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL vmlinux 0x551e82a2 fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0x55a90faf usb_store_new_id
+EXPORT_SYMBOL_GPL vmlinux 0x55b4c1a7 usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0x55e0ecbf transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0x55eda5ae find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x55f9f104 inotify_init_watch
+EXPORT_SYMBOL_GPL vmlinux 0x561b5040 usb_driver_set_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status
+EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after
+EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen
+EXPORT_SYMBOL_GPL vmlinux 0x56adb23e crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0x56adf0e5 da903x_write
+EXPORT_SYMBOL_GPL vmlinux 0x56de7fc7 rt_mutex_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x56fc9785 atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x573cceed br_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x57a7c630 __root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x57e146dc eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0x580e5d01 sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0x582d0420 ring_buffer_overruns
+EXPORT_SYMBOL_GPL vmlinux 0x5850863d class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x58775344 spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0x587d274f tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0x588ef069 debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0x58c1b362 raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0x58ced645 ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0x58ed7295 generic_fh_to_parent
+EXPORT_SYMBOL_GPL vmlinux 0x58f7e98f blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x5917c537 pci_scan_child_bus
+EXPORT_SYMBOL_GPL vmlinux 0x59337f30 usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x59942383 inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x59e5330c wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x59e6e55a usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x5a2efffe class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5a423c63 scsi_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5ac8d615 platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0x5b2b961a debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0x5b4fa90a perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0x5bac7788 register_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x5bb271af driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5bc4ba02 devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0x5beed6b9 inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5c076dad invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0x5c267d01 part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0x5c3ca181 eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x5c4c2bcc tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x5c7b1211 crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x5c831ea1 da903x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0x5c9a79da crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0x5ca9fba1 crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table
+EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5e8e795a security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0x5ee5871c blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x5ef02d9e devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0x5ef9a979 sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x5f017bc7 __create_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0x5f233ea4 pci_enable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x5fd12c79 find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0x5fd7289e da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0x6007fca4 inet_diag_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x600910b3 debugfs_create_u32
+EXPORT_SYMBOL_GPL vmlinux 0x6023c974 xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0x602a2ec3 synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x609acc55 get_driver
+EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x60a7b0f3 power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0x60f2434f inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x613bf55a platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0x6167d63c wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0x6184645c blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x61cd025f usb_driver_release_interface
+EXPORT_SYMBOL_GPL vmlinux 0x624ed5ce __sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep
+EXPORT_SYMBOL_GPL vmlinux 0x62b24ed1 set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0x63648b64 uhci_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x638d5391 crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0x63a92c63 fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap
+EXPORT_SYMBOL_GPL vmlinux 0x64146470 __rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x64b0acfd tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x64c16b0f mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0x64f91dd7 scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0x6525af43 elv_register
+EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65e8ab7c debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x66297408 regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66cc382c __inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x67622843 inotify_dentry_parent_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x6792a1c7 destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x67c12549 scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0x68617e48 trace_seq_vprintf
+EXPORT_SYMBOL_GPL vmlinux 0x6863bea6 rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x6887a9ff sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0x689aa0ad platform_device_register_data
+EXPORT_SYMBOL_GPL vmlinux 0x692a9f4f tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0x692e29a3 ref_module
+EXPORT_SYMBOL_GPL vmlinux 0x69631d9f find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x69888822 blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x69a74130 rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x6a8be9a0 inode_add_to_lists
+EXPORT_SYMBOL_GPL vmlinux 0x6a9a5178 device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0x6a9e5b2f blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x6ad8ff0d disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low
+EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x6ba1de47 single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x6bf61cda hwmon_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x6c1c4bb4 noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x6c1debff hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c86e291 class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6cd32a1a crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d32a65d synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0x6d53627d blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x6dd59fb9 register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0x6e1a9350 aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x6e571875 usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x6e6c26ea class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x6eee1c00 tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0x6f315916 drm_class_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x6f4f8d73 tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x70077535 usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x7016dbda put_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x70b4db1a macvlan_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0x70b7efda usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0x713063bd kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x7147f468 blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x714c9474 crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x71784cdc mmput
+EXPORT_SYMBOL_GPL vmlinux 0x71a6fd83 kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x725507ef tracepoint_iter_stop
+EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x72fe883e __srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0x73a12593 blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x73a16b2a driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0x73a49c09 debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0x741359ae crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x7442453e ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x7447ec99 usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x7485c1cf vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read
+EXPORT_SYMBOL_GPL vmlinux 0x749c18c7 device_move
+EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74dca3ec usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x750e1eef rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0x7554fa23 sysdev_class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x7570e3e6 inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x75b99886 regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7637da61 tc35892_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x763b68e9 ab8500_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x7671224b eventfd_ctx_put
+EXPORT_SYMBOL_GPL vmlinux 0x7685147e css_depth
+EXPORT_SYMBOL_GPL vmlinux 0x7694d949 bd_claim_by_disk
+EXPORT_SYMBOL_GPL vmlinux 0x7708ec66 wm8350_gpio_config
+EXPORT_SYMBOL_GPL vmlinux 0x77d8ad57 transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x77db05f2 bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x77db0935 sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x78599c88 clockevents_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x78908036 tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0x7892c16c blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x7911c13d usb_string
+EXPORT_SYMBOL_GPL vmlinux 0x79233963 ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x793eecc1 __inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x79be6aa0 uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0x7a0560f5 anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0x7a1c4be6 nmi_adjust_hz
+EXPORT_SYMBOL_GPL vmlinux 0x7b2704ba skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0x7b6b5316 securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x7b9b9ec9 crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x7bbfe189 rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x7bdebc8c cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0x7be5a2fe usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL vmlinux 0x7be65b52 led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0x7c09d334 dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0x7c254c44 devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x7c2c0915 fuse_request_send
+EXPORT_SYMBOL_GPL vmlinux 0x7cec5e34 wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x7d1de138 rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values
+EXPORT_SYMBOL_GPL vmlinux 0x7dc12d68 pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7dd24d7a i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL vmlinux 0x7deae656 sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e37fa74 inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7e704a5e simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0x7e7dda29 save_stack_trace_tsk
+EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x7ed9b7f4 fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x7ee44e39 gpio_export_link
+EXPORT_SYMBOL_GPL vmlinux 0x7ef3c400 xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0x7f2b1040 blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0x7f4467db class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x7f6d43fe crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x7f961c0a sysdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x7fd6f457 spi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x800fcce7 crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission
+EXPORT_SYMBOL_GPL vmlinux 0x806433cd debugfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x8072b834 pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0x808de4f3 pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc
+EXPORT_SYMBOL_GPL vmlinux 0x812145cd device_del
+EXPORT_SYMBOL_GPL vmlinux 0x817b4fc4 inotify_rm_wd
+EXPORT_SYMBOL_GPL vmlinux 0x8188f9d8 ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x81be8726 tracepoint_iter_start
+EXPORT_SYMBOL_GPL vmlinux 0x81c5ad07 __rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x826aabad class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x82900e46 dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x82948dbc bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x82c612c1 blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x82c681ae usb_anchor_empty
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export
+EXPORT_SYMBOL_GPL vmlinux 0x8313ea52 ring_buffer_read_finish
+EXPORT_SYMBOL_GPL vmlinux 0x8371f725 dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0x83872d8f usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0x838d647f filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0x83c09504 tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0x83d56515 anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x84115513 rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x84301944 regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0x845186b1 crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x84b48f1a __ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x84e85055 tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0x84f89d99 regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x8508c99c inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x850bbf41 inotify_remove_watch_locked
+EXPORT_SYMBOL_GPL vmlinux 0x85235e4e crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x85240f22 power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL vmlinux 0x852c21ee bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0x8557587b sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x856b44f4 pci_find_ext_capability
+EXPORT_SYMBOL_GPL vmlinux 0x85b188ed disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh
+EXPORT_SYMBOL_GPL vmlinux 0x8601c11e regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x860ea500 tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0x863b4ae2 kill_pid_info_as_uid
+EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x868cc39d hwmon_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x8702e90f usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x8709133b usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x8712ceea bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0x87136cfd blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0x87151592 tc35892_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0x871b49cc file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0x872bdbc8 usb_ifnum_to_if
+EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x87789acf pci_bus_resource_n
+EXPORT_SYMBOL_GPL vmlinux 0x8782f22b devres_find
+EXPORT_SYMBOL_GPL vmlinux 0x87a5e175 ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0x87bb3dfa crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x87fb0280 cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x8805b79c rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x8818ce60 bd_release_from_disk
+EXPORT_SYMBOL_GPL vmlinux 0x883c71f4 device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x8843c686 proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0x889bdf0d ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0x88a319cc platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0x88ebc5e1 sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x88f1cc22 blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x89555517 wm8350_device_exit
+EXPORT_SYMBOL_GPL vmlinux 0x897ed306 ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x8986365d usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x89ca8d51 transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0x89e2fd3e device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0x8a0a98c3 sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x8a8988e5 klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0x8ab8c98c regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x8abb2568 ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x8b269e37 tty_put_char
+EXPORT_SYMBOL_GPL vmlinux 0x8bc98bf0 fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0x8bd48bf8 cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0x8beed540 regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0x8c0c8f2f unregister_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x8c1c461b register_posix_clock
+EXPORT_SYMBOL_GPL vmlinux 0x8cb13f6d fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x8cd8f146 hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0x8d10332d rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0x8d1f6f65 devres_add
+EXPORT_SYMBOL_GPL vmlinux 0x8d25f4c2 user_update
+EXPORT_SYMBOL_GPL vmlinux 0x8d8ab04e console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0x8ddbab07 led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0x8de6162a wm8994_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x8de9bba4 do_add_mount
+EXPORT_SYMBOL_GPL vmlinux 0x8e08411b inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x8e219dfb mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0x8e374d19 __blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x8e90d787 vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0x8f34d439 dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8f891c70 crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8fa9cdc4 platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0x90157348 cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0x90629d5d register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x90767e79 platform_get_resource_byname
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90a2f390 driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x91a5f070 dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array
+EXPORT_SYMBOL_GPL vmlinux 0x925f2b64 sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92e74c55 blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0x934bd4fa led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x93eed001 disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x9422f6ef bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0x9427c706 crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x94bea58c clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0x951a2e9c scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x956f3818 remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0x958207cf klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0x95c10a19 driver_find
+EXPORT_SYMBOL_GPL vmlinux 0x95cff500 tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x96331a21 crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0x96529ca6 security_inode_setattr
+EXPORT_SYMBOL_GPL vmlinux 0x9653347f vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x96e981f2 attribute_container_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x96f57662 sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x97441a25 sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x9776aa10 transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0x990ef13d unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x9932d940 raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0x999e499f __class_create
+EXPORT_SYMBOL_GPL vmlinux 0x99b2f952 sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0x99de53c0 fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a253f12 crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0x9a498f48 key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0x9a5e0ecf pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0x9a8144fc __put_net
+EXPORT_SYMBOL_GPL vmlinux 0x9ae38579 simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0x9b15761d fb_ddc_read
+EXPORT_SYMBOL_GPL vmlinux 0x9b73bb03 rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9baf5276 usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x9be78b37 ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x9c353935 sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9cea14b1 tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0x9cee1ce6 page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0x9d254fe6 __fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0x9d9fc1b1 dm_dispatch_request
+EXPORT_SYMBOL_GPL vmlinux 0x9ede1d02 tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0x9eff526a dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL vmlinux 0x9f025a35 regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain
+EXPORT_SYMBOL_GPL vmlinux 0x9f46f984 __inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0x9fbc2fae ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xa012a7b5 crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0xa07c90bd crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0xa0940827 regulator_get_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xa13dd89b wm8994_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xa1662171 __sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0xa16d51a2 scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0xa1d1e7ac dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0xa22cb843 xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0xa27c82db perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0xa2a5c1be usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0xa32fd43e device_create_vargs
+EXPORT_SYMBOL_GPL vmlinux 0xa342f7a0 __fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0xa3af66e0 usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL vmlinux 0xa41fee4f nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0xa47bfdfe __i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0xa483d801 sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0xa5188a39 fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xa525af72 input_ff_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xa57881e1 attribute_container_register
+EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes
+EXPORT_SYMBOL_GPL vmlinux 0xa5d2a590 tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0xa5d4bdc9 bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa63d9cf0 free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xa6e85126 inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0xa6ed9908 power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0xa8036083 ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0xa838be71 drm_class_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll
+EXPORT_SYMBOL_GPL vmlinux 0xa85b94ac crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0xa86484cf ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xa8960ac1 pci_create_slot
+EXPORT_SYMBOL_GPL vmlinux 0xa89d1915 input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa8a55c60 regulator_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa92aa658 unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0xa9946a46 fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xa9fba72f usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0xa9ff4147 debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0xaa3c0f4e usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0xaa89ba3e aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock
+EXPORT_SYMBOL_GPL vmlinux 0xaa9d53e9 inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xab6c06e3 bus_register
+EXPORT_SYMBOL_GPL vmlinux 0xab94c503 __crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xabae100f xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0xabc1c6dd eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0xac11e395 crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0xac794334 usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0xacd9088c dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0xace33d0a scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xacffb806 gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0xad228bd7 crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0xad515a2c xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad85dfd9 user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0xadb23ce0 sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xadc08a70 __blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xaf03c612 vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0xb0386082 ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0xb03b8b86 add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0xb0725c39 transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xb0d11fda usb_create_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xb10ad28e class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xb14ce4cb class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb15518b6 debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0xb1775038 securityfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xb1788376 device_find_child
+EXPORT_SYMBOL_GPL vmlinux 0xb17890a1 usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0xb1868828 spi_write_then_read
+EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb205b4f9 bus_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xb26693c7 devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xb274d3e3 cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0xb2a74076 dm_put
+EXPORT_SYMBOL_GPL vmlinux 0xb2b32389 sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0xb3ad1dac crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xb4229da6 usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xb4526ee5 usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0xb4abe208 wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xb4e6a738 sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0xb4f5c718 sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0xb5054cad raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xb5d6def0 platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0xb5e30da3 hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb612444d snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0xb62e642a unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec
+EXPORT_SYMBOL_GPL vmlinux 0xb6876419 ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xb6c6f56f relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0xb70b87c0 srcu_init_notifier_head
+EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb7679f30 shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0xb7979ef4 rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0xb7e54593 kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0xb7f97295 init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0xb80754ab blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xb8692135 ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0xb8fe3617 bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0xb91f5c2b root_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb954728c spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0xb9b336f9 wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xb9bf5bd4 dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0xb9e0f850 usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xba003743 ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xba073227 generic_detach_inode
+EXPORT_SYMBOL_GPL vmlinux 0xba0cd860 proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xba1eac19 xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0xbaddad05 crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbaeb33c9 blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0xbaf72230 usb_sg_wait
+EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks
+EXPORT_SYMBOL_GPL vmlinux 0xbb16ffe7 real_hard_smp_processor_id
+EXPORT_SYMBOL_GPL vmlinux 0xbb2b29c6 wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0xbbcf1680 dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0xbbf6d6e4 anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0xbc6af739 crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0xbc926b02 adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xbc9c38e4 devres_remove
+EXPORT_SYMBOL_GPL vmlinux 0xbce474d6 skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0xbd3cf63b kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0xbd442578 regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0xbd5148aa rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0xbd6350c9 power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbd9d0e46 gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0xbde2a95f do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbdfc04e3 unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime
+EXPORT_SYMBOL_GPL vmlinux 0xbe3734b5 init_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xbe51e053 register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xbec90eb2 scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0xbf484b00 ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0xbf51e6ba dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0xbf57fcd3 sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0xbf76634c __scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0xbfb59e21 __pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xbfd2f67a usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xc0012088 usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0xc005e677 __class_register
+EXPORT_SYMBOL_GPL vmlinux 0xc03e5641 drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0xc04a304b srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xc05796f8 user_match
+EXPORT_SYMBOL_GPL vmlinux 0xc0662da5 wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xc0946c75 usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time
+EXPORT_SYMBOL_GPL vmlinux 0xc0c6d4f8 unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0xc0e0e447 unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0xc0e28c7c user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc1f12ce2 init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0xc1f2dce3 lookup_create
+EXPORT_SYMBOL_GPL vmlinux 0xc21529f3 crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc24538cc crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xc249ceb3 led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0xc24a57d7 usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0xc2864314 xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0xc2891d01 inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0xc29567f5 register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0xc2d7d487 regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0xc2e51239 queue_work_on
+EXPORT_SYMBOL_GPL vmlinux 0xc2fdffea usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0xc314325d usb_get_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc3595b4b usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0xc36cf539 spi_register_master
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc3b2af51 usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0xc3c53022 led_trigger_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0xc3e4e04b ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0xc3ec3f45 class_dev_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xc3f68f19 regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0xc440de1a crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xc4aeab2b vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0xc4b2bb8a register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0xc4bb9d60 fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0xc51175c9 page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0xc5249ec5 platform_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xc541f5f6 pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0xc5457c5e platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc551cfc0 aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xc55dc4fb unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xc56008b4 da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0xc56b784f fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0xc5703aea wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0xc5747a41 skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0xc5b5ee53 rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xc5f671f4 __srcu_read_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc60a730b klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc693de2c led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL vmlinux 0xc6b0a31e __pci_complete_power_transition
+EXPORT_SYMBOL_GPL vmlinux 0xc6ed84c2 tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0xc6f71180 platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0xc7549a01 ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0xc75515e9 generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0xc75e8765 scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0xc77cde25 led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc78e143a fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0xc8183e23 spi_new_device
+EXPORT_SYMBOL_GPL vmlinux 0xc842724a eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xc87fb57e queue_work
+EXPORT_SYMBOL_GPL vmlinux 0xc8805d66 crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource
+EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist
+EXPORT_SYMBOL_GPL vmlinux 0xc95e5f1b elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc97239be device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xc9ae311b ab8500_read
+EXPORT_SYMBOL_GPL vmlinux 0xc9b449a2 atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xc9db8f75 device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xc9e5d4fc register_dimm_printer
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xc9ee186a find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xc9f7597e regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0xca309d24 tracepoint_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xca86a2ea blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0xca888e41 queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0xcaa0181c sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xcacf8e27 dm_kill_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0xcb860a32 crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xcbd6c6d0 fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc4c75cd ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xcc569a22 platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xcc5ab895 add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0xccc208e3 blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0xccd194de debugfs_create_x64
+EXPORT_SYMBOL_GPL vmlinux 0xccff2525 uart_set_options
+EXPORT_SYMBOL_GPL vmlinux 0xcd011691 crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0xcd02854b usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xcd37ceec __get_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xcd3af979 __dma_request_channel
+EXPORT_SYMBOL_GPL vmlinux 0xcd543c65 usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0xcd8a5905 relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0xcd9b92ae ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0xcdadf4e3 wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xce03f302 of_modalias_node
+EXPORT_SYMBOL_GPL vmlinux 0xce138485 pci_block_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0xce1e0cf8 pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0xce5a2678 __mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0xcefa0bfd rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL vmlinux 0xcf29bf2b crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcfd2293d shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0xcfd9a2c0 des_ekey
+EXPORT_SYMBOL_GPL vmlinux 0xd01dc621 crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0xd0200755 inotify_rm_watch
+EXPORT_SYMBOL_GPL vmlinux 0xd024728b set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL vmlinux 0xd0649f0a tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd142422f use_mm
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd17e4242 fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0xd183866e ab8500_write
+EXPORT_SYMBOL_GPL vmlinux 0xd1b003f1 sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd248b082 dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd285dffa blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xd2933f9f locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0xd2a07ecc crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xd2d10cc6 crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0xd2d9f795 sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xd33c4fca __wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0xd36790a2 debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0xd3797626 dm_device_name
+EXPORT_SYMBOL_GPL vmlinux 0xd3c29914 ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xd413f723 input_class
+EXPORT_SYMBOL_GPL vmlinux 0xd41e835a srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xd432106f screen_glyph
+EXPORT_SYMBOL_GPL vmlinux 0xd495107c tc35892_block_write
+EXPORT_SYMBOL_GPL vmlinux 0xd4a82d7d dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0xd4ae169f apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0xd4bafda9 wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xd4c0df3f relay_close
+EXPORT_SYMBOL_GPL vmlinux 0xd50f9754 fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0xd59308c1 adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xd59d847e nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0xd6305208 usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0xd64b50af inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xd6581b49 blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0xd6dc373d dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout
+EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd77878ae dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd7a84d1d crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xd7dc4484 __module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0xd855652d mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0xd8627f4b usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0xd8726ba7 leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0xd87611e2 shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xd8de3ad5 crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xd8fbb965 get_device
+EXPORT_SYMBOL_GPL vmlinux 0xd9378303 rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xd99ebfcc pci_disable_rom
+EXPORT_SYMBOL_GPL vmlinux 0xd9c8bd15 i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0xd9eef782 usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL vmlinux 0xda22b5cc usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0xda2ea313 rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xda326627 sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0xda39cdc2 add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0xda9e1729 skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0xdab20b08 spi_sync
+EXPORT_SYMBOL_GPL vmlinux 0xdaeb7ec8 usb_hc_died
+EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option
+EXPORT_SYMBOL_GPL vmlinux 0xdafc72cb rtnl_kill_links
+EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdb67f598 usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0xdba09f95 rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xdbae6bb7 vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0xdc160536 sysfs_notify_dirent
+EXPORT_SYMBOL_GPL vmlinux 0xdc1711f1 fsnotify
+EXPORT_SYMBOL_GPL vmlinux 0xdc3afe7b xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0xdc3fffd2 crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0xdca402ac crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0xdcd02fd4 xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0xdcdbc52b blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xdd6d632f class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xdd849728 __audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0xdd879e59 sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xddc18d7e sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xde0fbb35 get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain
+EXPORT_SYMBOL_GPL vmlinux 0xde6173bb fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0xde689a5f disk_map_sector_rcu
+EXPORT_SYMBOL_GPL vmlinux 0xdf7a9e4c sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0xdfcd7df5 led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0xdfd6ac63 register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xdff27243 input_ff_erase
+EXPORT_SYMBOL_GPL vmlinux 0xe001de6d disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name
+EXPORT_SYMBOL_GPL vmlinux 0xe0262fb3 sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0xe03dda91 hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xe08b4bfb handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0xe0b1dc10 get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xe13cb1ce bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0xe1457fde crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0xe156f973 inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0xe17e5ef1 wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0xe1af9653 get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0xe1f030ac crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xe1f1a76d netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0xe20d2695 __atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xe2b9e2b7 vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0xe39ecb49 show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0xe3f03d8f crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xe4303a97 usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0xe43feb17 css_id
+EXPORT_SYMBOL_GPL vmlinux 0xe4a2d560 usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0xe4ddf241 rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0xe4f336fd crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xe5208770 user_describe
+EXPORT_SYMBOL_GPL vmlinux 0xe5616e09 platform_device_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0xe57313f2 wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport
+EXPORT_SYMBOL_GPL vmlinux 0xe636f392 input_ff_event
+EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe738a885 __wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0xe760d280 debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0xe767de8a get_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0xe78ecdbd cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xe793d373 inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xe7cfce7e adp5520_read
+EXPORT_SYMBOL_GPL vmlinux 0xe7f3e121 sysfs_remove_files
+EXPORT_SYMBOL_GPL vmlinux 0xe80c8444 shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xe80e5b06 aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe93f1e1a inotify_init
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe9731c00 rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xe9926d59 css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xe9ab190f xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0xe9c97d7d put_driver
+EXPORT_SYMBOL_GPL vmlinux 0xe9d5b85e bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd
+EXPORT_SYMBOL_GPL vmlinux 0xea1a924e device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0xea828ecc usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0xea968836 platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0xeaae429d regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeaf297ba driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xeb07b4d5 crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0xeb6b47ea kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0xebc7d726 simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del
+EXPORT_SYMBOL_GPL vmlinux 0xec311388 tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0xec504892 ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xec514e47 ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xec6ff39f ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xec9f674b i2c_new_probed_device
+EXPORT_SYMBOL_GPL vmlinux 0xeca481e7 ring_buffer_record_enable
+EXPORT_SYMBOL_GPL vmlinux 0xecac422b inotify_inode_is_dead
+EXPORT_SYMBOL_GPL vmlinux 0xed3d41d2 pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0xee25bb07 crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0xee315eb0 atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xee343b35 rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0xee4dfc5f skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0xee6446bd usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xef2a774d ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xef328927 ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xefe6d8a4 crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0xf05f5e43 crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0xf0b4f6cf pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xf11b7ab4 ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0xf16f265e rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf1978183 device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xf1f16a21 raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xf21afeba disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xf236e255 device_attach
+EXPORT_SYMBOL_GPL vmlinux 0xf2562a25 devres_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xf28d941c fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0xf29272f1 register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xf2c351d5 usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xf2eacc33 power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options
+EXPORT_SYMBOL_GPL vmlinux 0xf32c92ed transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf37914bc __blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xf3b4830b usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf3e2fe7c crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xf4321a4b fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0xf4732712 get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf4f94695 tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0xf52906a1 input_ff_create
+EXPORT_SYMBOL_GPL vmlinux 0xf531a283 page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf5613814 task_current_syscall
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf60020cb spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0xf6460d4f wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf6572d9a bsg_unregister_queue
+EXPORT_SYMBOL_GPL vmlinux 0xf6c45170 scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0xf71be413 pci_bus_max_busnr
+EXPORT_SYMBOL_GPL vmlinux 0xf76a2998 sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0xf7b53d3d platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0xf7df81c8 usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0xf7f55a27 raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0xf7f6f45a relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0xf83e31b9 spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf88b0aac generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0xf894ef0e trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0xf8b4b47a unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0xf8e4a743 __srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xf9552fe2 single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0xf9aa8485 crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xf9d046f0 klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0xf9da360e wm831x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xf9dddaec da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0xf9e98a58 __blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register
+EXPORT_SYMBOL_GPL vmlinux 0xfa576137 wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0xfadb590c platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0xfadba2b9 crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb694a94 dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0xfb8e34cb n_tty_inherit_ops
+EXPORT_SYMBOL_GPL vmlinux 0xfbbdb6f9 __clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfc1d6a6a driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0xfc3341f6 regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0xfc571958 fuse_do_open
+EXPORT_SYMBOL_GPL vmlinux 0xfc882cf5 usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0xfc93c9fe find_module
+EXPORT_SYMBOL_GPL vmlinux 0xfcc2e0ee tasklet_hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xfd2814d4 sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xfd3b07e4 ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xfd3de6c7 pci_find_next_capability
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfe7b3664 da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfecfae80 __trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfeed291a ring_buffer_resize
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0xff6f59b6 setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0xff7d610a devm_kfree
+EXPORT_SYMBOL_GPL vmlinux 0xff8011ec da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffc04543 unregister_dimm_printer
diff --git a/debian.master/abi/2.6.35-2.3/sparc/sparc64-smp b/debian.master/abi/2.6.35-2.3/sparc/sparc64-smp
new file mode 100644
index 00000000000..be96afd36b1
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/sparc/sparc64-smp
@@ -0,0 +1,9166 @@
+EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble
+EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe
+EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle
+EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle
+EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k
+EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks
+EXPORT_SYMBOL drivers/atm/suni 0xe083c74c suni_init
+EXPORT_SYMBOL drivers/block/paride/paride 0x09324730 pi_disconnect
+EXPORT_SYMBOL drivers/block/paride/paride 0x0a1ac6ed pi_write_block
+EXPORT_SYMBOL drivers/block/paride/paride 0x3d80a0a9 pi_write_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0x4b669d0a pi_read_regr
+EXPORT_SYMBOL drivers/block/paride/paride 0x7791e822 pi_schedule_claimed
+EXPORT_SYMBOL drivers/block/paride/paride 0x9f00b53b pi_read_block
+EXPORT_SYMBOL drivers/block/paride/paride 0xa0c86203 pi_init
+EXPORT_SYMBOL drivers/block/paride/paride 0xb378b083 pi_connect
+EXPORT_SYMBOL drivers/block/paride/paride 0xb7369980 paride_unregister
+EXPORT_SYMBOL drivers/block/paride/paride 0xb9c82252 paride_register
+EXPORT_SYMBOL drivers/block/paride/paride 0xbf798c1a pi_release
+EXPORT_SYMBOL drivers/block/paride/paride 0xde21088b pi_do_claimed
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x0de0721d cdrom_mode_select
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x2384b134 cdrom_release
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x344adbd5 init_cdrom_command
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x5784f73e cdrom_mode_sense
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x685ce835 register_cdrom
+EXPORT_SYMBOL drivers/cdrom/cdrom 0x81c0877b unregister_cdrom
+EXPORT_SYMBOL drivers/cdrom/cdrom 0xa1ac968e cdrom_open
+EXPORT_SYMBOL drivers/cdrom/cdrom 0xa584fcd2 cdrom_media_changed
+EXPORT_SYMBOL drivers/cdrom/cdrom 0xc0e52135 cdrom_number_of_slots
+EXPORT_SYMBOL drivers/cdrom/cdrom 0xcbd14ac6 cdrom_get_media_event
+EXPORT_SYMBOL drivers/cdrom/cdrom 0xddf67b67 cdrom_get_last_written
+EXPORT_SYMBOL drivers/cdrom/cdrom 0xed2c7dc3 cdrom_ioctl
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x042dde7a ipmi_request_settime
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x0ede5bdc ipmi_unregister_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1c9f37d4 ipmi_destroy_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x38c7ee53 ipmi_set_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x47d331bd ipmi_get_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x48297956 ipmi_smi_add_proc_entry
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x567c2168 ipmi_get_my_address
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6054e1a4 ipmi_register_for_cmd
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x6bdd93f6 ipmi_get_version
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x71f03a26 ipmi_set_maintenance_mode
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x74542402 ipmi_register_smi
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x783a8c4e ipmi_request_supply_msgs
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x7e017906 ipmi_smi_watcher_unregister
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x950df103 ipmi_get_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9c011628 ipmi_set_gets_events
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xad990b2a ipmi_set_my_LUN
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc05d14a1 ipmi_smi_watcher_register
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc7ceeebf ipmi_smi_msg_received
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xdabe18e6 ipmi_smi_watchdog_pretimeout
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe039028e ipmi_poll_interface
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe56b88eb ipmi_free_recv_msg
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe9c94368 ipmi_create_user
+EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf53eaad7 ipmi_unregister_smi
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d90acce drm_kms_helper_poll_enable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2e5d2be0 drm_fb_helper_set_par
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x36cee533 drm_helper_connector_dpms
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x668cb989 drm_helper_encoder_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x704fd32d drm_helper_disable_unused_functions
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x71490296 drm_fb_helper_initial_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x77dec99a drm_kms_helper_poll_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7ab20eee drm_helper_resume_force_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x816b7b55 drm_fb_helper_fini
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84cc9af7 drm_fb_helper_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x93ecdfd8 drm_fb_helper_blank
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9b92405d drm_fb_helper_fill_fix
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9d251144 drm_fb_helper_panic
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9fff4279 drm_fb_helper_hotplug_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa5a969ea drm_fb_helper_check_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7a5f076 drm_fb_helper_single_fb_probe
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa919f939 i2c_dp_aux_add_bus
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa9276553 drm_fb_helper_setcmap
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa93655fd drm_kms_helper_poll_init
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb5683831 drm_helper_crtc_in_use
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbc2c0fbd drm_helper_probe_single_connector_modes
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc469c244 drm_fb_helper_restore
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xda07aecf drm_helper_hpd_irq_event
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdb1650e9 drm_crtc_helper_set_mode
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe6b90c2f drm_fb_helper_single_add_all_connectors
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xef446bcd drm_helper_mode_fill_fb_struct
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf880070b drm_kms_helper_poll_disable
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfa3c2b9d drm_crtc_helper_set_config
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfa9c8f7d drm_fb_helper_fill_var
+EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfb12a09a drm_fb_helper_pan_display
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0393e979 ttm_bo_wait
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x06a2e1fa ttm_read_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x10dc7e9b ttm_bo_swapout_all
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x159a3a12 ttm_bo_unlock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c1d4fca ttm_tt_set_placement_caching
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1c29fc28 ttm_bo_evict_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2354c379 ttm_bo_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x247cec3f ttm_bo_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x24fa6b64 ttm_suspend_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x25bf71c7 ttm_bo_move_memcpy
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x29fcfbf1 ttm_bo_wait_cpu
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x32a2c194 ttm_ref_object_base_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x365feb2e ttm_eu_reserve_buffers
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x37467023 ttm_fbdev_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44409a13 ttm_global_item_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x44b8aa73 ttm_suspend_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x47fc25ec ttm_bo_reserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4803c9e8 ttm_ref_object_add
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x516a5196 ttm_page_alloc_debugfs
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x536e201f ttm_bo_lock_delayed_workqueue
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x564566db ttm_bo_init_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5ca5cb47 ttm_global_item_ref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x61bdb34f ttm_eu_fence_buffer_objects
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x63e185da ttm_vt_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x72b95492 ttm_bo_synccpu_write_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x736109cc ttm_base_object_lookup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x761a1878 ttm_object_file_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78de3729 ttm_object_device_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7bccc16c ttm_bo_kunmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7bcf6c20 ttm_mem_global_free
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7cc25954 ttm_io_prot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x820018fc ttm_bo_move_ttm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8477e6f0 ttm_write_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x86a4066d ttm_eu_backoff_reservation
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8790228c ttm_tt_bind
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8bf82d70 ttm_bo_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8ced1bbb ttm_bo_unreserve
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8e7730fc ttm_lock_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x90a0b3d6 ttm_bo_synccpu_write_grab
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa258546a ttm_write_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa4757ac1 ttm_vt_unlock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xac0e50d1 ttm_round_pot
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb3f66288 ttm_object_file_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb989edb5 ttm_mem_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbcf7e900 ttm_read_lock
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc38a45de ttm_tt_populate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc64022a6 ttm_bo_global_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc64337a5 ttm_mem_global_alloc
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcaaf1418 ttm_bo_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcfe94841 ttm_bo_unmap_virtual
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd47a6ea5 ttm_bo_mmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9dced1d ttm_bo_kmap
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdaaf0414 ttm_base_object_unref
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdf2331d2 ttm_bo_clean_mm
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe5f55fbe ttm_bo_validate
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe981030f ttm_bo_move_accel_cleanup
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf098d2f8 ttm_bo_mem_space
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf48ab49f ttm_base_object_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf4be4dfe ttm_object_device_init
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf8f8f9ca ttm_bo_wait_unreserved
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfcce372b ttm_bo_global_release
+EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfe33fa53 ttm_mem_global_release
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg
+EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xc5a33279 i2c_pca_add_bus
+EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xd32701ea i2c_pca_add_numbered_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0098e4b4 hpsb_protocol_class
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0be1e086 hpsb_make_phypacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0c6da941 csr1212_release_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0d385d7d hpsb_get_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x0e5a659c csr1212_new_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x10a69bf7 hpsb_selfid_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x13b4a268 csr1212_attach_keyval_to_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x18d2126f hpsb_update_config_rom
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x193d4b3e csr1212_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x19f1f97b csr1212_parse_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1ad060f6 hpsb_update_config_rom_image
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x1f3eabb7 hpsb_make_writepacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x219cbabe dma_region_offset_to_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x236b6aa9 hpsb_node_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x24afe4e5 hpsb_iso_recv_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x281def9f hpsb_iso_stop
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x284fab30 hpsb_set_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x29da56c1 __hpsb_register_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x2d6003b5 hpsb_node_fill_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x358a1b3a hpsb_make_lock64packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x370d3e85 hpsb_iso_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3d4e974a hpsb_iso_recv_flush
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x3e37dc57 hpsb_alloc_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x41a555a3 hpsb_iso_n_ready
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4270e6b6 hpsb_iso_recv_release_packets
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x4281de6c hpsb_make_lockpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x518d4100 csr1212_get_keyval
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5240209a hpsb_allocate_and_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x537bcbf7 hpsb_iso_xmit_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x56e8a1f2 hpsb_free_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x57609afc hpsb_set_hostinfo_key
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x586bc222 hpsb_resume_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5b31ede8 hpsb_iso_xmit_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5ba90edc hpsb_packet_sent
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x5e6bd768 hpsb_packet_success
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x61c43084 hpsb_unregister_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x65100846 hpsb_iso_recv_set_channel_mask
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6625c247 hpsb_get_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x672ad148 dma_region_sync_for_device
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x69b13e8e hpsb_make_readpacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x69d99676 hpsb_iso_recv_listen_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6a9320bc hpsb_read_cycle_timer
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x6c3f7622 hpsb_register_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x75a7b70e hpsb_add_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x76bc1a5c dma_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x78026433 hpsb_make_streampacket
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x78d14cd2 hpsb_send_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8267661e hpsb_selfid_complete
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x85f21541 hpsb_iso_xmit_sync
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8879f8f0 dma_region_sync_for_cpu
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8bc172fa hpsb_create_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8cfbbbf0 hpsb_alloc_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x8ec2b312 dma_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x979b3052 dma_prog_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0x9e7dc5b0 dma_region_mmap
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xa924dac6 dma_prog_region_alloc
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xaed53ebe hpsb_iso_wake
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xafc790db hpsb_set_packet_complete_task
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb14c60f6 hpsb_unregister_protocol
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb5c1d3e5 hpsb_read
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb6fa19a7 hpsb_remove_host
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb7e91d02 hpsb_reset_bus
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xb8957682 hpsb_iso_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xba91e086 hpsb_iso_xmit_queue_packet
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbba70620 dma_prog_region_free
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xbf562372 hpsb_register_addrspace
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc3003627 hpsb_bus_reset
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc30e4942 hpsb_lock
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc3edfca1 hpsb_unregister_highlevel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc565b3d8 hpsb_iso_shutdown
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc646de5b hpsb_destroy_hostinfo
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xc669a4d3 csr1212_detach_keyval_from_directory
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd248e612 hpsb_get_hostinfo_bykey
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xd5f2ec66 hpsb_iso_recv_start
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xdfc2052d hpsb_iso_recv_unlisten_channel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe56b32ac hpsb_write
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xe8edfd8d hpsb_free_tlabel
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xea4152ff dma_region_init
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xebbba9a6 hpsb_packet_received
+EXPORT_SYMBOL drivers/ieee1394/ieee1394 0xfba57f51 hpsb_speedto_str
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x18812708 ohci1394_stop_context
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x4977a4aa ohci1394_unregister_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0x7a674f5b ohci1394_register_iso_tasklet
+EXPORT_SYMBOL drivers/ieee1394/ohci1394 0xb37ab086 ohci1394_init_iso_tasklet
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x03e3e115 rdma_copy_addr
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x26e366fc rdma_translate_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x77133cbe rdma_resolve_ip
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc1a9d4ea rdma_addr_cancel
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd2e8ee33 rdma_addr_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xfee5d864 rdma_addr_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0573a056 ib_send_cm_rej
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3a26b6b1 ib_send_cm_rtu
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x3a4d7724 ib_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4340d6aa ib_send_cm_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x44519547 ib_cm_notify
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4f42d547 ib_send_cm_sidr_rep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5bb2c95b ib_send_cm_dreq
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6a8db4bd ib_send_cm_drep
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6e7e6f87 ib_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7020fdfc ib_send_cm_mra
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x90ae02c3 ib_send_cm_lap
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x942f9751 ib_send_cm_sidr_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd8538d48 ib_send_cm_apr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd9bca9a6 ib_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdc062d87 ib_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xde807706 ib_send_cm_req
+EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf7c103f1 cm_class
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03b2233f ib_modify_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06830b9a ib_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1492afa1 ib_dispatch_event
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x19fa12ed ib_create_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1abecc4c ib_dealloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2037d4c4 ib_get_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x23f1960d ib_reg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x273da73a ib_query_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x29b02a4c ib_query_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c9d0846 ib_fmr_pool_unmap
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2eeff9dd ib_attach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3209c1cb ib_fmr_pool_map_phys
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x33b1dcd6 ib_ud_header_init
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3460e6c2 ib_get_cached_lmc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x35a8fa5a ib_alloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x392646d6 ib_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x39a5da72 ib_get_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3f7567fd ib_rate_to_mult
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x40f7912e ib_alloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4492e470 ib_query_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48a9141b ib_create_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4bb1c8af ib_query_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4bde84e1 ib_destroy_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4bf1794f ib_get_dma_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5292ab26 ib_get_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x580d14b7 ib_umem_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5acc3636 ib_alloc_fmr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5cf4ace9 ib_unregister_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6c22a5ae ib_modify_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x721cb4af ib_modify_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x74de6344 ib_modify_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x769327bb ib_alloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7ae1f898 ib_query_port
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7da13a01 ib_create_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8470420b ib_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8640eaeb ib_modify_qp_is_ok
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x87b614d8 ib_ud_header_pack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8cebdecd ib_register_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x936cc3af ib_umem_page_count
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x95253327 ib_create_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d804fa1 mult_to_ib_rate
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9eac296d ib_query_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa05556b5 ib_free_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa53b18f6 ib_destroy_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa5b4e058 ib_query_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xad87b589 ib_find_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb381fed0 ib_modify_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba28bac4 ib_create_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbd736abe ib_unregister_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc07c475e ib_rereg_phys_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2db6260 ib_register_event_handler
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc30bf765 ib_dealloc_mw
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8216923 ib_destroy_ah
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8c24e85 ib_dereg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc92b1388 ib_resize_cq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc965d9d3 ib_dealloc_pd
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcf750b9c ib_detach_mcast
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd53f50c4 ib_alloc_fast_reg_mr
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd5c58da6 ib_flush_fmr_pool
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xda21f8aa ib_alloc_fast_reg_page_list
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xddcfa622 ib_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf571bae ib_modify_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7910359 ib_find_cached_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe8482f86 ib_find_cached_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe9f02d18 ib_init_ah_from_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xea9b3ccf ib_set_client_data
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xebb5ef6c ib_find_gid
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xee592845 ib_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xeeb43462 ib_umem_release
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xef552d3f ib_destroy_srq
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf36498b9 ib_ud_header_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf96fc9de ib_unpack
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc490f57 ib_dealloc_device
+EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xff93e538 ib_query_pkey
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x0ae2ab9f ib_register_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2172aa22 ib_create_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x2290e595 ib_get_rmpp_segment
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x559ae083 ib_post_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ec88ebf ib_modify_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6ef787ed ib_response_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x745e55a3 ib_register_mad_snoop
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7913bcef ib_free_send_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x8ef45c78 ib_free_recv_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xab5bec9f ib_unregister_mad_agent
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xaeb7ea94 ib_cancel_mad
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xb5a5fdf5 ib_process_mad_wc
+EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfd7328d2 ib_redirect_mad_qp
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x1f3a1211 ib_init_ah_from_mcmember
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x1fc31464 ib_sa_get_mcmember_rec
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x56514d45 ib_sa_unregister_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9224f547 ib_sa_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9f654fee ib_sa_register_client
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc00aeb62 ib_sa_service_rec_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xd4427039 ib_sa_path_rec_get
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe9dffbec ib_sa_cancel_query
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xee2c18d5 ib_init_ah_from_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user
+EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x19061d45 iw_cm_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6b2286df iw_cm_reject
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7f1b88b1 iw_cm_accept
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x914928c7 iw_cm_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xb5b20b23 iw_destroy_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xd15e6ed1 iw_cm_listen
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xe2ea778a iw_cm_connect
+EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xfbc74212 iw_create_cm_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1d591484 rdma_resolve_route
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3011bd22 rdma_accept
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3a31bf30 rdma_init_qp_attr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5409840a rdma_leave_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x55fa4698 rdma_listen
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x65f6dad8 rdma_create_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6d2d2642 rdma_set_service_type
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7116e898 rdma_reject
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7658d0e0 rdma_disconnect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8e7235de rdma_resolve_addr
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9f6ae3ba rdma_destroy_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xaa187d89 rdma_destroy_id
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xab75841c rdma_set_ib_paths
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb06d10da rdma_join_multicast
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd15e276c rdma_notify
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xdb07b3e3 rdma_connect
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xddbe146f rdma_create_qp
+EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xed05e46d rdma_bind_addr
+EXPORT_SYMBOL drivers/input/input-polldev 0x8ed66613 input_free_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x9b15eb0a input_register_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0x9df2d388 input_allocate_polled_device
+EXPORT_SYMBOL drivers/input/input-polldev 0xba9a14f1 input_unregister_polled_device
+EXPORT_SYMBOL drivers/input/misc/ad714x 0x2a9d5811 ad714x_remove
+EXPORT_SYMBOL drivers/input/misc/ad714x 0xd1150fac ad714x_probe
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x289dee30 sparse_keymap_entry_from_keycode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x54b3ee87 sparse_keymap_entry_from_scancode
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x60379df1 sparse_keymap_report_event
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x79db1ab2 sparse_keymap_report_entry
+EXPORT_SYMBOL drivers/input/sparse-keymap 0x7a54b856 sparse_keymap_setup
+EXPORT_SYMBOL drivers/input/sparse-keymap 0xd90c7d32 sparse_keymap_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x28d76744 capi20_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47dbfa0a capi_message2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x49b9ace2 detach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x55c8a48e capi20_put_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x788d398c capi_cmsg2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7a33596c capi20_get_serial
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7dbe99f3 attach_capi_ctr
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7e6f1307 capi20_get_manufacturer
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x81f3bcb0 capi_ctr_ready
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x82dae4e5 capi_ctr_down
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x86078cc6 capi_ctr_suspend_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x951003da capi_ctr_handle_message
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9f823278 register_capi_driver
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xaa165d27 capilib_release_appl
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb19fda8d capi_cmd2str
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xb60e5e5f capi_cmsg_header
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd06e5328 capi20_register
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe50b7ae0 capi_ctr_resume_output
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe9f62f29 cdebbuf_free
+EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x063ce28f mISDNisac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x8e10af70 mISDNipac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x9059f1d4 mISDNipac_irq
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xdd1b04b5 mISDNisac_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x8365459f mISDNisar_init
+EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xf42e70e1 mISDNisar_irq
+EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x57716c82 register_isdn
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x3b71e4fc isdnhdlc_decode
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x59cc8a7e isdnhdlc_out_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0x8ee38862 isdnhdlc_rcv_init
+EXPORT_SYMBOL drivers/isdn/i4l/isdnhdlc 0xfd9d4c09 isdnhdlc_encode
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x02e528a2 mISDN_FsmRestartTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0938cf75 mISDN_unregister_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x09d03201 mISDN_freebchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0fcc5858 create_l1
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x210207e5 mISDN_initdchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x223128cb recv_Bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2b6385aa mISDN_FsmDelTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2cbd9815 mISDN_register_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x37eee51a mISDN_FsmAddTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3d798841 mISDN_register_device
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3ef163b9 mISDN_FsmInitTimer
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x41e73c5d recv_Bchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x621a8b31 bchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6387921e recv_Echannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x656c1ffa confirm_Bsend
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7045b1ce dchannel_senddata
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x739fcc4b recv_Dchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x78e6783a recv_Dchannel_skb
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x81698816 mISDN_freedchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8ee1bf7b get_next_bframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9fddb0ad mISDN_clock_update
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa74b63e1 l1_event
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb26ec991 mISDN_unregister_Bprotocol
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xbf021652 get_next_dframe
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc5c8b054 mISDN_clear_bchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe5b4d560 mISDN_initbchannel
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew
+EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfdbe39ca queue_ch_frame
+EXPORT_SYMBOL drivers/md/dm-log 0x2ee099cb dm_dirty_log_create
+EXPORT_SYMBOL drivers/md/dm-log 0x3684bfe9 dm_dirty_log_destroy
+EXPORT_SYMBOL drivers/md/dm-log 0x68f0b12e dm_dirty_log_type_unregister
+EXPORT_SYMBOL drivers/md/dm-log 0xab549077 dm_dirty_log_type_register
+EXPORT_SYMBOL drivers/md/dm-snapshot 0x6993a45d dm_exception_store_destroy
+EXPORT_SYMBOL drivers/md/dm-snapshot 0xb0c47422 dm_exception_store_type_register
+EXPORT_SYMBOL drivers/md/dm-snapshot 0xb104e442 dm_snap_cow
+EXPORT_SYMBOL drivers/md/dm-snapshot 0xc866a453 dm_exception_store_create
+EXPORT_SYMBOL drivers/md/dm-snapshot 0xf82deb4f dm_exception_store_type_unregister
+EXPORT_SYMBOL drivers/md/md-mod 0x04b46ee5 bitmap_cond_end_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x0e9ca42b md_write_end
+EXPORT_SYMBOL drivers/md/md-mod 0x188f9ace md_integrity_add_rdev
+EXPORT_SYMBOL drivers/md/md-mod 0x18c7e7f3 md_barrier_request
+EXPORT_SYMBOL drivers/md/md-mod 0x212f9180 md_check_recovery
+EXPORT_SYMBOL drivers/md/md-mod 0x229fa8cb md_wakeup_thread
+EXPORT_SYMBOL drivers/md/md-mod 0x368d7d17 unregister_md_personality
+EXPORT_SYMBOL drivers/md/md-mod 0x3fead217 md_error
+EXPORT_SYMBOL drivers/md/md-mod 0x455faba9 mddev_congested
+EXPORT_SYMBOL drivers/md/md-mod 0x4871cca3 bitmap_unplug
+EXPORT_SYMBOL drivers/md/md-mod 0x6c983abb register_md_personality
+EXPORT_SYMBOL drivers/md/md-mod 0x6d830afa md_set_array_sectors
+EXPORT_SYMBOL drivers/md/md-mod 0x7c27b373 md_done_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x7c503f6e md_wait_for_blocked_rdev
+EXPORT_SYMBOL drivers/md/md-mod 0x9326b4bb bitmap_start_sync
+EXPORT_SYMBOL drivers/md/md-mod 0x9959626a md_register_thread
+EXPORT_SYMBOL drivers/md/md-mod 0xa0b38f04 md_integrity_register
+EXPORT_SYMBOL drivers/md/md-mod 0xa9b3d9b4 md_write_start
+EXPORT_SYMBOL drivers/md/md-mod 0xac4d1540 bitmap_end_sync
+EXPORT_SYMBOL drivers/md/md-mod 0xafdfc90d bitmap_endwrite
+EXPORT_SYMBOL drivers/md/md-mod 0xbb5770a9 md_check_no_bitmap
+EXPORT_SYMBOL drivers/md/md-mod 0xc69a69f9 md_unregister_thread
+EXPORT_SYMBOL drivers/md/md-mod 0xd32920dc bitmap_startwrite
+EXPORT_SYMBOL drivers/md/md-mod 0xd9a18ce9 bitmap_close_sync
+EXPORT_SYMBOL drivers/md/raid6_pq 0x0bd662f6 raid6_gfmul
+EXPORT_SYMBOL drivers/md/raid6_pq 0x15fe0cd3 raid6_gfexp
+EXPORT_SYMBOL drivers/md/raid6_pq 0x5ba93f9d raid6_gfinv
+EXPORT_SYMBOL drivers/md/raid6_pq 0x7b85d712 raid6_empty_zero_page
+EXPORT_SYMBOL drivers/md/raid6_pq 0xce45a6f1 raid6_gfexi
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x15ccd384 ir_raw_handler_register
+EXPORT_SYMBOL drivers/media/IR/ir-core 0x3f887d41 ir_raw_handler_unregister
+EXPORT_SYMBOL drivers/media/common/tuners/mc44s803 0x6e51e419 mc44s803_attach
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0x0cb4b189 tuners
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-types 0xc2821775 tuner_count
+EXPORT_SYMBOL drivers/media/common/tuners/tuner-xc2028 0x6ab812de xc2028_attach
+EXPORT_SYMBOL drivers/media/common/tuners/xc5000 0x31e289be xc5000_attach
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xb862f4f9 cx231xx_unregister_extension
+EXPORT_SYMBOL drivers/media/video/cx231xx/cx231xx 0xf5f39e8b cx231xx_register_extension
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x155650f3 cx2341x_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x1ca0c084 cx2341x_log_status
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x2f25eee2 cx2341x_update
+EXPORT_SYMBOL drivers/media/video/cx2341x 0x5b88faf6 cx2341x_ext_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf76ce95 cx2341x_fill_defaults
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls
+EXPORT_SYMBOL drivers/media/video/cx2341x 0xe2c2b5eb cx2341x_ctrl_query
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x202fb4d3 gspca_disconnect
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x31441bfb gspca_auto_gain_n_exposure
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x5aa01f3d gspca_frame_add
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x75e45eea gspca_get_i_frame
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x863440a8 gspca_dev_probe
+EXPORT_SYMBOL drivers/media/video/gspca/gspca_main 0x9670af2c gspca_debug
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x04e83446 saa7134_tuner_callback
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x09227eeb saa7134_pgtable_free
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x09d32d8d saa7134_ts_unregister
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x1211df5d saa7134_devlist
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x14dfecc6 saa7134_boards
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x16ba039c saa7134_pgtable_alloc
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x2892d442 saa7134_dmasound_exit
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x3bd5b712 saa7134_set_gpio
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x489028b4 saa7134_ts_register
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7021f84a saa7134_tvaudio_setmute
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7b4fe4d0 saa7134_dmasound_init
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x7df72010 saa7134_pgtable_build
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0x95cdbf61 saa_dsp_writel
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xc16930a6 saa7134_devlist_lock
+EXPORT_SYMBOL drivers/media/video/saa7134/saa7134 0xdf97d9dc saa7134_set_dmabits
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x2b08a491 soc_camera_host_unregister
+EXPORT_SYMBOL drivers/media/video/soc_camera 0x9703b56c soc_camera_host_register
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xbb5928e0 soc_camera_apply_sensor_flags
+EXPORT_SYMBOL drivers/media/video/soc_camera 0xf34cce47 soc_camera_xlate_by_fourcc
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0x3d701041 soc_mbus_bytes_per_line
+EXPORT_SYMBOL drivers/media/video/soc_mediabus 0xa427fe23 soc_mbus_get_fmtdesc
+EXPORT_SYMBOL drivers/media/video/tveeprom 0x43f09f73 tveeprom_read
+EXPORT_SYMBOL drivers/media/video/tveeprom 0xeed2b339 tveeprom_hauppauge_analog
+EXPORT_SYMBOL drivers/media/video/v4l1-compat 0xefadcc17 v4l_compat_translate_ioctl
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x03165a85 v4l2_ctrl_get_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x0dfb5e57 v4l2_prio_max
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x17ae9cbb v4l2_prio_open
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x1e326b97 v4l2_ctrl_query_fill
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x33da06b0 v4l2_chip_match_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x37943aef v4l2_prio_close
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x42c8e001 v4l2_ctrl_next
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x495426ee v4l2_ctrl_get_name
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x4ed5e0d7 v4l2_chip_match_host
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x50766d69 v4l2_ctrl_query_menu_valid_items
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x8e8a23ce v4l2_chip_ident_i2c_client
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0x9eb43ee2 v4l2_ctrl_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb2d1e17e v4l2_prio_change
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xb77b0159 v4l2_prio_init
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xc299f08f v4l2_prio_check
+EXPORT_SYMBOL drivers/media/video/v4l2-common 0xd9ee1e3f v4l2_ctrl_query_menu
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0x6685eb58 v4l2_m2m_job_finish
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xb5d2d99d v4l2_m2m_get_vq
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xcc5e1399 v4l2_m2m_get_curr_priv
+EXPORT_SYMBOL drivers/media/video/v4l2-mem2mem 0xdd634077 v4l2_m2m_mmap
+EXPORT_SYMBOL drivers/media/video/videodev 0x0614dd5a v4l2_video_std_frame_period
+EXPORT_SYMBOL drivers/media/video/videodev 0x123959a1 v4l2_type_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x3adbd595 v4l2_field_names
+EXPORT_SYMBOL drivers/media/video/videodev 0x5ebefe4b v4l_printk_ioctl
+EXPORT_SYMBOL drivers/media/video/videodev 0x5fb724ce video_device_release
+EXPORT_SYMBOL drivers/media/video/videodev 0x7673a646 video_ioctl2
+EXPORT_SYMBOL drivers/media/video/videodev 0x7e3e9dcf video_unregister_device
+EXPORT_SYMBOL drivers/media/video/videodev 0xc9399662 video_usercopy
+EXPORT_SYMBOL drivers/media/video/videodev 0xcb29fb0e video_devdata
+EXPORT_SYMBOL drivers/media/video/videodev 0xd4150bb9 video_device_alloc
+EXPORT_SYMBOL drivers/media/video/videodev 0xdade9afb video_register_device_no_warn
+EXPORT_SYMBOL drivers/media/video/videodev 0xe2b92059 v4l2_video_std_construct
+EXPORT_SYMBOL drivers/media/video/videodev 0xf1b58a94 video_register_device
+EXPORT_SYMBOL drivers/media/video/videodev 0xf3251e7b v4l2_norm_to_name
+EXPORT_SYMBOL drivers/media/video/videodev 0xf5a11936 video_device_release_empty
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1580a639 mpt_put_msg_frame_hi_pri
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x16724430 mptbase_sas_persist_operation
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x20de303a mpt_free_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x23178ae5 mpt_raid_phys_disk_pg0
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x52621a0b mpt_print_ioc_summary
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5cb35e41 mpt_raid_phys_disk_get_num_paths
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x68c85d8d mpt_alloc_fw_memory
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6f7e873e mpt_Soft_Hard_ResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x71d39436 mpt_send_handshake_request
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x78a75c2c mpt_config
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7a3c3c44 mpt_clear_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7b688fe5 mpt_put_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x85796af0 mpt_reset_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8b5e7ec5 mpt_HardResetHandler
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa22216a5 mpt_get_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa3e46dfd mpt_GetIocState
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa446ef3f mpt_findImVolumes
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xae03c306 mpt_verify_adapter
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbb875d3f mpt_event_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd38cba6b mpt_free_msg_frame
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd5e43f63 mpt_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xda49ef0a mpt_attach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd5d5f2d mpt_detach
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe022db59 mpt_set_taskmgmt_in_progress_flag
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe4b32b50 mpt_device_driver_register
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xed95eabf mpt_halt_firmware
+EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfa135a42 mpt_raid_phys_disk_pg1
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x01a7835d mptscsih_raid_id_to_num
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0b5a5c14 mptscsih_dev_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0ffc50b0 mptscsih_ioc_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x16b461ac mptscsih_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x23391491 mptscsih_get_scsi_lookup
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2c23e966 mptscsih_change_queue_depth
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2e4f9756 mptscsih_bus_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3b5608d2 mptscsih_io_done
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x49f8ef33 mptscsih_abort
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5374551d mptscsih_IssueTaskMgmt
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x60712a7a mptscsih_qcmd
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x680aee2f mptscsih_slave_destroy
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7519c232 mptscsih_proc_info
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x80800e93 mptscsih_event_process
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8351c8e6 mptscsih_is_phys_disk
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8b99afa0 mptscsih_scandv_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8dfc58dd mptscsih_bios_param
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x98bff492 mptscsih_host_attrs
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x997ef945 mptscsih_remove
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc223976f mptscsih_shutdown
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc8d6e286 mptscsih_taskmgmt_complete
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd568e0ce mptscsih_host_reset
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xebc67af4 mptscsih_taskmgmt_response_code
+EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfeebc6d1 mptscsih_slave_configure
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1202c936 i2o_device_claim_release
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1a48536e i2o_cntxt_list_add
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1c553586 i2o_driver_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x215f9302 i2o_driver_notify_controller_remove_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2ad48417 i2o_msg_get_wait
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2c900a1d i2o_driver_notify_controller_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2ebbda19 i2o_driver_unregister
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4ccc0c64 i2o_parm_issue
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x503f36ee i2o_cntxt_list_get_ptr
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x51d9d313 i2o_msg_post_wait_mem
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x654b0b57 i2o_event_register
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x68dd11fd i2o_exec_lct_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8890b1bc i2o_iop_find_device
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x92e6c320 i2o_find_iop
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9de29d71 i2o_cntxt_list_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xadf4b5b0 i2o_driver_notify_device_add_all
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc529387f i2o_device_claim
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc538fe87 i2o_parm_table_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc84aa12e i2o_status_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd24be15e i2o_parm_field_get
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd2e39892 i2o_cntxt_list_remove
+EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdd210216 i2o_driver_notify_device_remove_all
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x24b8c85b pasic3_write_register
+EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x74d7fdcc pasic3_read_register
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x1dca20cc mc13783_reg_rmw
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x2bb679a8 mc13783_irq_free
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x433161ec mc13783_reg_write
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x483b33b4 mc13783_irq_unmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x4c2a7db4 mc13783_irq_request_nounmask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0x853ac33a mc13783_unlock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xb067b422 mc13783_irq_mask
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xb6e58448 mc13783_reg_read
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xc7d855ab mc13783_lock
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xcf69ff20 mc13783_irq_request
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xd82e3e5f mc13783_irq_status
+EXPORT_SYMBOL drivers/mfd/mc13783-core 0xe37a0c0d mc13783_irq_ack
+EXPORT_SYMBOL drivers/mfd/tps65010 0x02d4ad0f tps65013_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0x0c6ad2cf tps65010_config_vdcdc2
+EXPORT_SYMBOL drivers/mfd/tps65010 0x28485130 tps65010_config_vregs1
+EXPORT_SYMBOL drivers/mfd/tps65010 0x33739de7 tps65010_set_vib
+EXPORT_SYMBOL drivers/mfd/tps65010 0x9fd44c69 tps65010_set_led
+EXPORT_SYMBOL drivers/mfd/tps65010 0xb14080cc tps65010_set_low_pwr
+EXPORT_SYMBOL drivers/mfd/tps65010 0xd5bb106d tps65010_set_vbus_draw
+EXPORT_SYMBOL drivers/mfd/tps65010 0xe99b3f36 tps65010_set_gpio_out_value
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0x05797027 ad_dpot_remove
+EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xf6434ab9 ad_dpot_probe
+EXPORT_SYMBOL drivers/misc/c2port/core 0x7386fe6d c2port_device_register
+EXPORT_SYMBOL drivers/misc/c2port/core 0x827b901b c2port_device_unregister
+EXPORT_SYMBOL drivers/misc/ioc4 0x6a404f9a ioc4_unregister_submodule
+EXPORT_SYMBOL drivers/misc/ioc4 0x76bdeb56 ioc4_register_submodule
+EXPORT_SYMBOL drivers/misc/tifm_core 0x0e77065d tifm_free_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x1b4147dc tifm_remove_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x1fc4c3b0 tifm_has_ms_pif
+EXPORT_SYMBOL drivers/misc/tifm_core 0x32feeed3 tifm_alloc_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0x6af3ab2c tifm_unregister_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0x7a66c8e2 tifm_alloc_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0x9d616873 tifm_map_sg
+EXPORT_SYMBOL drivers/misc/tifm_core 0xa31ca690 tifm_free_device
+EXPORT_SYMBOL drivers/misc/tifm_core 0xa71f1d54 tifm_add_adapter
+EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work
+EXPORT_SYMBOL drivers/misc/tifm_core 0xb0a3bcf6 tifm_register_driver
+EXPORT_SYMBOL drivers/misc/tifm_core 0xda709719 tifm_eject
+EXPORT_SYMBOL drivers/misc/tifm_core 0xf3ebab9c tifm_unmap_sg
+EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x8c3a5b52 mmc_cleanup_queue
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x0ec096f7 mmc_wait_for_cmd
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x13ffb6c1 mmc_detect_change
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x18321e59 mmc_free_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x184b82fb mmc_vddrange_to_ocrmask
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x1b351286 mmc_alloc_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x1cbca50d mmc_power_restore_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x21939cda mmc_host_lazy_disable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x23892c39 mmc_wait_for_app_cmd
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x30d8f239 mmc_host_enable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x3f5180ff mmc_register_driver
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x436aebb3 mmc_set_data_timeout
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x56df5a59 mmc_regulator_set_ocr
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x69d80024 mmc_card_can_sleep
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x6db5f110 mmc_request_done
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x84fc34ca mmc_power_save_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0x921c8638 mmc_card_sleep
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa18e2acf mmc_unregister_driver
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa20dcc14 mmc_release_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xa4d99205 mmc_wait_for_req
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xacb91d3c __mmc_claim_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xb65a2552 mmc_card_awake
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xbc705897 mmc_host_disable
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc028b888 mmc_align_data_size
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xc5d7436a mmc_add_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xcea93a47 mmc_remove_host
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xf494f618 mmc_regulator_get_ocrmask
+EXPORT_SYMBOL drivers/mmc/core/mmc_core 0xfdcbdb89 mmc_try_claim_host
+EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x564dba0c mmc_spi_get_pdata
+EXPORT_SYMBOL drivers/mmc/host/of_mmc_spi 0x8dbc7b12 mmc_spi_put_pdata
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x86caf68e cfi_fixup
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xeb0e35f4 cfi_varsize_frob
+EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xebea2b2f cfi_read_pri
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x51e596a5 map_destroy
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x82b84b72 register_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xc3682e6c unregister_mtd_chip_driver
+EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xe77b82f3 do_map_probe
+EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x77bfab5c mtd_do_chip_probe
+EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x4c110579 lpddr_cmdset
+EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x3919d53b simple_map_init
+EXPORT_SYMBOL drivers/mtd/mtd 0xd408c7c9 del_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtd 0xfc35360a add_mtd_partitions
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0xa675771b mtd_concat_create
+EXPORT_SYMBOL drivers/mtd/mtdconcat 0xb53f263b mtd_concat_destroy
+EXPORT_SYMBOL drivers/mtd/nand/nand 0xb56fa866 nand_scan_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand 0xdb5bb448 nand_default_bbt
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x484405ae nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data
+EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xc2dfdfce nand_calculate_ecc
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x836bdb72 nand_flash_ids
+EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x0e8f9459 onenand_default_bbt
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x332a4940 onenand_addr
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xc3003007 flexonenand_region
+EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xccf42644 onenand_scan_bbt
+EXPORT_SYMBOL drivers/net/8390 0x054c7778 ei_set_multicast_list
+EXPORT_SYMBOL drivers/net/8390 0x1ce6dbf3 NS8390_init
+EXPORT_SYMBOL drivers/net/8390 0x3ab8faa8 ei_close
+EXPORT_SYMBOL drivers/net/8390 0x40c3df1a ei_tx_timeout
+EXPORT_SYMBOL drivers/net/8390 0x4ca1b8a4 __alloc_ei_netdev
+EXPORT_SYMBOL drivers/net/8390 0x6ec2d328 ei_open
+EXPORT_SYMBOL drivers/net/8390 0x82f6d312 ei_poll
+EXPORT_SYMBOL drivers/net/8390 0xc920bd57 ei_get_stats
+EXPORT_SYMBOL drivers/net/8390 0xdc66a43c ei_start_xmit
+EXPORT_SYMBOL drivers/net/8390 0xdd365790 ei_interrupt
+EXPORT_SYMBOL drivers/net/8390 0xe1c1f6c4 ei_netdev_ops
+EXPORT_SYMBOL drivers/net/bnx2 0xd32ab7fa bnx2_cnic_probe
+EXPORT_SYMBOL drivers/net/bnx2x 0x6b2c9b1d bnx2x_cnic_probe
+EXPORT_SYMBOL drivers/net/cnic 0x1b820ad2 cnic_register_driver
+EXPORT_SYMBOL drivers/net/cnic 0x636af174 cnic_unregister_driver
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x046ed07a cxgb3_insert_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x06842ad4 t3_l2e_free
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x423250f4 t3_register_cpl_handler
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x46383945 t3_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x4e02762b cxgb3_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x531168f9 dev2t3cdev
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x59f0b4cf cxgb3_free_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5b2e0fb1 cxgb3_free_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x5ffbece2 t3_l2t_send_event
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x714e064b cxgb3_unregister_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0x84ee7e2f cxgb3_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xa40f4754 cxgb3_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xaddc93bf cxgb3_register_client
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xb330e1b9 cxgb3_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xbc4c7d00 cxgb3_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb3/cxgb3 0xf473da28 t3_l2t_send_slow
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x14b0916e cxgb4_port_idx
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x27d736c9 cxgb4_iscsi_init
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x2d3fb8a7 cxgb4_alloc_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3918f7b8 cxgb4_free_atid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x3c86c034 cxgb4_remove_tid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x4246e917 cxgb4_queue_tid_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x78ebae46 cxgb4_l2t_release
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x7fc7be69 cxgb4_get_tcp_stats
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x855b62f5 cxgb4_register_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x90741ea9 cxgb4_port_viid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x937260f3 cxgb4_create_server6
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0x9e339a94 cxgb4_alloc_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xaa73a737 cxgb4_netdev_by_hwid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xac799577 cxgb4_create_server
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xc7ef1c53 cxgb4_free_stid
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd0991b92 cxgb4_l2t_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd6954c46 cxgb4_ofld_send
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe0d45fcc cxgb4_port_chan
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xe7c23f90 cxgb4_l2t_get
+EXPORT_SYMBOL drivers/net/cxgb4/cxgb4 0xfe338c8e cxgb4_pktgl_to_skb
+EXPORT_SYMBOL drivers/net/mdio 0x0f934475 mdio45_ethtool_gset_npage
+EXPORT_SYMBOL drivers/net/mdio 0x22bce513 mdio_mii_ioctl
+EXPORT_SYMBOL drivers/net/mdio 0x43e4defc mdio45_nway_restart
+EXPORT_SYMBOL drivers/net/mdio 0x7577f992 mdio_set_flag
+EXPORT_SYMBOL drivers/net/mdio 0xa1a29548 mdio45_probe
+EXPORT_SYMBOL drivers/net/mdio 0xb34a7575 mdio45_ethtool_spauseparam_an
+EXPORT_SYMBOL drivers/net/mdio 0xc6b1163f mdio45_links_ok
+EXPORT_SYMBOL drivers/net/mii 0x16de6cbd mii_check_media
+EXPORT_SYMBOL drivers/net/mii 0x18851e97 mii_link_ok
+EXPORT_SYMBOL drivers/net/mii 0x1b24b09f mii_nway_restart
+EXPORT_SYMBOL drivers/net/mii 0x358ba51d mii_check_gmii_support
+EXPORT_SYMBOL drivers/net/mii 0x97a8c988 generic_mii_ioctl
+EXPORT_SYMBOL drivers/net/mii 0xe2160c03 mii_ethtool_gset
+EXPORT_SYMBOL drivers/net/mii 0xe5f8aecb mii_check_link
+EXPORT_SYMBOL drivers/net/mii 0xec9c985c mii_ethtool_sset
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x055c5802 free_mdio_bitbang
+EXPORT_SYMBOL drivers/net/phy/mdio-bitbang 0x41607f68 alloc_mdio_bitbang
+EXPORT_SYMBOL drivers/net/ppp_generic 0x0baaa510 ppp_input
+EXPORT_SYMBOL drivers/net/ppp_generic 0x141e3ce0 ppp_channel_index
+EXPORT_SYMBOL drivers/net/ppp_generic 0x24609710 ppp_register_net_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0x579472fa ppp_output_wakeup
+EXPORT_SYMBOL drivers/net/ppp_generic 0xa7d4af0c ppp_dev_name
+EXPORT_SYMBOL drivers/net/ppp_generic 0xb07e752f ppp_input_error
+EXPORT_SYMBOL drivers/net/ppp_generic 0xb1160f9a ppp_register_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0xcca9edc7 ppp_unregister_compressor
+EXPORT_SYMBOL drivers/net/ppp_generic 0xecc0dab0 ppp_unit_number
+EXPORT_SYMBOL drivers/net/ppp_generic 0xecf8507f ppp_unregister_channel
+EXPORT_SYMBOL drivers/net/ppp_generic 0xfef6252c ppp_register_compressor
+EXPORT_SYMBOL drivers/net/pppox 0x79d5faa5 pppox_unbind_sock
+EXPORT_SYMBOL drivers/net/pppox 0xe0ff7a18 unregister_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0xebf5476c register_pppox_proto
+EXPORT_SYMBOL drivers/net/pppox 0xf39efdac pppox_ioctl
+EXPORT_SYMBOL drivers/net/slhc 0x2278e94b slhc_remember
+EXPORT_SYMBOL drivers/net/slhc 0x26b760c4 slhc_init
+EXPORT_SYMBOL drivers/net/slhc 0x3fe0d1c0 slhc_free
+EXPORT_SYMBOL drivers/net/slhc 0x62538167 slhc_toss
+EXPORT_SYMBOL drivers/net/slhc 0x7e87227e slhc_compress
+EXPORT_SYMBOL drivers/net/slhc 0xa78d9eb7 slhc_uncompress
+EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xddba3c3e i2400m_unknown_barker
+EXPORT_SYMBOL drivers/net/wireless/airo 0x11910a0f reset_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0x50a82fcb stop_airo_card
+EXPORT_SYMBOL drivers/net/wireless/airo 0xa30e2d5d init_airo_card
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0987fda4 ath_reg_notifier_apply
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1a2c2127 ath_regd_get_band_ctl
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x31219afb ath_is_world_regd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9acf211d ath_rxbuf_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xadc992ec ath_hw_setbssidmask
+EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xda233438 ath_regd_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x167942dc ath9k_cmn_key_delete
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x37f4e604 ath9k_cmn_key_config
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x40c95c8d ath9k_cmn_rx_skb_postprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x687cb61a ath9k_cmn_get_curchannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x8048b3cf ath9k_cmn_update_ichannel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x9720317c ath9k_cmn_get_hw_crypto_keytype
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xb6ef7714 ath9k_cmn_rx_skb_preprocess
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xf59eadf3 ath9k_cmn_padpos
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x003d7a36 ath9k_hw_getchan_noise
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x057a077b ath9k_hw_btcoex_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0bb5c008 ath9k_hw_rxprocdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c0ad211 ath9k_hw_releasetxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x185e4b9e ath9k_hw_getrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19767aee ath9k_hw_write_associd
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e9f00bb ath9k_hw_deinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1f2a7531 ath9k_hw_getdefantenna
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2646564a ath9k_hw_gen_timer_stop
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x288d031f ath9k_hw_init_global_settings
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x29423eee ath9k_hw_addrxbuf_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2b54d2b0 ath9k_hw_btcoex_init_2wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d2c6ced ath9k_hw_gpio_get
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2eae74ef ath9k_hw_wait
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3218876b ath9k_hw_set_rx_bufsize
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32a8b7fc ath9k_hw_set_tsfadjust
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x353b602d ath9k_hw_cfg_gpio_input
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3624178e ath9k_hw_process_rxdesc_edma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x367d70ec ath9k_hw_keyisvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x395a817f ath9k_hw_setmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x39859142 ath9k_hw_set_keycache_entry
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x39dcabf8 ath9k_hw_gettxintrtxqs
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3cb8837b ath9k_hw_txstart
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x46661faf ath9k_hw_htc_resetinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x486a9e31 ath9k_hw_gen_timer_start
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a639cd4 ath9k_hw_procmibevent
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4de7a63c ath9k_hw_putrxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51de53d4 ath_gen_timer_free
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x53710b6b ath9k_hw_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x564dd6b8 ath9k_hw_init_btcoex_hw
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x57eaf529 ath9k_hw_set_txpowerlimit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6537fc71 ath9k_hw_get_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6697bc9f ath9k_hw_abortpcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66fd01dc ath9k_hw_cfg_output
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x680140f4 ath_gen_timer_isr
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x69cb0306 ath9k_hw_keyreset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6dfa53d1 ath9k_hw_set_sta_beacon_timers
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71aea7d7 ath9k_hw_gettsf32
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x748436fd ath9k_hw_cleartxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7735287c ath9k_hw_getcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77a4b56f ath9k_hw_gettxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79f02bce ath9k_hw_updatetxtriglevel
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c6daea7 ath9k_hw_phy_disable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7f4f57a9 ath9k_hw_extend_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8208a547 ath9k_hw_setrxfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x83a8a829 ath9k_hw_check_alive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89279086 ath9k_hw_beaconq_setup
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x89b58f26 ath9k_hw_stoptxdma
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8ed2cb98 ath9k_hw_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98bb17d9 ath9k_hw_setpower
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98be1911 ath9k_hw_stopdmarecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x995756a7 ath9k_hw_btcoex_enable
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9ebbe7c8 ath9k_hw_setuprxdesc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa0176101 ath9k_hw_name
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8470de0 ath9k_hw_btcoex_set_weight
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8ce60fc ath9k_hw_btcoex_init_3wire
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa8f903aa ath9k_hw_keysetmac
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab1c0fd8 ath9k_hw_setuptxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xabac2971 ath9k_hw_gettsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xad3b4e8c ath9k_hw_startpcureceive
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0f04718 ath9k_hw_intrpend
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb2259dc6 ath9k_hw_numtxpending
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4e7b466 ath9k_hw_setup_statusring
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7e8d4ee ath9k_hw_ani_monitor
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb09a0e1 ath9k_hw_beaconinit
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbd2d7695 ath9k_hw_set_interrupts
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc097793d ath9k_hw_resettxqueue
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc2a83cb9 ath9k_hw_stoppcurecv
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc6b733f5 ath9k_hw_set_gpio
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc81eab2c ath9k_hw_puttxbuf
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcc72dd47 ath9k_hw_settsf64
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcf7aefca ath9k_hw_reset
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1792616 ath9k_hw_init
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd6b3bbdf ath_gen_timer_alloc
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdb7907d1 ath9k_hw_setmcastfilter
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xde37e0ac ath9k_hw_set_txq_props
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdf7d9286 ath9k_hw_setrxabort
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5aff0eb ath9k_hw_setcapability
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe774d612 ath9k_hw_computetxtime
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf1dac71d ath9k_hw_setopmode
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfaf6109f ath9k_hw_reset_calvalid
+EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfb598c8b ath9k_hw_setantenna
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x007633fa atmel_open
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x42cb4833 stop_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/atmel 0x99f6434a init_atmel_card
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x045ebccc hostap_set_encryption
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x28802dc8 hostap_info_process
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2e7860e9 hostap_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2eaa5785 hostap_check_sta_fw_version
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x35e2d63f hostap_80211_rx
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x515422bd hostap_set_hostapd
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x536ddba8 hostap_free_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x546020ba hostap_info_init
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x63a5334b prism2_update_comms_qual
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x65dbcc98 hostap_set_roaming
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6936f386 hostap_set_antsel
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6b831b96 hostap_set_auth_algs
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7b530270 hostap_init_ap_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7b794712 hostap_setup_dev
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8242df11 hostap_set_string
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x895e01d8 hostap_80211_ops
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x90766bb3 hostap_init_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x92412ef8 hostap_handle_sta_tx_exc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x987965c8 hostap_remove_proc
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb11155dc hostap_set_word
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb2a945e0 hostap_dump_rx_header
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb4b77c8b hostap_80211_get_hdrlen
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb6c94f9b hostap_init_data
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb80f127a hostap_add_interface
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xba80816f hostap_master_start_xmit
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd738c5ac hostap_set_hostapd_sta
+EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf3c55933 hostap_get_porttype
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x071f77a7 libipw_is_valid_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0dffc567 libipw_get_channel_flags
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x28812d42 alloc_libipw
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2ae16e71 libipw_networks_age
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x340793e4 libipw_rx_mgt
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3ba50747 libipw_txb_free
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x4f559b13 libipw_wx_set_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x64486109 libipw_wx_get_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7625ab7c libipw_rx
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x82b6b149 libipw_channel_to_index
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8ba31b14 libipw_wx_set_encodeext
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x90579286 libipw_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x93b66677 libipw_xmit
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa953ccfa libipw_get_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbf717437 libipw_wx_get_scan
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd42487ff libipw_freq_to_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd4eb6995 libipw_wx_get_encode
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xeba058d4 libipw_set_geo
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf81de4d4 libipw_get_channel
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfb6e3b9e libipw_channel_to_freq
+EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfbe0479f free_libipw
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0174fb9e iwl_sta_rx_agg_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x02430e98 iwl_tt_exit_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x02f41373 iwl_rx_pm_debug_statistics_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03931552 iwl_force_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x03ab6e27 iwl_remove_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x04980b1d iwl_tt_handler
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x055ab118 iwl_rx_queue_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x07f98692 iwl_scan_cancel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0923e003 iwl_sta_modify_ps_wake
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0a0dd587 iwl_set_rxon_hwcrypto
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0a894fd5 iwl_tx_queue_reset
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0e7c9c57 iwl_bg_start_internal_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0f2b5cc0 iwl_eeprom_check_version
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x0fe70dac iwl_tt_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x12f2c689 iwl_eeprom_query16
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x152cde33 iwl_rx_pm_sleep_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x15921856 iwl_eeprom_get_mac
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x15f3f9ca iwl_send_add_sta
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1605885b iwl_eeprom_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x174aa0a5 iwl_leds_background
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x19f0e900 iwl_debug_level
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1b3a62b1 iwl_set_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1d77b399 iwl_bcast_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x1fc62387 iwl_tx_ant_restriction
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x218bf295 iwl_send_calib_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x240c6ce1 iwlcore_init_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2432d941 iwl_is_ht40_tx_allowed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x258f994e iwl_check_rxon_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x27f9c55f iwl_rx_reply_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x287a1154 iwl_free_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2880a716 iwl_rx_queue_alloc
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2b1eb172 iwl_send_lq_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2e5cbe33 iwlcore_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x2f694862 iwl_irq_handle_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x32c3f258 iwl_led_start
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x38a7e714 iwlcore_eeprom_verify_signature
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3d85f6a2 iwl_update_tkip_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3d9d26d1 iwl_rx_spectrum_measure_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x3f7459fa iwl_configure_filter
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x428beaee iwl_hw_detect
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x42a7194b iwl_init_sensitivity
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x45c1a62e iwl_clear_ucode_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x484a931d iwl_set_rxon_ht
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x48f8cddd iwl_rx_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4a240006 iwl_dump_fh
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4c34b0a7 __tracepoint_iwlwifi_dev_iowrite8
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x4cacc261 iwl_bss_info_changed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5147e809 iwl_sensitivity_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x52b7ced3 iwl_chain_noise_calibration
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x52d1f871 iwl_get_passive_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x54b79681 iwl_get_free_ucode_key_index
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x56d58e60 iwl_mac_remove_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x58f53f78 __tracepoint_iwlwifi_dev_rx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5a8a6124 iwl_tx_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5c7843ca __tracepoint_iwlwifi_dev_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x5dab67d7 iwl_reply_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x65ff5749 iwl_eeprom_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x69c6209d iwl_leds_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c06c4e7 iwl_cmd_queue_free
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x6c533120 __tracepoint_iwlwifi_dev_ucode_cont_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x706c963c iwl_init_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x70ba2b44 iwl_setup_rxon_timing
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7100f176 iwl_free_channel_map
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x71db00d0 iwl_bg_abort_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7382a6d1 iwl_send_cmd_sync
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x76314939 iwl_mac_hw_scan
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x767a47a5 iwl_alloc_txq_mem
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x76eeda6a iwl_mac_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x78976e61 iwl_isr_legacy
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7bf478f6 iwl_apm_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7dd5ca0e iwl_rate_get_lowest_plcp
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7df43c79 iwl_add_station_common
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7e3609d5 iwl_mac_beacon_update
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x7f3c985d iwl_tx_queue_init
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x821248a2 __tracepoint_iwlwifi_dev_ucode_error
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8314c72a iwl_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8319d1e6 iwl_recover_from_statistics
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x83a8c9d0 iwl_verify_ucode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x854ee2d3 iwl_rx_csa
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8670273d iwl_hwrate_to_plcp_idx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x896796f4 iwl_tt_enter_ct_kill
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x8a2f1236 iwl_tt_exit
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x90ad9892 iwl_remove_default_wep_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x93190c7f iwl_ht_enabled
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x93b2186d iwl_power_initialize
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x940c51aa iwlcore_rts_tx_cmd_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x954791da iwl_set_rxon_chain
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x96463d6b iwl_dump_csr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x970de124 iwl_power_update_mode
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9816e0a8 iwl_send_bt_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x993ef36f iwl_reset_run_time_calib
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0x9faced57 iwl_calib_set
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa033118b iwl_setup_rx_scan_handlers
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa05cbc29 iwl_init_scan_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa14788af iwl_set_dynamic_key
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa2f4fb47 iwl_good_plcp_health
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa5c8d89d iwl_setup_scan_deferred_work
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa7b2cdbb iwl_connection_init_rx_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa99acd83 iwl_sta_tx_modify_enable_tid
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xa9ad6f90 iwl_set_hw_params
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaadc068c iwl_mac_add_interface
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xae9af542 iwl_rf_kill_ct_config
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaef7b253 iwl_full_rxon_required
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaf726b6c iwl_send_cmd
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xaff72f36 iwl_toggle_tx_ant
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb0282856 iwl_send_cmd_pdu_async
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb10a66d6 iwl_mac_reset_tsf
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb273cfed iwl_sta_modify_sleep_tx_count
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb4d2f916 iwl_scan_cancel_timeout
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb55e0835 iwl_calib_free_results
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb86a0fa3 iwl_bg_scan_completed
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xb8b33f36 iwl_get_active_dwell_time
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xba24f341 iwl_txq_update_write_ptr
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc099e474 iwl_add_bssid_station
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc25c9849 iwlcore_eeprom_release_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xc9a5aa49 iwl_restore_default_wep_keys
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcac53ed2 iwl_apm_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcaf3529d iwl_set_decrypted_flag
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xcbaf4931 get_cmd_string
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd0228582 iwlcore_free_geos
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd40ed09b iwl_set_tx_power
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd4c8065a iwl_sta_rx_agg_stop
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd533528c __tracepoint_iwlwifi_dev_iowrite32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xd74240a3 iwl_rx_queue_space
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xdc3c498c iwl_get_channel_info
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xde1a5f37 iwl_bg_monitor_recover
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe257aa64 iwl_alloc_all
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe34ac79f iwl_fill_probe_req
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe34fd4b5 iwlcore_eeprom_enhanced_txpower
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe49ba539 iwlcore_eeprom_acquire_semaphore
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe67257a2 iwl_bg_scan_check
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7456ff0 iwl_send_cmd_pdu
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe78732cc iwl_mac_sta_remove
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe7ce5d70 iwl_rates
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe8f0b426 iwl_free_tfds_in_queue
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xe96a87c0 iwl_tx_cmd_complete
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xea2bfe06 iwl_mac_conf_tx
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xedc44cf5 __tracepoint_iwlwifi_dev_ucode_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xee431a1e iwl_rx_missed_beacon_notif
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xee73a703 iwl_restore_stations
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf2680bf5 __tracepoint_iwlwifi_dev_ioread32
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf5fffad3 iwl_send_statistics_request
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xf8e16124 iwl_set_rxon_channel
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfbdf4d1a __tracepoint_iwlwifi_dev_ucode_wrap_event
+EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlcore 0xfcb6a583 iwl_eeprom_query_addr
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0075fd0c orinoco_process_xmit_skb
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x066abcfb hermes_struct_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x15f21e29 orinoco_get_stats
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2dab21db orinoco_set_multicast_list
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x443a35de orinoco_down
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x46899fcb __orinoco_ev_rx
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x509e9ada __orinoco_ev_info
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x56c70a61 orinoco_tx_timeout
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6a927e18 orinoco_interrupt
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x6c13deb6 free_orinocodev
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x80d71dd3 orinoco_if_add
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x878497ec orinoco_if_del
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8deb04ee orinoco_change_mtu
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xaece2656 orinoco_stop
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb3958a71 orinoco_open
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc1910e20 orinoco_init
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdb7daa0c orinoco_up
+EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf7355a17 alloc_orinocodev
+EXPORT_SYMBOL drivers/parport/parport 0x166203c5 parport_claim_or_block
+EXPORT_SYMBOL drivers/parport/parport 0x1b6b360c parport_put_port
+EXPORT_SYMBOL drivers/parport/parport 0x1c867522 parport_ieee1284_epp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0x20309319 parport_wait_event
+EXPORT_SYMBOL drivers/parport/parport 0x2789ba4c parport_ieee1284_ecp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0x3ae7ed7b parport_ieee1284_ecp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0x3c99f752 parport_register_device
+EXPORT_SYMBOL drivers/parport/parport 0x3e1b6100 parport_unregister_device
+EXPORT_SYMBOL drivers/parport/parport 0x4556d540 parport_write
+EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt
+EXPORT_SYMBOL drivers/parport/parport 0x56d56a94 parport_set_timeout
+EXPORT_SYMBOL drivers/parport/parport 0x62d6a506 parport_get_port
+EXPORT_SYMBOL drivers/parport/parport 0x6c25dadf parport_release
+EXPORT_SYMBOL drivers/parport/parport 0x7bca6bb4 parport_wait_peripheral
+EXPORT_SYMBOL drivers/parport/parport 0x8724816f parport_ieee1284_read_nibble
+EXPORT_SYMBOL drivers/parport/parport 0x9043b82f parport_read
+EXPORT_SYMBOL drivers/parport/parport 0x926f3ae9 parport_unregister_driver
+EXPORT_SYMBOL drivers/parport/parport 0x96950278 parport_find_number
+EXPORT_SYMBOL drivers/parport/parport 0x9d5eff70 parport_irq_handler
+EXPORT_SYMBOL drivers/parport/parport 0x9f657680 parport_negotiate
+EXPORT_SYMBOL drivers/parport/parport 0xa82ac86d parport_remove_port
+EXPORT_SYMBOL drivers/parport/parport 0xb2de2549 parport_ieee1284_read_byte
+EXPORT_SYMBOL drivers/parport/parport 0xbb69ad3c parport_find_base
+EXPORT_SYMBOL drivers/parport/parport 0xbd935f38 parport_claim
+EXPORT_SYMBOL drivers/parport/parport 0xbfc10a2a parport_ieee1284_epp_read_addr
+EXPORT_SYMBOL drivers/parport/parport 0xd04d9aab parport_ieee1284_epp_read_data
+EXPORT_SYMBOL drivers/parport/parport 0xd63b8f68 parport_announce_port
+EXPORT_SYMBOL drivers/parport/parport 0xda098888 parport_ieee1284_ecp_write_addr
+EXPORT_SYMBOL drivers/parport/parport 0xec2c6b05 parport_register_driver
+EXPORT_SYMBOL drivers/parport/parport 0xf40e75fb parport_ieee1284_write_compat
+EXPORT_SYMBOL drivers/parport/parport 0xfc6810d1 parport_ieee1284_epp_write_data
+EXPORT_SYMBOL drivers/parport/parport 0xfd61f1bc parport_register_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0x9db3d03a parport_pc_unregister_port
+EXPORT_SYMBOL drivers/parport/parport_pc 0xa70932c2 parport_pc_probe_port
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x033b6eb4 pcmcia_loop_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0a7083fc pcmcia_request_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0fb033d5 pcmcia_release_window
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x2e464e43 pcmcia_get_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x36cd5fa0 pcmcia_access_configuration_register
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x370fd78c pcmcia_register_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x388e5c40 pcmcia_get_mac_from_cis
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5ec368af pcmcia_disable_device
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x63a2ef2d pcmcia_loop_config
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x66fcdd6f pcmcia_request_io
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6b4ea97d pcmcia_modify_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x993ecedd __pcmcia_request_exclusive_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xac123d56 pcmcia_request_configuration
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc02ef2c8 pcmcia_parse_tuple
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xcae562d3 pcmcia_map_mem_page
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd256f73e pcmcia_request_irq
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xde093968 pcmcia_dev_present
+EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe4fb9146 pcmcia_unregister_driver
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x1e3abe4c pcmcia_parse_events
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x38d5fa8e pcmcia_register_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x3a0078af pcmcia_socket_class
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x453b363e pcmcia_socket_list_rwsem
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x59643228 pcmcia_reset_card
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7caaf163 pcmcia_get_socket_by_nr
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8303758f pcmcia_parse_uevents
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa8fd7e72 pcmcia_put_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf5b6fab pcmcia_unregister_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdbdf8bc0 pcmcia_get_socket
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xef5b96dc pccard_register_pcmcia
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x7feef525 pccard_nonstatic_ops
+EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x9c04c2f0 pccard_static_ops
+EXPORT_SYMBOL drivers/pps/pps_core 0x1e145952 pps_unregister_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe2106a19 pps_register_source
+EXPORT_SYMBOL drivers/pps/pps_core 0xe6a16116 pps_event
+EXPORT_SYMBOL drivers/sbus/char/bbc 0x062ea95c bbc_i2c_writeb
+EXPORT_SYMBOL drivers/sbus/char/bbc 0x15a308e5 bbc_i2c_read_buf
+EXPORT_SYMBOL drivers/sbus/char/bbc 0x3175e755 bbc_i2c_write_buf
+EXPORT_SYMBOL drivers/sbus/char/bbc 0x69cbb0da bbc_i2c_attach
+EXPORT_SYMBOL drivers/sbus/char/bbc 0x7c77c2f2 bbc_i2c_detach
+EXPORT_SYMBOL drivers/sbus/char/bbc 0xba98dfae bbc_i2c_readb
+EXPORT_SYMBOL drivers/sbus/char/bbc 0xecfd8967 bbc_i2c_getdev
+EXPORT_SYMBOL drivers/scsi/esp_scsi 0x10728e76 scsi_esp_template
+EXPORT_SYMBOL drivers/scsi/esp_scsi 0x12dc3bc9 scsi_esp_register
+EXPORT_SYMBOL drivers/scsi/esp_scsi 0x658a76c9 scsi_esp_intr
+EXPORT_SYMBOL drivers/scsi/esp_scsi 0x8bd5eb9e scsi_esp_unregister
+EXPORT_SYMBOL drivers/scsi/esp_scsi 0xd3dd7bac scsi_esp_cmd
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2f94c598 fcoe_ctlr_init
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x58fc3acb fcoe_ctlr_link_down
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6c585b92 fcoe_ctlr_link_up
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8d209ac0 fcoe_ctlr_destroy
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xbbcc0110 fcoe_ctlr_recv_flogi
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xcaf394f9 fcoe_ctlr_els_send
+EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xfa5f4bdb fcoe_ctlr_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x00a5d273 fc_change_queue_depth
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x016caa1c fc_fcp_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x065b327d fc_disc_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x07055e7e fc_lport_bsg_request
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x09ae7d4a fc_exch_mgr_add
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0e84b279 fc_change_queue_type
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1cee96dc fc_set_rport_loss_tmo
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2027caf0 fc_eh_host_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x30e3886e fc_exch_mgr_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x37b0358e fc_linkdown
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3b6de25a fc_rport_terminate_io
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x426bf2f2 fc_lport_logo_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x444b3b5f fc_get_host_stats
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x47f35818 fc_frame_alloc_fill
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x48108224 fc_exch_mgr_del
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4db80014 fc_lport_config
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4ee31a42 fc_linkup
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4fbac953 fc_slave_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4fd093a6 fc_exch_mgr_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5327629f fc_lport_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x57321d73 fc_frame_crc_check
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x61da3aef fc_fabric_login
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x641e6ac7 fc_lport_flogi_resp
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x67571372 fc_exch_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7005cf07 fc_fcp_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x81c06d6c fc_eh_device_reset
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x83e933a6 fc_rport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x85ac3dfe fc_elsct_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8c077093 fc_elsct_send
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8ef718cd fc_queuecommand
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x905abe61 fc_vport_setlink
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x99d5ddfe libfc_vport_create
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa6e6de74 fc_lport_init
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xaabb43f3 fc_fabric_logoff
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbf6c18f7 _fc_frame_alloc
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc987ca00 fc_exch_recv
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xccff0840 fc_lport_destroy
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcd90bae7 fc_exch_mgr_free
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xda6168d8 fc_set_mfs
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf6eecf1e fc_eh_abort
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfdd01695 fc_get_host_port_state
+EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xff5f2775 fc_get_host_speed
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp
+EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0xdf03831b mraid_mm_register_adp
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x06281263 osd_req_read
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1488bcbb osd_req_write
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1bf6ae62 osd_req_format
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2f9b758c osd_execute_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x30d05e8b osd_req_get_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x45062363 osd_req_flush_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4bcdc816 osd_req_create_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x511dc06f osd_req_remove_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5884f365 osd_req_list_collection_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5c46f6b6 osd_req_decode_sense_full
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x623fb212 osd_dev_fini
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x630ba006 osd_req_remove_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x64013a2a osd_req_flush_collection
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6f8702e0 osd_req_flush_obsd
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x72ac2562 osd_end_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x784a9c65 osd_dev_init
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7ae69875 osd_finalize_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7b6bf370 osd_req_add_set_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x872beaa3 osd_req_decode_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x93c95cb8 osd_req_add_get_attr_list
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0x977d2d11 osd_req_create_partition
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa9280510 osd_execute_request_async
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xabade057 osd_req_list_partition_collections
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xac656623 osd_start_request
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xad013864 osd_req_flush_object
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xba7154d3 osd_req_set_attributes
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd1310418 osd_req_read_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd274dc8d osd_req_write_kern
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd4999226 osd_req_list_dev_partitions
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xde42e36c osd_req_add_get_attr_page
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe90e524a osd_req_list_partition_objects
+EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfea7ed2b osd_auto_detect_ver
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x11e4a048 osduld_path_lookup
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x6e57767d osduld_device_same
+EXPORT_SYMBOL drivers/scsi/osd/osd 0x790ed0d6 osduld_device_info
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xa91c1b64 osduld_put_device
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xbc46015f osduld_register_test
+EXPORT_SYMBOL drivers/scsi/osd/osd 0xe5f10afb osduld_info_lookup
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x13bf8d14 qlogicfas408_abort
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x16cc6c2c qlogicfas408_info
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x50744e20 qlogicfas408_disable_ints
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc9339f2f qlogicfas408_biosparam
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xdc310b12 qlogicfas408_ihandl
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf4225895 qlogicfas408_bus_reset
+EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf4a435d3 qlogicfas408_queuecommand
+EXPORT_SYMBOL drivers/scsi/raid_class 0x13d8bdd0 raid_component_add
+EXPORT_SYMBOL drivers/scsi/raid_class 0x41f470c5 raid_class_attach
+EXPORT_SYMBOL drivers/scsi/raid_class 0x4309166a raid_class_release
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x009e4bbb scsi_is_fc_vport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x01f2c98d fc_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0fcad254 fc_remote_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x158e24a3 scsi_is_fc_rport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x319ecbe7 fc_host_post_vendor_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x43379b37 fc_remote_port_rolechg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x54a9572e fc_vport_create
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6a447440 fc_vport_terminate
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x85b97ade fc_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xba14a0ce fc_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xcaffaeac fc_host_post_event
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe9136156 fc_block_scsi_eh
+EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xf1aeed58 fc_remote_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x09f8899a sas_rphy_remove
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x180ff05c sas_phy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1a600a19 sas_read_port_mode_page
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2637f8ee sas_port_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2bde1aaa sas_end_device_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3354dc60 scsi_is_sas_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x35372ea7 sas_port_mark_backlink
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x38bf09c6 sas_phy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3ec572b9 sas_port_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4ba9db43 sas_remove_host
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x61aae19e sas_port_delete_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x62b6154c sas_rphy_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7d062064 sas_phy_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8ae82578 sas_phy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8ea88e06 sas_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x98487c76 sas_port_free
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9c7dc89c sas_port_add_phy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa78a3d3d scsi_is_sas_port
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb1590d29 sas_port_alloc_num
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc3eb8735 sas_rphy_add
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc92c95f9 sas_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xde8c3006 scsi_is_sas_rphy
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe26f6573 sas_port_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xe9646b70 sas_rphy_delete
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xec5c9881 sas_expander_alloc
+EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfdb92b9e sas_remove_children
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x030d83d1 spi_release_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x86c840f6 spi_display_xfer_agreement
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x90705b08 spi_attach_transport
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xd4a9c404 spi_dv_device
+EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xfc0fda0f spi_schedule_dv_device
+EXPORT_SYMBOL drivers/serial/8250 0xc7208c3a serial8250_resume_port
+EXPORT_SYMBOL drivers/serial/8250 0xcc248d26 serial8250_suspend_port
+EXPORT_SYMBOL drivers/serial/8250 0xcefcd99a serial8250_unregister_port
+EXPORT_SYMBOL drivers/serial/8250 0xe2d05aea serial8250_register_port
+EXPORT_SYMBOL drivers/ssb/ssb 0x0666a3e1 ssb_bus_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0x13df2634 ssb_pcicore_dev_irqvecs_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x1b1a66ad ssb_pmu_set_ldo_voltage
+EXPORT_SYMBOL drivers/ssb/ssb 0x1f2e7625 ssb_bus_resume
+EXPORT_SYMBOL drivers/ssb/ssb 0x382744e5 ssb_dma_translation
+EXPORT_SYMBOL drivers/ssb/ssb 0x39de4b98 ssb_bus_suspend
+EXPORT_SYMBOL drivers/ssb/ssb 0x3fbb974e __ssb_driver_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x456e001e ssb_driver_unregister
+EXPORT_SYMBOL drivers/ssb/ssb 0x478c4c9c ssb_bus_may_powerdown
+EXPORT_SYMBOL drivers/ssb/ssb 0x508395cd ssb_set_devtypedata
+EXPORT_SYMBOL drivers/ssb/ssb 0x602248f9 ssb_bus_sdiobus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x61f55ce4 ssb_device_is_enabled
+EXPORT_SYMBOL drivers/ssb/ssb 0x72abc311 ssb_pcihost_register
+EXPORT_SYMBOL drivers/ssb/ssb 0x74ae2863 ssb_device_enable
+EXPORT_SYMBOL drivers/ssb/ssb 0x8f5b1492 ssb_dma_alloc_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0x9de26369 ssb_pmu_set_ldo_paref
+EXPORT_SYMBOL drivers/ssb/ssb 0xa3ef0e77 ssb_dma_set_mask
+EXPORT_SYMBOL drivers/ssb/ssb 0xb295167b ssb_dma_free_consistent
+EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base
+EXPORT_SYMBOL drivers/ssb/ssb 0xc3b2db35 ssb_chipco_gpio_control
+EXPORT_SYMBOL drivers/ssb/ssb 0xd04f8674 ssb_bus_powerup
+EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size
+EXPORT_SYMBOL drivers/ssb/ssb 0xdd8a89c5 ssb_clockspeed
+EXPORT_SYMBOL drivers/ssb/ssb 0xfcde88ce ssb_bus_pcibus_register
+EXPORT_SYMBOL drivers/ssb/ssb 0xfd0828b1 ssb_device_disable
+EXPORT_SYMBOL drivers/telephony/ixj 0x8bd0f956 ixj_pcmcia_probe
+EXPORT_SYMBOL drivers/telephony/phonedev 0x6b205d8d phone_unregister_device
+EXPORT_SYMBOL drivers/telephony/phonedev 0x9934f7c1 phone_register_device
+EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0xbea20e34 sl811h_driver
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xa64a4cea usb_nop_xceiv_unregister
+EXPORT_SYMBOL drivers/usb/otg/nop-usb-xceiv 0xd0e43207 usb_nop_xceiv_register
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0b72ba9a usb_wwan_close
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x17dbd20d usb_wwan_dtr_rts
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x1d560cb1 usb_wwan_disconnect
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x66ec5380 usb_wwan_release
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9be9ea83 usb_wwan_chars_in_buffer
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xaf82f07a usb_wwan_write_room
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd4bbca9b usb_wwan_set_termios
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd58ef7e3 usb_wwan_open
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd59afa12 usb_wwan_write
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd9e56cb6 usb_wwan_tiocmset
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xdbff8e6c usb_wwan_startup
+EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xef128b44 usb_wwan_tiocmget
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x6877b7eb usb_serial_resume
+EXPORT_SYMBOL drivers/usb/serial/usbserial 0x8517fab0 usb_serial_suspend
+EXPORT_SYMBOL drivers/video/backlight/generic_bl 0xc86baa7c corgibl_limit_intensity
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x0da1bc01 lcd_device_unregister
+EXPORT_SYMBOL drivers/video/backlight/lcd 0x7d27c58d lcd_device_register
+EXPORT_SYMBOL drivers/video/display/display 0x2e7c53da display_device_unregister
+EXPORT_SYMBOL drivers/video/display/display 0x539a9c70 display_device_register
+EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb_accel 0x0c32a56e mb862xxfb_init_accel
+EXPORT_SYMBOL drivers/video/output 0x2886253d video_output_unregister
+EXPORT_SYMBOL drivers/video/output 0x6b67bd88 video_output_register
+EXPORT_SYMBOL drivers/video/svgalib 0x00d1fce9 svga_set_default_seq_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x04919700 svga_tilefill
+EXPORT_SYMBOL drivers/video/svgalib 0x07b3da30 svga_wseq_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x186d7d70 svga_get_caps
+EXPORT_SYMBOL drivers/video/svgalib 0x1b95c56a svga_check_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x3a752d7f svga_get_tilemax
+EXPORT_SYMBOL drivers/video/svgalib 0x61aef542 svga_tileblit
+EXPORT_SYMBOL drivers/video/svgalib 0x63e898d1 svga_set_default_crt_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x7a3ae959 svga_wcrt_multi
+EXPORT_SYMBOL drivers/video/svgalib 0x7fde4373 svga_tilecopy
+EXPORT_SYMBOL drivers/video/svgalib 0x80408443 svga_set_timings
+EXPORT_SYMBOL drivers/video/svgalib 0x8fa8438b svga_set_textmode_vga_regs
+EXPORT_SYMBOL drivers/video/svgalib 0x9aef5bc1 svga_tilecursor
+EXPORT_SYMBOL drivers/video/svgalib 0xab3b22ad svga_set_default_gfx_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xd823c172 svga_settile
+EXPORT_SYMBOL drivers/video/svgalib 0xdad682b1 svga_set_default_atc_regs
+EXPORT_SYMBOL drivers/video/svgalib 0xec83c473 svga_match_format
+EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll
+EXPORT_SYMBOL drivers/video/syscopyarea 0xf391b176 sys_copyarea
+EXPORT_SYMBOL drivers/video/sysfillrect 0xa14105f2 sys_fillrect
+EXPORT_SYMBOL drivers/video/sysimgblt 0x77637af0 sys_imageblit
+EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga
+EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0x58bb63e2 w1_bq27000_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_bq27000 0xfe53897f w1_bq27000_read
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xbd34c7b5 w1_ds2760_store_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xc103dad8 w1_ds2760_write
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xdb64b7c4 w1_ds2760_recall_eeprom
+EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xefd3e8a8 w1_ds2760_read
+EXPORT_SYMBOL drivers/w1/wire 0x410c0522 w1_remove_master_device
+EXPORT_SYMBOL drivers/w1/wire 0x7ad1b1bc w1_add_master_device
+EXPORT_SYMBOL drivers/w1/wire 0xb7cc934a w1_register_family
+EXPORT_SYMBOL drivers/w1/wire 0xfb6b7783 w1_unregister_family
+EXPORT_SYMBOL fs/configfs/configfs 0x246a65a0 config_item_init
+EXPORT_SYMBOL fs/configfs/configfs 0x2cc25ce9 config_item_put
+EXPORT_SYMBOL fs/configfs/configfs 0x475f5dfa config_group_find_item
+EXPORT_SYMBOL fs/configfs/configfs 0x56cd85d0 config_item_get
+EXPORT_SYMBOL fs/configfs/configfs 0x61a3ee20 configfs_undepend_item
+EXPORT_SYMBOL fs/configfs/configfs 0x6a117828 config_group_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x81c7d5eb config_item_init_type_name
+EXPORT_SYMBOL fs/configfs/configfs 0x8d7f4721 configfs_depend_item
+EXPORT_SYMBOL fs/configfs/configfs 0xbf3c4eae config_item_set_name
+EXPORT_SYMBOL fs/configfs/configfs 0xbfeaf31c config_group_init
+EXPORT_SYMBOL fs/configfs/configfs 0xc7b27695 configfs_unregister_subsystem
+EXPORT_SYMBOL fs/configfs/configfs 0xe327440b configfs_register_subsystem
+EXPORT_SYMBOL fs/fscache/fscache 0x006ff147 fscache_mark_pages_cached
+EXPORT_SYMBOL fs/fscache/fscache 0x00f118ed __fscache_write_page
+EXPORT_SYMBOL fs/fscache/fscache 0x07d9b576 fscache_wait_bit_interruptible
+EXPORT_SYMBOL fs/fscache/fscache 0x0c3cbe50 __fscache_attr_changed
+EXPORT_SYMBOL fs/fscache/fscache 0x0f5775e1 __fscache_register_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x1d35a8db fscache_enqueue_operation
+EXPORT_SYMBOL fs/fscache/fscache 0x1d86ce78 __fscache_update_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x1ecace05 fscache_put_operation
+EXPORT_SYMBOL fs/fscache/fscache 0x31e72325 __fscache_maybe_release_page
+EXPORT_SYMBOL fs/fscache/fscache 0x3fc23318 fscache_wait_bit
+EXPORT_SYMBOL fs/fscache/fscache 0x43f4eb1f __fscache_relinquish_cookie
+EXPORT_SYMBOL fs/fscache/fscache 0x461d33fb fscache_object_lookup_negative
+EXPORT_SYMBOL fs/fscache/fscache 0x6f0d1695 fscache_init_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id
+EXPORT_SYMBOL fs/fscache/fscache 0x82635187 fscache_obtained_object
+EXPORT_SYMBOL fs/fscache/fscache 0x86f8894f fscache_object_states
+EXPORT_SYMBOL fs/fscache/fscache 0x893b7693 fscache_add_cache
+EXPORT_SYMBOL fs/fscache/fscache 0x906f0ca1 __fscache_check_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x91e5fa0c __fscache_unregister_netfs
+EXPORT_SYMBOL fs/fscache/fscache 0x92c3cfac __fscache_wait_on_page_write
+EXPORT_SYMBOL fs/fscache/fscache 0x9f66d76a fscache_fsdef_index
+EXPORT_SYMBOL fs/fscache/fscache 0xa46888e5 fscache_object_slow_work_ops
+EXPORT_SYMBOL fs/fscache/fscache 0xa5b1a194 fscache_io_error
+EXPORT_SYMBOL fs/fscache/fscache 0xbc3f38e7 __fscache_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xbd39dc1e fscache_cache_cleared_wq
+EXPORT_SYMBOL fs/fscache/fscache 0xc51ccca5 __fscache_read_or_alloc_pages
+EXPORT_SYMBOL fs/fscache/fscache 0xd7f293ea __fscache_uncache_page
+EXPORT_SYMBOL fs/fscache/fscache 0xdef48dab fscache_check_aux
+EXPORT_SYMBOL fs/fscache/fscache 0xe0d4b6d5 __fscache_read_or_alloc_page
+EXPORT_SYMBOL fs/fscache/fscache 0xee85f61d fscache_withdraw_cache
+EXPORT_SYMBOL fs/fscache/fscache 0xffb5286b __fscache_acquire_cookie
+EXPORT_SYMBOL fs/nfsd/nfsd 0x23f0a2c8 nfs4_acl_nfsv4_to_posix
+EXPORT_SYMBOL fs/nfsd/nfsd 0x35e33c1e nfs4_acl_write_who
+EXPORT_SYMBOL fs/nfsd/nfsd 0x46ffdc39 nfs4_acl_posix_to_nfsv4
+EXPORT_SYMBOL fs/nfsd/nfsd 0x5a157ae4 nfs4_acl_get_whotype
+EXPORT_SYMBOL fs/nfsd/nfsd 0x96ce9bb4 nfs4_acl_new
+EXPORT_SYMBOL fs/quota/quota_tree 0x2273dc8c qtree_delete_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x7c41f068 qtree_read_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x88506b42 qtree_release_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0x98771524 qtree_write_dquot
+EXPORT_SYMBOL fs/quota/quota_tree 0xcecd3620 qtree_entry_unused
+EXPORT_SYMBOL lib/crc-ccitt 0x651c2313 crc_ccitt
+EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table
+EXPORT_SYMBOL lib/crc-itu-t 0x276c7e62 crc_itu_t
+EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table
+EXPORT_SYMBOL lib/crc-t10dif 0x782acba5 crc_t10dif
+EXPORT_SYMBOL lib/crc7 0xc086bfba crc7
+EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table
+EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x315c65fd zlib_deflateInit2
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0x48034724 zlib_deflateReset
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xaf64ad0d zlib_deflate
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf0caf44b zlib_deflate_workspacesize
+EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd
+EXPORT_SYMBOL net/802/p8022 0x9b934d07 unregister_8022_client
+EXPORT_SYMBOL net/802/p8022 0xa72c9a1d register_8022_client
+EXPORT_SYMBOL net/802/p8023 0x7552bee8 make_8023_client
+EXPORT_SYMBOL net/802/p8023 0xf9770323 destroy_8023_client
+EXPORT_SYMBOL net/802/psnap 0x6800fa92 unregister_snap_client
+EXPORT_SYMBOL net/802/psnap 0xdc11d6aa register_snap_client
+EXPORT_SYMBOL net/9p/9pnet 0x03d10304 v9fs_get_trans_by_name
+EXPORT_SYMBOL net/9p/9pnet 0x0b3ac49a p9pdu_dump
+EXPORT_SYMBOL net/9p/9pnet 0x0fa02db0 p9_client_clunk
+EXPORT_SYMBOL net/9p/9pnet 0x151adc8f p9_idpool_destroy
+EXPORT_SYMBOL net/9p/9pnet 0x174b0215 p9_client_wstat
+EXPORT_SYMBOL net/9p/9pnet 0x1a0ccd1b p9_idpool_create
+EXPORT_SYMBOL net/9p/9pnet 0x1cb2d710 p9_client_fcreate
+EXPORT_SYMBOL net/9p/9pnet 0x28cbc8b6 p9_client_begin_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x2d3b0f25 p9_client_open
+EXPORT_SYMBOL net/9p/9pnet 0x365260f9 p9_idpool_check
+EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno
+EXPORT_SYMBOL net/9p/9pnet 0x41e6bc51 p9_parse_header
+EXPORT_SYMBOL net/9p/9pnet 0x43e8af63 v9fs_unregister_trans
+EXPORT_SYMBOL net/9p/9pnet 0x5403b606 p9_idpool_get
+EXPORT_SYMBOL net/9p/9pnet 0x63b4f574 p9_tag_lookup
+EXPORT_SYMBOL net/9p/9pnet 0x6eeec75c p9_client_cb
+EXPORT_SYMBOL net/9p/9pnet 0x74d01f94 p9_is_proto_dotl
+EXPORT_SYMBOL net/9p/9pnet 0x76b79bf1 p9stat_read
+EXPORT_SYMBOL net/9p/9pnet 0x7a7ea3e5 p9_client_statfs
+EXPORT_SYMBOL net/9p/9pnet 0x828f5963 p9_client_disconnect
+EXPORT_SYMBOL net/9p/9pnet 0x9c964743 p9stat_free
+EXPORT_SYMBOL net/9p/9pnet 0x9f96ad31 p9_client_auth
+EXPORT_SYMBOL net/9p/9pnet 0xa3620ab6 v9fs_get_default_trans
+EXPORT_SYMBOL net/9p/9pnet 0xa92cdfcd p9_idpool_put
+EXPORT_SYMBOL net/9p/9pnet 0xaae20a91 p9_client_version
+EXPORT_SYMBOL net/9p/9pnet 0xafb91781 p9_client_create
+EXPORT_SYMBOL net/9p/9pnet 0xbb41e6fa p9_client_stat
+EXPORT_SYMBOL net/9p/9pnet 0xc9e71bdf p9_client_remove
+EXPORT_SYMBOL net/9p/9pnet 0xcdfae8a0 p9_client_walk
+EXPORT_SYMBOL net/9p/9pnet 0xce4a093b p9_client_rename
+EXPORT_SYMBOL net/9p/9pnet 0xd8ac0c8a p9_client_destroy
+EXPORT_SYMBOL net/9p/9pnet 0xdfb47aff p9_client_write
+EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init
+EXPORT_SYMBOL net/9p/9pnet 0xe80460da p9_client_read
+EXPORT_SYMBOL net/9p/9pnet 0xeb32173a p9_is_proto_dotu
+EXPORT_SYMBOL net/9p/9pnet 0xf1ef6036 v9fs_register_trans
+EXPORT_SYMBOL net/9p/9pnet 0xfa98edb4 p9_client_attach
+EXPORT_SYMBOL net/appletalk/appletalk 0x68f96012 atalk_find_dev_addr
+EXPORT_SYMBOL net/appletalk/appletalk 0x960d1cbb alloc_ltalkdev
+EXPORT_SYMBOL net/appletalk/appletalk 0xa0a22983 aarp_send_ddp
+EXPORT_SYMBOL net/appletalk/appletalk 0xbaaf1a9c atrtr_get_dev
+EXPORT_SYMBOL net/atm/atm 0x115bb2ab atm_charge
+EXPORT_SYMBOL net/atm/atm 0x13105c37 atm_dev_lookup
+EXPORT_SYMBOL net/atm/atm 0x226d4f5f atm_alloc_charge
+EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash
+EXPORT_SYMBOL net/atm/atm 0x45d90945 atm_dev_register
+EXPORT_SYMBOL net/atm/atm 0x46f8e96e deregister_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x8c8984ad atm_init_aal5
+EXPORT_SYMBOL net/atm/atm 0x9f7017fc register_atm_ioctl
+EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats
+EXPORT_SYMBOL net/atm/atm 0xa7bbcdf5 vcc_release_async
+EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats
+EXPORT_SYMBOL net/atm/atm 0xb35c487d vcc_insert_socket
+EXPORT_SYMBOL net/atm/atm 0xd088c9b4 atm_dev_deregister
+EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal
+EXPORT_SYMBOL net/atm/atm 0xfac5ae25 vcc_sklist_lock
+EXPORT_SYMBOL net/atm/atm 0xfbc3b719 atm_proc_root
+EXPORT_SYMBOL net/bridge/bridge 0xfeb8a7de br_should_route_hook
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x52c57625 ebt_unregister_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x7b0dce6c ebt_register_table
+EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xed020711 ebt_do_table
+EXPORT_SYMBOL net/caif/caif 0x05d6001f cfpkt_add_trail
+EXPORT_SYMBOL net/caif/caif 0x05d6c3d4 caif_release_client
+EXPORT_SYMBOL net/caif/caif 0x084890b4 cfpkt_more
+EXPORT_SYMBOL net/caif/caif 0x0cc493be cfpkt_pad_trail
+EXPORT_SYMBOL net/caif/caif 0x0f41456a cfcnfg_disconn_adapt_layer
+EXPORT_SYMBOL net/caif/caif 0x16dd9dd9 cfpkt_info
+EXPORT_SYMBOL net/caif/caif 0x2f0ec297 caif_disconnect_client
+EXPORT_SYMBOL net/caif/caif 0x32c2cfeb cfpkt_add_body
+EXPORT_SYMBOL net/caif/caif 0x4507cfcd cfpkt_append
+EXPORT_SYMBOL net/caif/caif 0x48014184 caif_connect_client
+EXPORT_SYMBOL net/caif/caif 0x4ab4f875 cfpkt_raw_append
+EXPORT_SYMBOL net/caif/caif 0x4b1f8785 cfpkt_peek_head
+EXPORT_SYMBOL net/caif/caif 0x56676d06 cfpkt_tonative
+EXPORT_SYMBOL net/caif/caif 0x5a71b631 cfcnfg_create
+EXPORT_SYMBOL net/caif/caif 0x5bdcad17 cfpkt_create_uplink
+EXPORT_SYMBOL net/caif/caif 0x5be1f657 cfpkt_erroneous
+EXPORT_SYMBOL net/caif/caif 0x5be5b933 cfpkt_addbdy
+EXPORT_SYMBOL net/caif/caif 0x5c3e8e4b cfpkt_extr_head
+EXPORT_SYMBOL net/caif/caif 0x688502d6 cfpkt_fromnative
+EXPORT_SYMBOL net/caif/caif 0x6fb28119 cfpkt_destroy
+EXPORT_SYMBOL net/caif/caif 0x71b01c40 cfpkt_add_head
+EXPORT_SYMBOL net/caif/caif 0x71bded2d cfcnfg_del_phy_layer
+EXPORT_SYMBOL net/caif/caif 0x76ef72e4 cfpkt_setlen
+EXPORT_SYMBOL net/caif/caif 0x99e104a5 cfpkt_dequeue
+EXPORT_SYMBOL net/caif/caif 0xa39429ca cfpkt_create
+EXPORT_SYMBOL net/caif/caif 0xab000832 cfpkt_getlen
+EXPORT_SYMBOL net/caif/caif 0xaf745d43 cfcnfg_add_phy_layer
+EXPORT_SYMBOL net/caif/caif 0xb19f749b cfpkt_clone_release
+EXPORT_SYMBOL net/caif/caif 0xbeec84af cfcnfg_add_adaptation_layer
+EXPORT_SYMBOL net/caif/caif 0xd68adb1d cfpktq_create
+EXPORT_SYMBOL net/caif/caif 0xdf09b457 cfpkt_qpeek
+EXPORT_SYMBOL net/caif/caif 0xe0348852 cfpkt_queue
+EXPORT_SYMBOL net/caif/caif 0xe5cac5ce cfpkt_log_pkt
+EXPORT_SYMBOL net/caif/caif 0xe68642d0 cfpkt_extr_trail
+EXPORT_SYMBOL net/caif/caif 0xebd538b7 cfpkt_raw_extract
+EXPORT_SYMBOL net/caif/caif 0xf1cb7b14 cfpkt_iterate
+EXPORT_SYMBOL net/caif/caif 0xf45a1368 get_caif_conf
+EXPORT_SYMBOL net/caif/caif 0xf4a15a9a cfpkt_split
+EXPORT_SYMBOL net/caif/caif 0xf64939a5 cfcnfg_release_adap_layer
+EXPORT_SYMBOL net/caif/caif 0xf673df77 cfpkt_qcount
+EXPORT_SYMBOL net/can/can 0x4f955d8a can_proto_register
+EXPORT_SYMBOL net/can/can 0x58d6dfd7 can_send
+EXPORT_SYMBOL net/can/can 0x85b15f8e can_rx_unregister
+EXPORT_SYMBOL net/can/can 0x8cfd425d can_proto_unregister
+EXPORT_SYMBOL net/can/can 0x9a4332f7 can_rx_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0169bd26 ieee802154_nl_beacon_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x0665514e wpan_phy_register
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x146fd635 wpan_phy_find
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x4d74c4fe ieee802154_nl_start_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x79870f2f wpan_phy_for_each
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x87890963 ieee802154_nl_assoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x89beb9a2 ieee802154_nl_disassoc_indic
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x9d1d3587 wpan_phy_unregister
+EXPORT_SYMBOL net/ieee802154/ieee802154 0x9fa0cfe3 ieee802154_nl_scan_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xaa6cf0f5 wpan_phy_free
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xb09db89c ieee802154_nl_disassoc_confirm
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xd2147927 wpan_phy_alloc
+EXPORT_SYMBOL net/ieee802154/ieee802154 0xd2298dd6 ieee802154_nl_assoc_indic
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x587d9d29 arpt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7580fc87 arpt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xc9f42698 arpt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x26b59456 ipt_unregister_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x510f9a9a ipt_do_table
+EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb91026d3 ipt_register_table
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x2a38236f nf_nat_protocol_unregister
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x365252c0 nf_nat_protocol_register
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x6640fad6 nf_nat_follow_master
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x74f4c2f1 __nf_nat_mangle_tcp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0x77ff37a6 nf_nat_mangle_udp_packet
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xa85f3963 nf_nat_used_tuple
+EXPORT_SYMBOL net/ipv4/netfilter/nf_nat 0xf63d347a nf_nat_setup_info
+EXPORT_SYMBOL net/ipv4/tunnel4 0x96fa2c4a xfrm4_tunnel_deregister
+EXPORT_SYMBOL net/ipv4/tunnel4 0x97006438 xfrm4_tunnel_register
+EXPORT_SYMBOL net/ipv6/ipv6 0x020143d2 icmpv6_send
+EXPORT_SYMBOL net/ipv6/ipv6 0x0984355e ipv6_chk_prefix
+EXPORT_SYMBOL net/ipv6/ipv6 0x0b0d888b icmpv6_err_convert
+EXPORT_SYMBOL net/ipv6/ipv6 0x12c02d82 xfrm6_rcv_spi
+EXPORT_SYMBOL net/ipv6/ipv6 0x13d9f405 ndisc_build_skb
+EXPORT_SYMBOL net/ipv6/ipv6 0x1bdae7e4 inet6_del_protocol
+EXPORT_SYMBOL net/ipv6/ipv6 0x2316102c in6_dev_finish_destroy
+EXPORT_SYMBOL net/ipv6/ipv6 0x31284ed3 ip6_route_me_harder
+EXPORT_SYMBOL net/ipv6/ipv6 0x4aa72947 inet6_getname
+EXPORT_SYMBOL net/ipv6/ipv6 0x537da5d4 ip6_frag_init
+EXPORT_SYMBOL net/ipv6/ipv6 0x538383c0 unregister_inet6addr_notifier
+EXPORT_SYMBOL net/ipv6/ipv6 0x68cb7125 ipv6_getsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0x69d8375e ndisc_send_skb
+EXPORT_SYMBOL net/ipv6/ipv6 0x6edb23c7 inet6_register_protosw
+EXPORT_SYMBOL net/ipv6/ipv6 0x7d35ee1a compat_ipv6_setsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0x814bbc1d xfrm6_prepare_output
+EXPORT_SYMBOL net/ipv6/ipv6 0x88e1318b ip6_frag_match
+EXPORT_SYMBOL net/ipv6/ipv6 0x95b75a19 ipv6_push_nfrag_opts
+EXPORT_SYMBOL net/ipv6/ipv6 0x984460fe rt6_lookup
+EXPORT_SYMBOL net/ipv6/ipv6 0x9d9319ed ndisc_mc_map
+EXPORT_SYMBOL net/ipv6/ipv6 0x9e582def inet6_release
+EXPORT_SYMBOL net/ipv6/ipv6 0x9f181e71 ipv6_dev_get_saddr
+EXPORT_SYMBOL net/ipv6/ipv6 0xb21acef4 xfrm6_rcv
+EXPORT_SYMBOL net/ipv6/ipv6 0xb369ece0 compat_ipv6_getsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0xb4f515cf xfrm6_input_addr
+EXPORT_SYMBOL net/ipv6/ipv6 0xb95aa9c5 ipv6_setsockopt
+EXPORT_SYMBOL net/ipv6/ipv6 0xc6cb6c13 nf_ip6_checksum
+EXPORT_SYMBOL net/ipv6/ipv6 0xc6f1d205 inet6_ioctl
+EXPORT_SYMBOL net/ipv6/ipv6 0xca4defed inet6_add_protocol
+EXPORT_SYMBOL net/ipv6/ipv6 0xce19bac5 register_inet6addr_notifier
+EXPORT_SYMBOL net/ipv6/ipv6 0xd3e39ff1 inet6_bind
+EXPORT_SYMBOL net/ipv6/ipv6 0xd76711b7 xfrm6_find_1stfragopt
+EXPORT_SYMBOL net/ipv6/ipv6 0xe0f387ba inet6_unregister_protosw
+EXPORT_SYMBOL net/ipv6/ipv6 0xe59848c9 ip6_xmit
+EXPORT_SYMBOL net/ipv6/ipv6 0xe690b8fd __ipv6_isatap_ifid
+EXPORT_SYMBOL net/ipv6/ipv6 0xeaa33816 ipv6_chk_addr
+EXPORT_SYMBOL net/ipv6/ipv6 0xec5e1e63 ip6_route_output
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x1339fef6 ipv6_find_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x8c5fa30a ip6t_register_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x903488ca ip6t_unregister_table
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xb8bddf33 ip6t_ext_hdr
+EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xf60a7d63 ip6t_do_table
+EXPORT_SYMBOL net/ipv6/tunnel6 0x15f8d13f xfrm6_tunnel_deregister
+EXPORT_SYMBOL net/ipv6/tunnel6 0xc534aa6a xfrm6_tunnel_register
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x6604b16c xfrm6_tunnel_spi_lookup
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x7bf4339e xfrm6_tunnel_alloc_spi
+EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xad026993 xfrm6_tunnel_free_spi
+EXPORT_SYMBOL net/l2tp/l2tp_core 0x41ad05bd l2tp_tunnel_destruct
+EXPORT_SYMBOL net/l2tp/l2tp_core 0xd0a57607 l2tp_recv_common
+EXPORT_SYMBOL net/llc/llc 0x2169aeba llc_add_pack
+EXPORT_SYMBOL net/llc/llc 0x3807915a llc_sap_close
+EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack
+EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list
+EXPORT_SYMBOL net/llc/llc 0x5c915993 llc_sap_list_lock
+EXPORT_SYMBOL net/llc/llc 0x8713094a llc_build_and_send_ui_pkt
+EXPORT_SYMBOL net/llc/llc 0x8d2275b6 llc_sap_open
+EXPORT_SYMBOL net/llc/llc 0x8dec4250 llc_mac_hdr_init
+EXPORT_SYMBOL net/llc/llc 0xa44d00c6 llc_sap_find
+EXPORT_SYMBOL net/llc/llc 0xd481cf02 llc_set_station_handler
+EXPORT_SYMBOL net/mac80211/mac80211 0x0630a2c4 ieee80211_rate_control_register
+EXPORT_SYMBOL net/mac80211/mac80211 0x09a715b7 ieee80211_queue_work
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b61cd29 ieee80211_beacon_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0x0b62d422 ieee80211_rate_control_unregister
+EXPORT_SYMBOL net/mac80211/mac80211 0x0e8a51b6 ieee80211_sta_block_awake
+EXPORT_SYMBOL net/mac80211/mac80211 0x16f8d954 ieee80211_ctstoself_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x1a95c1fd ieee80211_ctstoself_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x1eaef9b1 ieee80211_start_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0x2bae1e97 ieee80211_get_tkip_key
+EXPORT_SYMBOL net/mac80211/mac80211 0x349e9587 ieee80211_nullfunc_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c370704 ieee80211_probereq_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x3c474683 ieee80211_chswitch_done
+EXPORT_SYMBOL net/mac80211/mac80211 0x45198660 ieee80211_stop_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x47c1855f ieee80211_wake_queue
+EXPORT_SYMBOL net/mac80211/mac80211 0x61ff2436 ieee80211_generic_frame_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0x64437bee ieee80211_stop_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0x657bede9 ieee80211_rx
+EXPORT_SYMBOL net/mac80211/mac80211 0x676057dc ieee80211_scan_completed
+EXPORT_SYMBOL net/mac80211/mac80211 0x7466d907 ieee80211_stop_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x7504a64c rate_control_send_low
+EXPORT_SYMBOL net/mac80211/mac80211 0x7eafcb31 ieee80211_pspoll_get
+EXPORT_SYMBOL net/mac80211/mac80211 0x89f6ac93 ieee80211_start_tx_ba_cb_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x8fc63d65 ieee80211_register_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0x9541ae53 ieee80211_rx_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0x9686769a ieee80211_unregister_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xa07dddbc ieee80211_stop_tx_ba_session
+EXPORT_SYMBOL net/mac80211/mac80211 0xa175e003 ieee80211_start_tx_ba_cb
+EXPORT_SYMBOL net/mac80211/mac80211 0xa2ce3dc4 ieee80211_rts_get
+EXPORT_SYMBOL net/mac80211/mac80211 0xa3c4efa5 ieee80211_cqm_rssi_notify
+EXPORT_SYMBOL net/mac80211/mac80211 0xab084a20 __ieee80211_get_assoc_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xae0e4eb1 ieee80211_free_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xae91e87f __ieee80211_get_tx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xaf40669c __ieee80211_get_rx_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xb68ca516 wiphy_to_ieee80211_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xb7bdc2f6 ieee80211_alloc_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xc48e8875 __ieee80211_get_radio_led_name
+EXPORT_SYMBOL net/mac80211/mac80211 0xc62a5ddb ieee80211_rts_duration
+EXPORT_SYMBOL net/mac80211/mac80211 0xd506c0fe ieee80211_find_sta
+EXPORT_SYMBOL net/mac80211/mac80211 0xd621597e ieee80211_queue_stopped
+EXPORT_SYMBOL net/mac80211/mac80211 0xdaf8b52d ieee80211_queue_delayed_work
+EXPORT_SYMBOL net/mac80211/mac80211 0xde26d58f ieee80211_get_buffered_bc
+EXPORT_SYMBOL net/mac80211/mac80211 0xeb383545 ieee80211_beacon_get_tim
+EXPORT_SYMBOL net/mac80211/mac80211 0xeb59509a ieee80211_restart_hw
+EXPORT_SYMBOL net/mac80211/mac80211 0xf244ac58 ieee80211_tx_status_irqsafe
+EXPORT_SYMBOL net/mac80211/mac80211 0xf309b8ce ieee80211_stop_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xf3eb8484 ieee80211_wake_queues
+EXPORT_SYMBOL net/mac80211/mac80211 0xfdeb0f51 ieee80211_connection_loss
+EXPORT_SYMBOL net/mac80211/mac80211 0xfe81e0d3 ieee80211_tx_status
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x056dc8a8 ip_vs_conn_put
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x07dd9473 ip_vs_conn_out_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x143d16c5 ip_vs_tcp_conn_listen
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x252a860e ip_vs_conn_new
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x44276bc8 register_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x51cbc465 ip_vs_skb_replace
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6c78bec3 unregister_ip_vs_scheduler
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x816e1dfe register_ip_vs_app
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9322297b register_ip_vs_app_inc
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa1dbc2d8 ip_vs_proto_name
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xaa41a695 ip_vs_conn_in_get
+EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf1dec540 unregister_ip_vs_app
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xe8e3e2f7 __nf_ct_ext_add
+EXPORT_SYMBOL net/netfilter/nf_conntrack 0xf6911d60 __nf_ct_ext_destroy
+EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xfd54e308 nf_ct_gre_keymap_flush
+EXPORT_SYMBOL net/netfilter/x_tables 0x1e3ec86f xt_unregister_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x43513c0f xt_find_match
+EXPORT_SYMBOL net/netfilter/x_tables 0x4c4a8f49 xt_register_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0x5d1e775a xt_register_matches
+EXPORT_SYMBOL net/netfilter/x_tables 0x6f9dde31 xt_free_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xade034ad xt_unregister_targets
+EXPORT_SYMBOL net/netfilter/x_tables 0xae2014eb xt_alloc_table_info
+EXPORT_SYMBOL net/netfilter/x_tables 0xc62c6ebb xt_register_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xcd2ba814 xt_unregister_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xd1bdc841 xt_register_match
+EXPORT_SYMBOL net/netfilter/x_tables 0xdc8eced0 xt_find_target
+EXPORT_SYMBOL net/netfilter/x_tables 0xf93d8b11 xt_unregister_matches
+EXPORT_SYMBOL net/phonet/phonet 0x00e472a4 pn_sock_hash
+EXPORT_SYMBOL net/phonet/phonet 0x319914e2 pn_sock_get_port
+EXPORT_SYMBOL net/phonet/phonet 0x35732e97 pn_sock_unhash
+EXPORT_SYMBOL net/phonet/phonet 0x71cf6c6d phonet_proto_unregister
+EXPORT_SYMBOL net/phonet/phonet 0xa405d1f3 phonet_proto_register
+EXPORT_SYMBOL net/phonet/phonet 0xb3c2dee3 phonet_header_ops
+EXPORT_SYMBOL net/phonet/phonet 0xc9eac848 phonet_stream_ops
+EXPORT_SYMBOL net/phonet/phonet 0xf0de28ca pn_skb_send
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x287e3c88 rxrpc_kernel_get_abort_code
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3b49046c rxrpc_kernel_intercept_rx_messages
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x42e588fc rxrpc_kernel_is_data_last
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x46dd1582 rxrpc_kernel_get_error_number
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4e5e48a3 rxrpc_kernel_reject_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x535351d8 rxrpc_kernel_begin_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6cfaff34 rxrpc_kernel_abort_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6d65bc29 rxrpc_get_server_data_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x84a8ef0a rxrpc_kernel_data_delivered
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8726611f key_type_rxrpc
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x89698d01 rxrpc_kernel_free_skb
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x961d1709 rxrpc_kernel_send_data
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa6b72901 rxrpc_get_null_key
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdfddb4df rxrpc_kernel_end_call
+EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf840b026 rxrpc_kernel_accept_call
+EXPORT_SYMBOL net/sunrpc/sunrpc 0x9ac02f4b svc_pool_stats_open
+EXPORT_SYMBOL net/tipc/tipc 0x08acf310 tipc_available_nodes
+EXPORT_SYMBOL net/tipc/tipc 0x0b074a7b tipc_multicast
+EXPORT_SYMBOL net/tipc/tipc 0x0c6eff9b tipc_continue
+EXPORT_SYMBOL net/tipc/tipc 0x10d40fcd tipc_isconnected
+EXPORT_SYMBOL net/tipc/tipc 0x12b9b9b4 tipc_reject_msg
+EXPORT_SYMBOL net/tipc/tipc 0x1472b270 tipc_disconnect
+EXPORT_SYMBOL net/tipc/tipc 0x1479cb03 tipc_deleteport
+EXPORT_SYMBOL net/tipc/tipc 0x15b5ecde tipc_set_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x16f27683 tipc_block_bearer
+EXPORT_SYMBOL net/tipc/tipc 0x23daecbd tipc_send
+EXPORT_SYMBOL net/tipc/tipc 0x2569b7e2 tipc_register_media
+EXPORT_SYMBOL net/tipc/tipc 0x259b74f9 tipc_acknowledge
+EXPORT_SYMBOL net/tipc/tipc 0x296d1283 tipc_send_buf_fast
+EXPORT_SYMBOL net/tipc/tipc 0x310d1bc9 tipc_detach
+EXPORT_SYMBOL net/tipc/tipc 0x32f3a6b7 tipc_send_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x3712e340 tipc_portunreliable
+EXPORT_SYMBOL net/tipc/tipc 0x3976041f tipc_set_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x3e5775b6 tipc_createport_raw
+EXPORT_SYMBOL net/tipc/tipc 0x419b02fc tipc_send2port
+EXPORT_SYMBOL net/tipc/tipc 0x4b2243c6 tipc_portimportance
+EXPORT_SYMBOL net/tipc/tipc 0x538b228a tipc_withdraw
+EXPORT_SYMBOL net/tipc/tipc 0x5637ed44 tipc_get_mode
+EXPORT_SYMBOL net/tipc/tipc 0x5c0d4b5c tipc_ref_valid
+EXPORT_SYMBOL net/tipc/tipc 0x61a40475 tipc_get_port
+EXPORT_SYMBOL net/tipc/tipc 0x62a681a3 tipc_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0x768c7589 tipc_recv_msg
+EXPORT_SYMBOL net/tipc/tipc 0x78b6463f tipc_forward_buf2name
+EXPORT_SYMBOL net/tipc/tipc 0x88b73627 tipc_get_addr
+EXPORT_SYMBOL net/tipc/tipc 0x9b675113 tipc_send_buf
+EXPORT_SYMBOL net/tipc/tipc 0x9c45558e tipc_enable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xa1b42d32 tipc_forward2port
+EXPORT_SYMBOL net/tipc/tipc 0xadd203d0 tipc_connect2port
+EXPORT_SYMBOL net/tipc/tipc 0xae0103c3 tipc_shutdown
+EXPORT_SYMBOL net/tipc/tipc 0xb1f8eacc tipc_send2name
+EXPORT_SYMBOL net/tipc/tipc 0xb35b672c tipc_publish
+EXPORT_SYMBOL net/tipc/tipc 0xb8c9b245 tipc_send_buf2port
+EXPORT_SYMBOL net/tipc/tipc 0xcec8514a tipc_set_portunreturnable
+EXPORT_SYMBOL net/tipc/tipc 0xcee290be tipc_forward2name
+EXPORT_SYMBOL net/tipc/tipc 0xd44731e5 tipc_ownidentity
+EXPORT_SYMBOL net/tipc/tipc 0xda7f9d3f tipc_attach
+EXPORT_SYMBOL net/tipc/tipc 0xdf5008fc tipc_peer
+EXPORT_SYMBOL net/tipc/tipc 0xe7aece47 tipc_ispublished
+EXPORT_SYMBOL net/tipc/tipc 0xeea315b5 tipc_createport
+EXPORT_SYMBOL net/tipc/tipc 0xeefd49b3 tipc_get_handle
+EXPORT_SYMBOL net/tipc/tipc 0xef50a1ef tipc_disable_bearer
+EXPORT_SYMBOL net/tipc/tipc 0xfcef27fd tipc_forward_buf2port
+EXPORT_SYMBOL net/wimax/wimax 0x7effc10c wimax_reset
+EXPORT_SYMBOL net/wimax/wimax 0xae9fe44c wimax_rfkill
+EXPORT_SYMBOL net/wireless/cfg80211 0x08b686f6 cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x0e3d14c0 wiphy_unregister
+EXPORT_SYMBOL net/wireless/cfg80211 0x105091b8 regulatory_hint
+EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x1b8192bf cfg80211_ready_on_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x26197574 __cfg80211_send_disassoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x2989d1f1 ieee80211_data_to_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x2a62198f __ieee80211_get_channel
+EXPORT_SYMBOL net/wireless/cfg80211 0x2b09f949 cfg80211_michael_mic_failure
+EXPORT_SYMBOL net/wireless/cfg80211 0x38768fe5 ieee80211_data_from_8023
+EXPORT_SYMBOL net/wireless/cfg80211 0x41440661 cfg80211_new_sta
+EXPORT_SYMBOL net/wireless/cfg80211 0x45a19482 cfg80211_inform_bss_frame
+EXPORT_SYMBOL net/wireless/cfg80211 0x4e86d004 cfg80211_connect_result
+EXPORT_SYMBOL net/wireless/cfg80211 0x553a94a5 ieee80211_get_hdrlen_from_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x5c4d9950 wiphy_rfkill_start_polling
+EXPORT_SYMBOL net/wireless/cfg80211 0x637ea185 cfg80211_send_rx_assoc
+EXPORT_SYMBOL net/wireless/cfg80211 0x68b65f3b cfg80211_rx_action
+EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header
+EXPORT_SYMBOL net/wireless/cfg80211 0x6ec76888 cfg80211_testmode_alloc_event_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0x70a9a781 cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x75dc2143 cfg80211_unlink_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x7a16927c ieee80211_amsdu_to_8023s
+EXPORT_SYMBOL net/wireless/cfg80211 0x7bb4f1fd cfg80211_classify8021d
+EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x8158ef15 __cfg80211_auth_canceled
+EXPORT_SYMBOL net/wireless/cfg80211 0x824388f7 cfg80211_testmode_event
+EXPORT_SYMBOL net/wireless/cfg80211 0x8a6cf27a cfg80211_cqm_rssi_notify
+EXPORT_SYMBOL net/wireless/cfg80211 0x8c35d732 ieee80211_hdrlen
+EXPORT_SYMBOL net/wireless/cfg80211 0x8eddc6ad wiphy_apply_custom_regulatory
+EXPORT_SYMBOL net/wireless/cfg80211 0x8f0fa1d4 __cfg80211_send_deauth
+EXPORT_SYMBOL net/wireless/cfg80211 0x92a3f18d cfg80211_get_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0x97dd46d3 ieee80211_bss_get_ie
+EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init
+EXPORT_SYMBOL net/wireless/cfg80211 0x99929b16 freq_reg_info
+EXPORT_SYMBOL net/wireless/cfg80211 0x9a9f7bf9 wiphy_new
+EXPORT_SYMBOL net/wireless/cfg80211 0x9b32bf17 cfg80211_ibss_joined
+EXPORT_SYMBOL net/wireless/cfg80211 0xb216c4b4 cfg80211_testmode_alloc_reply_skb
+EXPORT_SYMBOL net/wireless/cfg80211 0xb3ddc9af wiphy_rfkill_set_hw_state
+EXPORT_SYMBOL net/wireless/cfg80211 0xb461b24e cfg80211_disconnected
+EXPORT_SYMBOL net/wireless/cfg80211 0xb564edd3 cfg80211_send_rx_auth
+EXPORT_SYMBOL net/wireless/cfg80211 0xbb65b8e5 cfg80211_send_assoc_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xc01d3a1b cfg80211_send_auth_timeout
+EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next
+EXPORT_SYMBOL net/wireless/cfg80211 0xc88fe37d cfg80211_action_tx_status
+EXPORT_SYMBOL net/wireless/cfg80211 0xccc291b3 ieee80211_channel_to_frequency
+EXPORT_SYMBOL net/wireless/cfg80211 0xd8694249 ieee80211_get_response_rate
+EXPORT_SYMBOL net/wireless/cfg80211 0xdac38586 cfg80211_inform_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xdc13de18 cfg80211_roamed
+EXPORT_SYMBOL net/wireless/cfg80211 0xdf23d012 wiphy_register
+EXPORT_SYMBOL net/wireless/cfg80211 0xe5a8c77d cfg80211_scan_done
+EXPORT_SYMBOL net/wireless/cfg80211 0xea12c274 cfg80211_get_mesh
+EXPORT_SYMBOL net/wireless/cfg80211 0xee1a5bd0 cfg80211_testmode_reply
+EXPORT_SYMBOL net/wireless/cfg80211 0xf46ad790 cfg80211_put_bss
+EXPORT_SYMBOL net/wireless/cfg80211 0xfad4d2ca wiphy_free
+EXPORT_SYMBOL net/wireless/cfg80211 0xfb10b117 cfg80211_remain_on_channel_expired
+EXPORT_SYMBOL net/wireless/cfg80211 0xfb5cb92c wiphy_rfkill_stop_polling
+EXPORT_SYMBOL net/wireless/lib80211 0x230f3ffb lib80211_crypt_deinit_handler
+EXPORT_SYMBOL net/wireless/lib80211 0x2477e6b7 lib80211_unregister_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid
+EXPORT_SYMBOL net/wireless/lib80211 0x6a34d93b lib80211_get_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0x9ca85c9c lib80211_crypt_deinit_entries
+EXPORT_SYMBOL net/wireless/lib80211 0xb1e75d99 lib80211_crypt_delayed_deinit
+EXPORT_SYMBOL net/wireless/lib80211 0xbf6f8f8b lib80211_crypt_info_init
+EXPORT_SYMBOL net/wireless/lib80211 0xbff2be56 lib80211_register_crypto_ops
+EXPORT_SYMBOL net/wireless/lib80211 0xdca91967 lib80211_crypt_quiescing
+EXPORT_SYMBOL net/wireless/lib80211 0xecbfdd2e lib80211_crypt_info_free
+EXPORT_SYMBOL sound/ac97_bus 0x4b6f14d7 ac97_bus_type
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x03718661 snd_seq_kernel_client_enqueue_blocking
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x1beefaa4 snd_seq_kernel_client_write_poll
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xbfb3859c snd_seq_create_kernel_client
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe03f1bb6 snd_seq_event_port_attach
+EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x3a57f235 snd_seq_autoload_unlock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x9c1d9638 snd_seq_device_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xdf40d734 snd_seq_device_register_driver
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x11f74a44 snd_midi_event_free
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x3d8ee252 snd_midi_event_new
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x5b79538d snd_midi_event_reset_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x64ad4c8f snd_midi_event_no_status
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x76fbdcca snd_midi_event_encode_byte
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x786b2c27 snd_midi_event_encode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xaed796f7 snd_midi_event_reset_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe2f026c8 snd_midi_event_decode
+EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x82086278 snd_virmidi_new
+EXPORT_SYMBOL sound/core/snd 0x086299af snd_ctl_unregister_ioctl_compat
+EXPORT_SYMBOL sound/core/snd 0x091782c5 snd_ctl_unregister_ioctl
+EXPORT_SYMBOL sound/core/snd 0x1d34658c snd_ctl_remove_id
+EXPORT_SYMBOL sound/core/snd 0x1f641423 snd_cards
+EXPORT_SYMBOL sound/core/snd 0x2020ddd2 snd_card_free_when_closed
+EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line
+EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource
+EXPORT_SYMBOL sound/core/snd 0x379f035b _snd_ctl_add_slave
+EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit
+EXPORT_SYMBOL sound/core/snd 0x3a313dff snd_ctl_boolean_stereo_info
+EXPORT_SYMBOL sound/core/snd 0x3f1b55c3 snd_ctl_add
+EXPORT_SYMBOL sound/core/snd 0x41e28dbf snd_ctl_find_numid
+EXPORT_SYMBOL sound/core/snd 0x427d41e9 snd_card_set_id
+EXPORT_SYMBOL sound/core/snd 0x4446ce05 snd_ctl_boolean_mono_info
+EXPORT_SYMBOL sound/core/snd 0x4640e95e snd_unregister_device
+EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card
+EXPORT_SYMBOL sound/core/snd 0x4b923f10 snd_jack_set_key
+EXPORT_SYMBOL sound/core/snd 0x518bb7f8 copy_from_user_toio
+EXPORT_SYMBOL sound/core/snd 0x53249dd9 snd_device_register
+EXPORT_SYMBOL sound/core/snd 0x58c00040 snd_jack_new
+EXPORT_SYMBOL sound/core/snd 0x5ef316a7 snd_device_free
+EXPORT_SYMBOL sound/core/snd 0x5f3979bf snd_info_register
+EXPORT_SYMBOL sound/core/snd 0x643ce11c snd_ctl_register_ioctl_compat
+EXPORT_SYMBOL sound/core/snd 0x6e539018 snd_component_add
+EXPORT_SYMBOL sound/core/snd 0x77625fa3 snd_jack_report
+EXPORT_SYMBOL sound/core/snd 0x77b0a219 snd_add_device_sysfs_file
+EXPORT_SYMBOL sound/core/snd 0x800aa08d snd_card_free
+EXPORT_SYMBOL sound/core/snd 0x87d83a47 snd_card_proc_new
+EXPORT_SYMBOL sound/core/snd 0x8a359e19 snd_ctl_free_one
+EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major
+EXPORT_SYMBOL sound/core/snd 0x9581fc49 snd_seq_root
+EXPORT_SYMBOL sound/core/snd 0x958ddd96 snd_register_device_for_dev
+EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str
+EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id
+EXPORT_SYMBOL sound/core/snd 0xb12fcc5d snd_card_file_remove
+EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data
+EXPORT_SYMBOL sound/core/snd 0xbac51142 snd_ctl_new1
+EXPORT_SYMBOL sound/core/snd 0xbc230b06 snd_card_file_add
+EXPORT_SYMBOL sound/core/snd 0xbfb176b1 snd_card_register
+EXPORT_SYMBOL sound/core/snd 0xc4173ac7 snd_card_create
+EXPORT_SYMBOL sound/core/snd 0xc768f14b snd_ctl_find_id
+EXPORT_SYMBOL sound/core/snd 0xc940b79e snd_device_new
+EXPORT_SYMBOL sound/core/snd 0xcc217a96 snd_ctl_notify
+EXPORT_SYMBOL sound/core/snd 0xd1ea7c21 snd_info_create_card_entry
+EXPORT_SYMBOL sound/core/snd 0xd2422f62 snd_ctl_rename_id
+EXPORT_SYMBOL sound/core/snd 0xd250deb7 snd_info_free_entry
+EXPORT_SYMBOL sound/core/snd 0xd946ee2d snd_ctl_register_ioctl
+EXPORT_SYMBOL sound/core/snd 0xdc36801d snd_card_disconnect
+EXPORT_SYMBOL sound/core/snd 0xdd5a91c0 snd_ctl_remove
+EXPORT_SYMBOL sound/core/snd 0xe20c9214 snd_iprintf
+EXPORT_SYMBOL sound/core/snd 0xe243dde3 copy_to_user_fromio
+EXPORT_SYMBOL sound/core/snd 0xf0ddc908 snd_ctl_make_virtual_master
+EXPORT_SYMBOL sound/core/snd 0xf2cef2c6 snd_pci_quirk_lookup
+EXPORT_SYMBOL sound/core/snd 0xf3542168 snd_jack_set_parent
+EXPORT_SYMBOL sound/core/snd 0xf8b1a827 snd_info_create_module_entry
+EXPORT_SYMBOL sound/core/snd-hwdep 0x799e4015 snd_hwdep_new
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x19cc2ce3 snd_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x46b62574 snd_dma_alloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0x6d46b411 snd_dma_reserve_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xb55c44fd snd_dma_get_reserved_buf
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xc6829020 snd_malloc_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xe53929ef snd_dma_free_pages
+EXPORT_SYMBOL sound/core/snd-page-alloc 0xffa055ac snd_dma_alloc_pages_fallback
+EXPORT_SYMBOL sound/core/snd-pcm 0x022c99d4 snd_pcm_lib_mmap_noncached
+EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any
+EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0x088d306f snd_pcm_hw_constraint_ratdens
+EXPORT_SYMBOL sound/core/snd-pcm 0x0a460b28 snd_pcm_hw_constraint_list
+EXPORT_SYMBOL sound/core/snd-pcm 0x0b9b06db snd_pcm_lib_free_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x13f1cbaf snd_pcm_release_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0x1cc7a1c2 snd_pcm_new_stream
+EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed
+EXPORT_SYMBOL sound/core/snd-pcm 0x213080a4 snd_pcm_hw_param_first
+EXPORT_SYMBOL sound/core/snd-pcm 0x283f7b76 snd_pcm_lib_get_vmalloc_page
+EXPORT_SYMBOL sound/core/snd-pcm 0x292af320 snd_pcm_hw_constraint_msbits
+EXPORT_SYMBOL sound/core/snd-pcm 0x2b454617 snd_pcm_hw_param_last
+EXPORT_SYMBOL sound/core/snd-pcm 0x2cab8c4d snd_pcm_mmap_data
+EXPORT_SYMBOL sound/core/snd-pcm 0x2d44e852 snd_pcm_limit_hw_rates
+EXPORT_SYMBOL sound/core/snd-pcm 0x34f75eb1 snd_pcm_lib_read
+EXPORT_SYMBOL sound/core/snd-pcm 0x3522b618 snd_pcm_lib_readv
+EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty
+EXPORT_SYMBOL sound/core/snd-pcm 0x40c9e598 snd_pcm_lib_preallocate_free_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0x440caed6 _snd_pcm_lib_alloc_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x468b3b8a snd_pcm_hw_constraint_pow2
+EXPORT_SYMBOL sound/core/snd-pcm 0x4a449d86 snd_pcm_lib_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian
+EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value
+EXPORT_SYMBOL sound/core/snd-pcm 0x58ae0605 snd_pcm_lib_preallocate_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence
+EXPORT_SYMBOL sound/core/snd-pcm 0x623244be snd_pcm_period_elapsed
+EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64
+EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width
+EXPORT_SYMBOL sound/core/snd-pcm 0x6904852d snd_pcm_hw_constraint_integer
+EXPORT_SYMBOL sound/core/snd-pcm 0x6e88e56f snd_pcm_link_rwlock
+EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear
+EXPORT_SYMBOL sound/core/snd-pcm 0x701b8eb8 snd_pcm_lib_writev
+EXPORT_SYMBOL sound/core/snd-pcm 0x8de1ab2b snd_pcm_lib_write
+EXPORT_SYMBOL sound/core/snd-pcm 0x8f6fcced snd_pcm_lib_free_vmalloc_buffer
+EXPORT_SYMBOL sound/core/snd-pcm 0x92cdf078 snd_pcm_stop
+EXPORT_SYMBOL sound/core/snd-pcm 0x98ac58f6 snd_pcm_lib_malloc_pages
+EXPORT_SYMBOL sound/core/snd-pcm 0x98fe9517 snd_pcm_open_substream
+EXPORT_SYMBOL sound/core/snd-pcm 0xa44835a7 snd_pcm_hw_constraint_step
+EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned
+EXPORT_SYMBOL sound/core/snd-pcm 0xb0190fae snd_pcm_hw_refine
+EXPORT_SYMBOL sound/core/snd-pcm 0xb8cf6f84 snd_pcm_notify
+EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit
+EXPORT_SYMBOL sound/core/snd-pcm 0xbeaec14b snd_pcm_lib_preallocate_pages_for_all
+EXPORT_SYMBOL sound/core/snd-pcm 0xc1652955 snd_pcm_new
+EXPORT_SYMBOL sound/core/snd-pcm 0xc4dfd285 snd_pcm_kernel_ioctl
+EXPORT_SYMBOL sound/core/snd-pcm 0xc69fdfa8 snd_pcm_set_sync
+EXPORT_SYMBOL sound/core/snd-pcm 0xcdee17ba snd_pcm_hw_rule_add
+EXPORT_SYMBOL sound/core/snd-pcm 0xd0b9b8b8 snd_interval_list
+EXPORT_SYMBOL sound/core/snd-pcm 0xd4a39767 snd_pcm_hw_constraint_ratnums
+EXPORT_SYMBOL sound/core/snd-pcm 0xe30b7f28 snd_pcm_hw_constraint_minmax
+EXPORT_SYMBOL sound/core/snd-pcm 0xe51a1c64 snd_pcm_format_size
+EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width
+EXPORT_SYMBOL sound/core/snd-pcm 0xe6cc0d63 snd_pcm_set_ops
+EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x074e8daa snd_rawmidi_transmit_ack
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x17e2c453 snd_rawmidi_info_select
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x1f1d4b01 snd_rawmidi_transmit_peek
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x311951b1 snd_rawmidi_drain_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x4340057f snd_rawmidi_drop_output
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x5bac5331 snd_rawmidi_kernel_read
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x83a2db0a snd_rawmidi_kernel_release
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x893f4607 snd_rawmidi_set_ops
+EXPORT_SYMBOL sound/core/snd-rawmidi 0x9f940448 snd_rawmidi_input_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xa2a603b3 snd_rawmidi_output_params
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xe7461f6f snd_rawmidi_drain_input
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xeb8af118 snd_rawmidi_new
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xef031f09 snd_rawmidi_transmit
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xf4ecee91 snd_rawmidi_transmit_empty
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xf6d59af8 snd_rawmidi_kernel_write
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xf840aacc snd_rawmidi_receive
+EXPORT_SYMBOL sound/core/snd-rawmidi 0xfe27e3f5 snd_rawmidi_kernel_open
+EXPORT_SYMBOL sound/core/snd-timer 0x05095792 snd_timer_global_register
+EXPORT_SYMBOL sound/core/snd-timer 0x17c94b4d snd_timer_stop
+EXPORT_SYMBOL sound/core/snd-timer 0x1bac3d10 snd_timer_open
+EXPORT_SYMBOL sound/core/snd-timer 0x572f791e snd_timer_new
+EXPORT_SYMBOL sound/core/snd-timer 0x62e20c7a snd_timer_global_free
+EXPORT_SYMBOL sound/core/snd-timer 0x6cac0f20 snd_timer_start
+EXPORT_SYMBOL sound/core/snd-timer 0x6e0d5810 snd_timer_continue
+EXPORT_SYMBOL sound/core/snd-timer 0x8383c41c snd_timer_notify
+EXPORT_SYMBOL sound/core/snd-timer 0x862121e2 snd_timer_resolution
+EXPORT_SYMBOL sound/core/snd-timer 0x87bbb9a1 snd_timer_close
+EXPORT_SYMBOL sound/core/snd-timer 0x8cfbdbed snd_timer_global_new
+EXPORT_SYMBOL sound/core/snd-timer 0xb3c1dfba snd_timer_interrupt
+EXPORT_SYMBOL sound/core/snd-timer 0xd784cd2d snd_timer_pause
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x4bbb7f27 snd_mpu401_uart_interrupt_tx
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xaa929054 snd_mpu401_uart_new
+EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc43a3940 snd_mpu401_uart_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x19e4db59 snd_opl3_timer_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3a02b21f snd_opl3_load_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x513bbde1 snd_opl3_find_patch
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x68197088 snd_opl3_interrupt
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8ee83d93 snd_opl3_init
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9fff1e77 snd_opl3_hwdep_new
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa9b74017 snd_opl3_create
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd34861a8 snd_opl3_reset
+EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xdfe09ac6 snd_opl3_new
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x0afaa97f snd_vx_setup_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x15fa56a8 snd_vx_create
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3dd22d4e snd_vx_dsp_boot
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8f417cc0 snd_vx_load_boot_image
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x8f98550d snd_vx_free_firmware
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x99b88ede snd_vx_irq_handler
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb175e1e0 snd_vx_check_reg_bit
+EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc61556e9 snd_vx_dsp_load
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x577bc6ba snd_ak4114_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x8b0f1be3 snd_ak4114_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc10f5c8f snd_ak4114_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xdf51a3bc snd_ak4114_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf4ee377e snd_ak4114_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf6cfcfaf snd_ak4114_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x0169422f snd_ak4117_create
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x88c870be snd_ak4117_check_rate_and_errors
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x90637f3a snd_ak4117_external_rate
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xb0a341a0 snd_ak4117_build
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xc33fc5ac snd_ak4117_reg_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xcfbb5a7c snd_ak4117_reinit
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x2cadc41f snd_akm4xxx_init
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x6b6b7516 snd_akm4xxx_write
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x982554f9 snd_akm4xxx_reset
+EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xf7988d5c snd_akm4xxx_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x4eca2968 snd_pt2258_reset
+EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xceb6072b snd_pt2258_build_controls
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x02133eaa snd_tea575x_init
+EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xffa1522c snd_tea575x_exit
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x312db429 snd_cs8427_iec958_active
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x60001839 snd_cs8427_create
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0x655e3401 snd_cs8427_reg_write
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xd532bc49 snd_cs8427_iec958_build
+EXPORT_SYMBOL sound/i2c/snd-cs8427 0xda8c98c1 snd_cs8427_iec958_pcm
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x0bf924cf snd_i2c_probeaddr
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x364b497a snd_i2c_bus_create
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x4b078b5d snd_i2c_readbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x5ed568ef snd_i2c_sendbytes
+EXPORT_SYMBOL sound/i2c/snd-i2c 0x62966f1f snd_i2c_device_free
+EXPORT_SYMBOL sound/i2c/snd-i2c 0xb80bc6d4 snd_i2c_device_create
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0f2c93f1 snd_ac97_write
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1f4f7191 snd_ac97_pcm_open
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4a243e7c snd_ac97_read
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6235d9b8 snd_ac97_bus
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6c372bde snd_ac97_pcm_close
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6d59f450 snd_ac97_update
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x80695d6f snd_ac97_get_short_name
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9ed74b43 snd_ac97_write_cache
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa18ac45c snd_ac97_pcm_assign
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa7b4dec8 snd_ac97_update_power
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb0a41e5a snd_ac97_set_rate
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbdaa04c0 snd_ac97_tune_hardware
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xcac581b5 snd_ac97_pcm_double_rate_rules
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfd5f5120 snd_ac97_mixer
+EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xfda2b653 snd_ac97_update_bits
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1be2ed0e snd_emu10k1_synth_free
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x34948fdb snd_emu10k1_synth_bzero
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x566f69d2 snd_emu10k1_synth_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x814e74d3 snd_emu10k1_ptr_read
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8b2347df snd_emu10k1_voice_alloc
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xad439d37 snd_emu10k1_memblk_map
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe51d3c71 snd_emu10k1_ptr_write
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xebe29e7d snd_emu10k1_synth_copy_from_user
+EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xfafdd3de snd_emu10k1_voice_free
+EXPORT_SYMBOL sound/pci/hda/snd-hda-codec 0x24461074 snd_hda_parse_generic_codec
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x1a3b60a1 snd_ice1712_akm4xxx_build_controls
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x4c93379e snd_ice1712_akm4xxx_free
+EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x73d28f8b snd_ice1712_akm4xxx_init
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x216e0f0a snd_trident_start_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0x7f2b3840 snd_trident_write_voice_regs
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xba8b60c1 snd_trident_alloc_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xdb091808 snd_trident_stop_voice
+EXPORT_SYMBOL sound/pci/trident/snd-trident 0xece941cf snd_trident_free_voice
+EXPORT_SYMBOL sound/soc/codecs/snd-soc-uda134x 0x6b167ab1 uda134x_dai
+EXPORT_SYMBOL sound/soundcore 0x67aa5ee6 sound_class
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x1e9f20ae snd_emux_lock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x3e534641 snd_emux_unlock_voice
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x4a6a91e2 snd_emux_new
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x655cb202 snd_sf_linear_to_log
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xc38c9845 snd_emux_free
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xf88d11c0 snd_emux_register
+EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xf98eda9e snd_emux_terminate_all
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x00b2b06a snd_util_memhdr_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x5e4b10fa __snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x7076bd13 snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x872aebb4 snd_util_mem_alloc
+EXPORT_SYMBOL sound/synth/snd-util-mem 0x9803433f __snd_util_memblk_new
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xa59b38df snd_util_memhdr_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xb74e091c __snd_util_mem_free
+EXPORT_SYMBOL sound/synth/snd-util-mem 0xeb6dcaa4 snd_util_mem_avail
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x53f03c81 snd_usbmidi_create
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop
+EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect
+EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list
+EXPORT_SYMBOL vmlinux 0x0027f880 km_query
+EXPORT_SYMBOL vmlinux 0x00730753 nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work
+EXPORT_SYMBOL vmlinux 0x00a7a777 posix_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x00c68f13 generic_fillattr
+EXPORT_SYMBOL vmlinux 0x00cfe88a of_dev_put
+EXPORT_SYMBOL vmlinux 0x00d1b9a9 gnet_stats_copy_app
+EXPORT_SYMBOL vmlinux 0x00d47496 __xfrm_policy_check
+EXPORT_SYMBOL vmlinux 0x00dc3f44 free_task
+EXPORT_SYMBOL vmlinux 0x00f670c0 __mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x01000e51 schedule
+EXPORT_SYMBOL vmlinux 0x01057cd1 pci_scan_single_device
+EXPORT_SYMBOL vmlinux 0x01415c42 i2c_smbus_read_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x01456097 tcp_prot
+EXPORT_SYMBOL vmlinux 0x01578edc drm_vblank_cleanup
+EXPORT_SYMBOL vmlinux 0x015c0578 drm_vblank_post_modeset
+EXPORT_SYMBOL vmlinux 0x016832c4 jbd2_journal_abort
+EXPORT_SYMBOL vmlinux 0x017ada24 d_delete
+EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap
+EXPORT_SYMBOL vmlinux 0x019bdbd7 ebus_dma_enable
+EXPORT_SYMBOL vmlinux 0x019f8d7e of_parse_phandles_with_args
+EXPORT_SYMBOL vmlinux 0x01a4aab6 set_irq_chip_data
+EXPORT_SYMBOL vmlinux 0x01a949d9 read_cache_pages
+EXPORT_SYMBOL vmlinux 0x01b2aa76 d_rehash
+EXPORT_SYMBOL vmlinux 0x01ce5908 bio_integrity_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x01d5122c drm_mode_create_scaling_mode_property
+EXPORT_SYMBOL vmlinux 0x01d95fef elevator_init
+EXPORT_SYMBOL vmlinux 0x01f67911 ___copy_in_user
+EXPORT_SYMBOL vmlinux 0x0200a9ef scsi_register_interface
+EXPORT_SYMBOL vmlinux 0x0225821c dquot_acquire
+EXPORT_SYMBOL vmlinux 0x0230c151 panic_notifier_list
+EXPORT_SYMBOL vmlinux 0x0233fe35 sock_create_lite
+EXPORT_SYMBOL vmlinux 0x023b8eea elv_abort_queue
+EXPORT_SYMBOL vmlinux 0x0255dc16 tty_port_put
+EXPORT_SYMBOL vmlinux 0x025efa5f flock_lock_file_wait
+EXPORT_SYMBOL vmlinux 0x025f7087 ethtool_op_get_flags
+EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb
+EXPORT_SYMBOL vmlinux 0x02684c64 neigh_parms_release
+EXPORT_SYMBOL vmlinux 0x029fd384 mb_cache_entry_get
+EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy
+EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table
+EXPORT_SYMBOL vmlinux 0x02a945ff try_wait_for_completion
+EXPORT_SYMBOL vmlinux 0x02d81845 audit_log_task_context
+EXPORT_SYMBOL vmlinux 0x02e183a9 pcim_iounmap_regions
+EXPORT_SYMBOL vmlinux 0x0308100d vio_register_driver
+EXPORT_SYMBOL vmlinux 0x0318c353 simple_unlink
+EXPORT_SYMBOL vmlinux 0x031ee678 xor_niagara_2
+EXPORT_SYMBOL vmlinux 0x0333190b ldc_bind
+EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl
+EXPORT_SYMBOL vmlinux 0x033c5b31 ipv6_skip_exthdr
+EXPORT_SYMBOL vmlinux 0x034a530f blk_init_allocated_queue
+EXPORT_SYMBOL vmlinux 0x03570bb2 tty_name
+EXPORT_SYMBOL vmlinux 0x036ad7c4 dm_io
+EXPORT_SYMBOL vmlinux 0x037a0cba kfree
+EXPORT_SYMBOL vmlinux 0x03a2a1a4 scsi_report_device_reset
+EXPORT_SYMBOL vmlinux 0x03b945bb __netdev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x03bfb177 sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold
+EXPORT_SYMBOL vmlinux 0x03ea9cf3 sun4v_hvapi_get
+EXPORT_SYMBOL vmlinux 0x03f3289a splice_from_pipe_end
+EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram
+EXPORT_SYMBOL vmlinux 0x04107a5d drm_crtc_init
+EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg
+EXPORT_SYMBOL vmlinux 0x0440cbf4 netif_carrier_off
+EXPORT_SYMBOL vmlinux 0x0460bafb mempool_alloc
+EXPORT_SYMBOL vmlinux 0x0464affc scsi_remove_target
+EXPORT_SYMBOL vmlinux 0x046b73ee journal_errno
+EXPORT_SYMBOL vmlinux 0x0473617d seq_path
+EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display
+EXPORT_SYMBOL vmlinux 0x04927208 cpu_active_mask
+EXPORT_SYMBOL vmlinux 0x04a1050e user_path_at
+EXPORT_SYMBOL vmlinux 0x04cc5c6e scsi_test_unit_ready
+EXPORT_SYMBOL vmlinux 0x04dc6172 dev_kfree_skb_any
+EXPORT_SYMBOL vmlinux 0x04f65828 xfrm_unregister_km
+EXPORT_SYMBOL vmlinux 0x04f879b9 trap_block
+EXPORT_SYMBOL vmlinux 0x050ec958 deactivate_locked_super
+EXPORT_SYMBOL vmlinux 0x05186ca4 flush_icache_range
+EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch
+EXPORT_SYMBOL vmlinux 0x052cd342 pci_set_master
+EXPORT_SYMBOL vmlinux 0x053b1a50 scsi_is_sdev_device
+EXPORT_SYMBOL vmlinux 0x057ba4ef set_blocksize
+EXPORT_SYMBOL vmlinux 0x057d0cae journal_restart
+EXPORT_SYMBOL vmlinux 0x05870801 xfrm_stateonly_find
+EXPORT_SYMBOL vmlinux 0x05892a34 fd_install
+EXPORT_SYMBOL vmlinux 0x059c180e dm_kcopyd_copy
+EXPORT_SYMBOL vmlinux 0x05c013ca inet_csk_reset_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x05c1704e netpoll_print_options
+EXPORT_SYMBOL vmlinux 0x05d8ce92 tty_port_init
+EXPORT_SYMBOL vmlinux 0x05f21c6f make_EII_client
+EXPORT_SYMBOL vmlinux 0x0602f3d7 simple_transaction_read
+EXPORT_SYMBOL vmlinux 0x061651be strcat
+EXPORT_SYMBOL vmlinux 0x065e8a2e profile_pc
+EXPORT_SYMBOL vmlinux 0x0663f0fc drm_get_connector_name
+EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx
+EXPORT_SYMBOL vmlinux 0x06918809 tcf_destroy_chain
+EXPORT_SYMBOL vmlinux 0x069e23d6 framebuffer_alloc
+EXPORT_SYMBOL vmlinux 0x06a0b20a generic_show_options
+EXPORT_SYMBOL vmlinux 0x06a485f2 __krealloc
+EXPORT_SYMBOL vmlinux 0x06c502b0 jbd2_journal_force_commit
+EXPORT_SYMBOL vmlinux 0x06cdfe24 blk_queue_max_segment_size
+EXPORT_SYMBOL vmlinux 0x06e94dca remove_arg_zero
+EXPORT_SYMBOL vmlinux 0x06fcd79a km_state_expired
+EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn
+EXPORT_SYMBOL vmlinux 0x0704340d pci_map_rom
+EXPORT_SYMBOL vmlinux 0x073156cc seq_read
+EXPORT_SYMBOL vmlinux 0x073564e8 scsi_host_put
+EXPORT_SYMBOL vmlinux 0x073be5c5 locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x0753ccb2 nf_reinject
+EXPORT_SYMBOL vmlinux 0x0759d737 nf_unregister_sockopt
+EXPORT_SYMBOL vmlinux 0x0779478f dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x0789831e drm_gtf_mode
+EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable
+EXPORT_SYMBOL vmlinux 0x0799c50a param_set_ulong
+EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap
+EXPORT_SYMBOL vmlinux 0x07c2ca81 tcf_action_dump_1
+EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit
+EXPORT_SYMBOL vmlinux 0x07d9b783 scsi_nl_send_vendor_msg
+EXPORT_SYMBOL vmlinux 0x0826b0dc __flush_dcache_range
+EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses
+EXPORT_SYMBOL vmlinux 0x0836695c drm_sman_takedown
+EXPORT_SYMBOL vmlinux 0x086263dd dqput
+EXPORT_SYMBOL vmlinux 0x08b8e28e __serio_register_driver
+EXPORT_SYMBOL vmlinux 0x08c2edd2 pagecache_write_begin
+EXPORT_SYMBOL vmlinux 0x08d66a3a warn_slowpath_fmt
+EXPORT_SYMBOL vmlinux 0x08db6f34 inet_release
+EXPORT_SYMBOL vmlinux 0x08ed0b62 mac_vmode_to_var
+EXPORT_SYMBOL vmlinux 0x09193b78 __put_cred
+EXPORT_SYMBOL vmlinux 0x09246d70 key_instantiate_and_link
+EXPORT_SYMBOL vmlinux 0x092f04d5 follow_down
+EXPORT_SYMBOL vmlinux 0x09303364 __netdev_alloc_page
+EXPORT_SYMBOL vmlinux 0x0948cde9 num_physpages
+EXPORT_SYMBOL vmlinux 0x0956533c request_key_async
+EXPORT_SYMBOL vmlinux 0x09775cdc kref_get
+EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap
+EXPORT_SYMBOL vmlinux 0x099fef4b simple_pin_fs
+EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible
+EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16
+EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions
+EXPORT_SYMBOL vmlinux 0x09d9b001 mdiobus_register
+EXPORT_SYMBOL vmlinux 0x09de2501 __blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals
+EXPORT_SYMBOL vmlinux 0x0a2872ca netdev_class_remove_file
+EXPORT_SYMBOL vmlinux 0x0a4233a5 phy_register_fixup_for_uid
+EXPORT_SYMBOL vmlinux 0x0a461319 tcp_sync_mss
+EXPORT_SYMBOL vmlinux 0x0a543eed stop_tty
+EXPORT_SYMBOL vmlinux 0x0a566960 keyring_clear
+EXPORT_SYMBOL vmlinux 0x0a8ce1b2 simple_readpage
+EXPORT_SYMBOL vmlinux 0x0a9a7aa7 nobh_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x0ac908c4 get_sb_bdev
+EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right
+EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all
+EXPORT_SYMBOL vmlinux 0x0ad30cb6 dw_spi_add_host
+EXPORT_SYMBOL vmlinux 0x0adb4507 kthread_create
+EXPORT_SYMBOL vmlinux 0x0ae91d3c fib_default_rule_pref
+EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user
+EXPORT_SYMBOL vmlinux 0x0b33abe5 get_write_access
+EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol
+EXPORT_SYMBOL vmlinux 0x0bcdd5eb __irq_regs
+EXPORT_SYMBOL vmlinux 0x0bfffd1c set_bh_page
+EXPORT_SYMBOL vmlinux 0x0c143d36 textsearch_unregister
+EXPORT_SYMBOL vmlinux 0x0c30f14e tcp_initialize_rcv_mss
+EXPORT_SYMBOL vmlinux 0x0c4baaa8 wait_on_page_bit
+EXPORT_SYMBOL vmlinux 0x0c4c9fd4 sock_i_uid
+EXPORT_SYMBOL vmlinux 0x0c568de5 ps2_drain
+EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense
+EXPORT_SYMBOL vmlinux 0x0c6ed17c nf_log_register
+EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense
+EXPORT_SYMBOL vmlinux 0x0c98a54e tty_driver_kref_put
+EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask
+EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s
+EXPORT_SYMBOL vmlinux 0x0d055bbf locks_mandatory_area
+EXPORT_SYMBOL vmlinux 0x0d44b2cf jbd2_journal_start
+EXPORT_SYMBOL vmlinux 0x0d4bbdcb jbd2_journal_forget
+EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type
+EXPORT_SYMBOL vmlinux 0x0d64147a dm_table_get
+EXPORT_SYMBOL vmlinux 0x0d6bc393 mempool_create_node
+EXPORT_SYMBOL vmlinux 0x0d8e88fc scsi_device_put
+EXPORT_SYMBOL vmlinux 0x0d997beb generic_cont_expand_simple
+EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft
+EXPORT_SYMBOL vmlinux 0x0db2fede input_open_device
+EXPORT_SYMBOL vmlinux 0x0db61538 drm_gem_object_lookup
+EXPORT_SYMBOL vmlinux 0x0dbac4ec destroy_EII_client
+EXPORT_SYMBOL vmlinux 0x0dc9e963 ethtool_op_set_tso
+EXPORT_SYMBOL vmlinux 0x0dd454f1 wait_for_completion_interruptible
+EXPORT_SYMBOL vmlinux 0x0dda69ef remove_inode_hash
+EXPORT_SYMBOL vmlinux 0x0e03adb6 scsi_execute
+EXPORT_SYMBOL vmlinux 0x0e175eca path_is_under
+EXPORT_SYMBOL vmlinux 0x0e4cdf1c pci_claim_resource
+EXPORT_SYMBOL vmlinux 0x0e52592a panic
+EXPORT_SYMBOL vmlinux 0x0e66f80a netif_receive_skb
+EXPORT_SYMBOL vmlinux 0x0e75ab61 neigh_seq_start
+EXPORT_SYMBOL vmlinux 0x0e83bf9f inet_sk_rebuild_header
+EXPORT_SYMBOL vmlinux 0x0e8796c8 sock_no_sendmsg
+EXPORT_SYMBOL vmlinux 0x0e941ca9 get_user_pages
+EXPORT_SYMBOL vmlinux 0x0ebebe14 groups_free
+EXPORT_SYMBOL vmlinux 0x0ec4c032 sock_kmalloc
+EXPORT_SYMBOL vmlinux 0x0eee5790 drm_framebuffer_init
+EXPORT_SYMBOL vmlinux 0x0f1e112a tcf_hash_lookup
+EXPORT_SYMBOL vmlinux 0x0f2f0d00 journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x0f378a1e ___copy_from_user
+EXPORT_SYMBOL vmlinux 0x0f41488b of_find_device_by_node
+EXPORT_SYMBOL vmlinux 0x0f42ec2a jbd2_log_wait_commit
+EXPORT_SYMBOL vmlinux 0x0f4b68df sock_no_bind
+EXPORT_SYMBOL vmlinux 0x0f4c063e km_new_mapping
+EXPORT_SYMBOL vmlinux 0x0f519404 devm_ioremap
+EXPORT_SYMBOL vmlinux 0x0f78f8ec wait_for_completion_killable
+EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule
+EXPORT_SYMBOL vmlinux 0x0fc0b473 napi_frags_skb
+EXPORT_SYMBOL vmlinux 0x0fc5e8eb radix_tree_gang_lookup_slot
+EXPORT_SYMBOL vmlinux 0x0fca38e7 sock_map_fd
+EXPORT_SYMBOL vmlinux 0x0fcd4c7e set_disk_ro
+EXPORT_SYMBOL vmlinux 0x0fea6dcd pm860x_bulk_read
+EXPORT_SYMBOL vmlinux 0x0fed0467 scsi_eh_restore_cmnd
+EXPORT_SYMBOL vmlinux 0x0feebe71 blk_queue_make_request
+EXPORT_SYMBOL vmlinux 0x10062337 __rta_fill
+EXPORT_SYMBOL vmlinux 0x10268ccd ida_init
+EXPORT_SYMBOL vmlinux 0x10383014 dquot_set_dqinfo
+EXPORT_SYMBOL vmlinux 0x103c543d start_tty
+EXPORT_SYMBOL vmlinux 0x1059e564 skb_put
+EXPORT_SYMBOL vmlinux 0x105cdf5a blk_queue_init_tags
+EXPORT_SYMBOL vmlinux 0x1063eca2 tty_port_close
+EXPORT_SYMBOL vmlinux 0x106895a1 unregister_nls
+EXPORT_SYMBOL vmlinux 0x108a5c8a fb_blank
+EXPORT_SYMBOL vmlinux 0x108e8985 param_get_uint
+EXPORT_SYMBOL vmlinux 0x10902bf7 insb
+EXPORT_SYMBOL vmlinux 0x1096a4f6 generic_writepages
+EXPORT_SYMBOL vmlinux 0x10b0bbba arp_tbl
+EXPORT_SYMBOL vmlinux 0x10c1c33c sock_wmalloc
+EXPORT_SYMBOL vmlinux 0x10c82938 filemap_flush
+EXPORT_SYMBOL vmlinux 0x10d9d048 icmp_err_convert
+EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu
+EXPORT_SYMBOL vmlinux 0x10f63209 key_validate
+EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype
+EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format
+EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn
+EXPORT_SYMBOL vmlinux 0x116d639f do_SAK
+EXPORT_SYMBOL vmlinux 0x116ee87c register_key_type
+EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init
+EXPORT_SYMBOL vmlinux 0x118f01ea putname
+EXPORT_SYMBOL vmlinux 0x1199b4af drm_mm_search_free
+EXPORT_SYMBOL vmlinux 0x119accde mb_cache_shrink
+EXPORT_SYMBOL vmlinux 0x11a30c92 tcf_register_action
+EXPORT_SYMBOL vmlinux 0x11c4df2d pneigh_enqueue
+EXPORT_SYMBOL vmlinux 0x11d4f527 add_to_page_cache_locked
+EXPORT_SYMBOL vmlinux 0x11d97454 vfs_mkdir
+EXPORT_SYMBOL vmlinux 0x11e08083 cont_write_begin
+EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin
+EXPORT_SYMBOL vmlinux 0x11fa3df6 skb_find_text
+EXPORT_SYMBOL vmlinux 0x120cb467 kset_register
+EXPORT_SYMBOL vmlinux 0x121cad5e jbd2_journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0x1229b7b8 dquot_initialize
+EXPORT_SYMBOL vmlinux 0x125d0fa4 user_revoke
+EXPORT_SYMBOL vmlinux 0x126926d8 end_buffer_read_sync
+EXPORT_SYMBOL vmlinux 0x12b161e6 scsi_free_host_dev
+EXPORT_SYMBOL vmlinux 0x12bc2910 ethtool_op_set_flags
+EXPORT_SYMBOL vmlinux 0x12c6276a drm_buffer_read_object
+EXPORT_SYMBOL vmlinux 0x12d09a67 sun4v_hvapi_unregister
+EXPORT_SYMBOL vmlinux 0x12d47a84 cap_file_mmap
+EXPORT_SYMBOL vmlinux 0x12ea337e outsb
+EXPORT_SYMBOL vmlinux 0x12f99022 inet_frags_init_net
+EXPORT_SYMBOL vmlinux 0x1300ce96 journal_dirty_data
+EXPORT_SYMBOL vmlinux 0x1306393f __dst_free
+EXPORT_SYMBOL vmlinux 0x1342035d qdisc_watchdog_init
+EXPORT_SYMBOL vmlinux 0x1345da45 release_firmware
+EXPORT_SYMBOL vmlinux 0x134e0313 bio_integrity_free
+EXPORT_SYMBOL vmlinux 0x135d4033 dquot_quota_on
+EXPORT_SYMBOL vmlinux 0x139ec2d7 dev_uc_add
+EXPORT_SYMBOL vmlinux 0x13bfa230 fsnotify_add_mark
+EXPORT_SYMBOL vmlinux 0x13cdb53e touch_atime
+EXPORT_SYMBOL vmlinux 0x13f7b3cd pci_clear_master
+EXPORT_SYMBOL vmlinux 0x13fe22cf interruptible_sleep_on
+EXPORT_SYMBOL vmlinux 0x140f8b3e input_unregister_handler
+EXPORT_SYMBOL vmlinux 0x1414c3fc module_layout
+EXPORT_SYMBOL vmlinux 0x142b8b35 drm_buffer_copy_from_user
+EXPORT_SYMBOL vmlinux 0x1451624d fput
+EXPORT_SYMBOL vmlinux 0x14a201a6 phy_device_free
+EXPORT_SYMBOL vmlinux 0x14f85386 dm_table_event
+EXPORT_SYMBOL vmlinux 0x1545e1b9 input_inject_event
+EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region
+EXPORT_SYMBOL vmlinux 0x1559f8e8 get_fb_unmapped_area
+EXPORT_SYMBOL vmlinux 0x1566d4f7 blk_peek_request
+EXPORT_SYMBOL vmlinux 0x156ec048 __devm_release_region
+EXPORT_SYMBOL vmlinux 0x1584b4af drm_rmmap_locked
+EXPORT_SYMBOL vmlinux 0x158efcc1 dget_locked
+EXPORT_SYMBOL vmlinux 0x15b7aa22 compat_nf_getsockopt
+EXPORT_SYMBOL vmlinux 0x15b940c8 udp_lib_unhash
+EXPORT_SYMBOL vmlinux 0x15c1707b scsi_free_command
+EXPORT_SYMBOL vmlinux 0x15c34ded abx500_get_register_interruptible
+EXPORT_SYMBOL vmlinux 0x15d0ecad vio_link_state_change
+EXPORT_SYMBOL vmlinux 0x15e120ba drop_super
+EXPORT_SYMBOL vmlinux 0x15f51d55 inode_init_always
+EXPORT_SYMBOL vmlinux 0x15fcc4e8 dentry_open
+EXPORT_SYMBOL vmlinux 0x16077ddd jbd2_journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0x16107aba tcp_hashinfo
+EXPORT_SYMBOL vmlinux 0x1611f89b scsi_kmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x16270800 sock_create_kern
+EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null
+EXPORT_SYMBOL vmlinux 0x1698c5b2 redraw_screen
+EXPORT_SYMBOL vmlinux 0x16ab1e90 scsi_put_command
+EXPORT_SYMBOL vmlinux 0x16ac9e10 pci_scan_slot
+EXPORT_SYMBOL vmlinux 0x16c64d0f bdi_init
+EXPORT_SYMBOL vmlinux 0x16d7e71b init_timer_key
+EXPORT_SYMBOL vmlinux 0x16d94c2a xfrm_state_insert
+EXPORT_SYMBOL vmlinux 0x1700b42f unregister_qdisc
+EXPORT_SYMBOL vmlinux 0x172fc63e elv_unregister_queue
+EXPORT_SYMBOL vmlinux 0x1748319b numa_cpumask_lookup_table
+EXPORT_SYMBOL vmlinux 0x175e6096 install_exec_creds
+EXPORT_SYMBOL vmlinux 0x175e9f11 skb_trim
+EXPORT_SYMBOL vmlinux 0x175f243f scsi_is_host_device
+EXPORT_SYMBOL vmlinux 0x1761a0f8 posix_lock_file
+EXPORT_SYMBOL vmlinux 0x176c1063 dev_mc_del
+EXPORT_SYMBOL vmlinux 0x178065ae read_cache_page_async
+EXPORT_SYMBOL vmlinux 0x179d7984 mnt_unpin
+EXPORT_SYMBOL vmlinux 0x17b7909f journal_init_inode
+EXPORT_SYMBOL vmlinux 0x17bc6104 sg_copy_to_buffer
+EXPORT_SYMBOL vmlinux 0x17c803dd vlan_dev_real_dev
+EXPORT_SYMBOL vmlinux 0x17c85a66 radix_tree_tagged
+EXPORT_SYMBOL vmlinux 0x17df17bc sysctl_tcp_ecn
+EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip
+EXPORT_SYMBOL vmlinux 0x17fd62e9 file_update_time
+EXPORT_SYMBOL vmlinux 0x180f192c gnet_stats_finish_copy
+EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab
+EXPORT_SYMBOL vmlinux 0x1858d497 sk_alloc
+EXPORT_SYMBOL vmlinux 0x18625c4d qdisc_watchdog_cancel
+EXPORT_SYMBOL vmlinux 0x187f3418 scsi_device_quiesce
+EXPORT_SYMBOL vmlinux 0x189b6bac memory_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x18a6f88f tcp_alloc_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x18a71930 ebus_dma_register
+EXPORT_SYMBOL vmlinux 0x18af159c sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0x18e1930f __init_waitqueue_head
+EXPORT_SYMBOL vmlinux 0x19249a58 handle_sysrq
+EXPORT_SYMBOL vmlinux 0x192d4c30 drm_core_ioremap_wc
+EXPORT_SYMBOL vmlinux 0x192f8dd5 sock_register
+EXPORT_SYMBOL vmlinux 0x1932b5fa unlock_super
+EXPORT_SYMBOL vmlinux 0x19391763 iov_iter_fault_in_readable
+EXPORT_SYMBOL vmlinux 0x19419baa dma_pool_alloc
+EXPORT_SYMBOL vmlinux 0x194ca3a5 simple_statfs
+EXPORT_SYMBOL vmlinux 0x19817190 pci_remove_bus
+EXPORT_SYMBOL vmlinux 0x199c0637 ldc_unmap
+EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp
+EXPORT_SYMBOL vmlinux 0x19a995da bdi_set_max_ratio
+EXPORT_SYMBOL vmlinux 0x19ca4469 dev_mc_del_global
+EXPORT_SYMBOL vmlinux 0x1a170e2c pci_fixup_device
+EXPORT_SYMBOL vmlinux 0x1a223511 up
+EXPORT_SYMBOL vmlinux 0x1a2d731d block_is_partially_uptodate
+EXPORT_SYMBOL vmlinux 0x1a35bcbc VISenter
+EXPORT_SYMBOL vmlinux 0x1a44dbd4 sk_stop_timer
+EXPORT_SYMBOL vmlinux 0x1a61a6b9 dev_kfree_skb_irq
+EXPORT_SYMBOL vmlinux 0x1a8482fd mdiobus_write
+EXPORT_SYMBOL vmlinux 0x1a8bd2ee skb_gso_segment
+EXPORT_SYMBOL vmlinux 0x1a8fd372 abx500_mask_and_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0x1aa0244a kfifo_in
+EXPORT_SYMBOL vmlinux 0x1aa759d0 ns_to_timeval
+EXPORT_SYMBOL vmlinux 0x1ab852f1 gnet_stats_copy_basic
+EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region
+EXPORT_SYMBOL vmlinux 0x1ad9f95a prom_finddevice
+EXPORT_SYMBOL vmlinux 0x1af541c5 key_alloc
+EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist
+EXPORT_SYMBOL vmlinux 0x1b16db28 slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x1b25f7b6 scsi_get_command
+EXPORT_SYMBOL vmlinux 0x1b34ecb2 flush_signals
+EXPORT_SYMBOL vmlinux 0x1b5330c6 scsi_scan_target
+EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton
+EXPORT_SYMBOL vmlinux 0x1b88a7b9 drm_vblank_off
+EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip
+EXPORT_SYMBOL vmlinux 0x1b8d07bf generic_block_bmap
+EXPORT_SYMBOL vmlinux 0x1b8daaf4 dw_spi_suspend_host
+EXPORT_SYMBOL vmlinux 0x1b9981cc set_irq_wake
+EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int
+EXPORT_SYMBOL vmlinux 0x1bd413ea d_instantiate
+EXPORT_SYMBOL vmlinux 0x1be25942 ps2_sendbyte
+EXPORT_SYMBOL vmlinux 0x1bf6ed3c tty_vhangup
+EXPORT_SYMBOL vmlinux 0x1bf9165c compat_nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x1c1af916 set_normalized_timespec
+EXPORT_SYMBOL vmlinux 0x1c3612c4 xfrm_input
+EXPORT_SYMBOL vmlinux 0x1c60a09c blk_init_allocated_queue_node
+EXPORT_SYMBOL vmlinux 0x1c6a8f0d blk_integrity_unregister
+EXPORT_SYMBOL vmlinux 0x1c80de9c ip_send_check
+EXPORT_SYMBOL vmlinux 0x1c8a7fc7 arp_send
+EXPORT_SYMBOL vmlinux 0x1c8d49ab tcp_ioctl
+EXPORT_SYMBOL vmlinux 0x1c8e333f scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x1c933923 drm_mode_remove
+EXPORT_SYMBOL vmlinux 0x1ca3982b pcix_get_mmrbc
+EXPORT_SYMBOL vmlinux 0x1ca9903f qdisc_list_del
+EXPORT_SYMBOL vmlinux 0x1cc6719a register_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x1cdc2d33 of_find_compatible_node
+EXPORT_SYMBOL vmlinux 0x1d28ee37 compat_ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x1d321e83 pci_find_parent_resource
+EXPORT_SYMBOL vmlinux 0x1d62cfd3 xfrm_bundle_ok
+EXPORT_SYMBOL vmlinux 0x1da3fbd4 sk_stream_error
+EXPORT_SYMBOL vmlinux 0x1db5516b generic_write_end
+EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb
+EXPORT_SYMBOL vmlinux 0x1dd35aee dev_alloc_skb
+EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap
+EXPORT_SYMBOL vmlinux 0x1dd92f74 udp_sendmsg
+EXPORT_SYMBOL vmlinux 0x1de59800 bdi_register
+EXPORT_SYMBOL vmlinux 0x1de7874e netpoll_poll_dev
+EXPORT_SYMBOL vmlinux 0x1df5d381 filemap_fault
+EXPORT_SYMBOL vmlinux 0x1dffeace tcf_exts_validate
+EXPORT_SYMBOL vmlinux 0x1e0d4b34 I_BDEV
+EXPORT_SYMBOL vmlinux 0x1e49b52b skb_copy_and_csum_bits
+EXPORT_SYMBOL vmlinux 0x1e58962d put_disk
+EXPORT_SYMBOL vmlinux 0x1e59dde3 blk_stop_queue
+EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr
+EXPORT_SYMBOL vmlinux 0x1e71457a vlan_dev_vlan_id
+EXPORT_SYMBOL vmlinux 0x1e739108 writeback_inodes_sb
+EXPORT_SYMBOL vmlinux 0x1e7e559d scsi_calculate_bounce_limit
+EXPORT_SYMBOL vmlinux 0x1e8c5233 drm_mm_search_free_in_range
+EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu
+EXPORT_SYMBOL vmlinux 0x1ea06663 _raw_write_lock
+EXPORT_SYMBOL vmlinux 0x1eb37c8b atomic64_add
+EXPORT_SYMBOL vmlinux 0x1eceaf5e pfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x1efe283f __cap_full_set
+EXPORT_SYMBOL vmlinux 0x1f072c59 drm_property_add_enum
+EXPORT_SYMBOL vmlinux 0x1f16023b revalidate_disk
+EXPORT_SYMBOL vmlinux 0x1f28b8de register_con_driver
+EXPORT_SYMBOL vmlinux 0x1f5691ad ip_getsockopt
+EXPORT_SYMBOL vmlinux 0x1f5b56da elv_rb_latter_request
+EXPORT_SYMBOL vmlinux 0x1f82192c gen_pool_add
+EXPORT_SYMBOL vmlinux 0x1f844c09 rfkill_set_states
+EXPORT_SYMBOL vmlinux 0x1f8707de phy_start_aneg
+EXPORT_SYMBOL vmlinux 0x1f956829 ilookup5
+EXPORT_SYMBOL vmlinux 0x1f97210d pid_task
+EXPORT_SYMBOL vmlinux 0x1fa6ac36 do_sync_read
+EXPORT_SYMBOL vmlinux 0x1fb310c1 dm_io_client_destroy
+EXPORT_SYMBOL vmlinux 0x1fba1cea blk_queue_find_tag
+EXPORT_SYMBOL vmlinux 0x1fce3917 xfrm_policy_destroy
+EXPORT_SYMBOL vmlinux 0x1fcf4d4b _raw_read_unlock_bh
+EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region
+EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul
+EXPORT_SYMBOL vmlinux 0x20123dac dquot_commit
+EXPORT_SYMBOL vmlinux 0x2037cc4d kernel_connect
+EXPORT_SYMBOL vmlinux 0x20385c58 genl_register_mc_group
+EXPORT_SYMBOL vmlinux 0x204815b2 eth_type_trans
+EXPORT_SYMBOL vmlinux 0x205b446e sk_run_filter
+EXPORT_SYMBOL vmlinux 0x20645642 drm_debug
+EXPORT_SYMBOL vmlinux 0x20756743 __tracepoint_kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x208a3fd8 bio_unmap_user
+EXPORT_SYMBOL vmlinux 0x20b64170 pci_find_bus
+EXPORT_SYMBOL vmlinux 0x20c9be83 cdev_index
+EXPORT_SYMBOL vmlinux 0x20d4aadd dev_get_stats
+EXPORT_SYMBOL vmlinux 0x20f2d854 tcp_proc_register
+EXPORT_SYMBOL vmlinux 0x20fd0a55 xfrm_policy_byid
+EXPORT_SYMBOL vmlinux 0x210f05d2 inet_csk_destroy_sock
+EXPORT_SYMBOL vmlinux 0x21243b52 of_register_driver
+EXPORT_SYMBOL vmlinux 0x21451ac4 drm_sman_owner_cleanup
+EXPORT_SYMBOL vmlinux 0x21465dea tty_wait_until_sent
+EXPORT_SYMBOL vmlinux 0x214c9d0b pci_dev_driver
+EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16
+EXPORT_SYMBOL vmlinux 0x219e1e39 pci_unmap_rom
+EXPORT_SYMBOL vmlinux 0x21b0b235 of_match_device
+EXPORT_SYMBOL vmlinux 0x21cb26d0 dm_table_get_mode
+EXPORT_SYMBOL vmlinux 0x21f97871 down
+EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq
+EXPORT_SYMBOL vmlinux 0x22621eb4 drm_connector_cleanup
+EXPORT_SYMBOL vmlinux 0x2268b1c5 bio_integrity_add_page
+EXPORT_SYMBOL vmlinux 0x2269f206 rtnl_configure_link
+EXPORT_SYMBOL vmlinux 0x226e654a ldc_connect
+EXPORT_SYMBOL vmlinux 0x226e86a9 audit_log
+EXPORT_SYMBOL vmlinux 0x2288378f system_state
+EXPORT_SYMBOL vmlinux 0x22a23381 bioset_free
+EXPORT_SYMBOL vmlinux 0x22ab3526 scsi_register
+EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound
+EXPORT_SYMBOL vmlinux 0x22e43b93 __page_cache_alloc
+EXPORT_SYMBOL vmlinux 0x23092358 filp_open
+EXPORT_SYMBOL vmlinux 0x23211516 security_inode_readlink
+EXPORT_SYMBOL vmlinux 0x23269a13 strict_strtoul
+EXPORT_SYMBOL vmlinux 0x234509f3 strncat
+EXPORT_SYMBOL vmlinux 0x235566ff of_phy_connect_fixed_link
+EXPORT_SYMBOL vmlinux 0x23a12c19 __f_setown
+EXPORT_SYMBOL vmlinux 0x23b3b308 mod_timer
+EXPORT_SYMBOL vmlinux 0x23c20297 sk_wait_data
+EXPORT_SYMBOL vmlinux 0x23e581cc fsnotify_obtain_group
+EXPORT_SYMBOL vmlinux 0x23f1ac30 padata_free
+EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node
+EXPORT_SYMBOL vmlinux 0x240bc597 blk_init_queue
+EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline
+EXPORT_SYMBOL vmlinux 0x24a3d4b1 sock_alloc_send_pskb
+EXPORT_SYMBOL vmlinux 0x24bd930a outsl
+EXPORT_SYMBOL vmlinux 0x24be4b73 should_remove_suid
+EXPORT_SYMBOL vmlinux 0x24dc89a7 dev_disable_lro
+EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function
+EXPORT_SYMBOL vmlinux 0x251cd95a seq_open_private
+EXPORT_SYMBOL vmlinux 0x25288003 d_alloc_root
+EXPORT_SYMBOL vmlinux 0x2536fadb register_exec_domain
+EXPORT_SYMBOL vmlinux 0x256eedc1 skb_append
+EXPORT_SYMBOL vmlinux 0x25784159 input_unregister_device
+EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid
+EXPORT_SYMBOL vmlinux 0x258355b4 fb_find_best_mode
+EXPORT_SYMBOL vmlinux 0x25959320 otg_get_transceiver
+EXPORT_SYMBOL vmlinux 0x25a8fdf8 generic_ro_fops
+EXPORT_SYMBOL vmlinux 0x25b008bf blk_rq_map_kern
+EXPORT_SYMBOL vmlinux 0x25b27022 netlink_ack
+EXPORT_SYMBOL vmlinux 0x25c3dbca prom_nextprop
+EXPORT_SYMBOL vmlinux 0x25e021e8 skb_push
+EXPORT_SYMBOL vmlinux 0x25f216e4 inet_listen
+EXPORT_SYMBOL vmlinux 0x25f9601b elv_rb_former_request
+EXPORT_SYMBOL vmlinux 0x25ffe8e9 tty_termios_hw_change
+EXPORT_SYMBOL vmlinux 0x2633a859 skb_copy_datagram_from_iovec
+EXPORT_SYMBOL vmlinux 0x267ae867 mpage_readpage
+EXPORT_SYMBOL vmlinux 0x268b3913 pci_enable_bridges
+EXPORT_SYMBOL vmlinux 0x268c94f2 drm_mode_create_dithering_property
+EXPORT_SYMBOL vmlinux 0x26c1233a usb_gadget_unregister_driver
+EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min
+EXPORT_SYMBOL vmlinux 0x26f922d9 insert_inode_locked
+EXPORT_SYMBOL vmlinux 0x26fd12ce blk_queue_max_segments
+EXPORT_SYMBOL vmlinux 0x270d9cdc lro_vlan_hwaccel_receive_frags
+EXPORT_SYMBOL vmlinux 0x2729fc86 lookup_one_len
+EXPORT_SYMBOL vmlinux 0x272e0c08 blk_end_request_all
+EXPORT_SYMBOL vmlinux 0x274117f6 simple_rmdir
+EXPORT_SYMBOL vmlinux 0x2745352d tcp_make_synack
+EXPORT_SYMBOL vmlinux 0x276667fc register_framebuffer
+EXPORT_SYMBOL vmlinux 0x277dbefa blk_run_queue
+EXPORT_SYMBOL vmlinux 0x278051e8 get_sb_ns
+EXPORT_SYMBOL vmlinux 0x27864d57 memparse
+EXPORT_SYMBOL vmlinux 0x278cae7d otg_set_transceiver
+EXPORT_SYMBOL vmlinux 0x279b0452 ethtool_op_get_tx_csum
+EXPORT_SYMBOL vmlinux 0x27a17a93 find_inode_number
+EXPORT_SYMBOL vmlinux 0x27a2c94f __xfrm_lookup
+EXPORT_SYMBOL vmlinux 0x27b81daa xor_niagara_3
+EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync
+EXPORT_SYMBOL vmlinux 0x27c32b3b generic_shutdown_super
+EXPORT_SYMBOL vmlinux 0x27c61ece qdisc_put_stab
+EXPORT_SYMBOL vmlinux 0x27ceecff __kfifo_skip_generic
+EXPORT_SYMBOL vmlinux 0x27ea7879 scsi_dma_unmap
+EXPORT_SYMBOL vmlinux 0x27f83e6b pci_dev_put
+EXPORT_SYMBOL vmlinux 0x2804434e request_key_with_auxdata
+EXPORT_SYMBOL vmlinux 0x28171c9f drm_addmap
+EXPORT_SYMBOL vmlinux 0x2829447c drm_i2c_encoder_init
+EXPORT_SYMBOL vmlinux 0x282a0bbf atomic_sub
+EXPORT_SYMBOL vmlinux 0x285ac517 strict_strtoll
+EXPORT_SYMBOL vmlinux 0x286277fb block_write_full_page
+EXPORT_SYMBOL vmlinux 0x286e61d9 kill_fasync
+EXPORT_SYMBOL vmlinux 0x2876a6d3 memcpy_toiovec
+EXPORT_SYMBOL vmlinux 0x287d5154 lookup_bdev
+EXPORT_SYMBOL vmlinux 0x28921afb ldc_map_sg
+EXPORT_SYMBOL vmlinux 0x289a5102 wake_up_process
+EXPORT_SYMBOL vmlinux 0x289b0049 vfs_readlink
+EXPORT_SYMBOL vmlinux 0x289d6850 replace_mount_options
+EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer
+EXPORT_SYMBOL vmlinux 0x28ce3ea8 drm_debugfs_create_files
+EXPORT_SYMBOL vmlinux 0x28d579c2 insert_inode_locked4
+EXPORT_SYMBOL vmlinux 0x28f1b62e register_sysrq_key
+EXPORT_SYMBOL vmlinux 0x291068d2 atomic64_sub
+EXPORT_SYMBOL vmlinux 0x2916bf63 drm_sman_cleanup
+EXPORT_SYMBOL vmlinux 0x293e7145 scsi_nonblockable_ioctl
+EXPORT_SYMBOL vmlinux 0x2946996e __up_write
+EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region
+EXPORT_SYMBOL vmlinux 0x29674e33 dst_release
+EXPORT_SYMBOL vmlinux 0x297d08a6 dma_supported
+EXPORT_SYMBOL vmlinux 0x298f7812 neigh_table_clear
+EXPORT_SYMBOL vmlinux 0x29b1c366 __sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x29bd4c46 __cap_init_eff_set
+EXPORT_SYMBOL vmlinux 0x29dc4be7 of_console_options
+EXPORT_SYMBOL vmlinux 0x29f6f6f4 sbus_set_sbus64
+EXPORT_SYMBOL vmlinux 0x2a05c469 drm_framebuffer_cleanup
+EXPORT_SYMBOL vmlinux 0x2a0d6777 elv_add_request
+EXPORT_SYMBOL vmlinux 0x2a173688 skb_copy
+EXPORT_SYMBOL vmlinux 0x2a1f6cd0 ps2_command
+EXPORT_SYMBOL vmlinux 0x2a5c8ef6 vio_ldc_free
+EXPORT_SYMBOL vmlinux 0x2a6b774d register_quota_format
+EXPORT_SYMBOL vmlinux 0x2a762cdc scsi_eh_prep_cmnd
+EXPORT_SYMBOL vmlinux 0x2a84afe5 phy_register_fixup
+EXPORT_SYMBOL vmlinux 0x2a8b490f i8042_check_port_owner
+EXPORT_SYMBOL vmlinux 0x2aa1ad41 _raw_write_lock_irq
+EXPORT_SYMBOL vmlinux 0x2aa89e74 inode_claim_rsv_space
+EXPORT_SYMBOL vmlinux 0x2aafcc52 mutex_lock_interruptible
+EXPORT_SYMBOL vmlinux 0x2ab4c787 bio_integrity_trim
+EXPORT_SYMBOL vmlinux 0x2ab4cba3 netdev_features_change
+EXPORT_SYMBOL vmlinux 0x2ab79ade generic_setlease
+EXPORT_SYMBOL vmlinux 0x2af74723 blk_rq_init
+EXPORT_SYMBOL vmlinux 0x2b0ab5be udp_flush_pending_frames
+EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find
+EXPORT_SYMBOL vmlinux 0x2b39232b tcp_parse_options
+EXPORT_SYMBOL vmlinux 0x2b884a4f bdget_disk
+EXPORT_SYMBOL vmlinux 0x2b937a6f __ret_efault
+EXPORT_SYMBOL vmlinux 0x2b9bcefd __cond_resched_lock
+EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock
+EXPORT_SYMBOL vmlinux 0x2b9dfc0f cpu_core_map
+EXPORT_SYMBOL vmlinux 0x2b9fb4e1 input_event
+EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency
+EXPORT_SYMBOL vmlinux 0x2be839fd i2c_release_client
+EXPORT_SYMBOL vmlinux 0x2c108bc6 tcp_simple_retransmit
+EXPORT_SYMBOL vmlinux 0x2c10a6cb register_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x2c138951 qdisc_tree_decrease_qlen
+EXPORT_SYMBOL vmlinux 0x2c197875 inet_dev_addr_type
+EXPORT_SYMBOL vmlinux 0x2c31972a pci_enable_device
+EXPORT_SYMBOL vmlinux 0x2c5040b1 pci_set_power_state
+EXPORT_SYMBOL vmlinux 0x2c5ba2de inet_shutdown
+EXPORT_SYMBOL vmlinux 0x2c7f33a4 default_unplug_io_fn
+EXPORT_SYMBOL vmlinux 0x2c9e2ae9 kernel_sock_ioctl
+EXPORT_SYMBOL vmlinux 0x2cac896b __downgrade_write
+EXPORT_SYMBOL vmlinux 0x2cb10537 ebus_dma_unregister
+EXPORT_SYMBOL vmlinux 0x2cb9023b uart_match_port
+EXPORT_SYMBOL vmlinux 0x2cb9c3a7 drm_idlelock_release
+EXPORT_SYMBOL vmlinux 0x2cc9c563 kern_path
+EXPORT_SYMBOL vmlinux 0x2cf29f81 __kfifo_from_user_generic
+EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock
+EXPORT_SYMBOL vmlinux 0x2d1c0bd6 skb_pad
+EXPORT_SYMBOL vmlinux 0x2d752c0f journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr
+EXPORT_SYMBOL vmlinux 0x2da66958 mac_find_mode
+EXPORT_SYMBOL vmlinux 0x2daa7939 xor_vis_4
+EXPORT_SYMBOL vmlinux 0x2dcb7cf9 wait_for_completion_interruptible_timeout
+EXPORT_SYMBOL vmlinux 0x2dcef24d __lock_page
+EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies
+EXPORT_SYMBOL vmlinux 0x2e490324 input_register_handler
+EXPORT_SYMBOL vmlinux 0x2e4a39f8 sysctl_udp_mem
+EXPORT_SYMBOL vmlinux 0x2e787380 sock_queue_err_skb
+EXPORT_SYMBOL vmlinux 0x2e7be112 _raw_read_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x2e9e2ca3 pcim_iomap_table
+EXPORT_SYMBOL vmlinux 0x2eb2f903 drm_sman_free_key
+EXPORT_SYMBOL vmlinux 0x2ee5d7ef simple_rename
+EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource
+EXPORT_SYMBOL vmlinux 0x2f0b773f mdiobus_read
+EXPORT_SYMBOL vmlinux 0x2f1c272a kthread_bind
+EXPORT_SYMBOL vmlinux 0x2f2ffbfd setup_new_exec
+EXPORT_SYMBOL vmlinux 0x2f3857e2 _raw_write_lock_irqsave
+EXPORT_SYMBOL vmlinux 0x2f76c2e2 kmem_cache_alloc_notrace
+EXPORT_SYMBOL vmlinux 0x2f8c32ba rfkill_init_sw_state
+EXPORT_SYMBOL vmlinux 0x2fa9c566 invalidate_mapping_pages
+EXPORT_SYMBOL vmlinux 0x2faeecdb seq_printf
+EXPORT_SYMBOL vmlinux 0x2fbeb051 dm_put_device
+EXPORT_SYMBOL vmlinux 0x2fe0dd59 iw_handler_get_thrspy
+EXPORT_SYMBOL vmlinux 0x30061d5d blk_plug_device
+EXPORT_SYMBOL vmlinux 0x300a5ae4 set_security_override
+EXPORT_SYMBOL vmlinux 0x300b2000 of_find_in_proplist
+EXPORT_SYMBOL vmlinux 0x301cb45a udp_proc_register
+EXPORT_SYMBOL vmlinux 0x301d1471 vga_get
+EXPORT_SYMBOL vmlinux 0x3029b088 map_to_cpu
+EXPORT_SYMBOL vmlinux 0x303a5cdd i2c_use_client
+EXPORT_SYMBOL vmlinux 0x3045f670 dm_table_unplug_all
+EXPORT_SYMBOL vmlinux 0x30485417 __find_get_block
+EXPORT_SYMBOL vmlinux 0x304ec72b _raw_write_trylock
+EXPORT_SYMBOL vmlinux 0x30500087 drm_sysfs_hotplug_event
+EXPORT_SYMBOL vmlinux 0x3074f033 drm_order
+EXPORT_SYMBOL vmlinux 0x308718f3 uart_unregister_driver
+EXPORT_SYMBOL vmlinux 0x30a5978d sock_release
+EXPORT_SYMBOL vmlinux 0x30aea70a kobject_get
+EXPORT_SYMBOL vmlinux 0x30c485f9 rwsem_down_read_failed
+EXPORT_SYMBOL vmlinux 0x30e7c9dd override_creds
+EXPORT_SYMBOL vmlinux 0x30e9187d lro_flush_pkt
+EXPORT_SYMBOL vmlinux 0x310516f1 generic_unplug_device
+EXPORT_SYMBOL vmlinux 0x310683b3 d_alloc_name
+EXPORT_SYMBOL vmlinux 0x310a2d80 bio_endio
+EXPORT_SYMBOL vmlinux 0x31121fe1 genl_unregister_mc_group
+EXPORT_SYMBOL vmlinux 0x313a3fc7 fb_find_mode
+EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present
+EXPORT_SYMBOL vmlinux 0x3147857d default_red
+EXPORT_SYMBOL vmlinux 0x31566f40 write_inode_now
+EXPORT_SYMBOL vmlinux 0x31617155 jbd2_journal_load
+EXPORT_SYMBOL vmlinux 0x316331b4 phy_attach
+EXPORT_SYMBOL vmlinux 0x3178e267 del_gendisk
+EXPORT_SYMBOL vmlinux 0x31804c69 neigh_compat_output
+EXPORT_SYMBOL vmlinux 0x3184225c simple_empty
+EXPORT_SYMBOL vmlinux 0x318b2783 tcp_v4_md5_hash_skb
+EXPORT_SYMBOL vmlinux 0x319e8c7b tcf_em_tree_destroy
+EXPORT_SYMBOL vmlinux 0x31a2e826 tty_termios_baud_rate
+EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck
+EXPORT_SYMBOL vmlinux 0x31e2443a copy_io_context
+EXPORT_SYMBOL vmlinux 0x31ebadcd in_group_p
+EXPORT_SYMBOL vmlinux 0x31ec560e groups_alloc
+EXPORT_SYMBOL vmlinux 0x3204b957 request_firmware
+EXPORT_SYMBOL vmlinux 0x320c0460 devm_request_threaded_irq
+EXPORT_SYMBOL vmlinux 0x323cefec copy_from_user_fixup
+EXPORT_SYMBOL vmlinux 0x326e1c51 kfifo_alloc
+EXPORT_SYMBOL vmlinux 0x32727c11 wireless_send_event
+EXPORT_SYMBOL vmlinux 0x3285cc48 param_set_uint
+EXPORT_SYMBOL vmlinux 0x3286d275 xfrm4_rcv_encap
+EXPORT_SYMBOL vmlinux 0x329fde5d xfrm_find_acq_byseq
+EXPORT_SYMBOL vmlinux 0x32debb16 cpumask_next_and
+EXPORT_SYMBOL vmlinux 0x32ef6398 drm_mode_connector_list_update
+EXPORT_SYMBOL vmlinux 0x3302289a scsi_host_get
+EXPORT_SYMBOL vmlinux 0x330f080a write_cache_pages
+EXPORT_SYMBOL vmlinux 0x33134f61 jiffies_to_timeval
+EXPORT_SYMBOL vmlinux 0x336bfc75 lro_receive_frags
+EXPORT_SYMBOL vmlinux 0x337206ef kmem_cache_name
+EXPORT_SYMBOL vmlinux 0x33781002 generic_write_sync
+EXPORT_SYMBOL vmlinux 0x338dc571 drm_mode_connector_update_edid_property
+EXPORT_SYMBOL vmlinux 0x33a690c6 dev_addr_add
+EXPORT_SYMBOL vmlinux 0x33ca7836 security_path_mknod
+EXPORT_SYMBOL vmlinux 0x33cda660 posix_acl_from_mode
+EXPORT_SYMBOL vmlinux 0x33d2f499 sg_copy_from_buffer
+EXPORT_SYMBOL vmlinux 0x340999c2 unregister_binfmt
+EXPORT_SYMBOL vmlinux 0x34117213 up_read
+EXPORT_SYMBOL vmlinux 0x341b328e inode_permission
+EXPORT_SYMBOL vmlinux 0x341cbed2 cpu_present_mask
+EXPORT_SYMBOL vmlinux 0x3457cb68 param_set_long
+EXPORT_SYMBOL vmlinux 0x3458cc36 block_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x345fb81b gnet_stats_copy_rate_est
+EXPORT_SYMBOL vmlinux 0x3476babc inode_set_bytes
+EXPORT_SYMBOL vmlinux 0x34942f09 skb_seq_read
+EXPORT_SYMBOL vmlinux 0x349cba85 strchr
+EXPORT_SYMBOL vmlinux 0x34a673f1 generic_read_dir
+EXPORT_SYMBOL vmlinux 0x34a6e567 fb_set_suspend
+EXPORT_SYMBOL vmlinux 0x34c4ec7d fsnotify_destroy_mark_by_entry
+EXPORT_SYMBOL vmlinux 0x34e7d471 vmap
+EXPORT_SYMBOL vmlinux 0x3505b6cb sync_inode
+EXPORT_SYMBOL vmlinux 0x35097e42 truncate_inode_pages_range
+EXPORT_SYMBOL vmlinux 0x3517e45d seq_bitmap_list
+EXPORT_SYMBOL vmlinux 0x35229500 directly_mappable_cdev_bdi
+EXPORT_SYMBOL vmlinux 0x35252a34 dquot_get_dqinfo
+EXPORT_SYMBOL vmlinux 0x3582ed17 vfs_stat
+EXPORT_SYMBOL vmlinux 0x359a2d93 bioset_integrity_create
+EXPORT_SYMBOL vmlinux 0x35b0650f vsnprintf
+EXPORT_SYMBOL vmlinux 0x35c2ba9e refrigerator
+EXPORT_SYMBOL vmlinux 0x35d0b920 elv_rb_del
+EXPORT_SYMBOL vmlinux 0x35dfe271 idr_remove
+EXPORT_SYMBOL vmlinux 0x35f17699 qdisc_create_dflt
+EXPORT_SYMBOL vmlinux 0x36139a51 memcpy_fromiovec
+EXPORT_SYMBOL vmlinux 0x361dfbb2 filemap_fdatawait_range
+EXPORT_SYMBOL vmlinux 0x362fb43e simple_fill_super
+EXPORT_SYMBOL vmlinux 0x3638d643 buffer_migrate_page
+EXPORT_SYMBOL vmlinux 0x364d09ca page_put_link
+EXPORT_SYMBOL vmlinux 0x366fef54 pci_bus_write_config_dword
+EXPORT_SYMBOL vmlinux 0x3683f8c7 xfrm_input_resume
+EXPORT_SYMBOL vmlinux 0x36be6ac8 blk_queue_end_tag
+EXPORT_SYMBOL vmlinux 0x36c00254 __splice_from_pipe
+EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x371c3a80 sock_tx_timestamp
+EXPORT_SYMBOL vmlinux 0x37219b3d bdi_unregister
+EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn
+EXPORT_SYMBOL vmlinux 0x375465a7 radix_tree_gang_lookup_tag_slot
+EXPORT_SYMBOL vmlinux 0x3757e7bb xfrm_state_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x3767856a unregister_con_driver
+EXPORT_SYMBOL vmlinux 0x37a9fe31 __kfifo_in_generic
+EXPORT_SYMBOL vmlinux 0x37bb6cee serio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs
+EXPORT_SYMBOL vmlinux 0x37e325fd padata_do_serial
+EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow
+EXPORT_SYMBOL vmlinux 0x38052fa4 journal_abort
+EXPORT_SYMBOL vmlinux 0x380ca23b inet_dgram_connect
+EXPORT_SYMBOL vmlinux 0x382cc8e7 kmem_cache_destroy
+EXPORT_SYMBOL vmlinux 0x3834a353 xfrm_policy_unregister_afinfo
+EXPORT_SYMBOL vmlinux 0x3853e095 prepare_creds
+EXPORT_SYMBOL vmlinux 0x3861f6f3 bioset_integrity_free
+EXPORT_SYMBOL vmlinux 0x3869079a input_release_device
+EXPORT_SYMBOL vmlinux 0x38822f97 copy_user_page
+EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done
+EXPORT_SYMBOL vmlinux 0x38e22ebe drm_handle_vblank
+EXPORT_SYMBOL vmlinux 0x38f4df73 cookie_check_timestamp
+EXPORT_SYMBOL vmlinux 0x390d0985 security_sb_clone_mnt_opts
+EXPORT_SYMBOL vmlinux 0x3924f788 simple_set_mnt
+EXPORT_SYMBOL vmlinux 0x3945b00c scsi_bios_ptable
+EXPORT_SYMBOL vmlinux 0x395bf8ff rfkill_register
+EXPORT_SYMBOL vmlinux 0x39659fae registered_fb
+EXPORT_SYMBOL vmlinux 0x3967fde3 ll_rw_block
+EXPORT_SYMBOL vmlinux 0x3980aac1 unregister_reboot_notifier
+EXPORT_SYMBOL vmlinux 0x3985b4bf sbusfb_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x39916b2f of_parse_phandle
+EXPORT_SYMBOL vmlinux 0x39ada611 generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0x39b0a906 serio_unregister_child_port
+EXPORT_SYMBOL vmlinux 0x39becc9a dquot_quota_sync
+EXPORT_SYMBOL vmlinux 0x39c40f3c xfrm_spd_getinfo
+EXPORT_SYMBOL vmlinux 0x39d0a158 d_obtain_alias
+EXPORT_SYMBOL vmlinux 0x39e0c14c drm_vblank_count
+EXPORT_SYMBOL vmlinux 0x3a00eee9 drm_irq_install
+EXPORT_SYMBOL vmlinux 0x3a2204c6 security_netlink_recv
+EXPORT_SYMBOL vmlinux 0x3a5ab713 register_nls
+EXPORT_SYMBOL vmlinux 0x3a6bfc43 posix_test_lock
+EXPORT_SYMBOL vmlinux 0x3a7bd482 pci_unregister_driver
+EXPORT_SYMBOL vmlinux 0x3a9aa54d clear_bit
+EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region
+EXPORT_SYMBOL vmlinux 0x3ac2380e tcf_hash_release
+EXPORT_SYMBOL vmlinux 0x3ad11d2e path_lookup
+EXPORT_SYMBOL vmlinux 0x3adf7b50 scsi_prep_fn
+EXPORT_SYMBOL vmlinux 0x3ae5ae58 dev_gro_receive
+EXPORT_SYMBOL vmlinux 0x3b3fe8cb prom_getsibling
+EXPORT_SYMBOL vmlinux 0x3b463bbf pci_request_selected_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x3b61b603 idr_remove_all
+EXPORT_SYMBOL vmlinux 0x3b863fcf of_find_node_by_path
+EXPORT_SYMBOL vmlinux 0x3ba2a72d slow_work_unregister_user
+EXPORT_SYMBOL vmlinux 0x3ba954a2 inet_frags_fini
+EXPORT_SYMBOL vmlinux 0x3baaf261 init_buffer
+EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0x3bdf2ec4 input_free_device
+EXPORT_SYMBOL vmlinux 0x3bf72584 generic_delete_inode
+EXPORT_SYMBOL vmlinux 0x3c0c9414 get_sb_pseudo
+EXPORT_SYMBOL vmlinux 0x3c1d3007 wait_on_sync_kiocb
+EXPORT_SYMBOL vmlinux 0x3c2c5af5 sprintf
+EXPORT_SYMBOL vmlinux 0x3c376e4e vio_conn_reset
+EXPORT_SYMBOL vmlinux 0x3c4ff466 find_get_pages_tag
+EXPORT_SYMBOL vmlinux 0x3c7538a6 mdesc_next_arc
+EXPORT_SYMBOL vmlinux 0x3c77c48f tcf_generic_walker
+EXPORT_SYMBOL vmlinux 0x3c7a8ed4 xfrm_unregister_mode
+EXPORT_SYMBOL vmlinux 0x3c9a1409 drm_ht_just_insert_please
+EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size
+EXPORT_SYMBOL vmlinux 0x3cb21fa6 __nla_put
+EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq
+EXPORT_SYMBOL vmlinux 0x3cfd167a invalidate_partition
+EXPORT_SYMBOL vmlinux 0x3d01bb22 sock_no_listen
+EXPORT_SYMBOL vmlinux 0x3d2e6073 kill_block_super
+EXPORT_SYMBOL vmlinux 0x3d400bde abx500_get_chip_id
+EXPORT_SYMBOL vmlinux 0x3d407d61 net2280_set_fifo_mode
+EXPORT_SYMBOL vmlinux 0x3d77d8ad genphy_resume
+EXPORT_SYMBOL vmlinux 0x3d8728bb memcpy_toiovecend
+EXPORT_SYMBOL vmlinux 0x3d8ded4e __blk_end_request
+EXPORT_SYMBOL vmlinux 0x3d9a8823 remove_proc_entry
+EXPORT_SYMBOL vmlinux 0x3d9f370c __tracepoint_kmalloc_node
+EXPORT_SYMBOL vmlinux 0x3dacc2d9 __lru_cache_add
+EXPORT_SYMBOL vmlinux 0x3db2e258 radix_tree_gang_lookup
+EXPORT_SYMBOL vmlinux 0x3db353f6 skb_copy_bits
+EXPORT_SYMBOL vmlinux 0x3dcf46a6 drm_rmmap
+EXPORT_SYMBOL vmlinux 0x3dd5f4ce __inet6_lookup_established
+EXPORT_SYMBOL vmlinux 0x3dd966d5 jbd2_journal_revoke
+EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head
+EXPORT_SYMBOL vmlinux 0x3e219dc0 netlink_broadcast
+EXPORT_SYMBOL vmlinux 0x3e21af72 check_disk_change
+EXPORT_SYMBOL vmlinux 0x3e3627cf __wake_up
+EXPORT_SYMBOL vmlinux 0x3e383385 nf_hooks
+EXPORT_SYMBOL vmlinux 0x3e45e9ff register_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x3e5e0d8e simple_release_fs
+EXPORT_SYMBOL vmlinux 0x3e728b38 pci_bus_write_config_word
+EXPORT_SYMBOL vmlinux 0x3e85405a drm_pci_free
+EXPORT_SYMBOL vmlinux 0x3e8f7acd bio_copy_user
+EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync
+EXPORT_SYMBOL vmlinux 0x3e9a2bd7 eth_validate_addr
+EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset
+EXPORT_SYMBOL vmlinux 0x3ee3e46d nf_ct_attach
+EXPORT_SYMBOL vmlinux 0x3eeb2dd1 eth_header_cache_update
+EXPORT_SYMBOL vmlinux 0x3f13b41b uart_resume_port
+EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd
+EXPORT_SYMBOL vmlinux 0x3f552988 find_vma
+EXPORT_SYMBOL vmlinux 0x3f95df57 block_truncate_page
+EXPORT_SYMBOL vmlinux 0x3f9d5a2b bio_alloc_bioset
+EXPORT_SYMBOL vmlinux 0x3fa03a97 memset
+EXPORT_SYMBOL vmlinux 0x3fa425e1 dqstats
+EXPORT_SYMBOL vmlinux 0x3fa913da strspn
+EXPORT_SYMBOL vmlinux 0x3fd110e5 d_instantiate_unique
+EXPORT_SYMBOL vmlinux 0x3fd449c4 eth_header_parse
+EXPORT_SYMBOL vmlinux 0x3fdf5514 sbusfb_fill_var
+EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable
+EXPORT_SYMBOL vmlinux 0x400f8c3a drm_crtc_cleanup
+EXPORT_SYMBOL vmlinux 0x402e075b dev_addr_add_multiple
+EXPORT_SYMBOL vmlinux 0x402ef172 pci_assign_resource
+EXPORT_SYMBOL vmlinux 0x40332ad5 mdesc_node_by_name
+EXPORT_SYMBOL vmlinux 0x403cb014 phy_enable_interrupts
+EXPORT_SYMBOL vmlinux 0x4046e71a icmp_send
+EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds
+EXPORT_SYMBOL vmlinux 0x40627fe5 input_allocate_device
+EXPORT_SYMBOL vmlinux 0x407db92c generic_file_readonly_mmap
+EXPORT_SYMBOL vmlinux 0x408ea5c7 drm_gem_mmap
+EXPORT_SYMBOL vmlinux 0x4099050a __wait_on_buffer
+EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list
+EXPORT_SYMBOL vmlinux 0x40bea1f1 dma_find_channel
+EXPORT_SYMBOL vmlinux 0x40d3a3a1 __task_pid_nr_ns
+EXPORT_SYMBOL vmlinux 0x40da4247 mark_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x4101bbde param_set_copystring
+EXPORT_SYMBOL vmlinux 0x4108b1ed sget
+EXPORT_SYMBOL vmlinux 0x4108e69a fb_match_mode
+EXPORT_SYMBOL vmlinux 0x41171e93 dcache_dir_open
+EXPORT_SYMBOL vmlinux 0x411f55ec dev_uc_init
+EXPORT_SYMBOL vmlinux 0x411fd58a rfkill_set_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x41344088 param_get_charp
+EXPORT_SYMBOL vmlinux 0x413d8e64 bio_integrity_get_tag
+EXPORT_SYMBOL vmlinux 0x413e4718 cad_pid
+EXPORT_SYMBOL vmlinux 0x41415d44 unregister_sysrq_key
+EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user
+EXPORT_SYMBOL vmlinux 0x416983d9 netdev_fix_features
+EXPORT_SYMBOL vmlinux 0x4174f8f4 down_read
+EXPORT_SYMBOL vmlinux 0x4180ee80 atomic_dec_and_mutex_lock
+EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time
+EXPORT_SYMBOL vmlinux 0x41a8d8b8 tcp4_gro_complete
+EXPORT_SYMBOL vmlinux 0x41c3e67e __dev_get_by_index
+EXPORT_SYMBOL vmlinux 0x41cbd6ce blk_set_default_limits
+EXPORT_SYMBOL vmlinux 0x41d37e77 dma_async_device_unregister
+EXPORT_SYMBOL vmlinux 0x41df3cbd generic_getxattr
+EXPORT_SYMBOL vmlinux 0x420af434 sock_no_connect
+EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2
+EXPORT_SYMBOL vmlinux 0x42224298 sscanf
+EXPORT_SYMBOL vmlinux 0x4251a30a __sk_mem_schedule
+EXPORT_SYMBOL vmlinux 0x4255dde6 inet_csk_clear_xmit_timers
+EXPORT_SYMBOL vmlinux 0x426e6c18 ps2_begin_command
+EXPORT_SYMBOL vmlinux 0x4274db11 drm_encoder_init
+EXPORT_SYMBOL vmlinux 0x428033e6 ida_destroy
+EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0x429d35b7 journal_load
+EXPORT_SYMBOL vmlinux 0x42a4bdf2 in_egroup_p
+EXPORT_SYMBOL vmlinux 0x42b38f4f ldc_write
+EXPORT_SYMBOL vmlinux 0x42b5e1a5 slow_work_cancel
+EXPORT_SYMBOL vmlinux 0x42d553d5 abort_exclusive_wait
+EXPORT_SYMBOL vmlinux 0x42e492d2 netif_carrier_on
+EXPORT_SYMBOL vmlinux 0x42f8afb8 find_get_pages_contig
+EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages
+EXPORT_SYMBOL vmlinux 0x4320a5ee jbd2_journal_clear_err
+EXPORT_SYMBOL vmlinux 0x432a94f3 jbd2_journal_release_buffer
+EXPORT_SYMBOL vmlinux 0x4333eadb param_set_short
+EXPORT_SYMBOL vmlinux 0x43384bd9 drm_buffer_alloc
+EXPORT_SYMBOL vmlinux 0x43411b52 dquot_quota_on_path
+EXPORT_SYMBOL vmlinux 0x434fa55c release_console_sem
+EXPORT_SYMBOL vmlinux 0x43552b03 schedule_delayed_work
+EXPORT_SYMBOL vmlinux 0x43779272 xfrm_policy_delete
+EXPORT_SYMBOL vmlinux 0x437fd1b4 blk_queue_invalidate_tags
+EXPORT_SYMBOL vmlinux 0x438474ab n_tty_ioctl_helper
+EXPORT_SYMBOL vmlinux 0x438fbc09 fsync_bdev
+EXPORT_SYMBOL vmlinux 0x439090b9 kernel_thread
+EXPORT_SYMBOL vmlinux 0x43a4938f vm_get_page_prot
+EXPORT_SYMBOL vmlinux 0x43ab66c3 param_array_get
+EXPORT_SYMBOL vmlinux 0x43bea045 auxio_register
+EXPORT_SYMBOL vmlinux 0x43d18ea7 ip_route_output_key
+EXPORT_SYMBOL vmlinux 0x43ec913a put_cmsg
+EXPORT_SYMBOL vmlinux 0x4408d24d da903x_query_status
+EXPORT_SYMBOL vmlinux 0x44161c19 unregister_shrinker
+EXPORT_SYMBOL vmlinux 0x44373ece journal_ack_err
+EXPORT_SYMBOL vmlinux 0x44387e69 journal_init_dev
+EXPORT_SYMBOL vmlinux 0x444779c4 nla_find
+EXPORT_SYMBOL vmlinux 0x447f7e18 sun4v_niagara2_getperf
+EXPORT_SYMBOL vmlinux 0x44aed7cc loop_register_transfer
+EXPORT_SYMBOL vmlinux 0x44b152f3 security_task_getsecid
+EXPORT_SYMBOL vmlinux 0x44b87cdf serio_rescan
+EXPORT_SYMBOL vmlinux 0x44c9ff3d uart_register_driver
+EXPORT_SYMBOL vmlinux 0x44d8904e jbd2_journal_begin_ordered_truncate
+EXPORT_SYMBOL vmlinux 0x44e9a829 match_token
+EXPORT_SYMBOL vmlinux 0x44f857d7 i2c_smbus_write_byte
+EXPORT_SYMBOL vmlinux 0x4550ba8a register_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x455aa670 of_getintprop_default
+EXPORT_SYMBOL vmlinux 0x455c4dfd __starget_for_each_device
+EXPORT_SYMBOL vmlinux 0x456268f3 phy_disable_interrupts
+EXPORT_SYMBOL vmlinux 0x45704798 print_hex_dump_bytes
+EXPORT_SYMBOL vmlinux 0x4575315d utf8s_to_utf16s
+EXPORT_SYMBOL vmlinux 0x45947727 param_array_set
+EXPORT_SYMBOL vmlinux 0x45993db9 vm_event_states
+EXPORT_SYMBOL vmlinux 0x459fa456 kmem_cache_alloc_node_notrace
+EXPORT_SYMBOL vmlinux 0x45ae79a0 do_splice_to
+EXPORT_SYMBOL vmlinux 0x45b742fa jbd2_log_start_commit
+EXPORT_SYMBOL vmlinux 0x45cd6a57 blk_queue_merge_bvec
+EXPORT_SYMBOL vmlinux 0x45ce69ef unlock_buffer
+EXPORT_SYMBOL vmlinux 0x45d216b9 tcp_put_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x466c14a7 __delay
+EXPORT_SYMBOL vmlinux 0x46a4c49d devm_ioremap_nocache
+EXPORT_SYMBOL vmlinux 0x46a4e63a register_sysctl_table
+EXPORT_SYMBOL vmlinux 0x46d6f29e __dev_get_by_name
+EXPORT_SYMBOL vmlinux 0x46f48c3b tcp_sendmsg
+EXPORT_SYMBOL vmlinux 0x46f9ac85 sock_kfree_s
+EXPORT_SYMBOL vmlinux 0x46fb089d uart_add_one_port
+EXPORT_SYMBOL vmlinux 0x470aac31 sk_reset_txq
+EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range
+EXPORT_SYMBOL vmlinux 0x4779288a of_find_property
+EXPORT_SYMBOL vmlinux 0x477a125d dev_addr_del
+EXPORT_SYMBOL vmlinux 0x47874c3b fget
+EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule
+EXPORT_SYMBOL vmlinux 0x47987207 dma_async_tx_descriptor_init
+EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit
+EXPORT_SYMBOL vmlinux 0x47a7fc4e dev_txq_stats_fold
+EXPORT_SYMBOL vmlinux 0x47af1d99 alloc_pci_dev
+EXPORT_SYMBOL vmlinux 0x47b339fa mdiobus_alloc
+EXPORT_SYMBOL vmlinux 0x47dc6905 proc_mkdir
+EXPORT_SYMBOL vmlinux 0x47e333ce bdput
+EXPORT_SYMBOL vmlinux 0x47eea856 sbusfb_mmap_helper
+EXPORT_SYMBOL vmlinux 0x480a9291 dm_get_device
+EXPORT_SYMBOL vmlinux 0x48193ed1 backlight_device_unregister
+EXPORT_SYMBOL vmlinux 0x48201dc4 mdesc_get_property
+EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days
+EXPORT_SYMBOL vmlinux 0x485d2bc9 bh_uptodate_or_lock
+EXPORT_SYMBOL vmlinux 0x486e73f2 inode_add_bytes
+EXPORT_SYMBOL vmlinux 0x489569e0 generic_write_checks
+EXPORT_SYMBOL vmlinux 0x48a39736 vfs_symlink
+EXPORT_SYMBOL vmlinux 0x48c1d080 tcp_parse_md5sig_option
+EXPORT_SYMBOL vmlinux 0x48dcb8e3 rfkill_get_led_trigger_name
+EXPORT_SYMBOL vmlinux 0x492b22bd blkdev_issue_flush
+EXPORT_SYMBOL vmlinux 0x49439411 genl_unregister_family
+EXPORT_SYMBOL vmlinux 0x495fcfc0 __elv_add_request
+EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data
+EXPORT_SYMBOL vmlinux 0x496de6da dev_mc_add
+EXPORT_SYMBOL vmlinux 0x4978c44f finish_wait
+EXPORT_SYMBOL vmlinux 0x497a6f22 follow_up
+EXPORT_SYMBOL vmlinux 0x499b4a5e tcf_exts_dump
+EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window
+EXPORT_SYMBOL vmlinux 0x49bcec47 i2c_clients_command
+EXPORT_SYMBOL vmlinux 0x49d73758 idr_find
+EXPORT_SYMBOL vmlinux 0x49e182c0 param_get_string
+EXPORT_SYMBOL vmlinux 0x49ed8bcc drm_mode_detachmode_crtc
+EXPORT_SYMBOL vmlinux 0x49fe2d5e fddi_change_mtu
+EXPORT_SYMBOL vmlinux 0x4a059eda vfs_rename
+EXPORT_SYMBOL vmlinux 0x4a0edea5 drm_i_have_hw_lock
+EXPORT_SYMBOL vmlinux 0x4a15ae23 prom_node_has_property
+EXPORT_SYMBOL vmlinux 0x4a17611d vfs_follow_link
+EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset
+EXPORT_SYMBOL vmlinux 0x4a5814de dm_io_client_resize
+EXPORT_SYMBOL vmlinux 0x4a7001ee drm_pci_alloc
+EXPORT_SYMBOL vmlinux 0x4a78ca15 xfrm_state_update
+EXPORT_SYMBOL vmlinux 0x4a7fdad1 audit_log_end
+EXPORT_SYMBOL vmlinux 0x4a888aee kmem_cache_create
+EXPORT_SYMBOL vmlinux 0x4a900da7 elevator_exit
+EXPORT_SYMBOL vmlinux 0x4a9f3826 phy_find_first
+EXPORT_SYMBOL vmlinux 0x4aa84d66 generic_listxattr
+EXPORT_SYMBOL vmlinux 0x4aabc7c4 __tracepoint_kmalloc
+EXPORT_SYMBOL vmlinux 0x4ab52887 security_inode_permission
+EXPORT_SYMBOL vmlinux 0x4acd67c1 blk_queue_bounce_limit
+EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource
+EXPORT_SYMBOL vmlinux 0x4ad551f7 jbd2_journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize
+EXPORT_SYMBOL vmlinux 0x4b0da0a0 journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0x4b1e59b4 netpoll_poll
+EXPORT_SYMBOL vmlinux 0x4b64cdf5 drm_vblank_pre_modeset
+EXPORT_SYMBOL vmlinux 0x4b655502 ldc_copy
+EXPORT_SYMBOL vmlinux 0x4b832ea1 unregister_console
+EXPORT_SYMBOL vmlinux 0x4b91a6b1 phy_driver_register
+EXPORT_SYMBOL vmlinux 0x4ba1e6ec scsi_target_resume
+EXPORT_SYMBOL vmlinux 0x4bc12e00 tty_devnum
+EXPORT_SYMBOL vmlinux 0x4bda2b03 get_phy_id
+EXPORT_SYMBOL vmlinux 0x4bdf1eed sock_setsockopt
+EXPORT_SYMBOL vmlinux 0x4be4d47c eth_change_mtu
+EXPORT_SYMBOL vmlinux 0x4c090c85 __ip_select_ident
+EXPORT_SYMBOL vmlinux 0x4c097e23 ps2_init
+EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf
+EXPORT_SYMBOL vmlinux 0x4c2d3300 seq_lseek
+EXPORT_SYMBOL vmlinux 0x4c4c956e nla_memcmp
+EXPORT_SYMBOL vmlinux 0x4c5c65c7 page_zero_new_buffers
+EXPORT_SYMBOL vmlinux 0x4c675f61 fsnotify_put_group
+EXPORT_SYMBOL vmlinux 0x4c913091 bio_integrity_split
+EXPORT_SYMBOL vmlinux 0x4c9140a6 scsi_setup_blk_pc_cmnd
+EXPORT_SYMBOL vmlinux 0x4c98c9aa find_lock_page
+EXPORT_SYMBOL vmlinux 0x4caf6fe3 drm_sysfs_connector_add
+EXPORT_SYMBOL vmlinux 0x4cb3037f generic_pipe_buf_steal
+EXPORT_SYMBOL vmlinux 0x4cb6553b mutex_unlock
+EXPORT_SYMBOL vmlinux 0x4cba29ec security_file_permission
+EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight
+EXPORT_SYMBOL vmlinux 0x4cbda2bf prom_setprop
+EXPORT_SYMBOL vmlinux 0x4cc031e0 seq_puts
+EXPORT_SYMBOL vmlinux 0x4cc26dc5 alloc_netdev_mq
+EXPORT_SYMBOL vmlinux 0x4cc32ea0 ip_route_input_common
+EXPORT_SYMBOL vmlinux 0x4cda4fee vga_set_legacy_decoding
+EXPORT_SYMBOL vmlinux 0x4cde7caa close_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x4cdf83a3 vm_insert_mixed
+EXPORT_SYMBOL vmlinux 0x4d0f1a84 scsi_get_host_dev
+EXPORT_SYMBOL vmlinux 0x4d2d590a input_close_device
+EXPORT_SYMBOL vmlinux 0x4d40f2f2 sock_update_classid
+EXPORT_SYMBOL vmlinux 0x4d769a1d idr_replace
+EXPORT_SYMBOL vmlinux 0x4d7907c2 drm_gem_vm_open
+EXPORT_SYMBOL vmlinux 0x4d9f346e dev_uc_del
+EXPORT_SYMBOL vmlinux 0x4da06597 con_copy_unimap
+EXPORT_SYMBOL vmlinux 0x4db1e1d4 posix_acl_equiv_mode
+EXPORT_SYMBOL vmlinux 0x4dc45be9 nf_log_unbind_pf
+EXPORT_SYMBOL vmlinux 0x4dda726b match_strlcpy
+EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse
+EXPORT_SYMBOL vmlinux 0x4e069249 security_tun_dev_post_create
+EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int
+EXPORT_SYMBOL vmlinux 0x4e5d7ce4 locks_remove_posix
+EXPORT_SYMBOL vmlinux 0x4e676844 genl_unregister_ops
+EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console
+EXPORT_SYMBOL vmlinux 0x4e7fe48e get_gendisk
+EXPORT_SYMBOL vmlinux 0x4e9dffb5 ip_fast_csum
+EXPORT_SYMBOL vmlinux 0x4ea1f5a2 drm_gem_object_free
+EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals
+EXPORT_SYMBOL vmlinux 0x4eed5316 kernel_accept
+EXPORT_SYMBOL vmlinux 0x4f012499 bit_waitqueue
+EXPORT_SYMBOL vmlinux 0x4f0bca28 bio_integrity_enabled
+EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create
+EXPORT_SYMBOL vmlinux 0x4f4d118d qdisc_calculate_pkt_len
+EXPORT_SYMBOL vmlinux 0x4f683be5 sock_no_sendpage
+EXPORT_SYMBOL vmlinux 0x4fa1ad90 tcp_enter_memory_pressure
+EXPORT_SYMBOL vmlinux 0x4fa5a607 bdev_stack_limits
+EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command
+EXPORT_SYMBOL vmlinux 0x50211ee3 tcp_free_md5sig_pool
+EXPORT_SYMBOL vmlinux 0x50384420 devm_free_irq
+EXPORT_SYMBOL vmlinux 0x506746b6 getrawmonotonic
+EXPORT_SYMBOL vmlinux 0x5068cf13 __register_chrdev
+EXPORT_SYMBOL vmlinux 0x506ca6f1 complete_request_key
+EXPORT_SYMBOL vmlinux 0x5077e6a2 invalidate_inode_buffers
+EXPORT_SYMBOL vmlinux 0x50830a8a drm_mm_dump_table
+EXPORT_SYMBOL vmlinux 0x50937ace sb_min_blocksize
+EXPORT_SYMBOL vmlinux 0x50a38276 remove_wait_queue
+EXPORT_SYMBOL vmlinux 0x50a66d62 splice_from_pipe_next
+EXPORT_SYMBOL vmlinux 0x50bce8b6 skb_insert
+EXPORT_SYMBOL vmlinux 0x50c8ff6b scsi_set_medium_removal
+EXPORT_SYMBOL vmlinux 0x510431d3 bio_add_page
+EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number
+EXPORT_SYMBOL vmlinux 0x516da8bd bio_flush_dcache_pages
+EXPORT_SYMBOL vmlinux 0x51749fc8 _raw_read_lock_irq
+EXPORT_SYMBOL vmlinux 0x517f15e5 km_policy_expired
+EXPORT_SYMBOL vmlinux 0x51c9e5e5 of_console_device
+EXPORT_SYMBOL vmlinux 0x51dcbff1 neigh_lookup_nodev
+EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init
+EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str
+EXPORT_SYMBOL vmlinux 0x5205baa0 pcim_iomap_regions
+EXPORT_SYMBOL vmlinux 0x5211b768 backlight_device_register
+EXPORT_SYMBOL vmlinux 0x52482457 pcim_pin_device
+EXPORT_SYMBOL vmlinux 0x5251cae4 prom_getbool
+EXPORT_SYMBOL vmlinux 0x525916c9 __wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0x525daf3f dw_spi_resume_host
+EXPORT_SYMBOL vmlinux 0x526ecd6b max8925_set_bits
+EXPORT_SYMBOL vmlinux 0x526f77cb drm_property_destroy
+EXPORT_SYMBOL vmlinux 0x52760ca9 getnstimeofday
+EXPORT_SYMBOL vmlinux 0x5292e714 dm_kcopyd_client_destroy
+EXPORT_SYMBOL vmlinux 0x52a58c24 ifla_policy
+EXPORT_SYMBOL vmlinux 0x52b15b05 pci_try_set_mwi
+EXPORT_SYMBOL vmlinux 0x52c2ef34 rb_erase
+EXPORT_SYMBOL vmlinux 0x52ce8892 vmtruncate
+EXPORT_SYMBOL vmlinux 0x52e96bd1 invalidate_inodes
+EXPORT_SYMBOL vmlinux 0x52ea6914 __nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0x52ebb126 param_get_ushort
+EXPORT_SYMBOL vmlinux 0x52f11711 security_path_chmod
+EXPORT_SYMBOL vmlinux 0x52f3e2a2 journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x52f60a65 pci_read_vpd
+EXPORT_SYMBOL vmlinux 0x53055655 proc_dointvec_userhz_jiffies
+EXPORT_SYMBOL vmlinux 0x5312cda4 netif_device_attach
+EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages
+EXPORT_SYMBOL vmlinux 0x533903d8 outsw
+EXPORT_SYMBOL vmlinux 0x533e0ec0 kstat
+EXPORT_SYMBOL vmlinux 0x533e15e1 f_setown
+EXPORT_SYMBOL vmlinux 0x533f6bd0 neigh_sysctl_unregister
+EXPORT_SYMBOL vmlinux 0x53a2f547 journal_dirty_metadata
+EXPORT_SYMBOL vmlinux 0x53af5857 mod_zone_page_state
+EXPORT_SYMBOL vmlinux 0x53c0767c sk_chk_filter
+EXPORT_SYMBOL vmlinux 0x53c34473 blk_end_request
+EXPORT_SYMBOL vmlinux 0x53d984b7 nf_unregister_hooks
+EXPORT_SYMBOL vmlinux 0x53f3cfeb audit_log_start
+EXPORT_SYMBOL vmlinux 0x5421011b kernel_getpeername
+EXPORT_SYMBOL vmlinux 0x54290dc9 nla_validate
+EXPORT_SYMBOL vmlinux 0x543b5f8b drm_mode_create_dirty_info_property
+EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start
+EXPORT_SYMBOL vmlinux 0x5479c6dc generic_pipe_buf_unmap
+EXPORT_SYMBOL vmlinux 0x54adf102 journal_check_available_features
+EXPORT_SYMBOL vmlinux 0x54b1870a phy_driver_unregister
+EXPORT_SYMBOL vmlinux 0x54cf3023 drm_connector_property_get_value
+EXPORT_SYMBOL vmlinux 0x54dff6c6 tcp4_gro_receive
+EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp
+EXPORT_SYMBOL vmlinux 0x54ff076b tcf_hash_new_index
+EXPORT_SYMBOL vmlinux 0x55348f8a dquot_drop
+EXPORT_SYMBOL vmlinux 0x5552129c eth_mac_addr
+EXPORT_SYMBOL vmlinux 0x55576507 drm_mode_probed_add
+EXPORT_SYMBOL vmlinux 0x5560e89d sunserial_console_match
+EXPORT_SYMBOL vmlinux 0x55611cab tty_driver_flush_buffer
+EXPORT_SYMBOL vmlinux 0x556db901 xor_vis_5
+EXPORT_SYMBOL vmlinux 0x557672b4 boot_tvec_bases
+EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap
+EXPORT_SYMBOL vmlinux 0x55a076b3 kfifo_out_peek
+EXPORT_SYMBOL vmlinux 0x55a341cd drm_connector_attach_property
+EXPORT_SYMBOL vmlinux 0x55ae7f65 sock_init_data
+EXPORT_SYMBOL vmlinux 0x55b172bb d_validate
+EXPORT_SYMBOL vmlinux 0x55b2f760 phy_sanitize_settings
+EXPORT_SYMBOL vmlinux 0x55da7c18 of_phy_connect
+EXPORT_SYMBOL vmlinux 0x55db065c of_set_property
+EXPORT_SYMBOL vmlinux 0x55f060ee drm_sman_set_range
+EXPORT_SYMBOL vmlinux 0x55f23bbe of_device_is_available
+EXPORT_SYMBOL vmlinux 0x5600904f fb_get_color_depth
+EXPORT_SYMBOL vmlinux 0x5603cf43 do_settimeofday
+EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done
+EXPORT_SYMBOL vmlinux 0x561f7473 bio_kmalloc
+EXPORT_SYMBOL vmlinux 0x5624c8bf tty_register_ldisc
+EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user
+EXPORT_SYMBOL vmlinux 0x563ea023 skb_queue_tail
+EXPORT_SYMBOL vmlinux 0x56b201d5 genphy_config_aneg
+EXPORT_SYMBOL vmlinux 0x56b7c22e idr_init
+EXPORT_SYMBOL vmlinux 0x56b9d0fc pipe_to_file
+EXPORT_SYMBOL vmlinux 0x56c5d67b ebus_dma_irq_enable
+EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg
+EXPORT_SYMBOL vmlinux 0x56cb5f21 vfs_fsync
+EXPORT_SYMBOL vmlinux 0x56cda35a sun4v_niagara2_setperf
+EXPORT_SYMBOL vmlinux 0x56f494e0 smp_call_function
+EXPORT_SYMBOL vmlinux 0x5712812d sk_filter
+EXPORT_SYMBOL vmlinux 0x572adc55 clip_tbl_hook
+EXPORT_SYMBOL vmlinux 0x572c15c0 wait_for_completion_killable_timeout
+EXPORT_SYMBOL vmlinux 0x572d0104 _raw_write_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt
+EXPORT_SYMBOL vmlinux 0x573b0879 iterate_mounts
+EXPORT_SYMBOL vmlinux 0x573d995d simple_link
+EXPORT_SYMBOL vmlinux 0x574c5b25 genphy_read_status
+EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put
+EXPORT_SYMBOL vmlinux 0x575d136a xfrm_state_delete_tunnel
+EXPORT_SYMBOL vmlinux 0x57635da7 tty_hung_up_p
+EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16
+EXPORT_SYMBOL vmlinux 0x576e82ed __skb_bond_should_drop
+EXPORT_SYMBOL vmlinux 0x576ff2e6 __register_binfmt
+EXPORT_SYMBOL vmlinux 0x577daee9 drm_core_ioremap
+EXPORT_SYMBOL vmlinux 0x577f4bff do_BUG
+EXPORT_SYMBOL vmlinux 0x57b57ebe jiffies_to_timespec
+EXPORT_SYMBOL vmlinux 0x57cf4cf5 neigh_lookup
+EXPORT_SYMBOL vmlinux 0x57d93eb4 clocksource_unregister
+EXPORT_SYMBOL vmlinux 0x57db7242 mangle_path
+EXPORT_SYMBOL vmlinux 0x57e33b5d udplite_prot
+EXPORT_SYMBOL vmlinux 0x57e4c0eb scsi_host_lookup
+EXPORT_SYMBOL vmlinux 0x57f7c686 sparc64_valid_addr_bitmap
+EXPORT_SYMBOL vmlinux 0x580830f0 drm_mode_set_name
+EXPORT_SYMBOL vmlinux 0x58171949 qdisc_destroy
+EXPORT_SYMBOL vmlinux 0x582fef16 auxio_set_lte
+EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm
+EXPORT_SYMBOL vmlinux 0x585d7a37 tcp_timewait_state_process
+EXPORT_SYMBOL vmlinux 0x58694930 skb_tx_hash
+EXPORT_SYMBOL vmlinux 0x587b3f6f scsi_mode_sense
+EXPORT_SYMBOL vmlinux 0x589063bf qdisc_reset
+EXPORT_SYMBOL vmlinux 0x58da81d3 unregister_quota_format
+EXPORT_SYMBOL vmlinux 0x58e67e1e ebus_dma_residue
+EXPORT_SYMBOL vmlinux 0x5930ca8c unregister_exec_domain
+EXPORT_SYMBOL vmlinux 0x5934392b fb_register_client
+EXPORT_SYMBOL vmlinux 0x59356dad generic_setxattr
+EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map
+EXPORT_SYMBOL vmlinux 0x598477f6 ethtool_op_set_tx_ipv6_csum
+EXPORT_SYMBOL vmlinux 0x598b55dc fifo_create_dflt
+EXPORT_SYMBOL vmlinux 0x599608d2 filp_close
+EXPORT_SYMBOL vmlinux 0x59c651fc scsi_execute_req
+EXPORT_SYMBOL vmlinux 0x59cc446d tty_port_close_end
+EXPORT_SYMBOL vmlinux 0x59d696b6 register_module_notifier
+EXPORT_SYMBOL vmlinux 0x5a147e05 register_gifconf
+EXPORT_SYMBOL vmlinux 0x5a34a45c __kmalloc
+EXPORT_SYMBOL vmlinux 0x5a5e7ea3 simple_read_from_buffer
+EXPORT_SYMBOL vmlinux 0x5a65495f tty_insert_flip_string_fixed_flag
+EXPORT_SYMBOL vmlinux 0x5a655f2e tcp_v4_syn_recv_sock
+EXPORT_SYMBOL vmlinux 0x5a744b86 netlink_set_nonroot
+EXPORT_SYMBOL vmlinux 0x5a7c2827 scsi_cmd_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0x5a87e03f seq_open
+EXPORT_SYMBOL vmlinux 0x5a8ee859 eth_header_cache
+EXPORT_SYMBOL vmlinux 0x5aa33562 nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x5aad29b1 tcp_v4_md5_lookup
+EXPORT_SYMBOL vmlinux 0x5ab36186 ilookup5_nowait
+EXPORT_SYMBOL vmlinux 0x5ad0654c drm_mm_pre_get
+EXPORT_SYMBOL vmlinux 0x5b00569d drm_mode_validate_clocks
+EXPORT_SYMBOL vmlinux 0x5b18d01f phy_stop_interrupts
+EXPORT_SYMBOL vmlinux 0x5b1a69b9 bdi_destroy
+EXPORT_SYMBOL vmlinux 0x5b6c65fa flow_cache_lookup
+EXPORT_SYMBOL vmlinux 0x5b7bf2a1 mempool_destroy
+EXPORT_SYMBOL vmlinux 0x5b889be6 phy_print_status
+EXPORT_SYMBOL vmlinux 0x5b965e00 blk_put_request
+EXPORT_SYMBOL vmlinux 0x5ba1081c blk_queue_io_opt
+EXPORT_SYMBOL vmlinux 0x5baa5800 tty_termios_input_baud_rate
+EXPORT_SYMBOL vmlinux 0x5bd51119 drm_mm_get_block_generic
+EXPORT_SYMBOL vmlinux 0x5bf408b2 rfkill_pause_polling
+EXPORT_SYMBOL vmlinux 0x5c08404f mb_cache_entry_free
+EXPORT_SYMBOL vmlinux 0x5c25664e dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x5c265cba sg_init_one
+EXPORT_SYMBOL vmlinux 0x5c2eb37a phy_start_interrupts
+EXPORT_SYMBOL vmlinux 0x5c46b6fa posix_acl_chmod_masq
+EXPORT_SYMBOL vmlinux 0x5c7e24e5 xrlim_allow
+EXPORT_SYMBOL vmlinux 0x5c839b27 fifo_set_limit
+EXPORT_SYMBOL vmlinux 0x5c96a71a scsi_report_bus_reset
+EXPORT_SYMBOL vmlinux 0x5c9ba52c inode_sub_rsv_space
+EXPORT_SYMBOL vmlinux 0x5ca4a0a8 dump_fpu
+EXPORT_SYMBOL vmlinux 0x5cc4a69d file_permission
+EXPORT_SYMBOL vmlinux 0x5cc839dc skb_dequeue
+EXPORT_SYMBOL vmlinux 0x5cc8e015 iov_iter_single_seg_count
+EXPORT_SYMBOL vmlinux 0x5cd44bce up_write
+EXPORT_SYMBOL vmlinux 0x5ce69d80 pci_setup_cardbus
+EXPORT_SYMBOL vmlinux 0x5ce875cf prom_root_node
+EXPORT_SYMBOL vmlinux 0x5d113035 vm_stat
+EXPORT_SYMBOL vmlinux 0x5d49de88 sk_stream_kill_queues
+EXPORT_SYMBOL vmlinux 0x5d4aeae6 __skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0x5d4d0e26 __csum_partial_copy_from_user
+EXPORT_SYMBOL vmlinux 0x5d4d141a inet_unregister_protosw
+EXPORT_SYMBOL vmlinux 0x5d5005d3 phy_device_register
+EXPORT_SYMBOL vmlinux 0x5d562fe2 elv_rb_find
+EXPORT_SYMBOL vmlinux 0x5d620bb0 scm_fp_dup
+EXPORT_SYMBOL vmlinux 0x5d7ac176 journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x5dbbe98e memmove
+EXPORT_SYMBOL vmlinux 0x5dc5b441 tcp_syn_ack_timeout
+EXPORT_SYMBOL vmlinux 0x5dcba801 get_unmapped_area_prot
+EXPORT_SYMBOL vmlinux 0x5de57745 key_unlink
+EXPORT_SYMBOL vmlinux 0x5e038fbc con_is_bound
+EXPORT_SYMBOL vmlinux 0x5e0e681a inet_frag_find
+EXPORT_SYMBOL vmlinux 0x5e1778b7 blk_start_request
+EXPORT_SYMBOL vmlinux 0x5e2197b0 neigh_create
+EXPORT_SYMBOL vmlinux 0x5e48c914 __wait_on_bit
+EXPORT_SYMBOL vmlinux 0x5e623486 inet_sock_destruct
+EXPORT_SYMBOL vmlinux 0x5e624465 remap_pfn_range
+EXPORT_SYMBOL vmlinux 0x5e8795da skb_dequeue_tail
+EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask
+EXPORT_SYMBOL vmlinux 0x5eadaad9 drm_mm_takedown
+EXPORT_SYMBOL vmlinux 0x5eb6b418 i2c_master_recv
+EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch
+EXPORT_SYMBOL vmlinux 0x5ed52c2d clear_user_page
+EXPORT_SYMBOL vmlinux 0x5ed9bda2 tty_port_tty_get
+EXPORT_SYMBOL vmlinux 0x5edd0762 bin2bcd
+EXPORT_SYMBOL vmlinux 0x5ee0a984 prom_getchild
+EXPORT_SYMBOL vmlinux 0x5ee16340 sock_no_getname
+EXPORT_SYMBOL vmlinux 0x5f021520 drm_mode_object_find
+EXPORT_SYMBOL vmlinux 0x5f51cee1 skb_free_datagram_locked
+EXPORT_SYMBOL vmlinux 0x5f926aae __init_rwsem
+EXPORT_SYMBOL vmlinux 0x5f96ada3 blk_queue_io_min
+EXPORT_SYMBOL vmlinux 0x5fd20cee backlight_force_update
+EXPORT_SYMBOL vmlinux 0x5fd2298e strnstr
+EXPORT_SYMBOL vmlinux 0x5fd87cfe drm_vblank_put
+EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen
+EXPORT_SYMBOL vmlinux 0x605c8bde radix_tree_delete
+EXPORT_SYMBOL vmlinux 0x6067a146 memcpy
+EXPORT_SYMBOL vmlinux 0x607004b8 sk_stream_wait_close
+EXPORT_SYMBOL vmlinux 0x6081a9c5 netlink_broadcast_filtered
+EXPORT_SYMBOL vmlinux 0x60828176 invalidate_bdev
+EXPORT_SYMBOL vmlinux 0x60986736 lro_receive_skb
+EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net
+EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off
+EXPORT_SYMBOL vmlinux 0x60a7d155 bio_integrity_advance
+EXPORT_SYMBOL vmlinux 0x60d0a894 unlock_rename
+EXPORT_SYMBOL vmlinux 0x60d640df ps2_handle_ack
+EXPORT_SYMBOL vmlinux 0x60e2de1b seq_release_private
+EXPORT_SYMBOL vmlinux 0x60f74346 __kfifo_out_n
+EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap
+EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit
+EXPORT_SYMBOL vmlinux 0x6134d267 blk_queue_update_dma_pad
+EXPORT_SYMBOL vmlinux 0x6139a235 fbcon_set_bitops
+EXPORT_SYMBOL vmlinux 0x616bb0f9 request_firmware_nowait
+EXPORT_SYMBOL vmlinux 0x6171679e complete
+EXPORT_SYMBOL vmlinux 0x61786c6d fb_show_logo
+EXPORT_SYMBOL vmlinux 0x61889ec1 poll_freewait
+EXPORT_SYMBOL vmlinux 0x618b4ce0 tty_mutex
+EXPORT_SYMBOL vmlinux 0x618d8299 set_notify_swap_entry_free
+EXPORT_SYMBOL vmlinux 0x61a60f1f rb_replace_node
+EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull
+EXPORT_SYMBOL vmlinux 0x61e129c4 mdio_bus_type
+EXPORT_SYMBOL vmlinux 0x621d84a2 kobject_put
+EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister
+EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid
+EXPORT_SYMBOL vmlinux 0x62839117 disk_stack_limits
+EXPORT_SYMBOL vmlinux 0x62a9293f _clear_page
+EXPORT_SYMBOL vmlinux 0x62cf599f down_write
+EXPORT_SYMBOL vmlinux 0x63228a67 audit_log_format
+EXPORT_SYMBOL vmlinux 0x633b8bd5 percpu_counter_set
+EXPORT_SYMBOL vmlinux 0x633d327a ip_cmsg_recv
+EXPORT_SYMBOL vmlinux 0x634a300b sock_no_shutdown
+EXPORT_SYMBOL vmlinux 0x634a72dc jbd2_journal_get_create_access
+EXPORT_SYMBOL vmlinux 0x63509b6f cdev_del
+EXPORT_SYMBOL vmlinux 0x636b28da netlink_dump_start
+EXPORT_SYMBOL vmlinux 0x63741d95 xfrm_dst_ifdown
+EXPORT_SYMBOL vmlinux 0x637d0513 dquot_release
+EXPORT_SYMBOL vmlinux 0x63a943c9 send_sig_info
+EXPORT_SYMBOL vmlinux 0x63c2f9eb tty_unregister_device
+EXPORT_SYMBOL vmlinux 0x63ca8d42 d_genocide
+EXPORT_SYMBOL vmlinux 0x63d7d984 __break_lease
+EXPORT_SYMBOL vmlinux 0x63ecad53 register_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0x63edc3f0 ida_pre_get
+EXPORT_SYMBOL vmlinux 0x63f7fddf bio_add_pc_page
+EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure
+EXPORT_SYMBOL vmlinux 0x6451294b posix_acl_valid
+EXPORT_SYMBOL vmlinux 0x6454b59b napi_reuse_skb
+EXPORT_SYMBOL vmlinux 0x6466cf58 blk_rq_map_integrity_sg
+EXPORT_SYMBOL vmlinux 0x647675a0 inet_csk_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait
+EXPORT_SYMBOL vmlinux 0x6499dc2b tcf_em_tree_validate
+EXPORT_SYMBOL vmlinux 0x64a5f08f i2c_smbus_write_word_data
+EXPORT_SYMBOL vmlinux 0x64c2e661 of_get_parent
+EXPORT_SYMBOL vmlinux 0x64e78e0f netpoll_setup
+EXPORT_SYMBOL vmlinux 0x64efb900 inetdev_by_index
+EXPORT_SYMBOL vmlinux 0x64ff2fc7 add_disk
+EXPORT_SYMBOL vmlinux 0x65022a24 radix_tree_prev_hole
+EXPORT_SYMBOL vmlinux 0x6510f704 __getblk
+EXPORT_SYMBOL vmlinux 0x6512a946 pci_write_vpd
+EXPORT_SYMBOL vmlinux 0x651a4139 test_taint
+EXPORT_SYMBOL vmlinux 0x651d2649 blk_queue_update_dma_alignment
+EXPORT_SYMBOL vmlinux 0x6538c94f kernel_sendmsg
+EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob
+EXPORT_SYMBOL vmlinux 0x65414e67 dev_valid_name
+EXPORT_SYMBOL vmlinux 0x65426264 tty_schedule_flip
+EXPORT_SYMBOL vmlinux 0x6555b0f4 block_invalidatepage
+EXPORT_SYMBOL vmlinux 0x655847df drm_release
+EXPORT_SYMBOL vmlinux 0x658fa54a scsi_command_normalize_sense
+EXPORT_SYMBOL vmlinux 0x659e332a xfrm_policy_register_afinfo
+EXPORT_SYMBOL vmlinux 0x65a4bcea tc_classify_compat
+EXPORT_SYMBOL vmlinux 0x65b0a97e _PAGE_IE
+EXPORT_SYMBOL vmlinux 0x65d4f1bd jbd2_journal_set_triggers
+EXPORT_SYMBOL vmlinux 0x65e14b11 rtnl_notify
+EXPORT_SYMBOL vmlinux 0x65e822c1 __set_page_dirty_buffers
+EXPORT_SYMBOL vmlinux 0x66150e2a fsnotify_init_mark
+EXPORT_SYMBOL vmlinux 0x66597d30 current_fs_time
+EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp
+EXPORT_SYMBOL vmlinux 0x66cae227 stop_a_enabled
+EXPORT_SYMBOL vmlinux 0x66d6a2c1 idr_for_each
+EXPORT_SYMBOL vmlinux 0x66f5db6a pci_find_next_bus
+EXPORT_SYMBOL vmlinux 0x66f61277 clear_page_dirty_for_io
+EXPORT_SYMBOL vmlinux 0x67053080 current_kernel_time
+EXPORT_SYMBOL vmlinux 0x6718a727 vlan_ioctl_set
+EXPORT_SYMBOL vmlinux 0x672144bd strlcpy
+EXPORT_SYMBOL vmlinux 0x673b850c __bforget
+EXPORT_SYMBOL vmlinux 0x67683734 neigh_changeaddr
+EXPORT_SYMBOL vmlinux 0x676c5afb scsi_adjust_queue_depth
+EXPORT_SYMBOL vmlinux 0x67b71082 dev_set_allmulti
+EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu
+EXPORT_SYMBOL vmlinux 0x67bd79cc _atomic_dec_and_lock
+EXPORT_SYMBOL vmlinux 0x67c27706 block_read_full_page
+EXPORT_SYMBOL vmlinux 0x67c30de8 pipe_lock
+EXPORT_SYMBOL vmlinux 0x67cf97f9 atomic64_sub_ret
+EXPORT_SYMBOL vmlinux 0x67dadd4c dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0x68246734 force_sig
+EXPORT_SYMBOL vmlinux 0x683a5eb6 bio_free
+EXPORT_SYMBOL vmlinux 0x6848f99e vfs_path_lookup
+EXPORT_SYMBOL vmlinux 0x688122ff journal_set_features
+EXPORT_SYMBOL vmlinux 0x688dd8bd pci_request_regions_exclusive
+EXPORT_SYMBOL vmlinux 0x68913f6e ldc_map_single
+EXPORT_SYMBOL vmlinux 0x6896b39b mdesc_release
+EXPORT_SYMBOL vmlinux 0x68af60bd netif_napi_del
+EXPORT_SYMBOL vmlinux 0x68b2ffe4 proto_register
+EXPORT_SYMBOL vmlinux 0x68f2ef25 names_cachep
+EXPORT_SYMBOL vmlinux 0x68f2f199 blk_stack_limits
+EXPORT_SYMBOL vmlinux 0x68fb74ca timeval_to_jiffies
+EXPORT_SYMBOL vmlinux 0x68fbc1df inode_get_bytes
+EXPORT_SYMBOL vmlinux 0x69010b06 insw
+EXPORT_SYMBOL vmlinux 0x690ce68e i2c_bit_add_numbered_bus
+EXPORT_SYMBOL vmlinux 0x6932ef68 scsi_scan_host
+EXPORT_SYMBOL vmlinux 0x694a6b7c d_prune_aliases
+EXPORT_SYMBOL vmlinux 0x695505c0 blk_queue_max_discard_sectors
+EXPORT_SYMBOL vmlinux 0x6961abd8 vfs_readv
+EXPORT_SYMBOL vmlinux 0x696e87f8 vfs_write
+EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days
+EXPORT_SYMBOL vmlinux 0x6980fe91 param_get_int
+EXPORT_SYMBOL vmlinux 0x69927dff try_acquire_console_sem
+EXPORT_SYMBOL vmlinux 0x6998dd3e tty_port_hangup
+EXPORT_SYMBOL vmlinux 0x69a1138f slow_work_register_user
+EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource
+EXPORT_SYMBOL vmlinux 0x69a6368f netif_napi_add
+EXPORT_SYMBOL vmlinux 0x69b53859 phy_connect
+EXPORT_SYMBOL vmlinux 0x69c42803 tty_throttle
+EXPORT_SYMBOL vmlinux 0x69c8c1d5 security_req_classify_flow
+EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense
+EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le
+EXPORT_SYMBOL vmlinux 0x69e290b5 idr_pre_get
+EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree
+EXPORT_SYMBOL vmlinux 0x6a29c5d8 inet_add_protocol
+EXPORT_SYMBOL vmlinux 0x6a3739b5 sk_stream_write_space
+EXPORT_SYMBOL vmlinux 0x6a4095cd posix_acl_permission
+EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask
+EXPORT_SYMBOL vmlinux 0x6a6565a9 blk_integrity_register
+EXPORT_SYMBOL vmlinux 0x6a6dd972 nonseekable_open
+EXPORT_SYMBOL vmlinux 0x6a7535c4 __percpu_counter_sum
+EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable
+EXPORT_SYMBOL vmlinux 0x6aa4feec scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0x6aa6ead5 __scsi_iterate_devices
+EXPORT_SYMBOL vmlinux 0x6aae4eba __blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x6abde466 xfrm_unregister_type
+EXPORT_SYMBOL vmlinux 0x6ad065f4 param_set_charp
+EXPORT_SYMBOL vmlinux 0x6af28f90 pcibios_bus_to_resource
+EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname
+EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack
+EXPORT_SYMBOL vmlinux 0x6b32bc5c skb_prepare_seq_read
+EXPORT_SYMBOL vmlinux 0x6b3c6c0c copy_strings_kernel
+EXPORT_SYMBOL vmlinux 0x6b4e5a52 radix_tree_lookup_slot
+EXPORT_SYMBOL vmlinux 0x6b516734 of_mdiobus_register
+EXPORT_SYMBOL vmlinux 0x6b5515bc pci_pme_capable
+EXPORT_SYMBOL vmlinux 0x6b9b6a5f skb_queue_purge
+EXPORT_SYMBOL vmlinux 0x6bbe4cef add_wait_queue
+EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev
+EXPORT_SYMBOL vmlinux 0x6bc56c67 radix_tree_next_hole
+EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove
+EXPORT_SYMBOL vmlinux 0x6be96798 dqget
+EXPORT_SYMBOL vmlinux 0x6bf36403 pci_enable_device_mem
+EXPORT_SYMBOL vmlinux 0x6c20249b pskb_expand_head
+EXPORT_SYMBOL vmlinux 0x6c20566e fb_set_var
+EXPORT_SYMBOL vmlinux 0x6c305154 zero_fill_bio
+EXPORT_SYMBOL vmlinux 0x6c366f5c pci_get_subsys
+EXPORT_SYMBOL vmlinux 0x6c3ec1f3 is_bad_inode
+EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb
+EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min
+EXPORT_SYMBOL vmlinux 0x6c7f0ee6 linkwatch_fire_event
+EXPORT_SYMBOL vmlinux 0x6c804a73 generic_file_llseek
+EXPORT_SYMBOL vmlinux 0x6ca084be ethtool_op_set_tx_hw_csum
+EXPORT_SYMBOL vmlinux 0x6ca4b1c9 fb_pan_display
+EXPORT_SYMBOL vmlinux 0x6cbe7632 posix_acl_to_xattr
+EXPORT_SYMBOL vmlinux 0x6cf10224 security_d_instantiate
+EXPORT_SYMBOL vmlinux 0x6d0e3039 vfs_fstatat
+EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty
+EXPORT_SYMBOL vmlinux 0x6d28f524 key_task_permission
+EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies
+EXPORT_SYMBOL vmlinux 0x6d2e5837 drm_ut_debug_printk
+EXPORT_SYMBOL vmlinux 0x6d33bda7 security_path_link
+EXPORT_SYMBOL vmlinux 0x6d3a5595 napi_get_frags
+EXPORT_SYMBOL vmlinux 0x6d464175 __sg_free_table
+EXPORT_SYMBOL vmlinux 0x6d60bdc0 __mark_inode_dirty
+EXPORT_SYMBOL vmlinux 0x6d6552c7 elv_rb_add
+EXPORT_SYMBOL vmlinux 0x6d764b4a skb_split
+EXPORT_SYMBOL vmlinux 0x6d7a8eec add_wait_queue_exclusive
+EXPORT_SYMBOL vmlinux 0x6da4e1d5 __inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0x6daa9547 completion_done
+EXPORT_SYMBOL vmlinux 0x6db22bcd filemap_write_and_wait
+EXPORT_SYMBOL vmlinux 0x6dc86eeb vlan_gro_frags
+EXPORT_SYMBOL vmlinux 0x6dd07910 __locks_copy_lock
+EXPORT_SYMBOL vmlinux 0x6dd2f06f ftrace_event_seq
+EXPORT_SYMBOL vmlinux 0x6de375c1 xor_niagara_5
+EXPORT_SYMBOL vmlinux 0x6de6bf83 radix_tree_lookup
+EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform
+EXPORT_SYMBOL vmlinux 0x6dfdb9b3 end_buffer_async_write
+EXPORT_SYMBOL vmlinux 0x6dffebf5 i2c_get_adapter
+EXPORT_SYMBOL vmlinux 0x6e016b24 blk_rq_map_user_iov
+EXPORT_SYMBOL vmlinux 0x6e4197dd napi_gro_receive
+EXPORT_SYMBOL vmlinux 0x6e45f957 ida_get_new
+EXPORT_SYMBOL vmlinux 0x6e4e7e20 atomic_sub_ret
+EXPORT_SYMBOL vmlinux 0x6e50b739 down_read_trylock
+EXPORT_SYMBOL vmlinux 0x6e5cb46f __dquot_transfer
+EXPORT_SYMBOL vmlinux 0x6e6dc5c1 deactivate_super
+EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock
+EXPORT_SYMBOL vmlinux 0x6e802324 radix_tree_tag_get
+EXPORT_SYMBOL vmlinux 0x6e8442e0 set_bdi_congested
+EXPORT_SYMBOL vmlinux 0x6e8a1083 jbd2_journal_init_jbd_inode
+EXPORT_SYMBOL vmlinux 0x6e8c91fb scsi_device_set_state
+EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put
+EXPORT_SYMBOL vmlinux 0x6ec726f4 pci_bus_type
+EXPORT_SYMBOL vmlinux 0x6eed4871 pci_bus_alloc_resource
+EXPORT_SYMBOL vmlinux 0x6ef2609e register_qdisc
+EXPORT_SYMBOL vmlinux 0x6f2d495a i2c_smbus_read_byte_data
+EXPORT_SYMBOL vmlinux 0x6f35adb1 bio_integrity_alloc
+EXPORT_SYMBOL vmlinux 0x6f3def54 drm_mode_destroy
+EXPORT_SYMBOL vmlinux 0x6f5865ad inet_csk_delete_keepalive_timer
+EXPORT_SYMBOL vmlinux 0x6f613a72 skb_free_datagram
+EXPORT_SYMBOL vmlinux 0x6f8765c9 __tracepoint_kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x6f95dfc2 rfkill_destroy
+EXPORT_SYMBOL vmlinux 0x6fc30481 drm_mode_hsync
+EXPORT_SYMBOL vmlinux 0x6fc5bf70 rfkill_unregister
+EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog
+EXPORT_SYMBOL vmlinux 0x6fd0400e scsi_host_set_state
+EXPORT_SYMBOL vmlinux 0x6fdf05d6 release_sock
+EXPORT_SYMBOL vmlinux 0x6ffc3b4d pci_lost_interrupt
+EXPORT_SYMBOL vmlinux 0x6ffc5fae kfifo_free
+EXPORT_SYMBOL vmlinux 0x6fff393f time_to_tm
+EXPORT_SYMBOL vmlinux 0x7002137d scsi_unblock_requests
+EXPORT_SYMBOL vmlinux 0x7004b451 rfkill_alloc
+EXPORT_SYMBOL vmlinux 0x7021c73f lock_super
+EXPORT_SYMBOL vmlinux 0x7023c582 pci_remove_bus_device
+EXPORT_SYMBOL vmlinux 0x702f162c __memscan_generic
+EXPORT_SYMBOL vmlinux 0x702f4255 drm_mm_debug_table
+EXPORT_SYMBOL vmlinux 0x7033fda6 qdisc_watchdog_schedule
+EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq
+EXPORT_SYMBOL vmlinux 0x7052563c simple_lookup
+EXPORT_SYMBOL vmlinux 0x70728391 blk_insert_request
+EXPORT_SYMBOL vmlinux 0x70765d1c vfs_lstat
+EXPORT_SYMBOL vmlinux 0x7078e1d0 jbd2_journal_clear_features
+EXPORT_SYMBOL vmlinux 0x707be929 drm_put_dev
+EXPORT_SYMBOL vmlinux 0x708bb27d bio_split
+EXPORT_SYMBOL vmlinux 0x70a2c9ac tty_chars_in_buffer
+EXPORT_SYMBOL vmlinux 0x70bbe8e9 scsi_prep_return
+EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait
+EXPORT_SYMBOL vmlinux 0x70f2bbe3 wait_for_completion
+EXPORT_SYMBOL vmlinux 0x70f9205c rfkill_set_sw_state
+EXPORT_SYMBOL vmlinux 0x70feaef4 of_n_size_cells
+EXPORT_SYMBOL vmlinux 0x70ff9108 kmem_cache_free
+EXPORT_SYMBOL vmlinux 0x71034ff6 simple_getattr
+EXPORT_SYMBOL vmlinux 0x7109ccc4 d_find_alias
+EXPORT_SYMBOL vmlinux 0x711429c6 inet_twsk_deschedule
+EXPORT_SYMBOL vmlinux 0x711a22ac mb_cache_create
+EXPORT_SYMBOL vmlinux 0x712730a7 __flushw_user
+EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc
+EXPORT_SYMBOL vmlinux 0x713479d5 sock_no_getsockopt
+EXPORT_SYMBOL vmlinux 0x713b7bed blk_init_tags
+EXPORT_SYMBOL vmlinux 0x7152fd69 rtc_dev_update_irq_enable_emul
+EXPORT_SYMBOL vmlinux 0x716e4ad7 vio_unregister_driver
+EXPORT_SYMBOL vmlinux 0x7171121c overflowgid
+EXPORT_SYMBOL vmlinux 0x719fd610 mem_section
+EXPORT_SYMBOL vmlinux 0x71a337c7 drm_fasync
+EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev
+EXPORT_SYMBOL vmlinux 0x71cb21dd __scsi_alloc_queue
+EXPORT_SYMBOL vmlinux 0x7242e96d strnchr
+EXPORT_SYMBOL vmlinux 0x724bca94 dquot_scan_active
+EXPORT_SYMBOL vmlinux 0x727459e4 inet_register_protosw
+EXPORT_SYMBOL vmlinux 0x72ba70c2 scsi_eh_finish_cmd
+EXPORT_SYMBOL vmlinux 0x72c14b6c balance_dirty_pages_ratelimited_nr
+EXPORT_SYMBOL vmlinux 0x72c3be87 param_set_byte
+EXPORT_SYMBOL vmlinux 0x72e8b50e pcix_get_max_mmrbc
+EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type
+EXPORT_SYMBOL vmlinux 0x72ebcb61 i8042_install_filter
+EXPORT_SYMBOL vmlinux 0x72f4abbb fb_get_mode
+EXPORT_SYMBOL vmlinux 0x7305bd7b nf_register_hook
+EXPORT_SYMBOL vmlinux 0x730f27a5 del_timer_sync
+EXPORT_SYMBOL vmlinux 0x73136716 drm_irq_uninstall
+EXPORT_SYMBOL vmlinux 0x731473e4 ebus_dma_prepare
+EXPORT_SYMBOL vmlinux 0x7338f5c2 __nla_reserve
+EXPORT_SYMBOL vmlinux 0x7342a54c xfrm_prepare_input
+EXPORT_SYMBOL vmlinux 0x734ef2fe pipe_unlock
+EXPORT_SYMBOL vmlinux 0x734fec31 scsi_setup_fs_cmnd
+EXPORT_SYMBOL vmlinux 0x73695bd2 napi_gro_frags
+EXPORT_SYMBOL vmlinux 0x7373f7e0 blk_end_request_cur
+EXPORT_SYMBOL vmlinux 0x7386ea44 of_find_node_by_name
+EXPORT_SYMBOL vmlinux 0x7398304f drm_get_resource_len
+EXPORT_SYMBOL vmlinux 0x73b57475 gen_pool_free
+EXPORT_SYMBOL vmlinux 0x73b8e6b9 compat_mc_getsockopt
+EXPORT_SYMBOL vmlinux 0x73bc652b mpage_writepages
+EXPORT_SYMBOL vmlinux 0x73bfd759 inet_frag_destroy
+EXPORT_SYMBOL vmlinux 0x73c15c02 blk_limits_io_opt
+EXPORT_SYMBOL vmlinux 0x73e0877a insl
+EXPORT_SYMBOL vmlinux 0x73e7fa7b page_readlink
+EXPORT_SYMBOL vmlinux 0x73ee48be blk_integrity_compare
+EXPORT_SYMBOL vmlinux 0x74075a8d neigh_seq_next
+EXPORT_SYMBOL vmlinux 0x74128da9 phy_disconnect
+EXPORT_SYMBOL vmlinux 0x7432f031 ip_mc_dec_group
+EXPORT_SYMBOL vmlinux 0x7433fa1d dquot_mark_dquot_dirty
+EXPORT_SYMBOL vmlinux 0x74368029 d_move
+EXPORT_SYMBOL vmlinux 0x744c0c68 param_get_byte
+EXPORT_SYMBOL vmlinux 0x74568c43 set_page_dirty_lock
+EXPORT_SYMBOL vmlinux 0x74716ada dm_kcopyd_client_create
+EXPORT_SYMBOL vmlinux 0x74826844 tcp_mtup_init
+EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region
+EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32
+EXPORT_SYMBOL vmlinux 0x74cc1cbe unregister_cpu_notifier
+EXPORT_SYMBOL vmlinux 0x74d64cb9 sk_dst_check
+EXPORT_SYMBOL vmlinux 0x74d8a6ea generic_file_splice_read
+EXPORT_SYMBOL vmlinux 0x74f45650 ns87303_lock
+EXPORT_SYMBOL vmlinux 0x7514d19f drm_idlelock_take
+EXPORT_SYMBOL vmlinux 0x753adda7 mdesc_grab
+EXPORT_SYMBOL vmlinux 0x75580c73 simple_transaction_release
+EXPORT_SYMBOL vmlinux 0x75685a98 arp_broken_ops
+EXPORT_SYMBOL vmlinux 0x756ce399 fb_firmware_edid
+EXPORT_SYMBOL vmlinux 0x756e6992 strnicmp
+EXPORT_SYMBOL vmlinux 0x7579b106 journal_extend
+EXPORT_SYMBOL vmlinux 0x75bcc7b6 iov_iter_copy_from_user
+EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next
+EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc
+EXPORT_SYMBOL vmlinux 0x75c124d0 mark_buffer_dirty_inode
+EXPORT_SYMBOL vmlinux 0x75ef9780 padata_start
+EXPORT_SYMBOL vmlinux 0x760a0f4f yield
+EXPORT_SYMBOL vmlinux 0x760b437a unregister_inetaddr_notifier
+EXPORT_SYMBOL vmlinux 0x7623f341 xfrm_policy_bysel_ctx
+EXPORT_SYMBOL vmlinux 0x764bd77c request_resource
+EXPORT_SYMBOL vmlinux 0x766716bc of_unregister_driver
+EXPORT_SYMBOL vmlinux 0x7669b636 nla_reserve
+EXPORT_SYMBOL vmlinux 0x7670f013 inet_getname
+EXPORT_SYMBOL vmlinux 0x76adfdaa __dev_remove_pack
+EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left
+EXPORT_SYMBOL vmlinux 0x76c58f18 input_flush_device
+EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode
+EXPORT_SYMBOL vmlinux 0x76f94331 gen_new_estimator
+EXPORT_SYMBOL vmlinux 0x7706ed6f __kfifo_to_user_generic
+EXPORT_SYMBOL vmlinux 0x7712326e vfs_mknod
+EXPORT_SYMBOL vmlinux 0x7716c4c3 drm_ioctl
+EXPORT_SYMBOL vmlinux 0x771d786e pci_select_bars
+EXPORT_SYMBOL vmlinux 0x773000b5 tcf_exts_destroy
+EXPORT_SYMBOL vmlinux 0x77399ba4 uart_get_divisor
+EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled
+EXPORT_SYMBOL vmlinux 0x7749265a nf_unregister_queue_handler
+EXPORT_SYMBOL vmlinux 0x776e602f __pskb_pull_tail
+EXPORT_SYMBOL vmlinux 0x7774b348 dev_add_pack
+EXPORT_SYMBOL vmlinux 0x77b9bd5d complete_all
+EXPORT_SYMBOL vmlinux 0x77bc13a0 strim
+EXPORT_SYMBOL vmlinux 0x77c23982 jbd2_journal_get_write_access
+EXPORT_SYMBOL vmlinux 0x77c5eda6 phy_ethtool_sset
+EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality
+EXPORT_SYMBOL vmlinux 0x77e37d28 ip_generic_getfrag
+EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd
+EXPORT_SYMBOL vmlinux 0x77fa5d1f ns_to_timespec
+EXPORT_SYMBOL vmlinux 0x780fa8c2 netif_rx
+EXPORT_SYMBOL vmlinux 0x7820fa7c __tcf_em_tree_match
+EXPORT_SYMBOL vmlinux 0x784915eb drm_mode_vrefresh
+EXPORT_SYMBOL vmlinux 0x784fb72e dev_mc_init
+EXPORT_SYMBOL vmlinux 0x7856f7b1 vfs_unlink
+EXPORT_SYMBOL vmlinux 0x789a6eaa genphy_suspend
+EXPORT_SYMBOL vmlinux 0x78a1b271 tty_port_free_xmit_buf
+EXPORT_SYMBOL vmlinux 0x78a44df3 sock_no_poll
+EXPORT_SYMBOL vmlinux 0x78c54917 textsearch_prepare
+EXPORT_SYMBOL vmlinux 0x78d8a139 mdiobus_free
+EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices
+EXPORT_SYMBOL vmlinux 0x78e1b3ff vfs_rmdir
+EXPORT_SYMBOL vmlinux 0x790cc3e3 console_stop
+EXPORT_SYMBOL vmlinux 0x795ee53f dev_mc_add_global
+EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld
+EXPORT_SYMBOL vmlinux 0x79874846 tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0x7994c211 load_nls
+EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes
+EXPORT_SYMBOL vmlinux 0x79b24e63 __cpu_data
+EXPORT_SYMBOL vmlinux 0x79ba43c8 skb_pull
+EXPORT_SYMBOL vmlinux 0x79f44f8f pneigh_lookup
+EXPORT_SYMBOL vmlinux 0x7a05b939 ldc_read
+EXPORT_SYMBOL vmlinux 0x7a1393ac jbd2_journal_ack_err
+EXPORT_SYMBOL vmlinux 0x7a2a837d strict_strtol
+EXPORT_SYMBOL vmlinux 0x7a4497db kzfree
+EXPORT_SYMBOL vmlinux 0x7a46619f xfrm_sad_getinfo
+EXPORT_SYMBOL vmlinux 0x7a4b165f idr_get_new
+EXPORT_SYMBOL vmlinux 0x7a50ba05 kill_litter_super
+EXPORT_SYMBOL vmlinux 0x7a60cc78 sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x7a6da818 i2c_transfer
+EXPORT_SYMBOL vmlinux 0x7a8471b6 ebus_dma_addr
+EXPORT_SYMBOL vmlinux 0x7a8c5dfd sk_common_release
+EXPORT_SYMBOL vmlinux 0x7a918f8d of_release_dev
+EXPORT_SYMBOL vmlinux 0x7a99c46f __devm_request_region
+EXPORT_SYMBOL vmlinux 0x7aa2fa98 percpu_counter_destroy
+EXPORT_SYMBOL vmlinux 0x7ac5ed2d pci_release_regions
+EXPORT_SYMBOL vmlinux 0x7ac8f7dd kfifo_skip
+EXPORT_SYMBOL vmlinux 0x7ad4b3c4 down_write_trylock
+EXPORT_SYMBOL vmlinux 0x7ad7dac5 netdev_bonding_change
+EXPORT_SYMBOL vmlinux 0x7ae73de1 alloc_pages_exact
+EXPORT_SYMBOL vmlinux 0x7af5bfab pci_prepare_to_sleep
+EXPORT_SYMBOL vmlinux 0x7b13b145 fb_get_buffer_offset
+EXPORT_SYMBOL vmlinux 0x7b2b2f0f netlink_kernel_create
+EXPORT_SYMBOL vmlinux 0x7b39444d kmem_cache_alloc
+EXPORT_SYMBOL vmlinux 0x7b3ad843 read_dev_sector
+EXPORT_SYMBOL vmlinux 0x7b4962c3 freeze_super
+EXPORT_SYMBOL vmlinux 0x7b4f0aec ethtool_op_get_link
+EXPORT_SYMBOL vmlinux 0x7b5773b5 phy_register_fixup_for_id
+EXPORT_SYMBOL vmlinux 0x7b6646bb _raw_read_lock
+EXPORT_SYMBOL vmlinux 0x7b6f0116 neigh_parms_alloc
+EXPORT_SYMBOL vmlinux 0x7b757851 dquot_claim_space_nodirty
+EXPORT_SYMBOL vmlinux 0x7b8f4c40 key_create_or_update
+EXPORT_SYMBOL vmlinux 0x7bd17490 pm860x_led_name
+EXPORT_SYMBOL vmlinux 0x7bd8d2ad tcf_hash_insert
+EXPORT_SYMBOL vmlinux 0x7bff3be7 iov_iter_advance
+EXPORT_SYMBOL vmlinux 0x7c073b80 ip_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0x7c1063a9 __insert_inode_hash
+EXPORT_SYMBOL vmlinux 0x7c1fa8aa rtnl_create_link
+EXPORT_SYMBOL vmlinux 0x7c1fd6c8 drm_mode_equal
+EXPORT_SYMBOL vmlinux 0x7c60d66e getname
+EXPORT_SYMBOL vmlinux 0x7c61340c __release_region
+EXPORT_SYMBOL vmlinux 0x7c72a051 of_get_next_child
+EXPORT_SYMBOL vmlinux 0x7c72e6cc textsearch_destroy
+EXPORT_SYMBOL vmlinux 0x7c904ded unregister_module_notifier
+EXPORT_SYMBOL vmlinux 0x7c961e69 nf_ip_checksum
+EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read
+EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down
+EXPORT_SYMBOL vmlinux 0x7cb9371b i2c_register_driver
+EXPORT_SYMBOL vmlinux 0x7cc66b29 pci_get_class
+EXPORT_SYMBOL vmlinux 0x7cce3464 atomic_add_ret
+EXPORT_SYMBOL vmlinux 0x7ceba34a vio_send_sid
+EXPORT_SYMBOL vmlinux 0x7cf3bfa2 blk_queue_physical_block_size
+EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies
+EXPORT_SYMBOL vmlinux 0x7d276401 __scsi_put_command
+EXPORT_SYMBOL vmlinux 0x7d9e61c4 nobh_writepage
+EXPORT_SYMBOL vmlinux 0x7dabcd44 lock_sock_nested
+EXPORT_SYMBOL vmlinux 0x7dbf085a pm860x_bulk_write
+EXPORT_SYMBOL vmlinux 0x7dceceac capable
+EXPORT_SYMBOL vmlinux 0x7dd814bb blk_queue_softirq_done
+EXPORT_SYMBOL vmlinux 0x7e03ebdb dquot_resume
+EXPORT_SYMBOL vmlinux 0x7e158f45 ethtool_op_get_sg
+EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports
+EXPORT_SYMBOL vmlinux 0x7e50f341 jbd2_journal_errno
+EXPORT_SYMBOL vmlinux 0x7e93a90e dev_queue_xmit
+EXPORT_SYMBOL vmlinux 0x7eafcab3 security_inode_notifysecctx
+EXPORT_SYMBOL vmlinux 0x7eb13a9e rfkill_resume_polling
+EXPORT_SYMBOL vmlinux 0x7eb1aba1 vfs_readdir
+EXPORT_SYMBOL vmlinux 0x7eb8a455 proc_doulongvec_ms_jiffies_minmax
+EXPORT_SYMBOL vmlinux 0x7ec9bfbc strncpy
+EXPORT_SYMBOL vmlinux 0x7f1d1d45 inode_sub_bytes
+EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs
+EXPORT_SYMBOL vmlinux 0x7f3a311a of_device_is_compatible
+EXPORT_SYMBOL vmlinux 0x7f440235 abort_creds
+EXPORT_SYMBOL vmlinux 0x7f49b4a3 bfifo_qdisc_ops
+EXPORT_SYMBOL vmlinux 0x7f76b409 scsi_register_driver
+EXPORT_SYMBOL vmlinux 0x7f7e0714 phy_device_create
+EXPORT_SYMBOL vmlinux 0x7f84c1cf i2c_smbus_write_i2c_block_data
+EXPORT_SYMBOL vmlinux 0x7fa650b9 blkdev_issue_discard
+EXPORT_SYMBOL vmlinux 0x7fa7124d drm_sysfs_connector_remove
+EXPORT_SYMBOL vmlinux 0x7fa96589 tty_flip_buffer_push
+EXPORT_SYMBOL vmlinux 0x7fbe3e9a dquot_free_inode
+EXPORT_SYMBOL vmlinux 0x7fbee50e lock_sock_fast
+EXPORT_SYMBOL vmlinux 0x7fc2165c tcp_v4_send_check
+EXPORT_SYMBOL vmlinux 0x7fcbc375 drm_exit
+EXPORT_SYMBOL vmlinux 0x7ff3ee8d pm860x_reg_read
+EXPORT_SYMBOL vmlinux 0x8005ef5a dquot_quotactl_ops
+EXPORT_SYMBOL vmlinux 0x800d31c0 scsi_track_queue_full
+EXPORT_SYMBOL vmlinux 0x800d5fbb drm_gem_object_free_unlocked
+EXPORT_SYMBOL vmlinux 0x801c69f1 skb_append_datato_frags
+EXPORT_SYMBOL vmlinux 0x801d4d95 cont_write_begin_newtrunc
+EXPORT_SYMBOL vmlinux 0x80508837 ___pskb_trim
+EXPORT_SYMBOL vmlinux 0x80546e52 generic_file_splice_write
+EXPORT_SYMBOL vmlinux 0x806009b9 key_payload_reserve
+EXPORT_SYMBOL vmlinux 0x806a2716 i2c_smbus_process_call
+EXPORT_SYMBOL vmlinux 0x8070876a alloc_fddidev
+EXPORT_SYMBOL vmlinux 0x807b7089 prom_firstprop
+EXPORT_SYMBOL vmlinux 0x80bba3b7 ebus_dma_request
+EXPORT_SYMBOL vmlinux 0x80bf3bc5 sun4v_niagara_getperf
+EXPORT_SYMBOL vmlinux 0x80dda531 jbd2_journal_unlock_updates
+EXPORT_SYMBOL vmlinux 0x80eb9452 d_path
+EXPORT_SYMBOL vmlinux 0x8103ebe3 fb_validate_mode
+EXPORT_SYMBOL vmlinux 0x81058416 jbd2_journal_flush
+EXPORT_SYMBOL vmlinux 0x810d1ee0 call_usermodehelper_setfns
+EXPORT_SYMBOL vmlinux 0x8117f2e4 nla_append
+EXPORT_SYMBOL vmlinux 0x812537eb ldc_alloc
+EXPORT_SYMBOL vmlinux 0x813131d2 key_revoke
+EXPORT_SYMBOL vmlinux 0x8137f0f0 of_set_property_mutex
+EXPORT_SYMBOL vmlinux 0x813b0461 set_irq_chip
+EXPORT_SYMBOL vmlinux 0x814d50c8 dev_trans_start
+EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy
+EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal
+EXPORT_SYMBOL vmlinux 0x816091a5 tty_register_driver
+EXPORT_SYMBOL vmlinux 0x81ba9507 elv_queue_empty
+EXPORT_SYMBOL vmlinux 0x81d5b0af proc_net_netfilter
+EXPORT_SYMBOL vmlinux 0x81dc50eb put_page
+EXPORT_SYMBOL vmlinux 0x81e79871 nf_afinfo
+EXPORT_SYMBOL vmlinux 0x81f9a393 netpoll_cleanup
+EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill
+EXPORT_SYMBOL vmlinux 0x82108ba1 d_invalidate
+EXPORT_SYMBOL vmlinux 0x821d5a3e i2c_smbus_write_block_data
+EXPORT_SYMBOL vmlinux 0x822ace6a kfifo_to_user
+EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region
+EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area
+EXPORT_SYMBOL vmlinux 0x8271ffc6 inode_init_owner
+EXPORT_SYMBOL vmlinux 0x827be599 mark_page_accessed
+EXPORT_SYMBOL vmlinux 0x82a277df drm_gem_object_alloc
+EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched
+EXPORT_SYMBOL vmlinux 0x82ae7604 lookup_hash
+EXPORT_SYMBOL vmlinux 0x82babe36 idr_get_new_above
+EXPORT_SYMBOL vmlinux 0x82dc7bdd of_find_node_by_phandle
+EXPORT_SYMBOL vmlinux 0x82e9c083 csum_partial_copy_fromiovecend
+EXPORT_SYMBOL vmlinux 0x830388e4 __nla_reserve_nohdr
+EXPORT_SYMBOL vmlinux 0x83406355 drm_mm_get_block_range_generic
+EXPORT_SYMBOL vmlinux 0x83434f36 journal_force_commit
+EXPORT_SYMBOL vmlinux 0x835670c5 mdiobus_scan
+EXPORT_SYMBOL vmlinux 0x835b5c42 vga_client_register
+EXPORT_SYMBOL vmlinux 0x8364addc km_state_notify
+EXPORT_SYMBOL vmlinux 0x836ce049 nf_log_bind_pf
+EXPORT_SYMBOL vmlinux 0x83776bb1 sock_alloc_send_skb
+EXPORT_SYMBOL vmlinux 0x837ebd89 bio_alloc
+EXPORT_SYMBOL vmlinux 0x83800bfa kref_init
+EXPORT_SYMBOL vmlinux 0x8389d77d dma_pool_create
+EXPORT_SYMBOL vmlinux 0x838f70b0 twl_i2c_write_u8
+EXPORT_SYMBOL vmlinux 0x839c188d input_set_keycode
+EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf
+EXPORT_SYMBOL vmlinux 0x83bc1eca sync_blockdev
+EXPORT_SYMBOL vmlinux 0x83c74cfc complete_and_exit
+EXPORT_SYMBOL vmlinux 0x83d9fa3c fib_default_rule_add
+EXPORT_SYMBOL vmlinux 0x83e224d5 pci_device_to_OF_node
+EXPORT_SYMBOL vmlinux 0x83f2a234 blk_rq_map_sg
+EXPORT_SYMBOL vmlinux 0x845bf1f2 generic_pipe_buf_map
+EXPORT_SYMBOL vmlinux 0x84656b29 abx500_get_register_page_interruptible
+EXPORT_SYMBOL vmlinux 0x849ba3fd tty_unthrottle
+EXPORT_SYMBOL vmlinux 0x84aac2cd proc_create_data
+EXPORT_SYMBOL vmlinux 0x84e67f80 do_truncate
+EXPORT_SYMBOL vmlinux 0x84eeef4a unregister_tcf_proto_ops
+EXPORT_SYMBOL vmlinux 0x84f9044e bio_sector_offset
+EXPORT_SYMBOL vmlinux 0x85004378 unlock_new_inode
+EXPORT_SYMBOL vmlinux 0x85061b76 _raw_write_lock_bh
+EXPORT_SYMBOL vmlinux 0x8510fbcc __neigh_event_send
+EXPORT_SYMBOL vmlinux 0x851511bb phy_connect_direct
+EXPORT_SYMBOL vmlinux 0x8518d698 pci_scan_bus_parented
+EXPORT_SYMBOL vmlinux 0x85284596 ip_mc_join_group
+EXPORT_SYMBOL vmlinux 0x8531b0d7 consume_skb
+EXPORT_SYMBOL vmlinux 0x8550647f delayed_slow_work_enqueue
+EXPORT_SYMBOL vmlinux 0x85540ce2 init_special_inode
+EXPORT_SYMBOL vmlinux 0x855961e0 ethtool_op_get_ufo
+EXPORT_SYMBOL vmlinux 0x855bef5a __xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked
+EXPORT_SYMBOL vmlinux 0x856dab93 set_current_groups
+EXPORT_SYMBOL vmlinux 0x857d74cb migrate_page
+EXPORT_SYMBOL vmlinux 0x85abc85f strncmp
+EXPORT_SYMBOL vmlinux 0x85de09f5 drm_mode_width
+EXPORT_SYMBOL vmlinux 0x85df9b6c strsep
+EXPORT_SYMBOL vmlinux 0x862faf2a scsi_print_result
+EXPORT_SYMBOL vmlinux 0x8631f188 radix_tree_tag_set
+EXPORT_SYMBOL vmlinux 0x86443d91 _raw_spin_lock_irq
+EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync
+EXPORT_SYMBOL vmlinux 0x866def1b cdev_add
+EXPORT_SYMBOL vmlinux 0x867442da seq_write
+EXPORT_SYMBOL vmlinux 0x868acba5 get_options
+EXPORT_SYMBOL vmlinux 0x869c706d blk_cleanup_queue
+EXPORT_SYMBOL vmlinux 0x86aa1a80 dentry_unhash
+EXPORT_SYMBOL vmlinux 0x86bdcc80 drm_getsarea
+EXPORT_SYMBOL vmlinux 0x86c37c88 thaw_process
+EXPORT_SYMBOL vmlinux 0x86c7146d vfs_fstat
+EXPORT_SYMBOL vmlinux 0x86e00a4c input_register_handle
+EXPORT_SYMBOL vmlinux 0x86e34a09 lro_flush_all
+EXPORT_SYMBOL vmlinux 0x86e5990c mii_phy_probe
+EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user
+EXPORT_SYMBOL vmlinux 0x87112ce7 pci_wake_from_d3
+EXPORT_SYMBOL vmlinux 0x87186988 tcf_exts_change
+EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags
+EXPORT_SYMBOL vmlinux 0x871d1a9f sock_rfree
+EXPORT_SYMBOL vmlinux 0x8723867a fail_migrate_page
+EXPORT_SYMBOL vmlinux 0x872bd087 suncore_mouse_baud_detection
+EXPORT_SYMBOL vmlinux 0x8749c954 pci_bus_assign_resources
+EXPORT_SYMBOL vmlinux 0x875e7609 simple_setsize
+EXPORT_SYMBOL vmlinux 0x8766cad3 splice_direct_to_actor
+EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale
+EXPORT_SYMBOL vmlinux 0x87a7bad5 mb_cache_entry_release
+EXPORT_SYMBOL vmlinux 0x87ac4ecc pci_bus_set_ops
+EXPORT_SYMBOL vmlinux 0x87aedba1 trace_seq_putc
+EXPORT_SYMBOL vmlinux 0x87bcd476 submit_bio
+EXPORT_SYMBOL vmlinux 0x87c4a100 inet_frag_kill
+EXPORT_SYMBOL vmlinux 0x87ca83b2 xfrm_policy_walk
+EXPORT_SYMBOL vmlinux 0x87de062b padata_add_cpu
+EXPORT_SYMBOL vmlinux 0x87f71cb5 jbd2_journal_lock_updates
+EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate
+EXPORT_SYMBOL vmlinux 0x88157ef9 ftrace_print_hex_seq
+EXPORT_SYMBOL vmlinux 0x883b24fb sun4v_niagara_setperf
+EXPORT_SYMBOL vmlinux 0x8854c11d sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0x88687830 blk_queue_ordered
+EXPORT_SYMBOL vmlinux 0x886963b6 rtnetlink_put_metrics
+EXPORT_SYMBOL vmlinux 0x8889ae44 blk_free_tags
+EXPORT_SYMBOL vmlinux 0x88df7e41 nf_hook_slow
+EXPORT_SYMBOL vmlinux 0x88fef2e2 unregister_sysctl_table
+EXPORT_SYMBOL vmlinux 0x8902f1af of_console_path
+EXPORT_SYMBOL vmlinux 0x89320a9d pci_fixup_cardbus
+EXPORT_SYMBOL vmlinux 0x895577b0 numa_cpu_lookup_table
+EXPORT_SYMBOL vmlinux 0x895cbf31 pcie_set_readrq
+EXPORT_SYMBOL vmlinux 0x8970aac9 __blockdev_direct_IO_newtrunc
+EXPORT_SYMBOL vmlinux 0x8974309f update_region
+EXPORT_SYMBOL vmlinux 0x897473df mktime
+EXPORT_SYMBOL vmlinux 0x89c121f3 load_nls_default
+EXPORT_SYMBOL vmlinux 0x89c2bacd vm_map_ram
+EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer
+EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret
+EXPORT_SYMBOL vmlinux 0x89d8e5e0 scsi_finish_command
+EXPORT_SYMBOL vmlinux 0x89e091dc __sk_dst_check
+EXPORT_SYMBOL vmlinux 0x8a0e757f ethtool_op_set_ufo
+EXPORT_SYMBOL vmlinux 0x8a306c37 __napi_schedule
+EXPORT_SYMBOL vmlinux 0x8a36803c drm_connector_init
+EXPORT_SYMBOL vmlinux 0x8a4a5e0a lro_vlan_hwaccel_receive_skb
+EXPORT_SYMBOL vmlinux 0x8a56d07b dquot_file_open
+EXPORT_SYMBOL vmlinux 0x8a5834df put_io_context
+EXPORT_SYMBOL vmlinux 0x8a75937d __blk_run_queue
+EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory
+EXPORT_SYMBOL vmlinux 0x8a835940 vfs_fsync_range
+EXPORT_SYMBOL vmlinux 0x8a835dc7 d_splice_alias
+EXPORT_SYMBOL vmlinux 0x8a87d7b5 inode_init_once
+EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab
+EXPORT_SYMBOL vmlinux 0x8abc0436 __wake_up_bit
+EXPORT_SYMBOL vmlinux 0x8ad0e792 generic_file_direct_write
+EXPORT_SYMBOL vmlinux 0x8af2c8a6 dst_discard
+EXPORT_SYMBOL vmlinux 0x8b0403e6 prom_getproperty
+EXPORT_SYMBOL vmlinux 0x8b144419 journal_check_used_features
+EXPORT_SYMBOL vmlinux 0x8b38039d drm_mode_find_dmt
+EXPORT_SYMBOL vmlinux 0x8b50bd1c udp_memory_allocated
+EXPORT_SYMBOL vmlinux 0x8b57f547 xfrm_state_check_expire
+EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid
+EXPORT_SYMBOL vmlinux 0x8b6bbaac misc_deregister
+EXPORT_SYMBOL vmlinux 0x8b6e7c85 journal_clear_err
+EXPORT_SYMBOL vmlinux 0x8b7fe311 kmemdup
+EXPORT_SYMBOL vmlinux 0x8b866b30 truncate_pagecache
+EXPORT_SYMBOL vmlinux 0x8b922c0f __strnlen_user
+EXPORT_SYMBOL vmlinux 0x8babb96e drm_get_drawable_info
+EXPORT_SYMBOL vmlinux 0x8bd0a3fd _raw_write_unlock_bh
+EXPORT_SYMBOL vmlinux 0x8bd5b603 param_get_long
+EXPORT_SYMBOL vmlinux 0x8bd9def9 generic_pipe_buf_confirm
+EXPORT_SYMBOL vmlinux 0x8be21b01 bdevname
+EXPORT_SYMBOL vmlinux 0x8bf32bbc __netif_schedule
+EXPORT_SYMBOL vmlinux 0x8bf87169 __bzero
+EXPORT_SYMBOL vmlinux 0x8bfef428 xfrm_cfg_mutex
+EXPORT_SYMBOL vmlinux 0x8c0d4894 of_device_register
+EXPORT_SYMBOL vmlinux 0x8c2c5e3b drm_mode_attachmode_crtc
+EXPORT_SYMBOL vmlinux 0x8c3a9026 tty_port_carrier_raised
+EXPORT_SYMBOL vmlinux 0x8c3ebc72 saved_command_line
+EXPORT_SYMBOL vmlinux 0x8c6db9bc lease_get_mtime
+EXPORT_SYMBOL vmlinux 0x8c7dd7f5 inode_setattr
+EXPORT_SYMBOL vmlinux 0x8c8d6b56 register_netdev
+EXPORT_SYMBOL vmlinux 0x8caa021a iget5_locked
+EXPORT_SYMBOL vmlinux 0x8cce05b9 dput
+EXPORT_SYMBOL vmlinux 0x8cf5f22d default_llseek
+EXPORT_SYMBOL vmlinux 0x8cf7c384 interruptible_sleep_on_timeout
+EXPORT_SYMBOL vmlinux 0x8d2b2c63 unregister_filesystem
+EXPORT_SYMBOL vmlinux 0x8d2f7378 udp_lib_getsockopt
+EXPORT_SYMBOL vmlinux 0x8d375ffa free_netdev
+EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem
+EXPORT_SYMBOL vmlinux 0x8d613b6a kernel_recvmsg
+EXPORT_SYMBOL vmlinux 0x8d637c4f dev_change_flags
+EXPORT_SYMBOL vmlinux 0x8d64a100 cpu_sysdev_class
+EXPORT_SYMBOL vmlinux 0x8d68655f alloc_pages_current
+EXPORT_SYMBOL vmlinux 0x8d7c9546 sunserial_register_minors
+EXPORT_SYMBOL vmlinux 0x8d879c80 drm_mm_clean
+EXPORT_SYMBOL vmlinux 0x8d9de84b drm_lock_take
+EXPORT_SYMBOL vmlinux 0x8db034e8 call_usermodehelper_setup
+EXPORT_SYMBOL vmlinux 0x8dbf1e19 dquot_alloc_inode
+EXPORT_SYMBOL vmlinux 0x8dc9fcd9 unregister_key_type
+EXPORT_SYMBOL vmlinux 0x8dcaa02f rwsem_down_write_failed
+EXPORT_SYMBOL vmlinux 0x8ddf76d2 security_path_unlink
+EXPORT_SYMBOL vmlinux 0x8de787fb serio_reconnect
+EXPORT_SYMBOL vmlinux 0x8df7fb84 blk_queue_dma_pad
+EXPORT_SYMBOL vmlinux 0x8dfb019d drm_buffer_free
+EXPORT_SYMBOL vmlinux 0x8dfcda36 rtnl_link_get_net
+EXPORT_SYMBOL vmlinux 0x8e0b7743 ipv6_ext_hdr
+EXPORT_SYMBOL vmlinux 0x8e0fde65 tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0x8e1ac700 udp_lib_get_port
+EXPORT_SYMBOL vmlinux 0x8e281269 simple_write_end
+EXPORT_SYMBOL vmlinux 0x8e2dcfde alloc_etherdev_mq
+EXPORT_SYMBOL vmlinux 0x8e3c9cc3 vprintk
+EXPORT_SYMBOL vmlinux 0x8e46ca67 sunserial_unregister_minors
+EXPORT_SYMBOL vmlinux 0x8e6d14d0 __pci_enable_wake
+EXPORT_SYMBOL vmlinux 0x8e763ae1 send_remote_softirq
+EXPORT_SYMBOL vmlinux 0x8e879bb7 __vmalloc
+EXPORT_SYMBOL vmlinux 0x8eca1509 unload_nls
+EXPORT_SYMBOL vmlinux 0x8ed5b3fe generic_file_aio_read
+EXPORT_SYMBOL vmlinux 0x8f13903a _raw_spin_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0x8f362645 nf_setsockopt
+EXPORT_SYMBOL vmlinux 0x8f48679a rb_prev
+EXPORT_SYMBOL vmlinux 0x8f6b7950 set_irq_data
+EXPORT_SYMBOL vmlinux 0x8fc1fa5b dw_spi_remove_host
+EXPORT_SYMBOL vmlinux 0x8fcd2aeb __scsi_add_device
+EXPORT_SYMBOL vmlinux 0x8fe2fcf6 ip_dev_find
+EXPORT_SYMBOL vmlinux 0x90035333 secure_tcpv6_sequence_number
+EXPORT_SYMBOL vmlinux 0x9021d67c scsi_device_get
+EXPORT_SYMBOL vmlinux 0x90301378 skb_copy_and_csum_datagram_iovec
+EXPORT_SYMBOL vmlinux 0x903c7d95 dev_set_mac_address
+EXPORT_SYMBOL vmlinux 0x905f826b gnet_stats_start_copy
+EXPORT_SYMBOL vmlinux 0x908b0266 generic_file_fsync
+EXPORT_SYMBOL vmlinux 0x908cf645 bio_integrity_prep
+EXPORT_SYMBOL vmlinux 0x90980e4d shrink_dcache_parent
+EXPORT_SYMBOL vmlinux 0x90a8ad46 tty_set_operations
+EXPORT_SYMBOL vmlinux 0x90a943ba nmi_active
+EXPORT_SYMBOL vmlinux 0x90ac3102 dev_base_lock
+EXPORT_SYMBOL vmlinux 0x90adcd43 jbd2_journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0x90b97086 drm_core_reclaim_buffers
+EXPORT_SYMBOL vmlinux 0x90be2964 ps2_end_command
+EXPORT_SYMBOL vmlinux 0x90f922ab pci_remove_behind_bridge
+EXPORT_SYMBOL vmlinux 0x9117a881 prom_getstring
+EXPORT_SYMBOL vmlinux 0x9128209d block_write_begin
+EXPORT_SYMBOL vmlinux 0x91766c09 param_get_ulong
+EXPORT_SYMBOL vmlinux 0x917fd53b arp_create
+EXPORT_SYMBOL vmlinux 0x91958e0d sock_no_ioctl
+EXPORT_SYMBOL vmlinux 0x919d1834 dev_uc_sync
+EXPORT_SYMBOL vmlinux 0x919de7b5 __module_put_and_exit
+EXPORT_SYMBOL vmlinux 0x91fdb485 request_key_async_with_auxdata
+EXPORT_SYMBOL vmlinux 0x920f97ca drm_mmap
+EXPORT_SYMBOL vmlinux 0x9214ed8a param_get_bool
+EXPORT_SYMBOL vmlinux 0x92211c24 key_put
+EXPORT_SYMBOL vmlinux 0x9225552d __xfrm_decode_session
+EXPORT_SYMBOL vmlinux 0x92392cd9 iov_shorten
+EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get
+EXPORT_SYMBOL vmlinux 0x924015c6 follow_pfn
+EXPORT_SYMBOL vmlinux 0x928cc15e drm_clflush_pages
+EXPORT_SYMBOL vmlinux 0x92d08ae9 tcf_hash_search
+EXPORT_SYMBOL vmlinux 0x92ea4ae4 crc32_le
+EXPORT_SYMBOL vmlinux 0x930231af generic_file_open
+EXPORT_SYMBOL vmlinux 0x931ab53c vm_insert_pfn
+EXPORT_SYMBOL vmlinux 0x931b5e8d sock_i_ino
+EXPORT_SYMBOL vmlinux 0x931c97dc skb_realloc_headroom
+EXPORT_SYMBOL vmlinux 0x9330cb9f sg_alloc_table
+EXPORT_SYMBOL vmlinux 0x93581bab put_tty_driver
+EXPORT_SYMBOL vmlinux 0x935e63db ethtool_op_get_tso
+EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule
+EXPORT_SYMBOL vmlinux 0x93bc78af drm_mode_create_dvi_i_properties
+EXPORT_SYMBOL vmlinux 0x93d7558e dquot_set_dqblk
+EXPORT_SYMBOL vmlinux 0x93e437ea inet_stream_ops
+EXPORT_SYMBOL vmlinux 0x93eef729 drm_gem_vm_close
+EXPORT_SYMBOL vmlinux 0x93f51559 i2c_smbus_xfer
+EXPORT_SYMBOL vmlinux 0x93f63ae7 sbusfb_compat_ioctl
+EXPORT_SYMBOL vmlinux 0x93fc1f6e open_bdev_exclusive
+EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages
+EXPORT_SYMBOL vmlinux 0x94129413 proto_unregister
+EXPORT_SYMBOL vmlinux 0x943c3125 udp_proc_unregister
+EXPORT_SYMBOL vmlinux 0x9443289e set_bit
+EXPORT_SYMBOL vmlinux 0x946a37b5 tcp_v4_md5_do_add
+EXPORT_SYMBOL vmlinux 0x94919cbd generic_permission
+EXPORT_SYMBOL vmlinux 0x94961283 vunmap
+EXPORT_SYMBOL vmlinux 0x94bf65b5 neigh_resolve_output
+EXPORT_SYMBOL vmlinux 0x94c670a4 sk_receive_skb
+EXPORT_SYMBOL vmlinux 0x94d32a88 __tracepoint_module_get
+EXPORT_SYMBOL vmlinux 0x94f6c2b3 check_disk_size_change
+EXPORT_SYMBOL vmlinux 0x9509fd9c _raw_spin_lock
+EXPORT_SYMBOL vmlinux 0x950b0b51 test_and_set_bit
+EXPORT_SYMBOL vmlinux 0x95114c35 skb_add_rx_frag
+EXPORT_SYMBOL vmlinux 0x9514151a _mcount
+EXPORT_SYMBOL vmlinux 0x9518ff6a tcp_md5_hash_skb_data
+EXPORT_SYMBOL vmlinux 0x9521b7b6 bio_integrity_set_tag
+EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret
+EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init
+EXPORT_SYMBOL vmlinux 0x954cbb26 vsprintf
+EXPORT_SYMBOL vmlinux 0x956c05c0 skb_copy_expand
+EXPORT_SYMBOL vmlinux 0x9591d15f dev_set_drvdata
+EXPORT_SYMBOL vmlinux 0x95929ce0 tcp_sockets_allocated
+EXPORT_SYMBOL vmlinux 0x9594f65e __dquot_alloc_space
+EXPORT_SYMBOL vmlinux 0x959efba6 __pagevec_release
+EXPORT_SYMBOL vmlinux 0x95ae0744 journal_trans_will_send_data_barrier
+EXPORT_SYMBOL vmlinux 0x95c87772 flush_delayed_work
+EXPORT_SYMBOL vmlinux 0x95ceb864 key_update
+EXPORT_SYMBOL vmlinux 0x96208690 soft_cursor
+EXPORT_SYMBOL vmlinux 0x963e2097 register_netdevice
+EXPORT_SYMBOL vmlinux 0x9689ccff seq_bitmap
+EXPORT_SYMBOL vmlinux 0x968d9ab8 abx500_startup_irq_enabled
+EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string
+EXPORT_SYMBOL vmlinux 0x96d0eeb7 lock_rename
+EXPORT_SYMBOL vmlinux 0x96ebac56 pcim_iomap_regions_request_all
+EXPORT_SYMBOL vmlinux 0x96ee17aa fb_set_cmap
+EXPORT_SYMBOL vmlinux 0x96fc2e5f blk_sync_queue
+EXPORT_SYMBOL vmlinux 0x9702eb8c skb_abort_seq_read
+EXPORT_SYMBOL vmlinux 0x97259209 __kfifo_to_user_n
+EXPORT_SYMBOL vmlinux 0x972e4146 of_find_all_nodes
+EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload
+EXPORT_SYMBOL vmlinux 0x9755d1a3 inet_csk_accept
+EXPORT_SYMBOL vmlinux 0x9763cea6 datagram_poll
+EXPORT_SYMBOL vmlinux 0x978017a9 pcibus_to_node
+EXPORT_SYMBOL vmlinux 0x979a4a72 nf_register_sockopt
+EXPORT_SYMBOL vmlinux 0x97b45c7f tcf_em_register
+EXPORT_SYMBOL vmlinux 0x97d7c9ce __down_read
+EXPORT_SYMBOL vmlinux 0x97e6ca92 simple_transaction_get
+EXPORT_SYMBOL vmlinux 0x97f171ff unregister_netdevice_queue
+EXPORT_SYMBOL vmlinux 0x983301ae unregister_netdev
+EXPORT_SYMBOL vmlinux 0x98652e4e i2c_master_send
+EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer
+EXPORT_SYMBOL vmlinux 0x9872d116 cmos_regs
+EXPORT_SYMBOL vmlinux 0x98794da5 kernel_read
+EXPORT_SYMBOL vmlinux 0x9898c745 scsi_rescan_device
+EXPORT_SYMBOL vmlinux 0x9898f938 __seq_open_private
+EXPORT_SYMBOL vmlinux 0x989a7b17 kfifo_init
+EXPORT_SYMBOL vmlinux 0x98cacb68 nla_put
+EXPORT_SYMBOL vmlinux 0x99091a38 drm_get_encoder_name
+EXPORT_SYMBOL vmlinux 0x992bf86b vga_tryget
+EXPORT_SYMBOL vmlinux 0x99426edb scsi_add_host_with_dma
+EXPORT_SYMBOL vmlinux 0x998691ae mpage_writepage
+EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id
+EXPORT_SYMBOL vmlinux 0x999be8c3 dma_pool_destroy
+EXPORT_SYMBOL vmlinux 0x999e3fc2 blk_queue_max_hw_sectors
+EXPORT_SYMBOL vmlinux 0x999e8297 vfree
+EXPORT_SYMBOL vmlinux 0x99a636fd dquot_quota_on_mount
+EXPORT_SYMBOL vmlinux 0x99a8d0c5 clocksource_change_rating
+EXPORT_SYMBOL vmlinux 0x99bfbe39 get_unused_fd
+EXPORT_SYMBOL vmlinux 0x99c7a8b8 jbd2_dev_to_name
+EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering
+EXPORT_SYMBOL vmlinux 0x99e69e81 rfkill_blocked
+EXPORT_SYMBOL vmlinux 0x99ea12ce panic_blink
+EXPORT_SYMBOL vmlinux 0x99ede469 proc_dointvec_minmax
+EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk
+EXPORT_SYMBOL vmlinux 0x9a6a3d7e blk_fetch_request
+EXPORT_SYMBOL vmlinux 0x9a76247b vc_resize
+EXPORT_SYMBOL vmlinux 0x9a7b658e ip_mc_inc_group
+EXPORT_SYMBOL vmlinux 0x9aabc564 crc16
+EXPORT_SYMBOL vmlinux 0x9aacd62b prom_getintdefault
+EXPORT_SYMBOL vmlinux 0x9afd8c0a elv_register_queue
+EXPORT_SYMBOL vmlinux 0x9b035467 igrab
+EXPORT_SYMBOL vmlinux 0x9b13aa28 dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0x9b217894 dev_set_promiscuity
+EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page
+EXPORT_SYMBOL vmlinux 0x9b51e4a8 pci_set_dma_max_seg_size
+EXPORT_SYMBOL vmlinux 0x9b5a31e0 proc_dointvec_ms_jiffies
+EXPORT_SYMBOL vmlinux 0x9b84470c scsi_unregister
+EXPORT_SYMBOL vmlinux 0x9b863cdf __page_symlink
+EXPORT_SYMBOL vmlinux 0x9b8c0a9d blk_dump_rq_flags
+EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split
+EXPORT_SYMBOL vmlinux 0x9bfa634c simple_dir_inode_operations
+EXPORT_SYMBOL vmlinux 0x9c012508 fb_parse_edid
+EXPORT_SYMBOL vmlinux 0x9c0e66c3 security_path_truncate
+EXPORT_SYMBOL vmlinux 0x9c0ea3cd memscan
+EXPORT_SYMBOL vmlinux 0x9c1c71ea inode_change_ok
+EXPORT_SYMBOL vmlinux 0x9c2242f3 ida_get_new_above
+EXPORT_SYMBOL vmlinux 0x9c63e475 blk_queue_free_tags
+EXPORT_SYMBOL vmlinux 0x9ca95a0e sort
+EXPORT_SYMBOL vmlinux 0x9cb96e92 qdisc_put_rtab
+EXPORT_SYMBOL vmlinux 0x9cc5be2b cancel_delayed_work_sync
+EXPORT_SYMBOL vmlinux 0x9cfc8d7a jbd2_journal_init_inode
+EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status
+EXPORT_SYMBOL vmlinux 0x9cff0087 scsi_target_quiesce
+EXPORT_SYMBOL vmlinux 0x9d0d02b6 __invalidate_device
+EXPORT_SYMBOL vmlinux 0x9d242f9b pcie_get_readrq
+EXPORT_SYMBOL vmlinux 0x9d30c75c __kfree_skb
+EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init
+EXPORT_SYMBOL vmlinux 0x9d9282ed pci_get_slot
+EXPORT_SYMBOL vmlinux 0x9d9e52a4 mod_timer_pinned
+EXPORT_SYMBOL vmlinux 0x9da7c348 security_inode_getsecctx
+EXPORT_SYMBOL vmlinux 0x9db21624 hex_dump_to_buffer
+EXPORT_SYMBOL vmlinux 0x9db37875 change_bit
+EXPORT_SYMBOL vmlinux 0x9dd78fd5 read_cache_page
+EXPORT_SYMBOL vmlinux 0x9ddbebad abx500_event_registers_startup_state_get
+EXPORT_SYMBOL vmlinux 0x9e03ab8c single_open
+EXPORT_SYMBOL vmlinux 0x9e4a29e8 inet_recvmsg
+EXPORT_SYMBOL vmlinux 0x9e4ad589 __scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0x9e771285 _PAGE_E
+EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot
+EXPORT_SYMBOL vmlinux 0x9ea7a8ce of_device_unregister
+EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource
+EXPORT_SYMBOL vmlinux 0x9ece1b3d tcp_tso_segment
+EXPORT_SYMBOL vmlinux 0x9ecfad45 set_device_ro
+EXPORT_SYMBOL vmlinux 0x9edbecae snprintf
+EXPORT_SYMBOL vmlinux 0x9ee35a71 pci_restore_state
+EXPORT_SYMBOL vmlinux 0x9eecde16 do_brk
+EXPORT_SYMBOL vmlinux 0x9efc0385 tcp_v4_do_rcv
+EXPORT_SYMBOL vmlinux 0x9efc72c2 block_page_mkwrite
+EXPORT_SYMBOL vmlinux 0x9f100139 jiffies_to_clock_t
+EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or
+EXPORT_SYMBOL vmlinux 0x9f2d613e param_set_bool
+EXPORT_SYMBOL vmlinux 0x9f41a59c usb_gadget_register_driver
+EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64
+EXPORT_SYMBOL vmlinux 0x9f5d5ca0 netpoll_send_skb
+EXPORT_SYMBOL vmlinux 0x9f7d2863 inode_needs_sync
+EXPORT_SYMBOL vmlinux 0x9f984513 strrchr
+EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many
+EXPORT_SYMBOL vmlinux 0xa03523d5 security_unix_stream_connect
+EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert
+EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc
+EXPORT_SYMBOL vmlinux 0xa0624c96 scsi_block_when_processing_errors
+EXPORT_SYMBOL vmlinux 0xa0ae432b proc_dointvec
+EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32
+EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit
+EXPORT_SYMBOL vmlinux 0xa0cf691d journal_destroy
+EXPORT_SYMBOL vmlinux 0xa0d3d560 ksize
+EXPORT_SYMBOL vmlinux 0xa0eaa734 dquot_transfer
+EXPORT_SYMBOL vmlinux 0xa0ebb2ba _PAGE_CACHE
+EXPORT_SYMBOL vmlinux 0xa0f0ec9e iunique
+EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit
+EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max
+EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc
+EXPORT_SYMBOL vmlinux 0xa1242c40 sock_no_recvmsg
+EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask
+EXPORT_SYMBOL vmlinux 0xa1705c1d sock_recvmsg
+EXPORT_SYMBOL vmlinux 0xa1745592 blkdev_get
+EXPORT_SYMBOL vmlinux 0xa19a1745 sock_wfree
+EXPORT_SYMBOL vmlinux 0xa1b49159 ____pagevec_lru_add
+EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode
+EXPORT_SYMBOL vmlinux 0xa1ba4b95 memcpy_fromiovecend
+EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched
+EXPORT_SYMBOL vmlinux 0xa1dcb4f3 elv_dispatch_sort
+EXPORT_SYMBOL vmlinux 0xa1e0186c rwsem_downgrade_wake
+EXPORT_SYMBOL vmlinux 0xa1eabd87 drm_mode_list_concat
+EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn
+EXPORT_SYMBOL vmlinux 0xa22bc9b6 inode_newsize_ok
+EXPORT_SYMBOL vmlinux 0xa2624125 serio_close
+EXPORT_SYMBOL vmlinux 0xa2752bd1 generic_readlink
+EXPORT_SYMBOL vmlinux 0xa295f031 drm_add_edid_modes
+EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret
+EXPORT_SYMBOL vmlinux 0xa2d06d32 pci_bus_size_bridges
+EXPORT_SYMBOL vmlinux 0xa2d65145 inet_proto_csum_replace4
+EXPORT_SYMBOL vmlinux 0xa2d6f27d page_symlink
+EXPORT_SYMBOL vmlinux 0xa2db7617 sock_no_setsockopt
+EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table
+EXPORT_SYMBOL vmlinux 0xa329f07e register_shrinker
+EXPORT_SYMBOL vmlinux 0xa332cdd1 security_tun_dev_attach
+EXPORT_SYMBOL vmlinux 0xa337e3d3 phy_attach_direct
+EXPORT_SYMBOL vmlinux 0xa33f7c7c nla_strlcpy
+EXPORT_SYMBOL vmlinux 0xa34128b5 fsnotify_find_mark_entry
+EXPORT_SYMBOL vmlinux 0xa34a4aa7 ___copy_to_user
+EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config
+EXPORT_SYMBOL vmlinux 0xa3719b08 i2c_verify_client
+EXPORT_SYMBOL vmlinux 0xa390ebab drm_gtf_mode_complex
+EXPORT_SYMBOL vmlinux 0xa39b4cf2 udelay
+EXPORT_SYMBOL vmlinux 0xa3b791ec scsi_add_device
+EXPORT_SYMBOL vmlinux 0xa3c5dcf4 bh_submit_read
+EXPORT_SYMBOL vmlinux 0xa415231c __down_write
+EXPORT_SYMBOL vmlinux 0xa429d1da iov_iter_copy_from_user_atomic
+EXPORT_SYMBOL vmlinux 0xa4333840 seq_putc
+EXPORT_SYMBOL vmlinux 0xa436484a pagevec_lookup
+EXPORT_SYMBOL vmlinux 0xa44072fc posix_acl_alloc
+EXPORT_SYMBOL vmlinux 0xa45e9353 splice_from_pipe_feed
+EXPORT_SYMBOL vmlinux 0xa4636eec netdev_rx_csum_fault
+EXPORT_SYMBOL vmlinux 0xa47464d5 nf_register_hooks
+EXPORT_SYMBOL vmlinux 0xa4a86627 rtnl_unicast
+EXPORT_SYMBOL vmlinux 0xa4af243e pci_set_dma_seg_boundary
+EXPORT_SYMBOL vmlinux 0xa4ce4ff9 dquot_alloc
+EXPORT_SYMBOL vmlinux 0xa4d5b84a keyring_search
+EXPORT_SYMBOL vmlinux 0xa4e0808c file_remove_suid
+EXPORT_SYMBOL vmlinux 0xa4fb7909 end_buffer_write_sync
+EXPORT_SYMBOL vmlinux 0xa51e5715 bdev_read_only
+EXPORT_SYMBOL vmlinux 0xa52f40bd vga_put
+EXPORT_SYMBOL vmlinux 0xa53bdfeb ethtool_op_set_sg
+EXPORT_SYMBOL vmlinux 0xa555e181 __skb_checksum_complete
+EXPORT_SYMBOL vmlinux 0xa5693df7 posix_acl_clone
+EXPORT_SYMBOL vmlinux 0xa576c263 generic_find_next_le_bit
+EXPORT_SYMBOL vmlinux 0xa57d554c write_one_page
+EXPORT_SYMBOL vmlinux 0xa58b6804 nla_parse
+EXPORT_SYMBOL vmlinux 0xa58eca9c blk_limits_io_min
+EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes
+EXPORT_SYMBOL vmlinux 0xa5a633b9 sg_last
+EXPORT_SYMBOL vmlinux 0xa5c2d8ba inet_select_addr
+EXPORT_SYMBOL vmlinux 0xa5e4f65c __next_cpu_nr
+EXPORT_SYMBOL vmlinux 0xa5e68673 tlb_type
+EXPORT_SYMBOL vmlinux 0xa5eb6535 splice_from_pipe_begin
+EXPORT_SYMBOL vmlinux 0xa5f76c96 pcim_enable_device
+EXPORT_SYMBOL vmlinux 0xa603d944 generic_file_mmap
+EXPORT_SYMBOL vmlinux 0xa60f5ddb vio_control_pkt_engine
+EXPORT_SYMBOL vmlinux 0xa61f6b41 seq_release
+EXPORT_SYMBOL vmlinux 0xa62f964e blk_queue_alignment_offset
+EXPORT_SYMBOL vmlinux 0xa6499ffd __xfrm_route_forward
+EXPORT_SYMBOL vmlinux 0xa6815ee6 __alloc_pages_nodemask
+EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid
+EXPORT_SYMBOL vmlinux 0xa6953468 inet_frags_exit_net
+EXPORT_SYMBOL vmlinux 0xa6a128a0 scsi_device_resume
+EXPORT_SYMBOL vmlinux 0xa6a4861f poll_schedule_timeout
+EXPORT_SYMBOL vmlinux 0xa6a717f3 set_user_nice
+EXPORT_SYMBOL vmlinux 0xa6c6f459 serio_unregister_port
+EXPORT_SYMBOL vmlinux 0xa6cabaa3 down_interruptible
+EXPORT_SYMBOL vmlinux 0xa6cbe8f4 dev_uc_flush
+EXPORT_SYMBOL vmlinux 0xa6d9df0f ethtool_op_get_rx_csum
+EXPORT_SYMBOL vmlinux 0xa6f95d61 mntput_no_expire
+EXPORT_SYMBOL vmlinux 0xa70268f1 inet_del_protocol
+EXPORT_SYMBOL vmlinux 0xa70cef81 tcf_unregister_action
+EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes
+EXPORT_SYMBOL vmlinux 0xa73a6e7a pci_enable_device_io
+EXPORT_SYMBOL vmlinux 0xa7512087 blk_plug_device_unlocked
+EXPORT_SYMBOL vmlinux 0xa77ae331 ip4_datagram_connect
+EXPORT_SYMBOL vmlinux 0xa7b8e65e drm_lock_free
+EXPORT_SYMBOL vmlinux 0xa7c20ce4 dev_mc_unsync
+EXPORT_SYMBOL vmlinux 0xa7f51efe pci_add_new_bus
+EXPORT_SYMBOL vmlinux 0xa8009696 jbd2_journal_release_jbd_inode
+EXPORT_SYMBOL vmlinux 0xa816c525 schedule_work_on
+EXPORT_SYMBOL vmlinux 0xa852445e sockfd_lookup
+EXPORT_SYMBOL vmlinux 0xa87b7d07 of_match_node
+EXPORT_SYMBOL vmlinux 0xa881f876 drm_mode_connector_attach_encoder
+EXPORT_SYMBOL vmlinux 0xa886a958 krealloc
+EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region
+EXPORT_SYMBOL vmlinux 0xa8def1ce generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xa8e2dbef drm_mode_crtc_set_gamma_size
+EXPORT_SYMBOL vmlinux 0xa8f53f9a mb_cache_entry_find_first
+EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send
+EXPORT_SYMBOL vmlinux 0xa9111a47 do_gettimeofday
+EXPORT_SYMBOL vmlinux 0xa912fe5b blk_get_request
+EXPORT_SYMBOL vmlinux 0xa91f4c64 pci_request_regions
+EXPORT_SYMBOL vmlinux 0xa9599e5e kobject_set_name
+EXPORT_SYMBOL vmlinux 0xa99f1bc5 __bio_clone
+EXPORT_SYMBOL vmlinux 0xa9a996f0 netdev_state_change
+EXPORT_SYMBOL vmlinux 0xa9adb548 pci_iomap
+EXPORT_SYMBOL vmlinux 0xa9bd65f1 dma_async_memcpy_buf_to_buf
+EXPORT_SYMBOL vmlinux 0xa9cdb8ab udp_table
+EXPORT_SYMBOL vmlinux 0xa9e52ff4 prepare_binprm
+EXPORT_SYMBOL vmlinux 0xa9edc8e7 proc_doulongvec_minmax
+EXPORT_SYMBOL vmlinux 0xaa55cfed generic_splice_sendpage
+EXPORT_SYMBOL vmlinux 0xaa78bc93 drm_gem_object_release
+EXPORT_SYMBOL vmlinux 0xaa79bed9 xfrm_state_delete
+EXPORT_SYMBOL vmlinux 0xaa7e0268 tcf_hash_destroy
+EXPORT_SYMBOL vmlinux 0xaa88e9d8 netlink_unicast
+EXPORT_SYMBOL vmlinux 0xaaa6629d clear_bdi_congested
+EXPORT_SYMBOL vmlinux 0xaac78dff mem_map_zero
+EXPORT_SYMBOL vmlinux 0xaae563ca scsi_release_buffers
+EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp
+EXPORT_SYMBOL vmlinux 0xab2eeccc xfrm4_rcv
+EXPORT_SYMBOL vmlinux 0xab45360c drm_cvt_mode
+EXPORT_SYMBOL vmlinux 0xab6c149a do_splice_from
+EXPORT_SYMBOL vmlinux 0xaba4fd09 cdev_init
+EXPORT_SYMBOL vmlinux 0xaba6a7c1 try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xabccd65f block_sync_page
+EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm
+EXPORT_SYMBOL vmlinux 0xabdbca12 neigh_update
+EXPORT_SYMBOL vmlinux 0xabef85f1 wait_for_completion_timeout
+EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable
+EXPORT_SYMBOL vmlinux 0xac0fb60b neigh_event_ns
+EXPORT_SYMBOL vmlinux 0xac1d2688 pci_reenable_device
+EXPORT_SYMBOL vmlinux 0xac2dab09 prom_getint
+EXPORT_SYMBOL vmlinux 0xac383451 radix_tree_tag_clear
+EXPORT_SYMBOL vmlinux 0xac4d5eed arp_find
+EXPORT_SYMBOL vmlinux 0xac6855b0 gen_kill_estimator
+EXPORT_SYMBOL vmlinux 0xac8e55d1 udp_ioctl
+EXPORT_SYMBOL vmlinux 0xaca4346f bio_init
+EXPORT_SYMBOL vmlinux 0xacc5f229 d_alloc
+EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton
+EXPORT_SYMBOL vmlinux 0xacce3bef register_console
+EXPORT_SYMBOL vmlinux 0xaccf3b2f dcache_dir_lseek
+EXPORT_SYMBOL vmlinux 0xacd8289b drm_core_ioremapfree
+EXPORT_SYMBOL vmlinux 0xace4c8ed tick_ops
+EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup
+EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex
+EXPORT_SYMBOL vmlinux 0xad35d5ff console_start
+EXPORT_SYMBOL vmlinux 0xad466018 quota_send_warning
+EXPORT_SYMBOL vmlinux 0xad93a156 __bread
+EXPORT_SYMBOL vmlinux 0xada4b0e4 ida_remove
+EXPORT_SYMBOL vmlinux 0xadc80305 drm_sg_alloc
+EXPORT_SYMBOL vmlinux 0xade8fed1 security_file_mmap
+EXPORT_SYMBOL vmlinux 0xae0b4cb1 __alloc_skb
+EXPORT_SYMBOL vmlinux 0xae24fa41 is_container_init
+EXPORT_SYMBOL vmlinux 0xae3ffa53 con_set_default_unimap
+EXPORT_SYMBOL vmlinux 0xae89aa2a cfb_fillrect
+EXPORT_SYMBOL vmlinux 0xae8e502c kobject_add
+EXPORT_SYMBOL vmlinux 0xaea0592f __lock_buffer
+EXPORT_SYMBOL vmlinux 0xaea66b5c xfrm_state_lookup_byaddr
+EXPORT_SYMBOL vmlinux 0xaee42a8d do_sync_write
+EXPORT_SYMBOL vmlinux 0xaef39848 sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xaf195d41 tcp_sendpage
+EXPORT_SYMBOL vmlinux 0xaf29788e drm_sman_init
+EXPORT_SYMBOL vmlinux 0xaf562a46 generic_removexattr
+EXPORT_SYMBOL vmlinux 0xaf6f1431 mark_buffer_dirty
+EXPORT_SYMBOL vmlinux 0xaf85bf23 cancel_dirty_page
+EXPORT_SYMBOL vmlinux 0xafbf98f7 _raw_spin_unlock_bh
+EXPORT_SYMBOL vmlinux 0xafd53aec key_link
+EXPORT_SYMBOL vmlinux 0xafe2d0c7 jbd2_journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xafe82e10 strcspn
+EXPORT_SYMBOL vmlinux 0xaff556a3 drm_mode_connector_detach_encoder
+EXPORT_SYMBOL vmlinux 0xaffc841e drm_core_get_reg_ofs
+EXPORT_SYMBOL vmlinux 0xb06ee4f4 blk_start_queue
+EXPORT_SYMBOL vmlinux 0xb06fb74b drm_mm_put_block
+EXPORT_SYMBOL vmlinux 0xb0a2218d kernel_getsockopt
+EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full
+EXPORT_SYMBOL vmlinux 0xb0df0444 tcp_gro_receive
+EXPORT_SYMBOL vmlinux 0xb0e10781 get_option
+EXPORT_SYMBOL vmlinux 0xb0ef9b52 xfrm_alloc_spi
+EXPORT_SYMBOL vmlinux 0xb0efcb7b jbd2_journal_update_format
+EXPORT_SYMBOL vmlinux 0xb11fa1ce strlcat
+EXPORT_SYMBOL vmlinux 0xb12cedb7 ethtool_op_set_tx_csum
+EXPORT_SYMBOL vmlinux 0xb1501c16 dma_async_device_register
+EXPORT_SYMBOL vmlinux 0xb18b9cbb dev_mc_sync
+EXPORT_SYMBOL vmlinux 0xb18e02c3 radix_tree_gang_lookup_tag
+EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto
+EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress
+EXPORT_SYMBOL vmlinux 0xb1d8ff16 blk_requeue_request
+EXPORT_SYMBOL vmlinux 0xb1dd0efd vfs_writev
+EXPORT_SYMBOL vmlinux 0xb1f30acb sg_miter_start
+EXPORT_SYMBOL vmlinux 0xb21e411a kernel_bind
+EXPORT_SYMBOL vmlinux 0xb224fbe2 param_get_short
+EXPORT_SYMBOL vmlinux 0xb22fe6a3 netdev_increment_features
+EXPORT_SYMBOL vmlinux 0xb23377b4 uart_update_timeout
+EXPORT_SYMBOL vmlinux 0xb23963c3 dmam_free_coherent
+EXPORT_SYMBOL vmlinux 0xb24c835a __scm_destroy
+EXPORT_SYMBOL vmlinux 0xb264e8e5 __vlan_hwaccel_rx
+EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32
+EXPORT_SYMBOL vmlinux 0xb28460d2 eth_header
+EXPORT_SYMBOL vmlinux 0xb29207dd blk_alloc_queue
+EXPORT_SYMBOL vmlinux 0xb2e08f62 km_policy_notify
+EXPORT_SYMBOL vmlinux 0xb2fe6b99 drm_open
+EXPORT_SYMBOL vmlinux 0xb314cb29 filemap_fdatawrite
+EXPORT_SYMBOL vmlinux 0xb334fcdb simple_setattr
+EXPORT_SYMBOL vmlinux 0xb36cbf31 noop_qdisc
+EXPORT_SYMBOL vmlinux 0xb3901a61 security_path_rmdir
+EXPORT_SYMBOL vmlinux 0xb3a307c6 si_meminfo
+EXPORT_SYMBOL vmlinux 0xb3a692a1 save_mount_options
+EXPORT_SYMBOL vmlinux 0xb3aa485c gnet_stats_start_copy_compat
+EXPORT_SYMBOL vmlinux 0xb3adff83 __ps2_command
+EXPORT_SYMBOL vmlinux 0xb3ff1f69 free_pages_exact
+EXPORT_SYMBOL vmlinux 0xb406e1c1 pm860x_reg_write
+EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked
+EXPORT_SYMBOL vmlinux 0xb42453d3 param_get_invbool
+EXPORT_SYMBOL vmlinux 0xb435f347 vfs_link
+EXPORT_SYMBOL vmlinux 0xb45a50f1 open_exec
+EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list
+EXPORT_SYMBOL vmlinux 0xb49331af tty_unregister_driver
+EXPORT_SYMBOL vmlinux 0xb493b14c request_key
+EXPORT_SYMBOL vmlinux 0xb4ad29aa drm_gem_handle_create
+EXPORT_SYMBOL vmlinux 0xb4e9642d scsi_cmd_ioctl
+EXPORT_SYMBOL vmlinux 0xb4f2153a pci_bus_write_config_byte
+EXPORT_SYMBOL vmlinux 0xb4f62dec scsicam_bios_param
+EXPORT_SYMBOL vmlinux 0xb4f83136 bio_copy_kern
+EXPORT_SYMBOL vmlinux 0xb4f92eb6 drm_mode_duplicate
+EXPORT_SYMBOL vmlinux 0xb4fbf66a skb_copy_and_csum_dev
+EXPORT_SYMBOL vmlinux 0xb4fe58d6 pci_bus_find_capability
+EXPORT_SYMBOL vmlinux 0xb5044271 vsscanf
+EXPORT_SYMBOL vmlinux 0xb505fcf9 cdev_alloc
+EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies
+EXPORT_SYMBOL vmlinux 0xb54a9f90 dm_get_mapinfo
+EXPORT_SYMBOL vmlinux 0xb5613639 tcp_connect
+EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev
+EXPORT_SYMBOL vmlinux 0xb5c75ad7 max8925_reg_read
+EXPORT_SYMBOL vmlinux 0xb5f3e6a6 skb_checksum_help
+EXPORT_SYMBOL vmlinux 0xb6519420 freeze_bdev
+EXPORT_SYMBOL vmlinux 0xb654ad84 register_filesystem
+EXPORT_SYMBOL vmlinux 0xb658cc51 inet_addr_type
+EXPORT_SYMBOL vmlinux 0xb665e6e6 sock_no_accept
+EXPORT_SYMBOL vmlinux 0xb67570c2 jbd2_journal_destroy
+EXPORT_SYMBOL vmlinux 0xb6757a5b __percpu_counter_init
+EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt
+EXPORT_SYMBOL vmlinux 0xb6a467b1 drm_edid_is_valid
+EXPORT_SYMBOL vmlinux 0xb6a61a86 qdisc_get_rtab
+EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit
+EXPORT_SYMBOL vmlinux 0xb6b19602 generic_setattr
+EXPORT_SYMBOL vmlinux 0xb6b3d56a generic_error_remove_page
+EXPORT_SYMBOL vmlinux 0xb6b74d0e skb_kill_datagram
+EXPORT_SYMBOL vmlinux 0xb6bac14f bdget
+EXPORT_SYMBOL vmlinux 0xb6bde5a2 ldc_state
+EXPORT_SYMBOL vmlinux 0xb6bffb99 kstat_irqs_cpu
+EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result
+EXPORT_SYMBOL vmlinux 0xb6fe4bba dcache_lock
+EXPORT_SYMBOL vmlinux 0xb71fb74f _raw_read_trylock
+EXPORT_SYMBOL vmlinux 0xb784f56b tty_register_device
+EXPORT_SYMBOL vmlinux 0xb788131b find_or_create_page
+EXPORT_SYMBOL vmlinux 0xb79064fd sleep_on
+EXPORT_SYMBOL vmlinux 0xb79ec869 ip_setsockopt
+EXPORT_SYMBOL vmlinux 0xb7b467de tcp_gro_complete
+EXPORT_SYMBOL vmlinux 0xb7bc915b sock_no_socketpair
+EXPORT_SYMBOL vmlinux 0xb7becdb3 proc_dostring
+EXPORT_SYMBOL vmlinux 0xb7bfd4ed udp_prot
+EXPORT_SYMBOL vmlinux 0xb7c2611e wireless_spy_update
+EXPORT_SYMBOL vmlinux 0xb7c86a5f serio_open
+EXPORT_SYMBOL vmlinux 0xb7d5e8af jbd2_journal_wipe
+EXPORT_SYMBOL vmlinux 0xb7d67d40 genl_register_family_with_ops
+EXPORT_SYMBOL vmlinux 0xb7f077d5 kernel_listen
+EXPORT_SYMBOL vmlinux 0xb8211031 __generic_block_fiemap
+EXPORT_SYMBOL vmlinux 0xb86e4ab9 random32
+EXPORT_SYMBOL vmlinux 0xb881599f bio_integrity_tag_size
+EXPORT_SYMBOL vmlinux 0xb89af9bf srandom32
+EXPORT_SYMBOL vmlinux 0xb8a7811c arp_xmit
+EXPORT_SYMBOL vmlinux 0xb8c1b412 __percpu_counter_add
+EXPORT_SYMBOL vmlinux 0xb8c5bf63 simple_dir_operations
+EXPORT_SYMBOL vmlinux 0xb8c694b1 gen_replace_estimator
+EXPORT_SYMBOL vmlinux 0xb907a8b6 pci_clear_mwi
+EXPORT_SYMBOL vmlinux 0xb9220417 lock_may_read
+EXPORT_SYMBOL vmlinux 0xb9249d16 cpu_possible_mask
+EXPORT_SYMBOL vmlinux 0xb92cf21a blkdev_issue_zeroout
+EXPORT_SYMBOL vmlinux 0xb95cb653 xfrm_state_lookup
+EXPORT_SYMBOL vmlinux 0xb95d76ed blk_rq_count_integrity_sg
+EXPORT_SYMBOL vmlinux 0xb96b0809 scsi_host_alloc
+EXPORT_SYMBOL vmlinux 0xb9731416 blk_queue_logical_block_size
+EXPORT_SYMBOL vmlinux 0xb985a0bb i8042_remove_filter
+EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time
+EXPORT_SYMBOL vmlinux 0xb9bd0068 drm_add_modes_noedid
+EXPORT_SYMBOL vmlinux 0xb9d7c77f down_trylock
+EXPORT_SYMBOL vmlinux 0xb9e2ebcc dev_alloc_name
+EXPORT_SYMBOL vmlinux 0xb9fcd031 tcp_v4_connect
+EXPORT_SYMBOL vmlinux 0xba09da2d tcp_check_req
+EXPORT_SYMBOL vmlinux 0xba128362 dmam_alloc_noncoherent
+EXPORT_SYMBOL vmlinux 0xba2c3c7e neigh_for_each
+EXPORT_SYMBOL vmlinux 0xba390283 jbd2_journal_file_inode
+EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy
+EXPORT_SYMBOL vmlinux 0xba65deca of_get_property
+EXPORT_SYMBOL vmlinux 0xba67ecd9 init_net
+EXPORT_SYMBOL vmlinux 0xba75b1ae create_mnt_ns
+EXPORT_SYMBOL vmlinux 0xba8a7b78 ilookup
+EXPORT_SYMBOL vmlinux 0xbaa2782a kstrndup
+EXPORT_SYMBOL vmlinux 0xbaaab8ae timespec_to_jiffies
+EXPORT_SYMBOL vmlinux 0xbaad3922 tty_port_close_start
+EXPORT_SYMBOL vmlinux 0xbabb79f6 tty_write_room
+EXPORT_SYMBOL vmlinux 0xbac0b380 unmap_underlying_metadata
+EXPORT_SYMBOL vmlinux 0xbadb4276 gen_pool_alloc
+EXPORT_SYMBOL vmlinux 0xbb147d56 poll_initwait
+EXPORT_SYMBOL vmlinux 0xbb167766 fb_var_to_videomode
+EXPORT_SYMBOL vmlinux 0xbb17f384 __dquot_free_space
+EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal
+EXPORT_SYMBOL vmlinux 0xbb2ea341 ip_queue_xmit
+EXPORT_SYMBOL vmlinux 0xbb377af0 take_over_console
+EXPORT_SYMBOL vmlinux 0xbb3fb82b __set_page_dirty_nobuffers
+EXPORT_SYMBOL vmlinux 0xbb423882 dev_get_by_name_rcu
+EXPORT_SYMBOL vmlinux 0xbb42f777 __down_read_trylock
+EXPORT_SYMBOL vmlinux 0xbb4e684d search_binary_handler
+EXPORT_SYMBOL vmlinux 0xbb4eeca3 kset_unregister
+EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq
+EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font
+EXPORT_SYMBOL vmlinux 0xbba837fa sock_no_mmap
+EXPORT_SYMBOL vmlinux 0xbbb8a928 __tracepoint_kfree
+EXPORT_SYMBOL vmlinux 0xbbd87802 blk_alloc_queue_node
+EXPORT_SYMBOL vmlinux 0xbc5b0702 blk_queue_prep_rq
+EXPORT_SYMBOL vmlinux 0xbc9e2b0e __lookup_one_len
+EXPORT_SYMBOL vmlinux 0xbca88ca5 submit_bh
+EXPORT_SYMBOL vmlinux 0xbcd97449 netpoll_send_udp
+EXPORT_SYMBOL vmlinux 0xbcf5c9d1 blk_queue_segment_boundary
+EXPORT_SYMBOL vmlinux 0xbd100793 cpu_online_mask
+EXPORT_SYMBOL vmlinux 0xbd403aec tcp_close
+EXPORT_SYMBOL vmlinux 0xbd48e2a2 pcim_iomap
+EXPORT_SYMBOL vmlinux 0xbd492ca8 tty_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xbd50163d blkdev_fsync
+EXPORT_SYMBOL vmlinux 0xbd686d67 vio_ldc_send
+EXPORT_SYMBOL vmlinux 0xbd6c569b generic_make_request
+EXPORT_SYMBOL vmlinux 0xbdc2bd14 nf_unregister_hook
+EXPORT_SYMBOL vmlinux 0xbdcf72c6 qdisc_warn_nonwc
+EXPORT_SYMBOL vmlinux 0xbdf5c25c rb_next
+EXPORT_SYMBOL vmlinux 0xbe633515 _raw_spin_lock_irqsave
+EXPORT_SYMBOL vmlinux 0xbe699e63 pm860x_set_bits
+EXPORT_SYMBOL vmlinux 0xbe9fffae scsi_get_device_flags_keyed
+EXPORT_SYMBOL vmlinux 0xbeb81a1a mapping_tagged
+EXPORT_SYMBOL vmlinux 0xbecc52fd may_umount_tree
+EXPORT_SYMBOL vmlinux 0xbed604cd kthread_stop
+EXPORT_SYMBOL vmlinux 0xbedeb2cf journal_stop
+EXPORT_SYMBOL vmlinux 0xbee00b99 ftrace_print_symbols_seq
+EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule
+EXPORT_SYMBOL vmlinux 0xbf487f89 scsi_allocate_command
+EXPORT_SYMBOL vmlinux 0xbf4fa267 jbd2_journal_check_used_features
+EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable
+EXPORT_SYMBOL vmlinux 0xbf993764 __memscan_zero
+EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set
+EXPORT_SYMBOL vmlinux 0xbfafc234 dcache_dir_close
+EXPORT_SYMBOL vmlinux 0xbfcb0e34 tty_port_alloc_xmit_buf
+EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer
+EXPORT_SYMBOL vmlinux 0xc003c637 __strncpy_from_user
+EXPORT_SYMBOL vmlinux 0xc0119fa7 page_follow_link_light
+EXPORT_SYMBOL vmlinux 0xc012e5d0 tty_pair_get_pty
+EXPORT_SYMBOL vmlinux 0xc0230f7a add_timer
+EXPORT_SYMBOL vmlinux 0xc043eafc alloc_file
+EXPORT_SYMBOL vmlinux 0xc0533406 ip_nat_decode_session
+EXPORT_SYMBOL vmlinux 0xc080eb9b drm_gem_object_handle_free
+EXPORT_SYMBOL vmlinux 0xc081ee5e nobh_truncate_page
+EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write
+EXPORT_SYMBOL vmlinux 0xc086dc27 pci_release_selected_regions
+EXPORT_SYMBOL vmlinux 0xc09651d9 crc32_be
+EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit
+EXPORT_SYMBOL vmlinux 0xc0c83301 tty_port_tty_set
+EXPORT_SYMBOL vmlinux 0xc0de48f7 jbd2_journal_stop
+EXPORT_SYMBOL vmlinux 0xc15e073c generic_find_next_zero_le_bit
+EXPORT_SYMBOL vmlinux 0xc15fb5b5 kill_anon_super
+EXPORT_SYMBOL vmlinux 0xc161edda __kfifo_out_generic
+EXPORT_SYMBOL vmlinux 0xc1ba591f ethtool_ntuple_flush
+EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush
+EXPORT_SYMBOL vmlinux 0xc1d017ca dmam_free_noncoherent
+EXPORT_SYMBOL vmlinux 0xc1da48c2 jbd2_journal_check_available_features
+EXPORT_SYMBOL vmlinux 0xc1e9a4d3 ip_route_me_harder
+EXPORT_SYMBOL vmlinux 0xc1ee17ca test_and_change_bit
+EXPORT_SYMBOL vmlinux 0xc2189bbd iput
+EXPORT_SYMBOL vmlinux 0xc22bf87a udp_lib_setsockopt
+EXPORT_SYMBOL vmlinux 0xc2327422 tty_check_change
+EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal
+EXPORT_SYMBOL vmlinux 0xc28ed495 nf_log_unregister
+EXPORT_SYMBOL vmlinux 0xc292bfac kernel_sock_shutdown
+EXPORT_SYMBOL vmlinux 0xc29ee4b2 dst_destroy
+EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices
+EXPORT_SYMBOL vmlinux 0xc2e5fa47 vfs_create
+EXPORT_SYMBOL vmlinux 0xc32ac692 genl_register_ops
+EXPORT_SYMBOL vmlinux 0xc33f6f4c on_each_cpu
+EXPORT_SYMBOL vmlinux 0xc3529d83 __breadahead
+EXPORT_SYMBOL vmlinux 0xc3863e77 netif_device_detach
+EXPORT_SYMBOL vmlinux 0xc38c4ca2 PAGE_SHARED
+EXPORT_SYMBOL vmlinux 0xc3b6100c sk_stream_wait_memory
+EXPORT_SYMBOL vmlinux 0xc3c09e91 flush_dcache_page
+EXPORT_SYMBOL vmlinux 0xc3d08eb0 scsi_dma_map
+EXPORT_SYMBOL vmlinux 0xc3d6c3ff downgrade_write
+EXPORT_SYMBOL vmlinux 0xc3ee5be4 compat_sock_common_setsockopt
+EXPORT_SYMBOL vmlinux 0xc3f9c329 netlink_rcv_skb
+EXPORT_SYMBOL vmlinux 0xc40c9ed9 alloc_disk_node
+EXPORT_SYMBOL vmlinux 0xc424f2b0 blk_queue_resize_tags
+EXPORT_SYMBOL vmlinux 0xc4409c0f setup_arg_pages
+EXPORT_SYMBOL vmlinux 0xc446f3f6 filemap_fdatawait
+EXPORT_SYMBOL vmlinux 0xc4657f32 log_wait_commit
+EXPORT_SYMBOL vmlinux 0xc46fd255 security_path_chown
+EXPORT_SYMBOL vmlinux 0xc47fcc6e kick_iocb
+EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup
+EXPORT_SYMBOL vmlinux 0xc4c066cb genlmsg_multicast_allns
+EXPORT_SYMBOL vmlinux 0xc4d693d8 journal_start_commit
+EXPORT_SYMBOL vmlinux 0xc4e4df70 __kfifo_peek_generic
+EXPORT_SYMBOL vmlinux 0xc4f3ca82 bd_set_size
+EXPORT_SYMBOL vmlinux 0xc508f5c6 get_io_context
+EXPORT_SYMBOL vmlinux 0xc52f5714 fb_videomode_to_var
+EXPORT_SYMBOL vmlinux 0xc548001f __generic_file_aio_write
+EXPORT_SYMBOL vmlinux 0xc55a5bdf xfrm_user_policy
+EXPORT_SYMBOL vmlinux 0xc5815104 _raw_spin_trylock_bh
+EXPORT_SYMBOL vmlinux 0xc59195d4 dev_addr_del_multiple
+EXPORT_SYMBOL vmlinux 0xc59c017e dmam_pool_destroy
+EXPORT_SYMBOL vmlinux 0xc5cbe9c7 set_security_override_from_ctx
+EXPORT_SYMBOL vmlinux 0xc5f73c3f scm_detach_fds
+EXPORT_SYMBOL vmlinux 0xc6096bda rtnl_set_sk_err
+EXPORT_SYMBOL vmlinux 0xc60ede1e block_commit_write
+EXPORT_SYMBOL vmlinux 0xc60f42e1 gen_pool_create
+EXPORT_SYMBOL vmlinux 0xc6200a9c unmap_mapping_range
+EXPORT_SYMBOL vmlinux 0xc6263196 proc_dointvec_jiffies
+EXPORT_SYMBOL vmlinux 0xc6327b65 sun4v_chip_type
+EXPORT_SYMBOL vmlinux 0xc64b96d5 single_release
+EXPORT_SYMBOL vmlinux 0xc66fb0f4 pci_save_state
+EXPORT_SYMBOL vmlinux 0xc6a87e4b open_by_devnum
+EXPORT_SYMBOL vmlinux 0xc6b95649 journal_wipe
+EXPORT_SYMBOL vmlinux 0xc6ba4b32 skb_unlink
+EXPORT_SYMBOL vmlinux 0xc6c511a4 tty_pair_get_tty
+EXPORT_SYMBOL vmlinux 0xc6cf1917 drm_i2c_encoder_destroy
+EXPORT_SYMBOL vmlinux 0xc6d33bbf vc_cons
+EXPORT_SYMBOL vmlinux 0xc6d3b21f writeback_inodes_sb_if_idle
+EXPORT_SYMBOL vmlinux 0xc717c49d pci_get_domain_bus_and_slot
+EXPORT_SYMBOL vmlinux 0xc71f4811 tcp_splice_read
+EXPORT_SYMBOL vmlinux 0xc72021ed xfrm_init_state
+EXPORT_SYMBOL vmlinux 0xc740c64a memchr
+EXPORT_SYMBOL vmlinux 0xc74ba621 i2c_put_adapter
+EXPORT_SYMBOL vmlinux 0xc77f152e dev_set_mtu
+EXPORT_SYMBOL vmlinux 0xc77f61c7 dquot_operations
+EXPORT_SYMBOL vmlinux 0xc7891a50 genphy_update_link
+EXPORT_SYMBOL vmlinux 0xc78b4f1a iw_handler_set_thrspy
+EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc
+EXPORT_SYMBOL vmlinux 0xc7a24d76 sysfs_format_mac
+EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock
+EXPORT_SYMBOL vmlinux 0xc7bc5afa padata_do_parallel
+EXPORT_SYMBOL vmlinux 0xc7bd936f tcp_v4_destroy_sock
+EXPORT_SYMBOL vmlinux 0xc7e154d8 tty_port_block_til_ready
+EXPORT_SYMBOL vmlinux 0xc7e9820f phy_start
+EXPORT_SYMBOL vmlinux 0xc7ec28b0 memcmp
+EXPORT_SYMBOL vmlinux 0xc7f5ecae set_binfmt
+EXPORT_SYMBOL vmlinux 0xc7f7475d __inet6_hash
+EXPORT_SYMBOL vmlinux 0xc8054735 cap_netlink_recv
+EXPORT_SYMBOL vmlinux 0xc80b8d9c scsi_ioctl
+EXPORT_SYMBOL vmlinux 0xc811aea5 drm_mode_prune_invalid
+EXPORT_SYMBOL vmlinux 0xc830add6 input_register_device
+EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu
+EXPORT_SYMBOL vmlinux 0xc85485a6 __skb_warn_lro_forwarding
+EXPORT_SYMBOL vmlinux 0xc8664493 starget_for_each_device
+EXPORT_SYMBOL vmlinux 0xc87823bf twl_i2c_read_u8
+EXPORT_SYMBOL vmlinux 0xc88bce70 pcibios_resource_to_bus
+EXPORT_SYMBOL vmlinux 0xc891b5b9 log_start_commit
+EXPORT_SYMBOL vmlinux 0xc8b29791 try_to_release_page
+EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function
+EXPORT_SYMBOL vmlinux 0xc8d20b79 kblockd_schedule_work
+EXPORT_SYMBOL vmlinux 0xc8d6f1ee xfrm_register_type
+EXPORT_SYMBOL vmlinux 0xc8f66169 dst_alloc
+EXPORT_SYMBOL vmlinux 0xc94f1fd9 iget_failed
+EXPORT_SYMBOL vmlinux 0xc95da04f drm_addbufs_pci
+EXPORT_SYMBOL vmlinux 0xc960ff84 block_write_end
+EXPORT_SYMBOL vmlinux 0xc97d93df drm_vblank_init
+EXPORT_SYMBOL vmlinux 0xc997d29f simple_write_begin
+EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev
+EXPORT_SYMBOL vmlinux 0xc9bb8df3 init_timer_deferrable_key
+EXPORT_SYMBOL vmlinux 0xc9de026c dquot_get_dqblk
+EXPORT_SYMBOL vmlinux 0xc9efa330 skb_clone
+EXPORT_SYMBOL vmlinux 0xc9f1459c iw_handler_set_spy
+EXPORT_SYMBOL vmlinux 0xca1b0fd4 sb_set_blocksize
+EXPORT_SYMBOL vmlinux 0xca1e3fb6 skb_copy_datagram_const_iovec
+EXPORT_SYMBOL vmlinux 0xca4b79f5 get_disk
+EXPORT_SYMBOL vmlinux 0xca50c05a elv_dispatch_add_tail
+EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr
+EXPORT_SYMBOL vmlinux 0xca94dc19 skb_checksum
+EXPORT_SYMBOL vmlinux 0xcabbb30c _unlock_kernel
+EXPORT_SYMBOL vmlinux 0xcaea8489 skb_make_writable
+EXPORT_SYMBOL vmlinux 0xcafc70e9 xfrm_lookup
+EXPORT_SYMBOL vmlinux 0xcb29915b unregister_framebuffer
+EXPORT_SYMBOL vmlinux 0xcb652f64 ip_fragment
+EXPORT_SYMBOL vmlinux 0xcb7131fb fb_get_options
+EXPORT_SYMBOL vmlinux 0xcb774a56 input_grab_device
+EXPORT_SYMBOL vmlinux 0xcb92ba00 get_fs_type
+EXPORT_SYMBOL vmlinux 0xcb9c0d91 sg_miter_stop
+EXPORT_SYMBOL vmlinux 0xcba7acfe netlink_kernel_release
+EXPORT_SYMBOL vmlinux 0xcbb959eb misc_register
+EXPORT_SYMBOL vmlinux 0xcbc9cad9 uart_remove_one_port
+EXPORT_SYMBOL vmlinux 0xcbe15f7e netdev_class_create_file
+EXPORT_SYMBOL vmlinux 0xcbed56f8 textsearch_find_continuous
+EXPORT_SYMBOL vmlinux 0xcbfec905 netlink_set_err
+EXPORT_SYMBOL vmlinux 0xcc0259b9 blk_queue_start_tag
+EXPORT_SYMBOL vmlinux 0xcc07af75 strnlen
+EXPORT_SYMBOL vmlinux 0xcc0e8868 qdisc_class_hash_grow
+EXPORT_SYMBOL vmlinux 0xcc1471dc security_sb_set_mnt_opts
+EXPORT_SYMBOL vmlinux 0xcc14eda8 ipv4_specific
+EXPORT_SYMBOL vmlinux 0xcc36f32e fb_unregister_client
+EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible
+EXPORT_SYMBOL vmlinux 0xcc579e16 skb_set_dev
+EXPORT_SYMBOL vmlinux 0xcc604ed1 __up_read
+EXPORT_SYMBOL vmlinux 0xcc654d60 dq_data_lock
+EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip
+EXPORT_SYMBOL vmlinux 0xcc82777c sk_release_kernel
+EXPORT_SYMBOL vmlinux 0xcca572ab tty_std_termios
+EXPORT_SYMBOL vmlinux 0xccdf1ee3 mb_cache_entry_alloc
+EXPORT_SYMBOL vmlinux 0xcce6ec4b try_to_del_timer_sync
+EXPORT_SYMBOL vmlinux 0xcd05fddc block_prepare_write
+EXPORT_SYMBOL vmlinux 0xcd29c5b8 textsearch_register
+EXPORT_SYMBOL vmlinux 0xcd4fcc95 fasync_helper
+EXPORT_SYMBOL vmlinux 0xcd83e0e0 i2c_del_driver
+EXPORT_SYMBOL vmlinux 0xcd95054a rfkill_set_hw_state
+EXPORT_SYMBOL vmlinux 0xcdc56c56 jbd2_journal_restart
+EXPORT_SYMBOL vmlinux 0xcdf2eff4 drm_mode_height
+EXPORT_SYMBOL vmlinux 0xcdf7aaee pci_find_capability
+EXPORT_SYMBOL vmlinux 0xce10d743 devm_ioport_map
+EXPORT_SYMBOL vmlinux 0xce36ded6 sysctl_tcp_mem
+EXPORT_SYMBOL vmlinux 0xce392a7c padata_alloc
+EXPORT_SYMBOL vmlinux 0xce4b036e sync_mapping_buffers
+EXPORT_SYMBOL vmlinux 0xce4e1d53 create_proc_entry
+EXPORT_SYMBOL vmlinux 0xce573de3 nf_register_queue_handler
+EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize
+EXPORT_SYMBOL vmlinux 0xce8c4dda bd_release
+EXPORT_SYMBOL vmlinux 0xcea84103 padata_stop
+EXPORT_SYMBOL vmlinux 0xceba797c security_path_rename
+EXPORT_SYMBOL vmlinux 0xcebfe4b2 tcp_rcv_established
+EXPORT_SYMBOL vmlinux 0xcec4ec56 pci_vpd_truncate
+EXPORT_SYMBOL vmlinux 0xcee7d36d get_super
+EXPORT_SYMBOL vmlinux 0xceeb15f0 filemap_fdatawrite_range
+EXPORT_SYMBOL vmlinux 0xceefbc6b register_sysctl_paths
+EXPORT_SYMBOL vmlinux 0xcefa62b8 atomic_add
+EXPORT_SYMBOL vmlinux 0xcf16162b drm_init
+EXPORT_SYMBOL vmlinux 0xcf30819f security_path_symlink
+EXPORT_SYMBOL vmlinux 0xcf414291 neigh_sysctl_register
+EXPORT_SYMBOL vmlinux 0xcf598100 bio_integrity_clone
+EXPORT_SYMBOL vmlinux 0xcf5e786e idr_get_next
+EXPORT_SYMBOL vmlinux 0xcf6afb24 module_refcount
+EXPORT_SYMBOL vmlinux 0xcf73f4bd drm_mode_config_init
+EXPORT_SYMBOL vmlinux 0xcf98940c notify_change
+EXPORT_SYMBOL vmlinux 0xcfd961bf iget_locked
+EXPORT_SYMBOL vmlinux 0xcfdacd02 i2c_smbus_read_block_data
+EXPORT_SYMBOL vmlinux 0xcfe13710 sparc64_get_clock_tick
+EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor
+EXPORT_SYMBOL vmlinux 0xd0293009 sync_inodes_sb
+EXPORT_SYMBOL vmlinux 0xd031fe21 bio_integrity_endio
+EXPORT_SYMBOL vmlinux 0xd0336734 block_write_full_page_endio
+EXPORT_SYMBOL vmlinux 0xd0393ae8 kmem_cache_size
+EXPORT_SYMBOL vmlinux 0xd03998af revert_creds
+EXPORT_SYMBOL vmlinux 0xd03aa109 tty_free_termios
+EXPORT_SYMBOL vmlinux 0xd047afa4 io_remap_pfn_range
+EXPORT_SYMBOL vmlinux 0xd05e4be2 mod_timer_pending
+EXPORT_SYMBOL vmlinux 0xd062107d mdesc_node_name
+EXPORT_SYMBOL vmlinux 0xd068f811 locks_init_lock
+EXPORT_SYMBOL vmlinux 0xd076e0b5 ldc_alloc_exp_dring
+EXPORT_SYMBOL vmlinux 0xd08fa3f0 drm_mode_set_crtcinfo
+EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces
+EXPORT_SYMBOL vmlinux 0xd0b621bd padata_remove_cpu
+EXPORT_SYMBOL vmlinux 0xd0be42ef blk_get_backing_dev_info
+EXPORT_SYMBOL vmlinux 0xd0bfee1e __scsi_device_lookup
+EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible
+EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first
+EXPORT_SYMBOL vmlinux 0xd1307f50 mutex_trylock
+EXPORT_SYMBOL vmlinux 0xd134f901 fb_class
+EXPORT_SYMBOL vmlinux 0xd144a3d4 jbd2_journal_start_commit
+EXPORT_SYMBOL vmlinux 0xd144f898 drm_property_create
+EXPORT_SYMBOL vmlinux 0xd15a489c __pci_register_driver
+EXPORT_SYMBOL vmlinux 0xd170c3f9 do_munmap
+EXPORT_SYMBOL vmlinux 0xd1831e6e call_usermodehelper_freeinfo
+EXPORT_SYMBOL vmlinux 0xd185b775 blk_register_region
+EXPORT_SYMBOL vmlinux 0xd19f11a1 pci_bus_read_config_word
+EXPORT_SYMBOL vmlinux 0xd1af47f7 blk_execute_rq
+EXPORT_SYMBOL vmlinux 0xd2277f15 gnet_stats_copy_queue
+EXPORT_SYMBOL vmlinux 0xd238eda3 _lock_kernel
+EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram
+EXPORT_SYMBOL vmlinux 0xd2551432 set_anon_super
+EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t
+EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook
+EXPORT_SYMBOL vmlinux 0xd262bb38 kfree_skb
+EXPORT_SYMBOL vmlinux 0xd2829e65 generic_file_buffered_write
+EXPORT_SYMBOL vmlinux 0xd2874db0 drm_connector_property_set_value
+EXPORT_SYMBOL vmlinux 0xd2965f6f kthread_should_stop
+EXPORT_SYMBOL vmlinux 0xd29d9c7f __scm_send
+EXPORT_SYMBOL vmlinux 0xd2a941d4 sg_init_table
+EXPORT_SYMBOL vmlinux 0xd2ac1f72 pci_bus_add_devices
+EXPORT_SYMBOL vmlinux 0xd2afebc3 unbind_con_driver
+EXPORT_SYMBOL vmlinux 0xd2b88ff6 file_fsync
+EXPORT_SYMBOL vmlinux 0xd2cefa5c __neigh_for_each_release
+EXPORT_SYMBOL vmlinux 0xd2f05961 unlock_page
+EXPORT_SYMBOL vmlinux 0xd300d2cd tcp_poll
+EXPORT_SYMBOL vmlinux 0xd3028e75 drm_sman_set_manager
+EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible
+EXPORT_SYMBOL vmlinux 0xd34f5823 may_umount
+EXPORT_SYMBOL vmlinux 0xd3706396 bio_get_nr_vecs
+EXPORT_SYMBOL vmlinux 0xd3981b8a dev_mc_flush
+EXPORT_SYMBOL vmlinux 0xd39bad84 sg_miter_next
+EXPORT_SYMBOL vmlinux 0xd3af979c memdup_user
+EXPORT_SYMBOL vmlinux 0xd3b2b4ca sk_stream_wait_connect
+EXPORT_SYMBOL vmlinux 0xd3b5c8f8 tcp_v4_md5_do_del
+EXPORT_SYMBOL vmlinux 0xd3beea9c generic_pipe_buf_release
+EXPORT_SYMBOL vmlinux 0xd3c8ff46 xfrm_state_flush
+EXPORT_SYMBOL vmlinux 0xd3eeecd1 dma_ops
+EXPORT_SYMBOL vmlinux 0xd3ffab51 drm_ht_remove
+EXPORT_SYMBOL vmlinux 0xd3ffff3f aio_complete
+EXPORT_SYMBOL vmlinux 0xd400a1cf ip_defrag
+EXPORT_SYMBOL vmlinux 0xd40a3c64 i2c_del_adapter
+EXPORT_SYMBOL vmlinux 0xd40a9f2d jbd2_journal_blocks_per_page
+EXPORT_SYMBOL vmlinux 0xd40cb0a8 down_timeout
+EXPORT_SYMBOL vmlinux 0xd41fe818 _raw_read_unlock_irqrestore
+EXPORT_SYMBOL vmlinux 0xd453d173 drm_compat_ioctl
+EXPORT_SYMBOL vmlinux 0xd475d0fe mark_info_dirty
+EXPORT_SYMBOL vmlinux 0xd48e374b tcp_shutdown
+EXPORT_SYMBOL vmlinux 0xd49f1ef6 test_and_clear_bit
+EXPORT_SYMBOL vmlinux 0xd4d6aef2 kernel_setsockopt
+EXPORT_SYMBOL vmlinux 0xd4e5f172 xfrm_state_add
+EXPORT_SYMBOL vmlinux 0xd4efa341 inet_dgram_ops
+EXPORT_SYMBOL vmlinux 0xd4fae4e5 kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xd512d5cd sync_dirty_buffer
+EXPORT_SYMBOL vmlinux 0xd51f1a40 filemap_write_and_wait_range
+EXPORT_SYMBOL vmlinux 0xd521c443 abx500_register_ops
+EXPORT_SYMBOL vmlinux 0xd5263820 mb_cache_destroy
+EXPORT_SYMBOL vmlinux 0xd533c5ca dev_get_drvdata
+EXPORT_SYMBOL vmlinux 0xd5438d14 scsi_block_requests
+EXPORT_SYMBOL vmlinux 0xd55d2007 kfifo_out
+EXPORT_SYMBOL vmlinux 0xd5611da7 pci_scan_bridge
+EXPORT_SYMBOL vmlinux 0xd56ba0a0 sun4v_hvapi_register
+EXPORT_SYMBOL vmlinux 0xd57f8789 iommu_num_pages
+EXPORT_SYMBOL vmlinux 0xd5a82d77 dev_addr_init
+EXPORT_SYMBOL vmlinux 0xd5b037e1 kref_put
+EXPORT_SYMBOL vmlinux 0xd5d8dcf9 noop_fsync
+EXPORT_SYMBOL vmlinux 0xd5f5b83e uart_write_wakeup
+EXPORT_SYMBOL vmlinux 0xd603c224 kmem_ptr_validate
+EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout
+EXPORT_SYMBOL vmlinux 0xd635d134 rb_last
+EXPORT_SYMBOL vmlinux 0xd63d6819 drm_core_get_map_ofs
+EXPORT_SYMBOL vmlinux 0xd63dfc8b _raw_spin_trylock
+EXPORT_SYMBOL vmlinux 0xd64352f4 bmap
+EXPORT_SYMBOL vmlinux 0xd65589c1 input_handler_for_each_handle
+EXPORT_SYMBOL vmlinux 0xd6768621 do_mmap_pgoff
+EXPORT_SYMBOL vmlinux 0xd68db528 abx500_remove_ops
+EXPORT_SYMBOL vmlinux 0xd6a051ac of_find_node_with_property
+EXPORT_SYMBOL vmlinux 0xd6a78d08 smp_call_function_single
+EXPORT_SYMBOL vmlinux 0xd6af54f3 compat_sock_common_getsockopt
+EXPORT_SYMBOL vmlinux 0xd6c65ac5 sock_wake_async
+EXPORT_SYMBOL vmlinux 0xd6d33013 deny_write_access
+EXPORT_SYMBOL vmlinux 0xd6e0f6fd xfrm_policy_flush
+EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc
+EXPORT_SYMBOL vmlinux 0xd6f0f559 idprom
+EXPORT_SYMBOL vmlinux 0xd6f97ca1 rb_first
+EXPORT_SYMBOL vmlinux 0xd70aa125 dm_table_get_md
+EXPORT_SYMBOL vmlinux 0xd714cabb i2c_smbus_read_word_data
+EXPORT_SYMBOL vmlinux 0xd7196ef4 drm_mode_validate_size
+EXPORT_SYMBOL vmlinux 0xd71a46c5 journal_start
+EXPORT_SYMBOL vmlinux 0xd722745a generic_file_llseek_unlocked
+EXPORT_SYMBOL vmlinux 0xd75073c6 dquot_enable
+EXPORT_SYMBOL vmlinux 0xd7627ec9 dm_io_client_create
+EXPORT_SYMBOL vmlinux 0xd771e16e compat_sock_get_timestamp
+EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and
+EXPORT_SYMBOL vmlinux 0xd77b6794 mempool_create
+EXPORT_SYMBOL vmlinux 0xd77f8d28 kobject_del
+EXPORT_SYMBOL vmlinux 0xd78fe84a drm_read
+EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal
+EXPORT_SYMBOL vmlinux 0xd7a092ed seq_escape
+EXPORT_SYMBOL vmlinux 0xd7ac3ec2 i2c_add_adapter
+EXPORT_SYMBOL vmlinux 0xd7bd82df vm_insert_page
+EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll
+EXPORT_SYMBOL vmlinux 0xd82193bf inode_add_rsv_space
+EXPORT_SYMBOL vmlinux 0xd8241cf4 bdi_register_dev
+EXPORT_SYMBOL vmlinux 0xd824d5e6 compat_mc_setsockopt
+EXPORT_SYMBOL vmlinux 0xd83f1c9f thaw_bdev
+EXPORT_SYMBOL vmlinux 0xd84a5041 kfifo_from_user
+EXPORT_SYMBOL vmlinux 0xd87628d4 xfrm_find_acq
+EXPORT_SYMBOL vmlinux 0xd895957a inet_accept
+EXPORT_SYMBOL vmlinux 0xd8959f23 auxio_set_led
+EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone
+EXPORT_SYMBOL vmlinux 0xd8e445ec journal_force_commit_nested
+EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region
+EXPORT_SYMBOL vmlinux 0xd90ead39 scsi_device_lookup_by_target
+EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear
+EXPORT_SYMBOL vmlinux 0xd95e88e6 inet_frags_init
+EXPORT_SYMBOL vmlinux 0xd970da64 tty_shutdown
+EXPORT_SYMBOL vmlinux 0xd97dc6b6 vio_validate_sid
+EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages
+EXPORT_SYMBOL vmlinux 0xd99ac4ae otg_put_transceiver
+EXPORT_SYMBOL vmlinux 0xd9a42b90 i2c_smbus_read_byte
+EXPORT_SYMBOL vmlinux 0xd9a71732 tc_classify
+EXPORT_SYMBOL vmlinux 0xd9ae4489 input_set_capability
+EXPORT_SYMBOL vmlinux 0xd9c3639a pci_request_region
+EXPORT_SYMBOL vmlinux 0xd9e7e596 dquot_destroy
+EXPORT_SYMBOL vmlinux 0xda1a7335 kasprintf
+EXPORT_SYMBOL vmlinux 0xda231e62 xfrm_state_alloc
+EXPORT_SYMBOL vmlinux 0xda3d2c3c prom_feval
+EXPORT_SYMBOL vmlinux 0xda4629e4 radix_tree_insert
+EXPORT_SYMBOL vmlinux 0xda4aab47 tcf_exts_dump_stats
+EXPORT_SYMBOL vmlinux 0xda6beefb napi_frags_finish
+EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal
+EXPORT_SYMBOL vmlinux 0xda81231c drm_ati_pcigart_init
+EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode
+EXPORT_SYMBOL vmlinux 0xda8cdc8b nobh_write_end
+EXPORT_SYMBOL vmlinux 0xdaae931f dm_register_target
+EXPORT_SYMBOL vmlinux 0xdacd0afc journal_flush
+EXPORT_SYMBOL vmlinux 0xdaceaf3a sock_create
+EXPORT_SYMBOL vmlinux 0xdae47010 idr_destroy
+EXPORT_SYMBOL vmlinux 0xdaffcd18 mdesc_arc_target
+EXPORT_SYMBOL vmlinux 0xdb133315 kernel_getsockname
+EXPORT_SYMBOL vmlinux 0xdb30c1ba pci_choose_state
+EXPORT_SYMBOL vmlinux 0xdb3779fc compat_sock_get_timestampns
+EXPORT_SYMBOL vmlinux 0xdb6e47a7 xfrm_policy_insert
+EXPORT_SYMBOL vmlinux 0xdb7304cd module_put
+EXPORT_SYMBOL vmlinux 0xdbb9850a lock_fb_info
+EXPORT_SYMBOL vmlinux 0xdbba534d bd_claim
+EXPORT_SYMBOL vmlinux 0xdbc32080 tcp_get_md5sig_pool
+EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind
+EXPORT_SYMBOL vmlinux 0xdbe8e371 padata_set_cpumask
+EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed
+EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems
+EXPORT_SYMBOL vmlinux 0xdc203312 drm_master_get
+EXPORT_SYMBOL vmlinux 0xdc28be8c security_inode_setsecctx
+EXPORT_SYMBOL vmlinux 0xdc2adb35 add_taint
+EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8
+EXPORT_SYMBOL vmlinux 0xdc43a9c8 daemonize
+EXPORT_SYMBOL vmlinux 0xdc9aaa20 ip_ct_attach
+EXPORT_SYMBOL vmlinux 0xdca0e950 genl_register_family
+EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close
+EXPORT_SYMBOL vmlinux 0xdcb5671d strlen
+EXPORT_SYMBOL vmlinux 0xdcd75828 blk_unplug
+EXPORT_SYMBOL vmlinux 0xdcf8954e blk_rq_map_user
+EXPORT_SYMBOL vmlinux 0xdcf9b578 prepare_to_wait_exclusive
+EXPORT_SYMBOL vmlinux 0xdd1197c8 xor_vis_3
+EXPORT_SYMBOL vmlinux 0xdd49095c drm_ht_insert_item
+EXPORT_SYMBOL vmlinux 0xdd5e3457 tcp_init_xmit_timers
+EXPORT_SYMBOL vmlinux 0xdd6bdfe0 secpath_dup
+EXPORT_SYMBOL vmlinux 0xddb7cb10 get_sb_single
+EXPORT_SYMBOL vmlinux 0xddd0635b __sk_mem_reclaim
+EXPORT_SYMBOL vmlinux 0xddd1c502 fddi_type_trans
+EXPORT_SYMBOL vmlinux 0xdde2faa5 tty_kref_put
+EXPORT_SYMBOL vmlinux 0xde074198 sk_reset_timer
+EXPORT_SYMBOL vmlinux 0xde08b05e dquot_commit_info
+EXPORT_SYMBOL vmlinux 0xde1f416b ldc_disconnect
+EXPORT_SYMBOL vmlinux 0xde20bfbe __skb_checksum_complete_head
+EXPORT_SYMBOL vmlinux 0xde413ca8 mb_cache_entry_insert
+EXPORT_SYMBOL vmlinux 0xde589e60 xor_vis_2
+EXPORT_SYMBOL vmlinux 0xde704f4d inet_sendmsg
+EXPORT_SYMBOL vmlinux 0xde73d96f alloc_tty_driver
+EXPORT_SYMBOL vmlinux 0xde7502a8 PAGE_KERNEL
+EXPORT_SYMBOL vmlinux 0xde75b689 set_irq_type
+EXPORT_SYMBOL vmlinux 0xde7caeca dma_async_memcpy_pg_to_pg
+EXPORT_SYMBOL vmlinux 0xde7d434f generic_pipe_buf_get
+EXPORT_SYMBOL vmlinux 0xde8fb51d inet_bind
+EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages
+EXPORT_SYMBOL vmlinux 0xdf105938 xfrm_state_register_afinfo
+EXPORT_SYMBOL vmlinux 0xdf19b46b scsi_is_target_device
+EXPORT_SYMBOL vmlinux 0xdf204458 ab3100_event_unregister
+EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol
+EXPORT_SYMBOL vmlinux 0xdf7738bf udp_disconnect
+EXPORT_SYMBOL vmlinux 0xdf864326 jbd2_journal_set_features
+EXPORT_SYMBOL vmlinux 0xdf8e6c20 napi_complete
+EXPORT_SYMBOL vmlinux 0xdf8fef53 prom_getproplen
+EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid
+EXPORT_SYMBOL vmlinux 0xdfb7c842 node_states
+EXPORT_SYMBOL vmlinux 0xdfd8e462 inet_stream_connect
+EXPORT_SYMBOL vmlinux 0xdff13604 rwsem_wake
+EXPORT_SYMBOL vmlinux 0xdff181c7 mb_cache_entry_find_next
+EXPORT_SYMBOL vmlinux 0xdffc0139 drm_debugfs_remove_files
+EXPORT_SYMBOL vmlinux 0xe062afcb fbcon_set_tileops
+EXPORT_SYMBOL vmlinux 0xe06e4199 cpu_all_bits
+EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem
+EXPORT_SYMBOL vmlinux 0xe08004e1 drm_mm_init
+EXPORT_SYMBOL vmlinux 0xe094ef39 sg_next
+EXPORT_SYMBOL vmlinux 0xe0973442 ioctl_by_bdev
+EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free
+EXPORT_SYMBOL vmlinux 0xe0bc24a1 param_set_ushort
+EXPORT_SYMBOL vmlinux 0xe0bc4fb2 simple_write_to_buffer
+EXPORT_SYMBOL vmlinux 0xe0ca8ec4 mutex_lock
+EXPORT_SYMBOL vmlinux 0xe0d0cb43 inet_frag_evictor
+EXPORT_SYMBOL vmlinux 0xe0dcb911 smp_call_function_many
+EXPORT_SYMBOL vmlinux 0xe0efc2e2 tty_port_raise_dtr_rts
+EXPORT_SYMBOL vmlinux 0xe11244a1 elv_rq_merge_ok
+EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial
+EXPORT_SYMBOL vmlinux 0xe11eb5fa bio_pair_release
+EXPORT_SYMBOL vmlinux 0xe11f3cbc _raw_read_lock_bh
+EXPORT_SYMBOL vmlinux 0xe133fad5 warn_slowpath_fmt_taint
+EXPORT_SYMBOL vmlinux 0xe1382e4c set_create_files_as
+EXPORT_SYMBOL vmlinux 0xe1457735 drm_ht_remove_item
+EXPORT_SYMBOL vmlinux 0xe1552609 skb_gro_reset_offset
+EXPORT_SYMBOL vmlinux 0xe159cdf5 blk_remove_plug
+EXPORT_SYMBOL vmlinux 0xe1628c32 netif_stacked_transfer_operstate
+EXPORT_SYMBOL vmlinux 0xe171a1af i2c_smbus_write_byte_data
+EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request
+EXPORT_SYMBOL vmlinux 0xe19b7ace __xfrm_state_destroy
+EXPORT_SYMBOL vmlinux 0xe1aff174 security_path_mkdir
+EXPORT_SYMBOL vmlinux 0xe1c12e8b default_file_splice_read
+EXPORT_SYMBOL vmlinux 0xe1e2a991 ip_mc_rejoin_group
+EXPORT_SYMBOL vmlinux 0xe22b7eaa key_negate_and_link
+EXPORT_SYMBOL vmlinux 0xe2304303 mac_map_monitor_sense
+EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe24050c7 scnprintf
+EXPORT_SYMBOL vmlinux 0xe247f1ba fsnotify_put_mark
+EXPORT_SYMBOL vmlinux 0xe24a7b88 drm_ht_find_item
+EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64
+EXPORT_SYMBOL vmlinux 0xe25e4441 page_symlink_inode_operations
+EXPORT_SYMBOL vmlinux 0xe27d8917 __mutex_init
+EXPORT_SYMBOL vmlinux 0xe2ac4435 task_nice
+EXPORT_SYMBOL vmlinux 0xe2beecfd mnt_pin
+EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp
+EXPORT_SYMBOL vmlinux 0xe2fba108 netpoll_parse_options
+EXPORT_SYMBOL vmlinux 0xe3110320 clocksource_register
+EXPORT_SYMBOL vmlinux 0xe32449c2 of_phy_find_device
+EXPORT_SYMBOL vmlinux 0xe33530a0 get_phy_device
+EXPORT_SYMBOL vmlinux 0xe396d740 eth_rebuild_header
+EXPORT_SYMBOL vmlinux 0xe3b0192b vscnprintf
+EXPORT_SYMBOL vmlinux 0xe3b85cf8 irq_of_parse_and_map
+EXPORT_SYMBOL vmlinux 0xe3cf20bb max8925_reg_write
+EXPORT_SYMBOL vmlinux 0xe3e12008 __first_cpu
+EXPORT_SYMBOL vmlinux 0xe3e60c1a tcp_disconnect
+EXPORT_SYMBOL vmlinux 0xe3f46a1a alloc_buffer_head
+EXPORT_SYMBOL vmlinux 0xe440ce3b sk_free
+EXPORT_SYMBOL vmlinux 0xe4472146 _raw_spin_lock_bh
+EXPORT_SYMBOL vmlinux 0xe467cf85 wait_for_key_construction
+EXPORT_SYMBOL vmlinux 0xe4a2e82b task_tgid_nr_ns
+EXPORT_SYMBOL vmlinux 0xe4c4280d max8925_bulk_read
+EXPORT_SYMBOL vmlinux 0xe4dde206 security_inode_init_security
+EXPORT_SYMBOL vmlinux 0xe4f0780e jbd2_journal_init_dev
+EXPORT_SYMBOL vmlinux 0xe4f6bceb tty_port_open
+EXPORT_SYMBOL vmlinux 0xe4f6d578 of_dev_get
+EXPORT_SYMBOL vmlinux 0xe50ddab6 slow_work_sleep_till_thread_needed
+EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid
+EXPORT_SYMBOL vmlinux 0xe51455c9 set_groups
+EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq
+EXPORT_SYMBOL vmlinux 0xe54b05f2 send_sig
+EXPORT_SYMBOL vmlinux 0xe55b1c4b dquot_quota_off
+EXPORT_SYMBOL vmlinux 0xe572c187 vlan_gro_receive
+EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton
+EXPORT_SYMBOL vmlinux 0xe57b02b3 vfs_llseek
+EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set
+EXPORT_SYMBOL vmlinux 0xe5bdce7e drm_mode_debug_printmodeline
+EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen
+EXPORT_SYMBOL vmlinux 0xe5dd27b1 brioctl_set
+EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init
+EXPORT_SYMBOL vmlinux 0xe5fb8f90 path_get
+EXPORT_SYMBOL vmlinux 0xe6060395 create_empty_buffers
+EXPORT_SYMBOL vmlinux 0xe6078a7e blk_queue_stack_limits
+EXPORT_SYMBOL vmlinux 0xe6117ab7 compat_tcp_getsockopt
+EXPORT_SYMBOL vmlinux 0xe614ffdd compat_tcp_setsockopt
+EXPORT_SYMBOL vmlinux 0xe622b28f pskb_copy
+EXPORT_SYMBOL vmlinux 0xe62b86a6 posix_unblock_lock
+EXPORT_SYMBOL vmlinux 0xe630e4af max8925_bulk_write
+EXPORT_SYMBOL vmlinux 0xe6383dec noop_llseek
+EXPORT_SYMBOL vmlinux 0xe63b3c3b vio_ldc_alloc
+EXPORT_SYMBOL vmlinux 0xe645235e input_unregister_handle
+EXPORT_SYMBOL vmlinux 0xe66ac0f7 tcf_action_exec
+EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete
+EXPORT_SYMBOL vmlinux 0xe6baad2e xfrm_policy_alloc
+EXPORT_SYMBOL vmlinux 0xe6dc12ab scsi_prep_state_check
+EXPORT_SYMBOL vmlinux 0xe6ed4e98 ab3100_event_register
+EXPORT_SYMBOL vmlinux 0xe6f47ade pci_match_id
+EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock
+EXPORT_SYMBOL vmlinux 0xe70c80c0 scsi_print_command
+EXPORT_SYMBOL vmlinux 0xe727e6c3 ftrace_print_flags_seq
+EXPORT_SYMBOL vmlinux 0xe74adc79 d_add_ci
+EXPORT_SYMBOL vmlinux 0xe768aa3c __blockdev_direct_IO
+EXPORT_SYMBOL vmlinux 0xe76f1d5d proc_symlink
+EXPORT_SYMBOL vmlinux 0xe782899e prom_searchsiblings
+EXPORT_SYMBOL vmlinux 0xe7a1791c of_platform_bus_type
+EXPORT_SYMBOL vmlinux 0xe7af2186 jbd2_journal_extend
+EXPORT_SYMBOL vmlinux 0xe7b6f3b4 sk_send_sigurg
+EXPORT_SYMBOL vmlinux 0xe7d0f58c tcp_recvmsg
+EXPORT_SYMBOL vmlinux 0xe7d2aca1 security_sk_classify_flow
+EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next
+EXPORT_SYMBOL vmlinux 0xe7d9af8f pci_bus_read_config_dword
+EXPORT_SYMBOL vmlinux 0xe7f343bd mdiobus_unregister
+EXPORT_SYMBOL vmlinux 0xe80cc0e7 no_llseek
+EXPORT_SYMBOL vmlinux 0xe8116e08 __kmalloc_node
+EXPORT_SYMBOL vmlinux 0xe81762db drm_get_edid
+EXPORT_SYMBOL vmlinux 0xe818eb57 bio_put
+EXPORT_SYMBOL vmlinux 0xe8356069 dcache_readdir
+EXPORT_SYMBOL vmlinux 0xe83f83ef dev_get_flags
+EXPORT_SYMBOL vmlinux 0xe856508f bio_clone
+EXPORT_SYMBOL vmlinux 0xe8583614 posix_acl_from_xattr
+EXPORT_SYMBOL vmlinux 0xe85e9baa dma_sync_wait
+EXPORT_SYMBOL vmlinux 0xe8698168 phy_ethtool_gset
+EXPORT_SYMBOL vmlinux 0xe87e2d71 dm_table_put
+EXPORT_SYMBOL vmlinux 0xe88cb7ef vfs_read
+EXPORT_SYMBOL vmlinux 0xe8b36045 phy_mii_ioctl
+EXPORT_SYMBOL vmlinux 0xe8c2a68a drm_get_dev
+EXPORT_SYMBOL vmlinux 0xe8dbafef __next_cpu
+EXPORT_SYMBOL vmlinux 0xe8dfcdf9 __csum_partial_copy_to_user
+EXPORT_SYMBOL vmlinux 0xe90aa4e9 rb_insert_color
+EXPORT_SYMBOL vmlinux 0xe90dcae0 __request_module
+EXPORT_SYMBOL vmlinux 0xe914e41e strcpy
+EXPORT_SYMBOL vmlinux 0xe919dd5c drm_sman_owner_clean
+EXPORT_SYMBOL vmlinux 0xe9215629 drm_get_resource_start
+EXPORT_SYMBOL vmlinux 0xe95fc7f0 lock_may_write
+EXPORT_SYMBOL vmlinux 0xe98c2ce4 journal_invalidatepage
+EXPORT_SYMBOL vmlinux 0xe99d0602 ldc_free_exp_dring
+EXPORT_SYMBOL vmlinux 0xe9d467af pci_domain_nr
+EXPORT_SYMBOL vmlinux 0xe9e3d873 udplite_table
+EXPORT_SYMBOL vmlinux 0xe9f6198b skb_store_bits
+EXPORT_SYMBOL vmlinux 0xe9f67727 dev_driver_string
+EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len
+EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun
+EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects
+EXPORT_SYMBOL vmlinux 0xea147363 printk
+EXPORT_SYMBOL vmlinux 0xea265ad9 bioset_create
+EXPORT_SYMBOL vmlinux 0xea3c143f test_set_page_writeback
+EXPORT_SYMBOL vmlinux 0xea8a26a0 pcim_iounmap
+EXPORT_SYMBOL vmlinux 0xeaaae985 cpu_sibling_map
+EXPORT_SYMBOL vmlinux 0xeab0095c tcf_hash_check
+EXPORT_SYMBOL vmlinux 0xeab508f4 ether_setup
+EXPORT_SYMBOL vmlinux 0xeab9c82a compat_ip_setsockopt
+EXPORT_SYMBOL vmlinux 0xeac44d10 neigh_seq_stop
+EXPORT_SYMBOL vmlinux 0xead58fb9 print_hex_dump
+EXPORT_SYMBOL vmlinux 0xeaf492aa read_cache_page_gfp
+EXPORT_SYMBOL vmlinux 0xeaf6f2ae dev_load
+EXPORT_SYMBOL vmlinux 0xeb013cae pci_request_selected_regions
+EXPORT_SYMBOL vmlinux 0xeb198bc2 i2c_bit_add_bus
+EXPORT_SYMBOL vmlinux 0xeb228272 posix_acl_create_masq
+EXPORT_SYMBOL vmlinux 0xeb30064c redirty_page_for_writepage
+EXPORT_SYMBOL vmlinux 0xeb463760 __serio_register_port
+EXPORT_SYMBOL vmlinux 0xeb65cd13 __down_write_trylock
+EXPORT_SYMBOL vmlinux 0xeb7f1db8 remove_from_page_cache
+EXPORT_SYMBOL vmlinux 0xeb862d23 __kfifo_in_n
+EXPORT_SYMBOL vmlinux 0xeb8fa17b blk_recount_segments
+EXPORT_SYMBOL vmlinux 0xeba97bba truncate_inode_pages
+EXPORT_SYMBOL vmlinux 0xebbf1dba strncasecmp
+EXPORT_SYMBOL vmlinux 0xebd273a6 strict_strtoull
+EXPORT_SYMBOL vmlinux 0xec01e45a mpage_readpages
+EXPORT_SYMBOL vmlinux 0xec05a34c shrink_dcache_sb
+EXPORT_SYMBOL vmlinux 0xec0703bf kobject_init
+EXPORT_SYMBOL vmlinux 0xec097bdb thaw_super
+EXPORT_SYMBOL vmlinux 0xec15f00a tcp_cookie_generator
+EXPORT_SYMBOL vmlinux 0xec1967b4 tty_insert_flip_string_flags
+EXPORT_SYMBOL vmlinux 0xec619c5d serio_interrupt
+EXPORT_SYMBOL vmlinux 0xec794ba0 __send_remote_softirq
+EXPORT_SYMBOL vmlinux 0xec845231 uart_get_baud_rate
+EXPORT_SYMBOL vmlinux 0xec90ccf8 sock_sendmsg
+EXPORT_SYMBOL vmlinux 0xecae3546 dev_open
+EXPORT_SYMBOL vmlinux 0xeccc9f7d drm_detect_hdmi_monitor
+EXPORT_SYMBOL vmlinux 0xecd3608d dev_getbyhwaddr
+EXPORT_SYMBOL vmlinux 0xecdc34f3 dma_async_memcpy_buf_to_pg
+EXPORT_SYMBOL vmlinux 0xecf17740 path_put
+EXPORT_SYMBOL vmlinux 0xed0ea0bd journal_lock_updates
+EXPORT_SYMBOL vmlinux 0xed2347ca tcf_em_unregister
+EXPORT_SYMBOL vmlinux 0xed277b4b bio_map_user
+EXPORT_SYMBOL vmlinux 0xed665a5f tcp_proc_unregister
+EXPORT_SYMBOL vmlinux 0xeda0d76e gen_estimator_active
+EXPORT_SYMBOL vmlinux 0xedb62cd2 put_mnt_ns
+EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp
+EXPORT_SYMBOL vmlinux 0xedc9e0cf skb_queue_head
+EXPORT_SYMBOL vmlinux 0xedf178bd dev_close
+EXPORT_SYMBOL vmlinux 0xee129b1e __brelse
+EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable
+EXPORT_SYMBOL vmlinux 0xee36413c tcp_v4_conn_request
+EXPORT_SYMBOL vmlinux 0xee388870 dquot_disable
+EXPORT_SYMBOL vmlinux 0xee689344 prepare_kernel_cred
+EXPORT_SYMBOL vmlinux 0xee7a4b78 pci_target_state
+EXPORT_SYMBOL vmlinux 0xee8868ac journal_forget
+EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap
+EXPORT_SYMBOL vmlinux 0xeeaba047 phy_stop
+EXPORT_SYMBOL vmlinux 0xeeb3f702 have_submounts
+EXPORT_SYMBOL vmlinux 0xeec54c6a skb_copy_datagram_iovec
+EXPORT_SYMBOL vmlinux 0xeee7d6df neigh_connected_output
+EXPORT_SYMBOL vmlinux 0xef0949e0 drm_poll
+EXPORT_SYMBOL vmlinux 0xef2cdc53 nf_log_packet
+EXPORT_SYMBOL vmlinux 0xef2db0cd nobh_write_begin
+EXPORT_SYMBOL vmlinux 0xef2f0291 tcp_v4_remember_stamp
+EXPORT_SYMBOL vmlinux 0xef5fe19b skb_recycle_check
+EXPORT_SYMBOL vmlinux 0xef6ed1ba param_set_invbool
+EXPORT_SYMBOL vmlinux 0xef9ef723 xfrm_register_mode
+EXPORT_SYMBOL vmlinux 0xefc03fee alloc_fcdev
+EXPORT_SYMBOL vmlinux 0xefc1a0c3 pcix_set_mmrbc
+EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx
+EXPORT_SYMBOL vmlinux 0xefe61017 abx500_set_register_interruptible
+EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list
+EXPORT_SYMBOL vmlinux 0xf01c9827 pci_disable_device
+EXPORT_SYMBOL vmlinux 0xf04cb4d8 ___ratelimit
+EXPORT_SYMBOL vmlinux 0xf05a2f54 tcf_em_tree_dump
+EXPORT_SYMBOL vmlinux 0xf0798ce1 of_ioremap
+EXPORT_SYMBOL vmlinux 0xf08ef86c mutex_lock_killable
+EXPORT_SYMBOL vmlinux 0xf0ca636b pci_request_region_exclusive
+EXPORT_SYMBOL vmlinux 0xf0d7f132 gen_pool_destroy
+EXPORT_SYMBOL vmlinux 0xf0e9ebbd of_find_node_by_type
+EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort
+EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf
+EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers
+EXPORT_SYMBOL vmlinux 0xf10cef4f dev_uc_unsync
+EXPORT_SYMBOL vmlinux 0xf1216c75 prandom32
+EXPORT_SYMBOL vmlinux 0xf12c6683 netdev_boot_setup_check
+EXPORT_SYMBOL vmlinux 0xf1421d13 drm_mode_sort
+EXPORT_SYMBOL vmlinux 0xf146ac33 inet_ioctl
+EXPORT_SYMBOL vmlinux 0xf161838d drm_mode_create_tv_properties
+EXPORT_SYMBOL vmlinux 0xf174ed48 acquire_console_sem
+EXPORT_SYMBOL vmlinux 0xf177816a drm_encoder_cleanup
+EXPORT_SYMBOL vmlinux 0xf18e386c tcp_create_openreq_child
+EXPORT_SYMBOL vmlinux 0xf1920cd5 blk_make_request
+EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps
+EXPORT_SYMBOL vmlinux 0xf1966d8c mempool_free
+EXPORT_SYMBOL vmlinux 0xf1c079c3 tcp_md5_hash_key
+EXPORT_SYMBOL vmlinux 0xf1c3b00e copy_in_user_fixup
+EXPORT_SYMBOL vmlinux 0xf1c440b2 ldc_free
+EXPORT_SYMBOL vmlinux 0xf1d483d3 kernel_sendpage
+EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy
+EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun
+EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq
+EXPORT_SYMBOL vmlinux 0xf24c83fd blk_complete_request
+EXPORT_SYMBOL vmlinux 0xf250b393 iw_handler_get_spy
+EXPORT_SYMBOL vmlinux 0xf25e71e8 dev_addr_flush
+EXPORT_SYMBOL vmlinux 0xf2602310 drm_vblank_get
+EXPORT_SYMBOL vmlinux 0xf26038e3 kill_pid
+EXPORT_SYMBOL vmlinux 0xf2857ec0 aio_put_req
+EXPORT_SYMBOL vmlinux 0xf2958216 pci_release_region
+EXPORT_SYMBOL vmlinux 0xf2af2ef2 scsi_reset_provider
+EXPORT_SYMBOL vmlinux 0xf2cdf065 pci_back_from_sleep
+EXPORT_SYMBOL vmlinux 0xf30527a9 pci_get_device
+EXPORT_SYMBOL vmlinux 0xf312dcfd neigh_ifdown
+EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform
+EXPORT_SYMBOL vmlinux 0xf3144fb5 bio_phys_segments
+EXPORT_SYMBOL vmlinux 0xf3281f46 pm860x_backlight_name
+EXPORT_SYMBOL vmlinux 0xf333dcfd alloc_disk
+EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user
+EXPORT_SYMBOL vmlinux 0xf338d4c3 netlink_unregister_notifier
+EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head
+EXPORT_SYMBOL vmlinux 0xf349820c drm_master_put
+EXPORT_SYMBOL vmlinux 0xf35e68dd skb_recv_datagram
+EXPORT_SYMBOL vmlinux 0xf36fe3f0 bio_map_kern
+EXPORT_SYMBOL vmlinux 0xf379e5fd netif_rx_ni
+EXPORT_SYMBOL vmlinux 0xf388ae41 end_page_writeback
+EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init
+EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default
+EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement
+EXPORT_SYMBOL vmlinux 0xf3ec616e tty_port_lower_dtr_rts
+EXPORT_SYMBOL vmlinux 0xf3f24ea5 ip_xfrm_me_harder
+EXPORT_SYMBOL vmlinux 0xf424cf59 journal_get_undo_access
+EXPORT_SYMBOL vmlinux 0xf42a2b26 drm_ht_create
+EXPORT_SYMBOL vmlinux 0xf4752449 bdi_setup_and_register
+EXPORT_SYMBOL vmlinux 0xf480e98d inc_zone_page_state
+EXPORT_SYMBOL vmlinux 0xf48a234e genphy_config_advert
+EXPORT_SYMBOL vmlinux 0xf49c862e inet_put_port
+EXPORT_SYMBOL vmlinux 0xf4a971b6 tty_hangup
+EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock
+EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog
+EXPORT_SYMBOL vmlinux 0xf53cb132 phy_detach
+EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy
+EXPORT_SYMBOL vmlinux 0xf5429974 __kfifo_from_user_n
+EXPORT_SYMBOL vmlinux 0xf548d527 kmalloc_caches
+EXPORT_SYMBOL vmlinux 0xf55d0204 blk_init_queue_node
+EXPORT_SYMBOL vmlinux 0xf55e2ff3 scsi_init_io
+EXPORT_SYMBOL vmlinux 0xf55f6cdf devcgroup_inode_permission
+EXPORT_SYMBOL vmlinux 0xf56e6524 mempool_resize
+EXPORT_SYMBOL vmlinux 0xf5772d81 udp_poll
+EXPORT_SYMBOL vmlinux 0xf57a4d93 new_inode
+EXPORT_SYMBOL vmlinux 0xf5a1f299 remap_vmalloc_range
+EXPORT_SYMBOL vmlinux 0xf5a62d3a __free_pages
+EXPORT_SYMBOL vmlinux 0xf5a7a2d8 scsi_remove_host
+EXPORT_SYMBOL vmlinux 0xf5beb916 tcp_read_sock
+EXPORT_SYMBOL vmlinux 0xf5c8a014 bio_uncopy_user
+EXPORT_SYMBOL vmlinux 0xf5c9012e timespec_trunc
+EXPORT_SYMBOL vmlinux 0xf5ce9811 tcp_memory_allocated
+EXPORT_SYMBOL vmlinux 0xf5defb5c netdev_set_master
+EXPORT_SYMBOL vmlinux 0xf5e6af5d pci_bus_read_config_byte
+EXPORT_SYMBOL vmlinux 0xf5e7f279 sock_queue_rcv_skb
+EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command
+EXPORT_SYMBOL vmlinux 0xf5f3c33e blk_rq_unmap_user
+EXPORT_SYMBOL vmlinux 0xf5fab980 of_n_addr_cells
+EXPORT_SYMBOL vmlinux 0xf5fc96b5 mfd_remove_devices
+EXPORT_SYMBOL vmlinux 0xf601e239 of_find_matching_node
+EXPORT_SYMBOL vmlinux 0xf60fc4f2 dm_unregister_target
+EXPORT_SYMBOL vmlinux 0xf61470b7 pci_pme_active
+EXPORT_SYMBOL vmlinux 0xf631a08c dma_pool_free
+EXPORT_SYMBOL vmlinux 0xf632f5e6 of_iounmap
+EXPORT_SYMBOL vmlinux 0xf63b1259 pagecache_write_end
+EXPORT_SYMBOL vmlinux 0xf66b926b down_killable
+EXPORT_SYMBOL vmlinux 0xf68aa7ac vio_port_up
+EXPORT_SYMBOL vmlinux 0xf692bdda nla_put_nohdr
+EXPORT_SYMBOL vmlinux 0xf6ad5be4 __secpath_destroy
+EXPORT_SYMBOL vmlinux 0xf6aeeb15 suncore_mouse_baud_cflag_next
+EXPORT_SYMBOL vmlinux 0xf6b0f93c tcp_child_process
+EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table
+EXPORT_SYMBOL vmlinux 0xf6d8375a napi_skb_finish
+EXPORT_SYMBOL vmlinux 0xf6deb3c2 cfb_imageblit
+EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit
+EXPORT_SYMBOL vmlinux 0xf706c8ed vio_driver_init
+EXPORT_SYMBOL vmlinux 0xf71be749 input_get_keycode
+EXPORT_SYMBOL vmlinux 0xf7252d3a journal_update_format
+EXPORT_SYMBOL vmlinux 0xf73ff446 neigh_table_init
+EXPORT_SYMBOL vmlinux 0xf74110d7 neigh_table_init_no_netlink
+EXPORT_SYMBOL vmlinux 0xf741c42f clear_inode
+EXPORT_SYMBOL vmlinux 0xf7486f36 devm_iounmap
+EXPORT_SYMBOL vmlinux 0xf7506c41 __any_online_cpu
+EXPORT_SYMBOL vmlinux 0xf7584a9c find_font
+EXPORT_SYMBOL vmlinux 0xf75a2364 set_page_dirty
+EXPORT_SYMBOL vmlinux 0xf761c3ae copy_to_user_fixup
+EXPORT_SYMBOL vmlinux 0xf76e11b1 key_type_keyring
+EXPORT_SYMBOL vmlinux 0xf7729658 atomic64_add_ret
+EXPORT_SYMBOL vmlinux 0xf78d04ab netlink_register_notifier
+EXPORT_SYMBOL vmlinux 0xf7b0c7c6 dmam_alloc_coherent
+EXPORT_SYMBOL vmlinux 0xf7b28be7 get_sb_nodev
+EXPORT_SYMBOL vmlinux 0xf7c53374 schedule_delayed_work_on
+EXPORT_SYMBOL vmlinux 0xf7db0310 d_lookup
+EXPORT_SYMBOL vmlinux 0xf7ed2354 tcp_rcv_state_process
+EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set
+EXPORT_SYMBOL vmlinux 0xf8070637 phy_scan_fixups
+EXPORT_SYMBOL vmlinux 0xf80c69d2 __strlen_user
+EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q
+EXPORT_SYMBOL vmlinux 0xf829a36a dev_get_by_name
+EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy
+EXPORT_SYMBOL vmlinux 0xf82f2bfa in_dev_finish_destroy
+EXPORT_SYMBOL vmlinux 0xf8621caa xfrm4_prepare_output
+EXPORT_SYMBOL vmlinux 0xf89843f9 schedule_work
+EXPORT_SYMBOL vmlinux 0xf8a897a9 drm_mode_config_cleanup
+EXPORT_SYMBOL vmlinux 0xf8c8e1e6 flush_old_exec
+EXPORT_SYMBOL vmlinux 0xf90fb8bb drm_ati_pcigart_cleanup
+EXPORT_SYMBOL vmlinux 0xf914fd08 vfs_statfs
+EXPORT_SYMBOL vmlinux 0xf93fe770 lease_modify
+EXPORT_SYMBOL vmlinux 0xf949a718 tcf_hash_create
+EXPORT_SYMBOL vmlinux 0xf981a1a9 __destroy_inode
+EXPORT_SYMBOL vmlinux 0xf98723d0 grab_cache_page_write_begin
+EXPORT_SYMBOL vmlinux 0xf98afc2e die_if_kernel
+EXPORT_SYMBOL vmlinux 0xf996757f dmam_pool_create
+EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep
+EXPORT_SYMBOL vmlinux 0xf9c337ed blk_queue_dma_alignment
+EXPORT_SYMBOL vmlinux 0xf9d6211a del_timer
+EXPORT_SYMBOL vmlinux 0xf9da0771 kill_pgrp
+EXPORT_SYMBOL vmlinux 0xf9f68be8 scsi_remove_device
+EXPORT_SYMBOL vmlinux 0xf9fd7812 give_up_console
+EXPORT_SYMBOL vmlinux 0xfa01542c genphy_restart_aneg
+EXPORT_SYMBOL vmlinux 0xfa1437c1 blkdev_put
+EXPORT_SYMBOL vmlinux 0xfa9e5939 grab_cache_page_nowait
+EXPORT_SYMBOL vmlinux 0xfad2f722 devm_ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfad871a9 pci_set_mwi
+EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32
+EXPORT_SYMBOL vmlinux 0xfb0cf2e9 touch_all_softlockup_watchdogs
+EXPORT_SYMBOL vmlinux 0xfb399195 __dev_getfirstbyhwtype
+EXPORT_SYMBOL vmlinux 0xfb3de52b ps2_cmd_aborted
+EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending
+EXPORT_SYMBOL vmlinux 0xfbb82f04 framebuffer_release
+EXPORT_SYMBOL vmlinux 0xfbba80d1 tcp_md5_hash_header
+EXPORT_SYMBOL vmlinux 0xfbc1caab softnet_data
+EXPORT_SYMBOL vmlinux 0xfbc6f2a9 simple_transaction_set
+EXPORT_SYMBOL vmlinux 0xfbc94d50 __tracepoint_kmem_cache_alloc_node
+EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem
+EXPORT_SYMBOL vmlinux 0xfc2a11a8 tty_termios_copy_hw
+EXPORT_SYMBOL vmlinux 0xfc362e41 init_task
+EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap
+EXPORT_SYMBOL vmlinux 0xfc44e602 pagevec_lookup_tag
+EXPORT_SYMBOL vmlinux 0xfc51ca61 prepare_to_wait
+EXPORT_SYMBOL vmlinux 0xfc591eae cfb_copyarea
+EXPORT_SYMBOL vmlinux 0xfc83832a commit_creds
+EXPORT_SYMBOL vmlinux 0xfc8dc4e0 drm_gem_object_init
+EXPORT_SYMBOL vmlinux 0xfca3b3ca neigh_destroy
+EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock
+EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8
+EXPORT_SYMBOL vmlinux 0xfcd08761 mfd_add_devices
+EXPORT_SYMBOL vmlinux 0xfce48aae free_buffer_head
+EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq
+EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist
+EXPORT_SYMBOL vmlinux 0xfd07271c journal_create
+EXPORT_SYMBOL vmlinux 0xfd25c59b vmalloc_to_page
+EXPORT_SYMBOL vmlinux 0xfd5557d5 journal_revoke
+EXPORT_SYMBOL vmlinux 0xfd8e64aa nlmsg_notify
+EXPORT_SYMBOL vmlinux 0xfda6e9a8 xfrm_state_walk
+EXPORT_SYMBOL vmlinux 0xfda85a7d request_threaded_irq
+EXPORT_SYMBOL vmlinux 0xfdb2f93d vfs_getattr
+EXPORT_SYMBOL vmlinux 0xfdc4af2b kmem_cache_shrink
+EXPORT_SYMBOL vmlinux 0xfdda1acb make_bad_inode
+EXPORT_SYMBOL vmlinux 0xfdec5a97 ps2_handle_response
+EXPORT_SYMBOL vmlinux 0xfdf5edbc node_data
+EXPORT_SYMBOL vmlinux 0xfdfbad19 drm_sman_alloc
+EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent
+EXPORT_SYMBOL vmlinux 0xfe21945c dev_get_by_index_rcu
+EXPORT_SYMBOL vmlinux 0xfe2239c6 find_get_page
+EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids
+EXPORT_SYMBOL vmlinux 0xfe392bcd generic_segment_checks
+EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz
+EXPORT_SYMBOL vmlinux 0xfe769456 unregister_netdevice_notifier
+EXPORT_SYMBOL vmlinux 0xfe78010d xor_niagara_4
+EXPORT_SYMBOL vmlinux 0xfe78cf7f dm_table_get_size
+EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids
+EXPORT_SYMBOL vmlinux 0xfec05366 sun_do_break
+EXPORT_SYMBOL vmlinux 0xfec3c2f2 bcd2bin
+EXPORT_SYMBOL vmlinux 0xfecfdbf2 dev_get_by_flags
+EXPORT_SYMBOL vmlinux 0xfed3a98f uart_suspend_port
+EXPORT_SYMBOL vmlinux 0xfedd35fc console_suspend_enabled
+EXPORT_SYMBOL vmlinux 0xfedd6f64 xfrm_register_km
+EXPORT_SYMBOL vmlinux 0xfee034dc journal_try_to_free_buffers
+EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command
+EXPORT_SYMBOL vmlinux 0xfefb5584 sock_common_recvmsg
+EXPORT_SYMBOL vmlinux 0xfefed514 __dec_zone_page_state
+EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start
+EXPORT_SYMBOL vmlinux 0xff3101e1 __napi_complete
+EXPORT_SYMBOL vmlinux 0xff355e16 pci_dev_get
+EXPORT_SYMBOL vmlinux 0xff550a4f drm_mode_create
+EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap
+EXPORT_SYMBOL vmlinux 0xff751b1c pci_iounmap
+EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource
+EXPORT_SYMBOL vmlinux 0xff8702c7 km_report
+EXPORT_SYMBOL vmlinux 0xff964b25 param_set_int
+EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs
+EXPORT_SYMBOL vmlinux 0xffa9a1d6 call_usermodehelper_exec
+EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function
+EXPORT_SYMBOL vmlinux 0xffdb82bc sg_free_table
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x0cc1e40f crypto_it_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x24aac4d9 crypto_aes_expand_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x29c632ac crypto_aes_set_key
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x3dc916b6 crypto_fl_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x40d46b21 crypto_ft_tab
+EXPORT_SYMBOL_GPL crypto/aes_generic 0x71dc9998 crypto_il_tab
+EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x15a68347 async_memcpy
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x65f657c3 async_gen_syndrome
+EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x97ef50c5 async_syndrome_val
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x1fcb0010 async_raid6_2data_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xe33ade26 async_raid6_datap_recov
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x6cfeb6a3 __async_tx_find_channel
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x78f39a35 async_tx_quiesce
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xcdd4d9f3 async_trigger_callback
+EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xfff43445 async_tx_submit
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x6cf2c95c async_xor
+EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xe27e7671 async_xor_val
+EXPORT_SYMBOL_GPL crypto/cryptd 0x0d40d790 cryptd_free_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x11f63ac9 cryptd_alloc_ablkcipher
+EXPORT_SYMBOL_GPL crypto/cryptd 0x25008324 cryptd_ahash_child
+EXPORT_SYMBOL_GPL crypto/cryptd 0xb6609392 cryptd_free_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xbb44279f cryptd_shash_desc
+EXPORT_SYMBOL_GPL crypto/cryptd 0xcf91dba5 cryptd_alloc_ahash
+EXPORT_SYMBOL_GPL crypto/cryptd 0xee4a89b6 cryptd_ablkcipher_child
+EXPORT_SYMBOL_GPL crypto/twofish_common 0x2126defe twofish_setkey
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x045718a8 ahci_start_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x47aecd6c ahci_check_ready
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x487d31b9 ahci_reset_em
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5390edfc ahci_kick_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x62e6c465 ahci_do_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x78434ad7 ahci_print_info
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7ecdf5bb ahci_stop_engine
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0x9439db48 ahci_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xad06b5e3 ahci_reset_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xb4811a65 ahci_init_controller
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc5220901 ahci_ops
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd87f0953 ahci_set_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdacc26ab ahci_save_initial_config
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xeab6ef3d ahci_sht
+EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0067df75 ata_tf_from_fis
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x00ebcb5d ata_id_string
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x00eef86a ata_bmdma_port_start
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x010d7ca2 sata_sff_hardreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x03361a9b ata_pci_sff_init_one
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x03e3686c ata_timing_cycle2mode
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x0531dcb8 ata_dev_classify
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x060c7b6e ata_host_start
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x06bce47e ata_sff_wait_ready
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x085dac7e ata_sff_pause
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x09b7b586 sata_set_spd
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x100a1579 ata_bmdma_stop
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x10c675a9 ata_sff_wait_after_reset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x11259238 ata_cable_ignore
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x132707cc ata_scsi_simulate
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x15bb5caf ata_eh_freeze_port
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x180093d9 sata_pmp_qc_defer_cmd_switch
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x1893d5e8 sata_std_hardreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x1a45cef1 ata_eh_analyze_ncq_error
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x1c372cb5 ata_dummy_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x1eb835d0 ata_cable_unknown
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x20d3d4ca ata_pci_bmdma_init_one
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x229d6d5a ata_host_alloc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x284a6264 ata_host_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x29cf806c ata_ehi_clear_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x2b7c7549 ata_bmdma_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x2cdfbcbf ata_pci_bmdma_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x2fef1648 ata_link_offline
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x2ffa37b3 ata_link_abort
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3116e077 ata_std_qc_defer
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3266d73f dev_attr_em_message
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3445d78a ata_qc_complete
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3525367e ata_sff_irq_on
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x35b26776 sata_scr_valid
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x367c9b0f ata_bmdma_dumb_qc_prep
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x36b09d2e ata_sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x36e437b3 ata_cable_80wire
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3b72db0e ata_eh_qc_retry
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x3fd7512f ata_qc_complete_multiple
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x40af0dec ata_xfer_mode2mask
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x43f56e82 ata_xfer_mode2shift
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x45702fd8 ata_pci_sff_activate_host
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x463a5474 ata_timing_compute
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x46d8cdb6 ata_sas_port_stop
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x478cce7d ata_sas_scsi_ioctl
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x481cfa3d ata_dev_pair
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4830d88f ata_pci_sff_prepare_host
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x49f3196e ata_sff_thaw
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4a5f8d3f ata_link_online
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4ad3316b ata_bmdma_post_internal_cmd
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4c5d69f3 pci_test_config_bits
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4d172d1d ata_sff_port_intr
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4d3502ac ata_pci_bmdma_prepare_host
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4d901470 ata_sff_dev_classify
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4da22374 dev_attr_link_power_management_policy
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x4fdc945d sata_deb_timing_normal
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x505b4d9b ata_cable_sata
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x54a7d125 ata_bmdma32_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x556cb411 ata_sff_qc_issue
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x576cd939 ata_sff_data_xfer_noirq
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5a5cce48 ata_bmdma_start
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5b50aa3c ata_sff_error_handler
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5c1ffb0f ata_link_next
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5c2d7796 ata_sff_check_status
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5caa8933 ata_common_sdev_attrs
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5d5a3c90 ata_pci_bmdma_clear_simplex
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x5e7065ac sata_scr_read
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x601d2fe1 __ata_ehi_push_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x63205de1 ata_scsi_unlock_native_capacity
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x65a6b7c8 ata_sff_softreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x67d7985c ata_std_bios_param
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x68a48f3e ata_host_alloc_pinfo
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x68fe7bfe dev_attr_em_message_type
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x69e9a2cb ata_scsi_slave_config
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x6d8b27d5 ata_pci_remove_one
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x703bc6f1 ata_base_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x706ff07e ata_bmdma_qc_prep
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x707ff1bb ata_xfer_mask2mode
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x70a6b71c ata_eh_thaw_port
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x712c6754 ata_sff_busy_sleep
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x73a48b4a ata_sff_std_ports
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x743a165e ata_pack_xfermask
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x74f605c5 sata_scr_write_flush
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x79d594b5 ata_port_freeze
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x7ddb0149 ata_sff_postreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x7fef5939 ata_bmdma_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8149ea54 ata_timing_find_mode
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x83e9c572 ata_do_dev_read_id
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x84c65928 ata_bmdma_status
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x856e6468 ata_ehi_push_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x88acc10d ata_bmdma_port_intr
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x88d7584d ata_sas_port_alloc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8b752ac1 ata_tf_to_fis
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8bf3fe12 sata_link_debounce
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x8f11a608 ata_bmdma_error_handler
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x902d1aaa ata_scsi_queuecmd
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x93f36d44 sata_scr_write
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x94a68723 ata_scsi_slave_destroy
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x94d01644 ata_host_register
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x9e4146d1 ata_dev_next
+EXPORT_SYMBOL_GPL drivers/ata/libata 0x9f9a4ff8 ata_port_pbar_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xa0353551 ata_eh_qc_complete
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xa329afb2 ata_bmdma_irq_clear
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xa4e8063c ata_bmdma_port_start32
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xa65453be ata_do_eh
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xa995f66e ata_port_desc
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xab34761e ata_sff_tf_load
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xaf3f6fe0 ata_sff_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb50137c0 ata_port_abort
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb6aeb661 ata_id_c_string
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb7b6d2cc ata_host_detach
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb82862f1 ata_sff_qc_fill_rtf
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb88436ba ata_sff_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb88de877 ata_pio_need_iordy
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb93fe299 ata_do_set_mode
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xb9a5101c ata_scsi_ioctl
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xbe1887e4 ata_unpack_xfermask
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xbe2d131a sata_link_hardreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xbf0a8fbc ata_std_prereset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc08967c7 sata_pmp_error_handler
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc20abdaf ata_sff_freeze
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc23f9049 ata_sff_prereset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc428068d sata_deb_timing_long
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc48b7ccf ata_mode_string
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc52bbcc7 ata_sff_dev_select
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc657efc8 ata_sas_queuecmd
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xc855ec14 sata_async_notification
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xca12d1f9 ata_sff_data_xfer32
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xca143daa ata_std_postreset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xca1e3d13 ata_wait_after_reset
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xcaad7842 ata_slave_link_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xcc8982c7 ata_sff_exec_command
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xcccfb2fa sata_deb_timing_hotplug
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xcd944007 sata_pmp_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xce994410 dev_attr_unload_heads
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd25dcec5 ata_dev_disable
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd32fe193 ata_scsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xd3ed8431 ata_sff_dma_pause
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xda3fdea7 ata_bmdma_qc_issue
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xdc572eed ata_noop_qc_prep
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xdfc9f10f ata_sg_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe410561d ata_cable_40wire
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe49ff3b0 ata_wait_register
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xe7ed9a02 ata_std_error_handler
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xea418e0f atapi_cmd_type
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xebaba29b sata_link_resume
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xed1187e6 ata_dummy_port_info
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xed17f700 ata_sff_lost_interrupt
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xed867dda ata_host_activate
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xedbc2941 ata_sas_port_destroy
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf03f5a4c ata_bmdma_setup
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf32bca54 ata_port_schedule_eh
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf377a6e7 dev_attr_sw_activity
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf3f7cd5c ata_sff_data_xfer
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf4fb3d9d ata_pci_sff_init_host
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf67046d5 ata_sff_hsm_move
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf6e805e5 ata_sas_port_init
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf6e874f5 ata_timing_merge
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf72885f7 ata_sff_tf_read
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf7ccb8a0 ata_sff_queue_pio_task
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf7fe94f4 ata_sff_drain_fifo
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf8f3a0fb ata_ratelimit
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xf9ca3160 ata_id_xfermask
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xfa7d4a42 ata_sas_port_start
+EXPORT_SYMBOL_GPL drivers/ata/libata 0xfaa072a6 sata_port_ops
+EXPORT_SYMBOL_GPL drivers/ata/pata_sis 0xb0b89888 sis_info133_for_sata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x14102f23 ks0108_displaystate
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x48a70518 ks0108_writedata
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x4f506333 ks0108_startline
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0x6edae968 ks0108_isinited
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xbf4774db ks0108_writecontrol
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xedde6df2 ks0108_page
+EXPORT_SYMBOL_GPL drivers/auxdisplay/ks0108 0xfee8ef7b ks0108_address
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x184c2e59 tpm_show_caps_1_2
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x23848576 tpm_open
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2a037ff4 tpm_gen_interrupt
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x2bcd6854 tpm_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3310acfb tpm_register_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x34dfee7b tpm_write
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x3e9dc99b tpm_pm_resume
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x436edfe5 tpm_store_cancel
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x4534bcce tpm_pm_suspend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5ddaffa2 tpm_show_pubek
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x5f9c3b74 tpm_dev_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6621715a tpm_continue_selftest
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x6c28f6c8 tpm_show_enabled
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x757ae9f8 tpm_show_active
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x88558bc6 tpm_show_temp_deactivated
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0x915cb38a tpm_show_owned
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xadf6aa4d tpm_pcr_read
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xb3960e48 tpm_show_pcrs
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc34e5e11 tpm_get_timeouts
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc37226a5 tpm_pcr_extend
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc68a7eb6 tpm_show_caps
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xc7e50a15 tpm_calc_ordinal_duration
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xdefc3311 tpm_remove_hardware
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xe46d2313 tpm_dev_vendor_release
+EXPORT_SYMBOL_GPL drivers/char/tpm/tpm 0xf72b1a54 tpm_read
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xb10d55bc cn_netlink_send
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xcf7a962e cn_add_callback
+EXPORT_SYMBOL_GPL drivers/connector/cn 0xff5a8cfe cn_del_callback
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0x013fbdac cs5535_gpio_set
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xd3bd9300 cs5535_gpio_isset
+EXPORT_SYMBOL_GPL drivers/gpio/cs5535-gpio 0xe07c0954 cs5535_gpio_clear
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x16ae19c7 __max730x_probe
+EXPORT_SYMBOL_GPL drivers/gpio/max730x 0x95b17223 __max730x_remove
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x139ff6a0 hid_report_raw_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x1c850b74 hid_debug_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x208be9d7 hid_dump_input
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x3527c224 __hid_register_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x3543b28a hidinput_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x4421f2fb hidinput_find_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x49eedcd3 hidraw_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x56dadbc5 hid_allocate_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x59bb61c7 hid_dump_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x65a3030c hid_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x667c9e7d hidraw_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x66a3fc14 hidinput_connect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x6b3670db hid_parse_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x7e3677c1 hid_destroy_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x8276e97b hid_input_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0x9c526d21 hid_register_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xa9369aa9 hid_add_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xae4ad900 hid_set_field
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xc0a39913 hid_dump_device
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xce6a681b hid_check_keys_pressed
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xd5b52207 hid_resolv_usage
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xd7adcec5 hid_unregister_driver
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xdaf25922 hid_output_report
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xe71eb9e0 hidraw_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xebe993ad hidinput_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid 0xf2c23f1d hid_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x75646916 roccat_report_event
+EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xef3e9a15 roccat_connect
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x13a7dc61 usbhid_wait_io
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x54bb22c6 usbhid_submit_report
+EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xb4101d70 usbhid_set_leds
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x317d0e33 lis3_dev
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x68b61b47 lis3lv02d_poweron
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0x6c33e494 lis3lv02d_joystick_disable
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xb17630c5 lis3lv02d_init_device
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xd6605061 lis3lv02d_remove_fs
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xdb70b55b lis3lv02d_poweroff
+EXPORT_SYMBOL_GPL drivers/hwmon/lis3lv02d 0xe6af28c8 lis3lv02d_joystick_enable
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x381955fd i2c_setup_smbus_alert
+EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xb96e2d48 i2c_handle_smbus_alert
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0x32b39e15 hpsb_config_rom_ip1394_add
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xec8d18cf hpsb_disable_irm
+EXPORT_SYMBOL_GPL drivers/ieee1394/ieee1394 0xf3d64e95 hpsb_config_rom_ip1394_remove
+EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x7a536ed1 input_ff_create_memless
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x103d3b84 wm97xx_reg_read
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x235c4deb wm9712_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x36ca57ac wm97xx_read_aux_adc
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3d12120e wm97xx_get_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3ee250b1 wm9705_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xbabf0aa6 wm97xx_register_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc22d3b2d wm97xx_set_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd66b20a5 wm97xx_reg_write
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe3c70c9f wm97xx_unregister_mach_ops
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xeff64d75 wm9713_codec
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf6d17333 wm97xx_config_gpio
+EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfe3225e2 wm97xx_set_suspend_mode
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x4de7b2d0 unregister_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xb17b7c77 register_capictr_notifier
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x04e54893 gigaset_if_receive
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x29156f03 gigaset_stop
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x29f815a7 gigaset_blockdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3297863e gigaset_add_event
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4498dee3 gigaset_initcs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4adfe518 gigaset_freedriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x611f7717 gigaset_shutdown
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x64d05031 gigaset_isdn_rcv_err
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x74b3ecdd gigaset_skb_rcvd
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x7500aa7e gigaset_skb_sent
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x766baf94 gigaset_start
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x89e1e956 gigaset_m10x_input
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb4fd56ee gigaset_freecs
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xbfb183e6 gigaset_initdriver
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc8a06c84 gigaset_dbg_buffer
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd02e15b5 gigaset_handle_modem_response
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xef9d3f4e gigaset_m10x_send_skb
+EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xf12d8a6d gigaset_fill_inbuf
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x3624a092 led_classdev_suspend
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x3f09873d led_classdev_resume
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0x7d3ac77d led_classdev_unregister
+EXPORT_SYMBOL_GPL drivers/leds/led-class 0xb68de4d4 led_classdev_register
+EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x28439cf0 dm_unregister_path_selector
+EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x617a91f9 dm_register_path_selector
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x02eca4a6 dm_rh_bio_to_region
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x0ea56b1b dm_rh_get_state
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x1bd0d81f dm_rh_recovery_end
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x255d40d6 dm_rh_start_recovery
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x2dee94ed dm_rh_dec
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x42b6b14f dm_rh_get_region_key
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x447e1119 dm_rh_region_context
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x496c86a6 dm_rh_delay
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x509f6524 dm_rh_flush
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5775fb1e dm_rh_stop_recovery
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x66547082 dm_rh_get_region_size
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x883612a9 dm_rh_dirty_log
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x90387d98 dm_rh_region_to_sector
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa2f4c375 dm_rh_recovery_start
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xaae79d25 dm_rh_mark_nosync
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc9863af5 dm_rh_inc_pending
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd1dd3c74 dm_region_hash_destroy
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd91c2962 dm_rh_recovery_prepare
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd991280b dm_rh_recovery_in_flight
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf0f7e728 dm_rh_update_states
+EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfc4f6ed8 dm_region_hash_create
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0x3ba79c06 md_allow_write
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0x4931f909 md_new_event
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0x6c53b54b md_do_sync
+EXPORT_SYMBOL_GPL drivers/md/md-mod 0xe60d79ee sync_page_io
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0x24935f26 raid6_call
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xcdc24ab5 raid6_2data_recov
+EXPORT_SYMBOL_GPL drivers/md/raid6_pq 0xdbab0c01 raid6_datap_recov
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x03799f0f ir_input_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x13d131fe ir_input_init
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x1cb148f5 ir_extract_bits
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x2456e513 ir_decode_pulsedistance
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x43c89ef4 ir_decode_biphase
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6606596a ir_rc5_timer_keyup
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x6d6511e7 ir_dump_samples
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0x875a29fa ir_rc5_decode
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xd90c3a74 ir_input_nokey
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-common 0xf4f7a4d6 ir_rc5_timer_end
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x0ead0aca ir_repeat
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x1525834f ir_core_debug
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x16e58026 __ir_input_register
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x3212bd88 ir_register_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x346dfc11 ir_raw_event_handle
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x3de34698 ir_raw_event_store
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x49486473 ir_input_unregister
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x7a5cc149 ir_keydown
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x7c3358c5 ir_unregister_map
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0x9f59ad8e ir_raw_event_store_edge
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xbe3b760e ir_g_keycode_from_table
+EXPORT_SYMBOL_GPL drivers/media/IR/ir-core 0xd172dd87 get_rc_map
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x2de26dee saa7146_vfree_destroy_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x36aad5b1 saa7146_unregister_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x6c04fc3c saa7146_pgtable_free
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x70a7a7a3 saa7146_setgpio
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x71427a02 saa7146_register_extension
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x98623eba saa7146_devices_lock
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0x9b888f72 saa7146_wait_for_debi_done
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xa1b3982f saa7146_i2c_adapter_prepare
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xcf683cf2 saa7146_devices
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xd24f9b5e saa7146_vmalloc_build_pgtable
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xddc34f28 saa7146_pgtable_alloc
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe3cd9b5c saa7146_debug
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146 0xe8a14840 saa7146_pgtable_build_single
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x0b3602c1 saa7146_vv_release
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x2d2f281d saa7146_start_preview
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x4c3ad60c saa7146_unregister_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x666172f8 saa7146_vv_init
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0x7a256781 saa7146_set_hps_source_and_sync
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xf261ce75 saa7146_register_device
+EXPORT_SYMBOL_GPL drivers/media/common/saa7146_vv 0xfb5a9c2e saa7146_stop_preview
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/mt20xx 0xf412b0a0 microtune_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0x91dbb107 tda829x_probe
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda8290 0xfd6c0f76 tda829x_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tda9887 0xdb83ce75 tda9887_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0x65940427 tea5761_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5761 0xfb8efadf tea5761_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xa6d26b1b tea5767_attach
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tea5767 0xc4bd43db tea5767_autodetection
+EXPORT_SYMBOL_GPL drivers/media/common/tuners/tuner-simple 0xca42511c simple_tuner_attach
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x1ff22425 cx231xx_set_alt_setting
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x294a0233 cx231xx_init_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x443aa53f cx231xx_init_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x8980cebe cx231xx_send_usb_command
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x918c638f cx231xx_set_mode
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x99f50d51 cx231xx_dev_uninit
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0x9d29b720 cx231xx_uninit_vbi_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xb328015b cx231xx_uninit_isoc
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xbf2ded9f cx231xx_dev_init
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xce67dee0 cx231xx_capture_start
+EXPORT_SYMBOL_GPL drivers/media/video/cx231xx/cx231xx 0xfaa18f29 cx231xx_send_gpio_cmd
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x02ad4053 saa7134_g_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x4daaba29 saa7134_ts_qops
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x8416e10e saa7134_s_std_internal
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0x9104f37f saa7134_queryctrl
+EXPORT_SYMBOL_GPL drivers/media/video/saa7134/saa7134 0xa4b44027 saa7134_s_ctrl_internal
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x353312fd v4l2_i2c_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x41a6de40 v4l2_i2c_new_subdev_board
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x49d6edeb v4l2_spi_new_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0x94632f90 v4l_fill_dv_preset_info
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xc11a31bb v4l2_i2c_subdev_addr
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xe846a63e v4l2_spi_subdev_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf38ce5c1 v4l2_i2c_new_subdev_cfg
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-common 0xf5ef842e v4l_bound_align_image
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-compat-ioctl32 0x9561531a v4l2_compat_ioctl32
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x1bf05520 v4l2_int_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0x21e9fa51 v4l2_int_ioctl_1
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xa5307d7d v4l2_int_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-int-device 0xcd701dd6 v4l2_int_ioctl_0
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x17899384 v4l2_m2m_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x27f700a5 v4l2_m2m_poll
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x2f13a665 v4l2_m2m_ctx_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x370908a0 v4l2_m2m_buf_remove
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x4de6d5c8 v4l2_m2m_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x641e225b v4l2_m2m_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x7f39de3f v4l2_m2m_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0x89659627 v4l2_m2m_buf_queue
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xaccfa128 v4l2_m2m_release
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xaee68ed1 v4l2_m2m_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xc1b6f250 v4l2_m2m_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xdf49d002 v4l2_m2m_ctx_init
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xed35d363 v4l2_m2m_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/v4l2-mem2mem 0xf05051e1 v4l2_m2m_next_buf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x056f7b7e videobuf_qbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0bd984d6 videobuf_queue_core_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0d39ea1d __videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x0fb5c9e7 videobuf_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x22db1a54 videobuf_poll_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x2ed23394 videobuf_mmap_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4610e879 videobuf_cgmbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x4710f3b9 videobuf_read_stream
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x5dc78691 videobuf_mmap_mapper
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x63d15e0c videobuf_querybuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x68c2a3d5 videobuf_iolock
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7266e2bf videobuf_streamoff
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x7c31d7a1 videobuf_read_stop
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x92ed5a97 videobuf_queue_to_vaddr
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x997c0494 videobuf_read_start
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0x9dadd309 videobuf_reqbufs
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xaf72488e videobuf_next_field
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xbb9b81b9 videobuf_queue_cancel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xc3f867e2 videobuf_queue_is_busy
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xda64d486 videobuf_mmap_setup
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xdeff8cf1 videobuf_streamon
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xe4d92e4e videobuf_dqbuf
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xf126f97b videobuf_read_one
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfcadf9a0 videobuf_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-core 0xfeec15c5 videobuf_waiton
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x36a88c06 videobuf_to_dma
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x4812318e videobuf_sg_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0x67c8beaa videobuf_dma_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xa38faed2 videobuf_sg_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb1e8a30a videobuf_dma_init_kernel
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xb5359410 videobuf_dma_free
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xba9fe039 videobuf_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc659da11 videobuf_queue_sg_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xc87d0f70 videobuf_dma_unmap
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xd076bcf4 videobuf_sg_dma_map
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe8a24336 videobuf_vmalloc_to_sg
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xe9109a8b videobuf_dma_init_overlay
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-dma-sg 0xed72a286 videobuf_dma_init_user
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0x49263356 videobuf_to_vmalloc
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xb92df89d videobuf_queue_vmalloc_init
+EXPORT_SYMBOL_GPL drivers/media/video/videobuf-vmalloc 0xc2890314 videobuf_vmalloc_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x0037d2d1 v4l2_fh_exit
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x18f70e24 v4l2_fh_add
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x215fba51 v4l2_fh_del
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x25f26aad v4l2_device_register
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x4a4aa221 v4l2_fh_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x509199e5 v4l2_device_disconnect
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x5a0dcbf9 v4l2_device_unregister_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x63d11a70 v4l2_device_set_name
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x6f8fb229 v4l2_event_dequeue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x73278815 v4l2_event_init
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x83086c90 v4l2_device_register_subdev
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0x85302aae v4l2_event_free
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xa15a4591 v4l2_event_unsubscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xaf0713ef v4l2_event_alloc
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xb1271aae v4l2_device_unregister
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xc4b034f9 v4l2_event_queue
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdcc1be4e v4l2_event_subscribe
+EXPORT_SYMBOL_GPL drivers/media/video/videodev 0xdec529a4 v4l2_event_pending
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x4bcce965 i2o_dma_map_sg
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x55e0462e i2o_dma_free
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x64eb659d i2o_dma_realloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6c4703d6 i2o_dma_map_single
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb45c9afa i2o_sg_tablesize
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xdcc86918 i2o_pool_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xfb6c68cd i2o_dma_alloc
+EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xfd34ced2 i2o_pool_free
+EXPORT_SYMBOL_GPL drivers/mfd/mc13783-core 0x261e420e mc13783_adc_do_conversion
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x087a3362 pcf50633_reg_set_bit_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1ee21125 pcf50633_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x27c69183 pcf50633_register_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2b519dc9 pcf50633_irq_unmask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x85d28d85 pcf50633_read_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8a17d8fe pcf50633_irq_mask
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x92b71d0d pcf50633_write_block
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x979719e8 pcf50633_irq_mask_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xaae15558 pcf50633_free_irq
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf2b14b66 pcf50633_reg_write
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xf6a95ba5 pcf50633_reg_clear_bits
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x15402b45 pcf50633_adc_sync_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x32069ec2 pcf50633_adc_async_read
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x2205f75a pcf50633_gpio_invert_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x305faf07 pcf50633_gpio_invert_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x3e6b4287 pcf50633_gpio_set
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x49279c35 pcf50633_gpio_get
+EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xb06f8f86 pcf50633_gpio_power_supply_set
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x1b76cbaf sm501_set_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x1e5beea3 sm501_unit_power
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x7b69a0a1 sm501_modify_reg
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xa69c709b sm501_find_clock
+EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xb249f527 sm501_misc_control
+EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x729d20de ucb1400_adc_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x54aad61b wm8400_reset_codec_reg_cache
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x96492d07 wm8400_block_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0x9cea012d wm8400_reg_read
+EXPORT_SYMBOL_GPL drivers/mfd/wm8400-core 0xafb4c47b wm8400_set_bits
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x193502b9 cb710_sg_dwiter_read_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x2be023bd cb710_pci_update_config_reg
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x61a852ce cb710_sg_dwiter_write_next_block
+EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x9f7a7a91 cb710_set_irq_handler
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x2df115d4 eeprom_93cx6_multiread
+EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d14d2f eeprom_93cx6_read
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x0573df5a sdio_claim_irq
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x09035545 sdio_align_size
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x27858b5d sdio_writew
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x2827b7f6 sdio_f0_writeb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x48c8d6b8 sdio_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x6878a26f sdio_memcpy_toio
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x6959fd43 sdio_set_host_pm_flags
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x7a1d4e7f sdio_writeb_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x809375df sdio_register_driver
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x83a03e2f sdio_writel
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x89466d18 sdio_claim_host
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x95a6a7ab sdio_release_irq
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9a554f72 sdio_enable_func
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9b32dd34 sdio_get_host_pm_caps
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0x9de56612 sdio_writesb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xa72229b3 sdio_readl
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xaacf7be0 sdio_writeb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xacd3a505 sdio_unregister_driver
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xafaa5e1e sdio_f0_readb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xba63a300 sdio_release_host
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xba81f431 sdio_readsb
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd5e3a4f3 sdio_set_block_size
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xd92666b3 sdio_memcpy_fromio
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xeb3110f6 sdio_disable_func
+EXPORT_SYMBOL_GPL drivers/mmc/core/mmc_core 0xfce9da0a sdio_readw
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x31b888e6 sdhci_remove_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x61114f5b sdhci_alloc_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x8a40a414 sdhci_free_host
+EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb7904eff sdhci_add_host
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xba426086 cfi_cmdset_0200
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xc5288870 cfi_cmdset_0003
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xec3273d3 cfi_cmdset_0001
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x3c1d7681 cfi_cmdset_0002
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x6e2881c7 cfi_cmdset_0006
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x912fb5ac cfi_cmdset_0701
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x5af1658b cfi_cmdset_0020
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x03a081fd cfi_qry_mode_on
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xe6377648 cfi_qry_mode_off
+EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xf7d15dbb cfi_qry_present
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2000 0x00035eea DoC2k_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001 0xec1d430c DoCMil_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/doc2001plus 0x621fbd90 DoCMilPlus_init
+EXPORT_SYMBOL_GPL drivers/mtd/devices/docecc 0x45937659 doc_decode_ecc
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x06524eec register_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x38454147 unregister_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x77802da3 __put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7b2a7ab6 put_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x844609d5 add_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8490f4e7 mtd_erase_callback
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x85ca8c04 get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xaaaca5b1 register_mtd_user
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xad332e0d del_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb6c84c1d deregister_mtd_parser
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb773adcc get_mtd_device_nm
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbd168bb5 parse_mtd_partitions
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc543daa2 mtd_table_mutex
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd2d7ae1e get_sb_mtd
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe51b577e default_mtd_writev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe6050a60 kill_mtd_super
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe628090a __get_mtd_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf7b2d456 __mtd_next_device
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x06c9368b del_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x124109be deregister_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x41bb8ee4 register_mtd_blktrans
+EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe1d092b1 add_mtd_blktrans_dev
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x14a37ed2 nand_scan_ident
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x2fb44ff8 nand_wait_ready
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x342539e9 nand_release
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x6bb4d34f nand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x89fcd8c7 nand_scan_tail
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xcc4024a1 nand_unlock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xebc5113b nand_lock
+EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0x2ff066aa sm_register_device
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x0cdf1270 onenand_scan
+EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x8e4c678a onenand_release
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x1e8d8684 ubi_close_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x35acf7af ubi_do_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x49ac8f84 ubi_leb_write
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x52624aa6 ubi_leb_unmap
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6f09ba8a ubi_register_volume_notifier
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6ff67e96 ubi_leb_read
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x762f6fed ubi_leb_erase
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7ca20eb6 ubi_leb_change
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x99efb1f3 ubi_is_mapped
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xad5cbf6f ubi_open_volume
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb9f3a468 ubi_open_volume_nm
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbc505df4 ubi_get_device_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd2f6d756 ubi_open_volume_path
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd5b148a3 ubi_get_volume_info
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xebb84f55 ubi_leb_map
+EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xfd6f0ef9 ubi_unregister_volume_notifier
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x09f5704e can_bus_off
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x391964db alloc_can_err_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x40e65ade alloc_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4914af9e register_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4d1a0106 unregister_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa217e6ba can_put_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc1da48a4 open_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc28cf491 alloc_can_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd905ba31 can_free_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xda4ef241 free_candev
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf99d4f36 can_get_echo_skb
+EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfcaa454b close_candev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x22eedd27 unregister_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x713b0387 register_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x81e067dd alloc_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x948875ae free_sja1000dev
+EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdc9bd500 sja1000_interrupt
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x111fd37c macvlan_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x471e0a07 macvlan_link_register
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x7eb5bea7 macvlan_dellink
+EXPORT_SYMBOL_GPL drivers/net/macvlan 0x8535da4c macvlan_common_newlink
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x02c9e37e mlx4_mtt_addr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0805ab4a mlx4_mtt_init
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0b219673 mlx4_db_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x0b50190e mlx4_mr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x10bccf3d mlx4_mtt_cleanup
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x11c7ff3d mlx4_pd_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x1ab000d9 mlx4_qp_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2c0bb9b0 mlx4_qp_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2cfa1e39 mlx4_cq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x2fab58e8 mlx4_mr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3180827f mlx4_buf_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x381bc6c7 mlx4_free_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x39e22e5a mlx4_alloc_hwq_res
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3cdce918 mlx4_srq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x3d4c73bd mlx4_cq_resize
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x48d2bbca mlx4_fmr_enable
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x49f61e89 mlx4_uar_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4bb44d97 mlx4_unregister_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4dc929bf mlx4_db_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4e1815d8 mlx4_mr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x4ee2da06 mlx4_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x55e2d437 mlx4_buf_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x600de1f3 mlx4_qp_reserve_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6527ef26 mlx4_buf_write_mtt
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x68b739a4 mlx4_srq_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x6e5014a7 mlx4_INIT_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x712089c1 mlx4_cq_modify
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x84695f5d mlx4_free_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8e074d94 mlx4_unregister_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0x8fa18eb7 mlx4_pd_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xa5b2d28b mlx4_srq_arm
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xb50c50cc __mlx4_cmd
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xba4c4261 mlx4_qp_release_range
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xbff496f2 mlx4_multicast_attach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc1720073 mlx4_srq_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc1f58e3f mlx4_register_interface
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc222439c mlx4_register_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xc686039d mlx4_fmr_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xcde5f7b0 mlx4_qp_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd44c9762 mlx4_CLOSE_PORT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd4856b08 mlx4_unregister_vlan
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd7fe2f3e mlx4_map_phys_fmr
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xd9a6e918 mlx4_SYNC_TPT
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdeb380a0 mlx4_multicast_detach
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdeed2cd8 mlx4_qp_to_ready
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xdfcaec94 mlx4_cq_alloc
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe32f165b mlx4_qp_query
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe6f56c4d mlx4_alloc_cmd_mailbox
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xe8582dba mlx4_fmr_unmap
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xec5c7753 mlx4_qp_remove
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xef19db76 mlx4_register_mac
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfbc526b7 mlx4_fmr_free
+EXPORT_SYMBOL_GPL drivers/net/mlx4/mlx4_core 0xfee157b5 mlx4_uar_alloc
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x3b1db669 usbnet_cdc_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xcac5be42 usbnet_generic_cdc_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1be0e354 generic_rndis_bind
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x8d9455f7 rndis_rx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xacbad99c rndis_status
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc54f9535 rndis_command
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xd4af95a1 rndis_tx_fixup
+EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xdb193f65 rndis_unbind
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x13df6189 usbnet_change_mtu
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x22bcc72a usbnet_get_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x24640705 usbnet_disconnect
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2f0bb8d1 usbnet_get_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x40be859f usbnet_get_ethernet_addr
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4a197deb usbnet_get_link
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4a3b161c usbnet_set_msglevel
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4b6f25c4 usbnet_purge_paused_rxq
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x587de076 usbnet_get_endpoints
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6091f82a usbnet_open
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x64b59d9d usbnet_unlink_rx_urbs
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6cb0adc5 usbnet_defer_kevent
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x77cd1f77 usbnet_nway_reset
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8b3437ff usbnet_resume_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x95c92019 usbnet_get_drvinfo
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x96dee460 usbnet_suspend
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc20f9497 usbnet_stop
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc2df24fd usbnet_skb_return
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcda3729b usbnet_probe
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdaebe9a2 usbnet_resume
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xedf48f1f usbnet_start_xmit
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf91977f6 usbnet_pause_rx
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfe158096 usbnet_set_settings
+EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xff60da1b usbnet_tx_timeout
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0a04cedd i2400m_tx_msg_sent
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0a3d8d0f i2400m_tx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0b35c6fa i2400m_cmd_enter_powersave
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x122fbb13 i2400m_init
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x18622e0f i2400m_set_init_config
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2138d9cc i2400m_dev_reset_handle
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x24df235e i2400m_post_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x30b180e0 i2400m_release
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x320f924c i2400m_error_recovery
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x33835b8b i2400m_tx_msg_get
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x3c57154b i2400m_cmd_get_state
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x433f7204 i2400m_is_boot_barker
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6956f065 i2400m_pre_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6ab2cf8d i2400m_reset
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6fe62fac i2400m_rx
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa330a201 i2400m_netdev_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb5d22a2f i2400m_setup
+EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xca1c1268 i2400m_dev_bootstrap
+EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x415e22c2 libipw_rx_any
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x071edc72 iwl_dealloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0x850c0bd2 iwl_alloc_bcast_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlcore 0xe91c3fbe iwl_remove_station
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x15d182c8 lbs_start_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x21ae7b2a lbs_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x21cf0082 lbs_suspend
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x365c8c4e lbs_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x416875d5 lbs_notify_command_response
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5347c8d8 lbs_queue_event
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5e72358d lbs_host_sleep_cfg
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x7967ac79 __lbs_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8686811d lbs_process_rxed_packet
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x896cb63a lbs_stop_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x99605400 lbs_host_to_card_done
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbbf4e1d7 lbs_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc562c8d1 lbs_resume
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdda4f745 lbs_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x16fe088c lbtf_remove_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x17536a00 __lbtf_cmd
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x35b06078 lbtf_cmd_response_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x479a211a lbtf_add_card
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x73636c7f lbtf_bcn_sent
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x883ccc10 lbtf_send_tx_feedback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb93baa4c lbtf_cmd_copyback
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xbcaebf3f lbtf_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x1e25fe20 if_usb_reset_device
+EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x2246f601 if_usb_prog_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x058d7dd1 p54_parse_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2dbbaf1f p54_free_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5a6a75ad p54_register_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x729dfcc3 p54_init_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc90dcacd p54_read_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xcdf77e59 p54_parse_firmware
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xde51f88c p54_rx
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf66aa7b2 p54_unregister_common
+EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xfc8def47 p54_free_skb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0336d3be rt2800_write_txwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x078d2fcf rt2800_mac80211_ops
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1e100ecc rt2800_config_ant
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1e85fb13 rt2800_wait_wpdma_ready
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1f83bd72 rt2800_config_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x24769331 rt2800_init_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x34830e27 rt2800_config_pairwise_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x48439907 rt2800_process_rxwi
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x48519761 rt2800_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x52bd6c86 rt2800_reset_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x55f0f0e5 rt2800_init_registers
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6682e7a8 rt2800_read_eeprom_efuse
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x689c4b10 rt2800_init_rfcsr
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6a80919a rt2800_config_erp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x993e55a5 rt2800_mcu_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb0bfaaaa rt2800_config_intf
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb84e408b rt2800_config_shared_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xbe32d176 rt2800_link_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc10a35c6 rt2800_init_bbp
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd8608ebb rt2800_probe_hw_mode
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdf8ae9c4 rt2800_link_tuner
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe73ed1a2 rt2800_efuse_detect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf41a877a rt2800_validate_eeprom
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf5c8de36 rt2800_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0552f240 rt2x00mac_start
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x05c001b9 rt2x00mac_configure_filter
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x079abe7e rt2x00queue_get_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0b0752d4 rt2x00mac_add_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x236ba33f rt2x00mac_stop
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x30e08b3f rt2x00mac_get_stats
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5ca45e40 rt2x00mac_bss_info_changed
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x70214704 rt2x00mac_config
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x71482a60 rt2x00mac_conf_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x723cc7a0 rt2x00lib_beacondone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x75af6b68 rt2x00mac_rfkill_poll
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x87b7989e rt2x00mac_set_key
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8a39bf9f rt2x00queue_map_txskb
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x91f7b1a3 rt2x00lib_txdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x938cbca1 rt2x00mac_remove_interface
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc1dcf5ea rt2x00mac_tx
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc2c8eea8 rt2x00lib_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcabbcd8d rt2x00mac_set_tim
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdf54e71e rt2x00queue_get_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe4ea2a7a rt2x00lib_remove_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf9df3650 rt2x00lib_probe_dev
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x17fd1af0 rt2x00pci_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x25875680 rt2x00pci_rxdone
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x294af0b3 rt2x00pci_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x364b9206 rt2x00pci_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x9151fd5c rt2x00pci_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe5a16529 rt2x00pci_remove
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf297a529 rt2x00pci_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x134e1888 rt2x00usb_probe
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1560c66e rt2x00usb_vendor_request_large_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1cfda985 rt2x00usb_write_tx_data
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3ee1c6eb rt2x00usb_vendor_request
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x717d7338 rt2x00usb_disconnect
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x81dab962 rt2x00usb_clear_entry
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9312a46f rt2x00usb_regbusy_read
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x9e5f67d9 rt2x00usb_kick_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa6944ff9 rt2x00usb_vendor_req_buff_lock
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa7635659 rt2x00usb_disable_radio
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdc902132 rt2x00usb_initialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe1a97187 rt2x00usb_kill_tx_queue
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe5072c94 rt2x00usb_uninitialize
+EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe9447ecb rt2x00usb_vendor_request_buff
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x11f2d905 wl1251_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x4f3ba828 wl1251_alloc_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1251 0x7ae41a31 wl1251_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x077b7663 wl1271_unregister_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x21387d4d wl1271_register_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0x7437e1a4 wl1271_free_hw
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xab187d2b wl1271_init_ieee80211
+EXPORT_SYMBOL_GPL drivers/net/wireless/wl12xx/wl1271 0xfb31c7b1 wl1271_alloc_hw
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x2366a747 pcf50633_mbc_get_usb_online_status
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x277e49c1 pcf50633_mbc_usb_curlim_set
+EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xe4680770 pcf50633_mbc_get_status
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x07631fda wm8350_ldo_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x30d13402 wm8350_register_led
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x3501a56d wm8350_dcdc_set_slot
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x6cb3a030 wm8350_dcdc25_set_mode
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x97534355 wm8350_isink_set_flash
+EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xa65b4b20 wm8350_register_regulator
+EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xb83854a7 wm8400_register_regulator
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x00473f07 scsi_dh_attach
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x37423646 scsi_dh_set_params
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x4e4dce7d scsi_unregister_device_handler
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xa09df158 scsi_dh_activate
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xacc9ac72 scsi_dh_detach
+EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xc9890d93 scsi_register_device_handler
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x28f0d524 fcoe_libfc_config
+EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0020c1a1 iscsi_host_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x07462a33 iscsi_host_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0c3cba9b iscsi_requeue_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1963e104 iscsi_eh_target_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x20cff196 iscsi_verify_itt
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x31622282 iscsi_session_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3a5d02ab iscsi_suspend_tx
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4c013df1 iscsi_suspend_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4dd7f842 iscsi_conn_queue_work
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x581e79fb iscsi_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62a3ca1d iscsi_conn_bind
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6a216d53 iscsi_prep_data_out_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6b0bcbb1 iscsi_put_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6d3987f9 iscsi_eh_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x73f3038f iscsi_host_add
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x75d42a50 iscsi_update_cmdsn
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x796b56a5 iscsi_complete_scsi_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7df96410 iscsi_conn_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7fd991c3 __iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x80fa3c06 iscsi_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x82b038cf iscsi_conn_stop
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x848f4f35 iscsi_conn_send_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x95ea4b97 iscsi_complete_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9aa1b6f2 iscsi_host_set_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9ac0c1d1 iscsi_itt_to_ctask
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9d1532a2 iscsi_eh_recover_target
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9deff83f iscsi_host_remove
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9fce83a7 iscsi_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa26214f2 iscsi_eh_device_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa57cc9ef iscsi_pool_init
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa76007d2 iscsi_session_failure
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xadc59329 iscsi_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbd246ec9 iscsi_session_recovery_timedout
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc520177e iscsi_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc807cae1 __iscsi_get_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcf7fc4b5 iscsi_session_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd1256e20 iscsi_host_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd6161b84 iscsi_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd869293f iscsi_itt_to_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe7ff5421 iscsi_eh_session_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe88bee5f iscsi_pool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe963f7f5 iscsi_conn_start
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xecfce64c iscsi_session_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfc4b4675 iscsi_conn_get_param
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0b1e18d3 iscsi_tcp_conn_setup
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x17673d28 iscsi_tcp_conn_teardown
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2fa2c396 iscsi_tcp_hdr_recv_prep
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x30b4edc0 iscsi_tcp_dgst_header
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x41183a85 iscsi_tcp_r2tpool_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x41a96e6a iscsi_tcp_recv_segment_is_hdr
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4a86180a iscsi_tcp_conn_get_stats
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4f0658af iscsi_tcp_cleanup_task
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7327b65b iscsi_segment_seek_sg
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fdadf70 iscsi_segment_init_linear
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x84bc60c2 iscsi_tcp_r2tpool_free
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xb3b7cbaa iscsi_tcp_segment_done
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbaec7c0f iscsi_tcp_task_xmit
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd7367252 iscsi_tcp_recv_skb
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe6b66646 iscsi_tcp_segment_unmap
+EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf385f4ce iscsi_tcp_task_init
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x08ed1f8b sas_unregister_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0a5dcfaa sas_slave_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0d99ec11 sas_change_queue_type
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x37f27d85 __sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x399152b4 sas_ssp_task_response
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3ca6d0a9 sas_bios_param
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4235bbe4 sas_eh_device_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x526b75cc sas_task_abort
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x62d2c22e sas_phy_enable
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x741f1e61 sas_queuecommand
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x779b782c sas_domain_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x788f2771 sas_find_local_phy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x83821dae sas_request_addr
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x86f15f6a sas_register_ha
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8d0360c7 sas_phy_reset
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa24a6e67 sas_domain_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xaa40b564 sas_eh_bus_reset_handler
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb0fa5996 sas_slave_configure
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb44051a4 sas_target_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbb4c8de8 sas_ioctl
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc7048f39 sas_slave_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcf6ebb1f sas_change_queue_depth
+EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfc0d02aa sas_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x3ee965cb srp_target_free
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x433fcb25 srp_cmd_queue
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x6f57e2f6 srp_iu_put
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa486b508 srp_transfer_data
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa879702a srp_target_alloc
+EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xdcf7c1fa srp_iu_get
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1a56d892 scsi_tgt_it_nexus_create
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x26a882f5 scsi_host_put_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x54a0b728 scsi_tgt_tsk_mgmt_request
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x6eb6f990 scsi_tgt_alloc_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7cbc8909 scsi_tgt_it_nexus_destroy
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x92a8eaab scsi_tgt_queue_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xa236c8ec scsi_tgt_cmd_to_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xa3f28d49 scsi_host_get_command
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xea6e5115 scsi_tgt_free_queue
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x010b4dd2 iscsi_offload_mesg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x049f9de4 iscsi_session_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0da27751 iscsi_lookup_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x11ac8f58 iscsi_block_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x37890021 iscsi_conn_error_event
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x39f6918e iscsi_recv_pdu
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3c0eb8a6 iscsi_scan_finished
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3ccb0814 iscsi_register_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x431b3883 iscsi_create_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4ff06045 iscsi_add_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5c95b623 iscsi_free_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x86af1a04 iscsi_alloc_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8dba861f iscsi_create_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x97a931cf iscsi_host_for_each_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa0867e8f iscsi_unblock_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xae900dec iscsi_destroy_endpoint
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbd882bd5 iscsi_session_chkready
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc0df33c8 iscsi_destroy_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc18c3df7 iscsi_unregister_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc6b966c5 iscsi_destroy_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe7d029ea iscsi_create_conn
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xea053bae iscsi_remove_session
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x38f1eb0c sas_enable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xc8237ff8 sas_disable_tlr
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xf642c5b7 sas_tlr_supported
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xfdff40e5 sas_is_tlr_enabled
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0x0ef06974 spi_populate_ppr_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xa0c71dac spi_populate_sync_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_spi 0xcffa2aff spi_populate_width_msg
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x466f8aa3 srp_release_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x84a8aa9d srp_rport_del
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xc345bdc8 srp_attach_transport
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xcc807e86 srp_remove_host
+EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xcde878f4 srp_rport_add
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x51dc46a3 pciserial_remove_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0x7d3f3bd7 pciserial_resume_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xea0e6400 pciserial_init_ports
+EXPORT_SYMBOL_GPL drivers/serial/8250_pci 0xea471b3d pciserial_suspend_ports
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x5d37610f spi_bitbang_setup_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0x74d64b91 spi_bitbang_stop
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xc4a2ba5e spi_bitbang_setup
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xe3d2af5d spi_bitbang_transfer
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xe8df68f4 spi_bitbang_start
+EXPORT_SYMBOL_GPL drivers/spi/spi_bitbang 0xfc00ad16 spi_bitbang_cleanup
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x71593ddd __uio_register_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0x7199c4d7 uio_unregister_device
+EXPORT_SYMBOL_GPL drivers/uio/uio 0xa4e81c0d uio_event_notify
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x695514b6 usbatm_usb_probe
+EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xda0ea017 usbatm_usb_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0266390d usb_ftdi_elan_write_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0d98eed6 usb_ftdi_elan_read_pcimem
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x28dfa6f3 usb_ftdi_elan_edset_input
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x341f02d2 usb_ftdi_elan_edset_output
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x3962544e usb_ftdi_elan_edset_single
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x9f048a7c usb_ftdi_elan_edset_flush
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xab43c17c usb_ftdi_elan_edset_empty
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xc6304cad ftdi_elan_gone_away
+EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xd701f2fb usb_ftdi_elan_edset_setup
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x04526f9f usb_serial_register
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x073d2f52 usb_serial_generic_read_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0efb64ad usb_serial_generic_write_bulk_callback
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4d2445dd usb_serial_handle_sysrq_char
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x585eac64 usb_serial_generic_throttle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7205238e usb_serial_generic_process_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x86858f35 usb_serial_probe
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x89ae5bdc usb_serial_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8bc1b417 usb_serial_generic_resume
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9c545d92 usb_serial_deregister
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9f50930c usb_serial_generic_open
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa6572b1c ezusb_set_reset
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa8f5f5cf usb_serial_handle_break
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd531ff32 usb_serial_generic_write
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd7cab17a usb_serial_generic_unthrottle
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd9cc670a usb_serial_generic_close
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe0eca7ec ezusb_writememory
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe4b3fcbd usb_serial_generic_submit_read_urb
+EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe8b8f14c usb_serial_port_softint
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0be13004 usb_storage_usb_ids
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x201a1319 usb_stor_post_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3762db61 usb_usual_ignore_device
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x37f8b0f0 usb_stor_probe2
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x403aea28 usb_stor_CB_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x58132962 usb_stor_ctrl_transfer
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7285795b usb_stor_pre_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8df3f6c3 usb_stor_bulk_srb
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x95d03810 usb_stor_CB_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9860a49f usb_stor_control_msg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9ed93357 usb_stor_bulk_transfer_sg
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9ef38d8d fill_inquiry_response
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa1e4c683 usb_stor_transparent_scsi_command
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa2a98095 usb_stor_bulk_transfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbbe8109e usb_stor_Bulk_reset
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbd8854c9 usb_stor_set_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc618c1ff usb_stor_Bulk_transport
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc9ce9215 usb_stor_disconnect
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd2c289f2 usb_stor_clear_halt
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf62925fb usb_stor_probe1
+EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfec0310e usb_stor_access_xfer_buf
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x41d0dd12 __wa_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x5197a996 rpipe_ep_disable
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xab63749c wa_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb71e848 wa_urb_dequeue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcf699d1b wa_urb_enqueue
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x10c75e52 wusbhc_mmcie_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x19d62732 wusbhc_rh_control
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x25f55ee5 wusbhc_rh_start_port_reset
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4dd3516c wusbhc_rh_status_data
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x512cea88 wusbhc_chid_set
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x58a5efed wusbhc_b_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6105356e __wusb_dev_get_by_usb_dev
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6a7440bf wusbhc_rh_suspend
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x73f650c5 wusbhc_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x846edf94 wusbhc_handle_dn
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8ec0975f wusbhc_mmcie_rm
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9ac55940 wusbhc_b_create
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xa59bba70 wusbhc_destroy
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xaa43b126 wusbhc_reset_all
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb3e7e6a0 wusbhc_giveback_urb
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfa2d59ba wusbhc_rh_resume
+EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x58488c31 i1480_rceb_check
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xb4960ce5 i1480_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xbcd9d973 i1480_fw_upload
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x3870d9a4 uwb_rts_cts_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x6b29b84e uwb_phy_rate_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0x98998a74 uwb_rts_cts_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xaf98a261 uwb_ack_policy_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xb883e046 uwb_pca_base_priority_show
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xbffd94e4 uwb_pca_base_priority_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xc406d5e2 uwb_phy_rate_store
+EXPORT_SYMBOL_GPL drivers/uwb/i1480/i1480u-wlp/i1480u-wlp 0xd8956ade uwb_ack_policy_show
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x3fe9623c umc_device_create
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x49a88dc2 umc_device_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x583770cd umc_match_pci_id
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0x6e8b2a30 umc_bus_type
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xaa301e76 umc_controller_reset
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xcb8afb8d umc_device_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd1cef072 __umc_driver_register
+EXPORT_SYMBOL_GPL drivers/uwb/umc 0xf625f13e umc_driver_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x006889d3 uwb_rsv_modify
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x07b0b49c uwb_rc_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0f04829f uwb_rsv_terminate
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1403e000 uwb_notifs_deregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2c675c54 uwb_rc_ie_add
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3064b622 uwb_rc_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x444f07c0 uwb_pal_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x51fe95cb __uwb_rc_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x52a29b22 uwb_pal_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5a1dbc9e uwb_radio_stop
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5ceb9729 uwb_rc_neh_grok
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x644a2b2a uwb_radio_start
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x65205b4c uwb_rc_mac_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6660e137 uwb_rc_post_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x66694c62 uwb_est_find_size
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6b9377c5 uwb_ie_next
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6c77aa83 uwb_rc_get_by_dev
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7cf2d6d1 uwb_rc_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7ecc9809 uwb_rc_cmd_async
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7ffc8e62 uwb_rsv_destroy
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8cb42db6 __uwb_addr_print
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x94a052be uwb_rc_ie_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x96f18e25 uwb_rc_neh_error
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9ada34e2 uwb_rc_put
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9ebc8501 uwb_pal_init
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb95c6cd1 uwb_rc_get_by_grandpa
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xba5448a0 uwb_dev_for_each
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbce47260 uwb_rsv_create
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc0173a6b uwb_rc_pre_reset
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc2b7251b uwb_rc_rm
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc705ce67 uwb_notifs_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xce74a6f8 uwb_rsv_accept
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd2c96fce uwb_rc_vcmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdd0a2f9a uwb_rsv_get_usable_mas
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe3bc26ef uwb_dev_try_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeb4cab9a uwb_est_register
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xef08ac9b uwb_rc_dev_addr_get
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf1e35321 uwb_rc_cmd
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf7ca313a uwb_est_unregister
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfcfbf8a4 uwb_rsv_establish
+EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfed4e8d1 uwb_rc_alloc
+EXPORT_SYMBOL_GPL drivers/uwb/whci 0x047827a3 whci_wait_for
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x1075e6eb wlp_dev_manufacturer_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x230e1d56 wlp_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x286cd0d2 wlp_dev_model_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x32cbd803 wlp_dev_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x35bc0e3f wlp_wss_remove
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x385d541f wlp_eda_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x3f463d19 wlp_neighborhood_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x4fdd78fc wlp_dev_manufacturer_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x5555fc42 wlp_uuid_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x679b1ca7 wlp_uuid_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x76b8b157 wlp_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x7e2a9388 wlp_prepare_tx_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x88e19773 wlp_wss_activate_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8a184263 wlp_dev_prim_OUI_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8a84e149 wlp_dev_name_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8ad6a682 wlp_dev_prim_OUI_sub_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8d0c93e7 wlp_dev_prim_OUI_sub_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8d6afac9 wlp_reset_all
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x8f5bf5d7 wlp_wss_activate_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x922badf4 wlp_receive_frame
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x96635436 wlp_wss_setup
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0x9e6df908 wlp_dev_prim_subcat_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa06b4355 wlp_dev_model_nr_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xa9efab93 wlp_dev_serial_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xb6834b26 wlp_dev_prim_category_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xc94cffad wlp_dev_prim_OUI_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xcd11b30f wlp_dev_model_nr_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xd5c5302e wlp_eda_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xe829ffb9 wlp_dev_model_name_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xec70bf67 wlp_dev_prim_subcat_store
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xf7efee9c wlp_dev_prim_category_show
+EXPORT_SYMBOL_GPL drivers/uwb/wlp/wlp 0xfd92598e wlp_dev_serial_show
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x14a4acda ili9320_remove
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3810f121 ili9320_write_regs
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x881b32cf ili9320_write
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x97fbf865 ili9320_shutdown
+EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd12c8d57 ili9320_probe_spi
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x4cbde2ac fb_sys_write
+EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xb6ac1ff6 fb_sys_read
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x292da7a2 viafb_irq_enable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x30cc9311 viafb_request_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x557efa1c viafb_dma_copy_out_sg
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x79e6190a viafb_irq_disable
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x9559b57a viafb_find_i2c_adapter
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xcaefb732 viafb_release_dma
+EXPORT_SYMBOL_GPL drivers/video/via/viafb 0xfff2dfd2 viafb_gpio_lookup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x56d9f311 w1_write_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x5fa773d2 w1_next_pullup
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x688bccff w1_write_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xa34f5cf2 w1_read_8
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xa72d15d9 w1_reset_bus
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xc72a495b w1_read_block
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xf8c6ff6b w1_reset_select_slave
+EXPORT_SYMBOL_GPL drivers/w1/wire 0xf952349a w1_touch_block
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x0864c4a4 dlm_new_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x4827d76e dlm_posix_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xa451ce9d dlm_posix_lock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock
+EXPORT_SYMBOL_GPL fs/dlm/dlm 0xf9d6c012 dlm_posix_get
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0x8d1bea76 exportfs_encode_fh
+EXPORT_SYMBOL_GPL fs/exportfs/exportfs 0xed0c4242 exportfs_decode_fh
+EXPORT_SYMBOL_GPL fs/fat/fat 0x03324412 fat_remove_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0x0c1e75d1 fat_scan
+EXPORT_SYMBOL_GPL fs/fat/fat 0x208961e7 fat_dir_empty
+EXPORT_SYMBOL_GPL fs/fat/fat 0x22ed7a8e fat_build_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0x398a0239 __fat_fs_error
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3c02fc29 fat_detach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x3ff401b9 fat_time_unix2fat
+EXPORT_SYMBOL_GPL fs/fat/fat 0x582489c4 fat_sync_inode
+EXPORT_SYMBOL_GPL fs/fat/fat 0x6093326b fat_free_clusters
+EXPORT_SYMBOL_GPL fs/fat/fat 0x66e8b19a fat_attach
+EXPORT_SYMBOL_GPL fs/fat/fat 0x6952d652 fat_getattr
+EXPORT_SYMBOL_GPL fs/fat/fat 0x7d176aa4 fat_fill_super
+EXPORT_SYMBOL_GPL fs/fat/fat 0x89c28337 fat_get_dotdot_entry
+EXPORT_SYMBOL_GPL fs/fat/fat 0x97462971 fat_alloc_new_dir
+EXPORT_SYMBOL_GPL fs/fat/fat 0x9d1e13d9 fat_add_entries
+EXPORT_SYMBOL_GPL fs/fat/fat 0xa0df8829 fat_search_long
+EXPORT_SYMBOL_GPL fs/fat/fat 0xde3c92cb fat_flush_inodes
+EXPORT_SYMBOL_GPL fs/fat/fat 0xf84faae8 fat_setattr
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0bb4530c nlmclnt_proc
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1a618932 nlmsvc_unlock_all_by_ip
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x1f1f8802 nlmsvc_unlock_all_by_sb
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x60b65a40 nlmsvc_ops
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6ef75a70 nlmclnt_init
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6f959b35 locks_in_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8dc32f8f nlmclnt_done
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96877ac4 locks_start_grace
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa7b91a7b lockd_down
+EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf6933c48 lockd_up
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x55576b86 nfsacl_decode
+EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xe822b351 nfsacl_encode
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2bb4e4f5 o2nm_node_get
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x47151672 o2nm_node_put
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4c2c6413 o2hb_setup_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x521e0726 o2net_send_message_vec
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5ca68263 o2hb_register_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x6292eed5 o2hb_unregister_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xad198992 o2nm_get_node_by_ip
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc40b13ae o2nm_get_node_by_num
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list
+EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x1be5cb92 dlm_register_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x48df716c dlmlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x84856b9b dlm_unregister_domain
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb60673fb dlm_print_one_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xb852e32e dlmunlock
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd550acf1 dlm_register_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb
+EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x60d108ac ocfs2_stack_glue_unregister
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x8983e424 ocfs2_stack_glue_register
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x8a25a157 ocfs2_plock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version
+EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb
+EXPORT_SYMBOL_GPL lib/lzo/lzo_compress 0x2e1d43cf lzo1x_1_compress
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x300d7e57 free_rs
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x6fbb3bd9 init_rs_non_canonical
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xabda1e2e decode_rs16
+EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0xb050f329 init_rs
+EXPORT_SYMBOL_GPL net/802/garp 0x8c7c533c garp_init_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0x966c2a98 garp_uninit_applicant
+EXPORT_SYMBOL_GPL net/802/garp 0xa782e0d0 garp_request_leave
+EXPORT_SYMBOL_GPL net/802/garp 0xe26a74d5 garp_unregister_application
+EXPORT_SYMBOL_GPL net/802/garp 0xe6e2bfb8 garp_register_application
+EXPORT_SYMBOL_GPL net/802/garp 0xec0b2646 garp_request_join
+EXPORT_SYMBOL_GPL net/802/stp 0x63d240c8 stp_proto_register
+EXPORT_SYMBOL_GPL net/802/stp 0x6f46b077 stp_proto_unregister
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0432d4fd dccp_set_state
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x0bea83cc dccp_ioctl
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x10688ab1 dccp_shutdown
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1a07538f dccp_check_req
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1bc034f6 dccp_create_openreq_child
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2364f09e dccp_reqsk_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x27f2fc7a dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2cf17a4f dccp_send_sync
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2de42ec0 dccp_orphan_count
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x2fd21681 compat_dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3aa71967 dccp_ctl_make_reset
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c7efb3c dccp_poll
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x4f9cdee1 dccp_send_ack
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x50b8dd7e inet_dccp_listen
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x55702652 dccp_close
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x56ea266a dccp_state_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5d80c2d0 dccp_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x5e00d766 dccp_insert_option
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x69d35b3f dccp_child_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x734195da dccp_rcv_state_process
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x73ad63bb dccp_hashinfo
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x7569b73e dccp_sendmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8b7d8caf dccp_statistics
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8bbb9d88 dccp_sync_mss
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8eca0bcd dccp_destroy_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x8ee4d2f0 dccp_insert_option_timestamp
+EXPORT_SYMBOL_GPL net/dccp/dccp 0x9410d0be dccp_reqsk_init
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa4be517d dccp_death_row
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xa6a0962c compat_dccp_setsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xc3692192 dccp_insert_option_elapsed_time
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xd7aeb5db dccp_rcv_established
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe11fa13f dccp_make_response
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe13133dc dccp_done
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xe85c49a3 dccp_disconnect
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xed06e986 dccp_getsockopt
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xed75a1ef dccp_init_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xf9910e8d dccp_parse_options
+EXPORT_SYMBOL_GPL net/dccp/dccp 0xfde72b89 dccp_recvmsg
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x16bf06ce dccp_v4_connect
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x2a01afd5 dccp_invalid_packet
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4ac2a5da dccp_v4_conn_request
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x80b43071 dccp_v4_send_check
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x876d37f9 dccp_v4_request_recv_sock
+EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xa1e2e19e dccp_v4_do_rcv
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x6c2e4131 arpt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x37227b97 ipt_alloc_initial_table
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0x6d40a921 need_ipv4_conntrack
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_conntrack_ipv4 0xb78a1e6d nf_nat_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_defrag_ipv4 0x6b6c3d10 nf_defrag_ipv4_enable
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x02c5e25e nf_nat_packet
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x07ae60b6 nf_nat_proto_in_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x41e8a37f nf_nat_set_seq_adjust
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4214d928 nf_nat_proto_range_to_nlattr
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x4ca29ea9 nf_nat_proto_unique_tuple
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x6579a211 nf_nat_proto_put
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x8ca68c5f nf_nat_icmp_reply_translation
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0x94a08134 nf_nat_proto_nlattr_to_range
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xa41794d5 nf_nat_proto_find_get
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat 0xe0815866 nf_nat_get_offset
+EXPORT_SYMBOL_GPL net/ipv4/netfilter/nf_nat_proto_gre 0x636b12c8 nf_nat_need_gre
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x1aa66957 tcp_vegas_cwnd_event
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x20374939 tcp_vegas_pkts_acked
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7cd1e6bf tcp_vegas_state
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa06f328a tcp_vegas_get_info
+EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa1501bc3 tcp_vegas_init
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x017543f0 net_ipv6_ctl_path
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x14ce545b inet6_csk_bind_conflict
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x2688c808 ip6_dst_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x3fbd36ff inet6_destroy_sock
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x4fe87185 inet6_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x5237b1f9 ip6_sk_dst_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x5308d8de ipv6_dup_options
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x55a35fc3 ipv6_opt_accepted
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x6cb3a470 inet6_csk_xmit
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x6fa138f3 ipv6_find_tlv
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x78cbd696 ip6_local_out
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x82d6ecb5 ip6_dst_blackhole
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x85478a0b inet6_hash_frag
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0x902b2d9a inet6_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xd71c265d fl6_sock_lookup
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xe5e822a1 inet6_sk_rebuild_header
+EXPORT_SYMBOL_GPL net/ipv6/ipv6 0xff2db43e inet6_csk_search_req
+EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xbb53203d ip6t_alloc_initial_table
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x077258cc l2tp_session_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x18530aae l2tp_xmit_skb
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3581c4a1 l2tp_tunnel_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x49d0c3a8 l2tp_tunnel_closeall
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4c2ec169 l2tp_session_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x57dfdfc0 l2tp_tunnel_find_nth
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x59c5d4dd l2tp_session_free
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6f45ea29 l2tp_udp_encap_recv
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x75383627 l2tp_session_find_by_ifname
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x812906a3 l2tp_tunnel_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8f495899 l2tp_xmit_core
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa317ac15 l2tp_tunnel_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xaca24873 l2tp_session_find
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb0612b46 l2tp_session_delete
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xcab33f4f l2tp_tunnel_create
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd1250acb l2tp_session_set_header_len
+EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdae1ef47 l2tp_udp_recv_core
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x1fece01b ieee80211_iterate_active_interfaces_atomic
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xae2f77dd ieee80211_find_sta_by_hw
+EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe1f99f89 ieee80211_iterate_active_interfaces
+EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x0a965b31 net_vs_ctl_path
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x003227a6 nf_conntrack_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x04c839bf __nf_conntrack_helper_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06843230 nf_conntrack_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a217c4c nf_conntrack_in
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0b555955 nf_conntrack_helper_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f830008 __nf_ct_l4proto_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x10282849 seq_print_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x112eb2e3 __nf_ct_refresh_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1231103e nf_ct_get_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x18a9e0b8 nf_conntrack_alter_reply
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x18c122b1 nf_ct_helper_ext_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1acce8bb nf_conntrack_flush_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e5a579d nf_conntrack_l3proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x24d1d6a6 nf_ct_port_tuple_to_nlattr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x304b35d2 __nf_ct_expect_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3396176f nf_conntrack_tuple_taken
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x386fc28e nf_ct_expect_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3bf6686f nf_ct_expect_alloc
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x443d74e0 __nf_ct_try_assign_helper
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45e400ac nf_conntrack_l4proto_udp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x46e15539 nf_ct_deliver_cached_events
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b9065a9 nf_ct_alloc_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x505b4d8a __nf_conntrack_confirm
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x547adb09 nf_conntrack_l4proto_tcp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5882ba33 nf_conntrack_set_hashsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d84bb0a nf_ct_l3proto_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5e83ec27 nf_ct_unlink_expect
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6403e182 nf_ct_nat_offset
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x664cb98b nf_conntrack_l4proto_tcp6
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d5bec85 nf_ct_remove_expectations
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6f9beac4 __nf_ct_kill_acct
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77d2622e nf_conntrack_l4proto_udp4
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8c4d8478 nf_conntrack_free
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90619427 __nf_conntrack_find
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9698c9af nf_expect_event_cb
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x97757890 nf_ct_expect_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9af3f6c1 nf_ct_free_hashtable
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9b1885d5 nf_ct_insert_dying_list
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9e8ad62d nf_ct_extend_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0486e16 nf_ct_expect_init
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa42407af nf_conntrack_l4proto_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa89d4413 print_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa8cd38fa nf_conntrack_unregister_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa1da624 nf_ct_l3proto_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad033531 nfnetlink_parse_nat_setup_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae19e9b9 nf_conntrack_find_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaf96082d nf_ct_invert_tuple
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb2dcb2f2 nf_ct_expect_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb4ec6965 nf_conntrack_l3proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbbcd247d nf_ct_extend_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbee6e27d nf_ct_expect_related_report
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbfb7c165 nf_ct_delete_from_lists
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc288789f nf_conntrack_hash_insert
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc70efd78 nf_conntrack_untracked
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcdac2052 nf_conntrack_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd3ded6cd nf_ct_unexpect_related
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf0f57ca nf_conntrack_l4proto_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf7e565c nf_conntrack_helper_try_module_get
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4945b43 nf_ct_expect_register_notifier
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe4c280c4 nf_conntrack_helper_register
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xea0a257c nf_ct_get_tuplepr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xefc1eb29 nf_ct_l3protos
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf030f31d nf_conntrack_lock
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5d5fe5e nf_ct_iterate_cleanup
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf5f65911 nf_conntrack_l3proto_generic
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x8ec5e418 nf_nat_amanda_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xbc7f73dc nf_nat_ftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x103d1896 nat_callforwarding_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x21b9c7a9 nat_q931_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3f10a894 set_ras_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6075764c set_sig_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6e168ddc get_h225_addr
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9f99813b nat_h245_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb20f13cf nat_t120_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xba584a0d set_h225_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xda0f6bde nat_rtp_rtcp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xdf6e8584 set_h245_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x2d02a64f nf_nat_irc_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x10ee8734 nf_nat_pptp_hook_expectfn
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x9d8d9465 nf_nat_pptp_hook_outbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xc8f60591 nf_nat_pptp_hook_inbound
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf70e40cf nf_nat_pptp_hook_exp_gre
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x2d97b8c8 nf_ct_gre_keymap_destroy
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x31f88107 nf_ct_gre_keymap_add
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x05f15218 nf_nat_sip_expect_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4168399b nf_nat_sip_seq_adjust_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x58bd3013 nf_nat_sip_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x5c3169c5 ct_sip_get_sdp_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x73aa2949 ct_sip_parse_header_uri
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7b19cb3c ct_sip_parse_numerical_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x92888c91 nf_nat_sdp_port_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x96fe8975 ct_sip_get_header
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa433fdc9 nf_nat_sdp_media_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xb7a37421 nf_nat_sdp_addr_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc08ac1a7 nf_nat_sdp_session_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xeab817ad ct_sip_parse_request
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xfbd6d764 ct_sip_parse_address_param
+EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x246507dc nf_nat_tftp_hook
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x44065df7 nf_tproxy_get_sock_v4
+EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xc03c6f90 nf_tproxy_assign_sock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1f58e71b nfnl_lock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x2a084493 nfnetlink_unicast
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3895cd7a nfnl_unlock
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x9a93902a nfnetlink_subsys_register
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xad3d5fe8 nfnetlink_send
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xe1cf64ee nfnetlink_has_listeners
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xedfaf952 nfnetlink_set_err
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xf8f3492f nfnetlink_subsys_unregister
+EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x355bb8d8 nfulnl_log_packet
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x071c6429 xt_hook_link
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x097dc51d xt_compat_match_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x20c4f899 xt_request_find_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x222e1edc xt_compat_target_to_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x35574334 xt_proto_fini
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4a1fbdc5 xt_compat_target_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5bb7953f xt_info_locks
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5ea78132 xt_compat_target_from_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x60e03d7e xt_unregister_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x684694c5 xt_compat_add_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x983a2835 xt_register_table
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9843a63e xt_compat_match_to_user
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9b8d7d53 xt_table_unlock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb50ef986 xt_find_table_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbf7e7251 xt_compat_match_offset
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc3de995e xt_request_find_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd8ffc76e xt_check_target
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdd6a8174 xt_proto_init
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdea9428b xt_hook_unlink
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe18206d0 xt_check_match
+EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe6c8f527 xt_replace_table
+EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq
+EXPORT_SYMBOL_GPL net/rds/rds 0x16207655 rds_cong_map_updated
+EXPORT_SYMBOL_GPL net/rds/rds 0x2acb654a rds_inc_init
+EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x30514c90 rds_info_register_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension
+EXPORT_SYMBOL_GPL net/rds/rds 0x393ebaf1 rds_send_drop_acked
+EXPORT_SYMBOL_GPL net/rds/rds 0x4107ad52 rds_trans_unregister
+EXPORT_SYMBOL_GPL net/rds/rds 0x423c85c8 rds_message_unmapped
+EXPORT_SYMBOL_GPL net/rds/rds 0x44447812 rds_rdma_send_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0x46c1dc74 rds_info_deregister_func
+EXPORT_SYMBOL_GPL net/rds/rds 0x50d9f692 rds_message_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header
+EXPORT_SYMBOL_GPL net/rds/rds 0x7abe013d rds_conn_create
+EXPORT_SYMBOL_GPL net/rds/rds 0x7d177603 rds_recv_incoming
+EXPORT_SYMBOL_GPL net/rds/rds 0x8629d813 rds_inc_put
+EXPORT_SYMBOL_GPL net/rds/rds 0x8cf63371 rds_conn_drop
+EXPORT_SYMBOL_GPL net/rds/rds 0x9b90e21a rds_connect_complete
+EXPORT_SYMBOL_GPL net/rds/rds 0xa9392979 rds_conn_destroy
+EXPORT_SYMBOL_GPL net/rds/rds 0xabe6ff42 rds_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xaecadd69 rds_inc_addref
+EXPORT_SYMBOL_GPL net/rds/rds 0xbbba5a57 rds_trans_register
+EXPORT_SYMBOL_GPL net/rds/rds 0xc2da8e38 rds_stats_info_copy
+EXPORT_SYMBOL_GPL net/rds/rds 0xcb52b112 rds_send_get_message
+EXPORT_SYMBOL_GPL net/rds/rds 0xcb7e90ea rds_for_each_conn_info
+EXPORT_SYMBOL_GPL net/rds/rds 0xd9eb59fc rds_message_put
+EXPORT_SYMBOL_GPL net/rds/rds 0xe186bc3c rds_conn_create_outgoing
+EXPORT_SYMBOL_GPL net/rds/rds 0xe8ed17ba rds_page_copy_user
+EXPORT_SYMBOL_GPL net/rds/rds 0xf58ccc3b rds_stats
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x920a66e9 rxrpc_unregister_security
+EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xe6b626f4 rxrpc_register_security
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x00c52ef5 g_make_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x09c34632 gss_mech_get_by_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x12b5dd4c gss_service_to_auth_domain_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1944bcee gss_mech_get_by_name
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x1df1410c gss_mech_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x31789e19 gss_mech_put
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x3942722e svcauth_gss_flavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x7e6b3963 svc_gss_principal
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x94bc414c gss_mech_register
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x978f81fc gss_pseudoflavor_to_service
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb7d89bdf gss_svc_to_pseudoflavor
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd0af9693 gss_mech_get
+EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x00d9024d svc_reserve
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0184276d rpcb_getport_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01b3fd92 xdr_init_encode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bd5daa2 svc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c66726c unix_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0efcda21 rpc_pton
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ff08177 sunrpc_cache_update
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1020b767 xdr_shift_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1144fd14 rpc_run_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x114eeadc xprt_reserve_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11dedc55 auth_domain_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12037500 rpc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12e280e3 svc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14319e09 rpc_clone_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x147fb30a xdr_partial_copy_from_skb
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15291a72 svc_xprt_received
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1681f827 rpc_wake_up_next
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16cb91e4 svc_sock_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x176c8148 rpcauth_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x19e73903 xprt_set_retrans_timeout_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d1907ef rpc_malloc
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d5a1109 svc_drop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1de603b4 rpcauth_lookup_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f5068bd xdr_inline_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x220a83e1 read_bytes_from_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x295a12dd svc_create_pooled
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a257aed xdr_init_decode
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c6b3b41 svcauth_unix_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c6c17a9 rpc_killall_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2dc1395d csum_partial_copy_to_xdr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30ad8bd1 put_rpccred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x322aa6b2 rpc_call_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x32675650 xdr_process_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x350bf83c rpc_mkpipe
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x36e3180b xdr_decode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ec34183 xprt_write_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x402f17c1 xdr_encode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x417dfb4a rpc_peeraddr2str
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x438ff69b sunrpc_cache_unregister_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47398e5c xprt_complete_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49903934 svc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4afb4820 svc_authenticate
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b10172e auth_unix_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f74fb92 rpc_proc_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x51cbb387 svc_exit_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x537ecc5a xdr_read_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x552b4893 svc_xprt_names
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57bdc040 rpc_restart_call_prepare
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b14ec1a rpc_put_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5bd26000 rpc_proc_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d0825cf svc_create_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e6aa8ec xprt_wait_for_buffer_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5eef8ad4 svc_xprt_put
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60f42d81 auth_unix_add_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61bd52b2 rpc_wake_up_queued_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6440f473 cache_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x675524ec rpc_sockaddr2uaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68dabec7 xdr_reserve_space
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69b55c33 svc_sock_update_bufs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ae04c34 svc_xprt_enqueue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6b6f981f svc_xprt_init
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c5304c5 rpcb_getport_sync
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6eea229d svcauth_unix_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7015af26 svc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7231219c rpc_ntop
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x729807dd sunrpc_cache_register_pipefs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x764f4cbd svc_addsock
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x775adaf6 rpc_uaddr2sockaddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77b9c52a rpc_unlink
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b7dd517 rpcauth_unregister
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e2409aa xdr_encode_array2
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e2f89ce rpcauth_generic_bind_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e8663c6 svc_print_addr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f911f29 svc_seq_show
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x84e6c448 rpc_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8873d11a svc_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x89a6c1fe rpc_get_mount
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a1ab5e6 rpcauth_init_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a3a2f87 xprt_lookup_rqst
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a851393 xdr_buf_from_iov
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b23ac67 auth_domain_find
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x904327ae svc_set_num_threads
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9185a7fd auth_unix_forget_old
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9829b1b5 rpc_sleep_on
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98485352 xdr_inline_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9937017d svc_xprt_copy_addrs
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9daba3ed rpc_alloc_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ec634c6 rpc_call_null
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f23be44 svc_unreg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5c568dc rpc_queue_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa71baa5c rpc_destroy_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa760d995 rpc_wake_up_status
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa82c2f4b sunrpc_cache_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8659ffa rpcauth_destroy_credcache
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9a5e7aa xdr_encode_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9c0b1c1 rpc_call_async
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa713123 rpc_bind_new_program
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae0e5d35 rpc_init_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf073551 rpc_restart_call
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb16c4859 svc_auth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3595bc8 sunrpc_cache_pipe_upcall
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb80b1604 svc_sock_create
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba5e15cb __rpc_wait_for_completion_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbaca998b xprt_reserve_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbcffabe0 cache_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd1b5ab4 rpc_force_rebind
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbee5696d xprt_disconnect_done
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf26ff70 xprt_adjust_cwnd
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbfc5646d auth_domain_lookup
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc1e1c626 rpc_exit_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc467640c xprt_release_xprt_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc4cdbe6e svc_process
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc5509941 rpc_print_iostats
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6c7c836 rpc_max_payload
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca4458d5 xprt_release_rqst_cong
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca584796 xprt_register_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccd32451 xdr_write_pages
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcd26d874 rpc_lookup_machine_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3361a67 rpcauth_init_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd380c6df cache_purge
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3bb3e7e svc_recv
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4bdcdfe rpc_init_priority_wait_queue
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda657f1c cache_check
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbf61f54 xdr_enter_page
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc636d6a rpc_delay
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdc82213b rpc_peeraddr
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdccb40d7 rpc_shutdown_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde9ce430 xdr_decode_word
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdeda5993 svc_close_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdf975b81 svc_find_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe08a1b40 xprt_set_retrans_timeout_def
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe45b6434 rpc_setbufsize
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4a816e7 rpc_call_start
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7ef94a2 svc_set_client
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8bc2c74 svc_sock_destroy
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9a3aaae xprt_release_xprt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee3f1cb1 rpc_put_task
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5352250 write_bytes_to_xdr_buf
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf56c5036 xprt_unregister_transport
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8b2fcca xdr_buf_subsegment
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9150d62 rpc_queue_empty
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9c3d96e rpcauth_register
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa52906d xdr_skb_read_bits
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb1b6502 svc_reg_xprt_class
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd8a5104 rpc_lookup_cred
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdbd3c69 xprt_wake_pending_tasks
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe415a65 svc_wake_up
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfe9e4e07 svc_prepare_thread
+EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff4babc4 xdr_buf_read_netobj
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x00efeaa5 wimax_msg
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x086f1407 wimax_msg_data_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x0e95e20d wimax_report_rfkill_sw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x3c1c250b wimax_msg_alloc
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x46969e67 wimax_state_get
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x4b9dbc2e wimax_dev_init
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x52152623 wimax_report_rfkill_hw
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x5e20d6a4 wimax_msg_send
+EXPORT_SYMBOL_GPL net/wimax/wimax 0x8ed09276 wimax_dev_add
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xa8e41dd4 wimax_msg_len
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xab593547 wimax_msg_data
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xb51cde1e wimax_dev_rm
+EXPORT_SYMBOL_GPL net/wimax/wimax 0xf1eb322b wimax_state_change
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0147fea8 cfg80211_wext_siwencodeext
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0c136b65 cfg80211_wireless_stats
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1220e263 cfg80211_wext_giwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x1984385b cfg80211_wext_siwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x26cb64b0 cfg80211_wext_siwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2a848aba cfg80211_wext_siwmlme
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2d61d534 cfg80211_wext_giwname
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x31534943 cfg80211_wext_giwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x3f2f154b cfg80211_wext_siwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4ac60d10 cfg80211_wext_siwfrag
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4bef75bc cfg80211_wext_siwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4ca517fb cfg80211_wext_siwgenie
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x53997de0 cfg80211_wext_siwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x562c7df5 cfg80211_wext_giwmode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x57c1b435 cfg80211_wext_giwscan
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x61bd2363 cfg80211_wext_giwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x672b7c12 cfg80211_wext_giwrange
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x69b5a630 cfg80211_wext_siwauth
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x73b525ae cfg80211_wext_siwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7ec89bf3 cfg80211_wext_siwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8e75625a cfg80211_wext_siwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa8e9e50a cfg80211_wext_siwessid
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xafca8ccb cfg80211_wext_siwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb2474856 cfg80211_wext_giwap
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb79c5d9a cfg80211_wext_giwpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc51530ed cfg80211_wext_giwtxpower
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc54c1781 cfg80211_wext_giwrts
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd0d0fe32 cfg80211_wext_giwretry
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd6938d29 cfg80211_wext_giwrate
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd8510c4b cfg80211_wext_siwencode
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdd3a1fdd cfg80211_wext_giwfreq
+EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xecf68171 cfg80211_wext_giwencode
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x0ad0b719 ipcomp_destroy
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x38d4d8fc ipcomp_output
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x8766a8cf ipcomp_init_state
+EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc673fc54 ipcomp_input
+EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x00483e1c snd_ak4113_create
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x43169c3b snd_ak4113_reinit
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x8491d857 snd_ak4113_check_rate_and_errors
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa168795f snd_ak4113_external_rate
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf916fede snd_ak4113_build
+EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xfa4654f5 snd_ak4113_reg_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x07dee945 snd_hda_mixer_amp_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x09bebcf9 snd_hda_codec_get_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c20bf15 snd_hda_ctl_add
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c7760c5 snd_hda_codec_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x11aeba59 snd_hda_mixer_amp_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x12856c15 snd_hda_jack_detect
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x131bafb8 snd_hda_load_patch
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14ab0dfe snd_hda_sequence_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x155ff265 snd_hda_multi_out_dig_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x16670192 snd_hda_check_board_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b599e1c snd_hda_get_sub_nodes
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1c19276b snd_hda_mixer_bind_ctls_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x25797850 snd_hdmi_get_eld_size
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x29d527ac snd_hda_bind_vol
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2d7f82cf snd_hda_parse_pin_def_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2da4e1de snd_hda_override_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2eb8030d snd_hda_mixer_bind_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x353a7bdd snd_hda_pin_sense
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x39531398 snd_hda_multi_out_dig_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3cdcf148 snd_hda_mixer_bind_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e401cba snd_hda_ch_mode_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4141e06e snd_hda_create_spdif_share_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x480cf964 snd_hda_bus_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49e93cef snd_hda_bus_reboot_notify
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x49f07d43 snd_print_channel_allocation
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4cb03a76 snd_hda_find_mixer_ctl
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4cf22846 snd_hda_mixer_amp_switch_put_beep
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x53237927 snd_hda_multi_out_dig_close
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x543f9008 snd_hda_codec_amp_stereo
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5526cd48 snd_hda_input_mux_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x559d3953 snd_hda_mixer_amp_volume_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56604c86 snd_hda_get_bool_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58983636 snd_hda_codec_configure
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a425666 snd_hda_detach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ae76f73 auto_pin_cfg_labels
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c4cc689 snd_hda_enable_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62cf75c2 snd_hda_ch_mode_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6355ef9c snd_hda_multi_out_analog_cleanup
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b320084 snd_hda_add_nid
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6cbf4f96 query_amp_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x712a9775 snd_hda_shutup_pins
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x78de9569 snd_hda_multi_out_dig_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b8d812c snd_hda_power_down
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d1938ae snd_hda_multi_out_analog_open
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d591f6f snd_hda_eld_proc_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7dc082c2 snd_hda_codec_set_pincfg
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x832c2600 snd_hda_delete_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x83ff2131 snd_hda_mixer_amp_switch_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8886b001 snd_hda_codec_resume_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8899bbf1 snd_hda_check_amp_list_power
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x89e375f3 snd_hda_ch_mode_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e48bc03 snd_hda_mixer_bind_ctls_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x952403fb snd_hda_mixer_bind_ctls_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x96f3fcce snd_hda_codec_amp_update
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x98939ec9 snd_hda_mixer_amp_switch_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xac41d20d snd_hda_power_up
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xad87613e snd_print_pcm_rates
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xae8d6a20 snd_hda_mixer_bind_switch_get
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb0948632 snd_hda_codec_update_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb4177988 snd_hda_attach_beep_device
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb45a3e55 snd_hda_add_vmaster
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb5caa7d5 snd_hda_codec_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb810322e snd_hda_codec_write_cache
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbadc071f snd_hdmi_get_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe409ce0 snd_hda_codec_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0556554 snd_hda_check_board_codec_sid_config
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc1c5fb0b snd_hda_get_hint
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc34a54c6 snd_hda_calc_stream_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc47b1f05 snd_hda_build_controls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc51ed515 snd_hdmi_show_eld
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc78eb285 snd_hda_codec_amp_read
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc7cca23b snd_hda_mixer_amp_volume_put
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcaaabc97 snd_hda_sequence_write
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcac6a3df snd_hda_multi_out_analog_prepare
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcce27eb0 snd_hda_input_mux_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce3d9531 snd_hda_eld_proc_free
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcfbcbda5 snd_hda_is_supported_format
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd1953d66 snd_hda_set_vmaster_tlv
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd52492c4 snd_hda_codec_cleanup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdca01dc3 snd_hda_mixer_amp_volume_info
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe6b2dab4 snd_hda_codec_setup_stream
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed523ebb snd_hda_add_new_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0619e16 snd_hda_query_pin_caps
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf0d78cf2 snd_hda_queue_unsol_event
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3fe1703 snd_hda_add_codec_preset
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf5fa1f37 snd_hda_build_pcms
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf77cae68 snd_hda_create_spdif_in_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf83e1376 snd_hda_bind_sw
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfb965028 snd_hda_codec_resume_amp
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd28981f snd_hda_create_spdif_out_ctls
+EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfdcb0bc7 snd_hda_get_connections
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0xb67d17de soc_codec_dev_ad1836
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad1836 0xd962442a ad1836_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x000c1d0e ad193x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad193x 0x4c838bc0 soc_codec_dev_ad193x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x7faeaa18 soc_codec_dev_ad73311
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ad73311 0x849b06b8 ad73311_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x1e98f177 soc_codec_dev_ads117x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ads117x 0x349ee007 ads117x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4104 0x258bccea soc_codec_device_ak4104
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x5ff90f31 ak4535_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4535 0x7a343895 soc_codec_dev_ak4535
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x09d406e4 ak4642_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4642 0x228f1739 soc_codec_dev_ak4642
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0x0be4faa3 soc_codec_dev_ak4671
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ak4671 0xbea86ed7 ak4671_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0x9dabcb55 cs4270_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cs4270 0xfefa584b soc_codec_device_cs4270
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0x2d135616 soc_codec_dev_da7210
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-da7210 0xcd9686fc da7210_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x3345fa2a max9877_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x65b8f022 soc_codec_dev_pcm3008
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-pcm3008 0x9bdcf9b6 pcm3008_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-spdif 0x8b02622b dit_stub_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0x0dae41c0 ssm2602_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ssm2602 0xd39cbf6c soc_codec_dev_ssm2602
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0x47f1bd5c soc_codec_dev_tlv320aic23
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic23 0xc10a6921 tlv320aic23_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xba73cce5 aic26_soc_codec_dev
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic26 0xdb9f80b5 aic26_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x07cf2761 soc_codec_dev_aic3x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x482c3a87 aic3x_set_headset_detection
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0x63626d20 aic3x_get_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xb10df568 aic3x_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xbda57bca aic3x_set_gpio
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xc962e669 aic3x_headset_detected
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320aic3x 0xd23829dd aic3x_button_pressed
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x268e0d19 soc_codec_dev_tlv320dac33
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tlv320dac33 0x8963669b dac33_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x279bb43d tpa6130a2_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x26ce408f twl4030_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl4030 0x7c113764 soc_codec_dev_twl4030
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x039e7281 soc_codec_dev_twl6040
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x04296d60 twl6040_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda134x 0x00381be4 soc_codec_dev_uda134x
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x8c136d08 soc_codec_dev_uda1380
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-uda1380 0x948e3558 uda1380_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x0afaa490 wm_hubs_add_analogue_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x757206d5 wm_hubs_spkmix_tlv
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x9aafafe7 wm_hubs_add_analogue_routes
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x9c4259e2 wm_hubs_handle_analogue_pdata
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm2000 0x2608f885 wm2000_add_controls
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x1f979ebb soc_codec_dev_wm8350
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x8f8ed838 wm8350_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x92e3c056 wm8350_mic_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xb5ccfa6a wm8350_hp_jack_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0x848b64e9 soc_codec_dev_wm8400
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8400 0xd773fe86 wm8400_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x1360bf56 soc_codec_dev_wm8510
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8510 0x35c20270 wm8510_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x3a0b52cc soc_codec_dev_wm8523
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8523 0x82be6a43 wm8523_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x1cb184d9 soc_codec_dev_wm8580
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8580 0x8df72916 wm8580_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xa072469c soc_codec_dev_wm8711
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8711 0xbcbbd6a8 wm8711_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0x7b9c1d8e wm8727_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8727 0xd8d6c6b3 soc_codec_dev_wm8727
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0x73f6438c soc_codec_dev_wm8728
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8728 0xaa5c9dfd wm8728_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0x2b24c781 wm8731_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8731 0xa3f692f2 soc_codec_dev_wm8731
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0x83a8211e wm8750_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8750 0xbe60df01 soc_codec_dev_wm8750
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x954d8cc2 soc_codec_dev_wm8753
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8753 0x99112014 wm8753_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xebbeace9 soc_codec_dev_wm8776
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8776 0xff2a3308 wm8776_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0x58746ad9 soc_codec_dev_wm8900
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8900 0xc41a1c8b wm8900_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x428e6e25 wm8903_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x7359391a soc_codec_dev_wm8903
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x7f2dc392 wm8903_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x3c18afdd soc_codec_dev_wm8904
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8904 0x5f8b5e9d wm8904_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x30553898 wm8940_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8940 0x5f7dc205 soc_codec_dev_wm8940
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0x23c85c77 soc_codec_dev_wm8955
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8955 0xc6efa29f wm8955_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0x5cf9166b soc_codec_dev_wm8960
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8960 0xa7ca29b1 wm8960_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x45e2272a soc_codec_dev_wm8961
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8961 0x6c96fa14 wm8961_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0x44204d1d soc_codec_dev_wm8971
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8971 0xcae1f1a0 wm8971_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x3957b958 soc_codec_dev_wm8974
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8974 0x9a2c6013 wm8974_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0x95e2f654 soc_codec_dev_wm8978
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8978 0xedeea068 wm8978_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x1ba6d081 wm8988_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8988 0x9ebeb169 soc_codec_dev_wm8988
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x51825958 wm8990_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8990 0x57a55156 soc_codec_dev_wm8990
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0x7c880295 soc_codec_dev_wm8993
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8993 0xd7162bf6 wm8993_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x29db7cd8 wm8994_mic_detect
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x33c99452 soc_codec_dev_wm8994
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x40981b2d wm8994_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x0f146c1a soc_codec_dev_wm9081
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9081 0x349d8e21 wm9081_dai
+EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9090 0x17cd376c soc_codec_dev_wm9090
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0160e22a snd_soc_dapm_info_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x07400c98 snd_soc_dapm_new_control
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x10b41b2b snd_soc_dapm_nc_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1137aab5 snd_soc_dapm_put_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x11aa2280 snd_soc_dai_set_sysclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x11f5b9d6 snd_soc_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1311ed6e snd_soc_dapm_put_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x13d2cf7f snd_soc_register_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x150b9b18 snd_soc_codec_set_cache_io
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1d913d4c snd_soc_add_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1ed07f99 snd_soc_dai_set_channel_map
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29263e67 snd_soc_register_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ce91d4f snd_soc_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3b05085a snd_soc_dapm_get_pin_switch
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3cbe3189 snd_soc_register_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x432e7dd5 snd_soc_test_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43e4d845 snd_soc_dapm_free
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x46e7ef11 snd_soc_jack_notifier_unregister
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4cc0b3da snd_soc_update_bits_locked
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4db44b6e snd_soc_jack_report
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4e989695 snd_soc_dapm_get_enum_virt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4ed9b7f9 dapm_reg_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x501908ad snd_soc_jack_add_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x50cfb107 snd_soc_info_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x51bedbe0 snd_soc_dapm_new_widgets
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52bb8f32 snd_soc_dapm_ignore_suspend
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54181889 snd_soc_info_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5bccb55c snd_soc_info_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x622b0e55 snd_soc_get_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6575c750 snd_soc_dapm_new_controls
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6a985904 snd_soc_dapm_force_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ab1cca9 snd_soc_dapm_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6b1a56f0 snd_soc_dapm_stream_event
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6ff42bc0 snd_soc_free_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7095e6d1 snd_soc_unregister_platform
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x763909d1 snd_soc_info_enum_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7c349adc snd_soc_jack_add_pins
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7dcffc43 snd_soc_set_runtime_hwparams
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e87941b snd_soc_dapm_sync
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7fc79494 snd_soc_dapm_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7ff97cd7 snd_soc_put_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x834bf7af snd_soc_put_volsw_2r
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x840d7469 snd_soc_jack_notifier_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x86eaf9d7 snd_soc_unregister_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8a98eeb7 snd_soc_unregister_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8eb37c27 snd_soc_dapm_put_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x91722f26 snd_soc_jack_free_gpios
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x93068087 snd_soc_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x981057f0 snd_soc_dapm_add_routes
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9d20f8ce snd_soc_dapm_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9e99852d snd_soc_get_volsw_s8
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa013cb28 snd_soc_dai_digital_mute
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3994dcc snd_soc_put_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa4a77b71 snd_soc_get_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac64fbd6 snd_soc_dapm_disable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac70b517 snd_soc_codec_volatile_register
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xadbf3585 snd_soc_dapm_get_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb2686adf snd_soc_unregister_dai
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb920cd6a snd_soc_dapm_get_pin_status
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc14d7624 snd_soc_dai_set_pll
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc43e8d03 snd_soc_info_volsw_ext
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8ebadc1 snd_soc_get_volsw
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca955633 snd_soc_dapm_put_value_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8a45d93 snd_soc_dai_set_tristate
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8de32bb snd_soc_dai_set_tdm_slot
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9ae5916 snd_soc_dapm_enable_pin
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xde3c2d1e snd_soc_dai_set_clkdiv
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe03ba581 snd_soc_new_pcms
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe23b847c snd_soc_dai_set_fmt
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe2bd3611 snd_soc_limit_volume
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe90711bc snd_soc_info_enum_double
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe9dfc719 snd_soc_register_dais
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb77a082 snd_soc_free_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb9c18fd snd_soc_cnew
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf1a87c95 snd_soc_new_ac97_codec
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf84a5c7d snd_soc_update_bits
+EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfa31bb68 snd_soc_jack_new
+EXPORT_SYMBOL_GPL vmlinux 0x0017655a pci_find_next_capability
+EXPORT_SYMBOL_GPL vmlinux 0x00358859 pci_set_pcie_reset_state
+EXPORT_SYMBOL_GPL vmlinux 0x00566d8f inotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x00b8ecf8 __iowrite32_copy
+EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init
+EXPORT_SYMBOL_GPL vmlinux 0x00ddd9ac da903x_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0x00e2c32d ehci_cf_port_reset_rwsem
+EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before
+EXPORT_SYMBOL_GPL vmlinux 0x01438a4c aead_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0x016b9869 xfrm_calg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x0199f58e crypto_givcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x01a4ea6d unregister_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x01c7a828 srcu_init_notifier_head
+EXPORT_SYMBOL_GPL vmlinux 0x020d80e6 input_event_from_user
+EXPORT_SYMBOL_GPL vmlinux 0x024293f6 dma_wait_for_async_tx
+EXPORT_SYMBOL_GPL vmlinux 0x02598834 platform_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x02df8770 device_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x02e09acc blk_rq_unprep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x02eefa64 klist_add_tail
+EXPORT_SYMBOL_GPL vmlinux 0x0313cb9c usb_anchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x0321042e sysfs_get_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x0327176d inet_twsk_purge
+EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list
+EXPORT_SYMBOL_GPL vmlinux 0x037d4ad9 xfrm_audit_policy_delete
+EXPORT_SYMBOL_GPL vmlinux 0x03b66643 usb_put_dev
+EXPORT_SYMBOL_GPL vmlinux 0x03fe2cca flush_work
+EXPORT_SYMBOL_GPL vmlinux 0x04069b1d set_irq_nested_thread
+EXPORT_SYMBOL_GPL vmlinux 0x041d96d2 add_timer_on
+EXPORT_SYMBOL_GPL vmlinux 0x044096e4 skb_morph
+EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x04c72347 nf_unregister_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x04ea8706 __iowrite64_copy
+EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt
+EXPORT_SYMBOL_GPL vmlinux 0x056f9e9f __tracepoint_power_frequency
+EXPORT_SYMBOL_GPL vmlinux 0x057ddf3e perf_tp_event
+EXPORT_SYMBOL_GPL vmlinux 0x05af9f96 user_read
+EXPORT_SYMBOL_GPL vmlinux 0x05ca2df2 driver_add_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x05f4f451 usb_get_intf
+EXPORT_SYMBOL_GPL vmlinux 0x0619ca8a getboottime
+EXPORT_SYMBOL_GPL vmlinux 0x0647a9f8 crypto_nivaead_type
+EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry
+EXPORT_SYMBOL_GPL vmlinux 0x0664f58b usb_hcd_poll_rh_status
+EXPORT_SYMBOL_GPL vmlinux 0x0665b1bd init_dummy_netdev
+EXPORT_SYMBOL_GPL vmlinux 0x06703f9d get_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0x0689a082 blk_rq_check_limits
+EXPORT_SYMBOL_GPL vmlinux 0x06b9c6e3 map_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0x06d65d9b crypto_alloc_ahash
+EXPORT_SYMBOL_GPL vmlinux 0x06de7966 eventfd_ctx_remove_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x071a483b __ip_route_output_key
+EXPORT_SYMBOL_GPL vmlinux 0x07b3a11e gpiochip_remove
+EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x07d3284d crypto_larval_kill
+EXPORT_SYMBOL_GPL vmlinux 0x08124dcb tty_buffer_request_room
+EXPORT_SYMBOL_GPL vmlinux 0x082f663c inotify_remove_watch_locked
+EXPORT_SYMBOL_GPL vmlinux 0x0835998f __dma_request_channel
+EXPORT_SYMBOL_GPL vmlinux 0x08cc75b6 tcp_death_row
+EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0x094abfa1 crypto_shash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x09b62e9e debugfs_create_x16
+EXPORT_SYMBOL_GPL vmlinux 0x0a0c252f aead_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0x0a57f6c4 sk_attach_filter
+EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct
+EXPORT_SYMBOL_GPL vmlinux 0x0b48d015 tcp_done
+EXPORT_SYMBOL_GPL vmlinux 0x0b54fa5f crypto_hash_walk_first
+EXPORT_SYMBOL_GPL vmlinux 0x0b7b6753 usb_create_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x0c068934 pcr_ops
+EXPORT_SYMBOL_GPL vmlinux 0x0c1e7ddf crypto_destroy_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched
+EXPORT_SYMBOL_GPL vmlinux 0x0c37bef0 device_release_driver
+EXPORT_SYMBOL_GPL vmlinux 0x0cd01163 __tracepoint_block_rq_remap
+EXPORT_SYMBOL_GPL vmlinux 0x0ce82c41 unregister_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0x0e50f3ff usb_set_interface
+EXPORT_SYMBOL_GPL vmlinux 0x0e54ea53 eventfd_ctx_read
+EXPORT_SYMBOL_GPL vmlinux 0x0eaf2424 usb_find_alt_setting
+EXPORT_SYMBOL_GPL vmlinux 0x0f064fe8 __rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0x0f456613 driver_find
+EXPORT_SYMBOL_GPL vmlinux 0x0f7218ba devres_get
+EXPORT_SYMBOL_GPL vmlinux 0x0f8516ce raw_hash_sk
+EXPORT_SYMBOL_GPL vmlinux 0x0faf8b36 fuse_dev_operations
+EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on
+EXPORT_SYMBOL_GPL vmlinux 0x1075ecfe tasklet_hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0x107e41b8 atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x10e3d02a single_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x112a04f9 ring_buffer_consume
+EXPORT_SYMBOL_GPL vmlinux 0x11377c57 crypto_aead_setauthsize
+EXPORT_SYMBOL_GPL vmlinux 0x114d2fc6 attribute_container_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1158e5a5 cgroup_unload_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x1177f3e7 usb_get_urb
+EXPORT_SYMBOL_GPL vmlinux 0x119af014 cpu_bit_bitmap
+EXPORT_SYMBOL_GPL vmlinux 0x11a2a1cb crypto_grab_aead
+EXPORT_SYMBOL_GPL vmlinux 0x11c233bf crypto_spawn_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x11dd2353 regulator_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq
+EXPORT_SYMBOL_GPL vmlinux 0x12047f58 usb_hcd_platform_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x1209c55f sdev_evt_send_simple
+EXPORT_SYMBOL_GPL vmlinux 0x1234dc51 atomic_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30a debugfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x1251d30f call_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x12be40f4 __fsnotify_parent
+EXPORT_SYMBOL_GPL vmlinux 0x13354608 scatterwalk_map_and_copy
+EXPORT_SYMBOL_GPL vmlinux 0x13574bbf nf_net_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0x136e334b css_id
+EXPORT_SYMBOL_GPL vmlinux 0x13b2a946 register_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x13c522c1 class_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x14447e07 tcp_twsk_unique
+EXPORT_SYMBOL_GPL vmlinux 0x144e8611 crypto_mod_put
+EXPORT_SYMBOL_GPL vmlinux 0x147146a3 adp5520_read
+EXPORT_SYMBOL_GPL vmlinux 0x1485d56f pm_qos_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x149db923 selinux_string_to_sid
+EXPORT_SYMBOL_GPL vmlinux 0x151ea355 fib_rules_register
+EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x1598dc9d unregister_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x15df0320 usb_unpoison_urb
+EXPORT_SYMBOL_GPL vmlinux 0x1656ec5c wm8994_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x1697c045 simple_attr_open
+EXPORT_SYMBOL_GPL vmlinux 0x16d44669 tty_ldisc_ref_wait
+EXPORT_SYMBOL_GPL vmlinux 0x16f55bfb zap_vma_ptes
+EXPORT_SYMBOL_GPL vmlinux 0x1799b472 rt_mutex_trylock
+EXPORT_SYMBOL_GPL vmlinux 0x182ddda9 ab8500_read
+EXPORT_SYMBOL_GPL vmlinux 0x185e7052 shash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x1901dc1c gpiochip_add
+EXPORT_SYMBOL_GPL vmlinux 0x193bfc14 noop_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x195445b4 elv_register
+EXPORT_SYMBOL_GPL vmlinux 0x198aa9d7 uart_set_options
+EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled
+EXPORT_SYMBOL_GPL vmlinux 0x19d95298 rtc_irq_set_freq
+EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x1a77756e rtc_set_time
+EXPORT_SYMBOL_GPL vmlinux 0x1ac2ecd2 __mnt_is_readonly
+EXPORT_SYMBOL_GPL vmlinux 0x1ad4fd76 relay_close
+EXPORT_SYMBOL_GPL vmlinux 0x1addd853 transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x1b3a45da usb_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x1b55bb4b __inet_inherit_port
+EXPORT_SYMBOL_GPL vmlinux 0x1b752882 fuse_request_send
+EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return
+EXPORT_SYMBOL_GPL vmlinux 0x1ba546aa inotify_find_update_watch
+EXPORT_SYMBOL_GPL vmlinux 0x1c32c04d tty_prepare_flip_string_flags
+EXPORT_SYMBOL_GPL vmlinux 0x1c563d2b inet_csk_listen_start
+EXPORT_SYMBOL_GPL vmlinux 0x1c852e7c xfrm_calg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x1ccb7c6a add_page_wait_queue
+EXPORT_SYMBOL_GPL vmlinux 0x1cfc17d0 alloc_page_buffers
+EXPORT_SYMBOL_GPL vmlinux 0x1d2f7d76 debugfs_create_symlink
+EXPORT_SYMBOL_GPL vmlinux 0x1d8ad664 klist_next
+EXPORT_SYMBOL_GPL vmlinux 0x1dd149ef rtc_read_time
+EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart
+EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names
+EXPORT_SYMBOL_GPL vmlinux 0x1ece4317 tc35892_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x1f3f143f pskb_put
+EXPORT_SYMBOL_GPL vmlinux 0x1f50b8ea register_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0x1fb3d6b2 scsi_queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick
+EXPORT_SYMBOL_GPL vmlinux 0x1feb5a81 ring_buffer_resize
+EXPORT_SYMBOL_GPL vmlinux 0x2018d422 of_modalias_node
+EXPORT_SYMBOL_GPL vmlinux 0x20302d85 get_task_mm
+EXPORT_SYMBOL_GPL vmlinux 0x204de6e3 rtc_class_open
+EXPORT_SYMBOL_GPL vmlinux 0x2082c336 ring_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x208b2736 crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff
+EXPORT_SYMBOL_GPL vmlinux 0x20d54bce platform_device_add
+EXPORT_SYMBOL_GPL vmlinux 0x20d95e50 cgroup_add_files
+EXPORT_SYMBOL_GPL vmlinux 0x21af52e4 usb_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x21e101ba blk_queue_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0x2283253c sysdev_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x22849856 class_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x22904c21 inet_csk_compat_getsockopt
+EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32
+EXPORT_SYMBOL_GPL vmlinux 0x233ea140 usb_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x23469d03 crypto_alloc_ablkcipher
+EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node
+EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real
+EXPORT_SYMBOL_GPL vmlinux 0x24e8e7aa flush_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x24eb238f device_rename
+EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list
+EXPORT_SYMBOL_GPL vmlinux 0x24ffef63 devres_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0x25138815 spi_write_then_read
+EXPORT_SYMBOL_GPL vmlinux 0x251a8411 input_ff_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x256a4312 driver_for_each_device
+EXPORT_SYMBOL_GPL vmlinux 0x259de492 adp5520_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x25a7478e __class_create
+EXPORT_SYMBOL_GPL vmlinux 0x25d80022 generic_fh_to_parent
+EXPORT_SYMBOL_GPL vmlinux 0x2608568a eventfd_ctx_get
+EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense
+EXPORT_SYMBOL_GPL vmlinux 0x26d55d4c blk_update_request
+EXPORT_SYMBOL_GPL vmlinux 0x27adf232 tracing_generic_entry_update
+EXPORT_SYMBOL_GPL vmlinux 0x27d70645 sysfs_create_group
+EXPORT_SYMBOL_GPL vmlinux 0x28015a42 __root_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x2802794b tracepoint_get_iter_range
+EXPORT_SYMBOL_GPL vmlinux 0x28577bfc vfs_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x28884849 task_current_syscall
+EXPORT_SYMBOL_GPL vmlinux 0x2888d85b inet_csk_addr2sockaddr
+EXPORT_SYMBOL_GPL vmlinux 0x28a28dd5 fb_deferred_io_init
+EXPORT_SYMBOL_GPL vmlinux 0x28ce3ae0 inotify_init
+EXPORT_SYMBOL_GPL vmlinux 0x28d664ff __raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x28e23139 xfrm_probe_algs
+EXPORT_SYMBOL_GPL vmlinux 0x294809f5 ring_buffer_read_finish
+EXPORT_SYMBOL_GPL vmlinux 0x295b3cdc dm_underlying_device_busy
+EXPORT_SYMBOL_GPL vmlinux 0x29606c58 rtnl_put_cacheinfo
+EXPORT_SYMBOL_GPL vmlinux 0x29692f5a crypto_register_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x2a0cd852 dm_dispatch_request
+EXPORT_SYMBOL_GPL vmlinux 0x2a1538ca lzo1x_decompress_safe
+EXPORT_SYMBOL_GPL vmlinux 0x2a676059 crypto_shash_update
+EXPORT_SYMBOL_GPL vmlinux 0x2aad95e7 power_supply_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x2ad4bb47 simple_attr_release
+EXPORT_SYMBOL_GPL vmlinux 0x2b1b2dcd sysfs_notify_dirent
+EXPORT_SYMBOL_GPL vmlinux 0x2bb592ec sk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x2bbf8c55 wm8350_read_auxadc
+EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x2c3ae136 platform_device_add_resources
+EXPORT_SYMBOL_GPL vmlinux 0x2c705021 usb_free_urb
+EXPORT_SYMBOL_GPL vmlinux 0x2c9d5e80 get_user_pages_fast
+EXPORT_SYMBOL_GPL vmlinux 0x2cafd4c4 skb_segment
+EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq
+EXPORT_SYMBOL_GPL vmlinux 0x2d1bb0f7 destroy_workqueue
+EXPORT_SYMBOL_GPL vmlinux 0x2d79cf33 usb_alloc_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x2d851ee0 scsi_internal_device_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x2d904a6f scsi_internal_device_block
+EXPORT_SYMBOL_GPL vmlinux 0x2dbdd64b crypto_chain
+EXPORT_SYMBOL_GPL vmlinux 0x2dc468de crypto_hash_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x2de150dd get_current_tty
+EXPORT_SYMBOL_GPL vmlinux 0x2df2a448 ip_build_and_send_pkt
+EXPORT_SYMBOL_GPL vmlinux 0x2dfbda8d tcp_is_cwnd_limited
+EXPORT_SYMBOL_GPL vmlinux 0x2e2a2bab proc_net_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0x2e47f677 xfrm_aalg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x2e5716ee enable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x2eb91dfe scatterwalk_map
+EXPORT_SYMBOL_GPL vmlinux 0x2ef344ef do_add_mount
+EXPORT_SYMBOL_GPL vmlinux 0x2f20c6b7 srcu_batches_completed
+EXPORT_SYMBOL_GPL vmlinux 0x2f267604 sysdev_store_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x2ff7e79e user_instantiate
+EXPORT_SYMBOL_GPL vmlinux 0x307f7776 timecompare_offset
+EXPORT_SYMBOL_GPL vmlinux 0x30f6fa21 ring_buffer_read_start
+EXPORT_SYMBOL_GPL vmlinux 0x3139b71f fb_ddc_read
+EXPORT_SYMBOL_GPL vmlinux 0x31804a5e disk_part_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x319aadea tty_ldisc_ref
+EXPORT_SYMBOL_GPL vmlinux 0x31d15b67 regulator_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x32226d6d tty_put_char
+EXPORT_SYMBOL_GPL vmlinux 0x323cd31f kobject_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x32d5e7fc xfrm_aalg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x331ad425 ip_local_out
+EXPORT_SYMBOL_GPL vmlinux 0x3383259b wm8994_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x33be114c sched_setscheduler
+EXPORT_SYMBOL_GPL vmlinux 0x33be56c6 led_trigger_unregister_simple
+EXPORT_SYMBOL_GPL vmlinux 0x3407a039 fb_deferred_io_fsync
+EXPORT_SYMBOL_GPL vmlinux 0x34304830 crypto_shash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x34368489 tcp_slow_start
+EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x34dd3e9f skcipher_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x3524fbb0 usb_put_hcd
+EXPORT_SYMBOL_GPL vmlinux 0x353b368b relay_switch_subbuf
+EXPORT_SYMBOL_GPL vmlinux 0x354a2358 dm_kill_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x359075ad bus_get_device_klist
+EXPORT_SYMBOL_GPL vmlinux 0x35d8c94a sdev_evt_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0x362e23ec call_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0x3636282e find_module
+EXPORT_SYMBOL_GPL vmlinux 0x366e41b7 perf_trace_buf_prepare
+EXPORT_SYMBOL_GPL vmlinux 0x3672cc0a save_stack_trace_tsk
+EXPORT_SYMBOL_GPL vmlinux 0x367e84a8 usb_driver_claim_interface
+EXPORT_SYMBOL_GPL vmlinux 0x36875389 __timecompare_update
+EXPORT_SYMBOL_GPL vmlinux 0x3690a8ac wm831x_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x36b3dcf5 inotify_add_watch
+EXPORT_SYMBOL_GPL vmlinux 0x370a3a48 usb_store_new_id
+EXPORT_SYMBOL_GPL vmlinux 0x37cfd85e crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x382aeab1 adp5520_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x38b294c3 spi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x391d283e vma_kernel_pagesize
+EXPORT_SYMBOL_GPL vmlinux 0x39461b5e kobject_uevent_env
+EXPORT_SYMBOL_GPL vmlinux 0x3988e558 usb_free_coherent
+EXPORT_SYMBOL_GPL vmlinux 0x39b31f51 seq_open_net
+EXPORT_SYMBOL_GPL vmlinux 0x39cf9731 get_device
+EXPORT_SYMBOL_GPL vmlinux 0x39e15e5f trace_nowake_buffer_unlock_commit
+EXPORT_SYMBOL_GPL vmlinux 0x3a082c55 init_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock
+EXPORT_SYMBOL_GPL vmlinux 0x3b55d4a3 security_inode_setattr
+EXPORT_SYMBOL_GPL vmlinux 0x3b58b032 fuse_conn_put
+EXPORT_SYMBOL_GPL vmlinux 0x3b9b0d79 rtnl_kill_links
+EXPORT_SYMBOL_GPL vmlinux 0x3be7af02 get_max_files
+EXPORT_SYMBOL_GPL vmlinux 0x3be89d3c usb_register_notify
+EXPORT_SYMBOL_GPL vmlinux 0x3c0bf2f7 __blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x3c1b83a4 invalidate_inode_pages2_range
+EXPORT_SYMBOL_GPL vmlinux 0x3c439eec part_round_stats
+EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag
+EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness
+EXPORT_SYMBOL_GPL vmlinux 0x3d015b1e power_supply_set_battery_charged
+EXPORT_SYMBOL_GPL vmlinux 0x3d7f4f07 dm_set_device_limits
+EXPORT_SYMBOL_GPL vmlinux 0x3d8b6bf5 crypto_alg_mod_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x3da0cd8a crypto_attr_alg2
+EXPORT_SYMBOL_GPL vmlinux 0x3e3e5064 sysfs_remove_file_from_group
+EXPORT_SYMBOL_GPL vmlinux 0x3e6db074 __wake_up_locked
+EXPORT_SYMBOL_GPL vmlinux 0x3ec41719 rtc_irq_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x3eefa59c pci_assign_unassigned_bridge_resources
+EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0x3f1e0838 sysdev_show_ulong
+EXPORT_SYMBOL_GPL vmlinux 0x3f1f0b98 wm831x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0x3f205a11 tcp_set_state
+EXPORT_SYMBOL_GPL vmlinux 0x3f937cf4 register_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x3f98a36b ring_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0x3fa4e602 usb_driver_release_interface
+EXPORT_SYMBOL_GPL vmlinux 0x40250731 fib_rules_cleanup_ops
+EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one
+EXPORT_SYMBOL_GPL vmlinux 0x40ad4826 spi_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x40b72867 crypto_unregister_alg
+EXPORT_SYMBOL_GPL vmlinux 0x40d1a72f ring_buffer_size
+EXPORT_SYMBOL_GPL vmlinux 0x40d34d80 blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x40f86b1a inotify_dentry_parent_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0x40fdb6cc relay_flush
+EXPORT_SYMBOL_GPL vmlinux 0x416b1e2f wm8350_gpio_config
+EXPORT_SYMBOL_GPL vmlinux 0x41b3a78a skb_cow_data
+EXPORT_SYMBOL_GPL vmlinux 0x41ec2294 usb_register_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0x42024716 kobject_init_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x4254d2d1 class_compat_register
+EXPORT_SYMBOL_GPL vmlinux 0x425fc58e usb_bus_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x42704fc6 usb_match_one_id
+EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active
+EXPORT_SYMBOL_GPL vmlinux 0x42b364ef scatterwalk_done
+EXPORT_SYMBOL_GPL vmlinux 0x42b8b909 bus_register
+EXPORT_SYMBOL_GPL vmlinux 0x42bce536 devres_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x4306f9f5 filter_current_check_discard
+EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value
+EXPORT_SYMBOL_GPL vmlinux 0x435e52d3 get_net_ns_by_pid
+EXPORT_SYMBOL_GPL vmlinux 0x43c8fe03 rdev_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x43e5b23b ring_buffer_free_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x4458b695 kmsg_dump_register
+EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe
+EXPORT_SYMBOL_GPL vmlinux 0x44897a99 raw_seq_start
+EXPORT_SYMBOL_GPL vmlinux 0x449ca99f usb_get_current_frame_number
+EXPORT_SYMBOL_GPL vmlinux 0x44a8883c inet_csk_clone
+EXPORT_SYMBOL_GPL vmlinux 0x44d38a6f inverse_translate
+EXPORT_SYMBOL_GPL vmlinux 0x44d64de7 pid_vnr
+EXPORT_SYMBOL_GPL vmlinux 0x4514158e da903x_read
+EXPORT_SYMBOL_GPL vmlinux 0x4539ca86 tracepoint_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0x453db2dd sysfs_put
+EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list
+EXPORT_SYMBOL_GPL vmlinux 0x45882010 anon_inode_getfd
+EXPORT_SYMBOL_GPL vmlinux 0x4596e3cc crypto_blkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0x45bc3900 devres_remove
+EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc
+EXPORT_SYMBOL_GPL vmlinux 0x45e54494 rdev_get_dev
+EXPORT_SYMBOL_GPL vmlinux 0x45e5ac6d platform_get_irq_byname
+EXPORT_SYMBOL_GPL vmlinux 0x45f6562c __module_text_address
+EXPORT_SYMBOL_GPL vmlinux 0x4621f9ff rt_mutex_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request
+EXPORT_SYMBOL_GPL vmlinux 0x46d2de5e unuse_mm
+EXPORT_SYMBOL_GPL vmlinux 0x471ecd83 root_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request
+EXPORT_SYMBOL_GPL vmlinux 0x4729bd59 debugfs_create_x32
+EXPORT_SYMBOL_GPL vmlinux 0x4797609c skb_pull_rcsum
+EXPORT_SYMBOL_GPL vmlinux 0x484f8ec9 scsi_nl_add_transport
+EXPORT_SYMBOL_GPL vmlinux 0x48a488a0 sysctl_tcp_cookie_size
+EXPORT_SYMBOL_GPL vmlinux 0x48b21c1d inet_twsk_alloc
+EXPORT_SYMBOL_GPL vmlinux 0x48ec9c1c sysfs_create_files
+EXPORT_SYMBOL_GPL vmlinux 0x48f4457c led_trigger_event
+EXPORT_SYMBOL_GPL vmlinux 0x49147d6a usb_hcd_pci_shutdown
+EXPORT_SYMBOL_GPL vmlinux 0x4920e08a tcp_reno_min_cwnd
+EXPORT_SYMBOL_GPL vmlinux 0x4927570f xfrm_audit_state_icvfail
+EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue
+EXPORT_SYMBOL_GPL vmlinux 0x49b2f794 wm831x_auxadc_read_uv
+EXPORT_SYMBOL_GPL vmlinux 0x49dc07c3 usb_debug_root
+EXPORT_SYMBOL_GPL vmlinux 0x4a0ddaed power_supply_class
+EXPORT_SYMBOL_GPL vmlinux 0x4a67c240 platform_driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x4a6a3224 scsi_nl_add_driver
+EXPORT_SYMBOL_GPL vmlinux 0x4a8e7875 xfrm_audit_policy_add
+EXPORT_SYMBOL_GPL vmlinux 0x4a95184c crypto_enqueue_request
+EXPORT_SYMBOL_GPL vmlinux 0x4abe7eb3 pci_create_slot
+EXPORT_SYMBOL_GPL vmlinux 0x4b1c4b96 regulator_set_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x4bf48b8a debugfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0x4c3c681e kernel_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table
+EXPORT_SYMBOL_GPL vmlinux 0x4c77dd4e devres_find
+EXPORT_SYMBOL_GPL vmlinux 0x4c81a3a0 usb_alloc_streams
+EXPORT_SYMBOL_GPL vmlinux 0x4cb206dd crypto_init_ahash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x4cc5ef99 wm831x_auxadc_read
+EXPORT_SYMBOL_GPL vmlinux 0x4ceb34ea register_net_sysctl_rotable
+EXPORT_SYMBOL_GPL vmlinux 0x4d32523e usb_hcd_link_urb_to_ep
+EXPORT_SYMBOL_GPL vmlinux 0x4d6e2353 __atomic_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x4d8ef3df shmem_file_setup
+EXPORT_SYMBOL_GPL vmlinux 0x4dba3244 relay_open
+EXPORT_SYMBOL_GPL vmlinux 0x4dd552e7 sysfs_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x4de239cd tty_prepare_flip_string
+EXPORT_SYMBOL_GPL vmlinux 0x4dfdc950 pci_ioremap_bar
+EXPORT_SYMBOL_GPL vmlinux 0x4e7e7880 da903x_write
+EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x4f27f597 devres_add
+EXPORT_SYMBOL_GPL vmlinux 0x4f31007e shash_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0x4f46de13 sock_prot_inuse_get
+EXPORT_SYMBOL_GPL vmlinux 0x4f5a8461 bus_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x4f62b10b i2c_unregister_device
+EXPORT_SYMBOL_GPL vmlinux 0x5025cf67 task_active_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x50771855 pci_disable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test
+EXPORT_SYMBOL_GPL vmlinux 0x509cebae shash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x50e59e6a regulator_get_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num
+EXPORT_SYMBOL_GPL vmlinux 0x50f5e532 call_rcu_sched
+EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up
+EXPORT_SYMBOL_GPL vmlinux 0x510c60a2 perf_arch_fetch_caller_regs
+EXPORT_SYMBOL_GPL vmlinux 0x5115317c driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x512982e5 klist_iter_init_node
+EXPORT_SYMBOL_GPL vmlinux 0x513b7546 __clocksource_register_scale
+EXPORT_SYMBOL_GPL vmlinux 0x513c0a36 securityfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x51a0e8eb device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x51ad10ff usb_sg_wait
+EXPORT_SYMBOL_GPL vmlinux 0x51b8b3ce rt_mutex_lock_interruptible
+EXPORT_SYMBOL_GPL vmlinux 0x51e68295 ahash_free_instance
+EXPORT_SYMBOL_GPL vmlinux 0x51f5c0ff regulator_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x522a0735 crypto_shash_final
+EXPORT_SYMBOL_GPL vmlinux 0x52a18c00 crypto_mod_get
+EXPORT_SYMBOL_GPL vmlinux 0x52a48918 usb_hcd_check_unlink_urb
+EXPORT_SYMBOL_GPL vmlinux 0x53085f15 fuse_direct_io
+EXPORT_SYMBOL_GPL vmlinux 0x5324d04f bstr_printf
+EXPORT_SYMBOL_GPL vmlinux 0x53400269 netlink_has_listeners
+EXPORT_SYMBOL_GPL vmlinux 0x5344a246 i2c_new_probed_device
+EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us
+EXPORT_SYMBOL_GPL vmlinux 0x53986488 register_die_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x53ac78c6 crypto_lookup_template
+EXPORT_SYMBOL_GPL vmlinux 0x53c12136 platform_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0x53d52a68 queue_work
+EXPORT_SYMBOL_GPL vmlinux 0x5417f05f regulator_get_mode
+EXPORT_SYMBOL_GPL vmlinux 0x54504da1 blk_execute_rq_nowait
+EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie
+EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq
+EXPORT_SYMBOL_GPL vmlinux 0x5526a0ff xfrm_audit_state_delete
+EXPORT_SYMBOL_GPL vmlinux 0x558fec1f __pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0x55af8b5e ring_buffer_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x55d90141 crypto_unregister_template
+EXPORT_SYMBOL_GPL vmlinux 0x55f2580b __alloc_percpu
+EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status
+EXPORT_SYMBOL_GPL vmlinux 0x563fb5c8 __trace_bprintk
+EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after
+EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen
+EXPORT_SYMBOL_GPL vmlinux 0x565e25a0 blk_abort_request
+EXPORT_SYMBOL_GPL vmlinux 0x56b4ec3b tcp_reno_ssthresh
+EXPORT_SYMBOL_GPL vmlinux 0x56c6abe2 led_trigger_show
+EXPORT_SYMBOL_GPL vmlinux 0x56d746ce blk_trace_setup
+EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached
+EXPORT_SYMBOL_GPL vmlinux 0x57386349 rtc_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context
+EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all
+EXPORT_SYMBOL_GPL vmlinux 0x58219456 driver_find_device
+EXPORT_SYMBOL_GPL vmlinux 0x58645c1f clockevent_delta2ns
+EXPORT_SYMBOL_GPL vmlinux 0x58a2640b platform_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x58f4cf99 led_trigger_register
+EXPORT_SYMBOL_GPL vmlinux 0x590ef4da __blk_end_request_err
+EXPORT_SYMBOL_GPL vmlinux 0x5a1b1a82 blk_rq_prep_clone
+EXPORT_SYMBOL_GPL vmlinux 0x5a2a7252 pci_reset_function
+EXPORT_SYMBOL_GPL vmlinux 0x5a70b5ed perf_event_release_kernel
+EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify
+EXPORT_SYMBOL_GPL vmlinux 0x5a9135a6 ring_buffer_write
+EXPORT_SYMBOL_GPL vmlinux 0x5ae45232 class_compat_create_link
+EXPORT_SYMBOL_GPL vmlinux 0x5b444e4e __inet_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x5b5b1275 hwmon_device_register
+EXPORT_SYMBOL_GPL vmlinux 0x5b6b1f2d css_depth
+EXPORT_SYMBOL_GPL vmlinux 0x5bac7788 register_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0x5be683c9 dm_suspended
+EXPORT_SYMBOL_GPL vmlinux 0x5beea917 tty_perform_flush
+EXPORT_SYMBOL_GPL vmlinux 0x5bfc03c3 unregister_keyboard_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5bfd42ff sysfs_schedule_callback
+EXPORT_SYMBOL_GPL vmlinux 0x5c21cec9 tty_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x5c4c2bcc tty_termios_encode_baud_rate
+EXPORT_SYMBOL_GPL vmlinux 0x5cb136f7 crypto_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0x5cd2d692 mnt_drop_write
+EXPORT_SYMBOL_GPL vmlinux 0x5d0178b0 driver_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5d0f6f57 kbd_table
+EXPORT_SYMBOL_GPL vmlinux 0x5d2fa353 klist_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0x5d4d83c9 power_supply_am_i_supplied
+EXPORT_SYMBOL_GPL vmlinux 0x5d51bcf7 scatterwalk_start
+EXPORT_SYMBOL_GPL vmlinux 0x5d730e7b raw_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x5dc3e137 wm8350_block_read
+EXPORT_SYMBOL_GPL vmlinux 0x5dd67618 register_netevent_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x5e02e372 usb_hcd_pci_probe
+EXPORT_SYMBOL_GPL vmlinux 0x5e446397 blk_trace_startstop
+EXPORT_SYMBOL_GPL vmlinux 0x5e5c98e9 relay_file_operations
+EXPORT_SYMBOL_GPL vmlinux 0x5f1515f0 shash_ahash_update
+EXPORT_SYMBOL_GPL vmlinux 0x5f6aed24 mm_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x5fa38c02 pci_set_cacheline_size
+EXPORT_SYMBOL_GPL vmlinux 0x5fa76fa8 tty_mode_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x5fcdec5d xfrm_ealg_get_byidx
+EXPORT_SYMBOL_GPL vmlinux 0x60241f67 aead_geniv_exit
+EXPORT_SYMBOL_GPL vmlinux 0x60332ad6 crypto_aead_type
+EXPORT_SYMBOL_GPL vmlinux 0x603a87e4 rtc_read_alarm
+EXPORT_SYMBOL_GPL vmlinux 0x603feadf css_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x604bcc8a dm_noflush_suspending
+EXPORT_SYMBOL_GPL vmlinux 0x60552fdb sysfs_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x607ec85a inet_twsk_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x609faab2 power_supply_get_by_name
+EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier
+EXPORT_SYMBOL_GPL vmlinux 0x60d5390d xfrm_audit_state_add
+EXPORT_SYMBOL_GPL vmlinux 0x6105132f usb_hcd_unlink_urb_from_ep
+EXPORT_SYMBOL_GPL vmlinux 0x613cf34c securityfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0x61464ee5 find_vpid
+EXPORT_SYMBOL_GPL vmlinux 0x61bff9f7 generic_detach_inode
+EXPORT_SYMBOL_GPL vmlinux 0x61d69e2d eventfd_ctx_fdget
+EXPORT_SYMBOL_GPL vmlinux 0x62233055 set_task_ioprio
+EXPORT_SYMBOL_GPL vmlinux 0x62862724 fs_kobj
+EXPORT_SYMBOL_GPL vmlinux 0x629a7f6e do_posix_clock_nonanosleep
+EXPORT_SYMBOL_GPL vmlinux 0x62a8371e inet_csk_route_req
+EXPORT_SYMBOL_GPL vmlinux 0x630dfdf4 clockevents_register_device
+EXPORT_SYMBOL_GPL vmlinux 0x63186f31 usb_reset_configuration
+EXPORT_SYMBOL_GPL vmlinux 0x633bb4af spi_alloc_device
+EXPORT_SYMBOL_GPL vmlinux 0x634a5a41 class_interface_register
+EXPORT_SYMBOL_GPL vmlinux 0x637350aa i2c_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x637ecd9b xfrm_audit_state_notfound
+EXPORT_SYMBOL_GPL vmlinux 0x63f4dc09 bprintf
+EXPORT_SYMBOL_GPL vmlinux 0x64118cac __tracepoint_block_remap
+EXPORT_SYMBOL_GPL vmlinux 0x6447f417 set_cpus_allowed_ptr
+EXPORT_SYMBOL_GPL vmlinux 0x6496c08a fb_deferred_io_cleanup
+EXPORT_SYMBOL_GPL vmlinux 0x649e4fe4 kobject_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x64c6f6f8 ring_buffer_free
+EXPORT_SYMBOL_GPL vmlinux 0x64d2e6b6 dm_get_rq_mapinfo
+EXPORT_SYMBOL_GPL vmlinux 0x64ec3dde ring_buffer_empty_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x6526f93d dm_disk
+EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range
+EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers
+EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input
+EXPORT_SYMBOL_GPL vmlinux 0x65ff8c84 inotify_rm_wd
+EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol
+EXPORT_SYMBOL_GPL vmlinux 0x6634404d br_fdb_test_addr_hook
+EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x66b2a859 nr_free_buffer_pages
+EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr
+EXPORT_SYMBOL_GPL vmlinux 0x66ee139b devres_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x6750e111 set_timer_slack
+EXPORT_SYMBOL_GPL vmlinux 0x683a0960 do_kern_mount
+EXPORT_SYMBOL_GPL vmlinux 0x685a7c8c cgroup_load_subsys
+EXPORT_SYMBOL_GPL vmlinux 0x68617e48 trace_seq_vprintf
+EXPORT_SYMBOL_GPL vmlinux 0x686c703f xfrm_count_auth_supported
+EXPORT_SYMBOL_GPL vmlinux 0x687b245d platform_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x68f67a44 kset_create_and_add
+EXPORT_SYMBOL_GPL vmlinux 0x6a1464d3 tty_ldisc_deref
+EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x6a671502 blkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0x6a8e8af9 srcu_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x6a942b5e __create_workqueue_key
+EXPORT_SYMBOL_GPL vmlinux 0x6ad8ff0d disable_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length
+EXPORT_SYMBOL_GPL vmlinux 0x6b57a5f0 usb_unanchor_urb
+EXPORT_SYMBOL_GPL vmlinux 0x6b73612d devm_kfree
+EXPORT_SYMBOL_GPL vmlinux 0x6b807a5f gpio_sysfs_set_active_low
+EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work
+EXPORT_SYMBOL_GPL vmlinux 0x6b9b91b1 rt_mutex_lock
+EXPORT_SYMBOL_GPL vmlinux 0x6bc04579 device_find_child
+EXPORT_SYMBOL_GPL vmlinux 0x6bdcf31c drm_class_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x6be62dfd probe_kernel_read
+EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify
+EXPORT_SYMBOL_GPL vmlinux 0x6c75adbc inotify_inode_is_dead
+EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value
+EXPORT_SYMBOL_GPL vmlinux 0x6c8eb98f xfrm_aalg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0x6c98fb07 debugfs_create_x64
+EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list
+EXPORT_SYMBOL_GPL vmlinux 0x6d7d00a4 __sock_recv_timestamp
+EXPORT_SYMBOL_GPL vmlinux 0x6d80f10b udp4_lib_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x6d850f80 twl4030_codec_enable_resource
+EXPORT_SYMBOL_GPL vmlinux 0x6d94669d usb_hub_clear_tt_buffer
+EXPORT_SYMBOL_GPL vmlinux 0x6da1b5b2 spi_sync
+EXPORT_SYMBOL_GPL vmlinux 0x6e455bd9 regulator_list_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x6e7474fc xfrm_ealg_get_byid
+EXPORT_SYMBOL_GPL vmlinux 0x6e7677c6 attribute_container_find_class_device
+EXPORT_SYMBOL_GPL vmlinux 0x6ecb7957 device_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x6ef1b3ed crypto_tfm_in_queue
+EXPORT_SYMBOL_GPL vmlinux 0x6f0bdf66 usb_hcd_giveback_urb
+EXPORT_SYMBOL_GPL vmlinux 0x6f2dc117 shash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x6f5748ed vfs_setxattr
+EXPORT_SYMBOL_GPL vmlinux 0x6f82c217 ring_buffer_peek
+EXPORT_SYMBOL_GPL vmlinux 0x6f9dd34b __audit_inode_child
+EXPORT_SYMBOL_GPL vmlinux 0x6fb64d92 led_trigger_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe
+EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0x7033e789 rtc_class_close
+EXPORT_SYMBOL_GPL vmlinux 0x70607b11 crypto_create_tfm
+EXPORT_SYMBOL_GPL vmlinux 0x707ca422 usb_sg_init
+EXPORT_SYMBOL_GPL vmlinux 0x70eafdbc sysfs_remove_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0x71253edc regulator_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized
+EXPORT_SYMBOL_GPL vmlinux 0x716b5a1b init_user_ns
+EXPORT_SYMBOL_GPL vmlinux 0x719b93f8 __inet_lookup_established
+EXPORT_SYMBOL_GPL vmlinux 0x719f8fed bsg_unregister_queue
+EXPORT_SYMBOL_GPL vmlinux 0x71f918cb wm831x_bulk_read
+EXPORT_SYMBOL_GPL vmlinux 0x720eb937 xfrm_inner_extract_output
+EXPORT_SYMBOL_GPL vmlinux 0x724466f1 sysfs_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk
+EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events
+EXPORT_SYMBOL_GPL vmlinux 0x72a61029 blkcipher_walk_virt
+EXPORT_SYMBOL_GPL vmlinux 0x72b5d791 crypto_register_template
+EXPORT_SYMBOL_GPL vmlinux 0x72da401f spi_get_device_id
+EXPORT_SYMBOL_GPL vmlinux 0x73024c2e init_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0x7320c337 queue_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x733fa553 ablkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0x73b76aad handle_level_irq
+EXPORT_SYMBOL_GPL vmlinux 0x73c65cb6 hrtimer_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x73eeb2ff sg_scsi_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x73f176fe scsi_target_unblock
+EXPORT_SYMBOL_GPL vmlinux 0x740e6127 single_release_net
+EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read
+EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on
+EXPORT_SYMBOL_GPL vmlinux 0x74d76ebd crypto_register_shash
+EXPORT_SYMBOL_GPL vmlinux 0x74f18d16 sysdev_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x750cedcd devres_close_group
+EXPORT_SYMBOL_GPL vmlinux 0x75536b5a tty_get_pgrp
+EXPORT_SYMBOL_GPL vmlinux 0x755a1643 shash_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0x7572feb9 sysfs_remove_files
+EXPORT_SYMBOL_GPL vmlinux 0x758fad4a pm_qos_remove_request
+EXPORT_SYMBOL_GPL vmlinux 0x75a343b3 fuse_abort_conn
+EXPORT_SYMBOL_GPL vmlinux 0x75e8f3c3 crypto_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7647b130 scsi_mode_select
+EXPORT_SYMBOL_GPL vmlinux 0x768c865a bus_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x76aa8391 skb_tstamp_tx
+EXPORT_SYMBOL_GPL vmlinux 0x76d8d5ec crypto_alloc_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0x76de4acf usb_reset_endpoint
+EXPORT_SYMBOL_GPL vmlinux 0x776a953d blk_queue_rq_timed_out
+EXPORT_SYMBOL_GPL vmlinux 0x779ccb4e inet_csk_reqsk_queue_prune
+EXPORT_SYMBOL_GPL vmlinux 0x77c29665 bsg_register_queue
+EXPORT_SYMBOL_GPL vmlinux 0x77cb2c32 free_css_id
+EXPORT_SYMBOL_GPL vmlinux 0x77db09e5 xattr_getsecurity
+EXPORT_SYMBOL_GPL vmlinux 0x77e13c06 request_any_context_irq
+EXPORT_SYMBOL_GPL vmlinux 0x7803d648 register_posix_clock
+EXPORT_SYMBOL_GPL vmlinux 0x7816c8f8 input_ff_upload
+EXPORT_SYMBOL_GPL vmlinux 0x7845835c hwrng_register
+EXPORT_SYMBOL_GPL vmlinux 0x7862e191 crypto_ahash_type
+EXPORT_SYMBOL_GPL vmlinux 0x78a43186 hwmon_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x79019d97 ring_buffer_overruns
+EXPORT_SYMBOL_GPL vmlinux 0x7934e5db crypto_alg_sem
+EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off
+EXPORT_SYMBOL_GPL vmlinux 0x794eed5c usb_sg_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x795ceead tty_ldisc_flush
+EXPORT_SYMBOL_GPL vmlinux 0x79c26a9a blk_trace_remove
+EXPORT_SYMBOL_GPL vmlinux 0x79f35103 scsi_target_block
+EXPORT_SYMBOL_GPL vmlinux 0x7a1c4be6 nmi_adjust_hz
+EXPORT_SYMBOL_GPL vmlinux 0x7a2533e7 inet_csk_listen_stop
+EXPORT_SYMBOL_GPL vmlinux 0x7aa27686 __srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7aff0b2b pci_renumber_slot
+EXPORT_SYMBOL_GPL vmlinux 0x7b2b4c65 vfs_cancel_lock
+EXPORT_SYMBOL_GPL vmlinux 0x7b411074 crypto_init_spawn
+EXPORT_SYMBOL_GPL vmlinux 0x7b68bce3 usb_kill_urb
+EXPORT_SYMBOL_GPL vmlinux 0x7b9f4faf bd_claim_by_disk
+EXPORT_SYMBOL_GPL vmlinux 0x7bb6b38f __srcu_read_lock
+EXPORT_SYMBOL_GPL vmlinux 0x7bb9e00d add_to_page_cache_lru
+EXPORT_SYMBOL_GPL vmlinux 0x7bc65367 crypto_ahash_setkey
+EXPORT_SYMBOL_GPL vmlinux 0x7bd6c02e blk_insert_cloned_request
+EXPORT_SYMBOL_GPL vmlinux 0x7bf2f096 blk_queue_dma_drain
+EXPORT_SYMBOL_GPL vmlinux 0x7c131816 dm_requeue_unmapped_request
+EXPORT_SYMBOL_GPL vmlinux 0x7c6a5fab regulator_put
+EXPORT_SYMBOL_GPL vmlinux 0x7c8fad21 debugfs_remove_recursive
+EXPORT_SYMBOL_GPL vmlinux 0x7cd5451e device_schedule_callback_owner
+EXPORT_SYMBOL_GPL vmlinux 0x7d2e530f inet6_lookup_listener
+EXPORT_SYMBOL_GPL vmlinux 0x7d549dac user_destroy
+EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values
+EXPORT_SYMBOL_GPL vmlinux 0x7db22389 kern_mount_data
+EXPORT_SYMBOL_GPL vmlinux 0x7dc5d0b6 crypto_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x7de023a6 fuse_get_req
+EXPORT_SYMBOL_GPL vmlinux 0x7e1183c9 async_schedule
+EXPORT_SYMBOL_GPL vmlinux 0x7e275ea8 scsi_complete_async_scans
+EXPORT_SYMBOL_GPL vmlinux 0x7e294746 transport_add_device
+EXPORT_SYMBOL_GPL vmlinux 0x7e3aed55 spi_register_driver
+EXPORT_SYMBOL_GPL vmlinux 0x7e53f5b6 fuse_conn_kill
+EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time
+EXPORT_SYMBOL_GPL vmlinux 0x7e6adad5 sock_prot_inuse_add
+EXPORT_SYMBOL_GPL vmlinux 0x7e7b7a0f eventfd_ctx_put
+EXPORT_SYMBOL_GPL vmlinux 0x7e8253a8 regulator_bulk_get
+EXPORT_SYMBOL_GPL vmlinux 0x7e946de9 rdev_get_id
+EXPORT_SYMBOL_GPL vmlinux 0x7e9990d8 perf_swevent_put_recursion_context
+EXPORT_SYMBOL_GPL vmlinux 0x7eb2b723 srcu_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x7ecf20dd fuse_file_poll
+EXPORT_SYMBOL_GPL vmlinux 0x7f2000d9 klist_init
+EXPORT_SYMBOL_GPL vmlinux 0x7f59f608 device_create_vargs
+EXPORT_SYMBOL_GPL vmlinux 0x7fba9472 crypto_shoot_alg
+EXPORT_SYMBOL_GPL vmlinux 0x7fc3a6f3 uart_console_write
+EXPORT_SYMBOL_GPL vmlinux 0x7ff10ccf raw_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce
+EXPORT_SYMBOL_GPL vmlinux 0x80237953 disk_get_part
+EXPORT_SYMBOL_GPL vmlinux 0x8039d043 selinux_secmark_relabel_packet_permission
+EXPORT_SYMBOL_GPL vmlinux 0x805abc0b disk_part_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested
+EXPORT_SYMBOL_GPL vmlinux 0x80d8282c usb_ep0_reinit
+EXPORT_SYMBOL_GPL vmlinux 0x80ee55c3 selinux_secmark_refcount_inc
+EXPORT_SYMBOL_GPL vmlinux 0x81056887 skb_partial_csum_set
+EXPORT_SYMBOL_GPL vmlinux 0x81704d5d inet_csk_search_req
+EXPORT_SYMBOL_GPL vmlinux 0x81e47263 fib_rules_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x8203f6e0 ring_buffer_read_page
+EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x824b6d0f tty_wakeup
+EXPORT_SYMBOL_GPL vmlinux 0x82508e5f inet_twsk_put
+EXPORT_SYMBOL_GPL vmlinux 0x8277cf67 __pneigh_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched
+EXPORT_SYMBOL_GPL vmlinux 0x82bba36f device_create_file
+EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure
+EXPORT_SYMBOL_GPL vmlinux 0x82f776b7 gpio_export
+EXPORT_SYMBOL_GPL vmlinux 0x839f4d1f sysfs_rename_link
+EXPORT_SYMBOL_GPL vmlinux 0x83b96b54 sysdev_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x83d25b89 register_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0x83d3aff3 __srcu_read_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x844b3741 dev_set_name
+EXPORT_SYMBOL_GPL vmlinux 0x84619d43 transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x8475d86f hrtimer_forward
+EXPORT_SYMBOL_GPL vmlinux 0x847917f9 pm_qos_add_request
+EXPORT_SYMBOL_GPL vmlinux 0x84907104 kobject_rename
+EXPORT_SYMBOL_GPL vmlinux 0x8507797a proc_net_remove
+EXPORT_SYMBOL_GPL vmlinux 0x851adefc raw_seq_next
+EXPORT_SYMBOL_GPL vmlinux 0x856539ff mnt_clone_write
+EXPORT_SYMBOL_GPL vmlinux 0x859a5c91 nf_register_afinfo
+EXPORT_SYMBOL_GPL vmlinux 0x85be781b generic_fh_to_dentry
+EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh
+EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get
+EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0x86fc20c1 crypto_grab_skcipher
+EXPORT_SYMBOL_GPL vmlinux 0x875e6078 fuse_conn_get
+EXPORT_SYMBOL_GPL vmlinux 0x875f4a2b crypto_register_alg
+EXPORT_SYMBOL_GPL vmlinux 0x87754115 raw_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0x87a7744b power_supply_changed
+EXPORT_SYMBOL_GPL vmlinux 0x87c4da64 fuse_do_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor
+EXPORT_SYMBOL_GPL vmlinux 0x888f5e01 usb_match_id
+EXPORT_SYMBOL_GPL vmlinux 0x88f0db24 cancel_work_sync
+EXPORT_SYMBOL_GPL vmlinux 0x88ffdc68 fsstack_copy_inode_size
+EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0x8928d644 platform_bus
+EXPORT_SYMBOL_GPL vmlinux 0x8978c1a9 relay_buf_full
+EXPORT_SYMBOL_GPL vmlinux 0x89c99190 pci_stop_bus_device
+EXPORT_SYMBOL_GPL vmlinux 0x8a39e3ad crypto_alg_lookup
+EXPORT_SYMBOL_GPL vmlinux 0x8a52c209 tcp_init_congestion_ops
+EXPORT_SYMBOL_GPL vmlinux 0x8a68512f devres_release_group
+EXPORT_SYMBOL_GPL vmlinux 0x8a69c424 skb_to_sgvec
+EXPORT_SYMBOL_GPL vmlinux 0x8aab876e class_dev_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0x8adb048c spi_async
+EXPORT_SYMBOL_GPL vmlinux 0x8b70e1f3 device_add
+EXPORT_SYMBOL_GPL vmlinux 0x8bc1e486 __mmdrop
+EXPORT_SYMBOL_GPL vmlinux 0x8bee3e08 wm8350_reg_unlock
+EXPORT_SYMBOL_GPL vmlinux 0x8c09b90d inet_diag_register
+EXPORT_SYMBOL_GPL vmlinux 0x8c3f5a0c __class_register
+EXPORT_SYMBOL_GPL vmlinux 0x8c47c24f find_pid_ns
+EXPORT_SYMBOL_GPL vmlinux 0x8c877748 get_driver
+EXPORT_SYMBOL_GPL vmlinux 0x8c9359eb inet_csk_bind_conflict
+EXPORT_SYMBOL_GPL vmlinux 0x8ca8c545 regulator_get_init_drvdata
+EXPORT_SYMBOL_GPL vmlinux 0x8cb8777d blkcipher_walk_virt_block
+EXPORT_SYMBOL_GPL vmlinux 0x8cc7b8c9 perf_event_read_value
+EXPORT_SYMBOL_GPL vmlinux 0x8dc9cba0 spi_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x8e6e8392 fb_bl_default_curve
+EXPORT_SYMBOL_GPL vmlinux 0x8edfecad debugfs_create_u16
+EXPORT_SYMBOL_GPL vmlinux 0x8f4d11f5 trace_define_field
+EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative
+EXPORT_SYMBOL_GPL vmlinux 0x8f74d69c rq_flush_dcache_pages
+EXPORT_SYMBOL_GPL vmlinux 0x8fa74514 sysdev_suspend
+EXPORT_SYMBOL_GPL vmlinux 0x8ffa953b regulator_disable
+EXPORT_SYMBOL_GPL vmlinux 0x9020a049 wm8994_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0x9028183e sysfs_chmod_file
+EXPORT_SYMBOL_GPL vmlinux 0x9035ee40 pci_rescan_bus
+EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg
+EXPORT_SYMBOL_GPL vmlinux 0x90b549bd usb_interrupt_msg
+EXPORT_SYMBOL_GPL vmlinux 0x90c8cd2d platform_add_devices
+EXPORT_SYMBOL_GPL vmlinux 0x90f7412b eventfd_ctx_fileget
+EXPORT_SYMBOL_GPL vmlinux 0x9127cccc n_tty_inherit_ops
+EXPORT_SYMBOL_GPL vmlinux 0x91360bd6 hwrng_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x91473f37 __rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x917b0e3d inet_hashinfo_init
+EXPORT_SYMBOL_GPL vmlinux 0x917bc353 hrtimer_start_range_ns
+EXPORT_SYMBOL_GPL vmlinux 0x919fd175 class_dev_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x91c8430f unregister_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x91c8d8e3 usb_altnum_to_altsetting
+EXPORT_SYMBOL_GPL vmlinux 0x91d54c41 gpio_free_array
+EXPORT_SYMBOL_GPL vmlinux 0x921f0740 klist_add_head
+EXPORT_SYMBOL_GPL vmlinux 0x92229c8c register_kretprobe
+EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add
+EXPORT_SYMBOL_GPL vmlinux 0x92e88d4f devm_kzalloc
+EXPORT_SYMBOL_GPL vmlinux 0x931ce173 disk_map_sector_rcu
+EXPORT_SYMBOL_GPL vmlinux 0x93329b94 dev_change_net_namespace
+EXPORT_SYMBOL_GPL vmlinux 0x93440dca ring_buffer_reset
+EXPORT_SYMBOL_GPL vmlinux 0x9369a2c0 device_register
+EXPORT_SYMBOL_GPL vmlinux 0x939e9ccd sysfs_update_group
+EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free
+EXPORT_SYMBOL_GPL vmlinux 0x93d77984 device_create
+EXPORT_SYMBOL_GPL vmlinux 0x9403dd14 class_compat_remove_link
+EXPORT_SYMBOL_GPL vmlinux 0x9428bb67 apply_to_page_range
+EXPORT_SYMBOL_GPL vmlinux 0x945210b4 usb_bulk_msg
+EXPORT_SYMBOL_GPL vmlinux 0x94dc19ff dm_path_uevent
+EXPORT_SYMBOL_GPL vmlinux 0x950e6ddb usb_string
+EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit
+EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep
+EXPORT_SYMBOL_GPL vmlinux 0x95c83e0c leds_list_lock
+EXPORT_SYMBOL_GPL vmlinux 0x95ea237d regulator_set_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data
+EXPORT_SYMBOL_GPL vmlinux 0x96b42793 spi_unregister_master
+EXPORT_SYMBOL_GPL vmlinux 0x96cbcf31 pm_qos_add_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x96ee03a3 wm8350_clear_bits
+EXPORT_SYMBOL_GPL vmlinux 0x96efa9ff pci_enable_rom
+EXPORT_SYMBOL_GPL vmlinux 0x974272df sysdev_class_register
+EXPORT_SYMBOL_GPL vmlinux 0x975e97d8 setup_irq
+EXPORT_SYMBOL_GPL vmlinux 0x976f6650 adp5520_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x97cc599b usb_poison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0x9844ebc6 find_get_pid
+EXPORT_SYMBOL_GPL vmlinux 0x986fff1f i2c_add_numbered_adapter
+EXPORT_SYMBOL_GPL vmlinux 0x989b8e5d sysfs_get
+EXPORT_SYMBOL_GPL vmlinux 0x98a53ba1 ring_buffer_record_enable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x98bfb2e8 inotify_find_watch
+EXPORT_SYMBOL_GPL vmlinux 0x990ef13d unregister_kprobes
+EXPORT_SYMBOL_GPL vmlinux 0x991c2fdb crypto_rng_type
+EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0x99265c91 inet_unhash
+EXPORT_SYMBOL_GPL vmlinux 0x9939aa50 gpio_export_link
+EXPORT_SYMBOL_GPL vmlinux 0x99cd68c1 ring_buffer_reset_cpu
+EXPORT_SYMBOL_GPL vmlinux 0x99d1288f regulator_bulk_enable
+EXPORT_SYMBOL_GPL vmlinux 0x99de6448 ring_buffer_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0x99f2e29c console_drivers
+EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name
+EXPORT_SYMBOL_GPL vmlinux 0x9a724ba6 usb_mon_register
+EXPORT_SYMBOL_GPL vmlinux 0x9ab18652 security_inode_create
+EXPORT_SYMBOL_GPL vmlinux 0x9ab338de fib_rules_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9abb0a6e rtc_irq_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9abdfdbb ip_route_output_flow
+EXPORT_SYMBOL_GPL vmlinux 0x9abe7735 mnt_want_write
+EXPORT_SYMBOL_GPL vmlinux 0x9acc8167 blkdev_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0x9ad3af6e __fsnotify_inode_delete
+EXPORT_SYMBOL_GPL vmlinux 0x9ad7b164 rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0x9aea38b2 class_interface_unregister
+EXPORT_SYMBOL_GPL vmlinux 0x9af07060 fuse_dev_release
+EXPORT_SYMBOL_GPL vmlinux 0x9afbbf4a hrtimer_start
+EXPORT_SYMBOL_GPL vmlinux 0x9b02e8b9 synchronize_srcu
+EXPORT_SYMBOL_GPL vmlinux 0x9b10b98f user_describe
+EXPORT_SYMBOL_GPL vmlinux 0x9b205fa1 user_match
+EXPORT_SYMBOL_GPL vmlinux 0x9b35b76a crypto_spawn_tfm2
+EXPORT_SYMBOL_GPL vmlinux 0x9b48a3e8 i2c_new_device
+EXPORT_SYMBOL_GPL vmlinux 0x9b661cde queue_delayed_work_on
+EXPORT_SYMBOL_GPL vmlinux 0x9ba0501e unregister_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0x9bc8b774 da903x_update
+EXPORT_SYMBOL_GPL vmlinux 0x9c24ebaf kick_process
+EXPORT_SYMBOL_GPL vmlinux 0x9c271784 simple_attr_read
+EXPORT_SYMBOL_GPL vmlinux 0x9c34bca2 attribute_container_register
+EXPORT_SYMBOL_GPL vmlinux 0x9c41bcbe hrtimer_try_to_cancel
+EXPORT_SYMBOL_GPL vmlinux 0x9c47bd27 inet_csk_compat_setsockopt
+EXPORT_SYMBOL_GPL vmlinux 0x9ca94086 usb_deregister_dev
+EXPORT_SYMBOL_GPL vmlinux 0x9cb8037b xfrm_count_enc_supported
+EXPORT_SYMBOL_GPL vmlinux 0x9d02c170 wm8350_device_exit
+EXPORT_SYMBOL_GPL vmlinux 0x9d1c4a4c ahash_attr_alg
+EXPORT_SYMBOL_GPL vmlinux 0x9d7842a7 sdev_evt_send
+EXPORT_SYMBOL_GPL vmlinux 0x9da2a1d7 tcp_reno_cong_avoid
+EXPORT_SYMBOL_GPL vmlinux 0x9db8cd72 regulator_get_voltage
+EXPORT_SYMBOL_GPL vmlinux 0x9e37792f disk_part_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0x9e777e68 scsi_schedule_eh
+EXPORT_SYMBOL_GPL vmlinux 0x9f40a6d6 async_synchronize_full_domain
+EXPORT_SYMBOL_GPL vmlinux 0x9fac9c90 scsi_bus_type
+EXPORT_SYMBOL_GPL vmlinux 0x9fca1796 inet6_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0x9fd19177 crypto_drop_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xa00c6db9 dma_run_dependencies
+EXPORT_SYMBOL_GPL vmlinux 0xa00d9558 sysdev_store_int
+EXPORT_SYMBOL_GPL vmlinux 0xa039f0ed usb_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xa0785ddb ring_buffer_read_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xa07b19df smp_call_function_any
+EXPORT_SYMBOL_GPL vmlinux 0xa08582d0 ring_buffer_iter_empty
+EXPORT_SYMBOL_GPL vmlinux 0xa08ec76d rt_mutex_timed_lock
+EXPORT_SYMBOL_GPL vmlinux 0xa12899a2 usb_get_descriptor
+EXPORT_SYMBOL_GPL vmlinux 0xa15f79c4 xfrm_audit_state_replay_overflow
+EXPORT_SYMBOL_GPL vmlinux 0xa170fbd1 unregister_pernet_device
+EXPORT_SYMBOL_GPL vmlinux 0xa18b91f3 rt_mutex_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xa1bdb9af platform_device_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xa25ff55a driver_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xa2883b34 power_supply_register
+EXPORT_SYMBOL_GPL vmlinux 0xa2a4b223 blk_lld_busy
+EXPORT_SYMBOL_GPL vmlinux 0xa3223fa2 each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xa374b197 regulator_count_voltages
+EXPORT_SYMBOL_GPL vmlinux 0xa3a366d6 anon_transport_class_register
+EXPORT_SYMBOL_GPL vmlinux 0xa3d60917 regulator_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xa3f6db27 wm8350_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xa4178140 firmware_kobj
+EXPORT_SYMBOL_GPL vmlinux 0xa44aa234 nf_unregister_queue_handlers
+EXPORT_SYMBOL_GPL vmlinux 0xa450dd12 put_inotify_watch
+EXPORT_SYMBOL_GPL vmlinux 0xa4675eb2 inet_hash
+EXPORT_SYMBOL_GPL vmlinux 0xa48e3519 skcipher_geniv_init
+EXPORT_SYMBOL_GPL vmlinux 0xa4a42813 vbin_printf
+EXPORT_SYMBOL_GPL vmlinux 0xa4b8ae56 device_reprobe
+EXPORT_SYMBOL_GPL vmlinux 0xa4e8db84 crypto_unregister_pcomp
+EXPORT_SYMBOL_GPL vmlinux 0xa59489a1 regulator_register
+EXPORT_SYMBOL_GPL vmlinux 0xa5a17a1d simple_attr_write
+EXPORT_SYMBOL_GPL vmlinux 0xa5c2cd81 crypto_larval_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xa5c36cec inotify_unmount_inodes
+EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full
+EXPORT_SYMBOL_GPL vmlinux 0xa617b983 tracepoint_iter_stop
+EXPORT_SYMBOL_GPL vmlinux 0xa61fe07a __tracepoint_block_bio_complete
+EXPORT_SYMBOL_GPL vmlinux 0xa62a37aa usb_get_from_anchor
+EXPORT_SYMBOL_GPL vmlinux 0xa65cae6e __scsi_get_command
+EXPORT_SYMBOL_GPL vmlinux 0xa676baee inet_csk_get_port
+EXPORT_SYMBOL_GPL vmlinux 0xa6ad04fc crypto_alloc_instance2
+EXPORT_SYMBOL_GPL vmlinux 0xa6b52907 class_compat_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xa6f3ba13 usb_init_urb
+EXPORT_SYMBOL_GPL vmlinux 0xa73f6880 devres_open_group
+EXPORT_SYMBOL_GPL vmlinux 0xa751212a device_move
+EXPORT_SYMBOL_GPL vmlinux 0xa76da2e6 sk_setup_caps
+EXPORT_SYMBOL_GPL vmlinux 0xa79f1f71 put_device
+EXPORT_SYMBOL_GPL vmlinux 0xa7caf993 blocking_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xa84e0845 wm8350_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xa8558160 __tracepoint_napi_poll
+EXPORT_SYMBOL_GPL vmlinux 0xa89d1915 input_event_to_user
+EXPORT_SYMBOL_GPL vmlinux 0xa8f108f9 ring_buffer_empty
+EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output
+EXPORT_SYMBOL_GPL vmlinux 0xa8ff2d52 platform_get_irq
+EXPORT_SYMBOL_GPL vmlinux 0xa9c530b8 unregister_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xa9e8f4c2 device_del
+EXPORT_SYMBOL_GPL vmlinux 0xa9f3f261 net_ipv4_ctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xaa0489bb file_ra_state_init
+EXPORT_SYMBOL_GPL vmlinux 0xaa4113d4 platform_get_resource
+EXPORT_SYMBOL_GPL vmlinux 0xaa8c4696 cpu_clock
+EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request
+EXPORT_SYMBOL_GPL vmlinux 0xaba0e667 lookup_create
+EXPORT_SYMBOL_GPL vmlinux 0xaba43512 rtc_alarm_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xabcea7f2 device_initialize
+EXPORT_SYMBOL_GPL vmlinux 0xabf5a719 da903x_reads
+EXPORT_SYMBOL_GPL vmlinux 0xac1e0ec8 free_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xac7710e1 pci_block_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0xace5bf19 tc35892_block_read
+EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list
+EXPORT_SYMBOL_GPL vmlinux 0xad49ff8c register_kretprobes
+EXPORT_SYMBOL_GPL vmlinux 0xad5f1b39 nf_net_ipv4_netfilter_sysctl_path
+EXPORT_SYMBOL_GPL vmlinux 0xad644867 usb_submit_urb
+EXPORT_SYMBOL_GPL vmlinux 0xadb11fdc probe_kernel_write
+EXPORT_SYMBOL_GPL vmlinux 0xae05109d gpio_request_array
+EXPORT_SYMBOL_GPL vmlinux 0xae06f389 da903x_unregister_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae0c87ee pm_qos_remove_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae11fba0 da903x_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xae23ac9a fuse_do_open
+EXPORT_SYMBOL_GPL vmlinux 0xae767907 crypto_ahash_finup
+EXPORT_SYMBOL_GPL vmlinux 0xae781fc4 ring_buffer_normalize_time_stamp
+EXPORT_SYMBOL_GPL vmlinux 0xaec41ca1 led_trigger_remove
+EXPORT_SYMBOL_GPL vmlinux 0xaf7515d5 bdi_writeout_inc
+EXPORT_SYMBOL_GPL vmlinux 0xafb9a45c find_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xafd66ef8 device_attach
+EXPORT_SYMBOL_GPL vmlinux 0xb01c567e bus_for_each_drv
+EXPORT_SYMBOL_GPL vmlinux 0xb0aa812e fips_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xb0bd5d4f uhci_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0xb12530bc dequeue_signal
+EXPORT_SYMBOL_GPL vmlinux 0xb13e5cc7 usb_alloc_urb
+EXPORT_SYMBOL_GPL vmlinux 0xb15815f8 platform_get_resource_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb18e9c70 usb_clear_halt
+EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched
+EXPORT_SYMBOL_GPL vmlinux 0xb1c860a2 wm8350_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xb1dfb4fa user_update
+EXPORT_SYMBOL_GPL vmlinux 0xb2925da4 inode_add_to_lists
+EXPORT_SYMBOL_GPL vmlinux 0xb2d0dd8e remove_irq
+EXPORT_SYMBOL_GPL vmlinux 0xb385d6a8 usb_poison_urb
+EXPORT_SYMBOL_GPL vmlinux 0xb3d3d6b9 crypto_shash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xb3e8098d sysfs_remove_group
+EXPORT_SYMBOL_GPL vmlinux 0xb3eec828 fuse_request_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xb45d06d9 regulator_get
+EXPORT_SYMBOL_GPL vmlinux 0xb4759adc stop_machine
+EXPORT_SYMBOL_GPL vmlinux 0xb48e0f74 ab8500_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xb4b8b6c0 tc35892_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xb4cf6f29 pci_dev_run_wake
+EXPORT_SYMBOL_GPL vmlinux 0xb4d691c6 skb_gro_receive
+EXPORT_SYMBOL_GPL vmlinux 0xb4e57a21 regulator_get_exclusive
+EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword
+EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xb5a94d79 dm_device_name
+EXPORT_SYMBOL_GPL vmlinux 0xb5da586f anon_inode_getfile
+EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xb612444d snmp_mib_init
+EXPORT_SYMBOL_GPL vmlinux 0xb62e642a unregister_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xb64462a3 inet_ctl_sock_create
+EXPORT_SYMBOL_GPL vmlinux 0xb65091b3 selinux_secmark_refcount_dec
+EXPORT_SYMBOL_GPL vmlinux 0xb69b5d5c inotify_rm_watch
+EXPORT_SYMBOL_GPL vmlinux 0xb744fa43 xfrm_ealg_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xb74cbda2 ring_buffer_entries_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xb79a64e9 __put_net
+EXPORT_SYMBOL_GPL vmlinux 0xb7d5bef1 blk_add_driver_data
+EXPORT_SYMBOL_GPL vmlinux 0xb813ce5a timecompare_transform
+EXPORT_SYMBOL_GPL vmlinux 0xb83dc976 inet_diag_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xb83f8e96 platform_create_bundle
+EXPORT_SYMBOL_GPL vmlinux 0xb88d44fc debugfs_create_u8
+EXPORT_SYMBOL_GPL vmlinux 0xb8bd4a87 __blk_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xb8d32d74 page_cache_sync_readahead
+EXPORT_SYMBOL_GPL vmlinux 0xb9189b5a bus_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xb9345e89 i2c_new_dummy
+EXPORT_SYMBOL_GPL vmlinux 0xb981013b input_class
+EXPORT_SYMBOL_GPL vmlinux 0xb9b198b2 bus_sort_breadthfirst
+EXPORT_SYMBOL_GPL vmlinux 0xb9ea244a tun_get_socket
+EXPORT_SYMBOL_GPL vmlinux 0xb9eb3aa9 add_uevent_var
+EXPORT_SYMBOL_GPL vmlinux 0xba1eeae1 blkdev_aio_write
+EXPORT_SYMBOL_GPL vmlinux 0xba43db67 klist_iter_init
+EXPORT_SYMBOL_GPL vmlinux 0xbaa0799c bus_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbae34c27 scsi_nl_remove_transport
+EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks
+EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks
+EXPORT_SYMBOL_GPL vmlinux 0xbb128381 irq_set_affinity_hint
+EXPORT_SYMBOL_GPL vmlinux 0xbb16ffe7 real_hard_smp_processor_id
+EXPORT_SYMBOL_GPL vmlinux 0xbb760e81 transport_remove_device
+EXPORT_SYMBOL_GPL vmlinux 0xbb8a2506 perf_event_create_kernel_counter
+EXPORT_SYMBOL_GPL vmlinux 0xbb8f6cef usb_set_device_state
+EXPORT_SYMBOL_GPL vmlinux 0xbb9e7d40 relay_subbufs_consumed
+EXPORT_SYMBOL_GPL vmlinux 0xbbf17a0b usb_free_streams
+EXPORT_SYMBOL_GPL vmlinux 0xbc2b8dac da903x_writes
+EXPORT_SYMBOL_GPL vmlinux 0xbc388cf6 __blkdev_driver_ioctl
+EXPORT_SYMBOL_GPL vmlinux 0xbcab2d29 blk_queue_rq_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xbccadd2b vfs_test_lock
+EXPORT_SYMBOL_GPL vmlinux 0xbcd5aa8e wm8350_block_write
+EXPORT_SYMBOL_GPL vmlinux 0xbd3bd5ae put_driver
+EXPORT_SYMBOL_GPL vmlinux 0xbd7351f2 kill_pid_info_as_uid
+EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state
+EXPORT_SYMBOL_GPL vmlinux 0xbdfae793 kmsg_dump_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xbe116723 do_posix_clock_nosettime
+EXPORT_SYMBOL_GPL vmlinux 0xbec90eb2 scatterwalk_copychunks
+EXPORT_SYMBOL_GPL vmlinux 0xbf1361b4 tcp_get_info
+EXPORT_SYMBOL_GPL vmlinux 0xbf53b6b3 lookup_instantiate_filp
+EXPORT_SYMBOL_GPL vmlinux 0xbf9d8c01 skcipher_geniv_free
+EXPORT_SYMBOL_GPL vmlinux 0xbfa15ff6 scsi_get_vpd_page
+EXPORT_SYMBOL_GPL vmlinux 0xbfc6d9a0 sysdev_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xbfddd9f9 tcp_twsk_destructor
+EXPORT_SYMBOL_GPL vmlinux 0xc01cf9a6 vfs_getxattr
+EXPORT_SYMBOL_GPL vmlinux 0xc027ab09 usb_driver_set_configuration
+EXPORT_SYMBOL_GPL vmlinux 0xc0407f6a debugfs_create_u32
+EXPORT_SYMBOL_GPL vmlinux 0xc08bd23e usb_add_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time
+EXPORT_SYMBOL_GPL vmlinux 0xc10f2b8e cgroup_unlock
+EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc13936c0 ring_buffer_read
+EXPORT_SYMBOL_GPL vmlinux 0xc1447760 key_type_user
+EXPORT_SYMBOL_GPL vmlinux 0xc15c360e usb_scuttle_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded
+EXPORT_SYMBOL_GPL vmlinux 0xc1a3d229 tcp_unregister_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xc1beea44 bus_rescan_devices
+EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases
+EXPORT_SYMBOL_GPL vmlinux 0xc250770e debugfs_create_size_t
+EXPORT_SYMBOL_GPL vmlinux 0xc250de54 tc35892_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xc2ad638f wm831x_reg_read
+EXPORT_SYMBOL_GPL vmlinux 0xc2ec6b11 hrtimer_init
+EXPORT_SYMBOL_GPL vmlinux 0xc2f65487 adp5520_write
+EXPORT_SYMBOL_GPL vmlinux 0xc2fd8621 regulator_bulk_free
+EXPORT_SYMBOL_GPL vmlinux 0xc2ff8f54 fuse_conn_init
+EXPORT_SYMBOL_GPL vmlinux 0xc3092ca5 drm_class_device_register
+EXPORT_SYMBOL_GPL vmlinux 0xc3229811 sysdev_class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field
+EXPORT_SYMBOL_GPL vmlinux 0xc399468f scsi_nl_remove_driver
+EXPORT_SYMBOL_GPL vmlinux 0xc3d74def tcp_cong_avoid_ai
+EXPORT_SYMBOL_GPL vmlinux 0xc409be6f usb_get_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xc41c709e posix_timer_event
+EXPORT_SYMBOL_GPL vmlinux 0xc42b9a58 tracepoint_iter_next
+EXPORT_SYMBOL_GPL vmlinux 0xc4565124 pcie_update_link_speed
+EXPORT_SYMBOL_GPL vmlinux 0xc5199543 device_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xc541cfd1 show_class_attr_string
+EXPORT_SYMBOL_GPL vmlinux 0xc55dc4fb unregister_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xc575ec2a rtc_set_mmss
+EXPORT_SYMBOL_GPL vmlinux 0xc578e1df __lock_page_killable
+EXPORT_SYMBOL_GPL vmlinux 0xc5993d56 pci_destroy_slot
+EXPORT_SYMBOL_GPL vmlinux 0xc5aed2b5 tty_init_termios
+EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk
+EXPORT_SYMBOL_GPL vmlinux 0xc6793010 usb_anchor_empty
+EXPORT_SYMBOL_GPL vmlinux 0xc6e0229b hrtimer_init_sleeper
+EXPORT_SYMBOL_GPL vmlinux 0xc72298bb macvlan_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0xc7c2e874 usb_remove_hcd
+EXPORT_SYMBOL_GPL vmlinux 0xc7c450bf blocking_notifier_chain_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get
+EXPORT_SYMBOL_GPL vmlinux 0xc8c263c0 pci_scan_child_bus
+EXPORT_SYMBOL_GPL vmlinux 0xc8c411d8 transport_setup_device
+EXPORT_SYMBOL_GPL vmlinux 0xc8c44dd3 filter_match_preds
+EXPORT_SYMBOL_GPL vmlinux 0xc8dc23dc sysfs_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xc8eb05d6 __tracepoint_kfree_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc8fb37dc input_ff_create
+EXPORT_SYMBOL_GPL vmlinux 0xc9154e70 twl4030_codec_disable_resource
+EXPORT_SYMBOL_GPL vmlinux 0xc922f4a4 usb_kill_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist
+EXPORT_SYMBOL_GPL vmlinux 0xc9627e9a __inet_hash_nolisten
+EXPORT_SYMBOL_GPL vmlinux 0xc96c5a32 dev_forward_skb
+EXPORT_SYMBOL_GPL vmlinux 0xc9e5d4fc register_dimm_printer
+EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu
+EXPORT_SYMBOL_GPL vmlinux 0xca3a52db class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xca4d38b8 crypto_alloc_instance
+EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all
+EXPORT_SYMBOL_GPL vmlinux 0xcadd8141 tracepoint_iter_start
+EXPORT_SYMBOL_GPL vmlinux 0xcb5fd6ff pci_bus_resource_n
+EXPORT_SYMBOL_GPL vmlinux 0xcb65a78f debugfs_create_x8
+EXPORT_SYMBOL_GPL vmlinux 0xcb739ba1 gpiochip_is_requested
+EXPORT_SYMBOL_GPL vmlinux 0xcb7afe55 crypto_default_rng
+EXPORT_SYMBOL_GPL vmlinux 0xcb8a6754 sysdev_class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xcbe5fca0 put_pid
+EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us
+EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman
+EXPORT_SYMBOL_GPL vmlinux 0xcc232714 attribute_container_classdev_to_container
+EXPORT_SYMBOL_GPL vmlinux 0xcc2abc8b sysdev_show_int
+EXPORT_SYMBOL_GPL vmlinux 0xcc3925d8 device_for_each_child
+EXPORT_SYMBOL_GPL vmlinux 0xcc46416e rtnl_link_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xcc8b8976 rtc_set_alarm
+EXPORT_SYMBOL_GPL vmlinux 0xcd0a0c13 class_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs
+EXPORT_SYMBOL_GPL vmlinux 0xcdd98e34 dma_release_channel
+EXPORT_SYMBOL_GPL vmlinux 0xce44df2b usb_control_msg
+EXPORT_SYMBOL_GPL vmlinux 0xce66fddf page_mkclean
+EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0xcec3cba2 module_mutex
+EXPORT_SYMBOL_GPL vmlinux 0xcec5fc4f vfs_removexattr
+EXPORT_SYMBOL_GPL vmlinux 0xced3c778 register_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xcf2a4d9a debugfs_create_dir
+EXPORT_SYMBOL_GPL vmlinux 0xcf354178 blk_rq_err_bytes
+EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh
+EXPORT_SYMBOL_GPL vmlinux 0xcfcc83ad register_vt_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xcfd84d1e raw_seq_open
+EXPORT_SYMBOL_GPL vmlinux 0xcfd9a2c0 des_ekey
+EXPORT_SYMBOL_GPL vmlinux 0xd0024db8 pci_bus_add_device
+EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral
+EXPORT_SYMBOL_GPL vmlinux 0xd049da97 bus_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xd0663bc7 ring_buffer_record_disable
+EXPORT_SYMBOL_GPL vmlinux 0xd0b9d17a cgroup_path
+EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart
+EXPORT_SYMBOL_GPL vmlinux 0xd0e837c2 uhci_check_and_reset_hc
+EXPORT_SYMBOL_GPL vmlinux 0xd1189b28 usb_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xd154f746 page_cache_async_readahead
+EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type
+EXPORT_SYMBOL_GPL vmlinux 0xd180fa32 security_inode_mkdir
+EXPORT_SYMBOL_GPL vmlinux 0xd18172b3 securityfs_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xd1ca0c25 class_find_device
+EXPORT_SYMBOL_GPL vmlinux 0xd2267400 init_uts_ns
+EXPORT_SYMBOL_GPL vmlinux 0xd2706fa1 usb_unpoison_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xd27b60e6 input_ff_event
+EXPORT_SYMBOL_GPL vmlinux 0xd294b1c8 vfs_lock_file
+EXPORT_SYMBOL_GPL vmlinux 0xd295d268 adp5520_clr_bits
+EXPORT_SYMBOL_GPL vmlinux 0xd2a8caf0 work_on_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xd3c6f3a1 rtc_device_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xd3e7d3be __module_address
+EXPORT_SYMBOL_GPL vmlinux 0xd3fd655f scsi_flush_work
+EXPORT_SYMBOL_GPL vmlinux 0xd4061264 trace_event_raw_init
+EXPORT_SYMBOL_GPL vmlinux 0xd41fa117 xfrm_output
+EXPORT_SYMBOL_GPL vmlinux 0xd43e9d9d ahash_register_instance
+EXPORT_SYMBOL_GPL vmlinux 0xd4ad12b0 atomic_notifier_chain_register
+EXPORT_SYMBOL_GPL vmlinux 0xd4d56a8a debugfs_rename
+EXPORT_SYMBOL_GPL vmlinux 0xd4fd402a fuse_sync_release
+EXPORT_SYMBOL_GPL vmlinux 0xd518d4db __css_put
+EXPORT_SYMBOL_GPL vmlinux 0xd518f8d4 rtc_update_irq
+EXPORT_SYMBOL_GPL vmlinux 0xd537c935 ring_buffer_record_enable
+EXPORT_SYMBOL_GPL vmlinux 0xd5404c4c inet_hash_connect
+EXPORT_SYMBOL_GPL vmlinux 0xd540bd96 dio_end_io
+EXPORT_SYMBOL_GPL vmlinux 0xd58f5dbb vfs_listxattr
+EXPORT_SYMBOL_GPL vmlinux 0xd59d2602 usb_lock_device_for_reset
+EXPORT_SYMBOL_GPL vmlinux 0xd5b96abd usb_put_intf
+EXPORT_SYMBOL_GPL vmlinux 0xd5d0b527 twl4030_codec_get_mclk
+EXPORT_SYMBOL_GPL vmlinux 0xd6254ee1 eventfd_fget
+EXPORT_SYMBOL_GPL vmlinux 0xd6556686 elv_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xd669b9c8 cgroup_add_file
+EXPORT_SYMBOL_GPL vmlinux 0xd6bc7c04 eventfd_signal
+EXPORT_SYMBOL_GPL vmlinux 0xd6f49dc6 __crypto_alloc_tfm
+EXPORT_SYMBOL_GPL vmlinux 0xd703b6e5 kobject_get_path
+EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout
+EXPORT_SYMBOL_GPL vmlinux 0xd73ef534 sysdev_resume
+EXPORT_SYMBOL_GPL vmlinux 0xd75cc27a crypto_alloc_shash
+EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints
+EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove
+EXPORT_SYMBOL_GPL vmlinux 0xd79208e2 usb_find_interface
+EXPORT_SYMBOL_GPL vmlinux 0xd7ce78ca __inet_twsk_hashdance
+EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus
+EXPORT_SYMBOL_GPL vmlinux 0xd86e188c inotify_inode_queue_event
+EXPORT_SYMBOL_GPL vmlinux 0xd8735d91 __trace_note_message
+EXPORT_SYMBOL_GPL vmlinux 0xd877cfc7 ring_buffer_entries
+EXPORT_SYMBOL_GPL vmlinux 0xd8d40a01 blkcipher_walk_done
+EXPORT_SYMBOL_GPL vmlinux 0xd8d7a684 debugfs_create_bool
+EXPORT_SYMBOL_GPL vmlinux 0xd8f97b51 usb_deregister_device_driver
+EXPORT_SYMBOL_GPL vmlinux 0xd919cf24 usb_queue_reset_device
+EXPORT_SYMBOL_GPL vmlinux 0xd925dd4d scsi_nl_sock
+EXPORT_SYMBOL_GPL vmlinux 0xd939ee8f sysdev_register
+EXPORT_SYMBOL_GPL vmlinux 0xd970f43b device_remove_file
+EXPORT_SYMBOL_GPL vmlinux 0xd9cb64de dm_send_uevents
+EXPORT_SYMBOL_GPL vmlinux 0xda1be8e1 async_synchronize_cookie_domain
+EXPORT_SYMBOL_GPL vmlinux 0xda8b8177 sk_detach_filter
+EXPORT_SYMBOL_GPL vmlinux 0xda95e0cd relay_reset
+EXPORT_SYMBOL_GPL vmlinux 0xdadf4ad0 regulator_set_optimum_mode
+EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option
+EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate
+EXPORT_SYMBOL_GPL vmlinux 0xdb274e52 monotonic_to_bootbased
+EXPORT_SYMBOL_GPL vmlinux 0xdb888ed3 platform_device_add_data
+EXPORT_SYMBOL_GPL vmlinux 0xdb9c5e25 platform_device_register_simple
+EXPORT_SYMBOL_GPL vmlinux 0xdbb42d87 tc35892_block_write
+EXPORT_SYMBOL_GPL vmlinux 0xdc23838a platform_driver_probe
+EXPORT_SYMBOL_GPL vmlinux 0xdc854509 inet_csk_reqsk_queue_hash_add
+EXPORT_SYMBOL_GPL vmlinux 0xdc8705a0 cleanup_srcu_struct
+EXPORT_SYMBOL_GPL vmlinux 0xdc990b98 __wake_up_sync
+EXPORT_SYMBOL_GPL vmlinux 0xdcaa2507 debugfs_create_blob
+EXPORT_SYMBOL_GPL vmlinux 0xdd23bf55 sync_filesystem
+EXPORT_SYMBOL_GPL vmlinux 0xdd30f208 crypto_ablkcipher_type
+EXPORT_SYMBOL_GPL vmlinux 0xdd54398a pci_intx
+EXPORT_SYMBOL_GPL vmlinux 0xdd57063f raw_unhash_sk
+EXPORT_SYMBOL_GPL vmlinux 0xddbc918e regulator_force_disable
+EXPORT_SYMBOL_GPL vmlinux 0xde417b81 async_schedule_domain
+EXPORT_SYMBOL_GPL vmlinux 0xde53fdd5 __pci_complete_power_transition
+EXPORT_SYMBOL_GPL vmlinux 0xdea7bad3 regulator_bulk_disable
+EXPORT_SYMBOL_GPL vmlinux 0xdef9e8f7 usb_ifnum_to_if
+EXPORT_SYMBOL_GPL vmlinux 0xdf3c64f2 crypto_larval_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xdf57e413 dm_put
+EXPORT_SYMBOL_GPL vmlinux 0xdf7a05d2 pci_find_ext_capability
+EXPORT_SYMBOL_GPL vmlinux 0xdfd6ac63 register_jprobe
+EXPORT_SYMBOL_GPL vmlinux 0xdfea2dd6 ring_buffer_iter_reset
+EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name
+EXPORT_SYMBOL_GPL vmlinux 0xe05d8a09 crypto_unregister_shash
+EXPORT_SYMBOL_GPL vmlinux 0xe0cb7e19 crypto_ahash_digest
+EXPORT_SYMBOL_GPL vmlinux 0xe0cca33e xfrm_aead_get_byname
+EXPORT_SYMBOL_GPL vmlinux 0xe0f09e64 fsnotify
+EXPORT_SYMBOL_GPL vmlinux 0xe0f37011 wm831x_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xe0f78412 crypto_init_shash_spawn
+EXPORT_SYMBOL_GPL vmlinux 0xe1492bf4 get_cpu_sysdev
+EXPORT_SYMBOL_GPL vmlinux 0xe264daa1 regulator_set_voltage
+EXPORT_SYMBOL_GPL vmlinux 0xe28acf49 blk_abort_queue
+EXPORT_SYMBOL_GPL vmlinux 0xe3c2d64d unregister_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0xe41957d4 xfrm_audit_state_notfound_simple
+EXPORT_SYMBOL_GPL vmlinux 0xe422cb1d scsi_eh_ready_devs
+EXPORT_SYMBOL_GPL vmlinux 0xe43d01b5 sysfs_create_bin_file
+EXPORT_SYMBOL_GPL vmlinux 0xe4c5be8a crypto_ahash_final
+EXPORT_SYMBOL_GPL vmlinux 0xe4c8a328 proc_net_fops_create
+EXPORT_SYMBOL_GPL vmlinux 0xe4ea23df tcp_register_congestion_control
+EXPORT_SYMBOL_GPL vmlinux 0xe4f631ed __ablkcipher_walk_complete
+EXPORT_SYMBOL_GPL vmlinux 0xe5c80497 raw_seq_stop
+EXPORT_SYMBOL_GPL vmlinux 0xe5d788ee drop_file_write_access
+EXPORT_SYMBOL_GPL vmlinux 0xe5fff755 pci_find_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xe60065df ring_buffer_discard_commit
+EXPORT_SYMBOL_GPL vmlinux 0xe6092b0b d_materialise_unique
+EXPORT_SYMBOL_GPL vmlinux 0xe6102782 __get_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xe61a6d2f gpio_unexport
+EXPORT_SYMBOL_GPL vmlinux 0xe6214b13 regulator_set_mode
+EXPORT_SYMBOL_GPL vmlinux 0xe645d0b1 hrtimer_get_remaining
+EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled
+EXPORT_SYMBOL_GPL vmlinux 0xe6694226 kallsyms_on_each_symbol
+EXPORT_SYMBOL_GPL vmlinux 0xe682a176 led_trigger_store
+EXPORT_SYMBOL_GPL vmlinux 0xe68751d8 driver_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xe6bd324f fuse_put_request
+EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen
+EXPORT_SYMBOL_GPL vmlinux 0xe77f0aed pci_slots_kset
+EXPORT_SYMBOL_GPL vmlinux 0xe7ebea67 rtc_update_irq_enable
+EXPORT_SYMBOL_GPL vmlinux 0xe7fda478 mmput
+EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr
+EXPORT_SYMBOL_GPL vmlinux 0xe8931b1e blocking_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xe8cf55e7 wm8350_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xe8e6eb96 spi_busnum_to_master
+EXPORT_SYMBOL_GPL vmlinux 0xe9016166 sysfs_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe9290aed inotify_destroy
+EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free
+EXPORT_SYMBOL_GPL vmlinux 0xe9587909 usb_unregister_notify
+EXPORT_SYMBOL_GPL vmlinux 0xe95d04b4 ring_buffer_commit_overrun_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xe99de360 bus_get_kset
+EXPORT_SYMBOL_GPL vmlinux 0xe9cb5ad1 wm8994_reg_write
+EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd
+EXPORT_SYMBOL_GPL vmlinux 0xeae74760 scsi_nl_send_transport_msg
+EXPORT_SYMBOL_GPL vmlinux 0xeb0cdb43 class_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xeb4fb31b cgroup_lock_live_group
+EXPORT_SYMBOL_GPL vmlinux 0xeb6f58e5 spi_register_master
+EXPORT_SYMBOL_GPL vmlinux 0xeb7c45b9 __wake_up_sync_key
+EXPORT_SYMBOL_GPL vmlinux 0xeb9c85d1 skcipher_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xebf13934 debugfs_create_u64
+EXPORT_SYMBOL_GPL vmlinux 0xebfbc725 sysdev_driver_register
+EXPORT_SYMBOL_GPL vmlinux 0xec15ad3d ref_module
+EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare
+EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del
+EXPORT_SYMBOL_GPL vmlinux 0xec4038a8 spi_setup
+EXPORT_SYMBOL_GPL vmlinux 0xec716720 unregister_pernet_subsys
+EXPORT_SYMBOL_GPL vmlinux 0xec9ef1ee alloc_vm_area
+EXPORT_SYMBOL_GPL vmlinux 0xecb1e2bb vfs_setlease
+EXPORT_SYMBOL_GPL vmlinux 0xecb6eb5d crypto_alloc_base
+EXPORT_SYMBOL_GPL vmlinux 0xecf40450 regulator_enable
+EXPORT_SYMBOL_GPL vmlinux 0xed34a2bf pci_add_dynid
+EXPORT_SYMBOL_GPL vmlinux 0xed5768d2 crypto_init_spawn2
+EXPORT_SYMBOL_GPL vmlinux 0xed70079f __set_irq_handler
+EXPORT_SYMBOL_GPL vmlinux 0xed844ab4 usb_register_dev
+EXPORT_SYMBOL_GPL vmlinux 0xed9c49b8 xfrm_output_resume
+EXPORT_SYMBOL_GPL vmlinux 0xee83a48a use_mm
+EXPORT_SYMBOL_GPL vmlinux 0xeecf4c98 input_ff_erase
+EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative
+EXPORT_SYMBOL_GPL vmlinux 0xefa18175 wm8350_device_init
+EXPORT_SYMBOL_GPL vmlinux 0xefacfaca bd_release_from_disk
+EXPORT_SYMBOL_GPL vmlinux 0xefb107b1 fsstack_copy_attr_all
+EXPORT_SYMBOL_GPL vmlinux 0xefdd5a63 ktime_get_ts
+EXPORT_SYMBOL_GPL vmlinux 0xf0029ff6 pci_bus_max_busnr
+EXPORT_SYMBOL_GPL vmlinux 0xf04d0088 sysdev_create_file
+EXPORT_SYMBOL_GPL vmlinux 0xf04fbd4e generic_drop_inode
+EXPORT_SYMBOL_GPL vmlinux 0xf062f030 spi_alloc_master
+EXPORT_SYMBOL_GPL vmlinux 0xf0b19139 bus_for_each_dev
+EXPORT_SYMBOL_GPL vmlinux 0xf0cdc5d8 pci_find_next_ht_capability
+EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off
+EXPORT_SYMBOL_GPL vmlinux 0xf203d703 dma_get_required_mask
+EXPORT_SYMBOL_GPL vmlinux 0xf219b1a8 wm831x_reg_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf289701d __i2c_board_lock
+EXPORT_SYMBOL_GPL vmlinux 0xf29272f1 register_kprobe
+EXPORT_SYMBOL_GPL vmlinux 0xf29a9da3 led_trigger_set_default
+EXPORT_SYMBOL_GPL vmlinux 0xf2b804eb crypto_alloc_aead
+EXPORT_SYMBOL_GPL vmlinux 0xf2d43748 aead_geniv_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options
+EXPORT_SYMBOL_GPL vmlinux 0xf34806ec hrtimer_get_res
+EXPORT_SYMBOL_GPL vmlinux 0xf3980040 fb_deferred_io_open
+EXPORT_SYMBOL_GPL vmlinux 0xf3b93a97 cgroup_lock_is_held
+EXPORT_SYMBOL_GPL vmlinux 0xf3ffbbc1 __rt_mutex_init
+EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh
+EXPORT_SYMBOL_GPL vmlinux 0xf4a10b70 blocking_notifier_chain_cond_register
+EXPORT_SYMBOL_GPL vmlinux 0xf4c35ba9 sysfs_add_file_to_group
+EXPORT_SYMBOL_GPL vmlinux 0xf4ed6242 anon_transport_class_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xf5384ac1 __trace_printk
+EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm
+EXPORT_SYMBOL_GPL vmlinux 0xf5556b27 ring_buffer_alloc_read_page
+EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus
+EXPORT_SYMBOL_GPL vmlinux 0xf5b41ad8 srcu_notifier_call_chain
+EXPORT_SYMBOL_GPL vmlinux 0xf5d54bbc pci_unblock_user_cfg_access
+EXPORT_SYMBOL_GPL vmlinux 0xf5e2d538 __sock_recv_ts_and_drops
+EXPORT_SYMBOL_GPL vmlinux 0xf6002ecc screen_glyph
+EXPORT_SYMBOL_GPL vmlinux 0xf608d0bc inet6_lookup
+EXPORT_SYMBOL_GPL vmlinux 0xf644c0b6 led_trigger_set
+EXPORT_SYMBOL_GPL vmlinux 0xf6d24a54 platform_device_del
+EXPORT_SYMBOL_GPL vmlinux 0xf6dbf1e1 __ring_buffer_alloc
+EXPORT_SYMBOL_GPL vmlinux 0xf739fba2 fixed_phy_set_link_update
+EXPORT_SYMBOL_GPL vmlinux 0xf75f4926 rtc_irq_register
+EXPORT_SYMBOL_GPL vmlinux 0xf7af5c17 queue_delayed_work
+EXPORT_SYMBOL_GPL vmlinux 0xf7d5ef56 da903x_set_bits
+EXPORT_SYMBOL_GPL vmlinux 0xf7e90dee seq_release_net
+EXPORT_SYMBOL_GPL vmlinux 0xf7ed50e6 tcp_orphan_count
+EXPORT_SYMBOL_GPL vmlinux 0xf80b6c7b crypto_find_alg
+EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace
+EXPORT_SYMBOL_GPL vmlinux 0xf894ef0e trace_seq_printf
+EXPORT_SYMBOL_GPL vmlinux 0xf8b4b47a unregister_jprobes
+EXPORT_SYMBOL_GPL vmlinux 0xf8b7de7e synchronize_srcu_expedited
+EXPORT_SYMBOL_GPL vmlinux 0xf935d402 rtnl_register
+EXPORT_SYMBOL_GPL vmlinux 0xf986c2a2 locks_release_private
+EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies
+EXPORT_SYMBOL_GPL vmlinux 0xf9a1f965 platform_device_put
+EXPORT_SYMBOL_GPL vmlinux 0xf9a7ed10 regulator_get_current_limit
+EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register
+EXPORT_SYMBOL_GPL vmlinux 0xfa213851 led_trigger_unregister
+EXPORT_SYMBOL_GPL vmlinux 0xfa84e896 bus_register_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync
+EXPORT_SYMBOL_GPL vmlinux 0xfb4dc79c register_ftrace_event
+EXPORT_SYMBOL_GPL vmlinux 0xfb7e27c2 device_bind_driver
+EXPORT_SYMBOL_GPL vmlinux 0xfbdd574a platform_device_register_data
+EXPORT_SYMBOL_GPL vmlinux 0xfbf9be5d register_oom_notifier
+EXPORT_SYMBOL_GPL vmlinux 0xfc072bb1 transport_configure_device
+EXPORT_SYMBOL_GPL vmlinux 0xfc2ce4a3 inotify_init_watch
+EXPORT_SYMBOL_GPL vmlinux 0xfc4fad09 ring_buffer_iter_peek
+EXPORT_SYMBOL_GPL vmlinux 0xfc5b86b1 usb_hc_died
+EXPORT_SYMBOL_GPL vmlinux 0xfca1c98f usb_hcd_pci_remove
+EXPORT_SYMBOL_GPL vmlinux 0xfcfb77b8 usb_get_status
+EXPORT_SYMBOL_GPL vmlinux 0xfcfc2257 br_handle_frame_hook
+EXPORT_SYMBOL_GPL vmlinux 0xfd2e65e1 ab8500_write
+EXPORT_SYMBOL_GPL vmlinux 0xfd6c5c01 crypto_register_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xfd745cd7 default_backing_dev_info
+EXPORT_SYMBOL_GPL vmlinux 0xfd8d3ddf bus_find_device_by_name
+EXPORT_SYMBOL_GPL vmlinux 0xfdd68393 __rtnl_link_register
+EXPORT_SYMBOL_GPL vmlinux 0xfde0b92c crypto_larval_error
+EXPORT_SYMBOL_GPL vmlinux 0xfe396fb7 fuse_request_send_background
+EXPORT_SYMBOL_GPL vmlinux 0xfe3d6fc8 usb_unlink_anchored_urbs
+EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free
+EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister
+EXPORT_SYMBOL_GPL vmlinux 0xfef7688e usb_wait_anchor_empty_timeout
+EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve
+EXPORT_SYMBOL_GPL vmlinux 0xfefa2adb input_ff_effect_from_user
+EXPORT_SYMBOL_GPL vmlinux 0xff0b1fb1 class_dev_iter_exit
+EXPORT_SYMBOL_GPL vmlinux 0xff23beec mnt_want_write_file
+EXPORT_SYMBOL_GPL vmlinux 0xff37b41e invalidate_inode_pages2
+EXPORT_SYMBOL_GPL vmlinux 0xff563d64 driver_attach
+EXPORT_SYMBOL_GPL vmlinux 0xff58d458 unregister_net_sysctl_table
+EXPORT_SYMBOL_GPL vmlinux 0xff680fa5 transport_destroy_device
+EXPORT_SYMBOL_GPL vmlinux 0xff9c8e94 crypto_unregister_ahash
+EXPORT_SYMBOL_GPL vmlinux 0xffa4c4ec cgroup_lock
+EXPORT_SYMBOL_GPL vmlinux 0xffa850e6 ring_buffer_record_disable_cpu
+EXPORT_SYMBOL_GPL vmlinux 0xffad3f75 ablkcipher_walk_phys
+EXPORT_SYMBOL_GPL vmlinux 0xffc04543 unregister_dimm_printer
diff --git a/debian.master/abi/2.6.35-2.3/sparc/sparc64-smp.modules b/debian.master/abi/2.6.35-2.3/sparc/sparc64-smp.modules
new file mode 100644
index 00000000000..b0ae161e356
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/sparc/sparc64-smp.modules
@@ -0,0 +1,1975 @@
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+8021q
+8139cp
+8139too
+8250
+8250_pci
+8390
+88pm860x_bl
+88pm860x_onkey
+88pm860x-ts
+9p
+9pnet
+9pnet_rdma
+a100u2w
+aacraid
+ab3100
+ab3100-otp
+ac97_bus
+acecad
+acenic
+act_gact
+act_ipt
+act_mirred
+act_nat
+act_pedit
+act_police
+act_simple
+act_skbedit
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7414
+ad7418
+ad7877
+ad7879
+adcxx
+adfs
+adm1026
+adm1029
+adm8211
+adm9240
+adp5520_bl
+adp5520-gpio
+adp5520-keys
+adp5588-gpio
+adp5588-keys
+adp8860_bl
+ads7846
+ads7871
+adt7411
+adt7462
+adt7470
+adt7475
+adutux
+adv7180
+adv7343
+aes_generic
+af_802154
+affs
+af_key
+af-rxrpc
+ah4
+ah6
+ahci
+ahci_platform
+aic79xx
+aic94xx
+aiptek
+aircable
+airo
+airo_cs
+ak881x
+alauda
+alim7101_wdt
+altera_jtaguart
+altera_ps2
+altera_uart
+amc6821
+ansi_cprng
+anubis
+aoe
+apbuart
+appledisplay
+appletalk
+appletouch
+applicom
+ar7part
+ar9170usb
+arc4
+arcmsr
+ark3116
+arkfb
+arptable_filter
+arp_tables
+arpt_mangle
+asc7621
+asix
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+ata_generic
+ata_piix
+aten
+ath
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atm
+atmel
+atmel_cs
+atmel_pci
+atmtcp
+atp870u
+atxp1
+authenc
+auth_rpcgss
+autofs
+autofs4
+avmfritz
+axnet_cs
+b43
+b43legacy
+b44
+bbc
+bcm5974
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfs
+binfmt_misc
+block2mtd
+blowfish
+bnx2
+bnx2i
+bnx2x
+bonding
+bpck
+bq24022
+bq27x00_battery
+br2684
+bridge
+broadcom
+broadsheetfb
+bsd_comp
+bt8xxgpio
+btrfs
+c67x00
+cachefiles
+cafe_ccic
+cafe_nand
+caif
+caif_serial
+caif_socket
+camellia
+can
+can-bcm
+can-dev
+can-raw
+carminefb
+cassini
+cast5
+cast6
+catc
+cb710
+cb710-mmc
+cciss
+cdc-acm
+cdc_eem
+cdc_ether
+cdc-phonet
+cdc_subset
+cdc-wdm
+cdrom
+ceph
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+ch341
+chipreg
+chmc
+chnl_net
+cicada
+cifs
+clip
+cls_basic
+cls_flow
+cls_fw
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cn
+cnic
+coda
+comm
+configfs
+core
+cp210x
+cpu-notifier-error-inject
+cpwd
+cramfs
+crc32c
+crc7
+crc-ccitt
+crc-itu-t
+crc-t10dif
+cryptd
+cryptoloop
+crypto_null
+cs53l32a
+cs5535-gpio
+cts
+cuse
+cx231xx
+cx231xx-alsa
+cx2341x
+cx25840
+cxacru
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_m8
+cytherm
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+DAC960
+davicom
+dc395x
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dccp_probe
+de600
+de620
+decnet
+deflate
+digi_acceleport
+diskonchip
+display
+display7seg
+dl2k
+dlm
+dm9601
+dm-crypt
+dme1737
+dm-log
+dm-mirror
+dm-multipath
+dm-queue-length
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dmx3191d
+dm-zero
+dnet
+dn_rtmsg
+doc2000
+doc2001
+doc2001plus
+docecc
+docprobe
+drm_kms_helper
+ds1682
+ds2482
+ds2490
+ds2760_battery
+ds2782_battery
+dsbr100
+dstr
+dummy
+dv1394
+dw_spi_pci
+dynapro
+e100
+e1000
+e1000e
+ebt_802_3
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_ulog
+ebt_vlan
+eeprom
+eeprom_93cx6
+eeti_ts
+efs
+ehci-hcd
+elo
+emc1403
+em_cmp
+emi26
+emi62
+em_meta
+em_nbyte
+empeg
+ems_pci
+ems_usb
+em_text
+em_u32
+eni
+enic
+envctrl
+epat
+epca
+epia
+epic100
+eql
+esp4
+esp6
+esp_scsi
+et1011c
+et61x251
+eth1394
+ethoc
+evdev
+exofs
+exportfs
+f71805f
+f71882fg
+f75375s
+fat
+faulty
+fb_sys_fops
+fcoe
+fcrypt
+fdomain_cs
+fealnx
+ff-memless
+fit2
+fit3
+flash
+fmvj18x_cs
+fore_200e
+freevxfs
+friq
+frpw
+fscache
+ftdi-elan
+ftdi_sio
+ftl
+fujitsu_ts
+funsoft
+g760a
+gadgetfs
+garmin_gps
+garp
+g_audio
+g_cdc
+generic
+generic_bl
+gen_probe
+g_ether
+gf128mul
+g_ffs
+g_file_storage
+gfs2
+ghash-generic
+g_hid
+gigaset
+gl520sm
+gl620a
+gluebi
+g_mass_storage
+g_midi
+g_nokia
+gpio-addr-flash
+gpio_keys
+gpio_mouse
+gpio_vbus
+g_printer
+greth
+g_serial
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_stk014
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_tv8532
+gspca_vc032x
+gspca_zc3xx
+gtco
+gunze
+g_webcam
+g_zero
+hampshire
+hdpvr
+he
+hexium_gemini
+hexium_orion
+hfs
+hfsplus
+hid
+hid-3m-pct
+hid-a4tech
+hid-apple
+hid-belkin
+hid-cando
+hid-cherry
+hid-chicony
+hid-cypress
+hid-drff
+hid-egalax
+hid-ezkey
+hid-gaff
+hid-gyration
+hid-kensington
+hid-kye
+hid-logitech
+hid-microsoft
+hid-monterey
+hid-mosart
+hid-ntrig
+hid-ortek
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-prodikeys
+hid-quanta
+hid-roccat
+hid-roccat-kone
+hid-samsung
+hid-sjoy
+hid-sony
+hid-stantum
+hid-sunplus
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-zpff
+hid-zydacron
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hp4x
+hpfs
+hpsa
+hptiop
+hso
+htc-pasic3
+hwa-hc
+hwa-rc
+hwmon-vid
+i1480-dfu-usb
+i1480-est
+i1480u-wlp
+i2400m
+i2400m-sdio
+i2400m-usb
+i2c-algo-pca
+i2c-dev
+i2c-gpio
+i2c-isch
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-simtec
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-xiic
+i2o_block
+i2o_bus
+i2o_core
+i2o_proc
+i2o_scsi
+i5k_amb
+i82092
+ib_addr
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_mad
+ibmaem
+ibmpex
+ib_mthca
+ib_sa
+ib_srp
+ib_ucm
+ib_umad
+ib_uverbs
+icplus
+ics932s401
+idmouse
+idt77252
+ieee1394
+ieee802154
+ifb
+igbvf
+ili9320
+imm
+imon
+inexio
+inftl
+initio
+input-polldev
+int51x1
+intel_vr_nor
+ioc4
+io_edgeport
+io_ti
+iowarrior
+ip2
+ip6_queue
+ip6table_filter
+ip6table_mangle
+ip6table_raw
+ip6_tables
+ip6table_security
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_LOG
+ip6t_mh
+ip6t_REJECT
+ip6t_rt
+ip6_tunnel
+ipaq
+ipcomp
+ipcomp6
+ipg
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_si
+ipmi_watchdog
+ip_queue
+ipr
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+ip_tables
+iptable_security
+ipt_addrtype
+ipt_ah
+ipt_CLUSTERIP
+ipt_ecn
+ipt_ECN
+ipt_LOG
+ipt_MASQUERADE
+ipt_NETMAP
+ipt_REDIRECT
+ipt_REJECT
+ipt_ULOG
+ipv6
+ip_vs
+ip_vs_dh
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_nq
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ipw
+ipw2100
+ipw2200
+ipx
+ir-common
+ir-core
+ir-jvc-decoder
+ir-kbd-i2c
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-sony-decoder
+ir-usb
+iscsi_tcp
+isdn
+isdnhdlc
+isight_firmware
+isl29003
+isofs
+isp116x-hcd
+isp1362-hcd
+isp1760
+istallion
+it8761e_gpio
+iuu_phoenix
+iw_c2
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwlagn
+iwlcore
+iwmc3200top
+iwmc3200wifi
+ixgb
+ixgbe
+ixj
+ixj_pcmcia
+jedec_probe
+jffs2
+jfs
+jme
+jsm
+kafs
+kaweth
+kbic
+kbtab
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+khazad
+kl5kusb105
+kobil_sct
+ks0108
+ks8842
+ks8851
+ks8851_mll
+ksz884x
+ktti
+kvaser_pci
+l2tp_core
+l2tp_debugfs
+l2tp_ppp
+l4f00242t03
+lanai
+lcd
+ldusb
+lec
+led-class
+leds-88pm860x
+leds-adp5520
+leds-bd2802
+leds-da903x
+leds-dac124s085
+leds-lp3944
+leds-lt3593
+leds-mc13783
+leds-pca9532
+leds-pca955x
+leds-regulator
+leds-sunfire
+leds-wm831x-status
+leds-wm8350
+ledtrig-backlight
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-timer
+legousbtower
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libata
+libcrc32c
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libosd
+libsas
+libsrp
+linear
+lis3lv02d
+lis3lv02d_i2c
+lis3lv02d_spi
+lkkbd
+llc
+llc2
+lm63
+lm70
+lm73
+lm8323
+lm87
+lm92
+lm93
+lm95241
+lms283gf05
+lockd
+lp
+lp3971
+lpc_sch
+lpddr_cmds
+lpfc
+lrw
+ltc4215
+ltc4245
+ltv350qv
+lxt
+lzo
+lzo_compress
+m25p80
+mac80211
+mac80211_hwsim
+macvlan
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+matrix_keypad
+matrox_w1
+max1111
+max1586
+max17040_battery
+max3100
+max6650
+max6875
+max7300
+max7301
+max730x
+max732x
+max7359_keypad
+max8649
+max8660
+max8925_bl
+max8925_onkey
+max8925_power
+max8925-regulator
+mb862xxfb
+mb862xxfb_accel
+mc13783-adc
+mc13783-core
+mc13783-regulator
+mc13783_ts
+mc33880
+mc44s803
+mcp23s08
+mcp251x
+mcs5000_ts
+mcs7830
+mct_u232
+md4
+mdc800
+mdio
+mdio-bitbang
+mdio-gpio
+md-mod
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mem2mem_testdev
+metronomefb
+mga
+michael_mic
+micrel
+microtek
+mii
+minix
+mISDN_core
+mISDNinfineon
+mISDNipac
+mISDNisar
+mk712
+mlx4_core
+mlx4_en
+mlx4_ib
+mmc_block
+mmc_core
+mmc_spi
+mos7720
+mos7840
+moto_modem
+moxa
+mpoa
+mpt2sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+msdos
+msp3400
+mt20xx
+mt9m001
+mt9m111
+mt9t031
+mt9t112
+mt9v011
+mt9v022
+mtd
+mtd_blkdevs
+mtdblock
+mtdblock_ro
+mtdchar
+mtdconcat
+mtd_dataflash
+mtd_nandecctest
+mtd_oobtest
+mtdoops
+mtd_pagetest
+mtdram
+mtd_readtest
+mtd_speedtest
+mtd_stresstest
+mtd_subpagetest
+mtd_torturetest
+mtouch
+multipath
+mwl8k
+myri10ge
+myri_sbus
+n2_crypto
+nand
+nand_ecc
+nand_ids
+nandsim
+national
+natsemi
+navman
+nbd
+ncpfs
+ne2k-pci
+net1080
+netconsole
+netjet
+netxen_nic
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_ipv4
+nf_conntrack_ipv6
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_proto_dccp
+nf_conntrack_proto_gre
+nf_conntrack_proto_sctp
+nf_conntrack_proto_udplite
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_proto_dccp
+nf_nat_proto_gre
+nf_nat_proto_sctp
+nf_nat_proto_udplite
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nfnetlink
+nfnetlink_log
+nfnetlink_queue
+nfs
+nfs_acl
+nfsd
+nftl
+nf_tproxy_core
+n_hdlc
+nilfs2
+niu
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp437
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+nop-usb-xceiv
+n_r3964
+ns83820
+ntfs
+nvidiafb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stackglue
+ocfs2_stack_o2cb
+ocfs2_stack_user
+of_mmc_spi
+ohci1394
+ohci-hcd
+omfs
+omninet
+on20
+on26
+onenand
+onenand_sim
+opencores-kbd
+openpromfs
+opticon
+option
+orinoco
+orinoco_cs
+orinoco_usb
+osd
+osdblk
+osst
+oti6858
+output
+ov7670
+ov772x
+ov9640
+oxu210hp-hcd
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+p8023
+paride
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+parport_sunbpp
+pata_amd
+pata_atp867x
+pata_cs5520
+pata_efar
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_oldpiix
+pata_pcmcia
+pata_pdc2027x
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sis
+pata_sl82c105
+pata_triflex
+pata_via
+pc87360
+pc87427
+pca953x
+pcbc
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf857x
+pci
+pcilynx
+pcmcia
+pcmcia_core
+pcmciamtd
+pcmcia_rsrc
+pcnet32
+pcnet_cs
+pcrypt
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pdc_adma
+pegasus
+penmount
+pf
+pg
+phantom
+phonedev
+phonet
+phram
+physmap
+pktcdvd
+pl2303
+platform_lcd
+plat_nand
+plat-ram
+plip
+plusb
+plx_pci
+pm3fb
+pm8001
+pmc551
+pmcraid
+pn_pep
+powermate
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_generic
+ppp_mppe
+pppoatm
+pppoe
+pppox
+ppp_synctty
+pps_core
+pps-ldisc
+psmouse
+psnap
+pt
+pvrusb2
+qcaux
+qcserial
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas408
+qlogicpti
+qnx4
+qsemi
+quota_tree
+quota_v2
+r128
+r852
+r8a66597-hcd
+radeon
+radio-gemtek-pci
+radio-i2c-si470x
+radio-maestro
+radio-maxiradio
+radio-mr800
+radio-si4713
+radio-tea5764
+radio-timb
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid6test
+raid_class
+ramoops
+raw
+raw1394
+ray_cs
+rc-adstech-dvb-t-pci
+rc-apac-viewcomp
+rc-asus-pc39
+rc-ati-tv-wonder-hd-600
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avertv-303
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-empty
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv2
+rc-encore-enltv-fm53
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge-new
+rc-imon-mce
+rc-imon-pad
+rc-iodata-bctv7e
+rc-kaiomy
+rc-kworld-315u
+rc-kworld-plus-tv-analog
+rc-manli
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc5-hauppauge-new
+rc-rc5-tv
+rc-real-audio-220-32-keys
+rc-tbs-nec
+rc-terratec-cinergy-xs
+rc-tevii-nec
+rc-tt-1500
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-winfast
+rc-winfast-usbii-deluxe
+rdc321x-gpio
+rdc321x-southbridge
+rdma_cm
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+redboot
+reed_solomon
+reiserfs
+rfd_ftl
+rio500
+riowd
+rj54n1cb0c
+rmd128
+rmd160
+rmd256
+rmd320
+rndis_host
+rocket
+romfs
+rotary_encoder
+rpcsec_gss_krb5
+rpcsec_gss_spkm3
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00pci
+rt2x00usb
+rt61pci
+rt73usb
+rtc-ab3100
+rtc-ab8500
+rtc-bq32k
+rtc-ds1286
+rtc-ds1305
+rtc-ds1307
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1742
+rtc-ds3234
+rtc-fm3130
+rtc-isl1208
+rtc-m41t80
+rtc-m41t94
+rtc-m48t35
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max8925
+rtc-mc13783
+rtc-msm6242
+rtc-pcf2123
+rtc-pcf50633
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-stk17ta8
+rtc-test
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtl8150
+rtl8187
+rxkad
+s1d13xxxfb
+s2255drv
+s2io
+s3fb
+s6e63m0
+saa5246a
+saa6588
+saa6752hs
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-empress
+saa7146
+saa7146_vv
+saa717x
+saa7706h
+safe_serial
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savage
+savagefb
+sbp2
+sc92031
+sch_atm
+sch_cbq
+sch_drr
+sch_dsmark
+sch_gpio
+sch_gred
+sch_hfsc
+sch_htb
+sch_ingress
+sch_multiq
+sch_netem
+sch_prio
+sch_red
+sch_sfq
+sch_tbf
+sch_teql
+scsi_dh
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_tgt
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+scsi_wait_scan
+sctp
+sctp_probe
+sdhci
+sdhci-pci
+sdhci-pltfm
+sdio_uart
+sd_mod
+sdricoh_cs
+seed
+serial_cs
+serio_raw
+serpent
+serport
+sfc
+sg
+sha1_generic
+sha256_generic
+sha512_generic
+sht15
+si4713-i2c
+siemens_mpi
+sierra
+sierra_net
+sis190
+sis5595
+sis900
+sisusbvga
+sit
+sja1000
+sja1000_platform
+skfp
+skge
+sky2
+sl811_cs
+sl811-hcd
+slhc
+slip
+slram
+sm501
+sm501fb
+smbfs
+smc91c92_cs
+sm_common
+smsc
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc9420
+smsc95xx
+sn9c102
+snd
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-als300
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-cs5535audio
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-atihdmi
+snd-hda-codec-ca0110
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-idt
+snd-hda-codec-intelhdmi
+snd-hda-codec-nvhdmi
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel8x0
+snd-intel8x0m
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-page-alloc
+snd-pcm
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ad1836
+snd-soc-ad193x
+snd-soc-ad73311
+snd-soc-ads117x
+snd-soc-ak4104
+snd-soc-ak4535
+snd-soc-ak4642
+snd-soc-ak4671
+snd-soc-core
+snd-soc-cs4270
+snd-soc-da7210
+snd-soc-l3
+snd-soc-max9877
+snd-soc-pcm3008
+snd-soc-spdif
+snd-soc-ssm2602
+snd-soc-tlv320aic23
+snd-soc-tlv320aic26
+snd-soc-tlv320aic3x
+snd-soc-tlv320dac33
+snd-soc-tpa6130a2
+snd-soc-twl4030
+snd-soc-twl6040
+snd-soc-uda134x
+snd-soc-uda1380
+snd-soc-wm2000
+snd-soc-wm8350
+snd-soc-wm8400
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8727
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8776
+snd-soc-wm8900
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8940
+snd-soc-wm8955
+snd-soc-wm8960
+snd-soc-wm8961
+snd-soc-wm8971
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8988
+snd-soc-wm8990
+snd-soc-wm8993
+snd-soc-wm8994
+snd-soc-wm9081
+snd-soc-wm9090
+snd-soc-wm-hubs
+snd-sonicvibes
+snd-sun-amd7930
+snd-sun-cs4231
+snd-sun-dbri
+snd-tea575x-tuner
+snd-timer
+snd-trident
+snd-usb-audio
+snd-usb-caiaq
+snd-usbmidi-lib
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-vx222
+snd-vx-lib
+snd-vxpocket
+snd-ymfpci
+soc_camera
+soc_camera_platform
+soc_mediabus
+softdog
+solos-pci
+soundcore
+sparse-keymap
+spcp8x5
+spectrum_cs
+speedfax
+speedtch
+spi_bitbang
+spi_butterfly
+spidev
+spi_gpio
+spi_lm70llp
+squashfs
+sr_mod
+ssb
+ssfdc
+sst25l
+st
+stallion
+starfire
+ste10Xp
+stex
+stowaway
+stp
+sunbmac
+sundance
+sun_esp
+suni
+sunlance
+sunqe
+sunrpc
+sun_uflash
+sunvdc
+sunvnet
+svcrdma
+svgalib
+sx8
+sym53c500_cs
+sym53c8xx
+symbolserial
+synaptics_i2c
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+tca6416-keypad
+tcm825x
+tcp_bic
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_probe
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tda8290
+tda9840
+tda9887
+tdfx
+tdo24m
+tea
+tea5761
+tea5767
+tea6415c
+tea6420
+tef6862
+tehuti
+test_power
+tg3
+tgr192
+thmc50
+ths7303
+ti_dac7512
+tifm_7xx1
+tifm_core
+tifm_sd
+timb_dma
+timberdale
+timbuart
+timeriomem-rng
+tipc
+ti_usb_3410_5052
+tlan
+tle62x0
+tlv320aic23b
+tmiofb
+tmp102
+tmp401
+tmp421
+touchit213
+touchright
+touchwin
+tpm
+tpm_atmel
+tpm_nsc
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+trancevibrator
+ts_bm
+tsc2007
+ts_fsm
+ts_kmp
+tsl2550
+ttm
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw9910
+twl4030-gpio
+twl4030_keypad
+twl4030-pwrbutton
+twl4030-usb
+twl4030-vibra
+twl4030_wdt
+twofish
+twofish_common
+typhoon
+u132-hcd
+uartlite
+ubi
+ubifs
+ucb1400_core
+ucb1400_ts
+uctrl
+udf
+ueagle-atm
+ufs
+uhci-hcd
+uio
+uio_aec
+uio_cif
+uio_netx
+uio_pci_generic
+uio_pdrv
+uio_pdrv_genirq
+uio_sercos3
+uli526x
+ultra45_env
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-sddr09
+ums-sddr55
+ums-usbat
+upd64031a
+upd64083
+usb8xxx
+usbatm
+usb_debug
+usbhid
+usblcd
+usbled
+usblp
+usbmon
+usbnet
+usbserial
+usbsevseg
+usb-storage
+usbtest
+usbtmc
+usbtouchscreen
+usbvision
+usb_wwan
+userspace-consumer
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l1-compat
+v4l2-common
+v4l2-compat-ioctl32
+v4l2-int-device
+v4l2-mem2mem
+vcan
+veth
+vfat
+vgastate
+vgg2432a4
+via
+viafb
+via-rhine
+via-sdmmc
+via-velocity
+video1394
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videodev
+virtual
+visor
+vitesse
+vivopay-serial
+vmac
+vmxnet3
+vp27smpx
+vt1211
+vt8231
+vt8623fb
+vxge
+w1_bq27000
+w1_ds2431
+w1_ds2433
+w1_ds2760
+w1-gpio
+w1_smem
+w1_therm
+w6692
+w83627ehf
+w83791d
+w83792d
+w83793
+wacom_w8001
+wdt_pci
+whci
+whci-hcd
+whc-rc
+whiteheat
+wimax
+winbond-840
+wire
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1271
+wl1271_spi
+wl3501_cs
+wlp
+wm831x_backup
+wm831x_bl
+wm831x-dcdc
+wm831x-gpio
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x_power
+wm831x_wdt
+wm8350-gpiolib
+wm8350-hwmon
+wm8350_power
+wm8350-regulator
+wm8350_wdt
+wm8400-core
+wm8400-regulator
+wm8739
+wm8775
+wm8994-gpio
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusbcore
+wusb-wa
+xc5000
+xcbc
+xfrm4_mode_beet
+xfrm4_mode_transport
+xfrm4_mode_tunnel
+xfrm4_tunnel
+xfrm6_mode_beet
+xfrm6_mode_ro
+xfrm6_mode_transport
+xfrm6_mode_tunnel
+xfrm6_tunnel
+xfrm_ipcomp
+xfrm_user
+xfs
+xhci-hcd
+xirc2ps_cs
+xircom_cb
+xor
+xprtrdma
+x_tables
+xt_CLASSIFY
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlimit
+xt_connmark
+xt_CONNSECMARK
+xt_conntrack
+xt_CT
+xt_dccp
+xt_dscp
+xt_DSCP
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_HL
+xt_LED
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_NFLOG
+xt_NFQUEUE
+xt_NOTRACK
+xt_osf
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_realm
+xt_recent
+xts
+xt_sctp
+xt_SECMARK
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_TCPMSS
+xt_tcpudp
+xt_TEE
+xt_time
+xt_TPROXY
+xt_TRACE
+xt_u32
+xusbatm
+yealink
+yellowfin
+yenta_socket
+zc0301
+zd1201
+zd1211rw
+zio
+zlib
+zlib_deflate
+zr364xx
diff --git a/debian.master/abi/2.6.35-2.3/sparc/sparc64.modules b/debian.master/abi/2.6.35-2.3/sparc/sparc64.modules
new file mode 100644
index 00000000000..1b52737bc88
--- /dev/null
+++ b/debian.master/abi/2.6.35-2.3/sparc/sparc64.modules
@@ -0,0 +1,1973 @@
+3c574_cs
+3c589_cs
+3c59x
+3w-9xxx
+3w-sas
+3w-xxxx
+8021q
+8139cp
+8139too
+8250
+8250_pci
+8390
+88pm860x_bl
+88pm860x_onkey
+88pm860x-ts
+9p
+9pnet
+9pnet_rdma
+a100u2w
+aacraid
+ab3100
+ab3100-otp
+ac97_bus
+acecad
+acenic
+act_gact
+act_ipt
+act_mirred
+act_nat
+act_pedit
+act_police
+act_simple
+act_skbedit
+ad525x_dpot
+ad525x_dpot-i2c
+ad525x_dpot-spi
+ad714x
+ad714x-i2c
+ad714x-spi
+ad7414
+ad7418
+ad7877
+ad7879
+adcxx
+adfs
+adm1026
+adm1029
+adm8211
+adm9240
+adp5520_bl
+adp5520-gpio
+adp5520-keys
+adp5588-gpio
+adp5588-keys
+adp8860_bl
+ads7846
+ads7871
+adt7411
+adt7462
+adt7470
+adt7475
+adutux
+adv7180
+adv7343
+aes_generic
+af_802154
+affs
+af_key
+af-rxrpc
+ah4
+ah6
+ahci
+ahci_platform
+aic79xx
+aic94xx
+aiptek
+aircable
+airo
+airo_cs
+ak881x
+alauda
+alim7101_wdt
+altera_jtaguart
+altera_ps2
+altera_uart
+amc6821
+ansi_cprng
+anubis
+aoe
+apbuart
+appledisplay
+appletalk
+appletouch
+applicom
+ar7part
+ar9170usb
+arc4
+arcmsr
+ark3116
+arkfb
+arptable_filter
+arp_tables
+arpt_mangle
+asc7621
+asix
+async_memcpy
+async_pq
+async_raid6_recov
+async_tx
+async_xor
+at24
+at25
+at76c50x-usb
+ata_generic
+ata_piix
+aten
+ath
+ath9k
+ath9k_common
+ath9k_htc
+ath9k_hw
+ati_remote
+ati_remote2
+atl1
+atl1c
+atl1e
+atl2
+atm
+atmel
+atmel_cs
+atmel_pci
+atmtcp
+atp870u
+atxp1
+authenc
+auth_rpcgss
+autofs
+autofs4
+avmfritz
+axnet_cs
+b43
+b43legacy
+b44
+bbc
+bcm5974
+be2iscsi
+be2net
+befs
+belkin_sa
+bfa
+bfs
+binfmt_misc
+block2mtd
+blowfish
+bnx2
+bnx2i
+bnx2x
+bonding
+bpck
+bq24022
+bq27x00_battery
+br2684
+bridge
+broadcom
+broadsheetfb
+bsd_comp
+bt8xxgpio
+btrfs
+c67x00
+cachefiles
+cafe_ccic
+cafe_nand
+caif
+caif_serial
+caif_socket
+camellia
+can
+can-bcm
+can-dev
+can-raw
+carminefb
+cassini
+cast5
+cast6
+catc
+cb710
+cb710-mmc
+cciss
+cdc-acm
+cdc_eem
+cdc_ether
+cdc-phonet
+cdc_subset
+cdc-wdm
+cdrom
+ceph
+cfg80211
+cfi_cmdset_0001
+cfi_cmdset_0002
+cfi_cmdset_0020
+cfi_probe
+cfi_util
+ch341
+chipreg
+chmc
+chnl_net
+cicada
+cifs
+clip
+cls_basic
+cls_flow
+cls_fw
+cls_route
+cls_rsvp
+cls_rsvp6
+cls_tcindex
+cls_u32
+cm109
+cn
+cnic
+coda
+comm
+configfs
+core
+cp210x
+cpwd
+cramfs
+crc32c
+crc7
+crc-ccitt
+crc-itu-t
+crc-t10dif
+cryptd
+cryptoloop
+crypto_null
+cs53l32a
+cs5535-gpio
+cts
+cuse
+cx231xx
+cx231xx-alsa
+cx2341x
+cx25840
+cxacru
+cxgb
+cxgb3
+cxgb3i
+cxgb4
+cyberjack
+cyclades
+cypress_cy7c63
+cypress_m8
+cytherm
+da9030_battery
+da9034-ts
+da903x
+da903x_bl
+DAC960
+davicom
+dc395x
+dccp
+dccp_diag
+dccp_ipv4
+dccp_ipv6
+dccp_probe
+de600
+de620
+decnet
+deflate
+digi_acceleport
+diskonchip
+display
+display7seg
+dl2k
+dlm
+dm9601
+dm-crypt
+dme1737
+dm-log
+dm-mirror
+dm-multipath
+dm-queue-length
+dm-region-hash
+dm-round-robin
+dm-service-time
+dm-snapshot
+dmx3191d
+dm-zero
+dnet
+dn_rtmsg
+doc2000
+doc2001
+doc2001plus
+docecc
+docprobe
+drm_kms_helper
+ds1682
+ds2482
+ds2490
+ds2760_battery
+ds2782_battery
+dsbr100
+dstr
+dummy
+dv1394
+dw_spi_pci
+dynapro
+e100
+e1000
+e1000e
+ebt_802_3
+ebtable_broute
+ebtable_filter
+ebtable_nat
+ebtables
+ebt_among
+ebt_arp
+ebt_arpreply
+ebt_dnat
+ebt_ip
+ebt_ip6
+ebt_limit
+ebt_log
+ebt_mark
+ebt_mark_m
+ebt_nflog
+ebt_pkttype
+ebt_redirect
+ebt_snat
+ebt_stp
+ebt_ulog
+ebt_vlan
+eeprom
+eeprom_93cx6
+eeti_ts
+efs
+ehci-hcd
+elo
+emc1403
+em_cmp
+emi26
+emi62
+em_meta
+em_nbyte
+empeg
+ems_pci
+ems_usb
+em_text
+em_u32
+eni
+enic
+envctrl
+epat
+epca
+epia
+epic100
+eql
+esp4
+esp6
+esp_scsi
+et1011c
+et61x251
+eth1394
+ethoc
+evdev
+exofs
+exportfs
+f71805f
+f71882fg
+f75375s
+fat
+faulty
+fb_sys_fops
+fcoe
+fcrypt
+fdomain_cs
+fealnx
+ff-memless
+fit2
+fit3
+flash
+fmvj18x_cs
+fore_200e
+freevxfs
+friq
+frpw
+fscache
+ftdi-elan
+ftdi_sio
+ftl
+fujitsu_ts
+funsoft
+g760a
+gadgetfs
+garmin_gps
+garp
+g_audio
+g_cdc
+generic
+generic_bl
+gen_probe
+g_ether
+gf128mul
+g_ffs
+g_file_storage
+gfs2
+ghash-generic
+g_hid
+gigaset
+gl520sm
+gl620a
+gluebi
+g_mass_storage
+g_midi
+g_nokia
+gpio-addr-flash
+gpio_keys
+gpio_mouse
+gpio_vbus
+g_printer
+greth
+g_serial
+gspca_benq
+gspca_conex
+gspca_cpia1
+gspca_etoms
+gspca_finepix
+gspca_gl860
+gspca_jeilinj
+gspca_m5602
+gspca_main
+gspca_mars
+gspca_mr97310a
+gspca_ov519
+gspca_ov534
+gspca_ov534_9
+gspca_pac207
+gspca_pac7302
+gspca_pac7311
+gspca_sn9c2028
+gspca_sn9c20x
+gspca_sonixb
+gspca_sonixj
+gspca_spca500
+gspca_spca501
+gspca_spca505
+gspca_spca506
+gspca_spca508
+gspca_spca561
+gspca_sq905
+gspca_sq905c
+gspca_stk014
+gspca_stv0680
+gspca_stv06xx
+gspca_sunplus
+gspca_t613
+gspca_tv8532
+gspca_vc032x
+gspca_zc3xx
+gtco
+gunze
+g_webcam
+g_zero
+hampshire
+hdpvr
+he
+hexium_gemini
+hexium_orion
+hfs
+hfsplus
+hid
+hid-3m-pct
+hid-a4tech
+hid-apple
+hid-belkin
+hid-cando
+hid-cherry
+hid-chicony
+hid-cypress
+hid-drff
+hid-egalax
+hid-ezkey
+hid-gaff
+hid-gyration
+hid-kensington
+hid-kye
+hid-logitech
+hid-microsoft
+hid-monterey
+hid-mosart
+hid-ntrig
+hid-ortek
+hid-petalynx
+hid-picolcd
+hid-pl
+hid-prodikeys
+hid-quanta
+hid-roccat
+hid-roccat-kone
+hid-samsung
+hid-sjoy
+hid-sony
+hid-stantum
+hid-sunplus
+hid-tmff
+hid-topseed
+hid-twinhan
+hid-zpff
+hid-zydacron
+hostap
+hostap_cs
+hostap_pci
+hostap_plx
+hp4x
+hpfs
+hpsa
+hptiop
+hso
+htc-pasic3
+hwa-hc
+hwa-rc
+hwmon-vid
+i1480-dfu-usb
+i1480-est
+i1480u-wlp
+i2400m
+i2400m-sdio
+i2400m-usb
+i2c-algo-pca
+i2c-dev
+i2c-gpio
+i2c-isch
+i2c-ocores
+i2c-parport
+i2c-parport-light
+i2c-pca-platform
+i2c-piix4
+i2c-simtec
+i2c-smbus
+i2c-stub
+i2c-taos-evm
+i2c-tiny-usb
+i2c-xiic
+i2o_block
+i2o_bus
+i2o_core
+i2o_proc
+i2o_scsi
+i5k_amb
+i82092
+ib_addr
+ib_cm
+ib_core
+ib_ipoib
+ib_iser
+ib_mad
+ibmaem
+ibmpex
+ib_mthca
+ib_sa
+ib_srp
+ib_ucm
+ib_umad
+ib_uverbs
+icplus
+ics932s401
+idmouse
+idt77252
+ieee1394
+ieee802154
+ifb
+igbvf
+ili9320
+imm
+imon
+inexio
+inftl
+initio
+input-polldev
+int51x1
+intel_vr_nor
+ioc4
+io_edgeport
+io_ti
+iowarrior
+ip2
+ip6_queue
+ip6table_filter
+ip6table_mangle
+ip6table_raw
+ip6_tables
+ip6table_security
+ip6t_ah
+ip6t_eui64
+ip6t_frag
+ip6t_hbh
+ip6t_ipv6header
+ip6t_LOG
+ip6t_mh
+ip6t_REJECT
+ip6t_rt
+ip6_tunnel
+ipaq
+ipcomp
+ipcomp6
+ipg
+iphase
+ipheth
+ipip
+ipmi_devintf
+ipmi_msghandler
+ipmi_si
+ipmi_watchdog
+ip_queue
+ipr
+iptable_filter
+iptable_mangle
+iptable_nat
+iptable_raw
+ip_tables
+iptable_security
+ipt_addrtype
+ipt_ah
+ipt_CLUSTERIP
+ipt_ecn
+ipt_ECN
+ipt_LOG
+ipt_MASQUERADE
+ipt_NETMAP
+ipt_REDIRECT
+ipt_REJECT
+ipt_ULOG
+ipv6
+ip_vs
+ip_vs_dh
+ip_vs_ftp
+ip_vs_lblc
+ip_vs_lblcr
+ip_vs_lc
+ip_vs_nq
+ip_vs_rr
+ip_vs_sed
+ip_vs_sh
+ip_vs_wlc
+ip_vs_wrr
+ipw
+ipw2100
+ipw2200
+ipx
+ir-common
+ir-core
+ir-jvc-decoder
+ir-kbd-i2c
+ir-nec-decoder
+ir-rc5-decoder
+ir-rc6-decoder
+ir-sony-decoder
+ir-usb
+iscsi_tcp
+isdn
+isdnhdlc
+isight_firmware
+isl29003
+isofs
+isp116x-hcd
+isp1362-hcd
+isp1760
+istallion
+it8761e_gpio
+iuu_phoenix
+iw_c2
+iw_cm
+iw_cxgb3
+iw_cxgb4
+iwlagn
+iwlcore
+iwmc3200top
+iwmc3200wifi
+ixgb
+ixgbe
+ixj
+ixj_pcmcia
+jedec_probe
+jffs2
+jfs
+jme
+jsm
+kafs
+kaweth
+kbic
+kbtab
+kernelcapi
+keyspan
+keyspan_pda
+keyspan_remote
+khazad
+kl5kusb105
+kobil_sct
+ks0108
+ks8842
+ks8851
+ks8851_mll
+ksz884x
+ktti
+kvaser_pci
+l2tp_core
+l2tp_debugfs
+l2tp_ppp
+l4f00242t03
+lanai
+lcd
+ldusb
+lec
+led-class
+leds-88pm860x
+leds-adp5520
+leds-bd2802
+leds-da903x
+leds-dac124s085
+leds-lp3944
+leds-lt3593
+leds-mc13783
+leds-pca9532
+leds-pca955x
+leds-regulator
+leds-sunfire
+leds-wm831x-status
+leds-wm8350
+ledtrig-backlight
+ledtrig-gpio
+ledtrig-heartbeat
+ledtrig-timer
+legousbtower
+lib80211
+lib80211_crypt_ccmp
+lib80211_crypt_tkip
+lib80211_crypt_wep
+libahci
+libata
+libcrc32c
+libertas
+libertas_cs
+libertas_sdio
+libertas_spi
+libertas_tf
+libertas_tf_usb
+libfc
+libfcoe
+libipw
+libiscsi
+libiscsi_tcp
+libosd
+libsas
+libsrp
+linear
+lis3lv02d
+lis3lv02d_i2c
+lis3lv02d_spi
+lkkbd
+llc
+llc2
+lm63
+lm70
+lm73
+lm8323
+lm87
+lm92
+lm93
+lm95241
+lms283gf05
+lockd
+lp
+lp3971
+lpc_sch
+lpddr_cmds
+lpfc
+lrw
+ltc4215
+ltc4245
+ltv350qv
+lxt
+lzo
+lzo_compress
+m25p80
+mac80211
+mac80211_hwsim
+macvlan
+map_absent
+map_funcs
+map_ram
+map_rom
+marvell
+matrix_keypad
+matrox_w1
+max1111
+max1586
+max17040_battery
+max3100
+max6650
+max6875
+max7300
+max7301
+max730x
+max732x
+max7359_keypad
+max8649
+max8660
+max8925_bl
+max8925_onkey
+max8925_power
+max8925-regulator
+mb862xxfb
+mb862xxfb_accel
+mc13783-adc
+mc13783-core
+mc13783-regulator
+mc13783_ts
+mc33880
+mc44s803
+mcp23s08
+mcp251x
+mcs5000_ts
+mcs7830
+mct_u232
+md4
+mdc800
+mdio
+mdio-bitbang
+mdio-gpio
+md-mod
+megaraid
+megaraid_mbox
+megaraid_mm
+megaraid_sas
+mem2mem_testdev
+metronomefb
+mga
+michael_mic
+micrel
+microtek
+mii
+minix
+mISDN_core
+mISDNinfineon
+mISDNipac
+mISDNisar
+mk712
+mlx4_core
+mlx4_en
+mlx4_ib
+mmc_block
+mmc_core
+mmc_spi
+mos7720
+mos7840
+moto_modem
+moxa
+mpoa
+mpt2sas
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+msdos
+msp3400
+mt20xx
+mt9m001
+mt9m111
+mt9t031
+mt9t112
+mt9v011
+mt9v022
+mtd
+mtd_blkdevs
+mtdblock
+mtdblock_ro
+mtdchar
+mtdconcat
+mtd_dataflash
+mtd_nandecctest
+mtd_oobtest
+mtdoops
+mtd_pagetest
+mtdram
+mtd_readtest
+mtd_speedtest
+mtd_stresstest
+mtd_subpagetest
+mtd_torturetest
+mtouch
+multipath
+mwl8k
+myri10ge
+myri_sbus
+n2_crypto
+nand
+nand_ecc
+nand_ids
+nandsim
+national
+natsemi
+navman
+nbd
+ncpfs
+ne2k-pci
+net1080
+netconsole
+netjet
+netxen_nic
+nf_conntrack
+nf_conntrack_amanda
+nf_conntrack_ftp
+nf_conntrack_h323
+nf_conntrack_ipv4
+nf_conntrack_ipv6
+nf_conntrack_irc
+nf_conntrack_netbios_ns
+nf_conntrack_netlink
+nf_conntrack_pptp
+nf_conntrack_proto_dccp
+nf_conntrack_proto_gre
+nf_conntrack_proto_sctp
+nf_conntrack_proto_udplite
+nf_conntrack_sane
+nf_conntrack_sip
+nf_conntrack_tftp
+nf_defrag_ipv4
+nf_nat
+nf_nat_amanda
+nf_nat_ftp
+nf_nat_h323
+nf_nat_irc
+nf_nat_pptp
+nf_nat_proto_dccp
+nf_nat_proto_gre
+nf_nat_proto_sctp
+nf_nat_proto_udplite
+nf_nat_sip
+nf_nat_snmp_basic
+nf_nat_tftp
+nfnetlink
+nfnetlink_log
+nfnetlink_queue
+nfs
+nfs_acl
+nfsd
+nftl
+nf_tproxy_core
+n_hdlc
+nilfs2
+niu
+nls_ascii
+nls_cp1250
+nls_cp1251
+nls_cp1255
+nls_cp437
+nls_cp737
+nls_cp775
+nls_cp850
+nls_cp852
+nls_cp855
+nls_cp857
+nls_cp860
+nls_cp861
+nls_cp862
+nls_cp863
+nls_cp864
+nls_cp865
+nls_cp866
+nls_cp869
+nls_cp874
+nls_cp932
+nls_cp936
+nls_cp949
+nls_cp950
+nls_euc-jp
+nls_iso8859-1
+nls_iso8859-13
+nls_iso8859-14
+nls_iso8859-15
+nls_iso8859-2
+nls_iso8859-3
+nls_iso8859-4
+nls_iso8859-5
+nls_iso8859-6
+nls_iso8859-7
+nls_iso8859-9
+nls_koi8-r
+nls_koi8-ru
+nls_koi8-u
+nls_utf8
+nmclan_cs
+nop-usb-xceiv
+n_r3964
+ns83820
+ntfs
+nvidiafb
+ocfs2
+ocfs2_dlm
+ocfs2_dlmfs
+ocfs2_nodemanager
+ocfs2_stackglue
+ocfs2_stack_o2cb
+ocfs2_stack_user
+of_mmc_spi
+ohci1394
+ohci-hcd
+omfs
+omninet
+on20
+on26
+onenand
+onenand_sim
+opencores-kbd
+openpromfs
+opticon
+option
+orinoco
+orinoco_cs
+orinoco_usb
+osd
+osdblk
+osst
+oti6858
+output
+ov7670
+ov772x
+ov9640
+oxu210hp-hcd
+p54common
+p54pci
+p54spi
+p54usb
+p8022
+p8023
+paride
+parport
+parport_ax88796
+parport_cs
+parport_pc
+parport_serial
+parport_sunbpp
+pata_amd
+pata_atp867x
+pata_cs5520
+pata_efar
+pata_it8213
+pata_it821x
+pata_jmicron
+pata_legacy
+pata_marvell
+pata_mpiix
+pata_netcell
+pata_ninja32
+pata_oldpiix
+pata_pcmcia
+pata_pdc2027x
+pata_rdc
+pata_rz1000
+pata_sch
+pata_serverworks
+pata_sil680
+pata_sis
+pata_sl82c105
+pata_triflex
+pata_via
+pc87360
+pc87427
+pca953x
+pcbc
+pcd
+pcf50633
+pcf50633-adc
+pcf50633-backlight
+pcf50633-charger
+pcf50633-gpio
+pcf50633-input
+pcf50633-regulator
+pcf8574_keypad
+pcf857x
+pci
+pcilynx
+pcmcia
+pcmcia_core
+pcmciamtd
+pcmcia_rsrc
+pcnet32
+pcnet_cs
+pcwd_pci
+pcwd_usb
+pd
+pd6729
+pda_power
+pdc_adma
+pegasus
+penmount
+pf
+pg
+phantom
+phonedev
+phonet
+phram
+physmap
+pktcdvd
+pl2303
+platform_lcd
+plat_nand
+plat-ram
+plip
+plusb
+plx_pci
+pm3fb
+pm8001
+pmc551
+pmcraid
+pn_pep
+powermate
+ppa
+ppdev
+ppp_async
+ppp_deflate
+ppp_generic
+ppp_mppe
+pppoatm
+pppoe
+pppox
+ppp_synctty
+pps_core
+pps-ldisc
+psmouse
+psnap
+pt
+pvrusb2
+qcaux
+qcserial
+qinfo_probe
+qla1280
+qla2xxx
+qla3xxx
+qla4xxx
+qlcnic
+qlge
+qlogic_cs
+qlogicfas408
+qlogicpti
+qnx4
+qsemi
+quota_tree
+quota_v2
+r128
+r852
+r8a66597-hcd
+radeon
+radio-gemtek-pci
+radio-i2c-si470x
+radio-maestro
+radio-maxiradio
+radio-mr800
+radio-si4713
+radio-tea5764
+radio-timb
+raid0
+raid1
+raid10
+raid456
+raid6_pq
+raid6test
+raid_class
+ramoops
+raw
+raw1394
+ray_cs
+rc-adstech-dvb-t-pci
+rc-apac-viewcomp
+rc-asus-pc39
+rc-ati-tv-wonder-hd-600
+rc-avermedia
+rc-avermedia-a16d
+rc-avermedia-cardbus
+rc-avermedia-dvbt
+rc-avermedia-m135a
+rc-avermedia-m733a-rm-k6
+rc-avertv-303
+rc-behold
+rc-behold-columbus
+rc-budget-ci-old
+rc-cinergy
+rc-cinergy-1400
+rc-dm1105-nec
+rc-dntv-live-dvb-t
+rc-dntv-live-dvbt-pro
+rc-empty
+rc-em-terratec
+rc-encore-enltv
+rc-encore-enltv2
+rc-encore-enltv-fm53
+rc-evga-indtube
+rc-eztv
+rc-flydvb
+rc-flyvideo
+rc-fusionhdtv-mce
+rc-gadmei-rm008z
+rc-genius-tvgo-a11mce
+rc-gotview7135
+rc-hauppauge-new
+rc-imon-mce
+rc-imon-pad
+rc-iodata-bctv7e
+rc-kaiomy
+rc-kworld-315u
+rc-kworld-plus-tv-analog
+rc-manli
+rc-msi-tvanywhere
+rc-msi-tvanywhere-plus
+rc-nebula
+rc-nec-terratec-cinergy-xs
+rc-norwood
+rc-npgtech
+rc-pctv-sedna
+rc-pinnacle-color
+rc-pinnacle-grey
+rc-pinnacle-pctv-hd
+rc-pixelview
+rc-pixelview-mk12
+rc-pixelview-new
+rc-powercolor-real-angel
+rc-proteus-2309
+rc-purpletv
+rc-pv951
+rc-rc5-hauppauge-new
+rc-rc5-tv
+rc-real-audio-220-32-keys
+rc-tbs-nec
+rc-terratec-cinergy-xs
+rc-tevii-nec
+rc-tt-1500
+rc-videomate-s350
+rc-videomate-tv-pvr
+rc-winfast
+rc-winfast-usbii-deluxe
+rdc321x-gpio
+rdc321x-southbridge
+rdma_cm
+rdma_ucm
+rds
+rds_rdma
+rds_tcp
+redboot
+reed_solomon
+reiserfs
+rfd_ftl
+rio500
+riowd
+rj54n1cb0c
+rmd128
+rmd160
+rmd256
+rmd320
+rndis_host
+rocket
+romfs
+rotary_encoder
+rpcsec_gss_krb5
+rpcsec_gss_spkm3
+rt2400pci
+rt2500pci
+rt2500usb
+rt2800lib
+rt2800pci
+rt2800usb
+rt2x00lib
+rt2x00pci
+rt2x00usb
+rt61pci
+rt73usb
+rtc-ab3100
+rtc-ab8500
+rtc-bq32k
+rtc-ds1286
+rtc-ds1305
+rtc-ds1307
+rtc-ds1374
+rtc-ds1390
+rtc-ds1511
+rtc-ds1553
+rtc-ds1672
+rtc-ds1742
+rtc-ds3234
+rtc-fm3130
+rtc-isl1208
+rtc-m41t80
+rtc-m41t94
+rtc-m48t35
+rtc-m48t86
+rtc-max6900
+rtc-max6902
+rtc-max8925
+rtc-mc13783
+rtc-msm6242
+rtc-pcf2123
+rtc-pcf50633
+rtc-pcf8563
+rtc-pcf8583
+rtc-r9701
+rtc-rp5c01
+rtc-rs5c348
+rtc-rs5c372
+rtc-rx8025
+rtc-rx8581
+rtc-s35390a
+rtc-stk17ta8
+rtc-test
+rtc-twl
+rtc-v3020
+rtc-wm831x
+rtc-wm8350
+rtc-x1205
+rtl8150
+rtl8187
+rxkad
+s1d13xxxfb
+s2255drv
+s2io
+s3fb
+s6e63m0
+saa5246a
+saa6588
+saa6752hs
+saa7115
+saa7127
+saa7134
+saa7134-alsa
+saa7134-empress
+saa7146
+saa7146_vv
+saa717x
+saa7706h
+safe_serial
+sata_inic162x
+sata_mv
+sata_nv
+sata_promise
+sata_qstor
+sata_sil
+sata_sil24
+sata_sis
+sata_svw
+sata_sx4
+sata_uli
+sata_via
+sata_vsc
+savage
+savagefb
+sbp2
+sc92031
+sch_atm
+sch_cbq
+sch_drr
+sch_dsmark
+sch_gpio
+sch_gred
+sch_hfsc
+sch_htb
+sch_ingress
+sch_multiq
+sch_netem
+sch_prio
+sch_red
+sch_sfq
+sch_tbf
+sch_teql
+scsi_dh
+scsi_dh_alua
+scsi_dh_emc
+scsi_dh_hp_sw
+scsi_dh_rdac
+scsi_tgt
+scsi_transport_fc
+scsi_transport_iscsi
+scsi_transport_sas
+scsi_transport_spi
+scsi_transport_srp
+scsi_wait_scan
+sctp
+sctp_probe
+sdhci
+sdhci-pci
+sdhci-pltfm
+sdio_uart
+sd_mod
+sdricoh_cs
+seed
+serial_cs
+serio_raw
+serpent
+serport
+sfc
+sg
+sha1_generic
+sha256_generic
+sha512_generic
+sht15
+si4713-i2c
+siemens_mpi
+sierra
+sierra_net
+sis190
+sis5595
+sis900
+sisusbvga
+sit
+sja1000
+sja1000_platform
+skfp
+skge
+sky2
+sl811_cs
+sl811-hcd
+slhc
+slip
+slram
+sm501
+sm501fb
+smbfs
+smc91c92_cs
+sm_common
+smsc
+smsc47b397
+smsc47m1
+smsc47m192
+smsc75xx
+smsc9420
+smsc95xx
+sn9c102
+snd
+snd-ac97-codec
+snd-ad1889
+snd-ak4113
+snd-ak4114
+snd-ak4117
+snd-ak4xxx-adda
+snd-ali5451
+snd-als300
+snd-atiixp
+snd-atiixp-modem
+snd-au8810
+snd-au8820
+snd-au8830
+snd-aw2
+snd-azt3328
+snd-bt87x
+snd-ca0106
+snd-cmipci
+snd-cs4281
+snd-cs46xx
+snd-cs5535audio
+snd-cs8427
+snd-ctxfi
+snd-darla20
+snd-darla24
+snd-dummy
+snd-echo3g
+snd-emu10k1
+snd-emu10k1-synth
+snd-emu10k1x
+snd-emux-synth
+snd-ens1370
+snd-ens1371
+snd-es1938
+snd-es1968
+snd-fm801
+snd-gina20
+snd-gina24
+snd-hda-codec
+snd-hda-codec-analog
+snd-hda-codec-atihdmi
+snd-hda-codec-ca0110
+snd-hda-codec-cirrus
+snd-hda-codec-cmedia
+snd-hda-codec-conexant
+snd-hda-codec-idt
+snd-hda-codec-intelhdmi
+snd-hda-codec-nvhdmi
+snd-hda-codec-realtek
+snd-hda-codec-si3054
+snd-hda-codec-via
+snd-hda-intel
+snd-hdsp
+snd-hdspm
+snd-hrtimer
+snd-hwdep
+snd-i2c
+snd-ice1712
+snd-ice1724
+snd-ice17xx-ak4xxx
+snd-indigo
+snd-indigodj
+snd-indigodjx
+snd-indigoio
+snd-indigoiox
+snd-intel8x0
+snd-intel8x0m
+snd-korg1212
+snd-layla20
+snd-layla24
+snd-lx6464es
+snd-maestro3
+snd-mia
+snd-mixart
+snd-mona
+snd-mpu401
+snd-mpu401-uart
+snd-mtpav
+snd-mts64
+snd-nm256
+snd-opl3-lib
+snd-opl3-synth
+snd-page-alloc
+snd-pcm
+snd-pcxhr
+snd-pdaudiocf
+snd-portman2x4
+snd-pt2258
+snd-rawmidi
+snd-riptide
+snd-rme32
+snd-rme96
+snd-rme9652
+snd-seq
+snd-seq-device
+snd-seq-dummy
+snd-seq-midi
+snd-seq-midi-emul
+snd-seq-midi-event
+snd-seq-virmidi
+snd-serial-u16550
+snd-soc-ad1836
+snd-soc-ad193x
+snd-soc-ad73311
+snd-soc-ads117x
+snd-soc-ak4104
+snd-soc-ak4535
+snd-soc-ak4642
+snd-soc-ak4671
+snd-soc-core
+snd-soc-cs4270
+snd-soc-da7210
+snd-soc-l3
+snd-soc-max9877
+snd-soc-pcm3008
+snd-soc-spdif
+snd-soc-ssm2602
+snd-soc-tlv320aic23
+snd-soc-tlv320aic26
+snd-soc-tlv320aic3x
+snd-soc-tlv320dac33
+snd-soc-tpa6130a2
+snd-soc-twl4030
+snd-soc-twl6040
+snd-soc-uda134x
+snd-soc-uda1380
+snd-soc-wm2000
+snd-soc-wm8350
+snd-soc-wm8400
+snd-soc-wm8510
+snd-soc-wm8523
+snd-soc-wm8580
+snd-soc-wm8711
+snd-soc-wm8727
+snd-soc-wm8728
+snd-soc-wm8731
+snd-soc-wm8750
+snd-soc-wm8753
+snd-soc-wm8776
+snd-soc-wm8900
+snd-soc-wm8903
+snd-soc-wm8904
+snd-soc-wm8940
+snd-soc-wm8955
+snd-soc-wm8960
+snd-soc-wm8961
+snd-soc-wm8971
+snd-soc-wm8974
+snd-soc-wm8978
+snd-soc-wm8988
+snd-soc-wm8990
+snd-soc-wm8993
+snd-soc-wm8994
+snd-soc-wm9081
+snd-soc-wm9090
+snd-soc-wm-hubs
+snd-sonicvibes
+snd-sun-amd7930
+snd-sun-cs4231
+snd-sun-dbri
+snd-tea575x-tuner
+snd-timer
+snd-trident
+snd-usb-audio
+snd-usb-caiaq
+snd-usbmidi-lib
+snd-util-mem
+snd-via82xx
+snd-via82xx-modem
+snd-virmidi
+snd-vx222
+snd-vx-lib
+snd-vxpocket
+snd-ymfpci
+soc_camera
+soc_camera_platform
+soc_mediabus
+softdog
+solos-pci
+soundcore
+sparse-keymap
+spcp8x5
+spectrum_cs
+speedfax
+speedtch
+spi_bitbang
+spi_butterfly
+spidev
+spi_gpio
+spi_lm70llp
+squashfs
+sr_mod
+ssb
+ssfdc
+sst25l
+st
+stallion
+starfire
+ste10Xp
+stex
+stowaway
+stp
+sunbmac
+sundance
+sun_esp
+suni
+sunlance
+sunqe
+sunrpc
+sun_uflash
+sunvdc
+sunvnet
+svcrdma
+svgalib
+sx8
+sym53c500_cs
+sym53c8xx
+symbolserial
+synaptics_i2c
+synclink_cs
+synclink_gt
+synclinkmp
+syscopyarea
+sysfillrect
+sysimgblt
+sysv
+tca6416-keypad
+tcm825x
+tcp_bic
+tcp_highspeed
+tcp_htcp
+tcp_hybla
+tcp_illinois
+tcp_lp
+tcp_probe
+tcp_scalable
+tcp_vegas
+tcp_veno
+tcp_westwood
+tcp_yeah
+tda8290
+tda9840
+tda9887
+tdfx
+tdo24m
+tea
+tea5761
+tea5767
+tea6415c
+tea6420
+tef6862
+tehuti
+test_power
+tg3
+tgr192
+thmc50
+ths7303
+ti_dac7512
+tifm_7xx1
+tifm_core
+tifm_sd
+timb_dma
+timberdale
+timbuart
+timeriomem-rng
+tipc
+ti_usb_3410_5052
+tlan
+tle62x0
+tlv320aic23b
+tmiofb
+tmp102
+tmp401
+tmp421
+touchit213
+touchright
+touchwin
+tpm
+tpm_atmel
+tpm_nsc
+tps65010
+tps65023-regulator
+tps6507x
+tps6507x-regulator
+tps6507x-ts
+trancevibrator
+ts_bm
+tsc2007
+ts_fsm
+ts_kmp
+tsl2550
+ttm
+tulip
+tuner
+tuner-simple
+tuner-types
+tuner-xc2028
+tunnel4
+tunnel6
+tveeprom
+tvp514x
+tvp5150
+tvp7002
+tw9910
+twl4030-gpio
+twl4030_keypad
+twl4030-pwrbutton
+twl4030-usb
+twl4030-vibra
+twl4030_wdt
+twofish
+twofish_common
+typhoon
+u132-hcd
+uartlite
+ubi
+ubifs
+ucb1400_core
+ucb1400_ts
+uctrl
+udf
+ueagle-atm
+ufs
+uhci-hcd
+uio
+uio_aec
+uio_cif
+uio_netx
+uio_pci_generic
+uio_pdrv
+uio_pdrv_genirq
+uio_sercos3
+uli526x
+ultra45_env
+umc
+umem
+ums-alauda
+ums-cypress
+ums-datafab
+ums-freecom
+ums-isd200
+ums-jumpshot
+ums-karma
+ums-onetouch
+ums-sddr09
+ums-sddr55
+ums-usbat
+upd64031a
+upd64083
+usb8xxx
+usbatm
+usb_debug
+usbhid
+usblcd
+usbled
+usblp
+usbmon
+usbnet
+usbserial
+usbsevseg
+usb-storage
+usbtest
+usbtmc
+usbtouchscreen
+usbvision
+usb_wwan
+userspace-consumer
+uss720
+uvcvideo
+uvesafb
+uwb
+v4l1-compat
+v4l2-common
+v4l2-compat-ioctl32
+v4l2-int-device
+v4l2-mem2mem
+vcan
+veth
+vfat
+vgastate
+vgg2432a4
+via
+viafb
+via-rhine
+via-sdmmc
+via-velocity
+video1394
+videobuf-core
+videobuf-dma-sg
+videobuf-vmalloc
+videodev
+virtual
+visor
+vitesse
+vivopay-serial
+vmac
+vmxnet3
+vp27smpx
+vt1211
+vt8231
+vt8623fb
+vxge
+w1_bq27000
+w1_ds2431
+w1_ds2433
+w1_ds2760
+w1-gpio
+w1_smem
+w1_therm
+w6692
+w83627ehf
+w83791d
+w83792d
+w83793
+wacom_w8001
+wdt_pci
+whci
+whci-hcd
+whc-rc
+whiteheat
+wimax
+winbond-840
+wire
+wl1251
+wl1251_sdio
+wl1251_spi
+wl1271
+wl1271_spi
+wl3501_cs
+wlp
+wm831x_backup
+wm831x_bl
+wm831x-dcdc
+wm831x-gpio
+wm831x-hwmon
+wm831x-isink
+wm831x-ldo
+wm831x-on
+wm831x_power
+wm831x_wdt
+wm8350-gpiolib
+wm8350-hwmon
+wm8350_power
+wm8350-regulator
+wm8350_wdt
+wm8400-core
+wm8400-regulator
+wm8739
+wm8775
+wm8994-gpio
+wm8994-regulator
+wm97xx-ts
+wp512
+wusb-cbaf
+wusbcore
+wusb-wa
+xc5000
+xcbc
+xfrm4_mode_beet
+xfrm4_mode_transport
+xfrm4_mode_tunnel
+xfrm4_tunnel
+xfrm6_mode_beet
+xfrm6_mode_ro
+xfrm6_mode_transport
+xfrm6_mode_tunnel
+xfrm6_tunnel
+xfrm_ipcomp
+xfrm_user
+xfs
+xhci-hcd
+xirc2ps_cs
+xircom_cb
+xor
+xprtrdma
+x_tables
+xt_CLASSIFY
+xt_cluster
+xt_comment
+xt_connbytes
+xt_connlimit
+xt_connmark
+xt_CONNSECMARK
+xt_conntrack
+xt_CT
+xt_dccp
+xt_dscp
+xt_DSCP
+xt_esp
+xt_hashlimit
+xt_helper
+xt_hl
+xt_HL
+xt_LED
+xt_length
+xt_limit
+xt_mac
+xt_mark
+xt_multiport
+xt_NFLOG
+xt_NFQUEUE
+xt_NOTRACK
+xt_osf
+xt_physdev
+xt_pkttype
+xt_policy
+xt_quota
+xt_realm
+xt_recent
+xts
+xt_sctp
+xt_SECMARK
+xt_socket
+xt_state
+xt_statistic
+xt_string
+xt_tcpmss
+xt_TCPMSS
+xt_tcpudp
+xt_TEE
+xt_time
+xt_TPROXY
+xt_TRACE
+xt_u32
+xusbatm
+yealink
+yellowfin
+yenta_socket
+zc0301
+zd1201
+zd1211rw
+zio
+zlib
+zlib_deflate
+zr364xx
diff --git a/debian.master/abi/perm-blacklist b/debian.master/abi/perm-blacklist
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/debian.master/abi/perm-blacklist
diff --git a/debian.master/changelog b/debian.master/changelog
new file mode 100644
index 00000000000..e8d9dbcba0e
--- /dev/null
+++ b/debian.master/changelog
@@ -0,0 +1,3426 @@
+linux (2.6.35-3.4) maverick; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * debian -- ensure the version number is clean
+
+ [ Henrik Rydberg ]
+
+ * [Upstream] Introduce MT event slots (rev 5)
+ * [Upstream] Document the MT event slot protocol (rev5)
+ * [Upstream] (evdev) Use multi-reader buffer to save space (rev4)
+ * [Upstream] (evdev) Convert to dynamic event buffer (rev4)
+ * [Upstream] (evdev) Use driver hint to compute the evdev buffer size
+ (rev2)
+
+ [ Leann Ogasawara ]
+
+ * Revert "SAUCE: Add MODULE_ALIAS for Dell WMI module"
+ * Revert "SAUCE: hostap: send events on data interface as well as master
+ interface"
+ * Revert "Fix webcam having USB ID 0ac8:303b"
+ * Revert "SAUCE: toshiba_acpi -- pull in current -dev version of driver"
+ * rebase to v2.6.35-rc3
+
+ [ Maxim Levitsky ]
+
+ * [Config] Enable new Smartmedia/xD translation layer
+ - LP: #202490
+
+ [ Upstream Kernel Changes ]
+
+ * net: fix deliver_no_wcard regression on loopback device
+
+ [ Upstream changes ]
+
+ * rebased to v2.6.35-rc3
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Thu, 10 Jun 2010 16:15:22 -0700
+
+linux (2.6.35-2.3) maverick; urgency=low
+
+ [ Bryan Wu ]
+
+ * CONFIG: enforce -- make sure we disable CONFIG_LOCALVERSION_AUTO
+
+ [ Leann Ogasawara ]
+
+ * [Config] armel: Enable CONFIG_BNX2=m
+ * [Config] ports: Enable CONFIG_BNX2X=m
+ * SAUCE: armel: define get_dma_ops to fix FTBS
+
+ [ Tim Gardner ]
+
+ * [Upstream] net: Print num_rx_queues imbalance warning only when there
+ are allocated queues
+ - LP: #591416
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Wed, 09 Jun 2010 08:27:41 -0700
+
+linux (2.6.35-2.2) maverick; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * [Config] d-i: make armel configuration versatile flavour specific
+ - LP: #588805
+ * [Config] d-i: enable .udebs for omap flavour
+ - LP: #588805
+
+ [ Kees Cook ]
+
+ * ptrace: limit scope to attach only (allow read)
+ - LP: #589656
+
+ [ Leann Ogasawara ]
+
+ * rebase to v2.6.35-rc2
+ * [Config] update configs following rebase to v2.6.35-rc2
+ * [Config] update port configs following rebase to v2.6.35-rc2
+
+ [ Lee Jones ]
+
+ * Enable perf to be more helpful when perf_<version> does not exist.
+ - LP: #570500
+ * 'fdr editconfig' modification. Easily skip over unwanted menuconfigs.
+
+ [ Tim Gardner ]
+
+ * [Config] Update bnx2 udeb firmware files
+ - LP: #589304
+
+ [ Upstream changes ]
+
+ * rebased to v2.6.35-rc2
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Mon, 07 Jun 2010 09:45:04 -0700
+
+linux (2.6.35-1.1) maverick; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * ubuntu: AUFS -- update to standalone 2.6.35-rcN as at 20100601
+ - LP: #587888
+ * ubuntu: AUFS -- track changes to the arguements to fop fsync()
+
+ [ Leann Ogasawara ]
+
+ * rebase to v2.6.35-rc1
+ * [Config] update configs following rebase to v2.6.35-rc1
+ * [Config] update port configs following rebase to v2.6.35-rc1
+ * SAUCE: lirc: rename usb_buffer_alloc() and usb_buffer_free()
+ * SAUCE: ndiswrapper: rename usb_buffer_alloc() and usb_buffer_free()
+ * SAUCE: ndiswrapper: convert multicast list to list_head
+ * [Config] [FTBS] armel: Temporarily disable CONFIG_GPIO_JANZ_TTL
+ * [Config] [FTBS] ia64: Temporarily disable gpiolib
+ * [Config] [FTBS] ia64: Temporarily disable CONFIG_CEPH_FS
+ * [Config] [FTBS] sparc: Temporarily disable CONFIG_INFINIBAND_QIB
+ * [Config] [FTBS] sparc: Temporarily disable CONFIG_MFD_JANZ_CMODIO
+ * [Config] [FTBS] armel: Temporarily disable CONFIG_MFD_JANZ_CMODIO
+ * [Config] [FTBS] armel: Temporarily disable CONFIG_DT3155
+ * [Config] [FTBS] sparc: Temporarily disable CONFIG_MTD_NAND_DENALI
+ * [Config] [FTBS] armel: Temporarily disable bnx2
+ * [Config] [FTBS] armel: Temporarily disable CONFIG_SERIAL_UARTLITE
+ * SAUCE: [FTBS] armel: Don't include asm/agp.h for ttm
+ * SAUCE: [FTBS] armel: include linux/dma-mapping.h
+ * SAUCE: [FTBS] armel: replace omap_set_gpio_debounce with
+ gpio_set_debounce
+
+ [ Upstream Kernel Changes ]
+
+ * of/usb: fix build error due to of_node pointer move
+ * n2_crypto: Fix build after of_device/of_platform_driver changes.
+ * powerpc/fsl-booke: fix the case where we are not in the first page
+ * powerpc/fsl-booke: Move the entry setup code into a seperate file
+ * powerpc/kexec: Add support for FSL-BookE
+ * greth: Fix build after OF device conversions.
+
+ [ Upstream changes ]
+
+ * rebased to v2.6.35-rc1
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Fri, 04 Jun 2010 23:01:52 -0700
+
+linux (2.6.35-1.0) UNRELEASED; urgency=low
+
+ [ Leann Ogasawara ]
+
+ * Null entry.
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Wed, 02 Jun 2010 15:17:41 -0700
+
+linux (2.6.34-5.14) maverick; urgency=low
+
+ [ Tim Gardner ]
+
+ * [Config] Added module inclusion support
+ * [Config] Added virtual flavour module inclusion list and d-i package
+ definitions
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Wed, 02 Jun 2010 12:58:14 -0700
+
+linux (2.6.34-5.13) maverick; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Revert "ubuntu: AUFS -- aufs2 20091209"
+ * Revert "ubuntu: AUFS -- export various core functions
+ (aufs2-standalone.patch)"
+ * Revert "ubuntu: AUFS -- export various core functions
+ (aufs2-base.patch)"
+ * ubuntu: AUFS -- aufs2 base patch for linux-2.6.34
+ - LP: #587888
+ * ubuntu: AUFS -- aufs2 standalone patch for linux-2.6.34
+ - LP: #587888
+ * ubuntu: AUFS -- update to standalone 2.6.34 as at 20100601
+ - LP: #587888
+ * [Config] AUFS -- enable aufs options
+ - LP: #587888
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Tue, 01 Jun 2010 08:56:43 -0700
+
+linux (2.6.34-5.12) maverick; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * enforce -- ensure SYSFS compatibility is disabled
+
+ [ Chase Douglas ]
+
+ * build with libdw-dev for perf probe symbol support
+ * maverick ftrace configuration changes
+
+ [ Kees Cook ]
+
+ * Revert "SAUCE: x86: brk away from exec rand area"
+ * Revert "SAUCE: [um] Don't use nx_enabled under UML"
+ * Revert "SAUCE: [x86] implement cs-limit nx-emulation for ia32"
+ * SAUCE: x86: implement cs-limit nx-emulation for ia32
+ - LP: #369978
+ * SAUCE: x86: more tightly confine cs-limit nx-emulation to ia32 only
+ * SAUCE: x86: brk away from exec rand area
+ - LP: #452175
+ * SAUCE: ptrace: restrict ptrace scope to children
+
+ [ Leann Ogasawara ]
+
+ * Add new omap flavour to getabis
+ * [Config] Enable CONFIG_FRAMEBUFFER_CONSOLE=y for all archs
+ - LP: #585490
+ * build/modules: Temorarily add ignore.modules
+ * ubuntu: iscsitarget -- version 1.4.20.1
+
+ [ Loïc Minier ]
+
+ * SAUCE: [um] Don't use nx_enabled under UML
+ - LP: #524849
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Fri, 28 May 2010 08:27:17 -0700
+
+linux (2.6.34-4.11) maverick; urgency=low
+
+ [ Amit Kucheria ]
+
+ * SAUCE: omap: remove calls to usb_nop_xceiv_register from board files
+ * [Config] Add support for OMAP-mainline flavour
+
+ [ Andy Whitcroft ]
+
+ * SAUCE: powerpc: fix compile error when ptrace.h is included from
+ userspace
+ - LP: #583733
+
+ [ Chase Douglas ]
+
+ * Revert "SAUCE: Don't register vga16fb framebuffer if other framebuffers
+ are present"
+ * Revert "SAUCE: Disable function tracing after hitting __schedule_bug"
+ * Revert "SAUCE: drm/i915: don't change DRM configuration when releasing
+ load detect pipe"
+
+ [ Kees Cook ]
+
+ * SAUCE: fs: block cross-uid sticky symlinks
+ * SAUCE: fs: block hardlinks to non-accessible sources
+
+ [ Koen Kooi ]
+
+ * SAUCE: board-omap3-beagle: add DSS2 support
+
+ [ Leann Ogasawara ]
+
+ * Revert "staging/go7007 -- disable"
+ * Revert "[Config] staging/winbond -- disable"
+ * Revert "Disable 4MB page tables for Atom, work around errata AAE44"
+ * Revert "SAUCE: sync before umount to reduce time taken by ext4 umount"
+ * Revert "SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit
+ controller"
+ * Revert "SAUCE: Fix MODULE_IMPORT/MODULE_EXPORT"
+ * Revert "SAUCE: Created MODULE_EXPORT/MODULE_IMPORT macros"
+ * Revert "SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps"
+ * Revert "SAUCE: r8169: disable TSO by default for RTL8111/8168B
+ chipsets."
+ * Revert "[Upstream] b43: Declare all possible firmware files."
+ * Revert "add Breaks: against hardy lvm2"
+ * Revert "SAUCE: Guest OS does not recognize a lun with non zero target
+ id on Vmware ESX Server"
+ * Revert "SAUCE: Catch nonsense keycodes and silently ignore"
+ * [Config] Enable CONFIG_ECRYPT_FS=y for ports
+ * [Config] Enable CONFIG_USB=y for armel and sparc
+ * [Config] Enable CONFIG_SCSI=y for ia64 and sparc
+ * [Config] Enable CONFIG_RFKILL=y for ports
+ * [Config] Enable CONFIG_ATH9K_DEBUGFS=y
+ * [Config] Enable CONFIG_IWMC3200TOP_DEBUGFS=y
+ * [Config] Enable CONFIG_RCU_FAST_NO_HZ=y
+ * [Config] Enable CONFIG_IWLWIFI_DEVICE_TRACING=y
+ * [Config] Enable CONFIG_LIBERTAS_MESH=y
+ * [Config] Enable CONFIG_MMC_RICOH_MMC=y
+ * [Config] CONFIG_RT2800USB_UNKNOWN=y
+ * [Config] Enable CONFIG_VGA_SWITCHEROO=y
+ * [Config] Enable CONFIG_CEPH_FS=m
+ * [Config] Enable CONFIG_CRYPTO_PCRYPT=m
+ * [Config] Enable CONFIG_EEEPC_WMI=m
+ * [Config] Enable CONFIG_RT2800PCI=m
+ * [Config] Enable CONFIG_SCSI_HPSA=m
+ * [Config] Enable CONFIG_VHOST_NET=m
+ * [Config] Disable CONFIG_SND_HDA_INPUT_BEEP_MODE by default
+ - LP: #582350
+ * [Config] Disable CONFIG_SOUND_OSS* and CONFIG_SND_*OSS
+ - LP: #579300
+ * [Config] Enable CONFIG_PCIEASPM=y
+ - LP: #333990
+ * [Config] updateconfigs for OMAP flavour
+
+ [ Loïc Minier ]
+
+ * Enable perf tools on armel
+
+ [ Tim Gardner ]
+
+ * SAUCE: Updated ndiswrapper to 1.56
+ - LP: #582555
+ * [Config] Added virtual flavour
+ * [Config] Remove support for sub-flavours
+ * [Config] Removed amd64 preempt flavour
+ * [Config] updateconfigs, updateportsconfigs after flavour munging
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Tue, 25 May 2010 09:34:55 -0700
+
+linux (2.6.34-3.10) maverick; urgency=low
+
+ [ Leann Ogasawara ]
+
+ * rebase to v2.6.34
+
+ [ Upstream changes ]
+
+ * rebased to v2.6.34
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Tue, 18 May 2010 17:35:35 -0700
+
+linux (2.6.34-2.9) maverick; urgency=low
+
+ [ Leann Ogasawara ]
+
+ * [Config] [FTBS] Disable comedi for armel
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Thu, 13 May 2010 23:20:55 +0200
+
+linux (2.6.34-2.8) maverick; urgency=low
+
+ [ Leann Ogasawara ]
+
+ * Drop lpia
+ * [Config] [FTBS] disable KVM
+ * [Config] [FTBS] disable ipr for armel
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Thu, 13 May 2010 16:07:52 +0200
+
+linux (2.6.34-2.7) maverick; urgency=low
+
+ [ Leann Ogasawara ]
+
+ * [Config] disable CONFIG_SCSI_IPR on powerpc
+ * [Config] Remove 386 flavour per UDS discussion
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Wed, 12 May 2010 18:26:43 +0200
+
+linux (2.6.34-1.6) maverick; urgency=low
+
+ [ Chase Douglas ]
+
+ * enforce CONFIG_TMPFS_POSIX_ACL=y
+ - LP: #575940
+ * don't force module dependency checking
+ - LP: #577029
+
+ [ Kees Cook ]
+
+ * SAUCE: mmap_min_addr check CAP_SYS_RAWIO only for write
+ - LP: #568844
+
+ [ Leann Ogasawara ]
+
+ * Revert "SAUCE: ata: blacklist FUJITSU MHW2160BH PL"
+ * rebase to v2.6.34-rc7
+ * [Config] update configs following rebase to v2.6.34-rc7
+ * [Config] update port configs following rebase to v2.6.34-rc7
+ * Add btrfs to the udebs
+
+ [ Tim Gardner ]
+
+ * [Config] Add atl1c to nic-modules udeb
+ - LP: #557130
+
+ [ Upstream changes ]
+
+ * rebased to v2.6.34-rc7
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Tue, 11 May 2010 11:29:08 +0200
+
+linux (2.6.34-1.5) UNRELEASED; urgency=low
+
+ [ Leann Ogasawara ]
+
+ * rebase to v2.6.34-rc6
+ * [Config] update configs following rebase to v2.6.34-rc6
+ * [Config] update port configs following rebase to v2.6.34-rc6
+
+ [ Upstream changes ]
+
+ * rebased to v2.6.34-rc6
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Fri, 30 Apr 2010 15:54:05 +0100
+
+linux (2.6.34-1.4) UNRELEASED; urgency=low
+
+ [ Leann Ogasawara ]
+
+ * rebase to v2.6.34-rc5
+ * [Config] update ports configs following rebase to v2.6.34-rc5
+
+ [ Upstream changes ]
+
+ * rebased to v2.6.34-rc5
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Thu, 22 Apr 2010 15:36:12 -0700
+
+linux (2.6.34-1.3) UNRELEASED; urgency=low
+
+ [ Leann Ogasawara ]
+
+ * rebase to v2.6.34-rc4
+ * [Config] update configs following rebase to v2.6.34-rc4
+ * [Config] update port configs following rebase to v2.6.34-rc4
+ * ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc4
+
+ [ Upstream changes ]
+
+ * rebased to v2.6.34-rc4
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Tue, 13 Apr 2010 18:33:44 -0700
+
+linux (2.6.34-1.2) UNRELEASED; urgency=low
+
+ [ Leann Ogasawara ]
+
+ * Temorarily disable building linux-doc
+ * rebase to v2.6.34-rc3
+ * [Config] update configs following rebase to v2.6.34-rc3
+ * [Config] update port configs following rebase to v2.6.34-rc3
+
+ [ Upstream changes ]
+
+ * rebased to v2.6.34-rc3
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Tue, 30 Mar 2010 16:55:44 -0700
+
+linux (2.6.34-1.1) UNRELEASED; urgency=low
+
+ [ Leann Ogasawara ]
+
+ * rebase to v2.6.34-rc2
+ * ubuntu: dm-raid4-5 -- update to compile with 2.6.34-rc2
+ * [Config] update port configs following rebase to v2.6.34-rc2
+ * [Config] update configs following rebase to v2.6.34-rc2
+
+ [ Upstream changes ]
+
+ * rebased to v2.6.34-rc2
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Wed, 24 Mar 2010 23:00:39 -0700
+
+linux (2.6.33-1.1) UNRELEASED; urgency=low
+
+ [ Leann Ogasawara ]
+
+ * ubuntu: dm-raid4-5 -- update to compile with 2.6.33
+ * ubuntu: lirc -- drop explicit include of linux/autoconf.h
+ * ubuntu: lirc -- pass kfifo to kfifo_alloc and move spinlock
+ * ubuntu: lirc -- rename kfifo_put and kfifo_get
+ * ubuntu: iscsitarget -- rename daddr inet_sock field
+ * rebased to v2.6.33
+ * [Config] update configs following rebase to v2.6.33
+ * [Config] update ports configs following rebase to v2.6.33
+
+ [ Upstream changes ]
+
+ * rebased to v2.6.33
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Tue, 23 Mar 2010 03:55:46 -0700
+
+linux (2.6.33-0.0) UNRELEASED; urgency=low
+
+ [ Leann Ogasawara ]
+
+ * Null entry.
+
+ -- Leann Ogasawara <leann.ogasawara@canonical.com> Wed, 17 Mar 2010 07:48:56 -0700
+
+linux (2.6.32-16.25) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * linux-tools -- move to Suggests: with explicit seeding
+ - LP: #534635
+
+ [ Tim Gardner ]
+
+ * [Config] CONFIG_HID=m
+
+ [ Upstream Kernel Changes ]
+
+ * (pre-stable) sched: Fix SMT scheduler regression in
+ find_busiest_queue()
+ * KVM: introduce kvm_vcpu_on_spin
+ * KVM: VMX: Add support for Pause-Loop Exiting
+
+ -- Andy Whitcroft <apw@canonical.com> Tue, 09 Mar 2010 14:13:51 +0000
+
+linux (2.6.32-16.24) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * armel -- perf userspace does not support arm
+ * ia64 -- libelf-dev/binutils-dev to not provide necessary libraries
+
+ -- Andy Whitcroft <apw@canonical.com> Sat, 06 Mar 2010 11:42:12 +0000
+
+linux (2.6.32-16.23) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * SAUCE: PM report driver and device suspend/resume times -- move config
+ * update to standards version 3.8.4.0
+ * printenv -- expose all of the package selectors
+ * source package -- cleanup source content control
+ * doc package -- ensure we do build package content on buildd
+ * lintian -- correct the address in the debian/copyright
+ * lintian -- update debhelper package version dependancy
+ * lintian -- fix ghostscript dependancy
+ * lintian -- add required misc:Depends
+ * lintian -- move our debhelper compat level to debian/compat
+ * perf -- build the kernel carried tools
+ * perf -- add linux-tools carrying the version switches and manuals
+ * SAUCE: fix up Kconfig for staging drivers
+ * [Config] enable NOUVEAU etc following drm backport
+ * update DRM to mainline v2.6.33
+ * [Config] Remove AppArmor config options that no longer exist (ports)
+ * [Config] updateportsconfigs following drm update
+
+ [ John Johansen ]
+
+ * ubuntu: AppArmor -- update to mainline 2010-03-04
+ * SAUCE: AppArmor: Reintroduce AppArmor 2.4 compatibility
+ * SAUCE: AppArmor: replace strim with strstrip for 2.6.32 kernels
+ * [Config] Remove AppArmor config options that no longer exist
+
+ [ Manoj Iyer ]
+
+ * ubuntu: rtl8192se -- version 2010-0115,0014
+ - LP: #530275
+ * [Config] added CONFIG_RTL8192SE module.
+ - LP: #530275
+
+ [ Tim Gardner ]
+
+ * [Config] Added vmw_pvscsi to d-i/scsi-modules
+ - LP: #531017
+ * [Upstream] netfilter: xt_recent: Add an entry reaper
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "KVM: x86 emulator: Check CPL level during privilege instruction
+ emulation"
+ * Revert "KVM: x86 emulator: Fix popf emulation"
+ * Revert "KVM: x86 emulator: Check IOPL level during io instruction
+ emulation"
+ * Revert "KVM: x86 emulator: Add Virtual-8086 mode of emulation"
+ * Revert "KVM: fix memory access during x86 emulation."
+ * Add vlan (8021.Q) module package for d-i.
+ * (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell
+ Inspiron 700m
+ - LP: #515246
+ * [Upstream] docbook: need xmldoclinks for all doc types
+ * x86: set_personality_ia32() misses force_personality32
+ * lib: Introduce generic list_sort function
+ * drm/nv50: Implement ctxprog/state generation.
+ * drm/nv50: Remove redundant/incorrect ctxvals initialisation.
+ * (pre-stable) drm/i915: blacklist lid status: Sony VGN-BX196VP, Dell
+ Inspiron 700m
+ - LP: #515246
+
+ -- Andy Whitcroft <apw@canonical.com> Fri, 05 Mar 2010 15:40:38 +0000
+
+linux (2.6.32-15.22) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Revert "[Config] added new config option CONFIG_SR_REPORT_TIME_LIMIT"
+ * Revert "SAUCE: PM report driver and device suspend/resume times."
+ * [Config] set CONFIG_SR_REPORT_TIME_LIMIT
+
+ [ Manoj Iyer ]
+
+ * SAUCE: PM report driver and device suspend/resume times.
+
+ -- Andy Whitcroft <apw@canonical.com> Tue, 02 Mar 2010 01:35:37 +0000
+
+linux (2.6.32-15.21) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Revert "(pre-stable) drm/i915: Increase fb alignment to 64k"
+ * Revert "[Config] lenovo-sl-laptop -- enable"
+ * Revert "ubuntu: lenovo-sl-laptop -- git tip (b19a08f81f)"
+ * armel -- cramfs module will no longer be built
+ * d-i -- make all modules optional
+ * rename the debug packages to match archive standard
+ - LP: #527837
+ * lenovo-sl-laptop is no longer built
+
+ [ Colin Ian King ]
+
+ * Disable 4MB page tables for Atom, work around errata AAE44
+ - LP: #523112
+
+ [ Colin Watson ]
+
+ * ubuntu: dm-raid4-5: Depend on XOR_BLOCKS
+ * ubuntu: fsam7400: Depend on CHECK_SIGNATURE
+
+ [ Jesse Barnes ]
+
+ * SAUCE: drm/i915: don't change DRM configuration when releasing load
+ detect pipe
+ - LP: #488328
+
+ [ Loïc Minier ]
+
+ * [Config] armel Update versatile initrd configs
+ - LP: #524893
+ * SAUCE: [um] Don't use nx_enabled under UML
+ - LP: #524849
+
+ [ Manoj Iyer ]
+
+ * [Config] added new config option CONFIG_SR_REPORT_TIME_LIMIT
+
+ [ Mario Limonciello ]
+
+ * SAUCE: v3 - Add Dell Business Class Netbook LED driver
+
+ [ Rafael J. Wysocki ]
+
+ * SAUCE: PM report driver and device suspend/resume times.
+
+ [ Surbhi Palande ]
+
+ * Revert "[Upstream] e1000e: enhance frame fragment detection"
+ - CVE-2009-4538
+ * Revert "[Upstream] e1000: enhance frame fragment detection"
+ - CVE-2009-4536
+
+ [ Tim Gardner ]
+
+ * [Config] Enabled CONFIG_LEDS_DELL_NETBOOKS=m
+ * SAUCE: (pre-stable) netfilter: xt_recent: fix buffer overflow
+ * SAUCE: (pre-stable) netfilter: xt_recent: fix false match
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "(pre-stable) eCryptfs: Add getattr function"
+ * Fix potential crash with sys_move_pages
+ * futex_lock_pi() key refcnt fix
+ * futex: Handle user space corruption gracefully
+ * futex: Handle futex value corruption gracefully
+ * Fix race in tty_fasync() properly
+ * hwmon: (w83781d) Request I/O ports individually for probing
+ * hwmon: (lm78) Request I/O ports individually for probing
+ * hwmon: (adt7462) Wrong ADT7462_VOLT_COUNT
+ * ALSA: ctxfi - fix PTP address initialization
+ * drm/i915: disable hotplug detect before Ironlake CRT detect
+ * drm/i915: enable self-refresh on 965
+ * drm/i915: Disable SR when more than one pipe is enabled
+ * drm/i915: Fix DDC on some systems by clearing BIOS GMBUS setup.
+ * drm/i915: Add HP nx9020/SamsungSX20S to ACPI LID quirk list
+ * drm/i915: Fix the incorrect DMI string for Samsung SX20S laptop
+ * drm/i915: Add MALATA PC-81005 to ACPI LID quirk list
+ * usb: r8a66597-hcd: Flush the D-cache for the pipe-in transfer buffers.
+ * i2c-tiny-usb: Fix on big-endian systems
+ * drm/i915: handle FBC and self-refresh better
+ * drm/i915: Increase fb alignment to 64k
+ * drm/i915: Update write_domains on active list after flush.
+ * regulator: Fix display of null constraints for regulators
+ * ALSA: hda-intel: Avoid divide by zero crash
+ * CPUFREQ: Fix use after free of struct powernow_k8_data
+ * freeze_bdev: don't deactivate successfully frozen MS_RDONLY sb
+ * cciss: Make cciss_seq_show handle holes in the h->drv[] array
+ * ioat: fix infinite timeout checking in ioat2_quiesce
+ * resource: add helpers for fetching rlimits
+ * fs/exec.c: restrict initial stack space expansion to rlimit
+ * cifs: fix length calculation for converted unicode readdir names
+ * NFS: Fix a reference leak in nfs_wb_cancel_page()
+ * NFS: Try to commit unstable writes in nfs_release_page()
+ * NFSv4: Don't allow posix locking against servers that don't support it
+ * NFSv4: Ensure that the NFSv4 locking can recover from stateid errors
+ * NFS: Fix an Oops when truncating a file
+ * NFS: Fix a umount race
+ * NFS: Fix a bug in nfs_fscache_release_page()
+ * NFS: Fix the mapping of the NFSERR_SERVERFAULT error
+ * md: fix 'degraded' calculation when starting a reshape.
+ * V4L/DVB: dvb-core: fix initialization of feeds list in demux filter
+ * Export the symbol of getboottime and mmonotonic_to_bootbased
+ * kvmclock: count total_sleep_time when updating guest clock
+ * KVM: PIT: control word is write-only
+ * tpm_infineon: fix suspend/resume handler for pnp_driver
+ * amd64_edac: Do not falsely trigger kerneloops
+ * netfilter: nf_conntrack: fix memory corruption with multiple namespaces
+ * netfilter: nf_conntrack: per netns nf_conntrack_cachep
+ * netfilter: nf_conntrack: restrict runtime expect hashsize modifications
+ * netfilter: xtables: compat out of scope fix
+ * netfilter: nf_conntrack: fix hash resizing with namespaces
+ * drm/i915: remove full registers dump debug
+ * drm/i915: add i915_lp_ring_sync helper
+ * drm/i915: Don't wait interruptible for possible plane buffer flush
+ * dasd: remove strings from s390dbf
+ * crypto: padlock-sha - Add import/export support
+ * wmi: Free the allocated acpi objects through wmi_get_event_data
+ * dell-wmi, hp-wmi, msi-wmi: check wmi_get_event_data() return value
+ * /dev/mem: introduce size_inside_page()
+ * devmem: check vmalloc address on kmem read/write
+ * devmem: fix kmem write bug on memory holes
+ * SCSI: mptfusion : mptscsih_abort return value should be SUCCESS instead
+ of value 0.
+ * sh: Couple kernel and user write page perm bits for CONFIG_X2TLB
+ * ALSA: hda - use WARN_ON_ONCE() for zero-division detection
+ * dst: call cond_resched() in dst_gc_task()
+ * ALSA: hda - Improved MacBook (Pro) 5,1 / 5,2 support
+ * befs: fix leak
+ * rtc-fm3130: add missing braces
+ * Call flush_dcache_page after PIO data transfers in libata-sff.c
+ * ahci: add Acer G725 to broken suspend list
+ * pktgen: Fix freezing problem
+ * x86/amd-iommu: Fix IOMMU-API initialization for iommu=pt
+ * x86/amd-iommu: Fix deassignment of a device from the pt_domain
+ * x86: Re-get cfg_new in case reuse/move irq_desc
+ * Staging: fix rtl8187se compilation errors with mac80211
+ * ALSA: usb-audio - Avoid Oops after disconnect
+ * serial: 8250: add serial transmitter fully empty test
+ * sysfs: sysfs_sd_setattr set iattrs unconditionally
+ * class: Free the class private data in class_release
+ * USB: usbfs: only copy the actual data received
+ * USB: usbfs: properly clean up the as structure on error paths
+ * rtl8187: Add new device ID
+ * ACPI: Add NULL pointer check in acpi_bus_start
+ * ACPI: fix High cpu temperature with 2.6.32
+ * drm/radeon/kms: use udelay for short delays
+ * NFS: Too many GETATTR and ACCESS calls after direct I/O
+ * eCryptfs: Add getattr function
+ * b43: Fix throughput regression
+ * ath9k: Fix sequence numbers for PAE frames
+ * mac80211: Fix probe request filtering in IBSS mode
+ * iwlwifi: Fix to set correct ht configuration
+ * dm stripe: avoid divide by zero with invalid stripe count
+ * dm log: userspace fix overhead_size calcuations
+ * Linux 2.6.32.9
+ * sfc: Fix SFE4002 initialisation
+ * sfc: Fix sign of efx_mcdi_poll_reboot() error in efx_mcdi_poll()
+ * sfc: SFE4002/SFN4112F: Widen temperature and voltage tolerances
+ * (pre-stable) HID: handle joysticks with large number of buttons
+ - LP: #492056
+ * (pre-stable) HID: extend mask for BUTTON usage page
+ - LP: #492056
+ * PM: Measure device suspend and resume times
+ * e1000: enhance frame fragment detection
+ - CVE-2009-4536
+ * e1000e: enhance frame fragment detection
+ - CVE-2009-4538
+ * KVM: fix memory access during x86 emulation.
+ - CVE-2010-0306
+ * KVM: x86 emulator: Add Virtual-8086 mode of emulation
+ - CVE-2010-0306
+ * KVM: x86 emulator: Check IOPL level during io instruction emulation
+ - CVE-2010-0306
+ * KVM: x86 emulator: Fix popf emulation
+ - CVE-2010-0306
+ * KVM: x86 emulator: Check CPL level during privilege instruction
+ emulation
+ - CVE-2010-0306
+ * Input: wacom - ensure the device is initialized properly upon resume
+ * Input: wacom - add defines for packet lengths of various devices
+ * Input: wacom - add support for new LCD tablets
+ - LP: #516777
+
+ -- Andy Whitcroft <apw@canonical.com> Mon, 01 Mar 2010 22:56:28 +0000
+
+linux (2.6.32-14.20) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * rebuild following the GCC update to match compiler for out of tree modules
+ * Revert "[Config] drbd -- enable"
+ * Revert "ubuntu: drbd -- version 8.3.1"
+ * SAUCE: khubd -- switch USB product/manufacturer/serial handling to RCU
+ - LP: #510937
+
+ -- Andy Whitcroft <apw@canonical.com> Fri, 19 Feb 2010 18:47:18 +0000
+
+linux (2.6.32-14.19) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * ensure we build the source package contents when enabled
+ - LP: #522308
+ * [Config] enable CONFIG_X86_MCE_XEON75XX
+ * SAUCE: AppArmor -- add linux/kref.h for struct kref
+ * [Config] enable CONFIG_HID_ORTEK
+ * enable udeb generation for arm versatile flavour
+ - LP: #522515
+
+ [ John Johansen ]
+
+ * ubuntu: AppArmor -- update to mainline 2010-02-18
+ - LP: #439560, #496110, #507069
+
+ [ Johnathon Harris ]
+
+ * SAUCE: HID: add support for Ortek WKB-2000
+ - LP: #405390
+
+ [ Upstream Kernel Changes ]
+
+ * tpm_tis: TPM_STS_DATA_EXPECT workaround
+ - LP: #490487
+ * x86, mce: Xeon75xx specific interface to get corrected memory error
+ information
+ * x86, mce: Rename cpu_specific_poll to mce_cpu_specific_poll
+ * x86, mce: Make xeon75xx memory driver dependent on PCI
+ * drm/edid: Unify detailed block parsing between base and extension
+ blocks
+ - LP: #500999
+ * (pre-stable) eCryptfs: Add getattr function
+ - LP: #390833
+
+ -- Andy Whitcroft <apw@canonical.com> Thu, 18 Feb 2010 19:22:02 +0000
+
+linux (2.6.32-13.18) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Revert "enforcer -- make the enforcement configuration common"
+ * Revert "(pre-stable) Input: ALPS - add interleaved protocol support
+ (Dell E6x00 series)"
+ * Revert "(pre-stable) driver-core: fix devtmpfs crash on s390"
+ * Revert "(pre-stable) Driver-Core: devtmpfs - set root directory mode to
+ 0755"
+ * Revert "SAUCE: Adds support for COMPAL JHL90 webcam"
+ * Revert "SAUCE: fix kernel oops in VirtualBox during paravirt patching"
+ * Revert "SAUCE: make fc transport removal of target configurable"
+ * enforcer -- make the enforcement configuration common
+ * getabis -- add preempt flavour to the list
+ * [Config] enforce DEVTMPFS options
+ * [Config] armel -- cleanup to-be builtin modules
+ * [Config] cleanup ports configs
+ * [Config] enable CRYPTO_GHASH_CLMUL_NI_INTEL
+ - LP: #485536
+ * add printdebian target to find branch target
+ * distclean -- do not remove debian.env
+ * [Config] generic-pae switch to M586TSC
+ - LP: #519448
+ * git-ubuntu-log -- commonise duplicated log handling
+ * git-ubuntu-log -- tighten up Bug: NNNN matching
+ * git-ubuntu-log -- sort the bug numbers
+
+ [ Chris Wilson ]
+
+ * (pre-stable) drm/i915: Increase fb alignment to 64k
+ - LP: #404064
+
+ [ Eric Miao ]
+
+ * arm -- enable ubuntu/ directory
+
+ [ Huang Ying ]
+
+ * SAUCE: crypto: ghash - Add PCLMULQDQ accelerated implementation
+ * SAUCE: crypto: ghash-intel - Fix building failure on x86_32
+
+ [ Loïc Minier ]
+
+ * [Config] cleanup preempt configuration
+ * [Config] versatile: Fix video output
+ - LP: #517594
+ * [Config] armel DEFAULT_MMAP_MIN_ADDR=32768
+ * [Config] Large update to armel/versatile
+ * [Config] versatile: Add RTC support
+ * [Config] armel: Enable NEON
+ * [Config] versatile: Builtin MMC support
+ * [Config] versatile Builtin SCSI controller
+ * [Config] armel Disable dma_cache_sync callers
+ * [Config] armel Disable asm/time.h users
+ * [Config] armel Disable out of range udelay()
+ * [Config] armel Disable flush_cache_range() users
+ * [Config] armel -- Enable ubuntu/ drivers
+
+ [ Steve Conklin ]
+
+ * SAUCE: drm/i915: Add display hotplug event on Ironlake
+ * SAUCE: drm/i915: Add ACPI OpRegion support for Ironlake
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "[Upstream]: oprofile/x86: add Xeon 7500 series support"
+ * Revert "Revert "[Bluetooth] Eliminate checks for impossible conditions
+ in IRQ handler""
+ * clockevent: Don't remove broadcast device when cpu is dead
+ * clockevents: Add missing include to pacify sparse
+ * ACPI: don't cond_resched if irq is disabled
+ * be2net: Add support for next generation of BladeEngine device.
+ * be2net: Add the new PCI IDs to PCI_DEVICE_TABLE.
+ * mpt2sas: New device SAS2208 support is added
+ * ar9170: Add support for D-Link DWA 160 A2
+ * powerpc/fsl: Add PCI device ids for new QoirQ chips
+ * davinci: dm646x: Add support for 3.x silicon revision
+ * Input: ALPS - add interleaved protocol support (Dell E6x00 series)
+ * Driver-Core: devtmpfs - set root directory mode to 0755
+ * driver-core: fix devtmpfs crash on s390
+ * vfs: get_sb_single() - do not pass options twice
+ * ALSA: hda - Add PCI IDs for Nvidia G2xx-series
+ * V4L/DVB (13569): smsusb: add autodetection support for five additional
+ Hauppauge USB IDs
+ * USB: mos7840: add device IDs for B&B electronics devices
+ * USB: ftdi_sio: add USB device ID's for B&B Electronics line
+ * V4L/DVB (13168): Add support for Asus Europa Hybrid DVB-T card (SAA7134
+ SubVendor ID: 0x1043 Device ID: 0x4847)
+ * iTCO_wdt: Add support for Intel Ibex Peak
+ * atl1c:use common_task instead of reset_task and link_chg_task
+ * atl1e:disable NETIF_F_TSO6 for hardware limit
+ * V4L/DVB (13680a): DocBook/media: copy images after building HTML
+ * V4L/DVB (13680b): DocBook/media: create links for included sources
+ * netfilter: xtables: fix conntrack match v1 ipt-save output
+ * partitions: read whole sector with EFI GPT header
+ * partitions: use sector size for EFI GPT
+ * ALSA: ice1724 - Patch for suspend/resume for ESI Juli@
+ * sched: Fix isolcpus boot option
+ * sched: Fix missing sched tunable recalculation on cpu add/remove
+ * nohz: Prevent clocksource wrapping during idle
+ * nfsd: Fix sort_pacl in fs/nfsd/nf4acl.c to actually sort groups
+ * timers, init: Limit the number of per cpu calibration bootup messages
+ * PCI: Always set prefetchable base/limit upper32 registers
+ * iscsi class: modify handling of replacement timeout
+ * NFS: Revert default r/wsize behavior
+ * HID: fixup quirk for NCR devices
+ * scsi_devinfo: update Hitachi entries (v2)
+ * scsi_dh: create sysfs file, dh_state for all SCSI disk devices
+ * scsi_transport_fc: remove invalid BUG_ON
+ * lpfc: fix hang on SGI ia64 platform
+ * libfc: fix typo in retry check on received PRLI
+ * libfc: fix ddp in fc_fcp for 0 xid
+ * fcoe: remove redundant checking of netdev->netdev_ops
+ * libfc: Fix wrong scsi return status under FC_DATA_UNDRUN
+ * libfc: lport: fix minor documentation errors
+ * libfc: don't WARN_ON in lport_timeout for RESET state
+ * fcoe: initialize return value in fcoe_destroy
+ * libfc: Fix frags in frame exceeding SKB_MAX_FRAGS in fc_fcp_send_data
+ * libfc: fix memory corruption caused by double frees and bad error
+ handling
+ * libfc: fix free of fc_rport_priv with timer pending
+ * libfc: remote port gets stuck in restart state without really
+ restarting
+ * fcoe, libfc: fix an libfc issue with queue ramp down in libfc
+ * fcoe: Fix checking san mac address
+ * fcoe: Fix getting san mac for VLAN interface
+ * qlge: Remove explicit setting of PCI Dev CTL reg.
+ * qlge: Set PCIE max read request size.
+ * qlge: Don't fail open when port is not initialized.
+ * qlge: Add handler for DCBX firmware event.
+ * qlge: Bonding fix for mode 6.
+ * PCI: AER: fix aer inject result in kernel oops
+ * DMI: allow omitting ident strings in DMI tables
+ * Input: i8042 - remove identification strings from DMI tables
+ * Input: i8042 - add Gigabyte M1022M to the noloop list
+ * Input: i8042 - add Dritek quirk for Acer Aspire 5610.
+ * ALSA: hda - select IbexPeak handler for Calpella
+ * ALSA: hda - Fix quirk for Maxdata obook4-1
+ * ALSA: hda - Add missing Line-Out and PCM switches as slave
+ * iTCO_wdt.c - cleanup chipset documentation
+ * iTCO_wdt: add PCI ID for the Intel EP80579 (Tolapai) SoC
+ * iTCO_wdt: Add Intel Cougar Point and PCH DeviceIDs
+ * ahci: disable SNotification capability for ich8
+ * ata_piix: fix MWDMA handling on PIIX3
+ * md: fix small irregularity with start_ro module parameter
+ * V4L/DVB (13826): uvcvideo: Fix controls blacklisting
+ * cio: fix double free in case of probe failure
+ * cio: dont panic in non-fatal conditions
+ * netiucv: displayed TX bytes value much too high
+ * ipc ns: fix memory leak (idr)
+ * ALSA: hda - Fix HP T5735 automute
+ * hwmon: (fschmd) Fix a memleak on multiple opens of /dev/watchdog
+ * UBI: fix memory leak in update path
+ * UBI: initialise update marker
+ * ASoC: fix a memory-leak in wm8903
+ * mac80211: check that ieee80211_set_power_mgmt only handles STA
+ interfaces.
+ * cfg80211: fix channel setting for wext
+ * KVM: S390: fix potential array overrun in intercept handling
+ * KVM: only allow one gsi per fd
+ * KVM: Fix race between APIC TMR and IRR
+ * KVM: MMU: bail out pagewalk on kvm_read_guest error
+ * KVM: x86: Fix host_mapping_level()
+ * KVM: x86: Fix probable memory leak of vcpu->arch.mce_banks
+ * KVM: x86: Fix leak of free lapic date in kvm_arch_vcpu_init()
+ * KVM: fix lock imbalance in kvm_*_irq_source_id()
+ * KVM: only clear irq_source_id if irqchip is present
+ * IPoIB: Clear ipoib_neigh.dgid in ipoib_neigh_alloc()
+ * x86: Reenable TSC sync check at boot, even with NONSTOP_TSC
+ * ACPI: enable C2 and Turbo-mode on Nehalem notebooks on A/C
+ - LP: #516325
+ * iwlwifi: Fix throughput stall issue in HT mode for 5000
+ * fnctl: f_modown should call write_lock_irqsave/restore
+ * x86, msr/cpuid: Pass the number of minors when unregistering MSR and
+ CPUID drivers.
+ * Linux 2.6.32.7
+ * scsi_lib: Fix bug in completion of bidi commands
+ * mptsas: Fix issue with chain pools allocation on katmai
+ * mm: add new 'read_cache_page_gfp()' helper function
+ * drm/i915: Selectively enable self-reclaim
+ * firewire: ohci: fix crashes with TSB43AB23 on 64bit systems
+ * S390: fix single stepped svcs with TRACE_IRQFLAGS=y
+ * x86: Set hotpluggable nodes in nodes_possible_map
+ * x86: Remove "x86 CPU features in debugfs" (CONFIG_X86_CPU_DEBUG)
+ * libata: retry FS IOs even if it has failed with AC_ERR_INVALID
+ * zcrypt: Do not remove coprocessor for error 8/72
+ * dasd: fix possible NULL pointer errors
+ * ACPI: Add a generic API for _OSC -v2
+ * ACPI: Add platform-wide _OSC support.
+ * ACPI: fix OSC regression that caused aer and pciehp not to load
+ * ACPI: Advertise to BIOS in _OSC: _OST on _PPC changes
+ * UBI: fix volume creation input checking
+ * e1000/e1000e: don't use small hardware rx buffers
+ * drm/i915: Reload hangcheck timer too for Ironlake
+ * Fix a leak in affs_fill_super()
+ * Fix failure exits in bfs_fill_super()
+ * fix oops in fs/9p late mount failure
+ * fix leak in romfs_fill_super()
+ * Fix remount races with symlink handling in affs
+ * fix affs parse_options()
+ * Fix failure exit in ipathfs
+ * mm: fix migratetype bug which slowed swapping
+ * FDPIC: Respect PT_GNU_STACK exec protection markings when creating
+ NOMMU stack
+ * Split 'flush_old_exec' into two functions
+ * sparc: TIF_ABI_PENDING bit removal
+ * x86: get rid of the insane TIF_ABI_PENDING bit
+ * Input: winbond-cir - remove dmesg spam
+ * x86: Disable HPET MSI on ATI SB700/SB800
+ * iwlwifi: set default aggregation frame count limit to 31
+ * drm/i915: only enable hotplug for detected outputs
+ * firewire: core: add_descriptor size check
+ * SECURITY: selinux, fix update_rlimit_cpu parameter
+ * regulator: Specify REGULATOR_CHANGE_STATUS for WM835x LED constraints
+ * x86: Add Dell OptiPlex 760 reboot quirk
+ - LP: #488319
+ * x86: Add quirk for Intel DG45FC board to avoid low memory corruption
+ * x86/amd-iommu: Fix possible integer overflow
+ * clocksource: fix compilation if no GENERIC_TIME
+ * tcp: update the netstamp_needed counter when cloning sockets
+ * sky2: Fix oops in sky2_xmit_frame() after TX timeout
+ * net: restore ip source validation
+ * af_packet: Don't use skb after dev_queue_xmit()
+ * ax25: netrom: rose: Fix timer oopses
+ * KVM: allow userspace to adjust kvmclock offset
+ * oprofile/x86: add Xeon 7500 series support
+ * oprofile/x86: fix crash when profiling more than 28 events
+ * libata: retry link resume if necessary
+ * mm: percpu-vmap fix RCU list walking
+ * mm: purge fragmented percpu vmap blocks
+ * block: fix bio_add_page for non trivial merge_bvec_fn case
+ * Fix 'flush_old_exec()/setup_new_exec()' split
+ * random: drop weird m_time/a_time manipulation
+ * random: Remove unused inode variable
+ * block: fix bugs in bio-integrity mempool usage
+ * usb: r8a66597-hdc disable interrupts fix
+ * connector: Delete buggy notification code.
+ * be2net: Bug fix to support newer generation of BE ASIC
+ * be2net: Fix memset() arg ordering.
+ * mm: flush dcache before writing into page to avoid alias
+ * mac80211: fix NULL pointer dereference when ftrace is enabled
+ * imxfb: correct location of callbacks in suspend and resume
+ * mx3fb: some debug and initialisation fixes
+ * starfire: clean up properly if firmware loading fails
+ * kernel/cred.c: use kmem_cache_free
+ * uartlite: fix crash when using as console
+ * pktcdvd: removing device does not remove its sysfs dir
+ * ath9k: fix eeprom INI values override for 2GHz-only cards
+ * ath9k: fix beacon slot/buffer leak
+ * powerpc: TIF_ABI_PENDING bit removal
+ * NET: fix oops at bootime in sysctl code
+ * Linux 2.6.32.8
+
+ -- Andy Whitcroft <apw@canonical.com> Wed, 10 Feb 2010 18:56:52 +0000
+
+linux (2.6.32-12.17) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * restore linux-image prefix -- master
+ * enforce -- we require SELINUX enabled -- master
+ * enforce -- ensure APPARMOR is our default LSM -- master
+ * make doc package completely optional -- master
+ * make source package completely optional -- master
+ * make linux-libc-dev completly optional -- master
+ * convert package disable to a deps list -- master
+ * allow common headers to switch from indep to arch -- master
+ * convert binary package disable to a deps list -- master
+ * add configuration option for a full source build tree -- master
+ * add support for uImage kernels in package control scripts
+ * getabis -- cleanup and parameterise repository list -- master
+ * getabis -- move configuration to etc/getabi -- master
+ * kernelconfig -- move configuration to etc -- master
+ * rules -- make debian/debian.env master for branch name
+ * set the current branch name -- master
+ * pull back common debian.master files into debian -- master
+ * enforcer -- make the enforcement configuration common
+ * insert-changes -- correctly link to debian/rules in DROOT
+
+ [ Colin Watson ]
+
+ * future-proof ddeb handling against buildd changes
+
+ [ Eric Miao ]
+
+ * SAUCE: Make CONFIG_{OMNIBOOK, AVERATEC_5100P, PACKARDBELL_E5} depend on
+ X86
+
+ [ Loïc Minier ]
+
+ * Add modules.builtin.bin to prerm rm list
+ - LP: #516584
+
+ [ Tim Gardner ]
+
+ * [Config] Implement the amd64 preempt flavour
+
+ [ Upstream Kernel Changes ]
+
+ * syslog: distinguish between /proc/kmsg and syscalls
+ - LP: #515623
+ * sfc: Fix polling for slow MCDI operations
+ * sfc: Fix conditions for MDIO self-test
+ * sfc: QT202x: Remove unreliable MMD check at initialisation
+ * sfc: Add workspace for GMAC bug workaround to MCDI MAC_STATS buffer
+ * sfc: Use fixed-size buffers for MCDI NVRAM requests
+
+ -- Andy Whitcroft <apw@canonical.com> Fri, 05 Feb 2010 07:09:31 +0000
+
+linux (2.6.32-12.16) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Revert "SAUCE: acpi battery -- delay first lookup of the battery until
+ first use"
+ * SAUCE: acpi battery -- move first lookup asynchronous
+ - LP: #507211
+ * [Config] update configs to cleanup generic configs
+ * [Config] disable CONFIG_X86_CPU_DEBUG for amd64
+ * [Config] enable USER_NS
+ - LP: #480739, #509808
+
+ [ Heiko Carstens ]
+
+ * (pre-stable) driver-core: fix devtmpfs crash on s390
+ - LP: #512370
+
+ [ John Johansen ]
+
+ * [Config] for server and virtual flavours make CONFIG_SCSI_SYM53C8XX_2=y
+ - LP: #494565
+ * [Config] VIRTIO=y for server/virtual flavours
+ - LP: #494565
+
+ [ Kay Sievers ]
+
+ * (pre-stable) Driver-Core: devtmpfs - set root directory mode to 0755
+ - LP: #512370
+
+ [ Kees Cook ]
+
+ * SAUCE: x86: brk away from exec rand area
+ - LP: #452175
+
+ [ Leann Ogasawara ]
+
+ * [Upstream] e1000: enhance frame fragment detection
+ - CVE-2009-4536
+ * [Upstream] e1000e: enhance frame fragment detection
+ - CVE-2009-4538
+
+ [ Sebastian Kapfer ]
+
+ * (pre-stable) Input: ALPS - add interleaved protocol support (Dell E6x00
+ series)
+ - LP: #296610
+
+ [ Upstream Kernel Changes ]
+
+ * inotify: do not reuse watch descriptors
+ - LP: #485556
+ * inotify: only warn once for inotify problems
+ * revert "drivers/video/s3c-fb.c: fix clock setting for Samsung SoC
+ Framebuffer"
+ * memcg: ensure list is empty at rmdir
+ * drm/i915: remove loop in Ironlake interrupt handler
+ * block: Fix incorrect reporting of partition alignment
+ * x86, mce: Thermal monitoring depends on APIC being enabled
+ * futexes: Remove rw parameter from get_futex_key()
+ * page allocator: update NR_FREE_PAGES only when necessary
+ * x86, apic: use physical mode for IBM summit platforms
+ * edac: i5000_edac critical fix panic out of bounds
+ * x86: SGI UV: Fix mapping of MMIO registers
+ * mfd: WM835x GPIO direction register is not locked
+ * mfd: Correct WM835x ISINK ramp time defines
+ * ALSA: hda - Fix missing capture mixer for ALC861/660 codecs
+ * V4L/DVB (13868): gspca - sn9c20x: Fix test of unsigned.
+ * reiserfs: truncate blocks not used by a write
+ * HID: add device IDs for new model of Apple Wireless Keyboard
+ * PCI/cardbus: Add a fixup hook and fix powerpc
+ * Input: pmouse - move Sentelic probe down the list
+ * asus-laptop: add Lenovo SL hotkey support
+ * sched: Fix cpu_clock() in NMIs, on !CONFIG_HAVE_UNSTABLE_SCHED_CLOCK
+ * sparc64: Fix NMI programming when perf events are active.
+ * sparc64: Fix Niagara2 perf event handling.
+ * i2c: Do not use device name after device_unregister
+ * i2c/pca: Don't use *_interruptible
+ * serial/8250_pnp: add a new Fujitsu Wacom Tablet PC device
+ * sched: Fix task priority bug
+ * vfs: Fix vmtruncate() regression
+ * Linux 2.6.32.5
+ * x86, msr/cpuid: Register enough minors for the MSR and CPUID drivers
+ * V4L/DVB (13900): gspca - sunplus: Fix bridge exchanges.
+ * Staging: asus_oled: fix oops in 2.6.32.2
+ * Staging: hv: fix smp problems in the hyperv core code
+ * tty: fix race in tty_fasync
+ * ecryptfs: use after free
+ * ecryptfs: initialize private persistent file before dereferencing
+ pointer
+ * nozomi: quick fix for the close/close bug
+ * serial: 8250_pnp: use wildcard for serial Wacom tablets
+ * usb: serial: fix memory leak in generic driver
+ * USB: fix bitmask merge error
+ * USB: Don't use GFP_KERNEL while we cannot reset a storage device
+ * USB: EHCI: fix handling of unusual interrupt intervals
+ * USB: EHCI & UHCI: fix race between root-hub suspend and port resume
+ * USB: add missing delay during remote wakeup
+ * USB: add speed values for USB 3.0 and wireless controllers
+ * ACPI: EC: Accelerate query execution
+ * ACPI: EC: Add wait for irq storm
+ * SCSI: enclosure: fix oops while iterating enclosure_status array
+ * drm/i915: Read the response after issuing DDC bus switch command
+ * drm/i915: try another possible DDC bus for the SDVO device with
+ multiple outputs
+ * block: bdev_stack_limits wrapper
+ * DM: Fix device mapper topology stacking
+ * x86/PCI/PAT: return EINVAL for pci mmap WC request for !pat_enabled
+ * USB: fix usbstorage for 2770:915d delivers no FAT
+ * vmalloc: remove BUG_ON due to racy counting of VM_LAZY_FREE
+ * perf timechart: Use tid not pid for COMM change
+ * perf events: Dont report side-band events on each cpu for
+ per-task-per-cpu events
+ * perf: Honour event state for aux stream data
+ * Linux 2.6.32.6
+
+ -- Andy Whitcroft <apw@canonical.com> Wed, 27 Jan 2010 16:40:23 +0000
+
+linux (2.6.32-11.15) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Revert "(pre-stable) drm/radeon/kms: fix crtc vblank update for r600"
+ * Revert "(pre-stable) sched: Fix balance vs hotplug race"
+ * Revert "[Upstream] acerhdf: Limit modalias matching to supported
+ boards"
+ * Revert "[Upstream] mmc: prevent dangling block device from accessing
+ stale queues"
+ * Revert "SAUCE: Fix nx_enable reporting"
+ * Revert "SAUCE: [x86] fix report of cs-limit nx-emulation"
+ * Revert "SAUCE: [x86] implement cs-limit nx-emulation for ia32"
+ * SAUCE: i915 -- disable powersave by default
+ - LP: #492392
+
+ [ Kees Cook ]
+
+ * SAUCE: [x86] implement cs-limit nx-emulation for ia32
+ - LP: #369978
+ * SAUCE: [x86] fix report of cs-limit nx-emulation
+ - LP: #454285
+ * SAUCE: Fix nx_enable reporting
+ - LP: #454285
+
+ [ Tim Gardner ]
+
+ * [Upstream] b43: Declare all possible firmware files.
+ - LP: #488636
+ * [Config] updateconfigs after adding pvscsi
+ - LP: #497156
+ * [Config] CONFIG_BT=m
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "x86: Side-step lguest problem by only building cmpxchg8b_emu
+ for pre-Pentium"
+ * SCSI: ipr: fix EEH recovery
+ * SCSI: qla2xxx: dpc thread can execute before scsi host has been added
+ * SCSI: st: fix mdata->page_order handling
+ * SCSI: fc class: fix fc_transport_init error handling
+ * sched: Fix task_hot() test order
+ * x86, cpuid: Add "volatile" to asm in native_cpuid()
+ * sched: Select_task_rq_fair() must honour SD_LOAD_BALANCE
+ * clockevents: Prevent clockevent_devices list corruption on cpu hotplug
+ * pata_hpt3x2n: fix clock turnaround
+ * pata_cmd64x: fix overclocking of UDMA0-2 modes
+ * ASoC: wm8974: fix a wrong bit definition
+ * sound: sgio2audio/pdaudiocf/usb-audio: initialize PCM buffer
+ * ALSA: hda - Fix missing capsrc_nids for ALC88x
+ * acerhdf: limit modalias matching to supported
+ - LP: #435958
+ * ACPI: EC: Fix MSI DMI detection
+ * ACPI: Use the return result of ACPI lid notifier chain correctly
+ * powerpc: Handle VSX alignment faults correctly in little-endian mode
+ * ASoC: Do not write to invalid registers on the wm9712.
+ * drm/radeon: fix build on 64-bit with some compilers.
+ * USB: emi62: fix crash when trying to load EMI 6|2 firmware
+ * USB: option: support hi speed for modem Haier CE100
+ * USB: Fix a bug on appledisplay.c regarding signedness
+ * USB: musb: gadget_ep0: avoid SetupEnd interrupt
+ * Bluetooth: Prevent ill-timed autosuspend in USB driver
+ * USB: rename usb_configure_device
+ * USB: fix bugs in usb_(de)authorize_device
+ * drivers/net/usb: Correct code taking the size of a pointer
+ * x86: SGI UV: Fix writes to led registers on remote uv hubs
+ * md: Fix unfortunate interaction with evms
+ * dma: at_hdmac: correct incompatible type for argument 1 of
+ 'spin_lock_bh'
+ * dma-debug: Do not add notifier when dma debugging is disabled.
+ * dma-debug: Fix bug causing build warning
+ * cifs: NULL out tcon, pSesInfo, and srvTcp pointers when chasing DFS
+ referrals
+ * x86/amd-iommu: Fix initialization failure panic
+ * ioat3: fix p-disabled q-continuation
+ * ioat2,3: put channel hardware in known state at init
+ * KVM: MMU: remove prefault from invlpg handler
+ * KVM: LAPIC: make sure IRR bitmap is scanned after vm load
+ * Libertas: fix buffer overflow in lbs_get_essid()
+ * iwmc3200wifi: fix array out-of-boundary access
+ * mac80211: fix propagation of failed hardware reconfigurations
+ * mac80211: fix WMM AP settings application
+ * mac80211: Fix IBSS merge
+ * cfg80211: fix race between deauth and assoc response
+ * ath5k: fix SWI calibration interrupt storm
+ * ath9k: wake hardware for interface IBSS/AP/Mesh removal
+ * ath9k: Fix TX queue draining
+ * ath9k: fix missed error codes in the tx status check
+ * ath9k: wake hardware during AMPDU TX actions
+ * ath9k: fix suspend by waking device prior to stop
+ * ath9k_hw: Fix possible OOB array indexing in gen_timer_index[] on
+ 64-bit
+ * ath9k_hw: Fix AR_GPIO_INPUT_EN_VAL_BT_PRIORITY_BB and its shift value
+ in 0x4054
+ * iwl3945: disable power save
+ * iwl3945: fix panic in iwl3945 driver
+ * iwlwifi: fix EEPROM/OTP reading endian annotations and a bug
+ * iwlwifi: fix more eeprom endian bugs
+ * iwlwifi: fix 40MHz operation setting on cards that do not allow it
+ * mac80211: fix race with suspend and dynamic_ps_disable_work
+ * NOMMU: Optimise away the {dac_,}mmap_min_addr tests
+ * 'sysctl_max_map_count' should be non-negative
+ * kernel/sysctl.c: fix the incomplete part of
+ sysctl_max_map_count-should-be-non-negative.patch
+ * V4L/DVB (13596): ov511.c typo: lock => unlock
+ * x86/ptrace: make genregs[32]_get/set more robust
+ * memcg: avoid oom-killing innocent task in case of use_hierarchy
+ * e100: Fix broken cbs accounting due to missing memset.
+ * ipv6: reassembly: use seperate reassembly queues for conntrack and
+ local delivery
+ * netfilter: fix crashes in bridge netfilter caused by fragment jumps
+ * hwmon: (sht15) Off-by-one error in array index + incorrect constants
+ * b43: avoid PPC fault during resume
+ * Keys: KEYCTL_SESSION_TO_PARENT needs TIF_NOTIFY_RESUME architecture
+ support
+ * sched: Fix balance vs hotplug race
+ * drm/radeon/kms: fix crtc vblank update for r600
+ * drm: disable all the possible outputs/crtcs before entering KMS mode
+ * S390: dasd: support DIAG access for read-only devices
+ * xen: fix is_disconnected_device/exists_disconnected_device
+ * xen: improvement to wait_for_devices()
+ * xen: wait up to 5 minutes for device connetion
+ * orinoco: fix GFP_KERNEL in orinoco_set_key with interrupts disabled
+ * udf: Try harder when looking for VAT inode
+ * Add unlocked version of inode_add_bytes() function
+ * quota: decouple fs reserved space from quota reservation
+ * ext4: Convert to generic reserved quota's space management.
+ * ext4: fix sleep inside spinlock issue with quota and dealloc (#14739)
+ * x86, msr: Unify rdmsr_on_cpus/wrmsr_on_cpus
+ * cpumask: use modern cpumask style in drivers/edac/amd64_edac.c
+ * amd64_edac: unify MCGCTL ECC switching
+ * x86, msr: Add support for non-contiguous cpumasks
+ * x86, msr: msrs_alloc/free for CONFIG_SMP=n
+ * amd64_edac: fix driver instance freeing
+ * amd64_edac: make driver loading more robust
+ * amd64_edac: fix forcing module load/unload
+ * sched: Sched_rt_periodic_timer vs cpu hotplug
+ * ext4: Update documentation to correct the inode_readahead_blks option
+ name
+ * lguest: fix bug in setting guest GDT entry
+ * vmscan: do not evict inactive pages when skipping an active list scan
+ * ksm: fix mlockfreed to munlocked
+ * rt2x00: Disable powersaving for rt61pci and rt2800pci.
+ * generic_permission: MAY_OPEN is not write access
+ * Linux 2.6.32.3
+ * untangle the do_mremap() mess
+ * fasync: split 'fasync_helper()' into separate add/remove functions
+ * ASoC: fix params_rate() macro use in several codecs
+ * modules: Skip empty sections when exporting section notes
+ * exofs: simple_write_end does not mark_inode_dirty
+ * nfsd: make sure data is on disk before calling ->fsync
+ * sunrpc: fix peername failed on closed listener
+ * SUNRPC: Fix up an error return value in
+ gss_import_sec_context_kerberos()
+ * SUNRPC: Fix the return value in gss_import_sec_context()
+ * sunrpc: on successful gss error pipe write, don't return error
+ * drm/i915: Update LVDS connector status when receiving ACPI LID event
+ * drm/i915: fix order of fence release wrt flushing
+ * drm/i915: Permit pinning whilst the device is 'suspended'
+ * drm: remove address mask param for drm_pci_alloc()
+ * drm/i915: Enable/disable the dithering for LVDS based on VBT setting
+ * drm/i915: Make the BPC in FDI rx/transcoder be consistent with that in
+ pipeconf on Ironlake
+ * drm/i915: Select the correct BPC for LVDS on Ironlake
+ * drm/i915: fix unused var
+ * rtc_cmos: convert shutdown to new pnp_driver->shutdown
+ * drivers/cpuidle/governors/menu.c: fix undefined reference to
+ `__udivdi3'
+ * cgroups: fix 2.6.32 regression causing BUG_ON() in cgroup_diput()
+ * lib/rational.c needs module.h
+ * dma-debug: allow DMA_BIDIRECTIONAL mappings to be synced with
+ DMA_FROM_DEVICE and
+ * kernel/signal.c: fix kernel information leak with print-fatal-signals=1
+ * mmc_block: add dev_t initialization check
+ * mmc_block: fix probe error cleanup bug
+ * mmc_block: fix queue cleanup
+ * ALSA: hda - Fix ALC861-VD capture source mixer
+ * ALSA: ac97: Add Dell Dimension 2400 to Headphone/Line Jack Sense
+ blacklist
+ * ALSA: atiixp: Specify codec for Foxconn RC4107MA-RS2
+ - LP: #498863
+ * ASoC: Fix WM8350 DSP mode B configuration
+ * netfilter: ebtables: enforce CAP_NET_ADMIN
+ * netfilter: nf_ct_ftp: fix out of bounds read in update_nl_seq()
+ * hwmon: (coretemp) Fix TjMax for Atom N450/D410/D510 CPUs
+ * hwmon: (adt7462) Fix pin 28 monitoring
+ * quota: Fix dquot_transfer for filesystems different from ext4
+ * xen: fix hang on suspend.
+ * iwlwifi: fix iwl_queue_used bug when read_ptr == write_ptr
+ * ath5k: Fix eeprom checksum check for custom sized eeproms
+ * cfg80211: fix syntax error on user regulatory hints
+ * iwl: off by one bug
+ * mac80211: add missing sanity checks for action frames
+ * drm/i915: remove render reclock support
+ * libertas: Remove carrier signaling from the scan code
+ * kernel/sysctl.c: fix stable merge error in NOMMU mmap_min_addr
+ * mac80211: fix skb buffering issue (and fixes to that)
+ * fix braindamage in audit_tree.c untag_chunk()
+ * fix more leaks in audit_tree.c tag_chunk()
+ * module: handle ppc64 relocating kcrctabs when CONFIG_RELOCATABLE=y
+ * ipv6: skb_dst() can be NULL in ipv6_hop_jumbo().
+ * agp/intel-agp: Clear entire GTT on startup
+ * Linux 2.6.32.4
+ * ethtool: Add reset operation
+ * gro: Name the GRO result enumeration type
+ * gro: Change all receive functions to return GRO result codes
+ * sfc: 10Xpress: Initialise pause advertising flags
+ * sfc: 10Xpress: Report support for pause frames
+ * sfc: Remove redundant header gmii.h
+ * sfc: Remove redundant hardware initialisation
+ * sfc: Rename Falcon-specific board code and types
+ * sfc: Remove boards.h, moving last remaining declaration to falcon.h
+ * sfc: Remove versioned bitfield macros
+ * sfc: Move RX data FIFO thresholds out of struct efx_nic_type
+ * sfc: Update hardware definitions for Siena
+ * sfc: Rename register I/O header and functions used by both Falcon and
+ Siena
+ * sfc: Eliminate indirect lookups of queue size constants
+ * sfc: Define DMA address mask explicitly in terms of descriptor field
+ width
+ * sfc: Move all TX DMA length limiting into tx.c
+ * sfc: Change order of device removal to reverse of probe order
+ * sfc: Remove declarations of nonexistent functions
+ * sfc: Move efx_xmit_done() declaration into correct stanza
+ * sfc: Move shared members of struct falcon_nic_data into struct efx_nic
+ * sfc: Maintain interrupt moderation values in ticks, not microseconds
+ * sfc: Removed kernel-doc for nonexistent member of efx_phy_operations
+ * sfc: Remove pointless abstraction of memory BAR number
+ * sfc: Remove incorrect assertion from efx_pci_remove_main()
+ * sfc: Remove unnecessary tests of efx->membase
+ * sfc: Move MTD probe after netdev registration and name allocation
+ * sfc: Remove unused code for non-autoneg speed/duplex switching
+ * sfc: Rename 'xfp' file and functions to reflect reality
+ * sfc: Really allow RX checksum offload to be disabled
+ * sfc: Feed GRO result into RX allocation policy and interrupt moderation
+ * sfc: Enable heuristic selection between page and skb RX buffers
+ * sfc: Remove pointless abstraction of memory BAR number (2)
+ * sfc: Remove redundant gotos from __efx_rx_packet()
+ * sfc: Remove ridiculously paranoid assertions
+ * sfc: Move assertions and buffer cleanup earlier in efx_rx_packet_lro()
+ * sfc: Record RX queue number on GRO path
+ * sfc: SFT9001: Reset LED configuration correctly after blinking
+ * sfc: Use a single blink implementation
+ * sfc: Rename efx_board::init_leds to init_phy and use for SFN4111T
+ * sfc: Make board information explicitly Falcon-specific
+ * sfc: Move definition of struct falcon_nic_data into falcon.h
+ * sfc: Move struct falcon_board into struct falcon_nic_data
+ * sfc: Move all I2C stuff into struct falcon_board
+ * sfc: Gather link state fields in struct efx_nic into new struct
+ efx_link_state
+ * sfc: Remove unnecessary casts to struct sk_buff *
+ * sfc: Remove redundant efx_xmit() function
+ * sfc: Combine high-level header files
+ * sfc: Log interrupt and reset type names, not numbers
+ * sfc: Fix descriptor cache sizes
+ * sfc: Treat all MAC registers as 128-bit
+ * sfc: Strengthen EFX_ASSERT_RESET_SERIALISED
+ * sfc: Comment corrections
+ * sfc: Remove unused constant
+ * sfc: Clean up struct falcon_board and struct falcon_board_data
+ * sfc: Fix bugs in RX queue flushing
+ * sfc: Remove unused function efx_flush_queues()
+ * sfc: Only switch Falcon MAC clocks as necessary
+ * sfc: Hold MAC lock for longer in efx_init_port()
+ * sfc: Split MAC stats DMA initiation and completion
+ * sfc: Move Falcon board/PHY/MAC monitoring code to falcon.c
+ * sfc: Simplify XMAC link polling
+ * sfc: Change MAC promiscuity and multicast hash at the same time
+ * sfc: Move inline comment into kernel-doc
+ * sfc: Do not set net_device::trans_start in self-test
+ * sfc: Simplify PHY polling
+ * sfc: QT202x: Reset before reading PHY id
+ * sfc: Replace MDIO spinlock with mutex
+ * sfc: Always start Falcon using the XMAC
+ * sfc: Limit some hardware workarounds to Falcon
+ * sfc: Remove EFX_WORKAROUND_9141 macro
+ * sfc: Remove another unused workaround macro
+ * sfc: Remove some redundant whitespace
+ * sfc: Decouple NIC revision number from Falcon PCI revision number
+ * sfc: Move descriptor cache base addresses to struct efx_nic_type
+ * sfc: Clean up RX event handling
+ * sfc: Remove redundant writes to INT_ADR_KER
+ * sfc: Remove duplicate hardware structure definitions
+ * sfc: Turn pause frame generation on and off at the MAC, not the RX FIFO
+ * sfc: Move Falcon NIC operations to efx_nic_type
+ * sfc: Refactor link configuration
+ * sfc: Generalise link state monitoring
+ * sfc: Add power-management and wake-on-LAN support
+ * sfc: Implement ethtool reset operation
+ * sfc: Add efx_nic_type operation for register self-test
+ * sfc: Add efx_nic_type operation for NVRAM self-test
+ * sfc: Add efx_nic_type operation for identity LED control
+ * sfc: Separate shared NIC code from Falcon-specific and rename
+ accordingly
+ * sfc: Fold falcon_probe_nic_variant() into falcon_probe_nic()
+ * sfc: Extend loopback mode enumeration
+ * sfc: Remove static PHY data and enumerations
+ * sfc: Extend MTD driver for use with new NICs
+ * sfc: Allow for additional checksum offload features
+ * sfc: Rename falcon.h to nic.h
+ * sfc: Move shared NIC code from falcon.c to new source file nic.c
+ * sfc: Add firmware protocol definitions (MCDI)
+ * sfc: Add support for SFC9000 family (1)
+ * sfc: Add support for SFC9000 family (2)
+ * sfc: Implement TSO for TCP/IPv6
+ * sfc: Update version, copyright dates, authors
+ * drivers/net/sfc: Correct code taking the size of a pointer
+ * sfc: Move PHY software state initialisation from init() into probe()
+ * sfc: Include XGXS in XMAC link status check except in XGMII loopback
+ * sfc: Fix DMA mapping cleanup in case of an error in TSO
+ * sfc: QT2025C: Work around PHY bug
+ * sfc: QT2025C: Switch into self-configure mode when not in loopback
+ * sfc: QT2025C: Work around PHY firmware initialisation bug
+ * sfc: QT2025C: Add error message for suspected bad SFP+ cables
+ * sfc: Disable TX descriptor prefetch watchdog
+ * [SCSI] vmw_pvscsi: SCSI driver for VMware's virtual HBA.
+ - LP: #497156
+
+ -- Andy Whitcroft <apw@canonical.com> Tue, 19 Jan 2010 16:12:47 +0000
+
+linux (2.6.32-10.14) lucid; urgency=low
+
+ [ Alex Deucher ]
+
+ * SAUCE: drm/radeon/kms: fix LVDS setup on r4xx
+ - LP: #493795
+
+ [ Andy Whitcroft ]
+
+ * Revert "(pre-stable) acpi: Use the ARB_DISABLE for the CPU which model
+ id is less than 0x0f."
+ * config-check -- ensure the checks get run at build time
+ * config-check -- check the processed config during updateconfigs
+ * config-check -- CONFIG_SECCOMP may not be present
+ * TUN is now built in ignore
+ * SAUCE: acpi battery -- delay first lookup of the battery until first
+ use
+ * SAUCE: async_populate_rootfs: move rootfs init earlier
+ * ubuntu: AppArmor -- update to mainline 2010-01-06
+ * SAUCE: move RLIMIT_CORE pipe dumper marker to 1
+ - LP: #498525
+
+ [ Dave Airlie ]
+
+ * (pre-stable) drm/radeon/kms: fix crtc vblank update for r600
+
+ [ Leann Ogasawara ]
+
+ * Add asix to nic-usb-modules file
+ - LP: #499785
+
+ [ Peter Zijlstra ]
+
+ * (pre-stable) sched: Fix balance vs hotplug race
+
+ [ Tim Gardner ]
+
+ * [Config] Enable CONFIG_FUNCTION_TRACER
+ - LP: #497989
+ * [Config] Drop lpia from getabis
+ * [Config] Build in TUN/TAP driver
+ - LP: #499491
+ * [Config] DH_COMPAT=5
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "(pre-stable) drm/i915: Avoid NULL dereference with
+ component_only tv_modes"
+ * Revert "(pre-stable) drm/i915: Fix sync to vblank when VGA output is
+ turned off"
+ * USB: usb-storage: fix bug in fill_inquiry
+ * USB: option: add pid for ZTE
+ * firewire: ohci: handle receive packets with a data length of zero
+ * rcu: Prepare for synchronization fixes: clean up for non-NO_HZ handling
+ of ->completed counter
+ * rcu: Fix synchronization for rcu_process_gp_end() uses of ->completed
+ counter
+ * rcu: Fix note_new_gpnum() uses of ->gpnum
+ * rcu: Remove inline from forward-referenced functions
+ * perf_event: Fix invalid type in ioctl definition
+ * perf_event: Initialize data.period in perf_swevent_hrtimer()
+ * perf: Don't free perf_mmap_data until work has been done
+ * PM / Runtime: Fix lockdep warning in __pm_runtime_set_status()
+ * sched: Check for an idle shared cache in select_task_rq_fair()
+ * sched: Fix affinity logic in select_task_rq_fair()
+ * sched: Rate-limit newidle
+ * sched: Fix and clean up rate-limit newidle code
+ * x86/amd-iommu: attach devices to pre-allocated domains early
+ * x86/amd-iommu: un__init iommu_setup_msi
+ * x86, Calgary IOMMU quirk: Find nearest matching Calgary while walking
+ up the PCI tree
+ * x86: Fix iommu=nodac parameter handling
+ * x86: GART: pci-gart_64.c: Use correct length in strncmp
+ * x86: ASUS P4S800 reboot=bios quirk
+ - LP: #366682
+ * x86, apic: Enable lapic nmi watchdog on AMD Family 11h
+ * ssb: Fix range check in sprom write
+ * ath5k: allow setting txpower to 0
+ * ath5k: enable EEPROM checksum check
+ * hrtimer: Fix /proc/timer_list regression
+ * ALSA: hrtimer - Fix lock-up
+ * ALSA: hda - Terradici HDA controllers does not support 64-bit mode
+ * KVM: x86 emulator: limit instructions to 15 bytes
+ * KVM: s390: Fix prefix register checking in arch/s390/kvm/sigp.c
+ * KVM: s390: Make psw available on all exits, not just a subset
+ * KVM: fix irq_source_id size verification
+ * KVM: x86: include pvclock MSRs in msrs_to_save
+ * x86: Prevent GCC 4.4.x (pentium-mmx et al) function prologue wreckage
+ * x86: Use -maccumulate-outgoing-args for sane mcount prologues
+ * x86, mce: don't restart timer if disabled
+ * x86/mce: Set up timer unconditionally
+ * x86: SGI UV: Fix BAU initialization
+ * x86: Fix duplicated UV BAU interrupt vector
+ * x86: Add new Intel CPU cache size descriptors
+ * x86: Fix typo in Intel CPU cache size descriptor
+ * pata_hpt{37x|3x2n}: fix timing register masks (take 2)
+ * s390: clear high-order bits of registers after sam64
+ * V4L/DVB: Fix test in copy_reg_bits()
+ * bsdacct: fix uid/gid misreporting
+ * UBI: flush wl before clearing update marker
+ * jbd2: don't wipe the journal on a failed journal checksum
+ * USB: xhci: Add correct email and files to MAINTAINERS entry.
+ * USB: musb_gadget_ep0: fix unhandled endpoint 0 IRQs, again
+ * USB: option.c: add support for D-Link DWM-162-U5
+ * USB: usbtmc: repeat usb_bulk_msg until whole message is transfered
+ * USB: usb-storage: add BAD_SENSE flag
+ * USB: Close usb_find_interface race v3
+ * pxa/em-x270: fix usb hub power up/reset sequence
+ * hfs: fix a potential buffer overflow
+ * SUNRPC: IS_ERR/PTR_ERR confusion
+ * NFS: Fix nfs_migrate_page()
+ * md/bitmap: protect against bitmap removal while being updated.
+ * futex: Take mmap_sem for get_user_pages in fault_in_user_writeable
+ * devpts_get_tty() should validate inode
+ * debugfs: fix create mutex racy fops and private data
+ * Driver core: fix race in dev_driver_string
+ * Serial: Do not read IIR in serial8250_start_tx when UART_BUG_TXEN
+ * mac80211: Fix bug in computing crc over dynamic IEs in beacon
+ * mac80211: Fixed bug in mesh portal paths
+ * mac80211: Revert 'Use correct sign for mesh active path refresh'
+ * mac80211: fix scan abort sanity checks
+ * wireless: correctly report signal value for IEEE80211_HW_SIGNAL_UNSPEC
+ * rtl8187: Fix wrong rfkill switch mask for some models
+ * x86: Fix bogus warning in apic_noop.apic_write()
+ * mm: hugetlb: fix hugepage memory leak in mincore()
+ * mm: hugetlb: fix hugepage memory leak in walk_page_range()
+ * powerpc/windfarm: Add detection for second cpu pump
+ * powerpc/therm_adt746x: Record pwm invert bit at module load time]
+ * powerpc: Fix usage of 64-bit instruction in 32-bit altivec code
+ * drm/radeon/kms: Add quirk for HIS X1300 board
+ * drm/radeon/kms: handle vblanks properly with dpms on
+ * drm/radeon/kms: fix legacy crtc2 dpms
+ * drm/radeon/kms: fix vram setup on rs600
+ * drm/radeon/kms: rs6xx/rs740: clamp vram to aperture size
+ * drm/ttm: Fix build failure due to missing struct page
+ * drm/i915: Set the error code after failing to insert new offset into mm
+ ht.
+ * drm/i915: Add the missing clonemask for display port on Ironlake
+ * xen/xenbus: make DEVICE_ATTR()s static
+ * xen: re-register runstate area earlier on resume.
+ * xen: restore runstate_info even if !have_vcpu_info_placement
+ * xen: correctly restore pfn_to_mfn_list_list after resume
+ * xen: register timer interrupt with IRQF_TIMER
+ * xen: register runstate on secondary CPUs
+ * xen: don't call dpm_resume_noirq() with interrupts disabled.
+ * xen: register runstate info for boot CPU early
+ * xen: call clock resume notifier on all CPUs
+ * xen: improve error handling in do_suspend.
+ * xen: don't leak IRQs over suspend/resume.
+ * xen: use iret for return from 64b kernel to 32b usermode
+ * xen: explicitly create/destroy stop_machine workqueues outside
+ suspend/resume region.
+ * Xen balloon: fix totalram_pages counting.
+ * xen: try harder to balloon up under memory pressure.
+ * dm exception store: free tmp_store on persistent flag error
+ * dm snapshot: only take lock for statustype info not table
+ * dm crypt: move private iv fields to structs
+ * dm crypt: restructure essiv error path
+ * dm: avoid _hash_lock deadlock
+ * dm snapshot: cope with chunk size larger than origin
+ * dm crypt: separate essiv allocation from initialisation
+ * dm crypt: make wipe message also wipe essiv key
+ * slc90e66: fix UDMA handling
+ * tcp: Stalling connections: Fix timeout calculation routine
+ * ip_fragment: also adjust skb->truesize for packets not owned by a
+ socket
+ * b44 WOL setup: one-bit-off stack corruption kernel panic fix
+ * sparc64: Don't specify IRQF_SHARED for LDC interrupts.
+ * sparc64: Fix overly strict range type matching for PCI devices.
+ * sparc64: Fix stack debugging IRQ stack regression.
+ * sparc: Set UTS_MACHINE correctly.
+ * b43legacy: avoid PPC fault during resume
+ * tracing: Fix event format export
+ * ath9k: Fix TX hang poll routine
+ * ath9k: fix processing of TX PS null data frames
+ * ath9k: Fix maximum tx fifo settings for single stream devices
+ * ath9k: fix tx status reporting
+ * mac80211: Fix dynamic power save for scanning.
+ * drm/i915: Fix sync to vblank when VGA output is turned off
+ * memcg: fix memory.memsw.usage_in_bytes for root cgroup
+ * thinkpad-acpi: fix default brightness_mode for R50e/R51
+ * thinkpad-acpi: preserve rfkill state across suspend/resume
+ * ipw2100: fix rebooting hang with driver loaded
+ * matroxfb: fix problems with display stability
+ * acerhdf: add new BIOS versions
+ * asus-laptop: change light sens default values.
+ * vmalloc: conditionalize build of pcpu_get_vm_areas()
+ * ACPI: Use the ARB_DISABLE for the CPU which model id is less than 0x0f.
+ * net: Fix userspace RTM_NEWLINK notifications.
+ * ext3: Fix data / filesystem corruption when write fails to copy data
+ * V4L/DVB (13116): gspca - ov519: Webcam 041e:4067 added.
+ * bcm63xx_enet: fix compilation failure after get_stats_count removal
+ * x86: Under BIOS control, restore AP's APIC_LVTTHMR to the BSP value
+ * drm/i915: Avoid NULL dereference with component_only tv_modes
+ * drm/i915: PineView only has LVDS and CRT ports
+ * drm/i915: Fix LVDS stability issue on Ironlake
+ * mm: sigbus instead of abusing oom
+ * ipvs: zero usvc and udest
+ * jffs2: Fix long-standing bug with symlink garbage collection.
+ * intel-iommu: Detect DMAR in hyperspace at probe time.
+ * intel-iommu: Apply BIOS sanity checks for interrupt remapping too.
+ * intel-iommu: Check for an RMRR which ends before it starts.
+ * intel-iommu: Fix oops with intel_iommu=igfx_off
+ * intel-iommu: ignore page table validation in pass through mode
+ * netfilter: xtables: document minimal required version
+ * perf_event: Fix incorrect range check on cpu number
+ * implement early_io{re,un}map for ia64
+ * Linux 2.6.32.2
+
+ -- Andy Whitcroft <apw@canonical.com> Thu, 07 Jan 2010 15:28:43 +0000
+
+linux (2.6.32-9.13) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * [Config] enable CONFIG_B43_PHY_LP
+ - LP: #493059
+ * include modules.builtin in the binary debs
+ * config-check -- add a configuration enforcer
+ * config-check -- add a unit-test suite to the checker
+ * [Config] Enable CONFIG_SYN_COOKIES for versatile
+ * [Config] Enable CONFIG_SECURITY_SMACK for ports
+ * [Config] Enable CONFIG_SECURITY_FILE_CAPABILITIES for ports
+ * [Config] Disable CONFIG_COMPAT_BRK for ports
+ * getabis -- add armel versatile to the list
+
+ [ Brad Figg ]
+
+ * SAUCE: Increase the default prealloc buffer for HDA audio devices
+ (non-modem)
+
+ [ Manoj Iyer ]
+
+ * ubuntu: onmibook -- Added missing BOM file
+
+ [ Tim Gardner ]
+
+ * ubuntu: fsam7400 -- Cleanup Makefile
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT"
+ * signal: Fix alternate signal stack check
+ * SCSI: scsi_lib_dma: fix bug with dma maps on nested scsi objects
+ * SCSI: osd_protocol.h: Add missing #include
+ * SCSI: megaraid_sas: fix 64 bit sense pointer truncation
+ * ext4: fix potential buffer head leak when add_dirent_to_buf() returns
+ ENOSPC
+ * ext4: avoid divide by zero when trying to mount a corrupted file system
+ * ext4: fix the returned block count if EXT4_IOC_MOVE_EXT fails
+ * ext4: fix lock order problem in ext4_move_extents()
+ * ext4: fix possible recursive locking warning in EXT4_IOC_MOVE_EXT
+ * ext4: plug a buffer_head leak in an error path of ext4_iget()
+ * ext4: make sure directory and symlink blocks are revoked
+ * ext4: fix i_flags access in ext4_da_writepages_trans_blocks()
+ * ext4: journal all modifications in ext4_xattr_set_handle
+ * ext4: don't update the superblock in ext4_statfs()
+ * ext4: fix uninit block bitmap initialization when s_meta_first_bg is
+ non-zero
+ * ext4: fix block validity checks so they work correctly with meta_bg
+ * ext4: avoid issuing unnecessary barriers
+ * ext4: fix error handling in ext4_ind_get_blocks()
+ * ext4: make trim/discard optional (and off by default)
+ * ext4: make "norecovery" an alias for "noload"
+ * ext4: Fix double-free of blocks with EXT4_IOC_MOVE_EXT
+ * ext4: initialize moved_len before calling ext4_move_extents()
+ * ext4: move_extent_per_page() cleanup
+ * jbd2: Add ENOMEM checking in and for
+ jbd2_journal_write_metadata_buffer()
+ * ext4: Return the PTR_ERR of the correct pointer in
+ setup_new_group_blocks()
+ * ext4: Avoid data / filesystem corruption when write fails to copy data
+ * ext4: wait for log to commit when umounting
+ * ext4: remove blocks from inode prealloc list on failure
+ * ext4: ext4_get_reserved_space() must return bytes instead of blocks
+ * ext4: quota macros cleanup
+ * ext4: fix incorrect block reservation on quota transfer.
+ * ext4: Wait for proper transaction commit on fsync
+ * ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT
+ * ext4: Fix potential fiemap deadlock (mmap_sem vs. i_data_sem)
+ * Linux 2.6.32.1
+ * kbuild: generate modules.builtin
+ * (pre-stable) drm/i915: Fix sync to vblank when VGA output is turned off
+ - LP: #494461
+ * (pre-stable) drm/i915: Avoid NULL dereference with component_only
+ tv_modes
+ - LP: #494045
+
+ [ Zhao Yakui ]
+
+ * (pre-stable) acpi: Use the ARB_DISABLE for the CPU which model id is
+ less than 0x0f.
+ - LP: #481765
+
+ -- Andy Whitcroft <apw@canonical.com> Thu, 17 Dec 2009 15:41:21 +0000
+
+linux (2.6.32-8.12) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * SAUCE: AppArmor -- add linux/err.h for ERR_PTR
+
+ -- Andy Whitcroft <apw@canonical.com> Sat, 12 Dec 2009 10:56:16 +0000
+
+linux (2.6.32-8.11) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Revert "SAUCE: default ATI Radeon KMS to off until userspace catches
+ up"
+ * Revert "SAUCE: AppArmor: Fix oops there is no tracer and doing unsafe
+ transition."
+ * Revert "SAUCE: AppArmor: Fix refcounting bug causing leak of creds"
+ * Revert "SAUCE: AppArmor: Fix cap audit_caching preemption disabling"
+ * Revert "SAUCE: AppArmor: Fix Oops when in apparmor_bprm_set_creds"
+ * Revert "SAUCE: AppArmor: Fix oops after profile removal"
+ * Revert "SAUCE: AppArmor: AppArmor disallows truncate of deleted files."
+ * Revert "SAUCE: AppArmor: AppArmor fails to audit change_hat correctly"
+ * Revert "SAUCE: AppArmor: Policy load and replacement can fail to alloc
+ mem"
+ * Revert "SAUCE: AppArmor: AppArmor wrongly reports allow perms as
+ denied"
+ * Revert "SAUCE: AppArmor: Fix mediation of "deleted" paths"
+ * Revert "SAUCE: AppArmor: Fix off by 2 error in getprocattr mem
+ allocation"
+ * Revert "SAUCE: AppArmor: Set error code after structure
+ initialization."
+ * Revert "AppArmor -- fix pstrace_may_access rename"
+ * Revert "ubuntu: AppArmor security module"
+ * Revert "SAUCE: Add config option to set a default LSM"
+ * Revert "ubuntu: fsam7400 -- sw kill switch driver"
+ * Revert "[Config] fsam7400 -- enable"
+ * Revert "[Config] AUFS -- enable"
+ * Revert "ubuntu: AUFS -- aufs2-30 20090727"
+ * Revert "ubuntu: AUFS -- export various core functions -- fixes"
+ * Revert "ubuntu: AUFS -- export various core functions"
+ * Revert "[Config] ubuntu/iscsitarget -- disable"
+ * Revert "[Config] iscsitarget -- enable"
+ * Revert "ubuntu: iscsitarget -- SVN revision r214"
+ * update Vcs-Git to point to the correct repository
+ - LP: #493589
+ * update build environment overrides to lucid
+ - LP: #493589
+ * [Config] enable CONFIG_DEVTMPFS
+ * [Config] update all configs following AppArmor 2009-12-08 update
+ * SAUCE: isapnp_init: make isa PNP scans occur async
+ * [Config] fsam7400 -- enable
+ * [Config] omnibook -- enable
+ * [Config] cleanup CONFIG_AUDIT
+ * ubuntu: AUFS -- export various core functions (aufs2-base.patch)
+ * ubuntu: AUFS -- export various core functions (aufs2-standalone.patch)
+ * ubuntu: AUFS -- aufs2 20091209
+ * [Config] AUFS -- enable
+ * [Config] iscsitarget -- enable
+
+ [ Arjan van de Ven ]
+
+ * SAUCE: KMS: cache the EDID information of the LVDS
+
+ [ Colin Watson ]
+
+ * bnx2: update d-i firmware filenames
+ - LP: #494052
+ * add cdc_ether to nic-usb-modules udeb
+ - LP: #495060
+
+ [ John Johansen ]
+
+ * ubuntu: AppArmor -- mainline 2009-10-08
+
+ [ Manoj Iyer ]
+
+ * ubuntu: fsam7400 -- kill switch for Fujitsu Siemens Amilo M 7400
+ * ubuntu: omnibook -- support Toshiba (HP) netbooks
+ * ubuntu: iscsitarget --- version 1.4.19
+ - LP: #494693
+
+ [ Surbhi Palande ]
+
+ * SAUCE: Make populate_rootfs asynchronous
+
+ [ Tim Gardner ]
+
+ * Parallelize flavour builds and packaging
+ * [Config] Enable CONFIG_KSM
+
+ [ Upstream Kernel Changes ]
+
+ * Config option to set a default LSM
+ * LSM: Add security_path_chroot().
+ * LSM: Add security_path_chroot().
+ * LSM: Move security_path_chmod()/security_path_chown() to after
+ mutex_lock().
+ * ext4: Fix insufficient checks in EXT4_IOC_MOVE_EXT
+
+ -- Andy Whitcroft <apw@canonical.com> Fri, 11 Dec 2009 17:45:19 +0000
+
+linux (2.6.32-7.10) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * [Config] disable CONFIG_THUMB2_KERNEL to fix arm FTBFS
+
+ -- Andy Whitcroft <apw@canonical.com> Sun, 06 Dec 2009 12:56:48 +0000
+
+linux (2.6.32-7.9) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * SAUCE: set /proc/acpi/video/*/DOS to 4 by default
+ - LP: #458982
+ * SAUCE: ensure vga16fb loads if no other driver claims the VGA device
+ * [Config] update configs following versatile switch to V7
+ * rebased to v2.6.32
+ * [Config] update configs following rebase to v2.6.32
+ * [Config] update ports configs following rebase to v2.6.32
+ * SAUCE: default ATI Radeon KMS to off until userspace catches up
+
+ [ Arjan van de Ven ]
+
+ * SAUCE: vfs: Add a trace point in the mark_inode_dirty function
+
+ [ Leann Ogasawara ]
+
+ * [SCSI] megaraid_sas: remove sysfs poll_mode_io world writeable
+ permissions
+ - CVE-2009-3939
+
+ [ Loic Minier ]
+
+ * SAUCE: select a v7 CPU for versatile
+
+ [ Takashi Iwai ]
+
+ * SAUCE: ALSA: hda - Add power on/off counter
+
+ [ Upstream changes ]
+
+ * rebased to v2.6.32
+
+ -- Andy Whitcroft <apw@canonical.com> Fri, 04 Dec 2009 10:44:50 +0000
+
+linux (2.6.32-6.8) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * [Config] disable SSB devices for armel
+
+ -- Andy Whitcroft <apw@canonical.com> Sat, 28 Nov 2009 12:16:40 +0000
+
+linux (2.6.32-6.7) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Revert "SAUCE: default ATI Radeon KMS to off until userspace catches up"
+ * Revert "SAUCE: Dell XPS710 reboot quirk"
+ * Revert "SAUCE: Link acpi-cpufreq.o first"
+ * Revert "SAUCE: LPIA Logical reset of USB port on resume"
+ * Revert "SAUCE: LPIA Reboot fix for Intel Crownbeach development boards"
+ * Revert "SAUCE: Enable HDMI audio codec on Studio XPS 1340"
+ * Revert "SAUCE: Dell laptop digital mic does not work, PCI 1028:0271"
+ * Revert "Add Dell Dimension 9200 reboot quirk"
+ * Revert "SAUCE: Correctly blacklist Thinkpad r40e in ACPI"
+ * Revert "SAUCE: tulip: Define ULI PCI ID's"
+ * Revert "SAUCE: Lower warning level of some PCI messages"
+ * Revert "mac80211: fix two issues in debugfs"
+ Drop a number of known redundant commits as identified in the Ubuntu
+ delta review blueprint.
+
+ * reenable armel versatile flavour
+ * [Config] disable CONFIG_USB_DEVICEFS
+
+ [ Tim Gardner ]
+
+ * [Config] udeb: Add squashfs to fs-core-modules
+ - LP: #352615
+ * [Config] Create a real squashfs udeb
+ - LP: #352615
+
+
+ -- Andy Whitcroft <apw@canonical.com> Fri, 27 Nov 2009 17:31:16 +0000
+
+linux (2.6.32-5.6) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * rebase to v2.6.32-rc8
+ * update configs following rebase to v2.6.32-rc8
+ * update ports configs since rebase to v2.6.32-rc8
+ * [Config] enable cgroup options
+ - LP: #480739
+
+ [ Upstream Kernel Changes ]
+
+ * rebase to v2.6.32-rc8
+
+ -- Andy Whitcroft <apw@canonical.com> Mon, 23 Nov 2009 11:16:14 +0000
+
+linux (2.6.32-4.5) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * [Config] SERIO_LIBPS2 and SERIO_I8042 must match
+ * rebase to v2.6.32-rc7
+ * resync with Karmic proposed
+
+ [ John Johansen ]
+
+ * SAUCE: AppArmor: Fix oops after profile removal
+ - LP: #475619
+ * SAUCE: AppArmor: Fix Oops when in apparmor_bprm_set_creds
+ - LP: #437258
+ * SAUCE: AppArmor: Fix cap audit_caching preemption disabling
+ - LP: #479102
+ * SAUCE: AppArmor: Fix refcounting bug causing leak of creds
+ - LP: #479115
+ * SAUCE: AppArmor: Fix oops there is no tracer and doing unsafe
+ transition.
+ - LP: #480112
+
+ [ Ubuntu Changes ]
+
+ * resync with Karmic proposed (ddbc670a86a3dee18541a3734149f250ff307adf)
+
+ [ Upstream Kernel Changes ]
+
+ * rebase to v2.6.32-rc7
+
+ -- Andy Whitcroft <apw@canonical.com> Fri, 13 Nov 2009 11:35:13 +0000
+
+linux (2.6.32-3.4) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * [Config] SERIO_LIBPS2 and SERIO_I8042 must match
+ * [Upstream] add local prefix to oss local change_bits
+
+ [ Upstream Kernel Changes ]
+
+ * mtd/maps: gpio-addr-flash: pull in linux/ headers rather than asm/
+ * mtd/maps: gpio-addr-flash: depend on GPIO arch support
+
+ -- Andy Whitcroft <apw@canonical.com> Wed, 11 Nov 2009 14:47:04 +0000
+
+linux (2.6.32-3.3) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * rebase to v2.6.32-rc6
+ * [Config] update configs following rebase to v2.6.32-rc6
+ * [Config] update ports configs following rebase to v2.6.32-rc6
+ * resync with Karmic Ubuntu-2.6.31-15.49
+ * [Config] add module ignores for broken drivers
+
+ [ John Johansen ]
+
+ * SAUCE: AppArmor: AppArmor wrongly reports allow perms as denied
+ - LP: #453335
+ * SAUCE: AppArmor: Policy load and replacement can fail to alloc mem
+ - LP: #458299
+ * SAUCE: AppArmor: AppArmor fails to audit change_hat correctly
+ - LP: #462824
+ * SAUCE: AppArmor: AppArmor disallows truncate of deleted files.
+ - LP: #451375
+
+ [ Kees Cook ]
+
+ * SAUCE: Fix nx_enable reporting
+ - LP: #454285
+
+ [ Scott James Remnant ]
+
+ * Revert "SAUCE: trace: add trace_event for the open() syscall"
+ * SAUCE: trace: add trace events for open(), exec() and uselib()
+ - LP: #462111
+
+ [ Stefan Bader ]
+
+ * SAUCE: Fix sub-flavour script to not stop on missing directories
+ - LP: #453073
+
+ [ Ubuntu Changes ]
+
+ * resync with Karmic Ubuntu-2.6.31-15.49
+
+ [ Upstream Kernel Changes ]
+
+ * rebase to v2.6.32-rc6
+ - LP: #464552
+
+ -- Andy Whitcroft <apw@canonical.com> Tue, 10 Nov 2009 15:00:57 +0000
+
+linux (2.6.32-2.2) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * install the full changelog with the binary package
+ * changelog -- explicitly note rebases and clean history
+ * reinstate armel.mk with no flavours
+ - LP: #449637
+ * [Upstream] block: silently error unsupported empty barriers too
+ - LP: #420423
+ * [Config] udate configs following karmic resync
+ * [Config] update ports configs following karmic resync
+ * [Upstream] lirc -- follow removal of .id element
+
+ [ Colin Watson ]
+
+ * Use section 'admin' rather than 'base'
+ * Add more e100 firmware to nic-modules
+ - LP: #451872
+ * Add qla1280 firmware to scsi-modules
+ - LP: #381037
+
+ [ John Johansen ]
+
+ * SAUCE: AppArmor: Set error code after structure initialization.
+ - LP: #427948
+ * SAUCE: AppArmor: Fix off by 2 error in getprocattr mem allocation
+ - LP: #446595
+ * SAUCE: AppArmor: Fix mediation of "deleted" paths
+
+ [ Kees Cook ]
+
+ * SAUCE: [x86] fix report of cs-limit nx-emulation
+ - LP: #454285
+
+ [ Leann Ogasawara ]
+
+ * SAUCE: (drop after 2.6.31) input: Add support for filtering input
+ events
+ - LP: #430809
+ * SAUCE: (drop after 2.6.31) dell-laptop: Trigger rfkill updates on wifi
+ toggle switch press
+ - LP: #430809
+
+ [ Luke Yelavich ]
+
+ * SAUCE: Add sr_mod to the scsi-modules udeb for powerpc
+ * [Config] Add sd_mod to scsi-modules udeb for powerpc
+
+ [ Mario Limonciello ]
+
+ * SAUCE: Update to LIRC 0.8.6
+ - LP: #432678
+ * SAUCE: dell-laptop: Store the HW switch status internally rather than
+ requerying every time
+ - LP: #430809
+ * SAUCE: dell-laptop: Blacklist machines not supporting dell-laptop
+ - LP: #430809
+
+ [ Stefan Bader ]
+
+ * [Upstream] acerhdf: Limit modalias matching to supported boards
+ - LP: #435958
+
+ [ Tim Gardner ]
+
+ * [Upstream] i915: Fix i2c init message
+ - LP: #409361
+ * [Config] Add sym53c8xx.ko to virtual sub-flavour
+ - LP: #439415
+ * [Config] Add d101m_ucode.bin to d-i/firmware/nic-modules
+ - LP: #439456
+ * [Config] Set default I/O scheduler back to CFQ for desktop flavours
+ - LP: #381300
+ * SAUCE: Created MODULE_EXPORT/MODULE_IMPORT macros
+ - LP: #430694
+ * SAUCE: Use MODULE_IMPORT macro to tie intel_agp to i915
+ - LP: #430694
+ * [Config] CONFIG_GFS2_FS_LOCKING_DLM=y
+ - LP: #416325
+ * SAUCE: Fix MODULE_IMPORT/MODULE_EXPORT
+ - LP: #430694
+ * SAUCE: Raise the default console 'quiet' level to 2
+ * [Config] CONFIG_X86_PAT=y
+ * [Config] Add armel arch to linux-libc-dev arches.
+ - LP: #449637
+ * [Config] CONFIG_X86_MCE
+ * [Upstream] (drop after 2.6.31) Input: synaptics - add another Protege
+ M300 to rate blacklist
+ - LP: #433801
+
+ [ Upstream Kernel Changes ]
+
+ * sgi-gru: Fix kernel stack buffer overrun, CVE-2009-2584
+ * drm/i915: Fix FDI M/N setting according with correct color depth
+ - LP: #416792
+
+ -- Andy Whitcroft <apw@canonical.com> Thu, 22 Oct 2009 16:53:33 +0100
+
+linux (2.6.32-1.1) lucid; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * rebase to v2.6.32-rc3
+ * [Config] update configs following rebase to 2.6.32-rc3
+ * [Config] update ports configs following rebase to 2.6.32-rc3
+ * AppArmor -- fix pstrace_may_access rename
+ * staging/android -- disable
+ * ubuntu: dm-raid-45 -- update to compile with 2.6.32
+ * ubuntu: drbd -- disable
+ * staging/comdi -- disable
+ * staging/go7007 -- disable
+ * [Config] staging/winbond -- disable
+ * [Config] ubuntu/iscsitarget -- disable
+ * [d-i] cbc and ecb are builtin make them optional in udebs
+ * rebase to v2.6.32-rc5
+ * [Config] update configs following rebase to v2.6.32-rc5
+ * [Config] update ports configs following rebase to v2.6.31-rc5
+
+ [ Tim Gardner ]
+
+ * [Config] Add cpio as a build dependency.
+
+ [ Upstream Kernel Changes ]
+
+ * rebase to v2.6.32-rc3
+ * rebase to v2.6.32-rc5
+
+ -- Andy Whitcroft <apw@canonical.com> Mon, 05 Oct 2009 15:48:58 +0100
+
+linux (2.6.31-11.37) karmic; urgency=low
+
+ [ Tim Gardner ]
+
+ * [Config] Increase kernel log buffer to 256K for amd64 flavours
+ - LP: #424810
+ * [Config] Set HZ=100 for amd64 flavours
+ - LP: #438234
+ * [Upstream] e1000e: Emit notice instead of an error when
+ pci_enable_pcie_error_reporting() fails
+ - LP: #436370
+
+ [ Upstream Kernel Changes ]
+
+ * n_tty: honor opost flag for echoes
+ * n_tty: move echoctl check and clean up logic
+ - LP: #438310
+
+ * Revert "[Upstream] drm/i915: Check that the relocation points to within
+ the target" - Use upstream cherry-pick.
+ * drm/i915: Check that the relocation points to within the target
+ - LP: #429241
+
+ * drm/i915: fix tiling on IGDNG
+ * drm/i915: add B43 chipset support
+ * agp/intel: Add B43 chipset support
+ Intel request from kernel team mailing list.
+
+ * HID: completely remove apple mightymouse from blacklist
+ - LP: #428111
+
+ -- Tim Gardner <tim.gardner@canonical.com> Mon, 28 Sep 2009 11:47:29 -0600
+
+linux (2.6.31-11.36) karmic; urgency=low
+
+ [ Brian Rogers ]
+
+ * SAUCE: (drop after 2.6.31) em28xx: ir-kbd-i2c init data needs a
+ persistent object
+ * SAUCE: (drop after 2.6.31) saa7134: ir-kbd-i2c init data needs a
+ persistent object
+
+ [ Takashi Iwai ]
+
+ * [Upstream] ALSA: hda - Add another entry for Nvidia HDMI device
+ - LP: #416482
+
+ [ Tyler Hicks ]
+
+ * SAUCE: (drop after 2.6.31) eCryptfs: Prevent lower dentry from going
+ negative during unlink
+
+ [ Upstream Kernel Changes ]
+
+ * sg: fix oops in the error path in sg_build_indirect()
+ * mpt2sas : Rescan topology from Interrupt context instead of work thread
+ * mpt2sas: Prevent sending command to FW while Host Reset
+ * mpt2sas: setting SDEV into RUNNING state from Interrupt context
+ * mpt2sas: Raid 10 Volume is showing as Raid 1E in dmesg
+ * SCSI: fix oops during scsi scanning
+ * SCSI: libsrp: fix memory leak in srp_ring_free()
+ * cfg80211: fix looping soft lockup in find_ie()
+ * ath5k: write PCU registers on initial reset
+ * binfmt_elf: fix PT_INTERP bss handling
+ * TPM: Fixup boot probe timeout for tpm_tis driver
+ * md: Fix "strchr" [drivers/md/dm-log-userspace.ko] undefined!
+ * x86/amd-iommu: fix broken check in amd_iommu_flush_all_devices
+ * fix undefined reference to user_shm_unlock
+ * perf_counter: Fix buffer overflow in perf_copy_attr()
+ * perf_counter: Start counting time enabled when group leader gets
+ enabled
+ * powerpc/perf_counters: Reduce stack usage of power_check_constraints
+ * powerpc: Fix bug where perf_counters breaks oprofile
+ * powerpc/ps3: Workaround for flash memory I/O error
+ * block: don't assume device has a request list backing in nr_requests
+ store
+ * agp/intel: remove restore in resume
+ * ALSA: cs46xx - Fix minimum period size
+ * ASoC: Fix WM835x Out4 capture enumeration
+ * sound: oxygen: work around MCE when changing volume
+ * mlx4_core: Allocate and map sufficient ICM memory for EQ context
+ * perf stat: Change noise calculation to use stddev
+ * x86: Fix x86_model test in es7000_apic_is_cluster()
+ * x86/i386: Make sure stack-protector segment base is cache aligned
+ * PCI: apply nv_msi_ht_cap_quirk on resume too
+ * x86, pat: Fix cacheflush address in change_page_attr_set_clr()
+ * ARM: 5691/1: fix cache aliasing issues between kmap() and kmap_atomic()
+ with highmem
+ * KVM guest: do not batch pte updates from interrupt context
+ * KVM: Fix coalesced interrupt reporting in IOAPIC
+ * KVM: VMX: Check cpl before emulating debug register access
+ * KVM guest: fix bogus wallclock physical address calculation
+ * KVM: x86: Disallow hypercalls for guest callers in rings > 0
+ * KVM: VMX: Fix cr8 exiting control clobbering by EPT
+ * KVM: x86 emulator: Implement zero-extended immediate decoding
+ * KVM: MMU: make __kvm_mmu_free_some_pages handle empty list
+ * KVM: x86 emulator: fix jmp far decoding (opcode 0xea)
+ * KVM: limit lapic periodic timer frequency
+ * libata: fix off-by-one error in ata_tf_read_block()
+ * PCI quirk: update 82576 device ids in SR-IOV quirks list
+ * PCI: Unhide the SMBus on the Compaq Evo D510 USDT
+ * powerpc/pseries: Fix to handle slb resize across migration
+ * Linux 2.6.31.1
+
+ -- Tim Gardner <tim.gardner@canonical.com> Thu, 24 Sep 2009 13:04:28 -0600
+
+linux (2.6.31-10.35) karmic; urgency=low
+
+ [ Amit Kucheria ]
+
+ * Disable CONFIG_UEVENT_HELPER_PATH
+
+ [ Andy Whitcroft ]
+
+ * [Config] Enable CONFIG_USB_GADGET_DUMMY_HCD
+ * remove the tlsup driver
+ * remove lmpcm logitech driver support
+
+ [ Bryan Wu ]
+
+ * Add 3 missing files to prerm remove file list
+ - LP: #345623, #415832
+
+ [ Chris Wilson ]
+
+ * [Upstream] drm/i915: Check that the relocation points to within the
+ target
+ - LP: #429241
+
+ [ Luke Yelavich ]
+
+ * [Config] Set CONFIG_EXT4_FS=y on ports architectures
+
+ [ Manoj Iyer ]
+
+ * SAUCE: Added quirk to recognize GE0301 3G modem as an interface.
+ - LP: #348861
+
+ [ Tim Gardner ]
+
+ * Revert "[Upstream] ACPI: Add Thinkpad W500, W700, & W700ds to OSI(Linux) white-list"
+ * Revert "[Upstream] ACPI: Add Thinkpad R400 & Thinkpad R500 to OSI(Linux) white-list"
+ * Revert "[Upstream] ACPI: Add Thinkpad X300 & Thinkpad X301 to OSI(Linux) white-list"
+ * Revert "[Upstream] ACPI: Add Thinkpad X200, X200s, X200t to OSI(Linux) white-list"
+ * Revert "[Upstream] ACPI: Add Thinkpad T400 & Thinkpad T500 to OSI(Linux) white-list"
+ Upstream suggests that this is not the right approach.
+
+ * [Config] Set default I/O scheduler to DEADLINE
+ CFQ seems to have some load related problems which are often exacerbated by sreadahead.
+ - LP: #381300
+
+ [ ubuntu@tjworld.net ]
+
+ * SAUCE: ipw2200: Enable LED by default
+ - LP: #21367
+
+ [ Upstream Kernel Changes ]
+
+ * ALSA: hda - Add support for new AMD HD audio devices
+ - LP: #430564
+
+ -- Andy Whitcroft <apw@canonical.com> Wed, 16 Sep 2009 15:37:49 +0100
+
+linux (2.6.31-10.34) karmic; urgency=low
+
+ [ Ted Tso ]
+
+ * [Upstream] ext3: Don't update superblock write time when filesystem is
+ read-only
+ - LP: #427822
+
+ -- Tim Gardner <tim.gardner@canonical.com> Tue, 15 Sep 2009 16:00:45 -0600
+
+linux (2.6.31-10.33) karmic; urgency=low
+
+ [ Leann Ogasawara ]
+
+ * [Upstream] dvb-usb: fix tuning with Cinergy T2
+ - LP: #421258
+
+ [ Tim Gardner ]
+
+ * [Config] Unconditionally copy files from sub-flavours lists.
+ (really, really fix it this time)
+ - LP: #423426
+ * [Config] Set CONFIG_CACHEFILES=m for all flavours
+
+ [ Upstream Kernel Changes ]
+
+ * ext4: Don't update superblock write time when filesystem is read-only
+ - LP: #427822
+
+ -- Tim Gardner <tim.gardner@canonical.com> Tue, 15 Sep 2009 07:50:21 -0600
+
+linux (2.6.31-10.32) karmic; urgency=low
+
+ [ Eric Miao ]
+
+ * [Config] enable module support for memory stick
+ - LP: #159951
+
+ [ Tim Gardner ]
+
+ * [Config] Unconditionally copy files from sub-flavours lists.
+ - LP: #423426
+
+ -- Tim Gardner <tim.gardner@canonical.com> Thu, 10 Sep 2009 15:57:55 -0600
+
+linux (2.6.31-10.31) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * rebase to v2.6.31 final
+
+ [ Colin Watson ]
+
+ * [Config] Recommend grub-pc in linux-image
+ - LP: #385741
+
+ [ Ike Panhc ]
+
+ * [Upstream] Pull latest update of lenovo-sl-laptop
+
+ [ Peter Feuerer ]
+
+ * [Upstream] (drop after 2.6.31) acerhdf: fix fan control for AOA150
+ model
+ - LP: #426691
+
+ [ Tim Gardner ]
+
+ * [Config] De-macro some package names.
+
+ [ Upstream Changes ]
+
+ * rebase to 2.6.31 final.
+
+ -- Andy Whitcroft <apw@canonical.com> Thu, 10 Sep 2009 09:38:10 +0100
+
+linux (2.6.31-10.30) karmic; urgency=low
+
+ [ Amit Kucheria ]
+
+ * [Config] Enable CONFIG_USB_DEVICEFS
+ - LP: #417748
+ * [Config] Populate the config-update template a bit more
+
+ [ Andy Whitcroft ]
+
+ * rebase to v2.6.31-rc9
+ * [Config] update configs following rebase to v2.6.31-rc9
+ * [Config] update ports configs following rebase to v2.6.31-rc9
+
+ [ Colin Ian King ]
+
+ * SAUCE: wireless: hostap, fix oops due to early probing interrupt
+ - LP: #254837
+
+ [ Jerone Young ]
+
+ * [Upstream] ACPI: Add Thinkpad T400 & Thinkpad T500 to OSI(Linux)
+ white-list
+ - LP: #281732
+ * [Upstream] ACPI: Add Thinkpad X200, X200s, X200t to OSI(Linux)
+ white-list
+ - LP: #281732
+ * [Upstream] ACPI: Add Thinkpad X300 & Thinkpad X301 to OSI(Linux)
+ white-list
+ - LP: #281732
+ * [Upstream] ACPI: Add Thinkpad R400 & Thinkpad R500 to OSI(Linux)
+ white-list
+ - LP: #281732
+ * [Upstream] ACPI: Add Thinkpad W500, W700, & W700ds to OSI(Linux)
+ white-list
+ - LP: #281732
+
+ [ John Johansen ]
+
+ * SAUCE: AppArmor: Fix profile attachment for regexp based profile names
+ - LP: #419308
+ * SAUCE: AppArmor: Return the correct error codes on profile
+ addition/removal
+ - LP: #408473
+ * SAUCE: AppArmor: Fix OOPS in profile listing, and display full list
+ - LP: #408454
+ * SAUCE: AppArmor: Fix mapping of pux to new internal permission format
+ - LP: #419222
+ * SAUCE: AppArmor: Fix change_profile failure
+ - LP: #401931
+ * SAUCE: AppArmor: Tell git to ignore generated include files
+ - LP: #419505
+
+ [ Stefan Bader ]
+
+ * [Upstream] acpi: video: Loosen strictness of video bus detection code
+ - LP: #333386
+ * SAUCE: Remove ov511 driver from ubuntu subdirectory
+
+ [ Tim Gardner ]
+
+ * [Config] Exclude char-modules from non-x86 udeb creation
+ * SAUCE: Notify the ACPI call chain of AC events
+ * [Config] CONFIG_SATA_VIA=m
+ - LP: #403385
+ * [Config] Build in all phylib support modules.
+ * [Config] Don't fail when sub-flavour files are missing
+ - LP: #423426
+ * [Config] Set CONFIG_LSM_MMAP_MIN_ADDR=0
+ - LP: #423513
+
+ [ Upstream ]
+
+ * Rebased against v2.6.31-rc9
+
+ -- Andy Whitcroft <apw@canonical.com> Mon, 07 Sep 2009 11:33:45 +0100
+
+linux (2.6.31-9.29) karmic; urgency=low
+
+ [ Leann Ogasawara ]
+
+ * [Upstream] agp/intel: support for new chip variant of IGDNG mobile
+ - LP: #419993
+ * [Config] d-i/modules: Add new char-modules file, initialize with
+ intel-agp
+ - LP: #420605
+
+ [ Upstream ]
+
+ * Rebased against 2.6.31-rc8 plus some inotify regression patches:
+ up through git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
+ adda766193ea1cf3137484a9521972d080d0b7af.
+
+ -- Tim Gardner <tim.gardner@canonical.com> Fri, 28 Aug 2009 06:31:30 -0600
+
+linux (2.6.31-8.28) karmic; urgency=low
+
+ [ Ike Panhc ]
+
+ * [Config] Let nic-shared-modules depends on crypto-modules
+ - LP: #360966
+
+ [ Leann Ogasawara ]
+
+ * [Upstream] (drop after 2.6.31) drm/i915: increase default latency
+ constant
+ - LP: #412492
+
+ [ Mario Limonciello ]
+
+ * [Upstream]: (drop after 2.6.31) dell-laptop: don't change softblock
+ status if HW switch is disabled
+ - LP: #418721
+ * [Upstream]: (drop after 2.6.31) compal-laptop: Add support for known
+ Compal made Dell laptops
+ * [Upstream]: (drop after 2.6.31) compal-laptop: Replace sysfs support
+ with rfkill support
+
+ [ Tim Gardner ]
+
+ * [Config] Add acpiphp to virtual sub-flavour
+ - LP: #364916
+ * Drop KSM patch set for now because of instabilities with encrypted swap.
+ - LP: #418781
+
+ -- Tim Gardner <tim.gardner@canonical.com> Wed, 26 Aug 2009 08:14:26 -0600
+
+linux (2.6.31-7.27) karmic; urgency=low
+
+ [ Tim Gardner ]
+
+ * [Config] updateconfigs updateportsconfigs after 2.6.31-rc7 rebase
+ * SAUCE: (drop after 2.6.31) Added KSM from mmotm-2009-08-20-19-18
+ Replaces previous ksm patches from 2.6.31-6.25
+ * [Config] KSM=y
+
+ [ Upstream ]
+
+ * Rebased against v2.6.31-rc7
+
+ -- Tim Gardner <tim.gardner@canonical.com> Sat, 22 Aug 2009 20:32:11 -0600
+
+linux (2.6.31-6.26) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * [Config] enable CONFIG_AUFS_BR_RAMFS
+ - LP: #414738
+ * split out debian directory ready for abstraction
+ * add printdebian target to find branch target
+ * abstracted debian -- debian/files is not abstracted
+ * abstracted debian -- packages must be built in debian/<pkg>
+ * abstracted debian -- kernel-wedge needs to work in debian/
+ * abstracted debian -- ensure we install the copyright file
+ * abstracted-debian -- drop the debian directories from headers
+ * abstracted-debian -- drop the debian directories from headers part 2
+ * SAUCE: ubuntu-insert-changes -- follow abstracted debian
+ * [Upstream] aoe: ensure we initialise the request_queue correctly V2
+ - LP: #410198
+
+ [ Luke Yelavich ]
+
+ * [Config] Ports: Disable CONFIG_CPU_FREQ_DEBUG on powerpc-smp
+ * [Config] Ports: Re-enable windfarm modules on powerpc64-smp
+ - LP: #413150
+ * [Config] Ports: Build all cpu frequency scaling governors into ports
+ kernels
+ * [Config] Ports: Build ext2 and ext3 modules into ports kernels
+ * [Config] Ports: CONFIG_PACKET=y for all ports kernels
+ * [Config] Ports: Enable PS3 network driver
+
+ [ Stefan Bader ]
+
+ * abstracted debian -- call $(DEBIAN)/rules using make
+
+ [ Tim Gardner ]
+
+ * [Config] Abstract the debian directory
+ * SAUCE: Improve error reporting in postinst
+ - LP: #358564
+
+ -- Tim Gardner <tim.gardner@canonical.com> Sun, 16 Aug 2009 20:33:28 -0600
+
+linux (2.6.31-6.25) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * script to generate Ubuntu changes from changelog
+ * [Config] standardise ANDROID options
+ * [Config] standardise CONFIG_ATM as module
+ * [Config] standardise CONFIG_LIB80211 as module
+ * [Config] disable CONFIG_PRINT_QUOTA_WARNING
+ * [Config] set CONFIG_CRAMFS as module
+ * [Config] enable CONFIG_DAB and modules
+ * [Config] set CONFIG_MAC80211_HWSIM as module
+ * [Config] set CONFIG_NET_CLS_FLOW as module
+ * [Config] set CONFIG_NF_CONNTRACK_SANE as module
+ * [Config] set CONFIG_NF_CT_PROTO_DCCP as module
+ * [Config] set CONFIG_RTC_DRV_DS1511 as module
+ * [Config] set CONFIG_RTC_DRV_R9701 as module
+ * [Config] set CONFIG_RTC_DRV_S35390A as module
+ * [Config] set CONFIG_TOIM3232_DONGLE as module
+ * [Config] standardise CONFIG_USB_MIDI_GADGET as module
+ * [Config] standardise CONFIG_USB_G_PRINTER as module
+ * [Config] standardise CONFIG_USB_SERIAL_IR as module
+ * [Config] set CONFIG_USB_SERIAL_IUU as module
+ * [Config] standardise CONFIG_USB_STORAGE_CYPRESS_ATACB as module
+ * [Config] standardise CONFIG_USB_STORAGE_ONETOUCH as module
+ * cleanup remains of dm-loop
+ * drop thinkpad ec and smapi support
+ * drop appleir
+ * [Config] update configs following rebase to v2.6.31-rc6
+ * rebase to v2.6.31-rc6
+
+ [ Hugh Dickins ]
+
+ * SAUCE: ksm patch 1, drop after 2.6.31
+ * SAUCE: ksm patch 2, drop after 2.6.31
+ * SAUCE: ksm patch 3, drop after 2.6.31
+ * SAUCE: ksm patch 4, drop after 2.6.31
+ * SAUCE: ksm patch 5, drop after 2.6.31
+ * SAUCE: ksm patch 7, drop after 2.6.31
+
+ [ Izik Eidus ]
+
+ * SAUCE: ksm patch 0, drop after 2.6.31
+ * SAUCE: ksm patch 6, drop after 2.6.31
+ * SAUCE: ksm patch 8, drop after 2.6.31
+ * SAUCE: ksm patch 9, drop after 2.6.31
+
+ [ Luke Yelavich ]
+
+ * [Config] Ports: Re-add PS3 modules to udebs
+
+ [ Michael Casadevall ]
+
+ * [Config] Update SPARC config and d-i files to reflect what can be built
+
+ [ Tim Gardner ]
+
+ * [Config] Removed armel package support
+ * [Config] Enabled CONFIG_KSM=y
+
+ [ Upstream Kernel Changes ]
+
+ * Rebased against v2.6.31-rc6
+ * ARM: Cleanup: Revert "ARM: Add more cache memory types macros"
+ * ARM: Cleanup: Revert "Do not use OOB with MLC NAND"
+ * ARM: Cleanup: Revert "ARM: Make ARM arch aware of ubuntu/ drivers"
+ * ARM: Cleanup: Revert "ARM: IMX51: Make video capture drivers compile"
+ * ARM: Cleanup: Revert "ARM: IMX51: Fix isl29003 HWMON driver for i2c
+ changes"
+ * ARM: Cleanup: Revert "ARM: IMX51: IPU irq handler deadlock fix"
+ * ARM: Cleanup: Revert "ARM: IMX51: Babbage 2.5 needs a different system
+ revision"
+ * ARM: Cleanup: Revert "ARM: IMX51: Compile-in the IMX51 cpufreq driver
+ by default"
+ * ARM: Cleanup: Revert "ARM: IMX51: Enable ZONE_DMA for ARCH_MXC"
+ * ARM: Cleanup: Revert "ARM: IMX51: Make ARCH_MXC auto-enable
+ ARCH_MXC_CANONICAL"
+ * ARM: Cleanup: Revert "ARM: IMX51: Unconditionally disable
+ CONFIG_GPIOLIB"
+ * ARM: Cleanup: Revert "ARM: IMX51: Minimal changes for USB to work on
+ 2.6.31"
+ * ARM: Cleanup: Revert "ARM: IMX51: Fix plat-mxc/timer.c to handle imx51"
+ * ARM: Cleanup: Revert "ARM: IMX51: Make it compile."
+ * ARM: Cleanup: Revert "ARM: IMX51: Clean-up the craziness of including
+ mxc_uart.h _everywhere_"
+ * ARM: Cleanup: Revert "ARM: IMX51: Move board-mx51* header files to the
+ correct location"
+ * ARM: Cleanup: Revert "ARM: IMX51: Changed from snd_card_new to
+ snd_card_create"
+ * ARM: Cleanup: Revert "ARM: IMX51: Fix up merge error in Kconfig"
+ * ARM: Cleanup: Revert "ARM: IMX51: mxc_timer_init prototype"
+ * ARM: Cleanup: Revert "ARM: IMX51: Removed the mxc_gpio_port structure."
+ * ARM: Cleanup: Revert "ARM: IMX51: Added external declaration for
+ mxc_map_io."
+ * ARM: Cleanup: Revert "ARM: IMX51: Get to bus_id by calling dev_name."
+ * ARM: Cleanup: Revert "ARM: IMX51: Get to bus_id by calling dev_name."
+ * ARM: Cleanup: Revert "ARM: IMX51: snd_soc_machine structure replaced
+ with snd_soc_card."
+ * ARM: Cleanup: Revert "ARM: IMX51: codec structure was moved to the card
+ structure"
+ * ARM: Cleanup: Revert "ARM: IMX51: Hack to add defines for
+ DMA_MODE_READ/WRITE/MASK"
+ * ARM: Cleanup: Revert "ARM: IMX51: Add SoC and board support for
+ Freescale mx51 platform"
+ * Driver core: add new device to bus's list before probing
+ * [Upstream] (drop after 2.6.31) ALSA: hda - Reduce click noise at
+ power-saving
+ - LP: #381693, #399750, #380892
+
+ -- Andy Whitcroft <apw@canonical.com> Fri, 14 Aug 2009 11:32:23 +0100
+
+linux (2.6.31-5.24) karmic; urgency=low
+
+ [ Amit Kucheria ]
+
+ * ARM: IMX51: Make video capture drivers compile
+ * [Config] IMX51: Config updates
+
+ [ Andy Whitcroft ]
+
+ * remove leftovers of dm-bbr
+
+ [ Leann Ogasawara ]
+
+ * Add pata_cs5535 to pata-modules
+ - LP: #318805
+
+ [ Luke Yelavich ]
+
+ * [Config] CONFIG_PPC64=y for powerpc64-smp
+ * [Config] Set the maximum number of CPUs to 1024 for powerpc64-smp
+ * [Config] CONFIG_PPC_PS3=y for powerpc64-smp
+ * [Config] CONFIG_PPC_MAPLE=y on powerpc64-smp
+ * [Config] CONFIG_PPC_PASEMI=y on powerpc64-smp
+ * [Config] CONFIG_CPU_FREQ_PMAC64=y on powerpc64-smp
+ * [Config] Enable all PS3 drivers in powerpc64-smp
+
+ [ Mario Limonciello ]
+
+ * LIRC -- fix lirc-i2c 2.6.31 compilation
+
+ [ Matthew Garrett ]
+
+ * [Upstream] dell-laptop: Fix rfkill state queries
+
+ [ Tim Gardner ]
+
+ * [Config] Ignore armel ABI and module changes
+ * [Config] Update configs after rebase against 2.6.31-rc5
+
+ [ Upstream ]
+
+ * Rebased to 2.6.31-rc5
+
+ -- Andy Whitcroft <apw@canonical.com> Tue, 28 Jul 2009 10:10:09 +0100
+
+linux (2.6.31-4.23) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * AUFS -- update to aufs2-30 20090727
+ * [Config] enable AUFS FUSE support
+
+ [ Luke Yelavich ]
+
+ * [Config] CONFIG_JFS_FS=m on sparc
+
+ [ Tim Gardner ]
+
+ * [Upstream] dell-laptop: Fix rfkill state setting.
+
+ -- Andy Whitcroft <apw@canonical.com> Mon, 27 Jul 2009 11:11:47 +0100
+
+linux (2.6.31-4.22) karmic; urgency=low
+
+ [ Amit Kucheria ]
+
+ * ARM: IMX51: Add SoC and board support for Freescale mx51 platform
+ * ARM: IMX51: Move board-mx51* header files to the correct location
+ * ARM: IMX51: Clean-up the craziness of including mxc_uart.h _everywhere_
+ * ARM: IMX51: Make it compile.
+ * ARM: IMX51: Unconditionally disable CONFIG_GPIOLIB
+ * ARM: IMX51: Make ARCH_MXC auto-enable ARCH_MXC_CANONICAL
+ * ARM: IMX51: Enable ZONE_DMA for ARCH_MXC
+ * ARM: IMX51: Compile-in the IMX51 cpufreq driver by default
+ * ARM: IMX51: Fix isl29003 HWMON driver for i2c changes
+ * ARM: USB: musb: Refer to musb_otg_timer_func under correct #ifdef
+ * ARM: staging: udlfb: Add vmalloc.h include
+ * UBUNTU [Config]: Bring imx51 config upto date with other flavours
+
+ [ Brad Figg ]
+
+ * ARM: IMX51: Hack to add defines for DMA_MODE_READ/WRITE/MASK
+ * ARM: IMX51: codec structure was moved to the card structure
+ * ARM: IMX51: snd_soc_machine structure replaced with snd_soc_card.
+ * ARM: IMX51: Get to bus_id by calling dev_name.
+ * ARM: IMX51: Get to bus_id by calling dev_name.
+ * ARM: IMX51: Added external declaration for mxc_map_io.
+ * ARM: IMX51: Removed the mxc_gpio_port structure.
+ * ARM: IMX51: mxc_timer_init prototype
+ * ARM: IMX51: Fix up merge error in Kconfig
+ * ARM: IMX51: Changed from snd_card_new to snd_card_create
+
+ [ Dinh Nguyen ]
+
+ * ARM: IMX51: Fix plat-mxc/timer.c to handle imx51
+ * ARM: IMX51: Minimal changes for USB to work on 2.6.31
+ * ARM: IMX51: Babbage 2.5 needs a different system revision
+ * ARM: IMX51: IPU irq handler deadlock fix
+
+ [ Tim Gardner ]
+
+ * [Config] Enabled CONFIG_CAN=m
+ - LP: #327243
+ * [Config] Enabled CONFIG_SERIAL=m
+ - LP: #397189
+
+ -- Tim Gardner <tim.gardner@canonical.com> Fri, 24 Jul 2009 06:19:10 -0600
+
+linux (2.6.31-4.21) karmic; urgency=low
+
+ [ Amit Kucheria ]
+
+ * dm-raid-4-5: Add missing brackets around test_bit()
+
+ [ John Johansen ]
+
+ * AppArmor: Fix change_profile failing lpn401931
+ * AppArmor: Fix determination of forced AUDIT messages.
+ * AppArmor: Fix oops in auditing of the policy interface offset
+
+ -- Andy Whitcroft <apw@canonical.com> Thu, 23 Jul 2009 19:18:30 +0100
+
+linux (2.6.31-4.20) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * SAUCE: iscsitarget -- update to SVN revision r214
+ * SAUCE: iscsitarget -- renable driver
+ * [Config] consolidate lpia/lpia and i386/generic configs
+ * [Config] enable CRYPTO modules for all architectures
+ * [Config] enable cryptoloop
+ * [Config] enable various filesystems for armel
+ * [Config] sync i386 generic and generic-pae
+ * [Config] add the 386 (486 processors and above) flavour
+ * [Config] re-set DEFAULT_MMAP_MIN_ADDR
+ - LP: #399914
+ * add genconfigs/genportsconfigs to extract the built configs
+ * updateconfigs -- alter concatenation order allow easier updates
+ * intelfb -- INTELFB now conflicts with DRM_I915
+ * printchanges -- rebase tree does not have stable tags use changelog
+ * AppArmor: fix argument size missmatch on 64 bit builds
+
+ [ Ike Panhc ]
+
+ * Ship bnx2x firmware in nic-modules udeb
+ - LP: #360966
+
+ [ Jeff Mahoney ]
+
+ * AppArmor: fix build failure on ia64
+
+ [ John Johansen ]
+
+ * AppArmour: ensure apparmor enabled parmater is off if AppArmor fails to
+ initialize.
+ * AppArmour: fix auditing of domain transitions to include target profile
+ information
+ * AppArmor: fix C99 violation
+ * AppArmor: revert reporting of create to write permission.
+ * SAUCE: Add config option to set a default LSM
+ * [Config] enable AppArmor by default
+ * AppArmor: Fix NULL pointer dereference oops in profile attachment.
+
+ [ Keith Packard ]
+
+ * SAUCE: drm/i915: Allow frame buffers up to 4096x4096 on 915/945 class
+ hardware
+ - LP: #351756
+
+ [ Luke Yelavich ]
+
+ * [Config] add .o files found in arch/powerpc/lib to all powerpc kernel
+ header packages
+ - LP: #355344
+
+ [ Michael Casadevall ]
+
+ * [Config] update SPARC config files to allow success build
+
+ [ Scott James Remnant ]
+
+ * SAUCE: trace: add trace_event for the open() syscall
+
+ [ Stefan Bader ]
+
+ * SAUCE: jfs: Fix early release of acl in jfs_get_acl
+ - LP: #396780
+
+ [ Tim Gardner ]
+
+ * [Upstream] Fix Soltech TA12 volume hotkeys not sending key release
+ - LP: #397499
+ * [Upstream] USB Option driver - Add USB ID for Novatel MC727/U727/USB727
+ refresh
+ - LP: #365291
+ * [Config] SSB/B44 are common across all arches/flavours.
+
+ [ Upstream ]
+
+ * Rebased to 2.6.31-rc4
+
+ -- Andy Whitcroft <apw@canonical.com> Thu, 23 Jul 2009 08:41:39 +0100
+
+linux (2.6.31-3.19) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Revert "[Config] Disabled NDISWRAPPER"
+ * ndiswrapper -- fix i386 compilation failures on cmpxchg8b
+ * AUFS -- export various core functions
+ * AUFS -- export various core functions -- fixes
+ * AUFS -- core filesystem
+ * AUFS -- track changes in v2.6.31
+ * [Config] Enable AUFS
+ * droppped 'iwl3945: do not send scan command if channel count zero' as it
+ is already upstream but failed to auto-drop on rebase.
+
+ [ Eric Paris ]
+
+ * SAUCE: fsnotify: use def_bool in kconfig instead of letting the user
+ choose
+ * SAUCE: inotify: check filename before dropping repeat events
+ * SAUCE: fsnotify: fix inotify tail drop check with path entries
+
+ -- Andy Whitcroft <apw@canonical.com> Tue, 14 Jul 2009 12:52:55 +0100
+
+linux (2.6.31-3.18) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Revert "Add splice-2.6.23.patch from AUFS to export a symbol needed by
+ AUFS"
+ * Revert "Add put_filp.patch from AUFS to export a symbol needed by AUFS"
+ * Revert "Add sec_perm-2.6.24.patch from AUFS - export
+ security_inode_permission"
+ * clear out left over AUFS files and modifications
+
+ [ Luke Yelavich ]
+
+ * [Config] Enable CONFIG_USB_ISP116X_HCD on sparc
+ * SAUCE: Explicitly include header files to allow apparmor to build on
+ powerpc
+ * [Config] Enable CONFIG_BLK_DEV_IDECD on powerpc
+
+ [ Tim Gardner ]
+
+ * [Config] Dropped ubuntu/misc/wireless/acx
+ * [Config] Disabled NDISWRAPPER until the compile issues are fixed.
+
+ [ Upstream ]
+
+ * Rebased to 2.6.31-rc3
+
+ -- Andy Whitcroft <apw@canonical.com> Fri, 10 Jul 2009 18:59:33 +0100
+
+linux (2.6.31-2.17) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * [Config] CONFIG_BLK_DEV_CRYPTOLOOP=m for sparc
+ * compcache -- remove redundant Kconfig entries part 2
+ * compcache -- clean up CCFLAGS declarations
+ * [Config] enable AppArmor
+ * AppArmor: fix operator precidence issue in as_path_link
+
+ [ John Johansen ]
+
+ * AppArmor security module
+ * AppArmor: Correct mapping of file permissions.
+ * AppArmor: Turn auditing of ptrace on
+
+ [ Luke Yelavich ]
+
+ * [Config] disable CONFIG_DM_RAID45 on powerpc
+
+ -- Andy Whitcroft <apw@canonical.com> Fri, 10 Jul 2009 15:02:05 +0100
+
+linux (2.6.31-2.16) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * compcache -- remove redundant Kconfig entries
+ added ignore and ignore.modules for all arches since the compcache update
+ changes the modules names as well as some compcache ABI values.
+
+ [ Manoj Iyer ]
+
+ * SAUCE: updated dm-raid45 module version to 2009.04.24 (2.6.30-rc3)
+ * SAUCE: update compcache version to 0.5.3
+
+ [ Tim Gardner ]
+
+ * [Config]: Fix sparc FTBS by adding ignore.modules
+
+ -- Tim Gardner <tim.gardner@canonical.com> Mon, 06 Jul 2009 13:35:29 -0600
+
+linux (2.6.31-2.15) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * SAUCE: default ATI Radeon KMS to off until userspace catches up
+ * [Config] Update configs following rebase to 2.6.31-rc2
+ * [Config] update ports configs following update to 2.6.31-rc2
+
+ [ Luke Yelavich ]
+
+ * [Config] powerpc - Disable CONFIG_RDS
+
+ [ Matt Zimmerman ]
+
+ * Rename linux-doc-PKGVER to linux-doc and clean up its description
+ - LP: #382115
+
+ [ Upstream Kernel Changes ]
+
+ * rebased to mainline 2.6.31-rc2
+
+ -- Andy Whitcroft <apw@canonical.com> Sat, 04 Jul 2009 17:39:13 +0100
+
+linux (2.6.31-1.14) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * update ndiswrapper to 1.55
+ * remove leftovers of gfs
+ * [Config] powerpc: enable CONFIG_PPC_DISABLE_WERROR
+
+ [ Luke Yelavich ]
+
+ * [Config] re-enable and build the ide-pmac driver into powerpc kernels
+ * [Config] Build the ServerWorks Frodo / Apple K2 SATA driver into the
+ kernel
+
+ [ Manoj Iyer ]
+
+ * Remove snd-bt-sco ubuntu driver
+
+ [ Michael Casadevall ]
+
+ * [Config] updates ia64 config and d-i folders to allow succesful build
+ * [Config] Update powerpc and sparc for 2.6.31
+
+ [ Upstream Kernel Changes ]
+
+ * intel-iommu: fix Identity Mapping to be arch independent
+ - LP: #384695
+ * ACPI: video: prevent NULL deref in acpi_get_pci_dev()
+
+ -- Andy Whitcroft <apw@canonical.com> Tue, 30 Jun 2009 17:47:32 +0100
+
+linux (2.6.31-1.13) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * REBASE: rebased to mainline 2.6.31-rc1
+ - "UBUNTU: SAUCE: UHCI USB quirk for resume"
+ no longer applies, using deprecated interfaces, LPIA only, dropped
+ - "UBUNTU: SAUCE: Mask off garbage in Dell WMI scan code data"
+ changes now upstream, dropped
+ * [Config] Update configs following rebase to 2.6.31-rc1
+ * [Config] update ports configs following update to 2.6.31-rc1
+
+ * [Config] disable broken staging driver CONFIG_STLC45XX
+ * SAUCE: fix compcache to use updates accessors
+ * [Config] disable staging driver CONFIG_VT6655
+ * SAUCE: fix DRDB to use updates accessors
+ * [Disable] ndiswrapper needs update
+ * [Disable] LIRC I2C needs update
+ * [Disable] CONFIG_LENOVO_SL_LAPTOP needs update
+ * [Config] disable I2C_DESIGNWARE does not compile
+ * [Config] disable CONFIG_TLSUP for lpia
+ * [Config] disable CONFIG_FB_UDL for arm
+ * SAUCE: disable adding scsi headers to linux-libc-dev
+
+ [ Mario Limonciello ]
+
+ * SAUCE: Add LIRC drivers
+
+ -- Andy Whitcroft <apw@canonical.com> Thu, 25 Jun 2009 12:06:22 +0100
+
+linux (2.6.30-10.12) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * [Config] split out the ports configs into their own family
+ * [Config] update configs following introduction of ports family
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "Rename linux-doc-PKGVER to linux-doc and clean up its
+ description". Fixes linux-doc package name conflicts for now.
+ - LP: #382115
+
+ -- Tim Gardner <tim.gardner@canonical.com> Mon, 22 Jun 2009 09:17:14 -0600
+
+linux (2.6.30-10.11) karmic; urgency=low
+
+ [ Amit Kucheria ]
+
+ * [Config] Comment splitconfig.pl and misc cleanup
+ * [Config] Rename all configs to the new naming scheme
+ * [Config] Splitconfig rework
+ * [Config] Rename scripts/misc/oldconfig to kernelconfig
+ * [Config] Fix build system for new config split
+ * [Config] Run updateconfigs after the splitconfig rework
+
+ [ Andy Whitcroft ]
+
+ * Revert "SAUCE: Default to i915.modeset=0 if CONFIG_DRM_I915_KMS=y"
+ * [Config] standardise CONFIG_STAGING=y
+ * [Config] standardise CONFIG_RD_LZMA=y
+ * [Config] CONFIG_PCI_IOV=y
+ * [Config] CONFIG_PCI_STUB=m
+ * [Config] merge kernel configs more agressively
+
+ [ Colin Watson ]
+
+ * [Config] Run kernel-wedge in $(builddir) rather than at the top level
+ * [Config] Add support for including firmware in udebs
+ * [Config] Ship bnx2 firmware in nic-modules udeb
+ - LP: #384861
+
+ [ Luke Yelavich ]
+
+ * [Config] ports - Import of ports architectures into kernel packaging
+ infrastructure
+ * [Config] ports - Do not update ports kernel configurations by default
+ * [Config] ports - Disable ABI checking for ports architectures
+ * [Config] ports - Build drivers in ubuntu sub-directory on powerpc
+ * [Config] ports - Add control.d/vars.* files for ports architectures
+ * [Config] ports - Add ports architectures for linux-libc-dev
+ * [Config] ports - Create powerpc specific message-modules and
+ block-modules udebs
+ * [Config] ports - Add configuration files for ports architectures
+
+ [ Manoj Iyer ]
+
+ * [Config] Enable CONFIG_BLK_DEV_AEC62XX=m for amd64 and i386
+ - LP: #329864
+
+ [ Michael Casadevall ]
+
+ * [Config] ports - Fix compression of kernels
+
+ [ Stefan Bader ]
+
+ * [Upstream] mmc: prevent dangling block device from accessing stale
+ queues
+ - LP: #383668
+
+ [ Tim Gardner ]
+
+ * [Config] Recommend grub-pc in linux-image
+ - LP: #385741
+ * [Config] Implement i386 generic and generic-pae flavours
+ * [Config] ports - Add control info after integrating ports arches
+ * [Config] Removed auto-generated files from git
+ * [Config] Added netxen_nic to nic-modules
+ - LP: #389603
+
+ [ Matt Zimmerman ]
+
+ * Rename linux-doc-PKGVER to linux-doc and clean up its description
+ - LP: #382115
+
+ -- Tim Gardner <tim.gardner@canonical.com> Mon, 15 Jun 2009 14:38:26 -0600
+
+linux (2.6.30-9.10) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * [Config] CONFIG_SECURITY_TOMOYO=y (amd64, i386, lpia)
+ * [Config] CONFIG_KEXEC_JUMP=y (amd64, lpia)
+ * [Config] CONFIG_LENOVO_SL_LAPTOP=m (amd64, lpia)
+ * [Config] CONFIG_POHMELFS_CRYPTO=y (i386, amd64)
+ * [Config] CONFIG_SERIAL_MAX3100=m (i386, amd64, lpia)
+ * [Config] CONFIG_VIDEO_GO7007=m (amd64, i386)
+
+ [ Upstream Kernel Changes ]
+
+ * rebased to 2.6.30 final
+
+ -- Andy Whitcroft <apw@canonical.com> Fri, 05 Jun 2009 11:42:53 +0100
+
+linux (2.6.30-8.9) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Config update removed the following options:
+ CONFIG_EDAC_AMD8111=m
+ CONFIG_EDAC_AMD8131=m
+
+ [ Upstream Kernel Changes ]
+
+ * rebased to 2.6.30-rc8
+
+ -- Andy Whitcroft <apw@canonical.com> Wed, 03 Jun 2009 09:21:13 +0100
+
+linux (2.6.30-7.8) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Enabled NEW configration options:
+ Paravirtualization layer for spinlocks (PARAVIRT_SPINLOCKS) [N/y/?] Y
+ Cisco FNIC Driver (FCOE_FNIC) [N/m/y/?] M
+
+ [ Upstream Kernel Changes ]
+
+ * rebased to 2.6.30-rc7
+
+ -- Andy Whitcroft <apw@canonical.com> Sat, 23 May 2009 23:47:24 +0100
+
+linux (2.6.30-6.7) karmic; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Dropped: UBUNTU: SAUCE: input: Blacklist digitizers from joydev.c (now
+ upstream)
+
+ [ Upstream Kernel Changes ]
+
+ * rebased to 2.6.30-rc6
+
+ -- Andy Whitcroft <apw@canonical.com> Mon, 18 May 2009 18:05:54 +0100
+
+linux (2.6.30-5.6) karmic; urgency=low
+
+ [ Tim Gardner ]
+
+ * [Config] Enable Keyspan USB serial device firmware in kernel module
+ - LP: #334285
+
+ [ Upstream Kernel Changes ]
+
+ * rebased to 2.6.30-rc5
+
+ -- Tim Gardner <tim.gardner@canonical.com> Mon, 11 May 2009 12:02:16 -0600
+
+linux (2.6.30-4.5) karmic; urgency=low
+
+ [ Colin Watson ]
+
+ * Build-Conflict with findutils (= 4.4.1-1ubuntu1), to avoid
+ /usr/include/asm/* going missing
+ - LP: #373214
+
+ -- Stefan Bader <stefan.bader@canonical.com> Fri, 08 May 2009 11:09:08 +0200
+
+linux (2.6.30-3.4) karmic; urgency=low
+
+ [ Kees Cook ]
+
+ * SAUCE: [x86] implement cs-limit nx-emulation for ia32
+ - LP: #369978
+
+ [ Stefan Bader ]
+
+ * SAUCE: input: Blacklist digitizers from joydev.c
+ - LP: #300143
+
+ -- Tim Gardner <tim.gardner@canonical.com> Fri, 01 May 2009 14:00:42 -0600
+
+linux (2.6.30-2.3) karmic; urgency=low
+
+ [ Tim Gardner ]
+
+ * [Config] Enabled CC_STACKPROTECTOR=y for all x86en
+ - LP: #369152
+ * SAUCE: Default to i915_modeset=0 if CONFIG_DRM_I915_KMS=y
+ * [Config] CONFIG_DRM_I915_KMS=y
+ * [Config] Set CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR to appropriate ARCH
+ minimums
+
+ [ Upstream Kernel Changes ]
+
+ * rebased to 2.6.30-rc4
+
+ -- Tim Gardner <tim.gardner@canonical.com> Thu, 30 Apr 2009 09:17:05 -0600
+
+linux (2.6.30-1.2) karmic; urgency=low
+
+ [ Tim Gardner ]
+
+ * [Config] armel: disable staging drivers, fixes FTBS
+ * [Config] armel imx51: Disable CONFIG_MTD_NAND_MXC, fixes FTBS
+
+ [ Upstream Kernel Changes ]
+
+ * mpt2sas: Change reset_type enum to avoid namespace collision.
+ Submitted upstream.
+
+ -- Tim Gardner <tim.gardner@canonical.com> Tue, 28 Apr 2009 16:54:41 -0600
+
+linux (2.6.30-1.1) karmic; urgency=low
+
+ * Initial release after rebasing against v2.6.30-rc3
+
+ -- Tim Gardner <tim.gardner@canonical.com> Thu, 12 Mar 2009 19:16:07 -0600
diff --git a/debian.master/changelog.historical b/debian.master/changelog.historical
new file mode 100644
index 00000000000..9e3beaf371d
--- /dev/null
+++ b/debian.master/changelog.historical
@@ -0,0 +1,4171 @@
+
+linux (2.6.28-9.31) jaunty; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * SAUCE: cpufreq-nforce2: probe failures are not errors
+ - LP: #332170
+ * SAUCE: mmc: add MODALIAS linkage for MMC/SD devices
+ - LP: #30335
+ * remove test-suspend script
+ - LP: #333856
+
+ [ Kees Cook ]
+
+ * handle relative paths in modules.dep
+ Fixes 2.6.28-9.30 FTBS.
+
+ [ Upstream Kernel Changes ]
+
+ * ricoh_mmc: Handle newer models of Ricoh controllers
+
+ -- Tim Gardner <tim.gardner@canonical.com> Wed, 11 Mar 2009 08:19:24 -0600
+
+linux (2.6.28-9.30) jaunty; urgency=low
+
+ [ Amit Kucheria ]
+
+ * ARM:mx51 Add SoC and board support for mx51 platforms
+ * ARM:mx51 Add CONFIG_ARCH_MXC_CANONICAL to disable parts of Freescale's
+ code
+ * MMC: Add support for 8-bit cards
+ * Add ARM:MX51 SoC support to the build system
+ * ARM: Make ARM arch aware of ubuntu/ drivers
+ * ARM: Add imx51 configuration
+ * Disable d-i modules for imx51 and mv78xx0
+ * Disable Apparmor on boot for ARM
+ * Updating imx51 config
+
+ [ Jason Liu ]
+
+ * Do not use OOB with MLC NAND
+
+ [ Richard Zhu ]
+
+ * Support the eMMC4.3 card
+
+ [ Rob Herring ]
+
+ * ARM: Add more cache memory types macros
+
+ [ Tim Gardner ]
+
+ * Set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y for i386/amd64/lpia
+
+ [ Manoj Iyer ]
+
+ * Enable CONFIG_RTL8187SE=m
+
+ [ Upstream Kernel Changes ]
+
+ * USB: EHCI: slow down ITD reuse
+ - LP: #329437
+
+ -- Tim Gardner <tim.gardner@canonical.com> Sun, 08 Mar 2009 14:14:15 -0600
+
+linux (2.6.28-9.29) jaunty; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * link-headers -- only link directories which do not already exist
+ - LP: #315252
+
+ [ Daniel Marjamäki ]
+
+ * SAUCE: (drop after 2.6.28) netxen: fix memory leak in
+ drivers/net/netxen_nic_init.c
+ - LP: #330813
+
+ [ Dhananjay Phadke ]
+
+ * SAUCE: (drop after 2.6.28) netxen: fix endianness in firmware commands
+ - LP: #330813
+ * SAUCE: (drop after 2.6.28) netxen: fix ipv6 offload and tx cleanup
+ - LP: #330813
+ * SAUCE: (drop after 2.6.28) netxen: fix link speed reporting for some
+ boards
+ - LP: #330813
+ * SAUCE: (drop after 2.6.28) netxen: firmware init fix
+ - LP: #330813
+ * SAUCE: (drop after 2.6.28) netxen: cleanup mac list on driver unload
+ - LP: #330813
+ * SAUCE: (drop after 2.6.28) netxen: hold tx lock while sending firmware
+ commands
+ - LP: #330813
+ * SAUCE: (drop after 2.6.28) netxen: handle dma mapping failures
+ - LP: #330813
+ * SAUCE: (drop after 2.6.28) netxen: avoid invalid iounmap
+ - LP: #330813
+ * SAUCE: (drop after 2.6.28) netxen: include ipv6.h (fixes build failure)
+ - LP: #330813
+ * SAUCE: (drop after 2.6.28) netxen: fix vlan tso/checksum offload
+ - LP: #330813
+ * SAUCE: (drop after 2.6.28) netxen: reduce memory footprint
+ - LP: #330813
+ * SAUCE: (drop after 2.6.28) netxen: revert jumbo ringsize
+ - LP: #330813
+ * SAUCE: (drop after 2.6.28) netxen: fix msi-x interrupt handling
+ - LP: #330813
+ * SAUCE: (drop after 2.6.28) netxen: remove pcie workaround
+ - LP: #330813
+
+ [ Hannes Eder ]
+
+ * SAUCE: (drop after 2.6.28) drivers/net/netxen: fix sparse warnings: use
+ NULL pointer instead of plain integer
+ - LP: #330813
+
+ [ Huaxu Wan ]
+
+ * SAUCE: report rfkill changes event if interface is down
+ - LP: #193970
+
+ [ Tim Gardner ]
+
+ * MV78XX0 must specify a target in the vars definition.
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "ext4: wait on all pending commits in ext4_sync_fs()"
+ * jbd2: Fix return value of jbd2_journal_start_commit()
+ * jbd2: Avoid possible NULL dereference in
+ jbd2_journal_begin_ordered_truncate()
+ * ext4: Fix to read empty directory blocks correctly in 64k
+ * ext4: Fix lockdep warning
+ * ext4: Initialize preallocation list_head's properly
+ * ext4: Implement range_cyclic in ext4_da_writepages instead of
+ write_cache_pages
+ * ext4: Fix NULL dereference in ext4_ext_migrate()'s error handling
+ * ext4: Add fallback for find_group_flex
+ * ext4: Fix deadlock in ext4_write_begin() and ext4_da_write_begin()
+ * Added mv78xx0 flavor
+
+ -- Tim Gardner <tim.gardner@canonical.com> Fri, 06 Mar 2009 06:13:31 -0700
+
+linux (2.6.28-8.28) jaunty; urgency=low
+
+ [ Alexey Starikovskiy ]
+
+ * SAUCE: ACPI: EC: Limit workaround for ASUS notebooks even more
+ - LP: #288385
+
+ [ Scott James Remnant ]
+
+ * SAUCE: Auto-load esp module when device opened.
+ * SAUCE: Auto-load bridge module when socket opened.
+ * SAUCE: Auto-load af_netlink module when socket opened.
+ * SAUCE: Auto-load wanrouter module when socket opened.
+ * SAUCE: Auto-load ip_queue module when socket opened.
+ * SAUCE: Auto-load ip6_queue module when socket opened.
+ * SAUCE: Auto-load cn module when socket opened.
+ * SAUCE: Auto-load scsi_transport_iscsi module when socket opened.
+ * SAUCE: Auto-load ftl module when device opened.
+ * SAUCE: Auto-load pcd module when device opened.
+ * SAUCE: Auto-load pf module when device opened.
+ * SAUCE: Auto-load nftl module when device opened.
+ * SAUCE: Auto-load mousedev module when psaux device opened.
+ * SAUCE: Auto-load mousedev module when /dev/input/mice opened.
+ * SAUCE: Auto-load rng-core module when device opened.
+ * SAUCE: Auto-load openprom module when device opened.
+ * SAUCE: Auto-load applicom module when device opened.
+ * SAUCE: Auto-load toshiba module when device opened.
+ * SAUCE: Auto-load cyclades module when device opened.
+ * SAUCE: Auto-load riscom8 module when device opened.
+ * SAUCE: Auto-load specialix module when device opened.
+ * SAUCE: Auto-load videodev module when device opened.
+ * SAUCE: Auto-load i2c_dev module when device opened.
+ * SAUCE: Auto-load mtdchar module when device opened.
+ * SAUCE: Auto-load pt module when device opened.
+ * SAUCE: Auto-load pg module when device opened.
+ * SAUCE: Auto-load cdc_acm module when device opened.
+ * SAUCE: Auto-load msr module when device opened.
+ * SAUCE: Auto-load cpuid module when device opened.
+ * SAUCE: quickcam: Enable double-buffering by default
+ * SAUCE: libata: Ignore HPA by default.
+ * SAUCE: hostap: Change initial operation mode to managed (infra)
+ * SAUCE: floppy: Provide a PnP device table in the module.
+ - LP: #255651
+ * SAUCE: Auto-load mwave module when device opened.
+ * Build CONFIG_FUSE_FS into kernel, not as module.
+
+ [ Stefan Bader ]
+
+ * Enable build of ext4 as a module on LPIA
+ - LP: #331848
+
+ [ Tim Gardner ]
+
+ * Update configs to fix LPIA FTBS
+
+ -- Tim Gardner <tim.gardner@canonical.com> Thu, 05 Mar 2009 10:43:24 -0700
+
+linux (2.6.28-8.27) jaunty; urgency=low
+
+ [ Amit Kucheria ]
+
+ * Updating configs (arm:ixp4xx)
+
+ [ Andy Whitcroft ]
+
+ * SAUCE: enable Intel HDMI output
+
+ [ Manoj Iyer ]
+
+ * SAUCE: Added quirk for Linksys WUSB600N USB wifi-n networking adapter
+ - LP: #323473
+
+ [ Steve Beattie ]
+
+ * fix apparmor memory leak on unlinked file ops
+ - LP: #329489
+
+ [ Tim Gardner ]
+
+ * SAUCE: Dell XPS710 reboot quirk
+ - LP: #323592
+ * SAUCE: (drop after 2.6.28) ieee80211: Add infrastructure to obsolete
+ scan results
+ - LP: #336055
+ * Add modules.order to the linux-image package.
+
+ [ Upstream Kernel Changes ]
+
+ * iwlwifi: fix time interval misuse in iwl_poll_{direct_}bit
+ * x86: only scan the root bus in early PCI quirks
+ - LP: #267295
+ * ALSA: hda - Intel HDMI audio support
+ * ALSA: hda - Fix unused function in patch_intelhdmi.c
+ * ALSA: handle SiI1392 HDMI codec in patch_intelhdmi.c
+ * ALSA: hda-intel: reorder HDMI audio enabling sequence
+ * ALSA: introduce snd_print_pcm_rates()
+ * ALSA: create hda_eld.c for ELD routines and proc interface
+ * ALSA: ELD proc interface for HDMI sinks
+ * ALSA: hda: make standalone hdmi_fill_audio_infoframe()
+ * ALSA: hda: make global snd_print_channel_allocation()
+ * ALSA: hda: HDMI channel allocations for audio infoframe
+ * ALSA: hda: HDMI channel mapping cleanups
+ * ALSA: hda: minor code cleanups
+ * ALSA: hda: rename sink_eld to hdmi_eld
+ * ALSA: hda - Release ELD proc file
+ * ALSA: hda - minor HDMI code cleanups
+ * ALSA: hda - report selected CA index for Audio InfoFrame
+ * ALSA: hda - Add Intel vendor id string
+
+ -- Tim Gardner <tim.gardner@canonical.com> Wed, 25 Feb 2009 14:23:46 -0700
+
+linux (2.6.28-8.26) jaunty; urgency=low
+
+ [ Amit Kucheria ]
+
+ * Updating configs (armel:ixp4xx)
+ - LP: #331510
+
+ [ Tim Gardner ]
+
+ * Add more missing modules
+
+ -- Tim Gardner <tim.gardner@canonical.com> Tue, 24 Feb 2009 06:58:53 -0700
+
+linux (2.6.28-8.25) jaunty; urgency=low
+
+ [ Scott James Remnant ]
+
+ * SAUCE: Prefer powernow-k8 to acpi-cpufreq
+ * Change CONFIG_X86_P4_CLOCKMOD to be a module again.
+
+ [ Tim Gardner ]
+
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Initialize the new
+ group descriptor when resizing the filesystem"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add sanity check
+ to make_indexed_dir"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: only use
+ i_size_high for regular files"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add sanity checks
+ for the superblock before mounting the filesystem"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix
+ s_dirty_blocks_counter if block allocation failed with nodelalloc"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Init the complete
+ page while building buddy cache"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Don't allow new
+ groups to be added during block allocation"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: mark the
+ blocks/inode bitmap beyond end of group as used"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Use new
+ buffer_head flag to check uninit group bitmaps initialization"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix the race
+ between read_inode_bitmap() and ext4_new_inode()"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix race between
+ read_block_bitmap() and mark_diskspace_used()"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: don't use blocks
+ freed but not yet committed in buddy cache init"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: cleanup mballoc
+ header files"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Use
+ EXT4_GROUP_INFO_NEED_INIT_BIT during resize"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add blocks added
+ during resize to bitmap"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Don't overwrite
+ allocation_context ac_status"
+ * Revert "SAUCE: (revert before 2.6.28.y update) jbd2: Add barrier not
+ supported test to journal_wait_on_commit_record"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Widen type of
+ ext4_sb_info.s_mb_maxs[]"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: avoid ext4_error
+ when mounting a fs with a single bg"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Fix the delalloc
+ writepages to allocate blocks at the right offset."
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: tone down
+ ext4_da_writepages warnings"
+ * Revert "SAUCE: (revert before 2.6.28.y update) ext4: Add support for
+ non-native signed/unsigned htree hash algorithms"
+ * Enabled X86_ACPI_CPUFREQ=y
+
+ [ Upstream Kernel Changes ]
+
+ * ath9k: quiet harmless ForceXPAon messages
+ - LP: #321474
+ * [WATCHDOG] iTCO_wdt: fix SMI_EN regression 2
+ - LP: #314050
+ * pid: implement ns_of_pid
+ * mqueue: fix si_pid value in mqueue do_notify()
+ * powerpc/vsx: Fix VSX alignment handler for regs 32-63
+ * sata_nv: give up hardreset on nf2
+ * Fix Intel IOMMU write-buffer flushing
+ * SCSI: libiscsi: fix iscsi pool leak
+ * x86/cpa: make sure cpa is safe to call in lazy mmu mode
+ * sched: SCHED_OTHER vs SCHED_IDLE isolation
+ * x86, vm86: fix preemption bug
+ * Add support for VT6415 PCIE PATA IDE Host Controller
+ * ext2/xip: refuse to change xip flag during remount with busy inodes
+ * 3c505: do not set pcb->data.raw beyond its size
+ * Bluetooth: Fix TX error path in btsdio driver
+ * ext4: Add support for non-native signed/unsigned htree hash algorithms
+ * ext4: tone down ext4_da_writepages warnings
+ * ext4: Fix the delalloc writepages to allocate blocks at the right
+ offset.
+ * ext4: avoid ext4_error when mounting a fs with a single bg
+ * ext4: Widen type of ext4_sb_info.s_mb_maxs[]
+ * jbd2: Add barrier not supported test to journal_wait_on_commit_record
+ * ext4: Don't overwrite allocation_context ac_status
+ * ext4: Add blocks added during resize to bitmap
+ * ext4: Use EXT4_GROUP_INFO_NEED_INIT_BIT during resize
+ * ext4: cleanup mballoc header files
+ * ext4: don't use blocks freed but not yet committed in buddy cache init
+ * ext4: Fix race between read_block_bitmap() and mark_diskspace_used()
+ * ext4: Fix the race between read_inode_bitmap() and ext4_new_inode()
+ * ext4: Use new buffer_head flag to check uninit group bitmaps
+ initialization
+ * ext4: mark the blocks/inode bitmap beyond end of group as used
+ * ext4: Don't allow new groups to be added during block allocation
+ * ext4: Init the complete page while building buddy cache
+ * ext4: Fix s_dirty_blocks_counter if block allocation failed with
+ nodelalloc
+ * ext4: Add sanity checks for the superblock before mounting the
+ filesystem
+ * ext4: only use i_size_high for regular files
+ * ext4: Add sanity check to make_indexed_dir
+ * ext4: Initialize the new group descriptor when resizing the filesystem
+ * Fix longstanding "error: storage size of '__mod_dmi_device_table' isn't
+ known"
+ * Linux 2.6.28.7
+
+ -- Tim Gardner <tim.gardner@canonical.com> Thu, 19 Feb 2009 06:45:55 -0700
+
+linux (2.6.28-8.24) jaunty; urgency=low
+
+ [ Scott James Remnant ]
+
+ * Change CPU_FREQ_DEFAULT_GOV_ONDEMAND to y
+ * SAUCE: Link acpi-cpufreq.o first
+
+ [ Tim Gardner ]
+
+ * Build in CPU Frequency scaling drivers
+
+ -- Tim Gardner <tim.gardner@canonical.com> Wed, 18 Feb 2009 06:12:24 -0700
+
+linux (2.6.28-8.23) jaunty; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * include the kernel configuration in the sub-flavour images
+ - LP: #328859
+
+ [ Tim Gardner ]
+
+ * Revert "SAUCE: (drop after 2.6.28) [eCryptfs] Regression in unencrypted
+ filename symlinks" in favor of upstream commit.
+ * Fix compile issues with qc-usb
+ * SAUCE: (remove after 2.6.28) V4L/DVB (10216): saa7127: fix broken
+ S-Video with saa7129
+ - LP: #329267
+
+ [ Upstream Kernel Changes ]
+
+ * Subject:SAUCE: LP#193970 iwlagn: fix hw-rfkill while the interface is
+ down
+ - LP: #193970
+ * x86, vmi: put a missing paravirt_release_pmd in pgd_dtor
+ * nbd: fix I/O hang on disconnected nbds
+ * mac80211: restrict to AP in outgoing interface heuristic
+ * w1: w1 temp calculation overflow fix
+ * zd1211rw: adding 0ace:0xa211 as a ZD1211 device
+ * zd1211rw: treat MAXIM_NEW_RF(0x08) as UW2453_RF(0x09) for TP-Link
+ WN322/422G
+ * parport: parport_serial, don't bind netmos ibm 0299
+ * syscall define: fix uml compile bug
+ * kernel-doc: fix syscall wrapper processing
+ * Fix page writeback thinko, causing Berkeley DB slowdown
+ * write-back: fix nr_to_write counter
+ * writeback: fix break condition
+ * mm: rearrange exit_mmap() to unlock before arch_exit_mmap
+ * powerpc/fsl-booke: Fix mapping functions to use phys_addr_t
+ * lockd: fix regression in lockd's handling of blocked locks
+ * sctp: Fix crc32c calculations on big-endian arhes.
+ * sctp: Correctly start rtx timer on new packet transmissions.
+ * sctp: Properly timestamp outgoing data chunks for rtx purposes
+ * net: Fix frag_list handling in skb_seq_read
+ * net: Fix OOPS in skb_seq_read().
+ * drivers/net/skfp: if !capable(CAP_NET_ADMIN): inverted logic
+ * ipv4: fix infinite retry loop in IP-Config
+ * net: Fix userland breakage wrt. linux/if_tunnel.h
+ * net: packet socket packet_lookup_frame fix
+ * packet: Avoid lock_sock in mmap handler
+ * sungem: Soft lockup in sungem on Netra AC200 when switching interface
+ up
+ * udp: Fix UDP short packet false positive
+ * udp: increments sk_drops in __udp_queue_rcv_skb()
+ * ipv6: Disallow rediculious flowlabel option sizes.
+ * ipv6: Copy cork options in ip6_append_data
+ * net: 4 bytes kernel memory disclosure in SO_BSDCOMPAT gsopt try #2
+ * sky2: fix hard hang with netconsoling and iface going up
+ * tun: Add some missing TUN compat ioctl translations.
+ * tun: Fix unicast filter overflow
+ * virtio_net: Fix MAX_PACKET_LEN to support 802.1Q VLANs
+ * tcp: splice as many packets as possible at once
+ * tcp: Fix length tcp_splice_data_recv passes to skb_splice_bits.
+ * sparc: Enable syscall wrappers for 64-bit (CVE-2009-0029)
+ * sparc64: Annotate sparc64 specific syscalls with SYSCALL_DEFINEx()
+ * ALSA: hda - Add missing terminator in slave dig-out array
+ * ALSA: mtpav - Fix initial value for input hwport
+ * HID: adjust report descriptor fixup for MS 1028 receiver
+ * ide/libata: fix ata_id_is_cfa() (take 4)
+ * libata: fix EH device failure handling
+ * netfilter: fix tuple inversion for Node information request
+ * netfilter: xt_sctp: sctp chunk mapping doesn't work
+ * x86: microcode_amd: fix wrong handling of equivalent CPU id
+ * ide-cd: fix DMA for non bio-backed requests
+ * net: Fix data corruption when splicing from sockets.
+ * Linux 2.6.28.6
+ * eCryptfs: Regression in unencrypted filename symlinks
+
+ -- Tim Gardner <tim.gardner@canonical.com> Mon, 16 Feb 2009 06:43:51 -0700
+
+linux (2.6.28-8.22) jaunty; urgency=low
+
+ [ Amit Kucheria ]
+
+ * Remove perm-blacklist
+
+ [ Andy Whitcroft ]
+
+ * SAUCE: psmouse/synaptics: ensure we reset the device on resume
+ - LP: #317270
+
+ [ Tim Gardner ]
+
+ * Add lpia to getabi script
+ * SAUCE: tracer for sreadahead
+
+ -- Amit Kucheria <amit.kucheria@ubuntu.com> Fri, 13 Feb 2009 15:23:21 +0200
+
+linux (2.6.28-8.21) jaunty; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * SAUCE: switch the Asus Pundit P1-AH2 to old acpi sleep ordering
+ - LP: #327267
+
+ [ Tim Gardner ]
+
+ * Added LPIA arch support
+ * Added libdrm-dev as a 'Replaces' to linux-libc-dev
+ * SAUCE: LPIA support for 9202 HDA Sigmatel codec
+ * SAUCE: Add an X86_LPIA Kconfig option
+ * SAUCE: UHCI USB quirk for resume
+ * SAUCE: LPIA Reboot fix for Intel Crownbeach development boards
+ * SAUCE: LPIA Logical reset of USB port on resume
+ * Set CONFIG_WIRELESS_OLD_REGULATORY=n, added wireless-crda
+ as an install dependency.
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "Revert "x86, early_ioremap: fix fencepost error""
+ - LP: #312554
+ * drm/i915: capture last_vblank count at IRQ uninstall time too
+ - LP: #320813
+ * drm/i915: add get_vblank_counter function for GM45
+ - LP: #320813
+ * Staging: comedi: fix Kbuild
+ * Staging: meilhaus: fix Kbuild
+ * Staging: android: binder: fix arm build errors
+ * Staging: android: timed_gpio: Fix build to build on kernels after
+ 2.6.25.
+ * Staging: android: fix build error on 64bit boxes
+ * Staging: android: Add lowmemorykiller documentation.
+ * Staging: android: task_get_unused_fd_flags: fix the wrong usage of
+ tsk->signal
+ * staging: agnx: drivers/staging/agnx/agnx.h needs <linux/io.h>
+ * Staging: usbip: usbip_start_threads(): handle kernel_thread failure
+ * Staging: poch: fix verification of memory area
+ * Documentation: move DMA-mapping.txt to Doc/PCI/
+ * sgi-xp: fix writing past the end of kzalloc()'d space
+ * do_wp_page: fix regression with execute in place
+ * wait: prevent exclusive waiter starvation
+ * shm: fix shmctl(SHM_INFO) lockup with !CONFIG_SHMEM
+ * revert "rlimit: permit setting RLIMIT_NOFILE to RLIM_INFINITY"
+ * prevent kprobes from catching spurious page faults
+ * sound: usb-audio: handle wMaxPacketSize for FIXED_ENDPOINT devices
+ * md: Ensure an md array never has too many devices.
+ * md: Fix a bug in linear.c causing which_dev() to return the wrong
+ device.
+ * ACPI: Enable bit 11 in _PDC to advertise hw coord
+ * ACPI: dock: Don't eval _STA on every show_docked sysfs read
+ * ieee1394: ohci1394: increase AT req. retries, fix ack_busy_X from
+ Panasonic camcorders and others
+ * firewire: ohci: increase AT req. retries, fix ack_busy_X from Panasonic
+ camcorders and others
+ * firewire: sbp2: fix DMA mapping leak on the failure path
+ * firewire: sbp2: add workarounds for 2nd and 3rd generation iPods
+ * ieee1394: sbp2: add workarounds for 2nd and 3rd generation iPods
+ * module: remove over-zealous check in __module_get()
+ * x86: APIC: enable workaround on AMD Fam10h CPUs
+ * eeepc-laptop: fix oops when changing backlight brightness during
+ eeepc-laptop init
+ * eeepc-laptop: Add support for extended hotkeys
+ * e1000: fix bug with shared interrupt during reset
+ * e1000: Fix PCI enable to honor the need_ioport flag
+ * agp/intel: Fix broken ® symbol in device name.
+ * ALSA: hda - Add quirk for FSC Amilo Xi2550
+ * ALSA: hda - Add missing COEF initialization for ALC887
+ * ALSA: hda - Add missing initialization for ALC272
+ * asus_acpi: Add R1F support
+ * panasonic-laptop: fix X[ ARRAY_SIZE(X) ]
+ * ACPI: Skip the first two elements in the _BCL package
+ * ACPI: proc_dir_entry 'video/VGA' already registered
+ * ACPI: disable ACPI cleanly when bad RSDP found
+ * ACPICA: Fix table entry truncation calculation
+ * PCI: properly clean up ASPM link state on device remove
+ * PCI: return error on failure to read PCI ROMs
+ * seq_file: move traverse so it can be used from seq_read
+ * seq_file: fix big-enough lseek() + read()
+ * serial: set correct baud_base for Oxford Semiconductor Ltd EXSYS
+ EX-41092 Dual 16950 Serial adapter
+ * Add support for '8-port RS-232 MIC-3620 from advantech'
+ * mm: fix error case in mlock downgrade reversion
+ * elf core dump: fix get_user use
+ * ACPI: video: Fix reversed brightness behavior on ThinkPad SL series
+ * ipw2200: fix scanning while associated
+ * XFS: set b_error from bio error in xfs_buf_bio_end_io
+ * Revert USB: option: add Pantech cards
+ * USB: option: New mobile broadband modems to be supported
+ * USB: new id for ti_usb_3410_5052 driver
+ * USB: two more usb ids for ti_usb_3410_5052
+ * USB: usb-storage: add Pentax to the bad-vendor list
+ * sata_via: Add VT8261 support
+ * nbd: do not allow two clients at the same time
+ * sctp: Fix another socket race during accept/peeloff
+ * Linux 2.6.28.5
+
+ -- Tim Gardner <tim.gardner@canonical.com> Mon, 09 Feb 2009 16:11:28 -0700
+
+linux (2.6.28-7.20) jaunty; urgency=low
+
+ [ Tim Gardner ]
+
+ * SAUCE: Input: atkbd - Samsung NC10 key repeat fix
+
+ [ Upstream Kernel Changes ]
+
+ * Manually revert "mlock: downgrade mmap sem while populating mlocked
+ regions"
+ * xen: make sysfs files behave as their names suggest
+ * sata_mv: fix 8-port timeouts on 508x/6081 chips
+ * m68knommu: set NO_DMA
+ * PCI/MSI: bugfix/utilize for msi_capability_init()
+ * x86: use early clobbers in usercopy*.c
+ * netfilter: ctnetlink: fix scheduling while atomic
+ * orinoco: move kmalloc(..., GFP_KERNEL) outside spinlock in
+ orinoco_ioctl_set_genie
+ * fbdev/atyfb: Fix DSP config on some PowerMacs & PowerBooks
+ * kmalloc: return NULL instead of link failure
+ * sata_nv: rename nv_nf2_hardreset()
+ * sata_nv: fix MCP5x reset
+ * sata_nv: ck804 has borked hardreset too
+ * Fix memory corruption in console selection
+ * Add enable_ms to jsm driver
+ * nfsd: only set file_lock.fl_lmops in nfsd4_lockt if a stateowner is
+ found
+ * nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT
+ * iwlwifi: fix rs_get_rate WARN_ON()
+ * p54: fix lm87 checksum endianness
+ * p54: fix p54_read_eeprom to cope with tx_hdr_len
+ * p54usb: rewriting rx/tx routines to make use of usb_anchor's facilities
+ * minstrel: fix warning if lowest supported rate index is not 0
+ * PCI: irq and pci_ids patch for Intel Tigerpoint DeviceIDs
+ * cpuidle: Add decaying history logic to menu idle predictor
+ * ACPI: Avoid array address overflow when _CST MWAIT hint bits are set
+ * video: always update the brightness when poking "brightness"
+ * Newly inserted battery might differ from one just removed, so update of
+ battery info fields is required.
+ * ACPI: Do not modify SCI_EN directly
+ * dlm: initialize file_lock struct in GETLK before copying conflicting
+ lock
+ * sata_mv: Fix chip type for Hightpoint RocketRaid 1740/1742
+ * ACPICA: Allow multiple backslash prefix in namepaths
+ * Linux 2.6.28.4
+
+ -- Tim Gardner <tim.gardner@canonical.com> Sat, 07 Feb 2009 18:53:42 -0700
+
+linux (2.6.28-7.19) jaunty; urgency=low
+
+ * Fix missing modules FTBS
+
+ -- Tim Gardner <tim.gardner@canonical.com> Thu, 05 Feb 2009 15:28:15 -0700
+
+linux (2.6.28-7.18) jaunty; urgency=low
+
+ [ Alok Kataria ]
+
+ * SAUCE: (drop after 2.6.29) x86: add a synthetic TSC_RELIABLE feature
+ bit
+ - LP: #319945
+ * SAUCE: (drop after 2.6.29) x86: add X86_FEATURE_HYPERVISOR feature bit
+ - LP: #319945
+ * SAUCE: (drop after 2.6.29) x86: Hypervisor detection and get tsc_freq
+ from hypervisor
+ - LP: #319945
+ * SAUCE: (drop after 2.6.29) x86: Add a synthetic TSC_RELIABLE feature
+ bit.
+ - LP: #319945
+ * SAUCE: (drop after 2.6.29) x86: Skip verification by the watchdog for
+ TSC clocksource.
+ - LP: #319945
+ * SAUCE: (drop after 2.6.29) x86: VMware: Fix vmware_get_tsc code
+ - LP: #319945
+ * SAUCE: (drop after 2.6.29) x86: vmware: look for DMI string in the
+ product serial key
+ - LP: #319945
+
+ [ Andy Whitcroft ]
+
+ * SAUCE: toshiba_acpi -- pull in current -dev version of driver
+ - LP: #269831
+ * SAUCE: toshiba_acpi -- add acpi hotkey kernel thread
+ - LP: #269831
+ * move toshiba laptops back from tlsup to toshiba_acpi
+ - LP: #269831
+
+ [ Aneesh Kumar K.V ]
+
+ * SAUCE: (revert before 2.6.28.y update) ext4: Fix the delalloc
+ writepages to allocate blocks at the right offset.
+ * SAUCE: (revert before 2.6.28.y update) ext4: avoid ext4_error when
+ mounting a fs with a single bg
+ * SAUCE: (revert before 2.6.28.y update) ext4: Don't overwrite
+ allocation_context ac_status
+ * SAUCE: (revert before 2.6.28.y update) ext4: Add blocks added during
+ resize to bitmap
+ * SAUCE: (revert before 2.6.28.y update) ext4: Use
+ EXT4_GROUP_INFO_NEED_INIT_BIT during resize
+ * SAUCE: (revert before 2.6.28.y update) ext4: cleanup mballoc header
+ files
+ * SAUCE: (revert before 2.6.28.y update) ext4: don't use blocks freed but
+ not yet committed in buddy cache init
+ * SAUCE: (revert before 2.6.28.y update) ext4: Fix race between
+ read_block_bitmap() and mark_diskspace_used()
+ * SAUCE: (revert before 2.6.28.y update) ext4: Fix the race between
+ read_inode_bitmap() and ext4_new_inode()
+ * SAUCE: (revert before 2.6.28.y update) ext4: Use new buffer_head flag
+ to check uninit group bitmaps initialization
+ * SAUCE: (revert before 2.6.28.y update) ext4: mark the blocks/inode
+ bitmap beyond end of group as used
+ * SAUCE: (revert before 2.6.28.y update) ext4: Don't allow new groups to
+ be added during block allocation
+ * SAUCE: (revert before 2.6.28.y update) ext4: Init the complete page
+ while building buddy cache
+ * SAUCE: (revert before 2.6.28.y update) ext4: Fix s_dirty_blocks_counter
+ if block allocation failed with nodelalloc
+
+ [ Hannes Eder ]
+
+ * SAUCE: (drop after 2.6.29) x86: vmware - fix sparse warnings
+ - LP: #319945
+
+ [ Luke Yelavich ]
+
+ * hid modules have hyphens instead of underscores in their names
+
+ [ Mark Fasheh ]
+
+ * SAUCE: (revert before 2.6.28.y update) jbd2: Add BH_JBDPrivateStart
+
+ [ Theodore Ts'o ]
+
+ * SAUCE: (revert before 2.6.28.y update) ext4: Add support for non-native
+ signed/unsigned htree hash algorithms
+ * SAUCE: (revert before 2.6.28.y update) ext4: tone down
+ ext4_da_writepages warnings
+ * SAUCE: (revert before 2.6.28.y update) jbd2: Add barrier not supported
+ test to journal_wait_on_commit_record
+ * SAUCE: (revert before 2.6.28.y update) ext4: Add sanity checks for the
+ superblock before mounting the filesystem
+ * SAUCE: (revert before 2.6.28.y update) ext4: only use i_size_high for
+ regular files
+ * SAUCE: (revert before 2.6.28.y update) ext4: Add sanity check to
+ make_indexed_dir
+ * SAUCE: (revert before 2.6.28.y update) jbd2: On a __journal_expect()
+ assertion failure printk "JBD2", not "EXT3-fs"
+ * SAUCE: (revert before 2.6.28.y update) ext4: Initialize the new group
+ descriptor when resizing the filesystem
+
+ [ Tyler Hicks ]
+
+ * SAUCE: (drop after 2.6.28) [eCryptfs] Regression in unencrypted
+ filename symlinks
+ - LP: #322532
+
+ [ Upstream Kernel Changes ]
+
+ * Input: atkbd - broaden the Dell DMI signatures
+ - LP: #261721
+ * ti_usb_3410_5052: support alternate firmware
+ * ath5k: fix mesh point operation
+ * mac80211: decrement ref count to netdev after launching mesh discovery
+ * inotify: clean up inotify_read and fix locking problems
+ * fuse: destroy bdi on umount
+ * fuse: fix missing fput on error
+ * fuse: fix NULL deref in fuse_file_alloc()
+ * x86, mm: fix pte_free()
+ * klist.c: bit 0 in pointer can't be used as flag
+ * sysfs: fix problems with binary files
+ * x86: fix page attribute corruption with cpa()
+ * USB: fix toggle mismatch in disable_endpoint paths
+ * sound: virtuoso: enable UART on Xonar HDAV1.3
+ * USB: usbmon: Implement compat_ioctl
+ * USB: fix char-device disconnect handling
+ * USB: storage: add unusual devs entry
+ * alpha: nautilus - fix compile failure with gcc-4.3
+ * alpha: fix vmalloc breakage
+ * resources: skip sanity check of busy resources
+ * rtl8187: Add termination packet to prevent stall
+ * it821x: Add ultra_mask quirk for Vortex86SX
+ * libata: pata_via: support VX855, future chips whose IDE controller use
+ 0x0571
+ * serial_8250: support for Sealevel Systems Model 7803 COMM+8
+ * drm: stash AGP include under the do-we-have-AGP ifdef
+ * Fix OOPS in mmap_region() when merging adjacent VM_LOCKED file segments
+ * bnx2x: Block nvram access when the device is inactive
+ * ext3: Add sanity check to make_indexed_dir
+ * rtl8187: Fix error in setting OFDM power settings for RTL8187L
+ * epoll: drop max_user_instances and rely only on max_user_watches
+ * gpiolib: fix request related issue
+ * sgi-xpc: Remove NULL pointer dereference.
+ * sgi-xpc: ensure flags are updated before bte_copy
+ * include/linux: Add bsg.h to the Kernel exported headers
+ * ALSA: hda - Fix PCM reference NID for STAC/IDT analog outputs
+ * ALSA: hda - add another MacBook Pro 4, 1 subsystem ID
+ * ALSA: hda - Add quirk for HP DV6700 laptop
+ * crypto: authenc - Fix zero-length IV crash
+ * crypto: ccm - Fix handling of null assoc data
+ * x86, pat: fix reserve_memtype() for legacy 1MB range
+ * x86, pat: fix PTE corruption issue while mapping RAM using /dev/mem
+ * PCI hotplug: fix lock imbalance in pciehp
+ * dmaengine: fix dependency chaining
+ * NET: net_namespace, fix lock imbalance
+ * relay: fix lock imbalance in relay_late_setup_files
+ * Linux 2.6.28.3
+ * ALSA: Enable SPDIF output on ALC655
+ * ALSA: hda - Add ASUS V1Sn support
+ * ALSA: hda - support detecting HD Audio devices with PCI class code
+ * ALSA: hda: alc883 model for ASUS P5Q-EM boards
+ * ALSA: hda - Add quirk for MSI 7260 mobo
+ * ALSA: hda - Add quirk for Sony VAIO VGN-SR19XN
+ * ALSA: oxygen: add Claro halo support
+ * ALSA: hda - Add a new function to seek for a codec ID
+ * ALSA: patch_sigmatel: Add missing Gateway entries and autodetection
+ * ALSA: hda - More fixes on Gateway entries
+ * ALSA: hda - Add MCP67 HDMI support
+ * ALSA: hda - fix name for ALC1200
+ * LSA: hda - Add HP Acacia detection
+ * ALSA: hda - Add quirk for HP 2230s
+ * ALSA: hda - Add quirk for Dell Inspiron Mini9
+ * ALSA: hda - add support for Intel DX58SO board
+ * ALSA: hda - Fix silent headphone output on Panasonic CF-74
+ * ALSA: USB quirk for Logitech Quickcam Pro 9000 name
+ * ALSA: hda - add quirks for some 82801H variants to use ALC883_MITAC
+
+ [ Yasunori Goto ]
+
+ * SAUCE: (revert before 2.6.28.y update) ext4: Widen type of
+ ext4_sb_info.s_mb_maxs[]
+
+ -- Tim Gardner <tim.gardner@canonical.com> Mon, 02 Feb 2009 23:07:13 -0700
+
+linux (2.6.28-6.17) jaunty; urgency=low
+
+ [ Amit Kucheria ]
+
+ * Updating configs: ARMEL/versatile
+
+ -- Amit Kucheria <amit.kucheria@ubuntu.com> Fri, 30 Jan 2009 13:36:59 +0200
+
+linux (2.6.28-6.16) jaunty; urgency=low
+
+ [ Luke Yelavich ]
+
+ * Add hid quirks to input-modules udeb
+
+ [ Tim Gardner ]
+
+ * Revert "[arm] Fix kexec on ARM by properly calling the relocation
+ function". This patch was deemed 'bogus' by Russell King on the
+ ARM mailing list.
+
+ [ Upstream Kernel Changes ]
+
+ * PCI: keep ASPM link state consistent throughout PCIe hierarchy
+ * security: introduce missing kfree
+ * rt2x00: add USB ID for the Linksys WUSB200.
+ * p54usb: Add USB ID for Thomson Speedtouch 121g
+ * lib/idr.c: use kmem_cache_zalloc() for the idr_layer cache
+ * sgi-xp: eliminate false detection of no heartbeat
+ * sched: fix update_min_vruntime
+ * IA64: Turn on CONFIG_HAVE_UNSTABLE_CLOCK
+ * sound: virtuoso: do not overwrite EEPROM on Xonar D2/D2X
+ * ALSA: hda - Add quirk for another HP dv5
+ * ALSA: hda - Fix HP dv5 mic input
+ * ALSA: hda - Don't reset HP pinctl in patch_sigmatel.c
+ * ALSA: hda - make laptop-eapd model back for AD1986A
+ * drivers/net/irda/irda-usb.c: fix buffer overflow
+ * usb-storage: add last-sector hacks
+ * usb-storage: set CAPACITY_HEURISTICS flag for bad vendors
+ * pkt_sched: sch_htb: Fix deadlock in hrtimers triggered by HTB
+ * ipv6: Fix fib6_dump_table walker leak
+ * sctp: Avoid memory overflow while FWD-TSN chunk is received with bad
+ stream ID
+ * pkt_sched: cls_u32: Fix locking in u32_change()
+ * r6040: fix wrong logic in mdio code
+ * r6040: save and restore MIER correctly in the interrupt routine
+ * r6040: bump release number to 0.19
+ * tcp: don't mask EOF and socket errors on nonblocking splice receive
+ * p54usb: fix traffic stalls / packet drop
+ * netfilter: x_tables: fix match/target revision lookup
+ * netfilter: ebtables: fix inversion in match code
+ * netfilter: nf_conntrack: fix ICMP/ICMPv6 timeout sysctls on big-endian
+ * dell_rbu: use scnprintf() instead of less secure sprintf()
+ * powerpc: is_hugepage_only_range() must account for both 4kB and 64kB
+ slices
+ * hwmon: (abituguru3) Fix CONFIG_DMI=n fallback to probe
+ * mm: write_cache_pages cyclic fix
+ * mm: write_cache_pages early loop termination
+ * mm: write_cache_pages writepage error fix
+ * mm: write_cache_pages integrity fix
+ * mm: write_cache_pages cleanups
+ * mm: write_cache_pages optimise page cleaning
+ * mm: write_cache_pages terminate quickly
+ * mm: write_cache_pages more terminate quickly
+ * mm: do_sync_mapping_range integrity fix
+ * mm: direct IO starvation improvement
+ * fs: remove WB_SYNC_HOLD
+ * fs: sync_sb_inodes fix
+ * fs: sys_sync fix
+ * Linux 2.6.28.2
+
+ -- Tim Gardner <tim.gardner@canonical.com> Sun, 25 Jan 2009 13:36:16 -0700
+
+linux (2.6.28-5.15) jaunty; urgency=low
+
+ [ Tim Gardner ]
+
+ * Revert "Enabled CONFIG_PID_NS=y for i386/amd64"
+ Somehow this commit also reverted the 7 prior commits (which is bad).
+ * Enabled CONFIG_PID_NS=y for i386/amd64 (version 2)
+
+ -- Tim Gardner <tim.gardner@canonical.com> Thu, 22 Jan 2009 13:48:34 -0700
+
+linux (2.6.28-5.14) jaunty; urgency=low
+
+ [ Ben Collins ]
+
+ * lirc_gpio: Forward ported to current kernel (jaunty)
+ * configs: Enable LIRC_GPIO on 64-bit/32-bit x86
+ - LP: #298791
+
+ [ Jeff Layton ]
+
+ * SAUCE: cifs: make sure we allocate enough storage for socket address
+ - LP: #318565
+
+ [ Tim Gardner ]
+
+ * check-abi: Return success when ABI skip is requested and no ABI files exist.
+ This ought to fix the armel FTBS.
+
+ -- Tim Gardner <tim.gardner@canonical.com> Thu, 22 Jan 2009 06:42:49 -0700
+
+linux (2.6.28-5.13) jaunty; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Revert "SAUCE: don't use buggy _BCL/_BCM/_BQC for backlight control"
+
+ [ Tim Gardner ]
+
+ * Fix udeb generation breakage caused by the previous armel versatile
+ flavour config update.
+
+ -- Tim Gardner <tim.gardner@canonical.com> Wed, 21 Jan 2009 12:38:35 -0700
+
+linux (2.6.28-5.12) jaunty; urgency=low
+
+ [ Ante ]
+
+ * Update drbd to 8.3.0
+
+ [ Dave Airlie ]
+
+ * i915/drm: provide compat defines for userspace for certain struct
+
+ [ Eric Anholt ]
+
+ * drm/i915: Don't double-unpin buffers if we take a signal in
+ * drm/i915: Don't complain when interrupted while pinning in execbuffers.
+ * drm/i915: Don't allow objects to get bound while VT switched.
+
+ [ Jani Monoses ]
+
+ * Fix webcam having USB ID 0ac8:303b
+ - LP: #292086
+
+ [ Jesse Barnes ]
+
+ * drm/i915: set vblank enabled flag correctly across IRQ
+ * drm/i915: don't enable vblanks on disabled pipes
+
+ [ Michael Casadevall ]
+
+ * [arm] Fix kexec on ARM by properly calling the relocation function
+
+ [ Tim Gardner ]
+
+ * Enabled CONFIG_PID_NS=y for i386/amd64
+ * SAUCE: Increase ATA_TMOUT_PMP_SRST_WAIT to 5 seconds.
+ - LP: #318978
+ * Update armel versatile config
+ - LP: #314789
+ * Enabled CONFIG_RT2860=m for i386/amd64
+ * Enabled CONFIG_RT2870=m for i386/amd64
+
+ [ Upstream Kernel Changes ]
+
+ * Input: atkbd - add keyboard quirk for HP Pavilion ZV6100 laptop
+ - LP: #291878
+ * ALSA: hda - Add quirk for another HP dv7
+ * ALSA: hda - Add quirk for HP6730B laptop
+ * ALSA: caiaq - Fix Oops with MIDI
+ * ALSA: hda - Fix typos for AD1882 codecs
+ * x86: fix intel x86_64 llc_shared_map/cpu_llc_id anomolies
+ * x86: default to SWIOTLB=y on x86_64
+ * CIFS: make sure that DFS pathnames are properly formed
+ * ring-buffer: prevent false positive warning
+ * ring-buffer: fix dangling commit race
+ * iwlwifi: use GFP_KERNEL to allocate Rx SKB memory
+ * tx493[89]ide: Fix length for __ide_flush_dcache_range
+ * tx4939ide: Do not use zero count PRD entry
+ * SCSI: eata: fix the data buffer accessors conversion regression
+ * USB: emi26: fix oops on load
+ * x86, UV: remove erroneous BAU initialization
+ * x86: fix incorrect __read_mostly on _boot_cpu_pda
+ * vmalloc.c: fix flushing in vmap_page_range()
+ * fs: symlink write_begin allocation context fix
+ * cgroups: fix a race between cgroup_clone and umount
+ * dm raid1: fix error count
+ * dm log: fix dm_io_client leak on error paths
+ * minix: fix add link's wrong position calculation
+ * md: fix bitmap-on-external-file bug.
+ * sched_clock: prevent scd->clock from moving backwards, take #2
+ * devices cgroup: allow mkfifo
+ * SCSI: aha152x_cs: Fix regression that keeps driver from using shared
+ interrupts
+ * ioat: fix self test for multi-channel case
+ * USB: isp1760: use a specific PLX bridge instead of any bdridge
+ * USB: isp1760: Fix probe in PCI glue code
+ * USB: unusual_devs.h additions for Pentax K10D
+ * inotify: fix type errors in interfaces
+ * Move compat system call declarations to compat header file
+ * Convert all system calls to return a long
+ * Rename old_readdir to sys_old_readdir
+ * Remove __attribute__((weak)) from sys_pipe/sys_pipe2
+ * Make sys_pselect7 static
+ * Make sys_syslog a conditional system call
+ * System call wrapper infrastructure
+ * powerpc: Enable syscall wrappers for 64-bit
+ * s390: enable system call wrappers
+ * System call wrapper special cases
+ * System call wrappers part 01
+ * System call wrappers part 02
+ * System call wrappers part 03
+ * System call wrappers part 04
+ * System call wrappers part 05
+ * System call wrappers part 06
+ * System call wrappers part 07
+ * System call wrappers part 08
+ * System call wrappers part 09
+ * System call wrappers part 10
+ * System call wrappers part 11
+ * System call wrappers part 12
+ * System call wrappers part 13
+ * System call wrappers part 14
+ * System call wrappers part 15
+ * System call wrappers part 16
+ * System call wrappers part 17
+ * System call wrappers part 18
+ * System call wrappers part 19
+ * System call wrappers part 20
+ * System call wrappers part 21
+ * System call wrappers part 22
+ * System call wrappers part 23
+ * System call wrappers part 24
+ * System call wrappers part 25
+ * System call wrappers part 26
+ * System call wrappers part 27
+ * System call wrappers part 28
+ * System call wrappers part 29
+ * System call wrappers part 30
+ * System call wrappers part 31
+ * System call wrappers part 32
+ * System call wrappers part 33
+ * s390 specific system call wrappers
+ * x86: fix RIP printout in early_idt_handler
+ * Fix timeouts in sys_pselect7
+ * USB: another unusual_devs entry for another bad Argosy storage device
+ * USB: storage: extend unusual range for 067b:3507
+ * USB: storage: recognizing and enabling Nokia 5200 cell phoes
+ * HID: fix error condition propagation in hid-sony driver
+ * fix switch_names() breakage in short-to-short case
+ * nfs: remove redundant tests on reading new pages
+ * eCryptfs: check readlink result was not an error before using it
+ * mvsas: increase port type detection delay to suit Seagate's 10k6 drive ST3450856SS 0003
+ * x86: avoid theoretical vmalloc fault loop
+ * ath9k: enable RXing of beacons on STA/IBSS
+ * mm lockless pagecache barrier fix
+ * powerpc: Disable Collaborative Memory Manager for kdump
+ * ibmvfc: Delay NPIV login retry and add retries
+ * ibmvfc: Improve async event handling
+ * getrusage: RUSAGE_THREAD should return ru_utime and ru_stime
+ * ath5k: ignore the return value of ath5k_hw_noise_floor_calibration
+ * mm: fix assertion
+ * XFS: truncate readdir offsets to signed 32 bit values
+ * Linux 2.6.28.1
+ * eCryptfs: Filename Encryption: Tag 70 packets
+ * eCryptfs: Filename Encryption: Header updates
+ * eCryptfs: Filename Encryption: Encoding and encryption functions
+ * eCryptfs: Filename Encryption: filldir, lookup, and readlink
+ * eCryptfs: Filename Encryption: mount option
+ * eCryptfs: Replace %Z with %z
+ * eCryptfs: Fix data types (int/size_t)
+ * eCryptfs: kerneldoc for ecryptfs_parse_tag_70_packet()
+ * eCryptfs: Clean up ecryptfs_decode_from_filename()
+ * fs/ecryptfs/inode.c: cleanup kerneldoc
+ * staging-p80211: Kill directly reference of netdev->priv
+ * staging-slicoss: Kill directly reference of netdev->priv
+ * staging-winbond: Kill directly reference of netdev->priv
+ * Staging: go7007: fixes due to video_usercopy api change
+ * Staging: go7007: fixes due v4l2_file_operations api change
+ * staging: correct dubious use of !x & y
+ * Staging: w35und: make wb35_probe() and wb35_disconnect() funtions static
+ * Staging: w35und: remove unused wb35_open() and wb35_close() functions
+ * Staging: w35und: use msleep() and udelay()
+ * Staging: w35und: remove the no-op pa_stall_execution macro
+ * Staging: w35und: purb typedef removal
+ * Staging: w35und: reg queue struct typedef removal
+ * Staging: w35und: wb35reg struct typedef removal
+ * Staging: w35und: padapter struct typedef removal
+ * Staging: w35und: merge wblinux struct to adapter
+ * Staging: w35und: wb35_probe() cleanup
+ * Staging: w35und: remove usb_submit_urb wrapper function
+ * Staging: w35und: remove usb_alloc_urb wrapper function
+ * w35und: remove dead code from wbusb_f.h
+ * Staging: w35und: remove true/false boolean macros
+ * Staging: w35und: OS_MEMORY_ALLOC wrapper removal
+ * Staging: w35und: usb_put_dev() is missing from wb35_disconnect()
+ * Staging: w35und: remove macro magic from MLME_GetNextPacket()
+ * Staging: w35und: plug memory leak in wbsoft_tx()
+ * Staging: w35und: move supported band initialization out of wb35_probe()
+ * Staging: w35und: remove timer wrappers
+ * Staging: w35und: remove atomic op wrappers
+ * Staging: w35und: remove memcpy/memcmp wrappers
+ * Staging: w35und: remove abs() and BIT() macros
+ * Staging: w35und: remove unused macros from common.h
+ * Staging: w35und: remove unused link status code
+ * Staging: w35und: #include cleanup
+ * Staging: w35und: remove some dead code
+ * Staging: w35und: move source files to one directory
+ * Staging: w35und: move struct wbsoft_priv to core.h and use it
+ * Staging: w35und: remove ->adapter from struct _HW_DATA_T
+ * Staging: w35und: clean up adapter.h a bit
+ * Staging: w35und: merge struct wb35_adapter to struct wbsoft_priv
+ * Staging: w35und: remove global struct ieee80211_hw
+ * Staging: w35und: inline DRIVER_AUTHOR and DRIVER_DESC macros
+ * Staging: w35und: clean up wblinux.c a bit
+ * Staging: w35und: remove unused ->ShutDowned member from struct
+ LOCAL_PARA
+ * Staging: w35und: move global wbsoft_enabled to struct wbsoft_priv
+ * Staging: w35und: move packet_came() to wb35rx.c
+ * Staging: w35und: remove ->skb_array from struct wbsoft_priv
+ * Staging: w35und: remove ->shutdown from struct wbsoft_priv
+ * Staging: w35und: make functions local to mds.c static
+ * Staging: w35und: make functions local to mlmetxrx.c static
+ * Staging: w35und: remove dead code from mto.c
+ * Staging: w35und: make functions local to wb35rx.c static
+ * Staging: w35und: make functions local to wb35tx.c static
+ * Staging: w35und: remove dead code from wbhal.c
+ * Staging: w35und: remove rxisr.c as dead code
+ * Staging: w35und: fix Kconfig
+ * Staging: w35und: fix config build warnings
+ * Staging: wlan-ng: Remove PCI/PLX/PCMCIA files.
+ * Staging: wlan-ng: Update Help text to mention prism3 devices.
+ * Staging: wlan-ng: Delete PCI/PLX/PCMCIA-specific code.
+ * Staging: wlan-ng: Make wlan-ng use WEXT mode by default.
+ * Staging: wlan-ng: Eliminate more <2.6 kernel support.
+ * Staging: wlan-ng: Eliminate all backwards-compatibility for <2.6.13 kernels.
+ * Staging: wlan-ng: Eliminate a boatload of tertiaryAP-only code.
+ * Staging: wlan-ng: Remove AP-only code from MLME functions.
+ * Staging: wlan-ng: Get rid of the MTU tests in the rx conversion path.
+ * Staging: wlan-ng: Eliminate one more rx mtu test.
+ * Staging: wlan-ng: Eliminate local 'version.h'
+ * Staging: wlan-ng: Eliminate usage of procfs.
+ * Staging: wlan-ng: Use standard kernel integer (u32/s32/etc) types.
+ * Staging: wlan-ng: Eliminate all backwards-compatible kernel code.
+ * Staging: wlan-ng: Wireless Extension support is mandatory.
+ * Staging: wlan-ng: use WIRELESS_EXT, not CONFIG_WIRELESS_EXT
+ * Staging: wlan-ng: Delete a large pile of now-unused code.
+ * Staging: wlan-ng: Delete a pile of unused mibs. And fix WEXT SET_TXPOWER.
+ * Staging: wlan-ng: Consolidate wlan-ng into a single module.
+ * Staging: wlan-ng: Purge all MIBs not used internally.
+ * Staging: wlan-ng: p80211netdev.c fix netdev alloc to prevent oops on device start
+ * Staging: wlan-ng: prism2_usb.c always enable the card in probe_usb
+ * Staging: wlan-ng: hfa384x_usb.c use newest version of 384x_drvr_start
+ * Staging: wlan-ng: p80211wext.c add latest changes & remove extra nulls from wext_handlers
+ * Staging: wlan-ng: p80211wext don't set default key id twice
+ * Staging: wlan-ng: hfa384x_usbin_callback: check for hardware removed
+ * Staging: wlan-ng: p80211conv.c copy code from wlan-ng-devel branch to not drop packets
+ * Staging: wlan-ng: remove unused #include <version.h>
+ * Staging: wlan-ng: p80211wext.c: use ARRAY_SIZE
+ * Staging: wlan-ng: fix compiler warnings
+ * Staging: wlan-ng: skb_p80211_to_ether() - payload_length is unsigned, check before subtraction
+ * Staging: at76_usb: update drivers/staging/at76_usb w/ mac80211 port
+ * Staging: at76_usb: fix build breakage
+ * Staging: at76_usb: remove compiler warnings
+ * Staging: at76_usb: fix up all remaining checkpatch.pl warnings
+ * Staging: at76_usb: cleanup dma on stack issues
+ * Staging: poch: Block size bug fix
+ * Staging: poch: Update TODO list
+ * Staging: poch: Correct pages from bytes.
+ * Staging: poch: minor fixes
+ * Staging: poch: Fix build warnings
+ * Staging: poch: Rx control register init
+ * Staging: poch: Fix user space protocol syncing
+ * Staging: poch: Fine grained locking
+ * Staging: sxg: remove typedefs
+ * Staging: sxg: break the build in a cleaner way when !x86
+ * Staging: sxg: update README
+ * staging: struct device - replace bus_id with dev_name(), dev_set_name()
+ * Staging: echo: remove typedefs
+ * Staging: echo: Lindent drivers/staging/echo
+ * Staging: go7007: saa7134 updates
+ * Staging: go7007: add sensoray 2250/2251 support
+ * Staging: go7007: Convert driver to use video_ioctl2
+ * Staging: go7007: annotate code pointers
+ * Staging: go7007: fix minor build warnings
+ * Staging: go7007: small cleanup
+ * Staging: go7007: add some more v4l2 ioctls
+ * Staging: et131x: Cleanup et131x_debug.h defines
+ * Staging: et131x: fix build failure
+ * Staging: et131x: remove unused variable in et1310_tx.c
+ * Staging: usbip: cleanup kerneldoc
+ * Staging: slicoss: use kzalloc
+ * Staging: slicoss: use correct type for memory allcations
+ * Staging: slicoss: use request_firmware
+ * Staging: add agnx wireless driver
+ * Staging: agnx: fix build errors due to ssid removal
+ * Staging: agnx: fix build errors due to rate control API changes
+ * Staging: agnx: fix build warnings
+ * Staging: add otus Atheros wireless network driver
+ * Staging: otus: fix netdev->priv usage
+ * Staging: otus: fix name clash
+ * Staging: otus: fix urb callback function type
+ * Staging: otus: remove dependence on kernel version
+ * Staging: add rt2860 wireless driver
+ * Staging: rt2860: disable root hack for reading files
+ * Staging: rt2860: fix up netdev->priv usage
+ * Staging: rt2860: use standard bit-reverse function
+ * Staging: rt2860: Fix minor compiler warnings
+ * Staging: rt2860: enable WPA_SUPPLICANT support
+ * Staging: Add ServerEngines benet 10Gb ethernet driver
+ * Staging: benet: fix netif api breakage
+ * Staging: benet: fix up netdev->priv change
+ * Staging: benet: build is broken unless CONFIG_NETPOLL is enabled
+ * Staging: benet: patch to remove subdirectories
+ * Staging: benet: fix build errors when CONFIG_NETPOLL is off
+ * Staging: benet: fix build error.
+ * Staging: benet: patch to use offsetof() instead of AMAP_BYTE_OFFSET()
+ * Staging: benet: fix problems reported by checkpatch
+ * Staging: benet: cleanup a check while posting rx buffers
+ * Staging: add comedi core
+ * Staging: comedi: fix up a lot of checkpatch.pl warnings
+ * Staging: comedi: fix checkpatch.pl errors in comedi_fops.c
+ * Staging: comedi: fix build error in comedilib.h
+ * Staging: comedi: add kcomedilib to the tree
+ * Staging: comedi: set up infrastructure for individual drivers
+ * Staging: comedi: add local copy of interrupt.h
+ * Staging: comedi: add pci and usb wrapper header files
+ * Staging: comedi: comedi driver common function module
+ * Staging: comedi: add mite comedi pci driver
+ * Staging: comedi: add usb usbdux driver
+ * Staging: comedi: add usb usbduxfast driver
+ * Staging: comedi: add usb dt9812 driver
+ * Staging: comedi: add comedi_bond driver
+ * Staging: comedi: add comedi_test driver
+ * Staging: comedi: add comedi_parport driver
+ * Staging: comedi: dt9812: fix up a lot of coding style issues
+ * Staging: comedi: dt9812: remove dt9812.h
+ * Staging: comedi: dt9812: remove typedefs
+ * Staging: comedi: dt9812: fix sparse warnings
+ * Staging: comedi: usbdux: remove kernel version checks
+ * Staging: comedi: usbdux: code style cleanups
+ * Staging: comedi: usbdux: remove // comments
+ * Staging: comedi: usbdux: fix up printk calls
+ * Staging: comedi: usbdux: remove checkpatch.pl warnings
+ * Staging: comedi: usbdux: remove typedef
+ * Staging: comedi: usbdux: remove comedi usb wrappers
+ * Staging: comedi: usbduxfast: remove comedi usb wrappers
+ * Staging: comedi: dt9812: remove #ifdef that is not needed
+ * Staging: comedi: remove usb wrappers
+ * Staging: comedi: remove PCI wrappers
+ * Staging: comedi: add icp_multi driver
+ * Staging: comedi: add me4000 driver
+ * Staging: comedi: fix checkpatch.pl issues in comedi_bond.c
+ * Staging: comedi: fix checkpatch.pl issues in comedi_fc.c
+ * Staging: comedi: remove typedefs from comedi_bond.c
+ * Staging: comedi: fix sparse issues in comedi_bond.c
+ * Staging: comedi: fix checkpatch.pl issues in comedi_test.c
+ * Staging: comedi: fix sparse issues in comedi_test.c
+ * Staging: comedi: remove typedefs from comedi_test.c
+ * Staging: comedi: fix comedi_parport.c checkpatch.pl issues.
+ * Staging: comedi: fix comedi_fc.h checkpatch.pl issues.
+ * Staging: comedi: fix comedi_pci.h checkpatch.pl issues.
+ * Staging: comedi: comedi_pci.h: remove unneeded wrapper
+ * Staging: comedi: comedi_pci.h: remove comedi_pci_enable_no_regions
+ * Staging: comedi: comedi_pci.h: remove comedi_pci_disable_no_regions
+ * Staging: comedi: add s626 driver
+ * Staging: comedi: add rtd520 driver
+ * Staging: comedi: add me_daq driver
+ * Staging: comedi: me_daq: fix checkpatch.pl issues
+ * Staging: comedi: me_daq: remove typedefs
+ * Staging: comedi: me_daq: fix sparse issues
+ * Staging: comedi: fix checkpatch.pl warning in interrupt.h
+ * Staging: comedi: fix build if CONFIG_PROC_FS is not set
+ * Staging: add asus_oled driver
+ * Staging: asus_oled: fix build dependancy
+ * Staging: Add the Meilhaus ME-IDS driver package
+ * Staging: meilhaus: fix __symbol_get problems
+ * Staging: add lcd-panel driver
+ * Staging: panel: major checkpatch cleanup
+ * Staging: panel: remove ifdefs and code for pre-2.6 kernels
+ * Staging: panel: remove support for smartcards
+ * Staging: add Driver for Altera PCI Express Chaining DMA reference design
+ * Staging: add rtl8187se driver
+ * Staging: rtl8187se: remove unneeded files
+ * Staging: rtl8187se: make the built module be the proper name
+ * Staging: rtl8187se: remove duplicate pci ids
+ * Staging: me4000: switch to list_for_each*()
+ * Staging: usbip: switch to list_for_each_entry()
+ * Staging: add princeton instruments usb camera driver
+ * Staging: add mimio xi driver
+ * Staging: add rt2870 wireless driver
+ * Staging: rt2870: disable root hack for reading files
+ * Staging: rt2870: fix up netdev->priv usage
+ * Staging: add frontier tranzport and alphatrack drivers
+ * Staging: frontier: remove unused alphatrack_sysfs.c file
+ * Staging: frontier: fix compiler warnings
+ * Staging: add epl stack
+ * Staging: epl: run Lindent on all kernel/*.h files
+ * Staging: epl: run Lindent on all user/*.h files
+ * Staging: epl: run Lindent on *.h files
+ * Staging: epl: run Lindent on *.c files
+ * Staging: epl: hr timers all run in hard irq context now
+ * Staging: epl: fix netdev->priv b0rkage
+ * Staging: add android framework
+ * Staging: android: add binder driver
+ * Staging: android: binder: Fix gcc warnings about improper format specifiers for size_t in printk
+ * staging: android: binder: Fix use of euid
+ * Staging: android: add logging driver
+ * Staging: android: add ram_console driver
+ * Staging: android: add timed_gpio driver
+ * Staging: android: timed_gpio: Rename android_timed_gpio to timed_gpio
+ * Staging: android: remove dummy android.c driver
+ * Staging: android: add lowmemorykiller driver
+ * Staging: android: binder: fix build errors
+ * staging: __FUNCTION__ is gcc-specific, use __func__
+ * V4L/DVB (10176a): Switch remaining clear_user_page users over to
+ clear_user_highpage
+
+ [ Zhenyu Wang ]
+
+ * agp/intel: add support for G41 chipset
+
+ -- Tim Gardner <tim.gardner@canonical.com> Sun, 18 Jan 2009 20:22:54 -0700
+
+linux (2.6.28-4.11) jaunty; urgency=low
+
+ [ Mario Limonciello ]
+
+ * SAUCE: Enable HDMI audio codec on Studio XPS 1340
+ - LP: #309508
+
+ [ Tim Gardner ]
+
+ * Fix armel d-i FTBSs
+
+ [ Upstream Kernel Changes ]
+
+ * USB: re-enable interface after driver unbinds
+
+ -- Tim Gardner <tim.gardner@canonical.com> Tue, 13 Jan 2009 16:33:08 -0700
+
+linux (2.6.28-4.10) jaunty; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * update kernel bootloader recommends: to prefer grub
+ - LP: #314004
+ * SAUCE: don't use buggy _BCL/_BCM/_BQC for backlight control
+ - LP: #311716
+ * SAUCE: test-suspend -- add the suspend test scripts
+ - LP: #316419
+
+ [ Colin Watson ]
+
+ * Enable udebs for armel
+
+ [ Tim Gardner ]
+
+ * SAUCE: Dell laptop digital mic does not work, PCI 1028:0271
+ - LP: #309508
+ * Enable CIFS_XATTR=y and CONFIG_CIFS_POSIX=y
+ - LP: #220658
+
+ -- Tim Gardner <tim.gardner@canonical.com> Thu, 08 Jan 2009 10:38:22 -0700
+
+linux (2.6.28-4.9) jaunty; urgency=low
+
+ [ Tim Gardner ]
+
+ * Restore DM_CRYPT, AES, ECB, and CBC as modules. This fixes
+ some installer issues with encrypted /home and Private directories.
+ * Take one more stab at building armel without module or ABI errors.
+
+ -- Tim Gardner <tim.gardner@canonical.com> Tue, 06 Jan 2009 08:38:23 -0700
+
+linux (2.6.28-4.8) jaunty; urgency=low
+
+ * Fix i386/amd64 FTBS by ignoring all module and ABI changes,
+ not something you would normally do, but I'm sure the ABI
+ has not changed. This will probably also allow the ARM builds to complete.
+
+ -- Tim Gardner <tim.gardner@canonical.com> Mon, 05 Jan 2009 14:42:58 -0700
+
+linux (2.6.28-4.7) jaunty; urgency=low
+
+ [ Tim Gardner ]
+
+ * Enable CONFIG_ATH5K=m for i386/amd64
+ - LP: #306719
+ * Build all i386/amd64 AGP/DRM components as modules.
+ - LP: #312721
+ * git commands are now installed outside the default $PATH
+ Use 'git CMD' instead of 'git-CMD'.
+ * Build in most PATA/SATA drivers. This should allow most i386/amd64 systems to boot
+ without an initramfs, though some support work is still required in initramfs-tools
+ and grub.
+ - LP: #311730
+
+ -- Tim Gardner <tim.gardner@canonical.com> Fri, 02 Jan 2009 07:33:09 -0700
+
+linux (2.6.28-4.6) jaunty; urgency=low
+
+ [ Tim Gardner ]
+
+ * Enable CONFIG_X86_E_POWERSAVER=m for i386 generic
+ - LP: #237405
+ * Build i386 AGP drivers as modules
+ - LP: #312721
+ * Build i386 DRM as a module
+ - LP: #312721
+
+ [ Upstream Kernel Changes ]
+
+ * drm/i915: Add missing userland definitions for gem init/execbuffer.
+ - LP: #308387
+
+ -- Tim Gardner <tim.gardner@canonical.com> Mon, 29 Dec 2008 09:16:47 -0700
+
+linux (2.6.28-4.5) jaunty; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * clean up module dependancy information on package removal/purge
+ - LP: #300773
+
+ [ Tim Gardner ]
+
+ * Update iscsitarget to 0.4.17
+ * Build in ext{234}
+ * Build in Crypto modules AES, CBC, ECB
+ * Build in ACPI AC,BATTERY,BUTTON,FAN,PCI_SLOT,PROCESSOR,SBS,THERMAL,WMI
+ * Build in AGP intel,via,sis,ali,amd,amd64,efficeon,nvidia,sworks
+ * Build in ata,dev_dm,dev_loop,dev_md,dev_sd,dev_sr
+ * Build in BT l2cap,rfcomm,sco
+ * Reduce CONFIG_LEGACY_PTY_COUNT to 0
+ * Build in CDROM_PKTCDVD and CHR_DEV_SG
+ * Build in CPU_FREQ
+ GOV_CONSERVATIVE,GOV_ONDEMAND,GOV_POWERSAVE,GOV_USERSPACE,STAT,TABLE
+ * Build in DM CRYPT,MIRROR,MULTIPATH,SNAPSHOT
+ * Build in DRM
+ * Build in HID
+ * Build in HOTPLUG PCI,PCIE
+ * Build in I2C
+ * Build in IEEE1394 OHCI1394
+ * Build in INPUT EVDEV
+ * Build in IPV6
+ * Build in MMC
+ * Build in PACKET
+ * Enable both IEEE1394 (Firewire) stacks as modules
+ - LP: #276463
+ * Disable SUNRPC_REGISTER_V4
+ - LP: #306016
+ * Enable dm-raid4-5
+ - LP: #309378
+ * Build in PPP
+ * Build in RFKILL
+ * Build in USB SERIAL
+
+ [ Upstream Kernel Changes ]
+
+ * Rebased to v2.6.28
+
+ -- Tim Gardner <tim.gardner@canonical.com> Thu, 18 Dec 2008 21:18:44 -0700
+
+linux (2.6.28-3.4) jaunty; urgency=low
+
+ [ Tim Gardner ]
+
+ * Build ecryptfs into the kernel
+ - LP: #302870
+ * Deprecated gnbd
+
+ [ Upstream Kernel Changes ]
+
+ * Rebased to v2.6.28-rc8
+
+ -- Tim Gardner <tim.gardner@canonical.com> Wed, 10 Dec 2008 22:45:13 -0700
+
+linux (2.6.28-2.3) jaunty; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * update the templates so that we have spaces following the title line
+
+ [ Tim Gardner ]
+
+ * Add upload number to kernel version signature. This has the side effect
+ of renaming kernel packages back to the original way, e.g., without '-ub'
+ in the name.
+
+ -- Tim Gardner <tim.gardner@canonical.com> Thu, 04 Dec 2008 12:18:31 -0700
+
+linux (2.6.28-2.2) jaunty; urgency=low
+
+ [ Andy Whitcroft ]
+
+ * Revert "SAUCE: (no-up) version: Implement version_signature proc file."
+ * SAUCE: (no-up) version: Implement version_signature proc file.
+ * SAUCE: serial: RS485 ioctl structure uses __u32 include linux/types.h
+ - LP: #303711
+
+ [ Tim Gardner ]
+
+ * UBUNTU: Removed CONFIG_DRM_VIA_CHROME9 since it is upstream.
+ * UBUNTU: Removed ubuntu/via_chrome9
+
+ [ Upstream Kernel Changes ]
+
+ * Rebased to v2.6.28-rc7
+
+ -- Tim Gardner <tim.gardner@canonical.com> Tue, 02 Dec 2008 07:33:32 -0700
+
+linux (2.6.28-1.1) jaunty; urgency=low
+
+ [ Amit Kucheria ]
+
+ * SAUCE: make fc transport removal of target configurable
+ * SAUCE: pm: Config option to disable handling of console during
+ suspend/resume
+ * SAUCE: Adds support for COMPAL JHL90 webcam
+ * Map armel to arm to all editconfigs to work correctly
+ * Add armel to getabis for completeness sake
+ * Add -ub to our versioning to allow kerneloops.org to identify us
+
+ [ Andy Whitcroft ]
+
+ * Fix Vcs-Git path for the kernel repository.
+ - LP: #296915
+
+ [ Ben Collins ]
+
+ * SAUCE: Lower warning level of some PCI messages
+ - LP: #159241
+ * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps
+ * SAUCE: tulip: Let dmfe handle davicom on non-sparc
+ * SAUCE: tulip: Define ULI PCI ID's
+ * SAUCE: (no-up) version: Implement version_signature proc file.
+ * SAUCE: (no-up) connector.h: Add idx/val for drbd
+ * SAUCE: (no-up) swap: Add notify_swap_entry_free callback for compcache
+ * SAUCE: drivers: Remove some duplicate device entries in various modules
+ * SAUCE: (no-up) [AppArmor] merge with upstream subversion r1291
+ * SAUCE: (no-up) Enable ubuntu extra subdirectory
+ * SAUCE: (no-up) ACPI: initramfs DSDT override support
+ * ubuntu: Add drbd module
+ * ubuntu: Add iscsitarget module
+ * ubuntu: Add BOM for iscsitarget
+ * ubuntu: Add squashfs driver
+ * SAUCE: (no-up) Check for squashfs superblock in initramfs mounting.
+ * ubuntu: Add aufs module
+ * ubuntu: Added atl2 driver
+ * ubuntu: Added et131x driver
+ * ubuntu: Add dm-raid4-5 driver
+ * ubuntu: Add ndiswrapper driver
+ * ubuntu: Added ram backed compressed swap module (compcache)
+ * ubuntu: Add misc drivers from hardy lum
+ * ubuntu: Add heci driver 3.2.0.24
+ * ubuntu: Add ov511 and bt-sco drivers
+ * ubuntu: Add acx, prism2_usb wireless drivers
+ * ubuntu: Add at76 driver to build
+ * ubuntu: Add fsam7400 sw kill switch driver
+ * ubuntu: Added qc-usb driver
+ * ubuntu: e1000e: Upgraded module to 0.4.1.7
+ * ubuntu: Added rfkill drivers
+ * ubuntu: VIA - Add VIA DRM Chrome9 3D engine
+ * ubuntu: unionfs: Added v1.4 module from hardy
+ * ubuntu: Add LIRC driver
+ * ubuntu: Add GFS driver
+ * ubuntu: New tlsup driver for toshiba laptops
+ * SAUCE: (no-up) Export lookup_has for aufs
+ * SAUCE: (no-up) Modularize vesafb
+ * ubuntu: Config files
+ * Disable some modules that need porting to 2.6.28
+ * ubuntu: Fixup headers creation to include arch/*/include
+ * ubuntu/module-check: Ignore comment lines
+
+ [ Chuck Short ]
+
+ * SAUCE: ata: blacklist FUJITSU MHW2160BH PL
+
+ [ cking ]
+
+ * SAUCE: Enable speedstep for sonoma processors.
+
+ [ Colin Ian King ]
+
+ * ubuntu: Add dm-loop
+ * SAUCE: cx88: Support Leadtek WinFast DTV2000 H version J.
+ * SAUCE: fix kernel oops in VirtualBox during paravirt patching
+ * SAUCE: qc-usb: Enable Logitech QuickCam Messenger
+ * SAUCE: appleir: Enable driver for new MacBook Pro
+
+ [ Colin Watson ]
+
+ * Enable configfs, fuse, jfs, reiserfs, and xfs for armel
+ * Extend debian/d-i/ modules handling to make armel easier to support
+ * Create udebs for armel
+
+ [ Fabio M. Di Nitto ]
+
+ * ubuntu: update GFS Cluster File System
+
+ [ Kees Cook ]
+
+ * SAUCE: AppArmor: update to upstream subversion r1302
+
+ [ Leann Ogasawara ]
+
+ * Add automatic model setting for Samsung Q45
+ * Add Dell Dimension 9200 reboot quirk
+
+ [ Mackenzie Morgan ]
+
+ * SAUCE: Add quirk for ASUS Z37E to make sound audible after resume
+
+ [ Matthew Garrett ]
+
+ * SAUCE: hostap: send events on data interface as well as master
+ interface
+
+ [ Michael Frey (Senior Manager, MID ]
+
+ * SAUCE: Send HCI_RESET for Broadcomm 2046
+
+ [ Michael Haas ]
+
+ * add proper aufs source tree from 20080922
+ * Fix AUFS compilation in vfsub.c
+ * Add splice-2.6.23.patch from AUFS to export a symbol needed by AUFS
+ * Add put_filp.patch from AUFS to export a symbol needed by AUFS
+ * Add deny_write_access.patch from AUFS - export deny_write_access
+ * Add sec_perm-2.6.24.patch from AUFS - export security_inode_permission
+ * make sure TMPFS_MAGIC is defined in AUFS Makefile
+ * SAUCE: Revert aufs changes from AppArmor merge
+
+ [ Mohamed Abbas ]
+
+ * SAUCE: iwlagn -- fix rfkill when on when driver loaded
+
+ [ Phillip Lougher ]
+
+ * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets.
+
+ [ Stefan Bader ]
+
+ * SAUCE: (no-up) Export dm_disk function of device-mapper
+ * SAUCE: Restore VT fonts on switch
+ * SAUCE: mmc: Increase power_up deleay to fix TI readers
+ * gfs1: GFS1 can't create more than 4kb file
+ * uvcvideo: Commit streaming parameters when enabling the video stream.
+
+ [ Tim Gardner ]
+
+ * SAUCE: Add extra headers to linux-libc-dev
+ * SAUCE: Catch nonsense keycodes and silently ignore
+ * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM
+ * SAUCE: Guest OS does not recognize a lun with non zero target id on
+ Vmware ESX Server
+ * SAUCE: (no-up) Take care of orinoco_cs overlap with hostap_cs
+ * ubuntu: Add GNBD driver
+ * SAUCE: e1000e: Map NV RAM dynamically only when needed.
+ * SAUCE: Correctly blacklist Thinkpad r40e in ACPI
+ * SAUCE: Update Wacom tablet driver to 1.49
+ * SAUCE: Fix Wacom tablet 1.49 porting errors
+ * SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit controller
+ * SAUCE: Fix Oops in wlan_setup
+ * SAUCE: ipw2200: change default policy for auto-associate
+ * Dell Wireless 365 needs BTUSB_RESET quirk.
+ * ndiswrapper remote buffer overflows on long ESSIDs (CVE 2008-4395)
+ * Disabled ubuntu/e1000e config
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ
+ handler"
+ * Revert "x86, early_ioremap: fix fencepost error"
+ * mac80211: fix two issues in debugfs
+ * iwl3945: do not send scan command if channel count zero
+
+ -- Ben Collins <ben.collins@canonical.com> Fri, 07 Nov 2008 09:37:42 -0700
+
+linux (2.6.27-8.17) intrepid-proposed; urgency=low
+
+ [ John W. Linville ]
+
+ * SAUCE: iwlagn: avoid sleep in softirq context
+ -LP: #286285
+
+ [ Tim Gardner ]
+
+ * Dell Wireless 365 needs BTUSB_RESET quirk.
+ - LP: #293670
+ * SAUCE: ALSA: hda: make a STAC_DELL_EQ option (version 2)
+ - LP: #293271
+
+ [ Upstream Kernel Changes ]
+
+ * iwlagn: downgrade BUG_ON in interrupt
+ * Input: atkbd - expand Latitude's force release quirk to other Dells
+ * fbcon_set_all_vcs: fix kernel crash when switching the rotated consoles
+ * modules: fix module "notes" kobject leak
+ * Driver core: Fix cleanup in device_create_vargs().
+ * Driver core: Clarify device cleanup.
+ * ath9k/mac80211: disallow fragmentation in ath9k, report to userspace
+ * md: Fix rdev_size_store with size == 0
+ * xfs: fix remount rw with unrecognized options
+ * OHCI: Allow broken controllers to auto-stop
+ * USB: OHCI: fix endless polling behavior
+ * USB: Fix s3c2410_udc usb speed handling
+ * USB: EHCI: log a warning if ehci-hcd is not loaded first
+ * usb gadget: cdc ethernet notification bugfix
+ * usb: musb_hdrc build fixes
+ * drm/i915: fix ioremap of a user address for non-root (CVE-2008-3831)
+ * DVB: au0828: add support for another USB id for Hauppauge HVR950Q
+ * DVB: sms1xxx: support two new revisions of the Hauppauge WinTV
+ MiniStick
+ * security: avoid calling a NULL function pointer in
+ drivers/video/tvaudio.c
+ * Linux 2.6.27.3
+ -LP: #294152
+
+ * gpiolib: fix oops in gpio_get_value_cansleep()
+ * edac cell: fix incorrect edac_mode
+ * x86 ACPI: fix breakage of resume on 64-bit UP systems with SMP kernel
+ * sched: fix the wrong mask_len
+ * USB: cdc-wdm: make module autoload work
+ * USB: don't rebind drivers after failed resume or reset
+ * USB: fix memory leak in cdc-acm
+ * USB: Speedtouch: add pre_reset and post_reset routines
+ * dm kcopyd: avoid queue shuffle
+ * dm snapshot: fix primary_pe race
+ * amd_iommu: fix nasty bug that caused ILLEGAL_DEVICE_TABLE_ENTRY errors
+ * CIFS: fix saving of resume key before CIFSFindNext
+ * netfilter: xt_iprange: fix range inversion match
+ * netfilter: snmp nat leaks memory in case of failure
+ * netfilter: restore lost ifdef guarding defrag exception
+ * anon_vma_prepare: properly lock even newly allocated entries
+ * hvc_console: Fix free_irq in spinlocked section
+ * ACPI Suspend: Enable ACPI during resume if SCI_EN is not set
+ * ACPI suspend: Blacklist HP xw4600 Workstation for old code ordering
+ * ACPI suspend: Always use the 32-bit waking vector
+ * proc: fix vma display mismatch between /proc/pid/{maps,smaps}
+ * SCSI: scsi_dh: add Dell product information into rdac device handler
+ * PCI hotplug: cpqphp: fix kernel NULL pointer dereference
+ * V4L/DVB (9300): pvrusb2: Fix deadlock problem
+ * Linux 2.6.27.4
+ -LP: #294155
+
+ -- Tim Gardner <tim.gardner@canonical.com> Tue, 04 Nov 2008 12:16:07 -0700
+
+linux (2.6.27-7.16) intrepid-security; urgency=low
+
+ [ Tim Gardner ]
+
+ * ndiswrapper remote buffer overflows on long ESSIDs (CVE 2008-4395)
+ - LP: #275860
+
+ [ Upstream Kernel Changes ]
+
+ * ext[234]: Avoid printk floods in the face of directory corruption
+ (CVE-2008-3528)
+
+ -- Tim Gardner <tim.gardner@canonical.com> Mon, 03 Nov 2008 13:34:42 -0700
+
+linux (2.6.27-7.15) intrepid-security; urgency=low
+
+ [ Upstream Kernel Changes ]
+
+ * tcp: Restore ordering of TCP options for the sake of inter-operability
+ - LP: #264019
+
+ -- Tim Gardner <tim.gardner@canonical.com> Mon, 27 Oct 2008 19:28:06 -0600
+
+linux (2.6.27-7.14) intrepid; urgency=low
+
+ [ Tim Gardner ]
+
+ * Disable ath5k in 2.6.27
+ - LP: #288148
+
+ -- Tim Gardner <tim.gardner@canonical.com> Thu, 23 Oct 2008 07:40:43 -0600
+
+linux (2.6.27-7.13) intrepid; urgency=low
+
+ [ Stefan Bader ]
+
+ * gfs1: GFS1 can't create more than 4kb file
+
+ [ Tim Gardner ]
+
+ * Revert "SAUCE: x86: Reserve FIRST_DEVICE_VECTOR in used_vectors
+ bitmap.". Use upstream commit to avoid future conflicts.
+ * Revert "STABLE queue: mac80211: fix two issues in debugfs".
+ Use upstream commit to avoid future conflicts.
+ * Revert "x86, early_ioremap: fix fencepost error"
+ Use upstream commit to avoid future conflicts.
+
+ [ Upstream Kernel Changes ]
+
+ * sched_rt.c: resch needed in rt_rq_enqueue() for the root rt_rq
+ * x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap.
+ * mac80211: fix two issues in debugfs
+ * Fix barrier fail detection in XFS
+ * tty: Termios locking - sort out real_tty confusions and lock reads
+ * CIFS: make sure we have the right resume info before calling
+ CIFSFindNext
+ * rfkill: update LEDs for all state changes
+ * libertas: clear current command on card removal
+ * b43legacy: Fix failure in rate-adjustment mechanism
+ * x86, early_ioremap: fix fencepost error
+ * x86: SB450: skip IRQ0 override if it is not routed to INT2 of IOAPIC
+ * x86: improve UP kernel when CPU-hotplug and SMP is enabled
+ * sky2: Fix WOL regression
+ * netdrvr: atl1e: Don't take the mdio_lock in atl1e_probe
+ * Linux 2.6.27.2
+
+ [ Amit Kucheria ]
+
+ * Ubuntu: agp: Fix stolen memory counting on G4X.
+ -LP: 285572
+
+ [ Scott Remnant ]
+
+ * add MODULE_ALIAS to load ipmi_devintf with ipmi_si
+
+ -- Tim Gardner <tim.gardner@canonical.com> Sun, 19 Oct 2008 10:06:21 -0600
+
+linux (2.6.27-7.12) intrepid; urgency=low
+
+ [ Chuck Short ]
+
+ * xen: Add xen modules to virtual flavours.
+
+ [ Mario Limonciello ]
+
+ * SAUCE: Add back in lost commit for Apple BT Wireless Keyboard
+ - LP: #162083
+
+ [ Tim Gardner ]
+
+ * Remove depmod created files from packages.
+ - LP: #250511
+ * Changed default TCP congestion algorithm to 'cubic' (again)
+ - LP: #278801
+ * Update configs for 'disable CONFIG_DYNAMIC_FTRACE'
+ - LP: #263555
+
+ [ Upstream Kernel Changes ]
+
+ * x86: register a platform RTC device if PNP doesn't describe it
+ * disable CONFIG_DYNAMIC_FTRACE due to possible memory corruption on
+ module unload
+
+ -- Tim Gardner <tim.gardner@canonical.com> Fri, 17 Oct 2008 11:25:39 -0600
+
+linux (2.6.27-7.11) intrepid; urgency=low
+
+ [ Amit Kucheria ]
+
+ * STABLE queue: mac80211: fix two issues in debugfs
+ - LP: #275227
+ * SAUCE: Adds support for COMPAL JHL90 webcam
+
+ [ Ben Collins ]
+
+ * SAUCE: (no-up) x86: Quiet "Kernel alive" messages
+ - LP: #39985
+ * SAUCE: (no-up) Modularize vesafb
+ * build/config: Enable vesafb module
+ * build: Switch to vesafb as preferred.
+
+ [ Leann Ogasawara ]
+
+ * Add Dell Dimension 9200 reboot quirk
+ - LP: #271370
+
+ [ Michael Haas ]
+
+ * SAUCE: Revert aufs changes from AppArmor merge
+
+ [ Tim Gardner ]
+
+ * fix virtio udeb layout
+ - LP: #257739
+ * Enabled CONFIG_EXT4DEV_FS=m
+ * Changed default TCP congestion algorithm to 'cubic'
+ - LP: #278801
+ * SAUCE: ipw2200: change default policy for auto-associate
+ - LP: #264104
+
+ [ Upstream Kernel Changes ]
+
+ * x86, early_ioremap: fix fencepost error
+ - LP: #263543
+
+ -- Tim Gardner <tim.gardner@canonical.com> Sat, 11 Oct 2008 08:07:42 -0600
+
+linux (2.6.27-7.10) intrepid; urgency=low
+
+ [ Alexey Starikovskiy ]
+
+ * SAUCE: ACPI: EC: do transaction from interrupt context
+ - LP: #277802
+
+ [ Ben Collins ]
+
+ * build/d-i: Change virtio-modules udeb to prio standard
+
+ [ Colin Ian King ]
+
+ * SAUCE: Blacklist IBM 2656 in serio/i8042
+ - LP: #21558
+
+ [ Henrik Rydberg ]
+
+ * Revert "SAUCE: applesmc: Add MacBookAir"
+ * SAUCE: [PATCH 1/5] hwmon: applesmc: Specified number of bytes to read
+ should match actual
+ * SAUCE: [PATCH 2/5] hwmon: applesmc: Fix the 'wait status failed: c !=
+ 8' problem
+ * SAUCE: [PATCH 3/5] hwmon: applesmc: Prolong status wait
+ * SAUCE: [PATCH 4/5] hwmon: applesmc: Allow for variable ALV0 and ALV1
+ package length
+ * SAUCE: [PATCH 5/5] hwmon: applesmc: Add support for Macbook Air
+ * SAUCE: hwmon: applesmc: Add support for Macbook Pro 4
+ * SAUCE: hwmon: applesmc: Add support for Macbook Pro 3
+ * SAUCE: hwmon: applesmc: Lighter wait mechanism, drastic improvement
+
+ [ Leann Ogasawara ]
+
+ * Add automatic model setting for Samsung Q45
+ - LP: #200210
+
+ [ Tim Gardner ]
+
+ * SAUCE: Correctly blacklist Thinkpad r40e in ACPI
+ - LP: #278794
+ * SAUCE: Update Wacom tablet driver to 1.49
+ - LP: #260675
+ * SAUCE: ALPS touchpad for Dell Latitude E6500/E6400
+ - LP: #270643
+ * SAUCE: Fix Wacom tablet 1.49 porting errors
+ * SAUCE: Enable an e1000e Intel Corporation 82567 Gigabit controller
+ * SAUCE: Fix Oops in wlan_setup
+ - LP: #263309
+
+ [ Upstream Kernel Changes ]
+
+ * ath9k: fix oops on trying to hold the wrong spinlock
+ * [Bluetooth] Fix double frees on error paths of btusb and bpa10x drivers
+ * [Bluetooth] Add reset quirk for new Targus and Belkin dongles
+ * [Bluetooth] Add reset quirk for A-Link BlueUSB21 dongle
+ * Revert "ax25: Fix std timer socket destroy handling."
+ * ax25: Quick fix for making sure unaccepted sockets get destroyed.
+ * netrom: Fix sock_orphan() use in nr_release
+ * Revert "V4L/DVB (8904): cx88: add missing unlock_kernel"
+ * SLOB: fix bogus ksize calculation
+ * net: only invoke dev->change_rx_flags when device is UP
+ * tcp: Fix possible double-ack w/ user dma
+ * net: Fix netdev_run_todo dead-lock
+ * tcp: Fix tcp_hybla zero congestion window growth with small rho and large cwnd.
+ * [MIPS] Sibyte: Register PIO PATA device only for Swarm and Litte Sur
+ * eeepc-laptop: Fix hwmon interface
+ * hwmon: (it87) Prevent power-off on Shuttle SN68PT
+ * hwmon: Define sysfs interface for energy consumption register
+ * hwmon: (adt7473) Fix some bogosity in documentation file
+ * hwmon: (abituguru3) Enable reading from AUX3 fan on Abit AT8 32X
+ * hwmon: (abituguru3) Enable DMI probing feature on Abit AT8 32X
+ * [CPUFREQ] correct broken links and email addresses
+ * SLOB: fix bogus ksize calculation fix
+ * Don't allow splice() to files opened with O_APPEND
+ * Linux 2.6.27
+
+ -- Tim Gardner <tim.gardner@canonical.com> Wed, 08 Oct 2008 21:19:34 -0600
+
+linux (2.6.27-6.9) intrepid; urgency=low
+
+ [ Kees Cook ]
+
+ * SAUCE: AppArmor: update to upstream subversion r1302
+ - LP: #269921
+
+ [ Stefan Bader ]
+
+ * Update configuration files to be compliant to desktop specs
+ - LP: #279019
+
+ [ Tim Gardner ]
+
+ * Add support in e1000e for a couple of ICH10 PCI IDs
+ * Enable CONFIG_INPUT_PCSPKR=m
+ - LP: #275453
+
+ [ Upstream Kernel Changes ]
+
+ * V4L/DVB (8559a): Fix a merge conflict at gspca/sonixb
+ * V4L/DVB (8789): wm8739: remove wrong kfree
+ * V4L/DVB (8883): w9968cf: Fix order of usb_alloc_urb validation
+ * V4L/DVB (8884): em28xx-audio: fix memory leak
+ * V4L/DVB (8885): cpia2_usb: fix memory leak
+ * V4L/DVB (8886): ov511: fix memory leak
+ * V4L/DVB (8887): gspca: fix memory leak
+ * V4L/DVB (8892): pvrusb2: Handle USB ID 2040:2950 same as 2040:2900
+ * V4L/DVB (8904): cx88: add missing unlock_kernel
+ * V4L/DVB (8905): ov511: fix exposure sysfs attribute bug
+ * V4L/DVB (8909): gspca: PAC 7302 webcam 093a:262a added.
+ * hrtimer: migrate pending list on cpu offline
+ * hrtimer: fix migration of CB_IRQSAFE_NO_SOFTIRQ hrtimers
+ * hrtimer: mark migration state
+ * hrtimer: prevent migration of per CPU hrtimers
+ * [IA64] Put the space for cpu0 per-cpu area into .data section
+ * powerpc: Fix PCI in Holly device tree
+ * powerpc: Fix failure to shutdown with CPU hotplug
+ * mfd: Fix Kconfig accroding to the new gpiolib symbols
+ * mfd: Fix asic3 compilation
+ * x86: fix typo in enable_mtrr_cleanup early parameter
+ * ipsec: Fix pskb_expand_head corruption in xfrm_state_check_space
+ * iucv: Fix mismerge again.
+ * ALSA: ASoC: Fix cs4270 error path
+ * ALSA: hda - Fix model for Dell Inspiron 1525
+ * sctp: Fix kernel panic while process protocol violation parameter
+ * x86: Fix broken LDT access in VMI
+ * x86, vmi: fix broken LDT access
+ * tcp: Fix NULL dereference in tcp_4_send_ack()
+ * ipv6: NULL pointer dereferrence in tcp_v6_send_ack
+ * XFRM,IPv6: initialize ip6_dst_blackhole_ops.kmem_cachep
+ * af_key: Free dumping state on socket close
+ * dm: always allow one page in dm_merge_bvec
+ * dm: cope with access beyond end of device in dm_merge_bvec
+ * dm mpath: add missing path switching locking
+ * MN10300: Fix IRQ handling
+ * pxa2xx_spi: fix build breakage
+ * e1000e: write protect ICHx NVM to prevent malicious write/erase
+ * powerpc: Fix boot hang regression on MPC8544DS
+ * ASoC: Set correct name for WM8753 rec mixer output
+ * ALSA: snd-powermac: mixers for PowerMac G4 AGP
+ * ALSA: snd-powermac: HP detection for 1st iMac G3 SL
+ * fbcon: fix monochrome color value calculation
+ * inotify: fix lock ordering wrt do_page_fault's mmap_sem
+ * braille_console: only register notifiers when the braille console is used
+ * fix error-path NULL deref in alloc_posix_timer()
+ * memory hotplug: missing zone->lock in test_pages_isolated()
+ * mm: tiny-shmem nommu fix
+ * mm: handle initialising compound pages at orders greater than MAX_ORDER
+ * e1000e: reset swflag after resetting hardware
+ * e1000e: do not ever sleep in interrupt context
+ * e1000e: remove phy read from inside spinlock
+ * e1000e: drop stats lock
+ * e1000e: debug contention on NVM SWFLAG
+ * e1000e: update version from k4 to k6
+ * Check mapped ranges on sysfs resource files
+ * e1000e: Fix incorrect debug warning
+ * [MIPS] Build fix: Fix irq flags type
+ * [MIPS] SMTC: Build fix: Fix filename in Makefile
+ * [MIPS] SMTC: Fix holes in SMTC and FPU affinity support.
+ * [MIPS] SMTC: Close tiny holes in the SMTC IPI replay system.
+ * [MIPS] SMTC: Fix SMTC dyntick support.
+ * [S390] nohz: Fix __udelay.
+ * [S390] qdio: prevent stack clobber
+ * Fix init/main.c to use regular printk with '%pF' for initcall fn
+ * x86 setup: correct segfault in generation of 32-bit reloc kernel
+ * selinux: Fix an uninitialized variable BUG/panic in selinux_secattr_to_sid()
+ * rtc: fix kernel panic on second use of SIGIO nofitication
+ * fbdev: fix recursive notifier and locking when fbdev console is blanked
+ * orion_spi: fix handling of default transfer speed
+ * include/linux/stacktrace.h: declare struct task_struct
+ * cpusets: remove pj from cpuset maintainers
+ * MAINTAINERS: add mailing list for man-pages
+ * SubmitChecklist: interfaces changes should CC linux-api@
+ * Documentation/HOWTO: info about interface changes should CC linux-api@vger
+ * dw_dmac: fix copy/paste bug in tasklet
+ * leds-fsg: change order of initialization and deinitialization
+ * leds-pca955x: add proper error handling and fix bogus memory handling
+ * ACPI: Make /proc/acpi/wakeup interface handle PCI devices (again)
+ * clockevents: check broadcast tick device not the clock events device
+ * V4L/DVB (8919): cx18: Fix tuner audio input for Compro H900 cards
+ * V4L/DVB (8926): gspca: Bad fix of leak memory (changeset 43d2ead315b1).
+ * V4L/DVB (8933): gspca: Disable light frquency for zc3xx cs2102 Kokom.
+ * V4L/DVB (8935): em28xx-cards: Remove duplicate entry (EM2800_BOARD_KWORLD_USB2800)
+ * V4L/DVB (8955): bttv: Prevent NULL pointer dereference in radio_open
+ * V4L/DVB (8957): zr36067: Restore the default pixel format
+ * V4L/DVB (8958): zr36067: Return proper bytes-per-line value
+ * V4L/DVB (8960): drivers/media/video/cafe_ccic.c needs mm.h
+ * V4L/DVB (8961): zr36067: Fix RGBR pixel format
+ * V4L/DVB (8963): s2255drv field count fix
+ * V4L/DVB (8967): Use correct XC3028L firmware for AMD ATI TV Wonder 600
+ * V4L/DVB (8978): sms1xxx: fix product name for Hauppauge WinTV MiniStick
+ * V4L/DVB (8979): sms1xxx: Add new USB product ID for Hauppauge WinTV MiniStick
+ * V4L/DVB (9029): Fix deadlock in demux code
+ * V4L/DVB (9037): Fix support for Hauppauge Nova-S SE
+ * V4L/DVB (9043): S5H1420: Fix size of shadow-array to avoid overflow
+ * V4L/DVB (9053): fix buffer overflow in uvc-video
+ * V4L/DVB (9075): gspca: Bad check of returned status in i2c_read() spca561.
+ * V4L/DVB (9080): gspca: Add a delay after writing to the sonixj sensors.
+ * V4L/DVB (9092): gspca: Bad init values for sonixj ov7660.
+ * V4L/DVB (9099): em28xx: Add detection for K-WORLD DVB-T 310U
+ * V4L/DVB (9103): em28xx: HVR-900 B3C0 - fix audio clicking issue
+ * x86: gart iommu have direct mapping when agp is present too
+ * ide-cd: temporary tray close fix
+ * ide-dma: fix ide_build_dmatable() for TRM290
+ * IDE: Fix platform device registration in Swarm IDE driver (v2)
+ * ide-cd: Optiarc DVD RW AD-7200A does play audio
+ * ide: workaround for bogus gcc warning in ide_sysfs_register_port()
+ * [MIPS] Fix CMP Kconfig configuration and mark as broken.
+ * [MIPS] IP27: Fix build errors if CONFIG_MAPPED_KERNEL=y
+ * x86 ACPI: Blacklist two HP machines with buggy BIOSes
+ * kgdb, x86: Avoid invoking kgdb_nmicallback twice per NMI
+ * kgdb: call touch_softlockup_watchdog on resume
+ * atmel-mci: Initialize BLKR before sending data transfer command
+ * Marker depmod fix core kernel list
+ * Linux 2.6.27-rc9
+
+ -- Tim Gardner <tim.gardner@canonical.com> Sun, 05 Oct 2008 21:27:49 -0600
+
+linux (2.6.27-5.8) intrepid; urgency=low
+
+ [ Amit Kucheria ]
+
+ * Update AUFS-related Kconfig
+ - LP: #264048
+
+ [ Michael Haas ]
+
+ * add proper aufs source tree from 20080922
+ * Fix AUFS compilation in vfsub.c
+ * Add splice-2.6.23.patch from AUFS to export a symbol needed by AUFS
+ * Add put_filp.patch from AUFS to export a symbol needed by AUFS
+ * apply (modified) lhash.patch from AUFS to export __lookup_hash()
+ * Add deny_write_access.patch from AUFS - export deny_write_access
+ * Add sec_perm-2.6.24.patch from AUFS - export security_inode_permission
+ * make sure TMPFS_MAGIC is defined in AUFS Makefile
+
+ [ Tim Gardner ]
+
+ * Enabled CONFIG_IPWIRELESS
+ - LP: #274748
+ * Enabled CONFIG_E1000E, disabled CONFIG_E1000E_NEW
+ This takes advantage of the upstream NVM protection fix in
+ commit 4a7703582836f55a1cbad0e2c1c6ebbee3f9b3a7.
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ
+ handler"
+ * [SCSI] qla2xxx: Defer enablement of RISC interrupts until ISP
+ initialization completes.
+ * PCI: Fix pcie_aspm=force
+ * PCI: fix compiler warnings in pci_get_subsys()
+ * UBIFS: create the name of the background thread in every case
+ * UBIFS: TNC / GC race fixes
+ * UBIFS: remove incorrect assert
+ * UBIFS: fix printk format warnings
+ * AMD IOMMU: set iommu sunc flag after command queuing
+ * AMD IOMMU: protect completion wait loop with iommu lock
+ * sparc64: Fix disappearing PCI devices on e3500.
+ * x86, oprofile: BUG scheduling while atomic
+ * ALSA: ASoC: Fix at32-pcm build breakage with PM enabled
+ * ath9k: connectivity is lost after Group rekeying is done
+ * wireless: zd1211rw: add device ID fix wifi dongle "trust nw-3100"
+ * [IA64] Ski simulator doesn't need check_sal_cache_flush
+ * [IA64] kexec fails on systems with blocks of uncached memory
+ * ath9k: Fix IRQ nobody cared issue with ath9k
+ * [Bluetooth] Fix I/O errors on MacBooks with Broadcom chips
+ * [Bluetooth] Fix wrong URB handling of btusb driver
+ * [Bluetooth] Fix USB disconnect handling of btusb driver
+ * sparc64: Fix missing devices due to PCI bridge test in
+ of_create_pci_dev().
+ * [WATCHDOG] ibmasr: remove unnecessary spin_unlock()
+ * [WATCHDOG] wdt285: fix sparse warnings
+ * [WATCHDOG] unlocked_ioctl changes
+ * x86: fix 27-rc crash on vsmp due to paravirt during module load
+ * sched: fix init_hrtick() section mismatch warning
+ * clockevents: prevent cpu online to interfere with nohz
+ * x86: prevent stale state of c1e_mask across CPU offline/online
+ * clockevents: prevent stale tick_next_period for onlining CPUs
+ * clockevents: check broadcast device not tick device
+ * clockevents: prevent mode mismatch on cpu online
+ * x86: prevent C-states hang on AMD C1E enabled machines
+ * x86: c1e_idle: don't mark TSC unstable if CPU has invariant TSC
+ * timers: fix build error in !oneshot case
+ * ALSA: ASoC: maintainers - update email address for Liam Girdwood
+ * ibmasr: remove unnecessary spin_unlock()
+ * smb.h: do not include linux/time.h in userspace
+ * kernel-doc: allow structs whose members are all private
+ * kexec: fix segmentation fault in kimage_add_entry
+ * Documentation/DMA-mapping.txt: update for pci_dma_mapping_error()
+ changes
+ * sys_paccept: disable paccept() until API design is resolved
+ * mm: tiny-shmem fix lock ordering: mmap_sem vs i_mutex
+ * Documentation/sysctl/kernel.txt: fix softlockup_thresh description
+ * memcg: check under limit at shrink_usage
+ * atmel_serial: update the powersave handler to match serial core
+ * [SCSI] Fix hang with split requests
+ * USB Storage: Sierra: Non-configurable TRU-Install
+ * USB Serial: Sierra: Device addition & version rev
+ * USB: ehci: fix some ehci hangs and crashes
+ * USB: Fix the Nokia 6300 storage-mode.
+ * USB: Correct Sierra Wireless USB EVDO Modem Device ID
+ * USB: fix hcd interrupt disabling
+ * USB: update of Documentation/usb/anchors.txt
+ * usb gadget: fix omap_udc DMA regression
+ * USB: Fixing Nokia 3310c in storage mode
+ * usb: musb: fix include path
+ * USB: fix EHCI periodic transfers
+ * usb-serial: Add Siemens EF81 to PL-2303 hack triggers
+ * USB: SERIAL CP2101 add device IDs
+ * USB: unusual_devs addition for RockChip MP3 player
+ * USB: fsl_usb2_udc: fix VDBG() format string
+ * usb serial: ti_usb_3410_5052 obviously broken by firmware changes
+ * USB: ftdi_sio: Add 0x5050/0x0900 USB IDs (Papouch Quido USB 4/4)
+ * USB: serial: add ZTE CDMA Tech id to option driver
+ * USB Serial: Sierra: Add MC8785 VID/PID
+ * USB: drivers/usb/musb/: disable it on SuperH
+ * usb: ftdi_sio: add support for Domintell devices
+ * usb: unusual devs patch for Nokia 5310 Music Xpress
+ * USB: revert recovery from transient errors
+ * [MIPS] au1000: Fix gpio direction
+ * [MIPS] Fixe the definition of PTRS_PER_PGD
+ * x86: prevent stale state of c1e_mask across CPU offline/online, fix
+ * x86: disable apm on the olpc
+ * i2c-powermac: Fix section for probe and remove functions
+ * i2c-dev: Return correct error code on class_create() failure
+ * i2c: Fix mailing lists in two MAINTAINERS entries
+ * ath9k: disable MIB interrupts to fix interrupt storm
+ * 9p: implement proper trans module refcounting and unregistration
+ * 9p-trans_fd: fix trans_fd::p9_conn_destroy()
+ * 9p-trans_fd: clean up p9_conn_create()
+ * 9p-trans_fd: don't do fs segment mangling in p9_fd_poll()
+ * 9p-trans_fd: fix and clean up module init/exit paths
+ * 9p: introduce missing kfree
+ * 9p: use an IS_ERR test rather than a NULL test
+ * 9p: fix put_data error handling
+ * netfilter: ip6t_{hbh,dst}: Rejects not-strict mode on rule insertion
+ * MN10300: Move asm-arm/cnt32_to_63.h to include/linux/
+ * MN10300: Make sched_clock() report time since boot
+ * ALSA: fix locking in snd_pcm_open*() and snd_rawmidi_open*()
+ * ALSA: remove unneeded power_mutex lock in snd_pcm_drop
+ * IPoIB: Fix crash when path record fails after path flush
+ * [XFS] Fix extent list corruption in xfs_iext_irec_compact_full().
+ * [XFS] Remove xfs_iext_irec_compact_full()
+ * kgdb: could not write to the last of valid memory with kgdb
+ * kgdb, x86, arm, mips, powerpc: ignore user space single stepping
+ * kgdb, x86_64: gdb serial has BX and DX reversed
+ * kgdb, x86_64: fix PS CS SS registers in gdb serial
+ * kgdboc,tty: Fix tty polling search to use name correctly
+ * ARM: Delete ARM's own cnt32_to_63.h
+ * m32r: remove the unused NOHIGHMEM option
+ * m32r: don't offer CONFIG_ISA
+ * m32r: export empty_zero_page
+ * m32r: export __ndelay
+ * m32r/kernel/: cleanups
+ * [MIPS] au1000: Make sure GPIO value is zero or one
+ * [MIPS] IP27: Switch to dynamic interrupt routing avoding panic on
+ error.
+ * [MIPS] BCM47xx: Fix build error due to missing PCI functions
+ * [SSB] Initialise dma_mask for SSB_BUSTYPE_SSB devices
+ * Swarm: Fix crash due to missing initialization
+ * ide-tape: fix vendor strings
+ * ide: note that IDE generic may prevent other drivers from attaching
+ * cdrom: update ioctl documentation
+ * [SCSI] qlogicpti: fix sg list traversal error in continuation entries
+ * sata_nv: reinstate nv_hardreset() for non generic controllers
+ * scsi: fix fall out of sg-chaining patch in qlogicpti
+ * ALSA: make the CS4270 driver a new-style I2C driver
+ * ALSA: ASoC: Fix another cs4270 error path
+ * Fix NULL pointer dereference in proc_sys_compare
+ * kconfig: fix silentoldconfig
+ * kconfig: readd lost change count
+ * mm owner: fix race between swapoff and exit
+ * Linux 2.6.27-rc8
+ * e1000e: write protect ICHx NVM to prevent malicious write/erase
+
+ -- Amit Kucheria <amit.kucheria@canonical.com> Tue, 30 Sep 2008 18:22:35 +0300
+
+linux (2.6.27-4.7) intrepid; urgency=low
+
+ [ Ben Collins ]
+
+ * build/abi: Add gfs1 to perm blacklist
+ * build/abi: Ignored changes in gfs2 symbols
+
+ [ Fabio M. Di Nitto ]
+
+ * Revert "SAUCE: Export gfs2 symbols required for gfs1 kernel module"
+ * ubuntu: update GFS Cluster File System
+
+ [ Stefan Bader ]
+
+ * SAUCE: x86: Reserve FIRST_DEVICE_VECTOR in used_vectors bitmap.
+ - LP: #276334
+
+ [ Tim Gardner ]
+
+ * Revert "Disable e1000e until the NVRAM corruption problem is found."
+ * Add atl1e and atl2 to Debian installer bits
+ - LP: #273904
+ * SAUCE: e1000e: Map NV RAM dynamically only when needed.
+ - LP: #263555
+
+ -- Tim Gardner <tim.gardner@canonical.com> Fri, 26 Sep 2008 20:51:22 -0600
+
+linux (2.6.27-4.6) intrepid; urgency=low
+
+ [ Tim Gardner ]
+
+ * Disable e1000e until the NVRAM corruption problem is found.
+ - LP: #263555
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "[Bluetooth] Eliminate checks for impossible conditions in IRQ
+ handler"
+
+ -- Ben Collins <ben.collins@canonical.com> Tue, 23 Sep 2008 09:53:57 -0400
+
+linux (2.6.27-4.5) intrepid; urgency=low
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "b43/b43legacy: add RFKILL_STATE_HARD_BLOCKED support"
+ * udf: Fix lock inversion between iprune_mutex and alloc_mutex (v2)
+ * udf: Fix error paths in udf_new_inode()
+ * [SCSI] sd: select CRC_T10DIF only when necessary
+ * [SCSI] zfcp: Fix request queue locking
+ * [SCSI] zfcp: Correctly query end flag in gpn_ft response
+ * [SCSI] zfcp: Simplify ccw notify handler
+ * [SCSI] zfcp: Fix reference counter for remote ports
+ * [SCSI] zfcp: channel cannot be detached due to refcount imbalance
+ * [SCSI] zfcp: Remove duplicated unlikely() macros.
+ * [SCSI] scsi_dh: make check_sense return ADD_TO_MLQUEUE
+ * [SCSI] make scsi_check_sense HARDWARE_ERROR return ADD_TO_MLQUEUE on
+ retry
+ * [SCSI] fix check of PQ and PDT bits for WLUNs
+ * pcm037: add rts/cts support for serial port
+ * i.MX serial: fix init failure
+ * imx serial: set RXD mux bit on i.MX27 and i.MX31
+ * imx serial: fix rts handling for non imx1 based hardware
+ * mlx4_core: Set RAE and init mtt_sz field in FRMR MPT entries
+ * udf: add llseek method
+ * PCI/iommu: blacklist DMAR on Intel G31/G33 chipsets
+ * PCI: Fix printk warnings in probe.c
+ * PCI: Fix printk warnings in setup-bus.c
+ * PCI Hotplug: fakephp: fix deadlock... again
+ * clockevents: remove WARN_ON which was used to gather information
+ * ocfs2: Fix a bug in direct IO read.
+ * arch/x86/kernel/kdebugfs.c: introduce missing kfree
+ * [IA64] fix compile failure with non modular builds
+ * [IA64] fix up bte.h
+ * [IA64] arch/ia64/sn/pci/tioca_provider.c: introduce missing kfree
+ * PCI: fix pciehp_free_irq()
+ * [IA64] prevent ia64 from invoking irq handlers on offline CPUs
+ * ide: Fix pointer arithmetic in hpt3xx driver code (3rd try)
+ * add deprecated ide-scsi to feature-removal-schedule.txt
+ * swiotlb: fix back-off path when memory allocation fails
+ * sparc64: Fix interrupt register calculations on Psycho and Sabre.
+ * VIDEO_SH_MOBILE_CEU should depend on HAS_DMA
+ * m68k: Update defconfigs for 2.6.27-rc6
+ * sparc32: Fix function signature of of_bus_sbus_get_flags().
+ * sched: fix 2.6.27-rc5 couldn't boot on tulsa machine randomly
+ * sched: fix deadlock in setting scheduler parameter to zero
+ * KVM: SVM: fix random segfaults with NPT enabled
+ * KVM: SVM: fix guest global tlb flushes with NPT
+ * KVM: VMX: Always return old for clear_flush_young() when using EPT
+ * clocksource, acpi_pm.c: fix check for monotonicity
+ * [ARM] OMAP: Fix MMC device data
+ * block: disable sysfs parts of the disk command filter
+ * ath9k: Assign seq# when mac80211 requests this
+ * sg: disable interrupts inside sg_copy_buffer
+ * MN10300: Change the fault handler to check in_atomic() not
+ in_interrupt()
+ * [Bluetooth] Fix regression from using default link policy
+ * netlink: fix overrun in attribute iteration
+ * x86: fix possible x86_64 and EFI regression
+ * sparc64: Fix PCI error interrupt registry on PSYCHO.
+ * sparc: Fix user_regset 'n' field values.
+ * niu: panic on reset
+ * PCI: re-add debug prints for unmodified BARs
+ * [ARM] 5245/1: Fix warning about unused return value in drivers/pcmcia
+ * [ARM] 5246/1: tosa: add proper clock alias for tc6393xb clock
+ * [ARM] 5247/1: tosa: SW_EAR_IN support
+ * [ARM] Fix PCI_DMA_BUS_IS_PHYS for ARM
+ * ata: duplicate variable sparse warning
+ * sata_inic162x: enable LED blinking
+ * [libata] LBA28/LBA48 off-by-one bug in ata.h
+ * proc: more debugging for "already registered" case
+ * include/linux/ioport.h: add missing macro argument for devm_release_*
+ family
+ * cpuset: avoid changing cpuset's cpus when -errno returned
+ * cpuset: hotplug documentation fix
+ * coredump_filter: add description of bit 4
+ * bfs: fix Lockdep warning
+ * mm: ifdef Quicklists in /proc/meminfo
+ * spi_mpc83xx: fix clockrate calculation for low speed
+ * spi_mpc83xx: reject invalid transfer sizes
+ * pxa2xx_spi: chipselect bugfixes
+ * pxa2xx_spi: dma bugfixes
+ * mm: mark the correct zone as full when scanning zonelists
+ * Documentation/ABI: /sys/class/gpio
+ * MAINTAINERS: fix USB VIDEO CLASS mail list address
+ * ia64: fix panic during `modprobe -r xpc'
+ * atmel_lcdfb: disable LCD and DMA engines when suspending
+ * spi_s3c24xx: fix section warning
+ * rescan_partitions(): make device capacity errors non-fatal
+ * memstick: fix MSProHG 8-bit interface mode support
+ * Add Uwe Kleine-König to .mailmap
+ * xen: fix for xen guest with mem > 3.7G
+ * x86/paravirt: Remove duplicate paravirt_pagetable_setup_{start, done}()
+ * crypto: talitos - Avoid consecutive packets going out with same IV
+ * slub: fixed uninitialized counter in struct kmem_cache_node
+ * udp: Fix rcv socket locking
+ * IB/mlx4: Fix up fast register page list format
+ * [MIPS] VR41xx: unsigned irq cannot be negative
+ * x86: completely disable NOPL on 32 bits
+ * [S390] cio: Fix driver_data handling for ccwgroup devices.
+ * [S390] cio: fix orb initialization in cio_start_key
+ * sparc64: Fix OOPS in psycho_pcierr_intr_other().
+ * sparc64: Fix SMP bootup with CONFIG_STACK_DEBUG or ftrace.
+ * RDMA/nes: Fix client side QP destroy
+ * IPoIB: Fix deadlock on RTNL between bcast join comp and ipoib_stop()
+ * clockevents: make device shutdown robust
+ * powerpc: Fix interrupt values for DMA2 in MPC8610 HPCD device tree
+ * hpplus: fix build regression
+ * Fix PNP build failure, bugzilla #11276
+ * warn: Turn the netdev timeout WARN_ON() into a WARN()
+ * [XFS] Move memory allocations for log tracing out of the critical path
+ * [XFS] Fix regression introduced by remount fixup
+ * [XFS] Prevent direct I/O from mapping extents beyond eof
+ * [XFS] Fix barrier status change detection.
+ * [XFS] Prevent lockdep false positives when locking two inodes.
+ * [XFS] Fix use-after-free with buffers
+ * [XFS] Don't do I/O beyond eof when unreserving space
+ * powerpc: Holly board needs dtbImage target
+ * Fix compile failure with non modular builds
+ * [ARM] 5249/1: davinci: remove redundant check in davinci_psc_config()
+ * [ARM] omap: back out 'internal_clock' support
+ * sctp: set the skb->ip_summed correctly when sending over loopback.
+ * [ARM] 5255/1: Update jornada ssp to remove build errors/warnings
+ * sctp: do not enable peer features if we can't do them.
+ * sctp: Fix oops when INIT-ACK indicates that peer doesn't support AUTH
+ * bnx2: Promote vector field in bnx2_irq structure from u16 to unsigned
+ int
+ * forcedeth: call restore mac addr in nv_shutdown path
+ * e1000: prevent corruption of EEPROM/NVM
+ * e100: Use pci_pme_active to clear PME_Status and disable PME#
+ * md: Don't wait UNINTERRUPTIBLE for other resync to finish
+ * atstk1000: fix build breakage with BOARD_ATSTK100X_SW2_CUSTOM=y
+ * avr32: add .gitignore files
+ * avr32: add generic_find_next_le_bit bit function
+ * avr32: fix sys_sync_file_range() call convention
+ * avr32: nmi_enter() without nmi_exit()
+ * KVM: ia64: 'struct fdesc' build fix
+ * hwmon: (atxp1) Fix device detection logic
+ * hwmon: (it87) Fix fan tachometer reading in IT8712F rev 0x7 (I)
+ * hwmon: (ad7414) Make ad7414_update_device() static
+ * tmio_mmc: fix compilation with debug enabled
+ * atmel-mci: debugfs: enable clock before dumping regs
+ * atmel-mci: Fix memory leak in atmci_regs_show
+ * atmel-mci: Fix bogus debugfs file size
+ * atmel-mci: Set MMC_CAP_NEEDS_POLL if no detect_pin
+ * mmc_block: handle error from mmc_register_driver()
+ * mmc_test: initialize mmc_test_lock statically
+ * [MIPS] Fix 64-bit IP checksum code
+ * [MIPS] SMTC: Clear TIF_FPUBOUND on clone / fork.
+ * [MIPS] Fix potential latency problem due to non-atomic cpu_wait.
+ * [MIPS] vmlinux.lds.S: handle .text.*
+ * MAINTAINERS: Trivial whitespace cleanups
+ * MAINTAINERS: Various fixes
+ * Linux 2.6.27-rc7
+
+ -- Tim Gardner <tim.gardner@canonical.com> Sun, 21 Sep 2008 21:49:28 -0600
+
+linux (2.6.27-3.4) intrepid; urgency=low
+
+ [ Colin Ian King ]
+
+ * SAUCE: fix kernel oops in VirtualBox during paravirt patching
+ - LP: #246067
+ * SAUCE: qc-usb: Enable Logitech QuickCam Messenger
+ - LP: #209901
+ * SAUCE: appleir: Enable driver for new MacBook Pro
+ - LP: #157919
+
+ [ Tim Gardner ]
+
+ * Enabled CONFIG_DEBUG_RODATA=y
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "ALSA: hda - Added model selection for iMac 24""
+ * Revert "x86: fix HPET regression in 2.6.26 versus 2.6.25, check hpet
+ against BAR, v3"
+ * Revert "[ARM] use the new byteorder headers"
+ * Revert "mac80211: Use IWEVASSOCREQIE instead of IWEVCUSTOM"
+ * Revert "crypto: camellia - Use kernel-provided bitops, unaligned access
+ helpers"
+ * svcrdma: Fix race between svc_rdma_recvfrom thread and the dto_tasklet
+ * sched, cpuset: rework sched domains and CPU hotplug handling (v4)
+ * ACPI: Fix now signed module parameter.
+ * ACPI: Change package length error to warning
+ * ACPI: Fix now signed module parameter.
+ * ACPI: Fix typo in "Disable MWAIT via DMI on broken Compal board"
+ * acpi: add checking for NULL early param
+ * UBIFS: fix zero-length truncations
+ * Input: bcm5974 - add maintainer entry
+ * sh64: re-add the __strnlen_user() prototype
+ * sh: fix ptrace_64.c:user_disable_single_step()
+ * PNPACPI: ignore the producer/consumer bit for extended IRQ descriptors
+ * UBIFS: always read hashed-key nodes under TNC mutex
+ * UBIFS: allow for racing between GC and TNC
+ * [CIFS] Fix plaintext authentication
+ * sparc32: Implement smp_call_function_single().
+ * sh: crash kernel resource fix
+ * sh: fix kexec entry point for crash kernels
+ * sh: fix platform_resource_setup_memory() section mismatch
+ * sh: update Migo-R defconfig
+ * sh: update AP325RXA defconfig
+ * sh: fix semtimedop syscall
+ * cifs: fix O_APPEND on directio mounts
+ * [CIFS] update cifs change log
+ * [CIFS] Turn off Unicode during session establishment for plaintext
+ authentication
+ * ACPI: thinkpad-acpi: wan radio control is not experimental
+ * sparc: Fix resource flags for PCI children in OF device tree.
+ * remove blk_register_filter and blk_unregister_filter in gendisk
+ * ALSA: oxygen: fix distorted output on AK4396-based cards
+ * ipv6: When we droped a packet, we should return NET_RX_DROP instead of
+ 0
+ * pkt_sched: Fix locking of qdisc_root with qdisc_root_sleeping_lock()
+ * net: Unbreak userspace usage of linux/mroute.h
+ * Don't trigger softlockup detector on network fs blocked tasks
+ * Resource handling: add 'insert_resource_expand_to_fit()' function
+ * sparc64: setup_valid_addr_bitmap_from_pavail() should be __init
+ * UBIFS: do not update min_idx_lebs in stafs
+ * UBIFS: push empty flash hack down
+ * UBIFS: remove incorrect index space check
+ * UBIFS: improve statfs reporting
+ * UBIFS: fix assertion
+ * UBIFS: add forgotten gc_idx_lebs component
+ * UBIFS: introduce LEB overhead
+ * UBIFS: improve statfs reporting even more
+ * UBIFS: fill f_fsid
+ * drm/radeon: downgrade debug message from info to debug.
+ * Remove invalidate_partition call from do_md_stop.
+ * Fix problem with waiting while holding rcu read lock in md/bitmap.c
+ * ALSA: hda: Distortion fix for dell_m6_core_init
+ * ALSA: ASoC: fix pxa2xx-i2s clk_get call
+ * block: restore original behavior of /proc/partition when there's no
+ partition
+ * debugobjects: fix lockdep warning
+ * avr32: Fix lockup after Java stack underflow in user mode
+ * avr32: pm_standby low-power ram bug fix
+ * nfsd: fix compound state allocation error handling
+ * sunrpc: fix possible overrun on read of /proc/sys/sunrpc/transports
+ * nfsd: fix buffer overrun decoding NFSv4 acl
+ * audit: Moved variable declaration to beginning of function
+ * Fix modules_install on RO nfs-exported trees.
+ * Remove '#include <stddef.h>' from mm/page_isolation.c
+ * dabusb_fpga_download(): fix a memory leak
+ * [MTD] mtdchar.c: Fix regression in MEMGETREGIONINFO ioctl()
+ * ALSA: hda - Fix ALC663 auto-probe
+ * ALSA: hda - Add mic-boost controls to ALC662/663 auto configuration
+ * Un-break printk strings in x86 PCI probing code
+ * kernel/resource.c: fix new kernel-doc warning
+ * softlockup: minor cleanup, don't check task->state twice
+ * fix typo in arch/parisc/hpux/fs.c
+ * m68k: atari_keyb_init operator precedence fix
+ * ACPI: Fix typo in "Disable MWAIT via DMI on broken Compal board"
+ * don't diff generated firmware files
+ * IDE: compile fix for sff_dma_ops
+ * IDE: palm_bk3710: fix compile warning for unused variable
+ * ide: fix hwif_to_node()
+ * palm_bk3710: improve IDE registration
+ * ide-disk: remove stale init_idedisk_capacity() documentation
+ * ide/Kconfig: mark ide-scsi as deprecated
+ * net/wireless/Kconfig: clarify the description for
+ CONFIG_WIRELESS_EXT_SYSFS
+ * iwlwifi: do not use GFP_DMA in iwl_tx_queue_init
+ * iwlwifi: workaround interrupt handling no some platforms
+ * iwlwifi: fix apm_stop (wrong bit polarity for FLAG_INIT_DONE)
+ * iwlwifi: fix 64bit platform firmware loading
+ * orinoco: Multicast to the specified addresses
+ * wireless/libertas/if_cs.c: fix memory leaks
+ * mac80211: Fix debugfs union misuse and pointer corruption
+ * rt2x00: Compiler warning unmasked by fix of BUILD_BUG_ON
+ * ath9k: Incorrect key used when group and pairwise ciphers are
+ different.
+ * ath9: Fix ath_rx_flush_tid() for IRQs disabled kernel warning message.
+ * net/xfrm: Use an IS_ERR test rather than a NULL test
+ * ipv: Re-enable IP when MTU > 68
+ * NTFS: update homepage
+ * mm: make setup_zone_migrate_reserve() aware of overlapping nodes
+ * VFS: fix dio write returning EIO when try_to_release_page fails
+ * acer-wmi: remove debugfs entries upon unloading
+ * mm/bootmem: silence section mismatch warning -
+ contig_page_data/bootmem_node_data
+ * MAINTAINERS: add a maintainer for the BCM5974 multitouch driver
+ * 8250: improve workaround for UARTs that don't re-assert THRE correctly
+ * mmc: at91_mci: don't use coherent dma buffers
+ * pid_ns: zap_pid_ns_processes: fix the ->child_reaper changing
+ * pid_ns: (BUG 11391) change ->child_reaper when init->group_leader exits
+ * cirrusfb: check_par fixes
+ * devcgroup: fix race against rmdir()
+ * mm: show quicklist usage in /proc/meminfo
+ * mm: size of quicklists shouldn't be proportional to the number of CPUs
+ * ipc: document the new auto_msgmni proc file
+ * hp-wmi: update to match current rfkill semantics
+ * hp-wmi: add proper hotkey support
+ * tdfxfb: fix SDRAM memory size detection
+ * tdfxfb: fix frame buffer name overrun
+ * rtc_time_to_tm: fix signed/unsigned arithmetic
+ * ibft: fix target info parsing in ibft module
+ * sysfs: document files in /sys/firmware/sgi_uv/
+ * rtc-cmos: wake again from S5
+ * pm_qos_requirement might sleep
+ * drivers/char/random.c: fix a race which can lead to a bogus BUG()
+ * ipsec: Fix deadlock in xfrm_state management.
+ * [x86] Fix TSC calibration issues
+ * tipc: Don't use structure names which easily globally conflict.
+ * sparc64: Fix IPI call locking.
+ * [ARM] omap: fix gpio.c build error
+ * sparc64: Prevent sparc64 from invoking irq handlers on offline CPUs
+ * powerpc: Fix uninitialised variable in VSX alignment code
+ * powerpc: Only make kernel text pages of linear mapping executable
+ * powerpc: Make sure _etext is after all kernel text
+ * powerpc: Work around gcc's -fno-omit-frame-pointer bug
+ * powerpc: Fix build error with 64K pages and !hugetlbfs
+ * powerpc: Fix for getting CPU number in power_save_ppc32_restore()
+ * UBIFS: amend f_fsid
+ * net/usb/pegasus: avoid hundreds of diagnostics
+ * ixgbe: initialize interrupt throttle rate
+ * pcnet-cs, axnet_cs: add new IDs, remove dup ID with less info
+ * netxen: Remove workaround for chipset quirk
+ * Split up PIT part of TSC calibration from native_calibrate_tsc
+ * iwlwifi: W/A for the TSF correction in IBSS
+ * iwlwifi: fix hidden ssid discovery in passive channels
+ * iwlwifi: remove false rxon if rx chain changes
+ * iwlwifi: fix station mimo power save values
+ * iwlwifi: fix rx_chain computation
+ * iwlwifi: fix Tx cmd memory allocation failure handling
+ * iwlwifi: call apm stop on exit
+ * iwlwifi: fix STATUS_EXIT_PENDING is not set on pci_remove
+ * ath9k: Fix TX status reporting
+ * ath9k: Fix TX control flag use for no ACK and RTS/CTS
+ * V4L/DVB (8555): au8522: add mechanism to configure IF frequency for vsb
+ and qam
+ * V4L/DVB (8556): au0828: add support for Hauppauge Woodbury
+ * V4L/DVB (8598): au8522: clean up function au8522_set_if
+ * V4L/DVB (8599): au8522: remove if frequency settings from vsb/qam
+ modulation tables
+ * V4L/DVB (8600): au0828: explicitly set 6 MHz IF frequency in
+ hauppauge_hvr950q_config
+ * V4L/DVB (8629): v4l2-ioctl: do not try to handle private V4L1 ioctls
+ * V4L/DVB (8633): ivtv: update ivtv version number
+ * V4L/DVB (8648): ivtv: improve CC support
+ * V4L/DVB (8660): gspca: Simplify the scan of URB packets in pac7311.
+ * V4L/DVB (8661): gspca: Bug in the previous changeset about pac7311.
+ * V4L/DVB (8663): gspca: Webcam 0c45:6128 added in sonixj.
+ * V4L/DVB (8664): gspca: The bridge/sensor of the webcam 093a:2621 is a
+ PAC 7302.
+ * V4L/DVB (8665): gspca: Fix the 640x480 resolution of the webcam
+ 093a:2621.
+ * V4L/DVB (8666): gspca: Bad scanning of frames in pac7311.
+ * V4L/DVB (8667): gspca: Bad probe of Z-Star/Vimicro webcams with pas106
+ sensor.
+ * V4L/DVB (8668): gspca: Conflict GSPCA / ET61X251 for the webcam
+ 102c:6251.
+ * V4L/DVB (8669): gspca: Add white balance control for spca561 rev 012A.
+ * V4L/DVB (8671): gspca: Remove the unused field 'dev_name' of the device
+ structure.
+ * V4L/DVB (8672): gspca: Big rewrite of spca561.
+ * V4L/DVB (8673): gspca: Bad frame scanning again and bad init in
+ pac7311.
+ * V4L/DVB (8674): gspca: Webcam 0c45:612e added in sonixj.
+ * V4L/DVB (8675): gspca: Pixmap PJPG (Pixart 73xx JPEG) added, generated
+ by pac7311.
+ * V4L/DVB (8678): Remove the dead CONFIG_RADIO_MIROPCM20{,_RDS} code
+ * V4L/DVB (8681): v4l2-ioctl.c: fix warning
+ * V4L/DVB (8682): V4L: fix return value of register video func
+ * V4L/DVB (8701): cx18: Add missing lock for when the irq handler
+ manipulates the queues
+ * V4L/DVB (8703): gspca: Do controls work for spca561 revision 12a.
+ * V4L/DVB (8705): gspca: Adjust some control limits in spca561.
+ * V4L/DVB (8706): Make contrast and brightness work for pac7302.
+ * V4L/DVB (8707): gspca: Colors, hflip and vflip controls added for
+ pac7302.
+ * V4L/DVB (8709): gspca: Fix initialization and controls of sn9x110 -
+ ov7630.
+ * V4L/DVB (8710): gspca: Bad color control in sonixj.
+ * V4L/DVB (8711): gspca: Bad controls and quantization table of pac7311.
+ * V4L/DVB (8712): gspca: Bad start of sonixj webcams since changeset
+ a8779025e7e8.
+ * V4L/DVB (8713): gspca: Bad color control again in sonixj.
+ * V4L/DVB (8714): gspca: Bad start of sn9c110 and sensor om6802.
+ * V4L/DVB (8715): gspca: Change the name of some webcam in the gspca doc.
+ * V4L/DVB (8716): gspca: Bad start of sn9c110 and sensor ov7630.
+ * V4L/DVB (8717): gspca: Frame buffer too small for small resolutions
+ (sonixj and t613).
+ * V4L/DVB (8718): gspca: suspend/resume added.
+ * V4L/DVB (8719): gspca: Have VIDIOC_QUERYCTRL more compliant to the
+ spec.
+ * V4L/DVB (8720): gspca: V4L2_CAP_SENSOR_UPSIDE_DOWN added as a cap for
+ some webcams.
+ * V4L/DVB (8722): sms1xxx: fix typo in license header
+ * V4L/DVB (8726): link tuner before saa7134
+ * V4L/DVB (8727): V4L1: make PMS not autoprobe when builtin.
+ * V4L/DVB (8728): 1-make-pms-not-autoprobe-when-builtin update
+ * V4L/DVB (8749): Fix error code, when camera is not turned on by sonypi
+ * V4L/DVB (8750): V4L: check inval in video_register_device_index()
+ * V4L/DVB (8751): vivi: Fix some issues at vivi register routine
+ * V4L/DVB (8757): v4l-dvb: fix a bunch of sparse warnings
+ * V4L/DVB (8769): cx18: Simplify queue flush logic to prevent oops in
+ cx18_flush_queues()
+ * V4L/DVB (8778): radio: fix incorrect video_register_device result check
+ * V4L/DVB (8779): v4l: fix more incorrect video_register_device result
+ checks
+ * V4L/DVB (8790): saa7115: call i2c_set_clientdata only when state !=
+ NULL
+ * V4L/DVB (8803): s5h1409: Enable QAM_AUTO mode
+ * V4L/DVB (8804): s5h1411: Enable QAM_AUTO mode
+ * V4L/DVB (8805): Steven Toth email address change
+ * V4L/DVB (8809): gspca: Revert commit
+ 9a9335776548d01525141c6e8f0c12e86bbde982
+ * V4L/DVB (8810): gspca: Compile error when CONFIG_PM not defined.
+ * V4L/DVB (8812): gspca: Do pac73xx webcams work.
+ * V4L/DVB (8813): gspca: Adjust SOF detection for pac73xx.
+ * V4L/DVB (8814): gspca: Set DISABLED the disabled controls at query
+ control time.
+ * V4L/DVB (8815): gspca: Fix problems with disabled controls.
+ * V4L/DVB (8816): gspca: Set disabled ctrls and fix a register pb with
+ ovxxxx in sonixb.
+ * V4L/DVB (8817): gspca: LED and proble changes in sonixb.
+ * V4L/DVB (8818): gspca: Reinitialize the device on resume.
+ * V4L/DVB (8819): gspca: Initialize the ov519 at open time and source
+ cleanup.
+ * V4L/DVB (8820): gspca: Change initialization and gamma of zc3xx -
+ pas106.
+ * V4L/DVB (8822): gspca: Change some subdriver functions for
+ suspend/resume.
+ * V4L/DVB (8823): gspca: H and V flips work for ov7670 only in ov519.
+ * V4L/DVB (8824): gspca: Too much code removed in the suspend/resume
+ changeset.
+ * V4L/DVB (8825): gspca: More controls for pac73xx and new webcam
+ 093a:2624.
+ * V4L/DVB (8826): gspca: Webcam Labtec 2200 (093a:2626) added in pac7311.
+ * V4L/DVB (8827): gspca: Stop pac7302 autogain oscillation.
+ * V4L/DVB (8828): gspca: Set the clock at the end of initialization in
+ sonixj.
+ * V4L/DVB (8829): gspca: Have a clean kmalloc-ated buffer for USB
+ exchanges.
+ * V4L/DVB (8830): gspca: Move some probe code to the new init function.
+ * V4L/DVB (8831): gspca: Resolve webcam conflicts between some drivers.
+ * V4L/DVB (8832): gspca: Bad pixelformat of vc0321 webcams.
+ * V4L/DVB (8833): gspca: Cleanup the sonixb code.
+ * V4L/DVB (8834): gspca: Have a bigger buffer for sn9c10x compressed
+ images.
+ * V4L/DVB (8835): gspca: Same pixfmt as the sn9c102 driver and raw Bayer
+ added in sonixb.
+ * V4L/DVB (8837): dvb: fix I2C adapters name size
+ * V4L/DVB (8839): dib0700: add comment to identify 35th USB id pair
+ * V4L/DVB (8840): dib0700: add basic support for Hauppauge Nova-TD-500
+ (84xxx)
+ * V4L/DVB (8842): vivi_release(): fix use-after-free
+ * V4L/DVB (8843): tda10048_firmware_upload(): fix a memory leak
+ * V4L/DVB (8844): dabusb_fpga_download(): fix a memory leak
+ * bnx2x: Accessing un-mapped page
+ * SELinux: memory leak in security_context_to_sid_core
+ * x86: add io delay quirk for Presario F700
+ * mmap: fix petty bug in anonymous shared mmap offset handling
+ * x86: Change warning message in TSC calibration.
+ * PCI: fix pbus_size_mem() resource alignment for CardBus controllers
+ * [ARM] omap: fix build error in ohci-omap.c
+ * [ARM] remove unused #include <version.h>
+ * ACPI: Make Len Brown the ACPI maintainer again
+ * fujitsu-laptop: fix regression for P8010 in 2.6.27-rc
+ * ACPI: Avoid bogus timeout about SMbus check
+ * acer-wmi: remove debugfs entries upon unloading
+ * forgotten refcount on sysctl root table
+ * V4L/DVB (8868): gspca: Support for vga modes with sif sensors in
+ sonixb.
+ * V4L/DVB (8869): gspca: Move the Sonix webcams with TAS5110C1B from
+ sn9c102 to gspca.
+ * V4L/DVB (8870): gspca: Fix dark room problem with sonixb.
+ * V4L/DVB (8872): gspca: Bad image format and offset with rev072a of
+ spca561.
+ * V4L/DVB (8873): gspca: Bad image offset with rev012a of spca561 and
+ adjust exposure.
+ * V4L/DVB (8874): gspca: Adjust hstart for sn9c103/ov7630 and update
+ usb-id's.
+ * [ARM] omap: fix virtual vs physical address space confusions
+ * V4L/DVB (8876): budget: udelay changed to mdelay
+ * V4L/DVB (8877): b2c2 and bt8xx: udelay to mdelay
+ * V4L/DVB (8880): PATCH: Fix parents on some webcam drivers
+ * V4L/DVB (8881): gspca: After 'while (retry--) {...}', retry will be -1
+ but not 0.
+ * powerpc/spufs: Fix multiple get_spu_context()
+ * powerpc/spufs: Fix race for a free SPU
+ * Input: bcm5974 - small formatting cleanup
+ * Input: bcm5974 - improve finger tracking and counting
+ * Input: bcm5974 - add BTN_TOUCH event for mousedev benefit
+ * Input: i8042 - make Lenovo 3000 N100 blacklist entry more specific
+ * sh: resume_kernel fix for kernel oops built with CONFIG_BKL_PREEMPT=y.
+ * sh64: resume_kernel fix for kernel oops built with
+ CONFIG_BKL_PREEMPT=y.
+ * i2c: fix i2c-sh_mobile timing issues
+ * clockevents: prevent clockevent event_handler ending up handler_noop
+ * clockevents: prevent endless loop in periodic broadcast handler
+ * clockevents: enforce reprogram in oneshot setup
+ * clockevents: prevent multiple init/shutdown
+ * clockevents: prevent endless loop lockup
+ * HPET: make minimum reprogramming delta useful
+ * [MTD] [NAND] tmio_nand: fix base address programming
+ * Fix conditional export of kvh.h and a.out.h to userspace.
+ * async_tx: fix the bug in async_tx_run_dependencies
+ * sched_clock: fix NOHZ interaction
+ * sched: fix process time monotonicity
+ * UBIFS: fix division by zero
+ * UBIFS: make minimum fanout 3
+ * [MIPS] Fix data bus error recovery
+ * [MIPS] Fix WARNING: at kernel/smp.c:290
+ * [MIPS] TXx9: Fix txx9_pcode initialization
+ * [MIPS] TX39xx: Add missing local_flush_icache_range initialization
+ * [MIPS] Probe initrd header only if explicitly specified
+ * res_counter: fix off-by-one bug in setting limit
+ * forcedeth: fix kexec regression
+ * atmel_lcdfb: fix oops in rmmod when framebuffer fails to register
+ * tracehook: comment pasto fixes
+ * drivers/mmc/card/block.c: fix refcount leak in mmc_block_open()
+ * x86: boot: stub out unimplemented CPU feature words
+ * x86: add NOPL as a synthetic CPU feature bit
+ * x86: use X86_FEATURE_NOPL in alternatives
+ * clockevents: broadcast fixup possible waiters
+ * x86: HPET fix moronic 32/64bit thinko
+ * x86: HPET: read back compare register before reading counter
+ * Fix CONFIG_AC97_BUS dependency
+ * [ARM] 5241/1: provide ioremap_wc()
+ * ntp: fix calculation of the next jiffie to trigger RTC sync
+ * clocksource, acpi_pm.c: use proper read function also in errata mode
+ * clocksource, acpi_pm.c: check for monotonicity
+ * x86: delay early cpu initialization until cpuid is done
+ * x86: move mtrr cpu cap setting early in early_init_xxxx
+ * sched: arch_reinit_sched_domains() must destroy domains to force
+ rebuild
+ * x86, xen: Use native_pte_flags instead of native_pte_val for .pte_flags
+ * x86: pda_init(): fix memory leak when using CPU hotplug
+ * x86: cpu_init(): fix memory leak when using CPU hotplug
+ * powerpc/spufs: Fix possible scheduling of a context to multiple SPEs
+ * netfilter: nf_conntrack_sip: de-static helper pointers
+ * netfilter: nf_conntrack_gre: more locking around keymap list
+ * netfilter: nf_conntrack_gre: nf_ct_gre_keymap_flush() fixlet
+ * netfilter: nf_conntrack_irc: make sure string is terminated before
+ calling simple_strtoul
+ * pkt_sched: Fix qdisc state in net_tx_action()
+ * powerpc: Fix rare boot build breakage
+ * ahci, pata_marvell: play nicely together
+ * sata_mv: add RocketRaid 1720 PCI ID to driver
+ * ahci: disable PMP for marvell ahcis
+ * sata_nv: disable hardreset for generic
+ * libata-sff: kill spurious WARN_ON() in ata_hsm_move()
+ * pata_sil680: remove duplicate pcim_enable_device
+ * ahci: RAID mode SATA patch for Intel Ibex Peak DeviceIDs
+ * [MIPS] IP22: Fix detection of second HPC3 on Challenge S
+ * xen: fix 2.6.27-rc5 xen balloon driver warnings
+ * x86: disable static NOPLs on 32 bits
+ * netns : fix kernel panic in timewait socket destruction
+ * bridge: don't allow setting hello time to zero
+ * NFS: Restore missing hunk in NFS mount option parser
+ * usb: fix null deferences in low level usb serial
+ * Fix format of MAINTAINERS
+ * sparc64: Disable timer interrupts in fixup_irqs().
+ * [Bluetooth] Fix reference counting during ACL config stage
+ * [Bluetooth] Enforce correct authentication requirements
+ * [Bluetooth] Reject L2CAP connections on an insecure ACL link
+ * [S390] CVE-2008-1514: prevent ptrace padding area read/write in 31-bit
+ mode
+ * [S390] cio: Correct cleanup on error.
+ * [S390] cio: handle ssch() return codes correctly.
+ * [S390] cio: allow offline processing for disconnected devices
+ * ipsec: Restore larval states and socket policies in dump
+ * update Documentation/filesystems/Locking for 2.6.27 changes
+ * MAINTAINERS: add Atheros maintainer for atlx
+ * lib: Correct printk %pF to work on all architectures
+ * x86: fix memmap=exactmap boot argument
+ * clockevents: remove WARN_ON which was used to gather information
+ * ipv6: Fix OOPS in ip6_dst_lookup_tail().
+ * Linux 2.6.27-rc6
+
+ -- Ben Collins <ben.collins@canonical.com> Tue, 02 Sep 2008 12:45:56 -0400
+
+linux (2.6.27-2.3) intrepid; urgency=low
+
+ [ Ben Collins ]
+
+ * build/retag: Make script save .orig of tags for later use
+ * ubuntu/lirc: Fix device_create call
+ * build/firmware: Put in-kernel firmware into version specific subdir
+ - LP: #262115
+ * Rebase on linux-2.6 git.
+ * ABI bump
+
+ [ Herton Ronaldo Krzesinski ]
+
+ * SAUCE: (no-up) Apparmor warning fixes
+
+ [ John Johansen ]
+
+ * SAUCE: (no-up) Proper AppArmor ptrace updates for newer lsm API
+
+ [ Mackenzie Morgan ]
+
+ * SAUCE: Add quirk for ASUS Z37E to make sound audible after resume
+ - LP: #25896
+
+ -- Ben Collins <ben.collins@canonical.com> Wed, 27 Aug 2008 14:03:05 -0400
+
+linux (2.6.27-1.2) intrepid; urgency=low
+
+ [ Amit Kucheria ]
+
+ * SAUCE: make fc transport removal of target configurable
+ * SAUCE: pm: Config option to disable handling of console during
+ suspend/resume
+
+ [ Ben Collins ]
+
+ * SAUCE: Lower warning level of some PCI messages
+ * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps
+ * SAUCE: tulip: Let dmfe handle davicom on non-sparc
+ * SAUCE: tulip: Define ULI PCI ID's
+ * SAUCE: (no-up) version: Implement version_signature proc file.
+ * SAUCE: (no-up) connector.h: Add idx/val for drbd
+ * SAUCE: (no-up) swap: Add notify_swap_entry_free callback for compcache
+ * SAUCE: drivers: Remove some duplicate device entries in various modules
+ * SAUCE: (no-up) [AppArmor] merge with upstream subversion r1291
+ * SAUCE: apparmor: Update for changes to ptrace lsm hooks
+ * SAUCE: (no-up) Enable ubuntu extra subdirectory
+ * SAUCE: applesmc: Add MacBookAir
+ * SAUCE: (no-up) ACPI: initramfs DSDT override support
+ * ubuntu: Add drbd module
+ * ubuntu: Add iscsitarget module
+ * ubuntu: Add BOM for iscsitarget
+ * ubuntu: Add squashfs driver
+ * SAUCE: (no-up) Check for squashfs superblock in initramfs mounting.
+ * ubuntu: Add aufs module
+ * ubuntu: Added atl2 driver
+ * ubuntu: Added et131x driver
+ * ubuntu: Add dm-raid4-5 driver
+ * ubuntu: Add ndiswrapper driver
+ * ubuntu: Added ram backed compressed swap module (compcache)
+ * ubuntu: Add misc drivers from hardy lum
+ * ubuntu: Add heci driver 3.2.0.24
+ * ubuntu: Add ov511 and bt-sco drivers
+ * ubuntu: Add acx, prism2_usb wireless drivers
+ * ubuntu: Add at76 driver to build
+ * ubuntu: Add fsam7400 sw kill switch driver
+ * ubuntu: Added qc-usb driver
+ * ubuntu: e1000e: Upgraded module to 0.4.1.7
+ * ubuntu: Added rfkill drivers
+ * ubuntu: VIA - Add VIA DRM Chrome9 3D engine
+ * ubuntu: unionfs: Added v1.4 module from hardy
+ * ubuntu: Add LIRC driver
+ * ubuntu: Add GFS driver
+ * ubuntu: New tlsup driver for toshiba laptops
+ * Update config files
+ * build/d-i: Remove obsolete dm modules
+
+ [ Chuck Short ]
+
+ * SAUCE: ata: blacklist FUJITSU MHW2160BH PL
+
+ [ Colin Ian King ]
+
+ * ubuntu: Add dm-loop
+ * SAUCE: Enable speedstep for sonoma processors.
+
+ [ Dennis Noordsij ]
+
+ * SAUCE: Work around ACPI corruption upon suspend on some Dell machines.
+
+ [ Fabio M. Di Nitto ]
+
+ * SAUCE: Export gfs2 symbols required for gfs1 kernel module
+
+ [ Matthew Garrett ]
+
+ * SAUCE: hostap: send events on data interface as well as master
+ interface
+
+ [ Michael Frey (Senior Manager, MID ]
+
+ * SAUCE: Send HCI_RESET for Broadcomm 2046
+
+ [ Phillip Lougher ]
+
+ * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets.
+
+ [ Stefan Bader ]
+
+ * SAUCE: (no-up) Export dm_disk function of device-mapper
+ * SAUCE: Restore VT fonts on switch
+ * SAUCE: mmc: Increase power_up deleay to fix TI readers
+
+ [ Tim Gardner ]
+
+ * SAUCE: Add extra headers to linux-libc-dev
+ * SAUCE: Catch nonsense keycodes and silently ignore
+ * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM
+ * SAUCE: Guest OS does not recognize a lun with non zero target id on
+ Vmware ESX Server
+ * SAUCE: (no-up) Take care of orinoco_cs overlap with hostap_cs
+ * ubuntu: Add GNBD driver
+
+ -- Ben Collins <ben.collins@canonical.com> Sat, 23 Aug 2008 15:48:35 -0400
+
+linux (2.6.27-0.0) intrepid; urgency=low
+
+ * Not uploaded, placeholder for new release
+
+ -- Ben Collins <ben.collins@canonical.com> Sat, 23 Aug 2008 15:48:35 -0400
+
+linux (2.6.26-5.17) intrepid; urgency=low
+
+ [ Ben Collins ]
+
+ * build/abi: Add tosh_smm symbol to blacklist
+
+ -- Ben Collins <ben.collins@canonical.com> Fri, 15 Aug 2008 09:29:34 -0400
+
+linux (2.6.26-5.16) intrepid; urgency=low
+
+ [ Ben Collins ]
+
+ * Revert "SAUCE: toshiba_acpi: Rewrote most of the proc entry bits."
+ * Revert "SAUCE: Update toshiba_acpi.c to version 0.19a"
+ * build/config: Disable in-kernel toshiba driver(s)
+ * ubuntu/tlsup: New driver for toshiba laptops
+ * build/config: Enable TLSUP driver
+ * SAUCE: e1000e: Fix E1000E_ENABLED logic to check for our E1000E_NEW
+ driver as well
+ * ubuntu/e1000e: Remove E1000E_ENABLED option in local config
+ * build/config: Update configs to have E1000E_ENABLED set
+ * ubuntu/prism2: Remove duplicate device
+
+ [ Fabio M. Di Nitto ]
+
+ * SAUCE: Export gfs2 symbols required for gfs1 kernel module
+
+ [ Stefan Bader ]
+
+ * SAUCE: x86: HPET rework for SB700
+ - LP: #255910
+
+ [ Tim Gardner ]
+
+ * Add GNBD driver
+ * Enable GNBD driver
+ * SAUCE: Add GFS driver
+ * SAUCE: Enable gfs driver configs
+ * b43: Linksys WMP54G (BCM4306/3) card in a PCI format has an SPROM
+ coding
+
+ [ Upstream Kernel Changes ]
+
+ * KVM: x86 emulator: emulate clflush
+ * USB: quirk PLL power down mode
+
+ -- Ben Collins <ben.collins@canonical.com> Mon, 11 Aug 2008 13:19:28 -0400
+
+linux (2.6.26-5.15) intrepid; urgency=low
+
+ [ Ben Collins ]
+
+ * Revert "SAUCE: Add blacklist support to fix Belkin bluetooth dongle."
+ - Superceded by upstream changes.
+ * build/config: New option enabled for uvcvideo
+ * build/control: Add Vcs-Git meta data to control file
+ * SAUCE: toshiba_acpi: Rewrote most of the new code
+ * abi/perm-blacklist: Add emu10k1 driver to blacklist
+
+ [ Upstream Kernel Changes ]
+
+ * pxamci: trivial fix of DMA alignment register bit clearing
+ * udplite: Protection against coverage value wrap-around
+ * ipv6: use timer pending
+ * ipv6: __KERNEL__ ifdef struct ipv6_devconf
+ * hdlcdrv: Fix CRC calculation.
+ * quota: fix possible infinite loop in quota code
+ * isofs: fix minor filesystem corruption
+ * KVM: VMX: Fix a wrong usage of vmcs_config
+ * KVM: SVM: fix suspend/resume support
+ * KVM: mmu_shrink: kvm_mmu_zap_page requires slots_lock to be held
+ * KVM: VMX: Add ept_sync_context in flush_tlb
+ * KVM: x86 emulator: Fix HLT instruction
+ * KVM: MMU: nuke shadowed pgtable pages and ptes on memslot destruction
+ * KVM: MMU: Fix potential race setting upper shadow ptes on nonpae hosts
+ * Patch Upstream: x86 ptrace: fix PTRACE_GETFPXREGS error
+ * rcu: fix rcu_try_flip_waitack_needed() to prevent grace-period stall
+ * Fix typos from signal_32/64.h merge
+ * x86 reboot quirks: add Dell Precision WorkStation T5400
+ * USB: fix usb serial pm counter decrement for disconnected interfaces
+ * x86, suspend, acpi: enter Big Real Mode
+ * markers: fix duplicate modpost entry
+ * Fix build on COMPAT platforms when CONFIG_EPOLL is disabled
+ * proc: fix /proc/*/pagemap some more
+ * cpusets: fix wrong domain attr updates
+ * x86: fix crash due to missing debugctlmsr on AMD K6-3
+ * ide-cd: fix oops when using growisofs
+ * rtc-at91rm9200: avoid spurious irqs
+ * vmlinux.lds: move __attribute__((__cold__)) functions back into final
+ .text section
+ * ARM: fix fls() for 64-bit arguments
+ * tcp: Clear probes_out more aggressively in tcp_ack().
+ * sparc64: Fix lockdep issues in LDC protocol layer.
+ * sparc64: Fix cpufreq notifier registry.
+ * sparc64: Do not define BIO_VMERGE_BOUNDARY.
+ * iop-adma: fix platform driver hotplug/coldplug
+ * myri10ge: do not forget to setup the single slice pointers
+ * myri10ge: do not use mgp->max_intr_slots before loading the firmware
+ * ALSA: trident - pause s/pdif output
+ * V4L: cx18: Upgrade to newer firmware & update documentation
+ * DVB: dib0700: add support for Hauppauge Nova-TD Stick 52009
+ * V4L: uvcvideo: Fix a buffer overflow in format descriptor parsing
+ * V4L: uvcvideo: Use GFP_NOIO when allocating memory during resume
+ * V4L: uvcvideo: Don't free URB buffers on suspend
+ * V4L: uvcvideo: Make input device support optional
+ * V4L: uvcvideo: Add support for Medion Akoya Mini E1210 integrated
+ webcam
+ * V4L: saa7134: Copy tuner data earlier to avoid overwriting manual tuner
+ type
+ * V4L: cx23885: Bugfix for concurrent use of /dev/video0 and /dev/video1
+ * DVB: cx23885: Ensure PAD_CTRL is always reset to a sensible default
+ * DVB: cx23885: DVB Transport cards using DVB port VIDB/TS1 did not
+ stream
+ * DVB: cx23885: Reallocated the sram to avoid concurrent VIDB/C issues
+ * DVB: cx23885: SRAM changes for the 885 and 887 silicon parts
+ * x86: fix kernel_physical_mapping_init() for large x86 systems
+ * eCryptfs: use page_alloc not kmalloc to get a page of memory
+ * UML - Fix boot crash
+ * ixgbe: remove device ID for unsupported device
+ * mpc52xx_psc_spi: fix block transfer
+ * tmpfs: fix kernel BUG in shmem_delete_inode
+ * markers: fix markers read barrier for multiple probes
+ * VFS: increase pseudo-filesystem block size to PAGE_SIZE
+ * cpufreq acpi: only call _PPC after cpufreq ACPI init funcs got called
+ already
+ * b43legacy: Release mutex in error handling code
+ * ath5k: don't enable MSI, we cannot handle it yet
+ * Fix off-by-one error in iov_iter_advance()
+ * Linux 2.6.26.1
+ * ftrace: remove unneeded documentation
+ * romfs_readpage: don't report errors for pages beyond i_size
+ * netfilter: nf_nat_sip: c= is optional for session
+ * SCSI: bsg: fix bsg_mutex hang with device removal
+ * x86: idle process - add checking for NULL early param
+ * x86: io delay - add checking for NULL early param
+ * Close race in md_probe
+ * Kprobe smoke test lockdep warning
+ * netfilter: xt_time: fix time's time_mt()'s use of do_div()
+ * linear: correct disk numbering error check
+ * SCSI: ch: fix ch_remove oops
+ * NFS: Ensure we zap only the access and acl caches when setting new acls
+ * jbd: fix race between free buffer and commit transaction
+ * Input: i8042 - add Intel D845PESV to nopnp list
+ * Input: i8042 - add Gericom Bellagio to nomux blacklist
+ * Input: i8042 - add Acer Aspire 1360 to nomux blacklist
+ * Bluetooth: Signal user-space for HIDP and BNEP socket errors
+ * Add compat handler for PTRACE_GETSIGINFO
+ * ALSA: hda - Fix wrong volumes in AD1988 auto-probe mode
+ * ALSA: hda - Fix DMA position inaccuracy
+ * ALSA: hda - Add missing Thinkpad Z60m support
+ * ALSA: emu10k1 - Fix inverted Analog/Digital mixer switch on Audigy2
+ * vfs: fix lookup on deleted directory
+ * Ath5k: fix memory corruption
+ * Ath5k: kill tasklets on shutdown
+ * sound: ensure device number is valid in snd_seq_oss_synth_make_info
+ * Linux 2.6.26.2
+
+ -- Ben Collins <ben.collins@canonical.com> Sun, 03 Aug 2008 13:25:02 -0400
+
+linux (2.6.26-5.14) intrepid; urgency=low
+
+ [ Ben Collins ]
+
+ * SAUCE: applesmc: Add MacBookAir
+ * build: Do not build ddeb unless we are on the buildd
+ * build: control: Consistency in arch fields.
+ * SAUCE: Update toshiba_acpi.c to version 0.19a
+ - LP: #77026
+ * build: Added perm blacklist support and per-module support to abi-check
+ - Blacklist p80211 module from abi checks
+ * ubuntu/lirc: Get rid of drivers symlink and use real include stuff
+
+
+ [ Colin Ian King ]
+
+ * SAUCE: acerhk module - add support for Amilo A1650g keyboard
+ - LP: #84159
+ * SAUCE: rt2x00: Fix OOPS on failed creation of rt2x00lib workqueue
+ - LP: #249242
+
+ [ Mario Limonciello ]
+
+ * Add LIRC back in
+
+ [ Tim Gardner ]
+
+ * Makefile race condition can lead to ndiswrapper build failure
+ - LP: #241547
+ * update linux-wlan-ng (prism2_usb) to upstream version 1861
+ - LP: #245026
+
+ [ Upstream Kernel Changes ]
+
+ * Fix typos from signal_32/64.h merge
+
+ -- Ben Collins <ben.collins@canonical.com> Fri, 01 Aug 2008 00:05:01 -0400
+
+linux (2.6.26-5.13) intrepid; urgency=low
+
+ [ Ben Collins ]
+
+ * build: Make makedumpfile an amd64/i386 only build-dep
+ * ubuntu/acerhk: Fixup assembly to compile with newer binutils
+
+ -- Ben Collins <ben.collins@canonical.com> Sat, 26 Jul 2008 16:41:50 -0400
+
+linux (2.6.26-4.12) intrepid; urgency=low
+
+ [ Ben Collins ]
+
+ * e1000e: Upgraded module to 0.4.1.7 upstream. Placed in ubuntu/,
+ in-kernel driver disabled
+ * config: Disable e1000e in-kernel, and enable newer driver in ubuntu/
+ * rfkill: Update to 1.3 drivers, and move to common location
+ * ubuntu: Actually link kconfig/kbuild into rfkill subdir
+ * config: Enable loading dsdt from initramfs
+ - LP: #246222
+ * ubuntu: [compcache] Update to fix crashes in improper BUG()
+ * build: Create a retag scripts to recover tags from rebases
+ * build: Updates for dbg pkg
+ * build: Make sure no empty lines show up in debian/files
+ * ubuntu: atl1e: Add new driver from 2.6.27-pre-rc1
+ - LP: #243894
+ * sys_getcwd: Fix some brokeness introduced by AppArmor __d_path
+ changes
+ - LP: #251223
+ * ubuntu: unionfs: Added v1.4 module from hardy
+ * build: Add sub-flavour infrastructure, and virtual subflav
+
+ [ Eric Piel ]
+
+ * ACPI: Allow custom DSDT tables to be loaded from initramfs
+
+ [ Kees Cook ]
+
+ * AppArmor: Smack VFS patches
+
+ [ Mario Limonciello ]
+
+ * Work around ACPI corruption upon suspend on some Dell machines.
+ - LP: #183033
+
+ [ Tim Gardner ]
+
+ * Export usbhid_modify_dquirk for LBM module bcm5974
+ - LP: #250838
+ * VIA - Add VIA DRM Chrome9 3D engine
+ - LP: #251862
+ * Define TRUE/FALSE for VIA DRM driver.
+
+ -- Ben Collins <ben.collins@canonical.com> Tue, 15 Jul 2008 12:51:39 -0400
+
+linux (2.6.26-4.11) intrepid; urgency=low
+
+ [ Ben Collins ]
+
+ * config: Enable bcm5974 driver in all configs
+
+ [ 2.6.26-4.10 ]
+
+ [ Amit Kucheria ]
+
+ * Fix typo in GSPCA Makefile and make it compile
+
+ [ Ben Collins ]
+
+ * ubuntu: Remove UVC driver in favor of in-kernel one (-rc9)
+ * config: Updates for -rc9
+ * ubuntu: Add acx, prism2_usb wireless drivers
+ * config: Enable prism2_usb and acx drivers.
+ * ubuntu: Add at76 driver to build
+ * config: Enable at76_usb driver.
+ * iscsitarget: Fix prototype for bi_end_io callback.
+ * acx: Fix section type mismatch warnings
+ * fsam7400: Add sw kill switch driver
+ * config: Enable fsam7400 driver
+ * qc-usb: Added new driver
+ * config: Enable qc-usb driver
+ * drbd: Remove built-in connector usage
+ * drbd: Do not define idx/val for connector here
+ * connector.h: Add idx/val for drbd
+ * bcm5974: Added new driver
+
+ [ Kees Cook ]
+
+ * SAUCE: [AppArmor] merge with upstream subversion r1291
+ * SAUCE: [AppArmor] fix typo in selinux_inode_link
+ * SAUCE: [AppArmor] aufs patches
+
+ [ Michael Frey (Senior Manager, MID ]
+
+ * SAUCE: Send HCI_RESET for Broadcomm 2046
+ - LP: #241749
+
+ [ Tim Gardner ]
+
+ * SAUCE: Medion Akoya Mini E1210
+
+ [ Upstream Kernel Changes ]
+
+ * Revert "BAST: Remove old IDE driver"
+ * ARM: OMAP: DMA: Don't mark channel active in omap_enable_channel_irq
+ * ARM: OMAP: Correcting the gpmc prefetch control register address
+ * debugobjects: fix lockdep warning
+ * [ARM] 5115/1: pxafb: fix ifdef for command line option handling
+ * [ARM] 5116/1: pxafb: cleanup and fix order of failure handling
+ * [ARM] 5109/1: Mark rtc sa1100 driver as wakeup source before
+ registering it
+ * [ARM] Export dma_sync_sg_for_device()
+ * fix cgroup-inflicted breakage in block_dev.c
+ * [patch for 2.6.26 2/4] vfs: utimensat(): be consistent with utime() for
+ immutable and append-only files
+ * [patch for 2.6.26 1/4] vfs: utimensat(): ignore tv_sec if tv_nsec ==
+ UTIME_OMIT or UTIME_NOW
+ * [patch for 2.6.26 3/4] vfs: utimensat(): fix error checking for
+ {UTIME_NOW,UTIME_OMIT} case
+ * [patch for 2.6.26 4/4] vfs: utimensat(): fix write access check for
+ futimens()
+ * [patch 1/4] vfs: path_{get,put}() cleanups
+ * [patch 2/4] fs: make struct file arg to d_path const
+ * [patch 3/4] vfs: fix ERR_PTR abuse in generic_readlink
+ * [patch 4/4] flock: remove unused fields from file_lock_operations
+ * [patch 3/3] vfs: make d_path() consistent across mount operations
+ * [patch 1/3] vfs: dcache sparse fixes
+ * [patch 2/3] vfs: dcache cleanups
+ * udf: Fix regression in UDF anchor block detection
+ * [SCSI] ses: Fix timeout
+ * netfilter: ip6table_mangle: don't reroute in LOCAL_IN
+ * [SCSI] esp: Fix OOPS in esp_reset_cleanup().
+ * kernel/audit.c: nlh->nlmsg_type is gotten more than once
+ * audit: fix kernel-doc parameter notation
+ * remove useless argument type in audit_filter_user()
+ * Blackfin arch: fix bug - kernel boot fails when Spinlock and rw-lock
+ debugging enabled
+ * Blackfin arch: fix up section mismatch warning
+ * mac80211: implement EU regulatory domain
+ * b43: Do not return TX_BUSY from op_tx
+ * b43legacy: Do not return TX_BUSY from op_tx
+ * b43: Fix possible MMIO access while device is down
+ * b43legacy: Fix possible NULL pointer dereference in DMA code
+ * rt2x00: Fix unbalanced mutex locking
+ * iwlwifi: improve scanning band selection management
+ * [SCSI] esp: tidy up target reference counting
+ * [ARM] 5117/1: pxafb: fix __devinit/exit annotations
+ * thermal: Create CONFIG_THERMAL_HWMON=n
+ * ACPI: don't walk tables if ACPI was disabled
+ * dock: bay: Don't call acpi_walk_namespace() when ACPI is disabled.
+ * x86: shift bits the right way in native_read_tscp
+ * x86: section/warning fixes
+ * V4L/DVB (8004): Fix INPUT dependency at budget-ci
+ * V4L/DVB (8005): Fix OOPS if frontend is null
+ * V4L/DVB (8007): cx18/cx25840: the S-Video LUMA input can use all
+ In1-In8 inputs
+ * V4L/DVB (8008): cx18: remove duplicate audio and video input enums
+ * V4L/DVB (8010): em28xx: Properly register extensions for already
+ attached devices
+ * V4L/DVB (8011): em28xx: enable DVB for HVR-900
+ * V4L/DVB (8012): gl861: sleep a little to avoid I2C errors
+ * V4L/DVB (8013): gl861: remove useless identify_state
+ * V4L/DVB (8015): gl861: replace non critical msleep(0) with msleep(1) to
+ be on the safe side
+ * V4L/DVB (8017): Ensure em28xx extensions only get run against devs that
+ support them
+ * V4L/DVB (8018): Add em2860 chip ID
+ * V4L/DVB (8020): Fix callbacks functions of saa7134_empress
+ * V4L/DVB (8022): saa7134: fix race between opening and closing the
+ device
+ * V4L/DVB (8026): Avoids an OOPS if dev struct can't be successfully
+ recovered
+ * V4L/DVB (8027): saa7134: Avermedia A700: only s-video and composite
+ input are working
+ * V4L/DVB (8028): Improve error messages for tda1004x attach
+ * V4L/DVB (8029): Improve error message at tda1004x_attach
+ * V4L/DVB (8034): tda18271: fix IF notch frequency handling
+ * V4L/DVB (8035): tda18271: dont touch EB14 if rf_cal lookup is out of
+ range
+ * V4L/DVB (8036): tda18271: toggle rf agc speed mode on TDA18271HD/C2
+ only
+ * V4L/DVB (8037): tda18271: ensure that the thermometer is off during
+ channel configuration
+ * V4L/DVB (8039): pxa-camera: fix platform_get_irq() error handling.
+ * V4L/DVB (8040): soc-camera: remove soc_camera_host_class class
+ * V4L/DVB (8042): DVB-USB UMT-010 channel scan oops
+ * V4L/DVB (8043): au0828: add support for additional USB device id's
+ * V4L/DVB (8044): au8522: tuning optimizations
+ * V4L/DVB (8048): saa7134: Fix entries for Avermedia A16d and Avermedia
+ E506
+ * V4L/DVB (8061): cx18: only select tuner / frontend modules if
+ !DVB_FE_CUSTOMISE
+ * V4L/DVB (8063): cx18: Fix unintended auto configurations in
+ cx18-av-core
+ * V4L/DVB (8066): cx18: Fix audio mux input definitions for HVR-1600 Line
+ In 2 and FM radio
+ * V4L/DVB (8067): cx18: Fix firmware load for case when digital capture
+ happens first
+ * V4L/DVB (8068): cx18: Add I2C slave reset via GPIO upon initialization
+ * V4L/DVB (8069): cx18: Fix S-Video and Compsite inputs for the Yuan
+ MPC718 and enable card entry
+ * V4L/DVB (8071): tda10023: Fix possible kernel oops during
+ initialisation
+ * V4L/DVB (8073): av7110: Catch another type of ARM crash
+ * V4L/DVB (8074): av7110: OSD transfers should not be interrupted
+ * V4L/DVB (8075): stv0299: Uncorrected block count and bit error rate
+ fixed
+ * V4L/DVB (8092): videodev: simplify and fix standard enumeration
+ * V4L/DVB (8096): au8522: prevent false-positive lock status
+ * V4L/DVB (8097): xc5000: check device hardware state to determine if
+ firmware download is needed
+ * V4L/DVB (8100): V4L/vivi: fix possible memory leak in vivi_fillbuff
+ * V4L/DVB (8108): Fix open/close race in saa7134
+ * s2io: fix documentation about intr_type
+ * tc35815: Mark carrier-off before starting PHY
+ * tc35815: Fix receiver hangup on Rx FIFO overflow
+ * ixgbe: fix EEH recovery during reset on PPC
+ * igb: fix EEH recovery during reset on PPC
+ * e1000e: fix EEH recovery during reset on PPC
+ * pcnet_cs, axnet_cs: clear bogus interrupt before request_irq
+ * drivers/net/r6040.c: Eliminate double sizeof
+ * ipg: fix jumbo frame compilation
+ * ipg: use NULL, not zero, for pointers
+ * [netdrvr] 3c59x: remove irqs_disabled warning from local_bh_enable
+ * [netdrvr] netxen: fix netxen_pci_tbl[] breakage
+ * e100: Do pci_dma_sync after skb_alloc for proper operation on ixp4xx
+ * e1000: only enable TSO6 via ethtool when using correct hardware
+ * [netdrvr] Fix IOMMU overflow checking in s2io.c
+ * qla3xxx: Hold RTNL while calling dev_close()
+ * Hold RTNL while calling dev_close()
+ * sata_uli: hardreset is broken
+ * rt2x00: Fix lock dependency errror
+ * prism: islpci_eth.c endianness fix
+ * mac80211: fix an oops in several failure paths in key allocation
+ * firewire: fw-sbp2: fix parsing of logical unit directories
+ * kbuild: fix a.out.h export to userspace with O= build.
+ * Ensure interrupted recovery completed properly (v1 metadata plus
+ bitmap)
+ * Don't acknowlege that stripe-expand is complete until it really is.
+ * Fix error paths if md_probe fails.
+ * hamradio: remove unused variable
+ * tcp: calculate tcp_mem based on low memory instead of all memory
+ * tcp: fix for splice receive when used with software LRO
+ * af_unix: fix 'poll for write'/connected DGRAM sockets
+ * netdevice: Fix typo of dev_unicast_add() comment
+ * pkt_sched: ERR_PTR() ususally encodes an negative errno, not positive.
+ * pkt_sched: Remove CONFIG_NET_SCH_RR
+ * include/linux/netdevice.h: don't export MAX_HEADER to userspace
+ * tcp: /proc/net/tcp rto,ato values not scaled properly (v2)
+ * netlink: Fix some doc comments in net/netlink/attr.c
+ * CONNECTOR: add a proc entry to list connectors
+ * inet fragments: fix race between inet_frag_find and
+ inet_frag_secret_rebuild
+ * net/inet_lro: remove setting skb->ip_summed when not LRO-able
+ * netlabel: Fix a problem when dumping the default IPv6 static labels
+ * ipv6 route: Convert rt6_device_match() to use RT6_LOOKUP_F_xxx flags.
+ * sched: fix cpu hotplug
+ * Fix and clean top .gitignore
+ * x86: fix cpu hotplug crash
+ * ptrace GET/SET FPXREGS broken
+ * Input: add KEY_MEDIA_REPEAT definition
+ * Input: fix locking in force-feedback core
+ * [ARM] 5131/1: Annotate platform_secondary_init with trace_hardirqs_off
+ * ide: fix /proc/ide/ide?/mate reporting
+ * netfilter: nf_conntrack_tcp: fixing to check the lower bound of valid
+ ACK
+ * textsearch: fix Boyer-Moore text search bug
+ * hostap: don't report useless WDS frames by default
+ * hostap: fix sparse warnings
+ * mac80211: don't accept WEP keys other than WEP40 and WEP104
+ * V4L/DVB (8145a): USB Video Class driver
+ * [IA64] Bugfix for system with 32 cpus
+ * [IA64] export account_system_vtime
+ * sched: fix divide error when trying to configure rt_period to zero
+ * x86: fix NODES_SHIFT Kconfig range
+ * block: Fix the starving writes bug in the anticipatory IO scheduler
+ * Properly notify block layer of sync writes
+ * rcu: fix hotplug vs rcu race
+ * I2C: S3C2410: Check ACK on byte transmission
+ * I2C: S3C2410: Fixup error codes returned rom a transfer.
+ * I2C: S3C2410: Add MODULE_ALIAS() for s3c2440 device.
+ * PCI: Restrict VPD read permission to root
+ * powerpc/bootwrapper: update for initrd with simpleImage
+ * i2c: Documentation: fix device matching description
+ * i2c: Fix bad hint about irqs in i2c.h
+ * powerpc/legacy_serial: Bail if reg-offset/shift properties are present
+ * powerpc/mpc5200: Fix lite5200b suspend/resume
+ * ipv4: fix sysctl documentation of time related values
+ * net-sched: change tcf_destroy_chain() to clear start of filter list
+ * net-sched: fix filter destruction in atm/hfsc qdisc destruction
+ * netlink: Unneeded local variable
+ * net: Tyop of sk_filter() comment
+ * netdevice: Fix wrong string handle in kernel command line parsing
+ * net: fib_rules: fix error code for unsupported families
+ * dm crypt: use cond_resched
+ * V4L/DVB (8178): uvc: Fix compilation breakage for the other drivers, if
+ uvc is selected
+ * PCI: Limit VPD read/write lengths for Broadcom 5706, 5708, 5709 rev.
+ * PCI: acpiphp: cleanup notify handler on all root bridges
+ * drivers/input/ff-core.c needs <linux/sched.h>
+ * DRM/i915: only use tiled blits on 965+
+ * tty: Fix inverted logic in send_break
+ * x86: fix Intel Mac booting with EFI
+ * arch/x86/mm/init_64.c: early_memtest(): fix types
+ * 9p: fix O_APPEND in legacy mode
+ * slub: Do not use 192 byte sized cache if minimum alignment is 128 byte
+ * Do not overwrite nr_zones on !NUMA when initialising zlcache_ptr
+ * [MIPS] IP32: Fix unexpected irq 71
+ * [MIPS] IP22: Fix crashes due to wrong L1_CACHE_BYTES
+ * [MIPS] cevt-txx9: Reset timer counter on initialization
+ * hrtimer: prevent migration for raising softirq
+ * svcrpc: fix handling of garbage args
+ * OHCI: Fix problem if SM501 and another platform driver is selected
+ * USB: fix cdc-acm resume()
+ * USB: ehci - fix timer regression
+ * USB: ohci - record data toggle after unlink
+ * USB: mass storage: new id for US_SC_CYP_ATACB
+ * sisusbvga: Fix oops on disconnect.
+ * USB: New device ID for ftdi_sio driver
+ * USB: fix interrupt disabling for HCDs with shared interrupt handlers
+ * USB: don't lose disconnections during suspend
+ * USB: another option device id
+ * USB: add a pl2303 device id
+ * USB: fix Oops on loading ipaq module since 2.6.26
+ * USB: adding comment for ipaq forcing number of ports
+ * [MIPS] Fix bug in atomic_sub_if_positive.
+ * xen: fix address truncation in pte mfn<->pfn conversion
+ * sata_sil24: add DID for another adaptec flavor
+ * ahci: always clear all bits in irq_stat
+ * libata-sff: improve HSM violation reporting
+ * sata_mv: safer logic for limit_warnings
+ * Update maintainers for powerpc
+ * Christoph has moved
+ * mm: dirty page accounting vs VM_MIXEDMAP
+ * rtc: rtc_read_alarm() handles wraparound
+ * firmware: fix the request_firmware() dummy
+ * serial: fix serial_match_port() for dynamic major tty-device numbers
+ * get_user_pages(): fix possible page leak on oom
+ * rtc-x1205: Fix alarm set
+ * rtc: fix CMOS time error after writing /proc/acpi/alarm
+ * pci: VT3336 can't do MSI either
+ * Miguel Ojeda has moved
+ * ext3: add missing unlock to error path in ext3_quota_write()
+ * ext4: add missing unlock to an error path in ext4_quota_write()
+ * reiserfs: add missing unlock to an error path in reiserfs_quota_write()
+ * ecryptfs: remove unnecessary mux from ecryptfs_init_ecryptfs_miscdev()
+ * lib: taint kernel in common report_bug() WARN path.
+ * gpio: pca953x (i2c) handles max7310 too
+ * fsl_diu_fb: fix build with CONFIG_PM=y, plus fix some warnings
+ * Update taskstats-struct document for scaled time accounting
+ * cciss: fix regression that no device nodes are created if no logical
+ drives are configured.
+ * delay accounting: maintainer update
+ * Doc*/kernel-parameters.txt: fix stale references
+ * hdaps: add support for various newer Lenovo thinkpads
+ * mn10300: export certain arch symbols required to build allmodconfig
+ * mn10300: provide __ucmpdi2() for MN10300
+ * Introduce rculist.h
+ * man-pages is supported
+ * ntfs: update help text
+ * add kernel-doc for simple_read_from_buffer and memory_read_from_buffer
+ * w100fb: do not depend on SHARPSL
+ * w100fb: add 80 MHz modeline
+ * MFD maintainer
+ * cgroups: document the effect of attaching PID 0 to a cgroup
+ * spi: fix the read path in spidev
+ * doc: doc maintainers
+ * security: filesystem capabilities: fix fragile setuid fixup code
+ * security: filesystem capabilities: fix CAP_SETPCAP handling
+ * Alpha Linux kernel fails with inconsistent kallsyms data
+ * cpusets: document proc status cpus and mems allowed lists
+ * MAINTAINERS: update the email address of Andreas Dilger
+ * cciss: read config to obtain max outstanding commands per controller
+ * olpc: sdhci: add quirk for the Marvell CaFe's vdd/powerup issue
+ * olpc: sdhci: add quirk for the Marvell CaFe's interrupt timeout
+ * cpumask: introduce new APIs
+ * mm: switch node meminfo Active & Inactive pages to Kbytes
+ * Update MAINTAINERS file for the TPM device driver
+ * devcgroup: fix odd behaviour when writing 'a' to devices.allow
+ * doc: document the relax_domain_level kernel boot argument
+ * mmc: don't use DMA on newer ENE controllers
+ * mempolicy: mask off internal flags for userspace API
+ * x86 ACPI: normalize segment descriptor register on resume
+ * x86 ACPI: fix resume from suspend to RAM on uniprocessor x86-64
+ * softlockup: print a module list on being stuck
+ * ide: fix hwif->gendev refcounting
+ * ide: ide_unregister() warm-plug bugfix
+ * ide: ide_unregister() locking bugfix
+ * ahci: give another shot at clearing all bits in irq_stat
+ * Fix clear_refs_write() use of struct mm_walk
+ * Move _RET_IP_ and _THIS_IP_ to include/linux/kernel.h
+ * Fix pagemap_read() use of struct mm_walk
+ * Linux 2.6.26-rc9
+ * Revert "USB: don't explicitly reenable root-hub status interrupts"
+ * Revert "PCI: Correct last two HP entries in the bfsort whitelist"
+ * iwlwifi: fix incorrect 5GHz rates reported in monitor mode
+ * iwlwifi: drop skb silently for Tx request in monitor mode
+ * libertas: support USB persistence on suspend/resume (resend)
+ * tcp: net/ipv4/tcp.c needs linux/scatterlist.h
+ * tcp: fix a size_t < 0 comparison in tcp_read_sock
+ * bridge: fix use-after-free in br_cleanup_bridges()
+ * Add missing skb->dev assignment in Frame Relay RX code
+ * forcedeth: fix lockdep warning on ethtool -s
+ * ehea: fix might sleep problem
+ * ehea: add MODULE_DEVICE_TABLE
+ * ehea: fix race condition
+ * ehea: Access iph->tot_len with correct endianness
+ * pasemi_mac: Access iph->tot_len with correct endianness
+ * ibm_newemac: Fixes kernel crashes when speed of cable connected changes
+ * ibm_newemac: Fixes entry of short packets
+ * fs_enet: restore promiscuous and multicast settings in restart()
+ * can: add sanity checks
+ * x86: KVM guest: Add memory clobber to hypercalls
+ * KVM: IOAPIC: Fix level-triggered irq injection hang
+ * [SCSI] erase invalid data returned by device
+ * pxamci: fix byte aligned DMA transfers
+ * vsprintf: split out '%s' handling logic
+ * vsprintf: split out '%p' handling logic
+ * vsprintf: add infrastructure support for extended '%p' specifiers
+ * vsprintf: add support for '%pS' and '%pF' pointer formats
+ * powerpc: Fix unterminated of_device_id array in legacy_serial.c
+ * [UML] fix gcc ICEs and unresolved externs
+ * ocfs2/dlm: Fixes oops in dlm_new_lockres()
+ * hostap_cs: correct poor NULL checks in suspend/resume routines
+ * drivers/net/wireless/iwlwifi/iwl-3945.c Fix type issue on 64bit
+ * mac80211: move netif_carrier_on to after
+ ieee80211_bss_info_change_notify
+ * mac80211: Only flush workqueue when last interface was removed
+ * zd1211rw: add ID for AirTies WUS-201
+ * ssb-pcicore: Fix IRQ-vector init on embedded devices
+ * mac80211: don't report selected IBSS when not found
+ * crypto: tcrypt - Fix memory leak in test_cipher
+ * sctp: Mark the tsn as received after all allocations finish
+ * [S390] protect _PAGE_SPECIAL bit against mprotect
+ * irda: via-ircc proper dma freeing
+ * irda: New device ID for nsc-ircc
+ * irda: Fix netlink error path return value
+ * [SCSI] mptspi: fix oops in mptspi_dv_renegotiate_work()
+ * Correct hash flushing from huge_ptep_set_wrprotect()
+ * ide: add __ide_default_irq() inline helper
+ * palm_bk3710: fix IDECLK period calculation
+ * it8213: fix return value in it8213_init_one()
+ * [MIPS] Atlas, decstation: Fix section mismatches triggered by
+ defconfigs
+ * [MIPS] Fix 32bit kernels on R4k with 128 byte cache line size
+ * NFS: Fix readdir cache invalidation
+ * SUNRPC: Fix a double-free in rpcbind
+ * SUNRPC: Fix an rpcbind breakage for the case of IPv6 lookups
+ * reiserfs: discard prealloc in reiserfs_delete_inode
+ * Fix broken fix for fsl-diu-db
+ * RDMA/cxgb3: Fix regression caused by class_device -> device conversion
+ * ipv6: fix race between ipv6_del_addr and DAD timer
+ * sctp: Add documentation for sctp sysctl variable
+ * kernel/printk.c: Made printk_recursion_bug_msg static.
+ * powerpc: Add missing reference to coherent_dma_mask
+ * rc80211_pid: Fix fast_start parameter handling
+ * rt2x00: Disable synchronization during initialization
+ * zd1211rw: stop beacons on remove_interface
+ * libertas: fix memory alignment problems on the blackfin
+ * netfilter: nf_conntrack_tcp: fix endless loop
+ * netfilter: nf_nat_snmp_basic: fix a range check in NAT for SNMP
+ * md: ensure all blocks are uptodate or locked when syncing
+ * sched: fix cpu hotplug
+ * x86: fix /dev/mem compatibility under PAT
+ * crypto: chainiv - Invoke completion function
+ * ocfs2: Fix flags in ocfs2_file_lock
+ * kernel/kprobes.c: Made kprobe_blacklist static.
+ * arch/x86/kernel/.gitignore: Added vmlinux.lds to .gitignore file
+ because it shouldn't be tracked.
+ * ftrace: Documentation
+ * Fix PREEMPT_RCU without HOTPLUG_CPU
+ * sched: fix cpu hotplug, cleanup
+ * exec: fix stack excutability without PT_GNU_STACK
+ * slub: Fix use-after-preempt of per-CPU data structure
+ * Documentation: clarify tcp_{r,w}mem sysctl docs
+ * ip: sysctl documentation cleanup
+ * tcp: correct kcalloc usage
+ * ipv4: fib_trie: Fix lookup error return
+ * netlabel: netlink_unicast calls kfree_skb on error path by itself
+ * ipv6: missed namespace context in ipv6_rthdr_rcv
+ * xfrm: Add a XFRM_STATE_AF_UNSPEC flag to xfrm_usersa_info
+ * tun: Persistent devices can get stuck in xoff state
+ * tpm: add Intel TPM TIS device HID
+ * rapidio: fix device reference counting
+ * Fix name of Russell King in various comments
+ * rtc: fix reported IRQ rate for when HPET is enabled
+ * libata-acpi: filter out DIPM enable
+ * Added Targa Visionary 1000 IDE adapter to pata_sis.c
+ * libata-acpi: don't call sleeping function from invalid context
+ * Fix reference counting race on log buffers
+ * [SCSI] ipr: Fix HDIO_GET_IDENTITY oops for SATA devices
+ * IPMI: return correct value from ipmi_write
+ * x86: fix ldt limit for 64 bit
+ * [SCSI] fusion: default MSI to disabled for SPI and FC controllers
+ * [SCSI] bsg: fix oops on remove
+ * drivers/char/pcmcia/ipwireless/hardware.c fix resource leak
+ * drivers/isdn/i4l/isdn_common.c fix small resource leak
+ * fbdev: bugfix for multiprocess defio
+ * serial8250: sanity check nr_uarts on all paths.
+ * ov7670: clean up ov7670_read semantics
+ * rtc-fm3130: fix chip naming
+ * rtc-pcf8563: add chip id
+ * OProfile kernel maintainership changes
+ * frv: fix irqs_disabled() to return an int, not an unsigned long
+ * cifs: fix inode leak in cifs_get_inode_info_unix
+ * cifs: fix wksidarr declaration to be big-endian friendly
+ * cpusets, hotplug, scheduler: fix scheduler domain breakage
+ * Documentation/HOWTO: correct wrong kernel bugzilla FAQ URL
+ * devcgroup: always show positive major/minor num
+ * devcgroup: fix permission check when adding entry to child cgroup
+ * Linux 2.6.26
+
+ -- Ben Collins <ben.collins@canonical.com> Mon, 14 Jul 2008 13:41:50 -0400
+
+linux (2.6.26-3.9) intrepid; urgency=low
+
+ * abi: Add dca and ioatdma to modules.ignore
+
+ [ 2.6.26-3.8 ]
+
+ [ Ben Collins ]
+
+ * ubuntu: Add heci driver 3.2.0.24
+ * ubuntu: Add heci to kconfig/kbuild
+ * config: Enable heci module on all flavours
+ * dm-bbr: Update to get it to compile with 2.6.26
+ * config: Enable dm-bbr
+ * ubuntu: Add some media drivers
+ * config: Enable misc media drivers
+ * udeb: Switch to uvesafb in fb-modules
+ * abi: Add more modules to ignore (known)
+
+ [ 2.6.26-3.7 ]
+
+ [Amit Kucheria]
+
+ * SAUCE: make fc transport removal of target configurable
+ - LP: #163075
+ * SAUCE: pm: Config option to disable handling of console during
+ suspend/resume
+
+ [Ben Collins]
+
+ * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps
+ * SAUCE: irda: Default to dongle type 9 on IBM hardware
+ * SAUCE: tulip: Let dmfe handle davicom on non-sparc
+ * SAUCE: tulip: Define ULI PCI ID's
+ * SAUCE: version: Implement version_signature proc file.
+ * build: Cleanup arches
+ * build: Remove remnants of unused binary-custom infrastructure
+ * build: Remove disable_d_i (not needed) and cleanup ppa build stuff
+ * ubuntu: New modules, acer-acpi
+ * build: Remove -virtual, and rebuild configs
+ * ubuntu: Add drbd module
+ * acer-acpi: Fix makefile
+ * x86/Kconfig: Fix missing quote for ubuntu Kconfig source
+ * ubuntu: Add iscsitarget module
+ * ubuntu: Added Amiga FS driver
+ * ubuntu: Add squashfs driver
+ * ubuntu: Remove asfs (Amiga FS). Need to be in linux-ports instead
+ * squashfs: Move headers to real include directory
+ * build/configs: The Great Config Consistency Check of 2008
+ * ubuntu: Move third-party includes to ubuntu/include
+ * ubuntu: Add aufs module
+ * ubuntu: Added atl2 driver
+ * ubuntu: Add dm-radi4-5 driver
+ * build: Add CONFIG_DEBUG_SECTION_MISMATCH=y to get old style warnings
+ from build
+ * ubuntu/Makefile: Fixup dm-raid4-5 and add kludge for kbuild
+ * squashfs: Fixes for VFS changes
+ * ubuntu/dm-raid4-5: Fixups for moved/renamed headers/functions in core
+ md
+ * ubuntu: Add ndiswrapper driver
+ * d-i: Update module listings
+ * build: Disable xd block device (ancient)
+ * ndiswrapper: Fixup makefile
+ * d-i: Remove efi-modules. The only module, efivars, is built-in
+ * build: Remove install-source, obsolete and caused build failure
+ * Ubuntu-2.6.26-1.3
+ * build: linux-doc rules got broken when disabling html side. Fixed now.
+ * Ubuntu-2.6.26-1.4
+ * x86: Update to -rc6 allows CONFIG_PCI_OLPC to work with PCI_GOANY
+ * d-i: Make virtio-ring optional (it's built-in on i386)
+ * Ubuntu-2.6.26-1.4
+ * Ubuntu-2.6.26-1.5
+ * config: Enable DVB devices
+ * ubuntu/aufs: Make aufs a bool config, since it needs to be built-in
+ * config: Build aufs into the kernels
+ * build: Fix arguments passed to link-headers script
+ * config: Disable early printk
+ * d-i: Move isofs to storage-core and kill st (scsi tape) from list
+ * config: Enable non-promiscuous access to /dev/mem
+ * x86: Add option to disable decompression info messages
+ * config: Enable no-bz-chatter config options
+ * build: Re-add linux-source package
+ * d-i: Re-add socket-modules. Accidentally removed
+ - LP: #241295
+ * Ubuntu-2.6.26-2.6
+ * Use makedumpfile to generate a vmcoreinfo file.
+ * build: Build-Depend on makedumpfile for vmcoreinfo generation
+ * build: Remove debug print from git-ubuntu-log
+ * Updated configs for -rc7
+ * build: postinst, do not call depmod with -F
+ * config: Enable rtc-cmos as a built-in driver.
+ * control: Provide ndiswrapper-modules-1.9
+ * build: Generate vmcoreinfo in image build for crashdumps without debug
+ image
+ * config: Disable vesafb, since we'll prefer uvesafb
+ * build: Copy uvesafb module to initrd mod directory
+ * abi-check: New, more robust script
+ * config: Enable heap randomization by default
+ * abi-check: Cleanup output and call with perl (not $SHELL)
+ * abi: Ignore missing vesafb (known)
+ * config: Disable pcspkr (in favor of snd-pcsp)
+ * swap: Add notify_swap_entry_free callback for compcache
+ * compcache: Added ram backed compressed swap module
+ * ubuntu: Enable kbuild and kconfig for compcache
+ * config: Enable compcache and tlsf allocator as modules
+ * config: Updated for -rc8. Disables XEN on i386
+ * config: Switch i386-server to 64G, enable PAE, 64-bit res, and XEN
+ * ubuntu: Add misc drivers from hardy lum
+ * ubuntu: Enable build of misc/ subdir
+ * config: Enable misc drivers
+ * aufs: Fix warning about single non-string-literal arg to printf style
+ function
+ * drivers: Remove some duplicate device entries in various modules
+ * config: Disable some duplicate drivers
+ * keyspan: Remove duplicate device ID's
+ * check-aliases: Cleanup output, and fix rolling checks
+ * ubuntu: Disable dm-bbr for now
+ * dm-bbr: First cut at forward portiong. Still needs work.
+ * ubuntu: Disable dm-bbr in kbuild/kconfig
+
+ [Chuck Short]
+
+ * SAUCE: ata: blacklist FUJITSU MHW2160BH PL
+ - LP: #175834
+ * SAUCE: [USB]: add ASUS LCM to the blacklist
+
+ [Colin Ian King]
+
+ * SAUCE: airprime.c supports more devices
+ - LP: #208250
+ * SAUCE: Enable speedstep for sonoma processors.
+ - LP: #132271
+ * Add dm-loop
+ * Add dm-loop BOM
+
+ [Kyle McMartin]
+
+ * SAUCE: fix orinoco_cs oops
+
+ [Mario Limonciello]
+
+ * SAUCE: Enable Reset and SCO workaround on Dell 410 BT adapter
+
+ [Matthew Garrett]
+
+ * SAUCE: hostap: send events on data interface as well as master
+ interface
+
+ [Phillip Lougher]
+
+ * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets.
+
+ [Stefan Bader]
+
+ * SAUCE: Export dm_disk function of device-mapper
+ * SAUCE: Restore VT fonts on switch
+ * SAUCE: Always use SCO protocol (disable eSCO support) Bug: #39414
+ * SAUCE: mmc: Increase power_up deleay to fix TI readers OriginalAuthor:
+ Pascal Terjan <pterjan@mandriva.com> Bug: #137686
+ * SAUCE: Add blacklist support to fix Belkin bluetooth dongle. Bug:
+ #140511
+ * SAUCE: Lower warning level of pci resource allocation messages. Bug:
+ 159241
+ * SAUCE: Lower message level for PCI memory and I/O allocation.
+ - LP: #159241
+ * Modify log generation to catch bug numbers when adding with git-am.
+
+ [Tim Gardner]
+
+ * Added the debian directory. Ignore: yes
+ * Add support for UBUNTUINCLUDE Ignore: yes
+ * LUM headers go in /usr/src Ignore: yes
+ * First pass at 2.6.25 configs Ignore: yes
+ * i386 -generic builds. Ignore: yes
+ * SAUCE: Increase CONFIG_IDE_MAX_HWIFS to 8 (from 4)
+ * SAUCE: Add extra headers to linux-libc-dev OriginalAuthor: Soren Hansen
+ OriginalLocation:
+ https://lists.ubuntu.com/archives/kernel-team/2007-November/001891.html
+ * Set CONFIG_DEVKMEM=n Ignore: yes
+ * Enabled ALSA and CGROUPS for i386 Ignore: yes
+ * Enabled amd64 configs. Ignore: yes
+ * CONFIG_STANDALONE=n Ignore: yes
+ * CONFIG_BLK_DEV_4DRIVES=n for i386 Ignore: yes
+ * CONFIG: CONFIG_DEFAULT_RELATIME=y for all flavours. Ignore: yes
+ * Set CONFIG_EDD_OFF=y Ignore: yes
+ * SAUCE: Blacklist Bluetooth Dell Wireless 370 for SCO MTU
+ OriginalAuthor: Mario Limonciello <Mario_Limonciello@Dell.com> Bug:
+ #209715
+ * SAUCE: Catch nonsense keycodes and silently ignore
+ * SAUCE: frame buffer regression - screen blank except for blinking
+ cursor after fbcon vtswitch OriginalAuthor: Matthew Garrett
+ <mjg59@srcf.ucam.org> Bug: #201591
+ * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM
+ OriginalAuthor: Klaus S. Madsen <ubuntu@hjernemadsen.org>
+ OriginalAuthor: Chuck Short <zulcss@ubuntu.com>
+ * SAUCE: Guest OS does not recognize a lun with non zero target id on
+ Vmware ESX Server
+ * SAUCE: orinoco_cs.ko missing
+ * Set CONFIG_FB_VESA=m for i386/amd64 Ignore: yes
+ * Set CONFIG_PM_DISABLE_CONSOLE=y for all flavours Ignore: yes
+ * Thorough review of amd64 -generic config Ignore: yes
+ * Build PPA packages for Hardy until the Intrepid archive is opened.
+ * Deleted obsolete flavours Ignore: yes
+ * Don't build docs for PPA Ignore: yes
+ * Build all standard packages in PPA. Ignore: yes
+ * Remove duplicate USB ids
+ * SAUCE: DVB-USB UMT-010 driver oops on install Bug: #115284
+ * Update configs after rebase to 2.6.26-rc1 Ignore: yes
+ * Update configs after rebase Ignore: yes
+ * Disable V4L until the build issues get ironed out. Ignore: yes
+ * Update configs after rebase. Ignore: yes
+ * Another device enable pass Ignore: yes
+ * Update configs after merge. Ignore: yes
+ * SAUCE: fn key doesn't work in hardy with macbook pro fourth generation
+ (4,1)
+ - LP: #207127
+ * Enabled CONFIG_CIFS_DFS_UPCALL=y and CONFIG_CIFS_UPCALL=y
+ - LP: #236830
+
+ [Upstream Kernel Changes]
+
+ * Revert "[WATCHDOG] hpwdt: Add CFLAGS to get driver working"
+ * mac80211: detect driver tx bugs
+ * hwmon: (lm85) Fix function RANGE_TO_REG()
+ * hwmon: (adt7473) Initialize max_duty_at_overheat before use
+ * hwmon: Update the sysfs interface documentation
+ * hwmon: (abituguru3) Identify Abit AW8D board as such
+ * hwmon: (w83791d) new maintainer
+ * hwmon: (abituguru3) update driver detection
+ * hwmon: (lm75) sensor reading bugfix
+ * ipv6: Remove options header when setsockopt's optlen is 0
+ * ipv6: Drop packets for loopback address from outside of the box.
+ * sched: rt: dont stop the period timer when there are tasks wanting to
+ run
+ * sched: fix wait_for_completion_timeout() spurious failure under heavy
+ load
+ * x86: fix NULL pointer deref in __switch_to
+ * xen: Use wmb instead of rmb in xen_evtchn_do_upcall().
+ * xen: mask unwanted pte bits in __supported_pte_mask
+ * xen: don't drop NX bit
+ * sched: refactor wait_for_completion_timeout()
+ * Ext4: Fix online resize block group descriptor corruption
+ * [IA64] SN2: security hole in sn2_ptc_proc_write
+ * alpha: fix module load failures on smp (bug #10926)
+ * alpha: link failure fix
+ * alpha: fix compile failures with gcc-4.3 (bug #10438)
+ * alpha: resurrect Cypress IDE quirk
+ * pppoe: warning fix
+ * sctp: Make sure N * sizeof(union sctp_addr) does not overflow.
+ * netns: Don't receive new packets in a dead network namespace.
+ * Add return value to reserve_bootmem_node()
+ * Slab: Fix memory leak in fallback_alloc()
+ * Fix performance regression on lmbench select benchmark
+ * ALSA: aw2 - Fix Oops at initialization
+ * ALSA: sb - Fix wrong assertions
+ * futexes: fix fault handling in futex_lock_pi
+ * IB/mthca: Clear ICM pages before handing to FW
+ * tty_driver: Update required method documentation
+ * removed unused var real_tty on n_tty_ioctl()
+ * Fix ZERO_PAGE breakage with vmware
+ * mm: fix race in COW logic
+ * NFS: Reduce the NFS mount code stack usage.
+ * NFS: Fix filehandle size comparisons in the mount code
+ * NFS: nfs_updatepage(): don't mark page as dirty if an error occurred
+ * alpha: fix compile error in arch/alpha/mm/init.c
+ * KVM: Fix race between timer migration and vcpu migration
+ * KVM: close timer injection race window in __vcpu_run
+ * KVM: MMU: Fix rmap_write_protect() hugepage iteration bug
+ * KVM: MMU: large page update_pte issue with non-PAE 32-bit guests
+ (resend)
+ * KVM: MMU: Fix oops on guest userspace access to guest pagetable
+ * KVM: ioapic: fix lost interrupt when changing a device's irq
+ * KVM: VMX: Fix host msr corruption with preemption enabled
+ * [GFS2] BUG: unable to handle kernel paging request at ffff81002690e000
+ * xen: remove support for non-PAE 32-bit
+ * kgdb: documentation update - remove kgdboe
+ * kgdb: sparse fix
+ * [IA64] Fix boot failure on ia64/sn2
+ * [IA64] Handle count==0 in sn2_ptc_proc_write()
+ * [IA64] Eliminate NULL test after alloc_bootmem in iosapic_alloc_rte()
+ * [GFS2] fix gfs2 block allocation (cleaned up)
+ * x86: Add structs and functions for paravirt clocksource
+ * x86: Make xen use the paravirt clocksource structs and functions
+ * KVM: Make kvm host use the paravirt clocksource structs
+ * x86: KVM guest: Use the paravirt clocksource structs and functions
+ * KVM: Remove now unused structs from kvm_para.h
+ * enable bus mastering on i915 at resume time
+ * Linux 2.6.26-rc8
+ * # Ubuntu external driver commit.
+ * # Ubuntu commit template.
+
+ -- Ben Collins <ben.collins@canonical.com> Sat, 21 Jun 2008 09:05:15 -0400
+
+linux (2.6.26-2.6) intrepid; urgency=low
+
+ [Ben Collins]
+
+ * Revert "SAUCE: Export symbols for aufs (in lum) (not needed)
+ * config: Enable DVB devices
+ * ubuntu/aufs: Make aufs a bool config, since it needs to be built-in
+ * config: Build aufs into the kernels
+ * build: Fix arguments passed to link-headers script
+ * config: Disable early printk
+ * d-i: Move isofs to storage-core and kill st (scsi tape) from list
+ * config: Enable non-promiscuous access to /dev/mem
+ * x86: Add option to disable decompression info messages
+ * config: Enable no-bz-chatter config options
+ * build: Re-add linux-source package
+ * d-i: Re-add socket-modules. Accidentally removed
+ - LP: #241295
+
+ [Colin Ian King]
+
+ * Add dm-loop
+
+ [Tim Gardner]
+
+ * Revert "SAUCE: USB bluetooth device 0x0e5e:0x6622 floods errors to
+ syslog (merged upstream)
+
+ -- Ben Collins <ben.collins@canonical.com> Mon, 16 Jun 2008 10:56:01 -0400
+
+linux (2.6.26-1.5) intrepid; urgency=low
+
+ * d-i: Make virtio-ring optional (it's built-in on i386)
+ * Rebased on 2.6.26-rc6
+
+ [Ubuntu-2.6.26-1.4 Changes below]
+
+ * build: linux-doc rules got broken when disabling html side. Fixed now.
+
+ [Ubuntu-2.6.26-1.3 Changes below]
+
+ * build: Remove install-source, obsolete and caused build failure
+
+ [Ubuntu-2.6.26-1.2 Changes below]
+
+ * Remove efi-modules from d-i module list (efivars is built-in). Caused a
+ build failure.
+ * Patch to arch/x86/xen/time.c to remove __divdi3 usage (build failure on
+ i386).
+
+ [Ubuntu-2.6.26-1.1 Changes below]
+
+ [Amit Kucheria]
+
+ * SAUCE: make fc transport removal of target configurable
+ * SAUCE: Add AGP support for Radeon Mobility 9000 chipset
+ * SAUCE: pm: Config option to disable handling of console during
+ suspend/resume
+
+ [Ben Collins]
+
+ * SAUCE: input/mouse/alps: Do not call psmouse_reset() for alps
+ * SAUCE: irda: Default to dongle type 9 on IBM hardware
+ * SAUCE: tulip: Let dmfe handle davicom on non-sparc
+ * SAUCE: tulip: Define ULI PCI ID's
+ * SAUCE: version: Implement version_signature proc file.
+ * build: Remove remnants of unused binary-custom infrastructure
+ * mmc_block: Fix bad allocation on 64-bit (zero len array)
+ * ubuntu: New modules, acer-acpi
+ * build: Remove -virtual, and rebuild configs
+ * ubuntu: Add drbd module
+ * ubuntu: Add iscsitarget module
+ * ubuntu: Add squashfs driver
+ * build/configs: The Great Config Consistency Check of 2008
+ * ubuntu: Add aufs module
+ * ubuntu: Added atl2 driver
+ * ubuntu: Add dm-radi4-5 driver
+ * build: Add CONFIG_DEBUG_SECTION_MISMATCH=y to get old style warnings
+ from build
+ * squashfs: Fixes for VFS changes
+ * ubuntu/dm-raid4-5: Fixups for moved/renamed headers/functions in core
+ md
+ * ubuntu: Add ndiswrapper driver
+ * d-i: Update module listings
+
+ [Chuck Short]
+
+ * SAUCE: ata: blacklist FUJITSU MHW2160BH PL
+ * SAUCE: [USB]: add ASUS LCM to the blacklist
+
+ [Colin Ian King]
+
+ * SAUCE: Enable speedstep for sonoma processors.
+ * SAUCE: airprime.c supports more devices
+
+ [Kyle McMartin]
+
+ * SAUCE: fix orinoco_cs oops
+
+ [Mario Limonciello]
+
+ * SAUCE: Enable Reset and SCO workaround on Dell 410 BT adapter
+
+ [Matthew Garrett]
+
+ * SAUCE: hostap: send events on data interface as well as master
+ interface
+
+ [Phillip Lougher]
+
+ * SAUCE: r8169: disable TSO by default for RTL8111/8168B chipsets.
+
+ [Stefan Bader]
+
+ * SAUCE: Export dm_disk function of device-mapper
+ * SAUCE: Restore VT fonts on switch
+ * SAUCE: Always use SCO protocol (disable eSCO support) Bug: #39414
+ * SAUCE: mmc: Increase power_up deleay to fix TI readers
+ * SAUCE: Add blacklist support to fix Belkin bluetooth dongle.
+ * SAUCE: Lower warning level of pci resource allocation messages.
+ * SAUCE: Lower message level for PCI memory and I/O allocation.
+ - LP: #159241
+ * Modify log generation to catch bug numbers when adding with git-am.
+
+ [Tim Gardner]
+
+ * SAUCE: hdaps module does not load on Thinkpad T61P
+ * SAUCE: Add extra headers to linux-libc-dev
+ * SAUCE: Export symbols for aufs (in lum).
+ * SAUCE: USB bluetooth device 0x0e5e:0x6622 floods errors to syslog
+ * SAUCE: Blacklist Bluetooth Dell Wireless 370 for SCO MTU
+ * SAUCE: Catch nonsense keycodes and silently ignore
+ * SAUCE: frame buffer regression - screen blank except for blinking
+ cursor after fbcon vtswitch
+ * SAUCE: Added support for HDAPS on various ThinkPads from Lenovo and IBM
+ * SAUCE: Guest OS does not recognize a lun with non zero target id on
+ Vmware ESX Server
+ * SAUCE: Modualrize vesafb
+ * SAUCE: DVB-USB UMT-010 driver oops on install
+ * SAUCE: fn key doesn't work in hardy with macbook pro fourth generation
+ (4,1)
+ - LP: #207127
+
+ -- Ben Collins <ben.collins@canonical.com> Wed, 11 Jun 2008 05:28:35 -0400
diff --git a/debian.master/config/amd64/config.common.amd64 b/debian.master/config/amd64/config.common.amd64
new file mode 100644
index 00000000000..d730a5390d5
--- /dev/null
+++ b/debian.master/config/amd64/config.common.amd64
@@ -0,0 +1,288 @@
+#
+# Config options for config.common.amd64 automatically generated by splitconfig.pl
+#
+CONFIG_64BIT=y
+CONFIG_ACPI_BLACKLIST_YEAR=0
+CONFIG_AGP=y
+CONFIG_AGP_AMD64=y
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig"
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11"
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+# CONFIG_ASYNC_TX_DMA is not set
+CONFIG_ATALK=m
+CONFIG_ATM=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+# CONFIG_ATM_DUMMY is not set
+CONFIG_AUDIT_ARCH=y
+CONFIG_B43=m
+CONFIG_B43LEGACY=m
+CONFIG_B44=m
+CONFIG_BT=m
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_CDROM_PKTCDVD=y
+CONFIG_CEPH_FS=m
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+CONFIG_COMEDI=m
+CONFIG_CRYPTO_HMAC=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+CONFIG_DISPLAY_SUPPORT=m
+CONFIG_DM_RAID45=m
+CONFIG_DRM_RADEON=m
+CONFIG_DT3155=m
+# CONFIG_DVB_FE_CUSTOMISE is not set
+# CONFIG_DVB_USB_EC168 is not set
+# CONFIG_EZX_PCAP is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_DDC=m
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SVGALIB=m
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_UVESA=m
+CONFIG_FIRMWARE_EDID=y
+# CONFIG_FLATMEM_MANUAL is not set
+# CONFIG_FONTS is not set
+CONFIG_FSAM7400=m
+CONFIG_FTL=m
+CONFIG_FUNCTION_TRACER=y
+CONFIG_GAMEPORT=m
+CONFIG_GENERIC_CPU=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GPIO_JANZ_TTL=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_TWL4030=m
+# CONFIG_HAVE_AOUT is not set
+CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_HWMON=y
+CONFIG_HZ=100
+CONFIG_HZ_100=y
+# CONFIG_HZ_250 is not set
+CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_HELPER=y
+CONFIG_IPMI_HANDLER=m
+CONFIG_IRDA=m
+CONFIG_ISDN=y
+CONFIG_IWMC3200TOP_DEBUGFS=y
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_XTKBD=m
+CONFIG_KSM=y
+# CONFIG_KTIME_SCALAR is not set
+CONFIG_LAPB=m
+CONFIG_LAPBETHER=m
+CONFIG_LIBERTAS_MESH=y
+CONFIG_LIRC_DEV=m
+CONFIG_LLC=y
+CONFIG_LLC2=m
+CONFIG_LOG_BUF_SHIFT=18
+# CONFIG_M586 is not set
+# CONFIG_M586TSC is not set
+CONFIG_MEMSTICK=m
+CONFIG_MFD_JANZ_CMODIO=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MII=m
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_SDHCI=m
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MTD=m
+CONFIG_MTD_ABSENT=m
+CONFIG_MTD_ALAUDA=m
+CONFIG_MTD_AR7_PARTS=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_CFI=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_CONCAT=m
+CONFIG_MTD_DATAFLASH=m
+CONFIG_MTD_DOC2000=m
+CONFIG_MTD_DOC2001=m
+CONFIG_MTD_DOC2001PLUS=m
+CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_GPIO_ADDR=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_NANDSIM=m
+CONFIG_MTD_NAND_PLATFORM=m
+CONFIG_MTD_ONENAND=m
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_PHYSMAP=m
+CONFIG_MTD_PLATRAM=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_SM_COMMON=m
+CONFIG_MTD_SST25L=m
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_NDISWRAPPER=m
+CONFIG_NEED_DMA_MAP_STATE=y
+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+CONFIG_NET_CLS_CGROUP=y
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_DCCPPROBE=m
+CONFIG_NET_POCKET=y
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_TCPPROBE=m
+CONFIG_NFTL=m
+CONFIG_NO_HZ=y
+CONFIG_NR_CPUS=64
+CONFIG_OUTPUT_FORMAT="elf64-x86-64"
+CONFIG_PARPORT=m
+CONFIG_PCCARD=m
+CONFIG_PHYSICAL_ALIGN=0x1000000
+CONFIG_PHYSICAL_START=0x200000
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_PM_DEBUG=y
+CONFIG_POCH=m
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_PRISM2_USB=m
+CONFIG_R3964=m
+CONFIG_RAMZSWAP=m
+CONFIG_RCU_FANOUT=64
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_RFD_FTL=m
+CONFIG_RFKILL=y
+CONFIG_RPCSEC_GSS_SPKM3=m
+CONFIG_RT2800USB_UNKNOWN=y
+# CONFIG_RT2X00_LIB_DEBUGFS is not set
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_TWL4030=m
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IPR=m
+CONFIG_SCSI_ISCSITARGET=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_PROC_FS=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_NR_UARTS=48
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_UARTLITE=m
+# CONFIG_SLAB is not set
+CONFIG_SLIP=m
+CONFIG_SLUB=y
+CONFIG_SND=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_EMU10K1_SEQ=m
+# CONFIG_SND_MIXER_OSS is not set
+CONFIG_SND_MPU401=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+CONFIG_SND_PCM=m
+# CONFIG_SND_PCM_OSS is not set
+CONFIG_SND_RAWMIDI_SEQ=m
+# CONFIG_SND_SBAWE_SEQ is not set
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC_TWL4030=m
+CONFIG_SND_TIMER=m
+CONFIG_SOUND=m
+# CONFIG_SOUND_OSS_CORE is not set
+CONFIG_SPARSEMEM_MANUAL=y
+CONFIG_SPI=y
+CONFIG_SPI_DESIGNWARE=y
+CONFIG_SPI_SPIDEV=m
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_STACK_TRACER=y
+# CONFIG_STANDALONE is not set
+CONFIG_SUNGEM=m
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_TCG_TPM=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_THERMAL=y
+CONFIG_TIPC=m
+CONFIG_TTPCI_EEPROM=m
+CONFIG_TUN=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_ET61X251=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_DUMMY_HCD=y
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
+# CONFIG_USB_GSPCA_SN9C20X_EVDEV is not set
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_MON=y
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_QUICKCAM_MESSENGER=m
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_STV680=m
+CONFIG_USB_UHCI_HCD=y
+CONFIG_USB_ZC0301=m
+CONFIG_VGASTATE=m
+CONFIG_VGA_CONSOLE=y
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_CPIA=m
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_VIDEO_OVCAMCHIP=m
+CONFIG_VIDEO_SAA6588=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_VPX3220=m
+CONFIG_VME_CA91CX42=m
+CONFIG_VME_TSI148=m
+CONFIG_VT6656=m
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_WAN=y
+CONFIG_WAN_ROUTER=m
+CONFIG_WATCHDOG=y
+CONFIG_WIMAX_I2400M_SDIO=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WM8350_WATCHDOG=m
+CONFIG_X25=m
+CONFIG_X25_ASY=m
+# CONFIG_X86_32 is not set
+CONFIG_X86_64=y
+CONFIG_X86_INTERNODE_CACHE_SHIFT=7
+CONFIG_X86_MINIMUM_CPU_FAMILY=64
+CONFIG_X86_SPEEDSTEP_LIB=m
+CONFIG_ZONE_DMA32=y
+CONFIG_ZONE_DMA_FLAG=1
diff --git a/debian.master/config/amd64/config.flavour.generic b/debian.master/config/amd64/config.flavour.generic
new file mode 100644
index 00000000000..1dae2dbd5c6
--- /dev/null
+++ b/debian.master/config/amd64/config.flavour.generic
@@ -0,0 +1,16 @@
+#
+# Config options for config.flavour.generic automatically generated by splitconfig.pl
+#
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_MEMORY_HOTPLUG is not set
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_BLK=m
+CONFIG_VIRTIO_NET=m
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_RING=m
diff --git a/debian.master/config/amd64/config.flavour.server b/debian.master/config/amd64/config.flavour.server
new file mode 100644
index 00000000000..d9bd9beeb51
--- /dev/null
+++ b/debian.master/config/amd64/config.flavour.server
@@ -0,0 +1,16 @@
+#
+# Config options for config.flavour.server automatically generated by splitconfig.pl
+#
+# CONFIG_DEFAULT_CFQ is not set
+CONFIG_DEFAULT_DEADLINE=y
+CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_SYM53C8XX_2=y
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_VIRTIO_NET=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_RING=y
diff --git a/debian.master/config/amd64/config.flavour.virtual b/debian.master/config/amd64/config.flavour.virtual
new file mode 100644
index 00000000000..442a3b1acc5
--- /dev/null
+++ b/debian.master/config/amd64/config.flavour.virtual
@@ -0,0 +1,16 @@
+#
+# Config options for config.flavour.virtual automatically generated by splitconfig.pl
+#
+# CONFIG_DEFAULT_CFQ is not set
+CONFIG_DEFAULT_DEADLINE=y
+CONFIG_DEFAULT_IOSCHED="deadline"
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_SYM53C8XX_2=y
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_VIRTIO_NET=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_RING=y
diff --git a/debian.master/config/armel/config.common.armel b/debian.master/config/armel/config.common.armel
new file mode 100644
index 00000000000..ffb27bdd86a
--- /dev/null
+++ b/debian.master/config/armel/config.common.armel
@@ -0,0 +1,128 @@
+#
+# Config options for config.common.armel automatically generated by splitconfig.pl
+#
+# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
+# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
+# CONFIG_ARCH_SUPPORTS_MSI is not set
+CONFIG_ASYNC_TX_DMA=y
+CONFIG_ATM_BR2684_IPFILTER=y
+CONFIG_ATM_DUMMY=m
+# CONFIG_COMEDI is not set
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
+# CONFIG_DRM_RADEON is not set
+# CONFIG_DT3155 is not set
+CONFIG_EZX_PCAP=y
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+# CONFIG_FB_SAVAGE is not set
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_FONTS=y
+# CONFIG_FSAM7400 is not set
+# CONFIG_FUNCTION_TRACER is not set
+# CONFIG_GPIO_JANZ_TTL is not set
+CONFIG_HAVE_AOUT=y
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+# CONFIG_HUGETLB_PAGE is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_LAPBETHER is not set
+# CONFIG_MFD_JANZ_CMODIO is not set
+CONFIG_MII=y
+CONFIG_MMC_BLOCK=y
+CONFIG_MTD=y
+# CONFIG_MTD_ALAUDA is not set
+CONFIG_MTD_BLKDEVS=y
+CONFIG_MTD_BLOCK=y
+CONFIG_MTD_CHAR=y
+# CONFIG_MTD_DATAFLASH is not set
+# CONFIG_MTD_GPIO_ADDR is not set
+CONFIG_MTD_NAND_IDS=y
+# CONFIG_MTD_NAND_NANDSIM is not set
+# CONFIG_MTD_NAND_PLATFORM is not set
+# CONFIG_MTD_SM_COMMON is not set
+# CONFIG_MTD_SST25L is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+# CONFIG_NDISWRAPPER is not set
+CONFIG_NEED_DMA_MAP_STATE=y
+# CONFIG_NET_POCKET is not set
+# CONFIG_PCCARD is not set
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+# CONFIG_PM_DEBUG is not set
+# CONFIG_POCH is not set
+# CONFIG_R3964 is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_REGULATOR_DEBUG is not set
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+# CONFIG_SCSI_ACARD is not set
+# CONFIG_SCSI_ADVANSYS is not set
+# CONFIG_SCSI_IPR is not set
+# CONFIG_SCSI_NSP32 is not set
+# CONFIG_SCSI_OSD_INITIATOR is not set
+CONFIG_SCSI_SYM53C8XX_2=y
+CONFIG_SERIAL_8250_PCI=m
+# CONFIG_SERIAL_UARTLITE is not set
+# CONFIG_SND_ALI5451 is not set
+# CONFIG_SND_EMU10K1_SEQ is not set
+# CONFIG_SND_MTPAV is not set
+# CONFIG_SND_OPL3_LIB_SEQ is not set
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_RAWMIDI_SEQ is not set
+# CONFIG_SND_SBAWE_SEQ is not set
+# CONFIG_SND_SEQUENCER is not set
+# CONFIG_SND_SERIAL_U16550 is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_SPI_DESIGNWARE=m
+# CONFIG_SPI_SPIDEV is not set
+# CONFIG_SSB_B43_PCI_BRIDGE is not set
+# CONFIG_STACK_TRACER is not set
+CONFIG_STANDALONE=y
+# CONFIG_SUNGEM is not set
+# CONFIG_SYS_HYPERVISOR is not set
+# CONFIG_TCG_TPM is not set
+# CONFIG_USB_ET61X251 is not set
+CONFIG_USB_GADGET_DEBUG_FS=y
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+CONFIG_USB_GADGET_MUSB_HDRC=y
+CONFIG_USB_GSPCA_SN9C20X_EVDEV=y
+CONFIG_USB_G_MULTI=m
+# CONFIG_USB_ISP1362_HCD is not set
+CONFIG_USB_MON=m
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_QUICKCAM_MESSENGER is not set
+# CONFIG_USB_SN9C102 is not set
+# CONFIG_USB_STV680 is not set
+CONFIG_USB_UHCI_HCD=m
+# CONFIG_USB_ZC0301 is not set
+# CONFIG_VGA_CONSOLE is not set
+# CONFIG_VIDEO_ADV7170 is not set
+# CONFIG_VIDEO_ADV7175 is not set
+# CONFIG_VIDEO_BT819 is not set
+# CONFIG_VIDEO_BT856 is not set
+# CONFIG_VIDEO_BT866 is not set
+# CONFIG_VIDEO_CPIA is not set
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+# CONFIG_VIDEO_KS0127 is not set
+# CONFIG_VIDEO_MT9V011 is not set
+# CONFIG_VIDEO_OVCAMCHIP is not set
+# CONFIG_VIDEO_SAA6588 is not set
+# CONFIG_VIDEO_SAA7110 is not set
+# CONFIG_VIDEO_SAA7185 is not set
+# CONFIG_VIDEO_TDA7432 is not set
+# CONFIG_VIDEO_TDA9840 is not set
+# CONFIG_VIDEO_TEA6415C is not set
+# CONFIG_VIDEO_TEA6420 is not set
+# CONFIG_VIDEO_TVAUDIO is not set
+# CONFIG_VIDEO_TVP5150 is not set
+# CONFIG_VIDEO_VPX3220 is not set
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_BLK=m
+CONFIG_VIRTIO_NET=m
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_RING=m
+# CONFIG_VME_CA91CX42 is not set
+# CONFIG_VME_TSI148 is not set
+# CONFIG_VT6656 is not set
+# CONFIG_WM8350_WATCHDOG is not set
+# CONFIG_X25_ASY is not set
+CONFIG_ZONE_DMA_FLAG=0
diff --git a/debian.master/config/armel/config.flavour.omap b/debian.master/config/armel/config.flavour.omap
new file mode 100644
index 00000000000..fd9bcf50982
--- /dev/null
+++ b/debian.master/config/armel/config.flavour.omap
@@ -0,0 +1,170 @@
+#
+# Config options for config.flavour.omap automatically generated by splitconfig.pl
+#
+# CONFIG_APM_EMULATION is not set
+CONFIG_ARCH_OMAP=y
+# CONFIG_ARCH_VERSATILE is not set
+CONFIG_ARM_ERRATA_430973=y
+CONFIG_ARM_L1_CACHE_SHIFT=6
+CONFIG_ATALK=m
+CONFIG_ATM=m
+CONFIG_B43=m
+CONFIG_B43LEGACY=m
+CONFIG_B44=m
+CONFIG_BT=m
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_CDROM_PKTCDVD=m
+# CONFIG_CEPH_FS is not set
+# CONFIG_CGROUP_MEM_RES_CTLR_SWAP is not set
+CONFIG_CRYPTO_HMAC=m
+CONFIG_DISPLAY_SUPPORT=y
+# CONFIG_DM_RAID45 is not set
+CONFIG_DVB_FE_CUSTOMISE=y
+CONFIG_DVB_USB_EC168=m
+CONFIG_FB_ARMCLCD=m
+# CONFIG_FB_BACKLIGHT is not set
+# CONFIG_FB_DDC is not set
+CONFIG_FB_S1D13XXX=m
+# CONFIG_FB_SVGALIB is not set
+# CONFIG_FB_TILEBLITTING is not set
+# CONFIG_FB_UVESA is not set
+# CONFIG_FIRMWARE_EDID is not set
+CONFIG_FTL=m
+CONFIG_GAMEPORT=m
+# CONFIG_GPIO_MAX732X is not set
+CONFIG_GPIO_PCA953X=y
+# CONFIG_GPIO_PCF857X is not set
+CONFIG_GPIO_TWL4030=y
+# CONFIG_HIGHMEM is not set
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_HTC_EGPIO=y
+CONFIG_HWMON=y
+CONFIG_HZ=128
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_IRDA=m
+CONFIG_ISDN=y
+# CONFIG_IWMC3200TOP_DEBUGFS is not set
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_XTKBD=m
+# CONFIG_KSM is not set
+CONFIG_LAPB=m
+# CONFIG_LIBERTAS_MESH is not set
+# CONFIG_LIRC_DEV is not set
+CONFIG_LLC=m
+CONFIG_LLC2=m
+CONFIG_LOG_BUF_SHIFT=17
+# CONFIG_MEMSTICK is not set
+CONFIG_MFD_ASIC3=y
+CONFIG_MFD_T7L66XB=y
+CONFIG_MFD_TC6387XB=y
+CONFIG_MFD_TC6393XB=y
+CONFIG_MFD_TMIO=y
+CONFIG_MMC_ARMMMCI=m
+CONFIG_MMC_SDHCI=y
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MTD_ABSENT=m
+# CONFIG_MTD_AR7_PARTS is not set
+# CONFIG_MTD_ARM_INTEGRATOR is not set
+CONFIG_MTD_CFI=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_CONCAT=m
+CONFIG_MTD_DOC2000=m
+CONFIG_MTD_DOC2001=m
+CONFIG_MTD_DOC2001PLUS=m
+CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTD_NAND=y
+CONFIG_MTD_NAND_ECC=y
+CONFIG_MTD_ONENAND=m
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_PHYSMAP=m
+CONFIG_MTD_PLATRAM=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_SLRAM=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+# CONFIG_NET_CLS_CGROUP is not set
+# CONFIG_NET_CLS_FLOW is not set
+# CONFIG_NET_CLS_U32 is not set
+# CONFIG_NET_DCCPPROBE is not set
+# CONFIG_NET_SCH_INGRESS is not set
+# CONFIG_NET_TCPPROBE is not set
+CONFIG_NFTL=m
+CONFIG_NO_HZ=y
+CONFIG_OC_ETM=y
+CONFIG_PARPORT=m
+# CONFIG_PCI_SYSCALL is not set
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRINT_QUOTA_WARNING=y
+# CONFIG_PRISM2_USB is not set
+# CONFIG_RAMZSWAP is not set
+CONFIG_RFD_FTL=m
+CONFIG_RFKILL=m
+CONFIG_RPCSEC_GSS_SPKM3=m
+# CONFIG_RT2800USB_UNKNOWN is not set
+CONFIG_RT2X00_LIB_DEBUGFS=y
+CONFIG_RTC_DRV_CMOS=m
+CONFIG_RTC_DRV_PL030=m
+CONFIG_RTC_DRV_PL031=m
+CONFIG_RTC_DRV_TWL4030=y
+# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
+# CONFIG_SCSI_ISCSITARGET is not set
+# CONFIG_SCSI_PROC_FS is not set
+# CONFIG_SCSI_SPI_ATTRS is not set
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_NR_UARTS=32
+CONFIG_SERIAL_AMBA_PL011=m
+# CONFIG_SERIO_AMBAKMI is not set
+# CONFIG_SLAB is not set
+CONFIG_SLIP=y
+CONFIG_SLUB=y
+CONFIG_SMC91X=m
+CONFIG_SND=y
+CONFIG_SND_MIXER_OSS=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_PCM=y
+CONFIG_SND_PCM_OSS=m
+CONFIG_SND_SOC=y
+CONFIG_SND_SOC_I2C_AND_SPI=y
+CONFIG_SND_SOC_TWL4030=y
+CONFIG_SND_TIMER=y
+CONFIG_SOUND=y
+CONFIG_SOUND_OSS_CORE=y
+CONFIG_SPI=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_THERMAL=m
+CONFIG_TIPC=m
+# CONFIG_TTPCI_EEPROM is not set
+CONFIG_TUN=m
+CONFIG_TWL4030_POWER=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_USB_EHCI_HCD=y
+# CONFIG_USB_EHCI_TT_NEWSCHED is not set
+CONFIG_USB_GADGET=y
+CONFIG_USB_MUSB_HDRC=m
+CONFIG_USB_OTG=y
+# CONFIG_USB_SERIAL_QUATECH2 is not set
+# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
+# CONFIG_VGASTATE is not set
+CONFIG_VIDEO_DEV=m
+# CONFIG_VIDEO_OUTPUT_CONTROL is not set
+# CONFIG_VT_HW_CONSOLE_BINDING is not set
+CONFIG_WAN=y
+CONFIG_WAN_ROUTER=m
+CONFIG_WATCHDOG=y
+# CONFIG_WIMAX_I2400M_SDIO is not set
+# CONFIG_WIMAX_I2400M_USB is not set
+CONFIG_X25=m
diff --git a/debian.master/config/armel/config.flavour.versatile b/debian.master/config/armel/config.flavour.versatile
new file mode 100644
index 00000000000..269cc8f97cd
--- /dev/null
+++ b/debian.master/config/armel/config.flavour.versatile
@@ -0,0 +1,170 @@
+#
+# Config options for config.flavour.versatile automatically generated by splitconfig.pl
+#
+CONFIG_APM_EMULATION=m
+# CONFIG_ARCH_OMAP is not set
+CONFIG_ARCH_VERSATILE=y
+# CONFIG_ARM_ERRATA_430973 is not set
+CONFIG_ARM_L1_CACHE_SHIFT=5
+# CONFIG_ATALK is not set
+# CONFIG_ATM is not set
+# CONFIG_B43 is not set
+# CONFIG_B43LEGACY is not set
+# CONFIG_B44 is not set
+# CONFIG_BT is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+# CONFIG_CDROM_PKTCDVD is not set
+CONFIG_CEPH_FS=m
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_DISPLAY_SUPPORT=m
+CONFIG_DM_RAID45=m
+# CONFIG_DVB_FE_CUSTOMISE is not set
+# CONFIG_DVB_USB_EC168 is not set
+CONFIG_FB_ARMCLCD=y
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_DDC=m
+# CONFIG_FB_S1D13XXX is not set
+CONFIG_FB_SVGALIB=m
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_UVESA=m
+CONFIG_FIRMWARE_EDID=y
+# CONFIG_FTL is not set
+# CONFIG_GAMEPORT is not set
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_TWL4030=m
+CONFIG_HIGHMEM=y
+# CONFIG_HIGH_RES_TIMERS is not set
+# CONFIG_HTC_EGPIO is not set
+# CONFIG_HWMON is not set
+CONFIG_HZ=100
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_TOUCHSCREEN is not set
+# CONFIG_IRDA is not set
+# CONFIG_ISDN is not set
+CONFIG_IWMC3200TOP_DEBUGFS=y
+# CONFIG_KEYBOARD_LKKBD is not set
+# CONFIG_KEYBOARD_NEWTON is not set
+# CONFIG_KEYBOARD_SUNKBD is not set
+# CONFIG_KEYBOARD_XTKBD is not set
+CONFIG_KSM=y
+# CONFIG_LAPB is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_LIRC_DEV=m
+CONFIG_LLC=y
+# CONFIG_LLC2 is not set
+CONFIG_LOG_BUF_SHIFT=14
+CONFIG_MEMSTICK=m
+# CONFIG_MFD_ASIC3 is not set
+# CONFIG_MFD_T7L66XB is not set
+# CONFIG_MFD_TC6387XB is not set
+# CONFIG_MFD_TC6393XB is not set
+# CONFIG_MFD_TMIO is not set
+CONFIG_MMC_ARMMMCI=y
+CONFIG_MMC_SDHCI=m
+# CONFIG_MOUSE_PS2 is not set
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MTD_ABSENT is not set
+CONFIG_MTD_AR7_PARTS=m
+CONFIG_MTD_ARM_INTEGRATOR=y
+CONFIG_MTD_CFI=y
+CONFIG_MTD_CFI_ADV_OPTIONS=y
+# CONFIG_MTD_CFI_AMDSTD is not set
+CONFIG_MTD_CFI_INTELEXT=y
+# CONFIG_MTD_CFI_STAA is not set
+CONFIG_MTD_CFI_UTIL=y
+# CONFIG_MTD_COMPLEX_MAPPINGS is not set
+# CONFIG_MTD_CONCAT is not set
+# CONFIG_MTD_DOC2000 is not set
+# CONFIG_MTD_DOC2001 is not set
+# CONFIG_MTD_DOC2001PLUS is not set
+CONFIG_MTD_GEN_PROBE=y
+# CONFIG_MTD_JEDECPROBE is not set
+# CONFIG_MTD_MTDRAM is not set
+# CONFIG_MTD_NAND is not set
+CONFIG_MTD_NAND_ECC=m
+# CONFIG_MTD_ONENAND is not set
+# CONFIG_MTD_PHRAM is not set
+# CONFIG_MTD_PHYSMAP is not set
+# CONFIG_MTD_PLATRAM is not set
+# CONFIG_MTD_RAM is not set
+# CONFIG_MTD_REDBOOT_PARTS is not set
+# CONFIG_MTD_ROM is not set
+# CONFIG_MTD_SLRAM is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+CONFIG_NET_CLS_CGROUP=y
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_DCCPPROBE=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_TCPPROBE=m
+# CONFIG_NFTL is not set
+# CONFIG_NO_HZ is not set
+# CONFIG_OC_ETM is not set
+# CONFIG_PARPORT is not set
+CONFIG_PCI_SYSCALL=y
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_PRISM2_USB=m
+CONFIG_RAMZSWAP=m
+# CONFIG_RFD_FTL is not set
+CONFIG_RFKILL=y
+# CONFIG_RPCSEC_GSS_SPKM3 is not set
+CONFIG_RT2800USB_UNKNOWN=y
+# CONFIG_RT2X00_LIB_DEBUGFS is not set
+CONFIG_RTC_DRV_CMOS=y
+# CONFIG_RTC_DRV_PL030 is not set
+CONFIG_RTC_DRV_PL031=y
+CONFIG_RTC_DRV_TWL4030=m
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_SCSI_ISCSITARGET=m
+CONFIG_SCSI_PROC_FS=y
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SERIAL_8250=m
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_AMBA_PL011=y
+CONFIG_SERIO_AMBAKMI=y
+CONFIG_SLAB=y
+CONFIG_SLIP=m
+# CONFIG_SLUB is not set
+CONFIG_SMC91X=y
+CONFIG_SND=m
+# CONFIG_SND_MIXER_OSS is not set
+# CONFIG_SND_MPU401 is not set
+CONFIG_SND_PCM=m
+# CONFIG_SND_PCM_OSS is not set
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC_TWL4030=m
+CONFIG_SND_TIMER=m
+CONFIG_SOUND=m
+# CONFIG_SOUND_OSS_CORE is not set
+# CONFIG_SPI is not set
+# CONFIG_TCP_CONG_ADVANCED is not set
+CONFIG_THERMAL=y
+# CONFIG_TIPC is not set
+CONFIG_TTPCI_EEPROM=m
+CONFIG_TUN=y
+# CONFIG_TWL4030_POWER is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+# CONFIG_USB_GADGET is not set
+# CONFIG_USB_MUSB_HDRC is not set
+# CONFIG_USB_OTG is not set
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_VGASTATE=m
+# CONFIG_VIDEO_DEV is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_VT_HW_CONSOLE_BINDING=y
+# CONFIG_WAN is not set
+# CONFIG_WAN_ROUTER is not set
+# CONFIG_WATCHDOG is not set
+CONFIG_WIMAX_I2400M_SDIO=m
+CONFIG_WIMAX_I2400M_USB=m
+# CONFIG_X25 is not set
diff --git a/debian.master/config/config.common.ports b/debian.master/config/config.common.ports
new file mode 100644
index 00000000000..c4fcb689d5a
--- /dev/null
+++ b/debian.master/config/config.common.ports
@@ -0,0 +1,4253 @@
+#
+# Common config options automatically generated by splitconfig.pl
+#
+CONFIG_3C359=m
+# CONFIG_40x is not set
+# CONFIG_44x is not set
+CONFIG_64BIT=y
+CONFIG_6PACK=m
+CONFIG_6xx=y
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+CONFIG_8139TOO_8129=y
+CONFIG_8139TOO_PIO=y
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_9P_FS=m
+# CONFIG_9P_FSCACHE is not set
+CONFIG_A11Y_BRAILLE_CONSOLE=y
+CONFIG_AB3100_CORE=y
+CONFIG_AB3100_OTP=m
+CONFIG_AB3550_CORE=y
+CONFIG_AB8500_CORE=y
+CONFIG_ABX500_CORE=y
+CONFIG_ABYSS=m
+CONFIG_AC97_BUS=m
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+# CONFIG_ACORN_PARTITION_ADFS is not set
+# CONFIG_ACORN_PARTITION_CUMANA is not set
+# CONFIG_ACORN_PARTITION_EESOX is not set
+CONFIG_ACORN_PARTITION_ICS=y
+# CONFIG_ACORN_PARTITION_POWERTEC is not set
+CONFIG_ACORN_PARTITION_RISCIX=y
+CONFIG_ACPI=y
+CONFIG_ACPI_BLACKLIST_YEAR=0
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_CONTAINER=m
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_HED=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_NUMA=y
+CONFIG_ACPI_PCI_SLOT=m
+CONFIG_ACPI_POWER_METER=m
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_PROCFS=y
+CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_ACPI_PROC_EVENT=y
+CONFIG_ACPI_SYSFS_POWER=y
+CONFIG_ACPI_THERMAL=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_I2C=m
+CONFIG_AD525X_DPOT_SPI=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_ADB=y
+CONFIG_ADB_CUDA=y
+CONFIG_ADB_MACIO=y
+CONFIG_ADB_PMU=y
+CONFIG_ADB_PMU_LED=y
+# CONFIG_ADB_PMU_LED_IDE is not set
+CONFIG_ADFS_FS=m
+# CONFIG_ADFS_FS_RW is not set
+CONFIG_ADIS16255=m
+CONFIG_ADM8211=m
+# CONFIG_ADVANCED_OPTIONS is not set
+CONFIG_AFFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FS=m
+# CONFIG_AFS_FSCACHE is not set
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_AGP=m
+# CONFIG_AGP_HP_ZX1 is not set
+# CONFIG_AGP_I460 is not set
+# CONFIG_AGP_SGI_TIOCA is not set
+CONFIG_AGP_UNINORTH=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_RESET_DELAY_MS=15000
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
+CONFIG_AIC7XXX_DEBUG_ENABLE=y
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_AIO=y
+CONFIG_AIRO=m
+CONFIG_AIRO_CS=m
+CONFIG_ALI_FIR=m
+CONFIG_ALTIVEC=y
+# CONFIG_AMIGAONE is not set
+CONFIG_ANON_INODES=y
+CONFIG_ANSLCD=m
+CONFIG_APM_EMULATION=m
+CONFIG_APM_POWER=m
+CONFIG_APPLE_AIRPORT=m
+CONFIG_APPLICOM=m
+CONFIG_AR9170_LEDS=y
+CONFIG_AR9170_USB=m
+CONFIG_ARCH_CPU_PROBE_RELEASE=y
+CONFIG_ARCH_DEFCONFIG="arch/sparc/configs/sparc64_defconfig"
+CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
+CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+CONFIG_ARCH_FLATMEM_ENABLE=y
+CONFIG_ARCH_HAS_ILOG2_U32=y
+CONFIG_ARCH_HAS_ILOG2_U64=y
+CONFIG_ARCH_HAS_WALK_MEMORY=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_ARCH_MEMORY_PROBE=y
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SPARSEMEM_DEFAULT=y
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_WANTS_FREEZER_CONTROL=y
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_CAP=m
+CONFIG_ARCNET_COM20020=m
+CONFIG_ARCNET_COM20020_CS=m
+CONFIG_ARCNET_COM20020_PCI=m
+CONFIG_ARCNET_COM90xx=m
+CONFIG_ARCNET_COM90xxIO=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_RIM_I=m
+# CONFIG_ARPD is not set
+CONFIG_ASK_IP_FIB_HASH=y
+# CONFIG_ASUS_OLED is not set
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_RAID6_TEST=m
+CONFIG_ASYNC_TX_DMA=y
+CONFIG_ASYNC_XOR=m
+CONFIG_AT76C50X_USB=m
+CONFIG_ATALK=m
+CONFIG_ATA_ACPI=y
+CONFIG_ATA_BMDMA=y
+CONFIG_ATA_GENERIC=m
+CONFIG_ATA_OVER_ETH=m
+CONFIG_ATA_PIIX=m
+CONFIG_ATA_SFF=y
+CONFIG_ATA_VERBOSE_ERROR=y
+# CONFIG_ATH5K is not set
+CONFIG_ATH9K=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_DEBUGFS=y
+CONFIG_ATH9K_HTC=m
+CONFIG_ATH9K_HTC_DEBUGFS=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATL1=m
+CONFIG_ATL1C=m
+CONFIG_ATL1E=m
+CONFIG_ATL2=m
+CONFIG_ATM=m
+CONFIG_ATMEL=m
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_BR2684=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_DRIVERS=y
+# CONFIG_ATM_DUMMY is not set
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_FORE200E_TX_RETRY=16
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_ATM_TCP=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_ARCH=y
+CONFIG_AUDIT_TREE=y
+CONFIG_AUFS_BDEV_LOOP=y
+# CONFIG_AUFS_BRANCH_MAX_1023 is not set
+CONFIG_AUFS_BRANCH_MAX_127=y
+# CONFIG_AUFS_BRANCH_MAX_32767 is not set
+# CONFIG_AUFS_BRANCH_MAX_511 is not set
+CONFIG_AUFS_BR_FUSE=y
+CONFIG_AUFS_BR_HFSPLUS=y
+CONFIG_AUFS_BR_RAMFS=y
+# CONFIG_AUFS_DEBUG is not set
+# CONFIG_AUFS_EXPORT is not set
+CONFIG_AUFS_FS=m
+# CONFIG_AUFS_HNOTIFY is not set
+CONFIG_AUFS_POLL=y
+# CONFIG_AUFS_RDU is not set
+# CONFIG_AUFS_SHWH is not set
+# CONFIG_AUFS_SP_IATTR is not set
+CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
+CONFIG_AUXDISPLAY=y
+CONFIG_AX25=m
+# CONFIG_AX25_DAMA_SLAVE is not set
+CONFIG_B43=m
+CONFIG_B43LEGACY=m
+CONFIG_B43LEGACY_DEBUG=y
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+CONFIG_B43LEGACY_HWRNG=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PIO=y
+# CONFIG_B43LEGACY_PIO_MODE is not set
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43_HWRNG=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCI_AUTOSELECT=y
+# CONFIG_B43_PCMCIA is not set
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PIO=y
+# CONFIG_B43_SDIO is not set
+CONFIG_B44=m
+CONFIG_B44_PCI=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_BACKLIGHT_88PM860X=m
+CONFIG_BACKLIGHT_ADP5520=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_DA903X=m
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_BACKLIGHT_MAX8925=m
+CONFIG_BACKLIGHT_PCF50633=m
+CONFIG_BACKLIGHT_WM831X=m
+# CONFIG_BACKTRACE_SELF_TEST is not set
+CONFIG_BASE_FULL=y
+CONFIG_BASE_SMALL=0
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_DA9030=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_PMU=m
+CONFIG_BAYCOM_EPP=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BBC_I2C=m
+# CONFIG_BDI_SWITCH is not set
+CONFIG_BE2ISCSI=m
+CONFIG_BE2NET=m
+# CONFIG_BEFS_DEBUG is not set
+CONFIG_BEFS_FS=m
+CONFIG_BFS_FS=m
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+CONFIG_BITREVERSE=y
+CONFIG_BITS=64
+# CONFIG_BLK_CGROUP is not set
+CONFIG_BLK_CPQ_CISS_DA=m
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+# CONFIG_BLK_DEV_AEC62XX is not set
+# CONFIG_BLK_DEV_ALI15X3 is not set
+# CONFIG_BLK_DEV_AMD74XX is not set
+CONFIG_BLK_DEV_BSG=y
+# CONFIG_BLK_DEV_CMD64X is not set
+CONFIG_BLK_DEV_COMPCACHE=m
+# CONFIG_BLK_DEV_COMPCACHE_DEBUG is not set
+# CONFIG_BLK_DEV_COMPCACHE_STATS is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+# CONFIG_BLK_DEV_CS5520 is not set
+# CONFIG_BLK_DEV_CS5530 is not set
+CONFIG_BLK_DEV_DAC960=m
+# CONFIG_BLK_DEV_DELKIN is not set
+CONFIG_BLK_DEV_DM=y
+# CONFIG_BLK_DEV_DRBD is not set
+# CONFIG_BLK_DEV_GENERIC is not set
+# CONFIG_BLK_DEV_HD is not set
+# CONFIG_BLK_DEV_HPT366 is not set
+CONFIG_BLK_DEV_IDECD=y
+CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
+# CONFIG_BLK_DEV_IDECS is not set
+CONFIG_BLK_DEV_IDEDMA=y
+CONFIG_BLK_DEV_IDEDMA_PCI=y
+CONFIG_BLK_DEV_IDEDMA_SFF=y
+CONFIG_BLK_DEV_IDEPCI=y
+# CONFIG_BLK_DEV_IDETAPE is not set
+CONFIG_BLK_DEV_IDE_PMAC=y
+CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
+# CONFIG_BLK_DEV_IDE_SATA is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_BLK_DEV_INTEGRITY=y
+CONFIG_BLK_DEV_IO_TRACE=y
+# CONFIG_BLK_DEV_IT8172 is not set
+# CONFIG_BLK_DEV_IT8213 is not set
+# CONFIG_BLK_DEV_IT821X is not set
+# CONFIG_BLK_DEV_JMICRON is not set
+CONFIG_BLK_DEV_MD=m
+CONFIG_BLK_DEV_NBD=m
+# CONFIG_BLK_DEV_NS87415 is not set
+# CONFIG_BLK_DEV_OPTI621 is not set
+CONFIG_BLK_DEV_OSD=m
+# CONFIG_BLK_DEV_PDC202XX_NEW is not set
+# CONFIG_BLK_DEV_PDC202XX_OLD is not set
+# CONFIG_BLK_DEV_PIIX is not set
+# CONFIG_BLK_DEV_PLATFORM is not set
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=65536
+# CONFIG_BLK_DEV_SC1200 is not set
+CONFIG_BLK_DEV_SD=m
+# CONFIG_BLK_DEV_SIIMAGE is not set
+# CONFIG_BLK_DEV_SL82C105 is not set
+# CONFIG_BLK_DEV_SLC90E66 is not set
+CONFIG_BLK_DEV_SR=m
+# CONFIG_BLK_DEV_SVWKS is not set
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_TC86C001 is not set
+# CONFIG_BLK_DEV_TRIFLEX is not set
+# CONFIG_BLK_DEV_TRM290 is not set
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_UMEM=m
+# CONFIG_BLK_DEV_VIA82CXXX is not set
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_BLOCK=y
+CONFIG_BLOCK_COMPAT=y
+CONFIG_BMAC=m
+CONFIG_BNX2=m
+CONFIG_BNX2X=m
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_BOOTX_TEXT is not set
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_BOOT_TRACER is not set
+CONFIG_BOUNCE=y
+CONFIG_BPQETHER=m
+CONFIG_BRANCH_PROFILE_NONE=y
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_NETFILTER=y
+CONFIG_BRIQ_PANEL=m
+CONFIG_BROADCOM_PHY=m
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_BT_ATH3K=m
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+# CONFIG_BT_CMTP is not set
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_HIDP=m
+CONFIG_BT_L2CAP=m
+# CONFIG_BT_L2CAP_EXT_FEATURES is not set
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_SCO=m
+CONFIG_BUG=y
+CONFIG_C2PORT=m
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CAIF_TTY=m
+CONFIG_CAN=m
+CONFIG_CAN_BCM=m
+# CONFIG_CAN_CALC_BITTIMING is not set
+# CONFIG_CAN_DEBUG_DEVICES is not set
+CONFIG_CAN_DEV=m
+CONFIG_CAN_EMS_PCI=m
+CONFIG_CAN_EMS_USB=m
+CONFIG_CAN_JANZ_ICAN3=m
+CONFIG_CAN_KVASER_PCI=m
+CONFIG_CAN_MCP251X=m
+CONFIG_CAN_MSCAN=m
+CONFIG_CAN_PLX_PCI=m
+CONFIG_CAN_RAW=m
+CONFIG_CAN_SJA1000=m
+CONFIG_CAN_SJA1000_OF_PLATFORM=m
+CONFIG_CAN_SJA1000_PLATFORM=m
+CONFIG_CAN_VCAN=m
+# CONFIG_CAPI_AVM is not set
+# CONFIG_CAPI_EICON is not set
+CONFIG_CAPI_TRACE=y
+CONFIG_CARDBUS=y
+# CONFIG_CARDMAN_4000 is not set
+# CONFIG_CARDMAN_4040 is not set
+# CONFIG_CARMINE_DRAM_CUSTOM is not set
+CONFIG_CASSINI=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_CBE_CPUFREQ_SPU_GOVERNOR=m
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_CDROM_PKTCDVD=m
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+# CONFIG_CEPH_FS_PRETTYDEBUG is not set
+CONFIG_CFG80211=m
+CONFIG_CFG80211_DEBUGFS=y
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_WEXT=y
+CONFIG_CGROUPS=y
+# CONFIG_CGROUP_CPUACCT is not set
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_NS=y
+# CONFIG_CGROUP_SCHED is not set
+CONFIG_CHARGER_PCF50633=m
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T3_DEPENDS=y
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4_DEPENDS=y
+CONFIG_CHR_DEV_OSST=m
+CONFIG_CHR_DEV_SG=m
+CONFIG_CHR_DEV_ST=m
+CONFIG_CICADA_PHY=m
+CONFIG_CIFS=m
+# CONFIG_CIFS_DEBUG2 is not set
+CONFIG_CIFS_DFS_UPCALL=y
+# CONFIG_CIFS_EXPERIMENTAL is not set
+# CONFIG_CIFS_STATS is not set
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_WEAK_PW_HASH=y
+# CONFIG_CIFS_XATTR is not set
+CONFIG_CISS_SCSI_TAPE=y
+CONFIG_CLS_U32_MARK=y
+# CONFIG_CLS_U32_PERF is not set
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_CNIC=m
+CONFIG_CODA_FS=m
+# CONFIG_CODE_PATCHING_SELFTEST is not set
+# CONFIG_COMEDI is not set
+# CONFIG_COMPACTION is not set
+CONFIG_COMPAT=y
+CONFIG_COMPAT_BINFMT_ELF=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+CONFIG_COMPUTONE=m
+CONFIG_CONFIGFS_FS=m
+CONFIG_CONNECTOR=m
+CONFIG_CONSOLE_POLL=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_CONSTRUCTORS=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_CPUSETS=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_PMAC=y
+CONFIG_CPU_FREQ_STAT=m
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
+CONFIG_CRAMFS=m
+# CONFIG_CRASH_DUMP is not set
+CONFIG_CRC16=y
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_CRC_CCITT=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC_T10DIF=m
+CONFIG_CROSS_COMPILE=""
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_CBC=y
+# CONFIG_CRYPTO_CCM is not set
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRYPTD=m
+# CONFIG_CRYPTO_CTR is not set
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_DEFLATE=m
+# CONFIG_CRYPTO_DEV_HIFN_795X is not set
+CONFIG_CRYPTO_DEV_NIAGARA2=m
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_FIPS=y
+# CONFIG_CRYPTO_GCM is not set
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_HMAC=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+# CONFIG_CRYPTO_SALSA20 is not set
+CONFIG_CRYPTO_SEED=m
+# CONFIG_CRYPTO_SEQIV is not set
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_XTS=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYSTALHD=m
+CONFIG_CUSE=m
+CONFIG_CXT1E1=m
+CONFIG_CYCLADES=m
+CONFIG_CYCLADES_SYNC=m
+CONFIG_CYCLOMX_X25=y
+# CONFIG_CYZ_INTR is not set
+CONFIG_DAVICOM_PHY=m
+CONFIG_DCB=y
+CONFIG_DE2104X_DSL=0
+CONFIG_DE600=m
+CONFIG_DE620=m
+CONFIG_DEBUGGER=y
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_CREDENTIALS is not set
+# CONFIG_DEBUG_DCFLUSH is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_DEBUG_DRIVER is not set
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+# CONFIG_DEBUG_INFO is not set
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_LIST is not set
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_SHIRQ is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DECNET=m
+CONFIG_DECNET_NF_GRABULATOR=m
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_LZO=y
+# CONFIG_DEFAULT_BIC is not set
+CONFIG_DEFAULT_CFQ=y
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_HTCP is not set
+# CONFIG_DEFAULT_HYBLA is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+# CONFIG_DEFAULT_NOOP is not set
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_SECURITY="apparmor"
+CONFIG_DEFAULT_SECURITY_APPARMOR=y
+# CONFIG_DEFAULT_SECURITY_DAC is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_DEFAULT_UIMAGE is not set
+# CONFIG_DEFAULT_VEGAS is not set
+# CONFIG_DEFAULT_VENO is not set
+# CONFIG_DEFAULT_WESTWOOD is not set
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+# CONFIG_DEFXX_MMIO is not set
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_DEVKMEM is not set
+CONFIG_DEVPORT=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DIGIEPCA=m
+# CONFIG_DISABLE_VHPT is not set
+CONFIG_DISCONTIGMEM=y
+CONFIG_DISPLAY7SEG=m
+CONFIG_DISPLAY_SUPPORT=m
+CONFIG_DL2K=m
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+# CONFIG_DMADEVICES_DEBUG is not set
+CONFIG_DMAR=y
+# CONFIG_DMAR_DEFAULT_ON is not set
+# CONFIG_DMATEST is not set
+# CONFIG_DMA_API_DEBUG is not set
+CONFIG_DMA_ENGINE=y
+CONFIG_DMI=y
+CONFIG_DMIID=y
+CONFIG_DM_CRYPT=m
+# CONFIG_DM_DEBUG is not set
+# CONFIG_DM_DELAY is not set
+# CONFIG_DM_LOG_USERSPACE is not set
+CONFIG_DM_MIRROR=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+# CONFIG_DM_RAID45 is not set
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_UEVENT=y
+CONFIG_DM_ZERO=m
+CONFIG_DNET=m
+CONFIG_DNOTIFY=y
+CONFIG_DONGLE=y
+CONFIG_DRAGONRISE_FF=y
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_MGA=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_DS1682=m
+CONFIG_DSCC4=m
+CONFIG_DSCC4_PCISYNC=y
+CONFIG_DSCC4_PCI_RST=y
+CONFIG_DT3155=m
+# CONFIG_DT3155_CCIR is not set
+CONFIG_DTC=y
+CONFIG_DUMMY=m
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_B2C2_FLEXCOP=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_BT8XX=m
+# CONFIG_DVB_BUDGET_CORE is not set
+CONFIG_DVB_CAPTURE_DRIVERS=y
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_DM1105=m
+CONFIG_DVB_DS3000=m
+CONFIG_DVB_DYNAMIC_MINORS=y
+# CONFIG_DVB_FE_CUSTOMISE is not set
+CONFIG_DVB_FIREDTV=m
+# CONFIG_DVB_FIREDTV_FIREWIRE is not set
+CONFIG_DVB_FIREDTV_IEEE1394=y
+CONFIG_DVB_FIREDTV_INPUT=y
+CONFIG_DVB_HOPPER=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_MAX_ADAPTERS=8
+CONFIG_DVB_MB86A16=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_NGENE=m
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_PLL=m
+CONFIG_DVB_PLUTO2=m
+CONFIG_DVB_PT1=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_S5H1411=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STV0297=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV6110x=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_CXUSB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MB_FAULTY=y
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_DW2102=m
+# CONFIG_DVB_USB_EC168 is not set
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_ZL10353=m
+# CONFIG_DYNAMIC_DEBUG is not set
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+# CONFIG_E200 is not set
+CONFIG_EARLYFB=y
+CONFIG_EARLY_PRINTK=y
+# CONFIG_ECHO is not set
+CONFIG_ECONET_AUNUDP=y
+CONFIG_ECONET_NATIVE=y
+CONFIG_ECRYPT_FS=y
+CONFIG_EDAC=y
+# CONFIG_EDAC_AMD8111 is not set
+# CONFIG_EDAC_AMD8131 is not set
+# CONFIG_EDAC_CPC925 is not set
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_MM_EDAC=m
+# CONFIG_EDAC_PASEMI is not set
+CONFIG_EEH=y
+CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EFI=y
+CONFIG_EFI_PARTITION=y
+CONFIG_EFI_PCDP=y
+CONFIG_EFI_VARS=m
+CONFIG_EFS_FS=m
+# CONFIG_ELECTRA_CF is not set
+CONFIG_ELF_CORE=y
+# CONFIG_EMBEDDED is not set
+# CONFIG_EMBEDDED6xx is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENC28J60 is not set
+# CONFIG_ENCLOSURE_SERVICES is not set
+CONFIG_ENIC=m
+CONFIG_ENVCTRL=m
+CONFIG_EPIC100=m
+CONFIG_EPOLL=y
+CONFIG_EQUALIZER=m
+CONFIG_ESI_DONGLE=m
+# CONFIG_ET131X is not set
+CONFIG_ETHOC=m
+CONFIG_EVENTFD=y
+CONFIG_EVENT_TRACING=y
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+CONFIG_EXPERIMENTAL=y
+CONFIG_EXPORTFS=m
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT2_FS_XATTR=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXTRA_FIRMWARE=""
+CONFIG_EXTRA_TARGETS=""
+CONFIG_FARSYNC=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_FAT_FS=m
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_FB=y
+# CONFIG_FB_3DFX_ACCEL is not set
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_ARK=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_BACKLIGHT=y
+# CONFIG_FB_BOOT_VESA_SUPPORT is not set
+CONFIG_FB_BROADSHEET=m
+# CONFIG_FB_BW2 is not set
+CONFIG_FB_CARMINE=m
+CONFIG_FB_CARMINE_DRAM_EVAL=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+# CONFIG_FB_CG14 is not set
+# CONFIG_FB_CG3 is not set
+CONFIG_FB_CG6=y
+CONFIG_FB_CONTROL=y
+CONFIG_FB_CT65550=y
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_DDC=y
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_FFB=y
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_IBM_GXT4500=m
+# CONFIG_FB_LEO is not set
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MB862XX=m
+CONFIG_FB_MB862XX_PCI_GDC=y
+CONFIG_FB_METRONOME=m
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_I2C=y
+CONFIG_FB_OF=y
+# CONFIG_FB_P9100 is not set
+CONFIG_FB_PLATINUM=y
+CONFIG_FB_PM3=m
+CONFIG_FB_PS3_DEFAULT_SIZE_M=9
+CONFIG_FB_RADEON=y
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RIVA_BACKLIGHT=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_I2C=y
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_S3=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SAVAGE_ACCEL=y
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SBUS=y
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_SM501=m
+CONFIG_FB_SM7XX=m
+CONFIG_FB_SVGALIB=m
+# CONFIG_FB_TCX is not set
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_TMIO=m
+CONFIG_FB_TMIO_ACCELL=y
+# CONFIG_FB_UDL is not set
+CONFIG_FB_UVESA=m
+CONFIG_FB_VALKYRIE=y
+# CONFIG_FB_VGA16 is not set
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_VT8623=m
+CONFIG_FB_XGI=m
+CONFIG_FB_XVR1000=y
+CONFIG_FB_XVR2500=y
+CONFIG_FB_XVR500=y
+CONFIG_FCOE=m
+CONFIG_FDDI=y
+CONFIG_FEALNX=m
+CONFIG_FIB_RULES=y
+CONFIG_FILE_LOCKING=y
+# CONFIG_FIREWIRE is not set
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FIRMWARE_IN_KERNEL=y
+# CONFIG_FIRMWARE_MEMMAP is not set
+CONFIG_FIXED_PHY=y
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_FONTS is not set
+CONFIG_FONT_8x16=y
+CONFIG_FONT_8x8=y
+# CONFIG_FONT_SUN12x22 is not set
+CONFIG_FONT_SUN8x16=y
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+CONFIG_FRAME_POINTER=y
+CONFIG_FRAME_WARN=1024
+CONFIG_FREEZER=y
+# CONFIG_FSAM7400 is not set
+CONFIG_FSCACHE=m
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_HISTOGRAM is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+# CONFIG_FSCACHE_STATS is not set
+# CONFIG_FSL_ULI1575 is not set
+CONFIG_FSNOTIFY=y
+CONFIG_FS_MBCACHE=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_FTL=m
+CONFIG_FTRACE=y
+CONFIG_FTRACE_MCOUNT_RECORD=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+# CONFIG_FTRACE_SYSCALLS is not set
+# CONFIG_FTR_FIXUP_SELFTEST is not set
+CONFIG_FUNCTION_GRAPH_TRACER=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_FUNCTION_TRACER=y
+CONFIG_FUSE_FS=y
+CONFIG_FUSION=y
+CONFIG_FUSION_CTL=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_LAN=m
+CONFIG_FUSION_LOGGING=y
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_SPI=m
+CONFIG_FUTEX=y
+CONFIG_FW_LOADER=y
+CONFIG_GACT_PROB=y
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GARP=m
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_GELIC_WIRELESS=y
+CONFIG_GENERIC_ACL=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_ATOMIC64=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_ISA_DMA=y
+# CONFIG_GENERIC_LOCKBREAK is not set
+CONFIG_GENERIC_NVRAM=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_TIME_VSYSCALL=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+# CONFIG_GIGASET_BASE is not set
+# CONFIG_GIGASET_CAPI is not set
+# CONFIG_GIGASET_DEBUG is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_I4L=y
+# CONFIG_GIGASET_M101 is not set
+# CONFIG_GIGASET_M105 is not set
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_GPIO_ADP5520=m
+CONFIG_GPIO_ADP5588=m
+CONFIG_GPIO_BT8XX=m
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_JANZ_TTL=m
+CONFIG_GPIO_LANGWELL=y
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MAX730X=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_MC33880=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_RDC321X=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_TC35892=y
+CONFIG_GPIO_TIMBERDALE=y
+CONFIG_GPIO_TWL4030=m
+CONFIG_GPIO_UCB1400=y
+CONFIG_GPIO_WM831X=m
+CONFIG_GPIO_WM8350=m
+CONFIG_GPIO_WM8994=m
+CONFIG_GPIO_XILINX=y
+CONFIG_GREENASIA_FF=y
+CONFIG_GRETH=m
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+# CONFIG_HAS_RAPIDIO is not set
+# CONFIG_HAVE_AOUT is not set
+# CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID is not set
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_NODEDATA_EXTENSION=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
+CONFIG_HAVE_IDE=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_HAVE_LMB=y
+CONFIG_HAVE_MEMORYLESS_NODES=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_HAVE_MTD_OTP=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_SYSCALL_WRAPPERS=y
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+# CONFIG_HCALL_STATS is not set
+CONFIG_HDLC=m
+CONFIG_HDLC_CISCO=m
+CONFIG_HDLC_FR=m
+CONFIG_HDLC_PPP=m
+CONFIG_HDLC_RAW=m
+CONFIG_HDLC_RAW_ETH=m
+CONFIG_HDLC_X25=m
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_HERMES=m
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+# CONFIG_HERMES_PRISM is not set
+CONFIG_HFSPLUS_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HIBERNATION=y
+CONFIG_HIBERNATION_NVS=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+CONFIG_HID_3M_PCT=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CANDO=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_HID_EGALAX=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_GREENASIA=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_KYE=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MOSART=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PID=y
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_HID_SONY=m
+CONFIG_HID_STANTUM=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_WACOM=m
+CONFIG_HID_WACOM_POWER_SUPPLY=y
+CONFIG_HID_ZEROPLUS=m
+CONFIG_HID_ZYDACRON=m
+CONFIG_HIGHMEM=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_HOLES_IN_ZONE=y
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_CS=m
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_HOSTAP_FIRMWARE_NVRAM=y
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOTPLUG=y
+CONFIG_HOTPLUG_CPU=y
+# CONFIG_HOTPLUG_PCI is not set
+CONFIG_HPET=y
+CONFIG_HPET_MMAP=y
+CONFIG_HPFS_FS=m
+# CONFIG_HP_SIMETH is not set
+# CONFIG_HP_SIMSCSI is not set
+# CONFIG_HP_SIMSERIAL is not set
+CONFIG_HTC_I2CPLD=y
+CONFIG_HTC_PASIC3=m
+CONFIG_HUGETLBFS=y
+CONFIG_HUGETLB_PAGE_SIZE_4MB=y
+# CONFIG_HUGETLB_PAGE_SIZE_512K is not set
+# CONFIG_HUGETLB_PAGE_SIZE_64K is not set
+CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
+# CONFIG_HVC_CONSOLE is not set
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_RTAS=y
+CONFIG_HVC_UDBG=y
+CONFIG_HWMON=y
+# CONFIG_HWMON_DEBUG_CHIP is not set
+CONFIG_HWMON_VID=m
+CONFIG_HW_CONSOLE=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_N2RNG=y
+CONFIG_HW_RANDOM_PASEMI=y
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_VIRTIO=m
+# CONFIG_HYSDN is not set
+CONFIG_HZ=250
+# CONFIG_HZ_100 is not set
+# CONFIG_HZ_1000 is not set
+CONFIG_HZ_250=y
+# CONFIG_HZ_300 is not set
+CONFIG_I2C=y
+CONFIG_I2C_ALGOBIT=y
+CONFIG_I2C_ALGOPCA=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_COMPAT=y
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+CONFIG_I2C_HELPER_AUTO=y
+CONFIG_I2C_HYDRA=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_MPC=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+# CONFIG_I2C_PASEMI is not set
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_POWERMAC=y
+CONFIG_I2C_SCMI=m
+CONFIG_I2C_SI470X=m
+CONFIG_I2C_SI4713=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_STUB=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+CONFIG_I2C_XILINX=m
+CONFIG_I2O=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_BUS=m
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_PROC=m
+CONFIG_I2O_SCSI=m
+CONFIG_I82092=m
+CONFIG_IA64=y
+# CONFIG_IA64_ACPI_CPUFREQ is not set
+# CONFIG_IA64_CYCLONE is not set
+# CONFIG_IA64_DEBUG_CMPXCHG is not set
+# CONFIG_IA64_DEBUG_IRQ is not set
+# CONFIG_IA64_DIG is not set
+# CONFIG_IA64_DIG_VTD is not set
+# CONFIG_IA64_ESI is not set
+CONFIG_IA64_GENERIC=y
+CONFIG_IA64_GRANULE_16MB=y
+# CONFIG_IA64_GRANULE_64MB is not set
+# CONFIG_IA64_HP_AML_NFW is not set
+# CONFIG_IA64_HP_SIM is not set
+# CONFIG_IA64_HP_ZX1 is not set
+# CONFIG_IA64_HP_ZX1_SWIOTLB is not set
+CONFIG_IA64_L1_CACHE_SHIFT=7
+# CONFIG_IA64_MCA_RECOVERY is not set
+# CONFIG_IA64_MC_ERR_INJECT is not set
+CONFIG_IA64_PAGE_SIZE_16KB=y
+# CONFIG_IA64_PAGE_SIZE_4KB is not set
+# CONFIG_IA64_PAGE_SIZE_64KB is not set
+# CONFIG_IA64_PAGE_SIZE_8KB is not set
+# CONFIG_IA64_PALINFO is not set
+# CONFIG_IA64_PRINT_HAZARDS is not set
+# CONFIG_IA64_SGI_SN2 is not set
+# CONFIG_IA64_SGI_UV is not set
+CONFIG_IA64_UNCACHED_ALLOCATOR=y
+# CONFIG_IA64_XEN_GUEST is not set
+# CONFIG_IBMEBUS is not set
+CONFIG_IBMLS=m
+CONFIG_IBMOL=m
+# CONFIG_IBMVETH is not set
+CONFIG_IBMVIO=y
+# CONFIG_IBM_BSR is not set
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+CONFIG_ICPLUS_PHY=m
+CONFIG_ICS932S401=m
+CONFIG_IDEPCI_PCIBUS_ORDER=y
+CONFIG_IDE_ATAPI=y
+CONFIG_IDE_GD=y
+CONFIG_IDE_GD_ATA=y
+# CONFIG_IDE_GD_ATAPI is not set
+# CONFIG_IDE_PHISON is not set
+CONFIG_IDE_PROC_FS=y
+# CONFIG_IDE_TASK_IOCTL is not set
+CONFIG_IDE_TIMINGS=y
+CONFIG_IDE_XFER_MODE=y
+CONFIG_IEEE1394=m
+CONFIG_IEEE1394_DV1394=m
+CONFIG_IEEE1394_ETH1394=m
+CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
+CONFIG_IEEE1394_OHCI1394=m
+CONFIG_IEEE1394_RAWIO=m
+CONFIG_IEEE1394_SBP2=m
+# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
+# CONFIG_IEEE1394_VERBOSEDEBUG is not set
+CONFIG_IEEE1394_VIDEO1394=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_DRIVERS=m
+# CONFIG_IEEE802154_FAKEHARD is not set
+CONFIG_IFB=m
+# CONFIG_IGB is not set
+CONFIG_IGBVF=m
+# CONFIG_IIO is not set
+# CONFIG_IKCONFIG_PROC is not set
+# CONFIG_IMA is not set
+CONFIG_INET=y
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET_AH=m
+CONFIG_INET_DCCP_DIAG=m
+CONFIG_INET_DIAG=y
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_LRO=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_ADDR_TRANS=y
+CONFIG_INFINIBAND_AMSO1100_DEBUG=y
+CONFIG_INFINIBAND_CXGB3=m
+# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
+CONFIG_INFINIBAND_CXGB4=m
+CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_DEBUG=y
+# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
+CONFIG_INFINIBAND_MTHCA=m
+CONFIG_INFINIBAND_MTHCA_DEBUG=y
+# CONFIG_INFINIBAND_NES is not set
+CONFIG_INFINIBAND_USER_MEM=y
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_INIT_ENV_ARG_LIMIT=32
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_INPUT=y
+CONFIG_INPUT_88PM860X_ONKEY=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_AD714X_SPI=m
+CONFIG_INPUT_ADBHID=y
+CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_EVDEV=m
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_MAX8925_ONKEY=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_MOUSE=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_PCAP=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_SPARCSPKR=y
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_TABLET=y
+CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_INPUT_TWL4030_PWRBUTTON=m
+CONFIG_INPUT_TWL4030_VIBRA=m
+CONFIG_INPUT_WM831X_ON=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_IOMMU_API=y
+CONFIG_IOMMU_HELPER=y
+CONFIG_IOSAPIC=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+# CONFIG_IPC_NS is not set
+CONFIG_IPDDP=m
+CONFIG_IPDDP_DECAP=y
+CONFIG_IPDDP_ENCAP=y
+# CONFIG_IPIC is not set
+CONFIG_IPMI_DEVICE_INTERFACE=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPV6=m
+# CONFIG_IPV6_MIP6 is not set
+# CONFIG_IPV6_MROUTE is not set
+# CONFIG_IPV6_MULTIPLE_TABLES is not set
+CONFIG_IPV6_NDISC_NODETYPE=y
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+# CONFIG_IPV6_ROUTER_PREF is not set
+CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_SIT_6RD is not set
+CONFIG_IPW2100=m
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2100_MONITOR=y
+CONFIG_IPW2200=m
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+CONFIG_IPW2200_RADIOTAP=y
+# CONFIG_IPWIRELESS is not set
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_IP_ADVANCED_ROUTER=y
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_CCID3_RTO=100
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_IP_PNP_BOOTP is not set
+# CONFIG_IP_PNP_DHCP is not set
+CONFIG_IP_PNP_RARP=y
+CONFIG_IP_SCTP=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_SCTP=y
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_TAB_BITS=12
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_DEBUG=y
+CONFIG_IRDA_FAST_RR=y
+CONFIG_IRDA_ULTRA=y
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+# CONFIG_IRQSOFF_TRACER is not set
+# CONFIG_IRQSTACKS is not set
+# CONFIG_IRQ_ALL_CPUS is not set
+CONFIG_IRQ_PER_CPU=y
+CONFIG_IRTTY_SIR=m
+CONFIG_IR_CORE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+# CONFIG_ISA is not set
+CONFIG_ISA_DMA_API=y
+CONFIG_ISCSI_TCP=m
+# CONFIG_ISDN_AUDIO is not set
+CONFIG_ISDN_CAPI=m
+# CONFIG_ISDN_CAPI_CAPI20 is not set
+# CONFIG_ISDN_CAPI_CAPIDRV is not set
+# CONFIG_ISDN_CAPI_MIDDLEWARE is not set
+# CONFIG_ISDN_DIVERSION is not set
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+# CONFIG_ISDN_DRV_HISAX is not set
+# CONFIG_ISDN_DRV_LOOP is not set
+CONFIG_ISDN_HDLC=m
+CONFIG_ISDN_I4L=m
+# CONFIG_ISDN_PPP is not set
+# CONFIG_ISDN_X25 is not set
+# CONFIG_ISI is not set
+CONFIG_ISL29003=m
+CONFIG_ISO9660_FS=m
+CONFIG_ISTALLION=m
+# CONFIG_ITANIUM is not set
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_ITCO_WDT=m
+# CONFIG_IWL3945 is not set
+# CONFIG_IWL4965 is not set
+CONFIG_IWL5000=y
+CONFIG_IWLAGN=m
+CONFIG_IWLWIFI=m
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWM=m
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+CONFIG_IWMC3200TOP_DEBUGFS=y
+# CONFIG_IWM_DEBUG is not set
+CONFIG_IWM_TRACING=y
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBEVF=m
+CONFIG_IXGBE_DCB=y
+CONFIG_JBD=y
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JFFS2_CMODE_FAVOURLZO=y
+# CONFIG_JFFS2_CMODE_NONE is not set
+# CONFIG_JFFS2_CMODE_PRIORITY is not set
+# CONFIG_JFFS2_CMODE_SIZE is not set
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_XATTR is not set
+CONFIG_JFFS2_LZO=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_JFFS2_SUMMARY is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+CONFIG_JFS_STATISTICS=y
+CONFIG_JME=m
+CONFIG_JOLIET=y
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ALL=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_KDB_KEYBOARD=y
+CONFIG_KEXEC=y
+CONFIG_KEYBOARD_ADP5520=m
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_LM8323=m
+CONFIG_KEYBOARD_MATRIX=m
+CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_OPENCORES=m
+CONFIG_KEYBOARD_STOWAWAY=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TWL4030=m
+CONFIG_KEYS=y
+CONFIG_KEYS_COMPAT=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_KGDB_KDB=y
+CONFIG_KGDB_SERIAL_CONSOLE=y
+# CONFIG_KGDB_TESTS is not set
+CONFIG_KINGSUN_DONGLE=m
+# CONFIG_KMEMTRACE is not set
+CONFIG_KPROBES=y
+# CONFIG_KPROBES_SANITY_TEST is not set
+CONFIG_KPROBE_EVENT=y
+CONFIG_KRETPROBES=y
+CONFIG_KS0108=m
+CONFIG_KS0108_DELAY=2
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_KS959_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+CONFIG_KSM=y
+CONFIG_KSZ884X_PCI=m
+CONFIG_KVM=y
+CONFIG_KVM_BOOK3S_32=m
+CONFIG_KVM_BOOK3S_32_HANDLER=y
+# CONFIG_KVM_BOOK3S_64 is not set
+CONFIG_KVM_BOOK3S_HANDLER=y
+CONFIG_KVM_MMIO=y
+CONFIG_L2TP=m
+CONFIG_L2TP_DEBUGFS=m
+# CONFIG_L2TP_V3 is not set
+CONFIG_LANMEDIA=m
+CONFIG_LAPBETHER=m
+CONFIG_LBDAF=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_LCD_S6E63M0=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+# CONFIG_LDM_DEBUG is not set
+CONFIG_LEDS_88PM860X=m
+CONFIG_LEDS_ADP5520=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_DA903X=m
+CONFIG_LEDS_DAC124S085=m
+# CONFIG_LEDS_GPIO is not set
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_REGULATOR=m
+CONFIG_LEDS_SUNFIRE=m
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+# CONFIG_LEDS_TRIGGER_IDE_DISK is not set
+CONFIG_LEDS_WM831X_STATUS=m
+CONFIG_LEDS_WM8350=m
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=0
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+CONFIG_LIB80211_CRYPT_WEP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_LIBCRC32C=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_CS=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_MESH=y
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_LIBIPW=m
+# CONFIG_LIBIPW_DEBUG is not set
+# CONFIG_LINE6_USB is not set
+CONFIG_LIRC_ATIUSB=m
+CONFIG_LIRC_BT829=m
+CONFIG_LIRC_CONFIG_LIRC_WPC8769L=m
+CONFIG_LIRC_DEV=m
+CONFIG_LIRC_ENE0100=m
+# CONFIG_LIRC_GPIO is not set
+CONFIG_LIRC_I2C=m
+CONFIG_LIRC_IGORPLUGUSB=m
+CONFIG_LIRC_IMON=m
+CONFIG_LIRC_IT87=m
+CONFIG_LIRC_ITE8709=m
+CONFIG_LIRC_MCEUSB=m
+# CONFIG_LIRC_PARALLEL is not set
+CONFIG_LIRC_SASEM=m
+CONFIG_LIRC_SERIAL=m
+CONFIG_LIRC_SIR=m
+CONFIG_LIRC_STREAMZAP=m
+CONFIG_LIRC_TTUSBIR=m
+CONFIG_LITELINK_DONGLE=m
+# CONFIG_LKDTM is not set
+CONFIG_LLC2=m
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_LOCKD=m
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_LOCKD_V4=y
+CONFIG_LOCK_KERNEL=y
+# CONFIG_LOCK_STAT is not set
+# CONFIG_LOGFS is not set
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGITECH_FF=y
+# CONFIG_LOGO is not set
+CONFIG_LOWMEM_SIZE=0x30000000
+# CONFIG_LPARCFG is not set
+CONFIG_LPC_SCH=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_LSI_ET1011C_PHY=m
+CONFIG_LSM_MMAP_MIN_ADDR=0
+CONFIG_LXT_PHY=m
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_M25PXX_USE_FAST_READ=y
+CONFIG_MA600_DONGLE=m
+CONFIG_MAC80211=m
+CONFIG_MAC80211_DEBUGFS=y
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_HWSIM=m
+CONFIG_MAC80211_LEDS=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MACE=m
+# CONFIG_MACE_AAUI_PORT is not set
+CONFIG_MACINTOSH_DRIVERS=y
+# CONFIG_MACVTAP is not set
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_MAC_FLOPPY=m
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MANTIS_CORE=m
+CONFIG_MARVELL_PHY=m
+CONFIG_MAX8925_POWER=m
+CONFIG_MAX_RAW_DEVS=256
+CONFIG_MCKINLEY=y
+CONFIG_MCOUNT=y
+CONFIG_MCP2120_DONGLE=m
+CONFIG_MCS_FIR=m
+CONFIG_MD=y
+CONFIG_MDIO=m
+CONFIG_MDIO_BITBANG=m
+CONFIG_MDIO_GPIO=m
+CONFIG_MD_FAULTY=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_MD_RAID6_PQ=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_SAS=m
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+# CONFIG_MEMORY_HOTREMOVE is not set
+# CONFIG_MEMSTICK is not set
+CONFIG_MFD_88PM860X=y
+CONFIG_MFD_CORE=y
+CONFIG_MFD_MAX8925=y
+CONFIG_MFD_MC13783=m
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_SM501=m
+CONFIG_MFD_SUPPORT=y
+CONFIG_MFD_TC35892=y
+CONFIG_MFD_TIMBERDALE=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MFD_WM831X=y
+CONFIG_MFD_WM8350=y
+CONFIG_MFD_WM8350_I2C=y
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM8994=y
+CONFIG_MICREL_PHY=m
+CONFIG_MIGRATION=y
+CONFIG_MII=m
+CONFIG_MINIX_FS=m
+CONFIG_MISC_DEVICES=y
+CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISDN=m
+CONFIG_MISDN_AVMFRITZ=m
+# CONFIG_MISDN_DSP is not set
+# CONFIG_MISDN_HFCMULTI is not set
+# CONFIG_MISDN_HFCPCI is not set
+# CONFIG_MISDN_HFCUSB is not set
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+# CONFIG_MISDN_L1OIP is not set
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_W6692=m
+CONFIG_MKISS=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_INFINIBAND=m
+CONFIG_MMC=m
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_MMC_CB710=m
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI=m
+CONFIG_MMC_SDHCI_BIG_ENDIAN_32BIT_BYTE_SWAPPER=y
+CONFIG_MMC_SDHCI_IO_ACCESSORS=y
+CONFIG_MMC_SDHCI_OF=m
+CONFIG_MMC_SDHCI_OF_ESDHC=y
+CONFIG_MMC_SDHCI_OF_HLWD=y
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_SPI=m
+# CONFIG_MMC_TEST is not set
+CONFIG_MMC_TIFM_SD=m
+# CONFIG_MMC_UNSAFE_RESUME is not set
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMTIMER=y
+CONFIG_MMU=y
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MOUSE_APPLETOUCH=m
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOXA_INTELLIO=m
+# CONFIG_MOXA_SMARTIO is not set
+# CONFIG_MPC5121_ADS is not set
+# CONFIG_MPC5121_GENERIC is not set
+CONFIG_MPIC=y
+CONFIG_MPIC_BROKEN_REGREAD=y
+CONFIG_MPIC_U3_HT_IRQS=y
+# CONFIG_MPIC_WEIRD is not set
+CONFIG_MSDOS_FS=m
+CONFIG_MSDOS_PARTITION=y
+# CONFIG_MSI_BITMAP_SELFTEST is not set
+# CONFIG_MSPEC is not set
+CONFIG_MTD=m
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+CONFIG_MTD_ABSENT=m
+CONFIG_MTD_ALAUDA=m
+CONFIG_MTD_AR7_PARTS=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_BLOCK2MTD=m
+CONFIG_MTD_BLOCK_RO=m
+CONFIG_MTD_CFI=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_CONCAT=m
+CONFIG_MTD_DATAFLASH=m
+CONFIG_MTD_DATAFLASH_OTP=y
+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_DOC2000=m
+CONFIG_MTD_DOC2001=m
+CONFIG_MTD_DOC2001PLUS=m
+CONFIG_MTD_DOCECC=m
+CONFIG_MTD_DOCPROBE=m
+CONFIG_MTD_DOCPROBE_ADDRESS=0
+# CONFIG_MTD_DOCPROBE_ADVANCED is not set
+CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_GPIO_ADDR=m
+CONFIG_MTD_INTEL_VR_NOR=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_M25P80=m
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND_CAFE=m
+CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+CONFIG_MTD_NAND_ECC=m
+# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND_FSL_ELBC is not set
+CONFIG_MTD_NAND_IDS=m
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+CONFIG_MTD_NAND_NANDSIM=m
+# CONFIG_MTD_NAND_PASEMI is not set
+CONFIG_MTD_NAND_PLATFORM=m
+CONFIG_MTD_NAND_RICOH=m
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+# CONFIG_MTD_OF_PARTS is not set
+CONFIG_MTD_ONENAND=m
+CONFIG_MTD_ONENAND_2X_PROGRAM=y
+CONFIG_MTD_ONENAND_GENERIC=m
+# CONFIG_MTD_ONENAND_OTP is not set
+CONFIG_MTD_ONENAND_SIM=m
+CONFIG_MTD_ONENAND_VERIFY_WRITE=y
+CONFIG_MTD_OOPS=m
+CONFIG_MTD_PARTITIONS=y
+CONFIG_MTD_PCI=m
+CONFIG_MTD_PCMCIA=m
+# CONFIG_MTD_PCMCIA_ANONYMOUS is not set
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_PHYSMAP=m
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+CONFIG_MTD_PHYSMAP_OF=m
+CONFIG_MTD_PLATRAM=m
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+CONFIG_MTD_REDBOOT_PARTS=m
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+CONFIG_MTD_ROM=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_SM_COMMON=m
+CONFIG_MTD_SST25L=m
+CONFIG_MTD_SUN_UFLASH=m
+CONFIG_MTD_TESTS=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_DEBUG is not set
+CONFIG_MTD_UBI_GLUEBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+# CONFIG_MULTICORE_RAID456 is not set
+CONFIG_MV643XX_ETH=m
+CONFIG_MWL8K=m
+CONFIG_MYRI10GE=m
+CONFIG_MYRI_SBUS=m
+CONFIG_NAMESPACES=y
+CONFIG_NATIONAL_PHY=m
+CONFIG_NATSEMI=m
+CONFIG_NCPFS_EXTRAS=y
+CONFIG_NCPFS_IOCTL_LOCKING=y
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_NLS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_PACKET_SIGNING=y
+CONFIG_NCPFS_STRONG=y
+CONFIG_NCP_FS=m
+# CONFIG_NDISWRAPPER is not set
+CONFIG_NE2K_PCI=m
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NET=y
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETDEVICES=y
+CONFIG_NETDEV_1000=y
+CONFIG_NETDEV_10000=y
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETLABEL=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NETROM=m
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_9P=m
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_NET_9P_RDMA=m
+CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_CGROUP=y
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_FW=m
+# CONFIG_NET_CLS_IND is not set
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_DCCPPROBE=m
+# CONFIG_NET_DMA is not set
+# CONFIG_NET_DROP_MONITOR is not set
+CONFIG_NET_DSA=y
+CONFIG_NET_DSA_MV88E6060=y
+CONFIG_NET_DSA_MV88E6123_61_65=y
+CONFIG_NET_DSA_MV88E6131=y
+CONFIG_NET_DSA_MV88E6XXX=y
+CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
+CONFIG_NET_DSA_TAG_DSA=y
+CONFIG_NET_DSA_TAG_EDSA=y
+CONFIG_NET_DSA_TAG_TRAILER=y
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_ETHERNET=y
+CONFIG_NET_FC=y
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_NET_NS=y
+CONFIG_NET_PCI=y
+CONFIG_NET_PCMCIA=y
+CONFIG_NET_POCKET=y
+CONFIG_NET_POLL_CONTROLLER=y
+# CONFIG_NET_SB1000 is not set
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_FIFO=y
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCTPPROBE=m
+CONFIG_NET_TCPPROBE=m
+CONFIG_NET_TULIP=y
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_NEW_LEDS=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_NFS_FS=m
+# CONFIG_NFS_FSCACHE is not set
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFTL=m
+CONFIG_NFTL_RW=y
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NILFS2_FS=m
+CONFIG_NL80211_TESTMODE=y
+CONFIG_NLATTR=y
+CONFIG_NLS=y
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+CONFIG_NODES_SPAN_OTHER_NODES=y
+CONFIG_NOP_TRACER=y
+CONFIG_NOP_USB_XCEIV=m
+# CONFIG_NORTEL_HERMES is not set
+# CONFIG_NOZOMI is not set
+CONFIG_NO_HZ=y
+CONFIG_NR_IRQS=512
+CONFIG_NR_QUICK=1
+CONFIG_NS83820=m
+CONFIG_NSC_FIR=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_RW is not set
+CONFIG_NUMA=y
+CONFIG_NVRAM=y
+# CONFIG_N_GSM is not set
+CONFIG_N_HDLC=m
+CONFIG_OBP_FLASH=m
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_OCFS2_DEBUG_MASKLOG=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_STATS=y
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OF=y
+CONFIG_OF_DEVICE=y
+CONFIG_OF_DYNAMIC=y
+CONFIG_OF_FLATTREE=y
+CONFIG_OF_GPIO=y
+CONFIG_OF_I2C=y
+CONFIG_OF_MDIO=y
+CONFIG_OF_SPI=y
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_OMFS_FS=m
+CONFIG_OPROFILE=m
+CONFIG_ORINOCO_USB=m
+# CONFIG_OTUS is not set
+CONFIG_P54_COMMON=m
+CONFIG_P54_LEDS=y
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_USB=m
+CONFIG_PACKET=y
+CONFIG_PADATA=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+# CONFIG_PAGE_POISONING is not set
+# CONFIG_PANEL is not set
+CONFIG_PANTHERLORD_FF=y
+CONFIG_PARAVIRT=y
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_PARIDE=m
+CONFIG_PARIDE_ATEN=m
+CONFIG_PARIDE_BPCK=m
+CONFIG_PARIDE_BPCK6=m
+CONFIG_PARIDE_COMM=m
+CONFIG_PARIDE_DSTR=m
+CONFIG_PARIDE_EPAT=m
+# CONFIG_PARIDE_EPATC8 is not set
+CONFIG_PARIDE_EPIA=m
+CONFIG_PARIDE_FIT2=m
+CONFIG_PARIDE_FIT3=m
+CONFIG_PARIDE_FRIQ=m
+CONFIG_PARIDE_FRPW=m
+CONFIG_PARIDE_KBIC=m
+CONFIG_PARIDE_KTTI=m
+CONFIG_PARIDE_ON20=m
+CONFIG_PARIDE_ON26=m
+CONFIG_PARIDE_PCD=m
+CONFIG_PARIDE_PD=m
+CONFIG_PARIDE_PF=m
+CONFIG_PARIDE_PG=m
+CONFIG_PARIDE_PT=m
+CONFIG_PARPORT=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_AX88796=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_PC_SUPERIO is not set
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARPORT_SUNBPP=m
+CONFIG_PARTITION_ADVANCED=y
+# CONFIG_PASEMI_MAC is not set
+CONFIG_PATA_ACPI=m
+# CONFIG_PATA_ALI is not set
+CONFIG_PATA_AMD=m
+# CONFIG_PATA_ARTOP is not set
+# CONFIG_PATA_ATIIXP is not set
+CONFIG_PATA_ATP867X=m
+# CONFIG_PATA_CMD640_PCI is not set
+# CONFIG_PATA_CMD64X is not set
+CONFIG_PATA_CS5520=m
+# CONFIG_PATA_CS5530 is not set
+# CONFIG_PATA_CYPRESS is not set
+CONFIG_PATA_EFAR=m
+# CONFIG_PATA_HPT366 is not set
+# CONFIG_PATA_HPT37X is not set
+# CONFIG_PATA_HPT3X2N is not set
+# CONFIG_PATA_HPT3X3 is not set
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_LEGACY=m
+CONFIG_PATA_MACIO=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+# CONFIG_PATA_NS87410 is not set
+# CONFIG_PATA_NS87415 is not set
+CONFIG_PATA_OF_PLATFORM=m
+CONFIG_PATA_OLDPIIX=m
+# CONFIG_PATA_OPTI is not set
+# CONFIG_PATA_OPTIDMA is not set
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
+# CONFIG_PATA_PDC_OLD is not set
+CONFIG_PATA_PLATFORM=m
+# CONFIG_PATA_RADISYS is not set
+CONFIG_PATA_RDC=m
+CONFIG_PATA_RZ1000=m
+# CONFIG_PATA_SC1200 is not set
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=m
+# CONFIG_PATA_TOSHIBA is not set
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+# CONFIG_PC300TOO is not set
+CONFIG_PCCARD=m
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_PCI=y
+CONFIG_PCI200SYN=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEPORTBUS=y
+# CONFIG_PCIE_ECRC is not set
+CONFIG_PCIE_PME=y
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_PCI_ATMEL=m
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_IOAPIC=y
+# CONFIG_PCI_IOV is not set
+CONFIG_PCI_QUIRKS=y
+# CONFIG_PCI_STUB is not set
+CONFIG_PCI_SYSCALL=y
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_IBMTR=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCNET32=m
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_PD6729=m
+CONFIG_PDA_POWER=m
+CONFIG_PDC_ADMA=m
+# CONFIG_PERFMON is not set
+CONFIG_PERF_COUNTERS=y
+CONFIG_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
+# CONFIG_PERMIT_BSP_REMOVE is not set
+CONFIG_PGTABLE_3=y
+# CONFIG_PGTABLE_4 is not set
+CONFIG_PHANTOM=m
+CONFIG_PHONE=m
+CONFIG_PHONET=m
+CONFIG_PHONE_IXJ=m
+CONFIG_PHONE_IXJ_PCMCIA=m
+CONFIG_PHYLIB=y
+# CONFIG_PHYP_DUMP is not set
+CONFIG_PHYSICAL_START=0x00000000
+# CONFIG_PID_NS is not set
+CONFIG_PLIP=m
+# CONFIG_PLX_HERMES is not set
+CONFIG_PM=y
+CONFIG_PMAC_APM_EMU=m
+CONFIG_PMAC_BACKLIGHT=y
+CONFIG_PMAC_BACKLIGHT_LEGACY=y
+CONFIG_PMAC_MEDIABAY=y
+CONFIG_PMAC_RACKMETER=m
+CONFIG_PMIC_ADP5520=y
+CONFIG_PMIC_DA903X=y
+# CONFIG_PM_DEBUG is not set
+CONFIG_PM_DISABLE_CONSOLE=y
+CONFIG_PM_OPS=y
+CONFIG_PM_RUNTIME=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PNP=y
+CONFIG_PNPACPI=y
+# CONFIG_PNP_DEBUG_MESSAGES is not set
+# CONFIG_POHMELFS is not set
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_POWER3=y
+CONFIG_POWER4=y
+# CONFIG_POWER4_ONLY is not set
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PPC=y
+CONFIG_PPC32=y
+# CONFIG_PPC601_SYNC_FIX is not set
+# CONFIG_PPC_16K_PAGES is not set
+# CONFIG_PPC_256K_PAGES is not set
+CONFIG_PPC_4K_PAGES=y
+# CONFIG_PPC_64K_PAGES is not set
+# CONFIG_PPC_82xx is not set
+# CONFIG_PPC_83xx is not set
+# CONFIG_PPC_85xx is not set
+# CONFIG_PPC_86xx is not set
+# CONFIG_PPC_8xx is not set
+# CONFIG_PPC_BOOK3E_64 is not set
+CONFIG_PPC_BOOK3S=y
+CONFIG_PPC_BOOK3S_32=y
+CONFIG_PPC_BOOK3S_64=y
+# CONFIG_PPC_CELLEB is not set
+# CONFIG_PPC_CELL_NATIVE is not set
+# CONFIG_PPC_CELL_QPACE is not set
+CONFIG_PPC_CHRP=y
+# CONFIG_PPC_CLOCK is not set
+# CONFIG_PPC_DCR_MMIO is not set
+# CONFIG_PPC_DCR_NATIVE is not set
+CONFIG_PPC_DISABLE_WERROR=y
+# CONFIG_PPC_EARLY_DEBUG is not set
+# CONFIG_PPC_EMULATED_STATS is not set
+CONFIG_PPC_FPU=y
+CONFIG_PPC_HAVE_PMU_SUPPORT=y
+CONFIG_PPC_I8259=y
+# CONFIG_PPC_IBM_CELL_BLADE is not set
+# CONFIG_PPC_INDIRECT_IO is not set
+# CONFIG_PPC_ISERIES is not set
+# CONFIG_PPC_MPC52xx is not set
+CONFIG_PPC_MSI_BITMAP=y
+CONFIG_PPC_NATIVE=y
+CONFIG_PPC_OF=y
+CONFIG_PPC_OF_BOOT_TRAMPOLINE=y
+# CONFIG_PPC_OF_PLATFORM_PCI is not set
+CONFIG_PPC_PASEMI_CPUFREQ=y
+CONFIG_PPC_PASEMI_IOMMU=y
+# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
+CONFIG_PPC_PASEMI_MDIO=y
+CONFIG_PPC_PCI_CHOICE=y
+CONFIG_PPC_PERF_CTRS=y
+CONFIG_PPC_PMAC=y
+CONFIG_PPC_PMAC64=y
+CONFIG_PPC_PSERIES=y
+CONFIG_PPC_RTAS=y
+CONFIG_PPC_RTAS_DAEMON=y
+# CONFIG_PPC_SMLPAR is not set
+# CONFIG_PPC_SPLPAR is not set
+CONFIG_PPC_STD_MMU=y
+CONFIG_PPC_STD_MMU_32=y
+CONFIG_PPC_STD_MMU_64=y
+CONFIG_PPC_UDBG_16550=y
+CONFIG_PPDEV=m
+CONFIG_PPP=m
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPS=m
+# CONFIG_PPS_CLIENT_KTIMER is not set
+CONFIG_PPS_CLIENT_LDISC=m
+# CONFIG_PPS_DEBUG is not set
+# CONFIG_PQ2ADS is not set
+# CONFIG_PREEMPT is not set
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_PRINTER=m
+CONFIG_PRINTK=y
+CONFIG_PRINTK_TIME=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_PRINT_STACK_DEPTH=64
+# CONFIG_PRISM2_USB is not set
+CONFIG_PROC_DEVICETREE=y
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_PROC_SYSCTL=y
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_PS3_ADVANCED is not set
+CONFIG_PS3_DISK=m
+# CONFIG_PS3_DYNAMIC_DMA is not set
+CONFIG_PS3_FLASH=m
+CONFIG_PS3_HTAB_SIZE=20
+CONFIG_PS3_LPM=m
+CONFIG_PS3_PS3AV=y
+CONFIG_PS3_ROM=m
+CONFIG_PS3_STORAGE=m
+CONFIG_PS3_SYS_MANAGER=y
+CONFIG_PS3_VUART=y
+CONFIG_PSERIES_MSI=y
+CONFIG_QFMT_V2=m
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_QNX4FS_FS=m
+CONFIG_QSEMI_PHY=m
+CONFIG_QT2160=m
+CONFIG_QUICKLIST=y
+CONFIG_QUOTA=y
+CONFIG_QUOTACTL=y
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+CONFIG_QUOTA_TREE=m
+CONFIG_R3964=m
+# CONFIG_R6040 is not set
+CONFIG_R8169_VLAN=y
+CONFIG_R8187SE=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_GEMTEK_PCI=m
+CONFIG_RADIO_MAESTRO=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_SI470X=y
+CONFIG_RADIO_SI4713=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_TIMBERDALE=m
+CONFIG_RAID_ATTRS=m
+CONFIG_RAMOOPS=m
+CONFIG_RAMZSWAP=m
+CONFIG_RAMZSWAP_STATS=y
+# CONFIG_RAR_REGISTER is not set
+CONFIG_RAW_DRIVER=m
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_RCU_FANOUT_EXACT is not set
+CONFIG_RCU_FAST_NO_HZ=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RC_MAP=m
+# CONFIG_RDS_DEBUG is not set
+CONFIG_RDS_RDMA=m
+CONFIG_RDS_TCP=m
+CONFIG_RD_BZIP2=y
+CONFIG_RD_GZIP=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_LZO=y
+# CONFIG_REALTEK_PHY is not set
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_88PM8607=y
+CONFIG_REGULATOR_AB3100=m
+CONFIG_REGULATOR_BQ24022=m
+CONFIG_REGULATOR_DA903X=m
+# CONFIG_REGULATOR_DEBUG is not set
+# CONFIG_REGULATOR_DUMMY is not set
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+CONFIG_REGULATOR_LP3971=m
+CONFIG_REGULATOR_MAX1586=m
+CONFIG_REGULATOR_MAX8649=m
+CONFIG_REGULATOR_MAX8660=m
+CONFIG_REGULATOR_MAX8925=m
+CONFIG_REGULATOR_MC13783=m
+CONFIG_REGULATOR_PCAP=m
+CONFIG_REGULATOR_PCF50633=m
+CONFIG_REGULATOR_TPS65023=m
+CONFIG_REGULATOR_TPS6507X=m
+CONFIG_REGULATOR_TWL4030=y
+CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
+CONFIG_REGULATOR_WM831X=m
+CONFIG_REGULATOR_WM8350=m
+CONFIG_REGULATOR_WM8400=m
+CONFIG_REGULATOR_WM8994=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_FS=m
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_REISERFS_FS_XATTR=y
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_RELAY=y
+# CONFIG_RELOCATABLE is not set
+# CONFIG_RESOURCE_COUNTERS is not set
+CONFIG_RFD_FTL=m
+CONFIG_RFKILL=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_LEDS=y
+CONFIG_RING_BUFFER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+CONFIG_ROADRUNNER=m
+# CONFIG_ROADRUNNER_LARGE_RINGS is not set
+CONFIG_ROCKETPORT=m
+CONFIG_ROMFS_BACKED_BY_BLOCK=y
+# CONFIG_ROMFS_BACKED_BY_BOTH is not set
+# CONFIG_ROMFS_BACKED_BY_MTD is not set
+CONFIG_ROMFS_FS=m
+CONFIG_ROMFS_ON_BLOCK=y
+CONFIG_ROSE=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPCSEC_GSS_SPKM3=m
+CONFIG_RPS=y
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT2500USB=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_PCI=y
+CONFIG_RT2800PCI_RT30XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800USB=m
+# CONFIG_RT2800USB_RT30XX is not set
+# CONFIG_RT2800USB_RT35XX is not set
+CONFIG_RT2800USB_UNKNOWN=y
+CONFIG_RT2800_LIB=m
+CONFIG_RT2X00=m
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_CRYPTO=y
+# CONFIG_RT2X00_LIB_DEBUGFS is not set
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_HT=y
+CONFIG_RT2X00_LIB_LEDS=y
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT61PCI=m
+CONFIG_RT73USB=m
+# CONFIG_RTAS_FLASH is not set
+CONFIG_RTAS_PROC=y
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_DRV_AB3100=m
+CONFIG_RTC_DRV_AB8500=m
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_EFI=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_GENERIC=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_MAX8925=m
+CONFIG_RTC_DRV_MC13783=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_PCAP=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_STARFIRE=y
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_SUN4V=y
+CONFIG_RTC_DRV_TWL4030=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_WM8350=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_LIB=y
+# CONFIG_RTL8180 is not set
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+# CONFIG_RTL8192E is not set
+# CONFIG_RTL8192SU is not set
+CONFIG_RTL8192U=m
+CONFIG_RT_MUTEXES=y
+# CONFIG_RT_MUTEX_TESTER is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_RXKAD=m
+CONFIG_S2IO=m
+# CONFIG_SAMPLES is not set
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PMP=y
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIL24=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SX4=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+CONFIG_SBE_PMCC4_NCOMM=y
+CONFIG_SBUS=y
+CONFIG_SBUSCHAR=y
+CONFIG_SC92031=m
+# CONFIG_SCANLOG is not set
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_SCHED_SMT=y
+# CONFIG_SCHED_TRACER is not set
+CONFIG_SCSI=y
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_AIC79XX=m
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC94XX=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ARCMSR_AER=y
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DH=m
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_FC_TGT_ATTRS=y
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_HPTIOP=m
+# CONFIG_SCSI_IBMVFC is not set
+# CONFIG_SCSI_IBMVSCSI is not set
+# CONFIG_SCSI_IBMVSCSIS is not set
+CONFIG_SCSI_IMM=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_INITIO=m
+# CONFIG_SCSI_IPR_DUMP is not set
+# CONFIG_SCSI_IPR_TRACE is not set
+CONFIG_SCSI_ISCSITARGET=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_SCSI_LPFC=m
+CONFIG_SCSI_MAC53C94=m
+CONFIG_SCSI_MESH=m
+CONFIG_SCSI_MESH_RESET_DELAY_MS=4000
+CONFIG_SCSI_MESH_SYNC_RATE=5
+CONFIG_SCSI_MOD=y
+CONFIG_SCSI_MPT2SAS=m
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+CONFIG_SCSI_MULTI_LUN=y
+# CONFIG_SCSI_MVSAS is not set
+CONFIG_SCSI_NETLINK=y
+CONFIG_SCSI_NSP32=m
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_SCSI_OSD_DPRINT_SENSE=1
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_PROC_FS=y
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_QLOGICPTI=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SAS_LIBSAS=m
+# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
+CONFIG_SCSI_SCAN_ASYNC=y
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SUNESP=m
+CONFIG_SCSI_SYM53C8XX_2=m
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_WAIT_SCAN=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+CONFIG_SCTP_HMAC_MD5=y
+# CONFIG_SCTP_HMAC_NONE is not set
+# CONFIG_SCTP_HMAC_SHA1 is not set
+CONFIG_SDIO_UART=m
+CONFIG_SECCOMP=y
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
+CONFIG_SECURITY_APPARMOR_COMPAT_24=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
+CONFIG_SECURITY_SMACK=y
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM9240=m
+# CONFIG_SENSORS_ADS7828 is not set
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_AMS=m
+CONFIG_SENSORS_AMS_I2C=y
+CONFIG_SENSORS_AMS_PMU=y
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_SENSORS_LIS3_SPI=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_MC13783_ADC=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_ULTRA45=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+# CONFIG_SENSORS_W83L786NG is not set
+CONFIG_SENSORS_WM831X=m
+CONFIG_SENSORS_WM8350=m
+CONFIG_SERIAL_8250=m
+CONFIG_SERIAL_8250_CS=m
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_PCI=m
+CONFIG_SERIAL_8250_PNP=m
+CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
+# CONFIG_SERIAL_ICOM is not set
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_SERIAL_OF_PLATFORM=m
+CONFIG_SERIAL_PMACZILOG=m
+# CONFIG_SERIAL_PMACZILOG_TTYS is not set
+# CONFIG_SERIAL_SGI_IOC3 is not set
+# CONFIG_SERIAL_SGI_IOC4 is not set
+# CONFIG_SERIAL_SGI_L1_CONSOLE is not set
+CONFIG_SERIAL_SUNCORE=y
+CONFIG_SERIAL_SUNHV=y
+CONFIG_SERIAL_SUNSAB=y
+CONFIG_SERIAL_SUNSAB_CONSOLE=y
+CONFIG_SERIAL_SUNSU=y
+CONFIG_SERIAL_SUNSU_CONSOLE=y
+CONFIG_SERIAL_SUNZILOG=y
+CONFIG_SERIAL_SUNZILOG_CONSOLE=y
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIAL_UARTLITE=m
+CONFIG_SERIO=y
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_XILINX_XPS_PS2=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_SGI_IOC3=m
+CONFIG_SGI_IOC4=m
+CONFIG_SGI_SN=y
+# CONFIG_SGI_SNSC is not set
+# CONFIG_SGI_TIOCX is not set
+CONFIG_SGI_XP=m
+CONFIG_SHMEM=y
+CONFIG_SIGMATEL_FIR=m
+CONFIG_SIGNALFD=y
+CONFIG_SIMPLE_GPIO=y
+CONFIG_SIS190=m
+CONFIG_SIS900=m
+CONFIG_SKFP=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+# CONFIG_SLAB is not set
+CONFIG_SLABINFO=y
+CONFIG_SLHC=m
+CONFIG_SLIP=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_SMART=y
+# CONFIG_SLOB is not set
+CONFIG_SLOW_WORK=y
+# CONFIG_SLOW_WORK_DEBUG is not set
+CONFIG_SLUB=y
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_SMSC9420=m
+CONFIG_SMSC_PHY=m
+CONFIG_SMS_SDIO_DRV=m
+CONFIG_SMS_SIANO_MDTV=m
+CONFIG_SMS_USB_DRV=m
+# CONFIG_SM_FTL is not set
+CONFIG_SND=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_AD1889=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_AOA=m
+CONFIG_SND_AOA_FABRIC_LAYOUT=m
+CONFIG_SND_AOA_ONYX=m
+CONFIG_SND_AOA_SOUNDBUS=m
+CONFIG_SND_AOA_SOUNDBUS_I2S=m
+CONFIG_SND_AOA_TAS=m
+CONFIG_SND_AOA_TOONIE=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+CONFIG_SND_BT87X_OVERCLOCK=y
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_DARLA24=m
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_DUMMY=m
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_EMU10K1_SEQ=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_GINA20=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_ATIHDMI=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_INTELHDMI=y
+CONFIG_SND_HDA_CODEC_NVHDMI=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_ELD=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=0
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+# CONFIG_SND_HIFIER is not set
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_JACK=y
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MIA=m
+CONFIG_SND_MIXART=m
+# CONFIG_SND_MIXER_OSS is not set
+CONFIG_SND_MONA=m
+CONFIG_SND_MPU401=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_NM256=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+# CONFIG_SND_OPL4_LIB_SEQ is not set
+# CONFIG_SND_OXYGEN is not set
+CONFIG_SND_PCI=y
+CONFIG_SND_PCM=m
+CONFIG_SND_PCMCIA=y
+# CONFIG_SND_PCM_OSS is not set
+CONFIG_SND_PCXHR=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_POWERMAC=m
+CONFIG_SND_POWERMAC_AUTO_DRC=y
+CONFIG_SND_PPC=y
+CONFIG_SND_PS3=m
+CONFIG_SND_PS3_DEFAULT_START_DELAY=2000
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SB16_DSP=m
+# CONFIG_SND_SBAWE_SEQ is not set
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SEQUENCER=m
+# CONFIG_SND_SEQUENCER_OSS is not set
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_AD1836=m
+CONFIG_SND_SOC_AD193X=m
+CONFIG_SND_SOC_AD73311=m
+CONFIG_SND_SOC_ADS117X=m
+CONFIG_SND_SOC_AK4104=m
+CONFIG_SND_SOC_AK4535=m
+CONFIG_SND_SOC_AK4642=m
+CONFIG_SND_SOC_AK4671=m
+CONFIG_SND_SOC_ALL_CODECS=m
+CONFIG_SND_SOC_CS4270=m
+CONFIG_SND_SOC_DA7210=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC_L3=m
+CONFIG_SND_SOC_MAX9877=m
+CONFIG_SND_SOC_PCM3008=m
+CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_SSM2602=m
+CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC26=m
+CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_TLV320DAC33=m
+CONFIG_SND_SOC_TPA6130A2=m
+CONFIG_SND_SOC_TWL4030=m
+CONFIG_SND_SOC_TWL6040=m
+CONFIG_SND_SOC_UDA134X=m
+CONFIG_SND_SOC_UDA1380=m
+CONFIG_SND_SOC_WM2000=m
+CONFIG_SND_SOC_WM8350=m
+CONFIG_SND_SOC_WM8400=m
+CONFIG_SND_SOC_WM8510=m
+CONFIG_SND_SOC_WM8523=m
+CONFIG_SND_SOC_WM8580=m
+CONFIG_SND_SOC_WM8711=m
+CONFIG_SND_SOC_WM8727=m
+CONFIG_SND_SOC_WM8728=m
+CONFIG_SND_SOC_WM8731=m
+CONFIG_SND_SOC_WM8750=m
+CONFIG_SND_SOC_WM8753=m
+CONFIG_SND_SOC_WM8776=m
+CONFIG_SND_SOC_WM8900=m
+CONFIG_SND_SOC_WM8903=m
+CONFIG_SND_SOC_WM8904=m
+CONFIG_SND_SOC_WM8940=m
+CONFIG_SND_SOC_WM8955=m
+CONFIG_SND_SOC_WM8960=m
+CONFIG_SND_SOC_WM8961=m
+CONFIG_SND_SOC_WM8971=m
+CONFIG_SND_SOC_WM8974=m
+CONFIG_SND_SOC_WM8978=m
+CONFIG_SND_SOC_WM8988=m
+CONFIG_SND_SOC_WM8990=m
+CONFIG_SND_SOC_WM8993=m
+CONFIG_SND_SOC_WM8994=m
+CONFIG_SND_SOC_WM9081=m
+CONFIG_SND_SOC_WM9090=m
+CONFIG_SND_SOC_WM_HUBS=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_SPARC=y
+CONFIG_SND_SPI=y
+CONFIG_SND_SUN_AMD7930=m
+CONFIG_SND_SUN_CS4231=m
+CONFIG_SND_SUN_DBRI=m
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_TIMER=m
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+# CONFIG_SND_USB_UA101 is not set
+CONFIG_SND_USB_USX2Y=m
+# CONFIG_SND_VERBOSE_PRINTK is not set
+CONFIG_SND_VERBOSE_PROCFS=y
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRMIDI=m
+# CONFIG_SND_VIRTUOSO is not set
+CONFIG_SND_VMASTER=y
+CONFIG_SND_VX222=m
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_SOUND=m
+# CONFIG_SOUND_OSS_CORE is not set
+# CONFIG_SOUND_PRIME is not set
+CONFIG_SPARC=y
+# CONFIG_SPARC32 is not set
+CONFIG_SPARC64=y
+# CONFIG_SPARC64_PAGE_SIZE_64KB is not set
+CONFIG_SPARC64_PAGE_SIZE_8KB=y
+CONFIG_SPARC64_PCI=y
+CONFIG_SPARC64_SMP=y
+CONFIG_SPARSEMEM=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_SPI=y
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+# CONFIG_SPI_DEBUG is not set
+CONFIG_SPI_DESIGNWARE=y
+CONFIG_SPI_DW_PCI=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_SPIDEV=m
+CONFIG_SPI_TLE62X0=m
+# CONFIG_SPI_XILINX is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_SPU_BASE=y
+CONFIG_SPU_FS=m
+CONFIG_SPU_FS_64K_LS=y
+CONFIG_SQUASHFS=m
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+CONFIG_SQUASHFS_XATTRS=y
+CONFIG_SR_REPORT_TIME_LIMIT=100
+CONFIG_SSB=m
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_SSB_BLOCKIO=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+# CONFIG_SSB_PCMCIAHOST is not set
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SPROM=y
+CONFIG_SSFDC=m
+CONFIG_STACKTRACE=y
+CONFIG_STACKTRACE_SUPPORT=y
+# CONFIG_STACK_TRACER is not set
+CONFIG_STAGING=y
+CONFIG_STALDRV=y
+CONFIG_STALLION=m
+CONFIG_STANDALONE=y
+CONFIG_STE10XP=m
+CONFIG_STOP_MACHINE=y
+CONFIG_STP=m
+# CONFIG_STRIP_ASM_SYMS is not set
+CONFIG_ST_BT=m
+CONFIG_SUNBMAC=m
+CONFIG_SUNDANCE=m
+CONFIG_SUNLANCE=m
+CONFIG_SUNQE=m
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_SUNRPC_XPRT_RDMA=m
+CONFIG_SUNVDC=m
+CONFIG_SUNVNET=m
+CONFIG_SUN_LDOMS=y
+CONFIG_SUN_OPENPROMFS=m
+CONFIG_SUN_OPENPROMIO=y
+CONFIG_SUN_PARTITION=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_SWAP=y
+CONFIG_SWIOTLB=y
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_SYNCLINK_CS=m
+CONFIG_SYNCLINK_GT=m
+CONFIG_SYN_COOKIES=y
+CONFIG_SYSCTL=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+CONFIG_SYSFS=y
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+CONFIG_SYSV68_PARTITION=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_SYSV_FS=m
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_SYS_SUPPORTS_HUGETLBFS=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TADPOLE_TS102_UCTRL=m
+CONFIG_TASKSTATS=y
+# CONFIG_TASK_DELAY_ACCT is not set
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_TASK_SIZE=0xc0000000
+CONFIG_TASK_XACCT=y
+CONFIG_TAU=y
+# CONFIG_TAU_AVERAGE is not set
+# CONFIG_TAU_INT is not set
+CONFIG_TCG_ATMEL=m
+# CONFIG_TCG_INFINEON is not set
+CONFIG_TCG_NSC=m
+# CONFIG_TCG_TIS is not set
+CONFIG_TCG_TPM=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_MD5SIG=y
+CONFIG_TEHUTI=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TEST_POWER=m
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_THERMAL_HWMON=y
+CONFIG_THERM_ADT746X=m
+CONFIG_THERM_WINDTUNNEL=m
+CONFIG_THRUSTMASTER_FF=y
+CONFIG_TICK_ONESHOT=y
+CONFIG_TIFM_7XX1=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIGON3=m
+CONFIG_TIMB_DMA=m
+CONFIG_TIMERFD=y
+CONFIG_TIMER_STATS=y
+# CONFIG_TINY_RCU is not set
+CONFIG_TIPC=m
+# CONFIG_TIPC_ADVANCED is not set
+# CONFIG_TIPC_DEBUG is not set
+CONFIG_TI_DAC7512=m
+CONFIG_TI_ST=m
+CONFIG_TLAN=m
+# CONFIG_TMD_HERMES is not set
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMS380TR=m
+CONFIG_TMSPCI=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_TOSHIBA_FIR=m
+CONFIG_TOUCHSCREEN_88PM860X=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_DA9034=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_MC13783=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_PCAP=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC5UH=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_WM9705=y
+CONFIG_TOUCHSCREEN_WM9712=y
+CONFIG_TOUCHSCREEN_WM9713=y
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TPS6507X=m
+CONFIG_TRACEPOINTS=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_TRACING=y
+CONFIG_TRACING_SUPPORT=y
+# CONFIG_TRANZPORT is not set
+# CONFIG_TREE_PREEMPT_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_TTPCI_EEPROM=m
+CONFIG_TULIP=m
+CONFIG_TULIP_DM910X=y
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_MWI is not set
+CONFIG_TULIP_NAPI_HW_MITIGATION=y
+CONFIG_TUN=y
+# CONFIG_TUNE_CELL is not set
+CONFIG_TWL4030_CODEC=y
+CONFIG_TWL4030_CORE=y
+CONFIG_TWL4030_USB=m
+CONFIG_TWL4030_WATCHDOG=m
+CONFIG_TYPHOON=m
+CONFIG_U3_DART=y
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+# CONFIG_UBIFS_FS_DEBUG is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_XATTR=y
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_UCB1400_CORE=m
+CONFIG_UDBG_RTAS_CONSOLE=y
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+CONFIG_UEVENT_HELPER_PATH=""
+# CONFIG_UFS_DEBUG is not set
+# CONFIG_UFS_FS_WRITE is not set
+CONFIG_UID16=y
+CONFIG_UIO=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_NETX=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_ULI526X=m
+CONFIG_UNIX=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_US3_MC=m
+CONFIG_USB=y
+CONFIG_USBPCWATCHDOG=m
+CONFIG_USB_ACM=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_ATM=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_BELKIN=y
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_CATC=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+# CONFIG_USB_DABUSB is not set
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DSBR=m
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_EHCI_BIG_ENDIAN_DESC=y
+CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
+CONFIG_USB_EHCI_HCD_PPC_OF=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_EMI26=m
+CONFIG_USB_EMI62=m
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_ET61X251=m
+CONFIG_USB_ETH=m
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_EZUSB=y
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_GADGETFS=m
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+# CONFIG_USB_GADGET_DUMMY_HCD is not set
+# CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_IMX is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
+CONFIG_USB_GADGET_SELECTED=y
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GL860=m
+CONFIG_USB_GOKU=m
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_USB_GSPCA=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_USB_G_HID=m
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_G_NOKIA=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_G_WEBCAM=m
+CONFIG_USB_HID=m
+CONFIG_USB_HSO=m
+CONFIG_USB_HWA_HCD=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_IPHETH=m
+# CONFIG_USB_IP_COMMON is not set
+CONFIG_USB_IRDA=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_KC2190=y
+CONFIG_USB_LCD=m
+CONFIG_USB_LD=m
+CONFIG_USB_LED=m
+CONFIG_USB_LEGOTOWER=m
+# CONFIG_USB_LIBUSUAL is not set
+CONFIG_USB_M5602=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_MR800=m
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_RNDIS_HOST=m
+# CONFIG_USB_NET_RNDIS_WLAN is not set
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+# CONFIG_USB_NET_ZAURUS is not set
+CONFIG_USB_OHCI_HCD_PCI=y
+CONFIG_USB_OHCI_HCD_PPC_OF=y
+CONFIG_USB_OHCI_HCD_PPC_OF_BE=y
+# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set
+# CONFIG_USB_OHCI_HCD_SSB is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_OTG_UTILS=y
+# CONFIG_USB_OV511 is not set
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_PRINTER=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_S2255=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_DEBUG=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+# CONFIG_USB_SERIAL_QUATECH2 is not set
+# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SEVSEG=m
+# CONFIG_USB_SI470X is not set
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_SPEEDTOUCH=m
+# CONFIG_USB_STKWEBCAM is not set
+CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_DATAFAB=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_SUSPEND=y
+CONFIG_USB_TEST=m
+CONFIG_USB_TMC=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_USBNET=m
+CONFIG_USB_USS720=m
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_W9968CF=m
+CONFIG_USB_WDM=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_ZC0301=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_ZERO=m
+CONFIG_USB_ZR364XX=m
+# CONFIG_USER_NS is not set
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+# CONFIG_UTS_NS is not set
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_I1480U=m
+CONFIG_UWB_I1480U_WLP=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_WLP=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_VERSION_SIGNATURE=""
+CONFIG_VETH=m
+CONFIG_VFAT_FS=m
+CONFIG_VGASTATE=m
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_VHOST_NET=m
+CONFIG_VIA_FIR=m
+CONFIG_VIA_RHINE=m
+CONFIG_VIA_RHINE_MMIO=y
+CONFIG_VIA_VELOCITY=m
+CONFIG_VIDEOBUF_DMA_CONTIG=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_VMALLOC=m
+CONFIG_VIDEO_ADV7180=m
+CONFIG_VIDEO_ADV7343=m
+# CONFIG_VIDEO_ADV_DEBUG is not set
+CONFIG_VIDEO_AK881X=m
+CONFIG_VIDEO_ALLOW_V4L1=y
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+CONFIG_VIDEO_CPIA_PP=m
+CONFIG_VIDEO_CPIA_USB=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_CX2341X=m
+CONFIG_VIDEO_CX23885=m
+# CONFIG_VIDEO_CX25821 is not set
+CONFIG_VIDEO_CX25840=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_DT3155=m
+# CONFIG_VIDEO_EM28XX_ALSA is not set
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_FB_IVTV=m
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+# CONFIG_VIDEO_GO7007 is not set
+CONFIG_VIDEO_HDPVR=m
+# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_IR=m
+CONFIG_VIDEO_IR_I2C=m
+CONFIG_VIDEO_MEDIA=m
+CONFIG_VIDEO_MEM2MEM_TESTDEV=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_MT9V011=m
+# CONFIG_VIDEO_MXB is not set
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_PVRUSB2=m
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_PVRUSB2_DVB=y
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_SAA5246A=m
+CONFIG_VIDEO_SAA6588=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_SAA717X=m
+CONFIG_VIDEO_STRADIS=m
+CONFIG_VIDEO_TCM825X=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_THS7303=m
+CONFIG_VIDEO_TLG2300=m
+CONFIG_VIDEO_TLV320AIC23B=m
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=y
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_TVEEPROM=m
+CONFIG_VIDEO_TVP514X=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+CONFIG_VIDEO_USBVIDEO=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_VIDEO_V4L1=m
+CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_VP27SMPX=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+# CONFIG_VIRQ_DEBUG is not set
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_BLK=m
+CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTIO_NET=m
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_RING=m
+CONFIG_VIRTUAL_MEM_MAP=y
+CONFIG_VIRT_CPU_ACCOUNTING=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_VITESSE_PHY=m
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLSI_FIR=m
+# CONFIG_VME_BUS is not set
+CONFIG_VMXNET3=m
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_VORTEX=m
+# CONFIG_VSX is not set
+CONFIG_VT=y
+# CONFIG_VT6655 is not set
+# CONFIG_VT6656 is not set
+CONFIG_VT_CONSOLE=y
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_VXFS_FS=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_W1=m
+CONFIG_W1_CON=y
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_GPIO=m
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_THERM=m
+# CONFIG_W35UND is not set
+CONFIG_WANXL=m
+CONFIG_WAN_ROUTER_DRIVERS=m
+CONFIG_WATCHDOG=y
+CONFIG_WATCHDOG_CP1XXX=m
+CONFIG_WATCHDOG_RIO=m
+CONFIG_WATCHDOG_RTAS=m
+CONFIG_WDTPCI=m
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PRIV=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+CONFIG_WIMAX_I2400M_SDIO=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WIMAX_IWMC3200_SDIO=y
+CONFIG_WINBOND_840=m
+CONFIG_WINBOND_FIR=m
+CONFIG_WINDFARM=m
+CONFIG_WINDFARM_PM112=m
+CONFIG_WINDFARM_PM121=m
+CONFIG_WINDFARM_PM81=m
+CONFIG_WINDFARM_PM91=m
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_WL1251=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1271=m
+CONFIG_WL1271_SPI=m
+CONFIG_WL12XX=m
+CONFIG_WLAGS49_H2=m
+CONFIG_WLAGS49_H25=m
+CONFIG_WLAN=y
+CONFIG_WM831X_BACKUP=m
+CONFIG_WM831X_POWER=m
+CONFIG_WM831X_WATCHDOG=m
+CONFIG_WM8350_POWER=m
+CONFIG_WM8350_WATCHDOG=m
+# CONFIG_WORKQUEUE_TRACER is not set
+CONFIG_X25_ASY=m
+# CONFIG_XEN is not set
+CONFIG_XFRM=y
+CONFIG_XFRM_IPCOMP=m
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+CONFIG_XFRM_USER=m
+# CONFIG_XFS_DEBUG is not set
+CONFIG_XFS_FS=m
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_RT=y
+CONFIG_XICS=y
+CONFIG_XILINX_EMACLITE=m
+CONFIG_XILINX_LL_TEMAC=m
+# CONFIG_XMON is not set
+CONFIG_XOR_BLOCKS=m
+CONFIG_XPS_USB_HCD_XILINX=y
+CONFIG_YAM=m
+CONFIG_YELLOWFIN=m
+CONFIG_YENTA=m
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_ZEROPLUS_FF=y
+CONFIG_ZISOFS=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZONE_DMA=y
diff --git a/debian.master/config/config.common.ubuntu b/debian.master/config/config.common.ubuntu
new file mode 100644
index 00000000000..1b46e3cb4ee
--- /dev/null
+++ b/debian.master/config/config.common.ubuntu
@@ -0,0 +1,5051 @@
+#
+# Common config options automatically generated by splitconfig.pl
+#
+CONFIG_3C359=m
+CONFIG_3C515=m
+# CONFIG_4KSTACKS is not set
+CONFIG_60XX_WDT=m
+CONFIG_6PACK=m
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+CONFIG_8139TOO_8129=y
+CONFIG_8139TOO_PIO=y
+# CONFIG_8139TOO_TUNE_TWISTER is not set
+# CONFIG_8139_OLD_RX_RESET is not set
+CONFIG_9P_FS=m
+# CONFIG_9P_FSCACHE is not set
+CONFIG_AB3100_CORE=y
+CONFIG_AB3100_OTP=m
+CONFIG_AB3550_CORE=y
+CONFIG_AB8500_CORE=y
+CONFIG_ABX500_CORE=y
+CONFIG_ABYSS=m
+CONFIG_AC3200=m
+CONFIG_AC97_BUS=m
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_ACENIC=m
+# CONFIG_ACENIC_OMIT_TIGON_I is not set
+CONFIG_ACERHDF=m
+CONFIG_ACER_WMI=m
+CONFIG_ACORN_PARTITION=y
+# CONFIG_ACORN_PARTITION_ADFS is not set
+# CONFIG_ACORN_PARTITION_CUMANA is not set
+# CONFIG_ACORN_PARTITION_EESOX is not set
+CONFIG_ACORN_PARTITION_ICS=y
+# CONFIG_ACORN_PARTITION_POWERTEC is not set
+CONFIG_ACORN_PARTITION_RISCIX=y
+CONFIG_ACPI=y
+CONFIG_ACPI_AC=y
+CONFIG_ACPI_APEI=y
+CONFIG_ACPI_APEI_EINJ=m
+CONFIG_ACPI_APEI_GHES=m
+# CONFIG_ACPI_ASUS is not set
+CONFIG_ACPI_BATTERY=y
+CONFIG_ACPI_BUTTON=y
+CONFIG_ACPI_CMPC=m
+CONFIG_ACPI_CONTAINER=y
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_CUSTOM_DSDT_FILE=""
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_FAN=y
+CONFIG_ACPI_HED=m
+CONFIG_ACPI_HOTPLUG_CPU=y
+CONFIG_ACPI_HOTPLUG_MEMORY=m
+CONFIG_ACPI_NUMA=y
+CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_POWER_METER=m
+CONFIG_ACPI_PROCESSOR=y
+CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
+CONFIG_ACPI_PROCFS=y
+CONFIG_ACPI_PROCFS_POWER=y
+CONFIG_ACPI_PROC_EVENT=y
+CONFIG_ACPI_SBS=y
+CONFIG_ACPI_SLEEP=y
+CONFIG_ACPI_SYSFS_POWER=y
+CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_TOSHIBA=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_WMI=y
+CONFIG_ACQUIRE_WDT=m
+CONFIG_ACT200L_DONGLE=m
+CONFIG_ACTISYS_DONGLE=m
+CONFIG_AD525X_DPOT=m
+CONFIG_AD525X_DPOT_I2C=m
+CONFIG_AD525X_DPOT_SPI=m
+CONFIG_ADAPTEC_STARFIRE=m
+CONFIG_ADFS_FS=m
+# CONFIG_ADFS_FS_RW is not set
+CONFIG_ADIS16209=m
+CONFIG_ADIS16220=m
+CONFIG_ADIS16240=m
+CONFIG_ADIS16255=m
+CONFIG_ADIS16260=m
+CONFIG_ADIS16300=m
+CONFIG_ADIS16350=m
+CONFIG_ADIS16400=m
+CONFIG_ADM8211=m
+CONFIG_ADVANTECH_WDT=m
+CONFIG_AEABI=y
+CONFIG_AFFS_FS=m
+# CONFIG_AFS_DEBUG is not set
+CONFIG_AFS_FS=m
+# CONFIG_AFS_FSCACHE is not set
+CONFIG_AF_RXRPC=m
+# CONFIG_AF_RXRPC_DEBUG is not set
+CONFIG_AGP_ALI=m
+CONFIG_AGP_AMD=m
+CONFIG_AGP_ATI=m
+CONFIG_AGP_EFFICEON=m
+CONFIG_AGP_INTEL=m
+CONFIG_AGP_NVIDIA=m
+CONFIG_AGP_SIS=m
+CONFIG_AGP_SWORKS=m
+CONFIG_AGP_VIA=m
+CONFIG_AIC79XX_CMDS_PER_DEVICE=32
+CONFIG_AIC79XX_DEBUG_ENABLE=y
+CONFIG_AIC79XX_DEBUG_MASK=0
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+CONFIG_AIC79XX_RESET_DELAY_MS=5000
+CONFIG_AIC7XXX_CMDS_PER_DEVICE=8
+CONFIG_AIC7XXX_DEBUG_ENABLE=y
+CONFIG_AIC7XXX_DEBUG_MASK=0
+CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
+CONFIG_AIC7XXX_RESET_DELAY_MS=15000
+# CONFIG_AIC94XX_DEBUG is not set
+CONFIG_AIO=y
+CONFIG_AIRO=m
+CONFIG_AIRO_CS=m
+CONFIG_ALIGNMENT_TRAP=y
+CONFIG_ALIM1535_WDT=m
+CONFIG_ALIM7101_WDT=m
+CONFIG_ALI_FIR=m
+CONFIG_AMD8111_ETH=m
+CONFIG_AMD_IOMMU=y
+CONFIG_AMD_IOMMU_STATS=y
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ANON_INODES=y
+CONFIG_APB_TIMER=y
+CONFIG_APM=m
+# CONFIG_APM_ALLOW_INTS is not set
+# CONFIG_APM_CPU_IDLE is not set
+# CONFIG_APM_DISPLAY_BLANK is not set
+# CONFIG_APM_DO_ENABLE is not set
+# CONFIG_APM_IGNORE_USER_SUSPEND is not set
+CONFIG_APM_POWER=m
+CONFIG_APPLICOM=m
+CONFIG_APRICOT=m
+CONFIG_AR9170_LEDS=y
+CONFIG_AR9170_USB=m
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_BCMRING is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_CNS3XXX is not set
+# CONFIG_ARCH_DAVINCI is not set
+# CONFIG_ARCH_DOVE is not set
+# CONFIG_ARCH_EBSA110 is not set
+CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
+CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
+# CONFIG_ARCH_EP93XX is not set
+CONFIG_ARCH_FLATMEM_ENABLE=y
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_H720X is not set
+CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
+CONFIG_ARCH_HAS_CPU_RELAX=y
+CONFIG_ARCH_HAS_DEFAULT_IDLE=y
+CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
+CONFIG_ARCH_HIBERNATION_HEADER=y
+CONFIG_ARCH_HIBERNATION_POSSIBLE=y
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_LH7A40X is not set
+# CONFIG_ARCH_LOKI is not set
+CONFIG_ARCH_MAY_HAVE_PC_FDC=y
+CONFIG_ARCH_MEMORY_PROBE=y
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_NUC93X is not set
+# CONFIG_ARCH_OMAP1 is not set
+# CONFIG_ARCH_OMAP2 is not set
+CONFIG_ARCH_OMAP2PLUS=y
+CONFIG_ARCH_OMAP3=y
+CONFIG_ARCH_OMAP3430=y
+# CONFIG_ARCH_OMAP4 is not set
+CONFIG_ARCH_OMAP_OTG=y
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_PNX4008 is not set
+CONFIG_ARCH_POPULATES_NODE_MAP=y
+CONFIG_ARCH_PROC_KCORE_TEXT=y
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_REALVIEW is not set
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_S3C64XX is not set
+# CONFIG_ARCH_S5P6440 is not set
+# CONFIG_ARCH_S5P6442 is not set
+# CONFIG_ARCH_S5PC100 is not set
+# CONFIG_ARCH_S5PV210 is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_SHARK is not set
+# CONFIG_ARCH_SHMOBILE is not set
+CONFIG_ARCH_SPARSEMEM_ENABLE=y
+# CONFIG_ARCH_STMP3XXX is not set
+CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y
+CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y
+CONFIG_ARCH_SUSPEND_POSSIBLE=y
+# CONFIG_ARCH_U300 is not set
+# CONFIG_ARCH_U8500 is not set
+# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
+CONFIG_ARCH_USES_PG_UNCACHED=y
+CONFIG_ARCH_VERSATILE_PB=y
+# CONFIG_ARCH_VEXPRESS is not set
+# CONFIG_ARCH_W90X900 is not set
+CONFIG_ARCH_WANT_FRAME_POINTERS=y
+CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
+CONFIG_ARCNET=m
+CONFIG_ARCNET_1051=m
+CONFIG_ARCNET_1201=m
+CONFIG_ARCNET_CAP=m
+CONFIG_ARCNET_COM20020=m
+CONFIG_ARCNET_COM20020_CS=m
+CONFIG_ARCNET_COM20020_ISA=m
+CONFIG_ARCNET_COM20020_PCI=m
+CONFIG_ARCNET_COM90xx=m
+CONFIG_ARCNET_COM90xxIO=m
+CONFIG_ARCNET_RAW=m
+CONFIG_ARCNET_RIM_I=m
+CONFIG_ARM=y
+CONFIG_ARM_AMBA=y
+CONFIG_ARM_DMA_MEM_BUFFERABLE=y
+# CONFIG_ARM_ERRATA_458693 is not set
+# CONFIG_ARM_ERRATA_460075 is not set
+CONFIG_ARM_L1_CACHE_SHIFT_6=y
+CONFIG_ARM_THUMB=y
+# CONFIG_ARM_THUMBEE is not set
+CONFIG_ARM_TIMER_SP804=y
+CONFIG_ARM_UNWIND=y
+CONFIG_ARM_VIC=y
+CONFIG_ARM_VIC_NR=2
+# CONFIG_ARPD is not set
+CONFIG_ASK_IP_FIB_HASH=y
+CONFIG_ASUS_LAPTOP=m
+CONFIG_ASUS_OLED=m
+CONFIG_ASYNC_CORE=m
+CONFIG_ASYNC_MEMCPY=m
+CONFIG_ASYNC_PQ=m
+CONFIG_ASYNC_RAID6_RECOV=m
+CONFIG_ASYNC_RAID6_TEST=m
+CONFIG_ASYNC_TX_DISABLE_CHANNEL_SWITCH=y
+CONFIG_ASYNC_TX_DISABLE_PQ_VAL_DMA=y
+CONFIG_ASYNC_TX_DISABLE_XOR_VAL_DMA=y
+CONFIG_ASYNC_XOR=m
+CONFIG_AT1700=m
+CONFIG_AT76C50X_USB=m
+CONFIG_ATA=y
+CONFIG_ATAGS_PROC=y
+CONFIG_ATARI_PARTITION=y
+CONFIG_ATA_ACPI=y
+CONFIG_ATA_BMDMA=y
+CONFIG_ATA_GENERIC=y
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_ATA_OVER_ETH=m
+CONFIG_ATA_PIIX=y
+CONFIG_ATA_SFF=y
+CONFIG_ATA_VERBOSE_ERROR=y
+CONFIG_ATH5K=m
+# CONFIG_ATH5K_DEBUG is not set
+CONFIG_ATH9K=m
+CONFIG_ATH9K_COMMON=m
+CONFIG_ATH9K_DEBUGFS=y
+CONFIG_ATH9K_HTC=m
+CONFIG_ATH9K_HTC_DEBUGFS=y
+CONFIG_ATH9K_HW=m
+CONFIG_ATH_COMMON=m
+# CONFIG_ATH_DEBUG is not set
+CONFIG_ATL1=m
+CONFIG_ATL1C=m
+CONFIG_ATL1E=m
+CONFIG_ATL2=m
+CONFIG_ATMEL=m
+CONFIG_ATM_AMBASSADOR=m
+# CONFIG_ATM_AMBASSADOR_DEBUG is not set
+CONFIG_ATM_BR2684=m
+CONFIG_ATM_CLIP=m
+# CONFIG_ATM_CLIP_NO_ICMP is not set
+CONFIG_ATM_DRIVERS=y
+CONFIG_ATM_ENI=m
+# CONFIG_ATM_ENI_DEBUG is not set
+# CONFIG_ATM_ENI_TUNE_BURST is not set
+CONFIG_ATM_FIRESTREAM=m
+CONFIG_ATM_FORE200E=m
+CONFIG_ATM_FORE200E_DEBUG=0
+CONFIG_ATM_FORE200E_TX_RETRY=16
+# CONFIG_ATM_FORE200E_USE_TASKLET is not set
+CONFIG_ATM_HE=m
+CONFIG_ATM_HE_USE_SUNI=y
+CONFIG_ATM_HORIZON=m
+# CONFIG_ATM_HORIZON_DEBUG is not set
+CONFIG_ATM_IA=m
+# CONFIG_ATM_IA_DEBUG is not set
+CONFIG_ATM_IDT77252=m
+# CONFIG_ATM_IDT77252_DEBUG is not set
+# CONFIG_ATM_IDT77252_RCV_ALL is not set
+CONFIG_ATM_IDT77252_USE_SUNI=y
+CONFIG_ATM_LANAI=m
+CONFIG_ATM_LANE=m
+CONFIG_ATM_MPOA=m
+CONFIG_ATM_NICSTAR=m
+# CONFIG_ATM_NICSTAR_USE_IDT77105 is not set
+# CONFIG_ATM_NICSTAR_USE_SUNI is not set
+CONFIG_ATM_SOLOS=m
+CONFIG_ATM_TCP=m
+CONFIG_ATM_ZATM=m
+# CONFIG_ATM_ZATM_DEBUG is not set
+# CONFIG_ATOMIC64_SELFTEST is not set
+CONFIG_ATP=m
+CONFIG_AUDIT=y
+CONFIG_AUDITSYSCALL=y
+CONFIG_AUDIT_GENERIC=y
+CONFIG_AUDIT_TREE=y
+CONFIG_AUFS_BDEV_LOOP=y
+# CONFIG_AUFS_BRANCH_MAX_1023 is not set
+CONFIG_AUFS_BRANCH_MAX_127=y
+# CONFIG_AUFS_BRANCH_MAX_32767 is not set
+# CONFIG_AUFS_BRANCH_MAX_511 is not set
+CONFIG_AUFS_BR_FUSE=y
+CONFIG_AUFS_BR_HFSPLUS=y
+CONFIG_AUFS_BR_RAMFS=y
+# CONFIG_AUFS_DEBUG is not set
+# CONFIG_AUFS_EXPORT is not set
+CONFIG_AUFS_FS=m
+# CONFIG_AUFS_HNOTIFY is not set
+CONFIG_AUFS_POLL=y
+# CONFIG_AUFS_RDU is not set
+# CONFIG_AUFS_SHWH is not set
+# CONFIG_AUFS_SP_IATTR is not set
+CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
+CONFIG_AUXDISPLAY=y
+CONFIG_AVERATEC_5100P=m
+CONFIG_AX25=m
+CONFIG_AX25_DAMA_SLAVE=y
+CONFIG_AX88796=m
+# CONFIG_AX88796_93CX6 is not set
+CONFIG_B43LEGACY_DEBUG=y
+CONFIG_B43LEGACY_DMA=y
+CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
+# CONFIG_B43LEGACY_DMA_MODE is not set
+CONFIG_B43LEGACY_HWRNG=y
+CONFIG_B43LEGACY_LEDS=y
+CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
+CONFIG_B43LEGACY_PCI_AUTOSELECT=y
+CONFIG_B43LEGACY_PIO=y
+# CONFIG_B43LEGACY_PIO_MODE is not set
+# CONFIG_B43_DEBUG is not set
+CONFIG_B43_HWRNG=y
+CONFIG_B43_LEDS=y
+CONFIG_B43_PCICORE_AUTOSELECT=y
+CONFIG_B43_PCI_AUTOSELECT=y
+# CONFIG_B43_PCMCIA is not set
+CONFIG_B43_PHY_LP=y
+CONFIG_B43_PIO=y
+# CONFIG_B43_SDIO is not set
+CONFIG_B44_PCI=y
+CONFIG_B44_PCICORE_AUTOSELECT=y
+CONFIG_B44_PCI_AUTOSELECT=y
+CONFIG_BACKLIGHT_88PM860X=m
+CONFIG_BACKLIGHT_ADP5520=m
+CONFIG_BACKLIGHT_ADP8860=m
+CONFIG_BACKLIGHT_CARILLO_RANCH=m
+CONFIG_BACKLIGHT_CLASS_DEVICE=y
+CONFIG_BACKLIGHT_DA903X=m
+CONFIG_BACKLIGHT_GENERIC=m
+CONFIG_BACKLIGHT_LCD_SUPPORT=y
+CONFIG_BACKLIGHT_MAX8925=m
+CONFIG_BACKLIGHT_MBP_NVIDIA=m
+CONFIG_BACKLIGHT_PCF50633=m
+CONFIG_BACKLIGHT_PROGEAR=m
+CONFIG_BACKLIGHT_SAHARA=m
+CONFIG_BACKLIGHT_WM831X=m
+# CONFIG_BACKTRACE_SELF_TEST is not set
+CONFIG_BASE_FULL=y
+CONFIG_BASE_SMALL=0
+CONFIG_BATMAN_ADV=m
+# CONFIG_BATMAN_ADV_DEBUG is not set
+CONFIG_BATTERY_BQ27x00=m
+CONFIG_BATTERY_DA9030=m
+CONFIG_BATTERY_DS2760=m
+CONFIG_BATTERY_DS2782=m
+CONFIG_BATTERY_MAX17040=m
+CONFIG_BATTERY_OLPC=m
+CONFIG_BAYCOM_EPP=m
+CONFIG_BAYCOM_PAR=m
+CONFIG_BAYCOM_SER_FDX=m
+CONFIG_BAYCOM_SER_HDX=m
+CONFIG_BE2ISCSI=m
+CONFIG_BE2NET=m
+# CONFIG_BEFS_DEBUG is not set
+CONFIG_BEFS_FS=m
+CONFIG_BFS_FS=m
+CONFIG_BINARY_PRINTF=y
+CONFIG_BINFMT_AOUT=m
+CONFIG_BINFMT_ELF=y
+CONFIG_BINFMT_MISC=m
+CONFIG_BITREVERSE=y
+# CONFIG_BLK_CGROUP is not set
+CONFIG_BLK_CPQ_CISS_DA=m
+CONFIG_BLK_CPQ_DA=m
+CONFIG_BLK_DEV=y
+CONFIG_BLK_DEV_3W_XXXX_RAID=m
+CONFIG_BLK_DEV_BSG=y
+CONFIG_BLK_DEV_COMPCACHE=m
+# CONFIG_BLK_DEV_COMPCACHE_DEBUG is not set
+# CONFIG_BLK_DEV_COMPCACHE_STATS is not set
+# CONFIG_BLK_DEV_COW_COMMON is not set
+CONFIG_BLK_DEV_CRYPTOLOOP=m
+CONFIG_BLK_DEV_DAC960=m
+CONFIG_BLK_DEV_DM=y
+# CONFIG_BLK_DEV_DRBD is not set
+CONFIG_BLK_DEV_FD=m
+# CONFIG_BLK_DEV_HD is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_BLK_DEV_INTEGRITY=y
+CONFIG_BLK_DEV_IO_TRACE=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_MD=y
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_OSD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_COUNT=16
+CONFIG_BLK_DEV_RAM_SIZE=65536
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_DEV_SR=y
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_BLK_DEV_SX8=m
+# CONFIG_BLK_DEV_UB is not set
+CONFIG_BLK_DEV_UMEM=m
+# CONFIG_BLK_DEV_XD is not set
+# CONFIG_BLK_DEV_XIP is not set
+CONFIG_BLOCK=y
+CONFIG_BLOCK_COMPAT=y
+CONFIG_BNX2=m
+CONFIG_BNX2X=m
+CONFIG_BONDING=m
+# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
+CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
+# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set
+CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
+# CONFIG_BOOT_PRINTK_DELAY is not set
+# CONFIG_BOOT_TRACER is not set
+CONFIG_BOUNCE=y
+CONFIG_BPQETHER=m
+CONFIG_BRANCH_PROFILE_NONE=y
+CONFIG_BRIDGE=m
+CONFIG_BRIDGE_EBT_802_3=m
+CONFIG_BRIDGE_EBT_AMONG=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_ARPREPLY=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_DNAT=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BRIDGE_EBT_LIMIT=m
+CONFIG_BRIDGE_EBT_LOG=m
+CONFIG_BRIDGE_EBT_MARK=m
+CONFIG_BRIDGE_EBT_MARK_T=m
+CONFIG_BRIDGE_EBT_NFLOG=m
+CONFIG_BRIDGE_EBT_PKTTYPE=m
+CONFIG_BRIDGE_EBT_REDIRECT=m
+CONFIG_BRIDGE_EBT_SNAT=m
+CONFIG_BRIDGE_EBT_STP=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_ULOG=m
+CONFIG_BRIDGE_EBT_VLAN=m
+CONFIG_BRIDGE_IGMP_SNOOPING=y
+CONFIG_BRIDGE_NETFILTER=y
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BROADCOM_PHY=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_BTRFS_FS=m
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_BT_ATH3K=m
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_CMTP=m
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBTSDIO=m
+CONFIG_BT_HCIBTUART=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_H4=y
+CONFIG_BT_HCIUART_LL=y
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_HIDP=m
+CONFIG_BT_L2CAP=m
+# CONFIG_BT_L2CAP_EXT_FEATURES is not set
+CONFIG_BT_MRVL=m
+CONFIG_BT_MRVL_SDIO=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_SCO=m
+CONFIG_BUG=y
+CONFIG_C101=m
+CONFIG_C2PORT=m
+CONFIG_C2PORT_DURAMAR_2150=m
+CONFIG_CACHEFILES=m
+# CONFIG_CACHEFILES_DEBUG is not set
+# CONFIG_CACHEFILES_HISTOGRAM is not set
+CONFIG_CAIF=m
+# CONFIG_CAIF_DEBUG is not set
+CONFIG_CAIF_NETDEV=m
+CONFIG_CAIF_TTY=m
+CONFIG_CALGARY_IOMMU=y
+CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y
+CONFIG_CAN=m
+CONFIG_CAN_BCM=m
+# CONFIG_CAN_CALC_BITTIMING is not set
+# CONFIG_CAN_DEBUG_DEVICES is not set
+CONFIG_CAN_DEV=m
+CONFIG_CAN_EMS_PCI=m
+CONFIG_CAN_EMS_USB=m
+CONFIG_CAN_JANZ_ICAN3=m
+CONFIG_CAN_KVASER_PCI=m
+CONFIG_CAN_MCP251X=m
+CONFIG_CAN_PLX_PCI=m
+CONFIG_CAN_PM_TRACE=y
+CONFIG_CAN_RAW=m
+CONFIG_CAN_SJA1000=m
+CONFIG_CAN_SJA1000_ISA=m
+CONFIG_CAN_SJA1000_PLATFORM=m
+# CONFIG_CAN_TI_HECC is not set
+CONFIG_CAN_VCAN=m
+CONFIG_CAPI_AVM=y
+CONFIG_CAPI_EICON=y
+CONFIG_CAPI_TRACE=y
+CONFIG_CARDBUS=y
+CONFIG_CARDMAN_4000=m
+CONFIG_CARDMAN_4040=m
+# CONFIG_CARMINE_DRAM_CUSTOM is not set
+CONFIG_CASSINI=m
+CONFIG_CB710_CORE=m
+# CONFIG_CB710_DEBUG is not set
+CONFIG_CB710_DEBUG_ASSUMPTIONS=y
+CONFIG_CC_STACKPROTECTOR=y
+CONFIG_CDROM_PKTCDVD_BUFFERS=8
+# CONFIG_CDROM_PKTCDVD_WCACHE is not set
+# CONFIG_CEPH_FS_PRETTYDEBUG is not set
+CONFIG_CFAG12864B=m
+CONFIG_CFAG12864B_RATE=20
+CONFIG_CFG80211=m
+CONFIG_CFG80211_DEBUGFS=y
+CONFIG_CFG80211_DEFAULT_PS=y
+# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
+# CONFIG_CFG80211_INTERNAL_REGDB is not set
+CONFIG_CFG80211_REG_DEBUG=y
+CONFIG_CFG80211_WEXT=y
+CONFIG_CGROUPS=y
+CONFIG_CGROUP_CPUACCT=y
+# CONFIG_CGROUP_DEBUG is not set
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_MEM_RES_CTLR=y
+CONFIG_CGROUP_NS=y
+CONFIG_CGROUP_SCHED=y
+CONFIG_CHARGER_PCF50633=m
+CONFIG_CHECK_SIGNATURE=y
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T3_DEPENDS=y
+CONFIG_CHELSIO_T4=m
+CONFIG_CHELSIO_T4_DEPENDS=y
+CONFIG_CHR_DEV_OSST=m
+CONFIG_CHR_DEV_SCH=m
+CONFIG_CHR_DEV_SG=y
+CONFIG_CHR_DEV_ST=m
+CONFIG_CICADA_PHY=y
+CONFIG_CIFS=m
+# CONFIG_CIFS_DEBUG2 is not set
+CONFIG_CIFS_DFS_UPCALL=y
+CONFIG_CIFS_EXPERIMENTAL=y
+CONFIG_CIFS_POSIX=y
+# CONFIG_CIFS_STATS is not set
+CONFIG_CIFS_UPCALL=y
+CONFIG_CIFS_WEAK_PW_HASH=y
+CONFIG_CIFS_XATTR=y
+CONFIG_CISS_SCSI_TAPE=y
+CONFIG_CLOCKSOURCE_WATCHDOG=y
+CONFIG_CLS_U32_MARK=y
+# CONFIG_CLS_U32_PERF is not set
+CONFIG_CMDLINE=""
+# CONFIG_CMDLINE_BOOL is not set
+CONFIG_CNIC=m
+CONFIG_CODA_FS=m
+CONFIG_COMEDI_8255=m
+CONFIG_COMEDI_ACL7225B=m
+CONFIG_COMEDI_ADDI_APCI_035=m
+CONFIG_COMEDI_ADDI_APCI_1032=m
+CONFIG_COMEDI_ADDI_APCI_1500=m
+CONFIG_COMEDI_ADDI_APCI_1516=m
+CONFIG_COMEDI_ADDI_APCI_1564=m
+CONFIG_COMEDI_ADDI_APCI_16XX=m
+CONFIG_COMEDI_ADDI_APCI_2016=m
+CONFIG_COMEDI_ADDI_APCI_2032=m
+CONFIG_COMEDI_ADDI_APCI_2200=m
+CONFIG_COMEDI_ADDI_APCI_3001=m
+CONFIG_COMEDI_ADDI_APCI_3120=m
+CONFIG_COMEDI_ADDI_APCI_3501=m
+CONFIG_COMEDI_ADDI_APCI_3XXX=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7230=m
+CONFIG_COMEDI_ADL_PCI7296=m
+CONFIG_COMEDI_ADL_PCI7432=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADQ12B=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_AIO_AIO12_8=m
+CONFIG_COMEDI_AIO_IIRO_16=m
+CONFIG_COMEDI_AMPLC_DIO200=m
+CONFIG_COMEDI_AMPLC_PC236=m
+CONFIG_COMEDI_AMPLC_PC263=m
+CONFIG_COMEDI_AMPLC_PCI224=m
+CONFIG_COMEDI_AMPLC_PCI230=m
+CONFIG_COMEDI_BOND=m
+CONFIG_COMEDI_C6XDIGIO=m
+CONFIG_COMEDI_CB_DAS16_CS=m
+CONFIG_COMEDI_CB_PCIDAS=m
+CONFIG_COMEDI_CB_PCIDAS64=m
+CONFIG_COMEDI_CB_PCIDDA=m
+CONFIG_COMEDI_CB_PCIDIO=m
+CONFIG_COMEDI_CB_PCIMDAS=m
+CONFIG_COMEDI_CB_PCIMDDA=m
+CONFIG_COMEDI_CONTEC_PCI_DIO=m
+CONFIG_COMEDI_DAQBOARD2000=m
+CONFIG_COMEDI_DAS08=m
+CONFIG_COMEDI_DAS08_CS=m
+CONFIG_COMEDI_DAS16=m
+CONFIG_COMEDI_DAS16M1=m
+CONFIG_COMEDI_DAS1800=m
+CONFIG_COMEDI_DAS6402=m
+CONFIG_COMEDI_DAS800=m
+# CONFIG_COMEDI_DEBUG is not set
+CONFIG_COMEDI_DMM32AT=m
+CONFIG_COMEDI_DT2801=m
+CONFIG_COMEDI_DT2811=m
+CONFIG_COMEDI_DT2814=m
+CONFIG_COMEDI_DT2815=m
+CONFIG_COMEDI_DT2817=m
+CONFIG_COMEDI_DT282X=m
+CONFIG_COMEDI_DT3000=m
+CONFIG_COMEDI_DT9812=m
+CONFIG_COMEDI_FC=m
+CONFIG_COMEDI_FL512=m
+CONFIG_COMEDI_GSC_HPDI=m
+CONFIG_COMEDI_ICP_MULTI=m
+CONFIG_COMEDI_II_PCI20KC=m
+CONFIG_COMEDI_ISA_DRIVERS=m
+CONFIG_COMEDI_JR3_PCI=m
+CONFIG_COMEDI_KCOMEDILIB=m
+CONFIG_COMEDI_KE_COUNTER=m
+CONFIG_COMEDI_ME4000=m
+CONFIG_COMEDI_ME_DAQ=m
+CONFIG_COMEDI_MISC_DRIVERS=m
+CONFIG_COMEDI_MITE=m
+CONFIG_COMEDI_MPC624=m
+CONFIG_COMEDI_MULTIQ3=m
+CONFIG_COMEDI_NI_6527=m
+CONFIG_COMEDI_NI_65XX=m
+CONFIG_COMEDI_NI_660X=m
+CONFIG_COMEDI_NI_670X=m
+CONFIG_COMEDI_NI_ATMIO=m
+CONFIG_COMEDI_NI_ATMIO16D=m
+CONFIG_COMEDI_NI_AT_A2150=m
+CONFIG_COMEDI_NI_AT_AO=m
+CONFIG_COMEDI_NI_COMMON=m
+CONFIG_COMEDI_NI_DAQ_700_CS=m
+CONFIG_COMEDI_NI_DAQ_DIO24_CS=m
+CONFIG_COMEDI_NI_LABPC=m
+CONFIG_COMEDI_NI_LABPC_CS=m
+CONFIG_COMEDI_NI_MIO_CS=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_COMEDI_NI_TIO=m
+CONFIG_COMEDI_PARPORT=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_PCL711=m
+CONFIG_COMEDI_PCL724=m
+CONFIG_COMEDI_PCL725=m
+CONFIG_COMEDI_PCL726=m
+CONFIG_COMEDI_PCL730=m
+CONFIG_COMEDI_PCL812=m
+CONFIG_COMEDI_PCL816=m
+CONFIG_COMEDI_PCL818=m
+CONFIG_COMEDI_PCM3724=m
+CONFIG_COMEDI_PCM3730=m
+CONFIG_COMEDI_PCMAD=m
+CONFIG_COMEDI_PCMCIA_DRIVERS=m
+CONFIG_COMEDI_PCMDA12=m
+CONFIG_COMEDI_PCMMIO=m
+CONFIG_COMEDI_PCMUIO=m
+CONFIG_COMEDI_POC=m
+CONFIG_COMEDI_QUATECH_DAQP_CS=m
+CONFIG_COMEDI_RTD520=m
+CONFIG_COMEDI_RTI800=m
+CONFIG_COMEDI_RTI802=m
+CONFIG_COMEDI_S526=m
+CONFIG_COMEDI_S626=m
+CONFIG_COMEDI_SERIAL2002=m
+CONFIG_COMEDI_SKEL=m
+CONFIG_COMEDI_SSV_DNP=m
+CONFIG_COMEDI_TEST=m
+CONFIG_COMEDI_UNIOXX5=m
+CONFIG_COMEDI_USBDUX=m
+CONFIG_COMEDI_USBDUXFAST=m
+CONFIG_COMEDI_USB_DRIVERS=m
+CONFIG_COMEDI_VMK80XX=m
+CONFIG_COMMON_CLKDEV=y
+# CONFIG_COMPACTION is not set
+CONFIG_COMPAL_LAPTOP=m
+CONFIG_COMPAT=y
+CONFIG_COMPAT_BINFMT_ELF=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_COMPAT_FOR_U64_ALIGNMENT=y
+CONFIG_COMPAT_NETLINK_MESSAGES=y
+# CONFIG_COMPAT_VDSO is not set
+CONFIG_COMPUTONE=m
+CONFIG_CONFIGFS_FS=m
+CONFIG_CONNECTOR=y
+CONFIG_CONSOLE_POLL=y
+CONFIG_CONSOLE_TRANSLATIONS=y
+CONFIG_CONSTRUCTORS=y
+CONFIG_CONTEXT_SWITCH_TRACER=y
+# CONFIG_COPS is not set
+# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
+CONFIG_COSA=m
+# CONFIG_CPA_DEBUG is not set
+CONFIG_CPU5_WDT=m
+CONFIG_CPUSETS=y
+CONFIG_CPU_32v6K=y
+CONFIG_CPU_32v7=y
+CONFIG_CPU_ABRT_EV7=y
+# CONFIG_CPU_BPREDICT_DISABLE is not set
+CONFIG_CPU_CACHE_V7=y
+CONFIG_CPU_CACHE_VIPT=y
+CONFIG_CPU_COPY_V6=y
+CONFIG_CPU_CP15=y
+CONFIG_CPU_CP15_MMU=y
+# CONFIG_CPU_DCACHE_DISABLE is not set
+CONFIG_CPU_FREQ=y
+# CONFIG_CPU_FREQ_DEBUG is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
+CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
+# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
+CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
+CONFIG_CPU_FREQ_GOV_ONDEMAND=y
+CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
+CONFIG_CPU_FREQ_GOV_POWERSAVE=y
+CONFIG_CPU_FREQ_GOV_USERSPACE=y
+CONFIG_CPU_FREQ_STAT=y
+CONFIG_CPU_FREQ_STAT_DETAILS=y
+CONFIG_CPU_FREQ_TABLE=y
+CONFIG_CPU_HAS_ASID=y
+CONFIG_CPU_HAS_PMU=y
+# CONFIG_CPU_ICACHE_DISABLE is not set
+CONFIG_CPU_IDLE=y
+CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_CPU_IDLE_GOV_MENU=y
+CONFIG_CPU_NOTIFIER_ERROR_INJECT=m
+CONFIG_CPU_PABRT_V7=y
+CONFIG_CPU_SUP_AMD=y
+CONFIG_CPU_SUP_CENTAUR=y
+CONFIG_CPU_SUP_CYRIX_32=y
+CONFIG_CPU_SUP_INTEL=y
+CONFIG_CPU_SUP_TRANSMETA_32=y
+CONFIG_CPU_SUP_UMC_32=y
+CONFIG_CPU_TLB_V7=y
+CONFIG_CPU_V7=y
+CONFIG_CRAMFS=m
+CONFIG_CRASH_DUMP=y
+CONFIG_CRC16=y
+CONFIG_CRC32=y
+CONFIG_CRC7=m
+CONFIG_CRC_CCITT=m
+CONFIG_CRC_ITU_T=m
+CONFIG_CRC_T10DIF=y
+CONFIG_CROSS_COMPILE=""
+CONFIG_CRYPTO=y
+CONFIG_CRYPTO_AEAD=m
+CONFIG_CRYPTO_AEAD2=y
+CONFIG_CRYPTO_AES=m
+CONFIG_CRYPTO_AES_586=m
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_AES_X86_64=m
+CONFIG_CRYPTO_ALGAPI=y
+CONFIG_CRYPTO_ALGAPI2=y
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_AUTHENC=m
+CONFIG_CRYPTO_BLKCIPHER=y
+CONFIG_CRYPTO_BLKCIPHER2=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CCM=m
+CONFIG_CRYPTO_CRC32C=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_CTR=m
+CONFIG_CRYPTO_CTS=m
+CONFIG_CRYPTO_DEFLATE=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_DEV_GEODE=m
+CONFIG_CRYPTO_DEV_HIFN_795X=m
+CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y
+CONFIG_CRYPTO_DEV_OMAP_SHAM=m
+CONFIG_CRYPTO_DEV_PADLOCK=y
+CONFIG_CRYPTO_DEV_PADLOCK_AES=m
+CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
+CONFIG_CRYPTO_ECB=y
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_FIPS=y
+CONFIG_CRYPTO_FPU=m
+CONFIG_CRYPTO_GCM=m
+CONFIG_CRYPTO_GF128MUL=m
+CONFIG_CRYPTO_GHASH=m
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+CONFIG_CRYPTO_HASH=y
+CONFIG_CRYPTO_HASH2=y
+CONFIG_CRYPTO_HW=y
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_LZO=m
+CONFIG_CRYPTO_MANAGER=y
+CONFIG_CRYPTO_MANAGER2=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MD5=y
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_NULL=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_PCOMP=y
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_RNG=m
+CONFIG_CRYPTO_RNG2=y
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SALSA20_586=m
+CONFIG_CRYPTO_SALSA20_X86_64=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SEQIV=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SHA1=m
+CONFIG_CRYPTO_SHA256=m
+CONFIG_CRYPTO_SHA512=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_TWOFISH_586=m
+CONFIG_CRYPTO_TWOFISH_COMMON=m
+CONFIG_CRYPTO_TWOFISH_X86_64=m
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_WORKQUEUE=y
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_XTS=m
+CONFIG_CRYPTO_ZLIB=m
+CONFIG_CRYSTALHD=m
+CONFIG_CS5535_GPIO=m
+# CONFIG_CS5535_MFGPT is not set
+CONFIG_CS89x0=m
+CONFIG_CUSE=m
+CONFIG_CXT1E1=m
+CONFIG_CYCLADES=m
+CONFIG_CYCLADES_SYNC=m
+CONFIG_CYCLOMX_X25=y
+# CONFIG_CYZ_INTR is not set
+CONFIG_DAB=y
+CONFIG_DAVICOM_PHY=y
+CONFIG_DCA=m
+CONFIG_DCB=y
+CONFIG_DCDBAS=m
+CONFIG_DE2104X=m
+CONFIG_DE2104X_DSL=0
+CONFIG_DE4X5=m
+CONFIG_DE600=m
+CONFIG_DE620=m
+# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
+# CONFIG_DEBUG_BOOT_PARAMS is not set
+CONFIG_DEBUG_BUGVERBOSE=y
+# CONFIG_DEBUG_CREDENTIALS is not set
+# CONFIG_DEBUG_DEVRES is not set
+# CONFIG_DEBUG_DRIVER is not set
+CONFIG_DEBUG_ERRORS=y
+# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
+CONFIG_DEBUG_FS=y
+# CONFIG_DEBUG_GPIO is not set
+# CONFIG_DEBUG_HIGHMEM is not set
+# CONFIG_DEBUG_ICEDCC is not set
+CONFIG_DEBUG_INFO=y
+CONFIG_DEBUG_KERNEL=y
+# CONFIG_DEBUG_KMEMLEAK is not set
+# CONFIG_DEBUG_KOBJECT is not set
+# CONFIG_DEBUG_LIST is not set
+CONFIG_DEBUG_LL=y
+# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
+# CONFIG_DEBUG_LOCK_ALLOC is not set
+CONFIG_DEBUG_MEMORY_INIT=y
+# CONFIG_DEBUG_MUTEXES is not set
+# CONFIG_DEBUG_NOTIFIERS is not set
+# CONFIG_DEBUG_NX_TEST is not set
+# CONFIG_DEBUG_OBJECTS is not set
+# CONFIG_DEBUG_PAGEALLOC is not set
+# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
+# CONFIG_DEBUG_PER_CPU_MAPS is not set
+CONFIG_DEBUG_RODATA=y
+# CONFIG_DEBUG_RODATA_TEST is not set
+# CONFIG_DEBUG_RT_MUTEXES is not set
+# CONFIG_DEBUG_SG is not set
+# CONFIG_DEBUG_SHIRQ is not set
+# CONFIG_DEBUG_SLAB is not set
+# CONFIG_DEBUG_SPINLOCK is not set
+# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
+# CONFIG_DEBUG_STACKOVERFLOW is not set
+# CONFIG_DEBUG_STACK_USAGE is not set
+# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set
+CONFIG_DEBUG_USER=y
+# CONFIG_DEBUG_VIRTUAL is not set
+# CONFIG_DEBUG_VM is not set
+# CONFIG_DEBUG_WRITECOUNT is not set
+CONFIG_DECNET=m
+CONFIG_DECNET_NF_GRABULATOR=m
+# CONFIG_DECNET_ROUTER is not set
+CONFIG_DECOMPRESS_BZIP2=y
+CONFIG_DECOMPRESS_GZIP=y
+CONFIG_DECOMPRESS_LZMA=y
+CONFIG_DECOMPRESS_LZO=y
+# CONFIG_DEFAULT_BIC is not set
+CONFIG_DEFAULT_CUBIC=y
+# CONFIG_DEFAULT_HTCP is not set
+# CONFIG_DEFAULT_HYBLA is not set
+CONFIG_DEFAULT_IO_DELAY_TYPE=1
+# CONFIG_DEFAULT_NOOP is not set
+# CONFIG_DEFAULT_RENO is not set
+CONFIG_DEFAULT_SECURITY="apparmor"
+CONFIG_DEFAULT_SECURITY_APPARMOR=y
+# CONFIG_DEFAULT_SECURITY_DAC is not set
+# CONFIG_DEFAULT_SECURITY_SELINUX is not set
+# CONFIG_DEFAULT_SECURITY_SMACK is not set
+# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
+CONFIG_DEFAULT_TCP_CONG="cubic"
+# CONFIG_DEFAULT_VEGAS is not set
+# CONFIG_DEFAULT_VENO is not set
+# CONFIG_DEFAULT_WESTWOOD is not set
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
+CONFIG_DEFXX=m
+# CONFIG_DEFXX_MMIO is not set
+CONFIG_DELL_LAPTOP=m
+CONFIG_DELL_RBU=m
+CONFIG_DELL_WMI=m
+CONFIG_DEPCA=m
+CONFIG_DETECT_HUNG_TASK=y
+CONFIG_DETECT_SOFTLOCKUP=y
+# CONFIG_DEVKMEM is not set
+CONFIG_DEVPORT=y
+CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEV_APPLETALK=m
+CONFIG_DE_AOC=y
+CONFIG_DIGIEPCA=m
+CONFIG_DIRECT_GBPAGES=y
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_DL2K is not set
+CONFIG_DLCI=m
+CONFIG_DLCI_MAX=8
+CONFIG_DLM=m
+# CONFIG_DLM_DEBUG is not set
+# CONFIG_DM9000 is not set
+CONFIG_DM9102=m
+CONFIG_DMADEVICES=y
+# CONFIG_DMADEVICES_DEBUG is not set
+# CONFIG_DMAR is not set
+# CONFIG_DMATEST is not set
+# CONFIG_DMA_API_DEBUG is not set
+CONFIG_DMA_ENGINE=y
+CONFIG_DMI=y
+CONFIG_DMIID=y
+CONFIG_DM_CRYPT=m
+# CONFIG_DM_DEBUG is not set
+# CONFIG_DM_DELAY is not set
+# CONFIG_DM_LOG_USERSPACE is not set
+CONFIG_DM_MIRROR=y
+CONFIG_DM_MULTIPATH=y
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_DM_SNAPSHOT=y
+CONFIG_DM_UEVENT=y
+CONFIG_DM_ZERO=m
+CONFIG_DNET=m
+CONFIG_DNOTIFY=y
+CONFIG_DONGLE=y
+CONFIG_DOUBLEFAULT=y
+CONFIG_DRAGONRISE_FF=y
+CONFIG_DRM=m
+CONFIG_DRM_I2C_CH7006=m
+CONFIG_DRM_I810=m
+CONFIG_DRM_I830=m
+CONFIG_DRM_I915=m
+CONFIG_DRM_I915_KMS=y
+CONFIG_DRM_KMS_HELPER=m
+CONFIG_DRM_MGA=m
+CONFIG_DRM_NOUVEAU=m
+CONFIG_DRM_NOUVEAU_BACKLIGHT=y
+CONFIG_DRM_NOUVEAU_DEBUG=y
+CONFIG_DRM_R128=m
+CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_SAVAGE=m
+CONFIG_DRM_SIS=m
+CONFIG_DRM_TDFX=m
+CONFIG_DRM_TTM=m
+CONFIG_DRM_VIA=m
+CONFIG_DRM_VMWGFX=m
+CONFIG_DS1682=m
+CONFIG_DSCC4=m
+CONFIG_DSCC4_PCISYNC=y
+CONFIG_DSCC4_PCI_RST=y
+# CONFIG_DT3155_CCIR is not set
+CONFIG_DTLK=m
+CONFIG_DUMMY=m
+CONFIG_DUMMY_CONSOLE=y
+CONFIG_DVB_AF9013=m
+CONFIG_DVB_ATBM8830=m
+CONFIG_DVB_AU8522=m
+CONFIG_DVB_AV7110=m
+CONFIG_DVB_AV7110_OSD=y
+CONFIG_DVB_B2C2_FLEXCOP=m
+# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
+CONFIG_DVB_B2C2_FLEXCOP_PCI=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
+CONFIG_DVB_BCM3510=m
+CONFIG_DVB_BT8XX=m
+CONFIG_DVB_BUDGET=m
+CONFIG_DVB_BUDGET_AV=m
+CONFIG_DVB_BUDGET_CI=m
+CONFIG_DVB_BUDGET_CORE=m
+CONFIG_DVB_BUDGET_PATCH=m
+CONFIG_DVB_CAPTURE_DRIVERS=y
+CONFIG_DVB_CORE=m
+CONFIG_DVB_CX22700=m
+CONFIG_DVB_CX22702=m
+CONFIG_DVB_CX24110=m
+CONFIG_DVB_CX24116=m
+CONFIG_DVB_CX24123=m
+CONFIG_DVB_DIB3000MB=m
+CONFIG_DVB_DIB3000MC=m
+CONFIG_DVB_DIB7000M=m
+CONFIG_DVB_DIB7000P=m
+CONFIG_DVB_DIB8000=m
+CONFIG_DVB_DM1105=m
+CONFIG_DVB_DRX397XD=m
+CONFIG_DVB_DS3000=m
+# CONFIG_DVB_DUMMY_FE is not set
+CONFIG_DVB_DYNAMIC_MINORS=y
+CONFIG_DVB_EC100=m
+CONFIG_DVB_FIREDTV=m
+CONFIG_DVB_FIREDTV_FIREWIRE=y
+CONFIG_DVB_FIREDTV_IEEE1394=y
+CONFIG_DVB_FIREDTV_INPUT=y
+CONFIG_DVB_HOPPER=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_ISL6421=m
+CONFIG_DVB_ISL6423=m
+CONFIG_DVB_L64781=m
+CONFIG_DVB_LGDT3304=m
+CONFIG_DVB_LGDT3305=m
+CONFIG_DVB_LGDT330X=m
+CONFIG_DVB_LGS8GL5=m
+CONFIG_DVB_LGS8GXX=m
+CONFIG_DVB_LNBP21=m
+CONFIG_DVB_MANTIS=m
+CONFIG_DVB_MAX_ADAPTERS=8
+CONFIG_DVB_MB86A16=m
+CONFIG_DVB_MT312=m
+CONFIG_DVB_MT352=m
+CONFIG_DVB_NGENE=m
+CONFIG_DVB_NXT200X=m
+CONFIG_DVB_NXT6000=m
+CONFIG_DVB_OR51132=m
+CONFIG_DVB_OR51211=m
+CONFIG_DVB_PLL=m
+CONFIG_DVB_PLUTO2=m
+CONFIG_DVB_PT1=m
+CONFIG_DVB_S5H1409=m
+CONFIG_DVB_S5H1411=m
+CONFIG_DVB_S5H1420=m
+CONFIG_DVB_S921=m
+CONFIG_DVB_SI21XX=m
+CONFIG_DVB_SP8870=m
+CONFIG_DVB_SP887X=m
+CONFIG_DVB_STB0899=m
+CONFIG_DVB_STB6000=m
+CONFIG_DVB_STB6100=m
+CONFIG_DVB_STV0288=m
+CONFIG_DVB_STV0297=m
+CONFIG_DVB_STV0299=m
+CONFIG_DVB_STV0900=m
+CONFIG_DVB_STV090x=m
+CONFIG_DVB_STV6110=m
+CONFIG_DVB_STV6110x=m
+CONFIG_DVB_TDA10021=m
+CONFIG_DVB_TDA10023=m
+CONFIG_DVB_TDA10048=m
+CONFIG_DVB_TDA1004X=m
+CONFIG_DVB_TDA10086=m
+CONFIG_DVB_TDA665x=m
+CONFIG_DVB_TDA8083=m
+CONFIG_DVB_TDA8261=m
+CONFIG_DVB_TDA826X=m
+CONFIG_DVB_TTUSB_BUDGET=m
+CONFIG_DVB_TTUSB_DEC=m
+CONFIG_DVB_TUA6100=m
+CONFIG_DVB_TUNER_CX24113=m
+CONFIG_DVB_TUNER_DIB0070=m
+CONFIG_DVB_TUNER_DIB0090=m
+CONFIG_DVB_TUNER_ITD1000=m
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_AF9015=m
+CONFIG_DVB_USB_ANYSEE=m
+CONFIG_DVB_USB_AU6610=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_CXUSB=m
+# CONFIG_DVB_USB_DEBUG is not set
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_FRIIO=m
+CONFIG_DVB_USB_GL861=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_VP7045=m
+CONFIG_DVB_VES1820=m
+CONFIG_DVB_VES1X93=m
+CONFIG_DVB_ZL10036=m
+CONFIG_DVB_ZL10039=m
+CONFIG_DVB_ZL10353=m
+CONFIG_DX_SEP=m
+# CONFIG_DYNAMIC_DEBUG is not set
+CONFIG_DYNAMIC_FTRACE=y
+CONFIG_E100=m
+CONFIG_E1000=m
+CONFIG_E1000E=m
+CONFIG_E2100=m
+CONFIG_EARLY_PRINTK=y
+# CONFIG_EARLY_PRINTK_DBGP is not set
+CONFIG_ECHO=m
+CONFIG_ECONET=m
+CONFIG_ECONET_AUNUDP=y
+CONFIG_ECONET_NATIVE=y
+CONFIG_ECRYPT_FS=y
+CONFIG_EDAC=y
+CONFIG_EDAC_AMD64=m
+# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
+CONFIG_EDAC_AMD76X=m
+# CONFIG_EDAC_DEBUG is not set
+CONFIG_EDAC_DECODE_MCE=m
+CONFIG_EDAC_E752X=m
+CONFIG_EDAC_E7XXX=m
+CONFIG_EDAC_I3000=m
+CONFIG_EDAC_I3200=m
+CONFIG_EDAC_I5000=m
+CONFIG_EDAC_I5100=m
+CONFIG_EDAC_I5400=m
+CONFIG_EDAC_I7CORE=m
+CONFIG_EDAC_I82860=m
+CONFIG_EDAC_I82875P=m
+CONFIG_EDAC_I82975X=m
+CONFIG_EDAC_MCE=y
+CONFIG_EDAC_MM_EDAC=m
+CONFIG_EDAC_R82600=m
+CONFIG_EDAC_X38=m
+CONFIG_EDD=y
+CONFIG_EDD_OFF=y
+CONFIG_EEEPC_LAPTOP=m
+CONFIG_EEEPC_WMI=m
+CONFIG_EEPROM_93CX6=m
+CONFIG_EEPROM_AT24=m
+CONFIG_EEPROM_AT25=m
+CONFIG_EEPROM_LEGACY=m
+CONFIG_EEPROM_MAX6875=m
+CONFIG_EEXPRESS=m
+CONFIG_EEXPRESS_PRO=m
+CONFIG_EFI=y
+CONFIG_EFI_PARTITION=y
+CONFIG_EFI_VARS=y
+CONFIG_EFS_FS=m
+CONFIG_EISA=y
+CONFIG_EISA_NAMES=y
+CONFIG_EISA_PCI_EISA=y
+CONFIG_EISA_VIRTUAL_ROOT=y
+CONFIG_EISA_VLB_PRIMING=y
+CONFIG_EL1=m
+CONFIG_EL16=m
+CONFIG_EL2=m
+CONFIG_EL3=m
+CONFIG_ELF_CORE=y
+CONFIG_ELMC=m
+CONFIG_ELMC_II=m
+CONFIG_ELPLUS=m
+# CONFIG_EMBEDDED is not set
+# CONFIG_ENABLE_MUST_CHECK is not set
+# CONFIG_ENABLE_WARN_DEPRECATED is not set
+# CONFIG_ENC28J60 is not set
+CONFIG_ENCLOSURE_SERVICES=m
+CONFIG_ENIC=m
+CONFIG_EPIC100=m
+CONFIG_EPOLL=y
+CONFIG_EQUALIZER=m
+CONFIG_ES3210=m
+CONFIG_ESI_DONGLE=m
+CONFIG_ET131X=m
+# CONFIG_ET131X_DEBUG is not set
+CONFIG_ETH16I=m
+CONFIG_ETHOC=m
+CONFIG_EUROTECH_WDT=m
+CONFIG_EVENTFD=y
+CONFIG_EVENT_TRACING=y
+CONFIG_EWRK3=m
+# CONFIG_EXOFS_DEBUG is not set
+CONFIG_EXOFS_FS=m
+CONFIG_EXPERIMENTAL=y
+CONFIG_EXPORTFS=m
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT2_FS_XATTR=y
+# CONFIG_EXT2_FS_XIP is not set
+CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_EXT3_FS_XATTR=y
+# CONFIG_EXT4_DEBUG is not set
+CONFIG_EXT4_FS=y
+CONFIG_EXT4_FS_POSIX_ACL=y
+CONFIG_EXT4_FS_SECURITY=y
+CONFIG_EXT4_FS_XATTR=y
+CONFIG_EXTRA_FIRMWARE=""
+CONFIG_FAIR_GROUP_SCHED=y
+CONFIG_FARSYNC=m
+CONFIG_FAT_DEFAULT_CODEPAGE=437
+CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
+CONFIG_FAT_FS=m
+# CONFIG_FAULT_INJECTION is not set
+CONFIG_FB=y
+CONFIG_FB_3DFX=m
+# CONFIG_FB_3DFX_ACCEL is not set
+CONFIG_FB_3DFX_I2C=y
+CONFIG_FB_ARC=m
+CONFIG_FB_ARK=m
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY128=m
+CONFIG_FB_ATY128_BACKLIGHT=y
+CONFIG_FB_ATY_BACKLIGHT=y
+CONFIG_FB_ATY_CT=y
+CONFIG_FB_ATY_GENERIC_LCD=y
+CONFIG_FB_ATY_GX=y
+CONFIG_FB_BROADSHEET=m
+CONFIG_FB_CARILLO_RANCH=m
+CONFIG_FB_CARMINE=m
+CONFIG_FB_CARMINE_DRAM_EVAL=y
+CONFIG_FB_CFB_COPYAREA=y
+CONFIG_FB_CFB_FILLRECT=y
+CONFIG_FB_CFB_IMAGEBLIT=y
+# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_CYBER2000=m
+CONFIG_FB_DEFERRED_IO=y
+CONFIG_FB_EFI=y
+# CONFIG_FB_FOREIGN_ENDIAN is not set
+CONFIG_FB_GEODE=y
+CONFIG_FB_GEODE_GX=m
+CONFIG_FB_GEODE_GX1=m
+CONFIG_FB_GEODE_LX=m
+CONFIG_FB_HECUBA=m
+CONFIG_FB_HGA=m
+# CONFIG_FB_HGA_ACCEL is not set
+CONFIG_FB_I810=m
+# CONFIG_FB_I810_GTF is not set
+CONFIG_FB_IMSTT=y
+CONFIG_FB_KYRO=m
+CONFIG_FB_LE80578=m
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_MATROX=m
+CONFIG_FB_MATROX_G=y
+CONFIG_FB_MATROX_I2C=m
+CONFIG_FB_MATROX_MAVEN=m
+CONFIG_FB_MATROX_MILLENIUM=y
+CONFIG_FB_MATROX_MYSTIQUE=y
+CONFIG_FB_MB862XX=m
+CONFIG_FB_MB862XX_PCI_GDC=y
+CONFIG_FB_METRONOME=m
+CONFIG_FB_MODE_HELPERS=y
+CONFIG_FB_N411=m
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_NVIDIA=m
+CONFIG_FB_NVIDIA_BACKLIGHT=y
+# CONFIG_FB_NVIDIA_DEBUG is not set
+CONFIG_FB_NVIDIA_I2C=y
+CONFIG_FB_OMAP2=y
+CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
+CONFIG_FB_OMAP2_NUM_FBS=3
+# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
+# CONFIG_FB_OMAP_LCD_VGA is not set
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_PM3=m
+CONFIG_FB_RADEON=m
+CONFIG_FB_RADEON_BACKLIGHT=y
+# CONFIG_FB_RADEON_DEBUG is not set
+CONFIG_FB_RADEON_I2C=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_RIVA_BACKLIGHT=y
+# CONFIG_FB_RIVA_DEBUG is not set
+CONFIG_FB_RIVA_I2C=y
+CONFIG_FB_S3=m
+CONFIG_FB_SAVAGE_ACCEL=y
+CONFIG_FB_SAVAGE_I2C=y
+CONFIG_FB_SIS=m
+CONFIG_FB_SIS_300=y
+CONFIG_FB_SIS_315=y
+CONFIG_FB_SM501=m
+CONFIG_FB_SM7XX=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+CONFIG_FB_TMIO=m
+CONFIG_FB_TMIO_ACCELL=y
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_UDL=m
+CONFIG_FB_VESA=m
+CONFIG_FB_VGA16=m
+CONFIG_FB_VIA=m
+# CONFIG_FB_VIA_DIRECT_PROCFS is not set
+# CONFIG_FB_VIRTUAL is not set
+CONFIG_FB_VOODOO1=m
+CONFIG_FB_VT8623=m
+CONFIG_FB_XGI=m
+CONFIG_FCOE=m
+CONFIG_FCOE_FNIC=m
+CONFIG_FDDI=y
+CONFIG_FEALNX=m
+CONFIG_FIB_RULES=y
+CONFIG_FILE_LOCKING=y
+CONFIG_FIREWIRE=m
+CONFIG_FIREWIRE_NET=m
+CONFIG_FIREWIRE_OHCI=m
+CONFIG_FIREWIRE_OHCI_DEBUG=y
+# CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set
+CONFIG_FIREWIRE_SBP2=m
+CONFIG_FIRMWARE_IN_KERNEL=y
+CONFIG_FIRMWARE_MEMMAP=y
+CONFIG_FIXED_PHY=y
+CONFIG_FIX_EARLYCON_MEM=y
+CONFIG_FLATMEM=y
+CONFIG_FLAT_NODE_MEM_MAP=y
+# CONFIG_FONT_10x18 is not set
+# CONFIG_FONT_6x11 is not set
+# CONFIG_FONT_7x14 is not set
+CONFIG_FONT_8x16=y
+CONFIG_FONT_8x8=y
+CONFIG_FONT_ACORN_8x8=y
+# CONFIG_FONT_MINI_4x6 is not set
+# CONFIG_FONT_PEARL_8x8 is not set
+# CONFIG_FONT_SUN12x22 is not set
+# CONFIG_FONT_SUN8x16 is not set
+CONFIG_FORCEDETH=m
+# CONFIG_FPE_FASTFPE is not set
+CONFIG_FPE_NWFPE=y
+# CONFIG_FPE_NWFPE_XP is not set
+CONFIG_FRAMEBUFFER_CONSOLE=y
+# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
+# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
+CONFIG_FRAME_POINTER=y
+CONFIG_FRAME_WARN=1024
+CONFIG_FREEZER=y
+CONFIG_FSCACHE=m
+# CONFIG_FSCACHE_DEBUG is not set
+# CONFIG_FSCACHE_HISTOGRAM is not set
+# CONFIG_FSCACHE_OBJECT_LIST is not set
+# CONFIG_FSCACHE_STATS is not set
+CONFIG_FSNOTIFY=y
+CONFIG_FS_MBCACHE=y
+CONFIG_FS_POSIX_ACL=y
+CONFIG_FTRACE=y
+CONFIG_FTRACE_MCOUNT_RECORD=y
+CONFIG_FTRACE_NMI_ENTER=y
+# CONFIG_FTRACE_STARTUP_TEST is not set
+CONFIG_FTRACE_SYSCALLS=y
+CONFIG_FUJITSU_LAPTOP=m
+# CONFIG_FUJITSU_LAPTOP_DEBUG is not set
+CONFIG_FUNCTION_GRAPH_TRACER=y
+CONFIG_FUNCTION_PROFILER=y
+CONFIG_FUSE_FS=y
+CONFIG_FUSION=y
+CONFIG_FUSION_CTL=m
+CONFIG_FUSION_FC=m
+CONFIG_FUSION_LAN=m
+CONFIG_FUSION_LOGGING=y
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_FUSION_SAS=m
+CONFIG_FUSION_SPI=m
+CONFIG_FUTEX=y
+CONFIG_FW_LOADER=y
+CONFIG_GACT_PROB=y
+CONFIG_GAMEPORT_EMU10K1=m
+CONFIG_GAMEPORT_FM801=m
+CONFIG_GAMEPORT_L4=m
+CONFIG_GAMEPORT_NS558=m
+CONFIG_GARP=m
+CONFIG_GART_IOMMU=y
+# CONFIG_GCOV_KERNEL is not set
+CONFIG_GENERIC_ACL=y
+CONFIG_GENERIC_ALLOCATOR=y
+CONFIG_GENERIC_BUG=y
+CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
+CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
+CONFIG_GENERIC_CMOS_UPDATE=y
+CONFIG_GENERIC_FIND_FIRST_BIT=y
+CONFIG_GENERIC_FIND_LAST_BIT=y
+CONFIG_GENERIC_FIND_NEXT_BIT=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_IOMAP=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_GENERIC_ISA_DMA=y
+CONFIG_GENERIC_PENDING_IRQ=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_TRACER=y
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_GIGASET_BASE=m
+# CONFIG_GIGASET_CAPI is not set
+# CONFIG_GIGASET_DEBUG is not set
+# CONFIG_GIGASET_DUMMYLL is not set
+CONFIG_GIGASET_I4L=y
+CONFIG_GIGASET_M101=m
+CONFIG_GIGASET_M105=m
+CONFIG_GIRBIL_DONGLE=m
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_ADP5520=m
+CONFIG_GPIO_ADP5588=m
+# CONFIG_GPIO_BT8XX is not set
+CONFIG_GPIO_CS5535=m
+CONFIG_GPIO_IT8761E=m
+CONFIG_GPIO_LANGWELL=y
+CONFIG_GPIO_MAX7300=m
+CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_MAX730X=m
+CONFIG_GPIO_MC33880=m
+CONFIG_GPIO_MCP23S08=m
+CONFIG_GPIO_PCA953X_IRQ=y
+# CONFIG_GPIO_PL061 is not set
+CONFIG_GPIO_RDC321X=m
+CONFIG_GPIO_SCH=m
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_TC35892=y
+CONFIG_GPIO_TIMBERDALE=y
+CONFIG_GPIO_UCB1400=y
+CONFIG_GPIO_WM831X=m
+CONFIG_GPIO_WM8350=m
+CONFIG_GPIO_WM8994=m
+CONFIG_GREENASIA_FF=y
+CONFIG_HAMACHI=m
+CONFIG_HAMRADIO=y
+CONFIG_HANGCHECK_TIMER=m
+CONFIG_HAPPYMEAL=m
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_HAS_DMA=y
+CONFIG_HAS_IOMEM=y
+CONFIG_HAS_IOPORT=y
+CONFIG_HAS_TLS_REG=y
+CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
+CONFIG_HAVE_ARCH_KGDB=y
+CONFIG_HAVE_ARCH_KMEMCHECK=y
+CONFIG_HAVE_ARCH_TRACEHOOK=y
+CONFIG_HAVE_ATOMIC_IOMAP=y
+CONFIG_HAVE_CLK=y
+CONFIG_HAVE_DMA_API_DEBUG=y
+CONFIG_HAVE_DMA_ATTRS=y
+CONFIG_HAVE_DYNAMIC_FTRACE=y
+CONFIG_HAVE_EARLY_RES=y
+CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
+CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
+CONFIG_HAVE_FTRACE_NMI_ENTER=y
+CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y
+CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACER=y
+CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y
+CONFIG_HAVE_HW_BREAKPOINT=y
+CONFIG_HAVE_IDE=y
+CONFIG_HAVE_IOREMAP_PROT=y
+CONFIG_HAVE_KERNEL_BZIP2=y
+CONFIG_HAVE_KERNEL_GZIP=y
+CONFIG_HAVE_KERNEL_LZMA=y
+CONFIG_HAVE_KERNEL_LZO=y
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_KVM=y
+CONFIG_HAVE_KVM_EVENTFD=y
+CONFIG_HAVE_KVM_IRQCHIP=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_HAVE_MEMORY_PRESENT=y
+CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y
+CONFIG_HAVE_MMIOTRACE_SUPPORT=y
+CONFIG_HAVE_MTD_OTP=y
+CONFIG_HAVE_OPROFILE=y
+CONFIG_HAVE_OPTPROBES=y
+CONFIG_HAVE_PERF_EVENTS=y
+CONFIG_HAVE_PROC_CPU=y
+CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
+CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
+CONFIG_HAVE_USER_RETURN_NOTIFIER=y
+CONFIG_HDLC=m
+CONFIG_HDLC_CISCO=m
+CONFIG_HDLC_FR=m
+CONFIG_HDLC_PPP=m
+CONFIG_HDLC_RAW=m
+CONFIG_HDLC_RAW_ETH=m
+CONFIG_HDLC_X25=m
+CONFIG_HDQ_MASTER_OMAP=m
+# CONFIG_HEADERS_CHECK is not set
+CONFIG_HERMES=m
+CONFIG_HERMES_CACHE_FW_ON_INIT=y
+# CONFIG_HERMES_PRISM is not set
+CONFIG_HFSPLUS_FS=m
+CONFIG_HFS_FS=m
+CONFIG_HIBERNATION=y
+CONFIG_HIBERNATION_NVS=y
+CONFIG_HID=m
+CONFIG_HIDRAW=y
+CONFIG_HID_3M_PCT=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_APPLE=m
+CONFIG_HID_BELKIN=m
+CONFIG_HID_CANDO=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_CHICONY=m
+CONFIG_HID_CYPRESS=m
+CONFIG_HID_DRAGONRISE=m
+CONFIG_HID_EGALAX=m
+CONFIG_HID_EZKEY=m
+CONFIG_HID_GREENASIA=m
+CONFIG_HID_GYRATION=m
+CONFIG_HID_KENSINGTON=m
+CONFIG_HID_KYE=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_MAGICMOUSE=m
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MONTEREY=m
+CONFIG_HID_MOSART=m
+CONFIG_HID_NTRIG=m
+CONFIG_HID_ORTEK=m
+CONFIG_HID_PANTHERLORD=m
+CONFIG_HID_PETALYNX=m
+CONFIG_HID_PICOLCD=m
+CONFIG_HID_PICOLCD_BACKLIGHT=y
+CONFIG_HID_PICOLCD_FB=y
+CONFIG_HID_PICOLCD_LCD=y
+CONFIG_HID_PICOLCD_LEDS=y
+CONFIG_HID_PID=y
+CONFIG_HID_PRODIKEYS=m
+CONFIG_HID_QUANTA=m
+CONFIG_HID_ROCCAT=m
+CONFIG_HID_ROCCAT_KONE=m
+CONFIG_HID_SAMSUNG=m
+CONFIG_HID_SMARTJOYPLUS=m
+CONFIG_HID_SONY=m
+CONFIG_HID_STANTUM=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_HID_SUPPORT=y
+CONFIG_HID_THRUSTMASTER=m
+CONFIG_HID_TOPSEED=m
+CONFIG_HID_TWINHAN=m
+CONFIG_HID_WACOM=m
+CONFIG_HID_WACOM_POWER_SUPPLY=y
+CONFIG_HID_ZEROPLUS=m
+CONFIG_HID_ZYDACRON=m
+CONFIG_HIGHPTE=y
+CONFIG_HIPPI=y
+CONFIG_HISAX_16_0=y
+CONFIG_HISAX_16_3=y
+CONFIG_HISAX_1TR6=y
+CONFIG_HISAX_ASUSCOM=y
+CONFIG_HISAX_AVM_A1=y
+CONFIG_HISAX_AVM_A1_CS=m
+CONFIG_HISAX_AVM_A1_PCMCIA=y
+CONFIG_HISAX_BKM_A4T=y
+# CONFIG_HISAX_DEBUG is not set
+CONFIG_HISAX_DIEHLDIVA=y
+CONFIG_HISAX_ELSA=y
+CONFIG_HISAX_ELSA_CS=m
+CONFIG_HISAX_ENTERNOW_PCI=y
+CONFIG_HISAX_EURO=y
+CONFIG_HISAX_FRITZPCI=y
+CONFIG_HISAX_FRITZ_PCIPNP=m
+CONFIG_HISAX_GAZEL=y
+CONFIG_HISAX_HFC4S8S=m
+CONFIG_HISAX_HFCS=y
+CONFIG_HISAX_HFCUSB=m
+CONFIG_HISAX_HFC_PCI=y
+CONFIG_HISAX_HFC_SX=y
+CONFIG_HISAX_HSTSAPHIR=y
+CONFIG_HISAX_ISURF=y
+CONFIG_HISAX_IX1MICROR2=y
+CONFIG_HISAX_MAX_CARDS=8
+CONFIG_HISAX_MIC=y
+CONFIG_HISAX_NETJET=y
+CONFIG_HISAX_NETJET_U=y
+CONFIG_HISAX_NI1=y
+CONFIG_HISAX_NICCY=y
+# CONFIG_HISAX_NO_KEYPAD is not set
+# CONFIG_HISAX_NO_LLC is not set
+# CONFIG_HISAX_NO_SENDCOMPLETE is not set
+CONFIG_HISAX_S0BOX=y
+CONFIG_HISAX_SCT_QUADRO=y
+CONFIG_HISAX_SEDLBAUER=y
+CONFIG_HISAX_SEDLBAUER_CS=m
+CONFIG_HISAX_SPORTSTER=y
+CONFIG_HISAX_ST5481=m
+CONFIG_HISAX_TELEINT=y
+CONFIG_HISAX_TELESPCI=y
+CONFIG_HISAX_TELES_CS=m
+CONFIG_HISAX_W6692=y
+CONFIG_HOSTAP=m
+CONFIG_HOSTAP_CS=m
+CONFIG_HOSTAP_FIRMWARE=y
+CONFIG_HOSTAP_FIRMWARE_NVRAM=y
+CONFIG_HOSTAP_PCI=m
+CONFIG_HOSTAP_PLX=m
+CONFIG_HOSTESS_SV11=m
+CONFIG_HOTPLUG=y
+CONFIG_HOTPLUG_CPU=y
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_ACPI=m
+CONFIG_HOTPLUG_PCI_ACPI_IBM=m
+CONFIG_HOTPLUG_PCI_COMPAQ=m
+CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y
+CONFIG_HOTPLUG_PCI_CPCI=y
+CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
+CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
+CONFIG_HOTPLUG_PCI_FAKE=m
+CONFIG_HOTPLUG_PCI_IBM=m
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_HOTPLUG_PCI_SHPC=m
+CONFIG_HP100=m
+CONFIG_HPET=y
+CONFIG_HPET_EMULATE_RTC=y
+CONFIG_HPET_MMAP=y
+CONFIG_HPET_TIMER=y
+CONFIG_HPFS_FS=m
+CONFIG_HPLAN=m
+CONFIG_HPLAN_PLUS=m
+CONFIG_HP_ILO=m
+# CONFIG_HP_WATCHDOG is not set
+CONFIG_HP_WMI=m
+CONFIG_HTC_I2CPLD=y
+CONFIG_HTC_PASIC3=m
+CONFIG_HT_IRQ=y
+CONFIG_HUGETLBFS=y
+CONFIG_HVC_DRIVER=y
+CONFIG_HVC_IRQ=y
+CONFIG_HVC_XEN=y
+# CONFIG_HWMON_DEBUG_CHIP is not set
+CONFIG_HWMON_VID=m
+# CONFIG_HWPOISON_INJECT is not set
+CONFIG_HW_CONSOLE=y
+CONFIG_HW_PERF_EVENTS=y
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_AMD=m
+CONFIG_HW_RANDOM_GEODE=m
+CONFIG_HW_RANDOM_INTEL=m
+CONFIG_HW_RANDOM_TIMERIOMEM=m
+CONFIG_HW_RANDOM_VIA=m
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_BLOCK=m
+CONFIG_HYPERV_NET=m
+CONFIG_HYPERV_STORAGE=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYSDN=m
+CONFIG_HYSDN_CAPI=y
+# CONFIG_HZ_1000 is not set
+# CONFIG_HZ_300 is not set
+CONFIG_I2C=y
+CONFIG_I2C_ALGOBIT=m
+CONFIG_I2C_ALGOPCA=m
+CONFIG_I2C_ALGOPCF=m
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD756_S4882=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_BOARDINFO=y
+CONFIG_I2C_CHARDEV=m
+CONFIG_I2C_COMPAT=y
+# CONFIG_I2C_DEBUG_ALGO is not set
+# CONFIG_I2C_DEBUG_BUS is not set
+# CONFIG_I2C_DEBUG_CORE is not set
+CONFIG_I2C_DESIGNWARE=m
+CONFIG_I2C_GPIO=m
+# CONFIG_I2C_HELPER_AUTO is not set
+CONFIG_I2C_I801=m
+CONFIG_I2C_ISCH=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_NFORCE2_S4985=m
+CONFIG_I2C_OCORES=m
+CONFIG_I2C_OMAP=y
+CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PARPORT_LIGHT=m
+CONFIG_I2C_PCA_ISA=m
+CONFIG_I2C_PCA_PLATFORM=m
+CONFIG_I2C_PIIX4=m
+CONFIG_I2C_SCMI=m
+CONFIG_I2C_SI470X=m
+CONFIG_I2C_SI4713=m
+CONFIG_I2C_SIMTEC=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_SMBUS=m
+CONFIG_I2C_STUB=m
+CONFIG_I2C_TAOS_EVM=m
+CONFIG_I2C_TINY_USB=m
+CONFIG_I2C_VERSATILE=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_XILINX=m
+CONFIG_I2O=m
+CONFIG_I2O_BLOCK=m
+CONFIG_I2O_BUS=m
+CONFIG_I2O_CONFIG=m
+CONFIG_I2O_CONFIG_OLD_IOCTL=y
+CONFIG_I2O_EXT_ADAPTEC=y
+CONFIG_I2O_EXT_ADAPTEC_DMA64=y
+CONFIG_I2O_LCT_NOTIFY_ON_CHANGES=y
+CONFIG_I2O_PROC=m
+CONFIG_I2O_SCSI=m
+CONFIG_I6300ESB_WDT=m
+CONFIG_I7300_IDLE=m
+CONFIG_I7300_IDLE_IOAT_CHANNEL=y
+CONFIG_I82092=m
+CONFIG_I82365=m
+CONFIG_I8K=m
+# CONFIG_IA32_AOUT is not set
+CONFIG_IA32_EMULATION=y
+CONFIG_IB700_WDT=m
+CONFIG_IBMASR=m
+CONFIG_IBMLANA=m
+CONFIG_IBMLS=m
+# CONFIG_IBMMCA_SCSI_DEV_RESET is not set
+CONFIG_IBMMCA_SCSI_ORDER_STANDARD=y
+CONFIG_IBMOL=m
+CONFIG_IBMTR=m
+CONFIG_IBM_ASM=m
+# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
+# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
+# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
+# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
+# CONFIG_IBM_NEW_EMAC_RGMII is not set
+# CONFIG_IBM_NEW_EMAC_TAH is not set
+# CONFIG_IBM_NEW_EMAC_ZMII is not set
+CONFIG_ICPLUS_PHY=y
+CONFIG_ICS932S401=m
+CONFIG_ICST=y
+# CONFIG_IDE is not set
+CONFIG_IDE_PHISON=m
+CONFIG_IEEE1394=m
+CONFIG_IEEE1394_DV1394=m
+CONFIG_IEEE1394_ETH1394=m
+CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
+CONFIG_IEEE1394_OHCI1394=m
+CONFIG_IEEE1394_PCILYNX=m
+CONFIG_IEEE1394_RAWIO=m
+CONFIG_IEEE1394_SBP2=m
+# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
+# CONFIG_IEEE1394_VERBOSEDEBUG is not set
+CONFIG_IEEE1394_VIDEO1394=m
+CONFIG_IEEE802154=m
+CONFIG_IEEE802154_DRIVERS=m
+# CONFIG_IEEE802154_FAKEHARD is not set
+CONFIG_IFB=m
+CONFIG_IGB=m
+CONFIG_IGBVF=m
+CONFIG_IGB_DCA=y
+CONFIG_IIO=m
+CONFIG_IIO_GPIO_TRIGGER=m
+CONFIG_IIO_PERIODIC_RTC_TRIGGER=m
+CONFIG_IIO_RING_BUFFER=y
+CONFIG_IIO_SW_RING=m
+CONFIG_IIO_TRIGGER=y
+# CONFIG_IKCONFIG is not set
+# CONFIG_IMA is not set
+CONFIG_INET=y
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_BEET=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_INET6_XFRM_MODE_TRANSPORT=m
+CONFIG_INET6_XFRM_MODE_TUNNEL=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INET_AH=m
+CONFIG_INET_DCCP_DIAG=m
+CONFIG_INET_DIAG=y
+CONFIG_INET_ESP=m
+CONFIG_INET_IPCOMP=m
+CONFIG_INET_LRO=y
+CONFIG_INET_TCP_DIAG=y
+CONFIG_INET_TUNNEL=m
+CONFIG_INET_XFRM_MODE_BEET=m
+CONFIG_INET_XFRM_MODE_TRANSPORT=m
+CONFIG_INET_XFRM_MODE_TUNNEL=m
+CONFIG_INET_XFRM_TUNNEL=m
+CONFIG_INFINIBAND=m
+CONFIG_INFINIBAND_ADDR_TRANS=y
+CONFIG_INFINIBAND_AMSO1100=m
+CONFIG_INFINIBAND_AMSO1100_DEBUG=y
+CONFIG_INFINIBAND_CXGB3=m
+# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
+CONFIG_INFINIBAND_CXGB4=m
+CONFIG_INFINIBAND_IPATH=m
+CONFIG_INFINIBAND_IPOIB=m
+CONFIG_INFINIBAND_IPOIB_CM=y
+CONFIG_INFINIBAND_IPOIB_DEBUG=y
+# CONFIG_INFINIBAND_IPOIB_DEBUG_DATA is not set
+CONFIG_INFINIBAND_ISER=m
+CONFIG_INFINIBAND_MTHCA=m
+CONFIG_INFINIBAND_MTHCA_DEBUG=y
+# CONFIG_INFINIBAND_NES is not set
+CONFIG_INFINIBAND_QIB=m
+CONFIG_INFINIBAND_SRP=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFINIBAND_USER_MEM=y
+CONFIG_INFTL=m
+CONFIG_INITRAMFS_SOURCE=""
+CONFIG_INIT_ENV_ARG_LIMIT=32
+# CONFIG_INLINE_READ_LOCK is not set
+# CONFIG_INLINE_READ_LOCK_BH is not set
+# CONFIG_INLINE_READ_LOCK_IRQ is not set
+# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_READ_TRYLOCK is not set
+CONFIG_INLINE_READ_UNLOCK=y
+# CONFIG_INLINE_READ_UNLOCK_BH is not set
+CONFIG_INLINE_READ_UNLOCK_IRQ=y
+# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_SPIN_LOCK is not set
+# CONFIG_INLINE_SPIN_LOCK_BH is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
+# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_SPIN_TRYLOCK is not set
+# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK=y
+# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
+CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
+# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
+# CONFIG_INLINE_WRITE_LOCK is not set
+# CONFIG_INLINE_WRITE_LOCK_BH is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
+# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
+# CONFIG_INLINE_WRITE_TRYLOCK is not set
+CONFIG_INLINE_WRITE_UNLOCK=y
+# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
+CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
+# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
+CONFIG_INOTIFY=y
+CONFIG_INOTIFY_USER=y
+CONFIG_INPUT=y
+CONFIG_INPUT_88PM860X_ONKEY=m
+CONFIG_INPUT_AD714X=m
+CONFIG_INPUT_AD714X_I2C=m
+CONFIG_INPUT_AD714X_SPI=m
+# CONFIG_INPUT_APANEL is not set
+CONFIG_INPUT_ATI_REMOTE=m
+CONFIG_INPUT_ATI_REMOTE2=m
+CONFIG_INPUT_ATLAS_BTNS=m
+CONFIG_INPUT_CM109=m
+CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_EVDEV=y
+CONFIG_INPUT_FF_MEMLESS=m
+CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
+CONFIG_INPUT_KEYBOARD=y
+CONFIG_INPUT_KEYSPAN_REMOTE=m
+CONFIG_INPUT_MAX8925_ONKEY=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_MOUSE=y
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
+CONFIG_INPUT_PCAP=m
+CONFIG_INPUT_PCF50633_PMU=m
+CONFIG_INPUT_PCF8574=m
+CONFIG_INPUT_PCSPKR=m
+CONFIG_INPUT_POLLDEV=m
+CONFIG_INPUT_POWERMATE=m
+CONFIG_INPUT_SPARSEKMAP=m
+CONFIG_INPUT_TABLET=y
+CONFIG_INPUT_TWL4030_PWRBUTTON=m
+CONFIG_INPUT_TWL4030_VIBRA=m
+CONFIG_INPUT_UINPUT=m
+CONFIG_INPUT_WINBOND_CIR=m
+CONFIG_INPUT_WISTRON_BTNS=m
+CONFIG_INPUT_WM831X_ON=m
+CONFIG_INPUT_YEALINK=m
+CONFIG_INSTRUCTION_DECODER=y
+CONFIG_INTEL_IDLE=m
+CONFIG_INTEL_IOATDMA=m
+CONFIG_INTEL_MENLOW=m
+CONFIG_INTEL_SCU_IPC=y
+# CONFIG_INTR_REMAP is not set
+# CONFIG_IOMMU_DEBUG is not set
+# CONFIG_IOMMU_STRESS is not set
+CONFIG_IOSCHED_CFQ=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_NOOP=y
+# CONFIG_IO_DELAY_0X80 is not set
+CONFIG_IO_DELAY_0XED=y
+# CONFIG_IO_DELAY_NONE is not set
+CONFIG_IO_DELAY_TYPE_0X80=0
+CONFIG_IO_DELAY_TYPE_0XED=1
+CONFIG_IO_DELAY_TYPE_NONE=3
+CONFIG_IO_DELAY_TYPE_UDELAY=2
+# CONFIG_IO_DELAY_UDELAY is not set
+CONFIG_IP1000=m
+CONFIG_IP6_NF_FILTER=m
+CONFIG_IP6_NF_IPTABLES=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_HL=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_QUEUE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_TARGET_HL=m
+CONFIG_IP6_NF_TARGET_LOG=m
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IPC_NS=y
+CONFIG_IPDDP=m
+CONFIG_IPDDP_DECAP=y
+CONFIG_IPDDP_ENCAP=y
+CONFIG_IPMI_DEVICE_INTERFACE=m
+# CONFIG_IPMI_PANIC_EVENT is not set
+CONFIG_IPMI_POWEROFF=m
+CONFIG_IPMI_SI=m
+CONFIG_IPMI_WATCHDOG=m
+CONFIG_IPPP_FILTER=y
+CONFIG_IPV6=y
+# CONFIG_IPV6_MIP6 is not set
+# CONFIG_IPV6_MROUTE is not set
+CONFIG_IPV6_MULTIPLE_TABLES=y
+CONFIG_IPV6_NDISC_NODETYPE=y
+# CONFIG_IPV6_OPTIMISTIC_DAD is not set
+CONFIG_IPV6_PRIVACY=y
+# CONFIG_IPV6_ROUTER_PREF is not set
+CONFIG_IPV6_SIT=m
+# CONFIG_IPV6_SIT_6RD is not set
+# CONFIG_IPV6_SUBTREES is not set
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IPW2100=m
+# CONFIG_IPW2100_DEBUG is not set
+CONFIG_IPW2100_MONITOR=y
+CONFIG_IPW2200=m
+# CONFIG_IPW2200_DEBUG is not set
+CONFIG_IPW2200_MONITOR=y
+CONFIG_IPW2200_PROMISCUOUS=y
+CONFIG_IPW2200_QOS=y
+CONFIG_IPW2200_RADIOTAP=y
+CONFIG_IPWIRELESS=m
+CONFIG_IPX=m
+# CONFIG_IPX_INTERN is not set
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_DCCP=m
+# CONFIG_IP_DCCP_CCID2_DEBUG is not set
+CONFIG_IP_DCCP_CCID3=y
+# CONFIG_IP_DCCP_CCID3_DEBUG is not set
+CONFIG_IP_DCCP_CCID3_RTO=100
+# CONFIG_IP_DCCP_DEBUG is not set
+CONFIG_IP_DCCP_TFRC_LIB=y
+CONFIG_IP_FIB_HASH=y
+# CONFIG_IP_FIB_TRIE is not set
+CONFIG_IP_MROUTE=y
+# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_MATCH_ADDRTYPE=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_TARGET_CLUSTERIP=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_LOG=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_TARGET_ULOG=m
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+# CONFIG_IP_PNP is not set
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_SCTP=m
+CONFIG_IP_VS=m
+# CONFIG_IP_VS_DEBUG is not set
+CONFIG_IP_VS_DH=m
+CONFIG_IP_VS_FTP=m
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_LBLC=m
+CONFIG_IP_VS_LBLCR=m
+CONFIG_IP_VS_LC=m
+CONFIG_IP_VS_NQ=m
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_AH_ESP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_SCTP=y
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_SED=m
+CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_TAB_BITS=12
+CONFIG_IP_VS_WLC=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IRCOMM=m
+CONFIG_IRDA_CACHE_LAST_LSAP=y
+CONFIG_IRDA_DEBUG=y
+CONFIG_IRDA_FAST_RR=y
+CONFIG_IRDA_ULTRA=y
+CONFIG_IRLAN=m
+CONFIG_IRNET=m
+# CONFIG_IRQSOFF_TRACER is not set
+CONFIG_IRTTY_SIR=m
+CONFIG_IR_CORE=m
+CONFIG_IR_IMON=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_ISA=y
+CONFIG_ISAPNP=y
+CONFIG_ISA_DMA_API=y
+CONFIG_ISCSI_IBFT=m
+CONFIG_ISCSI_IBFT_FIND=y
+CONFIG_ISCSI_TCP=m
+CONFIG_ISDN_AUDIO=y
+CONFIG_ISDN_CAPI=m
+CONFIG_ISDN_CAPI_CAPI20=m
+CONFIG_ISDN_CAPI_CAPIDRV=m
+CONFIG_ISDN_CAPI_CAPIFS=m
+CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
+CONFIG_ISDN_CAPI_MIDDLEWARE=y
+CONFIG_ISDN_DIVAS=m
+CONFIG_ISDN_DIVAS_BRIPCI=y
+CONFIG_ISDN_DIVAS_DIVACAPI=m
+CONFIG_ISDN_DIVAS_MAINT=m
+CONFIG_ISDN_DIVAS_PRIPCI=y
+CONFIG_ISDN_DIVAS_USERIDI=m
+CONFIG_ISDN_DIVERSION=m
+CONFIG_ISDN_DRV_ACT2000=m
+CONFIG_ISDN_DRV_AVMB1_AVM_CS=m
+CONFIG_ISDN_DRV_AVMB1_B1ISA=m
+CONFIG_ISDN_DRV_AVMB1_B1PCI=m
+CONFIG_ISDN_DRV_AVMB1_B1PCIV4=y
+CONFIG_ISDN_DRV_AVMB1_B1PCMCIA=m
+CONFIG_ISDN_DRV_AVMB1_C4=m
+CONFIG_ISDN_DRV_AVMB1_T1ISA=m
+CONFIG_ISDN_DRV_AVMB1_T1PCI=m
+CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_ISDN_DRV_HISAX=m
+CONFIG_ISDN_DRV_ICN=m
+CONFIG_ISDN_DRV_LOOP=m
+CONFIG_ISDN_DRV_PCBIT=m
+CONFIG_ISDN_DRV_SC=m
+CONFIG_ISDN_HDLC=m
+CONFIG_ISDN_I4L=m
+CONFIG_ISDN_MPP=y
+CONFIG_ISDN_PPP=y
+CONFIG_ISDN_PPP_BSDCOMP=m
+CONFIG_ISDN_PPP_VJ=y
+CONFIG_ISDN_TTY_FAX=y
+CONFIG_ISDN_X25=y
+# CONFIG_ISI is not set
+CONFIG_ISL29003=m
+CONFIG_ISO9660_FS=m
+CONFIG_ISP1301_OMAP=m
+CONFIG_ISTALLION=m
+CONFIG_IT8712F_WDT=m
+CONFIG_IT87_WDT=m
+CONFIG_ITCO_VENDOR_SUPPORT=y
+CONFIG_ITCO_WDT=m
+CONFIG_IWL3945=m
+CONFIG_IWL4965=y
+CONFIG_IWL5000=y
+CONFIG_IWLAGN=m
+CONFIG_IWLWIFI=m
+# CONFIG_IWLWIFI_DEBUG is not set
+CONFIG_IWLWIFI_DEVICE_TRACING=y
+CONFIG_IWM=m
+CONFIG_IWMC3200TOP=m
+# CONFIG_IWMC3200TOP_DEBUG is not set
+# CONFIG_IWM_DEBUG is not set
+CONFIG_IWM_TRACING=y
+CONFIG_IXGB=m
+CONFIG_IXGBE=m
+CONFIG_IXGBEVF=m
+CONFIG_IXGBE_DCA=y
+CONFIG_IXGBE_DCB=y
+CONFIG_JBD=y
+CONFIG_JBD2=y
+# CONFIG_JBD2_DEBUG is not set
+# CONFIG_JBD_DEBUG is not set
+CONFIG_JFFS2_CMODE_FAVOURLZO=y
+# CONFIG_JFFS2_CMODE_NONE is not set
+# CONFIG_JFFS2_CMODE_PRIORITY is not set
+# CONFIG_JFFS2_CMODE_SIZE is not set
+CONFIG_JFFS2_COMPRESSION_OPTIONS=y
+CONFIG_JFFS2_FS=m
+CONFIG_JFFS2_FS_DEBUG=0
+# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
+CONFIG_JFFS2_FS_WRITEBUFFER=y
+# CONFIG_JFFS2_FS_XATTR is not set
+CONFIG_JFFS2_LZO=y
+CONFIG_JFFS2_RTIME=y
+# CONFIG_JFFS2_RUBIN is not set
+# CONFIG_JFFS2_SUMMARY is not set
+CONFIG_JFFS2_ZLIB=y
+# CONFIG_JFS_DEBUG is not set
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+CONFIG_JFS_STATISTICS=y
+CONFIG_JME=m
+CONFIG_JOLIET=y
+CONFIG_JOYSTICK_A3D=m
+CONFIG_JOYSTICK_ADI=m
+CONFIG_JOYSTICK_ANALOG=m
+CONFIG_JOYSTICK_COBRA=m
+CONFIG_JOYSTICK_DB9=m
+CONFIG_JOYSTICK_GAMECON=m
+CONFIG_JOYSTICK_GF2K=m
+CONFIG_JOYSTICK_GRIP=m
+CONFIG_JOYSTICK_GRIP_MP=m
+CONFIG_JOYSTICK_GUILLEMOT=m
+CONFIG_JOYSTICK_IFORCE=m
+CONFIG_JOYSTICK_IFORCE_232=y
+CONFIG_JOYSTICK_IFORCE_USB=y
+CONFIG_JOYSTICK_INTERACT=m
+CONFIG_JOYSTICK_JOYDUMP=m
+CONFIG_JOYSTICK_MAGELLAN=m
+CONFIG_JOYSTICK_SIDEWINDER=m
+CONFIG_JOYSTICK_SPACEBALL=m
+CONFIG_JOYSTICK_SPACEORB=m
+CONFIG_JOYSTICK_STINGER=m
+CONFIG_JOYSTICK_TMDC=m
+CONFIG_JOYSTICK_TURBOGRAFX=m
+CONFIG_JOYSTICK_TWIDJOY=m
+CONFIG_JOYSTICK_WALKERA0701=m
+CONFIG_JOYSTICK_WARRIOR=m
+CONFIG_JOYSTICK_XPAD=m
+CONFIG_JOYSTICK_XPAD_FF=y
+CONFIG_JOYSTICK_XPAD_LEDS=y
+CONFIG_JOYSTICK_ZHENHUA=m
+CONFIG_K8_NB=y
+CONFIG_K8_NUMA=y
+CONFIG_KALLSYMS=y
+CONFIG_KALLSYMS_ALL=y
+# CONFIG_KALLSYMS_EXTRA_PASS is not set
+CONFIG_KARMA_PARTITION=y
+CONFIG_KDB_KEYBOARD=y
+# CONFIG_KERNEL_BZIP2 is not set
+CONFIG_KERNEL_GZIP=y
+# CONFIG_KERNEL_LZMA is not set
+# CONFIG_KERNEL_LZO is not set
+CONFIG_KEXEC=y
+CONFIG_KEXEC_JUMP=y
+CONFIG_KEYBOARD_ADP5520=m
+CONFIG_KEYBOARD_ADP5588=m
+CONFIG_KEYBOARD_ATKBD=y
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_LM8323=m
+CONFIG_KEYBOARD_MATRIX=m
+CONFIG_KEYBOARD_MAX7359=m
+CONFIG_KEYBOARD_OPENCORES=m
+CONFIG_KEYBOARD_STOWAWAY=m
+CONFIG_KEYBOARD_TCA6416=m
+CONFIG_KEYBOARD_TWL4030=m
+CONFIG_KEYS=y
+# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
+CONFIG_KGDB=y
+CONFIG_KGDB_KDB=y
+CONFIG_KGDB_LOW_LEVEL_TRAP=y
+CONFIG_KGDB_SERIAL_CONSOLE=y
+# CONFIG_KGDB_TESTS is not set
+CONFIG_KINGSUN_DONGLE=m
+# CONFIG_KMEMTRACE is not set
+CONFIG_KPROBES=y
+# CONFIG_KPROBES_SANITY_TEST is not set
+CONFIG_KPROBE_EVENT=y
+CONFIG_KRETPROBES=y
+CONFIG_KS0108=m
+CONFIG_KS0108_DELAY=2
+CONFIG_KS0108_PORT=0x378
+CONFIG_KS8842=m
+CONFIG_KS8851=m
+CONFIG_KS8851_MLL=m
+CONFIG_KS959_DONGLE=m
+CONFIG_KSDAZZLE_DONGLE=m
+# CONFIG_KSYM_TRACER is not set
+CONFIG_KSZ884X_PCI=m
+CONFIG_KVM=m
+CONFIG_KVM_AMD=m
+CONFIG_KVM_APIC_ARCHITECTURE=y
+CONFIG_KVM_CLOCK=y
+CONFIG_KVM_GUEST=y
+CONFIG_KVM_INTEL=m
+CONFIG_KVM_MMIO=y
+CONFIG_KXSD9=m
+CONFIG_L2TP=m
+CONFIG_L2TP_DEBUGFS=m
+# CONFIG_L2TP_V3 is not set
+CONFIG_LANCE=m
+CONFIG_LANMEDIA=m
+CONFIG_LATENCYTOP=y
+CONFIG_LBDAF=y
+CONFIG_LCD_CLASS_DEVICE=m
+CONFIG_LCD_ILI9320=m
+CONFIG_LCD_L4F00242T03=m
+CONFIG_LCD_LMS283GF05=m
+CONFIG_LCD_LTV350QV=m
+CONFIG_LCD_PLATFORM=m
+CONFIG_LCD_S6E63M0=m
+CONFIG_LCD_TDO24M=m
+CONFIG_LCD_VGG2432A4=m
+# CONFIG_LDM_DEBUG is not set
+CONFIG_LDM_PARTITION=y
+CONFIG_LEDS=y
+CONFIG_LEDS_88PM860X=m
+CONFIG_LEDS_ADP5520=m
+CONFIG_LEDS_ALIX2=m
+CONFIG_LEDS_BD2802=m
+CONFIG_LEDS_CLASS=m
+# CONFIG_LEDS_CLEVO_MAIL is not set
+CONFIG_LEDS_CPU=y
+CONFIG_LEDS_DA903X=m
+CONFIG_LEDS_DAC124S085=m
+CONFIG_LEDS_DELL_NETBOOKS=m
+CONFIG_LEDS_GPIO=m
+CONFIG_LEDS_GPIO_PLATFORM=y
+CONFIG_LEDS_INTEL_SS4200=m
+CONFIG_LEDS_LP3944=m
+CONFIG_LEDS_LT3593=m
+CONFIG_LEDS_MC13783=m
+CONFIG_LEDS_NET48XX=m
+CONFIG_LEDS_NET5501=m
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_REGULATOR=m
+CONFIG_LEDS_TRIGGERS=y
+CONFIG_LEDS_TRIGGER_BACKLIGHT=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+CONFIG_LEDS_TRIGGER_GPIO=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LEDS_WM831X_STATUS=m
+CONFIG_LEDS_WM8350=m
+CONFIG_LEDS_WRAP=m
+CONFIG_LEGACY_PTYS=y
+CONFIG_LEGACY_PTY_COUNT=0
+# CONFIG_LGUEST is not set
+# CONFIG_LGUEST_GUEST is not set
+CONFIG_LIB80211=m
+CONFIG_LIB80211_CRYPT_CCMP=m
+CONFIG_LIB80211_CRYPT_TKIP=m
+CONFIG_LIB80211_CRYPT_WEP=m
+# CONFIG_LIB80211_DEBUG is not set
+CONFIG_LIBCRC32C=m
+CONFIG_LIBERTAS=m
+CONFIG_LIBERTAS_CS=m
+# CONFIG_LIBERTAS_DEBUG is not set
+CONFIG_LIBERTAS_SDIO=m
+CONFIG_LIBERTAS_SPI=m
+CONFIG_LIBERTAS_THINFIRM=m
+# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
+CONFIG_LIBERTAS_THINFIRM_USB=m
+CONFIG_LIBERTAS_USB=m
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_LIBIPW=m
+CONFIG_LIBIPW_DEBUG=y
+CONFIG_LINE6_USB=m
+CONFIG_LIRC_ATIUSB=m
+CONFIG_LIRC_BT829=m
+CONFIG_LIRC_CONFIG_LIRC_WPC8769L=m
+CONFIG_LIRC_ENE0100=m
+# CONFIG_LIRC_GPIO is not set
+CONFIG_LIRC_I2C=m
+CONFIG_LIRC_IGORPLUGUSB=m
+CONFIG_LIRC_IMON=m
+CONFIG_LIRC_IT87=m
+CONFIG_LIRC_ITE8709=m
+CONFIG_LIRC_MCEUSB=m
+# CONFIG_LIRC_PARALLEL is not set
+CONFIG_LIRC_SASEM=m
+CONFIG_LIRC_SERIAL=m
+CONFIG_LIRC_SIR=m
+CONFIG_LIRC_STREAMZAP=m
+CONFIG_LIRC_TTUSBIR=m
+CONFIG_LIS3L02DQ=m
+CONFIG_LITELINK_DONGLE=m
+# CONFIG_LKDTM is not set
+CONFIG_LNE390=m
+CONFIG_LOCALVERSION=""
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_LOCKD=m
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_LOCKD_V4=y
+CONFIG_LOCK_KERNEL=y
+# CONFIG_LOCK_STAT is not set
+# CONFIG_LOGFS is not set
+CONFIG_LOGIG940_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGITECH_FF=y
+# CONFIG_LOGO is not set
+CONFIG_LP486E=m
+CONFIG_LPC_SCH=m
+# CONFIG_LP_CONSOLE is not set
+CONFIG_LSI_ET1011C_PHY=y
+CONFIG_LSM_MMAP_MIN_ADDR=0
+CONFIG_LTPC=m
+CONFIG_LXT_PHY=y
+CONFIG_LZO_COMPRESS=m
+CONFIG_LZO_DECOMPRESS=y
+CONFIG_M25PXX_USE_FAST_READ=y
+# CONFIG_M386 is not set
+# CONFIG_M486 is not set
+# CONFIG_M586MMX is not set
+# CONFIG_M686 is not set
+CONFIG_MA600_DONGLE=m
+CONFIG_MAC80211=m
+CONFIG_MAC80211_DEBUGFS=y
+# CONFIG_MAC80211_DEBUG_MENU is not set
+CONFIG_MAC80211_HAS_RC=y
+CONFIG_MAC80211_HWSIM=m
+CONFIG_MAC80211_LEDS=y
+CONFIG_MAC80211_MESH=y
+CONFIG_MAC80211_RC_DEFAULT="minstrel"
+CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
+# CONFIG_MAC80211_RC_DEFAULT_PID is not set
+CONFIG_MAC80211_RC_MINSTREL=y
+CONFIG_MACHZ_WDT=m
+# CONFIG_MACH_CM_T35 is not set
+# CONFIG_MACH_DEVKIT8000 is not set
+CONFIG_MACH_IGEP0020=y
+CONFIG_MACH_NOKIA_RX51=y
+CONFIG_MACH_OMAP3517EVM=y
+CONFIG_MACH_OMAP3EVM=y
+CONFIG_MACH_OMAP3_BEAGLE=y
+CONFIG_MACH_OMAP3_PANDORA=y
+CONFIG_MACH_OMAP3_TOUCHBOOK=y
+CONFIG_MACH_OMAP_3430SDP=y
+CONFIG_MACH_OMAP_3630SDP=y
+CONFIG_MACH_OMAP_LDP=y
+CONFIG_MACH_OMAP_ZOOM2=y
+CONFIG_MACH_OMAP_ZOOM3=y
+CONFIG_MACH_OVERO=y
+CONFIG_MACH_SBC3530=y
+CONFIG_MACH_VERSATILE_AB=y
+CONFIG_MACINTOSH_DRIVERS=y
+CONFIG_MACVLAN=m
+# CONFIG_MACVTAP is not set
+CONFIG_MAC_EMUMOUSEBTN=y
+CONFIG_MAC_PARTITION=y
+CONFIG_MADGEMC=m
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_MANTIS_CORE=m
+CONFIG_MARVELL_PHY=y
+# CONFIG_MATH_EMULATION is not set
+# CONFIG_MATOM is not set
+CONFIG_MAX1363=m
+CONFIG_MAX1363_RING_BUFFER=y
+CONFIG_MAX63XX_WATCHDOG=m
+CONFIG_MAX8925_POWER=m
+# CONFIG_MAXSMP is not set
+CONFIG_MAX_RAW_DEVS=256
+CONFIG_MCA=y
+CONFIG_MCA_LEGACY=y
+# CONFIG_MCA_PROC_FS is not set
+# CONFIG_MCORE2 is not set
+CONFIG_MCP2120_DONGLE=m
+# CONFIG_MCRUSOE is not set
+CONFIG_MCS_FIR=m
+# CONFIG_MCYRIXIII is not set
+CONFIG_MD=y
+CONFIG_MDA_CONSOLE=m
+CONFIG_MDIO=m
+CONFIG_MDIO_BITBANG=y
+CONFIG_MDIO_GPIO=y
+CONFIG_MD_AUTODETECT=y
+CONFIG_MD_FAULTY=m
+CONFIG_MD_LINEAR=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_MD_RAID0=m
+CONFIG_MD_RAID1=m
+CONFIG_MD_RAID10=m
+CONFIG_MD_RAID456=m
+CONFIG_MD_RAID6_PQ=m
+CONFIG_MEDIA_ATTACH=y
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_TUNER=m
+# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+CONFIG_MEDIA_TUNER_MAX2165=m
+CONFIG_MEDIA_TUNER_MC44S803=m
+CONFIG_MEDIA_TUNER_MT2060=m
+CONFIG_MEDIA_TUNER_MT20XX=m
+CONFIG_MEDIA_TUNER_MT2131=m
+CONFIG_MEDIA_TUNER_MT2266=m
+CONFIG_MEDIA_TUNER_MXL5005S=m
+CONFIG_MEDIA_TUNER_MXL5007T=m
+CONFIG_MEDIA_TUNER_QT1010=m
+CONFIG_MEDIA_TUNER_SIMPLE=m
+CONFIG_MEDIA_TUNER_TDA18271=m
+CONFIG_MEDIA_TUNER_TDA827X=m
+CONFIG_MEDIA_TUNER_TDA8290=m
+CONFIG_MEDIA_TUNER_TDA9887=m
+CONFIG_MEDIA_TUNER_TEA5761=m
+CONFIG_MEDIA_TUNER_TEA5767=m
+CONFIG_MEDIA_TUNER_XC2028=m
+CONFIG_MEDIA_TUNER_XC5000=m
+# CONFIG_MEFFICEON is not set
+CONFIG_MEGARAID_LEGACY=m
+CONFIG_MEGARAID_MAILBOX=m
+CONFIG_MEGARAID_MM=m
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_SAS=m
+CONFIG_MEMORY_FAILURE=y
+CONFIG_MEMORY_HOTPLUG_SPARSE=y
+CONFIG_MEMORY_HOTREMOVE=y
+# CONFIG_MEMSTICK_DEBUG is not set
+CONFIG_MEMSTICK_JMICRON_38X=m
+CONFIG_MEMSTICK_TIFM_MS=m
+# CONFIG_MEMSTICK_UNSAFE_RESUME is not set
+# CONFIG_MEMTEST is not set
+CONFIG_MFD_88PM860X=y
+CONFIG_MFD_CORE=y
+CONFIG_MFD_MAX8925=y
+CONFIG_MFD_MC13783=m
+CONFIG_MFD_PCF50633=m
+CONFIG_MFD_RDC321X=m
+CONFIG_MFD_SM501=m
+# CONFIG_MFD_SM501_GPIO is not set
+CONFIG_MFD_SUPPORT=y
+CONFIG_MFD_TC35892=y
+CONFIG_MFD_TIMBERDALE=m
+CONFIG_MFD_WM831X=y
+CONFIG_MFD_WM8350=y
+CONFIG_MFD_WM8350_I2C=y
+CONFIG_MFD_WM8400=m
+CONFIG_MFD_WM8994=y
+# CONFIG_MGEODEGX1 is not set
+# CONFIG_MGEODE_LX is not set
+CONFIG_MG_DISK=m
+CONFIG_MG_DISK_RES=0
+CONFIG_MICREL_PHY=m
+CONFIG_MICROCODE=m
+CONFIG_MICROCODE_AMD=y
+CONFIG_MICROCODE_INTEL=y
+CONFIG_MICROCODE_OLD_INTERFACE=y
+CONFIG_MIGRATION=y
+CONFIG_MINIX_FS=m
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_MISC_DEVICES=y
+CONFIG_MISC_FILESYSTEMS=y
+CONFIG_MISDN=m
+CONFIG_MISDN_AVMFRITZ=m
+CONFIG_MISDN_DSP=m
+CONFIG_MISDN_HFCMULTI=m
+CONFIG_MISDN_HFCPCI=m
+CONFIG_MISDN_HFCUSB=m
+CONFIG_MISDN_INFINEON=m
+CONFIG_MISDN_IPAC=m
+CONFIG_MISDN_ISAR=m
+CONFIG_MISDN_L1OIP=m
+CONFIG_MISDN_NETJET=m
+CONFIG_MISDN_SPEEDFAX=m
+CONFIG_MISDN_W6692=m
+CONFIG_MIXCOMWD=m
+# CONFIG_MK6 is not set
+# CONFIG_MK7 is not set
+# CONFIG_MK8 is not set
+CONFIG_MKISS=m
+CONFIG_MLX4_CORE=m
+CONFIG_MLX4_DEBUG=y
+CONFIG_MLX4_EN=m
+CONFIG_MLX4_INFINIBAND=m
+CONFIG_MMC=y
+CONFIG_MMC_BLOCK_BOUNCE=y
+CONFIG_MMC_CB710=m
+# CONFIG_MMC_DEBUG is not set
+CONFIG_MMC_OMAP=m
+CONFIG_MMC_OMAP_HS=y
+CONFIG_MMC_RICOH_MMC=y
+CONFIG_MMC_SDHCI_PCI=m
+CONFIG_MMC_SDHCI_PLTFM=m
+CONFIG_MMC_SDRICOH_CS=m
+CONFIG_MMC_SPI=m
+# CONFIG_MMC_TEST is not set
+CONFIG_MMC_TIFM_SD=m
+# CONFIG_MMC_TMIO is not set
+# CONFIG_MMC_UNSAFE_RESUME is not set
+CONFIG_MMC_VIA_SDMMC=m
+CONFIG_MMC_WBSD=m
+CONFIG_MMIOTRACE=y
+# CONFIG_MMIOTRACE_TEST is not set
+CONFIG_MMU=y
+CONFIG_MMU_NOTIFIER=y
+CONFIG_MM_OWNER=y
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_MOUSE_APPLETOUCH=m
+# CONFIG_MOUSE_ATIXL is not set
+CONFIG_MOUSE_BCM5974=m
+CONFIG_MOUSE_GPIO=m
+CONFIG_MOUSE_INPORT=m
+CONFIG_MOUSE_LOGIBM=m
+CONFIG_MOUSE_PC110PAD=m
+CONFIG_MOUSE_PS2_ALPS=y
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_LIFEBOOK=y
+CONFIG_MOUSE_PS2_LOGIPS2PP=y
+CONFIG_MOUSE_PS2_OLPC=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+CONFIG_MOUSE_PS2_SYNAPTICS=y
+# CONFIG_MOUSE_PS2_TOUCHKIT is not set
+CONFIG_MOUSE_PS2_TRACKPOINT=y
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_SYNAPTICS_I2C=m
+CONFIG_MOXA_INTELLIO=m
+CONFIG_MOXA_SMARTIO=m
+# CONFIG_MPENTIUM4 is not set
+# CONFIG_MPENTIUMII is not set
+# CONFIG_MPENTIUMIII is not set
+# CONFIG_MPENTIUMM is not set
+# CONFIG_MPSC is not set
+CONFIG_MRST_RAR_HANDLER=m
+CONFIG_MSDOS_FS=m
+CONFIG_MSDOS_PARTITION=y
+CONFIG_MSI_LAPTOP=m
+CONFIG_MSI_WMI=m
+CONFIG_MSPRO_BLOCK=m
+CONFIG_MTDRAM_ERASE_SIZE=128
+CONFIG_MTDRAM_TOTAL_SIZE=4096
+# CONFIG_MTD_AFS_PARTS is not set
+CONFIG_MTD_AMD76XROM=m
+CONFIG_MTD_BLOCK2MTD=m
+CONFIG_MTD_BLOCK_RO=m
+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
+# CONFIG_MTD_CFI_GEOMETRY is not set
+CONFIG_MTD_CFI_I1=y
+CONFIG_MTD_CFI_I2=y
+# CONFIG_MTD_CFI_I4 is not set
+# CONFIG_MTD_CFI_I8 is not set
+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
+CONFIG_MTD_CFI_NOSWAP=y
+CONFIG_MTD_CK804XROM=m
+CONFIG_MTD_CMDLINE_PARTS=y
+CONFIG_MTD_DATAFLASH_OTP=y
+# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set
+# CONFIG_MTD_DEBUG is not set
+CONFIG_MTD_DOCECC=m
+CONFIG_MTD_DOCPROBE=m
+CONFIG_MTD_DOCPROBE_ADDRESS=0
+# CONFIG_MTD_DOCPROBE_ADVANCED is not set
+CONFIG_MTD_ESB2ROM=m
+CONFIG_MTD_ICHXROM=m
+# CONFIG_MTD_IMPA7 is not set
+CONFIG_MTD_INTEL_VR_NOR=m
+CONFIG_MTD_L440GX=m
+CONFIG_MTD_LPDDR=m
+CONFIG_MTD_M25P80=m
+CONFIG_MTD_MAP_BANK_WIDTH_1=y
+# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
+CONFIG_MTD_MAP_BANK_WIDTH_2=y
+# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
+CONFIG_MTD_MAP_BANK_WIDTH_4=y
+# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
+CONFIG_MTD_NAND_CAFE=m
+CONFIG_MTD_NAND_CS553X=m
+CONFIG_MTD_NAND_DENALI=m
+CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xFF108018
+CONFIG_MTD_NAND_DISKONCHIP=m
+# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
+CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
+# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
+# CONFIG_MTD_NAND_ECC_SMC is not set
+# CONFIG_MTD_NAND_GPIO is not set
+# CONFIG_MTD_NAND_MUSEUM_IDS is not set
+CONFIG_MTD_NAND_OMAP2=y
+CONFIG_MTD_NAND_OMAP_PREFETCH=y
+CONFIG_MTD_NAND_OMAP_PREFETCH_DMA=y
+CONFIG_MTD_NAND_RICOH=m
+# CONFIG_MTD_NAND_TMIO is not set
+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
+CONFIG_MTD_NETSC520=m
+CONFIG_MTD_NETtel=m
+CONFIG_MTD_ONENAND_2X_PROGRAM=y
+CONFIG_MTD_ONENAND_GENERIC=m
+CONFIG_MTD_ONENAND_OMAP2=m
+# CONFIG_MTD_ONENAND_OTP is not set
+CONFIG_MTD_ONENAND_SIM=m
+CONFIG_MTD_ONENAND_VERIFY_WRITE=y
+CONFIG_MTD_OOPS=m
+# CONFIG_MTD_OTP is not set
+CONFIG_MTD_PARTITIONS=y
+CONFIG_MTD_PCI=m
+CONFIG_MTD_PCMCIA=m
+# CONFIG_MTD_PCMCIA_ANONYMOUS is not set
+# CONFIG_MTD_PHYSMAP_COMPAT is not set
+CONFIG_MTD_PISMO=m
+CONFIG_MTD_PMC551=m
+# CONFIG_MTD_PMC551_BUGFIX is not set
+# CONFIG_MTD_PMC551_DEBUG is not set
+CONFIG_MTD_QINFO_PROBE=m
+CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
+# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+CONFIG_MTD_SBC_GXX=m
+CONFIG_MTD_SC520CDP=m
+CONFIG_MTD_SCB2_FLASH=m
+CONFIG_MTD_SCx200_DOCFLASH=m
+CONFIG_MTD_TESTS=m
+CONFIG_MTD_TS5500=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_BEB_RESERVE=1
+# CONFIG_MTD_UBI_DEBUG is not set
+CONFIG_MTD_UBI_GLUEBI=m
+CONFIG_MTD_UBI_WL_THRESHOLD=4096
+CONFIG_MTRR=y
+CONFIG_MTRR_SANITIZER=y
+CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0
+CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1
+# CONFIG_MULTICORE_RAID456 is not set
+# CONFIG_MUSB_PIO_ONLY is not set
+# CONFIG_MVIAC3_2 is not set
+# CONFIG_MVIAC7 is not set
+CONFIG_MWAVE=m
+# CONFIG_MWINCHIP3D is not set
+# CONFIG_MWINCHIPC6 is not set
+CONFIG_MWL8K=m
+CONFIG_MYRI10GE=m
+CONFIG_MYRI10GE_DCA=y
+CONFIG_N2=m
+CONFIG_NAMESPACES=y
+CONFIG_NATIONAL_PHY=y
+CONFIG_NATSEMI=m
+CONFIG_NCPFS_EXTRAS=y
+CONFIG_NCPFS_IOCTL_LOCKING=y
+CONFIG_NCPFS_NFS_NS=y
+CONFIG_NCPFS_NLS=y
+CONFIG_NCPFS_OS2_NS=y
+CONFIG_NCPFS_PACKET_SIGNING=y
+# CONFIG_NCPFS_SMALLDOS is not set
+CONFIG_NCPFS_STRONG=y
+CONFIG_NCP_FS=m
+CONFIG_NE2000=m
+CONFIG_NE2K_PCI=m
+CONFIG_NE2_MCA=m
+CONFIG_NE3210=m
+CONFIG_NEED_MULTIPLE_NODES=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y
+CONFIG_NEED_SG_DMA_LENGTH=y
+CONFIG_NEON=y
+CONFIG_NET=y
+CONFIG_NETCONSOLE=m
+CONFIG_NETCONSOLE_DYNAMIC=y
+CONFIG_NETDEVICES=y
+CONFIG_NETDEV_1000=y
+CONFIG_NETDEV_10000=y
+CONFIG_NETFILTER=y
+CONFIG_NETFILTER_ADVANCED=y
+# CONFIG_NETFILTER_DEBUG is not set
+CONFIG_NETFILTER_NETLINK=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NETFILTER_NETLINK_QUEUE=m
+CONFIG_NETFILTER_TPROXY=m
+CONFIG_NETFILTER_XTABLES=m
+CONFIG_NETFILTER_XT_CONNMARK=m
+CONFIG_NETFILTER_XT_MARK=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_HL=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_RECENT=m
+CONFIG_NETFILTER_XT_MATCH_SCTP=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HL=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFLOG=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
+CONFIG_NETFILTER_XT_TARGET_RATEEST=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TEE=m
+CONFIG_NETFILTER_XT_TARGET_TPROXY=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETLABEL=y
+CONFIG_NETPOLL=y
+# CONFIG_NETPOLL_TRAP is not set
+CONFIG_NETROM=m
+CONFIG_NETWORK_FILESYSTEMS=y
+CONFIG_NETWORK_SECMARK=y
+CONFIG_NETXEN_NIC=m
+CONFIG_NET_9P=m
+# CONFIG_NET_9P_DEBUG is not set
+CONFIG_NET_9P_RDMA=m
+CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_PEDIT=m
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_SIMP=m
+CONFIG_NET_ACT_SKBEDIT=m
+CONFIG_NET_CLS=y
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_FW=m
+# CONFIG_NET_CLS_IND is not set
+CONFIG_NET_CLS_ROUTE=y
+CONFIG_NET_CLS_ROUTE4=m
+CONFIG_NET_CLS_RSVP=m
+CONFIG_NET_CLS_RSVP6=m
+CONFIG_NET_CLS_TCINDEX=m
+CONFIG_NET_DMA=y
+# CONFIG_NET_DROP_MONITOR is not set
+CONFIG_NET_DSA=y
+CONFIG_NET_DSA_MV88E6060=y
+CONFIG_NET_DSA_MV88E6123_61_65=y
+CONFIG_NET_DSA_MV88E6131=y
+CONFIG_NET_DSA_MV88E6XXX=y
+CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
+CONFIG_NET_DSA_TAG_DSA=y
+CONFIG_NET_DSA_TAG_EDSA=y
+CONFIG_NET_DSA_TAG_TRAILER=y
+CONFIG_NET_EMATCH=y
+CONFIG_NET_EMATCH_CMP=m
+CONFIG_NET_EMATCH_META=m
+CONFIG_NET_EMATCH_NBYTE=m
+CONFIG_NET_EMATCH_STACK=32
+CONFIG_NET_EMATCH_TEXT=m
+CONFIG_NET_EMATCH_U32=m
+CONFIG_NET_ETHERNET=y
+CONFIG_NET_FC=y
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_ISA=y
+CONFIG_NET_KEY=m
+# CONFIG_NET_KEY_MIGRATE is not set
+CONFIG_NET_NS=y
+CONFIG_NET_PCI=y
+CONFIG_NET_PCMCIA=y
+CONFIG_NET_PKTGEN=m
+CONFIG_NET_POLL_CONTROLLER=y
+CONFIG_NET_SB1000=m
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_ATM=m
+CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_DRR=m
+CONFIG_NET_SCH_DSMARK=m
+CONFIG_NET_SCH_FIFO=y
+CONFIG_NET_SCH_GRED=m
+CONFIG_NET_SCH_HFSC=m
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_MULTIQ=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_RED=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_TEQL=m
+CONFIG_NET_SCTPPROBE=m
+CONFIG_NET_TULIP=y
+CONFIG_NET_VENDOR_3COM=y
+CONFIG_NET_VENDOR_RACAL=y
+CONFIG_NET_VENDOR_SMC=y
+CONFIG_NEW_LEDS=y
+CONFIG_NFSD=m
+CONFIG_NFSD_V2_ACL=y
+CONFIG_NFSD_V3=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_NFS_ACL_SUPPORT=m
+CONFIG_NFS_COMMON=y
+CONFIG_NFS_FS=m
+# CONFIG_NFS_FSCACHE is not set
+CONFIG_NFS_V3=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+# CONFIG_NFS_V4_1 is not set
+CONFIG_NFTL_RW=y
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_EVENTS=y
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_H323=m
+CONFIG_NF_CONNTRACK_IPV4=m
+CONFIG_NF_CONNTRACK_IPV6=m
+CONFIG_NF_CONNTRACK_IRC=m
+CONFIG_NF_CONNTRACK_MARK=y
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_PROC_COMPAT=y
+CONFIG_NF_CONNTRACK_SANE=m
+CONFIG_NF_CONNTRACK_SECMARK=y
+CONFIG_NF_CONNTRACK_SIP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CONNTRACK_ZONES=y
+CONFIG_NF_CT_ACCT=y
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_CT_PROTO_DCCP=m
+CONFIG_NF_CT_PROTO_GRE=m
+CONFIG_NF_CT_PROTO_SCTP=m
+CONFIG_NF_CT_PROTO_UDPLITE=m
+CONFIG_NF_DEFRAG_IPV4=m
+CONFIG_NF_NAT=m
+CONFIG_NF_NAT_AMANDA=m
+CONFIG_NF_NAT_FTP=m
+CONFIG_NF_NAT_H323=m
+CONFIG_NF_NAT_IRC=m
+CONFIG_NF_NAT_NEEDED=y
+CONFIG_NF_NAT_PPTP=m
+CONFIG_NF_NAT_PROTO_DCCP=m
+CONFIG_NF_NAT_PROTO_GRE=m
+CONFIG_NF_NAT_PROTO_SCTP=m
+CONFIG_NF_NAT_PROTO_UDPLITE=m
+CONFIG_NF_NAT_SIP=m
+CONFIG_NF_NAT_SNMP_BASIC=m
+CONFIG_NF_NAT_TFTP=m
+CONFIG_NI52=m
+CONFIG_NI65=m
+CONFIG_NILFS2_FS=m
+CONFIG_NIU=m
+CONFIG_NL80211_TESTMODE=y
+CONFIG_NLATTR=y
+CONFIG_NLS=y
+CONFIG_NLS_ASCII=m
+CONFIG_NLS_CODEPAGE_1250=m
+CONFIG_NLS_CODEPAGE_1251=m
+CONFIG_NLS_CODEPAGE_437=m
+CONFIG_NLS_CODEPAGE_737=m
+CONFIG_NLS_CODEPAGE_775=m
+CONFIG_NLS_CODEPAGE_850=m
+CONFIG_NLS_CODEPAGE_852=m
+CONFIG_NLS_CODEPAGE_855=m
+CONFIG_NLS_CODEPAGE_857=m
+CONFIG_NLS_CODEPAGE_860=m
+CONFIG_NLS_CODEPAGE_861=m
+CONFIG_NLS_CODEPAGE_862=m
+CONFIG_NLS_CODEPAGE_863=m
+CONFIG_NLS_CODEPAGE_864=m
+CONFIG_NLS_CODEPAGE_865=m
+CONFIG_NLS_CODEPAGE_866=m
+CONFIG_NLS_CODEPAGE_869=m
+CONFIG_NLS_CODEPAGE_874=m
+CONFIG_NLS_CODEPAGE_932=m
+CONFIG_NLS_CODEPAGE_936=m
+CONFIG_NLS_CODEPAGE_949=m
+CONFIG_NLS_CODEPAGE_950=m
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NLS_ISO8859_1=m
+CONFIG_NLS_ISO8859_13=m
+CONFIG_NLS_ISO8859_14=m
+CONFIG_NLS_ISO8859_15=m
+CONFIG_NLS_ISO8859_2=m
+CONFIG_NLS_ISO8859_3=m
+CONFIG_NLS_ISO8859_4=m
+CONFIG_NLS_ISO8859_5=m
+CONFIG_NLS_ISO8859_6=m
+CONFIG_NLS_ISO8859_7=m
+CONFIG_NLS_ISO8859_8=m
+CONFIG_NLS_ISO8859_9=m
+CONFIG_NLS_KOI8_R=m
+CONFIG_NLS_KOI8_U=m
+CONFIG_NLS_UTF8=m
+CONFIG_NODES_SHIFT=6
+CONFIG_NODES_SPAN_OTHER_NODES=y
+# CONFIG_NOHIGHMEM is not set
+CONFIG_NOP_TRACER=y
+CONFIG_NOP_USB_XCEIV=m
+CONFIG_NORTEL_HERMES=m
+CONFIG_NOZOMI=m
+CONFIG_NO_BOOTMEM=y
+CONFIG_NS83820=m
+CONFIG_NSC_FIR=m
+CONFIG_NSC_GPIO=m
+# CONFIG_NTFS_DEBUG is not set
+CONFIG_NTFS_FS=m
+# CONFIG_NTFS_RW is not set
+CONFIG_NUMA=y
+# CONFIG_NUMA_EMU is not set
+CONFIG_NUMA_IRQ_DESC=y
+CONFIG_NVRAM=m
+# CONFIG_N_GSM is not set
+CONFIG_N_HDLC=m
+CONFIG_OABI_COMPAT=y
+# CONFIG_OCFS2_DEBUG_FS is not set
+CONFIG_OCFS2_DEBUG_MASKLOG=y
+CONFIG_OCFS2_FS=m
+CONFIG_OCFS2_FS_O2CB=m
+CONFIG_OCFS2_FS_STATS=y
+CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
+CONFIG_OLD_BELKIN_DONGLE=m
+CONFIG_OLPC=y
+CONFIG_OMAP2_DSS=y
+# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
+CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
+CONFIG_OMAP2_DSS_DPI=y
+# CONFIG_OMAP2_DSS_DSI is not set
+# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
+CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
+# CONFIG_OMAP2_DSS_RFBI is not set
+CONFIG_OMAP2_DSS_SDI=y
+CONFIG_OMAP2_DSS_VENC=y
+CONFIG_OMAP2_VRAM=y
+CONFIG_OMAP2_VRAM_SIZE=6
+CONFIG_OMAP2_VRFB=y
+CONFIG_OMAP3_EMU=y
+# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
+# CONFIG_OMAP3_SDRC_AC_TIMING is not set
+CONFIG_OMAP_32K_TIMER=y
+CONFIG_OMAP_32K_TIMER_HZ=128
+CONFIG_OMAP_DM_TIMER=y
+# CONFIG_OMAP_MBOX_FWK is not set
+CONFIG_OMAP_MCBSP=y
+# CONFIG_OMAP_MPU_TIMER is not set
+CONFIG_OMAP_MUX=y
+# CONFIG_OMAP_MUX_DEBUG is not set
+CONFIG_OMAP_MUX_WARNINGS=y
+CONFIG_OMAP_PACKAGE_CBB=y
+CONFIG_OMAP_PACKAGE_CBP=y
+CONFIG_OMAP_PACKAGE_CUS=y
+# CONFIG_OMAP_PM_NONE is not set
+CONFIG_OMAP_PM_NOOP=y
+CONFIG_OMAP_RESET_CLOCKS=y
+CONFIG_OMAP_WATCHDOG=m
+CONFIG_OMFS_FS=m
+CONFIG_OMNIBOOK=m
+CONFIG_OPROFILE=m
+# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set
+CONFIG_OPTIMIZE_INLINING=y
+CONFIG_OPTPROBES=y
+CONFIG_ORINOCO_USB=m
+CONFIG_OSF_PARTITION=y
+# CONFIG_OTUS is not set
+CONFIG_P54_COMMON=m
+CONFIG_P54_LEDS=y
+CONFIG_P54_PCI=m
+CONFIG_P54_SPI=m
+CONFIG_P54_USB=m
+CONFIG_PACKARDBELL_E5=m
+CONFIG_PACKET=y
+CONFIG_PADATA=y
+CONFIG_PAGEFLAGS_EXTENDED=y
+CONFIG_PAGE_OFFSET=0xC0000000
+# CONFIG_PAGE_POISONING is not set
+CONFIG_PANASONIC_LAPTOP=m
+CONFIG_PANEL=m
+CONFIG_PANEL_ACX565AKM=m
+# CONFIG_PANEL_CHANGE_MESSAGE is not set
+CONFIG_PANEL_GENERIC=y
+CONFIG_PANEL_PARPORT=0
+CONFIG_PANEL_PROFILE=5
+CONFIG_PANEL_SHARP_LQ043T1DG01=y
+CONFIG_PANEL_SHARP_LS037V7DW01=y
+CONFIG_PANEL_TOPPOLY_TDO35S=y
+CONFIG_PANEL_TPO_TD043MTEA1=y
+CONFIG_PANTHERLORD_FF=y
+CONFIG_PARAVIRT=y
+CONFIG_PARAVIRT_CLOCK=y
+# CONFIG_PARAVIRT_DEBUG is not set
+CONFIG_PARAVIRT_GUEST=y
+CONFIG_PARAVIRT_SPINLOCKS=y
+CONFIG_PARIDE=m
+CONFIG_PARIDE_ATEN=m
+CONFIG_PARIDE_BPCK=m
+CONFIG_PARIDE_BPCK6=m
+CONFIG_PARIDE_COMM=m
+CONFIG_PARIDE_DSTR=m
+CONFIG_PARIDE_EPAT=m
+# CONFIG_PARIDE_EPATC8 is not set
+CONFIG_PARIDE_EPIA=m
+CONFIG_PARIDE_FIT2=m
+CONFIG_PARIDE_FIT3=m
+CONFIG_PARIDE_FRIQ=m
+CONFIG_PARIDE_FRPW=m
+CONFIG_PARIDE_KBIC=m
+CONFIG_PARIDE_KTTI=m
+CONFIG_PARIDE_ON20=m
+CONFIG_PARIDE_ON26=m
+CONFIG_PARIDE_PCD=m
+CONFIG_PARIDE_PD=m
+CONFIG_PARIDE_PF=m
+CONFIG_PARIDE_PG=m
+CONFIG_PARIDE_PT=m
+CONFIG_PARPORT_1284=y
+CONFIG_PARPORT_AX88796=m
+# CONFIG_PARPORT_GSC is not set
+CONFIG_PARPORT_NOT_PC=y
+CONFIG_PARPORT_PC=m
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_PARPORT_PC_PCMCIA=m
+# CONFIG_PARPORT_PC_SUPERIO is not set
+CONFIG_PARPORT_SERIAL=m
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_PATA_ACPI=y
+CONFIG_PATA_ALI=m
+CONFIG_PATA_AMD=m
+CONFIG_PATA_ARTOP=m
+CONFIG_PATA_ATIIXP=m
+CONFIG_PATA_ATP867X=m
+CONFIG_PATA_CMD640_PCI=m
+CONFIG_PATA_CMD64X=m
+CONFIG_PATA_CS5520=m
+CONFIG_PATA_CS5530=m
+CONFIG_PATA_CS5535=m
+CONFIG_PATA_CS5536=m
+CONFIG_PATA_CYPRESS=m
+CONFIG_PATA_EFAR=m
+CONFIG_PATA_HPT366=m
+CONFIG_PATA_HPT37X=m
+CONFIG_PATA_HPT3X2N=m
+CONFIG_PATA_HPT3X3=m
+# CONFIG_PATA_HPT3X3_DMA is not set
+CONFIG_PATA_ISAPNP=m
+CONFIG_PATA_IT8213=m
+CONFIG_PATA_IT821X=m
+CONFIG_PATA_JMICRON=m
+CONFIG_PATA_LEGACY=m
+CONFIG_PATA_MARVELL=m
+CONFIG_PATA_MPIIX=m
+CONFIG_PATA_NETCELL=m
+CONFIG_PATA_NINJA32=m
+CONFIG_PATA_NS87410=m
+CONFIG_PATA_NS87415=m
+CONFIG_PATA_OLDPIIX=m
+CONFIG_PATA_OPTI=m
+CONFIG_PATA_OPTIDMA=m
+CONFIG_PATA_PCMCIA=m
+CONFIG_PATA_PDC2027X=m
+CONFIG_PATA_PDC_OLD=m
+CONFIG_PATA_QDI=m
+CONFIG_PATA_RADISYS=m
+CONFIG_PATA_RDC=m
+CONFIG_PATA_RZ1000=m
+CONFIG_PATA_SC1200=m
+CONFIG_PATA_SCH=m
+CONFIG_PATA_SERVERWORKS=m
+CONFIG_PATA_SIL680=m
+CONFIG_PATA_SIS=y
+# CONFIG_PATA_TOSHIBA is not set
+CONFIG_PATA_TRIFLEX=m
+CONFIG_PATA_VIA=m
+CONFIG_PATA_WINBOND=m
+CONFIG_PATA_WINBOND_VLB=m
+# CONFIG_PC300TOO is not set
+CONFIG_PC8736x_GPIO=m
+CONFIG_PC87413_WDT=m
+CONFIG_PCCARD_NONSTATIC=y
+CONFIG_PCF50633_ADC=m
+CONFIG_PCF50633_GPIO=m
+CONFIG_PCI=y
+CONFIG_PCI200SYN=m
+CONFIG_PCIEAER=y
+# CONFIG_PCIEAER_INJECT is not set
+CONFIG_PCIEASPM=y
+# CONFIG_PCIEASPM_DEBUG is not set
+CONFIG_PCIEPORTBUS=y
+# CONFIG_PCIE_ECRC is not set
+CONFIG_PCIE_PME=y
+CONFIG_PCIPCWATCHDOG=m
+CONFIG_PCI_ATMEL=m
+CONFIG_PCI_BIOS=y
+CONFIG_PCI_CNB20LE_QUIRK=y
+# CONFIG_PCI_DEBUG is not set
+CONFIG_PCI_DIRECT=y
+CONFIG_PCI_DOMAINS=y
+CONFIG_PCI_GOANY=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GODIRECT is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GOOLPC is not set
+CONFIG_PCI_IOAPIC=y
+CONFIG_PCI_IOV=y
+CONFIG_PCI_MMCONFIG=y
+CONFIG_PCI_MSI=y
+CONFIG_PCI_OLPC=y
+CONFIG_PCI_QUIRKS=y
+CONFIG_PCI_STUB=m
+CONFIG_PCMCIA=m
+CONFIG_PCMCIA_3C574=m
+CONFIG_PCMCIA_3C589=m
+CONFIG_PCMCIA_AHA152X=m
+CONFIG_PCMCIA_ATMEL=m
+CONFIG_PCMCIA_AXNET=m
+CONFIG_PCMCIA_FDOMAIN=m
+CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_PCMCIA_HERMES=m
+CONFIG_PCMCIA_IBMTR=m
+CONFIG_PCMCIA_LOAD_CIS=y
+CONFIG_PCMCIA_NINJA_SCSI=m
+CONFIG_PCMCIA_NMCLAN=m
+CONFIG_PCMCIA_PCNET=m
+CONFIG_PCMCIA_PROBE=y
+CONFIG_PCMCIA_QLOGIC=m
+CONFIG_PCMCIA_RAYCS=m
+CONFIG_PCMCIA_SMC91C92=m
+CONFIG_PCMCIA_SPECTRUM=m
+CONFIG_PCMCIA_SYM53C500=m
+CONFIG_PCMCIA_WL3501=m
+CONFIG_PCMCIA_XIRC2PS=m
+CONFIG_PCMCIA_XIRCOM=m
+CONFIG_PCNET32=m
+CONFIG_PCSPKR_PLATFORM=y
+CONFIG_PCWATCHDOG=m
+CONFIG_PD6729=m
+CONFIG_PDA_POWER=m
+CONFIG_PDC_ADMA=y
+CONFIG_PERF_COUNTERS=y
+CONFIG_PERF_EVENTS=y
+CONFIG_PERF_USE_VMALLOC=y
+CONFIG_PHANTOM=m
+CONFIG_PHONE=m
+CONFIG_PHONET=m
+CONFIG_PHONE_IXJ=m
+CONFIG_PHONE_IXJ_PCMCIA=m
+CONFIG_PHYLIB=y
+CONFIG_PID_NS=y
+# CONFIG_PLAT_SPEAR is not set
+CONFIG_PLAT_VERSATILE=y
+CONFIG_PLIP=m
+CONFIG_PLX_HERMES=m
+CONFIG_PM=y
+CONFIG_PMIC_ADP5520=y
+CONFIG_PMIC_DA903X=y
+# CONFIG_PM_ADVANCED_DEBUG is not set
+CONFIG_PM_DISABLE_CONSOLE=y
+CONFIG_PM_OPS=y
+CONFIG_PM_RUNTIME=y
+CONFIG_PM_SLEEP=y
+CONFIG_PM_SLEEP_SMP=y
+CONFIG_PM_STD_PARTITION=""
+CONFIG_PM_TEST_SUSPEND=y
+CONFIG_PM_TRACE=y
+CONFIG_PM_TRACE_RTC=y
+# CONFIG_PM_VERBOSE is not set
+CONFIG_PNP=y
+CONFIG_PNPACPI=y
+CONFIG_PNPBIOS=y
+CONFIG_PNPBIOS_PROC_FS=y
+CONFIG_PNP_DEBUG_MESSAGES=y
+CONFIG_POHMELFS=m
+CONFIG_POHMELFS_CRYPTO=y
+# CONFIG_POHMELFS_DEBUG is not set
+CONFIG_POSIX_MQUEUE=y
+CONFIG_POSIX_MQUEUE_SYSCTL=y
+CONFIG_POWER_SUPPLY=y
+# CONFIG_POWER_SUPPLY_DEBUG is not set
+CONFIG_PPDEV=m
+CONFIG_PPP=y
+CONFIG_PPPOATM=m
+CONFIG_PPPOE=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_PPS=m
+# CONFIG_PPS_CLIENT_KTIMER is not set
+CONFIG_PPS_CLIENT_LDISC=m
+# CONFIG_PPS_DEBUG is not set
+# CONFIG_PREEMPT is not set
+CONFIG_PREEMPT_NOTIFIERS=y
+CONFIG_PREVENT_FIRMWARE_BUILD=y
+CONFIG_PRINTER=m
+CONFIG_PRINTK=y
+CONFIG_PRINTK_TIME=y
+CONFIG_PRISM54=m
+CONFIG_PROC_EVENTS=y
+CONFIG_PROC_FS=y
+CONFIG_PROC_KCORE=y
+CONFIG_PROC_PAGE_MONITOR=y
+CONFIG_PROC_PID_CPUSET=y
+CONFIG_PROC_SYSCTL=y
+CONFIG_PROC_VMCORE=y
+# CONFIG_PROFILE_ALL_BRANCHES is not set
+# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
+CONFIG_PROFILING=y
+CONFIG_PROTEON=m
+# CONFIG_PROVE_LOCKING is not set
+# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_QLA3XXX=m
+CONFIG_QLCNIC=m
+CONFIG_QLGE=m
+CONFIG_QNX4FS_FS=m
+CONFIG_QSEMI_PHY=y
+CONFIG_QT2160=m
+CONFIG_QUOTA=y
+CONFIG_QUOTACTL=y
+CONFIG_QUOTACTL_COMPAT=y
+# CONFIG_QUOTA_DEBUG is not set
+CONFIG_QUOTA_NETLINK_INTERFACE=y
+CONFIG_QUOTA_TREE=m
+# CONFIG_R6040 is not set
+CONFIG_R8169=m
+CONFIG_R8169_VLAN=y
+CONFIG_R8187SE=m
+CONFIG_RADIO_ADAPTERS=y
+CONFIG_RADIO_AZTECH=m
+CONFIG_RADIO_CADET=m
+CONFIG_RADIO_GEMTEK=m
+CONFIG_RADIO_GEMTEK_PCI=m
+CONFIG_RADIO_MAESTRO=m
+CONFIG_RADIO_MAXIRADIO=m
+CONFIG_RADIO_MIROPCM20=m
+CONFIG_RADIO_RTRACK=m
+CONFIG_RADIO_RTRACK2=m
+CONFIG_RADIO_SAA7706H=m
+CONFIG_RADIO_SF16FMI=m
+CONFIG_RADIO_SF16FMR2=m
+CONFIG_RADIO_SI470X=y
+CONFIG_RADIO_SI4713=m
+CONFIG_RADIO_TEA5764=m
+CONFIG_RADIO_TEF6862=m
+CONFIG_RADIO_TERRATEC=m
+CONFIG_RADIO_TIMBERDALE=m
+CONFIG_RADIO_TRUST=m
+CONFIG_RADIO_TYPHOON=m
+CONFIG_RADIO_ZOLTRIX=m
+CONFIG_RAID_ATTRS=m
+CONFIG_RAMOOPS=m
+CONFIG_RAMZSWAP_STATS=y
+CONFIG_RAR_REGISTER=m
+CONFIG_RAW_DRIVER=m
+# CONFIG_RCU_CPU_STALL_DETECTOR is not set
+# CONFIG_RCU_FANOUT_EXACT is not set
+CONFIG_RCU_FAST_NO_HZ=y
+# CONFIG_RCU_TORTURE_TEST is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RC_MAP=m
+CONFIG_RDS=m
+# CONFIG_RDS_DEBUG is not set
+CONFIG_RDS_RDMA=m
+CONFIG_RDS_TCP=m
+CONFIG_RD_BZIP2=y
+CONFIG_RD_GZIP=y
+CONFIG_RD_LZMA=y
+CONFIG_RD_LZO=y
+CONFIG_REALTEK_PHY=y
+CONFIG_REED_SOLOMON=m
+CONFIG_REED_SOLOMON_DEC16=y
+CONFIG_REGULATOR=y
+CONFIG_REGULATOR_88PM8607=y
+CONFIG_REGULATOR_AB3100=m
+CONFIG_REGULATOR_BQ24022=m
+CONFIG_REGULATOR_DA903X=m
+# CONFIG_REGULATOR_DUMMY is not set
+# CONFIG_REGULATOR_FIXED_VOLTAGE is not set
+CONFIG_REGULATOR_LP3971=m
+CONFIG_REGULATOR_MAX1586=m
+CONFIG_REGULATOR_MAX8649=m
+CONFIG_REGULATOR_MAX8660=m
+CONFIG_REGULATOR_MAX8925=m
+CONFIG_REGULATOR_MC13783=m
+# CONFIG_REGULATOR_PCAP is not set
+CONFIG_REGULATOR_PCF50633=m
+CONFIG_REGULATOR_TPS65023=m
+CONFIG_REGULATOR_TPS6507X=m
+CONFIG_REGULATOR_TWL4030=y
+CONFIG_REGULATOR_USERSPACE_CONSUMER=m
+CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
+CONFIG_REGULATOR_WM831X=m
+CONFIG_REGULATOR_WM8350=m
+CONFIG_REGULATOR_WM8400=m
+CONFIG_REGULATOR_WM8994=m
+# CONFIG_REISERFS_CHECK is not set
+CONFIG_REISERFS_FS=m
+CONFIG_REISERFS_FS_POSIX_ACL=y
+CONFIG_REISERFS_FS_SECURITY=y
+CONFIG_REISERFS_FS_XATTR=y
+# CONFIG_REISERFS_PROC_INFO is not set
+CONFIG_RELAY=y
+CONFIG_RELOCATABLE=y
+CONFIG_RESOURCE_COUNTERS=y
+CONFIG_RFKILL_INPUT=y
+CONFIG_RFKILL_LEDS=y
+CONFIG_RING_BUFFER=y
+CONFIG_RING_BUFFER_ALLOW_SWAP=y
+# CONFIG_RING_BUFFER_BENCHMARK is not set
+CONFIG_RISCOM8=m
+CONFIG_ROADRUNNER=m
+# CONFIG_ROADRUNNER_LARGE_RINGS is not set
+CONFIG_ROCKETPORT=m
+CONFIG_ROMFS_BACKED_BY_BLOCK=y
+# CONFIG_ROMFS_BACKED_BY_BOTH is not set
+# CONFIG_ROMFS_BACKED_BY_MTD is not set
+CONFIG_ROMFS_FS=m
+CONFIG_ROMFS_ON_BLOCK=y
+CONFIG_ROSE=m
+CONFIG_RPCSEC_GSS_KRB5=m
+CONFIG_RPS=y
+CONFIG_RT2400PCI=m
+CONFIG_RT2500PCI=m
+CONFIG_RT2500USB=m
+CONFIG_RT2800PCI=m
+CONFIG_RT2800PCI_PCI=y
+CONFIG_RT2800PCI_RT30XX=y
+CONFIG_RT2800PCI_RT35XX=y
+CONFIG_RT2800USB=m
+# CONFIG_RT2800USB_RT30XX is not set
+# CONFIG_RT2800USB_RT35XX is not set
+CONFIG_RT2800_LIB=m
+CONFIG_RT2860=m
+CONFIG_RT2870=m
+CONFIG_RT2X00=m
+# CONFIG_RT2X00_DEBUG is not set
+CONFIG_RT2X00_LIB=m
+CONFIG_RT2X00_LIB_CRYPTO=y
+CONFIG_RT2X00_LIB_FIRMWARE=y
+CONFIG_RT2X00_LIB_HT=y
+CONFIG_RT2X00_LIB_LEDS=y
+CONFIG_RT2X00_LIB_PCI=m
+CONFIG_RT2X00_LIB_USB=m
+CONFIG_RT61PCI=m
+CONFIG_RT73USB=m
+CONFIG_RTC_CLASS=y
+# CONFIG_RTC_DEBUG is not set
+CONFIG_RTC_DRV_AB3100=m
+CONFIG_RTC_DRV_AB8500=m
+CONFIG_RTC_DRV_BQ32K=m
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_DS1286=m
+CONFIG_RTC_DRV_DS1305=m
+CONFIG_RTC_DRV_DS1307=m
+CONFIG_RTC_DRV_DS1374=m
+CONFIG_RTC_DRV_DS1390=m
+CONFIG_RTC_DRV_DS1511=m
+CONFIG_RTC_DRV_DS1553=m
+CONFIG_RTC_DRV_DS1672=m
+CONFIG_RTC_DRV_DS1742=m
+CONFIG_RTC_DRV_DS3234=m
+CONFIG_RTC_DRV_FM3130=m
+CONFIG_RTC_DRV_ISL1208=m
+CONFIG_RTC_DRV_M41T80=m
+CONFIG_RTC_DRV_M41T80_WDT=y
+CONFIG_RTC_DRV_M41T94=m
+CONFIG_RTC_DRV_M48T35=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_M48T86=m
+CONFIG_RTC_DRV_MAX6900=m
+CONFIG_RTC_DRV_MAX6902=m
+CONFIG_RTC_DRV_MAX8925=m
+CONFIG_RTC_DRV_MC13783=m
+CONFIG_RTC_DRV_MSM6242=m
+CONFIG_RTC_DRV_PCAP=m
+CONFIG_RTC_DRV_PCF2123=m
+CONFIG_RTC_DRV_PCF50633=m
+CONFIG_RTC_DRV_PCF8563=m
+CONFIG_RTC_DRV_PCF8583=m
+CONFIG_RTC_DRV_R9701=m
+CONFIG_RTC_DRV_RP5C01=m
+CONFIG_RTC_DRV_RS5C348=m
+CONFIG_RTC_DRV_RS5C372=m
+CONFIG_RTC_DRV_RX8025=m
+CONFIG_RTC_DRV_RX8581=m
+CONFIG_RTC_DRV_S35390A=m
+CONFIG_RTC_DRV_STK17TA8=m
+CONFIG_RTC_DRV_TEST=m
+CONFIG_RTC_DRV_V3020=m
+CONFIG_RTC_DRV_WM831X=m
+CONFIG_RTC_DRV_WM8350=m
+CONFIG_RTC_DRV_X1205=m
+CONFIG_RTC_HCTOSYS=y
+CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
+CONFIG_RTC_INTF_DEV=y
+CONFIG_RTC_INTF_PROC=y
+CONFIG_RTC_INTF_SYSFS=y
+CONFIG_RTC_LIB=y
+CONFIG_RTL8180=m
+CONFIG_RTL8187=m
+CONFIG_RTL8187_LEDS=y
+CONFIG_RTL8192E=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192SU=m
+CONFIG_RTL8192U=m
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_RT_MUTEXES=y
+# CONFIG_RT_MUTEX_TESTER is not set
+CONFIG_RWSEM_XCHGADD_ALGORITHM=y
+CONFIG_RXKAD=m
+CONFIG_S2IO=m
+# CONFIG_SAMPLES is not set
+CONFIG_SAMSUNG_LAPTOP=m
+CONFIG_SATA_AHCI=m
+CONFIG_SATA_AHCI_PLATFORM=m
+CONFIG_SATA_INIC162X=m
+CONFIG_SATA_MV=m
+CONFIG_SATA_NV=m
+CONFIG_SATA_PMP=y
+CONFIG_SATA_PROMISE=m
+CONFIG_SATA_QSTOR=m
+CONFIG_SATA_SIL=m
+CONFIG_SATA_SIL24=m
+CONFIG_SATA_SIS=m
+CONFIG_SATA_SVW=m
+CONFIG_SATA_SX4=m
+CONFIG_SATA_ULI=m
+CONFIG_SATA_VIA=m
+CONFIG_SATA_VITESSE=m
+CONFIG_SBC7240_WDT=m
+CONFIG_SBC8360_WDT=m
+CONFIG_SBC_EPX_C3_WATCHDOG=m
+CONFIG_SBC_FITPC2_WATCHDOG=m
+CONFIG_SBE_PMCC4_NCOMM=y
+CONFIG_SBNI=m
+# CONFIG_SBNI_MULTILINE is not set
+CONFIG_SC1200_WDT=m
+CONFIG_SC520_WDT=m
+CONFIG_SC92031=m
+CONFIG_SCA3000=m
+CONFIG_SCC=m
+# CONFIG_SCC_DELAY is not set
+# CONFIG_SCC_TRXECHO is not set
+CONFIG_SCHEDSTATS=y
+CONFIG_SCHED_DEBUG=y
+CONFIG_SCHED_HRTICK=y
+CONFIG_SCHED_MC=y
+CONFIG_SCHED_OMIT_FRAME_POINTER=y
+CONFIG_SCHED_SMT=y
+CONFIG_SCHED_TRACER=y
+CONFIG_SCSI=y
+CONFIG_SCSI_3W_9XXX=m
+CONFIG_SCSI_3W_SAS=m
+CONFIG_SCSI_7000FASST=m
+CONFIG_SCSI_AACRAID=m
+CONFIG_SCSI_AHA152X=m
+CONFIG_SCSI_AHA1542=m
+CONFIG_SCSI_AHA1740=m
+CONFIG_SCSI_AIC79XX=m
+CONFIG_SCSI_AIC7XXX=m
+# CONFIG_SCSI_AIC7XXX_OLD is not set
+CONFIG_SCSI_AIC94XX=m
+CONFIG_SCSI_ARCMSR=m
+CONFIG_SCSI_ARCMSR_AER=y
+CONFIG_SCSI_BFA_FC=m
+CONFIG_SCSI_BNX2_ISCSI=m
+CONFIG_SCSI_BUSLOGIC=m
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_CXGB3_ISCSI=m
+CONFIG_SCSI_DC390T=m
+CONFIG_SCSI_DC395x=m
+CONFIG_SCSI_DEBUG=m
+CONFIG_SCSI_DH=y
+CONFIG_SCSI_DH_ALUA=m
+CONFIG_SCSI_DH_EMC=m
+CONFIG_SCSI_DH_HP_SW=m
+CONFIG_SCSI_DH_RDAC=m
+CONFIG_SCSI_DMA=y
+CONFIG_SCSI_DMX3191D=m
+CONFIG_SCSI_DPT_I2O=m
+CONFIG_SCSI_DTC3280=m
+CONFIG_SCSI_EATA=m
+CONFIG_SCSI_EATA_LINKED_COMMANDS=y
+CONFIG_SCSI_EATA_MAX_TAGS=16
+CONFIG_SCSI_EATA_TAGGED_QUEUE=y
+CONFIG_SCSI_ENCLOSURE=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_FC_TGT_ATTRS=y
+CONFIG_SCSI_FD_MCS=m
+# CONFIG_SCSI_FLASHPOINT is not set
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_GDTH=m
+CONFIG_SCSI_GENERIC_NCR5380=m
+CONFIG_SCSI_GENERIC_NCR5380_MMIO=m
+CONFIG_SCSI_GENERIC_NCR53C400=y
+CONFIG_SCSI_HPSA=m
+CONFIG_SCSI_HPTIOP=m
+CONFIG_SCSI_IBMMCA=m
+CONFIG_SCSI_IMM=m
+CONFIG_SCSI_IN2000=m
+CONFIG_SCSI_INIA100=m
+CONFIG_SCSI_INITIO=m
+# CONFIG_SCSI_IPR_DUMP is not set
+# CONFIG_SCSI_IPR_TRACE is not set
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_ISCSI_ATTRS=m
+# CONFIG_SCSI_IZIP_EPP16 is not set
+# CONFIG_SCSI_IZIP_SLOW_CTR is not set
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_LOWLEVEL=y
+CONFIG_SCSI_LOWLEVEL_PCMCIA=y
+CONFIG_SCSI_LPFC=m
+CONFIG_SCSI_LPFC_DEBUG_FS=y
+CONFIG_SCSI_MOD=y
+CONFIG_SCSI_MPT2SAS=m
+# CONFIG_SCSI_MPT2SAS_LOGGING is not set
+CONFIG_SCSI_MPT2SAS_MAX_SGE=128
+CONFIG_SCSI_MULTI_LUN=y
+CONFIG_SCSI_MVSAS=m
+CONFIG_SCSI_MVSAS_DEBUG=y
+CONFIG_SCSI_NCR53C406A=m
+CONFIG_SCSI_NCR53C8XX_DEFAULT_TAGS=8
+CONFIG_SCSI_NCR53C8XX_MAX_TAGS=4
+CONFIG_SCSI_NCR53C8XX_SYNC=5
+CONFIG_SCSI_NCR_D700=m
+CONFIG_SCSI_NCR_Q720=m
+CONFIG_SCSI_NETLINK=y
+# CONFIG_SCSI_OSD_DEBUG is not set
+CONFIG_SCSI_OSD_DPRINT_SENSE=1
+CONFIG_SCSI_OSD_ULD=m
+CONFIG_SCSI_PAS16=m
+CONFIG_SCSI_PM8001=m
+CONFIG_SCSI_PMCRAID=m
+CONFIG_SCSI_PPA=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLOGIC_FAS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_SCSI_SAS_ATTRS=m
+CONFIG_SCSI_SAS_HOST_SMP=y
+CONFIG_SCSI_SAS_LIBSAS=m
+# CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set
+CONFIG_SCSI_SCAN_ASYNC=y
+CONFIG_SCSI_SIM710=m
+CONFIG_SCSI_SRP=m
+CONFIG_SCSI_SRP_ATTRS=m
+CONFIG_SCSI_SRP_TGT_ATTRS=y
+CONFIG_SCSI_STEX=m
+CONFIG_SCSI_SYM53C416=m
+CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
+CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1
+CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
+CONFIG_SCSI_SYM53C8XX_MMIO=y
+CONFIG_SCSI_T128=m
+CONFIG_SCSI_TGT=m
+CONFIG_SCSI_U14_34F=m
+CONFIG_SCSI_U14_34F_LINKED_COMMANDS=y
+CONFIG_SCSI_U14_34F_MAX_TAGS=8
+CONFIG_SCSI_U14_34F_TAGGED_QUEUE=y
+CONFIG_SCSI_ULTRASTOR=m
+CONFIG_SCSI_WAIT_SCAN=m
+# CONFIG_SCTP_DBG_MSG is not set
+# CONFIG_SCTP_DBG_OBJCNT is not set
+CONFIG_SCTP_HMAC_MD5=y
+# CONFIG_SCTP_HMAC_NONE is not set
+# CONFIG_SCTP_HMAC_SHA1 is not set
+CONFIG_SCx200=m
+CONFIG_SCx200HR_TIMER=m
+CONFIG_SCx200_ACB=m
+CONFIG_SCx200_GPIO=m
+CONFIG_SCx200_I2C=m
+CONFIG_SCx200_I2C_SCL=12
+CONFIG_SCx200_I2C_SDA=13
+CONFIG_SCx200_WDT=m
+CONFIG_SDIO_UART=m
+CONFIG_SDLA=m
+CONFIG_SEALEVEL_4021=m
+CONFIG_SECCOMP=y
+CONFIG_SECURITY=y
+CONFIG_SECURITYFS=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
+CONFIG_SECURITY_APPARMOR_COMPAT_24=y
+CONFIG_SECURITY_NETWORK=y
+# CONFIG_SECURITY_NETWORK_XFRM is not set
+CONFIG_SECURITY_PATH=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_AVC_STATS=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
+CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
+CONFIG_SECURITY_SELINUX_DEVELOP=y
+CONFIG_SECURITY_SELINUX_DISABLE=y
+# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
+CONFIG_SECURITY_SMACK=y
+CONFIG_SECURITY_TOMOYO=y
+CONFIG_SEEQ8005=m
+CONFIG_SELECT_MEMORY_MODEL=y
+CONFIG_SENSORS_ABITUGURU=m
+CONFIG_SENSORS_ABITUGURU3=m
+CONFIG_SENSORS_AD7414=m
+CONFIG_SENSORS_AD7418=m
+CONFIG_SENSORS_ADCXX=m
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1026=m
+CONFIG_SENSORS_ADM1029=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_ADM9240=m
+CONFIG_SENSORS_ADS7828=m
+CONFIG_SENSORS_ADS7871=m
+CONFIG_SENSORS_ADT7411=m
+CONFIG_SENSORS_ADT7462=m
+CONFIG_SENSORS_ADT7470=m
+CONFIG_SENSORS_ADT7475=m
+CONFIG_SENSORS_AMC6821=m
+CONFIG_SENSORS_APPLESMC=m
+CONFIG_SENSORS_ASB100=m
+CONFIG_SENSORS_ASC7621=m
+CONFIG_SENSORS_ATK0110=m
+CONFIG_SENSORS_ATXP1=m
+CONFIG_SENSORS_CORETEMP=m
+CONFIG_SENSORS_DME1737=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_EMC1403=m
+CONFIG_SENSORS_F71805F=m
+CONFIG_SENSORS_F71882FG=m
+CONFIG_SENSORS_F75375S=m
+CONFIG_SENSORS_FSCHMD=m
+CONFIG_SENSORS_G760A=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_GL520SM=m
+CONFIG_SENSORS_HDAPS=m
+CONFIG_SENSORS_I5K_AMB=m
+CONFIG_SENSORS_IBMAEM=m
+CONFIG_SENSORS_IBMPEX=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_K10TEMP=m
+CONFIG_SENSORS_K8TEMP=m
+CONFIG_SENSORS_LIS3LV02D=m
+CONFIG_SENSORS_LIS3_I2C=m
+CONFIG_SENSORS_LIS3_SPI=m
+CONFIG_SENSORS_LM63=m
+CONFIG_SENSORS_LM70=m
+CONFIG_SENSORS_LM73=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM87=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_LM92=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_LM95241=m
+CONFIG_SENSORS_LTC4215=m
+CONFIG_SENSORS_LTC4245=m
+CONFIG_SENSORS_MAX1111=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_MAX6650=m
+CONFIG_SENSORS_MC13783_ADC=m
+CONFIG_SENSORS_PC87360=m
+CONFIG_SENSORS_PC87427=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_SHT15=m
+CONFIG_SENSORS_SIS5595=m
+CONFIG_SENSORS_SMSC47B397=m
+CONFIG_SENSORS_SMSC47M1=m
+CONFIG_SENSORS_SMSC47M192=m
+CONFIG_SENSORS_THMC50=m
+CONFIG_SENSORS_TMP102=m
+CONFIG_SENSORS_TMP401=m
+CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_TSL2550=m
+CONFIG_SENSORS_TSL2563=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_VIA_CPUTEMP=m
+CONFIG_SENSORS_VT1211=m
+CONFIG_SENSORS_VT8231=m
+CONFIG_SENSORS_W83627EHF=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83791D=m
+CONFIG_SENSORS_W83792D=m
+CONFIG_SENSORS_W83793=m
+CONFIG_SENSORS_W83L785TS=m
+CONFIG_SENSORS_W83L786NG=m
+CONFIG_SENSORS_WM831X=m
+CONFIG_SENSORS_WM8350=m
+CONFIG_SERIAL_8250_ACCENT=m
+CONFIG_SERIAL_8250_BOCA=m
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_CS=m
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+CONFIG_SERIAL_8250_EXAR_ST16C554=m
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_FOURPORT=m
+CONFIG_SERIAL_8250_HUB6=m
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_MCA=m
+CONFIG_SERIAL_8250_PNP=y
+CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_8250_RUNTIME_UARTS=4
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_ALTERA_JTAGUART=m
+CONFIG_SERIAL_ALTERA_UART=m
+CONFIG_SERIAL_ALTERA_UART_BAUDRATE=115200
+CONFIG_SERIAL_ALTERA_UART_MAXPORTS=4
+# CONFIG_SERIAL_AMBA_PL010 is not set
+CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_CORE=y
+CONFIG_SERIAL_CORE_CONSOLE=y
+CONFIG_SERIAL_JSM=m
+CONFIG_SERIAL_MAX3100=m
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_SERIAL_TIMBERDALE=m
+CONFIG_SERIO=y
+CONFIG_SERIO_ALTERA_PS2=m
+CONFIG_SERIO_CT82C710=m
+CONFIG_SERIO_I8042=y
+CONFIG_SERIO_LIBPS2=y
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SERIO_RAW=m
+CONFIG_SERIO_SERPORT=m
+CONFIG_SFC=m
+CONFIG_SFC_MTD=y
+CONFIG_SFI=y
+CONFIG_SGI_IOC4=m
+CONFIG_SGI_PARTITION=y
+CONFIG_SHMEM=y
+CONFIG_SIGMATEL_FIR=m
+CONFIG_SIGNALFD=y
+CONFIG_SIS190=m
+CONFIG_SIS900=m
+CONFIG_SKFP=m
+CONFIG_SKGE=m
+# CONFIG_SKGE_DEBUG is not set
+CONFIG_SKISA=m
+CONFIG_SKY2=m
+# CONFIG_SKY2_DEBUG is not set
+CONFIG_SLABINFO=y
+CONFIG_SLHC=y
+CONFIG_SLICOSS=m
+CONFIG_SLIP_COMPRESSED=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_SLIP_SMART=y
+# CONFIG_SLOB is not set
+CONFIG_SLOW_WORK=y
+# CONFIG_SLOW_WORK_DEBUG is not set
+CONFIG_SLUB_DEBUG=y
+# CONFIG_SLUB_DEBUG_ON is not set
+# CONFIG_SLUB_STATS is not set
+CONFIG_SMARTJOYPLUS_FF=y
+CONFIG_SMB_FS=m
+# CONFIG_SMB_NLS_DEFAULT is not set
+CONFIG_SMC911X=m
+CONFIG_SMC9194=m
+CONFIG_SMCTR=m
+CONFIG_SMC_IRCC_FIR=m
+CONFIG_SMP=y
+CONFIG_SMSC37B787_WDT=m
+CONFIG_SMSC911X=m
+CONFIG_SMSC9420=m
+CONFIG_SMSC_PHY=y
+CONFIG_SMSC_SCH311X_WDT=m
+CONFIG_SMS_SDIO_DRV=m
+CONFIG_SMS_SIANO_MDTV=m
+CONFIG_SMS_USB_DRV=m
+CONFIG_SM_FTL=m
+CONFIG_SND_AC97_CODEC=m
+CONFIG_SND_AC97_POWER_SAVE=y
+CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0
+CONFIG_SND_AD1816A=m
+CONFIG_SND_AD1848=m
+CONFIG_SND_AD1889=m
+CONFIG_SND_ADLIB=m
+CONFIG_SND_ALS100=m
+CONFIG_SND_ALS300=m
+CONFIG_SND_ALS4000=m
+CONFIG_SND_ARM=y
+CONFIG_SND_ARMAACI=m
+CONFIG_SND_ASIHPI=m
+CONFIG_SND_ATIIXP=m
+CONFIG_SND_ATIIXP_MODEM=m
+CONFIG_SND_AU8810=m
+CONFIG_SND_AU8820=m
+CONFIG_SND_AU8830=m
+CONFIG_SND_AW2=m
+CONFIG_SND_AZT2320=m
+CONFIG_SND_AZT3328=m
+CONFIG_SND_BT87X=m
+# CONFIG_SND_BT87X_OVERCLOCK is not set
+CONFIG_SND_CA0106=m
+CONFIG_SND_CMI8330=m
+CONFIG_SND_CMIPCI=m
+CONFIG_SND_CS4231=m
+CONFIG_SND_CS4236=m
+CONFIG_SND_CS4281=m
+CONFIG_SND_CS46XX=m
+CONFIG_SND_CS46XX_NEW_DSP=y
+CONFIG_SND_CS5530=m
+CONFIG_SND_CS5535AUDIO=m
+CONFIG_SND_CTXFI=m
+CONFIG_SND_DARLA20=m
+CONFIG_SND_DARLA24=m
+# CONFIG_SND_DEBUG is not set
+CONFIG_SND_DMA_SGBUF=y
+CONFIG_SND_DRIVERS=y
+CONFIG_SND_DUMMY=m
+CONFIG_SND_DYNAMIC_MINORS=y
+CONFIG_SND_ECHO3G=m
+CONFIG_SND_EMU10K1=m
+CONFIG_SND_EMU10K1X=m
+CONFIG_SND_ENS1370=m
+CONFIG_SND_ENS1371=m
+CONFIG_SND_ES1688=m
+CONFIG_SND_ES18XX=m
+CONFIG_SND_ES1938=m
+CONFIG_SND_ES1968=m
+CONFIG_SND_ES1968_INPUT=y
+CONFIG_SND_FM801=m
+CONFIG_SND_FM801_TEA575X=m
+CONFIG_SND_FM801_TEA575X_BOOL=y
+CONFIG_SND_GINA20=m
+CONFIG_SND_GINA24=m
+CONFIG_SND_GUSCLASSIC=m
+CONFIG_SND_GUSEXTREME=m
+CONFIG_SND_GUSMAX=m
+CONFIG_SND_HDA_CODEC_ANALOG=y
+CONFIG_SND_HDA_CODEC_ATIHDMI=y
+CONFIG_SND_HDA_CODEC_CA0110=y
+CONFIG_SND_HDA_CODEC_CIRRUS=y
+CONFIG_SND_HDA_CODEC_CMEDIA=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_HDA_CODEC_INTELHDMI=y
+CONFIG_SND_HDA_CODEC_NVHDMI=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_SI3054=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_VIA=y
+CONFIG_SND_HDA_ELD=y
+CONFIG_SND_HDA_GENERIC=y
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_INPUT_BEEP_MODE=0
+CONFIG_SND_HDA_INPUT_JACK=y
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_POWER_SAVE=y
+CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0
+CONFIG_SND_HDA_RECONFIG=y
+CONFIG_SND_HDSP=m
+CONFIG_SND_HDSPM=m
+CONFIG_SND_HIFIER=m
+CONFIG_SND_HRTIMER=m
+CONFIG_SND_HWDEP=m
+CONFIG_SND_ICE1712=m
+CONFIG_SND_ICE1724=m
+CONFIG_SND_INDIGO=m
+CONFIG_SND_INDIGODJ=m
+CONFIG_SND_INDIGODJX=m
+CONFIG_SND_INDIGOIO=m
+CONFIG_SND_INDIGOIOX=m
+CONFIG_SND_INTEL8X0=m
+CONFIG_SND_INTEL8X0M=m
+CONFIG_SND_INTERWAVE=m
+CONFIG_SND_INTERWAVE_STB=m
+CONFIG_SND_ISA=y
+CONFIG_SND_JACK=y
+CONFIG_SND_JAZZ16=m
+CONFIG_SND_KORG1212=m
+CONFIG_SND_LAYLA20=m
+CONFIG_SND_LAYLA24=m
+CONFIG_SND_LX6464ES=m
+CONFIG_SND_MAESTRO3=m
+CONFIG_SND_MAESTRO3_INPUT=y
+CONFIG_SND_MIA=m
+CONFIG_SND_MIRO=m
+CONFIG_SND_MIXART=m
+CONFIG_SND_MONA=m
+CONFIG_SND_MPU401_UART=m
+CONFIG_SND_MSND_CLASSIC=m
+CONFIG_SND_MSND_PINNACLE=m
+CONFIG_SND_MTS64=m
+CONFIG_SND_NM256=m
+CONFIG_SND_OMAP_SOC=y
+# CONFIG_SND_OMAP_SOC_AM3517EVM is not set
+CONFIG_SND_OMAP_SOC_IGEP0020=y
+CONFIG_SND_OMAP_SOC_MCBSP=y
+CONFIG_SND_OMAP_SOC_OMAP3EVM=y
+CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y
+CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=y
+CONFIG_SND_OMAP_SOC_OVERO=y
+CONFIG_SND_OMAP_SOC_RX51=m
+CONFIG_SND_OMAP_SOC_SDP3430=y
+CONFIG_SND_OMAP_SOC_ZOOM2=y
+CONFIG_SND_OPL3SA2=m
+CONFIG_SND_OPL3_LIB=m
+CONFIG_SND_OPL4_LIB=m
+CONFIG_SND_OPTI92X_AD1848=m
+CONFIG_SND_OPTI92X_CS4231=m
+CONFIG_SND_OPTI93X=m
+CONFIG_SND_OSSEMUL=y
+CONFIG_SND_OXYGEN=m
+CONFIG_SND_OXYGEN_LIB=m
+CONFIG_SND_PCI=y
+CONFIG_SND_PCMCIA=y
+CONFIG_SND_PCM_OSS_PLUGINS=y
+CONFIG_SND_PCSP=m
+CONFIG_SND_PCXHR=m
+CONFIG_SND_PDAUDIOCF=m
+CONFIG_SND_PORTMAN2X4=m
+CONFIG_SND_RAWMIDI=m
+CONFIG_SND_RIPTIDE=m
+CONFIG_SND_RME32=m
+CONFIG_SND_RME96=m
+CONFIG_SND_RME9652=m
+CONFIG_SND_SB16=m
+CONFIG_SND_SB16_CSP=y
+CONFIG_SND_SB16_DSP=m
+CONFIG_SND_SB8=m
+CONFIG_SND_SB8_DSP=m
+CONFIG_SND_SBAWE=m
+CONFIG_SND_SB_COMMON=m
+CONFIG_SND_SC6000=m
+# CONFIG_SND_SEQUENCER_OSS is not set
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
+CONFIG_SND_SGALAXY=m
+CONFIG_SND_SIS7019=m
+CONFIG_SND_SOC_AD1836=m
+CONFIG_SND_SOC_AD193X=m
+CONFIG_SND_SOC_AD73311=m
+CONFIG_SND_SOC_ADS117X=m
+CONFIG_SND_SOC_AK4104=m
+CONFIG_SND_SOC_AK4535=m
+CONFIG_SND_SOC_AK4642=m
+CONFIG_SND_SOC_AK4671=m
+CONFIG_SND_SOC_ALL_CODECS=m
+CONFIG_SND_SOC_CS4270=m
+CONFIG_SND_SOC_DA7210=m
+CONFIG_SND_SOC_L3=m
+CONFIG_SND_SOC_MAX9877=m
+CONFIG_SND_SOC_PCM3008=m
+CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_SSM2602=m
+CONFIG_SND_SOC_TLV320AIC23=m
+CONFIG_SND_SOC_TLV320AIC26=m
+CONFIG_SND_SOC_TLV320AIC3X=m
+CONFIG_SND_SOC_TLV320DAC33=m
+CONFIG_SND_SOC_TPA6130A2=m
+CONFIG_SND_SOC_TWL6040=m
+CONFIG_SND_SOC_UDA134X=m
+CONFIG_SND_SOC_UDA1380=m
+CONFIG_SND_SOC_WM2000=m
+CONFIG_SND_SOC_WM8350=m
+CONFIG_SND_SOC_WM8400=m
+CONFIG_SND_SOC_WM8510=m
+CONFIG_SND_SOC_WM8523=m
+CONFIG_SND_SOC_WM8580=m
+CONFIG_SND_SOC_WM8711=m
+CONFIG_SND_SOC_WM8727=m
+CONFIG_SND_SOC_WM8728=m
+CONFIG_SND_SOC_WM8731=m
+CONFIG_SND_SOC_WM8750=m
+CONFIG_SND_SOC_WM8753=m
+CONFIG_SND_SOC_WM8776=m
+CONFIG_SND_SOC_WM8900=m
+CONFIG_SND_SOC_WM8903=m
+CONFIG_SND_SOC_WM8904=m
+CONFIG_SND_SOC_WM8940=m
+CONFIG_SND_SOC_WM8955=m
+CONFIG_SND_SOC_WM8960=m
+CONFIG_SND_SOC_WM8961=m
+CONFIG_SND_SOC_WM8971=m
+CONFIG_SND_SOC_WM8974=m
+CONFIG_SND_SOC_WM8978=m
+CONFIG_SND_SOC_WM8988=m
+CONFIG_SND_SOC_WM8990=m
+CONFIG_SND_SOC_WM8993=m
+CONFIG_SND_SOC_WM8994=m
+CONFIG_SND_SOC_WM9081=m
+CONFIG_SND_SOC_WM9090=m
+CONFIG_SND_SOC_WM_HUBS=m
+CONFIG_SND_SONICVIBES=m
+CONFIG_SND_SPI=y
+CONFIG_SND_SSCAPE=m
+CONFIG_SND_SUPPORT_OLD_API=y
+CONFIG_SND_TRIDENT=m
+CONFIG_SND_USB=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_SND_USB_CAIAQ=m
+CONFIG_SND_USB_CAIAQ_INPUT=y
+# CONFIG_SND_USB_UA101 is not set
+CONFIG_SND_USB_US122L=m
+CONFIG_SND_USB_USX2Y=m
+# CONFIG_SND_VERBOSE_PRINTK is not set
+CONFIG_SND_VERBOSE_PROCFS=y
+CONFIG_SND_VIA82XX=m
+CONFIG_SND_VIA82XX_MODEM=m
+CONFIG_SND_VIRMIDI=m
+CONFIG_SND_VIRTUOSO=m
+CONFIG_SND_VMASTER=y
+CONFIG_SND_VX222=m
+CONFIG_SND_VXPOCKET=m
+CONFIG_SND_VX_LIB=m
+CONFIG_SND_WAVEFRONT=m
+CONFIG_SND_WSS_LIB=m
+CONFIG_SND_YMFPCI=m
+CONFIG_SOC_CAMERA=m
+CONFIG_SOC_CAMERA_MT9M001=m
+CONFIG_SOC_CAMERA_MT9M111=m
+CONFIG_SOC_CAMERA_MT9T031=m
+CONFIG_SOC_CAMERA_MT9T112=m
+CONFIG_SOC_CAMERA_MT9V022=m
+CONFIG_SOC_CAMERA_OV772X=m
+CONFIG_SOC_CAMERA_OV9640=m
+CONFIG_SOC_CAMERA_PLATFORM=m
+CONFIG_SOC_CAMERA_RJ54N1=m
+CONFIG_SOC_CAMERA_TW9910=m
+CONFIG_SOFT_WATCHDOG=m
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_SONYPI=m
+CONFIG_SONYPI_COMPAT=y
+CONFIG_SONY_LAPTOP=m
+CONFIG_SOUND_OSS_CORE_PRECLAIM=y
+# CONFIG_SOUND_PRIME is not set
+CONFIG_SPARSEMEM=y
+CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y
+CONFIG_SPARSEMEM_EXTREME=y
+CONFIG_SPARSEMEM_STATIC=y
+CONFIG_SPARSEMEM_VMEMMAP=y
+CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
+CONFIG_SPARSE_IRQ=y
+CONFIG_SPECIALIX=m
+CONFIG_SPI_BITBANG=m
+CONFIG_SPI_BUTTERFLY=m
+# CONFIG_SPI_DEBUG is not set
+# CONFIG_SPI_DW_MMIO is not set
+CONFIG_SPI_DW_PCI=m
+CONFIG_SPI_GPIO=m
+CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_MASTER=y
+CONFIG_SPI_OMAP24XX=m
+# CONFIG_SPI_PL022 is not set
+CONFIG_SPI_TLE62X0=m
+# CONFIG_SPI_XILINX is not set
+CONFIG_SPLIT_PTLOCK_CPUS=4
+CONFIG_SQUASHFS=m
+# CONFIG_SQUASHFS_EMBEDDED is not set
+CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
+CONFIG_SQUASHFS_XATTRS=y
+CONFIG_SR_REPORT_TIME_LIMIT=100
+CONFIG_SSB=m
+CONFIG_SSB_BLOCKIO=y
+# CONFIG_SSB_DEBUG is not set
+CONFIG_SSB_DRIVER_PCICORE=y
+CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y
+CONFIG_SSB_PCIHOST=y
+CONFIG_SSB_PCIHOST_POSSIBLE=y
+# CONFIG_SSB_PCMCIAHOST is not set
+CONFIG_SSB_PCMCIAHOST_POSSIBLE=y
+CONFIG_SSB_POSSIBLE=y
+CONFIG_SSB_SDIOHOST=y
+CONFIG_SSB_SDIOHOST_POSSIBLE=y
+CONFIG_SSB_SPROM=y
+CONFIG_SSFDC=m
+CONFIG_STACKTRACE=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_STAGING=y
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+CONFIG_STALDRV=y
+CONFIG_STALLION=m
+CONFIG_STE10XP=y
+CONFIG_STOP_MACHINE=y
+CONFIG_STP=m
+CONFIG_STRICT_DEVMEM=y
+# CONFIG_STRIP_ASM_SYMS is not set
+CONFIG_ST_BT=m
+CONFIG_SUNDANCE=m
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_SUNRPC=m
+CONFIG_SUNRPC_GSS=m
+CONFIG_SUNRPC_XPRT_RDMA=m
+CONFIG_SUN_PARTITION=y
+CONFIG_SUSPEND=y
+CONFIG_SUSPEND_FREEZER=y
+CONFIG_SWAP=y
+CONFIG_SWIOTLB=y
+CONFIG_SYNCLINK=m
+CONFIG_SYNCLINKMP=m
+CONFIG_SYNCLINK_CS=m
+CONFIG_SYNCLINK_GT=m
+CONFIG_SYN_COOKIES=y
+CONFIG_SYSCTL=y
+CONFIG_SYSCTL_SYSCALL=y
+CONFIG_SYSCTL_SYSCALL_CHECK=y
+CONFIG_SYSFS=y
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+# CONFIG_SYSPROF_TRACER is not set
+CONFIG_SYSV68_PARTITION=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_COMPAT=y
+CONFIG_SYSVIPC_SYSCTL=y
+CONFIG_SYSV_FS=m
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_TABLET_USB_ACECAD=m
+CONFIG_TABLET_USB_AIPTEK=m
+CONFIG_TABLET_USB_GTCO=m
+CONFIG_TABLET_USB_KBTAB=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_TASKSTATS=y
+# CONFIG_TASK_DELAY_ACCT is not set
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_TASK_XACCT=y
+CONFIG_TC1100_WMI=m
+CONFIG_TCG_ATMEL=m
+CONFIG_TCG_INFINEON=m
+CONFIG_TCG_NSC=m
+CONFIG_TCG_TIS=m
+CONFIG_TCIC=m
+CONFIG_TCP_CONG_BIC=m
+CONFIG_TCP_CONG_CUBIC=y
+CONFIG_TCP_CONG_HSTCP=m
+CONFIG_TCP_CONG_HTCP=m
+CONFIG_TCP_CONG_HYBLA=m
+CONFIG_TCP_CONG_ILLINOIS=m
+CONFIG_TCP_CONG_LP=m
+CONFIG_TCP_CONG_SCALABLE=m
+CONFIG_TCP_CONG_VEGAS=m
+CONFIG_TCP_CONG_VENO=m
+CONFIG_TCP_CONG_WESTWOOD=m
+CONFIG_TCP_CONG_YEAH=m
+CONFIG_TCP_MD5SIG=y
+CONFIG_TEHUTI=m
+CONFIG_TEKRAM_DONGLE=m
+CONFIG_TELCLOCK=m
+CONFIG_TEST_POWER=m
+CONFIG_TEXTSEARCH=y
+CONFIG_TEXTSEARCH_BM=m
+CONFIG_TEXTSEARCH_FSM=m
+CONFIG_TEXTSEARCH_KMP=m
+CONFIG_THERMAL_HWMON=y
+CONFIG_THINKPAD_ACPI=m
+CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y
+# CONFIG_THINKPAD_ACPI_DEBUG is not set
+CONFIG_THINKPAD_ACPI_DEBUGFACILITIES=y
+CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y
+# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set
+CONFIG_THINKPAD_ACPI_VIDEO=y
+CONFIG_THRUSTMASTER_FF=y
+# CONFIG_THUMB2_KERNEL is not set
+CONFIG_TICK_ONESHOT=y
+CONFIG_TIFM_7XX1=m
+CONFIG_TIFM_CORE=m
+CONFIG_TIGON3=m
+CONFIG_TIMB_DMA=m
+CONFIG_TIMERFD=y
+CONFIG_TIMER_STATS=y
+# CONFIG_TINY_RCU is not set
+# CONFIG_TIPC_ADVANCED is not set
+# CONFIG_TIPC_DEBUG is not set
+CONFIG_TI_DAC7512=m
+CONFIG_TI_DAVINCI_EMAC=m
+CONFIG_TI_ST=m
+CONFIG_TLAN=m
+CONFIG_TMD_HERMES=m
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_TMS380TR=m
+CONFIG_TMSPCI=m
+CONFIG_TOIM3232_DONGLE=m
+CONFIG_TOPSTAR_LAPTOP=m
+# CONFIG_TOSHIBA is not set
+CONFIG_TOSHIBA_BT_RFKILL=m
+CONFIG_TOSHIBA_FIR=m
+CONFIG_TOUCHSCREEN_88PM860X=m
+CONFIG_TOUCHSCREEN_AD7877=m
+CONFIG_TOUCHSCREEN_AD7879=m
+CONFIG_TOUCHSCREEN_AD7879_I2C=m
+CONFIG_TOUCHSCREEN_ADS7846=m
+CONFIG_TOUCHSCREEN_DA9034=m
+CONFIG_TOUCHSCREEN_DYNAPRO=m
+CONFIG_TOUCHSCREEN_EETI=m
+CONFIG_TOUCHSCREEN_ELO=m
+CONFIG_TOUCHSCREEN_FUJITSU=m
+CONFIG_TOUCHSCREEN_GUNZE=m
+CONFIG_TOUCHSCREEN_HAMPSHIRE=m
+CONFIG_TOUCHSCREEN_HTCPEN=m
+CONFIG_TOUCHSCREEN_INEXIO=m
+CONFIG_TOUCHSCREEN_INTEL_MID=m
+CONFIG_TOUCHSCREEN_MC13783=m
+CONFIG_TOUCHSCREEN_MCS5000=m
+CONFIG_TOUCHSCREEN_MK712=m
+CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_PCAP=m
+CONFIG_TOUCHSCREEN_PENMOUNT=m
+CONFIG_TOUCHSCREEN_TOUCHIT213=m
+CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
+CONFIG_TOUCHSCREEN_TOUCHWIN=m
+CONFIG_TOUCHSCREEN_TPS6507X=m
+CONFIG_TOUCHSCREEN_TSC2007=m
+CONFIG_TOUCHSCREEN_UCB1400=m
+CONFIG_TOUCHSCREEN_USB_3M=y
+CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
+CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
+CONFIG_TOUCHSCREEN_USB_E2I=y
+CONFIG_TOUCHSCREEN_USB_EGALAX=y
+CONFIG_TOUCHSCREEN_USB_ETT_TC5UH=y
+CONFIG_TOUCHSCREEN_USB_ETURBO=y
+CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
+CONFIG_TOUCHSCREEN_USB_GOTOP=y
+CONFIG_TOUCHSCREEN_USB_GUNZE=y
+CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
+CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
+CONFIG_TOUCHSCREEN_USB_ITM=y
+CONFIG_TOUCHSCREEN_USB_JASTEC=y
+CONFIG_TOUCHSCREEN_USB_NEXIO=y
+CONFIG_TOUCHSCREEN_USB_PANJIT=y
+CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
+CONFIG_TOUCHSCREEN_W90X900=m
+CONFIG_TOUCHSCREEN_WACOM_W8001=m
+CONFIG_TOUCHSCREEN_WM9705=y
+CONFIG_TOUCHSCREEN_WM9712=y
+CONFIG_TOUCHSCREEN_WM9713=y
+CONFIG_TOUCHSCREEN_WM97XX=m
+CONFIG_TPS65010=m
+CONFIG_TPS6507X=m
+CONFIG_TR=y
+CONFIG_TRACEPOINTS=y
+CONFIG_TRACER_MAX_TRACE=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_TRACING=y
+CONFIG_TRACING_SUPPORT=y
+CONFIG_TRANZPORT=m
+# CONFIG_TREE_PREEMPT_RCU is not set
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_RCU_TRACE is not set
+CONFIG_TULIP=m
+# CONFIG_TULIP_MMIO is not set
+# CONFIG_TULIP_MWI is not set
+# CONFIG_TULIP_NAPI is not set
+CONFIG_TWL4030_CODEC=y
+CONFIG_TWL4030_CORE=y
+CONFIG_TWL4030_USB=m
+CONFIG_TWL4030_WATCHDOG=m
+CONFIG_TYPHOON=m
+# CONFIG_UACCESS_WITH_MEMCPY is not set
+CONFIG_UBIFS_FS=m
+# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
+# CONFIG_UBIFS_FS_DEBUG is not set
+CONFIG_UBIFS_FS_LZO=y
+CONFIG_UBIFS_FS_XATTR=y
+CONFIG_UBIFS_FS_ZLIB=y
+CONFIG_UCB1400_CORE=m
+CONFIG_UDF_FS=m
+CONFIG_UDF_NLS=y
+CONFIG_UEVENT_HELPER_PATH=""
+# CONFIG_UFS_DEBUG is not set
+CONFIG_UFS_FS=m
+# CONFIG_UFS_FS_WRITE is not set
+CONFIG_UID16=y
+CONFIG_UIO=m
+CONFIG_UIO_AEC=m
+CONFIG_UIO_CIF=m
+CONFIG_UIO_NETX=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_UIO_PDRV=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_SERCOS3=m
+CONFIG_ULI526X=m
+CONFIG_ULTRA=m
+CONFIG_ULTRA32=m
+CONFIG_ULTRAMCA=m
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_UNIX=y
+CONFIG_UNIX98_PTYS=y
+CONFIG_UNUSED_SYMBOLS=y
+CONFIG_USB=y
+CONFIG_USBPCWATCHDOG=m
+CONFIG_USB_ACM=m
+CONFIG_USB_ADUTUX=m
+CONFIG_USB_ALI_M5632=y
+CONFIG_USB_AN2720=y
+# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set
+CONFIG_USB_APPLEDISPLAY=m
+CONFIG_USB_ARCH_HAS_EHCI=y
+CONFIG_USB_ARCH_HAS_HCD=y
+CONFIG_USB_ARCH_HAS_OHCI=y
+CONFIG_USB_ARMLINUX=y
+CONFIG_USB_ATM=m
+CONFIG_USB_AUDIO=m
+CONFIG_USB_BELKIN=y
+CONFIG_USB_C67X00_HCD=m
+CONFIG_USB_CATC=m
+CONFIG_USB_CDC_COMPOSITE=m
+CONFIG_USB_CDC_PHONET=m
+CONFIG_USB_CXACRU=m
+CONFIG_USB_CYPRESS_CY7C63=m
+CONFIG_USB_CYTHERM=m
+CONFIG_USB_DABUSB=m
+# CONFIG_USB_DEBUG is not set
+# CONFIG_USB_DEVICEFS is not set
+# CONFIG_USB_DEVICE_CLASS is not set
+CONFIG_USB_DSBR=m
+CONFIG_USB_DUMMY_HCD=m
+# CONFIG_USB_DYNAMIC_MINORS is not set
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EMI26=m
+CONFIG_USB_EMI62=m
+CONFIG_USB_EPSON2888=y
+CONFIG_USB_ETH=m
+# CONFIG_USB_ETH_EEM is not set
+CONFIG_USB_ETH_RNDIS=y
+CONFIG_USB_EZUSB=y
+CONFIG_USB_FILE_STORAGE=m
+# CONFIG_USB_FILE_STORAGE_TEST is not set
+CONFIG_USB_FTDI_ELAN=m
+CONFIG_USB_FUNCTIONFS=m
+CONFIG_USB_FUNCTIONFS_ETH=y
+CONFIG_USB_FUNCTIONFS_GENERIC=y
+CONFIG_USB_FUNCTIONFS_RNDIS=y
+CONFIG_USB_GADGETFS=m
+# CONFIG_USB_GADGET_AMD5536UDC is not set
+# CONFIG_USB_GADGET_AT91 is not set
+# CONFIG_USB_GADGET_ATMEL_USBA is not set
+# CONFIG_USB_GADGET_CI13XXX is not set
+# CONFIG_USB_GADGET_DEBUG is not set
+# CONFIG_USB_GADGET_DEBUG_FILES is not set
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_GADGET_FSL_QE is not set
+# CONFIG_USB_GADGET_FSL_USB2 is not set
+# CONFIG_USB_GADGET_GOKU is not set
+# CONFIG_USB_GADGET_IMX is not set
+# CONFIG_USB_GADGET_LANGWELL is not set
+# CONFIG_USB_GADGET_LH7A40X is not set
+# CONFIG_USB_GADGET_M66592 is not set
+# CONFIG_USB_GADGET_NET2280 is not set
+# CONFIG_USB_GADGET_OMAP is not set
+# CONFIG_USB_GADGET_PXA25X is not set
+# CONFIG_USB_GADGET_PXA27X is not set
+# CONFIG_USB_GADGET_R8A66597 is not set
+# CONFIG_USB_GADGET_S3C2410 is not set
+# CONFIG_USB_GADGET_S3C_HSOTG is not set
+CONFIG_USB_GADGET_SELECTED=y
+CONFIG_USB_GADGET_VBUS_DRAW=2
+CONFIG_USB_GL860=m
+CONFIG_USB_GPIO_VBUS=m
+CONFIG_USB_GSPCA=m
+CONFIG_USB_GSPCA_BENQ=m
+CONFIG_USB_GSPCA_CONEX=m
+CONFIG_USB_GSPCA_CPIA1=m
+CONFIG_USB_GSPCA_ETOMS=m
+CONFIG_USB_GSPCA_FINEPIX=m
+CONFIG_USB_GSPCA_JEILINJ=m
+CONFIG_USB_GSPCA_MARS=m
+CONFIG_USB_GSPCA_MR97310A=m
+CONFIG_USB_GSPCA_OV519=m
+CONFIG_USB_GSPCA_OV534=m
+CONFIG_USB_GSPCA_OV534_9=m
+CONFIG_USB_GSPCA_PAC207=m
+CONFIG_USB_GSPCA_PAC7302=m
+CONFIG_USB_GSPCA_PAC7311=m
+CONFIG_USB_GSPCA_SN9C2028=m
+CONFIG_USB_GSPCA_SN9C20X=m
+CONFIG_USB_GSPCA_SONIXB=m
+CONFIG_USB_GSPCA_SONIXJ=m
+CONFIG_USB_GSPCA_SPCA500=m
+CONFIG_USB_GSPCA_SPCA501=m
+CONFIG_USB_GSPCA_SPCA505=m
+CONFIG_USB_GSPCA_SPCA506=m
+CONFIG_USB_GSPCA_SPCA508=m
+CONFIG_USB_GSPCA_SPCA561=m
+CONFIG_USB_GSPCA_SQ905=m
+CONFIG_USB_GSPCA_SQ905C=m
+CONFIG_USB_GSPCA_STK014=m
+CONFIG_USB_GSPCA_STV0680=m
+CONFIG_USB_GSPCA_SUNPLUS=m
+CONFIG_USB_GSPCA_T613=m
+CONFIG_USB_GSPCA_TV8532=m
+CONFIG_USB_GSPCA_VC032X=m
+CONFIG_USB_GSPCA_ZC3XX=m
+CONFIG_USB_G_HID=m
+CONFIG_USB_G_MULTI_CDC=y
+CONFIG_USB_G_MULTI_RNDIS=y
+CONFIG_USB_G_NOKIA=m
+CONFIG_USB_G_PRINTER=m
+CONFIG_USB_G_SERIAL=m
+CONFIG_USB_G_WEBCAM=m
+CONFIG_USB_HID=m
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_HSO=m
+CONFIG_USB_HWA_HCD=m
+CONFIG_USB_IBMCAM=m
+CONFIG_USB_IDMOUSE=m
+CONFIG_USB_INVENTRA_DMA=y
+CONFIG_USB_IOWARRIOR=m
+CONFIG_USB_IPHETH=m
+CONFIG_USB_IP_COMMON=m
+# CONFIG_USB_IP_DEBUG_ENABLE is not set
+CONFIG_USB_IP_HOST=m
+CONFIG_USB_IP_VHCI_HCD=m
+CONFIG_USB_IRDA=m
+CONFIG_USB_ISIGHTFW=m
+CONFIG_USB_ISP116X_HCD=m
+CONFIG_USB_ISP1760_HCD=m
+CONFIG_USB_KAWETH=m
+CONFIG_USB_KC2190=y
+CONFIG_USB_KONICAWC=m
+CONFIG_USB_LCD=m
+CONFIG_USB_LD=m
+CONFIG_USB_LED=m
+CONFIG_USB_LEGOTOWER=m
+# CONFIG_USB_LIBUSUAL is not set
+CONFIG_USB_M5602=m
+CONFIG_USB_MASS_STORAGE=m
+CONFIG_USB_MDC800=m
+CONFIG_USB_MICROTEK=m
+CONFIG_USB_MIDI_GADGET=m
+CONFIG_USB_MR800=m
+# CONFIG_USB_MUSB_DEBUG is not set
+CONFIG_USB_MUSB_HDRC_HCD=y
+# CONFIG_USB_MUSB_HOST is not set
+CONFIG_USB_MUSB_OTG=y
+# CONFIG_USB_MUSB_PERIPHERAL is not set
+CONFIG_USB_MUSB_SOC=y
+CONFIG_USB_NET_AX8817X=m
+CONFIG_USB_NET_CDCETHER=m
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_CDC_SUBSET=m
+CONFIG_USB_NET_DM9601=m
+CONFIG_USB_NET_GL620A=m
+CONFIG_USB_NET_INT51X1=m
+CONFIG_USB_NET_MCS7830=m
+CONFIG_USB_NET_NET1080=m
+CONFIG_USB_NET_PLUSB=m
+CONFIG_USB_NET_RNDIS_HOST=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_USB_NET_SMSC75XX=m
+CONFIG_USB_NET_SMSC95XX=m
+CONFIG_USB_NET_ZAURUS=m
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_HCD_OMAP3=y
+# CONFIG_USB_OHCI_HCD_SSB is not set
+CONFIG_USB_OHCI_LITTLE_ENDIAN=y
+# CONFIG_USB_OTG_BLACKLIST_HUB is not set
+CONFIG_USB_OTG_UTILS=y
+# CONFIG_USB_OTG_WHITELIST is not set
+# CONFIG_USB_OV511 is not set
+CONFIG_USB_OXU210HP_HCD=m
+CONFIG_USB_PEGASUS=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_PWC=m
+# CONFIG_USB_PWC_DEBUG is not set
+CONFIG_USB_PWC_INPUT_EVDEV=y
+CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_RIO500=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_S2255=m
+CONFIG_USB_SE401=m
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_AIRCABLE=m
+CONFIG_USB_SERIAL_ARK3116=m
+CONFIG_USB_SERIAL_BELKIN=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_CYBERJACK=m
+CONFIG_USB_SERIAL_CYPRESS_M8=m
+CONFIG_USB_SERIAL_DEBUG=m
+CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT=m
+CONFIG_USB_SERIAL_EDGEPORT_TI=m
+CONFIG_USB_SERIAL_EMPEG=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_FUNSOFT=m
+CONFIG_USB_SERIAL_GARMIN=m
+CONFIG_USB_SERIAL_GENERIC=y
+CONFIG_USB_SERIAL_HP4X=m
+CONFIG_USB_SERIAL_IPAQ=m
+CONFIG_USB_SERIAL_IPW=m
+CONFIG_USB_SERIAL_IR=m
+CONFIG_USB_SERIAL_IUU=m
+CONFIG_USB_SERIAL_KEYSPAN=m
+CONFIG_USB_SERIAL_KEYSPAN_MPR=y
+CONFIG_USB_SERIAL_KEYSPAN_PDA=m
+CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
+CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
+CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
+CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
+CONFIG_USB_SERIAL_KLSI=m
+CONFIG_USB_SERIAL_KOBIL_SCT=m
+CONFIG_USB_SERIAL_MCT_U232=m
+CONFIG_USB_SERIAL_MOS7715_PARPORT=y
+CONFIG_USB_SERIAL_MOS7720=m
+CONFIG_USB_SERIAL_MOS7840=m
+CONFIG_USB_SERIAL_MOTOROLA=m
+CONFIG_USB_SERIAL_NAVMAN=m
+CONFIG_USB_SERIAL_OMNINET=m
+CONFIG_USB_SERIAL_OPTICON=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_SERIAL_OTI6858=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_QCAUX=m
+CONFIG_USB_SERIAL_QUALCOMM=m
+CONFIG_USB_SERIAL_SAFE=m
+# CONFIG_USB_SERIAL_SAFE_PADDED is not set
+CONFIG_USB_SERIAL_SIEMENS_MPI=m
+CONFIG_USB_SERIAL_SIERRAWIRELESS=m
+CONFIG_USB_SERIAL_SPCP8X5=m
+CONFIG_USB_SERIAL_SYMBOL=m
+CONFIG_USB_SERIAL_TI=m
+CONFIG_USB_SERIAL_VISOR=m
+CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
+CONFIG_USB_SERIAL_WHITEHEAT=m
+CONFIG_USB_SERIAL_WWAN=m
+CONFIG_USB_SERIAL_XIRCOM=m
+CONFIG_USB_SERIAL_ZIO=m
+CONFIG_USB_SEVSEG=m
+CONFIG_USB_SI470X=m
+CONFIG_USB_SIERRA_NET=m
+CONFIG_USB_SISUSBVGA=m
+# CONFIG_USB_SISUSBVGA_CON is not set
+CONFIG_USB_SL811_CS=m
+CONFIG_USB_SL811_HCD=m
+CONFIG_USB_SPEEDTOUCH=m
+CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE_ALAUDA=m
+CONFIG_USB_STORAGE_CYPRESS_ATACB=m
+CONFIG_USB_STORAGE_DATAFAB=m
+# CONFIG_USB_STORAGE_DEBUG is not set
+CONFIG_USB_STORAGE_FREECOM=m
+CONFIG_USB_STORAGE_ISD200=m
+CONFIG_USB_STORAGE_JUMPSHOT=m
+CONFIG_USB_STORAGE_KARMA=m
+CONFIG_USB_STORAGE_ONETOUCH=m
+CONFIG_USB_STORAGE_SDDR09=m
+CONFIG_USB_STORAGE_SDDR55=m
+CONFIG_USB_STORAGE_USBAT=m
+CONFIG_USB_STV06XX=m
+CONFIG_USB_SUPPORT=y
+CONFIG_USB_SUSPEND=y
+CONFIG_USB_TEST=m
+# CONFIG_USB_TI_CPPI_DMA is not set
+CONFIG_USB_TMC=m
+CONFIG_USB_TRANCEVIBRATOR=m
+CONFIG_USB_U132_HCD=m
+CONFIG_USB_UEAGLEATM=m
+CONFIG_USB_ULPI=y
+CONFIG_USB_USBNET=m
+CONFIG_USB_USS720=m
+CONFIG_USB_VICAM=m
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
+CONFIG_USB_W9968CF=m
+CONFIG_USB_WDM=m
+CONFIG_USB_WHCI_HCD=m
+CONFIG_USB_WUSB=m
+CONFIG_USB_WUSB_CBAF=m
+# CONFIG_USB_WUSB_CBAF_DEBUG is not set
+CONFIG_USB_XHCI_HCD=m
+# CONFIG_USB_XHCI_HCD_DEBUGGING is not set
+CONFIG_USB_XUSBATM=m
+CONFIG_USB_ZD1201=m
+CONFIG_USB_ZERO=m
+# CONFIG_USB_ZERO_HNPTEST is not set
+CONFIG_USB_ZR364XX=m
+CONFIG_USER_NS=y
+CONFIG_USER_RETURN_NOTIFIER=y
+CONFIG_USER_STACKTRACE_SUPPORT=y
+CONFIG_USE_GENERIC_SMP_HELPERS=y
+CONFIG_USE_PERCPU_NUMA_NODE_ID=y
+CONFIG_UTS_NS=y
+CONFIG_UWB=m
+CONFIG_UWB_HWA=m
+CONFIG_UWB_I1480U=m
+CONFIG_UWB_I1480U_WLP=m
+CONFIG_UWB_WHCI=m
+CONFIG_UWB_WLP=m
+CONFIG_V4L2_MEM2MEM_DEV=m
+CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_V4L_USB_DRIVERS=y
+CONFIG_VECTORS_BASE=0xffff0000
+CONFIG_VERSION_SIGNATURE=""
+CONFIG_VETH=m
+CONFIG_VFAT_FS=m
+CONFIG_VFP=y
+CONFIG_VFPv3=y
+# CONFIG_VGACON_SOFT_SCROLLBACK is not set
+CONFIG_VGA_ARB=y
+CONFIG_VGA_ARB_MAX_GPUS=16
+CONFIG_VGA_SWITCHEROO=y
+CONFIG_VHOST_NET=m
+CONFIG_VIA_FIR=m
+CONFIG_VIA_RHINE=m
+CONFIG_VIA_RHINE_MMIO=y
+CONFIG_VIA_VELOCITY=m
+CONFIG_VIDEOBUF_DMA_CONTIG=m
+CONFIG_VIDEOBUF_DMA_SG=m
+CONFIG_VIDEOBUF_DVB=m
+CONFIG_VIDEOBUF_GEN=m
+CONFIG_VIDEOBUF_VMALLOC=m
+# CONFIG_VIDEO_ADV7180 is not set
+# CONFIG_VIDEO_ADV7343 is not set
+# CONFIG_VIDEO_ADV_DEBUG is not set
+CONFIG_VIDEO_AK881X=m
+CONFIG_VIDEO_ALLOW_V4L1=y
+CONFIG_VIDEO_AU0828=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT848_DVB=y
+CONFIG_VIDEO_BTCX=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CAFE_CCIC=m
+CONFIG_VIDEO_CAPTURE_DRIVERS=y
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_CPIA_PP=m
+CONFIG_VIDEO_CPIA_USB=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CS53L32A=m
+CONFIG_VIDEO_CX18=m
+CONFIG_VIDEO_CX18_ALSA=m
+CONFIG_VIDEO_CX231XX=m
+CONFIG_VIDEO_CX231XX_ALSA=m
+CONFIG_VIDEO_CX231XX_DVB=m
+CONFIG_VIDEO_CX2341X=m
+CONFIG_VIDEO_CX23885=m
+CONFIG_VIDEO_CX25821=m
+CONFIG_VIDEO_CX25821_ALSA=m
+CONFIG_VIDEO_CX25840=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_CX88_ALSA=m
+CONFIG_VIDEO_CX88_BLACKBIRD=m
+CONFIG_VIDEO_CX88_DVB=m
+CONFIG_VIDEO_CX88_MPEG=m
+CONFIG_VIDEO_CX88_VP3054=m
+CONFIG_VIDEO_DT3155=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_EM28XX_ALSA=m
+CONFIG_VIDEO_EM28XX_DVB=m
+CONFIG_VIDEO_FB_IVTV=m
+# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
+CONFIG_VIDEO_GO7007=m
+CONFIG_VIDEO_GO7007_OV7640=m
+CONFIG_VIDEO_GO7007_SAA7113=m
+CONFIG_VIDEO_GO7007_SAA7115=m
+CONFIG_VIDEO_GO7007_SONY_TUNER=m
+CONFIG_VIDEO_GO7007_TW2804=m
+CONFIG_VIDEO_GO7007_TW9903=m
+CONFIG_VIDEO_GO7007_UDA1342=m
+CONFIG_VIDEO_GO7007_USB=m
+CONFIG_VIDEO_GO7007_USB_S2250_BOARD=m
+CONFIG_VIDEO_HDPVR=m
+CONFIG_VIDEO_HEXIUM_GEMINI=m
+CONFIG_VIDEO_HEXIUM_ORION=m
+CONFIG_VIDEO_IR=m
+CONFIG_VIDEO_IR_I2C=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_MEDIA=m
+CONFIG_VIDEO_MEM2MEM_TESTDEV=m
+CONFIG_VIDEO_MEYE=m
+CONFIG_VIDEO_MSP3400=m
+CONFIG_VIDEO_MXB=m
+CONFIG_VIDEO_OV7670=m
+CONFIG_VIDEO_PMS=m
+CONFIG_VIDEO_PVRUSB2=m
+# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
+CONFIG_VIDEO_PVRUSB2_DVB=y
+CONFIG_VIDEO_PVRUSB2_SYSFS=y
+CONFIG_VIDEO_SAA5246A=m
+CONFIG_VIDEO_SAA5249=m
+CONFIG_VIDEO_SAA711X=m
+CONFIG_VIDEO_SAA7127=m
+CONFIG_VIDEO_SAA7134=m
+CONFIG_VIDEO_SAA7134_ALSA=m
+CONFIG_VIDEO_SAA7134_DVB=m
+CONFIG_VIDEO_SAA7146=m
+CONFIG_VIDEO_SAA7146_VV=m
+CONFIG_VIDEO_SAA7164=m
+CONFIG_VIDEO_SAA717X=m
+# CONFIG_VIDEO_SAA7191 is not set
+CONFIG_VIDEO_SH_MOBILE_CEU=m
+CONFIG_VIDEO_STRADIS=m
+# CONFIG_VIDEO_TCM825X is not set
+# CONFIG_VIDEO_TDA9875 is not set
+# CONFIG_VIDEO_THS7303 is not set
+CONFIG_VIDEO_TLG2300=m
+# CONFIG_VIDEO_TLV320AIC23B is not set
+CONFIG_VIDEO_TM6000=m
+CONFIG_VIDEO_TM6000_ALSA=m
+CONFIG_VIDEO_TM6000_DVB=y
+CONFIG_VIDEO_TUNER=m
+CONFIG_VIDEO_TVEEPROM=m
+# CONFIG_VIDEO_TVP514X is not set
+CONFIG_VIDEO_TVP7002=m
+CONFIG_VIDEO_UPD64031A=m
+CONFIG_VIDEO_UPD64083=m
+CONFIG_VIDEO_USBVIDEO=m
+CONFIG_VIDEO_USBVISION=m
+CONFIG_VIDEO_V4L1=m
+CONFIG_VIDEO_V4L1_COMPAT=y
+CONFIG_VIDEO_V4L2=m
+CONFIG_VIDEO_V4L2_COMMON=m
+CONFIG_VIDEO_VIVI=m
+CONFIG_VIDEO_VP27SMPX=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIDEO_WM8739=m
+CONFIG_VIDEO_WM8775=m
+CONFIG_VIDEO_ZORAN=m
+CONFIG_VIDEO_ZORAN_AVS6EYES=m
+CONFIG_VIDEO_ZORAN_BUZ=m
+CONFIG_VIDEO_ZORAN_DC10=m
+CONFIG_VIDEO_ZORAN_DC30=m
+CONFIG_VIDEO_ZORAN_LML33=m
+CONFIG_VIDEO_ZORAN_LML33R10=m
+CONFIG_VIDEO_ZORAN_ZR36060=m
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_CONSOLE=m
+CONFIG_VIRTUALIZATION=y
+CONFIG_VIRT_TO_BUS=y
+CONFIG_VITESSE_PHY=y
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLSI_FIR=m
+CONFIG_VM86=y
+CONFIG_VME_BUS=m
+CONFIG_VME_USER=m
+CONFIG_VMI=y
+CONFIG_VMIVME_7805=m
+# CONFIG_VMSPLIT_1G is not set
+# CONFIG_VMSPLIT_2G is not set
+CONFIG_VMSPLIT_3G=y
+# CONFIG_VMWARE_BALLOON is not set
+CONFIG_VMWARE_PVSCSI=m
+CONFIG_VMXNET3=m
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_VORTEX=m
+CONFIG_VT=y
+# CONFIG_VT6655 is not set
+CONFIG_VT_CONSOLE=y
+CONFIG_VXFS_FS=m
+CONFIG_VXGE=m
+# CONFIG_VXGE_DEBUG_TRACE_ALL is not set
+CONFIG_W1=m
+CONFIG_W1_CON=y
+CONFIG_W1_MASTER_DS1WM=m
+CONFIG_W1_MASTER_DS2482=m
+CONFIG_W1_MASTER_DS2490=m
+CONFIG_W1_MASTER_GPIO=m
+CONFIG_W1_MASTER_MATROX=m
+CONFIG_W1_SLAVE_BQ27000=m
+CONFIG_W1_SLAVE_DS2431=m
+CONFIG_W1_SLAVE_DS2433=m
+# CONFIG_W1_SLAVE_DS2433_CRC is not set
+CONFIG_W1_SLAVE_DS2760=m
+CONFIG_W1_SLAVE_SMEM=m
+CONFIG_W1_SLAVE_THERM=m
+CONFIG_W35UND=m
+CONFIG_W83627HF_WDT=m
+CONFIG_W83697HF_WDT=m
+CONFIG_W83697UG_WDT=m
+CONFIG_W83877F_WDT=m
+CONFIG_W83977F_WDT=m
+CONFIG_WAFER_WDT=m
+CONFIG_WANXL=m
+CONFIG_WAN_ROUTER_DRIVERS=m
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WD80x3=m
+CONFIG_WDT=m
+CONFIG_WDTPCI=m
+CONFIG_WEXT_CORE=y
+CONFIG_WEXT_PRIV=y
+CONFIG_WEXT_PROC=y
+CONFIG_WEXT_SPY=y
+CONFIG_WIMAX=m
+CONFIG_WIMAX_DEBUG_LEVEL=8
+CONFIG_WIMAX_I2400M=m
+CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
+CONFIG_WIMAX_IWMC3200_SDIO=y
+CONFIG_WINBOND_840=m
+CONFIG_WINBOND_FIR=m
+CONFIG_WIRELESS=y
+CONFIG_WIRELESS_EXT=y
+CONFIG_WIRELESS_EXT_SYSFS=y
+CONFIG_WL1251=m
+CONFIG_WL1251_SDIO=m
+CONFIG_WL1251_SPI=m
+CONFIG_WL1271=m
+CONFIG_WL1271_SDIO=m
+CONFIG_WL1271_SPI=m
+CONFIG_WL12XX=m
+CONFIG_WLAGS49_H2=m
+CONFIG_WLAGS49_H25=m
+CONFIG_WLAN=y
+CONFIG_WM831X_BACKUP=m
+CONFIG_WM831X_POWER=m
+CONFIG_WM831X_WATCHDOG=m
+CONFIG_WM8350_POWER=m
+# CONFIG_WORKQUEUE_TRACER is not set
+CONFIG_X86=y
+# CONFIG_X86_32_NON_STANDARD is not set
+CONFIG_X86_32_SMP=y
+CONFIG_X86_64_ACPI_NUMA=y
+CONFIG_X86_64_SMP=y
+CONFIG_X86_ACPI_CPUFREQ=y
+CONFIG_X86_ALIGNMENT_16=y
+# CONFIG_X86_ANCIENT_MCE is not set
+CONFIG_X86_APM_BOOT=y
+# CONFIG_X86_BIGSMP is not set
+CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
+CONFIG_X86_BSWAP=y
+CONFIG_X86_CHECK_BIOS_CORRUPTION=y
+CONFIG_X86_CMOV=y
+CONFIG_X86_CMPXCHG=y
+CONFIG_X86_CMPXCHG64=y
+CONFIG_X86_CPU=y
+CONFIG_X86_CPUFREQ_NFORCE2=y
+CONFIG_X86_CPUID=m
+CONFIG_X86_DEBUGCTLMSR=y
+# CONFIG_X86_DECODER_SELFTEST is not set
+# CONFIG_X86_ELAN is not set
+CONFIG_X86_EXTENDED_PLATFORM=y
+CONFIG_X86_E_POWERSAVER=m
+CONFIG_X86_F00F_BUG=y
+CONFIG_X86_GENERIC=y
+CONFIG_X86_GX_SUSPMOD=y
+CONFIG_X86_HT=y
+CONFIG_X86_INTEL_USERCOPY=y
+CONFIG_X86_INVLPG=y
+CONFIG_X86_IO_APIC=y
+CONFIG_X86_L1_CACHE_SHIFT=6
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_LONGHAUL=y
+CONFIG_X86_LONGRUN=y
+CONFIG_X86_MCE=y
+CONFIG_X86_MCE_AMD=y
+CONFIG_X86_MCE_INJECT=m
+CONFIG_X86_MCE_INTEL=y
+CONFIG_X86_MCE_THRESHOLD=y
+CONFIG_X86_MCE_XEON75XX=m
+CONFIG_X86_MPPARSE=y
+CONFIG_X86_MRST=y
+CONFIG_X86_MSR=m
+CONFIG_X86_NEED_RELOCS=y
+CONFIG_X86_P4_CLOCKMOD=m
+CONFIG_X86_PAE=y
+CONFIG_X86_PAT=y
+CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_PLATFORM_DEVICES=y
+CONFIG_X86_PM_TIMER=y
+CONFIG_X86_POPAD_OK=y
+CONFIG_X86_POWERNOW_K6=y
+CONFIG_X86_POWERNOW_K7=y
+CONFIG_X86_POWERNOW_K7_ACPI=y
+CONFIG_X86_POWERNOW_K8=y
+CONFIG_X86_PPRO_FENCE=y
+# CONFIG_X86_PTDUMP is not set
+# CONFIG_X86_RDC321X is not set
+CONFIG_X86_REBOOTFIXUPS=y
+CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y
+CONFIG_X86_RESERVE_LOW_64K=y
+CONFIG_X86_SPEEDSTEP_CENTRINO=y
+CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y
+CONFIG_X86_SPEEDSTEP_ICH=y
+CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y
+CONFIG_X86_SPEEDSTEP_SMI=y
+CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
+CONFIG_X86_THERMAL_VECTOR=y
+CONFIG_X86_TRAMPOLINE=y
+CONFIG_X86_TSC=y
+# CONFIG_X86_VERBOSE_BOOTUP is not set
+# CONFIG_X86_VSMP is not set
+CONFIG_X86_WP_WORKS_OK=y
+CONFIG_X86_XADD=y
+CONFIG_XEN=y
+CONFIG_XENFS=m
+CONFIG_XEN_BALLOON=y
+CONFIG_XEN_BLKDEV_FRONTEND=m
+CONFIG_XEN_COMPAT_XENFS=y
+# CONFIG_XEN_DEBUG_FS is not set
+CONFIG_XEN_DEV_EVTCHN=m
+CONFIG_XEN_FBDEV_FRONTEND=m
+CONFIG_XEN_KBDDEV_FRONTEND=m
+CONFIG_XEN_MAX_DOMAIN_MEMORY=32
+CONFIG_XEN_NETDEV_FRONTEND=m
+CONFIG_XEN_SAVE_RESTORE=y
+CONFIG_XEN_SCRUB_PAGES=y
+CONFIG_XEN_SYS_HYPERVISOR=y
+CONFIG_XFRM=y
+CONFIG_XFRM_IPCOMP=m
+# CONFIG_XFRM_MIGRATE is not set
+# CONFIG_XFRM_STATISTICS is not set
+# CONFIG_XFRM_SUB_POLICY is not set
+CONFIG_XFRM_USER=m
+# CONFIG_XFS_DEBUG is not set
+CONFIG_XFS_FS=m
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_RT=y
+# CONFIG_XIP_KERNEL is not set
+CONFIG_XOR_BLOCKS=m
+CONFIG_YAM=m
+CONFIG_YELLOWFIN=m
+CONFIG_YENTA=m
+CONFIG_YENTA_ENE_TUNE=y
+CONFIG_YENTA_O2=y
+CONFIG_YENTA_RICOH=y
+CONFIG_YENTA_TI=y
+CONFIG_YENTA_TOSHIBA=y
+CONFIG_ZBOOT_ROM_BSS=0x0
+CONFIG_ZBOOT_ROM_TEXT=0x0
+CONFIG_ZD1211RW=m
+# CONFIG_ZD1211RW_DEBUG is not set
+CONFIG_ZEROPLUS_FF=y
+CONFIG_ZISOFS=y
+CONFIG_ZLIB_DEFLATE=m
+CONFIG_ZLIB_INFLATE=y
+CONFIG_ZNET=m
+CONFIG_ZONE_DMA=y
diff --git a/debian.master/config/i386/config.common.i386 b/debian.master/config/i386/config.common.i386
new file mode 100644
index 00000000000..be7a110b10a
--- /dev/null
+++ b/debian.master/config/i386/config.common.i386
@@ -0,0 +1,288 @@
+#
+# Config options for config.common.i386 automatically generated by splitconfig.pl
+#
+# CONFIG_64BIT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=2000
+CONFIG_AGP=m
+CONFIG_AGP_AMD64=m
+CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig"
+CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx"
+CONFIG_ARCH_SELECT_MEMORY_MODEL=y
+CONFIG_ARCH_SUPPORTS_MSI=y
+CONFIG_ASYNC_TX_DMA=y
+CONFIG_ATALK=m
+CONFIG_ATM=m
+# CONFIG_ATM_BR2684_IPFILTER is not set
+# CONFIG_ATM_DUMMY is not set
+# CONFIG_AUDIT_ARCH is not set
+CONFIG_B43=m
+CONFIG_B43LEGACY=m
+CONFIG_B44=m
+CONFIG_BT=m
+# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
+CONFIG_CDROM_PKTCDVD=y
+CONFIG_CEPH_FS=m
+CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
+CONFIG_COMEDI=m
+CONFIG_CRYPTO_HMAC=y
+CONFIG_DEFAULT_CFQ=y
+# CONFIG_DEFAULT_DEADLINE is not set
+CONFIG_DEFAULT_IOSCHED="cfq"
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+CONFIG_DISPLAY_SUPPORT=m
+CONFIG_DM_RAID45=m
+CONFIG_DRM_RADEON=m
+CONFIG_DT3155=m
+# CONFIG_DVB_FE_CUSTOMISE is not set
+# CONFIG_DVB_USB_EC168 is not set
+# CONFIG_EZX_PCAP is not set
+CONFIG_FB_BACKLIGHT=y
+CONFIG_FB_BOOT_VESA_SUPPORT=y
+CONFIG_FB_DDC=m
+CONFIG_FB_S1D13XXX=m
+CONFIG_FB_SAVAGE=m
+CONFIG_FB_SVGALIB=m
+CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_UVESA=m
+CONFIG_FIRMWARE_EDID=y
+CONFIG_FLATMEM_MANUAL=y
+# CONFIG_FONTS is not set
+CONFIG_FSAM7400=m
+CONFIG_FTL=m
+CONFIG_FUNCTION_TRACER=y
+CONFIG_GAMEPORT=m
+# CONFIG_GENERIC_CPU is not set
+# CONFIG_GENERIC_TIME_VSYSCALL is not set
+CONFIG_GPIO_JANZ_TTL=m
+CONFIG_GPIO_MAX732X=m
+CONFIG_GPIO_PCA953X=m
+CONFIG_GPIO_PCF857X=m
+CONFIG_GPIO_TWL4030=m
+CONFIG_HAVE_AOUT=y
+# CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_HIGHMEM=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_HUGETLB_PAGE=y
+CONFIG_HWMON=y
+CONFIG_HZ=250
+# CONFIG_HZ_100 is not set
+CONFIG_HZ_250=y
+CONFIG_ILLEGAL_POINTER_VALUE=0
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_INPUT_TOUCHSCREEN=y
+# CONFIG_IOMMU_API is not set
+# CONFIG_IOMMU_HELPER is not set
+CONFIG_IPMI_HANDLER=m
+CONFIG_IRDA=m
+CONFIG_ISDN=y
+CONFIG_IWMC3200TOP_DEBUGFS=y
+CONFIG_KEYBOARD_LKKBD=m
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_XTKBD=m
+CONFIG_KSM=y
+CONFIG_KTIME_SCALAR=y
+CONFIG_LAPB=m
+CONFIG_LAPBETHER=m
+CONFIG_LIBERTAS_MESH=y
+CONFIG_LIRC_DEV=m
+CONFIG_LLC=y
+CONFIG_LLC2=m
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_MEMSTICK=m
+CONFIG_MFD_JANZ_CMODIO=m
+# CONFIG_MFD_TMIO is not set
+CONFIG_MII=m
+CONFIG_MMC_BLOCK=m
+CONFIG_MMC_SDHCI=m
+CONFIG_MOUSE_PS2=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MTD=m
+CONFIG_MTD_ABSENT=m
+CONFIG_MTD_ALAUDA=m
+CONFIG_MTD_AR7_PARTS=m
+CONFIG_MTD_BLKDEVS=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_CFI=m
+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_CFI_UTIL=m
+CONFIG_MTD_CHAR=m
+CONFIG_MTD_COMPLEX_MAPPINGS=y
+CONFIG_MTD_CONCAT=m
+CONFIG_MTD_DATAFLASH=m
+CONFIG_MTD_DOC2000=m
+CONFIG_MTD_DOC2001=m
+CONFIG_MTD_DOC2001PLUS=m
+CONFIG_MTD_GEN_PROBE=m
+CONFIG_MTD_GPIO_ADDR=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_MTDRAM=m
+CONFIG_MTD_NAND=m
+CONFIG_MTD_NAND_ECC=m
+CONFIG_MTD_NAND_IDS=m
+CONFIG_MTD_NAND_NANDSIM=m
+CONFIG_MTD_NAND_PLATFORM=m
+CONFIG_MTD_ONENAND=m
+CONFIG_MTD_PHRAM=m
+CONFIG_MTD_PHYSMAP=m
+CONFIG_MTD_PLATRAM=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_REDBOOT_PARTS=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_SLRAM=m
+CONFIG_MTD_SM_COMMON=m
+CONFIG_MTD_SST25L=m
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_NDISWRAPPER=m
+# CONFIG_NEED_DMA_MAP_STATE is not set
+# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
+CONFIG_NET_CLS_CGROUP=y
+CONFIG_NET_CLS_FLOW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_DCCPPROBE=m
+CONFIG_NET_POCKET=y
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_TCPPROBE=m
+CONFIG_NFTL=m
+CONFIG_NO_HZ=y
+CONFIG_NR_CPUS=8
+CONFIG_OUTPUT_FORMAT="elf32-i386"
+CONFIG_PARPORT=m
+CONFIG_PCCARD=m
+CONFIG_PHYSICAL_ALIGN=0x100000
+CONFIG_PHYSICAL_START=0x100000
+CONFIG_PM_DEBUG=y
+CONFIG_POCH=m
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+# CONFIG_PRINT_QUOTA_WARNING is not set
+CONFIG_PRISM2_USB=m
+CONFIG_R3964=m
+CONFIG_RAMZSWAP=m
+CONFIG_RCU_FANOUT=32
+CONFIG_REGULATOR_DEBUG=y
+CONFIG_RFD_FTL=m
+CONFIG_RFKILL=y
+CONFIG_RPCSEC_GSS_SPKM3=m
+CONFIG_RT2800USB_UNKNOWN=y
+# CONFIG_RT2X00_LIB_DEBUGFS is not set
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_TWL4030=m
+CONFIG_RTC_INTF_DEV_UIE_EMUL=y
+# CONFIG_RWSEM_GENERIC_SPINLOCK is not set
+CONFIG_SCSI_ACARD=m
+CONFIG_SCSI_ADVANSYS=m
+CONFIG_SCSI_IPR=m
+CONFIG_SCSI_ISCSITARGET=m
+CONFIG_SCSI_NSP32=m
+CONFIG_SCSI_OSD_INITIATOR=m
+CONFIG_SCSI_PROC_FS=y
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_NR_UARTS=48
+CONFIG_SERIAL_8250_PCI=y
+CONFIG_SERIAL_UARTLITE=m
+# CONFIG_SLAB is not set
+CONFIG_SLIP=m
+CONFIG_SLUB=y
+CONFIG_SND=m
+CONFIG_SND_ALI5451=m
+CONFIG_SND_EMU10K1_SEQ=m
+# CONFIG_SND_MIXER_OSS is not set
+CONFIG_SND_MPU401=m
+CONFIG_SND_MTPAV=m
+CONFIG_SND_OPL3_LIB_SEQ=m
+CONFIG_SND_OPL4_LIB_SEQ=m
+CONFIG_SND_PCM=m
+# CONFIG_SND_PCM_OSS is not set
+CONFIG_SND_RAWMIDI_SEQ=m
+CONFIG_SND_SBAWE_SEQ=m
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SERIAL_U16550=m
+CONFIG_SND_SOC=m
+CONFIG_SND_SOC_I2C_AND_SPI=m
+CONFIG_SND_SOC_TWL4030=m
+CONFIG_SND_TIMER=m
+CONFIG_SOUND=m
+# CONFIG_SOUND_OSS_CORE is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_SPI=y
+CONFIG_SPI_DESIGNWARE=y
+CONFIG_SPI_SPIDEV=m
+CONFIG_SSB_B43_PCI_BRIDGE=y
+CONFIG_STACK_TRACER=y
+# CONFIG_STANDALONE is not set
+CONFIG_SUNGEM=m
+CONFIG_TCG_TPM=m
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_THERMAL=y
+CONFIG_TIPC=m
+CONFIG_TTPCI_EEPROM=m
+CONFIG_TUN=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_TT_NEWSCHED=y
+CONFIG_USB_ET61X251=m
+CONFIG_USB_GADGET=m
+# CONFIG_USB_GADGET_DEBUG_FS is not set
+CONFIG_USB_GADGET_DUMMY_HCD=y
+# CONFIG_USB_GADGET_MUSB_HDRC is not set
+# CONFIG_USB_GSPCA_SN9C20X_EVDEV is not set
+# CONFIG_USB_G_MULTI is not set
+CONFIG_USB_ISP1362_HCD=m
+CONFIG_USB_MON=y
+CONFIG_USB_OHCI_HCD=y
+# CONFIG_USB_OTG is not set
+CONFIG_USB_QUICKCAM_MESSENGER=m
+CONFIG_USB_SERIAL_QUATECH2=m
+CONFIG_USB_SERIAL_QUATECH_USB2=m
+CONFIG_USB_SN9C102=m
+CONFIG_USB_STV680=m
+CONFIG_USB_UHCI_HCD=y
+CONFIG_USB_ZC0301=m
+CONFIG_VGASTATE=m
+CONFIG_VGA_CONSOLE=y
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_CPIA=m
+CONFIG_VIDEO_DEV=m
+CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_MT9V011=m
+CONFIG_VIDEO_OUTPUT_CONTROL=m
+CONFIG_VIDEO_OVCAMCHIP=m
+CONFIG_VIDEO_SAA6588=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9840=m
+CONFIG_VIDEO_TEA6415C=m
+CONFIG_VIDEO_TEA6420=m
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_TVP5150=m
+CONFIG_VIDEO_VPX3220=m
+CONFIG_VME_CA91CX42=m
+CONFIG_VME_TSI148=m
+CONFIG_VT6656=m
+CONFIG_VT_HW_CONSOLE_BINDING=y
+CONFIG_WAN=y
+CONFIG_WAN_ROUTER=m
+CONFIG_WATCHDOG=y
+CONFIG_WIMAX_I2400M_SDIO=m
+CONFIG_WIMAX_I2400M_USB=m
+CONFIG_WM8350_WATCHDOG=m
+CONFIG_X25=m
+CONFIG_X25_ASY=m
+CONFIG_X86_32=y
+# CONFIG_X86_64 is not set
+CONFIG_X86_INTERNODE_CACHE_SHIFT=6
+CONFIG_X86_SPEEDSTEP_LIB=y
+# CONFIG_ZONE_DMA32 is not set
+CONFIG_ZONE_DMA_FLAG=1
diff --git a/debian.master/config/i386/config.flavour.generic b/debian.master/config/i386/config.flavour.generic
new file mode 100644
index 00000000000..dde716096e3
--- /dev/null
+++ b/debian.master/config/i386/config.flavour.generic
@@ -0,0 +1,18 @@
+#
+# Config options for config.flavour.generic automatically generated by splitconfig.pl
+#
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+CONFIG_HIGHMEM4G=y
+# CONFIG_HIGHMEM64G is not set
+CONFIG_M586=y
+# CONFIG_M586TSC is not set
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_SYM53C8XX_2=m
+# CONFIG_SYS_HYPERVISOR is not set
+CONFIG_VIRTIO=m
+CONFIG_VIRTIO_BLK=m
+CONFIG_VIRTIO_NET=m
+CONFIG_VIRTIO_PCI=m
+CONFIG_VIRTIO_RING=m
+CONFIG_X86_MINIMUM_CPU_FAMILY=4
diff --git a/debian.master/config/i386/config.flavour.generic-pae b/debian.master/config/i386/config.flavour.generic-pae
new file mode 100644
index 00000000000..4ec3e52820e
--- /dev/null
+++ b/debian.master/config/i386/config.flavour.generic-pae
@@ -0,0 +1,18 @@
+#
+# Config options for config.flavour.generic-pae automatically generated by splitconfig.pl
+#
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+# CONFIG_HIGHMEM4G is not set
+CONFIG_HIGHMEM64G=y
+# CONFIG_M586 is not set
+CONFIG_M586TSC=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_SYM53C8XX_2=y
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_VIRTIO_NET=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_RING=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=5
diff --git a/debian.master/config/i386/config.flavour.virtual b/debian.master/config/i386/config.flavour.virtual
new file mode 100644
index 00000000000..8b500bcfbf2
--- /dev/null
+++ b/debian.master/config/i386/config.flavour.virtual
@@ -0,0 +1,18 @@
+#
+# Config options for config.flavour.virtual automatically generated by splitconfig.pl
+#
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+# CONFIG_HIGHMEM4G is not set
+CONFIG_HIGHMEM64G=y
+# CONFIG_M586 is not set
+CONFIG_M586TSC=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_SCSI_SPI_ATTRS=y
+CONFIG_SCSI_SYM53C8XX_2=y
+CONFIG_SYS_HYPERVISOR=y
+CONFIG_VIRTIO=y
+CONFIG_VIRTIO_BLK=y
+CONFIG_VIRTIO_NET=y
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_RING=y
+CONFIG_X86_MINIMUM_CPU_FAMILY=5
diff --git a/debian.master/config/ia64/config.common.ia64 b/debian.master/config/ia64/config.common.ia64
new file mode 100644
index 00000000000..aa42773c3fc
--- /dev/null
+++ b/debian.master/config/ia64/config.common.ia64
@@ -0,0 +1,303 @@
+#
+# Config options for config.common.ia64 automatically generated by splitconfig.pl
+#
+CONFIG_ACCESSIBILITY=y
+CONFIG_ACORN_PARTITION=y
+CONFIG_AIC79XX_DEBUG_ENABLE=y
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+# CONFIG_ALIM7101_WDT is not set
+CONFIG_AMD8111_ETH=m
+CONFIG_AMIGA_PARTITION=y
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+# CONFIG_ARCH_REQUIRE_GPIOLIB is not set
+CONFIG_ARCNET=m
+CONFIG_ATA=m
+CONFIG_ATARI_PARTITION=y
+CONFIG_ATA_NONSTANDARD=y
+# CONFIG_BINARY_PRINTF is not set
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+# CONFIG_BONDING is not set
+# CONFIG_BRIDGE_NF_EBTABLES is not set
+CONFIG_BSD_DISKLABEL=y
+CONFIG_BT=m
+# CONFIG_CEPH_FS is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+# CONFIG_CGROUP_DEVICE is not set
+CONFIG_CHR_DEV_SCH=m
+CONFIG_CPU_FREQ=y
+# CONFIG_CPU_FREQ_PMAC64 is not set
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_LZO=m
+CONFIG_CRYPTO_TEST=m
+CONFIG_DAB=y
+CONFIG_DE2104X=m
+CONFIG_DE4X5=m
+# CONFIG_DECNET_ROUTER is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+CONFIG_DEFXX=m
+CONFIG_DEV_APPLETALK=m
+CONFIG_DISCONTIGMEM_MANUAL=y
+CONFIG_DM9102=m
+CONFIG_DMADEVICES=y
+CONFIG_DRM=m
+CONFIG_DVB_CORE=m
+CONFIG_ECONET=m
+CONFIG_EZX_PCAP=y
+CONFIG_FB_3DFX=y
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_ATY=m
+CONFIG_FB_ATY128=m
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_IMSTT=y
+CONFIG_FB_KYRO=m
+# CONFIG_FB_MACMODES is not set
+CONFIG_FB_MATROX=y
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+# CONFIG_FB_PS3 is not set
+CONFIG_FB_RIVA=m
+CONFIG_FB_SIS=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+CONFIG_FB_TRIDENT=m
+# CONFIG_FB_VIA is not set
+CONFIG_FB_VOODOO1=y
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_FORCEDETH=m
+CONFIG_FORCE_MAX_ZONEORDER=17
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_GAMEPORT=m
+# CONFIG_GELIC_NET is not set
+CONFIG_GENERIC_IOMAP=y
+# CONFIG_GPIOLIB is not set
+CONFIG_GPIO_SYSFS=y
+CONFIG_HAMACHI=m
+CONFIG_HAMRADIO=y
+CONFIG_HAPPYMEAL=m
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_HIPPI=y
+CONFIG_HP100=m
+CONFIG_HP_ILO=m
+CONFIG_HUGETLB_PAGE=y
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VOODOO3=m
+# CONFIG_IDE is not set
+# CONFIG_IEEE1394_PCILYNX is not set
+CONFIG_IKCONFIG=y
+# CONFIG_INET6_AH is not set
+# CONFIG_INET6_ESP is not set
+# CONFIG_INET6_IPCOMP is not set
+# CONFIG_INET6_TUNNEL is not set
+# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
+# CONFIG_INET6_XFRM_TUNNEL is not set
+# CONFIG_INFINIBAND_AMSO1100 is not set
+# CONFIG_INFINIBAND_IPATH is not set
+# CONFIG_INFINIBAND_IPOIB_CM is not set
+# CONFIG_INFINIBAND_ISER is not set
+CONFIG_INFINIBAND_QIB=m
+# CONFIG_INFINIBAND_SRP is not set
+# CONFIG_INFINIBAND_USER_ACCESS is not set
+# CONFIG_INFINIBAND_USER_MAD is not set
+# CONFIG_INFTL is not set
+CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_INPUT_UINPUT=m
+# CONFIG_IP1000 is not set
+# CONFIG_IPMI_HANDLER is not set
+# CONFIG_IPV6_PRIVACY is not set
+# CONFIG_IPV6_TUNNEL is not set
+# CONFIG_IP_DCCP is not set
+# CONFIG_IP_NF_QUEUE is not set
+# CONFIG_IP_PNP is not set
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IRDA=m
+CONFIG_ISDN=y
+# CONFIG_ISDN_DRV_GIGASET is not set
+CONFIG_KERNEL_START=0xc0000000
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_XTKBD=m
+CONFIG_LAPB=m
+CONFIG_LDM_PARTITION=y
+CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA955X=m
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LLC=y
+CONFIG_LOG_BUF_SHIFT=20
+CONFIG_LZO_COMPRESS=m
+CONFIG_MAC80211_MESH=y
+# CONFIG_MACVLAN is not set
+CONFIG_MAC_PARTITION=y
+# CONFIG_MARKERS is not set
+CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_SM501_GPIO=y
+CONFIG_MINIX_SUBPARTITION=y
+# CONFIG_MMIO_NVRAM is not set
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MTD_NAND_DENALI=m
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+# CONFIG_NCPFS_SMALLDOS is not set
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NET_IPGRE=m
+CONFIG_NET_PKTGEN=m
+# CONFIG_NIU is not set
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NODES_SHIFT=4
+CONFIG_NR_CPUS=4096
+CONFIG_OSF_PARTITION=y
+CONFIG_PAGE_OFFSET=0xc0000000
+CONFIG_PCI_MSI=y
+CONFIG_PHYS_ADDR_T_64BIT=y
+# CONFIG_PPC64 is not set
+# CONFIG_PPC_970_NAP is not set
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_HAS_HASH_64K is not set
+CONFIG_PPC_INDIRECT_PCI=y
+# CONFIG_PPC_MAPLE is not set
+# CONFIG_PPC_MM_SLICES is not set
+CONFIG_PPC_MPC106=y
+# CONFIG_PPC_PASEMI is not set
+# CONFIG_PPC_PS3 is not set
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRISM54=m
+CONFIG_PROFILING=y
+# CONFIG_PS3_VRAM is not set
+CONFIG_QFMT_V1=m
+CONFIG_R8169=m
+CONFIG_RCU_FANOUT=64
+CONFIG_RDS=m
+CONFIG_RISCOM8=m
+# CONFIG_RTAS_ERROR_LOGGING is not set
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_M48T59=m
+# CONFIG_RTC_DRV_PS3 is not set
+# CONFIG_RTC_DRV_TEST is not set
+CONFIG_SATA_SVW=m
+# CONFIG_SCHEDSTATS is not set
+# CONFIG_SCHED_HRTICK is not set
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_DC390T=m
+CONFIG_SCSI_DEBUG=m
+CONFIG_SCSI_FUTURE_DOMAIN=m
+CONFIG_SCSI_IPR=m
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_LOGGING=y
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83L785TS=m
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+CONFIG_SERIAL_8250_NR_UARTS=48
+CONFIG_SERIAL_CORE=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SGI_PARTITION=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_SMP=y
+CONFIG_SOLARIS_X86_PARTITION=y
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_SPECIALIX=m
+CONFIG_STAGING_EXCLUDE_BUILD=y
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_SUNGEM=m
+CONFIG_TABLET_USB_WACOM=m
+CONFIG_THERMAL=m
+CONFIG_TPS65010=m
+CONFIG_TR=y
+# CONFIG_TULIP_NAPI is not set
+CONFIG_UBIFS_FS=m
+# CONFIG_UFS_FS is not set
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_GADGET=m
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_GADGET_GOKU is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_IBMCAM=m
+CONFIG_USB_KONICAWC=m
+CONFIG_USB_MON=y
+CONFIG_USB_NET2280=m
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_PWC=m
+CONFIG_USB_QUICKCAM_MESSENGER=m
+CONFIG_USB_SE401=m
+CONFIG_USB_STV680=m
+CONFIG_USB_UHCI_HCD=y
+CONFIG_USB_VICAM=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CPIA=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_OVCAMCHIP=m
+CONFIG_VIDEO_SAA5249=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9875=m
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_VPX3220=m
+CONFIG_VIDEO_W9966=m
+# CONFIG_VIRTUALIZATION is not set
+CONFIG_WAN=y
+CONFIG_WAN_ROUTER=m
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_WORD_SIZE=32
+CONFIG_X25=m
+CONFIG_ZONE_DMA_FLAG=1
diff --git a/debian.master/config/ia64/config.flavour.ia64 b/debian.master/config/ia64/config.flavour.ia64
new file mode 100644
index 00000000000..6e3dba8c108
--- /dev/null
+++ b/debian.master/config/ia64/config.flavour.ia64
@@ -0,0 +1,3 @@
+#
+# Config options for config.flavour.ia64 automatically generated by splitconfig.pl
+#
diff --git a/debian.master/config/powerpc/config.common.powerpc b/debian.master/config/powerpc/config.common.powerpc
new file mode 100644
index 00000000000..67db4889915
--- /dev/null
+++ b/debian.master/config/powerpc/config.common.powerpc
@@ -0,0 +1,267 @@
+#
+# Config options for config.common.powerpc automatically generated by splitconfig.pl
+#
+# CONFIG_ACCESSIBILITY is not set
+CONFIG_ACORN_PARTITION=y
+CONFIG_AIC79XX_DEBUG_ENABLE=y
+CONFIG_AIC79XX_REG_PRETTY_PRINT=y
+# CONFIG_ALIM7101_WDT is not set
+CONFIG_AMD8111_ETH=m
+CONFIG_AMIGA_PARTITION=y
+CONFIG_ARCH_REQUIRE_GPIOLIB=y
+CONFIG_ARCNET=m
+CONFIG_ATA=y
+CONFIG_ATARI_PARTITION=y
+CONFIG_BINARY_PRINTF=y
+CONFIG_BLK_DEV_FD=m
+CONFIG_BLK_DEV_LOOP=m
+# CONFIG_BLK_DEV_SR_VENDOR is not set
+CONFIG_BONDING=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BSD_DISKLABEL=y
+CONFIG_BT=m
+CONFIG_CEPH_FS=m
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CHR_DEV_SCH=m
+CONFIG_CPU_FREQ=y
+CONFIG_CPU_FREQ_PMAC64=y
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_TEST=m
+# CONFIG_DAB is not set
+CONFIG_DE2104X=m
+CONFIG_DE4X5=m
+# CONFIG_DECNET_ROUTER is not set
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
+CONFIG_DEFXX=m
+CONFIG_DEV_APPLETALK=m
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+CONFIG_DM9102=m
+# CONFIG_DMADEVICES is not set
+CONFIG_DRM=m
+CONFIG_DVB_CORE=m
+CONFIG_ECONET=m
+# CONFIG_EZX_PCAP is not set
+CONFIG_FB_3DFX=y
+CONFIG_FB_ASILIANT=y
+CONFIG_FB_ATY=y
+CONFIG_FB_ATY128=y
+CONFIG_FB_CIRRUS=m
+CONFIG_FB_IMSTT=y
+CONFIG_FB_KYRO=m
+CONFIG_FB_MACMODES=y
+CONFIG_FB_MATROX=y
+CONFIG_FB_NEOMAGIC=m
+CONFIG_FB_PM2=m
+CONFIG_FB_PM2_FIFO_DISCONNECT=y
+CONFIG_FB_PS3=y
+CONFIG_FB_RIVA=m
+CONFIG_FB_SIS=m
+CONFIG_FB_TRIDENT=m
+CONFIG_FB_VIA=m
+CONFIG_FB_VOODOO1=y
+CONFIG_FORCEDETH=m
+CONFIG_FUSION_MAX_SGE=128
+CONFIG_GAMEPORT=m
+CONFIG_GELIC_NET=m
+# CONFIG_GENERIC_IOMAP is not set
+CONFIG_GPIOLIB=y
+# CONFIG_GPIO_SYSFS is not set
+CONFIG_HAMACHI=m
+CONFIG_HAMRADIO=y
+CONFIG_HAPPYMEAL=m
+CONFIG_HIPPI=y
+CONFIG_HP100=m
+CONFIG_I2C_ALI1535=m
+CONFIG_I2C_ALI1563=m
+CONFIG_I2C_ALI15X3=m
+CONFIG_I2C_AMD756=m
+CONFIG_I2C_AMD8111=m
+CONFIG_I2C_I801=m
+CONFIG_I2C_NFORCE2=m
+CONFIG_I2C_SIS5595=m
+CONFIG_I2C_SIS630=m
+CONFIG_I2C_SIS96X=m
+CONFIG_I2C_VIA=m
+CONFIG_I2C_VIAPRO=m
+CONFIG_I2C_VOODOO3=m
+CONFIG_IDE=y
+CONFIG_IEEE1394_PCILYNX=m
+# CONFIG_IKCONFIG is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INFINIBAND_AMSO1100=m
+# CONFIG_INFINIBAND_IPATH is not set
+CONFIG_INFINIBAND_IPOIB_CM=y
+CONFIG_INFINIBAND_ISER=m
+CONFIG_INFINIBAND_QIB=m
+CONFIG_INFINIBAND_SRP=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFTL=m
+CONFIG_INPUT_EVBUG=m
+CONFIG_INPUT_JOYDEV=m
+CONFIG_INPUT_JOYSTICK=y
+CONFIG_INPUT_UINPUT=m
+CONFIG_IP1000=m
+CONFIG_IPMI_HANDLER=m
+CONFIG_IPMI_POWEROFF=m
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IP_DCCP=m
+CONFIG_IP_NF_QUEUE=m
+# CONFIG_IP_PNP is not set
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IRDA=m
+# CONFIG_ISDN is not set
+CONFIG_KEYBOARD_NEWTON=m
+CONFIG_KEYBOARD_SUNKBD=m
+CONFIG_KEYBOARD_XTKBD=m
+CONFIG_LAPB=m
+CONFIG_LDM_PARTITION=y
+CONFIG_LEDS_CLASS=y
+# CONFIG_LEDS_PCA9532 is not set
+# CONFIG_LEDS_PCA955X is not set
+CONFIG_LEDS_TRIGGER_HEARTBEAT=y
+CONFIG_LEDS_TRIGGER_TIMER=y
+CONFIG_LLC=y
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_MAC80211_MESH=y
+CONFIG_MACVLAN=m
+CONFIG_MAC_PARTITION=y
+CONFIG_MARKERS=y
+CONFIG_MFD_JANZ_CMODIO=m
+# CONFIG_MFD_SM501_GPIO is not set
+CONFIG_MINIX_SUBPARTITION=y
+CONFIG_MOUSE_SERIAL=m
+CONFIG_MOUSE_VSXXXAA=m
+CONFIG_MTD_NAND_DENALI=m
+# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
+# CONFIG_NCPFS_SMALLDOS is not set
+CONFIG_NET_IPGRE=m
+CONFIG_NET_PKTGEN=m
+# CONFIG_NIU is not set
+CONFIG_NLS_DEFAULT="cp437"
+CONFIG_NODES_SHIFT=8
+CONFIG_OSF_PARTITION=y
+CONFIG_PCI_MSI=y
+CONFIG_PMAC_SMU=y
+CONFIG_PPC_HAS_HASH_64K=y
+CONFIG_PPC_MAPLE=y
+CONFIG_PPC_PASEMI=y
+CONFIG_PPC_PS3=y
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PRISM54=m
+CONFIG_PROFILING=y
+CONFIG_PS3_VRAM=m
+CONFIG_QFMT_V1=m
+CONFIG_R8169=m
+# CONFIG_RDS is not set
+CONFIG_RTAS_ERROR_LOGGING=y
+CONFIG_RTC_DRV_BQ4802=m
+CONFIG_RTC_DRV_CMOS=m
+CONFIG_RTC_DRV_M48T59=m
+CONFIG_RTC_DRV_PS3=m
+# CONFIG_RTC_DRV_TEST is not set
+CONFIG_SATA_SVW=y
+CONFIG_SCHED_HRTICK=y
+CONFIG_SCSI_AIC7XXX=m
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_DC390T=m
+CONFIG_SCSI_DEBUG=m
+CONFIG_SCSI_FUTURE_DOMAIN=m
+# CONFIG_SCSI_IPR is not set
+CONFIG_SCSI_IPS=m
+CONFIG_SCSI_LOGGING=y
+CONFIG_SENSORS_ADM1021=m
+CONFIG_SENSORS_ADM1025=m
+CONFIG_SENSORS_ADM1031=m
+CONFIG_SENSORS_DS1621=m
+CONFIG_SENSORS_GL518SM=m
+CONFIG_SENSORS_IT87=m
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM77=m
+CONFIG_SENSORS_LM78=m
+CONFIG_SENSORS_LM80=m
+CONFIG_SENSORS_LM83=m
+CONFIG_SENSORS_LM85=m
+CONFIG_SENSORS_LM90=m
+CONFIG_SENSORS_MAX1619=m
+CONFIG_SENSORS_PCF8591=m
+CONFIG_SENSORS_VIA686A=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_SENSORS_W83781D=m
+CONFIG_SENSORS_W83L785TS=m
+# CONFIG_SERIAL_8250_DETECT_IRQ is not set
+CONFIG_SERIAL_8250_NR_UARTS=48
+CONFIG_SERIAL_CORE=m
+CONFIG_SERIO_PARKBD=m
+CONFIG_SERIO_PCIPS2=m
+CONFIG_SGI_PARTITION=y
+CONFIG_SLIP_MODE_SLIP6=y
+CONFIG_SOLARIS_X86_PARTITION=y
+CONFIG_SPECIALIX=m
+# CONFIG_STAGING_EXCLUDE_BUILD is not set
+# CONFIG_SUNDANCE_MMIO is not set
+CONFIG_SUNGEM=m
+# CONFIG_TABLET_USB_WACOM is not set
+# CONFIG_THERMAL is not set
+CONFIG_THERM_PM72=m
+CONFIG_TR=y
+# CONFIG_TULIP_NAPI is not set
+CONFIG_UFS_FS=m
+CONFIG_ULTRIX_PARTITION=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_GADGET=m
+CONFIG_USB_HIDDEV=y
+CONFIG_USB_IBMCAM=m
+CONFIG_USB_KONICAWC=m
+CONFIG_USB_MON=y
+CONFIG_USB_NET2280=m
+CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y
+CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_PWC=m
+CONFIG_USB_QUICKCAM_MESSENGER=m
+CONFIG_USB_SE401=m
+CONFIG_USB_STV680=m
+CONFIG_USB_UHCI_HCD=y
+CONFIG_USB_VICAM=m
+CONFIG_VIDEO_ADV7170=m
+CONFIG_VIDEO_ADV7175=m
+CONFIG_VIDEO_BT819=m
+CONFIG_VIDEO_BT848=m
+CONFIG_VIDEO_BT856=m
+CONFIG_VIDEO_BT866=m
+CONFIG_VIDEO_BWQCAM=m
+CONFIG_VIDEO_CPIA=m
+CONFIG_VIDEO_CPIA2=m
+CONFIG_VIDEO_CQCAM=m
+CONFIG_VIDEO_CS5345=m
+CONFIG_VIDEO_CX88=m
+CONFIG_VIDEO_EM28XX=m
+CONFIG_VIDEO_IVTV=m
+CONFIG_VIDEO_KS0127=m
+CONFIG_VIDEO_M52790=m
+CONFIG_VIDEO_OVCAMCHIP=m
+CONFIG_VIDEO_SAA5249=m
+CONFIG_VIDEO_SAA7110=m
+CONFIG_VIDEO_SAA7185=m
+CONFIG_VIDEO_SAA7191=m
+CONFIG_VIDEO_TDA7432=m
+CONFIG_VIDEO_TDA9875=m
+CONFIG_VIDEO_TVAUDIO=m
+CONFIG_VIDEO_VPX3220=m
+CONFIG_VIDEO_W9966=m
+CONFIG_VIRTUALIZATION=y
+CONFIG_WAN=y
+CONFIG_WAN_ROUTER=m
+# CONFIG_WATCHDOG_NOWAYOUT is not set
+CONFIG_X25=m
+CONFIG_ZONE_DMA_FLAG=1
diff --git a/debian.master/config/powerpc/config.flavour.powerpc b/debian.master/config/powerpc/config.flavour.powerpc
new file mode 100644
index 00000000000..b6a923313b1
--- /dev/null
+++ b/debian.master/config/powerpc/config.flavour.powerpc
@@ -0,0 +1,49 @@
+#
+# Config options for config.flavour.powerpc automatically generated by splitconfig.pl
+#
+# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+# CONFIG_ATA_NONSTANDARD is not set
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CRYPTO_LZO=m
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_FORCE_MAX_ZONEORDER=11
+# CONFIG_GENERIC_TBSYNC is not set
+# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
+CONFIG_HP_ILO=m
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_I2C_GPIO=m
+CONFIG_KERNEL_START=0xc0000000
+CONFIG_KGDB=y
+CONFIG_LATENCYTOP=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
+CONFIG_LZO_COMPRESS=m
+CONFIG_MAX_ACTIVE_REGIONS=32
+# CONFIG_MMIO_NVRAM is not set
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+# CONFIG_NEED_DMA_MAP_STATE is not set
+# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
+CONFIG_PAGE_OFFSET=0xc0000000
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+# CONFIG_PPC64 is not set
+# CONFIG_PPC_970_NAP is not set
+# CONFIG_PPC_CELL is not set
+CONFIG_PPC_INDIRECT_PCI=y
+# CONFIG_PPC_MM_SLICES is not set
+CONFIG_PPC_MPC106=y
+CONFIG_RCU_FANOUT=32
+CONFIG_RISCOM8=m
+CONFIG_SCHEDSTATS=y
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+# CONFIG_SMP is not set
+# CONFIG_SPARSEMEM_MANUAL is not set
+CONFIG_TPS65010=m
+CONFIG_UBIFS_FS=m
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_GADGET_GOKU is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_WORD_SIZE=32
diff --git a/debian.master/config/powerpc/config.flavour.powerpc-smp b/debian.master/config/powerpc/config.flavour.powerpc-smp
new file mode 100644
index 00000000000..60a29f6819e
--- /dev/null
+++ b/debian.master/config/powerpc/config.flavour.powerpc-smp
@@ -0,0 +1,50 @@
+#
+# Config options for config.flavour.powerpc-smp automatically generated by splitconfig.pl
+#
+# CONFIG_ARCH_NO_VIRT_TO_BUS is not set
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_CFG80211_REG_DEBUG=y
+# CONFIG_CRYPTO_LZO is not set
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+CONFIG_FLATMEM_MANUAL=y
+CONFIG_FORCE_MAX_ZONEORDER=11
+CONFIG_GENERIC_TBSYNC=y
+# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
+# CONFIG_HP_ILO is not set
+# CONFIG_HUGETLB_PAGE is not set
+CONFIG_I2C_GPIO=m
+CONFIG_KERNEL_START=0xc0000000
+# CONFIG_KGDB is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+CONFIG_LZO_COMPRESS=m
+CONFIG_MAX_ACTIVE_REGIONS=32
+# CONFIG_MMIO_NVRAM is not set
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+# CONFIG_NEED_DMA_MAP_STATE is not set
+# CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set
+CONFIG_NR_CPUS=4
+CONFIG_PAGE_OFFSET=0xc0000000
+# CONFIG_PHYS_ADDR_T_64BIT is not set
+# CONFIG_PPC64 is not set
+# CONFIG_PPC_970_NAP is not set
+# CONFIG_PPC_CELL is not set
+CONFIG_PPC_INDIRECT_PCI=y
+# CONFIG_PPC_MM_SLICES is not set
+CONFIG_PPC_MPC106=y
+CONFIG_RCU_FANOUT=32
+# CONFIG_RISCOM8 is not set
+# CONFIG_SCHEDSTATS is not set
+CONFIG_SCSI_LPFC_DEBUG_FS=y
+CONFIG_SMP=y
+# CONFIG_SPARSEMEM_MANUAL is not set
+# CONFIG_TPS65010 is not set
+# CONFIG_UBIFS_FS is not set
+# CONFIG_USB_GADGET_DUALSPEED is not set
+CONFIG_USB_GADGET_GOKU=y
+# CONFIG_USB_GADGET_NET2280 is not set
+CONFIG_WORD_SIZE=32
diff --git a/debian.master/config/powerpc/config.flavour.powerpc64-smp b/debian.master/config/powerpc/config.flavour.powerpc64-smp
new file mode 100644
index 00000000000..406f98f3d36
--- /dev/null
+++ b/debian.master/config/powerpc/config.flavour.powerpc64-smp
@@ -0,0 +1,50 @@
+#
+# Config options for config.flavour.powerpc64-smp automatically generated by splitconfig.pl
+#
+CONFIG_ARCH_NO_VIRT_TO_BUS=y
+CONFIG_ARCH_PHYS_ADDR_T_64BIT=y
+CONFIG_ATA_NONSTANDARD=y
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CRYPTO_LZO=y
+CONFIG_FB_SYS_COPYAREA=y
+CONFIG_FB_SYS_FILLRECT=y
+CONFIG_FB_SYS_FOPS=y
+CONFIG_FB_SYS_IMAGEBLIT=y
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_FORCE_MAX_ZONEORDER=13
+CONFIG_GENERIC_TBSYNC=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+CONFIG_HP_ILO=m
+CONFIG_HUGETLB_PAGE=y
+# CONFIG_I2C_GPIO is not set
+CONFIG_KERNEL_START=0xc000000000000000
+CONFIG_KGDB=y
+CONFIG_LATENCYTOP=y
+CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
+CONFIG_LZO_COMPRESS=y
+CONFIG_MAX_ACTIVE_REGIONS=256
+CONFIG_MMIO_NVRAM=y
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+CONFIG_NR_CPUS=1024
+CONFIG_PAGE_OFFSET=0xc000000000000000
+CONFIG_PHYS_ADDR_T_64BIT=y
+CONFIG_PPC64=y
+CONFIG_PPC_970_NAP=y
+CONFIG_PPC_CELL=y
+# CONFIG_PPC_INDIRECT_PCI is not set
+CONFIG_PPC_MM_SLICES=y
+# CONFIG_PPC_MPC106 is not set
+CONFIG_RCU_FANOUT=64
+CONFIG_RISCOM8=m
+CONFIG_SCHEDSTATS=y
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+CONFIG_SMP=y
+CONFIG_SPARSEMEM_MANUAL=y
+# CONFIG_TPS65010 is not set
+CONFIG_UBIFS_FS=m
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_GADGET_GOKU is not set
+CONFIG_USB_GADGET_NET2280=y
+CONFIG_WORD_SIZE=64
diff --git a/debian.master/config/sparc/config.common.sparc b/debian.master/config/sparc/config.common.sparc
new file mode 100644
index 00000000000..098837ec9b1
--- /dev/null
+++ b/debian.master/config/sparc/config.common.sparc
@@ -0,0 +1,307 @@
+#
+# Config options for config.common.sparc automatically generated by splitconfig.pl
+#
+CONFIG_ACCESSIBILITY=y
+# CONFIG_ACORN_PARTITION is not set
+# CONFIG_AIC79XX_DEBUG_ENABLE is not set
+# CONFIG_AIC79XX_REG_PRETTY_PRINT is not set
+CONFIG_ALIM7101_WDT=m
+# CONFIG_AMD8111_ETH is not set
+# CONFIG_AMIGA_PARTITION is not set
+CONFIG_ARCH_NO_VIRT_TO_BUS=y
+# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
+# CONFIG_ARCNET is not set
+CONFIG_ATA=m
+# CONFIG_ATARI_PARTITION is not set
+# CONFIG_ATA_NONSTANDARD is not set
+CONFIG_BINARY_PRINTF=y
+CONFIG_BLK_DEV_FD=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_SR_VENDOR=y
+CONFIG_BONDING=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+# CONFIG_BSD_DISKLABEL is not set
+# CONFIG_BT is not set
+CONFIG_CEPH_FS=m
+# CONFIG_CFG80211_REG_DEBUG is not set
+CONFIG_CGROUP_DEVICE=y
+# CONFIG_CHR_DEV_SCH is not set
+# CONFIG_CPU_FREQ is not set
+# CONFIG_CPU_FREQ_PMAC64 is not set
+CONFIG_CRYPTO_DES=y
+CONFIG_CRYPTO_LZO=m
+# CONFIG_CRYPTO_TEST is not set
+# CONFIG_DAB is not set
+# CONFIG_DE2104X is not set
+# CONFIG_DE4X5 is not set
+CONFIG_DECNET_ROUTER=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
+# CONFIG_DEFXX is not set
+# CONFIG_DEV_APPLETALK is not set
+# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_DM9102 is not set
+CONFIG_DMADEVICES=y
+CONFIG_DRM=y
+# CONFIG_DVB_CORE is not set
+# CONFIG_ECONET is not set
+# CONFIG_EZX_PCAP is not set
+# CONFIG_FB_3DFX is not set
+# CONFIG_FB_ASILIANT is not set
+CONFIG_FB_ATY=y
+CONFIG_FB_ATY128=y
+# CONFIG_FB_CIRRUS is not set
+# CONFIG_FB_IMSTT is not set
+# CONFIG_FB_KYRO is not set
+# CONFIG_FB_MACMODES is not set
+# CONFIG_FB_MATROX is not set
+# CONFIG_FB_NEOMAGIC is not set
+CONFIG_FB_PM2=y
+# CONFIG_FB_PM2_FIFO_DISCONNECT is not set
+# CONFIG_FB_PS3 is not set
+# CONFIG_FB_RIVA is not set
+# CONFIG_FB_SIS is not set
+CONFIG_FB_SYS_COPYAREA=m
+CONFIG_FB_SYS_FILLRECT=m
+CONFIG_FB_SYS_FOPS=m
+CONFIG_FB_SYS_IMAGEBLIT=m
+# CONFIG_FB_TRIDENT is not set
+CONFIG_FB_VIA=m
+# CONFIG_FB_VOODOO1 is not set
+# CONFIG_FLATMEM_MANUAL is not set
+# CONFIG_FORCEDETH is not set
+CONFIG_FUSION_MAX_SGE=40
+# CONFIG_GAMEPORT is not set
+# CONFIG_GELIC_NET is not set
+CONFIG_GPIOLIB=y
+CONFIG_GPIO_SYSFS=y
+# CONFIG_HAMACHI is not set
+# CONFIG_HAMRADIO is not set
+CONFIG_HAPPYMEAL=y
+CONFIG_HAVE_SETUP_PER_CPU_AREA=y
+# CONFIG_HIPPI is not set
+# CONFIG_HP100 is not set
+# CONFIG_HP_ILO is not set
+CONFIG_HUGETLB_PAGE=y
+# CONFIG_I2C_ALI1535 is not set
+# CONFIG_I2C_ALI1563 is not set
+# CONFIG_I2C_ALI15X3 is not set
+# CONFIG_I2C_AMD756 is not set
+# CONFIG_I2C_AMD8111 is not set
+CONFIG_I2C_GPIO=m
+# CONFIG_I2C_I801 is not set
+# CONFIG_I2C_NFORCE2 is not set
+# CONFIG_I2C_SIS5595 is not set
+# CONFIG_I2C_SIS630 is not set
+# CONFIG_I2C_SIS96X is not set
+# CONFIG_I2C_VIA is not set
+# CONFIG_I2C_VIAPRO is not set
+# CONFIG_I2C_VOODOO3 is not set
+# CONFIG_IDE is not set
+CONFIG_IEEE1394_PCILYNX=m
+# CONFIG_IKCONFIG is not set
+CONFIG_INET6_AH=m
+CONFIG_INET6_ESP=m
+CONFIG_INET6_IPCOMP=m
+CONFIG_INET6_TUNNEL=m
+CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
+CONFIG_INET6_XFRM_TUNNEL=m
+CONFIG_INFINIBAND_AMSO1100=m
+CONFIG_INFINIBAND_IPATH=m
+CONFIG_INFINIBAND_IPOIB_CM=y
+CONFIG_INFINIBAND_ISER=m
+# CONFIG_INFINIBAND_QIB is not set
+CONFIG_INFINIBAND_SRP=m
+CONFIG_INFINIBAND_USER_ACCESS=m
+CONFIG_INFINIBAND_USER_MAD=m
+CONFIG_INFTL=m
+# CONFIG_INPUT_EVBUG is not set
+# CONFIG_INPUT_JOYDEV is not set
+# CONFIG_INPUT_JOYSTICK is not set
+# CONFIG_INPUT_UINPUT is not set
+CONFIG_IP1000=m
+CONFIG_IPMI_HANDLER=m
+# CONFIG_IPMI_POWEROFF is not set
+CONFIG_IPV6_PRIVACY=y
+CONFIG_IPV6_TUNNEL=m
+CONFIG_IP_DCCP=m
+CONFIG_IP_NF_QUEUE=m
+CONFIG_IP_PNP=y
+# CONFIG_IP_ROUTE_MULTIPATH is not set
+# CONFIG_IP_ROUTE_VERBOSE is not set
+# CONFIG_IRDA is not set
+CONFIG_ISDN=y
+CONFIG_ISDN_DRV_GIGASET=m
+CONFIG_KERNEL_START=0xc0000000
+# CONFIG_KEYBOARD_NEWTON is not set
+CONFIG_KEYBOARD_SUNKBD=y
+# CONFIG_KEYBOARD_XTKBD is not set
+# CONFIG_KGDB is not set
+# CONFIG_LAPB is not set
+# CONFIG_LATENCYTOP is not set
+# CONFIG_LDM_PARTITION is not set
+CONFIG_LEDS_CLASS=m
+CONFIG_LEDS_PCA9532=m
+CONFIG_LEDS_PCA955X=m
+# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set
+CONFIG_LEDS_TRIGGER_HEARTBEAT=m
+CONFIG_LEDS_TRIGGER_TIMER=m
+CONFIG_LLC=m
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_LZO_COMPRESS=m
+# CONFIG_MAC80211_MESH is not set
+CONFIG_MACVLAN=m
+# CONFIG_MAC_PARTITION is not set
+CONFIG_MARKERS=y
+# CONFIG_MFD_JANZ_CMODIO is not set
+CONFIG_MFD_SM501_GPIO=y
+# CONFIG_MINIX_SUBPARTITION is not set
+# CONFIG_MMIO_NVRAM is not set
+CONFIG_MOUSE_SERIAL=y
+# CONFIG_MOUSE_VSXXXAA is not set
+# CONFIG_MTD_NAND_DENALI is not set
+CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED=y
+CONFIG_NCPFS_SMALLDOS=y
+CONFIG_NEED_DMA_MAP_STATE=y
+CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y
+# CONFIG_NET_IPGRE is not set
+# CONFIG_NET_PKTGEN is not set
+CONFIG_NIU=m
+CONFIG_NLS_DEFAULT="iso8859-1"
+CONFIG_NODES_SHIFT=4
+CONFIG_NR_CPUS=256
+# CONFIG_OSF_PARTITION is not set
+CONFIG_PAGE_OFFSET=0xc0000000
+# CONFIG_PCI_MSI is not set
+CONFIG_PHYS_ADDR_T_64BIT=y
+# CONFIG_PMAC_SMU is not set
+# CONFIG_PPC64 is not set
+# CONFIG_PPC_970_NAP is not set
+# CONFIG_PPC_CELL is not set
+# CONFIG_PPC_HAS_HASH_64K is not set
+CONFIG_PPC_INDIRECT_PCI=y
+# CONFIG_PPC_MAPLE is not set
+# CONFIG_PPC_MM_SLICES is not set
+CONFIG_PPC_MPC106=y
+# CONFIG_PPC_PASEMI is not set
+# CONFIG_PPC_PS3 is not set
+CONFIG_PREEMPT_NONE=y
+# CONFIG_PREEMPT_VOLUNTARY is not set
+# CONFIG_PRISM54 is not set
+# CONFIG_PROFILING is not set
+# CONFIG_PS3_VRAM is not set
+# CONFIG_QFMT_V1 is not set
+# CONFIG_R8169 is not set
+CONFIG_RCU_FANOUT=64
+CONFIG_RDS=m
+# CONFIG_RISCOM8 is not set
+# CONFIG_RTAS_ERROR_LOGGING is not set
+CONFIG_RTC_DRV_BQ4802=y
+CONFIG_RTC_DRV_CMOS=y
+CONFIG_RTC_DRV_M48T59=y
+# CONFIG_RTC_DRV_PS3 is not set
+CONFIG_RTC_DRV_TEST=m
+CONFIG_SATA_SVW=m
+# CONFIG_SCHEDSTATS is not set
+CONFIG_SCHED_HRTICK=y
+# CONFIG_SCSI_AIC7XXX is not set
+# CONFIG_SCSI_CONSTANTS is not set
+# CONFIG_SCSI_DC390T is not set
+# CONFIG_SCSI_DEBUG is not set
+# CONFIG_SCSI_FUTURE_DOMAIN is not set
+CONFIG_SCSI_IPR=m
+# CONFIG_SCSI_IPS is not set
+# CONFIG_SCSI_LOGGING is not set
+# CONFIG_SCSI_LPFC_DEBUG_FS is not set
+# CONFIG_SENSORS_ADM1021 is not set
+# CONFIG_SENSORS_ADM1025 is not set
+# CONFIG_SENSORS_ADM1031 is not set
+# CONFIG_SENSORS_DS1621 is not set
+# CONFIG_SENSORS_GL518SM is not set
+# CONFIG_SENSORS_IT87 is not set
+# CONFIG_SENSORS_LM75 is not set
+# CONFIG_SENSORS_LM77 is not set
+# CONFIG_SENSORS_LM78 is not set
+# CONFIG_SENSORS_LM80 is not set
+# CONFIG_SENSORS_LM83 is not set
+# CONFIG_SENSORS_LM85 is not set
+# CONFIG_SENSORS_LM90 is not set
+# CONFIG_SENSORS_MAX1619 is not set
+# CONFIG_SENSORS_PCF8591 is not set
+# CONFIG_SENSORS_VIA686A is not set
+# CONFIG_SENSORS_W83627HF is not set
+# CONFIG_SENSORS_W83781D is not set
+# CONFIG_SENSORS_W83L785TS is not set
+CONFIG_SERIAL_8250_DETECT_IRQ=y
+CONFIG_SERIAL_8250_NR_UARTS=4
+CONFIG_SERIAL_CORE=y
+# CONFIG_SERIO_PARKBD is not set
+CONFIG_SERIO_PCIPS2=y
+# CONFIG_SGI_PARTITION is not set
+# CONFIG_SLIP_MODE_SLIP6 is not set
+# CONFIG_SOLARIS_X86_PARTITION is not set
+CONFIG_SPARSEMEM_MANUAL=y
+# CONFIG_SPECIALIX is not set
+CONFIG_STAGING_EXCLUDE_BUILD=y
+CONFIG_SUNDANCE_MMIO=y
+CONFIG_SUNGEM=y
+# CONFIG_TABLET_USB_WACOM is not set
+# CONFIG_THERMAL is not set
+# CONFIG_THERM_PM72 is not set
+CONFIG_TPS65010=m
+# CONFIG_TR is not set
+CONFIG_TULIP_NAPI=y
+CONFIG_UBIFS_FS=m
+CONFIG_UFS_FS=m
+# CONFIG_ULTRIX_PARTITION is not set
+# CONFIG_UNIXWARE_DISKLABEL is not set
+CONFIG_USB_EHCI_HCD=m
+CONFIG_USB_GADGET=y
+CONFIG_USB_GADGET_DUALSPEED=y
+# CONFIG_USB_GADGET_GOKU is not set
+CONFIG_USB_GADGET_NET2280=y
+# CONFIG_USB_HIDDEV is not set
+# CONFIG_USB_IBMCAM is not set
+# CONFIG_USB_KONICAWC is not set
+CONFIG_USB_MON=m
+CONFIG_USB_NET2280=y
+# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
+# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
+CONFIG_USB_OHCI_HCD=m
+# CONFIG_USB_PWC is not set
+# CONFIG_USB_QUICKCAM_MESSENGER is not set
+# CONFIG_USB_SE401 is not set
+# CONFIG_USB_STV680 is not set
+CONFIG_USB_UHCI_HCD=m
+# CONFIG_USB_VICAM is not set
+# CONFIG_VIDEO_ADV7170 is not set
+# CONFIG_VIDEO_ADV7175 is not set
+# CONFIG_VIDEO_BT819 is not set
+# CONFIG_VIDEO_BT848 is not set
+# CONFIG_VIDEO_BT856 is not set
+# CONFIG_VIDEO_BT866 is not set
+# CONFIG_VIDEO_BWQCAM is not set
+# CONFIG_VIDEO_CPIA is not set
+# CONFIG_VIDEO_CPIA2 is not set
+# CONFIG_VIDEO_CQCAM is not set
+# CONFIG_VIDEO_CS5345 is not set
+# CONFIG_VIDEO_CX88 is not set
+# CONFIG_VIDEO_EM28XX is not set
+# CONFIG_VIDEO_IVTV is not set
+# CONFIG_VIDEO_KS0127 is not set
+# CONFIG_VIDEO_M52790 is not set
+# CONFIG_VIDEO_OVCAMCHIP is not set
+# CONFIG_VIDEO_SAA5249 is not set
+# CONFIG_VIDEO_SAA7110 is not set
+# CONFIG_VIDEO_SAA7185 is not set
+# CONFIG_VIDEO_SAA7191 is not set
+# CONFIG_VIDEO_TDA7432 is not set
+# CONFIG_VIDEO_TDA9875 is not set
+# CONFIG_VIDEO_TVAUDIO is not set
+# CONFIG_VIDEO_VPX3220 is not set
+# CONFIG_VIDEO_W9966 is not set
+# CONFIG_WAN is not set
+# CONFIG_WAN_ROUTER is not set
+CONFIG_WATCHDOG_NOWAYOUT=y
+CONFIG_WORD_SIZE=32
+# CONFIG_X25 is not set
+CONFIG_ZONE_DMA_FLAG=0
diff --git a/debian.master/config/sparc/config.flavour.sparc64 b/debian.master/config/sparc/config.flavour.sparc64
new file mode 100644
index 00000000000..5959771afd8
--- /dev/null
+++ b/debian.master/config/sparc/config.flavour.sparc64
@@ -0,0 +1,5 @@
+#
+# Config options for config.flavour.sparc64 automatically generated by splitconfig.pl
+#
+# CONFIG_MUTEX_SPIN_ON_OWNER is not set
+# CONFIG_SMP is not set
diff --git a/debian.master/config/sparc/config.flavour.sparc64-smp b/debian.master/config/sparc/config.flavour.sparc64-smp
new file mode 100644
index 00000000000..0613dfae870
--- /dev/null
+++ b/debian.master/config/sparc/config.flavour.sparc64-smp
@@ -0,0 +1,5 @@
+#
+# Config options for config.flavour.sparc64-smp automatically generated by splitconfig.pl
+#
+CONFIG_MUTEX_SPIN_ON_OWNER=y
+CONFIG_SMP=y
diff --git a/debian.master/control.d/flavour-control.stub b/debian.master/control.d/flavour-control.stub
new file mode 100644
index 00000000000..ccde915f5b7
--- /dev/null
+++ b/debian.master/control.d/flavour-control.stub
@@ -0,0 +1,77 @@
+# Items that get replaced:
+# FLAVOUR
+# DESC
+# ARCH
+# SUPPORTED
+# TARGET
+# BOOTLOADER
+# =PROVIDES=
+#
+# Items marked with =FOO= are optional
+#
+# This file describes the template for packages that are created for each flavour
+# in debian/control.d/vars.*
+#
+# This file gets edited in a couple of places. See the debian/control.stub rule in
+# debian/rules. PGGVER, ABINUM, and SRCPKGNAME are all converted in the
+# process of creating debian/control.
+#
+# The flavour specific strings (ARCH, DESC, etc) are converted using values from the various
+# flavour files in debian/control.d/vars.*
+#
+# XXX: Leave the blank line before the first package!!
+
+Package: linux-image-PKGVER-ABINUM-FLAVOUR
+Architecture: ARCH
+Section: admin
+Priority: optional
+Pre-Depends: dpkg (>= 1.10.24)
+Provides: linux-image, linux-image-2.6, fuse-module, =PROVIDES=
+Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), coreutils | fileutils (>= 4.0), module-init-tools (>= 3.3-pre11-4ubuntu3), wireless-crda
+Conflicts: hotplug (<< 0.0.20040105-1)
+Recommends: BOOTLOADER
+Suggests: fdutils, SRCPKGNAME-doc-PKGVER | SRCPKGNAME-source-PKGVER, SRCPKGNAME-tools
+Description: Linux kernel image for version PKGVER on DESC
+ This package contains the Linux kernel image for version PKGVER on
+ DESC.
+ .
+ Also includes the corresponding System.map file, the modules built by the
+ packager, and scripts that try to ensure that the system is not left in an
+ unbootable state after an update.
+ .
+ Supports SUPPORTED processors.
+ .
+ TARGET
+ .
+ You likely do not want to install this package directly. Instead, install
+ the linux-FLAVOUR meta-package, which will ensure that upgrades work
+ correctly, and that supporting packages are also installed.
+
+Package: linux-headers-PKGVER-ABINUM-FLAVOUR
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0), SRCPKGNAME-headers-PKGVER-ABINUM, ${shlibs:Depends}
+Provides: SRCPKGNAME-headers, SRCPKGNAME-headers-2.6
+Description: Linux kernel headers for version PKGVER on DESC
+ This package provides kernel header files for version PKGVER on
+ DESC.
+ .
+ This is for sites that want the latest kernel headers. Please read
+ /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details.
+
+Package: linux-image-PKGVER-ABINUM-FLAVOUR-dbgsym
+Architecture: ARCH
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}
+Provides: linux-debug
+Description: Linux kernel debug image for version PKGVER on DESC
+ This package provides a kernel debug image for version PKGVER on
+ DESC.
+ .
+ This is for sites that wish to debug the kernel.
+ .
+ The kernel image contained in this package is NOT meant to boot from. It
+ is uncompressed, and unstripped. This package also includes the
+ unstripped modules.
diff --git a/debian.master/control.d/vars.generic b/debian.master/control.d/vars.generic
new file mode 100644
index 00000000000..200acfdf196
--- /dev/null
+++ b/debian.master/control.d/vars.generic
@@ -0,0 +1,6 @@
+arch="i386 amd64"
+supported="Generic"
+target="Geared toward desktop systems."
+desc="x86/x86_64"
+bootloader="grub-pc | grub | lilo (>= 19.1)"
+provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9"
diff --git a/debian.master/control.d/vars.generic-pae b/debian.master/control.d/vars.generic-pae
new file mode 100644
index 00000000000..ebdd52a0f96
--- /dev/null
+++ b/debian.master/control.d/vars.generic-pae
@@ -0,0 +1,6 @@
+arch="i386"
+supported="Generic"
+target="Geared toward 32 bit desktop systems with more then 4GB RAM."
+desc="x86"
+bootloader="grub-pc | grub | lilo (>= 19.1)"
+provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9"
diff --git a/debian.master/control.d/vars.ia64 b/debian.master/control.d/vars.ia64
new file mode 100644
index 00000000000..687efa9ada4
--- /dev/null
+++ b/debian.master/control.d/vars.ia64
@@ -0,0 +1,6 @@
+supported="IA-64 SMP"
+target="Geared toward desktop or server systems."
+desc="IA-64 SMP"
+bootloader="elilo (>= 3.6-1)"
+provides="redhat-cluster-modules, ivtv-modules"
+arch="ia64"
diff --git a/debian.master/control.d/vars.omap b/debian.master/control.d/vars.omap
new file mode 100644
index 00000000000..ef615acea5a
--- /dev/null
+++ b/debian.master/control.d/vars.omap
@@ -0,0 +1,8 @@
+arch="armel"
+supported="omap"
+desc="OMAP3/4-based systems"
+target="Beagleboard, Gumstix, etc."
+bootloader="flash-kernel"
+provides=""
+section_image="universe/base"
+do_debug="Yes"
diff --git a/debian.master/control.d/vars.powerpc b/debian.master/control.d/vars.powerpc
new file mode 100644
index 00000000000..98fd0d5202f
--- /dev/null
+++ b/debian.master/control.d/vars.powerpc
@@ -0,0 +1,6 @@
+supported="32-bit PowerPC"
+target="Geared toward desktop or server systems."
+desc="32-bit PowerPC"
+bootloader="yaboot"
+provides="redhat-cluster-modules, ivtv-modules"
+arch="powerpc"
diff --git a/debian.master/control.d/vars.powerpc-smp b/debian.master/control.d/vars.powerpc-smp
new file mode 100644
index 00000000000..67f19e19c8f
--- /dev/null
+++ b/debian.master/control.d/vars.powerpc-smp
@@ -0,0 +1,6 @@
+supported="32-bit PowerPC SMP"
+target="Geared toward desktop or server systems."
+desc="32-bit PowerPC SMP"
+bootloader="yaboot"
+provides="redhat-cluster-modules, ivtv-modules"
+arch="powerpc"
diff --git a/debian.master/control.d/vars.powerpc64-smp b/debian.master/control.d/vars.powerpc64-smp
new file mode 100644
index 00000000000..8afa100ab00
--- /dev/null
+++ b/debian.master/control.d/vars.powerpc64-smp
@@ -0,0 +1,6 @@
+supported="64-bit PowerPC SMP"
+target="Geared toward desktop or server systems."
+desc="64-bit PowerPC SMP"
+bootloader="yaboot"
+provides="redhat-cluster-modules, ivtv-modules"
+arch="powerpc"
diff --git a/debian.master/control.d/vars.server b/debian.master/control.d/vars.server
new file mode 100644
index 00000000000..0f1e41cce96
--- /dev/null
+++ b/debian.master/control.d/vars.server
@@ -0,0 +1,6 @@
+arch="amd64"
+supported="Server"
+target="Geared toward 64 bit server systems."
+desc="x86_64"
+bootloader="grub-pc | grub | lilo (>= 19.1)"
+provides="redhat-cluster-modules, kvm-api-4, ivtv-modules, ndiswrapper-modules-1.9"
diff --git a/debian.master/control.d/vars.sparc64 b/debian.master/control.d/vars.sparc64
new file mode 100644
index 00000000000..d01c67c7f42
--- /dev/null
+++ b/debian.master/control.d/vars.sparc64
@@ -0,0 +1,6 @@
+supported="64-bit UltraSPARC"
+target="Geared toward desktop or server systems."
+desc="64-bit UltraSPARC"
+bootloader="silo"
+provides="redhat-cluster-modules, ivtv-modules"
+arch="sparc"
diff --git a/debian.master/control.d/vars.sparc64-smp b/debian.master/control.d/vars.sparc64-smp
new file mode 100644
index 00000000000..446d22fc851
--- /dev/null
+++ b/debian.master/control.d/vars.sparc64-smp
@@ -0,0 +1,6 @@
+supported="64-bit UltraSPARC SMP"
+target="Geared toward desktop or server systems."
+desc="64-bit UltraSPARC SMP"
+bootloader="silo"
+provides="redhat-cluster-modules, ivtv-modules"
+arch="sparc"
diff --git a/debian.master/control.d/vars.versatile b/debian.master/control.d/vars.versatile
new file mode 100644
index 00000000000..3d7c8f46f6c
--- /dev/null
+++ b/debian.master/control.d/vars.versatile
@@ -0,0 +1,8 @@
+arch="armel"
+supported="Versatile"
+desc="Versatile-based systems"
+target="PB, AB, Qemu, etc."
+bootloader=""
+provides=""
+section_image="universe/base"
+do_debug="Yes"
diff --git a/debian.master/control.d/vars.virtual b/debian.master/control.d/vars.virtual
new file mode 100644
index 00000000000..0b943e61b76
--- /dev/null
+++ b/debian.master/control.d/vars.virtual
@@ -0,0 +1,6 @@
+arch="i386 amd64"
+supported="Virtual"
+target="Geared toward virtual appliances."
+desc="x86/x86_64"
+bootloader="grub-pc | grub | lilo (>= 19.1)"
+provides="kvm-api-4, redhat-cluster-modules, ivtv-modules, ndiswrapper-modules-1.9"
diff --git a/debian.master/control.d/virtual.inclusion-list b/debian.master/control.d/virtual.inclusion-list
new file mode 100644
index 00000000000..de1ce7b48e1
--- /dev/null
+++ b/debian.master/control.d/virtual.inclusion-list
@@ -0,0 +1,131 @@
+arch/*/{crypto,kernel,oprofile}
+crypto/*
+drivers/acpi/*
+drivers/ata/ahci.ko
+drivers/block/nbd.ko
+drivers/block/floppy.ko
+drivers/block/cryptoloop.ko
+drivers/block/xen-blkfront.ko
+drivers/char/hangcheck-timer.ko
+drivers/char/lp.ko
+drivers/char/nvram.ko
+drivers/char/ppdev.ko
+drivers/char/raw.ko
+drivers/input/evbug.ko
+drivers/input/gameport/gameport.ko
+drivers/input/mouse/psmouse.ko
+drivers/input/serio/serio_raw.ko
+drivers/input/serio/serport.ko
+drivers/input/joydev.ko
+drivers/input/misc/uinput.ko
+drivers/input/touchscreen/usbtouchscreen.ko
+drivers/input/xen-kbdfront.ko
+drivers/md/*
+drivers/message/fusion*
+drivers/net/8390.ko
+drivers/net/8139too.ko
+drivers/net/8139cp.ko
+drivers/net/appletalk/ipddp.ko
+drivers/net/bonding/bonding.ko
+drivers/net/bsd_comp.ko
+drivers/net/dummy.ko
+drivers/net/e1000/e1000.ko
+drivers/net/e1000e/e1000e.ko
+drivers/net/eql.ko
+drivers/net/ifb.ko
+drivers/net/mii.ko
+drivers/net/ne2k-pci.ko
+drivers/net/netconsole.ko
+drivers/net/pcnet32.ko
+drivers/net/ppp_async.ko
+drivers/net/ppp_deflate.ko
+drivers/net/ppp_mppe.ko
+drivers/net/pppoe.ko
+drivers/net/pppol2tp.ko
+drivers/net/pppox.ko
+drivers/net/ppp_synctty.ko
+drivers/net/slip.ko
+drivers/net/veth.ko
+drivers/net/vmxnet3/vmxnet3.ko
+drivers/net/xen-netfront.ko
+drivers/parport/parport.ko
+drivers/parport/parport_pc.ko
+drivers/pci/hotplug/acpiphp.ko
+drivers/net/tulip/tulip.ko
+drivers/scsi/BusLogic.ko
+drivers/scsi/iscsi_tcp.ko
+drivers/scsi/libiscsi.ko
+drivers/scsi/libiscsi_tcp.ko
+drivers/scsi/libsas/*
+drivers/scsi/libsas/libsas.ko
+drivers/scsi/qla1280.ko
+drivers/scsi/raid_class.ko
+drivers/scsi/scsi_transport_fc.ko
+drivers/scsi/scsi_transport_iscsi.ko
+drivers/scsi/scsi_transport_sas.ko
+drivers/scsi/scsi_wait_scan.ko
+drivers/scsi/scsi_tgt.ko
+drivers/scsi/vmw_pvscsi.ko
+drivers/usb/storage/usb-storage.ko
+drivers/video/cirrusfb.ko
+drivers/video/output.ko
+drivers/video/syscopyarea.ko
+drivers/video/sysfillrect.ko
+drivers/video/sysimgblt.ko
+drivers/video/vesafb.ko
+drivers/video/vga16fb.ko
+drivers/video/vgastate.ko
+drivers/video/xen-fbfront.ko
+drivers/video/fb_sys_fops.ko
+drivers/virtio/virtio_balloon.ko
+drivers/watchdog/softdog.ko
+drivers/xen/*
+fs/binfmt_misc.ko
+fs/btrfs/*
+fs/configfs/*
+fs/exportfs/*
+fs/fat/*
+fs/isofs/*
+fs/cifs/*
+fs/xfs/*
+fs/ufs/*
+fs/smbfs/*
+fs/squashfs/*
+lib/*
+net/802/*
+net/8021q/*
+net/appletalk/*
+net/atm/*
+net/ax25/*
+net/bridge/*
+net/can/*
+net/core/*
+net/dccp/*
+net/decnet/*
+net/econet/*
+net/ieee802154/*
+net/ipv4/*
+net/ipv6/*
+net/ipx/*
+net/irda/*
+net/key/*
+net/lapb/*
+net/llc/*
+net/mac80211/*
+net/netfilter/*
+net/netrom/*
+net/phonet/*
+net/rose/*
+net/rxrpc/*
+net/sched/*
+net/sctp/*
+net/tipc/*
+net/wanrouter/*
+net/wireless/*
+net/x25/*
+net/xfrm/*
+sound/soundcore.ko
+sound/core/*
+sound/pci/snd-ens1370.ko
+sound/drivers/pcsp/snd-pcsp.ko
+ubuntu/iscsitarget/iscsi_trgt.ko
diff --git a/debian.master/control.stub.in b/debian.master/control.stub.in
new file mode 100644
index 00000000000..3d96891c0fa
--- /dev/null
+++ b/debian.master/control.stub.in
@@ -0,0 +1,90 @@
+Source: linux
+Section: devel
+Priority: optional
+Maintainer: Ubuntu Kernel Team <kernel-team@lists.ubuntu.com>
+Standards-Version: 3.8.4.0
+Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], device-tree-compiler [powerpc], libelf-dev, binutils-dev, rsync, libdw-dev
+Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc
+Build-Conflicts: findutils (= 4.4.1-1ubuntu1)
+Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-lucid.git
+
+Package: SRCPKGNAME-source-PKGVER
+Architecture: all
+Section: devel
+Priority: optional
+Provides: SRCPKGNAME-source, SRCPKGNAME-source-2.6
+Depends: ${misc:Depends}, binutils, bzip2, coreutils | fileutils (>= 4.0)
+Recommends: libc-dev, gcc, make
+Suggests: libncurses-dev | ncurses-dev, kernel-package, libqt3-dev
+Description: Linux kernel source for version PKGVER with Ubuntu patches
+ This package provides the source code for the Linux kernel version
+ PKGVER.
+ .
+ This package is mainly meant for other packages to use, in order to build
+ custom flavours.
+ .
+ If you wish to use this package to create a custom Linux kernel, then it
+ is suggested that you investigate the package kernel-package, which has
+ been designed to ease the task of creating kernel image packages.
+ .
+ If you are simply trying to build third-party modules for your kernel,
+ you do not want this package. Install the appropriate linux-headers
+ package instead.
+
+Package: SRCPKGNAME-doc
+Architecture: all
+Section: doc
+Priority: optional
+Depends: ${misc:Depends}
+Conflicts: SRCPKGNAME-doc-2.6
+Replaces: SRCPKGNAME-doc-2.6
+Description: Linux kernel specific documentation for version PKGVER
+ This package provides the various documents in the PKGVER kernel
+ Documentation/ subdirectory. These document kernel subsystems, APIs, device
+ drivers, and so on. See
+ /usr/share/doc/SRCPKGNAME-doc/00-INDEX for a list of what is
+ contained in each file.
+
+Package: SRCPKGNAME-tools-common
+Architecture: all
+Section: admin
+Priority: optional
+Depends: ${misc:Depends}
+Replaces: SRCPKGNAME-tools (<= 2.6.32-16.25)
+Description: Linux kernel specific tools for version PKGVER
+ This package provides the architecture independent parts for kernel
+ version locked tools in the PKGVER kernel source.
+
+Package: linux-headers-PKGVER-ABINUM
+Architecture: all
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0)
+Provides: SRCPKGNAME-headers, SRCPKGNAME-headers-2.6
+Description: Header files related to Linux kernel version PKGVER
+ This package provides kernel header files for version PKGVER, for sites
+ that want the latest kernel headers. Please read
+ /usr/share/doc/SRCPKGNAME-headers-PKGVER-ABINUM/debian.README.gz for details
+
+Package: SRCPKGNAME-libc-dev
+Architecture: i386 amd64 ia64 powerpc sparc armel
+Depends: ${misc:Depends}
+Conflicts: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), amd64-libs-dev (<= 1.1), SRCPKGNAME-kernel-headers
+Replaces: libc6-dev (<< 2.3.2.ds1-6), libc6.1-dev (<< 2.3.2.ds1-6), dvb-dev (<< 1.0.1-6), SRCPKGNAME-kernel-headers, libdrm-dev
+Provides: SRCPKGNAME-kernel-headers
+Description: Linux Kernel Headers for development
+ This package provides headers from the Linux kernel. These headers
+ are used by the installed headers for GNU glibc and other system
+ libraries. They are NOT meant to be used to build third-party modules for
+ your kernel. Use SRCPKGNAME-headers-* packages for that.
+
+Package: linux-tools-PKGVER-ABINUM
+Architecture: i386 amd64 ia64 powerpc sparc armel
+Section: devel
+Priority: optional
+Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common
+Description: Linux kernel tools for version PKGVER-ABINUM
+ This package provides the architecture dependant parts for kernel
+ version locked tools for version PKGVER-ABINUM on
+ DESC.
+
diff --git a/debian.master/copyright b/debian.master/copyright
new file mode 100644
index 00000000000..d1d04a6d669
--- /dev/null
+++ b/debian.master/copyright
@@ -0,0 +1,29 @@
+This is the Ubuntu prepackaged version of the Linux kernel.
+Linux was written by Linus Torvalds <Linus.Torvalds@cs.Helsinki.FI>
+and others.
+
+This package was put together by the Ubuntu Kernel Team, from
+sources retrieved from upstream linux git.
+The sources may be found at most Linux ftp sites, including
+ftp://ftp.kernel.org/pub/linux/kernel/
+
+This package is currently maintained by the
+Ubuntu Kernel Team <ubuntu-kernel@lists.ubuntu.com>
+
+Linux is copyrighted by Linus Torvalds and others.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; version 2 dated June, 1991.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+On Ubuntu Linux systems, the complete text of the GNU General
+Public License v2 can be found in `/usr/share/common-licenses/GPL-2'.
diff --git a/debian.master/d-i/exclude-firmware.armel-omap b/debian.master/d-i/exclude-firmware.armel-omap
new file mode 100644
index 00000000000..ddb5eb867b2
--- /dev/null
+++ b/debian.master/d-i/exclude-firmware.armel-omap
@@ -0,0 +1,2 @@
+nic-modules
+scsi-modules
diff --git a/debian.master/d-i/exclude-modules.amd64-virtual b/debian.master/d-i/exclude-modules.amd64-virtual
new file mode 100644
index 00000000000..e17fd2f38c5
--- /dev/null
+++ b/debian.master/d-i/exclude-modules.amd64-virtual
@@ -0,0 +1,12 @@
+pata-modules
+serial-modules
+firewire-core-modules
+plip-modules
+usb-modules
+pcmcia-storage-modules
+input-modules
+nic-pcmcia-modules
+pcmcia-modules
+nic-usb-modules
+char-modules
+nfs-modules
diff --git a/debian.master/d-i/exclude-modules.armel-omap b/debian.master/d-i/exclude-modules.armel-omap
new file mode 100644
index 00000000000..aeb86b962e5
--- /dev/null
+++ b/debian.master/d-i/exclude-modules.armel-omap
@@ -0,0 +1,11 @@
+serial-modules
+firewire-core-modules
+floppy-modules
+pcmcia-storage-modules
+fb-modules
+nic-pcmcia-modules
+pcmcia-modules
+char-modules
+pata-modules
+message-modules
+virtio-modules
diff --git a/debian.master/d-i/exclude-modules.armel-versatile b/debian.master/d-i/exclude-modules.armel-versatile
new file mode 100644
index 00000000000..df63c6675d5
--- /dev/null
+++ b/debian.master/d-i/exclude-modules.armel-versatile
@@ -0,0 +1,20 @@
+crypto-modules
+fb-modules
+fs-core-modules
+fs-secondary-modules
+nic-modules
+nic-pcmcia-modules
+nic-usb-modules
+scsi-modules
+storage-core-modules
+nfs-modules
+pcmcia-modules
+parport-modules
+serial-modules
+plip-modules
+pcmcia-storage-modules
+mouse-modules
+irda-modules
+floppy-modules
+char-modules
+virtio-modules
diff --git a/debian.master/d-i/exclude-modules.i386-virtual b/debian.master/d-i/exclude-modules.i386-virtual
new file mode 100644
index 00000000000..e17fd2f38c5
--- /dev/null
+++ b/debian.master/d-i/exclude-modules.i386-virtual
@@ -0,0 +1,12 @@
+pata-modules
+serial-modules
+firewire-core-modules
+plip-modules
+usb-modules
+pcmcia-storage-modules
+input-modules
+nic-pcmcia-modules
+pcmcia-modules
+nic-usb-modules
+char-modules
+nfs-modules
diff --git a/debian.master/d-i/exclude-modules.ia64 b/debian.master/d-i/exclude-modules.ia64
new file mode 100644
index 00000000000..e8140049324
--- /dev/null
+++ b/debian.master/d-i/exclude-modules.ia64
@@ -0,0 +1,5 @@
+irda-modules
+floppy-modules
+fb-modules
+virtio-modules
+char-modules
diff --git a/debian.master/d-i/exclude-modules.powerpc b/debian.master/d-i/exclude-modules.powerpc
new file mode 100644
index 00000000000..987bf56d650
--- /dev/null
+++ b/debian.master/d-i/exclude-modules.powerpc
@@ -0,0 +1,5 @@
+efi-modules
+fb-modules
+acpi-modules
+virtio-modules
+char-modules
diff --git a/debian.master/d-i/exclude-modules.sparc b/debian.master/d-i/exclude-modules.sparc
new file mode 100644
index 00000000000..fe42bbed7d6
--- /dev/null
+++ b/debian.master/d-i/exclude-modules.sparc
@@ -0,0 +1,10 @@
+efi-modules
+nic-pcmcia-modules
+pcmcia-modules
+pcmcia-storage-modules
+irda-modules
+floppy-modules
+fb-modules
+acpi-modules
+virtio-modules
+char-modules
diff --git a/debian.master/d-i/firmware/README.txt b/debian.master/d-i/firmware/README.txt
new file mode 100644
index 00000000000..27a8600bc0f
--- /dev/null
+++ b/debian.master/d-i/firmware/README.txt
@@ -0,0 +1,4 @@
+#
+# Place the names of udeb modules into this directory that require
+# runtime firmware.
+#
diff --git a/debian.master/d-i/firmware/nic-modules b/debian.master/d-i/firmware/nic-modules
new file mode 100644
index 00000000000..b3692252206
--- /dev/null
+++ b/debian.master/d-i/firmware/nic-modules
@@ -0,0 +1,10 @@
+bnx2/bnx2-mips-06-5.0.0.j6.fw
+bnx2/bnx2-mips-09-5.0.0.j15.fw
+bnx2/bnx2-rv2p-06-5.0.0.j3.fw
+bnx2/bnx2-rv2p-09-5.0.0.j10.fw
+bnx2/bnx2-rv2p-09ax-5.0.0.j10.fw
+bnx2x-e1-5.2.13.0.fw
+bnx2x-e1h-5.2.13.0.fw
+e100/d101m_ucode.bin
+e100/d101s_ucode.bin
+e100/d102e_ucode.bin
diff --git a/debian.master/d-i/firmware/scsi-modules b/debian.master/d-i/firmware/scsi-modules
new file mode 100644
index 00000000000..b089c7db844
--- /dev/null
+++ b/debian.master/d-i/firmware/scsi-modules
@@ -0,0 +1,3 @@
+qlogic/1040.bin
+qlogic/12160.bin
+qlogic/1280.bin
diff --git a/debian.master/d-i/kernel-versions.in b/debian.master/d-i/kernel-versions.in
new file mode 100644
index 00000000000..14fc726574f
--- /dev/null
+++ b/debian.master/d-i/kernel-versions.in
@@ -0,0 +1,19 @@
+# arch version flavour installedname suffix bdep
+amd64 PKGVER-ABINUM generic PKGVER-ABINUM-generic -
+amd64 PKGVER-ABINUM virtual PKGVER-ABINUM-virtual -
+
+i386 PKGVER-ABINUM generic PKGVER-ABINUM-generic -
+i386 PKGVER-ABINUM generic-pae PKGVER-ABINUM-generic-pae -
+i386 PKGVER-ABINUM virtual PKGVER-ABINUM-virtual -
+
+armel PKGVER-ABINUM versatile PKGVER-ABINUM-versatile -
+armel PKGVER-ABINUM omap PKGVER-ABINUM-omap -
+
+# Ports
+# arch version flavour installedname suffix bdep
+ia64 PKGVER-ABINUM ia64 PKGVER-ABINUM-ia64 -
+
+powerpc PKGVER-ABINUM powerpc PKGVER-ABINUM-powerpc -
+powerpc PKGVER-ABINUM powerpc64-smp PKGVER-ABINUM-powerpc64-smp -
+
+sparc PKGVER-ABINUM sparc64 PKGVER-ABINUM-sparc64 -
diff --git a/debian.master/d-i/modules-powerpc/block-modules b/debian.master/d-i/modules-powerpc/block-modules
new file mode 100644
index 00000000000..cd95917c717
--- /dev/null
+++ b/debian.master/d-i/modules-powerpc/block-modules
@@ -0,0 +1,31 @@
+aoe
+aten
+bpck
+bpck6 ?
+cciss
+comm
+cpqarray ?
+DAC960
+dstr
+epat
+epia
+fit2
+fit3
+friq
+frpw
+kbic
+ktti
+nbd
+on20
+on26
+paride
+pcd
+pd
+pf
+pg
+ps3disk ?
+ps3vram ?
+pt
+sx8
+umem
+virtio_blk ?
diff --git a/debian.master/d-i/modules-powerpc/message-modules b/debian.master/d-i/modules-powerpc/message-modules
new file mode 100644
index 00000000000..f318308f621
--- /dev/null
+++ b/debian.master/d-i/modules-powerpc/message-modules
@@ -0,0 +1,13 @@
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+i2o_block
+i2o_bus
+i2o_config ?
+i2o_core
+i2o_proc
+i2o_scsi
diff --git a/debian.master/d-i/modules-powerpc/nic-modules b/debian.master/d-i/modules-powerpc/nic-modules
new file mode 100644
index 00000000000..0e1310f5989
--- /dev/null
+++ b/debian.master/d-i/modules-powerpc/nic-modules
@@ -0,0 +1,152 @@
+3c359 ?
+3c501 ?
+3c503 ?
+3c505 ?
+3c507 ?
+3c509 ?
+3c515 ?
+3c523 ?
+3c527 ?
+3c59x ?
+8139cp ?
+8139too ?
+82596 ?
+abyss ?
+ac3200 ?
+adm8211 ?
+airo ?
+airport ?
+amd8111e ?
+arc4 ?
+arcnet ?
+arc-rawmode ?
+arc-rimi ?
+arlan ?
+at1700 ?
+atl1 ?
+atl1e ?
+atl2 ?
+atmel ?
+atmel_pci ?
+b44 ?
+bcm43xx ?
+bcm43xx-mac80211 ?
+bmac ?
+bnx2 ?
+bnx2x ?
+bonding ?
+cassini ?
+com20020 ?
+com20020-pci ?
+com90io ?
+com90xx ?
+cs89x0 ?
+de2104x ?
+de4x5 ?
+de600 ?
+de620 ?
+defxx ?
+depca ?
+dl2k ?
+dmfe ?
+dummy ?
+e100 ?
+e1000 ?
+e1000e ?
+e2100 ?
+eepro ?
+eepro100 ?
+eexpress ?
+epic100 ?
+eql ?
+es3210 ?
+eth16i ?
+ewrk3 ?
+fealnx ?
+forcedeth ?
+igb ?
+hamachi ?
+hermes ?
+hp ?
+hp100 ?
+hp-plus ?
+ibmtr ?
+ipddp ?
+ipw2100 ?
+ipw2200 ?
+ipw3945 ?
+ixgb ?
+lance ?
+lanstreamer ?
+lasi_82596 ?
+lne390 ?
+lp486e ?
+mace ?
+mv643xx_eth ?
+myri_sbus ?
+natsemi ?
+ne ?
+ne2 ?
+ne2k-pci ?
+ne3210 ?
+netconsole ?
+netxen_nic ?
+ni5010 ?
+ni52 ?
+ni65 ?
+niu ?
+ns83820 ?
+olympic ?
+orinoco ?
+orinoco_pci ?
+orinoco_plx ?
+orinoco_tmd ?
+pcnet32 ?
+prism54 ?
+ps3_gelic ?
+r8169 ?
+rate_control ?
+rfc1051 ?
+rfc1201 ?
+rrunner ?
+rt2400 ?
+rt2500 ?
+rt61pci ?
+s2io ?
+shaper ?
+sis190 ?
+sis900 ?
+spidernet ?
+skfp ?
+skge ?
+sk98lin ?
+sky2 ?
+smc9194 ?
+smc-ultra ?
+smc-ultra32 ?
+starfire ?
+strip ?
+sunbmac ?
+sundance ?
+sungem ?
+sungem_phy ?
+sunhme ?
+sunlance ?
+sunqe ?
+sunvnet ?
+tg3 ?
+tlan ?
+tms380tr ?
+tmspci ?
+tulip ?
+tun ?
+typhoon ?
+uli526x ?
+via-rhine ?
+via-velocity ?
+virtio_net ?
+wavelan ?
+wd ?
+winbond-840 ?
+yellowfin ?
+znet ?
diff --git a/debian.master/d-i/modules-powerpc/scsi-modules b/debian.master/d-i/modules-powerpc/scsi-modules
new file mode 100644
index 00000000000..ea54d0e4957
--- /dev/null
+++ b/debian.master/d-i/modules-powerpc/scsi-modules
@@ -0,0 +1,116 @@
+# SCSI
+raid_class ?
+scsi_transport_spi ?
+scsi_transport_fc ?
+scsi_transport_iscsi ?
+scsi_transport_sas ?
+iscsi_tcp ?
+libiscsi ?
+amiga7xx ?
+a3000 ?
+a2091 ?
+gvp11 ?
+mvme147 ?
+sgiwd93 ?
+cyberstorm ?
+cyberstormII ?
+blz2060 ?
+blz1230 ?
+fastlane ?
+oktagon_esp_mod ?
+atari_scsi ?
+mac_scsi ?
+mac_esp ?
+sun3_scsi ?
+mvme16x ?
+bvme6000 ?
+sim710 ?
+advansys ?
+psi240i ?
+BusLogic ?
+dpt_i2o ?
+u14-34f ?
+ultrastor ?
+aha152x ?
+aha1542 ?
+aha1740 ?
+aic7xxx_old ?
+ips ?
+fd_mcs ?
+fdomain ?
+in2000 ?
+g_NCR5380 ?
+g_NCR5380_mmio ?
+NCR53c406a ?
+NCR_D700 ?
+NCR_Q720_mod ?
+sym53c416 ?
+qlogicfas408 ?
+qla1280 ?
+pas16 ?
+seagate ?
+seagate ?
+t128 ?
+dmx3191d ?
+dtc ?
+zalon7xx ?
+eata_pio ?
+wd7000 ?
+mca_53c9x ?
+ibmmca ?
+eata ?
+dc395x ?
+tmscsim ?
+megaraid ?
+atp870u ?
+esp ?
+gdth ?
+initio ?
+a100u2w ?
+qlogicpti ?
+ide-scsi ?
+mesh ?
+mac53c94 ?
+pluto ?
+dec_esp ?
+3w-xxxx ?
+3w-9xxx ?
+ppa ?
+imm ?
+jazz_esp ?
+sun3x_esp ?
+fcal ?
+lasi700 ?
+nsp32 ?
+ipr ?
+hptiop ?
+stex ?
+osst ?
+sg ?
+ch ?
+scsi_debug ?
+aacraid ?
+aic7xxx ?
+aic79xx ?
+aic94xx ?
+arcmsr ?
+acornscsi_mod ?
+arxescsi ?
+cumana_1 ?
+cumana_2 ?
+ecoscsi ?
+oak ?
+powertec ?
+eesox ?
+ibmvscsic ?
+libsas ?
+lpfc ?
+megaraid_mm ?
+megaraid_mbox ?
+megaraid_sas ?
+qla2xxx ?
+sym53c8xx ?
+qla4xxx ?
+mvsas ?
+sr_mod ?
+sd_mod ?
diff --git a/debian.master/d-i/modules-powerpc/storage-core-modules b/debian.master/d-i/modules-powerpc/storage-core-modules
new file mode 100644
index 00000000000..de158a97412
--- /dev/null
+++ b/debian.master/d-i/modules-powerpc/storage-core-modules
@@ -0,0 +1,13 @@
+# Core stacks
+usb-storage ?
+
+# Block level
+
+# Loop modules
+cryptoloop
+
+# Needs to be here for better cdrom initrd layout
+isofs
+
+ps3stor_lib ?
+ps3rom ?
diff --git a/debian.master/d-i/modules-sparc/block-modules b/debian.master/d-i/modules-sparc/block-modules
new file mode 100644
index 00000000000..da58241a221
--- /dev/null
+++ b/debian.master/d-i/modules-sparc/block-modules
@@ -0,0 +1,9 @@
+aoe
+cciss
+comm
+cpqarray ?
+DAC960
+nbd
+sx8
+umem
+virtio_blk ?
diff --git a/debian.master/d-i/modules-sparc/message-modules b/debian.master/d-i/modules-sparc/message-modules
new file mode 100644
index 00000000000..f318308f621
--- /dev/null
+++ b/debian.master/d-i/modules-sparc/message-modules
@@ -0,0 +1,13 @@
+mptbase
+mptctl
+mptfc
+mptlan
+mptsas
+mptscsih
+mptspi
+i2o_block
+i2o_bus
+i2o_config ?
+i2o_core
+i2o_proc
+i2o_scsi
diff --git a/debian.master/d-i/modules/block-modules b/debian.master/d-i/modules/block-modules
new file mode 100644
index 00000000000..27f9e9d61f6
--- /dev/null
+++ b/debian.master/d-i/modules/block-modules
@@ -0,0 +1,30 @@
+aoe ?
+aten ?
+bpck ?
+bpck6 ?
+cciss ?
+comm ?
+cpqarray ?
+DAC960 ?
+dstr ?
+epat ?
+epia ?
+fit2 ?
+fit3 ?
+friq ?
+frpw ?
+kbic ?
+ktti ?
+nbd ?
+on20 ?
+on26 ?
+paride ?
+pcd ?
+pd ?
+pf ?
+pg ?
+pt ?
+sx8 ?
+umem ?
+virtio_blk ?
+xen-blkfront ?
diff --git a/debian.master/d-i/modules/char-modules b/debian.master/d-i/modules/char-modules
new file mode 100644
index 00000000000..d1d75715f40
--- /dev/null
+++ b/debian.master/d-i/modules/char-modules
@@ -0,0 +1 @@
+intel-agp ?
diff --git a/debian.master/d-i/modules/crypto-modules b/debian.master/d-i/modules/crypto-modules
new file mode 100644
index 00000000000..b2f623a91e0
--- /dev/null
+++ b/debian.master/d-i/modules/crypto-modules
@@ -0,0 +1,8 @@
+aes_generic ?
+blowfish ?
+twofish ?
+serpent ?
+sha256_generic ?
+cbc ?
+ecb ?
+crc32c ?
diff --git a/debian.master/d-i/modules/fat-modules b/debian.master/d-i/modules/fat-modules
new file mode 100644
index 00000000000..0aa17c3810f
--- /dev/null
+++ b/debian.master/d-i/modules/fat-modules
@@ -0,0 +1,7 @@
+fat ?
+vfat ?
+
+# Supporting modules ?
+nls_cp437 ?
+nls_iso8859-1 ?
+nls_utf8 ?
diff --git a/debian.master/d-i/modules/fb-modules b/debian.master/d-i/modules/fb-modules
new file mode 100644
index 00000000000..eae829f89c7
--- /dev/null
+++ b/debian.master/d-i/modules/fb-modules
@@ -0,0 +1,3 @@
+fbcon ?
+vesafb ?
+vga16fb ?
diff --git a/debian.master/d-i/modules/firewire-core-modules b/debian.master/d-i/modules/firewire-core-modules
new file mode 100644
index 00000000000..f43381ac9ee
--- /dev/null
+++ b/debian.master/d-i/modules/firewire-core-modules
@@ -0,0 +1,4 @@
+ieee1394 ?
+ohci1394 ?
+sbp2 ?
+eth1394 ?
diff --git a/debian.master/d-i/modules/floppy-modules b/debian.master/d-i/modules/floppy-modules
new file mode 100644
index 00000000000..ca8d7ffed61
--- /dev/null
+++ b/debian.master/d-i/modules/floppy-modules
@@ -0,0 +1 @@
+floppy ?
diff --git a/debian.master/d-i/modules/fs-core-modules b/debian.master/d-i/modules/fs-core-modules
new file mode 100644
index 00000000000..96fa5de125c
--- /dev/null
+++ b/debian.master/d-i/modules/fs-core-modules
@@ -0,0 +1,3 @@
+jfs ?
+reiserfs ?
+xfs ?
diff --git a/debian.master/d-i/modules/fs-secondary-modules b/debian.master/d-i/modules/fs-secondary-modules
new file mode 100644
index 00000000000..db46bb75fc1
--- /dev/null
+++ b/debian.master/d-i/modules/fs-secondary-modules
@@ -0,0 +1,5 @@
+btrfs ?
+fuse ?
+ntfs ?
+hfs ?
+hfsplus ?
diff --git a/debian.master/d-i/modules/input-modules b/debian.master/d-i/modules/input-modules
new file mode 100644
index 00000000000..53a409dfb27
--- /dev/null
+++ b/debian.master/d-i/modules/input-modules
@@ -0,0 +1,21 @@
+hid-a4tech ?
+hid-apple ?
+hid-belkin ?
+hid-bright ?
+hid-cherry ?
+hid-chicony ?
+hid-cypress ?
+hid-dell ?
+hid-ezkey ?
+hid-gyration ?
+hid-logitech ?
+hid-microsoft ?
+hid-monterey ?
+hid-petalynx ?
+hid-pl ?
+hid-samsung ?
+hid-sony ?
+hid-sunplus ?
+hid-tmff ?
+hid-zpff ?
+usbhid ?
diff --git a/debian.master/d-i/modules/irda-modules b/debian.master/d-i/modules/irda-modules
new file mode 100644
index 00000000000..552e7a757c7
--- /dev/null
+++ b/debian.master/d-i/modules/irda-modules
@@ -0,0 +1,30 @@
+act200l-sir ?
+actisys-sir ?
+ali-ircc ?
+donauboe ?
+esi-sir ?
+girbil-sir ?
+ircomm ?
+ircomm-tty ?
+irda ?
+irda-usb ?
+irlan ?
+irnet ?
+irport ?
+irtty-sir ?
+kingsun-sir ?
+ks959-sir ?
+ksdazzle-sir ?
+litelink-sir ?
+ma600-sir ?
+mcp2120-sir ?
+mcs7780 ?
+nsc-ircc ?
+old_belkin-sir ?
+sir-dev ?
+smsc-ircc2 ?
+stir4200 ?
+tekram-sir ?
+via-ircc ?
+vlsi_ir ?
+w83977af_ir ?
diff --git a/debian.master/d-i/modules/md-modules b/debian.master/d-i/modules/md-modules
new file mode 100644
index 00000000000..18d02149f7f
--- /dev/null
+++ b/debian.master/d-i/modules/md-modules
@@ -0,0 +1,13 @@
+dm-crypt ?
+dm-zero ?
+faulty ?
+linear ?
+multipath ?
+raid0 ?
+raid1 ?
+raid10 ?
+raid456 ?
+
+# Extras
+dm-raid4-5 ?
+dm-loop ?
diff --git a/debian.master/d-i/modules/message-modules b/debian.master/d-i/modules/message-modules
new file mode 100644
index 00000000000..505eea7bf92
--- /dev/null
+++ b/debian.master/d-i/modules/message-modules
@@ -0,0 +1,14 @@
+mptbase ?
+mptctl ?
+mptfc ?
+mptlan ?
+mptsas ?
+mpt2sas ?
+mptscsih ?
+mptspi ?
+i2o_block ?
+i2o_bus ?
+i2o_config ?
+i2o_core ?
+i2o_proc ?
+i2o_scsi ?
diff --git a/debian.master/d-i/modules/mouse-modules b/debian.master/d-i/modules/mouse-modules
new file mode 100644
index 00000000000..7b06256488b
--- /dev/null
+++ b/debian.master/d-i/modules/mouse-modules
@@ -0,0 +1,2 @@
+psmouse ?
+usbmouse ?
diff --git a/debian.master/d-i/modules/nfs-modules b/debian.master/d-i/modules/nfs-modules
new file mode 100644
index 00000000000..92ca0b56e6f
--- /dev/null
+++ b/debian.master/d-i/modules/nfs-modules
@@ -0,0 +1,4 @@
+nfs ?
+nfs_acl ?
+lockd ?
+sunrpc ?
diff --git a/debian.master/d-i/modules/nic-modules b/debian.master/d-i/modules/nic-modules
new file mode 100644
index 00000000000..fd2ac6cbd0a
--- /dev/null
+++ b/debian.master/d-i/modules/nic-modules
@@ -0,0 +1,155 @@
+3c359 ?
+3c501 ?
+3c503 ?
+3c505 ?
+3c507 ?
+3c509 ?
+3c515 ?
+3c523 ?
+3c527 ?
+3c59x ?
+8139cp ?
+8139too ?
+82596 ?
+abyss ?
+ac3200 ?
+adm8211 ?
+airo ?
+airport ?
+amd8111e ?
+arc4 ?
+arcnet ?
+arc-rawmode ?
+arc-rimi ?
+arlan ?
+at1700 ?
+atl1 ?
+atl1c ?
+atl1e ?
+atl2 ?
+atmel ?
+atmel_pci ?
+b44 ?
+bcm43xx ?
+bcm43xx-mac80211 ?
+bmac ?
+bnx2 ?
+bnx2x ?
+bonding ?
+cassini ?
+com20020 ?
+com20020-pci ?
+com90io ?
+com90xx ?
+cs89x0 ?
+de2104x ?
+de4x5 ?
+de600 ?
+de620 ?
+defxx ?
+depca ?
+dl2k ?
+dmfe ?
+dummy ?
+e100 ?
+e1000 ?
+e1000e ?
+e2100 ?
+eepro ?
+eepro100 ?
+eexpress ?
+epic100 ?
+eql ?
+es3210 ?
+eth16i ?
+ewrk3 ?
+fealnx ?
+forcedeth ?
+igb ?
+ps3_gelic ?
+hamachi ?
+hermes ?
+hp ?
+hp100 ?
+hp-plus ?
+ibmtr ?
+ipddp ?
+ipw2100 ?
+ipw2200 ?
+ipw3945 ?
+ixgb ?
+lance ?
+lanstreamer ?
+lasi_82596 ?
+lne390 ?
+lp486e ?
+mace ?
+mv643xx_eth ?
+myri_sbus ?
+natsemi ?
+ne ?
+ne2 ?
+ne2k-pci ?
+ne3210 ?
+netconsole ?
+netxen_nic ?
+ni5010 ?
+ni52 ?
+ni65 ?
+niu ?
+ns83820 ?
+olympic ?
+orinoco ?
+orinoco_pci ?
+orinoco_plx ?
+orinoco_tmd ?
+pcnet32 ?
+prism54 ?
+r8169 ?
+rate_control ?
+rfc1051 ?
+rfc1201 ?
+rrunner ?
+rt2400 ?
+rt2500 ?
+rt61pci ?
+s2io ?
+shaper ?
+sis190 ?
+sis900 ?
+spidernet ?
+skfp ?
+skge ?
+sk98lin ?
+sky2 ?
+smc9194 ?
+smc-ultra ?
+smc-ultra32 ?
+starfire ?
+strip ?
+sunbmac ?
+sundance ?
+sungem ?
+sungem_phy ?
+sunhme ?
+sunlance ?
+sunqe ?
+sunvnet ?
+tg3 ?
+tlan ?
+tms380tr ?
+tmspci ?
+tulip ?
+tun ?
+typhoon ?
+uli526x ?
+via-rhine ?
+via-velocity ?
+virtio_net ?
+wavelan ?
+wd ?
+winbond-840 ?
+yellowfin ?
+znet ?
+vmxnet3 ?
+xen-netfront ?
diff --git a/debian.master/d-i/modules/nic-pcmcia-modules b/debian.master/d-i/modules/nic-pcmcia-modules
new file mode 100644
index 00000000000..191687536f3
--- /dev/null
+++ b/debian.master/d-i/modules/nic-pcmcia-modules
@@ -0,0 +1,19 @@
+3c574_cs ?
+3c589_cs ?
+airo_cs ?
+atmel_cs ?
+axnet_cs ?
+com20020_cs ?
+fmvj18x_cs ?
+ibmtr_cs ?
+netwave_cs ?
+nmclan_cs ?
+orinoco_cs ?
+pcnet_cs ?
+ray_cs ?
+smc91c92_cs ?
+wavelan_cs ?
+wl3501_cs ?
+xirc2ps_cs ?
+xircom_cb ?
+xircom_tulip_cb ?
diff --git a/debian.master/d-i/modules/nic-shared-modules b/debian.master/d-i/modules/nic-shared-modules
new file mode 100644
index 00000000000..e33885facb1
--- /dev/null
+++ b/debian.master/d-i/modules/nic-shared-modules
@@ -0,0 +1,22 @@
+# PHY
+8390 ?
+mii ?
+
+# CRC modules
+crc-ccitt ?
+crc-itu-t ?
+libcrc32c ?
+
+# mac80211 stuff
+mac80211 ?
+cfg80211 ?
+
+# rt2x00 lib (since rt2x00 is split across usb/pci/cb
+rt2x00lib ?
+
+# Wireless 802.11 modules
+lib80211 ?
+cfg80211 ?
+lib80211_crypt_ccmp ?
+lib80211_crypt_tkip ?
+lib80211_crypt_wep ?
diff --git a/debian.master/d-i/modules/nic-usb-modules b/debian.master/d-i/modules/nic-usb-modules
new file mode 100644
index 00000000000..33b1c119d5d
--- /dev/null
+++ b/debian.master/d-i/modules/nic-usb-modules
@@ -0,0 +1,13 @@
+catc ?
+kaweth ?
+pegasus ?
+prism2_usb ?
+rtl8150 ?
+usbnet ?
+zd1211rw ?
+zd1201 ?
+rt2500usb ?
+rt73usb ?
+rt2570 ?
+cdc_ether ?
+asix ?
diff --git a/debian.master/d-i/modules/parport-modules b/debian.master/d-i/modules/parport-modules
new file mode 100644
index 00000000000..75fe0b927c7
--- /dev/null
+++ b/debian.master/d-i/modules/parport-modules
@@ -0,0 +1,2 @@
+parport ?
+parport_pc ?
diff --git a/debian.master/d-i/modules/pata-modules b/debian.master/d-i/modules/pata-modules
new file mode 100644
index 00000000000..623a47d3a6c
--- /dev/null
+++ b/debian.master/d-i/modules/pata-modules
@@ -0,0 +1,46 @@
+pata_ali.ko ?
+pata_amd.ko ?
+pata_artop.ko ?
+pata_atiixp.ko ?
+pata_atp867x.ko ?
+pata_cmd640.ko ?
+pata_cmd64x.ko ?
+pata_cs5520.ko ?
+pata_cs5530.ko ?
+pata_cs5535.ko ?
+pata_cs5536.ko ?
+pata_cypress.ko ?
+pata_efar.ko ?
+pata_hpt366.ko ?
+pata_hpt37x.ko ?
+pata_hpt3x2n.ko ?
+pata_hpt3x3.ko ?
+pata_isapnp.ko ?
+pata_it8213.ko ?
+pata_it821x.ko ?
+pata_jmicron.ko ?
+pata_legacy.ko ?
+pata_marvell.ko ?
+pata_mpiix.ko ?
+pata_netcell.ko ?
+pata_ninja32.ko ?
+pata_ns87410.ko ?
+pata_ns87415.ko ?
+pata_oldpiix.ko ?
+pata_optidma.ko ?
+pata_opti.ko ?
+pata_pcmcia.ko ?
+pata_pdc2027x.ko ?
+pata_pdc202xx_old.ko ?
+pata_qdi.ko ?
+pata_radisys.ko ?
+pata_rdc.ko ?
+pata_rz1000.ko ?
+pata_sc1200.ko ?
+pata_sch.ko ?
+pata_serverworks.ko ?
+pata_sil680.ko ?
+pata_sl82c105.ko ?
+pata_triflex.ko ?
+pata_via.ko ?
+pata_winbond.ko ?
diff --git a/debian.master/d-i/modules/pcmcia-modules b/debian.master/d-i/modules/pcmcia-modules
new file mode 100644
index 00000000000..06a50311d5c
--- /dev/null
+++ b/debian.master/d-i/modules/pcmcia-modules
@@ -0,0 +1,8 @@
+i82092 ?
+i82365 ?
+pcmcia ?
+pcmcia_core ?
+pd6729 ?
+rsrc_nonstatic ?
+tcic ?
+yenta_socket ?
diff --git a/debian.master/d-i/modules/pcmcia-storage-modules b/debian.master/d-i/modules/pcmcia-storage-modules
new file mode 100644
index 00000000000..bb042a648af
--- /dev/null
+++ b/debian.master/d-i/modules/pcmcia-storage-modules
@@ -0,0 +1,6 @@
+pata_pcmcia ?
+qlogic_cs ?
+fdomain_cs ?
+aha152x_cs ?
+nsp_cs ?
+sym53c500_cs ?
diff --git a/debian.master/d-i/modules/plip-modules b/debian.master/d-i/modules/plip-modules
new file mode 100644
index 00000000000..446e2bd3350
--- /dev/null
+++ b/debian.master/d-i/modules/plip-modules
@@ -0,0 +1 @@
+plip ?
diff --git a/debian.master/d-i/modules/ppp-modules b/debian.master/d-i/modules/ppp-modules
new file mode 100644
index 00000000000..d4f6a923e20
--- /dev/null
+++ b/debian.master/d-i/modules/ppp-modules
@@ -0,0 +1,6 @@
+ppp_async ?
+ppp_deflate ?
+ppp_mppe ?
+pppoe ?
+pppox ?
+ppp_synctty ?
diff --git a/debian.master/d-i/modules/sata-modules b/debian.master/d-i/modules/sata-modules
new file mode 100644
index 00000000000..9491c6a6f77
--- /dev/null
+++ b/debian.master/d-i/modules/sata-modules
@@ -0,0 +1,14 @@
+ahci.ko ?
+sata_inic162x.ko ?
+sata_mv.ko ?
+sata_nv.ko ?
+sata_promise.ko ?
+sata_qstor.ko ?
+sata_sil24.ko ?
+sata_sil.ko ?
+sata_sis.ko ?
+sata_svw.ko ?
+sata_sx4.ko ?
+sata_uli.ko ?
+sata_via.ko ?
+sata_vsc.ko ?
diff --git a/debian.master/d-i/modules/scsi-modules b/debian.master/d-i/modules/scsi-modules
new file mode 100644
index 00000000000..31626788091
--- /dev/null
+++ b/debian.master/d-i/modules/scsi-modules
@@ -0,0 +1,115 @@
+# SCSI
+raid_class ?
+scsi_transport_spi ?
+scsi_transport_fc ?
+scsi_transport_iscsi ?
+scsi_transport_sas ?
+iscsi_tcp ?
+libiscsi ?
+amiga7xx ?
+a3000 ?
+a2091 ?
+gvp11 ?
+mvme147 ?
+sgiwd93 ?
+cyberstorm ?
+cyberstormII ?
+blz2060 ?
+blz1230 ?
+fastlane ?
+oktagon_esp_mod ?
+atari_scsi ?
+mac_scsi ?
+mac_esp ?
+sun3_scsi ?
+mvme16x ?
+bvme6000 ?
+sim710 ?
+advansys ?
+psi240i ?
+BusLogic ?
+dpt_i2o ?
+u14-34f ?
+ultrastor ?
+aha152x ?
+aha1542 ?
+aha1740 ?
+aic7xxx_old ?
+ips ?
+fd_mcs ?
+fdomain ?
+in2000 ?
+g_NCR5380 ?
+g_NCR5380_mmio ?
+NCR53c406a ?
+NCR_D700 ?
+NCR_Q720_mod ?
+sym53c416 ?
+qlogicfas408 ?
+qla1280 ?
+pas16 ?
+seagate ?
+seagate ?
+t128 ?
+dmx3191d ?
+dtc ?
+zalon7xx ?
+eata_pio ?
+wd7000 ?
+mca_53c9x ?
+ibmmca ?
+eata ?
+dc395x ?
+tmscsim ?
+megaraid ?
+atp870u ?
+esp ?
+gdth ?
+initio ?
+a100u2w ?
+qlogicpti ?
+ide-scsi ?
+mesh ?
+mac53c94 ?
+pluto ?
+dec_esp ?
+3w-xxxx ?
+3w-9xxx ?
+ppa ?
+imm ?
+jazz_esp ?
+sun3x_esp ?
+fcal ?
+lasi700 ?
+nsp32 ?
+ipr ?
+hptiop ?
+stex ?
+osst ?
+sg ?
+ch ?
+scsi_debug ?
+aacraid ?
+aic7xxx ?
+aic79xx ?
+aic94xx ?
+arcmsr ?
+acornscsi_mod ?
+arxescsi ?
+cumana_1 ?
+cumana_2 ?
+ecoscsi ?
+oak ?
+powertec ?
+eesox ?
+ibmvscsic ?
+libsas ?
+lpfc ?
+megaraid_mm ?
+megaraid_mbox ?
+megaraid_sas ?
+qla2xxx ?
+sym53c8xx ?
+qla4xxx ?
+mvsas ?
+vmw_pvscsi ?
diff --git a/debian.master/d-i/modules/serial-modules b/debian.master/d-i/modules/serial-modules
new file mode 100644
index 00000000000..81ef801affe
--- /dev/null
+++ b/debian.master/d-i/modules/serial-modules
@@ -0,0 +1,3 @@
+generic_serial ?
+serial_cs ?
+synclink_cs ?
diff --git a/debian.master/d-i/modules/squashfs-modules b/debian.master/d-i/modules/squashfs-modules
new file mode 100644
index 00000000000..b0c5ed0a164
--- /dev/null
+++ b/debian.master/d-i/modules/squashfs-modules
@@ -0,0 +1 @@
+squashfs ?
diff --git a/debian.master/d-i/modules/storage-core-modules b/debian.master/d-i/modules/storage-core-modules
new file mode 100644
index 00000000000..2abfc068a4d
--- /dev/null
+++ b/debian.master/d-i/modules/storage-core-modules
@@ -0,0 +1,10 @@
+# Core stacks
+usb-storage ?
+
+# Block level
+
+# Loop modules
+cryptoloop ?
+
+# Needs to be here for better cdrom initrd layout
+isofs ?
diff --git a/debian.master/d-i/modules/usb-modules b/debian.master/d-i/modules/usb-modules
new file mode 100644
index 00000000000..8e245c263f4
--- /dev/null
+++ b/debian.master/d-i/modules/usb-modules
@@ -0,0 +1,9 @@
+ehci-hcd ?
+isp116x-hcd ?
+isp1760 ?
+ohci-hcd ?
+r8a66597-hcd ?
+sl811_cs ?
+sl811-hcd ?
+u132-hcd ?
+uhci-hcd ?
diff --git a/debian.master/d-i/modules/virtio-modules b/debian.master/d-i/modules/virtio-modules
new file mode 100644
index 00000000000..270e6ab24d0
--- /dev/null
+++ b/debian.master/d-i/modules/virtio-modules
@@ -0,0 +1,4 @@
+virtio_balloon ?
+virtio_pci ?
+virtio_ring ?
+virtio-rng ?
diff --git a/debian.master/d-i/modules/vlan-modules b/debian.master/d-i/modules/vlan-modules
new file mode 100644
index 00000000000..3d65a5592b5
--- /dev/null
+++ b/debian.master/d-i/modules/vlan-modules
@@ -0,0 +1,3 @@
+slp ?
+garp ?
+8021q ?
diff --git a/debian.master/d-i/package-list b/debian.master/d-i/package-list
new file mode 100644
index 00000000000..042ce87b758
--- /dev/null
+++ b/debian.master/d-i/package-list
@@ -0,0 +1,190 @@
+Package: kernel-image
+
+Package: char-modules
+Depends: kernel-image
+Priority: standard
+Description: Character module support
+
+Package: fat-modules
+Depends: kernel-image
+Priority: standard
+Description: FAT filesystem support
+ This includes Windows FAT and VFAT support.
+
+Package: fb-modules
+Depends: kernel-image
+Priority: standard
+Description: Framebuffer modules
+
+Package: firewire-core-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: Firewire (IEEE-1394) Support
+
+Package: floppy-modules
+Depends: kernel-image
+Priority: standard
+Description: Floppy driver support
+
+Package: fs-core-modules
+Depends: kernel-image
+Priority: standard
+Provides: jfs-modules, reiserfs-modules, xfs-modules
+Description: Base filesystem modules
+ This includes jfs, reiserfs and xfs.
+
+Package: fs-secondary-modules
+Depends: kernel-image, fat-modules
+Priority: standard
+Provides: ntfs-modules, hfs-modules
+Description: Extra filesystem modules
+ This includes support for Windows NTFS and MacOS HFS/HFSPlus
+
+Package: input-modules
+Depends: kernel-image, usb-modules
+Priority: standard
+Description: Support for various input methods
+
+Package: irda-modules
+Depends: kernel-image, nic-shared-modules
+Priority: standard
+Description: Support for Infrared protocols
+
+Package: md-modules
+Depends: kernel-image
+Priority: standard
+Description: Multi-device support (raid, device-mapper, lvm)
+
+Package: nic-modules
+Depends: kernel-image, nic-shared-modules, virtio-modules
+Priority: standard
+Description: Network interface support
+
+Package: nic-pcmcia-modules
+Depends: kernel-image, nic-shared-modules, nic-modules
+Priority: standard
+Description: PCMCIA network interface support
+
+Package: nic-usb-modules
+Depends: kernel-image, nic-shared-modules, usb-modules
+Priority: standard
+Description: USB network interface support
+
+Package: nic-shared-modules
+Depends: kernel-image, crypto-modules
+Priority: standard
+Description: nic shared modules
+ This package contains modules which support nic modules
+
+Package: parport-modules
+Depends: kernel-image
+Priority: standard
+Description: Parallel port support
+
+Package: pata-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: PATA support modules
+
+Package: pcmcia-modules
+Depends: kernel-image
+Priority: standard
+Description: PCMCIA Modules
+
+Package: pcmcia-storage-modules
+Depends: kernel-image, scsi-modules
+Priority: standard
+Description: PCMCIA storage support
+
+Package: plip-modules
+Depends: kernel-image, nic-shared-modules, parport-modules
+Priority: standard
+Description: PLIP (parallel port) networking support
+
+Package: ppp-modules
+Depends: kernel-image, nic-shared-modules, serial-modules
+Priority: standard
+Description: PPP (serial port) networking support
+
+Package: sata-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: SATA storage support
+
+Package: scsi-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: SCSI storage support
+
+Package: serial-modules
+Depends: kernel-image
+Priority: standard
+Description: Serial port support
+
+Package: storage-core-modules
+Depends: kernel-image
+Priority: standard
+Provides: loop-modules
+Description: Core storage support
+ Includes core SCSI, LibATA, USB-Storage. Also includes related block
+ devices for CD, Disk and Tape medium (and IDE Floppy).
+
+Package: usb-modules
+Depends: kernel-image, storage-core-modules
+Priority: standard
+Description: Core USB support
+
+Package: nfs-modules
+Priority: standard
+Depends: kernel-image
+Description: NFS filesystem drivers
+ Includes the NFS client driver, and supporting modules.
+
+Package: block-modules
+Priority: standard
+Depends: kernel-image, storage-core-modules, parport-modules, virtio-modules
+Description: Block storage devices
+ This package contains the block storage devices, including DAC960 and
+ paraide.
+
+Package: message-modules
+Priority: standard
+Depends: kernel-image, storage-core-modules, scsi-modules
+Description: Fusion and i2o storage modules
+ This package containes the fusion and i2o storage modules.
+
+Package: crypto-modules
+Priority: extra
+Depends: kernel-image
+Description: crypto modules
+ This package contains crypto modules.
+
+Package: virtio-modules
+Priority: standard
+Depends: kernel-image
+Description: VirtIO Modules
+ Includes modules for VirtIO (virtual machine, generally kvm guests)
+
+Package: socket-modules
+Depends: kernel-image
+Priority: standard
+Description: Unix socket support
+
+Package: mouse-modules
+Depends: kernel-image, input-modules, usb-modules
+Priority: extra
+Description: Mouse support
+ This package contains mouse drivers for the Linux kernel.
+
+Package: squashfs-modules
+Depends: kernel-image
+Priority: extra
+Description: squashfs modules
+ This package contains squashfs modules.
+
+Package: vlan-modules
+Depends: kernel-image
+Priority: extra
+Description: vlan modules
+ This package contains vlan (8021.Q) modules.
+
diff --git a/debian.master/etc/getabis b/debian.master/etc/getabis
new file mode 100644
index 00000000000..89b56744c27
--- /dev/null
+++ b/debian.master/etc/getabis
@@ -0,0 +1,15 @@
+repo_list=(
+ "http://archive.ubuntu.com/ubuntu/pool/main/l/linux"
+ "http://ports.ubuntu.com/ubuntu-ports/pool/main/l/linux"
+ "http://archive.ubuntu.com/ubuntu/pool/universe/l/linux"
+ "http://ports.ubuntu.com/ubuntu-ports/pool/universe/l/linux"
+)
+
+getall armel versatile omap
+getall amd64 generic server virtual
+getall i386 generic generic-pae virtual
+
+# Ports arches and flavours.
+getall powerpc powerpc powerpc-smp powerpc64-smp
+getall ia64 ia64
+getall sparc sparc64 sparc64-smp
diff --git a/debian.master/etc/kernelconfig b/debian.master/etc/kernelconfig
new file mode 100644
index 00000000000..603034379a2
--- /dev/null
+++ b/debian.master/etc/kernelconfig
@@ -0,0 +1,7 @@
+if [ "$variant" = "ports" ]; then
+ archs="sparc powerpc ia64"
+ family='ports'
+else
+ archs="amd64 i386 armel"
+ family='ubuntu'
+fi
diff --git a/debian.master/rules.d/amd64.mk b/debian.master/rules.d/amd64.mk
new file mode 100644
index 00000000000..37ab0b11819
--- /dev/null
+++ b/debian.master/rules.d/amd64.mk
@@ -0,0 +1,9 @@
+build_arch = x86_64
+header_arch = $(build_arch)
+asm_link = x86
+defconfig = defconfig
+flavours = generic server virtual
+build_image = bzImage
+kernel_file = arch/$(build_arch)/boot/bzImage
+install_file = vmlinuz
+loader = grub
diff --git a/debian.master/rules.d/armel.mk b/debian.master/rules.d/armel.mk
new file mode 100644
index 00000000000..8117cc7b401
--- /dev/null
+++ b/debian.master/rules.d/armel.mk
@@ -0,0 +1,11 @@
+build_arch = arm
+header_arch = arm
+asm_link = arm
+defconfig = defconfig
+flavours = versatile omap
+build_image = zImage
+kernel_file = arch/$(build_arch)/boot/zImage
+install_file = vmlinuz
+no_dumpfile = true
+
+loader = grub
diff --git a/debian.master/rules.d/i386.mk b/debian.master/rules.d/i386.mk
new file mode 100644
index 00000000000..0e91a231006
--- /dev/null
+++ b/debian.master/rules.d/i386.mk
@@ -0,0 +1,9 @@
+build_arch = i386
+header_arch = x86_64
+asm_link = x86
+defconfig = defconfig
+flavours = generic generic-pae virtual
+build_image = bzImage
+kernel_file = arch/$(build_arch)/boot/bzImage
+install_file = vmlinuz
+loader = grub
diff --git a/debian.master/rules.d/ia64.mk b/debian.master/rules.d/ia64.mk
new file mode 100644
index 00000000000..b76d3c1c83a
--- /dev/null
+++ b/debian.master/rules.d/ia64.mk
@@ -0,0 +1,21 @@
+build_arch = ia64
+header_arch = $(build_arch)
+asm_link = $(build_arch)
+defconfig = defconfig
+flavours = ia64
+build_image = vmlinux
+kernel_file = $(build_image)
+install_file = vmlinuz
+compress_file = yes
+
+loader = elilo
+
+skipdbg = true
+no_dumpfile = true
+skipabi = true
+skipmodule = true
+
+# XXX: ia64 libelf-dev/binutils-dev dependancy does not supply libraries?!?
+do_tools = false
+
+family=ports
diff --git a/debian.master/rules.d/powerpc.mk b/debian.master/rules.d/powerpc.mk
new file mode 100644
index 00000000000..d7a3e7b7da8
--- /dev/null
+++ b/debian.master/rules.d/powerpc.mk
@@ -0,0 +1,19 @@
+build_arch = powerpc
+header_arch = $(build_arch)
+asm_link = $(build_arch)
+defconfig = pmac32_defconfig
+flavours = powerpc powerpc-smp powerpc64-smp
+build_image = vmlinux
+kernel_file = $(build_image)
+install_file = $(build_image)
+
+loader = yaboot
+
+custom_flavours =
+
+no_dumpfile = true
+skipdbg = true
+skipabi = true
+skipmodule = true
+
+family=ports
diff --git a/debian.master/rules.d/sparc.mk b/debian.master/rules.d/sparc.mk
new file mode 100644
index 00000000000..9912665891f
--- /dev/null
+++ b/debian.master/rules.d/sparc.mk
@@ -0,0 +1,18 @@
+build_arch = sparc64
+header_arch = $(build_arch)
+asm_link = $(build_arch)
+defconfig = defconfig
+flavours = sparc64 sparc64-smp
+build_image = image
+kernel_file = arch/sparc/boot/image
+install_file = vmlinuz
+compress_file = Yes
+
+loader = silo
+
+skipdbg = true
+no_dumpfile = true
+skipabi = true
+skipmodule = true
+
+family=ports
diff --git a/debian/commit-templates/bumpabi b/debian/commit-templates/bumpabi
new file mode 100644
index 00000000000..6c373c9726b
--- /dev/null
+++ b/debian/commit-templates/bumpabi
@@ -0,0 +1,3 @@
+UBUNTU: Bump ABI
+
+Ignore: yes
diff --git a/debian/commit-templates/config-updates b/debian/commit-templates/config-updates
new file mode 100644
index 00000000000..4b62c299965
--- /dev/null
+++ b/debian/commit-templates/config-updates
@@ -0,0 +1,15 @@
+#
+# This template is used for commit messages that don't need to
+# show up in debian/changelog. Administrative stuff like config
+# updates, ABI bumps, etc. Setting 'Ignore: yes' prevents
+# 'debian/rules insertchanges' from inserting this commit meesage
+# as a changelog entry.
+#
+# Please give a one-line description of the config change followed
+# by a detailed explanation if necessary
+
+UBUNTU: [Config] XXXX
+
+# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
+# Ignore: yes
+# Other text below here.
diff --git a/debian/commit-templates/external-driver b/debian/commit-templates/external-driver
new file mode 100644
index 00000000000..decdc897bdd
--- /dev/null
+++ b/debian/commit-templates/external-driver
@@ -0,0 +1,20 @@
+# Ubuntu external driver commit.
+#
+# NOTE: This gets reformatted for README.Ubuntu-External-Drivers and
+# debian/changelog.
+#
+# This is only needed when a driver is added, updated or removed. It is
+# not needed when patches or fixes are applied to the driver. If the
+# driver is being removed, add the line:
+#
+# Removing: yes
+#
+# to the commit, and you can remove all other tags (except UBUNTU:).
+#
+UBUNTU:
+
+ExternalDriver:
+Description:
+Url:
+Mask:
+Version:
diff --git a/debian/commit-templates/missing-modules b/debian/commit-templates/missing-modules
new file mode 100644
index 00000000000..f4872e7568c
--- /dev/null
+++ b/debian/commit-templates/missing-modules
@@ -0,0 +1,3 @@
+UBUNTU: build/modules: Add modules that have intentionally gone missing
+
+Ignore: yes
diff --git a/debian/commit-templates/newrelease b/debian/commit-templates/newrelease
new file mode 100644
index 00000000000..5f8931c40cd
--- /dev/null
+++ b/debian/commit-templates/newrelease
@@ -0,0 +1,3 @@
+UBUNTU: Start new release
+
+Ignore: yes
diff --git a/debian/commit-templates/sauce-patch b/debian/commit-templates/sauce-patch
new file mode 100644
index 00000000000..08720a8c20f
--- /dev/null
+++ b/debian/commit-templates/sauce-patch
@@ -0,0 +1,40 @@
+# Ubuntu commit template.
+#
+# NOTE: This gets reformatted for debian/changelog
+#
+#
+# SAUCE refers to the fact that this patch might not go upstream, but we need to
+# carry it to successive releases. In most cases you DONOT want to use this
+# template.
+#
+# An example of a SAUCE patch is the ACPI DSDT-in-initramfs patch which has been
+# refused upstream, but still provides useful functionality to users with broken
+# BIOSes.
+#
+#-------------------------------------------------------------------------
+#
+# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be
+# referenced to the Author in the debian/changelog entry.
+#
+# The text following is the short message that will be placed in the
+# changelog. Extra text on the following lines will be ignored, but left
+# in the git commit. Lines with # will be ignored in the commit.
+#
+# OriginalAuthor allows for alternate attribution.
+#
+# OriginalLocation allows for a URL or description of where the patch came
+# from.
+#
+# BugLink is a URL to a Malone bug.
+#
+# Ignore: yes will keep this commit from showing up in the changelog.
+#
+UBUNTU: SAUCE:
+
+<Why is this patch not going upstream?>
+
+# OriginalAuthor:
+# OriginalLocation:
+# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
+# Ignore: yes
+# Other text below here.
diff --git a/debian/commit-templates/upstream-patch b/debian/commit-templates/upstream-patch
new file mode 100644
index 00000000000..671ab6a0921
--- /dev/null
+++ b/debian/commit-templates/upstream-patch
@@ -0,0 +1,27 @@
+# Ubuntu commit template.
+#
+# NOTE: This gets reformatted for debian/changelog
+#
+# The initial UBUNTU is a flag that this is an Ubuntu commit. It will be
+# referenced to the Author in the debian/changelog entry.
+#
+# The text following is the short message that will be placed in the
+# changelog. Extra text on the following lines will be ignored, but left
+# in the git commit. Lines with # will be ignored in the commit.
+#
+# OriginalAuthor allows for alternate attribution.
+#
+# OriginalLocation allows for a URL or description of where the patch came
+# from.
+#
+# BugLink is a URL to a Malone bug.
+#
+# Ignore: yes will keep this commit from showing up in the changelog.
+#
+UBUNTU: [Upstream]
+
+# OriginalAuthor:
+# OriginalLocation:
+# BugLink: http://bugs.launchpad.net/bugs/<enter bug# here>
+# Ignore: yes
+# Other text below here.
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 00000000000..7ed6ff82de6
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+5
diff --git a/debian/config/enforce b/debian/config/enforce
new file mode 100644
index 00000000000..64cae67ef0c
--- /dev/null
+++ b/debian/config/enforce
@@ -0,0 +1,47 @@
+#
+# SECURITY items
+#
+# Ensure this option is enabled.
+value CONFIG_COMPAT_BRK n
+value CONFIG_DEVKMEM n
+value CONFIG_LSM_MMAP_MIN_ADDR 0
+value CONFIG_SECURITY y
+!exists CONFIG_SECURITY_FILE_CAPABILITIES | value CONFIG_SECURITY_FILE_CAPABILITIES y
+value CONFIG_SECURITY_SELINUX y
+value CONFIG_SECURITY_SMACK y
+value CONFIG_SYN_COOKIES y
+value CONFIG_DEFAULT_SECURITY_APPARMOR y
+# For architectures which support this option ensure it is enabled.
+!exists CONFIG_SECCOMP | value CONFIG_SECCOMP y
+!exists CONFIG_CC_STACKPROTECTOR | value CONFIG_CC_STACKPROTECTOR y
+!exists CONFIG_DEBUG_RODATA | value CONFIG_DEBUG_RODATA y
+!exists CONFIG_STRICT_DEVMEM | value CONFIG_STRICT_DEVMEM y
+# For architectures which support this option ensure it is disabled.
+!exists CONFIG_COMPAT_VDSO | value CONFIG_COMPAT_VDSO n
+# Default to 32768 for armel, 65536 for everything else.
+(( arch armel | arch sparc ) & value CONFIG_DEFAULT_MMAP_MIN_ADDR 32768 ) | \
+ ( value CONFIG_DEFAULT_MMAP_MIN_ADDR 65536)
+
+# CONFIG_USB_DEVICE_FS breaks udev USB firmware loading and is deprecated
+# ensure it is disabled.
+value CONFIG_USB_DEVICEFS n
+
+# upstart requires DEVTMPFS be enabled and mounted by default.
+value CONFIG_DEVTMPFS y
+value CONFIG_DEVTMPFS_MOUNT y
+
+# some /dev nodes require POSIX ACLs, like /dev/dsp
+value CONFIG_TMPFS_POSIX_ACL y
+
+# Ramdisk size should be a minimum of 64M
+value CONFIG_BLK_DEV_RAM_SIZE 65536
+
+# LVM requires dm_mod built in to activate correctly (LP: #560717)
+value CONFIG_BLK_DEV_DM y
+
+# sysfs: ensure all DEPRECATED items are off
+value CONFIG_SYSFS_DEPRECATED_V2 n
+!exists CONFIG_SYSFS_DEPRECATED | value CONFIG_SYSFS_DEPRECATED n
+
+# automatically add local version will cause packaging failure
+value CONFIG_LOCALVERSION_AUTO n
diff --git a/debian/control-scripts/headers-postinst b/debian/control-scripts/headers-postinst
new file mode 100644
index 00000000000..2fb2be858a4
--- /dev/null
+++ b/debian/control-scripts/headers-postinst
@@ -0,0 +1,126 @@
+#!/usr/bin/perl
+# -*- Mode: Cperl -*-
+# debian.postinst ---
+# Author : Manoj Srivastava ( srivasta@pilgrim.umass.edu )
+# Created On : Sat Apr 27 05:42:43 1996
+# Created On Node : melkor.pilgrim.umass.edu
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Sat Aug 5 13:20:22 2006
+# Last Machine Used: glaurung.internal.golden-gryphon.com
+# Update Count : 45
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+#
+#
+# arch-tag: 1c716174-2f0a-476d-a626-a1322e62503a
+#
+
+
+$|=1;
+
+# Predefined values:
+my $version = "=V";
+my $kimage = "=K";
+my $package_name = "linux-image-$version";
+
+
+# Ignore all invocations uxcept when called on to configure.
+exit 0 unless ($ARGV[0] && $ARGV[0] =~ /configure/);
+
+#known variables
+my $image_dest = "/";
+my $realimageloc = "/boot/";
+my $silent_modules = '';
+my $modules_base = '/lib/modules';
+my $CONF_LOC = '/etc/kernel-img.conf';
+# remove multiple leading slashes; make sure there is at least one.
+$realimageloc =~ s|^/*|/|o;
+$realimageloc =~ s|/+|/|o;
+
+chdir '/usr/src' or die "Could not chdir to /usr/src:$!";
+
+if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
+ if (open(CONF, "$CONF_LOC")) {
+ while (<CONF>) {
+ chomp;
+ s/\#.*$//g;
+ next if /^\s*$/;
+
+ $header_postinst_hook = "$1" if /^\s*header_postinst_hook\s*=\s*(\S+)/ig;
+ }
+ close CONF;
+ }
+}
+
+sub exec_script {
+ my $type = shift;
+ my $script = shift;
+ print STDERR "Running $type hook script $script.\n";
+ system ("$script $version $realimageloc$kimage-$version") &&
+ print STDERR "User $type hook script [$script] ";
+ if ($?) {
+ if ($? == -1) {
+ print STDERR "failed to execute: $!\n";
+ }
+ elsif ($? & 127) {
+ printf STDERR "died with signal %d, %s coredump\n",
+ ($? & 127), ($? & 128) ? 'with' : 'without';
+ }
+ else {
+ printf STDERR "exited with value %d\n", $? >> 8;
+ }
+ exit $? >> 8;
+ }
+}
+sub run_hook {
+ my $type = shift;
+ my $script = shift;
+ if ($script =~ m,^/,) {
+ # Full path provided for the hook script
+ if (-x "$script") {
+ &exec_script($type,$script);
+ }
+ else {
+ die "The provided $type hook script [$script] could not be run.\n";
+ }
+ }
+ else {
+ # Look for it in a safe path
+ for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
+ if (-x "$path/$script") {
+ &exec_script($type, "$path/$script");
+ return 0;
+ }
+ }
+ # No luck
+ print STDERR "Could not find $type hook script [$script].\n";
+ die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
+ }
+}
+
+## Run user hook script here, if any
+if (-x "$header_postinst_hook") {
+ &run_hook("postinst", $header_postinst_hook);
+}
+
+if (-d "/etc/kernel/header_postinst.d") {
+ print STDERR "Examining /etc/kernel/header_postinst.d.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/header_postinst.d") &&
+ die "Failed to process /etc/kernel/header_postinst.d";
+}
+
+if (-d "/etc/kernel/header_postinst.d/$version") {
+ print STDERR "Examining /etc/kernel/header_postinst.d/$version.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/header_postinst.d/$version") &&
+ die "Failed to process /etc/kernel/header_postinst.d/$version";
+}
+
+exit 0;
+
+__END__
diff --git a/debian/control-scripts/postinst b/debian/control-scripts/postinst
new file mode 100644
index 00000000000..b1baa710da7
--- /dev/null
+++ b/debian/control-scripts/postinst
@@ -0,0 +1,1088 @@
+#! /usr/bin/perl
+# OriginalAuthor : Manoj Srivastava ( srivasta@pilgrim.umass.edu )
+#
+# Customized for Ubuntu by: Ben Collins <bcollins@ubuntu.com>
+
+#use strict; #for debugging
+use Cwd 'abs_path';
+
+$|=1;
+
+# Predefined values:
+my $version = "=V";
+my $link_in_boot = ""; # Should be empty, mostly
+my $no_symlink = ""; # Should be empty, mostly
+my $reverse_symlink = ""; # Should be empty, mostly
+my $do_symlink = "Yes"; # target machine defined
+my $do_boot_enable = "Yes"; # target machine defined
+my $do_bootfloppy = "Yes"; # target machine defined
+my $do_bootloader = "Yes"; # target machine defined
+my $move_image = ''; # target machine defined
+my $kimage = "=K"; # Should be empty, mostly
+my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, nettrom, arcboot or delo
+my $image_dir = "/boot"; # where the image is located
+my $clobber_modules = ''; # target machine defined
+my $relative_links = ""; # target machine defined
+my $initrd = "YES"; # initrd kernel
+my $do_initrd = ''; # Normally we do not
+my $use_hard_links = ''; # hardlinks do not work across fs boundaries
+my $postinst_hook = ''; #Normally we do not
+my $postrm_hook = ''; #Normally we do not
+my $preinst_hook = ''; #Normally we do not
+my $prerm_hook = ''; #Normally we do not
+my $minimal_swap = ''; # Do not swap symlinks
+my $ignore_depmod_err = ''; # normally we do not
+my $kernel_arch = "=B";
+my $ramdisk = "/usr/sbin/update-initramfs"; # List of tools to create initial ram fs.
+my $notifier = "/usr/share/update-notifier/notify-reboot-required";
+my $package_name = "linux-image-$version";
+my $explicit_do_loader = 'Yes';
+
+my $Loader = "NoLOADER"; #
+$Loader = "LILO" if $loader =~ /^lilo/io;
+$Loader = "SILO" if $loader =~ /^silo/io;
+$Loader = "QUIK" if $loader =~ /^quik/io;
+$Loader = "yaboot" if $loader =~ /^yaboot/io;
+$Loader = "PALO" if $loader =~ /^palo/io;
+$Loader = "NETTROM" if $loader =~ /^nettrom/io;
+$Loader = "VMELILO" if $loader =~ /^vmelilo/io;
+$Loader = "ZIPL" if $loader =~ /^zipl/io;
+$Loader = "ELILO" if $loader =~ /^elilo/io;
+$Loader = "ARCBOOT" if $loader =~ /^arcboot/io;
+$Loader = "DELO" if $loader =~ /^delo/io;
+
+# This should not point to /tmp, because of security risks.
+my $temp_file_name = "/var/log/$loader" . "_log.$$";
+
+#known variables
+my $image_dest = "/";
+my $realimageloc = "/$image_dir/";
+my $have_conffile = "";
+my $silent_modules = '';
+my $silent_loader = '';
+my $warn_reboot = 'Yes'; # Warn that we are installing a version of
+ # the kernel we are running
+
+my $modules_base = '/lib/modules';
+my $CONF_LOC = '/etc/kernel-img.conf';
+
+# Ignore all invocations except when called on to configure.
+exit 0 unless $ARGV[0] =~ /configure/;
+
+my $DEBUG = 0;
+
+# Do some preliminary sanity checks here to ensure we actually have an
+# valid image dir
+chdir('/') or die "could not chdir to /:$!\n";
+die "Internal Error: ($image_dir) is not a directory!\n"
+ unless -d $image_dir;
+
+# remove multiple leading slashes; make sure there is at least one.
+$realimageloc =~ s|^/*|/|o;
+$realimageloc =~ s|/+|/|o;
+die "Internal Error: ($realimageloc) is not a directory!\n"
+ unless -d $realimageloc;
+
+if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
+ if (open(CONF, "$CONF_LOC")) {
+ while (<CONF>) {
+ chomp;
+ s/\#.*$//g;
+ next if /^\s*$/;
+
+ $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $reverse_symlink = "" if /^\s*reverse_symlink\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig;
+ $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig;
+ $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig;
+ $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig;
+ $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig;
+ $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig;
+ $explicit_do_loader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig;
+ $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig;
+ $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig;
+ $silent_modules = '' if /^\s*silent_modules\s*=\s*(no|false|0)\s*$/ig;
+ $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig;
+ $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig;
+ $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig;
+ $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig;
+
+ $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig;
+ $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig;
+ $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig;
+ $explicit_do_loader = "YES" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig;
+ $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig;
+ $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig;
+ $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig;
+ $silent_modules = 'Yes' if /^\s*silent_modules\s*=\s*(yes|true|1)\s*$/ig;
+ $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig;
+ $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig;
+ $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig;
+ $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig;
+
+ $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig;
+ $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig;
+ $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig;
+ $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig;
+ $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig;
+ $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig;
+ }
+ close CONF;
+ $have_conffile = "Yes";
+ }
+}
+
+
+
+# For some versions of kernel-package, we had this warning in the
+# postinst, but the rules did not really interpolate the value in.
+# Here is a sanity check.
+my $pattern = "=" . "I";
+$initrd=~ s/^$pattern$//;
+
+if ($link_in_boot) {
+ $image_dest = "/$image_dir/"; # same as realimageloc
+}
+
+# Tack on at least one trainling /
+$image_dest = "$image_dest/";
+$image_dest =~ s|^/*|/|o;
+$image_dest =~ s|/+$|/|o;
+
+if (! -d "$image_dest") {
+ die "Expected Image Destination dir ($image_dest) to be a valid directory!\n";
+}
+
+# sanity
+if (!($do_bootfloppy || $do_bootloader)) {
+ $do_boot_enable = '';
+}
+if ($do_symlink && $no_symlink) {
+ warn "Both do_symlinks and no_symlinks options enabled; disabling no_symlinks\n";
+ $no_symlink = 0;
+}
+
+# most of our work is done in $image_dest (nominally /)
+chdir("$image_dest") or die "could not chdir to $image_dest:$!\n";
+
+# Paranoid check to make sure that the correct value is put in there
+if (! $kimage) { $kimage = "vmlinuz"; } # Hmm. empty
+elsif ($kimage =~ m/^b?uImage$/o) { $kimage = "vmlinuz"; } # these produce vmlinuz
+elsif ($kimage =~ m/^b?zImage$/o) { $kimage = "vmlinuz"; } # these produce vmlinuz
+elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage; }
+elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage; }
+else { $kimage = "vmlinuz"; } # Default
+
+$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch;
+
+
+die "Internal Error: Could not find image (" . $realimageloc
+ . "$kimage-$version)\n" unless -e $realimageloc
+ . "$kimage-$version";
+
+# search for the boot loader in the path
+my $loader_exec;
+($loader_exec = $loader) =~ s|.*/||;
+my ($loaderloc) = grep -x, map "$_/$loader_exec",
+ map { length($_) ? $_ : "." } split /:/, $ENV{PATH};
+
+
+######################################################################
+######################################################################
+########### Test whether a relative symlinkwould be OK #######
+######################################################################
+######################################################################
+sub test_relative {
+ my %params = @_;
+ my $cwd;
+
+ die "Internal Error: Missing Required paramater 'Old Dir' "
+ unless $params{'Old Dir'};
+ die "Internal Error: Missing Required paramater New Dir' "
+ unless $params{'New Dir'};
+
+
+ die "Internal Error: No such dir $params{'Old Dir'} "
+ unless -d $params{'Old Dir'};
+ die "Internal Error: No such dir $params{'New Dir'} "
+ unless -d $params{'New Dir'};
+
+ warn "Test relative: testing $params{'Old Dir'} -> $params{'New Dir'}"
+ if $DEBUG;
+ chomp($cwd = `pwd`);
+ chdir ($params{'New Dir'}) or die "Could not chdir to $params{'New Dir'}:$!";
+ my $ok = 0;
+ $params{'Old Dir'} =~ s|^/*||o;
+ if (-d $params{'Old Dir'} ) {
+ if (defined $params{'Test File'}) {
+ if (-e $params{'Old Dir'} . $params{'Test File'}) {
+ $ok = 1;
+ }
+ } else {
+ $ok = 1; # well, backward compatibility
+ }
+ }
+ chdir ($cwd) or die "Could not chdir to $params{'New Dir'}:$!";
+ return $ok;
+}
+
+######################################################################
+######################################################################
+############
+######################################################################
+######################################################################
+# sub CanonicalizePath {
+# my $path = join '/', @_;
+# my @work = split '/', $path;
+# my @out;
+# my $is_absolute;
+
+# if (@work && $work[0] eq "") {
+# $is_absolute = 1; shift @work;
+# }
+
+# while (@work) {
+# my $seg = shift @work;
+# if ($seg eq "." || $seg eq "") {
+# }
+# elsif ($seg eq "..") {
+# if (@out && $out[-1] ne "..") {
+# pop @out;
+# }
+# else {
+# # Leading "..", or "../..", etc.
+# push @out, $seg;
+# }
+# }
+# else {
+# push @out, $seg;
+# }
+# }
+
+# unshift @out, "" if $is_absolute;
+# return join('/', @out);
+# }
+######################################################################
+######################################################################
+############
+######################################################################
+######################################################################
+
+sub spath {
+ my %params = @_;
+
+ die "Missing Required paramater 'Old'" unless $params{'Old'};
+ die "Missing Required paramater 'New'" unless $params{'New'};
+
+ my @olddir = split '/', `readlink -q -m $params{'Old'}`;
+ my @newdir = split '/', `readlink -q -m $params{'New'}`;
+ my @outdir = @olddir;
+
+ my $out = '';
+ my $i;
+ for ($i = 0; $i <= $#olddir && $i <= $#newdir; $i++) {
+ $out++ if ($olddir[$i] ne $newdir[$i]);
+ shift @outdir unless $out;
+ unshift @outdir, ".." if $out;
+ }
+ if ($#newdir > $#olddir) {
+ for ($i=0; $i < $#newdir; $i++) {
+ unshift @outdir, "..";
+ }
+ }
+ return join ('/', @outdir);
+}
+######################################################################
+######################################################################
+############
+######################################################################
+######################################################################
+
+
+# This routine actually moves the kernel image
+# From: $realimageloc/$kimage-$version (/boot/vmlinuz-2.6.12)
+# To: $image_dest/$kimage-$version (/vmlinuz-2.6.12)
+# Note that the image is moved to a versioned destination, but ordinary
+# symlinks we create otherwise are not normally versioned
+sub really_move_image {
+ my $src_dir = $_[0];
+ my $target = $_[1];
+ my $dest_dir = $_[2];
+
+ warn "Really move image: src_dir=$src_dir, target=$target,\n destdir=$dest_dir"
+ if $DEBUG;
+ if (-e "$target") {
+ # we should be in dir $dest_dir == $image_dest /, normally
+ rename("$target", "$target.$$") ||
+ die "failed to move " . $dest_dir . "$target:$!";
+ warn "mv $target $target.$$" if $DEBUG;
+ }
+ warn "mv -f $src_dir$target $target" if $DEBUG;
+ my $ret = system("mv -f " . $src_dir . "$target " .
+ " $target");
+ if ($ret) {
+ die("Failed to move " . $src_dir . "$target to "
+ . $dest_dir . "$target.\n");
+ }
+ # Ok, now we may clobber the previous .old files
+ if (-e "$target.$$") {
+ rename("$target.$$", "$target.old") ||
+ die "failed to move " . $dest_dir . "$target:$!";
+ warn "mv $target.$$ $target " if $DEBUG;
+ }
+}
+
+# Normally called after really_move_image; and only called if we asked for
+# reversed link this routine reverses the symbolic link that is notmally
+# created. Since the real kernel image has been moved over to
+# $image_dest/$kimage-$version. So, this routine links
+# From: $image_dest/$kimage-$version (/vmlinuz-2.6.12)
+# To: $realimageloc/$kimage-$version (/boot/vmlinuz-2.6.12)
+sub really_reverse_link {
+ my $src_dir = $_[0];
+ my $link_name = $_[1];
+ my $dest_dir = $_[2];
+ warn "Really reverse link: src_dir=$src_dir, link name=$link_name\n" .
+ "\tdestdir=$dest_dir" if $DEBUG;
+
+ my $Old = $dest_dir;
+ if (test_relative ('Old Dir' => $Old, 'New Dir' => $src_dir,
+ 'Test File' => "$link_name")) {
+ $Old =~ s|^/*||o;
+ }
+ # Special case is they are in the same dir
+ my $rel_path = spath('Old' => "$Old", 'New' => "$src_dir" );
+ $Old ="" if $rel_path =~ m/^\s*$/o;
+
+ if ($use_hard_links =~ m/YES/i) {
+ link($Old . "$link_name", $src_dir . "$link_name") ||
+ die("Failed to link " . $dest_dir . "$link_name to " . $src_dir .
+ "$link_name .\n");
+ warn "ln " . $Old . "$link_name " . $src_dir . "$link_name" if $DEBUG;
+ }
+ else {
+ symlink($Old . "$link_name", $src_dir . "$link_name") ||
+ die("Failed to symbolic-link " . $dest_dir . "$link_name to " . $src_dir
+ . "$link_name : $!\n");
+ warn "ln -s " . $Old . "$link_name " . $src_dir . "$link_name" if $DEBUG;
+ }
+}
+
+# This routine is invoked if there is a symbolic link in place
+# in $image_dest/$kimage -- so a symlink exists in the destination.
+# What we are trying to determine is if we need to move the symbolic link over
+# to the the .old location
+sub move_p {
+ my $kimage = $_[0]; # Name of the symbolic link
+ my $image_dest = $_[1]; # The directory the links goes into
+ my $image_name = $_[2];
+ my $src_dir = $_[3];
+ my $force_move = 0;
+ warn "Move?: kimage=$kimage, image_dest=$image_dest, \n" .
+ "\timage_name=$image_name, src_dir=$src_dir" if $DEBUG;
+
+ if ($no_symlink || $reverse_symlink) {
+ # we do not want links, yet we have a symbolic link here!
+ warn "found a symbolic link in " . $image_dest . "$kimage \n" .
+ "even though no_symlink is defined\n" if $no_symlink;
+ warn "found a symbolic link in " . $image_dest . "$kimage \n" .
+ "even though reverse_symlink is defined\n" if $reverse_symlink;
+ # make sure we change this state of affairs
+ $force_move = 1;
+ return $force_move;
+ }
+
+ warn "DEBUG: OK. We found symlink, and we should have a symlink here.\n"
+ if $DEBUG;
+ my $vmlinuz_target = readlink "$kimage";
+ my $real_target = '';
+ my $target = `readlink -q -m "${realimageloc}${kimage-$version}"`;
+ $real_target = abs_path($vmlinuz_target) if defined($vmlinuz_target);
+
+ if (!defined($vmlinuz_target) || ! -f "$real_target") {
+ # what, a dangling symlink?
+ warn "The link " . $image_dest . "$kimage is a dangling link" .
+ "to $real_target\n";
+ $force_move = 1;
+ return $force_move;
+ }
+
+
+ warn "DEBUG: The link $kimage points to ($vmlinuz_target)\n" if $DEBUG;
+ warn "DEBUG: ($vmlinuz_target) is really ($real_target)\n" if $DEBUG;
+ my $cwd;
+ chomp ($cwd=`pwd`);
+ if ($vmlinuz_target !~ m|^/|o) {
+ $vmlinuz_target = $cwd . "/" . $vmlinuz_target;
+ $vmlinuz_target =~ s|/+|/|o;
+ }
+ $vmlinuz_target = `readlink -q -m $vmlinuz_target`;
+
+ if ("$vmlinuz_target" ne "$target") {
+ warn "DEBUG: We need to handle this.\n" if $DEBUG;
+ if ($minimal_swap) {
+ warn "DEBUG: Minimal swap.\n" if $DEBUG;
+ if (-l "$kimage.old") {
+ warn "DEBUG: There is an old link at $kimage.old\n" if $DEBUG;
+ my $old_target = readlink "$kimage.old";
+ my $real_old_target = '';
+ $real_old_target=abs_path($old_target) if defined ($old_target);
+
+ if ($real_old_target && -f "$real_old_target") {
+ if ($old_target !~ m|^/|o) {
+ $old_target = $cwd . "/" . $old_target;
+ $old_target =~ s|/+|/|o;
+ }
+ $old_target = `readlink -q -m $old_target`;
+ if ("$old_target" ne "$target") {
+ $force_move = 1;
+ warn "DEBUG: Old link ($old_target) does not point to us ($target)\n"
+ if $DEBUG;
+ }
+ else { # The .old points to the current
+ warn "$kimage.old --> $target -- doing nothing";
+ $force_move = 0;
+ }
+ }
+ else {
+ warn "DEBUG: Well, the old link does not exist -- so we move\n"
+ if $DEBUG;
+ $force_move = 1;
+ }
+ }
+ else {
+ warn "DEBUG: No .old link -- OK to move\n"
+ if $DEBUG;
+ $force_move = 1;
+ }
+ }
+ else {
+ warn "DEBUG: ok, minimal swap is no-- so we move.\n"
+ if $DEBUG;
+ $force_move = 1;
+ }
+ }
+ else { # already have proper link
+ warn "$kimage($vmlinuz_target) points to $target ($real_target) -- doing nothing";
+ $force_move = 0;
+ }
+ return $force_move;
+}
+
+
+# This routine moves the symbolic link around (/vmlinuz -> /vmlinuz.old)
+# It pays attention to whether we should the fact whether we should be using
+# hard links or not.
+sub really_move_link {
+ my $kimage = $_[0]; # Name of the symbolic link
+ my $image_dest = $_[1]; # The directory the links goes into
+ my $image_name = $_[2];
+ my $src_dir = $_[3];
+ warn "really_move_link: kimage=$kimage, image_dest=$image_dest\n" .
+ "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG;
+
+ # don't clobber $kimage.old quite yet
+ rename("$kimage", "$kimage.$$") ||
+ die "failed to move " . $image_dest . "$kimage:$!";
+ warn "mv $kimage $kimage.$$" if $DEBUG;
+ my $Old = $src_dir;
+ my $cwd;
+
+ chomp($cwd=`pwd`);
+ if (test_relative ('Old Dir' => $Old, 'New Dir' => $cwd,
+ 'Test File' => "$image_name")) {
+ $Old =~ s|^/*||o;
+ }
+ # Special case is they are in the same dir
+ my $rel_path = spath('Old' => "$Old", 'New' => "$cwd" );
+ $Old ="" if $rel_path =~ m/^\s*$/o;
+
+ if ($use_hard_links =~ m/YES/i) {
+ warn "ln ${Old}${image_name} $kimage" if $DEBUG;
+ if (! link("${Old}${image_name}", "$kimage")) {
+ rename("$kimage.$$", "$kimage");
+ die("Failed to link ${Old}${image_name} to " .
+ "${image_dest}${kimage}.\n");
+ }
+ }
+ else {
+ warn "ln -s ${Old}${image_name} $kimage" if $DEBUG;
+ if (! symlink("${Old}${image_name}", "$kimage")) {
+ rename("$kimage.$$", "$kimage");
+ die("Failed to symbolic-link ${Old}${image_name} to " .
+ "${image_dest}${kimage}: $!\n");
+ }
+ }
+
+ # Ok, now we may clobber the previous .old file
+ if (-l "$kimage.old" || ! -e "$kimage.old" ) {
+ rename("$kimage.$$", "$kimage.old");
+ warn "mv $kimage.$$ $kimage.old" if $DEBUG;
+ }
+ else {
+ warn "$kimage.old is not a symlink, not clobbering\n";
+ warn "rm $kimage.$$";
+ unlink "$kimage.$$" if $DEBUG;
+ }
+}
+
+# This routine handles a request to do symlinks, but there is no
+# symlink file already there. Either we are supposed to use copy, or we are
+# installing on a pristine system, or the user does not want symbolic links at
+# all. We use a configuration file to tell the last two cases apart, creating
+# a config file if needed.
+sub handle_missing_link {
+ my $kimage = $_[0]; # Name of the symbolic link
+ my $image_dest = $_[1]; # The directory the links goes into
+ my $image_name = $_[2];
+ my $src_dir = $_[3];
+ warn "handle_missing_link: kimage=$kimage, image_dest=$image_dest\n" .
+ "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG;
+
+ if ($no_symlink) {
+ warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG;
+ my $ret = system("cp -a --backup=t " . $realimageloc .
+ "$image_name " . " $kimage");
+ if ($ret) {
+ die("Failed to copy " . $realimageloc . "$image_name to "
+ . $image_dest . "$kimage .\n");
+ }
+ }
+ elsif ($reverse_symlink) {
+ warn "mv -f $realimageloc$image_name $kimage" if $DEBUG;
+ my $ret = system("mv -f " . $realimageloc . "$image_name "
+ . "$kimage");
+ if ($ret) {
+ die("Failed to move " . $realimageloc . "$image_name to "
+ . $image_dest . "$kimage .\n");
+ }
+ }
+ else {
+ if (! $have_conffile) {
+ my $ret;
+ my $answer='';
+ $do_symlink = "Yes";
+
+ if (open(CONF, ">$CONF_LOC")) {
+ print CONF "# Kernel Image management overrides\n";
+ print CONF "# See kernel-img.conf(5) for details\n";
+ if ($loader =~ /palo/i) {
+ print CONF "link_in_boot = Yes\n";
+ print CONF "do_symlinks = Yes\n";
+ print CONF "relative_links = Yes\n";
+ print CONF "do_bootloader = No\n";
+ } else {
+ print CONF "do_symlinks = $do_symlink\n";
+ }
+ close CONF;
+ }
+ $have_conffile = "Yes";
+ }
+ }
+
+ if (! $no_symlink && $do_symlink =~ /Yes/i) {
+ my $Old = $realimageloc;
+ my $New = $image_dest;
+ my $Name = "$image_name";
+ my $Link_Dest = "$kimage";
+
+ if ($reverse_symlink) {
+ $Old = $image_dest;
+ $New = $realimageloc;
+ $Name = "$kimage";
+ $Link_Dest = $realimageloc . "$image_name";
+ }
+ if (test_relative ('Old Dir' => $Old,
+ 'New Dir' => $New,
+ 'Test File' => $Name)) {
+ $Old =~ s|^/*||o;
+ }
+ # Special case is they are in the same dir
+ my $rel_path = spath('Old' => "$Old", 'New' => "$New" );
+ $Old ="" if $rel_path =~ m/^\s*$/o;
+
+ symlink($Old . "$Name", "$Link_Dest") ||
+ die("Failed to symbolic-link ${Old}$Name to $Link_Dest: $!\n");
+ warn "ln -s ${Old}$Name $Link_Dest" if $DEBUG;
+
+ }
+}
+
+# This routine handles the rest of the cases, where the user has requested
+# non-traditional handling, like using cp, or reverse symlinks, or hard links.
+sub handle_non_symlinks {
+ my $kimage = $_[0]; # Name of the symbolic link
+ my $image_dest = $_[1]; # The directory the links goes into
+ my $image_name = $_[2];
+ my $src_dir = $_[3];
+ warn "handle_non_link: kimage=$kimage, image_dest=$image_dest\n" .
+ "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG;
+
+ # Save the current image. We do this in all four cases
+ rename("$kimage", "$kimage.$$") ||
+ die "failed to move " . $image_dest . "$kimage:$!";
+ warn "mv $kimage $kimage.$$" if $DEBUG;
+
+ ##,####
+ # case One
+ #`####
+ if ($no_symlink) {
+ # Maybe /$image_dest is on a dos system?
+ warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG;
+ my $ret = system("cp -a --backup=t " . $realimageloc
+ . "$image_name " . "$kimage");
+ if ($ret) {
+ if (-e "$kimage.$$") {
+ rename("$kimage.$$", "$kimage");
+ warn "mv $kimage.$$ $kimage" if $DEBUG;
+ }
+ die("Failed to copy " . $realimageloc . "$image_name to "
+ . $image_dest . "$kimage .\n");
+ }
+ }
+ ##,####
+ # case Two
+ #`####
+ elsif ($reverse_symlink) { # Maybe /$image_dest is on a dos system?
+ warn "mv -f $realimageloc$image_name $kimage" if $DEBUG;
+ my $ret = system("mv -f " . $realimageloc . "$image_name "
+ . $image_dest . "$kimage");
+ if ($ret) {
+ if (-e "$kimage.$$") {
+ rename("$kimage.$$", "$kimage");
+ warn "mv $kimage.$$ $kimage" if $DEBUG;
+ }
+ die("Failed to move " . $realimageloc . "$image_name to "
+ . $image_dest . "$kimage .\n");
+ }
+ my $Old = $image_dest;
+ if (test_relative ('Old Dir' => $Old, 'New Dir' => $realimageloc,
+ 'Test File' => "$kimage")) {
+ $Old =~ s|^/*||o;
+ }
+ # Special case is they are in the same dir
+ my $rel_path = spath('Old' => "$Old", 'New' => "$realimageloc" );
+ $Old ="" if $rel_path =~ m/^\s*$/o;
+
+ if ($use_hard_links =~ m/YES/i) {
+ warn "ln " . $Old . "$kimage " . $realimageloc . "$image_name" if $DEBUG;
+ if (! link($Old . "$kimage", $realimageloc . "$image_name")) {
+ warn "Could not link " . $image_dest .
+ "$kimage to $image_name :$!";
+ }
+ }
+ else {
+ warn "ln -s " . $Old . "$kimage " . $realimageloc . "$image_name" if $DEBUG;
+ if (! symlink($Old . "$kimage", $realimageloc . "$image_name")) {
+ warn "Could not symlink " . $image_dest .
+ "$kimage to $image_name :$!";
+ }
+ }
+ }
+ ##,####
+ # case Three
+ #`####
+ elsif ($use_hard_links =~ m/YES/i ) {
+ # Ok then. this ought to be a hard link, and hence fair game
+ # don't clobber $kimage.old quite yet
+ my $Old = $realimageloc;
+ my $cwd;
+ chomp($cwd=`pwd`);
+ if (test_relative ('Old Dir' => $Old, 'New Dir' => $cwd,
+ 'Test File' => "$image_name")) {
+ $Old =~ s|^/*||o;
+ }
+ # Special case is they are in the same dir
+ my $rel_path = spath('Old' => "$Old", 'New' => "$cwd" );
+ $Old ="" if $rel_path =~ m/^\s*$/o;
+
+ warn "ln " . $Old . "$image_name " . "$kimage" if $DEBUG;
+ if (! link($Old . "$image_name", "$kimage")) {
+ warn "mv $kimage.$$ $kimage" if $DEBUG;
+ rename("$kimage.$$", "$kimage");
+ die("Failed to link " . $realimageloc . "$image_name to "
+ . $image_dest . "$kimage .\n");
+ }
+ }
+ ##,####
+ # case Four
+ #`####
+ else {
+ # We just use cp
+ warn "cp -a --backup=t $realimageloc$image_name $kimage" if $DEBUG;
+ my $ret = system("cp -a --backup=t " . $realimageloc
+ . "$image_name " . "$kimage");
+ if ($ret) {
+ if (-e "$kimage.$$") {
+ warn "mv $kimage.$$ $kimage" if $DEBUG;
+ rename("$kimage.$$", "$kimage");
+ }
+ die("Failed to copy " . $realimageloc . "$image_name to "
+ . $image_dest . "$kimage .\n");
+ }
+ }
+ # Ok, now we may clobber the previous .old file
+ warn "mv $kimage.$$ $kimage.old if -e $kimage.$$" if $DEBUG;
+ rename("$kimage.$$", "$kimage.old") if -e "$kimage.$$";
+}
+
+# This routine is responsible for setting up the symbolic links
+# So, the actual kernel image lives in
+# $realimageloc/$image_name (/boot/vmlinuz-2.6.12).
+# This routine creates symbolic links in $image_dest/$kimage (/vmlinuz)
+sub image_magic {
+ my $kimage = $_[0]; # Name of the symbolic link
+ my $image_dest = $_[1]; # The directory the links goes into
+ my $image_name = "$kimage-$version";
+ my $src_dir = $realimageloc;
+ warn "image_magic: kimage=$kimage, image_dest=$image_dest\n" .
+ "\t image_name=$image_name, src_dir=$src_dir" if $DEBUG;
+
+ # Well, in any case, if the destination (the symlink we are trying
+ # to create) is a directory, we should do nothing, except throw a
+ # diagnostic.
+ if (-d "$kimage" ) {
+ die ("Hmm. $kimage is a directory, which I did not expect. I am\n" .
+ "trying to create a symbolic link with that name linked to \n" .
+ "$image_dest . Since a directory exists here, my assumptions \n" .
+ "are way off, and I am aborting.\n" );
+ exit (3);
+ }
+
+ if ($move_image) { # Maybe $image_dest is in on dos, or something?
+ # source dir, link name, dest dir
+ really_move_image( $realimageloc, $image_name, $image_dest);
+ really_reverse_link($realimageloc, $image_name, $image_dest)
+ if $reverse_symlink;
+ return;
+ }
+
+ if (-l "$kimage") { # There is a symbolic link
+ warn "DEBUG: There is a symlink for $kimage\n" if $DEBUG;
+ my $force_move = move_p($kimage, $image_dest, $image_name, $src_dir);
+
+ if ($force_move) {
+ really_move_link($kimage, $image_dest, $image_name, $src_dir);
+ }
+ }
+ elsif (! -e "$kimage") {
+ # Hmm. Pristine system? How can that be? Installing from scratch?
+ # Or maybe the user does not want a symbolic link here.
+ # Possibly they do not want a link here. (we should be in /
+ # here[$image_dest, really]
+ handle_missing_link($kimage, $image_dest, $image_name, $src_dir);
+ }
+ elsif (-e "$kimage" ) {
+ # OK, $kimage exists -- but is not a link
+ handle_non_symlinks($kimage, $image_dest, $image_name, $src_dir);
+ }
+}
+
+######################################################################
+######################################################################
+######################################################################
+######################################################################
+
+# We may not have any modules installed
+if ( -d "$modules_base/$version" ) {
+ print STDERR "Running depmod.\n";
+ my $ret = system("depmod -a $version");
+ if ($ret) {
+ print STDERR "Failed to run depmod\n";
+ exit(1);
+ }
+}
+
+
+
+sub find_initrd_tool {
+ my $hostversion = shift;
+ my $version = shift;
+ print STDERR "Finding valid ramdisk creators.\n";
+ my @ramdisks =
+ grep {
+ my $args =
+ "$_ " .
+ "--supported-host-version=$hostversion " .
+ "--supported-target-version=$version " .
+ "1>/dev/null 2>&1"
+ ;
+ system($args) == 0;
+ }
+ split (/[:,\s]+/, $ramdisk);
+}
+
+# The initrd symlink should probably be in the same dir that the
+# symlinks are in
+if ($initrd) {
+ my $success = 0;
+
+ # Update-initramfs is called slightly different than mkinitrd and
+ # mkinitramfs. XXX It should really be made compatible with this stuff
+ # some how.
+ my $upgrading = 1;
+ if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m/<unknown>/og) {
+ $upgrading = 0;
+ }
+ my $ret = system("$ramdisk " . ($upgrading ? "-u" : "-c") . " -k " . $version . " >&2");
+ $success = 1 unless $ret;
+ die "Failed to create initrd image.\n" unless $success;
+ if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m/<unknown>/og) {
+ image_magic("initrd.img", $image_dest);
+ }
+ else {
+ if (! -e "initrd.img") {
+ handle_missing_link("initrd.img", $image_dest, "initrd.img-$version",
+ $realimageloc);
+ }
+ else {
+ print STDERR
+ "Not updating initrd symbolic links since we are being updated/reinstalled \n";
+ print STDERR
+ "($ARGV[1] was configured last, according to dpkg)\n";
+ }
+ }
+
+ if ($initrd && -l "initrd" ) {
+ unlink "initrd";
+ }
+
+ if ($initrd && -l "$image_dir/initrd" && ! $link_in_boot) {
+ unlink "$image_dir/initrd";
+ }
+}
+else { # Not making an initrd emage
+ if (-l "initrd.img") {
+ # Ooh, last image was an initrd image? in any case, we should move it.
+ my $target = readlink "initrd.img";
+ my $real_target = '';
+ $real_target = abs_path($target) if defined ($target);
+
+ if (!defined($target) || ! -f "$real_target") {
+ # Eh. dangling link. can safely be removed.
+ unlink("initrd.img");
+ } else {
+ if (-l "initrd.img.old" || ! -e "initrd.img.old" ) {
+ rename("initrd.img", "initrd.img.old");
+ } else {
+ warn "initrd.img.old is not a symlink, not clobbering\n";
+ unlink("initrd.img");
+ }
+ }
+ }
+}
+
+# Warn of a reboot
+if (-x $notifier) {
+ system($notifier);
+}
+
+# Let programs know not to hibernate if the kernel that would be used for
+# resume-from-hibernate is likely to differ from the currently running kernel.
+system("mountpoint -q /var/run");
+if ($? eq 0) {
+ system("touch /var/run/do-not-hibernate");
+}
+
+# Only change the symlinks if we are not being upgraded
+if (! defined $ARGV[1] || ! $ARGV[1] || $ARGV[1] =~ m/<unknown>/og) {
+ image_magic($kimage, $image_dest);
+}
+else {
+ if (! -e "$kimage") {
+ handle_missing_link($kimage, $image_dest, "$kimage-$version",
+ $realimageloc);
+ }
+ else {
+ print STDERR
+ "Not updating image symbolic links since we are being updated/reinstalled \n";
+ print STDERR
+ "($ARGV[1] was configured last, according to dpkg)\n";
+ }
+}
+
+# We used to have System.* files in /
+if (-e "/System.map" || -e "/System.old") {
+ unlink '/System.map' if -e '/System.map';
+ unlink '/System.old' if -e '/System.old';
+}
+
+# creating some info about kernel and initrd
+if ($DEBUG) {
+ my $ksize=sprintf("%.0f",(stat($realimageloc .
+ "$kimage-$version"))[7]/1024)."kB";
+ my $initrdsize='';
+ if ($initrd) {
+ $initrdsize=sprintf("%.0f",(stat($realimageloc .
+ "initrd.img-$version"))[7]/1024)."kB";
+ }
+
+ print STDERR <<"EOMSG";
+A new kernel image has been installed at $realimageloc$kimage-$version
+ (Size: $ksize)
+
+Symbolic links, unless otherwise specified, can be found in $image_dest
+
+EOMSG
+ ;
+
+ if ($initrd) {
+ print STDERR <<"EOMSGA";
+
+ Initial rootdisk image: ${realimageloc}initrd.img-$version (Size: $initrdsize)
+EOMSGA
+ ;
+ }
+}
+
+# set the env var stem
+$ENV{'STEM'} = "linux";
+sub exec_script {
+ my $type = shift;
+ my $script = shift;
+ print STDERR "Running $type hook script $script.\n";
+ system ("$script $version $realimageloc$kimage-$version") &&
+ print STDERR "User $type hook script [$script] ";
+ if ($?) {
+ if ($? == -1) {
+ print STDERR "failed to execute: $!\n";
+ }
+ elsif ($? & 127) {
+ printf STDERR "died with signal %d, %s coredump\n",
+ ($? & 127), ($? & 128) ? 'with' : 'without';
+ }
+ else {
+ printf STDERR "exited with value %d\n", $? >> 8;
+ }
+ exit $? >> 8;
+ }
+}
+sub run_hook {
+ my $type = shift;
+ my $script = shift;
+ if ($script =~ m,^/,) {
+ # Full path provided for the hook script
+ if (-x "$script") {
+ &exec_script($type,$script);
+ }
+ else {
+ die "The provided $type hook script [$script] could not be run.\n";
+ }
+ }
+ else {
+ # Look for it in a safe path
+ for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
+ if (-x "$path/$script") {
+ &exec_script($type, "$path/$script");
+ return 0;
+ }
+ }
+ # No luck
+ print STDERR "Could not find $type hook script [$script].\n";
+ die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
+ }
+}
+
+## Run user hook script here, if any
+if ($postinst_hook) {
+ &run_hook("postinst", $postinst_hook);
+}
+
+if (-d "/etc/kernel/postinst.d") {
+ print STDERR "Examining /etc/kernel/postinst.d.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/postinst.d") &&
+ die "Failed to process /etc/kernel/postinst.d";
+}
+
+if (-d "/etc/kernel/postinst.d/$version") {
+ print STDERR "Examining /etc/kernel/postinst.d/$version.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/postinst.d/$version") &&
+ die "Failed to process /etc/kernel/postinst.d/$version";
+}
+
+LOADER: {
+ last unless $do_boot_enable; # Exit if explicitly asked to
+
+ last if $loader =~ /silo/i; # SILO does not have to be executed.
+ last if $loader =~ /yaboot/i; # yaboot does not have to be executed.
+ last if $loader =~ /milo/i; # MILO does not have to be executed.
+ last if $loader =~ /nettrom/i; # NETTROM does not have to be executed.
+ last if $loader =~ /arcboot/i; # ARCBOOT does not have to be executed.
+ last if $loader =~ /delo/i; # DELO does not have to be executed.
+ last if $loader =~ /quik/i; # maintainer asked quik invocation to be ignored
+
+ last unless $loaderloc;
+ last unless -x $loaderloc;
+ last unless $do_bootloader;
+
+ if (-T "/etc/$loader.conf") {
+ # Trust and use the existing lilo.conf.
+ print STDERR "You already have a $Loader configuration in /etc/$loader.conf\n";
+ my $ret = &run_lilo();
+ exit $ret if $ret;
+ }
+}
+
+
+sub run_lilo (){
+ my $ret;
+ # Try and figure out if the user really wants lilo to be run --
+ # since the default is to run the boot laoder, which is ! grub -- but
+ # the user may be using grub now, and not changed the default.
+
+ # So, if the user has explicitly asked for the loader to be run, or
+ # if there is no postinst hook, or if there is no grub installed --
+ # we are OK. Or else, we ask.
+ if ($explicit_do_loader || (! ($postinst_hook && -x '/usr/sbin/grub'))) {
+ print STDERR "Running boot loader as requested\n";
+ } else {
+ print STDERR "Ok, not running $loader\n";
+ }
+ if ($loader =~ /^lilo/io or $loader =~ /vmelilo/io) {
+ print STDERR "Testing $loader.conf ... \n";
+ unlink $temp_file_name; # security
+ $ret = system("$loaderloc -t >$temp_file_name 2>&1");
+ if ($ret) {
+ print STDERR "Boot loader test failed\n";
+ return $ret;
+ }
+ unlink "$temp_file_name";
+ print STDERR "Testing successful.\n";
+ print STDERR "Installing the ";
+ print STDERR "partition " if $loader =~ /^lilo/io;
+ print STDERR "boot sector... \n";
+ }
+
+ print STDERR "Running $loaderloc ... \n";
+ if ($loader =~ /^elilo/io) {
+ $ret = system("$loaderloc 2>&1 | tee $temp_file_name");
+ } else {
+ $ret = system("$loaderloc >$temp_file_name 2>&1");
+ }
+ if ($ret) {
+ print STDERR "Boot loader failed to run\n";
+ return $ret;
+ }
+ unlink $temp_file_name;
+ print STDERR "Installation successful.\n";
+ return 0;
+}
+
+exit 0;
+
+__END__
+
diff --git a/debian/control-scripts/postrm b/debian/control-scripts/postrm
new file mode 100644
index 00000000000..b81d7aaa70c
--- /dev/null
+++ b/debian/control-scripts/postrm
@@ -0,0 +1,354 @@
+#! /usr/bin/perl
+# -*- Mode: Cperl -*-
+# image.postrm ---
+# Author : Manoj Srivastava ( srivasta@glaurung.green-gryphon.com )
+# Created On : Sat May 15 11:05:13 1999
+# Created On Node : glaurung.green-gryphon.com
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Wed Sep 13 11:26:19 2006
+# Last Machine Used: glaurung.internal.golden-gryphon.com
+# Update Count : 57
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+# $Id: image.postrm,v 1.31 2003/10/07 16:24:20 srivasta Exp $
+#
+
+
+#
+#use strict; #for debugging
+use Cwd 'abs_path';
+
+$|=1;
+
+# Predefined values:
+my $version = "=V";
+my $link_in_boot = ""; # Should be empty, mostly
+my $no_symlink = ""; # Should be empty, mostly
+my $reverse_symlink = ""; # Should be empty, mostly
+my $do_symlink = "Yes"; # target machine defined
+my $do_boot_enable = "Yes"; # target machine defined
+my $do_bootfloppy = "Yes"; # target machine defined
+my $do_bootloader = "Yes"; # target machine defined
+my $move_image = ''; # target machine defined
+my $kimage = "=K"; # Should be empty, mostly
+my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, or nettrom
+my $image_dir = "/boot"; # where the image is located
+my $clobber_modules = ''; # target machine defined
+my $initrd = "YES"; # initrd kernel
+my $do_initrd = ''; # Normally, we don't
+my $warn_initrd = 'YES'; # Normally we do
+my $use_hard_links = ''; # hardlinks do not work across fs boundaries
+my $postinst_hook = ''; #Normally we do not
+my $postrm_hook = ''; #Normally we do not
+my $preinst_hook = ''; #Normally we do not
+my $prerm_hook = ''; #Normally we do not
+my $minimal_swap = ''; # Do not swap symlinks
+my $ignore_depmod_err = ''; # normally we do not
+my $relink_build_link = 'YES'; # There is no harm in checking the link
+my $force_build_link = ''; # we shall not create a dangling link
+my $kernel_arch = "=B";
+my $ramdisk = "/usr/sbin/update-initramfs";
+my $package_name = "linux-image-$version";
+
+my $Loader = "NoLOADER"; #
+$Loader = "LILO" if $loader =~ /^lilo/io;
+$Loader = "SILO" if $loader =~ /^silo/io;
+$Loader = "QUIK" if $loader =~ /^quik/io;
+$Loader = "yaboot" if $loader =~ /^yaboot/io;
+$Loader = "PALO" if $loader =~ /^palo/io;
+$Loader = "NETTROM" if $loader =~ /^nettrom/io;
+$Loader = "VMELILO" if $loader =~ /^vmelilo/io;
+$Loader = "ZIPL" if $loader =~ /^zipl/io;
+$Loader = "ELILO" if $loader =~ /^elilo/io;
+
+
+# This should not point to /tmp, because of security risks.
+my $temp_file_name = "/var/log/$loader" . "_log.$$";
+
+#known variables
+my @boilerplate = ();
+my @silotemplate = ();
+my @quiktemplate = ();
+my @palotemplate = ();
+my @vmelilotemplate = ();
+my $bootdevice = '';
+my $rootdevice = '';
+my $rootdisk = '';
+my $rootpartition = '';
+my $image_dest = "/";
+my $realimageloc = "/$image_dir/";
+my $have_conffile = "";
+my $CONF_LOC = '/etc/kernel-img.conf';
+my $relative_links = '';
+my $silent_modules = '';
+my $silent_loader = '';
+my $warn_reboot = 'Yes'; # Warn that we are installing a version of
+ # the kernel we are running
+
+chdir('/') or die "could not chdir to /:$!\n";
+# remove multiple leading slashes; make sure there is at least one.
+$realimageloc =~ s|^/*|/|o;
+$realimageloc =~ s|/+|/|o;
+
+
+if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
+ if (open(CONF, "$CONF_LOC")) {
+ while (<CONF>) {
+ chomp;
+ s/\#.*$//g;
+ next if /^\s*$/;
+
+ $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig;
+ $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig;
+ $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig;
+ $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig;
+ $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig;
+ $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig;
+ $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig;
+ $warn_initrd = '' if /^\s*warn_initrd\s*=\s*(no|false|0)\s*$/ig;
+ $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig;
+ $silent_modules = '' if /^\s*silent_modules\s*=\s*(no|false|0)\s*$/ig;
+ $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig;
+ $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig;
+ $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig;
+ $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig;
+ $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig;
+ $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig;
+
+ $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig;
+ $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig;
+ $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig;
+ $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig;
+ $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig;
+ $warn_initrd = "Yes" if /^\s*warn_initrd\s*=\s*(yes|true|1)\s*$/ig;
+ $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig;
+ $silent_modules = 'Yes' if /^\s*silent_modules\s*=\s*(yes|true|1)\s*$/ig;
+ $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig;
+ $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig;
+ $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig;
+ $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig;
+ $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig;
+ $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig;
+
+ $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig;
+ $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig;
+ $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig;
+ $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig;
+ $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig;
+ $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig;
+ }
+ close CONF;
+ $have_conffile = "Yes";
+ }
+}
+
+if ($link_in_boot) {
+ $image_dest = "/$image_dir/";
+ $image_dest =~ s|^/*|/|o;
+}
+
+$image_dest = "$image_dest/";
+$image_dest =~ s|/+$|/|o;
+
+# The destdir may be gone by now.
+if (-d "$image_dest") {
+ chdir("$image_dest") or die "could not chdir to $image_dest:$!\n";
+}
+
+# Paranoid check to make sure that the correct value is put in there
+if (! $kimage) {$kimage = "vmlinuz"} # Hmm. empty
+elsif ($kimage =~ m/^b?uImage$/o) {$kimage = "vmlinuz"} # these produce vmlinuz
+elsif ($kimage =~ m/^b?zImage$/o) {$kimage = "vmlinuz"} # these produce vmlinuz
+elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage;}
+elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage;}
+else {$kimage = "vmlinuz"} # default
+
+$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch;
+
+
+######################################################################
+######################################################################
+############
+######################################################################
+######################################################################
+sub remove_sym_link {
+ my $bad_image = $_[0];
+
+ warn "Removing symbolic link $bad_image \n";
+ if ($loader =~ /lilo/i)
+ {
+ warn "Unless you used the optional flag in lilo, \n";
+ }
+ warn " you may need to re-run your boot loader" . ($loader ? "[$loader]":"")
+ . "\n";
+ # Remove the dangling link
+ unlink "$bad_image";
+}
+
+######################################################################
+######################################################################
+############
+######################################################################
+######################################################################
+sub CanonicalizePath {
+ my $path = join '/', @_;
+ my @work = split '/', $path;
+ my @out;
+ my $is_absolute;
+
+ if (@work && $work[0] eq "") { $is_absolute = 1; shift @work; }
+
+ while (@work) {
+ my $seg = shift @work;
+ if ($seg eq "." || $seg eq "") {
+ } elsif ($seg eq "..") {
+ if (@out && $out[-1] ne "..") {
+ pop @out;
+ } else {
+ # Leading "..", or "../..", etc.
+ push @out, $seg;
+ }
+ } else {
+ push @out, $seg;
+ }
+ }
+
+ unshift @out, "" if $is_absolute;
+ return join('/', @out);
+}
+
+######################################################################
+######################################################################
+############
+######################################################################
+######################################################################
+# This removes dangling symlinks. What do we do about hard links? Surely a
+# something with the nane $image_dest . "$kimage" ought not to be left behind?
+sub image_magic {
+ my $kimage = $_[0];
+ my $image_dest = $_[1];
+
+ if (-l "$kimage") {
+ # There is a symbolic link
+ my $force_move = 0;
+ my $vmlinuz_target = readlink "$kimage";
+ my $real_target = '';
+ $real_target = abs_path($vmlinuz_target) if defined ($vmlinuz_target);
+ if (!defined($vmlinuz_target) || ! -f "$real_target") {
+ # what, a dangling symlink?
+ warn "The link " . $image_dest . "$kimage is a damaged link\n";
+ # Remove the dangling link
+ &remove_sym_link("$kimage");
+ }
+ else {
+ my $canonical_target = CanonicalizePath("$vmlinuz_target");
+ if (! -e $canonical_target) {
+ warn "The link " . $image_dest . "$kimage is a dangling link\n";
+ &remove_sym_link("$kimage");
+ }
+ }
+ }
+}
+
+# set the env var stem
+$ENV{'STEM'} = "linux";
+
+sub exec_script {
+ my $type = shift;
+ my $script = shift;
+ print STDERR "Running $type hook script $script.\n";
+ system ("$script $version $realimageloc$kimage-$version") &&
+ print STDERR "User $type hook script [$script] ";
+ if ($?) {
+ if ($? == -1) {
+ print STDERR "failed to execute: $!\n";
+ }
+ elsif ($? & 127) {
+ printf STDERR "died with signal %d, %s coredump\n",
+ ($? & 127), ($? & 128) ? 'with' : 'without';
+ }
+ else {
+ printf STDERR "exited with value %d\n", $? >> 8;
+ }
+ }
+}
+sub run_hook {
+ my $type = shift;
+ my $script = shift;
+ if ($script =~ m,^/,) {
+ # Full path provided for the hook script
+ if (-x "$script") {
+ &exec_script($type,$script);
+ }
+ else {
+ warn "The provided $type hook script [$script] could not be run.\n";
+ }
+ }
+ else {
+ # Look for it in a safe path
+ for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
+ if (-x "$path/$script") {
+ &exec_script($type, "$path/$script");
+ return 0;
+ }
+ }
+ # No luck
+ print STDERR "Could not find $type hook script [$script].\n";
+ warn "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
+ }
+}
+
+## Run user hook script here, if any
+if ($postrm_hook) {
+ &run_hook("postrm", $postrm_hook);
+}
+if (-d "/etc/kernel/postrm.d") {
+ warn "Examining /etc/kernel/postrm.d .\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/postrm.d") &&
+ die "Failed to process /etc/kernel/postrm.d";
+}
+if (-d "/etc/kernel/postrm.d/$version") {
+ warn "Examining /etc/kernel/postrm.d/$version .\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/postrm.d/$version") &&
+ die "Failed to process /etc/kernel/postrm.d/$version";
+}
+
+# check and remove damaged and dangling symlinks
+if ($ARGV[0] !~ /upgrade/) {
+ system("$ramdisk -d -k " . $version . " > /dev/null 2>&1");
+ if (-f $realimageloc . "initrd.img-$version.bak") {
+ unlink $realimageloc . "initrd.img-$version.bak";
+ }
+ image_magic($kimage, $image_dest);
+ image_magic($kimage . ".old", $image_dest);
+ image_magic("initrd.img", $image_dest) if $initrd;
+ image_magic("initrd.img.old", $image_dest) if $initrd;
+}
+
+exit 0;
+
+__END__
+
+
+
+
+
+
diff --git a/debian/control-scripts/preinst b/debian/control-scripts/preinst
new file mode 100644
index 00000000000..11c335a4a6c
--- /dev/null
+++ b/debian/control-scripts/preinst
@@ -0,0 +1,299 @@
+#! /usr/bin/perl
+# -*- Mode: Cperl -*-
+# image.preinst ---
+# Author : Manoj Srivastava ( srivasta@tiamat.datasync.com )
+# Created On : Sun Jun 14 03:38:02 1998
+# Created On Node : tiamat.datasync.com
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Sun Sep 24 14:04:42 2006
+# Last Machine Used: glaurung.internal.golden-gryphon.com
+# Update Count : 99
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+#
+
+#
+#use strict; #for debugging
+
+use Debconf::Client::ConfModule qw(:all);
+version('2.0');
+my $capb=capb("backup");
+
+$|=1;
+
+# Predefined values:
+my $version = "=V";
+my $link_in_boot = ""; # Should be empty, mostly
+my $no_symlink = ""; # Should be empty, mostly
+my $reverse_symlink = ""; # Should be empty, mostly
+my $do_symlink = "Yes"; # target machine defined
+my $do_boot_enable = "Yes"; # target machine defined
+my $do_bootfloppy = "Yes"; # target machine defined
+my $do_bootloader = "Yes"; # target machine defined
+my $move_image = ''; # target machine defined
+my $kimage = "=K"; # Should be empty, mostly
+my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, nettrom
+ # or elilo
+my $image_dir = "/boot"; # where the image is located
+my $initrd = "YES"; # initrd kernel
+my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries
+my $postinst_hook = ''; #Normally we do not
+my $postrm_hook = ''; #Normally we do not
+my $preinst_hook = ''; #Normally we do not
+my $prerm_hook = ''; #Normally we do not
+my $minimal_swap = ''; # Do not swap symlinks
+my $ignore_depmod_err = ''; # normally we do not
+my $relink_src_link = 'YES'; # There is no harm in checking the link
+my $relink_build_link = 'YES'; # There is no harm in checking the link
+my $force_build_link = ''; # There is no harm in checking the link
+my $kernel_arch = "=B";
+my $ramdisk = "/usr/sbin/update-initramfs"; # List of tools to create initial ram fs.
+my $package_name = "linux-image-$version";
+
+my $Loader = "NoLOADER"; #
+$Loader = "LILO" if $loader =~ /^lilo/io;
+$Loader = "SILO" if $loader =~ /^silo/io;
+$Loader = "QUIK" if $loader =~ /^quik/io;
+$Loader = "yaboot" if $loader =~ /^yaboot/io;
+$Loader = "PALO" if $loader =~ /^palo/io;
+$Loader = "NETTROM" if $loader =~ /^nettrom/io;
+$Loader = "VMELILO" if $loader =~ /^vmelilo/io;
+$Loader = "ZIPL" if $loader =~ /^zipl/io;
+$Loader = "ELILO" if $loader =~ /^elilo/io;
+
+
+#known variables
+my @boilerplate = ();
+my @silotemplate = ();
+my @quiktemplate = ();
+my @palotemplate = ();
+my @vmelilotemplate = ();
+my $bootdevice = '';
+my $rootdevice = '';
+my $rootdisk = '';
+my $rootpartition = '';
+my $image_dest = "/";
+my $realimageloc = "/$image_dir/";
+my $have_conffile = "";
+my $CONF_LOC = '/etc/kernel-img.conf';
+my $relative_links = '';
+my $silent_loader = '';
+my $warn_reboot = ''; # Warn that we are installing a version of
+ # the kernel we are running
+
+my $modules_base = '/lib/modules';
+
+die "Pre inst Internal error. Aborting." unless $version;
+
+exit 0 if $ARGV[0] =~ /abort-upgrade/;
+exit 1 unless $ARGV[0] =~ /(install|upgrade)/;
+
+# remove multiple leading slashes; make sure there is at least one.
+$realimageloc =~ s|^/*|/|o;
+$realimageloc =~ s|/+|/|o;
+
+if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
+ if (open(CONF, "$CONF_LOC")) {
+ while (<CONF>) {
+ chomp;
+ s/\#.*$//g;
+ next if /^\s*$/;
+
+ $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig;
+ $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig;
+ $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig;
+ $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig;
+ $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig;
+ $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig;
+ $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig;
+ $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig;
+ $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig;
+ $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig;
+ $relink_src_link = '' if /^\s*relink_src_link\s*=\s*(no|false|0)\s*$/ig;
+ $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig;
+ $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig;
+
+ $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig;
+ $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig;
+ $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig;
+ $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig;
+ $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig;
+ $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig;
+ $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig;
+ $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig;
+ $relink_src_link = 'Yes' if /^\s*relink_src_link\s*=\s*(yes|true|1)\s*$/ig;
+ $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig;
+ $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig;
+
+ $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig;
+ $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig;
+ $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig;
+ $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig;
+ $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig;
+ $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig;
+ }
+ close CONF;
+ $have_conffile = "Yes";
+ $have_conffile = "Yes"; # stop perl complaining
+ }
+}
+
+$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch;
+
+# About to upgrade this package from version $2 TO THIS VERSION.
+# "prerm upgrade" has already been called for the old version of
+# this package.
+
+sub find_initrd_tool {
+ my $hostversion = shift;
+ my $version = shift;
+ my @ramdisks =
+ grep {
+ my $args =
+ "$_ " .
+ "--supported-host-version=$hostversion " .
+ "--supported-target-version=$version " .
+ "1>/dev/null 2>&1"
+ ;
+ system($args) == 0;
+ }
+ split (/[:,\s]+/, $ramdisk);
+}
+
+sub check {
+ my $version = shift;
+ my $lib_modules="$modules_base/$version";
+ my $message = '';
+
+ if (-d "$lib_modules") {
+ opendir(DIR, $lib_modules) || die "can’t opendir $lib_modules: $!";
+ my @children = readdir(DIR);
+ if ($#children > 1) {
+ my @dirs = grep { -d "$lib_modules/$_" } @children;
+ if ($#dirs > 1) { # we have subdirs
+ my $dir_message='';
+ for my $dir (@dirs) {
+ if ($dir =~/kernel$/) {
+ $dir_message="An older install was detected.\n";
+ }
+ else {
+ $dir_message="Module sub-directories were detected.\n"
+ unless $dir_message;
+ }
+ }
+ $message += $dir_message if $dir_message;
+ }
+
+ my @links = grep { -l "$lib_modules/$_" } @children;
+ if ($#links > -1) {
+ my $links_message = '';
+ for my $link (@links) {
+ next if ($link =~ /^build$/);
+ next if ($link =~ /^source$/);
+ $links_message = "Symbolic links were detected in $modules_base/$version.\n";
+ }
+ $message += $links_message if $links_message;
+ }
+ my @files = grep { -f "$lib_modules/$_" } @children;
+ $message += "Additional files also exist in $modules_base/$version.\n"
+ if ($#files > -1);
+ }
+ }
+ else { $message .= "$lib_modules does not exist. ";}
+ return $message;
+}
+
+if (-d "$modules_base/$version") {
+ my $errors=check($version);
+ warn "Info:\n$errors\n" if $errors;
+}
+
+# set the env var stem
+$ENV{'STEM'} = "linux";
+
+sub exec_script {
+ my $type = shift;
+ my $script = shift;
+ print STDERR "Running $type hook script $script.\n";
+ system ("$script $version $realimageloc$kimage-$version") &&
+ print STDERR "User $type hook script [$script] ";
+ if ($?) {
+ if ($? == -1) {
+ print STDERR "failed to execute: $!\n";
+ }
+ elsif ($? & 127) {
+ printf STDERR "died with signal %d, %s coredump\n",
+ ($? & 127), ($? & 128) ? 'with' : 'without';
+ }
+ else {
+ printf STDERR "exited with value %d\n", $? >> 8;
+ }
+ exit $? >> 8;
+ }
+}
+sub run_hook {
+ my $type = shift;
+ my $script = shift;
+ if ($script =~ m,^/,) {
+ # Full path provided for the hook script
+ if (-x "$script") {
+ &exec_script($type,$script);
+ }
+ else {
+ die "The provided $type hook script [$script] could not be run.\n";
+ }
+ }
+ else {
+ # Look for it in a safe path
+ for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
+ if (-x "$path/$script") {
+ &exec_script($type, "$path/$script");
+ return 0;
+ }
+ }
+ # No luck
+ print STDERR "Could not find $type hook script [$script].\n";
+ die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
+ }
+}
+
+
+## Run user hook script here, if any
+if (-x "$preinst_hook") {
+ &run_hook("preinst", $preinst_hook);
+}
+if (-d "/etc/kernel/preinst.d") {
+ print STDERR "Examining /etc/kernel/preinst.d/\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version" .
+ " --arg=$realimageloc$kimage-$version" .
+ " /etc/kernel/preinst.d") &&
+ die "Failed to process /etc/kernel/preinst.d";
+}
+if (-d "/etc/kernel/preinst.d/$version") {
+ print STDERR "Examining /etc/kernel/preinst.d/$version.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version" .
+ " --arg=$realimageloc$kimage-$version" .
+ " /etc/kernel/preinst.d/$version") &&
+ die "Failed to process /etc/kernel/preinst.d/$version";
+}
+print STDERR "Done.\n";
+
+exit 0;
+
+__END__
+
+
diff --git a/debian/control-scripts/prerm b/debian/control-scripts/prerm
new file mode 100644
index 00000000000..ae248dd6725
--- /dev/null
+++ b/debian/control-scripts/prerm
@@ -0,0 +1,308 @@
+#! /usr/bin/perl
+# -*- Mode: Perl -*-
+# image.prerm ---
+# Author : root ( root@melkor.pilgrim.umass.edu )
+# Created On : Fri May 17 03:28:59 1996
+# Created On Node : melkor.pilgrim.umass.edu
+# Last Modified By : Manoj Srivastava
+# Last Modified On : Sat Aug 5 13:14:17 2006
+# Last Machine Used: glaurung.internal.golden-gryphon.com
+# Update Count : 85
+# Status : Unknown, Use with caution!
+# HISTORY :
+# Description :
+#
+#
+# $Id: image.prerm,v 1.22 2003/10/07 16:24:20 srivasta Exp $
+#
+#
+#use strict;
+
+$|=1;
+# Predefined values:
+my $version = "=V";
+my $link_in_boot = ""; # Should be empty, mostly
+my $no_symlink = ""; # Should be empty, mostly
+my $reverse_symlink = ""; # Should be empty, mostly
+my $do_symlinks = "Yes"; # target machine defined
+my $do_boot_enable = "Yes"; # target machine defined
+my $do_bootfloppy = "Yes"; # target machine defined
+my $do_bootloader = "Yes"; # target machine defined
+my $move_image = ''; # target machine defined
+my $kimage = "=K"; # Should be empty, mostly
+my $loader = "=L"; # lilo, silo, quik, palo, vmelilo, or nettrom
+my $image_dir = "/boot"; # where the image is located
+my $clobber_modules = ''; # target machine defined
+my $initrd = "YES"; # initrd kernel
+my $use_hard_links = ''; # hardlinks do not wirk across fs boundaries
+my $postinst_hook = ''; #Normally we do not
+my $postrm_hook = ''; #Normally we do not
+my $preinst_hook = ''; #Normally we do not
+my $prerm_hook = ''; #Normally we do not
+my $minimal_swap = ''; # Do not swap symlinks
+my $ignore_depmod_err = ''; # normally we do not
+my $relink_build_link = 'YES'; # There is no harm in checking the link
+my $force_build_link = ''; # There is no harm in checking the link
+my $kernel_arch = "=B";
+my $ramdisk = "/usr/sbin/update-initramfs";
+my $package_name = "linux-image-$version";
+
+my $Loader = "NoLOADER"; #
+$Loader = "LILO" if $loader =~ /^lilo/io;
+$Loader = "SILO" if $loader =~ /^silo/io;
+$Loader = "QUIK" if $loader =~ /^quik/io;
+$Loader = "yaboot" if $loader =~ /^yaboot/io;
+$Loader = "PALO" if $loader =~ /^palo/io;
+$Loader = "NETTROM" if $loader =~ /^nettrom/io;
+$Loader = "VMELILO" if $loader =~ /^vmelilo/io;
+$Loader = "ZIPL" if $loader =~ /^zipl/io;
+$Loader = "ELILO" if $loader =~ /^elilo/io;
+
+
+# This should not point to /tmp, because of security risks.
+my $temp_file_name = "/var/log/$loader" . "_log.$$";
+
+#known variables
+my $image_dest = "/";
+my $realimageloc = "/$image_dir/";
+my $have_conffile = "";
+my $CONF_LOC = '/etc/kernel-img.conf';
+my $relative_links = '';
+my $silent_loader = '';
+my $warn_reboot = 'Yes'; # Warn that we are installing a version of
+ # the kernel we are running
+
+# remove multiple leading slashes; make sure there is at least one.
+$realimageloc =~ s|^/*|/|o;
+$realimageloc =~ s|/+|/|o;
+
+my $DEBUG = 0;
+
+# Variables used
+my $image='';
+my $ret=0;
+my $seen='';
+my $answer='';
+my $running = '';
+my $WouldInvalidate = 0;
+
+if ($ARGV[0] && ($ARGV[0] =~ /remove/ || $ARGV[0] =~ /upgrade/)) {
+ if (-l "/usr/doc/linux-image-$version") {
+ unlink "/usr/doc/linux-image-$version";
+ }
+}
+
+# Ignore all invocations uxcept when called on to remove
+exit 0 unless ($ARGV[0] && $ARGV[0] =~ /remove/) ;
+
+# Paranoid check to make sure that the correct value is put in there
+if (! $kimage) { $kimage = "vmlinuz";} # Hmm. empty
+elsif ($kimage =~ m/^b?uImage$/o) { $kimage = "vmlinuz";} # these produce vmlinuz
+elsif ($kimage =~ m/^b?zImage$/o) { $kimage = "vmlinuz";} # these produce vmlinuz
+elsif ($kimage =~ m/^[iI]mage$/o) { my $nop = $kimage; }
+elsif ($kimage =~ m/^vmlinux$/o) { my $nop = $kimage; }
+else { $kimage = "vmlinuz";} # Default
+
+if (-r "$CONF_LOC" && -f "$CONF_LOC" ) {
+ if (open(CONF, "$CONF_LOC")) {
+ while (<CONF>) {
+ chomp;
+ s/\#.*$//g;
+ next if /^\s*$/;
+
+ $do_symlink = "" if /^\s*do_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $no_symlink = "" if /^\s*no_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $reverse_symlink = "" if /^\s*reverse_symlinks\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*image_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $link_in_boot = "" if /^\s*link_in_boot\s*=\s*(no|false|0)\s*$/ig;
+ $move_image = "" if /^\s*move_image\s*=\s*(no|false|0)\s*$/ig;
+ $clobber_modules = '' if /^\s*clobber_modules\s*=\s*(no|false|0)\s*$/ig;
+ $do_boot_enable = '' if /^\s*do_boot_enable\s*=\s*(no|false|0)\s*$/ig;
+ $do_bootfloppy = '' if /^\s*do_bootfloppy\s*=\s*(no|false|0)\s*$/ig;
+ $relative_links = '' if /^\s*relative_links \s*=\s*(no|false|0)\s*$/ig;
+ $do_bootloader = '' if /^\s*do_bootloader\s*=\s*(no|false|0)\s*$/ig;
+ $do_initrd = '' if /^\s*do_initrd\s*=\s*(no|false|0)\s*$/ig;
+ $use_hard_links = '' if /^\s*use_hard_links\s*=\s*(no|false|0)\s*$/ig;
+ $silent_loader = '' if /^\s*silent_loader\s*=\s*(no|false|0)\s*$/ig;
+ $warn_reboot = '' if /^\s*warn_reboot\s*=\s*(no|false|0)\s*$/ig;
+ $minimal_swap = '' if /^\s*minimal_swap\s*=\s*(no|false|0)\s*$/ig;
+ $ignore_depmod_err = '' if /^\s*ignore_depmod_err\s*=\s*(no|false|0)\s*$/ig;
+ $relink_build_link = '' if /^\s*relink_build_link\s*=\s*(no|false|0)\s*$/ig;
+ $force_build_link = '' if /^\s*force_build_link\s*=\s*(no|false|0)\s*$/ig;
+
+
+ $do_symlink = "Yes" if /^\s*do_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $no_symlink = "Yes" if /^\s*no_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $reverse_symlink = "Yes" if /^\s*reverse_symlinks\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*image_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $link_in_boot = "Yes" if /^\s*link_in_boot\s*=\s*(yes|true|1)\s*$/ig;
+ $move_image = "Yes" if /^\s*move_image\s*=\s*(yes|true|1)\s*$/ig;
+ $clobber_modules = "Yes" if /^\s*clobber_modules\s*=\s*(yes|true|1)\s*$/ig;
+ $do_boot_enable = "Yes" if /^\s*do_boot_enable\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootfloppy = "Yes" if /^\s*do_bootfloppy\s*=\s*(yes|true|1)\s*$/ig;
+ $do_bootloader = "Yes" if /^\s*do_bootloader\s*=\s*(yes|true|1)\s*$/ig;
+ $relative_links = "Yes" if /^\s*relative_links\s*=\s*(yes|true|1)\s*$/ig;
+ $do_initrd = "Yes" if /^\s*do_initrd\s*=\s*(yes|true|1)\s*$/ig;
+ $use_hard_links = "Yes" if /^\s*use_hard_links\s*=\s*(yes|true|1)\s*$/ig;
+ $silent_loader = 'Yes' if /^\s*silent_loader\s*=\s*(yes|true|1)\s*$/ig;
+ $warn_reboot = 'Yes' if /^\s*warn_reboot\s*=\s*(yes|true|1)\s*$/ig;
+ $minimal_swap = 'Yes' if /^\s*minimal_swap\s*=\s*(yes|true|1)\s*$/ig;
+ $ignore_depmod_err = 'Yes' if /^\s*ignore_depmod_err\s*=\s*(yes|true|1)\s*$/ig;
+ $relink_build_link = 'Yes' if /^\s*relink_build_link\s*=\s*(yes|true|1)\s*$/ig;
+ $force_build_link = 'Yes' if /^\s*force_build_link\s*=\s*(yes|true|1)\s*$/ig;
+
+ $image_dest = "$1" if /^\s*image_dest\s*=\s*(\S+)/ig;
+ $postinst_hook = "$1" if /^\s*postinst_hook\s*=\s*(\S+)/ig;
+ $postrm_hook = "$1" if /^\s*postrm_hook\s*=\s*(\S+)/ig;
+ $preinst_hook = "$1" if /^\s*preinst_hook\s*=\s*(\S+)/ig;
+ $prerm_hook = "$1" if /^\s*prerm_hook\s*=\s*(\S+)/ig;
+ $ramdisk = "$1" if /^\s*ramdisk\s*=\s*(.+)$/ig;
+ }
+ close CONF;
+ $have_conffile = "Yes";
+ }
+}
+
+
+$ENV{KERNEL_ARCH}=$kernel_arch if $kernel_arch;
+
+#check to see if we are trying to remove a running kernel
+# if so we abort right now.
+chop($running=`uname -r`);
+if ($running eq $version) {
+ print STDERR "WARN: Proceeding with removing running kernel image.\n";
+}
+
+#Now, they have an alternate kernel which they are currently running
+
+# This is just us being nice to lilo users.
+
+chdir("/") or die "could not chdir to /:$!\n";
+
+if (-f "/etc/$loader.conf") { #I know, could be a link, but ..
+ open (LILO, "/etc/$loader.conf") || &success(); # this is not critical
+ while (<LILO>) {
+ chop;
+ s/\#.*//; # nix the comments
+ next unless /^\s*image\s*=\s(\S+)/o;
+ $image = $1;
+ if ($image && -e $image) {
+ while (defined($image) && -l $image) {
+ $image = readlink ($image);
+ }
+ if (defined($image) && -e $image) {
+ $WouldInvalidate |= $image =~ /$kimage-$version/;
+ }
+ else {
+ &success(); # invalid $loader.conf file
+ }
+ }
+ else {
+ &success(); # invalid $loader.conf file
+ }
+ }
+ close (LILO);
+ if ($WouldInvalidate) {
+ print STFERR "WARN: Proceeding with removing running kernel image.\n";
+ &success();
+ }
+}
+
+
+# set the env var stem
+$ENV{'STEM'} = "linux";
+
+sub exec_script {
+ my $type = shift;
+ my $script = shift;
+ print STDERR "Running $type hook script $script.\n";
+ system ("$script $version $realimageloc$kimage-$version") &&
+ print STDERR "User $type hook script [$script] ";
+ if ($?) {
+ if ($? == -1) {
+ print STDERR "failed to execute: $!\n";
+ }
+ elsif ($? & 127) {
+ printf STDERR "died with signal %d, %s coredump\n",
+ ($? & 127), ($? & 128) ? 'with' : 'without';
+ }
+ else {
+ printf STDERR "exited with value %d\n", $? >> 8;
+ }
+ exit $? >> 8;
+ }
+}
+sub run_hook {
+ my $type = shift;
+ my $script = shift;
+ if ($script =~ m,^/,) {
+ # Full path provided for the hook script
+ if (-x "$script") {
+ &exec_script($type,$script);
+ }
+ else {
+ die "The provided $type hook script [$script] could not be run.\n";
+ }
+ }
+ else {
+ # Look for it in a safe path
+ for my $path ('/bin', '/sbin', '/usr/bin', '/usr/sbin') {
+ if (-x "$path/$script") {
+ &exec_script($type, "$path/$script");
+ return 0;
+ }
+ }
+ # No luck
+ print STDERR "Could not find $type hook script [$script].\n";
+ die "Looked in: '/bin', '/sbin', '/usr/bin', '/usr/sbin'\n";
+ }
+}
+
+
+## Run user hook script here, if any
+if (-x "$prerm_hook") {
+ &run_hook("prerm", $prerm_hook);
+}
+if (-d "/etc/kernel/prerm.d") {
+ print STDERR "Examining /etc/kernel/prerm.d.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version " .
+ "--arg=$realimageloc$kimage-$version /etc/kernel/prerm.d") &&
+ die "Failed to process /etc/kernel/prerm.d";
+}
+if (-d "/etc/kernel/prerm.d/$version") {
+ print STDERR "Examining /etc/kernel/prerm.d/$version.\n";
+ system ("run-parts --verbose --exit-on-error --arg=$version" .
+ " --arg=$realimageloc$kimage-$version " .
+ "/etc/kernel/prerm.d/$version") &&
+ die "Failed to process /etc/kernel/prerm.d/$version";
+}
+
+sub success () {
+ my @files_to_remove = qw{
+ modules.dep modules.isapnpmap modules.pcimap
+ modules.usbmap modules.parportmap
+ modules.generic_string modules.ieee1394map
+ modules.ieee1394map modules.pnpbiosmap
+ modules.alias modules.ccwmap modules.inputmap
+ modules.symbols modules.ofmap modules.seriomap
+ modules.alias.bin modules.builtin.bin modules.dep.bin modules.symbols.bin
+ };
+
+ foreach my $extra_file (@files_to_remove) {
+ if (-f "/lib/modules/$version/$extra_file") {
+ unlink "/lib/modules/$version/$extra_file";
+ }
+ }
+ exit 0;
+}
+
+
+
+&success();
+exit 0;
+__END__
+
+
+
+
+
diff --git a/debian/debian.env b/debian/debian.env
new file mode 100644
index 00000000000..be31a0c2701
--- /dev/null
+++ b/debian/debian.env
@@ -0,0 +1 @@
+DEBIAN=debian.master
diff --git a/debian/docs/README.inclusion-list b/debian/docs/README.inclusion-list
new file mode 100644
index 00000000000..b025393e7c1
--- /dev/null
+++ b/debian/docs/README.inclusion-list
@@ -0,0 +1,51 @@
+This README describes the reason for, and the use of, module
+inclusion lists.
+
+The original Hardy release had the notion of sub-flavours,
+e.g., a flavour that was constructed as a subset of an existing flavour.
+For example, the virtual flavour was extracted from the server flavour using
+a subset of the server flavour modules. However, there were some difficult
+mainteneance issues with regard to packaging, make rules, and scripts. This
+re-implementation of the sub-flavours philosophy is hopefully simpler,
+and retrofitable to all releases.
+
+A module inclusion list looks at the problem of of constructing a package
+from the perspective of what modules do we _want_ in the package, as opposed
+to what modules we _don't_ want. As the kernel matures, more and more devices are added
+which makes the problem of configuration maintenance a real pain in the ass.
+If we took the approach of disabling all of the config options that we don't want,
+then the differences between flavours will quickly become quite large, making
+it difficult to quickly compare the individual flavour configs. Each time a
+new config option is added then we also have to make a decision about disabling in
+order to continue to keep the minimal number of modules.
+
+A module inclusion list is applied on a per-flavour basis. For example,
+debian.<BRANCH>/control.d/${flavour}.inclusion-list. For example, the
+config for virtual is very close to server and generic, but the inclusion list
+causes the virtual package to be constructed with _only_ the modules described
+in the inclusion list.
+
+The inclusion list format is a simple bash regular expression list of files. For example,
+
+arch/*/{crypto,kernel,oprofile}
+drivers/acpi/*
+drivers/ata/ahci.ko
+
+These 3 regular expression forms are suitable for expansion by bash and as inputs to 'find'.
+See debian/scripts/module-inclusion for details.
+
+There are 2 log files created as a side effect of the application of the module
+inclusion list; $(flavour).inclusion-list.log and $(flavour).depmod.log.
+
+$(flavour).inclusion-list.log : This log is created while the inclusion list
+modules are being copied. If any are missing, then those warnings go in this log.
+While its not considered a fatal error, you should endevour to correct your inclusion
+list such that there are no missing modules.
+
+$(flavour).depmod.log : The log is created as a result of running depmod on the
+resulting set of modules. If there are missing symbols then you'll find that information
+here. Again, you should modify your inclusion list such that there are no missing
+symbols.
+
+Tim Gardner <tim.gardner@canonical.com>
+June 2, 2010
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 00000000000..999bc1df031
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,226 @@
+#!/usr/bin/make -f
+#
+# $(DEBIAN)/rules for Ubuntu linux
+#
+# Use this however you want, just give credit where credit is due.
+#
+# Copyright (c) 2007 Ben Collins <bcollins@ubuntu.com>
+#
+
+DEBIAN=$(shell awk -F= '($$1 == "DEBIAN") { print $$2 }' <debian/debian.env)
+
+# dpkg-buildpackage passes options that are incomptatible
+# with the kernel build.
+unexport CFLAGS
+unexport LDFLAGS
+
+export LC_ALL=C
+export SHELL=/bin/bash -e
+
+# Where do we find the common configuration.
+export DROOT=debian
+
+# Common variables for all architectures
+include $(DROOT)/rules.d/0-common-vars.mk
+
+# Pull in some arch specific stuff
+-include $(DEBIAN)/rules.d/$(arch).mk
+
+# Maintainer targets
+include $(DROOT)/rules.d/1-maintainer.mk
+
+# Debian Build System targets
+binary: binary-indep binary-arch
+
+build: build-arch build-indep
+
+clean: debian/control
+ dh_testdir
+ dh_testroot
+ dh_clean
+
+ # d-i stuff
+ rm -rf $(DEBIAN)/d-i-$(arch)
+
+ # normal build junk
+ rm -rf $(DEBIAN)/abi/$(release)-$(revision)
+ rm -rf $(builddir)
+ rm -f $(stampdir)/stamp-*
+ rm -rf $(DEBIAN)/linux-*
+
+ # This gets rid of the d-i packages in control
+ cp -f $(DEBIAN)/control.stub $(DEBIAN)/control
+ cp $(DEBIAN)/changelog debian/changelog
+
+ # Install the copyright information.
+ cp $(DEBIAN)/copyright debian/copyright
+
+distclean: clean
+ rm -rf debian.master/control debian.master/control.stub \
+ debian.master/d-i/kernel-versions debian/changelog \
+ debian/control debian/control.stub debian/copyright
+
+# Builds the image, arch headers and debug packages
+include $(DROOT)/rules.d/2-binary-arch.mk
+
+# Rules for building the udebs ($(DEBIAN)-installer)
+include $(DROOT)/rules.d/5-udebs.mk
+
+# Builds the source, doc and linux-headers indep packages
+include $(DROOT)/rules.d/3-binary-indep.mk
+
+# Various checks to be performed on builds
+include $(DROOT)/rules.d/4-checks.mk
+
+# Misc stuff
+$(DEBIAN)/control.stub: $(DEBIAN)/d-i/kernel-versions.in \
+ $(DROOT)/scripts/control-create \
+ $(DEBIAN)/control.stub.in \
+ $(DEBIAN)/changelog \
+ $(wildcard $(DEBIAN)/control.d/* $(DEBIAN)/sub-flavours/*.vars)
+ for i in $(DEBIAN)/d-i/kernel-versions.in $(DEBIAN)/control.stub.in; do \
+ new=`echo $$i | sed 's/\.in$$//'`; \
+ cat $$i | sed -e 's/PKGVER/$(release)/g' \
+ -e 's/ABINUM/$(abinum)/g' \
+ -e 's/SRCPKGNAME/$(src_pkg_name)/g' \
+ > $$new; \
+ done
+ flavours="$(wildcard $(DEBIAN)/control.d/vars.* $(DEBIAN)/sub-flavours/*.vars)";\
+ for i in $$flavours; do \
+ $(SHELL) $(DROOT)/scripts/control-create $$i | \
+ sed -e 's/PKGVER/$(release)/g' \
+ -e 's/ABINUM/$(abinum)/g' \
+ -e 's/SRCPKGNAME/$(src_pkg_name)/g' \
+ >> $(DEBIAN)/control.stub; \
+ done
+ cp $(DEBIAN)/control.stub $(DEBIAN)/control
+
+.PHONY: debian/control
+debian/control: $(DEBIAN)/control.stub
+ rm -rf $(builddir)/modules $(builddir)/firmware \
+ $(builddir)/kernel-versions $(builddir)/package-list \
+ $(builddir)/$(DEBIAN)
+ mkdir -p $(builddir)/modules/$(arch)/
+ cp $(DEBIAN)/d-i/modules/* $(builddir)/modules/$(arch)/
+ mkdir -p $(builddir)/firmware/$(arch)/
+ cp $(DEBIAN)/d-i/firmware/* $(builddir)/firmware/$(arch)/
+ cp $(DEBIAN)/d-i/package-list $(DEBIAN)/d-i/kernel-versions $(builddir)/
+ touch $(builddir)/modules/$(arch)/kernel-image
+ # kernel-wedge needs to poke around in $(DEBIAN)/
+ ln -nsf $(CURDIR)/debian $(builddir)/debian
+
+ # Some files may need to differ between architectures
+ if [ -d $(DEBIAN)/d-i/modules-$(arch) ]; then \
+ cp $(DEBIAN)/d-i/modules-$(arch)/* \
+ $(builddir)/modules/$(arch)/; \
+ fi
+ if [ -d $(DEBIAN)/d-i/firmware-$(arch) ]; then \
+ cp $(DEBIAN)/d-i/firmware-$(arch)/* \
+ $(builddir)/firmware/$(arch)/; \
+ fi
+
+ # Remove unwanted stuff for this architecture
+ if [ -r "$(DEBIAN)/d-i/exclude-modules.$(arch)" ]; then \
+ (cat $(DEBIAN)/d-i/exclude-modules.$(arch); \
+ ls $(builddir)/modules/$(arch)/) | sort | uniq -d | \
+ (cd $(builddir)/modules/$(arch)/; xargs rm -f); \
+ fi
+ if [ -r "$(DEBIAN)/d-i/exclude-firmware.$(arch)" ]; then \
+ (cat $(DEBIAN)/d-i/exclude-firmware.$(arch); \
+ ls $(builddir)/firmware/$(arch)/) | sort | uniq -d | \
+ (cd $(builddir)/firmware/$(arch)/; xargs rm -f); \
+ fi
+
+ # Per flavour module lists
+ flavour_modules=`ls $(DEBIAN)/d-i/modules.$(arch)-* 2>/dev/null` \
+ || true; \
+ if [ "$$flavour_modules" != "" ]; then \
+ for flav in $$flavour_modules; do \
+ name=`echo $$flav | sed 's/.*\/modules.$(arch)-//'`; \
+ mkdir $(builddir)/modules/$(arch)-$$name; \
+ (cd $(builddir)/modules/; tar cf - `cat ../$$flav`) | \
+ (cd $(builddir)/modules/$(arch)-$$name/; tar xf -); \
+ touch $(builddir)/modules/$(arch)-$$name/kernel-image; \
+ done; \
+ fi
+ flavour_firmware=`ls $(DEBIAN)/d-i/firmware.$(arch)-* 2>/dev/null` \
+ || true; \
+ if [ "$$flavour_firmware" != "" ]; then \
+ for flav in $$flavour_firmware; do \
+ name=`echo $$flav | sed 's/.*\/firmware.$(arch)-//'`; \
+ mkdir $(builddir)/firmware/$(arch)-$$name; \
+ (cd $(builddir)/firmware/; tar cf - `cat ../$$flav`) | \
+ (cd $(builddir)/firmware/$(arch)-$$name/; tar xf -);\
+ touch $(builddir)/firmware/$(arch)-$$name/kernel-image; \
+ done; \
+ fi
+
+ # Some files may need to differ between flavours
+ flavour_module_dirs=`ls -d $(DEBIAN)/d-i/modules-$(arch)-* 2>/dev/null`\
+ || true; \
+ if [ "$$flavour_module_dirs" ]; then \
+ for flav in $$flavour_module_dirs; do \
+ name=`echo $$flav | sed 's/.*\/modules-$(arch)-//'`; \
+ [ -d $(builddir)/modules/$(arch)-$$name ] || \
+ cp -a $(builddir)/modules/$(arch) \
+ modules/$(arch)-$$name; \
+ cp $$flav/* $(builddir)/modules/$(arch)-$$name/; \
+ done; \
+ fi
+ flavour_firmware_dirs=`ls -d $(DEBIAN)/d-i/firmware-$(arch)-* 2>/dev/null`\
+ || true; \
+ if [ "$$flavour_firmware_dirs" ]; then \
+ for flav in $$flavour_firmware_dirs; do \
+ name=`echo $$flav | sed 's/.*\/firmware-$(arch)-//'`; \
+ [ -d $(builddir)/firmware/$(arch)-$$name ] || \
+ cp -a $(builddir)/firmware/$(arch) \
+ firmware/$(arch)-$$name; \
+ cp $$flav/* $(builddir)/firmware/$(arch)-$$name/; \
+ done; \
+ fi
+
+ # Remove unwanted stuff for each flavour
+ flavour_exclude=`ls $(DEBIAN)/d-i/exclude-modules.$(arch)-* 2>/dev/null`\
+ || true; \
+ if [ "$$flavour_exclude" ]; then \
+ for flav in $$flavour_exclude; do \
+ name=`echo $$flav | sed 's/.*\/exclude-modules.$(arch)-//'`;\
+ [ -d $(builddir)/modules/$(arch)-$$name ] || \
+ cp -a $(builddir)/modules/$(arch) \
+ $(builddir)/modules/$(arch)-$$name; \
+ (cat $$flav; \
+ ls $(builddir)/modules/$(arch)-$$name) | \
+ sort | uniq -d | \
+ (cd $(builddir)/modules/$(arch)-$$name/; \
+ xargs rm -f); \
+ done; \
+ fi
+ flavour_exclude=`ls $(DEBIAN)/d-i/exclude-firmware.$(arch)-* 2>/dev/null`\
+ || true; \
+ if [ "$$flavour_exclude" ]; then \
+ for flav in $$flavour_exclude; do \
+ name=`echo $$flav | sed 's/.*\/exclude-firmware.$(arch)-//'`;\
+ [ -d $(builddir)/firmware/$(arch)-$$name ] || \
+ cp -a $(builddir)/firmware/$(arch) \
+ $(builddir)/firmware/$(arch)-$$name; \
+ (cat $$flav; \
+ ls $(builddir)/firmware/$(arch)-$$name) | \
+ sort | uniq -d | \
+ (cd $(builddir)/firmware/$(arch)-$$name/; \
+ xargs rm -f); \
+ done; \
+ fi
+
+ if [ ! -d $(builddir)/modules/$(build_arch) ]; then \
+ mkdir -p $(builddir)/modules/$(build_arch); \
+ cp $(builddir)/modules/$(arch)/* \
+ $(builddir)/modules/$(build_arch); \
+ fi
+ if [ ! -d $(builddir)/firmware/$(build_arch) ]; then \
+ mkdir -p $(builddir)/firmware/$(build_arch); \
+ cp $(builddir)/firmware/$(arch)/* \
+ $(builddir)/firmware/$(build_arch); \
+ fi
+
+ cp $(DEBIAN)/control.stub debian/control.stub
+ cd $(builddir) && kernel-wedge gen-control > $(CURDIR)/debian/control
diff --git a/debian/rules.d/0-common-vars.mk b/debian/rules.d/0-common-vars.mk
new file mode 100644
index 00000000000..eec7ada96b2
--- /dev/null
+++ b/debian/rules.d/0-common-vars.mk
@@ -0,0 +1,172 @@
+#
+# The source package name will be the first token from $(DEBIAN)/changelog
+#
+src_pkg_name=$(shell sed -n '1s/^\(.*\) (.*).*$$/\1/p' $(DEBIAN)/changelog)
+
+# Get some version info
+release := $(shell sed -n '1s/^$(src_pkg_name).*(\(.*\)-.*).*$$/\1/p' $(DEBIAN)/changelog)
+revisions := $(shell sed -n 's/^$(src_pkg_name)\ .*($(release)-\(.*\)).*$$/\1/p' $(DEBIAN)/changelog | tac)
+revision ?= $(word $(words $(revisions)),$(revisions))
+prev_revisions := $(filter-out $(revision),0.0 $(revisions))
+prev_revision := $(word $(words $(prev_revisions)),$(prev_revisions))
+
+family=ubuntu
+
+# This is an internally used mechanism for the daily kernel builds. It
+# creates packages whose ABI is suffixed with a minimal representation of
+# the current git HEAD sha. If .git/HEAD is not present, then it uses the
+# uuidgen program,
+#
+# AUTOBUILD can also be used by anyone wanting to build a custom kernel
+# image, or rebuild the entire set of Ubuntu packages using custom patches
+# or configs.
+AUTOBUILD=
+
+#
+# This is a way to support some external variables. A good example is
+# a local setup for ccache and distcc See LOCAL_ENV_CC and
+# LOCAL_ENV_DISTCC_HOSTS in the definition of kmake.
+# For example:
+# LOCAL_ENV_CC="ccache distcc"
+# LOCAL_ENV_DISTCC_HOSTS="localhost 10.0.2.5 10.0.2.221"
+#
+-include $(CURDIR)/../.lucid-env
+
+ifneq ($(AUTOBUILD),)
+skipabi = true
+skipmodule = true
+skipdbg = true
+gitver=$(shell if test -f .git/HEAD; then cat .git/HEAD; else uuidgen; fi)
+gitverpre=$(shell echo $(gitver) | cut -b -3)
+gitverpost=$(shell echo $(gitver) | cut -b 38-40)
+abi_suffix = -$(gitverpre)$(gitverpost)
+endif
+
+ifneq ($(NOKERNLOG),)
+ubuntu_log_opts += --no-kern-log
+endif
+ifneq ($(PRINTSHAS),)
+ubuntu_log_opts += --print-shas
+endif
+
+# Get the kernels own extra version to be added to the release signature.
+extraversion=$(shell awk '/EXTRAVERSION =/ { print $$3 }' <Makefile)
+
+#
+# The debug packages are ginormous, so you probably want to skip
+# building them (as a developer).
+#
+ifeq ($(wildcard /CurrentlyBuilding),)
+skipdbg=true
+endif
+
+abinum := $(shell echo $(revision) | sed -e 's/\..*//')$(abi_suffix)
+prev_abinum := $(shell echo $(prev_revision) | sed -e 's/\..*//')$(abi_suffix)
+abi_release := $(release)-$(abinum)
+
+uploadnum := $(shell echo $(revision) | sed -e 's/.*\.//')
+ifneq ($(wildcard /CurrentlyBuilding),)
+ uploadnum := $(uploadnum)-Ubuntu
+endif
+
+# We force the sublevel to be exactly what we want. The actual source may
+# be an in development git tree. We want to force it here instead of
+# committing changes to the top level Makefile
+SUBLEVEL := $(shell echo $(release) | awk -F. '{print $$3}')
+
+arch := $(shell dpkg-architecture -qDEB_HOST_ARCH)
+abidir := $(CURDIR)/$(DEBIAN)/abi/$(release)-$(revision)/$(arch)
+prev_abidir := $(CURDIR)/$(DEBIAN)/abi/$(release)-$(prev_revision)/$(arch)
+commonconfdir := $(CURDIR)/$(DEBIAN)/config
+archconfdir := $(CURDIR)/$(DEBIAN)/config/$(arch)
+sharedconfdir := $(CURDIR)/debian/config
+builddir := $(CURDIR)/debian/build
+stampdir := $(CURDIR)/debian/stamps
+
+#
+# The binary package name always starts with linux-image-$KVER-$ABI.$UPLOAD_NUM. There
+# are places that you'll find linux-image hard coded, but I guess thats OK since the
+# assumption that the binary package always starts with linux-image will never change.
+#
+bin_pkg_name=linux-image-$(abi_release)
+hdrs_pkg_name=linux-headers-$(abi_release)
+#
+# The generation of content in the doc package depends on both 'AUTOBUILD=' and
+# 'do_doc_package_content=true'. There are usually build errors during the development
+# cycle, so its OK to leave 'do_doc_package_content=false' until those build
+# failures get sorted out. Finally, the doc package doesn't really need to be built
+# for developer testing (its kind of slow), so only do it if on a buildd.
+do_doc_package=true
+do_doc_package_content=true
+ifeq ($(wildcard /CurrentlyBuilding),)
+do_doc_package_content=false
+endif
+doc_pkg_name=$(src_pkg_name)-doc
+
+#
+# Similarly with the linux-source package, you need not build it as a developer. Its
+# somewhat I/O intensive and utterly useless.
+#
+do_source_package=true
+do_source_package_content=true
+ifeq ($(wildcard /CurrentlyBuilding),)
+do_source_package_content=false
+endif
+
+# linux-libc-dev may not be needed, default to building it.
+do_libc_dev_package=true
+
+# common headers normally is built as an indep package, but may be arch
+do_common_headers_indep=true
+
+# add a 'full source' mode
+do_full_source=false
+
+# build tools
+ifneq ($(wildcard $(CURDIR)/tools),)
+do_tools?=true
+else
+do_tools?=false
+endif
+tools_pkg_name=$(src_pkg_name)-tools-$(abi_release)
+tools_common_pkg_name=$(src_pkg_name)-tools-common
+
+# Support parallel=<n> in DEB_BUILD_OPTIONS (see #209008)
+#
+# These 2 environment variables set the -j value of the kernel build. For example,
+# CONCURRENCY_LEVEL=16 fakeroot $(DEBIAN)/rules binary-debs
+# or
+# DEB_BUILD_OPTIONS=parallel=16 fakeroot $(DEBIAN)/rules binary-debs
+#
+# The default is to use the number of CPUs.
+#
+COMMA=,
+DEB_BUILD_OPTIONS_PARA = $(subst parallel=,,$(filter parallel=%,$(subst $(COMMA), ,$(DEB_BUILD_OPTIONS))))
+ifneq (,$(DEB_BUILD_OPTIONS_PARA))
+ CONCURRENCY_LEVEL := $(DEB_BUILD_OPTIONS_PARA)
+endif
+
+ifeq ($(CONCURRENCY_LEVEL),)
+ # Check the environment
+ CONCURRENCY_LEVEL := $(shell echo $$CONCURRENCY_LEVEL)
+ # No? Then build with the number of CPUs on the host.
+ ifeq ($(CONCURRENCY_LEVEL),)
+ CONCURRENCY_LEVEL := $(shell expr `getconf _NPROCESSORS_ONLN` \* 1)
+ endif
+ # Oh hell, give 'em one
+ ifeq ($(CONCURRENCY_LEVEL),)
+ CONCURRENCY_LEVEL := 1
+ endif
+endif
+
+conc_level = -j$(CONCURRENCY_LEVEL)
+
+# target_flavour is filled in for each step
+kmake = make ARCH=$(build_arch) \
+ EXTRAVERSION=-$(abinum)-$(target_flavour) \
+ CONFIG_DEBUG_SECTION_MISMATCH=y SUBLEVEL=$(SUBLEVEL) \
+ KBUILD_BUILD_VERSION="$(uploadnum)" \
+ LOCALVERSION= localver-extra=
+ifneq ($(LOCAL_ENV_CC),)
+kmake += CC=$(LOCAL_ENV_CC) DISTCC_HOSTS=$(LOCAL_ENV_DISTCC_HOSTS)
+endif
diff --git a/debian/rules.d/1-maintainer.mk b/debian/rules.d/1-maintainer.mk
new file mode 100644
index 00000000000..65b9688e94b
--- /dev/null
+++ b/debian/rules.d/1-maintainer.mk
@@ -0,0 +1,137 @@
+# The following targets are for the maintainer only! do not run if you don't
+# know what they do.
+
+.PHONY: printenv updateconfigs printchanges insertchanges startnewrelease diffupstream help updateportsconfigs editportsconfigs
+
+help:
+ @echo "These are the targets in addition to the normal $(DEBIAN) ones:"
+ @echo
+ @echo " printenv : Print some variables used in the build"
+ @echo
+ @echo " updateconfigs : Update core arch configs"
+ @echo
+ @echo " editconfigs : Update core arch configs interractively"
+ @echo " genconfigs : Generate core arch configs in CONFIGS/*"
+ @echo
+ @echo " updateportsconfigs : Update ports arch configs"
+ @echo
+ @echo " editportsconfigs : Update ports arch configs interactivly"
+ @echo " genportconfigs : Generate ports arch configs in CONFIGS/*"
+ @echo
+ @echo " printchanges : Print the current changelog entries (from git)"
+ @echo
+ @echo " insertchanges : Insert current changelog entries (from git)"
+ @echo
+ @echo " startnewrelease : Start a new changelog set"
+ @echo
+ @echo " diffupstream : Diff stock kernel code against upstream (git)"
+ @echo
+ @echo " help : If you are kernel hacking, you need the professional"
+ @echo " version of this"
+ @echo
+ @echo "Environment variables:"
+ @echo
+ @echo " NOKERNLOG : Do not add upstream kernel commits to changelog"
+ @echo " CONCURRENCY_LEVEL=X"
+ @echo " : Use -jX for kernel compile"
+ @echo " PRINTSHAS : Include SHAs for commits in changelog"
+
+printdebian:
+ @echo "$(DEBIAN)"
+
+updateconfigs:
+ dh_testdir;
+ $(SHELL) $(DROOT)/scripts/misc/kernelconfig oldconfig
+ rm -rf build
+
+defaultconfigs:
+ dh_testdir;
+ yes "" | $(SHELL) $(DROOT)/scripts/misc/kernelconfig defaultconfig
+ rm -rf build
+
+editconfigs:
+ dh_testdir
+ $(SHELL) $(DROOT)/scripts/misc/kernelconfig editconfig
+ rm -rf build
+
+genconfigs:
+ dh_testdir
+ $(SHELL) $(DROOT)/scripts/misc/kernelconfig genconfig
+ rm -rf build
+
+updateportsconfigs:
+ dh_testdir;
+ $(SHELL) $(DROOT)/scripts/misc/kernelconfig oldconfig ports
+ rm -rf build
+
+editportsconfigs:
+ dh_testdir
+ $(SHELL) $(DROOT)/scripts/misc/kernelconfig editconfig ports
+ rm -rf build
+
+genportsconfigs:
+ dh_testdir
+ $(SHELL) $(DROOT)/scripts/misc/kernelconfig genconfig ports
+ rm -rf build
+
+printenv:
+ dh_testdir
+ @echo "src package name = $(src_pkg_name)"
+ @echo "release = $(release)"
+ @echo "revisions = $(revisions)"
+ @echo "revision = $(revision)"
+ @echo "uploadnum = $(uploadnum)"
+ @echo "prev_revisions = $(prev_revisions)"
+ @echo "prev_revision = $(prev_revision)"
+ @echo "abinum = $(abinum)"
+ @echo "gitver = $(gitver)"
+ @echo "flavours = $(flavours)"
+ @echo "skipabi = $(skipabi)"
+ @echo "skipmodule = $(skipmodule)"
+ @echo "skipdbg = $(skipdbg)"
+ @echo "ubuntu_log_opts = $(ubuntu_log_opts)"
+ifneq ($(SUBLEVEL),)
+ @echo "SUBLEVEL = $(SUBLEVEL)"
+endif
+ @echo "CONCURRENCY_LEVEL = $(CONCURRENCY_LEVEL)"
+ @echo "bin package name = $(bin_pkg_name)"
+ @echo "hdr package name = $(hdrs_pkg_name)"
+ @echo "doc package name = $(doc_pkg_name)"
+ @echo "do_doc_package = $(do_doc_package)"
+ @echo "do_doc_package_content = $(do_doc_package_content)"
+ @echo "do_source_package = $(do_source_package)"
+ @echo "do_source_package_content = $(do_source_package_content)"
+ @echo "do_libc_dev_package = $(do_libc_dev_package)"
+ @echo "do_common_headers_indep = $(do_common_headers_indep)"
+ @echo "do_full_source = $(do_full_source)"
+ @echo "do_tools = $(do_tools)"
+
+printchanges:
+ @baseCommit=$$(git log --pretty=format:'%H %s' | \
+ awk '/UBUNTU: '".*Ubuntu-$(release)-$(prev_revision)"'$$/ { print $$1; exit }'); \
+ git log "$$baseCommit"..HEAD | \
+ perl -w -f $(DROOT)/scripts/misc/git-ubuntu-log $(ubuntu_log_opts)
+
+insertchanges:
+ @perl -w -f $(DROOT)/scripts/misc/insert-changes.pl $(DROOT) $(DEBIAN)
+
+diffupstream:
+ @git diff-tree -p refs/remotes/linux-2.6/master..HEAD $(shell ls | grep -vE '^(ubuntu|$(DEBIAN)|\.git.*)')
+
+startnewrelease:
+ dh_testdir
+ @nextminor=$(shell expr `echo $(revision) | awk -F. '{print $$2}'` + 1); \
+ now="$(shell date -R)"; \
+ echo "Creating new changelog set for $(abi_release).$$nextminor..."; \
+ echo -e "$(src_pkg_name) ($(abi_release).$$nextminor) UNRELEASED; urgency=low\n" > $(DEBIAN)/changelog.new; \
+ echo " CHANGELOG: Do not edit directly. Autogenerated at release." >> \
+ $(DEBIAN)/changelog.new; \
+ echo " CHANGELOG: Use the printchanges target to see the curent changes." \
+ >> $(DEBIAN)/changelog.new; \
+ echo " CHANGELOG: Use the insertchanges target to create the final log." \
+ >> $(DEBIAN)/changelog.new; \
+ echo -e "\n -- $$DEBFULLNAME <$$DEBEMAIL> $$now\n" >> \
+ $(DEBIAN)/changelog.new ; \
+ cat $(DEBIAN)/changelog >> $(DEBIAN)/changelog.new; \
+ mv $(DEBIAN)/changelog.new $(DEBIAN)/changelog
+
diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk
new file mode 100644
index 00000000000..0b2e03d9b9d
--- /dev/null
+++ b/debian/rules.d/2-binary-arch.mk
@@ -0,0 +1,357 @@
+# We don't want make removing intermediary stamps
+.SECONDARY :
+
+# Prepare the out-of-tree build directory
+ifeq ($(do_full_source),true)
+build_cd = cd $(builddir)/build-$*; #
+build_O =
+else
+build_cd =
+build_O = O=$(builddir)/build-$*
+endif
+
+prepare-%: $(stampdir)/stamp-prepare-%
+ @# Empty for make to be happy
+$(stampdir)/stamp-prepare-%: $(stampdir)/stamp-prepare-tree-% prepare-checks-%
+ @touch $@
+$(stampdir)/stamp-prepare-tree-%: target_flavour = $*
+$(stampdir)/stamp-prepare-tree-%: $(commonconfdir)/config.common.$(family) $(archconfdir)/config.common.$(arch) $(archconfdir)/config.flavour.%
+ @echo "Preparing $*..."
+ install -d $(builddir)/build-$*
+ touch $(builddir)/build-$*/ubuntu-build
+ [ "$(do_full_source)" != 'true' ] && true || \
+ rsync -a --exclude debian --exclude debian.master --exclude $(DEBIAN) * $(builddir)/build-$*
+ cat $^ | sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$* $(release)$(extraversion)"/' > $(builddir)/build-$*/.config
+ find $(builddir)/build-$* -name "*.ko" | xargs rm -f
+ $(build_cd) $(kmake) $(build_O) silentoldconfig prepare scripts
+ touch $@
+
+# Do the actual build, including image and modules
+build-%: $(stampdir)/stamp-build-%
+ @# Empty for make to be happy
+$(stampdir)/stamp-build-%: target_flavour = $*
+$(stampdir)/stamp-build-%: prepare-%
+ @echo "Building $*..."
+ $(build_cd) $(kmake) $(build_O) $(conc_level) $(build_image)
+ $(build_cd) $(kmake) $(build_O) $(conc_level) modules
+ @touch $@
+
+# Install the finished build
+install-%: pkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*
+install-%: bindoc = $(pkgdir)/usr/share/doc/$(bin_pkg_name)-$*
+install-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym
+install-%: basepkg = $(hdrs_pkg_name)
+install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$*
+install-%: target_flavour = $*
+install-%: $(stampdir)/stamp-build-% checks-%
+ dh_testdir
+ dh_testroot
+ dh_clean -k -p$(bin_pkg_name)-$*
+ dh_clean -k -p$(hdrs_pkg_name)-$*
+ dh_clean -k -p$(dbg_pkg_name)-$*
+
+ # The main image
+ # compress_file logic required because not all architectures
+ # generate a zImage automatically out of the box
+ifeq ($(compress_file),)
+ install -m644 -D $(builddir)/build-$*/$(kernel_file) \
+ $(pkgdir)/boot/$(install_file)-$(abi_release)-$*
+else
+ install -d $(pkgdir)/boot
+ gzip -c9v $(builddir)/build-$*/$(kernel_file) > \
+ $(pkgdir)/boot/$(install_file)-$(abi_release)-$*
+ chmod 644 $(pkgdir)/boot/$(install_file)-$(abi_release)-$*
+endif
+
+ install -m644 $(builddir)/build-$*/.config \
+ $(pkgdir)/boot/config-$(abi_release)-$*
+ install -m644 $(abidir)/$* \
+ $(pkgdir)/boot/abi-$(abi_release)-$*
+ install -m644 $(builddir)/build-$*/System.map \
+ $(pkgdir)/boot/System.map-$(abi_release)-$*
+ifeq ($(no_dumpfile),)
+ makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \
+ -x $(builddir)/build-$*/vmlinux
+endif
+
+ $(build_cd) $(kmake) $(build_O) modules_install \
+ INSTALL_MOD_STRIP=1 INSTALL_MOD_PATH=$(pkgdir)/ \
+ INSTALL_FW_PATH=$(pkgdir)/lib/firmware/$(abi_release)-$*
+
+ #
+ # Remove all modules not in the inclusion list.
+ #
+ if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \
+ $(DROOT)/scripts/module-inclusion $(pkgdir)/lib/modules/$(abi_release)-$*/kernel \
+ $(DEBIAN)/control.d/$(target_flavour).inclusion-list 2>&1 | \
+ tee $(target_flavour).inclusion-list.log; \
+ /sbin/depmod -b $(pkgdir) -ea -F $(pkgdir)/boot/System.map-$(abi_release)-$* \
+ $(abi_release)-$* 2>&1 |tee $(target_flavour).depmod.log; \
+ fi
+
+ifeq ($(no_dumpfile),)
+ makedumpfile -g $(pkgdir)/boot/vmcoreinfo-$(abi_release)-$* \
+ -x $(builddir)/build-$*/vmlinux
+endif
+ rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/build
+ rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/source
+
+ # Some initramfs-tools specific modules
+ install -d $(pkgdir)/lib/modules/$(abi_release)-$*/initrd
+ if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko ]; then\
+ ln -f $(pkgdir)/lib/modules/$(abi_release)-$*/kernel/drivers/video/vesafb.ko \
+ $(pkgdir)/lib/modules/$(abi_release)-$*/initrd/; \
+ fi
+
+ # Now the image scripts
+ install -d $(pkgdir)/DEBIAN
+ for script in postinst postrm preinst prerm; do \
+ sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(install_file)/g' \
+ -e 's/=L/$(loader)/g' -e 's@=B@$(build_arch)@g' \
+ $(DROOT)/control-scripts/$$script > $(pkgdir)/DEBIAN/$$script; \
+ chmod 755 $(pkgdir)/DEBIAN/$$script; \
+ done
+
+ # Install the full changelog.
+ifeq ($(do_doc_package),true)
+ install -d $(bindoc)
+ cat $(DEBIAN)/changelog $(DEBIAN)/changelog.historical | \
+ gzip -9 >$(bindoc)/changelog.Debian.old.gz
+ chmod 644 $(bindoc)/changelog.Debian.old.gz
+endif
+
+ifneq ($(skipdbg),true)
+ # Debug image is simple
+ install -m644 -D $(builddir)/build-$*/vmlinux \
+ $(dbgpkgdir)/usr/lib/debug/boot/vmlinux-$(abi_release)-$*
+ $(build_cd) $(kmake) $(build_O) modules_install \
+ INSTALL_MOD_PATH=$(dbgpkgdir)/usr/lib/debug
+ rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/build
+ rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/source
+ rm -f $(dbgpkgdir)/usr/lib/debug/lib/modules/$(abi_release)-$*/modules.*
+ rm -fr $(dbgpkgdir)/usr/lib/debug/lib/firmware
+endif
+
+ # The flavour specific headers image
+ # TODO: Would be nice if we didn't have to dupe the original builddir
+ install -d -m755 $(hdrdir)
+ cat $(builddir)/build-$*/.config | \
+ sed -e 's/.*CONFIG_DEBUG_INFO=.*/# CONFIG_DEBUG_INFO is not set/g' > \
+ $(hdrdir)/.config
+ chmod 644 $(hdrdir)/.config
+ $(kmake) O=$(hdrdir) silentoldconfig prepare scripts
+ # We'll symlink this stuff
+ rm -f $(hdrdir)/Makefile
+ rm -rf $(hdrdir)/include2
+ # powerpc seems to need some .o files for external module linking. Add them in.
+ifeq ($(arch),powerpc)
+ mkdir -p $(hdrdir)/arch/powerpc/lib
+ cp $(builddir)/build-$*/arch/powerpc/lib/*.o $(hdrdir)/arch/powerpc/lib
+endif
+ # Script to symlink everything up
+ $(SHELL) $(DROOT)/scripts/link-headers "$(hdrdir)" "$(basepkg)" "$*"
+ # Setup the proper asm symlink
+ rm -f $(hdrdir)/include/asm
+ ln -s asm-$(asm_link) $(hdrdir)/include/asm
+ # The build symlink
+ install -d debian/$(basepkg)-$*/lib/modules/$(abi_release)-$*
+ ln -s /usr/src/$(basepkg)-$* \
+ debian/$(basepkg)-$*/lib/modules/$(abi_release)-$*/build
+ # And finally the symvers
+ install -m644 $(builddir)/build-$*/Module.symvers \
+ $(hdrdir)/Module.symvers
+
+ # Now the header scripts
+ install -d $(CURDIR)/debian/$(basepkg)-$*/DEBIAN
+ for script in postinst; do \
+ sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(install_file)/g' \
+ $(DROOT)/control-scripts/headers-$$script > \
+ $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \
+ chmod 755 $(CURDIR)/debian/$(basepkg)-$*/DEBIAN/$$script; \
+ done
+
+ # At the end of the package prep, call the tests
+ DPKG_ARCH="$(arch)" KERN_ARCH="$(build_arch)" FLAVOUR="$*" \
+ VERSION="$(abi_release)" REVISION="$(revision)" \
+ PREV_REVISION="$(prev_revision)" ABI_NUM="$(abinum)" \
+ PREV_ABI_NUM="$(prev_abinum)" BUILD_DIR="$(builddir)/build-$*" \
+ INSTALL_DIR="$(pkgdir)" SOURCE_DIR="$(CURDIR)" \
+ run-parts -v $(DROOT)/tests
+
+ #
+ # Remove files which are generated at installation by postinst,
+ # except for modules.order and modules.builtin
+ #
+ mkdir $(pkgdir)/lib/modules/$(abi_release)-$*/_
+ mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.order \
+ $(pkgdir)/lib/modules/$(abi_release)-$*/_
+ if [ -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin ] ; then \
+ mv $(pkgdir)/lib/modules/$(abi_release)-$*/modules.builtin \
+ $(pkgdir)/lib/modules/$(abi_release)-$*/_modules.builtin; \
+ fi
+ rm -f $(pkgdir)/lib/modules/$(abi_release)-$*/modules.*
+ mv $(pkgdir)/lib/modules/$(abi_release)-$*/_/* \
+ $(pkgdir)/lib/modules/$(abi_release)-$*
+ rmdir $(pkgdir)/lib/modules/$(abi_release)-$*/_
+
+headers_tmp := $(CURDIR)/debian/tmp-headers
+headers_dir := $(CURDIR)/debian/linux-libc-dev
+
+hmake := $(MAKE) -C $(CURDIR) O=$(headers_tmp) SUBLEVEL=$(SUBLEVEL) \
+ EXTRAVERSION=-$(abinum) INSTALL_HDR_PATH=$(headers_tmp)/install \
+ SHELL="$(SHELL)" ARCH=$(header_arch)
+
+install-arch-headers:
+ dh_testdir
+ dh_testroot
+ dh_clean -k -plinux-libc-dev
+
+ rm -rf $(headers_tmp)
+ install -d $(headers_tmp) $(headers_dir)/usr/include/
+
+ $(hmake) $(defconfig)
+ mv $(headers_tmp)/.config $(headers_tmp)/.config.old
+ sed -e 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \
+ -e 's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \
+ $(headers_tmp)/.config.old > $(headers_tmp)/.config
+ $(hmake) silentoldconfig
+ $(hmake) headers_install
+
+ ( cd $(headers_tmp)/install/include/ && \
+ find . -name '.' -o -name '.*' -prune -o -print | \
+ cpio -pvd --preserve-modification-time \
+ $(headers_dir)/usr/include/ )
+
+ rm -rf $(headers_tmp)
+
+binary-arch-headers: install-arch-headers
+ dh_testdir
+ dh_testroot
+ifeq ($(do_libc_dev_package),true)
+ dh_installchangelogs -plinux-libc-dev
+ dh_installdocs -plinux-libc-dev
+ dh_compress -plinux-libc-dev
+ dh_fixperms -plinux-libc-dev
+ dh_installdeb -plinux-libc-dev
+ dh_gencontrol -plinux-libc-dev
+ dh_md5sums -plinux-libc-dev
+ dh_builddeb -plinux-libc-dev
+endif
+
+binary-%: pkgimg = $(bin_pkg_name)-$*
+binary-%: pkghdr = $(hdrs_pkg_name)-$*
+binary-%: dbgpkg = $(bin_pkg_name)-$*-dbgsym
+binary-%: install-%
+ dh_testdir
+ dh_testroot
+
+ dh_installchangelogs -p$(pkgimg)
+ dh_installdocs -p$(pkgimg)
+ dh_compress -p$(pkgimg)
+ dh_fixperms -p$(pkgimg)
+ dh_installdeb -p$(pkgimg)
+ dh_shlibdeps -p$(pkgimg)
+ dh_gencontrol -p$(pkgimg)
+ dh_md5sums -p$(pkgimg)
+ dh_builddeb -p$(pkgimg) -- -Zbzip2 -z9
+
+ dh_installchangelogs -p$(pkghdr)
+ dh_installdocs -p$(pkghdr)
+ dh_compress -p$(pkghdr)
+ dh_fixperms -p$(pkghdr)
+ dh_shlibdeps -p$(pkghdr)
+ dh_installdeb -p$(pkghdr)
+ dh_gencontrol -p$(pkghdr)
+ dh_md5sums -p$(pkghdr)
+ dh_builddeb -p$(pkghdr)
+
+ifneq ($(skipdbg),true)
+ dh_installchangelogs -p$(dbgpkg)
+ dh_installdocs -p$(dbgpkg)
+ dh_compress -p$(dbgpkg)
+ dh_fixperms -p$(dbgpkg)
+ dh_installdeb -p$(dbgpkg)
+ dh_gencontrol -p$(dbgpkg)
+ dh_md5sums -p$(dbgpkg)
+ dh_builddeb -p$(dbgpkg)
+
+ # Hokay...here's where we do a little twiddling...
+ # Renaming the debug package prevents it from getting into
+ # the primary archive, and therefore prevents this very large
+ # package from being mirrored. It is instead, through some
+ # archive admin hackery, copied to http://ddebs.ubuntu.com.
+ #
+ mv ../$(dbgpkg)_$(release)-$(revision)_$(arch).deb \
+ ../$(dbgpkg)_$(release)-$(revision)_$(arch).ddeb
+ set -e; \
+ if grep -qs '^Build-Debug-Symbols: yes$$' /CurrentlyBuilding; then \
+ sed -i '/^$(dbgpkg)_/s/\.deb /.ddeb /' debian/files; \
+ else \
+ grep -v '^$(dbgpkg)_.*$$' debian/files > debian/files.new; \
+ mv debian/files.new debian/files; \
+ fi
+ # Now, the package wont get into the archive, but it will get put
+ # into the debug system.
+endif
+
+$(stampdir)/stamp-flavours:
+ @echo $(flavours) > $@
+
+#
+# per-architecture packages
+#
+$(stampdir)/stamp-prepare-perarch:
+ @echo "Preparing perarch ..."
+ifeq ($(do_tools),true)
+ install -d $(builddir)/tools-$*
+ for i in *; do ln -s $(CURDIR)/$$i $(builddir)/tools-$*/; done
+ rm $(builddir)/tools-$*/tools
+ rsync -a tools/ $(builddir)/tools-$*/tools/
+endif
+ touch $@
+
+$(stampdir)/stamp-build-perarch: prepare-perarch
+ifeq ($(do_tools),true)
+ cd $(builddir)/tools-$*/tools/perf && make
+endif
+ @touch $@
+
+install-perarch: toolspkgdir = $(CURDIR)/debian/$(tools_pkg_name)
+install-perarch: $(stampdir)/stamp-build-perarch
+ # Add the tools.
+ifeq ($(do_tools),true)
+ install -d $(toolspkgdir)/usr/bin
+ install -s -m755 $(builddir)/tools-$*/tools/perf/perf \
+ $(toolspkgdir)/usr/bin/perf_$(abi_release)
+endif
+
+binary-perarch: toolspkg = $(tools_pkg_name)
+binary-perarch: install-perarch
+ @# Empty for make to be happy
+ifeq ($(do_tools),true)
+ dh_installchangelogs -p$(toolspkg)
+ dh_installdocs -p$(toolspkg)
+ dh_compress -p$(toolspkg)
+ dh_fixperms -p$(toolspkg)
+ dh_shlibdeps -p$(toolspkg)
+ dh_installdeb -p$(toolspkg)
+ dh_gencontrol -p$(toolspkg)
+ dh_md5sums -p$(toolspkg)
+ dh_builddeb -p$(toolspkg)
+endif
+
+binary-debs: binary-perarch $(stampdir)/stamp-flavours $(addprefix binary-,$(flavours))
+
+build-arch: $(addprefix build-,$(flavours))
+
+binary-arch-deps = binary-debs
+ifeq ($(AUTOBUILD),)
+binary-arch-deps += binary-udebs
+endif
+ifeq ($(do_libc_dev_package),true)
+binary-arch-deps += binary-arch-headers
+endif
+ifneq ($(do_common_headers_indep),true)
+binary-arch-deps += binary-headers
+endif
+binary-arch: $(binary-arch-deps)
diff --git a/debian/rules.d/3-binary-indep.mk b/debian/rules.d/3-binary-indep.mk
new file mode 100644
index 00000000000..c670e5f3e01
--- /dev/null
+++ b/debian/rules.d/3-binary-indep.mk
@@ -0,0 +1,127 @@
+build-indep:
+
+docpkg = $(doc_pkg_name)
+docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg)
+install-doc:
+ dh_testdir
+ dh_testroot
+ dh_clean -k -p$(docpkg)
+
+ install -d $(docdir)
+ifeq ($(do_doc_package_content),true)
+ # First the html docs. We skip these for autobuilds
+ if [ -z "$(AUTOBUILD)" ]; then \
+ install -d $(docdir)/$(doc_pkg_name)-tmp; \
+ $(kmake) O=$(docdir)/$(doc_pkg_name)-tmp htmldocs; \
+ mv $(docdir)/$(doc_pkg_name)-tmp/Documentation/DocBook \
+ $(docdir)/html; \
+ rm -rf $(docdir)/$(doc_pkg_name)-tmp; \
+ fi
+endif
+ # Copy the rest
+ cp -a Documentation/* $(docdir)
+ rm -rf $(docdir)/DocBook
+ find $(docdir) -name .gitignore | xargs rm -f
+
+indep_hdrpkg = $(hdrs_pkg_name)
+indep_hdrdir = $(CURDIR)/debian/$(indep_hdrpkg)/usr/src/$(indep_hdrpkg)
+install-headers:
+ dh_testdir
+ dh_testroot
+ dh_clean -k -p$(indep_hdrpkg)
+
+ install -d $(indep_hdrdir)
+ find . -path './debian' -prune -o -path './$(DEBIAN)' -prune \
+ -o -path './include/*' -prune \
+ -o -path './scripts/*' -prune -o -type f \
+ \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
+ -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) \
+ -print | cpio -pd --preserve-modification-time $(indep_hdrdir)
+ cp -a drivers/media/dvb/dvb-core/*.h $(indep_hdrdir)/drivers/media/dvb/dvb-core
+ cp -a drivers/media/video/*.h $(indep_hdrdir)/drivers/media/video
+ cp -a drivers/media/dvb/frontends/*.h $(indep_hdrdir)/drivers/media/dvb/frontends
+ cp -a scripts include $(indep_hdrdir)
+ (find arch -name include -type d -print | \
+ xargs -n1 -i: find : -type f) | \
+ cpio -pd --preserve-modification-time $(indep_hdrdir)
+
+srcpkg = $(src_pkg_name)-source-$(release)
+srcdir = $(CURDIR)/debian/$(srcpkg)/usr/src/$(srcpkg)
+install-source:
+ dh_testdir
+ dh_testroot
+ dh_clean -k -p$(srcpkg)
+
+ install -d $(srcdir)
+ifeq ($(do_source_package_content),true)
+ find . -path './debian' -prune -o -path './$(DEBIAN)' -prune -o \
+ -path './.*' -prune -o -print | \
+ cpio -pd --preserve-modification-time $(srcdir)
+ (cd $(srcdir)/..; tar cf - $(srcpkg)) | bzip2 -9c > \
+ $(srcdir).tar.bz2
+ rm -rf $(srcdir)
+endif
+
+install-tools: toolspkg = $(tools_common_pkg_name)
+install-tools: toolsbin = $(CURDIR)/debian/$(toolspkg)/usr/bin
+install-tools: toolsman = $(CURDIR)/debian/$(toolspkg)/usr/share/man
+install-tools:
+ dh_testdir
+ dh_testroot
+ dh_clean -k -p$(toolspkg)
+
+ install -d $(toolsbin)
+ install -d $(toolsman)/man1
+
+ install -m755 debian/tools/perf $(toolsbin)/perf
+
+ install -d $(builddir)/tools
+ for i in *; do ln -s $(CURDIR)/$$i $(builddir)/tools/; done
+ rm $(builddir)/tools/tools
+ rsync -a tools/ $(builddir)/tools/tools/
+
+ cd $(builddir)/tools/tools/perf && make man
+ install -m644 $(builddir)/tools/tools/perf/Documentation/*.1 \
+ $(toolsman)/man1
+
+install-indep-deps =
+ifeq ($(do_common_headers_indep),true)
+install-indep-deps += install-headers
+endif
+ifeq ($(do_doc_package),true)
+install-indep-deps += install-doc
+endif
+ifeq ($(do_source_package),true)
+install-indep-deps += install-source
+endif
+ifeq ($(do_tools),true)
+install-indep-deps += install-tools
+endif
+install-indep: $(install-indep-deps)
+
+# This is just to make it easy to call manually. Normally done in
+# binary-indep target during builds.
+binary-headers: install-headers
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs -p$(indep_hdrpkg)
+ dh_installdocs -p$(indep_hdrpkg)
+ dh_compress -p$(indep_hdrpkg)
+ dh_fixperms -p$(indep_hdrpkg)
+ dh_installdeb -p$(indep_hdrpkg)
+ dh_gencontrol -p$(indep_hdrpkg)
+ dh_md5sums -p$(indep_hdrpkg)
+ dh_builddeb -p$(indep_hdrpkg)
+
+binary-indep: install-indep
+ dh_testdir
+ dh_testroot
+
+ dh_installchangelogs -i
+ dh_installdocs -i
+ dh_compress -i
+ dh_fixperms -i
+ dh_installdeb -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
diff --git a/debian/rules.d/4-checks.mk b/debian/rules.d/4-checks.mk
new file mode 100644
index 00000000000..d48c05d6260
--- /dev/null
+++ b/debian/rules.d/4-checks.mk
@@ -0,0 +1,34 @@
+# Check ABI for package against last release (if not same abinum)
+abi-%: $(abidir)/%
+ @# Empty for make to be happy
+$(abidir)/%: $(stampdir)/stamp-build-%
+ install -d $(abidir)
+ sed -e 's/^\(.\+\)[[:space:]]\+\(.\+\)[[:space:]]\(.\+\)$$/\3 \2 \1/' \
+ $(builddir)/build-$*/Module.symvers | sort > $@
+
+abi-check-%: $(abidir)/%
+ @perl -f $(DROOT)/scripts/abi-check "$*" "$(prev_abinum)" "$(abinum)" \
+ "$(prev_abidir)" "$(abidir)" "$(skipabi)"
+
+# Check the module list against the last release (always)
+module-%: $(abidir)/%.modules
+ @# Empty for make to be happy
+$(abidir)/%.modules: $(stampdir)/stamp-build-%
+ install -d $(abidir)
+ find $(builddir)/build-$*/ -name \*.ko | \
+ sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > $@
+
+module-check-%: $(abidir)/%.modules
+ @perl -f $(DROOT)/scripts/module-check "$*" \
+ "$(prev_abidir)" "$(abidir)" $(skipmodule)
+
+checks-%: abi-check-% module-check-%
+ @# Will be calling more stuff later
+
+# Check the config against the known options list.
+config-prepare-check-%: $(stampdir)/stamp-prepare-tree-%
+ @perl -f $(DROOT)/scripts/config-check \
+ $(builddir)/build-$*/.config "$(arch)" "$*" "$(sharedconfdir)" "$(skipconfig)"
+
+prepare-checks-%: config-prepare-check-%
+ @# Will be calling more stuff later
diff --git a/debian/rules.d/5-udebs.mk b/debian/rules.d/5-udebs.mk
new file mode 100644
index 00000000000..24fbadffc8d
--- /dev/null
+++ b/debian/rules.d/5-udebs.mk
@@ -0,0 +1,38 @@
+# Do udebs if not disabled in the arch-specific makefile
+binary-udebs: binary-debs debian/control
+ifeq ($(disable_d_i),)
+ @$(MAKE) --no-print-directory -f $(DROOT)/rules DEBIAN=$(DEBIAN) \
+ do-binary-udebs
+endif
+
+do-binary-udebs:
+ dh_testdir
+ dh_testroot
+
+ # unpack the kernels into a temporary directory
+ mkdir -p debian/d-i-${arch}
+
+ imagelist=$$(cat $(builddir)/kernel-versions | grep ^${arch} | awk '{print $$4}') && \
+ for i in $$imagelist; do \
+ dpkg -x $$(ls ../linux-image-$$i\_$(release)-$(revision)_${arch}.deb) \
+ debian/d-i-${arch}; \
+ /sbin/depmod -b debian/d-i-${arch} $$i; \
+ done
+
+ # kernel-wedge will error if no modules unless this is touched
+ touch $(CURDIR)/debian/build/no-modules
+
+ touch ignore-dups
+ export SOURCEDIR=$(CURDIR)/debian/d-i-${arch} && \
+ cd $(builddir) && \
+ kernel-wedge install-files && \
+ kernel-wedge check
+
+ # Build just the udebs
+ dilist=$$(dh_listpackages -s | grep "\-di$$") && \
+ [ -z "$dilist" ] || \
+ for i in $$dilist; do \
+ dh_fixperms -p$$i; \
+ dh_gencontrol -p$$i; \
+ dh_builddeb -p$$i; \
+ done
diff --git a/debian/scripts/abi-check b/debian/scripts/abi-check
new file mode 100755
index 00000000000..b7df0d89b73
--- /dev/null
+++ b/debian/scripts/abi-check
@@ -0,0 +1,210 @@
+#!/usr/bin/perl -w
+
+my $flavour = shift;
+my $prev_abinum = shift;
+my $abinum = shift;
+my $prev_abidir = shift;
+my $abidir = shift;
+my $skipabi = shift;
+
+my $fail_exit = 1;
+my $EE = "EE:";
+my $errors = 0;
+my $abiskip = 0;
+
+my $count;
+
+print "II: Checking ABI for $flavour...\n";
+
+if (-f "$prev_abidir/ignore"
+ or -f "$prev_abidir/$flavour.ignore" or "$skipabi" eq "true") {
+ print "WW: Explicitly asked to ignore ABI, running in no-fail mode\n";
+ $fail_exit = 0;
+ $abiskip = 1;
+ $EE = "WW:";
+}
+
+if ($prev_abinum != $abinum) {
+ print "II: Different ABI's, running in no-fail mode\n";
+ $fail_exit = 0;
+ $EE = "WW:";
+}
+
+if (not -f "$abidir/$flavour" or not -f "$prev_abidir/$flavour") {
+ print "EE: Previous or current ABI file missing!\n";
+ print " $abidir/$flavour\n" if not -f "$abidir/$flavour";
+ print " $prev_abidir/$flavour\n" if not -f "$prev_abidir/$flavour";
+
+ # Exit if the ABI files are missing, but return status based on whether
+ # skip ABI was indicated.
+ if ("$abiskip" eq "1") {
+ exit(0);
+ } else {
+ exit(1);
+ }
+}
+
+my %symbols;
+my %symbols_ignore;
+my %modules_ignore;
+my %module_syms;
+
+# See if we have any ignores
+my $ignore = 0;
+print " Reading symbols/modules to ignore...";
+
+for $file ("$prev_abidir/../blacklist", "$prev_abidir/../../perm-blacklist") {
+ if (-f $file) {
+ open(IGNORE, "< $file") or
+ die "Could not open $file";
+ while (<IGNORE>) {
+ chomp;
+ if ($_ =~ m/M: (.*)/) {
+ $modules_ignore{$1} = 1;
+ } else {
+ $symbols_ignore{$_} = 1;
+ }
+ $ignore++;
+ }
+ close(IGNORE);
+ }
+}
+print "read $ignore symbols/modules.\n";
+
+sub is_ignored($$) {
+ my ($mod, $sym) = @_;
+
+ die "Missing module name in is_ignored()" if not defined($mod);
+ die "Missing symbol name in is_ignored()" if not defined($sym);
+
+ if (defined($symbols_ignore{$sym}) or defined($modules_ignore{$mod})) {
+ return 1;
+ }
+ return 0;
+}
+
+# Read new syms first
+print " Reading new symbols ($abinum)...";
+$count = 0;
+open(NEW, "< $abidir/$flavour") or
+ die "Could not open $abidir/$flavour";
+while (<NEW>) {
+ chomp;
+ m/^(EXPORT_.+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/;
+ $symbols{$4}{'type'} = $1;
+ $symbols{$4}{'loc'} = $2;
+ $symbols{$4}{'hash'} = $3;
+ $module_syms{$2} = 0;
+ $count++;
+}
+close(NEW);
+print "read $count symbols.\n";
+
+# Now the old symbols, checking for missing ones
+print " Reading old symbols ($prev_abinum)...";
+$count = 0;
+open(OLD, "< $prev_abidir/$flavour") or
+ die "Could not open $prev_abidir/$flavour";
+while (<OLD>) {
+ chomp;
+ m/^(EXPORT_.+)\s(.+)\s(0x[0-9a-f]+)\s(.+)$/;
+ $symbols{$4}{'old_type'} = $1;
+ $symbols{$4}{'old_loc'} = $2;
+ $symbols{$4}{'old_hash'} = $3;
+ $count++;
+}
+close(OLD);
+
+print "read $count symbols.\n";
+
+print "II: Checking for missing symbols in new ABI...";
+$count = 0;
+foreach $sym (keys(%symbols)) {
+ if (!defined($symbols{$sym}{'type'})) {
+ print "\n" if not $count;
+ printf(" MISS : %s%s\n", $sym,
+ is_ignored($symbols{$sym}{'old_loc'}, $sym) ? " (ignored)" : "");
+ $count++ if !is_ignored($symbols{$sym}{'old_loc'}, $sym);
+ }
+}
+print " " if $count;
+print "found $count missing symbols\n";
+if ($count) {
+ print "$EE Symbols gone missing (what did you do!?!)\n";
+ $errors++;
+}
+
+
+print "II: Checking for new symbols in new ABI...";
+$count = 0;
+foreach $sym (keys(%symbols)) {
+ if (!defined($symbols{$sym}{'old_type'})) {
+ print "\n" if not $count;
+ print " NEW : $sym\n";
+ $count++;
+ }
+}
+print " " if $count;
+print "found $count new symbols\n";
+if ($count and $prev_abinum == $abinum) {
+ print "WW: Found new symbols within same ABI. Not recommended\n";
+}
+
+print "II: Checking for changes to ABI...\n";
+$count = 0;
+my $moved = 0;
+my $changed_type = 0;
+my $changed_hash = 0;
+foreach $sym (keys(%symbols)) {
+ if (!defined($symbols{$sym}{'old_type'}) or
+ !defined($symbols{$sym}{'type'})) {
+ next;
+ }
+
+ # Changes in location don't hurt us, but log it anyway
+ if ($symbols{$sym}{'loc'} ne $symbols{$sym}{'old_loc'}) {
+ printf(" MOVE : %-40s : %s => %s\n", $sym, $symbols{$sym}{'old_loc'},
+ $symbols{$sym}{'loc'});
+ $moved++;
+ }
+
+ # Changes to export type are only bad if new type isn't
+ # EXPORT_SYMBOL. Changing things to GPL are bad.
+ if ($symbols{$sym}{'type'} ne $symbols{$sym}{'old_type'}) {
+ printf(" TYPE : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_type'}.
+ $symbols{$sym}{'type'}, is_ignored($symbols{$sym}{'loc'}, $sym)
+ ? " (ignored)" : "");
+ $changed_type++ if $symbols{$sym}{'type'} ne "EXPORT_SYMBOL"
+ and !is_ignored($symbols{$sym}{'loc'}, $sym);
+ }
+
+ # Changes to the hash are always bad
+ if ($symbols{$sym}{'hash'} ne $symbols{$sym}{'old_hash'}) {
+ printf(" HASH : %-40s : %s => %s%s\n", $sym, $symbols{$sym}{'old_hash'},
+ $symbols{$sym}{'hash'}, is_ignored($symbols{$sym}{'loc'}, $sym)
+ ? " (ignored)" : "");
+ $changed_hash++ if !is_ignored($symbols{$sym}{'loc'}, $sym);
+ $module_syms{$symbols{$sym}{'loc'}}++;
+ }
+}
+
+print "WW: $moved symbols changed location\n" if $moved;
+print "$EE $changed_type symbols changed export type and weren't ignored\n" if $changed_type;
+print "$EE $changed_hash symbols changed hash and weren't ignored\n" if $changed_hash;
+
+$errors++ if $changed_hash or $changed_type;
+if ($changed_hash) {
+ print "II: Module hash change summary...\n";
+ foreach $mod (sort { $module_syms{$b} <=> $module_syms{$a} } keys %module_syms) {
+ next if ! $module_syms{$mod};
+ printf(" %-40s: %d\n", $mod, $module_syms{$mod});
+ }
+}
+
+print "II: Done\n";
+
+if ($errors) {
+ exit($fail_exit);
+} else {
+ exit(0);
+}
diff --git a/debian/scripts/config-check b/debian/scripts/config-check
new file mode 100755
index 00000000000..47166f49681
--- /dev/null
+++ b/debian/scripts/config-check
@@ -0,0 +1,389 @@
+#!/usr/bin/perl
+#
+# check-config -- check the current config for issues
+#
+use strict;
+
+my $P = 'check-config';
+
+my $test = -1;
+if ($ARGV[0] eq '--test') {
+ $test = $ARGV[1] + 0;
+} elsif ($#ARGV != 4) {
+ die "Usage: $P <config> <arch> <flavour> <commonconfig> <warn-only>\n";
+}
+
+my ($config, $arch, $flavour, $commonconfig, $warn_only) = @ARGV;
+
+my $checks = "$commonconfig/enforce";
+my %values = ();
+
+# If we are in overridden then still perform the checks and emit the messages
+# but do not return failure. Those items marked FATAL will alway trigger
+# failure.
+my $fail_exit = 1;
+$fail_exit = 0 if ($warn_only eq 'true' || $warn_only eq '1');
+my $exit_val = 0;
+
+# Predicate execution engine.
+sub pred_first {
+ my ($rest) = @_;
+ my $depth = 0;
+ my $off;
+ my $char;
+ my $pred;
+
+ for ($off = 0; $off <= length($rest); $off++) {
+ $char = substr($rest, $off, 1);
+ if ($char eq '(') {
+ $depth++;
+ } elsif ($char eq ')') {
+ $depth--;
+ } elsif ($depth == 0 && $char eq '&') {
+ last;
+ } elsif ($depth == 0 && $char eq '|') {
+ last;
+ }
+ }
+ if ($depth > 0) {
+ die "$P: $rest: missing close parenthesis ')'\n";
+ } elsif ($depth < 0) {
+ die "$P: $rest: missing open parenthesis '('\n";
+ }
+
+ ($pred, $rest) = (substr($rest, 0, $off), substr($rest, $off + 1));
+
+ $pred =~ s/^\s*//;
+ $pred =~ s/\s*$//;
+
+ #print "pred<$pred> rest<$rest> char<$char>\n";
+ ($pred, $rest, $char);
+}
+
+sub pred_do {
+ my ($pred) = @_;
+ my (@a) = split(' ', $pred);
+
+ if ($a[0] eq 'arch') {
+ die "$P: $pred: malformed -- $pred <arch>\n" if ($#a != 1);
+ #print " *** ARCH<$arch ?? $a[1]>\n";
+ return ($arch eq $a[1])
+ } elsif ($a[0] eq 'flavour') {
+ die "$P: $pred: malformed -- $pred <flavour>\n" if ($#a != 1);
+ #print " *** FLAVOUR<$flavour ?? $a[1]>\n";
+ return ($flavour eq $a[1])
+ } elsif ($a[0] eq 'value') {
+ die "$P: $pred: malformed -- $pred <name> <val>\n" if ($#a != 2);
+ #print " *** CHECK<$a[1] $a[2] ?? " . $values{$a[1]} . ">\n";
+ return ($values{$a[1]} eq $a[2]);
+ } elsif ($a[0] eq 'exists') {
+ die "$P: $pred: malformed -- $pred <name>\n" if ($#a != 1);
+ return (defined $values{$a[1]});
+ } else {
+ die "$P: $pred: unknown predicate\n";
+ }
+ return 1;
+}
+sub pred_exec {
+ my ($rest) = @_;
+ my $pred;
+ my $res;
+ my $sep;
+
+ #print "pred_exec<$rest>\n";
+
+ ($pred, $rest, $sep) = pred_first($rest);
+
+ # Leading ! implies inversion.
+ if ($pred =~ /^\s*!\s*(.*)$/) {
+ #print " invert<$1>\n";
+ $res = !pred_exec($1);
+
+ # Recurse left for complex expressions.
+ } elsif ($pred =~ /^\s*\((.*)\)\s*$/) {
+ #print " left<$1>\n";
+ $res = pred_exec($1);
+
+ # Check for common syntax issues.
+ } elsif ($pred eq '') {
+ if ($sep eq '&' || $sep eq '|') {
+ die "$P: $pred$rest: malformed binary operator\n";
+ } else {
+ die "$P: $pred$rest: syntax error\n";
+ }
+
+ # A predicate, execute it.
+ } else {
+ #print " DO<$pred> sep<$sep>\n";
+ $res = pred_do($pred);
+ }
+
+ #print " pre-return res<$res> sep<$sep>\n";
+ if ($sep eq '') {
+ #
+
+ # Recurse right for binary operators -- note these are lazy.
+ } elsif ($sep eq '&' || $sep eq '|') {
+ #print " right<$rest> ? sep<$sep> res<$res>\n";
+ if ($rest =~ /^\s*($|\||\&)/) {
+ die "$P: $pred$rest: malformed binary operator\n";
+ }
+ if (($res && $sep eq '&') || (!$res && $sep eq '|')) {
+ #print " right<$rest>\n";
+ $res = pred_exec($rest);
+ }
+
+ } else {
+ die "$P: $pred$rest: malformed predicate\n";
+ }
+ #print " return res<$res> sep<$sep>\n";
+ return $res;
+}
+
+#
+# PREDICATE TESTS
+#
+my $test_total = 1;
+my $test_good = 0;
+sub pred_test {
+ my ($pred, $eres, $eerr) = @_;
+ my ($res, $err, $fail);
+
+ $test_total++;
+ if ($test != 0 && $test != $test_total - 1) {
+ return;
+ }
+
+ eval {
+ $res = pred_exec($pred);
+ };
+ $err = $@;
+ chomp($err);
+
+ $res = !!$res;
+ $eres = !!$eres;
+
+ $fail = '';
+ if (defined $eres && $res != $eres) {
+ $fail = "result missmatch, expected $eres returned $res";
+ }
+ if (defined $eerr && $err eq '') {
+ $fail = "error missmatch, expected '$eerr' returned success";
+ } elsif (defined $eerr && $err !~ /$eerr/) {
+ $fail = "error missmatch, expected '$eerr' returned '$err'";
+ } elsif (!defined $eerr && $err ne '') {
+ $fail = "error missmatch, expected success returned '$err'";
+ }
+
+ if ($fail eq '') {
+ $test_good++;
+ } else {
+ print "$pred: $test_total: FAIL: $fail\n";
+ }
+ #print "TEST<$pred> eres<$eres> eerr<$eerr> res<$res> err<$err>\n";
+}
+if ($test >= 0) {
+ $arch = 'MYARCH';
+ $flavour = 'MYFLAVOUR';
+ %values = ( 'ENABLED' => 'y', 'DISABLED' => 'n' );
+
+ # Errors.
+ my $eunkn = 'unknown predicate';
+ my $epred = 'malformed';
+ my $eclose = 'missing close parenthesis';
+ my $eopen = 'missing open parenthesis';
+ my $ebinary = 'malformed binary operator';
+
+ # Basic predicate tests.
+ print "TEST: $test_total: basic predicate tests ...\n";
+
+ pred_test('nosuchcommand', undef, $eunkn);
+ pred_test('arch', undef, $epred);
+ pred_test('arch MYARCH MYARCH', undef, $epred);
+ pred_test('arch MYARCH', 1, undef);
+ pred_test('arch NOTMYARCH', 0, undef);
+
+ pred_test('flavour', undef, $epred);
+ pred_test('flavour MYFLAVOUR myflavour', undef, $epred);
+ pred_test('flavour MYFLAVOUR', 1, undef);
+ pred_test('flavour NOTMYFLAVOUR', 0, undef);
+
+ pred_test('value', undef, $epred);
+ pred_test('value ENABLED', undef, $epred);
+ pred_test('value ENABLED ENABLED ENABLED', undef, $epred);
+ pred_test('value ENABLED y', 1, undef);
+ pred_test('value ENABLED n', 0, undef);
+ pred_test('value DISABLED n', 1, undef);
+ pred_test('value DISABLED y', 0, undef);
+
+ pred_test('exists', undef, $epred);
+ pred_test('exists ENABLED ENABLED', undef, $epred);
+ pred_test('exists ENABLED', 1, undef);
+ pred_test('exists DISABLED', 1, undef);
+ pred_test('exists MISSING', 0, undef);
+
+ print "TEST: $test_total: inversion tests ...\n";
+ pred_test('!exists ENABLED', 0, undef);
+ pred_test('!exists MISSING', 1, undef);
+ pred_test('!!exists ENABLED', 1, undef);
+ pred_test('!!exists MISSING', 0, undef);
+ pred_test('!!!exists ENABLED', 0, undef);
+ pred_test('!!!exists MISSING', 1, undef);
+
+ print "TEST: $test_total: parentheses tests ...\n";
+ pred_test('(exists ENABLED)', 1, undef);
+ pred_test('((exists ENABLED))', 1, undef);
+ pred_test('(((exists ENABLED)))', 1, undef);
+ pred_test('(exists MISSING)', 0, undef);
+ pred_test('((exists MISSING))', 0, undef);
+ pred_test('(((exists MISSING)))', 0, undef);
+
+ pred_test('(!exists ENABLED)', 0, undef);
+ pred_test('((!exists ENABLED))', 0, undef);
+ pred_test('(((!exists ENABLED)))', 0, undef);
+ pred_test('(!exists MISSING)', 1, undef);
+ pred_test('((!exists MISSING))', 1, undef);
+ pred_test('(((!exists MISSING)))', 1, undef);
+
+ pred_test('((!(exists ENABLED)))', 0, undef);
+ pred_test('((!(exists MISSING)))', 1, undef);
+ pred_test('(!((exists ENABLED)))', 0, undef);
+ pred_test('(!((exists MISSING)))', 1, undef);
+ pred_test('!(((exists ENABLED)))', 0, undef);
+ pred_test('!(((exists MISSING)))', 1, undef);
+ pred_test('!((!(exists ENABLED)))', 1, undef);
+ pred_test('!((!(exists MISSING)))', 0, undef);
+ pred_test('!(!(!(exists ENABLED)))', 0, undef);
+ pred_test('!(!(!(exists MISSING)))', 1, undef);
+
+ pred_test('(', undef, $eclose);
+ pred_test('()(', undef, $eclose);
+ pred_test('(())(', undef, $eclose);
+ pred_test('((()))(', undef, $eclose);
+ pred_test('(()', undef, $eclose);
+ pred_test('((())', undef, $eclose);
+ pred_test('(((()))', undef, $eclose);
+ pred_test('(()()', undef, $eclose);
+ pred_test('((())()', undef, $eclose);
+
+ pred_test(')', undef, $eopen);
+ pred_test('())', undef, $eopen);
+ pred_test('(()))', undef, $eopen);
+ pred_test('((())))', undef, $eopen);
+
+ print "TEST: $test_total: binary and tests ...\n";
+
+ pred_test('exists ENABLED &', undef, $ebinary);
+ pred_test('& exists ENABLED', undef, $ebinary);
+ pred_test('exists ENABLED & & exists ENABLED', undef, $ebinary);
+
+ pred_test('exists MISSING & exists MISSING', 0, undef);
+ pred_test('exists MISSING & exists ENABLED', 0, undef);
+ pred_test('exists ENABLED & exists MISSING', 0, undef);
+ pred_test('exists ENABLED & exists ENABLED', 1, undef);
+
+ pred_test('exists MISSING & exists MISSING & exists MISSING', 0, undef);
+ pred_test('exists MISSING & exists MISSING & exists ENABLED', 0, undef);
+ pred_test('exists MISSING & exists ENABLED & exists MISSING', 0, undef);
+ pred_test('exists MISSING & exists ENABLED & exists ENABLED', 0, undef);
+ pred_test('exists ENABLED & exists MISSING & exists MISSING', 0, undef);
+ pred_test('exists ENABLED & exists MISSING & exists ENABLED', 0, undef);
+ pred_test('exists ENABLED & exists ENABLED & exists MISSING', 0, undef);
+ pred_test('exists ENABLED & exists ENABLED & exists ENABLED', 1, undef);
+
+ print "TEST: $test_total: binary or tests ...\n";
+
+ pred_test('exists ENABLED |', undef, $ebinary);
+ pred_test('| exists ENABLED', undef, $ebinary);
+ pred_test('exists ENABLED | | exists ENABLED', undef, $ebinary);
+
+ pred_test('exists MISSING | exists MISSING', 0, undef);
+ pred_test('exists MISSING | exists ENABLED', 1, undef);
+ pred_test('exists ENABLED | exists MISSING', 1, undef);
+ pred_test('exists ENABLED | exists ENABLED', 1, undef);
+
+ pred_test('exists MISSING | exists MISSING | exists MISSING', 0, undef);
+ pred_test('exists MISSING | exists MISSING | exists ENABLED', 1, undef);
+ pred_test('exists MISSING | exists ENABLED | exists MISSING', 1, undef);
+ pred_test('exists MISSING | exists ENABLED | exists ENABLED', 1, undef);
+ pred_test('exists ENABLED | exists MISSING | exists MISSING', 1, undef);
+ pred_test('exists ENABLED | exists MISSING | exists ENABLED', 1, undef);
+ pred_test('exists ENABLED | exists ENABLED | exists MISSING', 1, undef);
+ pred_test('exists ENABLED | exists ENABLED | exists ENABLED', 1, undef);
+
+ print "TEST: $test_total: binary or/and combination tests ...\n";
+
+ pred_test('exists MISSING | exists MISSING & exists MISSING', 0, undef);
+ pred_test('exists MISSING | exists MISSING & exists ENABLED', 0, undef);
+ pred_test('exists MISSING | exists ENABLED & exists MISSING', 0, undef);
+ pred_test('exists MISSING | exists ENABLED & exists ENABLED', 1, undef);
+ pred_test('exists ENABLED | exists MISSING & exists MISSING', 1, undef);
+ pred_test('exists ENABLED | exists MISSING & exists ENABLED', 1, undef);
+ pred_test('exists ENABLED | exists ENABLED & exists MISSING', 1, undef);
+ pred_test('exists ENABLED | exists ENABLED & exists ENABLED', 1, undef);
+
+ print "TEST: $test_total: binary and/or combination tests ...\n";
+
+ pred_test('exists MISSING & exists MISSING | exists MISSING', 0, undef);
+ pred_test('exists MISSING & exists MISSING | exists ENABLED', 0, undef);
+ pred_test('exists MISSING & exists ENABLED | exists MISSING', 0, undef);
+ pred_test('exists MISSING & exists ENABLED | exists ENABLED', 0, undef);
+ pred_test('exists ENABLED & exists MISSING | exists MISSING', 0, undef);
+ pred_test('exists ENABLED & exists MISSING | exists ENABLED', 1, undef);
+ pred_test('exists ENABLED & exists ENABLED | exists MISSING', 1, undef);
+ pred_test('exists ENABLED & exists ENABLED | exists ENABLED', 1, undef);
+
+ $test_total--;
+ print "TEST: $test_good/$test_total succeeded\n";
+
+ exit $exit_val;
+}
+
+# Load up the current configuration values -- FATAL if this fails
+print "$P: $config: loading config\n";
+open(CONFIG, "<$config") || die "$P: $config: open failed -- $! -- aborting\n";
+while (<CONFIG>) {
+ # Pull out values.
+ /^#*\s*(CONFIG_\w+)[\s=](.*)$/ or next;
+ if ($2 eq 'is not set') {
+ $values{$1} = 'n';
+ } else {
+ $values{$1} = $2;
+ }
+}
+close(CONFIG);
+
+# FATAL: Check if we have an enforcement list.
+my $pass = 0;
+my $total = 0;
+my $line = '';
+print "$P: $checks: loading checks\n";
+open(CHECKS, "<$checks") || die "$P: $checks: open failed -- $! -- aborting\n";
+while (<CHECKS>) {
+ /^#/ && next;
+ chomp;
+
+ $line .= $_;
+ if ($line =~ /\\$/) {
+ chop($line);
+ $line .= " ";
+ next;
+ }
+ $line =~ /^\s*$/ && next;
+
+ #print "CHECK: <$line>\n";
+ $total++;
+ my $result = pred_exec($line);
+ if (!$result) {
+ print "$P: FAIL: $line\n";
+ $exit_val = $fail_exit;
+ } else {
+ $pass++;
+ }
+
+ $line = '';
+}
+close(CHECKS);
+
+print "$P: $pass/$total checks passed -- exit $exit_val\n";
+exit $exit_val;
diff --git a/debian/scripts/control-create b/debian/scripts/control-create
new file mode 100755
index 00000000000..f8ee9a2408e
--- /dev/null
+++ b/debian/scripts/control-create
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+. debian/debian.env
+
+vars=$1
+
+. $vars
+
+if [ "$is_sub" = "" ]; then
+ flavour=$(basename $vars | sed 's/.*\.//')
+ stub=${DEBIAN}/control.d/flavour-control.stub
+else
+ flavour=$(basename $vars .vars)
+ stub=${DEBIAN}/sub-flavours/control.stub
+fi
+
+cat $stub | grep -v '^#' | sed \
+ -e "s#FLAVOUR#$flavour#g" \
+ -e "s#DESC#$desc#g" \
+ -e "s#ARCH#$arch#g" \
+ -e "s#SUPPORTED#$supported#g" \
+ -e "s#TARGET#$target#g" \
+ -e "s#BOOTLOADER#$bootloader#g" \
+ -e "s#=PROVIDES=#$provides#g" \
+ -e "s#=CONFLICTS=#$conflicts#g"
diff --git a/debian/scripts/link-headers b/debian/scripts/link-headers
new file mode 100755
index 00000000000..fb42dbd12e4
--- /dev/null
+++ b/debian/scripts/link-headers
@@ -0,0 +1,42 @@
+#!/bin/bash -e
+
+. debian/debian.env
+
+hdrdir="$1"
+symdir="$2"
+flavour="$3"
+
+echo "Symlinking and copying headers for $flavour..."
+
+excludes="( -path ./debian -prune -o -path ./${DEBIAN} -prune -o -path ./.git ) -prune -o"
+
+(
+find . $excludes -type f \
+ \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
+ -name '*.sh' -o -name '*.pl' -o -name '*.lds' \) -print
+find ./include ./scripts -name .gitignore -prune -o -type f -print
+find ./include -mindepth 1 -maxdepth 1 $excludes -type d -print
+) | (
+while read file; do
+ dir=$file
+ lastdir=$file
+
+ if [ -e "$hdrdir/$file" -o -L "$hdrdir/$file" ]; then
+ continue
+ fi
+
+ while [ ! -e "$hdrdir/$dir" -a ! -L "$hdrdir/$dir" ]; do
+ lastdir=$dir
+ dir=`dirname $dir`
+ done
+ # If the last item to exist is a symlink we assume all is good
+ if [ ! -L "$hdrdir/$dir" ]; then
+ # Turns things like "./foo" into "../"
+ deref="`echo -n $lastdir | sed -e 's/^\.//' -e's,/[^/]*,../,g'`"
+ item="`echo -n $lastdir | sed -e 's/^\.\///'`"
+ ln -s $deref$symdir/$item $hdrdir/$item
+ fi
+done
+)
+
+exit
diff --git a/debian/scripts/misc/getabis b/debian/scripts/misc/getabis
new file mode 100755
index 00000000000..2a1fc552819
--- /dev/null
+++ b/debian/scripts/misc/getabis
@@ -0,0 +1,76 @@
+#!/bin/bash
+
+. debian/debian.env
+
+if [ "$#" != "2" ]; then
+ echo "Usage: $0 <release> <revision>" 1>&2
+ exit 1
+fi
+
+ver=$1
+revision=$2
+abi=$(echo $revision | awk -F. '{print $1}')
+
+verabi=$ver-$abi
+verfull=$ver-$revision
+
+WGET="wget --quiet -c"
+
+abidir="`pwd`/$DEBIAN/abi/$verfull"
+tmpdir="`pwd`/abi-tmp-$verfull"
+origdir="`pwd`"
+
+test -d $tmpdir || mkdir $tmpdir
+
+getall() {
+ arch=$1
+ shift
+
+ mkdir -p $abidir/$arch
+
+ for sub in $@; do
+ if [ -f $abidir/$arch/$sub ]; then
+ echo "Exists: $sub"
+ continue
+ fi
+ echo -n "Fetching $sub..."
+ filename=linux-image-${verabi}-${sub}_${verfull}_${arch}.deb
+ cd $tmpdir
+ for r in "${repo_list[@]}"
+ do
+ if ! [ -f $filename ]; then
+ $WGET $r/$filename
+ fi
+ done
+ if [ "$?" = "0" ]; then
+ echo -n "extracting..."
+ dpkg-deb --extract $filename tmp
+ if [ -f tmp/boot/abi-* ]; then
+ mv tmp/boot/abi-* $abidir/$arch/$sub
+ else
+ echo -n "NO ABI FILE..."
+ fi
+ (cd tmp; find lib/modules/$verabi-$sub/kernel -name '*.ko') | \
+ sed -e 's/.*\/\([^\/]*\)\.ko/\1/' | sort > \
+ $abidir/$arch/$sub.modules
+ rm -rf tmp $filename
+ echo "done."
+ else
+ echo "FAILED."
+ fi
+ cd $origdir
+ done
+}
+
+# MAIN
+
+# Setup abi directory
+mkdir -p $abidir
+echo $abi > $abidir/abiname
+
+# NOTE: The flavours are hardcoded, because they may have changed from the
+# current build.
+
+. $DEBIAN/etc/getabis
+
+rmdir $tmpdir
diff --git a/debian/scripts/misc/git-ubuntu-log b/debian/scripts/misc/git-ubuntu-log
new file mode 100755
index 00000000000..2967d875bd6
--- /dev/null
+++ b/debian/scripts/misc/git-ubuntu-log
@@ -0,0 +1,232 @@
+#!/usr/bin/perl -w
+
+use strict;
+use Text::Wrap;
+
+my $kernel_auth = "Upstream Kernel Changes";
+
+my (%map, @reverts);
+my $pstate = 1;
+my $no_kern_log = 0;
+my $print_shas = 0;
+my $first_print = 1;
+
+while (@ARGV) {
+ my $opt = $ARGV[0];
+ shift;
+ if ($opt eq "--no-kern-log") {
+ $no_kern_log = 1;
+ } elsif ($opt eq "--print-shas") {
+ $print_shas = 1;
+ } else {
+ print STDERR "Unknown options: $opt\n";
+ exit(1);
+ }
+}
+
+sub check_reverts($) {
+ my ($entry) = @_;
+ my ($check);
+
+ foreach $check (reverse @reverts) {
+ my $desc = "Revert \"" . $entry->{'desc'} . "\"";
+ if ($check->{'desc'} eq $desc) {
+ @reverts = grep($_->{'desc'} ne $desc, @reverts);
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+sub add_entry($) {
+ my ($entry) = @_;
+ my $key = $entry->{'author'};
+
+ # store description in array, in email->{desc list} map
+ if (exists $map{$key}) {
+ # grab ref
+ my $obj = $map{$key};
+
+ # add desc to array
+ push(@$obj, $entry);
+ } else {
+ # create new array, containing 1 item
+ my @arr = ($entry);
+
+ # store ref to array
+ $map{$key} = \@arr;
+ }
+}
+
+sub shortlog_entry($$$$$) {
+ my ($name, $desc, $bug, $cve, $commit) = @_;
+ my $entry;
+
+ $desc =~ s#/pub/scm/linux/kernel/git/#/.../#g;
+ $desc =~ s#\[PATCH\] ##g;
+
+ $desc =~ s#^\s*##g;
+ $desc =~ s# *UBUNTU: ##g;
+
+ $entry->{'desc'} = $desc;
+ if ($bug ne '') {
+ $entry->{'bugno'} = $bug;
+ }
+ $entry->{'cve'} = $cve;
+ $entry->{'commit'} = $commit;
+ $entry->{'author'} = $name;
+
+ if ($desc =~ /^Revert "/) {
+ push(@reverts, $entry);
+ return;
+ }
+
+ return if check_reverts($entry);
+
+ add_entry($entry);
+}
+
+# sort comparison function
+sub by_name($$) {
+ my ($a, $b) = @_;
+
+ uc($a) cmp uc($b);
+}
+
+sub shortlog_output {
+ my ($obj, $key, $entry);
+
+ foreach $key (sort by_name keys %map) {
+ next if $key eq $kernel_auth and $no_kern_log;
+
+ print "\n" unless $first_print;
+ $first_print = 0;
+
+ # output author
+ printf " [ %s ]\n\n", $key;
+
+ # output author's 1-line summaries
+ $obj = $map{$key};
+ foreach $entry (reverse @$obj) {
+ print wrap(" * ", " ", $entry->{'desc'}) . "\n";
+ # For non upstream changes, add other info.
+ if ($key ne $kernel_auth) {
+ if ($print_shas) {
+ print " - GIT-SHA " . $entry->{'commit'} .
+ "\n";
+ }
+ }
+ if (defined($entry->{'bugno'})) {
+ print " - LP: #" . $entry->{'bugno'} . "\n";
+ }
+ if (defined($entry->{'cve'})) {
+ print " - " . $entry->{'cve'} . "\n";
+ }
+ }
+ }
+}
+
+sub changelog_input {
+ my ($author, $desc, $commit, $entry, $cve);
+
+ while (<STDIN>) {
+ # get commit
+ if ($pstate == 1) {
+ next unless /^commit (.*)/;
+
+ $commit = $1;
+
+ $pstate++;
+ }
+
+ # get author and email
+ elsif ($pstate == 2) {
+ my ($email);
+
+ next unless /^[Aa]uthor:?\s*(.*?)\s*<(.*)>/;
+
+ $author = $1;
+ $email = $2;
+ $desc = undef;
+ $cve = undef;
+
+ # cset author fixups
+ if (!$author) {
+ $author = $email;
+ }
+ $pstate++;
+ }
+
+ # skip to blank line
+ elsif ($pstate == 3) {
+ next unless /^\s*$/;
+ $pstate++;
+ }
+
+ # skip to non-blank line
+ elsif ($pstate == 4) {
+ next unless /^\s*?(.*)/;
+ my $ignore = 0;
+ my $do_ignore = 0;
+ my $bug = undef;
+ my %bugz = ();
+ my $k;
+
+ # skip lines that are obviously not
+ # a 1-line cset description
+ next if /^\s*From: /;
+
+ chomp;
+ $desc = $1;
+
+ if ($desc =~ /^ *(Revert "|)UBUNTU:/) {
+ $do_ignore = 1;
+ } else {
+ $do_ignore = 0;
+ $author = $kernel_auth;
+ $ignore = 1 if $desc =~ /Merge /;
+ }
+ while (<STDIN>) {
+ $ignore = 1 if ($do_ignore && /^ *Ignore: yes/i);
+ if (/^ *Bug: *(#|)([0-9#,\s]*)\s*$/i) {
+ foreach $k (split('(,|\s)\s*(#|)', $2)) {
+ $bugz{$k} = 1 if (($k ne '') and ($k =~ /[0-9]+/));
+ }
+ }
+ elsif (/^ *BugLink: *http.*:\/\/.*\/([0-9]+)/i) {
+ $bugz{$1} = 1;
+ }
+ elsif (/^ *(CVE-.*)/) {
+ $cve = $1
+ }
+ last if /^commit /;
+ }
+
+ $bug = join(", #", sort keys(%bugz));
+ if (!$ignore) {
+ &shortlog_entry($author, $desc, $bug,
+ $cve, $commit, 0);
+ }
+
+ $pstate = 1;
+ if ($_ && /^commit (.*)/) {
+ $commit = $1;
+ $pstate++;
+ }
+ }
+
+ else {
+ die "invalid parse state $pstate";
+ }
+ }
+
+ foreach $entry (@reverts) {
+ add_entry($entry);
+ }
+}
+
+&changelog_input;
+&shortlog_output;
+
+exit(0);
diff --git a/debian/scripts/misc/insert-changes.pl b/debian/scripts/misc/insert-changes.pl
new file mode 100755
index 00000000000..c820597a9fc
--- /dev/null
+++ b/debian/scripts/misc/insert-changes.pl
@@ -0,0 +1,36 @@
+#!/usr/bin/perl -w
+
+my $debian;
+$droot = $ARGV[0] if (defined $ARGV[0]);
+$droot = 'debian' if (!defined $droot);
+$debian = $ARGV[1] if (defined $ARGV[1]);
+$debian = 'debian.master' if (!defined $debian);
+
+system("make -s -f $droot/rules printchanges > $debian/changes");
+
+open(CHANGELOG, "< $debian/changelog") or die "Cannot open changelog";
+open(CHANGES, "< $debian/changes") or die "Cannot open new changes";
+open(NEW, "> $debian/changelog.new") or die "Cannot open new changelog";
+
+$printed = 0;
+
+while (<CHANGELOG>) {
+ if (/^ CHANGELOG: /) {
+ next if $printed;
+
+ while (<CHANGES>) {
+ print NEW;
+ }
+
+ $printed = 1;
+ } else {
+ print NEW;
+ }
+}
+
+close(NEW);
+close(CHANGES);
+close(CHANGELOG);
+
+rename("$debian/changelog.new", "$debian/changelog");
+unlink("$debian/changes");
diff --git a/debian/scripts/misc/insert-ubuntu-changes b/debian/scripts/misc/insert-ubuntu-changes
new file mode 100755
index 00000000000..9ede7f3950d
--- /dev/null
+++ b/debian/scripts/misc/insert-ubuntu-changes
@@ -0,0 +1,58 @@
+#!/usr/bin/perl
+
+if ($#ARGV != 2) {
+ die "Usage: $0 <changelog> <stop at> <start at>\n";
+}
+my ($changelog, $end, $start) = @ARGV;
+
+$end =~ s/.*\.//;
+$start =~ s/.*\.//;
+
+my @changes = ();
+my $output = 0;
+open(CHG, "<debian.master/changelog") ||
+ open(CHG, "<debian/changelog") ||
+ die "$0: debian/changelog: open failed - $!\n";
+while (<CHG>) {
+ if (/^\S+\s+\((.*\.(\d+))\)/) {
+ if ($2 <= $end) {
+ last;
+ }
+ if ($2 == $start) {
+ $output = 1;
+ }
+ if ($output) {
+ push(@changes, "\n [ Ubuntu: $1 ]\n\n");
+ next;
+ }
+ }
+ next if ($output == 0);
+
+ next if (/^\s*$/);
+ next if (/^\s--/);
+ next if (/^\s\s[^\*\s]/);
+
+ push(@changes, $_);
+}
+close(CHG);
+
+open(CHANGELOG, "< $changelog") or die "Cannot open changelog";
+open(NEW, "> $changelog.new") or die "Cannot open new changelog";
+
+$printed = 3;
+while (<CHANGELOG>) {
+ if (/^ CHANGELOG: /) {
+ $printed--;
+ print NEW;
+ if ($printed == 0) {
+ print NEW @changes;
+ }
+ next;
+ }
+ print NEW;
+}
+
+close(NEW);
+close(CHANGELOG);
+
+rename("$changelog.new", "$changelog");
diff --git a/debian/scripts/misc/kernelconfig b/debian/scripts/misc/kernelconfig
new file mode 100755
index 00000000000..3181978b706
--- /dev/null
+++ b/debian/scripts/misc/kernelconfig
@@ -0,0 +1,171 @@
+#!/bin/bash
+
+. debian/debian.env
+
+# Script to merge all configs and run 'make silentoldconfig' on it to wade out bad juju.
+# Then split the configs into distro-commmon and flavour-specific parts
+
+# We have to be in the top level kernel source directory
+if [ ! -f MAINTAINERS ] || [ ! -f Makefile ]; then
+ echo "This does not appear to be the kernel source directory." 1>&2
+ exit 1
+fi
+
+mode=${1:?"Usage: $0 [oldconfig|editconfig]"}
+case "$mode" in
+ oldconfig) ;; # All is good
+ defaultconfig) ;; # All is good
+ editconfig) ;; # All is good
+ genconfig) ;; # All is good
+ *) echo "$0 called with invalid mode" 1>&2
+ exit 1 ;;
+esac
+kerneldir="`pwd`"
+confdir="$kerneldir/${DEBIAN}/config"
+sharedconfdir="$kerneldir/debian/config"
+variant="$2"
+
+. $DEBIAN/etc/kernelconfig
+
+bindir="`pwd`/${DROOT}/scripts/misc"
+common_conf="$confdir/config.common.$family"
+tmpdir=`mktemp -d`
+mkdir "$tmpdir/CONFIGS"
+
+if [ "$mode" = "genconfig" ]; then
+ keep=1
+ mode="oldconfig"
+ test -d CONFIGS || mkdir CONFIGS
+fi
+
+for arch in $archs; do
+ rm -rf build
+ mkdir build
+
+ # Map debian archs to kernel archs
+ case "$arch" in
+ amd64) kernarch="x86_64" ;;
+ lpia) kernarch="x86" ;;
+ sparc) kernarch="sparc64" ;;
+ armel) kernarch="arm" ;;
+ *) kernarch="$arch" ;;
+ esac
+
+ archconfdir=$confdir/$arch
+ flavourconfigs=$(cd $archconfdir && ls config.flavour.*)
+
+ # Merge configs
+ # We merge config.common.ubuntu + config.common.<arch> +
+ # config.flavour.<flavour>
+
+ for config in $flavourconfigs; do
+ fullconf="$tmpdir/$arch-$config-full"
+ case $config in
+ *)
+ : >"$fullconf"
+ if [ -f $common_conf ]; then
+ cat $common_conf >> "$fullconf"
+ fi
+ if [ -f $archconfdir/config.common.$arch ]; then
+ cat $archconfdir/config.common.$arch >> "$fullconf"
+ fi
+ cat "$archconfdir/$config" >>"$fullconf"
+ if [ -f $confdir/OVERRIDES ]; then
+ cat $confdir/OVERRIDES >> "$fullconf"
+ fi
+ ;;
+ esac
+ done
+
+ for config in $flavourconfigs; do
+ if [ -f $archconfdir/$config ]; then
+ fullconf="$tmpdir/$arch-$config-full"
+ cat "$fullconf" > build/.config
+ # Call oldconfig or menuconfig
+ case "$mode" in
+ oldconfig)
+ # Weed out incorrect config parameters
+ echo "* Run silentoldconfig on $arch/$config ..."
+ make O=`pwd`/build ARCH=$kernarch silentoldconfig ;;
+ defaultconfig)
+ # Weed out incorrect config parameters
+ echo "* Run oldconfig on $arch/$config ..."
+ make O=`pwd`/build ARCH=$kernarch oldconfig ;;
+ editconfig)
+ # Interactively edit config parameters
+ while : ; do
+ echo -n "Do you want to edit config: $arch/$config? [Y/n] "
+ read choice
+
+ case "$choice" in
+ y* | Y* | "" )
+ make O=`pwd`/build ARCH=$kernarch menuconfig
+ break ;;
+ n* | N* )
+ break ;;
+ *)
+ echo "Entry not valid"
+ esac
+ done
+ ;;
+ *) # Bad!
+ exit 1 ;;
+ esac
+ cat build/.config > $archconfdir/$config
+ cat build/.config > "$tmpdir/CONFIGS/$arch-$config"
+ if [ "$keep" = "1" ]; then
+ cat build/.config > CONFIGS/$arch-$config
+ fi
+ else
+ echo "!! Config not found $archconfdir/$config..."
+ fi
+ done
+
+ echo "Running splitconfig.pl for $arch"
+ echo
+
+ # Can we make this more robust by avoiding $tmpdir completely?
+ # This approach was used for now because I didn't want to change
+ # splitconfig.pl
+ (cd $archconfdir; $bindir/splitconfig.pl; mv config.common \
+ config.common.$arch; cp config.common.$arch $tmpdir)
+done
+
+rm -f $common_conf
+
+# Now run splitconfig.pl on all the config.common.<arch> copied to
+# $tmpdir
+(cd $tmpdir; $bindir/splitconfig.pl)
+(
+ cd $confdir;
+ rm -f *-full
+ grep -v 'is UNMERGABLE' <$tmpdir/config.common >$common_conf
+ for arch in $archs; do
+ grep -v 'is UNMERGABLE' <$tmpdir/config.common.$arch \
+ >$arch/config.common.$arch
+ done
+)
+
+echo ""
+echo "Running config-check for all configurations ..."
+echo ""
+fail=0
+for arch in $archs; do
+ archconfdir=$confdir/$arch
+ flavourconfigs=$(cd $archconfdir && ls config.flavour.*)
+ for config in $flavourconfigs; do
+ if [ -f $archconfdir/$config ]; then
+ fullconf="$tmpdir/CONFIGS/$arch-$config"
+ "$bindir/../config-check" "$fullconf" "$arch" "$config" "$sharedconfdir" "0" || let "fail=$fail+1"
+ fi
+ done
+done
+
+if [ "$fail" != 0 ]; then
+ echo ""
+ echo "*** ERROR: $fail config-check failures detected"
+ echo ""
+fi
+
+rm -rf build
+
diff --git a/debian/scripts/misc/retag b/debian/scripts/misc/retag
new file mode 100755
index 00000000000..94cf169a076
--- /dev/null
+++ b/debian/scripts/misc/retag
@@ -0,0 +1,34 @@
+#!/usr/bin/perl -w
+
+open(TAGS, "git tag -l |") or die "Could not get list of tags";
+@tags = <TAGS>;
+close(TAGS);
+
+open(LOGS, "git log --pretty=short |") or die "ERROR: Calling git log";
+my $commit = "";
+
+while (<LOGS>) {
+ my $origtag;
+
+ if (m|^commit (.*)$|) {
+ $commit = $1;
+ next;
+ }
+
+ m|\s*UBUNTU: (Ubuntu-2\.6\..*)| or next;
+
+ $tag = $1;
+
+ ($origtag) = grep(/^$tag.orig$/, @tags);
+
+ if (!defined($origtag)) {
+ print "I: Adding original tag for $tag\n";
+ system("git tag -m $tag $tag.orig $tag");
+ }
+
+ print "I: Tagging $tag => $commit\n";
+
+ system("git tag -f -m $tag $tag $commit");
+}
+
+close(LOGS);
diff --git a/debian/scripts/misc/splitconfig.pl b/debian/scripts/misc/splitconfig.pl
new file mode 100755
index 00000000000..3dca468fca6
--- /dev/null
+++ b/debian/scripts/misc/splitconfig.pl
@@ -0,0 +1,111 @@
+#!/usr/bin/perl -w
+
+%allconfigs = ();
+%common = ();
+
+print "Reading config's ...\n";
+
+opendir(DIR, ".");
+
+while (defined($config = readdir(DIR))) {
+ # Only config.*
+ next if $config !~ /^config\..*/;
+ # Nothing that is disabled, or remnant
+ next if $config =~ /.*\.(default|disabled|stub)$/;
+
+ %{$allconfigs{$config}} = ();
+
+ print " processing $config ... ";
+
+ open(CONFIG, "< $config");
+
+ while (<CONFIG>) {
+ # Skip comments
+ /^#*\s*CONFIG_(\w+)[\s=](.*)$/ or next;
+
+ ${$allconfigs{$config}}{$1} = $2;
+
+ $common{$1} = $2;
+ }
+
+ close(CONFIG);
+
+ print "done.\n";
+}
+
+closedir(DIR);
+
+print "\n";
+
+print "Merging lists ... \n";
+
+# %options - pointer to flavour config inside the allconfigs array
+for $config (keys(%allconfigs)) {
+ my %options = %{$allconfigs{$config}};
+
+ print " processing $config ... ";
+
+ for $key (keys(%common)) {
+ next if not defined $common{$key};
+
+ # If we don't have the common option, then it isn't
+ # common. If we do have that option, it must have the same
+ # value. EXCEPT where this file does not have a value at all
+ # which may safely be merged with any other value; the value
+ # will be elided during recombination of the parts.
+ if (!defined($options{$key})) {
+ # Its ok really ... let it merge
+ } elsif (not defined($options{$key})) {
+ undef $common{$key};
+ } elsif ($common{$key} ne $options{$key}) {
+ undef $common{$key};
+ }
+ }
+
+ print "done.\n";
+}
+
+print "\n";
+
+print "Creating common config ... ";
+
+open(COMMON, "> config.common");
+print COMMON "#\n# Common config options automatically generated by splitconfig.pl\n#\n";
+
+for $key (sort(keys(%common))) {
+ if (not defined $common{$key}) {
+ print COMMON "# CONFIG_$key is UNMERGABLE\n";
+ } elsif ($common{$key} eq "is not set") {
+ print COMMON "# CONFIG_$key is not set\n";
+ } else {
+ print COMMON "CONFIG_$key=$common{$key}\n";
+ }
+}
+close(COMMON);
+
+print "done.\n\n";
+
+print "Creating stub configs ...\n";
+
+for $config (keys(%allconfigs)) {
+ my %options = %{$allconfigs{$config}};
+
+ print " processing $config ... ";
+
+ open(STUB, "> $config");
+ print STUB "#\n# Config options for $config automatically generated by splitconfig.pl\n#\n";
+
+ for $key (sort(keys(%options))) {
+ next if defined $common{$key};
+
+ if ($options{$key} =~ /^is /) {
+ print STUB "# CONFIG_$key $options{$key}\n";
+ } else {
+ print STUB "CONFIG_$key=$options{$key}\n";
+ }
+ }
+
+ close(STUB);
+
+ print "done.\n";
+}
diff --git a/debian/scripts/module-check b/debian/scripts/module-check
new file mode 100755
index 00000000000..c754ea368cf
--- /dev/null
+++ b/debian/scripts/module-check
@@ -0,0 +1,120 @@
+#!/usr/bin/perl -w
+
+$flavour = shift;
+$prev_abidir = shift;
+$abidir = shift;
+$skipmodule = shift;
+
+print "II: Checking modules for $flavour...";
+
+if (-f "$prev_abidir/ignore.modules"
+ or -f "$prev_abidir/$flavour.ignore.modules") {
+ print "explicitly ignoring modules\n";
+ exit(0);
+}
+
+if (not -f "$abidir/$flavour.modules" or not -f
+ "$prev_abidir/$flavour.modules") {
+ print "previous or current modules file missing!\n";
+ print " $abidir/$flavour.modules\n";
+ print " $prev_abidir/$flavour.modules\n";
+ if (defined($skipmodule)) {
+ exit(0);
+ } else {
+ exit(1);
+ }
+}
+
+print "\n";
+
+my %modules;
+my %modules_ignore;
+my $missing = 0;
+my $new = 0;
+my $errors = 0;
+
+# See if we have any ignores
+if (-f "$prev_abidir/../modules.ignore") {
+ my $ignore = 0;
+ open(IGNORE, "< $prev_abidir/../modules.ignore") or
+ die "Could not open $prev_abidir/../modules.ignore";
+ print " reading modules to ignore...";
+ while (<IGNORE>) {
+ chomp;
+ next if /\s*#/;
+ $modules_ignore{$_} = 1;
+ $ignore++;
+ }
+ close(IGNORE);
+ print "read $ignore modules.\n";
+}
+
+# Read new modules first
+print " reading new modules...";
+$new_count = 0;
+open(NEW, "< $abidir/$flavour.modules") or
+ die "Could not open $abidir/$flavour.modules";
+while (<NEW>) {
+ chomp;
+ $modules{$_} = 1;
+ $new_count++;
+}
+close(NEW);
+print "read $new_count modules.\n";
+
+# Now the old modules, checking for missing ones
+print " reading old modules...";
+$old_count = 0;
+open(OLD, "< $prev_abidir/$flavour.modules") or
+ die "Could not open $prev_abidir/$flavour.modules";
+while (<OLD>) {
+ chomp;
+ if (not defined($modules{$_})) {
+ print "\n" if not $missing;
+ $missing++;
+ if (not defined($modules_ignore{$_})) {
+ print " MISS: $_\n";
+ $errors++;
+ } else {
+ print " MISS: $_ (ignored)\n";
+ }
+ } else {
+ $modules{$_}++;
+ }
+ $old_count++;
+}
+close(OLD);
+# Check for new modules
+foreach $mod (keys(%modules)) {
+ if ($modules{$mod} < 2) {
+ print "\n" if not $missing and not $new;
+ print " NEW : $mod\n";
+ $new++;
+ }
+}
+if ($new or $missing) {
+ print " read $old_count modules : new($new) missing($missing)\n";
+} else {
+ print "read $old_count modules.\n";
+}
+
+
+# Let's see where we stand...
+if ($errors) {
+ if (defined($skipmodule)) {
+ print "WW: Explicitly asked to ignore failures (probably not good)\n";
+ } else {
+ print "EE: Missing modules (start begging for mercy)\n";
+ exit 1
+ }
+}
+
+if ($new) {
+ print "II: New modules (you've been busy, wipe the poop off your nose)\n";
+} else {
+ print "II: No new modules (hope you're happy, slacker)\n";
+}
+
+print "II: Done\n";
+
+exit(0);
diff --git a/debian/scripts/module-inclusion b/debian/scripts/module-inclusion
new file mode 100755
index 00000000000..ec3ce5e0cd5
--- /dev/null
+++ b/debian/scripts/module-inclusion
@@ -0,0 +1,51 @@
+#!/bin/bash
+
+#
+# Build a new directory of modules based on an inclusion list.
+# The includsion list format must be a bash regular expression.
+#
+# usage: $0 ROOT INCLUSION_LIST
+# example: $0 debian/build/build-virtual debian.master/control.d/virtual.inclusion-list
+ROOT=$1
+ILIST=$2
+
+NROOT=${ROOT}.new
+
+#
+# Prep a destination directory.
+#
+mkdir -p ${NROOT}
+rsync -a --exclude="*.ko" ${ROOT}/ ${NROOT}
+
+cat ${ILIST} |while read i
+do
+ #
+ # 'find' blurts a warning if it cannot find any ko files.
+ #
+ if echo "$i" | grep '\*' > /dev/null
+ then
+ (cd ${ROOT}; eval find "${i}" -name "*.ko") |while read f
+ do
+ mkdir -p ${NROOT}/`dirname $f`
+ cp ${ROOT}/$f ${NROOT}/$f
+ done
+ else
+ if [ -f "${ROOT}/$i" ]
+ then
+ mkdir -p ${NROOT}/`dirname $i`
+ cp ${ROOT}/$i ${NROOT}/$i
+ else
+ echo Warning: Could not find ${ROOT}/$i
+ fi
+ fi
+
+done
+
+#
+# Cleanup
+#
+rm -rf ${ROOT}
+mv ${NROOT} ${ROOT}
+
+exit 0
+
diff --git a/debian/stamps/keep-dir b/debian/stamps/keep-dir
new file mode 100644
index 00000000000..5c38d4a5c41
--- /dev/null
+++ b/debian/stamps/keep-dir
@@ -0,0 +1 @@
+Place holder
diff --git a/debian/tests/README b/debian/tests/README
new file mode 100644
index 00000000000..c74d1c4aef8
--- /dev/null
+++ b/debian/tests/README
@@ -0,0 +1,21 @@
+Scripts placed in this directory get called one at a time by run-parts(8).
+The scripts are expected to perform some sort of sanity checks on the
+finished build. Scripts will be called once for each flavour.
+
+Some environment variables are exported to make life a little easier:
+
+DPKG_ARCH : The dpkg architecture (e.g. "amd64")
+KERN_ARCH : The kernel architecture (e.g. "x86_64")
+FLAVOUR : The specific flavour for this run (e.g. "generic")
+VERSION : The full version of this build (e.g. 2.6.22-1)
+REVISION : The exact revision of this build (e.g. 1.3)
+PREV_REVISION : The revision prior to this one
+ABI_NUM : The specific ABI number for this build (e.g. 2)
+PREV_ABI_NUM : The previous ABI number. Can be the same as ABI_NUM.
+BUILD_DIR : The directory where this build took place
+INSTALL_DIR : The directory where the package is prepared
+SOURCE_DIR : Where the main kernel source is
+
+Scripts are expected to have a zero exit status when no problems occur,
+and non-zero when an error occurs that should stop the build. Scripts
+should print whatever info they deem needed to deduce the problem.
diff --git a/debian/tests/check-aliases b/debian/tests/check-aliases
new file mode 100755
index 00000000000..b85118ff12c
--- /dev/null
+++ b/debian/tests/check-aliases
@@ -0,0 +1,24 @@
+#!/usr/bin/perl -w
+
+my %map;
+
+print "Checking for dupe aliases in $ENV{'FLAVOUR'}...\n";
+
+$aliases =
+ "$ENV{'INSTALL_DIR'}/lib/modules/$ENV{'VERSION'}-$ENV{'FLAVOUR'}/modules.alias";
+
+open(ALIASES, "< $aliases") or die "Could not open $aliases";
+
+while (<ALIASES>) {
+ chomp;
+ my ($junk, $alias, $module) = split;
+
+ if (defined($map{$alias})) {
+ printf("%s %20s / %-20s : %s \n", ("$map{$alias}" eq "$module")
+ ? "INT" : " ", $map{$alias}, $module, $alias);
+ } else {
+ $map{$alias} = $module;
+ }
+}
+
+exit(0);
diff --git a/debian/tools/perf b/debian/tools/perf
new file mode 100644
index 00000000000..ab35fab9f0f
--- /dev/null
+++ b/debian/tools/perf
@@ -0,0 +1,16 @@
+#!/bin/bash
+full_version=`uname -r`
+
+# Removing flavour from version i.e. generic or server.
+flavour_abi=${full_version#*-}
+flavour=${flavour_abi#*-}
+version=${full_version%-$flavour}
+perf="perf_$version"
+
+if ! which "$perf" > /dev/null; then
+ echo "$perf not found" >&2
+ echo "You may need to install linux-tools-$version" >&2
+ exit 2
+fi
+
+exec "$perf" "$@"
diff --git a/drivers/Makefile b/drivers/Makefile
index 91874e04855..77a28f50452 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -9,7 +9,6 @@ obj-y += gpio/
obj-$(CONFIG_PCI) += pci/
obj-$(CONFIG_PARISC) += parisc/
obj-$(CONFIG_RAPIDIO) += rapidio/
-obj-y += video/
obj-y += idle/
obj-$(CONFIG_ACPI) += acpi/
obj-$(CONFIG_SFI) += sfi/
@@ -30,6 +29,8 @@ obj-y += char/
# gpu/ comes after char for AGP vs DRM startup
obj-y += gpu/
+# video/ needs to come after gpu for framebuffer fallback.
+obj-y += video/
obj-$(CONFIG_CONNECTOR) += connector/
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
index 3026e3fa83e..d41f52d4fb7 100644
--- a/drivers/acpi/battery.c
+++ b/drivers/acpi/battery.c
@@ -884,6 +884,18 @@ static void acpi_battery_notify(struct acpi_device *device, u32 event)
#endif
}
+static LIST_HEAD(acpi_battery_domain);
+
+static void acpi_battery_update_async(struct acpi_device *device, async_cookie_t cookie)
+{
+ struct acpi_battery *battery = acpi_driver_data(device);
+
+ acpi_battery_update(battery);
+ printk(KERN_INFO PREFIX "%s Slot [%s] (battery %s)\n",
+ ACPI_BATTERY_DEVICE_NAME, acpi_device_bid(device),
+ device->status.battery_present ? "present" : "absent");
+}
+
static int acpi_battery_add(struct acpi_device *device)
{
int result = 0;
@@ -902,14 +914,14 @@ static int acpi_battery_add(struct acpi_device *device)
if (ACPI_SUCCESS(acpi_get_handle(battery->device->handle,
"_BIX", &handle)))
set_bit(ACPI_BATTERY_XINFO_PRESENT, &battery->flags);
- acpi_battery_update(battery);
+ /* Mark the battery for update at first access. */
+ battery->update_time = 0;
#ifdef CONFIG_ACPI_PROCFS_POWER
result = acpi_battery_add_fs(device);
#endif
if (!result) {
- printk(KERN_INFO PREFIX "%s Slot [%s] (battery %s)\n",
- ACPI_BATTERY_DEVICE_NAME, acpi_device_bid(device),
- device->status.battery_present ? "present" : "absent");
+ async_schedule_domain(acpi_battery_update_async, device, &acpi_battery_domain);
+
} else {
#ifdef CONFIG_ACPI_PROCFS_POWER
acpi_battery_remove_fs(device);
@@ -925,6 +937,10 @@ static int acpi_battery_remove(struct acpi_device *device, int type)
if (!device || !acpi_driver_data(device))
return -EINVAL;
+
+ /* Ensure all async updates are complete before freeing the battery. */
+ async_synchronize_full_domain(&acpi_battery_domain);
+
battery = acpi_driver_data(device);
#ifdef CONFIG_ACPI_PROCFS_POWER
acpi_battery_remove_fs(device);
@@ -962,27 +978,21 @@ static struct acpi_driver acpi_battery_driver = {
},
};
-static void __init acpi_battery_init_async(void *unused, async_cookie_t cookie)
+static int __init acpi_battery_init(void)
{
if (acpi_disabled)
return;
#ifdef CONFIG_ACPI_PROCFS_POWER
acpi_battery_dir = acpi_lock_battery_dir();
if (!acpi_battery_dir)
- return;
+ return -1;
#endif
if (acpi_bus_register_driver(&acpi_battery_driver) < 0) {
#ifdef CONFIG_ACPI_PROCFS_POWER
acpi_unlock_battery_dir(acpi_battery_dir);
#endif
- return;
+ return -1;
}
- return;
-}
-
-static int __init acpi_battery_init(void)
-{
- async_schedule(acpi_battery_init_async, NULL);
return 0;
}
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c
index 9865d46f49a..84024ef4c11 100644
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -2212,7 +2212,7 @@ static int acpi_video_bus_put_devices(struct acpi_video_bus *video)
static int acpi_video_bus_start_devices(struct acpi_video_bus *video)
{
- return acpi_video_bus_DOS(video, 0, 0);
+ return acpi_video_bus_DOS(video, 0, 1);
}
static int acpi_video_bus_stop_devices(struct acpi_video_bus *video)
diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
index 1984a6e89e8..261f86d102e 100644
--- a/drivers/ata/libahci.c
+++ b/drivers/ata/libahci.c
@@ -541,29 +541,11 @@ static int ahci_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val)
return -EINVAL;
}
-static int ahci_is_device_present(void __iomem *port_mmio)
-{
- u8 status = readl(port_mmio + PORT_TFDATA) & 0xff;
-
- /* Make sure PxTFD.STS.BSY and PxTFD.STS.DRQ are 0 */
- if (status & (ATA_BUSY | ATA_DRQ))
- return 0;
-
- /* Make sure PxSSTS.DET is 3h */
- status = readl(port_mmio + PORT_SCR_STAT) & 0xf;
- if (status != 3)
- return 0;
- return 1;
-}
-
void ahci_start_engine(struct ata_port *ap)
{
void __iomem *port_mmio = ahci_port_base(ap);
u32 tmp;
- if (!ahci_is_device_present(port_mmio))
- return;
-
/* start DMA */
tmp = readl(port_mmio + PORT_CMD);
tmp |= PORT_CMD_START;
@@ -1892,6 +1874,9 @@ static void ahci_error_handler(struct ata_port *ap)
}
sata_pmp_error_handler(ap);
+
+ if (!ata_dev_enabled(ap->link.device))
+ ahci_stop_engine(ap);
}
static void ahci_post_internal_cmd(struct ata_queued_cmd *qc)
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index ddf8e486278..c2494f0178a 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -140,7 +140,7 @@ int libata_fua = 0;
module_param_named(fua, libata_fua, int, 0444);
MODULE_PARM_DESC(fua, "FUA support (0=off [default], 1=on)");
-static int ata_ignore_hpa;
+static int ata_ignore_hpa = 1;
module_param_named(ignore_hpa, ata_ignore_hpa, int, 0644);
MODULE_PARM_DESC(ignore_hpa, "Ignore HPA limit (0=keep BIOS limits, 1=ignore limits, using full disk)");
diff --git a/drivers/ata/sata_sil24.c b/drivers/ata/sata_sil24.c
index e9250514734..be7726d7686 100644
--- a/drivers/ata/sata_sil24.c
+++ b/drivers/ata/sata_sil24.c
@@ -539,12 +539,12 @@ static void sil24_config_port(struct ata_port *ap)
writel(PORT_CS_IRQ_WOC, port + PORT_CTRL_CLR);
/* zero error counters. */
- writel(0x8000, port + PORT_DECODE_ERR_THRESH);
- writel(0x8000, port + PORT_CRC_ERR_THRESH);
- writel(0x8000, port + PORT_HSHK_ERR_THRESH);
- writel(0x0000, port + PORT_DECODE_ERR_CNT);
- writel(0x0000, port + PORT_CRC_ERR_CNT);
- writel(0x0000, port + PORT_HSHK_ERR_CNT);
+ writew(0x8000, port + PORT_DECODE_ERR_THRESH);
+ writew(0x8000, port + PORT_CRC_ERR_THRESH);
+ writew(0x8000, port + PORT_HSHK_ERR_THRESH);
+ writew(0x0000, port + PORT_DECODE_ERR_CNT);
+ writew(0x0000, port + PORT_CRC_ERR_CNT);
+ writew(0x0000, port + PORT_HSHK_ERR_CNT);
/* always use 64bit activation */
writel(PORT_CS_32BIT_ACTV, port + PORT_CTRL_CLR);
@@ -622,6 +622,11 @@ static int sil24_exec_polled_cmd(struct ata_port *ap, int pmp,
irq_enabled = readl(port + PORT_IRQ_ENABLE_SET);
writel(PORT_IRQ_COMPLETE | PORT_IRQ_ERROR, port + PORT_IRQ_ENABLE_CLR);
+ /*
+ * The barrier is required to ensure that writes to cmd_block reach
+ * the memory before the write to PORT_CMD_ACTIVATE.
+ */
+ wmb();
writel((u32)paddr, port + PORT_CMD_ACTIVATE);
writel((u64)paddr >> 32, port + PORT_CMD_ACTIVATE + 4);
@@ -865,7 +870,7 @@ static void sil24_qc_prep(struct ata_queued_cmd *qc)
} else {
prb = &cb->atapi.prb;
sge = cb->atapi.sge;
- memset(cb->atapi.cdb, 0, 32);
+ memset(cb->atapi.cdb, 0, sizeof(cb->atapi.cdb));
memcpy(cb->atapi.cdb, qc->cdb, qc->dev->cdb_len);
if (ata_is_data(qc->tf.protocol)) {
@@ -895,6 +900,11 @@ static unsigned int sil24_qc_issue(struct ata_queued_cmd *qc)
paddr = pp->cmd_block_dma + tag * sizeof(*pp->cmd_block);
activate = port + PORT_CMD_ACTIVATE + tag * 8;
+ /*
+ * The barrier is required to ensure that writes to cmd_block reach
+ * the memory before the write to PORT_CMD_ACTIVATE.
+ */
+ wmb();
writel((u32)paddr, activate);
writel((u64)paddr >> 32, activate + 4);
diff --git a/drivers/ata/sata_via.c b/drivers/ata/sata_via.c
index 0ecd0f6aa2c..4730c42a5ee 100644
--- a/drivers/ata/sata_via.c
+++ b/drivers/ata/sata_via.c
@@ -578,10 +578,24 @@ static void svia_configure(struct pci_dev *pdev)
/*
* vt6421 has problems talking to some drives. The following
- * is the magic fix from Joseph Chan <JosephChan@via.com.tw>.
- * Please add proper documentation if possible.
+ * is the fix from Joseph Chan <JosephChan@via.com.tw>.
+ *
+ * When host issues HOLD, device may send up to 20DW of data
+ * before acknowledging it with HOLDA and the host should be
+ * able to buffer them in FIFO. Unfortunately, some WD drives
+ * send upto 40DW before acknowledging HOLD and, in the
+ * default configuration, this ends up overflowing vt6421's
+ * FIFO, making the controller abort the transaction with
+ * R_ERR.
+ *
+ * Rx52[2] is the internal 128DW FIFO Flow control watermark
+ * adjusting mechanism enable bit and the default value 0
+ * means host will issue HOLD to device when the left FIFO
+ * size goes below 32DW. Setting it to 1 makes the watermark
+ * 64DW.
*
* https://bugzilla.kernel.org/show_bug.cgi?id=15173
+ * http://article.gmane.org/gmane.linux.ide/46352
*/
if (pdev->device == 0x3249) {
pci_read_config_byte(pdev, 0x52, &tmp8);
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig
index ef38aff737e..ca52e7788f5 100644
--- a/drivers/base/Kconfig
+++ b/drivers/base/Kconfig
@@ -169,4 +169,12 @@ config SYS_HYPERVISOR
bool
default n
+config SR_REPORT_TIME_LIMIT
+ int "Default low threshold"
+ depends on PM
+ default 100
+ help
+ Print suspend/resume information for driver/device for time greater
+ then default msec, ie 100 msec.
+
endmenu
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
index 941fcb87e52..8fca8d4edf3 100644
--- a/drivers/base/power/main.c
+++ b/drivers/base/power/main.c
@@ -402,6 +402,24 @@ static void pm_dev_err(struct device *dev, pm_message_t state, char *info,
kobject_name(&dev->kobj), pm_verb(state.event), info, error);
}
+static void device_show_time(struct device *dev, ktime_t starttime, pm_message_t state, char *info)
+{
+ ktime_t calltime;
+ s64 usecs64;
+ int usecs;
+
+ calltime = ktime_get();
+ usecs64 = ktime_to_ns(ktime_sub(calltime, starttime));
+ do_div(usecs64, NSEC_PER_USEC);
+ usecs = usecs64;
+ if (usecs == 0)
+ usecs = 1;
+ if ((usecs / USEC_PER_MSEC) > CONFIG_SR_REPORT_TIME_LIMIT)
+ pr_info("PM: %s%s%s of drv:%s dev:%s complete after %ld.%03ld msecs\n", info ?: "", info ? " " : "", pm_verb(state.event),
+ dev_driver_string(dev), dev_name(dev), usecs / USEC_PER_MSEC,
+ usecs % USEC_PER_MSEC);
+}
+
static void dpm_show_time(ktime_t starttime, pm_message_t state, char *info)
{
ktime_t calltime;
@@ -432,6 +450,7 @@ static void dpm_show_time(ktime_t starttime, pm_message_t state, char *info)
static int device_resume_noirq(struct device *dev, pm_message_t state)
{
int error = 0;
+ ktime_t starttime = ktime_get();
TRACE_DEVICE(dev);
TRACE_RESUME(0);
@@ -441,6 +460,7 @@ static int device_resume_noirq(struct device *dev, pm_message_t state)
error = pm_noirq_op(dev, dev->bus->pm, state);
if (error)
goto End;
+ device_show_time(dev, starttime, state, "early");
}
if (dev->type && dev->type->pm) {
@@ -518,6 +538,7 @@ static int legacy_resume(struct device *dev, int (*cb)(struct device *dev))
static int device_resume(struct device *dev, pm_message_t state, bool async)
{
int error = 0;
+ ktime_t starttime = ktime_get();
TRACE_DEVICE(dev);
TRACE_RESUME(0);
@@ -557,6 +578,7 @@ static int device_resume(struct device *dev, pm_message_t state, bool async)
error = legacy_resume(dev, dev->class->resume);
}
}
+ device_show_time(dev, starttime, state, NULL);
End:
device_unlock(dev);
complete_all(&dev->power.completion);
@@ -749,6 +771,7 @@ static pm_message_t resume_event(pm_message_t sleep_state)
static int device_suspend_noirq(struct device *dev, pm_message_t state)
{
int error = 0;
+ ktime_t starttime = ktime_get();
if (dev->class && dev->class->pm) {
pm_dev_dbg(dev, state, "LATE class ");
@@ -767,6 +790,7 @@ static int device_suspend_noirq(struct device *dev, pm_message_t state)
if (dev->bus && dev->bus->pm) {
pm_dev_dbg(dev, state, "LATE ");
error = pm_noirq_op(dev, dev->bus->pm, state);
+ device_show_time(dev, starttime, state, "late");
}
End:
@@ -838,6 +862,7 @@ static int async_error;
static int __device_suspend(struct device *dev, pm_message_t state, bool async)
{
int error = 0;
+ ktime_t starttime = ktime_get();
dpm_wait_for_children(dev, async);
device_lock(dev);
@@ -879,6 +904,7 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async)
if (!error)
dev->power.status = DPM_OFF;
+ device_show_time(dev, starttime, state, NULL);
End:
device_unlock(dev);
complete_all(&dev->power.completion);
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index 218d091f3c5..660110bbee3 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -57,7 +57,7 @@ static unsigned int debugflags;
static unsigned int nbds_max = 16;
static struct nbd_device *nbd_dev;
-static int max_part;
+static int max_part = 15;
/*
* Use just one lock (or at most 1 per NIC). Two arguments for this:
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
index e3749d0ba68..f0484a08d0c 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -290,7 +290,7 @@ static int keeplocked;
/* default compatibility mode */
static int autoclose=1;
static int autoeject;
-static int lockdoor = 1;
+static int lockdoor = 0;
/* will we ever get to use this... sigh. */
static int check_media_type;
/* automatically restart mrw format */
diff --git a/drivers/char/vt.c b/drivers/char/vt.c
index 1296c42ed5c..7cdb6ee569c 100644
--- a/drivers/char/vt.c
+++ b/drivers/char/vt.c
@@ -304,7 +304,7 @@ static void scrup(struct vc_data *vc, unsigned int t, unsigned int b, int nr)
d = (unsigned short *)(vc->vc_origin + vc->vc_size_row * t);
s = (unsigned short *)(vc->vc_origin + vc->vc_size_row * (t + nr));
scr_memmovew(d, s, (b - t - nr) * vc->vc_size_row);
- scr_memsetw(d + (b - t - nr) * vc->vc_size_row, vc->vc_video_erase_char,
+ scr_memsetw(d + (b - t - nr) * vc->vc_cols, vc->vc_video_erase_char,
vc->vc_size_row * nr);
}
diff --git a/drivers/char/vt_ioctl.c b/drivers/char/vt_ioctl.c
index cb19dbc5213..39c7e70464c 100644
--- a/drivers/char/vt_ioctl.c
+++ b/drivers/char/vt_ioctl.c
@@ -38,6 +38,8 @@
#include <linux/kbd_diacr.h>
#include <linux/selection.h>
+#define max_font_size 65536
+
char vt_dont_switch;
extern struct tty_driver *console_driver;
@@ -1591,6 +1593,7 @@ static void complete_change_console(struct vc_data *vc)
{
unsigned char old_vc_mode;
int old = fg_console;
+ struct vc_data *oldvc = vc_cons[fg_console].d;
last_console = fg_console;
@@ -1599,9 +1602,31 @@ static void complete_change_console(struct vc_data *vc)
* KD_TEXT mode or vice versa, which means we need to blank or
* unblank the screen later.
*/
- old_vc_mode = vc_cons[fg_console].d->vc_mode;
+ old_vc_mode = oldvc->vc_mode;
+
+#if defined(CONFIG_VGA_CONSOLE)
+ if (old_vc_mode == KD_TEXT && oldvc->vc_sw == &vga_con &&
+ oldvc->vc_sw->con_font_get) {
+ if (!oldvc->vc_font.data)
+ oldvc->vc_font.data = kmalloc(max_font_size,
+ GFP_KERNEL);
+ lock_kernel();
+ oldvc->vc_sw->con_font_get(oldvc, &oldvc->vc_font);
+ unlock_kernel();
+ }
+#endif
switch_screen(vc);
+#if defined(CONFIG_VGA_CONSOLE)
+ if (vc->vc_mode == KD_TEXT && vc->vc_sw == &vga_con &&
+ vc->vc_sw->con_font_set) {
+ if (vc->vc_font.data) {
+ lock_kernel();
+ vc->vc_sw->con_font_set(vc, &vc->vc_font, 0);
+ unlock_kernel();
+ }
+ }
+#endif
/*
* This can't appear below a successful kill_pid(). If it did,
* then the *blank_screen operation could occur while X, having
diff --git a/drivers/firewire/core-card.c b/drivers/firewire/core-card.c
index 9dcb30466ec..371713ff026 100644
--- a/drivers/firewire/core-card.c
+++ b/drivers/firewire/core-card.c
@@ -231,7 +231,7 @@ void fw_schedule_bm_work(struct fw_card *card, unsigned long delay)
static void fw_card_bm_work(struct work_struct *work)
{
struct fw_card *card = container_of(work, struct fw_card, work.work);
- struct fw_device *root_device;
+ struct fw_device *root_device, *irm_device;
struct fw_node *root_node;
unsigned long flags;
int root_id, new_root_id, irm_id, local_id;
@@ -239,6 +239,7 @@ static void fw_card_bm_work(struct work_struct *work)
bool do_reset = false;
bool root_device_is_running;
bool root_device_is_cmc;
+ bool irm_is_1394_1995_only;
spin_lock_irqsave(&card->lock, flags);
@@ -248,12 +249,18 @@ static void fw_card_bm_work(struct work_struct *work)
}
generation = card->generation;
+
root_node = card->root_node;
fw_node_get(root_node);
root_device = root_node->data;
root_device_is_running = root_device &&
atomic_read(&root_device->state) == FW_DEVICE_RUNNING;
root_device_is_cmc = root_device && root_device->cmc;
+
+ irm_device = card->irm_node->data;
+ irm_is_1394_1995_only = irm_device && irm_device->config_rom &&
+ (irm_device->config_rom[2] & 0x000000f0) == 0;
+
root_id = root_node->node_id;
irm_id = card->irm_node->node_id;
local_id = card->local_node->node_id;
@@ -276,8 +283,15 @@ static void fw_card_bm_work(struct work_struct *work)
if (!card->irm_node->link_on) {
new_root_id = local_id;
- fw_notify("IRM has link off, making local node (%02x) root.\n",
- new_root_id);
+ fw_notify("%s, making local node (%02x) root.\n",
+ "IRM has link off", new_root_id);
+ goto pick_me;
+ }
+
+ if (irm_is_1394_1995_only) {
+ new_root_id = local_id;
+ fw_notify("%s, making local node (%02x) root.\n",
+ "IRM is not 1394a compliant", new_root_id);
goto pick_me;
}
@@ -316,8 +330,8 @@ static void fw_card_bm_work(struct work_struct *work)
* root, and thus, IRM.
*/
new_root_id = local_id;
- fw_notify("BM lock failed, making local node (%02x) root.\n",
- new_root_id);
+ fw_notify("%s, making local node (%02x) root.\n",
+ "BM lock failed", new_root_id);
goto pick_me;
}
} else if (card->bm_generation != generation) {
diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
index 994d23beeb1..57cea01c4ff 100644
--- a/drivers/gpu/drm/drm_crtc.c
+++ b/drivers/gpu/drm/drm_crtc.c
@@ -1840,8 +1840,10 @@ int drm_mode_dirtyfb_ioctl(struct drm_device *dev,
ret = copy_from_user(clips, clips_ptr,
num_clips * sizeof(*clips));
- if (ret)
+ if (ret) {
+ ret = -EFAULT;
goto out_err2;
+ }
}
if (fb->funcs->dirty) {
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
index b3779d243ae..08c4c926e65 100644
--- a/drivers/gpu/drm/drm_fb_helper.c
+++ b/drivers/gpu/drm/drm_fb_helper.c
@@ -264,7 +264,7 @@ bool drm_fb_helper_force_kernel_mode(void)
int drm_fb_helper_panic(struct notifier_block *n, unsigned long ununsed,
void *panic_str)
{
- DRM_ERROR("panic occurred, switching back to text console\n");
+ printk(KERN_ERR "panic occurred, switching back to text console\n");
return drm_fb_helper_force_kernel_mode();
return 0;
}
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
index b2ebf02e4f8..59a2bf8592e 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -1402,19 +1402,19 @@ static int i915_load_modeset_init(struct drm_device *dev,
/* if we have > 1 VGA cards, then disable the radeon VGA resources */
ret = vga_client_register(dev->pdev, dev, NULL, i915_vga_set_decode);
if (ret)
- goto destroy_ringbuffer;
+ goto cleanup_ringbuffer;
ret = vga_switcheroo_register_client(dev->pdev,
i915_switcheroo_set_state,
i915_switcheroo_can_switch);
if (ret)
- goto destroy_ringbuffer;
+ goto cleanup_vga_client;
intel_modeset_init(dev);
ret = drm_irq_install(dev);
if (ret)
- goto destroy_ringbuffer;
+ goto cleanup_vga_switcheroo;
/* Always safe in the mode setting case. */
/* FIXME: do pre/post-mode set stuff in core KMS code */
@@ -1426,11 +1426,20 @@ static int i915_load_modeset_init(struct drm_device *dev,
I915_WRITE(INSTPM, (1 << 5) | (1 << 21));
- intel_fbdev_init(dev);
+ ret = intel_fbdev_init(dev);
+ if (ret)
+ goto cleanup_irq;
+
drm_kms_helper_poll_init(dev);
return 0;
-destroy_ringbuffer:
+cleanup_irq:
+ drm_irq_uninstall(dev);
+cleanup_vga_switcheroo:
+ vga_switcheroo_unregister_client(dev->pdev);
+cleanup_vga_client:
+ vga_client_register(dev->pdev, NULL, NULL, NULL);
+cleanup_ringbuffer:
mutex_lock(&dev->struct_mutex);
i915_gem_cleanup_ringbuffer(dev);
mutex_unlock(&dev->struct_mutex);
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 423dc90c1e2..02ea0ae1567 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -42,7 +42,7 @@ module_param_named(modeset, i915_modeset, int, 0400);
unsigned int i915_fbpercrtc = 0;
module_param_named(fbpercrtc, i915_fbpercrtc, int, 0400);
-unsigned int i915_powersave = 1;
+unsigned int i915_powersave = 0;
module_param_named(powersave, i915_powersave, int, 0400);
unsigned int i915_lvds_downclock = 0;
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 9ed8ecd9580..27658315984 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -278,6 +278,7 @@ typedef struct drm_i915_private {
struct mem_block *agp_heap;
unsigned int sr01, adpa, ppcr, dvob, dvoc, lvds;
int vblank_pipe;
+ int num_pipe;
/* For hangcheck timer */
#define DRM_I915_HANGCHECK_PERIOD 75 /* in jiffies */
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index 04e1bb499ff..cc8131ff319 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -3653,6 +3653,11 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
pipeconf &= ~PIPEACONF_DOUBLE_WIDE;
}
+ dspcntr |= DISPLAY_PLANE_ENABLE;
+ pipeconf |= PIPEACONF_ENABLE;
+ dpll |= DPLL_VCO_ENABLE;
+
+
/* Disable the panel fitter if it was on our pipe */
if (!HAS_PCH_SPLIT(dev) && intel_panel_fitter_pipe(dev) == pipe)
I915_WRITE(PFIT_CONTROL, 0);
@@ -5470,7 +5475,6 @@ static void intel_init_display(struct drm_device *dev)
void intel_modeset_init(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = dev->dev_private;
- int num_pipe;
int i;
drm_mode_config_init(dev);
@@ -5500,13 +5504,13 @@ void intel_modeset_init(struct drm_device *dev)
dev->mode_config.fb_base = pci_resource_start(dev->pdev, 0);
if (IS_MOBILE(dev) || IS_I9XX(dev))
- num_pipe = 2;
+ dev_priv->num_pipe = 2;
else
- num_pipe = 1;
+ dev_priv->num_pipe = 1;
DRM_DEBUG_KMS("%d display pipe%s available.\n",
- num_pipe, num_pipe > 1 ? "s" : "");
+ dev_priv->num_pipe, dev_priv->num_pipe > 1 ? "s" : "");
- for (i = 0; i < num_pipe; i++) {
+ for (i = 0; i < dev_priv->num_pipe; i++) {
intel_crtc_init(dev, i);
}
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
index df931f78766..f1b4d83eb43 100644
--- a/drivers/gpu/drm/i915/intel_drv.h
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -100,6 +100,7 @@ struct intel_encoder {
int type;
struct i2c_adapter *i2c_bus;
struct i2c_adapter *ddc_bus;
+ struct edid *edid;
bool load_detect_temp;
bool needs_tv_clock;
void *dev_priv;
diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel_fb.c
index f8c76e64bb7..c3c505244e0 100644
--- a/drivers/gpu/drm/i915/intel_fb.c
+++ b/drivers/gpu/drm/i915/intel_fb.c
@@ -245,6 +245,7 @@ int intel_fbdev_init(struct drm_device *dev)
{
struct intel_fbdev *ifbdev;
drm_i915_private_t *dev_priv = dev->dev_private;
+ int ret;
ifbdev = kzalloc(sizeof(struct intel_fbdev), GFP_KERNEL);
if (!ifbdev)
@@ -253,8 +254,13 @@ int intel_fbdev_init(struct drm_device *dev)
dev_priv->fbdev = ifbdev;
ifbdev->helper.funcs = &intel_fb_helper_funcs;
- drm_fb_helper_init(dev, &ifbdev->helper, 2,
- INTELFB_CONN_LIMIT);
+ ret = drm_fb_helper_init(dev, &ifbdev->helper,
+ dev_priv->num_pipe,
+ INTELFB_CONN_LIMIT);
+ if (ret) {
+ kfree(ifbdev);
+ return ret;
+ }
drm_fb_helper_single_add_all_connectors(&ifbdev->helper);
drm_fb_helper_initial_config(&ifbdev->helper, 32);
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 6a1accd83ae..fca48282888 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -650,11 +650,15 @@ static void intel_lvds_destroy(struct drm_connector *connector)
{
struct drm_device *dev = connector->dev;
struct drm_i915_private *dev_priv = dev->dev_private;
+ struct drm_encoder *encoder = intel_attached_encoder(connector);
+ struct intel_encoder *intel_encoder = enc_to_intel_encoder(encoder);
+
if (dev_priv->lid_notifier.notifier_call)
acpi_lid_notifier_unregister(&dev_priv->lid_notifier);
drm_sysfs_connector_remove(connector);
drm_connector_cleanup(connector);
+ kfree(intel_encoder->edid);
kfree(connector);
}
@@ -1092,6 +1096,7 @@ failed:
intel_i2c_destroy(intel_encoder->ddc_bus);
drm_connector_cleanup(connector);
drm_encoder_cleanup(encoder);
+ kfree(intel_encoder->edid);
kfree(intel_encoder);
kfree(intel_connector);
}
diff --git a/drivers/gpu/drm/i915/intel_modes.c b/drivers/gpu/drm/i915/intel_modes.c
index 4b1fd3d9c73..1980ce82130 100644
--- a/drivers/gpu/drm/i915/intel_modes.c
+++ b/drivers/gpu/drm/i915/intel_modes.c
@@ -74,16 +74,25 @@ int intel_ddc_get_modes(struct drm_connector *connector,
struct i2c_adapter *adapter)
{
struct edid *edid;
+ struct drm_encoder *encoder = intel_attached_encoder(connector);
+ struct intel_encoder *intel_encoder = enc_to_intel_encoder(encoder);
int ret = 0;
intel_i2c_quirk_set(connector->dev, true);
+ if (intel_encoder->edid && intel_encoder->type == INTEL_OUTPUT_LVDS) {
+ printk(KERN_INFO "Skipping EDID probe due to cached edid\n");
+ return ret;
+ }
edid = drm_get_edid(connector, adapter);
intel_i2c_quirk_set(connector->dev, false);
if (edid) {
drm_mode_connector_update_edid_property(connector, edid);
ret = drm_add_edid_modes(connector, edid);
connector->display_info.raw_edid = NULL;
- kfree(edid);
+ if (intel_encoder->type == INTEL_OUTPUT_LVDS)
+ intel_encoder->edid = edid;
+ else
+ kfree(edid);
}
return ret;
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
index 9ba2deaadcc..fc924b64919 100644
--- a/drivers/gpu/drm/nouveau/nouveau_bios.c
+++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
@@ -834,7 +834,7 @@ init_i2c_device_find(struct drm_device *dev, int i2c_index)
if (i2c_index == 0x81)
i2c_index = (dcb->i2c_default_indices & 0xf0) >> 4;
- if (i2c_index > DCB_MAX_NUM_I2C_ENTRIES) {
+ if (i2c_index >= DCB_MAX_NUM_I2C_ENTRIES) {
NV_ERROR(dev, "invalid i2c_index 0x%x\n", i2c_index);
return NULL;
}
@@ -3920,7 +3920,8 @@ int nouveau_bios_parse_lvds_table(struct drm_device *dev, int pxclk, bool *dl, b
static uint8_t *
bios_output_config_match(struct drm_device *dev, struct dcb_entry *dcbent,
- uint16_t record, int record_len, int record_nr)
+ uint16_t record, int record_len, int record_nr,
+ bool match_link)
{
struct drm_nouveau_private *dev_priv = dev->dev_private;
struct nvbios *bios = &dev_priv->vbios;
@@ -3928,12 +3929,28 @@ bios_output_config_match(struct drm_device *dev, struct dcb_entry *dcbent,
uint16_t table;
int i, v;
+ switch (dcbent->type) {
+ case OUTPUT_TMDS:
+ case OUTPUT_LVDS:
+ case OUTPUT_DP:
+ break;
+ default:
+ match_link = false;
+ break;
+ }
+
for (i = 0; i < record_nr; i++, record += record_len) {
table = ROM16(bios->data[record]);
if (!table)
continue;
entry = ROM32(bios->data[table]);
+ if (match_link) {
+ v = (entry & 0x00c00000) >> 22;
+ if (!(v & dcbent->sorconf.link))
+ continue;
+ }
+
v = (entry & 0x000f0000) >> 16;
if (!(v & dcbent->or))
continue;
@@ -3975,7 +3992,7 @@ nouveau_bios_dp_table(struct drm_device *dev, struct dcb_entry *dcbent,
*length = table[4];
return bios_output_config_match(dev, dcbent,
bios->display.dp_table_ptr + table[1],
- table[2], table[3]);
+ table[2], table[3], table[0] >= 0x21);
}
int
@@ -4064,7 +4081,7 @@ nouveau_bios_run_display_table(struct drm_device *dev, struct dcb_entry *dcbent,
dcbent->type, dcbent->location, dcbent->or);
otable = bios_output_config_match(dev, dcbent, table[1] +
bios->display.script_table_ptr,
- table[2], table[3]);
+ table[2], table[3], table[0] >= 0x21);
if (!otable) {
NV_ERROR(dev, "Couldn't find matching output script table\n");
return 1;
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
index fd4a2df715e..c9a4a0d2a11 100644
--- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
@@ -377,6 +377,7 @@ int nouveau_fbcon_init(struct drm_device *dev)
{
struct drm_nouveau_private *dev_priv = dev->dev_private;
struct nouveau_fbdev *nfbdev;
+ int ret;
nfbdev = kzalloc(sizeof(struct nouveau_fbdev), GFP_KERNEL);
if (!nfbdev)
@@ -386,7 +387,12 @@ int nouveau_fbcon_init(struct drm_device *dev)
dev_priv->nfbdev = nfbdev;
nfbdev->helper.funcs = &nouveau_fbcon_helper_funcs;
- drm_fb_helper_init(dev, &nfbdev->helper, 2, 4);
+ ret = drm_fb_helper_init(dev, &nfbdev->helper, 2, 4);
+ if (ret) {
+ kfree(nfbdev);
+ return ret;
+ }
+
drm_fb_helper_single_add_all_connectors(&nfbdev->helper);
drm_fb_helper_initial_config(&nfbdev->helper, 32);
return 0;
diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c
index 147e59c4015..b02a231d693 100644
--- a/drivers/gpu/drm/nouveau/nouveau_state.c
+++ b/drivers/gpu/drm/nouveau/nouveau_state.c
@@ -779,29 +779,24 @@ int nouveau_load(struct drm_device *dev, unsigned long flags)
return ret;
}
- /* map larger RAMIN aperture on NV40 cards */
- dev_priv->ramin = NULL;
+ /* Map PRAMIN BAR, or on older cards, the aperture withing BAR0 */
if (dev_priv->card_type >= NV_40) {
int ramin_bar = 2;
if (pci_resource_len(dev->pdev, ramin_bar) == 0)
ramin_bar = 3;
dev_priv->ramin_size = pci_resource_len(dev->pdev, ramin_bar);
- dev_priv->ramin = ioremap(
- pci_resource_start(dev->pdev, ramin_bar),
+ dev_priv->ramin =
+ ioremap(pci_resource_start(dev->pdev, ramin_bar),
dev_priv->ramin_size);
if (!dev_priv->ramin) {
- NV_ERROR(dev, "Failed to init RAMIN mapping, "
- "limited instance memory available\n");
+ NV_ERROR(dev, "Failed to PRAMIN BAR");
+ return -ENOMEM;
}
- }
-
- /* On older cards (or if the above failed), create a map covering
- * the BAR0 PRAMIN aperture */
- if (!dev_priv->ramin) {
+ } else {
dev_priv->ramin_size = 1 * 1024 * 1024;
dev_priv->ramin = ioremap(mmio_start_offs + NV_RAMIN,
- dev_priv->ramin_size);
+ dev_priv->ramin_size);
if (!dev_priv->ramin) {
NV_ERROR(dev, "Failed to map BAR0 PRAMIN.\n");
return -ENOMEM;
diff --git a/drivers/gpu/drm/nouveau/nv50_fb.c b/drivers/gpu/drm/nouveau/nv50_fb.c
index a95e6941ba8..32611bd30e6 100644
--- a/drivers/gpu/drm/nouveau/nv50_fb.c
+++ b/drivers/gpu/drm/nouveau/nv50_fb.c
@@ -6,10 +6,16 @@
int
nv50_fb_init(struct drm_device *dev)
{
- /* This is needed to get meaningful information from 100c90
- * on traps. No idea what these values mean exactly. */
struct drm_nouveau_private *dev_priv = dev->dev_private;
+ /* Not a clue what this is exactly. Without pointing it at a
+ * scratch page, VRAM->GART blits with M2MF (as in DDX DFS)
+ * cause IOMMU "read from address 0" errors (rh#561267)
+ */
+ nv_wr32(dev, 0x100c08, dev_priv->gart_info.sg_dummy_bus >> 8);
+
+ /* This is needed to get meaningful information from 100c90
+ * on traps. No idea what these values mean exactly. */
switch (dev_priv->chipset) {
case 0x50:
nv_wr32(dev, 0x100c90, 0x0707ff);
diff --git a/drivers/gpu/drm/nouveau/nv50_gpio.c b/drivers/gpu/drm/nouveau/nv50_gpio.c
index c61782b314e..bb47ad73726 100644
--- a/drivers/gpu/drm/nouveau/nv50_gpio.c
+++ b/drivers/gpu/drm/nouveau/nv50_gpio.c
@@ -31,7 +31,7 @@ nv50_gpio_location(struct dcb_gpio_entry *gpio, uint32_t *reg, uint32_t *shift)
{
const uint32_t nv50_gpio_reg[4] = { 0xe104, 0xe108, 0xe280, 0xe284 };
- if (gpio->line > 32)
+ if (gpio->line >= 32)
return -EINVAL;
*reg = nv50_gpio_reg[gpio->line >> 3];
diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
index 0440c0939bd..4b6623df3b9 100644
--- a/drivers/gpu/drm/radeon/evergreen.c
+++ b/drivers/gpu/drm/radeon/evergreen.c
@@ -41,12 +41,18 @@ void evergreen_fini(struct radeon_device *rdev);
void evergreen_pm_misc(struct radeon_device *rdev)
{
- int requested_index = rdev->pm.requested_power_state_index;
- struct radeon_power_state *ps = &rdev->pm.power_state[requested_index];
- struct radeon_voltage *voltage = &ps->clock_info[0].voltage;
-
- if ((voltage->type == VOLTAGE_SW) && voltage->voltage)
- radeon_atom_set_voltage(rdev, voltage->voltage);
+ int req_ps_idx = rdev->pm.requested_power_state_index;
+ int req_cm_idx = rdev->pm.requested_clock_mode_index;
+ struct radeon_power_state *ps = &rdev->pm.power_state[req_ps_idx];
+ struct radeon_voltage *voltage = &ps->clock_info[req_cm_idx].voltage;
+
+ if ((voltage->type == VOLTAGE_SW) && voltage->voltage) {
+ if (voltage->voltage != rdev->pm.current_vddc) {
+ radeon_atom_set_voltage(rdev, voltage->voltage);
+ rdev->pm.current_vddc = voltage->voltage;
+ DRM_DEBUG("Setting: v: %d\n", voltage->voltage);
+ }
+ }
}
void evergreen_pm_prepare(struct radeon_device *rdev)
@@ -2153,7 +2159,7 @@ int evergreen_init(struct radeon_device *rdev)
if (r)
return r;
- rdev->accel_working = false;
+ rdev->accel_working = true;
r = evergreen_startup(rdev);
if (r) {
dev_err(rdev->dev, "disabling GPU acceleration\n");
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
index cc004b05d63..cf89aa2eb28 100644
--- a/drivers/gpu/drm/radeon/r100.c
+++ b/drivers/gpu/drm/radeon/r100.c
@@ -162,6 +162,11 @@ void r100_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_ps_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_off_cm_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_cm_idx = 0;
+ /* mid sh */
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_ps_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_ps_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_cm_idx = 0;
/* high sh */
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_off_ps_idx = 0;
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_on_ps_idx = rdev->pm.default_power_state_index;
@@ -172,6 +177,11 @@ void r100_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_ps_idx = rdev->pm.default_power_state_index;
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_off_cm_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_cm_idx = 0;
+ /* mid mh */
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_ps_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_ps_idx = rdev->pm.default_power_state_index;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_cm_idx = 0;
/* high mh */
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_off_ps_idx = 0;
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_on_ps_idx = rdev->pm.default_power_state_index;
diff --git a/drivers/gpu/drm/radeon/r420.c b/drivers/gpu/drm/radeon/r420.c
index 4415a5ee587..e6c89142bb4 100644
--- a/drivers/gpu/drm/radeon/r420.c
+++ b/drivers/gpu/drm/radeon/r420.c
@@ -45,9 +45,14 @@ void r420_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_DEFAULT_IDX].dpms_on_cm_idx = 0;
/* low sh */
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_off_ps_idx = 0;
- rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_ps_idx = 1;
+ rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_ps_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_off_cm_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_cm_idx = 0;
+ /* mid sh */
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_ps_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_ps_idx = 1;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_cm_idx = 0;
/* high sh */
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_off_ps_idx = 0;
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_on_ps_idx = rdev->pm.default_power_state_index;
@@ -58,6 +63,11 @@ void r420_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_ps_idx = rdev->pm.default_power_state_index;
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_off_cm_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_cm_idx = 0;
+ /* mid mh */
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_ps_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_ps_idx = rdev->pm.default_power_state_index;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_cm_idx = 0;
/* high mh */
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_off_ps_idx = 0;
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_on_ps_idx = rdev->pm.default_power_state_index;
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
index e14f59748e6..0e91871f45b 100644
--- a/drivers/gpu/drm/radeon/r600.c
+++ b/drivers/gpu/drm/radeon/r600.c
@@ -291,6 +291,11 @@ void rs780_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_ps_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_off_cm_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_cm_idx = 0;
+ /* mid sh */
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_ps_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_ps_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_cm_idx = 0;
/* high sh */
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_off_ps_idx = 0;
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_on_ps_idx = 1;
@@ -301,6 +306,11 @@ void rs780_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_ps_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_off_cm_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_cm_idx = 0;
+ /* mid mh */
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_ps_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_ps_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_cm_idx = 0;
/* high mh */
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_off_ps_idx = 0;
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_on_ps_idx = 1;
@@ -317,6 +327,11 @@ void rs780_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_ps_idx = 1;
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_off_cm_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_cm_idx = 0;
+ /* mid sh */
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_ps_idx = 1;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_ps_idx = 1;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_cm_idx = 0;
/* high sh */
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_off_ps_idx = 1;
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_on_ps_idx = 2;
@@ -327,6 +342,11 @@ void rs780_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_ps_idx = 1;
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_off_cm_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_cm_idx = 0;
+ /* mid mh */
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_ps_idx = 1;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_ps_idx = 1;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_cm_idx = 0;
/* high mh */
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_off_ps_idx = 1;
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_on_ps_idx = 2;
@@ -343,6 +363,11 @@ void rs780_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_ps_idx = 2;
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_off_cm_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_cm_idx = 0;
+ /* mid sh */
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_ps_idx = 2;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_ps_idx = 2;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_cm_idx = 0;
/* high sh */
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_off_ps_idx = 2;
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_on_ps_idx = 3;
@@ -353,6 +378,11 @@ void rs780_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_ps_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_off_cm_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_cm_idx = 0;
+ /* mid mh */
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_ps_idx = 2;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_ps_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_cm_idx = 0;
/* high mh */
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_off_ps_idx = 2;
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_on_ps_idx = 3;
@@ -375,6 +405,11 @@ void r600_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_ps_idx = rdev->pm.default_power_state_index;
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_off_cm_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_cm_idx = 0;
+ /* mid sh */
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_ps_idx = rdev->pm.default_power_state_index;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_ps_idx = rdev->pm.default_power_state_index;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_cm_idx = 0;
/* high sh */
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_off_ps_idx = rdev->pm.default_power_state_index;
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_on_ps_idx = rdev->pm.default_power_state_index;
@@ -385,6 +420,11 @@ void r600_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_ps_idx = rdev->pm.default_power_state_index;
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_off_cm_idx = 0;
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_cm_idx = 0;
+ /* mid mh */
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_ps_idx = rdev->pm.default_power_state_index;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_ps_idx = rdev->pm.default_power_state_index;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_cm_idx = 0;
/* high mh */
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_off_ps_idx = rdev->pm.default_power_state_index;
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_on_ps_idx = rdev->pm.default_power_state_index;
@@ -401,7 +441,12 @@ void r600_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_off_ps_idx = 1;
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_ps_idx = 1;
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_off_cm_idx = 0;
- rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_cm_idx = 1;
+ rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_cm_idx = 0;
+ /* mid sh */
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_ps_idx = 1;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_ps_idx = 1;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_cm_idx = 1;
/* high sh */
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_off_ps_idx = 1;
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_on_ps_idx = 1;
@@ -411,7 +456,12 @@ void r600_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_off_ps_idx = 2;
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_ps_idx = 2;
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_off_cm_idx = 0;
- rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_cm_idx = 1;
+ rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_cm_idx = 0;
+ /* low mh */
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_ps_idx = 2;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_ps_idx = 2;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_cm_idx = 1;
/* high mh */
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_off_ps_idx = 2;
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_on_ps_idx = 2;
@@ -430,14 +480,30 @@ void r600_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_ps_idx =
r600_pm_get_type_index(rdev, POWER_STATE_TYPE_BATTERY, 0);
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_off_cm_idx = 0;
- rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_cm_idx = 1;
+ rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_cm_idx = 0;
} else {
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_off_ps_idx =
r600_pm_get_type_index(rdev, POWER_STATE_TYPE_PERFORMANCE, 0);
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_ps_idx =
r600_pm_get_type_index(rdev, POWER_STATE_TYPE_PERFORMANCE, 0);
rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_off_cm_idx = 0;
- rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_cm_idx = 1;
+ rdev->pm.profiles[PM_PROFILE_LOW_SH_IDX].dpms_on_cm_idx = 0;
+ }
+ /* mid sh */
+ if (rdev->flags & RADEON_IS_MOBILITY) {
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_ps_idx =
+ r600_pm_get_type_index(rdev, POWER_STATE_TYPE_BATTERY, 0);
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_ps_idx =
+ r600_pm_get_type_index(rdev, POWER_STATE_TYPE_BATTERY, 0);
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_cm_idx = 1;
+ } else {
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_ps_idx =
+ r600_pm_get_type_index(rdev, POWER_STATE_TYPE_PERFORMANCE, 0);
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_ps_idx =
+ r600_pm_get_type_index(rdev, POWER_STATE_TYPE_PERFORMANCE, 0);
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_SH_IDX].dpms_on_cm_idx = 1;
}
/* high sh */
rdev->pm.profiles[PM_PROFILE_HIGH_SH_IDX].dpms_off_ps_idx =
@@ -453,14 +519,30 @@ void r600_pm_init_profile(struct radeon_device *rdev)
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_ps_idx =
r600_pm_get_type_index(rdev, POWER_STATE_TYPE_BATTERY, 1);
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_off_cm_idx = 0;
- rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_cm_idx = 2;
+ rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_cm_idx = 0;
} else {
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_off_ps_idx =
r600_pm_get_type_index(rdev, POWER_STATE_TYPE_PERFORMANCE, 1);
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_ps_idx =
r600_pm_get_type_index(rdev, POWER_STATE_TYPE_PERFORMANCE, 1);
rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_off_cm_idx = 0;
- rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_cm_idx = 1;
+ rdev->pm.profiles[PM_PROFILE_LOW_MH_IDX].dpms_on_cm_idx = 0;
+ }
+ /* mid mh */
+ if (rdev->flags & RADEON_IS_MOBILITY) {
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_ps_idx =
+ r600_pm_get_type_index(rdev, POWER_STATE_TYPE_BATTERY, 1);
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_ps_idx =
+ r600_pm_get_type_index(rdev, POWER_STATE_TYPE_BATTERY, 1);
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_cm_idx = 1;
+ } else {
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_ps_idx =
+ r600_pm_get_type_index(rdev, POWER_STATE_TYPE_PERFORMANCE, 1);
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_ps_idx =
+ r600_pm_get_type_index(rdev, POWER_STATE_TYPE_PERFORMANCE, 1);
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_off_cm_idx = 0;
+ rdev->pm.profiles[PM_PROFILE_MID_MH_IDX].dpms_on_cm_idx = 1;
}
/* high mh */
rdev->pm.profiles[PM_PROFILE_HIGH_MH_IDX].dpms_off_ps_idx =
@@ -475,13 +557,18 @@ void r600_pm_init_profile(struct radeon_device *rdev)
void r600_pm_misc(struct radeon_device *rdev)
{
- int requested_index = rdev->pm.requested_power_state_index;
- struct radeon_power_state *ps = &rdev->pm.power_state[requested_index];
- struct radeon_voltage *voltage = &ps->clock_info[0].voltage;
-
- if ((voltage->type == VOLTAGE_SW) && voltage->voltage)
- radeon_atom_set_voltage(rdev, voltage->voltage);
+ int req_ps_idx = rdev->pm.requested_power_state_index;
+ int req_cm_idx = rdev->pm.requested_clock_mode_index;
+ struct radeon_power_state *ps = &rdev->pm.power_state[req_ps_idx];
+ struct radeon_voltage *voltage = &ps->clock_info[req_cm_idx].voltage;
+ if ((voltage->type == VOLTAGE_SW) && voltage->voltage) {
+ if (voltage->voltage != rdev->pm.current_vddc) {
+ radeon_atom_set_voltage(rdev, voltage->voltage);
+ rdev->pm.current_vddc = voltage->voltage;
+ DRM_DEBUG("Setting: v: %d\n", voltage->voltage);
+ }
+ }
}
bool r600_gui_idle(struct radeon_device *rdev)
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h
index 5f96fe871b3..111f586e200 100644
--- a/drivers/gpu/drm/radeon/radeon.h
+++ b/drivers/gpu/drm/radeon/radeon.h
@@ -242,7 +242,9 @@ struct radeon_bo {
struct list_head list;
/* Protected by tbo.reserved */
u32 placements[3];
+ u32 busy_placements[3];
struct ttm_placement placement;
+ struct ttm_placement busy_placement;
struct ttm_buffer_object tbo;
struct ttm_bo_kmap_obj kmap;
unsigned pin_count;
@@ -648,15 +650,18 @@ enum radeon_pm_profile_type {
PM_PROFILE_DEFAULT,
PM_PROFILE_AUTO,
PM_PROFILE_LOW,
+ PM_PROFILE_MID,
PM_PROFILE_HIGH,
};
#define PM_PROFILE_DEFAULT_IDX 0
#define PM_PROFILE_LOW_SH_IDX 1
-#define PM_PROFILE_HIGH_SH_IDX 2
-#define PM_PROFILE_LOW_MH_IDX 3
-#define PM_PROFILE_HIGH_MH_IDX 4
-#define PM_PROFILE_MAX 5
+#define PM_PROFILE_MID_SH_IDX 2
+#define PM_PROFILE_HIGH_SH_IDX 3
+#define PM_PROFILE_LOW_MH_IDX 4
+#define PM_PROFILE_MID_MH_IDX 5
+#define PM_PROFILE_HIGH_MH_IDX 6
+#define PM_PROFILE_MAX 7
struct radeon_pm_profile {
int dpms_off_ps_idx;
@@ -745,6 +750,7 @@ struct radeon_pm {
int default_power_state_index;
u32 current_sclk;
u32 current_mclk;
+ u32 current_vddc;
struct radeon_i2c_chan *i2c_bus;
/* selected pm method */
enum radeon_pm_method pm_method;
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
index 4305cd55d0a..99bd8a9c56b 100644
--- a/drivers/gpu/drm/radeon/radeon_atombios.c
+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
@@ -1833,10 +1833,7 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
/* skip invalid modes */
if (rdev->pm.power_state[state_index].clock_info[mode_index].sclk == 0)
continue;
- rdev->pm.power_state[state_index].clock_info[mode_index].voltage.type =
- VOLTAGE_SW;
- rdev->pm.power_state[state_index].clock_info[mode_index].voltage.voltage =
- clock_info->usVDDC;
+ /* voltage works differently on IGPs */
mode_index++;
} else if (ASIC_IS_DCE4(rdev)) {
struct _ATOM_PPLIB_EVERGREEN_CLOCK_INFO *clock_info =
@@ -1969,6 +1966,7 @@ void radeon_atombios_get_power_modes(struct radeon_device *rdev)
rdev->pm.current_power_state_index = rdev->pm.default_power_state_index;
rdev->pm.current_clock_mode_index = 0;
+ rdev->pm.current_vddc = rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage;
}
void radeon_atom_set_clock_gating(struct radeon_device *rdev, int enable)
diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c
index 102c744eaf5..1bee2f9e24a 100644
--- a/drivers/gpu/drm/radeon/radeon_combios.c
+++ b/drivers/gpu/drm/radeon/radeon_combios.c
@@ -2026,6 +2026,7 @@ bool radeon_get_legacy_connector_info_from_bios(struct drm_device *dev)
combios_setup_i2c_bus(rdev, RADEON_GPIO_CRT2_DDC);
break;
default:
+ ddc_i2c.valid = false;
break;
}
@@ -2339,6 +2340,7 @@ bool radeon_get_legacy_connector_info_from_bios(struct drm_device *dev)
if (RBIOS8(tv_info + 6) == 'T') {
if (radeon_apply_legacy_tv_quirks(dev)) {
hpd.hpd = RADEON_HPD_NONE;
+ ddc_i2c.valid = false;
radeon_add_legacy_encoder(dev,
radeon_get_encoder_id
(dev,
@@ -2455,7 +2457,7 @@ default_mode:
rdev->pm.power_state[state_index].clock_info[0].sclk = rdev->clock.default_sclk;
rdev->pm.power_state[state_index].default_clock_mode = &rdev->pm.power_state[state_index].clock_info[0];
if ((state_index > 0) &&
- (rdev->pm.power_state[0].clock_info[0].voltage.type = VOLTAGE_GPIO))
+ (rdev->pm.power_state[0].clock_info[0].voltage.type == VOLTAGE_GPIO))
rdev->pm.power_state[state_index].clock_info[0].voltage =
rdev->pm.power_state[0].clock_info[0].voltage;
else
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c
index 1006549d157..8154cdf796e 100644
--- a/drivers/gpu/drm/radeon/radeon_display.c
+++ b/drivers/gpu/drm/radeon/radeon_display.c
@@ -284,8 +284,7 @@ static const char *connector_names[15] = {
"eDP",
};
-static const char *hpd_names[7] = {
- "NONE",
+static const char *hpd_names[6] = {
"HPD1",
"HPD2",
"HPD3",
diff --git a/drivers/gpu/drm/radeon/radeon_drv.c b/drivers/gpu/drm/radeon/radeon_drv.c
index 902d1731a65..e166fe4d7c3 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.c
+++ b/drivers/gpu/drm/radeon/radeon_drv.c
@@ -45,9 +45,10 @@
* - 2.2.0 - add r6xx/r7xx const buffer support
* - 2.3.0 - add MSPOS + 3D texture + r500 VAP regs
* - 2.4.0 - add crtc id query
+ * - 2.5.0 - add get accel 2 to work around ddx breakage for evergreen
*/
#define KMS_DRIVER_MAJOR 2
-#define KMS_DRIVER_MINOR 4
+#define KMS_DRIVER_MINOR 5
#define KMS_DRIVER_PATCHLEVEL 0
int radeon_driver_load_kms(struct drm_device *dev, unsigned long flags);
int radeon_driver_unload_kms(struct drm_device *dev);
diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c
index e192acfbf0c..dc1634bb0c1 100644
--- a/drivers/gpu/drm/radeon/radeon_fb.c
+++ b/drivers/gpu/drm/radeon/radeon_fb.c
@@ -363,6 +363,7 @@ int radeon_fbdev_init(struct radeon_device *rdev)
{
struct radeon_fbdev *rfbdev;
int bpp_sel = 32;
+ int ret;
/* select 8 bpp console on RN50 or 16MB cards */
if (ASIC_IS_RN50(rdev) || rdev->mc.real_vram_size <= (32*1024*1024))
@@ -376,9 +377,14 @@ int radeon_fbdev_init(struct radeon_device *rdev)
rdev->mode_info.rfbdev = rfbdev;
rfbdev->helper.funcs = &radeon_fb_helper_funcs;
- drm_fb_helper_init(rdev->ddev, &rfbdev->helper,
- rdev->num_crtc,
- RADEONFB_CONN_LIMIT);
+ ret = drm_fb_helper_init(rdev->ddev, &rfbdev->helper,
+ rdev->num_crtc,
+ RADEONFB_CONN_LIMIT);
+ if (ret) {
+ kfree(rfbdev);
+ return ret;
+ }
+
drm_fb_helper_single_add_all_connectors(&rfbdev->helper);
drm_fb_helper_initial_config(&rfbdev->helper, bpp_sel);
return 0;
diff --git a/drivers/gpu/drm/radeon/radeon_kms.c b/drivers/gpu/drm/radeon/radeon_kms.c
index 04068352ccd..6a70c0dc7f9 100644
--- a/drivers/gpu/drm/radeon/radeon_kms.c
+++ b/drivers/gpu/drm/radeon/radeon_kms.c
@@ -118,7 +118,11 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
value = rdev->num_z_pipes;
break;
case RADEON_INFO_ACCEL_WORKING:
- value = rdev->accel_working;
+ /* xf86-video-ati 6.13.0 relies on this being false for evergreen */
+ if ((rdev->family >= CHIP_CEDAR) && (rdev->family <= CHIP_HEMLOCK))
+ value = false;
+ else
+ value = rdev->accel_working;
break;
case RADEON_INFO_CRTC_FROM_ID:
for (i = 0, found = 0; i < rdev->num_crtc; i++) {
@@ -134,6 +138,9 @@ int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file *filp)
return -EINVAL;
}
break;
+ case RADEON_INFO_ACCEL_WORKING2:
+ value = rdev->accel_working;
+ break;
default:
DRM_DEBUG("Invalid request %d\n", info->request);
return -EINVAL;
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
index 5a13b3eeef1..5b07b8848e0 100644
--- a/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
+++ b/drivers/gpu/drm/radeon/radeon_legacy_encoders.c
@@ -1168,6 +1168,17 @@ static enum drm_connector_status radeon_legacy_tv_dac_detect(struct drm_encoder
struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder);
struct radeon_encoder_tv_dac *tv_dac = radeon_encoder->enc_priv;
bool color = true;
+ struct drm_crtc *crtc;
+
+ /* find out if crtc2 is in use or if this encoder is using it */
+ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
+ struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
+ if ((radeon_crtc->crtc_id == 1) && crtc->enabled) {
+ if (encoder->crtc != crtc) {
+ return connector_status_disconnected;
+ }
+ }
+ }
if (connector->connector_type == DRM_MODE_CONNECTOR_SVIDEO ||
connector->connector_type == DRM_MODE_CONNECTOR_Composite ||
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
index d5b9373ce06..3ae25b71d69 100644
--- a/drivers/gpu/drm/radeon/radeon_object.c
+++ b/drivers/gpu/drm/radeon/radeon_object.c
@@ -66,15 +66,19 @@ bool radeon_ttm_bo_is_radeon_bo(struct ttm_buffer_object *bo)
void radeon_ttm_placement_from_domain(struct radeon_bo *rbo, u32 domain)
{
- u32 c = 0;
+ u32 c = 0, b = 0;
rbo->placement.fpfn = 0;
rbo->placement.lpfn = 0;
rbo->placement.placement = rbo->placements;
- rbo->placement.busy_placement = rbo->placements;
+ rbo->placement.busy_placement = rbo->busy_placements;
if (domain & RADEON_GEM_DOMAIN_VRAM)
rbo->placements[c++] = TTM_PL_FLAG_WC | TTM_PL_FLAG_UNCACHED |
TTM_PL_FLAG_VRAM;
+ /* add busy placement to TTM if VRAM is only option */
+ if (domain == RADEON_GEM_DOMAIN_VRAM) {
+ rbo->busy_placements[b++] = TTM_PL_MASK_CACHING | TTM_PL_FLAG_TT;
+ }
if (domain & RADEON_GEM_DOMAIN_GTT)
rbo->placements[c++] = TTM_PL_MASK_CACHING | TTM_PL_FLAG_TT;
if (domain & RADEON_GEM_DOMAIN_CPU)
@@ -82,7 +86,7 @@ void radeon_ttm_placement_from_domain(struct radeon_bo *rbo, u32 domain)
if (!c)
rbo->placements[c++] = TTM_PL_MASK_CACHING | TTM_PL_FLAG_SYSTEM;
rbo->placement.num_placement = c;
- rbo->placement.num_busy_placement = c;
+ rbo->placement.num_busy_placement = b;
}
int radeon_bo_create(struct radeon_device *rdev, struct drm_gem_object *gobj,
diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c
index 02281269a88..63f679a04b2 100644
--- a/drivers/gpu/drm/radeon/radeon_pm.c
+++ b/drivers/gpu/drm/radeon/radeon_pm.c
@@ -33,6 +33,14 @@
#define RADEON_WAIT_VBLANK_TIMEOUT 200
#define RADEON_WAIT_IDLE_TIMEOUT 200
+static const char *radeon_pm_state_type_name[5] = {
+ "Default",
+ "Powersave",
+ "Battery",
+ "Balanced",
+ "Performance",
+};
+
static void radeon_dynpm_idle_work_handler(struct work_struct *work);
static int radeon_debugfs_pm_init(struct radeon_device *rdev);
static bool radeon_pm_in_vbl(struct radeon_device *rdev);
@@ -84,9 +92,9 @@ static void radeon_pm_update_profile(struct radeon_device *rdev)
rdev->pm.profile_index = PM_PROFILE_HIGH_SH_IDX;
} else {
if (rdev->pm.active_crtc_count > 1)
- rdev->pm.profile_index = PM_PROFILE_LOW_MH_IDX;
+ rdev->pm.profile_index = PM_PROFILE_MID_MH_IDX;
else
- rdev->pm.profile_index = PM_PROFILE_LOW_SH_IDX;
+ rdev->pm.profile_index = PM_PROFILE_MID_SH_IDX;
}
break;
case PM_PROFILE_LOW:
@@ -95,6 +103,12 @@ static void radeon_pm_update_profile(struct radeon_device *rdev)
else
rdev->pm.profile_index = PM_PROFILE_LOW_SH_IDX;
break;
+ case PM_PROFILE_MID:
+ if (rdev->pm.active_crtc_count > 1)
+ rdev->pm.profile_index = PM_PROFILE_MID_MH_IDX;
+ else
+ rdev->pm.profile_index = PM_PROFILE_MID_SH_IDX;
+ break;
case PM_PROFILE_HIGH:
if (rdev->pm.active_crtc_count > 1)
rdev->pm.profile_index = PM_PROFILE_HIGH_MH_IDX;
@@ -127,15 +141,6 @@ static void radeon_unmap_vram_bos(struct radeon_device *rdev)
if (bo->tbo.mem.mem_type == TTM_PL_VRAM)
ttm_bo_unmap_virtual(&bo->tbo);
}
-
- if (rdev->gart.table.vram.robj)
- ttm_bo_unmap_virtual(&rdev->gart.table.vram.robj->tbo);
-
- if (rdev->stollen_vga_memory)
- ttm_bo_unmap_virtual(&rdev->stollen_vga_memory->tbo);
-
- if (rdev->r600_blit.shader_obj)
- ttm_bo_unmap_virtual(&rdev->r600_blit.shader_obj->tbo);
}
static void radeon_sync_with_vblank(struct radeon_device *rdev)
@@ -281,6 +286,42 @@ static void radeon_pm_set_clocks(struct radeon_device *rdev)
mutex_unlock(&rdev->ddev->struct_mutex);
}
+static void radeon_pm_print_states(struct radeon_device *rdev)
+{
+ int i, j;
+ struct radeon_power_state *power_state;
+ struct radeon_pm_clock_info *clock_info;
+
+ DRM_DEBUG("%d Power State(s)\n", rdev->pm.num_power_states);
+ for (i = 0; i < rdev->pm.num_power_states; i++) {
+ power_state = &rdev->pm.power_state[i];
+ DRM_DEBUG("State %d: %s\n", i,
+ radeon_pm_state_type_name[power_state->type]);
+ if (i == rdev->pm.default_power_state_index)
+ DRM_DEBUG("\tDefault");
+ if ((rdev->flags & RADEON_IS_PCIE) && !(rdev->flags & RADEON_IS_IGP))
+ DRM_DEBUG("\t%d PCIE Lanes\n", power_state->pcie_lanes);
+ if (power_state->flags & RADEON_PM_STATE_SINGLE_DISPLAY_ONLY)
+ DRM_DEBUG("\tSingle display only\n");
+ DRM_DEBUG("\t%d Clock Mode(s)\n", power_state->num_clock_modes);
+ for (j = 0; j < power_state->num_clock_modes; j++) {
+ clock_info = &(power_state->clock_info[j]);
+ if (rdev->flags & RADEON_IS_IGP)
+ DRM_DEBUG("\t\t%d e: %d%s\n",
+ j,
+ clock_info->sclk * 10,
+ clock_info->flags & RADEON_PM_MODE_NO_DISPLAY ? "\tNo display only" : "");
+ else
+ DRM_DEBUG("\t\t%d e: %d\tm: %d\tv: %d%s\n",
+ j,
+ clock_info->sclk * 10,
+ clock_info->mclk * 10,
+ clock_info->voltage.voltage,
+ clock_info->flags & RADEON_PM_MODE_NO_DISPLAY ? "\tNo display only" : "");
+ }
+ }
+}
+
static ssize_t radeon_get_pm_profile(struct device *dev,
struct device_attribute *attr,
char *buf)
@@ -311,6 +352,8 @@ static ssize_t radeon_set_pm_profile(struct device *dev,
rdev->pm.profile = PM_PROFILE_AUTO;
else if (strncmp("low", buf, strlen("low")) == 0)
rdev->pm.profile = PM_PROFILE_LOW;
+ else if (strncmp("mid", buf, strlen("mid")) == 0)
+ rdev->pm.profile = PM_PROFILE_MID;
else if (strncmp("high", buf, strlen("high")) == 0)
rdev->pm.profile = PM_PROFILE_HIGH;
else {
@@ -377,15 +420,19 @@ void radeon_pm_suspend(struct radeon_device *rdev)
{
mutex_lock(&rdev->pm.mutex);
cancel_delayed_work(&rdev->pm.dynpm_idle_work);
- rdev->pm.current_power_state_index = -1;
- rdev->pm.current_clock_mode_index = -1;
- rdev->pm.current_sclk = 0;
- rdev->pm.current_mclk = 0;
mutex_unlock(&rdev->pm.mutex);
}
void radeon_pm_resume(struct radeon_device *rdev)
{
+ /* asic init will reset the default power state */
+ mutex_lock(&rdev->pm.mutex);
+ rdev->pm.current_power_state_index = rdev->pm.default_power_state_index;
+ rdev->pm.current_clock_mode_index = 0;
+ rdev->pm.current_sclk = rdev->clock.default_sclk;
+ rdev->pm.current_mclk = rdev->clock.default_mclk;
+ rdev->pm.current_vddc = rdev->pm.power_state[rdev->pm.default_power_state_index].clock_info[0].voltage.voltage;
+ mutex_unlock(&rdev->pm.mutex);
radeon_pm_compute_clocks(rdev);
}
@@ -394,32 +441,24 @@ int radeon_pm_init(struct radeon_device *rdev)
int ret;
/* default to profile method */
rdev->pm.pm_method = PM_METHOD_PROFILE;
+ rdev->pm.profile = PM_PROFILE_DEFAULT;
rdev->pm.dynpm_state = DYNPM_STATE_DISABLED;
rdev->pm.dynpm_planned_action = DYNPM_ACTION_NONE;
rdev->pm.dynpm_can_upclock = true;
rdev->pm.dynpm_can_downclock = true;
- rdev->pm.current_sclk = 0;
- rdev->pm.current_mclk = 0;
+ rdev->pm.current_sclk = rdev->clock.default_sclk;
+ rdev->pm.current_mclk = rdev->clock.default_mclk;
if (rdev->bios) {
if (rdev->is_atom_bios)
radeon_atombios_get_power_modes(rdev);
else
radeon_combios_get_power_modes(rdev);
+ radeon_pm_print_states(rdev);
radeon_pm_init_profile(rdev);
- rdev->pm.current_power_state_index = -1;
- rdev->pm.current_clock_mode_index = -1;
}
if (rdev->pm.num_power_states > 1) {
- if (rdev->pm.pm_method == PM_METHOD_PROFILE) {
- mutex_lock(&rdev->pm.mutex);
- rdev->pm.profile = PM_PROFILE_DEFAULT;
- radeon_pm_update_profile(rdev);
- radeon_pm_set_clocks(rdev);
- mutex_unlock(&rdev->pm.mutex);
- }
-
/* where's the best place to put these? */
ret = device_create_file(rdev->dev, &dev_attr_power_profile);
if (ret)
@@ -705,6 +744,8 @@ static int radeon_debugfs_pm_info(struct seq_file *m, void *data)
seq_printf(m, "default memory clock: %u0 kHz\n", rdev->clock.default_mclk);
if (rdev->asic->get_memory_clock)
seq_printf(m, "current memory clock: %u0 kHz\n", radeon_get_memory_clock(rdev));
+ if (rdev->pm.current_vddc)
+ seq_printf(m, "voltage: %u mV\n", rdev->pm.current_vddc);
if (rdev->asic->get_pcie_lanes)
seq_printf(m, "PCIE lanes: %d\n", radeon_get_pcie_lanes(rdev));
diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c
index 33952da6534..cec536c222c 100644
--- a/drivers/gpu/drm/radeon/rv770.c
+++ b/drivers/gpu/drm/radeon/rv770.c
@@ -44,12 +44,18 @@ void rv770_fini(struct radeon_device *rdev);
void rv770_pm_misc(struct radeon_device *rdev)
{
- int requested_index = rdev->pm.requested_power_state_index;
- struct radeon_power_state *ps = &rdev->pm.power_state[requested_index];
- struct radeon_voltage *voltage = &ps->clock_info[0].voltage;
-
- if ((voltage->type == VOLTAGE_SW) && voltage->voltage)
- radeon_atom_set_voltage(rdev, voltage->voltage);
+ int req_ps_idx = rdev->pm.requested_power_state_index;
+ int req_cm_idx = rdev->pm.requested_clock_mode_index;
+ struct radeon_power_state *ps = &rdev->pm.power_state[req_ps_idx];
+ struct radeon_voltage *voltage = &ps->clock_info[req_cm_idx].voltage;
+
+ if ((voltage->type == VOLTAGE_SW) && voltage->voltage) {
+ if (voltage->voltage != rdev->pm.current_vddc) {
+ radeon_atom_set_voltage(rdev, voltage->voltage);
+ rdev->pm.current_vddc = voltage->voltage;
+ DRM_DEBUG("Setting: v: %d\n", voltage->voltage);
+ }
+ }
}
/*
diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c
index ef910694bd6..f3aa214cb9d 100644
--- a/drivers/gpu/drm/ttm/ttm_page_alloc.c
+++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c
@@ -40,7 +40,9 @@
#include <linux/slab.h>
#include <asm/atomic.h>
+#if ! defined CONFIG_ARCH_OMAP && ! defined CONFIG_ARCH_VERSATILE
#include <asm/agp.h>
+#endif
#include "ttm/ttm_bo_driver.h"
#include "ttm/ttm_page_alloc.h"
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index bdd67cf8331..8e396850513 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -644,6 +644,7 @@ int vmw_execbuf_ioctl(struct drm_device *dev, void *data,
ret = copy_from_user(cmd, user_cmd, arg->command_size);
if (unlikely(ret != 0)) {
+ ret = -EFAULT;
DRM_ERROR("Failed copying commands.\n");
goto out_commit;
}
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
index f8fbbc67a40..8612378b131 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
@@ -597,8 +597,10 @@ int vmw_surface_define_ioctl(struct drm_device *dev, void *data,
ret = copy_from_user(srf->sizes, user_sizes,
srf->num_sizes * sizeof(*srf->sizes));
- if (unlikely(ret != 0))
+ if (unlikely(ret != 0)) {
+ ret = -EFAULT;
goto out_err1;
+ }
if (srf->scanout &&
srf->num_sizes == 1 &&
@@ -697,9 +699,11 @@ int vmw_surface_reference_ioctl(struct drm_device *dev, void *data,
if (user_sizes)
ret = copy_to_user(user_sizes, srf->sizes,
srf->num_sizes * sizeof(*srf->sizes));
- if (unlikely(ret != 0))
+ if (unlikely(ret != 0)) {
DRM_ERROR("copy_to_user failed %p %u\n",
user_sizes, srf->num_sizes);
+ ret = -EFAULT;
+ }
out_bad_resource:
out_no_reference:
ttm_base_object_unref(&base);
diff --git a/drivers/hid/Makefile b/drivers/hid/Makefile
index 987fa062736..cfb52558cf8 100644
--- a/drivers/hid/Makefile
+++ b/drivers/hid/Makefile
@@ -39,6 +39,7 @@ obj-$(CONFIG_HID_KYE) += hid-kye.o
obj-$(CONFIG_HID_LOGITECH) += hid-logitech.o
obj-$(CONFIG_HID_MAGICMOUSE) += hid-magicmouse.o
obj-$(CONFIG_HID_MICROSOFT) += hid-microsoft.o
+obj-$(CONFIG_HID_ORTEK) += hid-ortek.o
obj-$(CONFIG_HID_MONTEREY) += hid-monterey.o
obj-$(CONFIG_HID_MOSART) += hid-mosart.o
obj-$(CONFIG_HID_NTRIG) += hid-ntrig.o
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c
index 2ee6c7a68bd..2cf7b3abd6b 100644
--- a/drivers/input/evdev.c
+++ b/drivers/input/evdev.c
@@ -10,7 +10,8 @@
#define EVDEV_MINOR_BASE 64
#define EVDEV_MINORS 32
-#define EVDEV_BUFFER_SIZE 64
+#define EVDEV_MIN_BUFFER_SIZE 64
+#define EVDEV_BUF_PACKETS 8
#include <linux/poll.h>
#include <linux/sched.h>
@@ -33,13 +34,14 @@ struct evdev {
spinlock_t client_lock; /* protects client_list */
struct mutex mutex;
struct device dev;
+ int head;
+ unsigned int bufsize;
+ struct input_event *buffer;
};
struct evdev_client {
- struct input_event buffer[EVDEV_BUFFER_SIZE];
int head;
int tail;
- spinlock_t buffer_lock; /* protects access to buffer, head and tail */
struct fasync_struct *fasync;
struct evdev *evdev;
struct list_head node;
@@ -48,18 +50,13 @@ struct evdev_client {
static struct evdev *evdev_table[EVDEV_MINORS];
static DEFINE_MUTEX(evdev_table_mutex);
-static void evdev_pass_event(struct evdev_client *client,
- struct input_event *event)
+static inline void evdev_sync_event(struct evdev_client *client,
+ struct evdev *evdev, int type)
{
- /*
- * Interrupts are disabled, just acquire the lock
- */
- spin_lock(&client->buffer_lock);
- client->buffer[client->head++] = *event;
- client->head &= EVDEV_BUFFER_SIZE - 1;
- spin_unlock(&client->buffer_lock);
-
- if (event->type == EV_SYN)
+ /* sync the reader such that it never becomes empty */
+ if (client->tail != evdev->head)
+ client->head = evdev->head;
+ if (type == EV_SYN)
kill_fasync(&client->fasync, SIGIO, POLL_IN);
}
@@ -78,14 +75,18 @@ static void evdev_event(struct input_handle *handle,
event.code = code;
event.value = value;
+ /* dev->event_lock held */
+ evdev->buffer[evdev->head] = event;
+ evdev->head = (evdev->head + 1) & (evdev->bufsize - 1);
+
rcu_read_lock();
client = rcu_dereference(evdev->grab);
if (client)
- evdev_pass_event(client, &event);
+ evdev_sync_event(client, evdev, type);
else
list_for_each_entry_rcu(client, &evdev->client_list, node)
- evdev_pass_event(client, &event);
+ evdev_sync_event(client, evdev, type);
rcu_read_unlock();
@@ -123,6 +124,7 @@ static void evdev_free(struct device *dev)
struct evdev *evdev = container_of(dev, struct evdev, dev);
input_put_device(evdev->handle.dev);
+ kfree(evdev->buffer);
kfree(evdev);
}
@@ -269,7 +271,6 @@ static int evdev_open(struct inode *inode, struct file *file)
goto err_put_evdev;
}
- spin_lock_init(&client->buffer_lock);
client->evdev = evdev;
evdev_attach_client(evdev, client);
@@ -325,19 +326,27 @@ static ssize_t evdev_write(struct file *file, const char __user *buffer,
}
static int evdev_fetch_next_event(struct evdev_client *client,
+ struct evdev *evdev,
struct input_event *event)
{
+ struct input_dev *dev = evdev->handle.dev;
int have_event;
- spin_lock_irq(&client->buffer_lock);
+ /*
+ * FIXME: taking event_lock protects against reentrant fops
+ * reads and provides sufficient buffer locking. However,
+ * clients should not block writes, and having multiple clients
+ * waiting for each other is suboptimal.
+ */
+ spin_lock_irq(&dev->event_lock);
have_event = client->head != client->tail;
if (have_event) {
- *event = client->buffer[client->tail++];
- client->tail &= EVDEV_BUFFER_SIZE - 1;
+ *event = evdev->buffer[client->tail++];
+ client->tail &= evdev->bufsize - 1;
}
- spin_unlock_irq(&client->buffer_lock);
+ spin_unlock_irq(&dev->event_lock);
return have_event;
}
@@ -366,7 +375,7 @@ static ssize_t evdev_read(struct file *file, char __user *buffer,
return -ENODEV;
while (retval + input_event_size() <= count &&
- evdev_fetch_next_event(client, &event)) {
+ evdev_fetch_next_event(client, evdev, &event)) {
if (input_event_to_user(buffer + retval, &event))
return -EFAULT;
@@ -787,6 +796,13 @@ static void evdev_cleanup(struct evdev *evdev)
}
}
+static int evdev_compute_buffer_size(struct input_dev *dev)
+{
+ int nev = dev->hint_events_per_packet * EVDEV_BUF_PACKETS;
+ nev = max(nev, EVDEV_MIN_BUFFER_SIZE);
+ return roundup_pow_of_two(nev);
+}
+
/*
* Create new evdev device. Note that input core serializes calls
* to connect and disconnect so we don't need to lock evdev_table here.
@@ -831,6 +847,14 @@ static int evdev_connect(struct input_handler *handler, struct input_dev *dev,
evdev->dev.release = evdev_free;
device_initialize(&evdev->dev);
+ evdev->bufsize = evdev_compute_buffer_size(dev);
+ evdev->buffer = kcalloc(evdev->bufsize, sizeof(struct input_event),
+ GFP_KERNEL);
+ if (!evdev->buffer) {
+ error = -ENOMEM;
+ goto err_free_evdev;
+ }
+
error = input_register_handle(&evdev->handle);
if (error)
goto err_free_evdev;
diff --git a/drivers/input/input.c b/drivers/input/input.c
index 9c79bd56b51..9b6d474b95f 100644
--- a/drivers/input/input.c
+++ b/drivers/input/input.c
@@ -33,24 +33,9 @@ MODULE_LICENSE("GPL");
#define INPUT_DEVICES 256
-/*
- * EV_ABS events which should not be cached are listed here.
- */
-static unsigned int input_abs_bypass_init_data[] __initdata = {
- ABS_MT_TOUCH_MAJOR,
- ABS_MT_TOUCH_MINOR,
- ABS_MT_WIDTH_MAJOR,
- ABS_MT_WIDTH_MINOR,
- ABS_MT_ORIENTATION,
- ABS_MT_POSITION_X,
- ABS_MT_POSITION_Y,
- ABS_MT_TOOL_TYPE,
- ABS_MT_BLOB_ID,
- ABS_MT_TRACKING_ID,
- ABS_MT_PRESSURE,
- 0
-};
-static unsigned long input_abs_bypass[BITS_TO_LONGS(ABS_CNT)];
+static unsigned int input_mt_abs_map_init_data[] __initdata =
+ MT_SLOT_ABS_EVENTS;
+static unsigned char input_mt_abs_map[ABS_CNT];
static LIST_HEAD(input_dev_list);
static LIST_HEAD(input_handler_list);
@@ -181,6 +166,26 @@ static void input_stop_autorepeat(struct input_dev *dev)
#define INPUT_PASS_TO_DEVICE 2
#define INPUT_PASS_TO_ALL (INPUT_PASS_TO_HANDLERS | INPUT_PASS_TO_DEVICE)
+static void input_mt_handle_abs_event(struct input_dev *dev,
+ unsigned int code, int value)
+{
+ if (dev->mt) {
+ struct input_mt_slot *mtslot = &dev->mt[dev->slot];
+ unsigned int mtcode = input_mt_abs_map[code] - 1;
+ int old = mtslot->abs[mtcode];
+ value = input_defuzz_abs_event(value, old, dev->absfuzz[code]);
+ if (value == old)
+ return;
+ mtslot->abs[mtcode] = value;
+ }
+ dev->sync = 0;
+ if (dev->slot != dev->abs[ABS_MT_SLOT]) {
+ dev->abs[ABS_MT_SLOT] = dev->slot;
+ input_pass_event(dev, EV_ABS, ABS_MT_SLOT, dev->slot);
+ }
+ input_pass_event(dev, EV_ABS, code, value);
+}
+
static void input_handle_event(struct input_dev *dev,
unsigned int type, unsigned int code, int value)
{
@@ -235,11 +240,17 @@ static void input_handle_event(struct input_dev *dev,
case EV_ABS:
if (is_event_supported(code, dev->absbit, ABS_MAX)) {
- if (test_bit(code, input_abs_bypass)) {
- disposition = INPUT_PASS_TO_HANDLERS;
+ if (code == ABS_MT_SLOT) {
+ if (value >= 0 && value < dev->mtsize)
+ dev->slot = value;
break;
}
+ if (input_mt_abs_map[code]) {
+ input_mt_handle_abs_event(dev, code, value);
+ return;
+ }
+
value = input_defuzz_abs_event(value,
dev->abs[code], dev->absfuzz[code]);
@@ -1278,6 +1289,7 @@ static void input_dev_release(struct device *device)
struct input_dev *dev = to_input_dev(device);
input_ff_destroy(dev);
+ input_mt_destroy_slots(dev);
kfree(dev);
module_put(THIS_MODULE);
@@ -1518,6 +1530,46 @@ void input_free_device(struct input_dev *dev)
EXPORT_SYMBOL(input_free_device);
/**
+ * input_mt_create_slots() - create MT input slots
+ * @dev: input device supporting MT events and finger tracking
+ * @max_slots: maximum number of slots supported by the device
+ *
+ * This function allocates all necessary memory for MT slot handling
+ * in the input device, and adds ABS_MT_SLOT to the device capabilities.
+ */
+int input_mt_create_slots(struct input_dev *dev, int max_slots)
+{
+ struct input_mt_slot *mt;
+
+ if (max_slots <= 0)
+ return 0;
+ mt = kzalloc(max_slots * sizeof(struct input_mt_slot), GFP_KERNEL);
+ if (!mt)
+ return -ENOMEM;
+
+ dev->mt = mt;
+ dev->mtsize = max_slots;
+ input_set_abs_params(dev, ABS_MT_SLOT, 0, max_slots - 1, 0, 0);
+ return 0;
+}
+EXPORT_SYMBOL(input_mt_create_slots);
+
+/**
+ * input_mt_destroy_slots() - frees the MT slots of the input device
+ * @dev: input device with allocated MT slots
+ *
+ * This function is only needed in error path as the input core will
+ * automatically free the MT slots when the device is destroyed.
+ */
+void input_mt_destroy_slots(struct input_dev *dev)
+{
+ kfree(dev->mt);
+ dev->mt = NULL;
+ dev->mtsize = 0;
+}
+EXPORT_SYMBOL(input_mt_destroy_slots);
+
+/**
* input_set_capability - mark device as capable of a certain event
* @dev: device that is capable of emitting or accepting event
* @type: type of the event (EV_KEY, EV_REL, etc...)
@@ -1926,19 +1978,20 @@ static const struct file_operations input_fops = {
.open = input_open_file,
};
-static void __init input_init_abs_bypass(void)
+static void __init input_mt_init_maps(void)
{
- const unsigned int *p;
-
- for (p = input_abs_bypass_init_data; *p; p++)
- input_abs_bypass[BIT_WORD(*p)] |= BIT_MASK(*p);
+ int i;
+ BUILD_BUG_ON(MT_ABS_SIZE != (typeof(input_mt_abs_map[0]))MT_ABS_SIZE);
+ BUILD_BUG_ON(ARRAY_SIZE(input_mt_abs_map_init_data) > MT_ABS_SIZE);
+ for (i = 0; i < ARRAY_SIZE(input_mt_abs_map_init_data); i++)
+ input_mt_abs_map[input_mt_abs_map_init_data[i]] = i + 1;
}
static int __init input_init(void)
{
int err;
- input_init_abs_bypass();
+ input_mt_init_maps();
err = class_register(&input_class);
if (err) {
diff --git a/drivers/input/keyboard/atkbd.c b/drivers/input/keyboard/atkbd.c
index d358ef8623f..1dae7331d3e 100644
--- a/drivers/input/keyboard/atkbd.c
+++ b/drivers/input/keyboard/atkbd.c
@@ -926,6 +926,14 @@ static unsigned int atkbd_amilo_xi3650_forced_release_keys[] = {
};
/*
+ * Fujitsu Siemens system with broken key release on volume keys and mute key
+ */
+
+static unsigned int atkbd_amilo_xi_2428_forced_release_keys[] = {
+ 0xa0, 0xae, 0xb0, -1U
+};
+
+/*
* Soltech TA12 system with broken key release on volume keys and mute key
*/
static unsigned int atkdb_soltech_ta12_forced_release_keys[] = {
@@ -1699,6 +1707,35 @@ static const struct dmi_system_id atkbd_dmi_quirk_table[] __initconst = {
.driver_data = atkbd_amilo_xi3650_forced_release_keys,
},
{
+ .ident = "Znote 6615WD",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Zepto"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Znote 6615WD"),
+ },
+ .callback = atkbd_setup_forced_release,
+ .driver_data = atkbd_volume_forced_release_keys,
+ },
+ {
+ .ident = "Znote 6625WD",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Zepto"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Znote"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "6625WD"),
+ },
+ .callback = atkbd_setup_forced_release,
+ .driver_data = atkbd_volume_forced_release_keys,
+ },
+ {
+ .ident = "AMILO Xi 2428",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "AMILO Xi 2428"),
+ },
+ .callback = atkbd_setup_forced_release,
+ .driver_data = atkbd_amilo_xi_2428_forced_release_keys,
+ },
+ {
+ .ident = "Soltech Corporation TA12",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Soltech Corporation"),
DMI_MATCH(DMI_PRODUCT_NAME, "TA12"),
diff --git a/drivers/input/misc/hp_sdc_rtc.c b/drivers/input/misc/hp_sdc_rtc.c
index e00a1cc79c0..c1906647905 100644
--- a/drivers/input/misc/hp_sdc_rtc.c
+++ b/drivers/input/misc/hp_sdc_rtc.c
@@ -678,7 +678,7 @@ static const struct file_operations hp_sdc_rtc_fops = {
.llseek = no_llseek,
.read = hp_sdc_rtc_read,
.poll = hp_sdc_rtc_poll,
- .unlocked_ioctl = hp_sdc_rtc_ioctl,
+ .unlocked_ioctl = hp_sdc_rtc_unlocked_ioctl,
.open = hp_sdc_rtc_open,
.fasync = hp_sdc_rtc_fasync,
};
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
index 40cea334ad1..d579bfc4072 100644
--- a/drivers/input/mouse/synaptics.c
+++ b/drivers/input/mouse/synaptics.c
@@ -351,6 +351,45 @@ static void synaptics_pt_create(struct psmouse *psmouse)
* Functions to interpret the absolute mode packets
****************************************************************************/
+/* left and right clickpad button ranges;
+ * the gap between them is interpreted as a middle-button click
+ */
+#define CLICKPAD_LEFT_BTN_X \
+ ((XMAX_NOMINAL - XMIN_NOMINAL) * 2 / 5 + XMIN_NOMINAL)
+#define CLICKPAD_RIGHT_BTN_X \
+ ((XMAX_NOMINAL - XMIN_NOMINAL) * 3 / 5 + XMIN_NOMINAL)
+
+/* handle clickpad events */
+static void clickpad_process_packet(struct synaptics_data *priv,
+ struct synaptics_hw_state *hw)
+{
+ /* clickpad mode reports Y range from 0 to YMAX_NOMINAL,
+ * where the area Y < YMIN_NOMINAL is used as click buttons
+ */
+ if (hw->y < YMIN_NOMINAL) {
+ /* button area */
+ hw->z = 0; /* don't move pointer */
+ /* clickpad reports only the middle button, and we need
+ * to fake left/right buttons depending on the touch position
+ */
+ if (hw->middle) { /* clicked? */
+ hw->middle = 0;
+ if (hw->x < CLICKPAD_LEFT_BTN_X)
+ hw->left = 1;
+ else if (hw->x > CLICKPAD_RIGHT_BTN_X)
+ hw->right = 1;
+ else
+ hw->middle = 1;
+ }
+ } else if (hw->middle) {
+ /* dragging */
+ hw->left = priv->prev_hw.left;
+ hw->right = priv->prev_hw.right;
+ hw->middle = priv->prev_hw.middle;
+ }
+ priv->prev_hw = *hw;
+}
+
static void synaptics_parse_hw_state(unsigned char buf[], struct synaptics_data *priv, struct synaptics_hw_state *hw)
{
memset(hw, 0, sizeof(struct synaptics_hw_state));
@@ -439,6 +478,9 @@ static void synaptics_process_packet(struct psmouse *psmouse)
synaptics_parse_hw_state(psmouse->packet, priv, &hw);
+ if (SYN_CAP_CLICKPAD(priv->ext_cap))
+ clickpad_process_packet(priv, &hw);
+
if (hw.scroll) {
priv->scroll += hw.scroll;
@@ -742,6 +784,12 @@ int synaptics_init(struct psmouse *psmouse)
SYN_ID_MAJOR(priv->identity), SYN_ID_MINOR(priv->identity),
priv->model_id, priv->capabilities, priv->ext_cap, priv->ext_cap_0c);
+ if (SYN_CAP_CLICKPAD(priv->ext_cap)) {
+ printk(KERN_INFO "Synaptics: Clickpad mode enabled\n");
+ /* force to enable the middle button */
+ priv->capabilities |= (1 << 18);
+ }
+
set_input_params(psmouse->dev, priv);
/*
diff --git a/drivers/input/mouse/synaptics.h b/drivers/input/mouse/synaptics.h
index 7d4d5e12c0d..0aa38a3e177 100644
--- a/drivers/input/mouse/synaptics.h
+++ b/drivers/input/mouse/synaptics.h
@@ -109,6 +109,7 @@ struct synaptics_data {
unsigned char pkt_type; /* packet type - old, new, etc */
unsigned char mode; /* current mode byte */
int scroll;
+ struct synaptics_hw_state prev_hw;
};
void synaptics_module_init(void);
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index d21e1284604..481f49304b1 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -2667,6 +2667,7 @@ struct gendisk *dm_disk(struct mapped_device *md)
{
return md->disk;
}
+EXPORT_SYMBOL_GPL(dm_disk);
struct kobject *dm_kobject(struct mapped_device *md)
{
diff --git a/drivers/mmc/host/Kconfig b/drivers/mmc/host/Kconfig
index e171e77f612..f06d06e7fdf 100644
--- a/drivers/mmc/host/Kconfig
+++ b/drivers/mmc/host/Kconfig
@@ -249,7 +249,7 @@ config MMC_IMX
config MMC_MSM7X00A
tristate "Qualcomm MSM 7X00A SDCC Controller Support"
- depends on MMC && ARCH_MSM
+ depends on MMC && ARCH_MSM && !ARCH_MSM7X30
help
This provides support for the SD/MMC cell found in the
MSM 7X00A controllers from Qualcomm.
diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c
index 000d65ea55a..91c8013cf0d 100644
--- a/drivers/mtd/mtdchar.c
+++ b/drivers/mtd/mtdchar.c
@@ -404,14 +404,9 @@ static int mtd_do_writeoob(struct file *file, struct mtd_info *mtd,
if (ops.ooboffs && ops.ooblen > (mtd->oobsize - ops.ooboffs))
return -EINVAL;
- ops.oobbuf = kmalloc(length, GFP_KERNEL);
- if (!ops.oobbuf)
- return -ENOMEM;
-
- if (copy_from_user(ops.oobbuf, ptr, length)) {
- kfree(ops.oobbuf);
- return -EFAULT;
- }
+ ops.oobbuf = memdup_user(ptr, length);
+ if (IS_ERR(ops.oobbuf))
+ return PTR_ERR(ops.oobbuf);
start &= ~((uint64_t)mtd->oobsize - 1);
ret = mtd->write_oob(mtd, start, &ops);
diff --git a/drivers/mtd/nand/Kconfig b/drivers/mtd/nand/Kconfig
index 98a04b3c952..ffc3720929f 100644
--- a/drivers/mtd/nand/Kconfig
+++ b/drivers/mtd/nand/Kconfig
@@ -1,13 +1,3 @@
-menuconfig MTD_NAND
- tristate "NAND Device Support"
- depends on MTD
- select MTD_NAND_IDS
- select MTD_NAND_ECC
- help
- This enables support for accessing all type of NAND flash
- devices. For further information see
- <http://www.linux-mtd.infradead.org/doc/nand.html>.
-
config MTD_NAND_ECC
tristate
@@ -19,6 +9,17 @@ config MTD_NAND_ECC_SMC
Software ECC according to the Smart Media Specification.
The original Linux implementation had byte 0 and 1 swapped.
+
+menuconfig MTD_NAND
+ tristate "NAND Device Support"
+ depends on MTD
+ select MTD_NAND_IDS
+ select MTD_NAND_ECC
+ help
+ This enables support for accessing all type of NAND flash
+ devices. For further information see
+ <http://www.linux-mtd.infradead.org/doc/nand.html>.
+
if MTD_NAND
config MTD_NAND_VERIFY_WRITE
diff --git a/drivers/mtd/nand/r852.c b/drivers/mtd/nand/r852.c
index 78a42329547..bcfc851fe55 100644
--- a/drivers/mtd/nand/r852.c
+++ b/drivers/mtd/nand/r852.c
@@ -150,7 +150,6 @@ static void r852_dma_done(struct r852_device *dev, int error)
if (dev->phys_dma_addr && dev->phys_dma_addr != dev->phys_bounce_buffer)
pci_unmap_single(dev->pci_dev, dev->phys_dma_addr, R852_DMA_LEN,
dev->dma_dir ? PCI_DMA_FROMDEVICE : PCI_DMA_TODEVICE);
- complete(&dev->dma_done);
}
/*
@@ -182,6 +181,7 @@ static void r852_do_dma(struct r852_device *dev, uint8_t *buf, int do_read)
/* Set dma direction */
dev->dma_dir = do_read;
dev->dma_stage = 1;
+ INIT_COMPLETION(dev->dma_done);
dbg_verbose("doing dma %s ", do_read ? "read" : "write");
@@ -494,6 +494,11 @@ int r852_ecc_correct(struct mtd_info *mtd, uint8_t *dat,
if (dev->card_unstable)
return 0;
+ if (dev->dma_error) {
+ dev->dma_error = 0;
+ return -1;
+ }
+
r852_write_reg(dev, R852_CTL, dev->ctlreg | R852_CTL_ECC_ACCESS);
ecc_reg = r852_read_reg_dword(dev, R852_DATALINE);
r852_write_reg(dev, R852_CTL, dev->ctlreg);
@@ -707,6 +712,7 @@ void r852_card_detect_work(struct work_struct *work)
container_of(work, struct r852_device, card_detect_work.work);
r852_card_update_present(dev);
+ r852_update_card_detect(dev);
dev->card_unstable = 0;
/* False alarm */
@@ -722,7 +728,6 @@ void r852_card_detect_work(struct work_struct *work)
else
r852_unregister_nand_device(dev);
exit:
- /* Update detection logic */
r852_update_card_detect(dev);
}
@@ -796,6 +801,7 @@ static irqreturn_t r852_irq(int irq, void *data)
if (dma_status & R852_DMA_IRQ_ERROR) {
dbg("recieved dma error IRQ");
r852_dma_done(dev, -EIO);
+ complete(&dev->dma_done);
goto out;
}
@@ -825,8 +831,10 @@ static irqreturn_t r852_irq(int irq, void *data)
r852_dma_enable(dev);
/* Operation done */
- if (dev->dma_stage == 3)
+ if (dev->dma_stage == 3) {
r852_dma_done(dev, 0);
+ complete(&dev->dma_done);
+ }
goto out;
}
@@ -940,18 +948,19 @@ int r852_probe(struct pci_dev *pci_dev, const struct pci_device_id *id)
r852_dma_test(dev);
+ dev->irq = pci_dev->irq;
+ spin_lock_init(&dev->irqlock);
+
+ dev->card_detected = 0;
+ r852_card_update_present(dev);
+
/*register irq handler*/
error = -ENODEV;
if (request_irq(pci_dev->irq, &r852_irq, IRQF_SHARED,
DRV_NAME, dev))
goto error10;
- dev->irq = pci_dev->irq;
- spin_lock_init(&dev->irqlock);
-
/* kick initial present test */
- dev->card_detected = 0;
- r852_card_update_present(dev);
queue_delayed_work(dev->card_workqueue,
&dev->card_detect_work, 0);
@@ -1081,7 +1090,7 @@ int r852_resume(struct device *device)
dev->card_detected ? "added" : "removed");
queue_delayed_work(dev->card_workqueue,
- &dev->card_detect_work, 1000);
+ &dev->card_detect_work, msecs_to_jiffies(1000));
return 0;
}
diff --git a/drivers/net/8139cp.c b/drivers/net/8139cp.c
index 9c149750e2b..284a5f4a63a 100644
--- a/drivers/net/8139cp.c
+++ b/drivers/net/8139cp.c
@@ -598,8 +598,8 @@ rx_next:
goto rx_status_loop;
spin_lock_irqsave(&cp->lock, flags);
- cpw16_f(IntrMask, cp_intr_mask);
__napi_complete(napi);
+ cpw16_f(IntrMask, cp_intr_mask);
spin_unlock_irqrestore(&cp->lock, flags);
}
diff --git a/drivers/net/8139too.c b/drivers/net/8139too.c
index 4ba72933f0d..97d8068b372 100644
--- a/drivers/net/8139too.c
+++ b/drivers/net/8139too.c
@@ -860,6 +860,7 @@ retry:
}
/* if unknown chip, assume array element #0, original RTL-8139 in this case */
+ i = 0;
dev_dbg(&pdev->dev, "unknown chip version, assuming RTL-8139\n");
dev_dbg(&pdev->dev, "TxConfig = 0x%lx\n", RTL_R32 (TxConfig));
tp->chipset = 0;
@@ -2088,8 +2089,8 @@ static int rtl8139_poll(struct napi_struct *napi, int budget)
* again when we think we are done.
*/
spin_lock_irqsave(&tp->lock, flags);
- RTL_W16_F(IntrMask, rtl8139_intr_mask);
__napi_complete(napi);
+ RTL_W16_F(IntrMask, rtl8139_intr_mask);
spin_unlock_irqrestore(&tp->lock, flags);
}
spin_unlock(&tp->rx_lock);
diff --git a/drivers/net/gianfar.c b/drivers/net/gianfar.c
index 1830f3199cb..46c69cd0655 100644
--- a/drivers/net/gianfar.c
+++ b/drivers/net/gianfar.c
@@ -747,8 +747,7 @@ static int gfar_of_init(struct of_device *ofdev, struct net_device **pdev)
FSL_GIANFAR_DEV_HAS_CSUM |
FSL_GIANFAR_DEV_HAS_VLAN |
FSL_GIANFAR_DEV_HAS_MAGIC_PACKET |
- FSL_GIANFAR_DEV_HAS_EXTENDED_HASH |
- FSL_GIANFAR_DEV_HAS_TIMER;
+ FSL_GIANFAR_DEV_HAS_EXTENDED_HASH;
ctype = of_get_property(np, "phy-connection-type", NULL);
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c
index 7b6fe89f9db..64e6a84bbbb 100644
--- a/drivers/net/pcmcia/smc91c92_cs.c
+++ b/drivers/net/pcmcia/smc91c92_cs.c
@@ -322,6 +322,7 @@ static int smc91c92_probe(struct pcmcia_device *link)
return -ENOMEM;
smc = netdev_priv(dev);
smc->p_dev = link;
+ link->priv = dev;
spin_lock_init(&smc->lock);
link->io.NumPorts1 = 16;
diff --git a/drivers/net/phy/lxt.c b/drivers/net/phy/lxt.c
index 8ee929b796d..dbd00345373 100644
--- a/drivers/net/phy/lxt.c
+++ b/drivers/net/phy/lxt.c
@@ -53,6 +53,9 @@
#define MII_LXT971_ISR 19 /* Interrupt Status Register */
+/* register definitions for the 973 */
+#define MII_LXT973_PCR 16 /* Port Configuration Register */
+#define PCR_FIBER_SELECT 1
MODULE_DESCRIPTION("Intel LXT PHY driver");
MODULE_AUTHOR("Andy Fleming");
@@ -119,6 +122,33 @@ static int lxt971_config_intr(struct phy_device *phydev)
return err;
}
+static int lxt973_probe(struct phy_device *phydev)
+{
+ int val = phy_read(phydev, MII_LXT973_PCR);
+
+ if (val & PCR_FIBER_SELECT) {
+ /*
+ * If fiber is selected, then the only correct setting
+ * is 100Mbps, full duplex, and auto negotiation off.
+ */
+ val = phy_read(phydev, MII_BMCR);
+ val |= (BMCR_SPEED100 | BMCR_FULLDPLX);
+ val &= ~BMCR_ANENABLE;
+ phy_write(phydev, MII_BMCR, val);
+ /* Remember that the port is in fiber mode. */
+ phydev->priv = lxt973_probe;
+ } else {
+ phydev->priv = NULL;
+ }
+ return 0;
+}
+
+static int lxt973_config_aneg(struct phy_device *phydev)
+{
+ /* Do nothing if port is in fiber mode. */
+ return phydev->priv ? 0 : genphy_config_aneg(phydev);
+}
+
static struct phy_driver lxt970_driver = {
.phy_id = 0x78100000,
.name = "LXT970",
@@ -146,6 +176,18 @@ static struct phy_driver lxt971_driver = {
.driver = { .owner = THIS_MODULE,},
};
+static struct phy_driver lxt973_driver = {
+ .phy_id = 0x00137a10,
+ .name = "LXT973",
+ .phy_id_mask = 0xfffffff0,
+ .features = PHY_BASIC_FEATURES,
+ .flags = 0,
+ .probe = lxt973_probe,
+ .config_aneg = lxt973_config_aneg,
+ .read_status = genphy_read_status,
+ .driver = { .owner = THIS_MODULE,},
+};
+
static int __init lxt_init(void)
{
int ret;
@@ -157,9 +199,15 @@ static int __init lxt_init(void)
ret = phy_driver_register(&lxt971_driver);
if (ret)
goto err2;
+
+ ret = phy_driver_register(&lxt973_driver);
+ if (ret)
+ goto err3;
return 0;
- err2:
+ err3:
+ phy_driver_unregister(&lxt971_driver);
+ err2:
phy_driver_unregister(&lxt970_driver);
err1:
return ret;
@@ -169,6 +217,7 @@ static void __exit lxt_exit(void)
{
phy_driver_unregister(&lxt970_driver);
phy_driver_unregister(&lxt971_driver);
+ phy_driver_unregister(&lxt973_driver);
}
module_init(lxt_init);
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 217e709bda3..96b6cfbf0a3 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -559,6 +559,11 @@ static void mdio_write(void __iomem *ioaddr, int reg_addr, int value)
break;
udelay(25);
}
+ /*
+ * According to hardware specs a 20us delay is required after write
+ * complete indication, but before sending next command.
+ */
+ udelay(20);
}
static int mdio_read(void __iomem *ioaddr, int reg_addr)
@@ -578,6 +583,12 @@ static int mdio_read(void __iomem *ioaddr, int reg_addr)
}
udelay(25);
}
+ /*
+ * According to hardware specs a 20us delay is required after read
+ * complete indication, but before sending next command.
+ */
+ udelay(20);
+
return value;
}
diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c
index 1f802e90474..9516f382a6b 100644
--- a/drivers/net/usb/asix.c
+++ b/drivers/net/usb/asix.c
@@ -344,7 +344,7 @@ static int asix_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
return 2;
}
- if (size > ETH_FRAME_LEN) {
+ if (size > dev->net->mtu + ETH_HLEN) {
netdev_err(dev->net, "asix_rx_fixup() Bad RX Length %d\n",
size);
return 0;
diff --git a/drivers/net/wimax/i2400m/fw.c b/drivers/net/wimax/i2400m/fw.c
index 3f283bff0ff..11491354e5b 100644
--- a/drivers/net/wimax/i2400m/fw.c
+++ b/drivers/net/wimax/i2400m/fw.c
@@ -1192,7 +1192,7 @@ int i2400m_fw_hdr_check(struct i2400m *i2400m,
unsigned module_type, header_len, major_version, minor_version,
module_id, module_vendor, date, size;
- module_type = bcf_hdr->module_type;
+ module_type = le32_to_cpu(bcf_hdr->module_type);
header_len = sizeof(u32) * le32_to_cpu(bcf_hdr->header_len);
major_version = (le32_to_cpu(bcf_hdr->header_version) & 0xffff0000)
>> 16;
diff --git a/drivers/net/wireless/ath/ath5k/base.c b/drivers/net/wireless/ath/ath5k/base.c
index 2978359c436..648972df369 100644
--- a/drivers/net/wireless/ath/ath5k/base.c
+++ b/drivers/net/wireless/ath/ath5k/base.c
@@ -195,7 +195,7 @@ static const struct ieee80211_rate ath5k_rates[] = {
static int __devinit ath5k_pci_probe(struct pci_dev *pdev,
const struct pci_device_id *id);
static void __devexit ath5k_pci_remove(struct pci_dev *pdev);
-#ifdef CONFIG_PM
+#ifdef CONFIG_PM_SLEEP
static int ath5k_pci_suspend(struct device *dev);
static int ath5k_pci_resume(struct device *dev);
@@ -203,7 +203,7 @@ static SIMPLE_DEV_PM_OPS(ath5k_pm_ops, ath5k_pci_suspend, ath5k_pci_resume);
#define ATH5K_PM_OPS (&ath5k_pm_ops)
#else
#define ATH5K_PM_OPS NULL
-#endif /* CONFIG_PM */
+#endif /* CONFIG_PM_SLEEP */
static struct pci_driver ath5k_pci_driver = {
.name = KBUILD_MODNAME,
@@ -708,7 +708,7 @@ ath5k_pci_remove(struct pci_dev *pdev)
ieee80211_free_hw(hw);
}
-#ifdef CONFIG_PM
+#ifdef CONFIG_PM_SLEEP
static int ath5k_pci_suspend(struct device *dev)
{
struct ieee80211_hw *hw = pci_get_drvdata(to_pci_dev(dev));
@@ -734,7 +734,7 @@ static int ath5k_pci_resume(struct device *dev)
ath5k_led_enable(sc);
return 0;
}
-#endif /* CONFIG_PM */
+#endif /* CONFIG_PM_SLEEP */
/***********************\
@@ -3140,13 +3140,15 @@ static void ath5k_configure_filter(struct ieee80211_hw *hw,
if (changed_flags & (FIF_PROMISC_IN_BSS | FIF_OTHER_BSS)) {
if (*new_flags & FIF_PROMISC_IN_BSS) {
- rfilt |= AR5K_RX_FILTER_PROM;
__set_bit(ATH_STAT_PROMISC, sc->status);
} else {
__clear_bit(ATH_STAT_PROMISC, sc->status);
}
}
+ if (test_bit(ATH_STAT_PROMISC, sc->status))
+ rfilt |= AR5K_RX_FILTER_PROM;
+
/* Note, AR5K_RX_FILTER_MCAST is already enabled */
if (*new_flags & FIF_ALLMULTI) {
mfilt[0] = ~0;
diff --git a/drivers/net/wireless/ath/ath5k/phy.c b/drivers/net/wireless/ath/ath5k/phy.c
index 1b81c477880..492cbb15720 100644
--- a/drivers/net/wireless/ath/ath5k/phy.c
+++ b/drivers/net/wireless/ath/ath5k/phy.c
@@ -1814,6 +1814,13 @@ ath5k_hw_set_antenna_mode(struct ath5k_hw *ah, u8 ant_mode)
u8 def_ant, tx_ant, ee_mode;
u32 sta_id1 = 0;
+ /* if channel is not initialized yet we can't set the antennas
+ * so just store the mode. it will be set on the next reset */
+ if (channel == NULL) {
+ ah->ah_ant_mode = ant_mode;
+ return;
+ }
+
def_ant = ah->ah_def_ant;
ATH5K_TRACE(ah->ah_sc);
diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c
index d7073281942..ae7bfdf458c 100644
--- a/drivers/net/wireless/hostap/hostap_hw.c
+++ b/drivers/net/wireless/hostap/hostap_hw.c
@@ -68,7 +68,7 @@ static char essid[33] = "test";
module_param_string(essid, essid, sizeof(essid), 0444);
MODULE_PARM_DESC(essid, "Host AP's ESSID");
-static int iw_mode[MAX_PARM_DEVICES] = { IW_MODE_MASTER, DEF_INTS };
+static int iw_mode[MAX_PARM_DEVICES] = { IW_MODE_INFRA, DEF_INTS };
module_param_array(iw_mode, int, NULL, 0444);
MODULE_PARM_DESC(iw_mode, "Initial operation mode");
@@ -2618,15 +2618,6 @@ static irqreturn_t prism2_interrupt(int irq, void *dev_id)
int events = 0;
u16 ev;
- /* Detect early interrupt before driver is fully configued */
- if (!dev->base_addr) {
- if (net_ratelimit()) {
- printk(KERN_DEBUG "%s: Interrupt, but dev not configured\n",
- dev->name);
- }
- return IRQ_HANDLED;
- }
-
iface = netdev_priv(dev);
local = iface->local;
diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c
index 3aa3bb18f61..08055692d26 100644
--- a/drivers/net/wireless/ipw2x00/ipw2200.c
+++ b/drivers/net/wireless/ipw2x00/ipw2200.c
@@ -96,7 +96,7 @@ static int network_mode = 0;
static u32 ipw_debug_level;
static int associate;
static int auto_create = 1;
-static int led_support = 0;
+static int led_support = 1;
static int disable = 0;
static int bt_coexist = 0;
static int hwcrypto = 0;
@@ -12083,7 +12083,7 @@ module_param(auto_create, int, 0444);
MODULE_PARM_DESC(auto_create, "auto create adhoc network (default on)");
module_param_named(led, led_support, int, 0444);
-MODULE_PARM_DESC(led, "enable led control on some systems (default 0 off)");
+MODULE_PARM_DESC(led, "enable led control on some systems (default 1 on)");
module_param(debug, int, 0444);
MODULE_PARM_DESC(debug, "debug output mask");
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945.c b/drivers/net/wireless/iwlwifi/iwl-3945.c
index 068f7f8435c..c44a303e62e 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945.c
+++ b/drivers/net/wireless/iwlwifi/iwl-3945.c
@@ -2852,6 +2852,7 @@ static struct iwl_lib_ops iwl3945_lib = {
.isr = iwl_isr_legacy,
.config_ap = iwl3945_config_ap,
.manage_ibss_station = iwl3945_manage_ibss_station,
+ .recover_from_tx_stall = iwl_bg_monitor_recover,
.check_plcp_health = iwl3945_good_plcp_health,
.debugfs_ops = {
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
index 1004cfc403b..0f292a210ed 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
@@ -1119,10 +1119,9 @@ static int iwl_get_single_channel_for_scan(struct iwl_priv *priv,
struct iwl_scan_channel *scan_ch)
{
const struct ieee80211_supported_band *sband;
- const struct iwl_channel_info *ch_info;
u16 passive_dwell = 0;
u16 active_dwell = 0;
- int i, added = 0;
+ int added = 0;
u16 channel = 0;
sband = iwl_get_hw_mode(priv, band);
@@ -1137,32 +1136,7 @@ static int iwl_get_single_channel_for_scan(struct iwl_priv *priv,
if (passive_dwell <= active_dwell)
passive_dwell = active_dwell + 1;
- /* only scan single channel, good enough to reset the RF */
- /* pick the first valid not in-use channel */
- if (band == IEEE80211_BAND_5GHZ) {
- for (i = 14; i < priv->channel_count; i++) {
- if (priv->channel_info[i].channel !=
- le16_to_cpu(priv->staging_rxon.channel)) {
- channel = priv->channel_info[i].channel;
- ch_info = iwl_get_channel_info(priv,
- band, channel);
- if (is_channel_valid(ch_info))
- break;
- }
- }
- } else {
- for (i = 0; i < 14; i++) {
- if (priv->channel_info[i].channel !=
- le16_to_cpu(priv->staging_rxon.channel)) {
- channel =
- priv->channel_info[i].channel;
- ch_info = iwl_get_channel_info(priv,
- band, channel);
- if (is_channel_valid(ch_info))
- break;
- }
- }
- }
+ channel = iwl_get_single_channel_number(priv, band);
if (channel) {
scan_ch->channel = cpu_to_le16(channel);
scan_ch->type = SCAN_CHANNEL_TYPE_PASSIVE;
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
index c402bfc83f3..a732f1094e5 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-tx.c
@@ -1125,6 +1125,7 @@ static void iwlagn_tx_status(struct iwl_priv *priv, struct sk_buff *skb)
struct ieee80211_sta *sta;
struct iwl_station_priv *sta_priv;
+ rcu_read_lock();
sta = ieee80211_find_sta(priv->vif, hdr->addr1);
if (sta) {
sta_priv = (void *)sta->drv_priv;
@@ -1133,6 +1134,7 @@ static void iwlagn_tx_status(struct iwl_priv *priv, struct sk_buff *skb)
atomic_dec_return(&sta_priv->pending_frames) == 0)
ieee80211_sta_block_awake(priv->hw, sta, false);
}
+ rcu_read_unlock();
ieee80211_tx_status_irqsafe(priv->hw, skb);
}
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
index aef4f71f198..7726e67044c 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
@@ -1484,6 +1484,156 @@ bool iwl_good_ack_health(struct iwl_priv *priv,
}
+/*****************************************************************************
+ *
+ * sysfs attributes
+ *
+ *****************************************************************************/
+
+#ifdef CONFIG_IWLWIFI_DEBUG
+
+/*
+ * The following adds a new attribute to the sysfs representation
+ * of this device driver (i.e. a new file in /sys/class/net/wlan0/device/)
+ * used for controlling the debug level.
+ *
+ * See the level definitions in iwl for details.
+ *
+ * The debug_level being managed using sysfs below is a per device debug
+ * level that is used instead of the global debug level if it (the per
+ * device debug level) is set.
+ */
+static ssize_t show_debug_level(struct device *d,
+ struct device_attribute *attr, char *buf)
+{
+ struct iwl_priv *priv = dev_get_drvdata(d);
+ return sprintf(buf, "0x%08X\n", iwl_get_debug_level(priv));
+}
+static ssize_t store_debug_level(struct device *d,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ struct iwl_priv *priv = dev_get_drvdata(d);
+ unsigned long val;
+ int ret;
+
+ ret = strict_strtoul(buf, 0, &val);
+ if (ret)
+ IWL_ERR(priv, "%s is not in hex or decimal form.\n", buf);
+ else {
+ priv->debug_level = val;
+ if (iwl_alloc_traffic_mem(priv))
+ IWL_ERR(priv,
+ "Not enough memory to generate traffic log\n");
+ }
+ return strnlen(buf, count);
+}
+
+static DEVICE_ATTR(debug_level, S_IWUSR | S_IRUGO,
+ show_debug_level, store_debug_level);
+
+
+#endif /* CONFIG_IWLWIFI_DEBUG */
+
+
+static ssize_t show_temperature(struct device *d,
+ struct device_attribute *attr, char *buf)
+{
+ struct iwl_priv *priv = dev_get_drvdata(d);
+
+ if (!iwl_is_alive(priv))
+ return -EAGAIN;
+
+ return sprintf(buf, "%d\n", priv->temperature);
+}
+
+static DEVICE_ATTR(temperature, S_IRUGO, show_temperature, NULL);
+
+static ssize_t show_tx_power(struct device *d,
+ struct device_attribute *attr, char *buf)
+{
+ struct iwl_priv *priv = dev_get_drvdata(d);
+
+ if (!iwl_is_ready_rf(priv))
+ return sprintf(buf, "off\n");
+ else
+ return sprintf(buf, "%d\n", priv->tx_power_user_lmt);
+}
+
+static ssize_t store_tx_power(struct device *d,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ struct iwl_priv *priv = dev_get_drvdata(d);
+ unsigned long val;
+ int ret;
+
+ ret = strict_strtoul(buf, 10, &val);
+ if (ret)
+ IWL_INFO(priv, "%s is not in decimal form.\n", buf);
+ else {
+ ret = iwl_set_tx_power(priv, val, false);
+ if (ret)
+ IWL_ERR(priv, "failed setting tx power (0x%d).\n",
+ ret);
+ else
+ ret = count;
+ }
+ return ret;
+}
+
+static DEVICE_ATTR(tx_power, S_IWUSR | S_IRUGO, show_tx_power, store_tx_power);
+
+static ssize_t show_rts_ht_protection(struct device *d,
+ struct device_attribute *attr, char *buf)
+{
+ struct iwl_priv *priv = dev_get_drvdata(d);
+
+ return sprintf(buf, "%s\n",
+ priv->cfg->use_rts_for_ht ? "RTS/CTS" : "CTS-to-self");
+}
+
+static ssize_t store_rts_ht_protection(struct device *d,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ struct iwl_priv *priv = dev_get_drvdata(d);
+ unsigned long val;
+ int ret;
+
+ ret = strict_strtoul(buf, 10, &val);
+ if (ret)
+ IWL_INFO(priv, "Input is not in decimal form.\n");
+ else {
+ if (!iwl_is_associated(priv))
+ priv->cfg->use_rts_for_ht = val ? true : false;
+ else
+ IWL_ERR(priv, "Sta associated with AP - "
+ "Change protection mechanism is not allowed\n");
+ ret = count;
+ }
+ return ret;
+}
+
+static DEVICE_ATTR(rts_ht_protection, S_IWUSR | S_IRUGO,
+ show_rts_ht_protection, store_rts_ht_protection);
+
+
+static struct attribute *iwl_sysfs_entries[] = {
+ &dev_attr_temperature.attr,
+ &dev_attr_tx_power.attr,
+ &dev_attr_rts_ht_protection.attr,
+#ifdef CONFIG_IWLWIFI_DEBUG
+ &dev_attr_debug_level.attr,
+#endif
+ NULL
+};
+
+static struct attribute_group iwl_attribute_group = {
+ .name = NULL, /* put in device directory */
+ .attrs = iwl_sysfs_entries,
+};
+
/******************************************************************************
*
* uCode download functions
@@ -1965,6 +2115,13 @@ static void iwl_ucode_callback(const struct firmware *ucode_raw, void *context)
if (err)
IWL_ERR(priv, "failed to create debugfs files. Ignoring error: %d\n", err);
+ err = sysfs_create_group(&priv->pci_dev->dev.kobj,
+ &iwl_attribute_group);
+ if (err) {
+ IWL_ERR(priv, "failed to create sysfs device attributes\n");
+ goto out_unbind;
+ }
+
/* We have our copies now, allow OS release its copies */
release_firmware(ucode_raw);
complete(&priv->_agn.firmware_loading_complete);
@@ -3264,141 +3421,6 @@ static int iwlagn_mac_sta_add(struct ieee80211_hw *hw,
/*****************************************************************************
*
- * sysfs attributes
- *
- *****************************************************************************/
-
-#ifdef CONFIG_IWLWIFI_DEBUG
-
-/*
- * The following adds a new attribute to the sysfs representation
- * of this device driver (i.e. a new file in /sys/class/net/wlan0/device/)
- * used for controlling the debug level.
- *
- * See the level definitions in iwl for details.
- *
- * The debug_level being managed using sysfs below is a per device debug
- * level that is used instead of the global debug level if it (the per
- * device debug level) is set.
- */
-static ssize_t show_debug_level(struct device *d,
- struct device_attribute *attr, char *buf)
-{
- struct iwl_priv *priv = dev_get_drvdata(d);
- return sprintf(buf, "0x%08X\n", iwl_get_debug_level(priv));
-}
-static ssize_t store_debug_level(struct device *d,
- struct device_attribute *attr,
- const char *buf, size_t count)
-{
- struct iwl_priv *priv = dev_get_drvdata(d);
- unsigned long val;
- int ret;
-
- ret = strict_strtoul(buf, 0, &val);
- if (ret)
- IWL_ERR(priv, "%s is not in hex or decimal form.\n", buf);
- else {
- priv->debug_level = val;
- if (iwl_alloc_traffic_mem(priv))
- IWL_ERR(priv,
- "Not enough memory to generate traffic log\n");
- }
- return strnlen(buf, count);
-}
-
-static DEVICE_ATTR(debug_level, S_IWUSR | S_IRUGO,
- show_debug_level, store_debug_level);
-
-
-#endif /* CONFIG_IWLWIFI_DEBUG */
-
-
-static ssize_t show_temperature(struct device *d,
- struct device_attribute *attr, char *buf)
-{
- struct iwl_priv *priv = dev_get_drvdata(d);
-
- if (!iwl_is_alive(priv))
- return -EAGAIN;
-
- return sprintf(buf, "%d\n", priv->temperature);
-}
-
-static DEVICE_ATTR(temperature, S_IRUGO, show_temperature, NULL);
-
-static ssize_t show_tx_power(struct device *d,
- struct device_attribute *attr, char *buf)
-{
- struct iwl_priv *priv = dev_get_drvdata(d);
-
- if (!iwl_is_ready_rf(priv))
- return sprintf(buf, "off\n");
- else
- return sprintf(buf, "%d\n", priv->tx_power_user_lmt);
-}
-
-static ssize_t store_tx_power(struct device *d,
- struct device_attribute *attr,
- const char *buf, size_t count)
-{
- struct iwl_priv *priv = dev_get_drvdata(d);
- unsigned long val;
- int ret;
-
- ret = strict_strtoul(buf, 10, &val);
- if (ret)
- IWL_INFO(priv, "%s is not in decimal form.\n", buf);
- else {
- ret = iwl_set_tx_power(priv, val, false);
- if (ret)
- IWL_ERR(priv, "failed setting tx power (0x%d).\n",
- ret);
- else
- ret = count;
- }
- return ret;
-}
-
-static DEVICE_ATTR(tx_power, S_IWUSR | S_IRUGO, show_tx_power, store_tx_power);
-
-static ssize_t show_rts_ht_protection(struct device *d,
- struct device_attribute *attr, char *buf)
-{
- struct iwl_priv *priv = dev_get_drvdata(d);
-
- return sprintf(buf, "%s\n",
- priv->cfg->use_rts_for_ht ? "RTS/CTS" : "CTS-to-self");
-}
-
-static ssize_t store_rts_ht_protection(struct device *d,
- struct device_attribute *attr,
- const char *buf, size_t count)
-{
- struct iwl_priv *priv = dev_get_drvdata(d);
- unsigned long val;
- int ret;
-
- ret = strict_strtoul(buf, 10, &val);
- if (ret)
- IWL_INFO(priv, "Input is not in decimal form.\n");
- else {
- if (!iwl_is_associated(priv))
- priv->cfg->use_rts_for_ht = val ? true : false;
- else
- IWL_ERR(priv, "Sta associated with AP - "
- "Change protection mechanism is not allowed\n");
- ret = count;
- }
- return ret;
-}
-
-static DEVICE_ATTR(rts_ht_protection, S_IWUSR | S_IRUGO,
- show_rts_ht_protection, store_rts_ht_protection);
-
-
-/*****************************************************************************
- *
* driver setup and teardown
*
*****************************************************************************/
@@ -3550,21 +3572,6 @@ static void iwl_uninit_drv(struct iwl_priv *priv)
kfree(priv->scan_cmd);
}
-static struct attribute *iwl_sysfs_entries[] = {
- &dev_attr_temperature.attr,
- &dev_attr_tx_power.attr,
- &dev_attr_rts_ht_protection.attr,
-#ifdef CONFIG_IWLWIFI_DEBUG
- &dev_attr_debug_level.attr,
-#endif
- NULL
-};
-
-static struct attribute_group iwl_attribute_group = {
- .name = NULL, /* put in device directory */
- .attrs = iwl_sysfs_entries,
-};
-
static struct ieee80211_ops iwl_hw_ops = {
.tx = iwl_mac_tx,
.start = iwl_mac_start,
@@ -3750,11 +3757,6 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
IWL_ERR(priv, "Error allocating IRQ %d\n", priv->pci_dev->irq);
goto out_disable_msi;
}
- err = sysfs_create_group(&pdev->dev.kobj, &iwl_attribute_group);
- if (err) {
- IWL_ERR(priv, "failed to create sysfs device attributes\n");
- goto out_free_irq;
- }
iwl_setup_deferred_work(priv);
iwl_setup_rx_handlers(priv);
@@ -3788,15 +3790,13 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
err = iwl_request_firmware(priv, true);
if (err)
- goto out_remove_sysfs;
+ goto out_destroy_workqueue;
return 0;
- out_remove_sysfs:
+ out_destroy_workqueue:
destroy_workqueue(priv->workqueue);
priv->workqueue = NULL;
- sysfs_remove_group(&pdev->dev.kobj, &iwl_attribute_group);
- out_free_irq:
free_irq(priv->pci_dev->irq, priv);
iwl_free_isr_ict(priv);
out_disable_msi:
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index 5a7eca8fb78..426e95567de 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -854,6 +854,45 @@ void iwl_set_rxon_chain(struct iwl_priv *priv)
}
EXPORT_SYMBOL(iwl_set_rxon_chain);
+/* Return valid channel */
+u8 iwl_get_single_channel_number(struct iwl_priv *priv,
+ enum ieee80211_band band)
+{
+ const struct iwl_channel_info *ch_info;
+ int i;
+ u8 channel = 0;
+
+ /* only scan single channel, good enough to reset the RF */
+ /* pick the first valid not in-use channel */
+ if (band == IEEE80211_BAND_5GHZ) {
+ for (i = 14; i < priv->channel_count; i++) {
+ if (priv->channel_info[i].channel !=
+ le16_to_cpu(priv->staging_rxon.channel)) {
+ channel = priv->channel_info[i].channel;
+ ch_info = iwl_get_channel_info(priv,
+ band, channel);
+ if (is_channel_valid(ch_info))
+ break;
+ }
+ }
+ } else {
+ for (i = 0; i < 14; i++) {
+ if (priv->channel_info[i].channel !=
+ le16_to_cpu(priv->staging_rxon.channel)) {
+ channel =
+ priv->channel_info[i].channel;
+ ch_info = iwl_get_channel_info(priv,
+ band, channel);
+ if (is_channel_valid(ch_info))
+ break;
+ }
+ }
+ }
+
+ return channel;
+}
+EXPORT_SYMBOL(iwl_get_single_channel_number);
+
/**
* iwl_set_rxon_channel - Set the phymode and channel values in staging RXON
* @phymode: MODE_IEEE80211A sets to 5.2GHz; all else set to 2.4GHz
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index 7e5a5ba41fd..31775bd9c36 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -343,6 +343,8 @@ int iwl_check_rxon_cmd(struct iwl_priv *priv);
int iwl_full_rxon_required(struct iwl_priv *priv);
void iwl_set_rxon_chain(struct iwl_priv *priv);
int iwl_set_rxon_channel(struct iwl_priv *priv, struct ieee80211_channel *ch);
+u8 iwl_get_single_channel_number(struct iwl_priv *priv,
+ enum ieee80211_band band);
void iwl_set_rxon_ht(struct iwl_priv *priv, struct iwl_ht_config *ht_conf);
u8 iwl_is_ht40_tx_allowed(struct iwl_priv *priv,
struct ieee80211_sta_ht_cap *sta_ht_inf);
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
index 3e5bffb6034..6c353cacc8d 100644
--- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
@@ -1844,6 +1844,49 @@ static void iwl3945_irq_tasklet(struct iwl_priv *priv)
#endif
}
+static int iwl3945_get_single_channel_for_scan(struct iwl_priv *priv,
+ struct ieee80211_vif *vif,
+ enum ieee80211_band band,
+ struct iwl3945_scan_channel *scan_ch)
+{
+ const struct ieee80211_supported_band *sband;
+ u16 passive_dwell = 0;
+ u16 active_dwell = 0;
+ int added = 0;
+ u8 channel = 0;
+
+ sband = iwl_get_hw_mode(priv, band);
+ if (!sband) {
+ IWL_ERR(priv, "invalid band\n");
+ return added;
+ }
+
+ active_dwell = iwl_get_active_dwell_time(priv, band, 0);
+ passive_dwell = iwl_get_passive_dwell_time(priv, band, vif);
+
+ if (passive_dwell <= active_dwell)
+ passive_dwell = active_dwell + 1;
+
+
+ channel = iwl_get_single_channel_number(priv, band);
+
+ if (channel) {
+ scan_ch->channel = channel;
+ scan_ch->type = 0; /* passive */
+ scan_ch->active_dwell = cpu_to_le16(active_dwell);
+ scan_ch->passive_dwell = cpu_to_le16(passive_dwell);
+ /* Set txpower levels to defaults */
+ scan_ch->tpc.dsp_atten = 110;
+ if (band == IEEE80211_BAND_5GHZ)
+ scan_ch->tpc.tx_gain = ((1 << 5) | (3 << 3)) | 3;
+ else
+ scan_ch->tpc.tx_gain = ((1 << 5) | (5 << 3));
+ added++;
+ } else
+ IWL_ERR(priv, "no valid channel found\n");
+ return added;
+}
+
static int iwl3945_get_channels_for_scan(struct iwl_priv *priv,
enum ieee80211_band band,
u8 is_active, u8 n_probes,
@@ -2992,9 +3035,16 @@ void iwl3945_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif)
/* select Rx antennas */
scan->flags |= iwl3945_get_antenna_flags(priv);
- scan->channel_count =
- iwl3945_get_channels_for_scan(priv, band, is_active, n_probes,
- (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)], vif);
+ if (priv->is_internal_short_scan) {
+ scan->channel_count =
+ iwl3945_get_single_channel_for_scan(priv, vif, band,
+ (void *)&scan->data[le16_to_cpu(
+ scan->tx_cmd.len)]);
+ } else {
+ scan->channel_count =
+ iwl3945_get_channels_for_scan(priv, band, is_active, n_probes,
+ (void *)&scan->data[le16_to_cpu(scan->tx_cmd.len)], vif);
+ }
if (scan->channel_count == 0) {
IWL_DEBUG_SCAN(priv, "channel count %d\n", scan->channel_count);
diff --git a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c
index d5b197b4d5b..1b87ae93343 100644
--- a/drivers/net/wireless/p54/p54usb.c
+++ b/drivers/net/wireless/p54/p54usb.c
@@ -69,7 +69,7 @@ static struct usb_device_id p54u_table[] __devinitdata = {
{USB_DEVICE(0x0915, 0x2002)}, /* Cohiba Proto board */
{USB_DEVICE(0x0baf, 0x0118)}, /* U.S. Robotics U5 802.11g Adapter*/
{USB_DEVICE(0x0bf8, 0x1009)}, /* FUJITSU E-5400 USB D1700*/
- {USB_DEVICE(0x0cde, 0x0006)}, /* Medion MD40900 */
+// DUPE {USB_DEVICE(0x0cde, 0x0006)}, /* Medion MD40900 */
{USB_DEVICE(0x0cde, 0x0008)}, /* Sagem XG703A */
{USB_DEVICE(0x0cde, 0x0015)}, /* Zcomax XG-705A */
{USB_DEVICE(0x0d8e, 0x3762)}, /* DLink DWL-G120 Cohiba */
@@ -80,6 +80,7 @@ static struct usb_device_id p54u_table[] __devinitdata = {
{USB_DEVICE(0x1413, 0x5400)}, /* Telsey 802.11g USB2.0 Adapter */
{USB_DEVICE(0x1435, 0x0427)}, /* Inventel UR054G */
{USB_DEVICE(0x2001, 0x3704)}, /* DLink DWL-G122 rev A2 */
+ {USB_DEVICE(0x413c, 0x5513)}, /* Dell WLA3310 USB Wireless Adapter */
{USB_DEVICE(0x413c, 0x8102)}, /* Spinnaker DUT */
{USB_DEVICE(0x413c, 0x8104)}, /* Cohiba Proto board */
{}
diff --git a/drivers/net/wireless/wl12xx/wl1251_sdio.c b/drivers/net/wireless/wl12xx/wl1251_sdio.c
index d234285c2c8..c561332e700 100644
--- a/drivers/net/wireless/wl12xx/wl1251_sdio.c
+++ b/drivers/net/wireless/wl12xx/wl1251_sdio.c
@@ -259,6 +259,7 @@ disable:
sdio_disable_func(func);
release:
sdio_release_host(func);
+ wl1251_free_hw(wl);
return ret;
}
diff --git a/drivers/pci/hotplug/cpqphp_core.c b/drivers/pci/hotplug/cpqphp_core.c
index b3e5580c837..4952c3b9379 100644
--- a/drivers/pci/hotplug/cpqphp_core.c
+++ b/drivers/pci/hotplug/cpqphp_core.c
@@ -828,7 +828,14 @@ static int cpqhpc_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
pci_name(pdev), err);
return err;
}
+
bus = pdev->subordinate;
+ if (!bus) {
+ dev_notice(&pdev->dev, "the device is not a bridge, "
+ "skipping\n");
+ rc = -ENODEV;
+ goto err_disable_device;
+ }
/* Need to read VID early b/c it's used to differentiate CPQ and INTC
* discovery
diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
index afd2fbf7d79..c9957f68ac9 100644
--- a/drivers/pci/pci-sysfs.c
+++ b/drivers/pci/pci-sysfs.c
@@ -1035,39 +1035,6 @@ error:
return retval;
}
-static void pci_remove_slot_links(struct pci_dev *dev)
-{
- char func[10];
- struct pci_slot *slot;
-
- sysfs_remove_link(&dev->dev.kobj, "slot");
- list_for_each_entry(slot, &dev->bus->slots, list) {
- if (slot->number != PCI_SLOT(dev->devfn))
- continue;
- snprintf(func, 10, "function%d", PCI_FUNC(dev->devfn));
- sysfs_remove_link(&slot->kobj, func);
- }
-}
-
-static int pci_create_slot_links(struct pci_dev *dev)
-{
- int result = 0;
- char func[10];
- struct pci_slot *slot;
-
- list_for_each_entry(slot, &dev->bus->slots, list) {
- if (slot->number != PCI_SLOT(dev->devfn))
- continue;
- result = sysfs_create_link(&dev->dev.kobj, &slot->kobj, "slot");
- if (result)
- goto out;
- snprintf(func, 10, "function%d", PCI_FUNC(dev->devfn));
- result = sysfs_create_link(&slot->kobj, &dev->dev.kobj, func);
- }
-out:
- return result;
-}
-
int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
{
int retval;
@@ -1130,8 +1097,6 @@ int __must_check pci_create_sysfs_dev_files (struct pci_dev *pdev)
if (retval)
goto err_vga_file;
- pci_create_slot_links(pdev);
-
return 0;
err_vga_file:
@@ -1181,8 +1146,6 @@ void pci_remove_sysfs_dev_files(struct pci_dev *pdev)
if (!sysfs_initialized)
return;
- pci_remove_slot_links(pdev);
-
pci_remove_capabilities_sysfs(pdev);
if (pdev->cfg_size < PCI_CFG_SPACE_EXP_SIZE)
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index b7512cf08c5..477345d4164 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -1457,7 +1457,8 @@ static void quirk_jmicron_ata(struct pci_dev *pdev)
conf5 &= ~(1 << 24); /* Clear bit 24 */
switch (pdev->device) {
- case PCI_DEVICE_ID_JMICRON_JMB360:
+ case PCI_DEVICE_ID_JMICRON_JMB360: /* SATA single port */
+ case PCI_DEVICE_ID_JMICRON_JMB362: /* SATA dual ports */
/* The controller should be in single function ahci mode */
conf1 |= 0x0002A100; /* Set 8, 13, 15, 17 */
break;
@@ -1493,12 +1494,14 @@ static void quirk_jmicron_ata(struct pci_dev *pdev)
}
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB360, quirk_jmicron_ata);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB361, quirk_jmicron_ata);
+DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB362, quirk_jmicron_ata);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB363, quirk_jmicron_ata);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB365, quirk_jmicron_ata);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB366, quirk_jmicron_ata);
DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB368, quirk_jmicron_ata);
DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB360, quirk_jmicron_ata);
DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB361, quirk_jmicron_ata);
+DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB362, quirk_jmicron_ata);
DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB363, quirk_jmicron_ata);
DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB365, quirk_jmicron_ata);
DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB366, quirk_jmicron_ata);
diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c
index 17bed18d24a..92379e2d37e 100644
--- a/drivers/pci/setup-res.c
+++ b/drivers/pci/setup-res.c
@@ -97,16 +97,16 @@ int pci_claim_resource(struct pci_dev *dev, int resource)
root = pci_find_parent_resource(dev, res);
if (!root) {
- dev_err(&dev->dev, "no compatible bridge window for %pR\n",
- res);
+ dev_info(&dev->dev, "no compatible bridge window for %pR\n",
+ res);
return -EINVAL;
}
conflict = request_resource_conflict(root, res);
if (conflict) {
- dev_err(&dev->dev,
- "address space collision: %pR conflicts with %s %pR\n",
- res, conflict->name, conflict);
+ dev_info(&dev->dev,
+ "address space collision: %pR conflicts with %s %pR\n",
+ res, conflict->name, conflict);
return -EBUSY;
}
diff --git a/drivers/pci/slot.c b/drivers/pci/slot.c
index e0189cf7c55..659eaa0fc48 100644
--- a/drivers/pci/slot.c
+++ b/drivers/pci/slot.c
@@ -97,50 +97,6 @@ static ssize_t cur_speed_read_file(struct pci_slot *slot, char *buf)
return bus_speed_read(slot->bus->cur_bus_speed, buf);
}
-static void remove_sysfs_files(struct pci_slot *slot)
-{
- char func[10];
- struct list_head *tmp;
-
- list_for_each(tmp, &slot->bus->devices) {
- struct pci_dev *dev = pci_dev_b(tmp);
- if (PCI_SLOT(dev->devfn) != slot->number)
- continue;
- sysfs_remove_link(&dev->dev.kobj, "slot");
-
- snprintf(func, 10, "function%d", PCI_FUNC(dev->devfn));
- sysfs_remove_link(&slot->kobj, func);
- }
-}
-
-static int create_sysfs_files(struct pci_slot *slot)
-{
- int result;
- char func[10];
- struct list_head *tmp;
-
- list_for_each(tmp, &slot->bus->devices) {
- struct pci_dev *dev = pci_dev_b(tmp);
- if (PCI_SLOT(dev->devfn) != slot->number)
- continue;
-
- result = sysfs_create_link(&dev->dev.kobj, &slot->kobj, "slot");
- if (result)
- goto fail;
-
- snprintf(func, 10, "function%d", PCI_FUNC(dev->devfn));
- result = sysfs_create_link(&slot->kobj, &dev->dev.kobj, func);
- if (result)
- goto fail;
- }
-
- return 0;
-
-fail:
- remove_sysfs_files(slot);
- return result;
-}
-
static void pci_slot_release(struct kobject *kobj)
{
struct pci_dev *dev;
@@ -153,8 +109,6 @@ static void pci_slot_release(struct kobject *kobj)
if (PCI_SLOT(dev->devfn) == slot->number)
dev->slot = NULL;
- remove_sysfs_files(slot);
-
list_del(&slot->list);
kfree(slot);
@@ -346,8 +300,6 @@ placeholder:
INIT_LIST_HEAD(&slot->list);
list_add(&slot->list, &parent->slots);
- create_sysfs_files(slot);
-
list_for_each_entry(dev, &parent->devices, bus_list)
if (PCI_SLOT(dev->devfn) == slot_nr)
dev->slot = slot;
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index 7ef7adee5e4..9fc33984553 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -671,6 +671,7 @@ static void pcmcia_requery(struct pcmcia_socket *s)
if (old_funcs != new_funcs) {
/* we need to re-start */
pcmcia_card_remove(s, NULL);
+ s->functions = 0;
pcmcia_card_add(s);
}
}
diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c
index 424e576f3ac..f1d41374eea 100644
--- a/drivers/pcmcia/yenta_socket.c
+++ b/drivers/pcmcia/yenta_socket.c
@@ -880,6 +880,12 @@ static struct cardbus_type cardbus_type[] = {
.restore_state = ti_restore_state,
.sock_init = ti_init,
},
+ [CARDBUS_TYPE_ENE] = {
+ .override = ene_override,
+ .save_state = ti_save_state,
+ .restore_state = ti_restore_state,
+ .sock_init = ti_init,
+ },
#endif
#ifdef CONFIG_YENTA_RICOH
[CARDBUS_TYPE_RICOH] = {
@@ -902,14 +908,6 @@ static struct cardbus_type cardbus_type[] = {
.restore_state = o2micro_restore_state,
},
#endif
-#ifdef CONFIG_YENTA_TI
- [CARDBUS_TYPE_ENE] = {
- .override = ene_override,
- .save_state = ti_save_state,
- .restore_state = ti_restore_state,
- .sock_init = ti_init,
- },
-#endif
};
@@ -975,7 +973,7 @@ static irqreturn_t yenta_probe_handler(int irq, void *dev_id)
/* probes the PCI interrupt, use only on override functions */
static int yenta_probe_cb_irq(struct yenta_socket *socket)
{
- u8 reg;
+ u8 reg = 0;
if (!socket->cb_irq)
return -1;
@@ -989,7 +987,8 @@ static int yenta_probe_cb_irq(struct yenta_socket *socket)
}
/* generate interrupt, wait */
- reg = exca_readb(socket, I365_CSCINT);
+ if (!socket->dev->irq)
+ reg = exca_readb(socket, I365_CSCINT);
exca_writeb(socket, I365_CSCINT, reg | I365_CSC_STSCHG);
cb_writel(socket, CB_SOCKET_EVENT, -1);
cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK);
diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
index 1387c5f9c24..fcef9c7c5ae 100644
--- a/drivers/platform/x86/sony-laptop.c
+++ b/drivers/platform/x86/sony-laptop.c
@@ -1447,6 +1447,10 @@ struct sonypi_eventtypes {
struct sonypi_event *events;
};
+struct sony_pic_quirk_entry {
+ u8 set_wwan_power;
+};
+
struct sony_pic_dev {
struct acpi_device *acpi_dev;
struct sony_pic_irq *cur_irq;
@@ -1457,6 +1461,7 @@ struct sony_pic_dev {
struct sonypi_eventtypes *event_types;
int (*handle_irq)(const u8, const u8);
int model;
+ struct sony_pic_quirk_entry *quirks;
u16 evport_offset;
u8 camera_power;
u8 bluetooth_power;
@@ -2887,6 +2892,12 @@ static int sony_pic_add(struct acpi_device *device)
if (result)
goto err_remove_pf;
+ if (spic_dev.quirks && spic_dev.quirks->set_wwan_power) {
+ /*
+ * Power isn't enabled by default.
+ */
+ __sony_pic_set_wwanpower(1);
+ }
return 0;
err_remove_pf:
@@ -2957,6 +2968,16 @@ static struct acpi_driver sony_pic_driver = {
},
};
+static struct sony_pic_quirk_entry sony_pic_vaio_vgn = {
+ .set_wwan_power = 1,
+};
+
+static int dmi_matched(const struct dmi_system_id *dmi)
+{
+ spic_dev.quirks = dmi->driver_data;
+ return 0;
+}
+
static struct dmi_system_id __initdata sonypi_dmi_table[] = {
{
.ident = "Sony Vaio",
@@ -2971,6 +2992,8 @@ static struct dmi_system_id __initdata sonypi_dmi_table[] = {
DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
DMI_MATCH(DMI_PRODUCT_NAME, "VGN-"),
},
+ .callback = dmi_matched,
+ .driver_data = &sony_pic_vaio_vgn,
},
{ }
};
diff --git a/drivers/pnp/isapnp/core.c b/drivers/pnp/isapnp/core.c
index 918d5f04486..972fde66233 100644
--- a/drivers/pnp/isapnp/core.c
+++ b/drivers/pnp/isapnp/core.c
@@ -41,6 +41,7 @@
#include <linux/init.h>
#include <linux/isapnp.h>
#include <linux/mutex.h>
+#include <linux/async.h>
#include <asm/io.h>
#include "../base.h"
@@ -1001,7 +1002,7 @@ struct pnp_protocol isapnp_protocol = {
.disable = isapnp_disable_resources,
};
-static int __init isapnp_init(void)
+static int __init real_isapnp_init(void)
{
int cards;
struct pnp_card *card;
@@ -1095,6 +1096,15 @@ static int __init isapnp_init(void)
return 0;
}
+static void __init async_isapnp_init(void *unused, async_cookie_t cookie)
+{
+ (void)real_isapnp_init();
+}
+
+static int __init isapnp_init(void)
+{
+ async_schedule(async_isapnp_init, NULL);
+}
device_initcall(isapnp_init);
/* format is: noisapnp */
diff --git a/drivers/s390/cio/itcw.c b/drivers/s390/cio/itcw.c
index 17da9ab932e..a0ae2956477 100644
--- a/drivers/s390/cio/itcw.c
+++ b/drivers/s390/cio/itcw.c
@@ -42,7 +42,7 @@
* size_t size;
*
* size = itcw_calc_size(1, 2, 0);
- * buffer = kmalloc(size, GFP_DMA);
+ * buffer = kmalloc(size, GFP_KERNEL | GFP_DMA);
* if (!buffer)
* return -ENOMEM;
* itcw = itcw_init(buffer, size, ITCW_OP_READ, 1, 2, 0);
diff --git a/drivers/staging/rt2860/usb_main_dev.c b/drivers/staging/rt2860/usb_main_dev.c
index b740662d095..11de11481bd 100644
--- a/drivers/staging/rt2860/usb_main_dev.c
+++ b/drivers/staging/rt2860/usb_main_dev.c
@@ -142,6 +142,7 @@ struct usb_device_id rtusb_usb_id[] = {
{USB_DEVICE(0x2001, 0x3C09)}, /* D-Link */
{USB_DEVICE(0x2001, 0x3C0A)}, /* D-Link 3072 */
{USB_DEVICE(0x2019, 0xED14)}, /* Planex Communications, Inc. */
+ {USB_DEVICE(0x0411, 0x015D)}, /* Buffalo Airstation WLI-UC-GN */
{} /* Terminating entry */
};
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 83e7bbbe97f..42a2b36b64e 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -24,6 +24,7 @@
#include <linux/mutex.h>
#include <linux/freezer.h>
#include <linux/pm_runtime.h>
+#include <linux/rcupdate.h>
#include <asm/uaccess.h>
#include <asm/byteorder.h>
@@ -1849,6 +1850,10 @@ fail:
*/
int usb_deauthorize_device(struct usb_device *usb_dev)
{
+ char *product = NULL;
+ char *manufacturer = NULL;
+ char *serial = NULL;
+
usb_lock_device(usb_dev);
if (usb_dev->authorized == 0)
goto out_unauthorized;
@@ -1856,11 +1861,12 @@ int usb_deauthorize_device(struct usb_device *usb_dev)
usb_dev->authorized = 0;
usb_set_configuration(usb_dev, -1);
- kfree(usb_dev->product);
+ product = usb_dev->product;
+ manufacturer = usb_dev->manufacturer;
+ serial = usb_dev->serial;
+
usb_dev->product = kstrdup("n/a (unauthorized)", GFP_KERNEL);
- kfree(usb_dev->manufacturer);
usb_dev->manufacturer = kstrdup("n/a (unauthorized)", GFP_KERNEL);
- kfree(usb_dev->serial);
usb_dev->serial = kstrdup("n/a (unauthorized)", GFP_KERNEL);
usb_destroy_configuration(usb_dev);
@@ -1868,6 +1874,12 @@ int usb_deauthorize_device(struct usb_device *usb_dev)
out_unauthorized:
usb_unlock_device(usb_dev);
+ if (product || manufacturer || serial) {
+ synchronize_rcu();
+ kfree(product);
+ kfree(manufacturer);
+ kfree(serial);
+ }
return 0;
}
@@ -1875,6 +1887,9 @@ out_unauthorized:
int usb_authorize_device(struct usb_device *usb_dev)
{
int result = 0, c;
+ char *product = NULL;
+ char *manufacturer = NULL;
+ char *serial = NULL;
usb_lock_device(usb_dev);
if (usb_dev->authorized == 1)
@@ -1893,11 +1908,12 @@ int usb_authorize_device(struct usb_device *usb_dev)
goto error_device_descriptor;
}
- kfree(usb_dev->product);
+ product = usb_dev->product;
+ manufacturer = usb_dev->manufacturer;
+ serial = usb_dev->serial;
+
usb_dev->product = NULL;
- kfree(usb_dev->manufacturer);
usb_dev->manufacturer = NULL;
- kfree(usb_dev->serial);
usb_dev->serial = NULL;
usb_dev->authorized = 1;
@@ -1925,6 +1941,12 @@ error_device_descriptor:
error_autoresume:
out_authorized:
usb_unlock_device(usb_dev); // complements locktree
+ if (product || manufacturer || serial) {
+ synchronize_rcu();
+ kfree(product);
+ kfree(manufacturer);
+ kfree(serial);
+ }
return result;
}
diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
index 448f5b47fc4..98856d8fc4d 100644
--- a/drivers/usb/core/sysfs.c
+++ b/drivers/usb/core/sysfs.c
@@ -85,9 +85,9 @@ static ssize_t show_##name(struct device *dev, \
int retval; \
\
udev = to_usb_device(dev); \
- usb_lock_device(udev); \
- retval = sprintf(buf, "%s\n", udev->name); \
- usb_unlock_device(udev); \
+ rcu_read_lock(); \
+ retval = sprintf(buf, "%s\n", rcu_dereference(udev->name)); \
+ rcu_read_unlock(); \
return retval; \
} \
static DEVICE_ATTR(name, S_IRUGO, show_##name, NULL);
diff --git a/drivers/usb/serial/ipaq.c b/drivers/usb/serial/ipaq.c
index 28913fa95fb..4735931b4c7 100644
--- a/drivers/usb/serial/ipaq.c
+++ b/drivers/usb/serial/ipaq.c
@@ -534,7 +534,6 @@ static struct usb_device_id ipaq_id_table [] = {
{ USB_DEVICE(0x413C, 0x4009) }, /* Dell Axim USB Sync */
{ USB_DEVICE(0x4505, 0x0010) }, /* Smartphone */
{ USB_DEVICE(0x5E04, 0xCE00) }, /* SAGEM Wireless Assistant */
- { USB_DEVICE(0x0BB4, 0x00CF) }, /* HTC smartphone modems */
{ } /* Terminating entry */
};
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index e280ad8e12f..905e47c7be6 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -205,6 +205,7 @@ static void option_instat_callback(struct urb *urb);
#define AMOI_VENDOR_ID 0x1614
#define AMOI_PRODUCT_H01 0x0800
#define AMOI_PRODUCT_H01A 0x7002
+#define AMOI_PRODUCT_9508 0x0800
#define AMOI_PRODUCT_H02 0x0802
#define DELL_VENDOR_ID 0x413C
@@ -263,9 +264,6 @@ static void option_instat_callback(struct urb *urb);
#define BANDRICH_PRODUCT_1011 0x1011
#define BANDRICH_PRODUCT_1012 0x1012
-#define AMOI_VENDOR_ID 0x1614
-#define AMOI_PRODUCT_9508 0x0800
-
#define QUALCOMM_VENDOR_ID 0x05C6
#define CMOTECH_VENDOR_ID 0x16d8
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index 2c897eefadd..da7fd89c29b 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -1136,6 +1136,13 @@ UNUSUAL_DEV( 0x0af0, 0x6971, 0x0000, 0x9999,
US_SC_DEVICE, US_PR_DEVICE, option_ms_init,
0),
+/* Reported by Timo Aaltonen <tjaalton@ubuntu.com> */
+UNUSUAL_DEV( 0x0af0, 0x7011, 0x0000, 0x9999,
+ "Option",
+ "Mass Storage",
+ US_SC_DEVICE, US_PR_DEVICE, option_ms_init,
+ 0 ),
+
/* Reported by F. Aben <f.aben@option.com>
* This device (wrongly) has a vendor-specific device descriptor.
* The entry is needed so usb-storage can bind to it's mass-storage
diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c
index 0f41c9195e9..df5b6b971f2 100644
--- a/drivers/vhost/net.c
+++ b/drivers/vhost/net.c
@@ -637,7 +637,7 @@ const static struct file_operations vhost_net_fops = {
};
static struct miscdevice vhost_net_misc = {
- VHOST_NET_MINOR,
+ MISC_DYNAMIC_MINOR,
"vhost-net",
&vhost_net_fops,
};
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 3d94a147172..59c51d907c6 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -709,8 +709,8 @@ config FB_UVESA
If unsure, say N.
config FB_VESA
- bool "VESA VGA graphics support"
- depends on (FB = y) && X86
+ tristate "VESA VGA graphics support"
+ depends on FB && X86
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
diff --git a/drivers/video/vesafb.c b/drivers/video/vesafb.c
index 090aa1a9be6..5a95b55f85f 100644
--- a/drivers/video/vesafb.c
+++ b/drivers/video/vesafb.c
@@ -27,6 +27,12 @@
#define dac_reg (0x3c8)
#define dac_val (0x3c9)
+struct vesafb_info
+{
+ u32 pseudo_palette[256];
+ int mtrr_hdl;
+};
+
/* --------------------------------------------------------------------- */
static struct fb_var_screeninfo vesafb_defined __initdata = {
@@ -46,16 +52,37 @@ static struct fb_fix_screeninfo vesafb_fix __initdata = {
.accel = FB_ACCEL_NONE,
};
+#ifndef MODULE
static int inverse __read_mostly;
+#endif
static int mtrr __read_mostly; /* disable mtrr */
static int vram_remap __initdata; /* Set amount of memory to be used */
static int vram_total __initdata; /* Set total amount of memory */
static int pmi_setpal __read_mostly = 1; /* pmi for palette changes ??? */
+static int redraw __read_mostly;
static int ypan __read_mostly; /* 0..nothing, 1..ypan, 2..ywrap */
+static int ywrap __read_mostly;
static void (*pmi_start)(void) __read_mostly;
static void (*pmi_pal) (void) __read_mostly;
static int depth __read_mostly;
static int vga_compat __read_mostly;
+
+module_param(redraw, bool, 0);
+module_param(ypan, bool, 0);
+module_param(ywrap, bool, 0);
+module_param_named(vgapal, pmi_setpal, invbool, 0);
+MODULE_PARM_DESC(vgapal, "Use VGA for setting palette (default)");
+module_param_named(pmipal, pmi_setpal, bool, 0);
+MODULE_PARM_DESC(pmipal, "Use PMI for setting palette");
+module_param(mtrr, bool, 0);
+MODULE_PARM_DESC(mtrr, "Enable MTRR support (default)");
+module_param_named(nomtrr, mtrr, invbool, 0);
+MODULE_PARM_DESC(nomtrr, "Disable MTRR support");
+module_param(vram_remap, int, 0);
+MODULE_PARM_DESC(vram_remap, "Set total amount of memory to be used");
+module_param(vram_total, int, 0);
+MODULE_PARM_DESC(vram_total, "Total amount of memory");
+
/* --------------------------------------------------------------------- */
static int vesafb_pan_display(struct fb_var_screeninfo *var,
@@ -191,6 +218,7 @@ static struct fb_ops vesafb_ops = {
.fb_imageblit = cfb_imageblit,
};
+#ifndef MODULE
static int __init vesafb_setup(char *options)
{
char *this_opt;
@@ -224,6 +252,7 @@ static int __init vesafb_setup(char *options)
}
return 0;
}
+#endif
static int __init vesafb_probe(struct platform_device *dev)
{
@@ -480,7 +509,27 @@ err:
return err;
}
+static int __exit vesafb_remove(struct platform_device *device)
+{
+ struct fb_info *info = dev_get_drvdata(&device->dev);
+
+ unregister_framebuffer(info);
+#ifdef CONFIG_MTRR
+ {
+ struct vesafb_info *vfb_info = (struct vesafb_info *) info->par;
+ if (vfb_info->mtrr_hdl >= 0)
+ mtrr_del(vfb_info->mtrr_hdl, 0, 0);
+ }
+#endif
+ iounmap(info->screen_base);
+ framebuffer_release(info);
+ release_mem_region(vesafb_fix.smem_start, vesafb_fix.smem_len);
+
+ return 0;
+}
+
static struct platform_driver vesafb_driver = {
+ .remove = vesafb_remove,
.driver = {
.name = "vesafb",
},
@@ -491,11 +540,18 @@ static struct platform_device *vesafb_device;
static int __init vesafb_init(void)
{
int ret;
+#ifndef MODULE
char *option = NULL;
/* ignore error return of fb_get_options */
fb_get_options("vesafb", &option);
vesafb_setup(option);
+#else
+ if (redraw)
+ ypan = 0;
+ if (ywrap)
+ ypan = 2;
+#endif
vesafb_device = platform_device_alloc("vesafb", 0);
if (!vesafb_device)
@@ -515,6 +571,14 @@ static int __init vesafb_init(void)
return ret;
}
+
+static void __exit vesafb_exit(void)
+{
+ platform_device_unregister(vesafb_device);
+ platform_driver_unregister(&vesafb_driver);
+}
+
module_init(vesafb_init);
+module_exit(vesafb_exit);
MODULE_LICENSE("GPL");
diff --git a/drivers/video/vga16fb.c b/drivers/video/vga16fb.c
index 28ccab44a39..4539ba71ef0 100644
--- a/drivers/video/vga16fb.c
+++ b/drivers/video/vga16fb.c
@@ -1451,6 +1451,8 @@ static void __exit vga16fb_exit(void)
MODULE_DESCRIPTION("Legacy VGA framebuffer device driver");
MODULE_LICENSE("GPL");
+/* Attempt to load for any VGA compatible device. */
+MODULE_ALIAS("pci:*bc03sc00i*");
module_init(vga16fb_init);
module_exit(vga16fb_exit);
diff --git a/drivers/watchdog/wm8350_wdt.c b/drivers/watchdog/wm8350_wdt.c
index 89dd7b03529..b68d928c8f9 100644
--- a/drivers/watchdog/wm8350_wdt.c
+++ b/drivers/watchdog/wm8350_wdt.c
@@ -284,7 +284,7 @@ static int __devinit wm8350_wdt_probe(struct platform_device *pdev)
struct wm8350 *wm8350 = platform_get_drvdata(pdev);
if (!wm8350) {
- dev_err(wm8350->dev, "No driver data supplied\n");
+ pr_err("No driver data supplied\n");
return -ENODEV;
}
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
index 535e763ab1a..627b826823f 100644
--- a/fs/binfmt_elf.c
+++ b/fs/binfmt_elf.c
@@ -74,7 +74,7 @@ static struct linux_binfmt elf_format = {
.hasvdso = 1
};
-#define BAD_ADDR(x) ((unsigned long)(x) >= TASK_SIZE)
+#define BAD_ADDR(x) IS_ERR_VALUE(x)
static int set_brk(unsigned long start, unsigned long end)
{
@@ -701,6 +701,13 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
break;
}
+#ifdef CONFIG_X86_32
+ if (current->personality == PER_LINUX && (exec_shield & 2)) {
+ executable_stack = EXSTACK_DISABLE_X;
+ current->flags |= PF_RANDOMIZE;
+ }
+#endif
+
/* Some simple consistency checks for the interpreter */
if (elf_interpreter) {
retval = -ELIBBAD;
@@ -717,6 +724,15 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
if (retval)
goto out_free_dentry;
+#if defined(CONFIG_X86_32) && !defined(CONFIG_UML)
+ /*
+ * Turn off the CS limit completely if exec-shield disabled or
+ * NX active:
+ */
+ if (!exec_shield || executable_stack != EXSTACK_DISABLE_X || (__supported_pte_mask & _PAGE_NX))
+ arch_add_exec_range(current->mm, -1);
+#endif
+
/* OK, This is the point of no return */
current->flags &= ~PF_FORKNOEXEC;
current->mm->def_flags = def_flags;
@@ -724,7 +740,11 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
/* Do this immediately, since STACK_TOP as used in setup_arg_pages
may depend on the personality. */
SET_PERSONALITY(loc->elf_ex);
- if (elf_read_implies_exec(loc->elf_ex, executable_stack))
+ if (elf_read_implies_exec(loc->elf_ex, executable_stack)
+#ifdef CONFIG_X86_32
+ && !(exec_shield & 2)
+#endif
+ )
current->personality |= READ_IMPLIES_EXEC;
if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
@@ -890,7 +910,7 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs)
interpreter,
&interp_map_addr,
load_bias);
- if (!IS_ERR((void *)elf_entry)) {
+ if (!BAD_ADDR(elf_entry)) {
/*
* load_elf_interp() returns relocation
* adjustment
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 7346c96308a..99d6af81174 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -706,8 +706,13 @@ retry:
* @bdev is about to be opened exclusively. Check @bdev can be opened
* exclusively and mark that an exclusive open is in progress. Each
* successful call to this function must be matched with a call to
- * either bd_claim() or bd_abort_claiming(). If this function
- * succeeds, the matching bd_claim() is guaranteed to succeed.
+ * either bd_finish_claiming() or bd_abort_claiming() (which do not
+ * fail).
+ *
+ * This function is used to gain exclusive access to the block device
+ * without actually causing other exclusive open attempts to fail. It
+ * should be used when the open sequence itself requires exclusive
+ * access but may subsequently fail.
*
* CONTEXT:
* Might sleep.
@@ -734,6 +739,7 @@ static struct block_device *bd_start_claiming(struct block_device *bdev,
return ERR_PTR(-ENXIO);
whole = bdget_disk(disk, 0);
+ module_put(disk->fops->owner);
put_disk(disk);
if (!whole)
return ERR_PTR(-ENOMEM);
@@ -782,15 +788,46 @@ static void bd_abort_claiming(struct block_device *whole, void *holder)
__bd_abort_claiming(whole, holder); /* releases bdev_lock */
}
+/* increment holders when we have a legitimate claim. requires bdev_lock */
+static void __bd_claim(struct block_device *bdev, struct block_device *whole,
+ void *holder)
+{
+ /* note that for a whole device bd_holders
+ * will be incremented twice, and bd_holder will
+ * be set to bd_claim before being set to holder
+ */
+ whole->bd_holders++;
+ whole->bd_holder = bd_claim;
+ bdev->bd_holders++;
+ bdev->bd_holder = holder;
+}
+
+/**
+ * bd_finish_claiming - finish claiming a block device
+ * @bdev: block device of interest (passed to bd_start_claiming())
+ * @whole: whole block device returned by bd_start_claiming()
+ * @holder: holder trying to claim @bdev
+ *
+ * Finish a claiming block started by bd_start_claiming().
+ *
+ * CONTEXT:
+ * Grabs and releases bdev_lock.
+ */
+static void bd_finish_claiming(struct block_device *bdev,
+ struct block_device *whole, void *holder)
+{
+ spin_lock(&bdev_lock);
+ BUG_ON(!bd_may_claim(bdev, whole, holder));
+ __bd_claim(bdev, whole, holder);
+ __bd_abort_claiming(whole, holder); /* not actually an abort */
+}
+
/**
* bd_claim - claim a block device
* @bdev: block device to claim
* @holder: holder trying to claim @bdev
*
- * Try to claim @bdev which must have been opened successfully. This
- * function may be called with or without preceding
- * blk_start_claiming(). In the former case, this function is always
- * successful and terminates the claiming block.
+ * Try to claim @bdev which must have been opened successfully.
*
* CONTEXT:
* Might sleep.
@@ -806,23 +843,10 @@ int bd_claim(struct block_device *bdev, void *holder)
might_sleep();
spin_lock(&bdev_lock);
-
res = bd_prepare_to_claim(bdev, whole, holder);
- if (res == 0) {
- /* note that for a whole device bd_holders
- * will be incremented twice, and bd_holder will
- * be set to bd_claim before being set to holder
- */
- whole->bd_holders++;
- whole->bd_holder = bd_claim;
- bdev->bd_holders++;
- bdev->bd_holder = holder;
- }
-
- if (whole->bd_claiming)
- __bd_abort_claiming(whole, holder); /* releases bdev_lock */
- else
- spin_unlock(&bdev_lock);
+ if (res == 0)
+ __bd_claim(bdev, whole, holder);
+ spin_unlock(&bdev_lock);
return res;
}
@@ -1476,7 +1500,7 @@ static int blkdev_open(struct inode * inode, struct file * filp)
if (whole) {
if (res == 0)
- BUG_ON(bd_claim(bdev, filp) != 0);
+ bd_finish_claiming(bdev, whole, filp);
else
bd_abort_claiming(whole, filp);
}
@@ -1712,7 +1736,7 @@ struct block_device *open_bdev_exclusive(const char *path, fmode_t mode, void *h
if ((mode & FMODE_WRITE) && bdev_read_only(bdev))
goto out_blkdev_put;
- BUG_ON(bd_claim(bdev, holder) != 0);
+ bd_finish_claiming(bdev, whole, holder);
return bdev;
out_blkdev_put:
diff --git a/fs/btrfs/acl.c b/fs/btrfs/acl.c
index 8d432cd9d58..2222d161c7b 100644
--- a/fs/btrfs/acl.c
+++ b/fs/btrfs/acl.c
@@ -60,6 +60,8 @@ static struct posix_acl *btrfs_get_acl(struct inode *inode, int type)
size = __btrfs_getxattr(inode, name, value, size);
if (size > 0) {
acl = posix_acl_from_xattr(value, size);
+ if (IS_ERR(acl))
+ return acl;
set_cached_acl(inode, type, acl);
}
kfree(value);
@@ -160,6 +162,12 @@ static int btrfs_xattr_acl_set(struct dentry *dentry, const char *name,
int ret;
struct posix_acl *acl = NULL;
+ if (!is_owner_or_cap(dentry->d_inode))
+ return -EPERM;
+
+ if (!IS_POSIXACL(dentry->d_inode))
+ return -EOPNOTSUPP;
+
if (value) {
acl = posix_acl_from_xattr(value, size);
if (acl == NULL) {
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
index f3b287c22ca..34f7c375567 100644
--- a/fs/btrfs/disk-io.c
+++ b/fs/btrfs/disk-io.c
@@ -1941,8 +1941,11 @@ struct btrfs_root *open_ctree(struct super_block *sb,
btrfs_level_size(tree_root,
btrfs_super_log_root_level(disk_super));
- log_tree_root = kzalloc(sizeof(struct btrfs_root),
- GFP_NOFS);
+ log_tree_root = kzalloc(sizeof(struct btrfs_root), GFP_NOFS);
+ if (!log_tree_root) {
+ err = -ENOMEM;
+ goto fail_trans_kthread;
+ }
__setup_root(nodesize, leafsize, sectorsize, stripesize,
log_tree_root, fs_info, BTRFS_TREE_LOG_OBJECTID);
@@ -1982,6 +1985,10 @@ struct btrfs_root *open_ctree(struct super_block *sb,
fs_info->fs_root = btrfs_read_fs_root_no_name(fs_info, &location);
if (!fs_info->fs_root)
goto fail_trans_kthread;
+ if (IS_ERR(fs_info->fs_root)) {
+ err = PTR_ERR(fs_info->fs_root);
+ goto fail_trans_kthread;
+ }
if (!(sb->s_flags & MS_RDONLY)) {
down_read(&fs_info->cleanup_work_sem);
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index b9080d71991..32d094002a5 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -4360,7 +4360,8 @@ void btrfs_free_tree_block(struct btrfs_trans_handle *trans,
block_rsv = get_block_rsv(trans, root);
cache = btrfs_lookup_block_group(root->fs_info, buf->start);
- BUG_ON(block_rsv->space_info != cache->space_info);
+ if (block_rsv->space_info != cache->space_info)
+ goto out;
if (btrfs_header_generation(buf) == trans->transid) {
if (root->root_key.objectid != BTRFS_TREE_LOG_OBJECTID) {
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 787b50a16a1..e354c33df08 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -1140,7 +1140,7 @@ int btrfs_sync_file(struct file *file, int datasync)
/*
* ok we haven't committed the transaction yet, lets do a commit
*/
- if (file && file->private_data)
+ if (file->private_data)
btrfs_ioctl_trans_end(file);
trans = btrfs_start_transaction(root, 0);
@@ -1190,14 +1190,22 @@ static const struct vm_operations_struct btrfs_file_vm_ops = {
static int btrfs_file_mmap(struct file *filp, struct vm_area_struct *vma)
{
- vma->vm_ops = &btrfs_file_vm_ops;
+ struct address_space *mapping = filp->f_mapping;
+
+ if (!mapping->a_ops->readpage)
+ return -ENOEXEC;
+
file_accessed(filp);
+ vma->vm_ops = &btrfs_file_vm_ops;
+ vma->vm_flags |= VM_CAN_NONLINEAR;
+
return 0;
}
const struct file_operations btrfs_file_operations = {
.llseek = generic_file_llseek,
.read = do_sync_read,
+ .write = do_sync_write,
.aio_read = generic_file_aio_read,
.splice_read = generic_file_splice_read,
.aio_write = btrfs_file_aio_write,
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index fa6ccc1bfe2..1bff92ad474 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -2673,7 +2673,7 @@ static int check_path_shared(struct btrfs_root *root,
struct extent_buffer *eb;
int level;
int ret;
- u64 refs;
+ u64 refs = 1;
for (level = 0; level < BTRFS_MAX_LEVEL; level++) {
if (!path->nodes[level])
@@ -6884,7 +6884,7 @@ static long btrfs_fallocate(struct inode *inode, int mode,
if (em->block_start == EXTENT_MAP_HOLE ||
(cur_offset >= inode->i_size &&
!test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) {
- ret = btrfs_prealloc_file_range(inode, 0, cur_offset,
+ ret = btrfs_prealloc_file_range(inode, mode, cur_offset,
last_byte - cur_offset,
1 << inode->i_blkbits,
offset + len,
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 4cdb98cf26d..4dbaf89b133 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -1280,7 +1280,7 @@ static noinline int btrfs_ioctl_snap_destroy(struct file *file,
trans = btrfs_start_transaction(root, 0);
if (IS_ERR(trans)) {
err = PTR_ERR(trans);
- goto out;
+ goto out_up_write;
}
trans->block_rsv = &root->fs_info->global_block_rsv;
@@ -1845,7 +1845,7 @@ static long btrfs_ioctl_default_subvol(struct file *file, void __user *argp)
dir_id = btrfs_super_root_dir(&root->fs_info->super_copy);
di = btrfs_lookup_dir_item(trans, root->fs_info->tree_root, path,
dir_id, "default", 7, 1);
- if (!di) {
+ if (IS_ERR_OR_NULL(di)) {
btrfs_free_path(path);
btrfs_end_transaction(trans, root);
printk(KERN_ERR "Umm, you don't have the default dir item, "
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c
index 05d41e56923..b37d723b9d4 100644
--- a/fs/btrfs/relocation.c
+++ b/fs/btrfs/relocation.c
@@ -784,16 +784,17 @@ again:
struct btrfs_extent_ref_v0 *ref0;
ref0 = btrfs_item_ptr(eb, path1->slots[0],
struct btrfs_extent_ref_v0);
- root = find_tree_root(rc, eb, ref0);
- if (!root->ref_cows)
- cur->cowonly = 1;
if (key.objectid == key.offset) {
+ root = find_tree_root(rc, eb, ref0);
if (root && !should_ignore_root(root))
cur->root = root;
else
list_add(&cur->list, &useless);
break;
}
+ if (is_cowonly_root(btrfs_ref_root_v0(eb,
+ ref0)))
+ cur->cowonly = 1;
}
#else
BUG_ON(key.type == BTRFS_EXTENT_REF_V0_KEY);
diff --git a/fs/btrfs/root-tree.c b/fs/btrfs/root-tree.c
index b91ccd97264..2d958be761c 100644
--- a/fs/btrfs/root-tree.c
+++ b/fs/btrfs/root-tree.c
@@ -330,7 +330,6 @@ int btrfs_del_root(struct btrfs_trans_handle *trans, struct btrfs_root *root,
{
struct btrfs_path *path;
int ret;
- u32 refs;
struct btrfs_root_item *ri;
struct extent_buffer *leaf;
@@ -344,8 +343,6 @@ int btrfs_del_root(struct btrfs_trans_handle *trans, struct btrfs_root *root,
leaf = path->nodes[0];
ri = btrfs_item_ptr(leaf, path->slots[0], struct btrfs_root_item);
- refs = btrfs_disk_root_refs(leaf, ri);
- BUG_ON(refs != 0);
ret = btrfs_del_item(trans, root, path);
out:
btrfs_free_path(path);
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
index d34b2dfc962..f2393b39031 100644
--- a/fs/btrfs/super.c
+++ b/fs/btrfs/super.c
@@ -360,6 +360,8 @@ static struct dentry *get_default_root(struct super_block *sb,
*/
dir_id = btrfs_super_root_dir(&root->fs_info->super_copy);
di = btrfs_lookup_dir_item(NULL, root, path, dir_id, "default", 7, 0);
+ if (IS_ERR(di))
+ return ERR_CAST(di);
if (!di) {
/*
* Ok the default dir item isn't there. This is weird since
@@ -390,8 +392,8 @@ setup_root:
location.offset = 0;
inode = btrfs_iget(sb, &location, new_root, &new);
- if (!inode)
- return ERR_PTR(-ENOMEM);
+ if (IS_ERR(inode))
+ return ERR_CAST(inode);
/*
* If we're just mounting the root most subvol put the inode and return
diff --git a/fs/ceph/caps.c b/fs/ceph/caps.c
index ae3e3a30644..619b61655ee 100644
--- a/fs/ceph/caps.c
+++ b/fs/ceph/caps.c
@@ -981,6 +981,46 @@ static int send_cap_msg(struct ceph_mds_session *session,
return 0;
}
+static void __queue_cap_release(struct ceph_mds_session *session,
+ u64 ino, u64 cap_id, u32 migrate_seq,
+ u32 issue_seq)
+{
+ struct ceph_msg *msg;
+ struct ceph_mds_cap_release *head;
+ struct ceph_mds_cap_item *item;
+
+ spin_lock(&session->s_cap_lock);
+ BUG_ON(!session->s_num_cap_releases);
+ msg = list_first_entry(&session->s_cap_releases,
+ struct ceph_msg, list_head);
+
+ dout(" adding %llx release to mds%d msg %p (%d left)\n",
+ ino, session->s_mds, msg, session->s_num_cap_releases);
+
+ BUG_ON(msg->front.iov_len + sizeof(*item) > PAGE_CACHE_SIZE);
+ head = msg->front.iov_base;
+ head->num = cpu_to_le32(le32_to_cpu(head->num) + 1);
+ item = msg->front.iov_base + msg->front.iov_len;
+ item->ino = cpu_to_le64(ino);
+ item->cap_id = cpu_to_le64(cap_id);
+ item->migrate_seq = cpu_to_le32(migrate_seq);
+ item->seq = cpu_to_le32(issue_seq);
+
+ session->s_num_cap_releases--;
+
+ msg->front.iov_len += sizeof(*item);
+ if (le32_to_cpu(head->num) == CEPH_CAPS_PER_RELEASE) {
+ dout(" release msg %p full\n", msg);
+ list_move_tail(&msg->list_head, &session->s_cap_releases_done);
+ } else {
+ dout(" release msg %p at %d/%d (%d)\n", msg,
+ (int)le32_to_cpu(head->num),
+ (int)CEPH_CAPS_PER_RELEASE,
+ (int)msg->front.iov_len);
+ }
+ spin_unlock(&session->s_cap_lock);
+}
+
/*
* Queue cap releases when an inode is dropped from our cache. Since
* inode is about to be destroyed, there is no need for i_lock.
@@ -994,41 +1034,9 @@ void ceph_queue_caps_release(struct inode *inode)
while (p) {
struct ceph_cap *cap = rb_entry(p, struct ceph_cap, ci_node);
struct ceph_mds_session *session = cap->session;
- struct ceph_msg *msg;
- struct ceph_mds_cap_release *head;
- struct ceph_mds_cap_item *item;
- spin_lock(&session->s_cap_lock);
- BUG_ON(!session->s_num_cap_releases);
- msg = list_first_entry(&session->s_cap_releases,
- struct ceph_msg, list_head);
-
- dout(" adding %p release to mds%d msg %p (%d left)\n",
- inode, session->s_mds, msg, session->s_num_cap_releases);
-
- BUG_ON(msg->front.iov_len + sizeof(*item) > PAGE_CACHE_SIZE);
- head = msg->front.iov_base;
- head->num = cpu_to_le32(le32_to_cpu(head->num) + 1);
- item = msg->front.iov_base + msg->front.iov_len;
- item->ino = cpu_to_le64(ceph_ino(inode));
- item->cap_id = cpu_to_le64(cap->cap_id);
- item->migrate_seq = cpu_to_le32(cap->mseq);
- item->seq = cpu_to_le32(cap->issue_seq);
-
- session->s_num_cap_releases--;
-
- msg->front.iov_len += sizeof(*item);
- if (le32_to_cpu(head->num) == CEPH_CAPS_PER_RELEASE) {
- dout(" release msg %p full\n", msg);
- list_move_tail(&msg->list_head,
- &session->s_cap_releases_done);
- } else {
- dout(" release msg %p at %d/%d (%d)\n", msg,
- (int)le32_to_cpu(head->num),
- (int)CEPH_CAPS_PER_RELEASE,
- (int)msg->front.iov_len);
- }
- spin_unlock(&session->s_cap_lock);
+ __queue_cap_release(session, ceph_ino(inode), cap->cap_id,
+ cap->mseq, cap->issue_seq);
p = rb_next(p);
__ceph_remove_cap(cap);
}
@@ -2655,7 +2663,7 @@ void ceph_handle_caps(struct ceph_mds_session *session,
struct ceph_mds_caps *h;
int mds = session->s_mds;
int op;
- u32 seq;
+ u32 seq, mseq;
struct ceph_vino vino;
u64 cap_id;
u64 size, max_size;
@@ -2675,6 +2683,7 @@ void ceph_handle_caps(struct ceph_mds_session *session,
vino.snap = CEPH_NOSNAP;
cap_id = le64_to_cpu(h->cap_id);
seq = le32_to_cpu(h->seq);
+ mseq = le32_to_cpu(h->migrate_seq);
size = le64_to_cpu(h->size);
max_size = le64_to_cpu(h->max_size);
@@ -2689,6 +2698,18 @@ void ceph_handle_caps(struct ceph_mds_session *session,
vino.snap, inode);
if (!inode) {
dout(" i don't have ino %llx\n", vino.ino);
+
+ if (op == CEPH_CAP_OP_IMPORT)
+ __queue_cap_release(session, vino.ino, cap_id,
+ mseq, seq);
+
+ /*
+ * send any full release message to try to move things
+ * along for the mds (who clearly thinks we still have this
+ * cap).
+ */
+ ceph_add_cap_releases(mdsc, session, -1);
+ ceph_send_cap_releases(mdsc, session);
goto done;
}
@@ -2714,7 +2735,7 @@ void ceph_handle_caps(struct ceph_mds_session *session,
spin_lock(&inode->i_lock);
cap = __get_cap_for_mds(ceph_inode(inode), mds);
if (!cap) {
- dout("no cap on %p ino %llx.%llx from mds%d, releasing\n",
+ dout(" no cap on %p ino %llx.%llx from mds%d\n",
inode, ceph_ino(inode), ceph_snap(inode), mds);
spin_unlock(&inode->i_lock);
goto done;
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
index 226f5a50d36..ab47f46ca28 100644
--- a/fs/ceph/inode.c
+++ b/fs/ceph/inode.c
@@ -827,7 +827,7 @@ static void ceph_set_dentry_offset(struct dentry *dn)
spin_lock(&dcache_lock);
spin_lock(&dn->d_lock);
- list_move_tail(&dir->d_subdirs, &dn->d_u.d_child);
+ list_move(&dn->d_u.d_child, &dir->d_subdirs);
dout("set_dentry_offset %p %lld (%p %p)\n", dn, di->offset,
dn->d_u.d_child.prev, dn->d_u.d_child.next);
spin_unlock(&dn->d_lock);
diff --git a/fs/ceph/mds_client.c b/fs/ceph/mds_client.c
index b49f12822cb..1766947fc07 100644
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@ -1066,9 +1066,9 @@ static int trim_caps(struct ceph_mds_client *mdsc,
*
* Called under s_mutex.
*/
-static int add_cap_releases(struct ceph_mds_client *mdsc,
- struct ceph_mds_session *session,
- int extra)
+int ceph_add_cap_releases(struct ceph_mds_client *mdsc,
+ struct ceph_mds_session *session,
+ int extra)
{
struct ceph_msg *msg;
struct ceph_mds_cap_release *head;
@@ -1176,8 +1176,8 @@ static int check_cap_flush(struct ceph_mds_client *mdsc, u64 want_flush_seq)
/*
* called under s_mutex
*/
-static void send_cap_releases(struct ceph_mds_client *mdsc,
- struct ceph_mds_session *session)
+void ceph_send_cap_releases(struct ceph_mds_client *mdsc,
+ struct ceph_mds_session *session)
{
struct ceph_msg *msg;
@@ -1980,7 +1980,7 @@ out_err:
}
mutex_unlock(&mdsc->mutex);
- add_cap_releases(mdsc, req->r_session, -1);
+ ceph_add_cap_releases(mdsc, req->r_session, -1);
mutex_unlock(&session->s_mutex);
/* kick calling process */
@@ -2433,6 +2433,7 @@ static void handle_lease(struct ceph_mds_client *mdsc,
struct ceph_dentry_info *di;
int mds = session->s_mds;
struct ceph_mds_lease *h = msg->front.iov_base;
+ u32 seq;
struct ceph_vino vino;
int mask;
struct qstr dname;
@@ -2446,6 +2447,7 @@ static void handle_lease(struct ceph_mds_client *mdsc,
vino.ino = le64_to_cpu(h->ino);
vino.snap = CEPH_NOSNAP;
mask = le16_to_cpu(h->mask);
+ seq = le32_to_cpu(h->seq);
dname.name = (void *)h + sizeof(*h) + sizeof(u32);
dname.len = msg->front.iov_len - sizeof(*h) - sizeof(u32);
if (dname.len != get_unaligned_le32(h+1))
@@ -2456,8 +2458,9 @@ static void handle_lease(struct ceph_mds_client *mdsc,
/* lookup inode */
inode = ceph_find_inode(sb, vino);
- dout("handle_lease '%s', mask %d, ino %llx %p\n",
- ceph_lease_op_name(h->action), mask, vino.ino, inode);
+ dout("handle_lease %s, mask %d, ino %llx %p %.*s\n",
+ ceph_lease_op_name(h->action), mask, vino.ino, inode,
+ dname.len, dname.name);
if (inode == NULL) {
dout("handle_lease no inode %llx\n", vino.ino);
goto release;
@@ -2482,7 +2485,8 @@ static void handle_lease(struct ceph_mds_client *mdsc,
switch (h->action) {
case CEPH_MDS_LEASE_REVOKE:
if (di && di->lease_session == session) {
- h->seq = cpu_to_le32(di->lease_seq);
+ if (ceph_seq_cmp(di->lease_seq, seq) > 0)
+ h->seq = cpu_to_le32(di->lease_seq);
__ceph_mdsc_drop_dentry_lease(dentry);
}
release = 1;
@@ -2496,7 +2500,7 @@ static void handle_lease(struct ceph_mds_client *mdsc,
unsigned long duration =
le32_to_cpu(h->duration_ms) * HZ / 1000;
- di->lease_seq = le32_to_cpu(h->seq);
+ di->lease_seq = seq;
dentry->d_time = di->lease_renew_from + duration;
di->lease_renew_after = di->lease_renew_from +
(duration >> 1);
@@ -2686,10 +2690,10 @@ static void delayed_work(struct work_struct *work)
send_renew_caps(mdsc, s);
else
ceph_con_keepalive(&s->s_con);
- add_cap_releases(mdsc, s, -1);
+ ceph_add_cap_releases(mdsc, s, -1);
if (s->s_state == CEPH_MDS_SESSION_OPEN ||
s->s_state == CEPH_MDS_SESSION_HUNG)
- send_cap_releases(mdsc, s);
+ ceph_send_cap_releases(mdsc, s);
mutex_unlock(&s->s_mutex);
ceph_put_mds_session(s);
diff --git a/fs/ceph/mds_client.h b/fs/ceph/mds_client.h
index d9936c4f121..b292fa42a66 100644
--- a/fs/ceph/mds_client.h
+++ b/fs/ceph/mds_client.h
@@ -322,6 +322,12 @@ static inline void ceph_mdsc_put_request(struct ceph_mds_request *req)
kref_put(&req->r_kref, ceph_mdsc_release_request);
}
+extern int ceph_add_cap_releases(struct ceph_mds_client *mdsc,
+ struct ceph_mds_session *session,
+ int extra);
+extern void ceph_send_cap_releases(struct ceph_mds_client *mdsc,
+ struct ceph_mds_session *session);
+
extern void ceph_mdsc_pre_umount(struct ceph_mds_client *mdsc);
extern char *ceph_mdsc_build_path(struct dentry *dentry, int *plen, u64 *base,
diff --git a/fs/ceph/mon_client.c b/fs/ceph/mon_client.c
index 21c62e9b7d1..07a539906e6 100644
--- a/fs/ceph/mon_client.c
+++ b/fs/ceph/mon_client.c
@@ -400,6 +400,8 @@ static void release_generic_request(struct kref *kref)
ceph_msg_put(req->reply);
if (req->request)
ceph_msg_put(req->request);
+
+ kfree(req);
}
static void put_generic_request(struct ceph_mon_generic_request *req)
diff --git a/fs/ceph/super.c b/fs/ceph/super.c
index 4e0bee240b9..fa87f51e38e 100644
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@ -89,7 +89,7 @@ static int ceph_statfs(struct dentry *dentry, struct kstatfs *buf)
buf->f_files = le64_to_cpu(st.num_objects);
buf->f_ffree = -1;
- buf->f_namelen = PATH_MAX;
+ buf->f_namelen = NAME_MAX;
buf->f_frsize = PAGE_CACHE_SIZE;
/* leave fsid little-endian, regardless of host endianness */
@@ -926,7 +926,7 @@ static int ceph_compare_super(struct super_block *sb, void *data)
/*
* construct our own bdi so we can control readahead, etc.
*/
-static atomic_long_t bdi_seq = ATOMIC_INIT(0);
+static atomic_long_t bdi_seq = ATOMIC_LONG_INIT(0);
static int ceph_register_bdi(struct super_block *sb, struct ceph_client *client)
{
diff --git a/fs/exec.c b/fs/exec.c
index e19de6a8033..7e46eaeb727 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -56,6 +56,8 @@
#include <linux/fs_struct.h>
#include <linux/pipe_fs_i.h>
+#include <trace/events/fs.h>
+
#include <asm/uaccess.h>
#include <asm/mmu_context.h>
#include <asm/tlb.h>
@@ -685,6 +687,8 @@ struct file *open_exec(const char *name)
fsnotify_open(file->f_path.dentry);
+ trace_open_exec(name);
+
err = deny_write_access(file);
if (err)
goto exit;
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index 1d1088f48bc..848bae1e23a 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -26,6 +26,7 @@
#include <linux/blkdev.h>
#include <linux/backing-dev.h>
#include <linux/buffer_head.h>
+#include <trace/events/vfs.h>
#include "internal.h"
#define inode_to_bdi(inode) ((inode)->i_mapping->backing_dev_info)
@@ -1086,6 +1087,8 @@ void __mark_inode_dirty(struct inode *inode, int flags)
if ((inode->i_state & flags) == flags)
return;
+ trace_dirty_inode(inode, current);
+
if (unlikely(block_dump))
block_dump___mark_inode_dirty(inode);
diff --git a/fs/inode.c b/fs/inode.c
index 2bee20ae3d6..fc33efe49d7 100644
--- a/fs/inode.c
+++ b/fs/inode.c
@@ -1626,3 +1626,7 @@ void inode_init_owner(struct inode *inode, const struct inode *dir,
inode->i_mode = mode;
}
EXPORT_SYMBOL(inode_init_owner);
+
+#define CREATE_TRACE_POINTS
+#include <trace/events/vfs.h>
+
diff --git a/fs/jffs2/acl.c b/fs/jffs2/acl.c
index a33aab6b5e6..54a92fd02bb 100644
--- a/fs/jffs2/acl.c
+++ b/fs/jffs2/acl.c
@@ -234,8 +234,9 @@ static int jffs2_set_acl(struct inode *inode, int type, struct posix_acl *acl)
if (inode->i_mode != mode) {
struct iattr attr;
- attr.ia_valid = ATTR_MODE;
+ attr.ia_valid = ATTR_MODE | ATTR_CTIME;
attr.ia_mode = mode;
+ attr.ia_ctime = CURRENT_TIME_SEC;
rc = jffs2_do_setattr(inode, &attr);
if (rc < 0)
return rc;
diff --git a/fs/jffs2/dir.c b/fs/jffs2/dir.c
index 7aa4417e085..166062a6823 100644
--- a/fs/jffs2/dir.c
+++ b/fs/jffs2/dir.c
@@ -222,15 +222,18 @@ static int jffs2_create(struct inode *dir_i, struct dentry *dentry, int mode,
dir_i->i_mtime = dir_i->i_ctime = ITIME(je32_to_cpu(ri->ctime));
jffs2_free_raw_inode(ri);
- d_instantiate(dentry, inode);
D1(printk(KERN_DEBUG "jffs2_create: Created ino #%lu with mode %o, nlink %d(%d). nrpages %ld\n",
inode->i_ino, inode->i_mode, inode->i_nlink,
f->inocache->pino_nlink, inode->i_mapping->nrpages));
+
+ d_instantiate(dentry, inode);
+ unlock_new_inode(inode);
return 0;
fail:
make_bad_inode(inode);
+ unlock_new_inode(inode);
iput(inode);
jffs2_free_raw_inode(ri);
return ret;
@@ -360,8 +363,8 @@ static int jffs2_symlink (struct inode *dir_i, struct dentry *dentry, const char
/* Eeek. Wave bye bye */
mutex_unlock(&f->sem);
jffs2_complete_reservation(c);
- jffs2_clear_inode(inode);
- return PTR_ERR(fn);
+ ret = PTR_ERR(fn);
+ goto fail;
}
/* We use f->target field to store the target path. */
@@ -370,8 +373,8 @@ static int jffs2_symlink (struct inode *dir_i, struct dentry *dentry, const char
printk(KERN_WARNING "Can't allocate %d bytes of memory\n", targetlen + 1);
mutex_unlock(&f->sem);
jffs2_complete_reservation(c);
- jffs2_clear_inode(inode);
- return -ENOMEM;
+ ret = -ENOMEM;
+ goto fail;
}
memcpy(f->target, target, targetlen + 1);
@@ -386,30 +389,24 @@ static int jffs2_symlink (struct inode *dir_i, struct dentry *dentry, const char
jffs2_complete_reservation(c);
ret = jffs2_init_security(inode, dir_i);
- if (ret) {
- jffs2_clear_inode(inode);
- return ret;
- }
+ if (ret)
+ goto fail;
+
ret = jffs2_init_acl_post(inode);
- if (ret) {
- jffs2_clear_inode(inode);
- return ret;
- }
+ if (ret)
+ goto fail;
ret = jffs2_reserve_space(c, sizeof(*rd)+namelen, &alloclen,
ALLOC_NORMAL, JFFS2_SUMMARY_DIRENT_SIZE(namelen));
- if (ret) {
- /* Eep. */
- jffs2_clear_inode(inode);
- return ret;
- }
+ if (ret)
+ goto fail;
rd = jffs2_alloc_raw_dirent();
if (!rd) {
/* Argh. Now we treat it like a normal delete */
jffs2_complete_reservation(c);
- jffs2_clear_inode(inode);
- return -ENOMEM;
+ ret = -ENOMEM;
+ goto fail;
}
dir_f = JFFS2_INODE_INFO(dir_i);
@@ -437,8 +434,8 @@ static int jffs2_symlink (struct inode *dir_i, struct dentry *dentry, const char
jffs2_complete_reservation(c);
jffs2_free_raw_dirent(rd);
mutex_unlock(&dir_f->sem);
- jffs2_clear_inode(inode);
- return PTR_ERR(fd);
+ ret = PTR_ERR(fd);
+ goto fail;
}
dir_i->i_mtime = dir_i->i_ctime = ITIME(je32_to_cpu(rd->mctime));
@@ -453,7 +450,14 @@ static int jffs2_symlink (struct inode *dir_i, struct dentry *dentry, const char
jffs2_complete_reservation(c);
d_instantiate(dentry, inode);
+ unlock_new_inode(inode);
return 0;
+
+ fail:
+ make_bad_inode(inode);
+ unlock_new_inode(inode);
+ iput(inode);
+ return ret;
}
@@ -519,8 +523,8 @@ static int jffs2_mkdir (struct inode *dir_i, struct dentry *dentry, int mode)
/* Eeek. Wave bye bye */
mutex_unlock(&f->sem);
jffs2_complete_reservation(c);
- jffs2_clear_inode(inode);
- return PTR_ERR(fn);
+ ret = PTR_ERR(fn);
+ goto fail;
}
/* No data here. Only a metadata node, which will be
obsoleted by the first data write
@@ -531,30 +535,24 @@ static int jffs2_mkdir (struct inode *dir_i, struct dentry *dentry, int mode)
jffs2_complete_reservation(c);
ret = jffs2_init_security(inode, dir_i);
- if (ret) {
- jffs2_clear_inode(inode);
- return ret;
- }
+ if (ret)
+ goto fail;
+
ret = jffs2_init_acl_post(inode);
- if (ret) {
- jffs2_clear_inode(inode);
- return ret;
- }
+ if (ret)
+ goto fail;
ret = jffs2_reserve_space(c, sizeof(*rd)+namelen, &alloclen,
ALLOC_NORMAL, JFFS2_SUMMARY_DIRENT_SIZE(namelen));
- if (ret) {
- /* Eep. */
- jffs2_clear_inode(inode);
- return ret;
- }
+ if (ret)
+ goto fail;
rd = jffs2_alloc_raw_dirent();
if (!rd) {
/* Argh. Now we treat it like a normal delete */
jffs2_complete_reservation(c);
- jffs2_clear_inode(inode);
- return -ENOMEM;
+ ret = -ENOMEM;
+ goto fail;
}
dir_f = JFFS2_INODE_INFO(dir_i);
@@ -582,8 +580,8 @@ static int jffs2_mkdir (struct inode *dir_i, struct dentry *dentry, int mode)
jffs2_complete_reservation(c);
jffs2_free_raw_dirent(rd);
mutex_unlock(&dir_f->sem);
- jffs2_clear_inode(inode);
- return PTR_ERR(fd);
+ ret = PTR_ERR(fd);
+ goto fail;
}
dir_i->i_mtime = dir_i->i_ctime = ITIME(je32_to_cpu(rd->mctime));
@@ -599,7 +597,14 @@ static int jffs2_mkdir (struct inode *dir_i, struct dentry *dentry, int mode)
jffs2_complete_reservation(c);
d_instantiate(dentry, inode);
+ unlock_new_inode(inode);
return 0;
+
+ fail:
+ make_bad_inode(inode);
+ unlock_new_inode(inode);
+ iput(inode);
+ return ret;
}
static int jffs2_rmdir (struct inode *dir_i, struct dentry *dentry)
@@ -693,8 +698,8 @@ static int jffs2_mknod (struct inode *dir_i, struct dentry *dentry, int mode, de
/* Eeek. Wave bye bye */
mutex_unlock(&f->sem);
jffs2_complete_reservation(c);
- jffs2_clear_inode(inode);
- return PTR_ERR(fn);
+ ret = PTR_ERR(fn);
+ goto fail;
}
/* No data here. Only a metadata node, which will be
obsoleted by the first data write
@@ -705,30 +710,24 @@ static int jffs2_mknod (struct inode *dir_i, struct dentry *dentry, int mode, de
jffs2_complete_reservation(c);
ret = jffs2_init_security(inode, dir_i);
- if (ret) {
- jffs2_clear_inode(inode);
- return ret;
- }
+ if (ret)
+ goto fail;
+
ret = jffs2_init_acl_post(inode);
- if (ret) {
- jffs2_clear_inode(inode);
- return ret;
- }
+ if (ret)
+ goto fail;
ret = jffs2_reserve_space(c, sizeof(*rd)+namelen, &alloclen,
ALLOC_NORMAL, JFFS2_SUMMARY_DIRENT_SIZE(namelen));
- if (ret) {
- /* Eep. */
- jffs2_clear_inode(inode);
- return ret;
- }
+ if (ret)
+ goto fail;
rd = jffs2_alloc_raw_dirent();
if (!rd) {
/* Argh. Now we treat it like a normal delete */
jffs2_complete_reservation(c);
- jffs2_clear_inode(inode);
- return -ENOMEM;
+ ret = -ENOMEM;
+ goto fail;
}
dir_f = JFFS2_INODE_INFO(dir_i);
@@ -759,8 +758,8 @@ static int jffs2_mknod (struct inode *dir_i, struct dentry *dentry, int mode, de
jffs2_complete_reservation(c);
jffs2_free_raw_dirent(rd);
mutex_unlock(&dir_f->sem);
- jffs2_clear_inode(inode);
- return PTR_ERR(fd);
+ ret = PTR_ERR(fd);
+ goto fail;
}
dir_i->i_mtime = dir_i->i_ctime = ITIME(je32_to_cpu(rd->mctime));
@@ -775,8 +774,14 @@ static int jffs2_mknod (struct inode *dir_i, struct dentry *dentry, int mode, de
jffs2_complete_reservation(c);
d_instantiate(dentry, inode);
-
+ unlock_new_inode(inode);
return 0;
+
+ fail:
+ make_bad_inode(inode);
+ unlock_new_inode(inode);
+ iput(inode);
+ return ret;
}
static int jffs2_rename (struct inode *old_dir_i, struct dentry *old_dentry,
diff --git a/fs/jffs2/fs.c b/fs/jffs2/fs.c
index 8bc2c80ab15..459d39d1ea0 100644
--- a/fs/jffs2/fs.c
+++ b/fs/jffs2/fs.c
@@ -465,7 +465,12 @@ struct inode *jffs2_new_inode (struct inode *dir_i, int mode, struct jffs2_raw_i
inode->i_blocks = 0;
inode->i_size = 0;
- insert_inode_hash(inode);
+ if (insert_inode_locked(inode) < 0) {
+ make_bad_inode(inode);
+ unlock_new_inode(inode);
+ iput(inode);
+ return ERR_PTR(-EINVAL);
+ }
return inode;
}
diff --git a/fs/namei.c b/fs/namei.c
index 868d0cb9d47..334130e206b 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -348,6 +348,7 @@ int deny_write_access(struct file * file)
return 0;
}
+EXPORT_SYMBOL(deny_write_access);
/**
* path_get - get a reference to a path
@@ -1178,7 +1179,7 @@ out:
* needs parent already locked. Doesn't follow mounts.
* SMP-safe.
*/
-static struct dentry *lookup_hash(struct nameidata *nd)
+struct dentry *lookup_hash(struct nameidata *nd)
{
int err;
@@ -1187,8 +1188,9 @@ static struct dentry *lookup_hash(struct nameidata *nd)
return ERR_PTR(err);
return __lookup_hash(&nd->last, nd->path.dentry, nd);
}
+EXPORT_SYMBOL(lookup_hash);
-static int __lookup_one_len(const char *name, struct qstr *this,
+int __lookup_one_len(const char *name, struct qstr *this,
struct dentry *base, int len)
{
unsigned long hash;
@@ -1209,6 +1211,7 @@ static int __lookup_one_len(const char *name, struct qstr *this,
this->hash = end_name_hash(hash);
return 0;
}
+EXPORT_SYMBOL(__lookup_one_len);
/**
* lookup_one_len - filesystem helper to lookup single pathname component
diff --git a/fs/namespace.c b/fs/namespace.c
index 88058de59c7..397afcc9335 100644
--- a/fs/namespace.c
+++ b/fs/namespace.c
@@ -1279,6 +1279,7 @@ int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg,
}
return 0;
}
+EXPORT_SYMBOL(iterate_mounts);
static void cleanup_group_ids(struct vfsmount *mnt, struct vfsmount *end)
{
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index 12f7109720c..4a273475877 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -4122,8 +4122,8 @@ nfs4_state_shutdown(void)
nfs4_lock_state();
nfs4_release_reclaim();
__nfs4_state_shutdown();
- nfsd4_destroy_callback_queue();
nfs4_unlock_state();
+ nfsd4_destroy_callback_queue();
}
/*
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
index ebbf3b6b245..3c111120b61 100644
--- a/fs/nfsd/vfs.c
+++ b/fs/nfsd/vfs.c
@@ -443,8 +443,7 @@ nfsd_setattr(struct svc_rqst *rqstp, struct svc_fh *fhp, struct iattr *iap,
if (size_change)
put_write_access(inode);
if (!err)
- if (EX_ISSYNC(fhp->fh_export))
- write_inode_now(inode, 1);
+ commit_metadata(fhp);
out:
return err;
diff --git a/fs/notify/group.c b/fs/notify/group.c
index 0e1677144bc..3fab10abd91 100644
--- a/fs/notify/group.c
+++ b/fs/notify/group.c
@@ -22,6 +22,7 @@
#include <linux/srcu.h>
#include <linux/rculist.h>
#include <linux/wait.h>
+#include <linux/module.h>
#include <linux/fsnotify_backend.h>
#include "fsnotify.h"
@@ -169,6 +170,7 @@ void fsnotify_put_group(struct fsnotify_group *group)
fsnotify_recalc_global_mask();
fsnotify_destroy_group(group);
}
+EXPORT_SYMBOL(fsnotify_put_group);
/*
* Simply run the fsnotify_groups list and find a group which matches
@@ -252,3 +254,4 @@ struct fsnotify_group *fsnotify_obtain_group(unsigned int group_num, __u32 mask,
return group;
}
+EXPORT_SYMBOL(fsnotify_obtain_group);
diff --git a/fs/notify/inode_mark.c b/fs/notify/inode_mark.c
index 0399bcbe09c..74cdc13f316 100644
--- a/fs/notify/inode_mark.c
+++ b/fs/notify/inode_mark.c
@@ -105,6 +105,7 @@ void fsnotify_put_mark(struct fsnotify_mark_entry *entry)
if (atomic_dec_and_test(&entry->refcnt))
entry->free_mark(entry);
}
+EXPORT_SYMBOL(fsnotify_put_mark);
/*
* Recalculate the mask of events relevant to a given inode locked.
@@ -215,6 +216,7 @@ void fsnotify_destroy_mark_by_entry(struct fsnotify_mark_entry *entry)
if (unlikely(atomic_dec_and_test(&group->num_marks)))
fsnotify_final_destroy_group(group);
}
+EXPORT_SYMBOL(fsnotify_destroy_mark_by_entry);
/*
* Given a group, destroy all of the marks associated with that group.
@@ -281,6 +283,7 @@ struct fsnotify_mark_entry *fsnotify_find_mark_entry(struct fsnotify_group *grou
}
return NULL;
}
+EXPORT_SYMBOL(fsnotify_find_mark_entry);
/*
* Nothing fancy, just initialize lists and locks and counters.
@@ -297,6 +300,7 @@ void fsnotify_init_mark(struct fsnotify_mark_entry *entry,
entry->inode = NULL;
entry->free_mark = free_mark;
}
+EXPORT_SYMBOL(fsnotify_init_mark);
/*
* Attach an initialized mark entry to a given group and inode.
@@ -352,6 +356,7 @@ int fsnotify_add_mark(struct fsnotify_mark_entry *entry,
return ret;
}
+EXPORT_SYMBOL(fsnotify_add_mark);
/**
* fsnotify_unmount_inodes - an sb is unmounting. handle any watched inodes.
diff --git a/fs/open.c b/fs/open.c
index 5463266db9e..6c6e5e5205a 100644
--- a/fs/open.c
+++ b/fs/open.c
@@ -32,6 +32,9 @@
#include "internal.h"
+#define CREATE_TRACE_POINTS
+#include <trace/events/fs.h>
+
int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
struct file *filp)
{
@@ -59,6 +62,7 @@ int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
mutex_unlock(&dentry->d_inode->i_mutex);
return ret;
}
+EXPORT_SYMBOL(do_truncate);
static long do_sys_truncate(const char __user *pathname, loff_t length)
{
@@ -890,6 +894,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, int mode)
} else {
fsnotify_open(f->f_path.dentry);
fd_install(fd, f);
+ trace_do_sys_open(tmp, flags, mode);
}
}
putname(tmp);
diff --git a/fs/pipe.c b/fs/pipe.c
index 69c4c7c13ea..279eef96c51 100644
--- a/fs/pipe.c
+++ b/fs/pipe.c
@@ -1145,13 +1145,20 @@ static long pipe_set_size(struct pipe_inode_info *pipe, unsigned long nr_pages)
* and adjust the indexes.
*/
if (pipe->nrbufs) {
- const unsigned int tail = pipe->nrbufs & (pipe->buffers - 1);
- const unsigned int head = pipe->nrbufs - tail;
+ unsigned int tail;
+ unsigned int head;
+ tail = pipe->curbuf + pipe->nrbufs;
+ if (tail < pipe->buffers)
+ tail = 0;
+ else
+ tail &= (pipe->buffers - 1);
+
+ head = pipe->nrbufs - tail;
if (head)
memcpy(bufs, pipe->bufs + pipe->curbuf, head * sizeof(struct pipe_buffer));
if (tail)
- memcpy(bufs + head, pipe->bufs + pipe->curbuf, tail * sizeof(struct pipe_buffer));
+ memcpy(bufs + head, pipe->bufs, tail * sizeof(struct pipe_buffer));
}
pipe->curbuf = 0;
@@ -1208,12 +1215,13 @@ long pipe_fcntl(struct file *file, unsigned int cmd, unsigned long arg)
size = round_pipe_size(arg);
nr_pages = size >> PAGE_SHIFT;
+ ret = -EINVAL;
+ if (!nr_pages)
+ goto out;
+
if (!capable(CAP_SYS_RESOURCE) && size > pipe_max_size) {
ret = -EPERM;
goto out;
- } else if (nr_pages < PAGE_SIZE) {
- ret = -EINVAL;
- goto out;
}
ret = pipe_set_size(pipe, nr_pages);
break;
diff --git a/fs/proc/Makefile b/fs/proc/Makefile
index 11a7b5c6815..0918037c5a1 100644
--- a/fs/proc/Makefile
+++ b/fs/proc/Makefile
@@ -26,3 +26,4 @@ proc-$(CONFIG_PROC_VMCORE) += vmcore.o
proc-$(CONFIG_PROC_DEVICETREE) += proc_devtree.o
proc-$(CONFIG_PRINTK) += kmsg.o
proc-$(CONFIG_PROC_PAGE_MONITOR) += page.o
+proc-y += version_signature.o
diff --git a/fs/proc/version_signature.c b/fs/proc/version_signature.c
new file mode 100644
index 00000000000..859fb6092a6
--- /dev/null
+++ b/fs/proc/version_signature.c
@@ -0,0 +1,31 @@
+#include <linux/fs.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/proc_fs.h>
+#include <linux/seq_file.h>
+#include <linux/utsname.h>
+
+static int version_signature_proc_show(struct seq_file *m, void *v)
+{
+ seq_printf(m, "%s\n", CONFIG_VERSION_SIGNATURE);
+ return 0;
+}
+
+static int version_signature_proc_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, version_signature_proc_show, NULL);
+}
+
+static const struct file_operations version_signature_proc_fops = {
+ .open = version_signature_proc_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = single_release,
+};
+
+static int __init proc_version_signature_init(void)
+{
+ proc_create("version_signature", 0, NULL, &version_signature_proc_fops);
+ return 0;
+}
+module_init(proc_version_signature_init);
diff --git a/fs/splice.c b/fs/splice.c
index 740e6b9faf7..d34b30690cf 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -1104,8 +1104,8 @@ EXPORT_SYMBOL(generic_splice_sendpage);
/*
* Attempt to initiate a splice from pipe to file.
*/
-static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
- loff_t *ppos, size_t len, unsigned int flags)
+long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ loff_t *ppos, size_t len, unsigned int flags)
{
ssize_t (*splice_write)(struct pipe_inode_info *, struct file *,
loff_t *, size_t, unsigned int);
@@ -1128,13 +1128,14 @@ static long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
return splice_write(pipe, out, ppos, len, flags);
}
+EXPORT_SYMBOL(do_splice_from);
/*
* Attempt to initiate a splice from a file to a pipe.
*/
-static long do_splice_to(struct file *in, loff_t *ppos,
- struct pipe_inode_info *pipe, size_t len,
- unsigned int flags)
+long do_splice_to(struct file *in, loff_t *ppos,
+ struct pipe_inode_info *pipe, size_t len,
+ unsigned int flags)
{
ssize_t (*splice_read)(struct file *, loff_t *,
struct pipe_inode_info *, size_t, unsigned int);
@@ -1154,6 +1155,7 @@ static long do_splice_to(struct file *in, loff_t *ppos,
return splice_read(in, ppos, pipe, len, flags);
}
+EXPORT_SYMBOL(do_splice_to);
/**
* splice_direct_to_actor - splices data directly between two non-pipes
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c
index a0fa3bf0d1b..34640d6dbdc 100644
--- a/fs/xfs/linux-2.6/xfs_aops.c
+++ b/fs/xfs/linux-2.6/xfs_aops.c
@@ -1381,14 +1381,6 @@ xfs_vm_writepage(
if (!page_has_buffers(page))
create_empty_buffers(page, 1 << inode->i_blkbits, 0);
-
- /*
- * VM calculation for nr_to_write seems off. Bump it way
- * up, this gets simple streaming writes zippy again.
- * To be reviewed again after Jens' writeback changes.
- */
- wbc->nr_to_write *= 4;
-
/*
* Convert delayed allocate, unwritten or unmapped space
* to real space and flush out to disk.
diff --git a/include/Kbuild b/include/Kbuild
index 8d226bfa269..fe36accd432 100644
--- a/include/Kbuild
+++ b/include/Kbuild
@@ -9,4 +9,3 @@ header-y += rdma/
header-y += video/
header-y += drm/
header-y += xen/
-header-y += scsi/
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 48c5299cbf2..4efb55dbfad 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -589,6 +589,7 @@
*(.initcall0s.init) \
*(.initcall1.init) \
*(.initcall1s.init) \
+ *(.initcallearlyrootfs.init) \
*(.initcall2.init) \
*(.initcall2s.init) \
*(.initcall3.init) \
diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h
index 3ff9fc071df..5347063e9d5 100644
--- a/include/drm/radeon_drm.h
+++ b/include/drm/radeon_drm.h
@@ -903,6 +903,7 @@ struct drm_radeon_cs {
#define RADEON_INFO_NUM_Z_PIPES 0x02
#define RADEON_INFO_ACCEL_WORKING 0x03
#define RADEON_INFO_CRTC_FROM_ID 0x04
+#define RADEON_INFO_ACCEL_WORKING2 0x05
struct drm_radeon_info {
uint32_t request;
diff --git a/include/linux/audit.h b/include/linux/audit.h
index f391d45c8ae..64d0bdaae6d 100644
--- a/include/linux/audit.h
+++ b/include/linux/audit.h
@@ -33,7 +33,7 @@
* 1200 - 1299 messages internal to the audit daemon
* 1300 - 1399 audit event messages
* 1400 - 1499 SE Linux use
- * 1500 - 1599 kernel LSPP events
+ * 1500 - 1599 AppArmor use
* 1600 - 1699 kernel crypto events
* 1700 - 1799 kernel anomaly records
* 1800 - 1899 kernel integrity events
@@ -122,6 +122,14 @@
#define AUDIT_MAC_UNLBL_STCADD 1416 /* NetLabel: add a static label */
#define AUDIT_MAC_UNLBL_STCDEL 1417 /* NetLabel: del a static label */
+#define AUDIT_APPARMOR_AUDIT 1501 /* AppArmor audited grants */
+#define AUDIT_APPARMOR_ALLOWED 1502 /* Allowed Access for learning */
+#define AUDIT_APPARMOR_DENIED 1503
+#define AUDIT_APPARMOR_HINT 1504 /* Process Tracking information */
+#define AUDIT_APPARMOR_STATUS 1505 /* Changes in config */
+#define AUDIT_APPARMOR_ERROR 1506 /* Internal AppArmor Errors */
+#define AUDIT_APPARMOR_KILL 1507 /* AppArmor killing processes */
+
#define AUDIT_FIRST_KERN_ANOM_MSG 1700
#define AUDIT_LAST_KERN_ANOM_MSG 1799
#define AUDIT_ANOM_PROMISCUOUS 1700 /* Device changed promiscuous mode */
diff --git a/include/linux/init.h b/include/linux/init.h
index de994304e0b..f3fbb955d46 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -188,6 +188,7 @@ extern int initcall_debug;
#define core_initcall(fn) __define_initcall("1",fn,1)
#define core_initcall_sync(fn) __define_initcall("1s",fn,1s)
+#define earlyrootfs_initcall(fn) __define_initcall("earlyrootfs",fn,rootfs)
#define postcore_initcall(fn) __define_initcall("2",fn,2)
#define postcore_initcall_sync(fn) __define_initcall("2s",fn,2s)
#define arch_initcall(fn) __define_initcall("3",fn,3)
@@ -215,6 +216,8 @@ extern int initcall_debug;
static initcall_t __initcall_##fn \
__used __section(.security_initcall.init) = fn
+extern struct list_head populate_rootfs_domain;
+
struct obs_kernel_param {
const char *str;
int (*setup_func)(char *);
diff --git a/include/linux/input.h b/include/linux/input.h
index 6fcc9101bee..9e024b657a0 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -694,6 +694,7 @@ struct input_absinfo {
#define ABS_VOLUME 0x20
#define ABS_MISC 0x28
+#define ABS_MT_SLOT 0x2f /* MT slot being modified */
#define ABS_MT_TOUCH_MAJOR 0x30 /* Major axis of touching ellipse */
#define ABS_MT_TOUCH_MINOR 0x31 /* Minor axis (omit if circular) */
#define ABS_MT_WIDTH_MAJOR 0x32 /* Major axis of approaching ellipse */
@@ -815,6 +816,24 @@ struct input_absinfo {
#define MT_TOOL_PEN 1
/*
+ * MT slot event lists
+ */
+
+#define MT_SLOT_ABS_EVENTS { \
+ ABS_MT_TOUCH_MAJOR, \
+ ABS_MT_TOUCH_MINOR, \
+ ABS_MT_WIDTH_MAJOR, \
+ ABS_MT_WIDTH_MINOR, \
+ ABS_MT_ORIENTATION, \
+ ABS_MT_POSITION_X, \
+ ABS_MT_POSITION_Y, \
+ ABS_MT_TOOL_TYPE, \
+ ABS_MT_BLOB_ID, \
+ ABS_MT_TRACKING_ID, \
+ ABS_MT_PRESSURE, \
+}
+
+/*
* Values describing the status of a force-feedback effect
*/
#define FF_STATUS_STOPPED 0x00
@@ -1081,6 +1100,9 @@ struct ff_effect {
* @sync: set to 1 when there were no new events since last EV_SYNC
* @abs: current values for reports from absolute axes
* @rep: current values for autorepeat parameters (delay, rate)
+ * @mt: array of MT slots
+ * @mtsize: number of allocated MT slots
+ * @slot: current MT slot
* @key: reflects current state of device's keys/buttons
* @led: reflects current state of device's LEDs
* @snd: reflects current state of sound effects
@@ -1140,6 +1162,8 @@ struct input_dev {
unsigned long ffbit[BITS_TO_LONGS(FF_CNT)];
unsigned long swbit[BITS_TO_LONGS(SW_CNT)];
+ unsigned int hint_events_per_packet;
+
unsigned int keycodemax;
unsigned int keycodesize;
void *keycode;
@@ -1158,6 +1182,10 @@ struct input_dev {
int abs[ABS_CNT];
int rep[REP_MAX + 1];
+ struct input_mt_slot *mt;
+ int mtsize;
+ int slot;
+
unsigned long key[BITS_TO_LONGS(KEY_CNT)];
unsigned long led[BITS_TO_LONGS(LED_CNT)];
unsigned long snd[BITS_TO_LONGS(SND_CNT)];
@@ -1406,8 +1434,28 @@ static inline void input_mt_sync(struct input_dev *dev)
input_event(dev, EV_SYN, SYN_MT_REPORT, 0);
}
+static inline void input_mt_slot(struct input_dev *dev, int slot)
+{
+ input_event(dev, EV_ABS, ABS_MT_SLOT, slot);
+}
+
void input_set_capability(struct input_dev *dev, unsigned int type, unsigned int code);
+/**
+ * input_set_events_per_packet - tell handlers about the driver event rate
+ * @dev: the input device used by the driver
+ * @nev: the average number of events between calls to input_sync()
+ *
+ * If the event rate sent from a device is unusually large, use this
+ * function to set the expected event rate. This will allow handlers
+ * to set up an approriate buffer size for the event stream, in order
+ * to minimize information loss.
+ */
+static inline void input_set_events_per_packet(struct input_dev *dev, int nev)
+{
+ dev->hint_events_per_packet = nev;
+}
+
static inline void input_set_abs_params(struct input_dev *dev, int axis, int min, int max, int fuzz, int flat)
{
dev->absmin[axis] = min;
@@ -1485,5 +1533,18 @@ int input_ff_erase(struct input_dev *dev, int effect_id, struct file *file);
int input_ff_create_memless(struct input_dev *dev, void *data,
int (*play_effect)(struct input_dev *, void *, struct ff_effect *));
+#define MT_ABS_SIZE 11
+
+/**
+ * struct input_mt_slot - represents the state of an input MT slot
+ * @abs: current values of ABS_MT axes for this slot
+ */
+struct input_mt_slot {
+ int abs[MT_ABS_SIZE];
+};
+
+int input_mt_create_slots(struct input_dev *dev, int max_slots);
+void input_mt_destroy_slots(struct input_dev *dev);
+
#endif
#endif
diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h
index b631c46cffd..f6c9b7dcb9f 100644
--- a/include/linux/miscdevice.h
+++ b/include/linux/miscdevice.h
@@ -3,6 +3,12 @@
#include <linux/module.h>
#include <linux/major.h>
+/*
+ * These allocations are managed by device@lanana.org. If you use an
+ * entry that is not in assigned your entry may well be moved and
+ * reassigned, or set dynamic if a fixed value is not justified.
+ */
+
#define PSMOUSE_MINOR 1
#define MS_BUSMOUSE_MINOR 2
#define ATIXL_BUSMOUSE_MINOR 3
@@ -30,7 +36,6 @@
#define HPET_MINOR 228
#define FUSE_MINOR 229
#define KVM_MINOR 232
-#define VHOST_NET_MINOR 233
#define BTRFS_MINOR 234
#define AUTOFS_MINOR 235
#define MISC_DYNAMIC_MINOR 255
diff --git a/include/linux/mm.h b/include/linux/mm.h
index b969efb0378..19c41b0aa56 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1263,7 +1263,13 @@ extern int install_special_mapping(struct mm_struct *mm,
unsigned long addr, unsigned long len,
unsigned long flags, struct page **pages);
-extern unsigned long get_unmapped_area(struct file *, unsigned long, unsigned long, unsigned long, unsigned long);
+extern unsigned long get_unmapped_area_prot(struct file *, unsigned long, unsigned long, unsigned long, unsigned long, int);
+
+static inline unsigned long get_unmapped_area(struct file *file, unsigned long addr,
+ unsigned long len, unsigned long pgoff, unsigned long flags)
+{
+ return get_unmapped_area_prot(file, addr, len, pgoff, flags, 0);
+}
extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
unsigned long len, unsigned long prot,
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index b8bb9a6a1f3..f478e39e3cc 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -227,6 +227,9 @@ struct mm_struct {
unsigned long (*get_unmapped_area) (struct file *filp,
unsigned long addr, unsigned long len,
unsigned long pgoff, unsigned long flags);
+ unsigned long (*get_unmapped_exec_area) (struct file *filp,
+ unsigned long addr, unsigned long len,
+ unsigned long pgoff, unsigned long flags);
void (*unmap_area) (struct mm_struct *mm, unsigned long addr);
#endif
unsigned long mmap_base; /* base of mmap area */
diff --git a/include/linux/namei.h b/include/linux/namei.h
index 05b441d9364..91bc74e6ede 100644
--- a/include/linux/namei.h
+++ b/include/linux/namei.h
@@ -73,6 +73,9 @@ extern int vfs_path_lookup(struct dentry *, struct vfsmount *,
extern struct file *lookup_instantiate_filp(struct nameidata *nd, struct dentry *dentry,
int (*open)(struct inode *, struct file *));
+extern struct dentry *lookup_hash(struct nameidata *nd);
+extern int __lookup_one_len(const char *name, struct qstr *this,
+ struct dentry *base, int len);
extern struct dentry *lookup_one_len(const char *, struct dentry *, int);
extern int follow_down(struct path *);
diff --git a/include/linux/netfilter/Kbuild b/include/linux/netfilter/Kbuild
index 48767cd1645..0d8694b7cf2 100644
--- a/include/linux/netfilter/Kbuild
+++ b/include/linux/netfilter/Kbuild
@@ -40,6 +40,8 @@ header-y += xt_owner.h
header-y += xt_pkttype.h
header-y += xt_quota.h
header-y += xt_rateest.h
+header-y += xt_policy.h
+header-y += xt_quota.h
header-y += xt_realm.h
header-y += xt_recent.h
header-y += xt_sctp.h
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index f149dd10908..4eb467910a4 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -2321,6 +2321,7 @@
#define PCI_VENDOR_ID_JMICRON 0x197B
#define PCI_DEVICE_ID_JMICRON_JMB360 0x2360
#define PCI_DEVICE_ID_JMICRON_JMB361 0x2361
+#define PCI_DEVICE_ID_JMICRON_JMB362 0x2362
#define PCI_DEVICE_ID_JMICRON_JMB363 0x2363
#define PCI_DEVICE_ID_JMICRON_JMB365 0x2365
#define PCI_DEVICE_ID_JMICRON_JMB366 0x2366
diff --git a/include/linux/resource.h b/include/linux/resource.h
index f1e914eefea..d2aef9a9ebe 100644
--- a/include/linux/resource.h
+++ b/include/linux/resource.h
@@ -53,8 +53,11 @@ struct rlimit {
/*
* Limit the stack by to some sane default: root can always
* increase this limit if needed.. 8MB seems reasonable.
+ *
+ * (2MB more to cover randomization effects.)
*/
-#define _STK_LIM (8*1024*1024)
+#define _STK_LIM (10*1024*1024)
+#define EXEC_STACK_BIAS (2*1024*1024)
/*
* GPG2 wants 64kB of mlocked memory, to make sure pass phrases
diff --git a/include/linux/sched.h b/include/linux/sched.h
index f118809c953..afaa1732bca 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -101,6 +101,11 @@ struct bio_list;
struct fs_struct;
struct perf_event_context;
+#ifdef CONFIG_X86_32
+extern int exec_shield;
+#endif
+extern int print_fatal_signals;
+
/*
* List of flags we want to share for kernel threads,
* if only because they are not used by them anyway.
@@ -394,6 +399,10 @@ extern void arch_pick_mmap_layout(struct mm_struct *mm);
extern unsigned long
arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
unsigned long, unsigned long);
+
+extern unsigned long
+arch_get_unmapped_exec_area(struct file *, unsigned long, unsigned long,
+ unsigned long, unsigned long);
extern unsigned long
arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr,
unsigned long len, unsigned long pgoff,
diff --git a/include/linux/security.h b/include/linux/security.h
index 0c881917046..edc137ff41f 100644
--- a/include/linux/security.h
+++ b/include/linux/security.h
@@ -67,6 +67,7 @@ extern int cap_inode_setxattr(struct dentry *dentry, const char *name,
extern int cap_inode_removexattr(struct dentry *dentry, const char *name);
extern int cap_inode_need_killpriv(struct dentry *dentry);
extern int cap_inode_killpriv(struct dentry *dentry);
+extern int cap_inode_follow_link(struct dentry *dentry, struct nameidata *nd);
extern int cap_file_mmap(struct file *file, unsigned long reqprot,
unsigned long prot, unsigned long flags,
unsigned long addr, unsigned long addr_only);
@@ -78,6 +79,10 @@ extern int cap_task_setioprio(struct task_struct *p, int ioprio);
extern int cap_task_setnice(struct task_struct *p, int nice);
extern int cap_syslog(int type, bool from_file);
extern int cap_vm_enough_memory(struct mm_struct *mm, long pages);
+#ifdef CONFIG_SECURITY_PATH
+extern int cap_path_link(struct dentry *old_dentry, struct path *new_dir,
+ struct dentry *new_dentry);
+#endif
struct msghdr;
struct sk_buff;
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index bf243fc5495..f89e7fd59a4 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -380,7 +380,10 @@ struct sk_buff {
kmemcheck_bitfield_begin(flags2);
__u16 queue_mapping:16;
#ifdef CONFIG_IPV6_NDISC_NODETYPE
- __u8 ndisc_nodetype:2;
+ __u8 ndisc_nodetype:2,
+ deliver_no_wcard:1;
+#else
+ __u8 deliver_no_wcard:1;
#endif
kmemcheck_bitfield_end(flags2);
diff --git a/include/linux/splice.h b/include/linux/splice.h
index 997c3b4c212..5ae0b8542a8 100644
--- a/include/linux/splice.h
+++ b/include/linux/splice.h
@@ -82,6 +82,12 @@ extern ssize_t splice_to_pipe(struct pipe_inode_info *,
extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *,
splice_direct_actor *);
+extern long do_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ loff_t *ppos, size_t len, unsigned int flags);
+extern long do_splice_to(struct file *in, loff_t *ppos,
+ struct pipe_inode_info *pipe, size_t len,
+ unsigned int flags);
+
/*
* for dynamic pipe sizing
*/
diff --git a/include/linux/swap.h b/include/linux/swap.h
index ff4acea9bbd..91f95f3091e 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -184,6 +184,7 @@ struct swap_info_struct {
struct block_device *bdev; /* swap device or bdev of swap file */
struct file *swap_file; /* seldom referenced */
unsigned int old_block_size; /* seldom referenced */
+ void (*notify_swap_entry_free_fn) (unsigned long);
};
struct swap_list_t {
@@ -332,6 +333,7 @@ extern sector_t swapdev_block(int, pgoff_t);
extern int reuse_swap_page(struct page *);
extern int try_to_free_swap(struct page *);
struct backing_dev_info;
+extern void set_notify_swap_entry_free(unsigned, void (*) (unsigned long));
/* linux/mm/thrash.c */
extern struct mm_struct *swap_token_mm;
diff --git a/include/linux/writeback.h b/include/linux/writeback.h
index f64134653a8..d63ef8f9609 100644
--- a/include/linux/writeback.h
+++ b/include/linux/writeback.h
@@ -56,15 +56,6 @@ struct writeback_control {
unsigned for_reclaim:1; /* Invoked from the page allocator */
unsigned range_cyclic:1; /* range_start is cyclic */
unsigned more_io:1; /* more io to be dispatched */
- /*
- * write_cache_pages() won't update wbc->nr_to_write and
- * mapping->writeback_index if no_nrwrite_index_update
- * is set. write_cache_pages() may write more than we
- * requested and we want to make sure nr_to_write and
- * writeback_index are updated in a consistent manner
- * so we use a single control to update them
- */
- unsigned no_nrwrite_index_update:1;
};
/*
diff --git a/include/scsi/Kbuild b/include/scsi/Kbuild
deleted file mode 100644
index f2b94918994..00000000000
--- a/include/scsi/Kbuild
+++ /dev/null
@@ -1,4 +0,0 @@
-header-y += scsi_netlink.h
-header-y += scsi_netlink_fc.h
-header-y += scsi_bsg_fc.h
-header-y += fc/
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h
index f5b1ba90e95..f3865c7b416 100644
--- a/include/trace/events/ext4.h
+++ b/include/trace/events/ext4.h
@@ -306,7 +306,6 @@ TRACE_EVENT(ext4_da_writepages_result,
__field( int, pages_written )
__field( long, pages_skipped )
__field( char, more_io )
- __field( char, no_nrwrite_index_update )
__field( pgoff_t, writeback_index )
),
@@ -317,16 +316,14 @@ TRACE_EVENT(ext4_da_writepages_result,
__entry->pages_written = pages_written;
__entry->pages_skipped = wbc->pages_skipped;
__entry->more_io = wbc->more_io;
- __entry->no_nrwrite_index_update = wbc->no_nrwrite_index_update;
__entry->writeback_index = inode->i_mapping->writeback_index;
),
- TP_printk("dev %s ino %lu ret %d pages_written %d pages_skipped %ld more_io %d no_nrwrite_index_update %d writeback_index %lu",
+ TP_printk("dev %s ino %lu ret %d pages_written %d pages_skipped %ld more_io %d writeback_index %lu",
jbd2_dev_to_name(__entry->dev),
(unsigned long) __entry->ino, __entry->ret,
__entry->pages_written, __entry->pages_skipped,
__entry->more_io,
- __entry->no_nrwrite_index_update,
(unsigned long) __entry->writeback_index)
);
diff --git a/include/trace/events/fs.h b/include/trace/events/fs.h
new file mode 100644
index 00000000000..2cbb8fed1ae
--- /dev/null
+++ b/include/trace/events/fs.h
@@ -0,0 +1,53 @@
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM fs
+
+#if !defined(_TRACE_FS_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_FS_H
+
+#include <linux/fs.h>
+#include <linux/tracepoint.h>
+
+TRACE_EVENT(do_sys_open,
+
+ TP_PROTO(char *filename, int flags, int mode),
+
+ TP_ARGS(filename, flags, mode),
+
+ TP_STRUCT__entry(
+ __string( filename, filename )
+ __field( int, flags )
+ __field( int, mode )
+ ),
+
+ TP_fast_assign(
+ __assign_str(filename, filename);
+ __entry->flags = flags;
+ __entry->mode = mode;
+ ),
+
+ TP_printk("\"%s\" %x %o",
+ __get_str(filename), __entry->flags, __entry->mode)
+);
+
+TRACE_EVENT(open_exec,
+
+ TP_PROTO(char *filename),
+
+ TP_ARGS(filename),
+
+ TP_STRUCT__entry(
+ __string( filename, filename )
+ ),
+
+ TP_fast_assign(
+ __assign_str(filename, filename);
+ ),
+
+ TP_printk("\"%s\"",
+ __get_str(filename))
+);
+
+#endif /* _TRACE_FS_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/include/trace/events/signal.h b/include/trace/events/signal.h
index 814566c99d2..17df43464df 100644
--- a/include/trace/events/signal.h
+++ b/include/trace/events/signal.h
@@ -10,7 +10,8 @@
#define TP_STORE_SIGINFO(__entry, info) \
do { \
- if (info == SEND_SIG_NOINFO) { \
+ if (info == SEND_SIG_NOINFO || \
+ info == SEND_SIG_FORCED) { \
__entry->errno = 0; \
__entry->code = SI_USER; \
} else if (info == SEND_SIG_PRIV) { \
diff --git a/include/trace/events/vfs.h b/include/trace/events/vfs.h
new file mode 100644
index 00000000000..3c170f893cc
--- /dev/null
+++ b/include/trace/events/vfs.h
@@ -0,0 +1,53 @@
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM vfs
+
+#if !defined(_TRACE_VFS_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _TRACE_VFS_H
+
+/*
+ * Tracepoint for dirtying an inode:
+ */
+TRACE_EVENT(dirty_inode,
+
+ TP_PROTO(struct inode *inode, struct task_struct *task),
+
+ TP_ARGS(inode, task),
+
+ TP_STRUCT__entry(
+ __array( char, comm, TASK_COMM_LEN )
+ __field( pid_t, pid )
+ __array( char, dev, 16 )
+ __array( char, file, 32 )
+ ),
+
+ TP_fast_assign(
+ if (inode->i_ino || strcmp(inode->i_sb->s_id, "bdev")) {
+ struct dentry *dentry;
+ const char *name = "?";
+
+ dentry = d_find_alias(inode);
+ if (dentry) {
+ spin_lock(&dentry->d_lock);
+ name = (const char *) dentry->d_name.name;
+ }
+
+ memcpy(__entry->comm, task->comm, TASK_COMM_LEN);
+ __entry->pid = task->pid;
+ strlcpy(__entry->file, name, 32);
+ strlcpy(__entry->dev, inode->i_sb->s_id, 16);
+
+ if (dentry) {
+ spin_unlock(&dentry->d_lock);
+ dput(dentry);
+ }
+ }
+ ),
+
+ TP_printk("task=%i (%s) file=%s dev=%s",
+ __entry->pid, __entry->comm, __entry->file, __entry->dev)
+);
+
+#endif /* _TRACE_VFS_H */
+
+/* This part must be outside protection */
+#include <trace/define_trace.h>
diff --git a/init/Kconfig b/init/Kconfig
index 5cff9a980c3..ce68380c697 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -184,6 +184,15 @@ config KERNEL_LZO
endchoice
+config VERSION_SIGNATURE
+ string "Arbitrary version signature"
+ help
+ This string will be created in a file, /proc/version_signature. It
+ is useful in determining arbitrary data about your kernel. For instance,
+ if you have several kernels of the same version, but need to keep track
+ of a revision of the same kernel, but not affect it's ability to load
+ compatible modules, this is the easiest way to do that.
+
config SWAP
bool "Support for paging of anonymous memory (swap)"
depends on MMU && BLOCK
diff --git a/init/initramfs.c b/init/initramfs.c
index 4b9c2020509..8fed7ea0128 100644
--- a/init/initramfs.c
+++ b/init/initramfs.c
@@ -8,6 +8,7 @@
#include <linux/dirent.h>
#include <linux/syscalls.h>
#include <linux/utime.h>
+#include <linux/async.h>
static __initdata char *message;
static void __init error(char *x)
@@ -568,7 +569,9 @@ static void __init clean_rootfs(void)
}
#endif
-static int __init populate_rootfs(void)
+LIST_HEAD(populate_rootfs_domain);
+
+static void __init async_populate_rootfs(void)
{
char *err = unpack_to_rootfs(__initramfs_start,
__initramfs_end - __initramfs_start);
@@ -582,7 +585,7 @@ static int __init populate_rootfs(void)
initrd_end - initrd_start);
if (!err) {
free_initrd();
- return 0;
+ return;
} else {
clean_rootfs();
unpack_to_rootfs(__initramfs_start,
@@ -606,6 +609,25 @@ static int __init populate_rootfs(void)
free_initrd();
#endif
}
- return 0;
+ return;
}
+
+static int __initdata rootfs_populated;
+
+static int __init populate_rootfs_early(void)
+{
+ if (num_online_cpus() > 1) {
+ rootfs_populated = 1;
+ async_schedule_domain(async_populate_rootfs, NULL,
+ &populate_rootfs_domain);
+ }
+}
+static int __init populate_rootfs(void)
+{
+ if (!rootfs_populated)
+ async_schedule_domain(async_populate_rootfs, NULL,
+ &populate_rootfs_domain);
+}
+
+earlyrootfs_initcall(populate_rootfs_early);
rootfs_initcall(populate_rootfs);
diff --git a/init/main.c b/init/main.c
index 3bdb152f412..de016bcd33e 100644
--- a/init/main.c
+++ b/init/main.c
@@ -249,7 +249,7 @@ static int __init debug_kernel(char *str)
static int __init quiet_kernel(char *str)
{
- console_loglevel = 4;
+ console_loglevel = 2;
return 0;
}
@@ -894,6 +894,12 @@ static int __init kernel_init(void * unused)
(void) sys_dup(0);
(void) sys_dup(0);
/*
+ * We need to ensure that the filesystem is ready by this point, wait for
+ * async_populate_rootfs to complete.
+ */
+ async_synchronize_full_domain(&populate_rootfs_domain);
+
+ /*
* check if there is an early userspace init. If yes, let it do all
* the work
*/
diff --git a/init/version.c b/init/version.c
index adff586401a..79fb8c2c558 100644
--- a/init/version.c
+++ b/init/version.c
@@ -39,7 +39,11 @@ EXPORT_SYMBOL_GPL(init_uts_ns);
/* FIXED STRINGS! Don't touch! */
const char linux_banner[] =
"Linux version " UTS_RELEASE " (" LINUX_COMPILE_BY "@"
- LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION "\n";
+ LINUX_COMPILE_HOST ") (" LINUX_COMPILER ") " UTS_VERSION
+#ifdef CONFIG_VERSION_SIGNATURE
+ " (" CONFIG_VERSION_SIGNATURE ")"
+#endif
+ "\n";
const char linux_proc_banner[] =
"%s version %s"
diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index 31d6afe9259..ff86c558af4 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -1507,6 +1507,9 @@ do { \
divisor = nsec * frequency;
}
+ if (!divisor)
+ return dividend;
+
return div64_u64(dividend, divisor);
}
@@ -1529,7 +1532,7 @@ static int perf_event_start(struct perf_event *event)
static void perf_adjust_period(struct perf_event *event, u64 nsec, u64 count)
{
struct hw_perf_event *hwc = &event->hw;
- u64 period, sample_period;
+ s64 period, sample_period;
s64 delta;
period = perf_calculate_period(event, nsec, count);
diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
index 5c36ea9d55d..e829331aac7 100644
--- a/kernel/power/Kconfig
+++ b/kernel/power/Kconfig
@@ -133,6 +133,21 @@ config SUSPEND_FREEZER
config HIBERNATION_NVS
bool
+config PM_DISABLE_CONSOLE
+ bool "Disable Power Management messing with the active console"
+ depends on PM
+ default n
+ ---help---
+ By default, PM will take over the active console (generally, this means
+ switching to the console when suspending from X). This can at times cause
+ problems, especially if userspace suspend scripts try to do things with
+ the console before or after suspending (e.g. calling vbestate).
+
+ To work around this, enable this option so that PM will not handle the
+ console.
+
+ If unsure, say N.
+
config HIBERNATION
bool "Hibernation (aka 'suspend to disk')"
depends on PM && SWAP && ARCH_HIBERNATION_POSSIBLE
diff --git a/kernel/power/console.c b/kernel/power/console.c
index 218e5af9015..5b254bae12a 100644
--- a/kernel/power/console.c
+++ b/kernel/power/console.c
@@ -17,19 +17,23 @@ static int orig_fgconsole, orig_kmsg;
int pm_prepare_console(void)
{
+#ifndef CONFIG_PM_DISABLE_CONSOLE
orig_fgconsole = vt_move_to_console(SUSPEND_CONSOLE, 1);
if (orig_fgconsole < 0)
return 1;
orig_kmsg = vt_kmsg_redirect(SUSPEND_CONSOLE);
+#endif
return 0;
}
void pm_restore_console(void)
{
+#ifndef CONFIG_PM_DISABLE_CONSOLE
if (orig_fgconsole >= 0) {
vt_move_to_console(orig_fgconsole, 0);
vt_kmsg_redirect(orig_kmsg);
}
+#endif
}
#endif
diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index 74a3d693c19..b2aec95935a 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -23,6 +23,8 @@
#include <linux/uaccess.h>
#include <linux/regset.h>
+/* sysctl for defining allowed scope of PTRACE */
+int ptrace_scope = 1;
/*
* ptrace a task: make the debugger its new parent and
@@ -127,6 +129,10 @@ int __ptrace_may_access(struct task_struct *task, unsigned int mode)
* ptrace_attach denies several cases that /proc allows
* because setting up the necessary parent/child relationship
* or halting the specified task is impossible.
+ *
+ * PTRACE scope can be define as:
+ * 0 - classic: CAP_SYS_PTRACE and same uid can ptrace non-setuid
+ * 1 - restricted: as above, but only children of ptracing process
*/
int dumpable = 0;
/* Don't let security modules deny introspection */
@@ -150,6 +156,25 @@ int __ptrace_may_access(struct task_struct *task, unsigned int mode)
dumpable = get_dumpable(task->mm);
if (!dumpable && !capable(CAP_SYS_PTRACE))
return -EPERM;
+ if (mode == PTRACE_MODE_ATTACH && ptrace_scope &&
+ !capable(CAP_SYS_PTRACE)) {
+ /* require ptrace target be a child of ptracer on attach */
+ struct task_struct *tmp = task;
+ struct task_struct *curtemp = current;
+ int rc = 0;
+
+ read_lock(&tasklist_lock);
+ while (tmp->pid > 0) {
+ if (tmp == curtemp)
+ break;
+ tmp = tmp->parent;
+ }
+ if (tmp->pid == 0)
+ rc = -EPERM;
+ read_unlock(&tasklist_lock);
+ if (rc)
+ return rc;
+ }
return security_ptrace_access_check(task, mode);
}
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index d24f761f487..c82e686d980 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -86,8 +86,11 @@ extern int sysctl_panic_on_oom;
extern int sysctl_oom_kill_allocating_task;
extern int sysctl_oom_dump_tasks;
extern int max_threads;
+extern int ptrace_scope;
extern int core_uses_pid;
extern int suid_dumpable;
+extern int weak_sticky_symlinks;
+extern int weak_nonaccess_hardlinks;
extern char core_pattern[];
extern unsigned int core_pipe_limit;
extern int pid_max;
@@ -101,6 +104,24 @@ extern int sysctl_nr_open_min, sysctl_nr_open_max;
#ifndef CONFIG_MMU
extern int sysctl_nr_trim_pages;
#endif
+
+#ifdef CONFIG_X86_32
+int exec_shield = (1<<0);
+/* exec_shield is a bitmask:
+ * 0: off; vdso at STACK_TOP, 1 page below TASK_SIZE
+ * (1<<0) 1: on [also on if !=0]
+ * (1<<1) 2: force noexecstack regardless of PT_GNU_STACK
+ */
+
+static int __init setup_exec_shield(char *str)
+{
+ get_option(&str, &exec_shield);
+
+ return 1;
+}
+__setup("exec-shield=", setup_exec_shield);
+#endif
+
#ifdef CONFIG_BLOCK
extern int blk_iopoll_enabled;
#endif
@@ -408,6 +429,15 @@ static struct ctl_table kern_table[] = {
.proc_handler = proc_dointvec,
},
{
+ .procname = "ptrace_scope",
+ .data = &ptrace_scope,
+ .maxlen = sizeof(int),
+ .mode = 0644,
+ .proc_handler = proc_dointvec_minmax,
+ .extra1 = &zero,
+ .extra2 = &one,
+ },
+ {
.procname = "core_uses_pid",
.data = &core_uses_pid,
.maxlen = sizeof(int),
@@ -428,6 +458,16 @@ static struct ctl_table kern_table[] = {
.mode = 0644,
.proc_handler = proc_dointvec,
},
+#ifdef CONFIG_X86_32
+ {
+ .procname = "exec-shield",
+ .data = &exec_shield,
+ .maxlen = sizeof(int),
+ .mode = 0644,
+ .proc_handler = &proc_dointvec,
+ },
+#endif
+
#ifdef CONFIG_PROC_SYSCTL
{
.procname = "tainted",
@@ -1463,6 +1503,22 @@ static struct ctl_table fs_table[] = {
.extra1 = &zero,
.extra2 = &two,
},
+ {
+ .procname = "weak-sticky-symlinks",
+ .data = &weak_sticky_symlinks,
+ .maxlen = sizeof(int),
+ .mode = 0644,
+ .proc_handler = &proc_dointvec,
+ },
+#ifdef CONFIG_SECURITY_PATH
+ {
+ .procname = "weak-nonaccess-hardlinks",
+ .data = &weak_nonaccess_hardlinks,
+ .maxlen = sizeof(int),
+ .mode = 0644,
+ .proc_handler = &proc_dointvec,
+ },
+#endif
#if defined(CONFIG_BINFMT_MISC) || defined(CONFIG_BINFMT_MISC_MODULE)
{
.procname = "binfmt_misc",
diff --git a/mm/mmap.c b/mm/mmap.c
index 456ec6f2788..24d7e45e078 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -28,6 +28,7 @@
#include <linux/rmap.h>
#include <linux/mmu_notifier.h>
#include <linux/perf_event.h>
+#include <linux/random.h>
#include <asm/uaccess.h>
#include <asm/cacheflush.h>
@@ -44,6 +45,18 @@
#define arch_rebalance_pgtables(addr, len) (addr)
#endif
+/* No sane architecture will #define these to anything else */
+#ifndef arch_add_exec_range
+#define arch_add_exec_range(mm, limit) do { ; } while (0)
+#endif
+#ifndef arch_flush_exec_range
+#define arch_flush_exec_range(mm) do { ; } while (0)
+#endif
+#ifndef arch_remove_exec_range
+#define arch_remove_exec_range(mm, limit) do { ; } while (0)
+#endif
+
+
static void unmap_region(struct mm_struct *mm,
struct vm_area_struct *vma, struct vm_area_struct *prev,
unsigned long start, unsigned long end);
@@ -388,6 +401,8 @@ static inline void
__vma_link_list(struct mm_struct *mm, struct vm_area_struct *vma,
struct vm_area_struct *prev, struct rb_node *rb_parent)
{
+ if (vma->vm_flags & VM_EXEC)
+ arch_add_exec_range(mm, vma->vm_end);
if (prev) {
vma->vm_next = prev->vm_next;
prev->vm_next = vma;
@@ -489,6 +504,8 @@ __vma_unlink(struct mm_struct *mm, struct vm_area_struct *vma,
rb_erase(&vma->vm_rb, &mm->mm_rb);
if (mm->mmap_cache == vma)
mm->mmap_cache = prev;
+ if (vma->vm_flags & VM_EXEC)
+ arch_remove_exec_range(mm, vma->vm_end);
}
/*
@@ -790,6 +807,8 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
} else /* cases 2, 5, 7 */
err = vma_adjust(prev, prev->vm_start,
end, prev->vm_pgoff, NULL);
+ if (prev->vm_flags & VM_EXEC)
+ arch_add_exec_range(mm, prev->vm_end);
if (err)
return NULL;
return prev;
@@ -982,7 +1001,8 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
/* Obtain the address to map to. we verify (or select) it and ensure
* that it represents a valid section of the address space.
*/
- addr = get_unmapped_area(file, addr, len, pgoff, flags);
+ addr = get_unmapped_area_prot(file, addr, len, pgoff, flags,
+ prot & PROT_EXEC);
if (addr & ~PAGE_MASK)
return addr;
@@ -1534,8 +1554,8 @@ void arch_unmap_area_topdown(struct mm_struct *mm, unsigned long addr)
}
unsigned long
-get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,
- unsigned long pgoff, unsigned long flags)
+get_unmapped_area_prot(struct file *file, unsigned long addr, unsigned long len,
+ unsigned long pgoff, unsigned long flags, int exec)
{
unsigned long (*get_area)(struct file *, unsigned long,
unsigned long, unsigned long, unsigned long);
@@ -1548,7 +1568,11 @@ get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,
if (len > TASK_SIZE)
return -ENOMEM;
- get_area = current->mm->get_unmapped_area;
+ if (exec && current->mm->get_unmapped_exec_area)
+ get_area = current->mm->get_unmapped_exec_area;
+ else
+ get_area = current->mm->get_unmapped_area;
+
if (file && file->f_op && file->f_op->get_unmapped_area)
get_area = file->f_op->get_unmapped_area;
addr = get_area(file, addr, len, pgoff, flags);
@@ -1562,8 +1586,81 @@ get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,
return arch_rebalance_pgtables(addr, len);
}
+EXPORT_SYMBOL(get_unmapped_area_prot);
+
+#define SHLIB_BASE 0x00110000
+
+unsigned long
+arch_get_unmapped_exec_area(struct file *filp, unsigned long addr0,
+ unsigned long len0, unsigned long pgoff, unsigned long flags)
+{
+ unsigned long addr = addr0, len = len0;
+ struct mm_struct *mm = current->mm;
+ struct vm_area_struct *vma;
+ unsigned long tmp;
+
+ if (len > TASK_SIZE)
+ return -ENOMEM;
+
+ if (flags & MAP_FIXED)
+ return addr;
+
+ if (!addr) {
+ addr = SHLIB_BASE;
+ if ((current->flags & PF_RANDOMIZE) && randomize_va_space)
+ addr = randomize_range(addr, 0x01000000, len);
+ }
+
+ if (addr) {
+ addr = PAGE_ALIGN(addr);
+ vma = find_vma(mm, addr);
+ if (TASK_SIZE - len >= addr &&
+ (!vma || addr + len <= vma->vm_start))
+ return addr;
+ }
+
+ addr = SHLIB_BASE;
+ for (vma = find_vma(mm, addr); ; vma = vma->vm_next) {
+ /* At this point: (!vma || addr < vma->vm_end). */
+ if (TASK_SIZE - len < addr)
+ return -ENOMEM;
+
+ if (!vma || addr + len <= vma->vm_start) {
+ /*
+ * Must not let a PROT_EXEC mapping get into the
+ * brk area:
+ */
+ if (addr + len > mm->brk)
+ goto failed;
+
+ /*
+ * Up until the brk area we randomize addresses
+ * as much as possible:
+ */
+ if ((current->flags & PF_RANDOMIZE) &&
+ randomize_va_space &&
+ addr >= 0x01000000) {
+ tmp = randomize_range(0x01000000,
+ PAGE_ALIGN(max(mm->start_brk,
+ (unsigned long)0x08000000)), len);
+ vma = find_vma(mm, tmp);
+ if (TASK_SIZE - len >= tmp &&
+ (!vma || tmp + len <= vma->vm_start))
+ return tmp;
+ }
+ /*
+ * Ok, randomization didnt work out - return
+ * the result of the linear search:
+ */
+ return addr;
+ }
+ addr = vma->vm_end;
+ }
+
+failed:
+ return current->mm->get_unmapped_area(filp, addr0, len0, pgoff, flags);
+}
-EXPORT_SYMBOL(get_unmapped_area);
/* Look up the first VMA which satisfies addr < vm_end, NULL if none. */
struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr)
@@ -1638,6 +1735,16 @@ out:
return prev ? prev->vm_next : vma;
}
+static int over_stack_limit(unsigned long sz)
+{
+ struct rlimit *rlim = current->signal->rlim;
+
+ if (sz < EXEC_STACK_BIAS)
+ return 0;
+ return (sz - EXEC_STACK_BIAS) >
+ ACCESS_ONCE(rlim[RLIMIT_STACK].rlim_cur);
+}
+
/*
* Verify that the stack growth is acceptable and
* update accounting. This is shared with both the
@@ -1654,7 +1761,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
return -ENOMEM;
/* Stack limit test */
- if (size > ACCESS_ONCE(rlim[RLIMIT_STACK].rlim_cur))
+ if (over_stack_limit(size))
return -ENOMEM;
/* mlock limit tests */
@@ -1966,10 +2073,14 @@ static int __split_vma(struct mm_struct * mm, struct vm_area_struct * vma,
if (new->vm_ops && new->vm_ops->open)
new->vm_ops->open(new);
- if (new_below)
+ if (new_below) {
+ unsigned long old_end = vma->vm_end;
+
err = vma_adjust(vma, addr, vma->vm_end, vma->vm_pgoff +
((addr - new->vm_start) >> PAGE_SHIFT), new);
- else
+ if (vma->vm_flags & VM_EXEC)
+ arch_remove_exec_range(mm, old_end);
+ } else
err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
/* Success. */
@@ -2254,6 +2365,7 @@ void exit_mmap(struct mm_struct *mm)
free_pgtables(tlb, vma, FIRST_USER_ADDRESS, 0);
tlb_finish_mmu(tlb, 0, end);
+ arch_flush_exec_range(mm);
/*
* Walk the list again, actually closing and freeing it,
diff --git a/mm/mprotect.c b/mm/mprotect.c
index 2d1bf7cf885..4ea460ed538 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -25,9 +25,14 @@
#include <linux/perf_event.h>
#include <asm/uaccess.h>
#include <asm/pgtable.h>
+#include <asm/pgalloc.h>
#include <asm/cacheflush.h>
#include <asm/tlbflush.h>
+#ifndef arch_remove_exec_range
+#define arch_remove_exec_range(mm, limit) do { ; } while (0)
+#endif
+
#ifndef pgprot_modify
static inline pgprot_t pgprot_modify(pgprot_t oldprot, pgprot_t newprot)
{
@@ -138,7 +143,7 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
struct mm_struct *mm = vma->vm_mm;
unsigned long oldflags = vma->vm_flags;
long nrpages = (end - start) >> PAGE_SHIFT;
- unsigned long charged = 0;
+ unsigned long charged = 0, old_end = vma->vm_end;
pgoff_t pgoff;
int error;
int dirty_accountable = 0;
@@ -203,6 +208,9 @@ success:
dirty_accountable = 1;
}
+ if (oldflags & VM_EXEC)
+ arch_remove_exec_range(current->mm, old_end);
+
mmu_notifier_invalidate_range_start(mm, start, end);
if (is_vm_hugetlb_page(vma))
hugetlb_change_protection(vma, start, end, vma->vm_page_prot);
diff --git a/mm/mremap.c b/mm/mremap.c
index cde56ee51ef..4c65678e7a6 100644
--- a/mm/mremap.c
+++ b/mm/mremap.c
@@ -487,10 +487,10 @@ unsigned long do_mremap(unsigned long addr,
if (vma->vm_flags & VM_MAYSHARE)
map_flags |= MAP_SHARED;
- new_addr = get_unmapped_area(vma->vm_file, 0, new_len,
+ new_addr = get_unmapped_area_prot(vma->vm_file, 0, new_len,
vma->vm_pgoff +
((addr - vma->vm_start) >> PAGE_SHIFT),
- map_flags);
+ map_flags, vma->vm_flags & VM_EXEC);
if (new_addr & ~PAGE_MASK) {
ret = new_addr;
goto out;
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 5fa63bdf52e..bbd396ac954 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -835,7 +835,6 @@ int write_cache_pages(struct address_space *mapping,
pgoff_t done_index;
int cycled;
int range_whole = 0;
- long nr_to_write = wbc->nr_to_write;
pagevec_init(&pvec, 0);
if (wbc->range_cyclic) {
@@ -852,7 +851,22 @@ int write_cache_pages(struct address_space *mapping,
if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX)
range_whole = 1;
cycled = 1; /* ignore range_cyclic tests */
+
+ /*
+ * If this is a data integrity sync, cap the writeback to the
+ * current end of file. Any extension to the file that occurs
+ * after this is a new write and we don't need to write those
+ * pages out to fulfil our data integrity requirements. If we
+ * try to write them out, we can get stuck in this scan until
+ * the concurrent writer stops adding dirty pages and extending
+ * EOF.
+ */
+ if (wbc->sync_mode == WB_SYNC_ALL &&
+ wbc->range_end == LLONG_MAX) {
+ end = i_size_read(mapping->host) >> PAGE_CACHE_SHIFT;
+ }
}
+
retry:
done_index = index;
while (!done && (index <= end)) {
@@ -935,11 +949,10 @@ continue_unlock:
done = 1;
break;
}
- }
+ }
- if (nr_to_write > 0) {
- nr_to_write--;
- if (nr_to_write == 0 &&
+ if (wbc->nr_to_write > 0) {
+ if (--wbc->nr_to_write == 0 &&
wbc->sync_mode == WB_SYNC_NONE) {
/*
* We stop writing back only if we are
@@ -970,11 +983,8 @@ continue_unlock:
end = writeback_index - 1;
goto retry;
}
- if (!wbc->no_nrwrite_index_update) {
- if (wbc->range_cyclic || (range_whole && nr_to_write > 0))
- mapping->writeback_index = done_index;
- wbc->nr_to_write = nr_to_write;
- }
+ if (wbc->range_cyclic || (range_whole && wbc->nr_to_write > 0))
+ mapping->writeback_index = done_index;
return ret;
}
diff --git a/mm/swapfile.c b/mm/swapfile.c
index 03aa2d55f1a..a8dcb0d0ef8 100644
--- a/mm/swapfile.c
+++ b/mm/swapfile.c
@@ -592,6 +592,12 @@ static unsigned char swap_entry_free(struct swap_info_struct *p,
disk->fops->swap_slot_free_notify(p->bdev, offset);
}
+ if (!swap_count(count)) {
+ mem_cgroup_uncharge_swap(entry);
+ if (p->notify_swap_entry_free_fn)
+ p->notify_swap_entry_free_fn(offset);
+ }
+
return usage;
}
@@ -2229,6 +2235,23 @@ int swapcache_prepare(swp_entry_t entry)
}
/*
+ * Sets callback for event when swap_map[offset] == 0
+ * i.e. page at this swap offset is not longer used.
+ *
+ * type: identifies swap file
+ * fn: callback function
+ */
+void set_notify_swap_entry_free(unsigned type, void (*fn) (unsigned long))
+{
+ struct swap_info_struct *sis;
+ sis = swap_info[type];
+ BUG_ON(!sis);
+ sis->notify_swap_entry_free_fn = fn;
+ return;
+}
+EXPORT_SYMBOL(set_notify_swap_entry_free);
+
+/*
* swap_lock prevents swap_map being freed. Don't grab an extra
* reference on the swaphandle, it doesn't matter if it becomes unused.
*/
diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c
index bd537fc1025..50f58f5f1c3 100644
--- a/net/8021q/vlan_core.c
+++ b/net/8021q/vlan_core.c
@@ -12,7 +12,7 @@ int __vlan_hwaccel_rx(struct sk_buff *skb, struct vlan_group *grp,
return NET_RX_DROP;
if (skb_bond_should_drop(skb, ACCESS_ONCE(skb->dev->master)))
- goto drop;
+ skb->deliver_no_wcard = 1;
skb->skb_iif = skb->dev->ifindex;
__vlan_hwaccel_put_tag(skb, vlan_tci);
@@ -84,7 +84,7 @@ vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp,
struct sk_buff *p;
if (skb_bond_should_drop(skb, ACCESS_ONCE(skb->dev->master)))
- goto drop;
+ skb->deliver_no_wcard = 1;
skb->skb_iif = skb->dev->ifindex;
__vlan_hwaccel_put_tag(skb, vlan_tci);
diff --git a/net/caif/cfrfml.c b/net/caif/cfrfml.c
index cd2830fec93..fd27b172fb5 100644
--- a/net/caif/cfrfml.c
+++ b/net/caif/cfrfml.c
@@ -83,7 +83,7 @@ static int cfrfml_transmit(struct cflayer *layr, struct cfpkt *pkt)
if (!cfsrvl_ready(service, &ret))
return ret;
- if (!cfpkt_getlen(pkt) > CAIF_MAX_PAYLOAD_SIZE) {
+ if (cfpkt_getlen(pkt) > CAIF_MAX_PAYLOAD_SIZE) {
pr_err("CAIF: %s():Packet too large - size=%d\n",
__func__, cfpkt_getlen(pkt));
return -EOVERFLOW;
diff --git a/net/caif/cfveil.c b/net/caif/cfveil.c
index 0fd827f4949..e04f7d964e8 100644
--- a/net/caif/cfveil.c
+++ b/net/caif/cfveil.c
@@ -84,7 +84,7 @@ static int cfvei_transmit(struct cflayer *layr, struct cfpkt *pkt)
return ret;
caif_assert(layr->dn != NULL);
caif_assert(layr->dn->transmit != NULL);
- if (!cfpkt_getlen(pkt) > CAIF_MAX_PAYLOAD_SIZE) {
+ if (cfpkt_getlen(pkt) > CAIF_MAX_PAYLOAD_SIZE) {
pr_warning("CAIF: %s(): Packet too large - size=%d\n",
__func__, cfpkt_getlen(pkt));
return -EOVERFLOW;
diff --git a/net/core/dev.c b/net/core/dev.c
index d03470f5260..2b3bf53bc68 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2253,11 +2253,9 @@ static int get_rps_cpu(struct net_device *dev, struct sk_buff *skb,
if (skb_rx_queue_recorded(skb)) {
u16 index = skb_get_rx_queue(skb);
if (unlikely(index >= dev->num_rx_queues)) {
- if (net_ratelimit()) {
- pr_warning("%s received packet on queue "
- "%u, but number of RX queues is %u\n",
- dev->name, index, dev->num_rx_queues);
- }
+ WARN_ONCE(dev->num_rx_queues > 1, "%s received packet "
+ "on queue %u, but number of RX queues is %u\n",
+ dev->name, index, dev->num_rx_queues);
goto done;
}
rxqueue = dev->_rx + index;
@@ -2812,13 +2810,24 @@ static int __netif_receive_skb(struct sk_buff *skb)
if (!skb->skb_iif)
skb->skb_iif = skb->dev->ifindex;
+ /*
+ * bonding note: skbs received on inactive slaves should only
+ * be delivered to pkt handlers that are exact matches. Also
+ * the deliver_no_wcard flag will be set. If packet handlers
+ * are sensitive to duplicate packets these skbs will need to
+ * be dropped at the handler. The vlan accel path may have
+ * already set the deliver_no_wcard flag.
+ */
null_or_orig = NULL;
orig_dev = skb->dev;
master = ACCESS_ONCE(orig_dev->master);
- if (master) {
- if (skb_bond_should_drop(skb, master))
+ if (skb->deliver_no_wcard)
+ null_or_orig = orig_dev;
+ else if (master) {
+ if (skb_bond_should_drop(skb, master)) {
+ skb->deliver_no_wcard = 1;
null_or_orig = orig_dev; /* deliver only exact match */
- else
+ } else
skb->dev = master;
}
diff --git a/net/core/gen_estimator.c b/net/core/gen_estimator.c
index cf8e70392fe..785e5276a30 100644
--- a/net/core/gen_estimator.c
+++ b/net/core/gen_estimator.c
@@ -107,6 +107,7 @@ static DEFINE_RWLOCK(est_lock);
/* Protects against soft lockup during large deletion */
static struct rb_root est_root = RB_ROOT;
+static DEFINE_SPINLOCK(est_tree_lock);
static void est_timer(unsigned long arg)
{
@@ -201,7 +202,6 @@ struct gen_estimator *gen_find_node(const struct gnet_stats_basic_packed *bstats
*
* Returns 0 on success or a negative error code.
*
- * NOTE: Called under rtnl_mutex
*/
int gen_new_estimator(struct gnet_stats_basic_packed *bstats,
struct gnet_stats_rate_est *rate_est,
@@ -232,6 +232,7 @@ int gen_new_estimator(struct gnet_stats_basic_packed *bstats,
est->last_packets = bstats->packets;
est->avpps = rate_est->pps<<10;
+ spin_lock(&est_tree_lock);
if (!elist[idx].timer.function) {
INIT_LIST_HEAD(&elist[idx].list);
setup_timer(&elist[idx].timer, est_timer, idx);
@@ -242,6 +243,7 @@ int gen_new_estimator(struct gnet_stats_basic_packed *bstats,
list_add_rcu(&est->list, &elist[idx].list);
gen_add_node(est);
+ spin_unlock(&est_tree_lock);
return 0;
}
@@ -261,13 +263,13 @@ static void __gen_kill_estimator(struct rcu_head *head)
*
* Removes the rate estimator specified by &bstats and &rate_est.
*
- * NOTE: Called under rtnl_mutex
*/
void gen_kill_estimator(struct gnet_stats_basic_packed *bstats,
struct gnet_stats_rate_est *rate_est)
{
struct gen_estimator *e;
+ spin_lock(&est_tree_lock);
while ((e = gen_find_node(bstats, rate_est))) {
rb_erase(&e->node, &est_root);
@@ -278,6 +280,7 @@ void gen_kill_estimator(struct gnet_stats_basic_packed *bstats,
list_del_rcu(&e->list);
call_rcu(&e->e_rcu, __gen_kill_estimator);
}
+ spin_unlock(&est_tree_lock);
}
EXPORT_SYMBOL(gen_kill_estimator);
@@ -312,8 +315,14 @@ EXPORT_SYMBOL(gen_replace_estimator);
bool gen_estimator_active(const struct gnet_stats_basic_packed *bstats,
const struct gnet_stats_rate_est *rate_est)
{
+ bool res;
+
ASSERT_RTNL();
- return gen_find_node(bstats, rate_est) != NULL;
+ spin_lock(&est_tree_lock);
+ res = gen_find_node(bstats, rate_est) != NULL;
+ spin_unlock(&est_tree_lock);
+
+ return res;
}
EXPORT_SYMBOL(gen_estimator_active);
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
index 2ad68da418d..1dacd7ba8db 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -2170,7 +2170,7 @@ static void spin(struct pktgen_dev *pkt_dev, ktime_t spin_until)
end_time = ktime_now();
pkt_dev->idle_acc += ktime_to_ns(ktime_sub(end_time, start_time));
- pkt_dev->next_tx = ktime_add_ns(end_time, pkt_dev->delay);
+ pkt_dev->next_tx = ktime_add_ns(spin_until, pkt_dev->delay);
}
static inline void set_pkt_overhead(struct pktgen_dev *pkt_dev)
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 9f07e749d7b..bcf2fa3e0dd 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -532,6 +532,7 @@ static void __copy_skb_header(struct sk_buff *new, const struct sk_buff *old)
new->ip_summed = old->ip_summed;
skb_copy_queue_mapping(new, old);
new->priority = old->priority;
+ new->deliver_no_wcard = old->deliver_no_wcard;
#if defined(CONFIG_IP_VS) || defined(CONFIG_IP_VS_MODULE)
new->ipvs_property = old->ipvs_property;
#endif
diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
index 856123fe32f..757f25eb9b4 100644
--- a/net/ipv4/ipmr.c
+++ b/net/ipv4/ipmr.c
@@ -267,8 +267,10 @@ static void __net_exit ipmr_rules_exit(struct net *net)
{
struct mr_table *mrt, *next;
- list_for_each_entry_safe(mrt, next, &net->ipv4.mr_tables, list)
+ list_for_each_entry_safe(mrt, next, &net->ipv4.mr_tables, list) {
+ list_del(&mrt->list);
kfree(mrt);
+ }
fib_rules_unregister(net->ipv4.mr_rules_ops);
}
#else
diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c
index ce799298255..03e62f94ff8 100644
--- a/net/ipv6/icmp.c
+++ b/net/ipv6/icmp.c
@@ -483,7 +483,7 @@ route_done:
np->tclass, NULL, &fl, (struct rt6_info*)dst,
MSG_DONTWAIT, np->dontfrag);
if (err) {
- ICMP6_INC_STATS_BH(net, idev, ICMP6_MIB_OUTMSGS);
+ ICMP6_INC_STATS_BH(net, idev, ICMP6_MIB_OUTERRORS);
ip6_flush_pending_frames(sk);
goto out_put;
}
@@ -565,7 +565,7 @@ static void icmpv6_echo_reply(struct sk_buff *skb)
np->dontfrag);
if (err) {
- ICMP6_INC_STATS_BH(net, idev, ICMP6_MIB_OUTMSGS);
+ ICMP6_INC_STATS_BH(net, idev, ICMP6_MIB_OUTERRORS);
ip6_flush_pending_frames(sk);
goto out_put;
}
diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c
index 073071f2b75..66078dad7fe 100644
--- a/net/ipv6/ip6mr.c
+++ b/net/ipv6/ip6mr.c
@@ -120,7 +120,7 @@ static void mroute_clean_tables(struct mr6_table *mrt);
static void ipmr_expire_process(unsigned long arg);
#ifdef CONFIG_IPV6_MROUTE_MULTIPLE_TABLES
-#define ip6mr_for_each_table(mrt, met) \
+#define ip6mr_for_each_table(mrt, net) \
list_for_each_entry_rcu(mrt, &net->ipv6.mr6_tables, list)
static struct mr6_table *ip6mr_get_table(struct net *net, u32 id)
@@ -254,8 +254,10 @@ static void __net_exit ip6mr_rules_exit(struct net *net)
{
struct mr6_table *mrt, *next;
- list_for_each_entry_safe(mrt, next, &net->ipv6.mr6_tables, list)
+ list_for_each_entry_safe(mrt, next, &net->ipv6.mr6_tables, list) {
+ list_del(&mrt->list);
ip6mr_free_table(mrt);
+ }
fib_rules_unregister(net->ipv6.mr6_rules_ops);
}
#else
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
index 59f1881968c..ab1622d7d40 100644
--- a/net/ipv6/mcast.c
+++ b/net/ipv6/mcast.c
@@ -1356,7 +1356,10 @@ static struct sk_buff *mld_newpack(struct net_device *dev, int size)
IPV6_TLV_PADN, 0 };
/* we assume size > sizeof(ra) here */
- skb = sock_alloc_send_skb(sk, size + LL_ALLOCATED_SPACE(dev), 1, &err);
+ size += LL_ALLOCATED_SPACE(dev);
+ /* limit our allocations to order-0 page */
+ size = min_t(int, size, SKB_MAX_ORDER(0, 0));
+ skb = sock_alloc_send_skb(sk, size, 1, &err);
if (!skb)
return NULL;
diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index 4f227131665..9c1da080916 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -349,7 +349,7 @@ static inline int drv_get_survey(struct ieee80211_local *local, int idx,
struct survey_info *survey)
{
int ret = -EOPNOTSUPP;
- if (local->ops->conf_tx)
+ if (local->ops->get_survey)
ret = local->ops->get_survey(&local->hw, idx, survey);
/* trace_drv_get_survey(local, idx, survey, ret); */
return ret;
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 0839c4e8fd2..f803f8b72a9 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -1692,14 +1692,52 @@ static void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata,
rma = ieee80211_rx_mgmt_disassoc(sdata, mgmt, skb->len);
break;
case IEEE80211_STYPE_ACTION:
- if (mgmt->u.action.category != WLAN_CATEGORY_SPECTRUM_MGMT)
+ switch (mgmt->u.action.category) {
+ case WLAN_CATEGORY_BACK: {
+ struct ieee80211_local *local = sdata->local;
+ int len = skb->len;
+ struct sta_info *sta;
+
+ rcu_read_lock();
+ sta = sta_info_get(sdata, mgmt->sa);
+ if (!sta) {
+ rcu_read_unlock();
+ break;
+ }
+
+ local_bh_disable();
+
+ switch (mgmt->u.action.u.addba_req.action_code) {
+ case WLAN_ACTION_ADDBA_REQ:
+ if (len < (IEEE80211_MIN_ACTION_SIZE +
+ sizeof(mgmt->u.action.u.addba_req)))
+ break;
+ ieee80211_process_addba_request(local, sta, mgmt, len);
+ break;
+ case WLAN_ACTION_ADDBA_RESP:
+ if (len < (IEEE80211_MIN_ACTION_SIZE +
+ sizeof(mgmt->u.action.u.addba_resp)))
+ break;
+ ieee80211_process_addba_resp(local, sta, mgmt, len);
+ break;
+ case WLAN_ACTION_DELBA:
+ if (len < (IEEE80211_MIN_ACTION_SIZE +
+ sizeof(mgmt->u.action.u.delba)))
+ break;
+ ieee80211_process_delba(sdata, sta, mgmt, len);
+ break;
+ }
+ local_bh_enable();
+ rcu_read_unlock();
break;
-
- ieee80211_sta_process_chanswitch(sdata,
- &mgmt->u.action.u.chan_switch.sw_elem,
- (void *)ifmgd->associated->priv,
- rx_status->mactime);
- break;
+ }
+ case WLAN_CATEGORY_SPECTRUM_MGMT:
+ ieee80211_sta_process_chanswitch(sdata,
+ &mgmt->u.action.u.chan_switch.sw_elem,
+ (void *)ifmgd->associated->priv,
+ rx_status->mactime);
+ break;
+ }
}
mutex_unlock(&ifmgd->mtx);
@@ -1722,9 +1760,45 @@ static void ieee80211_sta_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata,
mutex_unlock(&ifmgd->mtx);
if (skb->len >= 24 + 2 /* mgmt + deauth reason */ &&
- (fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_DEAUTH)
- cfg80211_send_deauth(sdata->dev, (u8 *)mgmt, skb->len);
+ (fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_DEAUTH) {
+ struct ieee80211_local *local = sdata->local;
+ struct ieee80211_work *wk;
+
+ mutex_lock(&local->work_mtx);
+ list_for_each_entry(wk, &local->work_list, list) {
+ if (wk->sdata != sdata)
+ continue;
+
+ if (wk->type != IEEE80211_WORK_ASSOC)
+ continue;
+
+ if (memcmp(mgmt->bssid, wk->filter_ta, ETH_ALEN))
+ continue;
+ if (memcmp(mgmt->sa, wk->filter_ta, ETH_ALEN))
+ continue;
+ /*
+ * Printing the message only here means we can't
+ * spuriously print it, but it also means that it
+ * won't be printed when the frame comes in before
+ * we even tried to associate or in similar cases.
+ *
+ * Ultimately, I suspect cfg80211 should print the
+ * messages instead.
+ */
+ printk(KERN_DEBUG
+ "%s: deauthenticated from %pM (Reason: %u)\n",
+ sdata->name, mgmt->bssid,
+ le16_to_cpu(mgmt->u.deauth.reason_code));
+
+ list_del_rcu(&wk->list);
+ free_work(wk);
+ break;
+ }
+ mutex_unlock(&local->work_mtx);
+
+ cfg80211_send_deauth(sdata->dev, (u8 *)mgmt, skb->len);
+ }
out:
kfree_skb(skb);
}
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 5e0b65406c4..be9abc2e634 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1944,6 +1944,9 @@ ieee80211_rx_h_action(struct ieee80211_rx_data *rx)
if (len < IEEE80211_MIN_ACTION_SIZE + 1)
break;
+ if (sdata->vif.type == NL80211_IFTYPE_STATION)
+ return ieee80211_sta_rx_mgmt(sdata, rx->skb);
+
switch (mgmt->u.action.u.addba_req.action_code) {
case WLAN_ACTION_ADDBA_REQ:
if (len < (IEEE80211_MIN_ACTION_SIZE +
diff --git a/samples/Kconfig b/samples/Kconfig
index 8924f72f062..13f0eb28237 100644
--- a/samples/Kconfig
+++ b/samples/Kconfig
@@ -44,4 +44,12 @@ config SAMPLE_HW_BREAKPOINT
help
This builds kernel hardware breakpoint example modules.
+config SAMPLE_TEST_STACKPROTECTOR
+ tristate "Build test module for the stack protector -- loadable modules only"
+ depends on CC_STACKPROTECTOR && m
+ help
+ This build a test module which upon insertion will exercize
+ the -fstack-protector buffer overflow detection feature.
+ Beware that this test is destructive as it will panic the kernel.
+
endif # SAMPLES
diff --git a/samples/Makefile b/samples/Makefile
index 0f15e6d77fd..69132eba6cb 100644
--- a/samples/Makefile
+++ b/samples/Makefile
@@ -1,4 +1,4 @@
# Makefile for Linux samples code
obj-$(CONFIG_SAMPLES) += kobject/ kprobes/ tracepoints/ trace_events/ \
- hw_breakpoint/
+ hw_breakpoint/ tests/
diff --git a/samples/tests/Makefile b/samples/tests/Makefile
new file mode 100644
index 00000000000..b17428708e3
--- /dev/null
+++ b/samples/tests/Makefile
@@ -0,0 +1,5 @@
+# builds those example test modules, then to use one
+# (as root):insmod <module_name.ko>
+# Beware: those tests may be destructive!
+
+obj-$(CONFIG_SAMPLE_TEST_STACKPROTECTOR) += test_stackprotector.o
diff --git a/samples/tests/test_stackprotector.c b/samples/tests/test_stackprotector.c
new file mode 100644
index 00000000000..1ea19a7b7d9
--- /dev/null
+++ b/samples/tests/test_stackprotector.c
@@ -0,0 +1,86 @@
+/*
+ * Sample test module to exercize the -fstack-protector buffer overflow
+ * detection feature.
+ *
+ * Author: Nicolas Pitre
+ * Created: June 7, 2010
+ * Copyright: Canonical Ltd
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * Beware: upon insertion of this module, the kernel should panic!
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+
+static long (*test_fn)(long *);
+
+static long test_good(long *x)
+{
+ int i;
+ long v;
+
+ x[0] = 0;
+ x[1] = 1;
+ for (i = 2; i < 50; i++) {
+ v = x[i-1] + x[i-2];
+ x[i] = v;
+ }
+
+ return v;
+}
+
+static void test_bad_target(void)
+{
+ /* Execution should never get here. */
+ panic("*** FAIL: STACK OVERFLOW DETECTION DID NOT TRIGGER ***\n");
+}
+
+static long test_stack_attack(long *x)
+{
+ int i;
+
+ /*
+ * Let's overwrite the stack to scrub over our caller's
+ * own return address.
+ */
+ for (i = 50; i < 70; i++)
+ x[i] = (long)&test_bad_target;
+
+ /*
+ * And then pretend some normality.
+ */
+ return test_good(x);
+}
+
+/* this is not marked "static" to make sure it is not inlined */
+long test_stackprotected_caller(long *x)
+{
+ long buffer[50];
+ return test_fn(buffer);
+}
+
+static int __init test_stackprotector_init(void)
+{
+ long dummy_buffer[20];
+
+ printk(KERN_CRIT "*** stack protector test module ***\n");
+
+ test_fn = &test_good;
+ printk(KERN_CRIT "... testing normal function call\n");
+ test_stackprotected_caller(dummy_buffer);
+
+ test_fn = &test_stack_attack;
+ printk(KERN_CRIT "... testing rogue function call\n");
+ test_stackprotected_caller(dummy_buffer);
+
+ /* the kernel should have panicked by now */
+ printk(KERN_CRIT "*** FAIL: stack overflow attempt did not work ***\n");
+ return -EINVAL;
+}
+
+module_init(test_stackprotector_init)
+MODULE_LICENSE("GPL");
diff --git a/scripts/Makefile.modbuiltin b/scripts/Makefile.modbuiltin
index 102a276f6ee..1adb974e695 100644
--- a/scripts/Makefile.modbuiltin
+++ b/scripts/Makefile.modbuiltin
@@ -14,6 +14,11 @@ __modbuiltin:
include scripts/Kbuild.include
+ifneq ($(KBUILD_SRC),)
+# Create output directory if not already present
+_dummy := $(shell [ -d $(obj) ] || mkdir -p $(obj))
+endif
+
# The filename Kbuild has precedence over Makefile
kbuild-dir := $(if $(filter /%,$(src)),$(src),$(srctree)/$(src))
kbuild-file := $(if $(wildcard $(kbuild-dir)/Kbuild),$(kbuild-dir)/Kbuild,$(kbuild-dir)/Makefile)
diff --git a/security/Kconfig b/security/Kconfig
index 226b9556b25..bd72ae62349 100644
--- a/security/Kconfig
+++ b/security/Kconfig
@@ -140,6 +140,7 @@ config LSM_MMAP_MIN_ADDR
source security/selinux/Kconfig
source security/smack/Kconfig
source security/tomoyo/Kconfig
+source security/apparmor/Kconfig
source security/integrity/ima/Kconfig
@@ -148,6 +149,7 @@ choice
default DEFAULT_SECURITY_SELINUX if SECURITY_SELINUX
default DEFAULT_SECURITY_SMACK if SECURITY_SMACK
default DEFAULT_SECURITY_TOMOYO if SECURITY_TOMOYO
+ default DEFAULT_SECURITY_APPARMOR if SECURITY_APPARMOR
default DEFAULT_SECURITY_DAC
help
@@ -163,6 +165,9 @@ choice
config DEFAULT_SECURITY_TOMOYO
bool "TOMOYO" if SECURITY_TOMOYO=y
+ config DEFAULT_SECURITY_APPARMOR
+ bool "AppArmor" if SECURITY_APPARMOR=y
+
config DEFAULT_SECURITY_DAC
bool "Unix Discretionary Access Controls"
@@ -173,6 +178,7 @@ config DEFAULT_SECURITY
default "selinux" if DEFAULT_SECURITY_SELINUX
default "smack" if DEFAULT_SECURITY_SMACK
default "tomoyo" if DEFAULT_SECURITY_TOMOYO
+ default "apparmor" if DEFAULT_SECURITY_APPARMOR
default "" if DEFAULT_SECURITY_DAC
endmenu
diff --git a/security/Makefile b/security/Makefile
index da20a193c8d..8bb0fe9e1ca 100644
--- a/security/Makefile
+++ b/security/Makefile
@@ -6,6 +6,7 @@ obj-$(CONFIG_KEYS) += keys/
subdir-$(CONFIG_SECURITY_SELINUX) += selinux
subdir-$(CONFIG_SECURITY_SMACK) += smack
subdir-$(CONFIG_SECURITY_TOMOYO) += tomoyo
+subdir-$(CONFIG_SECURITY_APPARMOR) += apparmor
# always enable default capabilities
obj-y += commoncap.o
@@ -19,6 +20,7 @@ obj-$(CONFIG_SECURITY_SELINUX) += selinux/built-in.o
obj-$(CONFIG_SECURITY_SMACK) += smack/built-in.o
obj-$(CONFIG_AUDIT) += lsm_audit.o
obj-$(CONFIG_SECURITY_TOMOYO) += tomoyo/built-in.o
+obj-$(CONFIG_SECURITY_APPARMOR) += apparmor/built-in.o
obj-$(CONFIG_CGROUP_DEVICE) += device_cgroup.o
# Object integrity file lists
diff --git a/security/apparmor/.gitignore b/security/apparmor/.gitignore
new file mode 100644
index 00000000000..0a0a99f3b08
--- /dev/null
+++ b/security/apparmor/.gitignore
@@ -0,0 +1,5 @@
+#
+# Generated include files
+#
+af_names.h
+capability_names.h
diff --git a/security/apparmor/Kconfig b/security/apparmor/Kconfig
new file mode 100644
index 00000000000..5c57df79ca0
--- /dev/null
+++ b/security/apparmor/Kconfig
@@ -0,0 +1,40 @@
+config SECURITY_APPARMOR
+ bool "AppArmor support"
+ depends on SECURITY
+ select AUDIT
+ select SECURITY_PATH
+ select SECURITYFS
+ select SECURITY_NETWORK
+ default n
+ help
+ This enables the AppArmor security module.
+ Required userspace tools (if they are not included in your
+ distribution) and further information may be found at
+ <http://forge.novell.com/modules/xfmod/project/?apparmor>
+
+ If you are unsure how to answer this question, answer N.
+
+config SECURITY_APPARMOR_BOOTPARAM_VALUE
+ int "AppArmor boot parameter default value"
+ depends on SECURITY_APPARMOR
+ range 0 1
+ default 1
+ help
+ This option sets the default value for the kernel parameter
+ 'apparmor', which allows AppArmor to be enabled or disabled
+ at boot. If this option is set to 0 (zero), the AppArmor
+ kernel parameter will default to 0, disabling AppArmor at
+ bootup. If this option is set to 1 (one), the AppArmor
+ kernel parameter will default to 1, enabling AppArmor at
+ bootup.
+
+ If you are unsure how to answer this question, answer 1.
+
+config SECURITY_APPARMOR_COMPAT_24
+ bool "Enable AppArmor 2.4 compatability"
+ depends on SECURITY_APPARMOR
+ default y
+ help
+ This option enables compatability with AppArmor 2.4. It is
+ recommended if compatability with older versions of AppArmor
+ is desired.
diff --git a/security/apparmor/Makefile b/security/apparmor/Makefile
new file mode 100644
index 00000000000..554cba7644a
--- /dev/null
+++ b/security/apparmor/Makefile
@@ -0,0 +1,24 @@
+# Makefile for AppArmor Linux Security Module
+#
+obj-$(CONFIG_SECURITY_APPARMOR) += apparmor.o
+
+apparmor-y := apparmorfs.o audit.o capability.o context.o ipc.o lib.o match.o \
+ path.o domain.o policy.o policy_unpack.o procattr.o lsm.o \
+ resource.o sid.o file.o net.o
+
+apparmor-$(CONFIG_SECURITY_APPARMOR_COMPAT_24) += apparmorfs-24.o
+
+clean-files: capability_names.h af_names.h
+
+quiet_cmd_make-caps = GEN $@
+cmd_make-caps = echo "static const char *capability_names[] = {" > $@ ; sed -n -e "/CAP_FS_MASK/d" -e "s/^\#define[ \\t]\\+CAP_\\([A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9]\\+\\)\$$/[\\2] = \"\\1\",/p" $< | tr A-Z a-z >> $@ ; echo "};" >> $@
+
+quiet_cmd_make-af = GEN $@
+cmd_make-af = echo "static const char *address_family_names[] = {" > $@ ; sed -n -e "/AF_MAX/d" -e "/AF_LOCAL/d" -e "s/^\#define[ \\t]\\+AF_\\([A-Z0-9_]\\+\\)[ \\t]\\+\\([0-9]\\+\\)\\(.*\\)\$$/[\\2] = \"\\1\",/p" $< | tr A-Z a-z >> $@ ; echo "};" >> $@
+
+$(obj)/capability.o : $(obj)/capability_names.h
+$(obj)/net.o : $(obj)/af_names.h
+$(obj)/capability_names.h : $(srctree)/include/linux/capability.h
+ $(call cmd,make-caps)
+$(obj)/af_names.h : $(srctree)/include/linux/socket.h
+ $(call cmd,make-af)
diff --git a/security/apparmor/apparmorfs-24.c b/security/apparmor/apparmorfs-24.c
new file mode 100644
index 00000000000..f64aae87705
--- /dev/null
+++ b/security/apparmor/apparmorfs-24.c
@@ -0,0 +1,61 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor /sys/kernel/secrutiy/apparmor interface functions
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ *
+ *
+ * This file contain functions providing an interface for <= AppArmor 2.4
+ * compatibility. It is dependent on CONFIG_SECURITY_APPARMOR_COMPAT_24
+ * being set (see Makefile).
+ */
+
+#include <linux/security.h>
+#include <linux/vmalloc.h>
+#include <linux/module.h>
+#include <linux/seq_file.h>
+#include <linux/uaccess.h>
+#include <linux/namei.h>
+
+#include "include/apparmor.h"
+#include "include/audit.h"
+#include "include/context.h"
+#include "include/policy.h"
+
+
+/* apparmor/matching */
+static ssize_t aa_matching_read(struct file *file, char __user *buf,
+ size_t size, loff_t *ppos)
+{
+ const char matching[] = "pattern=aadfa audit perms=crwxamlk/ "
+ "user::other";
+
+ return simple_read_from_buffer(buf, size, ppos, matching,
+ sizeof(matching) - 1);
+}
+
+const struct file_operations aa_fs_matching_fops = {
+ .read = aa_matching_read,
+};
+
+/* apparmor/features */
+static ssize_t aa_features_read(struct file *file, char __user *buf,
+ size_t size, loff_t *ppos)
+{
+ const char features[] = "file=3.1 capability=2.0 network=1.0 "
+ "change_hat=1.5 change_profile=1.1 " "aanamespaces=1.1 rlimit=1.1";
+
+ return simple_read_from_buffer(buf, size, ppos, features,
+ sizeof(features) - 1);
+}
+
+const struct file_operations aa_fs_features_fops = {
+ .read = aa_features_read,
+};
diff --git a/security/apparmor/apparmorfs.c b/security/apparmor/apparmorfs.c
new file mode 100644
index 00000000000..a852d067087
--- /dev/null
+++ b/security/apparmor/apparmorfs.c
@@ -0,0 +1,561 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor /sys/kernel/security/apparmor interface functions
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include <linux/security.h>
+#include <linux/vmalloc.h>
+#include <linux/module.h>
+#include <linux/seq_file.h>
+#include <linux/uaccess.h>
+#include <linux/namei.h>
+
+#include "include/apparmor.h"
+#include "include/apparmorfs.h"
+#include "include/audit.h"
+#include "include/context.h"
+#include "include/policy.h"
+
+/**
+ * kvmalloc - do allocation prefering kmalloc but falling back to vmalloc
+ * @size: size of allocation
+ *
+ * Return: allocated buffer or NULL if failed
+ *
+ * It is possible that policy being loaded from the user is larger than
+ * what can be allocated by kmalloc, in those cases fall back to vmalloc.
+ */
+static void *kvmalloc(size_t size)
+{
+ void *buffer;
+
+ if (size == 0)
+ return NULL;
+
+ buffer = kmalloc(size, GFP_KERNEL | __GFP_NOWARN);
+ if (!buffer)
+ buffer = vmalloc(size);
+ return buffer;
+}
+
+/**
+ * kvfree - free an allocation do by kvmalloc
+ * @buffer: buffer to free
+ *
+ * Free a buffer allocated by kvmalloc
+ */
+static void kvfree(void *buffer)
+{
+ if (!buffer)
+ return;
+
+ if (is_vmalloc_addr(buffer))
+ vfree(buffer);
+ else
+ kfree(buffer);
+}
+
+/**
+ * aa_simple_write_to_buffer - common routine for getting policy from user
+ * @userbuf: user buffer to copy data from (NOT NULL)
+ * @alloc_size: size of user buffer
+ * @copy_size: size of data to copy from user buffer
+ * @pos: position write is at in the file
+ * @operation: name of operation doing the user buffer copy (NOT NULL)
+ *
+ * Returns: kernel buffer containing copy of user buffer data or an
+ * ERR_PTR on failure.
+ */
+static char *aa_simple_write_to_buffer(const char __user *userbuf,
+ size_t alloc_size, size_t copy_size,
+ loff_t *pos, const char *operation)
+{
+ char *data;
+
+ if (*pos != 0) {
+ /* only writes from pos 0, that is complete writes */
+ data = ERR_PTR(-ESPIPE);
+ goto out;
+ }
+
+ /*
+ * Don't allow profile load/replace/remove from profiles that don't
+ * have CAP_MAC_ADMIN
+ */
+ if (!capable(CAP_MAC_ADMIN)) {
+ struct aa_profile *profile = NULL;
+ struct aa_audit sa = {
+ .operation = operation,
+ .gfp_mask = GFP_KERNEL,
+ .error = -EACCES,
+ };
+ profile = aa_current_profile();
+ data = ERR_PTR(aa_audit(AUDIT_APPARMOR_DENIED, profile, &sa,
+ NULL));
+ goto out;
+ }
+ /* freed by caller to aa_simple_write_to_buffer */
+ data = kvmalloc(alloc_size);
+ if (data == NULL) {
+ data = ERR_PTR(-ENOMEM);
+ goto out;
+ }
+
+ if (copy_from_user(data, userbuf, copy_size)) {
+ kvfree(data);
+ data = ERR_PTR(-EFAULT);
+ goto out;
+ }
+
+out:
+ return data;
+}
+
+
+/* .load file hook fn to load policy */
+static ssize_t aa_profile_load(struct file *f, const char __user *buf,
+ size_t size, loff_t *pos)
+{
+ char *data;
+ ssize_t error;
+
+ data = aa_simple_write_to_buffer(buf, size, size, pos, "profile_load");
+
+ error = PTR_ERR(data);
+ if (!IS_ERR(data)) {
+ error = aa_interface_replace_profiles(data, size, 1);
+ kvfree(data);
+ }
+
+ return error;
+}
+
+static const struct file_operations aa_fs_profile_load = {
+ .write = aa_profile_load
+};
+
+/* .replace file hook fn to load and/or replace policy */
+static ssize_t aa_profile_replace(struct file *f, const char __user *buf,
+ size_t size, loff_t *pos)
+{
+ char *data;
+ ssize_t error;
+
+ data = aa_simple_write_to_buffer(buf, size, size, pos,
+ "profile_replace");
+ error = PTR_ERR(data);
+ if (!IS_ERR(data)) {
+ error = aa_interface_replace_profiles(data, size, 0);
+ kvfree(data);
+ }
+
+ return error;
+}
+
+static const struct file_operations aa_fs_profile_replace = {
+ .write = aa_profile_replace
+};
+
+/* .remove file hook fn to remove loaded policy */
+static ssize_t aa_profile_remove(struct file *f, const char __user *buf,
+ size_t size, loff_t *pos)
+{
+ char *data;
+ ssize_t error;
+
+ /*
+ * aa_remove_profile needs a null terminated string so 1 extra
+ * byte is allocated and the copied data is null terminated.
+ */
+ data = aa_simple_write_to_buffer(buf, size + 1, size, pos,
+ "profile_remove");
+
+ error = PTR_ERR(data);
+ if (!IS_ERR(data)) {
+ data[size] = 0;
+ error = aa_interface_remove_profiles(data, size);
+ kvfree(data);
+ }
+
+ return error;
+}
+
+static const struct file_operations aa_fs_profile_remove = {
+ .write = aa_profile_remove
+};
+
+
+/**
+ * __next_namespace - find the next namespace to list
+ * @root: root namespace to stop search at (NOT NULL)
+ * @ns: current ns position (NOT NULL)
+ *
+ * Find the next namespace from @ns under @root and handle all locking needed
+ * while switching current namespace.
+ *
+ * Returns: next namespace or NULL if at last namespace under @root
+ * NOTE: will not unlock root->lock
+ */
+static struct aa_namespace *__next_namespace(struct aa_namespace *root,
+ struct aa_namespace *ns)
+{
+ struct aa_namespace *parent;
+
+ /* is next namespace a child */
+ if (!list_empty(&ns->sub_ns)) {
+ struct aa_namespace *next;
+ next = list_first_entry(&ns->sub_ns, typeof(*ns), base.list);
+ read_lock(&next->lock);
+ return next;
+ }
+
+ /* check if the next ns is a sibling, parent, gp, .. */
+ parent = ns->parent;
+ while (parent) {
+ read_unlock(&ns->lock);
+ list_for_each_entry_continue(ns, &parent->sub_ns, base.list) {
+ read_lock(&ns->lock);
+ return ns;
+ }
+ if (parent == root)
+ return NULL;
+ ns = parent;
+ parent = parent->parent;
+ }
+
+ return NULL;
+}
+
+/**
+ * __first_profile - find the first profile in a namespace
+ * @root: namespace that is root of profiles being displayed (NOT NULL)
+ * @ns: namespace to start in (NOT NULL)
+ *
+ * Returns: unrefcounted profile or NULL if no profile
+ */
+ static struct aa_profile *__first_profile(struct aa_namespace *root,
+ struct aa_namespace *ns)
+{
+ for ( ; ns; ns = __next_namespace(root, ns)) {
+ if (!list_empty(&ns->base.profiles))
+ return list_first_entry(&ns->base.profiles,
+ struct aa_profile, base.list);
+ }
+ return NULL;
+}
+
+/**
+ * __next_profile - step to the next profile in a profile tree
+ * @profile: current profile in tree (NOT NULL)
+ *
+ * Perform a depth first taversal on the profile tree in a namespace
+ *
+ * Returns: next profile or NULL if done
+ * Requires: profile->ns.lock to be held
+ */
+static struct aa_profile *__next_profile(struct aa_profile *p)
+{
+ struct aa_profile *parent;
+ struct aa_namespace *ns = p->ns;
+
+ /* is next profile a child */
+ if (!list_empty(&p->base.profiles))
+ return list_first_entry(&p->base.profiles, typeof(*p),
+ base.list);
+
+ /* is next profile a sibling, parent sibling, gp, subling, .. */
+ parent = p->parent;
+ while (parent) {
+ list_for_each_entry_continue(p, &parent->base.profiles,
+ base.list)
+ return p;
+ p = parent;
+ parent = parent->parent;
+ }
+
+ /* is next another profile in the namespace */
+ list_for_each_entry_continue(p, &ns->base.profiles, base.list)
+ return p;
+
+ return NULL;
+}
+
+/**
+ * next_profile - step to the next profile in where ever it may be
+ * @root: root namespace (NOT NULL)
+ * @profile: current profile (NOT NULL)
+ *
+ * Returns: next profile or NULL if there isn't one
+ */
+static struct aa_profile *next_profile(struct aa_namespace *root,
+ struct aa_profile *profile)
+{
+ struct aa_profile *next = __next_profile(profile);
+ if (next)
+ return next;
+
+ /* finished all profiles in namespace move to next namespace */
+ return __first_profile(root, __next_namespace(root, profile->ns));
+}
+
+/**
+ * p_start - start a depth first traversal of profile tree
+ * @f: seq_file to fill
+ * @pos: current position
+ *
+ * Returns: first profile under current namespace or NULL if none found
+ *
+ * acquires first ns->lock
+ */
+static void *p_start(struct seq_file *f, loff_t *pos)
+ __acquires(root->lock)
+{
+ struct aa_profile *profile = NULL;
+ struct aa_namespace *root = aa_current_profile()->ns;
+ loff_t l = *pos;
+ f->private = aa_get_namespace(root);
+
+
+ /* find the first profile */
+ read_lock(&root->lock);
+ profile = __first_profile(root, root);
+
+ /* skip to position */
+ for (; profile && l > 0; l--)
+ profile = next_profile(root, profile);
+
+ return profile;
+}
+
+/**
+ * p_next - read the next profile entry
+ * @f: seq_file to fill
+ * @p: profile previously returned
+ * @pos: current position
+ *
+ * Returns: next profile after @p or NULL if none
+ *
+ * may acquire/release locks in namespace tree as necessary
+ */
+static void *p_next(struct seq_file *f, void *p, loff_t *pos)
+{
+ struct aa_profile *profile = p;
+ struct aa_namespace *root = f->private;
+ (*pos)++;
+
+ return next_profile(root, profile);
+}
+
+/**
+ * p_stop - stop depth first traversal
+ * @f: seq_file we are filling
+ * @p: the last profile writen
+ *
+ * Release all locking done by p_start/p_next on namespace tree
+ */
+static void p_stop(struct seq_file *f, void *p)
+ __releases(root->lock)
+{
+ struct aa_profile *profile = p;
+ struct aa_namespace *root = f->private, *ns;
+
+ if (profile) {
+ for (ns = profile->ns; ns && ns != root; ns = ns->parent)
+ read_unlock(&ns->lock);
+ }
+ read_unlock(&root->lock);
+ aa_put_namespace(root);
+}
+
+/**
+ * print_ns_name - print a namespace name back to @root
+ * @root: root namespace to stop at
+ * @ns: namespace to gen name for
+ *
+ * Returns: true if it printed a name
+ */
+static bool print_ns_name(struct seq_file *f, struct aa_namespace *root,
+ struct aa_namespace *ns)
+{
+ if (!ns || ns == root)
+ return 0;
+
+ if (ns->parent && print_ns_name(f, root, ns->parent))
+ seq_printf(f, "//");
+
+ seq_printf(f, "%s", ns->base.name);
+ return 1;
+}
+
+/**
+ * seq_show_profile -
+ * @f: seq_file to file
+ * @p: current position (profile) (NOT NULL)
+ *
+ * Returns: error on failure
+ */
+static int seq_show_profile(struct seq_file *f, void *p)
+{
+ struct aa_profile *profile = (struct aa_profile *)p;
+ struct aa_namespace *root = f->private;
+
+ if (profile->ns != root)
+ seq_printf(f, ":");
+ if (print_ns_name(f, root, profile->ns))
+ seq_printf(f, "://");
+ seq_printf(f, "%s (%s)\n", profile->base.hname,
+ COMPLAIN_MODE(profile) ? "complain" : "enforce");
+
+ return 0;
+}
+
+static const struct seq_operations aa_fs_profiles_op = {
+ .start = p_start,
+ .next = p_next,
+ .stop = p_stop,
+ .show = seq_show_profile,
+};
+
+static int aa_profiles_open(struct inode *inode, struct file *file)
+{
+ return seq_open(file, &aa_fs_profiles_op);
+}
+
+static int aa_profiles_release(struct inode *inode, struct file *file)
+{
+ return seq_release(inode, file);
+}
+
+static const struct file_operations aa_fs_profiles_fops = {
+ .open = aa_profiles_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = aa_profiles_release,
+};
+
+
+/** Base file system setup **/
+
+static struct dentry *aa_fs_dentry;
+struct dentry *aa_fs_null;
+struct vfsmount *aa_fs_mnt;
+
+static void aafs_remove(const char *name)
+{
+ struct dentry *dentry;
+
+ dentry = lookup_one_len(name, aa_fs_dentry, strlen(name));
+ if (!IS_ERR(dentry)) {
+ securityfs_remove(dentry);
+ dput(dentry);
+ }
+}
+
+/**
+ * aafs_create - create an entry in the apparmor filesystem
+ * @name: name of the entry
+ * @mask: file permission mask of the file
+ * @fops: file operations for the file
+ *
+ * Used aafs_remove to remove entries created with this fn.
+ */
+static int aafs_create(const char *name, int mask,
+ const struct file_operations *fops)
+{
+ struct dentry *dentry;
+
+ dentry = securityfs_create_file(name, S_IFREG | mask, aa_fs_dentry,
+ NULL, fops);
+
+ return IS_ERR(dentry) ? PTR_ERR(dentry) : 0;
+}
+
+/**
+ * aa_destroy_aafs - cleanup and free aafs
+ *
+ * releases dentries allocated by aa_create_aafs
+ */
+void aa_destroy_aafs(void)
+{
+ if (aa_fs_dentry) {
+ aafs_remove(".remove");
+ aafs_remove(".replace");
+ aafs_remove(".load");
+ aafs_remove("profiles");
+#ifdef CONFIG_SECURITY_APPARMOR_COMPAT_24
+ aafs_remove("matching");
+ aafs_remove("features");
+#endif
+ securityfs_remove(aa_fs_dentry);
+ aa_fs_dentry = NULL;
+ }
+}
+
+/**
+ * aa_create_aafs - create the apparmor security filesystem
+ *
+ * dentries created here are released by aa_destroy_aafs
+ *
+ * Returns: error on failure
+ */
+int aa_create_aafs(void)
+{
+ int error;
+
+ if (!apparmor_initialized)
+ return 0;
+
+ if (aa_fs_dentry) {
+ AA_ERROR("%s: AppArmor securityfs already exists\n", __func__);
+ return -EEXIST;
+ }
+
+ aa_fs_dentry = securityfs_create_dir("apparmor", NULL);
+ if (IS_ERR(aa_fs_dentry)) {
+ error = PTR_ERR(aa_fs_dentry);
+ aa_fs_dentry = NULL;
+ goto error;
+ }
+#ifdef CONFIG_SECURITY_APPARMOR_COMPAT_24
+ error = aafs_create("matching", 0444, &aa_fs_matching_fops);
+ if (error)
+ goto error;
+ error = aafs_create("features", 0444, &aa_fs_features_fops);
+ if (error)
+ goto error;
+#endif
+ error = aafs_create("profiles", 0440, &aa_fs_profiles_fops);
+ if (error)
+ goto error;
+ error = aafs_create(".load", 0640, &aa_fs_profile_load);
+ if (error)
+ goto error;
+ error = aafs_create(".replace", 0640, &aa_fs_profile_replace);
+ if (error)
+ goto error;
+ error = aafs_create(".remove", 0640, &aa_fs_profile_remove);
+ if (error)
+ goto error;
+
+ /* TODO: add support for apparmorfs_null and apparmorfs_mnt */
+
+ /* Report that AppArmor fs is enabled */
+ aa_info_message("AppArmor Filesystem Enabled");
+ return 0;
+
+error:
+ aa_destroy_aafs();
+ AA_ERROR("Error creating AppArmor securityfs\n");
+ return error;
+}
+
+fs_initcall(aa_create_aafs);
diff --git a/security/apparmor/audit.c b/security/apparmor/audit.c
new file mode 100644
index 00000000000..38ac7a77252
--- /dev/null
+++ b/security/apparmor/audit.c
@@ -0,0 +1,162 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor auditing functions
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include <linux/audit.h>
+#include <linux/socket.h>
+
+#include "include/apparmor.h"
+#include "include/audit.h"
+#include "include/policy.h"
+
+const char *audit_mode_names[] = {
+ "normal",
+ "quiet_denied",
+ "quiet",
+ "noquiet",
+ "all"
+};
+
+static char *aa_audit_type[] = {
+ "APPARMOR_AUDIT",
+ "APPARMOR_ALLOWED",
+ "APPARMOR_DENIED",
+ "APPARMOR_HINT",
+ "APPARMOR_STATUS",
+ "APPARMOR_ERROR",
+ "APPARMOR_KILLED"
+};
+
+/*
+ * Currently AppArmor auditing is fed straight into the audit framework.
+ *
+ * TODO:
+ * convert to LSM audit
+ * netlink interface for complain mode
+ * user auditing, - send user auditing to netlink interface
+ * system control of whether user audit messages go to system log
+ */
+
+/**
+ * aa_audit_base - core AppArmor function.
+ * @type: type of audit message (see include/linux/apparmor.h)
+ * @profile: active profile for event (MAY BE NULL)
+ * @sa: audit structure containing data to audit
+ * @audit_cxt: audit_cxt that event is under
+ * @cb: audit cb for this event
+ *
+ * Record an audit message for data is @sa, and handle deal with kill and
+ * complain messages switches.
+ *
+ * Returns: 0 or sa->error on success, else error
+ */
+static int aa_audit_base(int type, struct aa_profile *profile,
+ struct aa_audit *sa, struct audit_context *audit_cxt,
+ void (*cb) (struct audit_buffer *, struct aa_audit *))
+{
+ struct audit_buffer *ab = NULL;
+ struct task_struct *task = sa->task ? sa->task : current;
+
+ if (profile && DO_KILL(profile) && type == AUDIT_APPARMOR_DENIED)
+ type = AUDIT_APPARMOR_KILL;
+
+ /* ab freed below in audit_log_end */
+ ab = audit_log_start(audit_cxt, sa->gfp_mask, type);
+
+ if (!ab) {
+ AA_ERROR("(%d) Unable to log event of type (%d)\n",
+ -ENOMEM, type);
+ sa->error = -ENOMEM;
+ goto out;
+ }
+
+ if (aa_g_audit_header) {
+ audit_log_format(ab, " type=");
+ audit_log_string(ab, aa_audit_type[type - AUDIT_APPARMOR_AUDIT]);
+ }
+
+ if (sa->operation) {
+ audit_log_format(ab, " operation=");
+ audit_log_string(ab, sa->operation);
+ }
+
+ if (sa->info) {
+ audit_log_format(ab, " info=");
+ audit_log_string(ab, sa->info);
+ if (sa->error)
+ audit_log_format(ab, " error=%d", sa->error);
+ }
+
+ audit_log_format(ab, " pid=%d", task->pid);
+
+ if (profile && !unconfined(profile)) {
+ pid_t pid;
+ rcu_read_lock();
+ pid = task->real_parent->pid;
+ rcu_read_unlock();
+ audit_log_format(ab, " parent=%d", pid);
+ audit_log_format(ab, " profile=");
+ audit_log_untrustedstring(ab, profile->base.hname);
+
+ if (profile->ns != root_ns) {
+ audit_log_format(ab, " namespace=");
+ audit_log_untrustedstring(ab, profile->ns->base.hname);
+ }
+ }
+
+ if (cb)
+ cb(ab, sa);
+
+ audit_log_end(ab);
+
+out:
+ if (type == AUDIT_APPARMOR_KILL)
+ (void)send_sig_info(SIGKILL, NULL, task);
+
+ return type == AUDIT_APPARMOR_ALLOWED ? 0 : sa->error;
+}
+
+/**
+ * aa_audit - Log an audit event to the audit subsystem
+ * @type: audit type for the message
+ * @profile: profile to check against
+ * @sa: audit event
+ * @cb: optional callback fn for type specific fields
+ *
+ * Handle default message switching based off of audit mode flags
+ *
+ * Returns: error on failure
+ */
+int aa_audit(int type, struct aa_profile *profile, struct aa_audit *sa,
+ void (*cb) (struct audit_buffer *, struct aa_audit *))
+{
+ struct audit_context *audit_cxt;
+ audit_cxt = aa_g_logsyscall ? current->audit_context : NULL;
+
+ if (type == AUDIT_APPARMOR_AUTO) {
+ if (likely(!sa->error)) {
+ if (AUDIT_MODE(profile) != AUDIT_ALL)
+ return 0;
+ type = AUDIT_APPARMOR_AUDIT;
+ } else if (COMPLAIN_MODE(profile))
+ type = AUDIT_APPARMOR_ALLOWED;
+ else
+ type = AUDIT_APPARMOR_DENIED;
+ }
+ if (AUDIT_MODE(profile) == AUDIT_QUIET ||
+ (type == AUDIT_APPARMOR_DENIED &&
+ AUDIT_MODE(profile) == AUDIT_QUIET))
+ return sa->error;
+
+ return aa_audit_base(type, profile, sa, audit_cxt, cb);
+}
diff --git a/security/apparmor/capability.c b/security/apparmor/capability.c
new file mode 100644
index 00000000000..c8a80ba6dd4
--- /dev/null
+++ b/security/apparmor/capability.c
@@ -0,0 +1,146 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor capability mediation functions
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include <linux/capability.h>
+#include <linux/errno.h>
+#include <linux/gfp.h>
+
+#include "include/apparmor.h"
+#include "include/capability.h"
+#include "include/context.h"
+#include "include/policy.h"
+#include "include/audit.h"
+
+/*
+ * Table of capability names: we generate it from capabilities.h.
+ */
+#include "capability_names.h"
+
+struct audit_cache {
+ struct aa_profile *profile;
+ kernel_cap_t caps;
+};
+
+static DEFINE_PER_CPU(struct audit_cache, audit_cache);
+
+struct aa_audit_caps {
+ struct aa_audit base;
+
+ int cap;
+};
+
+/**
+ * audit_cb - call back for capability components of audit struct
+ * @ab - audit buffer (NOT NULL)
+ * @va - audit struct to audit data from (NOT NULL)
+ */
+static void audit_cb(struct audit_buffer *ab, struct aa_audit *va)
+{
+ struct aa_audit_caps *sa = container_of(va, struct aa_audit_caps, base);
+
+ audit_log_format(ab, " name=");
+ audit_log_untrustedstring(ab, capability_names[sa->cap]);
+}
+
+/**
+ * aa_audit_caps - audit a capability
+ * @profile: profile confining task
+ * @sa: audit structure containing data to audit
+ *
+ * Do auditing of capability and handle, audit/complain/kill modes switching
+ * and duplicate message elimination.
+ *
+ * returns: 0 or sa->error on succes, error code on failure
+ */
+static int aa_audit_caps(struct aa_profile *profile, struct aa_audit_caps *sa)
+{
+ struct audit_cache *ent;
+ int type = AUDIT_APPARMOR_AUTO;
+
+ if (likely(!sa->base.error)) {
+ /* test if auditing is being forced */
+ if (likely((AUDIT_MODE(profile) != AUDIT_ALL) &&
+ !cap_raised(profile->caps.audit, sa->cap)))
+ return 0;
+ type = AUDIT_APPARMOR_AUDIT;
+ } else if (DO_KILL(profile) ||
+ cap_raised(profile->caps.kill, sa->cap)) {
+ type = AUDIT_APPARMOR_KILL;
+ } else if (cap_raised(profile->caps.quiet, sa->cap) &&
+ AUDIT_MODE(profile) != AUDIT_NOQUIET &&
+ AUDIT_MODE(profile) != AUDIT_ALL) {
+ /* quiet auditing */
+ return sa->base.error;
+ }
+
+ /* Do simple duplicate message elimination */
+ ent = &get_cpu_var(audit_cache);
+ if (profile == ent->profile && cap_raised(ent->caps, sa->cap)) {
+ put_cpu_var(audit_cache);
+ if (COMPLAIN_MODE(profile))
+ return 0;
+ return sa->base.error;
+ } else {
+ aa_put_profile(ent->profile);
+ ent->profile = aa_get_profile(profile);
+ cap_raise(ent->caps, sa->cap);
+ }
+ put_cpu_var(audit_cache);
+
+ return aa_audit(type, profile, &sa->base, audit_cb);
+}
+
+/**
+ * aa_profile_capable - test if profile allows use of capability @cap
+ * @profile: profile being enforced (NOT NULL, NOT unconfined)
+ * @cap: capability to test if allowed
+ *
+ * Returns: 0 if allowed else -EPERM
+ */
+static int aa_profile_capable(struct aa_profile *profile, int cap)
+{
+ return cap_raised(profile->caps.allowed, cap) ? 0 : -EPERM;
+}
+
+/**
+ * aa_capable - test permission to use capability
+ * @task: task doing capability test against
+ * @profile: profile confining @task
+ * @cap: capability to be tested
+ * @audit: whether an audit record should be generated
+ *
+ * Look up capability in profile capability set.
+ *
+ * Returns: 0 on success, or else an error code.
+ */
+int aa_capable(struct task_struct *task, struct aa_profile *profile, int cap,
+ int audit)
+{
+ int error = aa_profile_capable(profile, cap);
+ struct aa_audit_caps sa = {
+ .base.operation = "capable",
+ .base.task = task,
+ .base.gfp_mask = GFP_ATOMIC,
+ .base.error = error,
+ .cap = cap,
+ };
+
+ if (!audit) {
+ if (COMPLAIN_MODE(profile))
+ return 0;
+ return error;
+ }
+
+ return aa_audit_caps(profile, &sa);
+}
diff --git a/security/apparmor/context.c b/security/apparmor/context.c
new file mode 100644
index 00000000000..14a0e41d1ff
--- /dev/null
+++ b/security/apparmor/context.c
@@ -0,0 +1,226 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor functions used to manipulate object security
+ * contexts.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ *
+ *
+ * AppArmor sets confinement on every task, via the the aa_task_cxt and
+ * the aa_task_cxt profile, both of which are required and are not allowed
+ * to be NULL. The aa_task_cxt is not reference counted and is unique
+ * to each cred (which is reference count). The profile pointed to by
+ * the task_cxt is reference counted.
+ *
+ * TODO
+ * If a task uses change_hat it currently does not return to the old
+ * cred or task context but instead creates a new one. Ideally the task
+ * should return to the previous cred if it has not been modified.
+ *
+ */
+
+#include "include/context.h"
+#include "include/policy.h"
+
+/**
+ * aa_alloc_task_context - allocat a new task_cxt
+ * @flags: gfp flags for allocation
+ *
+ * Returns: allocated buffer or NULL on failure
+ */
+struct aa_task_cxt *aa_alloc_task_context(gfp_t flags)
+{
+ return kzalloc(sizeof(struct aa_task_cxt), flags);
+}
+
+/**
+ * aa_free_task_context - free a task_cxt
+ * @cxt: task_cxt to free (MAYBE NULL)
+ */
+void aa_free_task_context(struct aa_task_cxt *cxt)
+{
+ if (cxt) {
+ aa_put_profile(cxt->profile);
+ aa_put_profile(cxt->previous);
+ aa_put_profile(cxt->onexec);
+
+ kzfree(cxt);
+ }
+}
+
+/**
+ * aa_dup_task_context - duplicate a task context, incrementing reference counts
+ * @new: a blank task context (NOT NULL)
+ * @old: the task context to copy (NOT NULL)
+ */
+void aa_dup_task_context(struct aa_task_cxt *new, const struct aa_task_cxt *old)
+{
+ *new = *old;
+ aa_get_profile(new->profile);
+ aa_get_profile(new->previous);
+ aa_get_profile(new->onexec);
+}
+
+/**
+ * replace_cxt - replace a context profile
+ * @cxt: task context (NOT NULL)
+ * @profile: profile to replace cxt group (NOT NULL)
+ *
+ * Replace context grouping profile reference with @profile
+ */
+static void replace_group(struct aa_task_cxt *cxt, struct aa_profile *profile)
+{
+ if (cxt->profile == profile)
+ return;
+
+ BUG_ON(!profile);
+ if (unconfined(profile) || (cxt->profile->ns != profile->ns)) {
+ /* if switching to unconfined or a different profile namespace
+ * clear out context state
+ */
+ aa_put_profile(cxt->previous);
+ aa_put_profile(cxt->onexec);
+ cxt->previous = NULL;
+ cxt->onexec = NULL;
+ cxt->token = 0;
+ }
+ /* be careful switching cxt->profile, when racing replacement it
+ * is possible that cxt->profile->replacedby is the reference keeping
+ * @profile valid, so make sure to get its reference before dropping
+ * the reference on cxt->profile */
+ aa_get_profile(profile);
+ aa_put_profile(cxt->profile);
+ cxt->profile = profile;
+}
+
+/**
+ * aa_replace_current_profiles - replace the current tasks profiles
+ * @profile: new profile (NOT NULL)
+ *
+ * Returns: 0 or error on failure
+ */
+int aa_replace_current_profiles(struct aa_profile *profile)
+{
+ struct aa_task_cxt *cxt;
+ struct cred *new = prepare_creds();
+ if (!new)
+ return -ENOMEM;
+
+ cxt = new->security;
+ replace_group(cxt, profile);
+ /* todo add user group */
+
+ commit_creds(new);
+ return 0;
+}
+
+/**
+ * aa_set_current_onexec - set the tasks change_profile to happen onexec
+ * @profile: system profile to set at exec (MAYBE NULL)
+ *
+ * Returns: 0 or error on failure
+ */
+int aa_set_current_onexec(struct aa_profile *profile)
+{
+ struct aa_task_cxt *cxt;
+ struct cred *new = prepare_creds();
+ if (!new)
+ return -ENOMEM;
+
+ cxt = new->security;
+ aa_get_profile(profile);
+ aa_put_profile(cxt->onexec);
+ cxt->onexec = profile;
+
+ commit_creds(new);
+ return 0;
+}
+
+/**
+ * aa_set_current_hat - set the current tasks hat
+ * @profile: profile to set as the current hat (NOT NULL)
+ * @token: token value that must be specified to change from the hat
+ *
+ * Do switch of tasks hat. If the task is currently in a hat
+ * validate the token to match.
+ *
+ * Returns: 0 or error on failure
+ */
+int aa_set_current_hat(struct aa_profile *profile, u64 token)
+{
+ struct aa_task_cxt *cxt;
+ struct cred *new = prepare_creds();
+ if (!new)
+ return -ENOMEM;
+ BUG_ON(!profile);
+
+ cxt = new->security;
+ if (!cxt->previous) {
+ cxt->previous = cxt->profile;
+ cxt->token = token;
+ } else if (cxt->token == token) {
+ aa_put_profile(cxt->profile);
+ } else {
+ /* previous_profile && cxt->token != token */
+ abort_creds(new);
+ return -EACCES;
+ }
+ cxt->profile = aa_get_profile(aa_newest_version(profile));
+ /* clear exec on switching context */
+ aa_put_profile(cxt->onexec);
+ cxt->onexec = NULL;
+
+ commit_creds(new);
+ return 0;
+}
+
+/**
+ * aa_restore_previous_profile - exit from hat context restoring the profile
+ * @token: the token that must be matched to exit hat context
+ *
+ * Attempt to return out of a hat to the previous profile. The token
+ * must match the stored token value.
+ *
+ * Returns: 0 or error of failure
+ */
+int aa_restore_previous_profile(u64 token)
+{
+ struct aa_task_cxt *cxt;
+ struct cred *new = prepare_creds();
+ if (!new)
+ return -ENOMEM;
+
+ cxt = new->security;
+ if (cxt->token != token) {
+ abort_creds(new);
+ return -EACCES;
+ }
+ /* ignore restores when there is no saved profile */
+ if (!cxt->previous) {
+ abort_creds(new);
+ return 0;
+ }
+
+ aa_put_profile(cxt->profile);
+ cxt->profile = aa_newest_version(cxt->previous);
+ BUG_ON(!cxt->profile);
+ if (unlikely(cxt->profile != cxt->previous)) {
+ aa_get_profile(cxt->profile);
+ aa_put_profile(cxt->previous);
+ }
+ /* clear exec && prev information when restoring to previous context */
+ cxt->previous = NULL;
+ cxt->token = 0;
+ aa_put_profile(cxt->onexec);
+ cxt->onexec = NULL;
+
+ commit_creds(new);
+ return 0;
+}
diff --git a/security/apparmor/domain.c b/security/apparmor/domain.c
new file mode 100644
index 00000000000..bf5a739fdc1
--- /dev/null
+++ b/security/apparmor/domain.c
@@ -0,0 +1,796 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor policy attachment and domain transitions
+ *
+ * Copyright (C) 2002-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include <linux/errno.h>
+#include <linux/fdtable.h>
+#include <linux/file.h>
+#include <linux/mount.h>
+#include <linux/syscalls.h>
+#include <linux/tracehook.h>
+#include <linux/personality.h>
+
+#include "include/audit.h"
+#include "include/apparmorfs.h"
+#include "include/context.h"
+#include "include/domain.h"
+#include "include/file.h"
+#include "include/ipc.h"
+#include "include/match.h"
+#include "include/path.h"
+#include "include/policy.h"
+
+/**
+ * aa_free_domain_entries - free entries in a domain table
+ * @domain: the domain table to free (MAYBE NULL)
+ */
+void aa_free_domain_entries(struct aa_domain *domain)
+{
+ int i;
+ if (domain) {
+ if (!domain->table)
+ return;
+
+ for (i = 0; i < domain->size; i++)
+ kzfree(domain->table[i]);
+ kzfree(domain->table);
+ domain->table = NULL;
+ }
+}
+
+/**
+ * aa_may_change_ptraced_domain - check if can change profile on ptraced task
+ * @task: task we want to change profile of (NOT NULL)
+ * @to_profile: profile to change to (NOT NULL)
+ *
+ * Check if the task is ptraced and if so if the tracing task is allowed
+ * to trace the new domain
+ *
+ * Returns: %0 or error if change not allowed
+ */
+static int aa_may_change_ptraced_domain(struct task_struct *task,
+ struct aa_profile *to_profile)
+{
+ struct task_struct *tracer;
+ struct cred *cred = NULL;
+ struct aa_profile *tracerp = NULL;
+ int error = 0;
+
+ rcu_read_lock();
+ tracer = tracehook_tracer_task(task);
+ if (tracer) {
+ /* released below */
+ cred = get_task_cred(tracer);
+ tracerp = aa_cred_profile(cred);
+ }
+ rcu_read_unlock();
+
+ /* not ptraced */
+ if (!tracer || unconfined(tracerp))
+ goto out;
+
+ error = aa_may_ptrace(tracer, tracerp, to_profile, PTRACE_MODE_ATTACH);
+
+out:
+ if (cred)
+ put_cred(cred);
+
+ return error;
+}
+
+/**
+ * change_profile_perms - find permissions for change_profile
+ * @profile: the current profile (NOT NULL)
+ * @ns: the namespace being switched to (NOT NULL)
+ * @name: the name of the profile to change to (NOT NULL)
+ * @rstate: if !NULL will contain the state the match finished in (MAYBE NULL)
+ *
+ * Returns: permission set
+ */
+static struct file_perms change_profile_perms(struct aa_profile *profile,
+ struct aa_namespace *ns,
+ const char *name,
+ unsigned int *rstate)
+{
+ struct file_perms perms;
+ struct path_cond cond = { };
+ unsigned int state;
+
+ if (unconfined(profile)) {
+ perms.allowed = AA_MAY_CHANGE_PROFILE;
+ perms.xindex = perms.xdelegate = perms.dindex = 0;
+ perms.audit = perms.quiet = perms.kill = 0;
+ if (rstate)
+ *rstate = 0;
+ return perms;
+ } else if (!profile->file.dfa) {
+ return nullperms;
+ } else if ((ns == profile->ns)) {
+ /* try matching against rules with out namespace prependend */
+ perms = aa_str_perms(profile->file.dfa, profile->file.start,
+ name, &cond, rstate);
+ if (COMBINED_PERM_MASK(perms) & AA_MAY_CHANGE_PROFILE)
+ return perms;
+ }
+
+ /* try matching with namespace name and then profile */
+ state = aa_dfa_match(profile->file.dfa, profile->file.start,
+ ns->base.name);
+ state = aa_dfa_null_transition(profile->file.dfa, state, 0);
+ return aa_str_perms(profile->file.dfa, state, name, &cond, rstate);
+}
+
+/**
+ * __aa_attach_match_ - find an attachment match
+ * @name - to match against (NOT NULL)
+ * @head - profile list to walk (NOT NULL)
+ *
+ * Do a linear search on the profiles in the list. There is a matching
+ * preference where an exact match is prefered over a name which uses
+ * expressions to match, and matching expressions with the greatest
+ * xmatch_len are prefered.
+ *
+ * Requires: @head not be shared or have appropriate locks held
+ *
+ * Returns: profile or NULL if no match found
+ */
+static struct aa_profile *__aa_attach_match(const char *name,
+ struct list_head *head)
+{
+ int len = 0;
+ struct aa_profile *profile, *candidate = NULL;
+
+ list_for_each_entry(profile, head, base.list) {
+ if (profile->flags & PFLAG_NULL)
+ continue;
+ if (profile->xmatch && profile->xmatch_len > len) {
+ unsigned int state = aa_dfa_match(profile->xmatch,
+ DFA_START, name);
+ u16 perm = dfa_user_allow(profile->xmatch, state);
+ /* any accepting state means a valid match. */
+ if (perm & MAY_EXEC) {
+ candidate = profile;
+ len = profile->xmatch_len;
+ }
+ } else if (!strcmp(profile->base.name, name))
+ /* exact non-re match, no more searching required */
+ return profile;
+ }
+
+ return candidate;
+}
+
+/**
+ * aa_find_attach - do attachment search for unconfined processes
+ * @ns: the current namespace (NOT NULL)
+ * @list: list to search (NOT NULL)
+ * @name: the executable name to match against (NOT NULL)
+ *
+ * Returns: profile or NULL if no match found
+ */
+static struct aa_profile *aa_find_attach(struct aa_namespace *ns,
+ struct list_head *list,
+ const char *name)
+{
+ struct aa_profile *profile;
+
+ read_lock(&ns->lock);
+ profile = aa_get_profile(__aa_attach_match(name, list));
+ read_unlock(&ns->lock);
+
+ return profile;
+}
+
+/**
+ * separate_fqname - separate the namespace and profile names
+ * @fqname: the fqname name to split (NOT NULL)
+ * @ns_name: the namespace name if it exists (NOT NULL)
+ *
+ * This is the xtable equivalent routine of aa_split_fqname. It finds the
+ * split in an xtable fqname which contains an embedded \0 instead of a :
+ * if a namespace is specified. This is done so the xtable is constant and
+ * isn't resplit on every lookup.
+ *
+ * Either the profile or namespace name may be optional but if the namespace
+ * is specified the profile name termination must be present. This results
+ * in the following possible encodings:
+ * profile_name\0
+ * :ns_name\0profile_name\0
+ * :ns_name\0\0
+ *
+ * NOTE: the xtable fqname is prevalidated at load time in unpack_trans_table
+ *
+ * Returns: profile name if it is specified else NULL
+ */
+static const char *separate_fqname(const char *fqname, const char **ns_name)
+{
+ const char *name;
+
+ if (fqname[0] == ':') {
+ *ns_name = fqname + 1; /* skip : */
+ name = *ns_name + strlen(*ns_name) + 1;
+ if (!*name)
+ name = NULL;
+ } else {
+ *ns_name = NULL;
+ name = fqname;
+ }
+
+ return name;
+}
+
+static const char *next_name(int xtype, const char *name)
+{
+ return NULL;
+}
+
+/**
+ * x_to_profile - get target profile for a given xindex
+ * @profile: current profile (NOT NULL)
+ * @name: to to lookup if specified (NOT NULL)
+ * @xindex: index into x transition table
+ *
+ * find profile for a transition index
+ *
+ * Returns: refcounted profile or NULL if not found available
+ */
+static struct aa_profile *x_to_profile(struct aa_profile *profile,
+ const char *name, u16 xindex)
+{
+ struct aa_profile *new_profile = NULL;
+ struct aa_namespace *ns = profile->ns;
+ u16 xtype = xindex & AA_X_TYPE_MASK;
+ int index = xindex & AA_X_INDEX_MASK;
+
+ switch (xtype) {
+ case AA_X_NONE:
+ /* fail exec unless ix || ux fallback - handled by caller */
+ return NULL;
+ case AA_X_NAME:
+ if (xindex & AA_X_CHILD)
+ /* released by caller */
+ new_profile = aa_find_attach(ns,
+ &profile->base.profiles,
+ name);
+ else
+ /* released by caller */
+ new_profile = aa_find_attach(ns, &ns->base.profiles,
+ name);
+ /* released by caller */
+ return new_profile;
+ case AA_X_TABLE:
+ /* index is guarenteed to be in range */
+ name = profile->file.trans.table[index];
+ break;
+ }
+
+ for (; !new_profile && name; name = next_name(xtype, name)) {
+ struct aa_namespace *new_ns;
+ const char *xname = NULL;
+
+ new_ns = NULL;
+ if (xindex & AA_X_CHILD) {
+ /* release by caller */
+ new_profile = aa_find_child(profile, name);
+ if (new_profile)
+ return new_profile;
+ continue;
+ } else if (*name == ':') {
+ /* switching namespace */
+ const char *ns_name;
+ xname = name = separate_fqname(name, &ns_name);
+ if (!xname)
+ /* no name so use profile name */
+ xname = profile->base.hname;
+ if (*ns_name == '@') {
+ /* TODO: variable support */
+ ;
+ }
+ /* released below */
+ new_ns = aa_find_namespace(ns, ns_name);
+ if (!new_ns)
+ continue;
+ } else if (*name == '@') {
+ /* TODO: variable support */
+ continue;
+ } else {
+ xname = name;
+ }
+
+ /* released by caller */
+ new_profile = aa_find_profile(new_ns ? new_ns : ns, xname);
+ aa_put_namespace(new_ns);
+ }
+
+ /* released by caller */
+ return new_profile;
+}
+
+/**
+ * apparmor_bprm_set_creds - set the new creds on the bprm struct
+ * @bprm: binprm for the exec (NOT NULL)
+ *
+ * Returns: %0 or error on failure
+ */
+int apparmor_bprm_set_creds(struct linux_binprm *bprm)
+{
+ struct aa_task_cxt *cxt;
+ struct aa_profile *profile, *new_profile = NULL;
+ struct aa_namespace *ns;
+ char *buffer = NULL;
+ unsigned int state;
+ struct path_cond cond = {
+ bprm->file->f_path.dentry->d_inode->i_uid,
+ bprm->file->f_path.dentry->d_inode->i_mode
+ };
+ struct aa_audit_file sa = {
+ .base.operation = "exec",
+ .base.gfp_mask = GFP_KERNEL,
+ .request = MAY_EXEC,
+ .cond = &cond,
+ };
+
+ sa.base.error = cap_bprm_set_creds(bprm);
+ if (sa.base.error)
+ return sa.base.error;
+
+ if (bprm->cred_prepared)
+ return 0;
+
+ cxt = bprm->cred->security;
+ BUG_ON(!cxt);
+
+ profile = aa_get_profile(aa_newest_version(cxt->profile));
+ /*
+ * get the namespace from the replacement profile as replacement
+ * can change the namespace
+ */
+ ns = profile->ns;
+ state = profile->file.start;
+
+ /* buffer freed below, name is pointer inside of buffer */
+ sa.base.error = aa_get_name(&bprm->file->f_path, profile->path_flags,
+ &buffer, (char **)&sa.name);
+ if (sa.base.error) {
+ if (profile->flags &
+ (PFLAG_IX_ON_NAME_ERROR | PFLAG_UNCONFINED))
+ sa.base.error = 0;
+ sa.base.info = "Exec failed name resolution";
+ sa.name = bprm->filename;
+ goto audit;
+ }
+
+ if (unconfined(profile)) {
+ /* unconfined task - attach profile if one matches */
+ new_profile = aa_find_attach(ns, &ns->base.profiles, sa.name);
+ if (!new_profile)
+ goto cleanup;
+ goto apply;
+ } else if (cxt->onexec) {
+ /*
+ * onexec permissions are stored in a pair, rewalk the
+ * dfa to get start of the exec path match.
+ */
+ sa.perms = change_profile_perms(profile, cxt->onexec->ns,
+ sa.name, &state);
+ state = aa_dfa_null_transition(profile->file.dfa, state, 0);
+ }
+ sa.perms = aa_str_perms(profile->file.dfa, state, sa.name, &cond, NULL);
+ if (cxt->onexec && sa.perms.allowed & AA_MAY_ONEXEC) {
+ /* transfer the onexec reference, this is allowed as the
+ * cred is being prepared, and isn't committed yet.
+ */
+ new_profile = cxt->onexec;
+ cxt->onexec = NULL;
+ sa.base.info = "change_profile onexec";
+ } else if (sa.perms.allowed & MAY_EXEC) {
+ new_profile = x_to_profile(profile, sa.name, sa.perms.xindex);
+ if (!new_profile) {
+ if (sa.perms.xindex & AA_X_INHERIT) {
+ /* (p|c|n)ix - don't change profile */
+ sa.base.info = "ix fallback";
+ goto x_clear;
+ } else if (sa.perms.xindex & AA_X_UNCONFINED) {
+ new_profile = aa_get_profile(ns->unconfined);
+ sa.base.info = "ux fallback";
+ } else {
+ sa.base.error = -ENOENT;
+ sa.base.info = "profile not found";
+ }
+ }
+ } else if (COMPLAIN_MODE(profile)) {
+ new_profile = aa_new_null_profile(profile, 0);
+ sa.base.error = -EACCES;
+ if (!new_profile) {
+ sa.base.error = -ENOMEM;
+ sa.base.info = "could not create null profile";
+ } else
+ sa.name2 = new_profile->base.hname;
+ sa.perms.xindex |= AA_X_UNSAFE;
+ } else {
+ sa.base.error = -EACCES;
+ }
+
+ if (!new_profile)
+ goto audit;
+
+ if (profile == new_profile)
+ goto abort;
+
+ if (bprm->unsafe & LSM_UNSAFE_SHARE) {
+ /* FIXME: currently don't mediate shared state */
+ ;
+ }
+
+ if (bprm->unsafe & (LSM_UNSAFE_PTRACE | LSM_UNSAFE_PTRACE_CAP)) {
+ sa.base.error = aa_may_change_ptraced_domain(current,
+ new_profile);
+ if (sa.base.error)
+ goto abort;
+ }
+
+ /* Determine if secure exec is needed.
+ * Can be at this point for the following reasons:
+ * 1. unconfined switching to confined
+ * 2. confined switching to different confinement
+ * 3. confined switching to unconfined
+ *
+ * Cases 2 and 3 are marked as requiring secure exec
+ * (unless policy specified "unsafe exec")
+ *
+ * bprm->unsafe is used to cache the AA_X_UNSAFE permission
+ * to avoid having to recompute in secureexec
+ */
+ if (!(sa.perms.xindex & AA_X_UNSAFE)) {
+ AA_DEBUG("scrubbing environment variables for %s profile=%s\n",
+ sa.name, new_profile->base.hname);
+ bprm->unsafe |= AA_SECURE_X_NEEDED;
+ }
+apply:
+ sa.name2 = new_profile->base.hname;
+ /* When switching namespace ensure its part of audit message */
+ if (new_profile->ns != ns)
+ sa.name3 = new_profile->ns->base.hname;
+
+ /* when transitioning profiles clear unsafe personality bits */
+ bprm->per_clear |= PER_CLEAR_ON_SETID;
+
+ aa_put_profile(cxt->profile);
+ /* transfer new profile reference will be released when cxt is freed */
+ cxt->profile = new_profile;
+
+x_clear:
+ aa_put_profile(cxt->previous);
+ aa_put_profile(cxt->onexec);
+ cxt->previous = NULL;
+ cxt->onexec = NULL;
+ cxt->token = 0;
+
+audit:
+ sa.base.error = aa_audit_file(profile, &sa);
+
+cleanup:
+ aa_put_profile(profile);
+ kfree(buffer);
+
+ return sa.base.error;
+
+abort:
+ aa_put_profile(new_profile);
+ goto audit;
+}
+
+/**
+ * apparmor_bprm_secureexec - determine if secureexec is needed
+ * @bprm: binprm for exec (NOT NULL)
+ *
+ * Returns: %1 if secureexec is needed else %0
+ */
+int apparmor_bprm_secureexec(struct linux_binprm *bprm)
+{
+ int ret = cap_bprm_secureexec(bprm);
+
+ /* the decision to use secure exec is computed in set_creds
+ * and stored in bprm->unsafe.
+ */
+ if (!ret && (bprm->unsafe & AA_SECURE_X_NEEDED))
+ ret = 1;
+
+ return ret;
+}
+
+/**
+ * apparmor_bprm_committing_creds - do task cleanup on committing new creds
+ * @bprm: binprm for the exec (NOT NULL)
+ */
+void apparmor_bprm_committing_creds(struct linux_binprm *bprm)
+{
+ struct aa_profile *profile = __aa_current_profile();
+ struct aa_task_cxt *new_cxt = bprm->cred->security;
+
+ /* bail out if unconfined or not changing profile */
+ if ((new_cxt->profile == profile) ||
+ (unconfined(new_cxt->profile)))
+ return;
+
+ current->pdeath_signal = 0;
+
+ /* reset soft limits and set hard limits for the new profile */
+ __aa_transition_rlimits(profile, new_cxt->profile);
+}
+
+/**
+ * apparmor_bprm_commited_cred - do cleanup after new creds committed
+ * @bprm: binprm for the exec (NOT NULL)
+ */
+void apparmor_bprm_committed_creds(struct linux_binprm *bprm)
+{
+ /* TODO: cleanup signals - ipc mediation */
+ return;
+}
+
+/*
+ * Functions for self directed profile change
+ */
+
+/**
+ * new_compound_name - create an hname with @n2 appended to @n1
+ * @n1: base of hname (NOT NULL)
+ * @n2: name to append (NOT NULL)
+ *
+ * Returns: new name or NULL on error
+ */
+static char *new_compound_name(const char *n1, const char *n2)
+{
+ char *name = kmalloc(strlen(n1) + strlen(n2) + 3, GFP_KERNEL);
+ if (name)
+ sprintf(name, "%s//%s", n1, n2);
+ return name;
+}
+
+/**
+ * aa_change_hat - change hat to/from subprofile
+ * @hats: vector of hat names to try changing into (unused if @count == 0)
+ * @count: number of hat names in @hats
+ * @token: magic value to validate the hat change
+ * @permtest: true if this is just a permission test
+ *
+ * Change to the first profile specified in @hats that exists, and store
+ * the @hat_magic in the current task context. If the count == 0 and the
+ * @token matches that stored in the current task context, return to the
+ * top level profile.
+ *
+ * Returns %0 on success, error otherwise.
+ */
+int aa_change_hat(const char *hats[], int count, u64 token, bool permtest)
+{
+ const struct cred *cred;
+ struct aa_task_cxt *cxt;
+ struct aa_profile *profile, *previous_profile, *hat = NULL;
+ struct aa_audit_file sa = {
+ .base.gfp_mask = GFP_KERNEL,
+ .base.operation = "change_hat",
+ .request = AA_MAY_CHANGEHAT,
+ };
+ char *name = NULL;
+ int i;
+
+ /* released below */
+ cred = get_current_cred();
+ cxt = cred->security;
+ profile = aa_cred_profile(cred);
+ previous_profile = cxt->previous;
+
+ if (unconfined(profile)) {
+ sa.base.info = "unconfined";
+ sa.base.error = -EPERM;
+ goto audit;
+ }
+
+ if (count) {
+ /* attempting to change into a new hat or switch to a sibling */
+ struct aa_profile *root;
+ root = PROFILE_IS_HAT(profile) ? profile->parent : profile;
+ sa.name2 = profile->ns->base.hname;
+
+ /* find first matching hat */
+ for (i = 0; i < count && !hat; i++)
+ /* released below */
+ hat = aa_find_child(root, hats[i]);
+ if (!hat) {
+ if (!COMPLAIN_MODE(root) || permtest) {
+ sa.base.info = "hat not found";
+ if (list_empty(&root->base.profiles))
+ sa.base.error = -ECHILD;
+ else
+ sa.base.error = -ENOENT;
+ goto out;
+ }
+
+ /*
+ * In complain mode and failed to match any hats.
+ * Audit the failure based off of the first hat
+ * supplied. This is done due how userspace
+ * interacts with change_hat.
+ *
+ * TODO: Add logging of all failed hats
+ */
+
+ /* freed below */
+ name = new_compound_name(root->base.hname, hats[0]);
+ sa.name = name;
+ /* released below */
+ hat = aa_new_null_profile(profile, 1);
+ if (!hat) {
+ sa.base.info = "failed null profile create";
+ sa.base.error = -ENOMEM;
+ goto audit;
+ }
+ } else {
+ sa.name = hat->base.hname;
+ if (!PROFILE_IS_HAT(hat)) {
+ sa.base.info = "target not hat";
+ sa.base.error = -EPERM;
+ goto audit;
+ }
+ }
+
+ sa.base.error = aa_may_change_ptraced_domain(current, hat);
+ if (sa.base.error) {
+ sa.base.info = "ptraced";
+ sa.base.error = -EPERM;
+ goto audit;
+ }
+
+ if (!permtest) {
+ sa.base.error = aa_set_current_hat(hat, token);
+ if (sa.base.error == -EACCES)
+ /* kill task incase of brute force attacks */
+ sa.perms.kill = AA_MAY_CHANGEHAT;
+ else if (name && !sa.base.error)
+ /* reset error for learning of new hats */
+ sa.base.error = -ENOENT;
+ }
+ } else if (previous_profile) {
+ /* Return to saved profile. Kill task if restore fails
+ * to avoid brute force attacks
+ */
+ sa.name = previous_profile->base.hname;
+ sa.base.error = aa_restore_previous_profile(token);
+ sa.perms.kill = AA_MAY_CHANGEHAT;
+ } else
+ /* ignore restores when there is no saved profile */
+ goto out;
+
+audit:
+ if (!permtest)
+ sa.base.error = aa_audit_file(profile, &sa);
+
+out:
+ aa_put_profile(hat);
+ kfree(name);
+ put_cred(cred);
+
+ return sa.base.error;
+}
+
+/**
+ * aa_change_profile - perform a one-way profile transition
+ * @ns_name: name of the profile namespace to change to
+ * @hname: name of profile to change to
+ * @onexec: whether this transition is to take place immediately or at exec
+ * @permtest: true if this is just a permission test
+ *
+ * Change to new profile @name. Unlike with hats, there is no way
+ * to change back. If @onexec then the transition is delayed until
+ * the next exec.
+ *
+ * Returns %0 on success, error otherwise.
+ */
+int aa_change_profile(const char *ns_name, const char *hname, int onexec,
+ bool permtest)
+{
+ const struct cred *cred;
+ struct aa_task_cxt *cxt;
+ struct aa_profile *profile, *target = NULL;
+ struct aa_namespace *ns = NULL;
+ struct aa_audit_file sa = {
+ .request = AA_MAY_CHANGE_PROFILE,
+ .base.gfp_mask = GFP_KERNEL,
+ };
+
+ if (!hname && !ns_name)
+ return -EINVAL;
+
+ if (onexec)
+ sa.base.operation = "change_onexec";
+ else
+ sa.base.operation = "change_profile";
+
+ cred = get_current_cred();
+ cxt = cred->security;
+ profile = aa_cred_profile(cred);
+
+ if (ns_name) {
+ /* released below */
+ ns = aa_find_namespace(profile->ns, ns_name);
+ if (!ns) {
+ /* we don't create new namespace in complain mode */
+ sa.name2 = ns_name;
+ sa.base.info = "namespace not found";
+ sa.base.error = -ENOENT;
+ goto audit;
+ }
+ sa.name2 = ns->base.hname;
+ } else {
+ /* released below */
+ ns = aa_get_namespace(profile->ns);
+ sa.name2 = ns->base.hname;
+ }
+
+ /* if the name was not specified, use the name of the current profile */
+ if (!hname) {
+ if (unconfined(profile))
+ hname = ns->unconfined->base.hname;
+ else
+ hname = profile->base.hname;
+ }
+ sa.name = hname;
+
+ sa.perms = change_profile_perms(profile, ns, hname, NULL);
+ if (!(sa.perms.allowed & AA_MAY_CHANGE_PROFILE)) {
+ sa.base.error = -EACCES;
+ goto audit;
+ }
+
+ /* released below */
+ target = aa_find_profile(ns, hname);
+ if (!target) {
+ sa.base.info = "profile not found";
+ sa.base.error = -ENOENT;
+ if (permtest || !COMPLAIN_MODE(profile))
+ goto audit;
+ /* release below */
+ target = aa_new_null_profile(profile, 0);
+ if (!target) {
+ sa.base.info = "failed null profile create";
+ sa.base.error = -ENOMEM;
+ goto audit;
+ }
+ }
+
+ /* check if tracing task is allowed to trace target domain */
+ sa.base.error = aa_may_change_ptraced_domain(current, target);
+ if (sa.base.error) {
+ sa.base.info = "ptrace prevents transition";
+ goto audit;
+ }
+
+ if (permtest)
+ goto audit;
+
+ if (onexec)
+ sa.base.error = aa_set_current_onexec(target);
+ else
+ sa.base.error = aa_replace_current_profiles(target);
+
+audit:
+ if (!permtest)
+ sa.base.error = aa_audit_file(profile, &sa);
+
+ aa_put_namespace(ns);
+ aa_put_profile(target);
+ put_cred(cred);
+
+ return sa.base.error;
+}
diff --git a/security/apparmor/file.c b/security/apparmor/file.c
new file mode 100644
index 00000000000..43be3910c86
--- /dev/null
+++ b/security/apparmor/file.c
@@ -0,0 +1,556 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor mediation of files
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include "include/apparmor.h"
+#include "include/audit.h"
+#include "include/file.h"
+#include "include/match.h"
+#include "include/path.h"
+#include "include/policy.h"
+
+struct file_perms nullperms;
+
+/**
+ * aa_audit_file_sub_mask - convert a permission mask into string
+ * @buffer: buffer to write string to (NOT NULL)
+ * @mask: permission mask to convert
+ * @xindex: xindex
+ *
+ * NOTE: caller must make sure buffer is large enough for @mask
+ */
+static void aa_audit_file_sub_mask(char *buffer, u16 mask, u16 xindex)
+{
+ char *m = buffer;
+
+ if (mask & AA_EXEC_MMAP)
+ *m++ = 'm';
+ if (mask & MAY_READ)
+ *m++ = 'r';
+ if (mask & (MAY_WRITE | AA_MAY_CHMOD | AA_MAY_CHOWN))
+ *m++ = 'w';
+ else if (mask & MAY_APPEND)
+ *m++ = 'a';
+ if (mask & AA_MAY_CREATE)
+ *m++ = 'c';
+ if (mask & AA_MAY_DELETE)
+ *m++ = 'd';
+ if (mask & AA_MAY_LINK)
+ *m++ = 'l';
+ if (mask & AA_MAY_LOCK)
+ *m++ = 'k';
+ if (mask & MAY_EXEC)
+ *m++ = 'x';
+ *m++ = '\0';
+}
+
+/**
+ * aa_audit_file_mask - convert mask to owner::other string
+ * @buffer: buffer to write string to (NOT NULL)
+ * @mask: permission mask to convert
+ * @xindex: xindex
+ * @owner: if the mask is for owner or other
+ */
+static void aa_audit_file_mask(struct audit_buffer *ab, u16 mask, int xindex,
+ int owner)
+{
+ char str[10];
+
+ if (owner) {
+ aa_audit_file_sub_mask(str, mask, xindex);
+ strcat(str, "::");
+ } else {
+ strcpy(str, "::");
+ aa_audit_file_sub_mask(str + 2, mask, xindex);
+ }
+ audit_log_string(ab, str);
+}
+
+/**
+ * file_audit_cb - call back for file specific audit fields
+ * @ab: audit_buffer (NOT NULL)
+ * @va: audit struct to audit values of (NOT NULL)
+ */
+static void file_audit_cb(struct audit_buffer *ab, struct aa_audit *va)
+{
+ struct aa_audit_file *sa = container_of(va, struct aa_audit_file, base);
+ u16 denied = sa->request & ~sa->perms.allowed;
+ uid_t fsuid;
+
+ fsuid = current_fsuid();
+
+ if (sa->request & AA_AUDIT_FILE_MASK) {
+ audit_log_format(ab, " requested_mask=");
+ aa_audit_file_mask(ab, sa->request, AA_X_NONE,
+ fsuid == sa->cond->uid);
+ }
+ if (denied & AA_AUDIT_FILE_MASK) {
+ audit_log_format(ab, " denied_mask=");
+ aa_audit_file_mask(ab, denied, sa->perms.xindex,
+ fsuid == sa->cond->uid);
+ }
+ if (sa->request & AA_AUDIT_FILE_MASK) {
+ audit_log_format(ab, " fsuid=%d", fsuid);
+ audit_log_format(ab, " ouid=%d", sa->cond->uid);
+ }
+
+ if (sa->name) {
+ audit_log_format(ab, " name=");
+ audit_log_untrustedstring(ab, sa->name);
+ }
+
+ if (sa->name2) {
+ audit_log_format(ab, " name2=");
+ audit_log_untrustedstring(ab, sa->name2);
+ }
+
+ if (sa->name3) {
+ audit_log_format(ab, " name3=");
+ audit_log_untrustedstring(ab, sa->name3);
+ }
+}
+
+/**
+ * aa_audit_file - handle the auditing of file operations
+ * @profile: the profile being enforced (NOT NULL)
+ * @sa: file auditing context (NOT NULL)
+ *
+ * Returns: %0 or error on failure
+ */
+int aa_audit_file(struct aa_profile *profile, struct aa_audit_file *sa)
+{
+ int type = AUDIT_APPARMOR_AUTO;
+
+ if (likely(!sa->base.error)) {
+ u16 mask = sa->perms.audit;
+
+ if (unlikely(AUDIT_MODE(profile) == AUDIT_ALL))
+ mask = 0xffff;
+
+ /* mask off perms that are not being force audited */
+ sa->request &= mask;
+
+ if (likely(!sa->request))
+ return 0;
+ type = AUDIT_APPARMOR_AUDIT;
+ } else {
+ /* only report permissions that were denied */
+ sa->request = sa->request & ~sa->perms.allowed;
+
+ if (sa->request & sa->perms.kill)
+ type = AUDIT_APPARMOR_KILL;
+
+ /* quiet known rejects, assumes quiet and kill do not overlap */
+ if ((sa->request & sa->perms.quiet) &&
+ AUDIT_MODE(profile) != AUDIT_NOQUIET &&
+ AUDIT_MODE(profile) != AUDIT_ALL)
+ sa->request &= ~sa->perms.quiet;
+
+ if (!sa->request)
+ return COMPLAIN_MODE(profile) ? 0 : sa->base.error;
+ }
+ return aa_audit(type, profile, &sa->base, file_audit_cb);
+}
+
+/**
+ * aa_compute_perms - convert dfa compressed perms to internal perms
+ * @dfa: dfa to compute perms for (NOT NULL)
+ * @state: state in dfa
+ * @cond: conditions to consider (NOT NULL)
+ *
+ * TODO: convert from dfa + state to permission entry, do computation conversion
+ * at load time.
+ *
+ * Returns: computed permission set
+ */
+static struct file_perms aa_compute_perms(struct aa_dfa *dfa,
+ unsigned int state,
+ struct path_cond *cond)
+{
+ struct file_perms perms;
+
+ /* FIXME: change over to new dfa format
+ * currently file perms are encoded in the dfa, new format
+ * splits the permissions from the dfa. This mapping can be
+ * done at profile load
+ */
+ perms.kill = 0;
+ perms.dindex = 0;
+
+ if (current_fsuid() == cond->uid) {
+ perms.allowed = dfa_user_allow(dfa, state);
+ perms.audit = dfa_user_audit(dfa, state);
+ perms.quiet = dfa_user_quiet(dfa, state);
+ perms.xindex = dfa_user_xindex(dfa, state);
+ } else {
+ perms.allowed = dfa_other_allow(dfa, state);
+ perms.audit = dfa_other_audit(dfa, state);
+ perms.quiet = dfa_other_quiet(dfa, state);
+ perms.xindex = dfa_other_xindex(dfa, state);
+ }
+ /* in the old mapping MAY_WRITE implies
+ * AA_MAY_CREATE | AA_MAY_CHMOD | AA_MAY_CHOWN */
+ if (perms.allowed & MAY_WRITE)
+ perms.allowed |= AA_MAY_CREATE | AA_MAY_CHMOD | AA_MAY_CHOWN |
+ AA_MAY_DELETE;
+ if (perms.audit & MAY_WRITE)
+ perms.audit |= AA_MAY_CREATE | AA_MAY_CHMOD | AA_MAY_CHOWN |
+ AA_MAY_DELETE;
+ if (perms.quiet & MAY_WRITE)
+ perms.quiet |= AA_MAY_CREATE | AA_MAY_CHMOD | AA_MAY_CHOWN |
+ AA_MAY_DELETE;
+
+ /* in the old mapping AA_MAY_LOCK and link subset are overlayed
+ * and only determined by which part of a pair they are in
+ */
+ if (perms.allowed & AA_MAY_LOCK)
+ perms.allowed |= AA_LINK_SUBSET;
+
+ /* change_profile wasn't determined by ownership in old mapping */
+ if (ACCEPT_TABLE(dfa)[state] & 0x80000000)
+ perms.allowed |= AA_MAY_CHANGE_PROFILE;
+
+ return perms;
+}
+
+/**
+ * aa_str_perms - find permission that match @name
+ * @dfa: to match against (NOT NULL)
+ * @state: state to start matching in
+ * @name: string to match against dfa (NOT NULL)
+ * @cond: conditions to consider for permission set computation (NOT NULL)
+ * @rstate: if !NULL return state match finished in (MAYBE NULL)
+ *
+ * TODO: Update when permission mapping is moved to load time
+ *
+ * Returns: file permission for @name
+ */
+struct file_perms aa_str_perms(struct aa_dfa *dfa, unsigned int start,
+ const char *name, struct path_cond *cond,
+ unsigned int *rstate)
+{
+ unsigned int state;
+ if (!dfa)
+ return nullperms;
+
+ state = aa_dfa_match(dfa, start, name);
+
+ if (rstate)
+ *rstate = state;
+
+ /* TODO: convert to new dfa format */
+
+ return aa_compute_perms(dfa, state, cond);
+}
+
+/**
+ * aa_pathstr_perm - do permission check & audit for @name
+ * @profile: profile being enforced (NOT NULL)
+ * @op: name of the operation (NOT NULL)
+ * @name: path string to check permission for (NOT NULL)
+ * @request: requested permissions
+ * @cond: conditional info for this request (NOT NULL)
+ *
+ * Do permission check for paths that are predefined. This fn will
+ * be removed once security_sysctl goes away.
+ *
+ * Returns: %0 else error if access denied or other error
+ */
+int aa_pathstr_perm(struct aa_profile *profile, const char *op,
+ const char *name, u16 request, struct path_cond *cond)
+{
+ struct aa_audit_file sa = {
+ .base.operation = op,
+ .base.gfp_mask = GFP_KERNEL,
+ .request = request,
+ .name = name,
+ .cond = cond,
+ };
+
+ sa.perms = aa_str_perms(profile->file.dfa, profile->file.start, sa.name,
+ cond,
+ NULL);
+ if (request & ~sa.perms.allowed)
+ sa.base.error = -EACCES;
+ return aa_audit_file(profile, &sa);
+}
+
+/**
+ * aa_path_perm - do permissions check & audit for @path
+ * @profile: profile being enforced (NOT NULL)
+ * @operation: name of the operation being enforced (NOT NULL)
+ * @path: path to check permissions of (NOT NULL)
+ * @request: requested permissions
+ * @cond: conditional info for this request (NOT NULL)
+ *
+ * Returns: %0 else error if access denied or other error
+ */
+int aa_path_perm(struct aa_profile *profile, const char *operation,
+ struct path *path, u16 request, struct path_cond *cond)
+{
+ char *buffer, *name;
+ struct aa_audit_file sa = {
+ .base.operation = operation,
+ .base.gfp_mask = GFP_KERNEL,
+ .request = request,
+ .cond = cond,
+ };
+ int flags = profile->path_flags |
+ (S_ISDIR(cond->mode) ? PATH_IS_DIR : 0);
+ /* buffer freed below - name is pointer inside buffer */
+ sa.base.error = aa_get_name(path, flags, &buffer, &name);
+ sa.name = name;
+ if (sa.base.error) {
+ sa.perms = nullperms;
+ if (sa.base.error == -ENOENT)
+ sa.base.info = "Failed name lookup - deleted entry";
+ else if (sa.base.error == -ESTALE)
+ sa.base.info = "Failed name lookup - disconnected path";
+ else if (sa.base.error == -ENAMETOOLONG)
+ sa.base.info = "Failed name lookup - name too long";
+ else
+ sa.base.info = "Failed name lookup";
+ } else {
+ sa.perms = aa_str_perms(profile->file.dfa, profile->file.start,
+ sa.name, cond, NULL);
+ if (request & ~sa.perms.allowed)
+ sa.base.error = -EACCES;
+ }
+ sa.base.error = aa_audit_file(profile, &sa);
+ kfree(buffer);
+
+ return sa.base.error;
+}
+
+/**
+ * xindex_is_subset - helper for aa_path_link
+ * @link: link permission set
+ * @target: target permission set
+ *
+ * test target x permissions are equal OR a subset of link x permissions
+ * this is done as part of the subset test, where a hardlink must have
+ * a subset of permissions that the target has.
+ *
+ * Returns: %1 if subset else %0
+ */
+static inline bool xindex_is_subset(u16 link, u16 target)
+{
+ if (((link & ~AA_X_UNSAFE) != (target & ~AA_X_UNSAFE)) ||
+ ((link & AA_X_UNSAFE) && !(target & AA_X_UNSAFE)))
+ return 0;
+
+ return 1;
+}
+
+/**
+ * aa_path_link - Handle hard link permission check
+ * @profile: the profile being enforced (NOT NULL)
+ * @old_dentry: the target dentry (NOT NULL)
+ * @new_dir: directory the new link will be created in (NOT NULL)
+ * @new_dentry: the link being created (NOT NULL)
+ *
+ * Handle the permission test for a link & target pair. Permission
+ * is encoded as a pair where the link permission is determined
+ * first, and if allowed, the target is tested. The target test
+ * is done from the point of the link match (not start of DFA)
+ * making the target permission dependent on the link permission match.
+ *
+ * The subset test if required forces that permissions granted
+ * on link are a subset of the permission granted to target.
+ *
+ * Returns: %0 if allowed else error
+ */
+int aa_path_link(struct aa_profile *profile, struct dentry *old_dentry,
+ struct path *new_dir, struct dentry *new_dentry)
+{
+ struct path link = { new_dir->mnt, new_dentry };
+ struct path target = { new_dir->mnt, old_dentry };
+ struct path_cond cond = {
+ old_dentry->d_inode->i_uid,
+ old_dentry->d_inode->i_mode
+ };
+ char *buffer = NULL, *buffer2 = NULL;
+ char *lname, *tname;
+ struct file_perms perms;
+ unsigned int state;
+
+ struct aa_audit_file sa = {
+ .base.operation = "link",
+ .base.gfp_mask = GFP_KERNEL,
+ .request = AA_MAY_LINK,
+ .cond = &cond,
+ .perms = nullperms,
+ };
+ /* buffer freed below, lname is pointer in buffer */
+ sa.base.error = aa_get_name(&link, profile->path_flags, &buffer,
+ &lname);
+ sa.name = lname;
+ if (sa.base.error)
+ goto audit;
+
+ /* buffer2 freed below, tname is pointer in buffer2 */
+ sa.base.error = aa_get_name(&target, profile->path_flags, &buffer2,
+ &tname);
+ sa.name2 = tname;
+ if (sa.base.error)
+ goto audit;
+
+ sa.base.error = -EACCES;
+
+ /* aa_str_perms - handles the case of the dfa being NULL */
+ sa.perms = aa_str_perms(profile->file.dfa, profile->file.start, lname,
+ &cond, &state);
+ sa.perms.audit &= AA_MAY_LINK;
+ sa.perms.quiet &= AA_MAY_LINK;
+ sa.perms.kill &= AA_MAY_LINK;
+
+ if (!(sa.perms.allowed & AA_MAY_LINK))
+ goto audit;
+
+ /* test to see if target can be paired with link */
+ state = aa_dfa_null_transition(profile->file.dfa, state,
+ profile->flags & PFLAG_OLD_NULL_TRANS);
+ perms = aa_str_perms(profile->file.dfa, state, tname, &cond, NULL);
+ if (!(perms.allowed & AA_MAY_LINK)) {
+ sa.base.info = "target restricted";
+ goto audit;
+ }
+
+ /* done if link subset test is not required */
+ if (!(perms.allowed & AA_LINK_SUBSET))
+ goto done_tests;
+
+ /* Do link perm subset test requiring allowed permission on link are a
+ * subset of the allowed permissions on target.
+ */
+ perms = aa_str_perms(profile->file.dfa, profile->file.start, tname,
+ &cond, NULL);
+
+ /* AA_MAY_LINK is not considered in the subset test */
+ sa.request = sa.perms.allowed & ~AA_MAY_LINK;
+ sa.perms.allowed &= perms.allowed | AA_MAY_LINK;
+
+ sa.request |= AA_AUDIT_FILE_MASK & (sa.perms.allowed & ~perms.allowed);
+ if (sa.request & ~sa.perms.allowed) {
+ goto audit;
+ } else if ((sa.perms.allowed & MAY_EXEC) &&
+ !xindex_is_subset(sa.perms.xindex, perms.xindex)) {
+ sa.perms.allowed &= ~MAY_EXEC;
+ sa.request |= MAY_EXEC;
+ sa.base.info = "link not subset of target";
+ goto audit;
+ }
+
+done_tests:
+ sa.base.error = 0;
+
+audit:
+ sa.base.error = aa_audit_file(profile, &sa);
+ kfree(buffer);
+ kfree(buffer2);
+
+ return sa.base.error;
+}
+
+/**
+ * aa_is_deleted_file - test if a file has been completely unlinked
+ * @dentry: dentry of file to test for deletion (NOT NULL)
+ *
+ * Returns: %1 if deleted else %0
+ */
+static inline bool aa_is_deleted_file(struct dentry *dentry)
+{
+ if (d_unlinked(dentry) && dentry->d_inode->i_nlink == 0)
+ return 1;
+ return 0;
+}
+
+/**
+ * aa_file_common_perm - core permission check & audit for files
+ * @profile: profile being enforced (NOT NULL)
+ * @operation: name of operation (NOT NULL)
+ * @file: file to check permissions of (NOT NULL)
+ * @request: requested permissions
+ * @name: path name to revalidate permission on (MAYBE NULL if @error != 0)
+ * @error: error result of name lookup when find @name
+ *
+ * Returns: %0 if access allowed else %1
+ */
+static int aa_file_common_perm(struct aa_profile *profile,
+ const char *operation, struct file *file,
+ u16 request, const char *name, int error)
+{
+ struct path_cond cond = {
+ .uid = file->f_path.dentry->d_inode->i_uid,
+ .mode = file->f_path.dentry->d_inode->i_mode
+ };
+ struct aa_audit_file sa = {
+ .base.operation = operation,
+ .base.gfp_mask = GFP_KERNEL,
+ .request = request,
+ .base.error = error,
+ .name = name,
+ .cond = &cond,
+ };
+
+ if (sa.base.error) {
+ sa.perms = nullperms;
+ if (sa.base.error == -ENOENT &&
+ aa_is_deleted_file(file->f_path.dentry)) {
+ /* Access to open files that are deleted are
+ * give a pass (implicit delegation)
+ */
+ sa.base.error = 0;
+ sa.perms.allowed = sa.request;
+ } else if (sa.base.error == -ENOENT)
+ sa.base.info = "Failed name lookup - deleted entry";
+ else if (sa.base.error == -ESTALE)
+ sa.base.info = "Failed name lookup - disconnected path";
+ else if (sa.base.error == -ENAMETOOLONG)
+ sa.base.info = "Failed name lookup - name too long";
+ else
+ sa.base.info = "Failed name lookup";
+ } else {
+ sa.perms = aa_str_perms(profile->file.dfa, profile->file.start,
+ sa.name, &cond, NULL);
+ if (request & ~sa.perms.allowed)
+ sa.base.error = -EACCES;
+ }
+ sa.base.error = aa_audit_file(profile, &sa);
+
+ return sa.base.error;
+}
+
+/**
+ * aa_file_perm - do permission revalidation check & audit for @file
+ * @profile: profile being enforced (NOT NULL)
+ * @operation: name of the operation (NOT NULL)
+ * @file: file to revalidate access permissions on (NOT NULL)
+ * @request: requested permissions
+ *
+ * Returns: %0 if access allowed else error
+ */
+int aa_file_perm(struct aa_profile *profile, const char *operation,
+ struct file *file, u16 request)
+{
+ char *buffer, *name;
+ umode_t mode = file->f_path.dentry->d_inode->i_mode;
+ /* buffer freed below, name is a pointer inside of buffer */
+ int flags = profile->path_flags | (S_ISDIR(mode) ? PATH_IS_DIR : 0);
+ int error = aa_get_name(&file->f_path, flags, &buffer, &name);
+
+ error = aa_file_common_perm(profile, operation, file, request, name,
+ error);
+ kfree(buffer);
+ return error;
+}
diff --git a/security/apparmor/include/apparmor.h b/security/apparmor/include/apparmor.h
new file mode 100644
index 00000000000..25c16470ac8
--- /dev/null
+++ b/security/apparmor/include/apparmor.h
@@ -0,0 +1,82 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor basic global and lib definitions
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __APPARMOR_H
+#define __APPARMOR_H
+
+#include <linux/fs.h>
+
+#include "match.h"
+
+/* Control parameters settable thru module/boot flags or
+ * via /sys/kernel/security/apparmor/control */
+extern enum audit_mode aa_g_audit;
+extern int aa_g_audit_header;
+extern int aa_g_debug;
+extern int aa_g_lock_policy;
+extern int aa_g_logsyscall;
+extern int aa_g_paranoid_load;
+extern unsigned int aa_g_path_max;
+
+/*
+ * DEBUG remains global (no per profile flag) since it is mostly used in sysctl
+ * which is not related to profile accesses.
+ */
+
+#define AA_DEBUG(fmt, args...) \
+ do { \
+ if (aa_g_debug && printk_ratelimit()) \
+ printk(KERN_DEBUG "AppArmor: " fmt, ##args); \
+ } while (0)
+
+#define AA_ERROR(fmt, args...) \
+ do { \
+ if (printk_ratelimit()) \
+ printk(KERN_ERR "AppArmor: " fmt, ##args); \
+ } while (0)
+
+/* Flag indicating whether initialization completed */
+extern int apparmor_initialized;
+void apparmor_disable(void);
+
+/* fn's in lib */
+char *aa_split_fqname(char *args, char **ns_name);
+bool aa_strneq(const char *str, const char *sub, int len);
+void aa_info_message(const char *str);
+
+/**
+ * aa_dfa_null_transition - step to next state after null character
+ * @dfa: the dfa to match against
+ * @start: the state of the dfa to start matching in
+ * @old: true if using // as the null transition
+ *
+ * aa_dfa_null_transition transitions to the next state after a null
+ * character which is not used in standard matching and is only
+ * used to seperate pairs.
+ */
+static inline unsigned int aa_dfa_null_transition(struct aa_dfa *dfa,
+ unsigned int start, bool old)
+{
+ if (unlikely(old))
+ return aa_dfa_match_len(dfa, start, "//", 2);
+ else
+ return aa_dfa_match_len(dfa, start, "\0", 1);
+}
+
+static inline bool mediated_filesystem(struct inode *inode)
+{
+ return !(inode->i_sb->s_flags & MS_NOUSER);
+}
+
+#endif /* __APPARMOR_H */
diff --git a/security/apparmor/include/apparmorfs.h b/security/apparmor/include/apparmorfs.h
new file mode 100644
index 00000000000..d071bf1e8f2
--- /dev/null
+++ b/security/apparmor/include/apparmorfs.h
@@ -0,0 +1,28 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor filesystem definitions.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __AA_APPARMORFS_H
+#define __AA_APPARMORFS_H
+
+extern struct dentry *aa_fs_null;
+extern struct vfsmount *aa_fs_mnt;
+
+extern void aa_destroy_aafs(void);
+
+#ifdef CONFIG_SECURITY_APPARMOR_COMPAT_24
+extern const struct file_operations aa_fs_matching_fops;
+extern const struct file_operations aa_fs_features_fops;
+#endif
+
+#endif /* __AA_APPARMORFS_H */
diff --git a/security/apparmor/include/audit.h b/security/apparmor/include/audit.h
new file mode 100644
index 00000000000..d86cfee00dd
--- /dev/null
+++ b/security/apparmor/include/audit.h
@@ -0,0 +1,54 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor auditing function definitions.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __AA_AUDIT_H
+#define __AA_AUDIT_H
+
+#include <linux/audit.h>
+#include <linux/fs.h>
+#include <linux/sched.h>
+#include <linux/slab.h>
+
+struct aa_profile;
+
+extern const char *audit_mode_names[];
+#define AUDIT_MAX_INDEX 5
+
+#define AUDIT_APPARMOR_AUTO 0 /* auto choose audit message type */
+
+enum audit_mode {
+ AUDIT_NORMAL, /* follow normal auditing of accesses */
+ AUDIT_QUIET_DENIED, /* quiet all denied access messages */
+ AUDIT_QUIET, /* quiet all messages */
+ AUDIT_NOQUIET, /* do not quiet audit messages */
+ AUDIT_ALL /* audit all accesses */
+};
+
+/*
+ * aa_audit - AppArmor auditing structure
+ * Structure is populated by access control code and passed to aa_audit which
+ * provides for a single point of logging.
+ */
+struct aa_audit {
+ struct task_struct *task;
+ gfp_t gfp_mask;
+ int error;
+ const char *operation;
+ const char *info;
+};
+
+int aa_audit(int type, struct aa_profile *profile, struct aa_audit *sa,
+ void (*cb) (struct audit_buffer *, struct aa_audit *));
+
+#endif /* __AA_AUDIT_H */
diff --git a/security/apparmor/include/capability.h b/security/apparmor/include/capability.h
new file mode 100644
index 00000000000..8287e9d2ee3
--- /dev/null
+++ b/security/apparmor/include/capability.h
@@ -0,0 +1,45 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor capability mediation definitions.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __AA_CAPABILITY_H
+#define __AA_CAPABILITY_H
+
+#include <linux/sched.h>
+
+struct aa_profile;
+
+/* aa_caps - confinement data for capabilities
+ * @allowed: capabilities mask
+ * @audit: caps that are to be audited
+ * @quiet: caps that should not be audited
+ * @kill: caps that when requested will result in the task being killed
+ * @extended: caps that are subject finer grained mediation
+ */
+struct aa_caps {
+ kernel_cap_t allowed;
+ kernel_cap_t audit;
+ kernel_cap_t quiet;
+ kernel_cap_t kill;
+ kernel_cap_t extended;
+};
+
+int aa_capable(struct task_struct *task, struct aa_profile *profile, int cap,
+ int audit);
+
+static inline void aa_free_cap_rules(struct aa_caps *caps)
+{
+ /* NOP */
+}
+
+#endif /* __AA_CAPBILITY_H */
diff --git a/security/apparmor/include/context.h b/security/apparmor/include/context.h
new file mode 100644
index 00000000000..1560adce35b
--- /dev/null
+++ b/security/apparmor/include/context.h
@@ -0,0 +1,154 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor contexts used to associate "labels" to objects.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __AA_CONTEXT_H
+#define __AA_CONTEXT_H
+
+#include <linux/cred.h>
+#include <linux/slab.h>
+#include <linux/sched.h>
+
+#include "policy.h"
+
+/* struct aa_file_cxt - the AppArmor context the file was opened in
+ * @profile: the profile the file was opened under
+ * @perms: the permission the file was opened with
+ */
+struct aa_file_cxt {
+ struct aa_profile *profile;
+ u16 allowed;
+};
+
+/**
+ * aa_alloc_file_context - allocate file_cxt
+ * @gfp: gfp flags for allocation
+ *
+ * Returns: file_cxt or NULL on failure
+ */
+static inline struct aa_file_cxt *aa_alloc_file_context(gfp_t gfp)
+{
+ return kzalloc(sizeof(struct aa_file_cxt), gfp);
+}
+
+/**
+ * aa_free_file_context - free a file_cxt
+ * @cxt: file_cxt to free (MAYBE_NULL)
+ */
+static inline void aa_free_file_context(struct aa_file_cxt *cxt)
+{
+ if (cxt) {
+ aa_put_profile(cxt->profile);
+ kzfree(cxt);
+ }
+}
+
+/**
+ * struct aa_task_cxt - primary label for confined tasks
+ * @profile: the current profile (NOT NULL)
+ * @exec: profile to transition to on next exec (MAYBE NULL)
+ * @previous: profile the task may return to (MAYBE NULL)
+ * @token: magic value the task must know for returning to @previous_profile
+ *
+ * Contains the task's current profile (which could change due to
+ * change_hat). Plus the hat_magic needed during change_hat.
+ *
+ * TODO: make so a task can be confined by a stack of contexts
+ */
+struct aa_task_cxt {
+ struct aa_profile *profile;
+ struct aa_profile *onexec;
+ struct aa_profile *previous;
+ u64 token;
+};
+
+struct aa_task_cxt *aa_alloc_task_context(gfp_t flags);
+void aa_free_task_context(struct aa_task_cxt *cxt);
+void aa_dup_task_context(struct aa_task_cxt *new,
+ const struct aa_task_cxt *old);
+int aa_replace_current_profiles(struct aa_profile *profile);
+int aa_set_current_onexec(struct aa_profile *profile);
+int aa_set_current_hat(struct aa_profile *profile, u64 token);
+int aa_restore_previous_profile(u64 cookie);
+
+/**
+ * __aa_task_is_confined - determine if @task has any confinement
+ * @task: task to check confinement of (NOT NULL)
+ *
+ * If @task != current needs to be called in RCU safe critical section
+ */
+static inline bool __aa_task_is_confined(struct task_struct *task)
+{
+ struct aa_task_cxt *cxt = __task_cred(task)->security;
+
+ BUG_ON(!cxt || !cxt->profile);
+ if (unconfined(aa_newest_version(cxt->profile)))
+ return 0;
+
+ return 1;
+}
+
+/**
+ * aa_cred_profile - obtain cred's profiles
+ * @cred: cred to obtain profiles from (NOT NULL)
+ *
+ * Returns: confining profile
+ *
+ * does NOT increment reference count
+ */
+static inline struct aa_profile *aa_cred_profile(const struct cred *cred)
+{
+ struct aa_task_cxt *cxt = cred->security;
+ BUG_ON(!cxt || !cxt->profile);
+ return aa_newest_version(cxt->profile);
+}
+
+/**
+ * __aa_current_profile - find the current tasks confining profile
+ *
+ * Returns: up to date confining profile or the ns unconfined profile (NOT NULL)
+ *
+ * This fn will not update the tasks cred to the most up to date version
+ * of the profile so it is safe to call when inside of locks.
+ */
+static inline struct aa_profile *__aa_current_profile(void)
+{
+ return aa_cred_profile(current_cred());
+}
+
+/**
+ * aa_current_profile - find the current tasks confining profile and do updates
+ *
+ * Returns: up to date confining profile or the ns unconfined profile (NOT NULL)
+ *
+ * This fn will update the tasks cred structure if the profile has been
+ * replaced. Not safe to call inside locks
+ */
+static inline struct aa_profile *aa_current_profile(void)
+{
+ const struct aa_task_cxt *cxt = current_cred()->security;
+ struct aa_profile *profile;
+ BUG_ON(!cxt || !cxt->profile);
+
+ profile = aa_newest_version(cxt->profile);
+ /*
+ * Whether or not replacement succeeds, use newest profile so
+ * there is no need to update it after replacement.
+ */
+ if (unlikely((cxt->profile != profile)))
+ aa_replace_current_profiles(profile);
+
+ return profile;
+}
+
+#endif /* __AA_CONTEXT_H */
diff --git a/security/apparmor/include/domain.h b/security/apparmor/include/domain.h
new file mode 100644
index 00000000000..b1ba488cf82
--- /dev/null
+++ b/security/apparmor/include/domain.h
@@ -0,0 +1,36 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor security domain transition function definitions.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include <linux/binfmts.h>
+#include <linux/types.h>
+
+#ifndef __AA_DOMAIN_H
+#define __AA_DOMAIN_H
+
+struct aa_domain {
+ int size;
+ char **table;
+};
+
+int apparmor_bprm_set_creds(struct linux_binprm *bprm);
+int apparmor_bprm_secureexec(struct linux_binprm *bprm);
+void apparmor_bprm_committing_creds(struct linux_binprm *bprm);
+void apparmor_bprm_committed_creds(struct linux_binprm *bprm);
+
+void aa_free_domain_entries(struct aa_domain *domain);
+int aa_change_hat(const char *hats[], int count, u64 token, bool permtest);
+int aa_change_profile(const char *ns_name, const char *name, int onexec,
+ bool permtest);
+
+#endif /* __AA_DOMAIN_H */
diff --git a/security/apparmor/include/file.h b/security/apparmor/include/file.h
new file mode 100644
index 00000000000..559f0858c6a
--- /dev/null
+++ b/security/apparmor/include/file.h
@@ -0,0 +1,228 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor file mediation function definitions.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __AA_FILE_H
+#define __AA_FILE_H
+
+#include <linux/path.h>
+
+#include "audit.h"
+#include "domain.h"
+#include "match.h"
+
+struct aa_profile;
+
+/*
+ * We use MAY_EXEC, MAY_WRITE, MAY_READ, MAY_APPEND and the following flags
+ * for profile permissions
+ */
+#define AA_MAY_LINK 0x0010
+#define AA_MAY_LOCK 0x0020
+#define AA_EXEC_MMAP 0x0040
+
+#define AA_MAY_CREATE 0x0080
+#define AA_MAY_DELETE 0x0100
+#define AA_MAY_CHMOD 0x0200
+#define AA_MAY_CHOWN 0x0400
+
+#define AA_LINK_SUBSET 0x0800
+#define AA_MAY_CHANGEHAT 0x2000 /* ctrl auditing only */
+#define AA_MAY_ONEXEC 0x4000 /* exec allows onexec */
+#define AA_MAY_CHANGE_PROFILE 0x8000
+
+#define AA_AUDIT_FILE_MASK (MAY_READ | MAY_WRITE | MAY_EXEC | MAY_APPEND |\
+ AA_MAY_LINK | AA_MAY_LOCK | AA_EXEC_MMAP | \
+ AA_MAY_CREATE | AA_MAY_DELETE | AA_MAY_CHMOD |\
+ AA_MAY_CHOWN)
+
+/*
+ * The xindex is broken into 3 parts
+ * - index - an index into either the exec name table or the variable table
+ * - exec type - which determines how the executable name and index are used
+ * - flags - which modify how the destination name is applied
+ */
+#define AA_X_INDEX_MASK 0x03ff
+
+#define AA_X_TYPE_MASK 0x0c00
+#define AA_X_TYPE_SHIFT 10
+#define AA_X_NONE 0x0000
+#define AA_X_NAME 0x0400 /* use executable name px */
+#define AA_X_TABLE 0x0800 /* use a specified name ->n# */
+
+#define AA_X_UNSAFE 0x1000
+#define AA_X_CHILD 0x2000 /* make >AA_X_NONE apply to children */
+#define AA_X_INHERIT 0x4000
+#define AA_X_UNCONFINED 0x8000
+
+/* AA_SECURE_X_NEEDED - is passed in the bprm->unsafe field */
+#define AA_SECURE_X_NEEDED 0x8000
+
+/* need to conditionalize which ones are being set */
+struct path_cond {
+ uid_t uid;
+ umode_t mode;
+};
+
+/* struct file_perms - file permission fo
+ * @allowed: mask of permissions that are allowed
+ * @audit: mask of permissions to force an audit message for
+ * @quiet: mask of permissions to quiet audit messages for
+ * @kill: mask of permissions that when matched will kill the task
+ * @xindex: exec transition index if @allowed contains MAY_EXEC
+ * @xdelegate: used by exec to determine set of delegates allowed
+ * @dindex: delegate table index, 0 if no delegation allowed
+ *
+ * The @audit and @queit mask should be mutually exclusive.
+ */
+struct file_perms {
+ u16 allowed;
+ u16 audit;
+ u16 quiet;
+ u16 kill;
+ u16 xindex;
+ u16 xdelegate;
+ u16 dindex;
+};
+
+extern struct file_perms nullperms;
+
+#define COMBINED_PERM_MASK(X) ((X).allowed | (X).audit | (X).quiet | (X).kill)
+
+/* FIXME: split perms from dfa and match this to description
+ * also add delegation info.
+ */
+static inline u16 dfa_map_xindex(u16 mask)
+{
+ u16 old_index = (mask >> 10) & 0xf;
+ u16 index = 0;
+
+ if (mask & 0x100)
+ index |= AA_X_UNSAFE;
+ if (mask & 0x200)
+ index |= AA_X_INHERIT;
+ if (mask & 0x80)
+ index |= AA_X_UNCONFINED;
+
+ if (old_index == 1) {
+ index |= AA_X_UNCONFINED;
+ } else if (old_index == 2) {
+ index |= AA_X_NAME;
+ } else if (old_index == 3) {
+ index |= AA_X_NAME | AA_X_CHILD;
+ } else {
+ index |= AA_X_TABLE;
+ index |= old_index - 4;
+ }
+
+ return index;
+}
+
+/*
+ * map old dfa inline permissions to new format
+ */
+#define dfa_user_allow(dfa, state) ((ACCEPT_TABLE(dfa)[state]) & 0x7f)
+#define dfa_user_audit(dfa, state) ((ACCEPT_TABLE2(dfa)[state]) & 0x7f)
+#define dfa_user_quiet(dfa, state) (((ACCEPT_TABLE2(dfa)[state]) >> 7) & 0x7f)
+#define dfa_user_xindex(dfa, state) \
+ (dfa_map_xindex(ACCEPT_TABLE(dfa)[state] & 0x3fff))
+
+#define dfa_other_allow(dfa, state) (((ACCEPT_TABLE(dfa)[state]) >> 14) & 0x7f)
+#define dfa_other_audit(dfa, state) (((ACCEPT_TABLE2(dfa)[state]) >> 14) & 0x7f)
+#define dfa_other_quiet(dfa, state) \
+ ((((ACCEPT_TABLE2(dfa)[state]) >> 7) >> 14) & 0x7f)
+#define dfa_other_xindex(dfa, state) \
+ dfa_map_xindex((ACCEPT_TABLE(dfa)[state] >> 14) & 0x3fff)
+
+struct aa_audit_file {
+ struct aa_audit base;
+
+ const char *name;
+ const char *name2;
+ const char *name3;
+ struct file_perms perms;
+ u16 request;
+ struct path_cond *cond;
+};
+
+int aa_audit_file(struct aa_profile *profile, struct aa_audit_file *sa);
+
+/**
+ * struct aa_file_rules - components used for file rule permissions
+ * @dfa: dfa to match path names and conditionals against
+ * @perms: permission table indexed by the matched state accept entry of @dfa
+ * @trans: transition table for indexed by named x transitions
+ *
+ * File permission are determined by matching a path against @dfa and then
+ * then using the value of the accept entry for the matching state as
+ * an index into @perms. If a named exec transition is required it is
+ * looked up in the transition table.
+ */
+struct aa_file_rules {
+ unsigned int start;
+ struct aa_dfa *dfa;
+ /* struct perms perms; */
+ struct aa_domain trans;
+ /* TODO: add delegate table */
+};
+
+struct file_perms aa_str_perms(struct aa_dfa *dfa, unsigned int start,
+ const char *name, struct path_cond *cond,
+ unsigned int *rstate);
+
+int aa_pathstr_perm(struct aa_profile *profile, const char *op,
+ const char *name, u16 request, struct path_cond *cond);
+
+int aa_path_perm(struct aa_profile *profile, const char *operation,
+ struct path *path, u16 request, struct path_cond *cond);
+
+int aa_path_link(struct aa_profile *profile, struct dentry *old_dentry,
+ struct path *new_dir, struct dentry *new_dentry);
+
+int aa_file_perm(struct aa_profile *profile, const char *operation,
+ struct file *file, u16 request);
+
+static inline void aa_free_file_rules(struct aa_file_rules *rules)
+{
+ aa_put_dfa(rules->dfa);
+ aa_free_domain_entries(&rules->trans);
+}
+
+#define ACC_FMODE(x) (("\000\004\002\006"[(x)&O_ACCMODE]) | (((x) << 1) & 0x40))
+
+/* from namei.c */
+#define MAP_OPEN_FLAGS(x) ((((x) + 1) & O_ACCMODE) ? (x) + 1 : (x))
+
+/**
+ * aa_map_file_perms - map file flags to AppArmor permissions
+ * @file: open file to map flags to AppArmor permissions
+ *
+ * Returns: apparmor permission set for the file
+ */
+static inline u16 aa_map_file_to_perms(struct file *file)
+{
+ int flags = MAP_OPEN_FLAGS(file->f_flags);
+ u16 perms = ACC_FMODE(file->f_mode);
+
+ if ((flags & O_APPEND) && (perms & MAY_WRITE))
+ perms = (perms & ~MAY_WRITE) | MAY_APPEND;
+ /* trunc implies write permission */
+ if (flags & O_TRUNC)
+ perms |= MAY_WRITE;
+ if (flags & O_CREAT)
+ perms |= AA_MAY_CREATE;
+
+ return perms;
+}
+
+#endif /* __AA_FILE_H */
diff --git a/security/apparmor/include/ipc.h b/security/apparmor/include/ipc.h
new file mode 100644
index 00000000000..aeda0fbc8b2
--- /dev/null
+++ b/security/apparmor/include/ipc.h
@@ -0,0 +1,28 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor ipc mediation function definitions.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __AA_IPC_H
+#define __AA_IPC_H
+
+#include <linux/sched.h>
+
+struct aa_profile;
+
+int aa_may_ptrace(struct task_struct *tracer_task, struct aa_profile *tracer,
+ struct aa_profile *tracee, unsigned int mode);
+
+int aa_ptrace(struct task_struct *tracer, struct task_struct *tracee,
+ unsigned int mode);
+
+#endif /* __AA_IPC_H */
diff --git a/security/apparmor/include/match.h b/security/apparmor/include/match.h
new file mode 100644
index 00000000000..5465d4dd0c2
--- /dev/null
+++ b/security/apparmor/include/match.h
@@ -0,0 +1,130 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor policy dfa matching engine definitions.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __AA_MATCH_H
+#define __AA_MATCH_H
+
+#define DFA_NOMATCH 0
+#define DFA_START 1
+
+#define DFA_VALID_PERM_MASK 0xffffffff
+#define DFA_VALID_PERM2_MASK 0xffffffff
+
+/**
+ * The format used for transition tables is based on the GNU flex table
+ * file format (--tables-file option; see Table File Format in the flex
+ * info pages and the flex sources for documentation). The magic number
+ * used in the header is 0x1B5E783D insted of 0xF13C57B1 though, because
+ * the YY_ID_CHK (check) and YY_ID_DEF (default) tables are used
+ * slightly differently (see the apparmor-parser package).
+ */
+
+#define YYTH_MAGIC 0x1B5E783D
+#define YYTH_DEF_RECURSE 0x1 /* DEF Table is recursive */
+
+struct table_set_header {
+ u32 th_magic; /* YYTH_MAGIC */
+ u32 th_hsize;
+ u32 th_ssize;
+ u16 th_flags;
+ char th_version[];
+};
+
+/* The YYTD_ID are one less than flex table mappings. The flex id
+ * has 1 subtracted at table load time, this allows us to directly use the
+ * ID's as indexes.
+ */
+#define YYTD_ID_ACCEPT 0
+#define YYTD_ID_BASE 1
+#define YYTD_ID_CHK 2
+#define YYTD_ID_DEF 3
+#define YYTD_ID_EC 4
+#define YYTD_ID_META 5
+#define YYTD_ID_ACCEPT2 6
+#define YYTD_ID_NXT 7
+#define YYTD_ID_TSIZE 8
+
+#define YYTD_DATA8 1
+#define YYTD_DATA16 2
+#define YYTD_DATA32 4
+#define YYTD_DATA64 8
+
+/* Each ACCEPT2 table gets 6 dedicated flags, YYTD_DATAX define the
+ * first flags
+ */
+#define ACCEPT1_FLAGS(X) ((X) & 0x3f)
+#define ACCEPT2_FLAGS(X) ACCEPT1_FLAGS((X) >> YYTD_ID_ACCEPT2)
+#define TO_ACCEPT1_FLAG(X) ACCEPT1_FLAGS(X)
+#define TO_ACCEPT2_FLAG(X) (ACCEPT1_FLAGS(X) << YYTD_ID_ACCEPT2)
+#define DFA_FLAG_VERIFY_STATES 0x1000
+
+struct table_header {
+ u16 td_id;
+ u16 td_flags;
+ u32 td_hilen;
+ u32 td_lolen;
+ char td_data[];
+};
+
+#define DEFAULT_TABLE(DFA) ((u16 *)((DFA)->tables[YYTD_ID_DEF]->td_data))
+#define BASE_TABLE(DFA) ((u32 *)((DFA)->tables[YYTD_ID_BASE]->td_data))
+#define NEXT_TABLE(DFA) ((u16 *)((DFA)->tables[YYTD_ID_NXT]->td_data))
+#define CHECK_TABLE(DFA) ((u16 *)((DFA)->tables[YYTD_ID_CHK]->td_data))
+#define EQUIV_TABLE(DFA) ((u8 *)((DFA)->tables[YYTD_ID_EC]->td_data))
+#define ACCEPT_TABLE(DFA) ((u32 *)((DFA)->tables[YYTD_ID_ACCEPT]->td_data))
+#define ACCEPT_TABLE2(DFA) ((u32 *)((DFA)->tables[YYTD_ID_ACCEPT2]->td_data))
+
+struct aa_dfa {
+ struct kref count;
+ u16 flags;
+ struct table_header *tables[YYTD_ID_TSIZE];
+};
+
+#define byte_to_byte(X) (X)
+
+#define UNPACK_ARRAY(TABLE, BLOB, LEN, TYPE, NTOHX) \
+ do { \
+ typeof(LEN) __i; \
+ TYPE *__t = (TYPE *) TABLE; \
+ TYPE *__b = (TYPE *) BLOB; \
+ for (__i = 0; __i < LEN; __i++) { \
+ __t[__i] = NTOHX(__b[__i]); \
+ } \
+ } while (0)
+
+static inline size_t table_size(size_t len, size_t el_size)
+{
+ return ALIGN(sizeof(struct table_header) + len * el_size, 8);
+}
+
+struct aa_dfa *aa_dfa_unpack(void *blob, size_t size, int flags);
+unsigned int aa_dfa_match_len(struct aa_dfa *dfa, unsigned int start,
+ const char *str, int len);
+unsigned int aa_dfa_match(struct aa_dfa *dfa, unsigned int start,
+ const char *str);
+void aa_dfa_free_kref(struct kref *kref);
+
+/**
+ * aa_put_dfa - put a dfa refcount
+ * @dfa: dfa to put refcount (MAYBE NULL)
+ *
+ * Requires: if @dfa != NULL that valid refcount be held
+ */
+static inline void aa_put_dfa(struct aa_dfa *dfa)
+{
+ if (dfa)
+ kref_put(&dfa->count, aa_dfa_free_kref);
+}
+
+#endif /* __AA_MATCH_H */
diff --git a/security/apparmor/include/net.h b/security/apparmor/include/net.h
new file mode 100644
index 00000000000..7d6ddebee5e
--- /dev/null
+++ b/security/apparmor/include/net.h
@@ -0,0 +1,40 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor network mediation definitions.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __AA_NET_H
+#define __AA_NET_H
+
+#include <net/sock.h>
+
+/* struct aa_net - network confinement data
+ * @allowed: basic network families permissions
+ * @audit_network: which network permissions to force audit
+ * @quiet_network: which network permissions to quiet rejects
+ */
+struct aa_net {
+ u16 allowed[AF_MAX];
+ u16 audit[AF_MAX];
+ u16 quiet[AF_MAX];
+};
+
+extern int aa_net_perm(struct aa_profile *profile, char *operation,
+ int family, int type, int protocol);
+extern int aa_revalidate_sk(struct sock *sk, char *operation);
+
+static inline void aa_free_net_rules(struct aa_net *new)
+{
+ /* NOP */
+}
+
+#endif /* __AA_NET_H */
diff --git a/security/apparmor/include/path.h b/security/apparmor/include/path.h
new file mode 100644
index 00000000000..6933d6497ff
--- /dev/null
+++ b/security/apparmor/include/path.h
@@ -0,0 +1,31 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor basic path manipulation function definitions.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __AA_PATH_H
+#define __AA_PATH_H
+
+
+enum path_flags {
+ PATH_IS_DIR = 0x1, /* path is a directory */
+ PATH_CONNECT_PATH = 0x4, /* connect disconnected paths to / */
+ PATH_CHROOT_REL = 0x8, /* do path lookup relative to chroot */
+ PATH_CHROOT_NSCONNECT = 0x10, /* connect paths that are at ns root */
+
+ PATH_MEDIATE_DELETED = 0x10000, /* mediate deleted paths */
+};
+
+int aa_get_name(struct path *path, int flags, char **buffer, char **name);
+char *sysctl_pathname(struct ctl_table *table, char *buffer, int buflen);
+
+#endif /* __AA_PATH_H */
diff --git a/security/apparmor/include/policy.h b/security/apparmor/include/policy.h
new file mode 100644
index 00000000000..56fc38a4681
--- /dev/null
+++ b/security/apparmor/include/policy.h
@@ -0,0 +1,307 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor policy definitions.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __AA_POLICY_H
+#define __AA_POLICY_H
+
+#include <linux/capability.h>
+#include <linux/cred.h>
+#include <linux/kref.h>
+#include <linux/sched.h>
+#include <linux/slab.h>
+#include <linux/socket.h>
+
+#include "apparmor.h"
+#include "audit.h"
+#include "capability.h"
+#include "domain.h"
+#include "file.h"
+#include "net.h"
+#include "resource.h"
+
+extern const char *profile_mode_names[];
+#define APPARMOR_NAMES_MAX_INDEX 3
+
+#define COMPLAIN_MODE(_profile) \
+ ((aa_g_profile_mode == APPARMOR_COMPLAIN) || ((_profile) && \
+ (_profile)->mode == APPARMOR_COMPLAIN))
+
+#define DO_KILL(_profile) \
+ ((aa_g_profile_mode == APPARMOR_KILL) || ((_profile) && \
+ (_profile)->mode == APPARMOR_KILL))
+
+#define PROFILE_IS_HAT(_profile) \
+ ((_profile) && (_profile)->flags & PFLAG_HAT)
+
+/*
+ * FIXME: currently need a clean way to replace and remove profiles as a
+ * set. It should be done at the namespace level.
+ * Either, with a set of profiles loaded at the namespace level or via
+ * a mark and remove marked interface.
+ */
+enum profile_mode {
+ APPARMOR_ENFORCE, /* enforce access rules */
+ APPARMOR_COMPLAIN, /* allow and log access violations */
+ APPARMOR_KILL, /* kill task on access violation */
+};
+
+enum profile_flags {
+ PFLAG_HAT = 1, /* profile is a hat */
+ PFLAG_UNCONFINED = 2, /* profile is the unconfined profile */
+ PFLAG_NULL = 4, /* profile is null learning profile */
+ PFLAG_IX_ON_NAME_ERROR = 8, /* fallback to ix on name lookup fail */
+ PFLAG_IMMUTABLE = 0x10, /* don't allow changes/replacement */
+ PFLAG_USER_DEFINED = 0x20, /* user based profile */
+ PFLAG_NO_LIST_REF = 0x40, /* list doesn't keep profile ref */
+ PFLAG_MMAP_MIN_ADDR = 0x80, /* profile controls mmap_min_addr */
+ PFLAG_OLD_NULL_TRANS = 0x100, /* use // as the null transition */
+
+ /* These flags must coorespond with PATH_flags */
+ PFLAG_MEDIATE_DELETED = 0x10000, /* mediate instead delegate deleted */
+};
+
+#define AA_NEW_SID 0
+
+struct aa_profile;
+
+/* struct aa_policy - common part of both namespaces and profiles
+ * @name: name of the object
+ * @hname - The hierarchical name
+ * @count: reference count of the obj
+ * @list: list policy object is on
+ * @profiles: head of the profiles list contained in the object
+ */
+struct aa_policy {
+ char *name;
+ char *hname;
+ struct kref count;
+ struct list_head list;
+ struct list_head profiles;
+};
+
+/* struct aa_ns_acct - accounting of profiles in namespace
+ * @max_size: maximum space allowed for all profiles in namespace
+ * @max_count: maximum number of profiles that can be in this namespace
+ * @size: current size of profiles
+ * @count: current count of profiles (includes null profiles)
+ */
+struct aa_ns_acct {
+ int max_size;
+ int max_count;
+ int size;
+ int count;
+};
+
+/* struct aa_namespace - namespace for a set of profiles
+ * @base: common policy
+ * @parent: parent of namespace
+ * @lock: lock for modifying the object
+ * @acct: accounting for the namespace
+ * @unconfined: special unconfined profile for the namespace
+ * @sub_ns: list of namespaces under the current namespace.
+ *
+ * An aa_namespace defines the set profiles that are searched to determine
+ * which profile to attach to a task. Profiles can not be shared between
+ * aa_namespaces and profile names within a namespace are guarenteed to be
+ * unique. When profiles in seperate namespaces have the same name they
+ * are NOT considered to be equivalent.
+ *
+ * Namespaces are hierarchical and only namespaces and profiles below the
+ * current namespace are visible.
+ *
+ * Namespace names must be unique and can not contain the characters :/\0
+ *
+ * FIXME TODO: add vserver support so a vserer (can it all be done in userspace)
+ */
+struct aa_namespace {
+ struct aa_policy base;
+ struct aa_namespace *parent;
+ rwlock_t lock;
+ struct aa_ns_acct acct;
+ struct aa_profile *unconfined;
+ struct list_head sub_ns;
+};
+
+/* struct aa_profile - basic confinement data
+ * @base - base componets of the profile (name, refcount, lists, lock ...)
+ * @parent: parent of profile
+ * @ns: namespace the profile is in
+ * @replacedby: is set profile that replaced this profile
+ * @xmatch: optional extended matching for unconfined executables names
+ * @xmatch_len: xmatch prefix len, used to determine xmatch priority
+ * @sid: the unique security id number of this profile
+ * @audit: the auditing mode of the profile
+ * @mode: the enforcement mode of the profile
+ * @flags: flags controlling profile behavior
+ * @path_flags: flags controlling path generation behavior
+ * @size: the memory consumed by this profiles rules
+ * @file: The set of rules governing basic file access and domain transitions
+ * @caps: capabilities for the profile
+ * @net: network controls for the profile
+ * @rlimits: rlimits for the profile
+ *
+ * The AppArmor profile contains the basic confinement data. Each profile
+ * has a name, and exist in a namespace. The @name and @exec_match are
+ * used to determine profile attachment against unconfined tasks. All other
+ * attachments are determined by in profile X transition rules.
+ *
+ * The @replacedby field is write protected by the profile lock. Reads
+ * are assumed to be atomic, and are done without locking.
+ *
+ * Profiles have a hierachy where hats and children profiles keep
+ * a reference to their parent.
+ *
+ * Profile names can not begin with a : and can not contain the \0
+ * character. If a profile name begins with / it will be considered when
+ * determining profile attachment on "unconfined" tasks.
+ */
+struct aa_profile {
+ struct aa_policy base;
+ struct aa_profile *parent;
+
+ struct aa_namespace *ns;
+ union {
+ struct aa_profile *replacedby;
+ const char *rename;
+ };
+ struct aa_dfa *xmatch;
+ int xmatch_len;
+ u32 sid;
+ enum audit_mode audit;
+ enum profile_mode mode;
+ u32 flags;
+ u32 path_flags;
+ int size;
+
+ unsigned long mmap_min_addr;
+
+ struct aa_file_rules file;
+ struct aa_caps caps;
+ struct aa_net net;
+ struct aa_rlimit rlimits;
+};
+
+extern struct aa_namespace *root_ns;
+extern enum profile_mode aa_g_profile_mode;
+
+void aa_add_profile(struct aa_policy *common, struct aa_profile *profile);
+
+int aa_alloc_root_ns(void);
+void aa_free_root_ns(void);
+void aa_free_namespace_kref(struct kref *kref);
+
+struct aa_namespace *aa_find_namespace(struct aa_namespace *root,
+ const char *name);
+
+static inline struct aa_policy *aa_get_common(struct aa_policy *c)
+{
+ if (c)
+ kref_get(&c->count);
+
+ return c;
+}
+
+/**
+ * aa_get_namespace - increment references count on @ns
+ * @ns: namespace to increment reference count of (MAYBE NULL)
+ *
+ * Returns: pointer to @ns if @ns is NULL returns NULL
+ * Requires: @ns must be held with valid refcount when called
+ */
+static inline struct aa_namespace *aa_get_namespace(struct aa_namespace *ns)
+{
+ if (ns)
+ kref_get(&(ns->base.count));
+
+ return ns;
+}
+
+/**
+ * aa_put_namespace - decrement refcount on @ns
+ * @ns: namespace to put reference to
+ *
+ * Decrement reference count to @ns and if no longer in use free it
+ */
+static inline void aa_put_namespace(struct aa_namespace *ns)
+{
+ if (ns)
+ kref_put(&ns->base.count, aa_free_namespace_kref);
+}
+
+struct aa_profile *aa_alloc_profile(const char *name);
+struct aa_profile *aa_new_null_profile(struct aa_profile *parent, int hat);
+void aa_free_profile_kref(struct kref *kref);
+struct aa_profile *aa_find_child(struct aa_profile *parent, const char *name);
+struct aa_profile *aa_find_profile(struct aa_namespace *ns, const char *name);
+struct aa_profile *aa_match_profile(struct aa_namespace *ns, const char *name);
+
+ssize_t aa_interface_replace_profiles(void *udata, size_t size, bool add_only);
+ssize_t aa_interface_remove_profiles(char *name, size_t size);
+
+#define unconfined(X) ((X)->flags & PFLAG_UNCONFINED)
+
+/**
+ * aa_newest_version - find the newest version of @profile
+ * @profile: the profile to check for newer versions of (NOT NULL)
+ *
+ * Returns: newest version of @profile, if @profile is the newest version
+ * return @profile.
+ *
+ * NOTE: the profile returned is not refcounted, The refcount on @profile
+ * must be held until the caller decides what to do with the returned newest
+ * version.
+ */
+static inline struct aa_profile *aa_newest_version(struct aa_profile *profile)
+{
+ if (unlikely(profile && profile->replacedby))
+ for (; profile->replacedby; profile = profile->replacedby) ;
+
+ return profile;
+}
+
+/**
+ * aa_get_profile - increment refcount on profile @p
+ * @p: profile (MAYBE NULL)
+ *
+ * Returns: pointer to @p if @p is NULL will return NULL
+ * Requires: @p must be held with valid refcount when called
+ */
+static inline struct aa_profile *aa_get_profile(struct aa_profile *p)
+{
+ if (p)
+ kref_get(&(p->base.count));
+
+ return p;
+}
+
+/**
+ * aa_put_profile - decrement refcount on profile @p
+ * @p: profile (MAYBE NULL)
+ */
+static inline void aa_put_profile(struct aa_profile *p)
+{
+ if (p)
+ kref_put(&p->base.count, aa_free_profile_kref);
+}
+
+static inline int AUDIT_MODE(struct aa_profile *profile)
+{
+ if (aa_g_audit != AUDIT_NORMAL)
+ return aa_g_audit;
+ if (profile)
+ return profile->audit;
+ return AUDIT_NORMAL;
+}
+
+#endif /* __AA_POLICY_H */
diff --git a/security/apparmor/include/policy_unpack.h b/security/apparmor/include/policy_unpack.h
new file mode 100644
index 00000000000..5605a3e8118
--- /dev/null
+++ b/security/apparmor/include/policy_unpack.h
@@ -0,0 +1,30 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor policy loading interface function definitions.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __POLICY_INTERFACE_H
+#define __POLICY_INTERFACE_H
+
+struct aa_audit_iface {
+ struct aa_audit base;
+
+ const char *name;
+ const char *name2;
+ long pos;
+};
+
+int aa_audit_iface(struct aa_audit_iface *sa);
+struct aa_profile *aa_unpack(void *udata, size_t size,
+ struct aa_audit_iface *sa);
+
+#endif /* __POLICY_INTERFACE_H */
diff --git a/security/apparmor/include/procattr.h b/security/apparmor/include/procattr.h
new file mode 100644
index 00000000000..6c6f271ae80
--- /dev/null
+++ b/security/apparmor/include/procattr.h
@@ -0,0 +1,26 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor /proc/<pid>/attr/ interface function defintions.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __AA_PROCATTR_H
+#define __AA_PROCATTR_H
+
+#define AA_DO_TEST 1
+#define AA_ONEXEC 1
+
+int aa_getprocattr(struct aa_profile *profile, char **string);
+int aa_setprocattr_changehat(char *args, size_t size, int test);
+int aa_setprocattr_changeprofile(char *fqname, int onexec, int test);
+int aa_setprocattr_permipc(char *fqname);
+
+#endif /* __AA_PROCATTR_H */
diff --git a/security/apparmor/include/resource.h b/security/apparmor/include/resource.h
new file mode 100644
index 00000000000..e8fc0795685
--- /dev/null
+++ b/security/apparmor/include/resource.h
@@ -0,0 +1,45 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor resource limits function defintions.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __AA_RESOURCE_H
+#define __AA_RESOURCE_H
+
+#include <linux/resource.h>
+#include <linux/sched.h>
+
+struct aa_profile;
+
+/* struct aa_rlimit - rlimits settings for the profile
+ * @mask: which hard limits to set
+ * @limits: rlimit values that override task limits
+ *
+ * AppArmor rlimits are used to set confined task rlimits. Only the
+ * limits specified in @mask will be controlled by apparmor.
+ */
+struct aa_rlimit {
+ unsigned int mask;
+ struct rlimit limits[RLIM_NLIMITS];
+};
+
+int aa_task_setrlimit(struct aa_profile *profile, unsigned int resource,
+ struct rlimit *new_rlim);
+
+void __aa_transition_rlimits(struct aa_profile *old, struct aa_profile *new);
+
+static inline void aa_free_rlimit_rules(struct aa_rlimit *rlims)
+{
+ /* NOP */
+}
+
+#endif /* __AA_RESOURCE_H */
diff --git a/security/apparmor/include/sid.h b/security/apparmor/include/sid.h
new file mode 100644
index 00000000000..020db35c301
--- /dev/null
+++ b/security/apparmor/include/sid.h
@@ -0,0 +1,24 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor security identifier (sid) definitions
+ *
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#ifndef __AA_SID_H
+#define __AA_SID_H
+
+#include <linux/types.h>
+
+struct aa_profile;
+
+u32 aa_alloc_sid(void);
+void aa_free_sid(u32 sid);
+
+#endif /* __AA_SID_H */
diff --git a/security/apparmor/ipc.c b/security/apparmor/ipc.c
new file mode 100644
index 00000000000..dbad011359d
--- /dev/null
+++ b/security/apparmor/ipc.c
@@ -0,0 +1,124 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor ipc mediation
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include <linux/gfp.h>
+#include <linux/ptrace.h>
+
+#include "include/audit.h"
+#include "include/capability.h"
+#include "include/context.h"
+#include "include/policy.h"
+
+struct aa_audit_ptrace {
+ struct aa_audit base;
+
+ pid_t tracer, tracee;
+};
+
+/* call back to audit ptrace fields */
+static void audit_cb(struct audit_buffer *ab, struct aa_audit *va)
+{
+ struct aa_audit_ptrace *sa = container_of(va, struct aa_audit_ptrace,
+ base);
+ audit_log_format(ab, " tracer=%d tracee=%d", sa->tracer, sa->tracee);
+}
+
+/**
+ * aa_audit_ptrace - do auditing for ptrace
+ * @profile: profile being enforced (NOT NULL)
+ * @sa: audit structure (NOT NULL)
+ *
+ * Returns: %0 or error code
+ */
+static int aa_audit_ptrace(struct aa_profile *profile,
+ struct aa_audit_ptrace *sa)
+{
+ return aa_audit(AUDIT_APPARMOR_AUTO, profile, &sa->base, audit_cb);
+}
+
+/**
+ * aa_may_ptrace - test if tracer task can trace the tracee
+ * @tracer_task: task who will do the tracing (NOT NULL)
+ * @tracer: profile of the task doing the tracing (NOT NULL)
+ * @tracee: task to be traced
+ * @mode: whether PTRACE_MODE_READ || PTRACE_MODE_ATTACH
+ *
+ * Returns: %0 else error code if permission denied or error
+ */
+int aa_may_ptrace(struct task_struct *tracer_task, struct aa_profile *tracer,
+ struct aa_profile *tracee, unsigned int mode)
+{
+ /* TODO: currently only based on capability, not extended ptrace
+ * rules,
+ * Test mode for PTRACE_MODE_READ || PTRACE_MODE_ATTACH
+ */
+
+ if (!tracer || tracer == tracee)
+ return 0;
+ /* log this capability request */
+ return aa_capable(tracer_task, tracer, CAP_SYS_PTRACE, 1);
+}
+
+/**
+ * aa_ptrace - do ptrace permission check and auditing
+ * @tracer: task doing the tracing
+ * @tracee: task being traced
+ * @mode: ptrace mode either PTRACE_MODE_READ || PTRACE_MODE_ATTACH
+ *
+ * Returns: %0 else error code if permission denied or error
+ */
+int aa_ptrace(struct task_struct *tracer, struct task_struct *tracee,
+ unsigned int mode)
+{
+ /*
+ * tracer can ptrace tracee when
+ * - tracer is unconfined ||
+ * - tracer & tracee are in the same namespace &&
+ * - tracer is in complain mode
+ * - tracer has rules allowing it to trace tracee currently this is:
+ * - confined by the same profile ||
+ * - tracer profile has CAP_SYS_PTRACE
+ */
+
+ struct aa_profile *tracer_p;
+ /* cred released below */
+ const struct cred *cred = get_task_cred(tracer);
+ int error = 0;
+ tracer_p = aa_cred_profile(cred);
+
+ if (!unconfined(tracer_p)) {
+ struct aa_audit_ptrace sa = {
+ .base.operation = "ptrace",
+ .base.gfp_mask = GFP_ATOMIC,
+ .tracer = tracer->pid,
+ .tracee = tracee->pid,
+ };
+ /* FIXME: different namespace restriction can be lifted
+ * if, namespace are matched to AppArmor namespaces
+ */
+ struct aa_profile *tracee_p;
+ /* lcred released below */
+ struct cred *lcred = get_task_cred(tracee);
+ tracee_p = aa_cred_profile(lcred);
+
+ sa.base.error = aa_may_ptrace(tracer, tracer_p, tracee_p, mode);
+ sa.base.error = aa_audit_ptrace(tracer_p, &sa);
+
+ put_cred(lcred);
+ error = sa.base.error;
+ }
+ put_cred(cred);
+
+ return error;
+}
diff --git a/security/apparmor/lib.c b/security/apparmor/lib.c
new file mode 100644
index 00000000000..1e18a4469c4
--- /dev/null
+++ b/security/apparmor/lib.c
@@ -0,0 +1,85 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains basic common functions used in AppArmor
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include <linux/slab.h>
+#include <linux/string.h>
+
+#include "include/audit.h"
+
+
+/**
+ * aa_split_fqname - split a fqname into a profile and namespace name
+ * @fqname: a full qualified name in namespace profile format
+ * @ns_name: pointer to portion of the string containing the ns name
+ *
+ * Returns: profile name or NULL if one is not specified
+ *
+ * Split a namespace name from a profile name (see policy.c for naming
+ * description). If a portion of the name is missing it returns NULL for
+ * that portion.
+ *
+ * NOTE: may modifiy the @fqname string. The pointers returned point
+ * into the @fqname string.
+ */
+char *aa_split_fqname(char *fqname, char **ns_name)
+{
+ char *name = strim(fqname);
+
+ *ns_name = NULL;
+ if (name[0] == ':') {
+ char *split = strchr(&name[1], ':');
+ if (split) {
+ /* overwrite ':' with \0 */
+ *split = 0;
+ name = skip_spaces(split + 1);
+ } else
+ /* a ns name without a following profile is allowed */
+ name = NULL;
+ *ns_name = &name[1];
+ }
+ if (name && *name == 0)
+ name = NULL;
+
+ return name;
+}
+
+/**
+ * aa_strneq - compare null terminated @str to a non null terminated substring
+ * @str: a null terminated string
+ * @sub: a substring, not necessarily null terminated
+ * @len: length of @sub to compare
+ *
+ * The @str string must be full consumed for this to be considered a match
+ */
+bool aa_strneq(const char *str, const char *sub, int len)
+{
+ int res = strncmp(str, sub, len);
+ if (res)
+ return 0;
+ if (str[len] == 0)
+ return 1;
+ return 0;
+}
+
+void aa_info_message(const char *str)
+{
+ struct aa_audit sa = {
+ .gfp_mask = GFP_KERNEL,
+ .info = str,
+ };
+ printk(KERN_INFO "AppArmor: %s\n", str);
+ if (audit_enabled)
+ aa_audit(AUDIT_APPARMOR_STATUS, NULL, &sa, NULL);
+}
+
diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
new file mode 100644
index 00000000000..82e222dce8b
--- /dev/null
+++ b/security/apparmor/lsm.c
@@ -0,0 +1,1082 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor LSM hooks.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include <linux/security.h>
+#include <linux/moduleparam.h>
+#include <linux/mm.h>
+#include <linux/mman.h>
+#include <linux/mount.h>
+#include <linux/namei.h>
+#include <linux/ptrace.h>
+#include <linux/ctype.h>
+#include <linux/sysctl.h>
+#include <linux/audit.h>
+#include <net/sock.h>
+
+#include "include/apparmor.h"
+#include "include/apparmorfs.h"
+#include "include/audit.h"
+#include "include/capability.h"
+#include "include/context.h"
+#include "include/file.h"
+#include "include/ipc.h"
+#include "include/net.h"
+#include "include/path.h"
+#include "include/policy.h"
+#include "include/procattr.h"
+
+/* Flag indicating whether initialization completed */
+int apparmor_initialized;
+
+/*
+ * LSM hook functions
+ */
+
+/*
+ * free the associated aa_task_cxt and put its profiles
+ */
+static void apparmor_cred_free(struct cred *cred)
+{
+ aa_free_task_context(cred->security);
+ cred->security = NULL;
+}
+
+/*
+ * allocate the apparmor part of blank credentials
+ */
+static int apparmor_cred_alloc_blank(struct cred *cred, gfp_t gfp)
+{
+ /* freed by apparmor_cred_free */
+ struct aa_task_cxt *cxt = aa_alloc_task_context(gfp);
+ if (!cxt)
+ return -ENOMEM;
+
+ cred->security = cxt;
+ return 0;
+}
+
+/*
+ * prepare new aa_task_cxt for modification by prepare_cred block
+ */
+static int apparmor_cred_prepare(struct cred *new, const struct cred *old,
+ gfp_t gfp)
+{
+ /* freed by apparmor_cred_free */
+ struct aa_task_cxt *cxt = aa_alloc_task_context(gfp);
+ if (!cxt)
+ return -ENOMEM;
+
+ aa_dup_task_context(cxt, old->security);
+ new->security = cxt;
+ return 0;
+}
+
+/*
+ * transfer the apparmor data to a blank set of creds
+ */
+static void apparmor_cred_transfer(struct cred *new, const struct cred *old)
+{
+ const struct aa_task_cxt *old_cxt = old->security;
+ struct aa_task_cxt *new_cxt = new->security;
+
+ aa_dup_task_context(new_cxt, old_cxt);
+}
+
+static int apparmor_ptrace_access_check(struct task_struct *child,
+ unsigned int mode)
+{
+ int rc;
+
+ rc = cap_ptrace_access_check(child, mode);
+ if (rc)
+ return rc;
+
+ return aa_ptrace(current, child, mode);
+}
+
+static int apparmor_ptrace_traceme(struct task_struct *parent)
+{
+ return aa_ptrace(parent, current, PTRACE_MODE_ATTACH);
+}
+
+/* Derived from security/commoncap.c:cap_capget */
+static int apparmor_capget(struct task_struct *target, kernel_cap_t *effective,
+ kernel_cap_t *inheritable, kernel_cap_t *permitted)
+{
+ struct aa_profile *profile;
+ const struct cred *cred;
+
+ rcu_read_lock();
+ cred = __task_cred(target);
+ profile = aa_cred_profile(cred);
+
+ *effective = cred->cap_effective;
+ *inheritable = cred->cap_inheritable;
+ *permitted = cred->cap_permitted;
+
+ if (!unconfined(profile))
+ *effective = cap_intersect(*effective, profile->caps.allowed);
+ rcu_read_unlock();
+
+ return 0;
+}
+
+static int apparmor_capable(struct task_struct *task, const struct cred *cred,
+ int cap, int audit)
+{
+ struct aa_profile *profile;
+ /* cap_capable returns 0 on success, else -EPERM */
+ int error = cap_capable(task, cred, cap, audit);
+
+ profile = aa_cred_profile(cred);
+ if (!error && !unconfined(profile))
+ error = aa_capable(task, profile, cap, audit);
+
+ return error;
+}
+
+static int apparmor_sysctl(struct ctl_table *table, int op)
+{
+ int error = 0;
+ struct aa_profile *profile = aa_current_profile();
+
+ if (!unconfined(profile)) {
+ char *buffer, *name;
+ int mask;
+
+ mask = 0;
+ if (op & 4)
+ mask |= MAY_READ;
+ if (op & 2)
+ mask |= MAY_WRITE;
+
+ error = -ENOMEM;
+ /* freed below */
+ buffer = (char *)__get_free_page(GFP_KERNEL);
+ if (!buffer)
+ goto out;
+
+ /*
+ * TODO: convert this over to using a global or per
+ * namespace control instead of a hard coded /proc
+ */
+ name = sysctl_pathname(table, buffer, PAGE_SIZE);
+ if (name && name - buffer >= 5) {
+ struct path_cond cond = { 0, S_IFREG };
+ name -= 5;
+ memcpy(name, "/proc", 5);
+ error = aa_pathstr_perm(profile, "sysctl", name, mask,
+ &cond);
+ }
+ free_page((unsigned long)buffer);
+ }
+
+out:
+ return error;
+}
+
+/**
+ * common_perm - basic common permission check wrapper fn for paths
+ * @op: operation name (NOT NULL)
+ * @path: path to check permission of (NOT NULL)
+ * @mask: requested permissions mask
+ * @cond: conditional info for the permission request (NOT NULL)
+ *
+ * Returns: %0 else error code if error or permission denied
+ */
+static int common_perm(const char *op, struct path *path, u16 mask,
+ struct path_cond *cond)
+{
+ struct aa_profile *profile;
+ int error = 0;
+
+ profile = __aa_current_profile();
+ if (!unconfined(profile))
+ error = aa_path_perm(profile, op, path, mask, cond);
+
+ return error;
+}
+
+/**
+ * common_perm_dentry - common permission wrapper when path is dir, dentry
+ * @op: operation name (NOT NULL)
+ * @dir: directory of the dentry (NOT NULL)
+ * @dentry: dentry to check (NOT NULL)
+ * @mask: requested permissions mask
+ * @cond: conditional info for the permission request (NOT NULL)
+ *
+ * Returns: %0 else error code if error or permission denied
+ */
+static int common_perm_dentry(const char *op, struct path *dir,
+ struct dentry *dentry, u16 mask,
+ struct path_cond *cond)
+{
+ struct path path = { dir->mnt, dentry };
+
+ return common_perm(op, &path, mask, cond);
+}
+
+/**
+ * common_perm_rm - common permission wrapper for operations doing rm
+ * @op: operation name (NOT NULL)
+ * @dir: directory that the dentry is in (NOT NULL)
+ * @dentry: dentry being rm'd (NOT NULL)
+ * @mask: requested permission mask
+ *
+ * Returns: %0 else error code if error or permission denied
+ */
+static int common_perm_rm(const char *op, struct path *dir,
+ struct dentry *dentry, u16 mask)
+{
+ struct inode *inode = dentry->d_inode;
+ struct path_cond cond = { };
+
+ if (!dir->mnt || !inode || !mediated_filesystem(inode))
+ return 0;
+
+ cond.uid = inode->i_uid;
+ cond.mode = inode->i_mode;
+
+ return common_perm_dentry(op, dir, dentry, mask, &cond);
+}
+
+/**
+ * common_perm_create - common permission wrapper for operations doing create
+ * @op: operation name (NOT NULL)
+ * @dir: directory that dentry will be created in (NOT NULL)
+ * @dentry: dentry to create (NOT NULL)
+ * @mask: request permission mask
+ * @mode: created file mode
+ *
+ * Returns: %0 else error code if error or permission denied
+ */
+static int common_perm_create(const char *op, struct path *dir,
+ struct dentry *dentry, u16 mask, umode_t mode)
+{
+ struct path_cond cond = { current_fsuid(), mode };
+
+ if (!dir->mnt || !mediated_filesystem(dir->dentry->d_inode))
+ return 0;
+
+ return common_perm_dentry(op, dir, dentry, mask, &cond);
+}
+
+static int apparmor_path_unlink(struct path *dir, struct dentry *dentry)
+{
+ return common_perm_rm("unlink", dir, dentry, AA_MAY_DELETE);
+}
+
+static int apparmor_path_mkdir(struct path *dir, struct dentry *dentry,
+ int mode)
+{
+ return common_perm_create("mkdir", dir, dentry, AA_MAY_CREATE, S_IFDIR);
+}
+
+static int apparmor_path_rmdir(struct path *dir, struct dentry *dentry)
+{
+ return common_perm_rm("rmdir", dir, dentry, AA_MAY_DELETE);
+}
+
+static int apparmor_path_mknod(struct path *dir, struct dentry *dentry,
+ int mode, unsigned int dev)
+{
+ return common_perm_create("mknod", dir, dentry, AA_MAY_CREATE, mode);
+}
+
+static int apparmor_path_truncate(struct path *path, loff_t length,
+ unsigned int time_attrs)
+{
+ struct path_cond cond = { path->dentry->d_inode->i_uid,
+ path->dentry->d_inode->i_mode
+ };
+
+ if (!path->mnt || !mediated_filesystem(path->dentry->d_inode))
+ return 0;
+ return common_perm("truncate", path, MAY_WRITE, &cond);
+}
+
+static int apparmor_path_symlink(struct path *dir, struct dentry *dentry,
+ const char *old_name)
+{
+ return common_perm_create("symlink_create", dir, dentry, AA_MAY_CREATE,
+ S_IFLNK);
+}
+
+static int apparmor_path_link(struct dentry *old_dentry, struct path *new_dir,
+ struct dentry *new_dentry)
+{
+ struct aa_profile *profile;
+ int error = 0, rc;
+
+ if ( (rc = cap_path_link(old_dentry, new_dir, new_dentry)) )
+ return rc;
+
+ if (!mediated_filesystem(old_dentry->d_inode))
+ return 0;
+
+ profile = aa_current_profile();
+ if (!unconfined(profile))
+ error = aa_path_link(profile, old_dentry, new_dir, new_dentry);
+ return error;
+}
+
+static int apparmor_path_rename(struct path *old_dir, struct dentry *old_dentry,
+ struct path *new_dir, struct dentry *new_dentry)
+{
+ struct aa_profile *profile;
+ int error = 0;
+
+ if (!mediated_filesystem(old_dentry->d_inode))
+ return 0;
+
+ profile = aa_current_profile();
+ if (!unconfined(profile)) {
+ struct path old_path = { old_dir->mnt, old_dentry };
+ struct path new_path = { new_dir->mnt, new_dentry };
+ struct path_cond cond = { old_dentry->d_inode->i_uid,
+ old_dentry->d_inode->i_mode
+ };
+
+ error = aa_path_perm(profile, "rename_src", &old_path,
+ MAY_READ | MAY_WRITE, &cond);
+ if (!error)
+ error = aa_path_perm(profile, "rename_dest", &new_path,
+ AA_MAY_CREATE | MAY_WRITE, &cond);
+
+ }
+ return error;
+}
+
+static int apparmor_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
+ mode_t mode)
+{
+ struct aa_profile *profile;
+ int error = 0;
+
+ if (!mediated_filesystem(dentry->d_inode))
+ return 0;
+
+ profile = aa_current_profile();
+ if (!unconfined(profile)) {
+ struct path path = { mnt, dentry };
+ struct path_cond cond = { dentry->d_inode->i_uid,
+ dentry->d_inode->i_mode
+ };
+
+ error = aa_path_perm(profile, "chmod", &path, AA_MAY_CHMOD,
+ &cond);
+ }
+
+ return error;
+}
+
+static int apparmor_path_chown(struct path *path, uid_t uid, gid_t gid)
+{
+ struct aa_profile *profile;
+ int error = 0;
+
+ if (!mediated_filesystem(path->dentry->d_inode))
+ return 0;
+
+ profile = aa_current_profile();
+ if (!unconfined(profile)) {
+ struct path_cond cond = { path->dentry->d_inode->i_uid,
+ path->dentry->d_inode->i_mode
+ };
+ error = aa_path_perm(profile, "chown", path, AA_MAY_CHOWN,
+ &cond);
+ }
+
+ return error;
+}
+
+static int apparmor_dentry_open(struct file *file, const struct cred *cred)
+{
+ struct aa_profile *profile;
+ int error = 0;
+
+ /* If in exec, permission is handled by bprm hooks */
+ if (current->in_execve ||
+ !mediated_filesystem(file->f_path.dentry->d_inode))
+ return 0;
+
+ profile = aa_cred_profile(cred);
+ if (!unconfined(profile)) {
+ struct aa_file_cxt *fcxt = file->f_security;
+ struct inode *inode = file->f_path.dentry->d_inode;
+ struct path_cond cond = { inode->i_uid, inode->i_mode };
+
+ error = aa_path_perm(profile, "open", &file->f_path,
+ aa_map_file_to_perms(file), &cond);
+ /* released by aa_free_file_context */
+ fcxt->profile = aa_get_profile(profile);
+ /* todo cache actual allowed permissions */
+ fcxt->allowed = aa_map_file_to_perms(file);
+ }
+
+ return error;
+}
+
+static int apparmor_file_alloc_security(struct file *file)
+{
+ /* freed by apparmor_file_free_security */
+ file->f_security = aa_alloc_file_context(GFP_KERNEL);
+ if (!file->f_security)
+ return -ENOMEM;
+ return 0;
+
+}
+
+static void apparmor_file_free_security(struct file *file)
+{
+ struct aa_file_cxt *cxt = file->f_security;
+
+ aa_free_file_context(cxt);
+}
+
+static int apparmor_file_permission(struct file *file, int mask)
+{
+ /*
+ * TODO: cache profiles that have revalidated?
+ */
+ struct aa_file_cxt *fcxt = file->f_security;
+ struct aa_profile *profile, *fprofile = aa_newest_version(fcxt->profile);
+ int error = 0;
+
+ if (!fprofile || !file->f_path.mnt ||
+ !mediated_filesystem(file->f_path.dentry->d_inode))
+ return 0;
+
+ profile = __aa_current_profile();
+
+ if (!unconfined(profile) &&
+ ((fprofile != profile) || (mask & ~fcxt->allowed)))
+ error = aa_file_perm(profile, "file_perm", file, mask);
+
+ return error;
+}
+
+static int common_file_perm(const char *op, struct file *file, u16 mask)
+{
+ const struct aa_file_cxt *fcxt = file->f_security;
+ struct aa_profile *profile, *fprofile = fcxt->profile;
+ int error = 0;
+
+ if (!fprofile || !file->f_path.mnt ||
+ !mediated_filesystem(file->f_path.dentry->d_inode))
+ return 0;
+
+ profile = aa_current_profile();
+ if (!unconfined(profile) && ((fprofile != profile) ||
+ (mask & ~fcxt->allowed)))
+ error = aa_file_perm(profile, op, file, mask);
+
+ return error;
+}
+
+static int apparmor_file_lock(struct file *file, unsigned int cmd)
+{
+ u16 mask = AA_MAY_LOCK;
+
+ if (cmd == F_WRLCK)
+ mask |= MAY_WRITE;
+
+ return common_file_perm("file_lock", file, mask);
+}
+
+static int common_mmap(struct file *file, const char *operation,
+ unsigned long prot, unsigned long flags)
+{
+ struct dentry *dentry;
+ int mask = 0;
+
+ if (!file || !file->f_security)
+ return 0;
+
+ if (prot & PROT_READ)
+ mask |= MAY_READ;
+ /*
+ * Private mappings don't require write perms since they don't
+ * write back to the files
+ */
+ if ((prot & PROT_WRITE) && !(flags & MAP_PRIVATE))
+ mask |= MAY_WRITE;
+ if (prot & PROT_EXEC)
+ mask |= AA_EXEC_MMAP;
+
+ dentry = file->f_path.dentry;
+ return common_file_perm(operation, file, mask);
+}
+
+static int apparmor_file_mmap(struct file *file, unsigned long reqprot,
+ unsigned long prot, unsigned long flags,
+ unsigned long addr, unsigned long addr_only)
+{
+ int rc = 0;
+
+ /* do DAC check */
+ rc = cap_file_mmap(file, reqprot, prot, flags, addr, addr_only);
+ if (rc || addr_only)
+ return rc;
+
+ return common_mmap(file, "file_mmap", prot, flags);
+}
+
+static int apparmor_file_mprotect(struct vm_area_struct *vma,
+ unsigned long reqprot, unsigned long prot)
+{
+ return common_mmap(vma->vm_file, "file_mprotect", prot,
+ !(vma->vm_flags & VM_SHARED) ? MAP_PRIVATE : 0);
+}
+
+static int apparmor_getprocattr(struct task_struct *task, char *name,
+ char **value)
+{
+ int error = -ENOENT;
+ struct aa_profile *profile;
+ /* released below */
+ const struct cred *cred = get_task_cred(task);
+ struct aa_task_cxt *cxt = cred->security;
+ profile = aa_cred_profile(cred);
+
+ if (strcmp(name, "current") == 0)
+ error = aa_getprocattr(aa_newest_version(cxt->profile),
+ value);
+ else if (strcmp(name, "prev") == 0 && cxt->previous)
+ error = aa_getprocattr(aa_newest_version(cxt->previous),
+ value);
+ else if (strcmp(name, "exec") == 0 && cxt->onexec)
+ error = aa_getprocattr(aa_newest_version(cxt->onexec),
+ value);
+ else
+ error = -EINVAL;
+
+ put_cred(cred);
+
+ return error;
+}
+
+static int apparmor_setprocattr(struct task_struct *task, char *name,
+ void *value, size_t size)
+{
+ char *command, *args;
+ size_t arg_size;
+ int error;
+
+ if (size == 0 || size >= PAGE_SIZE)
+ return -EINVAL;
+
+ /* task can only write its own attributes */
+ if (current != task)
+ return -EACCES;
+
+ args = value;
+ args[size] = '\0';
+ args = strim(args);
+ command = strsep(&args, " ");
+ if (!args)
+ return -EINVAL;
+ args = skip_spaces(args);
+ if (!*args)
+ return -EINVAL;
+
+ arg_size = size - (args - (char *) value);
+ if (strcmp(name, "current") == 0) {
+ if (strcmp(command, "changehat") == 0) {
+ error = aa_setprocattr_changehat(args, arg_size,
+ !AA_DO_TEST);
+ } else if (strcmp(command, "permhat") == 0) {
+ error = aa_setprocattr_changehat(args, arg_size,
+ AA_DO_TEST);
+ } else if (strcmp(command, "changeprofile") == 0) {
+ error = aa_setprocattr_changeprofile(args, !AA_ONEXEC,
+ !AA_DO_TEST);
+ } else if (strcmp(command, "permprofile") == 0) {
+ error = aa_setprocattr_changeprofile(args, !AA_ONEXEC,
+ AA_DO_TEST);
+ } else if (strcmp(command, "permipc") == 0) {
+ error = aa_setprocattr_permipc(args);
+ } else {
+ struct aa_audit sa = {
+ .operation = "setprocattr",
+ .gfp_mask = GFP_KERNEL,
+ .info = name,
+ .error = -EINVAL,
+ };
+ return aa_audit(AUDIT_APPARMOR_DENIED, NULL, &sa, NULL);
+ }
+ } else if (strcmp(name, "exec") == 0) {
+ error = aa_setprocattr_changeprofile(args, AA_ONEXEC,
+ !AA_DO_TEST);
+ } else {
+ /* only support the "current" and "exec" process attributes */
+ return -EINVAL;
+ }
+ if (!error)
+ error = size;
+ return error;
+}
+
+static int apparmor_task_setrlimit(unsigned int resource,
+ struct rlimit *new_rlim)
+{
+ struct aa_profile *profile = aa_current_profile();
+ int error = 0;
+
+ if (!unconfined(profile))
+ error = aa_task_setrlimit(profile, resource, new_rlim);
+
+ return error;
+}
+
+static int apparmor_socket_create(int family, int type, int protocol, int kern)
+{
+ struct aa_profile *profile;
+ int error = 0;
+
+ if (kern)
+ return 0;
+
+ profile = __aa_current_profile();
+ if (!unconfined(profile))
+ error = aa_net_perm(profile, "socket_create", family,
+ type, protocol);
+ return error;
+}
+
+static int apparmor_socket_post_create(struct socket *sock, int family,
+ int type, int protocol, int kern)
+{
+ struct sock *sk = sock->sk;
+
+ if (kern)
+ return 0;
+
+ return aa_revalidate_sk(sk, "socket_post_create");
+}
+
+static int apparmor_socket_bind(struct socket *sock,
+ struct sockaddr *address, int addrlen)
+{
+ struct sock *sk = sock->sk;
+
+ return aa_revalidate_sk(sk, "socket_bind");
+}
+
+static int apparmor_socket_connect(struct socket *sock,
+ struct sockaddr *address, int addrlen)
+{
+ struct sock *sk = sock->sk;
+
+ return aa_revalidate_sk(sk, "socket_connect");
+}
+
+static int apparmor_socket_listen(struct socket *sock, int backlog)
+{
+ struct sock *sk = sock->sk;
+
+ return aa_revalidate_sk(sk, "socket_listen");
+}
+
+static int apparmor_socket_accept(struct socket *sock, struct socket *newsock)
+{
+ struct sock *sk = sock->sk;
+
+ return aa_revalidate_sk(sk, "socket_accept");
+}
+
+static int apparmor_socket_sendmsg(struct socket *sock,
+ struct msghdr *msg, int size)
+{
+ struct sock *sk = sock->sk;
+
+ return aa_revalidate_sk(sk, "socket_sendmsg");
+}
+
+static int apparmor_socket_recvmsg(struct socket *sock,
+ struct msghdr *msg, int size, int flags)
+{
+ struct sock *sk = sock->sk;
+
+ return aa_revalidate_sk(sk, "socket_recvmsg");
+}
+
+static int apparmor_socket_getsockname(struct socket *sock)
+{
+ struct sock *sk = sock->sk;
+
+ return aa_revalidate_sk(sk, "socket_getsockname");
+}
+
+static int apparmor_socket_getpeername(struct socket *sock)
+{
+ struct sock *sk = sock->sk;
+
+ return aa_revalidate_sk(sk, "socket_getpeername");
+}
+
+static int apparmor_socket_getsockopt(struct socket *sock, int level,
+ int optname)
+{
+ struct sock *sk = sock->sk;
+
+ return aa_revalidate_sk(sk, "socket_getsockopt");
+}
+
+static int apparmor_socket_setsockopt(struct socket *sock, int level,
+ int optname)
+{
+ struct sock *sk = sock->sk;
+
+ return aa_revalidate_sk(sk, "socket_setsockopt");
+}
+
+static int apparmor_socket_shutdown(struct socket *sock, int how)
+{
+ struct sock *sk = sock->sk;
+
+ return aa_revalidate_sk(sk, "socket_shutdown");
+}
+
+static struct security_operations apparmor_ops = {
+ .name = "apparmor",
+
+ .ptrace_access_check = apparmor_ptrace_access_check,
+ .ptrace_traceme = apparmor_ptrace_traceme,
+ .capget = apparmor_capget,
+ .sysctl = apparmor_sysctl,
+ .capable = apparmor_capable,
+
+ .path_link = apparmor_path_link,
+ .path_unlink = apparmor_path_unlink,
+ .path_symlink = apparmor_path_symlink,
+ .path_mkdir = apparmor_path_mkdir,
+ .path_rmdir = apparmor_path_rmdir,
+ .path_mknod = apparmor_path_mknod,
+ .path_rename = apparmor_path_rename,
+ .path_chmod = apparmor_path_chmod,
+ .path_chown = apparmor_path_chown,
+ .path_truncate = apparmor_path_truncate,
+ .dentry_open = apparmor_dentry_open,
+
+ .file_permission = apparmor_file_permission,
+ .file_alloc_security = apparmor_file_alloc_security,
+ .file_free_security = apparmor_file_free_security,
+ .file_mmap = apparmor_file_mmap,
+ .file_mprotect = apparmor_file_mprotect,
+ .file_lock = apparmor_file_lock,
+
+ .getprocattr = apparmor_getprocattr,
+ .setprocattr = apparmor_setprocattr,
+
+ .socket_create = apparmor_socket_create,
+ .socket_post_create = apparmor_socket_post_create,
+ .socket_bind = apparmor_socket_bind,
+ .socket_connect = apparmor_socket_connect,
+ .socket_listen = apparmor_socket_listen,
+ .socket_accept = apparmor_socket_accept,
+ .socket_sendmsg = apparmor_socket_sendmsg,
+ .socket_recvmsg = apparmor_socket_recvmsg,
+ .socket_getsockname = apparmor_socket_getsockname,
+ .socket_getpeername = apparmor_socket_getpeername,
+ .socket_getsockopt = apparmor_socket_getsockopt,
+ .socket_setsockopt = apparmor_socket_setsockopt,
+ .socket_shutdown = apparmor_socket_shutdown,
+
+ .cred_alloc_blank = apparmor_cred_alloc_blank,
+ .cred_free = apparmor_cred_free,
+ .cred_prepare = apparmor_cred_prepare,
+ .cred_transfer = apparmor_cred_transfer,
+
+ .bprm_set_creds = apparmor_bprm_set_creds,
+ .bprm_committing_creds = apparmor_bprm_committing_creds,
+ .bprm_committed_creds = apparmor_bprm_committed_creds,
+ .bprm_secureexec = apparmor_bprm_secureexec,
+
+ .task_setrlimit = apparmor_task_setrlimit,
+};
+
+/*
+ * AppArmor sysfs module parameters
+ */
+
+static int param_set_aabool(const char *val, struct kernel_param *kp);
+static int param_get_aabool(char *buffer, struct kernel_param *kp);
+#define param_check_aabool(name, p) __param_check(name, p, int)
+
+static int param_set_aauint(const char *val, struct kernel_param *kp);
+static int param_get_aauint(char *buffer, struct kernel_param *kp);
+#define param_check_aauint(name, p) __param_check(name, p, int)
+
+static int param_set_aalockpolicy(const char *val, struct kernel_param *kp);
+static int param_get_aalockpolicy(char *buffer, struct kernel_param *kp);
+#define param_check_aalockpolicy(name, p) __param_check(name, p, int)
+
+static int param_set_audit(const char *val, struct kernel_param *kp);
+static int param_get_audit(char *buffer, struct kernel_param *kp);
+#define param_check_audit(name, p) __param_check(name, p, int)
+
+static int param_set_mode(const char *val, struct kernel_param *kp);
+static int param_get_mode(char *buffer, struct kernel_param *kp);
+#define param_check_mode(name, p) __param_check(name, p, int)
+
+/* Flag values, also controllable via /sys/module/apparmor/parameters
+ * We define special types as we want to do additional mediation.
+ */
+
+/* AppArmor global enforcement switch - complain, enforce, kill */
+enum profile_mode aa_g_profile_mode = APPARMOR_ENFORCE;
+module_param_call(mode, param_set_mode, param_get_mode,
+ &aa_g_profile_mode, S_IRUSR | S_IWUSR);
+
+/* Debug mode */
+int aa_g_debug;
+module_param_named(debug, aa_g_debug, aabool, S_IRUSR | S_IWUSR);
+
+/* Audit mode */
+enum audit_mode aa_g_audit;
+module_param_call(audit, param_set_audit, param_get_audit,
+ &aa_g_audit, S_IRUSR | S_IWUSR);
+
+/* Determines if audit header is included in audited messages. This
+ * provides more context if the audit daemon is not running
+ */
+int aa_g_audit_header;
+module_param_named(audit_header, aa_g_audit_header, aabool,
+ S_IRUSR | S_IWUSR);
+
+/* lock out loading/removal of policy
+ * TODO: add in at boot loading of policy, which is the only way to
+ * load policy, if lock_policy is set
+ */
+int aa_g_lock_policy;
+module_param_named(lock_policy, aa_g_lock_policy, aalockpolicy,
+ S_IRUSR | S_IWUSR);
+
+/* Syscall logging mode */
+int aa_g_logsyscall;
+module_param_named(logsyscall, aa_g_logsyscall, aabool, S_IRUSR | S_IWUSR);
+
+/* Maximum pathname length before accesses will start getting rejected */
+unsigned int aa_g_path_max = 2 * PATH_MAX;
+module_param_named(path_max, aa_g_path_max, aauint, S_IRUSR | S_IWUSR);
+
+/* Determines how paranoid loading of policy is and how much verification
+ * on the loaded policy is done.
+ */
+int aa_g_paranoid_load = 1;
+module_param_named(paranoid_load, aa_g_paranoid_load, aabool,
+ S_IRUSR | S_IWUSR);
+
+/* Boot time disable flag */
+static unsigned int apparmor_enabled = CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE;
+module_param_named(enabled, apparmor_enabled, aabool, S_IRUSR);
+
+static int __init apparmor_enabled_setup(char *str)
+{
+ unsigned long enabled;
+ int error = strict_strtoul(str, 0, &enabled);
+ if (!error)
+ apparmor_enabled = enabled ? 1 : 0;
+ return 1;
+}
+
+__setup("apparmor=", apparmor_enabled_setup);
+
+/* set global flag turning off the ability to load policy */
+static int param_set_aalockpolicy(const char *val, struct kernel_param *kp)
+{
+ if (!capable(CAP_MAC_ADMIN))
+ return -EPERM;
+ if (aa_g_lock_policy)
+ return -EACCES;
+ return param_set_bool(val, kp);
+}
+
+static int param_get_aalockpolicy(char *buffer, struct kernel_param *kp)
+{
+ if (!capable(CAP_MAC_ADMIN))
+ return -EPERM;
+ return param_get_bool(buffer, kp);
+}
+
+static int param_set_aabool(const char *val, struct kernel_param *kp)
+{
+ if (!capable(CAP_MAC_ADMIN))
+ return -EPERM;
+ return param_set_bool(val, kp);
+}
+
+static int param_get_aabool(char *buffer, struct kernel_param *kp)
+{
+ if (!capable(CAP_MAC_ADMIN))
+ return -EPERM;
+ return param_get_bool(buffer, kp);
+}
+
+static int param_set_aauint(const char *val, struct kernel_param *kp)
+{
+ if (!capable(CAP_MAC_ADMIN))
+ return -EPERM;
+ return param_set_uint(val, kp);
+}
+
+static int param_get_aauint(char *buffer, struct kernel_param *kp)
+{
+ if (!capable(CAP_MAC_ADMIN))
+ return -EPERM;
+ return param_get_uint(buffer, kp);
+}
+
+static int param_get_audit(char *buffer, struct kernel_param *kp)
+{
+ if (!capable(CAP_MAC_ADMIN))
+ return -EPERM;
+
+ if (!apparmor_enabled)
+ return -EINVAL;
+
+ return sprintf(buffer, "%s", audit_mode_names[aa_g_audit]);
+}
+
+static int param_set_audit(const char *val, struct kernel_param *kp)
+{
+ int i;
+ if (!capable(CAP_MAC_ADMIN))
+ return -EPERM;
+
+ if (!apparmor_enabled)
+ return -EINVAL;
+
+ if (!val)
+ return -EINVAL;
+
+ for (i = 0; i < AUDIT_MAX_INDEX; i++) {
+ if (strcmp(val, audit_mode_names[i]) == 0) {
+ aa_g_audit = i;
+ return 0;
+ }
+ }
+
+ return -EINVAL;
+}
+
+static int param_get_mode(char *buffer, struct kernel_param *kp)
+{
+ if (!capable(CAP_MAC_ADMIN))
+ return -EPERM;
+
+ if (!apparmor_enabled)
+ return -EINVAL;
+
+ return sprintf(buffer, "%s", profile_mode_names[aa_g_profile_mode]);
+}
+
+static int param_set_mode(const char *val, struct kernel_param *kp)
+{
+ int i;
+ if (!capable(CAP_MAC_ADMIN))
+ return -EPERM;
+
+ if (!apparmor_enabled)
+ return -EINVAL;
+
+ if (!val)
+ return -EINVAL;
+
+ for (i = 0; i < APPARMOR_NAMES_MAX_INDEX; i++) {
+ if (strcmp(val, profile_mode_names[i]) == 0) {
+ aa_g_profile_mode = i;
+ return 0;
+ }
+ }
+
+ return -EINVAL;
+}
+
+/*
+ * AppArmor init functions
+ */
+
+/**
+ * set_init_cxt - set a task context and profile on the first task.
+ *
+ * TODO: allow setting an alternate profile than unconfined
+ */
+static int __init set_init_cxt(void)
+{
+ struct cred *cred = (struct cred *)current->real_cred;
+ struct aa_task_cxt *cxt;
+
+ cxt = aa_alloc_task_context(GFP_KERNEL);
+ if (!cxt)
+ return -ENOMEM;
+
+ cxt->profile = aa_get_profile(root_ns->unconfined);
+ cred->security = cxt;
+
+ return 0;
+}
+
+static int __init apparmor_init(void)
+{
+ int error;
+
+ if (!apparmor_enabled || !security_module_enable(&apparmor_ops)) {
+ aa_info_message("AppArmor disabled by boot time parameter\n");
+ apparmor_enabled = 0;
+ return 0;
+ }
+
+ error = aa_alloc_root_ns();
+ if (error) {
+ AA_ERROR("Unable to allocate default profile namespace\n");
+ goto alloc_out;
+ }
+
+ error = set_init_cxt();
+ if (error) {
+ AA_ERROR("Failed to set context on init task\n");
+ goto register_security_out;
+ }
+
+ error = register_security(&apparmor_ops);
+ if (error) {
+ AA_ERROR("Unable to register AppArmor\n");
+ goto register_security_out;
+ }
+
+ /* Report that AppArmor successfully initialized */
+ apparmor_initialized = 1;
+ if (aa_g_profile_mode == APPARMOR_COMPLAIN)
+ aa_info_message("AppArmor initialized: complain mode enabled");
+ else if (aa_g_profile_mode == APPARMOR_KILL)
+ aa_info_message("AppArmor initialized: kill mode enabled");
+ else
+ aa_info_message("AppArmor initialized");
+
+ return error;
+
+register_security_out:
+ aa_free_root_ns();
+
+alloc_out:
+ aa_destroy_aafs();
+
+ apparmor_enabled = 0;
+ return error;
+
+}
+
+security_initcall(apparmor_init);
diff --git a/security/apparmor/match.c b/security/apparmor/match.c
new file mode 100644
index 00000000000..a3730e22010
--- /dev/null
+++ b/security/apparmor/match.c
@@ -0,0 +1,389 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor dfa based regular expression matching engine
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include <linux/errno.h>
+#include <linux/kernel.h>
+#include <linux/mm.h>
+#include <linux/slab.h>
+#include <linux/vmalloc.h>
+#include <linux/workqueue.h>
+#include <linux/err.h>
+#include <linux/kref.h>
+
+#include "include/match.h"
+
+/**
+ * do_vfree - workqueue routine for freeing vmalloced memory
+ * @work: data to be freed
+ *
+ * The work_struct is overlayed to the data being freed, as at the point
+ * the work is scheduled the data is no longer valid, be its freeing
+ * needs to be delayed until safe.
+ */
+static void do_vfree(struct work_struct *work)
+{
+ vfree(work);
+}
+
+/**
+ * free_table - free a table allocated by unpack table
+ * @table: table to unpack (MAYBE NULL)
+ */
+static void free_table(struct table_header *table)
+{
+ if (!table)
+ return;
+
+ if (is_vmalloc_addr(table)) {
+ /* Data is no longer valid so just use the allocated space
+ * as the work_struct
+ */
+ struct work_struct *work = (struct work_struct *) table;
+ INIT_WORK(work, do_vfree);
+ schedule_work(work);
+ } else
+ kzfree(table);
+}
+
+/**
+ * unpack_table - unpack a dfa table (one of accept, default, base, next check)
+ * @blob: data to unpack
+ * @bsize: size of blob
+ *
+ * Returns: pointer to table else NULL on failure
+ *
+ * NOTE: must be freed by free_table (not kmalloc)
+ */
+static struct table_header *unpack_table(char *blob, size_t bsize)
+{
+ struct table_header *table = NULL;
+ struct table_header th;
+ int unmap_alias = 0;
+ size_t tsize;
+
+ if (bsize < sizeof(struct table_header))
+ goto out;
+
+ /* loaded td_id's start at 1, subtract 1 now to avoid doing
+ * it every time we use td_id as an index
+ */
+ th.td_id = be16_to_cpu(*(u16 *) (blob)) - 1;
+ th.td_flags = be16_to_cpu(*(u16 *) (blob + 2));
+ th.td_lolen = be32_to_cpu(*(u32 *) (blob + 8));
+ blob += sizeof(struct table_header);
+
+ if (!(th.td_flags == YYTD_DATA16 || th.td_flags == YYTD_DATA32 ||
+ th.td_flags == YYTD_DATA8))
+ goto out;
+
+ tsize = table_size(th.td_lolen, th.td_flags);
+ if (bsize < tsize)
+ goto out;
+
+ /* freed by free_table */
+ table = kmalloc(tsize, GFP_KERNEL | __GFP_NOWARN);
+ if (!table) {
+ tsize = tsize < sizeof(struct work_struct) ?
+ sizeof(struct work_struct) : tsize;
+ unmap_alias = 1;
+ table = vmalloc(tsize);
+ }
+ if (table) {
+ *table = th;
+ if (th.td_flags == YYTD_DATA8)
+ UNPACK_ARRAY(table->td_data, blob, th.td_lolen,
+ u8, byte_to_byte);
+ else if (th.td_flags == YYTD_DATA16)
+ UNPACK_ARRAY(table->td_data, blob, th.td_lolen,
+ u16, be16_to_cpu);
+ else if (th.td_flags == YYTD_DATA32)
+ UNPACK_ARRAY(table->td_data, blob, th.td_lolen,
+ u32, be32_to_cpu);
+ else
+ goto fail;
+ }
+
+out:
+ if (unmap_alias)
+ vm_unmap_aliases();
+ return table;
+fail:
+ free_table(table);
+ return NULL;
+}
+
+/**
+ * verify_dfa - verify that all the transitions and states in the dfa tables
+ * are in bounds.
+ * @dfa: dfa to test (NOT NULL)
+ * @flags: flags controlling what type of accept table are acceptable
+ *
+ * Assumes dfa has gone through the first pass verification done by unpacking
+ * NOTE: this does not valid accept table values
+ *
+ * Returns: %0 else error code on failure to verify
+ */
+static int verify_dfa(struct aa_dfa *dfa, int flags)
+{
+ size_t i, state_count, trans_count;
+ int error = -EPROTO;
+
+ /* check that required tables exist */
+ if (!(dfa->tables[YYTD_ID_DEF] &&
+ dfa->tables[YYTD_ID_BASE] &&
+ dfa->tables[YYTD_ID_NXT] && dfa->tables[YYTD_ID_CHK]))
+ goto out;
+
+ /* accept.size == default.size == base.size */
+ state_count = dfa->tables[YYTD_ID_BASE]->td_lolen;
+ if (ACCEPT1_FLAGS(flags)) {
+ if (!dfa->tables[YYTD_ID_ACCEPT])
+ goto out;
+ if (state_count != dfa->tables[YYTD_ID_ACCEPT]->td_lolen)
+ goto out;
+ }
+ if (ACCEPT2_FLAGS(flags)) {
+ if (!dfa->tables[YYTD_ID_ACCEPT2])
+ goto out;
+ if (state_count != dfa->tables[YYTD_ID_ACCEPT2]->td_lolen)
+ goto out;
+ }
+ if (state_count != dfa->tables[YYTD_ID_DEF]->td_lolen)
+ goto out;
+
+ /* next.size == chk.size */
+ trans_count = dfa->tables[YYTD_ID_NXT]->td_lolen;
+ if (trans_count != dfa->tables[YYTD_ID_CHK]->td_lolen)
+ goto out;
+
+ /* if equivalence classes then its table size must be 256 */
+ if (dfa->tables[YYTD_ID_EC] &&
+ dfa->tables[YYTD_ID_EC]->td_lolen != 256)
+ goto out;
+
+ if (flags & DFA_FLAG_VERIFY_STATES) {
+ for (i = 0; i < state_count; i++) {
+ if (DEFAULT_TABLE(dfa)[i] >= state_count)
+ goto out;
+ /* TODO: do check that DEF state recursion terminates */
+ if (BASE_TABLE(dfa)[i] >= trans_count + 256)
+ goto out;
+ }
+
+ for (i = 0; i < trans_count; i++) {
+ if (NEXT_TABLE(dfa)[i] >= state_count)
+ goto out;
+ if (CHECK_TABLE(dfa)[i] >= state_count)
+ goto out;
+ }
+ }
+
+ error = 0;
+out:
+ return error;
+}
+
+/**
+ * aa_dfa_free - free a dfa allocated by aa_dfa_unpack
+ * @dfa: the dfa to free (MAYBE NULL)
+ *
+ * Requires: reference count to dfa == 0
+ */
+static void aa_dfa_free(struct aa_dfa *dfa)
+{
+ if (dfa) {
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(dfa->tables); i++) {
+ free_table(dfa->tables[i]);
+ dfa->tables[i] = NULL;
+ }
+ }
+ kfree(dfa);
+}
+
+/**
+ * aa_dfa_free_kref - free aa_dfa by kref (called by aa_put_dfa)
+ * @kr: kref callback for freeing of a dfa (NOT NULL)
+ */
+void aa_dfa_free_kref(struct kref *kref)
+{
+ struct aa_dfa *dfa = container_of(kref, struct aa_dfa, count);
+ aa_dfa_free(dfa);
+}
+
+/**
+ * aa_dfa_unpack - unpack the binary tables of a serialized dfa
+ * @blob: aligned serialized stream of data to unpack (NOT NULL)
+ * @size: size of data to unpack
+ * @flags: flags controlling what type of accept tables are acceptable
+ *
+ * Unpack a dfa that has been serialized. Dfa format and information in
+ * Documentation/AppArmor/dfa.txt
+ * Assumes the dfa @blob stream has been aligned on a 8 byte boundry
+ *
+ * Returns: an unpacked dfa ready for matching or ERR_PTR on failure
+ */
+struct aa_dfa *aa_dfa_unpack(void *blob, size_t size, int flags)
+{
+ int hsize;
+ int error = -ENOMEM;
+ char *data = blob;
+ struct table_header *table = NULL;
+ struct aa_dfa *dfa = kzalloc(sizeof(struct aa_dfa), GFP_KERNEL);
+ if (!dfa)
+ goto fail;
+
+ kref_init(&dfa->count);
+
+ error = -EPROTO;
+
+ /* get dfa table set header */
+ if (size < sizeof(struct table_set_header))
+ goto fail;
+
+ if (ntohl(*(u32 *) data) != YYTH_MAGIC)
+ goto fail;
+
+ hsize = ntohl(*(u32 *) (data + 4));
+ if (size < hsize)
+ goto fail;
+
+ dfa->flags = ntohs(*(u16 *) (data + 12));
+ data += hsize;
+ size -= hsize;
+
+ while (size > 0) {
+ table = unpack_table(data, size);
+ if (!table)
+ goto fail;
+
+ switch (table->td_id) {
+ case YYTD_ID_ACCEPT:
+ if (!(table->td_flags & ACCEPT1_FLAGS(flags)))
+ goto fail;
+ break;
+ case YYTD_ID_ACCEPT2:
+ if (!(table->td_flags & ACCEPT2_FLAGS(flags)))
+ goto fail;
+ break;
+ case YYTD_ID_BASE:
+ if (table->td_flags != YYTD_DATA32)
+ goto fail;
+ break;
+ case YYTD_ID_DEF:
+ case YYTD_ID_NXT:
+ case YYTD_ID_CHK:
+ if (table->td_flags != YYTD_DATA16)
+ goto fail;
+ break;
+ case YYTD_ID_EC:
+ if (table->td_flags != YYTD_DATA8)
+ goto fail;
+ break;
+ default:
+ goto fail;
+ }
+ /* check for duplicate table entry */
+ if (dfa->tables[table->td_id])
+ goto fail;
+ dfa->tables[table->td_id] = table;
+ data += table_size(table->td_lolen, table->td_flags);
+ size -= table_size(table->td_lolen, table->td_flags);
+ table = NULL;
+ }
+
+ error = verify_dfa(dfa, flags);
+ if (error)
+ goto fail;
+
+ return dfa;
+
+fail:
+ free_table(table);
+ aa_dfa_free(dfa);
+ return ERR_PTR(error);
+}
+
+/**
+ * aa_dfa_match_len - traverse @dfa to find state @str stops at
+ * @dfa: the dfa to match @str against (NOT NULL)
+ * @start: the state of the dfa to start matching in
+ * @str: the string of bytes to match against the dfa (NOT NULL)
+ * @len: length of the string of bytes to match
+ *
+ * aa_dfa_match_len will match @str against the dfa and return the state it
+ * finished matching in. The final state can be used to look up the accepting
+ * label, or as the start state of a continuing match.
+ *
+ * This function will happily match again the 0 byte and only finishes
+ * when @len input is consumed.
+ *
+ * Returns: final state reached after input is consumed
+ */
+unsigned int aa_dfa_match_len(struct aa_dfa *dfa, unsigned int start,
+ const char *str, int len)
+{
+ u16 *def = DEFAULT_TABLE(dfa);
+ u32 *base = BASE_TABLE(dfa);
+ u16 *next = NEXT_TABLE(dfa);
+ u16 *check = CHECK_TABLE(dfa);
+ unsigned int state = start, pos;
+
+ if (state == 0)
+ return 0;
+
+ /* current state is <state>, matching character *str */
+ if (dfa->tables[YYTD_ID_EC]) {
+ /* Equivalence class table defined */
+ u8 *equiv = EQUIV_TABLE(dfa);
+ /* default is direct to next state */
+ for (; len; len--) {
+ pos = base[state] + equiv[(u8) *str++];
+ if (check[pos] == state)
+ state = next[pos];
+ else
+ state = def[state];
+ }
+ } else {
+ /* default is direct to next state */
+ for (; len; len--) {
+ pos = base[state] + (u8) *str++;
+ if (check[pos] == state)
+ state = next[pos];
+ else
+ state = def[state];
+ }
+ }
+
+ return state;
+}
+
+/**
+ * aa_dfa_next_state - traverse @dfa to find state @str stops at
+ * @dfa: the dfa to match @str against (NOT NULL)
+ * @start: the state of the dfa to start matching in
+ * @str: the null terminated string of bytes to match against the dfa (NOT NULL)
+ *
+ * aa_dfa_next_state will match @str against the dfa and return the state it
+ * finished matching in. The final state can be used to look up the accepting
+ * label, or as the start state of a continuing match.
+ *
+ * Returns: final state reached after input is consumed
+ */
+unsigned int aa_dfa_match(struct aa_dfa *dfa, unsigned int start,
+ const char *str)
+{
+ return aa_dfa_match_len(dfa, start, str, strlen(str));
+}
diff --git a/security/apparmor/net.c b/security/apparmor/net.c
new file mode 100644
index 00000000000..e9b1d1ed1e9
--- /dev/null
+++ b/security/apparmor/net.c
@@ -0,0 +1,167 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor network mediation
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include "include/apparmor.h"
+#include "include/audit.h"
+#include "include/context.h"
+#include "include/net.h"
+#include "include/policy.h"
+
+#include "af_names.h"
+
+static const char *sock_type_names[] = {
+ "unknown(0)",
+ "stream",
+ "dgram",
+ "raw",
+ "rdm",
+ "seqpacket",
+ "dccp",
+ "unknown(7)",
+ "unknown(8)",
+ "unknown(9)",
+ "packet",
+};
+
+struct aa_audit_net {
+ struct aa_audit base;
+
+ int family, type, protocol;
+
+};
+
+/* audit callback for net specific fields */
+static void audit_cb(struct audit_buffer *ab, struct aa_audit *va)
+{
+ struct aa_audit_net *sa = container_of(va, struct aa_audit_net, base);
+
+ if (sa->family || sa->type) {
+ if (address_family_names[sa->family]) {
+ audit_log_format(ab, " family=");
+ audit_log_string(ab, address_family_names[sa->family]);
+ } else {
+ audit_log_format(ab, " family=\"unknown(%d)\"",
+ sa->family);
+ }
+ if (sock_type_names[sa->type]) {
+ audit_log_format(ab, " sock_type=");
+ audit_log_string(ab, sock_type_names[sa->type]);
+ } else {
+ audit_log_format(ab, " sock_type=\"unknown(%d)\"",
+ sa->type);
+ }
+ audit_log_format(ab, " protocol=%d", sa->protocol);
+ }
+
+}
+
+/**
+ * aa_audit_net - audit network access
+ * @profile: profile being enforced (NOT NULL)
+ * @sa: audit data (NOT NULL)
+ *
+ * Returns: %0 or sa->error else other errorcode on failure
+ */
+static int aa_audit_net(struct aa_profile *profile, struct aa_audit_net *sa)
+{
+ int type = AUDIT_APPARMOR_AUTO;
+
+ if (likely(!sa->base.error)) {
+ u16 audit_mask = profile->net.audit[sa->family];
+ if (likely((AUDIT_MODE(profile) != AUDIT_ALL) &&
+ !(1 << sa->type & audit_mask)))
+ return 0;
+ type = AUDIT_APPARMOR_AUDIT;
+ } else {
+ u16 quiet_mask = profile->net.quiet[sa->family];
+ u16 kill_mask = 0;
+ u16 denied = (1 << sa->type) & ~quiet_mask;
+
+ if (denied & kill_mask)
+ type = AUDIT_APPARMOR_KILL;
+
+ if ((denied & quiet_mask) &&
+ AUDIT_MODE(profile) != AUDIT_NOQUIET &&
+ AUDIT_MODE(profile) != AUDIT_ALL)
+ return COMPLAIN_MODE(profile) ? 0 : sa->base.error;
+ }
+
+ return aa_audit(type, profile, &sa->base, audit_cb);
+}
+
+/**
+ * aa_net_perm - very course network access check
+ * @profile: profile being enforced (NOT NULL)
+ * @operation: name of the operation being checked (NOT NULL)
+ * @family: network family
+ * @type: network type
+ * @protocol: network protocol
+ *
+ * Returns: %0 else error if permission denied
+ */
+int aa_net_perm(struct aa_profile *profile, char *operation,
+ int family, int type, int protocol)
+{
+ u16 family_mask;
+ struct aa_audit_net sa = {
+ .base.operation = operation,
+ .base.gfp_mask = GFP_KERNEL,
+ .family = family,
+ .type = type,
+ .protocol = protocol,
+ };
+
+ if ((family < 0) || (family >= AF_MAX))
+ return -EINVAL;
+
+ if ((type < 0) || (type >= SOCK_MAX))
+ return -EINVAL;
+
+ /* unix domain and netlink sockets are handled by ipc */
+ if (family == AF_UNIX || family == AF_NETLINK)
+ return 0;
+
+ family_mask = profile->net.allowed[family];
+
+ sa.base.error = (family_mask & (1 << type)) ? 0 : -EACCES;
+
+ return aa_audit_net(profile, &sa);
+}
+
+/**
+ * aa_revalidate_sk - Revalidate access to a sock
+ * @sk: sock being revalidated (NOT NULL)
+ * @operation: name of operation being checked (NOT NULL)
+ *
+ * Returns: %0 else error if permission denied
+ */
+int aa_revalidate_sk(struct sock *sk, char *operation)
+{
+ struct aa_profile *profile;
+ int error = 0;
+
+ /* aa_revalidate_sk should not be called from interrupt context
+ * don't mediate these calls as they are not task related
+ */
+ if (in_interrupt())
+ return 0;
+
+ profile = __aa_current_profile();
+ if (!unconfined(profile))
+ error = aa_net_perm(profile, operation,
+ sk->sk_family, sk->sk_type,
+ sk->sk_protocol);
+
+ return error;
+}
diff --git a/security/apparmor/path.c b/security/apparmor/path.c
new file mode 100644
index 00000000000..81ce71d0fc0
--- /dev/null
+++ b/security/apparmor/path.c
@@ -0,0 +1,243 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor function for pathnames
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include <linux/mnt_namespace.h>
+#include <linux/mount.h>
+#include <linux/namei.h>
+#include <linux/nsproxy.h>
+#include <linux/path.h>
+#include <linux/sched.h>
+#include <linux/slab.h>
+#include <linux/fs_struct.h>
+
+#include "include/apparmor.h"
+#include "include/path.h"
+#include "include/policy.h"
+
+/**
+ * d_namespace_path - lookup a name associated with a given path
+ * @path: path to lookup (NOT NULL)
+ * @buf: buffer to store path to (NOT NULL)
+ * @buflen: length of @buf
+ * @name: return pointer for start of path name with in @buf (NOT NULL)
+ * @flags: flags controling path lookup
+ *
+ * Handle path name lookup.
+ *
+ * Returns: %0 else error code if path lookup fails
+ * When no error the path name is returned in @name which points to
+ * to a position in @buf
+ */
+static int d_namespace_path(struct path *path, char *buf, int buflen,
+ char **name, int flags)
+{
+ struct path root, tmp;
+ char *res;
+ int deleted, connected;
+ int error = 0;
+
+ /* Get the root we want to resolve too */
+ if (flags & PATH_CHROOT_REL) {
+ /* resolve paths relative to chroot */
+ read_lock(&current->fs->lock);
+ root = current->fs->root;
+ /* released below */
+ path_get(&root);
+ read_unlock(&current->fs->lock);
+ } else {
+ /* resolve paths relative to namespace */
+ root.mnt = current->nsproxy->mnt_ns->root;
+ root.dentry = root.mnt->mnt_root;
+ /* released below */
+ path_get(&root);
+ }
+
+ spin_lock(&dcache_lock);
+ /* There is a race window between path lookup here and the
+ * need to strip the " (deleted) string that __d_path applies
+ * Detect the race and relookup the path
+ *
+ * The stripping of (deleted) is a hack that could be removed
+ * with an updated __d_path
+ */
+ do {
+ tmp = root;
+ deleted = d_unlinked(path->dentry);
+ res = __d_path(path, &tmp, buf, buflen);
+
+ } while (deleted != d_unlinked(path->dentry));
+ spin_unlock(&dcache_lock);
+
+ *name = res;
+ /* handle error conditions - and still allow a partial path to
+ * be returned.
+ */
+ if (IS_ERR(res)) {
+ error = PTR_ERR(res);
+ *name = buf;
+ goto out;
+ }
+ if (deleted) {
+ /* On some filesystems, newly allocated dentries appear to the
+ * security_path hooks as a deleted dentry except without an
+ * inode allocated.
+ *
+ * Remove the appended deleted text and return as string for
+ * normal mediation, or auditing. The (deleted) string is
+ * guarenteed to be added in this case, so just strip it.
+ */
+ buf[buflen - 11] = 0; /* - (len(" (deleted)") +\0) */
+
+ if (path->dentry->d_inode && !(flags & PATH_MEDIATE_DELETED)) {
+ error = -ENOENT;
+ goto out;
+ }
+ }
+
+ /* Determine if the path is connected to the expected root */
+ connected = tmp.dentry == root.dentry && tmp.mnt == root.mnt;
+
+ /* If the path is not connected, then remove any leading / that
+ * __d_path may have returned.
+ * Unless
+ * specifically directed to connect the path,
+ * OR
+ * if in a chroot and doing chroot relative paths and the path
+ * resolves to the namespace root (would be connected outside
+ * of chroot) and specifically directed to connect paths to
+ * namespace root.
+ */
+ if (!connected &&
+ !(flags & PATH_CONNECT_PATH) &&
+ !((flags & PATH_CHROOT_REL) && (flags & PATH_CHROOT_NSCONNECT) &&
+ (tmp.mnt == current->nsproxy->mnt_ns->root &&
+ tmp.dentry == current->nsproxy->mnt_ns->root->mnt_root))) {
+ /* disconnected path, don't return pathname starting with '/' */
+ error = -ESTALE;
+ if (*res == '/')
+ *name = res + 1;
+ }
+
+out:
+ path_put(&root);
+
+ return error;
+}
+
+/**
+ * get_name_to_buffer - get the pathname to a buffer ensure dir / is appended
+ * @path: path to get name for (NOT NULL)
+ * @flags: flags controlling path lookup
+ * @buffer: buffer to put name in (NOT NULL)
+ * @size: size of buffer
+ * @name: on return contains position of path name in @buffer (NOT NULL)
+ *
+ * Returns: %0 else error on failure
+ */
+static int get_name_to_buffer(struct path *path, int flags, char *buffer,
+ int size, char **name)
+{
+ int adjust = (flags & PATH_IS_DIR) ? 1 : 0;
+ int error = d_namespace_path(path, buffer, size - adjust, name, flags);
+
+ if (!error && (flags & PATH_IS_DIR) && (*name)[1] != '\0')
+ /*
+ * Append "/" to the pathname. The root directory is a special
+ * case; it already ends in slash.
+ */
+ strcpy(&buffer[size - 2], "/");
+
+ return error;
+}
+
+/**
+ * aa_get_name - compute the pathname of a file
+ * @path: path the file (NOT NULL)
+ * @flags: flags controling path name generation
+ * @buffer: buffer that aa_get_name() allocated (NOT NULL)
+ * @name: the generated path name if !error
+ *
+ * @name is a pointer to the beginning of the pathname (which usually differs
+ * from the beginning of the buffer), or NULL. If there is an error @name
+ * may contain a partial or invalid name that can be used for audit purposes,
+ * but it can not be used for mediation.
+ *
+ * We need PATH_IS_DIR to indicate whether the file is a directory or not
+ * because the file may not yet exist, and so we cannot check the inode's
+ * file type.
+ *
+ * Returns: %0 else error code if could retrieve name
+ */
+int aa_get_name(struct path *path, int flags, char **buffer, char **name)
+{
+ char *buf, *str = NULL;
+ int size = 256;
+ int error;
+
+ *name = NULL;
+ *buffer = NULL;
+ for (;;) {
+ /* freed by caller */
+ buf = kmalloc(size, GFP_KERNEL);
+ if (!buf)
+ return -ENOMEM;
+
+ error = get_name_to_buffer(path, flags, buf, size, &str);
+ if (!error || (error == -ENOENT) || (error == -ESTALE))
+ break;
+
+ kfree(buf);
+ size <<= 1;
+ if (size > aa_g_path_max)
+ return -ENAMETOOLONG;
+ }
+ *buffer = buf;
+ *name = str;
+
+ return error;
+}
+
+/**
+ * sysctl_pathname - generate a pathname for a sysctl
+ * @table: sysctl name table (NOT NULL)
+ * @buffer: buffer to put name in (NOT NULL)
+ * @buflen: length of @buffer
+ *
+ * Returns: sysctl path name in @buffer or NULL on error
+ */
+char *sysctl_pathname(struct ctl_table *table, char *buffer, int buflen)
+{
+ if (buflen < 1)
+ return NULL;
+ buffer += --buflen;
+ *buffer = '\0';
+
+ while (table) {
+ int namelen = strlen(table->procname);
+
+ if (buflen < namelen + 1)
+ return NULL;
+ buflen -= namelen + 1;
+ buffer -= namelen;
+ memcpy(buffer, table->procname, namelen);
+ *--buffer = '/';
+ table = table->parent;
+ }
+ if (buflen < 4)
+ return NULL;
+ buffer -= 4;
+ memcpy(buffer, "/sys", 4);
+
+ return buffer;
+}
diff --git a/security/apparmor/policy.c b/security/apparmor/policy.c
new file mode 100644
index 00000000000..c301b81d46e
--- /dev/null
+++ b/security/apparmor/policy.c
@@ -0,0 +1,1097 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor policy manipulation functions
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ *
+ *
+ * AppArmor policy is based around profiles, which contain the rules a
+ * task is confined by. Every task in the sytem has a profile attached
+ * to it determined either by matching "unconfined" tasks against the
+ * visible set of profiles or by following a profiles attachment rules.
+ *
+ * Each profile exists in a profile namespace which is a container of
+ * visible profiles. Each namespace contains a special "unconfined" profile,
+ * which doesn't enforce any confinement on a task beyond DAC.
+ *
+ * Namespace and profile names can be written together in either
+ * of two syntaxes.
+ * :namespace:profile - used by kernel interfaces for easy detection
+ * namespace://profile - used by policy
+ *
+ * Profile names can not start with : or @ or ^ and may not contain \0
+ *
+ * Reserved profile names
+ * unconfined - special automatically generated unconfined profile
+ * inherit - special name to indicate profile inheritance
+ * null-XXXX-YYYY - special automically generated learning profiles
+ *
+ * Namespace names may not start with / or @ and may not contain \0 or :
+ * Reserved namespace namespace
+ * user-XXXX - user defined profiles
+ *
+ * a // in a profile or namespace name indicates a hierarcical name with the
+ * name before the // being the parent and the name after the child.
+ *
+ * Profile and namespace hierachies serve two different but similar purposes.
+ * The namespace contains the set of visible profiles that are considered
+ * for attachment. The hierarchy of namespaces allows for virtualizing
+ * the namespace so that for example a chroot can have its own set of profiles
+ * which may define some local user namespaces.
+ * The profile hierachy severs two distinct purposes,
+ * - it allows for sub profiles or hats, which allows an application to run
+ * subprograms under its own profile with different restriction than it
+ * self, and not have it use the system profile.
+ * eg. if a mail program starts an editor, the policy might make the
+ * restrictions tighter on the editor tighter than the mail program,
+ * and definitely different than general editor restrictions
+ * - it allows for binary hierarchy of profiles, so that execution history
+ * is preserved. This feature isn't exploited by AppArmor reference policy
+ * but is allowed. NOTE: this is currently suboptimal because profile
+ * aliasing is not currently implemented so that a profile for each
+ * level must be defined.
+ * eg. /bin/bash///bin/ls as a name would indicate /bin/ls was started
+ * from /bin/bash
+ *
+ * A profile or namespace name that can contain one or more // seperators
+ * is refered to as an hname (hierarchical).
+ * eg. /bin/bash//bin/ls
+ *
+ * An fqname is a name that may contain both namespace and profile hnames.
+ * eg. :ns:/bin/bash//bin/ls
+ *
+ * NOTES:
+ * - locking of profile lists is currently fairly coarse. All profile
+ * lists within a namespace use the namespace lock.
+ * FIXME: move profile lists to using rcu_lists
+ */
+
+#include <linux/slab.h>
+#include <linux/spinlock.h>
+#include <linux/string.h>
+
+#include "include/apparmor.h"
+#include "include/capability.h"
+#include "include/context.h"
+#include "include/file.h"
+#include "include/ipc.h"
+#include "include/match.h"
+#include "include/path.h"
+#include "include/policy.h"
+#include "include/policy_unpack.h"
+#include "include/resource.h"
+#include "include/sid.h"
+
+
+/* root profile namespace */
+struct aa_namespace *root_ns;
+
+const char *profile_mode_names[] = {
+ "enforce",
+ "complain",
+ "kill",
+};
+
+/**
+ * hname_tail - find the last component of an hname
+ * @name: hname to find the tail component of (NOT NULL)
+ *
+ * Returns: the tail name component of an hname
+ */
+static const char *hname_tail(const char *hname)
+{
+ char *split;
+ hname = strim((char *)hname);
+ for (split = strstr(hname, "//"); split; split = strstr(hname, "//"))
+ hname = split + 2;
+
+ return hname;
+}
+
+/**
+ * policy_init - initialize a policy structure
+ * @policy: policy to initialize (NOT NULL)
+ * @name: name of the policy, init will make a copy of it (NOT NULL)
+ */
+static bool policy_init(struct aa_policy *policy, const char *name)
+{
+ /* freed by policy_free */
+ policy->hname = kstrdup(name, GFP_KERNEL);
+ if (!policy->hname)
+ return 0;
+ /* base.name is a substring of fqname */
+ policy->name = (char *)hname_tail(policy->hname);
+
+ INIT_LIST_HEAD(&policy->list);
+ INIT_LIST_HEAD(&policy->profiles);
+ kref_init(&policy->count);
+
+ return 1;
+}
+
+/**
+ * policy_destroy - free the elements referenced by @policy
+ * @policy: policy that is to have its elements freed (NOT NULL)
+ */
+static void policy_destroy(struct aa_policy *policy)
+{
+ /* still contains profiles -- invalid */
+ if (!list_empty(&policy->profiles)) {
+ AA_ERROR("%s: internal error, "
+ "policy '%s' still contains profiles\n",
+ __func__, policy->name);
+ BUG();
+ }
+ if (!list_empty(&policy->list)) {
+ AA_ERROR("%s: internal error, policy '%s' still on list\n",
+ __func__, policy->name);
+ BUG();
+ }
+
+ /* don't free name as its a subset of hname */
+ kzfree(policy->hname);
+}
+
+/**
+ * __policy_find - find a policy by @name on a policy list
+ * @head: list to search (NOT NULL)
+ * @name: name to search for (NOT NULL)
+ *
+ * Requires: correct locks for the @head list be held
+ *
+ * Returns: policy that match @name or NULL if not found
+ */
+static struct aa_policy *__policy_find(struct list_head *head, const char *name)
+{
+ struct aa_policy *policy;
+
+ list_for_each_entry(policy, head, list) {
+ if (!strcmp(policy->name, name))
+ return policy;
+ }
+ return NULL;
+}
+
+/**
+ * __policy_strn_find - find a policy thats name matches @len chars of @str
+ * @head: list to search (NOT NULL)
+ * @str: string to search for (NOT NULL)
+ * @len: length of match required
+ *
+ * Requires: correct locks for the @head list be held
+ *
+ * Returns: policy that match @str or NULL if not found
+ *
+ * if @len == strlen(@strlen) then this is equiv to __policy_find
+ * other wise it allows searching for policy by a partial match of name
+ */
+static struct aa_policy *__policy_strn_find(struct list_head *head,
+ const char *str, int len)
+{
+ struct aa_policy *policy;
+
+ list_for_each_entry(policy, head, list) {
+ if (aa_strneq(policy->name, str, len))
+ return policy;
+ }
+
+ return NULL;
+}
+
+/*
+ * Routines for AppArmor namespaces
+ */
+
+/**
+ * aa_alloc_namespace - allocate, initialize and return a new namespace
+ * @name: a preallocated name (NOT NULL)
+ *
+ * Returns: NULL on failure.
+ */
+static struct aa_namespace *aa_alloc_namespace(const char *name)
+{
+ struct aa_namespace *ns;
+
+ ns = kzalloc(sizeof(*ns), GFP_KERNEL);
+ AA_DEBUG("%s(%p)\n", __func__, ns);
+ if (!ns)
+ return NULL;
+
+ if (!policy_init(&ns->base, name))
+ goto fail_ns;
+ INIT_LIST_HEAD(&ns->sub_ns);
+ rwlock_init(&ns->lock);
+
+ /* released by aa_free_namespace */
+ ns->unconfined = aa_alloc_profile("unconfined");
+ if (!ns->unconfined)
+ goto fail_unconfined;
+
+ ns->unconfined->sid = aa_alloc_sid();
+ ns->unconfined->flags = PFLAG_UNCONFINED | PFLAG_IX_ON_NAME_ERROR |
+ PFLAG_IMMUTABLE;
+
+ /*
+ * released by aa_free_namespace, however aa_remove_namespace breaks
+ * the cyclic references (ns->unconfined, and unconfined->ns) and
+ * replaces with refs to parent namespace unconfined
+ */
+ ns->unconfined->ns = aa_get_namespace(ns);
+
+ return ns;
+
+fail_unconfined:
+ kzfree(ns->base.name);
+fail_ns:
+ kzfree(ns);
+ return NULL;
+}
+
+/**
+ * aa_free_namespace - free a profile namespace
+ * @ns: the namespace to free (MAYBE NULL)
+ *
+ * Requires: All references to the namespace must have been put, if the
+ * namespace was referenced by a profile confining a task,
+ */
+static void aa_free_namespace(struct aa_namespace *ns)
+{
+ if (!ns)
+ return;
+
+ policy_destroy(&ns->base);
+ aa_put_namespace(ns->parent);
+
+ if (ns->unconfined && ns->unconfined->ns == ns)
+ ns->unconfined->ns = NULL;
+
+ aa_put_profile(ns->unconfined);
+ kzfree(ns);
+}
+
+/**
+ * aa_free_namespace_kref - free aa_namespace by kref (see aa_put_namespace)
+ * @kr: kref callback for freeing of a namespace (NOT NULL)
+ */
+void aa_free_namespace_kref(struct kref *kref)
+{
+ aa_free_namespace(container_of(kref, struct aa_namespace, base.count));
+}
+
+/**
+ * __aa_find_namespace - find a namespace on a list by @name
+ * @head: list to search for namespace on (NOT NULL)
+ * @name: name of namespace to look for (NOT NULL)
+ *
+ * Returns: unrefcounted namespace
+ *
+ * Requires: ns lock be held
+ */
+static struct aa_namespace *__aa_find_namespace(struct list_head *head,
+ const char *name)
+{
+ return (struct aa_namespace *)__policy_find(head, name);
+}
+
+/**
+ * aa_find_namespace - look up a profile namespace on the namespace list
+ * @root: namespace to search in (NOT NULL)
+ * @name: name of namespace to find (NOT NULL)
+ *
+ * Returns: a pointer to the namespace on the list, or NULL if no namespace
+ * called @name exists.
+ *
+ * refcount released by caller
+ */
+struct aa_namespace *aa_find_namespace(struct aa_namespace *root,
+ const char *name)
+{
+ struct aa_namespace *ns = NULL;
+
+ read_lock(&root->lock);
+ ns = aa_get_namespace(__aa_find_namespace(&root->sub_ns, name));
+ read_unlock(&root->lock);
+
+ return ns;
+}
+
+/**
+ * aa_prepare_namespace - find an existing or create a new namespace of @name
+ * @name: the namespace to find or add (NOT NULL)
+ *
+ * Returns: refcounted namespace or NULL if failed to create one
+ */
+static struct aa_namespace *aa_prepare_namespace(const char *name)
+{
+ struct aa_namespace *ns, *root;
+
+ root = aa_current_profile()->ns;
+
+ write_lock(&root->lock);
+
+ /* if name isn't specified the profile is loaded to the current ns */
+ if (!name) {
+ /* released by caller */
+ ns = aa_get_namespace(root);
+ goto out;
+ }
+
+ /* try and find the specified ns and if it doesn't exist create it */
+ /* released by caller */
+ ns = aa_get_namespace(__aa_find_namespace(&root->sub_ns, name));
+ if (!ns) {
+ /* name && namespace not found */
+ struct aa_namespace *new_ns;
+ write_unlock(&root->lock);
+ new_ns = aa_alloc_namespace(name);
+ if (!new_ns)
+ return NULL;
+ write_lock(&root->lock);
+ /* test for race when new_ns was allocated */
+ ns = __aa_find_namespace(&root->sub_ns, name);
+ if (!ns) {
+ /* add parent ref */
+ new_ns->parent = aa_get_namespace(root);
+
+ list_add(&new_ns->base.list, &root->sub_ns);
+ /* add list ref */
+ ns = aa_get_namespace(new_ns);
+ } else {
+ /* raced so free the new one */
+ aa_free_namespace(new_ns);
+ /* get reference on namespace */
+ aa_get_namespace(ns);
+ }
+ }
+out:
+ write_unlock(&root->lock);
+
+ /* return ref */
+ return ns;
+}
+
+/**
+ * __aa_add_profile - add a profile to a list
+ * @list: list to add it to (NOT NULL)
+ * @profile: the profile to add (NOT NULL)
+ *
+ * refcount @profile, should be put by __aa_remove_profile
+ *
+ * Requires: namespace lock be held, or list not be shared
+ */
+static void __aa_add_profile(struct list_head *list,
+ struct aa_profile *profile)
+{
+ list_add(&profile->base.list, list);
+ /* get list reference */
+ aa_get_profile(profile);
+}
+
+/**
+ * __aa_remove_profile - remove a profile from the list it is one
+ * @profile: the profile to remove (NOT NULL)
+ *
+ * remove a profile from the list, warning generally removal should
+ * be done with __aa_replace_profile as most profile removals are
+ * replacements to the unconfined profile.
+ *
+ * put @profile list refcount
+ *
+ * Requires: namespace lock be held, or list not have been live
+ */
+static void __aa_remove_profile(struct aa_profile *profile)
+{
+ list_del_init(&profile->base.list);
+ if (!(profile->flags & PFLAG_NO_LIST_REF))
+ /* release list reference */
+ aa_put_profile(profile);
+}
+
+/**
+ * __aa_replace_profile - replace @old with @new on a list
+ * @old: profile to be replaced (NOT NULL)
+ * @new: profile to replace @old with (MAYBE NULL)
+ *
+ * Will duplicaticate and refcount elements that @new inherits from @old
+ * and will inherit @old children. If new is NULL it will replace to the
+ * unconfined profile for old's namespace.
+ *
+ * refcount @new for list, put @old list refcount
+ *
+ * Requires: namespace list lock be held, or list not be shared
+ */
+static void __aa_replace_profile(struct aa_profile *old,
+ struct aa_profile *new)
+{
+ struct aa_policy *policy;
+ struct aa_profile *child, *tmp;
+
+ if (old->parent)
+ policy = &old->parent->base;
+ else
+ policy = &old->ns->base;
+
+ if (new) {
+ /* released when @new is freed */
+ new->parent = aa_get_profile(old->parent);
+ new->ns = aa_get_namespace(old->ns);
+ new->sid = old->sid;
+ __aa_add_profile(&policy->profiles, new);
+ } else {
+ /* refcount not taken, held via @old refcount */
+ new = old->ns->unconfined;
+ }
+
+ /* inherit children */
+ list_for_each_entry_safe(child, tmp, &old->base.profiles, base.list) {
+ aa_put_profile(child->parent);
+ child->parent = aa_get_profile(new);
+ /* list refcount transfered to @new*/
+ list_move(&child->base.list, &new->base.profiles);
+ }
+
+ /* released by aa_free_profile */
+ old->replacedby = aa_get_profile(new);
+ __aa_remove_profile(old);
+}
+
+/**
+ * __aa_profile_list_release - remove all profiles on the list and put refs
+ * @head: list of profiles (NOT NULL)
+ *
+ * Requires: namespace lock be held
+ */
+static void __aa_profile_list_release(struct list_head *head)
+{
+ struct aa_profile *profile, *tmp;
+ list_for_each_entry_safe(profile, tmp, head, base.list) {
+ /* release any children lists first */
+ __aa_profile_list_release(&profile->base.profiles);
+ __aa_replace_profile(profile, NULL);
+ }
+}
+
+static void __aa_remove_namespace(struct aa_namespace *ns);
+
+/**
+ * __aa_ns_list_release - remove all profile namespaces on the list put refs
+ * @head: list of profile namespaces (NOT NULL)
+ *
+ * Requires: namespace lock be held
+ */
+static void __aa_ns_list_release(struct list_head *head)
+{
+ struct aa_namespace *ns, *tmp;
+ list_for_each_entry_safe(ns, tmp, head, base.list)
+ __aa_remove_namespace(ns);
+
+}
+
+/**
+ * aa_destroy_namespace - remove everything contained by @ns
+ * @ns: namespace to have it contents removed (NOT NULL)
+ */
+static void aa_destroy_namespace(struct aa_namespace *ns)
+{
+ if (!ns)
+ return;
+
+ write_lock(&ns->lock);
+ /* release all profiles in this namespace */
+ __aa_profile_list_release(&ns->base.profiles);
+
+ /* release all sub namespaces */
+ __aa_ns_list_release(&ns->sub_ns);
+
+ write_unlock(&ns->lock);
+}
+
+/**
+ * __aa_remove_namespace - remove a namespace and all its children
+ * @ns: namespace to be removed (NOT NULL)
+ *
+ * Requires: ns->parent->lock be held and ns removed from parent.
+ */
+static void __aa_remove_namespace(struct aa_namespace *ns)
+{
+ struct aa_profile *unconfined = ns->unconfined;
+
+ /* remove ns from namespace list */
+ list_del_init(&ns->base.list);
+
+ /*
+ * break the ns, unconfined profile cyclic reference and forward
+ * all new unconfined profiles requests to the parent namespace
+ * This will result in all confined tasks that have a profile
+ * being removed, inheriting the parent->unconfined profile.
+ */
+ if (ns->parent)
+ ns->unconfined = aa_get_profile(ns->parent->unconfined);
+
+ aa_destroy_namespace(ns);
+
+ /* release original ns->unconfined ref */
+ aa_put_profile(unconfined);
+ /* release ns->base.list ref, from removal above */
+ aa_put_namespace(ns);
+}
+
+/**
+ * aa_alloc_root_ns - allocate the root profile namespace
+ *
+ * Returns: %0 on success else error
+ *
+ */
+int __init aa_alloc_root_ns(void)
+{
+ /* released by aa_free_root_ns - used as list ref*/
+ root_ns = aa_alloc_namespace("root");
+ if (!root_ns)
+ return -ENOMEM;
+
+ return 0;
+}
+
+ /**
+ * aa_free_root_ns - free the root profile namespace
+ */
+void aa_free_root_ns(void)
+ {
+ struct aa_namespace *ns = root_ns;
+ root_ns = NULL;
+
+ aa_destroy_namespace(ns);
+ aa_put_namespace(ns);
+}
+
+/**
+ * aa_alloc_profile - allocate, initialize and return a new profile
+ * @hname: name of the profile (NOT NULL)
+ *
+ * Returns: NULL on failure, else refcounted profile
+ */
+struct aa_profile *aa_alloc_profile(const char *hname)
+{
+ struct aa_profile *profile;
+
+ /* freed by aa_free_profile - usually through aa_put_profile */
+ profile = kzalloc(sizeof(*profile), GFP_KERNEL);
+ if (!profile)
+ return NULL;
+
+ if (!policy_init(&profile->base, hname)) {
+ kzfree(profile);
+ return NULL;
+ }
+
+ /* return ref */
+ return profile;
+}
+
+/**
+ * aa_new_null_profile - create a new null-X learning profile
+ * @parent: profile that caused this profile to be created (NOT NULL)
+ * @hat: true if the null- learning profile is a hat
+ *
+ * Create a null- complain mode profile used in learning mode. The name of
+ * the profile is unique and follows the format of parent//null-sid.
+ *
+ * null profiles are added to the profile list but the list does not
+ * hold a count on them so that they are automatically released when
+ * not in use.
+ *
+ * Returns: new profile else NULL on failure
+ */
+struct aa_profile *aa_new_null_profile(struct aa_profile *parent, int hat)
+{
+ struct aa_profile *profile = NULL;
+ char *name;
+ u32 sid = aa_alloc_sid();
+
+ /* freed below */
+ name = kmalloc(strlen(parent->base.hname) + 2 + 7 + 8, GFP_KERNEL);
+ if (!name)
+ goto fail;
+ sprintf(name, "%s//null-%x", parent->base.hname, sid);
+
+ profile = aa_alloc_profile(name);
+ kfree(name);
+ if (!profile)
+ goto fail;
+
+ profile->sid = sid;
+ profile->mode = APPARMOR_COMPLAIN;
+ profile->flags = PFLAG_NULL;
+ if (hat)
+ profile->flags |= PFLAG_HAT;
+
+ /* released on aa_free_profile */
+ profile->parent = aa_get_profile(parent);
+ profile->ns = aa_get_namespace(parent->ns);
+
+ write_lock(&profile->ns->lock);
+ __aa_add_profile(&parent->base.profiles, profile);
+ write_unlock(&profile->ns->lock);
+
+ return profile;
+
+fail:
+ aa_free_sid(sid);
+ return NULL;
+}
+
+/**
+ * aa_free_profile - free a profile
+ * @profile: the profile to free (MAYBE NULL)
+ *
+ * Free a profile, its hats and null_profile. All references to the profile,
+ * its hats and null_profile must have been put.
+ *
+ * If the profile was referenced from a task context, aa_free_profile() will
+ * be called from an rcu callback routine, so we must not sleep here.
+ */
+static void aa_free_profile(struct aa_profile *profile)
+{
+ AA_DEBUG("%s(%p)\n", __func__, profile);
+
+ if (!profile)
+ return;
+
+ if (!list_empty(&profile->base.list)) {
+ AA_ERROR("%s: internal error, "
+ "profile '%s' still on ns list\n",
+ __func__, profile->base.name);
+ BUG();
+ }
+
+ /* free children profiles */
+ policy_destroy(&profile->base);
+ aa_put_profile(profile->parent);
+
+ aa_put_namespace(profile->ns);
+
+ aa_free_file_rules(&profile->file);
+ aa_free_cap_rules(&profile->caps);
+ aa_free_net_rules(&profile->net);
+ aa_free_rlimit_rules(&profile->rlimits);
+
+ aa_free_sid(profile->sid);
+ aa_put_dfa(profile->xmatch);
+
+ if (profile->replacedby)
+ aa_put_profile(profile->replacedby);
+
+ kzfree(profile);
+}
+
+/**
+ * aa_free_profile_kref - free aa_profile by kref (called by aa_put_profile)
+ * @kr: kref callback for freeing of a profile (NOT NULL)
+ */
+void aa_free_profile_kref(struct kref *kref)
+{
+ struct aa_profile *p = container_of(kref, struct aa_profile,
+ base.count);
+
+ aa_free_profile(p);
+}
+
+/* TODO: profile count accounting - setup in remove */
+
+/**
+ * __aa_find_child - find a profile on @head list with a name matching @name
+ * @head: list to search (NOT NULL)
+ * @name: name of profile (NOT NULL)
+ *
+ * Requires: ns lock protecting list be held
+ *
+ * Returns: unrefcounted profile ptr, or NULL if not found
+ */
+static struct aa_profile *__aa_find_child(struct list_head *head,
+ const char *name)
+{
+ return (struct aa_profile *)__policy_find(head, name);
+}
+
+/**
+ * __aa_strn_find_child - find a profile on @head list using substring of @name
+ * @head: list to search (NOT NULL)
+ * @name: name of profile (NOT NULL)
+ * @len: length of @name substring to match
+ *
+ * Requires: ns lock protecting list be held
+ *
+ * Returns: unrefcounted profile ptr, or NULL if not found
+ */
+static struct aa_profile *__aa_strn_find_child(struct list_head *head,
+ const char *name, int len)
+{
+ return (struct aa_profile *)__policy_strn_find(head, name, len);
+}
+
+/**
+ * aa_find_child - find a profile by @name in @parent
+ * @parent: profile to search (NOT NULL)
+ * @name: profile name to search for (NOT NULL)
+ *
+ * Returns: a ref counted profile or NULL if not found
+ */
+struct aa_profile *aa_find_child(struct aa_profile *parent, const char *name)
+{
+ struct aa_profile *profile;
+
+ read_lock(&parent->ns->lock);
+ profile = aa_get_profile(__aa_find_child(&parent->base.profiles, name));
+ read_unlock(&parent->ns->lock);
+
+ return profile;
+}
+
+/**
+ * __aa_find_parent - lookup the parent of a profile of name @hname
+ * @ns: namespace to lookup profile in (NOT NULL)
+ * @hname: hierarchical profile name to find parent of (NOT NULL)
+ *
+ * Lookups up the parent of a fully qualified profile name, the profile
+ * that matches hname does not need to exist, in general this
+ * is used to load a new profile.
+ *
+ * Requires: ns->lock be held
+ *
+ * Returns: unrefcounted policy or NULL if not found
+ */
+static struct aa_policy *__aa_find_parent(struct aa_namespace *ns,
+ const char *hname)
+{
+ struct aa_policy *policy;
+ struct aa_profile *profile = NULL;
+ char *split;
+
+ policy = &ns->base;
+
+ for (split = strstr(hname, "//"); split;) {
+ profile = __aa_strn_find_child(&policy->profiles, hname,
+ split - hname);
+ if (!profile)
+ return NULL;
+ policy = &profile->base;
+ hname = split + 2;
+ split = strstr(hname, "//");
+ }
+ if (!profile)
+ return &ns->base;
+ return &profile->base;
+}
+
+/**
+ * __aa_find_profile - lookup the profile matching @hname
+ * @base: base list to start looking up profile name from (NOT NULL)
+ * @hname: hierarchical profile name (NOT NULL)
+ *
+ * Requires: ns->lock be held
+ *
+ * Returns: unrefcounted profile pointer or NULL if not found
+ *
+ * Do a relative name lookup, recursing through profile tree.
+ */
+static struct aa_profile *__aa_find_profile(struct aa_policy *base,
+ const char *hname)
+{
+ struct aa_profile *profile = NULL;
+ char *split;
+
+ for (split = strstr(hname, "//"); split;) {
+ profile = __aa_strn_find_child(&base->profiles, hname,
+ split - hname);
+ if (!profile)
+ return NULL;
+
+ base = &profile->base;
+ hname = split + 2;
+ split = strstr(hname, "//");
+ }
+
+ profile = __aa_find_child(&base->profiles, hname);
+
+ return profile;
+}
+
+/**
+ * aa_find_profile_by_name - find a profile by its full or partial name
+ * @ns: the namespace to start from
+ * @hname: name to do lookup on. Does not contain namespace prefix
+ *
+ * Returns: refcounted profile or NULL if not found
+ */
+struct aa_profile *aa_find_profile(struct aa_namespace *ns, const char *hname)
+{
+ struct aa_profile *profile;
+
+ read_lock(&ns->lock);
+ profile = aa_get_profile(__aa_find_profile(&ns->base, hname));
+ read_unlock(&ns->lock);
+ return profile;
+}
+
+/**
+ * replacement_allowed - test to see if replacement is allowed
+ * @profile: profile to test if it can be replaced (MAYBE NULL)
+ * @sa: audit data (NOT NULL)
+ * @add_only: true if replacement shouldn't be allowed but addition is okay
+ *
+ * Returns: %1 if replacement allowed else %0
+ */
+static bool replacement_allowed(struct aa_profile *profile,
+ struct aa_audit_iface *sa,
+ int add_only)
+{
+ if (profile) {
+ if (profile->flags & PFLAG_IMMUTABLE) {
+ sa->base.info = "cannot replace immutible profile";
+ sa->base.error = -EPERM;
+ return 0;
+ } else if (add_only) {
+ sa->base.info = "profile already exists";
+ sa->base.error = -EEXIST;
+ return 0;
+ }
+ }
+ return 1;
+}
+
+/**
+ * __add_new_profile - simple wrapper around __aa_add_profile
+ * @ns: namespace that profile is being added to (NOT NULL)
+ * @policy: the policy container to add the profile to (NOT NULL)
+ * @profile: profile to add (NOT NULL)
+ *
+ * add a profile to a list and do other required basic allocations
+ */
+static void __add_new_profile(struct aa_namespace *ns,
+ struct aa_policy *policy,
+ struct aa_profile *profile)
+{
+ if (policy != &ns->base)
+ /* released on profile replacement or aa_free_profile */
+ profile->parent = aa_get_profile((struct aa_profile *) policy);
+ __aa_add_profile(&policy->profiles, profile);
+ /* released on aa_free_profile */
+ profile->sid = aa_alloc_sid();
+ profile->ns = aa_get_namespace(ns);
+}
+
+/**
+ * aa_interface_replace_profiles - replace profile(s) on the profile list
+ * @udata: serialized data stream (NOT NULL)
+ * @size: size of the serialized data stream
+ * @add_only: true if only doing addition, no replacement allowed
+ *
+ * unpack and replace a profile on the profile list and uses of that profile
+ * by any aa_task_cxt. If the profile does not exist on the profile list
+ * it is added.
+ *
+ * Returns: size of data consumed else error code on failure.
+ */
+ssize_t aa_interface_replace_profiles(void *udata, size_t size, bool add_only)
+{
+ struct aa_policy *policy;
+ struct aa_profile *old_profile = NULL, *new_profile = NULL;
+ struct aa_profile *rename_profile = NULL;
+ struct aa_namespace *ns = NULL;
+ ssize_t error;
+ struct aa_audit_iface sa = {
+ .base.operation = "profile_replace",
+ .base.gfp_mask = GFP_ATOMIC,
+ };
+
+ /* check if loading policy is locked out */
+ if (aa_g_lock_policy) {
+ sa.base.info = "policy locked";
+ sa.base.error = -EACCES;
+ goto fail;
+ }
+
+ /* released below */
+ new_profile = aa_unpack(udata, size, &sa);
+ if (IS_ERR(new_profile)) {
+ sa.base.error = PTR_ERR(new_profile);
+ goto fail;
+ }
+
+ /* released below */
+ ns = aa_prepare_namespace(sa.name2);
+ if (!ns) {
+ sa.base.info = "failed to prepare namespace";
+ sa.base.error = -ENOMEM;
+ goto fail;
+ }
+
+ sa.name = new_profile->base.hname;
+
+ write_lock(&ns->lock);
+ /* no ref on policy only use inside lock */
+ policy = __aa_find_parent(ns, new_profile->base.hname);
+
+ if (!policy) {
+ sa.base.info = "parent does not exist";
+ sa.base.error = -ENOENT;
+ goto audit;
+ }
+
+ old_profile = __aa_find_child(&policy->profiles,
+ new_profile->base.name);
+ /* released below */
+ aa_get_profile(old_profile);
+
+ if (new_profile->rename) {
+ rename_profile = __aa_find_profile(&ns->base,
+ new_profile->rename);
+ /* released below */
+ aa_get_profile(rename_profile);
+
+ if (!rename_profile) {
+ sa.base.info = "profile to rename does not exist";
+ sa.name = new_profile->rename;
+ sa.base.error = -ENOENT;
+ goto audit;
+ }
+ }
+
+ if (!replacement_allowed(old_profile, &sa, add_only))
+ goto audit;
+
+ if (!replacement_allowed(rename_profile, &sa, add_only))
+ goto audit;
+
+audit:
+ if (!old_profile && !rename_profile)
+ sa.base.operation = "profile_load";
+
+ error = aa_audit_iface(&sa);
+
+ /* rename field must be cleared as it is shared with replaced-by */
+ if (new_profile->rename) {
+ kzfree(new_profile->rename);
+ new_profile->rename = NULL;
+ }
+
+ if (!error) {
+ if (old_profile)
+ __aa_replace_profile(old_profile, new_profile);
+ if (rename_profile)
+ __aa_replace_profile(rename_profile, new_profile);
+ if (!(old_profile || rename_profile))
+ __add_new_profile(ns, policy, new_profile);
+ }
+ write_unlock(&ns->lock);
+
+out:
+ aa_put_namespace(ns);
+ aa_put_profile(rename_profile);
+ aa_put_profile(old_profile);
+ aa_put_profile(new_profile);
+ if (error)
+ return error;
+ return size;
+
+fail:
+ error = aa_audit_iface(&sa);
+ goto out;
+}
+
+/**
+ * aa_interface_remove_profiles - remove profile(s) from the system
+ * @fqname: name of the profile or namespace to remove (NOT NULL)
+ * @size: size of the name
+ *
+ * Remove a profile or sub namespace from the current namespace, so that
+ * they can not be found anymore and mark them as replaced by unconfined
+ *
+ * NOTE: removing confinement does not restore rlimits to preconfinemnet values
+ *
+ * Returns: size of data consume else error code if fails
+ */
+ssize_t aa_interface_remove_profiles(char *fqname, size_t size)
+{
+ struct aa_namespace *root, *ns = NULL;
+ struct aa_profile *profile = NULL;
+ struct aa_audit_iface sa = {
+ .base.operation = "profile_remove",
+ .base.gfp_mask = GFP_ATOMIC,
+ };
+ const char *name = fqname;
+ int error;
+
+ /* check if loading policy is locked out */
+ if (aa_g_lock_policy) {
+ sa.base.info = "policy locked";
+ sa.base.error = -EACCES;
+ goto fail;
+ }
+
+ if (*fqname == 0) {
+ sa.base.info = "no profile specified";
+ sa.base.error = -ENOENT;
+ goto fail;
+ }
+
+ /* ref count held by cred */
+ root = aa_current_profile()->ns;
+
+ if (fqname[0] == ':') {
+ char *ns_name;
+ name = aa_split_fqname(fqname, &ns_name);
+ if (ns_name)
+ /* released below */
+ ns = aa_find_namespace(root, ns_name);
+ } else
+ /* released below */
+ ns = aa_get_namespace(root);
+
+ if (!ns) {
+ sa.base.info = "namespace does not exist";
+ sa.base.error = -ENOENT;
+ goto fail;
+ }
+
+ sa.name2 = ns->base.name;
+ write_lock(&ns->lock);
+ if (!name) {
+ /* remove namespace - can only happen if fqname[0] == ':' */
+ __aa_remove_namespace(ns);
+ } else {
+ /* remove profile */
+ profile = aa_get_profile(__aa_find_profile(&ns->base, name));
+ if (!profile) {
+ sa.name = name;
+ sa.base.error = -ENOENT;
+ sa.base.info = "profile does not exist";
+ goto fail_ns_lock;
+ }
+ sa.name = profile->base.hname;
+ __aa_profile_list_release(&profile->base.profiles);
+ __aa_replace_profile(profile, NULL);
+ }
+ write_unlock(&ns->lock);
+
+ /* don't fail removal if audit fails */
+ (void) aa_audit_iface(&sa);
+ aa_put_namespace(ns);
+ aa_put_profile(profile);
+ return size;
+
+fail_ns_lock:
+ write_unlock(&ns->lock);
+ aa_put_namespace(ns);
+
+fail:
+ error = aa_audit_iface(&sa);
+ return error;
+}
diff --git a/security/apparmor/policy_unpack.c b/security/apparmor/policy_unpack.c
new file mode 100644
index 00000000000..0a15f416d17
--- /dev/null
+++ b/security/apparmor/policy_unpack.c
@@ -0,0 +1,725 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor functions for unpacking policy loaded from
+ * userspace.
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ *
+ * AppArmor uses a serialized binary format for loading policy.
+ * The policy format is documented in Documentation/???
+ * All policy is validated all before it is used.
+ */
+
+#include <asm/unaligned.h>
+#include <linux/ctype.h>
+#include <linux/errno.h>
+
+#include "include/apparmor.h"
+#include "include/audit.h"
+#include "include/context.h"
+#include "include/match.h"
+#include "include/policy.h"
+#include "include/policy_unpack.h"
+#include "include/sid.h"
+
+/*
+ * The AppArmor interface treats data as a type byte followed by the
+ * actual data. The interface has the notion of a a named entry
+ * which has a name (AA_NAME typecode followed by name string) followed by
+ * the entries typecode and data. Named types allow for optional
+ * elements and extensions to be added and tested for without breaking
+ * backwards compatability.
+ */
+
+enum aa_code {
+ AA_U8,
+ AA_U16,
+ AA_U32,
+ AA_U64,
+ AA_NAME, /* same as string except it is items name */
+ AA_STRING,
+ AA_BLOB,
+ AA_STRUCT,
+ AA_STRUCTEND,
+ AA_LIST,
+ AA_LISTEND,
+ AA_ARRAY,
+ AA_ARRAYEND,
+};
+
+/*
+ * aa_ext is the read of the buffer containing the serialized profile. The
+ * data is copied into a kernel buffer in apparmorfs and then handed off to
+ * the unpack routines.
+ */
+struct aa_ext {
+ void *start;
+ void *end;
+ void *pos; /* pointer to current position in the buffer */
+ u32 version;
+};
+
+/* audit callback for unpack fields */
+static void audit_cb(struct audit_buffer *ab, struct aa_audit *va)
+{
+ struct aa_audit_iface *sa = container_of(va, struct aa_audit_iface,
+ base);
+
+ if (sa->name) {
+ audit_log_format(ab, " name=");
+ audit_log_string(ab, sa->name);
+ }
+ if (sa->name2) {
+ audit_log_format(ab, " namespace=");
+ audit_log_string(ab, sa->name2);
+ }
+ if (sa->base.error && sa->pos)
+ audit_log_format(ab, " offset=%ld", sa->pos);
+}
+
+/**
+ * aa_audit_iface - do audit message for policy unpacking/load/replace/remove
+ * @sa: audit date to send to audit (NOT NULL)
+ *
+ * Returns: %0 or error
+ */
+int aa_audit_iface(struct aa_audit_iface *sa)
+{
+ struct aa_profile *profile;
+ const struct cred *cred = get_current_cred();
+ int error;
+ profile = aa_cred_profile(cred);
+ error = aa_audit(AUDIT_APPARMOR_STATUS, profile, &sa->base, audit_cb);
+ put_cred(cred);
+ return error;
+}
+
+/* test if read will be in packed data bounds */
+static bool aa_inbounds(struct aa_ext *e, size_t size)
+{
+ return (size <= e->end - e->pos);
+}
+
+/**
+ * aa_u16_chunck - test and do bounds checking for a u16 size based chunk
+ * @e: serialized data read head
+ * @chunk: start address for chunk of data
+ *
+ * Returns: the size of chunk found with the read head at the end of the chunk.
+ */
+static size_t unpack_u16_chunk(struct aa_ext *e, char **chunk)
+{
+ size_t size = 0;
+
+ if (!aa_inbounds(e, sizeof(u16)))
+ return 0;
+ size = le16_to_cpu(get_unaligned((u16 *) e->pos));
+ e->pos += sizeof(u16);
+ if (!aa_inbounds(e, size))
+ return 0;
+ *chunk = e->pos;
+ e->pos += size;
+ return size;
+}
+
+/* unpack control byte */
+static bool unpack_X(struct aa_ext *e, enum aa_code code)
+{
+ if (!aa_inbounds(e, 1))
+ return 0;
+ if (*(u8 *) e->pos != code)
+ return 0;
+ e->pos++;
+ return 1;
+}
+
+/**
+ * unpack_nameX - check is the next element is of type X with a name of @name
+ * @e: serialized data extent information (NOT NULL)
+ * @code: type code
+ * @name: name to match to the serialized element. (MAYBE NULL)
+ *
+ * check that the next serialized data element is of type X and has a tag
+ * name @name. If @name is specified then there must be a matching
+ * name element in the stream. If @name is NULL any name element will be
+ * skipped and only the typecode will be tested.
+ * returns 1 on success (both type code and name tests match) and the read
+ * head is advanced past the headers
+ *
+ * Returns: 0 if either match failes, the read head does not move
+ */
+static bool unpack_nameX(struct aa_ext *e, enum aa_code code, const char *name)
+{
+ /*
+ * May need to reset pos if name or type doesn't match
+ */
+ void *pos = e->pos;
+ /*
+ * Check for presence of a tagname, and if present name size
+ * AA_NAME tag value is a u16.
+ */
+ if (unpack_X(e, AA_NAME)) {
+ char *tag = NULL;
+ size_t size = unpack_u16_chunk(e, &tag);
+ /* if a name is specified it must match. otherwise skip tag */
+ if (name && (!size || strcmp(name, tag)))
+ goto fail;
+ } else if (name) {
+ /* if a name is specified and there is no name tag fail */
+ goto fail;
+ }
+
+ /* now check if type code matches */
+ if (unpack_X(e, code))
+ return 1;
+
+fail:
+ e->pos = pos;
+ return 0;
+}
+
+static bool unpack_u16(struct aa_ext *e, u16 *data, const char *name)
+{
+ if (unpack_nameX(e, AA_U16, name)) {
+ if (!aa_inbounds(e, sizeof(u16)))
+ return 0;
+ if (data)
+ *data = le16_to_cpu(get_unaligned((u16 *) e->pos));
+ e->pos += sizeof(u16);
+ return 1;
+ }
+ return 0;
+}
+
+static bool unpack_u32(struct aa_ext *e, u32 *data, const char *name)
+{
+ if (unpack_nameX(e, AA_U32, name)) {
+ if (!aa_inbounds(e, sizeof(u32)))
+ return 0;
+ if (data)
+ *data = le32_to_cpu(get_unaligned((u32 *) e->pos));
+ e->pos += sizeof(u32);
+ return 1;
+ }
+ return 0;
+}
+
+static bool unpack_u64(struct aa_ext *e, u64 *data, const char *name)
+{
+ if (unpack_nameX(e, AA_U64, name)) {
+ if (!aa_inbounds(e, sizeof(u64)))
+ return 0;
+ if (data)
+ *data = le64_to_cpu(get_unaligned((u64 *) e->pos));
+ e->pos += sizeof(u64);
+ return 1;
+ }
+ return 0;
+}
+
+static size_t unpack_array(struct aa_ext *e, const char *name)
+{
+ if (unpack_nameX(e, AA_ARRAY, name)) {
+ int size;
+ if (!aa_inbounds(e, sizeof(u16)))
+ return 0;
+ size = (int)le16_to_cpu(get_unaligned((u16 *) e->pos));
+ e->pos += sizeof(u16);
+ return size;
+ }
+ return 0;
+}
+
+static size_t unpack_blob(struct aa_ext *e, char **blob, const char *name)
+{
+ if (unpack_nameX(e, AA_BLOB, name)) {
+ u32 size;
+ if (!aa_inbounds(e, sizeof(u32)))
+ return 0;
+ size = le32_to_cpu(get_unaligned((u32 *) e->pos));
+ e->pos += sizeof(u32);
+ if (aa_inbounds(e, (size_t) size)) {
+ *blob = e->pos;
+ e->pos += size;
+ return size;
+ }
+ }
+ return 0;
+}
+
+static int unpack_str(struct aa_ext *e, const char **string, const char *name)
+{
+ char *src_str;
+ size_t size = 0;
+ void *pos = e->pos;
+ *string = NULL;
+ if (unpack_nameX(e, AA_STRING, name)) {
+ size = unpack_u16_chunk(e, &src_str);
+ if (size) {
+ /* strings are null terminated, length is size - 1 */
+ if (src_str[size - 1] != 0)
+ goto fail;
+ *string = src_str;
+ }
+ }
+ return size;
+
+fail:
+ e->pos = pos;
+ return 0;
+}
+
+static int unpack_strdup(struct aa_ext *e, char **string, const char *name)
+{
+ const char *tmp;
+ void *pos = e->pos;
+ int res = unpack_str(e, &tmp, name);
+ *string = NULL;
+
+ if (!res)
+ return 0;
+
+ *string = kmemdup(tmp, res, GFP_KERNEL);
+ if (!*string) {
+ e->pos = pos;
+ return 0;
+ }
+
+ return res;
+}
+
+static bool verify_accept(struct aa_dfa *dfa, int flags)
+{
+ int i;
+
+ /* verify accept permissions */
+ for (i = 0; i < dfa->tables[YYTD_ID_ACCEPT]->td_lolen; i++) {
+ int mode = ACCEPT_TABLE(dfa)[i];
+
+ if (mode & ~DFA_VALID_PERM_MASK)
+ return 0;
+
+ if (ACCEPT_TABLE2(dfa)[i] & ~DFA_VALID_PERM2_MASK)
+ return 0;
+ }
+ return 1;
+}
+
+/**
+ * unpack_dfa - unpack a file rule dfa
+ * @e: serialized data extent information
+ *
+ * returns dfa or ERR_PTR or NULL if no dfa
+ */
+static struct aa_dfa *unpack_dfa(struct aa_ext *e)
+{
+ char *blob = NULL;
+ size_t size;
+ struct aa_dfa *dfa = NULL;
+
+ size = unpack_blob(e, &blob, "aadfa");
+ if (size) {
+ /*
+ * The dfa is aligned with in the blob to 8 bytes
+ * from the beginning of the stream.
+ */
+ size_t sz = blob - (char *)e->start;
+ size_t pad = ALIGN(sz, 8) - sz;
+ int flags = TO_ACCEPT1_FLAG(YYTD_DATA32) |
+ TO_ACCEPT2_FLAG(YYTD_DATA32);
+
+
+ if (aa_g_paranoid_load)
+ flags |= DFA_FLAG_VERIFY_STATES;
+
+ dfa = aa_dfa_unpack(blob + pad, size - pad, flags);
+
+ if (!IS_ERR(dfa) && !verify_accept(dfa, flags))
+ goto fail;
+ }
+
+ return dfa;
+
+fail:
+ aa_put_dfa(dfa);
+ return ERR_PTR(-EPROTO);
+}
+
+static bool unpack_trans_table(struct aa_ext *e, struct aa_profile *profile)
+{
+ void *pos = e->pos;
+
+ /* exec table is optional */
+ if (unpack_nameX(e, AA_STRUCT, "xtable")) {
+ int i, size;
+
+ size = unpack_array(e, NULL);
+ /* currently 4 exec bits and entries 0-3 are reserved iupcx */
+ if (size > 16 - 4)
+ goto fail;
+ profile->file.trans.table = kzalloc(sizeof(char *) * size,
+ GFP_KERNEL);
+ if (!profile->file.trans.table)
+ goto fail;
+
+ profile->file.trans.size = size;
+ for (i = 0; i < size; i++) {
+ char *str;
+ int c, j, size = unpack_strdup(e, &str, NULL);
+ if (!size)
+ goto fail;
+ profile->file.trans.table[i] = str;
+ /* verify that name doesn't start with space */
+ if (isspace(*str))
+ goto fail;
+
+ /* count internal # of internal \0 */
+ for (c = j = 0; j < size - 2; j++) {
+ if (!str[j])
+ c++;
+ }
+ if (*str == ':') {
+ /* beginning with : requires an embedded \0 */
+ if (c != 1)
+ goto fail;
+ /* first character after : must be valid */
+ if (!str[1])
+ goto fail;
+ } else if (c)
+ /* fail - all other cases with embedded \0 */
+ goto fail;
+ }
+ if (!unpack_nameX(e, AA_ARRAYEND, NULL))
+ goto fail;
+ if (!unpack_nameX(e, AA_STRUCTEND, NULL))
+ goto fail;
+ }
+ return 1;
+
+fail:
+ aa_free_domain_entries(&profile->file.trans);
+ e->pos = pos;
+ return 0;
+}
+
+static bool unpack_rlimits(struct aa_ext *e, struct aa_profile *profile)
+{
+ void *pos = e->pos;
+
+ /* rlimits are optional */
+ if (unpack_nameX(e, AA_STRUCT, "rlimits")) {
+ int i, size;
+ u32 tmp = 0;
+ if (!unpack_u32(e, &tmp, NULL))
+ goto fail;
+ profile->rlimits.mask = tmp;
+
+ size = unpack_array(e, NULL);
+ if (size > RLIM_NLIMITS)
+ goto fail;
+ for (i = 0; i < size; i++) {
+ u64 tmp = 0;
+ if (!unpack_u64(e, &tmp, NULL))
+ goto fail;
+ profile->rlimits.limits[i].rlim_max = tmp;
+ }
+ if (!unpack_nameX(e, AA_ARRAYEND, NULL))
+ goto fail;
+ if (!unpack_nameX(e, AA_STRUCTEND, NULL))
+ goto fail;
+ }
+ return 1;
+
+fail:
+ e->pos = pos;
+ return 0;
+}
+
+/**
+ * unpack_profile - unpack a serialized profile
+ * @e: serialized data extent information
+ * @sa: audit struct for the operation
+ *
+ * NOTE: unpack profile sets audit struct if there is a failure
+ */
+static struct aa_profile *unpack_profile(struct aa_ext *e,
+ struct aa_audit_iface *sa)
+{
+ struct aa_profile *profile = NULL;
+ const char *name = NULL;
+ size_t size = 0;
+ int i, error = -EPROTO;
+ kernel_cap_t tmpcap;
+ u32 tmp;
+ u64 tmp64;
+
+ /* check that we have the right struct being passed */
+ if (!unpack_nameX(e, AA_STRUCT, "profile"))
+ goto fail;
+ if (!unpack_str(e, &name, NULL))
+ goto fail;
+
+ profile = aa_alloc_profile(name);
+ if (!profile)
+ return ERR_PTR(-ENOMEM);
+
+ /* profile renaming is optional */
+ (void) unpack_str(e, &profile->rename, "rename");
+
+ /* xmatch is optional and may be NULL */
+ profile->xmatch = unpack_dfa(e);
+ if (IS_ERR(profile->xmatch)) {
+ error = PTR_ERR(profile->xmatch);
+ profile->xmatch = NULL;
+ goto fail;
+ }
+ /* xmatch_len is not optional if xmatch is set */
+ if (profile->xmatch) {
+ if (!unpack_u32(e, &tmp, NULL))
+ goto fail;
+ profile->xmatch_len = tmp;
+ }
+
+ /* per profile debug flags (complain, audit) */
+ if (!unpack_nameX(e, AA_STRUCT, "flags"))
+ goto fail;
+ if (!unpack_u32(e, &tmp, NULL))
+ goto fail;
+ if (tmp)
+ profile->flags |= PFLAG_HAT;
+ if (!unpack_u32(e, &tmp, NULL))
+ goto fail;
+ if (tmp)
+ profile->mode = APPARMOR_COMPLAIN;
+ if (!unpack_u32(e, &tmp, NULL))
+ goto fail;
+ if (tmp)
+ profile->audit = AUDIT_ALL;
+
+ if (!unpack_nameX(e, AA_STRUCTEND, NULL))
+ goto fail;
+
+ /* path_flags is optional */
+ if (unpack_u32(e, &profile->path_flags, "path_flags"))
+ profile->path_flags |= profile->flags & PFLAG_MEDIATE_DELETED;
+ else
+ /* default to */
+ profile->path_flags = PFLAG_MEDIATE_DELETED;
+
+ /* mmap_min_addr is optional */
+ if (unpack_u64(e, &tmp64, "mmap_min_addr")) {
+ profile->mmap_min_addr = (unsigned long)tmp64;
+ if (((u64) profile->mmap_min_addr) == tmp64) {
+ profile->flags |= PFLAG_MMAP_MIN_ADDR;
+ } else {
+ sa->base.info = "invalid set mmap_min_addr";
+ goto fail;
+ }
+ }
+
+ if (!unpack_u32(e, &(profile->caps.allowed.cap[0]), NULL))
+ goto fail;
+ if (!unpack_u32(e, &(profile->caps.audit.cap[0]), NULL))
+ goto fail;
+ if (!unpack_u32(e, &(profile->caps.quiet.cap[0]), NULL))
+ goto fail;
+ if (!unpack_u32(e, &tmpcap.cap[0], NULL))
+ goto fail;
+
+ if (unpack_nameX(e, AA_STRUCT, "caps64")) {
+ /* optional upper half of 64 bit caps */
+ if (!unpack_u32(e, &(profile->caps.allowed.cap[1]), NULL))
+ goto fail;
+ if (!unpack_u32(e, &(profile->caps.audit.cap[1]), NULL))
+ goto fail;
+ if (!unpack_u32(e, &(profile->caps.quiet.cap[1]), NULL))
+ goto fail;
+ if (!unpack_u32(e, &(tmpcap.cap[1]), NULL))
+ goto fail;
+ if (!unpack_nameX(e, AA_STRUCTEND, NULL))
+ goto fail;
+ }
+
+ if (unpack_nameX(e, AA_STRUCT, "capsx")) {
+ /* optional extended caps mediation mask */
+ if (!unpack_u32(e, &(profile->caps.extended.cap[0]), NULL))
+ goto fail;
+ if (!unpack_u32(e, &(profile->caps.extended.cap[1]), NULL))
+ goto fail;
+ }
+
+ if (!unpack_rlimits(e, profile))
+ goto fail;
+
+ size = unpack_array(e, "net_allowed_af");
+ if (size) {
+ if (size > AF_MAX)
+ goto fail;
+
+ for (i = 0; i < size; i++) {
+ if (!unpack_u16(e, &profile->net.allowed[i], NULL))
+ goto fail;
+ if (!unpack_u16(e, &profile->net.audit[i], NULL))
+ goto fail;
+ if (!unpack_u16(e, &profile->net.quiet[i], NULL))
+ goto fail;
+ }
+ if (!unpack_nameX(e, AA_ARRAYEND, NULL))
+ goto fail;
+ /*
+ * allow unix domain and netlink sockets they are handled
+ * by IPC
+ */
+ }
+ profile->net.allowed[AF_UNIX] = 0xffff;
+ profile->net.allowed[AF_NETLINK] = 0xffff;
+
+ /* get file rules */
+ profile->file.dfa = unpack_dfa(e);
+ if (IS_ERR(profile->file.dfa)) {
+ error = PTR_ERR(profile->file.dfa);
+ profile->file.dfa = NULL;
+ goto fail;
+ }
+
+ if (!unpack_u32(e, &profile->file.start, "dfa_start"))
+ /* default start state */
+ profile->file.start = DFA_START;
+
+ if (!unpack_trans_table(e, profile))
+ goto fail;
+
+ if (!unpack_nameX(e, AA_STRUCTEND, NULL))
+ goto fail;
+
+ return profile;
+
+fail:
+ sa->name = name ? name : "unknown";
+ if (!sa->base.info)
+ sa->base.info = "failed to unpack profile";
+
+ aa_put_profile(profile);
+
+ return ERR_PTR(error);
+}
+
+/**
+ * aa_verify_head - unpack serialized stream header
+ * @e: serialized data read head
+ * @operation: operation header is being verified for
+ *
+ * Returns: error or 0 if header is good
+ */
+static int aa_verify_header(struct aa_ext *e, struct aa_audit_iface *sa)
+{
+ /* get the interface version */
+ if (!unpack_u32(e, &e->version, "version")) {
+ sa->base.info = "invalid profile format";
+ aa_audit_iface(sa);
+ return -EPROTONOSUPPORT;
+ }
+
+ /* check that the interface version is currently supported */
+ if (e->version != 5) {
+ sa->base.info = "unsupported interface version";
+ aa_audit_iface(sa);
+ return -EPROTONOSUPPORT;
+ }
+
+ /* read the namespace if present */
+ if (!unpack_str(e, &sa->name2, "namespace"))
+ sa->name2 = NULL;
+
+ return 0;
+}
+
+/**
+ * verify_profile - Do post unpack analysis to verify profile consistency
+ * @profile: profile to verify
+ *
+ * Returns: 0 if passes verification else error
+ */
+static bool verify_xindex(int xindex, int table_size)
+{
+ int index, xtype;
+ xtype = xindex & AA_X_TYPE_MASK;
+ index = xindex & AA_X_INDEX_MASK;
+ if (xtype == AA_X_TABLE && index > table_size)
+ return 0;
+ return 1;
+}
+
+/* verify dfa xindexes are in range of transition tables */
+static bool verify_dfa_xindex(struct aa_dfa *dfa, int table_size)
+{
+ int i;
+ for (i = 0; i < dfa->tables[YYTD_ID_ACCEPT]->td_lolen; i++) {
+ if (!verify_xindex(dfa_user_xindex(dfa, i), table_size))
+ return 0;
+ if (!verify_xindex(dfa_other_xindex(dfa, i), table_size))
+ return 0;
+ }
+ return 1;
+}
+
+static int verify_profile(struct aa_profile *profile, struct aa_audit_iface *sa)
+{
+ if (aa_g_paranoid_load) {
+ if (profile->file.dfa &&
+ !verify_dfa_xindex(profile->file.dfa,
+ profile->file.trans.size)) {
+ sa->base.info = "Invalid named transition";
+ return -EPROTO;
+ }
+ }
+
+ return 0;
+}
+
+/**
+ * aa_unpack - unpack packed binary profile data loaded from user space
+ * @udata: user data copied to kmem (NOT NULL)
+ * @size: the size of the user data
+ * @sa: audit struct for unpacking (NOT NULL)
+ *
+ * Unpack user data and return refcounted allocated profile or ERR_PTR
+ *
+ * Returns: profile else error pointer if fails to unpack
+ */
+struct aa_profile *aa_unpack(void *udata, size_t size,
+ struct aa_audit_iface *sa)
+{
+ struct aa_profile *profile;
+ int error;
+ struct aa_ext e = {
+ .start = udata,
+ .end = udata + size,
+ .pos = udata,
+ };
+
+ error = aa_verify_header(&e, sa);
+ if (error)
+ return ERR_PTR(error);
+
+ profile = unpack_profile(&e, sa);
+ if (IS_ERR(profile)) {
+ sa->pos = e.pos - e.start;
+ return profile;
+ }
+ error = verify_profile(profile, sa);
+ if (error) {
+ aa_put_profile(profile);
+ profile = ERR_PTR(error);
+ }
+
+ /* return refcount */
+ return profile;
+}
diff --git a/security/apparmor/procattr.c b/security/apparmor/procattr.c
new file mode 100644
index 00000000000..c31f693bbe7
--- /dev/null
+++ b/security/apparmor/procattr.c
@@ -0,0 +1,152 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor /proc/<pid>/attr/ interface functions
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include "include/apparmor.h"
+#include "include/policy.h"
+#include "include/domain.h"
+
+/**
+ * aa_getprocattr - Return the profile information for @profile
+ * @profile: the profile to print profile info about (NOT NULL)
+ * @string: the string that will contain the profile and namespace info (!NULL)
+ *
+ * Returns: length of @string on success else error on failure
+ *
+ * Requires: profile != NULL
+ *
+ * Creates a string containing the namespace_name://profile_name for
+ * @profile.
+ *
+ * Returns: size of string placed in @string else error code on failure
+ */
+int aa_getprocattr(struct aa_profile *profile, char **string)
+{
+ char *str;
+ int len = 0, mode_len, name_len, ns_len = 0;
+ const char *mode_str = profile_mode_names[profile->mode];
+ struct aa_namespace *ns = profile->ns;
+ char *s;
+
+ mode_len = strlen(mode_str) + 3; /* + 3 for _() */
+ name_len = strlen(profile->base.hname);
+ if (ns != root_ns)
+ ns_len = strlen(ns->base.name) + 3; /*+ 3 for :// */
+ len = mode_len + ns_len + name_len + 1; /*+ 1 for \n */
+ s = str = kmalloc(len + 1, GFP_ATOMIC); /* + 1 \0 */
+ if (!str)
+ return -ENOMEM;
+
+ if (ns_len) {
+ sprintf(s, "%s://", ns->base.name);
+ s += ns_len;
+ }
+ if (profile->flags & PFLAG_UNCONFINED) {
+ sprintf(s, "%s\n", profile->base.hname);
+ /* mode string not being appended so reduce string size */
+ len -= mode_len;
+ } else
+ sprintf(s, "%s (%s)\n", profile->base.hname, mode_str);
+ *string = str;
+
+ /* NOTE: len does not include \0 of string, not saved as part of file */
+ return len;
+}
+
+/**
+ * split_token_from_name - separate a string of form <token>^<name>
+ * @op: operation name (NOT NULL)
+ * @args: string to parse (NOT NULL)
+ * @token: stores returned parsed token value (NOT NULL)
+ *
+ * Returns: start position of name after token else NULL on failure
+ */
+static char *split_token_from_name(const char *op, char *args, u64 * token)
+{
+ char *name;
+
+ *token = simple_strtoull(args, &name, 16);
+ if ((name == args) || *name != '^') {
+ AA_ERROR("%s: Invalid input '%s'", op, args);
+ return ERR_PTR(-EINVAL);
+ }
+
+ name++; /* skip ^ */
+ if (!*name)
+ name = NULL;
+ return name;
+}
+
+/**
+ * aa_setprocattr_chagnehat - handle procattr interface to change_hat
+ * @args: args received from writing to /proc/<pid>/attr/current (NOT NULL)
+ * @size: size of the args
+ * @test: true if this is a test of change_hat permissions
+ *
+ * Returns: %0 or error code if change_hat fails
+ */
+int aa_setprocattr_changehat(char *args, size_t size, int test)
+{
+ char *hat;
+ u64 token;
+ const char *hats[16]; /* current hard limit on # of names */
+ int count = 0;
+
+ hat = split_token_from_name("change_hat", args, &token);
+ if (IS_ERR(hat))
+ return PTR_ERR(hat);
+
+ if (!hat && !token) {
+ AA_ERROR("change_hat: Invalid input, NULL hat and NULL magic");
+ return -EINVAL;
+ }
+
+ if (hat) {
+ /* set up hat name vector, args guarenteed null terminated
+ * at args[size]
+ */
+ char *end = args + size;
+ for (count = 0; (hat < end) && count < 16; ++count) {
+ char *next = hat + strlen(hat) + 1;
+ hats[count] = hat;
+ hat = next;
+ }
+ }
+
+ AA_DEBUG("%s: Magic 0x%llx Hat '%s'\n",
+ __func__, token, hat ? hat : NULL);
+
+ return aa_change_hat(hats, count, token, test);
+}
+
+/**
+ * aa_setprocattr_changeprofile - handle procattr interface to changeprofile
+ * @fqname: args received from writting to /proc/<pid>/attr/current (NOT NULL)
+ * @onexec: true if change_profile should be delayed until exec
+ * @test: true if this is a test of change_profile permissions
+ *
+ * Returns: %0 or error code if change_profile fails
+ */
+int aa_setprocattr_changeprofile(char *fqname, int onexec, int test)
+{
+ char *name, *ns_name;
+
+ name = aa_split_fqname(fqname, &ns_name);
+ return aa_change_profile(ns_name, name, onexec, test);
+}
+
+int aa_setprocattr_permipc(char *fqname)
+{
+ /* TODO: add ipc permission querying */
+ return -ENOTSUPP;
+}
diff --git a/security/apparmor/resource.c b/security/apparmor/resource.c
new file mode 100644
index 00000000000..b33010208e6
--- /dev/null
+++ b/security/apparmor/resource.c
@@ -0,0 +1,119 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor resource mediation and attachment
+ *
+ * Copyright (C) 1998-2008 Novell/SUSE
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include <linux/audit.h>
+
+#include "include/audit.h"
+#include "include/resource.h"
+#include "include/policy.h"
+
+struct aa_audit_resource {
+ struct aa_audit base;
+
+ int rlimit;
+};
+
+/* audit callback for resource specific fields */
+static void audit_cb(struct audit_buffer *ab, struct aa_audit *va)
+{
+ struct aa_audit_resource *sa = container_of(va,
+ struct aa_audit_resource,
+ base);
+
+ if (sa->rlimit)
+ audit_log_format(ab, " rlimit=%d", sa->rlimit - 1);
+}
+
+/**
+ * aa_audit_resource - audit setting resource limit
+ * @profile: profile being enforced (NOT NULL)
+ * @sa: audit data (NOT NULL)
+ *
+ * Returns: 0 or sa->error else other error code on failure
+ */
+static int aa_audit_resource(struct aa_profile *profile,
+ struct aa_audit_resource *sa)
+{
+ return aa_audit(AUDIT_APPARMOR_AUTO, profile, &sa->base, audit_cb);
+}
+
+/**
+ * aa_task_setrlimit - test permission to set an rlimit
+ * @profile - profile confining the task (NOT NULL)
+ * @resource - the resource being set
+ * @new_rlim - the new resource limit (NOT NULL)
+ *
+ * Control raising the processes hard limit.
+ *
+ * Returns: 0 or error code if setting resource failed
+ */
+int aa_task_setrlimit(struct aa_profile *profile, unsigned int resource,
+ struct rlimit *new_rlim)
+{
+ struct aa_audit_resource sa = {
+ .base.operation = "setrlimit",
+ .base.gfp_mask = GFP_KERNEL,
+ .rlimit = resource + 1,
+ };
+ int error = 0;
+
+ if (profile->rlimits.mask & (1 << resource) &&
+ new_rlim->rlim_max > profile->rlimits.limits[resource].rlim_max) {
+ sa.base.error = -EACCES;
+
+ error = aa_audit_resource(profile, &sa);
+ }
+
+ return error;
+}
+
+/**
+ * __aa_transition_rlimits - apply new profile rlimits
+ * @old: old profile on task (MAYBE NULL)
+ * @new: new profile with rlimits to apply (NOT NULL)
+ */
+void __aa_transition_rlimits(struct aa_profile *old, struct aa_profile *new)
+{
+ unsigned int mask = 0;
+ struct rlimit *rlim, *initrlim;
+ int i;
+
+ /* for any rlimits the profile controlled reset the soft limit
+ * to the less of the tasks hard limit and the init tasks soft limit
+ */
+ if (old && old->rlimits.mask) {
+ for (i = 0, mask = 1; i < RLIM_NLIMITS; i++, mask <<= 1) {
+ if (old->rlimits.mask & mask) {
+ rlim = current->signal->rlim + i;
+ initrlim = init_task.signal->rlim + i;
+ rlim->rlim_cur = min(rlim->rlim_max,
+ initrlim->rlim_cur);
+ }
+ }
+ }
+
+ /* set any new hard limits as dictated by the new profile */
+ if (!(new && new->rlimits.mask))
+ return;
+ for (i = 0, mask = 1; i < RLIM_NLIMITS; i++, mask <<= 1) {
+ if (!(new->rlimits.mask & mask))
+ continue;
+
+ rlim = current->signal->rlim + i;
+ rlim->rlim_max = min(rlim->rlim_max,
+ new->rlimits.limits[i].rlim_max);
+ /* soft limit should not exceed hard limit */
+ rlim->rlim_cur = min(rlim->rlim_cur, rlim->rlim_max);
+ }
+}
diff --git a/security/apparmor/sid.c b/security/apparmor/sid.c
new file mode 100644
index 00000000000..5e73c62479e
--- /dev/null
+++ b/security/apparmor/sid.c
@@ -0,0 +1,55 @@
+/*
+ * AppArmor security module
+ *
+ * This file contains AppArmor security identifier (sid) manipulation fns
+ *
+ * Copyright 2009-2010 Canonical Ltd.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ *
+ *
+ * AppArmor allocates a unique sid for every profile loaded. If a profile
+ * is replaced it receive the sid of the profile it is replacing.
+ *
+ * The sid value of 0 is invalid.
+ */
+
+#include <linux/spinlock.h>
+#include <linux/errno.h>
+#include <linux/err.h>
+
+#include "include/sid.h"
+
+/* global counter from which sids are allocated */
+static u32 global_sid;
+static DEFINE_SPINLOCK(sid_lock);
+
+/* TODO FIXME: add sid to profile mapping, and sid recycling */
+
+/**
+ * aa_alloc_sid - allocate a new sid for a profile
+ */
+u32 aa_alloc_sid(void)
+{
+ u32 sid;
+
+ /*
+ * TODO FIXME: sid recycling - part of profile mapping table
+ */
+ spin_lock(&sid_lock);
+ sid = (++global_sid);
+ spin_unlock(&sid_lock);
+ return sid;
+}
+
+/**
+ * aa_free_sid - free a sid
+ * @sid: sid to free
+ */
+void aa_free_sid(u32 sid)
+{
+ ; /* NOP ATM */
+}
diff --git a/security/capability.c b/security/capability.c
index 8168e3ecd5b..76593e227c1 100644
--- a/security/capability.c
+++ b/security/capability.c
@@ -169,12 +169,6 @@ static int cap_inode_readlink(struct dentry *dentry)
return 0;
}
-static int cap_inode_follow_link(struct dentry *dentry,
- struct nameidata *nameidata)
-{
- return 0;
-}
-
static int cap_inode_permission(struct inode *inode, int mask)
{
return 0;
@@ -256,12 +250,6 @@ static int cap_path_symlink(struct path *dir, struct dentry *dentry,
return 0;
}
-static int cap_path_link(struct dentry *old_dentry, struct path *new_dir,
- struct dentry *new_dentry)
-{
- return 0;
-}
-
static int cap_path_rename(struct path *old_path, struct dentry *old_dentry,
struct path *new_path, struct dentry *new_dentry)
{
diff --git a/security/commoncap.c b/security/commoncap.c
index 4e015996dd4..5bc60729b94 100644
--- a/security/commoncap.c
+++ b/security/commoncap.c
@@ -29,6 +29,11 @@
#include <linux/securebits.h>
#include <linux/syslog.h>
+/* sysctl for symlink permissions checking */
+int weak_sticky_symlinks;
+/* sysctl for hardlink permissions checking */
+int weak_nonaccess_hardlinks;
+
/*
* If a non-root user executes a setuid-root binary in
* !secure(SECURE_NOROOT) mode, then we raise capabilities.
@@ -281,6 +286,69 @@ int cap_inode_killpriv(struct dentry *dentry)
return inode->i_op->removexattr(dentry, XATTR_NAME_CAPS);
}
+int cap_inode_follow_link(struct dentry *dentry,
+ struct nameidata *nameidata)
+{
+ const struct inode *parent = dentry->d_parent->d_inode;
+ const struct inode *inode = dentry->d_inode;
+ const struct cred *cred = current_cred();
+
+ if (weak_sticky_symlinks)
+ return 0;
+
+ if (S_ISLNK(inode->i_mode) && (parent->i_mode & S_ISVTX) &&
+ (parent->i_mode & S_IWOTH) && (parent->i_uid != inode->i_uid) &&
+ (cred->fsuid != inode->i_uid)) {
+ printk_ratelimited(KERN_INFO "deprecated sticky-directory"
+ " non-matching uid symlink following was attempted"
+ " by: %s\n", current->comm);
+ return -EACCES;
+ }
+ return 0;
+}
+
+#ifdef CONFIG_SECURITY_PATH
+/*
+ * cap_path_link - verify that hardlinking is allowed
+ * @old_dentry: the source inode/dentry to hardlink from
+ * @new_dir: target directory
+ * @new_dentry: the target inode/dentry to hardlink to
+ *
+ * Block hardlink when all of:
+ * - fsuid does not match inode
+ * - not CAP_FOWNER
+ * - and at least one of:
+ * - inode is not a regular file
+ * - inode is setuid
+ * - inode is setgid and group-exec
+ * - access failure for read or write
+ *
+ * Returns 0 if successful, -ve on error.
+ */
+int cap_path_link(struct dentry *old_dentry, struct path *new_dir,
+ struct dentry *new_dentry)
+{
+ struct inode *inode = old_dentry->d_inode;
+ const int mode = inode->i_mode;
+ const struct cred *cred = current_cred();
+
+ if (weak_nonaccess_hardlinks) return 0;
+
+ if (cred->fsuid != inode->i_uid &&
+ (!S_ISREG(mode) || (mode & S_ISUID) ||
+ ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP)) ||
+ (generic_permission(inode, MAY_READ | MAY_WRITE, NULL))) &&
+ !capable(CAP_FOWNER)) {
+ printk_ratelimited(KERN_INFO "deprecated non-accessible"
+ " hardlink creation was attempted by: %s\n",
+ current->comm);
+ return -EPERM;
+ }
+
+ return 0;
+}
+#endif /* CONFIG_SECURITY_PATH */
+
/*
* Calculate the new process capability sets from the capability sets attached
* to a file.
@@ -951,3 +1019,4 @@ int cap_file_mmap(struct file *file, unsigned long reqprot,
}
return ret;
}
+EXPORT_SYMBOL(cap_file_mmap);
diff --git a/security/device_cgroup.c b/security/device_cgroup.c
index 8d9c48f1377..29108aa2321 100644
--- a/security/device_cgroup.c
+++ b/security/device_cgroup.c
@@ -515,6 +515,7 @@ found:
return -EPERM;
}
+EXPORT_SYMBOL(devcgroup_inode_permission);
int devcgroup_inode_mknod(int mode, dev_t dev)
{
diff --git a/security/security.c b/security/security.c
index 351942a4ca0..6ba84a8c74e 100644
--- a/security/security.c
+++ b/security/security.c
@@ -376,6 +376,7 @@ int security_path_mkdir(struct path *dir, struct dentry *dentry, int mode)
return 0;
return security_ops->path_mkdir(dir, dentry, mode);
}
+EXPORT_SYMBOL(security_path_mkdir);
int security_path_rmdir(struct path *dir, struct dentry *dentry)
{
@@ -383,6 +384,7 @@ int security_path_rmdir(struct path *dir, struct dentry *dentry)
return 0;
return security_ops->path_rmdir(dir, dentry);
}
+EXPORT_SYMBOL(security_path_rmdir);
int security_path_unlink(struct path *dir, struct dentry *dentry)
{
@@ -390,6 +392,7 @@ int security_path_unlink(struct path *dir, struct dentry *dentry)
return 0;
return security_ops->path_unlink(dir, dentry);
}
+EXPORT_SYMBOL(security_path_unlink);
int security_path_symlink(struct path *dir, struct dentry *dentry,
const char *old_name)
@@ -398,6 +401,7 @@ int security_path_symlink(struct path *dir, struct dentry *dentry,
return 0;
return security_ops->path_symlink(dir, dentry, old_name);
}
+EXPORT_SYMBOL(security_path_symlink);
int security_path_link(struct dentry *old_dentry, struct path *new_dir,
struct dentry *new_dentry)
@@ -406,6 +410,7 @@ int security_path_link(struct dentry *old_dentry, struct path *new_dir,
return 0;
return security_ops->path_link(old_dentry, new_dir, new_dentry);
}
+EXPORT_SYMBOL(security_path_link);
int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
struct path *new_dir, struct dentry *new_dentry)
@@ -416,6 +421,7 @@ int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
return security_ops->path_rename(old_dir, old_dentry, new_dir,
new_dentry);
}
+EXPORT_SYMBOL(security_path_rename);
int security_path_truncate(struct path *path, loff_t length,
unsigned int time_attrs)
@@ -424,6 +430,7 @@ int security_path_truncate(struct path *path, loff_t length,
return 0;
return security_ops->path_truncate(path, length, time_attrs);
}
+EXPORT_SYMBOL(security_path_truncate);
int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
mode_t mode)
@@ -432,6 +439,7 @@ int security_path_chmod(struct dentry *dentry, struct vfsmount *mnt,
return 0;
return security_ops->path_chmod(dentry, mnt, mode);
}
+EXPORT_SYMBOL(security_path_chmod);
int security_path_chown(struct path *path, uid_t uid, gid_t gid)
{
@@ -439,6 +447,7 @@ int security_path_chown(struct path *path, uid_t uid, gid_t gid)
return 0;
return security_ops->path_chown(path, uid, gid);
}
+EXPORT_SYMBOL(security_path_chown);
int security_path_chroot(struct path *path)
{
@@ -515,6 +524,7 @@ int security_inode_readlink(struct dentry *dentry)
return 0;
return security_ops->inode_readlink(dentry);
}
+EXPORT_SYMBOL(security_inode_readlink);
int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd)
{
@@ -529,6 +539,7 @@ int security_inode_permission(struct inode *inode, int mask)
return 0;
return security_ops->inode_permission(inode, mask);
}
+EXPORT_SYMBOL(security_inode_permission);
int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
{
@@ -622,6 +633,7 @@ int security_file_permission(struct file *file, int mask)
{
return security_ops->file_permission(file, mask);
}
+EXPORT_SYMBOL(security_file_permission);
int security_file_alloc(struct file *file)
{
@@ -649,6 +661,7 @@ int security_file_mmap(struct file *file, unsigned long reqprot,
return ret;
return ima_file_mmap(file, prot);
}
+EXPORT_SYMBOL(security_file_mmap);
int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot,
unsigned long prot)
diff --git a/sound/atmel/ac97c.c b/sound/atmel/ac97c.c
index 428121a7e70..10c3a871a12 100644
--- a/sound/atmel/ac97c.c
+++ b/sound/atmel/ac97c.c
@@ -657,7 +657,7 @@ static irqreturn_t atmel_ac97c_interrupt(int irq, void *dev)
if (sr & AC97C_SR_CAEVT) {
struct snd_pcm_runtime *runtime;
int offset, next_period, block_size;
- dev_info(&chip->pdev->dev, "channel A event%s%s%s%s%s%s\n",
+ dev_dbg(&chip->pdev->dev, "channel A event%s%s%s%s%s%s\n",
casr & AC97C_CSR_OVRUN ? " OVRUN" : "",
casr & AC97C_CSR_RXRDY ? " RXRDY" : "",
casr & AC97C_CSR_UNRUN ? " UNRUN" : "",
diff --git a/sound/oss/ad1848.c b/sound/oss/ad1848.c
index 24793c5b65a..4ec6dad9893 100644
--- a/sound/oss/ad1848.c
+++ b/sound/oss/ad1848.c
@@ -458,7 +458,7 @@ static int ad1848_set_recmask(ad1848_info * devc, int mask)
return mask;
}
-static void change_bits(ad1848_info * devc, unsigned char *regval,
+static void __change_bits(ad1848_info * devc, unsigned char *regval,
unsigned char *muteval, int dev, int chn, int newval)
{
unsigned char mask;
@@ -516,10 +516,10 @@ static void ad1848_mixer_set_channel(ad1848_info *devc, int dev, int value, int
if (muteregoffs != regoffs) {
muteval = ad_read(devc, muteregoffs);
- change_bits(devc, &val, &muteval, dev, channel, value);
+ __change_bits(devc, &val, &muteval, dev, channel, value);
}
else
- change_bits(devc, &val, &val, dev, channel, value);
+ __change_bits(devc, &val, &val, dev, channel, value);
spin_lock_irqsave(&devc->lock,flags);
ad_write(devc, regoffs, val);
diff --git a/sound/oss/sb_mixer.c b/sound/oss/sb_mixer.c
index 2039d31b7e2..38c9ef323c7 100644
--- a/sound/oss/sb_mixer.c
+++ b/sound/oss/sb_mixer.c
@@ -232,7 +232,7 @@ static int detect_mixer(sb_devc * devc)
return 1;
}
-static void change_bits(sb_devc * devc, unsigned char *regval, int dev, int chn, int newval)
+static void __change_bits(sb_devc * devc, unsigned char *regval, int dev, int chn, int newval)
{
unsigned char mask;
int shift;
@@ -284,7 +284,7 @@ int sb_common_mixer_set(sb_devc * devc, int dev, int left, int right)
return -EINVAL;
val = sb_getmixer(devc, regoffs);
- change_bits(devc, &val, dev, LEFT_CHN, left);
+ __change_bits(devc, &val, dev, LEFT_CHN, left);
if ((*devc->iomap)[dev][RIGHT_CHN].regno != regoffs) /*
* Change register
@@ -304,7 +304,7 @@ int sb_common_mixer_set(sb_devc * devc, int dev, int left, int right)
* Read the new one
*/
}
- change_bits(devc, &val, dev, RIGHT_CHN, right);
+ __change_bits(devc, &val, dev, RIGHT_CHN, right);
sb_setmixer(devc, regoffs, val);
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 1df25cf5ce3..9e78ba23dfb 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -2005,6 +2005,7 @@ azx_attach_pcm_stream(struct hda_bus *bus, struct hda_codec *codec,
struct azx_pcm *apcm;
int pcm_dev = cpcm->device;
int s, err;
+ size_t prealloc_min = 64*1024; /* 64KB */
if (pcm_dev >= HDA_MAX_PCMS) {
snd_printk(KERN_ERR SFX "Invalid PCM device number %d\n",
@@ -2038,10 +2039,21 @@ azx_attach_pcm_stream(struct hda_bus *bus, struct hda_codec *codec,
if (cpcm->stream[s].substreams)
snd_pcm_set_ops(pcm, s, &azx_pcm_ops);
}
+
/* buffer pre-allocation */
+
+ /* subtle, don't allocate a big buffer for modems...
+ * also, don't just test 32BIT_MASK, since azx supports
+ * 64-bit DMA in some cases.
+ */
+ /* lennart wants a 2.2MB buffer for 2sec of 48khz */
+ if (pcm->dev_class == SNDRV_PCM_CLASS_GENERIC &&
+ chip->pci->dma_mask >= DMA_32BIT_MASK)
+ prealloc_min = 4 * 1024 * 1024; /* 4MB */
+
snd_pcm_lib_preallocate_pages_for_all(pcm, SNDRV_DMA_TYPE_DEV_SG,
snd_dma_pci_data(chip->pci),
- 1024 * 64, 32 * 1024 * 1024);
+ prealloc_min, 32 * 1024 * 1024);
return 0;
}
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index d792cddbf4c..fc767b6b478 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -9477,6 +9477,9 @@ static struct snd_pci_quirk alc882_ssid_cfg_tbl[] = {
SND_PCI_QUIRK(0x106b, 0x2800, "AppleTV", ALC885_IMAC24),
SND_PCI_QUIRK(0x106b, 0x2c00, "MacbookPro rev3", ALC885_MBP3),
SND_PCI_QUIRK(0x106b, 0x3000, "iMac", ALC889A_MB31),
+ SND_PCI_QUIRK(0x106b, 0x3200, "iMac 7,1 Aluminum", ALC882_ASUS_A7M),
+ SND_PCI_QUIRK(0x106b, 0x3400, "MacBookAir 1,1", ALC885_MBP3),
+ SND_PCI_QUIRK(0x106b, 0x3500, "MacBookAir 2,1", ALC885_MBA21),
SND_PCI_QUIRK(0x106b, 0x3600, "Macbook 3,1", ALC889A_MB31),
SND_PCI_QUIRK(0x106b, 0x3800, "MacbookPro 4,1", ALC885_MBP3),
SND_PCI_QUIRK(0x106b, 0x3e00, "iMac 24 Aluminum", ALC885_IMAC24),
diff --git a/sound/soc/pxa/spitz.c b/sound/soc/pxa/spitz.c
index 1941a357e8c..d256f5f313b 100644
--- a/sound/soc/pxa/spitz.c
+++ b/sound/soc/pxa/spitz.c
@@ -328,38 +328,6 @@ static struct snd_soc_device spitz_snd_devdata = {
.codec_dev = &soc_codec_dev_wm8750,
};
-/*
- * FIXME: This is a temporary bodge to avoid cross-tree merge issues.
- * New drivers should register the wm8750 I2C device in the machine
- * setup code (under arch/arm for ARM systems).
- */
-static int wm8750_i2c_register(void)
-{
- struct i2c_board_info info;
- struct i2c_adapter *adapter;
- struct i2c_client *client;
-
- memset(&info, 0, sizeof(struct i2c_board_info));
- info.addr = 0x1b;
- strlcpy(info.type, "wm8750", I2C_NAME_SIZE);
-
- adapter = i2c_get_adapter(0);
- if (!adapter) {
- printk(KERN_ERR "can't get i2c adapter 0\n");
- return -ENODEV;
- }
-
- client = i2c_new_device(adapter, &info);
- i2c_put_adapter(adapter);
- if (!client) {
- printk(KERN_ERR "can't add i2c device at 0x%x\n",
- (unsigned int)info.addr);
- return -ENODEV;
- }
-
- return 0;
-}
-
static struct platform_device *spitz_snd_device;
static int __init spitz_init(void)
@@ -369,10 +337,6 @@ static int __init spitz_init(void)
if (!(machine_is_spitz() || machine_is_borzoi() || machine_is_akita()))
return -ENODEV;
- ret = wm8750_i2c_setup();
- if (ret != 0)
- return ret;
-
spitz_snd_device = platform_device_alloc("soc-audio", -1);
if (!spitz_snd_device)
return -ENOMEM;
diff --git a/sound/spi/at73c213.c b/sound/spi/at73c213.c
index 4c7b051f9d1..1bc56b2b94e 100644
--- a/sound/spi/at73c213.c
+++ b/sound/spi/at73c213.c
@@ -69,7 +69,6 @@ struct snd_at73c213 {
int irq;
int period;
unsigned long bitrate;
- struct clk *bitclk;
struct ssc_device *ssc;
struct spi_device *spi;
u8 spi_wbuffer[2];
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c
index 7fd6b151feb..b63e5713849 100644
--- a/tools/perf/util/symbol.c
+++ b/tools/perf/util/symbol.c
@@ -1745,7 +1745,12 @@ static int dso__load_kernel_sym(struct dso *self, struct map *map,
if (symbol_conf.vmlinux_name != NULL) {
err = dso__load_vmlinux(self, map,
symbol_conf.vmlinux_name, filter);
- goto out_try_fixup;
+ if (err > 0) {
+ dso__set_long_name(self,
+ strdup(symbol_conf.vmlinux_name));
+ goto out_fixup;
+ }
+ return err;
}
if (vmlinux_path != NULL) {
@@ -1806,7 +1811,6 @@ do_kallsyms:
pr_debug("Using %s for symbols\n", kallsyms_filename);
free(kallsyms_allocated_filename);
-out_try_fixup:
if (err > 0) {
out_fixup:
if (kallsyms_filename != NULL)
diff --git a/ubuntu/Kconfig b/ubuntu/Kconfig
new file mode 100644
index 00000000000..b4d435002de
--- /dev/null
+++ b/ubuntu/Kconfig
@@ -0,0 +1,14 @@
+menu "Ubuntu Supplied Third-Party Device Drivers"
+
+source "ubuntu/aufs/Kconfig"
+source "ubuntu/compcache/Kconfig"
+source "ubuntu/dm-raid4-5/Kconfig"
+source "ubuntu/fsam7400/Kconfig"
+source "ubuntu/iscsitarget/Kconfig"
+source "ubuntu/lirc/Kconfig"
+source "ubuntu/ndiswrapper/Kconfig"
+source "ubuntu/omnibook/Kconfig"
+source "ubuntu/rtl8192se/Kconfig"
+source "ubuntu/rfkill/Kconfig"
+
+endmenu
diff --git a/ubuntu/Makefile b/ubuntu/Makefile
new file mode 100644
index 00000000000..770204f521c
--- /dev/null
+++ b/ubuntu/Makefile
@@ -0,0 +1,17 @@
+#
+# Makefile for the Linux kernel ubuntu supplied third-party device drivers.
+#
+
+obj-$(CONFIG_AUFS_FS) += aufs/
+obj-$(CONFIG_BLK_DEV_COMPCACHE) += compcache/
+obj-$(CONFIG_DM_RAID45) += dm-raid4-5/
+obj-$(CONFIG_FSAM7400) += fsam7400/
+obj-$(CONFIG_SCSI_ISCSITARGET) += iscsitarget/
+obj-$(CONFIG_LIRC_DEV) += lirc/
+obj-$(CONFIG_NDISWRAPPER) += ndiswrapper/
+obj-$(CONFIG_OMNIBOOK) += omnibook/
+obj-$(CONFIG_RTL8192SE) += rtl8192se/
+obj-m += rfkill/
+
+# This is a stupid trick to get kbuild to create ubuntu/built-in.o
+obj- += foo.o
diff --git a/ubuntu/aufs/Kconfig b/ubuntu/aufs/Kconfig
new file mode 100644
index 00000000000..7879a0f6c88
--- /dev/null
+++ b/ubuntu/aufs/Kconfig
@@ -0,0 +1,175 @@
+config AUFS_FS
+ tristate "Aufs (Advanced multi layered unification filesystem) support"
+ depends on EXPERIMENTAL
+ help
+ Aufs is a stackable unification filesystem such as Unionfs,
+ which unifies several directories and provides a merged single
+ directory.
+ In the early days, aufs was entirely re-designed and
+ re-implemented Unionfs Version 1.x series. Introducing many
+ original ideas, approaches and improvements, it becomes totally
+ different from Unionfs while keeping the basic features.
+
+if AUFS_FS
+choice
+ prompt "Maximum number of branches"
+ default AUFS_BRANCH_MAX_127
+ help
+ Specifies the maximum number of branches (or member directories)
+ in a single aufs. The larger value consumes more system
+ resources and has a minor impact to performance.
+config AUFS_BRANCH_MAX_127
+ bool "127"
+ help
+ Specifies the maximum number of branches (or member directories)
+ in a single aufs. The larger value consumes more system
+ resources and has a minor impact to performance.
+config AUFS_BRANCH_MAX_511
+ bool "511"
+ help
+ Specifies the maximum number of branches (or member directories)
+ in a single aufs. The larger value consumes more system
+ resources and has a minor impact to performance.
+config AUFS_BRANCH_MAX_1023
+ bool "1023"
+ help
+ Specifies the maximum number of branches (or member directories)
+ in a single aufs. The larger value consumes more system
+ resources and has a minor impact to performance.
+config AUFS_BRANCH_MAX_32767
+ bool "32767"
+ help
+ Specifies the maximum number of branches (or member directories)
+ in a single aufs. The larger value consumes more system
+ resources and has a minor impact to performance.
+endchoice
+
+config AUFS_HNOTIFY
+ bool "Detect direct branch access (bypassing aufs)"
+ help
+ If you want to modify files on branches directly, eg. bypassing aufs,
+ and want aufs to detect the changes of them fully, then enable this
+ option and use 'udba=notify' mount option.
+ It will have a negative impact to the performance.
+ See detail in aufs.5.
+
+
+choice
+ prompt "method" if AUFS_HNOTIFY
+ default AUFS_HFSNOTIFY
+config AUFS_HFSNOTIFY
+ bool "fsnotify"
+ select FSNOTIFY
+config AUFS_HINOTIFY
+ bool "inotify (DEPRECATED)"
+ depends on INOTIFY
+endchoice
+
+config AUFS_EXPORT
+ bool "NFS-exportable aufs"
+ depends on (AUFS_FS = y && EXPORTFS = y) || (AUFS_FS = m && EXPORTFS)
+ help
+ If you want to export your mounted aufs via NFS, then enable this
+ option. There are several requirements for this configuration.
+ See detail in aufs.5.
+
+config AUFS_INO_T_64
+ bool
+ depends on AUFS_EXPORT
+ depends on 64BIT && !(ALPHA || S390)
+ default y
+ help
+ Automatic configuration for internal use.
+ /* typedef unsigned long/int __kernel_ino_t */
+ /* alpha and s390x are int */
+
+config AUFS_RDU
+ bool "Readdir in userspace"
+ help
+ Aufs has two methods to provide a merged view for a directory,
+ by a user-space library and by kernel-space natively. The latter
+ is always enabled but sometimes large and slow.
+ If you enable this option, install the library in aufs2-util
+ package, and set some environment variables for your readdir(3),
+ then the work will be handled in user-space which generally
+ shows better performance in most cases.
+ See detail in aufs.5.
+
+config AUFS_SP_IATTR
+ bool "Respect the attributes (mtime/ctime mainly) of special files"
+ help
+ When you write something to a special file, some attributes of it
+ (mtime/ctime mainly) may be updated. Generally such updates are
+ less important (actually some device drivers and NFS ignore
+ it). But some applications (such like test program) requires
+ such updates. If you need these updates, then enable this
+ configuration which introduces some overhead.
+ Currently this configuration handles FIFO only.
+
+config AUFS_SHWH
+ bool "Show whiteouts"
+ help
+ If you want to make the whiteouts in aufs visible, then enable
+ this option and specify 'shwh' mount option. Although it may
+ sounds like philosophy or something, but in technically it
+ simply shows the name of whiteout with keeping its behaviour.
+
+config AUFS_BR_RAMFS
+ bool "Ramfs (initramfs/rootfs) as an aufs branch"
+ help
+ If you want to use ramfs as an aufs branch fs, then enable this
+ option. Generally tmpfs is recommended.
+ Aufs prohibited them to be a branch fs by default, because
+ initramfs becomes unusable after switch_root or something
+ generally. If you sets initramfs as an aufs branch and boot your
+ system by switch_root, you will meet a problem easily since the
+ files in initramfs may be inaccessible.
+ Unless you are going to use ramfs as an aufs branch fs without
+ switch_root or something, leave it N.
+
+config AUFS_BR_FUSE
+ bool "Fuse fs as an aufs branch"
+ depends on FUSE_FS
+ select AUFS_POLL
+ help
+ If you want to use fuse-based userspace filesystem as an aufs
+ branch fs, then enable this option.
+ It implements the internal poll(2) operation which is
+ implemented by fuse only (curretnly).
+
+config AUFS_POLL
+ bool
+ help
+ Automatic configuration for internal use.
+
+config AUFS_BR_HFSPLUS
+ bool "Hfsplus as an aufs branch"
+ depends on HFSPLUS_FS
+ default y
+ help
+ If you want to use hfsplus fs as an aufs branch fs, then enable
+ this option. This option introduces a small overhead at
+ copying-up a file on hfsplus.
+
+config AUFS_BDEV_LOOP
+ bool
+ depends on BLK_DEV_LOOP
+ default y
+ help
+ Automatic configuration for internal use.
+ Convert =[ym] into =y.
+
+config AUFS_DEBUG
+ bool "Debug aufs"
+ help
+ Enable this to compile aufs internal debug code.
+ It will have a negative impact to the performance.
+
+config AUFS_MAGIC_SYSRQ
+ bool
+ depends on AUFS_DEBUG && MAGIC_SYSRQ
+ default y
+ help
+ Automatic configuration for internal use.
+ When aufs supports Magic SysRq, enabled automatically.
+endif
diff --git a/ubuntu/aufs/Makefile b/ubuntu/aufs/Makefile
new file mode 100644
index 00000000000..b9b9a3662c5
--- /dev/null
+++ b/ubuntu/aufs/Makefile
@@ -0,0 +1,39 @@
+EXTRA_CFLAGS += -I$(src)/include
+
+include ${src}/magic.mk
+ifeq (${CONFIG_AUFS_FS},m)
+include ${src}/conf.mk
+endif
+-include ${src}/priv_def.mk
+
+# cf. include/linux/kernel.h
+# enable pr_debug
+ccflags-y += -DDEBUG
+ccflags-y += -D'pr_fmt(fmt)="aufs %s:%d:%s[%d]: " fmt, \
+ __func__, __LINE__, current->comm, current->pid'
+
+obj-$(CONFIG_AUFS_FS) += aufs.o
+aufs-y := module.o sbinfo.o super.o branch.o xino.o sysaufs.o opts.o \
+ wkq.o vfsub.o dcsub.o \
+ cpup.o whout.o plink.o wbr_policy.o \
+ dinfo.o dentry.o \
+ dynop.o \
+ finfo.o file.o f_op.o \
+ dir.o vdir.o \
+ iinfo.o inode.o i_op.o i_op_add.o i_op_del.o i_op_ren.o \
+ ioctl.o
+
+# all are boolean
+aufs-$(CONFIG_SYSFS) += sysfs.o
+aufs-$(CONFIG_DEBUG_FS) += dbgaufs.o
+aufs-$(CONFIG_AUFS_BDEV_LOOP) += loop.o
+aufs-$(CONFIG_AUFS_HNOTIFY) += hnotify.o
+aufs-$(CONFIG_AUFS_HFSNOTIFY) += hfsnotify.o
+aufs-$(CONFIG_AUFS_HINOTIFY) += hinotify.o
+aufs-$(CONFIG_AUFS_EXPORT) += export.o
+aufs-$(CONFIG_AUFS_POLL) += poll.o
+aufs-$(CONFIG_AUFS_RDU) += rdu.o
+aufs-$(CONFIG_AUFS_SP_IATTR) += f_op_sp.o
+aufs-$(CONFIG_AUFS_BR_HFSPLUS) += hfsplus.o
+aufs-$(CONFIG_AUFS_DEBUG) += debug.o
+aufs-$(CONFIG_AUFS_MAGIC_SYSRQ) += sysrq.o
diff --git a/ubuntu/aufs/aufs.h b/ubuntu/aufs/aufs.h
new file mode 100644
index 00000000000..1363f58ea4a
--- /dev/null
+++ b/ubuntu/aufs/aufs.h
@@ -0,0 +1,61 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * all header files
+ */
+
+#ifndef __AUFS_H__
+#define __AUFS_H__
+
+#ifdef __KERNEL__
+
+#define AuStub(type, name, body, ...) \
+ static inline type name(__VA_ARGS__) { body; }
+
+#define AuStubVoid(name, ...) \
+ AuStub(void, name, , __VA_ARGS__)
+#define AuStubInt0(name, ...) \
+ AuStub(int, name, return 0, __VA_ARGS__)
+
+#include "debug.h"
+
+#include "branch.h"
+#include "cpup.h"
+#include "dcsub.h"
+#include "dbgaufs.h"
+#include "dentry.h"
+#include "dir.h"
+#include "dynop.h"
+#include "file.h"
+#include "fstype.h"
+#include "inode.h"
+#include "loop.h"
+#include "module.h"
+/* never include ./mtx.h */
+#include "opts.h"
+#include "rwsem.h"
+#include "spl.h"
+#include "super.h"
+#include "sysaufs.h"
+#include "vfsub.h"
+#include "whout.h"
+#include "wkq.h"
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_H__ */
diff --git a/ubuntu/aufs/branch.c b/ubuntu/aufs/branch.c
new file mode 100644
index 00000000000..03725d3e236
--- /dev/null
+++ b/ubuntu/aufs/branch.c
@@ -0,0 +1,1007 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * branch management
+ */
+
+#include <linux/file.h>
+#include <linux/statfs.h>
+#include "aufs.h"
+
+/*
+ * free a single branch
+ */
+static void au_br_do_free(struct au_branch *br)
+{
+ int i;
+ struct au_wbr *wbr;
+ struct au_dykey **key;
+
+ if (br->br_xino.xi_file)
+ fput(br->br_xino.xi_file);
+ mutex_destroy(&br->br_xino.xi_nondir_mtx);
+
+ AuDebugOn(atomic_read(&br->br_count));
+
+ wbr = br->br_wbr;
+ if (wbr) {
+ for (i = 0; i < AuBrWh_Last; i++)
+ dput(wbr->wbr_wh[i]);
+ AuDebugOn(atomic_read(&wbr->wbr_wh_running));
+ AuRwDestroy(&wbr->wbr_wh_rwsem);
+ }
+
+ key = br->br_dykey;
+ for (i = 0; i < AuBrDynOp; i++, key++)
+ if (*key)
+ au_dy_put(*key);
+ else
+ break;
+
+ /* some filesystems acquire extra lock */
+ /* lockdep_off(); */
+ mntput(br->br_mnt);
+ /* lockdep_on(); */
+
+ kfree(wbr);
+ kfree(br);
+}
+
+/*
+ * frees all branches
+ */
+void au_br_free(struct au_sbinfo *sbinfo)
+{
+ aufs_bindex_t bmax;
+ struct au_branch **br;
+
+ AuRwMustWriteLock(&sbinfo->si_rwsem);
+
+ bmax = sbinfo->si_bend + 1;
+ br = sbinfo->si_branch;
+ while (bmax--)
+ au_br_do_free(*br++);
+}
+
+/*
+ * find the index of a branch which is specified by @br_id.
+ */
+int au_br_index(struct super_block *sb, aufs_bindex_t br_id)
+{
+ aufs_bindex_t bindex, bend;
+
+ bend = au_sbend(sb);
+ for (bindex = 0; bindex <= bend; bindex++)
+ if (au_sbr_id(sb, bindex) == br_id)
+ return bindex;
+ return -1;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * add a branch
+ */
+
+static int test_overlap(struct super_block *sb, struct dentry *h_d1,
+ struct dentry *h_d2)
+{
+ if (unlikely(h_d1 == h_d2))
+ return 1;
+ return au_test_subdir(h_d1, h_d2)
+ || au_test_subdir(h_d2, h_d1)
+ || au_test_loopback_overlap(sb, h_d1, h_d2)
+ || au_test_loopback_overlap(sb, h_d2, h_d1);
+}
+
+/*
+ * returns a newly allocated branch. @new_nbranch is a number of branches
+ * after adding a branch.
+ */
+static struct au_branch *au_br_alloc(struct super_block *sb, int new_nbranch,
+ int perm)
+{
+ struct au_branch *add_branch;
+ struct dentry *root;
+ int err;
+
+ err = -ENOMEM;
+ root = sb->s_root;
+ add_branch = kmalloc(sizeof(*add_branch), GFP_NOFS);
+ if (unlikely(!add_branch))
+ goto out;
+
+ add_branch->br_wbr = NULL;
+ if (au_br_writable(perm)) {
+ /* may be freed separately at changing the branch permission */
+ add_branch->br_wbr = kmalloc(sizeof(*add_branch->br_wbr),
+ GFP_NOFS);
+ if (unlikely(!add_branch->br_wbr))
+ goto out_br;
+ }
+
+ err = au_sbr_realloc(au_sbi(sb), new_nbranch);
+ if (!err)
+ err = au_di_realloc(au_di(root), new_nbranch);
+ if (!err)
+ err = au_ii_realloc(au_ii(root->d_inode), new_nbranch);
+ if (!err)
+ return add_branch; /* success */
+
+ kfree(add_branch->br_wbr);
+
+ out_br:
+ kfree(add_branch);
+ out:
+ return ERR_PTR(err);
+}
+
+/*
+ * test if the branch permission is legal or not.
+ */
+static int test_br(struct inode *inode, int brperm, char *path)
+{
+ int err;
+
+ err = (au_br_writable(brperm) && IS_RDONLY(inode));
+ if (!err)
+ goto out;
+
+ err = -EINVAL;
+ pr_err("write permission for readonly mount or inode, %s\n", path);
+
+ out:
+ return err;
+}
+
+/*
+ * returns:
+ * 0: success, the caller will add it
+ * plus: success, it is already unified, the caller should ignore it
+ * minus: error
+ */
+static int test_add(struct super_block *sb, struct au_opt_add *add, int remount)
+{
+ int err;
+ aufs_bindex_t bend, bindex;
+ struct dentry *root;
+ struct inode *inode, *h_inode;
+
+ root = sb->s_root;
+ bend = au_sbend(sb);
+ if (unlikely(bend >= 0
+ && au_find_dbindex(root, add->path.dentry) >= 0)) {
+ err = 1;
+ if (!remount) {
+ err = -EINVAL;
+ pr_err("%s duplicated\n", add->pathname);
+ }
+ goto out;
+ }
+
+ err = -ENOSPC; /* -E2BIG; */
+ if (unlikely(AUFS_BRANCH_MAX <= add->bindex
+ || AUFS_BRANCH_MAX - 1 <= bend)) {
+ pr_err("number of branches exceeded %s\n", add->pathname);
+ goto out;
+ }
+
+ err = -EDOM;
+ if (unlikely(add->bindex < 0 || bend + 1 < add->bindex)) {
+ pr_err("bad index %d\n", add->bindex);
+ goto out;
+ }
+
+ inode = add->path.dentry->d_inode;
+ err = -ENOENT;
+ if (unlikely(!inode->i_nlink)) {
+ pr_err("no existence %s\n", add->pathname);
+ goto out;
+ }
+
+ err = -EINVAL;
+ if (unlikely(inode->i_sb == sb)) {
+ pr_err("%s must be outside\n", add->pathname);
+ goto out;
+ }
+
+ if (unlikely(au_test_fs_unsuppoted(inode->i_sb))) {
+ pr_err("unsupported filesystem, %s (%s)\n",
+ add->pathname, au_sbtype(inode->i_sb));
+ goto out;
+ }
+
+ err = test_br(add->path.dentry->d_inode, add->perm, add->pathname);
+ if (unlikely(err))
+ goto out;
+
+ if (bend < 0)
+ return 0; /* success */
+
+ err = -EINVAL;
+ for (bindex = 0; bindex <= bend; bindex++)
+ if (unlikely(test_overlap(sb, add->path.dentry,
+ au_h_dptr(root, bindex)))) {
+ pr_err("%s is overlapped\n", add->pathname);
+ goto out;
+ }
+
+ err = 0;
+ if (au_opt_test(au_mntflags(sb), WARN_PERM)) {
+ h_inode = au_h_dptr(root, 0)->d_inode;
+ if ((h_inode->i_mode & S_IALLUGO) != (inode->i_mode & S_IALLUGO)
+ || h_inode->i_uid != inode->i_uid
+ || h_inode->i_gid != inode->i_gid)
+ pr_warning("uid/gid/perm %s %u/%u/0%o, %u/%u/0%o\n",
+ add->pathname,
+ inode->i_uid, inode->i_gid,
+ (inode->i_mode & S_IALLUGO),
+ h_inode->i_uid, h_inode->i_gid,
+ (h_inode->i_mode & S_IALLUGO));
+ }
+
+ out:
+ return err;
+}
+
+/*
+ * initialize or clean the whiteouts for an adding branch
+ */
+static int au_br_init_wh(struct super_block *sb, struct au_branch *br,
+ int new_perm, struct dentry *h_root)
+{
+ int err, old_perm;
+ aufs_bindex_t bindex;
+ struct mutex *h_mtx;
+ struct au_wbr *wbr;
+ struct au_hinode *hdir;
+
+ wbr = br->br_wbr;
+ old_perm = br->br_perm;
+ br->br_perm = new_perm;
+ hdir = NULL;
+ h_mtx = NULL;
+ bindex = au_br_index(sb, br->br_id);
+ if (0 <= bindex) {
+ hdir = au_hi(sb->s_root->d_inode, bindex);
+ au_hn_imtx_lock_nested(hdir, AuLsc_I_PARENT);
+ } else {
+ h_mtx = &h_root->d_inode->i_mutex;
+ mutex_lock_nested(h_mtx, AuLsc_I_PARENT);
+ }
+ if (!wbr)
+ err = au_wh_init(h_root, br, sb);
+ else {
+ wbr_wh_write_lock(wbr);
+ err = au_wh_init(h_root, br, sb);
+ wbr_wh_write_unlock(wbr);
+ }
+ if (hdir)
+ au_hn_imtx_unlock(hdir);
+ else
+ mutex_unlock(h_mtx);
+ br->br_perm = old_perm;
+
+ if (!err && wbr && !au_br_writable(new_perm)) {
+ kfree(wbr);
+ br->br_wbr = NULL;
+ }
+
+ return err;
+}
+
+static int au_wbr_init(struct au_branch *br, struct super_block *sb,
+ int perm, struct path *path)
+{
+ int err;
+ struct kstatfs kst;
+ struct au_wbr *wbr;
+ struct dentry *h_dentry;
+
+ wbr = br->br_wbr;
+ au_rw_init(&wbr->wbr_wh_rwsem);
+ memset(wbr->wbr_wh, 0, sizeof(wbr->wbr_wh));
+ atomic_set(&wbr->wbr_wh_running, 0);
+ wbr->wbr_bytes = 0;
+
+ /*
+ * a limit for rmdir/rename a dir
+ * cf. AUFS_MAX_NAMELEN in include/linux/aufs_type.h
+ */
+ h_dentry = path->dentry;
+ err = vfs_statfs(h_dentry, &kst);
+ if (unlikely(err))
+ goto out;
+ err = -EINVAL;
+ if (kst.f_namelen >= NAME_MAX)
+ err = au_br_init_wh(sb, br, perm, h_dentry);
+ else
+ pr_err("%.*s(%s), unsupported namelen %ld\n",
+ AuDLNPair(h_dentry), au_sbtype(h_dentry->d_sb),
+ kst.f_namelen);
+
+ out:
+ return err;
+}
+
+/* intialize a new branch */
+static int au_br_init(struct au_branch *br, struct super_block *sb,
+ struct au_opt_add *add)
+{
+ int err;
+
+ err = 0;
+ memset(&br->br_xino, 0, sizeof(br->br_xino));
+ mutex_init(&br->br_xino.xi_nondir_mtx);
+ br->br_perm = add->perm;
+ br->br_mnt = add->path.mnt; /* set first, mntget() later */
+ spin_lock_init(&br->br_dykey_lock);
+ memset(br->br_dykey, 0, sizeof(br->br_dykey));
+ atomic_set(&br->br_count, 0);
+ br->br_xino_upper = AUFS_XINO_TRUNC_INIT;
+ atomic_set(&br->br_xino_running, 0);
+ br->br_id = au_new_br_id(sb);
+
+ if (au_br_writable(add->perm)) {
+ err = au_wbr_init(br, sb, add->perm, &add->path);
+ if (unlikely(err))
+ goto out;
+ }
+
+ if (au_opt_test(au_mntflags(sb), XINO)) {
+ err = au_xino_br(sb, br, add->path.dentry->d_inode->i_ino,
+ au_sbr(sb, 0)->br_xino.xi_file, /*do_test*/1);
+ if (unlikely(err)) {
+ AuDebugOn(br->br_xino.xi_file);
+ goto out;
+ }
+ }
+
+ sysaufs_br_init(br);
+ mntget(add->path.mnt);
+
+ out:
+ return err;
+}
+
+static void au_br_do_add_brp(struct au_sbinfo *sbinfo, aufs_bindex_t bindex,
+ struct au_branch *br, aufs_bindex_t bend,
+ aufs_bindex_t amount)
+{
+ struct au_branch **brp;
+
+ AuRwMustWriteLock(&sbinfo->si_rwsem);
+
+ brp = sbinfo->si_branch + bindex;
+ memmove(brp + 1, brp, sizeof(*brp) * amount);
+ *brp = br;
+ sbinfo->si_bend++;
+ if (unlikely(bend < 0))
+ sbinfo->si_bend = 0;
+}
+
+static void au_br_do_add_hdp(struct au_dinfo *dinfo, aufs_bindex_t bindex,
+ aufs_bindex_t bend, aufs_bindex_t amount)
+{
+ struct au_hdentry *hdp;
+
+ AuRwMustWriteLock(&dinfo->di_rwsem);
+
+ hdp = dinfo->di_hdentry + bindex;
+ memmove(hdp + 1, hdp, sizeof(*hdp) * amount);
+ au_h_dentry_init(hdp);
+ dinfo->di_bend++;
+ if (unlikely(bend < 0))
+ dinfo->di_bstart = 0;
+}
+
+static void au_br_do_add_hip(struct au_iinfo *iinfo, aufs_bindex_t bindex,
+ aufs_bindex_t bend, aufs_bindex_t amount)
+{
+ struct au_hinode *hip;
+
+ AuRwMustWriteLock(&iinfo->ii_rwsem);
+
+ hip = iinfo->ii_hinode + bindex;
+ memmove(hip + 1, hip, sizeof(*hip) * amount);
+ hip->hi_inode = NULL;
+ au_hn_init(hip);
+ iinfo->ii_bend++;
+ if (unlikely(bend < 0))
+ iinfo->ii_bstart = 0;
+}
+
+static void au_br_do_add(struct super_block *sb, struct dentry *h_dentry,
+ struct au_branch *br, aufs_bindex_t bindex)
+{
+ struct dentry *root;
+ struct inode *root_inode;
+ aufs_bindex_t bend, amount;
+
+ root = sb->s_root;
+ root_inode = root->d_inode;
+ au_plink_maint_block(sb);
+ bend = au_sbend(sb);
+ amount = bend + 1 - bindex;
+ au_br_do_add_brp(au_sbi(sb), bindex, br, bend, amount);
+ au_br_do_add_hdp(au_di(root), bindex, bend, amount);
+ au_br_do_add_hip(au_ii(root_inode), bindex, bend, amount);
+ au_set_h_dptr(root, bindex, dget(h_dentry));
+ au_set_h_iptr(root_inode, bindex, au_igrab(h_dentry->d_inode),
+ /*flags*/0);
+}
+
+int au_br_add(struct super_block *sb, struct au_opt_add *add, int remount)
+{
+ int err;
+ aufs_bindex_t bend, add_bindex;
+ struct dentry *root, *h_dentry;
+ struct inode *root_inode;
+ struct au_branch *add_branch;
+
+ root = sb->s_root;
+ root_inode = root->d_inode;
+ IMustLock(root_inode);
+ err = test_add(sb, add, remount);
+ if (unlikely(err < 0))
+ goto out;
+ if (err) {
+ err = 0;
+ goto out; /* success */
+ }
+
+ bend = au_sbend(sb);
+ add_branch = au_br_alloc(sb, bend + 2, add->perm);
+ err = PTR_ERR(add_branch);
+ if (IS_ERR(add_branch))
+ goto out;
+
+ err = au_br_init(add_branch, sb, add);
+ if (unlikely(err)) {
+ au_br_do_free(add_branch);
+ goto out;
+ }
+
+ add_bindex = add->bindex;
+ h_dentry = add->path.dentry;
+ if (!remount)
+ au_br_do_add(sb, h_dentry, add_branch, add_bindex);
+ else {
+ sysaufs_brs_del(sb, add_bindex);
+ au_br_do_add(sb, h_dentry, add_branch, add_bindex);
+ sysaufs_brs_add(sb, add_bindex);
+ }
+
+ if (!add_bindex) {
+ au_cpup_attr_all(root_inode, /*force*/1);
+ sb->s_maxbytes = h_dentry->d_sb->s_maxbytes;
+ } else
+ au_add_nlink(root_inode, h_dentry->d_inode);
+
+ /*
+ * this test/set prevents aufs from handling unnecesary notify events
+ * of xino files, in a case of re-adding a writable branch which was
+ * once detached from aufs.
+ */
+ if (au_xino_brid(sb) < 0
+ && au_br_writable(add_branch->br_perm)
+ && !au_test_fs_bad_xino(h_dentry->d_sb)
+ && add_branch->br_xino.xi_file
+ && add_branch->br_xino.xi_file->f_dentry->d_parent == h_dentry)
+ au_xino_brid_set(sb, add_branch->br_id);
+
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * delete a branch
+ */
+
+/* to show the line number, do not make it inlined function */
+#define AuVerbose(do_info, fmt, ...) do { \
+ if (do_info) \
+ pr_info(fmt, ##__VA_ARGS__); \
+} while (0)
+
+/*
+ * test if the branch is deletable or not.
+ */
+static int test_dentry_busy(struct dentry *root, aufs_bindex_t bindex,
+ unsigned int sigen)
+{
+ int err, i, j, ndentry;
+ aufs_bindex_t bstart, bend;
+ unsigned char verbose;
+ struct au_dcsub_pages dpages;
+ struct au_dpage *dpage;
+ struct dentry *d;
+ struct inode *inode;
+
+ err = au_dpages_init(&dpages, GFP_NOFS);
+ if (unlikely(err))
+ goto out;
+ err = au_dcsub_pages(&dpages, root, NULL, NULL);
+ if (unlikely(err))
+ goto out_dpages;
+
+ verbose = !!au_opt_test(au_mntflags(root->d_sb), VERBOSE);
+ for (i = 0; !err && i < dpages.ndpage; i++) {
+ dpage = dpages.dpages + i;
+ ndentry = dpage->ndentry;
+ for (j = 0; !err && j < ndentry; j++) {
+ d = dpage->dentries[j];
+ AuDebugOn(!atomic_read(&d->d_count));
+ inode = d->d_inode;
+ if (au_digen(d) == sigen && au_iigen(inode) == sigen)
+ di_read_lock_child(d, AuLock_IR);
+ else {
+ di_write_lock_child(d);
+ err = au_reval_dpath(d, sigen);
+ if (!err)
+ di_downgrade_lock(d, AuLock_IR);
+ else {
+ di_write_unlock(d);
+ break;
+ }
+ }
+
+ bstart = au_dbstart(d);
+ bend = au_dbend(d);
+ if (bstart <= bindex
+ && bindex <= bend
+ && au_h_dptr(d, bindex)
+ && (!S_ISDIR(inode->i_mode) || bstart == bend)) {
+ err = -EBUSY;
+ AuVerbose(verbose, "busy %.*s\n", AuDLNPair(d));
+ }
+ di_read_unlock(d, AuLock_IR);
+ }
+ }
+
+ out_dpages:
+ au_dpages_free(&dpages);
+ out:
+ return err;
+}
+
+static int test_inode_busy(struct super_block *sb, aufs_bindex_t bindex,
+ unsigned int sigen)
+{
+ int err;
+ struct inode *i;
+ aufs_bindex_t bstart, bend;
+ unsigned char verbose;
+
+ err = 0;
+ verbose = !!au_opt_test(au_mntflags(sb), VERBOSE);
+ list_for_each_entry(i, &sb->s_inodes, i_sb_list) {
+ AuDebugOn(!atomic_read(&i->i_count));
+ if (!list_empty(&i->i_dentry))
+ continue;
+
+ if (au_iigen(i) == sigen)
+ ii_read_lock_child(i);
+ else {
+ ii_write_lock_child(i);
+ err = au_refresh_hinode_self(i, /*do_attr*/1);
+ if (!err)
+ ii_downgrade_lock(i);
+ else {
+ ii_write_unlock(i);
+ break;
+ }
+ }
+
+ bstart = au_ibstart(i);
+ bend = au_ibend(i);
+ if (bstart <= bindex
+ && bindex <= bend
+ && au_h_iptr(i, bindex)
+ && (!S_ISDIR(i->i_mode) || bstart == bend)) {
+ err = -EBUSY;
+ AuVerbose(verbose, "busy i%lu\n", i->i_ino);
+ ii_read_unlock(i);
+ break;
+ }
+ ii_read_unlock(i);
+ }
+
+ return err;
+}
+
+static int test_children_busy(struct dentry *root, aufs_bindex_t bindex)
+{
+ int err;
+ unsigned int sigen;
+
+ sigen = au_sigen(root->d_sb);
+ DiMustNoWaiters(root);
+ IiMustNoWaiters(root->d_inode);
+ di_write_unlock(root);
+ err = test_dentry_busy(root, bindex, sigen);
+ if (!err)
+ err = test_inode_busy(root->d_sb, bindex, sigen);
+ di_write_lock_child(root); /* aufs_write_lock() calls ..._child() */
+
+ return err;
+}
+
+static void au_br_do_del_brp(struct au_sbinfo *sbinfo,
+ const aufs_bindex_t bindex,
+ const aufs_bindex_t bend)
+{
+ struct au_branch **brp, **p;
+
+ AuRwMustWriteLock(&sbinfo->si_rwsem);
+
+ brp = sbinfo->si_branch + bindex;
+ if (bindex < bend)
+ memmove(brp, brp + 1, sizeof(*brp) * (bend - bindex));
+ sbinfo->si_branch[0 + bend] = NULL;
+ sbinfo->si_bend--;
+
+ p = krealloc(sbinfo->si_branch, sizeof(*p) * bend, GFP_NOFS);
+ if (p)
+ sbinfo->si_branch = p;
+ /* harmless error */
+}
+
+static void au_br_do_del_hdp(struct au_dinfo *dinfo, const aufs_bindex_t bindex,
+ const aufs_bindex_t bend)
+{
+ struct au_hdentry *hdp, *p;
+
+ AuRwMustWriteLock(&dinfo->di_rwsem);
+
+ hdp = dinfo->di_hdentry;
+ if (bindex < bend)
+ memmove(hdp + bindex, hdp + bindex + 1,
+ sizeof(*hdp) * (bend - bindex));
+ hdp[0 + bend].hd_dentry = NULL;
+ dinfo->di_bend--;
+
+ p = krealloc(hdp, sizeof(*p) * bend, GFP_NOFS);
+ if (p)
+ dinfo->di_hdentry = p;
+ /* harmless error */
+}
+
+static void au_br_do_del_hip(struct au_iinfo *iinfo, const aufs_bindex_t bindex,
+ const aufs_bindex_t bend)
+{
+ struct au_hinode *hip, *p;
+
+ AuRwMustWriteLock(&iinfo->ii_rwsem);
+
+ hip = iinfo->ii_hinode + bindex;
+ if (bindex < bend)
+ memmove(hip, hip + 1, sizeof(*hip) * (bend - bindex));
+ iinfo->ii_hinode[0 + bend].hi_inode = NULL;
+ au_hn_init(iinfo->ii_hinode + bend);
+ iinfo->ii_bend--;
+
+ p = krealloc(iinfo->ii_hinode, sizeof(*p) * bend, GFP_NOFS);
+ if (p)
+ iinfo->ii_hinode = p;
+ /* harmless error */
+}
+
+static void au_br_do_del(struct super_block *sb, aufs_bindex_t bindex,
+ struct au_branch *br)
+{
+ aufs_bindex_t bend;
+ struct au_sbinfo *sbinfo;
+ struct dentry *root;
+ struct inode *inode;
+
+ SiMustWriteLock(sb);
+
+ root = sb->s_root;
+ inode = root->d_inode;
+ au_plink_maint_block(sb);
+ sbinfo = au_sbi(sb);
+ bend = sbinfo->si_bend;
+
+ dput(au_h_dptr(root, bindex));
+ au_hiput(au_hi(inode, bindex));
+ au_br_do_free(br);
+
+ au_br_do_del_brp(sbinfo, bindex, bend);
+ au_br_do_del_hdp(au_di(root), bindex, bend);
+ au_br_do_del_hip(au_ii(inode), bindex, bend);
+}
+
+int au_br_del(struct super_block *sb, struct au_opt_del *del, int remount)
+{
+ int err, rerr, i;
+ unsigned int mnt_flags;
+ aufs_bindex_t bindex, bend, br_id;
+ unsigned char do_wh, verbose;
+ struct au_branch *br;
+ struct au_wbr *wbr;
+
+ err = 0;
+ bindex = au_find_dbindex(sb->s_root, del->h_path.dentry);
+ if (bindex < 0) {
+ if (remount)
+ goto out; /* success */
+ err = -ENOENT;
+ pr_err("%s no such branch\n", del->pathname);
+ goto out;
+ }
+ AuDbg("bindex b%d\n", bindex);
+
+ err = -EBUSY;
+ mnt_flags = au_mntflags(sb);
+ verbose = !!au_opt_test(mnt_flags, VERBOSE);
+ bend = au_sbend(sb);
+ if (unlikely(!bend)) {
+ AuVerbose(verbose, "no more branches left\n");
+ goto out;
+ }
+ br = au_sbr(sb, bindex);
+ i = atomic_read(&br->br_count);
+ if (unlikely(i)) {
+ AuVerbose(verbose, "%d file(s) opened\n", i);
+ goto out;
+ }
+
+ wbr = br->br_wbr;
+ do_wh = wbr && (wbr->wbr_whbase || wbr->wbr_plink || wbr->wbr_orph);
+ if (do_wh) {
+ /* instead of WbrWhMustWriteLock(wbr) */
+ SiMustWriteLock(sb);
+ for (i = 0; i < AuBrWh_Last; i++) {
+ dput(wbr->wbr_wh[i]);
+ wbr->wbr_wh[i] = NULL;
+ }
+ }
+
+ err = test_children_busy(sb->s_root, bindex);
+ if (unlikely(err)) {
+ if (do_wh)
+ goto out_wh;
+ goto out;
+ }
+
+ err = 0;
+ br_id = br->br_id;
+ if (!remount)
+ au_br_do_del(sb, bindex, br);
+ else {
+ sysaufs_brs_del(sb, bindex);
+ au_br_do_del(sb, bindex, br);
+ sysaufs_brs_add(sb, bindex);
+ }
+
+ if (!bindex) {
+ au_cpup_attr_all(sb->s_root->d_inode, /*force*/1);
+ sb->s_maxbytes = au_sbr_sb(sb, 0)->s_maxbytes;
+ } else
+ au_sub_nlink(sb->s_root->d_inode, del->h_path.dentry->d_inode);
+ if (au_opt_test(mnt_flags, PLINK))
+ au_plink_half_refresh(sb, br_id);
+
+ if (au_xino_brid(sb) == br->br_id)
+ au_xino_brid_set(sb, -1);
+ goto out; /* success */
+
+ out_wh:
+ /* revert */
+ rerr = au_br_init_wh(sb, br, br->br_perm, del->h_path.dentry);
+ if (rerr)
+ pr_warning("failed re-creating base whiteout, %s. (%d)\n",
+ del->pathname, rerr);
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * change a branch permission
+ */
+
+static void au_warn_ima(void)
+{
+#ifdef CONFIG_IMA
+ /* since it doesn't support mark_files_ro() */
+ pr_warning("RW -> RO makes IMA to produce wrong message");
+#endif
+}
+
+static int do_need_sigen_inc(int a, int b)
+{
+ return au_br_whable(a) && !au_br_whable(b);
+}
+
+static int need_sigen_inc(int old, int new)
+{
+ return do_need_sigen_inc(old, new)
+ || do_need_sigen_inc(new, old);
+}
+
+static int au_br_mod_files_ro(struct super_block *sb, aufs_bindex_t bindex)
+{
+ int err;
+ unsigned long n, ul, bytes, files;
+ aufs_bindex_t bstart;
+ struct file *file, *hf, **a;
+ const int step_bytes = 1024, /* memory allocation unit */
+ step_files = step_bytes / sizeof(*a);
+
+ err = -ENOMEM;
+ n = 0;
+ bytes = step_bytes;
+ files = step_files;
+ a = kmalloc(bytes, GFP_NOFS);
+ if (unlikely(!a))
+ goto out;
+
+ /* no need file_list_lock() since sbinfo is locked? defered? */
+ list_for_each_entry(file, &sb->s_files, f_u.fu_list) {
+ if (special_file(file->f_dentry->d_inode->i_mode))
+ continue;
+
+ AuDbg("%.*s\n", AuDLNPair(file->f_dentry));
+ fi_read_lock(file);
+ if (unlikely(au_test_mmapped(file))) {
+ err = -EBUSY;
+ FiMustNoWaiters(file);
+ fi_read_unlock(file);
+ goto out_free;
+ }
+
+ bstart = au_fbstart(file);
+ if (!S_ISREG(file->f_dentry->d_inode->i_mode)
+ || !(file->f_mode & FMODE_WRITE)
+ || bstart != bindex) {
+ FiMustNoWaiters(file);
+ fi_read_unlock(file);
+ continue;
+ }
+
+ hf = au_hf_top(file);
+ FiMustNoWaiters(file);
+ fi_read_unlock(file);
+
+ if (n < files)
+ a[n++] = hf;
+ else {
+ void *p;
+
+ err = -ENOMEM;
+ bytes += step_bytes;
+ files += step_files;
+ p = krealloc(a, bytes, GFP_NOFS);
+ if (p) {
+ a = p;
+ a[n++] = hf;
+ } else
+ goto out_free;
+ }
+ }
+
+ err = 0;
+ if (n)
+ au_warn_ima();
+ for (ul = 0; ul < n; ul++) {
+ /* todo: already flushed? */
+ /* cf. fs/super.c:mark_files_ro() */
+ hf = a[ul];
+ hf->f_mode &= ~FMODE_WRITE;
+ if (!file_check_writeable(hf)) {
+ file_release_write(hf);
+ mnt_drop_write(hf->f_vfsmnt);
+ }
+ }
+
+ out_free:
+ kfree(a);
+ out:
+ return err;
+}
+
+int au_br_mod(struct super_block *sb, struct au_opt_mod *mod, int remount,
+ int *do_update)
+{
+ int err, rerr;
+ aufs_bindex_t bindex;
+ struct path path;
+ struct dentry *root;
+ struct au_branch *br;
+
+ root = sb->s_root;
+ au_plink_maint_block(sb);
+ bindex = au_find_dbindex(root, mod->h_root);
+ if (bindex < 0) {
+ if (remount)
+ return 0; /* success */
+ err = -ENOENT;
+ pr_err("%s no such branch\n", mod->path);
+ goto out;
+ }
+ AuDbg("bindex b%d\n", bindex);
+
+ err = test_br(mod->h_root->d_inode, mod->perm, mod->path);
+ if (unlikely(err))
+ goto out;
+
+ br = au_sbr(sb, bindex);
+ if (br->br_perm == mod->perm)
+ return 0; /* success */
+
+ if (au_br_writable(br->br_perm)) {
+ /* remove whiteout base */
+ err = au_br_init_wh(sb, br, mod->perm, mod->h_root);
+ if (unlikely(err))
+ goto out;
+
+ if (!au_br_writable(mod->perm)) {
+ /* rw --> ro, file might be mmapped */
+ DiMustNoWaiters(root);
+ IiMustNoWaiters(root->d_inode);
+ di_write_unlock(root);
+ err = au_br_mod_files_ro(sb, bindex);
+ /* aufs_write_lock() calls ..._child() */
+ di_write_lock_child(root);
+
+ if (unlikely(err)) {
+ rerr = -ENOMEM;
+ br->br_wbr = kmalloc(sizeof(*br->br_wbr),
+ GFP_NOFS);
+ if (br->br_wbr) {
+ path.mnt = br->br_mnt;
+ path.dentry = mod->h_root;
+ rerr = au_wbr_init(br, sb, br->br_perm,
+ &path);
+ }
+ if (unlikely(rerr)) {
+ AuIOErr("nested error %d (%d)\n",
+ rerr, err);
+ br->br_perm = mod->perm;
+ }
+ }
+ }
+ } else if (au_br_writable(mod->perm)) {
+ /* ro --> rw */
+ err = -ENOMEM;
+ br->br_wbr = kmalloc(sizeof(*br->br_wbr), GFP_NOFS);
+ if (br->br_wbr) {
+ path.mnt = br->br_mnt;
+ path.dentry = mod->h_root;
+ err = au_wbr_init(br, sb, mod->perm, &path);
+ if (unlikely(err)) {
+ kfree(br->br_wbr);
+ br->br_wbr = NULL;
+ }
+ }
+ }
+
+ if (!err) {
+ *do_update |= need_sigen_inc(br->br_perm, mod->perm);
+ br->br_perm = mod->perm;
+ }
+
+ out:
+ return err;
+}
diff --git a/ubuntu/aufs/branch.h b/ubuntu/aufs/branch.h
new file mode 100644
index 00000000000..b4a8c2eaba3
--- /dev/null
+++ b/ubuntu/aufs/branch.h
@@ -0,0 +1,225 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * branch filesystems and xino for them
+ */
+
+#ifndef __AUFS_BRANCH_H__
+#define __AUFS_BRANCH_H__
+
+#ifdef __KERNEL__
+
+#include <linux/fs.h>
+#include <linux/mount.h>
+#include <linux/aufs_type.h>
+#include "dynop.h"
+#include "rwsem.h"
+#include "super.h"
+
+/* ---------------------------------------------------------------------- */
+
+/* a xino file */
+struct au_xino_file {
+ struct file *xi_file;
+ struct mutex xi_nondir_mtx;
+
+ /* todo: make xino files an array to support huge inode number */
+
+#ifdef CONFIG_DEBUG_FS
+ struct dentry *xi_dbgaufs;
+#endif
+};
+
+/* members for writable branch only */
+enum {AuBrWh_BASE, AuBrWh_PLINK, AuBrWh_ORPH, AuBrWh_Last};
+struct au_wbr {
+ struct au_rwsem wbr_wh_rwsem;
+ struct dentry *wbr_wh[AuBrWh_Last];
+ atomic_t wbr_wh_running;
+#define wbr_whbase wbr_wh[AuBrWh_BASE] /* whiteout base */
+#define wbr_plink wbr_wh[AuBrWh_PLINK] /* pseudo-link dir */
+#define wbr_orph wbr_wh[AuBrWh_ORPH] /* dir for orphans */
+
+ /* mfs mode */
+ unsigned long long wbr_bytes;
+};
+
+/* ext2 has 3 types of operations at least, ext3 has 4 */
+#define AuBrDynOp (AuDyLast * 4)
+
+/* protected by superblock rwsem */
+struct au_branch {
+ struct au_xino_file br_xino;
+
+ aufs_bindex_t br_id;
+
+ int br_perm;
+ struct vfsmount *br_mnt;
+ spinlock_t br_dykey_lock;
+ struct au_dykey *br_dykey[AuBrDynOp];
+ atomic_t br_count;
+
+ struct au_wbr *br_wbr;
+
+ /* xino truncation */
+ blkcnt_t br_xino_upper; /* watermark in blocks */
+ atomic_t br_xino_running;
+
+#ifdef CONFIG_SYSFS
+ /* an entry under sysfs per mount-point */
+ char br_name[8];
+ struct attribute br_attr;
+#endif
+};
+
+/* ---------------------------------------------------------------------- */
+
+/* branch permission and attribute */
+enum {
+ AuBrPerm_RW, /* writable, linkable wh */
+ AuBrPerm_RO, /* readonly, no wh */
+ AuBrPerm_RR, /* natively readonly, no wh */
+
+ AuBrPerm_RWNoLinkWH, /* un-linkable whiteouts */
+
+ AuBrPerm_ROWH, /* whiteout-able */
+ AuBrPerm_RRWH, /* whiteout-able */
+
+ AuBrPerm_Last
+};
+
+static inline int au_br_writable(int brperm)
+{
+ return brperm == AuBrPerm_RW || brperm == AuBrPerm_RWNoLinkWH;
+}
+
+static inline int au_br_whable(int brperm)
+{
+ return brperm == AuBrPerm_RW
+ || brperm == AuBrPerm_ROWH
+ || brperm == AuBrPerm_RRWH;
+}
+
+static inline int au_br_rdonly(struct au_branch *br)
+{
+ return ((br->br_mnt->mnt_sb->s_flags & MS_RDONLY)
+ || !au_br_writable(br->br_perm))
+ ? -EROFS : 0;
+}
+
+static inline int au_br_hnotifyable(int brperm __maybe_unused)
+{
+#ifdef CONFIG_AUFS_HNOTIFY
+ return brperm != AuBrPerm_RR && brperm != AuBrPerm_RRWH;
+#else
+ return 0;
+#endif
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* branch.c */
+struct au_sbinfo;
+void au_br_free(struct au_sbinfo *sinfo);
+int au_br_index(struct super_block *sb, aufs_bindex_t br_id);
+struct au_opt_add;
+int au_br_add(struct super_block *sb, struct au_opt_add *add, int remount);
+struct au_opt_del;
+int au_br_del(struct super_block *sb, struct au_opt_del *del, int remount);
+struct au_opt_mod;
+int au_br_mod(struct super_block *sb, struct au_opt_mod *mod, int remount,
+ int *do_update);
+
+/* xino.c */
+static const loff_t au_loff_max = LLONG_MAX;
+
+int au_xib_trunc(struct super_block *sb);
+ssize_t xino_fread(au_readf_t func, struct file *file, void *buf, size_t size,
+ loff_t *pos);
+ssize_t xino_fwrite(au_writef_t func, struct file *file, void *buf, size_t size,
+ loff_t *pos);
+struct file *au_xino_create2(struct file *base_file, struct file *copy_src);
+struct file *au_xino_create(struct super_block *sb, char *fname, int silent);
+ino_t au_xino_new_ino(struct super_block *sb);
+int au_xino_write0(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+ ino_t ino);
+int au_xino_write(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+ ino_t ino);
+int au_xino_read(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+ ino_t *ino);
+int au_xino_br(struct super_block *sb, struct au_branch *br, ino_t hino,
+ struct file *base_file, int do_test);
+int au_xino_trunc(struct super_block *sb, aufs_bindex_t bindex);
+
+struct au_opt_xino;
+int au_xino_set(struct super_block *sb, struct au_opt_xino *xino, int remount);
+void au_xino_clr(struct super_block *sb);
+struct file *au_xino_def(struct super_block *sb);
+int au_xino_path(struct seq_file *seq, struct file *file);
+
+/* ---------------------------------------------------------------------- */
+
+/* Superblock to branch */
+static inline
+aufs_bindex_t au_sbr_id(struct super_block *sb, aufs_bindex_t bindex)
+{
+ return au_sbr(sb, bindex)->br_id;
+}
+
+static inline
+struct vfsmount *au_sbr_mnt(struct super_block *sb, aufs_bindex_t bindex)
+{
+ return au_sbr(sb, bindex)->br_mnt;
+}
+
+static inline
+struct super_block *au_sbr_sb(struct super_block *sb, aufs_bindex_t bindex)
+{
+ return au_sbr_mnt(sb, bindex)->mnt_sb;
+}
+
+static inline void au_sbr_put(struct super_block *sb, aufs_bindex_t bindex)
+{
+ atomic_dec_return(&au_sbr(sb, bindex)->br_count);
+}
+
+static inline int au_sbr_perm(struct super_block *sb, aufs_bindex_t bindex)
+{
+ return au_sbr(sb, bindex)->br_perm;
+}
+
+static inline int au_sbr_whable(struct super_block *sb, aufs_bindex_t bindex)
+{
+ return au_br_whable(au_sbr_perm(sb, bindex));
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * wbr_wh_read_lock, wbr_wh_write_lock
+ * wbr_wh_read_unlock, wbr_wh_write_unlock, wbr_wh_downgrade_lock
+ */
+AuSimpleRwsemFuncs(wbr_wh, struct au_wbr *wbr, &wbr->wbr_wh_rwsem);
+
+#define WbrWhMustNoWaiters(wbr) AuRwMustNoWaiters(&wbr->wbr_wh_rwsem)
+#define WbrWhMustAnyLock(wbr) AuRwMustAnyLock(&wbr->wbr_wh_rwsem)
+#define WbrWhMustWriteLock(wbr) AuRwMustWriteLock(&wbr->wbr_wh_rwsem)
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_BRANCH_H__ */
diff --git a/ubuntu/aufs/conf.mk b/ubuntu/aufs/conf.mk
new file mode 100644
index 00000000000..1fa4bcaaf8c
--- /dev/null
+++ b/ubuntu/aufs/conf.mk
@@ -0,0 +1,33 @@
+
+AuConfStr = CONFIG_AUFS_FS=${CONFIG_AUFS_FS}
+
+define AuConf
+ifdef ${1}
+AuConfStr += ${1}=${${1}}
+endif
+endef
+
+$(foreach i, BRANCH_MAX_127 BRANCH_MAX_511 BRANCH_MAX_1023 BRANCH_MAX_32767 \
+ HNOTIFY HFSNOTIFY HINOTIFY \
+ EXPORT INO_T_64 \
+ RDU \
+ SP_IATTR \
+ SHWH \
+ BR_RAMFS \
+ BR_FUSE POLL \
+ BR_HFSPLUS \
+ BDEV_LOOP \
+ DEBUG MAGIC_SYSRQ, \
+ $(eval $(call AuConf,CONFIG_AUFS_${i})))
+
+AuConfName = ${obj}/conf.str
+${AuConfName}.tmp: FORCE
+ @echo ${AuConfStr} | tr ' ' '\n' | sed -e 's/^/"/' -e 's/$$/\\n"/' > $@
+${AuConfName}: ${AuConfName}.tmp
+ @diff -q $< $@ > /dev/null 2>&1 || { \
+ echo ' GEN ' $@; \
+ cp -p $< $@; \
+ }
+FORCE:
+clean-files += ${AuConfName} ${AuConfName}.tmp
+${obj}/sysfs.o: ${AuConfName}
diff --git a/ubuntu/aufs/cpup.c b/ubuntu/aufs/cpup.c
new file mode 100644
index 00000000000..25ec28d370d
--- /dev/null
+++ b/ubuntu/aufs/cpup.c
@@ -0,0 +1,1057 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * copy-up functions, see wbr_policy.c for copy-down
+ */
+
+#include <linux/file.h>
+#include <linux/fs_stack.h>
+#include <linux/mm.h>
+#include <linux/uaccess.h>
+#include "aufs.h"
+
+void au_cpup_attr_flags(struct inode *dst, struct inode *src)
+{
+ const unsigned int mask = S_DEAD | S_SWAPFILE | S_PRIVATE
+ | S_NOATIME | S_NOCMTIME;
+
+ dst->i_flags |= src->i_flags & ~mask;
+ if (au_test_fs_notime(dst->i_sb))
+ dst->i_flags |= S_NOATIME | S_NOCMTIME;
+}
+
+void au_cpup_attr_timesizes(struct inode *inode)
+{
+ struct inode *h_inode;
+
+ h_inode = au_h_iptr(inode, au_ibstart(inode));
+ fsstack_copy_attr_times(inode, h_inode);
+ fsstack_copy_inode_size(inode, h_inode);
+}
+
+void au_cpup_attr_nlink(struct inode *inode, int force)
+{
+ struct inode *h_inode;
+ struct super_block *sb;
+ aufs_bindex_t bindex, bend;
+
+ sb = inode->i_sb;
+ bindex = au_ibstart(inode);
+ h_inode = au_h_iptr(inode, bindex);
+ if (!force
+ && !S_ISDIR(h_inode->i_mode)
+ && au_opt_test(au_mntflags(sb), PLINK)
+ && au_plink_test(inode))
+ return;
+
+ inode->i_nlink = h_inode->i_nlink;
+
+ /*
+ * fewer nlink makes find(1) noisy, but larger nlink doesn't.
+ * it may includes whplink directory.
+ */
+ if (S_ISDIR(h_inode->i_mode)) {
+ bend = au_ibend(inode);
+ for (bindex++; bindex <= bend; bindex++) {
+ h_inode = au_h_iptr(inode, bindex);
+ if (h_inode)
+ au_add_nlink(inode, h_inode);
+ }
+ }
+}
+
+void au_cpup_attr_changeable(struct inode *inode)
+{
+ struct inode *h_inode;
+
+ h_inode = au_h_iptr(inode, au_ibstart(inode));
+ inode->i_mode = h_inode->i_mode;
+ inode->i_uid = h_inode->i_uid;
+ inode->i_gid = h_inode->i_gid;
+ au_cpup_attr_timesizes(inode);
+ au_cpup_attr_flags(inode, h_inode);
+}
+
+void au_cpup_igen(struct inode *inode, struct inode *h_inode)
+{
+ struct au_iinfo *iinfo = au_ii(inode);
+
+ IiMustWriteLock(inode);
+
+ iinfo->ii_higen = h_inode->i_generation;
+ iinfo->ii_hsb1 = h_inode->i_sb;
+}
+
+void au_cpup_attr_all(struct inode *inode, int force)
+{
+ struct inode *h_inode;
+
+ h_inode = au_h_iptr(inode, au_ibstart(inode));
+ au_cpup_attr_changeable(inode);
+ if (inode->i_nlink > 0)
+ au_cpup_attr_nlink(inode, force);
+ inode->i_rdev = h_inode->i_rdev;
+ inode->i_blkbits = h_inode->i_blkbits;
+ au_cpup_igen(inode, h_inode);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* Note: dt_dentry and dt_h_dentry are not dget/dput-ed */
+
+/* keep the timestamps of the parent dir when cpup */
+void au_dtime_store(struct au_dtime *dt, struct dentry *dentry,
+ struct path *h_path)
+{
+ struct inode *h_inode;
+
+ dt->dt_dentry = dentry;
+ dt->dt_h_path = *h_path;
+ h_inode = h_path->dentry->d_inode;
+ dt->dt_atime = h_inode->i_atime;
+ dt->dt_mtime = h_inode->i_mtime;
+ /* smp_mb(); */
+}
+
+void au_dtime_revert(struct au_dtime *dt)
+{
+ struct iattr attr;
+ int err;
+
+ attr.ia_atime = dt->dt_atime;
+ attr.ia_mtime = dt->dt_mtime;
+ attr.ia_valid = ATTR_FORCE | ATTR_MTIME | ATTR_MTIME_SET
+ | ATTR_ATIME | ATTR_ATIME_SET;
+
+ err = vfsub_notify_change(&dt->dt_h_path, &attr);
+ if (unlikely(err))
+ pr_warning("restoring timestamps failed(%d). ignored\n", err);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static noinline_for_stack
+int cpup_iattr(struct dentry *dst, aufs_bindex_t bindex, struct dentry *h_src)
+{
+ int err, sbits;
+ struct iattr ia;
+ struct path h_path;
+ struct inode *h_isrc, *h_idst;
+
+ h_path.dentry = au_h_dptr(dst, bindex);
+ h_idst = h_path.dentry->d_inode;
+ h_path.mnt = au_sbr_mnt(dst->d_sb, bindex);
+ h_isrc = h_src->d_inode;
+ ia.ia_valid = ATTR_FORCE | ATTR_UID | ATTR_GID
+ | ATTR_ATIME | ATTR_MTIME
+ | ATTR_ATIME_SET | ATTR_MTIME_SET;
+ ia.ia_uid = h_isrc->i_uid;
+ ia.ia_gid = h_isrc->i_gid;
+ ia.ia_atime = h_isrc->i_atime;
+ ia.ia_mtime = h_isrc->i_mtime;
+ if (h_idst->i_mode != h_isrc->i_mode
+ && !S_ISLNK(h_idst->i_mode)) {
+ ia.ia_valid |= ATTR_MODE;
+ ia.ia_mode = h_isrc->i_mode;
+ }
+ sbits = !!(h_isrc->i_mode & (S_ISUID | S_ISGID));
+ au_cpup_attr_flags(h_idst, h_isrc);
+ err = vfsub_notify_change(&h_path, &ia);
+
+ /* is this nfs only? */
+ if (!err && sbits && au_test_nfs(h_path.dentry->d_sb)) {
+ ia.ia_valid = ATTR_FORCE | ATTR_MODE;
+ ia.ia_mode = h_isrc->i_mode;
+ err = vfsub_notify_change(&h_path, &ia);
+ }
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_do_copy_file(struct file *dst, struct file *src, loff_t len,
+ char *buf, unsigned long blksize)
+{
+ int err;
+ size_t sz, rbytes, wbytes;
+ unsigned char all_zero;
+ char *p, *zp;
+ struct mutex *h_mtx;
+ /* reduce stack usage */
+ struct iattr *ia;
+
+ zp = page_address(ZERO_PAGE(0));
+ if (unlikely(!zp))
+ return -ENOMEM; /* possible? */
+
+ err = 0;
+ all_zero = 0;
+ while (len) {
+ AuDbg("len %lld\n", len);
+ sz = blksize;
+ if (len < blksize)
+ sz = len;
+
+ rbytes = 0;
+ /* todo: signal_pending? */
+ while (!rbytes || err == -EAGAIN || err == -EINTR) {
+ rbytes = vfsub_read_k(src, buf, sz, &src->f_pos);
+ err = rbytes;
+ }
+ if (unlikely(err < 0))
+ break;
+
+ all_zero = 0;
+ if (len >= rbytes && rbytes == blksize)
+ all_zero = !memcmp(buf, zp, rbytes);
+ if (!all_zero) {
+ wbytes = rbytes;
+ p = buf;
+ while (wbytes) {
+ size_t b;
+
+ b = vfsub_write_k(dst, p, wbytes, &dst->f_pos);
+ err = b;
+ /* todo: signal_pending? */
+ if (unlikely(err == -EAGAIN || err == -EINTR))
+ continue;
+ if (unlikely(err < 0))
+ break;
+ wbytes -= b;
+ p += b;
+ }
+ } else {
+ loff_t res;
+
+ AuLabel(hole);
+ res = vfsub_llseek(dst, rbytes, SEEK_CUR);
+ err = res;
+ if (unlikely(res < 0))
+ break;
+ }
+ len -= rbytes;
+ err = 0;
+ }
+
+ /* the last block may be a hole */
+ if (!err && all_zero) {
+ AuLabel(last hole);
+
+ err = 1;
+ if (au_test_nfs(dst->f_dentry->d_sb)) {
+ /* nfs requires this step to make last hole */
+ /* is this only nfs? */
+ do {
+ /* todo: signal_pending? */
+ err = vfsub_write_k(dst, "\0", 1, &dst->f_pos);
+ } while (err == -EAGAIN || err == -EINTR);
+ if (err == 1)
+ dst->f_pos--;
+ }
+
+ if (err == 1) {
+ ia = (void *)buf;
+ ia->ia_size = dst->f_pos;
+ ia->ia_valid = ATTR_SIZE | ATTR_FILE;
+ ia->ia_file = dst;
+ h_mtx = &dst->f_dentry->d_inode->i_mutex;
+ mutex_lock_nested(h_mtx, AuLsc_I_CHILD2);
+ err = vfsub_notify_change(&dst->f_path, ia);
+ mutex_unlock(h_mtx);
+ }
+ }
+
+ return err;
+}
+
+int au_copy_file(struct file *dst, struct file *src, loff_t len)
+{
+ int err;
+ unsigned long blksize;
+ unsigned char do_kfree;
+ char *buf;
+
+ err = -ENOMEM;
+ blksize = dst->f_dentry->d_sb->s_blocksize;
+ if (!blksize || PAGE_SIZE < blksize)
+ blksize = PAGE_SIZE;
+ AuDbg("blksize %lu\n", blksize);
+ do_kfree = (blksize != PAGE_SIZE && blksize >= sizeof(struct iattr *));
+ if (do_kfree)
+ buf = kmalloc(blksize, GFP_NOFS);
+ else
+ buf = (void *)__get_free_page(GFP_NOFS);
+ if (unlikely(!buf))
+ goto out;
+
+ if (len > (1 << 22))
+ AuDbg("copying a large file %lld\n", (long long)len);
+
+ src->f_pos = 0;
+ dst->f_pos = 0;
+ err = au_do_copy_file(dst, src, len, buf, blksize);
+ if (do_kfree)
+ kfree(buf);
+ else
+ free_page((unsigned long)buf);
+
+ out:
+ return err;
+}
+
+/*
+ * to support a sparse file which is opened with O_APPEND,
+ * we need to close the file.
+ */
+static int au_cp_regular(struct dentry *dentry, aufs_bindex_t bdst,
+ aufs_bindex_t bsrc, loff_t len)
+{
+ int err, i;
+ enum { SRC, DST };
+ struct {
+ aufs_bindex_t bindex;
+ unsigned int flags;
+ struct dentry *dentry;
+ struct file *file;
+ void *label, *label_file;
+ } *f, file[] = {
+ {
+ .bindex = bsrc,
+ .flags = O_RDONLY | O_NOATIME | O_LARGEFILE,
+ .file = NULL,
+ .label = &&out,
+ .label_file = &&out_src
+ },
+ {
+ .bindex = bdst,
+ .flags = O_WRONLY | O_NOATIME | O_LARGEFILE,
+ .file = NULL,
+ .label = &&out_src,
+ .label_file = &&out_dst
+ }
+ };
+ struct super_block *sb;
+
+ /* bsrc branch can be ro/rw. */
+ sb = dentry->d_sb;
+ f = file;
+ for (i = 0; i < 2; i++, f++) {
+ f->dentry = au_h_dptr(dentry, f->bindex);
+ f->file = au_h_open(dentry, f->bindex, f->flags, /*file*/NULL);
+ err = PTR_ERR(f->file);
+ if (IS_ERR(f->file))
+ goto *f->label;
+ err = -EINVAL;
+ if (unlikely(!f->file->f_op))
+ goto *f->label_file;
+ }
+
+ /* try stopping to update while we copyup */
+ IMustLock(file[SRC].dentry->d_inode);
+ err = au_copy_file(file[DST].file, file[SRC].file, len);
+
+ out_dst:
+ fput(file[DST].file);
+ au_sbr_put(sb, file[DST].bindex);
+ out_src:
+ fput(file[SRC].file);
+ au_sbr_put(sb, file[SRC].bindex);
+ out:
+ return err;
+}
+
+static int au_do_cpup_regular(struct dentry *dentry, aufs_bindex_t bdst,
+ aufs_bindex_t bsrc, loff_t len,
+ struct inode *h_dir, struct path *h_path)
+{
+ int err, rerr;
+ loff_t l;
+
+ err = 0;
+ l = i_size_read(au_h_iptr(dentry->d_inode, bsrc));
+ if (len == -1 || l < len)
+ len = l;
+ if (len)
+ err = au_cp_regular(dentry, bdst, bsrc, len);
+ if (!err)
+ goto out; /* success */
+
+ rerr = vfsub_unlink(h_dir, h_path, /*force*/0);
+ if (rerr) {
+ AuIOErr("failed unlinking cpup-ed %.*s(%d, %d)\n",
+ AuDLNPair(h_path->dentry), err, rerr);
+ err = -EIO;
+ }
+
+ out:
+ return err;
+}
+
+static int au_do_cpup_symlink(struct path *h_path, struct dentry *h_src,
+ struct inode *h_dir)
+{
+ int err, symlen;
+ mm_segment_t old_fs;
+ char *sym;
+
+ err = -ENOSYS;
+ if (unlikely(!h_src->d_inode->i_op->readlink))
+ goto out;
+
+ err = -ENOMEM;
+ sym = __getname_gfp(GFP_NOFS);
+ if (unlikely(!sym))
+ goto out;
+
+ old_fs = get_fs();
+ set_fs(KERNEL_DS);
+ symlen = h_src->d_inode->i_op->readlink(h_src, (char __user *)sym,
+ PATH_MAX);
+ err = symlen;
+ set_fs(old_fs);
+
+ if (symlen > 0) {
+ sym[symlen] = 0;
+ err = vfsub_symlink(h_dir, h_path, sym);
+ }
+ __putname(sym);
+
+ out:
+ return err;
+}
+
+/* return with the lower dst inode is locked */
+static noinline_for_stack
+int cpup_entry(struct dentry *dentry, aufs_bindex_t bdst,
+ aufs_bindex_t bsrc, loff_t len, unsigned int flags,
+ struct dentry *dst_parent)
+{
+ int err;
+ umode_t mode;
+ unsigned int mnt_flags;
+ unsigned char isdir;
+ const unsigned char do_dt = !!au_ftest_cpup(flags, DTIME);
+ struct au_dtime dt;
+ struct path h_path;
+ struct dentry *h_src, *h_dst, *h_parent;
+ struct inode *h_inode, *h_dir;
+ struct super_block *sb;
+
+ /* bsrc branch can be ro/rw. */
+ h_src = au_h_dptr(dentry, bsrc);
+ h_inode = h_src->d_inode;
+ AuDebugOn(h_inode != au_h_iptr(dentry->d_inode, bsrc));
+
+ /* try stopping to be referenced while we are creating */
+ h_dst = au_h_dptr(dentry, bdst);
+ h_parent = h_dst->d_parent; /* dir inode is locked */
+ h_dir = h_parent->d_inode;
+ IMustLock(h_dir);
+ AuDebugOn(h_parent != h_dst->d_parent);
+
+ sb = dentry->d_sb;
+ h_path.mnt = au_sbr_mnt(sb, bdst);
+ if (do_dt) {
+ h_path.dentry = h_parent;
+ au_dtime_store(&dt, dst_parent, &h_path);
+ }
+ h_path.dentry = h_dst;
+
+ isdir = 0;
+ mode = h_inode->i_mode;
+ switch (mode & S_IFMT) {
+ case S_IFREG:
+ /* try stopping to update while we are referencing */
+ IMustLock(h_inode);
+ err = vfsub_create(h_dir, &h_path, mode | S_IWUSR);
+ if (!err)
+ err = au_do_cpup_regular
+ (dentry, bdst, bsrc, len,
+ au_h_iptr(dst_parent->d_inode, bdst), &h_path);
+ break;
+ case S_IFDIR:
+ isdir = 1;
+ err = vfsub_mkdir(h_dir, &h_path, mode);
+ if (!err) {
+ /*
+ * strange behaviour from the users view,
+ * particularry setattr case
+ */
+ if (au_ibstart(dst_parent->d_inode) == bdst)
+ au_cpup_attr_nlink(dst_parent->d_inode,
+ /*force*/1);
+ au_cpup_attr_nlink(dentry->d_inode, /*force*/1);
+ }
+ break;
+ case S_IFLNK:
+ err = au_do_cpup_symlink(&h_path, h_src, h_dir);
+ break;
+ case S_IFCHR:
+ case S_IFBLK:
+ AuDebugOn(!capable(CAP_MKNOD));
+ /*FALLTHROUGH*/
+ case S_IFIFO:
+ case S_IFSOCK:
+ err = vfsub_mknod(h_dir, &h_path, mode, h_inode->i_rdev);
+ break;
+ default:
+ AuIOErr("Unknown inode type 0%o\n", mode);
+ err = -EIO;
+ }
+
+ mnt_flags = au_mntflags(sb);
+ if (!au_opt_test(mnt_flags, UDBA_NONE)
+ && !isdir
+ && au_opt_test(mnt_flags, XINO)
+ && h_inode->i_nlink == 1
+ /* todo: unnecessary? */
+ /* && dentry->d_inode->i_nlink == 1 */
+ && bdst < bsrc
+ && !au_ftest_cpup(flags, KEEPLINO))
+ au_xino_write(sb, bsrc, h_inode->i_ino, /*ino*/0);
+ /* ignore this error */
+
+ if (do_dt)
+ au_dtime_revert(&dt);
+ return err;
+}
+
+/*
+ * copyup the @dentry from @bsrc to @bdst.
+ * the caller must set the both of lower dentries.
+ * @len is for truncating when it is -1 copyup the entire file.
+ * in link/rename cases, @dst_parent may be different from the real one.
+ */
+static int au_cpup_single(struct dentry *dentry, aufs_bindex_t bdst,
+ aufs_bindex_t bsrc, loff_t len, unsigned int flags,
+ struct dentry *dst_parent)
+{
+ int err, rerr;
+ aufs_bindex_t old_ibstart;
+ unsigned char isdir, plink;
+ struct au_dtime dt;
+ struct path h_path;
+ struct dentry *h_src, *h_dst, *h_parent;
+ struct inode *dst_inode, *h_dir, *inode;
+ struct super_block *sb;
+
+ AuDebugOn(bsrc <= bdst);
+
+ sb = dentry->d_sb;
+ h_path.mnt = au_sbr_mnt(sb, bdst);
+ h_dst = au_h_dptr(dentry, bdst);
+ h_parent = h_dst->d_parent; /* dir inode is locked */
+ h_dir = h_parent->d_inode;
+ IMustLock(h_dir);
+
+ h_src = au_h_dptr(dentry, bsrc);
+ inode = dentry->d_inode;
+
+ if (!dst_parent)
+ dst_parent = dget_parent(dentry);
+ else
+ dget(dst_parent);
+
+ plink = !!au_opt_test(au_mntflags(sb), PLINK);
+ dst_inode = au_h_iptr(inode, bdst);
+ if (dst_inode) {
+ if (unlikely(!plink)) {
+ err = -EIO;
+ AuIOErr("i%lu exists on a upper branch "
+ "but plink is disabled\n", inode->i_ino);
+ goto out;
+ }
+
+ if (dst_inode->i_nlink) {
+ const int do_dt = au_ftest_cpup(flags, DTIME);
+
+ h_src = au_plink_lkup(inode, bdst);
+ err = PTR_ERR(h_src);
+ if (IS_ERR(h_src))
+ goto out;
+ if (unlikely(!h_src->d_inode)) {
+ err = -EIO;
+ AuIOErr("i%lu exists on a upper branch "
+ "but plink is broken\n", inode->i_ino);
+ dput(h_src);
+ goto out;
+ }
+
+ if (do_dt) {
+ h_path.dentry = h_parent;
+ au_dtime_store(&dt, dst_parent, &h_path);
+ }
+ h_path.dentry = h_dst;
+ err = vfsub_link(h_src, h_dir, &h_path);
+ if (do_dt)
+ au_dtime_revert(&dt);
+ dput(h_src);
+ goto out;
+ } else
+ /* todo: cpup_wh_file? */
+ /* udba work */
+ au_update_ibrange(inode, /*do_put_zero*/1);
+ }
+
+ old_ibstart = au_ibstart(inode);
+ err = cpup_entry(dentry, bdst, bsrc, len, flags, dst_parent);
+ if (unlikely(err))
+ goto out;
+ dst_inode = h_dst->d_inode;
+ mutex_lock_nested(&dst_inode->i_mutex, AuLsc_I_CHILD2);
+
+ err = cpup_iattr(dentry, bdst, h_src);
+ isdir = S_ISDIR(dst_inode->i_mode);
+ if (!err) {
+ if (bdst < old_ibstart) {
+ if (S_ISREG(inode->i_mode)) {
+ err = au_dy_iaop(inode, bdst, dst_inode);
+ if (unlikely(err))
+ goto out_rev;
+ }
+ au_set_ibstart(inode, bdst);
+ }
+ au_set_h_iptr(inode, bdst, au_igrab(dst_inode),
+ au_hi_flags(inode, isdir));
+ mutex_unlock(&dst_inode->i_mutex);
+ if (!isdir
+ && h_src->d_inode->i_nlink > 1
+ && plink)
+ au_plink_append(inode, bdst, h_dst);
+ goto out; /* success */
+ }
+
+ /* revert */
+out_rev:
+ h_path.dentry = h_parent;
+ mutex_unlock(&dst_inode->i_mutex);
+ au_dtime_store(&dt, dst_parent, &h_path);
+ h_path.dentry = h_dst;
+ if (!isdir)
+ rerr = vfsub_unlink(h_dir, &h_path, /*force*/0);
+ else
+ rerr = vfsub_rmdir(h_dir, &h_path);
+ au_dtime_revert(&dt);
+ if (rerr) {
+ AuIOErr("failed removing broken entry(%d, %d)\n", err, rerr);
+ err = -EIO;
+ }
+
+ out:
+ dput(dst_parent);
+ return err;
+}
+
+struct au_cpup_single_args {
+ int *errp;
+ struct dentry *dentry;
+ aufs_bindex_t bdst, bsrc;
+ loff_t len;
+ unsigned int flags;
+ struct dentry *dst_parent;
+};
+
+static void au_call_cpup_single(void *args)
+{
+ struct au_cpup_single_args *a = args;
+ *a->errp = au_cpup_single(a->dentry, a->bdst, a->bsrc, a->len,
+ a->flags, a->dst_parent);
+}
+
+int au_sio_cpup_single(struct dentry *dentry, aufs_bindex_t bdst,
+ aufs_bindex_t bsrc, loff_t len, unsigned int flags,
+ struct dentry *dst_parent)
+{
+ int err, wkq_err;
+ umode_t mode;
+ struct dentry *h_dentry;
+
+ h_dentry = au_h_dptr(dentry, bsrc);
+ mode = h_dentry->d_inode->i_mode & S_IFMT;
+ if ((mode != S_IFCHR && mode != S_IFBLK)
+ || capable(CAP_MKNOD))
+ err = au_cpup_single(dentry, bdst, bsrc, len, flags,
+ dst_parent);
+ else {
+ struct au_cpup_single_args args = {
+ .errp = &err,
+ .dentry = dentry,
+ .bdst = bdst,
+ .bsrc = bsrc,
+ .len = len,
+ .flags = flags,
+ .dst_parent = dst_parent
+ };
+ wkq_err = au_wkq_wait(au_call_cpup_single, &args);
+ if (unlikely(wkq_err))
+ err = wkq_err;
+ }
+
+ return err;
+}
+
+/*
+ * copyup the @dentry from the first active lower branch to @bdst,
+ * using au_cpup_single().
+ */
+static int au_cpup_simple(struct dentry *dentry, aufs_bindex_t bdst, loff_t len,
+ unsigned int flags)
+{
+ int err;
+ aufs_bindex_t bsrc, bend;
+
+ bend = au_dbend(dentry);
+ for (bsrc = bdst + 1; bsrc <= bend; bsrc++)
+ if (au_h_dptr(dentry, bsrc))
+ break;
+
+ err = au_lkup_neg(dentry, bdst);
+ if (!err) {
+ err = au_cpup_single(dentry, bdst, bsrc, len, flags, NULL);
+ if (!err)
+ return 0; /* success */
+
+ /* revert */
+ au_set_h_dptr(dentry, bdst, NULL);
+ au_set_dbstart(dentry, bsrc);
+ }
+
+ return err;
+}
+
+struct au_cpup_simple_args {
+ int *errp;
+ struct dentry *dentry;
+ aufs_bindex_t bdst;
+ loff_t len;
+ unsigned int flags;
+};
+
+static void au_call_cpup_simple(void *args)
+{
+ struct au_cpup_simple_args *a = args;
+ *a->errp = au_cpup_simple(a->dentry, a->bdst, a->len, a->flags);
+}
+
+int au_sio_cpup_simple(struct dentry *dentry, aufs_bindex_t bdst, loff_t len,
+ unsigned int flags)
+{
+ int err, wkq_err;
+ unsigned char do_sio;
+ struct dentry *parent;
+ struct inode *h_dir;
+
+ parent = dget_parent(dentry);
+ h_dir = au_h_iptr(parent->d_inode, bdst);
+ do_sio = !!au_test_h_perm_sio(h_dir, MAY_EXEC | MAY_WRITE);
+ if (!do_sio) {
+ /*
+ * testing CAP_MKNOD is for generic fs,
+ * but CAP_FSETID is for xfs only, currently.
+ */
+ umode_t mode = dentry->d_inode->i_mode;
+ do_sio = (((mode & (S_IFCHR | S_IFBLK))
+ && !capable(CAP_MKNOD))
+ || ((mode & (S_ISUID | S_ISGID))
+ && !capable(CAP_FSETID)));
+ }
+ if (!do_sio)
+ err = au_cpup_simple(dentry, bdst, len, flags);
+ else {
+ struct au_cpup_simple_args args = {
+ .errp = &err,
+ .dentry = dentry,
+ .bdst = bdst,
+ .len = len,
+ .flags = flags
+ };
+ wkq_err = au_wkq_wait(au_call_cpup_simple, &args);
+ if (unlikely(wkq_err))
+ err = wkq_err;
+ }
+
+ dput(parent);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * copyup the deleted file for writing.
+ */
+static int au_do_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst,
+ struct dentry *wh_dentry, struct file *file,
+ loff_t len)
+{
+ int err;
+ aufs_bindex_t bstart;
+ struct au_dinfo *dinfo;
+ struct dentry *h_d_dst, *h_d_start;
+ struct au_hdentry *hdp;
+
+ dinfo = au_di(dentry);
+ AuRwMustWriteLock(&dinfo->di_rwsem);
+
+ bstart = dinfo->di_bstart;
+ hdp = dinfo->di_hdentry;
+ h_d_dst = hdp[0 + bdst].hd_dentry;
+ dinfo->di_bstart = bdst;
+ hdp[0 + bdst].hd_dentry = wh_dentry;
+ h_d_start = hdp[0 + bstart].hd_dentry;
+ if (file)
+ hdp[0 + bstart].hd_dentry = au_hf_top(file)->f_dentry;
+ err = au_cpup_single(dentry, bdst, bstart, len, !AuCpup_DTIME,
+ /*h_parent*/NULL);
+ if (!err && file) {
+ err = au_reopen_nondir(file);
+ hdp[0 + bstart].hd_dentry = h_d_start;
+ }
+ hdp[0 + bdst].hd_dentry = h_d_dst;
+ dinfo->di_bstart = bstart;
+
+ return err;
+}
+
+static int au_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst, loff_t len,
+ struct file *file)
+{
+ int err;
+ struct au_dtime dt;
+ struct dentry *parent, *h_parent, *wh_dentry;
+ struct au_branch *br;
+ struct path h_path;
+
+ br = au_sbr(dentry->d_sb, bdst);
+ parent = dget_parent(dentry);
+ h_parent = au_h_dptr(parent, bdst);
+ wh_dentry = au_whtmp_lkup(h_parent, br, &dentry->d_name);
+ err = PTR_ERR(wh_dentry);
+ if (IS_ERR(wh_dentry))
+ goto out;
+
+ h_path.dentry = h_parent;
+ h_path.mnt = br->br_mnt;
+ au_dtime_store(&dt, parent, &h_path);
+ err = au_do_cpup_wh(dentry, bdst, wh_dentry, file, len);
+ if (unlikely(err))
+ goto out_wh;
+
+ dget(wh_dentry);
+ h_path.dentry = wh_dentry;
+ if (!S_ISDIR(wh_dentry->d_inode->i_mode))
+ err = vfsub_unlink(h_parent->d_inode, &h_path, /*force*/0);
+ else
+ err = vfsub_rmdir(h_parent->d_inode, &h_path);
+ if (unlikely(err)) {
+ AuIOErr("failed remove copied-up tmp file %.*s(%d)\n",
+ AuDLNPair(wh_dentry), err);
+ err = -EIO;
+ }
+ au_dtime_revert(&dt);
+ au_set_hi_wh(dentry->d_inode, bdst, wh_dentry);
+
+ out_wh:
+ dput(wh_dentry);
+ out:
+ dput(parent);
+ return err;
+}
+
+struct au_cpup_wh_args {
+ int *errp;
+ struct dentry *dentry;
+ aufs_bindex_t bdst;
+ loff_t len;
+ struct file *file;
+};
+
+static void au_call_cpup_wh(void *args)
+{
+ struct au_cpup_wh_args *a = args;
+ *a->errp = au_cpup_wh(a->dentry, a->bdst, a->len, a->file);
+}
+
+int au_sio_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst, loff_t len,
+ struct file *file)
+{
+ int err, wkq_err;
+ struct dentry *parent, *h_orph, *h_parent, *h_dentry;
+ struct inode *dir, *h_dir, *h_tmpdir, *h_inode;
+ struct au_wbr *wbr;
+
+ parent = dget_parent(dentry);
+ dir = parent->d_inode;
+ h_orph = NULL;
+ h_parent = NULL;
+ h_dir = au_igrab(au_h_iptr(dir, bdst));
+ h_tmpdir = h_dir;
+ if (!h_dir->i_nlink) {
+ wbr = au_sbr(dentry->d_sb, bdst)->br_wbr;
+ h_orph = wbr->wbr_orph;
+
+ h_parent = dget(au_h_dptr(parent, bdst));
+ au_set_h_dptr(parent, bdst, dget(h_orph));
+ h_tmpdir = h_orph->d_inode;
+ au_set_h_iptr(dir, bdst, au_igrab(h_tmpdir), /*flags*/0);
+
+ /* this temporary unlock is safe */
+ if (file)
+ h_dentry = au_hf_top(file)->f_dentry;
+ else
+ h_dentry = au_h_dptr(dentry, au_dbstart(dentry));
+ h_inode = h_dentry->d_inode;
+ IMustLock(h_inode);
+ mutex_unlock(&h_inode->i_mutex);
+ mutex_lock_nested(&h_tmpdir->i_mutex, AuLsc_I_PARENT3);
+ mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD);
+ /* todo: au_h_open_pre()? */
+ }
+
+ if (!au_test_h_perm_sio(h_tmpdir, MAY_EXEC | MAY_WRITE))
+ err = au_cpup_wh(dentry, bdst, len, file);
+ else {
+ struct au_cpup_wh_args args = {
+ .errp = &err,
+ .dentry = dentry,
+ .bdst = bdst,
+ .len = len,
+ .file = file
+ };
+ wkq_err = au_wkq_wait(au_call_cpup_wh, &args);
+ if (unlikely(wkq_err))
+ err = wkq_err;
+ }
+
+ if (h_orph) {
+ mutex_unlock(&h_tmpdir->i_mutex);
+ /* todo: au_h_open_post()? */
+ au_set_h_iptr(dir, bdst, au_igrab(h_dir), /*flags*/0);
+ au_set_h_dptr(parent, bdst, h_parent);
+ }
+ iput(h_dir);
+ dput(parent);
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * generic routine for both of copy-up and copy-down.
+ */
+/* cf. revalidate function in file.c */
+int au_cp_dirs(struct dentry *dentry, aufs_bindex_t bdst,
+ int (*cp)(struct dentry *dentry, aufs_bindex_t bdst,
+ struct dentry *h_parent, void *arg),
+ void *arg)
+{
+ int err;
+ struct au_pin pin;
+ struct dentry *d, *parent, *h_parent, *real_parent;
+
+ err = 0;
+ parent = dget_parent(dentry);
+ if (IS_ROOT(parent))
+ goto out;
+
+ au_pin_init(&pin, dentry, bdst, AuLsc_DI_PARENT2, AuLsc_I_PARENT2,
+ au_opt_udba(dentry->d_sb), AuPin_MNT_WRITE);
+
+ /* do not use au_dpage */
+ real_parent = parent;
+ while (1) {
+ dput(parent);
+ parent = dget_parent(dentry);
+ h_parent = au_h_dptr(parent, bdst);
+ if (h_parent)
+ goto out; /* success */
+
+ /* find top dir which is necessary to cpup */
+ do {
+ d = parent;
+ dput(parent);
+ parent = dget_parent(d);
+ di_read_lock_parent3(parent, !AuLock_IR);
+ h_parent = au_h_dptr(parent, bdst);
+ di_read_unlock(parent, !AuLock_IR);
+ } while (!h_parent);
+
+ if (d != real_parent)
+ di_write_lock_child3(d);
+
+ /* somebody else might create while we were sleeping */
+ if (!au_h_dptr(d, bdst) || !au_h_dptr(d, bdst)->d_inode) {
+ if (au_h_dptr(d, bdst))
+ au_update_dbstart(d);
+
+ au_pin_set_dentry(&pin, d);
+ err = au_do_pin(&pin);
+ if (!err) {
+ err = cp(d, bdst, h_parent, arg);
+ au_unpin(&pin);
+ }
+ }
+
+ if (d != real_parent)
+ di_write_unlock(d);
+ if (unlikely(err))
+ break;
+ }
+
+ out:
+ dput(parent);
+ return err;
+}
+
+static int au_cpup_dir(struct dentry *dentry, aufs_bindex_t bdst,
+ struct dentry *h_parent __maybe_unused ,
+ void *arg __maybe_unused)
+{
+ return au_sio_cpup_simple(dentry, bdst, -1, AuCpup_DTIME);
+}
+
+int au_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst)
+{
+ return au_cp_dirs(dentry, bdst, au_cpup_dir, NULL);
+}
+
+int au_test_and_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst)
+{
+ int err;
+ struct dentry *parent;
+ struct inode *dir;
+
+ parent = dget_parent(dentry);
+ dir = parent->d_inode;
+ err = 0;
+ if (au_h_iptr(dir, bdst))
+ goto out;
+
+ di_read_unlock(parent, AuLock_IR);
+ di_write_lock_parent(parent);
+ /* someone else might change our inode while we were sleeping */
+ if (!au_h_iptr(dir, bdst))
+ err = au_cpup_dirs(dentry, bdst);
+ di_downgrade_lock(parent, AuLock_IR);
+
+ out:
+ dput(parent);
+ return err;
+}
diff --git a/ubuntu/aufs/cpup.h b/ubuntu/aufs/cpup.h
new file mode 100644
index 00000000000..506350d20b1
--- /dev/null
+++ b/ubuntu/aufs/cpup.h
@@ -0,0 +1,81 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * copy-up/down functions
+ */
+
+#ifndef __AUFS_CPUP_H__
+#define __AUFS_CPUP_H__
+
+#ifdef __KERNEL__
+
+#include <linux/path.h>
+#include <linux/time.h>
+#include <linux/aufs_type.h>
+
+struct inode;
+struct file;
+
+void au_cpup_attr_flags(struct inode *dst, struct inode *src);
+void au_cpup_attr_timesizes(struct inode *inode);
+void au_cpup_attr_nlink(struct inode *inode, int force);
+void au_cpup_attr_changeable(struct inode *inode);
+void au_cpup_igen(struct inode *inode, struct inode *h_inode);
+void au_cpup_attr_all(struct inode *inode, int force);
+
+/* ---------------------------------------------------------------------- */
+
+/* cpup flags */
+#define AuCpup_DTIME 1 /* do dtime_store/revert */
+#define AuCpup_KEEPLINO (1 << 1) /* do not clear the lower xino,
+ for link(2) */
+#define au_ftest_cpup(flags, name) ((flags) & AuCpup_##name)
+#define au_fset_cpup(flags, name) { (flags) |= AuCpup_##name; }
+#define au_fclr_cpup(flags, name) { (flags) &= ~AuCpup_##name; }
+
+int au_copy_file(struct file *dst, struct file *src, loff_t len);
+int au_sio_cpup_single(struct dentry *dentry, aufs_bindex_t bdst,
+ aufs_bindex_t bsrc, loff_t len, unsigned int flags,
+ struct dentry *dst_parent);
+int au_sio_cpup_simple(struct dentry *dentry, aufs_bindex_t bdst, loff_t len,
+ unsigned int flags);
+int au_sio_cpup_wh(struct dentry *dentry, aufs_bindex_t bdst, loff_t len,
+ struct file *file);
+
+int au_cp_dirs(struct dentry *dentry, aufs_bindex_t bdst,
+ int (*cp)(struct dentry *dentry, aufs_bindex_t bdst,
+ struct dentry *h_parent, void *arg),
+ void *arg);
+int au_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst);
+int au_test_and_cpup_dirs(struct dentry *dentry, aufs_bindex_t bdst);
+
+/* ---------------------------------------------------------------------- */
+
+/* keep timestamps when copyup */
+struct au_dtime {
+ struct dentry *dt_dentry;
+ struct path dt_h_path;
+ struct timespec dt_atime, dt_mtime;
+};
+void au_dtime_store(struct au_dtime *dt, struct dentry *dentry,
+ struct path *h_path);
+void au_dtime_revert(struct au_dtime *dt);
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_CPUP_H__ */
diff --git a/ubuntu/aufs/dbgaufs.c b/ubuntu/aufs/dbgaufs.c
new file mode 100644
index 00000000000..379475a8823
--- /dev/null
+++ b/ubuntu/aufs/dbgaufs.c
@@ -0,0 +1,334 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * debugfs interface
+ */
+
+#include <linux/debugfs.h>
+#include "aufs.h"
+
+#ifndef CONFIG_SYSFS
+#error DEBUG_FS depends upon SYSFS
+#endif
+
+static struct dentry *dbgaufs;
+static const mode_t dbgaufs_mode = S_IRUSR | S_IRGRP | S_IROTH;
+
+/* 20 is max digits length of ulong 64 */
+struct dbgaufs_arg {
+ int n;
+ char a[20 * 4];
+};
+
+/*
+ * common function for all XINO files
+ */
+static int dbgaufs_xi_release(struct inode *inode __maybe_unused,
+ struct file *file)
+{
+ kfree(file->private_data);
+ return 0;
+}
+
+static int dbgaufs_xi_open(struct file *xf, struct file *file, int do_fcnt)
+{
+ int err;
+ struct kstat st;
+ struct dbgaufs_arg *p;
+
+ err = -ENOMEM;
+ p = kmalloc(sizeof(*p), GFP_NOFS);
+ if (unlikely(!p))
+ goto out;
+
+ err = 0;
+ p->n = 0;
+ file->private_data = p;
+ if (!xf)
+ goto out;
+
+ err = vfs_getattr(xf->f_vfsmnt, xf->f_dentry, &st);
+ if (!err) {
+ if (do_fcnt)
+ p->n = snprintf
+ (p->a, sizeof(p->a), "%ld, %llux%lu %lld\n",
+ (long)file_count(xf), st.blocks, st.blksize,
+ (long long)st.size);
+ else
+ p->n = snprintf(p->a, sizeof(p->a), "%llux%lu %lld\n",
+ st.blocks, st.blksize,
+ (long long)st.size);
+ AuDebugOn(p->n >= sizeof(p->a));
+ } else {
+ p->n = snprintf(p->a, sizeof(p->a), "err %d\n", err);
+ err = 0;
+ }
+
+ out:
+ return err;
+
+}
+
+static ssize_t dbgaufs_xi_read(struct file *file, char __user *buf,
+ size_t count, loff_t *ppos)
+{
+ struct dbgaufs_arg *p;
+
+ p = file->private_data;
+ return simple_read_from_buffer(buf, count, ppos, p->a, p->n);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int dbgaufs_xib_open(struct inode *inode, struct file *file)
+{
+ int err;
+ struct au_sbinfo *sbinfo;
+ struct super_block *sb;
+
+ sbinfo = inode->i_private;
+ sb = sbinfo->si_sb;
+ si_noflush_read_lock(sb);
+ err = dbgaufs_xi_open(sbinfo->si_xib, file, /*do_fcnt*/0);
+ si_read_unlock(sb);
+ return err;
+}
+
+static const struct file_operations dbgaufs_xib_fop = {
+ .owner = THIS_MODULE,
+ .open = dbgaufs_xib_open,
+ .release = dbgaufs_xi_release,
+ .read = dbgaufs_xi_read
+};
+
+/* ---------------------------------------------------------------------- */
+
+#define DbgaufsXi_PREFIX "xi"
+
+static int dbgaufs_xino_open(struct inode *inode, struct file *file)
+{
+ int err;
+ long l;
+ struct au_sbinfo *sbinfo;
+ struct super_block *sb;
+ struct file *xf;
+ struct qstr *name;
+
+ err = -ENOENT;
+ xf = NULL;
+ name = &file->f_dentry->d_name;
+ if (unlikely(name->len < sizeof(DbgaufsXi_PREFIX)
+ || memcmp(name->name, DbgaufsXi_PREFIX,
+ sizeof(DbgaufsXi_PREFIX) - 1)))
+ goto out;
+ err = strict_strtol(name->name + sizeof(DbgaufsXi_PREFIX) - 1, 10, &l);
+ if (unlikely(err))
+ goto out;
+
+ sbinfo = inode->i_private;
+ sb = sbinfo->si_sb;
+ si_noflush_read_lock(sb);
+ if (l <= au_sbend(sb)) {
+ xf = au_sbr(sb, (aufs_bindex_t)l)->br_xino.xi_file;
+ err = dbgaufs_xi_open(xf, file, /*do_fcnt*/1);
+ } else
+ err = -ENOENT;
+ si_read_unlock(sb);
+
+ out:
+ return err;
+}
+
+static const struct file_operations dbgaufs_xino_fop = {
+ .owner = THIS_MODULE,
+ .open = dbgaufs_xino_open,
+ .release = dbgaufs_xi_release,
+ .read = dbgaufs_xi_read
+};
+
+void dbgaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex)
+{
+ aufs_bindex_t bend;
+ struct au_branch *br;
+ struct au_xino_file *xi;
+
+ if (!au_sbi(sb)->si_dbgaufs)
+ return;
+
+ bend = au_sbend(sb);
+ for (; bindex <= bend; bindex++) {
+ br = au_sbr(sb, bindex);
+ xi = &br->br_xino;
+ if (xi->xi_dbgaufs) {
+ debugfs_remove(xi->xi_dbgaufs);
+ xi->xi_dbgaufs = NULL;
+ }
+ }
+}
+
+void dbgaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex)
+{
+ struct au_sbinfo *sbinfo;
+ struct dentry *parent;
+ struct au_branch *br;
+ struct au_xino_file *xi;
+ aufs_bindex_t bend;
+ char name[sizeof(DbgaufsXi_PREFIX) + 5]; /* "xi" bindex NULL */
+
+ sbinfo = au_sbi(sb);
+ parent = sbinfo->si_dbgaufs;
+ if (!parent)
+ return;
+
+ bend = au_sbend(sb);
+ for (; bindex <= bend; bindex++) {
+ snprintf(name, sizeof(name), DbgaufsXi_PREFIX "%d", bindex);
+ br = au_sbr(sb, bindex);
+ xi = &br->br_xino;
+ AuDebugOn(xi->xi_dbgaufs);
+ xi->xi_dbgaufs = debugfs_create_file(name, dbgaufs_mode, parent,
+ sbinfo, &dbgaufs_xino_fop);
+ /* ignore an error */
+ if (unlikely(!xi->xi_dbgaufs))
+ AuWarn1("failed %s under debugfs\n", name);
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef CONFIG_AUFS_EXPORT
+static int dbgaufs_xigen_open(struct inode *inode, struct file *file)
+{
+ int err;
+ struct au_sbinfo *sbinfo;
+ struct super_block *sb;
+
+ sbinfo = inode->i_private;
+ sb = sbinfo->si_sb;
+ si_noflush_read_lock(sb);
+ err = dbgaufs_xi_open(sbinfo->si_xigen, file, /*do_fcnt*/0);
+ si_read_unlock(sb);
+ return err;
+}
+
+static const struct file_operations dbgaufs_xigen_fop = {
+ .owner = THIS_MODULE,
+ .open = dbgaufs_xigen_open,
+ .release = dbgaufs_xi_release,
+ .read = dbgaufs_xi_read
+};
+
+static int dbgaufs_xigen_init(struct au_sbinfo *sbinfo)
+{
+ int err;
+
+ /*
+ * This function is a dynamic '__init' fucntion actually,
+ * so the tiny check for si_rwsem is unnecessary.
+ */
+ /* AuRwMustWriteLock(&sbinfo->si_rwsem); */
+
+ err = -EIO;
+ sbinfo->si_dbgaufs_xigen = debugfs_create_file
+ ("xigen", dbgaufs_mode, sbinfo->si_dbgaufs, sbinfo,
+ &dbgaufs_xigen_fop);
+ if (sbinfo->si_dbgaufs_xigen)
+ err = 0;
+
+ return err;
+}
+#else
+static int dbgaufs_xigen_init(struct au_sbinfo *sbinfo)
+{
+ return 0;
+}
+#endif /* CONFIG_AUFS_EXPORT */
+
+/* ---------------------------------------------------------------------- */
+
+void dbgaufs_si_fin(struct au_sbinfo *sbinfo)
+{
+ /*
+ * This function is a dynamic '__init' fucntion actually,
+ * so the tiny check for si_rwsem is unnecessary.
+ */
+ /* AuRwMustWriteLock(&sbinfo->si_rwsem); */
+
+ debugfs_remove_recursive(sbinfo->si_dbgaufs);
+ sbinfo->si_dbgaufs = NULL;
+ kobject_put(&sbinfo->si_kobj);
+}
+
+int dbgaufs_si_init(struct au_sbinfo *sbinfo)
+{
+ int err;
+ char name[SysaufsSiNameLen];
+
+ /*
+ * This function is a dynamic '__init' fucntion actually,
+ * so the tiny check for si_rwsem is unnecessary.
+ */
+ /* AuRwMustWriteLock(&sbinfo->si_rwsem); */
+
+ err = -ENOENT;
+ if (!dbgaufs) {
+ AuErr1("/debug/aufs is uninitialized\n");
+ goto out;
+ }
+
+ err = -EIO;
+ sysaufs_name(sbinfo, name);
+ sbinfo->si_dbgaufs = debugfs_create_dir(name, dbgaufs);
+ if (unlikely(!sbinfo->si_dbgaufs))
+ goto out;
+ kobject_get(&sbinfo->si_kobj);
+
+ sbinfo->si_dbgaufs_xib = debugfs_create_file
+ ("xib", dbgaufs_mode, sbinfo->si_dbgaufs, sbinfo,
+ &dbgaufs_xib_fop);
+ if (unlikely(!sbinfo->si_dbgaufs_xib))
+ goto out_dir;
+
+ err = dbgaufs_xigen_init(sbinfo);
+ if (!err)
+ goto out; /* success */
+
+ out_dir:
+ dbgaufs_si_fin(sbinfo);
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void dbgaufs_fin(void)
+{
+ debugfs_remove(dbgaufs);
+}
+
+int __init dbgaufs_init(void)
+{
+ int err;
+
+ err = -EIO;
+ dbgaufs = debugfs_create_dir(AUFS_NAME, NULL);
+ if (dbgaufs)
+ err = 0;
+ return err;
+}
diff --git a/ubuntu/aufs/dbgaufs.h b/ubuntu/aufs/dbgaufs.h
new file mode 100644
index 00000000000..ae41480d310
--- /dev/null
+++ b/ubuntu/aufs/dbgaufs.h
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * debugfs interface
+ */
+
+#ifndef __DBGAUFS_H__
+#define __DBGAUFS_H__
+
+#ifdef __KERNEL__
+
+#include <linux/init.h>
+#include <linux/aufs_type.h>
+
+struct super_block;
+struct au_sbinfo;
+
+#ifdef CONFIG_DEBUG_FS
+/* dbgaufs.c */
+void dbgaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex);
+void dbgaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex);
+void dbgaufs_si_fin(struct au_sbinfo *sbinfo);
+int dbgaufs_si_init(struct au_sbinfo *sbinfo);
+void dbgaufs_fin(void);
+int __init dbgaufs_init(void);
+#else
+AuStubVoid(dbgaufs_brs_del, struct super_block *sb, aufs_bindex_t bindex)
+AuStubVoid(dbgaufs_brs_add, struct super_block *sb, aufs_bindex_t bindex)
+AuStubVoid(dbgaufs_si_fin, struct au_sbinfo *sbinfo)
+AuStubInt0(dbgaufs_si_init, struct au_sbinfo *sbinfo)
+AuStubVoid(dbgaufs_fin, void)
+AuStubInt0(__init dbgaufs_init, void)
+#endif /* CONFIG_DEBUG_FS */
+
+#endif /* __KERNEL__ */
+#endif /* __DBGAUFS_H__ */
diff --git a/ubuntu/aufs/dcsub.c b/ubuntu/aufs/dcsub.c
new file mode 100644
index 00000000000..8cb0c5e6481
--- /dev/null
+++ b/ubuntu/aufs/dcsub.c
@@ -0,0 +1,200 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * sub-routines for dentry cache
+ */
+
+#include "aufs.h"
+
+static void au_dpage_free(struct au_dpage *dpage)
+{
+ int i;
+ struct dentry **p;
+
+ p = dpage->dentries;
+ for (i = 0; i < dpage->ndentry; i++)
+ dput(*p++);
+ free_page((unsigned long)dpage->dentries);
+}
+
+int au_dpages_init(struct au_dcsub_pages *dpages, gfp_t gfp)
+{
+ int err;
+ void *p;
+
+ err = -ENOMEM;
+ dpages->dpages = kmalloc(sizeof(*dpages->dpages), gfp);
+ if (unlikely(!dpages->dpages))
+ goto out;
+
+ p = (void *)__get_free_page(gfp);
+ if (unlikely(!p))
+ goto out_dpages;
+
+ dpages->dpages[0].ndentry = 0;
+ dpages->dpages[0].dentries = p;
+ dpages->ndpage = 1;
+ return 0; /* success */
+
+ out_dpages:
+ kfree(dpages->dpages);
+ out:
+ return err;
+}
+
+void au_dpages_free(struct au_dcsub_pages *dpages)
+{
+ int i;
+ struct au_dpage *p;
+
+ p = dpages->dpages;
+ for (i = 0; i < dpages->ndpage; i++)
+ au_dpage_free(p++);
+ kfree(dpages->dpages);
+}
+
+static int au_dpages_append(struct au_dcsub_pages *dpages,
+ struct dentry *dentry, gfp_t gfp)
+{
+ int err, sz;
+ struct au_dpage *dpage;
+ void *p;
+
+ dpage = dpages->dpages + dpages->ndpage - 1;
+ sz = PAGE_SIZE / sizeof(dentry);
+ if (unlikely(dpage->ndentry >= sz)) {
+ AuLabel(new dpage);
+ err = -ENOMEM;
+ sz = dpages->ndpage * sizeof(*dpages->dpages);
+ p = au_kzrealloc(dpages->dpages, sz,
+ sz + sizeof(*dpages->dpages), gfp);
+ if (unlikely(!p))
+ goto out;
+
+ dpages->dpages = p;
+ dpage = dpages->dpages + dpages->ndpage;
+ p = (void *)__get_free_page(gfp);
+ if (unlikely(!p))
+ goto out;
+
+ dpage->ndentry = 0;
+ dpage->dentries = p;
+ dpages->ndpage++;
+ }
+
+ dpage->dentries[dpage->ndentry++] = dget(dentry);
+ return 0; /* success */
+
+ out:
+ return err;
+}
+
+int au_dcsub_pages(struct au_dcsub_pages *dpages, struct dentry *root,
+ au_dpages_test test, void *arg)
+{
+ int err;
+ struct dentry *this_parent = root;
+ struct list_head *next;
+ struct super_block *sb = root->d_sb;
+
+ err = 0;
+ spin_lock(&dcache_lock);
+ repeat:
+ next = this_parent->d_subdirs.next;
+ resume:
+ if (this_parent->d_sb == sb
+ && !IS_ROOT(this_parent)
+ && atomic_read(&this_parent->d_count)
+ && this_parent->d_inode
+ && (!test || test(this_parent, arg))) {
+ err = au_dpages_append(dpages, this_parent, GFP_ATOMIC);
+ if (unlikely(err))
+ goto out;
+ }
+
+ while (next != &this_parent->d_subdirs) {
+ struct list_head *tmp = next;
+ struct dentry *dentry = list_entry(tmp, struct dentry,
+ d_u.d_child);
+ next = tmp->next;
+ if (/*d_unhashed(dentry) || */!dentry->d_inode)
+ continue;
+ if (!list_empty(&dentry->d_subdirs)) {
+ this_parent = dentry;
+ goto repeat;
+ }
+ if (dentry->d_sb == sb
+ && atomic_read(&dentry->d_count)
+ && (!test || test(dentry, arg))) {
+ err = au_dpages_append(dpages, dentry, GFP_ATOMIC);
+ if (unlikely(err))
+ goto out;
+ }
+ }
+
+ if (this_parent != root) {
+ next = this_parent->d_u.d_child.next;
+ this_parent = this_parent->d_parent; /* dcache_lock is locked */
+ goto resume;
+ }
+ out:
+ spin_unlock(&dcache_lock);
+ return err;
+}
+
+int au_dcsub_pages_rev(struct au_dcsub_pages *dpages, struct dentry *dentry,
+ int do_include, au_dpages_test test, void *arg)
+{
+ int err;
+
+ err = 0;
+ spin_lock(&dcache_lock);
+ if (do_include && (!test || test(dentry, arg))) {
+ err = au_dpages_append(dpages, dentry, GFP_ATOMIC);
+ if (unlikely(err))
+ goto out;
+ }
+ while (!IS_ROOT(dentry)) {
+ dentry = dentry->d_parent; /* dcache_lock is locked */
+ if (!test || test(dentry, arg)) {
+ err = au_dpages_append(dpages, dentry, GFP_ATOMIC);
+ if (unlikely(err))
+ break;
+ }
+ }
+
+ out:
+ spin_unlock(&dcache_lock);
+
+ return err;
+}
+
+int au_test_subdir(struct dentry *d1, struct dentry *d2)
+{
+ struct path path[2] = {
+ {
+ .dentry = d1
+ },
+ {
+ .dentry = d2
+ }
+ };
+
+ return path_is_under(path + 0, path + 1);
+}
diff --git a/ubuntu/aufs/dcsub.h b/ubuntu/aufs/dcsub.h
new file mode 100644
index 00000000000..0c87168f570
--- /dev/null
+++ b/ubuntu/aufs/dcsub.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * sub-routines for dentry cache
+ */
+
+#ifndef __AUFS_DCSUB_H__
+#define __AUFS_DCSUB_H__
+
+#ifdef __KERNEL__
+
+#include <linux/types.h>
+
+struct dentry;
+
+struct au_dpage {
+ int ndentry;
+ struct dentry **dentries;
+};
+
+struct au_dcsub_pages {
+ int ndpage;
+ struct au_dpage *dpages;
+};
+
+/* ---------------------------------------------------------------------- */
+
+int au_dpages_init(struct au_dcsub_pages *dpages, gfp_t gfp);
+void au_dpages_free(struct au_dcsub_pages *dpages);
+typedef int (*au_dpages_test)(struct dentry *dentry, void *arg);
+int au_dcsub_pages(struct au_dcsub_pages *dpages, struct dentry *root,
+ au_dpages_test test, void *arg);
+int au_dcsub_pages_rev(struct au_dcsub_pages *dpages, struct dentry *dentry,
+ int do_include, au_dpages_test test, void *arg);
+int au_test_subdir(struct dentry *d1, struct dentry *d2);
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_DCSUB_H__ */
diff --git a/ubuntu/aufs/debug.c b/ubuntu/aufs/debug.c
new file mode 100644
index 00000000000..abe286a6a35
--- /dev/null
+++ b/ubuntu/aufs/debug.c
@@ -0,0 +1,425 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * debug print functions
+ */
+
+#include <linux/module.h>
+#include <linux/vt_kern.h>
+#include "aufs.h"
+
+int aufs_debug;
+MODULE_PARM_DESC(debug, "debug print");
+module_param_named(debug, aufs_debug, int, S_IRUGO | S_IWUSR | S_IWGRP);
+
+char *au_plevel = KERN_DEBUG;
+#define dpri(fmt, ...) do { \
+ if (au_debug_test()) \
+ printk("%s" fmt, au_plevel, ##__VA_ARGS__); \
+} while (0)
+
+/* ---------------------------------------------------------------------- */
+
+void au_dpri_whlist(struct au_nhash *whlist)
+{
+ unsigned long ul, n;
+ struct hlist_head *head;
+ struct au_vdir_wh *tpos;
+ struct hlist_node *pos;
+
+ n = whlist->nh_num;
+ head = whlist->nh_head;
+ for (ul = 0; ul < n; ul++) {
+ hlist_for_each_entry(tpos, pos, head, wh_hash)
+ dpri("b%d, %.*s, %d\n",
+ tpos->wh_bindex,
+ tpos->wh_str.len, tpos->wh_str.name,
+ tpos->wh_str.len);
+ head++;
+ }
+}
+
+void au_dpri_vdir(struct au_vdir *vdir)
+{
+ unsigned long ul;
+ union au_vdir_deblk_p p;
+ unsigned char *o;
+
+ if (!vdir || IS_ERR(vdir)) {
+ dpri("err %ld\n", PTR_ERR(vdir));
+ return;
+ }
+
+ dpri("deblk %u, nblk %lu, deblk %p, last{%lu, %p}, ver %lu\n",
+ vdir->vd_deblk_sz, vdir->vd_nblk, vdir->vd_deblk,
+ vdir->vd_last.ul, vdir->vd_last.p.deblk, vdir->vd_version);
+ for (ul = 0; ul < vdir->vd_nblk; ul++) {
+ p.deblk = vdir->vd_deblk[ul];
+ o = p.deblk;
+ dpri("[%lu]: %p\n", ul, o);
+ }
+}
+
+static int do_pri_inode(aufs_bindex_t bindex, struct inode *inode,
+ struct dentry *wh)
+{
+ char *n = NULL;
+ int l = 0;
+
+ if (!inode || IS_ERR(inode)) {
+ dpri("i%d: err %ld\n", bindex, PTR_ERR(inode));
+ return -1;
+ }
+
+ /* the type of i_blocks depends upon CONFIG_LSF */
+ BUILD_BUG_ON(sizeof(inode->i_blocks) != sizeof(unsigned long)
+ && sizeof(inode->i_blocks) != sizeof(u64));
+ if (wh) {
+ n = (void *)wh->d_name.name;
+ l = wh->d_name.len;
+ }
+
+ dpri("i%d: i%lu, %s, cnt %d, nl %u, 0%o, sz %llu, blk %llu,"
+ " ct %lld, np %lu, st 0x%lx, f 0x%x, g %x%s%.*s\n",
+ bindex,
+ inode->i_ino, inode->i_sb ? au_sbtype(inode->i_sb) : "??",
+ atomic_read(&inode->i_count), inode->i_nlink, inode->i_mode,
+ i_size_read(inode), (unsigned long long)inode->i_blocks,
+ (long long)timespec_to_ns(&inode->i_ctime) & 0x0ffff,
+ inode->i_mapping ? inode->i_mapping->nrpages : 0,
+ inode->i_state, inode->i_flags, inode->i_generation,
+ l ? ", wh " : "", l, n);
+ return 0;
+}
+
+void au_dpri_inode(struct inode *inode)
+{
+ struct au_iinfo *iinfo;
+ aufs_bindex_t bindex;
+ int err;
+
+ err = do_pri_inode(-1, inode, NULL);
+ if (err || !au_test_aufs(inode->i_sb))
+ return;
+
+ iinfo = au_ii(inode);
+ if (!iinfo)
+ return;
+ dpri("i-1: bstart %d, bend %d, gen %d\n",
+ iinfo->ii_bstart, iinfo->ii_bend, au_iigen(inode));
+ if (iinfo->ii_bstart < 0)
+ return;
+ for (bindex = iinfo->ii_bstart; bindex <= iinfo->ii_bend; bindex++)
+ do_pri_inode(bindex, iinfo->ii_hinode[0 + bindex].hi_inode,
+ iinfo->ii_hinode[0 + bindex].hi_whdentry);
+}
+
+static int do_pri_dentry(aufs_bindex_t bindex, struct dentry *dentry)
+{
+ struct dentry *wh = NULL;
+
+ if (!dentry || IS_ERR(dentry)) {
+ dpri("d%d: err %ld\n", bindex, PTR_ERR(dentry));
+ return -1;
+ }
+ /* do not call dget_parent() here */
+ dpri("d%d: %.*s?/%.*s, %s, cnt %d, flags 0x%x\n",
+ bindex,
+ AuDLNPair(dentry->d_parent), AuDLNPair(dentry),
+ dentry->d_sb ? au_sbtype(dentry->d_sb) : "??",
+ atomic_read(&dentry->d_count), dentry->d_flags);
+ if (bindex >= 0 && dentry->d_inode && au_test_aufs(dentry->d_sb)) {
+ struct au_iinfo *iinfo = au_ii(dentry->d_inode);
+ if (iinfo)
+ wh = iinfo->ii_hinode[0 + bindex].hi_whdentry;
+ }
+ do_pri_inode(bindex, dentry->d_inode, wh);
+ return 0;
+}
+
+void au_dpri_dentry(struct dentry *dentry)
+{
+ struct au_dinfo *dinfo;
+ aufs_bindex_t bindex;
+ int err;
+ struct au_hdentry *hdp;
+
+ err = do_pri_dentry(-1, dentry);
+ if (err || !au_test_aufs(dentry->d_sb))
+ return;
+
+ dinfo = au_di(dentry);
+ if (!dinfo)
+ return;
+ dpri("d-1: bstart %d, bend %d, bwh %d, bdiropq %d, gen %d\n",
+ dinfo->di_bstart, dinfo->di_bend,
+ dinfo->di_bwh, dinfo->di_bdiropq, au_digen(dentry));
+ if (dinfo->di_bstart < 0)
+ return;
+ hdp = dinfo->di_hdentry;
+ for (bindex = dinfo->di_bstart; bindex <= dinfo->di_bend; bindex++)
+ do_pri_dentry(bindex, hdp[0 + bindex].hd_dentry);
+}
+
+static int do_pri_file(aufs_bindex_t bindex, struct file *file)
+{
+ char a[32];
+
+ if (!file || IS_ERR(file)) {
+ dpri("f%d: err %ld\n", bindex, PTR_ERR(file));
+ return -1;
+ }
+ a[0] = 0;
+ if (bindex < 0
+ && file->f_dentry
+ && au_test_aufs(file->f_dentry->d_sb)
+ && au_fi(file))
+ snprintf(a, sizeof(a), ", mmapped %d",
+ !!au_fi(file)->fi_hvmop);
+ dpri("f%d: mode 0x%x, flags 0%o, cnt %ld, pos %llu%s\n",
+ bindex, file->f_mode, file->f_flags, (long)file_count(file),
+ file->f_pos, a);
+ if (file->f_dentry)
+ do_pri_dentry(bindex, file->f_dentry);
+ return 0;
+}
+
+void au_dpri_file(struct file *file)
+{
+ struct au_finfo *finfo;
+ struct au_fidir *fidir;
+ struct au_hfile *hfile;
+ aufs_bindex_t bindex;
+ int err;
+
+ err = do_pri_file(-1, file);
+ if (err || !file->f_dentry || !au_test_aufs(file->f_dentry->d_sb))
+ return;
+
+ finfo = au_fi(file);
+ if (!finfo)
+ return;
+ if (finfo->fi_btop < 0)
+ return;
+ fidir = finfo->fi_hdir;
+ if (!fidir)
+ do_pri_file(finfo->fi_btop, finfo->fi_htop.hf_file);
+ else
+ for (bindex = finfo->fi_btop; bindex <= fidir->fd_bbot;
+ bindex++) {
+ hfile = fidir->fd_hfile + bindex;
+ do_pri_file(bindex, hfile ? hfile->hf_file : NULL);
+ }
+}
+
+static int do_pri_br(aufs_bindex_t bindex, struct au_branch *br)
+{
+ struct vfsmount *mnt;
+ struct super_block *sb;
+
+ if (!br || IS_ERR(br))
+ goto out;
+ mnt = br->br_mnt;
+ if (!mnt || IS_ERR(mnt))
+ goto out;
+ sb = mnt->mnt_sb;
+ if (!sb || IS_ERR(sb))
+ goto out;
+
+ dpri("s%d: {perm 0x%x, cnt %d, wbr %p}, "
+ "%s, dev 0x%02x%02x, flags 0x%lx, cnt %d, active %d, "
+ "xino %d\n",
+ bindex, br->br_perm, atomic_read(&br->br_count), br->br_wbr,
+ au_sbtype(sb), MAJOR(sb->s_dev), MINOR(sb->s_dev),
+ sb->s_flags, sb->s_count,
+ atomic_read(&sb->s_active), !!br->br_xino.xi_file);
+ return 0;
+
+ out:
+ dpri("s%d: err %ld\n", bindex, PTR_ERR(br));
+ return -1;
+}
+
+void au_dpri_sb(struct super_block *sb)
+{
+ struct au_sbinfo *sbinfo;
+ aufs_bindex_t bindex;
+ int err;
+ /* to reuduce stack size */
+ struct {
+ struct vfsmount mnt;
+ struct au_branch fake;
+ } *a;
+
+ /* this function can be called from magic sysrq */
+ a = kzalloc(sizeof(*a), GFP_ATOMIC);
+ if (unlikely(!a)) {
+ dpri("no memory\n");
+ return;
+ }
+
+ a->mnt.mnt_sb = sb;
+ a->fake.br_perm = 0;
+ a->fake.br_mnt = &a->mnt;
+ a->fake.br_xino.xi_file = NULL;
+ atomic_set(&a->fake.br_count, 0);
+ smp_mb(); /* atomic_set */
+ err = do_pri_br(-1, &a->fake);
+ kfree(a);
+ dpri("dev 0x%x\n", sb->s_dev);
+ if (err || !au_test_aufs(sb))
+ return;
+
+ sbinfo = au_sbi(sb);
+ if (!sbinfo)
+ return;
+ dpri("nw %d, gen %u, kobj %d\n",
+ atomic_read(&sbinfo->si_nowait.nw_len), sbinfo->si_generation,
+ atomic_read(&sbinfo->si_kobj.kref.refcount));
+ for (bindex = 0; bindex <= sbinfo->si_bend; bindex++)
+ do_pri_br(bindex, sbinfo->si_branch[0 + bindex]);
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_dbg_sleep_jiffy(int jiffy)
+{
+ while (jiffy)
+ jiffy = schedule_timeout_uninterruptible(jiffy);
+}
+
+void au_dbg_iattr(struct iattr *ia)
+{
+#define AuBit(name) if (ia->ia_valid & ATTR_ ## name) \
+ dpri(#name "\n")
+ AuBit(MODE);
+ AuBit(UID);
+ AuBit(GID);
+ AuBit(SIZE);
+ AuBit(ATIME);
+ AuBit(MTIME);
+ AuBit(CTIME);
+ AuBit(ATIME_SET);
+ AuBit(MTIME_SET);
+ AuBit(FORCE);
+ AuBit(ATTR_FLAG);
+ AuBit(KILL_SUID);
+ AuBit(KILL_SGID);
+ AuBit(FILE);
+ AuBit(KILL_PRIV);
+ AuBit(OPEN);
+ AuBit(TIMES_SET);
+#undef AuBit
+ dpri("ia_file %p\n", ia->ia_file);
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_dbg_verify_dir_parent(struct dentry *dentry, unsigned int sigen)
+{
+ struct dentry *parent;
+
+ parent = dget_parent(dentry);
+ AuDebugOn(!S_ISDIR(dentry->d_inode->i_mode)
+ || IS_ROOT(dentry)
+ || au_digen(parent) != sigen);
+ dput(parent);
+}
+
+void au_dbg_verify_nondir_parent(struct dentry *dentry, unsigned int sigen)
+{
+ struct dentry *parent;
+
+ parent = dget_parent(dentry);
+ AuDebugOn(S_ISDIR(dentry->d_inode->i_mode)
+ || au_digen(parent) != sigen);
+ dput(parent);
+}
+
+void au_dbg_verify_gen(struct dentry *parent, unsigned int sigen)
+{
+ int err, i, j;
+ struct au_dcsub_pages dpages;
+ struct au_dpage *dpage;
+ struct dentry **dentries;
+
+ err = au_dpages_init(&dpages, GFP_NOFS);
+ AuDebugOn(err);
+ err = au_dcsub_pages_rev(&dpages, parent, /*do_include*/1, NULL, NULL);
+ AuDebugOn(err);
+ for (i = dpages.ndpage - 1; !err && i >= 0; i--) {
+ dpage = dpages.dpages + i;
+ dentries = dpage->dentries;
+ for (j = dpage->ndentry - 1; !err && j >= 0; j--)
+ AuDebugOn(au_digen(dentries[j]) != sigen);
+ }
+ au_dpages_free(&dpages);
+}
+
+void au_dbg_verify_kthread(void)
+{
+ if (au_test_wkq(current)) {
+ au_dbg_blocked();
+ BUG();
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_debug_sbinfo_init(struct au_sbinfo *sbinfo __maybe_unused)
+{
+#ifdef AuForceNoPlink
+ au_opt_clr(sbinfo->si_mntflags, PLINK);
+#endif
+#ifdef AuForceNoXino
+ au_opt_clr(sbinfo->si_mntflags, XINO);
+#endif
+#ifdef AuForceNoRefrof
+ au_opt_clr(sbinfo->si_mntflags, REFROF);
+#endif
+#ifdef AuForceHnotify
+ au_opt_set_udba(sbinfo->si_mntflags, UDBA_HNOTIFY);
+#endif
+#ifdef AuForceRd0
+ sbinfo->si_rdblk = 0;
+ sbinfo->si_rdhash = 0;
+#endif
+}
+
+int __init au_debug_init(void)
+{
+ aufs_bindex_t bindex;
+ struct au_vdir_destr destr;
+
+ bindex = -1;
+ AuDebugOn(bindex >= 0);
+
+ destr.len = -1;
+ AuDebugOn(destr.len < NAME_MAX);
+
+#ifdef CONFIG_4KSTACKS
+ pr_warning("CONFIG_4KSTACKS is defined.\n");
+#endif
+
+#ifdef AuForceNoBrs
+ sysaufs_brs = 0;
+#endif
+
+ return 0;
+}
diff --git a/ubuntu/aufs/debug.h b/ubuntu/aufs/debug.h
new file mode 100644
index 00000000000..8f5f208f565
--- /dev/null
+++ b/ubuntu/aufs/debug.h
@@ -0,0 +1,243 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * debug print functions
+ */
+
+#ifndef __AUFS_DEBUG_H__
+#define __AUFS_DEBUG_H__
+
+#ifdef __KERNEL__
+
+#include <asm/system.h>
+#include <linux/bug.h>
+/* #include <linux/err.h> */
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/kallsyms.h>
+/* #include <linux/kernel.h> */
+#include <linux/delay.h>
+/* #include <linux/kd.h> */
+/* #include <linux/vt_kern.h> */
+#include <linux/sysrq.h>
+#include <linux/aufs_type.h>
+
+#include <asm/system.h>
+
+#ifdef CONFIG_AUFS_DEBUG
+#define AuDebugOn(a) BUG_ON(a)
+
+/* module parameter */
+extern int aufs_debug;
+static inline void au_debug(int n)
+{
+ aufs_debug = n;
+ smp_mb();
+}
+
+static inline int au_debug_test(void)
+{
+ return aufs_debug;
+}
+#else
+#define AuDebugOn(a) do {} while (0)
+AuStubVoid(au_debug, int n)
+AuStubInt0(au_debug_test, void)
+#endif /* CONFIG_AUFS_DEBUG */
+
+/* ---------------------------------------------------------------------- */
+
+/* debug print */
+
+#define AuDbg(fmt, ...) do { \
+ if (au_debug_test()) \
+ pr_debug("DEBUG: " fmt, ##__VA_ARGS__); \
+} while (0)
+#define AuLabel(l) AuDbg(#l "\n")
+#define AuIOErr(fmt, ...) pr_err("I/O Error, " fmt, ##__VA_ARGS__)
+#define AuWarn1(fmt, ...) do { \
+ static unsigned char _c; \
+ if (!_c++) \
+ pr_warning(fmt, ##__VA_ARGS__); \
+} while (0)
+
+#define AuErr1(fmt, ...) do { \
+ static unsigned char _c; \
+ if (!_c++) \
+ pr_err(fmt, ##__VA_ARGS__); \
+} while (0)
+
+#define AuIOErr1(fmt, ...) do { \
+ static unsigned char _c; \
+ if (!_c++) \
+ AuIOErr(fmt, ##__VA_ARGS__); \
+} while (0)
+
+#define AuUnsupportMsg "This operation is not supported." \
+ " Please report this application to aufs-users ML."
+#define AuUnsupport(fmt, ...) do { \
+ pr_err(AuUnsupportMsg "\n" fmt, ##__VA_ARGS__); \
+ dump_stack(); \
+} while (0)
+
+#define AuTraceErr(e) do { \
+ if (unlikely((e) < 0)) \
+ AuDbg("err %d\n", (int)(e)); \
+} while (0)
+
+#define AuTraceErrPtr(p) do { \
+ if (IS_ERR(p)) \
+ AuDbg("err %ld\n", PTR_ERR(p)); \
+} while (0)
+
+/* dirty macros for debug print, use with "%.*s" and caution */
+#define AuLNPair(qstr) (qstr)->len, (qstr)->name
+#define AuDLNPair(d) AuLNPair(&(d)->d_name)
+
+/* ---------------------------------------------------------------------- */
+
+struct au_sbinfo;
+struct au_finfo;
+struct dentry;
+#ifdef CONFIG_AUFS_DEBUG
+extern char *au_plevel;
+struct au_nhash;
+void au_dpri_whlist(struct au_nhash *whlist);
+struct au_vdir;
+void au_dpri_vdir(struct au_vdir *vdir);
+struct inode;
+void au_dpri_inode(struct inode *inode);
+void au_dpri_dentry(struct dentry *dentry);
+struct file;
+void au_dpri_file(struct file *filp);
+struct super_block;
+void au_dpri_sb(struct super_block *sb);
+
+void au_dbg_sleep_jiffy(int jiffy);
+struct iattr;
+void au_dbg_iattr(struct iattr *ia);
+
+void au_dbg_verify_dir_parent(struct dentry *dentry, unsigned int sigen);
+void au_dbg_verify_nondir_parent(struct dentry *dentry, unsigned int sigen);
+void au_dbg_verify_gen(struct dentry *parent, unsigned int sigen);
+void au_dbg_verify_kthread(void);
+
+int __init au_debug_init(void);
+void au_debug_sbinfo_init(struct au_sbinfo *sbinfo);
+#define AuDbgWhlist(w) do { \
+ AuDbg(#w "\n"); \
+ au_dpri_whlist(w); \
+} while (0)
+
+#define AuDbgVdir(v) do { \
+ AuDbg(#v "\n"); \
+ au_dpri_vdir(v); \
+} while (0)
+
+#define AuDbgInode(i) do { \
+ AuDbg(#i "\n"); \
+ au_dpri_inode(i); \
+} while (0)
+
+#define AuDbgDentry(d) do { \
+ AuDbg(#d "\n"); \
+ au_dpri_dentry(d); \
+} while (0)
+
+#define AuDbgFile(f) do { \
+ AuDbg(#f "\n"); \
+ au_dpri_file(f); \
+} while (0)
+
+#define AuDbgSb(sb) do { \
+ AuDbg(#sb "\n"); \
+ au_dpri_sb(sb); \
+} while (0)
+
+#define AuDbgSleep(sec) do { \
+ AuDbg("sleep %d sec\n", sec); \
+ ssleep(sec); \
+} while (0)
+
+#define AuDbgSleepJiffy(jiffy) do { \
+ AuDbg("sleep %d jiffies\n", jiffy); \
+ au_dbg_sleep_jiffy(jiffy); \
+} while (0)
+
+#define AuDbgIAttr(ia) do { \
+ AuDbg("ia_valid 0x%x\n", (ia)->ia_valid); \
+ au_dbg_iattr(ia); \
+} while (0)
+
+#define AuDbgSym(addr) do { \
+ char sym[KSYM_SYMBOL_LEN]; \
+ sprint_symbol(sym, (unsigned long)addr); \
+ AuDbg("%s\n", sym); \
+} while (0)
+
+#define AuInfoSym(addr) do { \
+ char sym[KSYM_SYMBOL_LEN]; \
+ sprint_symbol(sym, (unsigned long)addr); \
+ AuInfo("%s\n", sym); \
+} while (0)
+#else
+AuStubVoid(au_dbg_verify_dir_parent, struct dentry *dentry, unsigned int sigen)
+AuStubVoid(au_dbg_verify_nondir_parent, struct dentry *dentry,
+ unsigned int sigen)
+AuStubVoid(au_dbg_verify_gen, struct dentry *parent, unsigned int sigen)
+AuStubVoid(au_dbg_verify_kthread, void)
+AuStubInt0(__init au_debug_init, void)
+AuStubVoid(au_debug_sbinfo_init, struct au_sbinfo *sbinfo)
+
+#define AuDbgWhlist(w) do {} while (0)
+#define AuDbgVdir(v) do {} while (0)
+#define AuDbgInode(i) do {} while (0)
+#define AuDbgDentry(d) do {} while (0)
+#define AuDbgFile(f) do {} while (0)
+#define AuDbgSb(sb) do {} while (0)
+#define AuDbgSleep(sec) do {} while (0)
+#define AuDbgSleepJiffy(jiffy) do {} while (0)
+#define AuDbgIAttr(ia) do {} while (0)
+#define AuDbgSym(addr) do {} while (0)
+#define AuInfoSym(addr) do {} while (0)
+#endif /* CONFIG_AUFS_DEBUG */
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef CONFIG_AUFS_MAGIC_SYSRQ
+int __init au_sysrq_init(void);
+void au_sysrq_fin(void);
+
+#ifdef CONFIG_HW_CONSOLE
+#define au_dbg_blocked() do { \
+ WARN_ON(1); \
+ handle_sysrq('w', vc_cons[fg_console].d->vc_tty); \
+} while (0)
+#else
+AuStubVoid(au_dbg_blocked, void)
+#endif
+
+#else
+AuStubInt0(__init au_sysrq_init, void)
+AuStubVoid(au_sysrq_fin, void)
+AuStubVoid(au_dbg_blocked, void)
+#endif /* CONFIG_AUFS_MAGIC_SYSRQ */
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_DEBUG_H__ */
diff --git a/ubuntu/aufs/dentry.c b/ubuntu/aufs/dentry.c
new file mode 100644
index 00000000000..632320f86a3
--- /dev/null
+++ b/ubuntu/aufs/dentry.c
@@ -0,0 +1,850 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * lookup and dentry operations
+ */
+
+#include <linux/namei.h>
+#include "aufs.h"
+
+static void au_h_nd(struct nameidata *h_nd, struct nameidata *nd)
+{
+ if (nd) {
+ *h_nd = *nd;
+
+ /*
+ * gave up supporting LOOKUP_CREATE/OPEN for lower fs,
+ * due to whiteout and branch permission.
+ */
+ h_nd->flags &= ~(/*LOOKUP_PARENT |*/ LOOKUP_OPEN | LOOKUP_CREATE
+ | LOOKUP_FOLLOW);
+ /* unnecessary? */
+ h_nd->intent.open.file = NULL;
+ } else
+ memset(h_nd, 0, sizeof(*h_nd));
+}
+
+struct au_lkup_one_args {
+ struct dentry **errp;
+ struct qstr *name;
+ struct dentry *h_parent;
+ struct au_branch *br;
+ struct nameidata *nd;
+};
+
+struct dentry *au_lkup_one(struct qstr *name, struct dentry *h_parent,
+ struct au_branch *br, struct nameidata *nd)
+{
+ struct dentry *h_dentry;
+ int err;
+ struct nameidata h_nd;
+
+ if (au_test_fs_null_nd(h_parent->d_sb))
+ return vfsub_lookup_one_len(name->name, h_parent, name->len);
+
+ au_h_nd(&h_nd, nd);
+ h_nd.path.dentry = h_parent;
+ h_nd.path.mnt = br->br_mnt;
+
+ err = __lookup_one_len(name->name, &h_nd.last, NULL, name->len);
+ h_dentry = ERR_PTR(err);
+ if (!err) {
+ path_get(&h_nd.path);
+ h_dentry = vfsub_lookup_hash(&h_nd);
+ path_put(&h_nd.path);
+ }
+
+ AuTraceErrPtr(h_dentry);
+ return h_dentry;
+}
+
+static void au_call_lkup_one(void *args)
+{
+ struct au_lkup_one_args *a = args;
+ *a->errp = au_lkup_one(a->name, a->h_parent, a->br, a->nd);
+}
+
+#define AuLkup_ALLOW_NEG 1
+#define au_ftest_lkup(flags, name) ((flags) & AuLkup_##name)
+#define au_fset_lkup(flags, name) { (flags) |= AuLkup_##name; }
+#define au_fclr_lkup(flags, name) { (flags) &= ~AuLkup_##name; }
+
+struct au_do_lookup_args {
+ unsigned int flags;
+ mode_t type;
+ struct nameidata *nd;
+};
+
+/*
+ * returns positive/negative dentry, NULL or an error.
+ * NULL means whiteout-ed or not-found.
+ */
+static struct dentry*
+au_do_lookup(struct dentry *h_parent, struct dentry *dentry,
+ aufs_bindex_t bindex, struct qstr *wh_name,
+ struct au_do_lookup_args *args)
+{
+ struct dentry *h_dentry;
+ struct inode *h_inode, *inode;
+ struct au_branch *br;
+ int wh_found, opq;
+ unsigned char wh_able;
+ const unsigned char allow_neg = !!au_ftest_lkup(args->flags, ALLOW_NEG);
+
+ wh_found = 0;
+ br = au_sbr(dentry->d_sb, bindex);
+ wh_able = !!au_br_whable(br->br_perm);
+ if (wh_able)
+ wh_found = au_wh_test(h_parent, wh_name, br, /*try_sio*/0);
+ h_dentry = ERR_PTR(wh_found);
+ if (!wh_found)
+ goto real_lookup;
+ if (unlikely(wh_found < 0))
+ goto out;
+
+ /* We found a whiteout */
+ /* au_set_dbend(dentry, bindex); */
+ au_set_dbwh(dentry, bindex);
+ if (!allow_neg)
+ return NULL; /* success */
+
+ real_lookup:
+ h_dentry = au_lkup_one(&dentry->d_name, h_parent, br, args->nd);
+ if (IS_ERR(h_dentry))
+ goto out;
+
+ h_inode = h_dentry->d_inode;
+ if (!h_inode) {
+ if (!allow_neg)
+ goto out_neg;
+ } else if (wh_found
+ || (args->type && args->type != (h_inode->i_mode & S_IFMT)))
+ goto out_neg;
+
+ if (au_dbend(dentry) <= bindex)
+ au_set_dbend(dentry, bindex);
+ if (au_dbstart(dentry) < 0 || bindex < au_dbstart(dentry))
+ au_set_dbstart(dentry, bindex);
+ au_set_h_dptr(dentry, bindex, h_dentry);
+
+ inode = dentry->d_inode;
+ if (!h_inode || !S_ISDIR(h_inode->i_mode) || !wh_able
+ || (inode && !S_ISDIR(inode->i_mode)))
+ goto out; /* success */
+
+ mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD);
+ opq = au_diropq_test(h_dentry, br);
+ mutex_unlock(&h_inode->i_mutex);
+ if (opq > 0)
+ au_set_dbdiropq(dentry, bindex);
+ else if (unlikely(opq < 0)) {
+ au_set_h_dptr(dentry, bindex, NULL);
+ h_dentry = ERR_PTR(opq);
+ }
+ goto out;
+
+ out_neg:
+ dput(h_dentry);
+ h_dentry = NULL;
+ out:
+ return h_dentry;
+}
+
+static int au_test_shwh(struct super_block *sb, const struct qstr *name)
+{
+ if (unlikely(!au_opt_test(au_mntflags(sb), SHWH)
+ && !strncmp(name->name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)))
+ return -EPERM;
+ return 0;
+}
+
+/*
+ * returns the number of lower positive dentries,
+ * otherwise an error.
+ * can be called at unlinking with @type is zero.
+ */
+int au_lkup_dentry(struct dentry *dentry, aufs_bindex_t bstart, mode_t type,
+ struct nameidata *nd)
+{
+ int npositive, err;
+ aufs_bindex_t bindex, btail, bdiropq;
+ unsigned char isdir;
+ struct qstr whname;
+ struct au_do_lookup_args args = {
+ .flags = 0,
+ .type = type,
+ .nd = nd
+ };
+ const struct qstr *name = &dentry->d_name;
+ struct dentry *parent;
+ struct inode *inode;
+
+ err = au_test_shwh(dentry->d_sb, name);
+ if (unlikely(err))
+ goto out;
+
+ err = au_wh_name_alloc(&whname, name);
+ if (unlikely(err))
+ goto out;
+
+ inode = dentry->d_inode;
+ isdir = !!(inode && S_ISDIR(inode->i_mode));
+ if (!type)
+ au_fset_lkup(args.flags, ALLOW_NEG);
+
+ npositive = 0;
+ parent = dget_parent(dentry);
+ btail = au_dbtaildir(parent);
+ for (bindex = bstart; bindex <= btail; bindex++) {
+ struct dentry *h_parent, *h_dentry;
+ struct inode *h_inode, *h_dir;
+
+ h_dentry = au_h_dptr(dentry, bindex);
+ if (h_dentry) {
+ if (h_dentry->d_inode)
+ npositive++;
+ if (type != S_IFDIR)
+ break;
+ continue;
+ }
+ h_parent = au_h_dptr(parent, bindex);
+ if (!h_parent)
+ continue;
+ h_dir = h_parent->d_inode;
+ if (!h_dir || !S_ISDIR(h_dir->i_mode))
+ continue;
+
+ mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_PARENT);
+ h_dentry = au_do_lookup(h_parent, dentry, bindex, &whname,
+ &args);
+ mutex_unlock(&h_dir->i_mutex);
+ err = PTR_ERR(h_dentry);
+ if (IS_ERR(h_dentry))
+ goto out_parent;
+ au_fclr_lkup(args.flags, ALLOW_NEG);
+
+ if (au_dbwh(dentry) >= 0)
+ break;
+ if (!h_dentry)
+ continue;
+ h_inode = h_dentry->d_inode;
+ if (!h_inode)
+ continue;
+ npositive++;
+ if (!args.type)
+ args.type = h_inode->i_mode & S_IFMT;
+ if (args.type != S_IFDIR)
+ break;
+ else if (isdir) {
+ /* the type of lower may be different */
+ bdiropq = au_dbdiropq(dentry);
+ if (bdiropq >= 0 && bdiropq <= bindex)
+ break;
+ }
+ }
+
+ if (npositive) {
+ AuLabel(positive);
+ au_update_dbstart(dentry);
+ }
+ err = npositive;
+ if (unlikely(!au_opt_test(au_mntflags(dentry->d_sb), UDBA_NONE)
+ && au_dbstart(dentry) < 0))
+ /* both of real entry and whiteout found */
+ err = -EIO;
+
+ out_parent:
+ dput(parent);
+ kfree(whname.name);
+ out:
+ return err;
+}
+
+struct dentry *au_sio_lkup_one(struct qstr *name, struct dentry *parent,
+ struct au_branch *br)
+{
+ struct dentry *dentry;
+ int wkq_err;
+
+ if (!au_test_h_perm_sio(parent->d_inode, MAY_EXEC))
+ dentry = au_lkup_one(name, parent, br, /*nd*/NULL);
+ else {
+ struct au_lkup_one_args args = {
+ .errp = &dentry,
+ .name = name,
+ .h_parent = parent,
+ .br = br,
+ .nd = NULL
+ };
+
+ wkq_err = au_wkq_wait(au_call_lkup_one, &args);
+ if (unlikely(wkq_err))
+ dentry = ERR_PTR(wkq_err);
+ }
+
+ return dentry;
+}
+
+/*
+ * lookup @dentry on @bindex which should be negative.
+ */
+int au_lkup_neg(struct dentry *dentry, aufs_bindex_t bindex)
+{
+ int err;
+ struct dentry *parent, *h_parent, *h_dentry;
+
+ parent = dget_parent(dentry);
+ h_parent = au_h_dptr(parent, bindex);
+ h_dentry = au_sio_lkup_one(&dentry->d_name, h_parent,
+ au_sbr(dentry->d_sb, bindex));
+ err = PTR_ERR(h_dentry);
+ if (IS_ERR(h_dentry))
+ goto out;
+ if (unlikely(h_dentry->d_inode)) {
+ err = -EIO;
+ AuIOErr("b%d %.*s should be negative.\n",
+ bindex, AuDLNPair(h_dentry));
+ dput(h_dentry);
+ goto out;
+ }
+
+ err = 0;
+ if (bindex < au_dbstart(dentry))
+ au_set_dbstart(dentry, bindex);
+ if (au_dbend(dentry) < bindex)
+ au_set_dbend(dentry, bindex);
+ au_set_h_dptr(dentry, bindex, h_dentry);
+
+ out:
+ dput(parent);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* subset of struct inode */
+struct au_iattr {
+ unsigned long i_ino;
+ /* unsigned int i_nlink; */
+ uid_t i_uid;
+ gid_t i_gid;
+ u64 i_version;
+/*
+ loff_t i_size;
+ blkcnt_t i_blocks;
+*/
+ umode_t i_mode;
+};
+
+static void au_iattr_save(struct au_iattr *ia, struct inode *h_inode)
+{
+ ia->i_ino = h_inode->i_ino;
+ /* ia->i_nlink = h_inode->i_nlink; */
+ ia->i_uid = h_inode->i_uid;
+ ia->i_gid = h_inode->i_gid;
+ ia->i_version = h_inode->i_version;
+/*
+ ia->i_size = h_inode->i_size;
+ ia->i_blocks = h_inode->i_blocks;
+*/
+ ia->i_mode = (h_inode->i_mode & S_IFMT);
+}
+
+static int au_iattr_test(struct au_iattr *ia, struct inode *h_inode)
+{
+ return ia->i_ino != h_inode->i_ino
+ /* || ia->i_nlink != h_inode->i_nlink */
+ || ia->i_uid != h_inode->i_uid
+ || ia->i_gid != h_inode->i_gid
+ || ia->i_version != h_inode->i_version
+/*
+ || ia->i_size != h_inode->i_size
+ || ia->i_blocks != h_inode->i_blocks
+*/
+ || ia->i_mode != (h_inode->i_mode & S_IFMT);
+}
+
+static int au_h_verify_dentry(struct dentry *h_dentry, struct dentry *h_parent,
+ struct au_branch *br)
+{
+ int err;
+ struct au_iattr ia;
+ struct inode *h_inode;
+ struct dentry *h_d;
+ struct super_block *h_sb;
+
+ err = 0;
+ memset(&ia, -1, sizeof(ia));
+ h_sb = h_dentry->d_sb;
+ h_inode = h_dentry->d_inode;
+ if (h_inode)
+ au_iattr_save(&ia, h_inode);
+ else if (au_test_nfs(h_sb) || au_test_fuse(h_sb))
+ /* nfs d_revalidate may return 0 for negative dentry */
+ /* fuse d_revalidate always return 0 for negative dentry */
+ goto out;
+
+ /* main purpose is namei.c:cached_lookup() and d_revalidate */
+ h_d = au_lkup_one(&h_dentry->d_name, h_parent, br, /*nd*/NULL);
+ err = PTR_ERR(h_d);
+ if (IS_ERR(h_d))
+ goto out;
+
+ err = 0;
+ if (unlikely(h_d != h_dentry
+ || h_d->d_inode != h_inode
+ || (h_inode && au_iattr_test(&ia, h_inode))))
+ err = au_busy_or_stale();
+ dput(h_d);
+
+ out:
+ AuTraceErr(err);
+ return err;
+}
+
+int au_h_verify(struct dentry *h_dentry, unsigned int udba, struct inode *h_dir,
+ struct dentry *h_parent, struct au_branch *br)
+{
+ int err;
+
+ err = 0;
+ if (udba == AuOpt_UDBA_REVAL) {
+ IMustLock(h_dir);
+ err = (h_dentry->d_parent->d_inode != h_dir);
+ } else if (udba == AuOpt_UDBA_HNOTIFY)
+ err = au_h_verify_dentry(h_dentry, h_parent, br);
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static void au_do_refresh_hdentry(struct au_hdentry *p, struct au_dinfo *dinfo,
+ struct dentry *parent)
+{
+ struct dentry *h_d, *h_dp;
+ struct au_hdentry tmp, *q;
+ struct super_block *sb;
+ aufs_bindex_t new_bindex, bindex, bend, bwh, bdiropq;
+
+ AuRwMustWriteLock(&dinfo->di_rwsem);
+
+ bend = dinfo->di_bend;
+ bwh = dinfo->di_bwh;
+ bdiropq = dinfo->di_bdiropq;
+ for (bindex = dinfo->di_bstart; bindex <= bend; bindex++, p++) {
+ h_d = p->hd_dentry;
+ if (!h_d)
+ continue;
+
+ h_dp = dget_parent(h_d);
+ if (h_dp == au_h_dptr(parent, bindex)) {
+ dput(h_dp);
+ continue;
+ }
+
+ new_bindex = au_find_dbindex(parent, h_dp);
+ dput(h_dp);
+ if (dinfo->di_bwh == bindex)
+ bwh = new_bindex;
+ if (dinfo->di_bdiropq == bindex)
+ bdiropq = new_bindex;
+ if (new_bindex < 0) {
+ au_hdput(p);
+ p->hd_dentry = NULL;
+ continue;
+ }
+
+ /* swap two lower dentries, and loop again */
+ q = dinfo->di_hdentry + new_bindex;
+ tmp = *q;
+ *q = *p;
+ *p = tmp;
+ if (tmp.hd_dentry) {
+ bindex--;
+ p--;
+ }
+ }
+
+ sb = parent->d_sb;
+ dinfo->di_bwh = -1;
+ if (bwh >= 0 && bwh <= au_sbend(sb) && au_sbr_whable(sb, bwh))
+ dinfo->di_bwh = bwh;
+
+ dinfo->di_bdiropq = -1;
+ if (bdiropq >= 0
+ && bdiropq <= au_sbend(sb)
+ && au_sbr_whable(sb, bdiropq))
+ dinfo->di_bdiropq = bdiropq;
+
+ bend = au_dbend(parent);
+ p = dinfo->di_hdentry;
+ for (bindex = 0; bindex <= bend; bindex++, p++)
+ if (p->hd_dentry) {
+ dinfo->di_bstart = bindex;
+ break;
+ }
+
+ p = dinfo->di_hdentry + bend;
+ for (bindex = bend; bindex >= 0; bindex--, p--)
+ if (p->hd_dentry) {
+ dinfo->di_bend = bindex;
+ break;
+ }
+}
+
+/*
+ * returns the number of found lower positive dentries,
+ * otherwise an error.
+ */
+int au_refresh_hdentry(struct dentry *dentry, mode_t type)
+{
+ int npositive, err;
+ unsigned int sigen;
+ aufs_bindex_t bstart;
+ struct au_dinfo *dinfo;
+ struct super_block *sb;
+ struct dentry *parent;
+
+ DiMustWriteLock(dentry);
+
+ sb = dentry->d_sb;
+ AuDebugOn(IS_ROOT(dentry));
+ sigen = au_sigen(sb);
+ parent = dget_parent(dentry);
+ AuDebugOn(au_digen(parent) != sigen
+ || au_iigen(parent->d_inode) != sigen);
+
+ dinfo = au_di(dentry);
+ err = au_di_realloc(dinfo, au_sbend(sb) + 1);
+ npositive = err;
+ if (unlikely(err))
+ goto out;
+ au_do_refresh_hdentry(dinfo->di_hdentry + dinfo->di_bstart, dinfo,
+ parent);
+
+ npositive = 0;
+ bstart = au_dbstart(parent);
+ if (type != S_IFDIR && dinfo->di_bstart == bstart)
+ goto out_dgen; /* success */
+
+ npositive = au_lkup_dentry(dentry, bstart, type, /*nd*/NULL);
+ if (npositive < 0)
+ goto out;
+ if (dinfo->di_bwh >= 0 && dinfo->di_bwh <= dinfo->di_bstart)
+ d_drop(dentry);
+
+ out_dgen:
+ au_update_digen(dentry);
+ out:
+ dput(parent);
+ AuTraceErr(npositive);
+ return npositive;
+}
+
+static noinline_for_stack
+int au_do_h_d_reval(struct dentry *h_dentry, struct nameidata *nd,
+ struct dentry *dentry, aufs_bindex_t bindex)
+{
+ int err, valid;
+ int (*reval)(struct dentry *, struct nameidata *);
+
+ err = 0;
+ reval = NULL;
+ if (h_dentry->d_op)
+ reval = h_dentry->d_op->d_revalidate;
+ if (!reval)
+ goto out;
+
+ AuDbg("b%d\n", bindex);
+ if (au_test_fs_null_nd(h_dentry->d_sb))
+ /* it may return tri-state */
+ valid = reval(h_dentry, NULL);
+ else {
+ struct nameidata h_nd;
+ int locked;
+ struct dentry *parent;
+
+ au_h_nd(&h_nd, nd);
+ parent = nd->path.dentry;
+ locked = (nd && nd->path.dentry != dentry);
+ if (locked)
+ di_read_lock_parent(parent, AuLock_IR);
+ BUG_ON(bindex > au_dbend(parent));
+ h_nd.path.dentry = au_h_dptr(parent, bindex);
+ BUG_ON(!h_nd.path.dentry);
+ h_nd.path.mnt = au_sbr(parent->d_sb, bindex)->br_mnt;
+ path_get(&h_nd.path);
+ valid = reval(h_dentry, &h_nd);
+ path_put(&h_nd.path);
+ if (locked)
+ di_read_unlock(parent, AuLock_IR);
+ }
+
+ if (unlikely(valid < 0))
+ err = valid;
+ else if (!valid)
+ err = -EINVAL;
+
+ out:
+ AuTraceErr(err);
+ return err;
+}
+
+/* todo: remove this */
+static int h_d_revalidate(struct dentry *dentry, struct inode *inode,
+ struct nameidata *nd, int do_udba)
+{
+ int err;
+ umode_t mode, h_mode;
+ aufs_bindex_t bindex, btail, bstart, ibs, ibe;
+ unsigned char plus, unhashed, is_root, h_plus;
+ struct inode *h_inode, *h_cached_inode;
+ struct dentry *h_dentry;
+ struct qstr *name, *h_name;
+
+ err = 0;
+ plus = 0;
+ mode = 0;
+ ibs = -1;
+ ibe = -1;
+ unhashed = !!d_unhashed(dentry);
+ is_root = !!IS_ROOT(dentry);
+ name = &dentry->d_name;
+
+ /*
+ * Theoretically, REVAL test should be unnecessary in case of INOTIFY.
+ * But inotify doesn't fire some necessary events,
+ * IN_ATTRIB for atime/nlink/pageio
+ * IN_DELETE for NFS dentry
+ * Let's do REVAL test too.
+ */
+ if (do_udba && inode) {
+ mode = (inode->i_mode & S_IFMT);
+ plus = (inode->i_nlink > 0);
+ ibs = au_ibstart(inode);
+ ibe = au_ibend(inode);
+ }
+
+ bstart = au_dbstart(dentry);
+ btail = bstart;
+ if (inode && S_ISDIR(inode->i_mode))
+ btail = au_dbtaildir(dentry);
+ for (bindex = bstart; bindex <= btail; bindex++) {
+ h_dentry = au_h_dptr(dentry, bindex);
+ if (!h_dentry)
+ continue;
+
+ AuDbg("b%d, %.*s\n", bindex, AuDLNPair(h_dentry));
+ h_name = &h_dentry->d_name;
+ if (unlikely(do_udba
+ && !is_root
+ && (unhashed != !!d_unhashed(h_dentry)
+ || name->len != h_name->len
+ || memcmp(name->name, h_name->name, name->len))
+ )) {
+ AuDbg("unhash 0x%x 0x%x, %.*s %.*s\n",
+ unhashed, d_unhashed(h_dentry),
+ AuDLNPair(dentry), AuDLNPair(h_dentry));
+ goto err;
+ }
+
+ err = au_do_h_d_reval(h_dentry, nd, dentry, bindex);
+ if (unlikely(err))
+ /* do not goto err, to keep the errno */
+ break;
+
+ /* todo: plink too? */
+ if (!do_udba)
+ continue;
+
+ /* UDBA tests */
+ h_inode = h_dentry->d_inode;
+ if (unlikely(!!inode != !!h_inode))
+ goto err;
+
+ h_plus = plus;
+ h_mode = mode;
+ h_cached_inode = h_inode;
+ if (h_inode) {
+ h_mode = (h_inode->i_mode & S_IFMT);
+ h_plus = (h_inode->i_nlink > 0);
+ }
+ if (inode && ibs <= bindex && bindex <= ibe)
+ h_cached_inode = au_h_iptr(inode, bindex);
+
+ if (unlikely(plus != h_plus
+ || mode != h_mode
+ || h_cached_inode != h_inode))
+ goto err;
+ continue;
+
+ err:
+ err = -EINVAL;
+ break;
+ }
+
+ return err;
+}
+
+static int simple_reval_dpath(struct dentry *dentry, unsigned int sigen)
+{
+ int err;
+ struct dentry *parent;
+ struct inode *inode;
+
+ inode = dentry->d_inode;
+ if (au_digen(dentry) == sigen && au_iigen(inode) == sigen)
+ return 0;
+
+ parent = dget_parent(dentry);
+ di_read_lock_parent(parent, AuLock_IR);
+ AuDebugOn(au_digen(parent) != sigen
+ || au_iigen(parent->d_inode) != sigen);
+ au_dbg_verify_gen(parent, sigen);
+
+ /* returns a number of positive dentries */
+ err = au_refresh_hdentry(dentry, inode->i_mode & S_IFMT);
+ if (err >= 0)
+ err = au_refresh_hinode(inode, dentry);
+
+ di_read_unlock(parent, AuLock_IR);
+ dput(parent);
+ return err;
+}
+
+int au_reval_dpath(struct dentry *dentry, unsigned int sigen)
+{
+ int err;
+ struct dentry *d, *parent;
+ struct inode *inode;
+
+ if (!au_ftest_si(au_sbi(dentry->d_sb), FAILED_REFRESH_DIRS))
+ return simple_reval_dpath(dentry, sigen);
+
+ /* slow loop, keep it simple and stupid */
+ /* cf: au_cpup_dirs() */
+ err = 0;
+ parent = NULL;
+ while (au_digen(dentry) != sigen
+ || au_iigen(dentry->d_inode) != sigen) {
+ d = dentry;
+ while (1) {
+ dput(parent);
+ parent = dget_parent(d);
+ if (au_digen(parent) == sigen
+ && au_iigen(parent->d_inode) == sigen)
+ break;
+ d = parent;
+ }
+
+ inode = d->d_inode;
+ if (d != dentry)
+ di_write_lock_child(d);
+
+ /* someone might update our dentry while we were sleeping */
+ if (au_digen(d) != sigen || au_iigen(d->d_inode) != sigen) {
+ di_read_lock_parent(parent, AuLock_IR);
+ /* returns a number of positive dentries */
+ err = au_refresh_hdentry(d, inode->i_mode & S_IFMT);
+ if (err >= 0)
+ err = au_refresh_hinode(inode, d);
+ di_read_unlock(parent, AuLock_IR);
+ }
+
+ if (d != dentry)
+ di_write_unlock(d);
+ dput(parent);
+ if (unlikely(err))
+ break;
+ }
+
+ return err;
+}
+
+/*
+ * if valid returns 1, otherwise 0.
+ */
+static int aufs_d_revalidate(struct dentry *dentry, struct nameidata *nd)
+{
+ int valid, err;
+ unsigned int sigen;
+ unsigned char do_udba;
+ struct super_block *sb;
+ struct inode *inode;
+
+ err = -EINVAL;
+ sb = dentry->d_sb;
+ inode = dentry->d_inode;
+ aufs_read_lock(dentry, AuLock_FLUSH | AuLock_DW);
+ sigen = au_sigen(sb);
+ if (au_digen(dentry) != sigen) {
+ AuDebugOn(IS_ROOT(dentry));
+ if (inode)
+ err = au_reval_dpath(dentry, sigen);
+ if (unlikely(err))
+ goto out_dgrade;
+ }
+ if (inode && au_iigen(inode) != sigen) {
+ AuDebugOn(IS_ROOT(dentry));
+ err = au_refresh_hinode(inode, dentry);
+ if (unlikely(err))
+ goto out_dgrade;
+ }
+ di_downgrade_lock(dentry, AuLock_IR);
+
+ err = -EINVAL;
+ do_udba = !au_opt_test(au_mntflags(sb), UDBA_NONE);
+ if (do_udba && inode) {
+ aufs_bindex_t bstart = au_ibstart(inode);
+
+ if (bstart >= 0
+ && au_test_higen(inode, au_h_iptr(inode, bstart)))
+ goto out;
+ }
+
+ err = h_d_revalidate(dentry, inode, nd, do_udba);
+ if (unlikely(!err && do_udba && au_dbstart(dentry) < 0))
+ /* both of real entry and whiteout found */
+ err = -EIO;
+ goto out;
+
+ out_dgrade:
+ di_downgrade_lock(dentry, AuLock_IR);
+ out:
+ aufs_read_unlock(dentry, AuLock_IR);
+ AuTraceErr(err);
+ valid = !err;
+ if (!valid)
+ AuDbg("%.*s invalid\n", AuDLNPair(dentry));
+ return valid;
+}
+
+static void aufs_d_release(struct dentry *dentry)
+{
+ if (dentry->d_fsdata) {
+ au_di_fin(dentry);
+ au_hn_di_reinit(dentry);
+ }
+}
+
+const struct dentry_operations aufs_dop = {
+ .d_revalidate = aufs_d_revalidate,
+ .d_release = aufs_d_release
+};
diff --git a/ubuntu/aufs/dentry.h b/ubuntu/aufs/dentry.h
new file mode 100644
index 00000000000..03819645d90
--- /dev/null
+++ b/ubuntu/aufs/dentry.h
@@ -0,0 +1,231 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * lookup and dentry operations
+ */
+
+#ifndef __AUFS_DENTRY_H__
+#define __AUFS_DENTRY_H__
+
+#ifdef __KERNEL__
+
+#include <linux/dcache.h>
+#include <linux/aufs_type.h>
+#include "rwsem.h"
+
+/* make a single member structure for future use */
+/* todo: remove this structure */
+struct au_hdentry {
+ struct dentry *hd_dentry;
+};
+
+struct au_dinfo {
+ atomic_t di_generation;
+
+ struct au_rwsem di_rwsem;
+ aufs_bindex_t di_bstart, di_bend, di_bwh, di_bdiropq;
+ struct au_hdentry *di_hdentry;
+} ____cacheline_aligned_in_smp;
+
+/* ---------------------------------------------------------------------- */
+
+/* dentry.c */
+extern const struct dentry_operations aufs_dop;
+struct au_branch;
+struct dentry *au_lkup_one(struct qstr *name, struct dentry *h_parent,
+ struct au_branch *br, struct nameidata *nd);
+struct dentry *au_sio_lkup_one(struct qstr *name, struct dentry *parent,
+ struct au_branch *br);
+int au_h_verify(struct dentry *h_dentry, unsigned int udba, struct inode *h_dir,
+ struct dentry *h_parent, struct au_branch *br);
+
+int au_lkup_dentry(struct dentry *dentry, aufs_bindex_t bstart, mode_t type,
+ struct nameidata *nd);
+int au_lkup_neg(struct dentry *dentry, aufs_bindex_t bindex);
+int au_refresh_hdentry(struct dentry *dentry, mode_t type);
+int au_reval_dpath(struct dentry *dentry, unsigned int sigen);
+
+/* dinfo.c */
+void au_di_init_once(void *_di);
+int au_di_init(struct dentry *dentry);
+void au_di_fin(struct dentry *dentry);
+int au_di_realloc(struct au_dinfo *dinfo, int nbr);
+
+void di_read_lock(struct dentry *d, int flags, unsigned int lsc);
+void di_read_unlock(struct dentry *d, int flags);
+void di_downgrade_lock(struct dentry *d, int flags);
+void di_write_lock(struct dentry *d, unsigned int lsc);
+void di_write_unlock(struct dentry *d);
+void di_write_lock2_child(struct dentry *d1, struct dentry *d2, int isdir);
+void di_write_lock2_parent(struct dentry *d1, struct dentry *d2, int isdir);
+void di_write_unlock2(struct dentry *d1, struct dentry *d2);
+
+struct dentry *au_h_dptr(struct dentry *dentry, aufs_bindex_t bindex);
+aufs_bindex_t au_dbtail(struct dentry *dentry);
+aufs_bindex_t au_dbtaildir(struct dentry *dentry);
+
+void au_set_h_dptr(struct dentry *dentry, aufs_bindex_t bindex,
+ struct dentry *h_dentry);
+void au_update_digen(struct dentry *dentry);
+void au_update_dbrange(struct dentry *dentry, int do_put_zero);
+void au_update_dbstart(struct dentry *dentry);
+void au_update_dbend(struct dentry *dentry);
+int au_find_dbindex(struct dentry *dentry, struct dentry *h_dentry);
+
+/* ---------------------------------------------------------------------- */
+
+static inline struct au_dinfo *au_di(struct dentry *dentry)
+{
+ return dentry->d_fsdata;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* lock subclass for dinfo */
+enum {
+ AuLsc_DI_CHILD, /* child first */
+ AuLsc_DI_CHILD2, /* rename(2), link(2), and cpup at hnotify */
+ AuLsc_DI_CHILD3, /* copyup dirs */
+ AuLsc_DI_PARENT,
+ AuLsc_DI_PARENT2,
+ AuLsc_DI_PARENT3
+};
+
+/*
+ * di_read_lock_child, di_write_lock_child,
+ * di_read_lock_child2, di_write_lock_child2,
+ * di_read_lock_child3, di_write_lock_child3,
+ * di_read_lock_parent, di_write_lock_parent,
+ * di_read_lock_parent2, di_write_lock_parent2,
+ * di_read_lock_parent3, di_write_lock_parent3,
+ */
+#define AuReadLockFunc(name, lsc) \
+static inline void di_read_lock_##name(struct dentry *d, int flags) \
+{ di_read_lock(d, flags, AuLsc_DI_##lsc); }
+
+#define AuWriteLockFunc(name, lsc) \
+static inline void di_write_lock_##name(struct dentry *d) \
+{ di_write_lock(d, AuLsc_DI_##lsc); }
+
+#define AuRWLockFuncs(name, lsc) \
+ AuReadLockFunc(name, lsc) \
+ AuWriteLockFunc(name, lsc)
+
+AuRWLockFuncs(child, CHILD);
+AuRWLockFuncs(child2, CHILD2);
+AuRWLockFuncs(child3, CHILD3);
+AuRWLockFuncs(parent, PARENT);
+AuRWLockFuncs(parent2, PARENT2);
+AuRWLockFuncs(parent3, PARENT3);
+
+#undef AuReadLockFunc
+#undef AuWriteLockFunc
+#undef AuRWLockFuncs
+
+#define DiMustNoWaiters(d) AuRwMustNoWaiters(&au_di(d)->di_rwsem)
+#define DiMustAnyLock(d) AuRwMustAnyLock(&au_di(d)->di_rwsem)
+#define DiMustWriteLock(d) AuRwMustWriteLock(&au_di(d)->di_rwsem)
+
+/* ---------------------------------------------------------------------- */
+
+/* todo: memory barrier? */
+static inline unsigned int au_digen(struct dentry *d)
+{
+ return atomic_read(&au_di(d)->di_generation);
+}
+
+static inline void au_h_dentry_init(struct au_hdentry *hdentry)
+{
+ hdentry->hd_dentry = NULL;
+}
+
+static inline void au_hdput(struct au_hdentry *hd)
+{
+ if (hd)
+ dput(hd->hd_dentry);
+}
+
+static inline aufs_bindex_t au_dbstart(struct dentry *dentry)
+{
+ DiMustAnyLock(dentry);
+ return au_di(dentry)->di_bstart;
+}
+
+static inline aufs_bindex_t au_dbend(struct dentry *dentry)
+{
+ DiMustAnyLock(dentry);
+ return au_di(dentry)->di_bend;
+}
+
+static inline aufs_bindex_t au_dbwh(struct dentry *dentry)
+{
+ DiMustAnyLock(dentry);
+ return au_di(dentry)->di_bwh;
+}
+
+static inline aufs_bindex_t au_dbdiropq(struct dentry *dentry)
+{
+ DiMustAnyLock(dentry);
+ return au_di(dentry)->di_bdiropq;
+}
+
+/* todo: hard/soft set? */
+static inline void au_set_dbstart(struct dentry *dentry, aufs_bindex_t bindex)
+{
+ DiMustWriteLock(dentry);
+ au_di(dentry)->di_bstart = bindex;
+}
+
+static inline void au_set_dbend(struct dentry *dentry, aufs_bindex_t bindex)
+{
+ DiMustWriteLock(dentry);
+ au_di(dentry)->di_bend = bindex;
+}
+
+static inline void au_set_dbwh(struct dentry *dentry, aufs_bindex_t bindex)
+{
+ DiMustWriteLock(dentry);
+ /* dbwh can be outside of bstart - bend range */
+ au_di(dentry)->di_bwh = bindex;
+}
+
+static inline void au_set_dbdiropq(struct dentry *dentry, aufs_bindex_t bindex)
+{
+ DiMustWriteLock(dentry);
+ au_di(dentry)->di_bdiropq = bindex;
+}
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef CONFIG_AUFS_HNOTIFY
+static inline void au_digen_dec(struct dentry *d)
+{
+ atomic_dec_return(&au_di(d)->di_generation);
+}
+
+static inline void au_hn_di_reinit(struct dentry *dentry)
+{
+ dentry->d_fsdata = NULL;
+}
+#else
+AuStubVoid(au_hn_di_reinit, struct dentry *dentry __maybe_unused)
+#endif /* CONFIG_AUFS_HNOTIFY */
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_DENTRY_H__ */
diff --git a/ubuntu/aufs/dinfo.c b/ubuntu/aufs/dinfo.c
new file mode 100644
index 00000000000..f9d48d7d7fc
--- /dev/null
+++ b/ubuntu/aufs/dinfo.c
@@ -0,0 +1,395 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * dentry private data
+ */
+
+#include "aufs.h"
+
+void au_di_init_once(void *_di)
+{
+ struct au_dinfo *di = _di;
+
+ au_rw_init(&di->di_rwsem);
+}
+
+int au_di_init(struct dentry *dentry)
+{
+ struct au_dinfo *dinfo;
+ struct super_block *sb;
+ int nbr;
+
+ dinfo = au_cache_alloc_dinfo();
+ if (unlikely(!dinfo))
+ goto out;
+
+ sb = dentry->d_sb;
+ nbr = au_sbend(sb) + 1;
+ if (nbr <= 0)
+ nbr = 1;
+ dinfo->di_hdentry = kcalloc(nbr, sizeof(*dinfo->di_hdentry), GFP_NOFS);
+ if (unlikely(!dinfo->di_hdentry))
+ goto out_dinfo;
+
+ atomic_set(&dinfo->di_generation, au_sigen(sb));
+ /* smp_mb(); */ /* atomic_set */
+ au_rw_write_lock_nested(&dinfo->di_rwsem, AuLsc_DI_CHILD);
+ dinfo->di_bstart = -1;
+ dinfo->di_bend = -1;
+ dinfo->di_bwh = -1;
+ dinfo->di_bdiropq = -1;
+
+ dentry->d_fsdata = dinfo;
+ dentry->d_op = &aufs_dop;
+ return 0; /* success */
+
+ out_dinfo:
+ au_cache_free_dinfo(dinfo);
+ out:
+ return -ENOMEM;
+}
+
+void au_di_fin(struct dentry *dentry)
+{
+ struct au_dinfo *di;
+ struct au_hdentry *p;
+ aufs_bindex_t bend, bindex;
+
+ /* dentry may not be revalidated */
+ di = dentry->d_fsdata;
+ bindex = di->di_bstart;
+ if (bindex >= 0) {
+ bend = di->di_bend;
+ p = di->di_hdentry + bindex;
+ while (bindex++ <= bend)
+ au_hdput(p++);
+ }
+ kfree(di->di_hdentry);
+ AuRwDestroy(&di->di_rwsem);
+ au_cache_free_dinfo(di);
+}
+
+int au_di_realloc(struct au_dinfo *dinfo, int nbr)
+{
+ int err, sz;
+ struct au_hdentry *hdp;
+
+ AuRwMustWriteLock(&dinfo->di_rwsem);
+
+ err = -ENOMEM;
+ sz = sizeof(*hdp) * (dinfo->di_bend + 1);
+ if (!sz)
+ sz = sizeof(*hdp);
+ hdp = au_kzrealloc(dinfo->di_hdentry, sz, sizeof(*hdp) * nbr, GFP_NOFS);
+ if (hdp) {
+ dinfo->di_hdentry = hdp;
+ err = 0;
+ }
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static void do_ii_write_lock(struct inode *inode, unsigned int lsc)
+{
+ switch (lsc) {
+ case AuLsc_DI_CHILD:
+ ii_write_lock_child(inode);
+ break;
+ case AuLsc_DI_CHILD2:
+ ii_write_lock_child2(inode);
+ break;
+ case AuLsc_DI_CHILD3:
+ ii_write_lock_child3(inode);
+ break;
+ case AuLsc_DI_PARENT:
+ ii_write_lock_parent(inode);
+ break;
+ case AuLsc_DI_PARENT2:
+ ii_write_lock_parent2(inode);
+ break;
+ case AuLsc_DI_PARENT3:
+ ii_write_lock_parent3(inode);
+ break;
+ default:
+ BUG();
+ }
+}
+
+static void do_ii_read_lock(struct inode *inode, unsigned int lsc)
+{
+ switch (lsc) {
+ case AuLsc_DI_CHILD:
+ ii_read_lock_child(inode);
+ break;
+ case AuLsc_DI_CHILD2:
+ ii_read_lock_child2(inode);
+ break;
+ case AuLsc_DI_CHILD3:
+ ii_read_lock_child3(inode);
+ break;
+ case AuLsc_DI_PARENT:
+ ii_read_lock_parent(inode);
+ break;
+ case AuLsc_DI_PARENT2:
+ ii_read_lock_parent2(inode);
+ break;
+ case AuLsc_DI_PARENT3:
+ ii_read_lock_parent3(inode);
+ break;
+ default:
+ BUG();
+ }
+}
+
+void di_read_lock(struct dentry *d, int flags, unsigned int lsc)
+{
+ au_rw_read_lock_nested(&au_di(d)->di_rwsem, lsc);
+ if (d->d_inode) {
+ if (au_ftest_lock(flags, IW))
+ do_ii_write_lock(d->d_inode, lsc);
+ else if (au_ftest_lock(flags, IR))
+ do_ii_read_lock(d->d_inode, lsc);
+ }
+}
+
+void di_read_unlock(struct dentry *d, int flags)
+{
+ if (d->d_inode) {
+ if (au_ftest_lock(flags, IW))
+ ii_write_unlock(d->d_inode);
+ else if (au_ftest_lock(flags, IR))
+ ii_read_unlock(d->d_inode);
+ }
+ au_rw_read_unlock(&au_di(d)->di_rwsem);
+}
+
+void di_downgrade_lock(struct dentry *d, int flags)
+{
+ if (d->d_inode && au_ftest_lock(flags, IR))
+ ii_downgrade_lock(d->d_inode);
+ au_rw_dgrade_lock(&au_di(d)->di_rwsem);
+}
+
+void di_write_lock(struct dentry *d, unsigned int lsc)
+{
+ au_rw_write_lock_nested(&au_di(d)->di_rwsem, lsc);
+ if (d->d_inode)
+ do_ii_write_lock(d->d_inode, lsc);
+}
+
+void di_write_unlock(struct dentry *d)
+{
+ if (d->d_inode)
+ ii_write_unlock(d->d_inode);
+ au_rw_write_unlock(&au_di(d)->di_rwsem);
+}
+
+void di_write_lock2_child(struct dentry *d1, struct dentry *d2, int isdir)
+{
+ AuDebugOn(d1 == d2
+ || d1->d_inode == d2->d_inode
+ || d1->d_sb != d2->d_sb);
+
+ if (isdir && au_test_subdir(d1, d2)) {
+ di_write_lock_child(d1);
+ di_write_lock_child2(d2);
+ } else {
+ /* there should be no races */
+ di_write_lock_child(d2);
+ di_write_lock_child2(d1);
+ }
+}
+
+void di_write_lock2_parent(struct dentry *d1, struct dentry *d2, int isdir)
+{
+ AuDebugOn(d1 == d2
+ || d1->d_inode == d2->d_inode
+ || d1->d_sb != d2->d_sb);
+
+ if (isdir && au_test_subdir(d1, d2)) {
+ di_write_lock_parent(d1);
+ di_write_lock_parent2(d2);
+ } else {
+ /* there should be no races */
+ di_write_lock_parent(d2);
+ di_write_lock_parent2(d1);
+ }
+}
+
+void di_write_unlock2(struct dentry *d1, struct dentry *d2)
+{
+ di_write_unlock(d1);
+ if (d1->d_inode == d2->d_inode)
+ au_rw_write_unlock(&au_di(d2)->di_rwsem);
+ else
+ di_write_unlock(d2);
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct dentry *au_h_dptr(struct dentry *dentry, aufs_bindex_t bindex)
+{
+ struct dentry *d;
+
+ DiMustAnyLock(dentry);
+
+ if (au_dbstart(dentry) < 0 || bindex < au_dbstart(dentry))
+ return NULL;
+ AuDebugOn(bindex < 0);
+ d = au_di(dentry)->di_hdentry[0 + bindex].hd_dentry;
+ AuDebugOn(d && (atomic_read(&d->d_count) <= 0));
+ return d;
+}
+
+aufs_bindex_t au_dbtail(struct dentry *dentry)
+{
+ aufs_bindex_t bend, bwh;
+
+ bend = au_dbend(dentry);
+ if (0 <= bend) {
+ bwh = au_dbwh(dentry);
+ if (!bwh)
+ return bwh;
+ if (0 < bwh && bwh < bend)
+ return bwh - 1;
+ }
+ return bend;
+}
+
+aufs_bindex_t au_dbtaildir(struct dentry *dentry)
+{
+ aufs_bindex_t bend, bopq;
+
+ bend = au_dbtail(dentry);
+ if (0 <= bend) {
+ bopq = au_dbdiropq(dentry);
+ if (0 <= bopq && bopq < bend)
+ bend = bopq;
+ }
+ return bend;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_set_h_dptr(struct dentry *dentry, aufs_bindex_t bindex,
+ struct dentry *h_dentry)
+{
+ struct au_hdentry *hd = au_di(dentry)->di_hdentry + bindex;
+
+ DiMustWriteLock(dentry);
+
+ au_hdput(hd);
+ hd->hd_dentry = h_dentry;
+}
+
+void au_update_digen(struct dentry *dentry)
+{
+ atomic_set(&au_di(dentry)->di_generation, au_sigen(dentry->d_sb));
+ /* smp_mb(); */ /* atomic_set */
+}
+
+void au_update_dbrange(struct dentry *dentry, int do_put_zero)
+{
+ struct au_dinfo *dinfo;
+ struct dentry *h_d;
+ struct au_hdentry *hdp;
+
+ DiMustWriteLock(dentry);
+
+ dinfo = au_di(dentry);
+ if (!dinfo || dinfo->di_bstart < 0)
+ return;
+
+ hdp = dinfo->di_hdentry;
+ if (do_put_zero) {
+ aufs_bindex_t bindex, bend;
+
+ bend = dinfo->di_bend;
+ for (bindex = dinfo->di_bstart; bindex <= bend; bindex++) {
+ h_d = hdp[0 + bindex].hd_dentry;
+ if (h_d && !h_d->d_inode)
+ au_set_h_dptr(dentry, bindex, NULL);
+ }
+ }
+
+ dinfo->di_bstart = -1;
+ while (++dinfo->di_bstart <= dinfo->di_bend)
+ if (hdp[0 + dinfo->di_bstart].hd_dentry)
+ break;
+ if (dinfo->di_bstart > dinfo->di_bend) {
+ dinfo->di_bstart = -1;
+ dinfo->di_bend = -1;
+ return;
+ }
+
+ dinfo->di_bend++;
+ while (0 <= --dinfo->di_bend)
+ if (hdp[0 + dinfo->di_bend].hd_dentry)
+ break;
+ AuDebugOn(dinfo->di_bstart > dinfo->di_bend || dinfo->di_bend < 0);
+}
+
+void au_update_dbstart(struct dentry *dentry)
+{
+ aufs_bindex_t bindex, bend;
+ struct dentry *h_dentry;
+
+ bend = au_dbend(dentry);
+ for (bindex = au_dbstart(dentry); bindex <= bend; bindex++) {
+ h_dentry = au_h_dptr(dentry, bindex);
+ if (!h_dentry)
+ continue;
+ if (h_dentry->d_inode) {
+ au_set_dbstart(dentry, bindex);
+ return;
+ }
+ au_set_h_dptr(dentry, bindex, NULL);
+ }
+}
+
+void au_update_dbend(struct dentry *dentry)
+{
+ aufs_bindex_t bindex, bstart;
+ struct dentry *h_dentry;
+
+ bstart = au_dbstart(dentry);
+ for (bindex = au_dbend(dentry); bindex <= bstart; bindex--) {
+ h_dentry = au_h_dptr(dentry, bindex);
+ if (!h_dentry)
+ continue;
+ if (h_dentry->d_inode) {
+ au_set_dbend(dentry, bindex);
+ return;
+ }
+ au_set_h_dptr(dentry, bindex, NULL);
+ }
+}
+
+int au_find_dbindex(struct dentry *dentry, struct dentry *h_dentry)
+{
+ aufs_bindex_t bindex, bend;
+
+ bend = au_dbend(dentry);
+ for (bindex = au_dbstart(dentry); bindex <= bend; bindex++)
+ if (au_h_dptr(dentry, bindex) == h_dentry)
+ return bindex;
+ return -1;
+}
diff --git a/ubuntu/aufs/dir.c b/ubuntu/aufs/dir.c
new file mode 100644
index 00000000000..0c0b2757391
--- /dev/null
+++ b/ubuntu/aufs/dir.c
@@ -0,0 +1,647 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * directory operations
+ */
+
+#include <linux/file.h>
+#include <linux/fs_stack.h>
+#include "aufs.h"
+
+void au_add_nlink(struct inode *dir, struct inode *h_dir)
+{
+ AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode));
+
+ dir->i_nlink += h_dir->i_nlink - 2;
+ if (h_dir->i_nlink < 2)
+ dir->i_nlink += 2;
+}
+
+void au_sub_nlink(struct inode *dir, struct inode *h_dir)
+{
+ AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode));
+
+ dir->i_nlink -= h_dir->i_nlink - 2;
+ if (h_dir->i_nlink < 2)
+ dir->i_nlink -= 2;
+}
+
+loff_t au_dir_size(struct file *file, struct dentry *dentry)
+{
+ loff_t sz;
+ aufs_bindex_t bindex, bend;
+ struct file *h_file;
+ struct dentry *h_dentry;
+
+ sz = 0;
+ if (file) {
+ AuDebugOn(!file->f_dentry);
+ AuDebugOn(!file->f_dentry->d_inode);
+ AuDebugOn(!S_ISDIR(file->f_dentry->d_inode->i_mode));
+
+ bend = au_fbend_dir(file);
+ for (bindex = au_fbstart(file);
+ bindex <= bend && sz < KMALLOC_MAX_SIZE;
+ bindex++) {
+ h_file = au_hf_dir(file, bindex);
+ if (h_file
+ && h_file->f_dentry
+ && h_file->f_dentry->d_inode)
+ sz += i_size_read(h_file->f_dentry->d_inode);
+ }
+ } else {
+ AuDebugOn(!dentry);
+ AuDebugOn(!dentry->d_inode);
+ AuDebugOn(!S_ISDIR(dentry->d_inode->i_mode));
+
+ bend = au_dbtaildir(dentry);
+ for (bindex = au_dbstart(dentry);
+ bindex <= bend && sz < KMALLOC_MAX_SIZE;
+ bindex++) {
+ h_dentry = au_h_dptr(dentry, bindex);
+ if (h_dentry && h_dentry->d_inode)
+ sz += i_size_read(h_dentry->d_inode);
+ }
+ }
+ if (sz < KMALLOC_MAX_SIZE)
+ sz = roundup_pow_of_two(sz);
+ if (sz > KMALLOC_MAX_SIZE)
+ sz = KMALLOC_MAX_SIZE;
+ else if (sz < NAME_MAX) {
+ BUILD_BUG_ON(AUFS_RDBLK_DEF < NAME_MAX);
+ sz = AUFS_RDBLK_DEF;
+ }
+ return sz;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int reopen_dir(struct file *file)
+{
+ int err;
+ unsigned int flags;
+ aufs_bindex_t bindex, btail, bstart;
+ struct dentry *dentry, *h_dentry;
+ struct file *h_file;
+
+ /* open all lower dirs */
+ dentry = file->f_dentry;
+ bstart = au_dbstart(dentry);
+ for (bindex = au_fbstart(file); bindex < bstart; bindex++)
+ au_set_h_fptr(file, bindex, NULL);
+ au_set_fbstart(file, bstart);
+
+ btail = au_dbtaildir(dentry);
+ for (bindex = au_fbend_dir(file); btail < bindex; bindex--)
+ au_set_h_fptr(file, bindex, NULL);
+ au_set_fbend_dir(file, btail);
+
+ flags = vfsub_file_flags(file);
+ for (bindex = bstart; bindex <= btail; bindex++) {
+ h_dentry = au_h_dptr(dentry, bindex);
+ if (!h_dentry)
+ continue;
+ h_file = au_hf_dir(file, bindex);
+ if (h_file)
+ continue;
+
+ h_file = au_h_open(dentry, bindex, flags, file);
+ err = PTR_ERR(h_file);
+ if (IS_ERR(h_file))
+ goto out; /* close all? */
+ au_set_h_fptr(file, bindex, h_file);
+ }
+ au_update_figen(file);
+ /* todo: necessary? */
+ /* file->f_ra = h_file->f_ra; */
+ err = 0;
+
+ out:
+ return err;
+}
+
+static int do_open_dir(struct file *file, int flags)
+{
+ int err;
+ aufs_bindex_t bindex, btail;
+ struct dentry *dentry, *h_dentry;
+ struct file *h_file;
+
+ FiMustWriteLock(file);
+
+ err = 0;
+ dentry = file->f_dentry;
+ file->f_version = dentry->d_inode->i_version;
+ bindex = au_dbstart(dentry);
+ au_set_fbstart(file, bindex);
+ btail = au_dbtaildir(dentry);
+ au_set_fbend_dir(file, btail);
+ for (; !err && bindex <= btail; bindex++) {
+ h_dentry = au_h_dptr(dentry, bindex);
+ if (!h_dentry)
+ continue;
+
+ h_file = au_h_open(dentry, bindex, flags, file);
+ if (IS_ERR(h_file)) {
+ err = PTR_ERR(h_file);
+ break;
+ }
+ au_set_h_fptr(file, bindex, h_file);
+ }
+ au_update_figen(file);
+ /* todo: necessary? */
+ /* file->f_ra = h_file->f_ra; */
+ if (!err)
+ return 0; /* success */
+
+ /* close all */
+ for (bindex = au_fbstart(file); bindex <= btail; bindex++)
+ au_set_h_fptr(file, bindex, NULL);
+ au_set_fbstart(file, -1);
+ au_set_fbend_dir(file, -1);
+
+ return err;
+}
+
+static int aufs_open_dir(struct inode *inode __maybe_unused,
+ struct file *file)
+{
+ int err;
+ struct super_block *sb;
+ struct au_fidir *fidir;
+
+ err = -ENOMEM;
+ sb = file->f_dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ fidir = au_fidir_alloc(inode->i_sb);
+ if (fidir) {
+ err = au_do_open(file, do_open_dir, fidir);
+ if (unlikely(err))
+ kfree(fidir);
+ }
+ si_read_unlock(sb);
+ return err;
+}
+
+static int aufs_release_dir(struct inode *inode __maybe_unused,
+ struct file *file)
+{
+ struct au_vdir *vdir_cache;
+ struct super_block *sb;
+ struct au_finfo *finfo;
+ struct au_fidir *fidir;
+ aufs_bindex_t bindex, bend;
+
+ au_plink_maint_leave(file);
+ sb = file->f_dentry->d_sb;
+ finfo = au_fi(file);
+ fidir = finfo->fi_hdir;
+ if (fidir) {
+ vdir_cache = fidir->fd_vdir_cache; /* lock-free */
+ if (vdir_cache)
+ au_vdir_free(vdir_cache);
+
+ bindex = finfo->fi_btop;
+ if (bindex >= 0) {
+ /*
+ * calls fput() instead of filp_close(),
+ * since no dnotify or lock for the lower file.
+ */
+ bend = fidir->fd_bbot;
+ for (; bindex <= bend; bindex++)
+ au_set_h_fptr(file, bindex, NULL);
+ }
+ kfree(fidir);
+ finfo->fi_hdir = NULL;
+ }
+ au_finfo_fin(file);
+ return 0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_do_flush_dir(struct file *file, fl_owner_t id)
+{
+ int err;
+ aufs_bindex_t bindex, bend;
+ struct file *h_file;
+
+ err = 0;
+ bend = au_fbend_dir(file);
+ for (bindex = au_fbstart(file); !err && bindex <= bend; bindex++) {
+ h_file = au_hf_dir(file, bindex);
+ if (h_file)
+ err = vfsub_flush(h_file, id);
+ }
+ return err;
+}
+
+static int aufs_flush_dir(struct file *file, fl_owner_t id)
+{
+ return au_do_flush(file, id, au_do_flush_dir);
+}
+
+/* ---------------------------------------------------------------------- */
+
+#if 0
+static int au_do_fsync_dir_no_file(struct dentry *dentry, int datasync)
+{
+ int err;
+ aufs_bindex_t bend, bindex;
+ struct inode *inode;
+ struct super_block *sb;
+
+ err = 0;
+ sb = dentry->d_sb;
+ inode = dentry->d_inode;
+ IMustLock(inode);
+ bend = au_dbend(dentry);
+ for (bindex = au_dbstart(dentry); !err && bindex <= bend; bindex++) {
+ struct path h_path;
+ struct inode *h_inode;
+
+ if (au_test_ro(sb, bindex, inode))
+ continue;
+ h_path.dentry = au_h_dptr(dentry, bindex);
+ if (!h_path.dentry)
+ continue;
+ h_inode = h_path.dentry->d_inode;
+ if (!h_inode)
+ continue;
+
+ /* no mnt_want_write() */
+ /* cf. fs/nsfd/vfs.c and fs/nfsd/nfs4recover.c */
+ /* todo: inotiry fired? */
+ h_path.mnt = au_sbr_mnt(sb, bindex);
+ mutex_lock(&h_inode->i_mutex);
+ err = filemap_fdatawrite(h_inode->i_mapping);
+ AuDebugOn(!h_inode->i_fop);
+ if (!err && h_inode->i_fop->fsync)
+ err = h_inode->i_fop->fsync(NULL, h_path.dentry,
+ datasync);
+ if (!err)
+ err = filemap_fdatawrite(h_inode->i_mapping);
+ if (!err)
+ vfsub_update_h_iattr(&h_path, /*did*/NULL); /*ignore*/
+ mutex_unlock(&h_inode->i_mutex);
+ }
+
+ return err;
+}
+#endif
+
+static int au_do_fsync_dir(struct file *file, int datasync)
+{
+ int err;
+ aufs_bindex_t bend, bindex;
+ struct file *h_file;
+ struct super_block *sb;
+ struct inode *inode;
+ struct mutex *h_mtx;
+
+ err = au_reval_and_lock_fdi(file, reopen_dir, /*wlock*/1);
+ if (unlikely(err))
+ goto out;
+
+ sb = file->f_dentry->d_sb;
+ inode = file->f_dentry->d_inode;
+ bend = au_fbend_dir(file);
+ for (bindex = au_fbstart(file); !err && bindex <= bend; bindex++) {
+ h_file = au_hf_dir(file, bindex);
+ if (!h_file || au_test_ro(sb, bindex, inode))
+ continue;
+
+ err = vfs_fsync(h_file, datasync);
+ if (!err) {
+ h_mtx = &h_file->f_dentry->d_inode->i_mutex;
+ mutex_lock(h_mtx);
+ vfsub_update_h_iattr(&h_file->f_path, /*did*/NULL);
+ /*ignore*/
+ mutex_unlock(h_mtx);
+ }
+ }
+
+ out:
+ return err;
+}
+
+/*
+ * @file may be NULL
+ */
+static int aufs_fsync_dir(struct file *file, int datasync)
+{
+ int err;
+ struct super_block *sb;
+ struct dentry *dentry;
+
+ if (!file) {
+ WARN_ON(1);
+ return -ENOTSUPP;
+ }
+ dentry = file->f_dentry;
+
+ IMustLock(dentry->d_inode);
+
+ err = 0;
+ sb = dentry->d_sb;
+ si_noflush_read_lock(sb);
+ if (file)
+ err = au_do_fsync_dir(file, datasync);
+/*
+ else {
+ di_write_lock_child(dentry);
+ err = au_do_fsync_dir_no_file(dentry, datasync);
+ }
+*/
+ au_cpup_attr_timesizes(dentry->d_inode);
+ di_write_unlock(dentry);
+ if (file)
+ fi_write_unlock(file);
+
+ si_read_unlock(sb);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int aufs_readdir(struct file *file, void *dirent, filldir_t filldir)
+{
+ int err;
+ struct dentry *dentry;
+ struct inode *inode;
+ struct super_block *sb;
+
+ dentry = file->f_dentry;
+ inode = dentry->d_inode;
+ IMustLock(inode);
+
+ sb = dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ err = au_reval_and_lock_fdi(file, reopen_dir, /*wlock*/1);
+ if (unlikely(err))
+ goto out;
+ err = au_vdir_init(file);
+ di_downgrade_lock(dentry, AuLock_IR);
+ if (unlikely(err))
+ goto out_unlock;
+
+ if (!au_test_nfsd(current)) {
+ err = au_vdir_fill_de(file, dirent, filldir);
+ fsstack_copy_attr_atime(inode,
+ au_h_iptr(inode, au_ibstart(inode)));
+ } else {
+ /*
+ * nfsd filldir may call lookup_one_len(), vfs_getattr(),
+ * encode_fh() and others.
+ */
+ struct inode *h_inode = au_h_iptr(inode, au_ibstart(inode));
+
+ di_read_unlock(dentry, AuLock_IR);
+ si_read_unlock(sb);
+ /* lockdep_off(); */
+ err = au_vdir_fill_de(file, dirent, filldir);
+ /* lockdep_on(); */
+ fsstack_copy_attr_atime(inode, h_inode);
+ fi_write_unlock(file);
+
+ AuTraceErr(err);
+ return err;
+ }
+
+ out_unlock:
+ di_read_unlock(dentry, AuLock_IR);
+ fi_write_unlock(file);
+ out:
+ si_read_unlock(sb);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+#define AuTestEmpty_WHONLY 1
+#define AuTestEmpty_CALLED (1 << 1)
+#define AuTestEmpty_SHWH (1 << 2)
+#define au_ftest_testempty(flags, name) ((flags) & AuTestEmpty_##name)
+#define au_fset_testempty(flags, name) { (flags) |= AuTestEmpty_##name; }
+#define au_fclr_testempty(flags, name) { (flags) &= ~AuTestEmpty_##name; }
+
+#ifndef CONFIG_AUFS_SHWH
+#undef AuTestEmpty_SHWH
+#define AuTestEmpty_SHWH 0
+#endif
+
+struct test_empty_arg {
+ struct au_nhash *whlist;
+ unsigned int flags;
+ int err;
+ aufs_bindex_t bindex;
+};
+
+static int test_empty_cb(void *__arg, const char *__name, int namelen,
+ loff_t offset __maybe_unused, u64 ino,
+ unsigned int d_type)
+{
+ struct test_empty_arg *arg = __arg;
+ char *name = (void *)__name;
+
+ arg->err = 0;
+ au_fset_testempty(arg->flags, CALLED);
+ /* smp_mb(); */
+ if (name[0] == '.'
+ && (namelen == 1 || (name[1] == '.' && namelen == 2)))
+ goto out; /* success */
+
+ if (namelen <= AUFS_WH_PFX_LEN
+ || memcmp(name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) {
+ if (au_ftest_testempty(arg->flags, WHONLY)
+ && !au_nhash_test_known_wh(arg->whlist, name, namelen))
+ arg->err = -ENOTEMPTY;
+ goto out;
+ }
+
+ name += AUFS_WH_PFX_LEN;
+ namelen -= AUFS_WH_PFX_LEN;
+ if (!au_nhash_test_known_wh(arg->whlist, name, namelen))
+ arg->err = au_nhash_append_wh
+ (arg->whlist, name, namelen, ino, d_type, arg->bindex,
+ au_ftest_testempty(arg->flags, SHWH));
+
+ out:
+ /* smp_mb(); */
+ AuTraceErr(arg->err);
+ return arg->err;
+}
+
+static int do_test_empty(struct dentry *dentry, struct test_empty_arg *arg)
+{
+ int err;
+ struct file *h_file;
+
+ h_file = au_h_open(dentry, arg->bindex,
+ O_RDONLY | O_NONBLOCK | O_DIRECTORY | O_LARGEFILE,
+ /*file*/NULL);
+ err = PTR_ERR(h_file);
+ if (IS_ERR(h_file))
+ goto out;
+
+ err = 0;
+ if (!au_opt_test(au_mntflags(dentry->d_sb), UDBA_NONE)
+ && !h_file->f_dentry->d_inode->i_nlink)
+ goto out_put;
+
+ do {
+ arg->err = 0;
+ au_fclr_testempty(arg->flags, CALLED);
+ /* smp_mb(); */
+ err = vfsub_readdir(h_file, test_empty_cb, arg);
+ if (err >= 0)
+ err = arg->err;
+ } while (!err && au_ftest_testempty(arg->flags, CALLED));
+
+ out_put:
+ fput(h_file);
+ au_sbr_put(dentry->d_sb, arg->bindex);
+ out:
+ return err;
+}
+
+struct do_test_empty_args {
+ int *errp;
+ struct dentry *dentry;
+ struct test_empty_arg *arg;
+};
+
+static void call_do_test_empty(void *args)
+{
+ struct do_test_empty_args *a = args;
+ *a->errp = do_test_empty(a->dentry, a->arg);
+}
+
+static int sio_test_empty(struct dentry *dentry, struct test_empty_arg *arg)
+{
+ int err, wkq_err;
+ struct dentry *h_dentry;
+ struct inode *h_inode;
+
+ h_dentry = au_h_dptr(dentry, arg->bindex);
+ h_inode = h_dentry->d_inode;
+ mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD);
+ err = au_test_h_perm_sio(h_inode, MAY_EXEC | MAY_READ);
+ mutex_unlock(&h_inode->i_mutex);
+ if (!err)
+ err = do_test_empty(dentry, arg);
+ else {
+ struct do_test_empty_args args = {
+ .errp = &err,
+ .dentry = dentry,
+ .arg = arg
+ };
+ unsigned int flags = arg->flags;
+
+ wkq_err = au_wkq_wait(call_do_test_empty, &args);
+ if (unlikely(wkq_err))
+ err = wkq_err;
+ arg->flags = flags;
+ }
+
+ return err;
+}
+
+int au_test_empty_lower(struct dentry *dentry)
+{
+ int err;
+ unsigned int rdhash;
+ aufs_bindex_t bindex, bstart, btail;
+ struct au_nhash whlist;
+ struct test_empty_arg arg;
+
+ SiMustAnyLock(dentry->d_sb);
+
+ rdhash = au_sbi(dentry->d_sb)->si_rdhash;
+ if (!rdhash)
+ rdhash = au_rdhash_est(au_dir_size(/*file*/NULL, dentry));
+ err = au_nhash_alloc(&whlist, rdhash, GFP_NOFS);
+ if (unlikely(err))
+ goto out;
+
+ arg.flags = 0;
+ arg.whlist = &whlist;
+ bstart = au_dbstart(dentry);
+ if (au_opt_test(au_mntflags(dentry->d_sb), SHWH))
+ au_fset_testempty(arg.flags, SHWH);
+ arg.bindex = bstart;
+ err = do_test_empty(dentry, &arg);
+ if (unlikely(err))
+ goto out_whlist;
+
+ au_fset_testempty(arg.flags, WHONLY);
+ btail = au_dbtaildir(dentry);
+ for (bindex = bstart + 1; !err && bindex <= btail; bindex++) {
+ struct dentry *h_dentry;
+
+ h_dentry = au_h_dptr(dentry, bindex);
+ if (h_dentry && h_dentry->d_inode) {
+ arg.bindex = bindex;
+ err = do_test_empty(dentry, &arg);
+ }
+ }
+
+ out_whlist:
+ au_nhash_wh_free(&whlist);
+ out:
+ return err;
+}
+
+int au_test_empty(struct dentry *dentry, struct au_nhash *whlist)
+{
+ int err;
+ struct test_empty_arg arg;
+ aufs_bindex_t bindex, btail;
+
+ err = 0;
+ arg.whlist = whlist;
+ arg.flags = AuTestEmpty_WHONLY;
+ if (au_opt_test(au_mntflags(dentry->d_sb), SHWH))
+ au_fset_testempty(arg.flags, SHWH);
+ btail = au_dbtaildir(dentry);
+ for (bindex = au_dbstart(dentry); !err && bindex <= btail; bindex++) {
+ struct dentry *h_dentry;
+
+ h_dentry = au_h_dptr(dentry, bindex);
+ if (h_dentry && h_dentry->d_inode) {
+ arg.bindex = bindex;
+ err = sio_test_empty(dentry, &arg);
+ }
+ }
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+const struct file_operations aufs_dir_fop = {
+ .owner = THIS_MODULE,
+ .read = generic_read_dir,
+ .readdir = aufs_readdir,
+ .unlocked_ioctl = aufs_ioctl_dir,
+ .open = aufs_open_dir,
+ .release = aufs_release_dir,
+ .flush = aufs_flush_dir,
+ .fsync = aufs_fsync_dir
+};
diff --git a/ubuntu/aufs/dir.h b/ubuntu/aufs/dir.h
new file mode 100644
index 00000000000..a28c69e0762
--- /dev/null
+++ b/ubuntu/aufs/dir.h
@@ -0,0 +1,127 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * directory operations
+ */
+
+#ifndef __AUFS_DIR_H__
+#define __AUFS_DIR_H__
+
+#ifdef __KERNEL__
+
+#include <linux/fs.h>
+#include <linux/aufs_type.h>
+
+/* ---------------------------------------------------------------------- */
+
+/* need to be faster and smaller */
+
+struct au_nhash {
+ unsigned int nh_num;
+ struct hlist_head *nh_head;
+};
+
+struct au_vdir_destr {
+ unsigned char len;
+ unsigned char name[0];
+} __packed;
+
+struct au_vdir_dehstr {
+ struct hlist_node hash;
+ struct au_vdir_destr *str;
+} ____cacheline_aligned_in_smp;
+
+struct au_vdir_de {
+ ino_t de_ino;
+ unsigned char de_type;
+ /* caution: packed */
+ struct au_vdir_destr de_str;
+} __packed;
+
+struct au_vdir_wh {
+ struct hlist_node wh_hash;
+#ifdef CONFIG_AUFS_SHWH
+ ino_t wh_ino;
+ aufs_bindex_t wh_bindex;
+ unsigned char wh_type;
+#else
+ aufs_bindex_t wh_bindex;
+#endif
+ /* caution: packed */
+ struct au_vdir_destr wh_str;
+} __packed;
+
+union au_vdir_deblk_p {
+ unsigned char *deblk;
+ struct au_vdir_de *de;
+};
+
+struct au_vdir {
+ unsigned char **vd_deblk;
+ unsigned long vd_nblk;
+ struct {
+ unsigned long ul;
+ union au_vdir_deblk_p p;
+ } vd_last;
+
+ unsigned long vd_version;
+ unsigned int vd_deblk_sz;
+ unsigned long vd_jiffy;
+} ____cacheline_aligned_in_smp;
+
+/* ---------------------------------------------------------------------- */
+
+/* dir.c */
+extern const struct file_operations aufs_dir_fop;
+void au_add_nlink(struct inode *dir, struct inode *h_dir);
+void au_sub_nlink(struct inode *dir, struct inode *h_dir);
+loff_t au_dir_size(struct file *file, struct dentry *dentry);
+int au_test_empty_lower(struct dentry *dentry);
+int au_test_empty(struct dentry *dentry, struct au_nhash *whlist);
+
+/* vdir.c */
+unsigned int au_rdhash_est(loff_t sz);
+int au_nhash_alloc(struct au_nhash *nhash, unsigned int num_hash, gfp_t gfp);
+void au_nhash_wh_free(struct au_nhash *whlist);
+int au_nhash_test_longer_wh(struct au_nhash *whlist, aufs_bindex_t btgt,
+ int limit);
+int au_nhash_test_known_wh(struct au_nhash *whlist, char *name, int nlen);
+int au_nhash_append_wh(struct au_nhash *whlist, char *name, int nlen, ino_t ino,
+ unsigned int d_type, aufs_bindex_t bindex,
+ unsigned char shwh);
+void au_vdir_free(struct au_vdir *vdir);
+int au_vdir_init(struct file *file);
+int au_vdir_fill_de(struct file *file, void *dirent, filldir_t filldir);
+
+/* ioctl.c */
+long aufs_ioctl_dir(struct file *file, unsigned int cmd, unsigned long arg);
+
+#ifdef CONFIG_AUFS_RDU
+/* rdu.c */
+long au_rdu_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
+#else
+static inline long au_rdu_ioctl(struct file *file, unsigned int cmd,
+ unsigned long arg)
+{
+ return -EINVAL;
+}
+#endif
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_DIR_H__ */
diff --git a/ubuntu/aufs/dynop.c b/ubuntu/aufs/dynop.c
new file mode 100644
index 00000000000..5587c9c22e5
--- /dev/null
+++ b/ubuntu/aufs/dynop.c
@@ -0,0 +1,404 @@
+/*
+ * Copyright (C) 2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * dynamically customizable operations for regular files
+ */
+
+#include "aufs.h"
+
+#define DyPrSym(key) AuDbgSym(key->dk_op.dy_hop)
+
+/*
+ * How large will these lists be?
+ * Usually just a few elements, 20-30 at most for each, I guess.
+ */
+static struct au_splhead dynop[AuDyLast];
+
+static struct au_dykey *dy_gfind_get(struct au_splhead *spl, const void *h_op)
+{
+ struct au_dykey *key, *tmp;
+ struct list_head *head;
+
+ key = NULL;
+ head = &spl->head;
+ rcu_read_lock();
+ list_for_each_entry_rcu(tmp, head, dk_list)
+ if (tmp->dk_op.dy_hop == h_op) {
+ key = tmp;
+ kref_get(&key->dk_kref);
+ break;
+ }
+ rcu_read_unlock();
+
+ return key;
+}
+
+static struct au_dykey *dy_bradd(struct au_branch *br, struct au_dykey *key)
+{
+ struct au_dykey **k, *found;
+ const void *h_op = key->dk_op.dy_hop;
+ int i;
+
+ found = NULL;
+ k = br->br_dykey;
+ for (i = 0; i < AuBrDynOp; i++)
+ if (k[i]) {
+ if (k[i]->dk_op.dy_hop == h_op) {
+ found = k[i];
+ break;
+ }
+ } else
+ break;
+ if (!found) {
+ spin_lock(&br->br_dykey_lock);
+ for (; i < AuBrDynOp; i++)
+ if (k[i]) {
+ if (k[i]->dk_op.dy_hop == h_op) {
+ found = k[i];
+ break;
+ }
+ } else {
+ k[i] = key;
+ break;
+ }
+ spin_unlock(&br->br_dykey_lock);
+ BUG_ON(i == AuBrDynOp); /* expand the array */
+ }
+
+ return found;
+}
+
+/* kref_get() if @key is already added */
+static struct au_dykey *dy_gadd(struct au_splhead *spl, struct au_dykey *key)
+{
+ struct au_dykey *tmp, *found;
+ struct list_head *head;
+ const void *h_op = key->dk_op.dy_hop;
+
+ found = NULL;
+ head = &spl->head;
+ spin_lock(&spl->spin);
+ list_for_each_entry(tmp, head, dk_list)
+ if (tmp->dk_op.dy_hop == h_op) {
+ kref_get(&tmp->dk_kref);
+ found = tmp;
+ break;
+ }
+ if (!found)
+ list_add_rcu(&key->dk_list, head);
+ spin_unlock(&spl->spin);
+
+ if (!found)
+ DyPrSym(key);
+ return found;
+}
+
+static void dy_free_rcu(struct rcu_head *rcu)
+{
+ struct au_dykey *key;
+
+ key = container_of(rcu, struct au_dykey, dk_rcu);
+ DyPrSym(key);
+ kfree(key);
+}
+
+static void dy_free(struct kref *kref)
+{
+ struct au_dykey *key;
+ struct au_splhead *spl;
+
+ key = container_of(kref, struct au_dykey, dk_kref);
+ spl = dynop + key->dk_op.dy_type;
+ au_spl_del_rcu(&key->dk_list, spl);
+ call_rcu(&key->dk_rcu, dy_free_rcu);
+}
+
+void au_dy_put(struct au_dykey *key)
+{
+ kref_put(&key->dk_kref, dy_free);
+}
+
+/* ---------------------------------------------------------------------- */
+
+#define DyDbgSize(cnt, op) AuDebugOn(cnt != sizeof(op)/sizeof(void *))
+
+#ifdef CONFIG_AUFS_DEBUG
+#define DyDbgDeclare(cnt) unsigned int cnt = 0
+#define DyDbgInc(cnt) cnt++
+#else
+#define DyDbgDeclare(cnt) do {} while (0)
+#define DyDbgInc(cnt) do {} while (0)
+#endif
+
+#define DySet(func, dst, src, h_op, h_sb) do { \
+ DyDbgInc(cnt); \
+ if (h_op->func) { \
+ if (src.func) \
+ dst.func = src.func; \
+ else \
+ AuDbg("%s %s\n", au_sbtype(h_sb), #func); \
+ } \
+} while (0)
+
+#define DySetForce(func, dst, src) do { \
+ AuDebugOn(!src.func); \
+ DyDbgInc(cnt); \
+ dst.func = src.func; \
+} while (0)
+
+#define DySetAop(func) \
+ DySet(func, dyaop->da_op, aufs_aop, h_aop, h_sb)
+#define DySetAopForce(func) \
+ DySetForce(func, dyaop->da_op, aufs_aop)
+
+static void dy_aop(struct au_dykey *key, const void *h_op,
+ struct super_block *h_sb __maybe_unused)
+{
+ struct au_dyaop *dyaop = (void *)key;
+ const struct address_space_operations *h_aop = h_op;
+ DyDbgDeclare(cnt);
+
+ AuDbg("%s\n", au_sbtype(h_sb));
+
+ DySetAop(writepage);
+ DySetAopForce(readpage); /* force */
+ DySetAop(sync_page);
+ DySetAop(writepages);
+ DySetAop(set_page_dirty);
+ DySetAop(readpages);
+ DySetAop(write_begin);
+ DySetAop(write_end);
+ DySetAop(bmap);
+ DySetAop(invalidatepage);
+ DySetAop(releasepage);
+ /* these two will be changed according to an aufs mount option */
+ DySetAop(direct_IO);
+ DySetAop(get_xip_mem);
+ DySetAop(migratepage);
+ DySetAop(launder_page);
+ DySetAop(is_partially_uptodate);
+ DySetAop(error_remove_page);
+
+ DyDbgSize(cnt, *h_aop);
+ dyaop->da_get_xip_mem = h_aop->get_xip_mem;
+}
+
+#define DySetVmop(func) \
+ DySet(func, dyvmop->dv_op, aufs_vm_ops, h_vmop, h_sb)
+#define DySetVmopForce(func) \
+ DySetForce(func, dyvmop->dv_op, aufs_vm_ops)
+
+static void dy_vmop(struct au_dykey *key, const void *h_op,
+ struct super_block *h_sb __maybe_unused)
+{
+ struct au_dyvmop *dyvmop = (void *)key;
+ const struct vm_operations_struct *h_vmop = h_op;
+ DyDbgDeclare(cnt);
+
+ AuDbg("%s\n", au_sbtype(h_sb));
+
+ DySetVmop(open);
+ DySetVmop(close);
+ DySetVmop(fault);
+ DySetVmop(page_mkwrite);
+ DySetVmop(access);
+#ifdef CONFIG_NUMA
+ DySetVmop(set_policy);
+ DySetVmop(get_policy);
+ DySetVmop(migrate);
+#endif
+
+ DyDbgSize(cnt, *h_vmop);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static void dy_bug(struct kref *kref)
+{
+ BUG();
+}
+
+static struct au_dykey *dy_get(struct au_dynop *op, struct au_branch *br)
+{
+ struct au_dykey *key, *old;
+ struct au_splhead *spl;
+ static const struct {
+ unsigned int sz;
+ void (*set_op)(struct au_dykey *key, const void *h_op,
+ struct super_block *h_sb __maybe_unused);
+ } a[] = {
+ [AuDy_AOP] = {
+ .sz = sizeof(struct au_dyaop),
+ .set_op = dy_aop
+ },
+ [AuDy_VMOP] = {
+ .sz = sizeof(struct au_dyvmop),
+ .set_op = dy_vmop
+ }
+ }, *p;
+
+ spl = dynop + op->dy_type;
+ key = dy_gfind_get(spl, op->dy_hop);
+ if (key)
+ goto out_add; /* success */
+
+ p = a + op->dy_type;
+ key = kzalloc(p->sz, GFP_NOFS);
+ if (unlikely(!key)) {
+ key = ERR_PTR(-ENOMEM);
+ goto out;
+ }
+
+ key->dk_op.dy_hop = op->dy_hop;
+ kref_init(&key->dk_kref);
+ p->set_op(key, op->dy_hop, br->br_mnt->mnt_sb);
+ old = dy_gadd(spl, key);
+ if (old) {
+ kfree(key);
+ key = old;
+ }
+
+out_add:
+ old = dy_bradd(br, key);
+ if (old)
+ /* its ref-count should never be zero here */
+ kref_put(&key->dk_kref, dy_bug);
+out:
+ return key;
+}
+
+/* ---------------------------------------------------------------------- */
+/*
+ * Aufs prohibits O_DIRECT by defaut even if the branch supports it.
+ * This behaviour is neccessary to return an error from open(O_DIRECT) instead
+ * of the succeeding I/O. The dio mount option enables O_DIRECT and makes
+ * open(O_DIRECT) always succeed, but the succeeding I/O may return an error.
+ * See the aufs manual in detail.
+ *
+ * To keep this behaviour, aufs has to set NULL to ->get_xip_mem too, and the
+ * performance of fadvise() and madvise() may be affected.
+ */
+static void dy_adx(struct au_dyaop *dyaop, int do_dx)
+{
+ if (!do_dx) {
+ dyaop->da_op.direct_IO = NULL;
+ dyaop->da_op.get_xip_mem = NULL;
+ } else {
+ dyaop->da_op.direct_IO = aufs_aop.direct_IO;
+ dyaop->da_op.get_xip_mem = aufs_aop.get_xip_mem;
+ if (!dyaop->da_get_xip_mem)
+ dyaop->da_op.get_xip_mem = NULL;
+ }
+}
+
+static struct au_dyaop *dy_aget(struct au_branch *br,
+ const struct address_space_operations *h_aop,
+ int do_dx)
+{
+ struct au_dyaop *dyaop;
+ struct au_dynop op;
+
+ op.dy_type = AuDy_AOP;
+ op.dy_haop = h_aop;
+ dyaop = (void *)dy_get(&op, br);
+ if (IS_ERR(dyaop))
+ goto out;
+ dy_adx(dyaop, do_dx);
+
+out:
+ return dyaop;
+}
+
+int au_dy_iaop(struct inode *inode, aufs_bindex_t bindex,
+ struct inode *h_inode)
+{
+ int err, do_dx;
+ struct super_block *sb;
+ struct au_branch *br;
+ struct au_dyaop *dyaop;
+
+ AuDebugOn(!S_ISREG(h_inode->i_mode));
+ IiMustWriteLock(inode);
+
+ sb = inode->i_sb;
+ br = au_sbr(sb, bindex);
+ do_dx = !!au_opt_test(au_mntflags(sb), DIO);
+ dyaop = dy_aget(br, h_inode->i_mapping->a_ops, do_dx);
+ err = PTR_ERR(dyaop);
+ if (IS_ERR(dyaop))
+ /* unnecessary to call dy_fput() */
+ goto out;
+
+ err = 0;
+ inode->i_mapping->a_ops = &dyaop->da_op;
+
+out:
+ return err;
+}
+
+void au_dy_arefresh(int do_dx)
+{
+ struct au_splhead *spl;
+ struct list_head *head;
+ struct au_dykey *key;
+
+ spl = dynop + AuDy_AOP;
+ head = &spl->head;
+ spin_lock(&spl->spin);
+ list_for_each_entry(key, head, dk_list)
+ dy_adx((void *)key, do_dx);
+ spin_unlock(&spl->spin);
+}
+
+const struct vm_operations_struct *
+au_dy_vmop(struct file *file, struct au_branch *br,
+ const struct vm_operations_struct *h_vmop)
+{
+ struct au_dyvmop *dyvmop;
+ struct au_dynop op;
+
+ op.dy_type = AuDy_VMOP;
+ op.dy_hvmop = h_vmop;
+ dyvmop = (void *)dy_get(&op, br);
+ if (IS_ERR(dyvmop))
+ return (void *)dyvmop;
+ return &dyvmop->dv_op;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void __init au_dy_init(void)
+{
+ int i;
+
+ /* make sure that 'struct au_dykey *' can be any type */
+ BUILD_BUG_ON(offsetof(struct au_dyaop, da_key));
+ BUILD_BUG_ON(offsetof(struct au_dyvmop, dv_key));
+
+ for (i = 0; i < AuDyLast; i++)
+ au_spl_init(dynop + i);
+}
+
+void au_dy_fin(void)
+{
+ int i;
+
+ for (i = 0; i < AuDyLast; i++)
+ WARN_ON(!list_empty(&dynop[i].head));
+}
diff --git a/ubuntu/aufs/dynop.h b/ubuntu/aufs/dynop.h
new file mode 100644
index 00000000000..5ba0275bf8e
--- /dev/null
+++ b/ubuntu/aufs/dynop.h
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * dynamically customizable operations (for regular files only)
+ */
+
+#ifndef __AUFS_DYNOP_H__
+#define __AUFS_DYNOP_H__
+
+#ifdef __KERNEL__
+
+#include <linux/fs.h>
+#include <linux/mm.h>
+#include <linux/rcupdate.h>
+#include <linux/aufs_type.h>
+#include "inode.h"
+
+enum {AuDy_AOP, AuDy_VMOP, AuDyLast};
+
+struct au_dynop {
+ int dy_type;
+ union {
+ const void *dy_hop;
+ const struct address_space_operations *dy_haop;
+ const struct vm_operations_struct *dy_hvmop;
+ };
+};
+
+struct au_dykey {
+ union {
+ struct list_head dk_list;
+ struct rcu_head dk_rcu;
+ };
+ struct au_dynop dk_op;
+
+ /*
+ * during I am in the branch local array, kref is gotten. when the
+ * branch is removed, kref is put.
+ */
+ struct kref dk_kref;
+};
+
+/* stop unioning since their sizes are very different from each other */
+struct au_dyaop {
+ struct au_dykey da_key;
+ struct address_space_operations da_op; /* not const */
+ int (*da_get_xip_mem)(struct address_space *, pgoff_t, int,
+ void **, unsigned long *);
+};
+
+struct au_dyvmop {
+ struct au_dykey dv_key;
+ struct vm_operations_struct dv_op; /* not const */
+};
+
+/* ---------------------------------------------------------------------- */
+
+/* dynop.c */
+struct au_branch;
+void au_dy_put(struct au_dykey *key);
+int au_dy_iaop(struct inode *inode, aufs_bindex_t bindex,
+ struct inode *h_inode);
+void au_dy_arefresh(int do_dio);
+const struct vm_operations_struct *
+au_dy_vmop(struct file *file, struct au_branch *br,
+ const struct vm_operations_struct *h_vmop);
+
+void __init au_dy_init(void);
+void au_dy_fin(void);
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * Is it safe to replace a_ops during the inode/file is in operation?
+ * Yes, I hope so.
+ */
+static inline int au_dy_irefresh(struct inode *inode)
+{
+ int err;
+ aufs_bindex_t bstart;
+ struct inode *h_inode;
+
+ err = 0;
+ if (S_ISREG(inode->i_mode)) {
+ bstart = au_ibstart(inode);
+ h_inode = au_h_iptr(inode, bstart);
+ err = au_dy_iaop(inode, bstart, h_inode);
+ }
+ return err;
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_DYNOP_H__ */
diff --git a/ubuntu/aufs/export.c b/ubuntu/aufs/export.c
new file mode 100644
index 00000000000..b504e083999
--- /dev/null
+++ b/ubuntu/aufs/export.c
@@ -0,0 +1,801 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * export via nfs
+ */
+
+#include <linux/exportfs.h>
+#include <linux/file.h>
+#include <linux/mnt_namespace.h>
+#include <linux/namei.h>
+#include <linux/nsproxy.h>
+#include <linux/random.h>
+#include <linux/writeback.h>
+#include "aufs.h"
+
+union conv {
+#ifdef CONFIG_AUFS_INO_T_64
+ __u32 a[2];
+#else
+ __u32 a[1];
+#endif
+ ino_t ino;
+};
+
+static ino_t decode_ino(__u32 *a)
+{
+ union conv u;
+
+ BUILD_BUG_ON(sizeof(u.ino) != sizeof(u.a));
+ u.a[0] = a[0];
+#ifdef CONFIG_AUFS_INO_T_64
+ u.a[1] = a[1];
+#endif
+ return u.ino;
+}
+
+static void encode_ino(__u32 *a, ino_t ino)
+{
+ union conv u;
+
+ u.ino = ino;
+ a[0] = u.a[0];
+#ifdef CONFIG_AUFS_INO_T_64
+ a[1] = u.a[1];
+#endif
+}
+
+/* NFS file handle */
+enum {
+ Fh_br_id,
+ Fh_sigen,
+#ifdef CONFIG_AUFS_INO_T_64
+ /* support 64bit inode number */
+ Fh_ino1,
+ Fh_ino2,
+ Fh_dir_ino1,
+ Fh_dir_ino2,
+#else
+ Fh_ino1,
+ Fh_dir_ino1,
+#endif
+ Fh_igen,
+ Fh_h_type,
+ Fh_tail,
+
+ Fh_ino = Fh_ino1,
+ Fh_dir_ino = Fh_dir_ino1
+};
+
+static int au_test_anon(struct dentry *dentry)
+{
+ return !!(dentry->d_flags & DCACHE_DISCONNECTED);
+}
+
+/* ---------------------------------------------------------------------- */
+/* inode generation external table */
+
+int au_xigen_inc(struct inode *inode)
+{
+ int err;
+ loff_t pos;
+ ssize_t sz;
+ __u32 igen;
+ struct super_block *sb;
+ struct au_sbinfo *sbinfo;
+
+ err = 0;
+ sb = inode->i_sb;
+ sbinfo = au_sbi(sb);
+ /*
+ * temporary workaround for escaping from SiMustAnyLock() in
+ * au_mntflags(), since this function is called from au_iinfo_fin().
+ */
+ if (unlikely(!au_opt_test(sbinfo->si_mntflags, XINO)))
+ goto out;
+
+ pos = inode->i_ino;
+ pos *= sizeof(igen);
+ igen = inode->i_generation + 1;
+ sz = xino_fwrite(sbinfo->si_xwrite, sbinfo->si_xigen, &igen,
+ sizeof(igen), &pos);
+ if (sz == sizeof(igen))
+ goto out; /* success */
+
+ err = sz;
+ if (unlikely(sz >= 0)) {
+ err = -EIO;
+ AuIOErr("xigen error (%zd)\n", sz);
+ }
+
+ out:
+ return err;
+}
+
+int au_xigen_new(struct inode *inode)
+{
+ int err;
+ loff_t pos;
+ ssize_t sz;
+ struct super_block *sb;
+ struct au_sbinfo *sbinfo;
+ struct file *file;
+
+ err = 0;
+ /* todo: dirty, at mount time */
+ if (inode->i_ino == AUFS_ROOT_INO)
+ goto out;
+ sb = inode->i_sb;
+ SiMustAnyLock(sb);
+ if (unlikely(!au_opt_test(au_mntflags(sb), XINO)))
+ goto out;
+
+ err = -EFBIG;
+ pos = inode->i_ino;
+ if (unlikely(au_loff_max / sizeof(inode->i_generation) - 1 < pos)) {
+ AuIOErr1("too large i%lld\n", pos);
+ goto out;
+ }
+ pos *= sizeof(inode->i_generation);
+
+ err = 0;
+ sbinfo = au_sbi(sb);
+ file = sbinfo->si_xigen;
+ BUG_ON(!file);
+
+ if (i_size_read(file->f_dentry->d_inode)
+ < pos + sizeof(inode->i_generation)) {
+ inode->i_generation = atomic_inc_return(&sbinfo->si_xigen_next);
+ sz = xino_fwrite(sbinfo->si_xwrite, file, &inode->i_generation,
+ sizeof(inode->i_generation), &pos);
+ } else
+ sz = xino_fread(sbinfo->si_xread, file, &inode->i_generation,
+ sizeof(inode->i_generation), &pos);
+ if (sz == sizeof(inode->i_generation))
+ goto out; /* success */
+
+ err = sz;
+ if (unlikely(sz >= 0)) {
+ err = -EIO;
+ AuIOErr("xigen error (%zd)\n", sz);
+ }
+
+ out:
+ return err;
+}
+
+int au_xigen_set(struct super_block *sb, struct file *base)
+{
+ int err;
+ struct au_sbinfo *sbinfo;
+ struct file *file;
+
+ SiMustWriteLock(sb);
+
+ sbinfo = au_sbi(sb);
+ file = au_xino_create2(base, sbinfo->si_xigen);
+ err = PTR_ERR(file);
+ if (IS_ERR(file))
+ goto out;
+ err = 0;
+ if (sbinfo->si_xigen)
+ fput(sbinfo->si_xigen);
+ sbinfo->si_xigen = file;
+
+ out:
+ return err;
+}
+
+void au_xigen_clr(struct super_block *sb)
+{
+ struct au_sbinfo *sbinfo;
+
+ SiMustWriteLock(sb);
+
+ sbinfo = au_sbi(sb);
+ if (sbinfo->si_xigen) {
+ fput(sbinfo->si_xigen);
+ sbinfo->si_xigen = NULL;
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct dentry *decode_by_ino(struct super_block *sb, ino_t ino,
+ ino_t dir_ino)
+{
+ struct dentry *dentry, *d;
+ struct inode *inode;
+ unsigned int sigen;
+
+ dentry = NULL;
+ inode = ilookup(sb, ino);
+ if (!inode)
+ goto out;
+
+ dentry = ERR_PTR(-ESTALE);
+ sigen = au_sigen(sb);
+ if (unlikely(is_bad_inode(inode)
+ || IS_DEADDIR(inode)
+ || sigen != au_iigen(inode)))
+ goto out_iput;
+
+ dentry = NULL;
+ if (!dir_ino || S_ISDIR(inode->i_mode))
+ dentry = d_find_alias(inode);
+ else {
+ spin_lock(&dcache_lock);
+ list_for_each_entry(d, &inode->i_dentry, d_alias)
+ if (!au_test_anon(d)
+ && d->d_parent->d_inode->i_ino == dir_ino) {
+ dentry = dget_locked(d);
+ break;
+ }
+ spin_unlock(&dcache_lock);
+ }
+ if (unlikely(dentry && sigen != au_digen(dentry))) {
+ dput(dentry);
+ dentry = ERR_PTR(-ESTALE);
+ }
+
+ out_iput:
+ iput(inode);
+ out:
+ return dentry;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* todo: dirty? */
+/* if exportfs_decode_fh() passed vfsmount*, we could be happy */
+
+struct au_compare_mnt_args {
+ /* input */
+ struct super_block *sb;
+
+ /* output */
+ struct vfsmount *mnt;
+};
+
+static int au_compare_mnt(struct vfsmount *mnt, void *arg)
+{
+ struct au_compare_mnt_args *a = arg;
+
+ if (mnt->mnt_sb != a->sb)
+ return 0;
+ a->mnt = mntget(mnt);
+ return 1;
+}
+
+static struct vfsmount *au_mnt_get(struct super_block *sb)
+{
+ int err;
+ struct au_compare_mnt_args args = {
+ .sb = sb
+ };
+ struct mnt_namespace *ns;
+
+ /* no get/put ?? */
+ AuDebugOn(!current->nsproxy);
+ ns = current->nsproxy->mnt_ns;
+ AuDebugOn(!ns);
+ err = iterate_mounts(au_compare_mnt, &args, ns->root);
+ AuDebugOn(!err);
+ AuDebugOn(!args.mnt);
+ return args.mnt;
+}
+
+struct au_nfsd_si_lock {
+ unsigned int sigen;
+ aufs_bindex_t br_id;
+ unsigned char force_lock;
+};
+
+static aufs_bindex_t si_nfsd_read_lock(struct super_block *sb,
+ struct au_nfsd_si_lock *nsi_lock)
+{
+ aufs_bindex_t bindex;
+
+ si_read_lock(sb, AuLock_FLUSH);
+
+ /* branch id may be wrapped around */
+ bindex = au_br_index(sb, nsi_lock->br_id);
+ if (bindex >= 0 && nsi_lock->sigen + AUFS_BRANCH_MAX > au_sigen(sb))
+ goto out; /* success */
+
+ if (!nsi_lock->force_lock)
+ si_read_unlock(sb);
+ bindex = -1;
+
+ out:
+ return bindex;
+}
+
+struct find_name_by_ino {
+ int called, found;
+ ino_t ino;
+ char *name;
+ int namelen;
+};
+
+static int
+find_name_by_ino(void *arg, const char *name, int namelen, loff_t offset,
+ u64 ino, unsigned int d_type)
+{
+ struct find_name_by_ino *a = arg;
+
+ a->called++;
+ if (a->ino != ino)
+ return 0;
+
+ memcpy(a->name, name, namelen);
+ a->namelen = namelen;
+ a->found = 1;
+ return 1;
+}
+
+static struct dentry *au_lkup_by_ino(struct path *path, ino_t ino,
+ struct au_nfsd_si_lock *nsi_lock)
+{
+ struct dentry *dentry, *parent;
+ struct file *file;
+ struct inode *dir;
+ struct find_name_by_ino arg;
+ int err;
+
+ parent = path->dentry;
+ if (nsi_lock)
+ si_read_unlock(parent->d_sb);
+ file = vfsub_dentry_open(path, au_dir_roflags);
+ dentry = (void *)file;
+ if (IS_ERR(file))
+ goto out;
+
+ dentry = ERR_PTR(-ENOMEM);
+ arg.name = __getname_gfp(GFP_NOFS);
+ if (unlikely(!arg.name))
+ goto out_file;
+ arg.ino = ino;
+ arg.found = 0;
+ do {
+ arg.called = 0;
+ /* smp_mb(); */
+ err = vfsub_readdir(file, find_name_by_ino, &arg);
+ } while (!err && !arg.found && arg.called);
+ dentry = ERR_PTR(err);
+ if (unlikely(err))
+ goto out_name;
+ dentry = ERR_PTR(-ENOENT);
+ if (!arg.found)
+ goto out_name;
+
+ /* do not call au_lkup_one() */
+ dir = parent->d_inode;
+ mutex_lock(&dir->i_mutex);
+ dentry = vfsub_lookup_one_len(arg.name, parent, arg.namelen);
+ mutex_unlock(&dir->i_mutex);
+ AuTraceErrPtr(dentry);
+ if (IS_ERR(dentry))
+ goto out_name;
+ AuDebugOn(au_test_anon(dentry));
+ if (unlikely(!dentry->d_inode)) {
+ dput(dentry);
+ dentry = ERR_PTR(-ENOENT);
+ }
+
+ out_name:
+ __putname(arg.name);
+ out_file:
+ fput(file);
+ out:
+ if (unlikely(nsi_lock
+ && si_nfsd_read_lock(parent->d_sb, nsi_lock) < 0))
+ if (!IS_ERR(dentry)) {
+ dput(dentry);
+ dentry = ERR_PTR(-ESTALE);
+ }
+ AuTraceErrPtr(dentry);
+ return dentry;
+}
+
+static struct dentry *decode_by_dir_ino(struct super_block *sb, ino_t ino,
+ ino_t dir_ino,
+ struct au_nfsd_si_lock *nsi_lock)
+{
+ struct dentry *dentry;
+ struct path path;
+
+ if (dir_ino != AUFS_ROOT_INO) {
+ path.dentry = decode_by_ino(sb, dir_ino, 0);
+ dentry = path.dentry;
+ if (!path.dentry || IS_ERR(path.dentry))
+ goto out;
+ AuDebugOn(au_test_anon(path.dentry));
+ } else
+ path.dentry = dget(sb->s_root);
+
+ path.mnt = au_mnt_get(sb);
+ dentry = au_lkup_by_ino(&path, ino, nsi_lock);
+ path_put(&path);
+
+ out:
+ AuTraceErrPtr(dentry);
+ return dentry;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int h_acceptable(void *expv, struct dentry *dentry)
+{
+ return 1;
+}
+
+static char *au_build_path(struct dentry *h_parent, struct path *h_rootpath,
+ char *buf, int len, struct super_block *sb)
+{
+ char *p;
+ int n;
+ struct path path;
+
+ p = d_path(h_rootpath, buf, len);
+ if (IS_ERR(p))
+ goto out;
+ n = strlen(p);
+
+ path.mnt = h_rootpath->mnt;
+ path.dentry = h_parent;
+ p = d_path(&path, buf, len);
+ if (IS_ERR(p))
+ goto out;
+ if (n != 1)
+ p += n;
+
+ path.mnt = au_mnt_get(sb);
+ path.dentry = sb->s_root;
+ p = d_path(&path, buf, len - strlen(p));
+ mntput(path.mnt);
+ if (IS_ERR(p))
+ goto out;
+ if (n != 1)
+ p[strlen(p)] = '/';
+
+ out:
+ AuTraceErrPtr(p);
+ return p;
+}
+
+static
+struct dentry *decode_by_path(struct super_block *sb, aufs_bindex_t bindex,
+ ino_t ino, __u32 *fh, int fh_len,
+ struct au_nfsd_si_lock *nsi_lock)
+{
+ struct dentry *dentry, *h_parent, *root;
+ struct super_block *h_sb;
+ char *pathname, *p;
+ struct vfsmount *h_mnt;
+ struct au_branch *br;
+ int err;
+ struct path path;
+
+ br = au_sbr(sb, bindex);
+ /* au_br_get(br); */
+ h_mnt = br->br_mnt;
+ h_sb = h_mnt->mnt_sb;
+ /* todo: call lower fh_to_dentry()? fh_to_parent()? */
+ h_parent = exportfs_decode_fh(h_mnt, (void *)(fh + Fh_tail),
+ fh_len - Fh_tail, fh[Fh_h_type],
+ h_acceptable, /*context*/NULL);
+ dentry = h_parent;
+ if (unlikely(!h_parent || IS_ERR(h_parent))) {
+ AuWarn1("%s decode_fh failed, %ld\n",
+ au_sbtype(h_sb), PTR_ERR(h_parent));
+ goto out;
+ }
+ dentry = NULL;
+ if (unlikely(au_test_anon(h_parent))) {
+ AuWarn1("%s decode_fh returned a disconnected dentry\n",
+ au_sbtype(h_sb));
+ goto out_h_parent;
+ }
+
+ dentry = ERR_PTR(-ENOMEM);
+ pathname = (void *)__get_free_page(GFP_NOFS);
+ if (unlikely(!pathname))
+ goto out_h_parent;
+
+ root = sb->s_root;
+ path.mnt = h_mnt;
+ di_read_lock_parent(root, !AuLock_IR);
+ path.dentry = au_h_dptr(root, bindex);
+ di_read_unlock(root, !AuLock_IR);
+ p = au_build_path(h_parent, &path, pathname, PAGE_SIZE, sb);
+ dentry = (void *)p;
+ if (IS_ERR(p))
+ goto out_pathname;
+
+ si_read_unlock(sb);
+ err = vfsub_kern_path(p, LOOKUP_FOLLOW | LOOKUP_DIRECTORY, &path);
+ dentry = ERR_PTR(err);
+ if (unlikely(err))
+ goto out_relock;
+
+ dentry = ERR_PTR(-ENOENT);
+ AuDebugOn(au_test_anon(path.dentry));
+ if (unlikely(!path.dentry->d_inode))
+ goto out_path;
+
+ if (ino != path.dentry->d_inode->i_ino)
+ dentry = au_lkup_by_ino(&path, ino, /*nsi_lock*/NULL);
+ else
+ dentry = dget(path.dentry);
+
+ out_path:
+ path_put(&path);
+ out_relock:
+ if (unlikely(si_nfsd_read_lock(sb, nsi_lock) < 0))
+ if (!IS_ERR(dentry)) {
+ dput(dentry);
+ dentry = ERR_PTR(-ESTALE);
+ }
+ out_pathname:
+ free_page((unsigned long)pathname);
+ out_h_parent:
+ dput(h_parent);
+ out:
+ /* au_br_put(br); */
+ AuTraceErrPtr(dentry);
+ return dentry;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct dentry *
+aufs_fh_to_dentry(struct super_block *sb, struct fid *fid, int fh_len,
+ int fh_type)
+{
+ struct dentry *dentry;
+ __u32 *fh = fid->raw;
+ ino_t ino, dir_ino;
+ aufs_bindex_t bindex;
+ struct au_nfsd_si_lock nsi_lock = {
+ .force_lock = 0
+ };
+
+ dentry = ERR_PTR(-ESTALE);
+ /* it should never happen, but the file handle is unreliable */
+ if (unlikely(fh_len < Fh_tail))
+ goto out;
+ nsi_lock.sigen = fh[Fh_sigen];
+ nsi_lock.br_id = fh[Fh_br_id];
+
+ /* branch id may be wrapped around */
+ bindex = si_nfsd_read_lock(sb, &nsi_lock);
+ if (unlikely(bindex < 0))
+ goto out;
+ nsi_lock.force_lock = 1;
+
+ /* is this inode still cached? */
+ ino = decode_ino(fh + Fh_ino);
+ /* it should never happen */
+ if (unlikely(ino == AUFS_ROOT_INO))
+ goto out;
+
+ dir_ino = decode_ino(fh + Fh_dir_ino);
+ dentry = decode_by_ino(sb, ino, dir_ino);
+ if (IS_ERR(dentry))
+ goto out_unlock;
+ if (dentry)
+ goto accept;
+
+ /* is the parent dir cached? */
+ dentry = decode_by_dir_ino(sb, ino, dir_ino, &nsi_lock);
+ if (IS_ERR(dentry))
+ goto out_unlock;
+ if (dentry)
+ goto accept;
+
+ /* lookup path */
+ dentry = decode_by_path(sb, bindex, ino, fh, fh_len, &nsi_lock);
+ if (IS_ERR(dentry))
+ goto out_unlock;
+ if (unlikely(!dentry))
+ /* todo?: make it ESTALE */
+ goto out_unlock;
+
+ accept:
+ if (dentry->d_inode->i_generation == fh[Fh_igen])
+ goto out_unlock; /* success */
+
+ dput(dentry);
+ dentry = ERR_PTR(-ESTALE);
+ out_unlock:
+ si_read_unlock(sb);
+ out:
+ AuTraceErrPtr(dentry);
+ return dentry;
+}
+
+#if 0 /* reserved for future use */
+/* support subtreecheck option */
+static struct dentry *aufs_fh_to_parent(struct super_block *sb, struct fid *fid,
+ int fh_len, int fh_type)
+{
+ struct dentry *parent;
+ __u32 *fh = fid->raw;
+ ino_t dir_ino;
+
+ dir_ino = decode_ino(fh + Fh_dir_ino);
+ parent = decode_by_ino(sb, dir_ino, 0);
+ if (IS_ERR(parent))
+ goto out;
+ if (!parent)
+ parent = decode_by_path(sb, au_br_index(sb, fh[Fh_br_id]),
+ dir_ino, fh, fh_len);
+
+ out:
+ AuTraceErrPtr(parent);
+ return parent;
+}
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+static int aufs_encode_fh(struct dentry *dentry, __u32 *fh, int *max_len,
+ int connectable)
+{
+ int err;
+ aufs_bindex_t bindex, bend;
+ struct super_block *sb, *h_sb;
+ struct inode *inode;
+ struct dentry *parent, *h_parent;
+ struct au_branch *br;
+
+ AuDebugOn(au_test_anon(dentry));
+
+ parent = NULL;
+ err = -ENOSPC;
+ if (unlikely(*max_len <= Fh_tail)) {
+ AuWarn1("NFSv2 client (max_len %d)?\n", *max_len);
+ goto out;
+ }
+
+ err = FILEID_ROOT;
+ if (IS_ROOT(dentry)) {
+ AuDebugOn(dentry->d_inode->i_ino != AUFS_ROOT_INO);
+ goto out;
+ }
+
+ err = -EIO;
+ h_parent = NULL;
+ sb = dentry->d_sb;
+ aufs_read_lock(dentry, AuLock_FLUSH | AuLock_IR);
+ parent = dget_parent(dentry);
+ di_read_lock_parent(parent, !AuLock_IR);
+ inode = dentry->d_inode;
+ AuDebugOn(!inode);
+#ifdef CONFIG_AUFS_DEBUG
+ if (unlikely(!au_opt_test(au_mntflags(sb), XINO)))
+ AuWarn1("NFS-exporting requires xino\n");
+#endif
+
+ bend = au_dbtaildir(parent);
+ for (bindex = au_dbstart(parent); bindex <= bend; bindex++) {
+ h_parent = au_h_dptr(parent, bindex);
+ if (h_parent) {
+ dget(h_parent);
+ break;
+ }
+ }
+ if (unlikely(!h_parent))
+ goto out_unlock;
+
+ err = -EPERM;
+ br = au_sbr(sb, bindex);
+ h_sb = br->br_mnt->mnt_sb;
+ if (unlikely(!h_sb->s_export_op)) {
+ AuErr1("%s branch is not exportable\n", au_sbtype(h_sb));
+ goto out_dput;
+ }
+
+ fh[Fh_br_id] = br->br_id;
+ fh[Fh_sigen] = au_sigen(sb);
+ encode_ino(fh + Fh_ino, inode->i_ino);
+ encode_ino(fh + Fh_dir_ino, parent->d_inode->i_ino);
+ fh[Fh_igen] = inode->i_generation;
+
+ *max_len -= Fh_tail;
+ fh[Fh_h_type] = exportfs_encode_fh(h_parent, (void *)(fh + Fh_tail),
+ max_len,
+ /*connectable or subtreecheck*/0);
+ err = fh[Fh_h_type];
+ *max_len += Fh_tail;
+ /* todo: macros? */
+ if (err != 255)
+ err = 99;
+ else
+ AuWarn1("%s encode_fh failed\n", au_sbtype(h_sb));
+
+ out_dput:
+ dput(h_parent);
+ out_unlock:
+ di_read_unlock(parent, !AuLock_IR);
+ dput(parent);
+ aufs_read_unlock(dentry, AuLock_IR);
+ out:
+ if (unlikely(err < 0))
+ err = 255;
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int aufs_commit_metadata(struct inode *inode)
+{
+ int err;
+ aufs_bindex_t bindex;
+ struct super_block *sb;
+ struct inode *h_inode;
+ int (*f)(struct inode *inode);
+
+ sb = inode->i_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ ii_write_lock_child(inode);
+ bindex = au_ibstart(inode);
+ AuDebugOn(bindex < 0);
+ h_inode = au_h_iptr(inode, bindex);
+
+ f = h_inode->i_sb->s_export_op->commit_metadata;
+ if (f)
+ err = f(h_inode);
+ else {
+ struct writeback_control wbc = {
+ .sync_mode = WB_SYNC_ALL,
+ .nr_to_write = 0 /* metadata only */
+ };
+
+ err = sync_inode(h_inode, &wbc);
+ }
+
+ au_cpup_attr_timesizes(inode);
+ ii_write_unlock(inode);
+ si_read_unlock(sb);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct export_operations aufs_export_op = {
+ .fh_to_dentry = aufs_fh_to_dentry,
+ /* .fh_to_parent = aufs_fh_to_parent, */
+ .encode_fh = aufs_encode_fh,
+ .commit_metadata = aufs_commit_metadata
+};
+
+void au_export_init(struct super_block *sb)
+{
+ struct au_sbinfo *sbinfo;
+ __u32 u;
+
+ sb->s_export_op = &aufs_export_op;
+ sbinfo = au_sbi(sb);
+ sbinfo->si_xigen = NULL;
+ get_random_bytes(&u, sizeof(u));
+ BUILD_BUG_ON(sizeof(u) != sizeof(int));
+ atomic_set(&sbinfo->si_xigen_next, u);
+}
diff --git a/ubuntu/aufs/f_op.c b/ubuntu/aufs/f_op.c
new file mode 100644
index 00000000000..81ccb836ad3
--- /dev/null
+++ b/ubuntu/aufs/f_op.c
@@ -0,0 +1,884 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * file and vm operations
+ */
+
+#include <linux/file.h>
+#include <linux/fs_stack.h>
+#include <linux/mman.h>
+#include <linux/mm.h>
+#include <linux/security.h>
+#include "aufs.h"
+
+int au_do_open_nondir(struct file *file, int flags)
+{
+ int err;
+ aufs_bindex_t bindex;
+ struct file *h_file;
+ struct dentry *dentry;
+ struct au_finfo *finfo;
+
+ FiMustWriteLock(file);
+
+ err = 0;
+ dentry = file->f_dentry;
+ finfo = au_fi(file);
+ memset(&finfo->fi_htop, 0, sizeof(finfo->fi_htop));
+ finfo->fi_hvmop = NULL;
+ bindex = au_dbstart(dentry);
+ h_file = au_h_open(dentry, bindex, flags, file);
+ if (IS_ERR(h_file))
+ err = PTR_ERR(h_file);
+ else {
+ au_set_fbstart(file, bindex);
+ au_set_h_fptr(file, bindex, h_file);
+ au_update_figen(file);
+ /* todo: necessary? */
+ /* file->f_ra = h_file->f_ra; */
+ }
+ return err;
+}
+
+static int aufs_open_nondir(struct inode *inode __maybe_unused,
+ struct file *file)
+{
+ int err;
+ struct super_block *sb;
+
+ AuDbg("%.*s, f_ flags 0x%x, f_mode 0x%x\n",
+ AuDLNPair(file->f_dentry), vfsub_file_flags(file),
+ file->f_mode);
+
+ sb = file->f_dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ err = au_do_open(file, au_do_open_nondir, /*fidir*/NULL);
+ si_read_unlock(sb);
+ return err;
+}
+
+int aufs_release_nondir(struct inode *inode __maybe_unused, struct file *file)
+{
+ struct au_finfo *finfo;
+ aufs_bindex_t bindex;
+
+ finfo = au_fi(file);
+ bindex = finfo->fi_btop;
+ if (bindex >= 0)
+ au_set_h_fptr(file, bindex, NULL);
+
+ au_finfo_fin(file);
+ return 0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_do_flush_nondir(struct file *file, fl_owner_t id)
+{
+ int err;
+ struct file *h_file;
+
+ err = 0;
+ h_file = au_hf_top(file);
+ if (h_file)
+ err = vfsub_flush(h_file, id);
+ return err;
+}
+
+static int aufs_flush_nondir(struct file *file, fl_owner_t id)
+{
+ return au_do_flush(file, id, au_do_flush_nondir);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static ssize_t aufs_read(struct file *file, char __user *buf, size_t count,
+ loff_t *ppos)
+{
+ ssize_t err;
+ struct dentry *dentry;
+ struct file *h_file;
+ struct super_block *sb;
+
+ dentry = file->f_dentry;
+ sb = dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0);
+ if (unlikely(err))
+ goto out;
+
+ h_file = au_hf_top(file);
+ err = vfsub_read_u(h_file, buf, count, ppos);
+ /* todo: necessary? */
+ /* file->f_ra = h_file->f_ra; */
+ fsstack_copy_attr_atime(dentry->d_inode, h_file->f_dentry->d_inode);
+
+ di_read_unlock(dentry, AuLock_IR);
+ fi_read_unlock(file);
+ out:
+ si_read_unlock(sb);
+ return err;
+}
+
+static ssize_t aufs_write(struct file *file, const char __user *ubuf,
+ size_t count, loff_t *ppos)
+{
+ ssize_t err;
+ struct au_pin pin;
+ struct dentry *dentry;
+ struct inode *inode;
+ struct super_block *sb;
+ struct file *h_file;
+ char __user *buf = (char __user *)ubuf;
+
+ dentry = file->f_dentry;
+ sb = dentry->d_sb;
+ inode = dentry->d_inode;
+ mutex_lock(&inode->i_mutex);
+ si_read_lock(sb, AuLock_FLUSH);
+
+ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1);
+ if (unlikely(err))
+ goto out;
+
+ err = au_ready_to_write(file, -1, &pin);
+ di_downgrade_lock(dentry, AuLock_IR);
+ if (unlikely(err))
+ goto out_unlock;
+
+ h_file = au_hf_top(file);
+ au_unpin(&pin);
+ err = vfsub_write_u(h_file, buf, count, ppos);
+ au_cpup_attr_timesizes(inode);
+ inode->i_mode = h_file->f_dentry->d_inode->i_mode;
+
+ out_unlock:
+ di_read_unlock(dentry, AuLock_IR);
+ fi_write_unlock(file);
+ out:
+ si_read_unlock(sb);
+ mutex_unlock(&inode->i_mutex);
+ return err;
+}
+
+static ssize_t au_do_aio(struct file *h_file, int rw, struct kiocb *kio,
+ const struct iovec *iov, unsigned long nv, loff_t pos)
+{
+ ssize_t err;
+ struct file *file;
+ ssize_t (*func)(struct kiocb *, const struct iovec *, unsigned long,
+ loff_t);
+
+ err = security_file_permission(h_file, rw);
+ if (unlikely(err))
+ goto out;
+
+ err = -ENOSYS;
+ func = NULL;
+ if (rw == MAY_READ)
+ func = h_file->f_op->aio_read;
+ else if (rw == MAY_WRITE)
+ func = h_file->f_op->aio_write;
+ if (func) {
+ file = kio->ki_filp;
+ kio->ki_filp = h_file;
+ err = func(kio, iov, nv, pos);
+ kio->ki_filp = file;
+ } else
+ /* currently there is no such fs */
+ WARN_ON_ONCE(1);
+
+ out:
+ return err;
+}
+
+static ssize_t aufs_aio_read(struct kiocb *kio, const struct iovec *iov,
+ unsigned long nv, loff_t pos)
+{
+ ssize_t err;
+ struct file *file, *h_file;
+ struct dentry *dentry;
+ struct super_block *sb;
+
+ file = kio->ki_filp;
+ dentry = file->f_dentry;
+ sb = dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0);
+ if (unlikely(err))
+ goto out;
+
+ h_file = au_hf_top(file);
+ err = au_do_aio(h_file, MAY_READ, kio, iov, nv, pos);
+ /* todo: necessary? */
+ /* file->f_ra = h_file->f_ra; */
+ fsstack_copy_attr_atime(dentry->d_inode, h_file->f_dentry->d_inode);
+ di_read_unlock(dentry, AuLock_IR);
+ fi_read_unlock(file);
+
+ out:
+ si_read_unlock(sb);
+ return err;
+}
+
+static ssize_t aufs_aio_write(struct kiocb *kio, const struct iovec *iov,
+ unsigned long nv, loff_t pos)
+{
+ ssize_t err;
+ struct au_pin pin;
+ struct dentry *dentry;
+ struct inode *inode;
+ struct super_block *sb;
+ struct file *file, *h_file;
+
+ file = kio->ki_filp;
+ dentry = file->f_dentry;
+ sb = dentry->d_sb;
+ inode = dentry->d_inode;
+ mutex_lock(&inode->i_mutex);
+ si_read_lock(sb, AuLock_FLUSH);
+ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1);
+ if (unlikely(err))
+ goto out;
+
+ err = au_ready_to_write(file, -1, &pin);
+ di_downgrade_lock(dentry, AuLock_IR);
+ if (unlikely(err))
+ goto out_unlock;
+
+ au_unpin(&pin);
+ h_file = au_hf_top(file);
+ err = au_do_aio(h_file, MAY_WRITE, kio, iov, nv, pos);
+ au_cpup_attr_timesizes(inode);
+ inode->i_mode = h_file->f_dentry->d_inode->i_mode;
+
+ out_unlock:
+ di_read_unlock(dentry, AuLock_IR);
+ fi_write_unlock(file);
+ out:
+ si_read_unlock(sb);
+ mutex_unlock(&inode->i_mutex);
+ return err;
+}
+
+static ssize_t aufs_splice_read(struct file *file, loff_t *ppos,
+ struct pipe_inode_info *pipe, size_t len,
+ unsigned int flags)
+{
+ ssize_t err;
+ struct file *h_file;
+ struct dentry *dentry;
+ struct super_block *sb;
+
+ dentry = file->f_dentry;
+ sb = dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0);
+ if (unlikely(err))
+ goto out;
+
+ err = -EINVAL;
+ h_file = au_hf_top(file);
+ if (au_test_loopback_kthread()) {
+ file->f_mapping = h_file->f_mapping;
+ smp_mb(); /* unnecessary? */
+ }
+ err = vfsub_splice_to(h_file, ppos, pipe, len, flags);
+ /* todo: necessasry? */
+ /* file->f_ra = h_file->f_ra; */
+ fsstack_copy_attr_atime(dentry->d_inode, h_file->f_dentry->d_inode);
+
+ di_read_unlock(dentry, AuLock_IR);
+ fi_read_unlock(file);
+
+ out:
+ si_read_unlock(sb);
+ return err;
+}
+
+static ssize_t
+aufs_splice_write(struct pipe_inode_info *pipe, struct file *file, loff_t *ppos,
+ size_t len, unsigned int flags)
+{
+ ssize_t err;
+ struct au_pin pin;
+ struct dentry *dentry;
+ struct inode *inode;
+ struct super_block *sb;
+ struct file *h_file;
+
+ dentry = file->f_dentry;
+ inode = dentry->d_inode;
+ mutex_lock(&inode->i_mutex);
+ sb = dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+
+ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1);
+ if (unlikely(err))
+ goto out;
+
+ err = au_ready_to_write(file, -1, &pin);
+ di_downgrade_lock(dentry, AuLock_IR);
+ if (unlikely(err))
+ goto out_unlock;
+
+ h_file = au_hf_top(file);
+ au_unpin(&pin);
+ err = vfsub_splice_from(pipe, h_file, ppos, len, flags);
+ au_cpup_attr_timesizes(inode);
+ inode->i_mode = h_file->f_dentry->d_inode->i_mode;
+
+ out_unlock:
+ di_read_unlock(dentry, AuLock_IR);
+ fi_write_unlock(file);
+ out:
+ si_read_unlock(sb);
+ mutex_unlock(&inode->i_mutex);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct file *au_safe_file(struct vm_area_struct *vma)
+{
+ struct file *file;
+
+ file = vma->vm_file;
+ if (file->private_data && au_test_aufs(file->f_dentry->d_sb))
+ return file;
+ return NULL;
+}
+
+static void au_reset_file(struct vm_area_struct *vma, struct file *file)
+{
+ vma->vm_file = file;
+ /* smp_mb(); */ /* flush vm_file */
+}
+
+static int aufs_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+{
+ int err;
+ static DECLARE_WAIT_QUEUE_HEAD(wq);
+ struct file *file, *h_file;
+ struct au_finfo *finfo;
+
+ /* todo: non-robr mode, user vm_file as it is? */
+ wait_event(wq, (file = au_safe_file(vma)));
+
+ /* do not revalidate, no si lock */
+ finfo = au_fi(file);
+ AuDebugOn(finfo->fi_hdir);
+ h_file = finfo->fi_htop.hf_file;
+ AuDebugOn(!h_file || !finfo->fi_hvmop);
+
+ mutex_lock(&finfo->fi_vm_mtx);
+ vma->vm_file = h_file;
+ err = finfo->fi_hvmop->fault(vma, vmf);
+ /* todo: necessary? */
+ /* file->f_ra = h_file->f_ra; */
+ au_reset_file(vma, file);
+ mutex_unlock(&finfo->fi_vm_mtx);
+#if 0 /* def CONFIG_SMP */
+ /* wake_up_nr(&wq, online_cpu - 1); */
+ wake_up_all(&wq);
+#else
+ wake_up(&wq);
+#endif
+
+ return err;
+}
+
+static int aufs_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
+{
+ int err;
+ static DECLARE_WAIT_QUEUE_HEAD(wq);
+ struct file *file, *h_file;
+ struct au_finfo *finfo;
+
+ wait_event(wq, (file = au_safe_file(vma)));
+
+ finfo = au_fi(file);
+ AuDebugOn(finfo->fi_hdir);
+ h_file = finfo->fi_htop.hf_file;
+ AuDebugOn(!h_file || !finfo->fi_hvmop);
+
+ mutex_lock(&finfo->fi_vm_mtx);
+ vma->vm_file = h_file;
+ err = finfo->fi_hvmop->page_mkwrite(vma, vmf);
+ au_reset_file(vma, file);
+ mutex_unlock(&finfo->fi_vm_mtx);
+ wake_up(&wq);
+
+ return err;
+}
+
+static void aufs_vm_close(struct vm_area_struct *vma)
+{
+ static DECLARE_WAIT_QUEUE_HEAD(wq);
+ struct file *file, *h_file;
+ struct au_finfo *finfo;
+
+ wait_event(wq, (file = au_safe_file(vma)));
+
+ finfo = au_fi(file);
+ AuDebugOn(finfo->fi_hdir);
+ h_file = finfo->fi_htop.hf_file;
+ AuDebugOn(!h_file || !finfo->fi_hvmop);
+
+ mutex_lock(&finfo->fi_vm_mtx);
+ vma->vm_file = h_file;
+ finfo->fi_hvmop->close(vma);
+ au_reset_file(vma, file);
+ mutex_unlock(&finfo->fi_vm_mtx);
+ wake_up(&wq);
+}
+
+const struct vm_operations_struct aufs_vm_ops = {
+ .close = aufs_vm_close,
+ .fault = aufs_fault,
+ .page_mkwrite = aufs_page_mkwrite
+};
+
+/* ---------------------------------------------------------------------- */
+
+/* cf. linux/include/linux/mman.h: calc_vm_prot_bits() */
+#define AuConv_VM_PROT(f, b) _calc_vm_trans(f, VM_##b, PROT_##b)
+
+static unsigned long au_arch_prot_conv(unsigned long flags)
+{
+ /* currently ppc64 only */
+#ifdef CONFIG_PPC64
+ /* cf. linux/arch/powerpc/include/asm/mman.h */
+ AuDebugOn(arch_calc_vm_prot_bits(-1) != VM_SAO);
+ return AuConv_VM_PROT(flags, SAO);
+#else
+ AuDebugOn(arch_calc_vm_prot_bits(-1));
+ return 0;
+#endif
+}
+
+static unsigned long au_prot_conv(unsigned long flags)
+{
+ return AuConv_VM_PROT(flags, READ)
+ | AuConv_VM_PROT(flags, WRITE)
+ | AuConv_VM_PROT(flags, EXEC)
+ | au_arch_prot_conv(flags);
+}
+
+/* cf. linux/include/linux/mman.h: calc_vm_flag_bits() */
+#define AuConv_VM_MAP(f, b) _calc_vm_trans(f, VM_##b, MAP_##b)
+
+static unsigned long au_flag_conv(unsigned long flags)
+{
+ return AuConv_VM_MAP(flags, GROWSDOWN)
+ | AuConv_VM_MAP(flags, DENYWRITE)
+ | AuConv_VM_MAP(flags, EXECUTABLE)
+ | AuConv_VM_MAP(flags, LOCKED);
+}
+
+static struct vm_operations_struct *
+au_hvmop(struct file *h_file, struct vm_area_struct *vma, unsigned long *flags)
+{
+ struct vm_operations_struct *h_vmop;
+ unsigned long prot;
+ int err;
+
+ h_vmop = ERR_PTR(-ENODEV);
+ if (!h_file->f_op || !h_file->f_op->mmap)
+ goto out;
+
+ prot = au_prot_conv(vma->vm_flags);
+ err = security_file_mmap(h_file, /*reqprot*/prot, prot,
+ au_flag_conv(vma->vm_flags), vma->vm_start, 0);
+ h_vmop = ERR_PTR(err);
+ if (unlikely(err))
+ goto out;
+
+ err = h_file->f_op->mmap(h_file, vma);
+ h_vmop = ERR_PTR(err);
+ if (unlikely(err))
+ goto out;
+
+ /* oops, it became 'const' */
+ h_vmop = (struct vm_operations_struct *)vma->vm_ops;
+ *flags = vma->vm_flags;
+ err = do_munmap(current->mm, vma->vm_start,
+ vma->vm_end - vma->vm_start);
+ if (unlikely(err)) {
+ AuIOErr("failed internal unmapping %.*s, %d\n",
+ AuDLNPair(h_file->f_dentry), err);
+ h_vmop = ERR_PTR(-EIO);
+ }
+
+ out:
+ return h_vmop;
+}
+
+/*
+ * This is another ugly approach to keep the lock order, particularly
+ * mm->mmap_sem and aufs rwsem. The previous approach was reverted and you can
+ * find it in git-log, if you want.
+ *
+ * native readdir: i_mutex, copy_to_user, mmap_sem
+ * aufs readdir: i_mutex, rwsem, nested-i_mutex, copy_to_user, mmap_sem
+ *
+ * Before aufs_mmap() mmap_sem is acquired already, but aufs_mmap() has to
+ * acquire aufs rwsem. It introduces a circular locking dependency.
+ * To address this problem, aufs_mmap() delegates the part which requires aufs
+ * rwsem to its internal workqueue.
+ */
+
+/* very ugly approach */
+#include "mtx.h"
+
+struct au_mmap_pre_args {
+ /* input */
+ struct file *file;
+ struct vm_area_struct *vma;
+
+ /* output */
+ int *errp;
+ struct file *h_file;
+ struct au_branch *br;
+ int mmapped;
+};
+
+static int au_mmap_pre(struct file *file, struct vm_area_struct *vma,
+ struct file **h_file, struct au_branch **br,
+ int *mmapped)
+{
+ int err;
+ aufs_bindex_t bstart;
+ const unsigned char wlock
+ = !!(file->f_mode & FMODE_WRITE) && (vma->vm_flags & VM_SHARED);
+ struct dentry *dentry;
+ struct super_block *sb;
+
+ dentry = file->f_dentry;
+ sb = dentry->d_sb;
+ si_read_lock(sb, !AuLock_FLUSH);
+ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1);
+ if (unlikely(err))
+ goto out;
+
+ *mmapped = !!au_test_mmapped(file);
+ if (wlock) {
+ struct au_pin pin;
+
+ err = au_ready_to_write(file, -1, &pin);
+ di_write_unlock(dentry);
+ if (unlikely(err))
+ goto out_unlock;
+ au_unpin(&pin);
+ } else
+ di_write_unlock(dentry);
+ bstart = au_fbstart(file);
+ *br = au_sbr(sb, bstart);
+ *h_file = au_hf_top(file);
+ get_file(*h_file);
+ au_fi_mmap_lock(file);
+
+out_unlock:
+ fi_write_unlock(file);
+out:
+ si_read_unlock(sb);
+ return err;
+}
+
+static void au_call_mmap_pre(void *args)
+{
+ struct au_mmap_pre_args *a = args;
+ *a->errp = au_mmap_pre(a->file, a->vma, &a->h_file, &a->br,
+ &a->mmapped);
+}
+
+static int aufs_mmap(struct file *file, struct vm_area_struct *vma)
+{
+ int err, wkq_err;
+ unsigned long h_vmflags;
+ struct au_finfo *finfo;
+ struct dentry *h_dentry;
+ struct vm_operations_struct *h_vmop, *vmop;
+ struct au_mmap_pre_args args = {
+ .file = file,
+ .vma = vma,
+ .errp = &err
+ };
+
+ wkq_err = au_wkq_wait(au_call_mmap_pre, &args);
+ if (unlikely(wkq_err))
+ err = wkq_err;
+ if (unlikely(err))
+ goto out;
+ finfo = au_fi(file);
+ mutex_set_owner(&finfo->fi_mmap);
+
+ h_dentry = args.h_file->f_dentry;
+ if (!args.mmapped && au_test_fs_bad_mapping(h_dentry->d_sb)) {
+ /*
+ * by this assignment, f_mapping will differs from aufs inode
+ * i_mapping.
+ * if someone else mixes the use of f_dentry->d_inode and
+ * f_mapping->host, then a problem may arise.
+ */
+ file->f_mapping = args.h_file->f_mapping;
+ }
+
+ /* always try this internal mmap to get vma flags */
+ h_vmflags = 0; /* gcc warning */
+ h_vmop = au_hvmop(args.h_file, vma, &h_vmflags);
+ err = PTR_ERR(h_vmop);
+ if (IS_ERR(h_vmop))
+ goto out_unlock;
+ AuDebugOn(args.mmapped && h_vmop != finfo->fi_hvmop);
+
+ vmop = (void *)au_dy_vmop(file, args.br, h_vmop);
+ err = PTR_ERR(vmop);
+ if (IS_ERR(vmop))
+ goto out_unlock;
+
+ /*
+ * unnecessary to handle MAP_DENYWRITE and deny_write_access()?
+ * currently MAP_DENYWRITE from userspace is ignored, but elf loader
+ * sets it. when FMODE_EXEC is set (by open_exec() or sys_uselib()),
+ * both of the aufs file and the lower file is deny_write_access()-ed.
+ * finally I hope we can skip handlling MAP_DENYWRITE here.
+ */
+ err = generic_file_mmap(file, vma);
+ if (unlikely(err))
+ goto out_unlock;
+
+ vma->vm_ops = vmop;
+ vma->vm_flags = h_vmflags;
+ if (!args.mmapped)
+ finfo->fi_hvmop = h_vmop;
+
+ vfsub_file_accessed(args.h_file);
+ /* update without lock, I don't think it a problem */
+ fsstack_copy_attr_atime(file->f_dentry->d_inode, h_dentry->d_inode);
+
+ out_unlock:
+ au_fi_mmap_unlock(file);
+ fput(args.h_file);
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int aufs_fsync_nondir(struct file *file, int datasync)
+{
+ int err;
+ struct au_pin pin;
+ struct inode *inode;
+ struct file *h_file;
+ struct super_block *sb;
+ struct dentry *dentry = file->f_dentry;
+
+ inode = dentry->d_inode;
+ IMustLock(file->f_mapping->host);
+ if (inode != file->f_mapping->host) {
+ mutex_unlock(&file->f_mapping->host->i_mutex);
+ mutex_lock(&inode->i_mutex);
+ }
+ IMustLock(inode);
+
+ sb = dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+
+ err = 0; /* -EBADF; */ /* posix? */
+ if (unlikely(!(file->f_mode & FMODE_WRITE)))
+ goto out;
+ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1);
+ if (unlikely(err))
+ goto out;
+
+ err = au_ready_to_write(file, -1, &pin);
+ di_downgrade_lock(dentry, AuLock_IR);
+ if (unlikely(err))
+ goto out_unlock;
+ au_unpin(&pin);
+
+ err = -EINVAL;
+ h_file = au_hf_top(file);
+ if (h_file->f_op && h_file->f_op->fsync) {
+ struct dentry *h_d;
+ struct mutex *h_mtx;
+
+ /*
+ * no filemap_fdatawrite() since aufs file has no its own
+ * mapping, but dir.
+ */
+ h_d = h_file->f_dentry;
+ h_mtx = &h_d->d_inode->i_mutex;
+ mutex_lock_nested(h_mtx, AuLsc_I_CHILD);
+ err = h_file->f_op->fsync(h_file, datasync);
+ if (!err)
+ vfsub_update_h_iattr(&h_file->f_path, /*did*/NULL);
+ /*ignore*/
+ au_cpup_attr_timesizes(inode);
+ mutex_unlock(h_mtx);
+ }
+
+ out_unlock:
+ di_read_unlock(dentry, AuLock_IR);
+ fi_write_unlock(file);
+ out:
+ si_read_unlock(sb);
+ if (inode != file->f_mapping->host) {
+ mutex_unlock(&inode->i_mutex);
+ mutex_lock(&file->f_mapping->host->i_mutex);
+ }
+ return err;
+}
+
+/* no one supports this operation, currently */
+#if 0
+static int aufs_aio_fsync_nondir(struct kiocb *kio, int datasync)
+{
+ int err;
+ struct au_pin pin;
+ struct dentry *dentry;
+ struct inode *inode;
+ struct file *file, *h_file;
+ struct super_block *sb;
+
+ file = kio->ki_filp;
+ dentry = file->f_dentry;
+ inode = dentry->d_inode;
+ mutex_lock(&inode->i_mutex);
+
+ sb = dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+
+ err = 0; /* -EBADF; */ /* posix? */
+ if (unlikely(!(file->f_mode & FMODE_WRITE)))
+ goto out;
+ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1);
+ if (unlikely(err))
+ goto out;
+
+ err = au_ready_to_write(file, -1, &pin);
+ di_downgrade_lock(dentry, AuLock_IR);
+ if (unlikely(err))
+ goto out_unlock;
+ au_unpin(&pin);
+
+ err = -ENOSYS;
+ h_file = au_hf_top(file);
+ if (h_file->f_op && h_file->f_op->aio_fsync) {
+ struct dentry *h_d;
+ struct mutex *h_mtx;
+
+ h_d = h_file->f_dentry;
+ h_mtx = &h_d->d_inode->i_mutex;
+ if (!is_sync_kiocb(kio)) {
+ get_file(h_file);
+ fput(file);
+ }
+ kio->ki_filp = h_file;
+ err = h_file->f_op->aio_fsync(kio, datasync);
+ mutex_lock_nested(h_mtx, AuLsc_I_CHILD);
+ if (!err)
+ vfsub_update_h_iattr(&h_file->f_path, /*did*/NULL);
+ /*ignore*/
+ au_cpup_attr_timesizes(inode);
+ mutex_unlock(h_mtx);
+ }
+
+ out_unlock:
+ di_read_unlock(dentry, AuLock_IR);
+ fi_write_unlock(file);
+ out:
+ si_read_unlock(sb);
+ mutex_unlock(&inode->i_mutex);
+ return err;
+}
+#endif
+
+static int aufs_fasync(int fd, struct file *file, int flag)
+{
+ int err;
+ struct file *h_file;
+ struct dentry *dentry;
+ struct super_block *sb;
+
+ dentry = file->f_dentry;
+ sb = dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0);
+ if (unlikely(err))
+ goto out;
+
+ h_file = au_hf_top(file);
+ if (h_file->f_op && h_file->f_op->fasync)
+ err = h_file->f_op->fasync(fd, h_file, flag);
+
+ di_read_unlock(dentry, AuLock_IR);
+ fi_read_unlock(file);
+
+ out:
+ si_read_unlock(sb);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* no one supports this operation, currently */
+#if 0
+static ssize_t aufs_sendpage(struct file *file, struct page *page, int offset,
+ size_t len, loff_t *pos , int more)
+{
+}
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+const struct file_operations aufs_file_fop = {
+ .owner = THIS_MODULE,
+ /*
+ * while generic_file_llseek/_unlocked() don't use BKL,
+ * don't use it since it operates file->f_mapping->host.
+ * in aufs, it may be a real file and may confuse users by UDBA.
+ */
+ /* .llseek = generic_file_llseek, */
+
+ .read = aufs_read,
+ .write = aufs_write,
+ .aio_read = aufs_aio_read,
+ .aio_write = aufs_aio_write,
+#ifdef CONFIG_AUFS_POLL
+ .poll = aufs_poll,
+#endif
+ .unlocked_ioctl = aufs_ioctl_nondir,
+ .mmap = aufs_mmap,
+ .open = aufs_open_nondir,
+ .flush = aufs_flush_nondir,
+ .release = aufs_release_nondir,
+ .fsync = aufs_fsync_nondir,
+ /* .aio_fsync = aufs_aio_fsync_nondir, */
+ .fasync = aufs_fasync,
+ /* .sendpage = aufs_sendpage, */
+ .splice_write = aufs_splice_write,
+ .splice_read = aufs_splice_read,
+#if 0
+ .aio_splice_write = aufs_aio_splice_write,
+ .aio_splice_read = aufs_aio_splice_read
+#endif
+};
diff --git a/ubuntu/aufs/f_op_sp.c b/ubuntu/aufs/f_op_sp.c
new file mode 100644
index 00000000000..e173aaa5aad
--- /dev/null
+++ b/ubuntu/aufs/f_op_sp.c
@@ -0,0 +1,299 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * file operations for special files.
+ * while they exist in aufs virtually,
+ * their file I/O is handled out of aufs.
+ */
+
+#include <linux/fs_stack.h>
+#include "aufs.h"
+
+static ssize_t aufs_aio_read_sp(struct kiocb *kio, const struct iovec *iov,
+ unsigned long nv, loff_t pos)
+{
+ ssize_t err;
+ aufs_bindex_t bstart;
+ unsigned char wbr;
+ struct file *file, *h_file;
+ struct super_block *sb;
+
+ file = kio->ki_filp;
+ sb = file->f_dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ fi_read_lock(file);
+ bstart = au_fbstart(file);
+ h_file = au_hf_top(file);
+ fi_read_unlock(file);
+ wbr = !!au_br_writable(au_sbr(sb, bstart)->br_perm);
+ si_read_unlock(sb);
+
+ /* do not change the file in kio */
+ AuDebugOn(!h_file->f_op || !h_file->f_op->aio_read);
+ err = h_file->f_op->aio_read(kio, iov, nv, pos);
+ if (err > 0 && wbr)
+ file_accessed(h_file);
+
+ return err;
+}
+
+static ssize_t aufs_aio_write_sp(struct kiocb *kio, const struct iovec *iov,
+ unsigned long nv, loff_t pos)
+{
+ ssize_t err;
+ aufs_bindex_t bstart;
+ unsigned char wbr;
+ struct super_block *sb;
+ struct file *file, *h_file;
+
+ file = kio->ki_filp;
+ sb = file->f_dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ fi_read_lock(file);
+ bstart = au_fbstart(file);
+ h_file = au_hf_top(file);
+ fi_read_unlock(file);
+ wbr = !!au_br_writable(au_sbr(sb, bstart)->br_perm);
+ si_read_unlock(sb);
+
+ /* do not change the file in kio */
+ AuDebugOn(!h_file->f_op || !h_file->f_op->aio_write);
+ err = h_file->f_op->aio_write(kio, iov, nv, pos);
+ if (err > 0 && wbr)
+ file_update_time(h_file);
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int aufs_release_sp(struct inode *inode, struct file *file)
+{
+ int err;
+ struct file *h_file;
+
+ fi_read_lock(file);
+ h_file = au_hf_top(file);
+ fi_read_unlock(file);
+ /* close this fifo in aufs */
+ err = h_file->f_op->release(inode, file); /* ignore */
+ aufs_release_nondir(inode, file); /* ignore */
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* currently, support only FIFO */
+enum {AuSp_FIFO, AuSp_FIFO_R, AuSp_FIFO_W, AuSp_FIFO_RW,
+ /* AuSp_SOCK, AuSp_CHR, AuSp_BLK, */
+ AuSp_Last};
+static int aufs_open_sp(struct inode *inode, struct file *file);
+static struct au_sp_fop {
+ int done;
+ struct file_operations fop; /* not 'const' */
+ spinlock_t spin;
+} au_sp_fop[AuSp_Last] = {
+ [AuSp_FIFO] = {
+ .fop = {
+ .owner = THIS_MODULE,
+ .open = aufs_open_sp
+ }
+ }
+};
+
+static void au_init_fop_sp(struct file *file)
+{
+ struct au_sp_fop *p;
+ int i;
+ struct file *h_file;
+
+ p = au_sp_fop;
+ if (unlikely(!p->done)) {
+ /* initialize first time only */
+ static DEFINE_SPINLOCK(spin);
+
+ spin_lock(&spin);
+ if (!p->done) {
+ BUILD_BUG_ON(sizeof(au_sp_fop)/sizeof(*au_sp_fop)
+ != AuSp_Last);
+ for (i = 0; i < AuSp_Last; i++)
+ spin_lock_init(&p[i].spin);
+ p->done = 1;
+ }
+ spin_unlock(&spin);
+ }
+
+ switch (file->f_mode & (FMODE_READ | FMODE_WRITE)) {
+ case FMODE_READ:
+ i = AuSp_FIFO_R;
+ break;
+ case FMODE_WRITE:
+ i = AuSp_FIFO_W;
+ break;
+ case FMODE_READ | FMODE_WRITE:
+ i = AuSp_FIFO_RW;
+ break;
+ default:
+ BUG();
+ }
+
+ p += i;
+ if (unlikely(!p->done)) {
+ /* initialize first time only */
+ h_file = au_hf_top(file);
+ spin_lock(&p->spin);
+ if (!p->done) {
+ p->fop = *h_file->f_op;
+ p->fop.owner = THIS_MODULE;
+ if (p->fop.aio_read)
+ p->fop.aio_read = aufs_aio_read_sp;
+ if (p->fop.aio_write)
+ p->fop.aio_write = aufs_aio_write_sp;
+ p->fop.release = aufs_release_sp;
+ p->done = 1;
+ }
+ spin_unlock(&p->spin);
+ }
+ file->f_op = &p->fop;
+}
+
+static int au_cpup_sp(struct dentry *dentry)
+{
+ int err;
+ aufs_bindex_t bcpup;
+ struct au_pin pin;
+ struct au_wr_dir_args wr_dir_args = {
+ .force_btgt = -1,
+ .flags = 0
+ };
+
+ AuDbg("%.*s\n", AuDLNPair(dentry));
+
+ di_read_unlock(dentry, AuLock_IR);
+ di_write_lock_child(dentry);
+ err = au_wr_dir(dentry, /*src_dentry*/NULL, &wr_dir_args);
+ if (unlikely(err < 0))
+ goto out;
+ bcpup = err;
+ err = 0;
+ if (bcpup == au_dbstart(dentry))
+ goto out; /* success */
+
+ err = au_pin(&pin, dentry, bcpup, au_opt_udba(dentry->d_sb),
+ AuPin_MNT_WRITE);
+ if (!err) {
+ err = au_sio_cpup_simple(dentry, bcpup, -1, AuCpup_DTIME);
+ au_unpin(&pin);
+ }
+
+ out:
+ di_downgrade_lock(dentry, AuLock_IR);
+ return err;
+}
+
+static int au_do_open_sp(struct file *file, int flags)
+{
+ int err;
+ struct dentry *dentry;
+ struct super_block *sb;
+ struct file *h_file;
+ struct inode *h_inode;
+
+ dentry = file->f_dentry;
+ AuDbg("%.*s\n", AuDLNPair(dentry));
+
+ /*
+ * try copying-up.
+ * operate on the ro branch is not an error.
+ */
+ au_cpup_sp(dentry); /* ignore */
+
+ /* prepare h_file */
+ err = au_do_open_nondir(file, vfsub_file_flags(file));
+ if (unlikely(err))
+ goto out;
+
+ sb = dentry->d_sb;
+ h_file = au_hf_top(file);
+ h_inode = h_file->f_dentry->d_inode;
+ di_read_unlock(dentry, AuLock_IR);
+ fi_write_unlock(file);
+ si_read_unlock(sb);
+ /* open this fifo in aufs */
+ err = h_inode->i_fop->open(file->f_dentry->d_inode, file);
+ si_noflush_read_lock(sb);
+ fi_write_lock(file);
+ di_read_lock_child(dentry, AuLock_IR);
+ if (!err)
+ au_init_fop_sp(file);
+ else
+ au_finfo_fin(file);
+
+ out:
+ return err;
+}
+
+static int aufs_open_sp(struct inode *inode, struct file *file)
+{
+ int err;
+ struct super_block *sb;
+
+ sb = file->f_dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ err = au_do_open(file, au_do_open_sp, /*fidir*/NULL);
+ si_read_unlock(sb);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_init_special_fop(struct inode *inode, umode_t mode, dev_t rdev)
+{
+ init_special_inode(inode, mode, rdev);
+
+ switch (mode & S_IFMT) {
+ case S_IFIFO:
+ inode->i_fop = &au_sp_fop[AuSp_FIFO].fop;
+ /*FALLTHROUGH*/
+ case S_IFCHR:
+ case S_IFBLK:
+ case S_IFSOCK:
+ break;
+ default:
+ AuDebugOn(1);
+ }
+}
+
+int au_special_file(umode_t mode)
+{
+ int ret;
+
+ ret = 0;
+ switch (mode & S_IFMT) {
+ case S_IFIFO:
+#if 0
+ case S_IFCHR:
+ case S_IFBLK:
+ case S_IFSOCK:
+#endif
+ ret = 1;
+ }
+
+ return ret;
+}
diff --git a/ubuntu/aufs/file.c b/ubuntu/aufs/file.c
new file mode 100644
index 00000000000..8e7b5f061fb
--- /dev/null
+++ b/ubuntu/aufs/file.c
@@ -0,0 +1,652 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * handling file/dir, and address_space operation
+ */
+
+#include <linux/file.h>
+#include <linux/fsnotify.h>
+#include <linux/namei.h>
+#include <linux/pagemap.h>
+#include "aufs.h"
+
+/* drop flags for writing */
+unsigned int au_file_roflags(unsigned int flags)
+{
+ flags &= ~(O_WRONLY | O_RDWR | O_APPEND | O_CREAT | O_TRUNC);
+ flags |= O_RDONLY | O_NOATIME;
+ return flags;
+}
+
+/* common functions to regular file and dir */
+struct file *au_h_open(struct dentry *dentry, aufs_bindex_t bindex, int flags,
+ struct file *file)
+{
+ struct file *h_file;
+ struct dentry *h_dentry;
+ struct inode *h_inode;
+ struct super_block *sb;
+ struct au_branch *br;
+ struct path h_path;
+ int err, exec_flag;
+
+ /* a race condition can happen between open and unlink/rmdir */
+ h_file = ERR_PTR(-ENOENT);
+ h_dentry = au_h_dptr(dentry, bindex);
+ if (au_test_nfsd(current) && !h_dentry)
+ goto out;
+ h_inode = h_dentry->d_inode;
+ if (au_test_nfsd(current) && !h_inode)
+ goto out;
+ if (unlikely((!d_unhashed(dentry) && d_unhashed(h_dentry))
+ || !h_inode))
+ goto out;
+
+ sb = dentry->d_sb;
+ br = au_sbr(sb, bindex);
+ h_file = ERR_PTR(-EACCES);
+ exec_flag = flags & vfsub_fmode_to_uint(FMODE_EXEC);
+ if (exec_flag && (br->br_mnt->mnt_flags & MNT_NOEXEC))
+ goto out;
+
+ /* drop flags for writing */
+ if (au_test_ro(sb, bindex, dentry->d_inode))
+ flags = au_file_roflags(flags);
+ flags &= ~O_CREAT;
+ atomic_inc(&br->br_count);
+ h_path.dentry = h_dentry;
+ h_path.mnt = br->br_mnt;
+ if (!au_special_file(h_inode->i_mode))
+ h_file = vfsub_dentry_open(&h_path, flags);
+ else {
+ /* this block depends upon the configuration */
+ di_read_unlock(dentry, AuLock_IR);
+ fi_write_unlock(file);
+ si_read_unlock(sb);
+ h_file = vfsub_dentry_open(&h_path, flags);
+ si_noflush_read_lock(sb);
+ fi_write_lock(file);
+ di_read_lock_child(dentry, AuLock_IR);
+ }
+ if (IS_ERR(h_file))
+ goto out_br;
+
+ if (exec_flag) {
+ err = deny_write_access(h_file);
+ if (unlikely(err)) {
+ fput(h_file);
+ h_file = ERR_PTR(err);
+ goto out_br;
+ }
+ }
+ fsnotify_open(h_dentry);
+ goto out; /* success */
+
+ out_br:
+ atomic_dec(&br->br_count);
+ out:
+ return h_file;
+}
+
+int au_do_open(struct file *file, int (*open)(struct file *file, int flags),
+ struct au_fidir *fidir)
+{
+ int err;
+ struct dentry *dentry;
+
+ err = au_finfo_init(file, fidir);
+ if (unlikely(err))
+ goto out;
+
+ dentry = file->f_dentry;
+ di_read_lock_child(dentry, AuLock_IR);
+ err = open(file, vfsub_file_flags(file));
+ di_read_unlock(dentry, AuLock_IR);
+
+ fi_write_unlock(file);
+ if (unlikely(err)) {
+ au_fi(file)->fi_hdir = NULL;
+ au_finfo_fin(file);
+ }
+
+ out:
+ return err;
+}
+
+int au_reopen_nondir(struct file *file)
+{
+ int err;
+ aufs_bindex_t bstart;
+ struct dentry *dentry;
+ struct file *h_file, *h_file_tmp;
+
+ dentry = file->f_dentry;
+ AuDebugOn(au_special_file(dentry->d_inode->i_mode));
+ bstart = au_dbstart(dentry);
+ h_file_tmp = NULL;
+ if (au_fbstart(file) == bstart) {
+ h_file = au_hf_top(file);
+ if (file->f_mode == h_file->f_mode)
+ return 0; /* success */
+ h_file_tmp = h_file;
+ get_file(h_file_tmp);
+ au_set_h_fptr(file, bstart, NULL);
+ }
+ AuDebugOn(au_fi(file)->fi_hdir);
+ AuDebugOn(au_fbstart(file) < bstart);
+
+ h_file = au_h_open(dentry, bstart, vfsub_file_flags(file) & ~O_TRUNC,
+ file);
+ err = PTR_ERR(h_file);
+ if (IS_ERR(h_file))
+ goto out; /* todo: close all? */
+
+ err = 0;
+ au_set_fbstart(file, bstart);
+ au_set_h_fptr(file, bstart, h_file);
+ au_update_figen(file);
+ /* todo: necessary? */
+ /* file->f_ra = h_file->f_ra; */
+
+ out:
+ if (h_file_tmp)
+ fput(h_file_tmp);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_reopen_wh(struct file *file, aufs_bindex_t btgt,
+ struct dentry *hi_wh)
+{
+ int err;
+ aufs_bindex_t bstart;
+ struct au_dinfo *dinfo;
+ struct dentry *h_dentry;
+ struct au_hdentry *hdp;
+
+ dinfo = au_di(file->f_dentry);
+ AuRwMustWriteLock(&dinfo->di_rwsem);
+
+ bstart = dinfo->di_bstart;
+ dinfo->di_bstart = btgt;
+ hdp = dinfo->di_hdentry;
+ h_dentry = hdp[0 + btgt].hd_dentry;
+ hdp[0 + btgt].hd_dentry = hi_wh;
+ err = au_reopen_nondir(file);
+ hdp[0 + btgt].hd_dentry = h_dentry;
+ dinfo->di_bstart = bstart;
+
+ return err;
+}
+
+static int au_ready_to_write_wh(struct file *file, loff_t len,
+ aufs_bindex_t bcpup)
+{
+ int err;
+ struct inode *inode;
+ struct dentry *dentry, *hi_wh;
+
+ dentry = file->f_dentry;
+ au_update_dbstart(dentry);
+ inode = dentry->d_inode;
+ hi_wh = au_hi_wh(inode, bcpup);
+ if (!hi_wh)
+ err = au_sio_cpup_wh(dentry, bcpup, len, file);
+ else
+ /* already copied-up after unlink */
+ err = au_reopen_wh(file, bcpup, hi_wh);
+
+ if (!err
+ && inode->i_nlink > 1
+ && au_opt_test(au_mntflags(dentry->d_sb), PLINK))
+ au_plink_append(inode, bcpup, au_h_dptr(dentry, bcpup));
+
+ return err;
+}
+
+/*
+ * prepare the @file for writing.
+ */
+int au_ready_to_write(struct file *file, loff_t len, struct au_pin *pin)
+{
+ int err;
+ aufs_bindex_t bstart, bcpup;
+ struct dentry *dentry, *parent, *h_dentry;
+ struct inode *h_inode, *inode;
+ struct super_block *sb;
+ struct file *h_file;
+
+ dentry = file->f_dentry;
+ sb = dentry->d_sb;
+ inode = dentry->d_inode;
+ AuDebugOn(au_special_file(inode->i_mode));
+ bstart = au_fbstart(file);
+ err = au_test_ro(sb, bstart, inode);
+ if (!err && (au_hf_top(file)->f_mode & FMODE_WRITE)) {
+ err = au_pin(pin, dentry, bstart, AuOpt_UDBA_NONE, /*flags*/0);
+ goto out;
+ }
+
+ /* need to cpup */
+ parent = dget_parent(dentry);
+ di_write_lock_parent(parent);
+ err = AuWbrCopyup(au_sbi(sb), dentry);
+ bcpup = err;
+ if (unlikely(err < 0))
+ goto out_dgrade;
+ err = 0;
+
+ if (!au_h_dptr(parent, bcpup)) {
+ err = au_cpup_dirs(dentry, bcpup);
+ if (unlikely(err))
+ goto out_dgrade;
+ }
+
+ err = au_pin(pin, dentry, bcpup, AuOpt_UDBA_NONE,
+ AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+ if (unlikely(err))
+ goto out_dgrade;
+
+ h_dentry = au_hf_top(file)->f_dentry;
+ h_inode = h_dentry->d_inode;
+ mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD);
+ h_file = au_h_open_pre(dentry, bstart);
+ if (IS_ERR(h_file)) {
+ err = PTR_ERR(h_file);
+ h_file = NULL;
+ } else if (d_unhashed(dentry) /* || d_unhashed(h_dentry) */
+ /* || !h_inode->i_nlink */) {
+ err = au_ready_to_write_wh(file, len, bcpup);
+ di_downgrade_lock(parent, AuLock_IR);
+ } else {
+ di_downgrade_lock(parent, AuLock_IR);
+ if (!au_h_dptr(dentry, bcpup))
+ err = au_sio_cpup_simple(dentry, bcpup, len,
+ AuCpup_DTIME);
+ if (!err)
+ err = au_reopen_nondir(file);
+ }
+ mutex_unlock(&h_inode->i_mutex);
+ au_h_open_post(dentry, bstart, h_file);
+
+ if (!err) {
+ au_pin_set_parent_lflag(pin, /*lflag*/0);
+ goto out_dput; /* success */
+ }
+ au_unpin(pin);
+ goto out_unlock;
+
+ out_dgrade:
+ di_downgrade_lock(parent, AuLock_IR);
+ out_unlock:
+ di_read_unlock(parent, AuLock_IR);
+ out_dput:
+ dput(parent);
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_do_flush(struct file *file, fl_owner_t id,
+ int (*flush)(struct file *file, fl_owner_t id))
+{
+ int err;
+ struct dentry *dentry;
+ struct super_block *sb;
+ struct inode *inode;
+
+ dentry = file->f_dentry;
+ sb = dentry->d_sb;
+ inode = dentry->d_inode;
+ si_noflush_read_lock(sb);
+ fi_read_lock(file);
+ di_read_lock_child(dentry, AuLock_IW);
+
+ err = flush(file, id);
+ au_cpup_attr_timesizes(inode);
+
+ di_read_unlock(dentry, AuLock_IW);
+ fi_read_unlock(file);
+ si_read_unlock(sb);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_file_refresh_by_inode(struct file *file, int *need_reopen)
+{
+ int err;
+ aufs_bindex_t bstart;
+ struct au_pin pin;
+ struct au_finfo *finfo;
+ struct dentry *dentry, *parent, *hi_wh;
+ struct inode *inode;
+ struct super_block *sb;
+
+ FiMustWriteLock(file);
+
+ err = 0;
+ finfo = au_fi(file);
+ dentry = file->f_dentry;
+ sb = dentry->d_sb;
+ inode = dentry->d_inode;
+ bstart = au_ibstart(inode);
+ if (bstart == finfo->fi_btop)
+ goto out;
+
+ parent = dget_parent(dentry);
+ if (au_test_ro(sb, bstart, inode)) {
+ di_read_lock_parent(parent, !AuLock_IR);
+ err = AuWbrCopyup(au_sbi(sb), dentry);
+ bstart = err;
+ di_read_unlock(parent, !AuLock_IR);
+ if (unlikely(err < 0))
+ goto out_parent;
+ err = 0;
+ }
+
+ di_read_lock_parent(parent, AuLock_IR);
+ hi_wh = au_hi_wh(inode, bstart);
+ if (au_opt_test(au_mntflags(sb), PLINK)
+ && au_plink_test(inode)
+ && !d_unhashed(dentry)) {
+ err = au_test_and_cpup_dirs(dentry, bstart);
+ if (unlikely(err))
+ goto out_unlock;
+
+ /* always superio. */
+ err = au_pin(&pin, dentry, bstart, AuOpt_UDBA_NONE,
+ AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+ if (!err)
+ err = au_sio_cpup_simple(dentry, bstart, -1,
+ AuCpup_DTIME);
+ au_unpin(&pin);
+ } else if (hi_wh) {
+ /* already copied-up after unlink */
+ err = au_reopen_wh(file, bstart, hi_wh);
+ *need_reopen = 0;
+ }
+
+ out_unlock:
+ di_read_unlock(parent, AuLock_IR);
+ out_parent:
+ dput(parent);
+ out:
+ return err;
+}
+
+static void au_do_refresh_dir(struct file *file)
+{
+ aufs_bindex_t bindex, bend, new_bindex, brid;
+ struct au_hfile *p, tmp, *q;
+ struct au_finfo *finfo;
+ struct super_block *sb;
+ struct au_fidir *fidir;
+
+ FiMustWriteLock(file);
+
+ sb = file->f_dentry->d_sb;
+ finfo = au_fi(file);
+ fidir = finfo->fi_hdir;
+ AuDebugOn(!fidir);
+ p = fidir->fd_hfile + finfo->fi_btop;
+ brid = p->hf_br->br_id;
+ bend = fidir->fd_bbot;
+ for (bindex = finfo->fi_btop; bindex <= bend; bindex++, p++) {
+ if (!p->hf_file)
+ continue;
+
+ new_bindex = au_br_index(sb, p->hf_br->br_id);
+ if (new_bindex == bindex)
+ continue;
+ if (new_bindex < 0) {
+ au_set_h_fptr(file, bindex, NULL);
+ continue;
+ }
+
+ /* swap two lower inode, and loop again */
+ q = fidir->fd_hfile + new_bindex;
+ tmp = *q;
+ *q = *p;
+ *p = tmp;
+ if (tmp.hf_file) {
+ bindex--;
+ p--;
+ }
+ }
+
+ p = fidir->fd_hfile;
+ if (!au_test_mmapped(file) && !d_unhashed(file->f_dentry)) {
+ bend = au_sbend(sb);
+ for (finfo->fi_btop = 0; finfo->fi_btop <= bend;
+ finfo->fi_btop++, p++)
+ if (p->hf_file) {
+ if (p->hf_file->f_dentry
+ && p->hf_file->f_dentry->d_inode)
+ break;
+ else
+ au_hfput(p, file);
+ }
+ } else {
+ bend = au_br_index(sb, brid);
+ for (finfo->fi_btop = 0; finfo->fi_btop < bend;
+ finfo->fi_btop++, p++)
+ if (p->hf_file)
+ au_hfput(p, file);
+ bend = au_sbend(sb);
+ }
+
+ p = fidir->fd_hfile + bend;
+ for (fidir->fd_bbot = bend; fidir->fd_bbot >= finfo->fi_btop;
+ fidir->fd_bbot--, p--)
+ if (p->hf_file) {
+ if (p->hf_file->f_dentry
+ && p->hf_file->f_dentry->d_inode)
+ break;
+ else
+ au_hfput(p, file);
+ }
+ AuDebugOn(fidir->fd_bbot < finfo->fi_btop);
+}
+
+/*
+ * after branch manipulating, refresh the file.
+ */
+static int refresh_file(struct file *file, int (*reopen)(struct file *file))
+{
+ int err, need_reopen;
+ aufs_bindex_t bend, bindex;
+ struct dentry *dentry;
+ struct au_finfo *finfo;
+ struct au_hfile *hfile;
+
+ dentry = file->f_dentry;
+ finfo = au_fi(file);
+ if (!finfo->fi_hdir) {
+ hfile = &finfo->fi_htop;
+ AuDebugOn(!hfile->hf_file);
+ bindex = au_br_index(dentry->d_sb, hfile->hf_br->br_id);
+ AuDebugOn(bindex < 0);
+ if (bindex != finfo->fi_btop)
+ au_set_fbstart(file, bindex);
+ } else {
+ err = au_fidir_realloc(finfo, au_sbend(dentry->d_sb) + 1);
+ if (unlikely(err))
+ goto out;
+ au_do_refresh_dir(file);
+ }
+
+ err = 0;
+ need_reopen = 1;
+ if (!au_test_mmapped(file))
+ err = au_file_refresh_by_inode(file, &need_reopen);
+ if (!err && need_reopen && !d_unhashed(dentry))
+ err = reopen(file);
+ if (!err) {
+ au_update_figen(file);
+ goto out; /* success */
+ }
+
+ /* error, close all lower files */
+ if (finfo->fi_hdir) {
+ bend = au_fbend_dir(file);
+ for (bindex = au_fbstart(file); bindex <= bend; bindex++)
+ au_set_h_fptr(file, bindex, NULL);
+ }
+
+ out:
+ return err;
+}
+
+/* common function to regular file and dir */
+int au_reval_and_lock_fdi(struct file *file, int (*reopen)(struct file *file),
+ int wlock)
+{
+ int err;
+ unsigned int sigen, figen;
+ aufs_bindex_t bstart;
+ unsigned char pseudo_link;
+ struct dentry *dentry;
+ struct inode *inode;
+
+ err = 0;
+ dentry = file->f_dentry;
+ inode = dentry->d_inode;
+ AuDebugOn(au_special_file(inode->i_mode));
+ sigen = au_sigen(dentry->d_sb);
+ fi_write_lock(file);
+ figen = au_figen(file);
+ di_write_lock_child(dentry);
+ bstart = au_dbstart(dentry);
+ pseudo_link = (bstart != au_ibstart(inode));
+ if (sigen == figen && !pseudo_link && au_fbstart(file) == bstart) {
+ if (!wlock) {
+ di_downgrade_lock(dentry, AuLock_IR);
+ fi_downgrade_lock(file);
+ }
+ goto out; /* success */
+ }
+
+ AuDbg("sigen %d, figen %d\n", sigen, figen);
+ if (sigen != au_digen(dentry)
+ || sigen != au_iigen(inode)) {
+ err = au_reval_dpath(dentry, sigen);
+ if (unlikely(err < 0))
+ goto out;
+ AuDebugOn(au_digen(dentry) != sigen
+ || au_iigen(inode) != sigen);
+ }
+
+ err = refresh_file(file, reopen);
+ if (!err) {
+ if (!wlock) {
+ di_downgrade_lock(dentry, AuLock_IR);
+ fi_downgrade_lock(file);
+ }
+ } else {
+ di_write_unlock(dentry);
+ fi_write_unlock(file);
+ }
+
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* cf. aufs_nopage() */
+/* for madvise(2) */
+static int aufs_readpage(struct file *file __maybe_unused, struct page *page)
+{
+ unlock_page(page);
+ return 0;
+}
+
+/* it will never be called, but necessary to support O_DIRECT */
+static ssize_t aufs_direct_IO(int rw, struct kiocb *iocb,
+ const struct iovec *iov, loff_t offset,
+ unsigned long nr_segs)
+{ BUG(); return 0; }
+
+/*
+ * it will never be called, but madvise and fadvise behaves differently
+ * when get_xip_mem is defined
+ */
+static int aufs_get_xip_mem(struct address_space *mapping, pgoff_t pgoff,
+ int create, void **kmem, unsigned long *pfn)
+{ BUG(); return 0; }
+
+/* they will never be called. */
+#ifdef CONFIG_AUFS_DEBUG
+static int aufs_write_begin(struct file *file, struct address_space *mapping,
+ loff_t pos, unsigned len, unsigned flags,
+ struct page **pagep, void **fsdata)
+{ AuUnsupport(); return 0; }
+static int aufs_write_end(struct file *file, struct address_space *mapping,
+ loff_t pos, unsigned len, unsigned copied,
+ struct page *page, void *fsdata)
+{ AuUnsupport(); return 0; }
+static int aufs_writepage(struct page *page, struct writeback_control *wbc)
+{ AuUnsupport(); return 0; }
+static void aufs_sync_page(struct page *page)
+{ AuUnsupport(); }
+
+static int aufs_set_page_dirty(struct page *page)
+{ AuUnsupport(); return 0; }
+static void aufs_invalidatepage(struct page *page, unsigned long offset)
+{ AuUnsupport(); }
+static int aufs_releasepage(struct page *page, gfp_t gfp)
+{ AuUnsupport(); return 0; }
+static int aufs_migratepage(struct address_space *mapping, struct page *newpage,
+ struct page *page)
+{ AuUnsupport(); return 0; }
+static int aufs_launder_page(struct page *page)
+{ AuUnsupport(); return 0; }
+static int aufs_is_partially_uptodate(struct page *page,
+ read_descriptor_t *desc,
+ unsigned long from)
+{ AuUnsupport(); return 0; }
+static int aufs_error_remove_page(struct address_space *mapping,
+ struct page *page)
+{ AuUnsupport(); return 0; }
+#endif /* CONFIG_AUFS_DEBUG */
+
+const struct address_space_operations aufs_aop = {
+ .readpage = aufs_readpage,
+ .direct_IO = aufs_direct_IO,
+ .get_xip_mem = aufs_get_xip_mem,
+#ifdef CONFIG_AUFS_DEBUG
+ .writepage = aufs_writepage,
+ .sync_page = aufs_sync_page,
+ /* no writepages, because of writepage */
+ .set_page_dirty = aufs_set_page_dirty,
+ /* no readpages, because of readpage */
+ .write_begin = aufs_write_begin,
+ .write_end = aufs_write_end,
+ /* no bmap, no block device */
+ .invalidatepage = aufs_invalidatepage,
+ .releasepage = aufs_releasepage,
+ .migratepage = aufs_migratepage,
+ .launder_page = aufs_launder_page,
+ .is_partially_uptodate = aufs_is_partially_uptodate,
+ .error_remove_page = aufs_error_remove_page
+#endif /* CONFIG_AUFS_DEBUG */
+};
diff --git a/ubuntu/aufs/file.h b/ubuntu/aufs/file.h
new file mode 100644
index 00000000000..b2854ac5305
--- /dev/null
+++ b/ubuntu/aufs/file.h
@@ -0,0 +1,234 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * file operations
+ */
+
+#ifndef __AUFS_FILE_H__
+#define __AUFS_FILE_H__
+
+#ifdef __KERNEL__
+
+#include <linux/fs.h>
+#include <linux/poll.h>
+#include <linux/aufs_type.h>
+#include "rwsem.h"
+
+struct au_branch;
+struct au_hfile {
+ struct file *hf_file;
+ struct au_branch *hf_br;
+};
+
+struct au_vdir;
+struct au_fidir {
+ aufs_bindex_t fd_bbot;
+ aufs_bindex_t fd_nent;
+ struct au_vdir *fd_vdir_cache;
+ struct au_hfile fd_hfile[];
+};
+
+static inline int au_fidir_sz(int nent)
+{
+ AuDebugOn(nent < 0);
+ return sizeof(struct au_fidir) + sizeof(struct au_hfile) * nent;
+}
+
+struct au_finfo {
+ atomic_t fi_generation;
+
+ struct au_rwsem fi_rwsem;
+ aufs_bindex_t fi_btop;
+
+ /* do not union them */
+ struct { /* for non-dir */
+ struct au_hfile fi_htop;
+ struct vm_operations_struct *fi_hvmop;
+ struct mutex fi_vm_mtx;
+ struct mutex fi_mmap;
+ };
+ struct au_fidir *fi_hdir; /* for dir only */
+} ____cacheline_aligned_in_smp;
+
+/* ---------------------------------------------------------------------- */
+
+/* file.c */
+extern const struct address_space_operations aufs_aop;
+unsigned int au_file_roflags(unsigned int flags);
+struct file *au_h_open(struct dentry *dentry, aufs_bindex_t bindex, int flags,
+ struct file *file);
+int au_do_open(struct file *file, int (*open)(struct file *file, int flags),
+ struct au_fidir *fidir);
+int au_reopen_nondir(struct file *file);
+struct au_pin;
+int au_ready_to_write(struct file *file, loff_t len, struct au_pin *pin);
+int au_reval_and_lock_fdi(struct file *file, int (*reopen)(struct file *file),
+ int wlock);
+int au_do_flush(struct file *file, fl_owner_t id,
+ int (*flush)(struct file *file, fl_owner_t id));
+
+/* poll.c */
+#ifdef CONFIG_AUFS_POLL
+unsigned int aufs_poll(struct file *file, poll_table *wait);
+#endif
+
+#ifdef CONFIG_AUFS_BR_HFSPLUS
+/* hfsplus.c */
+struct file *au_h_open_pre(struct dentry *dentry, aufs_bindex_t bindex);
+void au_h_open_post(struct dentry *dentry, aufs_bindex_t bindex,
+ struct file *h_file);
+#else
+static inline
+struct file *au_h_open_pre(struct dentry *dentry, aufs_bindex_t bindex)
+{
+ return NULL;
+}
+
+AuStubVoid(au_h_open_post, struct dentry *dentry, aufs_bindex_t bindex,
+ struct file *h_file);
+#endif
+
+/* f_op.c */
+extern const struct file_operations aufs_file_fop;
+extern const struct vm_operations_struct aufs_vm_ops;
+int au_do_open_nondir(struct file *file, int flags);
+int aufs_release_nondir(struct inode *inode __maybe_unused, struct file *file);
+
+#ifdef CONFIG_AUFS_SP_IATTR
+/* f_op_sp.c */
+int au_special_file(umode_t mode);
+void au_init_special_fop(struct inode *inode, umode_t mode, dev_t rdev);
+#else
+AuStubInt0(au_special_file, umode_t mode)
+static inline void au_init_special_fop(struct inode *inode, umode_t mode,
+ dev_t rdev)
+{
+ init_special_inode(inode, mode, rdev);
+}
+#endif
+
+/* finfo.c */
+void au_hfput(struct au_hfile *hf, struct file *file);
+void au_set_h_fptr(struct file *file, aufs_bindex_t bindex,
+ struct file *h_file);
+
+void au_update_figen(struct file *file);
+void au_fi_mmap_lock(struct file *file);
+void au_fi_mmap_unlock(struct file *file);
+struct au_fidir *au_fidir_alloc(struct super_block *sb);
+int au_fidir_realloc(struct au_finfo *finfo, int nbr);
+
+void au_fi_init_once(void *_fi);
+void au_finfo_fin(struct file *file);
+int au_finfo_init(struct file *file, struct au_fidir *fidir);
+
+/* ioctl.c */
+long aufs_ioctl_nondir(struct file *file, unsigned int cmd, unsigned long arg);
+
+/* ---------------------------------------------------------------------- */
+
+static inline struct au_finfo *au_fi(struct file *file)
+{
+ return file->private_data;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * fi_read_lock, fi_write_lock,
+ * fi_read_unlock, fi_write_unlock, fi_downgrade_lock
+ */
+AuSimpleRwsemFuncs(fi, struct file *f, &au_fi(f)->fi_rwsem);
+
+#define FiMustNoWaiters(f) AuRwMustNoWaiters(&au_fi(f)->fi_rwsem)
+#define FiMustAnyLock(f) AuRwMustAnyLock(&au_fi(f)->fi_rwsem)
+#define FiMustWriteLock(f) AuRwMustWriteLock(&au_fi(f)->fi_rwsem)
+
+/* ---------------------------------------------------------------------- */
+
+/* todo: hard/soft set? */
+static inline aufs_bindex_t au_fbstart(struct file *file)
+{
+ FiMustAnyLock(file);
+ return au_fi(file)->fi_btop;
+}
+
+static inline aufs_bindex_t au_fbend_dir(struct file *file)
+{
+ FiMustAnyLock(file);
+ AuDebugOn(!au_fi(file)->fi_hdir);
+ return au_fi(file)->fi_hdir->fd_bbot;
+}
+
+static inline struct au_vdir *au_fvdir_cache(struct file *file)
+{
+ FiMustAnyLock(file);
+ AuDebugOn(!au_fi(file)->fi_hdir);
+ return au_fi(file)->fi_hdir->fd_vdir_cache;
+}
+
+static inline void au_set_fbstart(struct file *file, aufs_bindex_t bindex)
+{
+ FiMustWriteLock(file);
+ au_fi(file)->fi_btop = bindex;
+}
+
+static inline void au_set_fbend_dir(struct file *file, aufs_bindex_t bindex)
+{
+ FiMustWriteLock(file);
+ AuDebugOn(!au_fi(file)->fi_hdir);
+ au_fi(file)->fi_hdir->fd_bbot = bindex;
+}
+
+static inline void au_set_fvdir_cache(struct file *file,
+ struct au_vdir *vdir_cache)
+{
+ FiMustWriteLock(file);
+ AuDebugOn(!au_fi(file)->fi_hdir);
+ au_fi(file)->fi_hdir->fd_vdir_cache = vdir_cache;
+}
+
+static inline struct file *au_hf_top(struct file *file)
+{
+ FiMustAnyLock(file);
+ AuDebugOn(au_fi(file)->fi_hdir);
+ return au_fi(file)->fi_htop.hf_file;
+}
+
+static inline struct file *au_hf_dir(struct file *file, aufs_bindex_t bindex)
+{
+ FiMustAnyLock(file);
+ AuDebugOn(!au_fi(file)->fi_hdir);
+ return au_fi(file)->fi_hdir->fd_hfile[0 + bindex].hf_file;
+}
+
+/* todo: memory barrier? */
+static inline unsigned int au_figen(struct file *f)
+{
+ return atomic_read(&au_fi(f)->fi_generation);
+}
+
+static inline int au_test_mmapped(struct file *f)
+{
+ FiMustAnyLock(f);
+ return !!(au_fi(f)->fi_hvmop);
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_FILE_H__ */
diff --git a/ubuntu/aufs/finfo.c b/ubuntu/aufs/finfo.c
new file mode 100644
index 00000000000..f1fbf90c402
--- /dev/null
+++ b/ubuntu/aufs/finfo.c
@@ -0,0 +1,167 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * file private data
+ */
+
+#include <linux/file.h>
+#include "aufs.h"
+
+void au_hfput(struct au_hfile *hf, struct file *file)
+{
+ /* todo: direct access f_flags */
+ if (vfsub_file_flags(file) & vfsub_fmode_to_uint(FMODE_EXEC))
+ allow_write_access(hf->hf_file);
+ fput(hf->hf_file);
+ hf->hf_file = NULL;
+ atomic_dec_return(&hf->hf_br->br_count);
+ hf->hf_br = NULL;
+}
+
+void au_set_h_fptr(struct file *file, aufs_bindex_t bindex, struct file *val)
+{
+ struct au_finfo *finfo = au_fi(file);
+ struct au_hfile *hf;
+ struct au_fidir *fidir;
+
+ fidir = finfo->fi_hdir;
+ if (!fidir) {
+ AuDebugOn(finfo->fi_btop != bindex);
+ hf = &finfo->fi_htop;
+ } else
+ hf = fidir->fd_hfile + bindex;
+
+ if (hf && hf->hf_file)
+ au_hfput(hf, file);
+ if (val) {
+ FiMustWriteLock(file);
+ hf->hf_file = val;
+ hf->hf_br = au_sbr(file->f_dentry->d_sb, bindex);
+ }
+}
+
+void au_update_figen(struct file *file)
+{
+ atomic_set(&au_fi(file)->fi_generation, au_digen(file->f_dentry));
+ /* smp_mb(); */ /* atomic_set */
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_fi_mmap_lock(struct file *file)
+{
+ FiMustWriteLock(file);
+ lockdep_off();
+ mutex_lock(&au_fi(file)->fi_mmap);
+ lockdep_on();
+}
+
+void au_fi_mmap_unlock(struct file *file)
+{
+ lockdep_off();
+ mutex_unlock(&au_fi(file)->fi_mmap);
+ lockdep_on();
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct au_fidir *au_fidir_alloc(struct super_block *sb)
+{
+ struct au_fidir *fidir;
+ int nbr;
+
+ nbr = au_sbend(sb) + 1;
+ if (nbr < 2)
+ nbr = 2; /* initial allocate for 2 branches */
+ fidir = kzalloc(au_fidir_sz(nbr), GFP_NOFS);
+ if (fidir) {
+ fidir->fd_bbot = -1;
+ fidir->fd_nent = nbr;
+ fidir->fd_vdir_cache = NULL;
+ }
+
+ return fidir;
+}
+
+int au_fidir_realloc(struct au_finfo *finfo, int nbr)
+{
+ int err;
+ struct au_fidir *fidir, *p;
+
+ AuRwMustWriteLock(&finfo->fi_rwsem);
+ fidir = finfo->fi_hdir;
+ AuDebugOn(!fidir);
+
+ err = -ENOMEM;
+ p = au_kzrealloc(fidir, au_fidir_sz(fidir->fd_nent), au_fidir_sz(nbr),
+ GFP_NOFS);
+ if (p) {
+ p->fd_nent = nbr;
+ finfo->fi_hdir = p;
+ err = 0;
+ }
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_finfo_fin(struct file *file)
+{
+ struct au_finfo *finfo;
+
+ finfo = au_fi(file);
+ AuDebugOn(finfo->fi_hdir);
+ AuRwDestroy(&finfo->fi_rwsem);
+ au_cache_free_finfo(finfo);
+}
+
+void au_fi_init_once(void *_fi)
+{
+ struct au_finfo *fi = _fi;
+
+ au_rw_init(&fi->fi_rwsem);
+ mutex_init(&fi->fi_vm_mtx);
+ mutex_init(&fi->fi_mmap);
+}
+
+int au_finfo_init(struct file *file, struct au_fidir *fidir)
+{
+ int err;
+ struct au_finfo *finfo;
+ struct dentry *dentry;
+
+ err = -ENOMEM;
+ dentry = file->f_dentry;
+ finfo = au_cache_alloc_finfo();
+ if (unlikely(!finfo))
+ goto out;
+
+ err = 0;
+ au_rw_write_lock(&finfo->fi_rwsem);
+ finfo->fi_btop = -1;
+ finfo->fi_hdir = fidir;
+ atomic_set(&finfo->fi_generation, au_digen(dentry));
+ /* smp_mb(); */ /* atomic_set */
+
+ file->private_data = finfo;
+
+out:
+ return err;
+}
diff --git a/ubuntu/aufs/fstype.h b/ubuntu/aufs/fstype.h
new file mode 100644
index 00000000000..270f2a4d4dd
--- /dev/null
+++ b/ubuntu/aufs/fstype.h
@@ -0,0 +1,497 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * judging filesystem type
+ */
+
+#ifndef __AUFS_FSTYPE_H__
+#define __AUFS_FSTYPE_H__
+
+#ifdef __KERNEL__
+
+#include <linux/fs.h>
+#include <linux/magic.h>
+#include <linux/romfs_fs.h>
+#include <linux/aufs_type.h>
+
+static inline int au_test_aufs(struct super_block *sb)
+{
+ return sb->s_magic == AUFS_SUPER_MAGIC;
+}
+
+static inline const char *au_sbtype(struct super_block *sb)
+{
+ return sb->s_type->name;
+}
+
+static inline int au_test_iso9660(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_ROMFS_FS) || defined(CONFIG_ROMFS_FS_MODULE)
+ return sb->s_magic == ROMFS_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_romfs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_ISO9660_FS) || defined(CONFIG_ISO9660_FS_MODULE)
+ return sb->s_magic == ISOFS_SUPER_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_cramfs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_CRAMFS) || defined(CONFIG_CRAMFS_MODULE)
+ return sb->s_magic == CRAMFS_MAGIC;
+#endif
+ return 0;
+}
+
+static inline int au_test_nfs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_NFS_FS) || defined(CONFIG_NFS_FS_MODULE)
+ return sb->s_magic == NFS_SUPER_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_fuse(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_FUSE_FS) || defined(CONFIG_FUSE_FS_MODULE)
+ return sb->s_magic == FUSE_SUPER_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_xfs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_XFS_FS) || defined(CONFIG_XFS_FS_MODULE)
+ return sb->s_magic == XFS_SB_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_tmpfs(struct super_block *sb __maybe_unused)
+{
+#ifdef CONFIG_TMPFS
+ return sb->s_magic == TMPFS_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_ecryptfs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_ECRYPT_FS) || defined(CONFIG_ECRYPT_FS_MODULE)
+ return !strcmp(au_sbtype(sb), "ecryptfs");
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_smbfs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_SMB_FS) || defined(CONFIG_SMB_FS_MODULE)
+ return sb->s_magic == SMB_SUPER_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_ocfs2(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_OCFS2_FS) || defined(CONFIG_OCFS2_FS_MODULE)
+ return sb->s_magic == OCFS2_SUPER_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_ocfs2_dlmfs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_OCFS2_FS_O2CB) || defined(CONFIG_OCFS2_FS_O2CB_MODULE)
+ return sb->s_magic == DLMFS_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_coda(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_CODA_FS) || defined(CONFIG_CODA_FS_MODULE)
+ return sb->s_magic == CODA_SUPER_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_v9fs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_9P_FS) || defined(CONFIG_9P_FS_MODULE)
+ return sb->s_magic == V9FS_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_ext4(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_EXT4DEV_FS) || defined(CONFIG_EXT4DEV_FS_MODULE)
+ return sb->s_magic == EXT4_SUPER_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_sysv(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_SYSV_FS) || defined(CONFIG_SYSV_FS_MODULE)
+ return !strcmp(au_sbtype(sb), "sysv");
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_ramfs(struct super_block *sb)
+{
+ return sb->s_magic == RAMFS_MAGIC;
+}
+
+static inline int au_test_ubifs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_UBIFS_FS) || defined(CONFIG_UBIFS_FS_MODULE)
+ return sb->s_magic == UBIFS_SUPER_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_procfs(struct super_block *sb __maybe_unused)
+{
+#ifdef CONFIG_PROC_FS
+ return sb->s_magic == PROC_SUPER_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_sysfs(struct super_block *sb __maybe_unused)
+{
+#ifdef CONFIG_SYSFS
+ return sb->s_magic == SYSFS_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_configfs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_CONFIGFS_FS) || defined(CONFIG_CONFIGFS_FS_MODULE)
+ return sb->s_magic == CONFIGFS_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_minix(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_MINIX_FS) || defined(CONFIG_MINIX_FS_MODULE)
+ return sb->s_magic == MINIX3_SUPER_MAGIC
+ || sb->s_magic == MINIX2_SUPER_MAGIC
+ || sb->s_magic == MINIX2_SUPER_MAGIC2
+ || sb->s_magic == MINIX_SUPER_MAGIC
+ || sb->s_magic == MINIX_SUPER_MAGIC2;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_cifs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_CIFS_FS) || defined(CONFIGCIFS_FS_MODULE)
+ return sb->s_magic == CIFS_MAGIC_NUMBER;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_fat(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_FAT_FS) || defined(CONFIG_FAT_FS_MODULE)
+ return sb->s_magic == MSDOS_SUPER_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_msdos(struct super_block *sb)
+{
+ return au_test_fat(sb);
+}
+
+static inline int au_test_vfat(struct super_block *sb)
+{
+ return au_test_fat(sb);
+}
+
+static inline int au_test_securityfs(struct super_block *sb __maybe_unused)
+{
+#ifdef CONFIG_SECURITYFS
+ return sb->s_magic == SECURITYFS_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_squashfs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_SQUASHFS) || defined(CONFIG_SQUASHFS_MODULE)
+ return sb->s_magic == SQUASHFS_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_btrfs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
+ return sb->s_magic == BTRFS_SUPER_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_xenfs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_XENFS) || defined(CONFIG_XENFS_MODULE)
+ return sb->s_magic == XENFS_SUPER_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_debugfs(struct super_block *sb __maybe_unused)
+{
+#ifdef CONFIG_DEBUG_FS
+ return sb->s_magic == DEBUGFS_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_nilfs(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_NILFS) || defined(CONFIG_NILFS_MODULE)
+ return sb->s_magic == NILFS_SUPER_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+static inline int au_test_hfsplus(struct super_block *sb __maybe_unused)
+{
+#if defined(CONFIG_HFSPLUS_FS) || defined(CONFIG_HFSPLUS_FS_MODULE)
+ return sb->s_magic == HFSPLUS_SUPER_MAGIC;
+#else
+ return 0;
+#endif
+}
+
+/* ---------------------------------------------------------------------- */
+/*
+ * they can't be an aufs branch.
+ */
+static inline int au_test_fs_unsuppoted(struct super_block *sb)
+{
+ return
+#ifndef CONFIG_AUFS_BR_RAMFS
+ au_test_ramfs(sb) ||
+#endif
+ au_test_procfs(sb)
+ || au_test_sysfs(sb)
+ || au_test_configfs(sb)
+ || au_test_debugfs(sb)
+ || au_test_securityfs(sb)
+ || au_test_xenfs(sb)
+ || au_test_ecryptfs(sb)
+ /* || !strcmp(au_sbtype(sb), "unionfs") */
+ || au_test_aufs(sb); /* will be supported in next version */
+}
+
+/*
+ * If the filesystem supports NFS-export, then it has to support NULL as
+ * a nameidata parameter for ->create(), ->lookup() and ->d_revalidate().
+ * We can apply this principle when we handle a lower filesystem.
+ */
+static inline int au_test_fs_null_nd(struct super_block *sb)
+{
+ return !!sb->s_export_op;
+}
+
+static inline int au_test_fs_remote(struct super_block *sb)
+{
+ return !au_test_tmpfs(sb)
+#ifdef CONFIG_AUFS_BR_RAMFS
+ && !au_test_ramfs(sb)
+#endif
+ && !(sb->s_type->fs_flags & FS_REQUIRES_DEV);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * Note: these functions (below) are created after reading ->getattr() in all
+ * filesystems under linux/fs. it means we have to do so in every update...
+ */
+
+/*
+ * some filesystems require getattr to refresh the inode attributes before
+ * referencing.
+ * in most cases, we can rely on the inode attribute in NFS (or every remote fs)
+ * and leave the work for d_revalidate()
+ */
+static inline int au_test_fs_refresh_iattr(struct super_block *sb)
+{
+ return au_test_nfs(sb)
+ || au_test_fuse(sb)
+ /* || au_test_smbfs(sb) */ /* untested */
+ /* || au_test_ocfs2(sb) */ /* untested */
+ /* || au_test_btrfs(sb) */ /* untested */
+ /* || au_test_coda(sb) */ /* untested */
+ /* || au_test_v9fs(sb) */ /* untested */
+ ;
+}
+
+/*
+ * filesystems which don't maintain i_size or i_blocks.
+ */
+static inline int au_test_fs_bad_iattr_size(struct super_block *sb)
+{
+ return au_test_xfs(sb)
+ || au_test_btrfs(sb)
+ || au_test_ubifs(sb)
+ || au_test_hfsplus(sb) /* maintained, but incorrect */
+ /* || au_test_ext4(sb) */ /* untested */
+ /* || au_test_ocfs2(sb) */ /* untested */
+ /* || au_test_ocfs2_dlmfs(sb) */ /* untested */
+ /* || au_test_sysv(sb) */ /* untested */
+ /* || au_test_minix(sb) */ /* untested */
+ ;
+}
+
+/*
+ * filesystems which don't store the correct value in some of their inode
+ * attributes.
+ */
+static inline int au_test_fs_bad_iattr(struct super_block *sb)
+{
+ return au_test_fs_bad_iattr_size(sb)
+ /* || au_test_cifs(sb) */ /* untested */
+ || au_test_fat(sb)
+ || au_test_msdos(sb)
+ || au_test_vfat(sb);
+}
+
+/* they don't check i_nlink in link(2) */
+static inline int au_test_fs_no_limit_nlink(struct super_block *sb)
+{
+ return au_test_tmpfs(sb)
+#ifdef CONFIG_AUFS_BR_RAMFS
+ || au_test_ramfs(sb)
+#endif
+ || au_test_ubifs(sb)
+ || au_test_btrfs(sb)
+ || au_test_hfsplus(sb);
+}
+
+/*
+ * filesystems which sets S_NOATIME and S_NOCMTIME.
+ */
+static inline int au_test_fs_notime(struct super_block *sb)
+{
+ return au_test_nfs(sb)
+ || au_test_fuse(sb)
+ || au_test_ubifs(sb)
+ /* || au_test_cifs(sb) */ /* untested */
+ ;
+}
+
+/*
+ * filesystems which requires replacing i_mapping.
+ */
+static inline int au_test_fs_bad_mapping(struct super_block *sb)
+{
+ return au_test_fuse(sb)
+ || au_test_ubifs(sb);
+}
+
+/* temporary support for i#1 in cramfs */
+static inline int au_test_fs_unique_ino(struct inode *inode)
+{
+ if (au_test_cramfs(inode->i_sb))
+ return inode->i_ino != 1;
+ return 1;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * the filesystem where the xino files placed must support i/o after unlink and
+ * maintain i_size and i_blocks.
+ */
+static inline int au_test_fs_bad_xino(struct super_block *sb)
+{
+ return au_test_fs_remote(sb)
+ || au_test_fs_bad_iattr_size(sb)
+#ifdef CONFIG_AUFS_BR_RAMFS
+ || !(au_test_ramfs(sb) || au_test_fs_null_nd(sb))
+#else
+ || !au_test_fs_null_nd(sb) /* to keep xino code simple */
+#endif
+ /* don't want unnecessary work for xino */
+ || au_test_aufs(sb)
+ || au_test_ecryptfs(sb)
+ || au_test_nilfs(sb);
+}
+
+static inline int au_test_fs_trunc_xino(struct super_block *sb)
+{
+ return au_test_tmpfs(sb)
+ || au_test_ramfs(sb);
+}
+
+/*
+ * test if the @sb is real-readonly.
+ */
+static inline int au_test_fs_rr(struct super_block *sb)
+{
+ return au_test_squashfs(sb)
+ || au_test_iso9660(sb)
+ || au_test_cramfs(sb)
+ || au_test_romfs(sb);
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_FSTYPE_H__ */
diff --git a/ubuntu/aufs/hfsnotify.c b/ubuntu/aufs/hfsnotify.c
new file mode 100644
index 00000000000..ab47e52ed92
--- /dev/null
+++ b/ubuntu/aufs/hfsnotify.c
@@ -0,0 +1,230 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * fsnotify for the lower directories
+ */
+
+#include "aufs.h"
+
+/* FS_IN_IGNORED is unnecessary */
+static const __u32 AuHfsnMask = (FS_MOVED_TO | FS_MOVED_FROM | FS_DELETE
+ | FS_CREATE | FS_EVENT_ON_CHILD);
+static struct fsnotify_group *au_hfsn_group;
+
+static void au_hfsn_free_mark(struct fsnotify_mark_entry *entry)
+{
+#if 0
+ struct au_hnotify *hn = container_of(entry, struct au_hnotify,
+ hn_entry);
+ au_cache_free_hnotify(hn);
+#endif
+ AuDbg("here\n");
+}
+
+static int au_hfsn_alloc(struct au_hnotify *hn, struct inode *h_inode)
+{
+ struct fsnotify_mark_entry *entry;
+
+ entry = &hn->hn_entry;
+ fsnotify_init_mark(entry, au_hfsn_free_mark);
+ entry->mask = AuHfsnMask;
+ return fsnotify_add_mark(entry, au_hfsn_group, h_inode);
+}
+
+static void au_hfsn_free(struct au_hnotify *hn)
+{
+ struct fsnotify_mark_entry *entry;
+
+ entry = &hn->hn_entry;
+ fsnotify_destroy_mark_by_entry(entry);
+ fsnotify_put_mark(entry);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static void au_hfsn_ctl(struct au_hinode *hinode, int do_set)
+{
+ struct fsnotify_mark_entry *entry;
+
+ entry = &hinode->hi_notify->hn_entry;
+ spin_lock(&entry->lock);
+ if (do_set) {
+ AuDebugOn(entry->mask & AuHfsnMask);
+ entry->mask |= AuHfsnMask;
+ } else {
+ AuDebugOn(!(entry->mask & AuHfsnMask));
+ entry->mask &= ~AuHfsnMask;
+ }
+ spin_unlock(&entry->lock);
+ /* fsnotify_recalc_inode_mask(hinode->hi_inode); */
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* #define AuDbgHnotify */
+#ifdef AuDbgHnotify
+static char *au_hfsn_name(u32 mask)
+{
+#ifdef CONFIG_AUFS_DEBUG
+#define test_ret(flag) if (mask & flag) \
+ return #flag;
+ test_ret(FS_ACCESS);
+ test_ret(FS_MODIFY);
+ test_ret(FS_ATTRIB);
+ test_ret(FS_CLOSE_WRITE);
+ test_ret(FS_CLOSE_NOWRITE);
+ test_ret(FS_OPEN);
+ test_ret(FS_MOVED_FROM);
+ test_ret(FS_MOVED_TO);
+ test_ret(FS_CREATE);
+ test_ret(FS_DELETE);
+ test_ret(FS_DELETE_SELF);
+ test_ret(FS_MOVE_SELF);
+ test_ret(FS_UNMOUNT);
+ test_ret(FS_Q_OVERFLOW);
+ test_ret(FS_IN_IGNORED);
+ test_ret(FS_IN_ISDIR);
+ test_ret(FS_IN_ONESHOT);
+ test_ret(FS_EVENT_ON_CHILD);
+ return "";
+#undef test_ret
+#else
+ return "??";
+#endif
+}
+#endif
+
+/* ---------------------------------------------------------------------- */
+
+static int au_hfsn_handle_event(struct fsnotify_group *group,
+ struct fsnotify_event *event)
+{
+ int err;
+ struct au_hnotify *hnotify;
+ struct inode *h_dir, *h_inode;
+ __u32 mask;
+ struct fsnotify_mark_entry *entry;
+ struct qstr h_child_qstr = {
+ .name = event->file_name,
+ .len = event->name_len
+ };
+
+ AuDebugOn(event->data_type != FSNOTIFY_EVENT_INODE);
+
+ err = 0;
+ /* if IN_UNMOUNT happens, there must be another bug */
+ mask = event->mask;
+ AuDebugOn(mask & FS_UNMOUNT);
+ if (mask & (IN_IGNORED | IN_UNMOUNT))
+ goto out;
+
+ h_dir = event->to_tell;
+ h_inode = event->inode;
+#ifdef AuDbgHnotify
+ au_debug(1);
+ if (1 || h_child_qstr.len != sizeof(AUFS_XINO_FNAME) - 1
+ || strncmp(h_child_qstr.name, AUFS_XINO_FNAME, h_child_qstr.len)) {
+ AuDbg("i%lu, mask 0x%x %s, hcname %.*s, hi%lu\n",
+ h_dir->i_ino, mask, au_hfsn_name(mask),
+ AuLNPair(&h_child_qstr), h_inode ? h_inode->i_ino : 0);
+ /* WARN_ON(1); */
+ }
+ au_debug(0);
+#endif
+
+ spin_lock(&h_dir->i_lock);
+ entry = fsnotify_find_mark_entry(group, h_dir);
+ spin_unlock(&h_dir->i_lock);
+ if (entry) {
+ hnotify = container_of(entry, struct au_hnotify, hn_entry);
+ err = au_hnotify(h_dir, hnotify, mask, &h_child_qstr, h_inode);
+ fsnotify_put_mark(entry);
+ }
+
+out:
+ return err;
+}
+
+/* copied from linux/fs/notify/inotify/inotify_fsnotiry.c */
+/* it should be exported to modules */
+static bool au_hfsn_should_send_event(struct fsnotify_group *group,
+ struct inode *h_inode, __u32 mask)
+{
+ struct fsnotify_mark_entry *entry;
+ bool send;
+
+ spin_lock(&h_inode->i_lock);
+ entry = fsnotify_find_mark_entry(group, h_inode);
+ spin_unlock(&h_inode->i_lock);
+ if (!entry)
+ return false;
+
+ mask = (mask & ~FS_EVENT_ON_CHILD);
+ send = (entry->mask & mask);
+
+ /* find took a reference */
+ fsnotify_put_mark(entry);
+
+ return send;
+}
+
+static struct fsnotify_ops au_hfsn_ops = {
+ .should_send_event = au_hfsn_should_send_event,
+ .handle_event = au_hfsn_handle_event
+};
+
+/* ---------------------------------------------------------------------- */
+
+static int __init au_hfsn_init(void)
+{
+ int err;
+ unsigned int gn;
+ const unsigned int gn_max = 10;
+
+ gn = 0;
+ for (gn = 0; gn < gn_max; gn++) {
+ au_hfsn_group = fsnotify_obtain_group(gn, AuHfsnMask,
+ &au_hfsn_ops);
+ if (au_hfsn_group != ERR_PTR(-EEXIST))
+ break;
+ }
+
+ err = 0;
+ if (IS_ERR(au_hfsn_group)) {
+ pr_err("fsnotify_obtain_group() failed %u times\n", gn_max);
+ err = PTR_ERR(au_hfsn_group);
+ }
+
+ AuTraceErr(err);
+ return err;
+}
+
+static void au_hfsn_fin(void)
+{
+ fsnotify_put_group(au_hfsn_group);
+}
+
+const struct au_hnotify_op au_hnotify_op = {
+ .ctl = au_hfsn_ctl,
+ .alloc = au_hfsn_alloc,
+ .free = au_hfsn_free,
+
+ .fin = au_hfsn_fin,
+ .init = au_hfsn_init
+};
diff --git a/ubuntu/aufs/hfsplus.c b/ubuntu/aufs/hfsplus.c
new file mode 100644
index 00000000000..3bb997c780c
--- /dev/null
+++ b/ubuntu/aufs/hfsplus.c
@@ -0,0 +1,58 @@
+/*
+ * Copyright (C) 2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * special support for filesystems which aqucires an inode mutex
+ * at final closing a file, eg, hfsplus.
+ *
+ * This trick is very simple and stupid, just to open the file before really
+ * neceeary open to tell hfsplus that this is not the final closing.
+ * The caller should call au_h_open_pre() after acquiring the inode mutex,
+ * and au_h_open_post() after releasing it.
+ */
+
+#include <linux/file.h>
+#include "aufs.h"
+
+struct file *au_h_open_pre(struct dentry *dentry, aufs_bindex_t bindex)
+{
+ struct file *h_file;
+ struct dentry *h_dentry;
+
+ h_dentry = au_h_dptr(dentry, bindex);
+ AuDebugOn(!h_dentry);
+ AuDebugOn(!h_dentry->d_inode);
+ IMustLock(h_dentry->d_inode);
+
+ h_file = NULL;
+ if (au_test_hfsplus(h_dentry->d_sb)
+ && S_ISREG(h_dentry->d_inode->i_mode))
+ h_file = au_h_open(dentry, bindex,
+ O_RDONLY | O_NOATIME | O_LARGEFILE,
+ /*file*/NULL);
+ return h_file;
+}
+
+void au_h_open_post(struct dentry *dentry, aufs_bindex_t bindex,
+ struct file *h_file)
+{
+ if (h_file) {
+ fput(h_file);
+ au_sbr_put(dentry->d_sb, bindex);
+ }
+}
diff --git a/ubuntu/aufs/hinotify.c b/ubuntu/aufs/hinotify.c
new file mode 100644
index 00000000000..8ecd8371668
--- /dev/null
+++ b/ubuntu/aufs/hinotify.c
@@ -0,0 +1,227 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * inotify for the lower directories (deprecated)
+ */
+
+#include "aufs.h"
+
+static const __u32 AuHinMask = (IN_MOVE | IN_DELETE | IN_CREATE);
+static struct inotify_handle *au_hin_handle;
+
+/* ---------------------------------------------------------------------- */
+
+static int au_hin_alloc(struct au_hnotify *hn, struct inode *h_inode)
+{
+ int err;
+ s32 wd;
+ struct inotify_watch *watch;
+
+ err = -EEXIST;
+ wd = inotify_find_watch(au_hin_handle, h_inode, &watch);
+ if (wd >= 0) {
+ put_inotify_watch(watch);
+ goto out;
+ }
+
+ err = 0;
+ inotify_init_watch(&hn->hn_watch);
+ wd = inotify_add_watch(au_hin_handle, &hn->hn_watch, h_inode,
+ AuHinMask);
+ if (unlikely(wd < 0)) {
+ err = wd;
+ put_inotify_watch(&hn->hn_watch);
+ }
+
+out:
+ return err;
+}
+
+static void au_hin_free(struct au_hnotify *hn)
+{
+ int err;
+
+ err = 0;
+ if (atomic_read(&hn->hn_watch.count))
+ err = inotify_rm_watch(au_hin_handle, &hn->hn_watch);
+ if (unlikely(err))
+ /* it means the watch is already removed */
+ pr_warning("failed inotify_rm_watch() %d\n", err);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static void au_hin_ctl(struct au_hinode *hinode, int do_set)
+{
+ struct inode *h_inode;
+ struct inotify_watch *watch;
+
+ h_inode = hinode->hi_inode;
+ IMustLock(h_inode);
+
+ /* todo: try inotify_find_update_watch()? */
+ watch = &hinode->hi_notify->hn_watch;
+ mutex_lock(&h_inode->inotify_mutex);
+ /* mutex_lock(&watch->ih->mutex); */
+ if (do_set) {
+ AuDebugOn(watch->mask & AuHinMask);
+ watch->mask |= AuHinMask;
+ } else {
+ AuDebugOn(!(watch->mask & AuHinMask));
+ watch->mask &= ~AuHinMask;
+ }
+ /* mutex_unlock(&watch->ih->mutex); */
+ mutex_unlock(&h_inode->inotify_mutex);
+}
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef AuDbgHnotify
+static char *in_name(u32 mask)
+{
+#ifdef CONFIG_AUFS_DEBUG
+#define test_ret(flag) if (mask & flag) \
+ return #flag;
+ test_ret(IN_ACCESS);
+ test_ret(IN_MODIFY);
+ test_ret(IN_ATTRIB);
+ test_ret(IN_CLOSE_WRITE);
+ test_ret(IN_CLOSE_NOWRITE);
+ test_ret(IN_OPEN);
+ test_ret(IN_MOVED_FROM);
+ test_ret(IN_MOVED_TO);
+ test_ret(IN_CREATE);
+ test_ret(IN_DELETE);
+ test_ret(IN_DELETE_SELF);
+ test_ret(IN_MOVE_SELF);
+ test_ret(IN_UNMOUNT);
+ test_ret(IN_Q_OVERFLOW);
+ test_ret(IN_IGNORED);
+ return "";
+#undef test_ret
+#else
+ return "??";
+#endif
+}
+#endif
+
+static u32 au_hin_conv_mask(u32 mask)
+{
+ u32 conv;
+
+ conv = 0;
+#define do_conv(flag) conv |= (mask & IN_ ## flag) ? FS_ ## flag : 0
+ do_conv(ACCESS);
+ do_conv(MODIFY);
+ do_conv(ATTRIB);
+ do_conv(CLOSE_WRITE);
+ do_conv(CLOSE_NOWRITE);
+ do_conv(OPEN);
+ do_conv(MOVED_FROM);
+ do_conv(MOVED_TO);
+ do_conv(CREATE);
+ do_conv(DELETE);
+ do_conv(DELETE_SELF);
+ do_conv(MOVE_SELF);
+ do_conv(UNMOUNT);
+ do_conv(Q_OVERFLOW);
+#undef do_conv
+#define do_conv(flag) conv |= (mask & IN_ ## flag) ? FS_IN_ ## flag : 0
+ do_conv(IGNORED);
+ /* do_conv(ISDIR); */
+ /* do_conv(ONESHOT); */
+#undef do_conv
+
+ return conv;
+}
+
+static void aufs_inotify(struct inotify_watch *watch, u32 wd __maybe_unused,
+ u32 mask, u32 cookie __maybe_unused,
+ const char *h_child_name, struct inode *h_child_inode)
+{
+ struct au_hnotify *hnotify;
+ struct qstr h_child_qstr = {
+ .name = h_child_name
+ };
+
+ /* if IN_UNMOUNT happens, there must be another bug */
+ AuDebugOn(mask & IN_UNMOUNT);
+ if (mask & (IN_IGNORED | IN_UNMOUNT)) {
+ put_inotify_watch(watch);
+ return;
+ }
+
+#ifdef AuDbgHnotify
+ au_debug(1);
+ if (1 || !h_child_name || strcmp(h_child_name, AUFS_XINO_FNAME)) {
+ AuDbg("i%lu, wd %d, mask 0x%x %s, cookie 0x%x, hcname %s,"
+ " hi%lu\n",
+ watch->inode->i_ino, wd, mask, in_name(mask), cookie,
+ h_child_name ? h_child_name : "",
+ h_child_inode ? h_child_inode->i_ino : 0);
+ WARN_ON(1);
+ }
+ au_debug(0);
+#endif
+
+ if (h_child_name)
+ h_child_qstr.len = strlen(h_child_name);
+ hnotify = container_of(watch, struct au_hnotify, hn_watch);
+ mask = au_hin_conv_mask(mask);
+ au_hnotify(watch->inode, hnotify, mask, &h_child_qstr, h_child_inode);
+}
+
+static void aufs_inotify_destroy(struct inotify_watch *watch __maybe_unused)
+{
+ return;
+}
+
+static struct inotify_operations aufs_inotify_ops = {
+ .handle_event = aufs_inotify,
+ .destroy_watch = aufs_inotify_destroy
+};
+
+/* ---------------------------------------------------------------------- */
+
+static int __init au_hin_init(void)
+{
+ int err;
+
+ err = 0;
+ au_hin_handle = inotify_init(&aufs_inotify_ops);
+ if (IS_ERR(au_hin_handle))
+ err = PTR_ERR(au_hin_handle);
+
+ AuTraceErr(err);
+ return err;
+}
+
+static void au_hin_fin(void)
+{
+ inotify_destroy(au_hin_handle);
+}
+
+const struct au_hnotify_op au_hnotify_op = {
+ .ctl = au_hin_ctl,
+ .alloc = au_hin_alloc,
+ .free = au_hin_free,
+
+ .fin = au_hin_fin,
+ .init = au_hin_init
+};
diff --git a/ubuntu/aufs/hnotify.c b/ubuntu/aufs/hnotify.c
new file mode 100644
index 00000000000..f03df3b16f8
--- /dev/null
+++ b/ubuntu/aufs/hnotify.c
@@ -0,0 +1,671 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * abstraction to notify the direct changes on lower directories
+ */
+
+#include "aufs.h"
+
+int au_hn_alloc(struct au_hinode *hinode, struct inode *inode,
+ struct inode *h_inode)
+{
+ int err;
+ struct au_hnotify *hn;
+
+ err = -ENOMEM;
+ hn = au_cache_alloc_hnotify();
+ if (hn) {
+ hn->hn_aufs_inode = inode;
+ err = au_hnotify_op.alloc(hn, h_inode);
+ if (!err)
+ hinode->hi_notify = hn;
+ else {
+ au_cache_free_hnotify(hn);
+ /*
+ * The upper dir was removed by udba, but the same named
+ * dir left. In this case, aufs assignes a new inode
+ * number and set the monitor again.
+ * For the lower dir, the old monitnor is still left.
+ */
+ if (err == -EEXIST)
+ err = 0;
+ }
+ }
+
+ return err;
+}
+
+void au_hn_free(struct au_hinode *hinode)
+{
+ struct au_hnotify *hn;
+
+ hn = hinode->hi_notify;
+ if (hn) {
+ au_hnotify_op.free(hn);
+ au_cache_free_hnotify(hn);
+ hinode->hi_notify = NULL;
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_hn_ctl(struct au_hinode *hinode, int do_set)
+{
+ if (hinode->hi_notify)
+ au_hnotify_op.ctl(hinode, do_set);
+}
+
+void au_hn_reset(struct inode *inode, unsigned int flags)
+{
+ aufs_bindex_t bindex, bend;
+ struct inode *hi;
+ struct dentry *iwhdentry;
+
+ bend = au_ibend(inode);
+ for (bindex = au_ibstart(inode); bindex <= bend; bindex++) {
+ hi = au_h_iptr(inode, bindex);
+ if (!hi)
+ continue;
+
+ /* mutex_lock_nested(&hi->i_mutex, AuLsc_I_CHILD); */
+ iwhdentry = au_hi_wh(inode, bindex);
+ if (iwhdentry)
+ dget(iwhdentry);
+ au_igrab(hi);
+ au_set_h_iptr(inode, bindex, NULL, 0);
+ au_set_h_iptr(inode, bindex, au_igrab(hi),
+ flags & ~AuHi_XINO);
+ iput(hi);
+ dput(iwhdentry);
+ /* mutex_unlock(&hi->i_mutex); */
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int hn_xino(struct inode *inode, struct inode *h_inode)
+{
+ int err;
+ aufs_bindex_t bindex, bend, bfound, bstart;
+ struct inode *h_i;
+
+ err = 0;
+ if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
+ pr_warning("branch root dir was changed\n");
+ goto out;
+ }
+
+ bfound = -1;
+ bend = au_ibend(inode);
+ bstart = au_ibstart(inode);
+#if 0 /* reserved for future use */
+ if (bindex == bend) {
+ /* keep this ino in rename case */
+ goto out;
+ }
+#endif
+ for (bindex = bstart; bindex <= bend; bindex++)
+ if (au_h_iptr(inode, bindex) == h_inode) {
+ bfound = bindex;
+ break;
+ }
+ if (bfound < 0)
+ goto out;
+
+ for (bindex = bstart; bindex <= bend; bindex++) {
+ h_i = au_h_iptr(inode, bindex);
+ if (!h_i)
+ continue;
+
+ err = au_xino_write(inode->i_sb, bindex, h_i->i_ino, /*ino*/0);
+ /* ignore this error */
+ /* bad action? */
+ }
+
+ /* children inode number will be broken */
+
+ out:
+ AuTraceErr(err);
+ return err;
+}
+
+static int hn_gen_tree(struct dentry *dentry)
+{
+ int err, i, j, ndentry;
+ struct au_dcsub_pages dpages;
+ struct au_dpage *dpage;
+ struct dentry **dentries;
+
+ err = au_dpages_init(&dpages, GFP_NOFS);
+ if (unlikely(err))
+ goto out;
+ err = au_dcsub_pages(&dpages, dentry, NULL, NULL);
+ if (unlikely(err))
+ goto out_dpages;
+
+ for (i = 0; i < dpages.ndpage; i++) {
+ dpage = dpages.dpages + i;
+ dentries = dpage->dentries;
+ ndentry = dpage->ndentry;
+ for (j = 0; j < ndentry; j++) {
+ struct dentry *d;
+
+ d = dentries[j];
+ if (IS_ROOT(d))
+ continue;
+
+ d_drop(d);
+ au_digen_dec(d);
+ if (d->d_inode)
+ /* todo: reset children xino?
+ cached children only? */
+ au_iigen_dec(d->d_inode);
+ }
+ }
+
+ out_dpages:
+ au_dpages_free(&dpages);
+
+ /* discard children */
+ dentry_unhash(dentry);
+ dput(dentry);
+ out:
+ return err;
+}
+
+/*
+ * return 0 if processed.
+ */
+static int hn_gen_by_inode(char *name, unsigned int nlen, struct inode *inode,
+ const unsigned int isdir)
+{
+ int err;
+ struct dentry *d;
+ struct qstr *dname;
+
+ err = 1;
+ if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
+ pr_warning("branch root dir was changed\n");
+ err = 0;
+ goto out;
+ }
+
+ if (!isdir) {
+ AuDebugOn(!name);
+ au_iigen_dec(inode);
+ spin_lock(&dcache_lock);
+ list_for_each_entry(d, &inode->i_dentry, d_alias) {
+ dname = &d->d_name;
+ if (dname->len != nlen
+ && memcmp(dname->name, name, nlen))
+ continue;
+ err = 0;
+ spin_lock(&d->d_lock);
+ __d_drop(d);
+ au_digen_dec(d);
+ spin_unlock(&d->d_lock);
+ break;
+ }
+ spin_unlock(&dcache_lock);
+ } else {
+ au_fset_si(au_sbi(inode->i_sb), FAILED_REFRESH_DIRS);
+ d = d_find_alias(inode);
+ if (!d) {
+ au_iigen_dec(inode);
+ goto out;
+ }
+
+ dname = &d->d_name;
+ if (dname->len == nlen && !memcmp(dname->name, name, nlen))
+ err = hn_gen_tree(d);
+ dput(d);
+ }
+
+ out:
+ AuTraceErr(err);
+ return err;
+}
+
+static int hn_gen_by_name(struct dentry *dentry, const unsigned int isdir)
+{
+ int err;
+ struct inode *inode;
+
+ inode = dentry->d_inode;
+ if (IS_ROOT(dentry)
+ /* || (inode && inode->i_ino == AUFS_ROOT_INO) */
+ ) {
+ pr_warning("branch root dir was changed\n");
+ return 0;
+ }
+
+ err = 0;
+ if (!isdir) {
+ d_drop(dentry);
+ au_digen_dec(dentry);
+ if (inode)
+ au_iigen_dec(inode);
+ } else {
+ au_fset_si(au_sbi(dentry->d_sb), FAILED_REFRESH_DIRS);
+ if (inode)
+ err = hn_gen_tree(dentry);
+ }
+
+ AuTraceErr(err);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* hnotify job flags */
+#define AuHnJob_XINO0 1
+#define AuHnJob_GEN (1 << 1)
+#define AuHnJob_DIRENT (1 << 2)
+#define AuHnJob_ISDIR (1 << 3)
+#define AuHnJob_TRYXINO0 (1 << 4)
+#define AuHnJob_MNTPNT (1 << 5)
+#define au_ftest_hnjob(flags, name) ((flags) & AuHnJob_##name)
+#define au_fset_hnjob(flags, name) { (flags) |= AuHnJob_##name; }
+#define au_fclr_hnjob(flags, name) { (flags) &= ~AuHnJob_##name; }
+
+enum {
+ AuHn_CHILD,
+ AuHn_PARENT,
+ AuHnLast
+};
+
+struct au_hnotify_args {
+ struct inode *h_dir, *dir, *h_child_inode;
+ u32 mask;
+ unsigned int flags[AuHnLast];
+ unsigned int h_child_nlen;
+ char h_child_name[];
+};
+
+struct hn_job_args {
+ unsigned int flags;
+ struct inode *inode, *h_inode, *dir, *h_dir;
+ struct dentry *dentry;
+ char *h_name;
+ int h_nlen;
+};
+
+static int hn_job(struct hn_job_args *a)
+{
+ const unsigned int isdir = au_ftest_hnjob(a->flags, ISDIR);
+
+ /* reset xino */
+ if (au_ftest_hnjob(a->flags, XINO0) && a->inode)
+ hn_xino(a->inode, a->h_inode); /* ignore this error */
+
+ if (au_ftest_hnjob(a->flags, TRYXINO0)
+ && a->inode
+ && a->h_inode) {
+ mutex_lock_nested(&a->h_inode->i_mutex, AuLsc_I_CHILD);
+ if (!a->h_inode->i_nlink)
+ hn_xino(a->inode, a->h_inode); /* ignore this error */
+ mutex_unlock(&a->h_inode->i_mutex);
+ }
+
+ /* make the generation obsolete */
+ if (au_ftest_hnjob(a->flags, GEN)) {
+ int err = -1;
+ if (a->inode)
+ err = hn_gen_by_inode(a->h_name, a->h_nlen, a->inode,
+ isdir);
+ if (err && a->dentry)
+ hn_gen_by_name(a->dentry, isdir);
+ /* ignore this error */
+ }
+
+ /* make dir entries obsolete */
+ if (au_ftest_hnjob(a->flags, DIRENT) && a->inode) {
+ struct au_vdir *vdir;
+
+ vdir = au_ivdir(a->inode);
+ if (vdir)
+ vdir->vd_jiffy = 0;
+ /* IMustLock(a->inode); */
+ /* a->inode->i_version++; */
+ }
+
+ /* can do nothing but warn */
+ if (au_ftest_hnjob(a->flags, MNTPNT)
+ && a->dentry
+ && d_mountpoint(a->dentry))
+ pr_warning("mount-point %.*s is removed or renamed\n",
+ AuDLNPair(a->dentry));
+
+ return 0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct dentry *lookup_wlock_by_name(char *name, unsigned int nlen,
+ struct inode *dir)
+{
+ struct dentry *dentry, *d, *parent;
+ struct qstr *dname;
+
+ parent = d_find_alias(dir);
+ if (!parent)
+ return NULL;
+
+ dentry = NULL;
+ spin_lock(&dcache_lock);
+ list_for_each_entry(d, &parent->d_subdirs, d_u.d_child) {
+ /* AuDbg("%.*s\n", AuDLNPair(d)); */
+ dname = &d->d_name;
+ if (dname->len != nlen || memcmp(dname->name, name, nlen))
+ continue;
+ if (!atomic_read(&d->d_count) || !d->d_fsdata) {
+ spin_lock(&d->d_lock);
+ __d_drop(d);
+ spin_unlock(&d->d_lock);
+ continue;
+ }
+
+ dentry = dget(d);
+ break;
+ }
+ spin_unlock(&dcache_lock);
+ dput(parent);
+
+ if (dentry)
+ di_write_lock_child(dentry);
+
+ return dentry;
+}
+
+static struct inode *lookup_wlock_by_ino(struct super_block *sb,
+ aufs_bindex_t bindex, ino_t h_ino)
+{
+ struct inode *inode;
+ ino_t ino;
+ int err;
+
+ inode = NULL;
+ err = au_xino_read(sb, bindex, h_ino, &ino);
+ if (!err && ino)
+ inode = ilookup(sb, ino);
+ if (!inode)
+ goto out;
+
+ if (unlikely(inode->i_ino == AUFS_ROOT_INO)) {
+ pr_warning("wrong root branch\n");
+ iput(inode);
+ inode = NULL;
+ goto out;
+ }
+
+ ii_write_lock_child(inode);
+
+ out:
+ return inode;
+}
+
+static void au_hn_bh(void *_args)
+{
+ struct au_hnotify_args *a = _args;
+ struct super_block *sb;
+ aufs_bindex_t bindex, bend, bfound;
+ unsigned char xino, try_iput;
+ int err;
+ struct inode *inode;
+ ino_t h_ino;
+ struct hn_job_args args;
+ struct dentry *dentry;
+ struct au_sbinfo *sbinfo;
+
+ AuDebugOn(!_args);
+ AuDebugOn(!a->h_dir);
+ AuDebugOn(!a->dir);
+ AuDebugOn(!a->mask);
+ AuDbg("mask 0x%x, i%lu, hi%lu, hci%lu\n",
+ a->mask, a->dir->i_ino, a->h_dir->i_ino,
+ a->h_child_inode ? a->h_child_inode->i_ino : 0);
+
+ inode = NULL;
+ dentry = NULL;
+ /*
+ * do not lock a->dir->i_mutex here
+ * because of d_revalidate() may cause a deadlock.
+ */
+ sb = a->dir->i_sb;
+ AuDebugOn(!sb);
+ sbinfo = au_sbi(sb);
+ AuDebugOn(!sbinfo);
+ /* big aufs lock */
+ si_noflush_write_lock(sb);
+
+ ii_read_lock_parent(a->dir);
+ bfound = -1;
+ bend = au_ibend(a->dir);
+ for (bindex = au_ibstart(a->dir); bindex <= bend; bindex++)
+ if (au_h_iptr(a->dir, bindex) == a->h_dir) {
+ bfound = bindex;
+ break;
+ }
+ ii_read_unlock(a->dir);
+ if (unlikely(bfound < 0))
+ goto out;
+
+ xino = !!au_opt_test(au_mntflags(sb), XINO);
+ h_ino = 0;
+ if (a->h_child_inode)
+ h_ino = a->h_child_inode->i_ino;
+
+ if (a->h_child_nlen
+ && (au_ftest_hnjob(a->flags[AuHn_CHILD], GEN)
+ || au_ftest_hnjob(a->flags[AuHn_CHILD], MNTPNT)))
+ dentry = lookup_wlock_by_name(a->h_child_name, a->h_child_nlen,
+ a->dir);
+ try_iput = 0;
+ if (dentry)
+ inode = dentry->d_inode;
+ if (xino && !inode && h_ino
+ && (au_ftest_hnjob(a->flags[AuHn_CHILD], XINO0)
+ || au_ftest_hnjob(a->flags[AuHn_CHILD], TRYXINO0)
+ || au_ftest_hnjob(a->flags[AuHn_CHILD], GEN))) {
+ inode = lookup_wlock_by_ino(sb, bfound, h_ino);
+ try_iput = 1;
+ }
+
+ args.flags = a->flags[AuHn_CHILD];
+ args.dentry = dentry;
+ args.inode = inode;
+ args.h_inode = a->h_child_inode;
+ args.dir = a->dir;
+ args.h_dir = a->h_dir;
+ args.h_name = a->h_child_name;
+ args.h_nlen = a->h_child_nlen;
+ err = hn_job(&args);
+ if (dentry) {
+ if (dentry->d_fsdata)
+ di_write_unlock(dentry);
+ dput(dentry);
+ }
+ if (inode && try_iput) {
+ ii_write_unlock(inode);
+ iput(inode);
+ }
+
+ ii_write_lock_parent(a->dir);
+ args.flags = a->flags[AuHn_PARENT];
+ args.dentry = NULL;
+ args.inode = a->dir;
+ args.h_inode = a->h_dir;
+ args.dir = NULL;
+ args.h_dir = NULL;
+ args.h_name = NULL;
+ args.h_nlen = 0;
+ err = hn_job(&args);
+ ii_write_unlock(a->dir);
+
+ out:
+ au_nwt_done(&sbinfo->si_nowait);
+ si_write_unlock(sb);
+
+ iput(a->h_child_inode);
+ iput(a->h_dir);
+ iput(a->dir);
+ kfree(a);
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_hnotify(struct inode *h_dir, struct au_hnotify *hnotify, u32 mask,
+ struct qstr *h_child_qstr, struct inode *h_child_inode)
+{
+ int err, len;
+ unsigned int flags[AuHnLast];
+ unsigned char isdir, isroot, wh;
+ struct inode *dir;
+ struct au_hnotify_args *args;
+ char *p, *h_child_name;
+
+ err = 0;
+ AuDebugOn(!hnotify || !hnotify->hn_aufs_inode);
+ dir = igrab(hnotify->hn_aufs_inode);
+ if (!dir)
+ goto out;
+
+ isroot = (dir->i_ino == AUFS_ROOT_INO);
+ wh = 0;
+ h_child_name = (void *)h_child_qstr->name;
+ len = h_child_qstr->len;
+ if (h_child_name) {
+ if (len > AUFS_WH_PFX_LEN
+ && !memcmp(h_child_name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) {
+ h_child_name += AUFS_WH_PFX_LEN;
+ len -= AUFS_WH_PFX_LEN;
+ wh = 1;
+ }
+ }
+
+ isdir = 0;
+ if (h_child_inode)
+ isdir = !!S_ISDIR(h_child_inode->i_mode);
+ flags[AuHn_PARENT] = AuHnJob_ISDIR;
+ flags[AuHn_CHILD] = 0;
+ if (isdir)
+ flags[AuHn_CHILD] = AuHnJob_ISDIR;
+ au_fset_hnjob(flags[AuHn_PARENT], DIRENT);
+ au_fset_hnjob(flags[AuHn_CHILD], GEN);
+ switch (mask & FS_EVENTS_POSS_ON_CHILD) {
+ case FS_MOVED_FROM:
+ case FS_MOVED_TO:
+ au_fset_hnjob(flags[AuHn_CHILD], XINO0);
+ au_fset_hnjob(flags[AuHn_CHILD], MNTPNT);
+ /*FALLTHROUGH*/
+ case FS_CREATE:
+ AuDebugOn(!h_child_name || !h_child_inode);
+ break;
+
+ case FS_DELETE:
+ /*
+ * aufs never be able to get this child inode.
+ * revalidation should be in d_revalidate()
+ * by checking i_nlink, i_generation or d_unhashed().
+ */
+ AuDebugOn(!h_child_name);
+ au_fset_hnjob(flags[AuHn_CHILD], TRYXINO0);
+ au_fset_hnjob(flags[AuHn_CHILD], MNTPNT);
+ break;
+
+ default:
+ AuDebugOn(1);
+ }
+
+ if (wh)
+ h_child_inode = NULL;
+
+ err = -ENOMEM;
+ /* iput() and kfree() will be called in au_hnotify() */
+ /*
+ * inotify_mutex is already acquired and kmalloc/prune_icache may lock
+ * iprune_mutex. strange.
+ */
+ /* lockdep_off(); */
+ args = kmalloc(sizeof(*args) + len + 1, GFP_NOFS);
+ /* lockdep_on(); */
+ if (unlikely(!args)) {
+ AuErr1("no memory\n");
+ iput(dir);
+ goto out;
+ }
+ args->flags[AuHn_PARENT] = flags[AuHn_PARENT];
+ args->flags[AuHn_CHILD] = flags[AuHn_CHILD];
+ args->mask = mask;
+ args->dir = dir;
+ args->h_dir = igrab(h_dir);
+ if (h_child_inode)
+ h_child_inode = igrab(h_child_inode); /* can be NULL */
+ args->h_child_inode = h_child_inode;
+ args->h_child_nlen = len;
+ if (len) {
+ p = (void *)args;
+ p += sizeof(*args);
+ memcpy(p, h_child_name, len);
+ p[len] = 0;
+ }
+
+ /* lockdep_off(); */
+ err = au_wkq_nowait(au_hn_bh, args, dir->i_sb);
+ /* lockdep_on(); */
+ if (unlikely(err)) {
+ pr_err("wkq %d\n", err);
+ iput(args->h_child_inode);
+ iput(args->h_dir);
+ iput(args->dir);
+ kfree(args);
+ }
+
+out:
+ return err;
+}
+
+static void au_hn_destroy_cache(void)
+{
+ kmem_cache_destroy(au_cachep[AuCache_HNOTIFY]);
+ au_cachep[AuCache_HNOTIFY] = NULL;
+}
+
+int __init au_hnotify_init(void)
+{
+ int err;
+
+ err = -ENOMEM;
+ au_cachep[AuCache_HNOTIFY] = AuCache(au_hnotify);
+ if (au_cachep[AuCache_HNOTIFY]) {
+ err = au_hnotify_op.init();
+ if (unlikely(err))
+ au_hn_destroy_cache();
+ }
+ AuTraceErr(err);
+ return err;
+}
+
+void au_hnotify_fin(void)
+{
+ au_hnotify_op.fin();
+ /* cf. au_cache_fin() */
+ if (au_cachep[AuCache_HNOTIFY])
+ au_hn_destroy_cache();
+}
diff --git a/ubuntu/aufs/i_op.c b/ubuntu/aufs/i_op.c
new file mode 100644
index 00000000000..1ca19193fd2
--- /dev/null
+++ b/ubuntu/aufs/i_op.c
@@ -0,0 +1,924 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * inode operations (except add/del/rename)
+ */
+
+#include <linux/device_cgroup.h>
+#include <linux/fs_stack.h>
+#include <linux/mm.h>
+#include <linux/namei.h>
+#include <linux/security.h>
+#include <linux/uaccess.h>
+#include "aufs.h"
+
+static int h_permission(struct inode *h_inode, int mask,
+ struct vfsmount *h_mnt, int brperm)
+{
+ int err;
+ const unsigned char write_mask = !!(mask & (MAY_WRITE | MAY_APPEND));
+
+ err = -EACCES;
+ if ((write_mask && IS_IMMUTABLE(h_inode))
+ || ((mask & MAY_EXEC)
+ && S_ISREG(h_inode->i_mode)
+ && ((h_mnt->mnt_flags & MNT_NOEXEC)
+ || !(h_inode->i_mode & S_IXUGO))))
+ goto out;
+
+ /*
+ * - skip the lower fs test in the case of write to ro branch.
+ * - nfs dir permission write check is optimized, but a policy for
+ * link/rename requires a real check.
+ */
+ if ((write_mask && !au_br_writable(brperm))
+ || (au_test_nfs(h_inode->i_sb) && S_ISDIR(h_inode->i_mode)
+ && write_mask && !(mask & MAY_READ))
+ || !h_inode->i_op->permission) {
+ /* AuLabel(generic_permission); */
+ err = generic_permission(h_inode, mask,
+ h_inode->i_op->check_acl);
+ } else {
+ /* AuLabel(h_inode->permission); */
+ err = h_inode->i_op->permission(h_inode, mask);
+ AuTraceErr(err);
+ }
+
+ if (!err)
+ err = devcgroup_inode_permission(h_inode, mask);
+ if (!err) {
+ mask &= (MAY_READ | MAY_WRITE | MAY_EXEC | MAY_APPEND);
+ err = security_inode_permission(h_inode, mask);
+ }
+
+#if 0
+ if (!err) {
+ /* todo: do we need to call ima_path_check()? */
+ struct path h_path = {
+ .dentry =
+ .mnt = h_mnt
+ };
+ err = ima_path_check(&h_path,
+ mask & (MAY_READ | MAY_WRITE | MAY_EXEC),
+ IMA_COUNT_LEAVE);
+ }
+#endif
+
+ out:
+ return err;
+}
+
+static int aufs_permission(struct inode *inode, int mask)
+{
+ int err;
+ aufs_bindex_t bindex, bend;
+ const unsigned char isdir = !!S_ISDIR(inode->i_mode),
+ write_mask = !!(mask & (MAY_WRITE | MAY_APPEND));
+ struct inode *h_inode;
+ struct super_block *sb;
+ struct au_branch *br;
+
+ sb = inode->i_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ ii_read_lock_child(inode);
+
+ if (!isdir || write_mask) {
+ err = au_busy_or_stale();
+ h_inode = au_h_iptr(inode, au_ibstart(inode));
+ if (unlikely(!h_inode
+ || (h_inode->i_mode & S_IFMT)
+ != (inode->i_mode & S_IFMT)))
+ goto out;
+
+ err = 0;
+ bindex = au_ibstart(inode);
+ br = au_sbr(sb, bindex);
+ err = h_permission(h_inode, mask, br->br_mnt, br->br_perm);
+ if (write_mask
+ && !err
+ && !special_file(h_inode->i_mode)) {
+ /* test whether the upper writable branch exists */
+ err = -EROFS;
+ for (; bindex >= 0; bindex--)
+ if (!au_br_rdonly(au_sbr(sb, bindex))) {
+ err = 0;
+ break;
+ }
+ }
+ goto out;
+ }
+
+ /* non-write to dir */
+ err = 0;
+ bend = au_ibend(inode);
+ for (bindex = au_ibstart(inode); !err && bindex <= bend; bindex++) {
+ h_inode = au_h_iptr(inode, bindex);
+ if (h_inode) {
+ err = au_busy_or_stale();
+ if (unlikely(!S_ISDIR(h_inode->i_mode)))
+ break;
+
+ br = au_sbr(sb, bindex);
+ err = h_permission(h_inode, mask, br->br_mnt,
+ br->br_perm);
+ }
+ }
+
+ out:
+ ii_read_unlock(inode);
+ si_read_unlock(sb);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct dentry *aufs_lookup(struct inode *dir, struct dentry *dentry,
+ struct nameidata *nd)
+{
+ struct dentry *ret, *parent;
+ struct inode *inode, *h_inode;
+ struct mutex *mtx;
+ struct super_block *sb;
+ int err, npositive;
+ aufs_bindex_t bstart;
+
+ IMustLock(dir);
+
+ sb = dir->i_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ ret = ERR_PTR(-ENAMETOOLONG);
+ if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN))
+ goto out;
+ err = au_di_init(dentry);
+ ret = ERR_PTR(err);
+ if (unlikely(err))
+ goto out;
+
+ parent = dentry->d_parent; /* dir inode is locked */
+ di_read_lock_parent(parent, AuLock_IR);
+ npositive = au_lkup_dentry(dentry, au_dbstart(parent), /*type*/0, nd);
+ di_read_unlock(parent, AuLock_IR);
+ err = npositive;
+ ret = ERR_PTR(err);
+ if (unlikely(err < 0))
+ goto out_unlock;
+
+ inode = NULL;
+ if (npositive) {
+ bstart = au_dbstart(dentry);
+ h_inode = au_h_dptr(dentry, bstart)->d_inode;
+ if (!S_ISDIR(h_inode->i_mode)) {
+ /*
+ * stop 'race'-ing between hardlinks under different
+ * parents.
+ */
+ mtx = &au_sbr(sb, bstart)->br_xino.xi_nondir_mtx;
+ mutex_lock(mtx);
+ inode = au_new_inode(dentry, /*must_new*/0);
+ mutex_unlock(mtx);
+ } else
+ inode = au_new_inode(dentry, /*must_new*/0);
+ ret = (void *)inode;
+ }
+ if (IS_ERR(inode))
+ goto out_unlock;
+
+ ret = d_splice_alias(inode, dentry);
+ if (unlikely(IS_ERR(ret) && inode))
+ ii_write_unlock(inode);
+
+ out_unlock:
+ di_write_unlock(dentry);
+ out:
+ si_read_unlock(sb);
+ return ret;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_wr_dir_cpup(struct dentry *dentry, struct dentry *parent,
+ const unsigned char add_entry, aufs_bindex_t bcpup,
+ aufs_bindex_t bstart)
+{
+ int err;
+ struct dentry *h_parent;
+ struct inode *h_dir;
+
+ if (add_entry) {
+ au_update_dbstart(dentry);
+ IMustLock(parent->d_inode);
+ } else
+ di_write_lock_parent(parent);
+
+ err = 0;
+ if (!au_h_dptr(parent, bcpup)) {
+ if (bstart < bcpup)
+ err = au_cpdown_dirs(dentry, bcpup);
+ else
+ err = au_cpup_dirs(dentry, bcpup);
+ }
+ if (!err && add_entry) {
+ h_parent = au_h_dptr(parent, bcpup);
+ h_dir = h_parent->d_inode;
+ mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_PARENT);
+ err = au_lkup_neg(dentry, bcpup);
+ /* todo: no unlock here */
+ mutex_unlock(&h_dir->i_mutex);
+ if (bstart < bcpup && au_dbstart(dentry) < 0) {
+ au_set_dbstart(dentry, 0);
+ au_update_dbrange(dentry, /*do_put_zero*/0);
+ }
+ }
+
+ if (!add_entry)
+ di_write_unlock(parent);
+ if (!err)
+ err = bcpup; /* success */
+
+ return err;
+}
+
+/*
+ * decide the branch and the parent dir where we will create a new entry.
+ * returns new bindex or an error.
+ * copyup the parent dir if needed.
+ */
+int au_wr_dir(struct dentry *dentry, struct dentry *src_dentry,
+ struct au_wr_dir_args *args)
+{
+ int err;
+ aufs_bindex_t bcpup, bstart, src_bstart;
+ const unsigned char add_entry = !!au_ftest_wrdir(args->flags,
+ ADD_ENTRY);
+ struct super_block *sb;
+ struct dentry *parent;
+ struct au_sbinfo *sbinfo;
+
+ sb = dentry->d_sb;
+ sbinfo = au_sbi(sb);
+ parent = dget_parent(dentry);
+ bstart = au_dbstart(dentry);
+ bcpup = bstart;
+ if (args->force_btgt < 0) {
+ if (src_dentry) {
+ src_bstart = au_dbstart(src_dentry);
+ if (src_bstart < bstart)
+ bcpup = src_bstart;
+ } else if (add_entry) {
+ err = AuWbrCreate(sbinfo, dentry,
+ au_ftest_wrdir(args->flags, ISDIR));
+ bcpup = err;
+ }
+
+ if (bcpup < 0 || au_test_ro(sb, bcpup, dentry->d_inode)) {
+ if (add_entry)
+ err = AuWbrCopyup(sbinfo, dentry);
+ else {
+ if (!IS_ROOT(dentry)) {
+ di_read_lock_parent(parent, !AuLock_IR);
+ err = AuWbrCopyup(sbinfo, dentry);
+ di_read_unlock(parent, !AuLock_IR);
+ } else
+ err = AuWbrCopyup(sbinfo, dentry);
+ }
+ bcpup = err;
+ if (unlikely(err < 0))
+ goto out;
+ }
+ } else {
+ bcpup = args->force_btgt;
+ AuDebugOn(au_test_ro(sb, bcpup, dentry->d_inode));
+ }
+ AuDbg("bstart %d, bcpup %d\n", bstart, bcpup);
+ err = bcpup;
+ if (bcpup == bstart)
+ goto out; /* success */
+ else if (bstart < bcpup)
+ au_update_dbrange(dentry, /*do_put_zero*/1);
+
+ /* copyup the new parent into the branch we process */
+ err = au_wr_dir_cpup(dentry, parent, add_entry, bcpup, bstart);
+
+ out:
+ dput(parent);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct dentry *au_pinned_h_parent(struct au_pin *pin)
+{
+ if (pin && pin->parent)
+ return au_h_dptr(pin->parent, pin->bindex);
+ return NULL;
+}
+
+void au_unpin(struct au_pin *p)
+{
+ if (au_ftest_pin(p->flags, MNT_WRITE))
+ mnt_drop_write(p->h_mnt);
+ if (!p->hdir)
+ return;
+
+ au_hn_imtx_unlock(p->hdir);
+ if (!au_ftest_pin(p->flags, DI_LOCKED))
+ di_read_unlock(p->parent, AuLock_IR);
+ iput(p->hdir->hi_inode);
+ dput(p->parent);
+ p->parent = NULL;
+ p->hdir = NULL;
+ p->h_mnt = NULL;
+}
+
+int au_do_pin(struct au_pin *p)
+{
+ int err;
+ struct super_block *sb;
+ struct dentry *h_dentry, *h_parent;
+ struct au_branch *br;
+ struct inode *h_dir;
+
+ err = 0;
+ sb = p->dentry->d_sb;
+ br = au_sbr(sb, p->bindex);
+ if (IS_ROOT(p->dentry)) {
+ if (au_ftest_pin(p->flags, MNT_WRITE)) {
+ p->h_mnt = br->br_mnt;
+ err = mnt_want_write(p->h_mnt);
+ if (unlikely(err)) {
+ au_fclr_pin(p->flags, MNT_WRITE);
+ goto out_err;
+ }
+ }
+ goto out;
+ }
+
+ h_dentry = NULL;
+ if (p->bindex <= au_dbend(p->dentry))
+ h_dentry = au_h_dptr(p->dentry, p->bindex);
+
+ p->parent = dget_parent(p->dentry);
+ if (!au_ftest_pin(p->flags, DI_LOCKED))
+ di_read_lock(p->parent, AuLock_IR, p->lsc_di);
+
+ h_dir = NULL;
+ h_parent = au_h_dptr(p->parent, p->bindex);
+ p->hdir = au_hi(p->parent->d_inode, p->bindex);
+ if (p->hdir)
+ h_dir = p->hdir->hi_inode;
+
+ /* udba case */
+ if (unlikely(!p->hdir || !h_dir)) {
+ if (!au_ftest_pin(p->flags, DI_LOCKED))
+ di_read_unlock(p->parent, AuLock_IR);
+ dput(p->parent);
+ p->parent = NULL;
+ goto out_err;
+ }
+
+ au_igrab(h_dir);
+ au_hn_imtx_lock_nested(p->hdir, p->lsc_hi);
+
+ if (unlikely(p->hdir->hi_inode != h_parent->d_inode)) {
+ err = -EBUSY;
+ goto out_unpin;
+ }
+ if (h_dentry) {
+ err = au_h_verify(h_dentry, p->udba, h_dir, h_parent, br);
+ if (unlikely(err)) {
+ au_fclr_pin(p->flags, MNT_WRITE);
+ goto out_unpin;
+ }
+ }
+
+ if (au_ftest_pin(p->flags, MNT_WRITE)) {
+ p->h_mnt = br->br_mnt;
+ err = mnt_want_write(p->h_mnt);
+ if (unlikely(err)) {
+ au_fclr_pin(p->flags, MNT_WRITE);
+ goto out_unpin;
+ }
+ }
+ goto out; /* success */
+
+ out_unpin:
+ au_unpin(p);
+ out_err:
+ pr_err("err %d\n", err);
+ err = au_busy_or_stale();
+ out:
+ return err;
+}
+
+void au_pin_init(struct au_pin *p, struct dentry *dentry,
+ aufs_bindex_t bindex, int lsc_di, int lsc_hi,
+ unsigned int udba, unsigned char flags)
+{
+ p->dentry = dentry;
+ p->udba = udba;
+ p->lsc_di = lsc_di;
+ p->lsc_hi = lsc_hi;
+ p->flags = flags;
+ p->bindex = bindex;
+
+ p->parent = NULL;
+ p->hdir = NULL;
+ p->h_mnt = NULL;
+}
+
+int au_pin(struct au_pin *pin, struct dentry *dentry, aufs_bindex_t bindex,
+ unsigned int udba, unsigned char flags)
+{
+ au_pin_init(pin, dentry, bindex, AuLsc_DI_PARENT, AuLsc_I_PARENT2,
+ udba, flags);
+ return au_do_pin(pin);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * ->setattr() and ->getattr() are called in various cases.
+ * chmod, stat: dentry is revalidated.
+ * fchmod, fstat: file and dentry are not revalidated, additionally they may be
+ * unhashed.
+ * for ->setattr(), ia->ia_file is passed from ftruncate only.
+ */
+static int au_reval_for_attr(struct dentry *dentry, unsigned int sigen)
+{
+ int err;
+ struct inode *inode;
+ struct dentry *parent;
+
+ err = 0;
+ inode = dentry->d_inode;
+ if (au_digen(dentry) != sigen || au_iigen(inode) != sigen) {
+ parent = dget_parent(dentry);
+ di_read_lock_parent(parent, AuLock_IR);
+ /* returns a number of positive dentries */
+ err = au_refresh_hdentry(dentry, inode->i_mode & S_IFMT);
+ if (err >= 0)
+ err = au_refresh_hinode(inode, dentry);
+ di_read_unlock(parent, AuLock_IR);
+ dput(parent);
+ }
+
+ AuTraceErr(err);
+ return err;
+}
+
+#define AuIcpup_DID_CPUP 1
+#define au_ftest_icpup(flags, name) ((flags) & AuIcpup_##name)
+#define au_fset_icpup(flags, name) { (flags) |= AuIcpup_##name; }
+#define au_fclr_icpup(flags, name) { (flags) &= ~AuIcpup_##name; }
+
+struct au_icpup_args {
+ unsigned char flags;
+ unsigned char pin_flags;
+ aufs_bindex_t btgt;
+ unsigned int udba;
+ struct au_pin pin;
+ struct path h_path;
+ struct inode *h_inode;
+};
+
+static int au_pin_and_icpup(struct dentry *dentry, struct iattr *ia,
+ struct au_icpup_args *a)
+{
+ int err;
+ loff_t sz;
+ aufs_bindex_t bstart;
+ struct dentry *hi_wh, *parent;
+ struct inode *inode;
+ struct file *h_file;
+ struct au_wr_dir_args wr_dir_args = {
+ .force_btgt = -1,
+ .flags = 0
+ };
+
+ bstart = au_dbstart(dentry);
+ inode = dentry->d_inode;
+ if (S_ISDIR(inode->i_mode))
+ au_fset_wrdir(wr_dir_args.flags, ISDIR);
+ /* plink or hi_wh() case */
+ if (bstart != au_ibstart(inode))
+ wr_dir_args.force_btgt = au_ibstart(inode);
+ err = au_wr_dir(dentry, /*src_dentry*/NULL, &wr_dir_args);
+ if (unlikely(err < 0))
+ goto out;
+ a->btgt = err;
+ if (err != bstart)
+ au_fset_icpup(a->flags, DID_CPUP);
+
+ err = 0;
+ a->pin_flags = AuPin_MNT_WRITE;
+ parent = NULL;
+ if (!IS_ROOT(dentry)) {
+ au_fset_pin(a->pin_flags, DI_LOCKED);
+ parent = dget_parent(dentry);
+ di_write_lock_parent(parent);
+ }
+
+ err = au_pin(&a->pin, dentry, a->btgt, a->udba, a->pin_flags);
+ if (unlikely(err))
+ goto out_parent;
+
+ a->h_path.dentry = au_h_dptr(dentry, bstart);
+ a->h_inode = a->h_path.dentry->d_inode;
+ mutex_lock_nested(&a->h_inode->i_mutex, AuLsc_I_CHILD);
+ sz = -1;
+ if ((ia->ia_valid & ATTR_SIZE) && ia->ia_size < i_size_read(a->h_inode))
+ sz = ia->ia_size;
+
+ h_file = NULL;
+ hi_wh = NULL;
+ if (au_ftest_icpup(a->flags, DID_CPUP) && d_unhashed(dentry)) {
+ hi_wh = au_hi_wh(inode, a->btgt);
+ if (!hi_wh) {
+ err = au_sio_cpup_wh(dentry, a->btgt, sz, /*file*/NULL);
+ if (unlikely(err))
+ goto out_unlock;
+ hi_wh = au_hi_wh(inode, a->btgt);
+ /* todo: revalidate hi_wh? */
+ }
+ }
+
+ if (parent) {
+ au_pin_set_parent_lflag(&a->pin, /*lflag*/0);
+ di_downgrade_lock(parent, AuLock_IR);
+ dput(parent);
+ parent = NULL;
+ }
+ if (!au_ftest_icpup(a->flags, DID_CPUP))
+ goto out; /* success */
+
+ if (!d_unhashed(dentry)) {
+ h_file = au_h_open_pre(dentry, bstart);
+ if (IS_ERR(h_file)) {
+ err = PTR_ERR(h_file);
+ h_file = NULL;
+ } else
+ err = au_sio_cpup_simple(dentry, a->btgt, sz,
+ AuCpup_DTIME);
+ if (!err)
+ a->h_path.dentry = au_h_dptr(dentry, a->btgt);
+ } else if (!hi_wh)
+ a->h_path.dentry = au_h_dptr(dentry, a->btgt);
+ else
+ a->h_path.dentry = hi_wh; /* do not dget here */
+
+ out_unlock:
+ mutex_unlock(&a->h_inode->i_mutex);
+ au_h_open_post(dentry, bstart, h_file);
+ a->h_inode = a->h_path.dentry->d_inode;
+ if (!err) {
+ mutex_lock_nested(&a->h_inode->i_mutex, AuLsc_I_CHILD);
+ goto out; /* success */
+ }
+
+ au_unpin(&a->pin);
+ out_parent:
+ if (parent) {
+ di_write_unlock(parent);
+ dput(parent);
+ }
+ out:
+ return err;
+}
+
+static int aufs_setattr(struct dentry *dentry, struct iattr *ia)
+{
+ int err;
+ struct inode *inode;
+ struct super_block *sb;
+ struct file *file;
+ struct au_icpup_args *a;
+
+ inode = dentry->d_inode;
+ IMustLock(inode);
+
+ err = -ENOMEM;
+ a = kzalloc(sizeof(*a), GFP_NOFS);
+ if (unlikely(!a))
+ goto out;
+
+ if (ia->ia_valid & (ATTR_KILL_SUID | ATTR_KILL_SGID))
+ ia->ia_valid &= ~ATTR_MODE;
+
+ file = NULL;
+ sb = dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ if (ia->ia_valid & ATTR_FILE) {
+ /* currently ftruncate(2) only */
+ AuDebugOn(!S_ISREG(inode->i_mode));
+ file = ia->ia_file;
+ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1);
+ if (unlikely(err))
+ goto out_si;
+ ia->ia_file = au_hf_top(file);
+ a->udba = AuOpt_UDBA_NONE;
+ } else {
+ /* fchmod() doesn't pass ia_file */
+ a->udba = au_opt_udba(sb);
+ if (d_unhashed(dentry))
+ a->udba = AuOpt_UDBA_NONE;
+ di_write_lock_child(dentry);
+ if (a->udba != AuOpt_UDBA_NONE) {
+ AuDebugOn(IS_ROOT(dentry));
+ err = au_reval_for_attr(dentry, au_sigen(sb));
+ if (unlikely(err))
+ goto out_dentry;
+ }
+ }
+
+ err = au_pin_and_icpup(dentry, ia, a);
+ if (unlikely(err < 0))
+ goto out_dentry;
+ if (au_ftest_icpup(a->flags, DID_CPUP)) {
+ ia->ia_file = NULL;
+ ia->ia_valid &= ~ATTR_FILE;
+ }
+
+ a->h_path.mnt = au_sbr_mnt(sb, a->btgt);
+ if ((ia->ia_valid & (ATTR_MODE | ATTR_CTIME))
+ == (ATTR_MODE | ATTR_CTIME)) {
+ err = security_path_chmod(a->h_path.dentry, a->h_path.mnt,
+ ia->ia_mode);
+ if (unlikely(err))
+ goto out_unlock;
+ } else if ((ia->ia_valid & (ATTR_UID | ATTR_GID))
+ && (ia->ia_valid & ATTR_CTIME)) {
+ err = security_path_chown(&a->h_path, ia->ia_uid, ia->ia_gid);
+ if (unlikely(err))
+ goto out_unlock;
+ }
+
+ if (ia->ia_valid & ATTR_SIZE) {
+ struct file *f;
+
+ if (ia->ia_size < i_size_read(inode)) {
+ /* unmap only */
+ err = vmtruncate(inode, ia->ia_size);
+ if (unlikely(err))
+ goto out_unlock;
+ }
+
+ f = NULL;
+ if (ia->ia_valid & ATTR_FILE)
+ f = ia->ia_file;
+ mutex_unlock(&a->h_inode->i_mutex);
+ err = vfsub_trunc(&a->h_path, ia->ia_size, ia->ia_valid, f);
+ mutex_lock_nested(&a->h_inode->i_mutex, AuLsc_I_CHILD);
+ } else
+ err = vfsub_notify_change(&a->h_path, ia);
+ if (!err)
+ au_cpup_attr_changeable(inode);
+
+ out_unlock:
+ mutex_unlock(&a->h_inode->i_mutex);
+ au_unpin(&a->pin);
+ out_dentry:
+ di_write_unlock(dentry);
+ if (file) {
+ fi_write_unlock(file);
+ ia->ia_file = file;
+ ia->ia_valid |= ATTR_FILE;
+ }
+ out_si:
+ si_read_unlock(sb);
+ kfree(a);
+ out:
+ AuTraceErr(err);
+ return err;
+}
+
+static void au_refresh_iattr(struct inode *inode, struct kstat *st,
+ unsigned int nlink)
+{
+ inode->i_mode = st->mode;
+ inode->i_uid = st->uid;
+ inode->i_gid = st->gid;
+ inode->i_atime = st->atime;
+ inode->i_mtime = st->mtime;
+ inode->i_ctime = st->ctime;
+
+ au_cpup_attr_nlink(inode, /*force*/0);
+ if (S_ISDIR(inode->i_mode)) {
+ inode->i_nlink -= nlink;
+ inode->i_nlink += st->nlink;
+ }
+
+ spin_lock(&inode->i_lock);
+ inode->i_blocks = st->blocks;
+ i_size_write(inode, st->size);
+ spin_unlock(&inode->i_lock);
+}
+
+static int aufs_getattr(struct vfsmount *mnt __maybe_unused,
+ struct dentry *dentry, struct kstat *st)
+{
+ int err;
+ unsigned int mnt_flags;
+ aufs_bindex_t bindex;
+ unsigned char udba_none, positive;
+ struct super_block *sb, *h_sb;
+ struct inode *inode;
+ struct vfsmount *h_mnt;
+ struct dentry *h_dentry;
+
+ err = 0;
+ sb = dentry->d_sb;
+ inode = dentry->d_inode;
+ si_read_lock(sb, AuLock_FLUSH);
+ mnt_flags = au_mntflags(sb);
+ udba_none = !!au_opt_test(mnt_flags, UDBA_NONE);
+
+ /* support fstat(2) */
+ if (!d_unhashed(dentry) && !udba_none) {
+ unsigned int sigen = au_sigen(sb);
+ if (au_digen(dentry) == sigen && au_iigen(inode) == sigen)
+ di_read_lock_child(dentry, AuLock_IR);
+ else {
+ AuDebugOn(IS_ROOT(dentry));
+ di_write_lock_child(dentry);
+ err = au_reval_for_attr(dentry, sigen);
+ di_downgrade_lock(dentry, AuLock_IR);
+ if (unlikely(err))
+ goto out;
+ }
+ } else
+ di_read_lock_child(dentry, AuLock_IR);
+
+ bindex = au_ibstart(inode);
+ h_mnt = au_sbr_mnt(sb, bindex);
+ h_sb = h_mnt->mnt_sb;
+ if (!au_test_fs_bad_iattr(h_sb) && udba_none)
+ goto out_fill; /* success */
+
+ h_dentry = NULL;
+ if (au_dbstart(dentry) == bindex)
+ h_dentry = dget(au_h_dptr(dentry, bindex));
+ else if (au_opt_test(mnt_flags, PLINK) && au_plink_test(inode)) {
+ h_dentry = au_plink_lkup(inode, bindex);
+ if (IS_ERR(h_dentry))
+ goto out_fill; /* pretending success */
+ }
+ /* illegally overlapped or something */
+ if (unlikely(!h_dentry))
+ goto out_fill; /* pretending success */
+
+ positive = !!h_dentry->d_inode;
+ if (positive)
+ err = vfs_getattr(h_mnt, h_dentry, st);
+ dput(h_dentry);
+ if (!err) {
+ if (positive)
+ au_refresh_iattr(inode, st, h_dentry->d_inode->i_nlink);
+ goto out_fill; /* success */
+ }
+ goto out;
+
+ out_fill:
+ generic_fillattr(inode, st);
+ out:
+ di_read_unlock(dentry, AuLock_IR);
+ si_read_unlock(sb);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int h_readlink(struct dentry *dentry, int bindex, char __user *buf,
+ int bufsiz)
+{
+ int err;
+ struct super_block *sb;
+ struct dentry *h_dentry;
+
+ err = -EINVAL;
+ h_dentry = au_h_dptr(dentry, bindex);
+ if (unlikely(!h_dentry->d_inode->i_op->readlink))
+ goto out;
+
+ err = security_inode_readlink(h_dentry);
+ if (unlikely(err))
+ goto out;
+
+ sb = dentry->d_sb;
+ if (!au_test_ro(sb, bindex, dentry->d_inode)) {
+ vfsub_touch_atime(au_sbr_mnt(sb, bindex), h_dentry);
+ fsstack_copy_attr_atime(dentry->d_inode, h_dentry->d_inode);
+ }
+ err = h_dentry->d_inode->i_op->readlink(h_dentry, buf, bufsiz);
+
+ out:
+ return err;
+}
+
+static int aufs_readlink(struct dentry *dentry, char __user *buf, int bufsiz)
+{
+ int err;
+
+ aufs_read_lock(dentry, AuLock_IR);
+ err = h_readlink(dentry, au_dbstart(dentry), buf, bufsiz);
+ aufs_read_unlock(dentry, AuLock_IR);
+
+ return err;
+}
+
+static void *aufs_follow_link(struct dentry *dentry, struct nameidata *nd)
+{
+ int err;
+ char *buf;
+ mm_segment_t old_fs;
+
+ err = -ENOMEM;
+ buf = __getname_gfp(GFP_NOFS);
+ if (unlikely(!buf))
+ goto out;
+
+ aufs_read_lock(dentry, AuLock_IR);
+ old_fs = get_fs();
+ set_fs(KERNEL_DS);
+ err = h_readlink(dentry, au_dbstart(dentry), (char __user *)buf,
+ PATH_MAX);
+ set_fs(old_fs);
+ aufs_read_unlock(dentry, AuLock_IR);
+
+ if (err >= 0) {
+ buf[err] = 0;
+ /* will be freed by put_link */
+ nd_set_link(nd, buf);
+ return NULL; /* success */
+ }
+ __putname(buf);
+
+ out:
+ path_put(&nd->path);
+ AuTraceErr(err);
+ return ERR_PTR(err);
+}
+
+static void aufs_put_link(struct dentry *dentry __maybe_unused,
+ struct nameidata *nd, void *cookie __maybe_unused)
+{
+ __putname(nd_get_link(nd));
+}
+
+/* ---------------------------------------------------------------------- */
+
+static void aufs_truncate_range(struct inode *inode __maybe_unused,
+ loff_t start __maybe_unused,
+ loff_t end __maybe_unused)
+{
+ AuUnsupport();
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct inode_operations aufs_symlink_iop = {
+ .permission = aufs_permission,
+ .setattr = aufs_setattr,
+ .getattr = aufs_getattr,
+ .readlink = aufs_readlink,
+ .follow_link = aufs_follow_link,
+ .put_link = aufs_put_link
+};
+
+struct inode_operations aufs_dir_iop = {
+ .create = aufs_create,
+ .lookup = aufs_lookup,
+ .link = aufs_link,
+ .unlink = aufs_unlink,
+ .symlink = aufs_symlink,
+ .mkdir = aufs_mkdir,
+ .rmdir = aufs_rmdir,
+ .mknod = aufs_mknod,
+ .rename = aufs_rename,
+
+ .permission = aufs_permission,
+ .setattr = aufs_setattr,
+ .getattr = aufs_getattr
+};
+
+struct inode_operations aufs_iop = {
+ .permission = aufs_permission,
+ .setattr = aufs_setattr,
+ .getattr = aufs_getattr,
+ .truncate_range = aufs_truncate_range
+};
diff --git a/ubuntu/aufs/i_op_add.c b/ubuntu/aufs/i_op_add.c
new file mode 100644
index 00000000000..015492f51f0
--- /dev/null
+++ b/ubuntu/aufs/i_op_add.c
@@ -0,0 +1,672 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * inode operations (add entry)
+ */
+
+#include "aufs.h"
+
+/*
+ * final procedure of adding a new entry, except link(2).
+ * remove whiteout, instantiate, copyup the parent dir's times and size
+ * and update version.
+ * if it failed, re-create the removed whiteout.
+ */
+static int epilog(struct inode *dir, aufs_bindex_t bindex,
+ struct dentry *wh_dentry, struct dentry *dentry)
+{
+ int err, rerr;
+ aufs_bindex_t bwh;
+ struct path h_path;
+ struct inode *inode, *h_dir;
+ struct dentry *wh;
+
+ bwh = -1;
+ if (wh_dentry) {
+ h_dir = wh_dentry->d_parent->d_inode; /* dir inode is locked */
+ IMustLock(h_dir);
+ AuDebugOn(au_h_iptr(dir, bindex) != h_dir);
+ bwh = au_dbwh(dentry);
+ h_path.dentry = wh_dentry;
+ h_path.mnt = au_sbr_mnt(dir->i_sb, bindex);
+ err = au_wh_unlink_dentry(au_h_iptr(dir, bindex), &h_path,
+ dentry);
+ if (unlikely(err))
+ goto out;
+ }
+
+ inode = au_new_inode(dentry, /*must_new*/1);
+ if (!IS_ERR(inode)) {
+ d_instantiate(dentry, inode);
+ dir = dentry->d_parent->d_inode; /* dir inode is locked */
+ IMustLock(dir);
+ if (au_ibstart(dir) == au_dbstart(dentry))
+ au_cpup_attr_timesizes(dir);
+ dir->i_version++;
+ return 0; /* success */
+ }
+
+ err = PTR_ERR(inode);
+ if (!wh_dentry)
+ goto out;
+
+ /* revert */
+ /* dir inode is locked */
+ wh = au_wh_create(dentry, bwh, wh_dentry->d_parent);
+ rerr = PTR_ERR(wh);
+ if (IS_ERR(wh)) {
+ AuIOErr("%.*s reverting whiteout failed(%d, %d)\n",
+ AuDLNPair(dentry), err, rerr);
+ err = -EIO;
+ } else
+ dput(wh);
+
+ out:
+ return err;
+}
+
+/*
+ * simple tests for the adding inode operations.
+ * following the checks in vfs, plus the parent-child relationship.
+ */
+int au_may_add(struct dentry *dentry, aufs_bindex_t bindex,
+ struct dentry *h_parent, int isdir)
+{
+ int err;
+ umode_t h_mode;
+ struct dentry *h_dentry;
+ struct inode *h_inode;
+
+ err = -ENAMETOOLONG;
+ if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN))
+ goto out;
+
+ h_dentry = au_h_dptr(dentry, bindex);
+ h_inode = h_dentry->d_inode;
+ if (!dentry->d_inode) {
+ err = -EEXIST;
+ if (unlikely(h_inode))
+ goto out;
+ } else {
+ /* rename(2) case */
+ err = -EIO;
+ if (unlikely(!h_inode || !h_inode->i_nlink))
+ goto out;
+
+ h_mode = h_inode->i_mode;
+ if (!isdir) {
+ err = -EISDIR;
+ if (unlikely(S_ISDIR(h_mode)))
+ goto out;
+ } else if (unlikely(!S_ISDIR(h_mode))) {
+ err = -ENOTDIR;
+ goto out;
+ }
+ }
+
+ err = 0;
+ /* expected parent dir is locked */
+ if (unlikely(h_parent != h_dentry->d_parent))
+ err = -EIO;
+
+ out:
+ AuTraceErr(err);
+ return err;
+}
+
+/*
+ * initial procedure of adding a new entry.
+ * prepare writable branch and the parent dir, lock it,
+ * and lookup whiteout for the new entry.
+ */
+static struct dentry*
+lock_hdir_lkup_wh(struct dentry *dentry, struct au_dtime *dt,
+ struct dentry *src_dentry, struct au_pin *pin,
+ struct au_wr_dir_args *wr_dir_args)
+{
+ struct dentry *wh_dentry, *h_parent;
+ struct super_block *sb;
+ struct au_branch *br;
+ int err;
+ unsigned int udba;
+ aufs_bindex_t bcpup;
+
+ AuDbg("%.*s\n", AuDLNPair(dentry));
+
+ err = au_wr_dir(dentry, src_dentry, wr_dir_args);
+ bcpup = err;
+ wh_dentry = ERR_PTR(err);
+ if (unlikely(err < 0))
+ goto out;
+
+ sb = dentry->d_sb;
+ udba = au_opt_udba(sb);
+ err = au_pin(pin, dentry, bcpup, udba,
+ AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+ wh_dentry = ERR_PTR(err);
+ if (unlikely(err))
+ goto out;
+
+ h_parent = au_pinned_h_parent(pin);
+ if (udba != AuOpt_UDBA_NONE
+ && au_dbstart(dentry) == bcpup)
+ err = au_may_add(dentry, bcpup, h_parent,
+ au_ftest_wrdir(wr_dir_args->flags, ISDIR));
+ else if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN))
+ err = -ENAMETOOLONG;
+ wh_dentry = ERR_PTR(err);
+ if (unlikely(err))
+ goto out_unpin;
+
+ br = au_sbr(sb, bcpup);
+ if (dt) {
+ struct path tmp = {
+ .dentry = h_parent,
+ .mnt = br->br_mnt
+ };
+ au_dtime_store(dt, au_pinned_parent(pin), &tmp);
+ }
+
+ wh_dentry = NULL;
+ if (bcpup != au_dbwh(dentry))
+ goto out; /* success */
+
+ wh_dentry = au_wh_lkup(h_parent, &dentry->d_name, br);
+
+ out_unpin:
+ if (IS_ERR(wh_dentry))
+ au_unpin(pin);
+ out:
+ return wh_dentry;
+}
+
+/* ---------------------------------------------------------------------- */
+
+enum { Mknod, Symlink, Creat };
+struct simple_arg {
+ int type;
+ union {
+ struct {
+ int mode;
+ struct nameidata *nd;
+ } c;
+ struct {
+ const char *symname;
+ } s;
+ struct {
+ int mode;
+ dev_t dev;
+ } m;
+ } u;
+};
+
+static int add_simple(struct inode *dir, struct dentry *dentry,
+ struct simple_arg *arg)
+{
+ int err;
+ aufs_bindex_t bstart;
+ unsigned char created;
+ struct au_dtime dt;
+ struct au_pin pin;
+ struct path h_path;
+ struct dentry *wh_dentry, *parent;
+ struct inode *h_dir;
+ struct au_wr_dir_args wr_dir_args = {
+ .force_btgt = -1,
+ .flags = AuWrDir_ADD_ENTRY
+ };
+
+ AuDbg("%.*s\n", AuDLNPair(dentry));
+ IMustLock(dir);
+
+ parent = dentry->d_parent; /* dir inode is locked */
+ aufs_read_lock(dentry, AuLock_DW);
+ di_write_lock_parent(parent);
+ wh_dentry = lock_hdir_lkup_wh(dentry, &dt, /*src_dentry*/NULL, &pin,
+ &wr_dir_args);
+ err = PTR_ERR(wh_dentry);
+ if (IS_ERR(wh_dentry))
+ goto out;
+
+ bstart = au_dbstart(dentry);
+ h_path.dentry = au_h_dptr(dentry, bstart);
+ h_path.mnt = au_sbr_mnt(dentry->d_sb, bstart);
+ h_dir = au_pinned_h_dir(&pin);
+ switch (arg->type) {
+ case Creat:
+ err = vfsub_create(h_dir, &h_path, arg->u.c.mode);
+ break;
+ case Symlink:
+ err = vfsub_symlink(h_dir, &h_path, arg->u.s.symname);
+ break;
+ case Mknod:
+ err = vfsub_mknod(h_dir, &h_path, arg->u.m.mode, arg->u.m.dev);
+ break;
+ default:
+ BUG();
+ }
+ created = !err;
+ if (!err)
+ err = epilog(dir, bstart, wh_dentry, dentry);
+
+ /* revert */
+ if (unlikely(created && err && h_path.dentry->d_inode)) {
+ int rerr;
+ rerr = vfsub_unlink(h_dir, &h_path, /*force*/0);
+ if (rerr) {
+ AuIOErr("%.*s revert failure(%d, %d)\n",
+ AuDLNPair(dentry), err, rerr);
+ err = -EIO;
+ }
+ au_dtime_revert(&dt);
+ d_drop(dentry);
+ }
+
+ au_unpin(&pin);
+ dput(wh_dentry);
+
+ out:
+ if (unlikely(err)) {
+ au_update_dbstart(dentry);
+ d_drop(dentry);
+ }
+ di_write_unlock(parent);
+ aufs_read_unlock(dentry, AuLock_DW);
+ return err;
+}
+
+int aufs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev)
+{
+ struct simple_arg arg = {
+ .type = Mknod,
+ .u.m = {
+ .mode = mode,
+ .dev = dev
+ }
+ };
+ return add_simple(dir, dentry, &arg);
+}
+
+int aufs_symlink(struct inode *dir, struct dentry *dentry, const char *symname)
+{
+ struct simple_arg arg = {
+ .type = Symlink,
+ .u.s.symname = symname
+ };
+ return add_simple(dir, dentry, &arg);
+}
+
+int aufs_create(struct inode *dir, struct dentry *dentry, int mode,
+ struct nameidata *nd)
+{
+ struct simple_arg arg = {
+ .type = Creat,
+ .u.c = {
+ .mode = mode,
+ .nd = nd
+ }
+ };
+ return add_simple(dir, dentry, &arg);
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct au_link_args {
+ aufs_bindex_t bdst, bsrc;
+ struct au_pin pin;
+ struct path h_path;
+ struct dentry *src_parent, *parent;
+};
+
+static int au_cpup_before_link(struct dentry *src_dentry,
+ struct au_link_args *a)
+{
+ int err;
+ struct dentry *h_src_dentry;
+ struct mutex *h_mtx;
+ struct file *h_file;
+
+ di_read_lock_parent(a->src_parent, AuLock_IR);
+ err = au_test_and_cpup_dirs(src_dentry, a->bdst);
+ if (unlikely(err))
+ goto out;
+
+ h_src_dentry = au_h_dptr(src_dentry, a->bsrc);
+ h_mtx = &h_src_dentry->d_inode->i_mutex;
+ err = au_pin(&a->pin, src_dentry, a->bdst,
+ au_opt_udba(src_dentry->d_sb),
+ AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+ if (unlikely(err))
+ goto out;
+ mutex_lock_nested(h_mtx, AuLsc_I_CHILD);
+ h_file = au_h_open_pre(src_dentry, a->bsrc);
+ if (IS_ERR(h_file)) {
+ err = PTR_ERR(h_file);
+ h_file = NULL;
+ } else
+ err = au_sio_cpup_simple(src_dentry, a->bdst, a->bsrc,
+ AuCpup_DTIME /* | AuCpup_KEEPLINO */);
+ mutex_unlock(h_mtx);
+ au_h_open_post(src_dentry, a->bsrc, h_file);
+ au_unpin(&a->pin);
+
+ out:
+ di_read_unlock(a->src_parent, AuLock_IR);
+ return err;
+}
+
+static int au_cpup_or_link(struct dentry *src_dentry, struct au_link_args *a)
+{
+ int err;
+ unsigned char plink;
+ struct inode *h_inode, *inode;
+ struct dentry *h_src_dentry;
+ struct super_block *sb;
+ struct file *h_file;
+
+ plink = 0;
+ h_inode = NULL;
+ sb = src_dentry->d_sb;
+ inode = src_dentry->d_inode;
+ if (au_ibstart(inode) <= a->bdst)
+ h_inode = au_h_iptr(inode, a->bdst);
+ if (!h_inode || !h_inode->i_nlink) {
+ /* copyup src_dentry as the name of dentry. */
+ au_set_dbstart(src_dentry, a->bdst);
+ au_set_h_dptr(src_dentry, a->bdst, dget(a->h_path.dentry));
+ h_inode = au_h_dptr(src_dentry, a->bsrc)->d_inode;
+ mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD);
+ h_file = au_h_open_pre(src_dentry, a->bsrc);
+ if (IS_ERR(h_file)) {
+ err = PTR_ERR(h_file);
+ h_file = NULL;
+ } else
+ err = au_sio_cpup_single(src_dentry, a->bdst, a->bsrc,
+ -1, AuCpup_KEEPLINO,
+ a->parent);
+ mutex_unlock(&h_inode->i_mutex);
+ au_h_open_post(src_dentry, a->bsrc, h_file);
+ au_set_h_dptr(src_dentry, a->bdst, NULL);
+ au_set_dbstart(src_dentry, a->bsrc);
+ } else {
+ /* the inode of src_dentry already exists on a.bdst branch */
+ h_src_dentry = d_find_alias(h_inode);
+ if (!h_src_dentry && au_plink_test(inode)) {
+ plink = 1;
+ h_src_dentry = au_plink_lkup(inode, a->bdst);
+ err = PTR_ERR(h_src_dentry);
+ if (IS_ERR(h_src_dentry))
+ goto out;
+
+ if (unlikely(!h_src_dentry->d_inode)) {
+ dput(h_src_dentry);
+ h_src_dentry = NULL;
+ }
+
+ }
+ if (h_src_dentry) {
+ err = vfsub_link(h_src_dentry, au_pinned_h_dir(&a->pin),
+ &a->h_path);
+ dput(h_src_dentry);
+ } else {
+ AuIOErr("no dentry found for hi%lu on b%d\n",
+ h_inode->i_ino, a->bdst);
+ err = -EIO;
+ }
+ }
+
+ if (!err && !plink)
+ au_plink_append(inode, a->bdst, a->h_path.dentry);
+
+out:
+ return err;
+}
+
+int aufs_link(struct dentry *src_dentry, struct inode *dir,
+ struct dentry *dentry)
+{
+ int err, rerr;
+ struct au_dtime dt;
+ struct au_link_args *a;
+ struct dentry *wh_dentry, *h_src_dentry;
+ struct inode *inode;
+ struct super_block *sb;
+ struct au_wr_dir_args wr_dir_args = {
+ /* .force_btgt = -1, */
+ .flags = AuWrDir_ADD_ENTRY
+ };
+
+ IMustLock(dir);
+ inode = src_dentry->d_inode;
+ IMustLock(inode);
+
+ err = -ENOENT;
+ if (unlikely(!inode->i_nlink))
+ goto out;
+
+ err = -ENOMEM;
+ a = kzalloc(sizeof(*a), GFP_NOFS);
+ if (unlikely(!a))
+ goto out;
+
+ a->parent = dentry->d_parent; /* dir inode is locked */
+ aufs_read_and_write_lock2(dentry, src_dentry, /*AuLock_FLUSH*/0);
+ a->src_parent = dget_parent(src_dentry);
+ wr_dir_args.force_btgt = au_dbstart(src_dentry);
+
+ di_write_lock_parent(a->parent);
+ wr_dir_args.force_btgt = au_wbr(dentry, wr_dir_args.force_btgt);
+ wh_dentry = lock_hdir_lkup_wh(dentry, &dt, src_dentry, &a->pin,
+ &wr_dir_args);
+ err = PTR_ERR(wh_dentry);
+ if (IS_ERR(wh_dentry))
+ goto out_unlock;
+
+ err = 0;
+ sb = dentry->d_sb;
+ a->bdst = au_dbstart(dentry);
+ a->h_path.dentry = au_h_dptr(dentry, a->bdst);
+ a->h_path.mnt = au_sbr_mnt(sb, a->bdst);
+ a->bsrc = au_dbstart(src_dentry);
+ if (au_opt_test(au_mntflags(sb), PLINK)) {
+ if (a->bdst < a->bsrc
+ /* && h_src_dentry->d_sb != a->h_path.dentry->d_sb */)
+ err = au_cpup_or_link(src_dentry, a);
+ else {
+ h_src_dentry = au_h_dptr(src_dentry, a->bdst);
+ err = vfsub_link(h_src_dentry, au_pinned_h_dir(&a->pin),
+ &a->h_path);
+ }
+ } else {
+ /*
+ * copyup src_dentry to the branch we process,
+ * and then link(2) to it.
+ */
+ if (a->bdst < a->bsrc
+ /* && h_src_dentry->d_sb != a->h_path.dentry->d_sb */) {
+ au_unpin(&a->pin);
+ di_write_unlock(a->parent);
+ err = au_cpup_before_link(src_dentry, a);
+ di_write_lock_parent(a->parent);
+ if (!err)
+ err = au_pin(&a->pin, dentry, a->bdst,
+ au_opt_udba(sb),
+ AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+ if (unlikely(err))
+ goto out_wh;
+ }
+ if (!err) {
+ h_src_dentry = au_h_dptr(src_dentry, a->bdst);
+ err = -ENOENT;
+ if (h_src_dentry && h_src_dentry->d_inode)
+ err = vfsub_link(h_src_dentry,
+ au_pinned_h_dir(&a->pin),
+ &a->h_path);
+ }
+ }
+ if (unlikely(err))
+ goto out_unpin;
+
+ if (wh_dentry) {
+ a->h_path.dentry = wh_dentry;
+ err = au_wh_unlink_dentry(au_pinned_h_dir(&a->pin), &a->h_path,
+ dentry);
+ if (unlikely(err))
+ goto out_revert;
+ }
+
+ dir->i_version++;
+ if (au_ibstart(dir) == au_dbstart(dentry))
+ au_cpup_attr_timesizes(dir);
+ inc_nlink(inode);
+ inode->i_ctime = dir->i_ctime;
+ if (!d_unhashed(a->h_path.dentry))
+ d_instantiate(dentry, au_igrab(inode));
+ else
+ /* some filesystem calls d_drop() */
+ d_drop(dentry);
+ goto out_unpin; /* success */
+
+ out_revert:
+ rerr = vfsub_unlink(au_pinned_h_dir(&a->pin), &a->h_path, /*force*/0);
+ if (!rerr)
+ goto out_dt;
+ AuIOErr("%.*s reverting failed(%d, %d)\n",
+ AuDLNPair(dentry), err, rerr);
+ err = -EIO;
+ out_dt:
+ d_drop(dentry);
+ au_dtime_revert(&dt);
+ out_unpin:
+ au_unpin(&a->pin);
+ out_wh:
+ dput(wh_dentry);
+ out_unlock:
+ if (unlikely(err)) {
+ au_update_dbstart(dentry);
+ d_drop(dentry);
+ }
+ di_write_unlock(a->parent);
+ dput(a->src_parent);
+ aufs_read_and_write_unlock2(dentry, src_dentry);
+ kfree(a);
+ out:
+ return err;
+}
+
+int aufs_mkdir(struct inode *dir, struct dentry *dentry, int mode)
+{
+ int err, rerr;
+ aufs_bindex_t bindex;
+ unsigned char diropq;
+ struct path h_path;
+ struct dentry *wh_dentry, *parent, *opq_dentry;
+ struct mutex *h_mtx;
+ struct super_block *sb;
+ struct {
+ struct au_pin pin;
+ struct au_dtime dt;
+ } *a; /* reduce the stack usage */
+ struct au_wr_dir_args wr_dir_args = {
+ .force_btgt = -1,
+ .flags = AuWrDir_ADD_ENTRY | AuWrDir_ISDIR
+ };
+
+ IMustLock(dir);
+
+ err = -ENOMEM;
+ a = kmalloc(sizeof(*a), GFP_NOFS);
+ if (unlikely(!a))
+ goto out;
+
+ aufs_read_lock(dentry, AuLock_DW);
+ parent = dentry->d_parent; /* dir inode is locked */
+ di_write_lock_parent(parent);
+ wh_dentry = lock_hdir_lkup_wh(dentry, &a->dt, /*src_dentry*/NULL,
+ &a->pin, &wr_dir_args);
+ err = PTR_ERR(wh_dentry);
+ if (IS_ERR(wh_dentry))
+ goto out_free;
+
+ sb = dentry->d_sb;
+ bindex = au_dbstart(dentry);
+ h_path.dentry = au_h_dptr(dentry, bindex);
+ h_path.mnt = au_sbr_mnt(sb, bindex);
+ err = vfsub_mkdir(au_pinned_h_dir(&a->pin), &h_path, mode);
+ if (unlikely(err))
+ goto out_unlock;
+
+ /* make the dir opaque */
+ diropq = 0;
+ h_mtx = &h_path.dentry->d_inode->i_mutex;
+ if (wh_dentry
+ || au_opt_test(au_mntflags(sb), ALWAYS_DIROPQ)) {
+ mutex_lock_nested(h_mtx, AuLsc_I_CHILD);
+ opq_dentry = au_diropq_create(dentry, bindex);
+ mutex_unlock(h_mtx);
+ err = PTR_ERR(opq_dentry);
+ if (IS_ERR(opq_dentry))
+ goto out_dir;
+ dput(opq_dentry);
+ diropq = 1;
+ }
+
+ err = epilog(dir, bindex, wh_dentry, dentry);
+ if (!err) {
+ inc_nlink(dir);
+ goto out_unlock; /* success */
+ }
+
+ /* revert */
+ if (diropq) {
+ AuLabel(revert opq);
+ mutex_lock_nested(h_mtx, AuLsc_I_CHILD);
+ rerr = au_diropq_remove(dentry, bindex);
+ mutex_unlock(h_mtx);
+ if (rerr) {
+ AuIOErr("%.*s reverting diropq failed(%d, %d)\n",
+ AuDLNPair(dentry), err, rerr);
+ err = -EIO;
+ }
+ }
+
+ out_dir:
+ AuLabel(revert dir);
+ rerr = vfsub_rmdir(au_pinned_h_dir(&a->pin), &h_path);
+ if (rerr) {
+ AuIOErr("%.*s reverting dir failed(%d, %d)\n",
+ AuDLNPair(dentry), err, rerr);
+ err = -EIO;
+ }
+ d_drop(dentry);
+ au_dtime_revert(&a->dt);
+ out_unlock:
+ au_unpin(&a->pin);
+ dput(wh_dentry);
+ out_free:
+ if (unlikely(err)) {
+ au_update_dbstart(dentry);
+ d_drop(dentry);
+ }
+ di_write_unlock(parent);
+ aufs_read_unlock(dentry, AuLock_DW);
+ kfree(a);
+ out:
+ return err;
+}
diff --git a/ubuntu/aufs/i_op_del.c b/ubuntu/aufs/i_op_del.c
new file mode 100644
index 00000000000..a9973a87ff2
--- /dev/null
+++ b/ubuntu/aufs/i_op_del.c
@@ -0,0 +1,472 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * inode operations (del entry)
+ */
+
+#include "aufs.h"
+
+/*
+ * decide if a new whiteout for @dentry is necessary or not.
+ * when it is necessary, prepare the parent dir for the upper branch whose
+ * branch index is @bcpup for creation. the actual creation of the whiteout will
+ * be done by caller.
+ * return value:
+ * 0: wh is unnecessary
+ * plus: wh is necessary
+ * minus: error
+ */
+int au_wr_dir_need_wh(struct dentry *dentry, int isdir, aufs_bindex_t *bcpup)
+{
+ int need_wh, err;
+ aufs_bindex_t bstart;
+ struct super_block *sb;
+
+ sb = dentry->d_sb;
+ bstart = au_dbstart(dentry);
+ if (*bcpup < 0) {
+ *bcpup = bstart;
+ if (au_test_ro(sb, bstart, dentry->d_inode)) {
+ err = AuWbrCopyup(au_sbi(sb), dentry);
+ *bcpup = err;
+ if (unlikely(err < 0))
+ goto out;
+ }
+ } else
+ AuDebugOn(bstart < *bcpup
+ || au_test_ro(sb, *bcpup, dentry->d_inode));
+ AuDbg("bcpup %d, bstart %d\n", *bcpup, bstart);
+
+ if (*bcpup != bstart) {
+ err = au_cpup_dirs(dentry, *bcpup);
+ if (unlikely(err))
+ goto out;
+ need_wh = 1;
+ } else {
+ aufs_bindex_t old_bend, new_bend, bdiropq = -1;
+
+ old_bend = au_dbend(dentry);
+ if (isdir) {
+ bdiropq = au_dbdiropq(dentry);
+ au_set_dbdiropq(dentry, -1);
+ }
+ need_wh = au_lkup_dentry(dentry, bstart + 1, /*type*/0,
+ /*nd*/NULL);
+ err = need_wh;
+ if (isdir)
+ au_set_dbdiropq(dentry, bdiropq);
+ if (unlikely(err < 0))
+ goto out;
+ new_bend = au_dbend(dentry);
+ if (!need_wh && old_bend != new_bend) {
+ au_set_h_dptr(dentry, new_bend, NULL);
+ au_set_dbend(dentry, old_bend);
+ }
+ }
+ AuDbg("need_wh %d\n", need_wh);
+ err = need_wh;
+
+ out:
+ return err;
+}
+
+/*
+ * simple tests for the del-entry operations.
+ * following the checks in vfs, plus the parent-child relationship.
+ */
+int au_may_del(struct dentry *dentry, aufs_bindex_t bindex,
+ struct dentry *h_parent, int isdir)
+{
+ int err;
+ umode_t h_mode;
+ struct dentry *h_dentry, *h_latest;
+ struct inode *h_inode;
+
+ h_dentry = au_h_dptr(dentry, bindex);
+ h_inode = h_dentry->d_inode;
+ if (dentry->d_inode) {
+ err = -ENOENT;
+ if (unlikely(!h_inode || !h_inode->i_nlink))
+ goto out;
+
+ h_mode = h_inode->i_mode;
+ if (!isdir) {
+ err = -EISDIR;
+ if (unlikely(S_ISDIR(h_mode)))
+ goto out;
+ } else if (unlikely(!S_ISDIR(h_mode))) {
+ err = -ENOTDIR;
+ goto out;
+ }
+ } else {
+ /* rename(2) case */
+ err = -EIO;
+ if (unlikely(h_inode))
+ goto out;
+ }
+
+ err = -ENOENT;
+ /* expected parent dir is locked */
+ if (unlikely(h_parent != h_dentry->d_parent))
+ goto out;
+ err = 0;
+
+ /*
+ * rmdir a dir may break the consistency on some filesystem.
+ * let's try heavy test.
+ */
+ err = -EACCES;
+ if (unlikely(au_test_h_perm(h_parent->d_inode, MAY_EXEC | MAY_WRITE)))
+ goto out;
+
+ h_latest = au_sio_lkup_one(&dentry->d_name, h_parent,
+ au_sbr(dentry->d_sb, bindex));
+ err = -EIO;
+ if (IS_ERR(h_latest))
+ goto out;
+ if (h_latest == h_dentry)
+ err = 0;
+ dput(h_latest);
+
+ out:
+ return err;
+}
+
+/*
+ * decide the branch where we operate for @dentry. the branch index will be set
+ * @rbcpup. after diciding it, 'pin' it and store the timestamps of the parent
+ * dir for reverting.
+ * when a new whiteout is necessary, create it.
+ */
+static struct dentry*
+lock_hdir_create_wh(struct dentry *dentry, int isdir, aufs_bindex_t *rbcpup,
+ struct au_dtime *dt, struct au_pin *pin)
+{
+ struct dentry *wh_dentry;
+ struct super_block *sb;
+ struct path h_path;
+ int err, need_wh;
+ unsigned int udba;
+ aufs_bindex_t bcpup;
+
+ need_wh = au_wr_dir_need_wh(dentry, isdir, rbcpup);
+ wh_dentry = ERR_PTR(need_wh);
+ if (unlikely(need_wh < 0))
+ goto out;
+
+ sb = dentry->d_sb;
+ udba = au_opt_udba(sb);
+ bcpup = *rbcpup;
+ err = au_pin(pin, dentry, bcpup, udba,
+ AuPin_DI_LOCKED | AuPin_MNT_WRITE);
+ wh_dentry = ERR_PTR(err);
+ if (unlikely(err))
+ goto out;
+
+ h_path.dentry = au_pinned_h_parent(pin);
+ if (udba != AuOpt_UDBA_NONE
+ && au_dbstart(dentry) == bcpup) {
+ err = au_may_del(dentry, bcpup, h_path.dentry, isdir);
+ wh_dentry = ERR_PTR(err);
+ if (unlikely(err))
+ goto out_unpin;
+ }
+
+ h_path.mnt = au_sbr_mnt(sb, bcpup);
+ au_dtime_store(dt, au_pinned_parent(pin), &h_path);
+ wh_dentry = NULL;
+ if (!need_wh)
+ goto out; /* success, no need to create whiteout */
+
+ wh_dentry = au_wh_create(dentry, bcpup, h_path.dentry);
+ if (IS_ERR(wh_dentry))
+ goto out_unpin;
+
+ /* returns with the parent is locked and wh_dentry is dget-ed */
+ goto out; /* success */
+
+ out_unpin:
+ au_unpin(pin);
+ out:
+ return wh_dentry;
+}
+
+/*
+ * when removing a dir, rename it to a unique temporary whiteout-ed name first
+ * in order to be revertible and save time for removing many child whiteouts
+ * under the dir.
+ * returns 1 when there are too many child whiteout and caller should remove
+ * them asynchronously. returns 0 when the number of children is enough small to
+ * remove now or the branch fs is a remote fs.
+ * otherwise return an error.
+ */
+static int renwh_and_rmdir(struct dentry *dentry, aufs_bindex_t bindex,
+ struct au_nhash *whlist, struct inode *dir)
+{
+ int rmdir_later, err, dirwh;
+ struct dentry *h_dentry;
+ struct super_block *sb;
+
+ sb = dentry->d_sb;
+ SiMustAnyLock(sb);
+ h_dentry = au_h_dptr(dentry, bindex);
+ err = au_whtmp_ren(h_dentry, au_sbr(sb, bindex));
+ if (unlikely(err))
+ goto out;
+
+ /* stop monitoring */
+ au_hn_free(au_hi(dentry->d_inode, bindex));
+
+ if (!au_test_fs_remote(h_dentry->d_sb)) {
+ dirwh = au_sbi(sb)->si_dirwh;
+ rmdir_later = (dirwh <= 1);
+ if (!rmdir_later)
+ rmdir_later = au_nhash_test_longer_wh(whlist, bindex,
+ dirwh);
+ if (rmdir_later)
+ return rmdir_later;
+ }
+
+ err = au_whtmp_rmdir(dir, bindex, h_dentry, whlist);
+ if (unlikely(err)) {
+ AuIOErr("rmdir %.*s, b%d failed, %d. ignored\n",
+ AuDLNPair(h_dentry), bindex, err);
+ err = 0;
+ }
+
+ out:
+ AuTraceErr(err);
+ return err;
+}
+
+/*
+ * final procedure for deleting a entry.
+ * maintain dentry and iattr.
+ */
+static void epilog(struct inode *dir, struct dentry *dentry,
+ aufs_bindex_t bindex)
+{
+ struct inode *inode;
+
+ inode = dentry->d_inode;
+ d_drop(dentry);
+ inode->i_ctime = dir->i_ctime;
+
+ if (atomic_read(&dentry->d_count) == 1) {
+ au_set_h_dptr(dentry, au_dbstart(dentry), NULL);
+ au_update_dbstart(dentry);
+ }
+ if (au_ibstart(dir) == bindex)
+ au_cpup_attr_timesizes(dir);
+ dir->i_version++;
+}
+
+/*
+ * when an error happened, remove the created whiteout and revert everything.
+ */
+static int do_revert(int err, struct inode *dir, aufs_bindex_t bwh,
+ struct dentry *wh_dentry, struct dentry *dentry,
+ struct au_dtime *dt)
+{
+ int rerr;
+ struct path h_path = {
+ .dentry = wh_dentry,
+ .mnt = au_sbr_mnt(dir->i_sb, bwh)
+ };
+
+ rerr = au_wh_unlink_dentry(au_h_iptr(dir, bwh), &h_path, dentry);
+ if (!rerr) {
+ au_set_dbwh(dentry, bwh);
+ au_dtime_revert(dt);
+ return 0;
+ }
+
+ AuIOErr("%.*s reverting whiteout failed(%d, %d)\n",
+ AuDLNPair(dentry), err, rerr);
+ return -EIO;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int aufs_unlink(struct inode *dir, struct dentry *dentry)
+{
+ int err;
+ aufs_bindex_t bwh, bindex, bstart;
+ struct au_dtime dt;
+ struct au_pin pin;
+ struct path h_path;
+ struct inode *inode, *h_dir;
+ struct dentry *parent, *wh_dentry;
+
+ IMustLock(dir);
+ inode = dentry->d_inode;
+ if (unlikely(!inode))
+ return -ENOENT; /* possible? */
+ IMustLock(inode);
+
+ aufs_read_lock(dentry, AuLock_DW);
+ parent = dentry->d_parent; /* dir inode is locked */
+ di_write_lock_parent(parent);
+
+ bstart = au_dbstart(dentry);
+ bwh = au_dbwh(dentry);
+ bindex = -1;
+ wh_dentry = lock_hdir_create_wh(dentry, /*isdir*/0, &bindex, &dt, &pin);
+ err = PTR_ERR(wh_dentry);
+ if (IS_ERR(wh_dentry))
+ goto out;
+
+ h_path.mnt = au_sbr_mnt(dentry->d_sb, bstart);
+ h_path.dentry = au_h_dptr(dentry, bstart);
+ dget(h_path.dentry);
+ if (bindex == bstart) {
+ h_dir = au_pinned_h_dir(&pin);
+ err = vfsub_unlink(h_dir, &h_path, /*force*/0);
+ } else {
+ /* dir inode is locked */
+ h_dir = wh_dentry->d_parent->d_inode;
+ IMustLock(h_dir);
+ err = 0;
+ }
+
+ if (!err) {
+ drop_nlink(inode);
+ epilog(dir, dentry, bindex);
+
+ /* update target timestamps */
+ if (bindex == bstart) {
+ vfsub_update_h_iattr(&h_path, /*did*/NULL); /*ignore*/
+ inode->i_ctime = h_path.dentry->d_inode->i_ctime;
+ } else
+ /* todo: this timestamp may be reverted later */
+ inode->i_ctime = h_dir->i_ctime;
+ goto out_unlock; /* success */
+ }
+
+ /* revert */
+ if (wh_dentry) {
+ int rerr;
+
+ rerr = do_revert(err, dir, bwh, wh_dentry, dentry, &dt);
+ if (rerr)
+ err = rerr;
+ }
+
+ out_unlock:
+ au_unpin(&pin);
+ dput(wh_dentry);
+ dput(h_path.dentry);
+ out:
+ di_write_unlock(parent);
+ aufs_read_unlock(dentry, AuLock_DW);
+ return err;
+}
+
+int aufs_rmdir(struct inode *dir, struct dentry *dentry)
+{
+ int err, rmdir_later;
+ aufs_bindex_t bwh, bindex, bstart;
+ struct au_dtime dt;
+ struct au_pin pin;
+ struct inode *inode;
+ struct dentry *parent, *wh_dentry, *h_dentry;
+ struct au_whtmp_rmdir *args;
+
+ IMustLock(dir);
+ inode = dentry->d_inode;
+ err = -ENOENT; /* possible? */
+ if (unlikely(!inode))
+ goto out;
+ IMustLock(inode);
+
+ aufs_read_lock(dentry, AuLock_DW | AuLock_FLUSH);
+ err = -ENOMEM;
+ args = au_whtmp_rmdir_alloc(dir->i_sb, GFP_NOFS);
+ if (unlikely(!args))
+ goto out_unlock;
+
+ parent = dentry->d_parent; /* dir inode is locked */
+ di_write_lock_parent(parent);
+ err = au_test_empty(dentry, &args->whlist);
+ if (unlikely(err))
+ goto out_args;
+
+ bstart = au_dbstart(dentry);
+ bwh = au_dbwh(dentry);
+ bindex = -1;
+ wh_dentry = lock_hdir_create_wh(dentry, /*isdir*/1, &bindex, &dt, &pin);
+ err = PTR_ERR(wh_dentry);
+ if (IS_ERR(wh_dentry))
+ goto out_args;
+
+ h_dentry = au_h_dptr(dentry, bstart);
+ dget(h_dentry);
+ rmdir_later = 0;
+ if (bindex == bstart) {
+ err = renwh_and_rmdir(dentry, bstart, &args->whlist, dir);
+ if (err > 0) {
+ rmdir_later = err;
+ err = 0;
+ }
+ } else {
+ /* stop monitoring */
+ au_hn_free(au_hi(inode, bstart));
+
+ /* dir inode is locked */
+ IMustLock(wh_dentry->d_parent->d_inode);
+ err = 0;
+ }
+
+ if (!err) {
+ clear_nlink(inode);
+ au_set_dbdiropq(dentry, -1);
+ epilog(dir, dentry, bindex);
+
+ if (rmdir_later) {
+ au_whtmp_kick_rmdir(dir, bstart, h_dentry, args);
+ args = NULL;
+ }
+
+ goto out_unpin; /* success */
+ }
+
+ /* revert */
+ AuLabel(revert);
+ if (wh_dentry) {
+ int rerr;
+
+ rerr = do_revert(err, dir, bwh, wh_dentry, dentry, &dt);
+ if (rerr)
+ err = rerr;
+ }
+
+ out_unpin:
+ au_unpin(&pin);
+ dput(wh_dentry);
+ dput(h_dentry);
+ out_args:
+ di_write_unlock(parent);
+ if (args)
+ au_whtmp_rmdir_free(args);
+ out_unlock:
+ aufs_read_unlock(dentry, AuLock_DW);
+ out:
+ AuTraceErr(err);
+ return err;
+}
diff --git a/ubuntu/aufs/i_op_ren.c b/ubuntu/aufs/i_op_ren.c
new file mode 100644
index 00000000000..33899e30a90
--- /dev/null
+++ b/ubuntu/aufs/i_op_ren.c
@@ -0,0 +1,977 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * inode operation (rename entry)
+ * todo: this is crazy monster
+ */
+
+#include "aufs.h"
+
+enum { AuSRC, AuDST, AuSrcDst };
+enum { AuPARENT, AuCHILD, AuParentChild };
+
+#define AuRen_ISDIR 1
+#define AuRen_ISSAMEDIR (1 << 1)
+#define AuRen_WHSRC (1 << 2)
+#define AuRen_WHDST (1 << 3)
+#define AuRen_MNT_WRITE (1 << 4)
+#define AuRen_DT_DSTDIR (1 << 5)
+#define AuRen_DIROPQ (1 << 6)
+#define AuRen_CPUP (1 << 7)
+#define au_ftest_ren(flags, name) ((flags) & AuRen_##name)
+#define au_fset_ren(flags, name) { (flags) |= AuRen_##name; }
+#define au_fclr_ren(flags, name) { (flags) &= ~AuRen_##name; }
+
+struct au_ren_args {
+ struct {
+ struct dentry *dentry, *h_dentry, *parent, *h_parent,
+ *wh_dentry;
+ struct inode *dir, *inode;
+ struct au_hinode *hdir;
+ struct au_dtime dt[AuParentChild];
+ aufs_bindex_t bstart;
+ } sd[AuSrcDst];
+
+#define src_dentry sd[AuSRC].dentry
+#define src_dir sd[AuSRC].dir
+#define src_inode sd[AuSRC].inode
+#define src_h_dentry sd[AuSRC].h_dentry
+#define src_parent sd[AuSRC].parent
+#define src_h_parent sd[AuSRC].h_parent
+#define src_wh_dentry sd[AuSRC].wh_dentry
+#define src_hdir sd[AuSRC].hdir
+#define src_h_dir sd[AuSRC].hdir->hi_inode
+#define src_dt sd[AuSRC].dt
+#define src_bstart sd[AuSRC].bstart
+
+#define dst_dentry sd[AuDST].dentry
+#define dst_dir sd[AuDST].dir
+#define dst_inode sd[AuDST].inode
+#define dst_h_dentry sd[AuDST].h_dentry
+#define dst_parent sd[AuDST].parent
+#define dst_h_parent sd[AuDST].h_parent
+#define dst_wh_dentry sd[AuDST].wh_dentry
+#define dst_hdir sd[AuDST].hdir
+#define dst_h_dir sd[AuDST].hdir->hi_inode
+#define dst_dt sd[AuDST].dt
+#define dst_bstart sd[AuDST].bstart
+
+ struct dentry *h_trap;
+ struct au_branch *br;
+ struct au_hinode *src_hinode;
+ struct path h_path;
+ struct au_nhash whlist;
+ aufs_bindex_t btgt;
+
+ unsigned int flags;
+
+ struct au_whtmp_rmdir *thargs;
+ struct dentry *h_dst;
+};
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * functions for reverting.
+ * when an error happened in a single rename systemcall, we should revert
+ * everything as if nothing happend.
+ * we don't need to revert the copied-up/down the parent dir since they are
+ * harmless.
+ */
+
+#define RevertFailure(fmt, ...) do { \
+ AuIOErr("revert failure: " fmt " (%d, %d)\n", \
+ ##__VA_ARGS__, err, rerr); \
+ err = -EIO; \
+} while (0)
+
+static void au_ren_rev_diropq(int err, struct au_ren_args *a)
+{
+ int rerr;
+
+ au_hn_imtx_lock_nested(a->src_hinode, AuLsc_I_CHILD);
+ rerr = au_diropq_remove(a->src_dentry, a->btgt);
+ au_hn_imtx_unlock(a->src_hinode);
+ if (rerr)
+ RevertFailure("remove diropq %.*s", AuDLNPair(a->src_dentry));
+}
+
+static void au_ren_rev_rename(int err, struct au_ren_args *a)
+{
+ int rerr;
+
+ a->h_path.dentry = au_lkup_one(&a->src_dentry->d_name, a->src_h_parent,
+ a->br, /*nd*/NULL);
+ rerr = PTR_ERR(a->h_path.dentry);
+ if (IS_ERR(a->h_path.dentry)) {
+ RevertFailure("au_lkup_one %.*s", AuDLNPair(a->src_dentry));
+ return;
+ }
+
+ rerr = vfsub_rename(a->dst_h_dir,
+ au_h_dptr(a->src_dentry, a->btgt),
+ a->src_h_dir, &a->h_path);
+ d_drop(a->h_path.dentry);
+ dput(a->h_path.dentry);
+ /* au_set_h_dptr(a->src_dentry, a->btgt, NULL); */
+ if (rerr)
+ RevertFailure("rename %.*s", AuDLNPair(a->src_dentry));
+}
+
+static void au_ren_rev_cpup(int err, struct au_ren_args *a)
+{
+ int rerr;
+
+ a->h_path.dentry = a->dst_h_dentry;
+ rerr = vfsub_unlink(a->dst_h_dir, &a->h_path, /*force*/0);
+ au_set_h_dptr(a->src_dentry, a->btgt, NULL);
+ au_set_dbstart(a->src_dentry, a->src_bstart);
+ if (rerr)
+ RevertFailure("unlink %.*s", AuDLNPair(a->dst_h_dentry));
+}
+
+static void au_ren_rev_whtmp(int err, struct au_ren_args *a)
+{
+ int rerr;
+
+ a->h_path.dentry = au_lkup_one(&a->dst_dentry->d_name, a->dst_h_parent,
+ a->br, /*nd*/NULL);
+ rerr = PTR_ERR(a->h_path.dentry);
+ if (IS_ERR(a->h_path.dentry)) {
+ RevertFailure("lookup %.*s", AuDLNPair(a->dst_dentry));
+ return;
+ }
+ if (a->h_path.dentry->d_inode) {
+ d_drop(a->h_path.dentry);
+ dput(a->h_path.dentry);
+ return;
+ }
+
+ rerr = vfsub_rename(a->dst_h_dir, a->h_dst, a->dst_h_dir, &a->h_path);
+ d_drop(a->h_path.dentry);
+ dput(a->h_path.dentry);
+ if (!rerr)
+ au_set_h_dptr(a->dst_dentry, a->btgt, dget(a->h_dst));
+ else
+ RevertFailure("rename %.*s", AuDLNPair(a->h_dst));
+}
+
+static void au_ren_rev_whsrc(int err, struct au_ren_args *a)
+{
+ int rerr;
+
+ a->h_path.dentry = a->src_wh_dentry;
+ rerr = au_wh_unlink_dentry(a->src_h_dir, &a->h_path, a->src_dentry);
+ if (rerr)
+ RevertFailure("unlink %.*s", AuDLNPair(a->src_wh_dentry));
+}
+
+static void au_ren_rev_drop(struct au_ren_args *a)
+{
+ struct dentry *d, *h_d;
+ int i;
+ aufs_bindex_t bend, bindex;
+
+ for (i = 0; i < AuSrcDst; i++) {
+ d = a->sd[i].dentry;
+ d_drop(d);
+ bend = au_dbend(d);
+ for (bindex = au_dbstart(d); bindex <= bend; bindex++) {
+ h_d = au_h_dptr(d, bindex);
+ if (h_d)
+ d_drop(h_d);
+ }
+ }
+
+ au_update_dbstart(a->dst_dentry);
+ if (a->thargs)
+ d_drop(a->h_dst);
+}
+#undef RevertFailure
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * when we have to copyup the renaming entry, do it with the rename-target name
+ * in order to minimize the cost (the later actual rename is unnecessary).
+ * otherwise rename it on the target branch.
+ */
+static int au_ren_or_cpup(struct au_ren_args *a)
+{
+ int err;
+ struct dentry *d;
+
+ d = a->src_dentry;
+ if (au_dbstart(d) == a->btgt) {
+ a->h_path.dentry = a->dst_h_dentry;
+ if (au_ftest_ren(a->flags, DIROPQ)
+ && au_dbdiropq(d) == a->btgt)
+ au_fclr_ren(a->flags, DIROPQ);
+ AuDebugOn(au_dbstart(d) != a->btgt);
+ err = vfsub_rename(a->src_h_dir, au_h_dptr(d, a->btgt),
+ a->dst_h_dir, &a->h_path);
+ } else {
+ struct mutex *h_mtx = &a->src_h_dentry->d_inode->i_mutex;
+ struct file *h_file;
+
+ au_fset_ren(a->flags, CPUP);
+ mutex_lock_nested(h_mtx, AuLsc_I_CHILD);
+ au_set_dbstart(d, a->btgt);
+ au_set_h_dptr(d, a->btgt, dget(a->dst_h_dentry));
+ h_file = au_h_open_pre(d, a->src_bstart);
+ if (IS_ERR(h_file)) {
+ err = PTR_ERR(h_file);
+ h_file = NULL;
+ } else
+ err = au_sio_cpup_single(d, a->btgt, a->src_bstart, -1,
+ !AuCpup_DTIME, a->dst_parent);
+ mutex_unlock(h_mtx);
+ au_h_open_post(d, a->src_bstart, h_file);
+ if (!err) {
+ d = a->dst_dentry;
+ au_set_h_dptr(d, a->btgt, NULL);
+ au_update_dbstart(d);
+ } else {
+ au_set_h_dptr(d, a->btgt, NULL);
+ au_set_dbstart(d, a->src_bstart);
+ }
+ }
+
+ return err;
+}
+
+/* cf. aufs_rmdir() */
+static int au_ren_del_whtmp(struct au_ren_args *a)
+{
+ int err;
+ struct inode *dir;
+
+ dir = a->dst_dir;
+ SiMustAnyLock(dir->i_sb);
+ if (!au_nhash_test_longer_wh(&a->whlist, a->btgt,
+ au_sbi(dir->i_sb)->si_dirwh)
+ || au_test_fs_remote(a->h_dst->d_sb)) {
+ err = au_whtmp_rmdir(dir, a->btgt, a->h_dst, &a->whlist);
+ if (unlikely(err))
+ pr_warning("failed removing whtmp dir %.*s (%d), "
+ "ignored.\n", AuDLNPair(a->h_dst), err);
+ } else {
+ au_nhash_wh_free(&a->thargs->whlist);
+ a->thargs->whlist = a->whlist;
+ a->whlist.nh_num = 0;
+ au_whtmp_kick_rmdir(dir, a->btgt, a->h_dst, a->thargs);
+ dput(a->h_dst);
+ a->thargs = NULL;
+ }
+
+ return 0;
+}
+
+/* make it 'opaque' dir. */
+static int au_ren_diropq(struct au_ren_args *a)
+{
+ int err;
+ struct dentry *diropq;
+
+ err = 0;
+ a->src_hinode = au_hi(a->src_inode, a->btgt);
+ au_hn_imtx_lock_nested(a->src_hinode, AuLsc_I_CHILD);
+ diropq = au_diropq_create(a->src_dentry, a->btgt);
+ au_hn_imtx_unlock(a->src_hinode);
+ if (IS_ERR(diropq))
+ err = PTR_ERR(diropq);
+ dput(diropq);
+
+ return err;
+}
+
+static int do_rename(struct au_ren_args *a)
+{
+ int err;
+ struct dentry *d, *h_d;
+
+ /* prepare workqueue args for asynchronous rmdir */
+ h_d = a->dst_h_dentry;
+ if (au_ftest_ren(a->flags, ISDIR) && h_d->d_inode) {
+ err = -ENOMEM;
+ a->thargs = au_whtmp_rmdir_alloc(a->src_dentry->d_sb, GFP_NOFS);
+ if (unlikely(!a->thargs))
+ goto out;
+ a->h_dst = dget(h_d);
+ }
+
+ /* create whiteout for src_dentry */
+ if (au_ftest_ren(a->flags, WHSRC)) {
+ a->src_wh_dentry
+ = au_wh_create(a->src_dentry, a->btgt, a->src_h_parent);
+ err = PTR_ERR(a->src_wh_dentry);
+ if (IS_ERR(a->src_wh_dentry))
+ goto out_thargs;
+ }
+
+ /* lookup whiteout for dentry */
+ if (au_ftest_ren(a->flags, WHDST)) {
+ h_d = au_wh_lkup(a->dst_h_parent, &a->dst_dentry->d_name,
+ a->br);
+ err = PTR_ERR(h_d);
+ if (IS_ERR(h_d))
+ goto out_whsrc;
+ if (!h_d->d_inode)
+ dput(h_d);
+ else
+ a->dst_wh_dentry = h_d;
+ }
+
+ /* rename dentry to tmpwh */
+ if (a->thargs) {
+ err = au_whtmp_ren(a->dst_h_dentry, a->br);
+ if (unlikely(err))
+ goto out_whdst;
+
+ d = a->dst_dentry;
+ au_set_h_dptr(d, a->btgt, NULL);
+ err = au_lkup_neg(d, a->btgt);
+ if (unlikely(err))
+ goto out_whtmp;
+ a->dst_h_dentry = au_h_dptr(d, a->btgt);
+ }
+
+ /* cpup src */
+ if (a->dst_h_dentry->d_inode && a->src_bstart != a->btgt) {
+ struct mutex *h_mtx = &a->src_h_dentry->d_inode->i_mutex;
+ struct file *h_file;
+
+ mutex_lock_nested(h_mtx, AuLsc_I_CHILD);
+ AuDebugOn(au_dbstart(a->src_dentry) != a->src_bstart);
+ h_file = au_h_open_pre(a->src_dentry, a->src_bstart);
+ if (IS_ERR(h_file)) {
+ err = PTR_ERR(h_file);
+ h_file = NULL;
+ } else
+ err = au_sio_cpup_simple(a->src_dentry, a->btgt, -1,
+ !AuCpup_DTIME);
+ mutex_unlock(h_mtx);
+ au_h_open_post(a->src_dentry, a->src_bstart, h_file);
+ if (unlikely(err))
+ goto out_whtmp;
+ }
+
+ /* rename by vfs_rename or cpup */
+ d = a->dst_dentry;
+ if (au_ftest_ren(a->flags, ISDIR)
+ && (a->dst_wh_dentry
+ || au_dbdiropq(d) == a->btgt
+ /* hide the lower to keep xino */
+ || a->btgt < au_dbend(d)
+ || au_opt_test(au_mntflags(d->d_sb), ALWAYS_DIROPQ)))
+ au_fset_ren(a->flags, DIROPQ);
+ err = au_ren_or_cpup(a);
+ if (unlikely(err))
+ /* leave the copied-up one */
+ goto out_whtmp;
+
+ /* make dir opaque */
+ if (au_ftest_ren(a->flags, DIROPQ)) {
+ err = au_ren_diropq(a);
+ if (unlikely(err))
+ goto out_rename;
+ }
+
+ /* update target timestamps */
+ AuDebugOn(au_dbstart(a->src_dentry) != a->btgt);
+ a->h_path.dentry = au_h_dptr(a->src_dentry, a->btgt);
+ vfsub_update_h_iattr(&a->h_path, /*did*/NULL); /*ignore*/
+ a->src_inode->i_ctime = a->h_path.dentry->d_inode->i_ctime;
+
+ /* remove whiteout for dentry */
+ if (a->dst_wh_dentry) {
+ a->h_path.dentry = a->dst_wh_dentry;
+ err = au_wh_unlink_dentry(a->dst_h_dir, &a->h_path,
+ a->dst_dentry);
+ if (unlikely(err))
+ goto out_diropq;
+ }
+
+ /* remove whtmp */
+ if (a->thargs)
+ au_ren_del_whtmp(a); /* ignore this error */
+
+ err = 0;
+ goto out_success;
+
+ out_diropq:
+ if (au_ftest_ren(a->flags, DIROPQ))
+ au_ren_rev_diropq(err, a);
+ out_rename:
+ if (!au_ftest_ren(a->flags, CPUP))
+ au_ren_rev_rename(err, a);
+ else
+ au_ren_rev_cpup(err, a);
+ out_whtmp:
+ if (a->thargs)
+ au_ren_rev_whtmp(err, a);
+ out_whdst:
+ dput(a->dst_wh_dentry);
+ a->dst_wh_dentry = NULL;
+ out_whsrc:
+ if (a->src_wh_dentry)
+ au_ren_rev_whsrc(err, a);
+ au_ren_rev_drop(a);
+ out_success:
+ dput(a->src_wh_dentry);
+ dput(a->dst_wh_dentry);
+ out_thargs:
+ if (a->thargs) {
+ dput(a->h_dst);
+ au_whtmp_rmdir_free(a->thargs);
+ a->thargs = NULL;
+ }
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * test if @dentry dir can be rename destination or not.
+ * success means, it is a logically empty dir.
+ */
+static int may_rename_dstdir(struct dentry *dentry, struct au_nhash *whlist)
+{
+ return au_test_empty(dentry, whlist);
+}
+
+/*
+ * test if @dentry dir can be rename source or not.
+ * if it can, return 0 and @children is filled.
+ * success means,
+ * - it is a logically empty dir.
+ * - or, it exists on writable branch and has no children including whiteouts
+ * on the lower branch.
+ */
+static int may_rename_srcdir(struct dentry *dentry, aufs_bindex_t btgt)
+{
+ int err;
+ unsigned int rdhash;
+ aufs_bindex_t bstart;
+
+ bstart = au_dbstart(dentry);
+ if (bstart != btgt) {
+ struct au_nhash whlist;
+
+ SiMustAnyLock(dentry->d_sb);
+ rdhash = au_sbi(dentry->d_sb)->si_rdhash;
+ if (!rdhash)
+ rdhash = au_rdhash_est(au_dir_size(/*file*/NULL,
+ dentry));
+ err = au_nhash_alloc(&whlist, rdhash, GFP_NOFS);
+ if (unlikely(err))
+ goto out;
+ err = au_test_empty(dentry, &whlist);
+ au_nhash_wh_free(&whlist);
+ goto out;
+ }
+
+ if (bstart == au_dbtaildir(dentry))
+ return 0; /* success */
+
+ err = au_test_empty_lower(dentry);
+
+ out:
+ if (err == -ENOTEMPTY) {
+ AuWarn1("renaming dir who has child(ren) on multiple branches,"
+ " is not supported\n");
+ err = -EXDEV;
+ }
+ return err;
+}
+
+/* side effect: sets whlist and h_dentry */
+static int au_ren_may_dir(struct au_ren_args *a)
+{
+ int err;
+ unsigned int rdhash;
+ struct dentry *d;
+
+ d = a->dst_dentry;
+ SiMustAnyLock(d->d_sb);
+
+ err = 0;
+ if (au_ftest_ren(a->flags, ISDIR) && a->dst_inode) {
+ rdhash = au_sbi(d->d_sb)->si_rdhash;
+ if (!rdhash)
+ rdhash = au_rdhash_est(au_dir_size(/*file*/NULL, d));
+ err = au_nhash_alloc(&a->whlist, rdhash, GFP_NOFS);
+ if (unlikely(err))
+ goto out;
+
+ au_set_dbstart(d, a->dst_bstart);
+ err = may_rename_dstdir(d, &a->whlist);
+ au_set_dbstart(d, a->btgt);
+ }
+ a->dst_h_dentry = au_h_dptr(d, au_dbstart(d));
+ if (unlikely(err))
+ goto out;
+
+ d = a->src_dentry;
+ a->src_h_dentry = au_h_dptr(d, au_dbstart(d));
+ if (au_ftest_ren(a->flags, ISDIR)) {
+ err = may_rename_srcdir(d, a->btgt);
+ if (unlikely(err)) {
+ au_nhash_wh_free(&a->whlist);
+ a->whlist.nh_num = 0;
+ }
+ }
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * simple tests for rename.
+ * following the checks in vfs, plus the parent-child relationship.
+ */
+static int au_may_ren(struct au_ren_args *a)
+{
+ int err, isdir;
+ struct inode *h_inode;
+
+ if (a->src_bstart == a->btgt) {
+ err = au_may_del(a->src_dentry, a->btgt, a->src_h_parent,
+ au_ftest_ren(a->flags, ISDIR));
+ if (unlikely(err))
+ goto out;
+ err = -EINVAL;
+ if (unlikely(a->src_h_dentry == a->h_trap))
+ goto out;
+ }
+
+ err = 0;
+ if (a->dst_bstart != a->btgt)
+ goto out;
+
+ err = -EIO;
+ h_inode = a->dst_h_dentry->d_inode;
+ isdir = !!au_ftest_ren(a->flags, ISDIR);
+ if (!a->dst_dentry->d_inode) {
+ if (unlikely(h_inode))
+ goto out;
+ err = au_may_add(a->dst_dentry, a->btgt, a->dst_h_parent,
+ isdir);
+ } else {
+ if (unlikely(!h_inode || !h_inode->i_nlink))
+ goto out;
+ err = au_may_del(a->dst_dentry, a->btgt, a->dst_h_parent,
+ isdir);
+ if (unlikely(err))
+ goto out;
+ err = -ENOTEMPTY;
+ if (unlikely(a->dst_h_dentry == a->h_trap))
+ goto out;
+ err = 0;
+ }
+
+ out:
+ if (unlikely(err == -ENOENT || err == -EEXIST))
+ err = -EIO;
+ AuTraceErr(err);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * locking order
+ * (VFS)
+ * - src_dir and dir by lock_rename()
+ * - inode if exitsts
+ * (aufs)
+ * - lock all
+ * + src_dentry and dentry by aufs_read_and_write_lock2() which calls,
+ * + si_read_lock
+ * + di_write_lock2_child()
+ * + di_write_lock_child()
+ * + ii_write_lock_child()
+ * + di_write_lock_child2()
+ * + ii_write_lock_child2()
+ * + src_parent and parent
+ * + di_write_lock_parent()
+ * + ii_write_lock_parent()
+ * + di_write_lock_parent2()
+ * + ii_write_lock_parent2()
+ * + lower src_dir and dir by vfsub_lock_rename()
+ * + verify the every relationships between child and parent. if any
+ * of them failed, unlock all and return -EBUSY.
+ */
+static void au_ren_unlock(struct au_ren_args *a)
+{
+ struct super_block *sb;
+
+ sb = a->dst_dentry->d_sb;
+ if (au_ftest_ren(a->flags, MNT_WRITE))
+ mnt_drop_write(a->br->br_mnt);
+ vfsub_unlock_rename(a->src_h_parent, a->src_hdir,
+ a->dst_h_parent, a->dst_hdir);
+}
+
+static int au_ren_lock(struct au_ren_args *a)
+{
+ int err;
+ unsigned int udba;
+
+ err = 0;
+ a->src_h_parent = au_h_dptr(a->src_parent, a->btgt);
+ a->src_hdir = au_hi(a->src_dir, a->btgt);
+ a->dst_h_parent = au_h_dptr(a->dst_parent, a->btgt);
+ a->dst_hdir = au_hi(a->dst_dir, a->btgt);
+ a->h_trap = vfsub_lock_rename(a->src_h_parent, a->src_hdir,
+ a->dst_h_parent, a->dst_hdir);
+ udba = au_opt_udba(a->src_dentry->d_sb);
+ if (unlikely(a->src_hdir->hi_inode != a->src_h_parent->d_inode
+ || a->dst_hdir->hi_inode != a->dst_h_parent->d_inode))
+ err = au_busy_or_stale();
+ if (!err && au_dbstart(a->src_dentry) == a->btgt)
+ err = au_h_verify(a->src_h_dentry, udba,
+ a->src_h_parent->d_inode, a->src_h_parent,
+ a->br);
+ if (!err && au_dbstart(a->dst_dentry) == a->btgt)
+ err = au_h_verify(a->dst_h_dentry, udba,
+ a->dst_h_parent->d_inode, a->dst_h_parent,
+ a->br);
+ if (!err) {
+ err = mnt_want_write(a->br->br_mnt);
+ if (unlikely(err))
+ goto out_unlock;
+ au_fset_ren(a->flags, MNT_WRITE);
+ goto out; /* success */
+ }
+
+ err = au_busy_or_stale();
+
+ out_unlock:
+ au_ren_unlock(a);
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static void au_ren_refresh_dir(struct au_ren_args *a)
+{
+ struct inode *dir;
+
+ dir = a->dst_dir;
+ dir->i_version++;
+ if (au_ftest_ren(a->flags, ISDIR)) {
+ /* is this updating defined in POSIX? */
+ au_cpup_attr_timesizes(a->src_inode);
+ au_cpup_attr_nlink(dir, /*force*/1);
+ if (a->dst_inode) {
+ clear_nlink(a->dst_inode);
+ au_cpup_attr_timesizes(a->dst_inode);
+ }
+ }
+ if (au_ibstart(dir) == a->btgt)
+ au_cpup_attr_timesizes(dir);
+
+ if (au_ftest_ren(a->flags, ISSAMEDIR))
+ return;
+
+ dir = a->src_dir;
+ dir->i_version++;
+ if (au_ftest_ren(a->flags, ISDIR))
+ au_cpup_attr_nlink(dir, /*force*/1);
+ if (au_ibstart(dir) == a->btgt)
+ au_cpup_attr_timesizes(dir);
+}
+
+static void au_ren_refresh(struct au_ren_args *a)
+{
+ aufs_bindex_t bend, bindex;
+ struct dentry *d, *h_d;
+ struct inode *i, *h_i;
+ struct super_block *sb;
+
+ d = a->src_dentry;
+ au_set_dbwh(d, -1);
+ bend = au_dbend(d);
+ for (bindex = a->btgt + 1; bindex <= bend; bindex++) {
+ h_d = au_h_dptr(d, bindex);
+ if (h_d)
+ au_set_h_dptr(d, bindex, NULL);
+ }
+ au_set_dbend(d, a->btgt);
+
+ sb = d->d_sb;
+ i = a->src_inode;
+ if (au_opt_test(au_mntflags(sb), PLINK) && au_plink_test(i))
+ return; /* success */
+
+ bend = au_ibend(i);
+ for (bindex = a->btgt + 1; bindex <= bend; bindex++) {
+ h_i = au_h_iptr(i, bindex);
+ if (h_i) {
+ au_xino_write(sb, bindex, h_i->i_ino, /*ino*/0);
+ /* ignore this error */
+ au_set_h_iptr(i, bindex, NULL, 0);
+ }
+ }
+ au_set_ibend(i, a->btgt);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* mainly for link(2) and rename(2) */
+int au_wbr(struct dentry *dentry, aufs_bindex_t btgt)
+{
+ aufs_bindex_t bdiropq, bwh;
+ struct dentry *parent;
+ struct au_branch *br;
+
+ parent = dentry->d_parent;
+ IMustLock(parent->d_inode); /* dir is locked */
+
+ bdiropq = au_dbdiropq(parent);
+ bwh = au_dbwh(dentry);
+ br = au_sbr(dentry->d_sb, btgt);
+ if (au_br_rdonly(br)
+ || (0 <= bdiropq && bdiropq < btgt)
+ || (0 <= bwh && bwh < btgt))
+ btgt = -1;
+
+ AuDbg("btgt %d\n", btgt);
+ return btgt;
+}
+
+/* sets src_bstart, dst_bstart and btgt */
+static int au_ren_wbr(struct au_ren_args *a)
+{
+ int err;
+ struct au_wr_dir_args wr_dir_args = {
+ /* .force_btgt = -1, */
+ .flags = AuWrDir_ADD_ENTRY
+ };
+
+ a->src_bstart = au_dbstart(a->src_dentry);
+ a->dst_bstart = au_dbstart(a->dst_dentry);
+ if (au_ftest_ren(a->flags, ISDIR))
+ au_fset_wrdir(wr_dir_args.flags, ISDIR);
+ wr_dir_args.force_btgt = a->src_bstart;
+ if (a->dst_inode && a->dst_bstart < a->src_bstart)
+ wr_dir_args.force_btgt = a->dst_bstart;
+ wr_dir_args.force_btgt = au_wbr(a->dst_dentry, wr_dir_args.force_btgt);
+ err = au_wr_dir(a->dst_dentry, a->src_dentry, &wr_dir_args);
+ a->btgt = err;
+
+ return err;
+}
+
+static void au_ren_dt(struct au_ren_args *a)
+{
+ a->h_path.dentry = a->src_h_parent;
+ au_dtime_store(a->src_dt + AuPARENT, a->src_parent, &a->h_path);
+ if (!au_ftest_ren(a->flags, ISSAMEDIR)) {
+ a->h_path.dentry = a->dst_h_parent;
+ au_dtime_store(a->dst_dt + AuPARENT, a->dst_parent, &a->h_path);
+ }
+
+ au_fclr_ren(a->flags, DT_DSTDIR);
+ if (!au_ftest_ren(a->flags, ISDIR))
+ return;
+
+ a->h_path.dentry = a->src_h_dentry;
+ au_dtime_store(a->src_dt + AuCHILD, a->src_dentry, &a->h_path);
+ if (a->dst_h_dentry->d_inode) {
+ au_fset_ren(a->flags, DT_DSTDIR);
+ a->h_path.dentry = a->dst_h_dentry;
+ au_dtime_store(a->dst_dt + AuCHILD, a->dst_dentry, &a->h_path);
+ }
+}
+
+static void au_ren_rev_dt(int err, struct au_ren_args *a)
+{
+ struct dentry *h_d;
+ struct mutex *h_mtx;
+
+ au_dtime_revert(a->src_dt + AuPARENT);
+ if (!au_ftest_ren(a->flags, ISSAMEDIR))
+ au_dtime_revert(a->dst_dt + AuPARENT);
+
+ if (au_ftest_ren(a->flags, ISDIR) && err != -EIO) {
+ h_d = a->src_dt[AuCHILD].dt_h_path.dentry;
+ h_mtx = &h_d->d_inode->i_mutex;
+ mutex_lock_nested(h_mtx, AuLsc_I_CHILD);
+ au_dtime_revert(a->src_dt + AuCHILD);
+ mutex_unlock(h_mtx);
+
+ if (au_ftest_ren(a->flags, DT_DSTDIR)) {
+ h_d = a->dst_dt[AuCHILD].dt_h_path.dentry;
+ h_mtx = &h_d->d_inode->i_mutex;
+ mutex_lock_nested(h_mtx, AuLsc_I_CHILD);
+ au_dtime_revert(a->dst_dt + AuCHILD);
+ mutex_unlock(h_mtx);
+ }
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+int aufs_rename(struct inode *_src_dir, struct dentry *_src_dentry,
+ struct inode *_dst_dir, struct dentry *_dst_dentry)
+{
+ int err;
+ /* reduce stack space */
+ struct au_ren_args *a;
+
+ AuDbg("%.*s, %.*s\n", AuDLNPair(_src_dentry), AuDLNPair(_dst_dentry));
+ IMustLock(_src_dir);
+ IMustLock(_dst_dir);
+
+ err = -ENOMEM;
+ BUILD_BUG_ON(sizeof(*a) > PAGE_SIZE);
+ a = kzalloc(sizeof(*a), GFP_NOFS);
+ if (unlikely(!a))
+ goto out;
+
+ a->src_dir = _src_dir;
+ a->src_dentry = _src_dentry;
+ a->src_inode = a->src_dentry->d_inode;
+ a->src_parent = a->src_dentry->d_parent; /* dir inode is locked */
+ a->dst_dir = _dst_dir;
+ a->dst_dentry = _dst_dentry;
+ a->dst_inode = a->dst_dentry->d_inode;
+ a->dst_parent = a->dst_dentry->d_parent; /* dir inode is locked */
+ if (a->dst_inode) {
+ IMustLock(a->dst_inode);
+ au_igrab(a->dst_inode);
+ }
+
+ err = -ENOTDIR;
+ if (S_ISDIR(a->src_inode->i_mode)) {
+ au_fset_ren(a->flags, ISDIR);
+ if (unlikely(a->dst_inode && !S_ISDIR(a->dst_inode->i_mode)))
+ goto out_free;
+ aufs_read_and_write_lock2(a->dst_dentry, a->src_dentry,
+ AuLock_DIR | AuLock_FLUSH);
+ } else
+ aufs_read_and_write_lock2(a->dst_dentry, a->src_dentry,
+ AuLock_FLUSH);
+
+ au_fset_ren(a->flags, ISSAMEDIR); /* temporary */
+ di_write_lock_parent(a->dst_parent);
+
+ /* which branch we process */
+ err = au_ren_wbr(a);
+ if (unlikely(err < 0))
+ goto out_unlock;
+ a->br = au_sbr(a->dst_dentry->d_sb, a->btgt);
+ a->h_path.mnt = a->br->br_mnt;
+
+ /* are they available to be renamed */
+ err = au_ren_may_dir(a);
+ if (unlikely(err))
+ goto out_children;
+
+ /* prepare the writable parent dir on the same branch */
+ if (a->dst_bstart == a->btgt) {
+ au_fset_ren(a->flags, WHDST);
+ } else {
+ err = au_cpup_dirs(a->dst_dentry, a->btgt);
+ if (unlikely(err))
+ goto out_children;
+ }
+
+ if (a->src_dir != a->dst_dir) {
+ /*
+ * this temporary unlock is safe,
+ * because both dir->i_mutex are locked.
+ */
+ di_write_unlock(a->dst_parent);
+ di_write_lock_parent(a->src_parent);
+ err = au_wr_dir_need_wh(a->src_dentry,
+ au_ftest_ren(a->flags, ISDIR),
+ &a->btgt);
+ di_write_unlock(a->src_parent);
+ di_write_lock2_parent(a->src_parent, a->dst_parent, /*isdir*/1);
+ au_fclr_ren(a->flags, ISSAMEDIR);
+ } else
+ err = au_wr_dir_need_wh(a->src_dentry,
+ au_ftest_ren(a->flags, ISDIR),
+ &a->btgt);
+ if (unlikely(err < 0))
+ goto out_children;
+ if (err)
+ au_fset_ren(a->flags, WHSRC);
+
+ /* lock them all */
+ err = au_ren_lock(a);
+ if (unlikely(err))
+ goto out_children;
+
+ if (!au_opt_test(au_mntflags(a->dst_dir->i_sb), UDBA_NONE))
+ err = au_may_ren(a);
+ else if (unlikely(a->dst_dentry->d_name.len > AUFS_MAX_NAMELEN))
+ err = -ENAMETOOLONG;
+ if (unlikely(err))
+ goto out_hdir;
+
+ /* store timestamps to be revertible */
+ au_ren_dt(a);
+
+ /* here we go */
+ err = do_rename(a);
+ if (unlikely(err))
+ goto out_dt;
+
+ /* update dir attributes */
+ au_ren_refresh_dir(a);
+
+ /* dput/iput all lower dentries */
+ au_ren_refresh(a);
+
+ goto out_hdir; /* success */
+
+ out_dt:
+ au_ren_rev_dt(err, a);
+ out_hdir:
+ au_ren_unlock(a);
+ out_children:
+ au_nhash_wh_free(&a->whlist);
+ out_unlock:
+ if (unlikely(err && au_ftest_ren(a->flags, ISDIR))) {
+ au_update_dbstart(a->dst_dentry);
+ d_drop(a->dst_dentry);
+ }
+ if (!err)
+ d_move(a->src_dentry, a->dst_dentry);
+ if (au_ftest_ren(a->flags, ISSAMEDIR))
+ di_write_unlock(a->dst_parent);
+ else
+ di_write_unlock2(a->src_parent, a->dst_parent);
+ aufs_read_and_write_unlock2(a->dst_dentry, a->src_dentry);
+ out_free:
+ iput(a->dst_inode);
+ if (a->thargs)
+ au_whtmp_rmdir_free(a->thargs);
+ kfree(a);
+ out:
+ AuTraceErr(err);
+ return err;
+}
diff --git a/ubuntu/aufs/iinfo.c b/ubuntu/aufs/iinfo.c
new file mode 100644
index 00000000000..eaab5571fd7
--- /dev/null
+++ b/ubuntu/aufs/iinfo.c
@@ -0,0 +1,277 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * inode private data
+ */
+
+#include "aufs.h"
+
+struct inode *au_h_iptr(struct inode *inode, aufs_bindex_t bindex)
+{
+ struct inode *h_inode;
+
+ IiMustAnyLock(inode);
+
+ h_inode = au_ii(inode)->ii_hinode[0 + bindex].hi_inode;
+ AuDebugOn(h_inode && atomic_read(&h_inode->i_count) <= 0);
+ return h_inode;
+}
+
+/* todo: hard/soft set? */
+void au_hiput(struct au_hinode *hinode)
+{
+ au_hn_free(hinode);
+ dput(hinode->hi_whdentry);
+ iput(hinode->hi_inode);
+}
+
+unsigned int au_hi_flags(struct inode *inode, int isdir)
+{
+ unsigned int flags;
+ const unsigned int mnt_flags = au_mntflags(inode->i_sb);
+
+ flags = 0;
+ if (au_opt_test(mnt_flags, XINO))
+ au_fset_hi(flags, XINO);
+ if (isdir && au_opt_test(mnt_flags, UDBA_HNOTIFY))
+ au_fset_hi(flags, HNOTIFY);
+ return flags;
+}
+
+void au_set_h_iptr(struct inode *inode, aufs_bindex_t bindex,
+ struct inode *h_inode, unsigned int flags)
+{
+ struct au_hinode *hinode;
+ struct inode *hi;
+ struct au_iinfo *iinfo = au_ii(inode);
+
+ IiMustWriteLock(inode);
+
+ hinode = iinfo->ii_hinode + bindex;
+ hi = hinode->hi_inode;
+ AuDebugOn(h_inode && atomic_read(&h_inode->i_count) <= 0);
+
+ if (hi)
+ au_hiput(hinode);
+ hinode->hi_inode = h_inode;
+ if (h_inode) {
+ int err;
+ struct super_block *sb = inode->i_sb;
+ struct au_branch *br;
+
+ if (bindex == iinfo->ii_bstart)
+ au_cpup_igen(inode, h_inode);
+ br = au_sbr(sb, bindex);
+ hinode->hi_id = br->br_id;
+ if (au_ftest_hi(flags, XINO)) {
+ err = au_xino_write(sb, bindex, h_inode->i_ino,
+ inode->i_ino);
+ if (unlikely(err))
+ AuIOErr1("failed au_xino_write() %d\n", err);
+ }
+
+ if (au_ftest_hi(flags, HNOTIFY)
+ && au_br_hnotifyable(br->br_perm)) {
+ err = au_hn_alloc(hinode, inode, h_inode);
+ if (unlikely(err))
+ AuIOErr1("au_hn_alloc() %d\n", err);
+ }
+ }
+}
+
+void au_set_hi_wh(struct inode *inode, aufs_bindex_t bindex,
+ struct dentry *h_wh)
+{
+ struct au_hinode *hinode;
+
+ IiMustWriteLock(inode);
+
+ hinode = au_ii(inode)->ii_hinode + bindex;
+ AuDebugOn(hinode->hi_whdentry);
+ hinode->hi_whdentry = h_wh;
+}
+
+void au_update_iigen(struct inode *inode)
+{
+ atomic_set(&au_ii(inode)->ii_generation, au_sigen(inode->i_sb));
+ /* smp_mb(); */ /* atomic_set */
+}
+
+/* it may be called at remount time, too */
+void au_update_ibrange(struct inode *inode, int do_put_zero)
+{
+ struct au_iinfo *iinfo;
+
+ iinfo = au_ii(inode);
+ if (!iinfo || iinfo->ii_bstart < 0)
+ return;
+
+ IiMustWriteLock(inode);
+
+ if (do_put_zero) {
+ aufs_bindex_t bindex;
+
+ for (bindex = iinfo->ii_bstart; bindex <= iinfo->ii_bend;
+ bindex++) {
+ struct inode *h_i;
+
+ h_i = iinfo->ii_hinode[0 + bindex].hi_inode;
+ if (h_i && !h_i->i_nlink)
+ au_set_h_iptr(inode, bindex, NULL, 0);
+ }
+ }
+
+ iinfo->ii_bstart = -1;
+ while (++iinfo->ii_bstart <= iinfo->ii_bend)
+ if (iinfo->ii_hinode[0 + iinfo->ii_bstart].hi_inode)
+ break;
+ if (iinfo->ii_bstart > iinfo->ii_bend) {
+ iinfo->ii_bstart = -1;
+ iinfo->ii_bend = -1;
+ return;
+ }
+
+ iinfo->ii_bend++;
+ while (0 <= --iinfo->ii_bend)
+ if (iinfo->ii_hinode[0 + iinfo->ii_bend].hi_inode)
+ break;
+ AuDebugOn(iinfo->ii_bstart > iinfo->ii_bend || iinfo->ii_bend < 0);
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_icntnr_init_once(void *_c)
+{
+ struct au_icntnr *c = _c;
+ struct au_iinfo *iinfo = &c->iinfo;
+
+ au_rw_init(&iinfo->ii_rwsem);
+ inode_init_once(&c->vfs_inode);
+}
+
+int au_iinfo_init(struct inode *inode)
+{
+ struct au_iinfo *iinfo;
+ struct super_block *sb;
+ int nbr, i;
+
+ sb = inode->i_sb;
+ iinfo = &(container_of(inode, struct au_icntnr, vfs_inode)->iinfo);
+ nbr = au_sbend(sb) + 1;
+ if (unlikely(nbr <= 0))
+ nbr = 1;
+ iinfo->ii_hinode = kcalloc(nbr, sizeof(*iinfo->ii_hinode), GFP_NOFS);
+ if (iinfo->ii_hinode) {
+ for (i = 0; i < nbr; i++)
+ iinfo->ii_hinode[i].hi_id = -1;
+
+ atomic_set(&iinfo->ii_generation, au_sigen(sb));
+ /* smp_mb(); */ /* atomic_set */
+ iinfo->ii_bstart = -1;
+ iinfo->ii_bend = -1;
+ iinfo->ii_vdir = NULL;
+ return 0;
+ }
+ return -ENOMEM;
+}
+
+int au_ii_realloc(struct au_iinfo *iinfo, int nbr)
+{
+ int err, sz;
+ struct au_hinode *hip;
+
+ AuRwMustWriteLock(&iinfo->ii_rwsem);
+
+ err = -ENOMEM;
+ sz = sizeof(*hip) * (iinfo->ii_bend + 1);
+ if (!sz)
+ sz = sizeof(*hip);
+ hip = au_kzrealloc(iinfo->ii_hinode, sz, sizeof(*hip) * nbr, GFP_NOFS);
+ if (hip) {
+ iinfo->ii_hinode = hip;
+ err = 0;
+ }
+
+ return err;
+}
+
+static int au_iinfo_write0(struct super_block *sb, struct au_hinode *hinode,
+ ino_t ino)
+{
+ int err;
+ aufs_bindex_t bindex;
+ unsigned char locked;
+
+ err = 0;
+ locked = !!si_noflush_read_trylock(sb);
+ bindex = au_br_index(sb, hinode->hi_id);
+ if (bindex >= 0)
+ err = au_xino_write0(sb, bindex, hinode->hi_inode->i_ino, ino);
+ /* error action? */
+ if (locked)
+ si_read_unlock(sb);
+ return err;
+}
+
+void au_iinfo_fin(struct inode *inode)
+{
+ ino_t ino;
+ aufs_bindex_t bend;
+ unsigned char unlinked = !inode->i_nlink;
+ struct au_iinfo *iinfo;
+ struct au_hinode *hi;
+ struct super_block *sb;
+
+ if (unlinked) {
+ int err = au_xigen_inc(inode);
+ if (unlikely(err))
+ AuWarn1("failed resetting i_generation, %d\n", err);
+ }
+
+ iinfo = au_ii(inode);
+ /* bad_inode case */
+ if (!iinfo)
+ return;
+
+ if (iinfo->ii_vdir)
+ au_vdir_free(iinfo->ii_vdir);
+
+ if (iinfo->ii_bstart >= 0) {
+ sb = inode->i_sb;
+ ino = 0;
+ if (unlinked)
+ ino = inode->i_ino;
+ hi = iinfo->ii_hinode + iinfo->ii_bstart;
+ bend = iinfo->ii_bend;
+ while (iinfo->ii_bstart++ <= bend) {
+ if (hi->hi_inode) {
+ if (unlinked || !hi->hi_inode->i_nlink) {
+ au_iinfo_write0(sb, hi, ino);
+ /* ignore this error */
+ ino = 0;
+ }
+ au_hiput(hi);
+ }
+ hi++;
+ }
+ }
+
+ kfree(iinfo->ii_hinode);
+ AuRwDestroy(&iinfo->ii_rwsem);
+}
diff --git a/ubuntu/aufs/include/linux/aufs_type.h b/ubuntu/aufs/include/linux/aufs_type.h
new file mode 100644
index 00000000000..35b39e07f82
--- /dev/null
+++ b/ubuntu/aufs/include/linux/aufs_type.h
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef __AUFS_TYPE_H__
+#define __AUFS_TYPE_H__
+
+#include <linux/ioctl.h>
+/* for those who didn't "make headers_install" */
+#ifdef __KERNEL__
+#include <linux/kernel.h>
+#endif
+#include <linux/limits.h>
+#include <linux/types.h>
+
+#define AUFS_VERSION "2-standalone.tree-35-rcN-20100531"
+
+/* todo? move this to linux-2.6.19/include/magic.h */
+#define AUFS_SUPER_MAGIC ('a' << 24 | 'u' << 16 | 'f' << 8 | 's')
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef CONFIG_AUFS_BRANCH_MAX_127
+typedef __s8 aufs_bindex_t;
+#define AUFS_BRANCH_MAX 127
+#else
+typedef __s16 aufs_bindex_t;
+#ifdef CONFIG_AUFS_BRANCH_MAX_511
+#define AUFS_BRANCH_MAX 511
+#elif defined(CONFIG_AUFS_BRANCH_MAX_1023)
+#define AUFS_BRANCH_MAX 1023
+#elif defined(CONFIG_AUFS_BRANCH_MAX_32767)
+#define AUFS_BRANCH_MAX 32767
+#endif
+#endif
+
+#ifdef __KERNEL__
+#ifndef AUFS_BRANCH_MAX
+#error unknown CONFIG_AUFS_BRANCH_MAX value
+#endif
+#endif /* __KERNEL__ */
+
+/* ---------------------------------------------------------------------- */
+
+#define AUFS_NAME "aufs"
+#define AUFS_FSTYPE AUFS_NAME
+
+#define AUFS_ROOT_INO 2
+#define AUFS_FIRST_INO 11
+
+#define AUFS_WH_PFX ".wh."
+#define AUFS_WH_PFX_LEN ((int)sizeof(AUFS_WH_PFX) - 1)
+#define AUFS_WH_TMP_LEN 4
+/* a limit for rmdir/rename a dir */
+#define AUFS_MAX_NAMELEN (NAME_MAX \
+ - AUFS_WH_PFX_LEN * 2 /* doubly whiteouted */\
+ - 1 /* dot */\
+ - AUFS_WH_TMP_LEN) /* hex */
+#define AUFS_XINO_FNAME "." AUFS_NAME ".xino"
+#define AUFS_XINO_DEFPATH "/tmp/" AUFS_XINO_FNAME
+#define AUFS_XINO_TRUNC_INIT 64 /* blocks */
+#define AUFS_XINO_TRUNC_STEP 4 /* blocks */
+#define AUFS_DIRWH_DEF 3
+#define AUFS_RDCACHE_DEF 10 /* seconds */
+#define AUFS_RDBLK_DEF 512 /* bytes */
+#define AUFS_RDHASH_DEF 32
+#define AUFS_WKQ_NAME AUFS_NAME "d"
+#define AUFS_MFS_SECOND_DEF 30 /* seconds */
+#define AUFS_PLINK_WARN 100 /* number of plinks */
+
+#define AUFS_DIROPQ_NAME AUFS_WH_PFX ".opq" /* whiteouted doubly */
+#define AUFS_WH_DIROPQ AUFS_WH_PFX AUFS_DIROPQ_NAME
+
+#define AUFS_BASE_NAME AUFS_WH_PFX AUFS_NAME
+#define AUFS_PLINKDIR_NAME AUFS_WH_PFX "plnk"
+#define AUFS_ORPHDIR_NAME AUFS_WH_PFX "orph"
+
+/* doubly whiteouted */
+#define AUFS_WH_BASE AUFS_WH_PFX AUFS_BASE_NAME
+#define AUFS_WH_PLINKDIR AUFS_WH_PFX AUFS_PLINKDIR_NAME
+#define AUFS_WH_ORPHDIR AUFS_WH_PFX AUFS_ORPHDIR_NAME
+
+/* branch permission */
+#define AUFS_BRPERM_RW "rw"
+#define AUFS_BRPERM_RO "ro"
+#define AUFS_BRPERM_RR "rr"
+#define AUFS_BRPERM_WH "wh"
+#define AUFS_BRPERM_NLWH "nolwh"
+#define AUFS_BRPERM_ROWH AUFS_BRPERM_RO "+" AUFS_BRPERM_WH
+#define AUFS_BRPERM_RRWH AUFS_BRPERM_RR "+" AUFS_BRPERM_WH
+#define AUFS_BRPERM_RWNLWH AUFS_BRPERM_RW "+" AUFS_BRPERM_NLWH
+
+/* ---------------------------------------------------------------------- */
+
+/* ioctl */
+enum {
+ AuCtl_PLINK_MAINT,
+ AuCtl_PLINK_CLEAN,
+
+ /* readdir in userspace */
+ AuCtl_RDU,
+ AuCtl_RDU_INO,
+
+ /* pathconf wrapper */
+ AuCtl_WBR_FD
+};
+
+/* borrowed from linux/include/linux/kernel.h */
+#ifndef ALIGN
+#define ALIGN(x, a) __ALIGN_MASK(x, (typeof(x))(a)-1)
+#define __ALIGN_MASK(x, mask) (((x)+(mask))&~(mask))
+#endif
+
+/* borrowed from linux/include/linux/compiler-gcc3.h */
+#ifndef __aligned
+#define __aligned(x) __attribute__((aligned(x)))
+#define __packed __attribute__((packed))
+#endif
+
+struct au_rdu_cookie {
+ __u64 h_pos;
+ __s16 bindex;
+ __u8 flags;
+ __u8 pad;
+ __u32 generation;
+} __aligned(8);
+
+struct au_rdu_ent {
+ __u64 ino;
+ __s16 bindex;
+ __u8 type;
+ __u8 nlen;
+ __u8 wh;
+ char name[0];
+} __aligned(8);
+
+static inline int au_rdu_len(int nlen)
+{
+ /* include the terminating NULL */
+ return ALIGN(sizeof(struct au_rdu_ent) + nlen + 1,
+ sizeof(__u64));
+}
+
+union au_rdu_ent_ul {
+ struct au_rdu_ent __user *e;
+ unsigned long ul;
+};
+
+enum {
+ AufsCtlRduV_SZ,
+ AufsCtlRduV_SZ_PTR,
+ AufsCtlRduV_End
+};
+
+struct aufs_rdu {
+ /* input */
+ union {
+ __u64 sz; /* AuCtl_RDU */
+ __u64 nent; /* AuCtl_RDU_INO */
+ };
+ union au_rdu_ent_ul ent;
+ __u16 verify[AufsCtlRduV_End];
+
+ /* input/output */
+ __u32 blk;
+
+ /* output */
+ union au_rdu_ent_ul tail;
+ /* number of entries which were added in a single call */
+ __u64 rent;
+ __u8 full;
+ __u8 shwh;
+
+ struct au_rdu_cookie cookie;
+} __aligned(8);
+
+#define AuCtlType 'A'
+#define AUFS_CTL_PLINK_MAINT _IO(AuCtlType, AuCtl_PLINK_MAINT)
+#define AUFS_CTL_PLINK_CLEAN _IO(AuCtlType, AuCtl_PLINK_CLEAN)
+#define AUFS_CTL_RDU _IOWR(AuCtlType, AuCtl_RDU, struct aufs_rdu)
+#define AUFS_CTL_RDU_INO _IOWR(AuCtlType, AuCtl_RDU_INO, struct aufs_rdu)
+#define AUFS_CTL_WBR_FD _IO(AuCtlType, AuCtl_WBR_FD)
+
+#endif /* __AUFS_TYPE_H__ */
diff --git a/ubuntu/aufs/inode.c b/ubuntu/aufs/inode.c
new file mode 100644
index 00000000000..ab606543659
--- /dev/null
+++ b/ubuntu/aufs/inode.c
@@ -0,0 +1,416 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * inode functions
+ */
+
+#include "aufs.h"
+
+struct inode *au_igrab(struct inode *inode)
+{
+ if (inode) {
+ AuDebugOn(!atomic_read(&inode->i_count));
+ atomic_inc_return(&inode->i_count);
+ }
+ return inode;
+}
+
+static void au_refresh_hinode_attr(struct inode *inode, int do_version)
+{
+ au_cpup_attr_all(inode, /*force*/0);
+ au_update_iigen(inode);
+ if (do_version)
+ inode->i_version++;
+}
+
+int au_refresh_hinode_self(struct inode *inode, int do_attr)
+{
+ int err, e;
+ aufs_bindex_t bindex, new_bindex;
+ unsigned char update;
+ struct au_hinode *p, *q, tmp;
+ struct super_block *sb;
+ struct au_iinfo *iinfo;
+
+ IiMustWriteLock(inode);
+
+ update = 0;
+ sb = inode->i_sb;
+ iinfo = au_ii(inode);
+ err = au_ii_realloc(iinfo, au_sbend(sb) + 1);
+ if (unlikely(err))
+ goto out;
+
+ p = iinfo->ii_hinode + iinfo->ii_bstart;
+ err = 0;
+ for (bindex = iinfo->ii_bstart; bindex <= iinfo->ii_bend;
+ bindex++, p++) {
+ if (!p->hi_inode)
+ continue;
+
+ new_bindex = au_br_index(sb, p->hi_id);
+ if (new_bindex == bindex)
+ continue;
+
+ if (new_bindex < 0) {
+ update = 1;
+ au_hiput(p);
+ p->hi_inode = NULL;
+ continue;
+ }
+
+ if (new_bindex < iinfo->ii_bstart)
+ iinfo->ii_bstart = new_bindex;
+ if (iinfo->ii_bend < new_bindex)
+ iinfo->ii_bend = new_bindex;
+ /* swap two lower inode, and loop again */
+ q = iinfo->ii_hinode + new_bindex;
+ tmp = *q;
+ *q = *p;
+ *p = tmp;
+ if (tmp.hi_inode) {
+ bindex--;
+ p--;
+ }
+ }
+ au_update_ibrange(inode, /*do_put_zero*/0);
+ e = au_dy_irefresh(inode);
+ if (unlikely(e && !err))
+ err = e;
+ if (do_attr)
+ au_refresh_hinode_attr(inode, update && S_ISDIR(inode->i_mode));
+
+ out:
+ return err;
+}
+
+int au_refresh_hinode(struct inode *inode, struct dentry *dentry)
+{
+ int err, e;
+ unsigned int flags;
+ aufs_bindex_t bindex, bend;
+ unsigned char isdir, update;
+ struct au_hinode *p;
+ struct au_iinfo *iinfo;
+
+ err = au_refresh_hinode_self(inode, /*do_attr*/0);
+ if (unlikely(err))
+ goto out;
+
+ update = 0;
+ iinfo = au_ii(inode);
+ p = iinfo->ii_hinode + iinfo->ii_bstart;
+ isdir = S_ISDIR(inode->i_mode);
+ flags = au_hi_flags(inode, isdir);
+ bend = au_dbend(dentry);
+ for (bindex = au_dbstart(dentry); bindex <= bend; bindex++) {
+ struct inode *h_i;
+ struct dentry *h_d;
+
+ h_d = au_h_dptr(dentry, bindex);
+ if (!h_d || !h_d->d_inode)
+ continue;
+
+ if (iinfo->ii_bstart <= bindex && bindex <= iinfo->ii_bend) {
+ h_i = au_h_iptr(inode, bindex);
+ if (h_i) {
+ if (h_i == h_d->d_inode)
+ continue;
+ err = -EIO;
+ break;
+ }
+ }
+ if (bindex < iinfo->ii_bstart)
+ iinfo->ii_bstart = bindex;
+ if (iinfo->ii_bend < bindex)
+ iinfo->ii_bend = bindex;
+ au_set_h_iptr(inode, bindex, au_igrab(h_d->d_inode), flags);
+ update = 1;
+ }
+ au_update_ibrange(inode, /*do_put_zero*/0);
+ e = au_dy_irefresh(inode);
+ if (unlikely(e && !err))
+ err = e;
+ au_refresh_hinode_attr(inode, update && isdir);
+
+ out:
+ AuTraceErr(err);
+ return err;
+}
+
+static int set_inode(struct inode *inode, struct dentry *dentry)
+{
+ int err;
+ unsigned int flags;
+ umode_t mode;
+ aufs_bindex_t bindex, bstart, btail;
+ unsigned char isdir;
+ struct dentry *h_dentry;
+ struct inode *h_inode;
+ struct au_iinfo *iinfo;
+
+ IiMustWriteLock(inode);
+
+ err = 0;
+ isdir = 0;
+ bstart = au_dbstart(dentry);
+ h_inode = au_h_dptr(dentry, bstart)->d_inode;
+ mode = h_inode->i_mode;
+ switch (mode & S_IFMT) {
+ case S_IFREG:
+ btail = au_dbtail(dentry);
+ inode->i_op = &aufs_iop;
+ inode->i_fop = &aufs_file_fop;
+ err = au_dy_iaop(inode, bstart, h_inode);
+ if (unlikely(err))
+ goto out;
+ break;
+ case S_IFDIR:
+ isdir = 1;
+ btail = au_dbtaildir(dentry);
+ inode->i_op = &aufs_dir_iop;
+ inode->i_fop = &aufs_dir_fop;
+ break;
+ case S_IFLNK:
+ btail = au_dbtail(dentry);
+ inode->i_op = &aufs_symlink_iop;
+ break;
+ case S_IFBLK:
+ case S_IFCHR:
+ case S_IFIFO:
+ case S_IFSOCK:
+ btail = au_dbtail(dentry);
+ inode->i_op = &aufs_iop;
+ au_init_special_fop(inode, mode, h_inode->i_rdev);
+ break;
+ default:
+ AuIOErr("Unknown file type 0%o\n", mode);
+ err = -EIO;
+ goto out;
+ }
+
+ /* do not set hnotify for whiteouted dirs (SHWH mode) */
+ flags = au_hi_flags(inode, isdir);
+ if (au_opt_test(au_mntflags(dentry->d_sb), SHWH)
+ && au_ftest_hi(flags, HNOTIFY)
+ && dentry->d_name.len > AUFS_WH_PFX_LEN
+ && !memcmp(dentry->d_name.name, AUFS_WH_PFX, AUFS_WH_PFX_LEN))
+ au_fclr_hi(flags, HNOTIFY);
+ iinfo = au_ii(inode);
+ iinfo->ii_bstart = bstart;
+ iinfo->ii_bend = btail;
+ for (bindex = bstart; bindex <= btail; bindex++) {
+ h_dentry = au_h_dptr(dentry, bindex);
+ if (h_dentry)
+ au_set_h_iptr(inode, bindex,
+ au_igrab(h_dentry->d_inode), flags);
+ }
+ au_cpup_attr_all(inode, /*force*/1);
+
+ out:
+ return err;
+}
+
+/* successful returns with iinfo write_locked */
+static int reval_inode(struct inode *inode, struct dentry *dentry, int *matched)
+{
+ int err;
+ aufs_bindex_t bindex, bend;
+ struct inode *h_inode, *h_dinode;
+
+ *matched = 0;
+
+ /*
+ * before this function, if aufs got any iinfo lock, it must be only
+ * one, the parent dir.
+ * it can happen by UDBA and the obsoleted inode number.
+ */
+ err = -EIO;
+ if (unlikely(inode->i_ino == parent_ino(dentry)))
+ goto out;
+
+ err = 0;
+ ii_write_lock_new_child(inode);
+ h_dinode = au_h_dptr(dentry, au_dbstart(dentry))->d_inode;
+ bend = au_ibend(inode);
+ for (bindex = au_ibstart(inode); bindex <= bend; bindex++) {
+ h_inode = au_h_iptr(inode, bindex);
+ if (h_inode && h_inode == h_dinode) {
+ *matched = 1;
+ err = 0;
+ if (au_iigen(inode) != au_digen(dentry))
+ err = au_refresh_hinode(inode, dentry);
+ break;
+ }
+ }
+
+ if (unlikely(err))
+ ii_write_unlock(inode);
+ out:
+ return err;
+}
+
+int au_ino(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+ unsigned int d_type, ino_t *ino)
+{
+ int err;
+ struct mutex *mtx;
+ const int isdir = (d_type == DT_DIR);
+
+ /* prevent hardlinks from race condition */
+ mtx = NULL;
+ if (!isdir) {
+ mtx = &au_sbr(sb, bindex)->br_xino.xi_nondir_mtx;
+ mutex_lock(mtx);
+ }
+ err = au_xino_read(sb, bindex, h_ino, ino);
+ if (unlikely(err))
+ goto out;
+
+ if (!*ino) {
+ err = -EIO;
+ *ino = au_xino_new_ino(sb);
+ if (unlikely(!*ino))
+ goto out;
+ err = au_xino_write(sb, bindex, h_ino, *ino);
+ if (unlikely(err))
+ goto out;
+ }
+
+ out:
+ if (!isdir)
+ mutex_unlock(mtx);
+ return err;
+}
+
+/* successful returns with iinfo write_locked */
+/* todo: return with unlocked? */
+struct inode *au_new_inode(struct dentry *dentry, int must_new)
+{
+ struct inode *inode;
+ struct dentry *h_dentry;
+ struct super_block *sb;
+ ino_t h_ino, ino;
+ int err, match;
+ aufs_bindex_t bstart;
+
+ sb = dentry->d_sb;
+ bstart = au_dbstart(dentry);
+ h_dentry = au_h_dptr(dentry, bstart);
+ h_ino = h_dentry->d_inode->i_ino;
+ err = au_xino_read(sb, bstart, h_ino, &ino);
+ inode = ERR_PTR(err);
+ if (unlikely(err))
+ goto out;
+ new_ino:
+ if (!ino) {
+ ino = au_xino_new_ino(sb);
+ if (unlikely(!ino)) {
+ inode = ERR_PTR(-EIO);
+ goto out;
+ }
+ }
+
+ AuDbg("i%lu\n", (unsigned long)ino);
+ inode = au_iget_locked(sb, ino);
+ err = PTR_ERR(inode);
+ if (IS_ERR(inode))
+ goto out;
+
+ AuDbg("%lx, new %d\n", inode->i_state, !!(inode->i_state & I_NEW));
+ if (inode->i_state & I_NEW) {
+ ii_write_lock_new_child(inode);
+ err = set_inode(inode, dentry);
+ if (!err) {
+ unlock_new_inode(inode);
+ goto out; /* success */
+ }
+
+ ii_write_unlock(inode);
+ iget_failed(inode);
+ goto out_err;
+ } else if (!must_new) {
+ err = reval_inode(inode, dentry, &match);
+ if (!err)
+ goto out; /* success */
+ else if (match)
+ goto out_iput;
+ }
+
+ if (unlikely(au_test_fs_unique_ino(h_dentry->d_inode)))
+ AuWarn1("Warning: Un-notified UDBA or repeatedly renamed dir,"
+ " b%d, %s, %.*s, hi%lu, i%lu.\n",
+ bstart, au_sbtype(h_dentry->d_sb), AuDLNPair(dentry),
+ (unsigned long)h_ino, (unsigned long)ino);
+ ino = 0;
+ err = au_xino_write(sb, bstart, h_ino, /*ino*/0);
+ if (!err) {
+ iput(inode);
+ goto new_ino;
+ }
+
+ out_iput:
+ iput(inode);
+ out_err:
+ inode = ERR_PTR(err);
+ out:
+ return inode;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_test_ro(struct super_block *sb, aufs_bindex_t bindex,
+ struct inode *inode)
+{
+ int err;
+
+ err = au_br_rdonly(au_sbr(sb, bindex));
+
+ /* pseudo-link after flushed may happen out of bounds */
+ if (!err
+ && inode
+ && au_ibstart(inode) <= bindex
+ && bindex <= au_ibend(inode)) {
+ /*
+ * permission check is unnecessary since vfsub routine
+ * will be called later
+ */
+ struct inode *hi = au_h_iptr(inode, bindex);
+ if (hi)
+ err = IS_IMMUTABLE(hi) ? -EROFS : 0;
+ }
+
+ return err;
+}
+
+int au_test_h_perm(struct inode *h_inode, int mask)
+{
+ if (!current_fsuid())
+ return 0;
+ return inode_permission(h_inode, mask);
+}
+
+int au_test_h_perm_sio(struct inode *h_inode, int mask)
+{
+ if (au_test_nfs(h_inode->i_sb)
+ && (mask & MAY_WRITE)
+ && S_ISDIR(h_inode->i_mode))
+ mask |= MAY_READ; /* force permission check */
+ return au_test_h_perm(h_inode, mask);
+}
diff --git a/ubuntu/aufs/inode.h b/ubuntu/aufs/inode.h
new file mode 100644
index 00000000000..93d8c0f990f
--- /dev/null
+++ b/ubuntu/aufs/inode.h
@@ -0,0 +1,498 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * inode operations
+ */
+
+#ifndef __AUFS_INODE_H__
+#define __AUFS_INODE_H__
+
+#ifdef __KERNEL__
+
+#include <linux/fs.h>
+#include <linux/fsnotify.h>
+#include <linux/aufs_type.h>
+#include "rwsem.h"
+
+struct vfsmount;
+
+struct au_hnotify {
+#ifdef CONFIG_AUFS_HNOTIFY
+#ifdef CONFIG_AUFS_HFSNOTIFY
+ struct fsnotify_mark_entry hn_entry;
+#else
+ struct inotify_watch hn_watch;
+#endif
+ struct inode *hn_aufs_inode; /* no get/put */
+#endif
+} ____cacheline_aligned_in_smp;
+
+struct au_hinode {
+ struct inode *hi_inode;
+ aufs_bindex_t hi_id;
+#ifdef CONFIG_AUFS_HNOTIFY
+ struct au_hnotify *hi_notify;
+#endif
+
+ /* reference to the copied-up whiteout with get/put */
+ struct dentry *hi_whdentry;
+};
+
+struct au_vdir;
+struct au_iinfo {
+ atomic_t ii_generation;
+ struct super_block *ii_hsb1; /* no get/put */
+
+ struct au_rwsem ii_rwsem;
+ aufs_bindex_t ii_bstart, ii_bend;
+ __u32 ii_higen;
+ struct au_hinode *ii_hinode;
+ struct au_vdir *ii_vdir;
+};
+
+struct au_icntnr {
+ struct au_iinfo iinfo;
+ struct inode vfs_inode;
+} ____cacheline_aligned_in_smp;
+
+/* au_pin flags */
+#define AuPin_DI_LOCKED 1
+#define AuPin_MNT_WRITE (1 << 1)
+#define au_ftest_pin(flags, name) ((flags) & AuPin_##name)
+#define au_fset_pin(flags, name) { (flags) |= AuPin_##name; }
+#define au_fclr_pin(flags, name) { (flags) &= ~AuPin_##name; }
+
+struct au_pin {
+ /* input */
+ struct dentry *dentry;
+ unsigned int udba;
+ unsigned char lsc_di, lsc_hi, flags;
+ aufs_bindex_t bindex;
+
+ /* output */
+ struct dentry *parent;
+ struct au_hinode *hdir;
+ struct vfsmount *h_mnt;
+};
+
+/* ---------------------------------------------------------------------- */
+
+static inline struct au_iinfo *au_ii(struct inode *inode)
+{
+ struct au_iinfo *iinfo;
+
+ iinfo = &(container_of(inode, struct au_icntnr, vfs_inode)->iinfo);
+ if (iinfo->ii_hinode)
+ return iinfo;
+ return NULL; /* debugging bad_inode case */
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* inode.c */
+struct inode *au_igrab(struct inode *inode);
+int au_refresh_hinode_self(struct inode *inode, int do_attr);
+int au_refresh_hinode(struct inode *inode, struct dentry *dentry);
+int au_ino(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+ unsigned int d_type, ino_t *ino);
+struct inode *au_new_inode(struct dentry *dentry, int must_new);
+int au_test_ro(struct super_block *sb, aufs_bindex_t bindex,
+ struct inode *inode);
+int au_test_h_perm(struct inode *h_inode, int mask);
+int au_test_h_perm_sio(struct inode *h_inode, int mask);
+
+static inline int au_wh_ino(struct super_block *sb, aufs_bindex_t bindex,
+ ino_t h_ino, unsigned int d_type, ino_t *ino)
+{
+#ifdef CONFIG_AUFS_SHWH
+ return au_ino(sb, bindex, h_ino, d_type, ino);
+#else
+ return 0;
+#endif
+}
+
+/* i_op.c */
+extern struct inode_operations aufs_iop, aufs_symlink_iop, aufs_dir_iop;
+
+/* au_wr_dir flags */
+#define AuWrDir_ADD_ENTRY 1
+#define AuWrDir_ISDIR (1 << 1)
+#define au_ftest_wrdir(flags, name) ((flags) & AuWrDir_##name)
+#define au_fset_wrdir(flags, name) { (flags) |= AuWrDir_##name; }
+#define au_fclr_wrdir(flags, name) { (flags) &= ~AuWrDir_##name; }
+
+struct au_wr_dir_args {
+ aufs_bindex_t force_btgt;
+ unsigned char flags;
+};
+int au_wr_dir(struct dentry *dentry, struct dentry *src_dentry,
+ struct au_wr_dir_args *args);
+
+struct dentry *au_pinned_h_parent(struct au_pin *pin);
+void au_pin_init(struct au_pin *pin, struct dentry *dentry,
+ aufs_bindex_t bindex, int lsc_di, int lsc_hi,
+ unsigned int udba, unsigned char flags);
+int au_pin(struct au_pin *pin, struct dentry *dentry, aufs_bindex_t bindex,
+ unsigned int udba, unsigned char flags) __must_check;
+int au_do_pin(struct au_pin *pin) __must_check;
+void au_unpin(struct au_pin *pin);
+
+/* i_op_add.c */
+int au_may_add(struct dentry *dentry, aufs_bindex_t bindex,
+ struct dentry *h_parent, int isdir);
+int aufs_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev);
+int aufs_symlink(struct inode *dir, struct dentry *dentry, const char *symname);
+int aufs_create(struct inode *dir, struct dentry *dentry, int mode,
+ struct nameidata *nd);
+int aufs_link(struct dentry *src_dentry, struct inode *dir,
+ struct dentry *dentry);
+int aufs_mkdir(struct inode *dir, struct dentry *dentry, int mode);
+
+/* i_op_del.c */
+int au_wr_dir_need_wh(struct dentry *dentry, int isdir, aufs_bindex_t *bcpup);
+int au_may_del(struct dentry *dentry, aufs_bindex_t bindex,
+ struct dentry *h_parent, int isdir);
+int aufs_unlink(struct inode *dir, struct dentry *dentry);
+int aufs_rmdir(struct inode *dir, struct dentry *dentry);
+
+/* i_op_ren.c */
+int au_wbr(struct dentry *dentry, aufs_bindex_t btgt);
+int aufs_rename(struct inode *src_dir, struct dentry *src_dentry,
+ struct inode *dir, struct dentry *dentry);
+
+/* iinfo.c */
+struct inode *au_h_iptr(struct inode *inode, aufs_bindex_t bindex);
+void au_hiput(struct au_hinode *hinode);
+void au_set_hi_wh(struct inode *inode, aufs_bindex_t bindex,
+ struct dentry *h_wh);
+unsigned int au_hi_flags(struct inode *inode, int isdir);
+
+/* hinode flags */
+#define AuHi_XINO 1
+#define AuHi_HNOTIFY (1 << 1)
+#define au_ftest_hi(flags, name) ((flags) & AuHi_##name)
+#define au_fset_hi(flags, name) { (flags) |= AuHi_##name; }
+#define au_fclr_hi(flags, name) { (flags) &= ~AuHi_##name; }
+
+#ifndef CONFIG_AUFS_HNOTIFY
+#undef AuHi_HNOTIFY
+#define AuHi_HNOTIFY 0
+#endif
+
+void au_set_h_iptr(struct inode *inode, aufs_bindex_t bindex,
+ struct inode *h_inode, unsigned int flags);
+
+void au_update_iigen(struct inode *inode);
+void au_update_ibrange(struct inode *inode, int do_put_zero);
+
+void au_icntnr_init_once(void *_c);
+int au_iinfo_init(struct inode *inode);
+void au_iinfo_fin(struct inode *inode);
+int au_ii_realloc(struct au_iinfo *iinfo, int nbr);
+
+/* plink.c */
+void au_plink_maint_block(struct super_block *sb);
+void au_plink_maint_leave(struct file *file);
+#ifdef CONFIG_AUFS_DEBUG
+void au_plink_list(struct super_block *sb);
+#else
+AuStubVoid(au_plink_list, struct super_block *sb)
+#endif
+int au_plink_test(struct inode *inode);
+struct dentry *au_plink_lkup(struct inode *inode, aufs_bindex_t bindex);
+void au_plink_append(struct inode *inode, aufs_bindex_t bindex,
+ struct dentry *h_dentry);
+void au_plink_put(struct super_block *sb);
+void au_plink_half_refresh(struct super_block *sb, aufs_bindex_t br_id);
+long au_plink_ioctl(struct file *file, unsigned int cmd);
+
+/* ---------------------------------------------------------------------- */
+
+/* lock subclass for iinfo */
+enum {
+ AuLsc_II_CHILD, /* child first */
+ AuLsc_II_CHILD2, /* rename(2), link(2), and cpup at hnotify */
+ AuLsc_II_CHILD3, /* copyup dirs */
+ AuLsc_II_PARENT, /* see AuLsc_I_PARENT in vfsub.h */
+ AuLsc_II_PARENT2,
+ AuLsc_II_PARENT3, /* copyup dirs */
+ AuLsc_II_NEW_CHILD
+};
+
+/*
+ * ii_read_lock_child, ii_write_lock_child,
+ * ii_read_lock_child2, ii_write_lock_child2,
+ * ii_read_lock_child3, ii_write_lock_child3,
+ * ii_read_lock_parent, ii_write_lock_parent,
+ * ii_read_lock_parent2, ii_write_lock_parent2,
+ * ii_read_lock_parent3, ii_write_lock_parent3,
+ * ii_read_lock_new_child, ii_write_lock_new_child,
+ */
+#define AuReadLockFunc(name, lsc) \
+static inline void ii_read_lock_##name(struct inode *i) \
+{ \
+ au_rw_read_lock_nested(&au_ii(i)->ii_rwsem, AuLsc_II_##lsc); \
+}
+
+#define AuWriteLockFunc(name, lsc) \
+static inline void ii_write_lock_##name(struct inode *i) \
+{ \
+ au_rw_write_lock_nested(&au_ii(i)->ii_rwsem, AuLsc_II_##lsc); \
+}
+
+#define AuRWLockFuncs(name, lsc) \
+ AuReadLockFunc(name, lsc) \
+ AuWriteLockFunc(name, lsc)
+
+AuRWLockFuncs(child, CHILD);
+AuRWLockFuncs(child2, CHILD2);
+AuRWLockFuncs(child3, CHILD3);
+AuRWLockFuncs(parent, PARENT);
+AuRWLockFuncs(parent2, PARENT2);
+AuRWLockFuncs(parent3, PARENT3);
+AuRWLockFuncs(new_child, NEW_CHILD);
+
+#undef AuReadLockFunc
+#undef AuWriteLockFunc
+#undef AuRWLockFuncs
+
+/*
+ * ii_read_unlock, ii_write_unlock, ii_downgrade_lock
+ */
+AuSimpleUnlockRwsemFuncs(ii, struct inode *i, &au_ii(i)->ii_rwsem);
+
+#define IiMustNoWaiters(i) AuRwMustNoWaiters(&au_ii(i)->ii_rwsem)
+#define IiMustAnyLock(i) AuRwMustAnyLock(&au_ii(i)->ii_rwsem)
+#define IiMustWriteLock(i) AuRwMustWriteLock(&au_ii(i)->ii_rwsem)
+
+/* ---------------------------------------------------------------------- */
+
+static inline unsigned int au_iigen(struct inode *inode)
+{
+ return atomic_read(&au_ii(inode)->ii_generation);
+}
+
+/* tiny test for inode number */
+/* tmpfs generation is too rough */
+static inline int au_test_higen(struct inode *inode, struct inode *h_inode)
+{
+ struct au_iinfo *iinfo;
+
+ iinfo = au_ii(inode);
+ AuRwMustAnyLock(&iinfo->ii_rwsem);
+ return !(iinfo->ii_hsb1 == h_inode->i_sb
+ && iinfo->ii_higen == h_inode->i_generation);
+}
+
+static inline void au_iigen_dec(struct inode *inode)
+{
+#ifdef CONFIG_AUFS_HNOTIFY
+ atomic_dec_return(&au_ii(inode)->ii_generation);
+#endif
+}
+
+/* ---------------------------------------------------------------------- */
+
+static inline aufs_bindex_t au_ii_br_id(struct inode *inode,
+ aufs_bindex_t bindex)
+{
+ IiMustAnyLock(inode);
+ return au_ii(inode)->ii_hinode[0 + bindex].hi_id;
+}
+
+static inline aufs_bindex_t au_ibstart(struct inode *inode)
+{
+ IiMustAnyLock(inode);
+ return au_ii(inode)->ii_bstart;
+}
+
+static inline aufs_bindex_t au_ibend(struct inode *inode)
+{
+ IiMustAnyLock(inode);
+ return au_ii(inode)->ii_bend;
+}
+
+static inline struct au_vdir *au_ivdir(struct inode *inode)
+{
+ IiMustAnyLock(inode);
+ return au_ii(inode)->ii_vdir;
+}
+
+static inline struct dentry *au_hi_wh(struct inode *inode, aufs_bindex_t bindex)
+{
+ IiMustAnyLock(inode);
+ return au_ii(inode)->ii_hinode[0 + bindex].hi_whdentry;
+}
+
+static inline void au_set_ibstart(struct inode *inode, aufs_bindex_t bindex)
+{
+ IiMustWriteLock(inode);
+ au_ii(inode)->ii_bstart = bindex;
+}
+
+static inline void au_set_ibend(struct inode *inode, aufs_bindex_t bindex)
+{
+ IiMustWriteLock(inode);
+ au_ii(inode)->ii_bend = bindex;
+}
+
+static inline void au_set_ivdir(struct inode *inode, struct au_vdir *vdir)
+{
+ IiMustWriteLock(inode);
+ au_ii(inode)->ii_vdir = vdir;
+}
+
+static inline struct au_hinode *au_hi(struct inode *inode, aufs_bindex_t bindex)
+{
+ IiMustAnyLock(inode);
+ return au_ii(inode)->ii_hinode + bindex;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static inline struct dentry *au_pinned_parent(struct au_pin *pin)
+{
+ if (pin)
+ return pin->parent;
+ return NULL;
+}
+
+static inline struct inode *au_pinned_h_dir(struct au_pin *pin)
+{
+ if (pin && pin->hdir)
+ return pin->hdir->hi_inode;
+ return NULL;
+}
+
+static inline struct au_hinode *au_pinned_hdir(struct au_pin *pin)
+{
+ if (pin)
+ return pin->hdir;
+ return NULL;
+}
+
+static inline void au_pin_set_dentry(struct au_pin *pin, struct dentry *dentry)
+{
+ if (pin)
+ pin->dentry = dentry;
+}
+
+static inline void au_pin_set_parent_lflag(struct au_pin *pin,
+ unsigned char lflag)
+{
+ if (pin) {
+ /* dirty macros require brackets */
+ if (lflag) {
+ au_fset_pin(pin->flags, DI_LOCKED);
+ } else {
+ au_fclr_pin(pin->flags, DI_LOCKED);
+ }
+ }
+}
+
+static inline void au_pin_set_parent(struct au_pin *pin, struct dentry *parent)
+{
+ if (pin) {
+ dput(pin->parent);
+ pin->parent = dget(parent);
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef CONFIG_AUFS_HNOTIFY
+struct au_hnotify_op {
+ void (*ctl)(struct au_hinode *hinode, int do_set);
+ int (*alloc)(struct au_hnotify *hn, struct inode *h_inode);
+ void (*free)(struct au_hnotify *hn);
+
+ void (*fin)(void);
+ int (*init)(void);
+};
+
+/* hnotify.c */
+int au_hn_alloc(struct au_hinode *hinode, struct inode *inode,
+ struct inode *h_inode);
+void au_hn_free(struct au_hinode *hinode);
+void au_hn_ctl(struct au_hinode *hinode, int do_set);
+void au_hn_reset(struct inode *inode, unsigned int flags);
+int au_hnotify(struct inode *h_dir, struct au_hnotify *hnotify, u32 mask,
+ struct qstr *h_child_qstr, struct inode *h_child_inode);
+int __init au_hnotify_init(void);
+void au_hnotify_fin(void);
+
+/* hinotify.c */
+extern const struct au_hnotify_op au_hnotify_op;
+
+static inline
+void au_hn_init(struct au_hinode *hinode)
+{
+ hinode->hi_notify = NULL;
+}
+
+#else
+static inline
+int au_hn_alloc(struct au_hinode *hinode __maybe_unused,
+ struct inode *inode __maybe_unused,
+ struct inode *h_inode __maybe_unused)
+{
+ return -EOPNOTSUPP;
+}
+
+AuStubVoid(au_hn_free, struct au_hinode *hinode __maybe_unused)
+AuStubVoid(au_hn_ctl, struct au_hinode *hinode __maybe_unused,
+ int do_set __maybe_unused)
+AuStubVoid(au_hn_reset, struct inode *inode __maybe_unused,
+ unsigned int flags __maybe_unused)
+AuStubInt0(__init au_hnotify_init, void)
+AuStubVoid(au_hnotify_fin, void)
+AuStubVoid(au_hn_init, struct au_hinode *hinode __maybe_unused)
+#endif /* CONFIG_AUFS_HNOTIFY */
+
+static inline void au_hn_suspend(struct au_hinode *hdir)
+{
+ au_hn_ctl(hdir, /*do_set*/0);
+}
+
+static inline void au_hn_resume(struct au_hinode *hdir)
+{
+ au_hn_ctl(hdir, /*do_set*/1);
+}
+
+static inline void au_hn_imtx_lock(struct au_hinode *hdir)
+{
+ mutex_lock(&hdir->hi_inode->i_mutex);
+ au_hn_suspend(hdir);
+}
+
+static inline void au_hn_imtx_lock_nested(struct au_hinode *hdir,
+ unsigned int sc __maybe_unused)
+{
+ mutex_lock_nested(&hdir->hi_inode->i_mutex, sc);
+ au_hn_suspend(hdir);
+}
+
+static inline void au_hn_imtx_unlock(struct au_hinode *hdir)
+{
+ au_hn_resume(hdir);
+ mutex_unlock(&hdir->hi_inode->i_mutex);
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_INODE_H__ */
diff --git a/ubuntu/aufs/ioctl.c b/ubuntu/aufs/ioctl.c
new file mode 100644
index 00000000000..a87b5783684
--- /dev/null
+++ b/ubuntu/aufs/ioctl.c
@@ -0,0 +1,126 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * ioctl
+ * plink-management and readdir in userspace.
+ * assist the pathconf(3) wrapper library.
+ */
+
+#include <linux/file.h>
+#include "aufs.h"
+
+static int au_wbr_fd(struct path *path)
+{
+ int err, fd;
+ aufs_bindex_t wbi, bindex, bend;
+ struct file *h_file;
+ struct super_block *sb;
+ struct dentry *root;
+ struct au_branch *wbr;
+
+ err = get_unused_fd();
+ if (unlikely(err < 0))
+ goto out;
+ fd = err;
+
+ wbi = 0;
+ sb = path->dentry->d_sb;
+ root = sb->s_root;
+ aufs_read_lock(root, AuLock_IR);
+ wbr = au_sbr(sb, wbi);
+ if (!(path->mnt->mnt_flags & MNT_READONLY)
+ && !au_br_writable(wbr->br_perm)) {
+ bend = au_sbend(sb);
+ for (bindex = 1; bindex <= bend; bindex++) {
+ wbr = au_sbr(sb, bindex);
+ if (au_br_writable(wbr->br_perm)) {
+ wbi = bindex;
+ break;
+ }
+ }
+ wbr = au_sbr(sb, wbi);
+ }
+ AuDbg("wbi %d\n", wbi);
+ h_file = au_h_open(root, wbi, O_RDONLY | O_DIRECTORY | O_LARGEFILE,
+ NULL);
+ aufs_read_unlock(root, AuLock_IR);
+ err = PTR_ERR(h_file);
+ if (IS_ERR(h_file))
+ goto out_fd;
+
+ atomic_dec(&wbr->br_count); /* cf. au_h_open() */
+ fd_install(fd, h_file);
+ err = fd;
+ goto out; /* success */
+
+ out_fd:
+ put_unused_fd(fd);
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+long aufs_ioctl_dir(struct file *file, unsigned int cmd, unsigned long arg)
+{
+ long err;
+
+ switch (cmd) {
+ case AUFS_CTL_PLINK_MAINT:
+ case AUFS_CTL_PLINK_CLEAN:
+ err = au_plink_ioctl(file, cmd);
+ break;
+
+ case AUFS_CTL_RDU:
+ case AUFS_CTL_RDU_INO:
+ err = au_rdu_ioctl(file, cmd, arg);
+ break;
+
+ case AUFS_CTL_WBR_FD:
+ err = au_wbr_fd(&file->f_path);
+ break;
+
+ default:
+ /* do not call the lower */
+ AuDbg("0x%x\n", cmd);
+ err = -ENOTTY;
+ }
+
+ AuTraceErr(err);
+ return err;
+}
+
+long aufs_ioctl_nondir(struct file *file, unsigned int cmd, unsigned long arg)
+{
+ long err;
+
+ switch (cmd) {
+ case AUFS_CTL_WBR_FD:
+ err = au_wbr_fd(&file->f_path);
+ break;
+
+ default:
+ /* do not call the lower */
+ AuDbg("0x%x\n", cmd);
+ err = -ENOTTY;
+ }
+
+ AuTraceErr(err);
+ return err;
+}
diff --git a/ubuntu/aufs/loop.c b/ubuntu/aufs/loop.c
new file mode 100644
index 00000000000..506193f8ca0
--- /dev/null
+++ b/ubuntu/aufs/loop.c
@@ -0,0 +1,55 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * support for loopback block device as a branch
+ */
+
+#include <linux/loop.h>
+#include "aufs.h"
+
+/*
+ * test if two lower dentries have overlapping branches.
+ */
+int au_test_loopback_overlap(struct super_block *sb, struct dentry *h_d1,
+ struct dentry *h_d2)
+{
+ struct inode *h_inode;
+ struct loop_device *l;
+
+ h_inode = h_d1->d_inode;
+ if (MAJOR(h_inode->i_sb->s_dev) != LOOP_MAJOR)
+ return 0;
+
+ l = h_inode->i_sb->s_bdev->bd_disk->private_data;
+ h_d1 = l->lo_backing_file->f_dentry;
+ /* h_d1 can be local NFS. in this case aufs cannot detect the loop */
+ if (unlikely(h_d1->d_sb == sb))
+ return 1;
+ return au_test_subdir(h_d1, h_d2);
+}
+
+/* true if a kernel thread named 'loop[0-9].*' accesses a file */
+int au_test_loopback_kthread(void)
+{
+ const char c = current->comm[4];
+
+ return current->mm == NULL
+ && '0' <= c && c <= '9'
+ && strncmp(current->comm, "loop", 4) == 0;
+}
diff --git a/ubuntu/aufs/loop.h b/ubuntu/aufs/loop.h
new file mode 100644
index 00000000000..e655b4f1ba6
--- /dev/null
+++ b/ubuntu/aufs/loop.h
@@ -0,0 +1,43 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * support for loopback mount as a branch
+ */
+
+#ifndef __AUFS_LOOP_H__
+#define __AUFS_LOOP_H__
+
+#ifdef __KERNEL__
+
+struct dentry;
+struct super_block;
+
+#ifdef CONFIG_AUFS_BDEV_LOOP
+/* loop.c */
+int au_test_loopback_overlap(struct super_block *sb, struct dentry *h_d1,
+ struct dentry *h_d2);
+int au_test_loopback_kthread(void);
+#else
+AuStubInt0(au_test_loopback_overlap, struct super_block *sb,
+ struct dentry *h_d1, struct dentry *h_d2)
+AuStubInt0(au_test_loopback_kthread, void)
+#endif /* BLK_DEV_LOOP */
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_LOOP_H__ */
diff --git a/ubuntu/aufs/magic.mk b/ubuntu/aufs/magic.mk
new file mode 100644
index 00000000000..3e6387b01b4
--- /dev/null
+++ b/ubuntu/aufs/magic.mk
@@ -0,0 +1,54 @@
+
+# defined in ${srctree}/fs/fuse/inode.c
+# tristate
+ifdef CONFIG_FUSE_FS
+ccflags-y += -DFUSE_SUPER_MAGIC=0x65735546
+endif
+
+# defined in ${srctree}/fs/ocfs2/ocfs2_fs.h
+# tristate
+ifdef CONFIG_OCFS2_FS
+ccflags-y += -DOCFS2_SUPER_MAGIC=0x7461636f
+endif
+
+# defined in ${srctree}/fs/ocfs2/dlm/userdlm.h
+# tristate
+ifdef CONFIG_OCFS2_FS_O2CB
+ccflags-y += -DDLMFS_MAGIC=0x76a9f425
+endif
+
+# defined in ${srctree}/fs/cifs/cifsfs.c
+# tristate
+ifdef CONFIG_CIFS_FS
+ccflags-y += -DCIFS_MAGIC_NUMBER=0xFF534D42
+endif
+
+# defined in ${srctree}/fs/xfs/xfs_sb.h
+# tristate
+ifdef CONFIG_XFS_FS
+ccflags-y += -DXFS_SB_MAGIC=0x58465342
+endif
+
+# defined in ${srctree}/fs/configfs/mount.c
+# tristate
+ifdef CONFIG_CONFIGFS_FS
+ccflags-y += -DCONFIGFS_MAGIC=0x62656570
+endif
+
+# defined in ${srctree}/fs/9p/v9fs.h
+# tristate
+ifdef CONFIG_9P_FS
+ccflags-y += -DV9FS_MAGIC=0x01021997
+endif
+
+# defined in ${srctree}/fs/ubifs/ubifs.h
+# tristate
+ifdef CONFIG_UBIFS_FS
+ccflags-y += -DUBIFS_SUPER_MAGIC=0x24051905
+endif
+
+# defined in ${srctree}/fs/hfsplus/hfsplus_raw.h
+# tristate
+ifdef CONFIG_HFSPLUS_FS
+ccflags-y += -DHFSPLUS_SUPER_MAGIC=0x482b
+endif
diff --git a/ubuntu/aufs/module.c b/ubuntu/aufs/module.c
new file mode 100644
index 00000000000..03ea4efb367
--- /dev/null
+++ b/ubuntu/aufs/module.c
@@ -0,0 +1,171 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * module global variables and operations
+ */
+
+#include <linux/module.h>
+#include <linux/seq_file.h>
+#include "aufs.h"
+
+void *au_kzrealloc(void *p, unsigned int nused, unsigned int new_sz, gfp_t gfp)
+{
+ if (new_sz <= nused)
+ return p;
+
+ p = krealloc(p, new_sz, gfp);
+ if (p)
+ memset(p + nused, 0, new_sz - nused);
+ return p;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * aufs caches
+ */
+struct kmem_cache *au_cachep[AuCache_Last];
+static int __init au_cache_init(void)
+{
+ au_cachep[AuCache_DINFO] = AuCacheCtor(au_dinfo, au_di_init_once);
+ if (au_cachep[AuCache_DINFO])
+ au_cachep[AuCache_ICNTNR] = AuCacheCtor(au_icntnr,
+ au_icntnr_init_once);
+ if (au_cachep[AuCache_ICNTNR])
+ au_cachep[AuCache_FINFO] = AuCacheCtor(au_finfo,
+ au_fi_init_once);
+ if (au_cachep[AuCache_FINFO])
+ au_cachep[AuCache_VDIR] = AuCache(au_vdir);
+ if (au_cachep[AuCache_VDIR])
+ au_cachep[AuCache_DEHSTR] = AuCache(au_vdir_dehstr);
+ if (au_cachep[AuCache_DEHSTR])
+ return 0;
+
+ return -ENOMEM;
+}
+
+static void au_cache_fin(void)
+{
+ int i;
+
+ /* including AuCache_HNOTIFY */
+ for (i = 0; i < AuCache_Last; i++)
+ if (au_cachep[i]) {
+ kmem_cache_destroy(au_cachep[i]);
+ au_cachep[i] = NULL;
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_dir_roflags;
+
+/*
+ * functions for module interface.
+ */
+MODULE_LICENSE("GPL");
+/* MODULE_LICENSE("GPL v2"); */
+MODULE_AUTHOR("Junjiro R. Okajima <aufs-users@lists.sourceforge.net>");
+MODULE_DESCRIPTION(AUFS_NAME
+ " -- Advanced multi layered unification filesystem");
+MODULE_VERSION(AUFS_VERSION);
+
+/* this module parameter has no meaning when SYSFS is disabled */
+int sysaufs_brs = 1;
+MODULE_PARM_DESC(brs, "use <sysfs>/fs/aufs/si_*/brN");
+module_param_named(brs, sysaufs_brs, int, S_IRUGO);
+
+/* ---------------------------------------------------------------------- */
+
+static char au_esc_chars[0x20 + 3]; /* 0x01-0x20, backslash, del, and NULL */
+
+int au_seq_path(struct seq_file *seq, struct path *path)
+{
+ return seq_path(seq, path, au_esc_chars);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int __init aufs_init(void)
+{
+ int err, i;
+ char *p;
+
+ p = au_esc_chars;
+ for (i = 1; i <= ' '; i++)
+ *p++ = i;
+ *p++ = '\\';
+ *p++ = '\x7f';
+ *p = 0;
+
+ au_dir_roflags = au_file_roflags(O_DIRECTORY | O_LARGEFILE);
+
+ sysaufs_brs_init();
+ au_debug_init();
+ au_dy_init();
+ err = sysaufs_init();
+ if (unlikely(err))
+ goto out;
+ err = au_wkq_init();
+ if (unlikely(err))
+ goto out_sysaufs;
+ err = au_hnotify_init();
+ if (unlikely(err))
+ goto out_wkq;
+ err = au_sysrq_init();
+ if (unlikely(err))
+ goto out_hin;
+ err = au_cache_init();
+ if (unlikely(err))
+ goto out_sysrq;
+ err = register_filesystem(&aufs_fs_type);
+ if (unlikely(err))
+ goto out_cache;
+ /* since we define pr_fmt, call printk directly */
+ printk(KERN_INFO AUFS_NAME " " AUFS_VERSION "\n");
+ goto out; /* success */
+
+ out_cache:
+ au_cache_fin();
+ out_sysrq:
+ au_sysrq_fin();
+ out_hin:
+ au_hnotify_fin();
+ out_wkq:
+ au_wkq_fin();
+ out_sysaufs:
+ sysaufs_fin();
+ au_dy_fin();
+ out:
+ return err;
+}
+
+static void __exit aufs_exit(void)
+{
+ unregister_filesystem(&aufs_fs_type);
+ au_cache_fin();
+ au_sysrq_fin();
+ au_hnotify_fin();
+ au_wkq_fin();
+ sysaufs_fin();
+ au_dy_fin();
+}
+
+module_init(aufs_init);
+module_exit(aufs_exit);
diff --git a/ubuntu/aufs/module.h b/ubuntu/aufs/module.h
new file mode 100644
index 00000000000..2f4eaf0b927
--- /dev/null
+++ b/ubuntu/aufs/module.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * module initialization and module-global
+ */
+
+#ifndef __AUFS_MODULE_H__
+#define __AUFS_MODULE_H__
+
+#ifdef __KERNEL__
+
+#include <linux/slab.h>
+
+struct path;
+struct seq_file;
+
+/* module parameters */
+extern int sysaufs_brs;
+
+/* ---------------------------------------------------------------------- */
+
+extern int au_dir_roflags;
+
+void *au_kzrealloc(void *p, unsigned int nused, unsigned int new_sz, gfp_t gfp);
+int au_seq_path(struct seq_file *seq, struct path *path);
+
+/* ---------------------------------------------------------------------- */
+
+/* kmem cache */
+enum {
+ AuCache_DINFO,
+ AuCache_ICNTNR,
+ AuCache_FINFO,
+ AuCache_VDIR,
+ AuCache_DEHSTR,
+#ifdef CONFIG_AUFS_HNOTIFY
+ AuCache_HNOTIFY,
+#endif
+ AuCache_Last
+};
+
+#define AuCacheFlags (SLAB_RECLAIM_ACCOUNT | SLAB_MEM_SPREAD)
+#define AuCache(type) KMEM_CACHE(type, AuCacheFlags)
+#define AuCacheCtor(type, ctor) \
+ kmem_cache_create(#type, sizeof(struct type), \
+ __alignof__(struct type), AuCacheFlags, ctor)
+
+extern struct kmem_cache *au_cachep[];
+
+#define AuCacheFuncs(name, index) \
+static inline struct au_##name *au_cache_alloc_##name(void) \
+{ return kmem_cache_alloc(au_cachep[AuCache_##index], GFP_NOFS); } \
+static inline void au_cache_free_##name(struct au_##name *p) \
+{ kmem_cache_free(au_cachep[AuCache_##index], p); }
+
+AuCacheFuncs(dinfo, DINFO);
+AuCacheFuncs(icntnr, ICNTNR);
+AuCacheFuncs(finfo, FINFO);
+AuCacheFuncs(vdir, VDIR);
+AuCacheFuncs(vdir_dehstr, DEHSTR);
+#ifdef CONFIG_AUFS_HNOTIFY
+AuCacheFuncs(hnotify, HNOTIFY);
+#endif
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_MODULE_H__ */
diff --git a/ubuntu/aufs/mtx.h b/ubuntu/aufs/mtx.h
new file mode 100644
index 00000000000..1b7e6f0a345
--- /dev/null
+++ b/ubuntu/aufs/mtx.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * very ugly approach for aufs_mmap()
+ * never include this file from other than f_op.c.
+ * see f_op.c in detail.
+ */
+
+#ifndef __AUFS_MTX_H__
+#define __AUFS_MTX_H__
+
+#ifdef __KERNEL__
+
+/* copied from ../kernel/mutex{,-debug}.h */
+struct mutex;
+struct thread_info;
+#ifdef CONFIG_DEBUG_MUTEXES
+static inline void mutex_set_owner(struct mutex *lock)
+{
+ lock->owner = current_thread_info();
+}
+#else
+static inline void mutex_set_owner(struct mutex *lock)
+{
+#ifdef CONFIG_SMP
+ lock->owner = current_thread_info();
+#endif
+}
+#endif
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_MTX_H__ */
diff --git a/ubuntu/aufs/opts.c b/ubuntu/aufs/opts.c
new file mode 100644
index 00000000000..7431fc24e8e
--- /dev/null
+++ b/ubuntu/aufs/opts.c
@@ -0,0 +1,1585 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * mount options/flags
+ */
+
+#include <linux/file.h>
+#include <linux/namei.h>
+#include <linux/types.h> /* a distribution requires */
+#include <linux/parser.h>
+#include "aufs.h"
+
+/* ---------------------------------------------------------------------- */
+
+enum {
+ Opt_br,
+ Opt_add, Opt_del, Opt_mod, Opt_reorder, Opt_append, Opt_prepend,
+ Opt_idel, Opt_imod, Opt_ireorder,
+ Opt_dirwh, Opt_rdcache, Opt_rdblk, Opt_rdhash, Opt_rendir,
+ Opt_rdblk_def, Opt_rdhash_def,
+ Opt_xino, Opt_zxino, Opt_noxino,
+ Opt_trunc_xino, Opt_trunc_xino_v, Opt_notrunc_xino,
+ Opt_trunc_xino_path, Opt_itrunc_xino,
+ Opt_trunc_xib, Opt_notrunc_xib,
+ Opt_shwh, Opt_noshwh,
+ Opt_plink, Opt_noplink, Opt_list_plink,
+ Opt_udba,
+ Opt_dio, Opt_nodio,
+ /* Opt_lock, Opt_unlock, */
+ Opt_cmd, Opt_cmd_args,
+ Opt_diropq_a, Opt_diropq_w,
+ Opt_warn_perm, Opt_nowarn_perm,
+ Opt_wbr_copyup, Opt_wbr_create,
+ Opt_refrof, Opt_norefrof,
+ Opt_verbose, Opt_noverbose,
+ Opt_sum, Opt_nosum, Opt_wsum,
+ Opt_tail, Opt_ignore, Opt_ignore_silent, Opt_err
+};
+
+static match_table_t options = {
+ {Opt_br, "br=%s"},
+ {Opt_br, "br:%s"},
+
+ {Opt_add, "add=%d:%s"},
+ {Opt_add, "add:%d:%s"},
+ {Opt_add, "ins=%d:%s"},
+ {Opt_add, "ins:%d:%s"},
+ {Opt_append, "append=%s"},
+ {Opt_append, "append:%s"},
+ {Opt_prepend, "prepend=%s"},
+ {Opt_prepend, "prepend:%s"},
+
+ {Opt_del, "del=%s"},
+ {Opt_del, "del:%s"},
+ /* {Opt_idel, "idel:%d"}, */
+ {Opt_mod, "mod=%s"},
+ {Opt_mod, "mod:%s"},
+ /* {Opt_imod, "imod:%d:%s"}, */
+
+ {Opt_dirwh, "dirwh=%d"},
+
+ {Opt_xino, "xino=%s"},
+ {Opt_noxino, "noxino"},
+ {Opt_trunc_xino, "trunc_xino"},
+ {Opt_trunc_xino_v, "trunc_xino_v=%d:%d"},
+ {Opt_notrunc_xino, "notrunc_xino"},
+ {Opt_trunc_xino_path, "trunc_xino=%s"},
+ {Opt_itrunc_xino, "itrunc_xino=%d"},
+ /* {Opt_zxino, "zxino=%s"}, */
+ {Opt_trunc_xib, "trunc_xib"},
+ {Opt_notrunc_xib, "notrunc_xib"},
+
+ {Opt_plink, "plink"},
+ {Opt_noplink, "noplink"},
+#ifdef CONFIG_AUFS_DEBUG
+ {Opt_list_plink, "list_plink"},
+#endif
+
+ {Opt_udba, "udba=%s"},
+
+ {Opt_dio, "dio"},
+ {Opt_nodio, "nodio"},
+
+ {Opt_diropq_a, "diropq=always"},
+ {Opt_diropq_a, "diropq=a"},
+ {Opt_diropq_w, "diropq=whiteouted"},
+ {Opt_diropq_w, "diropq=w"},
+
+ {Opt_warn_perm, "warn_perm"},
+ {Opt_nowarn_perm, "nowarn_perm"},
+
+ /* keep them temporary */
+ {Opt_ignore_silent, "coo=%s"},
+ {Opt_ignore_silent, "nodlgt"},
+ {Opt_ignore_silent, "nodirperm1"},
+ {Opt_ignore_silent, "clean_plink"},
+
+#ifdef CONFIG_AUFS_SHWH
+ {Opt_shwh, "shwh"},
+#endif
+ {Opt_noshwh, "noshwh"},
+
+ {Opt_rendir, "rendir=%d"},
+
+ {Opt_refrof, "refrof"},
+ {Opt_norefrof, "norefrof"},
+
+ {Opt_verbose, "verbose"},
+ {Opt_verbose, "v"},
+ {Opt_noverbose, "noverbose"},
+ {Opt_noverbose, "quiet"},
+ {Opt_noverbose, "q"},
+ {Opt_noverbose, "silent"},
+
+ {Opt_sum, "sum"},
+ {Opt_nosum, "nosum"},
+ {Opt_wsum, "wsum"},
+
+ {Opt_rdcache, "rdcache=%d"},
+ {Opt_rdblk, "rdblk=%d"},
+ {Opt_rdblk_def, "rdblk=def"},
+ {Opt_rdhash, "rdhash=%d"},
+ {Opt_rdhash_def, "rdhash=def"},
+
+ {Opt_wbr_create, "create=%s"},
+ {Opt_wbr_create, "create_policy=%s"},
+ {Opt_wbr_copyup, "cpup=%s"},
+ {Opt_wbr_copyup, "copyup=%s"},
+ {Opt_wbr_copyup, "copyup_policy=%s"},
+
+ /* internal use for the scripts */
+ {Opt_ignore_silent, "si=%s"},
+
+ {Opt_br, "dirs=%s"},
+ {Opt_ignore, "debug=%d"},
+ {Opt_ignore, "delete=whiteout"},
+ {Opt_ignore, "delete=all"},
+ {Opt_ignore, "imap=%s"},
+
+ /* temporary workaround, due to old mount(8)? */
+ {Opt_ignore_silent, "relatime"},
+
+ {Opt_err, NULL}
+};
+
+/* ---------------------------------------------------------------------- */
+
+static const char *au_parser_pattern(int val, struct match_token *token)
+{
+ while (token->pattern) {
+ if (token->token == val)
+ return token->pattern;
+ token++;
+ }
+ BUG();
+ return "??";
+}
+
+/* ---------------------------------------------------------------------- */
+
+static match_table_t brperms = {
+ {AuBrPerm_RO, AUFS_BRPERM_RO},
+ {AuBrPerm_RR, AUFS_BRPERM_RR},
+ {AuBrPerm_RW, AUFS_BRPERM_RW},
+
+ {AuBrPerm_ROWH, AUFS_BRPERM_ROWH},
+ {AuBrPerm_RRWH, AUFS_BRPERM_RRWH},
+ {AuBrPerm_RWNoLinkWH, AUFS_BRPERM_RWNLWH},
+
+ {AuBrPerm_ROWH, "nfsro"},
+ {AuBrPerm_RO, NULL}
+};
+
+static int noinline_for_stack br_perm_val(char *perm)
+{
+ int val;
+ substring_t args[MAX_OPT_ARGS];
+
+ val = match_token(perm, brperms, args);
+ return val;
+}
+
+const char *au_optstr_br_perm(int brperm)
+{
+ return au_parser_pattern(brperm, (void *)brperms);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static match_table_t udbalevel = {
+ {AuOpt_UDBA_REVAL, "reval"},
+ {AuOpt_UDBA_NONE, "none"},
+#ifdef CONFIG_AUFS_HNOTIFY
+ {AuOpt_UDBA_HNOTIFY, "notify"}, /* abstraction */
+#ifdef CONFIG_AUFS_HFSNOTIFY
+ {AuOpt_UDBA_HNOTIFY, "fsnotify"},
+#else
+ {AuOpt_UDBA_HNOTIFY, "inotify"},
+#endif
+#endif
+ {-1, NULL}
+};
+
+static void au_warn_inotify(int val, char *str)
+{
+#ifdef CONFIG_AUFS_HINOTIFY
+ if (val == AuOpt_UDBA_HNOTIFY
+ && !strcmp(str, "inotify"))
+ AuWarn1("udba=inotify is deprecated, use udba=notify\n");
+#endif
+}
+
+static int noinline_for_stack udba_val(char *str)
+{
+ int val;
+ substring_t args[MAX_OPT_ARGS];
+
+ val = match_token(str, udbalevel, args);
+ au_warn_inotify(val, str);
+ return val;
+}
+
+const char *au_optstr_udba(int udba)
+{
+ return au_parser_pattern(udba, (void *)udbalevel);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static match_table_t au_wbr_create_policy = {
+ {AuWbrCreate_TDP, "tdp"},
+ {AuWbrCreate_TDP, "top-down-parent"},
+ {AuWbrCreate_RR, "rr"},
+ {AuWbrCreate_RR, "round-robin"},
+ {AuWbrCreate_MFS, "mfs"},
+ {AuWbrCreate_MFS, "most-free-space"},
+ {AuWbrCreate_MFSV, "mfs:%d"},
+ {AuWbrCreate_MFSV, "most-free-space:%d"},
+
+ {AuWbrCreate_MFSRR, "mfsrr:%d"},
+ {AuWbrCreate_MFSRRV, "mfsrr:%d:%d"},
+ {AuWbrCreate_PMFS, "pmfs"},
+ {AuWbrCreate_PMFSV, "pmfs:%d"},
+
+ {-1, NULL}
+};
+
+/*
+ * cf. linux/lib/parser.c and cmdline.c
+ * gave up calling memparse() since it uses simple_strtoull() instead of
+ * strict_...().
+ */
+static int noinline_for_stack
+au_match_ull(substring_t *s, unsigned long long *result)
+{
+ int err;
+ unsigned int len;
+ char a[32];
+
+ err = -ERANGE;
+ len = s->to - s->from;
+ if (len + 1 <= sizeof(a)) {
+ memcpy(a, s->from, len);
+ a[len] = '\0';
+ err = strict_strtoull(a, 0, result);
+ }
+ return err;
+}
+
+static int au_wbr_mfs_wmark(substring_t *arg, char *str,
+ struct au_opt_wbr_create *create)
+{
+ int err;
+ unsigned long long ull;
+
+ err = 0;
+ if (!au_match_ull(arg, &ull))
+ create->mfsrr_watermark = ull;
+ else {
+ pr_err("bad integer in %s\n", str);
+ err = -EINVAL;
+ }
+
+ return err;
+}
+
+static int au_wbr_mfs_sec(substring_t *arg, char *str,
+ struct au_opt_wbr_create *create)
+{
+ int n, err;
+
+ err = 0;
+ if (!match_int(arg, &n) && 0 <= n)
+ create->mfs_second = n;
+ else {
+ pr_err("bad integer in %s\n", str);
+ err = -EINVAL;
+ }
+
+ return err;
+}
+
+static int noinline_for_stack
+au_wbr_create_val(char *str, struct au_opt_wbr_create *create)
+{
+ int err, e;
+ substring_t args[MAX_OPT_ARGS];
+
+ err = match_token(str, au_wbr_create_policy, args);
+ create->wbr_create = err;
+ switch (err) {
+ case AuWbrCreate_MFSRRV:
+ e = au_wbr_mfs_wmark(&args[0], str, create);
+ if (!e)
+ e = au_wbr_mfs_sec(&args[1], str, create);
+ if (unlikely(e))
+ err = e;
+ break;
+ case AuWbrCreate_MFSRR:
+ e = au_wbr_mfs_wmark(&args[0], str, create);
+ if (unlikely(e)) {
+ err = e;
+ break;
+ }
+ /*FALLTHROUGH*/
+ case AuWbrCreate_MFS:
+ case AuWbrCreate_PMFS:
+ create->mfs_second = AUFS_MFS_SECOND_DEF;
+ break;
+ case AuWbrCreate_MFSV:
+ case AuWbrCreate_PMFSV:
+ e = au_wbr_mfs_sec(&args[0], str, create);
+ if (unlikely(e))
+ err = e;
+ break;
+ }
+
+ return err;
+}
+
+const char *au_optstr_wbr_create(int wbr_create)
+{
+ return au_parser_pattern(wbr_create, (void *)au_wbr_create_policy);
+}
+
+static match_table_t au_wbr_copyup_policy = {
+ {AuWbrCopyup_TDP, "tdp"},
+ {AuWbrCopyup_TDP, "top-down-parent"},
+ {AuWbrCopyup_BUP, "bup"},
+ {AuWbrCopyup_BUP, "bottom-up-parent"},
+ {AuWbrCopyup_BU, "bu"},
+ {AuWbrCopyup_BU, "bottom-up"},
+ {-1, NULL}
+};
+
+static int noinline_for_stack au_wbr_copyup_val(char *str)
+{
+ substring_t args[MAX_OPT_ARGS];
+
+ return match_token(str, au_wbr_copyup_policy, args);
+}
+
+const char *au_optstr_wbr_copyup(int wbr_copyup)
+{
+ return au_parser_pattern(wbr_copyup, (void *)au_wbr_copyup_policy);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static const int lkup_dirflags = LOOKUP_FOLLOW | LOOKUP_DIRECTORY;
+
+static void dump_opts(struct au_opts *opts)
+{
+#ifdef CONFIG_AUFS_DEBUG
+ /* reduce stack space */
+ union {
+ struct au_opt_add *add;
+ struct au_opt_del *del;
+ struct au_opt_mod *mod;
+ struct au_opt_xino *xino;
+ struct au_opt_xino_itrunc *xino_itrunc;
+ struct au_opt_wbr_create *create;
+ } u;
+ struct au_opt *opt;
+
+ opt = opts->opt;
+ while (opt->type != Opt_tail) {
+ switch (opt->type) {
+ case Opt_add:
+ u.add = &opt->add;
+ AuDbg("add {b%d, %s, 0x%x, %p}\n",
+ u.add->bindex, u.add->pathname, u.add->perm,
+ u.add->path.dentry);
+ break;
+ case Opt_del:
+ case Opt_idel:
+ u.del = &opt->del;
+ AuDbg("del {%s, %p}\n",
+ u.del->pathname, u.del->h_path.dentry);
+ break;
+ case Opt_mod:
+ case Opt_imod:
+ u.mod = &opt->mod;
+ AuDbg("mod {%s, 0x%x, %p}\n",
+ u.mod->path, u.mod->perm, u.mod->h_root);
+ break;
+ case Opt_append:
+ u.add = &opt->add;
+ AuDbg("append {b%d, %s, 0x%x, %p}\n",
+ u.add->bindex, u.add->pathname, u.add->perm,
+ u.add->path.dentry);
+ break;
+ case Opt_prepend:
+ u.add = &opt->add;
+ AuDbg("prepend {b%d, %s, 0x%x, %p}\n",
+ u.add->bindex, u.add->pathname, u.add->perm,
+ u.add->path.dentry);
+ break;
+ case Opt_dirwh:
+ AuDbg("dirwh %d\n", opt->dirwh);
+ break;
+ case Opt_rdcache:
+ AuDbg("rdcache %d\n", opt->rdcache);
+ break;
+ case Opt_rdblk:
+ AuDbg("rdblk %u\n", opt->rdblk);
+ break;
+ case Opt_rdblk_def:
+ AuDbg("rdblk_def\n");
+ break;
+ case Opt_rdhash:
+ AuDbg("rdhash %u\n", opt->rdhash);
+ break;
+ case Opt_rdhash_def:
+ AuDbg("rdhash_def\n");
+ break;
+ case Opt_xino:
+ u.xino = &opt->xino;
+ AuDbg("xino {%s %.*s}\n",
+ u.xino->path,
+ AuDLNPair(u.xino->file->f_dentry));
+ break;
+ case Opt_trunc_xino:
+ AuLabel(trunc_xino);
+ break;
+ case Opt_notrunc_xino:
+ AuLabel(notrunc_xino);
+ break;
+ case Opt_trunc_xino_path:
+ case Opt_itrunc_xino:
+ u.xino_itrunc = &opt->xino_itrunc;
+ AuDbg("trunc_xino %d\n", u.xino_itrunc->bindex);
+ break;
+
+ case Opt_noxino:
+ AuLabel(noxino);
+ break;
+ case Opt_trunc_xib:
+ AuLabel(trunc_xib);
+ break;
+ case Opt_notrunc_xib:
+ AuLabel(notrunc_xib);
+ break;
+ case Opt_shwh:
+ AuLabel(shwh);
+ break;
+ case Opt_noshwh:
+ AuLabel(noshwh);
+ break;
+ case Opt_plink:
+ AuLabel(plink);
+ break;
+ case Opt_noplink:
+ AuLabel(noplink);
+ break;
+ case Opt_list_plink:
+ AuLabel(list_plink);
+ break;
+ case Opt_udba:
+ AuDbg("udba %d, %s\n",
+ opt->udba, au_optstr_udba(opt->udba));
+ break;
+ case Opt_dio:
+ AuLabel(dio);
+ break;
+ case Opt_nodio:
+ AuLabel(nodio);
+ break;
+ case Opt_diropq_a:
+ AuLabel(diropq_a);
+ break;
+ case Opt_diropq_w:
+ AuLabel(diropq_w);
+ break;
+ case Opt_warn_perm:
+ AuLabel(warn_perm);
+ break;
+ case Opt_nowarn_perm:
+ AuLabel(nowarn_perm);
+ break;
+ case Opt_refrof:
+ AuLabel(refrof);
+ break;
+ case Opt_norefrof:
+ AuLabel(norefrof);
+ break;
+ case Opt_verbose:
+ AuLabel(verbose);
+ break;
+ case Opt_noverbose:
+ AuLabel(noverbose);
+ break;
+ case Opt_sum:
+ AuLabel(sum);
+ break;
+ case Opt_nosum:
+ AuLabel(nosum);
+ break;
+ case Opt_wsum:
+ AuLabel(wsum);
+ break;
+ case Opt_wbr_create:
+ u.create = &opt->wbr_create;
+ AuDbg("create %d, %s\n", u.create->wbr_create,
+ au_optstr_wbr_create(u.create->wbr_create));
+ switch (u.create->wbr_create) {
+ case AuWbrCreate_MFSV:
+ case AuWbrCreate_PMFSV:
+ AuDbg("%d sec\n", u.create->mfs_second);
+ break;
+ case AuWbrCreate_MFSRR:
+ AuDbg("%llu watermark\n",
+ u.create->mfsrr_watermark);
+ break;
+ case AuWbrCreate_MFSRRV:
+ AuDbg("%llu watermark, %d sec\n",
+ u.create->mfsrr_watermark,
+ u.create->mfs_second);
+ break;
+ }
+ break;
+ case Opt_wbr_copyup:
+ AuDbg("copyup %d, %s\n", opt->wbr_copyup,
+ au_optstr_wbr_copyup(opt->wbr_copyup));
+ break;
+ default:
+ BUG();
+ }
+ opt++;
+ }
+#endif
+}
+
+void au_opts_free(struct au_opts *opts)
+{
+ struct au_opt *opt;
+
+ opt = opts->opt;
+ while (opt->type != Opt_tail) {
+ switch (opt->type) {
+ case Opt_add:
+ case Opt_append:
+ case Opt_prepend:
+ path_put(&opt->add.path);
+ break;
+ case Opt_del:
+ case Opt_idel:
+ path_put(&opt->del.h_path);
+ break;
+ case Opt_mod:
+ case Opt_imod:
+ dput(opt->mod.h_root);
+ break;
+ case Opt_xino:
+ fput(opt->xino.file);
+ break;
+ }
+ opt++;
+ }
+}
+
+static int opt_add(struct au_opt *opt, char *opt_str, unsigned long sb_flags,
+ aufs_bindex_t bindex)
+{
+ int err;
+ struct au_opt_add *add = &opt->add;
+ char *p;
+
+ add->bindex = bindex;
+ add->perm = AuBrPerm_Last;
+ add->pathname = opt_str;
+ p = strchr(opt_str, '=');
+ if (p) {
+ *p++ = 0;
+ if (*p)
+ add->perm = br_perm_val(p);
+ }
+
+ err = vfsub_kern_path(add->pathname, lkup_dirflags, &add->path);
+ if (!err) {
+ if (!p) {
+ add->perm = AuBrPerm_RO;
+ if (au_test_fs_rr(add->path.dentry->d_sb))
+ add->perm = AuBrPerm_RR;
+ else if (!bindex && !(sb_flags & MS_RDONLY))
+ add->perm = AuBrPerm_RW;
+ }
+ opt->type = Opt_add;
+ goto out;
+ }
+ pr_err("lookup failed %s (%d)\n", add->pathname, err);
+ err = -EINVAL;
+
+ out:
+ return err;
+}
+
+static int au_opts_parse_del(struct au_opt_del *del, substring_t args[])
+{
+ int err;
+
+ del->pathname = args[0].from;
+ AuDbg("del path %s\n", del->pathname);
+
+ err = vfsub_kern_path(del->pathname, lkup_dirflags, &del->h_path);
+ if (unlikely(err))
+ pr_err("lookup failed %s (%d)\n", del->pathname, err);
+
+ return err;
+}
+
+#if 0 /* reserved for future use */
+static int au_opts_parse_idel(struct super_block *sb, aufs_bindex_t bindex,
+ struct au_opt_del *del, substring_t args[])
+{
+ int err;
+ struct dentry *root;
+
+ err = -EINVAL;
+ root = sb->s_root;
+ aufs_read_lock(root, AuLock_FLUSH);
+ if (bindex < 0 || au_sbend(sb) < bindex) {
+ pr_err("out of bounds, %d\n", bindex);
+ goto out;
+ }
+
+ err = 0;
+ del->h_path.dentry = dget(au_h_dptr(root, bindex));
+ del->h_path.mnt = mntget(au_sbr_mnt(sb, bindex));
+
+ out:
+ aufs_read_unlock(root, !AuLock_IR);
+ return err;
+}
+#endif
+
+static int noinline_for_stack
+au_opts_parse_mod(struct au_opt_mod *mod, substring_t args[])
+{
+ int err;
+ struct path path;
+ char *p;
+
+ err = -EINVAL;
+ mod->path = args[0].from;
+ p = strchr(mod->path, '=');
+ if (unlikely(!p)) {
+ pr_err("no permssion %s\n", args[0].from);
+ goto out;
+ }
+
+ *p++ = 0;
+ err = vfsub_kern_path(mod->path, lkup_dirflags, &path);
+ if (unlikely(err)) {
+ pr_err("lookup failed %s (%d)\n", mod->path, err);
+ goto out;
+ }
+
+ mod->perm = br_perm_val(p);
+ AuDbg("mod path %s, perm 0x%x, %s\n", mod->path, mod->perm, p);
+ mod->h_root = dget(path.dentry);
+ path_put(&path);
+
+ out:
+ return err;
+}
+
+#if 0 /* reserved for future use */
+static int au_opts_parse_imod(struct super_block *sb, aufs_bindex_t bindex,
+ struct au_opt_mod *mod, substring_t args[])
+{
+ int err;
+ struct dentry *root;
+
+ err = -EINVAL;
+ root = sb->s_root;
+ aufs_read_lock(root, AuLock_FLUSH);
+ if (bindex < 0 || au_sbend(sb) < bindex) {
+ pr_err("out of bounds, %d\n", bindex);
+ goto out;
+ }
+
+ err = 0;
+ mod->perm = br_perm_val(args[1].from);
+ AuDbg("mod path %s, perm 0x%x, %s\n",
+ mod->path, mod->perm, args[1].from);
+ mod->h_root = dget(au_h_dptr(root, bindex));
+
+ out:
+ aufs_read_unlock(root, !AuLock_IR);
+ return err;
+}
+#endif
+
+static int au_opts_parse_xino(struct super_block *sb, struct au_opt_xino *xino,
+ substring_t args[])
+{
+ int err;
+ struct file *file;
+
+ file = au_xino_create(sb, args[0].from, /*silent*/0);
+ err = PTR_ERR(file);
+ if (IS_ERR(file))
+ goto out;
+
+ err = -EINVAL;
+ if (unlikely(file->f_dentry->d_sb == sb)) {
+ fput(file);
+ pr_err("%s must be outside\n", args[0].from);
+ goto out;
+ }
+
+ err = 0;
+ xino->file = file;
+ xino->path = args[0].from;
+
+ out:
+ return err;
+}
+
+static int noinline_for_stack
+au_opts_parse_xino_itrunc_path(struct super_block *sb,
+ struct au_opt_xino_itrunc *xino_itrunc,
+ substring_t args[])
+{
+ int err;
+ aufs_bindex_t bend, bindex;
+ struct path path;
+ struct dentry *root;
+
+ err = vfsub_kern_path(args[0].from, lkup_dirflags, &path);
+ if (unlikely(err)) {
+ pr_err("lookup failed %s (%d)\n", args[0].from, err);
+ goto out;
+ }
+
+ xino_itrunc->bindex = -1;
+ root = sb->s_root;
+ aufs_read_lock(root, AuLock_FLUSH);
+ bend = au_sbend(sb);
+ for (bindex = 0; bindex <= bend; bindex++) {
+ if (au_h_dptr(root, bindex) == path.dentry) {
+ xino_itrunc->bindex = bindex;
+ break;
+ }
+ }
+ aufs_read_unlock(root, !AuLock_IR);
+ path_put(&path);
+
+ if (unlikely(xino_itrunc->bindex < 0)) {
+ pr_err("no such branch %s\n", args[0].from);
+ err = -EINVAL;
+ }
+
+ out:
+ return err;
+}
+
+/* called without aufs lock */
+int au_opts_parse(struct super_block *sb, char *str, struct au_opts *opts)
+{
+ int err, n, token;
+ aufs_bindex_t bindex;
+ unsigned char skipped;
+ struct dentry *root;
+ struct au_opt *opt, *opt_tail;
+ char *opt_str;
+ /* reduce the stack space */
+ union {
+ struct au_opt_xino_itrunc *xino_itrunc;
+ struct au_opt_wbr_create *create;
+ } u;
+ struct {
+ substring_t args[MAX_OPT_ARGS];
+ } *a;
+
+ err = -ENOMEM;
+ a = kmalloc(sizeof(*a), GFP_NOFS);
+ if (unlikely(!a))
+ goto out;
+
+ root = sb->s_root;
+ err = 0;
+ bindex = 0;
+ opt = opts->opt;
+ opt_tail = opt + opts->max_opt - 1;
+ opt->type = Opt_tail;
+ while (!err && (opt_str = strsep(&str, ",")) && *opt_str) {
+ err = -EINVAL;
+ skipped = 0;
+ token = match_token(opt_str, options, a->args);
+ switch (token) {
+ case Opt_br:
+ err = 0;
+ while (!err && (opt_str = strsep(&a->args[0].from, ":"))
+ && *opt_str) {
+ err = opt_add(opt, opt_str, opts->sb_flags,
+ bindex++);
+ if (unlikely(!err && ++opt > opt_tail)) {
+ err = -E2BIG;
+ break;
+ }
+ opt->type = Opt_tail;
+ skipped = 1;
+ }
+ break;
+ case Opt_add:
+ if (unlikely(match_int(&a->args[0], &n))) {
+ pr_err("bad integer in %s\n", opt_str);
+ break;
+ }
+ bindex = n;
+ err = opt_add(opt, a->args[1].from, opts->sb_flags,
+ bindex);
+ if (!err)
+ opt->type = token;
+ break;
+ case Opt_append:
+ err = opt_add(opt, a->args[0].from, opts->sb_flags,
+ /*dummy bindex*/1);
+ if (!err)
+ opt->type = token;
+ break;
+ case Opt_prepend:
+ err = opt_add(opt, a->args[0].from, opts->sb_flags,
+ /*bindex*/0);
+ if (!err)
+ opt->type = token;
+ break;
+ case Opt_del:
+ err = au_opts_parse_del(&opt->del, a->args);
+ if (!err)
+ opt->type = token;
+ break;
+#if 0 /* reserved for future use */
+ case Opt_idel:
+ del->pathname = "(indexed)";
+ if (unlikely(match_int(&args[0], &n))) {
+ pr_err("bad integer in %s\n", opt_str);
+ break;
+ }
+ err = au_opts_parse_idel(sb, n, &opt->del, a->args);
+ if (!err)
+ opt->type = token;
+ break;
+#endif
+ case Opt_mod:
+ err = au_opts_parse_mod(&opt->mod, a->args);
+ if (!err)
+ opt->type = token;
+ break;
+#ifdef IMOD /* reserved for future use */
+ case Opt_imod:
+ u.mod->path = "(indexed)";
+ if (unlikely(match_int(&a->args[0], &n))) {
+ pr_err("bad integer in %s\n", opt_str);
+ break;
+ }
+ err = au_opts_parse_imod(sb, n, &opt->mod, a->args);
+ if (!err)
+ opt->type = token;
+ break;
+#endif
+ case Opt_xino:
+ err = au_opts_parse_xino(sb, &opt->xino, a->args);
+ if (!err)
+ opt->type = token;
+ break;
+
+ case Opt_trunc_xino_path:
+ err = au_opts_parse_xino_itrunc_path
+ (sb, &opt->xino_itrunc, a->args);
+ if (!err)
+ opt->type = token;
+ break;
+
+ case Opt_itrunc_xino:
+ u.xino_itrunc = &opt->xino_itrunc;
+ if (unlikely(match_int(&a->args[0], &n))) {
+ pr_err("bad integer in %s\n", opt_str);
+ break;
+ }
+ u.xino_itrunc->bindex = n;
+ aufs_read_lock(root, AuLock_FLUSH);
+ if (n < 0 || au_sbend(sb) < n) {
+ pr_err("out of bounds, %d\n", n);
+ aufs_read_unlock(root, !AuLock_IR);
+ break;
+ }
+ aufs_read_unlock(root, !AuLock_IR);
+ err = 0;
+ opt->type = token;
+ break;
+
+ case Opt_dirwh:
+ if (unlikely(match_int(&a->args[0], &opt->dirwh)))
+ break;
+ err = 0;
+ opt->type = token;
+ break;
+
+ case Opt_rdcache:
+ if (unlikely(match_int(&a->args[0], &opt->rdcache)))
+ break;
+ err = 0;
+ opt->type = token;
+ break;
+ case Opt_rdblk:
+ if (unlikely(match_int(&a->args[0], &n)
+ || n < 0
+ || n > KMALLOC_MAX_SIZE)) {
+ pr_err("bad integer in %s\n", opt_str);
+ break;
+ }
+ if (unlikely(n && n < NAME_MAX)) {
+ pr_err("rdblk must be larger than %d\n",
+ NAME_MAX);
+ break;
+ }
+ opt->rdblk = n;
+ err = 0;
+ opt->type = token;
+ break;
+ case Opt_rdhash:
+ if (unlikely(match_int(&a->args[0], &n)
+ || n < 0
+ || n * sizeof(struct hlist_head)
+ > KMALLOC_MAX_SIZE)) {
+ pr_err("bad integer in %s\n", opt_str);
+ break;
+ }
+ opt->rdhash = n;
+ err = 0;
+ opt->type = token;
+ break;
+
+ case Opt_trunc_xino:
+ case Opt_notrunc_xino:
+ case Opt_noxino:
+ case Opt_trunc_xib:
+ case Opt_notrunc_xib:
+ case Opt_shwh:
+ case Opt_noshwh:
+ case Opt_plink:
+ case Opt_noplink:
+ case Opt_list_plink:
+ case Opt_dio:
+ case Opt_nodio:
+ case Opt_diropq_a:
+ case Opt_diropq_w:
+ case Opt_warn_perm:
+ case Opt_nowarn_perm:
+ case Opt_refrof:
+ case Opt_norefrof:
+ case Opt_verbose:
+ case Opt_noverbose:
+ case Opt_sum:
+ case Opt_nosum:
+ case Opt_wsum:
+ case Opt_rdblk_def:
+ case Opt_rdhash_def:
+ err = 0;
+ opt->type = token;
+ break;
+
+ case Opt_udba:
+ opt->udba = udba_val(a->args[0].from);
+ if (opt->udba >= 0) {
+ err = 0;
+ opt->type = token;
+ } else
+ pr_err("wrong value, %s\n", opt_str);
+ break;
+
+ case Opt_wbr_create:
+ u.create = &opt->wbr_create;
+ u.create->wbr_create
+ = au_wbr_create_val(a->args[0].from, u.create);
+ if (u.create->wbr_create >= 0) {
+ err = 0;
+ opt->type = token;
+ } else
+ pr_err("wrong value, %s\n", opt_str);
+ break;
+ case Opt_wbr_copyup:
+ opt->wbr_copyup = au_wbr_copyup_val(a->args[0].from);
+ if (opt->wbr_copyup >= 0) {
+ err = 0;
+ opt->type = token;
+ } else
+ pr_err("wrong value, %s\n", opt_str);
+ break;
+
+ case Opt_ignore:
+ pr_warning("ignored %s\n", opt_str);
+ /*FALLTHROUGH*/
+ case Opt_ignore_silent:
+ skipped = 1;
+ err = 0;
+ break;
+ case Opt_err:
+ pr_err("unknown option %s\n", opt_str);
+ break;
+ }
+
+ if (!err && !skipped) {
+ if (unlikely(++opt > opt_tail)) {
+ err = -E2BIG;
+ opt--;
+ opt->type = Opt_tail;
+ break;
+ }
+ opt->type = Opt_tail;
+ }
+ }
+
+ kfree(a);
+ dump_opts(opts);
+ if (unlikely(err))
+ au_opts_free(opts);
+
+ out:
+ return err;
+}
+
+static int au_opt_wbr_create(struct super_block *sb,
+ struct au_opt_wbr_create *create)
+{
+ int err;
+ struct au_sbinfo *sbinfo;
+
+ SiMustWriteLock(sb);
+
+ err = 1; /* handled */
+ sbinfo = au_sbi(sb);
+ if (sbinfo->si_wbr_create_ops->fin) {
+ err = sbinfo->si_wbr_create_ops->fin(sb);
+ if (!err)
+ err = 1;
+ }
+
+ sbinfo->si_wbr_create = create->wbr_create;
+ sbinfo->si_wbr_create_ops = au_wbr_create_ops + create->wbr_create;
+ switch (create->wbr_create) {
+ case AuWbrCreate_MFSRRV:
+ case AuWbrCreate_MFSRR:
+ sbinfo->si_wbr_mfs.mfsrr_watermark = create->mfsrr_watermark;
+ /*FALLTHROUGH*/
+ case AuWbrCreate_MFS:
+ case AuWbrCreate_MFSV:
+ case AuWbrCreate_PMFS:
+ case AuWbrCreate_PMFSV:
+ sbinfo->si_wbr_mfs.mfs_expire = create->mfs_second * HZ;
+ break;
+ }
+
+ if (sbinfo->si_wbr_create_ops->init)
+ sbinfo->si_wbr_create_ops->init(sb); /* ignore */
+
+ return err;
+}
+
+/*
+ * returns,
+ * plus: processed without an error
+ * zero: unprocessed
+ */
+static int au_opt_simple(struct super_block *sb, struct au_opt *opt,
+ struct au_opts *opts)
+{
+ int err;
+ struct au_sbinfo *sbinfo;
+
+ SiMustWriteLock(sb);
+
+ err = 1; /* handled */
+ sbinfo = au_sbi(sb);
+ switch (opt->type) {
+ case Opt_udba:
+ sbinfo->si_mntflags &= ~AuOptMask_UDBA;
+ sbinfo->si_mntflags |= opt->udba;
+ opts->given_udba |= opt->udba;
+ break;
+
+ case Opt_plink:
+ au_opt_set(sbinfo->si_mntflags, PLINK);
+ break;
+ case Opt_noplink:
+ if (au_opt_test(sbinfo->si_mntflags, PLINK))
+ au_plink_put(sb);
+ au_opt_clr(sbinfo->si_mntflags, PLINK);
+ break;
+ case Opt_list_plink:
+ if (au_opt_test(sbinfo->si_mntflags, PLINK))
+ au_plink_list(sb);
+ break;
+
+ case Opt_dio:
+ au_opt_set(sbinfo->si_mntflags, DIO);
+ au_fset_opts(opts->flags, REFRESH_DYAOP);
+ break;
+ case Opt_nodio:
+ au_opt_clr(sbinfo->si_mntflags, DIO);
+ au_fset_opts(opts->flags, REFRESH_DYAOP);
+ break;
+
+ case Opt_diropq_a:
+ au_opt_set(sbinfo->si_mntflags, ALWAYS_DIROPQ);
+ break;
+ case Opt_diropq_w:
+ au_opt_clr(sbinfo->si_mntflags, ALWAYS_DIROPQ);
+ break;
+
+ case Opt_warn_perm:
+ au_opt_set(sbinfo->si_mntflags, WARN_PERM);
+ break;
+ case Opt_nowarn_perm:
+ au_opt_clr(sbinfo->si_mntflags, WARN_PERM);
+ break;
+
+ case Opt_refrof:
+ au_opt_set(sbinfo->si_mntflags, REFROF);
+ break;
+ case Opt_norefrof:
+ au_opt_clr(sbinfo->si_mntflags, REFROF);
+ break;
+
+ case Opt_verbose:
+ au_opt_set(sbinfo->si_mntflags, VERBOSE);
+ break;
+ case Opt_noverbose:
+ au_opt_clr(sbinfo->si_mntflags, VERBOSE);
+ break;
+
+ case Opt_sum:
+ au_opt_set(sbinfo->si_mntflags, SUM);
+ break;
+ case Opt_wsum:
+ au_opt_clr(sbinfo->si_mntflags, SUM);
+ au_opt_set(sbinfo->si_mntflags, SUM_W);
+ case Opt_nosum:
+ au_opt_clr(sbinfo->si_mntflags, SUM);
+ au_opt_clr(sbinfo->si_mntflags, SUM_W);
+ break;
+
+ case Opt_wbr_create:
+ err = au_opt_wbr_create(sb, &opt->wbr_create);
+ break;
+ case Opt_wbr_copyup:
+ sbinfo->si_wbr_copyup = opt->wbr_copyup;
+ sbinfo->si_wbr_copyup_ops = au_wbr_copyup_ops + opt->wbr_copyup;
+ break;
+
+ case Opt_dirwh:
+ sbinfo->si_dirwh = opt->dirwh;
+ break;
+
+ case Opt_rdcache:
+ sbinfo->si_rdcache = opt->rdcache * HZ;
+ break;
+ case Opt_rdblk:
+ sbinfo->si_rdblk = opt->rdblk;
+ break;
+ case Opt_rdblk_def:
+ sbinfo->si_rdblk = AUFS_RDBLK_DEF;
+ break;
+ case Opt_rdhash:
+ sbinfo->si_rdhash = opt->rdhash;
+ break;
+ case Opt_rdhash_def:
+ sbinfo->si_rdhash = AUFS_RDHASH_DEF;
+ break;
+
+ case Opt_shwh:
+ au_opt_set(sbinfo->si_mntflags, SHWH);
+ break;
+ case Opt_noshwh:
+ au_opt_clr(sbinfo->si_mntflags, SHWH);
+ break;
+
+ case Opt_trunc_xino:
+ au_opt_set(sbinfo->si_mntflags, TRUNC_XINO);
+ break;
+ case Opt_notrunc_xino:
+ au_opt_clr(sbinfo->si_mntflags, TRUNC_XINO);
+ break;
+
+ case Opt_trunc_xino_path:
+ case Opt_itrunc_xino:
+ err = au_xino_trunc(sb, opt->xino_itrunc.bindex);
+ if (!err)
+ err = 1;
+ break;
+
+ case Opt_trunc_xib:
+ au_fset_opts(opts->flags, TRUNC_XIB);
+ break;
+ case Opt_notrunc_xib:
+ au_fclr_opts(opts->flags, TRUNC_XIB);
+ break;
+
+ default:
+ err = 0;
+ break;
+ }
+
+ return err;
+}
+
+/*
+ * returns tri-state.
+ * plus: processed without an error
+ * zero: unprocessed
+ * minus: error
+ */
+static int au_opt_br(struct super_block *sb, struct au_opt *opt,
+ struct au_opts *opts)
+{
+ int err, do_refresh;
+
+ err = 0;
+ switch (opt->type) {
+ case Opt_append:
+ opt->add.bindex = au_sbend(sb) + 1;
+ if (opt->add.bindex < 0)
+ opt->add.bindex = 0;
+ goto add;
+ case Opt_prepend:
+ opt->add.bindex = 0;
+ add:
+ case Opt_add:
+ err = au_br_add(sb, &opt->add,
+ au_ftest_opts(opts->flags, REMOUNT));
+ if (!err) {
+ err = 1;
+ au_fset_opts(opts->flags, REFRESH_DIR);
+ au_fset_opts(opts->flags, REFRESH_NONDIR);
+ }
+ break;
+
+ case Opt_del:
+ case Opt_idel:
+ err = au_br_del(sb, &opt->del,
+ au_ftest_opts(opts->flags, REMOUNT));
+ if (!err) {
+ err = 1;
+ au_fset_opts(opts->flags, TRUNC_XIB);
+ au_fset_opts(opts->flags, REFRESH_DIR);
+ au_fset_opts(opts->flags, REFRESH_NONDIR);
+ }
+ break;
+
+ case Opt_mod:
+ case Opt_imod:
+ err = au_br_mod(sb, &opt->mod,
+ au_ftest_opts(opts->flags, REMOUNT),
+ &do_refresh);
+ if (!err) {
+ err = 1;
+ if (do_refresh) {
+ au_fset_opts(opts->flags, REFRESH_DIR);
+ au_fset_opts(opts->flags, REFRESH_NONDIR);
+ }
+ }
+ break;
+ }
+
+ return err;
+}
+
+static int au_opt_xino(struct super_block *sb, struct au_opt *opt,
+ struct au_opt_xino **opt_xino,
+ struct au_opts *opts)
+{
+ int err;
+ aufs_bindex_t bend, bindex;
+ struct dentry *root, *parent, *h_root;
+
+ err = 0;
+ switch (opt->type) {
+ case Opt_xino:
+ err = au_xino_set(sb, &opt->xino,
+ !!au_ftest_opts(opts->flags, REMOUNT));
+ if (unlikely(err))
+ break;
+
+ *opt_xino = &opt->xino;
+ au_xino_brid_set(sb, -1);
+
+ /* safe d_parent access */
+ parent = opt->xino.file->f_dentry->d_parent;
+ root = sb->s_root;
+ bend = au_sbend(sb);
+ for (bindex = 0; bindex <= bend; bindex++) {
+ h_root = au_h_dptr(root, bindex);
+ if (h_root == parent) {
+ au_xino_brid_set(sb, au_sbr_id(sb, bindex));
+ break;
+ }
+ }
+ break;
+
+ case Opt_noxino:
+ au_xino_clr(sb);
+ au_xino_brid_set(sb, -1);
+ *opt_xino = (void *)-1;
+ break;
+ }
+
+ return err;
+}
+
+int au_opts_verify(struct super_block *sb, unsigned long sb_flags,
+ unsigned int pending)
+{
+ int err;
+ aufs_bindex_t bindex, bend;
+ unsigned char do_plink, skip, do_free;
+ struct au_branch *br;
+ struct au_wbr *wbr;
+ struct dentry *root;
+ struct inode *dir, *h_dir;
+ struct au_sbinfo *sbinfo;
+ struct au_hinode *hdir;
+
+ SiMustAnyLock(sb);
+
+ sbinfo = au_sbi(sb);
+ AuDebugOn(!(sbinfo->si_mntflags & AuOptMask_UDBA));
+
+ if (!(sb_flags & MS_RDONLY)) {
+ if (unlikely(!au_br_writable(au_sbr_perm(sb, 0))))
+ pr_warning("first branch should be rw\n");
+ if (unlikely(au_opt_test(sbinfo->si_mntflags, SHWH)))
+ pr_warning("shwh should be used with ro\n");
+ }
+
+ if (au_opt_test((sbinfo->si_mntflags | pending), UDBA_HNOTIFY)
+ && !au_opt_test(sbinfo->si_mntflags, XINO))
+ pr_warning("udba=*notify requires xino\n");
+
+ err = 0;
+ root = sb->s_root;
+ dir = root->d_inode;
+ do_plink = !!au_opt_test(sbinfo->si_mntflags, PLINK);
+ bend = au_sbend(sb);
+ for (bindex = 0; !err && bindex <= bend; bindex++) {
+ skip = 0;
+ h_dir = au_h_iptr(dir, bindex);
+ br = au_sbr(sb, bindex);
+ do_free = 0;
+
+ wbr = br->br_wbr;
+ if (wbr)
+ wbr_wh_read_lock(wbr);
+
+ switch (br->br_perm) {
+ case AuBrPerm_RO:
+ case AuBrPerm_ROWH:
+ case AuBrPerm_RR:
+ case AuBrPerm_RRWH:
+ do_free = !!wbr;
+ skip = (!wbr
+ || (!wbr->wbr_whbase
+ && !wbr->wbr_plink
+ && !wbr->wbr_orph));
+ break;
+
+ case AuBrPerm_RWNoLinkWH:
+ /* skip = (!br->br_whbase && !br->br_orph); */
+ skip = (!wbr || !wbr->wbr_whbase);
+ if (skip && wbr) {
+ if (do_plink)
+ skip = !!wbr->wbr_plink;
+ else
+ skip = !wbr->wbr_plink;
+ }
+ break;
+
+ case AuBrPerm_RW:
+ /* skip = (br->br_whbase && br->br_ohph); */
+ skip = (wbr && wbr->wbr_whbase);
+ if (skip) {
+ if (do_plink)
+ skip = !!wbr->wbr_plink;
+ else
+ skip = !wbr->wbr_plink;
+ }
+ break;
+
+ default:
+ BUG();
+ }
+ if (wbr)
+ wbr_wh_read_unlock(wbr);
+
+ if (skip)
+ continue;
+
+ hdir = au_hi(dir, bindex);
+ au_hn_imtx_lock_nested(hdir, AuLsc_I_PARENT);
+ if (wbr)
+ wbr_wh_write_lock(wbr);
+ err = au_wh_init(au_h_dptr(root, bindex), br, sb);
+ if (wbr)
+ wbr_wh_write_unlock(wbr);
+ au_hn_imtx_unlock(hdir);
+
+ if (!err && do_free) {
+ kfree(wbr);
+ br->br_wbr = NULL;
+ }
+ }
+
+ return err;
+}
+
+int au_opts_mount(struct super_block *sb, struct au_opts *opts)
+{
+ int err;
+ unsigned int tmp;
+ aufs_bindex_t bend;
+ struct au_opt *opt;
+ struct au_opt_xino *opt_xino, xino;
+ struct au_sbinfo *sbinfo;
+
+ SiMustWriteLock(sb);
+
+ err = 0;
+ opt_xino = NULL;
+ opt = opts->opt;
+ while (err >= 0 && opt->type != Opt_tail)
+ err = au_opt_simple(sb, opt++, opts);
+ if (err > 0)
+ err = 0;
+ else if (unlikely(err < 0))
+ goto out;
+
+ /* disable xino and udba temporary */
+ sbinfo = au_sbi(sb);
+ tmp = sbinfo->si_mntflags;
+ au_opt_clr(sbinfo->si_mntflags, XINO);
+ au_opt_set_udba(sbinfo->si_mntflags, UDBA_REVAL);
+
+ opt = opts->opt;
+ while (err >= 0 && opt->type != Opt_tail)
+ err = au_opt_br(sb, opt++, opts);
+ if (err > 0)
+ err = 0;
+ else if (unlikely(err < 0))
+ goto out;
+
+ bend = au_sbend(sb);
+ if (unlikely(bend < 0)) {
+ err = -EINVAL;
+ pr_err("no branches\n");
+ goto out;
+ }
+
+ if (au_opt_test(tmp, XINO))
+ au_opt_set(sbinfo->si_mntflags, XINO);
+ opt = opts->opt;
+ while (!err && opt->type != Opt_tail)
+ err = au_opt_xino(sb, opt++, &opt_xino, opts);
+ if (unlikely(err))
+ goto out;
+
+ err = au_opts_verify(sb, sb->s_flags, tmp);
+ if (unlikely(err))
+ goto out;
+
+ /* restore xino */
+ if (au_opt_test(tmp, XINO) && !opt_xino) {
+ xino.file = au_xino_def(sb);
+ err = PTR_ERR(xino.file);
+ if (IS_ERR(xino.file))
+ goto out;
+
+ err = au_xino_set(sb, &xino, /*remount*/0);
+ fput(xino.file);
+ if (unlikely(err))
+ goto out;
+ }
+
+ /* restore udba */
+ sbinfo->si_mntflags &= ~AuOptMask_UDBA;
+ sbinfo->si_mntflags |= (tmp & AuOptMask_UDBA);
+ if (au_opt_test(tmp, UDBA_HNOTIFY)) {
+ struct inode *dir = sb->s_root->d_inode;
+ au_hn_reset(dir, au_hi_flags(dir, /*isdir*/1) & ~AuHi_XINO);
+ }
+
+ out:
+ return err;
+}
+
+int au_opts_remount(struct super_block *sb, struct au_opts *opts)
+{
+ int err, rerr;
+ struct inode *dir;
+ struct au_opt_xino *opt_xino;
+ struct au_opt *opt;
+ struct au_sbinfo *sbinfo;
+
+ SiMustWriteLock(sb);
+
+ dir = sb->s_root->d_inode;
+ sbinfo = au_sbi(sb);
+ err = 0;
+ opt_xino = NULL;
+ opt = opts->opt;
+ while (err >= 0 && opt->type != Opt_tail) {
+ err = au_opt_simple(sb, opt, opts);
+ if (!err)
+ err = au_opt_br(sb, opt, opts);
+ if (!err)
+ err = au_opt_xino(sb, opt, &opt_xino, opts);
+ opt++;
+ }
+ if (err > 0)
+ err = 0;
+ AuTraceErr(err);
+ /* go on even err */
+
+ rerr = au_opts_verify(sb, opts->sb_flags, /*pending*/0);
+ if (unlikely(rerr && !err))
+ err = rerr;
+
+ if (au_ftest_opts(opts->flags, TRUNC_XIB)) {
+ rerr = au_xib_trunc(sb);
+ if (unlikely(rerr && !err))
+ err = rerr;
+ }
+
+ /* will be handled by the caller */
+ if (!au_ftest_opts(opts->flags, REFRESH_DIR)
+ && (opts->given_udba || au_opt_test(sbinfo->si_mntflags, XINO)))
+ au_fset_opts(opts->flags, REFRESH_DIR);
+
+ AuDbg("status 0x%x\n", opts->flags);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+unsigned int au_opt_udba(struct super_block *sb)
+{
+ return au_mntflags(sb) & AuOptMask_UDBA;
+}
diff --git a/ubuntu/aufs/opts.h b/ubuntu/aufs/opts.h
new file mode 100644
index 00000000000..8572daeb39f
--- /dev/null
+++ b/ubuntu/aufs/opts.h
@@ -0,0 +1,198 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * mount options/flags
+ */
+
+#ifndef __AUFS_OPTS_H__
+#define __AUFS_OPTS_H__
+
+#ifdef __KERNEL__
+
+#include <linux/path.h>
+#include <linux/aufs_type.h>
+
+struct file;
+struct super_block;
+
+/* ---------------------------------------------------------------------- */
+
+/* mount flags */
+#define AuOpt_XINO 1 /* external inode number bitmap
+ and translation table */
+#define AuOpt_TRUNC_XINO (1 << 1) /* truncate xino files */
+#define AuOpt_UDBA_NONE (1 << 2) /* users direct branch access */
+#define AuOpt_UDBA_REVAL (1 << 3)
+#define AuOpt_UDBA_HNOTIFY (1 << 4)
+#define AuOpt_SHWH (1 << 5) /* show whiteout */
+#define AuOpt_PLINK (1 << 6) /* pseudo-link */
+#define AuOpt_DIRPERM1 (1 << 7) /* unimplemented */
+#define AuOpt_REFROF (1 << 8) /* unimplemented */
+#define AuOpt_ALWAYS_DIROPQ (1 << 9) /* policy to creating diropq */
+#define AuOpt_SUM (1 << 10) /* summation for statfs(2) */
+#define AuOpt_SUM_W (1 << 11) /* unimplemented */
+#define AuOpt_WARN_PERM (1 << 12) /* warn when add-branch */
+#define AuOpt_VERBOSE (1 << 13) /* busy inode when del-branch */
+#define AuOpt_DIO (1 << 14) /* direct io */
+
+#ifndef CONFIG_AUFS_HNOTIFY
+#undef AuOpt_UDBA_HNOTIFY
+#define AuOpt_UDBA_HNOTIFY 0
+#endif
+#ifndef CONFIG_AUFS_SHWH
+#undef AuOpt_SHWH
+#define AuOpt_SHWH 0
+#endif
+
+#define AuOpt_Def (AuOpt_XINO \
+ | AuOpt_UDBA_REVAL \
+ | AuOpt_PLINK \
+ /* | AuOpt_DIRPERM1 */ \
+ | AuOpt_WARN_PERM)
+#define AuOptMask_UDBA (AuOpt_UDBA_NONE \
+ | AuOpt_UDBA_REVAL \
+ | AuOpt_UDBA_HNOTIFY)
+
+#define au_opt_test(flags, name) (flags & AuOpt_##name)
+#define au_opt_set(flags, name) do { \
+ BUILD_BUG_ON(AuOpt_##name & AuOptMask_UDBA); \
+ ((flags) |= AuOpt_##name); \
+} while (0)
+#define au_opt_set_udba(flags, name) do { \
+ (flags) &= ~AuOptMask_UDBA; \
+ ((flags) |= AuOpt_##name); \
+} while (0)
+#define au_opt_clr(flags, name) { ((flags) &= ~AuOpt_##name); }
+
+/* ---------------------------------------------------------------------- */
+
+/* policies to select one among multiple writable branches */
+enum {
+ AuWbrCreate_TDP, /* top down parent */
+ AuWbrCreate_RR, /* round robin */
+ AuWbrCreate_MFS, /* most free space */
+ AuWbrCreate_MFSV, /* mfs with seconds */
+ AuWbrCreate_MFSRR, /* mfs then rr */
+ AuWbrCreate_MFSRRV, /* mfs then rr with seconds */
+ AuWbrCreate_PMFS, /* parent and mfs */
+ AuWbrCreate_PMFSV, /* parent and mfs with seconds */
+
+ AuWbrCreate_Def = AuWbrCreate_TDP
+};
+
+enum {
+ AuWbrCopyup_TDP, /* top down parent */
+ AuWbrCopyup_BUP, /* bottom up parent */
+ AuWbrCopyup_BU, /* bottom up */
+
+ AuWbrCopyup_Def = AuWbrCopyup_TDP
+};
+
+/* ---------------------------------------------------------------------- */
+
+struct au_opt_add {
+ aufs_bindex_t bindex;
+ char *pathname;
+ int perm;
+ struct path path;
+};
+
+struct au_opt_del {
+ char *pathname;
+ struct path h_path;
+};
+
+struct au_opt_mod {
+ char *path;
+ int perm;
+ struct dentry *h_root;
+};
+
+struct au_opt_xino {
+ char *path;
+ struct file *file;
+};
+
+struct au_opt_xino_itrunc {
+ aufs_bindex_t bindex;
+};
+
+struct au_opt_wbr_create {
+ int wbr_create;
+ int mfs_second;
+ unsigned long long mfsrr_watermark;
+};
+
+struct au_opt {
+ int type;
+ union {
+ struct au_opt_xino xino;
+ struct au_opt_xino_itrunc xino_itrunc;
+ struct au_opt_add add;
+ struct au_opt_del del;
+ struct au_opt_mod mod;
+ int dirwh;
+ int rdcache;
+ unsigned int rdblk;
+ unsigned int rdhash;
+ int udba;
+ struct au_opt_wbr_create wbr_create;
+ int wbr_copyup;
+ };
+};
+
+/* opts flags */
+#define AuOpts_REMOUNT 1
+#define AuOpts_REFRESH_DIR (1 << 1)
+#define AuOpts_REFRESH_NONDIR (1 << 2)
+#define AuOpts_TRUNC_XIB (1 << 3)
+#define AuOpts_REFRESH_DYAOP (1 << 4)
+#define au_ftest_opts(flags, name) ((flags) & AuOpts_##name)
+#define au_fset_opts(flags, name) { (flags) |= AuOpts_##name; }
+#define au_fclr_opts(flags, name) { (flags) &= ~AuOpts_##name; }
+
+struct au_opts {
+ struct au_opt *opt;
+ int max_opt;
+
+ unsigned int given_udba;
+ unsigned int flags;
+ unsigned long sb_flags;
+};
+
+/* ---------------------------------------------------------------------- */
+
+const char *au_optstr_br_perm(int brperm);
+const char *au_optstr_udba(int udba);
+const char *au_optstr_wbr_copyup(int wbr_copyup);
+const char *au_optstr_wbr_create(int wbr_create);
+
+void au_opts_free(struct au_opts *opts);
+int au_opts_parse(struct super_block *sb, char *str, struct au_opts *opts);
+int au_opts_verify(struct super_block *sb, unsigned long sb_flags,
+ unsigned int pending);
+int au_opts_mount(struct super_block *sb, struct au_opts *opts);
+int au_opts_remount(struct super_block *sb, struct au_opts *opts);
+
+unsigned int au_opt_udba(struct super_block *sb);
+
+/* ---------------------------------------------------------------------- */
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_OPTS_H__ */
diff --git a/ubuntu/aufs/plink.c b/ubuntu/aufs/plink.c
new file mode 100644
index 00000000000..a5a9becdadf
--- /dev/null
+++ b/ubuntu/aufs/plink.c
@@ -0,0 +1,453 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * pseudo-link
+ */
+
+#include "aufs.h"
+
+/*
+ * during a user process maintains the pseudo-links,
+ * prohibit adding a new plink and branch manipulation.
+ */
+void au_plink_maint_block(struct super_block *sb)
+{
+ struct au_sbinfo *sbi = au_sbi(sb);
+
+ SiMustAnyLock(sb);
+
+ /* gave up wake_up_bit() */
+ wait_event(sbi->si_plink_wq, !sbi->si_plink_maint);
+}
+
+void au_plink_maint_leave(struct file *file)
+{
+ struct au_sbinfo *sbinfo;
+ int iam;
+
+ AuDebugOn(atomic_long_read(&file->f_count));
+
+ sbinfo = au_sbi(file->f_dentry->d_sb);
+ spin_lock(&sbinfo->si_plink_maint_lock);
+ iam = (sbinfo->si_plink_maint == file);
+ if (iam)
+ sbinfo->si_plink_maint = NULL;
+ spin_unlock(&sbinfo->si_plink_maint_lock);
+ if (iam)
+ wake_up_all(&sbinfo->si_plink_wq);
+}
+
+static int au_plink_maint_enter(struct file *file)
+{
+ int err;
+ struct super_block *sb;
+ struct au_sbinfo *sbinfo;
+
+ err = 0;
+ sb = file->f_dentry->d_sb;
+ sbinfo = au_sbi(sb);
+ /* make sure i am the only one in this fs */
+ si_write_lock(sb);
+ /* spin_lock(&sbinfo->si_plink_maint_lock); */
+ if (!sbinfo->si_plink_maint)
+ sbinfo->si_plink_maint = file;
+ else
+ err = -EBUSY;
+ /* spin_unlock(&sbinfo->si_plink_maint_lock); */
+ si_write_unlock(sb);
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct pseudo_link {
+ union {
+ struct list_head list;
+ struct rcu_head rcu;
+ };
+ struct inode *inode;
+};
+
+#ifdef CONFIG_AUFS_DEBUG
+void au_plink_list(struct super_block *sb)
+{
+ struct au_sbinfo *sbinfo;
+ struct list_head *plink_list;
+ struct pseudo_link *plink;
+
+ SiMustAnyLock(sb);
+
+ sbinfo = au_sbi(sb);
+ AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK));
+
+ plink_list = &sbinfo->si_plink.head;
+ rcu_read_lock();
+ list_for_each_entry_rcu(plink, plink_list, list)
+ AuDbg("%lu\n", plink->inode->i_ino);
+ rcu_read_unlock();
+}
+#endif
+
+/* is the inode pseudo-linked? */
+int au_plink_test(struct inode *inode)
+{
+ int found;
+ struct au_sbinfo *sbinfo;
+ struct list_head *plink_list;
+ struct pseudo_link *plink;
+
+ sbinfo = au_sbi(inode->i_sb);
+ AuRwMustAnyLock(&sbinfo->si_rwsem);
+ AuDebugOn(!au_opt_test(au_mntflags(inode->i_sb), PLINK));
+
+ found = 0;
+ plink_list = &sbinfo->si_plink.head;
+ rcu_read_lock();
+ list_for_each_entry_rcu(plink, plink_list, list)
+ if (plink->inode == inode) {
+ found = 1;
+ break;
+ }
+ rcu_read_unlock();
+ return found;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * generate a name for plink.
+ * the file will be stored under AUFS_WH_PLINKDIR.
+ */
+/* 20 is max digits length of ulong 64 */
+#define PLINK_NAME_LEN ((20 + 1) * 2)
+
+static int plink_name(char *name, int len, struct inode *inode,
+ aufs_bindex_t bindex)
+{
+ int rlen;
+ struct inode *h_inode;
+
+ h_inode = au_h_iptr(inode, bindex);
+ rlen = snprintf(name, len, "%lu.%lu", inode->i_ino, h_inode->i_ino);
+ return rlen;
+}
+
+/* lookup the plink-ed @inode under the branch at @bindex */
+struct dentry *au_plink_lkup(struct inode *inode, aufs_bindex_t bindex)
+{
+ struct dentry *h_dentry, *h_parent;
+ struct au_branch *br;
+ struct inode *h_dir;
+ char a[PLINK_NAME_LEN];
+ struct qstr tgtname = {
+ .name = a
+ };
+
+ br = au_sbr(inode->i_sb, bindex);
+ h_parent = br->br_wbr->wbr_plink;
+ h_dir = h_parent->d_inode;
+ tgtname.len = plink_name(a, sizeof(a), inode, bindex);
+
+ /* always superio. */
+ mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_CHILD2);
+ h_dentry = au_sio_lkup_one(&tgtname, h_parent, br);
+ mutex_unlock(&h_dir->i_mutex);
+ return h_dentry;
+}
+
+/* create a pseudo-link */
+static int do_whplink(struct qstr *tgt, struct dentry *h_parent,
+ struct dentry *h_dentry, struct au_branch *br)
+{
+ int err;
+ struct path h_path = {
+ .mnt = br->br_mnt
+ };
+ struct inode *h_dir;
+
+ h_dir = h_parent->d_inode;
+ again:
+ h_path.dentry = au_lkup_one(tgt, h_parent, br, /*nd*/NULL);
+ err = PTR_ERR(h_path.dentry);
+ if (IS_ERR(h_path.dentry))
+ goto out;
+
+ err = 0;
+ /* wh.plink dir is not monitored */
+ if (h_path.dentry->d_inode
+ && h_path.dentry->d_inode != h_dentry->d_inode) {
+ err = vfsub_unlink(h_dir, &h_path, /*force*/0);
+ dput(h_path.dentry);
+ h_path.dentry = NULL;
+ if (!err)
+ goto again;
+ }
+ if (!err && !h_path.dentry->d_inode)
+ err = vfsub_link(h_dentry, h_dir, &h_path);
+ dput(h_path.dentry);
+
+ out:
+ return err;
+}
+
+struct do_whplink_args {
+ int *errp;
+ struct qstr *tgt;
+ struct dentry *h_parent;
+ struct dentry *h_dentry;
+ struct au_branch *br;
+};
+
+static void call_do_whplink(void *args)
+{
+ struct do_whplink_args *a = args;
+ *a->errp = do_whplink(a->tgt, a->h_parent, a->h_dentry, a->br);
+}
+
+static int whplink(struct dentry *h_dentry, struct inode *inode,
+ aufs_bindex_t bindex, struct au_branch *br)
+{
+ int err, wkq_err;
+ struct au_wbr *wbr;
+ struct dentry *h_parent;
+ struct inode *h_dir;
+ char a[PLINK_NAME_LEN];
+ struct qstr tgtname = {
+ .name = a
+ };
+
+ wbr = au_sbr(inode->i_sb, bindex)->br_wbr;
+ h_parent = wbr->wbr_plink;
+ h_dir = h_parent->d_inode;
+ tgtname.len = plink_name(a, sizeof(a), inode, bindex);
+
+ /* always superio. */
+ mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_CHILD2);
+ if (!au_test_wkq(current)) {
+ struct do_whplink_args args = {
+ .errp = &err,
+ .tgt = &tgtname,
+ .h_parent = h_parent,
+ .h_dentry = h_dentry,
+ .br = br
+ };
+ wkq_err = au_wkq_wait(call_do_whplink, &args);
+ if (unlikely(wkq_err))
+ err = wkq_err;
+ } else
+ err = do_whplink(&tgtname, h_parent, h_dentry, br);
+ mutex_unlock(&h_dir->i_mutex);
+
+ return err;
+}
+
+/* free a single plink */
+static void do_put_plink(struct pseudo_link *plink, int do_del)
+{
+ if (do_del)
+ list_del(&plink->list);
+ iput(plink->inode);
+ kfree(plink);
+}
+
+static void do_put_plink_rcu(struct rcu_head *rcu)
+{
+ struct pseudo_link *plink;
+
+ plink = container_of(rcu, struct pseudo_link, rcu);
+ iput(plink->inode);
+ kfree(plink);
+}
+
+/*
+ * create a new pseudo-link for @h_dentry on @bindex.
+ * the linked inode is held in aufs @inode.
+ */
+void au_plink_append(struct inode *inode, aufs_bindex_t bindex,
+ struct dentry *h_dentry)
+{
+ struct super_block *sb;
+ struct au_sbinfo *sbinfo;
+ struct list_head *plink_list;
+ struct pseudo_link *plink, *tmp;
+ int found, err, cnt;
+
+ sb = inode->i_sb;
+ sbinfo = au_sbi(sb);
+ AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK));
+
+ cnt = 0;
+ found = 0;
+ plink_list = &sbinfo->si_plink.head;
+ rcu_read_lock();
+ list_for_each_entry_rcu(plink, plink_list, list) {
+ cnt++;
+ if (plink->inode == inode) {
+ found = 1;
+ break;
+ }
+ }
+ rcu_read_unlock();
+ if (found)
+ return;
+
+ tmp = kmalloc(sizeof(*plink), GFP_NOFS);
+ if (tmp)
+ tmp->inode = au_igrab(inode);
+ else {
+ err = -ENOMEM;
+ goto out;
+ }
+
+ spin_lock(&sbinfo->si_plink.spin);
+ list_for_each_entry(plink, plink_list, list) {
+ if (plink->inode == inode) {
+ found = 1;
+ break;
+ }
+ }
+ if (!found)
+ list_add_rcu(&tmp->list, plink_list);
+ spin_unlock(&sbinfo->si_plink.spin);
+ if (!found) {
+ cnt++;
+ WARN_ONCE(cnt > AUFS_PLINK_WARN,
+ "unexpectedly many pseudo links, %d\n", cnt);
+ au_plink_maint_block(sb);
+ err = whplink(h_dentry, inode, bindex, au_sbr(sb, bindex));
+ } else {
+ do_put_plink(tmp, 0);
+ return;
+ }
+
+out:
+ if (unlikely(err)) {
+ pr_warning("err %d, damaged pseudo link.\n", err);
+ if (tmp) {
+ au_spl_del_rcu(&tmp->list, &sbinfo->si_plink);
+ call_rcu(&tmp->rcu, do_put_plink_rcu);
+ }
+ }
+}
+
+/* free all plinks */
+void au_plink_put(struct super_block *sb)
+{
+ struct au_sbinfo *sbinfo;
+ struct list_head *plink_list;
+ struct pseudo_link *plink, *tmp;
+
+ SiMustWriteLock(sb);
+
+ sbinfo = au_sbi(sb);
+ AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK));
+
+ plink_list = &sbinfo->si_plink.head;
+ /* no spin_lock since sbinfo is write-locked */
+ list_for_each_entry_safe(plink, tmp, plink_list, list)
+ do_put_plink(plink, 0);
+ INIT_LIST_HEAD(plink_list);
+}
+
+/* free the plinks on a branch specified by @br_id */
+void au_plink_half_refresh(struct super_block *sb, aufs_bindex_t br_id)
+{
+ struct au_sbinfo *sbinfo;
+ struct list_head *plink_list;
+ struct pseudo_link *plink, *tmp;
+ struct inode *inode;
+ aufs_bindex_t bstart, bend, bindex;
+ unsigned char do_put;
+
+ SiMustWriteLock(sb);
+
+ sbinfo = au_sbi(sb);
+ AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK));
+
+ plink_list = &sbinfo->si_plink.head;
+ /* no spin_lock since sbinfo is write-locked */
+ list_for_each_entry_safe(plink, tmp, plink_list, list) {
+ do_put = 0;
+ inode = au_igrab(plink->inode);
+ ii_write_lock_child(inode);
+ bstart = au_ibstart(inode);
+ bend = au_ibend(inode);
+ if (bstart >= 0) {
+ for (bindex = bstart; bindex <= bend; bindex++) {
+ if (!au_h_iptr(inode, bindex)
+ || au_ii_br_id(inode, bindex) != br_id)
+ continue;
+ au_set_h_iptr(inode, bindex, NULL, 0);
+ do_put = 1;
+ break;
+ }
+ } else
+ do_put_plink(plink, 1);
+
+ if (do_put) {
+ for (bindex = bstart; bindex <= bend; bindex++)
+ if (au_h_iptr(inode, bindex)) {
+ do_put = 0;
+ break;
+ }
+ if (do_put)
+ do_put_plink(plink, 1);
+ }
+ ii_write_unlock(inode);
+ iput(inode);
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+long au_plink_ioctl(struct file *file, unsigned int cmd)
+{
+ long err;
+ struct super_block *sb;
+ struct au_sbinfo *sbinfo;
+
+ err = -EACCES;
+ if (!capable(CAP_SYS_ADMIN))
+ goto out;
+
+ err = 0;
+ sb = file->f_dentry->d_sb;
+ sbinfo = au_sbi(sb);
+ switch (cmd) {
+ case AUFS_CTL_PLINK_MAINT:
+ /*
+ * pseudo-link maintenance mode,
+ * cleared by aufs_release_dir()
+ */
+ err = au_plink_maint_enter(file);
+ break;
+ case AUFS_CTL_PLINK_CLEAN:
+ aufs_write_lock(sb->s_root);
+ if (au_opt_test(sbinfo->si_mntflags, PLINK))
+ au_plink_put(sb);
+ aufs_write_unlock(sb->s_root);
+ break;
+ default:
+ /* err = -ENOTTY; */
+ err = -EINVAL;
+ }
+ out:
+ return err;
+}
diff --git a/ubuntu/aufs/poll.c b/ubuntu/aufs/poll.c
new file mode 100644
index 00000000000..408fc9d5a3b
--- /dev/null
+++ b/ubuntu/aufs/poll.c
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * poll operation
+ * There is only one filesystem which implements ->poll operation, currently.
+ */
+
+#include "aufs.h"
+
+unsigned int aufs_poll(struct file *file, poll_table *wait)
+{
+ unsigned int mask;
+ int err;
+ struct file *h_file;
+ struct dentry *dentry;
+ struct super_block *sb;
+
+ /* We should pretend an error happened. */
+ mask = POLLERR /* | POLLIN | POLLOUT */;
+ dentry = file->f_dentry;
+ sb = dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/0);
+ if (unlikely(err))
+ goto out;
+
+ /* it is not an error if h_file has no operation */
+ mask = DEFAULT_POLLMASK;
+ h_file = au_hf_top(file);
+ if (h_file->f_op && h_file->f_op->poll)
+ mask = h_file->f_op->poll(h_file, wait);
+
+ di_read_unlock(dentry, AuLock_IR);
+ fi_read_unlock(file);
+
+ out:
+ si_read_unlock(sb);
+ AuTraceErr((int)mask);
+ return mask;
+}
diff --git a/ubuntu/aufs/rdu.c b/ubuntu/aufs/rdu.c
new file mode 100644
index 00000000000..b8a2b373fc5
--- /dev/null
+++ b/ubuntu/aufs/rdu.c
@@ -0,0 +1,330 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * readdir in userspace.
+ */
+
+#include <linux/fs_stack.h>
+#include <linux/security.h>
+#include <linux/uaccess.h>
+#include <linux/aufs_type.h>
+#include "aufs.h"
+
+/* bits for struct aufs_rdu.flags */
+#define AuRdu_CALLED 1
+#define AuRdu_CONT (1 << 1)
+#define AuRdu_FULL (1 << 2)
+#define au_ftest_rdu(flags, name) ((flags) & AuRdu_##name)
+#define au_fset_rdu(flags, name) { (flags) |= AuRdu_##name; }
+#define au_fclr_rdu(flags, name) { (flags) &= ~AuRdu_##name; }
+
+struct au_rdu_arg {
+ struct aufs_rdu *rdu;
+ union au_rdu_ent_ul ent;
+ unsigned long end;
+
+ struct super_block *sb;
+ int err;
+};
+
+static int au_rdu_fill(void *__arg, const char *name, int nlen,
+ loff_t offset, u64 h_ino, unsigned int d_type)
+{
+ int err, len;
+ struct au_rdu_arg *arg = __arg;
+ struct aufs_rdu *rdu = arg->rdu;
+ struct au_rdu_ent ent;
+
+ err = 0;
+ arg->err = 0;
+ au_fset_rdu(rdu->cookie.flags, CALLED);
+ len = au_rdu_len(nlen);
+ if (arg->ent.ul + len < arg->end) {
+ ent.ino = h_ino;
+ ent.bindex = rdu->cookie.bindex;
+ ent.type = d_type;
+ ent.nlen = nlen;
+ if (unlikely(nlen > AUFS_MAX_NAMELEN))
+ ent.type = DT_UNKNOWN;
+
+ err = -EFAULT;
+ if (copy_to_user(arg->ent.e, &ent, sizeof(ent)))
+ goto out;
+ if (copy_to_user(arg->ent.e->name, name, nlen))
+ goto out;
+ /* the terminating NULL */
+ if (__put_user(0, arg->ent.e->name + nlen))
+ goto out;
+ err = 0;
+ /* AuDbg("%p, %.*s\n", arg->ent.p, nlen, name); */
+ arg->ent.ul += len;
+ rdu->rent++;
+ } else {
+ err = -EFAULT;
+ au_fset_rdu(rdu->cookie.flags, FULL);
+ rdu->full = 1;
+ rdu->tail = arg->ent;
+ }
+
+ out:
+ /* AuTraceErr(err); */
+ return err;
+}
+
+static int au_rdu_do(struct file *h_file, struct au_rdu_arg *arg)
+{
+ int err;
+ loff_t offset;
+ struct au_rdu_cookie *cookie = &arg->rdu->cookie;
+
+ offset = vfsub_llseek(h_file, cookie->h_pos, SEEK_SET);
+ err = offset;
+ if (unlikely(offset != cookie->h_pos))
+ goto out;
+
+ err = 0;
+ do {
+ arg->err = 0;
+ au_fclr_rdu(cookie->flags, CALLED);
+ /* smp_mb(); */
+ err = vfsub_readdir(h_file, au_rdu_fill, arg);
+ if (err >= 0)
+ err = arg->err;
+ } while (!err
+ && au_ftest_rdu(cookie->flags, CALLED)
+ && !au_ftest_rdu(cookie->flags, FULL));
+ cookie->h_pos = h_file->f_pos;
+
+ out:
+ AuTraceErr(err);
+ return err;
+}
+
+static int au_rdu(struct file *file, struct aufs_rdu *rdu)
+{
+ int err;
+ aufs_bindex_t bend;
+ struct au_rdu_arg arg;
+ struct dentry *dentry;
+ struct inode *inode;
+ struct file *h_file;
+ struct au_rdu_cookie *cookie = &rdu->cookie;
+
+ err = !access_ok(VERIFY_WRITE, rdu->ent.e, rdu->sz);
+ if (unlikely(err)) {
+ err = -EFAULT;
+ AuTraceErr(err);
+ goto out;
+ }
+ rdu->rent = 0;
+ rdu->tail = rdu->ent;
+ rdu->full = 0;
+ arg.rdu = rdu;
+ arg.ent = rdu->ent;
+ arg.end = arg.ent.ul;
+ arg.end += rdu->sz;
+
+ err = -ENOTDIR;
+ if (unlikely(!file->f_op || !file->f_op->readdir))
+ goto out;
+
+ err = security_file_permission(file, MAY_READ);
+ AuTraceErr(err);
+ if (unlikely(err))
+ goto out;
+
+ dentry = file->f_dentry;
+ inode = dentry->d_inode;
+#if 1
+ mutex_lock(&inode->i_mutex);
+#else
+ err = mutex_lock_killable(&inode->i_mutex);
+ AuTraceErr(err);
+ if (unlikely(err))
+ goto out;
+#endif
+ err = -ENOENT;
+ if (unlikely(IS_DEADDIR(inode)))
+ goto out_mtx;
+
+ arg.sb = inode->i_sb;
+ si_read_lock(arg.sb, AuLock_FLUSH);
+ fi_read_lock(file);
+
+ err = -EAGAIN;
+ if (unlikely(au_ftest_rdu(cookie->flags, CONT)
+ && cookie->generation != au_figen(file)))
+ goto out_unlock;
+
+ err = 0;
+ if (!rdu->blk) {
+ rdu->blk = au_sbi(arg.sb)->si_rdblk;
+ if (!rdu->blk)
+ rdu->blk = au_dir_size(file, /*dentry*/NULL);
+ }
+ bend = au_fbstart(file);
+ if (cookie->bindex < bend)
+ cookie->bindex = bend;
+ bend = au_fbend_dir(file);
+ /* AuDbg("b%d, b%d\n", cookie->bindex, bend); */
+ for (; !err && cookie->bindex <= bend;
+ cookie->bindex++, cookie->h_pos = 0) {
+ h_file = au_hf_dir(file, cookie->bindex);
+ if (!h_file)
+ continue;
+
+ au_fclr_rdu(cookie->flags, FULL);
+ err = au_rdu_do(h_file, &arg);
+ AuTraceErr(err);
+ if (unlikely(au_ftest_rdu(cookie->flags, FULL) || err))
+ break;
+ }
+ AuDbg("rent %llu\n", rdu->rent);
+
+ if (!err && !au_ftest_rdu(cookie->flags, CONT)) {
+ rdu->shwh = !!au_opt_test(au_sbi(arg.sb)->si_mntflags, SHWH);
+ au_fset_rdu(cookie->flags, CONT);
+ cookie->generation = au_figen(file);
+ }
+
+ ii_read_lock_child(inode);
+ fsstack_copy_attr_atime(inode, au_h_iptr(inode, au_ibstart(inode)));
+ ii_read_unlock(inode);
+
+ out_unlock:
+ fi_read_unlock(file);
+ si_read_unlock(arg.sb);
+ out_mtx:
+ mutex_unlock(&inode->i_mutex);
+ out:
+ AuTraceErr(err);
+ return err;
+}
+
+static int au_rdu_ino(struct file *file, struct aufs_rdu *rdu)
+{
+ int err;
+ ino_t ino;
+ unsigned long long nent;
+ union au_rdu_ent_ul *u;
+ struct au_rdu_ent ent;
+ struct super_block *sb;
+
+ err = 0;
+ nent = rdu->nent;
+ u = &rdu->ent;
+ sb = file->f_dentry->d_sb;
+ si_read_lock(sb, AuLock_FLUSH);
+ while (nent-- > 0) {
+ err = copy_from_user(&ent, u->e, sizeof(ent));
+ if (!err)
+ err = !access_ok(VERIFY_WRITE, &u->e->ino, sizeof(ino));
+ if (unlikely(err)) {
+ err = -EFAULT;
+ AuTraceErr(err);
+ break;
+ }
+
+ /* AuDbg("b%d, i%llu\n", ent.bindex, ent.ino); */
+ if (!ent.wh)
+ err = au_ino(sb, ent.bindex, ent.ino, ent.type, &ino);
+ else
+ err = au_wh_ino(sb, ent.bindex, ent.ino, ent.type,
+ &ino);
+ if (unlikely(err)) {
+ AuTraceErr(err);
+ break;
+ }
+
+ err = __put_user(ino, &u->e->ino);
+ if (unlikely(err)) {
+ err = -EFAULT;
+ AuTraceErr(err);
+ break;
+ }
+ u->ul += au_rdu_len(ent.nlen);
+ }
+ si_read_unlock(sb);
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_rdu_verify(struct aufs_rdu *rdu)
+{
+ AuDbg("rdu{%llu, %p, (%u, %u) | %u | %llu, %u, %u | "
+ "%llu, b%d, 0x%x, g%u}\n",
+ rdu->sz, rdu->ent.e, rdu->verify[0], rdu->verify[1],
+ rdu->blk,
+ rdu->rent, rdu->shwh, rdu->full,
+ rdu->cookie.h_pos, rdu->cookie.bindex, rdu->cookie.flags,
+ rdu->cookie.generation);
+
+ if (rdu->verify[AufsCtlRduV_SZ] == sizeof(*rdu)
+ && rdu->verify[AufsCtlRduV_SZ_PTR] == sizeof(rdu))
+ return 0;
+
+ AuDbg("%u:%u, %u:%u\n",
+ rdu->verify[AufsCtlRduV_SZ], (unsigned int)sizeof(*rdu),
+ rdu->verify[AufsCtlRduV_SZ_PTR], (unsigned int)sizeof(rdu));
+ return -EINVAL;
+}
+
+long au_rdu_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+ long err, e;
+ struct aufs_rdu rdu;
+ void __user *p = (void __user *)arg;
+
+ err = copy_from_user(&rdu, p, sizeof(rdu));
+ if (unlikely(err)) {
+ err = -EFAULT;
+ AuTraceErr(err);
+ goto out;
+ }
+ err = au_rdu_verify(&rdu);
+ if (unlikely(err))
+ goto out;
+
+ switch (cmd) {
+ case AUFS_CTL_RDU:
+ err = au_rdu(file, &rdu);
+ if (unlikely(err))
+ break;
+
+ e = copy_to_user(p, &rdu, sizeof(rdu));
+ if (unlikely(e)) {
+ err = -EFAULT;
+ AuTraceErr(err);
+ }
+ break;
+ case AUFS_CTL_RDU_INO:
+ err = au_rdu_ino(file, &rdu);
+ break;
+
+ default:
+ /* err = -ENOTTY; */
+ err = -EINVAL;
+ }
+
+ out:
+ AuTraceErr(err);
+ return err;
+}
diff --git a/ubuntu/aufs/rwsem.h b/ubuntu/aufs/rwsem.h
new file mode 100644
index 00000000000..7f4c399f6db
--- /dev/null
+++ b/ubuntu/aufs/rwsem.h
@@ -0,0 +1,187 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * simple read-write semaphore wrappers
+ */
+
+#ifndef __AUFS_RWSEM_H__
+#define __AUFS_RWSEM_H__
+
+#ifdef __KERNEL__
+
+#include <linux/rwsem.h>
+#include "debug.h"
+
+struct au_rwsem {
+ struct rw_semaphore rwsem;
+#ifdef CONFIG_AUFS_DEBUG
+ /* just for debugging, not almighty counter */
+ atomic_t rcnt, wcnt;
+#endif
+};
+
+#ifdef CONFIG_AUFS_DEBUG
+#define AuDbgCntInit(rw) do { \
+ atomic_set(&(rw)->rcnt, 0); \
+ atomic_set(&(rw)->wcnt, 0); \
+ smp_mb(); /* atomic set */ \
+} while (0)
+
+#define AuDbgRcntInc(rw) atomic_inc_return(&(rw)->rcnt)
+#define AuDbgRcntDec(rw) WARN_ON(atomic_dec_return(&(rw)->rcnt) < 0)
+#define AuDbgWcntInc(rw) WARN_ON(atomic_inc_return(&(rw)->wcnt) > 1)
+#define AuDbgWcntDec(rw) WARN_ON(atomic_dec_return(&(rw)->wcnt) < 0)
+#else
+#define AuDbgCntInit(rw) do {} while (0)
+#define AuDbgRcntInc(rw) do {} while (0)
+#define AuDbgRcntDec(rw) do {} while (0)
+#define AuDbgWcntInc(rw) do {} while (0)
+#define AuDbgWcntDec(rw) do {} while (0)
+#endif /* CONFIG_AUFS_DEBUG */
+
+/* to debug easier, do not make them inlined functions */
+#define AuRwMustNoWaiters(rw) AuDebugOn(!list_empty(&(rw)->rwsem.wait_list))
+/* rwsem_is_locked() is unusable */
+#define AuRwMustReadLock(rw) AuDebugOn(atomic_read(&(rw)->rcnt) <= 0)
+#define AuRwMustWriteLock(rw) AuDebugOn(atomic_read(&(rw)->wcnt) <= 0)
+#define AuRwMustAnyLock(rw) AuDebugOn(atomic_read(&(rw)->rcnt) <= 0 \
+ && atomic_read(&(rw)->wcnt) <= 0)
+#define AuRwDestroy(rw) AuDebugOn(atomic_read(&(rw)->rcnt) \
+ || atomic_read(&(rw)->wcnt))
+
+static inline void au_rw_init(struct au_rwsem *rw)
+{
+ AuDbgCntInit(rw);
+ init_rwsem(&rw->rwsem);
+}
+
+static inline void au_rw_init_wlock(struct au_rwsem *rw)
+{
+ au_rw_init(rw);
+ down_write(&rw->rwsem);
+ AuDbgWcntInc(rw);
+}
+
+static inline void au_rw_init_wlock_nested(struct au_rwsem *rw,
+ unsigned int lsc)
+{
+ au_rw_init(rw);
+ down_write_nested(&rw->rwsem, lsc);
+ AuDbgWcntInc(rw);
+}
+
+static inline void au_rw_read_lock(struct au_rwsem *rw)
+{
+ down_read(&rw->rwsem);
+ AuDbgRcntInc(rw);
+}
+
+static inline void au_rw_read_lock_nested(struct au_rwsem *rw, unsigned int lsc)
+{
+ down_read_nested(&rw->rwsem, lsc);
+ AuDbgRcntInc(rw);
+}
+
+static inline void au_rw_read_unlock(struct au_rwsem *rw)
+{
+ AuRwMustReadLock(rw);
+ AuDbgRcntDec(rw);
+ up_read(&rw->rwsem);
+}
+
+static inline void au_rw_dgrade_lock(struct au_rwsem *rw)
+{
+ AuRwMustWriteLock(rw);
+ AuDbgRcntInc(rw);
+ AuDbgWcntDec(rw);
+ downgrade_write(&rw->rwsem);
+}
+
+static inline void au_rw_write_lock(struct au_rwsem *rw)
+{
+ down_write(&rw->rwsem);
+ AuDbgWcntInc(rw);
+}
+
+static inline void au_rw_write_lock_nested(struct au_rwsem *rw,
+ unsigned int lsc)
+{
+ down_write_nested(&rw->rwsem, lsc);
+ AuDbgWcntInc(rw);
+}
+
+static inline void au_rw_write_unlock(struct au_rwsem *rw)
+{
+ AuRwMustWriteLock(rw);
+ AuDbgWcntDec(rw);
+ up_write(&rw->rwsem);
+}
+
+/* why is not _nested version defined */
+static inline int au_rw_read_trylock(struct au_rwsem *rw)
+{
+ int ret = down_read_trylock(&rw->rwsem);
+ if (ret)
+ AuDbgRcntInc(rw);
+ return ret;
+}
+
+static inline int au_rw_write_trylock(struct au_rwsem *rw)
+{
+ int ret = down_write_trylock(&rw->rwsem);
+ if (ret)
+ AuDbgWcntInc(rw);
+ return ret;
+}
+
+#undef AuDbgCntInit
+#undef AuDbgRcntInc
+#undef AuDbgRcntDec
+#undef AuDbgWcntInc
+#undef AuDbgWcntDec
+
+#define AuSimpleLockRwsemFuncs(prefix, param, rwsem) \
+static inline void prefix##_read_lock(param) \
+{ au_rw_read_lock(rwsem); } \
+static inline void prefix##_write_lock(param) \
+{ au_rw_write_lock(rwsem); } \
+static inline int prefix##_read_trylock(param) \
+{ return au_rw_read_trylock(rwsem); } \
+static inline int prefix##_write_trylock(param) \
+{ return au_rw_write_trylock(rwsem); }
+/* why is not _nested version defined */
+/* static inline void prefix##_read_trylock_nested(param, lsc)
+{ au_rw_read_trylock_nested(rwsem, lsc)); }
+static inline void prefix##_write_trylock_nestd(param, lsc)
+{ au_rw_write_trylock_nested(rwsem, lsc); } */
+
+#define AuSimpleUnlockRwsemFuncs(prefix, param, rwsem) \
+static inline void prefix##_read_unlock(param) \
+{ au_rw_read_unlock(rwsem); } \
+static inline void prefix##_write_unlock(param) \
+{ au_rw_write_unlock(rwsem); } \
+static inline void prefix##_downgrade_lock(param) \
+{ au_rw_dgrade_lock(rwsem); }
+
+#define AuSimpleRwsemFuncs(prefix, param, rwsem) \
+ AuSimpleLockRwsemFuncs(prefix, param, rwsem) \
+ AuSimpleUnlockRwsemFuncs(prefix, param, rwsem)
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_RWSEM_H__ */
diff --git a/ubuntu/aufs/sbinfo.c b/ubuntu/aufs/sbinfo.c
new file mode 100644
index 00000000000..89b2b6aad43
--- /dev/null
+++ b/ubuntu/aufs/sbinfo.c
@@ -0,0 +1,202 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * superblock private data
+ */
+
+#include "aufs.h"
+
+/*
+ * they are necessary regardless sysfs is disabled.
+ */
+void au_si_free(struct kobject *kobj)
+{
+ struct au_sbinfo *sbinfo;
+ struct super_block *sb;
+
+ sbinfo = container_of(kobj, struct au_sbinfo, si_kobj);
+ AuDebugOn(!list_empty(&sbinfo->si_plink.head));
+ AuDebugOn(sbinfo->si_plink_maint);
+
+ sb = sbinfo->si_sb;
+ si_write_lock(sb);
+ au_xino_clr(sb);
+ au_br_free(sbinfo);
+ kfree(sbinfo->si_branch);
+ mutex_destroy(&sbinfo->si_xib_mtx);
+ si_write_unlock(sb);
+ AuRwDestroy(&sbinfo->si_rwsem);
+
+ kfree(sbinfo);
+}
+
+int au_si_alloc(struct super_block *sb)
+{
+ int err;
+ struct au_sbinfo *sbinfo;
+
+ err = -ENOMEM;
+ sbinfo = kzalloc(sizeof(*sbinfo), GFP_NOFS);
+ if (unlikely(!sbinfo))
+ goto out;
+
+ /* will be reallocated separately */
+ sbinfo->si_branch = kzalloc(sizeof(*sbinfo->si_branch), GFP_NOFS);
+ if (unlikely(!sbinfo->si_branch))
+ goto out_sbinfo;
+
+ err = sysaufs_si_init(sbinfo);
+ if (unlikely(err))
+ goto out_br;
+
+ au_nwt_init(&sbinfo->si_nowait);
+ au_rw_init_wlock(&sbinfo->si_rwsem);
+ sbinfo->si_bend = -1;
+
+ sbinfo->si_wbr_copyup = AuWbrCopyup_Def;
+ sbinfo->si_wbr_create = AuWbrCreate_Def;
+ sbinfo->si_wbr_copyup_ops = au_wbr_copyup_ops + sbinfo->si_wbr_copyup;
+ sbinfo->si_wbr_create_ops = au_wbr_create_ops + sbinfo->si_wbr_create;
+
+ sbinfo->si_mntflags = AuOpt_Def;
+
+ mutex_init(&sbinfo->si_xib_mtx);
+ sbinfo->si_xino_brid = -1;
+ /* leave si_xib_last_pindex and si_xib_next_bit */
+
+ sbinfo->si_rdcache = AUFS_RDCACHE_DEF * HZ;
+ sbinfo->si_rdblk = AUFS_RDBLK_DEF;
+ sbinfo->si_rdhash = AUFS_RDHASH_DEF;
+ sbinfo->si_dirwh = AUFS_DIRWH_DEF;
+
+ au_spl_init(&sbinfo->si_plink);
+ init_waitqueue_head(&sbinfo->si_plink_wq);
+ spin_lock_init(&sbinfo->si_plink_maint_lock);
+
+ /* leave other members for sysaufs and si_mnt. */
+ sbinfo->si_sb = sb;
+ sb->s_fs_info = sbinfo;
+ au_debug_sbinfo_init(sbinfo);
+ return 0; /* success */
+
+ out_br:
+ kfree(sbinfo->si_branch);
+ out_sbinfo:
+ kfree(sbinfo);
+ out:
+ return err;
+}
+
+int au_sbr_realloc(struct au_sbinfo *sbinfo, int nbr)
+{
+ int err, sz;
+ struct au_branch **brp;
+
+ AuRwMustWriteLock(&sbinfo->si_rwsem);
+
+ err = -ENOMEM;
+ sz = sizeof(*brp) * (sbinfo->si_bend + 1);
+ if (unlikely(!sz))
+ sz = sizeof(*brp);
+ brp = au_kzrealloc(sbinfo->si_branch, sz, sizeof(*brp) * nbr, GFP_NOFS);
+ if (brp) {
+ sbinfo->si_branch = brp;
+ err = 0;
+ }
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+unsigned int au_sigen_inc(struct super_block *sb)
+{
+ unsigned int gen;
+
+ SiMustWriteLock(sb);
+
+ gen = ++au_sbi(sb)->si_generation;
+ au_update_digen(sb->s_root);
+ au_update_iigen(sb->s_root->d_inode);
+ sb->s_root->d_inode->i_version++;
+ return gen;
+}
+
+aufs_bindex_t au_new_br_id(struct super_block *sb)
+{
+ aufs_bindex_t br_id;
+ int i;
+ struct au_sbinfo *sbinfo;
+
+ SiMustWriteLock(sb);
+
+ sbinfo = au_sbi(sb);
+ for (i = 0; i <= AUFS_BRANCH_MAX; i++) {
+ br_id = ++sbinfo->si_last_br_id;
+ if (br_id && au_br_index(sb, br_id) < 0)
+ return br_id;
+ }
+
+ return -1;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* dentry and super_block lock. call at entry point */
+void aufs_read_lock(struct dentry *dentry, int flags)
+{
+ si_read_lock(dentry->d_sb, flags);
+ if (au_ftest_lock(flags, DW))
+ di_write_lock_child(dentry);
+ else
+ di_read_lock_child(dentry, flags);
+}
+
+void aufs_read_unlock(struct dentry *dentry, int flags)
+{
+ if (au_ftest_lock(flags, DW))
+ di_write_unlock(dentry);
+ else
+ di_read_unlock(dentry, flags);
+ si_read_unlock(dentry->d_sb);
+}
+
+void aufs_write_lock(struct dentry *dentry)
+{
+ si_write_lock(dentry->d_sb);
+ di_write_lock_child(dentry);
+}
+
+void aufs_write_unlock(struct dentry *dentry)
+{
+ di_write_unlock(dentry);
+ si_write_unlock(dentry->d_sb);
+}
+
+void aufs_read_and_write_lock2(struct dentry *d1, struct dentry *d2, int flags)
+{
+ si_read_lock(d1->d_sb, flags);
+ di_write_lock2_child(d1, d2, au_ftest_lock(flags, DIR));
+}
+
+void aufs_read_and_write_unlock2(struct dentry *d1, struct dentry *d2)
+{
+ di_write_unlock2(d1, d2);
+ si_read_unlock(d1->d_sb);
+}
diff --git a/ubuntu/aufs/spl.h b/ubuntu/aufs/spl.h
new file mode 100644
index 00000000000..f3340340fe9
--- /dev/null
+++ b/ubuntu/aufs/spl.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * simple list protected by a spinlock
+ */
+
+#ifndef __AUFS_SPL_H__
+#define __AUFS_SPL_H__
+
+#ifdef __KERNEL__
+
+#include <linux/spinlock.h>
+#include <linux/list.h>
+#include <linux/rculist.h>
+
+struct au_splhead {
+ spinlock_t spin;
+ struct list_head head;
+};
+
+static inline void au_spl_init(struct au_splhead *spl)
+{
+ spin_lock_init(&spl->spin);
+ INIT_LIST_HEAD(&spl->head);
+}
+
+static inline void au_spl_add(struct list_head *list, struct au_splhead *spl)
+{
+ spin_lock(&spl->spin);
+ list_add(list, &spl->head);
+ spin_unlock(&spl->spin);
+}
+
+static inline void au_spl_del(struct list_head *list, struct au_splhead *spl)
+{
+ spin_lock(&spl->spin);
+ list_del(list);
+ spin_unlock(&spl->spin);
+}
+
+static inline void au_spl_del_rcu(struct list_head *list,
+ struct au_splhead *spl)
+{
+ spin_lock(&spl->spin);
+ list_del_rcu(list);
+ spin_unlock(&spl->spin);
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_SPL_H__ */
diff --git a/ubuntu/aufs/super.c b/ubuntu/aufs/super.c
new file mode 100644
index 00000000000..6a6899b32ac
--- /dev/null
+++ b/ubuntu/aufs/super.c
@@ -0,0 +1,847 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * mount and super_block operations
+ */
+
+#include <linux/buffer_head.h>
+#include <linux/module.h>
+#include <linux/seq_file.h>
+#include <linux/statfs.h>
+#include "aufs.h"
+
+/*
+ * super_operations
+ */
+static struct inode *aufs_alloc_inode(struct super_block *sb __maybe_unused)
+{
+ struct au_icntnr *c;
+
+ c = au_cache_alloc_icntnr();
+ if (c) {
+ c->vfs_inode.i_version = 1; /* sigen(sb); */
+ c->iinfo.ii_hinode = NULL;
+ return &c->vfs_inode;
+ }
+ return NULL;
+}
+
+static void aufs_destroy_inode(struct inode *inode)
+{
+ au_iinfo_fin(inode);
+ au_cache_free_icntnr(container_of(inode, struct au_icntnr, vfs_inode));
+}
+
+struct inode *au_iget_locked(struct super_block *sb, ino_t ino)
+{
+ struct inode *inode;
+ int err;
+
+ inode = iget_locked(sb, ino);
+ if (unlikely(!inode)) {
+ inode = ERR_PTR(-ENOMEM);
+ goto out;
+ }
+ if (!(inode->i_state & I_NEW))
+ goto out;
+
+ err = au_xigen_new(inode);
+ if (!err)
+ err = au_iinfo_init(inode);
+ if (!err)
+ inode->i_version++;
+ else {
+ iget_failed(inode);
+ inode = ERR_PTR(err);
+ }
+
+ out:
+ /* never return NULL */
+ AuDebugOn(!inode);
+ AuTraceErrPtr(inode);
+ return inode;
+}
+
+/* lock free root dinfo */
+static int au_show_brs(struct seq_file *seq, struct super_block *sb)
+{
+ int err;
+ aufs_bindex_t bindex, bend;
+ struct path path;
+ struct au_hdentry *hdp;
+ struct au_branch *br;
+
+ err = 0;
+ bend = au_sbend(sb);
+ hdp = au_di(sb->s_root)->di_hdentry;
+ for (bindex = 0; !err && bindex <= bend; bindex++) {
+ br = au_sbr(sb, bindex);
+ path.mnt = br->br_mnt;
+ path.dentry = hdp[bindex].hd_dentry;
+ err = au_seq_path(seq, &path);
+ if (err > 0)
+ err = seq_printf(seq, "=%s",
+ au_optstr_br_perm(br->br_perm));
+ if (!err && bindex != bend)
+ err = seq_putc(seq, ':');
+ }
+
+ return err;
+}
+
+static void au_show_wbr_create(struct seq_file *m, int v,
+ struct au_sbinfo *sbinfo)
+{
+ const char *pat;
+
+ AuRwMustAnyLock(&sbinfo->si_rwsem);
+
+ seq_printf(m, ",create=");
+ pat = au_optstr_wbr_create(v);
+ switch (v) {
+ case AuWbrCreate_TDP:
+ case AuWbrCreate_RR:
+ case AuWbrCreate_MFS:
+ case AuWbrCreate_PMFS:
+ seq_printf(m, pat);
+ break;
+ case AuWbrCreate_MFSV:
+ seq_printf(m, /*pat*/"mfs:%lu",
+ sbinfo->si_wbr_mfs.mfs_expire / HZ);
+ break;
+ case AuWbrCreate_PMFSV:
+ seq_printf(m, /*pat*/"pmfs:%lu",
+ sbinfo->si_wbr_mfs.mfs_expire / HZ);
+ break;
+ case AuWbrCreate_MFSRR:
+ seq_printf(m, /*pat*/"mfsrr:%llu",
+ sbinfo->si_wbr_mfs.mfsrr_watermark);
+ break;
+ case AuWbrCreate_MFSRRV:
+ seq_printf(m, /*pat*/"mfsrr:%llu:%lu",
+ sbinfo->si_wbr_mfs.mfsrr_watermark,
+ sbinfo->si_wbr_mfs.mfs_expire / HZ);
+ break;
+ }
+}
+
+static int au_show_xino(struct seq_file *seq, struct vfsmount *mnt)
+{
+#ifdef CONFIG_SYSFS
+ return 0;
+#else
+ int err;
+ const int len = sizeof(AUFS_XINO_FNAME) - 1;
+ aufs_bindex_t bindex, brid;
+ struct super_block *sb;
+ struct qstr *name;
+ struct file *f;
+ struct dentry *d, *h_root;
+ struct au_hdentry *hdp;
+
+ AuRwMustAnyLock(&sbinfo->si_rwsem);
+
+ err = 0;
+ sb = mnt->mnt_sb;
+ f = au_sbi(sb)->si_xib;
+ if (!f)
+ goto out;
+
+ /* stop printing the default xino path on the first writable branch */
+ h_root = NULL;
+ brid = au_xino_brid(sb);
+ if (brid >= 0) {
+ bindex = au_br_index(sb, brid);
+ hdp = au_di(sb->s_root)->di_hdentry;
+ h_root = hdp[0 + bindex].hd_dentry;
+ }
+ d = f->f_dentry;
+ name = &d->d_name;
+ /* safe ->d_parent because the file is unlinked */
+ if (d->d_parent == h_root
+ && name->len == len
+ && !memcmp(name->name, AUFS_XINO_FNAME, len))
+ goto out;
+
+ seq_puts(seq, ",xino=");
+ err = au_xino_path(seq, f);
+
+ out:
+ return err;
+#endif
+}
+
+/* seq_file will re-call me in case of too long string */
+static int aufs_show_options(struct seq_file *m, struct vfsmount *mnt)
+{
+ int err, n;
+ unsigned int mnt_flags, v;
+ struct super_block *sb;
+ struct au_sbinfo *sbinfo;
+
+#define AuBool(name, str) do { \
+ v = au_opt_test(mnt_flags, name); \
+ if (v != au_opt_test(AuOpt_Def, name)) \
+ seq_printf(m, ",%s" #str, v ? "" : "no"); \
+} while (0)
+
+#define AuStr(name, str) do { \
+ v = mnt_flags & AuOptMask_##name; \
+ if (v != (AuOpt_Def & AuOptMask_##name)) \
+ seq_printf(m, "," #str "=%s", au_optstr_##str(v)); \
+} while (0)
+
+#define AuUInt(name, str, val) do { \
+ if (val != AUFS_##name##_DEF) \
+ seq_printf(m, "," #str "=%u", val); \
+} while (0)
+
+ /* lock free root dinfo */
+ sb = mnt->mnt_sb;
+ si_noflush_read_lock(sb);
+ sbinfo = au_sbi(sb);
+ seq_printf(m, ",si=%lx", sysaufs_si_id(sbinfo));
+
+ mnt_flags = au_mntflags(sb);
+ if (au_opt_test(mnt_flags, XINO)) {
+ err = au_show_xino(m, mnt);
+ if (unlikely(err))
+ goto out;
+ } else
+ seq_puts(m, ",noxino");
+
+ AuBool(TRUNC_XINO, trunc_xino);
+ AuStr(UDBA, udba);
+ AuBool(SHWH, shwh);
+ AuBool(PLINK, plink);
+ AuBool(DIO, dio);
+ /* AuBool(DIRPERM1, dirperm1); */
+ /* AuBool(REFROF, refrof); */
+
+ v = sbinfo->si_wbr_create;
+ if (v != AuWbrCreate_Def)
+ au_show_wbr_create(m, v, sbinfo);
+
+ v = sbinfo->si_wbr_copyup;
+ if (v != AuWbrCopyup_Def)
+ seq_printf(m, ",cpup=%s", au_optstr_wbr_copyup(v));
+
+ v = au_opt_test(mnt_flags, ALWAYS_DIROPQ);
+ if (v != au_opt_test(AuOpt_Def, ALWAYS_DIROPQ))
+ seq_printf(m, ",diropq=%c", v ? 'a' : 'w');
+
+ AuUInt(DIRWH, dirwh, sbinfo->si_dirwh);
+
+ n = sbinfo->si_rdcache / HZ;
+ AuUInt(RDCACHE, rdcache, n);
+
+ AuUInt(RDBLK, rdblk, sbinfo->si_rdblk);
+ AuUInt(RDHASH, rdhash, sbinfo->si_rdhash);
+
+ AuBool(SUM, sum);
+ /* AuBool(SUM_W, wsum); */
+ AuBool(WARN_PERM, warn_perm);
+ AuBool(VERBOSE, verbose);
+
+ out:
+ /* be sure to print "br:" last */
+ if (!sysaufs_brs) {
+ seq_puts(m, ",br:");
+ au_show_brs(m, sb);
+ }
+ si_read_unlock(sb);
+ return 0;
+
+#undef AuBool
+#undef AuStr
+#undef AuUInt
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* sum mode which returns the summation for statfs(2) */
+
+static u64 au_add_till_max(u64 a, u64 b)
+{
+ u64 old;
+
+ old = a;
+ a += b;
+ if (old < a)
+ return a;
+ return ULLONG_MAX;
+}
+
+static int au_statfs_sum(struct super_block *sb, struct kstatfs *buf)
+{
+ int err;
+ u64 blocks, bfree, bavail, files, ffree;
+ aufs_bindex_t bend, bindex, i;
+ unsigned char shared;
+ struct vfsmount *h_mnt;
+ struct super_block *h_sb;
+
+ blocks = 0;
+ bfree = 0;
+ bavail = 0;
+ files = 0;
+ ffree = 0;
+
+ err = 0;
+ bend = au_sbend(sb);
+ for (bindex = bend; bindex >= 0; bindex--) {
+ h_mnt = au_sbr_mnt(sb, bindex);
+ h_sb = h_mnt->mnt_sb;
+ shared = 0;
+ for (i = bindex + 1; !shared && i <= bend; i++)
+ shared = (au_sbr_sb(sb, i) == h_sb);
+ if (shared)
+ continue;
+
+ /* sb->s_root for NFS is unreliable */
+ err = vfs_statfs(h_mnt->mnt_root, buf);
+ if (unlikely(err))
+ goto out;
+
+ blocks = au_add_till_max(blocks, buf->f_blocks);
+ bfree = au_add_till_max(bfree, buf->f_bfree);
+ bavail = au_add_till_max(bavail, buf->f_bavail);
+ files = au_add_till_max(files, buf->f_files);
+ ffree = au_add_till_max(ffree, buf->f_ffree);
+ }
+
+ buf->f_blocks = blocks;
+ buf->f_bfree = bfree;
+ buf->f_bavail = bavail;
+ buf->f_files = files;
+ buf->f_ffree = ffree;
+
+ out:
+ return err;
+}
+
+static int aufs_statfs(struct dentry *dentry, struct kstatfs *buf)
+{
+ int err;
+ struct super_block *sb;
+
+ /* lock free root dinfo */
+ sb = dentry->d_sb;
+ si_noflush_read_lock(sb);
+ if (!au_opt_test(au_mntflags(sb), SUM))
+ /* sb->s_root for NFS is unreliable */
+ err = vfs_statfs(au_sbr_mnt(sb, 0)->mnt_root, buf);
+ else
+ err = au_statfs_sum(sb, buf);
+ si_read_unlock(sb);
+
+ if (!err) {
+ buf->f_type = AUFS_SUPER_MAGIC;
+ buf->f_namelen = AUFS_MAX_NAMELEN;
+ memset(&buf->f_fsid, 0, sizeof(buf->f_fsid));
+ }
+ /* buf->f_bsize = buf->f_blocks = buf->f_bfree = buf->f_bavail = -1; */
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * this IS NOT for super_operations.
+ * I guess it will be reverted someday.
+ */
+static void aufs_umount_begin(struct super_block *sb)
+{
+ struct au_sbinfo *sbinfo;
+
+ sbinfo = au_sbi(sb);
+ if (!sbinfo)
+ return;
+
+ si_write_lock(sb);
+ if (au_opt_test(au_mntflags(sb), PLINK))
+ au_plink_put(sb);
+ if (sbinfo->si_wbr_create_ops->fin)
+ sbinfo->si_wbr_create_ops->fin(sb);
+ si_write_unlock(sb);
+}
+
+/* final actions when unmounting a file system */
+static void aufs_put_super(struct super_block *sb)
+{
+ struct au_sbinfo *sbinfo;
+
+ sbinfo = au_sbi(sb);
+ if (!sbinfo)
+ return;
+
+ aufs_umount_begin(sb);
+ dbgaufs_si_fin(sbinfo);
+ kobject_put(&sbinfo->si_kobj);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * refresh dentry and inode at remount time.
+ */
+static int do_refresh(struct dentry *dentry, mode_t type,
+ unsigned int dir_flags)
+{
+ int err;
+ struct dentry *parent;
+
+ di_write_lock_child(dentry);
+ parent = dget_parent(dentry);
+ di_read_lock_parent(parent, AuLock_IR);
+
+ /* returns the number of positive dentries */
+ err = au_refresh_hdentry(dentry, type);
+ if (err >= 0) {
+ struct inode *inode = dentry->d_inode;
+ err = au_refresh_hinode(inode, dentry);
+ if (!err && type == S_IFDIR)
+ au_hn_reset(inode, dir_flags);
+ }
+ if (unlikely(err))
+ pr_err("unrecoverable error %d, %.*s\n",
+ err, AuDLNPair(dentry));
+
+ di_read_unlock(parent, AuLock_IR);
+ dput(parent);
+ di_write_unlock(dentry);
+
+ return err;
+}
+
+static int test_dir(struct dentry *dentry, void *arg __maybe_unused)
+{
+ return S_ISDIR(dentry->d_inode->i_mode);
+}
+
+/* gave up consolidating with refresh_nondir() */
+static int refresh_dir(struct dentry *root, unsigned int sigen)
+{
+ int err, i, j, ndentry, e;
+ struct au_dcsub_pages dpages;
+ struct au_dpage *dpage;
+ struct dentry **dentries;
+ struct inode *inode;
+ const unsigned int flags = au_hi_flags(root->d_inode, /*isdir*/1);
+
+ err = 0;
+ list_for_each_entry(inode, &root->d_sb->s_inodes, i_sb_list)
+ if (S_ISDIR(inode->i_mode) && au_iigen(inode) != sigen) {
+ ii_write_lock_child(inode);
+ e = au_refresh_hinode_self(inode, /*do_attr*/1);
+ ii_write_unlock(inode);
+ if (unlikely(e)) {
+ AuDbg("e %d, i%lu\n", e, inode->i_ino);
+ if (!err)
+ err = e;
+ /* go on even if err */
+ }
+ }
+
+ e = au_dpages_init(&dpages, GFP_NOFS);
+ if (unlikely(e)) {
+ if (!err)
+ err = e;
+ goto out;
+ }
+ e = au_dcsub_pages(&dpages, root, test_dir, NULL);
+ if (unlikely(e)) {
+ if (!err)
+ err = e;
+ goto out_dpages;
+ }
+
+ for (i = 0; !e && i < dpages.ndpage; i++) {
+ dpage = dpages.dpages + i;
+ dentries = dpage->dentries;
+ ndentry = dpage->ndentry;
+ for (j = 0; !e && j < ndentry; j++) {
+ struct dentry *d;
+
+ d = dentries[j];
+ au_dbg_verify_dir_parent(d, sigen);
+ if (au_digen(d) != sigen) {
+ e = do_refresh(d, S_IFDIR, flags);
+ if (unlikely(e && !err))
+ err = e;
+ /* break on err */
+ }
+ }
+ }
+
+ out_dpages:
+ au_dpages_free(&dpages);
+ out:
+ return err;
+}
+
+static int test_nondir(struct dentry *dentry, void *arg __maybe_unused)
+{
+ return !S_ISDIR(dentry->d_inode->i_mode);
+}
+
+static int refresh_nondir(struct dentry *root, unsigned int sigen,
+ int do_dentry)
+{
+ int err, i, j, ndentry, e;
+ struct au_dcsub_pages dpages;
+ struct au_dpage *dpage;
+ struct dentry **dentries;
+ struct inode *inode;
+
+ err = 0;
+ list_for_each_entry(inode, &root->d_sb->s_inodes, i_sb_list)
+ if (!S_ISDIR(inode->i_mode) && au_iigen(inode) != sigen) {
+ ii_write_lock_child(inode);
+ e = au_refresh_hinode_self(inode, /*do_attr*/1);
+ ii_write_unlock(inode);
+ if (unlikely(e)) {
+ AuDbg("e %d, i%lu\n", e, inode->i_ino);
+ if (!err)
+ err = e;
+ /* go on even if err */
+ }
+ }
+
+ if (!do_dentry)
+ goto out;
+
+ e = au_dpages_init(&dpages, GFP_NOFS);
+ if (unlikely(e)) {
+ if (!err)
+ err = e;
+ goto out;
+ }
+ e = au_dcsub_pages(&dpages, root, test_nondir, NULL);
+ if (unlikely(e)) {
+ if (!err)
+ err = e;
+ goto out_dpages;
+ }
+
+ for (i = 0; i < dpages.ndpage; i++) {
+ dpage = dpages.dpages + i;
+ dentries = dpage->dentries;
+ ndentry = dpage->ndentry;
+ for (j = 0; j < ndentry; j++) {
+ struct dentry *d;
+
+ d = dentries[j];
+ au_dbg_verify_nondir_parent(d, sigen);
+ inode = d->d_inode;
+ if (inode && au_digen(d) != sigen) {
+ e = do_refresh(d, inode->i_mode & S_IFMT,
+ /*dir_flags*/0);
+ if (unlikely(e && !err))
+ err = e;
+ /* go on even err */
+ }
+ }
+ }
+
+ out_dpages:
+ au_dpages_free(&dpages);
+ out:
+ return err;
+}
+
+static void au_remount_refresh(struct super_block *sb, unsigned int flags)
+{
+ int err;
+ unsigned int sigen;
+ struct au_sbinfo *sbinfo;
+ struct dentry *root;
+ struct inode *inode;
+
+ au_sigen_inc(sb);
+ sigen = au_sigen(sb);
+ sbinfo = au_sbi(sb);
+ au_fclr_si(sbinfo, FAILED_REFRESH_DIRS);
+
+ root = sb->s_root;
+ DiMustNoWaiters(root);
+ inode = root->d_inode;
+ IiMustNoWaiters(inode);
+ au_hn_reset(inode, au_hi_flags(inode, /*isdir*/1));
+ di_write_unlock(root);
+
+ err = refresh_dir(root, sigen);
+ if (unlikely(err)) {
+ au_fset_si(sbinfo, FAILED_REFRESH_DIRS);
+ pr_warning("Refreshing directories failed, ignored (%d)\n",
+ err);
+ }
+
+ if (au_ftest_opts(flags, REFRESH_NONDIR)) {
+ err = refresh_nondir(root, sigen, !err);
+ if (unlikely(err))
+ pr_warning("Refreshing non-directories failed, ignored"
+ "(%d)\n", err);
+ }
+
+ /* aufs_write_lock() calls ..._child() */
+ di_write_lock_child(root);
+ au_cpup_attr_all(root->d_inode, /*force*/1);
+}
+
+/* stop extra interpretation of errno in mount(8), and strange error messages */
+static int cvt_err(int err)
+{
+ AuTraceErr(err);
+
+ switch (err) {
+ case -ENOENT:
+ case -ENOTDIR:
+ case -EEXIST:
+ case -EIO:
+ err = -EINVAL;
+ }
+ return err;
+}
+
+static int aufs_remount_fs(struct super_block *sb, int *flags, char *data)
+{
+ int err, do_dx;
+ unsigned int mntflags;
+ struct au_opts opts;
+ struct dentry *root;
+ struct inode *inode;
+ struct au_sbinfo *sbinfo;
+
+ err = 0;
+ root = sb->s_root;
+ if (!data || !*data) {
+ aufs_write_lock(root);
+ err = au_opts_verify(sb, *flags, /*pending*/0);
+ aufs_write_unlock(root);
+ goto out;
+ }
+
+ err = -ENOMEM;
+ memset(&opts, 0, sizeof(opts));
+ opts.opt = (void *)__get_free_page(GFP_NOFS);
+ if (unlikely(!opts.opt))
+ goto out;
+ opts.max_opt = PAGE_SIZE / sizeof(*opts.opt);
+ opts.flags = AuOpts_REMOUNT;
+ opts.sb_flags = *flags;
+
+ /* parse it before aufs lock */
+ err = au_opts_parse(sb, data, &opts);
+ if (unlikely(err))
+ goto out_opts;
+
+ sbinfo = au_sbi(sb);
+ inode = root->d_inode;
+ mutex_lock(&inode->i_mutex);
+ aufs_write_lock(root);
+
+ /* au_opts_remount() may return an error */
+ err = au_opts_remount(sb, &opts);
+ au_opts_free(&opts);
+
+ if (au_ftest_opts(opts.flags, REFRESH_DIR)
+ || au_ftest_opts(opts.flags, REFRESH_NONDIR))
+ au_remount_refresh(sb, opts.flags);
+
+ if (au_ftest_opts(opts.flags, REFRESH_DYAOP)) {
+ mntflags = au_mntflags(sb);
+ do_dx = !!au_opt_test(mntflags, DIO);
+ au_dy_arefresh(do_dx);
+ }
+
+ aufs_write_unlock(root);
+ mutex_unlock(&inode->i_mutex);
+
+ out_opts:
+ free_page((unsigned long)opts.opt);
+ out:
+ err = cvt_err(err);
+ AuTraceErr(err);
+ return err;
+}
+
+static const struct super_operations aufs_sop = {
+ .alloc_inode = aufs_alloc_inode,
+ .destroy_inode = aufs_destroy_inode,
+ .drop_inode = generic_delete_inode,
+ .show_options = aufs_show_options,
+ .statfs = aufs_statfs,
+ .put_super = aufs_put_super,
+ .remount_fs = aufs_remount_fs
+};
+
+/* ---------------------------------------------------------------------- */
+
+static int alloc_root(struct super_block *sb)
+{
+ int err;
+ struct inode *inode;
+ struct dentry *root;
+
+ err = -ENOMEM;
+ inode = au_iget_locked(sb, AUFS_ROOT_INO);
+ err = PTR_ERR(inode);
+ if (IS_ERR(inode))
+ goto out;
+
+ inode->i_op = &aufs_dir_iop;
+ inode->i_fop = &aufs_dir_fop;
+ inode->i_mode = S_IFDIR;
+ inode->i_nlink = 2;
+ unlock_new_inode(inode);
+
+ root = d_alloc_root(inode);
+ if (unlikely(!root))
+ goto out_iput;
+ err = PTR_ERR(root);
+ if (IS_ERR(root))
+ goto out_iput;
+
+ err = au_di_init(root);
+ if (!err) {
+ sb->s_root = root;
+ return 0; /* success */
+ }
+ dput(root);
+ goto out; /* do not iput */
+
+ out_iput:
+ iget_failed(inode);
+ iput(inode);
+ out:
+ return err;
+
+}
+
+static int aufs_fill_super(struct super_block *sb, void *raw_data,
+ int silent __maybe_unused)
+{
+ int err;
+ struct au_opts opts;
+ struct dentry *root;
+ struct inode *inode;
+ char *arg = raw_data;
+
+ if (unlikely(!arg || !*arg)) {
+ err = -EINVAL;
+ pr_err("no arg\n");
+ goto out;
+ }
+
+ err = -ENOMEM;
+ memset(&opts, 0, sizeof(opts));
+ opts.opt = (void *)__get_free_page(GFP_NOFS);
+ if (unlikely(!opts.opt))
+ goto out;
+ opts.max_opt = PAGE_SIZE / sizeof(*opts.opt);
+ opts.sb_flags = sb->s_flags;
+
+ err = au_si_alloc(sb);
+ if (unlikely(err))
+ goto out_opts;
+
+ /* all timestamps always follow the ones on the branch */
+ sb->s_flags |= MS_NOATIME | MS_NODIRATIME;
+ sb->s_op = &aufs_sop;
+ sb->s_magic = AUFS_SUPER_MAGIC;
+ sb->s_maxbytes = 0;
+ au_export_init(sb);
+
+ err = alloc_root(sb);
+ if (unlikely(err)) {
+ si_write_unlock(sb);
+ goto out_info;
+ }
+ root = sb->s_root;
+ inode = root->d_inode;
+
+ /*
+ * actually we can parse options regardless aufs lock here.
+ * but at remount time, parsing must be done before aufs lock.
+ * so we follow the same rule.
+ */
+ ii_write_lock_parent(inode);
+ aufs_write_unlock(root);
+ err = au_opts_parse(sb, arg, &opts);
+ if (unlikely(err))
+ goto out_root;
+
+ /* lock vfs_inode first, then aufs. */
+ mutex_lock(&inode->i_mutex);
+ aufs_write_lock(root);
+ err = au_opts_mount(sb, &opts);
+ au_opts_free(&opts);
+ aufs_write_unlock(root);
+ mutex_unlock(&inode->i_mutex);
+ if (!err)
+ goto out_opts; /* success */
+
+ out_root:
+ dput(root);
+ sb->s_root = NULL;
+ out_info:
+ kobject_put(&au_sbi(sb)->si_kobj);
+ sb->s_fs_info = NULL;
+ out_opts:
+ free_page((unsigned long)opts.opt);
+ out:
+ AuTraceErr(err);
+ err = cvt_err(err);
+ AuTraceErr(err);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int aufs_get_sb(struct file_system_type *fs_type, int flags,
+ const char *dev_name __maybe_unused, void *raw_data,
+ struct vfsmount *mnt)
+{
+ int err;
+ struct super_block *sb;
+
+ /* all timestamps always follow the ones on the branch */
+ /* mnt->mnt_flags |= MNT_NOATIME | MNT_NODIRATIME; */
+ err = get_sb_nodev(fs_type, flags, raw_data, aufs_fill_super, mnt);
+ if (!err) {
+ sb = mnt->mnt_sb;
+ si_write_lock(sb);
+ sysaufs_brs_add(sb, 0);
+ si_write_unlock(sb);
+ }
+ return err;
+}
+
+struct file_system_type aufs_fs_type = {
+ .name = AUFS_FSTYPE,
+ .fs_flags =
+ FS_RENAME_DOES_D_MOVE /* a race between rename and others */
+ | FS_REVAL_DOT, /* for NFS branch and udba */
+ .get_sb = aufs_get_sb,
+ .kill_sb = generic_shutdown_super,
+ /* no need to __module_get() and module_put(). */
+ .owner = THIS_MODULE,
+};
diff --git a/ubuntu/aufs/super.h b/ubuntu/aufs/super.h
new file mode 100644
index 00000000000..cd6fdc4bc15
--- /dev/null
+++ b/ubuntu/aufs/super.h
@@ -0,0 +1,361 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * super_block operations
+ */
+
+#ifndef __AUFS_SUPER_H__
+#define __AUFS_SUPER_H__
+
+#ifdef __KERNEL__
+
+#include <linux/fs.h>
+#include <linux/aufs_type.h>
+#include "rwsem.h"
+#include "spl.h"
+#include "wkq.h"
+
+typedef ssize_t (*au_readf_t)(struct file *, char __user *, size_t, loff_t *);
+typedef ssize_t (*au_writef_t)(struct file *, const char __user *, size_t,
+ loff_t *);
+
+/* policies to select one among multiple writable branches */
+struct au_wbr_copyup_operations {
+ int (*copyup)(struct dentry *dentry);
+};
+
+struct au_wbr_create_operations {
+ int (*create)(struct dentry *dentry, int isdir);
+ int (*init)(struct super_block *sb);
+ int (*fin)(struct super_block *sb);
+};
+
+struct au_wbr_mfs {
+ struct mutex mfs_lock; /* protect this structure */
+ unsigned long mfs_jiffy;
+ unsigned long mfs_expire;
+ aufs_bindex_t mfs_bindex;
+
+ unsigned long long mfsrr_bytes;
+ unsigned long long mfsrr_watermark;
+};
+
+struct au_branch;
+struct au_sbinfo {
+ /* nowait tasks in the system-wide workqueue */
+ struct au_nowait_tasks si_nowait;
+
+ struct au_rwsem si_rwsem;
+
+ /* branch management */
+ unsigned int si_generation;
+
+ /* see above flags */
+ unsigned char au_si_status;
+
+ aufs_bindex_t si_bend;
+ aufs_bindex_t si_last_br_id;
+ struct au_branch **si_branch;
+
+ /* policy to select a writable branch */
+ unsigned char si_wbr_copyup;
+ unsigned char si_wbr_create;
+ struct au_wbr_copyup_operations *si_wbr_copyup_ops;
+ struct au_wbr_create_operations *si_wbr_create_ops;
+
+ /* round robin */
+ atomic_t si_wbr_rr_next;
+
+ /* most free space */
+ struct au_wbr_mfs si_wbr_mfs;
+
+ /* mount flags */
+ /* include/asm-ia64/siginfo.h defines a macro named si_flags */
+ unsigned int si_mntflags;
+
+ /* external inode number (bitmap and translation table) */
+ au_readf_t si_xread;
+ au_writef_t si_xwrite;
+ struct file *si_xib;
+ struct mutex si_xib_mtx; /* protect xib members */
+ unsigned long *si_xib_buf;
+ unsigned long si_xib_last_pindex;
+ int si_xib_next_bit;
+ aufs_bindex_t si_xino_brid;
+ /* reserved for future use */
+ /* unsigned long long si_xib_limit; */ /* Max xib file size */
+
+#ifdef CONFIG_AUFS_EXPORT
+ /* i_generation */
+ struct file *si_xigen;
+ atomic_t si_xigen_next;
+#endif
+
+ /* vdir parameters */
+ unsigned long si_rdcache; /* max cache time in HZ */
+ unsigned int si_rdblk; /* deblk size */
+ unsigned int si_rdhash; /* hash size */
+
+ /*
+ * If the number of whiteouts are larger than si_dirwh, leave all of
+ * them after au_whtmp_ren to reduce the cost of rmdir(2).
+ * future fsck.aufs or kernel thread will remove them later.
+ * Otherwise, remove all whiteouts and the dir in rmdir(2).
+ */
+ unsigned int si_dirwh;
+
+ /*
+ * rename(2) a directory with all children.
+ */
+ /* reserved for future use */
+ /* int si_rendir; */
+
+ /* pseudo_link list */
+ struct au_splhead si_plink;
+ wait_queue_head_t si_plink_wq;
+ spinlock_t si_plink_maint_lock;
+ struct file *si_plink_maint;
+
+ /*
+ * sysfs and lifetime management.
+ * this is not a small structure and it may be a waste of memory in case
+ * of sysfs is disabled, particulary when many aufs-es are mounted.
+ * but using sysfs is majority.
+ */
+ struct kobject si_kobj;
+#ifdef CONFIG_DEBUG_FS
+ struct dentry *si_dbgaufs, *si_dbgaufs_xib;
+#ifdef CONFIG_AUFS_EXPORT
+ struct dentry *si_dbgaufs_xigen;
+#endif
+#endif
+
+ /* dirty, necessary for unmounting, sysfs and sysrq */
+ struct super_block *si_sb;
+};
+
+/* sbinfo status flags */
+/*
+ * set true when refresh_dirs() failed at remount time.
+ * then try refreshing dirs at access time again.
+ * if it is false, refreshing dirs at access time is unnecesary
+ */
+#define AuSi_FAILED_REFRESH_DIRS 1
+static inline unsigned char au_do_ftest_si(struct au_sbinfo *sbi,
+ unsigned int flag)
+{
+ AuRwMustAnyLock(&sbi->si_rwsem);
+ return sbi->au_si_status & flag;
+}
+#define au_ftest_si(sbinfo, name) au_do_ftest_si(sbinfo, AuSi_##name)
+#define au_fset_si(sbinfo, name) do { \
+ AuRwMustWriteLock(&(sbinfo)->si_rwsem); \
+ (sbinfo)->au_si_status |= AuSi_##name; \
+} while (0)
+#define au_fclr_si(sbinfo, name) do { \
+ AuRwMustWriteLock(&(sbinfo)->si_rwsem); \
+ (sbinfo)->au_si_status &= ~AuSi_##name; \
+} while (0)
+
+/* ---------------------------------------------------------------------- */
+
+/* policy to select one among writable branches */
+#define AuWbrCopyup(sbinfo, ...) \
+ ((sbinfo)->si_wbr_copyup_ops->copyup(__VA_ARGS__))
+#define AuWbrCreate(sbinfo, ...) \
+ ((sbinfo)->si_wbr_create_ops->create(__VA_ARGS__))
+
+/* flags for si_read_lock()/aufs_read_lock()/di_read_lock() */
+#define AuLock_DW 1 /* write-lock dentry */
+#define AuLock_IR (1 << 1) /* read-lock inode */
+#define AuLock_IW (1 << 2) /* write-lock inode */
+#define AuLock_FLUSH (1 << 3) /* wait for 'nowait' tasks */
+#define AuLock_DIR (1 << 4) /* target is a dir */
+#define au_ftest_lock(flags, name) ((flags) & AuLock_##name)
+#define au_fset_lock(flags, name) { (flags) |= AuLock_##name; }
+#define au_fclr_lock(flags, name) { (flags) &= ~AuLock_##name; }
+
+/* ---------------------------------------------------------------------- */
+
+/* super.c */
+extern struct file_system_type aufs_fs_type;
+struct inode *au_iget_locked(struct super_block *sb, ino_t ino);
+
+/* sbinfo.c */
+void au_si_free(struct kobject *kobj);
+int au_si_alloc(struct super_block *sb);
+int au_sbr_realloc(struct au_sbinfo *sbinfo, int nbr);
+
+unsigned int au_sigen_inc(struct super_block *sb);
+aufs_bindex_t au_new_br_id(struct super_block *sb);
+
+void aufs_read_lock(struct dentry *dentry, int flags);
+void aufs_read_unlock(struct dentry *dentry, int flags);
+void aufs_write_lock(struct dentry *dentry);
+void aufs_write_unlock(struct dentry *dentry);
+void aufs_read_and_write_lock2(struct dentry *d1, struct dentry *d2, int isdir);
+void aufs_read_and_write_unlock2(struct dentry *d1, struct dentry *d2);
+
+/* wbr_policy.c */
+extern struct au_wbr_copyup_operations au_wbr_copyup_ops[];
+extern struct au_wbr_create_operations au_wbr_create_ops[];
+int au_cpdown_dirs(struct dentry *dentry, aufs_bindex_t bdst);
+
+/* ---------------------------------------------------------------------- */
+
+static inline struct au_sbinfo *au_sbi(struct super_block *sb)
+{
+ return sb->s_fs_info;
+}
+
+/* ---------------------------------------------------------------------- */
+
+#ifdef CONFIG_AUFS_EXPORT
+void au_export_init(struct super_block *sb);
+
+static inline int au_test_nfsd(struct task_struct *tsk)
+{
+ return !tsk->mm && !strcmp(tsk->comm, "nfsd");
+}
+
+int au_xigen_inc(struct inode *inode);
+int au_xigen_new(struct inode *inode);
+int au_xigen_set(struct super_block *sb, struct file *base);
+void au_xigen_clr(struct super_block *sb);
+
+static inline int au_busy_or_stale(void)
+{
+ if (!au_test_nfsd(current))
+ return -EBUSY;
+ return -ESTALE;
+}
+#else
+AuStubVoid(au_export_init, struct super_block *sb)
+AuStubInt0(au_test_nfsd, struct task_struct *tsk)
+AuStubInt0(au_xigen_inc, struct inode *inode)
+AuStubInt0(au_xigen_new, struct inode *inode)
+AuStubInt0(au_xigen_set, struct super_block *sb, struct file *base)
+AuStubVoid(au_xigen_clr, struct super_block *sb)
+static inline int au_busy_or_stale(void)
+{
+ return -EBUSY;
+}
+#endif /* CONFIG_AUFS_EXPORT */
+
+/* ---------------------------------------------------------------------- */
+
+static inline void dbgaufs_si_null(struct au_sbinfo *sbinfo)
+{
+ /*
+ * This function is a dynamic '__init' fucntion actually,
+ * so the tiny check for si_rwsem is unnecessary.
+ */
+ /* AuRwMustWriteLock(&sbinfo->si_rwsem); */
+#ifdef CONFIG_DEBUG_FS
+ sbinfo->si_dbgaufs = NULL;
+ sbinfo->si_dbgaufs_xib = NULL;
+#ifdef CONFIG_AUFS_EXPORT
+ sbinfo->si_dbgaufs_xigen = NULL;
+#endif
+#endif
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* lock superblock. mainly for entry point functions */
+/*
+ * si_noflush_read_lock, si_noflush_write_lock,
+ * si_read_unlock, si_write_unlock, si_downgrade_lock
+ */
+AuSimpleLockRwsemFuncs(si_noflush, struct super_block *sb,
+ &au_sbi(sb)->si_rwsem);
+AuSimpleUnlockRwsemFuncs(si, struct super_block *sb, &au_sbi(sb)->si_rwsem);
+
+#define SiMustNoWaiters(sb) AuRwMustNoWaiters(&au_sbi(sb)->si_rwsem)
+#define SiMustAnyLock(sb) AuRwMustAnyLock(&au_sbi(sb)->si_rwsem)
+#define SiMustWriteLock(sb) AuRwMustWriteLock(&au_sbi(sb)->si_rwsem)
+
+static inline void si_read_lock(struct super_block *sb, int flags)
+{
+ if (au_ftest_lock(flags, FLUSH))
+ au_nwt_flush(&au_sbi(sb)->si_nowait);
+ si_noflush_read_lock(sb);
+}
+
+static inline void si_write_lock(struct super_block *sb)
+{
+ au_nwt_flush(&au_sbi(sb)->si_nowait);
+ si_noflush_write_lock(sb);
+}
+
+static inline int si_read_trylock(struct super_block *sb, int flags)
+{
+ if (au_ftest_lock(flags, FLUSH))
+ au_nwt_flush(&au_sbi(sb)->si_nowait);
+ return si_noflush_read_trylock(sb);
+}
+
+static inline int si_write_trylock(struct super_block *sb, int flags)
+{
+ if (au_ftest_lock(flags, FLUSH))
+ au_nwt_flush(&au_sbi(sb)->si_nowait);
+ return si_noflush_write_trylock(sb);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static inline aufs_bindex_t au_sbend(struct super_block *sb)
+{
+ SiMustAnyLock(sb);
+ return au_sbi(sb)->si_bend;
+}
+
+static inline unsigned int au_mntflags(struct super_block *sb)
+{
+ SiMustAnyLock(sb);
+ return au_sbi(sb)->si_mntflags;
+}
+
+static inline unsigned int au_sigen(struct super_block *sb)
+{
+ SiMustAnyLock(sb);
+ return au_sbi(sb)->si_generation;
+}
+
+static inline struct au_branch *au_sbr(struct super_block *sb,
+ aufs_bindex_t bindex)
+{
+ SiMustAnyLock(sb);
+ return au_sbi(sb)->si_branch[0 + bindex];
+}
+
+static inline void au_xino_brid_set(struct super_block *sb, aufs_bindex_t brid)
+{
+ SiMustWriteLock(sb);
+ au_sbi(sb)->si_xino_brid = brid;
+}
+
+static inline aufs_bindex_t au_xino_brid(struct super_block *sb)
+{
+ SiMustAnyLock(sb);
+ return au_sbi(sb)->si_xino_brid;
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_SUPER_H__ */
diff --git a/ubuntu/aufs/sysaufs.c b/ubuntu/aufs/sysaufs.c
new file mode 100644
index 00000000000..e5be88b63de
--- /dev/null
+++ b/ubuntu/aufs/sysaufs.c
@@ -0,0 +1,107 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * sysfs interface and lifetime management
+ * they are necessary regardless sysfs is disabled.
+ */
+
+#include <linux/fs.h>
+#include <linux/random.h>
+#include <linux/sysfs.h>
+#include "aufs.h"
+
+unsigned long sysaufs_si_mask;
+struct kset *sysaufs_ket;
+
+#define AuSiAttr(_name) { \
+ .attr = { .name = __stringify(_name), .mode = 0444 }, \
+ .show = sysaufs_si_##_name, \
+}
+
+static struct sysaufs_si_attr sysaufs_si_attr_xi_path = AuSiAttr(xi_path);
+struct attribute *sysaufs_si_attrs[] = {
+ &sysaufs_si_attr_xi_path.attr,
+ NULL,
+};
+
+static const struct sysfs_ops au_sbi_ops = {
+ .show = sysaufs_si_show
+};
+
+static struct kobj_type au_sbi_ktype = {
+ .release = au_si_free,
+ .sysfs_ops = &au_sbi_ops,
+ .default_attrs = sysaufs_si_attrs
+};
+
+/* ---------------------------------------------------------------------- */
+
+int sysaufs_si_init(struct au_sbinfo *sbinfo)
+{
+ int err;
+
+ sbinfo->si_kobj.kset = sysaufs_ket;
+ /* cf. sysaufs_name() */
+ err = kobject_init_and_add
+ (&sbinfo->si_kobj, &au_sbi_ktype, /*&sysaufs_ket->kobj*/NULL,
+ SysaufsSiNamePrefix "%lx", sysaufs_si_id(sbinfo));
+
+ dbgaufs_si_null(sbinfo);
+ if (!err) {
+ err = dbgaufs_si_init(sbinfo);
+ if (unlikely(err))
+ kobject_put(&sbinfo->si_kobj);
+ }
+ return err;
+}
+
+void sysaufs_fin(void)
+{
+ dbgaufs_fin();
+ sysfs_remove_group(&sysaufs_ket->kobj, sysaufs_attr_group);
+ kset_unregister(sysaufs_ket);
+}
+
+int __init sysaufs_init(void)
+{
+ int err;
+
+ do {
+ get_random_bytes(&sysaufs_si_mask, sizeof(sysaufs_si_mask));
+ } while (!sysaufs_si_mask);
+
+ err = -EINVAL;
+ sysaufs_ket = kset_create_and_add(AUFS_NAME, NULL, fs_kobj);
+ if (unlikely(!sysaufs_ket))
+ goto out;
+ err = PTR_ERR(sysaufs_ket);
+ if (IS_ERR(sysaufs_ket))
+ goto out;
+ err = sysfs_create_group(&sysaufs_ket->kobj, sysaufs_attr_group);
+ if (unlikely(err)) {
+ kset_unregister(sysaufs_ket);
+ goto out;
+ }
+
+ err = dbgaufs_init();
+ if (unlikely(err))
+ sysaufs_fin();
+ out:
+ return err;
+}
diff --git a/ubuntu/aufs/sysaufs.h b/ubuntu/aufs/sysaufs.h
new file mode 100644
index 00000000000..67969347d99
--- /dev/null
+++ b/ubuntu/aufs/sysaufs.h
@@ -0,0 +1,105 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * sysfs interface and mount lifetime management
+ */
+
+#ifndef __SYSAUFS_H__
+#define __SYSAUFS_H__
+
+#ifdef __KERNEL__
+
+#include <linux/sysfs.h>
+#include <linux/aufs_type.h>
+#include "module.h"
+
+struct super_block;
+struct au_sbinfo;
+
+struct sysaufs_si_attr {
+ struct attribute attr;
+ int (*show)(struct seq_file *seq, struct super_block *sb);
+};
+
+/* ---------------------------------------------------------------------- */
+
+/* sysaufs.c */
+extern unsigned long sysaufs_si_mask;
+extern struct kset *sysaufs_ket;
+extern struct attribute *sysaufs_si_attrs[];
+int sysaufs_si_init(struct au_sbinfo *sbinfo);
+int __init sysaufs_init(void);
+void sysaufs_fin(void);
+
+/* ---------------------------------------------------------------------- */
+
+/* some people doesn't like to show a pointer in kernel */
+static inline unsigned long sysaufs_si_id(struct au_sbinfo *sbinfo)
+{
+ return sysaufs_si_mask ^ (unsigned long)sbinfo;
+}
+
+#define SysaufsSiNamePrefix "si_"
+#define SysaufsSiNameLen (sizeof(SysaufsSiNamePrefix) + 16)
+static inline void sysaufs_name(struct au_sbinfo *sbinfo, char *name)
+{
+ snprintf(name, SysaufsSiNameLen, SysaufsSiNamePrefix "%lx",
+ sysaufs_si_id(sbinfo));
+}
+
+struct au_branch;
+#ifdef CONFIG_SYSFS
+/* sysfs.c */
+extern struct attribute_group *sysaufs_attr_group;
+
+int sysaufs_si_xi_path(struct seq_file *seq, struct super_block *sb);
+ssize_t sysaufs_si_show(struct kobject *kobj, struct attribute *attr,
+ char *buf);
+
+void sysaufs_br_init(struct au_branch *br);
+void sysaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex);
+void sysaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex);
+
+#define sysaufs_brs_init() do {} while (0)
+
+#else
+#define sysaufs_attr_group NULL
+
+AuStubInt0(sysaufs_si_xi_path, struct seq_file *seq, struct super_block *sb)
+
+static inline
+ssize_t sysaufs_si_show(struct kobject *kobj, struct attribute *attr,
+ char *buf)
+{
+ return 0;
+}
+
+AuStubVoid(sysaufs_br_init, struct au_branch *br)
+AuStubVoid(sysaufs_brs_add, struct super_block *sb, aufs_bindex_t bindex)
+AuStubVoid(sysaufs_brs_del, struct super_block *sb, aufs_bindex_t bindex)
+
+static inline void sysaufs_brs_init(void)
+{
+ sysaufs_brs = 0;
+}
+
+#endif /* CONFIG_SYSFS */
+
+#endif /* __KERNEL__ */
+#endif /* __SYSAUFS_H__ */
diff --git a/ubuntu/aufs/sysfs.c b/ubuntu/aufs/sysfs.c
new file mode 100644
index 00000000000..f1bc6fc75db
--- /dev/null
+++ b/ubuntu/aufs/sysfs.c
@@ -0,0 +1,251 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * sysfs interface
+ */
+
+#include <linux/fs.h>
+#include <linux/module.h>
+#include <linux/seq_file.h>
+#include <linux/sysfs.h>
+#include "aufs.h"
+
+#ifdef CONFIG_AUFS_FS_MODULE
+/* this entry violates the "one line per file" policy of sysfs */
+static ssize_t config_show(struct kobject *kobj, struct kobj_attribute *attr,
+ char *buf)
+{
+ ssize_t err;
+ static char *conf =
+/* this file is generated at compiling */
+#include "conf.str"
+ ;
+
+ err = snprintf(buf, PAGE_SIZE, conf);
+ if (unlikely(err >= PAGE_SIZE))
+ err = -EFBIG;
+ return err;
+}
+
+static struct kobj_attribute au_config_attr = __ATTR_RO(config);
+#endif
+
+static struct attribute *au_attr[] = {
+#ifdef CONFIG_AUFS_FS_MODULE
+ &au_config_attr.attr,
+#endif
+ NULL, /* need to NULL terminate the list of attributes */
+};
+
+static struct attribute_group sysaufs_attr_group_body = {
+ .attrs = au_attr
+};
+
+struct attribute_group *sysaufs_attr_group = &sysaufs_attr_group_body;
+
+/* ---------------------------------------------------------------------- */
+
+int sysaufs_si_xi_path(struct seq_file *seq, struct super_block *sb)
+{
+ int err;
+
+ SiMustAnyLock(sb);
+
+ err = 0;
+ if (au_opt_test(au_mntflags(sb), XINO)) {
+ err = au_xino_path(seq, au_sbi(sb)->si_xib);
+ seq_putc(seq, '\n');
+ }
+ return err;
+}
+
+/*
+ * the lifetime of branch is independent from the entry under sysfs.
+ * sysfs handles the lifetime of the entry, and never call ->show() after it is
+ * unlinked.
+ */
+static int sysaufs_si_br(struct seq_file *seq, struct super_block *sb,
+ aufs_bindex_t bindex)
+{
+ struct path path;
+ struct dentry *root;
+ struct au_branch *br;
+
+ AuDbg("b%d\n", bindex);
+
+ root = sb->s_root;
+ di_read_lock_parent(root, !AuLock_IR);
+ br = au_sbr(sb, bindex);
+ path.mnt = br->br_mnt;
+ path.dentry = au_h_dptr(root, bindex);
+ au_seq_path(seq, &path);
+ di_read_unlock(root, !AuLock_IR);
+ seq_printf(seq, "=%s\n", au_optstr_br_perm(br->br_perm));
+ return 0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static struct seq_file *au_seq(char *p, ssize_t len)
+{
+ struct seq_file *seq;
+
+ seq = kzalloc(sizeof(*seq), GFP_NOFS);
+ if (seq) {
+ /* mutex_init(&seq.lock); */
+ seq->buf = p;
+ seq->size = len;
+ return seq; /* success */
+ }
+
+ seq = ERR_PTR(-ENOMEM);
+ return seq;
+}
+
+#define SysaufsBr_PREFIX "br"
+
+/* todo: file size may exceed PAGE_SIZE */
+ssize_t sysaufs_si_show(struct kobject *kobj, struct attribute *attr,
+ char *buf)
+{
+ ssize_t err;
+ long l;
+ aufs_bindex_t bend;
+ struct au_sbinfo *sbinfo;
+ struct super_block *sb;
+ struct seq_file *seq;
+ char *name;
+ struct attribute **cattr;
+
+ sbinfo = container_of(kobj, struct au_sbinfo, si_kobj);
+ sb = sbinfo->si_sb;
+
+ /*
+ * prevent a race condition between sysfs and aufs.
+ * for instance, sysfs_file_read() calls sysfs_get_active_two() which
+ * prohibits maintaining the sysfs entries.
+ * hew we acquire read lock after sysfs_get_active_two().
+ * on the other hand, the remount process may maintain the sysfs/aufs
+ * entries after acquiring write lock.
+ * it can cause a deadlock.
+ * simply we gave up processing read here.
+ */
+ err = -EBUSY;
+ if (unlikely(!si_noflush_read_trylock(sb)))
+ goto out;
+
+ seq = au_seq(buf, PAGE_SIZE);
+ err = PTR_ERR(seq);
+ if (IS_ERR(seq))
+ goto out_unlock;
+
+ name = (void *)attr->name;
+ cattr = sysaufs_si_attrs;
+ while (*cattr) {
+ if (!strcmp(name, (*cattr)->name)) {
+ err = container_of(*cattr, struct sysaufs_si_attr, attr)
+ ->show(seq, sb);
+ goto out_seq;
+ }
+ cattr++;
+ }
+
+ bend = au_sbend(sb);
+ if (!strncmp(name, SysaufsBr_PREFIX, sizeof(SysaufsBr_PREFIX) - 1)) {
+ name += sizeof(SysaufsBr_PREFIX) - 1;
+ err = strict_strtol(name, 10, &l);
+ if (!err) {
+ if (l <= bend)
+ err = sysaufs_si_br(seq, sb, (aufs_bindex_t)l);
+ else
+ err = -ENOENT;
+ }
+ goto out_seq;
+ }
+ BUG();
+
+ out_seq:
+ if (!err) {
+ err = seq->count;
+ /* sysfs limit */
+ if (unlikely(err == PAGE_SIZE))
+ err = -EFBIG;
+ }
+ kfree(seq);
+ out_unlock:
+ si_read_unlock(sb);
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void sysaufs_br_init(struct au_branch *br)
+{
+ struct attribute *attr = &br->br_attr;
+
+ sysfs_attr_init(attr);
+ attr->name = br->br_name;
+ attr->mode = S_IRUGO;
+ attr->owner = THIS_MODULE;
+}
+
+void sysaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex)
+{
+ struct au_branch *br;
+ struct kobject *kobj;
+ aufs_bindex_t bend;
+
+ dbgaufs_brs_del(sb, bindex);
+
+ if (!sysaufs_brs)
+ return;
+
+ kobj = &au_sbi(sb)->si_kobj;
+ bend = au_sbend(sb);
+ for (; bindex <= bend; bindex++) {
+ br = au_sbr(sb, bindex);
+ sysfs_remove_file(kobj, &br->br_attr);
+ }
+}
+
+void sysaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex)
+{
+ int err;
+ aufs_bindex_t bend;
+ struct kobject *kobj;
+ struct au_branch *br;
+
+ dbgaufs_brs_add(sb, bindex);
+
+ if (!sysaufs_brs)
+ return;
+
+ kobj = &au_sbi(sb)->si_kobj;
+ bend = au_sbend(sb);
+ for (; bindex <= bend; bindex++) {
+ br = au_sbr(sb, bindex);
+ snprintf(br->br_name, sizeof(br->br_name), SysaufsBr_PREFIX
+ "%d", bindex);
+ err = sysfs_create_file(kobj, &br->br_attr);
+ if (unlikely(err))
+ pr_warning("failed %s under sysfs(%d)\n",
+ br->br_name, err);
+ }
+}
diff --git a/ubuntu/aufs/sysrq.c b/ubuntu/aufs/sysrq.c
new file mode 100644
index 00000000000..b2f09f7738d
--- /dev/null
+++ b/ubuntu/aufs/sysrq.c
@@ -0,0 +1,119 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * magic sysrq hanlder
+ */
+
+#include <linux/fs.h>
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+/* #include <linux/sysrq.h> */
+#include "aufs.h"
+
+/* ---------------------------------------------------------------------- */
+
+static void sysrq_sb(struct super_block *sb)
+{
+ char *plevel;
+ struct au_sbinfo *sbinfo;
+ struct file *file;
+
+ plevel = au_plevel;
+ au_plevel = KERN_WARNING;
+ au_debug(1);
+
+ sbinfo = au_sbi(sb);
+ /* since we define pr_fmt, call printk directly */
+ printk(KERN_WARNING "si=%lx\n", sysaufs_si_id(sbinfo));
+ printk(KERN_WARNING AUFS_NAME ": superblock\n");
+ au_dpri_sb(sb);
+ printk(KERN_WARNING AUFS_NAME ": root dentry\n");
+ au_dpri_dentry(sb->s_root);
+ printk(KERN_WARNING AUFS_NAME ": root inode\n");
+ au_dpri_inode(sb->s_root->d_inode);
+#if 0
+ struct inode *i;
+ printk(KERN_WARNING AUFS_NAME ": isolated inode\n");
+ list_for_each_entry(i, &sb->s_inodes, i_sb_list)
+ if (list_empty(&i->i_dentry))
+ au_dpri_inode(i);
+#endif
+ printk(KERN_WARNING AUFS_NAME ": files\n");
+ list_for_each_entry(file, &sb->s_files, f_u.fu_list) {
+ umode_t mode;
+ mode = file->f_dentry->d_inode->i_mode;
+ if (!special_file(mode) || au_special_file(mode))
+ au_dpri_file(file);
+ }
+
+ au_plevel = plevel;
+ au_debug(0);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* module parameter */
+static char *aufs_sysrq_key = "a";
+module_param_named(sysrq, aufs_sysrq_key, charp, S_IRUGO);
+MODULE_PARM_DESC(sysrq, "MagicSysRq key for " AUFS_NAME);
+
+static void au_sysrq(int key __maybe_unused,
+ struct tty_struct *tty __maybe_unused)
+{
+ struct kobject *kobj;
+ struct au_sbinfo *sbinfo;
+
+ /* spin_lock(&sysaufs_ket->list_lock); */
+ list_for_each_entry(kobj, &sysaufs_ket->list, entry) {
+ sbinfo = container_of(kobj, struct au_sbinfo, si_kobj);
+ sysrq_sb(sbinfo->si_sb);
+ }
+ /* spin_unlock(&sysaufs_ket->list_lock); */
+}
+
+static struct sysrq_key_op au_sysrq_op = {
+ .handler = au_sysrq,
+ .help_msg = "Aufs",
+ .action_msg = "Aufs",
+ .enable_mask = SYSRQ_ENABLE_DUMP
+};
+
+/* ---------------------------------------------------------------------- */
+
+int __init au_sysrq_init(void)
+{
+ int err;
+ char key;
+
+ err = -1;
+ key = *aufs_sysrq_key;
+ if ('a' <= key && key <= 'z')
+ err = register_sysrq_key(key, &au_sysrq_op);
+ if (unlikely(err))
+ pr_err("err %d, sysrq=%c\n", err, key);
+ return err;
+}
+
+void au_sysrq_fin(void)
+{
+ int err;
+ err = unregister_sysrq_key(*aufs_sysrq_key, &au_sysrq_op);
+ if (unlikely(err))
+ pr_err("err %d (ignored)\n", err);
+}
diff --git a/ubuntu/aufs/vdir.c b/ubuntu/aufs/vdir.c
new file mode 100644
index 00000000000..cd9814b643b
--- /dev/null
+++ b/ubuntu/aufs/vdir.c
@@ -0,0 +1,884 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * virtual or vertical directory
+ */
+
+#include <linux/hash.h>
+#include "aufs.h"
+
+static unsigned int calc_size(int nlen)
+{
+ return ALIGN(sizeof(struct au_vdir_de) + nlen, sizeof(ino_t));
+}
+
+static int set_deblk_end(union au_vdir_deblk_p *p,
+ union au_vdir_deblk_p *deblk_end)
+{
+ if (calc_size(0) <= deblk_end->deblk - p->deblk) {
+ p->de->de_str.len = 0;
+ /* smp_mb(); */
+ return 0;
+ }
+ return -1; /* error */
+}
+
+/* returns true or false */
+static int is_deblk_end(union au_vdir_deblk_p *p,
+ union au_vdir_deblk_p *deblk_end)
+{
+ if (calc_size(0) <= deblk_end->deblk - p->deblk)
+ return !p->de->de_str.len;
+ return 1;
+}
+
+static unsigned char *last_deblk(struct au_vdir *vdir)
+{
+ return vdir->vd_deblk[vdir->vd_nblk - 1];
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* estimate the apropriate size for name hash table */
+unsigned int au_rdhash_est(loff_t sz)
+{
+ unsigned int n;
+
+ n = UINT_MAX;
+ sz >>= 10;
+ if (sz < n)
+ n = sz;
+ if (sz < AUFS_RDHASH_DEF)
+ n = AUFS_RDHASH_DEF;
+ /* pr_info("n %u\n", n); */
+ return n;
+}
+
+/*
+ * the allocated memory has to be freed by
+ * au_nhash_wh_free() or au_nhash_de_free().
+ */
+int au_nhash_alloc(struct au_nhash *nhash, unsigned int num_hash, gfp_t gfp)
+{
+ struct hlist_head *head;
+ unsigned int u;
+
+ head = kmalloc(sizeof(*nhash->nh_head) * num_hash, gfp);
+ if (head) {
+ nhash->nh_num = num_hash;
+ nhash->nh_head = head;
+ for (u = 0; u < num_hash; u++)
+ INIT_HLIST_HEAD(head++);
+ return 0; /* success */
+ }
+
+ return -ENOMEM;
+}
+
+static void nhash_count(struct hlist_head *head)
+{
+#if 0
+ unsigned long n;
+ struct hlist_node *pos;
+
+ n = 0;
+ hlist_for_each(pos, head)
+ n++;
+ pr_info("%lu\n", n);
+#endif
+}
+
+static void au_nhash_wh_do_free(struct hlist_head *head)
+{
+ struct au_vdir_wh *tpos;
+ struct hlist_node *pos, *node;
+
+ hlist_for_each_entry_safe(tpos, pos, node, head, wh_hash) {
+ /* hlist_del(pos); */
+ kfree(tpos);
+ }
+}
+
+static void au_nhash_de_do_free(struct hlist_head *head)
+{
+ struct au_vdir_dehstr *tpos;
+ struct hlist_node *pos, *node;
+
+ hlist_for_each_entry_safe(tpos, pos, node, head, hash) {
+ /* hlist_del(pos); */
+ au_cache_free_vdir_dehstr(tpos);
+ }
+}
+
+static void au_nhash_do_free(struct au_nhash *nhash,
+ void (*free)(struct hlist_head *head))
+{
+ unsigned int n;
+ struct hlist_head *head;
+
+ n = nhash->nh_num;
+ if (!n)
+ return;
+
+ head = nhash->nh_head;
+ while (n-- > 0) {
+ nhash_count(head);
+ free(head++);
+ }
+ kfree(nhash->nh_head);
+}
+
+void au_nhash_wh_free(struct au_nhash *whlist)
+{
+ au_nhash_do_free(whlist, au_nhash_wh_do_free);
+}
+
+static void au_nhash_de_free(struct au_nhash *delist)
+{
+ au_nhash_do_free(delist, au_nhash_de_do_free);
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_nhash_test_longer_wh(struct au_nhash *whlist, aufs_bindex_t btgt,
+ int limit)
+{
+ int num;
+ unsigned int u, n;
+ struct hlist_head *head;
+ struct au_vdir_wh *tpos;
+ struct hlist_node *pos;
+
+ num = 0;
+ n = whlist->nh_num;
+ head = whlist->nh_head;
+ for (u = 0; u < n; u++, head++)
+ hlist_for_each_entry(tpos, pos, head, wh_hash)
+ if (tpos->wh_bindex == btgt && ++num > limit)
+ return 1;
+ return 0;
+}
+
+static struct hlist_head *au_name_hash(struct au_nhash *nhash,
+ unsigned char *name,
+ unsigned int len)
+{
+ unsigned int v;
+ /* const unsigned int magic_bit = 12; */
+
+ AuDebugOn(!nhash->nh_num || !nhash->nh_head);
+
+ v = 0;
+ while (len--)
+ v += *name++;
+ /* v = hash_long(v, magic_bit); */
+ v %= nhash->nh_num;
+ return nhash->nh_head + v;
+}
+
+static int au_nhash_test_name(struct au_vdir_destr *str, const char *name,
+ int nlen)
+{
+ return str->len == nlen && !memcmp(str->name, name, nlen);
+}
+
+/* returns found or not */
+int au_nhash_test_known_wh(struct au_nhash *whlist, char *name, int nlen)
+{
+ struct hlist_head *head;
+ struct au_vdir_wh *tpos;
+ struct hlist_node *pos;
+ struct au_vdir_destr *str;
+
+ head = au_name_hash(whlist, name, nlen);
+ hlist_for_each_entry(tpos, pos, head, wh_hash) {
+ str = &tpos->wh_str;
+ AuDbg("%.*s\n", str->len, str->name);
+ if (au_nhash_test_name(str, name, nlen))
+ return 1;
+ }
+ return 0;
+}
+
+/* returns found(true) or not */
+static int test_known(struct au_nhash *delist, char *name, int nlen)
+{
+ struct hlist_head *head;
+ struct au_vdir_dehstr *tpos;
+ struct hlist_node *pos;
+ struct au_vdir_destr *str;
+
+ head = au_name_hash(delist, name, nlen);
+ hlist_for_each_entry(tpos, pos, head, hash) {
+ str = tpos->str;
+ AuDbg("%.*s\n", str->len, str->name);
+ if (au_nhash_test_name(str, name, nlen))
+ return 1;
+ }
+ return 0;
+}
+
+static void au_shwh_init_wh(struct au_vdir_wh *wh, ino_t ino,
+ unsigned char d_type)
+{
+#ifdef CONFIG_AUFS_SHWH
+ wh->wh_ino = ino;
+ wh->wh_type = d_type;
+#endif
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_nhash_append_wh(struct au_nhash *whlist, char *name, int nlen, ino_t ino,
+ unsigned int d_type, aufs_bindex_t bindex,
+ unsigned char shwh)
+{
+ int err;
+ struct au_vdir_destr *str;
+ struct au_vdir_wh *wh;
+
+ AuDbg("%.*s\n", nlen, name);
+ AuDebugOn(!whlist->nh_num || !whlist->nh_head);
+
+ err = -ENOMEM;
+ wh = kmalloc(sizeof(*wh) + nlen, GFP_NOFS);
+ if (unlikely(!wh))
+ goto out;
+
+ err = 0;
+ wh->wh_bindex = bindex;
+ if (shwh)
+ au_shwh_init_wh(wh, ino, d_type);
+ str = &wh->wh_str;
+ str->len = nlen;
+ memcpy(str->name, name, nlen);
+ hlist_add_head(&wh->wh_hash, au_name_hash(whlist, name, nlen));
+ /* smp_mb(); */
+
+ out:
+ return err;
+}
+
+static int append_deblk(struct au_vdir *vdir)
+{
+ int err;
+ unsigned long ul;
+ const unsigned int deblk_sz = vdir->vd_deblk_sz;
+ union au_vdir_deblk_p p, deblk_end;
+ unsigned char **o;
+
+ err = -ENOMEM;
+ o = krealloc(vdir->vd_deblk, sizeof(*o) * (vdir->vd_nblk + 1),
+ GFP_NOFS);
+ if (unlikely(!o))
+ goto out;
+
+ vdir->vd_deblk = o;
+ p.deblk = kmalloc(deblk_sz, GFP_NOFS);
+ if (p.deblk) {
+ ul = vdir->vd_nblk++;
+ vdir->vd_deblk[ul] = p.deblk;
+ vdir->vd_last.ul = ul;
+ vdir->vd_last.p.deblk = p.deblk;
+ deblk_end.deblk = p.deblk + deblk_sz;
+ err = set_deblk_end(&p, &deblk_end);
+ }
+
+ out:
+ return err;
+}
+
+static int append_de(struct au_vdir *vdir, char *name, int nlen, ino_t ino,
+ unsigned int d_type, struct au_nhash *delist)
+{
+ int err;
+ unsigned int sz;
+ const unsigned int deblk_sz = vdir->vd_deblk_sz;
+ union au_vdir_deblk_p p, *room, deblk_end;
+ struct au_vdir_dehstr *dehstr;
+
+ p.deblk = last_deblk(vdir);
+ deblk_end.deblk = p.deblk + deblk_sz;
+ room = &vdir->vd_last.p;
+ AuDebugOn(room->deblk < p.deblk || deblk_end.deblk <= room->deblk
+ || !is_deblk_end(room, &deblk_end));
+
+ sz = calc_size(nlen);
+ if (unlikely(sz > deblk_end.deblk - room->deblk)) {
+ err = append_deblk(vdir);
+ if (unlikely(err))
+ goto out;
+
+ p.deblk = last_deblk(vdir);
+ deblk_end.deblk = p.deblk + deblk_sz;
+ /* smp_mb(); */
+ AuDebugOn(room->deblk != p.deblk);
+ }
+
+ err = -ENOMEM;
+ dehstr = au_cache_alloc_vdir_dehstr();
+ if (unlikely(!dehstr))
+ goto out;
+
+ dehstr->str = &room->de->de_str;
+ hlist_add_head(&dehstr->hash, au_name_hash(delist, name, nlen));
+ room->de->de_ino = ino;
+ room->de->de_type = d_type;
+ room->de->de_str.len = nlen;
+ memcpy(room->de->de_str.name, name, nlen);
+
+ err = 0;
+ room->deblk += sz;
+ if (unlikely(set_deblk_end(room, &deblk_end)))
+ err = append_deblk(vdir);
+ /* smp_mb(); */
+
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_vdir_free(struct au_vdir *vdir)
+{
+ unsigned char **deblk;
+
+ deblk = vdir->vd_deblk;
+ while (vdir->vd_nblk--)
+ kfree(*deblk++);
+ kfree(vdir->vd_deblk);
+ au_cache_free_vdir(vdir);
+}
+
+static struct au_vdir *alloc_vdir(struct file *file)
+{
+ struct au_vdir *vdir;
+ struct super_block *sb;
+ int err;
+
+ sb = file->f_dentry->d_sb;
+ SiMustAnyLock(sb);
+
+ err = -ENOMEM;
+ vdir = au_cache_alloc_vdir();
+ if (unlikely(!vdir))
+ goto out;
+
+ vdir->vd_deblk = kzalloc(sizeof(*vdir->vd_deblk), GFP_NOFS);
+ if (unlikely(!vdir->vd_deblk))
+ goto out_free;
+
+ vdir->vd_deblk_sz = au_sbi(sb)->si_rdblk;
+ if (!vdir->vd_deblk_sz) {
+ /* estimate the apropriate size for deblk */
+ vdir->vd_deblk_sz = au_dir_size(file, /*dentry*/NULL);
+ /* pr_info("vd_deblk_sz %u\n", vdir->vd_deblk_sz); */
+ }
+ vdir->vd_nblk = 0;
+ vdir->vd_version = 0;
+ vdir->vd_jiffy = 0;
+ err = append_deblk(vdir);
+ if (!err)
+ return vdir; /* success */
+
+ kfree(vdir->vd_deblk);
+
+ out_free:
+ au_cache_free_vdir(vdir);
+ out:
+ vdir = ERR_PTR(err);
+ return vdir;
+}
+
+static int reinit_vdir(struct au_vdir *vdir)
+{
+ int err;
+ union au_vdir_deblk_p p, deblk_end;
+
+ while (vdir->vd_nblk > 1) {
+ kfree(vdir->vd_deblk[vdir->vd_nblk - 1]);
+ /* vdir->vd_deblk[vdir->vd_nblk - 1] = NULL; */
+ vdir->vd_nblk--;
+ }
+ p.deblk = vdir->vd_deblk[0];
+ deblk_end.deblk = p.deblk + vdir->vd_deblk_sz;
+ err = set_deblk_end(&p, &deblk_end);
+ /* keep vd_dblk_sz */
+ vdir->vd_last.ul = 0;
+ vdir->vd_last.p.deblk = vdir->vd_deblk[0];
+ vdir->vd_version = 0;
+ vdir->vd_jiffy = 0;
+ /* smp_mb(); */
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+#define AuFillVdir_CALLED 1
+#define AuFillVdir_WHABLE (1 << 1)
+#define AuFillVdir_SHWH (1 << 2)
+#define au_ftest_fillvdir(flags, name) ((flags) & AuFillVdir_##name)
+#define au_fset_fillvdir(flags, name) { (flags) |= AuFillVdir_##name; }
+#define au_fclr_fillvdir(flags, name) { (flags) &= ~AuFillVdir_##name; }
+
+#ifndef CONFIG_AUFS_SHWH
+#undef AuFillVdir_SHWH
+#define AuFillVdir_SHWH 0
+#endif
+
+struct fillvdir_arg {
+ struct file *file;
+ struct au_vdir *vdir;
+ struct au_nhash delist;
+ struct au_nhash whlist;
+ aufs_bindex_t bindex;
+ unsigned int flags;
+ int err;
+};
+
+static int fillvdir(void *__arg, const char *__name, int nlen,
+ loff_t offset __maybe_unused, u64 h_ino,
+ unsigned int d_type)
+{
+ struct fillvdir_arg *arg = __arg;
+ char *name = (void *)__name;
+ struct super_block *sb;
+ ino_t ino;
+ const unsigned char shwh = !!au_ftest_fillvdir(arg->flags, SHWH);
+
+ arg->err = 0;
+ sb = arg->file->f_dentry->d_sb;
+ au_fset_fillvdir(arg->flags, CALLED);
+ /* smp_mb(); */
+ if (nlen <= AUFS_WH_PFX_LEN
+ || memcmp(name, AUFS_WH_PFX, AUFS_WH_PFX_LEN)) {
+ if (test_known(&arg->delist, name, nlen)
+ || au_nhash_test_known_wh(&arg->whlist, name, nlen))
+ goto out; /* already exists or whiteouted */
+
+ sb = arg->file->f_dentry->d_sb;
+ arg->err = au_ino(sb, arg->bindex, h_ino, d_type, &ino);
+ if (!arg->err) {
+ if (unlikely(nlen > AUFS_MAX_NAMELEN))
+ d_type = DT_UNKNOWN;
+ arg->err = append_de(arg->vdir, name, nlen, ino,
+ d_type, &arg->delist);
+ }
+ } else if (au_ftest_fillvdir(arg->flags, WHABLE)) {
+ name += AUFS_WH_PFX_LEN;
+ nlen -= AUFS_WH_PFX_LEN;
+ if (au_nhash_test_known_wh(&arg->whlist, name, nlen))
+ goto out; /* already whiteouted */
+
+ if (shwh)
+ arg->err = au_wh_ino(sb, arg->bindex, h_ino, d_type,
+ &ino);
+ if (!arg->err) {
+ if (nlen <= AUFS_MAX_NAMELEN + AUFS_WH_PFX_LEN)
+ d_type = DT_UNKNOWN;
+ arg->err = au_nhash_append_wh
+ (&arg->whlist, name, nlen, ino, d_type,
+ arg->bindex, shwh);
+ }
+ }
+
+ out:
+ if (!arg->err)
+ arg->vdir->vd_jiffy = jiffies;
+ /* smp_mb(); */
+ AuTraceErr(arg->err);
+ return arg->err;
+}
+
+static int au_handle_shwh(struct super_block *sb, struct au_vdir *vdir,
+ struct au_nhash *whlist, struct au_nhash *delist)
+{
+#ifdef CONFIG_AUFS_SHWH
+ int err;
+ unsigned int nh, u;
+ struct hlist_head *head;
+ struct au_vdir_wh *tpos;
+ struct hlist_node *pos, *n;
+ char *p, *o;
+ struct au_vdir_destr *destr;
+
+ AuDebugOn(!au_opt_test(au_mntflags(sb), SHWH));
+
+ err = -ENOMEM;
+ o = p = __getname_gfp(GFP_NOFS);
+ if (unlikely(!p))
+ goto out;
+
+ err = 0;
+ nh = whlist->nh_num;
+ memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN);
+ p += AUFS_WH_PFX_LEN;
+ for (u = 0; u < nh; u++) {
+ head = whlist->nh_head + u;
+ hlist_for_each_entry_safe(tpos, pos, n, head, wh_hash) {
+ destr = &tpos->wh_str;
+ memcpy(p, destr->name, destr->len);
+ err = append_de(vdir, o, destr->len + AUFS_WH_PFX_LEN,
+ tpos->wh_ino, tpos->wh_type, delist);
+ if (unlikely(err))
+ break;
+ }
+ }
+
+ __putname(o);
+
+ out:
+ AuTraceErr(err);
+ return err;
+#else
+ return 0;
+#endif
+}
+
+static int au_do_read_vdir(struct fillvdir_arg *arg)
+{
+ int err;
+ unsigned int rdhash;
+ loff_t offset;
+ aufs_bindex_t bend, bindex, bstart;
+ unsigned char shwh;
+ struct file *hf, *file;
+ struct super_block *sb;
+
+ file = arg->file;
+ sb = file->f_dentry->d_sb;
+ SiMustAnyLock(sb);
+
+ rdhash = au_sbi(sb)->si_rdhash;
+ if (!rdhash)
+ rdhash = au_rdhash_est(au_dir_size(file, /*dentry*/NULL));
+ err = au_nhash_alloc(&arg->delist, rdhash, GFP_NOFS);
+ if (unlikely(err))
+ goto out;
+ err = au_nhash_alloc(&arg->whlist, rdhash, GFP_NOFS);
+ if (unlikely(err))
+ goto out_delist;
+
+ err = 0;
+ arg->flags = 0;
+ shwh = 0;
+ if (au_opt_test(au_mntflags(sb), SHWH)) {
+ shwh = 1;
+ au_fset_fillvdir(arg->flags, SHWH);
+ }
+ bstart = au_fbstart(file);
+ bend = au_fbend_dir(file);
+ for (bindex = bstart; !err && bindex <= bend; bindex++) {
+ hf = au_hf_dir(file, bindex);
+ if (!hf)
+ continue;
+
+ offset = vfsub_llseek(hf, 0, SEEK_SET);
+ err = offset;
+ if (unlikely(offset))
+ break;
+
+ arg->bindex = bindex;
+ au_fclr_fillvdir(arg->flags, WHABLE);
+ if (shwh
+ || (bindex != bend
+ && au_br_whable(au_sbr_perm(sb, bindex))))
+ au_fset_fillvdir(arg->flags, WHABLE);
+ do {
+ arg->err = 0;
+ au_fclr_fillvdir(arg->flags, CALLED);
+ /* smp_mb(); */
+ err = vfsub_readdir(hf, fillvdir, arg);
+ if (err >= 0)
+ err = arg->err;
+ } while (!err && au_ftest_fillvdir(arg->flags, CALLED));
+ }
+
+ if (!err && shwh)
+ err = au_handle_shwh(sb, arg->vdir, &arg->whlist, &arg->delist);
+
+ au_nhash_wh_free(&arg->whlist);
+
+ out_delist:
+ au_nhash_de_free(&arg->delist);
+ out:
+ return err;
+}
+
+static int read_vdir(struct file *file, int may_read)
+{
+ int err;
+ unsigned long expire;
+ unsigned char do_read;
+ struct fillvdir_arg arg;
+ struct inode *inode;
+ struct au_vdir *vdir, *allocated;
+
+ err = 0;
+ inode = file->f_dentry->d_inode;
+ IMustLock(inode);
+ SiMustAnyLock(inode->i_sb);
+
+ allocated = NULL;
+ do_read = 0;
+ expire = au_sbi(inode->i_sb)->si_rdcache;
+ vdir = au_ivdir(inode);
+ if (!vdir) {
+ do_read = 1;
+ vdir = alloc_vdir(file);
+ err = PTR_ERR(vdir);
+ if (IS_ERR(vdir))
+ goto out;
+ err = 0;
+ allocated = vdir;
+ } else if (may_read
+ && (inode->i_version != vdir->vd_version
+ || time_after(jiffies, vdir->vd_jiffy + expire))) {
+ do_read = 1;
+ err = reinit_vdir(vdir);
+ if (unlikely(err))
+ goto out;
+ }
+
+ if (!do_read)
+ return 0; /* success */
+
+ arg.file = file;
+ arg.vdir = vdir;
+ err = au_do_read_vdir(&arg);
+ if (!err) {
+ /* file->f_pos = 0; */
+ vdir->vd_version = inode->i_version;
+ vdir->vd_last.ul = 0;
+ vdir->vd_last.p.deblk = vdir->vd_deblk[0];
+ if (allocated)
+ au_set_ivdir(inode, allocated);
+ } else if (allocated)
+ au_vdir_free(allocated);
+
+ out:
+ return err;
+}
+
+static int copy_vdir(struct au_vdir *tgt, struct au_vdir *src)
+{
+ int err, rerr;
+ unsigned long ul, n;
+ const unsigned int deblk_sz = src->vd_deblk_sz;
+
+ AuDebugOn(tgt->vd_nblk != 1);
+
+ err = -ENOMEM;
+ if (tgt->vd_nblk < src->vd_nblk) {
+ unsigned char **p;
+
+ p = krealloc(tgt->vd_deblk, sizeof(*p) * src->vd_nblk,
+ GFP_NOFS);
+ if (unlikely(!p))
+ goto out;
+ tgt->vd_deblk = p;
+ }
+
+ if (tgt->vd_deblk_sz != deblk_sz) {
+ unsigned char *p;
+
+ tgt->vd_deblk_sz = deblk_sz;
+ p = krealloc(tgt->vd_deblk[0], deblk_sz, GFP_NOFS);
+ if (unlikely(!p))
+ goto out;
+ tgt->vd_deblk[0] = p;
+ }
+ memcpy(tgt->vd_deblk[0], src->vd_deblk[0], deblk_sz);
+ tgt->vd_version = src->vd_version;
+ tgt->vd_jiffy = src->vd_jiffy;
+
+ n = src->vd_nblk;
+ for (ul = 1; ul < n; ul++) {
+ tgt->vd_deblk[ul] = kmemdup(src->vd_deblk[ul], deblk_sz,
+ GFP_NOFS);
+ if (unlikely(!tgt->vd_deblk[ul]))
+ goto out;
+ tgt->vd_nblk++;
+ }
+ tgt->vd_nblk = n;
+ tgt->vd_last.ul = tgt->vd_last.ul;
+ tgt->vd_last.p.deblk = tgt->vd_deblk[tgt->vd_last.ul];
+ tgt->vd_last.p.deblk += src->vd_last.p.deblk
+ - src->vd_deblk[src->vd_last.ul];
+ /* smp_mb(); */
+ return 0; /* success */
+
+ out:
+ rerr = reinit_vdir(tgt);
+ BUG_ON(rerr);
+ return err;
+}
+
+int au_vdir_init(struct file *file)
+{
+ int err;
+ struct inode *inode;
+ struct au_vdir *vdir_cache, *allocated;
+
+ err = read_vdir(file, !file->f_pos);
+ if (unlikely(err))
+ goto out;
+
+ allocated = NULL;
+ vdir_cache = au_fvdir_cache(file);
+ if (!vdir_cache) {
+ vdir_cache = alloc_vdir(file);
+ err = PTR_ERR(vdir_cache);
+ if (IS_ERR(vdir_cache))
+ goto out;
+ allocated = vdir_cache;
+ } else if (!file->f_pos && vdir_cache->vd_version != file->f_version) {
+ err = reinit_vdir(vdir_cache);
+ if (unlikely(err))
+ goto out;
+ } else
+ return 0; /* success */
+
+ inode = file->f_dentry->d_inode;
+ err = copy_vdir(vdir_cache, au_ivdir(inode));
+ if (!err) {
+ file->f_version = inode->i_version;
+ if (allocated)
+ au_set_fvdir_cache(file, allocated);
+ } else if (allocated)
+ au_vdir_free(allocated);
+
+ out:
+ return err;
+}
+
+static loff_t calc_offset(struct au_vdir *vdir)
+{
+ loff_t offset;
+ union au_vdir_deblk_p p;
+
+ p.deblk = vdir->vd_deblk[vdir->vd_last.ul];
+ offset = vdir->vd_last.p.deblk - p.deblk;
+ offset += vdir->vd_deblk_sz * vdir->vd_last.ul;
+ return offset;
+}
+
+/* returns true or false */
+static int seek_vdir(struct file *file)
+{
+ int valid;
+ unsigned int deblk_sz;
+ unsigned long ul, n;
+ loff_t offset;
+ union au_vdir_deblk_p p, deblk_end;
+ struct au_vdir *vdir_cache;
+
+ valid = 1;
+ vdir_cache = au_fvdir_cache(file);
+ offset = calc_offset(vdir_cache);
+ AuDbg("offset %lld\n", offset);
+ if (file->f_pos == offset)
+ goto out;
+
+ vdir_cache->vd_last.ul = 0;
+ vdir_cache->vd_last.p.deblk = vdir_cache->vd_deblk[0];
+ if (!file->f_pos)
+ goto out;
+
+ valid = 0;
+ deblk_sz = vdir_cache->vd_deblk_sz;
+ ul = div64_u64(file->f_pos, deblk_sz);
+ AuDbg("ul %lu\n", ul);
+ if (ul >= vdir_cache->vd_nblk)
+ goto out;
+
+ n = vdir_cache->vd_nblk;
+ for (; ul < n; ul++) {
+ p.deblk = vdir_cache->vd_deblk[ul];
+ deblk_end.deblk = p.deblk + deblk_sz;
+ offset = ul;
+ offset *= deblk_sz;
+ while (!is_deblk_end(&p, &deblk_end) && offset < file->f_pos) {
+ unsigned int l;
+
+ l = calc_size(p.de->de_str.len);
+ offset += l;
+ p.deblk += l;
+ }
+ if (!is_deblk_end(&p, &deblk_end)) {
+ valid = 1;
+ vdir_cache->vd_last.ul = ul;
+ vdir_cache->vd_last.p = p;
+ break;
+ }
+ }
+
+ out:
+ /* smp_mb(); */
+ AuTraceErr(!valid);
+ return valid;
+}
+
+int au_vdir_fill_de(struct file *file, void *dirent, filldir_t filldir)
+{
+ int err;
+ unsigned int l, deblk_sz;
+ union au_vdir_deblk_p deblk_end;
+ struct au_vdir *vdir_cache;
+ struct au_vdir_de *de;
+
+ vdir_cache = au_fvdir_cache(file);
+ if (!seek_vdir(file))
+ return 0;
+
+ deblk_sz = vdir_cache->vd_deblk_sz;
+ while (1) {
+ deblk_end.deblk = vdir_cache->vd_deblk[vdir_cache->vd_last.ul];
+ deblk_end.deblk += deblk_sz;
+ while (!is_deblk_end(&vdir_cache->vd_last.p, &deblk_end)) {
+ de = vdir_cache->vd_last.p.de;
+ AuDbg("%.*s, off%lld, i%lu, dt%d\n",
+ de->de_str.len, de->de_str.name, file->f_pos,
+ (unsigned long)de->de_ino, de->de_type);
+ err = filldir(dirent, de->de_str.name, de->de_str.len,
+ file->f_pos, de->de_ino, de->de_type);
+ if (unlikely(err)) {
+ AuTraceErr(err);
+ /* todo: ignore the error caused by udba? */
+ /* return err; */
+ return 0;
+ }
+
+ l = calc_size(de->de_str.len);
+ vdir_cache->vd_last.p.deblk += l;
+ file->f_pos += l;
+ }
+ if (vdir_cache->vd_last.ul < vdir_cache->vd_nblk - 1) {
+ vdir_cache->vd_last.ul++;
+ vdir_cache->vd_last.p.deblk
+ = vdir_cache->vd_deblk[vdir_cache->vd_last.ul];
+ file->f_pos = deblk_sz * vdir_cache->vd_last.ul;
+ continue;
+ }
+ break;
+ }
+
+ /* smp_mb(); */
+ return 0;
+}
diff --git a/ubuntu/aufs/vfsub.c b/ubuntu/aufs/vfsub.c
new file mode 100644
index 00000000000..841bb257dd0
--- /dev/null
+++ b/ubuntu/aufs/vfsub.c
@@ -0,0 +1,805 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * sub-routines for VFS
+ */
+
+#include <linux/file.h>
+#include <linux/ima.h>
+#include <linux/namei.h>
+#include <linux/security.h>
+#include <linux/splice.h>
+#include <linux/uaccess.h>
+#include "aufs.h"
+
+int vfsub_update_h_iattr(struct path *h_path, int *did)
+{
+ int err;
+ struct kstat st;
+ struct super_block *h_sb;
+
+ /* for remote fs, leave work for its getattr or d_revalidate */
+ /* for bad i_attr fs, handle them in aufs_getattr() */
+ /* still some fs may acquire i_mutex. we need to skip them */
+ err = 0;
+ if (!did)
+ did = &err;
+ h_sb = h_path->dentry->d_sb;
+ *did = (!au_test_fs_remote(h_sb) && au_test_fs_refresh_iattr(h_sb));
+ if (*did)
+ err = vfs_getattr(h_path->mnt, h_path->dentry, &st);
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_conv_oflags(int flags)
+{
+ int mask = 0;
+
+#ifdef CONFIG_IMA
+ fmode_t fmode;
+
+ /* mask = MAY_OPEN; */
+ fmode = OPEN_FMODE(flags);
+ if (fmode & FMODE_READ)
+ mask |= MAY_READ;
+ if ((fmode & FMODE_WRITE)
+ || (flags & O_TRUNC))
+ mask |= MAY_WRITE;
+ /*
+ * if (flags & O_APPEND)
+ * mask |= MAY_APPEND;
+ */
+ if (flags & vfsub_fmode_to_uint(FMODE_EXEC))
+ mask |= MAY_EXEC;
+
+ AuDbg("flags 0x%x, mask 0x%x\n", flags, mask);
+#endif
+
+ return mask;
+}
+
+struct file *vfsub_dentry_open(struct path *path, int flags)
+{
+ struct file *file;
+ int err;
+
+ path_get(path);
+ file = dentry_open(path->dentry, path->mnt, flags, current_cred());
+ if (IS_ERR(file))
+ goto out;
+
+ err = ima_file_check(file, au_conv_oflags(flags));
+ if (unlikely(err)) {
+ fput(file);
+ file = ERR_PTR(err);
+ }
+out:
+ return file;
+}
+
+struct file *vfsub_filp_open(const char *path, int oflags, int mode)
+{
+ struct file *file;
+
+ /* lockdep_off(); */
+ file = filp_open(path, oflags, mode);
+ /* lockdep_on(); */
+ if (IS_ERR(file))
+ goto out;
+ vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/
+
+ out:
+ return file;
+}
+
+int vfsub_kern_path(const char *name, unsigned int flags, struct path *path)
+{
+ int err;
+
+ /* lockdep_off(); */
+ err = kern_path(name, flags, path);
+ /* lockdep_on(); */
+ if (!err && path->dentry->d_inode)
+ vfsub_update_h_iattr(path, /*did*/NULL); /*ignore*/
+ return err;
+}
+
+struct dentry *vfsub_lookup_one_len(const char *name, struct dentry *parent,
+ int len)
+{
+ struct path path = {
+ .mnt = NULL
+ };
+
+ /* VFS checks it too, but by WARN_ON_ONCE() */
+ IMustLock(parent->d_inode);
+
+ path.dentry = lookup_one_len(name, parent, len);
+ if (IS_ERR(path.dentry))
+ goto out;
+ if (path.dentry->d_inode)
+ vfsub_update_h_iattr(&path, /*did*/NULL); /*ignore*/
+
+ out:
+ AuTraceErrPtr(path.dentry);
+ return path.dentry;
+}
+
+struct dentry *vfsub_lookup_hash(struct nameidata *nd)
+{
+ struct path path = {
+ .mnt = nd->path.mnt
+ };
+
+ IMustLock(nd->path.dentry->d_inode);
+
+ path.dentry = lookup_hash(nd);
+ if (IS_ERR(path.dentry))
+ goto out;
+ if (path.dentry->d_inode)
+ vfsub_update_h_iattr(&path, /*did*/NULL); /*ignore*/
+
+ out:
+ AuTraceErrPtr(path.dentry);
+ return path.dentry;
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct dentry *vfsub_lock_rename(struct dentry *d1, struct au_hinode *hdir1,
+ struct dentry *d2, struct au_hinode *hdir2)
+{
+ struct dentry *d;
+
+ lockdep_off();
+ d = lock_rename(d1, d2);
+ lockdep_on();
+ au_hn_suspend(hdir1);
+ if (hdir1 != hdir2)
+ au_hn_suspend(hdir2);
+
+ return d;
+}
+
+void vfsub_unlock_rename(struct dentry *d1, struct au_hinode *hdir1,
+ struct dentry *d2, struct au_hinode *hdir2)
+{
+ au_hn_resume(hdir1);
+ if (hdir1 != hdir2)
+ au_hn_resume(hdir2);
+ lockdep_off();
+ unlock_rename(d1, d2);
+ lockdep_on();
+}
+
+/* ---------------------------------------------------------------------- */
+
+int vfsub_create(struct inode *dir, struct path *path, int mode)
+{
+ int err;
+ struct dentry *d;
+
+ IMustLock(dir);
+
+ d = path->dentry;
+ path->dentry = d->d_parent;
+ err = security_path_mknod(path, path->dentry, mode, 0);
+ path->dentry = d;
+ if (unlikely(err))
+ goto out;
+
+ if (au_test_fs_null_nd(dir->i_sb))
+ err = vfs_create(dir, path->dentry, mode, NULL);
+ else {
+ struct nameidata h_nd;
+
+ memset(&h_nd, 0, sizeof(h_nd));
+ h_nd.flags = LOOKUP_CREATE;
+ h_nd.intent.open.flags = O_CREAT
+ | vfsub_fmode_to_uint(FMODE_READ);
+ h_nd.intent.open.create_mode = mode;
+ h_nd.path.dentry = path->dentry->d_parent;
+ h_nd.path.mnt = path->mnt;
+ path_get(&h_nd.path);
+ err = vfs_create(dir, path->dentry, mode, &h_nd);
+ path_put(&h_nd.path);
+ }
+
+ if (!err) {
+ struct path tmp = *path;
+ int did;
+
+ vfsub_update_h_iattr(&tmp, &did);
+ if (did) {
+ tmp.dentry = path->dentry->d_parent;
+ vfsub_update_h_iattr(&tmp, /*did*/NULL);
+ }
+ /*ignore*/
+ }
+
+ out:
+ return err;
+}
+
+int vfsub_symlink(struct inode *dir, struct path *path, const char *symname)
+{
+ int err;
+ struct dentry *d;
+
+ IMustLock(dir);
+
+ d = path->dentry;
+ path->dentry = d->d_parent;
+ err = security_path_symlink(path, path->dentry, symname);
+ path->dentry = d;
+ if (unlikely(err))
+ goto out;
+
+ err = vfs_symlink(dir, path->dentry, symname);
+ if (!err) {
+ struct path tmp = *path;
+ int did;
+
+ vfsub_update_h_iattr(&tmp, &did);
+ if (did) {
+ tmp.dentry = path->dentry->d_parent;
+ vfsub_update_h_iattr(&tmp, /*did*/NULL);
+ }
+ /*ignore*/
+ }
+
+ out:
+ return err;
+}
+
+int vfsub_mknod(struct inode *dir, struct path *path, int mode, dev_t dev)
+{
+ int err;
+ struct dentry *d;
+
+ IMustLock(dir);
+
+ d = path->dentry;
+ path->dentry = d->d_parent;
+ err = security_path_mknod(path, path->dentry, mode, dev);
+ path->dentry = d;
+ if (unlikely(err))
+ goto out;
+
+ err = vfs_mknod(dir, path->dentry, mode, dev);
+ if (!err) {
+ struct path tmp = *path;
+ int did;
+
+ vfsub_update_h_iattr(&tmp, &did);
+ if (did) {
+ tmp.dentry = path->dentry->d_parent;
+ vfsub_update_h_iattr(&tmp, /*did*/NULL);
+ }
+ /*ignore*/
+ }
+
+ out:
+ return err;
+}
+
+static int au_test_nlink(struct inode *inode)
+{
+ const unsigned int link_max = UINT_MAX >> 1; /* rough margin */
+
+ if (!au_test_fs_no_limit_nlink(inode->i_sb)
+ || inode->i_nlink < link_max)
+ return 0;
+ return -EMLINK;
+}
+
+int vfsub_link(struct dentry *src_dentry, struct inode *dir, struct path *path)
+{
+ int err;
+ struct dentry *d;
+
+ IMustLock(dir);
+
+ err = au_test_nlink(src_dentry->d_inode);
+ if (unlikely(err))
+ return err;
+
+ d = path->dentry;
+ path->dentry = d->d_parent;
+ err = security_path_link(src_dentry, path, path->dentry);
+ path->dentry = d;
+ if (unlikely(err))
+ goto out;
+
+ /* lockdep_off(); */
+ err = vfs_link(src_dentry, dir, path->dentry);
+ /* lockdep_on(); */
+ if (!err) {
+ struct path tmp = *path;
+ int did;
+
+ /* fuse has different memory inode for the same inumber */
+ vfsub_update_h_iattr(&tmp, &did);
+ if (did) {
+ tmp.dentry = path->dentry->d_parent;
+ vfsub_update_h_iattr(&tmp, /*did*/NULL);
+ tmp.dentry = src_dentry;
+ vfsub_update_h_iattr(&tmp, /*did*/NULL);
+ }
+ /*ignore*/
+ }
+
+ out:
+ return err;
+}
+
+int vfsub_rename(struct inode *src_dir, struct dentry *src_dentry,
+ struct inode *dir, struct path *path)
+{
+ int err;
+ struct path tmp = {
+ .mnt = path->mnt
+ };
+ struct dentry *d;
+
+ IMustLock(dir);
+ IMustLock(src_dir);
+
+ d = path->dentry;
+ path->dentry = d->d_parent;
+ tmp.dentry = src_dentry->d_parent;
+ err = security_path_rename(&tmp, src_dentry, path, path->dentry);
+ path->dentry = d;
+ if (unlikely(err))
+ goto out;
+
+ /* lockdep_off(); */
+ err = vfs_rename(src_dir, src_dentry, dir, path->dentry);
+ /* lockdep_on(); */
+ if (!err) {
+ int did;
+
+ tmp.dentry = d->d_parent;
+ vfsub_update_h_iattr(&tmp, &did);
+ if (did) {
+ tmp.dentry = src_dentry;
+ vfsub_update_h_iattr(&tmp, /*did*/NULL);
+ tmp.dentry = src_dentry->d_parent;
+ vfsub_update_h_iattr(&tmp, /*did*/NULL);
+ }
+ /*ignore*/
+ }
+
+ out:
+ return err;
+}
+
+int vfsub_mkdir(struct inode *dir, struct path *path, int mode)
+{
+ int err;
+ struct dentry *d;
+
+ IMustLock(dir);
+
+ d = path->dentry;
+ path->dentry = d->d_parent;
+ err = security_path_mkdir(path, path->dentry, mode);
+ path->dentry = d;
+ if (unlikely(err))
+ goto out;
+
+ err = vfs_mkdir(dir, path->dentry, mode);
+ if (!err) {
+ struct path tmp = *path;
+ int did;
+
+ vfsub_update_h_iattr(&tmp, &did);
+ if (did) {
+ tmp.dentry = path->dentry->d_parent;
+ vfsub_update_h_iattr(&tmp, /*did*/NULL);
+ }
+ /*ignore*/
+ }
+
+ out:
+ return err;
+}
+
+int vfsub_rmdir(struct inode *dir, struct path *path)
+{
+ int err;
+ struct dentry *d;
+
+ IMustLock(dir);
+
+ d = path->dentry;
+ path->dentry = d->d_parent;
+ err = security_path_rmdir(path, path->dentry);
+ path->dentry = d;
+ if (unlikely(err))
+ goto out;
+
+ /* lockdep_off(); */
+ err = vfs_rmdir(dir, path->dentry);
+ /* lockdep_on(); */
+ if (!err) {
+ struct path tmp = {
+ .dentry = path->dentry->d_parent,
+ .mnt = path->mnt
+ };
+
+ vfsub_update_h_iattr(&tmp, /*did*/NULL); /*ignore*/
+ }
+
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+ssize_t vfsub_read_u(struct file *file, char __user *ubuf, size_t count,
+ loff_t *ppos)
+{
+ ssize_t err;
+
+ err = vfs_read(file, ubuf, count, ppos);
+ if (err >= 0)
+ vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/
+ return err;
+}
+
+/* todo: kernel_read()? */
+ssize_t vfsub_read_k(struct file *file, void *kbuf, size_t count,
+ loff_t *ppos)
+{
+ ssize_t err;
+ mm_segment_t oldfs;
+
+ oldfs = get_fs();
+ set_fs(KERNEL_DS);
+ err = vfsub_read_u(file, (char __user *)kbuf, count, ppos);
+ set_fs(oldfs);
+ return err;
+}
+
+ssize_t vfsub_write_u(struct file *file, const char __user *ubuf, size_t count,
+ loff_t *ppos)
+{
+ ssize_t err;
+
+ /* lockdep_off(); */
+ err = vfs_write(file, ubuf, count, ppos);
+ /* lockdep_on(); */
+ if (err >= 0)
+ vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/
+ return err;
+}
+
+ssize_t vfsub_write_k(struct file *file, void *kbuf, size_t count, loff_t *ppos)
+{
+ ssize_t err;
+ mm_segment_t oldfs;
+
+ oldfs = get_fs();
+ set_fs(KERNEL_DS);
+ err = vfsub_write_u(file, (const char __user *)kbuf, count, ppos);
+ set_fs(oldfs);
+ return err;
+}
+
+int vfsub_flush(struct file *file, fl_owner_t id)
+{
+ int err;
+
+ err = 0;
+ if (file->f_op && file->f_op->flush) {
+ err = file->f_op->flush(file, id);
+ if (!err)
+ vfsub_update_h_iattr(&file->f_path, /*did*/NULL);
+ /*ignore*/
+ }
+ return err;
+}
+
+int vfsub_readdir(struct file *file, filldir_t filldir, void *arg)
+{
+ int err;
+
+ /* lockdep_off(); */
+ err = vfs_readdir(file, filldir, arg);
+ /* lockdep_on(); */
+ if (err >= 0)
+ vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/
+ return err;
+}
+
+long vfsub_splice_to(struct file *in, loff_t *ppos,
+ struct pipe_inode_info *pipe, size_t len,
+ unsigned int flags)
+{
+ long err;
+
+ /* lockdep_off(); */
+ err = do_splice_to(in, ppos, pipe, len, flags);
+ /* lockdep_on(); */
+ file_accessed(in);
+ if (err >= 0)
+ vfsub_update_h_iattr(&in->f_path, /*did*/NULL); /*ignore*/
+ return err;
+}
+
+long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ loff_t *ppos, size_t len, unsigned int flags)
+{
+ long err;
+
+ /* lockdep_off(); */
+ err = do_splice_from(pipe, out, ppos, len, flags);
+ /* lockdep_on(); */
+ if (err >= 0)
+ vfsub_update_h_iattr(&out->f_path, /*did*/NULL); /*ignore*/
+ return err;
+}
+
+/* cf. open.c:do_sys_truncate() and do_sys_ftruncate() */
+int vfsub_trunc(struct path *h_path, loff_t length, unsigned int attr,
+ struct file *h_file)
+{
+ int err;
+ struct inode *h_inode;
+
+ h_inode = h_path->dentry->d_inode;
+ if (!h_file) {
+ err = mnt_want_write(h_path->mnt);
+ if (err)
+ goto out;
+ err = inode_permission(h_inode, MAY_WRITE);
+ if (err)
+ goto out_mnt;
+ err = get_write_access(h_inode);
+ if (err)
+ goto out_mnt;
+ err = break_lease(h_inode, O_WRONLY);
+ if (err)
+ goto out_inode;
+ }
+
+ err = locks_verify_truncate(h_inode, h_file, length);
+ if (!err)
+ err = security_path_truncate(h_path, length, attr);
+ if (!err) {
+ /* lockdep_off(); */
+ err = do_truncate(h_path->dentry, length, attr, h_file);
+ /* lockdep_on(); */
+ }
+
+ out_inode:
+ if (!h_file)
+ put_write_access(h_inode);
+ out_mnt:
+ if (!h_file)
+ mnt_drop_write(h_path->mnt);
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct au_vfsub_mkdir_args {
+ int *errp;
+ struct inode *dir;
+ struct path *path;
+ int mode;
+};
+
+static void au_call_vfsub_mkdir(void *args)
+{
+ struct au_vfsub_mkdir_args *a = args;
+ *a->errp = vfsub_mkdir(a->dir, a->path, a->mode);
+}
+
+int vfsub_sio_mkdir(struct inode *dir, struct path *path, int mode)
+{
+ int err, do_sio, wkq_err;
+
+ do_sio = au_test_h_perm_sio(dir, MAY_EXEC | MAY_WRITE);
+ if (!do_sio)
+ err = vfsub_mkdir(dir, path, mode);
+ else {
+ struct au_vfsub_mkdir_args args = {
+ .errp = &err,
+ .dir = dir,
+ .path = path,
+ .mode = mode
+ };
+ wkq_err = au_wkq_wait(au_call_vfsub_mkdir, &args);
+ if (unlikely(wkq_err))
+ err = wkq_err;
+ }
+
+ return err;
+}
+
+struct au_vfsub_rmdir_args {
+ int *errp;
+ struct inode *dir;
+ struct path *path;
+};
+
+static void au_call_vfsub_rmdir(void *args)
+{
+ struct au_vfsub_rmdir_args *a = args;
+ *a->errp = vfsub_rmdir(a->dir, a->path);
+}
+
+int vfsub_sio_rmdir(struct inode *dir, struct path *path)
+{
+ int err, do_sio, wkq_err;
+
+ do_sio = au_test_h_perm_sio(dir, MAY_EXEC | MAY_WRITE);
+ if (!do_sio)
+ err = vfsub_rmdir(dir, path);
+ else {
+ struct au_vfsub_rmdir_args args = {
+ .errp = &err,
+ .dir = dir,
+ .path = path
+ };
+ wkq_err = au_wkq_wait(au_call_vfsub_rmdir, &args);
+ if (unlikely(wkq_err))
+ err = wkq_err;
+ }
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct notify_change_args {
+ int *errp;
+ struct path *path;
+ struct iattr *ia;
+};
+
+static void call_notify_change(void *args)
+{
+ struct notify_change_args *a = args;
+ struct inode *h_inode;
+
+ h_inode = a->path->dentry->d_inode;
+ IMustLock(h_inode);
+
+ *a->errp = -EPERM;
+ if (!IS_IMMUTABLE(h_inode) && !IS_APPEND(h_inode)) {
+ /* lockdep_off(); */
+ *a->errp = notify_change(a->path->dentry, a->ia);
+ /* lockdep_on(); */
+ if (!*a->errp)
+ vfsub_update_h_iattr(a->path, /*did*/NULL); /*ignore*/
+ }
+ AuTraceErr(*a->errp);
+}
+
+int vfsub_notify_change(struct path *path, struct iattr *ia)
+{
+ int err;
+ struct notify_change_args args = {
+ .errp = &err,
+ .path = path,
+ .ia = ia
+ };
+
+ call_notify_change(&args);
+
+ return err;
+}
+
+int vfsub_sio_notify_change(struct path *path, struct iattr *ia)
+{
+ int err, wkq_err;
+ struct notify_change_args args = {
+ .errp = &err,
+ .path = path,
+ .ia = ia
+ };
+
+ wkq_err = au_wkq_wait(call_notify_change, &args);
+ if (unlikely(wkq_err))
+ err = wkq_err;
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct unlink_args {
+ int *errp;
+ struct inode *dir;
+ struct path *path;
+};
+
+static void call_unlink(void *args)
+{
+ struct unlink_args *a = args;
+ struct dentry *d = a->path->dentry;
+ struct inode *h_inode;
+ const int stop_sillyrename = (au_test_nfs(d->d_sb)
+ && atomic_read(&d->d_count) == 1);
+
+ IMustLock(a->dir);
+
+ a->path->dentry = d->d_parent;
+ *a->errp = security_path_unlink(a->path, d);
+ a->path->dentry = d;
+ if (unlikely(*a->errp))
+ return;
+
+ if (!stop_sillyrename)
+ dget(d);
+ h_inode = d->d_inode;
+ if (h_inode)
+ atomic_inc(&h_inode->i_count);
+
+ /* lockdep_off(); */
+ *a->errp = vfs_unlink(a->dir, d);
+ /* lockdep_on(); */
+ if (!*a->errp) {
+ struct path tmp = {
+ .dentry = d->d_parent,
+ .mnt = a->path->mnt
+ };
+ vfsub_update_h_iattr(&tmp, /*did*/NULL); /*ignore*/
+ }
+
+ if (!stop_sillyrename)
+ dput(d);
+ if (h_inode)
+ iput(h_inode);
+
+ AuTraceErr(*a->errp);
+}
+
+/*
+ * @dir: must be locked.
+ * @dentry: target dentry.
+ */
+int vfsub_unlink(struct inode *dir, struct path *path, int force)
+{
+ int err;
+ struct unlink_args args = {
+ .errp = &err,
+ .dir = dir,
+ .path = path
+ };
+
+ if (!force)
+ call_unlink(&args);
+ else {
+ int wkq_err;
+
+ wkq_err = au_wkq_wait(call_unlink, &args);
+ if (unlikely(wkq_err))
+ err = wkq_err;
+ }
+
+ return err;
+}
diff --git a/ubuntu/aufs/vfsub.h b/ubuntu/aufs/vfsub.h
new file mode 100644
index 00000000000..d7e97fc41ff
--- /dev/null
+++ b/ubuntu/aufs/vfsub.h
@@ -0,0 +1,176 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * sub-routines for VFS
+ */
+
+#ifndef __AUFS_VFSUB_H__
+#define __AUFS_VFSUB_H__
+
+#ifdef __KERNEL__
+
+#include <linux/fs.h>
+
+/* ---------------------------------------------------------------------- */
+
+/* lock subclass for lower inode */
+/* default MAX_LOCKDEP_SUBCLASSES(8) is not enough */
+/* reduce? gave up. */
+enum {
+ AuLsc_I_Begin = I_MUTEX_QUOTA, /* 4 */
+ AuLsc_I_PARENT, /* lower inode, parent first */
+ AuLsc_I_PARENT2, /* copyup dirs */
+ AuLsc_I_PARENT3, /* copyup wh */
+ AuLsc_I_CHILD,
+ AuLsc_I_CHILD2,
+ AuLsc_I_End
+};
+
+/* to debug easier, do not make them inlined functions */
+#define MtxMustLock(mtx) AuDebugOn(!mutex_is_locked(mtx))
+#define IMustLock(i) MtxMustLock(&(i)->i_mutex)
+
+/* ---------------------------------------------------------------------- */
+
+int vfsub_update_h_iattr(struct path *h_path, int *did);
+struct file *vfsub_dentry_open(struct path *path, int flags);
+struct file *vfsub_filp_open(const char *path, int oflags, int mode);
+int vfsub_kern_path(const char *name, unsigned int flags, struct path *path);
+struct dentry *vfsub_lookup_one_len(const char *name, struct dentry *parent,
+ int len);
+struct dentry *vfsub_lookup_hash(struct nameidata *nd);
+
+/* ---------------------------------------------------------------------- */
+
+struct au_hinode;
+struct dentry *vfsub_lock_rename(struct dentry *d1, struct au_hinode *hdir1,
+ struct dentry *d2, struct au_hinode *hdir2);
+void vfsub_unlock_rename(struct dentry *d1, struct au_hinode *hdir1,
+ struct dentry *d2, struct au_hinode *hdir2);
+
+int vfsub_create(struct inode *dir, struct path *path, int mode);
+int vfsub_symlink(struct inode *dir, struct path *path,
+ const char *symname);
+int vfsub_mknod(struct inode *dir, struct path *path, int mode, dev_t dev);
+int vfsub_link(struct dentry *src_dentry, struct inode *dir,
+ struct path *path);
+int vfsub_rename(struct inode *src_hdir, struct dentry *src_dentry,
+ struct inode *hdir, struct path *path);
+int vfsub_mkdir(struct inode *dir, struct path *path, int mode);
+int vfsub_rmdir(struct inode *dir, struct path *path);
+
+/* ---------------------------------------------------------------------- */
+
+ssize_t vfsub_read_u(struct file *file, char __user *ubuf, size_t count,
+ loff_t *ppos);
+ssize_t vfsub_read_k(struct file *file, void *kbuf, size_t count,
+ loff_t *ppos);
+ssize_t vfsub_write_u(struct file *file, const char __user *ubuf, size_t count,
+ loff_t *ppos);
+ssize_t vfsub_write_k(struct file *file, void *kbuf, size_t count,
+ loff_t *ppos);
+int vfsub_flush(struct file *file, fl_owner_t id);
+int vfsub_readdir(struct file *file, filldir_t filldir, void *arg);
+
+static inline unsigned int vfsub_file_flags(struct file *file)
+{
+ unsigned int flags;
+
+ spin_lock(&file->f_lock);
+ flags = file->f_flags;
+ spin_unlock(&file->f_lock);
+
+ return flags;
+}
+
+static inline void vfsub_file_accessed(struct file *h_file)
+{
+ file_accessed(h_file);
+ vfsub_update_h_iattr(&h_file->f_path, /*did*/NULL); /*ignore*/
+}
+
+static inline void vfsub_touch_atime(struct vfsmount *h_mnt,
+ struct dentry *h_dentry)
+{
+ struct path h_path = {
+ .dentry = h_dentry,
+ .mnt = h_mnt
+ };
+ touch_atime(h_mnt, h_dentry);
+ vfsub_update_h_iattr(&h_path, /*did*/NULL); /*ignore*/
+}
+
+long vfsub_splice_to(struct file *in, loff_t *ppos,
+ struct pipe_inode_info *pipe, size_t len,
+ unsigned int flags);
+long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out,
+ loff_t *ppos, size_t len, unsigned int flags);
+int vfsub_trunc(struct path *h_path, loff_t length, unsigned int attr,
+ struct file *h_file);
+
+/* ---------------------------------------------------------------------- */
+
+static inline loff_t vfsub_llseek(struct file *file, loff_t offset, int origin)
+{
+ loff_t err;
+
+ /* lockdep_off(); */
+ err = vfs_llseek(file, offset, origin);
+ /* lockdep_on(); */
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* dirty workaround for strict type of fmode_t */
+union vfsub_fmu {
+ fmode_t fm;
+ unsigned int ui;
+};
+
+static inline unsigned int vfsub_fmode_to_uint(fmode_t fm)
+{
+ union vfsub_fmu u = {
+ .fm = fm
+ };
+
+ BUILD_BUG_ON(sizeof(u.fm) != sizeof(u.ui));
+
+ return u.ui;
+}
+
+static inline fmode_t vfsub_uint_to_fmode(unsigned int ui)
+{
+ union vfsub_fmu u = {
+ .ui = ui
+ };
+
+ return u.fm;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int vfsub_sio_mkdir(struct inode *dir, struct path *path, int mode);
+int vfsub_sio_rmdir(struct inode *dir, struct path *path);
+int vfsub_sio_notify_change(struct path *path, struct iattr *ia);
+int vfsub_notify_change(struct path *path, struct iattr *ia);
+int vfsub_unlink(struct inode *dir, struct path *path, int force);
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_VFSUB_H__ */
diff --git a/ubuntu/aufs/wbr_policy.c b/ubuntu/aufs/wbr_policy.c
new file mode 100644
index 00000000000..19a1ba093fe
--- /dev/null
+++ b/ubuntu/aufs/wbr_policy.c
@@ -0,0 +1,696 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * policies for selecting one among multiple writable branches
+ */
+
+#include <linux/statfs.h>
+#include "aufs.h"
+
+/* subset of cpup_attr() */
+static noinline_for_stack
+int au_cpdown_attr(struct path *h_path, struct dentry *h_src)
+{
+ int err, sbits;
+ struct iattr ia;
+ struct inode *h_isrc;
+
+ h_isrc = h_src->d_inode;
+ ia.ia_valid = ATTR_FORCE | ATTR_MODE | ATTR_UID | ATTR_GID;
+ ia.ia_mode = h_isrc->i_mode;
+ ia.ia_uid = h_isrc->i_uid;
+ ia.ia_gid = h_isrc->i_gid;
+ sbits = !!(ia.ia_mode & (S_ISUID | S_ISGID));
+ au_cpup_attr_flags(h_path->dentry->d_inode, h_isrc);
+ err = vfsub_sio_notify_change(h_path, &ia);
+
+ /* is this nfs only? */
+ if (!err && sbits && au_test_nfs(h_path->dentry->d_sb)) {
+ ia.ia_valid = ATTR_FORCE | ATTR_MODE;
+ ia.ia_mode = h_isrc->i_mode;
+ err = vfsub_sio_notify_change(h_path, &ia);
+ }
+
+ return err;
+}
+
+#define AuCpdown_PARENT_OPQ 1
+#define AuCpdown_WHED (1 << 1)
+#define AuCpdown_MADE_DIR (1 << 2)
+#define AuCpdown_DIROPQ (1 << 3)
+#define au_ftest_cpdown(flags, name) ((flags) & AuCpdown_##name)
+#define au_fset_cpdown(flags, name) { (flags) |= AuCpdown_##name; }
+#define au_fclr_cpdown(flags, name) { (flags) &= ~AuCpdown_##name; }
+
+struct au_cpdown_dir_args {
+ struct dentry *parent;
+ unsigned int flags;
+};
+
+static int au_cpdown_dir_opq(struct dentry *dentry, aufs_bindex_t bdst,
+ struct au_cpdown_dir_args *a)
+{
+ int err;
+ struct dentry *opq_dentry;
+
+ opq_dentry = au_diropq_create(dentry, bdst);
+ err = PTR_ERR(opq_dentry);
+ if (IS_ERR(opq_dentry))
+ goto out;
+ dput(opq_dentry);
+ au_fset_cpdown(a->flags, DIROPQ);
+
+ out:
+ return err;
+}
+
+static int au_cpdown_dir_wh(struct dentry *dentry, struct dentry *h_parent,
+ struct inode *dir, aufs_bindex_t bdst)
+{
+ int err;
+ struct path h_path;
+ struct au_branch *br;
+
+ br = au_sbr(dentry->d_sb, bdst);
+ h_path.dentry = au_wh_lkup(h_parent, &dentry->d_name, br);
+ err = PTR_ERR(h_path.dentry);
+ if (IS_ERR(h_path.dentry))
+ goto out;
+
+ err = 0;
+ if (h_path.dentry->d_inode) {
+ h_path.mnt = br->br_mnt;
+ err = au_wh_unlink_dentry(au_h_iptr(dir, bdst), &h_path,
+ dentry);
+ }
+ dput(h_path.dentry);
+
+ out:
+ return err;
+}
+
+static int au_cpdown_dir(struct dentry *dentry, aufs_bindex_t bdst,
+ struct dentry *h_parent, void *arg)
+{
+ int err, rerr;
+ aufs_bindex_t bopq, bstart;
+ struct path h_path;
+ struct dentry *parent;
+ struct inode *h_dir, *h_inode, *inode, *dir;
+ struct au_cpdown_dir_args *args = arg;
+
+ bstart = au_dbstart(dentry);
+ /* dentry is di-locked */
+ parent = dget_parent(dentry);
+ dir = parent->d_inode;
+ h_dir = h_parent->d_inode;
+ AuDebugOn(h_dir != au_h_iptr(dir, bdst));
+ IMustLock(h_dir);
+
+ err = au_lkup_neg(dentry, bdst);
+ if (unlikely(err < 0))
+ goto out;
+ h_path.dentry = au_h_dptr(dentry, bdst);
+ h_path.mnt = au_sbr_mnt(dentry->d_sb, bdst);
+ err = vfsub_sio_mkdir(au_h_iptr(dir, bdst), &h_path,
+ S_IRWXU | S_IRUGO | S_IXUGO);
+ if (unlikely(err))
+ goto out_put;
+ au_fset_cpdown(args->flags, MADE_DIR);
+
+ bopq = au_dbdiropq(dentry);
+ au_fclr_cpdown(args->flags, WHED);
+ au_fclr_cpdown(args->flags, DIROPQ);
+ if (au_dbwh(dentry) == bdst)
+ au_fset_cpdown(args->flags, WHED);
+ if (!au_ftest_cpdown(args->flags, PARENT_OPQ) && bopq <= bdst)
+ au_fset_cpdown(args->flags, PARENT_OPQ);
+ h_inode = h_path.dentry->d_inode;
+ mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD);
+ if (au_ftest_cpdown(args->flags, WHED)) {
+ err = au_cpdown_dir_opq(dentry, bdst, args);
+ if (unlikely(err)) {
+ mutex_unlock(&h_inode->i_mutex);
+ goto out_dir;
+ }
+ }
+
+ err = au_cpdown_attr(&h_path, au_h_dptr(dentry, bstart));
+ mutex_unlock(&h_inode->i_mutex);
+ if (unlikely(err))
+ goto out_opq;
+
+ if (au_ftest_cpdown(args->flags, WHED)) {
+ err = au_cpdown_dir_wh(dentry, h_parent, dir, bdst);
+ if (unlikely(err))
+ goto out_opq;
+ }
+
+ inode = dentry->d_inode;
+ if (au_ibend(inode) < bdst)
+ au_set_ibend(inode, bdst);
+ au_set_h_iptr(inode, bdst, au_igrab(h_inode),
+ au_hi_flags(inode, /*isdir*/1));
+ goto out; /* success */
+
+ /* revert */
+ out_opq:
+ if (au_ftest_cpdown(args->flags, DIROPQ)) {
+ mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD);
+ rerr = au_diropq_remove(dentry, bdst);
+ mutex_unlock(&h_inode->i_mutex);
+ if (unlikely(rerr)) {
+ AuIOErr("failed removing diropq for %.*s b%d (%d)\n",
+ AuDLNPair(dentry), bdst, rerr);
+ err = -EIO;
+ goto out;
+ }
+ }
+ out_dir:
+ if (au_ftest_cpdown(args->flags, MADE_DIR)) {
+ rerr = vfsub_sio_rmdir(au_h_iptr(dir, bdst), &h_path);
+ if (unlikely(rerr)) {
+ AuIOErr("failed removing %.*s b%d (%d)\n",
+ AuDLNPair(dentry), bdst, rerr);
+ err = -EIO;
+ }
+ }
+ out_put:
+ au_set_h_dptr(dentry, bdst, NULL);
+ if (au_dbend(dentry) == bdst)
+ au_update_dbend(dentry);
+ out:
+ dput(parent);
+ return err;
+}
+
+int au_cpdown_dirs(struct dentry *dentry, aufs_bindex_t bdst)
+{
+ int err;
+ struct au_cpdown_dir_args args = {
+ .parent = dget_parent(dentry),
+ .flags = 0
+ };
+
+ err = au_cp_dirs(dentry, bdst, au_cpdown_dir, &args);
+ dput(args.parent);
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* policies for create */
+
+static int au_wbr_nonopq(struct dentry *dentry, aufs_bindex_t bindex)
+{
+ int err, i, j, ndentry;
+ aufs_bindex_t bopq;
+ struct au_dcsub_pages dpages;
+ struct au_dpage *dpage;
+ struct dentry **dentries, *parent, *d;
+
+ err = au_dpages_init(&dpages, GFP_NOFS);
+ if (unlikely(err))
+ goto out;
+ parent = dget_parent(dentry);
+ err = au_dcsub_pages_rev(&dpages, parent, /*do_include*/0, /*test*/NULL,
+ /*arg*/NULL);
+ if (unlikely(err))
+ goto out_free;
+
+ err = bindex;
+ for (i = 0; i < dpages.ndpage; i++) {
+ dpage = dpages.dpages + i;
+ dentries = dpage->dentries;
+ ndentry = dpage->ndentry;
+ for (j = 0; j < ndentry; j++) {
+ d = dentries[j];
+ di_read_lock_parent2(d, !AuLock_IR);
+ bopq = au_dbdiropq(d);
+ di_read_unlock(d, !AuLock_IR);
+ if (bopq >= 0 && bopq < err)
+ err = bopq;
+ }
+ }
+
+out_free:
+ dput(parent);
+ au_dpages_free(&dpages);
+out:
+ return err;
+}
+
+static int au_wbr_bu(struct super_block *sb, aufs_bindex_t bindex)
+{
+ for (; bindex >= 0; bindex--)
+ if (!au_br_rdonly(au_sbr(sb, bindex)))
+ return bindex;
+ return -EROFS;
+}
+
+/* top down parent */
+static int au_wbr_create_tdp(struct dentry *dentry, int isdir __maybe_unused)
+{
+ int err;
+ aufs_bindex_t bstart, bindex;
+ struct super_block *sb;
+ struct dentry *parent, *h_parent;
+
+ sb = dentry->d_sb;
+ bstart = au_dbstart(dentry);
+ err = bstart;
+ if (!au_br_rdonly(au_sbr(sb, bstart)))
+ goto out;
+
+ err = -EROFS;
+ parent = dget_parent(dentry);
+ for (bindex = au_dbstart(parent); bindex < bstart; bindex++) {
+ h_parent = au_h_dptr(parent, bindex);
+ if (!h_parent || !h_parent->d_inode)
+ continue;
+
+ if (!au_br_rdonly(au_sbr(sb, bindex))) {
+ err = bindex;
+ break;
+ }
+ }
+ dput(parent);
+
+ /* bottom up here */
+ if (unlikely(err < 0)) {
+ err = au_wbr_bu(sb, bstart - 1);
+ if (err >= 0)
+ err = au_wbr_nonopq(dentry, err);
+ }
+
+ out:
+ AuDbg("b%d\n", err);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* an exception for the policy other than tdp */
+static int au_wbr_create_exp(struct dentry *dentry)
+{
+ int err;
+ aufs_bindex_t bwh, bdiropq;
+ struct dentry *parent;
+
+ err = -1;
+ bwh = au_dbwh(dentry);
+ parent = dget_parent(dentry);
+ bdiropq = au_dbdiropq(parent);
+ if (bwh >= 0) {
+ if (bdiropq >= 0)
+ err = min(bdiropq, bwh);
+ else
+ err = bwh;
+ AuDbg("%d\n", err);
+ } else if (bdiropq >= 0) {
+ err = bdiropq;
+ AuDbg("%d\n", err);
+ }
+ dput(parent);
+
+ if (err >= 0)
+ err = au_wbr_nonopq(dentry, err);
+
+ if (err >= 0 && au_br_rdonly(au_sbr(dentry->d_sb, err)))
+ err = -1;
+
+ AuDbg("%d\n", err);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* round robin */
+static int au_wbr_create_init_rr(struct super_block *sb)
+{
+ int err;
+
+ err = au_wbr_bu(sb, au_sbend(sb));
+ atomic_set(&au_sbi(sb)->si_wbr_rr_next, -err); /* less important */
+ /* smp_mb(); */
+
+ AuDbg("b%d\n", err);
+ return err;
+}
+
+static int au_wbr_create_rr(struct dentry *dentry, int isdir)
+{
+ int err, nbr;
+ unsigned int u;
+ aufs_bindex_t bindex, bend;
+ struct super_block *sb;
+ atomic_t *next;
+
+ err = au_wbr_create_exp(dentry);
+ if (err >= 0)
+ goto out;
+
+ sb = dentry->d_sb;
+ next = &au_sbi(sb)->si_wbr_rr_next;
+ bend = au_sbend(sb);
+ nbr = bend + 1;
+ for (bindex = 0; bindex <= bend; bindex++) {
+ if (!isdir) {
+ err = atomic_dec_return(next) + 1;
+ /* modulo for 0 is meaningless */
+ if (unlikely(!err))
+ err = atomic_dec_return(next) + 1;
+ } else
+ err = atomic_read(next);
+ AuDbg("%d\n", err);
+ u = err;
+ err = u % nbr;
+ AuDbg("%d\n", err);
+ if (!au_br_rdonly(au_sbr(sb, err)))
+ break;
+ err = -EROFS;
+ }
+
+ if (err >= 0)
+ err = au_wbr_nonopq(dentry, err);
+
+ out:
+ AuDbg("%d\n", err);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* most free space */
+static void au_mfs(struct dentry *dentry)
+{
+ struct super_block *sb;
+ struct au_branch *br;
+ struct au_wbr_mfs *mfs;
+ aufs_bindex_t bindex, bend;
+ int err;
+ unsigned long long b, bavail;
+ /* reduce the stack usage */
+ struct kstatfs *st;
+
+ st = kmalloc(sizeof(*st), GFP_NOFS);
+ if (unlikely(!st)) {
+ AuWarn1("failed updating mfs(%d), ignored\n", -ENOMEM);
+ return;
+ }
+
+ bavail = 0;
+ sb = dentry->d_sb;
+ mfs = &au_sbi(sb)->si_wbr_mfs;
+ MtxMustLock(&mfs->mfs_lock);
+ mfs->mfs_bindex = -EROFS;
+ mfs->mfsrr_bytes = 0;
+ bend = au_sbend(sb);
+ for (bindex = 0; bindex <= bend; bindex++) {
+ br = au_sbr(sb, bindex);
+ if (au_br_rdonly(br))
+ continue;
+
+ /* sb->s_root for NFS is unreliable */
+ err = vfs_statfs(br->br_mnt->mnt_root, st);
+ if (unlikely(err)) {
+ AuWarn1("failed statfs, b%d, %d\n", bindex, err);
+ continue;
+ }
+
+ /* when the available size is equal, select the lower one */
+ BUILD_BUG_ON(sizeof(b) < sizeof(st->f_bavail)
+ || sizeof(b) < sizeof(st->f_bsize));
+ b = st->f_bavail * st->f_bsize;
+ br->br_wbr->wbr_bytes = b;
+ if (b >= bavail) {
+ bavail = b;
+ mfs->mfs_bindex = bindex;
+ mfs->mfs_jiffy = jiffies;
+ }
+ }
+
+ mfs->mfsrr_bytes = bavail;
+ AuDbg("b%d\n", mfs->mfs_bindex);
+ kfree(st);
+}
+
+static int au_wbr_create_mfs(struct dentry *dentry, int isdir __maybe_unused)
+{
+ int err;
+ struct super_block *sb;
+ struct au_wbr_mfs *mfs;
+
+ err = au_wbr_create_exp(dentry);
+ if (err >= 0)
+ goto out;
+
+ sb = dentry->d_sb;
+ mfs = &au_sbi(sb)->si_wbr_mfs;
+ mutex_lock(&mfs->mfs_lock);
+ if (time_after(jiffies, mfs->mfs_jiffy + mfs->mfs_expire)
+ || mfs->mfs_bindex < 0
+ || au_br_rdonly(au_sbr(sb, mfs->mfs_bindex)))
+ au_mfs(dentry);
+ mutex_unlock(&mfs->mfs_lock);
+ err = mfs->mfs_bindex;
+
+ if (err >= 0)
+ err = au_wbr_nonopq(dentry, err);
+
+ out:
+ AuDbg("b%d\n", err);
+ return err;
+}
+
+static int au_wbr_create_init_mfs(struct super_block *sb)
+{
+ struct au_wbr_mfs *mfs;
+
+ mfs = &au_sbi(sb)->si_wbr_mfs;
+ mutex_init(&mfs->mfs_lock);
+ mfs->mfs_jiffy = 0;
+ mfs->mfs_bindex = -EROFS;
+
+ return 0;
+}
+
+static int au_wbr_create_fin_mfs(struct super_block *sb __maybe_unused)
+{
+ mutex_destroy(&au_sbi(sb)->si_wbr_mfs.mfs_lock);
+ return 0;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* most free space and then round robin */
+static int au_wbr_create_mfsrr(struct dentry *dentry, int isdir)
+{
+ int err;
+ struct au_wbr_mfs *mfs;
+
+ err = au_wbr_create_mfs(dentry, isdir);
+ if (err >= 0) {
+ mfs = &au_sbi(dentry->d_sb)->si_wbr_mfs;
+ mutex_lock(&mfs->mfs_lock);
+ if (mfs->mfsrr_bytes < mfs->mfsrr_watermark)
+ err = au_wbr_create_rr(dentry, isdir);
+ mutex_unlock(&mfs->mfs_lock);
+ }
+
+ AuDbg("b%d\n", err);
+ return err;
+}
+
+static int au_wbr_create_init_mfsrr(struct super_block *sb)
+{
+ int err;
+
+ au_wbr_create_init_mfs(sb); /* ignore */
+ err = au_wbr_create_init_rr(sb);
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* top down parent and most free space */
+static int au_wbr_create_pmfs(struct dentry *dentry, int isdir)
+{
+ int err, e2;
+ unsigned long long b;
+ aufs_bindex_t bindex, bstart, bend;
+ struct super_block *sb;
+ struct dentry *parent, *h_parent;
+ struct au_branch *br;
+
+ err = au_wbr_create_tdp(dentry, isdir);
+ if (unlikely(err < 0))
+ goto out;
+ parent = dget_parent(dentry);
+ bstart = au_dbstart(parent);
+ bend = au_dbtaildir(parent);
+ if (bstart == bend)
+ goto out_parent; /* success */
+
+ e2 = au_wbr_create_mfs(dentry, isdir);
+ if (e2 < 0)
+ goto out_parent; /* success */
+
+ /* when the available size is equal, select upper one */
+ sb = dentry->d_sb;
+ br = au_sbr(sb, err);
+ b = br->br_wbr->wbr_bytes;
+ AuDbg("b%d, %llu\n", err, b);
+
+ for (bindex = bstart; bindex <= bend; bindex++) {
+ h_parent = au_h_dptr(parent, bindex);
+ if (!h_parent || !h_parent->d_inode)
+ continue;
+
+ br = au_sbr(sb, bindex);
+ if (!au_br_rdonly(br) && br->br_wbr->wbr_bytes > b) {
+ b = br->br_wbr->wbr_bytes;
+ err = bindex;
+ AuDbg("b%d, %llu\n", err, b);
+ }
+ }
+
+ if (err >= 0)
+ err = au_wbr_nonopq(dentry, err);
+
+ out_parent:
+ dput(parent);
+ out:
+ AuDbg("b%d\n", err);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* policies for copyup */
+
+/* top down parent */
+static int au_wbr_copyup_tdp(struct dentry *dentry)
+{
+ return au_wbr_create_tdp(dentry, /*isdir, anything is ok*/0);
+}
+
+/* bottom up parent */
+static int au_wbr_copyup_bup(struct dentry *dentry)
+{
+ int err;
+ aufs_bindex_t bindex, bstart;
+ struct dentry *parent, *h_parent;
+ struct super_block *sb;
+
+ err = -EROFS;
+ sb = dentry->d_sb;
+ parent = dget_parent(dentry);
+ bstart = au_dbstart(parent);
+ for (bindex = au_dbstart(dentry); bindex >= bstart; bindex--) {
+ h_parent = au_h_dptr(parent, bindex);
+ if (!h_parent || !h_parent->d_inode)
+ continue;
+
+ if (!au_br_rdonly(au_sbr(sb, bindex))) {
+ err = bindex;
+ break;
+ }
+ }
+ dput(parent);
+
+ /* bottom up here */
+ if (unlikely(err < 0))
+ err = au_wbr_bu(sb, bstart - 1);
+
+ AuDbg("b%d\n", err);
+ return err;
+}
+
+/* bottom up */
+static int au_wbr_copyup_bu(struct dentry *dentry)
+{
+ int err;
+ aufs_bindex_t bstart;
+
+ bstart = au_dbstart(dentry);
+ err = au_wbr_bu(dentry->d_sb, bstart);
+ AuDbg("b%d\n", err);
+ if (err > bstart)
+ err = au_wbr_nonopq(dentry, err);
+
+ AuDbg("b%d\n", err);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct au_wbr_copyup_operations au_wbr_copyup_ops[] = {
+ [AuWbrCopyup_TDP] = {
+ .copyup = au_wbr_copyup_tdp
+ },
+ [AuWbrCopyup_BUP] = {
+ .copyup = au_wbr_copyup_bup
+ },
+ [AuWbrCopyup_BU] = {
+ .copyup = au_wbr_copyup_bu
+ }
+};
+
+struct au_wbr_create_operations au_wbr_create_ops[] = {
+ [AuWbrCreate_TDP] = {
+ .create = au_wbr_create_tdp
+ },
+ [AuWbrCreate_RR] = {
+ .create = au_wbr_create_rr,
+ .init = au_wbr_create_init_rr
+ },
+ [AuWbrCreate_MFS] = {
+ .create = au_wbr_create_mfs,
+ .init = au_wbr_create_init_mfs,
+ .fin = au_wbr_create_fin_mfs
+ },
+ [AuWbrCreate_MFSV] = {
+ .create = au_wbr_create_mfs,
+ .init = au_wbr_create_init_mfs,
+ .fin = au_wbr_create_fin_mfs
+ },
+ [AuWbrCreate_MFSRR] = {
+ .create = au_wbr_create_mfsrr,
+ .init = au_wbr_create_init_mfsrr,
+ .fin = au_wbr_create_fin_mfs
+ },
+ [AuWbrCreate_MFSRRV] = {
+ .create = au_wbr_create_mfsrr,
+ .init = au_wbr_create_init_mfsrr,
+ .fin = au_wbr_create_fin_mfs
+ },
+ [AuWbrCreate_PMFS] = {
+ .create = au_wbr_create_pmfs,
+ .init = au_wbr_create_init_mfs,
+ .fin = au_wbr_create_fin_mfs
+ },
+ [AuWbrCreate_PMFSV] = {
+ .create = au_wbr_create_pmfs,
+ .init = au_wbr_create_init_mfs,
+ .fin = au_wbr_create_fin_mfs
+ }
+};
diff --git a/ubuntu/aufs/whout.c b/ubuntu/aufs/whout.c
new file mode 100644
index 00000000000..398a1608619
--- /dev/null
+++ b/ubuntu/aufs/whout.c
@@ -0,0 +1,1052 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * whiteout for logical deletion and opaque directory
+ */
+
+#include <linux/fs.h>
+#include "aufs.h"
+
+#define WH_MASK S_IRUGO
+
+/*
+ * If a directory contains this file, then it is opaque. We start with the
+ * .wh. flag so that it is blocked by lookup.
+ */
+static struct qstr diropq_name = {
+ .name = AUFS_WH_DIROPQ,
+ .len = sizeof(AUFS_WH_DIROPQ) - 1
+};
+
+/*
+ * generate whiteout name, which is NOT terminated by NULL.
+ * @name: original d_name.name
+ * @len: original d_name.len
+ * @wh: whiteout qstr
+ * returns zero when succeeds, otherwise error.
+ * succeeded value as wh->name should be freed by kfree().
+ */
+int au_wh_name_alloc(struct qstr *wh, const struct qstr *name)
+{
+ char *p;
+
+ if (unlikely(name->len > PATH_MAX - AUFS_WH_PFX_LEN))
+ return -ENAMETOOLONG;
+
+ wh->len = name->len + AUFS_WH_PFX_LEN;
+ p = kmalloc(wh->len, GFP_NOFS);
+ wh->name = p;
+ if (p) {
+ memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN);
+ memcpy(p + AUFS_WH_PFX_LEN, name->name, name->len);
+ /* smp_mb(); */
+ return 0;
+ }
+ return -ENOMEM;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * test if the @wh_name exists under @h_parent.
+ * @try_sio specifies the necessary of super-io.
+ */
+int au_wh_test(struct dentry *h_parent, struct qstr *wh_name,
+ struct au_branch *br, int try_sio)
+{
+ int err;
+ struct dentry *wh_dentry;
+
+ if (!try_sio)
+ wh_dentry = au_lkup_one(wh_name, h_parent, br, /*nd*/NULL);
+ else
+ wh_dentry = au_sio_lkup_one(wh_name, h_parent, br);
+ err = PTR_ERR(wh_dentry);
+ if (IS_ERR(wh_dentry))
+ goto out;
+
+ err = 0;
+ if (!wh_dentry->d_inode)
+ goto out_wh; /* success */
+
+ err = 1;
+ if (S_ISREG(wh_dentry->d_inode->i_mode))
+ goto out_wh; /* success */
+
+ err = -EIO;
+ AuIOErr("%.*s Invalid whiteout entry type 0%o.\n",
+ AuDLNPair(wh_dentry), wh_dentry->d_inode->i_mode);
+
+ out_wh:
+ dput(wh_dentry);
+ out:
+ return err;
+}
+
+/*
+ * test if the @h_dentry sets opaque or not.
+ */
+int au_diropq_test(struct dentry *h_dentry, struct au_branch *br)
+{
+ int err;
+ struct inode *h_dir;
+
+ h_dir = h_dentry->d_inode;
+ err = au_wh_test(h_dentry, &diropq_name, br,
+ au_test_h_perm_sio(h_dir, MAY_EXEC));
+ return err;
+}
+
+/*
+ * returns a negative dentry whose name is unique and temporary.
+ */
+struct dentry *au_whtmp_lkup(struct dentry *h_parent, struct au_branch *br,
+ struct qstr *prefix)
+{
+ struct dentry *dentry;
+ int i;
+ char defname[NAME_MAX - AUFS_MAX_NAMELEN + DNAME_INLINE_LEN_MIN + 1],
+ *name, *p;
+ static unsigned short cnt;
+ struct qstr qs;
+
+ BUILD_BUG_ON(sizeof(cnt) * 2 > AUFS_WH_TMP_LEN);
+
+ name = defname;
+ qs.len = sizeof(defname) - DNAME_INLINE_LEN_MIN + prefix->len - 1;
+ if (unlikely(prefix->len > DNAME_INLINE_LEN_MIN)) {
+ dentry = ERR_PTR(-ENAMETOOLONG);
+ if (unlikely(qs.len > NAME_MAX))
+ goto out;
+ dentry = ERR_PTR(-ENOMEM);
+ name = kmalloc(qs.len + 1, GFP_NOFS);
+ if (unlikely(!name))
+ goto out;
+ }
+
+ /* doubly whiteout-ed */
+ memcpy(name, AUFS_WH_PFX AUFS_WH_PFX, AUFS_WH_PFX_LEN * 2);
+ p = name + AUFS_WH_PFX_LEN * 2;
+ memcpy(p, prefix->name, prefix->len);
+ p += prefix->len;
+ *p++ = '.';
+ AuDebugOn(name + qs.len + 1 - p <= AUFS_WH_TMP_LEN);
+
+ qs.name = name;
+ for (i = 0; i < 3; i++) {
+ sprintf(p, "%.*d", AUFS_WH_TMP_LEN, cnt++);
+ dentry = au_sio_lkup_one(&qs, h_parent, br);
+ if (IS_ERR(dentry) || !dentry->d_inode)
+ goto out_name;
+ dput(dentry);
+ }
+ /* pr_warning("could not get random name\n"); */
+ dentry = ERR_PTR(-EEXIST);
+ AuDbg("%.*s\n", AuLNPair(&qs));
+ BUG();
+
+ out_name:
+ if (name != defname)
+ kfree(name);
+ out:
+ AuTraceErrPtr(dentry);
+ return dentry;
+}
+
+/*
+ * rename the @h_dentry on @br to the whiteouted temporary name.
+ */
+int au_whtmp_ren(struct dentry *h_dentry, struct au_branch *br)
+{
+ int err;
+ struct path h_path = {
+ .mnt = br->br_mnt
+ };
+ struct inode *h_dir;
+ struct dentry *h_parent;
+
+ h_parent = h_dentry->d_parent; /* dir inode is locked */
+ h_dir = h_parent->d_inode;
+ IMustLock(h_dir);
+
+ h_path.dentry = au_whtmp_lkup(h_parent, br, &h_dentry->d_name);
+ err = PTR_ERR(h_path.dentry);
+ if (IS_ERR(h_path.dentry))
+ goto out;
+
+ /* under the same dir, no need to lock_rename() */
+ err = vfsub_rename(h_dir, h_dentry, h_dir, &h_path);
+ AuTraceErr(err);
+ dput(h_path.dentry);
+
+ out:
+ AuTraceErr(err);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+/*
+ * functions for removing a whiteout
+ */
+
+static int do_unlink_wh(struct inode *h_dir, struct path *h_path)
+{
+ int force;
+
+ /*
+ * forces superio when the dir has a sticky bit.
+ * this may be a violation of unix fs semantics.
+ */
+ force = (h_dir->i_mode & S_ISVTX)
+ && h_path->dentry->d_inode->i_uid != current_fsuid();
+ return vfsub_unlink(h_dir, h_path, force);
+}
+
+int au_wh_unlink_dentry(struct inode *h_dir, struct path *h_path,
+ struct dentry *dentry)
+{
+ int err;
+
+ err = do_unlink_wh(h_dir, h_path);
+ if (!err && dentry)
+ au_set_dbwh(dentry, -1);
+
+ return err;
+}
+
+static int unlink_wh_name(struct dentry *h_parent, struct qstr *wh,
+ struct au_branch *br)
+{
+ int err;
+ struct path h_path = {
+ .mnt = br->br_mnt
+ };
+
+ err = 0;
+ h_path.dentry = au_lkup_one(wh, h_parent, br, /*nd*/NULL);
+ if (IS_ERR(h_path.dentry))
+ err = PTR_ERR(h_path.dentry);
+ else {
+ if (h_path.dentry->d_inode
+ && S_ISREG(h_path.dentry->d_inode->i_mode))
+ err = do_unlink_wh(h_parent->d_inode, &h_path);
+ dput(h_path.dentry);
+ }
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+/*
+ * initialize/clean whiteout for a branch
+ */
+
+static void au_wh_clean(struct inode *h_dir, struct path *whpath,
+ const int isdir)
+{
+ int err;
+
+ if (!whpath->dentry->d_inode)
+ return;
+
+ err = mnt_want_write(whpath->mnt);
+ if (!err) {
+ if (isdir)
+ err = vfsub_rmdir(h_dir, whpath);
+ else
+ err = vfsub_unlink(h_dir, whpath, /*force*/0);
+ mnt_drop_write(whpath->mnt);
+ }
+ if (unlikely(err))
+ pr_warning("failed removing %.*s (%d), ignored.\n",
+ AuDLNPair(whpath->dentry), err);
+}
+
+static int test_linkable(struct dentry *h_root)
+{
+ struct inode *h_dir = h_root->d_inode;
+
+ if (h_dir->i_op->link)
+ return 0;
+
+ pr_err("%.*s (%s) doesn't support link(2), use noplink and rw+nolwh\n",
+ AuDLNPair(h_root), au_sbtype(h_root->d_sb));
+ return -ENOSYS;
+}
+
+/* todo: should this mkdir be done in /sbin/mount.aufs helper? */
+static int au_whdir(struct inode *h_dir, struct path *path)
+{
+ int err;
+
+ err = -EEXIST;
+ if (!path->dentry->d_inode) {
+ int mode = S_IRWXU;
+
+ if (au_test_nfs(path->dentry->d_sb))
+ mode |= S_IXUGO;
+ err = mnt_want_write(path->mnt);
+ if (!err) {
+ err = vfsub_mkdir(h_dir, path, mode);
+ mnt_drop_write(path->mnt);
+ }
+ } else if (S_ISDIR(path->dentry->d_inode->i_mode))
+ err = 0;
+ else
+ pr_err("unknown %.*s exists\n", AuDLNPair(path->dentry));
+
+ return err;
+}
+
+struct au_wh_base {
+ const struct qstr *name;
+ struct dentry *dentry;
+};
+
+static void au_wh_init_ro(struct inode *h_dir, struct au_wh_base base[],
+ struct path *h_path)
+{
+ h_path->dentry = base[AuBrWh_BASE].dentry;
+ au_wh_clean(h_dir, h_path, /*isdir*/0);
+ h_path->dentry = base[AuBrWh_PLINK].dentry;
+ au_wh_clean(h_dir, h_path, /*isdir*/1);
+ h_path->dentry = base[AuBrWh_ORPH].dentry;
+ au_wh_clean(h_dir, h_path, /*isdir*/1);
+}
+
+/*
+ * returns tri-state,
+ * minus: error, caller should print the mesage
+ * zero: succuess
+ * plus: error, caller should NOT print the mesage
+ */
+static int au_wh_init_rw_nolink(struct dentry *h_root, struct au_wbr *wbr,
+ int do_plink, struct au_wh_base base[],
+ struct path *h_path)
+{
+ int err;
+ struct inode *h_dir;
+
+ h_dir = h_root->d_inode;
+ h_path->dentry = base[AuBrWh_BASE].dentry;
+ au_wh_clean(h_dir, h_path, /*isdir*/0);
+ h_path->dentry = base[AuBrWh_PLINK].dentry;
+ if (do_plink) {
+ err = test_linkable(h_root);
+ if (unlikely(err)) {
+ err = 1;
+ goto out;
+ }
+
+ err = au_whdir(h_dir, h_path);
+ if (unlikely(err))
+ goto out;
+ wbr->wbr_plink = dget(base[AuBrWh_PLINK].dentry);
+ } else
+ au_wh_clean(h_dir, h_path, /*isdir*/1);
+ h_path->dentry = base[AuBrWh_ORPH].dentry;
+ err = au_whdir(h_dir, h_path);
+ if (unlikely(err))
+ goto out;
+ wbr->wbr_orph = dget(base[AuBrWh_ORPH].dentry);
+
+ out:
+ return err;
+}
+
+/*
+ * for the moment, aufs supports the branch filesystem which does not support
+ * link(2). testing on FAT which does not support i_op->setattr() fully either,
+ * copyup failed. finally, such filesystem will not be used as the writable
+ * branch.
+ *
+ * returns tri-state, see above.
+ */
+static int au_wh_init_rw(struct dentry *h_root, struct au_wbr *wbr,
+ int do_plink, struct au_wh_base base[],
+ struct path *h_path)
+{
+ int err;
+ struct inode *h_dir;
+
+ WbrWhMustWriteLock(wbr);
+
+ err = test_linkable(h_root);
+ if (unlikely(err)) {
+ err = 1;
+ goto out;
+ }
+
+ /*
+ * todo: should this create be done in /sbin/mount.aufs helper?
+ */
+ err = -EEXIST;
+ h_dir = h_root->d_inode;
+ if (!base[AuBrWh_BASE].dentry->d_inode) {
+ err = mnt_want_write(h_path->mnt);
+ if (!err) {
+ h_path->dentry = base[AuBrWh_BASE].dentry;
+ err = vfsub_create(h_dir, h_path, WH_MASK);
+ mnt_drop_write(h_path->mnt);
+ }
+ } else if (S_ISREG(base[AuBrWh_BASE].dentry->d_inode->i_mode))
+ err = 0;
+ else
+ pr_err("unknown %.*s/%.*s exists\n",
+ AuDLNPair(h_root), AuDLNPair(base[AuBrWh_BASE].dentry));
+ if (unlikely(err))
+ goto out;
+
+ h_path->dentry = base[AuBrWh_PLINK].dentry;
+ if (do_plink) {
+ err = au_whdir(h_dir, h_path);
+ if (unlikely(err))
+ goto out;
+ wbr->wbr_plink = dget(base[AuBrWh_PLINK].dentry);
+ } else
+ au_wh_clean(h_dir, h_path, /*isdir*/1);
+ wbr->wbr_whbase = dget(base[AuBrWh_BASE].dentry);
+
+ h_path->dentry = base[AuBrWh_ORPH].dentry;
+ err = au_whdir(h_dir, h_path);
+ if (unlikely(err))
+ goto out;
+ wbr->wbr_orph = dget(base[AuBrWh_ORPH].dentry);
+
+ out:
+ return err;
+}
+
+/*
+ * initialize the whiteout base file/dir for @br.
+ */
+int au_wh_init(struct dentry *h_root, struct au_branch *br,
+ struct super_block *sb)
+{
+ int err, i;
+ const unsigned char do_plink
+ = !!au_opt_test(au_mntflags(sb), PLINK);
+ struct path path = {
+ .mnt = br->br_mnt
+ };
+ struct inode *h_dir;
+ struct au_wbr *wbr = br->br_wbr;
+ static const struct qstr base_name[] = {
+ [AuBrWh_BASE] = {
+ .name = AUFS_BASE_NAME,
+ .len = sizeof(AUFS_BASE_NAME) - 1
+ },
+ [AuBrWh_PLINK] = {
+ .name = AUFS_PLINKDIR_NAME,
+ .len = sizeof(AUFS_PLINKDIR_NAME) - 1
+ },
+ [AuBrWh_ORPH] = {
+ .name = AUFS_ORPHDIR_NAME,
+ .len = sizeof(AUFS_ORPHDIR_NAME) - 1
+ }
+ };
+ struct au_wh_base base[] = {
+ [AuBrWh_BASE] = {
+ .name = base_name + AuBrWh_BASE,
+ .dentry = NULL
+ },
+ [AuBrWh_PLINK] = {
+ .name = base_name + AuBrWh_PLINK,
+ .dentry = NULL
+ },
+ [AuBrWh_ORPH] = {
+ .name = base_name + AuBrWh_ORPH,
+ .dentry = NULL
+ }
+ };
+
+ if (wbr)
+ WbrWhMustWriteLock(wbr);
+
+ for (i = 0; i < AuBrWh_Last; i++) {
+ /* doubly whiteouted */
+ struct dentry *d;
+
+ d = au_wh_lkup(h_root, (void *)base[i].name, br);
+ err = PTR_ERR(d);
+ if (IS_ERR(d))
+ goto out;
+
+ base[i].dentry = d;
+ AuDebugOn(wbr
+ && wbr->wbr_wh[i]
+ && wbr->wbr_wh[i] != base[i].dentry);
+ }
+
+ if (wbr)
+ for (i = 0; i < AuBrWh_Last; i++) {
+ dput(wbr->wbr_wh[i]);
+ wbr->wbr_wh[i] = NULL;
+ }
+
+ err = 0;
+ switch (br->br_perm) {
+ case AuBrPerm_RO:
+ case AuBrPerm_ROWH:
+ case AuBrPerm_RR:
+ case AuBrPerm_RRWH:
+ h_dir = h_root->d_inode;
+ au_wh_init_ro(h_dir, base, &path);
+ break;
+
+ case AuBrPerm_RWNoLinkWH:
+ err = au_wh_init_rw_nolink(h_root, wbr, do_plink, base, &path);
+ if (err > 0)
+ goto out;
+ else if (err)
+ goto out_err;
+ break;
+
+ case AuBrPerm_RW:
+ err = au_wh_init_rw(h_root, wbr, do_plink, base, &path);
+ if (err > 0)
+ goto out;
+ else if (err)
+ goto out_err;
+ break;
+
+ default:
+ BUG();
+ }
+ goto out; /* success */
+
+ out_err:
+ pr_err("an error(%d) on the writable branch %.*s(%s)\n",
+ err, AuDLNPair(h_root), au_sbtype(h_root->d_sb));
+ out:
+ for (i = 0; i < AuBrWh_Last; i++)
+ dput(base[i].dentry);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+/*
+ * whiteouts are all hard-linked usually.
+ * when its link count reaches a ceiling, we create a new whiteout base
+ * asynchronously.
+ */
+
+struct reinit_br_wh {
+ struct super_block *sb;
+ struct au_branch *br;
+};
+
+static void reinit_br_wh(void *arg)
+{
+ int err;
+ aufs_bindex_t bindex;
+ struct path h_path;
+ struct reinit_br_wh *a = arg;
+ struct au_wbr *wbr;
+ struct inode *dir;
+ struct dentry *h_root;
+ struct au_hinode *hdir;
+
+ err = 0;
+ wbr = a->br->br_wbr;
+ /* big aufs lock */
+ si_noflush_write_lock(a->sb);
+ if (!au_br_writable(a->br->br_perm))
+ goto out;
+ bindex = au_br_index(a->sb, a->br->br_id);
+ if (unlikely(bindex < 0))
+ goto out;
+
+ di_read_lock_parent(a->sb->s_root, AuLock_IR);
+ dir = a->sb->s_root->d_inode;
+ hdir = au_hi(dir, bindex);
+ h_root = au_h_dptr(a->sb->s_root, bindex);
+
+ au_hn_imtx_lock_nested(hdir, AuLsc_I_PARENT);
+ wbr_wh_write_lock(wbr);
+ err = au_h_verify(wbr->wbr_whbase, au_opt_udba(a->sb), hdir->hi_inode,
+ h_root, a->br);
+ if (!err) {
+ err = mnt_want_write(a->br->br_mnt);
+ if (!err) {
+ h_path.dentry = wbr->wbr_whbase;
+ h_path.mnt = a->br->br_mnt;
+ err = vfsub_unlink(hdir->hi_inode, &h_path, /*force*/0);
+ mnt_drop_write(a->br->br_mnt);
+ }
+ } else {
+ pr_warning("%.*s is moved, ignored\n",
+ AuDLNPair(wbr->wbr_whbase));
+ err = 0;
+ }
+ dput(wbr->wbr_whbase);
+ wbr->wbr_whbase = NULL;
+ if (!err)
+ err = au_wh_init(h_root, a->br, a->sb);
+ wbr_wh_write_unlock(wbr);
+ au_hn_imtx_unlock(hdir);
+ di_read_unlock(a->sb->s_root, AuLock_IR);
+
+ out:
+ if (wbr)
+ atomic_dec(&wbr->wbr_wh_running);
+ atomic_dec(&a->br->br_count);
+ au_nwt_done(&au_sbi(a->sb)->si_nowait);
+ si_write_unlock(a->sb);
+ kfree(arg);
+ if (unlikely(err))
+ AuIOErr("err %d\n", err);
+}
+
+static void kick_reinit_br_wh(struct super_block *sb, struct au_branch *br)
+{
+ int do_dec, wkq_err;
+ struct reinit_br_wh *arg;
+
+ do_dec = 1;
+ if (atomic_inc_return(&br->br_wbr->wbr_wh_running) != 1)
+ goto out;
+
+ /* ignore ENOMEM */
+ arg = kmalloc(sizeof(*arg), GFP_NOFS);
+ if (arg) {
+ /*
+ * dec(wh_running), kfree(arg) and dec(br_count)
+ * in reinit function
+ */
+ arg->sb = sb;
+ arg->br = br;
+ atomic_inc(&br->br_count);
+ wkq_err = au_wkq_nowait(reinit_br_wh, arg, sb);
+ if (unlikely(wkq_err)) {
+ atomic_dec(&br->br_wbr->wbr_wh_running);
+ atomic_dec(&br->br_count);
+ kfree(arg);
+ }
+ do_dec = 0;
+ }
+
+ out:
+ if (do_dec)
+ atomic_dec(&br->br_wbr->wbr_wh_running);
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * create the whiteout @wh.
+ */
+static int link_or_create_wh(struct super_block *sb, aufs_bindex_t bindex,
+ struct dentry *wh)
+{
+ int err;
+ struct path h_path = {
+ .dentry = wh
+ };
+ struct au_branch *br;
+ struct au_wbr *wbr;
+ struct dentry *h_parent;
+ struct inode *h_dir;
+
+ h_parent = wh->d_parent; /* dir inode is locked */
+ h_dir = h_parent->d_inode;
+ IMustLock(h_dir);
+
+ br = au_sbr(sb, bindex);
+ h_path.mnt = br->br_mnt;
+ wbr = br->br_wbr;
+ wbr_wh_read_lock(wbr);
+ if (wbr->wbr_whbase) {
+ err = vfsub_link(wbr->wbr_whbase, h_dir, &h_path);
+ if (!err || err != -EMLINK)
+ goto out;
+
+ /* link count full. re-initialize br_whbase. */
+ kick_reinit_br_wh(sb, br);
+ }
+
+ /* return this error in this context */
+ err = vfsub_create(h_dir, &h_path, WH_MASK);
+
+ out:
+ wbr_wh_read_unlock(wbr);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * create or remove the diropq.
+ */
+static struct dentry *do_diropq(struct dentry *dentry, aufs_bindex_t bindex,
+ unsigned int flags)
+{
+ struct dentry *opq_dentry, *h_dentry;
+ struct super_block *sb;
+ struct au_branch *br;
+ int err;
+
+ sb = dentry->d_sb;
+ br = au_sbr(sb, bindex);
+ h_dentry = au_h_dptr(dentry, bindex);
+ opq_dentry = au_lkup_one(&diropq_name, h_dentry, br, /*nd*/NULL);
+ if (IS_ERR(opq_dentry))
+ goto out;
+
+ if (au_ftest_diropq(flags, CREATE)) {
+ err = link_or_create_wh(sb, bindex, opq_dentry);
+ if (!err) {
+ au_set_dbdiropq(dentry, bindex);
+ goto out; /* success */
+ }
+ } else {
+ struct path tmp = {
+ .dentry = opq_dentry,
+ .mnt = br->br_mnt
+ };
+ err = do_unlink_wh(au_h_iptr(dentry->d_inode, bindex), &tmp);
+ if (!err)
+ au_set_dbdiropq(dentry, -1);
+ }
+ dput(opq_dentry);
+ opq_dentry = ERR_PTR(err);
+
+ out:
+ return opq_dentry;
+}
+
+struct do_diropq_args {
+ struct dentry **errp;
+ struct dentry *dentry;
+ aufs_bindex_t bindex;
+ unsigned int flags;
+};
+
+static void call_do_diropq(void *args)
+{
+ struct do_diropq_args *a = args;
+ *a->errp = do_diropq(a->dentry, a->bindex, a->flags);
+}
+
+struct dentry *au_diropq_sio(struct dentry *dentry, aufs_bindex_t bindex,
+ unsigned int flags)
+{
+ struct dentry *diropq, *h_dentry;
+
+ h_dentry = au_h_dptr(dentry, bindex);
+ if (!au_test_h_perm_sio(h_dentry->d_inode, MAY_EXEC | MAY_WRITE))
+ diropq = do_diropq(dentry, bindex, flags);
+ else {
+ int wkq_err;
+ struct do_diropq_args args = {
+ .errp = &diropq,
+ .dentry = dentry,
+ .bindex = bindex,
+ .flags = flags
+ };
+
+ wkq_err = au_wkq_wait(call_do_diropq, &args);
+ if (unlikely(wkq_err))
+ diropq = ERR_PTR(wkq_err);
+ }
+
+ return diropq;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * lookup whiteout dentry.
+ * @h_parent: lower parent dentry which must exist and be locked
+ * @base_name: name of dentry which will be whiteouted
+ * returns dentry for whiteout.
+ */
+struct dentry *au_wh_lkup(struct dentry *h_parent, struct qstr *base_name,
+ struct au_branch *br)
+{
+ int err;
+ struct qstr wh_name;
+ struct dentry *wh_dentry;
+
+ err = au_wh_name_alloc(&wh_name, base_name);
+ wh_dentry = ERR_PTR(err);
+ if (!err) {
+ wh_dentry = au_lkup_one(&wh_name, h_parent, br, /*nd*/NULL);
+ kfree(wh_name.name);
+ }
+ return wh_dentry;
+}
+
+/*
+ * link/create a whiteout for @dentry on @bindex.
+ */
+struct dentry *au_wh_create(struct dentry *dentry, aufs_bindex_t bindex,
+ struct dentry *h_parent)
+{
+ struct dentry *wh_dentry;
+ struct super_block *sb;
+ int err;
+
+ sb = dentry->d_sb;
+ wh_dentry = au_wh_lkup(h_parent, &dentry->d_name, au_sbr(sb, bindex));
+ if (!IS_ERR(wh_dentry) && !wh_dentry->d_inode) {
+ err = link_or_create_wh(sb, bindex, wh_dentry);
+ if (!err)
+ au_set_dbwh(dentry, bindex);
+ else {
+ dput(wh_dentry);
+ wh_dentry = ERR_PTR(err);
+ }
+ }
+
+ return wh_dentry;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* Delete all whiteouts in this directory on branch bindex. */
+static int del_wh_children(struct dentry *h_dentry, struct au_nhash *whlist,
+ aufs_bindex_t bindex, struct au_branch *br)
+{
+ int err;
+ unsigned long ul, n;
+ struct qstr wh_name;
+ char *p;
+ struct hlist_head *head;
+ struct au_vdir_wh *tpos;
+ struct hlist_node *pos;
+ struct au_vdir_destr *str;
+
+ err = -ENOMEM;
+ p = __getname_gfp(GFP_NOFS);
+ wh_name.name = p;
+ if (unlikely(!wh_name.name))
+ goto out;
+
+ err = 0;
+ memcpy(p, AUFS_WH_PFX, AUFS_WH_PFX_LEN);
+ p += AUFS_WH_PFX_LEN;
+ n = whlist->nh_num;
+ head = whlist->nh_head;
+ for (ul = 0; !err && ul < n; ul++, head++) {
+ hlist_for_each_entry(tpos, pos, head, wh_hash) {
+ if (tpos->wh_bindex != bindex)
+ continue;
+
+ str = &tpos->wh_str;
+ if (str->len + AUFS_WH_PFX_LEN <= PATH_MAX) {
+ memcpy(p, str->name, str->len);
+ wh_name.len = AUFS_WH_PFX_LEN + str->len;
+ err = unlink_wh_name(h_dentry, &wh_name, br);
+ if (!err)
+ continue;
+ break;
+ }
+ AuIOErr("whiteout name too long %.*s\n",
+ str->len, str->name);
+ err = -EIO;
+ break;
+ }
+ }
+ __putname(wh_name.name);
+
+ out:
+ return err;
+}
+
+struct del_wh_children_args {
+ int *errp;
+ struct dentry *h_dentry;
+ struct au_nhash *whlist;
+ aufs_bindex_t bindex;
+ struct au_branch *br;
+};
+
+static void call_del_wh_children(void *args)
+{
+ struct del_wh_children_args *a = args;
+ *a->errp = del_wh_children(a->h_dentry, a->whlist, a->bindex, a->br);
+}
+
+/* ---------------------------------------------------------------------- */
+
+struct au_whtmp_rmdir *au_whtmp_rmdir_alloc(struct super_block *sb, gfp_t gfp)
+{
+ struct au_whtmp_rmdir *whtmp;
+ int err;
+ unsigned int rdhash;
+
+ SiMustAnyLock(sb);
+
+ whtmp = kmalloc(sizeof(*whtmp), gfp);
+ if (unlikely(!whtmp)) {
+ whtmp = ERR_PTR(-ENOMEM);
+ goto out;
+ }
+
+ whtmp->dir = NULL;
+ whtmp->wh_dentry = NULL;
+ /* no estimation for dir size */
+ rdhash = au_sbi(sb)->si_rdhash;
+ if (!rdhash)
+ rdhash = AUFS_RDHASH_DEF;
+ err = au_nhash_alloc(&whtmp->whlist, rdhash, gfp);
+ if (unlikely(err)) {
+ kfree(whtmp);
+ whtmp = ERR_PTR(err);
+ }
+
+ out:
+ return whtmp;
+}
+
+void au_whtmp_rmdir_free(struct au_whtmp_rmdir *whtmp)
+{
+ dput(whtmp->wh_dentry);
+ iput(whtmp->dir);
+ au_nhash_wh_free(&whtmp->whlist);
+ kfree(whtmp);
+}
+
+/*
+ * rmdir the whiteouted temporary named dir @h_dentry.
+ * @whlist: whiteouted children.
+ */
+int au_whtmp_rmdir(struct inode *dir, aufs_bindex_t bindex,
+ struct dentry *wh_dentry, struct au_nhash *whlist)
+{
+ int err;
+ struct path h_tmp;
+ struct inode *wh_inode, *h_dir;
+ struct au_branch *br;
+
+ h_dir = wh_dentry->d_parent->d_inode; /* dir inode is locked */
+ IMustLock(h_dir);
+
+ br = au_sbr(dir->i_sb, bindex);
+ wh_inode = wh_dentry->d_inode;
+ mutex_lock_nested(&wh_inode->i_mutex, AuLsc_I_CHILD);
+
+ /*
+ * someone else might change some whiteouts while we were sleeping.
+ * it means this whlist may have an obsoleted entry.
+ */
+ if (!au_test_h_perm_sio(wh_inode, MAY_EXEC | MAY_WRITE))
+ err = del_wh_children(wh_dentry, whlist, bindex, br);
+ else {
+ int wkq_err;
+ struct del_wh_children_args args = {
+ .errp = &err,
+ .h_dentry = wh_dentry,
+ .whlist = whlist,
+ .bindex = bindex,
+ .br = br
+ };
+
+ wkq_err = au_wkq_wait(call_del_wh_children, &args);
+ if (unlikely(wkq_err))
+ err = wkq_err;
+ }
+ mutex_unlock(&wh_inode->i_mutex);
+
+ if (!err) {
+ h_tmp.dentry = wh_dentry;
+ h_tmp.mnt = br->br_mnt;
+ err = vfsub_rmdir(h_dir, &h_tmp);
+ /* d_drop(h_dentry); */
+ }
+
+ if (!err) {
+ if (au_ibstart(dir) == bindex) {
+ au_cpup_attr_timesizes(dir);
+ drop_nlink(dir);
+ }
+ return 0; /* success */
+ }
+
+ pr_warning("failed removing %.*s(%d), ignored\n",
+ AuDLNPair(wh_dentry), err);
+ return err;
+}
+
+static void call_rmdir_whtmp(void *args)
+{
+ int err;
+ struct au_whtmp_rmdir *a = args;
+ struct super_block *sb;
+ struct dentry *h_parent;
+ struct inode *h_dir;
+ struct au_branch *br;
+ struct au_hinode *hdir;
+
+ /* rmdir by nfsd may cause deadlock with this i_mutex */
+ /* mutex_lock(&a->dir->i_mutex); */
+ sb = a->dir->i_sb;
+ si_noflush_read_lock(sb);
+ err = au_test_ro(sb, a->bindex, NULL);
+ if (unlikely(err))
+ goto out;
+
+ err = -EIO;
+ br = au_sbr(sb, a->bindex);
+ ii_write_lock_parent(a->dir);
+ h_parent = dget_parent(a->wh_dentry);
+ h_dir = h_parent->d_inode;
+ hdir = au_hi(a->dir, a->bindex);
+ au_hn_imtx_lock_nested(hdir, AuLsc_I_PARENT);
+ err = au_h_verify(a->wh_dentry, au_opt_udba(sb), h_dir, h_parent, br);
+ if (!err) {
+ err = mnt_want_write(br->br_mnt);
+ if (!err) {
+ err = au_whtmp_rmdir(a->dir, a->bindex, a->wh_dentry,
+ &a->whlist);
+ mnt_drop_write(br->br_mnt);
+ }
+ }
+ au_hn_imtx_unlock(hdir);
+ dput(h_parent);
+ ii_write_unlock(a->dir);
+
+ out:
+ /* mutex_unlock(&a->dir->i_mutex); */
+ au_nwt_done(&au_sbi(sb)->si_nowait);
+ si_read_unlock(sb);
+ au_whtmp_rmdir_free(a);
+ if (unlikely(err))
+ AuIOErr("err %d\n", err);
+}
+
+void au_whtmp_kick_rmdir(struct inode *dir, aufs_bindex_t bindex,
+ struct dentry *wh_dentry, struct au_whtmp_rmdir *args)
+{
+ int wkq_err;
+
+ IMustLock(dir);
+
+ /* all post-process will be done in do_rmdir_whtmp(). */
+ args->dir = au_igrab(dir);
+ args->bindex = bindex;
+ args->wh_dentry = dget(wh_dentry);
+ wkq_err = au_wkq_nowait(call_rmdir_whtmp, args, dir->i_sb);
+ if (unlikely(wkq_err)) {
+ pr_warning("rmdir error %.*s (%d), ignored\n",
+ AuDLNPair(wh_dentry), wkq_err);
+ au_whtmp_rmdir_free(args);
+ }
+}
diff --git a/ubuntu/aufs/whout.h b/ubuntu/aufs/whout.h
new file mode 100644
index 00000000000..a59158bf629
--- /dev/null
+++ b/ubuntu/aufs/whout.h
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * whiteout for logical deletion and opaque directory
+ */
+
+#ifndef __AUFS_WHOUT_H__
+#define __AUFS_WHOUT_H__
+
+#ifdef __KERNEL__
+
+#include <linux/aufs_type.h>
+#include "dir.h"
+
+/* whout.c */
+int au_wh_name_alloc(struct qstr *wh, const struct qstr *name);
+struct au_branch;
+int au_wh_test(struct dentry *h_parent, struct qstr *wh_name,
+ struct au_branch *br, int try_sio);
+int au_diropq_test(struct dentry *h_dentry, struct au_branch *br);
+struct dentry *au_whtmp_lkup(struct dentry *h_parent, struct au_branch *br,
+ struct qstr *prefix);
+int au_whtmp_ren(struct dentry *h_dentry, struct au_branch *br);
+int au_wh_unlink_dentry(struct inode *h_dir, struct path *h_path,
+ struct dentry *dentry);
+int au_wh_init(struct dentry *h_parent, struct au_branch *br,
+ struct super_block *sb);
+
+/* diropq flags */
+#define AuDiropq_CREATE 1
+#define au_ftest_diropq(flags, name) ((flags) & AuDiropq_##name)
+#define au_fset_diropq(flags, name) { (flags) |= AuDiropq_##name; }
+#define au_fclr_diropq(flags, name) { (flags) &= ~AuDiropq_##name; }
+
+struct dentry *au_diropq_sio(struct dentry *dentry, aufs_bindex_t bindex,
+ unsigned int flags);
+struct dentry *au_wh_lkup(struct dentry *h_parent, struct qstr *base_name,
+ struct au_branch *br);
+struct dentry *au_wh_create(struct dentry *dentry, aufs_bindex_t bindex,
+ struct dentry *h_parent);
+
+/* real rmdir for the whiteout-ed dir */
+struct au_whtmp_rmdir {
+ struct inode *dir;
+ aufs_bindex_t bindex;
+ struct dentry *wh_dentry;
+ struct au_nhash whlist;
+};
+
+struct au_whtmp_rmdir *au_whtmp_rmdir_alloc(struct super_block *sb, gfp_t gfp);
+void au_whtmp_rmdir_free(struct au_whtmp_rmdir *whtmp);
+int au_whtmp_rmdir(struct inode *dir, aufs_bindex_t bindex,
+ struct dentry *wh_dentry, struct au_nhash *whlist);
+void au_whtmp_kick_rmdir(struct inode *dir, aufs_bindex_t bindex,
+ struct dentry *wh_dentry, struct au_whtmp_rmdir *args);
+
+/* ---------------------------------------------------------------------- */
+
+static inline struct dentry *au_diropq_create(struct dentry *dentry,
+ aufs_bindex_t bindex)
+{
+ return au_diropq_sio(dentry, bindex, AuDiropq_CREATE);
+}
+
+static inline int au_diropq_remove(struct dentry *dentry, aufs_bindex_t bindex)
+{
+ return PTR_ERR(au_diropq_sio(dentry, bindex, !AuDiropq_CREATE));
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_WHOUT_H__ */
diff --git a/ubuntu/aufs/wkq.c b/ubuntu/aufs/wkq.c
new file mode 100644
index 00000000000..a67c31f980b
--- /dev/null
+++ b/ubuntu/aufs/wkq.c
@@ -0,0 +1,183 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * workqueue for asynchronous/super-io operations
+ * todo: try new dredential scheme
+ */
+
+#include <linux/module.h>
+#include "aufs.h"
+
+/* internal workqueue named AUFS_WKQ_NAME */
+static struct workqueue_struct *au_wkq;
+
+struct au_wkinfo {
+ struct work_struct wk;
+ struct super_block *sb;
+
+ unsigned int flags; /* see wkq.h */
+
+ au_wkq_func_t func;
+ void *args;
+
+ struct completion *comp;
+};
+
+/* ---------------------------------------------------------------------- */
+
+static void wkq_func(struct work_struct *wk)
+{
+ struct au_wkinfo *wkinfo = container_of(wk, struct au_wkinfo, wk);
+
+ wkinfo->func(wkinfo->args);
+ if (au_ftest_wkq(wkinfo->flags, WAIT))
+ complete(wkinfo->comp);
+ else {
+ kobject_put(&au_sbi(wkinfo->sb)->si_kobj);
+ module_put(THIS_MODULE);
+ kfree(wkinfo);
+ }
+}
+
+/*
+ * Since struct completion is large, try allocating it dynamically.
+ */
+#if defined(CONFIG_4KSTACKS) || defined(AuTest4KSTACKS)
+#define AuWkqCompDeclare(name) struct completion *comp = NULL
+
+static int au_wkq_comp_alloc(struct au_wkinfo *wkinfo, struct completion **comp)
+{
+ *comp = kmalloc(sizeof(**comp), GFP_NOFS);
+ if (*comp) {
+ init_completion(*comp);
+ wkinfo->comp = *comp;
+ return 0;
+ }
+ return -ENOMEM;
+}
+
+static void au_wkq_comp_free(struct completion *comp)
+{
+ kfree(comp);
+}
+
+#else
+
+/* no braces */
+#define AuWkqCompDeclare(name) \
+ DECLARE_COMPLETION_ONSTACK(_ ## name); \
+ struct completion *comp = &_ ## name
+
+static int au_wkq_comp_alloc(struct au_wkinfo *wkinfo, struct completion **comp)
+{
+ wkinfo->comp = *comp;
+ return 0;
+}
+
+static void au_wkq_comp_free(struct completion *comp __maybe_unused)
+{
+ /* empty */
+}
+#endif /* 4KSTACKS */
+
+static void au_wkq_run(struct au_wkinfo *wkinfo, int do_wait)
+{
+ au_dbg_verify_kthread();
+ if (do_wait) {
+ INIT_WORK_ON_STACK(&wkinfo->wk, wkq_func);
+ queue_work(au_wkq, &wkinfo->wk);
+ } else {
+ INIT_WORK(&wkinfo->wk, wkq_func);
+ schedule_work(&wkinfo->wk);
+ }
+}
+
+int au_wkq_wait(au_wkq_func_t func, void *args)
+{
+ int err;
+ AuWkqCompDeclare(comp);
+ struct au_wkinfo wkinfo = {
+ .flags = AuWkq_WAIT,
+ .func = func,
+ .args = args
+ };
+
+ err = au_wkq_comp_alloc(&wkinfo, &comp);
+ if (!err) {
+ au_wkq_run(&wkinfo, AuWkq_WAIT);
+ /* no timeout, no interrupt */
+ wait_for_completion(wkinfo.comp);
+ au_wkq_comp_free(comp);
+ destroy_work_on_stack(&wkinfo.wk);
+ }
+
+ return err;
+
+}
+
+int au_wkq_nowait(au_wkq_func_t func, void *args, struct super_block *sb)
+{
+ int err;
+ struct au_wkinfo *wkinfo;
+
+ atomic_inc(&au_sbi(sb)->si_nowait.nw_len);
+
+ /*
+ * wkq_func() must free this wkinfo.
+ * it highly depends upon the implementation of workqueue.
+ */
+ err = 0;
+ wkinfo = kmalloc(sizeof(*wkinfo), GFP_NOFS);
+ if (wkinfo) {
+ wkinfo->sb = sb;
+ wkinfo->flags = !AuWkq_WAIT;
+ wkinfo->func = func;
+ wkinfo->args = args;
+ wkinfo->comp = NULL;
+ kobject_get(&au_sbi(sb)->si_kobj);
+ __module_get(THIS_MODULE);
+
+ au_wkq_run(wkinfo, !AuWkq_WAIT);
+ } else {
+ err = -ENOMEM;
+ atomic_dec(&au_sbi(sb)->si_nowait.nw_len);
+ }
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+void au_nwt_init(struct au_nowait_tasks *nwt)
+{
+ atomic_set(&nwt->nw_len, 0);
+ /* smp_mb(); */ /* atomic_set */
+ init_waitqueue_head(&nwt->nw_wq);
+}
+
+void au_wkq_fin(void)
+{
+ destroy_workqueue(au_wkq);
+}
+
+int __init au_wkq_init(void)
+{
+ au_wkq = create_workqueue(AUFS_WKQ_NAME);
+ return 0;
+}
diff --git a/ubuntu/aufs/wkq.h b/ubuntu/aufs/wkq.h
new file mode 100644
index 00000000000..3fe36b31d14
--- /dev/null
+++ b/ubuntu/aufs/wkq.h
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * workqueue for asynchronous/super-io operations
+ * todo: try new credentials management scheme
+ */
+
+#ifndef __AUFS_WKQ_H__
+#define __AUFS_WKQ_H__
+
+#ifdef __KERNEL__
+
+#include <linux/sched.h>
+#include <linux/wait.h>
+#include <linux/aufs_type.h>
+
+struct super_block;
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * in the next operation, wait for the 'nowait' tasks in system-wide workqueue
+ */
+struct au_nowait_tasks {
+ atomic_t nw_len;
+ wait_queue_head_t nw_wq;
+};
+
+/* ---------------------------------------------------------------------- */
+
+typedef void (*au_wkq_func_t)(void *args);
+
+/* wkq flags */
+#define AuWkq_WAIT 1
+#define au_ftest_wkq(flags, name) ((flags) & AuWkq_##name)
+#define au_fset_wkq(flags, name) { (flags) |= AuWkq_##name; }
+#define au_fclr_wkq(flags, name) { (flags) &= ~AuWkq_##name; }
+
+/* wkq.c */
+int au_wkq_wait(au_wkq_func_t func, void *args);
+int au_wkq_nowait(au_wkq_func_t func, void *args, struct super_block *sb);
+void au_nwt_init(struct au_nowait_tasks *nwt);
+int __init au_wkq_init(void);
+void au_wkq_fin(void);
+
+/* ---------------------------------------------------------------------- */
+
+static inline int au_test_wkq(struct task_struct *tsk)
+{
+ return !tsk->mm
+ && !strncmp(tsk->comm, AUFS_WKQ_NAME "/",
+ sizeof(AUFS_WKQ_NAME));
+}
+
+static inline void au_nwt_done(struct au_nowait_tasks *nwt)
+{
+ if (!atomic_dec_return(&nwt->nw_len))
+ wake_up_all(&nwt->nw_wq);
+}
+
+static inline int au_nwt_flush(struct au_nowait_tasks *nwt)
+{
+ wait_event(nwt->nw_wq, !atomic_read(&nwt->nw_len));
+ return 0;
+}
+
+#endif /* __KERNEL__ */
+#endif /* __AUFS_WKQ_H__ */
diff --git a/ubuntu/aufs/xino.c b/ubuntu/aufs/xino.c
new file mode 100644
index 00000000000..2eba362e615
--- /dev/null
+++ b/ubuntu/aufs/xino.c
@@ -0,0 +1,1202 @@
+/*
+ * Copyright (C) 2005-2010 Junjiro R. Okajima
+ *
+ * This program, aufs is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * external inode number translation table and bitmap
+ */
+
+#include <linux/file.h>
+#include <linux/seq_file.h>
+#include <linux/uaccess.h>
+#include "aufs.h"
+
+ssize_t xino_fread(au_readf_t func, struct file *file, void *buf, size_t size,
+ loff_t *pos)
+{
+ ssize_t err;
+ mm_segment_t oldfs;
+
+ oldfs = get_fs();
+ set_fs(KERNEL_DS);
+ do {
+ /* todo: signal_pending? */
+ err = func(file, (char __user *)buf, size, pos);
+ } while (err == -EAGAIN || err == -EINTR);
+ set_fs(oldfs);
+
+#if 0 /* reserved for future use */
+ if (err > 0)
+ fsnotify_access(file->f_dentry);
+#endif
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+static ssize_t do_xino_fwrite(au_writef_t func, struct file *file, void *buf,
+ size_t size, loff_t *pos)
+{
+ ssize_t err;
+ mm_segment_t oldfs;
+
+ oldfs = get_fs();
+ set_fs(KERNEL_DS);
+ /* lockdep_off(); */
+ do {
+ /* todo: signal_pending? */
+ err = func(file, (const char __user *)buf, size, pos);
+ } while (err == -EAGAIN || err == -EINTR);
+ /* lockdep_on(); */
+ set_fs(oldfs);
+
+#if 0 /* reserved for future use */
+ if (err > 0)
+ fsnotify_modify(file->f_dentry);
+#endif
+
+ return err;
+}
+
+struct do_xino_fwrite_args {
+ ssize_t *errp;
+ au_writef_t func;
+ struct file *file;
+ void *buf;
+ size_t size;
+ loff_t *pos;
+};
+
+static void call_do_xino_fwrite(void *args)
+{
+ struct do_xino_fwrite_args *a = args;
+ *a->errp = do_xino_fwrite(a->func, a->file, a->buf, a->size, a->pos);
+}
+
+ssize_t xino_fwrite(au_writef_t func, struct file *file, void *buf, size_t size,
+ loff_t *pos)
+{
+ ssize_t err;
+
+ /* todo: signal block and no wkq? */
+ /* todo: new credential scheme */
+ /*
+ * it breaks RLIMIT_FSIZE and normal user's limit,
+ * users should care about quota and real 'filesystem full.'
+ */
+ if (!au_test_wkq(current)) {
+ int wkq_err;
+ struct do_xino_fwrite_args args = {
+ .errp = &err,
+ .func = func,
+ .file = file,
+ .buf = buf,
+ .size = size,
+ .pos = pos
+ };
+
+ wkq_err = au_wkq_wait(call_do_xino_fwrite, &args);
+ if (unlikely(wkq_err))
+ err = wkq_err;
+ } else
+ err = do_xino_fwrite(func, file, buf, size, pos);
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * create a new xinofile at the same place/path as @base_file.
+ */
+struct file *au_xino_create2(struct file *base_file, struct file *copy_src)
+{
+ struct file *file;
+ struct dentry *base, *parent;
+ struct inode *dir;
+ struct qstr *name;
+ struct path path;
+ int err;
+
+ base = base_file->f_dentry;
+ parent = base->d_parent; /* dir inode is locked */
+ dir = parent->d_inode;
+ IMustLock(dir);
+
+ file = ERR_PTR(-EINVAL);
+ name = &base->d_name;
+ path.dentry = vfsub_lookup_one_len(name->name, parent, name->len);
+ if (IS_ERR(path.dentry)) {
+ file = (void *)path.dentry;
+ pr_err("%.*s lookup err %ld\n",
+ AuLNPair(name), PTR_ERR(path.dentry));
+ goto out;
+ }
+
+ /* no need to mnt_want_write() since we call dentry_open() later */
+ err = vfs_create(dir, path.dentry, S_IRUGO | S_IWUGO, NULL);
+ if (unlikely(err)) {
+ file = ERR_PTR(err);
+ pr_err("%.*s create err %d\n", AuLNPair(name), err);
+ goto out_dput;
+ }
+
+ path.mnt = base_file->f_vfsmnt;
+ file = vfsub_dentry_open(&path,
+ O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE);
+ if (IS_ERR(file)) {
+ pr_err("%.*s open err %ld\n", AuLNPair(name), PTR_ERR(file));
+ goto out_dput;
+ }
+
+ err = vfsub_unlink(dir, &file->f_path, /*force*/0);
+ if (unlikely(err)) {
+ pr_err("%.*s unlink err %d\n", AuLNPair(name), err);
+ goto out_fput;
+ }
+
+ if (copy_src) {
+ /* no one can touch copy_src xino */
+ err = au_copy_file(file, copy_src,
+ i_size_read(copy_src->f_dentry->d_inode));
+ if (unlikely(err)) {
+ pr_err("%.*s copy err %d\n", AuLNPair(name), err);
+ goto out_fput;
+ }
+ }
+ goto out_dput; /* success */
+
+ out_fput:
+ fput(file);
+ file = ERR_PTR(err);
+ out_dput:
+ dput(path.dentry);
+ out:
+ return file;
+}
+
+struct au_xino_lock_dir {
+ struct au_hinode *hdir;
+ struct dentry *parent;
+ struct mutex *mtx;
+};
+
+static void au_xino_lock_dir(struct super_block *sb, struct file *xino,
+ struct au_xino_lock_dir *ldir)
+{
+ aufs_bindex_t brid, bindex;
+
+ ldir->hdir = NULL;
+ bindex = -1;
+ brid = au_xino_brid(sb);
+ if (brid >= 0)
+ bindex = au_br_index(sb, brid);
+ if (bindex >= 0) {
+ ldir->hdir = au_hi(sb->s_root->d_inode, bindex);
+ au_hn_imtx_lock_nested(ldir->hdir, AuLsc_I_PARENT);
+ } else {
+ ldir->parent = dget_parent(xino->f_dentry);
+ ldir->mtx = &ldir->parent->d_inode->i_mutex;
+ mutex_lock_nested(ldir->mtx, AuLsc_I_PARENT);
+ }
+}
+
+static void au_xino_unlock_dir(struct au_xino_lock_dir *ldir)
+{
+ if (ldir->hdir)
+ au_hn_imtx_unlock(ldir->hdir);
+ else {
+ mutex_unlock(ldir->mtx);
+ dput(ldir->parent);
+ }
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* trucate xino files asynchronously */
+
+int au_xino_trunc(struct super_block *sb, aufs_bindex_t bindex)
+{
+ int err;
+ aufs_bindex_t bi, bend;
+ struct au_branch *br;
+ struct file *new_xino, *file;
+ struct super_block *h_sb;
+ struct au_xino_lock_dir ldir;
+
+ err = -EINVAL;
+ bend = au_sbend(sb);
+ if (unlikely(bindex < 0 || bend < bindex))
+ goto out;
+ br = au_sbr(sb, bindex);
+ file = br->br_xino.xi_file;
+ if (!file)
+ goto out;
+
+ au_xino_lock_dir(sb, file, &ldir);
+ /* mnt_want_write() is unnecessary here */
+ new_xino = au_xino_create2(file, file);
+ au_xino_unlock_dir(&ldir);
+ err = PTR_ERR(new_xino);
+ if (IS_ERR(new_xino))
+ goto out;
+ err = 0;
+ fput(file);
+ br->br_xino.xi_file = new_xino;
+
+ h_sb = br->br_mnt->mnt_sb;
+ for (bi = 0; bi <= bend; bi++) {
+ if (unlikely(bi == bindex))
+ continue;
+ br = au_sbr(sb, bi);
+ if (br->br_mnt->mnt_sb != h_sb)
+ continue;
+
+ fput(br->br_xino.xi_file);
+ br->br_xino.xi_file = new_xino;
+ get_file(new_xino);
+ }
+
+ out:
+ return err;
+}
+
+struct xino_do_trunc_args {
+ struct super_block *sb;
+ struct au_branch *br;
+};
+
+static void xino_do_trunc(void *_args)
+{
+ struct xino_do_trunc_args *args = _args;
+ struct super_block *sb;
+ struct au_branch *br;
+ struct inode *dir;
+ int err;
+ aufs_bindex_t bindex;
+
+ err = 0;
+ sb = args->sb;
+ dir = sb->s_root->d_inode;
+ br = args->br;
+
+ si_noflush_write_lock(sb);
+ ii_read_lock_parent(dir);
+ bindex = au_br_index(sb, br->br_id);
+ err = au_xino_trunc(sb, bindex);
+ if (!err
+ && br->br_xino.xi_file->f_dentry->d_inode->i_blocks
+ >= br->br_xino_upper)
+ br->br_xino_upper += AUFS_XINO_TRUNC_STEP;
+
+ ii_read_unlock(dir);
+ if (unlikely(err))
+ pr_warning("err b%d, (%d)\n", bindex, err);
+ atomic_dec(&br->br_xino_running);
+ atomic_dec(&br->br_count);
+ au_nwt_done(&au_sbi(sb)->si_nowait);
+ si_write_unlock(sb);
+ kfree(args);
+}
+
+static void xino_try_trunc(struct super_block *sb, struct au_branch *br)
+{
+ struct xino_do_trunc_args *args;
+ int wkq_err;
+
+ if (br->br_xino.xi_file->f_dentry->d_inode->i_blocks
+ < br->br_xino_upper)
+ return;
+
+ if (atomic_inc_return(&br->br_xino_running) > 1)
+ goto out;
+
+ /* lock and kfree() will be called in trunc_xino() */
+ args = kmalloc(sizeof(*args), GFP_NOFS);
+ if (unlikely(!args)) {
+ AuErr1("no memory\n");
+ goto out_args;
+ }
+
+ atomic_inc_return(&br->br_count);
+ args->sb = sb;
+ args->br = br;
+ wkq_err = au_wkq_nowait(xino_do_trunc, args, sb);
+ if (!wkq_err)
+ return; /* success */
+
+ pr_err("wkq %d\n", wkq_err);
+ atomic_dec_return(&br->br_count);
+
+ out_args:
+ kfree(args);
+ out:
+ atomic_dec_return(&br->br_xino_running);
+}
+
+/* ---------------------------------------------------------------------- */
+
+static int au_xino_do_write(au_writef_t write, struct file *file,
+ ino_t h_ino, ino_t ino)
+{
+ loff_t pos;
+ ssize_t sz;
+
+ pos = h_ino;
+ if (unlikely(au_loff_max / sizeof(ino) - 1 < pos)) {
+ AuIOErr1("too large hi%lu\n", (unsigned long)h_ino);
+ return -EFBIG;
+ }
+ pos *= sizeof(ino);
+ sz = xino_fwrite(write, file, &ino, sizeof(ino), &pos);
+ if (sz == sizeof(ino))
+ return 0; /* success */
+
+ AuIOErr("write failed (%zd)\n", sz);
+ return -EIO;
+}
+
+/*
+ * write @ino to the xinofile for the specified branch{@sb, @bindex}
+ * at the position of @h_ino.
+ * even if @ino is zero, it is written to the xinofile and means no entry.
+ * if the size of the xino file on a specific filesystem exceeds the watermark,
+ * try truncating it.
+ */
+int au_xino_write(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+ ino_t ino)
+{
+ int err;
+ unsigned int mnt_flags;
+ struct au_branch *br;
+
+ BUILD_BUG_ON(sizeof(long long) != sizeof(au_loff_max)
+ || ((loff_t)-1) > 0);
+ SiMustAnyLock(sb);
+
+ mnt_flags = au_mntflags(sb);
+ if (!au_opt_test(mnt_flags, XINO))
+ return 0;
+
+ br = au_sbr(sb, bindex);
+ err = au_xino_do_write(au_sbi(sb)->si_xwrite, br->br_xino.xi_file,
+ h_ino, ino);
+ if (!err) {
+ if (au_opt_test(mnt_flags, TRUNC_XINO)
+ && au_test_fs_trunc_xino(br->br_mnt->mnt_sb))
+ xino_try_trunc(sb, br);
+ return 0; /* success */
+ }
+
+ AuIOErr("write failed (%d)\n", err);
+ return -EIO;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* aufs inode number bitmap */
+
+static const int page_bits = (int)PAGE_SIZE * BITS_PER_BYTE;
+static ino_t xib_calc_ino(unsigned long pindex, int bit)
+{
+ ino_t ino;
+
+ AuDebugOn(bit < 0 || page_bits <= bit);
+ ino = AUFS_FIRST_INO + pindex * page_bits + bit;
+ return ino;
+}
+
+static void xib_calc_bit(ino_t ino, unsigned long *pindex, int *bit)
+{
+ AuDebugOn(ino < AUFS_FIRST_INO);
+ ino -= AUFS_FIRST_INO;
+ *pindex = ino / page_bits;
+ *bit = ino % page_bits;
+}
+
+static int xib_pindex(struct super_block *sb, unsigned long pindex)
+{
+ int err;
+ loff_t pos;
+ ssize_t sz;
+ struct au_sbinfo *sbinfo;
+ struct file *xib;
+ unsigned long *p;
+
+ sbinfo = au_sbi(sb);
+ MtxMustLock(&sbinfo->si_xib_mtx);
+ AuDebugOn(pindex > ULONG_MAX / PAGE_SIZE
+ || !au_opt_test(sbinfo->si_mntflags, XINO));
+
+ if (pindex == sbinfo->si_xib_last_pindex)
+ return 0;
+
+ xib = sbinfo->si_xib;
+ p = sbinfo->si_xib_buf;
+ pos = sbinfo->si_xib_last_pindex;
+ pos *= PAGE_SIZE;
+ sz = xino_fwrite(sbinfo->si_xwrite, xib, p, PAGE_SIZE, &pos);
+ if (unlikely(sz != PAGE_SIZE))
+ goto out;
+
+ pos = pindex;
+ pos *= PAGE_SIZE;
+ if (i_size_read(xib->f_dentry->d_inode) >= pos + PAGE_SIZE)
+ sz = xino_fread(sbinfo->si_xread, xib, p, PAGE_SIZE, &pos);
+ else {
+ memset(p, 0, PAGE_SIZE);
+ sz = xino_fwrite(sbinfo->si_xwrite, xib, p, PAGE_SIZE, &pos);
+ }
+ if (sz == PAGE_SIZE) {
+ sbinfo->si_xib_last_pindex = pindex;
+ return 0; /* success */
+ }
+
+ out:
+ AuIOErr1("write failed (%zd)\n", sz);
+ err = sz;
+ if (sz >= 0)
+ err = -EIO;
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_xino_write0(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+ ino_t ino)
+{
+ int err, bit;
+ unsigned long pindex;
+ struct au_sbinfo *sbinfo;
+
+ if (!au_opt_test(au_mntflags(sb), XINO))
+ return 0;
+
+ err = 0;
+ if (ino) {
+ sbinfo = au_sbi(sb);
+ xib_calc_bit(ino, &pindex, &bit);
+ AuDebugOn(page_bits <= bit);
+ mutex_lock(&sbinfo->si_xib_mtx);
+ err = xib_pindex(sb, pindex);
+ if (!err) {
+ clear_bit(bit, sbinfo->si_xib_buf);
+ sbinfo->si_xib_next_bit = bit;
+ }
+ mutex_unlock(&sbinfo->si_xib_mtx);
+ }
+
+ if (!err)
+ err = au_xino_write(sb, bindex, h_ino, 0);
+ return err;
+}
+
+/* get an unused inode number from bitmap */
+ino_t au_xino_new_ino(struct super_block *sb)
+{
+ ino_t ino;
+ unsigned long *p, pindex, ul, pend;
+ struct au_sbinfo *sbinfo;
+ struct file *file;
+ int free_bit, err;
+
+ if (!au_opt_test(au_mntflags(sb), XINO))
+ return iunique(sb, AUFS_FIRST_INO);
+
+ sbinfo = au_sbi(sb);
+ mutex_lock(&sbinfo->si_xib_mtx);
+ p = sbinfo->si_xib_buf;
+ free_bit = sbinfo->si_xib_next_bit;
+ if (free_bit < page_bits && !test_bit(free_bit, p))
+ goto out; /* success */
+ free_bit = find_first_zero_bit(p, page_bits);
+ if (free_bit < page_bits)
+ goto out; /* success */
+
+ pindex = sbinfo->si_xib_last_pindex;
+ for (ul = pindex - 1; ul < ULONG_MAX; ul--) {
+ err = xib_pindex(sb, ul);
+ if (unlikely(err))
+ goto out_err;
+ free_bit = find_first_zero_bit(p, page_bits);
+ if (free_bit < page_bits)
+ goto out; /* success */
+ }
+
+ file = sbinfo->si_xib;
+ pend = i_size_read(file->f_dentry->d_inode) / PAGE_SIZE;
+ for (ul = pindex + 1; ul <= pend; ul++) {
+ err = xib_pindex(sb, ul);
+ if (unlikely(err))
+ goto out_err;
+ free_bit = find_first_zero_bit(p, page_bits);
+ if (free_bit < page_bits)
+ goto out; /* success */
+ }
+ BUG();
+
+ out:
+ set_bit(free_bit, p);
+ sbinfo->si_xib_next_bit++;
+ pindex = sbinfo->si_xib_last_pindex;
+ mutex_unlock(&sbinfo->si_xib_mtx);
+ ino = xib_calc_ino(pindex, free_bit);
+ AuDbg("i%lu\n", (unsigned long)ino);
+ return ino;
+ out_err:
+ mutex_unlock(&sbinfo->si_xib_mtx);
+ AuDbg("i0\n");
+ return 0;
+}
+
+/*
+ * read @ino from xinofile for the specified branch{@sb, @bindex}
+ * at the position of @h_ino.
+ * if @ino does not exist and @do_new is true, get new one.
+ */
+int au_xino_read(struct super_block *sb, aufs_bindex_t bindex, ino_t h_ino,
+ ino_t *ino)
+{
+ int err;
+ ssize_t sz;
+ loff_t pos;
+ struct file *file;
+ struct au_sbinfo *sbinfo;
+
+ *ino = 0;
+ if (!au_opt_test(au_mntflags(sb), XINO))
+ return 0; /* no xino */
+
+ err = 0;
+ sbinfo = au_sbi(sb);
+ pos = h_ino;
+ if (unlikely(au_loff_max / sizeof(*ino) - 1 < pos)) {
+ AuIOErr1("too large hi%lu\n", (unsigned long)h_ino);
+ return -EFBIG;
+ }
+ pos *= sizeof(*ino);
+
+ file = au_sbr(sb, bindex)->br_xino.xi_file;
+ if (i_size_read(file->f_dentry->d_inode) < pos + sizeof(*ino))
+ return 0; /* no ino */
+
+ sz = xino_fread(sbinfo->si_xread, file, ino, sizeof(*ino), &pos);
+ if (sz == sizeof(*ino))
+ return 0; /* success */
+
+ err = sz;
+ if (unlikely(sz >= 0)) {
+ err = -EIO;
+ AuIOErr("xino read error (%zd)\n", sz);
+ }
+
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* create and set a new xino file */
+
+struct file *au_xino_create(struct super_block *sb, char *fname, int silent)
+{
+ struct file *file;
+ struct dentry *h_parent, *d;
+ struct inode *h_dir;
+ int err;
+
+ /*
+ * at mount-time, and the xino file is the default path,
+ * hnotify is disabled so we have no notify events to ignore.
+ * when a user specified the xino, we cannot get au_hdir to be ignored.
+ */
+ file = vfsub_filp_open(fname, O_RDWR | O_CREAT | O_EXCL | O_LARGEFILE,
+ S_IRUGO | S_IWUGO);
+ if (IS_ERR(file)) {
+ if (!silent)
+ pr_err("open %s(%ld)\n", fname, PTR_ERR(file));
+ return file;
+ }
+
+ /* keep file count */
+ h_parent = dget_parent(file->f_dentry);
+ h_dir = h_parent->d_inode;
+ mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_PARENT);
+ /* mnt_want_write() is unnecessary here */
+ err = vfsub_unlink(h_dir, &file->f_path, /*force*/0);
+ mutex_unlock(&h_dir->i_mutex);
+ dput(h_parent);
+ if (unlikely(err)) {
+ if (!silent)
+ pr_err("unlink %s(%d)\n", fname, err);
+ goto out;
+ }
+
+ err = -EINVAL;
+ d = file->f_dentry;
+ if (unlikely(sb == d->d_sb)) {
+ if (!silent)
+ pr_err("%s must be outside\n", fname);
+ goto out;
+ }
+ if (unlikely(au_test_fs_bad_xino(d->d_sb))) {
+ if (!silent)
+ pr_err("xino doesn't support %s(%s)\n",
+ fname, au_sbtype(d->d_sb));
+ goto out;
+ }
+ return file; /* success */
+
+ out:
+ fput(file);
+ file = ERR_PTR(err);
+ return file;
+}
+
+/*
+ * find another branch who is on the same filesystem of the specified
+ * branch{@btgt}. search until @bend.
+ */
+static int is_sb_shared(struct super_block *sb, aufs_bindex_t btgt,
+ aufs_bindex_t bend)
+{
+ aufs_bindex_t bindex;
+ struct super_block *tgt_sb = au_sbr_sb(sb, btgt);
+
+ for (bindex = 0; bindex < btgt; bindex++)
+ if (unlikely(tgt_sb == au_sbr_sb(sb, bindex)))
+ return bindex;
+ for (bindex++; bindex <= bend; bindex++)
+ if (unlikely(tgt_sb == au_sbr_sb(sb, bindex)))
+ return bindex;
+ return -1;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * initialize the xinofile for the specified branch @br
+ * at the place/path where @base_file indicates.
+ * test whether another branch is on the same filesystem or not,
+ * if @do_test is true.
+ */
+int au_xino_br(struct super_block *sb, struct au_branch *br, ino_t h_ino,
+ struct file *base_file, int do_test)
+{
+ int err;
+ ino_t ino;
+ aufs_bindex_t bend, bindex;
+ struct au_branch *shared_br, *b;
+ struct file *file;
+ struct super_block *tgt_sb;
+
+ shared_br = NULL;
+ bend = au_sbend(sb);
+ if (do_test) {
+ tgt_sb = br->br_mnt->mnt_sb;
+ for (bindex = 0; bindex <= bend; bindex++) {
+ b = au_sbr(sb, bindex);
+ if (tgt_sb == b->br_mnt->mnt_sb) {
+ shared_br = b;
+ break;
+ }
+ }
+ }
+
+ if (!shared_br || !shared_br->br_xino.xi_file) {
+ struct au_xino_lock_dir ldir;
+
+ au_xino_lock_dir(sb, base_file, &ldir);
+ /* mnt_want_write() is unnecessary here */
+ file = au_xino_create2(base_file, NULL);
+ au_xino_unlock_dir(&ldir);
+ err = PTR_ERR(file);
+ if (IS_ERR(file))
+ goto out;
+ br->br_xino.xi_file = file;
+ } else {
+ br->br_xino.xi_file = shared_br->br_xino.xi_file;
+ get_file(br->br_xino.xi_file);
+ }
+
+ ino = AUFS_ROOT_INO;
+ err = au_xino_do_write(au_sbi(sb)->si_xwrite, br->br_xino.xi_file,
+ h_ino, ino);
+ if (!err)
+ return 0; /* success */
+
+
+ out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/* trucate a xino bitmap file */
+
+/* todo: slow */
+static int do_xib_restore(struct super_block *sb, struct file *file, void *page)
+{
+ int err, bit;
+ ssize_t sz;
+ unsigned long pindex;
+ loff_t pos, pend;
+ struct au_sbinfo *sbinfo;
+ au_readf_t func;
+ ino_t *ino;
+ unsigned long *p;
+
+ err = 0;
+ sbinfo = au_sbi(sb);
+ MtxMustLock(&sbinfo->si_xib_mtx);
+ p = sbinfo->si_xib_buf;
+ func = sbinfo->si_xread;
+ pend = i_size_read(file->f_dentry->d_inode);
+ pos = 0;
+ while (pos < pend) {
+ sz = xino_fread(func, file, page, PAGE_SIZE, &pos);
+ err = sz;
+ if (unlikely(sz <= 0))
+ goto out;
+
+ err = 0;
+ for (ino = page; sz > 0; ino++, sz -= sizeof(ino)) {
+ if (unlikely(*ino < AUFS_FIRST_INO))
+ continue;
+
+ xib_calc_bit(*ino, &pindex, &bit);
+ AuDebugOn(page_bits <= bit);
+ err = xib_pindex(sb, pindex);
+ if (!err)
+ set_bit(bit, p);
+ else
+ goto out;
+ }
+ }
+
+ out:
+ return err;
+}
+
+static int xib_restore(struct super_block *sb)
+{
+ int err;
+ aufs_bindex_t bindex, bend;
+ void *page;
+
+ err = -ENOMEM;
+ page = (void *)__get_free_page(GFP_NOFS);
+ if (unlikely(!page))
+ goto out;
+
+ err = 0;
+ bend = au_sbend(sb);
+ for (bindex = 0; !err && bindex <= bend; bindex++)
+ if (!bindex || is_sb_shared(sb, bindex, bindex - 1) < 0)
+ err = do_xib_restore
+ (sb, au_sbr(sb, bindex)->br_xino.xi_file, page);
+ else
+ AuDbg("b%d\n", bindex);
+ free_page((unsigned long)page);
+
+ out:
+ return err;
+}
+
+int au_xib_trunc(struct super_block *sb)
+{
+ int err;
+ ssize_t sz;
+ loff_t pos;
+ struct au_xino_lock_dir ldir;
+ struct au_sbinfo *sbinfo;
+ unsigned long *p;
+ struct file *file;
+
+ SiMustWriteLock(sb);
+
+ err = 0;
+ sbinfo = au_sbi(sb);
+ if (!au_opt_test(sbinfo->si_mntflags, XINO))
+ goto out;
+
+ file = sbinfo->si_xib;
+ if (i_size_read(file->f_dentry->d_inode) <= PAGE_SIZE)
+ goto out;
+
+ au_xino_lock_dir(sb, file, &ldir);
+ /* mnt_want_write() is unnecessary here */
+ file = au_xino_create2(sbinfo->si_xib, NULL);
+ au_xino_unlock_dir(&ldir);
+ err = PTR_ERR(file);
+ if (IS_ERR(file))
+ goto out;
+ fput(sbinfo->si_xib);
+ sbinfo->si_xib = file;
+
+ p = sbinfo->si_xib_buf;
+ memset(p, 0, PAGE_SIZE);
+ pos = 0;
+ sz = xino_fwrite(sbinfo->si_xwrite, sbinfo->si_xib, p, PAGE_SIZE, &pos);
+ if (unlikely(sz != PAGE_SIZE)) {
+ err = sz;
+ AuIOErr("err %d\n", err);
+ if (sz >= 0)
+ err = -EIO;
+ goto out;
+ }
+
+ mutex_lock(&sbinfo->si_xib_mtx);
+ /* mnt_want_write() is unnecessary here */
+ err = xib_restore(sb);
+ mutex_unlock(&sbinfo->si_xib_mtx);
+
+out:
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * xino mount option handlers
+ */
+static au_readf_t find_readf(struct file *h_file)
+{
+ const struct file_operations *fop = h_file->f_op;
+
+ if (fop) {
+ if (fop->read)
+ return fop->read;
+ if (fop->aio_read)
+ return do_sync_read;
+ }
+ return ERR_PTR(-ENOSYS);
+}
+
+static au_writef_t find_writef(struct file *h_file)
+{
+ const struct file_operations *fop = h_file->f_op;
+
+ if (fop) {
+ if (fop->write)
+ return fop->write;
+ if (fop->aio_write)
+ return do_sync_write;
+ }
+ return ERR_PTR(-ENOSYS);
+}
+
+/* xino bitmap */
+static void xino_clear_xib(struct super_block *sb)
+{
+ struct au_sbinfo *sbinfo;
+
+ SiMustWriteLock(sb);
+
+ sbinfo = au_sbi(sb);
+ sbinfo->si_xread = NULL;
+ sbinfo->si_xwrite = NULL;
+ if (sbinfo->si_xib)
+ fput(sbinfo->si_xib);
+ sbinfo->si_xib = NULL;
+ free_page((unsigned long)sbinfo->si_xib_buf);
+ sbinfo->si_xib_buf = NULL;
+}
+
+static int au_xino_set_xib(struct super_block *sb, struct file *base)
+{
+ int err;
+ loff_t pos;
+ struct au_sbinfo *sbinfo;
+ struct file *file;
+
+ SiMustWriteLock(sb);
+
+ sbinfo = au_sbi(sb);
+ file = au_xino_create2(base, sbinfo->si_xib);
+ err = PTR_ERR(file);
+ if (IS_ERR(file))
+ goto out;
+ if (sbinfo->si_xib)
+ fput(sbinfo->si_xib);
+ sbinfo->si_xib = file;
+ sbinfo->si_xread = find_readf(file);
+ sbinfo->si_xwrite = find_writef(file);
+
+ err = -ENOMEM;
+ if (!sbinfo->si_xib_buf)
+ sbinfo->si_xib_buf = (void *)get_zeroed_page(GFP_NOFS);
+ if (unlikely(!sbinfo->si_xib_buf))
+ goto out_unset;
+
+ sbinfo->si_xib_last_pindex = 0;
+ sbinfo->si_xib_next_bit = 0;
+ if (i_size_read(file->f_dentry->d_inode) < PAGE_SIZE) {
+ pos = 0;
+ err = xino_fwrite(sbinfo->si_xwrite, file, sbinfo->si_xib_buf,
+ PAGE_SIZE, &pos);
+ if (unlikely(err != PAGE_SIZE))
+ goto out_free;
+ }
+ err = 0;
+ goto out; /* success */
+
+ out_free:
+ free_page((unsigned long)sbinfo->si_xib_buf);
+ sbinfo->si_xib_buf = NULL;
+ if (err >= 0)
+ err = -EIO;
+ out_unset:
+ fput(sbinfo->si_xib);
+ sbinfo->si_xib = NULL;
+ sbinfo->si_xread = NULL;
+ sbinfo->si_xwrite = NULL;
+ out:
+ return err;
+}
+
+/* xino for each branch */
+static void xino_clear_br(struct super_block *sb)
+{
+ aufs_bindex_t bindex, bend;
+ struct au_branch *br;
+
+ bend = au_sbend(sb);
+ for (bindex = 0; bindex <= bend; bindex++) {
+ br = au_sbr(sb, bindex);
+ if (!br || !br->br_xino.xi_file)
+ continue;
+
+ fput(br->br_xino.xi_file);
+ br->br_xino.xi_file = NULL;
+ }
+}
+
+static int au_xino_set_br(struct super_block *sb, struct file *base)
+{
+ int err;
+ ino_t ino;
+ aufs_bindex_t bindex, bend, bshared;
+ struct {
+ struct file *old, *new;
+ } *fpair, *p;
+ struct au_branch *br;
+ struct inode *inode;
+ au_writef_t writef;
+
+ SiMustWriteLock(sb);
+
+ err = -ENOMEM;
+ bend = au_sbend(sb);
+ fpair = kcalloc(bend + 1, sizeof(*fpair), GFP_NOFS);
+ if (unlikely(!fpair))
+ goto out;
+
+ inode = sb->s_root->d_inode;
+ ino = AUFS_ROOT_INO;
+ writef = au_sbi(sb)->si_xwrite;
+ for (bindex = 0, p = fpair; bindex <= bend; bindex++, p++) {
+ br = au_sbr(sb, bindex);
+ bshared = is_sb_shared(sb, bindex, bindex - 1);
+ if (bshared >= 0) {
+ /* shared xino */
+ *p = fpair[bshared];
+ get_file(p->new);
+ }
+
+ if (!p->new) {
+ /* new xino */
+ p->old = br->br_xino.xi_file;
+ p->new = au_xino_create2(base, br->br_xino.xi_file);
+ err = PTR_ERR(p->new);
+ if (IS_ERR(p->new)) {
+ p->new = NULL;
+ goto out_pair;
+ }
+ }
+
+ err = au_xino_do_write(writef, p->new,
+ au_h_iptr(inode, bindex)->i_ino, ino);
+ if (unlikely(err))
+ goto out_pair;
+ }
+
+ for (bindex = 0, p = fpair; bindex <= bend; bindex++, p++) {
+ br = au_sbr(sb, bindex);
+ if (br->br_xino.xi_file)
+ fput(br->br_xino.xi_file);
+ get_file(p->new);
+ br->br_xino.xi_file = p->new;
+ }
+
+ out_pair:
+ for (bindex = 0, p = fpair; bindex <= bend; bindex++, p++)
+ if (p->new)
+ fput(p->new);
+ else
+ break;
+ kfree(fpair);
+ out:
+ return err;
+}
+
+void au_xino_clr(struct super_block *sb)
+{
+ struct au_sbinfo *sbinfo;
+
+ au_xigen_clr(sb);
+ xino_clear_xib(sb);
+ xino_clear_br(sb);
+ sbinfo = au_sbi(sb);
+ /* lvalue, do not call au_mntflags() */
+ au_opt_clr(sbinfo->si_mntflags, XINO);
+}
+
+int au_xino_set(struct super_block *sb, struct au_opt_xino *xino, int remount)
+{
+ int err, skip;
+ struct dentry *parent, *cur_parent;
+ struct qstr *dname, *cur_name;
+ struct file *cur_xino;
+ struct inode *dir;
+ struct au_sbinfo *sbinfo;
+
+ SiMustWriteLock(sb);
+
+ err = 0;
+ sbinfo = au_sbi(sb);
+ parent = dget_parent(xino->file->f_dentry);
+ if (remount) {
+ skip = 0;
+ dname = &xino->file->f_dentry->d_name;
+ cur_xino = sbinfo->si_xib;
+ if (cur_xino) {
+ cur_parent = dget_parent(cur_xino->f_dentry);
+ cur_name = &cur_xino->f_dentry->d_name;
+ skip = (cur_parent == parent
+ && dname->len == cur_name->len
+ && !memcmp(dname->name, cur_name->name,
+ dname->len));
+ dput(cur_parent);
+ }
+ if (skip)
+ goto out;
+ }
+
+ au_opt_set(sbinfo->si_mntflags, XINO);
+ dir = parent->d_inode;
+ mutex_lock_nested(&dir->i_mutex, AuLsc_I_PARENT);
+ /* mnt_want_write() is unnecessary here */
+ err = au_xino_set_xib(sb, xino->file);
+ if (!err)
+ err = au_xigen_set(sb, xino->file);
+ if (!err)
+ err = au_xino_set_br(sb, xino->file);
+ mutex_unlock(&dir->i_mutex);
+ if (!err)
+ goto out; /* success */
+
+ /* reset all */
+ AuIOErr("failed creating xino(%d).\n", err);
+
+ out:
+ dput(parent);
+ return err;
+}
+
+/* ---------------------------------------------------------------------- */
+
+/*
+ * create a xinofile at the default place/path.
+ */
+struct file *au_xino_def(struct super_block *sb)
+{
+ struct file *file;
+ char *page, *p;
+ struct au_branch *br;
+ struct super_block *h_sb;
+ struct path path;
+ aufs_bindex_t bend, bindex, bwr;
+
+ br = NULL;
+ bend = au_sbend(sb);
+ bwr = -1;
+ for (bindex = 0; bindex <= bend; bindex++) {
+ br = au_sbr(sb, bindex);
+ if (au_br_writable(br->br_perm)
+ && !au_test_fs_bad_xino(br->br_mnt->mnt_sb)) {
+ bwr = bindex;
+ break;
+ }
+ }
+
+ if (bwr >= 0) {
+ file = ERR_PTR(-ENOMEM);
+ page = __getname_gfp(GFP_NOFS);
+ if (unlikely(!page))
+ goto out;
+ path.mnt = br->br_mnt;
+ path.dentry = au_h_dptr(sb->s_root, bwr);
+ p = d_path(&path, page, PATH_MAX - sizeof(AUFS_XINO_FNAME));
+ file = (void *)p;
+ if (!IS_ERR(p)) {
+ strcat(p, "/" AUFS_XINO_FNAME);
+ AuDbg("%s\n", p);
+ file = au_xino_create(sb, p, /*silent*/0);
+ if (!IS_ERR(file))
+ au_xino_brid_set(sb, br->br_id);
+ }
+ __putname(page);
+ } else {
+ file = au_xino_create(sb, AUFS_XINO_DEFPATH, /*silent*/0);
+ if (IS_ERR(file))
+ goto out;
+ h_sb = file->f_dentry->d_sb;
+ if (unlikely(au_test_fs_bad_xino(h_sb))) {
+ pr_err("xino doesn't support %s(%s)\n",
+ AUFS_XINO_DEFPATH, au_sbtype(h_sb));
+ fput(file);
+ file = ERR_PTR(-EINVAL);
+ }
+ if (!IS_ERR(file))
+ au_xino_brid_set(sb, -1);
+ }
+
+ out:
+ return file;
+}
+
+/* ---------------------------------------------------------------------- */
+
+int au_xino_path(struct seq_file *seq, struct file *file)
+{
+ int err;
+
+ err = au_seq_path(seq, &file->f_path);
+ if (unlikely(err < 0))
+ goto out;
+
+ err = 0;
+#define Deleted "\\040(deleted)"
+ seq->count -= sizeof(Deleted) - 1;
+ AuDebugOn(memcmp(seq->buf + seq->count, Deleted,
+ sizeof(Deleted) - 1));
+#undef Deleted
+
+ out:
+ return err;
+}
diff --git a/ubuntu/compcache/BOM b/ubuntu/compcache/BOM
new file mode 100644
index 00000000000..6665b655eb9
--- /dev/null
+++ b/ubuntu/compcache/BOM
@@ -0,0 +1,2 @@
+Downloaded from: http://code.google.com/p/compcache/
+Current Version: 0.5.3
diff --git a/ubuntu/compcache/Changelog b/ubuntu/compcache/Changelog
new file mode 100644
index 00000000000..a0ff085abd8
--- /dev/null
+++ b/ubuntu/compcache/Changelog
@@ -0,0 +1,82 @@
+version 0.5.3 (8/4/2009)
+ - Major cleanups.
+ - Rename module: compcache.ko -> ramzswap.ko
+ - Rename params: backing_dev -> backing_swap
+ - Updated use_compcache.sh script with detailed
+ documentation on parameters.
+ - LZO de/compress modules are no longer packaged
+ with compcache. Most distros now include these.
+
+version 0.5.2 (11/3/2009)
+ - Can forward incompressible pages to physical swap disk.
+ - New module params:
+ - memlimit_kb
+ - disksize_kb
+ - backing_dev
+ See use_compcache.sh for documentation on these params.
+ - Modified use_compcache.sh script to handle new params.
+ - Detect zero-filled pages and don't allocate any memory
+ for them.
+
+version 0.5.1 (22/1/2009)
+ - Fix crash on x86 systems with higmem (mem > ~1G).
+ This required minor changes to atomic (un)map functions (see Issue #20).
+
+version 0.5 (16/1/2009)
+ - Fix crash in case compcache init fails.
+
+version 0.5pre4 (10/1/2009)
+ - Support discarding pages for freed swap blocks (requires 2.6.28-git14).
+ This feature will be disabled if compiled for older kernel.
+ - Mark ramzswap as "solid-state" block device (requires 2.6.26-git14).
+ - Fixed incorrect stats reporting in /proc/compcache (some
+ new stats added too).
+
+version 0.5pre3 (5/1/2009)
+ - Use kmap_atomic() in xvMalloc. This fixes issue #19
+ - Remove xvMapPage() and xvUnmapMap() from xvMalloc.
+
+version 0.5pre2 (28/10/2008)
+ - Alloc full page for uncompressible pages instead
+ of returning I/O error.
+ - Warn users when using ramzswap > (2 x RAM size)
+
+version 0.5pre1 (15/10/2008)
+ - Replaced TLSF with xvMalloc memory allocator
+ http://code.google.com/p/compcache/wiki/xvMalloc
+
+version 0.4 (13/8/2008)
+ - Enable debug and stats option for compcache and tlsf by default
+ proc nodes: /proc/{tlsfinfo,compcache}
+ - Fix crash when reading /proc/tlsfinfo
+ - Lots of cleanups: clean compile on x64
+
+version 0.3 (17/3/2008)
+ - Fix spurious swap read failures
+ - Better swap request filtering
+ - Swap device again renamed to /dev/ramzswap0
+ This is to prevent Ubuntu installer from presenting
+ this device as possible installation target (see Issue #5)
+ - use_compcache.sh script now waits for disk node to be created
+ instead of arbitrary sleep (see Issue #6).
+ - Modified scripts: use_compcache.sh and unuse_compcache.sh
+ to now use new device name (compcache0 -> ramzswap0).
+
+version 0.2 (3/3/2008)
+ - Fixed bug on systems with highmem
+ - Better filtering-out of non-swap requests
+ - Export statistics through proc nodes:
+ - /proc/compcache
+ - /proc/tlsfinfo
+ - Debug and Statistics support for allocator
+ and compcache can now be individually turned
+ on/off by setting DEBUG, STATS to 0/1 in
+ respective header files
+ - Swap device now renamed to /dev/compcache0
+ - Added scripts: use_compcache.sh and unuse_compcache.sh
+ See README for usage
+ - Default compcache size set to 25% of RAM
+ - Lots of code cleanups
+ - Updated README
+ - Created Changelog :)
+
diff --git a/ubuntu/compcache/GPL.txt b/ubuntu/compcache/GPL.txt
new file mode 100644
index 00000000000..589ce5be28c
--- /dev/null
+++ b/ubuntu/compcache/GPL.txt
@@ -0,0 +1,280 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
diff --git a/ubuntu/compcache/Kconfig b/ubuntu/compcache/Kconfig
new file mode 100644
index 00000000000..5c79c6adebb
--- /dev/null
+++ b/ubuntu/compcache/Kconfig
@@ -0,0 +1,31 @@
+menu "Compcache options"
+
+config BLK_DEV_COMPCACHE
+ tristate "Compressed RAM based swap device"
+ default m
+ select LZO_COMPRESS
+ select LZO_DECOMPRESS
+ depends on BLOCK
+ help
+ This creates RAM based block device which acts as swap disk. Pages
+ swapped to this disk are compressed and stored in memory itself.
+ Project Home: http://code.google.com/p/compcache/
+
+config BLK_DEV_COMPCACHE_DEBUG
+ default n
+ depends on BLK_DEV_COMPCACHE
+ bool "Enable debugging"
+ help
+ This causes negligible performance loss and size increase.
+ If unsure, say Y.
+
+config BLK_DEV_COMPCACHE_STATS
+ default n
+ depends on BLK_DEV_COMPCACHE
+ bool "Enable statistics"
+ help
+ Creates /proc/compcache to export various statistics.
+ This adds about 4K to size with negligible performance loss.
+ If unsure, say Y.
+
+endmenu
diff --git a/ubuntu/compcache/LGPL-2.1.txt b/ubuntu/compcache/LGPL-2.1.txt
new file mode 100644
index 00000000000..2d2d780e601
--- /dev/null
+++ b/ubuntu/compcache/LGPL-2.1.txt
@@ -0,0 +1,510 @@
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ Version 2.1, February 1999
+
+ Copyright (C) 1991, 1999 Free Software Foundation, Inc.
+ 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the Lesser GPL. It also counts
+ as the successor of the GNU Library Public License, version 2, hence
+ the version number 2.1.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Lesser General Public License, applies to some
+specially designated software packages--typically libraries--of the
+Free Software Foundation and other authors who decide to use it. You
+can use it too, but we suggest you first think carefully about whether
+this license or the ordinary General Public License is the better
+strategy to use in any particular case, based on the explanations
+below.
+
+ When we speak of free software, we are referring to freedom of use,
+not price. Our General Public Licenses are designed to make sure that
+you have the freedom to distribute copies of free software (and charge
+for this service if you wish); that you receive source code or can get
+it if you want it; that you can change the software and use pieces of
+it in new free programs; and that you are informed that you can do
+these things.
+
+ To protect your rights, we need to make restrictions that forbid
+distributors to deny you these rights or to ask you to surrender these
+rights. These restrictions translate to certain responsibilities for
+you if you distribute copies of the library or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link other code with the library, you must provide
+complete object files to the recipients, so that they can relink them
+with the library after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ We protect your rights with a two-step method: (1) we copyright the
+library, and (2) we offer you this license, which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ To protect each distributor, we want to make it very clear that
+there is no warranty for the free library. Also, if the library is
+modified by someone else and passed on, the recipients should know
+that what they have is not the original version, so that the original
+author's reputation will not be affected by problems that might be
+introduced by others.
+
+ Finally, software patents pose a constant threat to the existence of
+any free program. We wish to make sure that a company cannot
+effectively restrict the users of a free program by obtaining a
+restrictive license from a patent holder. Therefore, we insist that
+any patent license obtained for a version of the library must be
+consistent with the full freedom of use specified in this license.
+
+ Most GNU software, including some libraries, is covered by the
+ordinary GNU General Public License. This license, the GNU Lesser
+General Public License, applies to certain designated libraries, and
+is quite different from the ordinary General Public License. We use
+this license for certain libraries in order to permit linking those
+libraries into non-free programs.
+
+ When a program is linked with a library, whether statically or using
+a shared library, the combination of the two is legally speaking a
+combined work, a derivative of the original library. The ordinary
+General Public License therefore permits such linking only if the
+entire combination fits its criteria of freedom. The Lesser General
+Public License permits more lax criteria for linking other code with
+the library.
+
+ We call this license the "Lesser" General Public License because it
+does Less to protect the user's freedom than the ordinary General
+Public License. It also provides other free software developers Less
+of an advantage over competing non-free programs. These disadvantages
+are the reason we use the ordinary General Public License for many
+libraries. However, the Lesser license provides advantages in certain
+special circumstances.
+
+ For example, on rare occasions, there may be a special need to
+encourage the widest possible use of a certain library, so that it
+becomes a de-facto standard. To achieve this, non-free programs must
+be allowed to use the library. A more frequent case is that a free
+library does the same job as widely used non-free libraries. In this
+case, there is little to gain by limiting the free library to free
+software only, so we use the Lesser General Public License.
+
+ In other cases, permission to use a particular library in non-free
+programs enables a greater number of people to use a large body of
+free software. For example, permission to use the GNU C Library in
+non-free programs enables many more people to use the whole GNU
+operating system, as well as its variant, the GNU/Linux operating
+system.
+
+ Although the Lesser General Public License is Less protective of the
+users' freedom, it does ensure that the user of a program that is
+linked with the Library has the freedom and the wherewithal to run
+that program using a modified version of the Library.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, whereas the latter must
+be combined with the library in order to run.
+
+ GNU LESSER GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library or other
+program which contains a notice placed by the copyright holder or
+other authorized party saying it may be distributed under the terms of
+this Lesser General Public License (also called "this License").
+Each licensee is addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control
+compilation and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also combine or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Use a suitable shared library mechanism for linking with the
+ Library. A suitable mechanism is one that (1) uses at run time a
+ copy of the library already present on the user's computer system,
+ rather than copying library functions into the executable, and (2)
+ will operate properly with a modified version of the library, if
+ the user installs one, as long as the modified version is
+ interface-compatible with the version that the work was made with.
+
+ c) Accompany the work with a written offer, valid for at least
+ three years, to give the same user the materials specified in
+ Subsection 6a, above, for a charge no more than the cost of
+ performing this distribution.
+
+ d) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ e) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the materials to be distributed need not include anything that is
+normally distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties with
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply, and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License
+may add an explicit geographical distribution limitation excluding those
+countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Lesser General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms
+of the ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library.
+It is safest to attach them to the start of each source file to most
+effectively convey the exclusion of warranty; and each file should
+have at least the "copyright" line and a pointer to where the full
+notice is found.
+
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or
+your school, if any, to sign a "copyright disclaimer" for the library,
+if necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James
+ Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
+
+
diff --git a/ubuntu/compcache/Makefile b/ubuntu/compcache/Makefile
new file mode 100644
index 00000000000..b6b4c452efc
--- /dev/null
+++ b/ubuntu/compcache/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_BLK_DEV_COMPCACHE) := ramzswap.o xvmalloc.o
diff --git a/ubuntu/compcache/README b/ubuntu/compcache/README
new file mode 100644
index 00000000000..ebe39c19eb3
--- /dev/null
+++ b/ubuntu/compcache/README
@@ -0,0 +1,45 @@
+ramzswap: Compressed RAM based swap device
+-------------------------------------------
+
+Project home: http://compcache.googlecode.com
+
+* Introduction
+This is a RAM based block device which acts as swap disk.
+Pages swapped to this device are compressed and stored in
+memory itself. See project home for use cases, performance
+numbers and lot more.
+
+* Compiling
+ - Run 'make': this will compile all modules against your kernel.
+
+ - Following kernel modules are created:
+ - xvmalloc.ko
+ - ramzswap.ko
+
+* Using
+ - Following scipts are included
+ - use_ramzswap.sh [<disksize(KB)|<memlimit(KB)>] [<backing_swap>]
+ This loads all required modules and sets up swap device.
+ NOTE: script contains detailed documentation on parameters.
+
+ - unuse_ramzswap.sh
+ Unloads all modules and turns off ramzswap swap device.
+
+* Common Problems
+ - If you get lots of compile errors, make sure you have package for
+ kernel source installed. For e.g., on Fedora its 'kernel-devel' package.
+
+ - If (un)use_ramzswap scripts fail to work, refer to wiki:
+ http://code.google.com/p/compcache/wiki/CompilingAndUsing
+
+* Notes
+ - Statistics are exported via /proc/ramzswap
+
+Please consider using Issue Tracker:
+http://code.google.com/p/compcache/issues/list
+for reporting any bugs/feature requests.
+
+Cheers!
+Nitin Gupta
+EMail: ngupta at vflare dot org
+
diff --git a/ubuntu/compcache/compat.h b/ubuntu/compcache/compat.h
new file mode 100644
index 00000000000..7f611264867
--- /dev/null
+++ b/ubuntu/compcache/compat.h
@@ -0,0 +1,34 @@
+#ifndef _CCACHE_COMPAT_H_
+#define _CCACHE_COMPAT_H_
+
+#include <linux/version.h>
+
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,23)
+#define BIO_IO_ERROR(bio) bio_io_error(bio, PAGE_SIZE)
+#define BIO_ENDIO(bio, error) bio_endio(bio, PAGE_SIZE, error)
+#else
+#define BIO_IO_ERROR(bio) bio_io_error(bio)
+#define BIO_ENDIO(bio, error) bio_endio(bio, error)
+#endif
+
+#ifndef pr_err
+#define pr_err(fmt, arg...) \
+ printk(KERN_ERR fmt, ##arg)
+#endif
+
+#ifndef pr_warning
+#define pr_warning(fmt, arg...) \
+ printk(KERN_WARNING fmt, ##arg)
+#endif
+
+#ifndef pr_info
+#define pr_info(fmt, arg...) \
+ printk(KERN_ERR fmt, ##arg)
+#endif
+
+#ifdef bio_discard
+#define SWAP_DISCARD_SUPPORTED
+#endif
+
+#endif
+
diff --git a/ubuntu/compcache/ramzswap.c b/ubuntu/compcache/ramzswap.c
new file mode 100644
index 00000000000..3cd9c0e7304
--- /dev/null
+++ b/ubuntu/compcache/ramzswap.c
@@ -0,0 +1,1049 @@
+/*
+ * Compressed RAM based swap device
+ *
+ * Copyright (C) 2008, 2009 Nitin Gupta
+ *
+ * This RAM based block device acts as swap disk.
+ * Pages swapped to this device are compressed and
+ * stored in memory.
+ *
+ * Released under the terms of GNU General Public License Version 2.0
+ *
+ * Project home: http://compcache.googlecode.com
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/bitops.h>
+#include <linux/blkdev.h>
+#include <linux/buffer_head.h>
+#include <linux/device.h>
+#include <linux/genhd.h>
+#include <linux/highmem.h>
+#include <linux/lzo.h>
+#include <linux/mutex.h>
+#include <linux/proc_fs.h>
+#include <linux/string.h>
+#include <linux/swap.h>
+#include <linux/swapops.h>
+#include <linux/vmalloc.h>
+
+#include "compat.h"
+#include "ramzswap.h"
+
+/* Globals */
+static struct ramzswap rzs;
+static struct ramzswap_stats stats;
+/*
+ * Pages that compress to larger than this size are
+ * forwarded to backing swap, if present or stored
+ * uncompressed in memory otherwise.
+ */
+static unsigned int MAX_CPAGE_SIZE;
+
+/* Module params (documentation at end) */
+static unsigned long disksize_kb;
+static unsigned long memlimit_kb;
+static char *backing_swap;
+
+static int __init ramzswap_init(void);
+static struct block_device_operations ramzswap_devops = {
+ .owner = THIS_MODULE,
+};
+
+static int test_flag(u32 index, enum rzs_pageflags flag)
+{
+ return rzs.table[index].flags & BIT(flag);
+}
+
+static void set_flag(u32 index, enum rzs_pageflags flag)
+{
+ rzs.table[index].flags |= BIT(flag);
+}
+
+static void clear_flag(u32 index, enum rzs_pageflags flag)
+{
+ rzs.table[index].flags &= ~BIT(flag);
+}
+
+static int page_zero_filled(void *ptr)
+{
+ u32 pos;
+ u64 *page;
+
+ page = (u64 *)ptr;
+
+ for (pos = 0; pos != PAGE_SIZE / sizeof(*page); pos++) {
+ if (page[pos])
+ return 0;
+ }
+
+ return 1;
+}
+
+/*
+ * Given <pagenum, offset> pair, provide a dereferencable pointer.
+ */
+static void *get_ptr_atomic(u32 pagenum, u16 offset, enum km_type type)
+{
+ unsigned char *page;
+
+ page = kmap_atomic(pfn_to_page(pagenum), type);
+ return page + offset;
+}
+
+static void put_ptr_atomic(void *ptr, enum km_type type)
+{
+ kunmap_atomic(ptr, type);
+}
+
+#if defined(STATS)
+static struct proc_dir_entry *proc;
+
+static int proc_ramzswap_read(char *page, char **start, off_t off,
+ int count, int *eof, void *data)
+{
+ int len;
+ size_t succ_writes, mem_used;
+ unsigned int good_compress_perc = 0, no_compress_perc = 0;
+
+ mem_used = xv_get_total_size_bytes(rzs.mem_pool)
+ + (stats.pages_expand << PAGE_SHIFT);
+
+ if (off > 0) {
+ *eof = 1;
+ return 0;
+ }
+
+#define K(x) ((x) >> 10)
+ /* Basic stats */
+ len = sprintf(page,
+ "DiskSize: %8zu kB\n",
+ (size_t)(K(rzs.disksize)));
+
+ if (rzs.backing_swap) {
+ /* This must always be less than ComprDataSize */
+ len += sprintf(page + len,
+ "MemLimit: %8zu kB\n",
+ K(rzs.memlimit));
+ }
+
+ succ_writes = stats.num_writes - stats.failed_writes;
+
+ if (succ_writes && stats.pages_stored) {
+ good_compress_perc = stats.good_compress * 100
+ / stats.pages_stored;
+ no_compress_perc = stats.pages_expand * 100
+ / stats.pages_stored;
+ }
+
+ /* Extended stats */
+ len += sprintf(page + len,
+ "NumReads: %8llu\n"
+ "NumWrites: %8llu\n"
+ "FailedReads: %8llu\n"
+ "FailedWrites: %8llu\n"
+ "InvalidIO: %8llu\n"
+ "PagesDiscard: %8llu\n"
+ "ZeroPages: %8u\n"
+ "GoodCompress: %8u %%\n"
+ "NoCompress: %8u %%\n"
+ "PagesStored: %8u\n"
+ "PagesUsed: %8zu\n"
+ "OrigDataSize: %8zu kB\n"
+ "ComprDataSize: %8zu kB\n"
+ "MemUsedTotal: %8zu kB\n",
+ stats.num_reads,
+ stats.num_writes,
+ stats.failed_reads,
+ stats.failed_writes,
+ stats.invalid_io,
+ stats.pages_discard,
+ stats.pages_zero,
+ good_compress_perc,
+ no_compress_perc,
+ stats.pages_stored,
+ mem_used >> PAGE_SHIFT,
+ (size_t)(K(stats.pages_stored << PAGE_SHIFT)),
+ (size_t)(K(stats.compr_size)),
+ (size_t)(K(mem_used)));
+
+ if (rzs.backing_swap) {
+ /* This must always be less than ComprDataSize */
+ len += sprintf(page + len,
+ "BDevNumReads: %8llu\n"
+ "BDevNumWrites: %8llu\n",
+ stats.bdev_num_reads,
+ stats.bdev_num_writes);
+ }
+
+ return len;
+}
+#endif /* STATS */
+
+/*
+ * Check if value of backing_swap module param is sane.
+ * Claim this device and set ramzswap size equal to
+ * size of this block device.
+ */
+static int setup_backing_swap(void)
+{
+ int error = 0;
+ struct inode *inode;
+ struct file *swap_file;
+ struct address_space *mapping;
+ struct block_device *bdev = NULL;
+
+ if (backing_swap == NULL) {
+ pr_debug(C "backing_swap param not given\n");
+ goto out;
+ }
+
+ pr_info(C "Using backing swap device: %s\n", backing_swap);
+
+ swap_file = filp_open(backing_swap, O_RDWR | O_LARGEFILE, 0);
+ if (IS_ERR(swap_file)) {
+ pr_err(C "Error opening backing device: %s\n", backing_swap);
+ error = -EINVAL;
+ goto out;
+ }
+
+ mapping = swap_file->f_mapping;
+ inode = mapping->host;
+
+ if (S_ISBLK(inode->i_mode)) {
+ bdev = I_BDEV(inode);
+ error = bd_claim(bdev, ramzswap_init);
+ if (error < 0) {
+ bdev = NULL;
+ goto bad_param;
+ }
+ rzs.old_block_size = block_size(bdev);
+ error = set_blocksize(bdev, PAGE_SIZE);
+ if (error < 0)
+ goto bad_param;
+ } else {
+ /* TODO: support for regular file as backing swap */
+ pr_info(C "%s is not a block device.\n", backing_swap);
+ error = -EINVAL;
+ goto out;
+ }
+
+ rzs.swap_file = swap_file;
+ rzs.backing_swap = bdev;
+ rzs.disksize = i_size_read(inode);
+ BUG_ON(!rzs.disksize);
+
+ return 0;
+
+bad_param:
+ if (bdev) {
+ set_blocksize(bdev, rzs.old_block_size);
+ bd_release(bdev);
+ }
+ filp_close(swap_file, NULL);
+
+out:
+ rzs.backing_swap = NULL;
+ return error;
+}
+
+/*
+ * Check if request is within bounds and page aligned.
+ */
+static inline int valid_swap_request(struct bio *bio)
+{
+ if (unlikely(
+ (bio->bi_sector >= (rzs.disksize >> SECTOR_SHIFT)) ||
+ (bio->bi_sector & (SECTORS_PER_PAGE - 1)) ||
+ (bio->bi_vcnt != 1) ||
+ (bio->bi_size != PAGE_SIZE) ||
+ (bio->bi_io_vec[0].bv_offset != 0))) {
+
+ return 0;
+ }
+
+ /* swap request is valid */
+ return 1;
+}
+
+static void ramzswap_free_page(size_t index)
+{
+ u32 clen;
+ void *obj;
+
+ u32 pagenum = rzs.table[index].pagenum;
+ u32 offset = rzs.table[index].offset;
+
+ if (unlikely(test_flag(index, RZS_UNCOMPRESSED))) {
+ clen = PAGE_SIZE;
+ __free_page(pfn_to_page(pagenum));
+ clear_flag(index, RZS_UNCOMPRESSED);
+ stat_dec(stats.pages_expand);
+ goto out;
+ }
+
+ obj = get_ptr_atomic(pagenum, offset, KM_USER0);
+ clen = xv_get_object_size(obj) - sizeof(struct zobj_header);
+ put_ptr_atomic(obj, KM_USER0);
+
+ xv_free(rzs.mem_pool, pagenum, offset);
+ stat_dec_if_less(stats.good_compress, clen, PAGE_SIZE / 2 + 1);
+
+out:
+ stats.compr_size -= clen;
+ stat_dec(stats.pages_stored);
+
+ rzs.table[index].pagenum = 0;
+ rzs.table[index].offset = 0;
+}
+
+#ifdef SWAP_DISCARD_SUPPORTED
+static int ramzswap_prepare_discard(struct request_queue *q,
+ struct request *req)
+{
+ return 0;
+}
+
+/*
+ * Called by main I/O handler function. This helper
+ * function handles 'discard' I/O requests which means
+ * that some swap pages are no longer required, so
+ * swap device can take needed action -- we free memory
+ * allocated for these pages.
+ */
+static int ramzswap_discard(struct bio *bio)
+{
+ size_t index, start_page, num_pages;
+
+ start_page = bio->bi_sector >> SECTORS_PER_PAGE_SHIFT;
+ num_pages = bio->bi_size >> (SECTOR_SHIFT + SECTORS_PER_PAGE_SHIFT);
+
+ for (index = start_page; index < start_page + num_pages; index++) {
+ if (rzs.table[index].pagenum) {
+ ramzswap_free_page(index);
+ stat_inc(stats.pages_discard);
+ }
+ }
+
+ set_bit(BIO_UPTODATE, &bio->bi_flags);
+ BIO_ENDIO(bio, 0);
+ return 0;
+}
+#endif
+
+int handle_zero_page(struct bio *bio)
+{
+ void *user_mem;
+ struct page *page = bio->bi_io_vec[0].bv_page;
+
+ user_mem = get_ptr_atomic(page_to_pfn(page), 0, KM_USER0);
+ memset(user_mem, 0, PAGE_SIZE);
+ put_ptr_atomic(user_mem, KM_USER0);
+
+ set_bit(BIO_UPTODATE, &bio->bi_flags);
+ BIO_ENDIO(bio, 0);
+ return 0;
+}
+
+int handle_uncompressed_page(struct bio *bio)
+{
+ u32 index;
+ struct page *page;
+ unsigned char *user_mem, *cmem;
+
+ page = bio->bi_io_vec[0].bv_page;
+ index = bio->bi_sector >>SECTORS_PER_PAGE_SHIFT;
+
+ user_mem = get_ptr_atomic(page_to_pfn(page), 0, KM_USER0);
+ cmem = get_ptr_atomic(rzs.table[index].pagenum,
+ rzs.table[index].offset, KM_USER1);
+
+ memcpy(user_mem, cmem, PAGE_SIZE);
+ put_ptr_atomic(user_mem, KM_USER0);
+ put_ptr_atomic(cmem, KM_USER1);
+
+ set_bit(BIO_UPTODATE, &bio->bi_flags);
+ BIO_ENDIO(bio, 0);
+ return 0;
+}
+
+
+/*
+ * Called when request page is not present in ramzswap.
+ * Its either in backing swap device (if present) or
+ * this is an attempt to read before any previous write
+ * to this location - this happens due to readahead when
+ * swap device is read from user-space (e.g. during swapon)
+ */
+int handle_ramzswap_fault(struct bio *bio)
+{
+ void *user_mem;
+ struct page *page = bio->bi_io_vec[0].bv_page;
+
+ /*
+ * Always forward such requests to backing swap
+ * device (if present)
+ */
+ if (rzs.backing_swap) {
+ stat_dec(stats.num_reads);
+ stat_inc(stats.bdev_num_reads);
+ bio->bi_bdev = rzs.backing_swap;
+ return 1;
+ }
+
+ /*
+ * Its unlikely event in case backing dev is
+ * not present
+ */
+ pr_debug(C "Read before write on swap device: "
+ "sector=%lu, size=%u, offset=%u\n",
+ (ulong)(bio->bi_sector), bio->bi_size,
+ bio->bi_io_vec[0].bv_offset);
+ user_mem = kmap(page);
+ memset(user_mem, 0, PAGE_SIZE);
+ kunmap(page);
+
+ set_bit(BIO_UPTODATE, &bio->bi_flags);
+ BIO_ENDIO(bio, 0);
+ return 0;
+}
+
+int ramzswap_read(struct bio *bio)
+{
+ int ret;
+ u32 index;
+ size_t clen;
+ struct page *page;
+ struct zobj_header *zheader;
+ unsigned char *user_mem, *cmem;
+
+ stat_inc(stats.num_reads);
+
+ page = bio->bi_io_vec[0].bv_page;
+ index = bio->bi_sector >> SECTORS_PER_PAGE_SHIFT;
+
+ if (test_flag(index, RZS_ZERO))
+ return handle_zero_page(bio);
+
+ /* Requested page is not present in compressed area */
+ if (!rzs.table[index].pagenum)
+ return handle_ramzswap_fault(bio);
+
+ /* Page is stored uncompressed since its incompressible */
+ if (unlikely(test_flag(index, RZS_UNCOMPRESSED)))
+ return handle_uncompressed_page(bio);
+
+ user_mem = get_ptr_atomic(page_to_pfn(page), 0, KM_USER0);
+ clen = PAGE_SIZE;
+
+ cmem = get_ptr_atomic(rzs.table[index].pagenum,
+ rzs.table[index].offset, KM_USER1);
+
+ ret = lzo1x_decompress_safe(
+ cmem + sizeof(*zheader),
+ xv_get_object_size(cmem) - sizeof(*zheader),
+ user_mem, &clen);
+
+ put_ptr_atomic(user_mem, KM_USER0);
+ put_ptr_atomic(cmem, KM_USER1);
+
+ /* should NEVER happen */
+ if (unlikely(ret != LZO_E_OK)) {
+ pr_err(C "Decompression failed! err=%d, page=%u\n",
+ ret, index);
+ stat_inc(stats.failed_reads);
+ goto out;
+ }
+
+ set_bit(BIO_UPTODATE, &bio->bi_flags);
+ BIO_ENDIO(bio, 0);
+ return 0;
+
+out:
+ BIO_IO_ERROR(bio);
+ return 0;
+}
+
+int ramzswap_write(struct bio *bio)
+{
+ int ret, fwd_write_request = 0;
+ u32 offset;
+ size_t clen, index;
+ struct zobj_header *zheader;
+ struct page *page, *page_store;
+ unsigned char *user_mem, *cmem, *src;
+
+ stat_inc(stats.num_writes);
+
+ page = bio->bi_io_vec[0].bv_page;
+ index = bio->bi_sector >> SECTORS_PER_PAGE_SHIFT;
+
+ src = rzs.compress_buffer;
+
+ /*
+ * System swaps to same sector again when the stored page
+ * is no longer referenced by any process. So, its now safe
+ * to free the memory that was allocated for this page.
+ */
+ if (rzs.table[index].pagenum)
+ ramzswap_free_page(index);
+
+ /*
+ * No memory ia allocated for zero filled pages.
+ * Simply clear zero page flag.
+ */
+ if (test_flag(index, RZS_ZERO)) {
+ stat_dec(stats.pages_zero);
+ clear_flag(index, RZS_ZERO);
+ }
+
+ mutex_lock(&rzs.lock);
+
+ user_mem = get_ptr_atomic(page_to_pfn(page), 0, KM_USER0);
+ if (page_zero_filled(user_mem)) {
+ put_ptr_atomic(user_mem, KM_USER0);
+ mutex_unlock(&rzs.lock);
+ stat_inc(stats.pages_zero);
+ set_flag(index, RZS_ZERO);
+
+ set_bit(BIO_UPTODATE, &bio->bi_flags);
+ BIO_ENDIO(bio, 0);
+ return 0;
+ }
+
+ if (rzs.backing_swap &&
+ (stats.compr_size > rzs.memlimit - PAGE_SIZE)) {
+ put_ptr_atomic(user_mem, KM_USER0);
+ mutex_unlock(&rzs.lock);
+ fwd_write_request = 1;
+ goto out;
+ }
+
+ ret = lzo1x_1_compress(user_mem, PAGE_SIZE, src, &clen,
+ rzs.compress_workmem);
+
+ put_ptr_atomic(user_mem, KM_USER0);
+
+ if (unlikely(ret != LZO_E_OK)) {
+ mutex_unlock(&rzs.lock);
+ pr_err(C "Compression failed! err=%d\n", ret);
+ stat_inc(stats.failed_writes);
+ goto out;
+ }
+
+ /*
+ * Page is incompressible. Forward it to backing swap
+ * if present. Otherwise, store it as-is (uncompressed)
+ * since we do not want to return too many swap write
+ * errors which has side effect of hanging the system.
+ */
+ if (unlikely(clen > MAX_CPAGE_SIZE)) {
+ if (rzs.backing_swap) {
+ mutex_unlock(&rzs.lock);
+ fwd_write_request = 1;
+ goto out;
+ }
+
+ clen = PAGE_SIZE;
+ page_store = alloc_page(GFP_NOIO | __GFP_HIGHMEM);
+ if (unlikely(!page_store)) {
+ mutex_unlock(&rzs.lock);
+ stat_inc(stats.failed_writes);
+ goto out;
+ }
+
+ offset = 0;
+ set_flag(index, RZS_UNCOMPRESSED);
+ stat_inc(stats.pages_expand);
+ rzs.table[index].pagenum = page_to_pfn(page_store);
+ src = get_ptr_atomic(page_to_pfn(page), 0, KM_USER0);
+ goto memstore;
+ }
+
+ if (xv_malloc(rzs.mem_pool, clen + sizeof(*zheader),
+ &rzs.table[index].pagenum, &offset,
+ GFP_NOIO | __GFP_HIGHMEM)) {
+ mutex_unlock(&rzs.lock);
+ pr_info(C "Error allocating memory for compressed "
+ "page: %zu, size=%zu\n", index, clen);
+ stat_inc(stats.failed_writes);
+ if (rzs.backing_swap)
+ fwd_write_request = 1;
+ goto out;
+ }
+
+memstore:
+ rzs.table[index].offset = offset;
+
+ cmem = get_ptr_atomic(rzs.table[index].pagenum,
+ rzs.table[index].offset, KM_USER1);
+
+#if 0
+ /* Back-reference needed for memory defragmentation */
+ if (!test_flag(index, RZS_UNCOMPRESSED)) {
+ zheader = (struct zobj_header *)cmem;
+ zheader->table_idx = index;
+ cmem += sizeof(*zheader);
+ }
+#endif
+
+ memcpy(cmem, src, clen);
+
+ put_ptr_atomic(cmem, KM_USER1);
+ if (unlikely(test_flag(index, RZS_UNCOMPRESSED)))
+ put_ptr_atomic(src, KM_USER0);
+
+ /* Update stats */
+ stats.compr_size += clen;
+ stat_inc(stats.pages_stored);
+ stat_inc_if_less(stats.good_compress, clen, PAGE_SIZE / 2 + 1);
+
+ mutex_unlock(&rzs.lock);
+
+ set_bit(BIO_UPTODATE, &bio->bi_flags);
+ BIO_ENDIO(bio, 0);
+ return 0;
+
+out:
+ if (fwd_write_request) {
+ stat_inc(stats.bdev_num_writes);
+ bio->bi_bdev = rzs.backing_swap;
+ return 1;
+ }
+
+ BIO_IO_ERROR(bio);
+ return 0;
+}
+
+/*
+ * Handler function for all ramzswap I/O requests.
+ */
+static int ramzswap_make_request(struct request_queue *queue, struct bio *bio)
+{
+ int ret = 0;
+
+#ifdef SWAP_DISCARD_SUPPORTED
+ if (bio_discard(bio))
+ return ramzswap_discard(bio);
+#endif
+
+ if (!valid_swap_request(bio)) {
+ stat_inc(stats.invalid_io);
+ BIO_IO_ERROR(bio);
+ return 0;
+ }
+
+ switch (bio_data_dir(bio)) {
+ case READ:
+ ret = ramzswap_read(bio);
+ break;
+
+ case WRITE:
+ ret = ramzswap_write(bio);
+ break;
+ }
+
+ return ret;
+}
+
+/*
+ * Swap header (1st page of swap device) contains information
+ * to indentify it as a swap partition. Prepare such a header
+ * for ramzswap device (ramzswap0) so that swapon can identify
+ * it as swap partition. In case backing swap device is provided,
+ * copy its swap header.
+ */
+static int setup_swap_header(union swap_header *s)
+{
+ int ret = 0;
+ struct page *page;
+ struct address_space *mapping;
+ union swap_header *backing_swap_header;
+
+ /*
+ * There is no backing swap device. Create a swap header
+ * that is acceptable by swapon.
+ */
+ if (rzs.backing_swap == NULL) {
+ s->info.version = 1;
+ s->info.last_page = rzs.disksize >> PAGE_SHIFT;
+ s->info.nr_badpages = 0;
+ memcpy(s->magic.magic, "SWAPSPACE2", 10);
+ return 0;
+ }
+
+ /*
+ * We have a backing swap device. Copy its swap header
+ * to ramzswap device header. If this header contains
+ * invalid information (backing device not a swap
+ * partition, etc.), swapon will fail for ramzswap
+ * which is correct behavior - we don't want to swap
+ * over filesystem partition!
+ */
+
+ /* Read the backing swap header (code from sys_swapon) */
+ mapping = rzs.swap_file->f_mapping;
+ if (!mapping->a_ops->readpage) {
+ ret = -EINVAL;
+ goto out;
+ }
+
+ page = read_mapping_page(mapping, 0, rzs.swap_file);
+ if (IS_ERR(page)) {
+ ret = PTR_ERR(page);
+ goto out;
+ }
+
+ backing_swap_header = kmap(page);
+ *s = *backing_swap_header;
+ kunmap(page);
+
+out:
+ return ret;
+}
+
+static void ramzswap_set_disksize(size_t totalram_bytes)
+{
+ rzs.disksize = disksize_kb << 10;
+
+ if (!disksize_kb) {
+ pr_info(C
+ "disk size not provided. You can use disksize_kb module "
+ "param to specify size.\nUsing default: (%u%% of RAM).\n",
+ DEFAULT_DISKSIZE_PERC_RAM
+ );
+ rzs.disksize = DEFAULT_DISKSIZE_PERC_RAM *
+ (totalram_bytes / 100);
+ }
+
+ if (disksize_kb > 2 * (totalram_bytes >> 10)) {
+ pr_info(C
+ "There is little point creating a ramzswap of greater than "
+ "twice the size of memory since we expect a 2:1 compression "
+ "ratio. Note that ramzswap uses about 0.1%% of the size of "
+ "the swap device when not in use so a huge ramzswap is "
+ "wasteful.\n"
+ "\tMemory Size: %zu kB\n"
+ "\tSize you selected: %lu kB\n"
+ "Continuing anyway ...\n",
+ totalram_bytes >> 10, disksize_kb
+ );
+ }
+
+ rzs.disksize &= PAGE_MASK;
+ pr_info(C "disk size set to %zu kB\n", rzs.disksize >> 10);
+}
+
+/*
+ * memlimit cannot be greater than backing disk size.
+ */
+static void ramzswap_set_memlimit(size_t totalram_bytes)
+{
+ int memlimit_valid = 1;
+ rzs.memlimit = memlimit_kb << 10;
+
+ if (!rzs.memlimit) {
+ pr_info(C "memory limit not set. You can use "
+ "memlimit_kb module param to specify limit.");
+ memlimit_valid = 0;
+ }
+
+ if (rzs.memlimit > rzs.disksize) {
+ pr_info(C "memory limit cannot be greater than "
+ "disksize: limit=%zu, disksize=%zu",
+ rzs.memlimit, rzs.disksize);
+ memlimit_valid = 0;
+ }
+
+ if (!memlimit_valid) {
+ size_t mempart, disksize;
+ pr_info(C "\nUsing default: MIN[(%u%% of RAM), "
+ "(backing disk size)].\n",
+ DEFAULT_MEMLIMIT_PERC_RAM);
+ mempart = DEFAULT_MEMLIMIT_PERC_RAM * (totalram_bytes / 100);
+ disksize = rzs.disksize;
+ rzs.memlimit = mempart > disksize ? disksize : mempart;
+ }
+
+ if (rzs.memlimit > totalram_bytes / 2) {
+ pr_info(C
+ "Its not advisable setting limit more than half of "
+ "size of memory since we expect a 2:1 compression ratio. "
+ "Limit represents amount of *compressed* data we can keep "
+ "in memory!\n"
+ "\tMemory Size: %zu kB\n"
+ "\tLimit you selected: %lu kB\n"
+ "Continuing anyway ...\n",
+ totalram_bytes >> 10, memlimit_kb
+ );
+ }
+
+ rzs.memlimit &= PAGE_MASK;
+ BUG_ON(!rzs.memlimit);
+
+ pr_info(C "memory limit set to %zu kB\n", rzs.memlimit >> 10);
+}
+
+static int __init ramzswap_init(void)
+{
+ int ret;
+ size_t num_pages, totalram_bytes;
+ struct sysinfo i;
+ struct page *page;
+ void *swap_header;
+
+ mutex_init(&rzs.lock);
+
+ ret = setup_backing_swap();
+ if (ret)
+ goto fail;
+
+ si_meminfo(&i);
+ /* Here is a trivia: guess unit used for i.totalram !! */
+ totalram_bytes = i.totalram << PAGE_SHIFT;
+
+ if (rzs.backing_swap)
+ ramzswap_set_memlimit(totalram_bytes);
+ else
+ ramzswap_set_disksize(totalram_bytes);
+
+ rzs.compress_workmem = kmalloc(LZO1X_MEM_COMPRESS, GFP_KERNEL);
+ if (rzs.compress_workmem == NULL) {
+ pr_err(C "Error allocating compressor working memory\n");
+ ret = -ENOMEM;
+ goto fail;
+ }
+
+ rzs.compress_buffer = kmalloc(2 * PAGE_SIZE, GFP_KERNEL);
+ if (rzs.compress_buffer == NULL) {
+ pr_err(C "Error allocating compressor buffer space\n");
+ ret = -ENOMEM;
+ goto fail;
+ }
+
+ num_pages = rzs.disksize >> PAGE_SHIFT;
+ rzs.table = vmalloc(num_pages * sizeof(*rzs.table));
+ if (rzs.table == NULL) {
+ pr_err(C "Error allocating ramzswap address table\n");
+ ret = -ENOMEM;
+ goto fail;
+ }
+ memset(rzs.table, 0, num_pages * sizeof(*rzs.table));
+
+ page = alloc_page(__GFP_ZERO);
+ if (page == NULL) {
+ pr_err(C "Error allocating swap header page\n");
+ ret = -ENOMEM;
+ goto fail;
+ }
+ rzs.table[0].pagenum = page_to_pfn(page);
+ set_flag(0, RZS_UNCOMPRESSED);
+
+ swap_header = kmap(page);
+ ret = setup_swap_header((union swap_header *)(swap_header));
+ kunmap(page);
+ if (ret) {
+ pr_err(C "Error setting swap header\n");
+ goto fail;
+ }
+
+ rzs.disk = alloc_disk(1);
+ if (rzs.disk == NULL) {
+ pr_err(C "Error allocating disk structure\n");
+ ret = -ENOMEM;
+ goto fail;
+ }
+
+ rzs.disk->first_minor = 0;
+ rzs.disk->fops = &ramzswap_devops;
+ /*
+ * It is named like this to prevent distro installers
+ * from offering ramzswap as installation target. They
+ * seem to ignore all devices beginning with 'ram'
+ */
+ strcpy(rzs.disk->disk_name, "ramzswap0");
+
+ rzs.disk->major = register_blkdev(0, rzs.disk->disk_name);
+ if (rzs.disk->major < 0) {
+ pr_err(C "Cannot register block device\n");
+ ret = -EFAULT;
+ goto fail;
+ }
+
+ rzs.disk->queue = blk_alloc_queue(GFP_KERNEL);
+ if (rzs.disk->queue == NULL) {
+ pr_err(C "Cannot register disk queue\n");
+ ret = -EFAULT;
+ goto fail;
+ }
+
+ set_capacity(rzs.disk, rzs.disksize >> SECTOR_SHIFT);
+ blk_queue_make_request(rzs.disk->queue, ramzswap_make_request);
+
+#ifdef QUEUE_FLAG_NONROT
+ /*
+ * Assuming backing device is "rotational" type.
+ * TODO: check if its actually "non-rotational" (SSD).
+ *
+ * We have ident mapping of sectors for ramzswap and
+ * and the backing swap device. So, this queue flag
+ * should be according to backing dev.
+ */
+ if (!rzs.backing_swap)
+ queue_flag_set_unlocked(QUEUE_FLAG_NONROT, rzs.disk->queue);
+#endif
+#ifdef SWAP_DISCARD_SUPPORTED
+ blk_queue_set_discard(rzs.disk->queue, ramzswap_prepare_discard);
+#endif
+ blk_queue_logical_block_size(rzs.disk->queue, PAGE_SIZE);
+ add_disk(rzs.disk);
+
+ rzs.mem_pool = xv_create_pool();
+ if (!rzs.mem_pool) {
+ pr_err(C "Error creating memory pool\n");
+ ret = -ENOMEM;
+ goto fail;
+ }
+
+#if defined(STATS)
+ proc = create_proc_entry("ramzswap", S_IRUGO, NULL);
+ if (proc)
+ proc->read_proc = &proc_ramzswap_read;
+ else {
+ ret = -ENOMEM;
+ pr_warning(C "Error creating proc entry\n");
+ goto fail;
+ }
+#endif
+
+ /*
+ * Pages that compress to size greater than this are forwarded
+ * to physical swap disk (if backing dev is provided)
+ */
+ if (rzs.backing_swap)
+ MAX_CPAGE_SIZE = MAX_CPAGE_SIZE_BDEV;
+ else
+ MAX_CPAGE_SIZE = MAX_CPAGE_SIZE_NOBDEV;
+
+ pr_debug(C "Max compressed page size: %u bytes\n", MAX_CPAGE_SIZE);
+
+ pr_debug(C "Initialization done!\n");
+ return 0;
+
+fail:
+ if (rzs.disk != NULL) {
+ if (rzs.disk->major > 0)
+ unregister_blkdev(rzs.disk->major, rzs.disk->disk_name);
+ del_gendisk(rzs.disk);
+ }
+
+ if (rzs.table && rzs.table[0].pagenum)
+ __free_page(pfn_to_page(rzs.table[0].pagenum));
+ kfree(rzs.compress_workmem);
+ kfree(rzs.compress_buffer);
+ vfree(rzs.table);
+ xv_destroy_pool(rzs.mem_pool);
+#if defined(STATS)
+ if (proc)
+ remove_proc_entry("ramzswap", proc->parent);
+#endif
+ pr_err(C "Initialization failed: err=%d\n", ret);
+ return ret;
+}
+
+static void __exit ramzswap_exit(void)
+{
+ size_t index, num_pages;
+ num_pages = rzs.disksize >> PAGE_SHIFT;
+
+ unregister_blkdev(rzs.disk->major, rzs.disk->disk_name);
+ del_gendisk(rzs.disk);
+
+ /* Close backing swap device (if present) */
+ if (rzs.backing_swap) {
+ set_blocksize(rzs.backing_swap, rzs.old_block_size);
+ bd_release(rzs.backing_swap);
+ filp_close(rzs.swap_file, NULL);
+ }
+
+ __free_page(pfn_to_page(rzs.table[0].pagenum));
+ kfree(rzs.compress_workmem);
+ kfree(rzs.compress_buffer);
+
+ /* Free all pages that are still in ramzswap */
+ for (index = 1; index < num_pages; index++) {
+ u32 pagenum, offset;
+
+ pagenum = rzs.table[index].pagenum;
+ offset = rzs.table[index].offset;
+
+ if (!pagenum)
+ continue;
+
+ if (unlikely(test_flag(index, RZS_UNCOMPRESSED)))
+ __free_page(pfn_to_page(pagenum));
+ else
+ xv_free(rzs.mem_pool, pagenum, offset);
+ }
+
+ vfree(rzs.table);
+ xv_destroy_pool(rzs.mem_pool);
+
+#if defined(STATS)
+ remove_proc_entry("ramzswap", proc->parent);
+#endif
+ pr_debug(C "cleanup done!\n");
+}
+
+/*
+ * This param is applicable only when there is no backing swap device.
+ * We ignore this param in case backing dev is provided since then its
+ * always equal to size of the backing swap device.
+ *
+ * This size refers to amount of (uncompressed) data it can hold.
+ * For e.g. disksize_kb=1024 means it can hold 1024kb worth of
+ * uncompressed data even if this data compresses to just, say, 100kb.
+ *
+ * Default value is used if this param is missing or 0 (if its applicable).
+ * Default: [DEFAULT_DISKSIZE_PERC_RAM]% of RAM
+ */
+module_param(disksize_kb, ulong, 0);
+MODULE_PARM_DESC(disksize_kb, "ramzswap device size (kB)");
+
+/*
+ * This param is applicable only when backing swap device is provided.
+ * This refers to limit on amount of (compressed) data it can hold in
+ * memory. Note that total amount of memory used (MemUsedTotal) can
+ * exceed this memlimit since that includes memory wastage due to
+ * fragmentation and metadata overhead.
+ *
+ * Any additional data beyond this limit is forwarded to backing
+ * swap device. TODO: allow changing memlimit at runtime.
+ *
+ * Default value is used if this param is missing or 0 (if its applicable).
+ * Default: MIN([DEFAULT_MEMLIMIT_PERC_RAM]% of RAM, Backing Device Size)
+ */
+module_param(memlimit_kb, ulong, 0);
+MODULE_PARM_DESC(memlimit_kb, "ramzswap memory limit (kB)");
+
+/*
+ * This is block device to be used as backing store for ramzswap.
+ * When pages more than memlimit_kb as swapped to ramzswap, we store
+ * any additional pages in this device. We may also move some pages
+ * from ramzswap to this device in case system is really low on
+ * memory (TODO).
+ *
+ * This device is not directly visible to kernel as a swap device
+ * (/proc/swaps will only show /dev/ramzswap0 and not this device).
+ * Managing this backing device is the job of ramzswap module.
+ */
+module_param(backing_swap, charp, 0);
+MODULE_PARM_DESC(backing_swap, "Backing swap partition");
+
+module_init(ramzswap_init);
+module_exit(ramzswap_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Nitin Gupta <ngupta@vflare.org>");
+MODULE_DESCRIPTION("Compressed RAM Based Swap Device");
diff --git a/ubuntu/compcache/ramzswap.h b/ubuntu/compcache/ramzswap.h
new file mode 100644
index 00000000000..0d4d867beac
--- /dev/null
+++ b/ubuntu/compcache/ramzswap.h
@@ -0,0 +1,159 @@
+/*
+ * Compressed RAM based swap device
+ *
+ * Copyright (C) 2008, 2009 Nitin Gupta
+ *
+ * This RAM based block device acts as swap disk.
+ * Pages swapped to this device are compressed and
+ * stored in memory.
+ *
+ * Released under the terms of GNU General Public License Version 2.0
+ *
+ * Project home: http://compcache.googlecode.com
+ */
+
+#ifndef _RAMZSWAP_H_
+#define _RAMZSWAP_H_
+
+#include "xvmalloc.h"
+
+/*
+ * Stored at beginning of each compressed object.
+ *
+ * It stores back-reference to table entry which points to this
+ * object. This is required to support memory defragmentation or
+ * migrating compressed pages to backing swap disk.
+ */
+struct zobj_header {
+#if 0
+ u32 table_idx;
+#endif
+};
+
+/*-- Configurable parameters */
+
+/* Default ramzswap disk size: 25% of total RAM */
+#define DEFAULT_DISKSIZE_PERC_RAM 25
+#define DEFAULT_MEMLIMIT_PERC_RAM 15
+
+/*
+ * Max compressed page size when backing device is provided.
+ * Pages that compress to size greater than this are sent to
+ * physical swap disk.
+ */
+#define MAX_CPAGE_SIZE_BDEV (PAGE_SIZE / 2)
+
+/*
+ * Max compressed page size when there is no backing dev.
+ * Pages that compress to size greater than this are stored
+ * uncompressed in memory.
+ */
+#define MAX_CPAGE_SIZE_NOBDEV (PAGE_SIZE / 4 * 3)
+
+/*
+ * NOTE: MAX_CPAGE_SIZE_{BDEV,NOBDEV} sizes must be
+ * less than or equal to:
+ * XV_MAX_ALLOC_SIZE - sizeof(struct zobj_header)
+ * since otherwise xvMalloc would always return failure.
+ */
+
+/*-- End of configurable params */
+
+#define SECTOR_SHIFT 9
+#define SECTOR_SIZE (1 << SECTOR_SHIFT)
+#define SECTORS_PER_PAGE_SHIFT (PAGE_SHIFT - SECTOR_SHIFT)
+#define SECTORS_PER_PAGE (1 << SECTORS_PER_PAGE_SHIFT)
+
+/* Message prefix */
+#define C "ramzswap: "
+
+/* Debugging and Stats */
+#define NOP do { } while (0)
+
+#if defined(CONFIG_BLK_DEV_RAMZSWAP_STATS)
+#define STATS
+#endif
+
+#if defined(STATS)
+#define stat_inc(stat) ((stat)++)
+#define stat_dec(stat) ((stat)--)
+#define stat_inc_if_less(stat, val1, val2) \
+ ((stat) += ((val1) < (val2) ? 1 : 0))
+#define stat_dec_if_less(stat, val1, val2) \
+ ((stat) -= ((val1) < (val2) ? 1 : 0))
+#else /* STATS */
+#define stat_inc(x) NOP
+#define stat_dec(x) NOP
+#define stat_inc_if_less(x, v1, v2) NOP
+#define stat_dec_if_less(x, v1, v2) NOP
+#endif /* STATS */
+
+/* Flags for ramzswap pages (table[page_no].flags) */
+enum rzs_pageflags {
+ /* Page is stored uncompressed */
+ RZS_UNCOMPRESSED,
+
+ /* Page consists entirely of zeros */
+ RZS_ZERO,
+
+ __NR_RZS_PAGEFLAGS,
+};
+
+/*-- Data structures */
+
+/* Indexed by page no. */
+struct table {
+ u32 pagenum;
+ u16 offset;
+ u8 count; /* object ref count (not yet used) */
+ u8 flags;
+};
+
+struct ramzswap {
+ struct xv_pool *mem_pool;
+ void *compress_workmem;
+ void *compress_buffer;
+ struct table *table;
+ struct mutex lock;
+ struct gendisk *disk;
+ /*
+ * This is limit on compressed data size (stats.compr_size)
+ * Its applicable only when backing swap device is present.
+ */
+ size_t memlimit; /* bytes */
+ /*
+ * This is limit on amount of *uncompressed* worth of data
+ * we can hold. When backing swap device is provided, it is
+ * set equal to device size.
+ */
+ size_t disksize; /* bytes */
+
+ /* backing swap device info */
+ struct block_device *backing_swap;
+ struct file *swap_file;
+ int old_block_size;
+};
+
+struct ramzswap_stats {
+ /* basic stats */
+ size_t compr_size; /* compressed size of pages stored -
+ * needed to enforce memlimit */
+ /* more stats */
+#if defined(STATS)
+ u64 num_reads; /* failed + successful */
+ u64 num_writes; /* --do-- */
+ u64 failed_reads; /* can happen when memory is too low */
+ u64 failed_writes; /* should NEVER! happen */
+ u64 invalid_io; /* non-swap I/O requests */
+ u64 pages_discard; /* no. of pages freed by discard callback */
+ u32 pages_zero; /* no. of zero filled pages */
+ u32 pages_stored; /* no. of pages currently stored */
+ u32 good_compress; /* no. of pages with compression ratio<=50% */
+ u32 pages_expand; /* no. of incompressible pages */
+ u64 bdev_num_reads; /* no. of reads on backing dev */
+ u64 bdev_num_writes; /* no. of writes on backing dev */
+#endif
+};
+/*-- */
+
+#endif
diff --git a/ubuntu/compcache/xvmalloc.c b/ubuntu/compcache/xvmalloc.c
new file mode 100644
index 00000000000..222e1a9be03
--- /dev/null
+++ b/ubuntu/compcache/xvmalloc.c
@@ -0,0 +1,557 @@
+/*
+ * xvmalloc.c
+ *
+ * Copyright (C) 2008, 2009 Nitin Gupta
+ *
+ * This code is released using a dual license strategy: GPL/LGPL
+ * You can choose the licence that better fits your requirements.
+ *
+ * Released under the terms of GNU General Public License Version 2.0
+ * Released under the terms of GNU Lesser General Public License Version 2.1
+ */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/bitops.h>
+#include <linux/errno.h>
+#include <linux/highmem.h>
+#include <linux/init.h>
+#include <linux/string.h>
+#include <linux/slab.h>
+
+#include "xvmalloc.h"
+#include "xvmalloc_int.h"
+
+static void stat_inc(u64 *value)
+{
+ *value = *value + 1;
+}
+
+static void stat_dec(u64 *value)
+{
+ *value = *value - 1;
+}
+
+static int test_flag(struct block_header *block, enum blockflags flag)
+{
+ return block->prev & BIT(flag);
+}
+
+static void set_flag(struct block_header *block, enum blockflags flag)
+{
+ block->prev |= BIT(flag);
+}
+
+static void clear_flag(struct block_header *block, enum blockflags flag)
+{
+ block->prev &= ~BIT(flag);
+}
+
+/*
+ * Given <pagenum, offset> pair, provide a derefrencable pointer.
+ * This is called from xv_malloc/xv_free path, so it needs to be fast.
+ */
+static void *get_ptr_atomic(u32 pagenum, u16 offset, enum km_type type)
+{
+ unsigned char *base;
+
+ base = kmap_atomic(pfn_to_page(pagenum), type);
+ return base + offset;
+}
+
+static void put_ptr_atomic(void *ptr, enum km_type type)
+{
+ kunmap_atomic(ptr, type);
+}
+
+static u32 get_blockprev(struct block_header *block)
+{
+ return block->prev & PREV_MASK;
+}
+
+static void set_blockprev(struct block_header *block, u16 new_offset)
+{
+ block->prev = new_offset | (block->prev & FLAGS_MASK);
+}
+
+static struct block_header *BLOCK_NEXT(struct block_header *block)
+{
+ return (struct block_header *)((char *)block + block->size + XV_ALIGN);
+}
+
+/*
+ * Get index of free list containing blocks of maximum size
+ * which is less than or equal to given size.
+ */
+static u32 get_index_for_insert(u32 size)
+{
+ if (unlikely(size > XV_MAX_ALLOC_SIZE))
+ size = XV_MAX_ALLOC_SIZE;
+ size &= ~FL_DELTA_MASK;
+ return (size - XV_MIN_ALLOC_SIZE) >> FL_DELTA_SHIFT;
+}
+
+/*
+ * Get index of free list having blocks of size greater than
+ * or equal to requested size.
+ */
+static u32 get_index(u32 size)
+{
+ if (unlikely(size < XV_MIN_ALLOC_SIZE))
+ size = XV_MIN_ALLOC_SIZE;
+ size = ALIGN(size, FL_DELTA);
+ return (size - XV_MIN_ALLOC_SIZE) >> FL_DELTA_SHIFT;
+}
+
+/*
+ * Allocate a memory page. Called when a pool needs to grow.
+ */
+static u32 xv_alloc_page(gfp_t flags)
+{
+ struct page *page;
+
+ //page = alloc_page(GFP_NOIO | __GFP_HIGHMEM);
+ page = alloc_page(flags);
+ if (unlikely(!page))
+ return 0;
+
+ return page_to_pfn(page);
+}
+
+/*
+ * Called when all objects in a page are freed.
+ */
+static void xv_free_page(u32 pagenum)
+{
+ __free_page(pfn_to_page(pagenum));
+}
+
+/**
+ * find_block - find block of at least given size
+ * @pool: memory pool to search from
+ * @size: size of block required
+ * @pagenum: page no. containing required block
+ * @offset: offset within the page where block is located.
+ *
+ * Searches two level bitmap to locate block of at least
+ * the given size. If such a block is found, it provides
+ * <pagenum, offset> to identify this block and returns index
+ * in freelist where we found this block.
+ * Otherwise, returns 0 and <pagenum, offset> params are not touched.
+ */
+static u32 find_block(struct xv_pool *pool, u32 size,
+ u32 *pagenum, u32 *offset)
+{
+ ulong flbitmap, slbitmap;
+ u32 flindex, slindex, slbitstart;
+
+ /* There are no free blocks in this pool */
+ if (!pool->flbitmap)
+ return 0;
+
+ /* Get freelist index correspoding to this size */
+ slindex = get_index(size);
+ slbitmap = pool->slbitmap[slindex / BITS_PER_LONG];
+ slbitstart = slindex % BITS_PER_LONG;
+
+ /*
+ * If freelist is not empty at this index, we found the
+ * block - head of this list. This is approximate best-fit match.
+ */
+ if (test_bit(slbitstart, &slbitmap)) {
+ *pagenum = pool->freelist[slindex].pagenum;
+ *offset = pool->freelist[slindex].offset;
+ return slindex;
+ }
+
+ /*
+ * No best-fit found. Search a bit further in bitmap for a free block.
+ * Second level bitmap consists of series of 32-bit chunks. Search
+ * further in the chunk where we expected a best-fit, starting from
+ * index location found above.
+ */
+ slbitstart++;
+ slbitmap >>= slbitstart;
+
+ /* Skip this search if we were already at end of this bitmap chunk */
+ if ((slbitstart != BITS_PER_LONG) && slbitmap) {
+ slindex += __ffs(slbitmap) + 1;
+ *pagenum = pool->freelist[slindex].pagenum;
+ *offset = pool->freelist[slindex].offset;
+ return slindex;
+ }
+
+ /* Now do a full two-level bitmap search to find next nearest fit */
+ flindex = slindex / BITS_PER_LONG;
+
+ flbitmap = (pool->flbitmap) >> (flindex + 1);
+ if (!flbitmap)
+ return 0;
+
+ flindex += __ffs(flbitmap) + 1;
+ slbitmap = pool->slbitmap[flindex];
+ slindex = (flindex * BITS_PER_LONG) + __ffs(slbitmap);
+ *pagenum = pool->freelist[slindex].pagenum;
+ *offset = pool->freelist[slindex].offset;
+
+ return slindex;
+}
+
+/*
+ * Insert block at <pagenum, offset> in freelist of given pool.
+ * freelist used depends on block size.
+ */
+static void insert_block(struct xv_pool *pool, u32 pagenum, u32 offset,
+ struct block_header *block)
+{
+ u32 flindex, slindex;
+ struct block_header *nextblock;
+
+ slindex = get_index_for_insert(block->size);
+ flindex = slindex / BITS_PER_LONG;
+
+ block->link.prev_pagenum = 0;
+ block->link.prev_offset = 0;
+ block->link.next_pagenum = pool->freelist[slindex].pagenum;
+ block->link.next_offset = pool->freelist[slindex].offset;
+ pool->freelist[slindex].pagenum = pagenum;
+ pool->freelist[slindex].offset = offset;
+
+ if (block->link.next_pagenum) {
+ nextblock = get_ptr_atomic(block->link.next_pagenum,
+ block->link.next_offset, KM_USER1);
+ nextblock->link.prev_pagenum = pagenum;
+ nextblock->link.prev_offset = offset;
+ put_ptr_atomic(nextblock, KM_USER1);
+ }
+
+ __set_bit(slindex % BITS_PER_LONG, &pool->slbitmap[flindex]);
+ __set_bit(flindex, &pool->flbitmap);
+}
+
+/*
+ * Remove block from head of freelist. Index 'slindex' identifies the freelist.
+ */
+static void remove_block_head(struct xv_pool *pool,
+ struct block_header *block, u32 slindex)
+{
+ struct block_header *tmpblock;
+ u32 flindex = slindex / BITS_PER_LONG;
+
+ pool->freelist[slindex].pagenum = block->link.next_pagenum;
+ pool->freelist[slindex].offset = block->link.next_offset;
+ block->link.prev_pagenum = 0;
+ block->link.prev_offset = 0;
+
+ if (!pool->freelist[slindex].pagenum) {
+ __clear_bit(slindex % BITS_PER_LONG, &pool->slbitmap[flindex]);
+ if (!pool->slbitmap[flindex])
+ __clear_bit(flindex, &pool->flbitmap);
+ } else {
+ /*
+ * DEBUG ONLY: We need not reinitialize freelist head previous
+ * pointer to 0 - we never depend on its value. But just for
+ * sanity, lets do it.
+ */
+ tmpblock = get_ptr_atomic(pool->freelist[slindex].pagenum,
+ pool->freelist[slindex].offset, KM_USER1);
+ tmpblock->link.prev_pagenum = 0;
+ tmpblock->link.prev_offset = 0;
+ put_ptr_atomic(tmpblock, KM_USER1);
+ }
+}
+
+/*
+ * Remove block from freelist. Index 'slindex' identifies the freelist.
+ */
+static void remove_block(struct xv_pool *pool, u32 pagenum, u32 offset,
+ struct block_header *block, u32 slindex)
+{
+ u32 flindex;
+ struct block_header *tmpblock;
+
+ if (pool->freelist[slindex].pagenum == pagenum
+ && pool->freelist[slindex].offset == offset) {
+ remove_block_head(pool, block, slindex);
+ return;
+ }
+
+ flindex = slindex / BITS_PER_LONG;
+
+ if (block->link.prev_pagenum) {
+ tmpblock = get_ptr_atomic(block->link.prev_pagenum,
+ block->link.prev_offset, KM_USER1);
+ tmpblock->link.next_pagenum = block->link.next_pagenum;
+ tmpblock->link.next_offset = block->link.next_offset;
+ put_ptr_atomic(tmpblock, KM_USER1);
+ }
+
+ if (block->link.next_pagenum) {
+ tmpblock = get_ptr_atomic(block->link.next_pagenum,
+ block->link.next_offset, KM_USER1);
+ tmpblock->link.prev_pagenum = block->link.prev_pagenum;
+ tmpblock->link.prev_offset = block->link.prev_offset;
+ put_ptr_atomic(tmpblock, KM_USER1);
+ }
+
+ return;
+}
+
+/*
+ * Allocate a page and add it freelist of given pool.
+ */
+static int grow_pool(struct xv_pool *pool, gfp_t flags)
+{
+ u32 pagenum;
+ struct block_header *block;
+
+ pagenum = xv_alloc_page(flags);
+ if (unlikely(!pagenum))
+ return -ENOMEM;
+
+ stat_inc(&pool->total_pages);
+
+ spin_lock(&pool->lock);
+ block = get_ptr_atomic(pagenum, 0, KM_USER0);
+
+ block->size = PAGE_SIZE - XV_ALIGN;
+ set_flag(block, BLOCK_FREE);
+ clear_flag(block, PREV_FREE);
+ set_blockprev(block, 0);
+
+ insert_block(pool, pagenum, 0, block);
+
+ put_ptr_atomic(block, KM_USER0);
+ spin_unlock(&pool->lock);
+
+ return 0;
+}
+
+/*
+ * Create a memory pool. Allocates freelist, bitmaps and other
+ * per-pool metadata.
+ */
+struct xv_pool *xv_create_pool(void)
+{
+ u32 ovhd_size;
+ struct xv_pool *pool;
+
+ ovhd_size = roundup(sizeof(*pool), PAGE_SIZE);
+ pool = kzalloc(ovhd_size, GFP_KERNEL);
+ if (!pool)
+ return NULL;
+
+ spin_lock_init(&pool->lock);
+
+ return pool;
+}
+EXPORT_SYMBOL_GPL(xv_create_pool);
+
+void xv_destroy_pool(struct xv_pool *pool)
+{
+ kfree(pool);
+}
+EXPORT_SYMBOL_GPL(xv_destroy_pool);
+
+/**
+ * xv_malloc - Allocate block of given size from pool.
+ * @pool: pool to allocate from
+ * @size: size of block to allocate
+ * @pagenum: page no. that holds the object
+ * @offset: location of object within pagenum
+ *
+ * On success, <pagenum, offset> identifies block allocated
+ * and 0 is returned. On failure, <pagenum, offset> is set to
+ * 0 and -ENOMEM is returned.
+ *
+ * Allocation requests with size > XV_MAX_ALLOC_SIZE will fail.
+ */
+int xv_malloc(struct xv_pool *pool, u32 size, u32 *pagenum, u32 *offset,
+ gfp_t flags)
+{
+ int error;
+ u32 index, tmpsize, origsize, tmpoffset;
+ struct block_header *block, *tmpblock;
+
+ *pagenum = 0;
+ *offset = 0;
+ origsize = size;
+
+ if (unlikely(!size || size > XV_MAX_ALLOC_SIZE))
+ return -ENOMEM;
+
+ size = ALIGN(size, XV_ALIGN);
+
+ spin_lock(&pool->lock);
+
+ index = find_block(pool, size, pagenum, offset);
+
+ if (!*pagenum) {
+ spin_unlock(&pool->lock);
+ if (flags & GFP_NOWAIT)
+ return -ENOMEM;
+ error = grow_pool(pool, flags);
+ if (unlikely(error))
+ return -ENOMEM;
+
+ spin_lock(&pool->lock);
+ index = find_block(pool, size, pagenum, offset);
+ }
+
+ if (!*pagenum) {
+ spin_unlock(&pool->lock);
+ return -ENOMEM;
+ }
+
+ block = get_ptr_atomic(*pagenum, *offset, KM_USER0);
+
+ remove_block_head(pool, block, index);
+
+ /* Split the block if required */
+ tmpoffset = *offset + size + XV_ALIGN;
+ tmpsize = block->size - size;
+ tmpblock = (struct block_header *)((char *)block + size + XV_ALIGN);
+ if (tmpsize) {
+ tmpblock->size = tmpsize - XV_ALIGN;
+ set_flag(tmpblock, BLOCK_FREE);
+ clear_flag(tmpblock, PREV_FREE);
+
+ set_blockprev(tmpblock, *offset);
+ if (tmpblock->size >= XV_MIN_ALLOC_SIZE)
+ insert_block(pool, *pagenum, tmpoffset, tmpblock);
+
+ if (tmpoffset + XV_ALIGN + tmpblock->size != PAGE_SIZE) {
+ tmpblock = BLOCK_NEXT(tmpblock);
+ set_blockprev(tmpblock, tmpoffset);
+ }
+ } else {
+ /* This block is exact fit */
+ if (tmpoffset != PAGE_SIZE)
+ clear_flag(tmpblock, PREV_FREE);
+ }
+
+ block->size = origsize;
+ clear_flag(block, BLOCK_FREE);
+
+ put_ptr_atomic(block, KM_USER0);
+ spin_unlock(&pool->lock);
+
+ *offset += XV_ALIGN;
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(xv_malloc);
+
+/*
+ * Free block identified with <pagenum, offset>
+ */
+void xv_free(struct xv_pool *pool, u32 pagenum, u32 offset)
+{
+ void *page;
+ struct block_header *block, *tmpblock;
+
+ offset -= XV_ALIGN;
+
+ spin_lock(&pool->lock);
+
+ page = get_ptr_atomic(pagenum, 0, KM_USER0);
+ block = (struct block_header *)((char *)page + offset);
+
+ /* Catch double free bugs */
+ BUG_ON(test_flag(block, BLOCK_FREE));
+
+ block->size = ALIGN(block->size, XV_ALIGN);
+
+ tmpblock = BLOCK_NEXT(block);
+ if (offset + block->size + XV_ALIGN == PAGE_SIZE)
+ tmpblock = NULL;
+
+ /* Merge next block if its free */
+ if (tmpblock && test_flag(tmpblock, BLOCK_FREE)) {
+ /*
+ * Blocks smaller than XV_MIN_ALLOC_SIZE
+ * are not inserted in any free list.
+ */
+ if (tmpblock->size >= XV_MIN_ALLOC_SIZE) {
+ remove_block(pool, pagenum,
+ offset + block->size + XV_ALIGN, tmpblock,
+ get_index_for_insert(tmpblock->size));
+ }
+ block->size += tmpblock->size + XV_ALIGN;
+ }
+
+ /* Merge previous block if its free */
+ if (test_flag(block, PREV_FREE)) {
+ tmpblock = (struct block_header *)((char *)(page) +
+ get_blockprev(block));
+ offset = offset - tmpblock->size - XV_ALIGN;
+
+ if (tmpblock->size >= XV_MIN_ALLOC_SIZE)
+ remove_block(pool, pagenum, offset, tmpblock,
+ get_index_for_insert(tmpblock->size));
+
+ tmpblock->size += block->size + XV_ALIGN;
+ block = tmpblock;
+ }
+
+ /* No used objects in this page. Free it. */
+ if (block->size == PAGE_SIZE - XV_ALIGN) {
+ put_ptr_atomic(page, KM_USER0);
+ spin_unlock(&pool->lock);
+
+ xv_free_page(pagenum);
+ stat_dec(&pool->total_pages);
+ return;
+ }
+
+ set_flag(block, BLOCK_FREE);
+ if (block->size >= XV_MIN_ALLOC_SIZE)
+ insert_block(pool, pagenum, offset, block);
+
+ if (offset + block->size + XV_ALIGN != PAGE_SIZE) {
+ tmpblock = BLOCK_NEXT(block);
+ set_flag(tmpblock, PREV_FREE);
+ set_blockprev(tmpblock, offset);
+ }
+
+ put_ptr_atomic(page, KM_USER0);
+ spin_unlock(&pool->lock);
+
+ return;
+}
+EXPORT_SYMBOL_GPL(xv_free);
+
+u32 xv_get_object_size(void *obj)
+{
+ struct block_header *blk;
+
+ blk = (struct block_header *)((char *)(obj) - XV_ALIGN);
+ return blk->size;
+}
+EXPORT_SYMBOL_GPL(xv_get_object_size);
+
+/*
+ * Returns total memory used by allocator (userdata + metadata)
+ */
+u64 xv_get_total_size_bytes(struct xv_pool *pool)
+{
+ return pool->total_pages << PAGE_SHIFT;
+}
+EXPORT_SYMBOL_GPL(xv_get_total_size_bytes);
+
+static int __init xv_malloc_init(void)
+{
+ return 0;
+}
+
+static void __exit xv_malloc_exit(void)
+{
+ return;
+}
+
+module_init(xv_malloc_init);
+module_exit(xv_malloc_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Nitin Gupta <ngupta@vflare.org>");
+MODULE_DESCRIPTION("xvmalloc memory allocator");
diff --git a/ubuntu/compcache/xvmalloc.h b/ubuntu/compcache/xvmalloc.h
new file mode 100644
index 00000000000..f966aa79e21
--- /dev/null
+++ b/ubuntu/compcache/xvmalloc.h
@@ -0,0 +1,30 @@
+/*
+ * xvmalloc.h
+ *
+ * Copyright (C) 2008, 2009 Nitin Gupta
+ *
+ * This code is released using a dual license strategy: GPL/LGPL
+ * You can choose the licence that better fits your requirements.
+ *
+ * Released under the terms of GNU General Public License Version 2.0
+ * Released under the terms of GNU Lesser General Public License Version 2.1
+ */
+
+#ifndef _XVMALLOC_H_
+#define _XVMALLOC_H_
+
+#include <linux/types.h>
+
+struct xv_pool;
+
+struct xv_pool *xv_create_pool(void);
+void xv_destroy_pool(struct xv_pool *pool);
+
+int xv_malloc(struct xv_pool *pool, u32 size, u32 *pagenum, u32 *offset,
+ gfp_t flags);
+void xv_free(struct xv_pool *pool, u32 pagenum, u32 offset);
+
+u32 xv_get_object_size(void *obj);
+u64 xv_get_total_size_bytes(struct xv_pool *pool);
+
+#endif
diff --git a/ubuntu/compcache/xvmalloc_int.h b/ubuntu/compcache/xvmalloc_int.h
new file mode 100644
index 00000000000..c09d8e75f1a
--- /dev/null
+++ b/ubuntu/compcache/xvmalloc_int.h
@@ -0,0 +1,86 @@
+/*
+ * xvmalloc_int.c
+ *
+ * Copyright (C) 2008, 2009 Nitin Gupta
+ *
+ * This code is released using a dual license strategy: GPL/LGPL
+ * You can choose the licence that better fits your requirements.
+ *
+ * Released under the terms of GNU General Public License Version 2.0
+ * Released under the terms of GNU Lesser General Public License Version 2.1
+ */
+
+#ifndef _XVMALLOC_INT_H_
+#define _XVMALLOC_INT_H_
+
+#include <linux/kernel.h>
+#include <linux/types.h>
+
+/* User configurable params */
+
+/* This must be greater than sizeof(LinkFree) */
+#define XV_MIN_ALLOC_SIZE 32
+#define XV_MAX_ALLOC_SIZE (PAGE_SIZE - XV_ALIGN)
+
+/* Must be power of two */
+#define XV_ALIGN_SHIFT 2
+#define XV_ALIGN (1 << XV_ALIGN_SHIFT)
+#define XV_ALIGN_MASK (XV_ALIGN - 1)
+
+/* Free lists are separated by FL_DELTA bytes */
+#define FL_DELTA_SHIFT 3
+#define FL_DELTA (1 << FL_DELTA_SHIFT)
+#define FL_DELTA_MASK (FL_DELTA - 1)
+#define NUM_FREE_LISTS ((XV_MAX_ALLOC_SIZE - XV_MIN_ALLOC_SIZE) \
+ / FL_DELTA + 1)
+
+#define MAX_FLI DIV_ROUND_UP(NUM_FREE_LISTS, BITS_PER_LONG)
+
+/* End of user params */
+
+enum blockflags {
+ BLOCK_FREE,
+ PREV_FREE,
+ __NR_BLOCKFLAGS,
+};
+
+#define FLAGS_MASK XV_ALIGN_MASK
+#define PREV_MASK (~FLAGS_MASK)
+
+struct freelist_entry {
+ u32 pagenum;
+ u16 offset;
+ u16 pad;
+};
+
+struct link_free {
+ u32 prev_pagenum;
+ u32 next_pagenum;
+ u16 prev_offset;
+ u16 next_offset;
+};
+
+struct block_header {
+ union {
+ /* This common header must be ALIGN bytes */
+ u8 common[XV_ALIGN];
+ struct {
+ u16 size;
+ u16 prev;
+ };
+ };
+ struct link_free link;
+};
+
+struct xv_pool {
+ ulong flbitmap;
+ ulong slbitmap[MAX_FLI];
+ spinlock_t lock;
+
+ struct freelist_entry freelist[NUM_FREE_LISTS];
+
+ /* stats */
+ u64 total_pages;
+};
+
+#endif
diff --git a/ubuntu/dm-raid4-5/BOM b/ubuntu/dm-raid4-5/BOM
new file mode 100644
index 00000000000..dd29442289d
--- /dev/null
+++ b/ubuntu/dm-raid4-5/BOM
@@ -0,0 +1,3 @@
+Downloaded from: http://people.redhat.com/~heinzm/sw/dm/dm-raid45/
+Current Version: 2009.04.24 (2.6.30-rc3)
+Comments: All of the patches to dmraid1/dm-log, etc are upstream.
diff --git a/ubuntu/dm-raid4-5/Kconfig b/ubuntu/dm-raid4-5/Kconfig
new file mode 100644
index 00000000000..03fab6438d4
--- /dev/null
+++ b/ubuntu/dm-raid4-5/Kconfig
@@ -0,0 +1,6 @@
+config DM_RAID45
+ tristate "RAID 4/5 target (EXPERIMENTAL)"
+ depends on BLK_DEV_DM && XOR_BLOCKS && EXPERIMENTAL
+ default m
+ ---help---
+ A target that supports RAID4 and RAID5 mappings.
diff --git a/ubuntu/dm-raid4-5/Makefile b/ubuntu/dm-raid4-5/Makefile
new file mode 100644
index 00000000000..9a32796d73f
--- /dev/null
+++ b/ubuntu/dm-raid4-5/Makefile
@@ -0,0 +1,4 @@
+EXTRA_CFLAGS += -I$(srctree)/drivers/md
+
+obj-$(CONFIG_DM_RAID45) := dm-raid45.o
+dm-raid45-objs := dm-raid4-5.o dm-memcache.o dm-region-hash.o dm-message.o
diff --git a/ubuntu/dm-raid4-5/dm-memcache.c b/ubuntu/dm-raid4-5/dm-memcache.c
new file mode 100644
index 00000000000..1b15859b276
--- /dev/null
+++ b/ubuntu/dm-raid4-5/dm-memcache.c
@@ -0,0 +1,302 @@
+/*
+ * Copyright (C) 2006-2008 Red Hat, Inc. All rights reserved.
+ *
+ * Module Author: Heinz Mauelshagen <heinzm@redhat.com>
+ *
+ * Device-mapper memory object handling:
+ *
+ * o allocate/free total_pages in a per client page pool.
+ *
+ * o allocate/free memory objects with chunks (1..n) of
+ * pages_per_chunk pages hanging off.
+ *
+ * This file is released under the GPL.
+ */
+
+#define DM_MEM_CACHE_VERSION "0.2"
+
+#include "dm.h"
+#include "dm-memcache.h"
+#include <linux/dm-io.h>
+#include <linux/slab.h>
+
+struct dm_mem_cache_client {
+ spinlock_t lock;
+ mempool_t *objs_pool;
+ struct page_list *free_list;
+ unsigned objects;
+ unsigned chunks;
+ unsigned pages_per_chunk;
+ unsigned free_pages;
+ unsigned total_pages;
+};
+
+/*
+ * Free pages and page_list elements of client.
+ */
+static void free_cache_pages(struct page_list *list)
+{
+ while (list) {
+ struct page_list *pl = list;
+
+ list = pl->next;
+ BUG_ON(!pl->page);
+ __free_page(pl->page);
+ kfree(pl);
+ }
+}
+
+/*
+ * Alloc number of pages and page_list elements as required by client.
+ */
+static struct page_list *alloc_cache_pages(unsigned pages)
+{
+ struct page_list *pl, *ret = NULL;
+ struct page *page;
+
+ while (pages--) {
+ page = alloc_page(GFP_NOIO);
+ if (!page)
+ goto err;
+
+ pl = kmalloc(sizeof(*pl), GFP_NOIO);
+ if (!pl) {
+ __free_page(page);
+ goto err;
+ }
+
+ pl->page = page;
+ pl->next = ret;
+ ret = pl;
+ }
+
+ return ret;
+
+err:
+ free_cache_pages(ret);
+ return NULL;
+}
+
+/*
+ * Allocate page_list elements from the pool to chunks of the memory object.
+ */
+static void alloc_chunks(struct dm_mem_cache_client *cl,
+ struct dm_mem_cache_object *obj)
+{
+ unsigned chunks = cl->chunks;
+ unsigned long flags;
+
+ local_irq_save(flags);
+ local_irq_disable();
+ while (chunks--) {
+ unsigned p = cl->pages_per_chunk;
+
+ obj[chunks].pl = NULL;
+
+ while (p--) {
+ struct page_list *pl;
+
+ /* Take next element from free list */
+ spin_lock(&cl->lock);
+ pl = cl->free_list;
+ BUG_ON(!pl);
+ cl->free_list = pl->next;
+ spin_unlock(&cl->lock);
+
+ pl->next = obj[chunks].pl;
+ obj[chunks].pl = pl;
+ }
+ }
+
+ local_irq_restore(flags);
+}
+
+/*
+ * Free page_list elements putting them back onto free list
+ */
+static void free_chunks(struct dm_mem_cache_client *cl,
+ struct dm_mem_cache_object *obj)
+{
+ unsigned chunks = cl->chunks;
+ unsigned long flags;
+ struct page_list *next, *pl;
+
+ local_irq_save(flags);
+ local_irq_disable();
+ while (chunks--) {
+ for (pl = obj[chunks].pl; pl; pl = next) {
+ next = pl->next;
+
+ spin_lock(&cl->lock);
+ pl->next = cl->free_list;
+ cl->free_list = pl;
+ cl->free_pages++;
+ spin_unlock(&cl->lock);
+ }
+ }
+
+ local_irq_restore(flags);
+}
+
+/*
+ * Create/destroy dm memory cache client resources.
+ */
+struct dm_mem_cache_client *
+dm_mem_cache_client_create(unsigned objects, unsigned chunks,
+ unsigned pages_per_chunk)
+{
+ unsigned total_pages = objects * chunks * pages_per_chunk;
+ struct dm_mem_cache_client *client;
+
+ BUG_ON(!total_pages);
+ client = kzalloc(sizeof(*client), GFP_KERNEL);
+ if (!client)
+ return ERR_PTR(-ENOMEM);
+
+ client->objs_pool = mempool_create_kmalloc_pool(objects,
+ chunks * sizeof(struct dm_mem_cache_object));
+ if (!client->objs_pool)
+ goto err;
+
+ client->free_list = alloc_cache_pages(total_pages);
+ if (!client->free_list)
+ goto err1;
+
+ spin_lock_init(&client->lock);
+ client->objects = objects;
+ client->chunks = chunks;
+ client->pages_per_chunk = pages_per_chunk;
+ client->free_pages = client->total_pages = total_pages;
+ return client;
+
+err1:
+ mempool_destroy(client->objs_pool);
+err:
+ kfree(client);
+ return ERR_PTR(-ENOMEM);
+}
+EXPORT_SYMBOL(dm_mem_cache_client_create);
+
+void dm_mem_cache_client_destroy(struct dm_mem_cache_client *cl)
+{
+ BUG_ON(cl->free_pages != cl->total_pages);
+ free_cache_pages(cl->free_list);
+ mempool_destroy(cl->objs_pool);
+ kfree(cl);
+}
+EXPORT_SYMBOL(dm_mem_cache_client_destroy);
+
+/*
+ * Grow a clients cache by an amount of pages.
+ *
+ * Don't call from interrupt context!
+ */
+int dm_mem_cache_grow(struct dm_mem_cache_client *cl, unsigned objects)
+{
+ unsigned pages = objects * cl->chunks * cl->pages_per_chunk;
+ struct page_list *pl, *last;
+
+ BUG_ON(!pages);
+ pl = alloc_cache_pages(pages);
+ if (!pl)
+ return -ENOMEM;
+
+ last = pl;
+ while (last->next)
+ last = last->next;
+
+ spin_lock_irq(&cl->lock);
+ last->next = cl->free_list;
+ cl->free_list = pl;
+ cl->free_pages += pages;
+ cl->total_pages += pages;
+ cl->objects++;
+ spin_unlock_irq(&cl->lock);
+
+ mempool_resize(cl->objs_pool, cl->objects, GFP_NOIO);
+ return 0;
+}
+EXPORT_SYMBOL(dm_mem_cache_grow);
+
+/* Shrink a clients cache by an amount of pages */
+int dm_mem_cache_shrink(struct dm_mem_cache_client *cl, unsigned objects)
+{
+ int r;
+ unsigned pages = objects * cl->chunks * cl->pages_per_chunk, p = pages;
+ unsigned long flags;
+ struct page_list *last = NULL, *pl, *pos;
+
+ BUG_ON(!pages);
+
+ spin_lock_irqsave(&cl->lock, flags);
+ pl = pos = cl->free_list;
+ while (p-- && pos->next) {
+ last = pos;
+ pos = pos->next;
+ }
+
+ if (++p)
+ r = -ENOMEM;
+ else {
+ r = 0;
+ cl->free_list = pos;
+ cl->free_pages -= pages;
+ cl->total_pages -= pages;
+ cl->objects--;
+ last->next = NULL;
+ }
+ spin_unlock_irqrestore(&cl->lock, flags);
+
+ if (!r) {
+ free_cache_pages(pl);
+ mempool_resize(cl->objs_pool, cl->objects, GFP_NOIO);
+ }
+
+ return r;
+}
+EXPORT_SYMBOL(dm_mem_cache_shrink);
+
+/*
+ * Allocate/free a memory object
+ *
+ * Can be called from interrupt context
+ */
+struct dm_mem_cache_object *dm_mem_cache_alloc(struct dm_mem_cache_client *cl)
+{
+ int r = 0;
+ unsigned pages = cl->chunks * cl->pages_per_chunk;
+ unsigned long flags;
+ struct dm_mem_cache_object *obj;
+
+ obj = mempool_alloc(cl->objs_pool, GFP_NOIO);
+ if (!obj)
+ return ERR_PTR(-ENOMEM);
+
+ spin_lock_irqsave(&cl->lock, flags);
+ if (pages > cl->free_pages)
+ r = -ENOMEM;
+ else
+ cl->free_pages -= pages;
+ spin_unlock_irqrestore(&cl->lock, flags);
+
+ if (r) {
+ mempool_free(obj, cl->objs_pool);
+ return ERR_PTR(r);
+ }
+
+ alloc_chunks(cl, obj);
+ return obj;
+}
+EXPORT_SYMBOL(dm_mem_cache_alloc);
+
+void dm_mem_cache_free(struct dm_mem_cache_client *cl,
+ struct dm_mem_cache_object *obj)
+{
+ free_chunks(cl, obj);
+ mempool_free(obj, cl->objs_pool);
+}
+EXPORT_SYMBOL(dm_mem_cache_free);
+
+MODULE_DESCRIPTION(DM_NAME " dm memory cache");
+MODULE_AUTHOR("Heinz Mauelshagen <hjm@redhat.com>");
+MODULE_LICENSE("GPL");
diff --git a/ubuntu/dm-raid4-5/dm-memcache.h b/ubuntu/dm-raid4-5/dm-memcache.h
new file mode 100644
index 00000000000..87e4256daf5
--- /dev/null
+++ b/ubuntu/dm-raid4-5/dm-memcache.h
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2006-2008 Red Hat, Inc. All rights reserved.
+ *
+ * Module Author: Heinz Mauelshagen <Mauelshagen@RedHat.com>
+ *
+ * Device-mapper memory object handling:
+ *
+ * o allocate/free total_pages in a per client page pool.
+ *
+ * o allocate/free memory objects with chunks (1..n) of
+ * pages_per_chunk pages hanging off.
+ *
+ * This file is released under the GPL.
+ */
+
+#ifndef _DM_MEM_CACHE_H
+#define _DM_MEM_CACHE_H
+
+#define DM_MEM_CACHE_H_VERSION "0.1"
+
+#include "dm.h"
+#include <linux/dm-io.h>
+
+static inline struct page_list *pl_elem(struct page_list *pl, unsigned p)
+{
+ while (pl && p--)
+ pl = pl->next;
+
+ return pl;
+}
+
+struct dm_mem_cache_object {
+ struct page_list *pl; /* Dynamically allocated array */
+ void *private; /* Caller context reference */
+};
+
+struct dm_mem_cache_client;
+
+/*
+ * Create/destroy dm memory cache client resources.
+ *
+ * On creation, a number of @objects with @chunks of
+ * @pages_per_chunk pages will be allocated.
+ */
+struct dm_mem_cache_client *
+dm_mem_cache_client_create(unsigned objects, unsigned chunks,
+ unsigned pages_per_chunk);
+void dm_mem_cache_client_destroy(struct dm_mem_cache_client *client);
+
+/*
+ * Grow/shrink a dm memory cache client resources
+ * by @objetcs amount of objects.
+ */
+int dm_mem_cache_grow(struct dm_mem_cache_client *client, unsigned objects);
+int dm_mem_cache_shrink(struct dm_mem_cache_client *client, unsigned objects);
+
+/*
+ * Allocate/free a memory object
+ *
+ * On allocation one object with an amount of chunks and
+ * an amount of pages per chunk will be returned on success.
+ */
+struct dm_mem_cache_object *
+dm_mem_cache_alloc(struct dm_mem_cache_client *client);
+void dm_mem_cache_free(struct dm_mem_cache_client *client,
+ struct dm_mem_cache_object *object);
+
+#endif
diff --git a/ubuntu/dm-raid4-5/dm-message.c b/ubuntu/dm-raid4-5/dm-message.c
new file mode 100644
index 00000000000..a66b0152cb3
--- /dev/null
+++ b/ubuntu/dm-raid4-5/dm-message.c
@@ -0,0 +1,183 @@
+/*
+ * Copyright (C) 2007,2008 Red Hat Inc. All rights reserved.
+ *
+ * Module Author: Heinz Mauelshagen <heinzm@redhat.com>
+ *
+ * General device-mapper message interface argument parser.
+ *
+ * This file is released under the GPL.
+ *
+ * device-mapper message parser.
+ *
+ */
+
+#include "dm.h"
+#include "dm-message.h"
+#include <linux/kernel.h>
+
+#define DM_MSG_PREFIX "dm_message"
+
+/* Basename of a path. */
+static inline char *
+basename(char *s)
+{
+ char *p = strrchr(s, '/');
+
+ return p ? p + 1 : s;
+}
+
+/* Get an argument depending on type. */
+static void
+message_arguments(struct dm_msg *msg, int argc, char **argv)
+{
+
+ if (argc) {
+ int i;
+ struct dm_message_argument *args = msg->spec->args;
+
+ for (i = 0; i < args->num_args; i++) {
+ int r;
+ unsigned long **ptr = args->ptr;
+ enum dm_message_argument_type type = args->types[i];
+
+ switch (type) {
+ case dm_msg_base_t:
+ ((char **) ptr)[i] = basename(argv[i]);
+ break;
+
+ case dm_msg_str_t:
+ ((char **) ptr)[i] = argv[i];
+ break;
+
+ case dm_msg_int_t:
+ r = sscanf(argv[i], "%d", ((int **) ptr)[i]);
+ goto check;
+
+ case dm_msg_uint_t:
+ r = sscanf(argv[i], "%u",
+ ((unsigned **) ptr)[i]);
+ goto check;
+
+ case dm_msg_uint64_t:
+ r = sscanf(argv[i], "%llu",
+ ((unsigned long long **) ptr)[i]);
+
+check:
+ if (r != 1) {
+ set_bit(dm_msg_ret_undef, &msg->ret);
+ set_bit(dm_msg_ret_arg, &msg->ret);
+ }
+ }
+ }
+ }
+}
+
+/* Parse message options. */
+static void
+message_options_parse(struct dm_msg *msg, int argc, char **argv)
+{
+ int hit = 0;
+ unsigned long *action;
+ size_t l1 = strlen(*argv), l_hit = 0;
+ struct dm_message_option *o = msg->spec->options;
+ char **option, **option_end = o->options + o->num_options;
+
+ for (option = o->options, action = o->actions;
+ option < option_end; option++, action++) {
+ size_t l2 = strlen(*option);
+
+ if (!strnicmp(*argv, *option, min(l1, l2))) {
+ hit++;
+ l_hit = l2;
+ set_bit(*action, &msg->action);
+ }
+ }
+
+ /* Assume error. */
+ msg->ret = 0;
+ set_bit(dm_msg_ret_option, &msg->ret);
+ if (!hit || l1 > l_hit)
+ set_bit(dm_msg_ret_undef, &msg->ret); /* Undefined option. */
+ else if (hit > 1)
+ set_bit(dm_msg_ret_ambiguous, &msg->ret); /* Ambiguous option.*/
+ else {
+ clear_bit(dm_msg_ret_option, &msg->ret); /* Option OK. */
+ message_arguments(msg, --argc, ++argv);
+ }
+}
+
+static inline void
+print_ret(const char *caller, unsigned long ret)
+{
+ struct {
+ unsigned long err;
+ const char *err_str;
+ } static err_msg[] = {
+ { dm_msg_ret_ambiguous, "message ambiguous" },
+ { dm_msg_ret_inval, "message invalid" },
+ { dm_msg_ret_undef, "message undefined" },
+ { dm_msg_ret_arg, "message argument" },
+ { dm_msg_ret_argcount, "message argument count" },
+ { dm_msg_ret_option, "option" },
+ }, *e = ARRAY_END(err_msg);
+
+ while (e-- > err_msg) {
+ if (test_bit(e->err, &ret))
+ DMERR("%s %s", caller, e->err_str);
+ }
+}
+
+/* Parse a message action. */
+int
+dm_message_parse(const char *caller, struct dm_msg *msg, void *context,
+ int argc, char **argv)
+{
+ int hit = 0;
+ size_t l1, l_hit = 0;
+ struct dm_msg_spec *s, *s_hit = NULL,
+ *s_end = msg->specs + msg->num_specs;
+
+ if (argc < 2)
+ return -EINVAL;
+
+ l1 = strlen(*argv);
+ for (s = msg->specs; s < s_end; s++) {
+ size_t l2 = strlen(s->cmd);
+
+ if (!strnicmp(*argv, s->cmd, min(l1, l2))) {
+ hit++;
+ l_hit = l2;
+ s_hit = s;
+ }
+ }
+
+ msg->ret = 0;
+ if (!hit || l1 > l_hit) /* No hit or message string too long. */
+ set_bit(dm_msg_ret_undef, &msg->ret);
+ else if (hit > 1) /* Ambiguous message. */
+ set_bit(dm_msg_ret_ambiguous, &msg->ret);
+ else if (argc - 2 != s_hit->args->num_args) {
+ set_bit(dm_msg_ret_undef, &msg->ret);
+ set_bit(dm_msg_ret_argcount, &msg->ret);
+ }
+
+ if (msg->ret)
+ goto bad;
+
+ msg->action = 0;
+ msg->spec = s_hit;
+ set_bit(s_hit->action, &msg->action);
+ message_options_parse(msg, --argc, ++argv);
+
+ if (!msg->ret)
+ return msg->spec->f(msg, context);
+
+bad:
+ print_ret(caller, msg->ret);
+ return -EINVAL;
+}
+EXPORT_SYMBOL(dm_message_parse);
+
+MODULE_DESCRIPTION(DM_NAME " device-mapper target message parser");
+MODULE_AUTHOR("Heinz Mauelshagen <hjm@redhat.com>");
+MODULE_LICENSE("GPL");
diff --git a/ubuntu/dm-raid4-5/dm-message.h b/ubuntu/dm-raid4-5/dm-message.h
new file mode 100644
index 00000000000..2024534c5bf
--- /dev/null
+++ b/ubuntu/dm-raid4-5/dm-message.h
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2007,2008 Red Hat, Inc. All rights reserved.
+ *
+ * Module Author: Heinz Mauelshagen <Mauelshagen@RedHat.de>
+ *
+ * General device-mapper message interface argument parser.
+ *
+ * This file is released under the GPL.
+ *
+ */
+
+#ifndef DM_MESSAGE_H
+#define DM_MESSAGE_H
+
+/* Factor out to dm.h. */
+/* Reference to array end. */
+#define ARRAY_END(a) ((a) + ARRAY_SIZE(a))
+
+/* Message return bits. */
+enum dm_message_return {
+ dm_msg_ret_ambiguous, /* Action ambiguous. */
+ dm_msg_ret_inval, /* Action invalid. */
+ dm_msg_ret_undef, /* Action undefined. */
+
+ dm_msg_ret_option, /* Option error. */
+ dm_msg_ret_arg, /* Argument error. */
+ dm_msg_ret_argcount, /* Argument count error. */
+};
+
+/* Message argument type conversions. */
+enum dm_message_argument_type {
+ dm_msg_base_t, /* Basename string. */
+ dm_msg_str_t, /* String. */
+ dm_msg_int_t, /* Signed int. */
+ dm_msg_uint_t, /* Unsigned int. */
+ dm_msg_uint64_t, /* Unsigned int 64. */
+};
+
+/* A message option. */
+struct dm_message_option {
+ unsigned num_options;
+ char **options;
+ unsigned long *actions;
+};
+
+/* Message arguments and types. */
+struct dm_message_argument {
+ unsigned num_args;
+ unsigned long **ptr;
+ enum dm_message_argument_type types[];
+};
+
+/* Client message. */
+struct dm_msg {
+ unsigned long action; /* Identified action. */
+ unsigned long ret; /* Return bits. */
+ unsigned num_specs; /* # of sepcifications listed. */
+ struct dm_msg_spec *specs; /* Specification list. */
+ struct dm_msg_spec *spec; /* Specification selected. */
+};
+
+/* Secification of the message. */
+struct dm_msg_spec {
+ const char *cmd; /* Name of the command (i.e. 'bandwidth'). */
+ unsigned long action;
+ struct dm_message_option *options;
+ struct dm_message_argument *args;
+ unsigned long parm; /* Parameter to pass through to callback. */
+ /* Function to process for action. */
+ int (*f) (struct dm_msg *msg, void *context);
+};
+
+/* Parameter access macros. */
+#define DM_MSG_PARM(msg) ((msg)->spec->parm)
+
+#define DM_MSG_STR_ARGS(msg, idx) ((char *) *(msg)->spec->args->ptr[idx])
+#define DM_MSG_INT_ARGS(msg, idx) ((int) *(msg)->spec->args->ptr[idx])
+#define DM_MSG_UINT_ARGS(msg, idx) ((unsigned) DM_MSG_INT_ARG(msg, idx))
+#define DM_MSG_UINT64_ARGS(msg, idx) ((uint64_t) *(msg)->spec->args->ptr[idx])
+
+#define DM_MSG_STR_ARG(msg) DM_MSG_STR_ARGS(msg, 0)
+#define DM_MSG_INT_ARG(msg) DM_MSG_INT_ARGS(msg, 0)
+#define DM_MSG_UINT_ARG(msg) DM_MSG_UINT_ARGS(msg, 0)
+#define DM_MSG_UINT64_ARG(msg) DM_MSG_UINT64_ARGS(msg, 0)
+
+
+/* Parse a message and its options and optionally call a function back. */
+int dm_message_parse(const char *caller, struct dm_msg *msg, void *context,
+ int argc, char **argv);
+
+#endif
diff --git a/ubuntu/dm-raid4-5/dm-raid4-5.c b/ubuntu/dm-raid4-5/dm-raid4-5.c
new file mode 100644
index 00000000000..7f4565fa3de
--- /dev/null
+++ b/ubuntu/dm-raid4-5/dm-raid4-5.c
@@ -0,0 +1,4546 @@
+/*[A[A
+ * Copyright (C) 2005-2009 Red Hat, Inc. All rights reserved.
+ *
+ * Module Author: Heinz Mauelshagen <heinzm@redhat.com>
+ *
+ * This file is released under the GPL.
+ *
+ *
+ * Linux 2.6 Device Mapper RAID4 and RAID5 target.
+ *
+ * Supports:
+ * o RAID4 with dedicated and selectable parity device
+ * o RAID5 with rotating parity (left+right, symmetric+asymmetric)
+ * o recovery of out of sync device for initial
+ * RAID set creation or after dead drive replacement
+ * o run time optimization of xor algorithm used to calculate parity
+ *
+ *
+ * Thanks to MD for:
+ * o the raid address calculation algorithm
+ * o the base of the biovec <-> page list copier.
+ *
+ *
+ * Uses region hash to keep track of how many writes are in flight to
+ * regions in order to use dirty log to keep state of regions to recover:
+ *
+ * o clean regions (those which are synchronized
+ * and don't have write io in flight)
+ * o dirty regions (those with write io in flight)
+ *
+ *
+ * On startup, any dirty regions are migrated to the
+ * 'nosync' state and are subject to recovery by the daemon.
+ *
+ * See raid_ctr() for table definition.
+ *
+ * FIXME: recovery bandwidth
+ */
+
+static const char *version = "v0.2594b";
+
+#include "dm.h"
+#include "dm-memcache.h"
+#include "dm-message.h"
+#include "dm-raid45.h"
+
+#include <linux/kernel.h>
+#include <linux/vmalloc.h>
+#include <linux/raid/xor.h>
+
+#include <linux/bio.h>
+#include <linux/dm-io.h>
+#include <linux/dm-dirty-log.h>
+#include "dm-region-hash.h"
+
+#include <linux/slab.h>
+
+/*
+ * Configurable parameters
+ */
+
+/* Minimum/maximum and default # of selectable stripes. */
+#define STRIPES_MIN 8
+#define STRIPES_MAX 16384
+#define STRIPES_DEFAULT 80
+
+/* Maximum and default chunk size in sectors if not set in constructor. */
+#define CHUNK_SIZE_MIN 8
+#define CHUNK_SIZE_MAX 16384
+#define CHUNK_SIZE_DEFAULT 64
+
+/* Default io size in sectors if not set in constructor. */
+#define IO_SIZE_MIN CHUNK_SIZE_MIN
+#define IO_SIZE_DEFAULT IO_SIZE_MIN
+
+/* Recover io size default in sectors. */
+#define RECOVER_IO_SIZE_MIN 64
+#define RECOVER_IO_SIZE_DEFAULT 256
+
+/* Default, minimum and maximum percentage of recover io bandwidth. */
+#define BANDWIDTH_DEFAULT 10
+#define BANDWIDTH_MIN 1
+#define BANDWIDTH_MAX 100
+
+/* # of parallel recovered regions */
+#define RECOVERY_STRIPES_MIN 1
+#define RECOVERY_STRIPES_MAX 64
+#define RECOVERY_STRIPES_DEFAULT RECOVERY_STRIPES_MIN
+/*
+ * END Configurable parameters
+ */
+
+#define TARGET "dm-raid45"
+#define DAEMON "kraid45d"
+#define DM_MSG_PREFIX TARGET
+
+#define SECTORS_PER_PAGE (PAGE_SIZE >> SECTOR_SHIFT)
+
+/* Amount/size for __xor(). */
+#define XOR_SIZE PAGE_SIZE
+
+/* Check value in range. */
+#define range_ok(i, min, max) (i >= min && i <= max)
+
+/* Check argument is power of 2. */
+#define POWER_OF_2(a) (!(a & (a - 1)))
+
+/* Structure access macros. */
+/* Derive raid_set from stripe_cache pointer. */
+#define RS(x) container_of(x, struct raid_set, sc)
+
+/* Page reference. */
+#define PAGE(stripe, p) ((stripe)->obj[p].pl->page)
+
+/* Stripe chunk reference. */
+#define CHUNK(stripe, p) ((stripe)->chunk + p)
+
+/* Bio list reference. */
+#define BL(stripe, p, rw) (stripe->chunk[p].bl + rw)
+#define BL_CHUNK(chunk, rw) (chunk->bl + rw)
+
+/* Page list reference. */
+#define PL(stripe, p) (stripe->obj[p].pl)
+/* END: structure access macros. */
+
+/* Factor out to dm-bio-list.h */
+static inline void bio_list_push(struct bio_list *bl, struct bio *bio)
+{
+ bio->bi_next = bl->head;
+ bl->head = bio;
+
+ if (!bl->tail)
+ bl->tail = bio;
+}
+
+/* Factor out to dm.h */
+#define TI_ERR_RET(str, ret) \
+ do { ti->error = str; return ret; } while (0);
+#define TI_ERR(str) TI_ERR_RET(str, -EINVAL)
+
+/* Macro to define access IO flags access inline functions. */
+#define BITOPS(name, what, var, flag) \
+static inline int TestClear ## name ## what(struct var *v) \
+{ return test_and_clear_bit(flag, &v->io.flags); } \
+static inline int TestSet ## name ## what(struct var *v) \
+{ return test_and_set_bit(flag, &v->io.flags); } \
+static inline void Clear ## name ## what(struct var *v) \
+{ clear_bit(flag, &v->io.flags); } \
+static inline void Set ## name ## what(struct var *v) \
+{ set_bit(flag, &v->io.flags); } \
+static inline int name ## what(struct var *v) \
+{ return test_bit(flag, &v->io.flags); }
+
+/*-----------------------------------------------------------------
+ * Stripe cache
+ *
+ * Cache for all reads and writes to raid sets (operational or degraded)
+ *
+ * We need to run all data to and from a RAID set through this cache,
+ * because parity chunks need to get calculated from data chunks
+ * or, in the degraded/resynchronization case, missing chunks need
+ * to be reconstructed using the other chunks of the stripe.
+ *---------------------------------------------------------------*/
+/* A chunk within a stripe (holds bios hanging off). */
+/* IO status flags for chunks of a stripe. */
+enum chunk_flags {
+ CHUNK_DIRTY, /* Pages of chunk dirty; need writing. */
+ CHUNK_ERROR, /* IO error on any chunk page. */
+ CHUNK_IO, /* Allow/prohibit IO on chunk pages. */
+ CHUNK_LOCKED, /* Chunk pages locked during IO. */
+ CHUNK_MUST_IO, /* Chunk must io. */
+ CHUNK_UNLOCK, /* Enforce chunk unlock. */
+ CHUNK_UPTODATE, /* Chunk pages are uptodate. */
+};
+
+#if READ != 0 || WRITE != 1
+#error dm-raid45: READ/WRITE != 0/1 used as index!!!
+#endif
+
+enum bl_type {
+ WRITE_QUEUED = WRITE + 1,
+ WRITE_MERGED,
+ NR_BL_TYPES, /* Must be last one! */
+};
+struct stripe_chunk {
+ atomic_t cnt; /* Reference count. */
+ struct stripe *stripe; /* Backpointer to stripe for endio(). */
+ /* Bio lists for reads, writes, and writes merged. */
+ struct bio_list bl[NR_BL_TYPES];
+ struct {
+ unsigned long flags; /* IO status flags. */
+ } io;
+};
+
+/* Define chunk bit operations. */
+BITOPS(Chunk, Dirty, stripe_chunk, CHUNK_DIRTY)
+BITOPS(Chunk, Error, stripe_chunk, CHUNK_ERROR)
+BITOPS(Chunk, Io, stripe_chunk, CHUNK_IO)
+BITOPS(Chunk, Locked, stripe_chunk, CHUNK_LOCKED)
+BITOPS(Chunk, MustIo, stripe_chunk, CHUNK_MUST_IO)
+BITOPS(Chunk, Unlock, stripe_chunk, CHUNK_UNLOCK)
+BITOPS(Chunk, Uptodate, stripe_chunk, CHUNK_UPTODATE)
+
+/*
+ * Stripe linked list indexes. Keep order, because the stripe
+ * and the stripe cache rely on the first 3!
+ */
+enum list_types {
+ LIST_FLUSH, /* Stripes to flush for io. */
+ LIST_ENDIO, /* Stripes to endio. */
+ LIST_LRU, /* Least recently used stripes. */
+ SC_NR_LISTS, /* # of lists in stripe cache. */
+ LIST_HASH = SC_NR_LISTS, /* Hashed stripes. */
+ LIST_RECOVER = LIST_HASH, /* For recovery type stripes only. */
+ STRIPE_NR_LISTS,/* To size array in struct stripe. */
+};
+
+/* Adressing region recovery. */
+struct recover_addr {
+ struct dm_region *reg; /* Actual region to recover. */
+ sector_t pos; /* Position within region to recover. */
+ sector_t end; /* End of region to recover. */
+};
+
+/* A stripe: the io object to handle all reads and writes to a RAID set. */
+struct stripe {
+ atomic_t cnt; /* Reference count. */
+ struct stripe_cache *sc; /* Backpointer to stripe cache. */
+
+ /*
+ * 4 linked lists:
+ * o io list to flush io
+ * o endio list
+ * o LRU list to put stripes w/o reference count on
+ * o stripe cache hash
+ */
+ struct list_head lists[STRIPE_NR_LISTS];
+
+ sector_t key; /* Hash key. */
+ region_t region; /* Region stripe is mapped to. */
+
+ struct {
+ unsigned long flags; /* Stripe state flags (see below). */
+
+ /*
+ * Pending ios in flight:
+ *
+ * used to control move of stripe to endio list
+ */
+ atomic_t pending;
+
+ /* Sectors to read and write for multi page stripe sets. */
+ unsigned size;
+ } io;
+
+ /* Address region recovery. */
+ struct recover_addr *recover;
+
+ /* Lock on stripe (Future: for clustering). */
+ void *lock;
+
+ struct {
+ unsigned short parity; /* Parity chunk index. */
+ short recover; /* Recovery chunk index. */
+ } idx;
+
+ /*
+ * This stripe's memory cache object (dm-mem-cache);
+ * i.e. the io chunk pages.
+ */
+ struct dm_mem_cache_object *obj;
+
+ /* Array of stripe sets (dynamically allocated). */
+ struct stripe_chunk chunk[0];
+};
+
+/* States stripes can be in (flags field). */
+enum stripe_states {
+ STRIPE_ERROR, /* io error on stripe. */
+ STRIPE_MERGED, /* Writes got merged to be written. */
+ STRIPE_RBW, /* Read-before-write stripe. */
+ STRIPE_RECONSTRUCT, /* Reconstruct of a missing chunk required. */
+ STRIPE_RECONSTRUCTED, /* Reconstructed of a missing chunk. */
+ STRIPE_RECOVER, /* Stripe used for RAID set recovery. */
+};
+
+/* Define stripe bit operations. */
+BITOPS(Stripe, Error, stripe, STRIPE_ERROR)
+BITOPS(Stripe, Merged, stripe, STRIPE_MERGED)
+BITOPS(Stripe, RBW, stripe, STRIPE_RBW)
+BITOPS(Stripe, Reconstruct, stripe, STRIPE_RECONSTRUCT)
+BITOPS(Stripe, Reconstructed, stripe, STRIPE_RECONSTRUCTED)
+BITOPS(Stripe, Recover, stripe, STRIPE_RECOVER)
+
+/* A stripe hash. */
+struct stripe_hash {
+ struct list_head *hash;
+ unsigned buckets;
+ unsigned mask;
+ unsigned prime;
+ unsigned shift;
+};
+
+enum sc_lock_types {
+ LOCK_ENDIO, /* Protect endio list. */
+ LOCK_LRU, /* Protect LRU list. */
+ NR_LOCKS, /* To size array in struct stripe_cache. */
+};
+
+/* A stripe cache. */
+struct stripe_cache {
+ /* Stripe hash. */
+ struct stripe_hash hash;
+
+ spinlock_t locks[NR_LOCKS]; /* Locks to protect lists. */
+
+ /* Stripes with io to flush, stripes to endio and LRU lists. */
+ struct list_head lists[SC_NR_LISTS];
+
+ /* Slab cache to allocate stripes from. */
+ struct {
+ struct kmem_cache *cache; /* Cache itself. */
+ char name[32]; /* Unique name. */
+ } kc;
+
+ struct dm_io_client *dm_io_client; /* dm-io client resource context. */
+
+ /* dm-mem-cache client resource context. */
+ struct dm_mem_cache_client *mem_cache_client;
+
+ int stripes_parm; /* # stripes parameter from constructor. */
+ atomic_t stripes; /* actual # of stripes in cache. */
+ atomic_t stripes_to_set; /* # of stripes to resize cache to. */
+ atomic_t stripes_last; /* last # of stripes in cache. */
+ atomic_t active_stripes; /* actual # of active stripes in cache. */
+
+ /* REMOVEME: */
+ atomic_t active_stripes_max; /* actual # of active stripes in cache. */
+};
+
+/* Flag specs for raid_dev */ ;
+enum raid_dev_flags {
+ DEV_FAILED, /* Device failed. */
+ DEV_IO_QUEUED, /* Io got queued to device. */
+};
+
+/* The raid device in a set. */
+struct raid_dev {
+ struct dm_dev *dev;
+ sector_t start; /* Offset to map to. */
+ struct { /* Using struct to be able to BITOPS(). */
+ unsigned long flags; /* raid_dev_flags. */
+ } io;
+};
+
+BITOPS(Dev, Failed, raid_dev, DEV_FAILED)
+BITOPS(Dev, IoQueued, raid_dev, DEV_IO_QUEUED)
+
+/* Flags spec for raid_set. */
+enum raid_set_flags {
+ RS_CHECK_OVERWRITE, /* Check for chunk overwrites. */
+ RS_DEAD, /* RAID set inoperational. */
+ RS_DEGRADED, /* Io errors on RAID device. */
+ RS_DEVEL_STATS, /* REMOVEME: display status information. */
+ RS_RECOVER, /* Do recovery. */
+ RS_RECOVERY_BANDWIDTH, /* Allow recovery bandwidth (delayed bios). */
+ RS_SC_BUSY, /* Stripe cache busy -> send an event. */
+ RS_SUSPEND, /* Suspend RAID set. */
+};
+
+/* REMOVEME: devel stats counters. */
+enum stats_types {
+ S_BIOS_READ,
+ S_BIOS_ADDED_READ,
+ S_BIOS_ENDIO_READ,
+ S_BIOS_WRITE,
+ S_BIOS_ADDED_WRITE,
+ S_BIOS_ENDIO_WRITE,
+ S_CAN_MERGE,
+ S_CANT_MERGE,
+ S_CONGESTED,
+ S_DM_IO_READ,
+ S_DM_IO_WRITE,
+ S_BANDWIDTH,
+ S_BARRIER,
+ S_BIO_COPY_PL_NEXT,
+ S_DEGRADED,
+ S_DELAYED_BIOS,
+ S_FLUSHS,
+ S_HITS_1ST,
+ S_IOS_POST,
+ S_INSCACHE,
+ S_MAX_LOOKUP,
+ S_CHUNK_LOCKED,
+ S_NO_BANDWIDTH,
+ S_NOT_CONGESTED,
+ S_NO_RW,
+ S_NOSYNC,
+ S_OVERWRITE,
+ S_PROHIBITCHUNKIO,
+ S_RECONSTRUCT_EI,
+ S_RECONSTRUCT_DEV,
+ S_RECONSTRUCT_SET,
+ S_RECONSTRUCTED,
+ S_REQUEUE,
+ S_STRIPE_ERROR,
+ S_SUM_DELAYED_BIOS,
+ S_XORS,
+ S_NR_STATS, /* # of stats counters. Must be last! */
+};
+
+/* Status type -> string mappings. */
+struct stats_map {
+ const enum stats_types type;
+ const char *str;
+};
+
+static struct stats_map stats_map[] = {
+ { S_BIOS_READ, "r=" },
+ { S_BIOS_ADDED_READ, "/" },
+ { S_BIOS_ENDIO_READ, "/" },
+ { S_BIOS_WRITE, " w=" },
+ { S_BIOS_ADDED_WRITE, "/" },
+ { S_BIOS_ENDIO_WRITE, "/" },
+ { S_DM_IO_READ, " rc=" },
+ { S_DM_IO_WRITE, " wc=" },
+ { S_BANDWIDTH, "\nbw=" },
+ { S_NO_BANDWIDTH, " no_bw=" },
+ { S_BARRIER, "\nbarrier=" },
+ { S_BIO_COPY_PL_NEXT, "\nbio_cp_next=" },
+ { S_CAN_MERGE, "\nmerge=" },
+ { S_CANT_MERGE, "/no_merge=" },
+ { S_CHUNK_LOCKED, "\nchunk_locked=" },
+ { S_CONGESTED, "\ncgst=" },
+ { S_NOT_CONGESTED, "/not_cgst=" },
+ { S_DEGRADED, "\ndegraded=" },
+ { S_DELAYED_BIOS, "\ndel_bios=" },
+ { S_SUM_DELAYED_BIOS, "/sum_del_bios=" },
+ { S_FLUSHS, "\nflushs=" },
+ { S_HITS_1ST, "\nhits_1st=" },
+ { S_IOS_POST, " ios_post=" },
+ { S_INSCACHE, " inscache=" },
+ { S_MAX_LOOKUP, " maxlookup=" },
+ { S_NO_RW, "\nno_rw=" },
+ { S_NOSYNC, " nosync=" },
+ { S_OVERWRITE, " ovr=" },
+ { S_PROHIBITCHUNKIO, " prhbt_io=" },
+ { S_RECONSTRUCT_EI, "\nrec_ei=" },
+ { S_RECONSTRUCT_DEV, " rec_dev=" },
+ { S_RECONSTRUCT_SET, " rec_set=" },
+ { S_RECONSTRUCTED, " rec=" },
+ { S_REQUEUE, " requeue=" },
+ { S_STRIPE_ERROR, " stripe_err=" },
+ { S_XORS, " xors=" },
+};
+
+/*
+ * A RAID set.
+ */
+#define dm_rh_client dm_region_hash
+enum count_type { IO_WORK = 0, IO_RECOVER, IO_NR_COUNT };
+typedef void (*xor_function_t)(unsigned count, unsigned long **data);
+struct raid_set {
+ struct dm_target *ti; /* Target pointer. */
+
+ struct {
+ unsigned long flags; /* State flags. */
+ struct mutex in_lock; /* Protects central input list below. */
+ struct bio_list in; /* Pending ios (central input list). */
+ struct bio_list work; /* ios work set. */
+ wait_queue_head_t suspendq; /* suspend synchronization. */
+ atomic_t in_process; /* counter of queued bios (suspendq). */
+ atomic_t in_process_max;/* counter of queued bios max. */
+
+ /* io work. */
+ struct workqueue_struct *wq;
+ struct delayed_work dws_do_raid; /* For main worker. */
+ struct work_struct ws_do_table_event; /* For event worker. */
+ } io;
+
+ /* Stripe locking abstraction. */
+ struct dm_raid45_locking_type *locking;
+
+ struct stripe_cache sc; /* Stripe cache for this set. */
+
+ /* Xor optimization. */
+ struct {
+ struct xor_func *f;
+ unsigned chunks;
+ unsigned speed;
+ } xor;
+
+ /* Recovery parameters. */
+ struct recover {
+ struct dm_dirty_log *dl; /* Dirty log. */
+ struct dm_rh_client *rh; /* Region hash. */
+
+ struct dm_io_client *dm_io_client; /* recovery dm-io client. */
+ /* dm-mem-cache client resource context for recovery stripes. */
+ struct dm_mem_cache_client *mem_cache_client;
+
+ struct list_head stripes; /* List of recovery stripes. */
+
+ region_t nr_regions;
+ region_t nr_regions_to_recover;
+ region_t nr_regions_recovered;
+ unsigned long start_jiffies;
+ unsigned long end_jiffies;
+
+ unsigned bandwidth; /* Recovery bandwidth [%]. */
+ unsigned bandwidth_work; /* Recovery bandwidth [factor]. */
+ unsigned bandwidth_parm; /* " constructor parm. */
+ unsigned io_size; /* recovery io size <= region size. */
+ unsigned io_size_parm; /* recovery io size ctr parameter. */
+ unsigned recovery; /* Recovery allowed/prohibited. */
+ unsigned recovery_stripes; /* # of parallel recovery stripes. */
+
+ /* recovery io throttling. */
+ atomic_t io_count[IO_NR_COUNT]; /* counter recover/regular io.*/
+ unsigned long last_jiffies;
+ } recover;
+
+ /* RAID set parameters. */
+ struct {
+ struct raid_type *raid_type; /* RAID type (eg, RAID4). */
+ unsigned raid_parms; /* # variable raid parameters. */
+
+ unsigned chunk_size; /* Sectors per chunk. */
+ unsigned chunk_size_parm;
+ unsigned chunk_shift; /* rsector chunk size shift. */
+
+ unsigned io_size; /* Sectors per io. */
+ unsigned io_size_parm;
+ unsigned io_mask; /* Mask for bio_copy_page_list(). */
+ unsigned io_inv_mask; /* Mask for raid_address(). */
+
+ sector_t sectors_per_dev; /* Sectors per device. */
+
+ atomic_t failed_devs; /* Amount of devices failed. */
+
+ /* Index of device to initialize. */
+ int dev_to_init;
+ int dev_to_init_parm;
+
+ /* Raid devices dynamically allocated. */
+ unsigned raid_devs; /* # of RAID devices below. */
+ unsigned data_devs; /* # of RAID data devices. */
+
+ int ei; /* index of failed RAID device. */
+
+ /* Index of dedicated parity device (i.e. RAID4). */
+ int pi;
+ int pi_parm; /* constructor parm for status output. */
+ } set;
+
+ /* REMOVEME: devel stats counters. */
+ atomic_t stats[S_NR_STATS];
+
+ /* Dynamically allocated temporary pointers for xor(). */
+ unsigned long **data;
+
+ /* Dynamically allocated RAID devices. Alignment? */
+ struct raid_dev dev[0];
+};
+
+/* Define RAID set bit operations. */
+BITOPS(RS, Bandwidth, raid_set, RS_RECOVERY_BANDWIDTH)
+BITOPS(RS, CheckOverwrite, raid_set, RS_CHECK_OVERWRITE)
+BITOPS(RS, Dead, raid_set, RS_DEAD)
+BITOPS(RS, Degraded, raid_set, RS_DEGRADED)
+BITOPS(RS, DevelStats, raid_set, RS_DEVEL_STATS)
+BITOPS(RS, Recover, raid_set, RS_RECOVER)
+BITOPS(RS, ScBusy, raid_set, RS_SC_BUSY)
+BITOPS(RS, Suspend, raid_set, RS_SUSPEND)
+#undef BITOPS
+
+/*-----------------------------------------------------------------
+ * Raid-4/5 set structures.
+ *---------------------------------------------------------------*/
+/* RAID level definitions. */
+enum raid_level {
+ raid4,
+ raid5,
+};
+
+/* Symmetric/Asymmetric, Left/Right parity rotating algorithms. */
+enum raid_algorithm {
+ none,
+ left_asym,
+ right_asym,
+ left_sym,
+ right_sym,
+};
+
+struct raid_type {
+ const char *name; /* RAID algorithm. */
+ const char *descr; /* Descriptor text for logging. */
+ const unsigned parity_devs; /* # of parity devices. */
+ const unsigned minimal_devs; /* minimal # of devices in set. */
+ const enum raid_level level; /* RAID level. */
+ const enum raid_algorithm algorithm; /* RAID algorithm. */
+};
+
+/* Supported raid types and properties. */
+static struct raid_type raid_types[] = {
+ {"raid4", "RAID4 (dedicated parity disk)", 1, 3, raid4, none},
+ {"raid5_la", "RAID5 (left asymmetric)", 1, 3, raid5, left_asym},
+ {"raid5_ra", "RAID5 (right asymmetric)", 1, 3, raid5, right_asym},
+ {"raid5_ls", "RAID5 (left symmetric)", 1, 3, raid5, left_sym},
+ {"raid5_rs", "RAID5 (right symmetric)", 1, 3, raid5, right_sym},
+};
+
+/* Address as calculated by raid_address(). */
+struct raid_address {
+ sector_t key; /* Hash key (address of stripe % chunk_size). */
+ unsigned di, pi; /* Data and parity disks index. */
+};
+
+/* REMOVEME: reset statistics counters. */
+static void stats_reset(struct raid_set *rs)
+{
+ unsigned s = S_NR_STATS;
+
+ while (s--)
+ atomic_set(rs->stats + s, 0);
+}
+
+/*----------------------------------------------------------------
+ * RAID set management routines.
+ *--------------------------------------------------------------*/
+/*
+ * Begin small helper functions.
+ */
+/* No need to be called from region hash indirectly at dm_rh_dec(). */
+static void wake_dummy(void *context) {}
+
+/* Return # of io reference. */
+static int io_ref(struct raid_set *rs)
+{
+ return atomic_read(&rs->io.in_process);
+}
+
+/* Get an io reference. */
+static void io_get(struct raid_set *rs)
+{
+ int p = atomic_inc_return(&rs->io.in_process);
+
+ if (p > atomic_read(&rs->io.in_process_max))
+ atomic_set(&rs->io.in_process_max, p); /* REMOVEME: max. */
+}
+
+/* Put the io reference and conditionally wake io waiters. */
+static void io_put(struct raid_set *rs)
+{
+ /* Intel: rebuild data corrupter? */
+ if (atomic_dec_and_test(&rs->io.in_process))
+ wake_up(&rs->io.suspendq);
+ else
+ BUG_ON(io_ref(rs) < 0);
+}
+
+/* Wait until all io has been processed. */
+static void wait_ios(struct raid_set *rs)
+{
+ wait_event(rs->io.suspendq, !io_ref(rs));
+}
+
+/* Queue (optionally delayed) io work. */
+static void wake_do_raid_delayed(struct raid_set *rs, unsigned long delay)
+{
+ queue_delayed_work(rs->io.wq, &rs->io.dws_do_raid, delay);
+}
+
+/* Queue io work immediately (called from region hash too). */
+static void wake_do_raid(void *context)
+{
+ struct raid_set *rs = context;
+
+ queue_work(rs->io.wq, &rs->io.dws_do_raid.work);
+}
+
+/* Calculate device sector offset. */
+static sector_t _sector(struct raid_set *rs, struct bio *bio)
+{
+ sector_t sector = bio->bi_sector;
+
+ sector_div(sector, rs->set.data_devs);
+ return sector;
+}
+
+/* Return # of active stripes in stripe cache. */
+static int sc_active(struct stripe_cache *sc)
+{
+ return atomic_read(&sc->active_stripes);
+}
+
+/* Stripe cache busy indicator. */
+static int sc_busy(struct raid_set *rs)
+{
+ return sc_active(&rs->sc) >
+ atomic_read(&rs->sc.stripes) - (STRIPES_MIN / 2);
+}
+
+/* Set chunks states. */
+enum chunk_dirty_type { CLEAN, DIRTY, ERROR };
+static void chunk_set(struct stripe_chunk *chunk, enum chunk_dirty_type type)
+{
+ switch (type) {
+ case CLEAN:
+ ClearChunkDirty(chunk);
+ break;
+ case DIRTY:
+ SetChunkDirty(chunk);
+ break;
+ case ERROR:
+ SetChunkError(chunk);
+ SetStripeError(chunk->stripe);
+ return;
+ default:
+ BUG();
+ }
+
+ SetChunkUptodate(chunk);
+ SetChunkIo(chunk);
+ ClearChunkError(chunk);
+}
+
+/* Return region state for a sector. */
+static int region_state(struct raid_set *rs, sector_t sector,
+ enum dm_rh_region_states state)
+{
+ struct dm_rh_client *rh = rs->recover.rh;
+ region_t region = dm_rh_sector_to_region(rh, sector);
+
+ return !!(dm_rh_get_state(rh, region, 1) & state);
+}
+
+/*
+ * Return true in case a chunk should be read/written
+ *
+ * Conditions to read/write:
+ * o chunk not uptodate
+ * o chunk dirty
+ *
+ * Conditios to avoid io:
+ * o io already ongoing on chunk
+ * o io explitely prohibited
+ */
+static int chunk_io(struct stripe_chunk *chunk)
+{
+ /* 2nd run optimization (flag set below on first run). */
+ if (TestClearChunkMustIo(chunk))
+ return 1;
+
+ /* Avoid io if prohibited or a locked chunk. */
+ if (!ChunkIo(chunk) || ChunkLocked(chunk))
+ return 0;
+
+ if (!ChunkUptodate(chunk) || ChunkDirty(chunk)) {
+ SetChunkMustIo(chunk); /* 2nd run optimization. */
+ return 1;
+ }
+
+ return 0;
+}
+
+/* Call a function on each chunk needing io unless device failed. */
+static unsigned for_each_io_dev(struct stripe *stripe,
+ void (*f_io)(struct stripe *stripe, unsigned p))
+{
+ struct raid_set *rs = RS(stripe->sc);
+ unsigned p, r = 0;
+
+ for (p = 0; p < rs->set.raid_devs; p++) {
+ if (chunk_io(CHUNK(stripe, p)) && !DevFailed(rs->dev + p)) {
+ f_io(stripe, p);
+ r++;
+ }
+ }
+
+ return r;
+}
+
+/*
+ * Index of device to calculate parity on.
+ *
+ * Either the parity device index *or* the selected
+ * device to init after a spare replacement.
+ */
+static int dev_for_parity(struct stripe *stripe, int *sync)
+{
+ struct raid_set *rs = RS(stripe->sc);
+ int r = region_state(rs, stripe->key, DM_RH_NOSYNC | DM_RH_RECOVERING);
+
+ *sync = !r;
+
+ /* Reconstruct a particular device ?. */
+ if (r && rs->set.dev_to_init > -1)
+ return rs->set.dev_to_init;
+ else if (rs->set.raid_type->level == raid4)
+ return rs->set.pi;
+ else if (!StripeRecover(stripe))
+ return stripe->idx.parity;
+ else
+ return -1;
+}
+
+/* RAID set congested function. */
+static int rs_congested(void *congested_data, int bdi_bits)
+{
+ int r;
+ unsigned p;
+ struct raid_set *rs = congested_data;
+
+ if (sc_busy(rs) || RSSuspend(rs))
+ r = 1;
+ else for (r = 0, p = rs->set.raid_devs; !r && p--; ) {
+ /* If any of our component devices are overloaded. */
+ struct request_queue *q = bdev_get_queue(rs->dev[p].dev->bdev);
+
+ r |= bdi_congested(&q->backing_dev_info, bdi_bits);
+ }
+
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + (r ? S_CONGESTED : S_NOT_CONGESTED));
+ return r;
+}
+
+/* RAID device degrade check. */
+static void rs_check_degrade_dev(struct raid_set *rs,
+ struct stripe *stripe, unsigned p)
+{
+ if (TestSetDevFailed(rs->dev + p))
+ return;
+
+ /* Through an event in case of member device errors. */
+ if (atomic_inc_return(&rs->set.failed_devs) >
+ rs->set.raid_type->parity_devs &&
+ !TestSetRSDead(rs)) {
+ /* Display RAID set dead message once. */
+ unsigned p;
+ char buf[BDEVNAME_SIZE];
+
+ DMERR("FATAL: too many devices failed -> RAID set broken");
+ for (p = 0; p < rs->set.raid_devs; p++) {
+ if (DevFailed(rs->dev + p))
+ DMERR("device /dev/%s failed",
+ bdevname(rs->dev[p].dev->bdev, buf));
+ }
+ }
+
+ /* Only log the first member error. */
+ if (!TestSetRSDegraded(rs)) {
+ char buf[BDEVNAME_SIZE];
+
+ /* Store index for recovery. */
+ rs->set.ei = p;
+ DMERR("CRITICAL: %sio error on device /dev/%s "
+ "in region=%llu; DEGRADING RAID set\n",
+ stripe ? "" : "FAKED ",
+ bdevname(rs->dev[p].dev->bdev, buf),
+ (unsigned long long) (stripe ? stripe->key : 0));
+ DMERR("further device error messages suppressed");
+ }
+
+ schedule_work(&rs->io.ws_do_table_event);
+}
+
+/* RAID set degrade check. */
+static void rs_check_degrade(struct stripe *stripe)
+{
+ struct raid_set *rs = RS(stripe->sc);
+ unsigned p = rs->set.raid_devs;
+
+ while (p--) {
+ if (ChunkError(CHUNK(stripe, p)))
+ rs_check_degrade_dev(rs, stripe, p);
+ }
+}
+
+/* Lookup a RAID device by name or by major:minor number. */
+static int raid_dev_lookup(struct raid_set *rs, struct raid_dev *dev_lookup)
+{
+ unsigned p;
+ struct raid_dev *dev;
+
+ /*
+ * Must be an incremental loop, because the device array
+ * can have empty slots still on calls from raid_ctr()
+ */
+ for (dev = rs->dev, p = 0;
+ dev->dev && p < rs->set.raid_devs;
+ dev++, p++) {
+ if (dev_lookup->dev->bdev->bd_dev == dev->dev->bdev->bd_dev)
+ return p;
+ }
+
+ return -ENODEV;
+}
+/*
+ * End small helper functions.
+ */
+
+/*
+ * Stripe hash functions
+ */
+/* Initialize/destroy stripe hash. */
+static int hash_init(struct stripe_hash *hash, unsigned stripes)
+{
+ unsigned buckets = 2, max_buckets = stripes >> 1;
+ static unsigned hash_primes[] = {
+ /* Table of primes for hash_fn/table size optimization. */
+ 1, 2, 3, 7, 13, 27, 53, 97, 193, 389, 769,
+ 1543, 3079, 6151, 12289, 24593, 49157, 98317,
+ };
+
+ /* Calculate number of buckets (2^^n <= stripes / 2). */
+ while (buckets < max_buckets)
+ buckets <<= 1;
+
+ /* Allocate stripe hash buckets. */
+ hash->hash = vmalloc(buckets * sizeof(*hash->hash));
+ if (!hash->hash)
+ return -ENOMEM;
+
+ hash->buckets = buckets;
+ hash->mask = buckets - 1;
+ hash->shift = ffs(buckets);
+ if (hash->shift > ARRAY_SIZE(hash_primes))
+ hash->shift = ARRAY_SIZE(hash_primes) - 1;
+
+ BUG_ON(hash->shift < 2);
+ hash->prime = hash_primes[hash->shift];
+
+ /* Initialize buckets. */
+ while (buckets--)
+ INIT_LIST_HEAD(hash->hash + buckets);
+ return 0;
+}
+
+static void hash_exit(struct stripe_hash *hash)
+{
+ if (hash->hash) {
+ vfree(hash->hash);
+ hash->hash = NULL;
+ }
+}
+
+static unsigned hash_fn(struct stripe_hash *hash, sector_t key)
+{
+ return (unsigned) (((key * hash->prime) >> hash->shift) & hash->mask);
+}
+
+static struct list_head *hash_bucket(struct stripe_hash *hash, sector_t key)
+{
+ return hash->hash + hash_fn(hash, key);
+}
+
+/* Insert an entry into a hash. */
+static void stripe_insert(struct stripe_hash *hash, struct stripe *stripe)
+{
+ list_add(stripe->lists + LIST_HASH, hash_bucket(hash, stripe->key));
+}
+
+/* Lookup an entry in the stripe hash. */
+static struct stripe *stripe_lookup(struct stripe_cache *sc, sector_t key)
+{
+ unsigned look = 0;
+ struct stripe *stripe;
+ struct list_head *bucket = hash_bucket(&sc->hash, key);
+
+ list_for_each_entry(stripe, bucket, lists[LIST_HASH]) {
+ look++;
+
+ if (stripe->key == key) {
+ /* REMOVEME: statisics. */
+ if (look > atomic_read(RS(sc)->stats + S_MAX_LOOKUP))
+ atomic_set(RS(sc)->stats + S_MAX_LOOKUP, look);
+ return stripe;
+ }
+ }
+
+ return NULL;
+}
+
+/* Resize the stripe cache hash on size changes. */
+static int sc_hash_resize(struct stripe_cache *sc)
+{
+ /* Resize indicated ? */
+ if (atomic_read(&sc->stripes) != atomic_read(&sc->stripes_last)) {
+ int r;
+ struct stripe_hash hash;
+
+ r = hash_init(&hash, atomic_read(&sc->stripes));
+ if (r)
+ return r;
+
+ if (sc->hash.hash) {
+ unsigned b = sc->hash.buckets;
+ struct list_head *pos, *tmp;
+
+ /* Walk old buckets and insert into new. */
+ while (b--) {
+ list_for_each_safe(pos, tmp, sc->hash.hash + b)
+ stripe_insert(&hash,
+ list_entry(pos, struct stripe,
+ lists[LIST_HASH]));
+ }
+
+ }
+
+ hash_exit(&sc->hash);
+ memcpy(&sc->hash, &hash, sizeof(sc->hash));
+ atomic_set(&sc->stripes_last, atomic_read(&sc->stripes));
+ }
+
+ return 0;
+}
+/* End hash stripe hash function. */
+
+/* List add, delete, push and pop functions. */
+/* Add stripe to flush list. */
+#define DEL_LIST(lh) \
+ if (!list_empty(lh)) \
+ list_del_init(lh);
+
+/* Delete stripe from hash. */
+static void stripe_hash_del(struct stripe *stripe)
+{
+ DEL_LIST(stripe->lists + LIST_HASH);
+}
+
+/* Return stripe reference count. */
+static inline int stripe_ref(struct stripe *stripe)
+{
+ return atomic_read(&stripe->cnt);
+}
+
+static void stripe_flush_add(struct stripe *stripe)
+{
+ struct stripe_cache *sc = stripe->sc;
+ struct list_head *lh = stripe->lists + LIST_FLUSH;
+
+ if (!StripeReconstruct(stripe) && list_empty(lh))
+ list_add_tail(lh, sc->lists + LIST_FLUSH);
+}
+
+/*
+ * Add stripe to LRU (inactive) list.
+ *
+ * Need lock, because of concurrent access from message interface.
+ */
+static void stripe_lru_add(struct stripe *stripe)
+{
+ if (!StripeRecover(stripe)) {
+ unsigned long flags;
+ struct list_head *lh = stripe->lists + LIST_LRU;
+ spinlock_t *lock = stripe->sc->locks + LOCK_LRU;
+
+ spin_lock_irqsave(lock, flags);
+ if (list_empty(lh))
+ list_add_tail(lh, stripe->sc->lists + LIST_LRU);
+ spin_unlock_irqrestore(lock, flags);
+ }
+}
+
+#define POP_LIST(list) \
+ do { \
+ if (list_empty(sc->lists + (list))) \
+ stripe = NULL; \
+ else { \
+ stripe = list_first_entry(sc->lists + (list), \
+ struct stripe, \
+ lists[(list)]); \
+ list_del_init(stripe->lists + (list)); \
+ } \
+ } while (0);
+
+/* Pop an available stripe off the LRU list. */
+static struct stripe *stripe_lru_pop(struct stripe_cache *sc)
+{
+ struct stripe *stripe;
+ spinlock_t *lock = sc->locks + LOCK_LRU;
+
+ spin_lock_irq(lock);
+ POP_LIST(LIST_LRU);
+ spin_unlock_irq(lock);
+
+ return stripe;
+}
+
+/* Pop an available stripe off the io list. */
+static struct stripe *stripe_io_pop(struct stripe_cache *sc)
+{
+ struct stripe *stripe;
+
+ POP_LIST(LIST_FLUSH);
+ return stripe;
+}
+
+/* Push a stripe safely onto the endio list to be handled by do_endios(). */
+static void stripe_endio_push(struct stripe *stripe)
+{
+ unsigned long flags;
+ struct stripe_cache *sc = stripe->sc;
+ struct list_head *stripe_list = stripe->lists + LIST_ENDIO,
+ *sc_list = sc->lists + LIST_ENDIO;
+ spinlock_t *lock = sc->locks + LOCK_ENDIO;
+
+ /* This runs in parallel with do_endios(). */
+ spin_lock_irqsave(lock, flags);
+ if (list_empty(stripe_list))
+ list_add_tail(stripe_list, sc_list);
+ spin_unlock_irqrestore(lock, flags);
+
+ wake_do_raid(RS(sc)); /* Wake myself. */
+}
+
+/* Pop a stripe off safely off the endio list. */
+static struct stripe *stripe_endio_pop(struct stripe_cache *sc)
+{
+ struct stripe *stripe;
+ spinlock_t *lock = sc->locks + LOCK_ENDIO;
+
+ /* This runs in parallel with endio(). */
+ spin_lock_irq(lock);
+ POP_LIST(LIST_ENDIO)
+ spin_unlock_irq(lock);
+ return stripe;
+}
+#undef POP_LIST
+
+/*
+ * Stripe cache locking functions
+ */
+/* Dummy lock function for single host RAID4+5. */
+static void *no_lock(sector_t key, enum dm_lock_type type)
+{
+ return &no_lock;
+}
+
+/* Dummy unlock function for single host RAID4+5. */
+static void no_unlock(void *lock_handle)
+{
+}
+
+/* No locking (for single host RAID 4+5). */
+static struct dm_raid45_locking_type locking_none = {
+ .lock = no_lock,
+ .unlock = no_unlock,
+};
+
+/* Lock a stripe (for clustering). */
+static int
+stripe_lock(struct stripe *stripe, int rw, sector_t key)
+{
+ stripe->lock = RS(stripe->sc)->locking->lock(key, rw == READ ? DM_RAID45_SHARED : DM_RAID45_EX);
+ return stripe->lock ? 0 : -EPERM;
+}
+
+/* Unlock a stripe (for clustering). */
+static void stripe_unlock(struct stripe *stripe)
+{
+ RS(stripe->sc)->locking->unlock(stripe->lock);
+ stripe->lock = NULL;
+}
+
+/* Test io pending on stripe. */
+static int stripe_io_ref(struct stripe *stripe)
+{
+ return atomic_read(&stripe->io.pending);
+}
+
+static void stripe_io_get(struct stripe *stripe)
+{
+ if (atomic_inc_return(&stripe->io.pending) == 1)
+ /* REMOVEME: statistics */
+ atomic_inc(&stripe->sc->active_stripes);
+ else
+ BUG_ON(stripe_io_ref(stripe) < 0);
+}
+
+static void stripe_io_put(struct stripe *stripe)
+{
+ if (atomic_dec_and_test(&stripe->io.pending)) {
+ if (unlikely(StripeRecover(stripe)))
+ /* Don't put recovery stripe on endio list. */
+ wake_do_raid(RS(stripe->sc));
+ else
+ /* Add regular stripe to endio list and wake daemon. */
+ stripe_endio_push(stripe);
+
+ /* REMOVEME: statistics */
+ atomic_dec(&stripe->sc->active_stripes);
+ } else
+ BUG_ON(stripe_io_ref(stripe) < 0);
+}
+
+/* Take stripe reference out. */
+static int stripe_get(struct stripe *stripe)
+{
+ int r;
+ struct list_head *lh = stripe->lists + LIST_LRU;
+ spinlock_t *lock = stripe->sc->locks + LOCK_LRU;
+
+ /* Delete stripe from LRU (inactive) list if on. */
+ spin_lock_irq(lock);
+ DEL_LIST(lh);
+ spin_unlock_irq(lock);
+
+ BUG_ON(stripe_ref(stripe) < 0);
+
+ /* Lock stripe on first reference */
+ r = (atomic_inc_return(&stripe->cnt) == 1) ?
+ stripe_lock(stripe, WRITE, stripe->key) : 0;
+
+ return r;
+}
+#undef DEL_LIST
+
+/* Return references on a chunk. */
+static int chunk_ref(struct stripe_chunk *chunk)
+{
+ return atomic_read(&chunk->cnt);
+}
+
+/* Take out reference on a chunk. */
+static int chunk_get(struct stripe_chunk *chunk)
+{
+ return atomic_inc_return(&chunk->cnt);
+}
+
+/* Drop reference on a chunk. */
+static void chunk_put(struct stripe_chunk *chunk)
+{
+ BUG_ON(atomic_dec_return(&chunk->cnt) < 0);
+}
+
+/*
+ * Drop reference on a stripe.
+ *
+ * Move it to list of LRU stripes if zero.
+ */
+static void stripe_put(struct stripe *stripe)
+{
+ if (atomic_dec_and_test(&stripe->cnt)) {
+ BUG_ON(stripe_io_ref(stripe));
+ stripe_unlock(stripe);
+ } else
+ BUG_ON(stripe_ref(stripe) < 0);
+}
+
+/* Helper needed by for_each_io_dev(). */
+static void stripe_get_references(struct stripe *stripe, unsigned p)
+{
+
+ /*
+ * Another one to reference the stripe in
+ * order to protect vs. LRU list moves.
+ */
+ io_get(RS(stripe->sc)); /* Global io references. */
+ stripe_get(stripe);
+ stripe_io_get(stripe); /* One for each chunk io. */
+}
+
+/* Helper for endio() to put all take references. */
+static void stripe_put_references(struct stripe *stripe)
+{
+ stripe_io_put(stripe); /* One for each chunk io. */
+ stripe_put(stripe);
+ io_put(RS(stripe->sc));
+}
+
+/*
+ * Stripe cache functions.
+ */
+/*
+ * Invalidate all chunks (i.e. their pages) of a stripe.
+ *
+ * I only keep state for the whole chunk.
+ */
+static inline void stripe_chunk_invalidate(struct stripe_chunk *chunk)
+{
+ chunk->io.flags = 0;
+}
+
+static void
+stripe_chunks_invalidate(struct stripe *stripe)
+{
+ unsigned p = RS(stripe->sc)->set.raid_devs;
+
+ while (p--)
+ stripe_chunk_invalidate(CHUNK(stripe, p));
+}
+
+/* Prepare stripe for (re)use. */
+static void stripe_invalidate(struct stripe *stripe)
+{
+ stripe->io.flags = 0;
+ stripe->idx.parity = stripe->idx.recover = -1;
+ stripe_chunks_invalidate(stripe);
+}
+
+/*
+ * Allow io on all chunks of a stripe.
+ * If not set, IO will not occur; i.e. it's prohibited.
+ *
+ * Actual IO submission for allowed chunks depends
+ * on their !uptodate or dirty state.
+ */
+static void stripe_allow_io(struct stripe *stripe)
+{
+ unsigned p = RS(stripe->sc)->set.raid_devs;
+
+ while (p--)
+ SetChunkIo(CHUNK(stripe, p));
+}
+
+/* Initialize a stripe. */
+static void stripe_init(struct stripe_cache *sc, struct stripe *stripe)
+{
+ unsigned i, p = RS(sc)->set.raid_devs;
+
+ /* Work all io chunks. */
+ while (p--) {
+ struct stripe_chunk *chunk = CHUNK(stripe, p);
+
+ atomic_set(&chunk->cnt, 0);
+ chunk->stripe = stripe;
+ i = ARRAY_SIZE(chunk->bl);
+ while (i--)
+ bio_list_init(chunk->bl + i);
+ }
+
+ stripe->sc = sc;
+
+
+ i = ARRAY_SIZE(stripe->lists);
+ while (i--)
+ INIT_LIST_HEAD(stripe->lists + i);
+
+ stripe->io.size = RS(sc)->set.io_size;
+ atomic_set(&stripe->cnt, 0);
+ atomic_set(&stripe->io.pending, 0);
+ stripe_invalidate(stripe);
+}
+
+/* Number of pages per chunk. */
+static inline unsigned chunk_pages(unsigned sectors)
+{
+ return dm_div_up(sectors, SECTORS_PER_PAGE);
+}
+
+/* Number of pages per stripe. */
+static inline unsigned stripe_pages(struct raid_set *rs, unsigned io_size)
+{
+ return chunk_pages(io_size) * rs->set.raid_devs;
+}
+
+/* Initialize part of page_list (recovery). */
+static void stripe_zero_pl_part(struct stripe *stripe, int p,
+ unsigned start, unsigned count)
+{
+ unsigned o = start / SECTORS_PER_PAGE, pages = chunk_pages(count);
+ /* Get offset into the page_list. */
+ struct page_list *pl = pl_elem(PL(stripe, p), o);
+
+ BUG_ON(!pl);
+ while (pl && pages--) {
+ BUG_ON(!pl->page);
+ memset(page_address(pl->page), 0, PAGE_SIZE);
+ pl = pl->next;
+ }
+}
+
+/* Initialize parity chunk of stripe. */
+static void stripe_zero_chunk(struct stripe *stripe, int p)
+{
+ if (p > -1)
+ stripe_zero_pl_part(stripe, p, 0, stripe->io.size);
+}
+
+/* Return dynamic stripe structure size. */
+static size_t stripe_size(struct raid_set *rs)
+{
+ return sizeof(struct stripe) +
+ rs->set.raid_devs * sizeof(struct stripe_chunk);
+}
+
+/* Allocate a stripe and its memory object. */
+/* XXX adjust to cope with stripe cache and recovery stripe caches. */
+enum grow { SC_GROW, SC_KEEP };
+static struct stripe *stripe_alloc(struct stripe_cache *sc,
+ struct dm_mem_cache_client *mc,
+ enum grow grow)
+{
+ int r;
+ struct stripe *stripe;
+
+ stripe = kmem_cache_zalloc(sc->kc.cache, GFP_KERNEL);
+ if (stripe) {
+ /* Grow the dm-mem-cache by one object. */
+ if (grow == SC_GROW) {
+ r = dm_mem_cache_grow(mc, 1);
+ if (r)
+ goto err_free;
+ }
+
+ stripe->obj = dm_mem_cache_alloc(mc);
+ if (!stripe->obj)
+ goto err_shrink;
+
+ stripe_init(sc, stripe);
+ }
+
+ return stripe;
+
+err_shrink:
+ if (grow == SC_GROW)
+ dm_mem_cache_shrink(mc, 1);
+err_free:
+ kmem_cache_free(sc->kc.cache, stripe);
+ return NULL;
+}
+
+/*
+ * Free a stripes memory object, shrink the
+ * memory cache and free the stripe itself.
+ */
+static void stripe_free(struct stripe *stripe, struct dm_mem_cache_client *mc)
+{
+ dm_mem_cache_free(mc, stripe->obj);
+ dm_mem_cache_shrink(mc, 1);
+ kmem_cache_free(stripe->sc->kc.cache, stripe);
+}
+
+/* Free the recovery stripe. */
+static void stripe_recover_free(struct raid_set *rs)
+{
+ struct recover *rec = &rs->recover;
+ struct dm_mem_cache_client *mc;
+
+ mc = rec->mem_cache_client;
+ rec->mem_cache_client = NULL;
+ if (mc) {
+ struct stripe *stripe;
+
+ while (!list_empty(&rec->stripes)) {
+ stripe = list_first_entry(&rec->stripes, struct stripe,
+ lists[LIST_RECOVER]);
+ list_del(stripe->lists + LIST_RECOVER);
+ kfree(stripe->recover);
+ stripe_free(stripe, mc);
+ }
+
+ dm_mem_cache_client_destroy(mc);
+ dm_io_client_destroy(rec->dm_io_client);
+ rec->dm_io_client = NULL;
+ }
+}
+
+/* Grow stripe cache. */
+static int sc_grow(struct stripe_cache *sc, unsigned stripes, enum grow grow)
+{
+ int r = 0;
+
+ /* Try to allocate this many (additional) stripes. */
+ while (stripes--) {
+ struct stripe *stripe =
+ stripe_alloc(sc, sc->mem_cache_client, grow);
+
+ if (likely(stripe)) {
+ stripe_lru_add(stripe);
+ atomic_inc(&sc->stripes);
+ } else {
+ r = -ENOMEM;
+ break;
+ }
+ }
+
+ return r ? r : sc_hash_resize(sc);
+}
+
+/* Shrink stripe cache. */
+static int sc_shrink(struct stripe_cache *sc, unsigned stripes)
+{
+ int r = 0;
+
+ /* Try to get unused stripe from LRU list. */
+ while (stripes--) {
+ struct stripe *stripe;
+
+ stripe = stripe_lru_pop(sc);
+ if (stripe) {
+ /* An LRU stripe may never have ios pending! */
+ BUG_ON(stripe_io_ref(stripe));
+ BUG_ON(stripe_ref(stripe));
+ atomic_dec(&sc->stripes);
+ /* Remove from hash if on before deletion. */
+ stripe_hash_del(stripe);
+ stripe_free(stripe, sc->mem_cache_client);
+ } else {
+ r = -ENOENT;
+ break;
+ }
+ }
+
+ /* Check if stats are still sane. */
+ if (atomic_read(&sc->active_stripes_max) >
+ atomic_read(&sc->stripes))
+ atomic_set(&sc->active_stripes_max, 0);
+
+ if (r)
+ return r;
+
+ return atomic_read(&sc->stripes) ? sc_hash_resize(sc) : 0;
+}
+
+/* Create stripe cache and recovery. */
+static int sc_init(struct raid_set *rs, unsigned stripes)
+{
+ unsigned i, r, rstripes;
+ struct stripe_cache *sc = &rs->sc;
+ struct stripe *stripe;
+ struct recover *rec = &rs->recover;
+ struct mapped_device *md;
+ struct gendisk *disk;
+
+ /* Initialize lists and locks. */
+ i = ARRAY_SIZE(sc->lists);
+ while (i--)
+ INIT_LIST_HEAD(sc->lists + i);
+
+ INIT_LIST_HEAD(&rec->stripes);
+
+ /* Initialize endio and LRU list locks. */
+ i = NR_LOCKS;
+ while (i--)
+ spin_lock_init(sc->locks + i);
+
+ /* Initialize atomic variables. */
+ atomic_set(&sc->stripes, 0);
+ atomic_set(&sc->stripes_to_set, 0);
+ atomic_set(&sc->active_stripes, 0);
+ atomic_set(&sc->active_stripes_max, 0); /* REMOVEME: statistics. */
+
+ /*
+ * We need a runtime unique # to suffix the kmem cache name
+ * because we'll have one for each active RAID set.
+ */
+ md = dm_table_get_md(rs->ti->table);
+ disk = dm_disk(md);
+ sprintf(sc->kc.name, "%s-%d", TARGET, disk->first_minor);
+ dm_put(md);
+ sc->kc.cache = kmem_cache_create(sc->kc.name, stripe_size(rs),
+ 0, 0, NULL);
+ if (!sc->kc.cache)
+ return -ENOMEM;
+
+ /* Create memory cache client context for RAID stripe cache. */
+ sc->mem_cache_client =
+ dm_mem_cache_client_create(stripes, rs->set.raid_devs,
+ chunk_pages(rs->set.io_size));
+ if (IS_ERR(sc->mem_cache_client))
+ return PTR_ERR(sc->mem_cache_client);
+
+ /* Create memory cache client context for RAID recovery stripe(s). */
+ rstripes = rec->recovery_stripes;
+ rec->mem_cache_client =
+ dm_mem_cache_client_create(rstripes, rs->set.raid_devs,
+ chunk_pages(rec->io_size));
+ if (IS_ERR(rec->mem_cache_client))
+ return PTR_ERR(rec->mem_cache_client);
+
+ /* Create dm-io client context for IO stripes. */
+ sc->dm_io_client =
+ dm_io_client_create((stripes > 32 ? 32 : stripes) *
+ rs->set.raid_devs *
+ chunk_pages(rs->set.io_size));
+ if (IS_ERR(sc->dm_io_client))
+ return PTR_ERR(sc->dm_io_client);
+
+ /* FIXME: intermingeled with stripe cache initialization. */
+ /* Create dm-io client context for recovery stripes. */
+ rec->dm_io_client =
+ dm_io_client_create(rstripes * rs->set.raid_devs *
+ chunk_pages(rec->io_size));
+ if (IS_ERR(rec->dm_io_client))
+ return PTR_ERR(rec->dm_io_client);
+
+ /* Allocate stripes for set recovery. */
+ while (rstripes--) {
+ stripe = stripe_alloc(sc, rec->mem_cache_client, SC_KEEP);
+ if (!stripe)
+ return -ENOMEM;
+
+ stripe->recover = kzalloc(sizeof(*stripe->recover), GFP_KERNEL);
+ if (!stripe->recover) {
+ stripe_free(stripe, rec->mem_cache_client);
+ return -ENOMEM;
+ }
+
+ SetStripeRecover(stripe);
+ stripe->io.size = rec->io_size;
+ list_add_tail(stripe->lists + LIST_RECOVER, &rec->stripes);
+ /* Don't add recovery stripes to LRU list! */
+ }
+
+ /*
+ * Allocate the stripe objetcs from the
+ * cache and add them to the LRU list.
+ */
+ r = sc_grow(sc, stripes, SC_KEEP);
+ if (!r)
+ atomic_set(&sc->stripes_last, stripes);
+
+ return r;
+}
+
+/* Destroy the stripe cache. */
+static void sc_exit(struct stripe_cache *sc)
+{
+ struct raid_set *rs = RS(sc);
+
+ if (sc->kc.cache) {
+ stripe_recover_free(rs);
+ BUG_ON(sc_shrink(sc, atomic_read(&sc->stripes)));
+ kmem_cache_destroy(sc->kc.cache);
+ sc->kc.cache = NULL;
+
+ if (sc->mem_cache_client && !IS_ERR(sc->mem_cache_client))
+ dm_mem_cache_client_destroy(sc->mem_cache_client);
+
+ if (sc->dm_io_client && !IS_ERR(sc->dm_io_client))
+ dm_io_client_destroy(sc->dm_io_client);
+
+ hash_exit(&sc->hash);
+ }
+}
+
+/*
+ * Calculate RAID address
+ *
+ * Delivers tuple with the index of the data disk holding the chunk
+ * in the set, the parity disks index and the start of the stripe
+ * within the address space of the set (used as the stripe cache hash key).
+ */
+/* thx MD. */
+static struct raid_address *raid_address(struct raid_set *rs, sector_t sector,
+ struct raid_address *addr)
+{
+ sector_t stripe, tmp;
+
+ /*
+ * chunk_number = sector / chunk_size
+ * stripe_number = chunk_number / data_devs
+ * di = stripe % data_devs;
+ */
+ stripe = sector >> rs->set.chunk_shift;
+ addr->di = sector_div(stripe, rs->set.data_devs);
+
+ switch (rs->set.raid_type->level) {
+ case raid4:
+ addr->pi = rs->set.pi;
+ goto check_shift_di;
+ case raid5:
+ tmp = stripe;
+ addr->pi = sector_div(tmp, rs->set.raid_devs);
+
+ switch (rs->set.raid_type->algorithm) {
+ case left_asym: /* Left asymmetric. */
+ addr->pi = rs->set.data_devs - addr->pi;
+ case right_asym: /* Right asymmetric. */
+check_shift_di:
+ if (addr->di >= addr->pi)
+ addr->di++;
+ break;
+ case left_sym: /* Left symmetric. */
+ addr->pi = rs->set.data_devs - addr->pi;
+ case right_sym: /* Right symmetric. */
+ addr->di = (addr->pi + addr->di + 1) %
+ rs->set.raid_devs;
+ break;
+ case none: /* Ain't happen: RAID4 algorithm placeholder. */
+ BUG();
+ }
+ }
+
+ /*
+ * Start offset of the stripes chunk on any single device of the RAID
+ * set, adjusted in case io size differs from chunk size.
+ */
+ addr->key = (stripe << rs->set.chunk_shift) +
+ (sector & rs->set.io_inv_mask);
+ return addr;
+}
+
+/*
+ * Copy data across between stripe pages and bio vectors.
+ *
+ * Pay attention to data alignment in stripe and bio pages.
+ */
+static void bio_copy_page_list(int rw, struct stripe *stripe,
+ struct page_list *pl, struct bio *bio)
+{
+ unsigned i, page_offset;
+ void *page_addr;
+ struct raid_set *rs = RS(stripe->sc);
+ struct bio_vec *bv;
+
+ /* Get start page in page list for this sector. */
+ i = (bio->bi_sector & rs->set.io_mask) / SECTORS_PER_PAGE;
+ pl = pl_elem(pl, i);
+ BUG_ON(!pl);
+ BUG_ON(!pl->page);
+
+ page_addr = page_address(pl->page);
+ page_offset = to_bytes(bio->bi_sector & (SECTORS_PER_PAGE - 1));
+
+ /* Walk all segments and copy data across between bio_vecs and pages. */
+ bio_for_each_segment(bv, bio, i) {
+ int len = bv->bv_len, size;
+ unsigned bio_offset = 0;
+ void *bio_addr = __bio_kmap_atomic(bio, i, KM_USER0);
+redo:
+ size = (page_offset + len > PAGE_SIZE) ?
+ PAGE_SIZE - page_offset : len;
+
+ if (rw == READ)
+ memcpy(bio_addr + bio_offset,
+ page_addr + page_offset, size);
+ else
+ memcpy(page_addr + page_offset,
+ bio_addr + bio_offset, size);
+
+ page_offset += size;
+ if (page_offset == PAGE_SIZE) {
+ /*
+ * We reached the end of the chunk page ->
+ * need to refer to the next one to copy more data.
+ */
+ len -= size;
+ if (len) {
+ /* Get next page. */
+ pl = pl->next;
+ BUG_ON(!pl);
+ BUG_ON(!pl->page);
+ page_addr = page_address(pl->page);
+ page_offset = 0;
+ bio_offset += size;
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + S_BIO_COPY_PL_NEXT);
+ goto redo;
+ }
+ }
+
+ __bio_kunmap_atomic(bio_addr, KM_USER0);
+ }
+}
+
+/*
+ * Xor optimization macros.
+ */
+/* Xor data pointer declaration and initialization macros. */
+#define DECLARE_2 unsigned long *d0 = data[0], *d1 = data[1]
+#define DECLARE_3 DECLARE_2, *d2 = data[2]
+#define DECLARE_4 DECLARE_3, *d3 = data[3]
+#define DECLARE_5 DECLARE_4, *d4 = data[4]
+#define DECLARE_6 DECLARE_5, *d5 = data[5]
+#define DECLARE_7 DECLARE_6, *d6 = data[6]
+#define DECLARE_8 DECLARE_7, *d7 = data[7]
+
+/* Xor unrole macros. */
+#define D2(n) d0[n] = d0[n] ^ d1[n]
+#define D3(n) D2(n) ^ d2[n]
+#define D4(n) D3(n) ^ d3[n]
+#define D5(n) D4(n) ^ d4[n]
+#define D6(n) D5(n) ^ d5[n]
+#define D7(n) D6(n) ^ d6[n]
+#define D8(n) D7(n) ^ d7[n]
+
+#define X_2(macro, offset) macro(offset); macro(offset + 1);
+#define X_4(macro, offset) X_2(macro, offset); X_2(macro, offset + 2);
+#define X_8(macro, offset) X_4(macro, offset); X_4(macro, offset + 4);
+#define X_16(macro, offset) X_8(macro, offset); X_8(macro, offset + 8);
+#define X_32(macro, offset) X_16(macro, offset); X_16(macro, offset + 16);
+#define X_64(macro, offset) X_32(macro, offset); X_32(macro, offset + 32);
+
+/* Define a _xor_#chunks_#xors_per_run() function. */
+#define _XOR(chunks, xors_per_run) \
+static void _xor ## chunks ## _ ## xors_per_run(unsigned long **data) \
+{ \
+ unsigned end = XOR_SIZE / sizeof(data[0]), i; \
+ DECLARE_ ## chunks; \
+\
+ for (i = 0; i < end; i += xors_per_run) { \
+ X_ ## xors_per_run(D ## chunks, i); \
+ } \
+}
+
+/* Define xor functions for 2 - 8 chunks and xors per run. */
+#define MAKE_XOR_PER_RUN(xors_per_run) \
+ _XOR(2, xors_per_run); _XOR(3, xors_per_run); \
+ _XOR(4, xors_per_run); _XOR(5, xors_per_run); \
+ _XOR(6, xors_per_run); _XOR(7, xors_per_run); \
+ _XOR(8, xors_per_run);
+
+MAKE_XOR_PER_RUN(8) /* Define _xor_*_8() functions. */
+MAKE_XOR_PER_RUN(16) /* Define _xor_*_16() functions. */
+MAKE_XOR_PER_RUN(32) /* Define _xor_*_32() functions. */
+MAKE_XOR_PER_RUN(64) /* Define _xor_*_64() functions. */
+
+#define MAKE_XOR(xors_per_run) \
+struct { \
+ void (*f)(unsigned long **); \
+} static xor_funcs ## xors_per_run[] = { \
+ { NULL }, /* NULL pointers to optimize indexing in xor(). */ \
+ { NULL }, \
+ { _xor2_ ## xors_per_run }, \
+ { _xor3_ ## xors_per_run }, \
+ { _xor4_ ## xors_per_run }, \
+ { _xor5_ ## xors_per_run }, \
+ { _xor6_ ## xors_per_run }, \
+ { _xor7_ ## xors_per_run }, \
+ { _xor8_ ## xors_per_run }, \
+}; \
+\
+static void xor_ ## xors_per_run(unsigned n, unsigned long **data) \
+{ \
+ /* Call respective function for amount of chunks. */ \
+ xor_funcs ## xors_per_run[n].f(data); \
+}
+
+/* Define xor_8() - xor_64 functions. */
+MAKE_XOR(8)
+MAKE_XOR(16)
+MAKE_XOR(32)
+MAKE_XOR(64)
+
+/* Maximum number of chunks, which can be xor'ed in one go. */
+#define XOR_CHUNKS_MAX (ARRAY_SIZE(xor_funcs8) - 1)
+
+static void xor_blocks_wrapper(unsigned n, unsigned long **data)
+{
+ BUG_ON(n < 2 || n > MAX_XOR_BLOCKS + 1);
+ xor_blocks(n - 1, XOR_SIZE, (void *) data[0], (void **) data + 1);
+}
+
+struct xor_func {
+ xor_function_t f;
+ const char *name;
+} static xor_funcs[] = {
+ { xor_8, "xor_8" },
+ { xor_16, "xor_16" },
+ { xor_32, "xor_32" },
+ { xor_64, "xor_64" },
+ { xor_blocks_wrapper, "xor_blocks" },
+};
+
+/*
+ * Check, if chunk has to be xored in/out:
+ *
+ * o if writes are queued
+ * o if writes are merged
+ * o if stripe is to be reconstructed
+ * o if recovery stripe
+ */
+static inline int chunk_must_xor(struct stripe_chunk *chunk)
+{
+ if (ChunkUptodate(chunk)) {
+ BUG_ON(!bio_list_empty(BL_CHUNK(chunk, WRITE_QUEUED)) &&
+ !bio_list_empty(BL_CHUNK(chunk, WRITE_MERGED)));
+
+ if (!bio_list_empty(BL_CHUNK(chunk, WRITE_QUEUED)) ||
+ !bio_list_empty(BL_CHUNK(chunk, WRITE_MERGED)))
+ return 1;
+
+ if (StripeReconstruct(chunk->stripe) ||
+ StripeRecover(chunk->stripe))
+ return 1;
+ }
+
+ return 0;
+}
+
+/*
+ * Calculate crc.
+ *
+ * This indexes into the chunks of a stripe and their pages.
+ *
+ * All chunks will be xored into the indexed (@pi)
+ * chunk in maximum groups of xor.chunks.
+ *
+ */
+static void xor(struct stripe *stripe, unsigned pi, unsigned sector)
+{
+ struct raid_set *rs = RS(stripe->sc);
+ unsigned max_chunks = rs->xor.chunks, n = 1,
+ o = sector / SECTORS_PER_PAGE, /* Offset into the page_list. */
+ p = rs->set.raid_devs;
+ unsigned long **d = rs->data;
+ xor_function_t xor_f = rs->xor.f->f;
+
+ BUG_ON(sector > stripe->io.size);
+
+ /* Address of parity page to xor into. */
+ d[0] = page_address(pl_elem(PL(stripe, pi), o)->page);
+
+ while (p--) {
+ /* Preset pointers to data pages. */
+ if (p != pi && chunk_must_xor(CHUNK(stripe, p)))
+ d[n++] = page_address(pl_elem(PL(stripe, p), o)->page);
+
+ /* If max chunks -> xor. */
+ if (n == max_chunks) {
+ xor_f(n, d);
+ n = 1;
+ }
+ }
+
+ /* If chunks -> xor. */
+ if (n > 1)
+ xor_f(n, d);
+}
+
+/* Common xor loop through all stripe page lists. */
+static void common_xor(struct stripe *stripe, sector_t count,
+ unsigned off, unsigned pi)
+{
+ unsigned sector;
+
+ BUG_ON(!count);
+ for (sector = off; sector < count; sector += SECTORS_PER_PAGE)
+ xor(stripe, pi, sector);
+
+ /* Set parity page uptodate and clean. */
+ chunk_set(CHUNK(stripe, pi), CLEAN);
+ atomic_inc(RS(stripe->sc)->stats + S_XORS); /* REMOVEME: statistics. */
+}
+
+/*
+ * Calculate parity sectors on intact stripes.
+ *
+ * Need to calculate raid address for recover stripe, because its
+ * chunk sizes differs and is typically larger than io chunk size.
+ */
+static void parity_xor(struct stripe *stripe)
+{
+ struct raid_set *rs = RS(stripe->sc);
+ unsigned chunk_size = rs->set.chunk_size, io_size = stripe->io.size,
+ xor_size = chunk_size > io_size ? io_size : chunk_size;
+ sector_t off;
+
+ /* This can be the recover stripe with a larger io size. */
+ for (off = 0; off < io_size; off += xor_size) {
+ /*
+ * Recover stripe is likely bigger than regular io
+ * ones and has no precalculated parity disk index ->
+ * need to calculate RAID address.
+ */
+ if (unlikely(StripeRecover(stripe))) {
+ struct raid_address addr;
+
+ raid_address(rs,
+ (stripe->key + off) * rs->set.data_devs,
+ &addr);
+ stripe->idx.parity = addr.pi;
+ stripe_zero_pl_part(stripe, addr.pi, off, xor_size);
+ }
+
+ common_xor(stripe, xor_size, off, stripe->idx.parity);
+ chunk_set(CHUNK(stripe, stripe->idx.parity), DIRTY);
+ }
+}
+
+/* Reconstruct missing chunk. */
+static void stripe_reconstruct(struct stripe *stripe)
+{
+ struct raid_set *rs = RS(stripe->sc);
+ int p = rs->set.raid_devs, pr = stripe->idx.recover;
+
+ BUG_ON(pr < 0);
+
+ /* Check if all but the chunk to be reconstructed are uptodate. */
+ while (p--)
+ BUG_ON(p != pr && !ChunkUptodate(CHUNK(stripe, p)));
+
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + (RSDegraded(rs) ? S_RECONSTRUCT_EI :
+ S_RECONSTRUCT_DEV));
+ /* Zero chunk to be reconstructed. */
+ stripe_zero_chunk(stripe, pr);
+ common_xor(stripe, stripe->io.size, 0, pr);
+ stripe->idx.recover = -1;
+}
+
+/*
+ * Recovery io throttling
+ */
+/* Conditionally reset io counters. */
+static int recover_io_reset(struct raid_set *rs)
+{
+ unsigned long j = jiffies;
+
+ /* Pay attention to jiffies overflows. */
+ if (j > rs->recover.last_jiffies + HZ / 20 ||
+ j < rs->recover.last_jiffies) {
+ atomic_set(rs->recover.io_count + IO_WORK, 0);
+ atomic_set(rs->recover.io_count + IO_RECOVER, 0);
+ rs->recover.last_jiffies = j;
+ return 1;
+ }
+
+ return 0;
+}
+
+/* Count ios. */
+static void recover_io_count(struct stripe *stripe)
+{
+ struct raid_set *rs = RS(stripe->sc);
+
+ recover_io_reset(rs);
+ atomic_inc(rs->recover.io_count +
+ (StripeRecover(stripe) ? IO_RECOVER : IO_WORK));
+}
+
+/* Try getting a stripe either from the hash or from the LRU list. */
+static struct stripe *stripe_find(struct raid_set *rs,
+ struct raid_address *addr)
+{
+ int r;
+ struct stripe_cache *sc = &rs->sc;
+ struct stripe *stripe;
+
+ /* Try stripe from hash. */
+ stripe = stripe_lookup(sc, addr->key);
+ if (stripe) {
+ r = stripe_get(stripe);
+ if (r)
+ goto get_lock_failed;
+
+ atomic_inc(rs->stats + S_HITS_1ST); /* REMOVEME: statistics. */
+ } else {
+ /* Not in hash -> try to get an LRU stripe. */
+ stripe = stripe_lru_pop(sc);
+ if (stripe) {
+ /*
+ * An LRU stripe may not be referenced
+ * and may never have ios pending!
+ */
+ BUG_ON(stripe_ref(stripe));
+ BUG_ON(stripe_io_ref(stripe));
+
+ /* Remove from hash if on before reuse. */
+ stripe_hash_del(stripe);
+
+ /* Invalidate before reinserting with changed key. */
+ stripe_invalidate(stripe);
+
+ stripe->key = addr->key;
+ stripe->region = dm_rh_sector_to_region(rs->recover.rh,
+ addr->key);
+ stripe->idx.parity = addr->pi;
+ r = stripe_get(stripe);
+ if (r)
+ goto get_lock_failed;
+
+ /* Insert stripe into the stripe hash. */
+ stripe_insert(&sc->hash, stripe);
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + S_INSCACHE);
+ }
+ }
+
+ return stripe;
+
+get_lock_failed:
+ stripe_put(stripe);
+ return NULL;
+}
+
+/*
+ * Process end io
+ *
+ * I need to do it here because I can't in interrupt
+ */
+/* End io all bios on a bio list. */
+static void bio_list_endio(struct stripe *stripe, struct bio_list *bl,
+ int p, int error)
+{
+ struct raid_set *rs = RS(stripe->sc);
+ struct bio *bio;
+ struct page_list *pl = PL(stripe, p);
+ struct stripe_chunk *chunk = CHUNK(stripe, p);
+
+ /* Update region counters. */
+ while ((bio = bio_list_pop(bl))) {
+ if (bio_data_dir(bio) == WRITE)
+ /* Drop io pending count for any writes. */
+ dm_rh_dec(rs->recover.rh, stripe->region);
+ else if (!error)
+ /* Copy data accross. */
+ bio_copy_page_list(READ, stripe, pl, bio);
+
+ bio_endio(bio, error);
+
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + (bio_data_dir(bio) == READ ?
+ S_BIOS_ENDIO_READ : S_BIOS_ENDIO_WRITE));
+
+ chunk_put(chunk);
+ stripe_put(stripe);
+ io_put(rs); /* Wake any suspend waiters on last bio. */
+ }
+}
+
+/*
+ * End io all reads/writes on a stripe copying
+ * read data accross from stripe to bios and
+ * decrementing region counters for writes.
+ *
+ * Processing of ios depeding on state:
+ * o no chunk error -> endio ok
+ * o degraded:
+ * - chunk error and read -> ignore to be requeued
+ * - chunk error and write -> endio ok
+ * o dead (more than parity_devs failed) and chunk_error-> endio failed
+ */
+static void stripe_endio(int rw, struct stripe *stripe)
+{
+ struct raid_set *rs = RS(stripe->sc);
+ unsigned p = rs->set.raid_devs;
+ int write = (rw != READ);
+
+ while (p--) {
+ struct stripe_chunk *chunk = CHUNK(stripe, p);
+ struct bio_list *bl;
+
+ BUG_ON(ChunkLocked(chunk));
+
+ bl = BL_CHUNK(chunk, rw);
+ if (bio_list_empty(bl))
+ continue;
+
+ if (unlikely(ChunkError(chunk) || !ChunkUptodate(chunk))) {
+ /* RAID set dead. */
+ if (unlikely(RSDead(rs)))
+ bio_list_endio(stripe, bl, p, -EIO);
+ /* RAID set degraded. */
+ else if (write)
+ bio_list_endio(stripe, bl, p, 0);
+ } else {
+ BUG_ON(!RSDegraded(rs) && ChunkDirty(chunk));
+ bio_list_endio(stripe, bl, p, 0);
+ }
+ }
+}
+
+/* Fail all ios hanging off all bio lists of a stripe. */
+static void stripe_fail_io(struct stripe *stripe)
+{
+ struct raid_set *rs = RS(stripe->sc);
+ unsigned p = rs->set.raid_devs;
+
+ while (p--) {
+ struct stripe_chunk *chunk = CHUNK(stripe, p);
+ int i = ARRAY_SIZE(chunk->bl);
+
+ /* Fail all bios on all bio lists of the stripe. */
+ while (i--) {
+ struct bio_list *bl = chunk->bl + i;
+
+ if (!bio_list_empty(bl))
+ bio_list_endio(stripe, bl, p, -EIO);
+ }
+ }
+
+ /* Put stripe on LRU list. */
+ BUG_ON(stripe_io_ref(stripe));
+ BUG_ON(stripe_ref(stripe));
+}
+
+/* Unlock all required chunks. */
+static void stripe_chunks_unlock(struct stripe *stripe)
+{
+ unsigned p = RS(stripe->sc)->set.raid_devs;
+ struct stripe_chunk *chunk;
+
+ while (p--) {
+ chunk = CHUNK(stripe, p);
+
+ if (TestClearChunkUnlock(chunk))
+ ClearChunkLocked(chunk);
+ }
+}
+
+/*
+ * Queue reads and writes to a stripe by hanging
+ * their bios off the stripesets read/write lists.
+ */
+static int stripe_queue_bio(struct raid_set *rs, struct bio *bio,
+ struct bio_list *reject)
+{
+ struct raid_address addr;
+ struct stripe *stripe;
+
+ stripe = stripe_find(rs, raid_address(rs, bio->bi_sector, &addr));
+ if (stripe) {
+ int r = 0, rw = bio_data_dir(bio);
+
+ /* Distinguish reads and writes. */
+ bio_list_add(BL(stripe, addr.di, rw), bio);
+
+ if (rw == READ)
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + S_BIOS_ADDED_READ);
+ else {
+ /* Inrement pending write count on region. */
+ dm_rh_inc(rs->recover.rh, stripe->region);
+ r = 1;
+
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + S_BIOS_ADDED_WRITE);
+ }
+
+ /*
+ * Put on io (flush) list in case of
+ * initial bio queued to chunk.
+ */
+ if (chunk_get(CHUNK(stripe, addr.di)) == 1)
+ stripe_flush_add(stripe);
+
+ return r;
+ }
+
+ /* Got no stripe from cache or failed to lock it -> reject bio. */
+ bio_list_add(reject, bio);
+ atomic_inc(rs->stats + S_IOS_POST); /* REMOVEME: statistics. */
+ return 0;
+}
+
+/*
+ * Handle all stripes by handing them to the daemon, because we can't
+ * map their chunk pages to copy the data in interrupt context.
+ *
+ * We don't want to handle them here either, while interrupts are disabled.
+ */
+
+/* Read/write endio function for dm-io (interrupt context). */
+static void endio(unsigned long error, void *context)
+{
+ struct stripe_chunk *chunk = context;
+
+ if (unlikely(error)) {
+ chunk_set(chunk, ERROR);
+ /* REMOVEME: statistics. */
+ atomic_inc(RS(chunk->stripe->sc)->stats + S_STRIPE_ERROR);
+ } else
+ chunk_set(chunk, CLEAN);
+
+ /*
+ * For recovery stripes, I need to reset locked locked
+ * here, because those aren't processed in do_endios().
+ */
+ if (unlikely(StripeRecover(chunk->stripe)))
+ ClearChunkLocked(chunk);
+ else
+ SetChunkUnlock(chunk);
+
+ /* Indirectly puts stripe on cache's endio list via stripe_io_put(). */
+ stripe_put_references(chunk->stripe);
+}
+
+/* Read/Write a chunk asynchronously. */
+static void stripe_chunk_rw(struct stripe *stripe, unsigned p)
+{
+ struct stripe_cache *sc = stripe->sc;
+ struct raid_set *rs = RS(sc);
+ struct dm_mem_cache_object *obj = stripe->obj + p;
+ struct page_list *pl = obj->pl;
+ struct stripe_chunk *chunk = CHUNK(stripe, p);
+ struct raid_dev *dev = rs->dev + p;
+ struct dm_io_region io = {
+ .bdev = dev->dev->bdev,
+ .sector = stripe->key,
+ .count = stripe->io.size,
+ };
+ struct dm_io_request control = {
+ .bi_rw = ChunkDirty(chunk) ? WRITE : READ,
+ .mem = {
+ .type = DM_IO_PAGE_LIST,
+ .ptr.pl = pl,
+ .offset = 0,
+ },
+ .notify = {
+ .fn = endio,
+ .context = chunk,
+ },
+ .client = StripeRecover(stripe) ? rs->recover.dm_io_client :
+ sc->dm_io_client,
+ };
+
+ BUG_ON(ChunkLocked(chunk));
+ BUG_ON(!ChunkUptodate(chunk) && ChunkDirty(chunk));
+ BUG_ON(ChunkUptodate(chunk) && !ChunkDirty(chunk));
+
+ /*
+ * Don't rw past end of device, which can happen, because
+ * typically sectors_per_dev isn't divisible by io_size.
+ */
+ if (unlikely(io.sector + io.count > rs->set.sectors_per_dev))
+ io.count = rs->set.sectors_per_dev - io.sector;
+
+ BUG_ON(!io.count);
+ io.sector += dev->start; /* Add <offset>. */
+ if (RSRecover(rs))
+ recover_io_count(stripe); /* Recovery io accounting. */
+
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + (ChunkDirty(chunk) ? S_DM_IO_WRITE :
+ S_DM_IO_READ));
+ SetChunkLocked(chunk);
+ SetDevIoQueued(dev);
+ BUG_ON(dm_io(&control, 1, &io, NULL));
+}
+
+/*
+ * Write dirty or read not uptodate page lists of a stripe.
+ */
+static int stripe_chunks_rw(struct stripe *stripe)
+{
+ int r;
+ struct raid_set *rs = RS(stripe->sc);
+
+ /*
+ * Increment the pending count on the stripe
+ * first, so that we don't race in endio().
+ *
+ * An inc (IO) is needed for any chunk unless !ChunkIo(chunk):
+ *
+ * o not uptodate
+ * o dirtied by writes merged
+ * o dirtied by parity calculations
+ */
+ r = for_each_io_dev(stripe, stripe_get_references);
+ if (r) {
+ /* Io needed: chunks are either not uptodate or dirty. */
+ int max; /* REMOVEME: */
+ struct stripe_cache *sc = &rs->sc;
+
+ /* Submit actual io. */
+ for_each_io_dev(stripe, stripe_chunk_rw);
+
+ /* REMOVEME: statistics */
+ max = sc_active(sc);
+ if (atomic_read(&sc->active_stripes_max) < max)
+ atomic_set(&sc->active_stripes_max, max);
+
+ atomic_inc(rs->stats + S_FLUSHS);
+ /* END REMOVEME: statistics */
+ }
+
+ return r;
+}
+
+/* Merge in all writes hence dirtying respective chunks. */
+static void stripe_merge_writes(struct stripe *stripe)
+{
+ unsigned p = RS(stripe->sc)->set.raid_devs;
+
+ while (p--) {
+ struct stripe_chunk *chunk = CHUNK(stripe, p);
+ struct bio_list *write = BL_CHUNK(chunk, WRITE_QUEUED);
+
+ if (!bio_list_empty(write)) {
+ struct bio *bio;
+ struct page_list *pl = stripe->obj[p].pl;
+
+ /*
+ * We can play with the lists without holding a lock,
+ * because it is just us accessing them anyway.
+ */
+ bio_list_for_each(bio, write)
+ bio_copy_page_list(WRITE, stripe, pl, bio);
+
+ bio_list_merge(BL_CHUNK(chunk, WRITE_MERGED), write);
+ bio_list_init(write);
+ chunk_set(chunk, DIRTY);
+ }
+ }
+}
+
+/* Queue all writes to get merged. */
+static int stripe_queue_writes(struct stripe *stripe)
+{
+ int r = 0;
+ unsigned p = RS(stripe->sc)->set.raid_devs;
+
+ while (p--) {
+ struct stripe_chunk *chunk = CHUNK(stripe, p);
+ struct bio_list *write = BL_CHUNK(chunk, WRITE);
+
+ if (!bio_list_empty(write)) {
+ bio_list_merge(BL_CHUNK(chunk, WRITE_QUEUED), write);
+ bio_list_init(write);
+SetChunkIo(chunk);
+ r = 1;
+ }
+ }
+
+ return r;
+}
+
+
+/* Check, if a chunk gets completely overwritten. */
+static int stripe_check_chunk_overwrite(struct stripe *stripe, unsigned p)
+{
+ unsigned sectors = 0;
+ struct bio *bio;
+ struct bio_list *bl = BL(stripe, p, WRITE_QUEUED);
+
+ bio_list_for_each(bio, bl)
+ sectors += bio_sectors(bio);
+
+ BUG_ON(sectors > RS(stripe->sc)->set.io_size);
+ return sectors == RS(stripe->sc)->set.io_size;
+}
+
+/*
+ * Avoid io on broken/reconstructed drive in order to
+ * reconstruct date on endio.
+ *
+ * (*1*) We set StripeReconstruct() in here, so that _do_endios()
+ * will trigger a reconstruct call before resetting it.
+ */
+static int stripe_chunk_set_io_flags(struct stripe *stripe, int pr)
+{
+ struct stripe_chunk *chunk = CHUNK(stripe, pr);
+
+ /*
+ * Allow io on all chunks but the indexed one,
+ * because we're either degraded or prohibit it
+ * on the one for later reconstruction.
+ */
+ /* Includes ClearChunkIo(), ClearChunkUptodate(). */
+ stripe_chunk_invalidate(chunk);
+ stripe->idx.recover = pr;
+ SetStripeReconstruct(stripe);
+
+ /* REMOVEME: statistics. */
+ atomic_inc(RS(stripe->sc)->stats + S_PROHIBITCHUNKIO);
+ return -EPERM;
+}
+
+/* Chunk locked/uptodate and device failed tests. */
+static struct stripe_chunk *
+stripe_chunk_check(struct stripe *stripe, unsigned p, unsigned *chunks_uptodate)
+{
+ struct raid_set *rs = RS(stripe->sc);
+ struct stripe_chunk *chunk = CHUNK(stripe, p);
+
+ /* Can't access active chunks. */
+ if (ChunkLocked(chunk)) {
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + S_CHUNK_LOCKED);
+ return NULL;
+ }
+
+ /* Can't access broken devive. */
+ if (ChunkError(chunk) || DevFailed(rs->dev + p))
+ return NULL;
+
+ /* Can access uptodate chunks. */
+ if (ChunkUptodate(chunk)) {
+ (*chunks_uptodate)++;
+ return NULL;
+ }
+
+ return chunk;
+}
+
+/*
+ * Degraded/reconstruction mode.
+ *
+ * Check stripe state to figure which chunks don't need IO.
+ *
+ * Returns 0 for fully operational, -EPERM for degraded/resynchronizing.
+ */
+static int stripe_check_reconstruct(struct stripe *stripe)
+{
+ struct raid_set *rs = RS(stripe->sc);
+
+ if (RSDead(rs)) {
+ ClearStripeReconstruct(stripe);
+ ClearStripeReconstructed(stripe);
+ stripe_allow_io(stripe);
+ return 0;
+ }
+
+ /* Avoid further reconstruction setting, when already set. */
+ if (StripeReconstruct(stripe)) {
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + S_RECONSTRUCT_SET);
+ return -EBUSY;
+ }
+
+ /* Initially allow io on all chunks. */
+ stripe_allow_io(stripe);
+
+ /* Return if stripe is already reconstructed. */
+ if (StripeReconstructed(stripe)) {
+ atomic_inc(rs->stats + S_RECONSTRUCTED);
+ return 0;
+ }
+
+ /*
+ * Degraded/reconstruction mode (device failed) ->
+ * avoid io on the failed device.
+ */
+ if (unlikely(RSDegraded(rs))) {
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + S_DEGRADED);
+ /* Allow IO on all devices but the dead one. */
+ BUG_ON(rs->set.ei < 0);
+ return stripe_chunk_set_io_flags(stripe, rs->set.ei);
+ } else {
+ int sync, pi = dev_for_parity(stripe, &sync);
+
+ /*
+ * Reconstruction mode (ie. a particular (replaced) device or
+ * some (rotating) parity chunk is being resynchronized) ->
+ * o make sure all needed chunks are read in
+ * o writes are allowed to go through
+ */
+ if (!sync) {
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + S_NOSYNC);
+ /* Allow IO on all devs but the one to reconstruct. */
+ return stripe_chunk_set_io_flags(stripe, pi);
+ }
+ }
+
+ return 0;
+}
+
+/*
+ * Check, if stripe is ready to merge writes.
+ * I.e. if all chunks present to allow to merge bios.
+ *
+ * We prohibit io on:
+ *
+ * o chunks without bios
+ * o chunks which get completely written over
+ */
+static int stripe_merge_possible(struct stripe *stripe, int nosync)
+{
+ struct raid_set *rs = RS(stripe->sc);
+ unsigned chunks_overwrite = 0, chunks_prohibited = 0,
+ chunks_uptodate = 0, p = rs->set.raid_devs;
+
+ /* Walk all chunks. */
+ while (p--) {
+ struct stripe_chunk *chunk;
+
+ /* Prohibit io on broken devices. */
+ if (DevFailed(rs->dev + p)) {
+ chunk = CHUNK(stripe, p);
+ goto prohibit_io;
+ }
+
+ /* We can't optimize any further if no chunk. */
+ chunk = stripe_chunk_check(stripe, p, &chunks_uptodate);
+ if (!chunk || nosync)
+ continue;
+
+ /*
+ * We have a chunk, which is not uptodate.
+ *
+ * If this is not parity and we don't have
+ * reads queued, we can optimize further.
+ */
+ if (p != stripe->idx.parity &&
+ bio_list_empty(BL_CHUNK(chunk, READ)) &&
+ bio_list_empty(BL_CHUNK(chunk, WRITE_MERGED))) {
+ if (bio_list_empty(BL_CHUNK(chunk, WRITE_QUEUED)))
+ goto prohibit_io;
+ else if (RSCheckOverwrite(rs) &&
+ stripe_check_chunk_overwrite(stripe, p))
+ /* Completely overwritten chunk. */
+ chunks_overwrite++;
+ }
+
+ /* Allow io for chunks with bios and overwritten ones. */
+ SetChunkIo(chunk);
+ continue;
+
+prohibit_io:
+ /* No io for broken devices or for chunks w/o bios. */
+ ClearChunkIo(chunk);
+ chunks_prohibited++;
+ /* REMOVEME: statistics. */
+ atomic_inc(RS(stripe->sc)->stats + S_PROHIBITCHUNKIO);
+ }
+
+ /* All data chunks will get written over. */
+ if (chunks_overwrite == rs->set.data_devs)
+ atomic_inc(rs->stats + S_OVERWRITE); /* REMOVEME: statistics.*/
+ else if (chunks_uptodate + chunks_prohibited < rs->set.raid_devs) {
+ /* We don't have enough chunks to merge. */
+ atomic_inc(rs->stats + S_CANT_MERGE); /* REMOVEME: statistics.*/
+ return -EPERM;
+ }
+
+ /*
+ * If we have all chunks up to date or overwrite them, we
+ * just zero the parity chunk and let stripe_rw() recreate it.
+ */
+ if (chunks_uptodate == rs->set.raid_devs ||
+ chunks_overwrite == rs->set.data_devs) {
+ stripe_zero_chunk(stripe, stripe->idx.parity);
+ BUG_ON(StripeReconstruct(stripe));
+ SetStripeReconstruct(stripe); /* Enforce xor in caller. */
+ } else {
+ /*
+ * With less chunks, we xor parity out.
+ *
+ * (*4*) We rely on !StripeReconstruct() in chunk_must_xor(),
+ * so that only chunks with queued or merged writes
+ * are being xored.
+ */
+ parity_xor(stripe);
+ }
+
+ /*
+ * We do have enough chunks to merge.
+ * All chunks are uptodate or get written over.
+ */
+ atomic_inc(rs->stats + S_CAN_MERGE); /* REMOVEME: statistics. */
+ return 0;
+}
+
+/*
+ * Avoid reading chunks in case we're fully operational.
+ *
+ * We prohibit io on any chunks without bios but the parity chunk.
+ */
+static void stripe_avoid_reads(struct stripe *stripe)
+{
+ struct raid_set *rs = RS(stripe->sc);
+ unsigned dummy = 0, p = rs->set.raid_devs;
+
+ /* Walk all chunks. */
+ while (p--) {
+ struct stripe_chunk *chunk =
+ stripe_chunk_check(stripe, p, &dummy);
+
+ if (!chunk)
+ continue;
+
+ /* If parity or any bios pending -> allow io. */
+ if (chunk_ref(chunk) || p == stripe->idx.parity)
+ SetChunkIo(chunk);
+ else {
+ ClearChunkIo(chunk);
+ /* REMOVEME: statistics. */
+ atomic_inc(RS(stripe->sc)->stats + S_PROHIBITCHUNKIO);
+ }
+ }
+}
+
+/*
+ * Read/write a stripe.
+ *
+ * All stripe read/write activity goes through this function
+ * unless recovery, which has to call stripe_chunk_rw() directly.
+ *
+ * Make sure we don't try already merged stripes in order
+ * to avoid data corruption.
+ *
+ * Check the state of the RAID set and if degraded (or
+ * resynchronizing for reads), read in all other chunks but
+ * the one on the dead/resynchronizing device in order to be
+ * able to reconstruct the missing one in _do_endios().
+ *
+ * Can be called on active stripes in order
+ * to dispatch new io on inactive chunks.
+ *
+ * States to cover:
+ * o stripe to read and/or write
+ * o stripe with error to reconstruct
+ */
+static void stripe_rw(struct stripe *stripe)
+{
+ int nosync, r;
+ struct raid_set *rs = RS(stripe->sc);
+
+ /*
+ * Check, if a chunk needs to be reconstructed
+ * because of a degraded set or a region out of sync.
+ */
+ nosync = stripe_check_reconstruct(stripe);
+ switch (nosync) {
+ case -EBUSY:
+ return; /* Wait for stripe reconstruction to finish. */
+ case -EPERM:
+ goto io;
+ }
+
+ /*
+ * If we don't have merged writes pending, we can schedule
+ * queued writes to be merged next without corrupting data.
+ */
+ if (!StripeMerged(stripe)) {
+ r = stripe_queue_writes(stripe);
+ if (r)
+ /* Writes got queued -> flag RBW. */
+ SetStripeRBW(stripe);
+ }
+
+ /*
+ * Merge all writes hanging off uptodate/overwritten
+ * chunks of the stripe.
+ */
+ if (StripeRBW(stripe)) {
+ r = stripe_merge_possible(stripe, nosync);
+ if (!r) { /* Merge possible. */
+ struct stripe_chunk *chunk;
+
+ /*
+ * I rely on valid parity in order
+ * to xor a fraction of chunks out
+ * of parity and back in.
+ */
+ stripe_merge_writes(stripe); /* Merge writes in. */
+ parity_xor(stripe); /* Update parity. */
+ ClearStripeReconstruct(stripe); /* Reset xor enforce. */
+ SetStripeMerged(stripe); /* Writes merged. */
+ ClearStripeRBW(stripe); /* Disable RBW. */
+
+ /*
+ * REMOVEME: sanity check on parity chunk
+ * states after writes got merged.
+ */
+ chunk = CHUNK(stripe, stripe->idx.parity);
+ BUG_ON(ChunkLocked(chunk));
+ BUG_ON(!ChunkUptodate(chunk));
+ BUG_ON(!ChunkDirty(chunk));
+ BUG_ON(!ChunkIo(chunk));
+ }
+ } else if (!nosync && !StripeMerged(stripe))
+ /* Read avoidance if not degraded/resynchronizing/merged. */
+ stripe_avoid_reads(stripe);
+
+io:
+ /* Now submit any reads/writes for non-uptodate or dirty chunks. */
+ r = stripe_chunks_rw(stripe);
+ if (!r) {
+ /*
+ * No io submitted because of chunk io
+ * prohibited or locked chunks/failed devices
+ * -> push to end io list for processing.
+ */
+ stripe_endio_push(stripe);
+ atomic_inc(rs->stats + S_NO_RW); /* REMOVEME: statistics. */
+ }
+}
+
+/*
+ * Recovery functions
+ */
+/* Read a stripe off a raid set for recovery. */
+static int stripe_recover_read(struct stripe *stripe, int pi)
+{
+ BUG_ON(stripe_io_ref(stripe));
+
+ /* Invalidate all chunks so that they get read in. */
+ stripe_chunks_invalidate(stripe);
+ stripe_allow_io(stripe); /* Allow io on all recovery chunks. */
+
+ /*
+ * If we are reconstructing a perticular device, we can avoid
+ * reading the respective chunk in, because we're going to
+ * reconstruct it anyway.
+ *
+ * We can't do that for resynchronization of rotating parity,
+ * because the recovery stripe chunk size is typically larger
+ * than the sets chunk size.
+ */
+ if (pi > -1)
+ ClearChunkIo(CHUNK(stripe, pi));
+
+ return stripe_chunks_rw(stripe);
+}
+
+/* Write a stripe to a raid set for recovery. */
+static int stripe_recover_write(struct stripe *stripe, int pi)
+{
+ BUG_ON(stripe_io_ref(stripe));
+
+ /*
+ * If this is a reconstruct of a particular device, then
+ * reconstruct the respective chunk, else create parity chunk.
+ */
+ if (pi > -1) {
+ stripe_zero_chunk(stripe, pi);
+ common_xor(stripe, stripe->io.size, 0, pi);
+ chunk_set(CHUNK(stripe, pi), DIRTY);
+ } else
+ parity_xor(stripe);
+
+ return stripe_chunks_rw(stripe);
+}
+
+/* Read/write a recovery stripe. */
+static int stripe_recover_rw(struct stripe *stripe)
+{
+ int r = 0, sync = 0;
+
+ /* Read/write flip-flop. */
+ if (TestClearStripeRBW(stripe)) {
+ SetStripeMerged(stripe);
+ stripe->key = stripe->recover->pos;
+ r = stripe_recover_read(stripe, dev_for_parity(stripe, &sync));
+ BUG_ON(!r);
+ } else if (TestClearStripeMerged(stripe)) {
+ r = stripe_recover_write(stripe, dev_for_parity(stripe, &sync));
+ BUG_ON(!r);
+ }
+
+ BUG_ON(sync);
+ return r;
+}
+
+/* Recover bandwidth available ?. */
+static int recover_bandwidth(struct raid_set *rs)
+{
+ int r, work;
+
+ /* On reset or when bios delayed -> allow recovery. */
+ r = recover_io_reset(rs);
+ if (r || RSBandwidth(rs))
+ goto out;
+
+ work = atomic_read(rs->recover.io_count + IO_WORK);
+ if (work) {
+ /* Pay attention to larger recover stripe size. */
+ int recover = atomic_read(rs->recover.io_count + IO_RECOVER) *
+ rs->recover.io_size / rs->set.io_size;
+
+ /*
+ * Don't use more than given bandwidth
+ * of the work io for recovery.
+ */
+ if (recover > work / rs->recover.bandwidth_work) {
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + S_NO_BANDWIDTH);
+ return 0;
+ }
+ }
+
+out:
+ atomic_inc(rs->stats + S_BANDWIDTH); /* REMOVEME: statistics. */
+ return 1;
+}
+
+/* Try to get a region to recover. */
+static int stripe_recover_get_region(struct stripe *stripe)
+{
+ struct raid_set *rs = RS(stripe->sc);
+ struct recover *rec = &rs->recover;
+ struct recover_addr *addr = stripe->recover;
+ struct dm_dirty_log *dl = rec->dl;
+ struct dm_rh_client *rh = rec->rh;
+
+ BUG_ON(!dl);
+ BUG_ON(!rh);
+
+ /* Return, that we have region first to finish it during suspension. */
+ if (addr->reg)
+ return 1;
+
+ if (RSSuspend(rs))
+ return -EPERM;
+
+ if (dl->type->get_sync_count(dl) >= rec->nr_regions)
+ return -ENOENT;
+
+ /* If we don't have enough bandwidth, we don't proceed recovering. */
+ if (!recover_bandwidth(rs))
+ return -EAGAIN;
+
+ /* Start quiescing a region. */
+ dm_rh_recovery_prepare(rh);
+ addr->reg = dm_rh_recovery_start(rh);
+ if (!addr->reg)
+ return -EAGAIN;
+
+ addr->pos = dm_rh_region_to_sector(rh, dm_rh_get_region_key(addr->reg));
+ addr->end = addr->pos + dm_rh_get_region_size(rh);
+
+ /*
+ * Take one global io reference out for the
+ * whole region, which is going to be released
+ * when the region is completely done with.
+ */
+ io_get(rs);
+ return 0;
+}
+
+/* Update region hash state. */
+enum recover_type { REC_FAILURE = 0, REC_SUCCESS = 1 };
+static void recover_rh_update(struct stripe *stripe, enum recover_type success)
+{
+ struct recover_addr *addr = stripe->recover;
+ struct raid_set *rs = RS(stripe->sc);
+ struct recover *rec = &rs->recover;
+
+ if (!addr->reg) {
+ DMERR("%s- Called w/o region", __func__);
+ return;
+ }
+
+ dm_rh_recovery_end(addr->reg, success);
+ if (success)
+ rec->nr_regions_recovered++;
+
+ addr->reg = NULL;
+
+ /*
+ * Completely done with this region ->
+ * release the 1st io reference.
+ */
+ io_put(rs);
+}
+
+/* Set start of recovery state. */
+static void set_start_recovery(struct raid_set *rs)
+{
+ /* Initialize recovery. */
+ rs->recover.start_jiffies = jiffies;
+ rs->recover.end_jiffies = 0;
+}
+
+/* Set end of recovery state. */
+static void set_end_recovery(struct raid_set *rs)
+{
+ ClearRSRecover(rs);
+ rs->set.dev_to_init = -1;
+
+ /* Check for jiffies overrun. */
+ rs->recover.end_jiffies = jiffies;
+ if (rs->recover.end_jiffies < rs->recover.start_jiffies)
+ rs->recover.end_jiffies = ~0;
+}
+
+/* Handle recovery on one recovery stripe. */
+static int _do_recovery(struct stripe *stripe)
+{
+ int r;
+ struct raid_set *rs = RS(stripe->sc);
+ struct recover_addr *addr = stripe->recover;
+
+ /* If recovery is active -> return. */
+ if (stripe_io_ref(stripe))
+ return 1;
+
+ /* IO error is fatal for recovery -> stop it. */
+ if (unlikely(StripeError(stripe)))
+ goto err;
+
+ /* Recovery end required. */
+ if (!RSRecover(rs))
+ goto err;
+
+ /* Get a region to recover. */
+ r = stripe_recover_get_region(stripe);
+ switch (r) {
+ case 0: /* Got a new region: flag initial read before write. */
+ SetStripeRBW(stripe);
+ case 1: /* Have a region in the works. */
+ break;
+ case -EAGAIN:
+ /* No bandwidth/quiesced region yet, try later. */
+ if (!io_ref(rs))
+ wake_do_raid_delayed(rs, HZ / 4);
+ case -EPERM:
+ /* Suspend. */
+ return 1;
+ case -ENOENT: /* No more regions to recover. */
+ schedule_work(&rs->io.ws_do_table_event);
+ return 0;
+ default:
+ BUG();
+ }
+
+ /* Read/write a recover stripe. */
+ r = stripe_recover_rw(stripe);
+ if (r)
+ /* IO initiated. */
+ return 1;
+
+ /* Read and write finished-> update recovery position within region. */
+ addr->pos += stripe->io.size;
+
+ /* If we're at end of region, update region hash. */
+ if (addr->pos >= addr->end ||
+ addr->pos >= rs->set.sectors_per_dev)
+ recover_rh_update(stripe, REC_SUCCESS);
+ else
+ /* Prepare to read next region segment. */
+ SetStripeRBW(stripe);
+
+ /* Schedule myself for another round... */
+ wake_do_raid(rs);
+ return 1;
+
+err:
+ /* FIXME: rather try recovering other regions on error? */
+ rs_check_degrade(stripe);
+ recover_rh_update(stripe, REC_FAILURE);
+
+ /* Check state of partially recovered array. */
+ if (RSDegraded(rs) && !RSDead(rs) &&
+ rs->set.dev_to_init != -1 &&
+ rs->set.ei != rs->set.dev_to_init)
+ /* Broken drive != drive to recover -> FATAL. */
+ SetRSDead(rs);
+
+ if (StripeError(stripe)) {
+ char buf[BDEVNAME_SIZE];
+
+ DMERR("stopping recovery due to "
+ "ERROR on /dev/%s, stripe at offset %llu",
+ bdevname(rs->dev[rs->set.ei].dev->bdev, buf),
+ (unsigned long long) stripe->key);
+
+ }
+
+ /* Make sure, that all quiesced regions get released. */
+ while (addr->reg) {
+ dm_rh_recovery_end(addr->reg, -EIO);
+ addr->reg = dm_rh_recovery_start(rs->recover.rh);
+ }
+
+ return 0;
+}
+
+/* Called by main io daemon to recover regions. */
+static void do_recovery(struct raid_set *rs)
+{
+ if (RSRecover(rs)) {
+ int r = 0;
+ struct stripe *stripe;
+
+ list_for_each_entry(stripe, &rs->recover.stripes,
+ lists[LIST_RECOVER])
+ r += _do_recovery(stripe);
+
+ if (!r) {
+ set_end_recovery(rs);
+ stripe_recover_free(rs);
+ }
+ }
+}
+
+/*
+ * END recovery functions
+ */
+
+/* End io process all stripes handed in by endio() callback. */
+static void _do_endios(struct raid_set *rs, struct stripe *stripe,
+ struct list_head *flush_list)
+{
+ /* First unlock all required chunks. */
+ stripe_chunks_unlock(stripe);
+
+ /*
+ * If an io error on a stripe occured, degrade the RAID set
+ * and try to endio as many bios as possible. If any bios can't
+ * be endio processed, requeue the stripe (stripe_ref() != 0).
+ */
+ if (TestClearStripeError(stripe)) {
+ /*
+ * FIXME: if read, rewrite the failed chunk after reconstruction
+ * in order to trigger disk bad sector relocation.
+ */
+ rs_check_degrade(stripe); /* Resets ChunkError(). */
+ ClearStripeReconstruct(stripe);
+ ClearStripeReconstructed(stripe);
+ }
+
+ /* Got to reconstruct a missing chunk. */
+ if (StripeReconstruct(stripe)) {
+ /*
+ * (*2*) We use StripeReconstruct() to allow for
+ * all chunks to be xored into the reconstructed
+ * one (see chunk_must_xor()).
+ */
+ stripe_reconstruct(stripe);
+
+ /*
+ * (*3*) Now we reset StripeReconstruct() and flag
+ * StripeReconstructed() to show to stripe_rw(),
+ * that we have reconstructed a missing chunk.
+ */
+ ClearStripeReconstruct(stripe);
+ SetStripeReconstructed(stripe);
+
+ /* FIXME: reschedule to be written in case of read. */
+ // if (!StripeRBW(stripe)) {
+ // chunk_set(CHUNK(stripe, pr), DIRTY);
+ // stripe_chunks_rw(stripe);
+ // }
+ }
+
+ /*
+ * Now that we eventually got a complete stripe, we
+ * can process the rest of the end ios on reads.
+ */
+ stripe_endio(READ, stripe);
+
+ /* End io all merged writes. */
+ if (TestClearStripeMerged(stripe))
+ stripe_endio(WRITE_MERGED, stripe);
+
+ /* If RAID set is dead -> fail any ios to dead drives. */
+ if (RSDead(rs)) {
+ DMERR_LIMIT("RAID set dead: failing ios to dead devices");
+ stripe_fail_io(stripe);
+ }
+
+ /*
+ * We have stripe references still,
+ * beacuse of read befeore writes or IO errors ->
+ * got to put on flush list for processing.
+ */
+ if (stripe_ref(stripe)) {
+ BUG_ON(!list_empty(stripe->lists + LIST_LRU));
+ list_add_tail(stripe->lists + LIST_FLUSH, flush_list);
+ atomic_inc(rs->stats + S_REQUEUE); /* REMOVEME: statistics. */
+ } else
+ stripe_lru_add(stripe);
+}
+
+/* Pop any endio stripes off of the endio list and belabour them. */
+static void do_endios(struct raid_set *rs)
+{
+ struct stripe_cache *sc = &rs->sc;
+ struct stripe *stripe;
+ /* IO flush list for sorted requeued stripes. */
+ struct list_head flush_list;
+
+ INIT_LIST_HEAD(&flush_list);
+
+ while ((stripe = stripe_endio_pop(sc))) {
+ /* Avoid endio on stripes with newly io'ed chunks. */
+ if (!stripe_io_ref(stripe))
+ _do_endios(rs, stripe, &flush_list);
+ }
+
+ /*
+ * Insert any requeued stripes in the proper
+ * order at the beginning of the io (flush) list.
+ */
+ list_splice(&flush_list, sc->lists + LIST_FLUSH);
+}
+
+/* Flush any stripes on the io list. */
+static void do_flush(struct raid_set *rs)
+{
+ struct stripe *stripe;
+
+ while ((stripe = stripe_io_pop(&rs->sc)))
+ stripe_rw(stripe); /* Read/write stripe. */
+}
+
+/* Stripe cache resizing. */
+static void do_sc_resize(struct raid_set *rs)
+{
+ unsigned set = atomic_read(&rs->sc.stripes_to_set);
+
+ if (set) {
+ unsigned cur = atomic_read(&rs->sc.stripes);
+ int r = (set > cur) ? sc_grow(&rs->sc, set - cur, SC_GROW) :
+ sc_shrink(&rs->sc, cur - set);
+
+ /* Flag end of resizeing if ok. */
+ if (!r)
+ atomic_set(&rs->sc.stripes_to_set, 0);
+ }
+}
+
+/*
+ * Process all ios
+ *
+ * We do different things with the io depending
+ * on the state of the region that it is in:
+ *
+ * o reads: hang off stripe cache or postpone if full
+ *
+ * o writes:
+ *
+ * CLEAN/DIRTY/NOSYNC: increment pending and hang io off stripe's stripe set.
+ * In case stripe cache is full or busy, postpone the io.
+ *
+ * RECOVERING: delay the io until recovery of the region completes.
+ *
+ */
+static void do_ios(struct raid_set *rs, struct bio_list *ios)
+{
+ int r;
+ unsigned flush = 0, delay = 0;
+ sector_t sector;
+ struct dm_rh_client *rh = rs->recover.rh;
+ struct bio *bio;
+ struct bio_list reject;
+
+ bio_list_init(&reject);
+
+ /*
+ * Classify each io:
+ * o delay writes to recovering regions (let reads go through)
+ * o queue io to all other regions
+ */
+ while ((bio = bio_list_pop(ios))) {
+ /*
+ * In case we get a barrier bio, push it back onto
+ * the input queue unless all work queues are empty
+ * and the stripe cache is inactive.
+ */
+ if (unlikely(bio_rw_flagged(bio, BIO_RW_BARRIER))) {
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + S_BARRIER);
+ if (delay ||
+ !list_empty(rs->sc.lists + LIST_FLUSH) ||
+ !bio_list_empty(&reject) ||
+ sc_active(&rs->sc)) {
+ bio_list_push(ios, bio);
+ break;
+ }
+ }
+
+ /* Check for recovering regions. */
+ sector = _sector(rs, bio);
+ r = region_state(rs, sector, DM_RH_RECOVERING);
+ if (unlikely(r && bio_data_dir(bio) == WRITE)) {
+ delay++;
+ /* Wait writing to recovering regions. */
+ dm_rh_delay_by_region(rh, bio,
+ dm_rh_sector_to_region(rh,
+ sector));
+ /* REMOVEME: statistics.*/
+ atomic_inc(rs->stats + S_DELAYED_BIOS);
+ atomic_inc(rs->stats + S_SUM_DELAYED_BIOS);
+
+ /* Force bandwidth tests in recovery. */
+ SetRSBandwidth(rs);
+ } else {
+ /*
+ * Process ios to non-recovering regions by queueing
+ * them to stripes (does dm_rh_inc()) for writes).
+ */
+ flush += stripe_queue_bio(rs, bio, &reject);
+ }
+ }
+
+ if (flush) {
+ /* FIXME: better error handling. */
+ r = dm_rh_flush(rh); /* Writes got queued -> flush dirty log. */
+ if (r)
+ DMERR_LIMIT("dirty log flush");
+ }
+
+ /* Merge any rejected bios back to the head of the input list. */
+ bio_list_merge_head(ios, &reject);
+}
+
+/* Unplug: let any queued io role on the sets devices. */
+static void do_unplug(struct raid_set *rs)
+{
+ struct raid_dev *dev = rs->dev + rs->set.raid_devs;
+
+ while (dev-- > rs->dev) {
+ /* Only call any device unplug function, if io got queued. */
+ if (TestClearDevIoQueued(dev))
+ blk_unplug(bdev_get_queue(dev->dev->bdev));
+ }
+}
+
+/* Send an event in case we're getting too busy. */
+static void do_busy_event(struct raid_set *rs)
+{
+ if (sc_busy(rs)) {
+ if (!TestSetRSScBusy(rs))
+ schedule_work(&rs->io.ws_do_table_event);
+ }
+
+ ClearRSScBusy(rs);
+}
+
+/* Throw an event. */
+static void do_table_event(struct work_struct *ws)
+{
+ struct raid_set *rs = container_of(ws, struct raid_set,
+ io.ws_do_table_event);
+ dm_table_event(rs->ti->table);
+}
+
+
+/*-----------------------------------------------------------------
+ * RAID daemon
+ *---------------------------------------------------------------*/
+/*
+ * o belabour all end ios
+ * o update the region hash states
+ * o optionally shrink the stripe cache
+ * o optionally do recovery
+ * o unplug any component raid devices with queued bios
+ * o grab the input queue
+ * o work an all requeued or new ios and perform stripe cache flushs
+ * o unplug any component raid devices with queued bios
+ * o check, if the stripe cache gets too busy and throw an event if so
+ */
+static void do_raid(struct work_struct *ws)
+{
+ struct raid_set *rs = container_of(ws, struct raid_set,
+ io.dws_do_raid.work);
+ struct bio_list *ios = &rs->io.work, *ios_in = &rs->io.in;
+
+ /*
+ * We always need to end io, so that ios can get errored in
+ * case the set failed and the region counters get decremented
+ * before we update region hash states and go any further.
+ */
+ do_endios(rs);
+ dm_rh_update_states(rs->recover.rh, 1);
+
+ /*
+ * Now that we've end io'd, which may have put stripes on the LRU list
+ * to allow for shrinking, we resize the stripe cache if requested.
+ */
+ do_sc_resize(rs);
+
+ /* Try to recover regions. */
+ do_recovery(rs);
+ do_unplug(rs); /* Unplug the sets device queues. */
+
+ /* Quickly grab all new ios queued and add them to the work list. */
+ mutex_lock(&rs->io.in_lock);
+ bio_list_merge(ios, ios_in);
+ bio_list_init(ios_in);
+ mutex_unlock(&rs->io.in_lock);
+
+ if (!bio_list_empty(ios))
+ do_ios(rs, ios); /* Got ios to work into the cache. */
+
+ do_flush(rs); /* Flush any stripes on io list. */
+ do_unplug(rs); /* Unplug the sets device queues. */
+ do_busy_event(rs); /* Check if we got too busy. */
+}
+
+/*
+ * Callback for region hash to dispatch
+ * delayed bios queued to recovered regions
+ * (gets called via dm_rh_update_states()).
+ */
+static void dispatch_delayed_bios(void *context, struct bio_list *bl)
+{
+ struct raid_set *rs = context;
+ struct bio *bio;
+
+ /* REMOVEME: statistics; decrement pending delayed bios counter. */
+ bio_list_for_each(bio, bl)
+ atomic_dec(rs->stats + S_DELAYED_BIOS);
+
+ /* Merge region hash private list to work list. */
+ bio_list_merge_head(&rs->io.work, bl);
+ bio_list_init(bl);
+ ClearRSBandwidth(rs);
+}
+
+/*************************************************************
+ * Constructor helpers
+ *************************************************************/
+/* Calculate MB/sec. */
+static unsigned mbpers(struct raid_set *rs, unsigned speed)
+{
+ return to_bytes(speed * rs->set.data_devs *
+ rs->recover.io_size * HZ >> 10) >> 10;
+}
+
+/*
+ * Discover fastest xor algorithm and # of chunks combination.
+ */
+/* Calculate speed for algorithm and # of chunks. */
+static unsigned xor_speed(struct stripe *stripe)
+{
+ unsigned r = 0;
+ unsigned long j;
+
+ /* Wait for next tick. */
+ for (j = jiffies; j == jiffies; )
+ ;
+
+ /* Do xors for a full tick. */
+ for (j = jiffies; j == jiffies; ) {
+ mb();
+ common_xor(stripe, stripe->io.size, 0, 0);
+ mb();
+ r++;
+ }
+
+ return r;
+}
+
+/* Optimize xor algorithm for this RAID set. */
+static unsigned xor_optimize(struct raid_set *rs)
+{
+ unsigned chunks_max = 2, p = rs->set.raid_devs, speed_max = 0;
+ struct xor_func *f = ARRAY_END(xor_funcs), *f_max = NULL;
+ struct stripe *stripe;
+
+ BUG_ON(list_empty(&rs->recover.stripes));
+ stripe = list_first_entry(&rs->recover.stripes, struct stripe,
+ lists[LIST_RECOVER]);
+
+ /* Must set uptodate so that xor() will belabour chunks. */
+ while (p--)
+ SetChunkUptodate(CHUNK(stripe, p));
+
+ /* Try all xor functions. */
+ while (f-- > xor_funcs) {
+ unsigned speed;
+
+ /* Set actual xor function for common_xor(). */
+ rs->xor.f = f;
+ rs->xor.chunks = (f->f == xor_blocks_wrapper ?
+ (MAX_XOR_BLOCKS + 1) : XOR_CHUNKS_MAX) + 1;
+
+ while (rs->xor.chunks-- > 2) {
+ speed = xor_speed(stripe);
+ if (speed > speed_max) {
+ speed_max = speed;
+ chunks_max = rs->xor.chunks;
+ f_max = f;
+ }
+ }
+ }
+
+ /* Memorize optimum parameters. */
+ rs->xor.f = f_max;
+ rs->xor.chunks = chunks_max;
+ return speed_max;
+}
+
+/*
+ * Allocate a RAID context (a RAID set)
+ */
+/* Structure for variable RAID parameters. */
+struct variable_parms {
+ int bandwidth;
+ int bandwidth_parm;
+ int chunk_size;
+ int chunk_size_parm;
+ int io_size;
+ int io_size_parm;
+ int stripes;
+ int stripes_parm;
+ int recover_io_size;
+ int recover_io_size_parm;
+ int raid_parms;
+ int recovery;
+ int recovery_stripes;
+ int recovery_stripes_parm;
+};
+
+static struct raid_set *
+context_alloc(struct raid_type *raid_type, struct variable_parms *p,
+ unsigned raid_devs, sector_t sectors_per_dev,
+ struct dm_target *ti, unsigned dl_parms, char **argv)
+{
+ int r;
+ size_t len;
+ sector_t region_size, ti_len;
+ struct raid_set *rs = NULL;
+ struct dm_dirty_log *dl;
+ struct recover *rec;
+
+ /*
+ * Create the dirty log
+ *
+ * We need to change length for the dirty log constructor,
+ * because we want an amount of regions for all stripes derived
+ * from the single device size, so that we can keep region
+ * size = 2^^n independant of the number of devices
+ */
+ ti_len = ti->len;
+ ti->len = sectors_per_dev;
+ dl = dm_dirty_log_create(argv[0], ti, NULL, dl_parms, argv + 2);
+ ti->len = ti_len;
+ if (!dl)
+ goto bad_dirty_log;
+
+ /* Chunk size *must* be smaller than region size. */
+ region_size = dl->type->get_region_size(dl);
+ if (p->chunk_size > region_size)
+ goto bad_chunk_size;
+
+ /* Recover io size *must* be smaller than region size as well. */
+ if (p->recover_io_size > region_size)
+ goto bad_recover_io_size;
+
+ /* Size and allocate the RAID set structure. */
+ len = sizeof(*rs->data) + sizeof(*rs->dev);
+ if (dm_array_too_big(sizeof(*rs), len, raid_devs))
+ goto bad_array;
+
+ len = sizeof(*rs) + raid_devs * len;
+ rs = kzalloc(len, GFP_KERNEL);
+ if (!rs)
+ goto bad_alloc;
+
+ rec = &rs->recover;
+ atomic_set(&rs->io.in_process, 0);
+ atomic_set(&rs->io.in_process_max, 0);
+ rec->io_size = p->recover_io_size;
+
+ /* Pointer to data array. */
+ rs->data = (unsigned long **)
+ ((void *) rs->dev + raid_devs * sizeof(*rs->dev));
+ rec->dl = dl;
+ rs->set.raid_devs = raid_devs;
+ rs->set.data_devs = raid_devs - raid_type->parity_devs;
+ rs->set.raid_type = raid_type;
+
+ rs->set.raid_parms = p->raid_parms;
+ rs->set.chunk_size_parm = p->chunk_size_parm;
+ rs->set.io_size_parm = p->io_size_parm;
+ rs->sc.stripes_parm = p->stripes_parm;
+ rec->io_size_parm = p->recover_io_size_parm;
+ rec->bandwidth_parm = p->bandwidth_parm;
+ rec->recovery = p->recovery;
+ rec->recovery_stripes = p->recovery_stripes;
+
+ /*
+ * Set chunk and io size and respective shifts
+ * (used to avoid divisions)
+ */
+ rs->set.chunk_size = p->chunk_size;
+ rs->set.chunk_shift = ffs(p->chunk_size) - 1;
+
+ rs->set.io_size = p->io_size;
+ rs->set.io_mask = p->io_size - 1;
+ /* Mask to adjust address key in case io_size != chunk_size. */
+ rs->set.io_inv_mask = (p->chunk_size - 1) & ~rs->set.io_mask;
+
+ rs->set.sectors_per_dev = sectors_per_dev;
+
+ rs->set.ei = -1; /* Indicate no failed device. */
+ atomic_set(&rs->set.failed_devs, 0);
+
+ rs->ti = ti;
+
+ atomic_set(rec->io_count + IO_WORK, 0);
+ atomic_set(rec->io_count + IO_RECOVER, 0);
+
+ /* Initialize io lock and queues. */
+ mutex_init(&rs->io.in_lock);
+ bio_list_init(&rs->io.in);
+ bio_list_init(&rs->io.work);
+
+ init_waitqueue_head(&rs->io.suspendq); /* Suspend waiters (dm-io). */
+
+ rec->nr_regions = dm_sector_div_up(sectors_per_dev, region_size);
+ rec->rh = dm_region_hash_create(rs, dispatch_delayed_bios,
+ wake_dummy, wake_do_raid, 0, p->recovery_stripes,
+ dl, region_size, rec->nr_regions);
+ if (IS_ERR(rec->rh))
+ goto bad_rh;
+
+ /* Initialize stripe cache. */
+ r = sc_init(rs, p->stripes);
+ if (r)
+ goto bad_sc;
+
+ /* REMOVEME: statistics. */
+ stats_reset(rs);
+ ClearRSDevelStats(rs); /* Disnable development status. */
+ return rs;
+
+bad_dirty_log:
+ TI_ERR_RET("Error creating dirty log", ERR_PTR(-ENOMEM));
+
+bad_chunk_size:
+ dm_dirty_log_destroy(dl);
+ TI_ERR_RET("Chunk size larger than region size", ERR_PTR(-EINVAL));
+
+bad_recover_io_size:
+ dm_dirty_log_destroy(dl);
+ TI_ERR_RET("Recover stripe io size larger than region size",
+ ERR_PTR(-EINVAL));
+
+bad_array:
+ dm_dirty_log_destroy(dl);
+ TI_ERR_RET("Arry too big", ERR_PTR(-EINVAL));
+
+bad_alloc:
+ dm_dirty_log_destroy(dl);
+ TI_ERR_RET("Cannot allocate raid context", ERR_PTR(-ENOMEM));
+
+bad_rh:
+ dm_dirty_log_destroy(dl);
+ ti->error = DM_MSG_PREFIX "Error creating dirty region hash";
+ goto free_rs;
+
+bad_sc:
+ dm_region_hash_destroy(rec->rh); /* Destroys dirty log too. */
+ sc_exit(&rs->sc);
+ ti->error = DM_MSG_PREFIX "Error creating stripe cache";
+free_rs:
+ kfree(rs);
+ return ERR_PTR(-ENOMEM);
+}
+
+/* Free a RAID context (a RAID set). */
+static void context_free(struct raid_set *rs, unsigned p)
+{
+ while (p--)
+ dm_put_device(rs->ti, rs->dev[p].dev);
+
+ sc_exit(&rs->sc);
+ dm_region_hash_destroy(rs->recover.rh); /* Destroys dirty log too. */
+ kfree(rs);
+}
+
+/* Create work queue and initialize delayed work. */
+static int rs_workqueue_init(struct raid_set *rs)
+{
+ struct dm_target *ti = rs->ti;
+
+ rs->io.wq = create_singlethread_workqueue(DAEMON);
+ if (!rs->io.wq)
+ TI_ERR_RET("failed to create " DAEMON, -ENOMEM);
+
+ INIT_DELAYED_WORK(&rs->io.dws_do_raid, do_raid);
+ INIT_WORK(&rs->io.ws_do_table_event, do_table_event);
+ return 0;
+}
+
+/* Return pointer to raid_type structure for raid name. */
+static struct raid_type *get_raid_type(char *name)
+{
+ struct raid_type *r = ARRAY_END(raid_types);
+
+ while (r-- > raid_types) {
+ if (!strcmp(r->name, name))
+ return r;
+ }
+
+ return NULL;
+}
+
+/* FIXME: factor out to dm core. */
+static int multiple(sector_t a, sector_t b, sector_t *n)
+{
+ sector_t r = a;
+
+ sector_div(r, b);
+ *n = r;
+ return a == r * b;
+}
+
+/* Log RAID set information to kernel log. */
+static void rs_log(struct raid_set *rs, unsigned speed)
+{
+ unsigned p;
+ char buf[BDEVNAME_SIZE];
+
+ for (p = 0; p < rs->set.raid_devs; p++)
+ DMINFO("/dev/%s is raid disk %u%s",
+ bdevname(rs->dev[p].dev->bdev, buf), p,
+ (p == rs->set.pi) ? " (parity)" : "");
+
+ DMINFO("%d/%d/%d sectors chunk/io/recovery size, %u stripes\n"
+ "algorithm \"%s\", %u chunks with %uMB/s\n"
+ "%s set with net %u/%u devices",
+ rs->set.chunk_size, rs->set.io_size, rs->recover.io_size,
+ atomic_read(&rs->sc.stripes),
+ rs->xor.f->name, rs->xor.chunks, mbpers(rs, speed),
+ rs->set.raid_type->descr, rs->set.data_devs, rs->set.raid_devs);
+}
+
+/* Get all devices and offsets. */
+static int dev_parms(struct raid_set *rs, char **argv, int *p)
+{
+ struct dm_target *ti = rs->ti;
+
+ for (*p = 0; *p < rs->set.raid_devs; (*p)++, argv += 2) {
+ int r;
+ unsigned long long tmp;
+ struct raid_dev *dev = rs->dev + *p;
+
+ /* Get offset and device. */
+ if (sscanf(argv[1], "%llu", &tmp) != 1 ||
+ tmp > rs->set.sectors_per_dev)
+ TI_ERR("Invalid RAID device offset parameter");
+
+ dev->start = tmp;
+ r = dm_get_device(ti, *argv, dm_table_get_mode(ti->table), &dev->dev);
+ if (r)
+ TI_ERR_RET("RAID device lookup failure", r);
+
+ r = raid_dev_lookup(rs, dev);
+ if (r != -ENODEV && r < *p) {
+ (*p)++; /* Ensure dm_put_device() on actual device. */
+ TI_ERR_RET("Duplicate RAID device", -ENXIO);
+ }
+ }
+
+ return 0;
+}
+
+/* Set recovery bandwidth. */
+static void
+recover_set_bandwidth(struct raid_set *rs, unsigned bandwidth)
+{
+ rs->recover.bandwidth = bandwidth;
+ rs->recover.bandwidth_work = 100 / bandwidth;
+}
+
+/* Handle variable number of RAID parameters. */
+static int get_raid_variable_parms(struct dm_target *ti, char **argv,
+ struct variable_parms *vp)
+{
+ int p, value;
+ struct {
+ int action; /* -1: skip, 0: no pwer2 check, 1: power2 check */
+ char *errmsg;
+ int min, max;
+ int *var, *var2, *var3;
+ } argctr[] = {
+ { 1,
+ "Invalid chunk size; must be -1 or 2^^n and <= 16384",
+ IO_SIZE_MIN, CHUNK_SIZE_MAX,
+ &vp->chunk_size_parm, &vp->chunk_size, &vp->io_size },
+ { 0,
+ "Invalid number of stripes: must be -1 or >= 8 and <= 16384",
+ STRIPES_MIN, STRIPES_MAX,
+ &vp->stripes_parm, &vp->stripes, NULL },
+ { 1,
+ "Invalid io size; must -1 or >= 8, 2^^n and less equal "
+ "min(BIO_MAX_SECTORS/2, chunk size)",
+ IO_SIZE_MIN, 0, /* Needs to be updated in loop below. */
+ &vp->io_size_parm, &vp->io_size, NULL },
+ { 1,
+ "Invalid recovery io size; must be -1 or "
+ "2^^n and less equal BIO_MAX_SECTORS/2",
+ RECOVER_IO_SIZE_MIN, BIO_MAX_SECTORS / 2,
+ &vp->recover_io_size_parm, &vp->recover_io_size, NULL },
+ { 0,
+ "Invalid recovery bandwidth percentage; "
+ "must be -1 or > 0 and <= 100",
+ BANDWIDTH_MIN, BANDWIDTH_MAX,
+ &vp->bandwidth_parm, &vp->bandwidth, NULL },
+ /* Handle sync argument seperately in loop. */
+ { -1,
+ "Invalid recovery switch; must be \"sync\" or \"nosync\"" },
+ { 0,
+ "Invalid number of recovery stripes;"
+ "must be -1, > 0 and <= 16384",
+ RECOVERY_STRIPES_MIN, RECOVERY_STRIPES_MAX,
+ &vp->recovery_stripes_parm, &vp->recovery_stripes, NULL },
+ }, *varp;
+
+ /* Fetch # of variable raid parameters. */
+ if (sscanf(*(argv++), "%d", &vp->raid_parms) != 1 ||
+ !range_ok(vp->raid_parms, 0, 7))
+ TI_ERR("Bad variable raid parameters number");
+
+ /* Preset variable RAID parameters. */
+ vp->chunk_size = CHUNK_SIZE_DEFAULT;
+ vp->io_size = IO_SIZE_DEFAULT;
+ vp->stripes = STRIPES_DEFAULT;
+ vp->recover_io_size = RECOVER_IO_SIZE_DEFAULT;
+ vp->bandwidth = BANDWIDTH_DEFAULT;
+ vp->recovery = 1;
+ vp->recovery_stripes = RECOVERY_STRIPES_DEFAULT;
+
+ /* Walk the array of argument constraints for all given ones. */
+ for (p = 0, varp = argctr; p < vp->raid_parms; p++, varp++) {
+ BUG_ON(varp >= ARRAY_END(argctr));
+
+ /* Special case for "[no]sync" string argument. */
+ if (varp->action < 0) {
+ if (!strcmp(*argv, "sync"))
+ ;
+ else if (!strcmp(*argv, "nosync"))
+ vp->recovery = 0;
+ else
+ TI_ERR(varp->errmsg);
+
+ argv++;
+ continue;
+ }
+
+ /*
+ * Special case for io_size depending
+ * on previously set chunk size.
+ */
+ if (p == 2)
+ varp->max = min(BIO_MAX_SECTORS / 2, vp->chunk_size);
+
+ if (sscanf(*(argv++), "%d", &value) != 1 ||
+ (value != -1 &&
+ ((varp->action && !POWER_OF_2(value)) ||
+ !range_ok(value, varp->min, varp->max))))
+ TI_ERR(varp->errmsg);
+
+ *varp->var = value;
+ if (value != -1) {
+ if (varp->var2)
+ *varp->var2 = value;
+ if (varp->var3)
+ *varp->var3 = value;
+ }
+ }
+
+ return 0;
+}
+
+/* Parse optional locking parameters. */
+static int get_raid_locking_parms(struct dm_target *ti, char **argv,
+ int *locking_parms,
+ struct dm_raid45_locking_type **locking_type)
+{
+ if (!strnicmp(argv[0], "locking", strlen(argv[0]))) {
+ char *lckstr = argv[1];
+ size_t lcksz = strlen(lckstr);
+
+ if (!strnicmp(lckstr, "none", lcksz)) {
+ *locking_type = &locking_none;
+ *locking_parms = 2;
+ } else if (!strnicmp(lckstr, "cluster", lcksz)) {
+ DMERR("locking type \"%s\" not yet implemented",
+ lckstr);
+ return -EINVAL;
+ } else {
+ DMERR("unknown locking type \"%s\"", lckstr);
+ return -EINVAL;
+ }
+ }
+
+ *locking_parms = 0;
+ *locking_type = &locking_none;
+ return 0;
+}
+
+/* Set backing device read ahead properties of RAID set. */
+static void rs_set_read_ahead(struct raid_set *rs,
+ unsigned sectors, unsigned stripes)
+{
+ unsigned ra_pages = dm_div_up(sectors, SECTORS_PER_PAGE);
+ struct mapped_device *md = dm_table_get_md(rs->ti->table);
+ struct backing_dev_info *bdi = &dm_disk(md)->queue->backing_dev_info;
+
+ /* Set read-ahead for the RAID set and the component devices. */
+ if (ra_pages) {
+ unsigned p = rs->set.raid_devs;
+
+ bdi->ra_pages = stripes * ra_pages * rs->set.data_devs;
+
+ while (p--) {
+ struct request_queue *q =
+ bdev_get_queue(rs->dev[p].dev->bdev);
+
+ q->backing_dev_info.ra_pages = ra_pages;
+ }
+ }
+
+ dm_put(md);
+}
+
+/* Set congested function. */
+static void rs_set_congested_fn(struct raid_set *rs)
+{
+ struct mapped_device *md = dm_table_get_md(rs->ti->table);
+ struct backing_dev_info *bdi = &dm_disk(md)->queue->backing_dev_info;
+
+ /* Set congested function and data. */
+ bdi->congested_fn = rs_congested;
+ bdi->congested_data = rs;
+ dm_put(md);
+}
+
+/*
+ * Construct a RAID4/5 mapping:
+ *
+ * log_type #log_params <log_params> \
+ * raid_type [#parity_dev] #raid_variable_params <raid_params> \
+ * [locking "none"/"cluster"]
+ * #raid_devs #dev_to_initialize [<dev_path> <offset>]{3,}
+ *
+ * log_type = "core"/"disk",
+ * #log_params = 1-3 (1-2 for core dirty log type, 3 for disk dirty log only)
+ * log_params = [dirty_log_path] region_size [[no]sync])
+ *
+ * raid_type = "raid4", "raid5_la", "raid5_ra", "raid5_ls", "raid5_rs"
+ *
+ * #parity_dev = N if raid_type = "raid4"
+ * o N = -1: pick default = last device
+ * o N >= 0 and < #raid_devs: parity device index
+ *
+ * #raid_variable_params = 0-7; raid_params (-1 = default):
+ * [chunk_size [#stripes [io_size [recover_io_size \
+ * [%recovery_bandwidth [recovery_switch [#recovery_stripes]]]]]]]
+ * o chunk_size (unit to calculate drive addresses; must be 2^^n, > 8
+ * and <= CHUNK_SIZE_MAX)
+ * o #stripes is number of stripes allocated to stripe cache
+ * (must be > 1 and < STRIPES_MAX)
+ * o io_size (io unit size per device in sectors; must be 2^^n and > 8)
+ * o recover_io_size (io unit size per device for recovery in sectors;
+ must be 2^^n, > SECTORS_PER_PAGE and <= region_size)
+ * o %recovery_bandwith is the maximum amount spend for recovery during
+ * application io (1-100%)
+ * o recovery switch = [sync|nosync]
+ * o #recovery_stripes is the number of recovery stripes used for
+ * parallel recovery of the RAID set
+ * If raid_variable_params = 0, defaults will be used.
+ * Any raid_variable_param can be set to -1 to apply a default
+ *
+ * #raid_devs = N (N >= 3)
+ *
+ * #dev_to_initialize = N
+ * -1: initialize parity on all devices
+ * >= 0 and < #raid_devs: initialize raid_path; used to force reconstruction
+ * of a failed devices content after replacement
+ *
+ * <dev_path> = device_path (eg, /dev/sdd1)
+ * <offset> = begin at offset on <dev_path>
+ *
+ */
+#define MIN_PARMS 13
+static int raid_ctr(struct dm_target *ti, unsigned argc, char **argv)
+{
+ int dev_to_init, dl_parms, i, locking_parms,
+ parity_parm, pi = -1, r, raid_devs;
+ unsigned speed;
+ sector_t tmp, sectors_per_dev;
+ struct dm_raid45_locking_type *locking;
+ struct raid_set *rs;
+ struct raid_type *raid_type;
+ struct variable_parms parms;
+
+ /* Ensure minimum number of parameters. */
+ if (argc < MIN_PARMS)
+ TI_ERR("Not enough parameters");
+
+ /* Fetch # of dirty log parameters. */
+ if (sscanf(argv[1], "%d", &dl_parms) != 1 ||
+ !range_ok(dl_parms, 1, 4711)) /* ;-) */
+ TI_ERR("Bad dirty log parameters number");
+
+ /* Check raid_type. */
+ raid_type = get_raid_type(argv[dl_parms + 2]);
+ if (!raid_type)
+ TI_ERR("Bad raid type");
+
+ /* In case of RAID4, parity drive is selectable. */
+ parity_parm = !!(raid_type->level == raid4);
+
+ /* Handle variable number of RAID parameters. */
+ r = get_raid_variable_parms(ti, argv + dl_parms + parity_parm + 3,
+ &parms);
+ if (r)
+ return r;
+
+ /* Handle any locking parameters. */
+ r = get_raid_locking_parms(ti,
+ argv + dl_parms + parity_parm +
+ parms.raid_parms + 4,
+ &locking_parms, &locking);
+ if (r)
+ return r;
+
+ /* # of raid devices. */
+ i = dl_parms + parity_parm + parms.raid_parms + locking_parms + 4;
+ if (sscanf(argv[i], "%d", &raid_devs) != 1 ||
+ raid_devs < raid_type->minimal_devs)
+ TI_ERR("Invalid number of raid devices");
+
+ /* In case of RAID4, check parity drive index is in limits. */
+ if (raid_type->level == raid4) {
+ /* Fetch index of parity device. */
+ if (sscanf(argv[dl_parms + 3], "%d", &pi) != 1 ||
+ (pi != -1 && !range_ok(pi, 0, raid_devs - 1)))
+ TI_ERR("Invalid RAID4 parity device index");
+ }
+
+ /*
+ * Index of device to initialize starts at 0
+ *
+ * o -1 -> don't initialize a selected device;
+ * initialize parity conforming to algorithm
+ * o 0..raid_devs-1 -> initialize respective device
+ * (used for reconstruction of a replaced device)
+ */
+ if (sscanf(argv[dl_parms + parity_parm + parms.raid_parms +
+ locking_parms + 5], "%d", &dev_to_init) != 1 ||
+ !range_ok(dev_to_init, -1, raid_devs - 1))
+ TI_ERR("Invalid number for raid device to initialize");
+
+ /* Check # of raid device arguments. */
+ if (argc - dl_parms - parity_parm - parms.raid_parms - 6 !=
+ 2 * raid_devs)
+ TI_ERR("Wrong number of raid device/offset arguments");
+
+ /*
+ * Check that the table length is devisable
+ * w/o rest by (raid_devs - parity_devs)
+ */
+ if (!multiple(ti->len, raid_devs - raid_type->parity_devs,
+ &sectors_per_dev))
+ TI_ERR("Target length not divisible by number of data devices");
+
+ /*
+ * Check that the device size is
+ * devisable w/o rest by chunk size
+ */
+ if (!multiple(sectors_per_dev, parms.chunk_size, &tmp))
+ TI_ERR("Device length not divisible by chunk_size");
+
+ /****************************************************************
+ * Now that we checked the constructor arguments ->
+ * let's allocate the RAID set
+ ****************************************************************/
+ rs = context_alloc(raid_type, &parms, raid_devs, sectors_per_dev,
+ ti, dl_parms, argv);
+ if (IS_ERR(rs))
+ return PTR_ERR(rs);
+
+
+ rs->set.dev_to_init = rs->set.dev_to_init_parm = dev_to_init;
+ rs->set.pi = rs->set.pi_parm = pi;
+
+ /* Set RAID4 parity drive index. */
+ if (raid_type->level == raid4)
+ rs->set.pi = (pi == -1) ? rs->set.data_devs : pi;
+
+ recover_set_bandwidth(rs, parms.bandwidth);
+
+ /* Use locking type to lock stripe access. */
+ rs->locking = locking;
+
+ /* Get the device/offset tupels. */
+ argv += dl_parms + 6 + parity_parm + parms.raid_parms;
+ r = dev_parms(rs, argv, &i);
+ if (r)
+ goto err;
+
+ /* Set backing device information (eg. read ahead). */
+ rs_set_read_ahead(rs, 2 * rs->set.chunk_size, 4 /* stripes */);
+ rs_set_congested_fn(rs); /* Set congested function. */
+ SetRSCheckOverwrite(rs); /* Allow chunk overwrite checks. */
+ speed = xor_optimize(rs); /* Select best xor algorithm. */
+
+ /* Set for recovery of any nosync regions. */
+ if (parms.recovery)
+ SetRSRecover(rs);
+ else {
+ /*
+ * Need to free recovery stripe(s) here in case
+ * of nosync, because xor_optimize uses one.
+ */
+ set_start_recovery(rs);
+ set_end_recovery(rs);
+ stripe_recover_free(rs);
+ }
+
+ /*
+ * Make sure that dm core only hands maximum io size
+ * length down and pays attention to io boundaries.
+ */
+ ti->split_io = rs->set.io_size;
+ ti->private = rs;
+
+ /* Initialize work queue to handle this RAID set's io. */
+ r = rs_workqueue_init(rs);
+ if (r)
+ goto err;
+
+ rs_log(rs, speed); /* Log information about RAID set. */
+ return 0;
+
+err:
+ context_free(rs, i);
+ return r;
+}
+
+/*
+ * Destruct a raid mapping
+ */
+static void raid_dtr(struct dm_target *ti)
+{
+ struct raid_set *rs = ti->private;
+
+ destroy_workqueue(rs->io.wq);
+ context_free(rs, rs->set.raid_devs);
+}
+
+/* Raid mapping function. */
+static int raid_map(struct dm_target *ti, struct bio *bio,
+ union map_info *map_context)
+{
+ /* I don't want to waste stripe cache capacity. */
+ if (bio_rw(bio) == READA)
+ return -EIO;
+ else {
+ struct raid_set *rs = ti->private;
+
+ /*
+ * Get io reference to be waiting for to drop
+ * to zero on device suspension/destruction.
+ */
+ io_get(rs);
+ bio->bi_sector -= ti->begin; /* Remap sector. */
+
+ /* Queue io to RAID set. */
+ mutex_lock(&rs->io.in_lock);
+ bio_list_add(&rs->io.in, bio);
+ mutex_unlock(&rs->io.in_lock);
+
+ /* Wake daemon to process input list. */
+ wake_do_raid(rs);
+
+ /* REMOVEME: statistics. */
+ atomic_inc(rs->stats + (bio_data_dir(bio) == READ ?
+ S_BIOS_READ : S_BIOS_WRITE));
+ return DM_MAPIO_SUBMITTED; /* Handle later. */
+ }
+}
+
+/* Device suspend. */
+static void raid_presuspend(struct dm_target *ti)
+{
+ struct raid_set *rs = ti->private;
+ struct dm_dirty_log *dl = rs->recover.dl;
+
+ SetRSSuspend(rs);
+
+ if (RSRecover(rs))
+ dm_rh_stop_recovery(rs->recover.rh);
+
+ cancel_delayed_work(&rs->io.dws_do_raid);
+ flush_workqueue(rs->io.wq);
+ wait_ios(rs); /* Wait for completion of all ios being processed. */
+
+ if (dl->type->presuspend && dl->type->presuspend(dl))
+ /* FIXME: need better error handling. */
+ DMWARN("log presuspend failed");
+}
+
+static void raid_postsuspend(struct dm_target *ti)
+{
+ struct raid_set *rs = ti->private;
+ struct dm_dirty_log *dl = rs->recover.dl;
+
+ if (dl->type->postsuspend && dl->type->postsuspend(dl))
+ /* FIXME: need better error handling. */
+ DMWARN("log postsuspend failed");
+
+}
+
+/* Device resume. */
+static void raid_resume(struct dm_target *ti)
+{
+ struct raid_set *rs = ti->private;
+ struct recover *rec = &rs->recover;
+ struct dm_dirty_log *dl = rec->dl;
+
+ if (dl->type->resume && dl->type->resume(dl))
+ /* Resume dirty log. */
+ /* FIXME: need better error handling. */
+ DMWARN("log resume failed");
+
+ rec->nr_regions_to_recover =
+ rec->nr_regions - dl->type->get_sync_count(dl);
+
+ /* Restart any unfinished recovery. */
+ if (RSRecover(rs)) {
+ set_start_recovery(rs);
+ dm_rh_start_recovery(rec->rh);
+ }
+
+ ClearRSSuspend(rs);
+ wake_do_raid(rs);
+}
+
+/* Return stripe cache size. */
+static unsigned sc_size(struct raid_set *rs)
+{
+ return to_sector(atomic_read(&rs->sc.stripes) *
+ (sizeof(struct stripe) +
+ (sizeof(struct stripe_chunk) +
+ (sizeof(struct page_list) +
+ to_bytes(rs->set.io_size) *
+ rs->set.raid_devs)) +
+ (rs->recover.end_jiffies ?
+ 0 : rs->recover.recovery_stripes *
+ to_bytes(rs->set.raid_devs * rs->recover.io_size))));
+}
+
+/* REMOVEME: status output for development. */
+static void raid_devel_stats(struct dm_target *ti, char *result,
+ unsigned *size, unsigned maxlen)
+{
+ unsigned sz = *size;
+ unsigned long j;
+ char buf[BDEVNAME_SIZE], *p;
+ struct stats_map *sm;
+ struct raid_set *rs = ti->private;
+ struct recover *rec = &rs->recover;
+ struct timespec ts;
+
+ DMEMIT("%s %s %u\n", version, rs->xor.f->name, rs->xor.chunks);
+ DMEMIT("act_ios=%d ", io_ref(rs));
+ DMEMIT("act_ios_max=%d\n", atomic_read(&rs->io.in_process_max));
+ DMEMIT("act_stripes=%d ", sc_active(&rs->sc));
+ DMEMIT("act_stripes_max=%d\n",
+ atomic_read(&rs->sc.active_stripes_max));
+
+ for (sm = stats_map; sm < ARRAY_END(stats_map); sm++)
+ DMEMIT("%s%d", sm->str, atomic_read(rs->stats + sm->type));
+
+ DMEMIT(" checkovr=%s\n", RSCheckOverwrite(rs) ? "on" : "off");
+ DMEMIT("sc=%u/%u/%u/%u/%u/%u/%u\n", rs->set.chunk_size,
+ atomic_read(&rs->sc.stripes), rs->set.io_size,
+ rec->recovery_stripes, rec->io_size, rs->sc.hash.buckets,
+ sc_size(rs));
+
+ j = (rec->end_jiffies ? rec->end_jiffies : jiffies) -
+ rec->start_jiffies;
+ jiffies_to_timespec(j, &ts);
+ sprintf(buf, "%ld.%ld", ts.tv_sec, ts.tv_nsec);
+ p = strchr(buf, '.');
+ p[3] = 0;
+
+ DMEMIT("rg=%llu/%llu/%llu/%u %s\n",
+ (unsigned long long) rec->nr_regions_recovered,
+ (unsigned long long) rec->nr_regions_to_recover,
+ (unsigned long long) rec->nr_regions, rec->bandwidth, buf);
+
+ *size = sz;
+}
+
+static int raid_status(struct dm_target *ti, status_type_t type,
+ char *result, unsigned maxlen)
+{
+ unsigned p, sz = 0;
+ char buf[BDEVNAME_SIZE];
+ struct raid_set *rs = ti->private;
+ int raid_parms[] = {
+ rs->set.chunk_size_parm,
+ rs->sc.stripes_parm,
+ rs->set.io_size_parm,
+ rs->recover.io_size_parm,
+ rs->recover.bandwidth_parm,
+ -2,
+ rs->recover.recovery_stripes,
+ };
+
+ switch (type) {
+ case STATUSTYPE_INFO:
+ /* REMOVEME: statistics. */
+ if (RSDevelStats(rs))
+ raid_devel_stats(ti, result, &sz, maxlen);
+
+ DMEMIT("%u ", rs->set.raid_devs);
+
+ for (p = 0; p < rs->set.raid_devs; p++)
+ DMEMIT("%s ",
+ format_dev_t(buf, rs->dev[p].dev->bdev->bd_dev));
+
+ DMEMIT("1 ");
+ for (p = 0; p < rs->set.raid_devs; p++) {
+ DMEMIT("%c", !DevFailed(rs->dev + p) ? 'A' : 'D');
+
+ if (p == rs->set.pi)
+ DMEMIT("p");
+
+ if (rs->set.dev_to_init == p)
+ DMEMIT("i");
+ }
+
+ break;
+ case STATUSTYPE_TABLE:
+ sz = rs->recover.dl->type->status(rs->recover.dl, type,
+ result, maxlen);
+ DMEMIT("%s %u ", rs->set.raid_type->name,
+ rs->set.raid_parms);
+
+ for (p = 0; p < rs->set.raid_parms; p++) {
+ if (raid_parms[p] > -2)
+ DMEMIT("%d ", raid_parms[p]);
+ else
+ DMEMIT("%s ", rs->recover.recovery ?
+ "sync" : "nosync");
+ }
+
+ DMEMIT("%u %d ", rs->set.raid_devs, rs->set.dev_to_init);
+
+ for (p = 0; p < rs->set.raid_devs; p++)
+ DMEMIT("%s %llu ",
+ format_dev_t(buf, rs->dev[p].dev->bdev->bd_dev),
+ (unsigned long long) rs->dev[p].start);
+ }
+
+ return 0;
+}
+
+/*
+ * Message interface
+ */
+enum raid_msg_actions {
+ act_bw, /* Recovery bandwidth switch. */
+ act_dev, /* Device failure switch. */
+ act_overwrite, /* Stripe overwrite check. */
+ act_stats, /* Development statistics switch. */
+ act_sc, /* Stripe cache switch. */
+
+ act_on, /* Set entity on. */
+ act_off, /* Set entity off. */
+ act_reset, /* Reset entity. */
+
+ act_set = act_on, /* Set # absolute. */
+ act_grow = act_off, /* Grow # by an amount. */
+ act_shrink = act_reset, /* Shrink # by an amount. */
+};
+
+/* Turn a delta into an absolute value. */
+static int _absolute(unsigned long action, int act, int r)
+{
+ /* Make delta absolute. */
+ if (test_bit(act_set, &action))
+ ;
+ else if (test_bit(act_grow, &action))
+ r += act;
+ else if (test_bit(act_shrink, &action))
+ r = act - r;
+ else
+ r = -EINVAL;
+
+ return r;
+}
+
+ /* Change recovery io bandwidth. */
+static int bandwidth_change(struct dm_msg *msg, void *context)
+{
+ struct raid_set *rs = context;
+ int act = rs->recover.bandwidth;
+ int bandwidth = DM_MSG_INT_ARG(msg);
+
+ if (range_ok(bandwidth, BANDWIDTH_MIN, BANDWIDTH_MAX)) {
+ /* Make delta bandwidth absolute. */
+ bandwidth = _absolute(msg->action, act, bandwidth);
+
+ /* Check range. */
+ if (range_ok(bandwidth, BANDWIDTH_MIN, BANDWIDTH_MAX)) {
+ recover_set_bandwidth(rs, bandwidth);
+ return 0;
+ }
+ }
+
+ set_bit(dm_msg_ret_arg, &msg->ret);
+ set_bit(dm_msg_ret_inval, &msg->ret);
+ return -EINVAL;
+}
+
+/* Set/reset development feature flags. */
+static int devel_flags(struct dm_msg *msg, void *context)
+{
+ struct raid_set *rs = context;
+
+ if (test_bit(act_on, &msg->action))
+ return test_and_set_bit(msg->spec->parm,
+ &rs->io.flags) ? -EPERM : 0;
+ else if (test_bit(act_off, &msg->action))
+ return test_and_clear_bit(msg->spec->parm,
+ &rs->io.flags) ? 0 : -EPERM;
+ else if (test_bit(act_reset, &msg->action)) {
+ if (test_bit(act_stats, &msg->action)) {
+ stats_reset(rs);
+ goto on;
+ } else if (test_bit(act_overwrite, &msg->action)) {
+on:
+ set_bit(msg->spec->parm, &rs->io.flags);
+ return 0;
+ }
+ }
+
+ return -EINVAL;
+}
+
+/* Resize the stripe cache. */
+static int sc_resize(struct dm_msg *msg, void *context)
+{
+ int act, stripes;
+ struct raid_set *rs = context;
+
+ /* Deny permission in case the daemon is still resizing!. */
+ if (atomic_read(&rs->sc.stripes_to_set))
+ return -EPERM;
+
+ stripes = DM_MSG_INT_ARG(msg);
+ if (stripes > 0) {
+ act = atomic_read(&rs->sc.stripes);
+
+ /* Make delta stripes absolute. */
+ stripes = _absolute(msg->action, act, stripes);
+
+ /*
+ * Check range and that the # of stripes changes.
+ * We leave the resizing to the wroker.
+ */
+ if (range_ok(stripes, STRIPES_MIN, STRIPES_MAX) &&
+ stripes != atomic_read(&rs->sc.stripes)) {
+ atomic_set(&rs->sc.stripes_to_set, stripes);
+ wake_do_raid(rs);
+ return 0;
+ }
+ }
+
+ set_bit(dm_msg_ret_arg, &msg->ret);
+ set_bit(dm_msg_ret_inval, &msg->ret);
+ return -EINVAL;
+}
+
+/* Parse the RAID message action. */
+/*
+ * 'ba[ndwidth] {se[t],g[row],sh[rink]} #' # e.g 'ba se 50'
+ * "o[verwrite] {on,of[f],r[eset]}' # e.g. 'o of'
+ * 'sta[tistics] {on,of[f],r[eset]}' # e.g. 'stat of'
+ * 'str[ipecache] {se[t],g[row],sh[rink]} #' # e.g. 'stripe set 1024'
+ *
+ */
+static int raid_message(struct dm_target *ti, unsigned argc, char **argv)
+{
+ /* Variables to store the parsed parameters im. */
+ static int i[2];
+ static unsigned long *i_arg[] = {
+ (unsigned long *) i + 0,
+ (unsigned long *) i + 1,
+ };
+
+ /* Declare all message option strings. */
+ static char *str_sgs[] = { "set", "grow", "shrink" };
+ static char *str_oor[] = { "on", "off", "reset" };
+
+ /* Declare all actions. */
+ static unsigned long act_sgs[] = { act_set, act_grow, act_shrink };
+ static unsigned long act_oor[] = { act_on, act_off, act_reset };
+
+ /* Bandwidth option. */
+ static struct dm_message_option bw_opt = { 3, str_sgs, act_sgs };
+ static struct dm_message_argument bw_args = {
+ 1, i_arg, { dm_msg_int_t }
+ };
+
+ static struct dm_message_argument null_args = {
+ 0, NULL, { dm_msg_int_t }
+ };
+
+ /* Overwrite and statistics option. */
+ static struct dm_message_option ovr_stats_opt = { 3, str_oor, act_oor };
+
+ /* Sripecache option. */
+ static struct dm_message_option stripe_opt = { 3, str_sgs, act_sgs };
+
+ /* Declare messages. */
+ static struct dm_msg_spec specs[] = {
+ { "bandwidth", act_bw, &bw_opt, &bw_args,
+ 0, bandwidth_change },
+ { "overwrite", act_overwrite, &ovr_stats_opt, &null_args,
+ RS_CHECK_OVERWRITE, devel_flags },
+ { "statistics", act_stats, &ovr_stats_opt, &null_args,
+ RS_DEVEL_STATS, devel_flags },
+ { "stripecache", act_sc, &stripe_opt, &bw_args,
+ 0, sc_resize },
+ };
+
+ /* The message for the parser. */
+ struct dm_msg msg = {
+ .num_specs = ARRAY_SIZE(specs),
+ .specs = specs,
+ };
+
+ return dm_message_parse(TARGET, &msg, ti->private, argc, argv);
+}
+/*
+ * END message interface
+ */
+
+static struct target_type raid_target = {
+ .name = "raid45",
+ .version = {1, 0, 0},
+ .module = THIS_MODULE,
+ .ctr = raid_ctr,
+ .dtr = raid_dtr,
+ .map = raid_map,
+ .presuspend = raid_presuspend,
+ .postsuspend = raid_postsuspend,
+ .resume = raid_resume,
+ .status = raid_status,
+ .message = raid_message,
+};
+
+static void init_exit(const char *bad_msg, const char *good_msg, int r)
+{
+ if (r)
+ DMERR("Failed to %sregister target [%d]", bad_msg, r);
+ else
+ DMINFO("%s %s", good_msg, version);
+}
+
+static int __init dm_raid_init(void)
+{
+ int r = dm_register_target(&raid_target);
+
+ init_exit("", "initialized", r);
+ return r;
+}
+
+static void __exit dm_raid_exit(void)
+{
+ dm_unregister_target(&raid_target);
+ init_exit("un", "exit", 0);
+}
+
+/* Module hooks. */
+module_init(dm_raid_init);
+module_exit(dm_raid_exit);
+
+MODULE_DESCRIPTION(DM_NAME " raid4/5 target");
+MODULE_AUTHOR("Heinz Mauelshagen <hjm@redhat.com>");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("dm-raid4");
+MODULE_ALIAS("dm-raid5");
diff --git a/ubuntu/dm-raid4-5/dm-raid4-5.h b/ubuntu/dm-raid4-5/dm-raid4-5.h
new file mode 100644
index 00000000000..a0fe7c0621f
--- /dev/null
+++ b/ubuntu/dm-raid4-5/dm-raid4-5.h
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2006 Red Hat GmbH
+ *
+ * Module Author: Heinz Mauelshagen (Mauelshagen@RedHat.com)
+ *
+ * This file is released under the GPL.
+ *
+ */
+
+#ifndef _DM_RAID45_H
+#define _DM_RAID45_H
+
+/* Factor out to dm.h! */
+#define STR_LEN(ptr, str) ptr, str, strlen(ptr)
+
+enum lock_type { RAID45_EX, RAID45_SHARED };
+
+struct dmraid45_locking_type {
+ /* Request a lock on a stripe. */
+ void* (*lock)(sector_t key, enum lock_type type);
+
+ /* Release a lock on a stripe. */
+ void (*unlock)(void *lock_handle);
+
+};
+
+#endif
diff --git a/ubuntu/dm-raid4-5/dm-raid45.h b/ubuntu/dm-raid4-5/dm-raid45.h
new file mode 100644
index 00000000000..786ba7af642
--- /dev/null
+++ b/ubuntu/dm-raid4-5/dm-raid45.h
@@ -0,0 +1,28 @@
+/*
+ * Copyright (C) 2006-2008 Red Hat, Inc. All rights reserved.
+ *
+ * Module Author: Heinz Mauelshagen (Mauelshagen@RedHat.com)
+ *
+ * Locking definitions for the device-mapper RAID45 target.
+ *
+ * This file is released under the GPL.
+ *
+ */
+
+#ifndef _DM_RAID45_H
+#define _DM_RAID45_H
+
+/* Factor out to dm.h! */
+#define STR_LEN(ptr, str) (ptr), (str), strlen((ptr))
+
+enum dm_lock_type { DM_RAID45_EX, DM_RAID45_SHARED };
+
+struct dm_raid45_locking_type {
+ /* Request a lock on a stripe. */
+ void* (*lock)(sector_t key, enum dm_lock_type type);
+
+ /* Release a lock on a stripe. */
+ void (*unlock)(void *lock_handle);
+};
+
+#endif
diff --git a/ubuntu/dm-raid4-5/dm-region-hash.c b/ubuntu/dm-raid4-5/dm-region-hash.c
new file mode 100644
index 00000000000..59429f68d2b
--- /dev/null
+++ b/ubuntu/dm-raid4-5/dm-region-hash.c
@@ -0,0 +1,719 @@
+/*
+ * Copyright (C) 2003 Sistina Software Limited.
+ * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
+ *
+ * This file is released under the GPL.
+ */
+
+#include <linux/dm-dirty-log.h>
+#include "dm-region-hash.h"
+
+#include <linux/ctype.h>
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+#include <linux/vmalloc.h>
+
+#include "dm.h"
+
+#define DM_MSG_PREFIX "region hash"
+
+/*-----------------------------------------------------------------
+ * Region hash
+ *
+ * The mirror splits itself up into discrete regions. Each
+ * region can be in one of three states: clean, dirty,
+ * nosync. There is no need to put clean regions in the hash.
+ *
+ * In addition to being present in the hash table a region _may_
+ * be present on one of three lists.
+ *
+ * clean_regions: Regions on this list have no io pending to
+ * them, they are in sync, we are no longer interested in them,
+ * they are dull. dm_rh_update_states() will remove them from the
+ * hash table.
+ *
+ * quiesced_regions: These regions have been spun down, ready
+ * for recovery. rh_recovery_start() will remove regions from
+ * this list and hand them to kmirrord, which will schedule the
+ * recovery io with kcopyd.
+ *
+ * recovered_regions: Regions that kcopyd has successfully
+ * recovered. dm_rh_update_states() will now schedule any delayed
+ * io, up the recovery_count, and remove the region from the
+ * hash.
+ *
+ * There are 2 locks:
+ * A rw spin lock 'hash_lock' protects just the hash table,
+ * this is never held in write mode from interrupt context,
+ * which I believe means that we only have to disable irqs when
+ * doing a write lock.
+ *
+ * An ordinary spin lock 'region_lock' that protects the three
+ * lists in the region_hash, with the 'state', 'list' and
+ * 'delayed_bios' fields of the regions. This is used from irq
+ * context, so all other uses will have to suspend local irqs.
+ *---------------------------------------------------------------*/
+struct dm_region_hash {
+ uint32_t region_size;
+ unsigned region_shift;
+
+ /* holds persistent region state */
+ struct dm_dirty_log *log;
+
+ /* hash table */
+ rwlock_t hash_lock;
+ mempool_t *region_pool;
+ unsigned mask;
+ unsigned nr_buckets;
+ unsigned prime;
+ unsigned shift;
+ struct list_head *buckets;
+
+ unsigned max_recovery; /* Max # of regions to recover in parallel */
+
+ spinlock_t region_lock;
+ atomic_t recovery_in_flight;
+ struct semaphore recovery_count;
+ struct list_head clean_regions;
+ struct list_head quiesced_regions;
+ struct list_head recovered_regions;
+ struct list_head failed_recovered_regions;
+
+ void *context;
+ sector_t target_begin;
+
+ /* Callback function to schedule bios writes */
+ void (*dispatch_bios)(void *context, struct bio_list *bios);
+
+ /* Callback function to wakeup callers worker thread. */
+ void (*wakeup_workers)(void *context);
+
+ /* Callback function to wakeup callers recovery waiters. */
+ void (*wakeup_all_recovery_waiters)(void *context);
+};
+
+struct dm_region {
+ struct dm_region_hash *rh; /* FIXME: can we get rid of this ? */
+ region_t key;
+ int state;
+
+ struct list_head hash_list;
+ struct list_head list;
+
+ atomic_t pending;
+ struct bio_list delayed_bios;
+};
+
+/*
+ * Conversion fns
+ */
+region_t dm_rh_sector_to_region(struct dm_region_hash *rh, sector_t sector)
+{
+ return sector >> rh->region_shift;
+}
+// EXPORT_SYMBOL_GPL(dm_rh_sector_to_region);
+
+sector_t dm_rh_region_to_sector(struct dm_region_hash *rh, region_t region)
+{
+ return region << rh->region_shift;
+}
+// EXPORT_SYMBOL_GPL(dm_rh_region_to_sector);
+
+region_t dm_rh_bio_to_region(struct dm_region_hash *rh, struct bio *bio)
+{
+ return dm_rh_sector_to_region(rh, bio->bi_sector - rh->target_begin);
+}
+// EXPORT_SYMBOL_GPL(dm_rh_bio_to_region);
+
+void *dm_rh_region_context(struct dm_region *reg)
+{
+ return reg->rh->context;
+}
+// EXPORT_SYMBOL_GPL(dm_rh_region_context);
+
+region_t dm_rh_get_region_key(struct dm_region *reg)
+{
+ return reg->key;
+}
+// EXPORT_SYMBOL_GPL(dm_rh_get_region_key);
+
+sector_t dm_rh_get_region_size(struct dm_region_hash *rh)
+{
+ return rh->region_size;
+}
+// EXPORT_SYMBOL_GPL(dm_rh_get_region_size);
+
+/*
+ * FIXME: shall we pass in a structure instead of all these args to
+ * dm_region_hash_create()????
+ */
+#define RH_HASH_MULT 2654435387U
+#define RH_HASH_SHIFT 12
+
+#define MIN_REGIONS 64
+struct dm_region_hash *dm_region_hash_create(
+ void *context, void (*dispatch_bios)(void *context,
+ struct bio_list *bios),
+ void (*wakeup_workers)(void *context),
+ void (*wakeup_all_recovery_waiters)(void *context),
+ sector_t target_begin, unsigned max_recovery,
+ struct dm_dirty_log *log, uint32_t region_size,
+ region_t nr_regions)
+{
+ struct dm_region_hash *rh;
+ unsigned nr_buckets, max_buckets;
+ size_t i;
+
+ /*
+ * Calculate a suitable number of buckets for our hash
+ * table.
+ */
+ max_buckets = nr_regions >> 6;
+ for (nr_buckets = 128u; nr_buckets < max_buckets; nr_buckets <<= 1)
+ ;
+ nr_buckets >>= 1;
+
+ rh = kmalloc(sizeof(*rh), GFP_KERNEL);
+ if (!rh) {
+ DMERR("unable to allocate region hash memory");
+ return ERR_PTR(-ENOMEM);
+ }
+
+ rh->context = context;
+ rh->dispatch_bios = dispatch_bios;
+ rh->wakeup_workers = wakeup_workers;
+ rh->wakeup_all_recovery_waiters = wakeup_all_recovery_waiters;
+ rh->target_begin = target_begin;
+ rh->max_recovery = max_recovery;
+ rh->log = log;
+ rh->region_size = region_size;
+ rh->region_shift = ffs(region_size) - 1;
+ rwlock_init(&rh->hash_lock);
+ rh->mask = nr_buckets - 1;
+ rh->nr_buckets = nr_buckets;
+
+ rh->shift = RH_HASH_SHIFT;
+ rh->prime = RH_HASH_MULT;
+
+ rh->buckets = vmalloc(nr_buckets * sizeof(*rh->buckets));
+ if (!rh->buckets) {
+ DMERR("unable to allocate region hash bucket memory");
+ kfree(rh);
+ return ERR_PTR(-ENOMEM);
+ }
+
+ for (i = 0; i < nr_buckets; i++)
+ INIT_LIST_HEAD(rh->buckets + i);
+
+ spin_lock_init(&rh->region_lock);
+ sema_init(&rh->recovery_count, 0);
+ atomic_set(&rh->recovery_in_flight, 0);
+ INIT_LIST_HEAD(&rh->clean_regions);
+ INIT_LIST_HEAD(&rh->quiesced_regions);
+ INIT_LIST_HEAD(&rh->recovered_regions);
+ INIT_LIST_HEAD(&rh->failed_recovered_regions);
+
+ rh->region_pool = mempool_create_kmalloc_pool(MIN_REGIONS,
+ sizeof(struct dm_region));
+ if (!rh->region_pool) {
+ vfree(rh->buckets);
+ kfree(rh);
+ rh = ERR_PTR(-ENOMEM);
+ }
+
+ return rh;
+}
+// EXPORT_SYMBOL_GPL(dm_region_hash_create);
+
+void dm_region_hash_destroy(struct dm_region_hash *rh)
+{
+ unsigned h;
+ struct dm_region *reg, *nreg;
+
+ BUG_ON(!list_empty(&rh->quiesced_regions));
+ for (h = 0; h < rh->nr_buckets; h++) {
+ list_for_each_entry_safe(reg, nreg, rh->buckets + h,
+ hash_list) {
+ BUG_ON(atomic_read(&reg->pending));
+ mempool_free(reg, rh->region_pool);
+ }
+ }
+
+ if (rh->log)
+ dm_dirty_log_destroy(rh->log);
+
+ if (rh->region_pool)
+ mempool_destroy(rh->region_pool);
+
+ vfree(rh->buckets);
+ kfree(rh);
+}
+// EXPORT_SYMBOL_GPL(dm_region_hash_destroy);
+
+struct dm_dirty_log *dm_rh_dirty_log(struct dm_region_hash *rh)
+{
+ return rh->log;
+}
+// EXPORT_SYMBOL_GPL(dm_rh_dirty_log);
+
+static unsigned rh_hash(struct dm_region_hash *rh, region_t region)
+{
+ return (unsigned) ((region * rh->prime) >> rh->shift) & rh->mask;
+}
+
+static struct dm_region *__rh_lookup(struct dm_region_hash *rh, region_t region)
+{
+ struct dm_region *reg;
+ struct list_head *bucket = rh->buckets + rh_hash(rh, region);
+
+ list_for_each_entry(reg, bucket, hash_list)
+ if (reg->key == region)
+ return reg;
+
+ return NULL;
+}
+
+static void __rh_insert(struct dm_region_hash *rh, struct dm_region *reg)
+{
+ list_add(&reg->hash_list, rh->buckets + rh_hash(rh, reg->key));
+}
+
+static struct dm_region *__rh_alloc(struct dm_region_hash *rh, region_t region)
+{
+ struct dm_region *reg, *nreg;
+
+ nreg = mempool_alloc(rh->region_pool, GFP_ATOMIC);
+ if (unlikely(!nreg))
+ nreg = kmalloc(sizeof(*nreg), GFP_NOIO | __GFP_NOFAIL);
+
+ nreg->state = rh->log->type->in_sync(rh->log, region, 1) ?
+ DM_RH_CLEAN : DM_RH_NOSYNC;
+ nreg->rh = rh;
+ nreg->key = region;
+ INIT_LIST_HEAD(&nreg->list);
+ atomic_set(&nreg->pending, 0);
+ bio_list_init(&nreg->delayed_bios);
+
+ write_lock_irq(&rh->hash_lock);
+ reg = __rh_lookup(rh, region);
+ if (reg)
+ /* We lost the race. */
+ mempool_free(nreg, rh->region_pool);
+ else {
+ __rh_insert(rh, nreg);
+ if (nreg->state == DM_RH_CLEAN) {
+ spin_lock(&rh->region_lock);
+ list_add(&nreg->list, &rh->clean_regions);
+ spin_unlock(&rh->region_lock);
+ }
+
+ reg = nreg;
+ }
+ write_unlock_irq(&rh->hash_lock);
+
+ return reg;
+}
+
+static struct dm_region *__rh_find(struct dm_region_hash *rh, region_t region)
+{
+ struct dm_region *reg;
+
+ reg = __rh_lookup(rh, region);
+ if (!reg) {
+ read_unlock(&rh->hash_lock);
+ reg = __rh_alloc(rh, region);
+ read_lock(&rh->hash_lock);
+ }
+
+ return reg;
+}
+
+int dm_rh_get_state(struct dm_region_hash *rh, region_t region, int may_block)
+{
+ int r;
+ struct dm_region *reg;
+
+ read_lock(&rh->hash_lock);
+ reg = __rh_lookup(rh, region);
+ read_unlock(&rh->hash_lock);
+
+ if (reg)
+ return reg->state;
+
+ /*
+ * The region wasn't in the hash, so we fall back to the
+ * dirty log.
+ */
+ r = rh->log->type->in_sync(rh->log, region, may_block);
+
+ /*
+ * Any error from the dirty log (eg. -EWOULDBLOCK) gets
+ * taken as a DM_RH_NOSYNC
+ */
+ return r == 1 ? DM_RH_CLEAN : DM_RH_NOSYNC;
+}
+// EXPORT_SYMBOL_GPL(dm_rh_get_state);
+
+static void complete_resync_work(struct dm_region *reg, int success)
+{
+ struct dm_region_hash *rh = reg->rh;
+
+ rh->log->type->set_region_sync(rh->log, reg->key, success);
+
+ /*
+ * Dispatch the bios before we call 'wake_up_all'.
+ * This is important because if we are suspending,
+ * we want to know that recovery is complete and
+ * the work queue is flushed. If we wake_up_all
+ * before we dispatch_bios (queue bios and call wake()),
+ * then we risk suspending before the work queue
+ * has been properly flushed.
+ */
+ rh->dispatch_bios(rh->context, &reg->delayed_bios);
+ if (atomic_dec_and_test(&rh->recovery_in_flight))
+ rh->wakeup_all_recovery_waiters(rh->context);
+ up(&rh->recovery_count);
+}
+
+/* dm_rh_mark_nosync
+ * @ms
+ * @bio
+ * @done
+ * @error
+ *
+ * The bio was written on some mirror(s) but failed on other mirror(s).
+ * We can successfully endio the bio but should avoid the region being
+ * marked clean by setting the state DM_RH_NOSYNC.
+ *
+ * This function is _not_ safe in interrupt context!
+ */
+void dm_rh_mark_nosync(struct dm_region_hash *rh,
+ struct bio *bio, unsigned done, int error)
+{
+ unsigned long flags;
+ struct dm_dirty_log *log = rh->log;
+ struct dm_region *reg;
+ region_t region = dm_rh_bio_to_region(rh, bio);
+ int recovering = 0;
+
+ /* We must inform the log that the sync count has changed. */
+ log->type->set_region_sync(log, region, 0);
+
+ read_lock(&rh->hash_lock);
+ reg = __rh_find(rh, region);
+ read_unlock(&rh->hash_lock);
+
+ /* region hash entry should exist because write was in-flight */
+ BUG_ON(!reg);
+ BUG_ON(!list_empty(&reg->list));
+
+ spin_lock_irqsave(&rh->region_lock, flags);
+ /*
+ * Possible cases:
+ * 1) DM_RH_DIRTY
+ * 2) DM_RH_NOSYNC: was dirty, other preceeding writes failed
+ * 3) DM_RH_RECOVERING: flushing pending writes
+ * Either case, the region should have not been connected to list.
+ */
+ recovering = (reg->state == DM_RH_RECOVERING);
+ reg->state = DM_RH_NOSYNC;
+ BUG_ON(!list_empty(&reg->list));
+ spin_unlock_irqrestore(&rh->region_lock, flags);
+
+ bio_endio(bio, error);
+ if (recovering)
+ complete_resync_work(reg, 0);
+}
+// EXPORT_SYMBOL_GPL(dm_rh_mark_nosync);
+
+void dm_rh_update_states(struct dm_region_hash *rh, int errors_handled)
+{
+ struct dm_region *reg, *next;
+
+ LIST_HEAD(clean);
+ LIST_HEAD(recovered);
+ LIST_HEAD(failed_recovered);
+
+ /*
+ * Quickly grab the lists.
+ */
+ write_lock_irq(&rh->hash_lock);
+ spin_lock(&rh->region_lock);
+ if (!list_empty(&rh->clean_regions)) {
+ list_splice_init(&rh->clean_regions, &clean);
+
+ list_for_each_entry(reg, &clean, list)
+ list_del(&reg->hash_list);
+ }
+
+ if (!list_empty(&rh->recovered_regions)) {
+ list_splice_init(&rh->recovered_regions, &recovered);
+
+ list_for_each_entry(reg, &recovered, list)
+ list_del(&reg->hash_list);
+ }
+
+ if (!list_empty(&rh->failed_recovered_regions)) {
+ list_splice_init(&rh->failed_recovered_regions,
+ &failed_recovered);
+
+ list_for_each_entry(reg, &failed_recovered, list)
+ list_del(&reg->hash_list);
+ }
+
+ spin_unlock(&rh->region_lock);
+ write_unlock_irq(&rh->hash_lock);
+
+ /*
+ * All the regions on the recovered and clean lists have
+ * now been pulled out of the system, so no need to do
+ * any more locking.
+ */
+ list_for_each_entry_safe(reg, next, &recovered, list) {
+ rh->log->type->clear_region(rh->log, reg->key);
+ complete_resync_work(reg, 1);
+ mempool_free(reg, rh->region_pool);
+ }
+
+ list_for_each_entry_safe(reg, next, &failed_recovered, list) {
+ complete_resync_work(reg, errors_handled ? 0 : 1);
+ mempool_free(reg, rh->region_pool);
+ }
+
+ list_for_each_entry_safe(reg, next, &clean, list) {
+ rh->log->type->clear_region(rh->log, reg->key);
+ mempool_free(reg, rh->region_pool);
+ }
+
+ rh->log->type->flush(rh->log);
+}
+// EXPORT_SYMBOL_GPL(dm_rh_update_states);
+
+void dm_rh_inc(struct dm_region_hash *rh, region_t region)
+{
+ struct dm_region *reg;
+
+ read_lock(&rh->hash_lock);
+ reg = __rh_find(rh, region);
+
+ spin_lock_irq(&rh->region_lock);
+ atomic_inc(&reg->pending);
+
+ if (reg->state == DM_RH_CLEAN) {
+ reg->state = DM_RH_DIRTY;
+ list_del_init(&reg->list); /* take off the clean list */
+ spin_unlock_irq(&rh->region_lock);
+
+ rh->log->type->mark_region(rh->log, reg->key);
+ } else
+ spin_unlock_irq(&rh->region_lock);
+
+
+ read_unlock(&rh->hash_lock);
+}
+// EXPORT_SYMBOL_GPL(dm_rh_inc);
+
+void dm_rh_inc_pending(struct dm_region_hash *rh, struct bio_list *bios)
+{
+ struct bio *bio;
+
+ for (bio = bios->head; bio; bio = bio->bi_next)
+ dm_rh_inc(rh, dm_rh_bio_to_region(rh, bio));
+}
+// EXPORT_SYMBOL_GPL(dm_rh_inc_pending);
+
+void dm_rh_dec(struct dm_region_hash *rh, region_t region)
+{
+ unsigned long flags;
+ struct dm_region *reg;
+ int should_wake = 0;
+
+ read_lock(&rh->hash_lock);
+ reg = __rh_lookup(rh, region);
+ read_unlock(&rh->hash_lock);
+
+ spin_lock_irqsave(&rh->region_lock, flags);
+ if (atomic_dec_and_test(&reg->pending)) {
+ /*
+ * There is no pending I/O for this region.
+ * We can move the region to corresponding list for next action.
+ * At this point, the region is not yet connected to any list.
+ *
+ * If the state is DM_RH_NOSYNC, the region should be kept off
+ * from clean list.
+ * The hash entry for DM_RH_NOSYNC will remain in memory
+ * until the region is recovered or the map is reloaded.
+ */
+
+ /* do nothing for DM_RH_NOSYNC */
+ if (reg->state == DM_RH_RECOVERING) {
+ list_add_tail(&reg->list, &rh->quiesced_regions);
+ } else if (reg->state == DM_RH_DIRTY) {
+ reg->state = DM_RH_CLEAN;
+ list_add(&reg->list, &rh->clean_regions);
+ }
+ should_wake = 1;
+ }
+ spin_unlock_irqrestore(&rh->region_lock, flags);
+
+ if (should_wake)
+ rh->wakeup_workers(rh->context);
+}
+// EXPORT_SYMBOL_GPL(dm_rh_dec);
+
+/*
+ * Starts quiescing a region in preparation for recovery.
+ */
+static int __rh_recovery_prepare(struct dm_region_hash *rh)
+{
+ int r;
+ region_t region;
+ struct dm_region *reg;
+
+ /*
+ * Ask the dirty log what's next.
+ */
+ r = rh->log->type->get_resync_work(rh->log, &region);
+ if (r <= 0)
+ return r;
+
+ /*
+ * Get this region, and start it quiescing by setting the
+ * recovering flag.
+ */
+ read_lock(&rh->hash_lock);
+ reg = __rh_find(rh, region);
+ read_unlock(&rh->hash_lock);
+
+ spin_lock_irq(&rh->region_lock);
+ reg->state = DM_RH_RECOVERING;
+
+ /* Already quiesced ? */
+ if (atomic_read(&reg->pending))
+ list_del_init(&reg->list);
+ else
+ list_move(&reg->list, &rh->quiesced_regions);
+
+ spin_unlock_irq(&rh->region_lock);
+
+ return 1;
+}
+
+void dm_rh_recovery_prepare(struct dm_region_hash *rh)
+{
+ /* Extra reference to avoid race with dm_rh_stop_recovery */
+ atomic_inc(&rh->recovery_in_flight);
+
+ while (!down_trylock(&rh->recovery_count)) {
+ atomic_inc(&rh->recovery_in_flight);
+ if (__rh_recovery_prepare(rh) <= 0) {
+ atomic_dec(&rh->recovery_in_flight);
+ up(&rh->recovery_count);
+ break;
+ }
+ }
+
+ /* Drop the extra reference */
+ if (atomic_dec_and_test(&rh->recovery_in_flight))
+ rh->wakeup_all_recovery_waiters(rh->context);
+}
+// EXPORT_SYMBOL_GPL(dm_rh_recovery_prepare);
+
+/*
+ * Returns any quiesced regions.
+ */
+struct dm_region *dm_rh_recovery_start(struct dm_region_hash *rh)
+{
+ struct dm_region *reg = NULL;
+
+ spin_lock_irq(&rh->region_lock);
+ if (!list_empty(&rh->quiesced_regions)) {
+ reg = list_entry(rh->quiesced_regions.next,
+ struct dm_region, list);
+ list_del_init(&reg->list); /* remove from the quiesced list */
+ }
+ spin_unlock_irq(&rh->region_lock);
+
+ return reg;
+}
+// EXPORT_SYMBOL_GPL(dm_rh_recovery_start);
+
+void dm_rh_recovery_end(struct dm_region *reg, int success)
+{
+ struct dm_region_hash *rh = reg->rh;
+
+ spin_lock_irq(&rh->region_lock);
+ if (success)
+ list_add(&reg->list, &reg->rh->recovered_regions);
+ else {
+ reg->state = DM_RH_NOSYNC;
+ list_add(&reg->list, &reg->rh->failed_recovered_regions);
+ }
+ spin_unlock_irq(&rh->region_lock);
+
+ rh->wakeup_workers(rh->context);
+}
+// EXPORT_SYMBOL_GPL(dm_rh_recovery_end);
+
+/* Return recovery in flight count. */
+int dm_rh_recovery_in_flight(struct dm_region_hash *rh)
+{
+ return atomic_read(&rh->recovery_in_flight);
+}
+// EXPORT_SYMBOL_GPL(dm_rh_recovery_in_flight);
+
+int dm_rh_flush(struct dm_region_hash *rh)
+{
+ return rh->log->type->flush(rh->log);
+}
+// EXPORT_SYMBOL_GPL(dm_rh_flush);
+
+void dm_rh_delay(struct dm_region_hash *rh, struct bio *bio)
+{
+ struct dm_region *reg;
+
+ read_lock(&rh->hash_lock);
+ reg = __rh_find(rh, dm_rh_bio_to_region(rh, bio));
+ bio_list_add(&reg->delayed_bios, bio);
+ read_unlock(&rh->hash_lock);
+}
+// EXPORT_SYMBOL_GPL(dm_rh_delay);
+
+void dm_rh_delay_by_region(struct dm_region_hash *rh,
+ struct bio *bio, region_t region)
+{
+ struct dm_region *reg;
+
+ /* FIXME: locking. */
+ read_lock(&rh->hash_lock);
+ reg = __rh_find(rh, region);
+ bio_list_add(&reg->delayed_bios, bio);
+ read_unlock(&rh->hash_lock);
+}
+// EXPORT_SYMBOL_GPL(dm_rh_delay_by_region);
+
+void dm_rh_stop_recovery(struct dm_region_hash *rh)
+{
+ int i;
+
+ /* wait for any recovering regions */
+ for (i = 0; i < rh->max_recovery; i++)
+ down(&rh->recovery_count);
+}
+// EXPORT_SYMBOL_GPL(dm_rh_stop_recovery);
+
+void dm_rh_start_recovery(struct dm_region_hash *rh)
+{
+ int i;
+
+ for (i = 0; i < rh->max_recovery; i++)
+ up(&rh->recovery_count);
+
+ rh->wakeup_workers(rh->context);
+}
+// EXPORT_SYMBOL_GPL(dm_rh_start_recovery);
+
+MODULE_DESCRIPTION(DM_NAME " region hash");
+MODULE_AUTHOR("Joe Thornber/Heinz Mauelshagen <dm-devel@redhat.com>");
+MODULE_LICENSE("GPL");
diff --git a/ubuntu/dm-raid4-5/dm-region-hash.h b/ubuntu/dm-raid4-5/dm-region-hash.h
new file mode 100644
index 00000000000..bfd21cb9f76
--- /dev/null
+++ b/ubuntu/dm-raid4-5/dm-region-hash.h
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2003 Sistina Software Limited.
+ * Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved.
+ *
+ * Device-Mapper dirty region hash interface.
+ *
+ * This file is released under the GPL.
+ */
+
+#ifndef DM_REGION_HASH_H
+#define DM_REGION_HASH_H
+
+#include <linux/dm-dirty-log.h>
+
+/*-----------------------------------------------------------------
+ * Region hash
+ *----------------------------------------------------------------*/
+struct dm_region_hash;
+struct dm_region;
+
+/*
+ * States a region can have.
+ */
+enum dm_rh_region_states {
+ DM_RH_CLEAN = 0x01, /* No writes in flight. */
+ DM_RH_DIRTY = 0x02, /* Writes in flight. */
+ DM_RH_NOSYNC = 0x04, /* Out of sync. */
+ DM_RH_RECOVERING = 0x08, /* Under resynchronization. */
+};
+
+/*
+ * Region hash create/destroy.
+ */
+struct bio_list;
+struct dm_region_hash *dm_region_hash_create(
+ void *context, void (*dispatch_bios)(void *context,
+ struct bio_list *bios),
+ void (*wakeup_workers)(void *context),
+ void (*wakeup_all_recovery_waiters)(void *context),
+ sector_t target_begin, unsigned max_recovery,
+ struct dm_dirty_log *log, uint32_t region_size,
+ region_t nr_regions);
+void dm_region_hash_destroy(struct dm_region_hash *rh);
+
+struct dm_dirty_log *dm_rh_dirty_log(struct dm_region_hash *rh);
+
+/*
+ * Conversion functions.
+ */
+region_t dm_rh_bio_to_region(struct dm_region_hash *rh, struct bio *bio);
+sector_t dm_rh_region_to_sector(struct dm_region_hash *rh, region_t region);
+region_t dm_rh_sector_to_region(struct dm_region_hash *rh, sector_t sector);
+void *dm_rh_region_context(struct dm_region *reg);
+
+/*
+ * Get region size and key (ie. number of the region).
+ */
+sector_t dm_rh_get_region_size(struct dm_region_hash *rh);
+region_t dm_rh_get_region_key(struct dm_region *reg);
+
+/*
+ * Get/set/update region state (and dirty log).
+ *
+ */
+int dm_rh_get_state(struct dm_region_hash *rh, region_t region, int may_block);
+void dm_rh_set_state(struct dm_region_hash *rh, region_t region,
+ enum dm_rh_region_states state, int may_block);
+
+/* Non-zero errors_handled leaves the state of the region NOSYNC */
+void dm_rh_update_states(struct dm_region_hash *rh, int errors_handled);
+
+/* Flush the region hash and dirty log. */
+int dm_rh_flush(struct dm_region_hash *rh);
+
+/* Inc/dec pending count on regions. */
+void dm_rh_inc(struct dm_region_hash *rh, region_t region);
+void dm_rh_inc_pending(struct dm_region_hash *rh, struct bio_list *bios);
+void dm_rh_dec(struct dm_region_hash *rh, region_t region);
+
+/* Delay bios on regions. */
+void dm_rh_delay(struct dm_region_hash *rh, struct bio *bio);
+void dm_rh_delay_by_region(struct dm_region_hash *rh, struct bio *bio,
+ region_t region);
+
+void dm_rh_mark_nosync(struct dm_region_hash *rh,
+ struct bio *bio, unsigned done, int error);
+
+/*
+ * Region recovery control.
+ */
+
+/* Prepare some regions for recovery by starting to quiesce them. */
+void dm_rh_recovery_prepare(struct dm_region_hash *rh);
+
+/* Try fetching a quiesced region for recovery. */
+struct dm_region *dm_rh_recovery_start(struct dm_region_hash *rh);
+
+/* Report recovery end on a region. */
+void dm_rh_recovery_end(struct dm_region *reg, int error);
+
+/* Returns number of regions with recovery work outstanding. */
+int dm_rh_recovery_in_flight(struct dm_region_hash *rh);
+
+/* Start/stop recovery. */
+void dm_rh_start_recovery(struct dm_region_hash *rh);
+void dm_rh_stop_recovery(struct dm_region_hash *rh);
+
+#endif /* DM_REGION_HASH_H */
diff --git a/ubuntu/fsam7400/BOM b/ubuntu/fsam7400/BOM
new file mode 100644
index 00000000000..4bfee23e223
--- /dev/null
+++ b/ubuntu/fsam7400/BOM
@@ -0,0 +1,2 @@
+Downloaded from: http://www.iragan.com/linux/fsam7400/
+Current Version: 0.5.2 (2008 Nov 22)
diff --git a/ubuntu/fsam7400/CHANGELOG b/ubuntu/fsam7400/CHANGELOG
new file mode 100644
index 00000000000..cb1700186d4
--- /dev/null
+++ b/ubuntu/fsam7400/CHANGELOG
@@ -0,0 +1,34 @@
+Nov 22 2008 Changes in 0.5.2 by legolas558
+* fixed some missing include files
+
+Sep 22 2006 Changes in 0.5.1
+* Fix: possible null pointer dereference in proc code
+* Fix: module exit code was mistakenly disabled
+
+Sep 22 2006 Changes in 0.5.0
+* fixed compilation problems with kernel 2.6.18
+* debug-output enabling via module parameter
+* hibernation support: reconstruct last radio state on resume
+* disabled autoload option by default
+
+Jul 16 2006 Changes in 0.4.1
+* new Makefile fixing problems with kernel 2.6.17
+* several bug fixes and compiler cleanups
+
+Aug 20 2004 Changes in 0.4.0
+* several bug fixes and compiler cleanups
+* UID/GID for procfs entry selectable via module parameter
+* Autoload support: fsam7400 modprobes and rmmods ipw2100 automatically
+ depending on radio state
+
+Apr 15 2004 Changes in 0.3.0
+* Fix: radio state was not displayed properly
+* some proc improvements
+* finished code for alternative routine address calculation
+* debug-output selectable at compile-time with CONFIG_IPW2100_DEBUG define
+ for smaller module size if no debug is needed ;)
+
+Apr 9 2004 Changes in 0.2.1
+* Initial release
+* Determines if wireless device is enabled by default Bios-settings
+* Auto-off functionality
diff --git a/ubuntu/fsam7400/FILES b/ubuntu/fsam7400/FILES
new file mode 100644
index 00000000000..80899bf57a1
--- /dev/null
+++ b/ubuntu/fsam7400/FILES
@@ -0,0 +1,6 @@
+CHANGELOG Recently changes logged
+FILES This file
+fsam7400.c The source code, what else... :)
+INSTALL Installation instructions
+Makefile Makefile to build, install, uninstall the module
+README don't forget to read it
diff --git a/ubuntu/fsam7400/INSTALL b/ubuntu/fsam7400/INSTALL
new file mode 100644
index 00000000000..352e15b11ec
--- /dev/null
+++ b/ubuntu/fsam7400/INSTALL
@@ -0,0 +1,110 @@
+SW RF kill switch for Fujitsu Siemens Amilo M 7400
+Copyright (C) 2006, zwobbl
+For additional information, contact Marcel Naziri <fsam7400@zwobbl.de>
+
+COMPILER REQUIREMENTS
+--------- ------ ---- --- -- -- - -
+
+You need to be using GCC v3.0 or higher in order to build the fsam7400 module.
+Using older versions will result in several compilation errors.
+
+
+INSTALLING THE BITS
+------------ ----- ----- ---- --- -- -
+
+# Unpack the source tarball
+
+% tar xvzf fsam7400-0.x.y.tgz
+% cd fsam7400-0.x.y
+
+Make sure to be root when performing the following operations. Also you must
+have a kernel source tree installed under /usr/src/linux
+
+# Build the kernel module
+
+% make
+
+Debug output is enabled by default. This is a good idea if you use the fsam module for
+the first time, so you get some nice information printed on kernel log. If you don't
+need the messages anymore, you have to comment out the line CONFIG_IPW2100_DEBUG=y in
+the Makefile.
+
+# Install the kernel module
+
+% make install
+
+Now you are ready for...
+
+
+LOADING THE DRIVER
+------------ ----- ----- ---- --- -- -
+
+Also easy to go... :)
+
+% modprobe fsam7400
+
+If you have set "wireless device" enabled in your "Advanced" bios settings of
+your Amilo M 7400 radio should be turned on at this point. So you're done!
+Watch out your kernel log if supported hardware was found. :)
+
+
+RADIO STATE AT LOADING
+
+You can override the wireless bios setting with
+
+% modprobe fsam7400 radio=[0|1]
+
+
+PROC FILESYSTEM
+
+If your hardware is supported by the driver you will get an entry in /proc
+called driver/wireless/radio which will give you state information by typing
+
+% cat /proc/driver/wireless/radio
+
+You can turn the radio on and off at your will with
+
+% echo [1|on] > /proc/driver/wireless/radio
+% echo [0|off] > /proc/driver/wireless/radio
+
+The module also recognizes parameters to set the user- and/or group-ID to
+something other than root, so you don't have to adjust it by hand.
+Just select your favourite IDs and type
+
+% modprobe fsam7400 uid=1000 gid=500
+
+Note, that /proc/driver/wireless/radio will only be read- and writeable by
+user & group and only readable by others.
+
+If you want to see debug output on syslog use the following parameter when
+loading the module
+
+% modprobe fsam7400 debug=1
+
+
+AUTOMATION FEATURES
+
+By default the driver will turn off the radio automatically short before the
+module is unloaded. To override this behaviour load the module adding the
+following parameter
+
+% modprobe fsam7400 autooff=0
+
+Also since 0.4.0 the driver can automatically modprobe the ipw2100 module when
+radio state changes to on and rmmods it when radio is turned off by fsam7400.
+To enable autoload support, use
+
+% modprobe fsam7400 autoload=1
+
+
+HIBERNATION SUPPORT
+
+After hibernation and boot up of the system the wireless radio might be disabled
+again. To revert to the radio state before hibernation just put the following
+in the wakeup script
+
+% echo resume > /proc/driver/wireless/radio
+
+
+
+That's all for now. Have fun with the driver!
diff --git a/ubuntu/fsam7400/Kconfig b/ubuntu/fsam7400/Kconfig
new file mode 100644
index 00000000000..f5a69c1108d
--- /dev/null
+++ b/ubuntu/fsam7400/Kconfig
@@ -0,0 +1,5 @@
+config FSAM7400
+ tristate "SW RF kill switch for Fujitsu Siemens Amilo M 7400"
+ depends on CHECK_SIGNATURE
+ default m
+ ---help---
diff --git a/ubuntu/fsam7400/LICENSE b/ubuntu/fsam7400/LICENSE
new file mode 100644
index 00000000000..1fe7297202e
--- /dev/null
+++ b/ubuntu/fsam7400/LICENSE
@@ -0,0 +1,338 @@
+"This software program is licensed subject to the GNU General Public License
+(GPL). Version 2, June 1991, available at
+<http://www.fsf.org/copyleft/gpl.html>"
+
+GNU General Public License
+
+Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies of this license
+document, but changing it is not allowed.
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is intended
+to guarantee your freedom to share and change free software--to make sure
+the software is free for all its users. This General Public License applies
+to most of the Free Software Foundation's software and to any other program
+whose authors commit to using it. (Some other Free Software Foundation
+software is covered by the GNU Library General Public License instead.) You
+can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the freedom
+to distribute copies of free software (and charge for this service if you
+wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These
+restrictions translate to certain responsibilities for you if you distribute
+copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or
+for a fee, you must give the recipients all the rights that you have. You
+must make sure that they, too, receive or can get the source code. And you
+must show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If
+the software is modified by someone else and passed on, we want its
+recipients to know that what they have is not the original, so that any
+problems introduced by others will not reflect on the original authors'
+reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will
+individually obtain patent licenses, in effect making the program
+proprietary. To prevent this, we have made it clear that any patent must be
+licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+ placed by the copyright holder saying it may be distributed under the
+ terms of this General Public License. The "Program", below, refers to any
+ such program or work, and a "work based on the Program" means either the
+ Program or any derivative work under copyright law: that is to say, a
+ work containing the Program or a portion of it, either verbatim or with
+ modifications and/or translated into another language. (Hereinafter,
+ translation is included without limitation in the term "modification".)
+ Each licensee is addressed as "you".
+
+ Activities other than copying, distribution and modification are not
+ covered by this License; they are outside its scope. The act of running
+ the Program is not restricted, and the output from the Program is covered
+ only if its contents constitute a work based on the Program (independent
+ of having been made by running the Program). Whether that is true depends
+ on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code
+ as you receive it, in any medium, provided that you conspicuously and
+ appropriately publish on each copy an appropriate copyright notice and
+ disclaimer of warranty; keep intact all the notices that refer to this
+ License and to the absence of any warranty; and give any other recipients
+ of the Program a copy of this License along with the Program.
+
+ You may charge a fee for the physical act of transferring a copy, and you
+ may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it,
+ thus forming a work based on the Program, and copy and distribute such
+ modifications or work under the terms of Section 1 above, provided that
+ you also meet all of these conditions:
+
+ * a) You must cause the modified files to carry prominent notices stating
+ that you changed the files and the date of any change.
+
+ * b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any part
+ thereof, to be licensed as a whole at no charge to all third parties
+ under the terms of this License.
+
+ * c) If the modified program normally reads commands interactively when
+ run, you must cause it, when started running for such interactive
+ use in the most ordinary way, to print or display an announcement
+ including an appropriate copyright notice and a notice that there is
+ no warranty (or else, saying that you provide a warranty) and that
+ users may redistribute the program under these conditions, and
+ telling the user how to view a copy of this License. (Exception: if
+ the Program itself is interactive but does not normally print such
+ an announcement, your work based on the Program is not required to
+ print an announcement.)
+
+ These requirements apply to the modified work as a whole. If identifiable
+ sections of that work are not derived from the Program, and can be
+ reasonably considered independent and separate works in themselves, then
+ this License, and its terms, do not apply to those sections when you
+ distribute them as separate works. But when you distribute the same
+ sections as part of a whole which is a work based on the Program, the
+ distribution of the whole must be on the terms of this License, whose
+ permissions for other licensees extend to the entire whole, and thus to
+ each and every part regardless of who wrote it.
+
+ Thus, it is not the intent of this section to claim rights or contest
+ your rights to work written entirely by you; rather, the intent is to
+ exercise the right to control the distribution of derivative or
+ collective works based on the Program.
+
+ In addition, mere aggregation of another work not based on the Program
+ with the Program (or with a work based on the Program) on a volume of a
+ storage or distribution medium does not bring the other work under the
+ scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+ Section 2) in object code or executable form under the terms of Sections
+ 1 and 2 above provided that you also do one of the following:
+
+ * a) Accompany it with the complete corresponding machine-readable source
+ code, which must be distributed under the terms of Sections 1 and 2
+ above on a medium customarily used for software interchange; or,
+
+ * b) Accompany it with a written offer, valid for at least three years,
+ to give any third party, for a charge no more than your cost of
+ physically performing source distribution, a complete machine-
+ readable copy of the corresponding source code, to be distributed
+ under the terms of Sections 1 and 2 above on a medium customarily
+ used for software interchange; or,
+
+ * c) Accompany it with the information you received as to the offer to
+ distribute corresponding source code. (This alternative is allowed
+ only for noncommercial distribution and only if you received the
+ program in object code or executable form with such an offer, in
+ accord with Subsection b above.)
+
+ The source code for a work means the preferred form of the work for
+ making modifications to it. For an executable work, complete source code
+ means all the source code for all modules it contains, plus any
+ associated interface definition files, plus the scripts used to control
+ compilation and installation of the executable. However, as a special
+ exception, the source code distributed need not include anything that is
+ normally distributed (in either source or binary form) with the major
+ components (compiler, kernel, and so on) of the operating system on which
+ the executable runs, unless that component itself accompanies the
+ executable.
+
+ If distribution of executable or object code is made by offering access
+ to copy from a designated place, then offering equivalent access to copy
+ the source code from the same place counts as distribution of the source
+ code, even though third parties are not compelled to copy the source
+ along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+ expressly provided under this License. Any attempt otherwise to copy,
+ modify, sublicense or distribute the Program is void, and will
+ automatically terminate your rights under this License. However, parties
+ who have received copies, or rights, from you under this License will not
+ have their licenses terminated so long as such parties remain in full
+ compliance.
+
+5. You are not required to accept this License, since you have not signed
+ it. However, nothing else grants you permission to modify or distribute
+ the Program or its derivative works. These actions are prohibited by law
+ if you do not accept this License. Therefore, by modifying or
+ distributing the Program (or any work based on the Program), you
+ indicate your acceptance of this License to do so, and all its terms and
+ conditions for copying, distributing or modifying the Program or works
+ based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+ Program), the recipient automatically receives a license from the
+ original licensor to copy, distribute or modify the Program subject to
+ these terms and conditions. You may not impose any further restrictions
+ on the recipients' exercise of the rights granted herein. You are not
+ responsible for enforcing compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+ infringement or for any other reason (not limited to patent issues),
+ conditions are imposed on you (whether by court order, agreement or
+ otherwise) that contradict the conditions of this License, they do not
+ excuse you from the conditions of this License. If you cannot distribute
+ so as to satisfy simultaneously your obligations under this License and
+ any other pertinent obligations, then as a consequence you may not
+ distribute the Program at all. For example, if a patent license would
+ not permit royalty-free redistribution of the Program by all those who
+ receive copies directly or indirectly through you, then the only way you
+ could satisfy both it and this License would be to refrain entirely from
+ distribution of the Program.
+
+ If any portion of this section is held invalid or unenforceable under any
+ particular circumstance, the balance of the section is intended to apply
+ and the section as a whole is intended to apply in other circumstances.
+
+ It is not the purpose of this section to induce you to infringe any
+ patents or other property right claims or to contest validity of any
+ such claims; this section has the sole purpose of protecting the
+ integrity of the free software distribution system, which is implemented
+ by public license practices. Many people have made generous contributions
+ to the wide range of software distributed through that system in
+ reliance on consistent application of that system; it is up to the
+ author/donor to decide if he or she is willing to distribute software
+ through any other system and a licensee cannot impose that choice.
+
+ This section is intended to make thoroughly clear what is believed to be
+ a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+ countries either by patents or by copyrighted interfaces, the original
+ copyright holder who places the Program under this License may add an
+ explicit geographical distribution limitation excluding those countries,
+ so that distribution is permitted only in or among countries not thus
+ excluded. In such case, this License incorporates the limitation as if
+ written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions of
+ the General Public License from time to time. Such new versions will be
+ similar in spirit to the present version, but may differ in detail to
+ address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the Program
+ specifies a version number of this License which applies to it and "any
+ later version", you have the option of following the terms and
+ conditions either of that version or of any later version published by
+ the Free Software Foundation. If the Program does not specify a version
+ number of this License, you may choose any version ever published by the
+ Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+ whose distribution conditions are different, write to the author to ask
+ for permission. For software which is copyrighted by the Free Software
+ Foundation, write to the Free Software Foundation; we sometimes make
+ exceptions for this. Our decision will be guided by the two goals of
+ preserving the free status of all derivatives of our free software and
+ of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
+ EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
+ ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
+ YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+ NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
+ DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
+ DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM
+ (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
+ INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
+ THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR
+ OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it free
+software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest to
+attach them to the start of each source file to most effectively convey the
+exclusion of warranty; and each file should have at least the "copyright"
+line and a pointer to where the full notice is found.
+
+one line to give the program's name and an idea of what it does.
+Copyright (C) yyyy name of author
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+more details.
+
+You should have received a copy of the GNU General Public License along with
+this program; if not, write to the Free Software Foundation, Inc., 59
+Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this when
+it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
+with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free
+software, and you are welcome to redistribute it under certain conditions;
+type 'show c' for details.
+
+The hypothetical commands 'show w' and 'show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may be
+called something other than 'show w' and 'show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+'Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+signature of Ty Coon, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General Public
+License instead of this License.
diff --git a/ubuntu/fsam7400/Makefile b/ubuntu/fsam7400/Makefile
new file mode 100644
index 00000000000..bba206f45c4
--- /dev/null
+++ b/ubuntu/fsam7400/Makefile
@@ -0,0 +1,2 @@
+
+obj-$(CONFIG_FSAM7400) += fsam7400.o
diff --git a/ubuntu/fsam7400/README b/ubuntu/fsam7400/README
new file mode 100644
index 00000000000..d03ef625dfd
--- /dev/null
+++ b/ubuntu/fsam7400/README
@@ -0,0 +1,60 @@
+SW RF kill switch for Fujitsu Siemens Amilo M 7400 / Maxdata 7000DX
+and compatible hardware.
+
+Please be sure that CONFIG_CHECK_SIGNATURE=y in your kernel configuration!
+Otherwise this module will not compile.
+
+Nov 22, 2008 - Release 0.5.2
+
+This package, with minor modifications from zwobbl's 0.5.1, was created
+by legolas558.
+
+More information at:
+http://legolas558.iragan.com/fsam7400
+
+Sep 24, 2006 - Release 0.5.1
+------------ ----- ----- ---- --- -- -
+
+* Fix: possible null pointer dereference in proc code
+
+* Fix: module exit code was mistakenly disabled
+
+
+for prior changes see CHANGELOG
+
+
+TODO
+------------ ----- ----- ---- --- -- -
+
+* Fix bugs (if there are any ;))
+
+
+------------ ----- ----- ---- --- -- -
+
+Have a look in INSTALL for further details to get things working!
+
+
+License
+------------ ----- ----- ---- --- -- -
+
+ Copyright(c) 2006 zwobbl. All rights reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program; if not, write to the Free Software Foundation, Inc., 59
+ Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ The full GNU General Public License is included in this distribution in the
+ file called LICENSE.
+
+ Contact Information:
+ Marcel Naziri <fsam7400@zwobbl.de>
diff --git a/ubuntu/fsam7400/fsam7400.c b/ubuntu/fsam7400/fsam7400.c
new file mode 100644
index 00000000000..cbc40b81991
--- /dev/null
+++ b/ubuntu/fsam7400/fsam7400.c
@@ -0,0 +1,386 @@
+/*******************************************************************************
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2 of the License, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program; if not, write to the Free Software Foundation, Inc., 59
+ Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ The full GNU General Public License is included in this distribution in the
+ file called LICENSE.
+
+ Author:
+ Marcel Naziri <fsam7400@zwobbl.de>
+
+ Based on:
+ pbe5.c by Pedro Ramalhais <pmr09313@students.fct.unl.pt>
+
+ Many thanks to:
+ Pedro Ramalhais for spending several nights with me on IRC
+
+*******************************************************************************/
+
+#ifdef CONFIG_X86
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+#include <linux/moduleparam.h>
+#else
+#include <linux/modversions.h>
+#endif
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/compiler.h>
+#include <linux/types.h>
+#include <linux/proc_fs.h>
+#include <linux/ctype.h>
+#include <linux/string.h>
+#include <linux/kmod.h>
+#include <linux/io.h>
+#include <asm/uaccess.h>
+
+#define DRV_NAME "fsam7400"
+#define DRV_VERSION "0.5.2"
+#define DRV_DESCRIPTION "SW RF kill switch for Fujitsu Siemens Amilo M 7400 / Maxdata 7000DX"
+#define DRV_COPYRIGHT "Copyright(c) 2004 zwobbl"
+#define DRV_AUTHOR "Marcel Naziri"
+#define DRV_LICENSE "GPL"
+
+MODULE_DESCRIPTION(DRV_DESCRIPTION);
+MODULE_AUTHOR(DRV_AUTHOR);
+MODULE_LICENSE(DRV_LICENSE);
+
+#define RADIO_NONE 0xFFFFFFFF
+#define RADIO_OFF 0x00000000
+#define RADIO_ON 0x00000010
+
+static int radio = RADIO_NONE;
+static int autooff = 1;
+static int autoload = 0;
+static int uid = 0;
+static int gid = 0;
+static int debug = 0;
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)
+module_param(radio, int, 0444);
+module_param(autooff, int, 0444);
+module_param(autoload, int, 0444);
+module_param(uid, int, 0444);
+module_param(gid, int, 0444);
+module_param(debug, int, 0444);
+#else
+MODULE_PARM(radio, "i");
+MODULE_PARM(autooff, "i");
+MODULE_PARM(autoload, "i");
+MODULE_PARM(uid, "i");
+MODULE_PARM(gid, "i");
+MODULE_PARM(debug, "i");
+#endif
+
+MODULE_PARM_DESC(radio, "desired radio state when loading module");
+MODULE_PARM_DESC(autooff, "turns radio off when unloading module (default)");
+MODULE_PARM_DESC(autoload, "load/unloads ipw2100 driver when toggling radio");
+MODULE_PARM_DESC(uid, "user ID for proc entry");
+MODULE_PARM_DESC(gid, "group ID for proc entry");
+MODULE_PARM_DESC(debug, "enables debug output on syslog");
+
+/* some more or less useful macros */
+
+#define DEBUG if (debug)
+#define DEBUG_OUT0(a) DEBUG printk(KERN_INFO DRV_NAME ": " a)
+#define DEBUG_OUT1(a,b) DEBUG printk(KERN_INFO DRV_NAME ": " a,b)
+#define DEBUG_OUT2(a,b,c) DEBUG printk(KERN_INFO DRV_NAME ": " a,b,c)
+#define DEBUG_OUT3(a,b,c,d) DEBUG printk(KERN_INFO DRV_NAME ": " a,b,c,d)
+
+#define ONOFF(x) (x) ? "ON" : "OFF"
+#define RADIO_ONOFF(x) (x) == RADIO_ON ? "ON" : "OFF"
+#define TOUL(x) (unsigned long) (x)
+
+/*
+ * NOTE: These values were obtained from disassembling the wbutton.sys driver
+ * installed in the Fujitsu Siemens Amilo M 7400 laptop. The names were guessed,
+ * so don't rely on them.
+ */
+
+/*** hardware dependant stuff ***/
+
+#define BIOS_CODE_ADDR 0x000F0000
+#define BIOS_CODE_ALT_MASK 0xFFFFC000
+
+#define BIOS_CODE_MAPSIZE 0x010000
+#define BIOS_CODE_ALT_MAPSIZE 0x004000
+
+#define BIOS_MAGIC_COMMAND 0x9610
+#define BIOS_MAGIC_OFF 0x0035
+#define BIOS_MAGIC_ON 0x0135
+#define BIOS_MAGIC_CHECK 0x0235
+
+#define PTR_POSITION 5
+#define ALLIGNED_STEP 0x10
+
+#define BIOS_SIGN_SIZE 4
+static const char bios_sign[] = {
+ 0x42, 0x21, 0x55, 0x30
+};
+
+#define WLAN_DISABLED_IN_BIOS 0x01
+#define WLAN_ENABLED_IN_BIOS 0x03
+
+static unsigned long bios_code = 0;
+
+static int fsam_bios_routine(int eax, int ebx)
+{
+ __asm__ __volatile__(
+ "call *%3 \t\n"
+ : "=a"(eax)
+ : "a"(eax), "b"(ebx), "c"(bios_code)
+ );
+ return (eax & 0xFF);
+}
+
+static int fsam_call_bios(int value)
+{
+ if (bios_code) {
+ int command = BIOS_MAGIC_COMMAND;
+ DEBUG_OUT2("bios routine gets parameter eax=%X and ebx=%X\n",
+ command, value);
+ value = fsam_bios_routine(command, value);
+ DEBUG_OUT1("bios routine results %X\n", value);
+ return value;
+ }
+ return ~0;
+}
+
+/* pointer to mapped memory*/
+static void *mem_code = NULL;
+
+static inline void fsam_unmap_memory(void)
+{
+ bios_code = 0;
+ if (mem_code) {
+ iounmap(mem_code);
+ }
+}
+
+static inline int fsam_map_memory(void)
+{
+ const unsigned long max_offset = BIOS_CODE_MAPSIZE - BIOS_SIGN_SIZE - PTR_POSITION;
+ unsigned long offset;
+ unsigned int addr;
+ mem_code = ioremap(BIOS_CODE_ADDR, BIOS_CODE_MAPSIZE);
+ if (!mem_code)
+ goto fail;
+ DEBUG_OUT3("physical memory %x-%x mapped to virtual address %p\n",
+ BIOS_CODE_ADDR, BIOS_CODE_ADDR+BIOS_CODE_MAPSIZE, mem_code);
+ for ( offset = 0; offset < max_offset; offset += ALLIGNED_STEP )
+ if (check_signature((void*)TOUL(mem_code) + offset, bios_sign, BIOS_SIGN_SIZE))
+ break;
+ if (offset >= max_offset)
+ goto fail;
+ DEBUG_OUT1("bios signature found at offset %lx\n", offset);
+ addr = readl((void*)TOUL(mem_code) + offset + PTR_POSITION);
+ if (addr < BIOS_CODE_ADDR) {
+ DEBUG_OUT0("bios routine out of memory range, "
+ "doing some new memory mapping...\n");
+ iounmap(mem_code);
+ mem_code = NULL;
+ addr &= BIOS_CODE_ALT_MASK;
+ mem_code = ioremap(addr, BIOS_CODE_ALT_MAPSIZE);
+ if (!mem_code)
+ goto fail;
+ DEBUG_OUT3("physical memory %x-%x mapped to virtual address %p\n",
+ addr, addr+BIOS_CODE_ALT_MAPSIZE, mem_code);
+ addr &= 0x3FFF;
+ } else
+ addr &= 0xFFFF;
+
+ bios_code = addr + TOUL(mem_code);
+ DEBUG_OUT1("supposed address of bios routine is %lx\n", bios_code);
+ return 1;
+ fail:
+ fsam_unmap_memory();
+ return 0;
+}
+
+/*** ipw2100 loading ***/
+
+static inline void do_ipw2100_loading(int state)
+{
+ int status;
+ char *mode;
+ char *envp[] = { "HOME=/",
+ "TERM=linux",
+ "PATH=/sbin:/usr/sbin:/bin:/usr/bin", NULL };
+ if (state == RADIO_ON) {
+ char *argv[] = { "/sbin/modprobe", "-s", "-k", "ipw2100", NULL };
+ mode = "loading";
+ status = call_usermodehelper(argv[0], argv, envp, 1);
+ } else {
+ char *argv[] = { "/sbin/rmmod", "ipw2100", NULL };
+ mode = "removing";
+ status = call_usermodehelper(argv[0], argv, envp, 1);
+ }
+ DEBUG_OUT2("%s of ipw2100 module %s\n", mode, status == 0 ? "successful" : "FAILED");
+}
+
+/*** interface stuff ***/
+
+static void rfkill_set_radio(int value)
+{
+ radio = value == RADIO_ON ? fsam_call_bios(BIOS_MAGIC_ON) :
+ fsam_call_bios(BIOS_MAGIC_OFF);
+ if (autoload) do_ipw2100_loading(radio);
+}
+
+static inline int rfkill_get_radio(void)
+{
+ return radio;
+}
+
+static inline int rfkill_supported(void)
+{
+ return bios_code != 0;
+}
+
+static inline void rfkill_initialize(void) {
+ fsam_map_memory();
+ if (rfkill_supported()) {
+ radio = radio != RADIO_NONE
+ ? ( radio ? RADIO_ON : RADIO_OFF ) /*module parameter*/
+ : ( fsam_call_bios(BIOS_MAGIC_CHECK) == WLAN_ENABLED_IN_BIOS
+ ? RADIO_ON : RADIO_OFF );
+ }
+}
+
+static inline void rfkill_uninitialize(void) {
+ fsam_unmap_memory();
+}
+
+/*** proc stuff ***/
+
+static inline int common_proc_set_radio(struct file *file, const char *buffer,
+ unsigned long count, void *data)
+{
+ unsigned long len = 7;
+ char newstate[len];
+ len = count < len ? count : len;
+ if ( copy_from_user(newstate, buffer, len) != 0 )
+ return -EFAULT;
+ if ( (*newstate == '1' || *newstate == '0') &&
+ (count == 1 || isspace(newstate[1])) )
+ rfkill_set_radio(*newstate == '1' ? RADIO_ON : RADIO_OFF);
+ else
+ if ( !strncmp(newstate, "on", 2) &&
+ (count == 2 || isspace(newstate[2])) )
+ rfkill_set_radio(RADIO_ON);
+ else
+ if ( !strncmp(newstate, "off", 3) &&
+ (count == 3 || isspace(newstate[3])) )
+ rfkill_set_radio(RADIO_OFF);
+ else
+ if ( !strncmp(newstate, "resume", 6) &&
+ (count == 6 || isspace(newstate[6])) )
+ rfkill_set_radio(radio);
+ return count;
+}
+
+static inline int common_proc_get_radio(char *page, char **start, off_t offset,
+ int count, int *eof, void *data)
+{
+ int len = snprintf(page, count, DRV_DESCRIPTION ", v" DRV_VERSION "\n"
+ " auto-off is %s, auto-load is %s\n",
+ ONOFF(autooff), ONOFF(autoload));
+ len += snprintf(page+len, count-len, " radio state is %s\n",
+ RADIO_ONOFF(rfkill_get_radio()));
+ *eof = 1;
+ return len;
+}
+
+#define PROC_DIR "driver/wireless"
+#define PROC_RADIO "radio"
+
+static struct proc_dir_entry *dir_base = NULL;
+
+static inline void common_proc_cleanup(void)
+{
+ if (dir_base) {
+ remove_proc_entry(PROC_RADIO, dir_base);
+ remove_proc_entry(PROC_DIR, NULL);
+ dir_base = NULL;
+ }
+}
+
+static inline int common_proc_init(void)
+{
+ struct proc_dir_entry *ent;
+ int err = 0;
+ dir_base = proc_mkdir(PROC_DIR, NULL);
+ if (dir_base == NULL) {
+ printk(KERN_ERR DRV_NAME ": Unable to initialize /proc/" PROC_DIR "\n");
+ err = -ENOMEM;
+ goto fail;
+ }
+ ent = create_proc_entry(PROC_RADIO,
+ S_IFREG | S_IRUGO | S_IWUSR | S_IWGRP,
+ dir_base);
+ if (ent) {
+ ent->uid = uid;
+ ent->gid = gid;
+ ent->read_proc = common_proc_get_radio;
+ ent->write_proc = common_proc_set_radio;
+ } else {
+ printk(KERN_ERR DRV_NAME ": Unable to initialize /proc/"
+ PROC_DIR "/" PROC_RADIO "\n");
+ err = -ENOMEM;
+ goto fail;
+ }
+ return 0;
+ fail:
+ common_proc_cleanup();
+ return err;
+}
+
+/*** module stuff ***/
+
+static int __init common_init(void)
+{
+ printk(KERN_INFO DRV_NAME ": " DRV_DESCRIPTION ", v" DRV_VERSION "\n");
+ printk(KERN_INFO DRV_NAME ": " DRV_COPYRIGHT "\n");
+ rfkill_initialize();
+ if (rfkill_supported()) {
+ common_proc_init();
+ if (radio != RADIO_NONE)
+ rfkill_set_radio(radio);
+ } else
+ printk(KERN_INFO DRV_NAME ": no supported wireless hardware found\n");
+ return 0;
+}
+
+static void __exit common_exit(void)
+{
+ if (rfkill_supported() && autooff)
+ rfkill_set_radio(RADIO_OFF);
+ common_proc_cleanup();
+ rfkill_uninitialize();
+ printk(KERN_INFO DRV_NAME ": module removed successfully\n");
+}
+
+module_init(common_init);
+module_exit(common_exit);
+
+#else
+#error This driver is only available for X86 architecture
+#endif
+
+/*
+ 1 2 3 4 5 6 7
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+*/
diff --git a/ubuntu/include/README b/ubuntu/include/README
new file mode 100644
index 00000000000..adc8d33e6d8
--- /dev/null
+++ b/ubuntu/include/README
@@ -0,0 +1,4 @@
+Only use this directory for things which need to share their headers with
+other parts of the kernel or other modules in ubuntu/
+
+Otherwise, keep them local to the module directory.
diff --git a/ubuntu/iscsitarget/BOM b/ubuntu/iscsitarget/BOM
new file mode 100644
index 00000000000..0fde30cd819
--- /dev/null
+++ b/ubuntu/iscsitarget/BOM
@@ -0,0 +1,2 @@
+Downloaded from: svn://svn.berlios.de/iscsitarget/trunk
+Current Version: 1.4.20.1
diff --git a/ubuntu/iscsitarget/Kconfig b/ubuntu/iscsitarget/Kconfig
new file mode 100644
index 00000000000..e5964dcf79d
--- /dev/null
+++ b/ubuntu/iscsitarget/Kconfig
@@ -0,0 +1,3 @@
+config SCSI_ISCSITARGET
+ tristate "iSCSI Target Driver"
+ depends on SCSI
diff --git a/ubuntu/iscsitarget/Makefile b/ubuntu/iscsitarget/Makefile
new file mode 100644
index 00000000000..727c706dbfb
--- /dev/null
+++ b/ubuntu/iscsitarget/Makefile
@@ -0,0 +1,17 @@
+#
+# Makefile for the Linux kernel device drivers.
+#
+# Note! Dependencies are done automagically by 'make dep', which also
+# removes any old dependencies. DON'T put your own dependencies here
+# unless it's something special (not a .c file).
+#
+# Note 2! The CFLAGS definitions are now in the main makefile.
+
+EXTRA_CFLAGS += -I$(src)/include
+
+obj-m += iscsi_trgt.o
+iscsi_trgt-objs := tio.o iscsi.o nthread.o wthread.o config.o digest.o \
+ conn.o session.o target.o volume.o iotype.o \
+ file-io.o null-io.o target_disk.o event.o param.o \
+ block-io.o ua.o
+
diff --git a/ubuntu/iscsitarget/block-io.c b/ubuntu/iscsitarget/block-io.c
new file mode 100644
index 00000000000..4de1d2005e4
--- /dev/null
+++ b/ubuntu/iscsitarget/block-io.c
@@ -0,0 +1,327 @@
+/*
+ * Target device block I/O.
+ *
+ * Based on file I/O driver from FUJITA Tomonori
+ * (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org>
+ * (C) 2006 Andre Brinkmann <brinkman at hni dot upb dot de>
+ * (C) 2007 Ross Walker <rswwalker at hotmail dot com>
+ * (C) 2007 Ming Zhang <blackmagic02881 at gmail dot com>
+ * This code is licenced under the GPL.
+ */
+
+#include <linux/types.h>
+#include <linux/blkdev.h>
+#include <linux/parser.h>
+#include <linux/buffer_head.h>
+
+#include "iscsi.h"
+#include "iscsi_dbg.h"
+#include "iotype.h"
+
+struct blockio_data {
+ char *path;
+ struct block_device *bdev;
+};
+
+struct tio_work {
+ atomic_t error;
+ atomic_t bios_remaining;
+ struct completion tio_complete;
+};
+
+static void blockio_bio_endio(struct bio *bio, int error)
+{
+ struct tio_work *tio_work = bio->bi_private;
+
+ error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? error : -EIO;
+
+ if (error)
+ atomic_set(&tio_work->error, error);
+
+ /* If last bio signal completion */
+ if (atomic_dec_and_test(&tio_work->bios_remaining))
+ complete(&tio_work->tio_complete);
+
+ bio_put(bio);
+}
+
+/*
+ * Blockio_make_request(): The function translates an iscsi-request into
+ * a number of requests to the corresponding block device.
+ */
+static int
+blockio_make_request(struct iet_volume *volume, struct tio *tio, int rw)
+{
+ struct blockio_data *bio_data = volume->private;
+ struct request_queue *bdev_q = bdev_get_queue(bio_data->bdev);
+ struct tio_work *tio_work;
+ struct bio *tio_bio = NULL, *bio = NULL, *biotail = NULL;
+
+ u32 offset = tio->offset;
+ u32 size = tio->size;
+ u32 tio_index = 0;
+
+ int max_pages = 1;
+ int err = 0;
+
+ loff_t ppos = ((loff_t) tio->idx << PAGE_SHIFT) + offset;
+
+ /* Calculate max_pages for bio_alloc (memory saver) */
+ if (bdev_q)
+ max_pages = bio_get_nr_vecs(bio_data->bdev);
+
+ tio_work = kzalloc(sizeof (*tio_work), GFP_KERNEL);
+ if (!tio_work)
+ return -ENOMEM;
+
+ atomic_set(&tio_work->error, 0);
+ atomic_set(&tio_work->bios_remaining, 0);
+ init_completion(&tio_work->tio_complete);
+
+ /* Main processing loop, allocate and fill all bios */
+ while (tio_index < tio->pg_cnt) {
+ bio = bio_alloc(GFP_KERNEL, min(max_pages, BIO_MAX_PAGES));
+ if (!bio) {
+ err = -ENOMEM;
+ goto out;
+ }
+
+ /* bi_sector is ALWAYS in units of 512 bytes */
+ bio->bi_sector = ppos >> 9;
+ bio->bi_bdev = bio_data->bdev;
+ bio->bi_end_io = blockio_bio_endio;
+ bio->bi_private = tio_work;
+
+ if (tio_bio)
+ biotail = biotail->bi_next = bio;
+ else
+ tio_bio = biotail = bio;
+
+ atomic_inc(&tio_work->bios_remaining);
+
+ /* Loop for filling bio */
+ while (tio_index < tio->pg_cnt) {
+ unsigned int bytes = PAGE_SIZE - offset;
+
+ if (bytes > size)
+ bytes = size;
+
+ if (!bio_add_page(bio, tio->pvec[tio_index], bytes, offset))
+ break;
+
+ size -= bytes;
+ ppos += bytes;
+
+ offset = 0;
+
+ tio_index++;
+ }
+ }
+
+ /* Walk the list, submitting bios 1 by 1 */
+ while (tio_bio) {
+ bio = tio_bio;
+ tio_bio = tio_bio->bi_next;
+ bio->bi_next = NULL;
+
+ submit_bio(rw, bio);
+ }
+
+ if (bdev_q && bdev_q->unplug_fn)
+ bdev_q->unplug_fn(bdev_q);
+
+ wait_for_completion(&tio_work->tio_complete);
+
+ err = atomic_read(&tio_work->error);
+
+ kfree(tio_work);
+
+ return err;
+out:
+ while (tio_bio) {
+ bio = tio_bio;
+ tio_bio = tio_bio->bi_next;
+
+ bio_put(bio);
+ }
+
+ kfree(tio_work);
+
+ return err;
+}
+
+static int
+blockio_open_path(struct iet_volume *volume, const char *path)
+{
+ struct blockio_data *bio_data = volume->private;
+ struct block_device *bdev;
+ int flags = FMODE_READ | (LUReadonly(volume) ? 0 : FMODE_WRITE);
+ int err = 0;
+
+ bio_data->path = kstrdup(path, GFP_KERNEL);
+ if (!bio_data->path)
+ return -ENOMEM;
+
+ bdev = open_bdev_exclusive(path, flags, THIS_MODULE);
+ if (IS_ERR(bdev)) {
+ err = PTR_ERR(bdev);
+ eprintk("Can't open device %s, error %d\n", path, err);
+ bio_data->bdev = NULL;
+ } else {
+ bio_data->bdev = bdev;
+ fsync_bdev(bio_data->bdev);
+ }
+
+ return err;
+}
+
+/* Create an enumeration of our accepted actions */
+enum
+{
+ opt_path, opt_ignore, opt_err,
+};
+
+/* Create a match table using our action enums and their matching options */
+static match_table_t tokens = {
+ {opt_path, "path=%s"},
+ {opt_ignore, "scsiid=%s"},
+ {opt_ignore, "scsisn=%s"},
+ {opt_ignore, "type=%s"},
+ {opt_ignore, "iomode=%s"},
+ {opt_ignore, "blocksize=%s"},
+ {opt_err, NULL},
+};
+
+static int
+parse_blockio_params(struct iet_volume *volume, char *params)
+{
+ struct blockio_data *info = volume->private;
+ int err = 0;
+ char *p, *q;
+
+ /* Loop through parameters separated by commas, look up our
+ * parameter in match table, return enumeration and arguments
+ * select case based on the returned enum and run the action */
+ while ((p = strsep(&params, ",")) != NULL) {
+ substring_t args[MAX_OPT_ARGS];
+ int token;
+ if (!*p)
+ continue;
+ iet_strtolower(p);
+ token = match_token(p, tokens, args);
+ switch (token) {
+ case opt_path:
+ if (info->path) {
+ iprintk("Target %s, LUN %u: "
+ "duplicate \"Path\" param\n",
+ volume->target->name, volume->lun);
+ err = -EINVAL;
+ goto out;
+ }
+ if (!(q = match_strdup(&args[0]))) {
+ err = -ENOMEM;
+ goto out;
+ }
+ err = blockio_open_path(volume, q);
+ kfree(q);
+ if (err < 0)
+ goto out;
+ break;
+ case opt_ignore:
+ break;
+ default:
+ iprintk("Target %s, LUN %u: unknown param %s\n",
+ volume->target->name, volume->lun, p);
+ return -EINVAL;
+ }
+ }
+
+ if (!info->path) {
+ iprintk("Target %s, LUN %u: missing \"Path\" param\n",
+ volume->target->name, volume->lun);
+ err = -EINVAL;
+ }
+
+ out:
+ return err;
+}
+
+static void
+blockio_detach(struct iet_volume *volume)
+{
+ struct blockio_data *bio_data = volume->private;
+ int flags = FMODE_READ | (LUReadonly(volume) ? 0 : FMODE_WRITE);
+
+ if (bio_data->bdev)
+ close_bdev_exclusive(bio_data->bdev, flags);
+ kfree(bio_data->path);
+
+ kfree(volume->private);
+}
+
+static int
+blockio_attach(struct iet_volume *volume, char *args)
+{
+ struct blockio_data *bio_data;
+ int err = 0;
+
+ if (volume->private) {
+ eprintk("Lun %u already attached on Target %s \n",
+ volume->lun, volume->target->name);
+ return -EBUSY;
+ }
+
+ bio_data = kzalloc(sizeof (*bio_data), GFP_KERNEL);
+ if (!bio_data)
+ return -ENOMEM;
+
+ volume->private = bio_data;
+
+ err = parse_blockio_params(volume, args);
+ if (!err) {
+ /* see Documentation/ABI/testing/sysfs-block */
+ unsigned bsz = bdev_logical_block_size(bio_data->bdev);
+ if (!volume->blk_shift)
+ volume->blk_shift = ilog2(bsz);
+ else if (volume->blk_shift < ilog2(bsz)) {
+ eprintk("Specified block size (%u) smaller than "
+ "device %s logical block size (%u)\n",
+ (1 << volume->blk_shift), bio_data->path, bsz);
+ err = -EINVAL;
+ }
+ }
+ if (err < 0) {
+ eprintk("Error attaching Lun %u to Target %s \n",
+ volume->lun, volume->target->name);
+ goto out;
+ }
+
+ volume->blk_cnt = bio_data->bdev->bd_inode->i_size >> volume->blk_shift;
+
+ /* Offer neither write nor read caching */
+ ClearLURCache(volume);
+ ClearLUWCache(volume);
+
+ out:
+ if (err < 0)
+ blockio_detach(volume);
+
+ return err;
+}
+
+static void
+blockio_show(struct iet_volume *volume, struct seq_file *seq)
+{
+ struct blockio_data *bio_data = volume->private;
+
+ /* Used to display blockio volume info in /proc/net/iet/volumes */
+ seq_printf(seq, " path:%s\n", bio_data->path);
+}
+
+struct iotype blockio = {
+ .name = "blockio",
+ .attach = blockio_attach,
+ .make_request = blockio_make_request,
+ .detach = blockio_detach,
+ .show = blockio_show,
+};
diff --git a/ubuntu/iscsitarget/config.c b/ubuntu/iscsitarget/config.c
new file mode 100644
index 00000000000..87fa44b9705
--- /dev/null
+++ b/ubuntu/iscsitarget/config.c
@@ -0,0 +1,362 @@
+/*
+ * (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org>
+ *
+ * This code is licenced under the GPL.
+ */
+
+#include <linux/proc_fs.h>
+
+#include "iscsi.h"
+#include "iscsi_dbg.h"
+
+static DECLARE_MUTEX(ioctl_sem);
+
+struct proc_entries {
+ const char *name;
+ struct file_operations *fops;
+};
+
+static struct proc_entries iet_proc_entries[] =
+{
+ {"volume", &volume_seq_fops},
+ {"session", &session_seq_fops},
+};
+
+static struct proc_dir_entry *proc_iet_dir;
+
+void iet_procfs_exit(void)
+{
+ int i;
+
+ if (!proc_iet_dir)
+ return;
+
+ for (i = 0; i < ARRAY_SIZE(iet_proc_entries); i++)
+ remove_proc_entry(iet_proc_entries[i].name, proc_iet_dir);
+
+ remove_proc_entry(proc_iet_dir->name, proc_iet_dir->parent);
+}
+
+int iet_procfs_init(void)
+{
+ int i;
+ struct proc_dir_entry *ent;
+
+ if (!(proc_iet_dir = proc_mkdir("iet", init_net.proc_net)))
+ goto err;
+
+ for (i = 0; i < ARRAY_SIZE(iet_proc_entries); i++) {
+ ent = create_proc_entry(iet_proc_entries[i].name, 0, proc_iet_dir);
+ if (ent)
+ ent->proc_fops = iet_proc_entries[i].fops;
+ else
+ goto err;
+ }
+
+ return 0;
+
+err:
+ if (proc_iet_dir)
+ iet_procfs_exit();
+
+ return -ENOMEM;
+}
+
+static int get_module_info(unsigned long ptr)
+{
+ struct module_info info;
+ int err;
+
+ snprintf(info.version, sizeof(info.version), "%s", IET_VERSION_STRING);
+
+ err = copy_to_user((void *) ptr, &info, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ return 0;
+}
+
+static int get_conn_info(struct iscsi_target *target, unsigned long ptr)
+{
+ struct iscsi_session *session;
+ struct iscsi_conn *conn;
+ struct conn_info info;
+ int err;
+
+ err = copy_from_user(&info, (void *) ptr, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ session = session_lookup(target, info.sid);
+ if (!session)
+ return -ENOENT;
+
+ conn = conn_lookup(session, info.cid);
+ if (!conn)
+ return -ENOENT;
+
+ info.cid = conn->cid;
+ info.stat_sn = conn->stat_sn;
+ info.exp_stat_sn = conn->exp_stat_sn;
+
+ err = copy_to_user((void *) ptr, &info, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ return 0;
+}
+
+static int add_conn(struct iscsi_target *target, unsigned long ptr)
+{
+ struct iscsi_session *session;
+ struct conn_info info;
+ int err;
+
+ err = copy_from_user(&info, (void *) ptr, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ session = session_lookup(target, info.sid);
+ if (!session)
+ return -ENOENT;
+
+ return conn_add(session, &info);
+}
+
+static int del_conn(struct iscsi_target *target, unsigned long ptr)
+{
+ struct iscsi_session *session;
+ struct conn_info info;
+ int err;
+
+ err = copy_from_user(&info, (void *) ptr, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ session = session_lookup(target, info.sid);
+ if (!session)
+ return -ENOENT;
+
+ return conn_del(session, &info);
+}
+
+static int get_session_info(struct iscsi_target *target, unsigned long ptr)
+{
+ struct iscsi_session *session;
+ struct session_info info;
+ int err;
+
+ err = copy_from_user(&info, (void *) ptr, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ session = session_lookup(target, info.sid);
+ if (!session)
+ return -ENOENT;
+
+ info.exp_cmd_sn = session->exp_cmd_sn;
+ info.max_cmd_sn = session->max_cmd_sn;
+
+ err = copy_to_user((void *) ptr, &info, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ return 0;
+}
+
+static int add_session(struct iscsi_target *target, unsigned long ptr)
+{
+ struct session_info info;
+ int err;
+
+ err = copy_from_user(&info, (void *) ptr, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ return session_add(target, &info);
+}
+
+static int del_session(struct iscsi_target *target, unsigned long ptr)
+{
+ struct session_info info;
+ int err;
+
+ err = copy_from_user(&info, (void *) ptr, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ return session_del(target, info.sid);
+}
+
+static int add_volume(struct iscsi_target *target, unsigned long ptr)
+{
+ struct volume_info info;
+ int err;
+
+ err = copy_from_user(&info, (void *) ptr, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ return volume_add(target, &info);
+}
+
+static int del_volume(struct iscsi_target *target, unsigned long ptr)
+{
+ struct volume_info info;
+ int err;
+
+ err = copy_from_user(&info, (void *) ptr, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ return iscsi_volume_del(target, &info);
+}
+
+static int iscsi_param_config(struct iscsi_target *target, unsigned long ptr, int set)
+{
+ struct iscsi_param_info info;
+ int err;
+
+ err = copy_from_user(&info, (void *) ptr, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ err = iscsi_param_set(target, &info, set);
+ if (err < 0 || set)
+ return err;
+
+ err = copy_to_user((void *) ptr, &info, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ return 0;
+}
+
+static int add_target(unsigned long ptr)
+{
+ struct target_info info;
+ int err;
+
+ err = copy_from_user(&info, (void *) ptr, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ err = target_add(&info);
+ if (err < 0)
+ return err;
+
+ err = copy_to_user((void *) ptr, &info, sizeof(info));
+ if (err)
+ return -EFAULT;
+
+ return 0;
+}
+
+static long ioctl(struct file *file, unsigned int cmd, unsigned long arg)
+{
+ struct iscsi_target *target = NULL;
+ long err;
+ u32 id;
+
+ err = down_interruptible(&ioctl_sem);
+ if (err < 0)
+ return err;
+
+ if (cmd == GET_MODULE_INFO) {
+ err = get_module_info(arg);
+ goto done;
+ }
+
+ if (cmd == ADD_TARGET) {
+ err = add_target(arg);
+ goto done;
+ }
+
+ err = get_user(id, (u32 *) arg);
+ if (err < 0)
+ goto done;
+
+ /* locking handled in target_del */
+ if (cmd == DEL_TARGET) {
+ err = target_del(id);
+ goto done;
+ }
+
+ target = target_lookup_by_id(id);
+ if (!target) {
+ err = -ENOENT;
+ goto done;
+ }
+
+ err = target_lock(target, 1);
+ if (err < 0)
+ goto done;
+
+ switch (cmd) {
+ case ADD_VOLUME:
+ err = add_volume(target, arg);
+ break;
+
+ case DEL_VOLUME:
+ err = del_volume(target, arg);
+ break;
+
+ case ADD_SESSION:
+ err = add_session(target, arg);
+ break;
+
+ case DEL_SESSION:
+ err = del_session(target, arg);
+ break;
+
+ case GET_SESSION_INFO:
+ err = get_session_info(target, arg);
+ break;
+
+ case ISCSI_PARAM_SET:
+ err = iscsi_param_config(target, arg, 1);
+ break;
+
+ case ISCSI_PARAM_GET:
+ err = iscsi_param_config(target, arg, 0);
+ break;
+
+ case ADD_CONN:
+ err = add_conn(target, arg);
+ break;
+
+ case DEL_CONN:
+ err = del_conn(target, arg);
+ break;
+
+ case GET_CONN_INFO:
+ err = get_conn_info(target, arg);
+ break;
+ default:
+ eprintk("invalid ioctl cmd %x\n", cmd);
+ err = -EINVAL;
+ }
+
+ target_unlock(target);
+done:
+ up(&ioctl_sem);
+
+ return err;
+}
+
+static int release(struct inode *i __attribute__((unused)),
+ struct file *f __attribute__((unused)))
+{
+ down(&ioctl_sem);
+ target_del_all();
+ up(&ioctl_sem);
+
+ return 0;
+}
+
+struct file_operations ctr_fops = {
+ .owner = THIS_MODULE,
+ .unlocked_ioctl = ioctl,
+ .compat_ioctl = ioctl,
+ .release = release
+};
diff --git a/ubuntu/iscsitarget/conn.c b/ubuntu/iscsitarget/conn.c
new file mode 100644
index 00000000000..ec6dada0b31
--- /dev/null
+++ b/ubuntu/iscsitarget/conn.c
@@ -0,0 +1,262 @@
+/*
+ * Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
+ *
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <linux/file.h>
+#include <linux/ip.h>
+#include <net/tcp.h>
+#include <scsi/scsi.h>
+
+#include "iscsi.h"
+#include "iscsi_dbg.h"
+#include "digest.h"
+
+static void print_conn_state(char *p, size_t size, unsigned long state)
+{
+ if (test_bit(CONN_ACTIVE, &state))
+ snprintf(p, size, "%s", "active");
+ else if (test_bit(CONN_CLOSING, &state))
+ snprintf(p, size, "%s", "closing");
+ else
+ snprintf(p, size, "%s", "unknown");
+}
+
+static void print_digest_state(char *p, size_t size, unsigned long flags)
+{
+ if (DIGEST_NONE & flags)
+ snprintf(p, size, "%s", "none");
+ else if (DIGEST_CRC32C & flags)
+ snprintf(p, size, "%s", "crc32c");
+ else
+ snprintf(p, size, "%s", "unknown");
+}
+
+void conn_info_show(struct seq_file *seq, struct iscsi_session *session)
+{
+ struct iscsi_conn *conn;
+ struct sock *sk;
+ char buf[64];
+
+ list_for_each_entry(conn, &session->conn_list, list) {
+ sk = conn->sock->sk;
+ switch (sk->sk_family) {
+ case AF_INET:
+ snprintf(buf, sizeof(buf),
+ "%u.%u.%u.%u", NIPQUAD(inet_sk(sk)->inet_daddr));
+ break;
+ case AF_INET6:
+ snprintf(buf, sizeof(buf), "[%pI6]",
+ &inet6_sk(sk)->daddr);
+ break;
+ default:
+ break;
+ }
+ seq_printf(seq, "\t\tcid:%u ip:%s ", conn->cid, buf);
+ print_conn_state(buf, sizeof(buf), conn->state);
+ seq_printf(seq, "state:%s ", buf);
+ print_digest_state(buf, sizeof(buf), conn->hdigest_type);
+ seq_printf(seq, "hd:%s ", buf);
+ print_digest_state(buf, sizeof(buf), conn->ddigest_type);
+ seq_printf(seq, "dd:%s\n", buf);
+ }
+}
+
+struct iscsi_conn *conn_lookup(struct iscsi_session *session, u16 cid)
+{
+ struct iscsi_conn *conn;
+
+ list_for_each_entry(conn, &session->conn_list, list) {
+ if (conn->cid == cid)
+ return conn;
+ }
+ return NULL;
+}
+
+static void iet_state_change(struct sock *sk)
+{
+ struct iscsi_conn *conn = sk->sk_user_data;
+ struct iscsi_target *target = conn->session->target;
+
+ if (sk->sk_state != TCP_ESTABLISHED)
+ conn_close(conn);
+ else
+ nthread_wakeup(target);
+
+ target->nthread_info.old_state_change(sk);
+}
+
+static void iet_data_ready(struct sock *sk, int len)
+{
+ struct iscsi_conn *conn = sk->sk_user_data;
+ struct iscsi_target *target = conn->session->target;
+
+ nthread_wakeup(target);
+ target->nthread_info.old_data_ready(sk, len);
+}
+
+/*
+ * @locking: grabs the target's nthread_lock to protect it from races with
+ * set_conn_wspace_wait()
+ */
+static void iet_write_space(struct sock *sk)
+{
+ struct iscsi_conn *conn = sk->sk_user_data;
+ struct network_thread_info *info = &conn->session->target->nthread_info;
+
+ spin_lock_bh(&info->nthread_lock);
+
+ if (sk_stream_wspace(sk) >= sk_stream_min_wspace(sk) &&
+ test_bit(CONN_WSPACE_WAIT, &conn->state)) {
+ clear_bit(CONN_WSPACE_WAIT, &conn->state);
+ __nthread_wakeup(info);
+ }
+
+ spin_unlock_bh(&info->nthread_lock);
+
+ info->old_write_space(sk);
+}
+
+static void iet_socket_bind(struct iscsi_conn *conn)
+{
+ int opt = 1;
+ mm_segment_t oldfs;
+ struct iscsi_session *session = conn->session;
+ struct iscsi_target *target = session->target;
+
+ dprintk(D_GENERIC, "%llu\n", (unsigned long long) session->sid);
+
+ conn->sock = SOCKET_I(conn->file->f_dentry->d_inode);
+ conn->sock->sk->sk_user_data = conn;
+
+ write_lock_bh(&conn->sock->sk->sk_callback_lock);
+ target->nthread_info.old_state_change = conn->sock->sk->sk_state_change;
+ conn->sock->sk->sk_state_change = iet_state_change;
+
+ target->nthread_info.old_data_ready = conn->sock->sk->sk_data_ready;
+ conn->sock->sk->sk_data_ready = iet_data_ready;
+
+ target->nthread_info.old_write_space = conn->sock->sk->sk_write_space;
+ conn->sock->sk->sk_write_space = iet_write_space;
+ write_unlock_bh(&conn->sock->sk->sk_callback_lock);
+
+ oldfs = get_fs();
+ set_fs(get_ds());
+ conn->sock->ops->setsockopt(conn->sock, SOL_TCP, TCP_NODELAY, (void *)&opt, sizeof(opt));
+ set_fs(oldfs);
+}
+
+int conn_free(struct iscsi_conn *conn)
+{
+ dprintk(D_GENERIC, "%p %#Lx %u\n", conn->session,
+ (unsigned long long) conn->session->sid, conn->cid);
+
+ assert(atomic_read(&conn->nr_cmnds) == 0);
+ assert(list_empty(&conn->pdu_list));
+ assert(list_empty(&conn->write_list));
+
+ list_del(&conn->list);
+ list_del(&conn->poll_list);
+
+ del_timer_sync(&conn->nop_timer);
+ digest_cleanup(conn);
+ kfree(conn);
+
+ return 0;
+}
+
+static int iet_conn_alloc(struct iscsi_session *session, struct conn_info *info)
+{
+ struct iscsi_conn *conn;
+
+ dprintk(D_SETUP, "%#Lx:%u\n", (unsigned long long) session->sid, info->cid);
+
+ conn = kzalloc(sizeof(*conn), GFP_KERNEL);
+ if (!conn)
+ return -ENOMEM;
+
+ conn->session = session;
+ conn->cid = info->cid;
+ conn->stat_sn = info->stat_sn;
+ conn->exp_stat_sn = info->exp_stat_sn;
+
+ conn->hdigest_type = info->header_digest;
+ conn->ddigest_type = info->data_digest;
+ if (digest_init(conn) < 0) {
+ kfree(conn);
+ return -ENOMEM;
+ }
+
+ spin_lock_init(&conn->list_lock);
+ atomic_set(&conn->nr_cmnds, 0);
+ atomic_set(&conn->nr_busy_cmnds, 0);
+ INIT_LIST_HEAD(&conn->pdu_list);
+ INIT_LIST_HEAD(&conn->write_list);
+ INIT_LIST_HEAD(&conn->poll_list);
+ init_timer(&conn->nop_timer);
+
+ list_add(&conn->list, &session->conn_list);
+
+ set_bit(CONN_ACTIVE, &conn->state);
+
+ conn->file = fget(info->fd);
+ iet_socket_bind(conn);
+
+ list_add(&conn->poll_list, &session->target->nthread_info.active_conns);
+
+ nthread_wakeup(conn->session->target);
+
+ return 0;
+}
+
+void conn_close(struct iscsi_conn *conn)
+{
+ struct iscsi_cmnd *cmnd;
+ struct iscsi_session *session = conn->session;
+
+ if (test_and_clear_bit(CONN_ACTIVE, &conn->state))
+ set_bit(CONN_CLOSING, &conn->state);
+
+ spin_lock(&conn->list_lock);
+ list_for_each_entry(cmnd, &conn->pdu_list, conn_list) {
+ set_cmnd_tmfabort(cmnd);
+ if (cmnd->lun) {
+ ua_establish_for_session(session, cmnd->lun->lun, 0x47, 0x7f);
+ iscsi_cmnd_set_sense(cmnd, UNIT_ATTENTION, 0x6e, 0x0);
+ }
+ }
+ spin_unlock(&conn->list_lock);
+
+ nthread_wakeup(conn->session->target);
+}
+
+int conn_add(struct iscsi_session *session, struct conn_info *info)
+{
+ struct iscsi_conn *conn;
+ int err;
+
+ conn = conn_lookup(session, info->cid);
+ if (conn)
+ conn_close(conn);
+
+ err = iet_conn_alloc(session, info);
+ if (!err && conn)
+ err = -EEXIST;
+
+ return err;
+}
+
+int conn_del(struct iscsi_session *session, struct conn_info *info)
+{
+ struct iscsi_conn *conn;
+ int err = -EEXIST;
+
+ conn = conn_lookup(session, info->cid);
+ if (!conn)
+ return err;
+
+ conn_close(conn);
+
+ return 0;
+}
diff --git a/ubuntu/iscsitarget/digest.c b/ubuntu/iscsitarget/digest.c
new file mode 100644
index 00000000000..32b4d769a08
--- /dev/null
+++ b/ubuntu/iscsitarget/digest.c
@@ -0,0 +1,279 @@
+/*
+ * iSCSI digest handling.
+ * (C) 2004 - 2006 Xiranet Communications GmbH <arne.redlich@xiranet.com>
+ * This code is licensed under the GPL.
+ */
+
+#include <linux/types.h>
+
+#include "iscsi.h"
+#include "digest.h"
+#include "iscsi_dbg.h"
+
+void digest_alg_available(unsigned int *val)
+{
+ if (*val & DIGEST_CRC32C &&
+ !crypto_has_alg("crc32c", 0, CRYPTO_ALG_ASYNC)) {
+ printk("CRC32C digest algorithm not available in kernel\n");
+ *val |= ~DIGEST_CRC32C;
+ }
+}
+
+/**
+ * initialize support for digest calculation.
+ *
+ * digest_init -
+ * @conn: ptr to connection to make use of digests
+ *
+ * @return: 0 on success, < 0 on error
+ */
+int digest_init(struct iscsi_conn *conn)
+{
+ int err = 0;
+
+ if (!(conn->hdigest_type & DIGEST_ALL))
+ conn->hdigest_type = DIGEST_NONE;
+
+ if (!(conn->ddigest_type & DIGEST_ALL))
+ conn->ddigest_type = DIGEST_NONE;
+
+ if (conn->hdigest_type & DIGEST_CRC32C ||
+ conn->ddigest_type & DIGEST_CRC32C) {
+ conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0,
+ CRYPTO_ALG_ASYNC);
+ conn->rx_hash.flags = 0;
+ if (IS_ERR(conn->rx_hash.tfm)) {
+ conn->rx_hash.tfm = NULL;
+ err = -ENOMEM;
+ goto out;
+ }
+
+ conn->tx_hash.tfm = crypto_alloc_hash("crc32c", 0,
+ CRYPTO_ALG_ASYNC);
+ conn->tx_hash.flags = 0;
+ if (IS_ERR(conn->tx_hash.tfm)) {
+ conn->tx_hash.tfm = NULL;
+ err = -ENOMEM;
+ goto out;
+ }
+ }
+
+out:
+ if (err)
+ digest_cleanup(conn);
+
+ return err;
+}
+
+/**
+ * free resources used for digest calculation.
+ *
+ * digest_cleanup -
+ * @conn: ptr to connection that made use of digests
+ */
+void digest_cleanup(struct iscsi_conn *conn)
+{
+ if (conn->tx_hash.tfm)
+ crypto_free_hash(conn->tx_hash.tfm);
+ if (conn->rx_hash.tfm)
+ crypto_free_hash(conn->rx_hash.tfm);
+}
+
+/**
+ * debug handling of header digest errors:
+ * simulates a digest error after n PDUs / every n-th PDU of type
+ * HDIGEST_ERR_CORRUPT_PDU_TYPE.
+ */
+static inline void __dbg_simulate_header_digest_error(struct iscsi_cmnd *cmnd)
+{
+#define HDIGEST_ERR_AFTER_N_CMNDS 1000
+#define HDIGEST_ERR_ONLY_ONCE 1
+#define HDIGEST_ERR_CORRUPT_PDU_TYPE ISCSI_OP_SCSI_CMD
+#define HDIGEST_ERR_CORRUPT_PDU_WITH_DATA_ONLY 0
+
+ static int num_cmnds = 0;
+ static int num_errs = 0;
+
+ if (cmnd_opcode(cmnd) == HDIGEST_ERR_CORRUPT_PDU_TYPE) {
+ if (HDIGEST_ERR_CORRUPT_PDU_WITH_DATA_ONLY) {
+ if (cmnd->pdu.datasize)
+ num_cmnds++;
+ } else
+ num_cmnds++;
+ }
+
+ if ((num_cmnds == HDIGEST_ERR_AFTER_N_CMNDS)
+ && (!(HDIGEST_ERR_ONLY_ONCE && num_errs))) {
+ printk("*** Faking header digest error ***\n");
+ printk("\tcmnd: 0x%x, itt 0x%x, sn 0x%x\n",
+ cmnd_opcode(cmnd),
+ be32_to_cpu(cmnd->pdu.bhs.itt),
+ be32_to_cpu(cmnd->pdu.bhs.sn));
+ cmnd->hdigest = ~cmnd->hdigest;
+ /* make things even worse by manipulating header fields */
+ cmnd->pdu.datasize += 8;
+ num_errs++;
+ num_cmnds = 0;
+ }
+ return;
+}
+
+/**
+ * debug handling of data digest errors:
+ * simulates a digest error after n PDUs / every n-th PDU of type
+ * DDIGEST_ERR_CORRUPT_PDU_TYPE.
+ */
+static inline void __dbg_simulate_data_digest_error(struct iscsi_cmnd *cmnd)
+{
+#define DDIGEST_ERR_AFTER_N_CMNDS 50
+#define DDIGEST_ERR_ONLY_ONCE 1
+#define DDIGEST_ERR_CORRUPT_PDU_TYPE ISCSI_OP_SCSI_DATA_OUT
+#define DDIGEST_ERR_CORRUPT_UNSOL_DATA_ONLY 0
+
+ static int num_cmnds = 0;
+ static int num_errs = 0;
+
+ if ((cmnd->pdu.datasize)
+ && (cmnd_opcode(cmnd) == DDIGEST_ERR_CORRUPT_PDU_TYPE)) {
+ switch (cmnd_opcode(cmnd)) {
+ case ISCSI_OP_SCSI_DATA_OUT:
+ if ((DDIGEST_ERR_CORRUPT_UNSOL_DATA_ONLY)
+ && (cmnd->pdu.bhs.ttt != ISCSI_RESERVED_TAG))
+ break;
+ default:
+ num_cmnds++;
+ }
+ }
+
+ if ((num_cmnds == DDIGEST_ERR_AFTER_N_CMNDS)
+ && (!(DDIGEST_ERR_ONLY_ONCE && num_errs))
+ && (cmnd->pdu.datasize)
+ && (!cmnd->conn->read_overflow)) {
+ printk("*** Faking data digest error: ***");
+ printk("\tcmnd 0x%x, itt 0x%x, sn 0x%x\n",
+ cmnd_opcode(cmnd),
+ be32_to_cpu(cmnd->pdu.bhs.itt),
+ be32_to_cpu(cmnd->pdu.bhs.sn));
+ cmnd->ddigest = ~cmnd->ddigest;
+ num_errs++;
+ num_cmnds = 0;
+ }
+}
+
+static void digest_header(struct hash_desc *hash, struct iscsi_pdu *pdu,
+ u8 *crc)
+{
+ struct scatterlist sg[2];
+ unsigned int nbytes = sizeof(struct iscsi_hdr);
+
+ sg_init_table(sg, pdu->ahssize ? 2 : 1);
+
+ sg_set_buf(&sg[0], &pdu->bhs, nbytes);
+ if (pdu->ahssize) {
+ sg_set_buf(&sg[1], pdu->ahs, pdu->ahssize);
+ nbytes += pdu->ahssize;
+ }
+
+ crypto_hash_init(hash);
+ crypto_hash_update(hash, sg, nbytes);
+ crypto_hash_final(hash, crc);
+}
+
+int digest_rx_header(struct iscsi_cmnd *cmnd)
+{
+ u32 crc;
+
+ digest_header(&cmnd->conn->rx_hash, &cmnd->pdu, (u8 *) &crc);
+ if (crc != cmnd->hdigest)
+ return -EIO;
+
+ return 0;
+}
+
+void digest_tx_header(struct iscsi_cmnd *cmnd)
+{
+ digest_header(&cmnd->conn->tx_hash, &cmnd->pdu, (u8 *) &cmnd->hdigest);
+}
+
+static void digest_data(struct hash_desc *hash, struct iscsi_cmnd *cmnd,
+ struct tio *tio, u32 offset, u8 *crc)
+{
+ struct scatterlist *sg = cmnd->conn->hash_sg;
+ u32 size, length;
+ int i, idx, count;
+ unsigned int nbytes;
+
+ size = cmnd->pdu.datasize;
+ nbytes = size = (size + 3) & ~3;
+
+ offset += tio->offset;
+ idx = offset >> PAGE_CACHE_SHIFT;
+ offset &= ~PAGE_CACHE_MASK;
+ count = get_pgcnt(size, offset);
+ assert(idx + count <= tio->pg_cnt);
+
+ assert(count <= ISCSI_CONN_IOV_MAX);
+
+ sg_init_table(sg, ARRAY_SIZE(cmnd->conn->hash_sg));
+ crypto_hash_init(hash);
+
+ for (i = 0; size; i++) {
+ if (offset + size > PAGE_CACHE_SIZE)
+ length = PAGE_CACHE_SIZE - offset;
+ else
+ length = size;
+
+ sg_set_page(&sg[i], tio->pvec[idx + i], length, offset);
+ size -= length;
+ offset = 0;
+ }
+
+ sg_mark_end(&sg[i - 1]);
+
+ crypto_hash_update(hash, sg, nbytes);
+ crypto_hash_final(hash, crc);
+}
+
+int digest_rx_data(struct iscsi_cmnd *cmnd)
+{
+ struct tio *tio;
+ struct iscsi_cmnd *scsi_cmnd;
+ struct iscsi_data_out_hdr *req;
+ u32 offset, crc;
+
+ switch (cmnd_opcode(cmnd)) {
+ case ISCSI_OP_SCSI_REJECT:
+ case ISCSI_OP_PDU_REJECT:
+ case ISCSI_OP_DATA_REJECT:
+ return 0;
+ case ISCSI_OP_SCSI_DATA_OUT:
+ scsi_cmnd = cmnd->req;
+ req = (struct iscsi_data_out_hdr *) &cmnd->pdu.bhs;
+ tio = scsi_cmnd->tio;
+ offset = be32_to_cpu(req->buffer_offset);
+ break;
+ default:
+ tio = cmnd->tio;
+ offset = 0;
+ }
+
+ digest_data(&cmnd->conn->rx_hash, cmnd, tio, offset, (u8 *) &crc);
+
+ if (!cmnd->conn->read_overflow &&
+ (cmnd_opcode(cmnd) != ISCSI_OP_PDU_REJECT)) {
+ if (crc != cmnd->ddigest)
+ return -EIO;
+ }
+
+ return 0;
+}
+
+void digest_tx_data(struct iscsi_cmnd *cmnd)
+{
+ struct tio *tio = cmnd->tio;
+ struct iscsi_data_out_hdr *req = (struct iscsi_data_out_hdr *)&cmnd->pdu.bhs;
+
+ assert(tio);
+ digest_data(&cmnd->conn->tx_hash, cmnd, tio,
+ be32_to_cpu(req->buffer_offset), (u8 *) &cmnd->ddigest);
+}
diff --git a/ubuntu/iscsitarget/digest.h b/ubuntu/iscsitarget/digest.h
new file mode 100644
index 00000000000..9b9d845c9a1
--- /dev/null
+++ b/ubuntu/iscsitarget/digest.h
@@ -0,0 +1,20 @@
+/*
+ * iSCSI digest handling.
+ * (C) 2004 Xiranet Communications GmbH <arne.redlich@xiranet.com>
+ * This code is licensed under the GPL.
+ */
+
+#ifndef __IET_DIGEST_H__
+#define __IET_DIGEST_H__
+
+extern void digest_alg_available(unsigned int *val);
+extern int digest_init(struct iscsi_conn *conn);
+extern void digest_cleanup(struct iscsi_conn *conn);
+
+extern int digest_rx_header(struct iscsi_cmnd *cmnd);
+extern int digest_rx_data(struct iscsi_cmnd *cmnd);
+
+extern void digest_tx_header(struct iscsi_cmnd *cmnd);
+extern void digest_tx_data(struct iscsi_cmnd *cmnd);
+
+#endif /* __IET_DIGEST_H__ */
diff --git a/ubuntu/iscsitarget/event.c b/ubuntu/iscsitarget/event.c
new file mode 100644
index 00000000000..240404d7868
--- /dev/null
+++ b/ubuntu/iscsitarget/event.c
@@ -0,0 +1,96 @@
+/*
+ * Event notification code.
+ * (C) 2005 FUJITA Tomonori <tomof@acm.org>
+ * This code is licenced under the GPL.
+ *
+ * Some functions are based on audit code.
+ */
+
+#include <net/tcp.h>
+#include "iet_u.h"
+#include "iscsi_dbg.h"
+
+static struct sock *nl;
+static u32 ietd_pid;
+
+static int event_recv_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
+{
+ u32 uid, pid, seq;
+ char *data;
+
+ pid = NETLINK_CREDS(skb)->pid;
+ uid = NETLINK_CREDS(skb)->uid;
+ seq = nlh->nlmsg_seq;
+ data = NLMSG_DATA(nlh);
+
+ ietd_pid = pid;
+
+ return 0;
+}
+
+static void event_recv_skb(struct sk_buff *skb)
+{
+ int err;
+ struct nlmsghdr *nlh;
+ u32 rlen;
+
+ while (skb->len >= NLMSG_SPACE(0)) {
+ nlh = (struct nlmsghdr *)skb->data;
+ if (nlh->nlmsg_len < sizeof(*nlh) || skb->len < nlh->nlmsg_len)
+ break;
+ rlen = NLMSG_ALIGN(nlh->nlmsg_len);
+ if (rlen > skb->len)
+ rlen = skb->len;
+ if ((err = event_recv_msg(skb, nlh))) {
+ netlink_ack(skb, nlh, -err);
+ } else if (nlh->nlmsg_flags & NLM_F_ACK)
+ netlink_ack(skb, nlh, 0);
+ skb_pull(skb, rlen);
+ }
+}
+
+static int notify(void *data, int len, int gfp_mask)
+{
+ struct sk_buff *skb;
+ struct nlmsghdr *nlh;
+ static u32 seq = 0;
+
+ if (!(skb = alloc_skb(NLMSG_SPACE(len), gfp_mask)))
+ return -ENOMEM;
+
+ nlh = __nlmsg_put(skb, ietd_pid, seq++, NLMSG_DONE, len - sizeof(*nlh), 0);
+
+ memcpy(NLMSG_DATA(nlh), data, len);
+
+ return netlink_unicast(nl, skb, ietd_pid, 0);
+}
+
+int event_send(u32 tid, u64 sid, u32 cid, u32 state, int atomic)
+{
+ int err;
+ struct iet_event event;
+
+ event.tid = tid;
+ event.sid = sid;
+ event.cid = cid;
+ event.state = state;
+
+ err = notify(&event, NLMSG_SPACE(sizeof(struct iet_event)), 0);
+
+ return err;
+}
+
+int event_init(void)
+{
+ nl = netlink_kernel_create(&init_net, NETLINK_IET, 1, event_recv_skb,
+ NULL, THIS_MODULE);
+ if (!nl)
+ return -ENOMEM;
+ else
+ return 0;
+}
+
+void event_exit(void)
+{
+ netlink_kernel_release(nl);
+}
diff --git a/ubuntu/iscsitarget/file-io.c b/ubuntu/iscsitarget/file-io.c
new file mode 100644
index 00000000000..38951a938c8
--- /dev/null
+++ b/ubuntu/iscsitarget/file-io.c
@@ -0,0 +1,261 @@
+/*
+ * Target device file I/O.
+ * (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org>
+ * This code is licenced under the GPL.
+ */
+
+#include <linux/types.h>
+#include <linux/blkdev.h>
+#include <linux/parser.h>
+#include <linux/writeback.h>
+
+#include "iscsi.h"
+#include "iscsi_dbg.h"
+#include "iotype.h"
+
+struct fileio_data {
+ char *path;
+ struct file *filp;
+};
+
+static int fileio_make_request(struct iet_volume *lu, struct tio *tio, int rw)
+{
+ struct fileio_data *p = lu->private;
+ struct file *filp;
+ mm_segment_t oldfs;
+ struct page *page;
+ u32 offset, size;
+ loff_t ppos, count;
+ char *buf;
+ int i, err = 0;
+ ssize_t ret;
+
+ assert(p);
+ filp = p->filp;
+ size = tio->size;
+ offset= tio->offset;
+
+ ppos = (loff_t) tio->idx << PAGE_CACHE_SHIFT;
+ ppos += offset;
+
+ for (i = 0; i < tio->pg_cnt; i++) {
+ page = tio->pvec[i];
+ assert(page);
+ buf = page_address(page);
+ buf += offset;
+
+ if (offset + size > PAGE_CACHE_SIZE)
+ count = PAGE_CACHE_SIZE - offset;
+ else
+ count = size;
+
+ oldfs = get_fs();
+ set_fs(get_ds());
+
+ if (rw == READ)
+ ret = vfs_read(filp, buf, count, &ppos);
+ else
+ ret = vfs_write(filp, buf, count, &ppos);
+
+ set_fs(oldfs);
+
+ if (ret != count) {
+ eprintk("I/O error %lld, %ld\n", count, (long) ret);
+ err = -EIO;
+ }
+
+ size -= count;
+ offset = 0;
+ }
+ assert(!size);
+
+ return err;
+}
+
+static int fileio_sync(struct iet_volume *lu, struct tio *tio)
+{
+ struct fileio_data *p = lu->private;
+ struct inode *inode = p->filp->f_dentry->d_inode;
+ struct address_space *mapping = inode->i_mapping;
+ loff_t ppos, count;
+ int res;
+
+ if (tio) {
+ ppos = (loff_t) tio->idx << PAGE_CACHE_SHIFT;
+ ppos += tio->offset;
+ count = tio->size;
+ } else {
+ ppos = 0;
+ count = lu->blk_cnt << lu->blk_shift;
+ }
+
+ res = filemap_write_and_wait_range(mapping, ppos, ppos + count - 1);
+ if (res) {
+ eprintk("I/O error: syncing pages failed: %d\n", res);
+ return -EIO;
+ } else
+ return 0;
+}
+
+static int open_path(struct iet_volume *volume, const char *path)
+{
+ int err = 0;
+ struct fileio_data *info = volume->private;
+ struct file *filp;
+ mm_segment_t oldfs;
+ int flags;
+
+ info->path = kstrdup(path, GFP_KERNEL);
+ if (!info->path)
+ return -ENOMEM;
+
+ oldfs = get_fs();
+ set_fs(get_ds());
+ flags = (LUReadonly(volume) ? O_RDONLY : O_RDWR) | O_LARGEFILE;
+ filp = filp_open(path, flags, 0);
+ set_fs(oldfs);
+
+ if (IS_ERR(filp)) {
+ err = PTR_ERR(filp);
+ eprintk("Can't open %s %d\n", path, err);
+ info->filp = NULL;
+ } else
+ info->filp = filp;
+
+ return err;
+}
+
+enum {
+ opt_path, opt_ignore, opt_err,
+};
+
+static match_table_t tokens = {
+ {opt_path, "path=%s"},
+ {opt_ignore, "scsiid=%s"},
+ {opt_ignore, "scsisn=%s"},
+ {opt_ignore, "type=%s"},
+ {opt_ignore, "iomode=%s"},
+ {opt_ignore, "blocksize=%s"},
+ {opt_err, NULL},
+};
+
+static int parse_fileio_params(struct iet_volume *volume, char *params)
+{
+ struct fileio_data *info = volume->private;
+ int err = 0;
+ char *p, *q;
+
+ while ((p = strsep(&params, ",")) != NULL) {
+ substring_t args[MAX_OPT_ARGS];
+ int token;
+ if (!*p)
+ continue;
+ iet_strtolower(p);
+ token = match_token(p, tokens, args);
+ switch (token) {
+ case opt_path:
+ if (info->path) {
+ iprintk("Target %s, LUN %u: "
+ "duplicate \"Path\" param\n",
+ volume->target->name, volume->lun);
+ err = -EINVAL;
+ goto out;
+ }
+ if (!(q = match_strdup(&args[0]))) {
+ err = -ENOMEM;
+ goto out;
+ }
+ err = open_path(volume, q);
+ kfree(q);
+ if (err < 0)
+ goto out;
+ break;
+ case opt_ignore:
+ break;
+ default:
+ iprintk("Target %s, LUN %u: unknown param %s\n",
+ volume->target->name, volume->lun, p);
+ return -EINVAL;
+ }
+ }
+
+ if (!info->path) {
+ iprintk("Target %s, LUN %u: missing \"Path\" param\n",
+ volume->target->name, volume->lun);
+ err = -EINVAL;
+ }
+out:
+ return err;
+}
+
+static void fileio_detach(struct iet_volume *lu)
+{
+ struct fileio_data *p = lu->private;
+
+ kfree(p->path);
+ if (p->filp)
+ filp_close(p->filp, NULL);
+ kfree(p);
+ lu->private = NULL;
+}
+
+static int fileio_attach(struct iet_volume *lu, char *args)
+{
+ int err = 0;
+ struct fileio_data *p;
+ struct inode *inode;
+
+ if (lu->private) {
+ printk("already attached ? %d\n", lu->lun);
+ return -EBUSY;
+ }
+
+ p = kzalloc(sizeof(*p), GFP_KERNEL);
+ if (!p)
+ return -ENOMEM;
+
+ lu->private = p;
+
+ if ((err = parse_fileio_params(lu, args)) < 0) {
+ eprintk("%d\n", err);
+ goto out;
+ }
+ inode = p->filp->f_dentry->d_inode;
+
+ if (S_ISREG(inode->i_mode))
+ ;
+ else if (S_ISBLK(inode->i_mode))
+ inode = inode->i_bdev->bd_inode;
+ else {
+ err = -EINVAL;
+ goto out;
+ }
+
+ if (!lu->blk_shift)
+ lu->blk_shift = ilog2(IET_DEF_BLOCK_SIZE);
+
+ lu->blk_cnt = inode->i_size >> lu->blk_shift;
+
+ /* we're using the page cache */
+ SetLURCache(lu);
+out:
+ if (err < 0)
+ fileio_detach(lu);
+ return err;
+}
+
+static void fileio_show(struct iet_volume *lu, struct seq_file *seq)
+{
+ struct fileio_data *p = lu->private;
+ seq_printf(seq, " path:%s\n", p->path);
+}
+
+struct iotype fileio =
+{
+ .name = "fileio",
+ .attach = fileio_attach,
+ .make_request = fileio_make_request,
+ .sync = fileio_sync,
+ .detach = fileio_detach,
+ .show = fileio_show,
+};
diff --git a/ubuntu/iscsitarget/include/iet_u.h b/ubuntu/iscsitarget/include/iet_u.h
new file mode 100644
index 00000000000..174f0dc4cfa
--- /dev/null
+++ b/ubuntu/iscsitarget/include/iet_u.h
@@ -0,0 +1,151 @@
+#ifndef _IET_U_H
+#define _IET_U_H
+
+#define IET_VERSION_STRING "1.4.20.1"
+
+/* The maximum length of 223 bytes in the RFC. */
+#define ISCSI_NAME_LEN 256
+#define ISCSI_ARGS_LEN 2048
+
+#define ISCSI_LISTEN_PORT 3260
+
+#define SCSI_ID_LEN 16
+#define SCSI_SN_LEN (SCSI_ID_LEN * 2)
+
+#ifndef aligned_u64
+#define aligned_u64 unsigned long long __attribute__((aligned(8)))
+#endif
+
+struct module_info {
+ char version[128];
+};
+
+struct target_info {
+ u32 tid;
+ char name[ISCSI_NAME_LEN];
+};
+
+struct volume_info {
+ u32 tid;
+ u32 lun;
+ aligned_u64 args_ptr;
+ u32 args_len;
+};
+
+struct session_info {
+ u32 tid;
+
+ aligned_u64 sid;
+ char initiator_name[ISCSI_NAME_LEN];
+ u32 exp_cmd_sn;
+ u32 max_cmd_sn;
+};
+
+#define DIGEST_ALL (DIGEST_NONE | DIGEST_CRC32C)
+#define DIGEST_NONE (1 << 0)
+#define DIGEST_CRC32C (1 << 1)
+
+struct conn_info {
+ u32 tid;
+ aligned_u64 sid;
+
+ u32 cid;
+ u32 stat_sn;
+ u32 exp_stat_sn;
+ int header_digest;
+ int data_digest;
+ int fd;
+};
+
+enum {
+ key_initial_r2t,
+ key_immediate_data,
+ key_max_connections,
+ key_max_recv_data_length,
+ key_max_xmit_data_length,
+ key_max_burst_length,
+ key_first_burst_length,
+ key_default_wait_time,
+ key_default_retain_time,
+ key_max_outstanding_r2t,
+ key_data_pdu_inorder,
+ key_data_sequence_inorder,
+ key_error_recovery_level,
+ key_header_digest,
+ key_data_digest,
+ key_ofmarker,
+ key_ifmarker,
+ key_ofmarkint,
+ key_ifmarkint,
+ session_key_last,
+};
+
+enum {
+ key_wthreads,
+ key_target_type,
+ key_queued_cmnds,
+ key_nop_interval,
+ key_nop_timeout,
+ target_key_last,
+};
+
+enum {
+ key_session,
+ key_target,
+};
+
+struct iscsi_param_info {
+ u32 tid;
+ aligned_u64 sid;
+
+ u32 param_type;
+ u32 partial;
+
+ u32 session_param[session_key_last];
+ u32 target_param[target_key_last];
+};
+
+enum iet_event_state {
+ E_CONN_CLOSE,
+};
+
+struct iet_event {
+ u32 tid;
+ aligned_u64 sid;
+ u32 cid;
+ u32 state;
+};
+
+#define DEFAULT_NR_WTHREADS 8
+#define MIN_NR_WTHREADS 1
+#define MAX_NR_WTHREADS 128
+
+#define DEFAULT_NR_QUEUED_CMNDS 32
+#define MIN_NR_QUEUED_CMNDS 1
+#define MAX_NR_QUEUED_CMNDS 256
+
+#define DEFAULT_NOP_INTERVAL 0
+#define MIN_NOP_INTERVAL 0
+#define MAX_NOP_INTERVAL 90
+
+#define DEFAULT_NOP_TIMEOUT 0
+#define MIN_NOP_TIMEOUT 0
+#define MAX_NOP_TIMEOUT 90
+
+#define NETLINK_IET 21
+
+#define GET_MODULE_INFO _IOW('i', 20, struct module_info)
+#define ADD_TARGET _IOWR('i', 21, struct target_info)
+#define DEL_TARGET _IOW('i', 22, struct target_info)
+#define ADD_VOLUME _IOW('i', 24, struct volume_info)
+#define DEL_VOLUME _IOW('i', 25, struct volume_info)
+#define ADD_SESSION _IOW('i', 26, struct session_info)
+#define DEL_SESSION _IOW('i', 27, struct session_info)
+#define GET_SESSION_INFO _IOWR('i', 28, struct session_info)
+#define ADD_CONN _IOW('i', 29, struct conn_info)
+#define DEL_CONN _IOW('i', 30, struct conn_info)
+#define GET_CONN_INFO _IOWR('i', 31, struct conn_info)
+#define ISCSI_PARAM_SET _IOW('i', 32, struct iscsi_param_info)
+#define ISCSI_PARAM_GET _IOWR('i', 33, struct iscsi_param_info)
+
+#endif
diff --git a/ubuntu/iscsitarget/iotype.c b/ubuntu/iscsitarget/iotype.c
new file mode 100644
index 00000000000..b3d6117c9eb
--- /dev/null
+++ b/ubuntu/iscsitarget/iotype.c
@@ -0,0 +1,110 @@
+/*
+ * Manager for various I/O types.
+ * (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org>
+ * This code is licenced under the GPL.
+ */
+
+#include "iscsi.h"
+#include "iotype.h"
+#include "iscsi_dbg.h"
+
+static LIST_HEAD(iotypes);
+static rwlock_t iotypes_lock = RW_LOCK_UNLOCKED;
+
+static struct iotype *find_iotype(const char *name)
+{
+ struct iotype *iot = NULL;
+
+ list_for_each_entry(iot, &iotypes, iot_list) {
+ if (strcmp(iot->name, name) == 0)
+ return iot;
+ }
+ return NULL;
+}
+
+struct iotype *get_iotype(const char *name)
+{
+ struct iotype *iot;
+
+ read_lock(&iotypes_lock);
+ iot = find_iotype(name);
+ read_unlock(&iotypes_lock);
+
+ return iot;
+}
+
+void put_iotype(struct iotype *iot)
+{
+ if (!iot)
+ return;
+ return;
+}
+
+static int register_iotype(struct iotype *iot)
+{
+ int err = 0;
+ struct iotype *p;
+
+ write_lock(&iotypes_lock);
+
+ p = find_iotype(iot->name);
+ if (p)
+ err = -EBUSY;
+ else
+ list_add_tail(&iot->iot_list, &iotypes);
+
+ write_unlock(&iotypes_lock);
+
+ return err;
+}
+
+static int unregister_iotype(struct iotype *iot)
+{
+ int err = 0;
+ struct iotype *p;
+
+ write_lock(&iotypes_lock);
+
+ p = find_iotype(iot->name);
+ if (p && p == iot)
+ list_del_init(&iot->iot_list);
+ else
+ err = -EINVAL;
+
+ write_unlock(&iotypes_lock);
+
+
+ return err;
+}
+
+struct iotype *iotype_array[] = {
+ &fileio,
+ &blockio,
+ &nullio,
+};
+
+int iotype_init(void)
+{
+ int i, err;
+
+ for (i = 0; i < ARRAY_SIZE(iotype_array); i++) {
+ if (!(err = register_iotype(iotype_array[i])))
+ iprintk("Registered io type %s\n",
+ iotype_array[i]->name);
+ else {
+ eprintk("Failed to register io type %s\n",
+ iotype_array[i]->name);
+ break;
+ }
+ }
+
+ return err;
+}
+
+void iotype_exit(void)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(iotype_array); i++)
+ unregister_iotype(iotype_array[i]);
+}
diff --git a/ubuntu/iscsitarget/iotype.h b/ubuntu/iscsitarget/iotype.h
new file mode 100644
index 00000000000..db7956a421e
--- /dev/null
+++ b/ubuntu/iscsitarget/iotype.h
@@ -0,0 +1,42 @@
+/*
+ * (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org>
+ * This code is licenced under the GPL.
+ */
+
+#include <linux/ctype.h>
+#include "iscsi.h"
+
+#ifndef __IOTYPE_H__
+#define __IOTYPE_H__
+
+struct iotype {
+ const char *name;
+ struct list_head iot_list;
+
+ int (*attach)(struct iet_volume *dev, char *args);
+ int (*make_request)(struct iet_volume *dev, struct tio *tio, int rw);
+ int (*sync)(struct iet_volume *dev, struct tio *tio);
+ void (*detach)(struct iet_volume *dev);
+ void (*show)(struct iet_volume *dev, struct seq_file *seq);
+};
+
+extern struct iotype fileio;
+extern struct iotype nullio;
+extern struct iotype blockio;
+
+extern int iotype_init(void);
+extern void iotype_exit(void);
+
+/* For option parameter parsing.
+ * This is slightly iet specific: we only tolower() up to the first '='.
+ * Note that this changes *c _in place_, but our parsing
+ * routines copy the input to a scratch page before parsing anyways. */
+static inline void iet_strtolower(char *c)
+{
+ if (!c)
+ return;
+ for (; *c && *c != '='; c++)
+ *c = tolower(*c);
+}
+
+#endif
diff --git a/ubuntu/iscsitarget/iscsi.c b/ubuntu/iscsitarget/iscsi.c
new file mode 100644
index 00000000000..05197f23ca8
--- /dev/null
+++ b/ubuntu/iscsitarget/iscsi.c
@@ -0,0 +1,1967 @@
+/*
+ * Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
+ * Copyright (C) 2008 Arne Redlich <agr@powerkom-dd.de>
+ *
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <linux/module.h>
+#include <linux/hash.h>
+#include <net/tcp.h>
+#include <scsi/scsi.h>
+
+#include "iscsi.h"
+#include "iscsi_dbg.h"
+#include "iotype.h"
+
+unsigned long debug_enable_flags;
+unsigned long worker_thread_pool_size;
+
+static struct kmem_cache *iscsi_cmnd_cache;
+static u8 dummy_data[PAGE_SIZE];
+
+static int ctr_major;
+static char ctr_name[] = "ietctl";
+extern struct file_operations ctr_fops;
+
+static u32 cmnd_write_size(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_scsi_cmd_hdr *hdr = cmnd_hdr(cmnd);
+
+ if (hdr->flags & ISCSI_CMD_WRITE)
+ return be32_to_cpu(hdr->data_length);
+ return 0;
+}
+
+static u32 cmnd_read_size(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_scsi_cmd_hdr *hdr = cmnd_hdr(cmnd);
+
+ if (hdr->flags & ISCSI_CMD_READ) {
+ struct iscsi_rlength_ahdr *ahdr =
+ (struct iscsi_rlength_ahdr *)cmnd->pdu.ahs;
+
+ if (!(hdr->flags & ISCSI_CMD_WRITE))
+ return be32_to_cpu(hdr->data_length);
+ if (ahdr && ahdr->ahstype == ISCSI_AHSTYPE_RLENGTH)
+ return be32_to_cpu(ahdr->read_length);
+ }
+ return 0;
+}
+
+static void iscsi_device_queue_cmnd(struct iscsi_cmnd *cmnd)
+{
+ set_cmnd_waitio(cmnd);
+ wthread_queue(cmnd);
+}
+
+static void iscsi_scsi_queuecmnd(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_queue *queue = &cmnd->lun->queue;
+
+ dprintk(D_GENERIC, "%p\n", cmnd);
+
+ if ((cmnd->pdu.bhs.flags & ISCSI_CMD_ATTR_MASK) != ISCSI_CMD_UNTAGGED &&
+ (cmnd->pdu.bhs.flags & ISCSI_CMD_ATTR_MASK) != ISCSI_CMD_SIMPLE) {
+ cmnd->pdu.bhs.flags &= ~ISCSI_CMD_ATTR_MASK;
+ cmnd->pdu.bhs.flags |= ISCSI_CMD_UNTAGGED;
+ }
+
+ spin_lock(&queue->queue_lock);
+
+ set_cmnd_queued(cmnd);
+
+ switch (cmnd->pdu.bhs.flags & ISCSI_CMD_ATTR_MASK) {
+ case ISCSI_CMD_UNTAGGED:
+ case ISCSI_CMD_SIMPLE:
+ if (!list_empty(&queue->wait_list) || queue->ordered_cmnd)
+ goto pending;
+ queue->active_cnt++;
+ break;
+
+ default:
+ BUG();
+ }
+ spin_unlock(&queue->queue_lock);
+
+ iscsi_device_queue_cmnd(cmnd);
+ return;
+ pending:
+ assert(list_empty(&cmnd->list));
+
+ list_add_tail(&cmnd->list, &queue->wait_list);
+ spin_unlock(&queue->queue_lock);
+ return;
+}
+
+static void iscsi_scsi_dequeuecmnd(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_queue *queue;
+
+ if (!cmnd->lun)
+ return;
+ queue = &cmnd->lun->queue;
+ spin_lock(&queue->queue_lock);
+ switch (cmnd->pdu.bhs.flags & ISCSI_CMD_ATTR_MASK) {
+ case ISCSI_CMD_UNTAGGED:
+ case ISCSI_CMD_SIMPLE:
+ --queue->active_cnt;
+ break;
+ case ISCSI_CMD_ORDERED:
+ case ISCSI_CMD_HEAD_OF_QUEUE:
+ case ISCSI_CMD_ACA:
+ BUG();
+ default:
+ /* Should the iscsi_scsi_queuecmnd func reject this ? */
+ break;
+ }
+
+ while (!list_empty(&queue->wait_list)) {
+ cmnd = list_entry(queue->wait_list.next, struct iscsi_cmnd, list);
+ switch ((cmnd->pdu.bhs.flags & ISCSI_CMD_ATTR_MASK)) {
+ case ISCSI_CMD_UNTAGGED:
+ case ISCSI_CMD_SIMPLE:
+ list_del_init(&cmnd->list);
+ queue->active_cnt++;
+ iscsi_device_queue_cmnd(cmnd);
+ break;
+ case ISCSI_CMD_ORDERED:
+ case ISCSI_CMD_HEAD_OF_QUEUE:
+ case ISCSI_CMD_ACA:
+ BUG();
+ }
+ }
+
+ spin_unlock(&queue->queue_lock);
+
+ return;
+}
+
+/**
+ * create a new command.
+ *
+ * iscsi_cmnd_create -
+ * @conn: ptr to connection (for i/o)
+ *
+ * @return ptr to command or NULL
+ */
+
+struct iscsi_cmnd *cmnd_alloc(struct iscsi_conn *conn, int req)
+{
+ struct iscsi_cmnd *cmnd;
+
+ /* TODO: async interface is necessary ? */
+ cmnd = kmem_cache_alloc(iscsi_cmnd_cache, GFP_KERNEL|__GFP_NOFAIL);
+
+ memset(cmnd, 0, sizeof(*cmnd));
+ INIT_LIST_HEAD(&cmnd->list);
+ INIT_LIST_HEAD(&cmnd->pdu_list);
+ INIT_LIST_HEAD(&cmnd->conn_list);
+ INIT_LIST_HEAD(&cmnd->hash_list);
+ cmnd->conn = conn;
+ spin_lock(&conn->list_lock);
+ atomic_inc(&conn->nr_cmnds);
+ if (req)
+ list_add_tail(&cmnd->conn_list, &conn->pdu_list);
+ spin_unlock(&conn->list_lock);
+ cmnd->tio = NULL;
+
+ dprintk(D_GENERIC, "%p:%p\n", conn, cmnd);
+
+ return cmnd;
+}
+
+/**
+ * create a new command used as response.
+ *
+ * iscsi_cmnd_create_rsp_cmnd -
+ * @cmnd: ptr to request command
+ *
+ * @return ptr to response command or NULL
+ */
+
+static struct iscsi_cmnd *iscsi_cmnd_create_rsp_cmnd(struct iscsi_cmnd *cmnd, int final)
+{
+ struct iscsi_cmnd *rsp = cmnd_alloc(cmnd->conn, 0);
+
+ if (final)
+ set_cmnd_final(rsp);
+ list_add_tail(&rsp->pdu_list, &cmnd->pdu_list);
+ rsp->req = cmnd;
+ return rsp;
+}
+
+static struct iscsi_cmnd *get_rsp_cmnd(struct iscsi_cmnd *req)
+{
+ return list_entry(req->pdu_list.prev, struct iscsi_cmnd, pdu_list);
+}
+
+static void iscsi_cmnds_init_write(struct list_head *send)
+{
+ struct iscsi_cmnd *cmnd = list_entry(send->next, struct iscsi_cmnd, list);
+ struct iscsi_conn *conn = cmnd->conn;
+ struct list_head *pos, *next;
+
+ spin_lock(&conn->list_lock);
+
+ list_for_each_safe(pos, next, send) {
+ cmnd = list_entry(pos, struct iscsi_cmnd, list);
+
+ dprintk(D_GENERIC, "%p:%x\n", cmnd, cmnd_opcode(cmnd));
+
+ list_del_init(&cmnd->list);
+ assert(conn == cmnd->conn);
+ list_add_tail(&cmnd->list, &conn->write_list);
+ }
+
+ spin_unlock(&conn->list_lock);
+
+ nthread_wakeup(conn->session->target);
+}
+
+static void iscsi_cmnd_init_write(struct iscsi_cmnd *cmnd)
+{
+ LIST_HEAD(head);
+
+ if (!list_empty(&cmnd->list)) {
+ eprintk("%x %x %x %x %lx %u %u %u %u %u %u %u %d %d\n",
+ cmnd_itt(cmnd), cmnd_ttt(cmnd), cmnd_opcode(cmnd),
+ cmnd_scsicode(cmnd), cmnd->flags, cmnd->r2t_sn,
+ cmnd->r2t_length, cmnd->is_unsolicited_data,
+ cmnd->target_task_tag, cmnd->outstanding_r2t,
+ cmnd->hdigest, cmnd->ddigest,
+ list_empty(&cmnd->pdu_list), list_empty(&cmnd->hash_list));
+
+ assert(list_empty(&cmnd->list));
+ }
+ list_add(&cmnd->list, &head);
+ iscsi_cmnds_init_write(&head);
+}
+
+static void do_send_data_rsp(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_conn *conn = cmnd->conn;
+ struct iscsi_cmnd *data_cmnd;
+ struct tio *tio = cmnd->tio;
+ struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd);
+ struct iscsi_data_in_hdr *rsp;
+ u32 pdusize, expsize, scsisize, size, offset, sn;
+ LIST_HEAD(send);
+
+ dprintk(D_GENERIC, "%p\n", cmnd);
+ pdusize = conn->session->param.max_xmit_data_length;
+ expsize = cmnd_read_size(cmnd);
+ size = min(expsize, tio->size);
+ offset = 0;
+ sn = 0;
+
+ while (1) {
+ data_cmnd = iscsi_cmnd_create_rsp_cmnd(cmnd, size <= pdusize);
+ tio_get(tio);
+ data_cmnd->tio = tio;
+ rsp = (struct iscsi_data_in_hdr *)&data_cmnd->pdu.bhs;
+
+ rsp->opcode = ISCSI_OP_SCSI_DATA_IN;
+ rsp->itt = req->itt;
+ rsp->ttt = cpu_to_be32(ISCSI_RESERVED_TAG);
+ rsp->buffer_offset = offset;
+ rsp->data_sn = cpu_to_be32(sn);
+
+ if (size <= pdusize) {
+ data_cmnd->pdu.datasize = size;
+ rsp->flags = ISCSI_FLG_FINAL | ISCSI_FLG_STATUS;
+
+ scsisize = tio->size;
+ if (scsisize < expsize) {
+ rsp->flags |= ISCSI_FLG_RESIDUAL_UNDERFLOW;
+ size = expsize - scsisize;
+ } else if (scsisize > expsize) {
+ rsp->flags |= ISCSI_FLG_RESIDUAL_OVERFLOW;
+ size = scsisize - expsize;
+ } else
+ size = 0;
+ rsp->residual_count = cpu_to_be32(size);
+ list_add_tail(&data_cmnd->list, &send);
+
+ break;
+ }
+
+ data_cmnd->pdu.datasize = pdusize;
+
+ size -= pdusize;
+ offset += pdusize;
+ sn++;
+
+ list_add_tail(&data_cmnd->list, &send);
+ }
+
+ iscsi_cmnds_init_write(&send);
+}
+
+static struct iscsi_cmnd *create_scsi_rsp(struct iscsi_cmnd *req)
+{
+ struct iscsi_cmnd *rsp;
+ struct iscsi_scsi_cmd_hdr *req_hdr = cmnd_hdr(req);
+ struct iscsi_scsi_rsp_hdr *rsp_hdr;
+ struct iscsi_sense_data *sense;
+
+ rsp = iscsi_cmnd_create_rsp_cmnd(req, 1);
+
+ rsp_hdr = (struct iscsi_scsi_rsp_hdr *)&rsp->pdu.bhs;
+ rsp_hdr->opcode = ISCSI_OP_SCSI_RSP;
+ rsp_hdr->flags = ISCSI_FLG_FINAL;
+ rsp_hdr->response = ISCSI_RESPONSE_COMMAND_COMPLETED;
+ rsp_hdr->cmd_status = req->status;
+ rsp_hdr->itt = req_hdr->itt;
+
+ if (req->status == SAM_STAT_CHECK_CONDITION) {
+ assert(!rsp->tio);
+ rsp->tio = tio_alloc(1);
+ sense = (struct iscsi_sense_data *)
+ page_address(rsp->tio->pvec[0]);
+
+ assert(sense);
+ clear_page(sense);
+ sense->length = cpu_to_be16(IET_SENSE_BUF_SIZE);
+
+ memcpy(sense->data, req->sense_buf, IET_SENSE_BUF_SIZE);
+ rsp->pdu.datasize = sizeof(struct iscsi_sense_data) +
+ IET_SENSE_BUF_SIZE;
+
+ rsp->tio->size = (rsp->pdu.datasize + 3) & -4;
+ rsp->tio->offset = 0;
+ }
+
+ return rsp;
+}
+
+void iscsi_cmnd_set_sense(struct iscsi_cmnd *cmnd, u8 sense_key, u8 asc,
+ u8 ascq)
+{
+ cmnd->status = SAM_STAT_CHECK_CONDITION;
+
+ cmnd->sense_buf[0] = 0xf0;
+ cmnd->sense_buf[2] = sense_key;
+ cmnd->sense_buf[7] = 6; // Additional sense length
+ cmnd->sense_buf[12] = asc;
+ cmnd->sense_buf[13] = ascq;
+
+ /* Call to ACA/UAI handler */
+}
+
+static struct iscsi_cmnd *create_sense_rsp(struct iscsi_cmnd *req,
+ u8 sense_key, u8 asc, u8 ascq)
+{
+ iscsi_cmnd_set_sense(req, sense_key, asc, ascq);
+ return create_scsi_rsp(req);
+}
+
+void send_scsi_rsp(struct iscsi_cmnd *req, void (*func)(struct iscsi_cmnd *))
+{
+ struct iscsi_cmnd *rsp;
+ struct iscsi_scsi_rsp_hdr *rsp_hdr;
+ u32 size;
+
+ func(req);
+ rsp = create_scsi_rsp(req);
+
+ switch (req->status) {
+ case SAM_STAT_GOOD:
+ case SAM_STAT_RESERVATION_CONFLICT:
+ rsp_hdr = (struct iscsi_scsi_rsp_hdr *) &rsp->pdu.bhs;
+ if ((size = cmnd_read_size(req)) != 0) {
+ rsp_hdr->flags |= ISCSI_FLG_RESIDUAL_UNDERFLOW;
+ rsp_hdr->residual_count = cpu_to_be32(size);
+ }
+ break;
+ default:
+ break;
+ }
+
+ iscsi_cmnd_init_write(rsp);
+}
+
+void send_data_rsp(struct iscsi_cmnd *req, void (*func)(struct iscsi_cmnd *))
+{
+ struct iscsi_cmnd *rsp;
+
+ func(req);
+
+ if (req->status == SAM_STAT_GOOD)
+ do_send_data_rsp(req);
+ else {
+ rsp = create_scsi_rsp(req);
+ iscsi_cmnd_init_write(rsp);
+ }
+}
+
+/**
+ * Free a command.
+ * Also frees the additional header.
+ *
+ * iscsi_cmnd_remove -
+ * @cmnd: ptr to command
+ */
+
+static void iscsi_cmnd_remove(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_conn *conn;
+
+ if (!cmnd)
+ return;
+
+ if (cmnd_timer_active(cmnd)) {
+ clear_cmnd_timer_active(cmnd);
+ del_timer_sync(&cmnd->timer);
+ }
+
+ dprintk(D_GENERIC, "%p\n", cmnd);
+ conn = cmnd->conn;
+ kfree(cmnd->pdu.ahs);
+
+ if (!list_empty(&cmnd->list)) {
+ struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd);
+
+ eprintk("cmnd %p still on some list?, %x, %x, %x, %x, %x, %x, %x %lx\n",
+ cmnd, req->opcode, req->scb[0], req->flags, req->itt,
+ be32_to_cpu(req->data_length),
+ req->cmd_sn, be32_to_cpu(cmnd->pdu.datasize),
+ conn->state);
+
+ if (cmnd->req) {
+ struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd->req);
+ eprintk("%p %x %u\n", req, req->opcode, req->scb[0]);
+ }
+ dump_stack();
+ BUG();
+ }
+ list_del(&cmnd->list);
+ spin_lock(&conn->list_lock);
+ atomic_dec(&conn->nr_cmnds);
+ list_del(&cmnd->conn_list);
+ spin_unlock(&conn->list_lock);
+
+ if (cmnd->tio)
+ tio_put(cmnd->tio);
+
+ kmem_cache_free(iscsi_cmnd_cache, cmnd);
+}
+
+static void cmnd_skip_pdu(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_conn *conn = cmnd->conn;
+ struct tio *tio = cmnd->tio;
+ char *addr;
+ u32 size;
+ int i;
+
+ eprintk("%x %x %x %u\n", cmnd_itt(cmnd), cmnd_opcode(cmnd),
+ cmnd_hdr(cmnd)->scb[0], cmnd->pdu.datasize);
+
+ if (!(size = cmnd->pdu.datasize))
+ return;
+
+ if (tio)
+ assert(tio->pg_cnt > 0);
+ else
+ tio = cmnd->tio = tio_alloc(1);
+
+ addr = page_address(tio->pvec[0]);
+ assert(addr);
+ size = (size + 3) & -4;
+ conn->read_size = size;
+ for (i = 0; size > PAGE_CACHE_SIZE; i++, size -= PAGE_CACHE_SIZE) {
+ assert(i < ISCSI_CONN_IOV_MAX);
+ conn->read_iov[i].iov_base = addr;
+ conn->read_iov[i].iov_len = PAGE_CACHE_SIZE;
+ }
+ conn->read_iov[i].iov_base = addr;
+ conn->read_iov[i].iov_len = size;
+ conn->read_msg.msg_iov = conn->read_iov;
+ conn->read_msg.msg_iovlen = ++i;
+}
+
+static void iscsi_cmnd_reject(struct iscsi_cmnd *req, int reason)
+{
+ struct iscsi_cmnd *rsp;
+ struct iscsi_reject_hdr *rsp_hdr;
+ struct tio *tio;
+ char *addr;
+
+ rsp = iscsi_cmnd_create_rsp_cmnd(req, 1);
+ rsp_hdr = (struct iscsi_reject_hdr *)&rsp->pdu.bhs;
+
+ rsp_hdr->opcode = ISCSI_OP_REJECT;
+ rsp_hdr->ffffffff = ISCSI_RESERVED_TAG;
+ rsp_hdr->reason = reason;
+
+ rsp->tio = tio = tio_alloc(1);
+ addr = page_address(tio->pvec[0]);
+ clear_page(addr);
+ memcpy(addr, &req->pdu.bhs, sizeof(struct iscsi_hdr));
+ tio->size = rsp->pdu.datasize = sizeof(struct iscsi_hdr);
+ cmnd_skip_pdu(req);
+
+ req->pdu.bhs.opcode = ISCSI_OP_PDU_REJECT;
+}
+
+static void cmnd_set_sn(struct iscsi_cmnd *cmnd, int set_stat_sn)
+{
+ struct iscsi_conn *conn = cmnd->conn;
+ struct iscsi_session *sess = conn->session;
+
+ if (set_stat_sn)
+ cmnd->pdu.bhs.sn = cpu_to_be32(conn->stat_sn++);
+ cmnd->pdu.bhs.exp_sn = cpu_to_be32(sess->exp_cmd_sn);
+ cmnd->pdu.bhs.max_sn = cpu_to_be32(sess->exp_cmd_sn + sess->max_queued_cmnds);
+}
+
+static void update_stat_sn(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_conn *conn = cmnd->conn;
+ u32 exp_stat_sn;
+
+ cmnd->pdu.bhs.exp_sn = exp_stat_sn = be32_to_cpu(cmnd->pdu.bhs.exp_sn);
+ dprintk(D_GENERIC, "%x,%x\n", cmnd_opcode(cmnd), exp_stat_sn);
+ if ((int)(exp_stat_sn - conn->exp_stat_sn) > 0 &&
+ (int)(exp_stat_sn - conn->stat_sn) <= 0) {
+ // free pdu resources
+ cmnd->conn->exp_stat_sn = exp_stat_sn;
+ }
+}
+
+static int check_cmd_sn(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_session *session = cmnd->conn->session;
+ u32 cmd_sn;
+
+ cmnd->pdu.bhs.sn = cmd_sn = be32_to_cpu(cmnd->pdu.bhs.sn);
+
+ dprintk(D_GENERIC, "cmd_sn(%u) exp_cmd_sn(%u) max_cmd_sn(%u)\n",
+ cmd_sn, session->exp_cmd_sn, session->max_cmd_sn);
+
+ if (between(cmd_sn, session->exp_cmd_sn, session->max_cmd_sn))
+ return 0;
+ else if (cmnd_immediate(cmnd))
+ return 0;
+
+ eprintk("sequence error: cmd_sn(%u) exp_cmd_sn(%u) max_cmd_sn(%u)\n",
+ cmd_sn, session->exp_cmd_sn, session->max_cmd_sn);
+
+ set_cmnd_tmfabort(cmnd);
+
+ return -ISCSI_REASON_PROTOCOL_ERROR;
+}
+
+static struct iscsi_cmnd *__cmnd_find_hash(struct iscsi_session *session, u32 itt, u32 ttt)
+{
+ struct list_head *head;
+ struct iscsi_cmnd *cmnd;
+
+ head = &session->cmnd_hash[cmnd_hashfn(itt)];
+
+ list_for_each_entry(cmnd, head, hash_list) {
+ if (cmnd->pdu.bhs.itt == itt) {
+ if ((ttt != ISCSI_RESERVED_TAG) && (ttt != cmnd->target_task_tag))
+ continue;
+ return cmnd;
+ }
+ }
+
+ return NULL;
+}
+
+static struct iscsi_cmnd *cmnd_find_hash(struct iscsi_session *session, u32 itt, u32 ttt)
+{
+ struct iscsi_cmnd *cmnd;
+
+ spin_lock(&session->cmnd_hash_lock);
+
+ cmnd = __cmnd_find_hash(session, itt, ttt);
+
+ spin_unlock(&session->cmnd_hash_lock);
+
+ return cmnd;
+}
+
+static int cmnd_insert_hash_ttt(struct iscsi_cmnd *cmnd, u32 ttt)
+{
+ struct iscsi_session *session = cmnd->conn->session;
+ struct iscsi_cmnd *tmp;
+ struct list_head *head;
+ int err = 0;
+ u32 itt = cmnd->pdu.bhs.itt;
+
+ head = &session->cmnd_hash[cmnd_hashfn(itt)];
+
+ spin_lock(&session->cmnd_hash_lock);
+
+ tmp = __cmnd_find_hash(session, itt, ttt);
+ if (!tmp) {
+ list_add_tail(&cmnd->hash_list, head);
+ set_cmnd_hashed(cmnd);
+ } else
+ err = -ISCSI_REASON_TASK_IN_PROGRESS;
+
+ spin_unlock(&session->cmnd_hash_lock);
+
+ return err;
+}
+
+static int cmnd_insert_hash(struct iscsi_cmnd *cmnd)
+{
+ int err;
+
+ dprintk(D_GENERIC, "%p:%x\n", cmnd, cmnd->pdu.bhs.itt);
+
+ if (cmnd->pdu.bhs.itt == ISCSI_RESERVED_TAG)
+ return -ISCSI_REASON_PROTOCOL_ERROR;
+
+ err = cmnd_insert_hash_ttt(cmnd, ISCSI_RESERVED_TAG);
+ if (!err) {
+ update_stat_sn(cmnd);
+ err = check_cmd_sn(cmnd);
+ } else if (!cmnd_immediate(cmnd))
+ set_cmnd_tmfabort(cmnd);
+
+ return err;
+}
+
+static void __cmnd_remove_hash(struct iscsi_cmnd *cmnd)
+{
+ list_del(&cmnd->hash_list);
+}
+
+static void cmnd_remove_hash(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_session *session = cmnd->conn->session;
+ struct iscsi_cmnd *tmp;
+
+ spin_lock(&session->cmnd_hash_lock);
+
+ tmp = __cmnd_find_hash(session, cmnd->pdu.bhs.itt,
+ cmnd->target_task_tag);
+ if (tmp && tmp == cmnd)
+ __cmnd_remove_hash(tmp);
+ else
+ eprintk("%p:%x not found\n", cmnd, cmnd_itt(cmnd));
+
+ spin_unlock(&session->cmnd_hash_lock);
+}
+
+static void cmnd_skip_data(struct iscsi_cmnd *req)
+{
+ struct iscsi_cmnd *rsp;
+ struct iscsi_scsi_rsp_hdr *rsp_hdr;
+ u32 size;
+
+ rsp = get_rsp_cmnd(req);
+ rsp_hdr = (struct iscsi_scsi_rsp_hdr *)&rsp->pdu.bhs;
+ if (cmnd_opcode(rsp) != ISCSI_OP_SCSI_RSP) {
+ eprintk("unexpected response command %u\n", cmnd_opcode(rsp));
+ return;
+ }
+
+ size = cmnd_write_size(req);
+ if (size) {
+ rsp_hdr->flags |= ISCSI_FLG_RESIDUAL_UNDERFLOW;
+ rsp_hdr->residual_count = cpu_to_be32(size);
+ }
+ size = cmnd_read_size(req);
+ if (size) {
+ if (cmnd_hdr(req)->flags & ISCSI_CMD_WRITE) {
+ rsp_hdr->flags |= ISCSI_FLG_BIRESIDUAL_UNDERFLOW;
+ rsp_hdr->bi_residual_count = cpu_to_be32(size);
+ } else {
+ rsp_hdr->flags |= ISCSI_FLG_RESIDUAL_UNDERFLOW;
+ rsp_hdr->residual_count = cpu_to_be32(size);
+ }
+ }
+ req->pdu.bhs.opcode =
+ (req->pdu.bhs.opcode & ~ISCSI_OPCODE_MASK) | ISCSI_OP_SCSI_REJECT;
+
+ cmnd_skip_pdu(req);
+}
+
+static int cmnd_recv_pdu(struct iscsi_conn *conn, struct tio *tio, u32 offset, u32 size)
+{
+ int idx, i;
+ char *addr;
+
+ dprintk(D_GENERIC, "%p %u,%u\n", tio, offset, size);
+ offset += tio->offset;
+
+ if (!(offset < tio->offset + tio->size) ||
+ !(offset + size <= tio->offset + tio->size)) {
+ eprintk("%u %u %u %u", offset, size, tio->offset, tio->size);
+ return -EIO;
+ }
+ assert(offset < tio->offset + tio->size);
+ assert(offset + size <= tio->offset + tio->size);
+
+ idx = offset >> PAGE_CACHE_SHIFT;
+ offset &= ~PAGE_CACHE_MASK;
+
+ conn->read_msg.msg_iov = conn->read_iov;
+ conn->read_size = size = (size + 3) & -4;
+ conn->read_overflow = 0;
+
+ i = 0;
+ while (1) {
+ assert(tio->pvec[idx]);
+ addr = page_address(tio->pvec[idx]);
+ assert(addr);
+ conn->read_iov[i].iov_base = addr + offset;
+ if (offset + size <= PAGE_CACHE_SIZE) {
+ conn->read_iov[i].iov_len = size;
+ conn->read_msg.msg_iovlen = ++i;
+ break;
+ }
+ conn->read_iov[i].iov_len = PAGE_CACHE_SIZE - offset;
+ size -= conn->read_iov[i].iov_len;
+ offset = 0;
+ if (++i >= ISCSI_CONN_IOV_MAX) {
+ conn->read_msg.msg_iovlen = i;
+ conn->read_overflow = size;
+ conn->read_size -= size;
+ break;
+ }
+
+ idx++;
+ }
+
+ return 0;
+}
+
+static void set_offset_and_length(struct iet_volume *lu, u8 *cmd, loff_t *off, u32 *len)
+{
+ assert(lu);
+
+ switch (cmd[0]) {
+ case READ_6:
+ case WRITE_6:
+ *off = ((cmd[1] & 0x1f) << 16) + (cmd[2] << 8) + cmd[3];
+ *len = cmd[4];
+ if (!*len)
+ *len = 256;
+ break;
+ case READ_10:
+ case WRITE_10:
+ case WRITE_VERIFY:
+ *off = (u32)cmd[2] << 24 | (u32)cmd[3] << 16 |
+ (u32)cmd[4] << 8 | (u32)cmd[5];
+ *len = (cmd[7] << 8) + cmd[8];
+ break;
+ case READ_16:
+ case WRITE_16:
+ *off = (u64)cmd[2] << 56 | (u64)cmd[3] << 48 |
+ (u64)cmd[4] << 40 | (u64)cmd[5] << 32 |
+ (u64)cmd[6] << 24 | (u64)cmd[7] << 16 |
+ (u64)cmd[8] << 8 | (u64)cmd[9];
+ *len = (u32)cmd[10] << 24 | (u32)cmd[11] << 16 |
+ (u32)cmd[12] << 8 | (u32)cmd[13];
+ break;
+ default:
+ BUG();
+ }
+
+ *off <<= lu->blk_shift;
+ *len <<= lu->blk_shift;
+}
+
+static u32 translate_lun(u16 * data)
+{
+ u8 *p = (u8 *) data;
+ u32 lun = ~0U;
+
+ switch (*p >> 6) {
+ case 0:
+ lun = p[1];
+ break;
+ case 1:
+ lun = (0x3f & p[0]) << 8 | p[1];
+ break;
+ case 2:
+ case 3:
+ default:
+ eprintk("%u %u %u %u\n", data[0], data[1], data[2], data[3]);
+ break;
+ }
+
+ return lun;
+}
+
+static void send_r2t(struct iscsi_cmnd *req)
+{
+ struct iscsi_cmnd *rsp;
+ struct iscsi_r2t_hdr *rsp_hdr;
+ u32 length, offset, burst;
+ LIST_HEAD(send);
+
+ length = req->r2t_length;
+ burst = req->conn->session->param.max_burst_length;
+ offset = be32_to_cpu(cmnd_hdr(req)->data_length) - length;
+
+ do {
+ rsp = iscsi_cmnd_create_rsp_cmnd(req, 0);
+ rsp->pdu.bhs.ttt = req->target_task_tag;
+
+ rsp_hdr = (struct iscsi_r2t_hdr *)&rsp->pdu.bhs;
+ rsp_hdr->opcode = ISCSI_OP_R2T;
+ rsp_hdr->flags = ISCSI_FLG_FINAL;
+ memcpy(rsp_hdr->lun, cmnd_hdr(req)->lun, 8);
+ rsp_hdr->itt = cmnd_hdr(req)->itt;
+ rsp_hdr->r2t_sn = cpu_to_be32(req->r2t_sn++);
+ rsp_hdr->buffer_offset = cpu_to_be32(offset);
+ if (length > burst) {
+ rsp_hdr->data_length = cpu_to_be32(burst);
+ length -= burst;
+ offset += burst;
+ } else {
+ rsp_hdr->data_length = cpu_to_be32(length);
+ length = 0;
+ }
+
+ dprintk(D_WRITE, "%x %u %u %u %u\n", cmnd_itt(req),
+ be32_to_cpu(rsp_hdr->data_length),
+ be32_to_cpu(rsp_hdr->buffer_offset),
+ be32_to_cpu(rsp_hdr->r2t_sn), req->outstanding_r2t);
+
+ list_add_tail(&rsp->list, &send);
+
+ if (++req->outstanding_r2t >= req->conn->session->param.max_outstanding_r2t)
+ break;
+
+ } while (length);
+
+ iscsi_cmnds_init_write(&send);
+}
+
+static void scsi_cmnd_exec(struct iscsi_cmnd *cmnd)
+{
+ assert(!cmnd->r2t_length);
+
+ if (cmnd->lun) {
+ iscsi_scsi_queuecmnd(cmnd);
+ } else {
+ iscsi_device_queue_cmnd(cmnd);
+ }
+}
+
+static int nop_out_start(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd)
+{
+ u32 size, tmp;
+ int i, err = 0;
+
+ if (cmnd_ttt(cmnd) != cpu_to_be32(ISCSI_RESERVED_TAG)) {
+ cmnd->req = cmnd_find_hash(conn->session, cmnd->pdu.bhs.itt,
+ cmnd->pdu.bhs.ttt);
+ if (!cmnd->req) {
+ /*
+ * We didn't request this NOP-Out (by sending a
+ * NOP-In, see 10.18.2 of the RFC) or our fake NOP-Out
+ * timed out.
+ */
+ eprintk("initiator bug %x\n", cmnd_itt(cmnd));
+ err = -ISCSI_REASON_PROTOCOL_ERROR;
+ goto out;
+ }
+
+ del_timer_sync(&cmnd->req->timer);
+ clear_cmnd_timer_active(cmnd->req);
+ dprintk(D_GENERIC, "NOP-Out: %p, ttt %x, timer %p\n",
+ cmnd->req, cmnd_ttt(cmnd->req), &cmnd->req->timer);
+ }
+
+ if (cmnd_itt(cmnd) == cpu_to_be32(ISCSI_RESERVED_TAG)) {
+ if (!cmnd_immediate(cmnd))
+ eprintk("%s\n", "initiator bug!");
+ update_stat_sn(cmnd);
+ err = check_cmd_sn(cmnd);
+ if (err)
+ goto out;
+ } else if ((err = cmnd_insert_hash(cmnd)) < 0) {
+ eprintk("ignore this request %x\n", cmnd_itt(cmnd));
+ goto out;
+ }
+
+ if ((size = cmnd->pdu.datasize)) {
+ size = (size + 3) & -4;
+ conn->read_msg.msg_iov = conn->read_iov;
+ if (cmnd->pdu.bhs.itt != cpu_to_be32(ISCSI_RESERVED_TAG)) {
+ struct tio *tio;
+ int pg_cnt = get_pgcnt(size, 0);
+
+ assert(pg_cnt < ISCSI_CONN_IOV_MAX);
+ cmnd->tio = tio = tio_alloc(pg_cnt);
+ tio_set(tio, size, 0);
+
+ for (i = 0; i < pg_cnt; i++) {
+ conn->read_iov[i].iov_base
+ = page_address(tio->pvec[i]);
+ tmp = min_t(u32, size, PAGE_CACHE_SIZE);
+ conn->read_iov[i].iov_len = tmp;
+ conn->read_size += tmp;
+ size -= tmp;
+ }
+ } else {
+ for (i = 0; i < ISCSI_CONN_IOV_MAX; i++) {
+ conn->read_iov[i].iov_base = dummy_data;
+ tmp = min_t(u32, size, sizeof(dummy_data));
+ conn->read_iov[i].iov_len = tmp;
+ conn->read_size += tmp;
+ size -= tmp;
+ }
+ }
+ assert(!size);
+ conn->read_overflow = size;
+ conn->read_msg.msg_iovlen = i;
+ }
+
+out:
+ return err;
+}
+
+static u32 get_next_ttt(struct iscsi_session *session)
+{
+ u32 ttt;
+
+ if (session->next_ttt == ISCSI_RESERVED_TAG)
+ session->next_ttt++;
+ ttt = session->next_ttt++;
+
+ return cpu_to_be32(ttt);
+}
+
+static void scsi_cmnd_start(struct iscsi_conn *conn, struct iscsi_cmnd *req)
+{
+ struct iscsi_scsi_cmd_hdr *req_hdr = cmnd_hdr(req);
+
+ dprintk(D_GENERIC, "scsi command: %02x\n", req_hdr->scb[0]);
+
+ req->lun = volume_get(conn->session->target, translate_lun(req_hdr->lun));
+ if (!req->lun) {
+ switch (req_hdr->scb[0]) {
+ case INQUIRY:
+ case REPORT_LUNS:
+ break;
+ default:
+ eprintk("%x %x\n", cmnd_itt(req), req_hdr->scb[0]);
+ create_sense_rsp(req, ILLEGAL_REQUEST, 0x25, 0x0);
+ cmnd_skip_data(req);
+ goto out;
+ }
+ } else
+ set_cmnd_lunit(req);
+
+ switch (req_hdr->scb[0]) {
+ case SERVICE_ACTION_IN:
+ if ((req_hdr->scb[1] & 0x1f) != 0x10)
+ goto error;
+ case INQUIRY:
+ case REPORT_LUNS:
+ case TEST_UNIT_READY:
+ case SYNCHRONIZE_CACHE:
+ case VERIFY:
+ case VERIFY_16:
+ case START_STOP:
+ case READ_CAPACITY:
+ case MODE_SENSE:
+ case REQUEST_SENSE:
+ case RESERVE:
+ case RELEASE:
+ {
+ if (!(req_hdr->flags & ISCSI_CMD_FINAL) || req->pdu.datasize) {
+ /* unexpected unsolicited data */
+ eprintk("%x %x\n", cmnd_itt(req), req_hdr->scb[0]);
+ create_sense_rsp(req, ABORTED_COMMAND, 0xc, 0xc);
+ cmnd_skip_data(req);
+ }
+ break;
+ }
+ case READ_6:
+ case READ_10:
+ case READ_16:
+ {
+ loff_t offset;
+ u32 length;
+
+ if (!(req_hdr->flags & ISCSI_CMD_FINAL) || req->pdu.datasize) {
+ /* unexpected unsolicited data */
+ eprintk("%x %x\n", cmnd_itt(req), req_hdr->scb[0]);
+ create_sense_rsp(req, ABORTED_COMMAND, 0xc, 0xc);
+ cmnd_skip_data(req);
+ break;
+ }
+
+ set_offset_and_length(req->lun, req_hdr->scb, &offset, &length);
+ req->tio = tio_alloc(get_pgcnt(length, offset));
+ tio_set(req->tio, length, offset);
+ break;
+ }
+ case WRITE_6:
+ case WRITE_10:
+ case WRITE_16:
+ case WRITE_VERIFY:
+ {
+ struct iscsi_sess_param *param = &conn->session->param;
+ loff_t offset;
+ u32 length;
+
+ req->r2t_length = be32_to_cpu(req_hdr->data_length) - req->pdu.datasize;
+ req->is_unsolicited_data = !(req_hdr->flags & ISCSI_CMD_FINAL);
+ req->target_task_tag = get_next_ttt(conn->session);
+
+ if (LUReadonly(req->lun)) {
+ create_sense_rsp(req, DATA_PROTECT, 0x27, 0x0);
+ cmnd_skip_data(req);
+ break;
+ }
+
+ if (!param->immediate_data && req->pdu.datasize)
+ eprintk("%x %x\n", cmnd_itt(req), req_hdr->scb[0]);
+
+ if (param->initial_r2t && !(req_hdr->flags & ISCSI_CMD_FINAL))
+ eprintk("%x %x\n", cmnd_itt(req), req_hdr->scb[0]);
+
+ if (req_hdr->scb[0] == WRITE_VERIFY && req_hdr->scb[1] & 0x02)
+ eprintk("Verification is ignored %x\n", cmnd_itt(req));
+
+ set_offset_and_length(req->lun, req_hdr->scb, &offset, &length);
+ if (cmnd_write_size(req) != length)
+ eprintk("%x %u %u\n", cmnd_itt(req), cmnd_write_size(req), length);
+
+ req->tio = tio_alloc(get_pgcnt(length, offset));
+ tio_set(req->tio, length, offset);
+
+ if (req->pdu.datasize) {
+ if (cmnd_recv_pdu(conn, req->tio, 0, req->pdu.datasize) < 0)
+ assert(0);
+ }
+ break;
+ }
+ error:
+ default:
+ eprintk("Unsupported %x\n", req_hdr->scb[0]);
+ create_sense_rsp(req, ILLEGAL_REQUEST, 0x20, 0x0);
+ cmnd_skip_data(req);
+ break;
+ }
+
+out:
+ return;
+}
+
+static void data_out_start(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_data_out_hdr *req = (struct iscsi_data_out_hdr *)&cmnd->pdu.bhs;
+ struct iscsi_cmnd *scsi_cmnd = NULL;
+ u32 offset = be32_to_cpu(req->buffer_offset);
+
+ update_stat_sn(cmnd);
+
+ cmnd->req = scsi_cmnd = cmnd_find_hash(conn->session, req->itt, req->ttt);
+ if (!scsi_cmnd) {
+ eprintk("unable to find scsi task %x %x\n",
+ cmnd_itt(cmnd), cmnd_ttt(cmnd));
+ goto skip_data;
+ }
+
+ if (scsi_cmnd->r2t_length < cmnd->pdu.datasize) {
+ eprintk("invalid data len %x %u %u\n",
+ cmnd_itt(scsi_cmnd), cmnd->pdu.datasize, scsi_cmnd->r2t_length);
+ goto skip_data;
+ }
+
+ if (scsi_cmnd->r2t_length + offset != cmnd_write_size(scsi_cmnd)) {
+ eprintk("%x %u %u %u\n", cmnd_itt(scsi_cmnd), scsi_cmnd->r2t_length,
+ offset, cmnd_write_size(scsi_cmnd));
+ goto skip_data;
+ }
+
+ scsi_cmnd->r2t_length -= cmnd->pdu.datasize;
+
+ if (req->ttt == cpu_to_be32(ISCSI_RESERVED_TAG)) {
+ /* unsolicited burst data */
+ if (scsi_cmnd->pdu.bhs.flags & ISCSI_FLG_FINAL) {
+ eprintk("unexpected data from %x %x\n",
+ cmnd_itt(cmnd), cmnd_ttt(cmnd));
+ goto skip_data;
+ }
+ }
+
+ dprintk(D_WRITE, "%u %p %p %p %u %u\n", req->ttt, cmnd, scsi_cmnd,
+ scsi_cmnd->tio, offset, cmnd->pdu.datasize);
+
+ if (cmnd_recv_pdu(conn, scsi_cmnd->tio, offset, cmnd->pdu.datasize) < 0)
+ goto skip_data;
+ return;
+
+skip_data:
+ cmnd->pdu.bhs.opcode = ISCSI_OP_DATA_REJECT;
+ cmnd_skip_pdu(cmnd);
+ return;
+}
+
+static void iscsi_session_push_cmnd(struct iscsi_cmnd *cmnd);
+
+static void data_out_end(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_data_out_hdr *req = (struct iscsi_data_out_hdr *) &cmnd->pdu.bhs;
+ struct iscsi_cmnd *scsi_cmnd;
+ u32 offset;
+
+ assert(cmnd);
+ scsi_cmnd = cmnd->req;
+ assert(scsi_cmnd);
+
+ if (conn->read_overflow) {
+ eprintk("%x %u\n", cmnd_itt(cmnd), conn->read_overflow);
+ assert(scsi_cmnd->tio);
+ offset = be32_to_cpu(req->buffer_offset);
+ offset += cmnd->pdu.datasize - conn->read_overflow;
+ if (cmnd_recv_pdu(conn, scsi_cmnd->tio, offset, conn->read_overflow) < 0)
+ assert(0);
+ return;
+ }
+
+ if (req->ttt == cpu_to_be32(ISCSI_RESERVED_TAG)) {
+ if (req->flags & ISCSI_FLG_FINAL) {
+ scsi_cmnd->is_unsolicited_data = 0;
+ iscsi_session_push_cmnd(scsi_cmnd);
+ }
+ } else {
+ /* TODO : proper error handling */
+ if (!(req->flags & ISCSI_FLG_FINAL) && scsi_cmnd->r2t_length == 0)
+ eprintk("initiator error %x\n", cmnd_itt(scsi_cmnd));
+
+ if (!(req->flags & ISCSI_FLG_FINAL))
+ goto out;
+
+ scsi_cmnd->outstanding_r2t--;
+
+ if (scsi_cmnd->r2t_length == 0)
+ assert(list_empty(&scsi_cmnd->pdu_list));
+
+ iscsi_session_push_cmnd(scsi_cmnd);
+ }
+
+out:
+ iscsi_cmnd_remove(cmnd);
+ return;
+}
+
+static void __cmnd_abort(struct iscsi_cmnd *cmnd)
+{
+ if (cmnd_rxstart(cmnd))
+ set_cmnd_tmfabort(cmnd);
+
+ if (cmnd_waitio(cmnd))
+ return;
+
+ if (cmnd->conn->read_cmnd != cmnd)
+ cmnd_release(cmnd, 1);
+}
+
+static int cmnd_abort(struct iscsi_session *session, struct iscsi_cmnd *req)
+{
+ struct iscsi_task_mgt_hdr *req_hdr =
+ (struct iscsi_task_mgt_hdr *)&req->pdu.bhs;
+ struct iscsi_cmnd *cmnd;
+
+ u32 min_cmd_sn = req_hdr->cmd_sn - session->max_queued_cmnds;
+
+ req_hdr->ref_cmd_sn = be32_to_cpu(req_hdr->ref_cmd_sn);
+
+ dprintk(D_GENERIC, "cmd_sn(%u) ref_cmd_sn(%u) min_cmd_sn(%u) rtt(%x)"
+ " lun(%d) cid(%u)\n",
+ req_hdr->cmd_sn, req_hdr->ref_cmd_sn, min_cmd_sn, req_hdr->rtt,
+ translate_lun(req_hdr->lun), req->conn->cid);
+
+ if (after(req_hdr->ref_cmd_sn, req_hdr->cmd_sn))
+ return ISCSI_RESPONSE_FUNCTION_REJECTED;
+
+ if (!(cmnd = cmnd_find_hash(session, req_hdr->rtt, ISCSI_RESERVED_TAG))) {
+ if (between(req_hdr->ref_cmd_sn, min_cmd_sn, req_hdr->cmd_sn))
+ return ISCSI_RESPONSE_FUNCTION_COMPLETE;
+ else
+ return ISCSI_RESPONSE_UNKNOWN_TASK;
+ }
+
+ dprintk(D_GENERIC, "itt(%x) opcode(%x) scsicode(%x) lun(%d) cid(%u)\n",
+ cmnd_itt(cmnd), cmnd_opcode(cmnd), cmnd_scsicode(cmnd),
+ translate_lun(cmnd_hdr(cmnd)->lun), cmnd->conn->cid);
+
+ if (cmnd_opcode(cmnd) == ISCSI_OP_SCSI_TASK_MGT_MSG)
+ return ISCSI_RESPONSE_FUNCTION_REJECTED;
+
+ if (translate_lun(cmnd_hdr(cmnd)->lun) !=
+ translate_lun(req_hdr->lun))
+ return ISCSI_RESPONSE_FUNCTION_REJECTED;
+
+ if (cmnd->conn && test_bit(CONN_ACTIVE, &cmnd->conn->state)) {
+ if (cmnd->conn->cid != req->conn->cid)
+ return ISCSI_RESPONSE_FUNCTION_REJECTED;
+ } else {
+ /* Switch cmnd connection allegiance */
+ }
+
+ __cmnd_abort(cmnd);
+
+ return ISCSI_RESPONSE_FUNCTION_COMPLETE;
+}
+
+static int target_reset(struct iscsi_cmnd *req, u32 lun, int all)
+{
+ struct iscsi_target *target = req->conn->session->target;
+ struct iscsi_session *session;
+ struct iscsi_conn *conn;
+ struct iscsi_cmnd *cmnd, *tmp;
+ struct iet_volume *volume;
+
+ list_for_each_entry(session, &target->session_list, list) {
+ list_for_each_entry(conn, &session->conn_list, list) {
+ list_for_each_entry_safe(cmnd, tmp, &conn->pdu_list, conn_list) {
+ if (cmnd == req)
+ continue;
+
+ if (all)
+ __cmnd_abort(cmnd);
+ else if (translate_lun(cmnd_hdr(cmnd)->lun)
+ == lun)
+ __cmnd_abort(cmnd);
+ }
+ }
+ }
+
+ list_for_each_entry(volume, &target->volumes, list) {
+ if (all || volume->lun == lun) {
+ /* force release */
+ volume_release(volume, 0, 1);
+ /* power-on, reset, or bus device reset occurred */
+ ua_establish_for_all_sessions(target, volume->lun,
+ 0x29, 0x0);
+ }
+ }
+
+ return 0;
+}
+
+static void task_set_abort(struct iscsi_cmnd *req)
+{
+ struct iscsi_session *session = req->conn->session;
+ struct iscsi_conn *conn;
+ struct iscsi_cmnd *cmnd, *tmp;
+
+ list_for_each_entry(conn, &session->conn_list, list) {
+ list_for_each_entry_safe(cmnd, tmp, &conn->pdu_list, conn_list) {
+ if (translate_lun(cmnd_hdr(cmnd)->lun)
+ != translate_lun(cmnd_hdr(req)->lun))
+ continue;
+
+ if (before(cmnd_hdr(cmnd)->cmd_sn,
+ cmnd_hdr(req)->cmd_sn))
+ __cmnd_abort(cmnd);
+ }
+ }
+}
+
+static inline char *tmf_desc(int fun)
+{
+ static char *tmf_desc[] = {
+ "Unknown Function",
+ "Abort Task",
+ "Abort Task Set",
+ "Clear ACA",
+ "Clear Task Set",
+ "Logical Unit Reset",
+ "Target Warm Reset",
+ "Target Cold Reset",
+ "Task Reassign",
+ };
+
+ if ((fun < ISCSI_FUNCTION_ABORT_TASK) ||
+ (fun > ISCSI_FUNCTION_TASK_REASSIGN))
+ fun = 0;
+
+ return tmf_desc[fun];
+}
+
+static inline char *rsp_desc(int rsp)
+{
+ static char *rsp_desc[] = {
+ "Function Complete",
+ "Unknown Task",
+ "Unknown LUN",
+ "Task Allegiant",
+ "Failover Unsupported",
+ "Function Unsupported",
+ "No Authorization",
+ "Function Rejected",
+ "Unknown Response",
+ };
+
+ if (((rsp < ISCSI_RESPONSE_FUNCTION_COMPLETE) ||
+ (rsp > ISCSI_RESPONSE_NO_AUTHORIZATION)) &&
+ (rsp != ISCSI_RESPONSE_FUNCTION_REJECTED))
+ rsp = 8;
+ else if (rsp == ISCSI_RESPONSE_FUNCTION_REJECTED)
+ rsp = 7;
+
+ return rsp_desc[rsp];
+}
+
+static void execute_task_management(struct iscsi_cmnd *req)
+{
+ struct iscsi_conn *conn = req->conn;
+ struct iscsi_session *session = conn->session;
+ struct iscsi_target *target = session->target;
+ struct iscsi_cmnd *rsp;
+ struct iscsi_task_mgt_hdr *req_hdr = (struct iscsi_task_mgt_hdr *)&req->pdu.bhs;
+ struct iscsi_task_rsp_hdr *rsp_hdr;
+ u32 lun;
+ int function = req_hdr->function & ISCSI_FUNCTION_MASK;
+
+ rsp = iscsi_cmnd_create_rsp_cmnd(req, 1);
+ rsp_hdr = (struct iscsi_task_rsp_hdr *)&rsp->pdu.bhs;
+
+ rsp_hdr->opcode = ISCSI_OP_SCSI_TASK_MGT_RSP;
+ rsp_hdr->flags = ISCSI_FLG_FINAL;
+ rsp_hdr->itt = req_hdr->itt;
+ rsp_hdr->response = ISCSI_RESPONSE_FUNCTION_COMPLETE;
+
+ switch (function) {
+ case ISCSI_FUNCTION_ABORT_TASK:
+ case ISCSI_FUNCTION_ABORT_TASK_SET:
+ case ISCSI_FUNCTION_CLEAR_ACA:
+ case ISCSI_FUNCTION_CLEAR_TASK_SET:
+ case ISCSI_FUNCTION_LOGICAL_UNIT_RESET:
+ lun = translate_lun(req_hdr->lun);
+ if (!volume_lookup(target, lun)) {
+ rsp_hdr->response = ISCSI_RESPONSE_UNKNOWN_LUN;
+ goto out;
+ }
+ }
+
+ switch (function) {
+ case ISCSI_FUNCTION_ABORT_TASK:
+ rsp_hdr->response = cmnd_abort(conn->session, req);
+ break;
+ case ISCSI_FUNCTION_ABORT_TASK_SET:
+ task_set_abort(req);
+ break;
+ case ISCSI_FUNCTION_CLEAR_ACA:
+ rsp_hdr->response = ISCSI_RESPONSE_FUNCTION_UNSUPPORTED;
+ break;
+ case ISCSI_FUNCTION_CLEAR_TASK_SET:
+ rsp_hdr->response = ISCSI_RESPONSE_FUNCTION_UNSUPPORTED;
+ break;
+ case ISCSI_FUNCTION_LOGICAL_UNIT_RESET:
+ target_reset(req, translate_lun(req_hdr->lun), 0);
+ break;
+ case ISCSI_FUNCTION_TARGET_WARM_RESET:
+ case ISCSI_FUNCTION_TARGET_COLD_RESET:
+ target_reset(req, 0, 1);
+ if (function == ISCSI_FUNCTION_TARGET_COLD_RESET)
+ set_cmnd_close(rsp);
+ break;
+ case ISCSI_FUNCTION_TASK_REASSIGN:
+ rsp_hdr->response = ISCSI_RESPONSE_FUNCTION_UNSUPPORTED;
+ break;
+ default:
+ rsp_hdr->response = ISCSI_RESPONSE_FUNCTION_REJECTED;
+ break;
+ }
+out:
+ iprintk("%s (%02x) issued on tid:%d lun:%d by sid:%llu (%s)\n",
+ tmf_desc(function), function, target->tid,
+ translate_lun(req_hdr->lun), session->sid,
+ rsp_desc(rsp_hdr->response));
+
+ iscsi_cmnd_init_write(rsp);
+}
+
+static void nop_hdr_setup(struct iscsi_hdr *hdr, u8 opcode, __be32 itt,
+ __be32 ttt)
+{
+ hdr->opcode = opcode;
+ hdr->flags = ISCSI_FLG_FINAL;
+ hdr->itt = itt;
+ hdr->ttt = ttt;
+}
+
+static void nop_out_exec(struct iscsi_cmnd *req)
+{
+ struct iscsi_cmnd *rsp;
+
+ if (cmnd_itt(req) != cpu_to_be32(ISCSI_RESERVED_TAG)) {
+ rsp = iscsi_cmnd_create_rsp_cmnd(req, 1);
+
+ nop_hdr_setup(&rsp->pdu.bhs, ISCSI_OP_NOP_IN, req->pdu.bhs.itt,
+ cpu_to_be32(ISCSI_RESERVED_TAG));
+
+ if (req->pdu.datasize)
+ assert(req->tio);
+ else
+ assert(!req->tio);
+
+ if (req->tio) {
+ tio_get(req->tio);
+ rsp->tio = req->tio;
+ }
+
+ assert(get_pgcnt(req->pdu.datasize, 0) < ISCSI_CONN_IOV_MAX);
+ rsp->pdu.datasize = req->pdu.datasize;
+ iscsi_cmnd_init_write(rsp);
+ } else {
+ if (req->req) {
+ dprintk(D_GENERIC, "releasing NOP-Out %p, ttt %x; "
+ "removing NOP-In %p, ttt %x\n", req->req,
+ cmnd_ttt(req->req), req, cmnd_ttt(req));
+ cmnd_release(req->req, 0);
+ }
+ iscsi_cmnd_remove(req);
+ }
+}
+
+static void nop_in_timeout(unsigned long data)
+{
+ struct iscsi_cmnd *req = (struct iscsi_cmnd *)data;
+
+ printk(KERN_INFO "NOP-In ping timed out - closing sid:cid %llu:%u\n",
+ req->conn->session->sid, req->conn->cid);
+ clear_cmnd_timer_active(req);
+ conn_close(req->conn);
+}
+
+/* create a fake NOP-Out req and treat the NOP-In as our rsp to it */
+void send_nop_in(struct iscsi_conn *conn)
+{
+ struct iscsi_cmnd *req = cmnd_alloc(conn, 1);
+ struct iscsi_cmnd *rsp = iscsi_cmnd_create_rsp_cmnd(req, 0);
+
+ req->target_task_tag = get_next_ttt(conn->session);
+
+
+ nop_hdr_setup(&req->pdu.bhs, ISCSI_OP_NOP_OUT,
+ cpu_to_be32(ISCSI_RESERVED_TAG), req->target_task_tag);
+ nop_hdr_setup(&rsp->pdu.bhs, ISCSI_OP_NOP_IN,
+ cpu_to_be32(ISCSI_RESERVED_TAG), req->target_task_tag);
+
+ dprintk(D_GENERIC, "NOP-Out: %p, ttt %x, timer %p; "
+ "NOP-In: %p, ttt %x;\n", req, cmnd_ttt(req), &req->timer, rsp,
+ cmnd_ttt(rsp));
+
+ init_timer(&req->timer);
+ req->timer.data = (unsigned long)req;
+ req->timer.function = nop_in_timeout;
+
+ if (cmnd_insert_hash_ttt(req, req->target_task_tag)) {
+ eprintk("%s\n",
+ "failed to insert fake NOP-Out into hash table");
+ cmnd_release(rsp, 0);
+ cmnd_release(req, 0);
+ } else
+ iscsi_cmnd_init_write(rsp);
+}
+
+static void nop_in_tx_end(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_conn *conn = cmnd->conn;
+ u32 t;
+
+ if (cmnd->pdu.bhs.ttt == cpu_to_be32(ISCSI_RESERVED_TAG))
+ return;
+
+ /*
+ * NOP-In ping issued by the target.
+ * FIXME: Sanitize the NOP timeout earlier, during configuration
+ */
+ t = conn->session->target->trgt_param.nop_timeout;
+
+ if (!t || t > conn->session->target->trgt_param.nop_interval) {
+ eprintk("Adjusting NOPTimeout of tid %u from %u to %u "
+ "(== NOPInterval)\n", conn->session->target->tid,
+ t,
+ conn->session->target->trgt_param.nop_interval);
+ t = conn->session->target->trgt_param.nop_interval;
+ conn->session->target->trgt_param.nop_timeout = t;
+ }
+
+ dprintk(D_GENERIC, "NOP-In %p, %x: timer %p\n", cmnd, cmnd_ttt(cmnd),
+ &cmnd->req->timer);
+
+ set_cmnd_timer_active(cmnd->req);
+ mod_timer(&cmnd->req->timer, jiffies + HZ * t);
+}
+
+static void logout_exec(struct iscsi_cmnd *req)
+{
+ struct iscsi_logout_req_hdr *req_hdr;
+ struct iscsi_cmnd *rsp;
+ struct iscsi_logout_rsp_hdr *rsp_hdr;
+
+ req_hdr = (struct iscsi_logout_req_hdr *)&req->pdu.bhs;
+ rsp = iscsi_cmnd_create_rsp_cmnd(req, 1);
+ rsp_hdr = (struct iscsi_logout_rsp_hdr *)&rsp->pdu.bhs;
+ rsp_hdr->opcode = ISCSI_OP_LOGOUT_RSP;
+ rsp_hdr->flags = ISCSI_FLG_FINAL;
+ rsp_hdr->itt = req_hdr->itt;
+ set_cmnd_close(rsp);
+ iscsi_cmnd_init_write(rsp);
+}
+
+static void iscsi_cmnd_exec(struct iscsi_cmnd *cmnd)
+{
+ dprintk(D_GENERIC, "%p,%x,%u\n", cmnd, cmnd_opcode(cmnd), cmnd->pdu.bhs.sn);
+
+ switch (cmnd_opcode(cmnd)) {
+ case ISCSI_OP_NOP_OUT:
+ nop_out_exec(cmnd);
+ break;
+ case ISCSI_OP_SCSI_CMD:
+ scsi_cmnd_exec(cmnd);
+ break;
+ case ISCSI_OP_SCSI_TASK_MGT_MSG:
+ execute_task_management(cmnd);
+ break;
+ case ISCSI_OP_LOGOUT_CMD:
+ logout_exec(cmnd);
+ break;
+ case ISCSI_OP_SCSI_REJECT:
+ iscsi_cmnd_init_write(get_rsp_cmnd(cmnd));
+ break;
+ case ISCSI_OP_TEXT_CMD:
+ case ISCSI_OP_SNACK_CMD:
+ break;
+ default:
+ eprintk("unexpected cmnd op %x\n", cmnd_opcode(cmnd));
+ break;
+ }
+}
+
+static void __cmnd_send_pdu(struct iscsi_conn *conn, struct tio *tio, u32 offset, u32 size)
+{
+ dprintk(D_GENERIC, "%p %u,%u\n", tio, offset, size);
+ offset += tio->offset;
+
+ assert(offset <= tio->offset + tio->size);
+ assert(offset + size <= tio->offset + tio->size);
+
+ conn->write_tcmnd = tio;
+ conn->write_offset = offset;
+ conn->write_size += size;
+}
+
+static void cmnd_send_pdu(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd)
+{
+ u32 size;
+ struct tio *tio;
+
+ if (!cmnd->pdu.datasize)
+ return;
+
+ size = (cmnd->pdu.datasize + 3) & -4;
+ tio = cmnd->tio;
+ assert(tio);
+ assert(tio->size == size);
+ __cmnd_send_pdu(conn, tio, 0, size);
+}
+
+static void set_cork(struct socket *sock, int on)
+{
+ int opt = on;
+ mm_segment_t oldfs;
+
+ oldfs = get_fs();
+ set_fs(get_ds());
+ sock->ops->setsockopt(sock, SOL_TCP, TCP_CORK, (void *)&opt, sizeof(opt));
+ set_fs(oldfs);
+}
+
+void cmnd_release(struct iscsi_cmnd *cmnd, int force)
+{
+ struct iscsi_cmnd *req, *rsp;
+ int is_last = 0;
+
+ if (!cmnd)
+ return;
+
+/* eprintk("%x %lx %d\n", cmnd_opcode(cmnd), cmnd->flags, force); */
+
+ req = cmnd->req;
+ is_last = cmnd_final(cmnd);
+
+ if (force) {
+ while (!list_empty(&cmnd->pdu_list)) {
+ rsp = list_entry(cmnd->pdu_list.next, struct iscsi_cmnd, pdu_list);
+ list_del_init(&rsp->list);
+ list_del(&rsp->pdu_list);
+ iscsi_cmnd_remove(rsp);
+ }
+ list_del_init(&cmnd->list);
+ } else
+ if (cmnd_queued(cmnd))
+ iscsi_scsi_dequeuecmnd(cmnd);
+
+ if (cmnd_hashed(cmnd))
+ cmnd_remove_hash(cmnd);
+
+ if (cmnd_lunit(cmnd)) {
+ assert(cmnd->lun);
+ volume_put(cmnd->lun);
+ }
+
+ list_del_init(&cmnd->pdu_list);
+ iscsi_cmnd_remove(cmnd);
+
+ if (is_last) {
+ assert(!force);
+ assert(req);
+ cmnd_release(req, 0);
+ }
+
+ return;
+}
+
+void cmnd_tx_start(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_conn *conn = cmnd->conn;
+ struct iovec *iop;
+
+ dprintk(D_GENERIC, "%p:%x\n", cmnd, cmnd_opcode(cmnd));
+ assert(cmnd);
+ iscsi_cmnd_set_length(&cmnd->pdu);
+
+ set_cork(conn->sock, 1);
+
+ conn->write_iop = iop = conn->write_iov;
+ iop->iov_base = &cmnd->pdu.bhs;
+ iop->iov_len = sizeof(cmnd->pdu.bhs);
+ iop++;
+ conn->write_size = sizeof(cmnd->pdu.bhs);
+
+ switch (cmnd_opcode(cmnd)) {
+ case ISCSI_OP_NOP_IN:
+ if (cmnd->pdu.bhs.itt == ISCSI_RESERVED_TAG) {
+ /* NOP-In ping generated by us. Don't advance StatSN. */
+ cmnd_set_sn(cmnd, 0);
+ cmnd_set_sn(cmnd->req, 0);
+ cmnd->pdu.bhs.sn = cpu_to_be32(conn->stat_sn);
+ cmnd->req->pdu.bhs.sn = cpu_to_be32(conn->stat_sn);
+ } else
+ cmnd_set_sn(cmnd, 1);
+ cmnd_send_pdu(conn, cmnd);
+ break;
+ case ISCSI_OP_SCSI_RSP:
+ cmnd_set_sn(cmnd, 1);
+ cmnd_send_pdu(conn, cmnd);
+ break;
+ case ISCSI_OP_SCSI_TASK_MGT_RSP:
+ cmnd_set_sn(cmnd, 1);
+ break;
+ case ISCSI_OP_TEXT_RSP:
+ cmnd_set_sn(cmnd, 1);
+ break;
+ case ISCSI_OP_SCSI_DATA_IN:
+ {
+ struct iscsi_data_in_hdr *rsp = (struct iscsi_data_in_hdr *)&cmnd->pdu.bhs;
+ u32 offset;
+
+ cmnd_set_sn(cmnd, (rsp->flags & ISCSI_FLG_FINAL) ? 1 : 0);
+ offset = rsp->buffer_offset;
+ rsp->buffer_offset = cpu_to_be32(offset);
+ __cmnd_send_pdu(conn, cmnd->tio, offset, cmnd->pdu.datasize);
+ break;
+ }
+ case ISCSI_OP_LOGOUT_RSP:
+ cmnd_set_sn(cmnd, 1);
+ break;
+ case ISCSI_OP_R2T:
+ cmnd_set_sn(cmnd, 0);
+ cmnd->pdu.bhs.sn = cpu_to_be32(conn->stat_sn);
+ break;
+ case ISCSI_OP_ASYNC_MSG:
+ cmnd_set_sn(cmnd, 1);
+ break;
+ case ISCSI_OP_REJECT:
+ cmnd_set_sn(cmnd, 1);
+ cmnd_send_pdu(conn, cmnd);
+ break;
+ default:
+ eprintk("unexpected cmnd op %x\n", cmnd_opcode(cmnd));
+ break;
+ }
+
+ iop->iov_len = 0;
+ // move this?
+ conn->write_size = (conn->write_size + 3) & -4;
+ iscsi_dump_pdu(&cmnd->pdu);
+}
+
+void cmnd_tx_end(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_conn *conn = cmnd->conn;
+
+ dprintk(D_GENERIC, "%p:%x\n", cmnd, cmnd_opcode(cmnd));
+ switch (cmnd_opcode(cmnd)) {
+ case ISCSI_OP_NOP_IN:
+ nop_in_tx_end(cmnd);
+ break;
+ case ISCSI_OP_SCSI_RSP:
+ case ISCSI_OP_SCSI_TASK_MGT_RSP:
+ case ISCSI_OP_TEXT_RSP:
+ case ISCSI_OP_R2T:
+ case ISCSI_OP_ASYNC_MSG:
+ case ISCSI_OP_REJECT:
+ case ISCSI_OP_SCSI_DATA_IN:
+ case ISCSI_OP_LOGOUT_RSP:
+ break;
+ default:
+ eprintk("unexpected cmnd op %x\n", cmnd_opcode(cmnd));
+ assert(0);
+ break;
+ }
+
+ if (cmnd_close(cmnd))
+ conn_close(conn);
+
+ list_del_init(&cmnd->list);
+ set_cork(cmnd->conn->sock, 0);
+}
+
+/**
+ * Push the command for execution.
+ * This functions reorders the commands.
+ * Called from the read thread.
+ *
+ * iscsi_session_push_cmnd -
+ * @cmnd: ptr to command
+ */
+
+static void iscsi_session_push_cmnd(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_session *session = cmnd->conn->session;
+ struct list_head *entry;
+ u32 cmd_sn;
+
+ if (cmnd->r2t_length) {
+ if (!cmnd->is_unsolicited_data)
+ send_r2t(cmnd);
+ return;
+ }
+
+ dprintk(D_GENERIC, "%p:%x %u,%u\n",
+ cmnd, cmnd_opcode(cmnd), cmnd->pdu.bhs.sn, session->exp_cmd_sn);
+
+ if (cmnd_immediate(cmnd)) {
+ iscsi_cmnd_exec(cmnd);
+ return;
+ }
+
+ cmd_sn = cmnd->pdu.bhs.sn;
+ if (cmd_sn == session->exp_cmd_sn) {
+ while (1) {
+ session->exp_cmd_sn = ++cmd_sn;
+ iscsi_cmnd_exec(cmnd);
+
+ if (list_empty(&session->pending_list))
+ break;
+
+ cmnd = list_entry(session->pending_list.next, struct iscsi_cmnd, list);
+ if (cmnd->pdu.bhs.sn != cmd_sn)
+ break;
+
+ list_del_init(&cmnd->list);
+ clear_cmnd_pending(cmnd);
+ }
+ } else {
+ set_cmnd_pending(cmnd);
+
+ list_for_each(entry, &session->pending_list) {
+ struct iscsi_cmnd *tmp = list_entry(entry, struct iscsi_cmnd, list);
+ if (before(cmd_sn, tmp->pdu.bhs.sn))
+ break;
+ }
+
+ assert(list_empty(&cmnd->list));
+
+ list_add_tail(&cmnd->list, entry);
+ }
+}
+
+static int check_segment_length(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_conn *conn = cmnd->conn;
+ struct iscsi_sess_param *param = &conn->session->param;
+
+ if (cmnd->pdu.datasize > param->max_recv_data_length) {
+ eprintk("data too long %x %u %u\n", cmnd_itt(cmnd),
+ cmnd->pdu.datasize, param->max_recv_data_length);
+
+ if (get_pgcnt(cmnd->pdu.datasize, 0) > ISCSI_CONN_IOV_MAX) {
+ conn_close(conn);
+ return -EINVAL;
+ }
+ }
+
+ return 0;
+}
+
+void cmnd_rx_start(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_conn *conn = cmnd->conn;
+ int err = 0;
+
+ iscsi_dump_pdu(&cmnd->pdu);
+
+ set_cmnd_rxstart(cmnd);
+ if (check_segment_length(cmnd) < 0)
+ return;
+
+ switch (cmnd_opcode(cmnd)) {
+ case ISCSI_OP_NOP_OUT:
+ err = nop_out_start(conn, cmnd);
+ break;
+ case ISCSI_OP_SCSI_CMD:
+ if (!(err = cmnd_insert_hash(cmnd)))
+ scsi_cmnd_start(conn, cmnd);
+ break;
+ case ISCSI_OP_SCSI_TASK_MGT_MSG:
+ err = cmnd_insert_hash(cmnd);
+ break;
+ case ISCSI_OP_SCSI_DATA_OUT:
+ data_out_start(conn, cmnd);
+ break;
+ case ISCSI_OP_LOGOUT_CMD:
+ err = cmnd_insert_hash(cmnd);
+ break;
+ case ISCSI_OP_TEXT_CMD:
+ case ISCSI_OP_SNACK_CMD:
+ err = -ISCSI_REASON_UNSUPPORTED_COMMAND;
+ break;
+ default:
+ err = -ISCSI_REASON_UNSUPPORTED_COMMAND;
+ break;
+ }
+
+ if (err < 0) {
+ eprintk("%x %x %d\n", cmnd_opcode(cmnd), cmnd_itt(cmnd), err);
+ iscsi_cmnd_reject(cmnd, -err);
+ }
+}
+
+void cmnd_rx_end(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_conn *conn = cmnd->conn;
+
+ if (cmnd_tmfabort(cmnd)) {
+ cmnd_release(cmnd, 1);
+ return;
+ }
+
+ dprintk(D_GENERIC, "%p:%x\n", cmnd, cmnd_opcode(cmnd));
+ switch (cmnd_opcode(cmnd)) {
+ case ISCSI_OP_SCSI_REJECT:
+ case ISCSI_OP_NOP_OUT:
+ case ISCSI_OP_SCSI_CMD:
+ case ISCSI_OP_SCSI_TASK_MGT_MSG:
+ case ISCSI_OP_TEXT_CMD:
+ case ISCSI_OP_LOGOUT_CMD:
+ iscsi_session_push_cmnd(cmnd);
+ break;
+ case ISCSI_OP_SCSI_DATA_OUT:
+ data_out_end(conn, cmnd);
+ break;
+ case ISCSI_OP_SNACK_CMD:
+ break;
+ case ISCSI_OP_PDU_REJECT:
+ iscsi_cmnd_init_write(get_rsp_cmnd(cmnd));
+ break;
+ case ISCSI_OP_DATA_REJECT:
+ cmnd_release(cmnd, 0);
+ break;
+ default:
+ eprintk("unexpected cmnd op %x\n", cmnd_opcode(cmnd));
+ BUG();
+ break;
+ }
+}
+
+static void iscsi_exit(void)
+{
+ wthread_module_exit();
+
+ unregister_chrdev(ctr_major, ctr_name);
+
+ iet_procfs_exit();
+
+ event_exit();
+
+ tio_exit();
+
+ iotype_exit();
+
+ ua_exit();
+
+ if (iscsi_cmnd_cache)
+ kmem_cache_destroy(iscsi_cmnd_cache);
+}
+
+static int iscsi_init(void)
+{
+ int err = -ENOMEM;
+
+ printk("iSCSI Enterprise Target Software - version %s\n", IET_VERSION_STRING);
+
+ if ((ctr_major = register_chrdev(0, ctr_name, &ctr_fops)) < 0) {
+ eprintk("failed to register the control device %d\n", ctr_major);
+ return ctr_major;
+ }
+
+ if ((err = iet_procfs_init()) < 0)
+ goto err;
+
+ if ((err = event_init()) < 0)
+ goto err;
+
+ iscsi_cmnd_cache = KMEM_CACHE(iscsi_cmnd, 0);
+ if (!iscsi_cmnd_cache)
+ goto err;
+
+ err = ua_init();
+ if (err < 0)
+ goto err;
+
+ if ((err = tio_init()) < 0)
+ goto err;
+
+ if ((err = iotype_init()) < 0)
+ goto err;
+
+ if ((err = wthread_module_init()) < 0)
+ goto err;
+
+ return 0;
+
+err:
+ iscsi_exit();
+ return err;
+}
+
+module_param(worker_thread_pool_size, ulong, S_IRUGO);
+MODULE_PARM_DESC(worker_thread_pool_size,
+ "Size of the worker thread pool "
+ "(0 = dedicated threads per target (default))");
+
+module_param(debug_enable_flags, ulong, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug_enable_flags,
+ "debug bitmask, low bits (0 ... 8) used, see iscsi_dbg.h");
+
+module_init(iscsi_init);
+module_exit(iscsi_exit);
+
+MODULE_VERSION(IET_VERSION_STRING);
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("iSCSI Enterprise Target");
+MODULE_AUTHOR("IET development team <iscsitarget-devel@lists.sourceforge.net>");
diff --git a/ubuntu/iscsitarget/iscsi.h b/ubuntu/iscsitarget/iscsi.h
new file mode 100644
index 00000000000..e9d37a4751e
--- /dev/null
+++ b/ubuntu/iscsitarget/iscsi.h
@@ -0,0 +1,523 @@
+/*
+ * Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
+ * Copyright (C) 2008 Arne Redlich <agr@powerkom-dd.de>
+ *
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#ifndef __ISCSI_H__
+#define __ISCSI_H__
+
+#include <linux/blkdev.h>
+#include <linux/completion.h>
+#include <linux/pagemap.h>
+#include <linux/seq_file.h>
+#include <linux/mm.h>
+#include <linux/crypto.h>
+#include <linux/scatterlist.h>
+#include <net/sock.h>
+
+#include "iscsi_hdr.h"
+#include "iet_u.h"
+
+#define IET_SENSE_BUF_SIZE 18
+
+struct iscsi_sess_param {
+ int initial_r2t;
+ int immediate_data;
+ int max_connections;
+ int max_recv_data_length;
+ int max_xmit_data_length;
+ int max_burst_length;
+ int first_burst_length;
+ int default_wait_time;
+ int default_retain_time;
+ int max_outstanding_r2t;
+ int data_pdu_inorder;
+ int data_sequence_inorder;
+ int error_recovery_level;
+ int header_digest;
+ int data_digest;
+ int ofmarker;
+ int ifmarker;
+ int ofmarkint;
+ int ifmarkint;
+};
+
+struct iscsi_trgt_param {
+ int wthreads;
+ int target_type;
+ int queued_cmnds;
+ int nop_interval;
+ int nop_timeout;
+};
+
+struct tio {
+ u32 pg_cnt;
+
+ pgoff_t idx;
+ u32 offset;
+ u32 size;
+
+ struct page **pvec;
+
+ atomic_t count;
+};
+
+struct network_thread_info {
+ struct task_struct *task;
+ unsigned long flags;
+ struct list_head active_conns;
+
+ spinlock_t nthread_lock;
+
+ void (*old_state_change)(struct sock *);
+ void (*old_data_ready)(struct sock *, int);
+ void (*old_write_space)(struct sock *);
+};
+
+struct worker_thread_info;
+
+struct worker_thread {
+ struct task_struct *w_task;
+ struct list_head w_list;
+ struct worker_thread_info *w_info;
+};
+
+struct worker_thread_info {
+ spinlock_t wthread_lock;
+
+ u32 nr_running_wthreads;
+
+ struct list_head wthread_list;
+ struct list_head work_queue;
+
+ wait_queue_head_t wthread_sleep;
+
+ struct io_context *wthread_ioc;
+};
+
+struct iscsi_cmnd;
+
+struct target_type {
+ int id;
+ int (*execute_cmnd) (struct iscsi_cmnd *);
+};
+
+enum iscsi_device_state {
+ IDEV_RUNNING,
+ IDEV_DEL,
+};
+
+struct iscsi_target {
+ struct list_head t_list;
+ u32 tid;
+
+ char name[ISCSI_NAME_LEN];
+
+ struct iscsi_sess_param sess_param;
+ struct iscsi_trgt_param trgt_param;
+
+ atomic_t nr_volumes;
+ struct list_head volumes;
+ struct list_head session_list;
+
+ /* Prevents races between add/del session and adding UAs */
+ spinlock_t session_list_lock;
+
+ struct network_thread_info nthread_info;
+ /* Points either to own list or global pool */
+ struct worker_thread_info * wthread_info;
+
+ struct semaphore target_sem;
+};
+
+struct iscsi_queue {
+ spinlock_t queue_lock;
+ struct iscsi_cmnd *ordered_cmnd;
+ struct list_head wait_list;
+ int active_cnt;
+};
+
+struct iet_volume {
+ u32 lun;
+
+ enum iscsi_device_state l_state;
+ atomic_t l_count;
+
+ struct iscsi_target *target;
+ struct list_head list;
+
+ struct iscsi_queue queue;
+
+ u8 scsi_id[SCSI_ID_LEN];
+ u8 scsi_sn[SCSI_SN_LEN + 1];
+
+ u32 blk_shift;
+ u64 blk_cnt;
+
+ u64 reserve_sid;
+ spinlock_t reserve_lock;
+
+ unsigned long flags;
+
+ struct iotype *iotype;
+ void *private;
+};
+
+enum lu_flags {
+ LU_READONLY,
+ LU_WCACHE,
+ LU_RCACHE,
+};
+
+#define LUReadonly(lu) test_bit(LU_READONLY, &(lu)->flags)
+#define SetLUReadonly(lu) set_bit(LU_READONLY, &(lu)->flags)
+
+#define LUWCache(lu) test_bit(LU_WCACHE, &(lu)->flags)
+#define SetLUWCache(lu) set_bit(LU_WCACHE, &(lu)->flags)
+#define ClearLUWCache(lu) clear_bit(LU_WCACHE, &(lu)->flags)
+
+#define LURCache(lu) test_bit(LU_RCACHE, &(lu)->flags)
+#define SetLURCache(lu) set_bit(LU_RCACHE, &(lu)->flags)
+#define ClearLURCache(lu) clear_bit(LU_RCACHE, &(lu)->flags)
+
+#define IET_HASH_ORDER 8
+#define cmnd_hashfn(itt) hash_long((itt), IET_HASH_ORDER)
+
+#define UA_HASH_LEN 8
+
+struct iscsi_session {
+ struct list_head list;
+ struct iscsi_target *target;
+ struct completion *done;
+ char *initiator;
+ u64 sid;
+
+ u32 exp_cmd_sn;
+ u32 max_cmd_sn;
+
+ struct iscsi_sess_param param;
+ u32 max_queued_cmnds;
+
+ struct list_head conn_list;
+
+ struct list_head pending_list;
+
+ spinlock_t cmnd_hash_lock;
+ struct list_head cmnd_hash[1 << IET_HASH_ORDER];
+
+ spinlock_t ua_hash_lock;
+ struct list_head ua_hash[UA_HASH_LEN];
+
+ u32 next_ttt;
+};
+
+enum connection_state_bit {
+ CONN_ACTIVE,
+ CONN_CLOSING,
+ CONN_WSPACE_WAIT,
+ CONN_NEED_NOP_IN,
+};
+
+#define ISCSI_CONN_IOV_MAX (((256 << 10) >> PAGE_SHIFT) + 1)
+
+struct iscsi_conn {
+ struct list_head list; /* list entry in session list */
+ struct iscsi_session *session; /* owning session */
+
+ u16 cid;
+ unsigned long state;
+
+ u32 stat_sn;
+ u32 exp_stat_sn;
+
+ int hdigest_type;
+ int ddigest_type;
+
+ struct list_head poll_list;
+
+ struct file *file;
+ struct socket *sock;
+ spinlock_t list_lock;
+ atomic_t nr_cmnds;
+ atomic_t nr_busy_cmnds;
+ struct list_head pdu_list; /* in/outcoming pdus */
+ struct list_head write_list; /* list of data pdus to be sent */
+ struct timer_list nop_timer;
+
+ struct iscsi_cmnd *read_cmnd;
+ struct msghdr read_msg;
+ struct iovec read_iov[ISCSI_CONN_IOV_MAX];
+ u32 read_size;
+ u32 read_overflow;
+ int read_state;
+
+ struct iscsi_cmnd *write_cmnd;
+ struct iovec write_iov[ISCSI_CONN_IOV_MAX];
+ struct iovec *write_iop;
+ struct tio *write_tcmnd;
+ u32 write_size;
+ u32 write_offset;
+ int write_state;
+
+ struct hash_desc rx_hash;
+ struct hash_desc tx_hash;
+ struct scatterlist hash_sg[ISCSI_CONN_IOV_MAX];
+};
+
+struct iscsi_pdu {
+ struct iscsi_hdr bhs;
+ void *ahs;
+ unsigned int ahssize;
+ unsigned int datasize;
+};
+
+typedef void (iet_show_info_t)(struct seq_file *seq, struct iscsi_target *target);
+
+struct iscsi_cmnd {
+ struct list_head list;
+ struct list_head conn_list;
+ unsigned long flags;
+ struct iscsi_conn *conn;
+ struct iet_volume *lun;
+
+ struct iscsi_pdu pdu;
+ struct list_head pdu_list;
+
+ struct list_head hash_list;
+
+ struct tio *tio;
+
+ u8 status;
+
+ struct timer_list timer;
+
+ u32 r2t_sn;
+ u32 r2t_length;
+ u32 is_unsolicited_data;
+ u32 target_task_tag;
+ u32 outstanding_r2t;
+
+ u32 hdigest;
+ u32 ddigest;
+
+ struct iscsi_cmnd *req;
+
+ unsigned char sense_buf[IET_SENSE_BUF_SIZE];
+};
+
+struct ua_entry {
+ struct list_head entry;
+ struct iscsi_session *session; /* only used for debugging ATM */
+ u32 lun;
+ u8 asc;
+ u8 ascq;
+};
+
+#define ISCSI_OP_SCSI_REJECT ISCSI_OP_VENDOR1_CMD
+#define ISCSI_OP_PDU_REJECT ISCSI_OP_VENDOR2_CMD
+#define ISCSI_OP_DATA_REJECT ISCSI_OP_VENDOR3_CMD
+#define ISCSI_OP_SCSI_ABORT ISCSI_OP_VENDOR4_CMD
+
+/* iscsi.c */
+extern unsigned long worker_thread_pool_size;
+extern struct iscsi_cmnd *cmnd_alloc(struct iscsi_conn *, int);
+extern void cmnd_rx_start(struct iscsi_cmnd *);
+extern void cmnd_rx_end(struct iscsi_cmnd *);
+extern void cmnd_tx_start(struct iscsi_cmnd *);
+extern void cmnd_tx_end(struct iscsi_cmnd *);
+extern void cmnd_release(struct iscsi_cmnd *, int);
+extern void send_data_rsp(struct iscsi_cmnd *, void (*)(struct iscsi_cmnd *));
+extern void send_scsi_rsp(struct iscsi_cmnd *, void (*)(struct iscsi_cmnd *));
+extern void iscsi_cmnd_set_sense(struct iscsi_cmnd *, u8 sense_key, u8 asc,
+ u8 ascq);
+extern void send_nop_in(struct iscsi_conn *);
+
+/* conn.c */
+extern struct iscsi_conn *conn_lookup(struct iscsi_session *, u16);
+extern int conn_add(struct iscsi_session *, struct conn_info *);
+extern int conn_del(struct iscsi_session *, struct conn_info *);
+extern int conn_free(struct iscsi_conn *);
+extern void conn_close(struct iscsi_conn *);
+extern void conn_info_show(struct seq_file *, struct iscsi_session *);
+
+/* nthread.c */
+extern int nthread_init(struct iscsi_target *);
+extern int nthread_start(struct iscsi_target *);
+extern int nthread_stop(struct iscsi_target *);
+extern void __nthread_wakeup(struct network_thread_info *);
+extern void nthread_wakeup(struct iscsi_target *);
+
+/* wthread.c */
+extern int wthread_init(struct worker_thread_info *info);
+extern int wthread_start(struct worker_thread_info *info, int wthreads, u32 tid);
+extern int wthread_stop(struct worker_thread_info *info);
+extern void wthread_queue(struct iscsi_cmnd *);
+extern struct target_type *target_type_array[];
+extern int wthread_module_init(void);
+extern void wthread_module_exit(void);
+extern struct worker_thread_info *worker_thread_pool;
+
+/* target.c */
+extern int target_lock(struct iscsi_target *, int);
+extern void target_unlock(struct iscsi_target *);
+struct iscsi_target *target_lookup_by_id(u32);
+extern int target_add(struct target_info *);
+extern int target_del(u32 id);
+extern void target_del_all(void);
+extern struct seq_operations iet_seq_op;
+
+/* config.c */
+extern int iet_procfs_init(void);
+extern void iet_procfs_exit(void);
+extern int iet_info_show(struct seq_file *, iet_show_info_t *);
+
+/* session.c */
+extern struct file_operations session_seq_fops;
+extern struct iscsi_session *session_lookup(struct iscsi_target *, u64);
+extern int session_add(struct iscsi_target *, struct session_info *);
+extern int session_del(struct iscsi_target *, u64);
+
+/* volume.c */
+extern struct file_operations volume_seq_fops;
+extern int volume_add(struct iscsi_target *, struct volume_info *);
+extern int iscsi_volume_del(struct iscsi_target *, struct volume_info *);
+extern void iscsi_volume_destroy(struct iet_volume *);
+extern struct iet_volume *volume_lookup(struct iscsi_target *, u32);
+extern struct iet_volume *volume_get(struct iscsi_target *, u32);
+extern void volume_put(struct iet_volume *);
+extern int volume_reserve(struct iet_volume *volume, u64 sid);
+extern int volume_release(struct iet_volume *volume, u64 sid, int force);
+extern int is_volume_reserved(struct iet_volume *volume, u64 sid);
+
+/* tio.c */
+extern int tio_init(void);
+extern void tio_exit(void);
+extern struct tio *tio_alloc(int);
+extern void tio_get(struct tio *);
+extern void tio_put(struct tio *);
+extern void tio_set(struct tio *, u32, loff_t);
+extern int tio_read(struct iet_volume *, struct tio *);
+extern int tio_write(struct iet_volume *, struct tio *);
+extern int tio_sync(struct iet_volume *, struct tio *);
+
+/* iotype.c */
+extern struct iotype *get_iotype(const char *name);
+extern void put_iotype(struct iotype *iot);
+
+/* params.c */
+extern int iscsi_param_set(struct iscsi_target *, struct iscsi_param_info *, int);
+
+/* target_disk.c */
+extern struct target_type disk_ops;
+
+/* event.c */
+extern int event_send(u32, u64, u32, u32, int);
+extern int event_init(void);
+extern void event_exit(void);
+
+/* ua.c */
+int ua_init(void);
+void ua_exit(void);
+struct ua_entry * ua_get_first(struct iscsi_session *, u32 lun);
+struct ua_entry * ua_get_match(struct iscsi_session *, u32 lun, u8 asc,
+ u8 ascq);
+void ua_free(struct ua_entry *);
+int ua_pending(struct iscsi_session *, u32 lun);
+void ua_establish_for_session(struct iscsi_session *, u32 lun, u8 asc,
+ u8 ascq);
+void ua_establish_for_other_sessions(struct iscsi_session *, u32 lun, u8 asc,
+ u8 ascq);
+void ua_establish_for_all_sessions(struct iscsi_target *, u32 lun, u8 asc,
+ u8 ascq);
+
+#define get_pgcnt(size, offset) ((((size) + ((offset) & ~PAGE_CACHE_MASK)) + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT)
+
+static inline void iscsi_cmnd_get_length(struct iscsi_pdu *pdu)
+{
+#if defined(__BIG_ENDIAN)
+ pdu->ahssize = pdu->bhs.length.ahslength * 4;
+ pdu->datasize = pdu->bhs.length.datalength;
+#elif defined(__LITTLE_ENDIAN)
+ pdu->ahssize = (pdu->bhs.length & 0xff) * 4;
+ pdu->datasize = be32_to_cpu(pdu->bhs.length & ~0xff);
+#else
+#error
+#endif
+}
+
+static inline void iscsi_cmnd_set_length(struct iscsi_pdu *pdu)
+{
+#if defined(__BIG_ENDIAN)
+ pdu->bhs.length.ahslength = pdu->ahssize / 4;
+ pdu->bhs.length.datalength = pdu->datasize;
+#elif defined(__LITTLE_ENDIAN)
+ pdu->bhs.length = cpu_to_be32(pdu->datasize) | (pdu->ahssize / 4);
+#else
+#error
+#endif
+}
+
+#define cmnd_hdr(cmnd) ((struct iscsi_scsi_cmd_hdr *) (&((cmnd)->pdu.bhs)))
+#define cmnd_ttt(cmnd) cpu_to_be32((cmnd)->pdu.bhs.ttt)
+#define cmnd_itt(cmnd) cpu_to_be32((cmnd)->pdu.bhs.itt)
+#define cmnd_opcode(cmnd) ((cmnd)->pdu.bhs.opcode & ISCSI_OPCODE_MASK)
+#define cmnd_scsicode(cmnd) cmnd_hdr(cmnd)->scb[0]
+#define cmnd_immediate(cmnd) ((cmnd)->pdu.bhs.opcode & ISCSI_OP_IMMEDIATE)
+
+/* default and maximum scsi level block sizes */
+#define IET_DEF_BLOCK_SIZE 512
+#define IET_MAX_BLOCK_SIZE 4096
+
+enum cmnd_flags {
+ CMND_hashed,
+ CMND_queued,
+ CMND_final,
+ CMND_waitio,
+ CMND_close,
+ CMND_lunit,
+ CMND_pending,
+ CMND_tmfabort,
+ CMND_rxstart,
+ CMND_timer_active,
+};
+
+#define set_cmnd_hashed(cmnd) set_bit(CMND_hashed, &(cmnd)->flags)
+#define cmnd_hashed(cmnd) test_bit(CMND_hashed, &(cmnd)->flags)
+
+#define set_cmnd_queued(cmnd) set_bit(CMND_queued, &(cmnd)->flags)
+#define cmnd_queued(cmnd) test_bit(CMND_queued, &(cmnd)->flags)
+
+#define set_cmnd_final(cmnd) set_bit(CMND_final, &(cmnd)->flags)
+#define cmnd_final(cmnd) test_bit(CMND_final, &(cmnd)->flags)
+
+#define set_cmnd_waitio(cmnd) set_bit(CMND_waitio, &(cmnd)->flags)
+#define cmnd_waitio(cmnd) test_bit(CMND_waitio, &(cmnd)->flags)
+
+#define set_cmnd_close(cmnd) set_bit(CMND_close, &(cmnd)->flags)
+#define cmnd_close(cmnd) test_bit(CMND_close, &(cmnd)->flags)
+
+#define set_cmnd_lunit(cmnd) set_bit(CMND_lunit, &(cmnd)->flags)
+#define cmnd_lunit(cmnd) test_bit(CMND_lunit, &(cmnd)->flags)
+
+#define set_cmnd_pending(cmnd) set_bit(CMND_pending, &(cmnd)->flags)
+#define clear_cmnd_pending(cmnd) clear_bit(CMND_pending, &(cmnd)->flags)
+#define cmnd_pending(cmnd) test_bit(CMND_pending, &(cmnd)->flags)
+
+#define set_cmnd_tmfabort(cmnd) set_bit(CMND_tmfabort, &(cmnd)->flags)
+#define cmnd_tmfabort(cmnd) test_bit(CMND_tmfabort, &(cmnd)->flags)
+
+#define set_cmnd_rxstart(cmnd) set_bit(CMND_rxstart, &(cmnd)->flags)
+#define cmnd_rxstart(cmnd) test_bit(CMND_rxstart, &(cmnd)->flags)
+
+#define set_cmnd_timer_active(cmnd) set_bit(CMND_timer_active, &(cmnd)->flags)
+#define clear_cmnd_timer_active(cmnd) \
+ clear_bit(CMND_timer_active, &(cmnd)->flags)
+#define cmnd_timer_active(cmnd) test_bit(CMND_timer_active, &(cmnd)->flags)
+
+#define VENDOR_ID "IET"
+#define PRODUCT_ID "VIRTUAL-DISK"
+#define PRODUCT_REV "0"
+
+#endif /* __ISCSI_H__ */
diff --git a/ubuntu/iscsitarget/iscsi_dbg.h b/ubuntu/iscsitarget/iscsi_dbg.h
new file mode 100644
index 00000000000..d8d59663bbd
--- /dev/null
+++ b/ubuntu/iscsitarget/iscsi_dbg.h
@@ -0,0 +1,137 @@
+#ifndef ISCSI_DBG_H
+#define ISCSI_DBG_H
+
+#define D_SETUP (1UL << 0)
+#define D_EXIT (1UL << 1)
+#define D_GENERIC (1UL << 2)
+#define D_READ (1UL << 3)
+#define D_WRITE (1UL << 4)
+#define D_IOD (1UL << 5)
+#define D_THREAD (1UL << 6)
+#define D_TASK_MGT (1UL << 7)
+#define D_IOMODE (1UL << 8)
+#define D_UAC (1UL << 9)
+
+#define D_DATA (D_READ | D_WRITE)
+
+extern unsigned long debug_enable_flags;
+
+#define PFX "iscsi_trgt: "
+
+#define dprintk(debug, fmt, args...) do { \
+ if ((debug) & debug_enable_flags) { \
+ printk(KERN_DEBUG PFX "%s(%d) " fmt, __FUNCTION__,\
+ __LINE__, args);\
+ } \
+} while (0)
+
+#define dprintk_ua(ua, sess, lun) \
+ dprintk(D_UAC, "sess %llu, lun %u: %p %x %x\n", \
+ (sess)->sid, lun, ua, \
+ (ua) ? (ua)->asc : 0, \
+ (ua) ? (ua)->ascq : 0)
+
+#define eprintk(fmt, args...) do { \
+ printk(KERN_ERR PFX "%s(%d) " fmt, __FUNCTION__, \
+ __LINE__, args);\
+} while (0)
+
+#define iprintk(X...) printk(KERN_INFO PFX X)
+
+#define assert(p) do { \
+ if (!(p)) { \
+ printk(KERN_CRIT PFX "BUG at %s:%d assert(%s)\n",\
+ __FILE__, __LINE__, #p); \
+ dump_stack(); \
+ BUG(); \
+ } \
+} while (0)
+
+#ifdef D_IOV
+static inline void iscsi_dump_iov(struct msghdr *msg)
+{
+ int i;
+ printk(PFX "%p, %d\n", msg->msg_iov, msg->msg_iovlen);
+ for (i = 0; i < min_t(size_t, msg->msg_iovlen, ISCSI_CONN_IOV_MAX); i++)
+ printk(PFX "%d: %p,%d\n", i, msg->msg_iov[i].iov_base,
+ msg->msg_iov[i].iov_len);
+}
+#else
+#define iscsi_dump_iov(x) do {} while (0)
+#endif
+
+#ifdef D_DUMP_PDU
+static void iscsi_dump_char(int ch)
+{
+ static unsigned char text[16];
+ static int i = 0;
+
+ if (ch < 0) {
+ while ((i % 16) != 0) {
+ printk(" ");
+ text[i] = ' ';
+ i++;
+ if ((i % 16) == 0)
+ printk(" | %.16s |\n", text);
+ else if ((i % 4) == 0)
+ printk(" |");
+ }
+ i = 0;
+ return;
+ }
+
+ text[i] = (ch < 0x20 || (ch >= 0x80 && ch <= 0xa0)) ? ' ' : ch;
+ printk(" %02x", ch);
+ i++;
+ if ((i % 16) == 0) {
+ printk(" | %.16s |\n", text);
+ i = 0;
+ } else if ((i % 4) == 0)
+ printk(" |");
+}
+
+static inline void iscsi_dump_pdu(struct iscsi_pdu *pdu)
+{
+ unsigned char *buf;
+ int i;
+
+ buf = (void *)&pdu->bhs;
+ printk(PFX "BHS: (%p,%d)\n", buf, sizeof(pdu->bhs));
+ for (i = 0; i < sizeof(pdu->bhs); i++)
+ iscsi_dump_char(*buf++);
+ iscsi_dump_char(-1);
+
+ buf = (void *)pdu->ahs;
+ printk(PFX "AHS: (%p,%d)\n", buf, pdu->ahssize);
+ for (i = 0; i < pdu->ahssize; i++)
+ iscsi_dump_char(*buf++);
+ iscsi_dump_char(-1);
+
+ printk(PFX "Data: (%d)\n", pdu->datasize);
+}
+
+#else
+#define iscsi_dump_pdu(x) do {} while (0)
+#endif
+
+#define show_param(param)\
+{\
+ dprintk(D_SETUP, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n",\
+ (param)->initial_r2t,\
+ (param)->immediate_data,\
+ (param)->max_connections,\
+ (param)->max_recv_data_length,\
+ (param)->max_xmit_data_length,\
+ (param)->max_burst_length,\
+ (param)->first_burst_length,\
+ (param)->default_wait_time,\
+ (param)->default_retain_time,\
+ (param)->max_outstanding_r2t,\
+ (param)->data_pdu_inorder,\
+ (param)->data_sequence_inorder,\
+ (param)->error_recovery_level,\
+ (param)->header_digest,\
+ (param)->data_digest);\
+}
+
+#endif
diff --git a/ubuntu/iscsitarget/iscsi_hdr.h b/ubuntu/iscsitarget/iscsi_hdr.h
new file mode 100644
index 00000000000..2cbcd4f5157
--- /dev/null
+++ b/ubuntu/iscsitarget/iscsi_hdr.h
@@ -0,0 +1,509 @@
+/*
+ * Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
+ *
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#ifndef __ISCSI_HDR_H__
+#define __ISCSI_HDR_H__
+
+#include <linux/types.h>
+#include <asm/byteorder.h>
+
+#define ISCSI_VERSION 0
+
+#ifndef __packed
+#define __packed __attribute__ ((packed))
+#endif
+
+struct iscsi_hdr {
+ u8 opcode; /* 0 */
+ u8 flags;
+ u8 spec1[2];
+#if defined(__BIG_ENDIAN_BITFIELD)
+ struct { /* 4 */
+ unsigned ahslength : 8;
+ unsigned datalength : 24;
+ } length;
+#elif defined(__LITTLE_ENDIAN_BITFIELD)
+ u32 length; /* 4 */
+#endif
+ u16 lun[4]; /* 8 */
+ u32 itt; /* 16 */
+ u32 ttt; /* 20 */
+ u32 sn; /* 24 */
+ u32 exp_sn; /* 28 */
+ u32 max_sn; /* 32 */
+ u32 spec3[3]; /* 36 */
+} __packed; /* 48 */
+
+/* Opcode encoding bits */
+#define ISCSI_OP_RETRY 0x80
+#define ISCSI_OP_IMMEDIATE 0x40
+#define ISCSI_OPCODE_MASK 0x3F
+
+/* Client to Server Message Opcode values */
+#define ISCSI_OP_NOP_OUT 0x00
+#define ISCSI_OP_SCSI_CMD 0x01
+#define ISCSI_OP_SCSI_TASK_MGT_MSG 0x02
+#define ISCSI_OP_LOGIN_CMD 0x03
+#define ISCSI_OP_TEXT_CMD 0x04
+#define ISCSI_OP_SCSI_DATA_OUT 0x05
+#define ISCSI_OP_LOGOUT_CMD 0x06
+#define ISCSI_OP_SNACK_CMD 0x10
+
+#define ISCSI_OP_VENDOR1_CMD 0x1c
+#define ISCSI_OP_VENDOR2_CMD 0x1d
+#define ISCSI_OP_VENDOR3_CMD 0x1e
+#define ISCSI_OP_VENDOR4_CMD 0x1f
+
+/* Server to Client Message Opcode values */
+#define ISCSI_OP_NOP_IN 0x20
+#define ISCSI_OP_SCSI_RSP 0x21
+#define ISCSI_OP_SCSI_TASK_MGT_RSP 0x22
+#define ISCSI_OP_LOGIN_RSP 0x23
+#define ISCSI_OP_TEXT_RSP 0x24
+#define ISCSI_OP_SCSI_DATA_IN 0x25
+#define ISCSI_OP_LOGOUT_RSP 0x26
+#define ISCSI_OP_R2T 0x31
+#define ISCSI_OP_ASYNC_MSG 0x32
+#define ISCSI_OP_REJECT 0x3f
+
+struct iscsi_ahs_hdr {
+ u16 ahslength;
+ u8 ahstype;
+} __packed;
+
+#define ISCSI_AHSTYPE_CDB 1
+#define ISCSI_AHSTYPE_RLENGTH 2
+
+union iscsi_sid {
+ struct {
+ u8 isid[6]; /* Initiator Session ID */
+ u16 tsih; /* Target Session ID */
+ } id;
+ u64 id64;
+} __packed;
+
+struct iscsi_scsi_cmd_hdr {
+ u8 opcode;
+ u8 flags;
+ u16 rsvd1;
+ u8 ahslength;
+ u8 datalength[3];
+ u16 lun[4];
+ u32 itt;
+ u32 data_length;
+ u32 cmd_sn;
+ u32 exp_stat_sn;
+ u8 scb[16];
+} __packed;
+
+#define ISCSI_CMD_FINAL 0x80
+#define ISCSI_CMD_READ 0x40
+#define ISCSI_CMD_WRITE 0x20
+#define ISCSI_CMD_ATTR_MASK 0x07
+#define ISCSI_CMD_UNTAGGED 0x00
+#define ISCSI_CMD_SIMPLE 0x01
+#define ISCSI_CMD_ORDERED 0x02
+#define ISCSI_CMD_HEAD_OF_QUEUE 0x03
+#define ISCSI_CMD_ACA 0x04
+
+struct iscsi_cdb_ahdr {
+ u16 ahslength;
+ u8 ahstype;
+ u8 reserved;
+ u8 cdb[0];
+} __packed;
+
+struct iscsi_rlength_ahdr {
+ u16 ahslength;
+ u8 ahstype;
+ u8 reserved;
+ u32 read_length;
+} __packed;
+
+struct iscsi_scsi_rsp_hdr {
+ u8 opcode;
+ u8 flags;
+ u8 response;
+ u8 cmd_status;
+ u8 ahslength;
+ u8 datalength[3];
+ u32 rsvd1[2];
+ u32 itt;
+ u32 snack;
+ u32 stat_sn;
+ u32 exp_cmd_sn;
+ u32 max_cmd_sn;
+ u32 exp_data_sn;
+ u32 bi_residual_count;
+ u32 residual_count;
+} __packed;
+
+#define ISCSI_FLG_RESIDUAL_UNDERFLOW 0x02
+#define ISCSI_FLG_RESIDUAL_OVERFLOW 0x04
+#define ISCSI_FLG_BIRESIDUAL_UNDERFLOW 0x08
+#define ISCSI_FLG_BIRESIDUAL_OVERFLOW 0x10
+
+#define ISCSI_RESPONSE_COMMAND_COMPLETED 0x00
+#define ISCSI_RESPONSE_TARGET_FAILURE 0x01
+
+struct iscsi_sense_data {
+ u16 length;
+ u8 data[0];
+} __packed;
+
+struct iscsi_task_mgt_hdr {
+ u8 opcode;
+ u8 function;
+ u16 rsvd1;
+ u8 ahslength;
+ u8 datalength[3];
+ u16 lun[4];
+ u32 itt;
+ u32 rtt;
+ u32 cmd_sn;
+ u32 exp_stat_sn;
+ u32 ref_cmd_sn;
+ u32 exp_data_sn;
+ u32 rsvd2[2];
+} __packed;
+
+#define ISCSI_FUNCTION_MASK 0x7f
+
+#define ISCSI_FUNCTION_ABORT_TASK 1
+#define ISCSI_FUNCTION_ABORT_TASK_SET 2
+#define ISCSI_FUNCTION_CLEAR_ACA 3
+#define ISCSI_FUNCTION_CLEAR_TASK_SET 4
+#define ISCSI_FUNCTION_LOGICAL_UNIT_RESET 5
+#define ISCSI_FUNCTION_TARGET_WARM_RESET 6
+#define ISCSI_FUNCTION_TARGET_COLD_RESET 7
+#define ISCSI_FUNCTION_TASK_REASSIGN 8
+
+struct iscsi_task_rsp_hdr {
+ u8 opcode;
+ u8 flags;
+ u8 response;
+ u8 rsvd1;
+ u8 ahslength;
+ u8 datalength[3];
+ u32 rsvd2[2];
+ u32 itt;
+ u32 rsvd3;
+ u32 stat_sn;
+ u32 exp_cmd_sn;
+ u32 max_cmd_sn;
+ u32 rsvd4[3];
+} __packed;
+
+#define ISCSI_RESPONSE_FUNCTION_COMPLETE 0
+#define ISCSI_RESPONSE_UNKNOWN_TASK 1
+#define ISCSI_RESPONSE_UNKNOWN_LUN 2
+#define ISCSI_RESPONSE_TASK_ALLEGIANT 3
+#define ISCSI_RESPONSE_FAILOVER_UNSUPPORTED 4
+#define ISCSI_RESPONSE_FUNCTION_UNSUPPORTED 5
+#define ISCSI_RESPONSE_NO_AUTHORIZATION 6
+#define ISCSI_RESPONSE_FUNCTION_REJECTED 255
+
+struct iscsi_data_out_hdr {
+ u8 opcode;
+ u8 flags;
+ u16 rsvd1;
+ u8 ahslength;
+ u8 datalength[3];
+ u16 lun[4];
+ u32 itt;
+ u32 ttt;
+ u32 rsvd2;
+ u32 exp_stat_sn;
+ u32 rsvd3;
+ u32 data_sn;
+ u32 buffer_offset;
+ u32 rsvd4;
+} __packed;
+
+struct iscsi_data_in_hdr {
+ u8 opcode;
+ u8 flags;
+ u8 rsvd1;
+ u8 cmd_status;
+ u8 ahslength;
+ u8 datalength[3];
+ u32 rsvd2[2];
+ u32 itt;
+ u32 ttt;
+ u32 stat_sn;
+ u32 exp_cmd_sn;
+ u32 max_cmd_sn;
+ u32 data_sn;
+ u32 buffer_offset;
+ u32 residual_count;
+} __packed;
+
+#define ISCSI_FLG_STATUS 0x01
+
+struct iscsi_r2t_hdr {
+ u8 opcode;
+ u8 flags;
+ u16 rsvd1;
+ u8 ahslength;
+ u8 datalength[3];
+ u16 lun[4];
+ u32 itt;
+ u32 ttt;
+ u32 stat_sn;
+ u32 exp_cmd_sn;
+ u32 max_cmd_sn;
+ u32 r2t_sn;
+ u32 buffer_offset;
+ u32 data_length;
+} __packed;
+
+struct iscsi_async_msg_hdr {
+ u8 opcode;
+ u8 flags;
+ u16 rsvd1;
+ u8 ahslength;
+ u8 datalength[3];
+ u16 lun[4];
+ u32 ffffffff;
+ u32 rsvd2;
+ u32 stat_sn;
+ u32 exp_cmd_sn;
+ u32 max_cmd_sn;
+ u8 async_event;
+ u8 async_vcode;
+ u16 param1;
+ u16 param2;
+ u16 param3;
+ u32 rsvd3;
+} __packed;
+
+#define ISCSI_ASYNC_SCSI 0
+#define ISCSI_ASYNC_LOGOUT 1
+#define ISCSI_ASYNC_DROP_CONNECTION 2
+#define ISCSI_ASYNC_DROP_SESSION 3
+#define ISCSI_ASYNC_PARAM_REQUEST 4
+#define ISCSI_ASYNC_VENDOR 255
+
+struct iscsi_text_req_hdr {
+ u8 opcode;
+ u8 flags;
+ u16 rsvd1;
+ u8 ahslength;
+ u8 datalength[3];
+ u32 rsvd2[2];
+ u32 itt;
+ u32 ttt;
+ u32 cmd_sn;
+ u32 exp_stat_sn;
+ u32 rsvd3[4];
+} __packed;
+
+struct iscsi_text_rsp_hdr {
+ u8 opcode;
+ u8 flags;
+ u16 rsvd1;
+ u8 ahslength;
+ u8 datalength[3];
+ u32 rsvd2[2];
+ u32 itt;
+ u32 ttt;
+ u32 stat_sn;
+ u32 exp_cmd_sn;
+ u32 max_cmd_sn;
+ u32 rsvd3[3];
+} __packed;
+
+struct iscsi_login_req_hdr {
+ u8 opcode;
+ u8 flags;
+ u8 max_version; /* Max. version supported */
+ u8 min_version; /* Min. version supported */
+ u8 ahslength;
+ u8 datalength[3];
+ union iscsi_sid sid;
+ u32 itt; /* Initiator Task Tag */
+ u16 cid; /* Connection ID */
+ u16 rsvd1;
+ u32 cmd_sn;
+ u32 exp_stat_sn;
+ u32 rsvd2[4];
+} __packed;
+
+struct iscsi_login_rsp_hdr {
+ u8 opcode;
+ u8 flags;
+ u8 max_version; /* Max. version supported */
+ u8 active_version; /* Active version */
+ u8 ahslength;
+ u8 datalength[3];
+ union iscsi_sid sid;
+ u32 itt; /* Initiator Task Tag */
+ u32 rsvd1;
+ u32 stat_sn;
+ u32 exp_cmd_sn;
+ u32 max_cmd_sn;
+ u8 status_class; /* see Login RSP ststus classes below */
+ u8 status_detail; /* see Login RSP Status details below */
+ u8 rsvd2[10];
+} __packed;
+
+#define ISCSI_FLG_FINAL 0x80
+#define ISCSI_FLG_TRANSIT 0x80
+#define ISCSI_FLG_CSG_SECURITY 0x00
+#define ISCSI_FLG_CSG_LOGIN 0x04
+#define ISCSI_FLG_CSG_FULL_FEATURE 0x0c
+#define ISCSI_FLG_CSG_MASK 0x0c
+#define ISCSI_FLG_NSG_SECURITY 0x00
+#define ISCSI_FLG_NSG_LOGIN 0x01
+#define ISCSI_FLG_NSG_FULL_FEATURE 0x03
+#define ISCSI_FLG_NSG_MASK 0x03
+
+/* Login Status response classes */
+#define ISCSI_STATUS_SUCCESS 0x00
+#define ISCSI_STATUS_REDIRECT 0x01
+#define ISCSI_STATUS_INITIATOR_ERR 0x02
+#define ISCSI_STATUS_TARGET_ERR 0x03
+
+/* Login Status response detail codes */
+/* Class-0 (Success) */
+#define ISCSI_STATUS_ACCEPT 0x00
+
+/* Class-1 (Redirection) */
+#define ISCSI_STATUS_TGT_MOVED_TEMP 0x01
+#define ISCSI_STATUS_TGT_MOVED_PERM 0x02
+
+/* Class-2 (Initiator Error) */
+#define ISCSI_STATUS_INIT_ERR 0x00
+#define ISCSI_STATUS_AUTH_FAILED 0x01
+#define ISCSI_STATUS_TGT_FORBIDDEN 0x02
+#define ISCSI_STATUS_TGT_NOT_FOUND 0x03
+#define ISCSI_STATUS_TGT_REMOVED 0x04
+#define ISCSI_STATUS_NO_VERSION 0x05
+#define ISCSI_STATUS_TOO_MANY_CONN 0x06
+#define ISCSI_STATUS_MISSING_FIELDS 0x07
+#define ISCSI_STATUS_CONN_ADD_FAILED 0x08
+#define ISCSI_STATUS_INV_SESSION_TYPE 0x09
+#define ISCSI_STATUS_SESSION_NOT_FOUND 0x0a
+#define ISCSI_STATUS_INV_REQ_TYPE 0x0b
+
+/* Class-3 (Target Error) */
+#define ISCSI_STATUS_TARGET_ERROR 0x00
+#define ISCSI_STATUS_SVC_UNAVAILABLE 0x01
+#define ISCSI_STATUS_NO_RESOURCES 0x02
+
+struct iscsi_logout_req_hdr {
+ u8 opcode;
+ u8 flags;
+ u16 rsvd1;
+ u8 ahslength;
+ u8 datalength[3];
+ u32 rsvd2[2];
+ u32 itt;
+ u16 cid;
+ u16 rsvd3;
+ u32 cmd_sn;
+ u32 exp_stat_sn;
+ u32 rsvd4[4];
+} __packed;
+
+struct iscsi_logout_rsp_hdr {
+ u8 opcode;
+ u8 flags;
+ u8 response;
+ u8 rsvd1;
+ u8 ahslength;
+ u8 datalength[3];
+ u32 rsvd2[2];
+ u32 itt;
+ u32 rsvd3;
+ u32 stat_sn;
+ u32 exp_cmd_sn;
+ u32 max_cmd_sn;
+ u32 rsvd4;
+ u16 time2wait;
+ u16 time2retain;
+ u32 rsvd5;
+} __packed;
+
+struct iscsi_snack_req_hdr {
+ u8 opcode;
+ u8 flags;
+ u16 rsvd1;
+ u8 ahslength;
+ u8 datalength[3];
+ u32 rsvd2[2];
+ u32 itt;
+ u32 ttt;
+ u32 rsvd3;
+ u32 exp_stat_sn;
+ u32 rsvd4[2];
+ u32 beg_run;
+ u32 run_length;
+} __packed;
+
+struct iscsi_reject_hdr {
+ u8 opcode;
+ u8 flags;
+ u8 reason;
+ u8 rsvd1;
+ u8 ahslength;
+ u8 datalength[3];
+ u32 rsvd2[2];
+ u32 ffffffff;
+ u32 rsvd3;
+ u32 stat_sn;
+ u32 exp_cmd_sn;
+ u32 max_cmd_sn;
+ u32 data_sn;
+ u32 rsvd4[2];
+} __packed;
+
+#define ISCSI_REASON_NO_FULL_FEATURE_PHASE 0x01
+#define ISCSI_REASON_DATA_DIGEST_ERROR 0x02
+#define ISCSI_REASON_DATA_SNACK_REJECT 0x03
+#define ISCSI_REASON_PROTOCOL_ERROR 0x04
+#define ISCSI_REASON_UNSUPPORTED_COMMAND 0x05
+#define ISCSI_REASON_IMMEDIATE_COMMAND_REJECT 0x06
+#define ISCSI_REASON_TASK_IN_PROGRESS 0x07
+#define ISCSI_REASON_INVALID_SNACK 0x08
+#define ISCSI_REASON_NO_BOOKMARK 0x09
+#define ISCSI_REASON_BOOKMARK_REJECT 0x0a
+#define ISCSI_REASON_NEGOTIATION_RESET 0x0b
+#define ISCSI_REASON_WAITING_LOGOUT 0x0c
+
+
+struct iscsi_nop_out_hdr {
+ u8 opcode;
+ u8 flags;
+ u16 rsvd1;
+ u8 ahslength;
+ u8 datalength[3];
+ u16 lun[4];
+ u32 itt;
+ u32 ttt;
+ u32 cmd_sn;
+ u32 exp_stat_sn;
+ u32 rsvd2[4];
+} __packed;
+
+struct iscsi_nop_in_hdr {
+ u8 opcode;
+ u8 flags;
+ u16 rsvd1;
+ u8 ahslength;
+ u8 datalength[3];
+ u16 lun[4];
+ u32 itt;
+ u32 ttt;
+ u32 stat_sn;
+ u32 exp_cmd_sn;
+ u32 max_cmd_sn;
+ u32 rsvd2[3];
+} __packed;
+
+#define ISCSI_RESERVED_TAG (0xffffffffU)
+
+#endif /* __ISCSI_HDR_H__ */
diff --git a/ubuntu/iscsitarget/nthread.c b/ubuntu/iscsitarget/nthread.c
new file mode 100644
index 00000000000..52cd69ac7f1
--- /dev/null
+++ b/ubuntu/iscsitarget/nthread.c
@@ -0,0 +1,790 @@
+/*
+ * Network thread.
+ * (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org>
+ * (C) 2008 Arne Redlich <agr@powerkom-dd.de>
+ *
+ * This code is licenced under the GPL.
+ */
+
+#include <linux/sched.h>
+#include <linux/file.h>
+#include <linux/kthread.h>
+#include <asm/ioctls.h>
+
+#include "iscsi.h"
+#include "iscsi_dbg.h"
+#include "digest.h"
+
+enum daemon_state_bit {
+ D_ACTIVE,
+ D_DATA_READY,
+};
+
+void __nthread_wakeup(struct network_thread_info *info)
+{
+ set_bit(D_DATA_READY, &info->flags);
+ wake_up_process(info->task);
+}
+
+void nthread_wakeup(struct iscsi_target *target)
+{
+ struct network_thread_info *info = &target->nthread_info;
+
+ spin_lock_bh(&info->nthread_lock);
+ __nthread_wakeup(info);
+ spin_unlock_bh(&info->nthread_lock);
+}
+
+static inline void iscsi_conn_init_read(struct iscsi_conn *conn, void *data, size_t len)
+{
+ len = (len + 3) & -4; // XXX ???
+ conn->read_iov[0].iov_base = data;
+ conn->read_iov[0].iov_len = len;
+ conn->read_msg.msg_iov = conn->read_iov;
+ conn->read_msg.msg_iovlen = 1;
+ conn->read_size = (len + 3) & -4;
+}
+
+static void iscsi_conn_read_ahs(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd)
+{
+ cmnd->pdu.ahs = kmalloc(cmnd->pdu.ahssize, __GFP_NOFAIL|GFP_KERNEL);
+ assert(cmnd->pdu.ahs);
+ iscsi_conn_init_read(conn, cmnd->pdu.ahs, cmnd->pdu.ahssize);
+}
+
+static struct iscsi_cmnd * iscsi_get_send_cmnd(struct iscsi_conn *conn)
+{
+ struct iscsi_cmnd *cmnd = NULL;
+
+ spin_lock(&conn->list_lock);
+ if (!list_empty(&conn->write_list)) {
+ cmnd = list_entry(conn->write_list.next, struct iscsi_cmnd, list);
+ list_del_init(&cmnd->list);
+ }
+ spin_unlock(&conn->list_lock);
+
+ return cmnd;
+}
+
+static int is_data_available(struct iscsi_conn *conn)
+{
+ int avail, res;
+ mm_segment_t oldfs;
+ struct socket *sock = conn->sock;
+
+ oldfs = get_fs();
+ set_fs(get_ds());
+ res = sock->ops->ioctl(sock, SIOCINQ, (unsigned long) &avail);
+ set_fs(oldfs);
+ return (res >= 0) ? avail : res;
+}
+
+static void forward_iov(struct msghdr *msg, int len)
+{
+ while (msg->msg_iov->iov_len <= len) {
+ len -= msg->msg_iov->iov_len;
+ msg->msg_iov++;
+ msg->msg_iovlen--;
+ }
+
+ msg->msg_iov->iov_base = (char *) msg->msg_iov->iov_base + len;
+ msg->msg_iov->iov_len -= len;
+}
+
+static int do_recv(struct iscsi_conn *conn, int state)
+{
+ mm_segment_t oldfs;
+ struct msghdr msg;
+ struct iovec iov[ISCSI_CONN_IOV_MAX];
+ int i, len, res;
+
+ if (!test_bit(CONN_ACTIVE, &conn->state)) {
+ res = -EIO;
+ goto out;
+ }
+
+ if (is_data_available(conn) <= 0) {
+ res = -EAGAIN;
+ goto out;
+ }
+
+ msg.msg_iov = iov;
+ msg.msg_iovlen = min_t(size_t, conn->read_msg.msg_iovlen, ISCSI_CONN_IOV_MAX);
+ for (i = 0, len = 0; i < msg.msg_iovlen; i++) {
+ iov[i] = conn->read_msg.msg_iov[i];
+ len += iov[i].iov_len;
+ }
+
+ oldfs = get_fs();
+ set_fs(get_ds());
+ res = sock_recvmsg(conn->sock, &msg, len, MSG_DONTWAIT | MSG_NOSIGNAL);
+ set_fs(oldfs);
+
+ if (res <= 0) {
+ switch (res) {
+ case -EAGAIN:
+ case -ERESTARTSYS:
+ break;
+ default:
+ eprintk("%d\n", res);
+ conn_close(conn);
+ break;
+ }
+ } else {
+ conn->read_size -= res;
+ if (conn->read_size)
+ forward_iov(&conn->read_msg, res);
+ else
+ conn->read_state = state;
+ }
+
+out:
+ dprintk(D_IOD, "%d\n", res);
+
+ return res;
+}
+
+enum rx_state {
+ RX_INIT_BHS, /* Must be zero. */
+ RX_BHS,
+
+ RX_INIT_AHS,
+ RX_AHS,
+
+ RX_INIT_HDIGEST,
+ RX_HDIGEST,
+ RX_CHECK_HDIGEST,
+
+ RX_INIT_DATA,
+ RX_DATA,
+
+ RX_INIT_DDIGEST,
+ RX_DDIGEST,
+ RX_CHECK_DDIGEST,
+
+ RX_END,
+};
+
+static void rx_ddigest(struct iscsi_conn *conn, int state)
+{
+ struct iscsi_cmnd *cmnd = conn->read_cmnd;
+ int res = digest_rx_data(cmnd);
+
+ if (!res)
+ conn->read_state = state;
+ else
+ conn_close(conn);
+}
+
+static void rx_hdigest(struct iscsi_conn *conn, int state)
+{
+ struct iscsi_cmnd *cmnd = conn->read_cmnd;
+ int res = digest_rx_header(cmnd);
+
+ if (!res)
+ conn->read_state = state;
+ else
+ conn_close(conn);
+}
+
+static struct iscsi_cmnd *create_cmnd(struct iscsi_conn *conn)
+{
+ struct iscsi_cmnd *cmnd;
+
+ cmnd = cmnd_alloc(conn, 1);
+ iscsi_conn_init_read(cmnd->conn, &cmnd->pdu.bhs, sizeof(cmnd->pdu.bhs));
+ conn->read_state = RX_BHS;
+
+ return cmnd;
+}
+
+static int recv(struct iscsi_conn *conn)
+{
+ struct iscsi_cmnd *cmnd = conn->read_cmnd;
+ int hdigest, ddigest, res = 1;
+
+ if (!test_bit(CONN_ACTIVE, &conn->state))
+ return -EIO;
+
+ hdigest = conn->hdigest_type & DIGEST_NONE ? 0 : 1;
+ ddigest = conn->ddigest_type & DIGEST_NONE ? 0 : 1;
+
+next_state:
+ switch (conn->read_state) {
+ case RX_INIT_BHS:
+ assert(!cmnd);
+ cmnd = conn->read_cmnd = create_cmnd(conn);
+ case RX_BHS:
+ res = do_recv(conn, RX_INIT_AHS);
+ if (res <= 0 || conn->read_state != RX_INIT_AHS)
+ break;
+ case RX_INIT_AHS:
+ iscsi_cmnd_get_length(&cmnd->pdu);
+ if (cmnd->pdu.ahssize) {
+ iscsi_conn_read_ahs(conn, cmnd);
+ conn->read_state = RX_AHS;
+ } else
+ conn->read_state = hdigest ? RX_INIT_HDIGEST : RX_INIT_DATA;
+
+ if (conn->read_state != RX_AHS)
+ break;
+ case RX_AHS:
+ res = do_recv(conn, hdigest ? RX_INIT_HDIGEST : RX_INIT_DATA);
+ if (res <= 0 || conn->read_state != RX_INIT_HDIGEST)
+ break;
+ case RX_INIT_HDIGEST:
+ iscsi_conn_init_read(conn, &cmnd->hdigest, sizeof(u32));
+ conn->read_state = RX_HDIGEST;
+ case RX_HDIGEST:
+ res = do_recv(conn, RX_CHECK_HDIGEST);
+ if (res <= 0 || conn->read_state != RX_CHECK_HDIGEST)
+ break;
+ case RX_CHECK_HDIGEST:
+ rx_hdigest(conn, RX_INIT_DATA);
+ if (conn->read_state != RX_INIT_DATA)
+ break;
+ case RX_INIT_DATA:
+ cmnd_rx_start(cmnd);
+ conn->read_state = cmnd->pdu.datasize ? RX_DATA : RX_END;
+ if (conn->read_state != RX_DATA)
+ break;
+ case RX_DATA:
+ res = do_recv(conn, ddigest ? RX_INIT_DDIGEST : RX_END);
+ if (res <= 0 || conn->read_state != RX_INIT_DDIGEST)
+ break;
+ case RX_INIT_DDIGEST:
+ iscsi_conn_init_read(conn, &cmnd->ddigest, sizeof(u32));
+ conn->read_state = RX_DDIGEST;
+ case RX_DDIGEST:
+ res = do_recv(conn, RX_CHECK_DDIGEST);
+ if (res <= 0 || conn->read_state != RX_CHECK_DDIGEST)
+ break;
+ case RX_CHECK_DDIGEST:
+ rx_ddigest(conn, RX_END);
+ break;
+ default:
+ eprintk("%d %d %x\n", res, conn->read_state, cmnd_opcode(cmnd));
+ assert(0);
+ }
+
+ if (res <= 0)
+ return res;
+
+ if (conn->read_state != RX_END)
+ goto next_state;
+
+ if (conn->read_size) {
+ eprintk("%d %x %d\n", res, cmnd_opcode(cmnd), conn->read_size);
+ assert(0);
+ }
+
+ cmnd_rx_end(cmnd);
+ if (conn->read_size) {
+ eprintk("%x %d\n", cmnd_opcode(cmnd), conn->read_size);
+ conn->read_state = RX_DATA;
+ return 1;
+ }
+
+ conn->read_cmnd = NULL;
+ conn->read_state = RX_INIT_BHS;
+
+ return 0;
+}
+
+/*
+ * @locking: grabs the target's nthread_lock to protect it from races with
+ * iet_write_space()
+ */
+static void set_conn_wspace_wait(struct iscsi_conn *conn)
+{
+ struct network_thread_info *info = &conn->session->target->nthread_info;
+ struct sock *sk = conn->sock->sk;
+
+ spin_lock_bh(&info->nthread_lock);
+
+ if (sk_stream_wspace(sk) < sk_stream_min_wspace(sk))
+ set_bit(CONN_WSPACE_WAIT, &conn->state);
+
+ spin_unlock_bh(&info->nthread_lock);
+}
+
+/* This is taken from the Ardis code. */
+static int write_data(struct iscsi_conn *conn)
+{
+ mm_segment_t oldfs;
+ struct file *file;
+ struct socket *sock;
+ ssize_t (*sendpage)(struct socket *, struct page *, int, size_t, int);
+ struct tio *tio;
+ struct iovec *iop;
+ int saved_size, size, sendsize;
+ int offset, idx;
+ int flags, res;
+
+ file = conn->file;
+ saved_size = size = conn->write_size;
+ iop = conn->write_iop;
+
+ if (iop) while (1) {
+ loff_t off = 0;
+ unsigned long count;
+ struct iovec *vec;
+ int rest;
+
+ vec = iop;
+ for (count = 0; vec->iov_len; count++, vec++)
+ ;
+ oldfs = get_fs();
+ set_fs(KERNEL_DS);
+ res = vfs_writev(file, (struct iovec __user *) iop, count, &off);
+ set_fs(oldfs);
+ dprintk(D_DATA, "%#Lx:%u: %d(%ld)\n",
+ (unsigned long long) conn->session->sid, conn->cid,
+ res, (long) iop->iov_len);
+ if (unlikely(res <= 0)) {
+ if (res == -EAGAIN || res == -EINTR) {
+ conn->write_iop = iop;
+ goto out_iov;
+ }
+ goto err;
+ }
+
+ rest = res;
+ size -= res;
+ while (iop->iov_len <= rest && rest) {
+ rest -= iop->iov_len;
+ iop++;
+ }
+ iop->iov_base += rest;
+ iop->iov_len -= rest;
+
+ if (!iop->iov_len) {
+ conn->write_iop = NULL;
+ if (size)
+ break;
+ goto out_iov;
+ }
+ }
+
+ if (!(tio = conn->write_tcmnd)) {
+ eprintk("%s\n", "warning data missing!");
+ return 0;
+ }
+ offset = conn->write_offset;
+ idx = offset >> PAGE_CACHE_SHIFT;
+ offset &= ~PAGE_CACHE_MASK;
+
+ sock = conn->sock;
+ sendpage = sock->ops->sendpage ? : sock_no_sendpage;
+ flags = MSG_DONTWAIT;
+
+ while (1) {
+ sendsize = PAGE_CACHE_SIZE - offset;
+ if (size <= sendsize) {
+ res = sendpage(sock, tio->pvec[idx], offset, size, flags);
+ dprintk(D_DATA, "%s %#Lx:%u: %d(%lu,%u,%u)\n",
+ sock->ops->sendpage ? "sendpage" : "writepage",
+ (unsigned long long ) conn->session->sid, conn->cid,
+ res, tio->pvec[idx]->index, offset, size);
+ if (unlikely(res <= 0)) {
+ if (res == -EAGAIN || res == -EINTR) {
+ goto out;
+ }
+ goto err;
+ }
+ if (res == size) {
+ conn->write_tcmnd = NULL;
+ conn->write_size = 0;
+ return saved_size;
+ }
+ offset += res;
+ size -= res;
+ continue;
+ }
+
+ res = sendpage(sock, tio->pvec[idx], offset,sendsize, flags | MSG_MORE);
+ dprintk(D_DATA, "%s %#Lx:%u: %d(%lu,%u,%u)\n",
+ sock->ops->sendpage ? "sendpage" : "writepage",
+ (unsigned long long ) conn->session->sid, conn->cid,
+ res, tio->pvec[idx]->index, offset, sendsize);
+ if (unlikely(res <= 0)) {
+ if (res == -EAGAIN || res == -EINTR) {
+ goto out;
+ }
+ goto err;
+ }
+ if (res == sendsize) {
+ idx++;
+ offset = 0;
+ } else
+ offset += res;
+ size -= res;
+ }
+ out:
+ conn->write_offset = (idx << PAGE_CACHE_SHIFT) + offset;
+ out_iov:
+ conn->write_size = size;
+ if (res == -EAGAIN) {
+ set_conn_wspace_wait(conn);
+ if (saved_size == size)
+ return res;
+ }
+
+ return saved_size - size;
+
+ err:
+ eprintk("error %d at %#Lx:%u\n", res,
+ (unsigned long long) conn->session->sid, conn->cid);
+ return res;
+}
+
+static void exit_tx(struct iscsi_conn *conn, int res)
+{
+ if (res > 0)
+ return;
+
+ switch (res) {
+ case -EAGAIN:
+ case -ERESTARTSYS:
+ break;
+ default:
+ eprintk("%d %d %d\n", conn->write_size, conn->write_state, res);
+ conn_close(conn);
+ break;
+ }
+}
+
+static int tx_ddigest(struct iscsi_cmnd *cmnd, int state)
+{
+ int res, rest = cmnd->conn->write_size;
+ struct msghdr msg = {.msg_flags = MSG_NOSIGNAL | MSG_DONTWAIT};
+ struct kvec iov;
+
+ iov.iov_base = (char *) (&cmnd->ddigest) + (sizeof(u32) - rest);
+ iov.iov_len = rest;
+
+ res = kernel_sendmsg(cmnd->conn->sock, &msg, &iov, 1, rest);
+
+ if (res > 0) {
+ cmnd->conn->write_size -= res;
+ if (!cmnd->conn->write_size)
+ cmnd->conn->write_state = state;
+ } else
+ exit_tx(cmnd->conn, res);
+
+ return res;
+}
+
+static void init_tx_hdigest(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_conn *conn = cmnd->conn;
+ struct iovec *iop;
+
+ if (conn->hdigest_type & DIGEST_NONE)
+ return;
+
+ digest_tx_header(cmnd);
+
+ for (iop = conn->write_iop; iop->iov_len; iop++)
+ ;
+ iop->iov_base = &(cmnd->hdigest);
+ iop->iov_len = sizeof(u32);
+ conn->write_size += sizeof(u32);
+ iop++;
+ iop->iov_len = 0;
+
+ return;
+}
+
+enum tx_state {
+ TX_INIT, /* Must be zero. */
+ TX_BHS_DATA,
+ TX_INIT_DDIGEST,
+ TX_DDIGEST,
+ TX_END,
+};
+
+static int do_send(struct iscsi_conn *conn, int state)
+{
+ int res;
+
+ res = write_data(conn);
+
+ if (res > 0) {
+ if (!conn->write_size)
+ conn->write_state = state;
+ } else
+ exit_tx(conn, res);
+
+ return res;
+}
+
+static int send(struct iscsi_conn *conn)
+{
+ struct iscsi_cmnd *cmnd = conn->write_cmnd;
+ int ddigest, res = 0;
+
+ ddigest = conn->ddigest_type != DIGEST_NONE ? 1 : 0;
+
+next_state:
+ switch (conn->write_state) {
+ case TX_INIT:
+ assert(!cmnd);
+ cmnd = conn->write_cmnd = iscsi_get_send_cmnd(conn);
+ if (!cmnd)
+ return 0;
+ cmnd_tx_start(cmnd);
+ init_tx_hdigest(cmnd);
+ conn->write_state = TX_BHS_DATA;
+ case TX_BHS_DATA:
+ res = do_send(conn, ddigest && cmnd->pdu.datasize ? TX_INIT_DDIGEST : TX_END);
+ if (res <= 0 || conn->write_state != TX_INIT_DDIGEST)
+ break;
+ case TX_INIT_DDIGEST:
+ digest_tx_data(cmnd);
+ assert(!cmnd->conn->write_size);
+ cmnd->conn->write_size += sizeof(u32);
+ conn->write_state = TX_DDIGEST;
+ case TX_DDIGEST:
+ res = tx_ddigest(cmnd, TX_END);
+ break;
+ default:
+ eprintk("%d %d %x\n", res, conn->write_state, cmnd_opcode(cmnd));
+ assert(0);
+ }
+
+ if (res <= 0)
+ return res;
+
+ if (conn->write_state != TX_END)
+ goto next_state;
+
+ if (conn->write_size) {
+ eprintk("%d %x %u\n", res, cmnd_opcode(cmnd), conn->write_size);
+ assert(!conn->write_size);
+ }
+ cmnd_tx_end(cmnd);
+ cmnd_release(cmnd, 0);
+ conn->write_cmnd = NULL;
+ conn->write_state = TX_INIT;
+
+ return 0;
+}
+
+static void conn_nop_timeout(unsigned long data)
+{
+ struct iscsi_conn *conn = (struct iscsi_conn *)data;
+
+ if (test_bit(CONN_ACTIVE, &conn->state))
+ set_bit(CONN_NEED_NOP_IN, &conn->state);
+
+ dprintk(D_THREAD, "conn %llu:%hu, NOP timer %p\n", conn->session->sid,
+ conn->cid, &conn->nop_timer);
+
+ nthread_wakeup(conn->session->target);
+}
+
+static void conn_reset_nop_timer(struct iscsi_conn *conn)
+{
+ struct iscsi_target *target = conn->session->target;
+
+ if (target->trgt_param.nop_interval)
+ mod_timer(&conn->nop_timer,
+ jiffies + HZ * target->trgt_param.nop_interval);
+}
+
+static void conn_start_nop_timer(struct iscsi_conn *conn)
+{
+ struct iscsi_target *target = conn->session->target;
+
+ if (!target->trgt_param.nop_interval || timer_pending(&conn->nop_timer))
+ return;
+
+ conn->nop_timer.data = (unsigned long)conn;
+ conn->nop_timer.function = conn_nop_timeout;
+
+ dprintk(D_THREAD, "conn %llu:%hu, NOP timer %p\n", conn->session->sid,
+ conn->cid, &conn->nop_timer);
+
+ mod_timer(&conn->nop_timer,
+ jiffies + HZ * target->trgt_param.nop_interval);
+}
+
+static void process_io(struct iscsi_conn *conn)
+{
+ struct iscsi_target *target = conn->session->target;
+ int res, wakeup = 0;
+
+ res = recv(conn);
+
+ if (is_data_available(conn) > 0 || res > 0) {
+ conn_reset_nop_timer(conn);
+ wakeup = 1;
+ }
+
+ if (!test_bit(CONN_ACTIVE, &conn->state)) {
+ wakeup = 1;
+ goto out;
+ }
+
+ if (test_bit(CONN_WSPACE_WAIT, &conn->state))
+ goto out;
+
+ res = send(conn);
+
+ if (!list_empty(&conn->write_list) || conn->write_cmnd) {
+ conn_reset_nop_timer(conn);
+ wakeup = 1;
+ }
+
+out:
+ if (wakeup)
+ nthread_wakeup(target);
+ else if (test_and_clear_bit(CONN_NEED_NOP_IN, &conn->state)) {
+ send_nop_in(conn);
+ nthread_wakeup(target);
+ } else
+ conn_start_nop_timer(conn);
+
+ return;
+}
+
+static void close_conn(struct iscsi_conn *conn)
+{
+ struct iscsi_session *session = conn->session;
+ struct iscsi_target *target = conn->session->target;
+ struct iscsi_cmnd *cmnd;
+
+ if (target->trgt_param.nop_interval)
+ del_timer_sync(&conn->nop_timer);
+
+ conn->sock->ops->shutdown(conn->sock, 2);
+
+ write_lock_bh(&conn->sock->sk->sk_callback_lock);
+ conn->sock->sk->sk_state_change = target->nthread_info.old_state_change;
+ conn->sock->sk->sk_data_ready = target->nthread_info.old_data_ready;
+ conn->sock->sk->sk_write_space = target->nthread_info.old_write_space;
+ write_unlock_bh(&conn->sock->sk->sk_callback_lock);
+
+ fput(conn->file);
+ conn->file = NULL;
+ conn->sock = NULL;
+
+ while (atomic_read(&conn->nr_busy_cmnds))
+ yield();
+
+ while (!list_empty(&conn->pdu_list)) {
+ cmnd = list_entry(conn->pdu_list.next, struct iscsi_cmnd, conn_list);
+
+ list_del_init(&cmnd->list);
+ cmnd_release(cmnd, 1);
+ }
+
+ if (atomic_read(&conn->nr_cmnds)) {
+ eprintk("%u\n", atomic_read(&conn->nr_cmnds));
+ list_for_each_entry(cmnd, &conn->pdu_list, conn_list)
+ eprintk("%x %x\n", cmnd_opcode(cmnd), cmnd_itt(cmnd));
+ assert(0);
+ }
+
+ event_send(target->tid, session->sid, conn->cid, E_CONN_CLOSE, 0);
+ conn_free(conn);
+
+ if (list_empty(&session->conn_list)) {
+ if (session->done)
+ complete(session->done);
+ else
+ session_del(target, session->sid);
+ }
+}
+
+static int istd(void *arg)
+{
+ struct iscsi_target *target = arg;
+ struct network_thread_info *info = &target->nthread_info;
+ struct iscsi_conn *conn, *tmp;
+
+ __set_current_state(TASK_RUNNING);
+ do {
+ spin_lock_bh(&info->nthread_lock);
+ __set_current_state(TASK_INTERRUPTIBLE);
+
+ if (!test_bit(D_DATA_READY, &info->flags)) {
+ spin_unlock_bh(&info->nthread_lock);
+ schedule();
+ spin_lock_bh(&info->nthread_lock);
+ }
+ __set_current_state(TASK_RUNNING);
+ clear_bit(D_DATA_READY, &info->flags);
+ spin_unlock_bh(&info->nthread_lock);
+
+ target_lock(target, 0);
+ list_for_each_entry_safe(conn, tmp, &info->active_conns, poll_list) {
+ if (test_bit(CONN_ACTIVE, &conn->state))
+ process_io(conn);
+ else
+ close_conn(conn);
+ }
+ target_unlock(target);
+
+ } while (!kthread_should_stop());
+
+ return 0;
+}
+
+int nthread_init(struct iscsi_target *target)
+{
+ struct network_thread_info *info = &target->nthread_info;
+
+ info->flags = 0;
+ info->task = NULL;
+
+ info->old_state_change = NULL;
+ info->old_data_ready = NULL;
+ info->old_write_space = NULL;
+
+ INIT_LIST_HEAD(&info->active_conns);
+
+ spin_lock_init(&info->nthread_lock);
+
+ return 0;
+}
+
+int nthread_start(struct iscsi_target *target)
+{
+ int err = 0;
+ struct network_thread_info *info = &target->nthread_info;
+ struct task_struct *task;
+
+ if (info->task) {
+ eprintk("Target (%u) already runs\n", target->tid);
+ return -EALREADY;
+ }
+
+ task = kthread_run(istd, target, "istd%d", target->tid);
+
+ if (IS_ERR(task))
+ err = PTR_ERR(task);
+ else
+ info->task = task;
+
+ return err;
+}
+
+int nthread_stop(struct iscsi_target *target)
+{
+ int err;
+ struct network_thread_info *info = &target->nthread_info;
+
+ if (!info->task)
+ return -ESRCH;
+
+ err = kthread_stop(info->task);
+
+ if (err < 0 && err != -EINTR)
+ return err;
+
+ info->task = NULL;
+
+ return 0;
+}
diff --git a/ubuntu/iscsitarget/null-io.c b/ubuntu/iscsitarget/null-io.c
new file mode 100644
index 00000000000..f64b18c9a85
--- /dev/null
+++ b/ubuntu/iscsitarget/null-io.c
@@ -0,0 +1,98 @@
+/*
+ * Target device null I/O.
+ * (C) 2005 MING Zhang <mingz@ele.uri.edu>
+ * This code is licenced under the GPL.
+ *
+ * The nullio mode will not return any meaningful or previous written
+ * data. It is only for performance measurement purpose.
+ */
+
+#include <linux/types.h>
+#include <linux/blkdev.h>
+#include <linux/parser.h>
+#include <linux/writeback.h>
+
+#include "iscsi.h"
+#include "iscsi_dbg.h"
+#include "iotype.h"
+
+enum {
+ opt_blk_cnt, opt_ignore, opt_err,
+};
+
+static match_table_t tokens = {
+ /* alias for compatibility with existing setups and documentation */
+ {opt_blk_cnt, "sectors=%u"},
+ /* but actually it is the scsi block count, now that we can
+ * specify the block size. */
+ {opt_blk_cnt, "blocks=%u"},
+ {opt_ignore, "scsiid=%s"},
+ {opt_ignore, "scsisn=%s"},
+ {opt_ignore, "blocksize=%s"},
+ {opt_ignore, "type=%s"},
+ {opt_err, NULL},
+};
+
+static int parse_nullio_params(struct iet_volume *volume, char *params)
+{
+ int err = 0;
+ char *p, *q;
+
+ while ((p = strsep(&params, ",")) != NULL) {
+ substring_t args[MAX_OPT_ARGS];
+ int token;
+ if (!*p)
+ continue;
+ iet_strtolower(p);
+ token = match_token(p, tokens, args);
+ switch (token) {
+ case opt_blk_cnt:
+ q = match_strdup(&args[0]);
+ if (!q)
+ return -ENOMEM;
+ volume->blk_cnt = simple_strtoull(q, NULL, 10);
+ kfree(q);
+ break;
+ case opt_ignore:
+ break;
+ default:
+ eprintk("Unknown %s\n", p);
+ return -EINVAL;
+ break;
+ }
+ }
+ return err;
+}
+
+static void nullio_detach(struct iet_volume *lu)
+{
+}
+
+static int nullio_attach(struct iet_volume *lu, char *args)
+{
+ int err = 0;
+
+ if ((err = parse_nullio_params(lu, args)) < 0) {
+ eprintk("%d\n", err);
+ goto out;
+ }
+
+ if (!lu->blk_shift)
+ lu->blk_shift = ilog2(IET_DEF_BLOCK_SIZE);
+
+ /* defaults to 64 GiB */
+ if (!lu->blk_cnt)
+ lu->blk_cnt = 1 << (36 - lu->blk_shift);
+
+out:
+ if (err < 0)
+ nullio_detach(lu);
+ return err;
+}
+
+struct iotype nullio =
+{
+ .name = "nullio",
+ .attach = nullio_attach,
+ .detach = nullio_detach,
+};
diff --git a/ubuntu/iscsitarget/param.c b/ubuntu/iscsitarget/param.c
new file mode 100644
index 00000000000..482d00cd367
--- /dev/null
+++ b/ubuntu/iscsitarget/param.c
@@ -0,0 +1,205 @@
+/*
+ * (C) 2005 FUJITA Tomonori <tomof@acm.org>
+ *
+ * This code is licenced under the GPL.
+ */
+
+#include "iscsi.h"
+#include "iscsi_dbg.h"
+#include "digest.h"
+
+struct target_type *target_type_array[] = {
+ &disk_ops,
+};
+
+#define CHECK_PARAM(info, iparam, word, min, max) \
+do { \
+ if (!info->partial || (info->partial & 1 << key_##word)) \
+ if (iparam[key_##word] < min || \
+ iparam[key_##word] > max) { \
+ eprintk("%s: %u is out of range (%u %u)\n", \
+ #word, iparam[key_##word], min, max); \
+ iparam[key_##word] = min; \
+ } \
+} while (0)
+
+#define SET_PARAM(param, info, iparam, word) \
+({ \
+ int changed = 0; \
+ if (!info->partial || (info->partial & 1 << key_##word)) { \
+ if (param->word != iparam[key_##word]) \
+ changed = 1; \
+ param->word = iparam[key_##word]; \
+ } \
+ changed; \
+})
+
+#define GET_PARAM(param, info, iparam, word) \
+do { \
+ iparam[key_##word] = param->word; \
+} while (0)
+
+static void sess_param_check(struct iscsi_param_info *info)
+{
+ u32 *iparam = info->session_param;
+
+ CHECK_PARAM(info, iparam, max_connections, 1, 65535);
+ CHECK_PARAM(info, iparam, max_recv_data_length, 512,
+ (u32) ((ISCSI_CONN_IOV_MAX - 1) * PAGE_CACHE_SIZE));
+ CHECK_PARAM(info, iparam, max_xmit_data_length, 512,
+ (u32) ((ISCSI_CONN_IOV_MAX - 1) * PAGE_CACHE_SIZE));
+ CHECK_PARAM(info, iparam, error_recovery_level, 0, 0);
+ CHECK_PARAM(info, iparam, data_pdu_inorder, 1, 1);
+ CHECK_PARAM(info, iparam, data_sequence_inorder, 1, 1);
+
+ digest_alg_available(&iparam[key_header_digest]);
+ digest_alg_available(&iparam[key_data_digest]);
+
+ CHECK_PARAM(info, iparam, ofmarker, 0, 0);
+ CHECK_PARAM(info, iparam, ifmarker, 0, 0);
+}
+
+static void sess_param_set(struct iscsi_sess_param *param, struct iscsi_param_info *info)
+{
+ u32 *iparam = info->session_param;
+
+ SET_PARAM(param, info, iparam, initial_r2t);
+ SET_PARAM(param, info, iparam, immediate_data);
+ SET_PARAM(param, info, iparam, max_connections);
+ SET_PARAM(param, info, iparam, max_recv_data_length);
+ SET_PARAM(param, info, iparam, max_xmit_data_length);
+ SET_PARAM(param, info, iparam, max_burst_length);
+ SET_PARAM(param, info, iparam, first_burst_length);
+ SET_PARAM(param, info, iparam, default_wait_time);
+ SET_PARAM(param, info, iparam, default_retain_time);
+ SET_PARAM(param, info, iparam, max_outstanding_r2t);
+ SET_PARAM(param, info, iparam, data_pdu_inorder);
+ SET_PARAM(param, info, iparam, data_sequence_inorder);
+ SET_PARAM(param, info, iparam, error_recovery_level);
+ SET_PARAM(param, info, iparam, header_digest);
+ SET_PARAM(param, info, iparam, data_digest);
+ SET_PARAM(param, info, iparam, ofmarker);
+ SET_PARAM(param, info, iparam, ifmarker);
+ SET_PARAM(param, info, iparam, ofmarkint);
+ SET_PARAM(param, info, iparam, ifmarkint);
+}
+
+static void sess_param_get(struct iscsi_sess_param *param, struct iscsi_param_info *info)
+{
+ u32 *iparam = info->session_param;
+
+ GET_PARAM(param, info, iparam, initial_r2t);
+ GET_PARAM(param, info, iparam, immediate_data);
+ GET_PARAM(param, info, iparam, max_connections);
+ GET_PARAM(param, info, iparam, max_recv_data_length);
+ GET_PARAM(param, info, iparam, max_xmit_data_length);
+ GET_PARAM(param, info, iparam, max_burst_length);
+ GET_PARAM(param, info, iparam, first_burst_length);
+ GET_PARAM(param, info, iparam, default_wait_time);
+ GET_PARAM(param, info, iparam, default_retain_time);
+ GET_PARAM(param, info, iparam, max_outstanding_r2t);
+ GET_PARAM(param, info, iparam, data_pdu_inorder);
+ GET_PARAM(param, info, iparam, data_sequence_inorder);
+ GET_PARAM(param, info, iparam, error_recovery_level);
+ GET_PARAM(param, info, iparam, header_digest);
+ GET_PARAM(param, info, iparam, data_digest);
+ GET_PARAM(param, info, iparam, ofmarker);
+ GET_PARAM(param, info, iparam, ifmarker);
+ GET_PARAM(param, info, iparam, ofmarkint);
+ GET_PARAM(param, info, iparam, ifmarkint);
+}
+
+static void trgt_param_check(struct iscsi_param_info *info)
+{
+ u32 *iparam = info->target_param;
+
+ CHECK_PARAM(info, iparam, wthreads, MIN_NR_WTHREADS, MAX_NR_WTHREADS);
+ CHECK_PARAM(info, iparam, target_type, 0,
+ (unsigned int) ARRAY_SIZE(target_type_array) - 1);
+ CHECK_PARAM(info, iparam, queued_cmnds, MIN_NR_QUEUED_CMNDS,
+ MAX_NR_QUEUED_CMNDS);
+ CHECK_PARAM(info, iparam, nop_interval, MIN_NOP_INTERVAL,
+ MAX_NOP_INTERVAL);
+ CHECK_PARAM(info, iparam, nop_timeout, MIN_NOP_TIMEOUT,
+ MAX_NOP_TIMEOUT);
+}
+
+static void trgt_param_set(struct iscsi_target *target, struct iscsi_param_info *info)
+{
+ struct iscsi_trgt_param *param = &target->trgt_param;
+ u32 *iparam = info->target_param;
+
+ if (!worker_thread_pool &&
+ SET_PARAM(param, info, iparam, wthreads))
+ wthread_start(target->wthread_info,
+ target->trgt_param.wthreads, target->tid);
+ SET_PARAM(param, info, iparam, target_type);
+ SET_PARAM(param, info, iparam, queued_cmnds);
+ SET_PARAM(param, info, iparam, nop_interval);
+ SET_PARAM(param, info, iparam, nop_timeout);
+}
+
+static void trgt_param_get(struct iscsi_trgt_param *param, struct iscsi_param_info *info)
+{
+ u32 *iparam = info->target_param;
+
+ GET_PARAM(param, info, iparam, wthreads);
+ GET_PARAM(param, info, iparam, target_type);
+ GET_PARAM(param, info, iparam, queued_cmnds);
+ GET_PARAM(param, info, iparam, nop_interval);
+ GET_PARAM(param, info, iparam, nop_timeout);
+}
+
+static int trgt_param(struct iscsi_target *target, struct iscsi_param_info *info, int set)
+{
+
+ if (set) {
+ trgt_param_check(info);
+ trgt_param_set(target, info);
+ } else
+ trgt_param_get(&target->trgt_param, info);
+
+ return 0;
+}
+
+static int sess_param(struct iscsi_target *target, struct iscsi_param_info *info, int set)
+{
+ struct iscsi_session *session = NULL;
+ struct iscsi_sess_param *param;
+ int err = -ENOENT;
+
+ if (set)
+ sess_param_check(info);
+
+ if (info->sid) {
+ if (!(session = session_lookup(target, info->sid)))
+ goto out;
+ param = &session->param;
+ } else {
+ param = &target->sess_param;
+ }
+
+ if (set) {
+ sess_param_set(param, info);
+ show_param(param);
+ } else
+ sess_param_get(param, info);
+
+ err = 0;
+out:
+ return err;
+}
+
+int iscsi_param_set(struct iscsi_target *target, struct iscsi_param_info *info, int set)
+{
+ int err;
+
+ if (info->param_type == key_session)
+ err = sess_param(target, info, set);
+ else if (info->param_type == key_target)
+ err = trgt_param(target, info, set);
+ else
+ err = -EINVAL;
+
+ return err;
+}
diff --git a/ubuntu/iscsitarget/session.c b/ubuntu/iscsitarget/session.c
new file mode 100644
index 00000000000..a566d8bea07
--- /dev/null
+++ b/ubuntu/iscsitarget/session.c
@@ -0,0 +1,180 @@
+/*
+ * Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
+ *
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include "iscsi.h"
+#include "iscsi_dbg.h"
+
+struct iscsi_session *session_lookup(struct iscsi_target *target, u64 sid)
+{
+ struct iscsi_session *session;
+
+ list_for_each_entry(session, &target->session_list, list) {
+ if (session->sid == sid)
+ return session;
+ }
+ return NULL;
+}
+
+static struct iscsi_session *
+iet_session_alloc(struct iscsi_target *target, struct session_info *info)
+{
+ int i;
+ struct iscsi_session *session;
+ struct iet_volume *vol;
+
+ dprintk(D_SETUP, "%p %u %#Lx\n", target, target->tid,
+ (unsigned long long) info->sid);
+
+ session = kzalloc(sizeof(*session), GFP_KERNEL);
+ if (!session)
+ return NULL;
+
+ session->target = target;
+ session->sid = info->sid;
+ memcpy(&session->param, &target->sess_param, sizeof(session->param));
+ session->max_queued_cmnds = target->trgt_param.queued_cmnds;
+
+ session->exp_cmd_sn = info->exp_cmd_sn;
+ session->max_cmd_sn = info->max_cmd_sn;
+
+ session->initiator = kstrdup(info->initiator_name, GFP_KERNEL);
+ if (!session->initiator) {
+ kfree(session);
+ return NULL;
+ }
+
+ INIT_LIST_HEAD(&session->conn_list);
+ INIT_LIST_HEAD(&session->pending_list);
+
+ spin_lock_init(&session->cmnd_hash_lock);
+ for (i = 0; i < ARRAY_SIZE(session->cmnd_hash); i++)
+ INIT_LIST_HEAD(&session->cmnd_hash[i]);
+
+ spin_lock_init(&session->ua_hash_lock);
+ for (i = 0; i < ARRAY_SIZE(session->ua_hash); i++)
+ INIT_LIST_HEAD(&session->ua_hash[i]);
+
+ list_for_each_entry(vol, &target->volumes, list)
+ /* power-on, reset, or bus device reset occurred */
+ ua_establish_for_session(session, vol->lun, 0x29, 0x0);
+
+ session->next_ttt = 1;
+
+ spin_lock(&target->session_list_lock);
+ list_add(&session->list, &target->session_list);
+ spin_unlock(&target->session_list_lock);
+
+ return session;
+}
+
+static int session_free(struct iscsi_session *session)
+{
+ int i;
+ struct ua_entry *ua, *tmp;
+ struct list_head *l;
+ struct iscsi_target *target = session->target;
+
+ dprintk(D_SETUP, "%#Lx\n", (unsigned long long) session->sid);
+
+ spin_lock(&target->session_list_lock);
+
+ assert(list_empty(&session->conn_list));
+
+ for (i = 0; i < ARRAY_SIZE(session->cmnd_hash); i++) {
+ if (!list_empty(&session->cmnd_hash[i]))
+ BUG();
+ }
+
+ for (i = 0; i < ARRAY_SIZE(session->ua_hash); i++) {
+ l = &session->ua_hash[i];
+ list_for_each_entry_safe(ua, tmp, l, entry) {
+ list_del_init(&ua->entry);
+ ua_free(ua);
+ }
+ }
+
+ list_del(&session->list);
+
+ kfree(session->initiator);
+ kfree(session);
+
+ spin_unlock(&target->session_list_lock);
+
+ return 0;
+}
+
+int session_add(struct iscsi_target *target, struct session_info *info)
+{
+ struct iscsi_session *session;
+
+ session = session_lookup(target, info->sid);
+ if (session)
+ return -EEXIST;
+
+ session = iet_session_alloc(target, info);
+ if (!session)
+ return -ENOMEM;
+
+ return 0;
+}
+
+int session_del(struct iscsi_target *target, u64 sid)
+{
+ struct iscsi_session *session;
+ struct iet_volume *volume;
+
+ session = session_lookup(target, sid);
+ if (!session)
+ return -ENOENT;
+
+ if (!list_empty(&session->conn_list)) {
+ DECLARE_COMPLETION_ONSTACK(done);
+ struct iscsi_conn *conn;
+
+ session->done = &done;
+ list_for_each_entry(conn, &session->conn_list, list)
+ conn_close(conn);
+
+ target_unlock(target);
+ wait_for_completion(&done);
+ target_lock(target, 0);
+ }
+
+ list_for_each_entry(volume, &target->volumes, list){
+ volume_release(volume, sid, 0);
+ }
+
+ return session_free(session);
+}
+
+static void iet_session_info_show(struct seq_file *seq, struct iscsi_target *target)
+{
+ struct iscsi_session *session;
+
+ list_for_each_entry(session, &target->session_list, list) {
+ seq_printf(seq, "\tsid:%llu initiator:%s\n",
+ (unsigned long long) session->sid, session->initiator);
+ conn_info_show(seq, session);
+ }
+}
+
+static int iet_session_seq_open(struct inode *inode, struct file *file)
+{
+ int res;
+ res = seq_open(file, &iet_seq_op);
+ if (!res)
+ ((struct seq_file *)file->private_data)->private =
+ iet_session_info_show;
+ return res;
+}
+
+struct file_operations session_seq_fops = {
+ .owner = THIS_MODULE,
+ .open = iet_session_seq_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = seq_release,
+};
diff --git a/ubuntu/iscsitarget/target.c b/ubuntu/iscsitarget/target.c
new file mode 100644
index 00000000000..43326dcb712
--- /dev/null
+++ b/ubuntu/iscsitarget/target.c
@@ -0,0 +1,374 @@
+/*
+ * Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>
+ *
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include "iscsi.h"
+#include "digest.h"
+#include "iscsi_dbg.h"
+
+#define MAX_NR_TARGETS (1UL << 30)
+
+static LIST_HEAD(target_list);
+static DECLARE_MUTEX(target_list_sem);
+static u32 next_target_id;
+static u32 nr_targets;
+
+static struct iscsi_sess_param default_session_param = {
+ .initial_r2t = 1,
+ .immediate_data = 1,
+ .max_connections = 1,
+ .max_recv_data_length = 8192,
+ .max_xmit_data_length = 8192,
+ .max_burst_length = 262144,
+ .first_burst_length = 65536,
+ .default_wait_time = 2,
+ .default_retain_time = 20,
+ .max_outstanding_r2t = 1,
+ .data_pdu_inorder = 1,
+ .data_sequence_inorder = 1,
+ .error_recovery_level = 0,
+ .header_digest = DIGEST_NONE,
+ .data_digest = DIGEST_NONE,
+ .ofmarker = 0,
+ .ifmarker = 0,
+ .ofmarkint = 2048,
+ .ifmarkint = 2048,
+};
+
+static struct iscsi_trgt_param default_target_param = {
+ .wthreads = DEFAULT_NR_WTHREADS,
+ .target_type = 0,
+ .queued_cmnds = DEFAULT_NR_QUEUED_CMNDS,
+};
+
+inline int target_lock(struct iscsi_target *target, int interruptible)
+{
+ int err = 0;
+
+ if (interruptible)
+ err = down_interruptible(&target->target_sem);
+ else
+ down(&target->target_sem);
+
+ return err;
+}
+
+inline void target_unlock(struct iscsi_target *target)
+{
+ up(&target->target_sem);
+}
+
+static struct iscsi_target *__target_lookup_by_id(u32 id)
+{
+ struct iscsi_target *target;
+
+ list_for_each_entry(target, &target_list, t_list) {
+ if (target->tid == id)
+ return target;
+ }
+ return NULL;
+}
+
+static struct iscsi_target *__target_lookup_by_name(char *name)
+{
+ struct iscsi_target *target;
+
+ list_for_each_entry(target, &target_list, t_list) {
+ if (!strcmp(target->name, name))
+ return target;
+ }
+ return NULL;
+}
+
+struct iscsi_target *target_lookup_by_id(u32 id)
+{
+ struct iscsi_target *target;
+
+ down(&target_list_sem);
+ target = __target_lookup_by_id(id);
+ up(&target_list_sem);
+
+ return target;
+}
+
+static int target_thread_start(struct iscsi_target *target)
+{
+ int err;
+
+ if ((err = nthread_start(target)) < 0)
+ return err;
+
+ if (!worker_thread_pool) {
+ err = wthread_start(target->wthread_info,
+ target->trgt_param.wthreads, target->tid);
+ if (err)
+ nthread_stop(target);
+ }
+
+ return err;
+}
+
+static void target_thread_stop(struct iscsi_target *target)
+{
+ if (!worker_thread_pool)
+ wthread_stop(target->wthread_info);
+
+ nthread_stop(target);
+}
+
+static int iscsi_target_create(struct target_info *info, u32 tid)
+{
+ int err = -EINVAL, len;
+ char *name = info->name;
+ struct iscsi_target *target;
+
+ dprintk(D_SETUP, "%u %s\n", tid, name);
+
+ if (!(len = strlen(name))) {
+ eprintk("The length of the target name is zero %u\n", tid);
+ return err;
+ }
+
+ if (!try_module_get(THIS_MODULE)) {
+ eprintk("Fail to get module %u\n", tid);
+ return err;
+ }
+
+ target = kzalloc(sizeof(*target), GFP_KERNEL);
+ if (!target) {
+ err = -ENOMEM;
+ goto out;
+ }
+
+ if (!worker_thread_pool) {
+ target->wthread_info = kmalloc(sizeof(struct worker_thread_info), GFP_KERNEL);
+ if (!target->wthread_info) {
+ err = -ENOMEM;
+ goto out;
+ }
+ }
+
+ target->tid = info->tid = tid;
+
+ memcpy(&target->sess_param, &default_session_param, sizeof(default_session_param));
+ memcpy(&target->trgt_param, &default_target_param, sizeof(default_target_param));
+
+ strncpy(target->name, name, sizeof(target->name) - 1);
+
+ init_MUTEX(&target->target_sem);
+ spin_lock_init(&target->session_list_lock);
+
+ INIT_LIST_HEAD(&target->session_list);
+ INIT_LIST_HEAD(&target->volumes);
+
+ atomic_set(&target->nr_volumes, 0);
+
+ nthread_init(target);
+
+ if (!worker_thread_pool)
+ wthread_init(target->wthread_info);
+ else
+ target->wthread_info = worker_thread_pool;
+
+
+ if ((err = target_thread_start(target)) < 0) {
+ target_thread_stop(target);
+ goto out;
+ }
+
+ list_add(&target->t_list, &target_list);
+
+ return 0;
+out:
+ if (!worker_thread_pool)
+ kfree(target->wthread_info);
+ kfree(target);
+ module_put(THIS_MODULE);
+
+ return err;
+}
+
+int target_add(struct target_info *info)
+{
+ u32 tid = info->tid;
+ int err;
+
+ err = down_interruptible(&target_list_sem);
+ if (err < 0)
+ return err;
+
+ if (nr_targets > MAX_NR_TARGETS) {
+ err = -EBUSY;
+ goto out;
+ }
+
+ if (__target_lookup_by_name(info->name) ||
+ (tid && __target_lookup_by_id(tid))) {
+ err = -EEXIST;
+ goto out;
+ }
+
+ if (!tid) {
+ do {
+ if (!++next_target_id)
+ ++next_target_id;
+ } while (__target_lookup_by_id(next_target_id));
+
+ tid = next_target_id;
+ }
+
+ err = iscsi_target_create(info, tid);
+ if (!err)
+ nr_targets++;
+out:
+ up(&target_list_sem);
+
+ return err;
+}
+
+static void target_destroy(struct iscsi_target *target)
+{
+ dprintk(D_SETUP, "%u\n", target->tid);
+
+ target_thread_stop(target);
+
+ while (!list_empty(&target->volumes)) {
+ struct iet_volume *volume;
+ volume = list_entry(target->volumes.next, struct iet_volume, list);
+ volume->l_state = IDEV_DEL;
+ iscsi_volume_destroy(volume);
+ }
+
+ if (!worker_thread_pool)
+ kfree(target->wthread_info);
+ kfree(target);
+
+ module_put(THIS_MODULE);
+}
+
+/* @locking: target_list_sem must be locked */
+static int __target_del(struct iscsi_target *target)
+{
+ int err;
+
+ target_lock(target, 0);
+
+ if (!list_empty(&target->session_list)) {
+ struct iscsi_session *session;
+
+ do {
+ session = list_entry(target->session_list.next,
+ struct iscsi_session, list);
+ err = session_del(target, session->sid);
+ if (err < 0) {
+ target_unlock(target);
+ return err;
+ }
+ } while (!list_empty(&target->session_list));
+ }
+
+ list_del(&target->t_list);
+ nr_targets--;
+
+ target_unlock(target);
+ target_destroy(target);
+
+ return 0;
+}
+
+int target_del(u32 id)
+{
+ struct iscsi_target *target;
+ int err;
+
+ err = down_interruptible(&target_list_sem);
+ if (err < 0)
+ return err;
+
+ target = __target_lookup_by_id(id);
+ if (!target) {
+ err = -ENOENT;
+ goto out;
+ }
+
+ err = __target_del(target);
+out:
+ up(&target_list_sem);
+
+ return err;
+}
+
+void target_del_all(void)
+{
+ struct iscsi_target *target, *tmp;
+ int err;
+
+ down(&target_list_sem);
+
+ if (!list_empty(&target_list))
+ iprintk("Removing all connections, sessions and targets\n");
+
+ list_for_each_entry_safe(target, tmp, &target_list, t_list) {
+ u32 tid = target->tid;
+ err =__target_del(target);
+ if (err)
+ eprintk("Error deleteing target %u: %d\n", tid, err);
+ }
+
+ next_target_id = 0;
+
+ up(&target_list_sem);
+}
+
+static void *iet_seq_start(struct seq_file *m, loff_t *pos)
+{
+ int err;
+
+ /* are you sure this is to be interruptible? */
+ err = down_interruptible(&target_list_sem);
+ if (err < 0)
+ return ERR_PTR(err);
+
+ return seq_list_start(&target_list, *pos);
+}
+
+static void *iet_seq_next(struct seq_file *m, void *v, loff_t *pos)
+{
+ return seq_list_next(v, &target_list, pos);
+}
+
+static void iet_seq_stop(struct seq_file *m, void *v)
+{
+ up(&target_list_sem);
+}
+
+static int iet_seq_show(struct seq_file *m, void *p)
+{
+ iet_show_info_t *func = (iet_show_info_t *)m->private;
+ struct iscsi_target *target =
+ list_entry(p, struct iscsi_target, t_list);
+ int err;
+
+ /* relly, interruptible? I'd think target_lock(target, 0)
+ * would be more appropriate. --lge */
+ err = target_lock(target, 1);
+ if (err < 0)
+ return err;
+
+ seq_printf(m, "tid:%u name:%s\n", target->tid, target->name);
+
+ func(m, target);
+
+ target_unlock(target);
+
+ return 0;
+}
+
+struct seq_operations iet_seq_op = {
+ .start = iet_seq_start,
+ .next = iet_seq_next,
+ .stop = iet_seq_stop,
+ .show = iet_seq_show,
+};
diff --git a/ubuntu/iscsitarget/target_disk.c b/ubuntu/iscsitarget/target_disk.c
new file mode 100644
index 00000000000..1f7693c8e05
--- /dev/null
+++ b/ubuntu/iscsitarget/target_disk.c
@@ -0,0 +1,589 @@
+/*
+ * (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org>
+ * This code is licenced under the GPL.
+ *
+ * heavily based on code from kernel/iscsi.c:
+ * Copyright (C) 2002-2003 Ardis Technolgies <roman@ardistech.com>,
+ * licensed under the terms of the GNU GPL v2.0,
+ */
+
+#include <linux/ctype.h>
+#include <scsi/scsi.h>
+
+#include "iscsi.h"
+#include "iscsi_dbg.h"
+
+static int insert_disconnect_pg(u8 *ptr)
+{
+ unsigned char disconnect_pg[] = {0x02, 0x0e, 0x80, 0x80, 0x00, 0x0a, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+
+ memcpy(ptr, disconnect_pg, sizeof(disconnect_pg));
+ return sizeof(disconnect_pg);
+}
+
+static int insert_caching_pg(u8 *ptr, int wcache, int rcache)
+{
+ unsigned char caching_pg[] = {0x08, 0x12, 0x10, 0x00, 0xff, 0xff, 0x00, 0x00,
+ 0xff, 0xff, 0xff, 0xff, 0x80, 0x14, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00};
+
+ memcpy(ptr, caching_pg, sizeof(caching_pg));
+ if (wcache)
+ ptr[2] |= 0x04; /* set WCE bit if we're caching writes */
+ if (!rcache)
+ ptr[2] |= 0x01; /* Read Cache Disable */
+
+ return sizeof(caching_pg);
+}
+
+static int insert_ctrl_m_pg(u8 *ptr)
+{
+ unsigned char ctrl_m_pg[] = {0x0a, 0x0a, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x02, 0x4b};
+
+ memcpy(ptr, ctrl_m_pg, sizeof(ctrl_m_pg));
+ return sizeof(ctrl_m_pg);
+}
+
+static int insert_iec_m_pg(u8 *ptr)
+{
+ unsigned char iec_m_pg[] = {0x1c, 0xa, 0x08, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00};
+
+ memcpy(ptr, iec_m_pg, sizeof(iec_m_pg));
+ return sizeof(iec_m_pg);
+}
+
+static int insert_format_m_pg(u8 *ptr, u32 sector_size)
+{
+ unsigned char format_m_pg[] = {0x03, 0x16, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00};
+
+ memcpy(ptr, format_m_pg, sizeof(format_m_pg));
+ ptr[12] = (sector_size >> 8) & 0xff;
+ ptr[13] = sector_size & 0xff;
+ return sizeof(format_m_pg);
+}
+
+static int insert_geo_m_pg(u8 *ptr, u64 sec)
+{
+ unsigned char geo_m_pg[] = {0x04, 0x16, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x3a, 0x98, 0x00, 0x00};
+ u32 ncyl;
+ u32 n;
+
+ /* assume 0xff heads, 15krpm. */
+ memcpy(ptr, geo_m_pg, sizeof(geo_m_pg));
+ ncyl = sec >> 14; /* 256 * 64 */
+ memcpy(&n, ptr+1, sizeof(u32));
+ n = n | cpu_to_be32(ncyl);
+ memcpy(ptr+1, &n, sizeof(u32));
+ return sizeof(geo_m_pg);
+}
+
+static void build_mode_sense_response(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd);
+ struct tio *tio = cmnd->tio;
+ u8 *data, *scb = req->scb;
+ int len = 4, err = 0;
+ u8 pcode;
+
+ /* changeable parameter mode pages are unsupported */
+ if ((scb[2] & 0xc0) >> 6 == 0x1)
+ goto set_sense;
+
+ pcode = req->scb[2] & 0x3f;
+
+ assert(!tio);
+ tio = cmnd->tio = tio_alloc(1);
+ data = page_address(tio->pvec[0]);
+ assert(data);
+ clear_page(data);
+
+ if (LUReadonly(cmnd->lun))
+ data[2] = 0x80;
+
+ if ((scb[1] & 0x8))
+ data[3] = 0;
+ else {
+ data[3] = 8;
+ len += 8;
+ *(u32 *)(data + 4) = (cmnd->lun->blk_cnt >> 32) ?
+ cpu_to_be32(0xffffffff) : cpu_to_be32(cmnd->lun->blk_cnt);
+ *(u32 *)(data + 8) = cpu_to_be32(1 << cmnd->lun->blk_shift);
+ }
+
+ switch (pcode) {
+ case 0x0:
+ break;
+ case 0x2:
+ len += insert_disconnect_pg(data + len);
+ break;
+ case 0x3:
+ len += insert_format_m_pg(data + len, 1 << cmnd->lun->blk_shift);
+ break;
+ case 0x4:
+ len += insert_geo_m_pg(data + len, cmnd->lun->blk_cnt);
+ break;
+ case 0x8:
+ len += insert_caching_pg(data + len, LUWCache(cmnd->lun),
+ LURCache(cmnd->lun));
+ break;
+ case 0xa:
+ len += insert_ctrl_m_pg(data + len);
+ break;
+ case 0x1c:
+ len += insert_iec_m_pg(data + len);
+ break;
+ case 0x3f:
+ len += insert_disconnect_pg(data + len);
+ len += insert_format_m_pg(data + len, 1 << cmnd->lun->blk_shift);
+ len += insert_geo_m_pg(data + len, cmnd->lun->blk_cnt);
+ len += insert_caching_pg(data + len, LUWCache(cmnd->lun),
+ LURCache(cmnd->lun));
+ len += insert_ctrl_m_pg(data + len);
+ len += insert_iec_m_pg(data + len);
+ break;
+ default:
+ err = -1;
+ }
+
+ if (!err) {
+ data[0] = len - 1;
+ tio_set(tio, len, 0);
+ return;
+ }
+
+ tio_put(tio);
+ cmnd->tio = NULL;
+ set_sense:
+ /* Invalid Field In CDB */
+ iscsi_cmnd_set_sense(cmnd, ILLEGAL_REQUEST, 0x24, 0x0);
+}
+
+static void build_inquiry_response(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd);
+ struct tio *tio = cmnd->tio;
+ u8 *data;
+ u8 *scb = req->scb;
+ int err = -1;
+
+ /*
+ * - CmdDt and EVPD both set or EVPD and Page Code set: illegal
+ * - CmdDt set: not supported
+ */
+ if ((scb[1] & 0x3) > 0x1 || (!(scb[1] & 0x3) && scb[2]))
+ goto set_sense;
+
+ assert(!tio);
+ tio = cmnd->tio = tio_alloc(1);
+ data = page_address(tio->pvec[0]);
+ assert(data);
+ clear_page(data);
+
+ if (!(scb[1] & 0x3)) {
+ data[2] = 4;
+ data[3] = 0x52;
+ data[4] = 59;
+ data[7] = 0x02;
+ memset(data + 8, 0x20, 28);
+ memcpy(data + 8,
+ VENDOR_ID, min_t(size_t, strlen(VENDOR_ID), 8));
+ memcpy(data + 16,
+ PRODUCT_ID, min_t(size_t, strlen(PRODUCT_ID), 16));
+ memcpy(data + 32,
+ PRODUCT_REV, min_t(size_t, strlen(PRODUCT_REV), 4));
+ data[58] = 0x03;
+ data[59] = 0x20;
+ data[60] = 0x09;
+ data[61] = 0x60;
+ data[62] = 0x03;
+ data[63] = 0x00;
+ tio_set(tio, 64, 0);
+ err = 0;
+ } else if (scb[1] & 0x1) {
+ /* EVPD bit set */
+ if (scb[2] == 0x0) {
+ data[1] = 0x0;
+ data[3] = 3;
+ data[4] = 0x0;
+ data[5] = 0x80;
+ data[6] = 0x83;
+ tio_set(tio, 7, 0);
+ err = 0;
+ } else if (scb[2] == 0x80) {
+ u32 len = 4;
+
+ if (cmnd->lun) {
+ if (strlen(cmnd->lun->scsi_sn) <= 16)
+ len = 16;
+ else
+ len = SCSI_SN_LEN;
+ }
+
+ data[1] = 0x80;
+ data[3] = len;
+ memset(data + 4, 0x20, len);
+ if (cmnd->lun) {
+ size_t offset = len -
+ strlen(cmnd->lun->scsi_sn);
+ memcpy(data + 4 + offset, cmnd->lun->scsi_sn,
+ strlen(cmnd->lun->scsi_sn));
+ }
+ tio_set(tio, len + 4, 0);
+ err = 0;
+ } else if (scb[2] == 0x83) {
+ u32 len = SCSI_ID_LEN + 8;
+
+ data[1] = 0x83;
+ data[3] = len + 4;
+ data[4] = 0x1;
+ data[5] = 0x1;
+ data[7] = len;
+ if (cmnd->lun) { /* We need this ? */
+ memset(data + 8, 0x00, 8);
+ memcpy(data + 8, VENDOR_ID,
+ min_t(size_t, strlen(VENDOR_ID), 8));
+ memcpy(data + 16, cmnd->lun->scsi_id,
+ SCSI_ID_LEN);
+ }
+ tio_set(tio, len + 8, 0);
+ err = 0;
+ }
+ }
+
+ if (!err) {
+ tio_set(tio, min_t(u8, tio->size, scb[4]), 0);
+ if (!cmnd->lun)
+ data[0] = TYPE_NO_LUN;
+ return;
+ }
+
+ tio_put(tio);
+ cmnd->tio = NULL;
+ set_sense:
+ /* Invalid Field In CDB */
+ iscsi_cmnd_set_sense(cmnd, ILLEGAL_REQUEST, 0x24, 0x0);
+}
+
+static void build_report_luns_response(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd);
+ struct tio *tio = cmnd->tio;
+ u32 *data, size, len;
+ struct iet_volume *lun;
+ int rest, idx = 0;
+
+ size = (u32)req->scb[6] << 24 | (u32)req->scb[7] << 16 |
+ (u32)req->scb[8] << 8 | (u32)req->scb[9];
+ if (size < 16) {
+ /* Invalid Field In CDB */
+ iscsi_cmnd_set_sense(cmnd, ILLEGAL_REQUEST, 0x24, 0x0);
+ return;
+ }
+
+ len = atomic_read(&cmnd->conn->session->target->nr_volumes) * 8;
+ size = min(size & ~(8 - 1), len + 8);
+
+ assert(!tio);
+ tio = cmnd->tio = tio_alloc(get_pgcnt(size, 0));
+ tio_set(tio, size, 0);
+
+ data = page_address(tio->pvec[idx]);
+ assert(data);
+ *data++ = cpu_to_be32(len);
+ *data++ = 0;
+ size -= 8;
+ rest = PAGE_CACHE_SIZE - 8;
+ list_for_each_entry(lun, &cmnd->conn->session->target->volumes, list) {
+ if (lun->l_state != IDEV_RUNNING)
+ continue;
+
+ *data++ = cpu_to_be32((0x3ff & lun->lun) << 16 |
+ ((lun->lun > 0xff) ? (0x1 << 30) : 0));
+ *data++ = 0;
+ if ((size -= 8) == 0)
+ break;
+ if ((rest -= 8) == 0) {
+ idx++;
+ data = page_address(tio->pvec[idx]);
+ rest = PAGE_CACHE_SIZE;
+ }
+ }
+}
+
+static void build_read_capacity_response(struct iscsi_cmnd *cmnd)
+{
+ struct tio *tio = cmnd->tio;
+ u32 *data;
+
+ assert(!tio);
+ tio = cmnd->tio = tio_alloc(1);
+ data = page_address(tio->pvec[0]);
+ assert(data);
+ clear_page(data);
+
+ data[0] = (cmnd->lun->blk_cnt >> 32) ?
+ cpu_to_be32(0xffffffff) : cpu_to_be32(cmnd->lun->blk_cnt - 1);
+ data[1] = cpu_to_be32(1U << cmnd->lun->blk_shift);
+
+ tio_set(tio, 8, 0);
+}
+
+static void build_request_sense_response(struct iscsi_cmnd *cmnd)
+{
+ struct tio *tio = cmnd->tio;
+ u8 *data;
+
+ assert(!tio);
+ tio = cmnd->tio = tio_alloc(1);
+ data = page_address(tio->pvec[0]);
+ assert(data);
+ memset(data, 0, 18);
+ data[0] = 0xf0;
+ data[1] = 0;
+ data[2] = NO_SENSE;
+ data[7] = 10;
+ tio_set(tio, 18, 0);
+}
+
+static void build_service_action_in_response(struct iscsi_cmnd *cmnd)
+{
+ struct tio *tio = cmnd->tio;
+ u32 *data;
+ u64 *data64;
+
+ assert(!tio);
+
+ /* only READ_CAPACITY_16 service action is currently supported */
+ if ((cmnd_hdr(cmnd)->scb[1] & 0x1F) != 0x10) {
+ /* Invalid Field In CDB */
+ iscsi_cmnd_set_sense(cmnd, ILLEGAL_REQUEST, 0x24, 0x0);
+ return;
+ }
+
+ tio = cmnd->tio = tio_alloc(1);
+ data = page_address(tio->pvec[0]);
+ assert(data);
+ clear_page(data);
+ data64 = (u64*) data;
+ data64[0] = cpu_to_be64(cmnd->lun->blk_cnt - 1);
+ data[2] = cpu_to_be32(1UL << cmnd->lun->blk_shift);
+
+ tio_set(tio, 12, 0);
+}
+
+static void build_read_response(struct iscsi_cmnd *cmnd)
+{
+ struct tio *tio = cmnd->tio;
+
+ assert(tio);
+ assert(cmnd->lun);
+
+ if (tio_read(cmnd->lun, tio))
+ /* Medium Error/Unrecovered Read Error */
+ iscsi_cmnd_set_sense(cmnd, MEDIUM_ERROR, 0x11, 0x0);
+}
+
+static void build_write_response(struct iscsi_cmnd *cmnd)
+{
+ int err;
+ struct tio *tio = cmnd->tio;
+
+ assert(tio);
+ assert(cmnd->lun);
+
+ list_del_init(&cmnd->list);
+ err = tio_write(cmnd->lun, tio);
+ if (!err && !LUWCache(cmnd->lun))
+ err = tio_sync(cmnd->lun, tio);
+
+ if (err)
+ /* Medium Error/Write Fault */
+ iscsi_cmnd_set_sense(cmnd, MEDIUM_ERROR, 0x03, 0x0);
+}
+
+static void build_sync_cache_response(struct iscsi_cmnd *cmnd)
+{
+ assert(cmnd->lun);
+ if (tio_sync(cmnd->lun, NULL))
+ /* Medium Error/Write Fault */
+ iscsi_cmnd_set_sense(cmnd, MEDIUM_ERROR, 0x03, 0x0);
+}
+
+static void build_generic_response(struct iscsi_cmnd *cmnd)
+{
+ return;
+}
+
+static void build_reserve_response(struct iscsi_cmnd *cmnd)
+{
+ switch (volume_reserve(cmnd->lun, cmnd->conn->session->sid)) {
+ case -ENOENT:
+ /* Logical Unit Not Supported (?) */
+ iscsi_cmnd_set_sense(cmnd, ILLEGAL_REQUEST, 0x25, 0x0);
+ break;
+ case -EBUSY:
+ cmnd->status = SAM_STAT_RESERVATION_CONFLICT;
+ break;
+ default:
+ break;
+ }
+}
+
+static void build_release_response(struct iscsi_cmnd *cmnd)
+{
+ int ret = volume_release(cmnd->lun,
+ cmnd->conn->session->sid, 0);
+ switch (ret) {
+ case -ENOENT:
+ /* Logical Unit Not Supported (?) */
+ iscsi_cmnd_set_sense(cmnd, ILLEGAL_REQUEST, 0x25, 0x0);
+ break;
+ case -EBUSY:
+ cmnd->status = SAM_STAT_RESERVATION_CONFLICT;
+ break;
+ default:
+ break;
+ }
+}
+
+static void build_reservation_conflict_response(struct iscsi_cmnd *cmnd)
+{
+ cmnd->status = SAM_STAT_RESERVATION_CONFLICT;
+}
+
+static int disk_check_ua(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd);
+ struct ua_entry *ua;
+
+ if (cmnd->lun && ua_pending(cmnd->conn->session, cmnd->lun->lun)) {
+ switch(req->scb[0]){
+ case INQUIRY:
+ case REQUEST_SENSE:
+ break;
+ case REPORT_LUNS:
+ ua = ua_get_match(cmnd->conn->session,
+ cmnd->lun->lun,
+ /* reported luns data has changed */
+ 0x3f, 0x0e);
+ ua_free(ua);
+ break;
+ default:
+ ua = ua_get_first(cmnd->conn->session, cmnd->lun->lun);
+ iscsi_cmnd_set_sense(cmnd, UNIT_ATTENTION, ua->asc,
+ ua->ascq);
+ ua_free(ua);
+ send_scsi_rsp(cmnd, build_generic_response);
+ return 1;
+ }
+ }
+ return 0;
+}
+
+static int disk_check_reservation(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd);
+
+ int ret = is_volume_reserved(cmnd->lun,
+ cmnd->conn->session->sid);
+ if (ret == -EBUSY) {
+ switch (req->scb[0]) {
+ case INQUIRY:
+ case RELEASE:
+ case REPORT_LUNS:
+ case REQUEST_SENSE:
+ case READ_CAPACITY:
+ /* allowed commands when reserved */
+ break;
+ case SERVICE_ACTION_IN:
+ if ((cmnd_hdr(cmnd)->scb[1] & 0x1F) == 0x10)
+ break;
+ /* fall through */
+ default:
+ /* return reservation conflict for all others */
+ send_scsi_rsp(cmnd,
+ build_reservation_conflict_response);
+ return 1;
+ }
+ }
+
+ return 0;
+}
+
+static int disk_execute_cmnd(struct iscsi_cmnd *cmnd)
+{
+ struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd);
+
+ req->opcode &= ISCSI_OPCODE_MASK;
+
+ if (disk_check_ua(cmnd))
+ return 0;
+
+ if (disk_check_reservation(cmnd))
+ return 0;
+
+ switch (req->scb[0]) {
+ case INQUIRY:
+ send_data_rsp(cmnd, build_inquiry_response);
+ break;
+ case REPORT_LUNS:
+ send_data_rsp(cmnd, build_report_luns_response);
+ break;
+ case READ_CAPACITY:
+ send_data_rsp(cmnd, build_read_capacity_response);
+ break;
+ case MODE_SENSE:
+ send_data_rsp(cmnd, build_mode_sense_response);
+ break;
+ case REQUEST_SENSE:
+ send_data_rsp(cmnd, build_request_sense_response);
+ break;
+ case SERVICE_ACTION_IN:
+ send_data_rsp(cmnd, build_service_action_in_response);
+ break;
+ case READ_6:
+ case READ_10:
+ case READ_16:
+ send_data_rsp(cmnd, build_read_response);
+ break;
+ case WRITE_6:
+ case WRITE_10:
+ case WRITE_16:
+ case WRITE_VERIFY:
+ send_scsi_rsp(cmnd, build_write_response);
+ break;
+ case SYNCHRONIZE_CACHE:
+ send_scsi_rsp(cmnd, build_sync_cache_response);
+ break;
+ case RESERVE:
+ send_scsi_rsp(cmnd, build_reserve_response);
+ break;
+ case RELEASE:
+ send_scsi_rsp(cmnd, build_release_response);
+ break;
+ case START_STOP:
+ case TEST_UNIT_READY:
+ case VERIFY:
+ case VERIFY_16:
+ send_scsi_rsp(cmnd, build_generic_response);
+ break;
+ default:
+ eprintk("%s\n", "we should not come here!");
+ break;
+ }
+
+ return 0;
+}
+
+struct target_type disk_ops =
+{
+ .id = 0,
+ .execute_cmnd = disk_execute_cmnd,
+};
diff --git a/ubuntu/iscsitarget/tio.c b/ubuntu/iscsitarget/tio.c
new file mode 100644
index 00000000000..422039177d2
--- /dev/null
+++ b/ubuntu/iscsitarget/tio.c
@@ -0,0 +1,121 @@
+/*
+ * Target I/O.
+ * (C) 2005 FUJITA Tomonori <tomof@acm.org>
+ * This code is licenced under the GPL.
+ */
+
+#include "iscsi.h"
+#include "iscsi_dbg.h"
+#include "iotype.h"
+
+static int tio_add_pages(struct tio *tio, int count)
+{
+ int i;
+ struct page *page;
+
+ dprintk(D_GENERIC, "%p %d (%d)\n", tio, count, tio->pg_cnt);
+
+ tio->pg_cnt = count;
+
+ count *= sizeof(struct page *);
+
+ do {
+ tio->pvec = kzalloc(count, GFP_KERNEL);
+ if (!tio->pvec)
+ yield();
+ } while (!tio->pvec);
+
+ for (i = 0; i < tio->pg_cnt; i++) {
+ do {
+ if (!(page = alloc_page(GFP_KERNEL)))
+ yield();
+ } while (!page);
+ tio->pvec[i] = page;
+ }
+ return 0;
+}
+
+static struct kmem_cache *tio_cache;
+
+struct tio *tio_alloc(int count)
+{
+ struct tio *tio;
+
+ tio = kmem_cache_alloc(tio_cache, GFP_KERNEL | __GFP_NOFAIL);
+
+ tio->pg_cnt = 0;
+ tio->idx = 0;
+ tio->offset = 0;
+ tio->size = 0;
+ tio->pvec = NULL;
+
+ atomic_set(&tio->count, 1);
+
+ if (count)
+ tio_add_pages(tio, count);
+
+ return tio;
+}
+
+static void tio_free(struct tio *tio)
+{
+ int i;
+ for (i = 0; i < tio->pg_cnt; i++) {
+ assert(tio->pvec[i]);
+ __free_page(tio->pvec[i]);
+ }
+ kfree(tio->pvec);
+ kmem_cache_free(tio_cache, tio);
+}
+
+void tio_put(struct tio *tio)
+{
+ assert(atomic_read(&tio->count));
+ if (atomic_dec_and_test(&tio->count))
+ tio_free(tio);
+}
+
+void tio_get(struct tio *tio)
+{
+ atomic_inc(&tio->count);
+}
+
+void tio_set(struct tio *tio, u32 size, loff_t offset)
+{
+ tio->idx = offset >> PAGE_CACHE_SHIFT;
+ tio->offset = offset & ~PAGE_CACHE_MASK;
+ tio->size = size;
+}
+
+int tio_read(struct iet_volume *lu, struct tio *tio)
+{
+ struct iotype *iot = lu->iotype;
+ assert(iot);
+ return iot->make_request ? iot->make_request(lu, tio, READ) : 0;
+}
+
+int tio_write(struct iet_volume *lu, struct tio *tio)
+{
+ struct iotype *iot = lu->iotype;
+ assert(iot);
+ return iot->make_request ? iot->make_request(lu, tio, WRITE) : 0;
+}
+
+int tio_sync(struct iet_volume *lu, struct tio *tio)
+{
+ struct iotype *iot = lu->iotype;
+ assert(iot);
+ return iot->sync ? iot->sync(lu, tio) : 0;
+}
+
+int tio_init(void)
+{
+ tio_cache = KMEM_CACHE(tio, 0);
+ return tio_cache ? 0 : -ENOMEM;
+}
+
+void tio_exit(void)
+{
+ if (tio_cache)
+ kmem_cache_destroy(tio_cache);
+}
diff --git a/ubuntu/iscsitarget/ua.c b/ubuntu/iscsitarget/ua.c
new file mode 100644
index 00000000000..c4ba4c20dee
--- /dev/null
+++ b/ubuntu/iscsitarget/ua.c
@@ -0,0 +1,176 @@
+/*
+ * IET Unit Attention support
+ *
+ * Copyright (C) 2009 Xie Gang <xiegang112@gmail.com>
+ * Copyright (C) 2009 Arne Redlich <arne.redlich@googlemail.com>
+ *
+ * Released under the terms of the GNU GPL v2.0.
+ */
+
+#include <scsi/scsi.h>
+
+#include "iscsi.h"
+#include "iscsi_dbg.h"
+
+#define ua_hashfn(lun) ((lun % UA_HASH_LEN))
+
+static struct kmem_cache *ua_cache;
+
+int ua_init(void)
+{
+ ua_cache = KMEM_CACHE(ua_entry, 0);
+ if (!ua_cache) {
+ eprintk("%s", "Failed to create ua cache\n");
+ return -ENOMEM;
+ }
+
+ return 0;
+}
+
+void ua_exit(void)
+{
+ if (ua_cache)
+ kmem_cache_destroy(ua_cache);
+}
+
+/* sess->ua_hash_lock needs to be held */
+static struct ua_entry * ua_find_hash(struct iscsi_session *sess, u32 lun,
+ u8 asc, u8 ascq, int match)
+{
+ struct ua_entry *ua;
+ struct list_head *h = &sess->ua_hash[ua_hashfn(lun)];
+
+ list_for_each_entry(ua, h, entry) {
+ if (ua->lun == lun) {
+ if (!match)
+ return ua;
+ if (ua->asc == asc && ua->ascq == ascq)
+ return ua;
+ }
+ }
+
+ return NULL;
+}
+
+int ua_pending(struct iscsi_session *sess, u32 lun)
+{
+ struct ua_entry *ua;
+
+ spin_lock(&sess->ua_hash_lock);
+ ua = ua_find_hash(sess, lun, 0, 0, 0);
+ spin_unlock(&sess->ua_hash_lock);
+
+ dprintk_ua(ua, sess, lun);
+
+ return ua ? 1 : 0;
+}
+
+/* sess->ua_hash_lock needs to be held */
+static struct ua_entry * __ua_get_hash(struct iscsi_session *sess, u32 lun,
+ u8 asc, u8 ascq, int match)
+{
+ struct ua_entry *ua = ua_find_hash(sess, lun, asc, ascq, match);
+
+ if (ua)
+ list_del_init(&ua->entry);
+
+ return ua;
+}
+
+struct ua_entry * ua_get_first(struct iscsi_session *sess, u32 lun)
+{
+ struct ua_entry *ua;
+
+ spin_lock(&sess->ua_hash_lock);
+ ua = __ua_get_hash(sess, lun, 0, 0, 0);
+ spin_unlock(&sess->ua_hash_lock);
+
+ dprintk_ua(ua, sess, lun);
+
+ return ua;
+}
+
+struct ua_entry * ua_get_match(struct iscsi_session *sess, u32 lun,
+ u8 asc, u8 ascq)
+{
+ struct ua_entry *ua;
+
+ spin_lock(&sess->ua_hash_lock);
+ ua = __ua_get_hash(sess, lun, asc, ascq, 1);
+ spin_unlock(&sess->ua_hash_lock);
+
+ dprintk_ua(ua, sess, lun);
+
+ return ua;
+}
+
+void ua_establish_for_session(struct iscsi_session *sess, u32 lun,
+ u8 asc, u8 ascq)
+{
+ struct list_head *l = &sess->ua_hash[ua_hashfn(lun)];
+ struct ua_entry *ua = kmem_cache_alloc(ua_cache, GFP_KERNEL);
+ struct ua_entry *e;
+
+ if (!ua) {
+ eprintk("%s", "Failed to alloc ua");
+ return;
+ }
+
+ ua->asc = asc;
+ ua->ascq = ascq;
+ ua->lun = lun;
+ ua->session = sess;
+ INIT_LIST_HEAD(&ua->entry);
+
+ spin_lock(&sess->ua_hash_lock);
+ /* One UA per occurrence of an event */
+ list_for_each_entry(e, l, entry) {
+ if (e->session == sess && e->lun == lun &&
+ e->asc == asc && e->ascq == ascq &&
+ e->session->exp_cmd_sn == sess->exp_cmd_sn) {
+ spin_unlock(&sess->ua_hash_lock);
+ ua_free(ua);
+ return;
+ }
+ }
+ list_add_tail(&ua->entry, l);
+ spin_unlock(&sess->ua_hash_lock);
+
+ dprintk_ua(ua, sess, lun);
+}
+
+void ua_establish_for_other_sessions(struct iscsi_session *sess, u32 lun,
+ u8 asc, u8 ascq)
+{
+ struct list_head *l = &sess->target->session_list;
+ struct iscsi_session *s;
+
+ spin_lock(&sess->target->session_list_lock);
+ list_for_each_entry(s, l, list)
+ if (s->sid != sess->sid)
+ ua_establish_for_session(s, lun, asc, ascq);
+ spin_unlock(&sess->target->session_list_lock);
+}
+
+void ua_establish_for_all_sessions(struct iscsi_target *target, u32 lun,
+ u8 asc, u8 ascq)
+{
+ struct list_head *l = &target->session_list;
+ struct iscsi_session *s;
+
+ spin_lock(&target->session_list_lock);
+ list_for_each_entry(s, l, list)
+ ua_establish_for_session(s, lun, asc, ascq);
+ spin_unlock(&target->session_list_lock);
+
+}
+
+void ua_free(struct ua_entry *ua)
+{
+ if (!ua)
+ return;
+
+ dprintk_ua(ua, ua->session, ua->lun);
+ BUG_ON(!list_empty(&ua->entry));
+ kmem_cache_free(ua_cache, ua);
+}
diff --git a/ubuntu/iscsitarget/volume.c b/ubuntu/iscsitarget/volume.c
new file mode 100644
index 00000000000..6abe16b6b5c
--- /dev/null
+++ b/ubuntu/iscsitarget/volume.c
@@ -0,0 +1,423 @@
+/*
+ * Volume manager
+ * (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org>
+ * This code is licenced under the GPL.
+ */
+
+#include <linux/types.h>
+#include <linux/parser.h>
+#include <linux/log2.h>
+
+#include "iscsi.h"
+#include "iscsi_dbg.h"
+#include "iotype.h"
+
+struct iet_volume *volume_lookup(struct iscsi_target *target, u32 lun)
+{
+ struct iet_volume *volume;
+
+ list_for_each_entry(volume, &target->volumes, list) {
+ if (volume->lun == lun)
+ return volume;
+ }
+ return NULL;
+}
+
+enum {
+ opt_type,
+ opt_iomode,
+ opt_scsiid,
+ opt_scsisn,
+ opt_blk_size,
+ opt_err,
+};
+
+static match_table_t tokens = {
+ {opt_type, "type=%s"},
+ {opt_iomode, "iomode=%s"},
+ {opt_scsiid, "scsiid=%s"},
+ {opt_scsisn, "scsisn=%s"},
+ {opt_blk_size, "blocksize=%u"},
+ {opt_err, NULL},
+};
+
+static int set_scsiid(struct iet_volume *volume, const char *id)
+{
+ size_t len;
+
+ if ((len = strlen(id)) > SCSI_ID_LEN) {
+ eprintk("SCSI ID too long, %zd provided, %u max\n", len,
+ SCSI_ID_LEN);
+ return -EINVAL;
+ }
+
+ memcpy(volume->scsi_id, id, len);
+
+ return 0;
+}
+
+static int set_scsisn(struct iet_volume *volume, const char *sn)
+{
+ size_t len;
+ int i;
+
+ if ((len = strlen(sn)) > SCSI_SN_LEN) {
+ eprintk("SCSI SN too long, %zd provided, %u max\n", len,
+ SCSI_SN_LEN);
+ return -EINVAL;
+ }
+
+ for (i = 0; i < len; i++) {
+ if (!isascii(*(sn + i)) || !isprint(*(sn + i))) {
+ eprintk("invalid characters in SCSI SN, %s\n",
+ "only printable ascii characters allowed!");
+ return -EINVAL;
+ }
+ }
+
+ memcpy(volume->scsi_sn, sn, len);
+
+ return 0;
+}
+
+/* Generate a MD5 hash of the target IQN and LUN number */
+static void gen_scsiid(struct iet_volume *volume)
+{
+ struct hash_desc hash;
+
+ hash.tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC);
+ hash.flags = 0;
+
+ if (hash.tfm) {
+ struct scatterlist sg[2];
+ unsigned int nbytes = 0;
+
+ sg_init_table(sg, 2);
+
+ sg_set_buf(&sg[0], volume->target->name,
+ strlen(volume->target->name));
+ nbytes += strlen(volume->target->name);
+
+ sg_set_buf(&sg[1], &volume->lun, sizeof(volume->lun));
+ nbytes += sizeof(volume->lun);
+
+ crypto_hash_init(&hash);
+ crypto_hash_update(&hash, sg, nbytes);
+ crypto_hash_final(&hash, volume->scsi_id);
+
+ crypto_free_hash(hash.tfm);
+ } else {
+ /* If no MD5 available set ID to TID and LUN */
+ memcpy(volume->scsi_id, &volume->target->tid,
+ sizeof(volume->target->tid));
+ memcpy(volume->scsi_id + sizeof(volume->target->tid),
+ &volume->lun, sizeof(volume->lun));
+ }
+
+}
+
+static int parse_volume_params(struct iet_volume *volume, char *params)
+{
+ int err = 0;
+ unsigned blk_sz;
+ substring_t args[MAX_OPT_ARGS];
+ char *p, *argp = NULL, *buf = (char *) get_zeroed_page(GFP_USER);
+
+ if (!buf)
+ return -ENOMEM;
+
+ strncpy(buf, params, PAGE_CACHE_SIZE);
+
+ while ((p = strsep(&buf, ",")) != NULL) {
+ int token;
+
+ if (!*p)
+ continue;
+ iet_strtolower(p);
+ token = match_token(p, tokens, args);
+ switch (token) {
+ case opt_type:
+ argp = match_strdup(&args[0]);
+ if (!argp) {
+ err = -ENOMEM;
+ break;
+ }
+ if (!(volume->iotype = get_iotype(argp)))
+ err = -ENOENT;
+ kfree(argp);
+ break;
+ case opt_iomode:
+ argp = match_strdup(&args[0]);
+ if (!argp) {
+ err = -ENOMEM;
+ break;
+ }
+ if (!strcmp(argp, "ro"))
+ SetLUReadonly(volume);
+ else if (!strcmp(argp, "wb"))
+ SetLUWCache(volume);
+ else if (strcmp(argp, "wt"))
+ err = -EINVAL;
+ kfree(argp);
+ break;
+ case opt_scsiid:
+ argp = match_strdup(&args[0]);
+ if (!argp) {
+ err = -ENOMEM;
+ break;
+ }
+ err = set_scsiid(volume, argp);
+ kfree(argp);
+ break;
+ case opt_scsisn:
+ argp = match_strdup(&args[0]);
+ if (!argp) {
+ err = -ENOMEM;
+ break;
+ }
+ err = set_scsisn(volume, argp);
+ kfree(argp);
+ break;
+ case opt_blk_size:
+ argp = match_strdup(&args[0]);
+ if (!argp) {
+ err = -ENOMEM;
+ break;
+ }
+ blk_sz = simple_strtoull(argp, NULL, 10);
+ if (is_power_of_2(blk_sz) &&
+ 512 <= blk_sz && blk_sz <= IET_MAX_BLOCK_SIZE)
+ volume->blk_shift = ilog2(blk_sz);
+ else {
+ eprintk("invalid BlockSize=%u\n", blk_sz);
+ err = -EINVAL;
+ }
+ kfree(argp);
+ break;
+ default:
+ break;
+ }
+ }
+
+ if (!err && !volume->iotype && !(volume->iotype = get_iotype("fileio"))) {
+ eprintk("%s\n", "Cannot find fileio");
+ err = -EINVAL;
+ }
+
+ free_page((unsigned long) buf);
+
+ return err;
+}
+
+int volume_add(struct iscsi_target *target, struct volume_info *info)
+{
+ int ret;
+ struct iet_volume *volume;
+ char *args;
+
+ volume = volume_lookup(target, info->lun);
+ if (volume)
+ return -EEXIST;
+
+ if (info->lun > 0x3fff)
+ return -EINVAL;
+
+ volume = kzalloc(sizeof(*volume), GFP_KERNEL);
+ if (!volume)
+ return -ENOMEM;
+
+ volume->target = target;
+ volume->lun = info->lun;
+
+ args = kzalloc(info->args_len + 1, GFP_KERNEL);
+ if (!args) {
+ ret = -ENOMEM;
+ goto free_volume;
+ }
+
+ ret = copy_from_user(args, (void *)(unsigned long)info->args_ptr,
+ info->args_len);
+ if (ret) {
+ ret = -EFAULT;
+ goto free_args;
+ }
+
+ ret = parse_volume_params(volume, args);
+ if (ret < 0)
+ goto free_args;
+
+ ret = volume->iotype->attach(volume, args);
+ if (ret < 0)
+ goto free_args;
+
+ if (!volume->scsi_id[0])
+ gen_scsiid(volume);
+
+ if (!volume->scsi_sn[0]) {
+ int i;
+
+ for (i = 0; i < SCSI_ID_LEN; i++)
+ snprintf(volume->scsi_sn + (i * 2), 3, "%02x",
+ volume->scsi_id[i]);
+ }
+
+ INIT_LIST_HEAD(&volume->queue.wait_list);
+ spin_lock_init(&volume->queue.queue_lock);
+ spin_lock_init(&volume->reserve_lock);
+
+ volume->l_state = IDEV_RUNNING;
+ atomic_set(&volume->l_count, 0);
+
+ list_add_tail(&volume->list, &target->volumes);
+ atomic_inc(&target->nr_volumes);
+
+ kfree(args);
+
+ return 0;
+free_args:
+ kfree(args);
+free_volume:
+ put_iotype(volume->iotype);
+ kfree(volume);
+
+ return ret;
+}
+
+void iscsi_volume_destroy(struct iet_volume *volume)
+{
+ assert(volume->l_state == IDEV_DEL);
+ assert(!atomic_read(&volume->l_count));
+
+ volume->iotype->detach(volume);
+ put_iotype(volume->iotype);
+ list_del(&volume->list);
+ kfree(volume);
+}
+
+int iscsi_volume_del(struct iscsi_target *target, struct volume_info *info)
+{
+ struct iet_volume *volume;
+
+ eprintk("%x %x\n", target->tid, info->lun);
+ if (!(volume = volume_lookup(target, info->lun)))
+ return -ENOENT;
+
+ volume->l_state = IDEV_DEL;
+ atomic_dec(&target->nr_volumes);
+ if (!atomic_read(&volume->l_count))
+ iscsi_volume_destroy(volume);
+
+ return 0;
+}
+
+struct iet_volume *volume_get(struct iscsi_target *target, u32 lun)
+{
+ struct iet_volume *volume;
+
+ if ((volume = volume_lookup(target, lun))) {
+ if (volume->l_state == IDEV_RUNNING)
+ atomic_inc(&volume->l_count);
+ else
+ volume = NULL;
+ }
+ return volume;
+}
+
+void volume_put(struct iet_volume *volume)
+{
+ if (atomic_dec_and_test(&volume->l_count) && volume->l_state == IDEV_DEL)
+ iscsi_volume_destroy(volume);
+}
+
+int volume_reserve(struct iet_volume *volume, u64 sid)
+{
+ int err = 0;
+
+ if (!volume)
+ return -ENOENT;
+
+ spin_lock(&volume->reserve_lock);
+ if (volume->reserve_sid && volume->reserve_sid != sid)
+ err = -EBUSY;
+ else
+ volume->reserve_sid = sid;
+
+ spin_unlock(&volume->reserve_lock);
+ return err;
+}
+
+int is_volume_reserved(struct iet_volume *volume, u64 sid)
+{
+ int err = 0;
+
+ if (!volume)
+ return -ENOENT;
+
+ spin_lock(&volume->reserve_lock);
+ if (!volume->reserve_sid || volume->reserve_sid == sid)
+ err = 0;
+ else
+ err = -EBUSY;
+
+ spin_unlock(&volume->reserve_lock);
+ return err;
+}
+
+int volume_release(struct iet_volume *volume, u64 sid, int force)
+{
+ int err = 0;
+
+ if (!volume)
+ return -ENOENT;
+
+ spin_lock(&volume->reserve_lock);
+
+ if (force || volume->reserve_sid == sid)
+ volume->reserve_sid = 0;
+ else
+ err = -EBUSY;
+
+ spin_unlock(&volume->reserve_lock);
+ return err;
+}
+
+static void iet_volume_info_show(struct seq_file *seq, struct iscsi_target *target)
+{
+ struct iet_volume *volume;
+
+ list_for_each_entry(volume, &target->volumes, list) {
+ seq_printf(seq, "\tlun:%u state:%x iotype:%s",
+ volume->lun, volume->l_state, volume->iotype->name);
+ if (LUReadonly(volume))
+ seq_printf(seq, " iomode:ro");
+ else if (LUWCache(volume))
+ seq_printf(seq, " iomode:wb");
+ else
+ seq_printf(seq, " iomode:wt");
+
+ seq_printf(seq, " blocks:%llu blocksize:%u",
+ volume->blk_cnt, 1 << volume->blk_shift);
+ if (volume->iotype->show)
+ volume->iotype->show(volume, seq);
+ else
+ seq_printf(seq, "\n");
+ }
+}
+
+static int iet_volume_seq_open(struct inode *inode, struct file *file)
+{
+ int res;
+ res = seq_open(file, &iet_seq_op);
+ if (!res)
+ ((struct seq_file *)file->private_data)->private =
+ iet_volume_info_show;
+ return res;
+}
+
+struct file_operations volume_seq_fops = {
+ .owner = THIS_MODULE,
+ .open = iet_volume_seq_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = seq_release,
+};
diff --git a/ubuntu/iscsitarget/wthread.c b/ubuntu/iscsitarget/wthread.c
new file mode 100644
index 00000000000..997a3d65c59
--- /dev/null
+++ b/ubuntu/iscsitarget/wthread.c
@@ -0,0 +1,245 @@
+/*
+ * Worker thread.
+ * (C) 2004 - 2005 FUJITA Tomonori <tomof@acm.org>
+ * This code is licenced under the GPL.
+ */
+
+#include <linux/kthread.h>
+
+#include "iscsi.h"
+#include "iscsi_dbg.h"
+
+struct worker_thread_info *worker_thread_pool;
+
+void wthread_queue(struct iscsi_cmnd *cmnd)
+{
+ struct worker_thread_info *info = cmnd->conn->session->target->wthread_info;
+
+ if (!list_empty(&cmnd->list)) {
+ struct iscsi_scsi_cmd_hdr *req = cmnd_hdr(cmnd);
+ eprintk("%x %p %x %x %x %x %lx %x\n",
+ cmnd_itt(cmnd), req, req->opcode, req->scb[0], cmnd->pdu.datasize,
+ be32_to_cpu(req->data_length), cmnd->flags, req->flags);
+
+ if (cmnd->lun)
+ eprintk("%u\n", cmnd->lun->lun);
+ assert(list_empty(&cmnd->list));
+ }
+
+ spin_lock(&info->wthread_lock);
+ list_add_tail(&cmnd->list, &info->work_queue);
+ spin_unlock(&info->wthread_lock);
+
+ atomic_inc(&cmnd->conn->nr_busy_cmnds);
+
+ wake_up(&info->wthread_sleep);
+}
+
+static struct iscsi_cmnd * get_ready_cmnd(struct worker_thread_info *info)
+{
+ struct iscsi_cmnd *cmnd = NULL;
+
+ spin_lock(&info->wthread_lock);
+ if (!list_empty(&info->work_queue)) {
+ cmnd = list_entry(info->work_queue.next, struct iscsi_cmnd, list);
+ list_del_init(&cmnd->list);
+
+ assert(cmnd->conn);
+ }
+ spin_unlock(&info->wthread_lock);
+
+ return cmnd;
+}
+
+static int cmnd_execute(struct iscsi_cmnd *cmnd)
+{
+ int type = cmnd->conn->session->target->trgt_param.target_type;
+
+ assert(target_type_array[type]->execute_cmnd);
+ return target_type_array[type]->execute_cmnd(cmnd);
+}
+
+static int worker_thread(void *arg)
+{
+ struct worker_thread *wt = (struct worker_thread *) arg;
+ struct worker_thread_info *info = wt->w_info;
+ struct iscsi_cmnd *cmnd;
+ struct iscsi_conn *conn;
+ DECLARE_WAITQUEUE(wait, current);
+
+ get_io_context(GFP_KERNEL, -1);
+
+ if (!current->io_context)
+ eprintk("%s\n", "Failed to get IO context");
+ else if (info->wthread_ioc)
+ copy_io_context(&current->io_context, &info->wthread_ioc);
+ else
+ info->wthread_ioc = current->io_context;
+
+ add_wait_queue(&info->wthread_sleep, &wait);
+
+ __set_current_state(TASK_RUNNING);
+ do {
+ while (!list_empty(&info->work_queue) &&
+ (cmnd = get_ready_cmnd(info))) {
+ conn = cmnd->conn;
+ if (cmnd_tmfabort(cmnd))
+ cmnd_release(cmnd, 1);
+ else
+ cmnd_execute(cmnd);
+ assert(conn);
+ atomic_dec(&conn->nr_busy_cmnds);
+ }
+
+ set_current_state(TASK_INTERRUPTIBLE);
+ if (list_empty(&info->work_queue))
+ schedule();
+
+ __set_current_state(TASK_RUNNING);
+ } while (!kthread_should_stop());
+
+ remove_wait_queue(&info->wthread_sleep, &wait);
+
+ if (current->io_context) {
+ struct io_context *ioc = current->io_context;
+
+ task_lock(current);
+ current->io_context = NULL;
+ task_unlock(current);
+
+ put_io_context(ioc);
+ }
+
+ return 0;
+}
+
+static int start_one_worker_thread(struct worker_thread_info *info, u32 tid)
+{
+ struct worker_thread *wt;
+ struct task_struct *task;
+
+ if (!(wt = kmalloc(sizeof(struct worker_thread), GFP_KERNEL)))
+ return -ENOMEM;
+
+ wt->w_info = info;
+ task = kthread_create(worker_thread, wt, "istiod%d", tid);
+ if (IS_ERR(task)) {
+ kfree(wt);
+ return PTR_ERR(task);
+ }
+
+ wt->w_task = task;
+ list_add(&wt->w_list, &info->wthread_list);
+ info->nr_running_wthreads++;
+
+ wake_up_process(task);
+
+ return 0;
+}
+
+static int stop_one_worker_thread(struct worker_thread *wt)
+{
+ struct worker_thread_info *info = wt->w_info;
+ int err;
+
+ assert(wt->w_task);
+ err = kthread_stop(wt->w_task);
+
+ if (err < 0 && err != -EINTR)
+ return err;
+
+ list_del(&wt->w_list);
+ kfree(wt);
+ info->nr_running_wthreads--;
+
+ return 0;
+}
+
+int wthread_init(struct worker_thread_info *info)
+{
+ spin_lock_init(&info->wthread_lock);
+
+ info->nr_running_wthreads = 0;
+ info->wthread_ioc = NULL;
+
+ INIT_LIST_HEAD(&info->work_queue);
+ INIT_LIST_HEAD(&info->wthread_list);
+
+ init_waitqueue_head(&info->wthread_sleep);
+
+ return 0;
+}
+
+int wthread_start(struct worker_thread_info *info, int wthreads, u32 tid)
+{
+ int err = 0;
+
+ while (info->nr_running_wthreads < wthreads) {
+ if ((err = start_one_worker_thread(info, tid)) < 0) {
+ eprintk("Fail to create a worker thread %d\n", err);
+ goto out;
+ }
+ }
+
+ while (info->nr_running_wthreads > wthreads) {
+ struct worker_thread *wt;
+ wt = list_entry(info->wthread_list.next, struct worker_thread, w_list);
+ if ((err = stop_one_worker_thread(wt)) < 0) {
+ eprintk("Fail to stop a worker thread %d\n", err);
+ break;
+ }
+ }
+out:
+ return err;
+}
+
+int wthread_stop(struct worker_thread_info *info)
+{
+ struct worker_thread *wt, *tmp;
+ int err = 0;
+
+ list_for_each_entry_safe(wt, tmp, &info->wthread_list, w_list) {
+ if ((err = stop_one_worker_thread(wt)) < 0) {
+ eprintk("Fail to stop a worker thread %d\n", err);
+ return err;
+ }
+ }
+
+ return err;
+}
+
+int wthread_module_init()
+{
+ int err;
+
+ if (!worker_thread_pool_size)
+ return 0;
+
+ worker_thread_pool = kmalloc(sizeof(struct worker_thread_info),
+ GFP_KERNEL);
+ if (!worker_thread_pool)
+ return -ENOMEM;
+
+ wthread_init(worker_thread_pool);
+
+ err = wthread_start(worker_thread_pool, worker_thread_pool_size, 0);
+ if (err) {
+ kfree(worker_thread_pool);
+ worker_thread_pool = NULL;
+ return err;
+ }
+
+ iprintk("iscsi_trgt using worker thread pool; size = %ld\n",
+ worker_thread_pool_size);
+
+ return 0;
+}
+
+void wthread_module_exit()
+{
+ if (!worker_thread_pool_size)
+ return;
+
+ wthread_stop(worker_thread_pool);
+ kfree(worker_thread_pool);
+}
diff --git a/ubuntu/lirc/Kconfig b/ubuntu/lirc/Kconfig
new file mode 100644
index 00000000000..21dcc40d1f9
--- /dev/null
+++ b/ubuntu/lirc/Kconfig
@@ -0,0 +1,88 @@
+config LIRC_DEV
+ tristate "LIRC Device support"
+ default m
+
+config LIRC_ATIUSB
+ tristate "LIRC ATI RF Remote"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_BT829
+ tristate "LIRC BT829"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_ENE0100
+ tristate "LIRC ENE0100"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_I2C
+ tristate "LIRC I2C interface remote"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_IGORPLUGUSB
+ tristate "LIRC IGOR custom remote"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_IMON
+ tristate "LIRC Imon remote or pad"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_IT87
+ tristate "LIRC IT87"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_ITE8709
+ tristate "LIRC ITE8709"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_MCEUSB
+ tristate "LIRC Microsoft Media Center Remote"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_PARALLEL
+ tristate "LIRC Parallel port custom remote"
+ default n
+ depends on LIRC_DEV
+
+config LIRC_SASEM
+ tristate "LIRC Sasem"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_SERIAL
+ tristate "LIRC Serial port remote"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_SIR
+ tristate "LIRC Laptop port IR (SIR))"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_STREAMZAP
+ tristate "LIRC Streamzap remote"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_TTUSBIR
+ tristate "LIRC TT USB IR device"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_CONFIG_LIRC_WPC8769L
+ tristate "LIRC WPC8769L device"
+ default m
+ depends on LIRC_DEV
+
+config LIRC_GPIO
+ tristate "LIRC TV Card GPIO remote"
+ default n
+ depends on LIRC_DEV
diff --git a/ubuntu/lirc/Makefile b/ubuntu/lirc/Makefile
new file mode 100644
index 00000000000..006a6c8c97f
--- /dev/null
+++ b/ubuntu/lirc/Makefile
@@ -0,0 +1,23 @@
+#include $(src)/../../.config
+
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)
+
+obj-$(CONFIG_LIRC_DEV) += lirc_dev/
+obj-$(CONFIG_LIRC_ATIUSB) += lirc_atiusb/
+obj-$(CONFIG_LIRC_BT829) += lirc_bt829/
+obj-$(CONFIG_LIRC_ENE0100) += lirc_ene0100/
+obj-$(CONFIG_LIRC_I2C) += lirc_i2c/
+obj-$(CONFIG_LIRC_IGORPLUGUSB) += lirc_igorplugusb/
+obj-$(CONFIG_LIRC_IMON) += lirc_imon/
+obj-$(CONFIG_LIRC_IT87) += lirc_it87/
+obj-$(CONFIG_LIRC_ITE8709) += lirc_ite8709/
+obj-$(CONFIG_LIRC_MCEUSB) += lirc_mceusb/
+obj-$(CONFIG_LIRC_PARALLEL) += lirc_parallel/
+obj-$(CONFIG_LIRC_SASEM) += lirc_sasem/
+obj-$(CONFIG_LIRC_SERIAL) += lirc_serial/
+obj-$(CONFIG_LIRC_SIR) += lirc_sir/
+obj-$(CONFIG_LIRC_STREAMZAP) += lirc_streamzap/
+obj-$(CONFIG_LIRC_TTUSBIR) += lirc_ttusbir/
+obj-$(CONFIG_LIRC_GPIO) += lirc_gpio/
+obj-$(CONFIG_LIRC_TTUSBIR) += lirc_ttusbir/
+obj-$(CONFIG_LIRC_WPC8769L) += lirc_wpc8769l/
diff --git a/ubuntu/lirc/kcompat.h b/ubuntu/lirc/kcompat.h
new file mode 100644
index 00000000000..1ede9429dd6
--- /dev/null
+++ b/ubuntu/lirc/kcompat.h
@@ -0,0 +1,402 @@
+/* $Id: kcompat.h,v 5.44 2009/03/22 08:45:47 lirc Exp $ */
+
+#ifndef _KCOMPAT_H
+#define _KCOMPAT_H
+
+#include <linux/version.h>
+
+#ifndef __func__
+#define __func__ __FUNCTION__
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16)
+#define LIRC_THIS_MODULE(x) x,
+#else /* >= 2.6.16 */
+#define LIRC_THIS_MODULE(x)
+#endif
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+
+#include <linux/device.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
+#define LIRC_HAVE_DEVFS
+#define LIRC_HAVE_DEVFS_26
+#endif
+
+#define LIRC_HAVE_SYSFS
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 13)
+
+typedef struct class_simple lirc_class_t;
+
+static inline lirc_class_t *class_create(struct module *owner, char *name)
+{
+ return class_simple_create(owner, name);
+}
+
+static inline void class_destroy(lirc_class_t *cls)
+{
+ class_simple_destroy(cls);
+}
+
+#define lirc_device_create(cs, parent, dev, drvdata, fmt, args...) \
+ class_simple_device_add(cs, dev, parent, fmt, ## args)
+
+static inline void lirc_device_destroy(lirc_class_t *cls, dev_t devt)
+{
+ class_simple_device_remove(devt);
+}
+
+#else /* >= 2.6.13 */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15)
+
+#define lirc_device_create(cs, parent, dev, drvdata, fmt, args...) \
+ class_device_create(cs, dev, parent, fmt, ## args)
+
+#else /* >= 2.6.15 */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
+
+#define lirc_device_create(cs, parent, dev, drvdata, fmt, args...) \
+ class_device_create(cs, NULL, dev, parent, fmt, ## args)
+
+#else /* >= 2.6.26 */
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27)
+
+#define lirc_device_create(cs, parent, dev, drvdata, fmt, args...) \
+ device_create(cs, parent, dev, fmt, ## args)
+
+#else /* >= 2.6.27 */
+
+#define lirc_device_create device_create
+
+#endif /* >= 2.6.27 */
+
+#endif /* >= 2.6.26 */
+
+#define LIRC_DEVFS_PREFIX
+
+#endif /* >= 2.6.15 */
+
+typedef struct class lirc_class_t;
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 26)
+
+#define lirc_device_destroy class_device_destroy
+
+#else
+
+#define lirc_device_destroy device_destroy
+
+#endif
+
+#endif /* >= 2.6.13 */
+
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
+#define LIRC_HAVE_DEVFS
+#define LIRC_HAVE_DEVFS_24
+#endif
+
+#ifndef LIRC_DEVFS_PREFIX
+#define LIRC_DEVFS_PREFIX "usb/"
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 3, 0)
+#include <linux/timer.h>
+#include <linux/interrupt.h>
+static inline void del_timer_sync(struct timer_list *timerlist)
+{
+ start_bh_atomic();
+ del_timer(timerlist);
+ end_bh_atomic();
+}
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
+#ifdef daemonize
+#undef daemonize
+#endif
+#define daemonize(name) do { \
+ \
+ lock_kernel(); \
+ \
+ exit_mm(current); \
+ exit_files(current); \
+ exit_fs(current); \
+ current->session = 1; \
+ current->pgrp = 1; \
+ current->euid = 0; \
+ current->tty = NULL; \
+ sigfillset(&current->blocked); \
+ \
+ strcpy(current->comm, name); \
+ \
+ unlock_kernel(); \
+ \
+} while (0)
+
+/* Not sure when this was introduced, sometime during 2.5.X */
+#define MODULE_PARM_int(x) MODULE_PARM(x, "i")
+#define MODULE_PARM_bool(x) MODULE_PARM(x, "i")
+#define MODULE_PARM_long(x) MODULE_PARM(x, "l")
+#define module_param(x, y, z) MODULE_PARM_##y(x)
+#else
+#include <linux/moduleparam.h>
+#endif /* Linux < 2.6.0 */
+
+/* DevFS header */
+#if defined(LIRC_HAVE_DEVFS)
+#include <linux/devfs_fs_kernel.h>
+#endif
+
+#ifdef LIRC_HAVE_DEVFS_24
+#ifdef register_chrdev
+#undef register_chrdev
+#endif
+#define register_chrdev devfs_register_chrdev
+#ifdef unregister_chrdev
+#undef unregister_chrdev
+#endif
+#define unregister_chrdev devfs_unregister_chrdev
+#endif /* DEVFS 2.4 */
+
+#ifndef LIRC_HAVE_SYSFS
+#define class_destroy(x) do { } while (0)
+#define class_create(x, y) NULL
+#define lirc_device_destroy(x, y) do { } while (0)
+#define lirc_device_create(x, y, z, xx, yy, zz) 0
+#define IS_ERR(x) 0
+typedef struct class_simple
+{
+ int notused;
+} lirc_class_t;
+#endif /* No SYSFS */
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 5, 0)
+#define KERNEL_2_5
+
+/*
+ * We still are using MOD_INC_USE_COUNT/MOD_DEC_USE_COUNT in the set_use_inc
+ * function of all modules for 2.4 kernel compatibility.
+ *
+ * For 2.6 kernels reference counting is done in lirc_dev by
+ * try_module_get()/module_put() because the old approach is racy.
+ *
+ */
+#ifdef MOD_INC_USE_COUNT
+#undef MOD_INC_USE_COUNT
+#endif
+#define MOD_INC_USE_COUNT
+
+#ifdef MOD_DEC_USE_COUNT
+#undef MOD_DEC_USE_COUNT
+#endif
+#define MOD_DEC_USE_COUNT
+
+#ifdef EXPORT_NO_SYMBOLS
+#undef EXPORT_NO_SYMBOLS
+#endif
+#define EXPORT_NO_SYMBOLS
+
+#else /* Kernel < 2.5.0 */
+
+static inline int try_module_get(struct module *module)
+{
+ return 1;
+}
+
+static inline void module_put(struct module *module)
+{
+}
+
+#endif /* Kernel >= 2.5.0 */
+
+#ifndef MODULE_LICENSE
+#define MODULE_LICENSE(x)
+#endif
+
+#ifndef MODULE_PARM_DESC
+#define MODULE_PARM_DESC(x, y)
+#endif
+
+#ifndef MODULE_ALIAS_CHARDEV_MAJOR
+#define MODULE_ALIAS_CHARDEV_MAJOR(x)
+#endif
+
+#ifndef MODULE_DEVICE_TABLE
+#define MODULE_DEVICE_TABLE(x, y)
+#endif
+
+#include <linux/interrupt.h>
+#ifndef IRQ_RETVAL
+typedef void irqreturn_t;
+#define IRQ_NONE
+#define IRQ_HANDLED
+#define IRQ_RETVAL(x)
+#endif
+
+#ifndef MOD_IN_USE
+#ifdef CONFIG_MODULE_UNLOAD
+#define MOD_IN_USE module_refcount(THIS_MODULE)
+#else
+#error "LIRC modules currently require"
+#error " 'Loadable module support ---> Module unloading'"
+#error "to be enabled in the kernel"
+#endif
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
+#if !defined(local_irq_save)
+#define local_irq_save(flags) do { save_flags(flags); cli(); } while (0)
+#endif
+#if !defined(local_irq_restore)
+#define local_irq_restore(flags) do { restore_flags(flags); } while (0)
+#endif
+#endif
+
+#if KERNEL_VERSION(2, 4, 0) <= LINUX_VERSION_CODE
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 22)
+#include <linux/pci.h>
+static inline char *pci_name(struct pci_dev *pdev)
+{
+ return pdev->slot_name;
+}
+#endif /* kernel < 2.4.22 */
+#endif /* kernel >= 2.4.0 */
+
+/*************************** I2C specific *****************************/
+#include <linux/i2c.h>
+
+#ifndef I2C_CLIENT_END
+#error "********************************************************"
+#error " Sorry, this driver needs the new I2C stack. "
+#error " You can get it at http://www2.lm-sensors.nu/~lm78/. "
+#error "********************************************************"
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 5, 0)
+
+#undef i2c_get_clientdata
+#define i2c_get_clientdata(client) ((client)->data)
+
+
+#undef i2c_set_clientdata
+#define i2c_set_clientdata(client_ptr, new_data) do { \
+ (client_ptr)->data = new_data; \
+} while (0)
+
+
+#endif
+
+/* removed in 2.6.14 */
+#ifndef I2C_ALGO_BIT
+# define I2C_ALGO_BIT 0
+#endif
+
+/* removed in 2.6.16 */
+#ifndef I2C_DRIVERID_EXP3
+# define I2C_DRIVERID_EXP3 0xf003
+#endif
+
+/*************************** USB specific *****************************/
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
+#include <linux/usb.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 8)
+static inline int usb_kill_urb(struct urb *urb)
+{
+ return usb_unlink_urb(urb);
+}
+#endif
+
+/* removed in 2.6.14 */
+#ifndef URB_ASYNC_UNLINK
+#define URB_ASYNC_UNLINK 0
+#endif
+#endif
+
+/*************************** bttv specific ****************************/
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15) /* BTTV_* -> BTTV_BOARD_* */
+#define BTTV_BOARD_UNKNOWN BTTV_UNKNOWN
+#define BTTV_BOARD_PXELVWPLTVPAK BTTV_PXELVWPLTVPAK
+#define BTTV_BOARD_PXELVWPLTVPRO BTTV_PXELVWPLTVPRO
+#define BTTV_BOARD_PV_BT878P_9B BTTV_PV_BT878P_9B
+#define BTTV_BOARD_PV_BT878P_PLUS BTTV_PV_BT878P_PLUS
+#define BTTV_BOARD_AVERMEDIA BTTV_AVERMEDIA
+#define BTTV_BOARD_AVPHONE98 BTTV_AVPHONE98
+#define BTTV_BOARD_AVERMEDIA98 BTTV_AVERMEDIA98
+#define BTTV_BOARD_CHRONOS_VS2 BTTV_CHRONOS_VS2
+#define BTTV_BOARD_MIRO BTTV_MIRO
+#define BTTV_BOARD_DYNALINK BTTV_DYNALINK
+#define BTTV_BOARD_WINVIEW_601 BTTV_WINVIEW_601
+#ifdef BTTV_KWORLD
+#define BTTV_BOARD_KWORLD BTTV_KWORLD
+#endif
+#define BTTV_BOARD_MAGICTVIEW061 BTTV_MAGICTVIEW061
+#define BTTV_BOARD_MAGICTVIEW063 BTTV_MAGICTVIEW063
+#define BTTV_BOARD_PHOEBE_TVMAS BTTV_PHOEBE_TVMAS
+#ifdef BTTV_BESTBUY_EASYTV2
+#define BTTV_BOARD_BESTBUY_EASYTV BTTV_BESTBUY_EASYTV
+#define BTTV_BOARD_BESTBUY_EASYTV2 BTTV_BESTBUY_EASYTV2
+#endif
+#define BTTV_BOARD_FLYVIDEO BTTV_FLYVIDEO
+#define BTTV_BOARD_FLYVIDEO_98 BTTV_FLYVIDEO_98
+#define BTTV_BOARD_TYPHOON_TVIEW BTTV_TYPHOON_TVIEW
+#ifdef BTTV_FLYVIDEO_98FM
+#define BTTV_BOARD_FLYVIDEO_98FM BTTV_FLYVIDEO_98FM
+#endif
+#define BTTV_BOARD_WINFAST2000 BTTV_WINFAST2000
+#ifdef BTTV_GVBCTV5PCI
+#define BTTV_BOARD_GVBCTV5PCI BTTV_GVBCTV5PCI
+#endif
+#endif /* end BTTV_* -> BTTV_BOARD_* */
+
+
+/******************************* pm.h *********************************/
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 11)
+typedef u32 pm_message_t;
+#endif /* kernel < 2.6.11 */
+#endif /* kernel >= 2.6.0 */
+
+/*************************** interrupt.h ******************************/
+/* added in 2.6.18, old defines removed in 2.6.24 */
+#ifndef IRQF_DISABLED
+#define IRQF_DISABLED SA_INTERRUPT
+#endif
+#ifndef IRQF_SHARED
+#define IRQF_SHARED SA_SHIRQ
+#endif
+
+/*************************** spinlock.h *******************************/
+/* added in 2.6.11 */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 11)
+#define DEFINE_SPINLOCK(x) spinlock_t x = SPIN_LOCK_UNLOCKED
+#endif
+
+/***************************** slab.h *********************************/
+/* added in 2.6.14 */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 14)
+static inline void *kzalloc(size_t size, gfp_t flags)
+{
+ void *ret = kmalloc(size, flags);
+ if (ret)
+ memset(ret, 0, size);
+ return ret;
+}
+#endif
+
+/****************************** fs.h **********************************/
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
+static inline unsigned iminor(struct inode *inode)
+{
+ return MINOR(inode->i_rdev);
+}
+#endif
+
+#endif /* _KCOMPAT_H */
diff --git a/ubuntu/lirc/lirc.h b/ubuntu/lirc/lirc.h
new file mode 100644
index 00000000000..7c4d09e0c44
--- /dev/null
+++ b/ubuntu/lirc/lirc.h
@@ -0,0 +1,105 @@
+/* $Id: lirc.h,v 5.19 2009/08/29 07:52:41 lirc Exp $ */
+
+#ifndef _LINUX_LIRC_H
+#define _LINUX_LIRC_H
+
+#if defined(__linux__)
+#include <linux/ioctl.h>
+#elif defined(_NetBSD_)
+#include <sys/ioctl.h>
+#elif defined(_CYGWIN_)
+#define __USE_LINUX_IOCTL_DEFS
+#include <sys/ioctl.h>
+#endif
+
+#define PULSE_BIT 0x01000000
+#define PULSE_MASK 0x00FFFFFF
+
+typedef int lirc_t;
+
+/*** lirc compatible hardware features ***/
+
+#define LIRC_MODE2SEND(x) (x)
+#define LIRC_SEND2MODE(x) (x)
+#define LIRC_MODE2REC(x) ((x) << 16)
+#define LIRC_REC2MODE(x) ((x) >> 16)
+
+#define LIRC_MODE_RAW 0x00000001
+#define LIRC_MODE_PULSE 0x00000002
+#define LIRC_MODE_MODE2 0x00000004
+#define LIRC_MODE_CODE 0x00000008
+#define LIRC_MODE_LIRCCODE 0x00000010
+#define LIRC_MODE_STRING 0x00000020
+
+
+#define LIRC_CAN_SEND_RAW LIRC_MODE2SEND(LIRC_MODE_RAW)
+#define LIRC_CAN_SEND_PULSE LIRC_MODE2SEND(LIRC_MODE_PULSE)
+#define LIRC_CAN_SEND_MODE2 LIRC_MODE2SEND(LIRC_MODE_MODE2)
+#define LIRC_CAN_SEND_CODE LIRC_MODE2SEND(LIRC_MODE_CODE)
+#define LIRC_CAN_SEND_LIRCCODE LIRC_MODE2SEND(LIRC_MODE_LIRCCODE)
+#define LIRC_CAN_SEND_STRING LIRC_MODE2SEND(LIRC_MODE_STRING)
+
+#define LIRC_CAN_SEND_MASK 0x0000003f
+
+#define LIRC_CAN_SET_SEND_CARRIER 0x00000100
+#define LIRC_CAN_SET_SEND_DUTY_CYCLE 0x00000200
+#define LIRC_CAN_SET_TRANSMITTER_MASK 0x00000400
+
+#define LIRC_CAN_REC_RAW LIRC_MODE2REC(LIRC_MODE_RAW)
+#define LIRC_CAN_REC_PULSE LIRC_MODE2REC(LIRC_MODE_PULSE)
+#define LIRC_CAN_REC_MODE2 LIRC_MODE2REC(LIRC_MODE_MODE2)
+#define LIRC_CAN_REC_CODE LIRC_MODE2REC(LIRC_MODE_CODE)
+#define LIRC_CAN_REC_LIRCCODE LIRC_MODE2REC(LIRC_MODE_LIRCCODE)
+#define LIRC_CAN_REC_STRING LIRC_MODE2REC(LIRC_MODE_STRING)
+
+#define LIRC_CAN_REC_MASK LIRC_MODE2REC(LIRC_CAN_SEND_MASK)
+
+#define LIRC_CAN_SET_REC_CARRIER (LIRC_CAN_SET_SEND_CARRIER << 16)
+#define LIRC_CAN_SET_REC_DUTY_CYCLE (LIRC_CAN_SET_SEND_DUTY_CYCLE << 16)
+
+#define LIRC_CAN_SET_REC_DUTY_CYCLE_RANGE 0x40000000
+#define LIRC_CAN_SET_REC_CARRIER_RANGE 0x80000000
+#define LIRC_CAN_GET_REC_RESOLUTION 0x20000000
+
+#define LIRC_CAN_SEND(x) ((x)&LIRC_CAN_SEND_MASK)
+#define LIRC_CAN_REC(x) ((x)&LIRC_CAN_REC_MASK)
+
+#define LIRC_CAN_NOTIFY_DECODE 0x01000000
+
+/*** IOCTL commands for lirc driver ***/
+
+#define LIRC_GET_FEATURES _IOR('i', 0x00000000, unsigned long)
+
+#define LIRC_GET_SEND_MODE _IOR('i', 0x00000001, unsigned long)
+#define LIRC_GET_REC_MODE _IOR('i', 0x00000002, unsigned long)
+#define LIRC_GET_SEND_CARRIER _IOR('i', 0x00000003, unsigned int)
+#define LIRC_GET_REC_CARRIER _IOR('i', 0x00000004, unsigned int)
+#define LIRC_GET_SEND_DUTY_CYCLE _IOR('i', 0x00000005, unsigned int)
+#define LIRC_GET_REC_DUTY_CYCLE _IOR('i', 0x00000006, unsigned int)
+#define LIRC_GET_REC_RESOLUTION _IOR('i', 0x00000007, unsigned int)
+
+/* code length in bits, currently only for LIRC_MODE_LIRCCODE */
+#define LIRC_GET_LENGTH _IOR('i', 0x0000000f, unsigned long)
+
+#define LIRC_SET_SEND_MODE _IOW('i', 0x00000011, unsigned long)
+#define LIRC_SET_REC_MODE _IOW('i', 0x00000012, unsigned long)
+/* Note: these can reset the according pulse_width */
+#define LIRC_SET_SEND_CARRIER _IOW('i', 0x00000013, unsigned int)
+#define LIRC_SET_REC_CARRIER _IOW('i', 0x00000014, unsigned int)
+#define LIRC_SET_SEND_DUTY_CYCLE _IOW('i', 0x00000015, unsigned int)
+#define LIRC_SET_REC_DUTY_CYCLE _IOW('i', 0x00000016, unsigned int)
+#define LIRC_SET_TRANSMITTER_MASK _IOW('i', 0x00000017, unsigned int)
+
+/*
+ * to set a range use
+ * LIRC_SET_REC_DUTY_CYCLE_RANGE/LIRC_SET_REC_CARRIER_RANGE with the
+ * lower bound first and later
+ * LIRC_SET_REC_DUTY_CYCLE/LIRC_SET_REC_CARRIER with the upper bound
+ */
+
+#define LIRC_SET_REC_DUTY_CYCLE_RANGE _IOW('i', 0x0000001e, unsigned int)
+#define LIRC_SET_REC_CARRIER_RANGE _IOW('i', 0x0000001f, unsigned int)
+
+#define LIRC_NOTIFY_DECODE _IO('i', 0x00000020)
+
+#endif
diff --git a/ubuntu/lirc/lirc_atiusb/Makefile b/ubuntu/lirc/lirc_atiusb/Makefile
new file mode 100644
index 00000000000..a1b837ebb53
--- /dev/null
+++ b/ubuntu/lirc/lirc_atiusb/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_ATIUSB) += lirc_atiusb.o
diff --git a/ubuntu/lirc/lirc_atiusb/lirc_atiusb.c b/ubuntu/lirc/lirc_atiusb/lirc_atiusb.c
new file mode 100644
index 00000000000..a529f69d1a1
--- /dev/null
+++ b/ubuntu/lirc/lirc_atiusb/lirc_atiusb.c
@@ -0,0 +1,1450 @@
+/*
+ * lirc_atiusb - USB remote support for LIRC
+ * (currently only supports X10 USB remotes)
+ * (supports ATI Remote Wonder and ATI Remote Wonder II, too)
+ *
+ * Copyright (C) 2003-2004 Paul Miller <pmiller9@users.sourceforge.net>
+ *
+ * This driver was derived from:
+ * Vladimir Dergachev <volodya@minspring.com>'s 2002
+ * "USB ATI Remote support" (input device)
+ * Adrian Dewhurst <sailor-lk@sailorfrag.net>'s 2002
+ * "USB StreamZap remote driver" (LIRC)
+ * Artur Lipowski <alipowski@kki.net.pl>'s 2002
+ * "lirc_dev" and "lirc_gpio" LIRC modules
+ * Michael Wojciechowski
+ * initial xbox support
+ * Vassilis Virvilis <vasvir@iit.demokritos.gr> 2006
+ * reworked the patch for lirc submission
+ *
+ * $Id: lirc_atiusb.c,v 1.85 2009/03/11 00:21:46 jarodwilson Exp $
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)
+#error "*******************************************************"
+#error "Sorry, this driver needs kernel version 2.4.0 or higher"
+#error "*******************************************************"
+#endif
+
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/module.h>
+#include <linux/kmod.h>
+#include <linux/smp_lock.h>
+#include <linux/completion.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
+#include <asm/uaccess.h>
+#else
+#include <linux/uaccess.h>
+#endif
+#include <linux/usb.h>
+#include <linux/poll.h>
+#include <linux/wait.h>
+#include <linux/list.h>
+
+#include "../lirc.h"
+#include "../kcompat.h"
+#include "../lirc_dev/lirc_dev.h"
+
+#define DRIVER_VERSION "$Revision: 1.85 $"
+#define DRIVER_AUTHOR "Paul Miller <pmiller9@users.sourceforge.net>"
+#define DRIVER_DESC "USB remote driver for LIRC"
+#define DRIVER_NAME "lirc_atiusb"
+
+#define CODE_LENGTH (code_length[ir->remote_type])
+#define CODE_MIN_LENGTH (code_min_length[ir->remote_type])
+#define DECODE_LENGTH (decode_length[ir->remote_type])
+
+#define RW2_MODENAV_KEYCODE 0x3F
+#define RW2_NULL_MODE 0xFF
+/* Fake (virtual) keycode indicating compass mouse usage */
+#define RW2_MOUSE_KEYCODE 0xFF
+#define RW2_PRESSRELEASE_KEYCODE 0xFE
+
+#define RW2_PRESS_CODE 1
+#define RW2_HOLD_CODE 2
+#define RW2_RELEASE_CODE 0
+
+/* module parameters */
+#ifdef CONFIG_USB_DEBUG
+static int debug = 1;
+#else
+static int debug;
+#endif
+#define dprintk(fmt, args...) \
+ do { \
+ if (debug) \
+ printk(KERN_DEBUG fmt, ## args); \
+ } while (0)
+
+/* ATI, ATI2, XBOX */
+static const int code_length[] = {5, 3, 6};
+static const int code_min_length[] = {3, 3, 6};
+static const int decode_length[] = {5, 3, 1};
+/*
+ * USB_BUFF_LEN must be the maximum value of the code_length array.
+ * It is used for static arrays.
+ */
+#define USB_BUFF_LEN 6
+
+static int mask = 0xFFFF; /* channel acceptance bit mask */
+static int unique; /* enable channel-specific codes */
+static int repeat = 10; /* repeat time in 1/100 sec */
+static int emit_updown; /* send separate press/release codes (rw2) */
+static int emit_modekeys; /* send keycodes for aux1-4, pc, mouse (rw2) */
+static unsigned long repeat_jiffies; /* repeat timeout */
+static int mdeadzone; /* mouse sensitivity >= 0 */
+static int mgradient = 375; /* 1000*gradient from cardinal direction */
+
+/* get hi and low bytes of a 16-bits int */
+#define HI(a) ((unsigned char)((a) >> 8))
+#define LO(a) ((unsigned char)((a) & 0xff))
+
+/* general constants */
+#define SEND_FLAG_IN_PROGRESS 1
+#define SEND_FLAG_COMPLETE 2
+#define FREE_ALL 0xFF
+
+/* endpoints */
+#define EP_KEYS 0
+#define EP_MOUSE 1
+#define EP_MOUSE_ADDR 0x81
+#define EP_KEYS_ADDR 0x82
+
+#define VENDOR_ATI1 0x0bc7
+#define VENDOR_ATI2 0x0471
+#define VENDOR_MS1 0x040b
+#define VENDOR_MS2 0x045e
+#define VENDOR_MS3 0xFFFF
+
+static struct usb_device_id usb_remote_table[] = {
+ /* X10 USB Firecracker Interface */
+ { USB_DEVICE(VENDOR_ATI1, 0x0002) },
+
+ /* X10 VGA Video Sender */
+ { USB_DEVICE(VENDOR_ATI1, 0x0003) },
+
+ /* ATI Wireless Remote Receiver */
+ { USB_DEVICE(VENDOR_ATI1, 0x0004) },
+
+ /* NVIDIA Wireless Remote Receiver */
+ { USB_DEVICE(VENDOR_ATI1, 0x0005) },
+
+ /* ATI Wireless Remote Receiver */
+ { USB_DEVICE(VENDOR_ATI1, 0x0006) },
+
+ /* X10 USB Wireless Transceivers */
+ { USB_DEVICE(VENDOR_ATI1, 0x0007) },
+ { USB_DEVICE(VENDOR_ATI1, 0x0008) },
+ { USB_DEVICE(VENDOR_ATI1, 0x0009) },
+ { USB_DEVICE(VENDOR_ATI1, 0x000A) },
+ { USB_DEVICE(VENDOR_ATI1, 0x000B) },
+ { USB_DEVICE(VENDOR_ATI1, 0x000C) },
+ { USB_DEVICE(VENDOR_ATI1, 0x000D) },
+ { USB_DEVICE(VENDOR_ATI1, 0x000E) },
+ { USB_DEVICE(VENDOR_ATI1, 0x000F) },
+
+ /* ATI Remote Wonder 2: Input Device */
+ { USB_DEVICE(VENDOR_ATI2, 0x0602) },
+
+ /* ATI Remote Wonder 2: Controller (???) */
+ { USB_DEVICE(VENDOR_ATI2, 0x0603) },
+
+ /* Gamester Xbox DVD Movie Playback Kit IR */
+ { USB_DEVICE(VENDOR_MS1, 0x6521) },
+
+ /* Microsoft Xbox DVD Movie Playback Kit IR */
+ { USB_DEVICE(VENDOR_MS2, 0x0284) },
+
+ /*
+ * Some Chinese manufacturer -- conflicts with the joystick from the
+ * same manufacturer
+ */
+ { USB_DEVICE(VENDOR_MS3, 0xFFFF) },
+
+ /* Terminating entry */
+ { }
+};
+
+
+/* init strings */
+#define USB_OUTLEN 7
+
+static char init1[] = {0x01, 0x00, 0x20, 0x14};
+static char init2[] = {0x01, 0x00, 0x20, 0x14, 0x20, 0x20, 0x20};
+
+struct in_endpt {
+ /* inner link in list of endpoints for the remote specified by ir */
+ struct list_head iep_list_link;
+ struct atirf_dev *ir;
+ struct urb *urb;
+ struct usb_endpoint_descriptor *ep;
+ int type;
+
+ /* buffers and dma */
+ unsigned char *buf;
+ unsigned int len;
+#ifdef KERNEL_2_5
+ dma_addr_t dma;
+#endif
+
+ /* handle repeats */
+ unsigned char old[USB_BUFF_LEN];
+ unsigned long old_jiffies;
+};
+
+struct out_endpt {
+ struct atirf_dev *ir;
+ struct urb *urb;
+ struct usb_endpoint_descriptor *ep;
+
+ /* buffers and dma */
+ unsigned char *buf;
+#ifdef KERNEL_2_5
+ dma_addr_t dma;
+#endif
+
+ /* handle sending (init strings) */
+ int send_flags;
+ wait_queue_head_t wait;
+};
+
+
+/* data structure for each usb remote */
+struct atirf_dev {
+ /* inner link in list of all remotes managed by this module */
+ struct list_head remote_list_link;
+ /* Number of usb interfaces associated with this device */
+ int dev_refcount;
+
+ /* usb */
+ struct usb_device *usbdev;
+ /* Head link to list of all inbound endpoints in this remote */
+ struct list_head iep_listhead;
+ struct out_endpt *out_init;
+ int devnum;
+
+ /* remote type based on usb_device_id tables */
+ enum {
+ ATI1_COMPATIBLE,
+ ATI2_COMPATIBLE,
+ XBOX_COMPATIBLE
+ } remote_type;
+
+ /* rw2 current mode (mirrors the state of the remote) */
+ int mode;
+
+ /* lirc */
+ struct lirc_driver *d;
+ int connected;
+
+ /* locking */
+ struct mutex lock;
+};
+
+/* list of all registered devices via the remote_list_link in atirf_dev */
+static struct list_head remote_list;
+
+/*
+ * Convenience macros to retrieve a pointer to the surrounding struct from
+ * the given list_head reference within, pointed at by link.
+ */
+#define get_iep_from_link(link) \
+ list_entry((link), struct in_endpt, iep_list_link);
+#define get_irctl_from_link(link) \
+ list_entry((link), struct atirf_dev, remote_list_link);
+
+/* send packet - used to initialize remote */
+static void send_packet(struct out_endpt *oep, u16 cmd, unsigned char *data)
+{
+ struct atirf_dev *ir = oep->ir;
+ DECLARE_WAITQUEUE(wait, current);
+ int timeout = HZ; /* 1 second */
+ unsigned char buf[USB_OUTLEN];
+
+ dprintk(DRIVER_NAME "[%d]: send called (%#x)\n", ir->devnum, cmd);
+
+ mutex_lock(&ir->lock);
+ oep->urb->transfer_buffer_length = LO(cmd) + 1;
+ oep->urb->dev = oep->ir->usbdev;
+ oep->send_flags = SEND_FLAG_IN_PROGRESS;
+
+ memcpy(buf+1, data, LO(cmd));
+ buf[0] = HI(cmd);
+ memcpy(oep->buf, buf, LO(cmd)+1);
+
+ set_current_state(TASK_INTERRUPTIBLE);
+ add_wait_queue(&oep->wait, &wait);
+
+#ifdef KERNEL_2_5
+ if (usb_submit_urb(oep->urb, GFP_ATOMIC)) {
+#else
+ if (usb_submit_urb(oep->urb)) {
+#endif
+ set_current_state(TASK_RUNNING);
+ remove_wait_queue(&oep->wait, &wait);
+ mutex_unlock(&ir->lock);
+ return;
+ }
+ mutex_unlock(&ir->lock);
+
+ while (timeout && (oep->urb->status == -EINPROGRESS)
+ && !(oep->send_flags & SEND_FLAG_COMPLETE)) {
+ timeout = schedule_timeout(timeout);
+ rmb();
+ }
+
+ dprintk(DRIVER_NAME "[%d]: send complete (%#x)\n", ir->devnum, cmd);
+
+ set_current_state(TASK_RUNNING);
+ remove_wait_queue(&oep->wait, &wait);
+#ifdef KERNEL_2_5
+ oep->urb->transfer_flags |= URB_ASYNC_UNLINK;
+#endif
+ usb_unlink_urb(oep->urb);
+}
+
+static int unregister_from_lirc(struct atirf_dev *ir)
+{
+ struct lirc_driver *d = ir->d;
+ int devnum;
+
+ devnum = ir->devnum;
+ dprintk(DRIVER_NAME "[%d]: unregister from lirc called\n", devnum);
+
+ lirc_unregister_driver(d->minor);
+
+ printk(DRIVER_NAME "[%d]: usb remote disconnected\n", devnum);
+ return 0;
+}
+
+
+static int set_use_inc(void *data)
+{
+ struct atirf_dev *ir = data;
+ struct list_head *pos, *n;
+ struct in_endpt *iep;
+ int rtn;
+
+ if (!ir) {
+ printk(DRIVER_NAME "[?]: set_use_inc called with no context\n");
+ return -EIO;
+ }
+ dprintk(DRIVER_NAME "[%d]: set use inc\n", ir->devnum);
+
+ MOD_INC_USE_COUNT;
+
+ mutex_lock(&ir->lock);
+ if (!ir->connected) {
+ if (!ir->usbdev) {
+ mutex_unlock(&ir->lock);
+ dprintk(DRIVER_NAME "[%d]: !ir->usbdev\n", ir->devnum);
+ return -ENOENT;
+ }
+
+ /* Iterate through the inbound endpoints */
+ list_for_each_safe(pos, n, &ir->iep_listhead) {
+ /* extract the current in_endpt */
+ iep = get_iep_from_link(pos);
+ iep->urb->dev = ir->usbdev;
+ dprintk(DRIVER_NAME "[%d]: linking iep 0x%02x (%p)\n",
+ ir->devnum, iep->ep->bEndpointAddress, iep);
+#ifdef KERNEL_2_5
+ rtn = usb_submit_urb(iep->urb, GFP_ATOMIC);
+#else
+ rtn = usb_submit_urb(iep->urb);
+#endif
+ if (rtn) {
+ printk(DRIVER_NAME "[%d]: open result = %d "
+ "error submitting urb\n",
+ ir->devnum, rtn);
+ mutex_unlock(&ir->lock);
+ MOD_DEC_USE_COUNT;
+ return -EIO;
+ }
+ }
+ ir->connected = 1;
+ }
+ mutex_unlock(&ir->lock);
+
+ return 0;
+}
+
+static void set_use_dec(void *data)
+{
+ struct atirf_dev *ir = data;
+ struct list_head *pos, *n;
+ struct in_endpt *iep;
+
+ if (!ir) {
+ printk(DRIVER_NAME "[?]: set_use_dec called with no context\n");
+ return;
+ }
+ dprintk(DRIVER_NAME "[%d]: set use dec\n", ir->devnum);
+
+ mutex_lock(&ir->lock);
+ if (ir->connected) {
+ /* Free inbound usb urbs */
+ list_for_each_safe(pos, n, &ir->iep_listhead) {
+ iep = get_iep_from_link(pos);
+ dprintk(DRIVER_NAME "[%d]: unlinking iep 0x%02x (%p)\n",
+ ir->devnum, iep->ep->bEndpointAddress, iep);
+ usb_kill_urb(iep->urb);
+ }
+ ir->connected = 0;
+ }
+ mutex_unlock(&ir->lock);
+ MOD_DEC_USE_COUNT;
+}
+
+static void print_data(struct in_endpt *iep, char *buf, int len)
+{
+ const int clen = code_length[iep->ir->remote_type];
+ char codes[clen * 3 + 1];
+ int i;
+
+ if (len <= 0)
+ return;
+
+ for (i = 0; i < len && i < clen; i++)
+ snprintf(codes+i*3, 4, "%02x ", buf[i] & 0xFF);
+ printk(DRIVER_NAME "[%d]: data received %s (ep=0x%x length=%d)\n",
+ iep->ir->devnum, codes, iep->ep->bEndpointAddress, len);
+}
+
+static int code_check_ati1(struct in_endpt *iep, int len)
+{
+ struct atirf_dev *ir = iep->ir;
+ int i, chan;
+
+ /* ATI RW1: some remotes emit both 4 and 5 byte length codes. */
+ /* ATI RW2: emit 3 byte codes */
+ if (len < CODE_MIN_LENGTH || len > CODE_LENGTH)
+ return -1;
+
+ /* *** channel not tested with 4/5-byte Dutch remotes *** */
+ chan = ((iep->buf[len-1]>>4) & 0x0F);
+
+ /* strip channel code */
+ if (!unique) {
+ iep->buf[len-1] &= 0x0F;
+ iep->buf[len-3] -= (chan<<4);
+ }
+
+ if (!((1U<<chan) & mask)) {
+ dprintk(DRIVER_NAME "[%d]: ignore channel %d\n",
+ ir->devnum, chan+1);
+ return -1;
+ }
+ dprintk(DRIVER_NAME "[%d]: accept channel %d\n", ir->devnum, chan+1);
+
+ if (ir->remote_type == ATI1_COMPATIBLE) {
+ for (i = len; i < CODE_LENGTH; i++)
+ iep->buf[i] = 0;
+ /* check for repeats */
+ if (memcmp(iep->old, iep->buf, len) == 0) {
+ if (iep->old_jiffies + repeat_jiffies > jiffies)
+ return -1;
+ } else
+ memcpy(iep->old, iep->buf, CODE_LENGTH);
+ iep->old_jiffies = jiffies;
+ }
+
+ return 0;
+}
+
+/*
+ * Since the ATI Remote Wonder II has quite a different structure from the
+ * prior version, this function was separated out to clarify the sanitization
+ * process.
+ *
+ * Here is a summary of the main differences:
+ *
+ * a. The rw2 has no sense of a transmission channel. But, it does have an
+ * auxiliary mode state, which is set by the mode buttons Aux1 through
+ * Aux4 and "PC". These map respectively to 0-4 in the first byte of the
+ * recv buffer. Any subsequent button press sends this mode number as its
+ * "channel code." Annoyingly enough, the mode setting buttons all send
+ * the same key code (0x3f), and can only be distinguished via their mode
+ * byte.
+ *
+ * Because of this, old-style "unique"-parameter-enabled channel squashing
+ * kills the functionality of the aux1-aux4 and PC buttons. However, to
+ * not do so would cause each remote key to send a different code depending
+ * on the active aux. Further complicating matters, using the mouse norb
+ * also sends an identical code as would pushing the active aux button. To
+ * handle this we need a separate parameter, like rw2modes, with the
+ * following values and meanings:
+ *
+ * 0: Don't squash any channel info
+ * 1: Only squash channel data for non-mode setting keys
+ * 2: Ignore aux keypresses, but don't squash channel
+ * 3: Ignore aux keypresses and squash channel data
+ *
+ * Option 1 may seem useless since the mouse sends the same code, but one
+ * need only ignore in userspace any press of a mode-setting code that only
+ * reaffirms the current mode. The 3rd party lirccd should be able to
+ * handle this easily enough, but lircd doesn't keep the state necessary
+ * for this. TODO We could work around this in the driver by emitting a
+ * single 02 (press) code for a mode key only if that mode is not currently
+ * active.
+ *
+ * Option 2 would be useful for those wanting super configurability,
+ * offering the ability to program 5 times the number actions based on the
+ * current mode.
+ *
+ * b. The rw2 has its own built in repeat handling; the keys endpoint
+ * encodes this in the second byte as 1 for press, 2 for hold, and 0 for
+ * release. This is generally much more responsive than lirc's built-in
+ * timeout handling.
+ *
+ * The problem is that the remote can send the release-receive pair
+ * (0,1) while one is still holding down the same button if the
+ * transmission is momentarily interrupted. (It seems that the receiver
+ * manages this count instead of the remote.) By default, this information
+ * is squashed to 2.
+ *
+ * In order to expose the built-in repeat code, set the emit_updown
+ * parameter as described below.
+ *
+ * c. The mouse norb is much more sensitive than on the rw1. It emulates
+ * a joystick-like controller with the second byte representing the x-axis
+ * and the third, the y-axis. Treated as signed integers, these axes range
+ * approximately as follows:
+ *
+ * x: (left) -46 ... 46 (right) (0xd2..0x2e)
+ * y: (up) -46 ... 46 (down) (0xd2..0x2e)
+ *
+ * NB these values do not correspond to the pressure with which the mouse
+ * norb is pushed in a given direction, but rather seems to indicate the
+ * duration for which a given direction is held.
+ *
+ * These are normalized to 8 cardinal directions for easy configuration via
+ * lircd.conf. The normalization can be fined tuned with the mdeadzone and
+ * mgradient parameters as described below.
+ *
+ * d. The interrupt rate of the mouse vs. the normal keys is different.
+ *
+ * mouse: ~27Hz (37ms between interrupts)
+ * keys: ~10Hz (100ms between interrupts)
+ *
+ * This means that the normal gap mechanism for lircd won't work as
+ * expected; is emit_updown>0 if you can get away with it.
+ */
+static int code_check_ati2(struct in_endpt *iep, int len)
+{
+ struct atirf_dev *ir = iep->ir;
+ int mode, i;
+ char *buf = iep->buf;
+
+ if (len != CODE_LENGTH) {
+ dprintk(DRIVER_NAME
+ "[%d]: Huh? Abnormal length (%d) buffer received.\n",
+ ir->devnum, len);
+ return -1;
+ }
+ for (i = len; i < CODE_LENGTH; i++)
+ iep->buf[i] = 0;
+
+ mode = buf[0];
+
+ /* Squash the mode indicator if unique wasn't set non-zero */
+ if (!unique)
+ buf[0] = 0;
+
+ if (iep->ep->bEndpointAddress == EP_KEYS_ADDR) {
+ /* ignore mouse nav indicator key and mode-set (aux) keys */
+ if (buf[2] == RW2_MODENAV_KEYCODE) {
+ if (emit_modekeys >= 2) /* emit raw */
+ buf[0] = mode;
+ else if (emit_modekeys == 1) {
+ /* translate */
+ buf[0] = mode;
+ if (ir->mode != mode) {
+ buf[1] = 0x03;
+ ir->mode = mode;
+ return 0;
+ }
+ } else {
+ dprintk(DRIVER_NAME
+ "[%d]: ignore dummy code 0x%x "
+ "(ep=0x%x)\n", ir->devnum,
+ buf[2], iep->ep->bEndpointAddress);
+ return -1;
+ }
+ }
+
+ if (buf[1] != 2) {
+ /* handle press/release codes */
+ if (emit_updown == 0) /* ignore */
+ return -1;
+ else if (emit_updown == 1) /* normalize keycode */
+ buf[2] = RW2_PRESSRELEASE_KEYCODE;
+ /* else emit raw */
+ }
+
+ } else {
+ int x = (signed char)buf[1];
+ int y = (signed char)buf[2];
+ int code = 0x00;
+ int dir_ew, dir_ns;
+
+ buf[2] = RW2_MOUSE_KEYCODE;
+
+ /* sensitivity threshold (use L2norm^2) */
+ if (mdeadzone > (x*x+y*y)) {
+ buf[1] = 0x00;
+ return 0;
+ }
+
+/* Nybble encoding: xy, 2 is -1 (S or W); 1 (N or E) */
+#define MOUSE_N 0x01
+#define MOUSE_NE 0x11
+#define MOUSE_E 0x10
+#define MOUSE_SE 0x12
+#define MOUSE_S 0x02
+#define MOUSE_SW 0x22
+#define MOUSE_W 0x20
+#define MOUSE_NW 0x21
+
+ /* cardinal leanings: positive x -> E, positive y -> S */
+ dir_ew = (x > 0) ? MOUSE_E : MOUSE_W;
+ dir_ns = (y > 0) ? MOUSE_S : MOUSE_N;
+
+ /* convert coordinates(angle) into compass direction */
+ if (x == 0)
+ code = dir_ns;
+ else if (y == 0)
+ code = dir_ew;
+ else {
+ if (abs(1000*y/x) > mgradient)
+ code = dir_ns;
+ if (abs(1000*x/y) > mgradient)
+ code |= dir_ew;
+ }
+
+ buf[1] = code;
+ dprintk(DRIVER_NAME "[%d]: mouse compass=0x%x %s%s (%d,%d)\n",
+ ir->devnum, code,
+ (code & MOUSE_S ? "S" : (code & MOUSE_N ? "N" : "")),
+ (code & MOUSE_E ? "E" : (code & MOUSE_W ? "W" : "")),
+ x, y);
+ }
+
+ return 0;
+}
+
+static int code_check_xbox(struct in_endpt *iep, int len)
+{
+ struct atirf_dev *ir = iep->ir;
+ const int clen = CODE_LENGTH;
+
+ if (len != clen) {
+ dprintk(DRIVER_NAME ": We got %d instead of %d bytes from xbox "
+ "ir.. ?\n", len, clen);
+ return -1;
+ }
+
+ /* check for repeats */
+ if (memcmp(iep->old, iep->buf, len) == 0) {
+ if (iep->old_jiffies + repeat_jiffies > jiffies)
+ return -1;
+ } else {
+ /*
+ * the third byte of xbox ir packet seems to contain key info
+ * the last two bytes are.. some kind of clock?
+ */
+ iep->buf[0] = iep->buf[2];
+ memset(iep->buf + 1, 0, len - 1);
+ memcpy(iep->old, iep->buf, len);
+ }
+ iep->old_jiffies = jiffies;
+
+ return 0;
+}
+
+#if defined(KERNEL_2_5) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static void usb_remote_recv(struct urb *urb, struct pt_regs *regs)
+#else
+static void usb_remote_recv(struct urb *urb)
+#endif
+{
+ struct in_endpt *iep;
+ int len, result = -1;
+
+ if (!urb)
+ return;
+ iep = urb->context;
+ if (!iep) {
+#ifdef KERNEL_2_5
+ urb->transfer_flags |= URB_ASYNC_UNLINK;
+#endif
+ usb_unlink_urb(urb);
+ return;
+ }
+ if (!iep->ir->usbdev)
+ return;
+
+ len = urb->actual_length;
+ if (debug)
+ print_data(iep, urb->transfer_buffer, len);
+
+ switch (urb->status) {
+
+ case 0:
+ switch (iep->ir->remote_type) {
+ case XBOX_COMPATIBLE:
+ result = code_check_xbox(iep, len);
+ break;
+ case ATI2_COMPATIBLE:
+ result = code_check_ati2(iep, len);
+ break;
+ case ATI1_COMPATIBLE:
+ default:
+ result = code_check_ati1(iep, len);
+ }
+ if (result < 0)
+ break;
+ lirc_buffer_write(iep->ir->d->rbuf, iep->buf);
+ wake_up(&iep->ir->d->rbuf->wait_poll);
+ break;
+
+ case -ECONNRESET:
+ case -ENOENT:
+ case -ESHUTDOWN:
+#ifdef KERNEL_2_5
+ urb->transfer_flags |= URB_ASYNC_UNLINK;
+#endif
+ usb_unlink_urb(urb);
+ return;
+
+ case -EPIPE:
+ default:
+ break;
+ }
+
+#ifdef KERNEL_2_5
+ usb_submit_urb(urb, GFP_ATOMIC);
+#endif
+}
+
+#if defined(KERNEL_2_5) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static void usb_remote_send(struct urb *urb, struct pt_regs *regs)
+#else
+static void usb_remote_send(struct urb *urb)
+#endif
+{
+ struct out_endpt *oep;
+
+ if (!urb)
+ return;
+ oep = urb->context;
+ if (!oep) {
+#ifdef KERNEL_2_5
+ urb->transfer_flags |= URB_ASYNC_UNLINK;
+#endif
+ usb_unlink_urb(urb);
+ return;
+ }
+ if (!oep->ir->usbdev)
+ return;
+
+ dprintk(DRIVER_NAME "[%d]: usb out called\n", oep->ir->devnum);
+
+ if (urb->status)
+ return;
+
+ oep->send_flags |= SEND_FLAG_COMPLETE;
+ wmb();
+ if (waitqueue_active(&oep->wait))
+ wake_up(&oep->wait);
+}
+
+
+/*
+ * Initialization and removal
+ */
+
+/*
+ * Free iep according to mem_failure which specifies a checkpoint into the
+ * initialization sequence for rollback recovery.
+ */
+static void free_in_endpt(struct in_endpt *iep, int mem_failure)
+{
+ struct atirf_dev *ir;
+ dprintk(DRIVER_NAME ": free_in_endpt(%p, %d)\n", iep, mem_failure);
+ if (!iep)
+ return;
+
+ ir = iep->ir;
+ if (!ir) {
+ dprintk(DRIVER_NAME ": free_in_endpt: WARNING! null ir\n");
+ return;
+ }
+ mutex_lock(&ir->lock);
+ switch (mem_failure) {
+ case FREE_ALL:
+ case 5:
+ list_del(&iep->iep_list_link);
+ dprintk(DRIVER_NAME "[%d]: free_in_endpt removing ep=0x%0x "
+ "from list\n", ir->devnum, iep->ep->bEndpointAddress);
+ case 4:
+ if (iep->urb) {
+#ifdef KERNEL_2_5
+ iep->urb->transfer_flags |= URB_ASYNC_UNLINK;
+#endif
+ usb_unlink_urb(iep->urb);
+ usb_free_urb(iep->urb);
+ iep->urb = 0;
+ } else
+ dprintk(DRIVER_NAME "[%d]: free_in_endpt null urb!\n",
+ ir->devnum);
+ case 3:
+#ifdef KERNEL_2_5
+ usb_free_coherent(iep->ir->usbdev, iep->len, iep->buf, iep->dma);
+#else
+ kfree(iep->buf);
+#endif
+ iep->buf = 0;
+ case 2:
+ kfree(iep);
+ }
+ mutex_unlock(&ir->lock);
+}
+
+/*
+ * Construct a new inbound endpoint for this remote, and add it to the list of
+ * in_epts in ir.
+ */
+static struct in_endpt *new_in_endpt(struct atirf_dev *ir,
+ struct usb_endpoint_descriptor *ep)
+{
+ struct usb_device *dev = ir->usbdev;
+ struct in_endpt *iep;
+ int pipe, maxp, len, addr;
+ int mem_failure;
+
+ addr = ep->bEndpointAddress;
+ pipe = usb_rcvintpipe(dev, addr);
+ maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe));
+
+/* len = (maxp > USB_BUFLEN) ? USB_BUFLEN : maxp;
+ * len -= (len % CODE_LENGTH); */
+ len = CODE_LENGTH;
+
+ dprintk(DRIVER_NAME "[%d]: acceptable inbound endpoint (0x%x) found "
+ "(maxp=%d len=%d)\n", ir->devnum, addr, maxp, len);
+
+ mem_failure = 0;
+ iep = kzalloc(sizeof(*iep), GFP_KERNEL);
+ if (!iep) {
+ mem_failure = 1;
+ goto new_in_endpt_failure_check;
+ }
+ iep->ir = ir;
+ iep->ep = ep;
+ iep->len = len;
+
+#ifdef KERNEL_2_5
+ iep->buf = usb_alloc_coherent(dev, len, GFP_ATOMIC, &iep->dma);
+#else
+ iep->buf = kmalloc(len, GFP_KERNEL);
+#endif
+ if (!iep->buf) {
+ mem_failure = 2;
+ goto new_in_endpt_failure_check;
+ }
+
+#ifdef KERNEL_2_5
+ iep->urb = usb_alloc_urb(0, GFP_KERNEL);
+#else
+ iep->urb = usb_alloc_urb(0);
+#endif
+ if (!iep->urb)
+ mem_failure = 3;
+
+new_in_endpt_failure_check:
+
+ if (mem_failure) {
+ free_in_endpt(iep, mem_failure);
+ printk(DRIVER_NAME "[%d]: ep=0x%x out of memory (code=%d)\n",
+ ir->devnum, addr, mem_failure);
+ return NULL;
+ }
+ list_add_tail(&iep->iep_list_link, &ir->iep_listhead);
+ dprintk(DRIVER_NAME "[%d]: adding ep=0x%0x to list\n",
+ ir->devnum, iep->ep->bEndpointAddress);
+ return iep;
+}
+
+static void free_out_endpt(struct out_endpt *oep, int mem_failure)
+{
+ struct atirf_dev *ir;
+ dprintk(DRIVER_NAME ": free_out_endpt(%p, %d)\n", oep, mem_failure);
+ if (!oep)
+ return;
+
+ wake_up_all(&oep->wait);
+
+ ir = oep->ir;
+ if (!ir) {
+ dprintk(DRIVER_NAME ": free_out_endpt: WARNING! null ir\n");
+ return;
+ }
+ mutex_lock(&ir->lock);
+ switch (mem_failure) {
+ case FREE_ALL:
+ case 4:
+ if (oep->urb) {
+#ifdef KERNEL_2_5
+ oep->urb->transfer_flags |= URB_ASYNC_UNLINK;
+#endif
+ usb_unlink_urb(oep->urb);
+ usb_free_urb(oep->urb);
+ oep->urb = 0;
+ } else {
+ dprintk(DRIVER_NAME "[%d]: free_out_endpt: null urb!\n",
+ ir->devnum);
+ }
+ case 3:
+#ifdef KERNEL_2_5
+ usb_free_coherent(oep->ir->usbdev, USB_OUTLEN,
+ oep->buf, oep->dma);
+#else
+ kfree(oep->buf);
+#endif
+ oep->buf = 0;
+ case 2:
+ kfree(oep);
+ }
+ mutex_unlock(&ir->lock);
+}
+
+static struct out_endpt *new_out_endpt(struct atirf_dev *ir,
+ struct usb_endpoint_descriptor *ep)
+{
+#ifdef KERNEL_2_5
+ struct usb_device *dev = ir->usbdev;
+#endif
+ struct out_endpt *oep;
+ int mem_failure;
+
+ dprintk(DRIVER_NAME "[%d]: acceptable outbound endpoint (0x%x) found\n",
+ ir->devnum, ep->bEndpointAddress);
+
+ mem_failure = 0;
+ oep = kzalloc(sizeof(*oep), GFP_KERNEL);
+ if (!oep)
+ mem_failure = 1;
+ else {
+ oep->ir = ir;
+ oep->ep = ep;
+ init_waitqueue_head(&oep->wait);
+
+#ifdef KERNEL_2_5
+ oep->buf = usb_alloc_coherent(dev, USB_OUTLEN,
+ GFP_ATOMIC, &oep->dma);
+#else
+ oep->buf = kmalloc(USB_OUTLEN, GFP_KERNEL);
+#endif
+ if (!oep->buf)
+ mem_failure = 2;
+ else {
+#ifdef KERNEL_2_5
+ oep->urb = usb_alloc_urb(0, GFP_KERNEL);
+#else
+ oep->urb = usb_alloc_urb(0);
+#endif
+ if (!oep->urb)
+ mem_failure = 3;
+ }
+ }
+ if (mem_failure) {
+ free_out_endpt(oep, mem_failure);
+ printk(DRIVER_NAME "[%d]: ep=0x%x out of memory (code=%d)\n",
+ ir->devnum, ep->bEndpointAddress, mem_failure);
+ return NULL;
+ }
+ return oep;
+}
+
+static void free_irctl(struct atirf_dev *ir, int mem_failure)
+{
+ struct list_head *pos, *n;
+ struct in_endpt *in;
+ dprintk(DRIVER_NAME ": free_irctl(%p, %d)\n", ir, mem_failure);
+
+ if (!ir)
+ return;
+
+ list_for_each_safe(pos, n, &ir->iep_listhead) {
+ in = get_iep_from_link(pos);
+ free_in_endpt(in, FREE_ALL);
+ }
+ if (ir->out_init) {
+ free_out_endpt(ir->out_init, FREE_ALL);
+ ir->out_init = NULL;
+ }
+
+ mutex_lock(&ir->lock);
+ switch (mem_failure) {
+ case FREE_ALL:
+ case 6:
+ if (!--ir->dev_refcount) {
+ list_del(&ir->remote_list_link);
+ dprintk(DRIVER_NAME "[%d]: free_irctl: removing "
+ "remote from list\n", ir->devnum);
+ } else {
+ dprintk(DRIVER_NAME "[%d]: free_irctl: refcount at %d,"
+ "aborting free_irctl\n",
+ ir->devnum, ir->dev_refcount);
+ mutex_unlock(&ir->lock);
+ return;
+ }
+ case 5:
+ case 4:
+ case 3:
+ if (ir->d) {
+ switch (mem_failure) {
+ case 5:
+ lirc_buffer_free(ir->d->rbuf);
+ case 4:
+ kfree(ir->d->rbuf);
+ case 3:
+ kfree(ir->d);
+ }
+ } else
+ printk(DRIVER_NAME "[%d]: ir->d is a null pointer!\n",
+ ir->devnum);
+ case 2:
+ mutex_unlock(&ir->lock);
+ kfree(ir);
+ return;
+ }
+ mutex_unlock(&ir->lock);
+}
+
+static struct atirf_dev *new_irctl(struct usb_interface *intf)
+{
+ struct usb_device *dev = interface_to_usbdev(intf);
+ struct atirf_dev *ir;
+ struct lirc_driver *driver;
+ int type, devnum, dclen;
+ int mem_failure;
+
+ devnum = dev->devnum;
+
+ switch (cpu_to_le16(dev->descriptor.idVendor)) {
+ case VENDOR_ATI1:
+ type = ATI1_COMPATIBLE;
+ break;
+ case VENDOR_ATI2:
+ type = ATI2_COMPATIBLE;
+ break;
+ case VENDOR_MS1:
+ case VENDOR_MS2:
+ case VENDOR_MS3:
+ type = XBOX_COMPATIBLE;
+ break;
+ default:
+ dprintk(DRIVER_NAME "[%d]: unknown type\n", devnum);
+ return NULL;
+ }
+ dprintk(DRIVER_NAME "[%d]: remote type = %d\n", devnum, type);
+
+ mem_failure = 0;
+ ir = kzalloc(sizeof(*ir), GFP_KERNEL);
+ if (!ir) {
+ mem_failure = 1;
+ goto new_irctl_failure_check;
+ }
+
+ /*
+ * at this stage we cannot use the macro [DE]CODE_LENGTH: ir
+ * is not yet setup
+ */
+ dclen = decode_length[type];
+ /*
+ * add this infrared remote struct to remote_list, keeping track
+ * of the number of drivers registered.
+ */
+ dprintk(DRIVER_NAME "[%d]: adding remote to list\n", devnum);
+ list_add_tail(&ir->remote_list_link, &remote_list);
+ ir->dev_refcount = 1;
+
+ driver = kzalloc(sizeof(*driver), GFP_KERNEL);
+ if (!driver) {
+ mem_failure = 2;
+ goto new_irctl_failure_check;
+ }
+
+ ir->d = driver;
+ driver->rbuf = kmalloc(sizeof(*(driver->rbuf)), GFP_KERNEL);
+ if (!driver->rbuf) {
+ mem_failure = 3;
+ goto new_irctl_failure_check;
+ }
+
+ if (lirc_buffer_init(driver->rbuf, dclen, 1)) {
+ mem_failure = 4;
+ goto new_irctl_failure_check;
+ }
+
+ strcpy(driver->name, DRIVER_NAME " ");
+ driver->minor = -1;
+ driver->code_length = dclen * 8;
+ driver->features = LIRC_CAN_REC_LIRCCODE;
+ driver->data = ir;
+ driver->set_use_inc = &set_use_inc;
+ driver->set_use_dec = &set_use_dec;
+#ifdef LIRC_HAVE_SYSFS
+ driver->dev = &intf->dev;
+#endif
+ driver->owner = THIS_MODULE;
+ ir->usbdev = dev;
+ ir->remote_type = type;
+ ir->devnum = devnum;
+ ir->mode = RW2_NULL_MODE;
+
+ mutex_init(&ir->lock);
+ INIT_LIST_HEAD(&ir->iep_listhead);
+
+new_irctl_failure_check:
+
+ if (mem_failure) {
+ free_irctl(ir, mem_failure);
+ printk(DRIVER_NAME "[%d]: out of memory (code=%d)\n",
+ devnum, mem_failure);
+ return NULL;
+ }
+ return ir;
+}
+
+
+/*
+ * Scan the global list of remotes to see if the device listed is one of them.
+ * If it is, the corresponding atirf_dev is returned, with its dev_refcount
+ * incremented. Otherwise, returns null.
+ */
+static struct atirf_dev *get_prior_reg_ir(struct usb_device *dev)
+{
+ struct list_head *pos;
+ struct atirf_dev *ir = NULL;
+
+ dprintk(DRIVER_NAME "[%d]: scanning remote_list...\n", dev->devnum);
+ list_for_each(pos, &remote_list) {
+ ir = get_irctl_from_link(pos);
+ if (ir->usbdev != dev) {
+ dprintk(DRIVER_NAME "[%d]: device %d isn't it...",
+ dev->devnum, ir->devnum);
+ ir = NULL;
+ } else {
+ dprintk(DRIVER_NAME "[%d]: prior instance found.\n",
+ dev->devnum);
+ ir->dev_refcount++;
+ break;
+ }
+ }
+ return ir;
+}
+
+/*
+ * If the USB interface has an out endpoint for control (eg, the first Remote
+ * Wonder) send the appropriate initialization packets.
+ */
+static void send_outbound_init(struct atirf_dev *ir)
+{
+ if (ir->out_init) {
+ struct out_endpt *oep = ir->out_init;
+ dprintk(DRIVER_NAME "[%d]: usb_remote_probe: initializing "
+ "outbound ep\n", ir->devnum);
+ usb_fill_int_urb(oep->urb, ir->usbdev,
+ usb_sndintpipe(ir->usbdev, oep->ep->bEndpointAddress),
+ oep->buf, USB_OUTLEN, usb_remote_send,
+ oep, oep->ep->bInterval);
+#ifdef KERNEL_2_5
+ oep->urb->transfer_dma = oep->dma;
+ oep->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
+#endif
+
+ send_packet(oep, 0x8004, init1);
+ send_packet(oep, 0x8007, init2);
+ }
+}
+
+/* Log driver and usb info */
+static void log_usb_dev_info(struct usb_device *dev)
+{
+ char buf[63], name[128] = "";
+
+ if (dev->descriptor.iManufacturer
+ && usb_string(dev, dev->descriptor.iManufacturer,
+ buf, sizeof(buf)) > 0)
+ strlcpy(name, buf, sizeof(name));
+ if (dev->descriptor.iProduct
+ && usb_string(dev, dev->descriptor.iProduct, buf, sizeof(buf)) > 0)
+ snprintf(name + strlen(name), sizeof(name) - strlen(name),
+ " %s", buf);
+ printk(DRIVER_NAME "[%d]: %s on usb%d:%d\n", dev->devnum, name,
+ dev->bus->busnum, dev->devnum);
+}
+
+
+#ifdef KERNEL_2_5
+static int usb_remote_probe(struct usb_interface *intf,
+ const struct usb_device_id *id)
+{
+ struct usb_device *dev = interface_to_usbdev(intf);
+ struct usb_host_interface *idesc;
+#else
+static void *usb_remote_probe(struct usb_device *dev, unsigned int ifnum,
+ const struct usb_device_id *id)
+{
+ struct usb_interface *intf = &dev->actconfig->interface[ifnum];
+ struct usb_interface_descriptor *idesc;
+#endif
+ struct usb_endpoint_descriptor *ep;
+ struct in_endpt *iep;
+ struct atirf_dev *ir;
+ int i, type;
+
+ dprintk(DRIVER_NAME "[%d]: usb_remote_probe: dev:%p, intf:%p, id:%p)\n",
+ dev->devnum, dev, intf, id);
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 5)
+ idesc = &intf->altsetting[intf->act_altsetting];
+#else
+ idesc = intf->cur_altsetting;
+#endif
+
+ /* Check if a usb remote has already been registered for this device */
+ ir = get_prior_reg_ir(dev);
+
+ if (!ir) {
+ ir = new_irctl(intf);
+ if (!ir)
+#ifdef KERNEL_2_5
+ return -ENOMEM;
+#else
+ return NULL;
+#endif
+ }
+ type = ir->remote_type;
+
+ /*
+ * step through the endpoints to find first in and first out endpoint
+ * of type interrupt transfer
+ */
+#ifdef KERNEL_2_5
+ for (i = 0; i < idesc->desc.bNumEndpoints; ++i) {
+ ep = &idesc->endpoint[i].desc;
+#else
+ for (i = 0; i < idesc->bNumEndpoints; ++i) {
+ ep = &idesc->endpoint[i];
+#endif
+ dprintk(DRIVER_NAME "[%d]: processing endpoint %d\n",
+ dev->devnum, i);
+ if (((ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK) ==
+ USB_DIR_IN) &&
+ ((ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) ==
+ USB_ENDPOINT_XFER_INT)) {
+
+ iep = new_in_endpt(ir, ep);
+ if (iep)
+ {
+ usb_fill_int_urb(iep->urb, dev,
+ usb_rcvintpipe(dev,
+ iep->ep->bEndpointAddress),
+ iep->buf, iep->len, usb_remote_recv,
+ iep, iep->ep->bInterval);
+#ifdef KERNEL_2_5
+ iep->urb->transfer_dma = iep->dma;
+ iep->urb->transfer_flags |=
+ URB_NO_TRANSFER_DMA_MAP;
+#endif
+ }
+ }
+
+ if (((ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK) ==
+ USB_DIR_OUT) &&
+ ((ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) ==
+ USB_ENDPOINT_XFER_INT) &&
+ (ir->out_init == NULL))
+ ir->out_init = new_out_endpt(ir, ep);
+ }
+ if (list_empty(&ir->iep_listhead)) {
+ printk(DRIVER_NAME "[%d]: inbound endpoint not found\n",
+ ir->devnum);
+ free_irctl(ir, FREE_ALL);
+#ifdef KERNEL_2_5
+ return -ENODEV;
+#else
+ return NULL;
+#endif
+ }
+ if (ir->dev_refcount == 1) {
+ ir->d->minor = lirc_register_driver(ir->d);
+ if (ir->d->minor < 0) {
+ free_irctl(ir, FREE_ALL);
+#ifdef KERNEL_2_5
+ return -ENODEV;
+#else
+ return NULL;
+#endif
+ }
+
+ /* Note new driver registration in kernel logs */
+ log_usb_dev_info(dev);
+
+ /* outbound data (initialization) */
+ send_outbound_init(ir);
+ }
+
+#ifdef KERNEL_2_5
+ usb_set_intfdata(intf, ir);
+ return 0;
+#else
+ return ir;
+#endif
+}
+
+#ifdef KERNEL_2_5
+static void usb_remote_disconnect(struct usb_interface *intf)
+{
+ /* struct usb_device *dev = interface_to_usbdev(intf); */
+ struct atirf_dev *ir = usb_get_intfdata(intf);
+ usb_set_intfdata(intf, NULL);
+#else
+static void usb_remote_disconnect(struct usb_device *dev, void *ptr)
+{
+ struct atirf_dev *ir = ptr;
+#endif
+
+ dprintk(DRIVER_NAME ": disconnecting remote %d:\n",
+ (ir ? ir->devnum : -1));
+ if (!ir || !ir->d)
+ return;
+
+ if (ir->usbdev) {
+ /* Only unregister once */
+ ir->usbdev = NULL;
+ unregister_from_lirc(ir);
+ }
+
+ /* This also removes the current remote from remote_list */
+ free_irctl(ir, FREE_ALL);
+}
+
+static struct usb_driver usb_remote_driver = {
+ LIRC_THIS_MODULE(.owner = THIS_MODULE)
+ .name = DRIVER_NAME,
+ .probe = usb_remote_probe,
+ .disconnect = usb_remote_disconnect,
+ .id_table = usb_remote_table
+};
+
+static int __init usb_remote_init(void)
+{
+ int i;
+
+ INIT_LIST_HEAD(&remote_list);
+
+ printk(KERN_INFO "\n" DRIVER_NAME ": " DRIVER_DESC " "
+ DRIVER_VERSION "\n");
+ printk(DRIVER_NAME ": " DRIVER_AUTHOR "\n");
+ dprintk(DRIVER_NAME ": debug mode enabled: "
+ "$Id: lirc_atiusb.c,v 1.85 2009/03/11 00:21:46 jarodwilson Exp $\n");
+
+ repeat_jiffies = repeat*HZ/100;
+
+ i = usb_register(&usb_remote_driver);
+ if (i) {
+ printk(DRIVER_NAME ": usb register failed, result = %d\n", i);
+ return -ENODEV;
+ }
+
+ return 0;
+}
+
+static void __exit usb_remote_exit(void)
+{
+ usb_deregister(&usb_remote_driver);
+}
+
+module_init(usb_remote_init);
+module_exit(usb_remote_exit);
+
+MODULE_DESCRIPTION(DRIVER_DESC);
+MODULE_AUTHOR(DRIVER_AUTHOR);
+MODULE_LICENSE("GPL");
+MODULE_DEVICE_TABLE(usb, usb_remote_table);
+
+module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Debug enabled or not (default: 0)");
+
+module_param(mask, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(mask, "Set channel acceptance bit mask (default: 0xFFFF)");
+
+module_param(unique, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(unique, "Enable channel-specific codes (default: 0)");
+
+module_param(repeat, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(repeat, "Repeat timeout (1/100 sec) (default: 10)");
+
+module_param(mdeadzone, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(mdeadzone, "rw2 mouse sensitivity threshold (default: 0)");
+
+/*
+ * Enabling this will cause the built-in Remote Wonder II repeat coding to
+ * not be squashed. The second byte of the keys output will then be:
+ *
+ * 1 initial press (button down)
+ * 2 holding (button remains pressed)
+ * 0 release (button up)
+ *
+ * By default, the driver emits 2 for both 1 and 2, and emits nothing for 0.
+ * This is good for people having trouble getting their rw2 to send a good
+ * consistent signal to the receiver.
+ *
+ * However, if you have no troubles with the driver outputting up-down pairs
+ * at random points while you're still holding a button, then you can enable
+ * this parameter to get finer grain repeat control out of your remote:
+ *
+ * 1 Emit a single (per-channel) virtual code for all up/down events
+ * 2 Emit the actual rw2 output
+ *
+ * 1 is easier to write lircd configs for; 2 allows full control.
+ */
+module_param(emit_updown, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(emit_updown, "emit press/release codes (rw2): 0:don't "
+ "(default), 1:emit 2 codes only, 2:code for each button");
+
+module_param(emit_modekeys, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(emit_modekeys, "emit keycodes for aux1-aux4, pc, and mouse "
+ "(rw2): 0:don't (default), 1:emit translated codes: one for "
+ "mode switch, one for same mode, 2:raw codes");
+
+module_param(mgradient, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(mgradient, "rw2 mouse: 1000*gradient from E to NE (default: "
+ "500 => .5 => ~27 degrees)");
+
+EXPORT_NO_SYMBOLS;
diff --git a/ubuntu/lirc/lirc_bt829/Makefile b/ubuntu/lirc/lirc_bt829/Makefile
new file mode 100644
index 00000000000..81a821c1c46
--- /dev/null
+++ b/ubuntu/lirc/lirc_bt829/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_ATIUSB) += lirc_bt829.o
diff --git a/ubuntu/lirc/lirc_bt829/lirc_bt829.c b/ubuntu/lirc/lirc_bt829/lirc_bt829.c
new file mode 100644
index 00000000000..fad355c603f
--- /dev/null
+++ b/ubuntu/lirc/lirc_bt829/lirc_bt829.c
@@ -0,0 +1,398 @@
+/*
+ * Remote control driver for the TV-card based on bt829
+ *
+ * by Leonid Froenchenko <lfroen@galileo.co.il>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+*/
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)
+#error "This driver needs kernel version 2.4.0 or higher"
+#endif
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/threads.h>
+#include <linux/sched.h>
+#include <linux/ioport.h>
+#include <linux/pci.h>
+#include <linux/delay.h>
+
+#include "../kcompat.h"
+#include "../lirc_dev/lirc_dev.h"
+
+static int poll_main(void);
+static int atir_init_start(void);
+
+static void write_index(unsigned char index, unsigned int value);
+static unsigned int read_index(unsigned char index);
+
+static void do_i2c_start(void);
+static void do_i2c_stop(void);
+
+static void seems_wr_byte(unsigned char al);
+static unsigned char seems_rd_byte(void);
+
+static unsigned int read_index(unsigned char al);
+static void write_index(unsigned char ah, unsigned int edx);
+
+static void cycle_delay(int cycle);
+
+static void do_set_bits(unsigned char bl);
+static unsigned char do_get_bits(void);
+
+#define DATA_PCI_OFF 0x7FFC00
+#define WAIT_CYCLE 20
+
+#define DRIVER_NAME "lirc_bt829"
+
+static int debug;
+#define dprintk(fmt, args...) \
+ do { \
+ if (debug) \
+ printk(KERN_DEBUG DRIVER_NAME ": " fmt, ## args); \
+ } while (0)
+
+static int atir_minor;
+static unsigned long pci_addr_phys;
+static unsigned char *pci_addr_lin;
+
+static struct lirc_driver atir_driver;
+
+static struct pci_dev *do_pci_probe(void)
+{
+ struct pci_dev *my_dev;
+#ifndef KERNEL_2_5
+ /* unnecessary with recent kernels */
+ if (!pci_present())
+ printk(KERN_ERR DRIVER_NAME ": no pci in this kernel\n");
+#endif
+ my_dev = pci_get_device(PCI_VENDOR_ID_ATI,
+ PCI_DEVICE_ID_ATI_264VT, NULL);
+ if (my_dev) {
+ printk(KERN_ERR DRIVER_NAME ": Using device: %s\n",
+ pci_name(my_dev));
+ pci_addr_phys = 0;
+ if (my_dev->resource[0].flags & IORESOURCE_MEM) {
+ pci_addr_phys = my_dev->resource[0].start;
+ printk(KERN_INFO DRIVER_NAME ": memory at 0x%08X\n",
+ (unsigned int)pci_addr_phys);
+ }
+ if (pci_addr_phys == 0) {
+ printk(KERN_ERR DRIVER_NAME ": no memory resource ?\n");
+ return NULL;
+ }
+ } else {
+ printk(KERN_ERR DRIVER_NAME ": pci_probe failed\n");
+ return NULL;
+ }
+ return my_dev;
+}
+
+static int atir_add_to_buf(void *data, struct lirc_buffer *buf)
+{
+ unsigned char key;
+ int status;
+ status = poll_main();
+ key = (status >> 8) & 0xFF;
+ if (status & 0xFF) {
+ dprintk("reading key %02X\n", key);
+ lirc_buffer_write(buf, &key);
+ return 0;
+ }
+ return -ENODATA;
+}
+
+static int atir_set_use_inc(void *data)
+{
+ MOD_INC_USE_COUNT;
+ dprintk("driver is opened\n");
+ return 0;
+}
+
+static void atir_set_use_dec(void *data)
+{
+ MOD_DEC_USE_COUNT;
+ dprintk("driver is closed\n");
+}
+
+int init_module(void)
+{
+ struct pci_dev *pdev;
+
+ pdev = do_pci_probe();
+ if (pdev == NULL)
+ return 1;
+
+ if (!atir_init_start())
+ return 1;
+
+ strcpy(atir_driver.name, "ATIR");
+ atir_driver.minor = -1;
+ atir_driver.code_length = 8;
+ atir_driver.sample_rate = 10;
+ atir_driver.data = 0;
+ atir_driver.add_to_buf = atir_add_to_buf;
+ atir_driver.set_use_inc = atir_set_use_inc;
+ atir_driver.set_use_dec = atir_set_use_dec;
+#ifdef LIRC_HAVE_SYSFS
+ atir_driver.dev = &pdev->dev;
+#endif
+ atir_driver.owner = THIS_MODULE;
+
+ atir_minor = lirc_register_driver(&atir_driver);
+ if (atir_minor < 0) {
+ printk(KERN_ERR DRIVER_NAME ": failed to register driver!\n");
+ return atir_minor;
+ }
+ dprintk("driver is registered on minor %d\n", atir_minor);
+
+ return 0;
+}
+
+
+void cleanup_module(void)
+{
+ lirc_unregister_driver(atir_minor);
+}
+
+
+static int atir_init_start(void)
+{
+ pci_addr_lin = ioremap(pci_addr_phys + DATA_PCI_OFF, 0x400);
+ if (pci_addr_lin == 0) {
+ printk(KERN_INFO DRIVER_NAME ": pci mem must be mapped\n");
+ return 0;
+ }
+ return 1;
+}
+
+static void cycle_delay(int cycle)
+{
+ udelay(WAIT_CYCLE*cycle);
+}
+
+
+static int poll_main()
+{
+ unsigned char status_high, status_low;
+
+ do_i2c_start();
+
+ seems_wr_byte(0xAA);
+ seems_wr_byte(0x01);
+
+ do_i2c_start();
+
+ seems_wr_byte(0xAB);
+
+ status_low = seems_rd_byte();
+ status_high = seems_rd_byte();
+
+ do_i2c_stop();
+
+ return (status_high << 8) | status_low;
+}
+
+static void do_i2c_start(void)
+{
+ do_set_bits(3);
+ cycle_delay(4);
+
+ do_set_bits(1);
+ cycle_delay(7);
+
+ do_set_bits(0);
+ cycle_delay(2);
+}
+
+static void do_i2c_stop(void)
+{
+ unsigned char bits;
+ bits = do_get_bits() & 0xFD;
+ do_set_bits(bits);
+ cycle_delay(1);
+
+ bits |= 1;
+ do_set_bits(bits);
+ cycle_delay(2);
+
+ bits |= 2;
+ do_set_bits(bits);
+ bits = 3;
+ do_set_bits(bits);
+ cycle_delay(2);
+}
+
+static void seems_wr_byte(unsigned char value)
+{
+ int i;
+ unsigned char reg;
+
+ reg = do_get_bits();
+ for (i = 0; i < 8; i++) {
+ if (value & 0x80)
+ reg |= 0x02;
+ else
+ reg &= 0xFD;
+
+ do_set_bits(reg);
+ cycle_delay(1);
+
+ reg |= 1;
+ do_set_bits(reg);
+ cycle_delay(1);
+
+ reg &= 0xFE;
+ do_set_bits(reg);
+ cycle_delay(1);
+ value <<= 1;
+ }
+ cycle_delay(2);
+
+ reg |= 2;
+ do_set_bits(reg);
+
+ reg |= 1;
+ do_set_bits(reg);
+
+ cycle_delay(1);
+ do_get_bits();
+
+ reg &= 0xFE;
+ do_set_bits(reg);
+ cycle_delay(3);
+}
+
+static unsigned char seems_rd_byte(void)
+{
+ int i;
+ int rd_byte;
+ unsigned char bits_2, bits_1;
+
+ bits_1 = do_get_bits() | 2;
+ do_set_bits(bits_1);
+
+ rd_byte = 0;
+ for (i = 0; i < 8; i++) {
+ bits_1 &= 0xFE;
+ do_set_bits(bits_1);
+ cycle_delay(2);
+
+ bits_1 |= 1;
+ do_set_bits(bits_1);
+ cycle_delay(1);
+
+ bits_2 = do_get_bits();
+ if (bits_2 & 2)
+ rd_byte |= 1;
+
+ rd_byte <<= 1;
+ }
+
+ bits_1 = 0;
+ if (bits_2 == 0)
+ bits_1 |= 2;
+
+ do_set_bits(bits_1);
+ cycle_delay(2);
+
+ bits_1 |= 1;
+ do_set_bits(bits_1);
+ cycle_delay(3);
+
+ bits_1 &= 0xFE;
+ do_set_bits(bits_1);
+ cycle_delay(2);
+
+ rd_byte >>= 1;
+ rd_byte &= 0xFF;
+ return rd_byte;
+}
+
+static void do_set_bits(unsigned char new_bits)
+{
+ int reg_val;
+ reg_val = read_index(0x34);
+ if (new_bits & 2) {
+ reg_val &= 0xFFFFFFDF;
+ reg_val |= 1;
+ } else {
+ reg_val &= 0xFFFFFFFE;
+ reg_val |= 0x20;
+ }
+ reg_val |= 0x10;
+ write_index(0x34, reg_val);
+
+ reg_val = read_index(0x31);
+ if (new_bits & 1)
+ reg_val |= 0x1000000;
+ else
+ reg_val &= 0xFEFFFFFF;
+
+ reg_val |= 0x8000000;
+ write_index(0x31, reg_val);
+}
+
+static unsigned char do_get_bits(void)
+{
+ unsigned char bits;
+ int reg_val;
+
+ reg_val = read_index(0x34);
+ reg_val |= 0x10;
+ reg_val &= 0xFFFFFFDF;
+ write_index(0x34, reg_val);
+
+ reg_val = read_index(0x34);
+ bits = 0;
+ if (reg_val & 8)
+ bits |= 2;
+ else
+ bits &= 0xFD;
+
+ reg_val = read_index(0x31);
+ if (reg_val & 0x1000000)
+ bits |= 1;
+ else
+ bits &= 0xFE;
+
+ return bits;
+}
+
+static unsigned int read_index(unsigned char index)
+{
+ unsigned char *addr;
+ unsigned int value;
+ /* addr = pci_addr_lin + DATA_PCI_OFF + ((index & 0xFF) << 2); */
+ addr = pci_addr_lin + ((index & 0xFF) << 2);
+ value = readl(addr);
+ return value;
+}
+
+static void write_index(unsigned char index, unsigned int reg_val)
+{
+ unsigned char *addr;
+ addr = pci_addr_lin + ((index & 0xFF) << 2);
+ writel(reg_val, addr);
+}
+
+MODULE_AUTHOR("Froenchenko Leonid");
+MODULE_DESCRIPTION("IR remote driver for bt829 based TV cards");
+MODULE_LICENSE("GPL");
+
+module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Debug enabled or not");
+EXPORT_NO_SYMBOLS;
diff --git a/ubuntu/lirc/lirc_dev/Makefile b/ubuntu/lirc/lirc_dev/Makefile
new file mode 100644
index 00000000000..b48b0321eb4
--- /dev/null
+++ b/ubuntu/lirc/lirc_dev/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_DEV) += lirc_dev.o
diff --git a/ubuntu/lirc/lirc_dev/lirc_dev.c b/ubuntu/lirc/lirc_dev/lirc_dev.c
new file mode 100644
index 00000000000..1ead88a5b2a
--- /dev/null
+++ b/ubuntu/lirc/lirc_dev/lirc_dev.c
@@ -0,0 +1,1024 @@
+/*
+ * LIRC base driver
+ *
+ * (L) by Artur Lipowski <alipowski@interia.pl>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * $Id: lirc_dev.c,v 1.96 2009/08/31 16:57:55 lirc Exp $
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 2, 18)
+#error "**********************************************************"
+#error " Sorry, this driver needs kernel version 2.2.18 or higher "
+#error "**********************************************************"
+#endif
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/errno.h>
+#include <linux/ioctl.h>
+#include <linux/fs.h>
+#include <linux/poll.h>
+#include <linux/smp_lock.h>
+#include <linux/completion.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
+#include <asm/uaccess.h>
+#include <asm/errno.h>
+#else
+#include <linux/uaccess.h>
+#include <linux/errno.h>
+#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
+#include <linux/wrapper.h>
+#endif
+#define __KERNEL_SYSCALLS__
+#include <linux/unistd.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23)
+#include <linux/kthread.h>
+#endif
+#ifdef CONFIG_COMPAT
+#include <linux/compat.h>
+#endif
+
+#include "../kcompat.h"
+
+/* SysFS header */
+#if defined(LIRC_HAVE_SYSFS)
+#include <linux/device.h>
+#endif
+
+#include "../lirc.h"
+#include "lirc_dev.h"
+
+static int debug;
+#define dprintk(fmt, args...) \
+ do { \
+ if (debug) \
+ printk(KERN_DEBUG fmt, ## args); \
+ } while (0)
+
+#define IRCTL_DEV_NAME "BaseRemoteCtl"
+#define NOPLUG -1
+#define LOGHEAD "lirc_dev (%s[%d]): "
+
+struct irctl {
+ struct lirc_driver d;
+ int attached;
+ int open;
+
+ struct mutex buffer_lock;
+ struct lirc_buffer *buf;
+ unsigned int chunk_size;
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
+ int tpid;
+ struct completion *t_notify;
+ struct completion *t_notify2;
+ int shutdown;
+#else
+ struct task_struct *task;
+#endif
+ long jiffies_to_wait;
+
+#ifdef LIRC_HAVE_DEVFS_24
+ devfs_handle_t devfs_handle;
+#endif
+};
+
+static DEFINE_MUTEX(lirc_dev_lock);
+
+static struct irctl *irctls[MAX_IRCTL_DEVICES];
+static struct file_operations fops;
+
+/* Only used for sysfs but defined to void otherwise */
+static lirc_class_t *lirc_class;
+
+/* helper function
+ * initializes the irctl structure
+ */
+static void init_irctl(struct irctl *ir)
+{
+ mutex_init(&ir->buffer_lock);
+ ir->d.minor = NOPLUG;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
+ ir->tpid = -1;
+#endif
+}
+
+static void cleanup(struct irctl *ir)
+{
+ dprintk(LOGHEAD "cleaning up\n", ir->d.name, ir->d.minor);
+
+ if (ir->buf != ir->d.rbuf) {
+ lirc_buffer_free(ir->buf);
+ kfree(ir->buf);
+ }
+ ir->buf = NULL;
+}
+
+/* helper function
+ * reads key codes from driver and puts them into buffer
+ * returns 0 on success
+ */
+static int add_to_buf(struct irctl *ir)
+{
+ if (ir->d.add_to_buf) {
+ int res = -ENODATA;
+ int got_data = 0;
+
+ /*
+ * service the device as long as it is returning
+ * data and we have space
+ */
+ while ((res = ir->d.add_to_buf(ir->d.data, ir->buf)) == 0) {
+ got_data++;
+ }
+
+ if (res == -ENODEV)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
+ ir->shutdown = 1;
+#else
+ kthread_stop(ir->task);
+#endif
+
+ return got_data ? 0 : res;
+ }
+
+ return 0;
+}
+
+/* main function of the polling thread */
+static int lirc_thread(void *irctl)
+{
+ struct irctl *ir = irctl;
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
+ /*
+ * This thread doesn't need any user-level access, so get rid
+ * of all our resources
+ */
+ daemonize("lirc_dev");
+
+ if (ir->t_notify != NULL)
+ complete(ir->t_notify);
+
+#endif
+ dprintk(LOGHEAD "poll thread started\n", ir->d.name, ir->d.minor);
+
+ do {
+ if (ir->open) {
+ if (ir->jiffies_to_wait) {
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule_timeout(ir->jiffies_to_wait);
+#ifndef LIRC_REMOVE_DURING_EXPORT
+ } else {
+ interruptible_sleep_on(
+ ir->d.get_queue(ir->d.data));
+#endif
+ }
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
+ if (ir->shutdown)
+#else
+ if (kthread_should_stop())
+#endif
+ break;
+ if (!add_to_buf(ir))
+ wake_up_interruptible(&ir->buf->wait_poll);
+ } else {
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule();
+ }
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
+ } while (!ir->shutdown);
+
+ if (ir->t_notify2 != NULL)
+ wait_for_completion(ir->t_notify2);
+
+ ir->tpid = -1;
+ if (ir->t_notify != NULL)
+ complete(ir->t_notify);
+#else
+ } while (!kthread_should_stop());
+#endif
+
+ dprintk(LOGHEAD "poll thread ended\n", ir->d.name, ir->d.minor);
+
+ return 0;
+}
+
+int lirc_register_driver(struct lirc_driver *d)
+{
+ struct irctl *ir;
+ int minor;
+ int bytes_in_key;
+ unsigned int buffer_size;
+ int err;
+#ifdef LIRC_HAVE_DEVFS_24
+ char name[16];
+#endif
+ DECLARE_COMPLETION(tn);
+
+ if (!d) {
+ printk(KERN_ERR "lirc_dev: lirc_register_driver: "
+ "driver pointer must be not NULL!\n");
+ err = -EBADRQC;
+ goto out;
+ }
+
+ if (MAX_IRCTL_DEVICES <= d->minor) {
+ printk(KERN_ERR "lirc_dev: lirc_register_driver: "
+ "\"minor\" must be between 0 and %d (%d)!\n",
+ MAX_IRCTL_DEVICES-1, d->minor);
+ err = -EBADRQC;
+ goto out;
+ }
+
+ if (1 > d->code_length || (BUFLEN * 8) < d->code_length) {
+ printk(KERN_ERR "lirc_dev: lirc_register_driver: "
+ "code length in bits for minor (%d) "
+ "must be less than %d!\n",
+ d->minor, BUFLEN * 8);
+ err = -EBADRQC;
+ goto out;
+ }
+
+ printk(KERN_INFO "lirc_dev: lirc_register_driver: sample_rate: %d\n",
+ d->sample_rate);
+ if (d->sample_rate) {
+ if (2 > d->sample_rate || HZ < d->sample_rate) {
+ printk(KERN_ERR "lirc_dev: lirc_register_driver: "
+ "sample_rate must be between 2 and %d!\n", HZ);
+ err = -EBADRQC;
+ goto out;
+ }
+ if (!d->add_to_buf) {
+ printk(KERN_ERR "lirc_dev: lirc_register_driver: "
+ "add_to_buf cannot be NULL when "
+ "sample_rate is set\n");
+ err = -EBADRQC;
+ goto out;
+ }
+#ifndef LIRC_REMOVE_DURING_EXPORT
+ } else if (!(d->fops && d->fops->read) && !d->get_queue && !d->rbuf) {
+#else
+ } else if (!(d->fops && d->fops->read) && !d->rbuf) {
+#endif
+ printk(KERN_ERR "lirc_dev: lirc_register_driver: "
+#ifndef LIRC_REMOVE_DURING_EXPORT
+ "fops->read, get_queue and rbuf "
+#else
+ "fops->read and rbuf "
+#endif
+ "cannot all be NULL!\n");
+ err = -EBADRQC;
+ goto out;
+#ifndef LIRC_REMOVE_DURING_EXPORT
+ } else if (!d->get_queue && !d->rbuf) {
+#else
+ } else if (!d->rbuf) {
+#endif
+ if (!(d->fops && d->fops->read && d->fops->poll &&
+ d->fops->ioctl)) {
+ printk(KERN_ERR "lirc_dev: lirc_register_driver: "
+ "neither read, poll nor ioctl can be NULL!\n");
+ err = -EBADRQC;
+ goto out;
+ }
+ }
+
+ mutex_lock(&lirc_dev_lock);
+
+ minor = d->minor;
+
+ if (minor < 0) {
+ /* find first free slot for driver */
+ for (minor = 0; minor < MAX_IRCTL_DEVICES; minor++)
+ if (!irctls[minor])
+ break;
+ if (MAX_IRCTL_DEVICES == minor) {
+ printk(KERN_ERR "lirc_dev: lirc_register_driver: "
+ "no free slots for drivers!\n");
+ err = -ENOMEM;
+ goto out_lock;
+ }
+ } else if (irctls[minor]) {
+ printk(KERN_ERR "lirc_dev: lirc_register_driver: "
+ "minor (%d) just registered!\n", minor);
+ err = -EBUSY;
+ goto out_lock;
+ }
+
+ ir = kzalloc(sizeof(struct irctl), GFP_KERNEL);
+ if (!ir) {
+ err = -ENOMEM;
+ goto out_lock;
+ }
+ init_irctl(ir);
+ irctls[minor] = ir;
+
+ if (d->sample_rate) {
+ ir->jiffies_to_wait = HZ / d->sample_rate;
+ } else {
+ /* it means - wait for external event in task queue */
+ ir->jiffies_to_wait = 0;
+ }
+
+ /* some safety check 8-) */
+ d->name[sizeof(d->name)-1] = '\0';
+
+ bytes_in_key = d->code_length/8 + (d->code_length%8 ? 1 : 0);
+ buffer_size = d->buffer_size ? d->buffer_size : BUFLEN / bytes_in_key;
+
+ if (d->rbuf) {
+ ir->buf = d->rbuf;
+ } else {
+ ir->buf = kmalloc(sizeof(struct lirc_buffer), GFP_KERNEL);
+ if (!ir->buf) {
+ err = -ENOMEM;
+ goto out_lock;
+ }
+ err = lirc_buffer_init(ir->buf, bytes_in_key, buffer_size);
+ if (err) {
+ kfree(ir->buf);
+ goto out_lock;
+ }
+ }
+ ir->chunk_size = ir->buf->chunk_size;
+
+ if (d->features == 0)
+ d->features = (d->code_length > 8) ?
+ LIRC_CAN_REC_LIRCCODE : LIRC_CAN_REC_CODE;
+
+ ir->d = *d;
+ ir->d.minor = minor;
+
+#if defined(LIRC_HAVE_DEVFS_24)
+ sprintf(name, DEV_LIRC "/%d", ir->d.minor);
+ ir->devfs_handle = devfs_register(NULL, name, DEVFS_FL_DEFAULT,
+ IRCTL_DEV_MAJOR, ir->d.minor,
+ S_IFCHR | S_IRUSR | S_IWUSR,
+ &fops, NULL);
+#elif defined(LIRC_HAVE_DEVFS_26)
+ devfs_mk_cdev(MKDEV(IRCTL_DEV_MAJOR, ir->d.minor),
+ S_IFCHR|S_IRUSR|S_IWUSR,
+ DEV_LIRC "/%u", ir->d.minor);
+#endif
+ (void) lirc_device_create(lirc_class, ir->d.dev,
+ MKDEV(IRCTL_DEV_MAJOR, ir->d.minor), NULL,
+ "lirc%u", ir->d.minor);
+
+#ifndef LIRC_REMOVE_DURING_EXPORT
+ if (d->sample_rate || d->get_queue) {
+#else
+ if (d->sample_rate) {
+#endif
+ /* try to fire up polling thread */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
+ ir->t_notify = &tn;
+ ir->tpid = kernel_thread(lirc_thread, (void *)ir, 0);
+ if (ir->tpid < 0) {
+#else
+ ir->task = kthread_run(lirc_thread, (void *)ir, "lirc_dev");
+ if (IS_ERR(ir->task)) {
+#endif
+ printk(KERN_ERR "lirc_dev: lirc_register_driver: "
+ "cannot run poll thread for minor = %d\n",
+ d->minor);
+ err = -ECHILD;
+ goto out_sysfs;
+ }
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
+ wait_for_completion(&tn);
+ ir->t_notify = NULL;
+#endif
+ }
+ ir->attached = 1;
+ mutex_unlock(&lirc_dev_lock);
+
+/*
+ * Recent kernels should handle this autmatically by increasing/decreasing
+ * use count when a dependant module is loaded/unloaded.
+ */
+#ifndef KERNEL_2_5
+ MOD_INC_USE_COUNT;
+#endif
+ dprintk("lirc_dev: driver %s registered at minor number = %d\n",
+ ir->d.name, ir->d.minor);
+ d->minor = minor;
+ return minor;
+
+out_sysfs:
+ lirc_device_destroy(lirc_class,
+ MKDEV(IRCTL_DEV_MAJOR, ir->d.minor));
+#ifdef LIRC_HAVE_DEVFS_24
+ devfs_unregister(ir->devfs_handle);
+#endif
+#ifdef LIRC_HAVE_DEVFS_26
+ devfs_remove(DEV_LIRC "/%i", ir->d.minor);
+#endif
+out_lock:
+ mutex_unlock(&lirc_dev_lock);
+out:
+ return err;
+}
+EXPORT_SYMBOL(lirc_register_driver);
+
+int lirc_unregister_driver(int minor)
+{
+ struct irctl *ir;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
+ DECLARE_COMPLETION(tn);
+ DECLARE_COMPLETION(tn2);
+#endif
+
+ if (minor < 0 || minor >= MAX_IRCTL_DEVICES) {
+ printk(KERN_ERR "lirc_dev: lirc_unregister_driver: "
+ "\"minor\" must be between 0 and %d!\n",
+ MAX_IRCTL_DEVICES-1);
+ return -EBADRQC;
+ }
+
+ ir = irctls[minor];
+
+ mutex_lock(&lirc_dev_lock);
+
+ if (ir->d.minor != minor) {
+ printk(KERN_ERR "lirc_dev: lirc_unregister_driver: "
+ "minor (%d) device not registered!", minor);
+ mutex_unlock(&lirc_dev_lock);
+ return -ENOENT;
+ }
+
+ /* end up polling thread */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
+ if (ir->tpid >= 0) {
+ ir->t_notify = &tn;
+ ir->t_notify2 = &tn2;
+ ir->shutdown = 1;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
+ {
+ struct task_struct *p;
+
+ p = find_task_by_pid(ir->tpid);
+ wake_up_process(p);
+ }
+#else
+ /* 2.2.x does not export wake_up_process() */
+ wake_up_interruptible(ir->d.get_queue(ir->d.data));
+#endif
+ complete(&tn2);
+ wait_for_completion(&tn);
+ ir->t_notify = NULL;
+ ir->t_notify2 = NULL;
+ }
+#else /* kernel >= 2.6.23 */
+ if (ir->task)
+ kthread_stop(ir->task);
+#endif
+
+ dprintk("lirc_dev: driver %s unregistered from minor number = %d\n",
+ ir->d.name, ir->d.minor);
+
+ ir->attached = 0;
+ if (ir->open) {
+ dprintk(LOGHEAD "releasing opened driver\n",
+ ir->d.name, ir->d.minor);
+ wake_up_interruptible(&ir->buf->wait_poll);
+ mutex_lock(&ir->buffer_lock);
+ ir->d.set_use_dec(ir->d.data);
+ module_put(ir->d.owner);
+ mutex_unlock(&ir->buffer_lock);
+ } else {
+ cleanup(ir);
+ irctls[minor] = NULL;
+ kfree(ir);
+ }
+
+#ifdef LIRC_HAVE_DEVFS_24
+ devfs_unregister(ir->devfs_handle);
+#endif
+#ifdef LIRC_HAVE_DEVFS_26
+ devfs_remove(DEV_LIRC "/%u", ir->d.minor);
+#endif
+ lirc_device_destroy(lirc_class,
+ MKDEV(IRCTL_DEV_MAJOR, ir->d.minor));
+
+ mutex_unlock(&lirc_dev_lock);
+
+/*
+ * Recent kernels should handle this autmatically by increasing/decreasing
+ * use count when a dependant module is loaded/unloaded.
+ */
+#ifndef KERNEL_2_5
+ MOD_DEC_USE_COUNT;
+#endif
+
+ return 0;
+}
+EXPORT_SYMBOL(lirc_unregister_driver);
+
+static int irctl_open(struct inode *inode, struct file *file)
+{
+ struct irctl *ir;
+ int retval;
+
+ if (iminor(inode) >= MAX_IRCTL_DEVICES || !irctls[iminor(inode)]) {
+ dprintk("lirc_dev [%d]: open result = -ENODEV\n",
+ iminor(inode));
+ return -ENODEV;
+ }
+
+ ir = irctls[iminor(inode)];
+
+ dprintk(LOGHEAD "open called\n", ir->d.name, ir->d.minor);
+
+ /* if the driver has an open function use it instead */
+ if (ir->d.fops && ir->d.fops->open)
+ return ir->d.fops->open(inode, file);
+
+ if (mutex_lock_interruptible(&lirc_dev_lock))
+ return -ERESTARTSYS;
+
+ if (ir->d.minor == NOPLUG) {
+ retval = -ENODEV;
+ goto error;
+ }
+
+ if (ir->open) {
+ retval = -EBUSY;
+ goto error;
+ }
+
+ if (try_module_get(ir->d.owner)) {
+ ++ir->open;
+ retval = ir->d.set_use_inc(ir->d.data);
+
+ if (retval) {
+ module_put(ir->d.owner);
+ --ir->open;
+ } else {
+ lirc_buffer_clear(ir->buf);
+ }
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
+ if (ir->tpid >= 0) {
+ struct task_struct *p;
+
+ p = find_task_by_pid(ir->tpid);
+ wake_up_process(p);
+ }
+#else
+ if (ir->task)
+ wake_up_process(ir->task);
+#endif
+ }
+ error:
+ if (ir)
+ dprintk(LOGHEAD "open result = %d\n", ir->d.name, ir->d.minor,
+ retval);
+
+ mutex_unlock(&lirc_dev_lock);
+
+ return retval;
+}
+
+static int irctl_close(struct inode *inode, struct file *file)
+{
+ struct irctl *ir = irctls[iminor(inode)];
+
+ dprintk(LOGHEAD "close called\n", ir->d.name, ir->d.minor);
+
+ /* if the driver has a close function use it instead */
+ if (ir->d.fops && ir->d.fops->release)
+ return ir->d.fops->release(inode, file);
+
+ if (mutex_lock_interruptible(&lirc_dev_lock))
+ return -ERESTARTSYS;
+
+ --ir->open;
+ if (ir->attached) {
+ ir->d.set_use_dec(ir->d.data);
+ module_put(ir->d.owner);
+ } else {
+ cleanup(ir);
+ irctls[ir->d.minor] = NULL;
+ kfree(ir);
+ }
+
+ mutex_unlock(&lirc_dev_lock);
+
+ return 0;
+}
+
+static unsigned int irctl_poll(struct file *file, poll_table *wait)
+{
+ struct irctl *ir = irctls[iminor(file->f_dentry->d_inode)];
+ unsigned int ret;
+
+ dprintk(LOGHEAD "poll called\n", ir->d.name, ir->d.minor);
+
+ /* if the driver has a poll function use it instead */
+ if (ir->d.fops && ir->d.fops->poll)
+ return ir->d.fops->poll(file, wait);
+
+ mutex_lock(&ir->buffer_lock);
+ if (!ir->attached) {
+ mutex_unlock(&ir->buffer_lock);
+ return POLLERR;
+ }
+
+ poll_wait(file, &ir->buf->wait_poll, wait);
+
+ dprintk(LOGHEAD "poll result = %s\n",
+ ir->d.name, ir->d.minor,
+ lirc_buffer_empty(ir->buf) ? "0" : "POLLIN|POLLRDNORM");
+
+ ret = lirc_buffer_empty(ir->buf) ? 0 : (POLLIN|POLLRDNORM);
+
+ mutex_unlock(&ir->buffer_lock);
+ return ret;
+}
+
+/*
+ *
+ */
+static int irctl_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ unsigned long mode;
+ int result;
+ struct irctl *ir = irctls[iminor(inode)];
+
+ dprintk(LOGHEAD "ioctl called (0x%x)\n",
+ ir->d.name, ir->d.minor, cmd);
+
+ /* if the driver has a ioctl function use it instead */
+ if (ir->d.fops && ir->d.fops->ioctl) {
+ result = ir->d.fops->ioctl(inode, file, cmd, arg);
+ if (result != -ENOIOCTLCMD)
+ return result;
+ }
+
+ if (ir->d.minor == NOPLUG || !ir->attached) {
+ dprintk(LOGHEAD "ioctl result = -ENODEV\n",
+ ir->d.name, ir->d.minor);
+ return -ENODEV;
+ }
+
+ /* The driver can't handle cmd */
+ result = 0;
+
+ switch (cmd) {
+ case LIRC_GET_FEATURES:
+ result = put_user(ir->d.features, (unsigned long *)arg);
+ break;
+ case LIRC_GET_REC_MODE:
+ if (!(ir->d.features & LIRC_CAN_REC_MASK))
+ return -ENOSYS;
+
+ result = put_user(LIRC_REC2MODE
+ (ir->d.features & LIRC_CAN_REC_MASK),
+ (unsigned long *)arg);
+ break;
+ case LIRC_SET_REC_MODE:
+ if (!(ir->d.features & LIRC_CAN_REC_MASK))
+ return -ENOSYS;
+
+ result = get_user(mode, (unsigned long *)arg);
+ if (!result && !(LIRC_MODE2REC(mode) & ir->d.features))
+ result = -EINVAL;
+ /*
+ * FIXME: We should actually set the mode somehow but
+ * for now, lirc_serial doesn't support mode changing either
+ */
+ break;
+ case LIRC_GET_LENGTH:
+ result = put_user(ir->d.code_length, (unsigned long *) arg);
+ break;
+ default:
+ result = -EINVAL;
+ }
+
+ dprintk(LOGHEAD "ioctl result = %d\n",
+ ir->d.name, ir->d.minor, result);
+
+ return result;
+}
+
+#ifdef CONFIG_COMPAT
+#define LIRC_GET_FEATURES_COMPAT32 _IOR('i', 0x00000000, __u32)
+
+#define LIRC_GET_SEND_MODE_COMPAT32 _IOR('i', 0x00000001, __u32)
+#define LIRC_GET_REC_MODE_COMPAT32 _IOR('i', 0x00000002, __u32)
+
+#define LIRC_GET_LENGTH_COMPAT32 _IOR('i', 0x0000000f, __u32)
+
+#define LIRC_SET_SEND_MODE_COMPAT32 _IOW('i', 0x00000011, __u32)
+#define LIRC_SET_REC_MODE_COMPAT32 _IOW('i', 0x00000012, __u32)
+
+static long irctl_compat_ioctl(struct file *file,
+ unsigned int cmd32,
+ unsigned long arg)
+{
+ mm_segment_t old_fs;
+ int ret;
+ unsigned long val;
+ unsigned int cmd;
+
+ switch (cmd32) {
+ case LIRC_GET_FEATURES_COMPAT32:
+ case LIRC_GET_SEND_MODE_COMPAT32:
+ case LIRC_GET_REC_MODE_COMPAT32:
+ case LIRC_GET_LENGTH_COMPAT32:
+ case LIRC_SET_SEND_MODE_COMPAT32:
+ case LIRC_SET_REC_MODE_COMPAT32:
+ /*
+ * These commands expect (unsigned long *) arg
+ * but the 32-bit app supplied (__u32 *).
+ * Conversion is required.
+ */
+ if (get_user(val, (__u32 *)compat_ptr(arg)))
+ return -EFAULT;
+ lock_kernel();
+ /*
+ * tell irctl_ioctl that it's safe to use the pointer
+ * to val which is in kernel address space and not in
+ * user address space
+ */
+ old_fs = get_fs();
+ set_fs(KERNEL_DS);
+
+ cmd = _IOC(_IOC_DIR(cmd32), _IOC_TYPE(cmd32), _IOC_NR(cmd32),
+ (_IOC_TYPECHECK(unsigned long)));
+ ret = irctl_ioctl(file->f_dentry->d_inode, file,
+ cmd, (unsigned long)(&val));
+
+ set_fs(old_fs);
+ unlock_kernel();
+ switch (cmd) {
+ case LIRC_GET_FEATURES:
+ case LIRC_GET_SEND_MODE:
+ case LIRC_GET_REC_MODE:
+ case LIRC_GET_LENGTH:
+ if (!ret && put_user(val, (__u32 *)compat_ptr(arg)))
+ return -EFAULT;
+ break;
+ }
+ return ret;
+
+ case LIRC_GET_SEND_CARRIER:
+ case LIRC_GET_REC_CARRIER:
+ case LIRC_GET_SEND_DUTY_CYCLE:
+ case LIRC_GET_REC_DUTY_CYCLE:
+ case LIRC_GET_REC_RESOLUTION:
+ case LIRC_SET_SEND_CARRIER:
+ case LIRC_SET_REC_CARRIER:
+ case LIRC_SET_SEND_DUTY_CYCLE:
+ case LIRC_SET_REC_DUTY_CYCLE:
+ case LIRC_SET_TRANSMITTER_MASK:
+ case LIRC_SET_REC_DUTY_CYCLE_RANGE:
+ case LIRC_SET_REC_CARRIER_RANGE:
+ /*
+ * These commands expect (unsigned int *)arg
+ * so no problems here. Just handle the locking.
+ */
+ lock_kernel();
+ cmd = cmd32;
+ ret = irctl_ioctl(file->f_dentry->d_inode,
+ file, cmd, arg);
+ unlock_kernel();
+ return ret;
+ default:
+ /* unknown */
+ printk(KERN_ERR "lirc_dev: %s(%s:%d): Unknown cmd %08x\n",
+ __func__, current->comm, current->pid, cmd32);
+ return -ENOIOCTLCMD;
+ }
+}
+#endif
+
+static ssize_t irctl_read(struct file *file,
+ char *buffer,
+ size_t length,
+ loff_t *ppos)
+{
+ struct irctl *ir = irctls[iminor(file->f_dentry->d_inode)];
+ unsigned char buf[ir->chunk_size];
+ int ret = 0, written = 0;
+ int unlock = 1;
+ DECLARE_WAITQUEUE(wait, current);
+
+ dprintk(LOGHEAD "read called\n", ir->d.name, ir->d.minor);
+
+ /* if the driver has a specific read function use it instead */
+ if (ir->d.fops && ir->d.fops->read)
+ return ir->d.fops->read(file, buffer, length, ppos);
+
+ if (mutex_lock_interruptible(&ir->buffer_lock))
+ return -ERESTARTSYS;
+ if (!ir->attached) {
+ mutex_unlock(&ir->buffer_lock);
+ return -ENODEV;
+ }
+
+ if (length % ir->buf->chunk_size) {
+ dprintk(LOGHEAD "read result = -EINVAL\n",
+ ir->d.name, ir->d.minor);
+ mutex_unlock(&ir->buffer_lock);
+ return -EINVAL;
+ }
+
+ /*
+ * we add ourselves to the task queue before buffer check
+ * to avoid losing scan code (in case when queue is awaken somewhere
+ * between while condition checking and scheduling)
+ */
+ add_wait_queue(&ir->buf->wait_poll, &wait);
+ set_current_state(TASK_INTERRUPTIBLE);
+
+ /*
+ * while we didn't provide 'length' bytes, device is opened in blocking
+ * mode and 'copy_to_user' is happy, wait for data.
+ */
+ while (written < length && ret == 0) {
+ if (lirc_buffer_empty(ir->buf)) {
+ /* According to the read(2) man page, 'written' can be
+ * returned as less than 'length', instead of blocking
+ * again, returning -EWOULDBLOCK, or returning
+ * -ERESTARTSYS */
+ if (written)
+ break;
+ if (file->f_flags & O_NONBLOCK) {
+ ret = -EWOULDBLOCK;
+ break;
+ }
+ if (signal_pending(current)) {
+ ret = -ERESTARTSYS;
+ break;
+ }
+
+ mutex_unlock(&ir->buffer_lock);
+ schedule();
+ set_current_state(TASK_INTERRUPTIBLE);
+
+ if (mutex_lock_interruptible(&ir->buffer_lock)) {
+ unlock = 0;
+ ret = -ERESTARTSYS;
+ break;
+ }
+
+ if (!ir->attached) {
+ ret = -ENODEV;
+ break;
+ }
+ } else {
+ lirc_buffer_read(ir->buf, buf);
+ ret = copy_to_user((void *)buffer+written, buf,
+ ir->buf->chunk_size);
+ written += ir->buf->chunk_size;
+ }
+ }
+
+ remove_wait_queue(&ir->buf->wait_poll, &wait);
+ set_current_state(TASK_RUNNING);
+ if(unlock) mutex_unlock(&ir->buffer_lock);
+
+ dprintk(LOGHEAD "read result = %s (%d)\n",
+ ir->d.name, ir->d.minor, ret ? "-EFAULT" : "OK", ret);
+
+ return ret ? ret : written;
+}
+
+
+void *lirc_get_pdata(struct file *file)
+{
+ void *data = NULL;
+
+ if (file && file->f_dentry && file->f_dentry->d_inode &&
+ file->f_dentry->d_inode->i_rdev) {
+ struct irctl *ir;
+ ir = irctls[iminor(file->f_dentry->d_inode)];
+ data = ir->d.data;
+ }
+
+ return data;
+}
+EXPORT_SYMBOL(lirc_get_pdata);
+
+
+static ssize_t irctl_write(struct file *file, const char *buffer,
+ size_t length, loff_t *ppos)
+{
+ struct irctl *ir = irctls[iminor(file->f_dentry->d_inode)];
+
+ dprintk(LOGHEAD "write called\n", ir->d.name, ir->d.minor);
+
+ /* if the driver has a specific read function use it instead */
+ if (ir->d.fops && ir->d.fops->write)
+ return ir->d.fops->write(file, buffer, length, ppos);
+
+ if (!ir->attached)
+ return -ENODEV;
+
+ return -EINVAL;
+}
+
+
+static struct file_operations fops = {
+ .owner = THIS_MODULE,
+ .read = irctl_read,
+ .write = irctl_write,
+ .poll = irctl_poll,
+ .ioctl = irctl_ioctl,
+#ifdef CONFIG_COMPAT
+ .compat_ioctl = irctl_compat_ioctl,
+#endif
+ .open = irctl_open,
+ .release = irctl_close
+};
+
+/* For now don't try to use it as a static version ! */
+#ifdef MODULE
+
+static int __init lirc_dev_init(void)
+{
+ if (register_chrdev(IRCTL_DEV_MAJOR, IRCTL_DEV_NAME, &fops)) {
+ printk(KERN_ERR "lirc_dev: register_chrdev failed\n");
+ goto out;
+ }
+
+ lirc_class = class_create(THIS_MODULE, "lirc");
+ if (IS_ERR(lirc_class)) {
+ printk(KERN_ERR "lirc_dev: class_create failed\n");
+ goto out_unregister;
+ }
+
+ printk(KERN_INFO "lirc_dev: IR Remote Control driver registered, "
+ "major %d \n", IRCTL_DEV_MAJOR);
+
+ return 0;
+
+out_unregister:
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
+ if (unregister_chrdev(IRCTL_DEV_MAJOR, IRCTL_DEV_NAME))
+ printk(KERN_ERR "lirc_dev: unregister_chrdev failed!\n");
+#else
+ /* unregister_chrdev returns void now */
+ unregister_chrdev(IRCTL_DEV_MAJOR, IRCTL_DEV_NAME);
+#endif
+out:
+ return -1;
+}
+
+static void __exit lirc_dev_exit(void)
+{
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 23)
+ int ret;
+
+ ret = unregister_chrdev(IRCTL_DEV_MAJOR, IRCTL_DEV_NAME);
+ class_destroy(lirc_class);
+
+ if (ret)
+ printk(KERN_ERR "lirc_dev: error in "
+ "module_unregister_chrdev: %d\n", ret);
+ else
+ dprintk("lirc_dev: module successfully unloaded\n");
+#else
+ /* unregister_chrdev returns void now */
+ unregister_chrdev(IRCTL_DEV_MAJOR, IRCTL_DEV_NAME);
+ class_destroy(lirc_class);
+ dprintk("lirc_dev: module unloaded\n");
+#endif
+}
+
+module_init(lirc_dev_init);
+module_exit(lirc_dev_exit);
+
+MODULE_DESCRIPTION("LIRC base driver module");
+MODULE_AUTHOR("Artur Lipowski");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS_CHARDEV_MAJOR(IRCTL_DEV_MAJOR);
+
+module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
+
+#endif /* MODULE */
diff --git a/ubuntu/lirc/lirc_dev/lirc_dev.h b/ubuntu/lirc/lirc_dev/lirc_dev.h
new file mode 100644
index 00000000000..c94086ef25a
--- /dev/null
+++ b/ubuntu/lirc/lirc_dev/lirc_dev.h
@@ -0,0 +1,343 @@
+/*
+ * LIRC base driver
+ *
+ * (L) by Artur Lipowski <alipowski@interia.pl>
+ * This code is licensed under GNU GPL
+ *
+ * $Id: lirc_dev.h,v 1.37 2009/03/15 09:34:00 lirc Exp $
+ *
+ */
+
+#ifndef _LINUX_LIRC_DEV_H
+#define _LINUX_LIRC_DEV_H
+
+#ifndef LIRC_REMOVE_DURING_EXPORT
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 11)
+/* when was it really introduced? */
+#define LIRC_HAVE_KFIFO
+#endif
+#endif
+#define MAX_IRCTL_DEVICES 4
+#define BUFLEN 16
+
+#define mod(n, div) ((n) % (div))
+
+#include <linux/slab.h>
+#include <linux/fs.h>
+#ifdef LIRC_HAVE_KFIFO
+#include <linux/kfifo.h>
+#endif
+
+struct lirc_buffer {
+ wait_queue_head_t wait_poll;
+ spinlock_t lock;
+ unsigned int chunk_size;
+ unsigned int size; /* in chunks */
+ /* Using chunks instead of bytes pretends to simplify boundary checking
+ * And should allow for some performance fine tunning later */
+#ifdef LIRC_HAVE_KFIFO
+ struct kfifo *fifo;
+#else
+ unsigned int fill; /* in chunks */
+ int head, tail; /* in chunks */
+ unsigned char *data;
+#endif
+};
+#ifndef LIRC_HAVE_KFIFO
+static inline void lirc_buffer_lock(struct lirc_buffer *buf,
+ unsigned long *flags)
+{
+ spin_lock_irqsave(&buf->lock, *flags);
+}
+static inline void lirc_buffer_unlock(struct lirc_buffer *buf,
+ unsigned long *flags)
+{
+ spin_unlock_irqrestore(&buf->lock, *flags);
+}
+static inline void _lirc_buffer_clear(struct lirc_buffer *buf)
+{
+ buf->head = 0;
+ buf->tail = 0;
+ buf->fill = 0;
+}
+#endif
+static inline void lirc_buffer_clear(struct lirc_buffer *buf)
+{
+#ifdef LIRC_HAVE_KFIFO
+ if (buf->fifo)
+ kfifo_reset(buf->fifo);
+#else
+ unsigned long flags;
+ lirc_buffer_lock(buf, &flags);
+ _lirc_buffer_clear(buf);
+ lirc_buffer_unlock(buf, &flags);
+#endif
+}
+static inline int lirc_buffer_init(struct lirc_buffer *buf,
+ unsigned int chunk_size,
+ unsigned int size)
+{
+ int ret;
+ init_waitqueue_head(&buf->wait_poll);
+ spin_lock_init(&buf->lock);
+#ifndef LIRC_HAVE_KFIFO
+ _lirc_buffer_clear(buf);
+#endif
+ buf->chunk_size = chunk_size;
+ buf->size = size;
+#ifdef LIRC_HAVE_KFIFO
+ ret = kfifo_alloc(buf->fifo, size*chunk_size, GFP_KERNEL);
+ if (ret)
+ return -ENOMEM;
+#else
+ buf->data = kmalloc(size*chunk_size, GFP_KERNEL);
+ if (buf->data == NULL)
+ return -ENOMEM;
+ memset(buf->data, 0, size*chunk_size);
+#endif
+ return 0;
+}
+static inline void lirc_buffer_free(struct lirc_buffer *buf)
+{
+#ifdef LIRC_HAVE_KFIFO
+ if (buf->fifo)
+ kfifo_free(buf->fifo);
+#else
+ kfree(buf->data);
+ buf->data = NULL;
+ buf->head = 0;
+ buf->tail = 0;
+ buf->fill = 0;
+ buf->chunk_size = 0;
+ buf->size = 0;
+#endif
+}
+#ifndef LIRC_HAVE_KFIFO
+static inline int _lirc_buffer_full(struct lirc_buffer *buf)
+{
+ return (buf->fill >= buf->size);
+}
+#endif
+static inline int lirc_buffer_full(struct lirc_buffer *buf)
+{
+#ifdef LIRC_HAVE_KFIFO
+ return kfifo_len(buf->fifo) == buf->size * buf->chunk_size;
+#else
+ unsigned long flags;
+ int ret;
+ lirc_buffer_lock(buf, &flags);
+ ret = _lirc_buffer_full(buf);
+ lirc_buffer_unlock(buf, &flags);
+ return ret;
+#endif
+}
+#ifndef LIRC_HAVE_KFIFO
+static inline int _lirc_buffer_empty(struct lirc_buffer *buf)
+{
+ return !(buf->fill);
+}
+#endif
+static inline int lirc_buffer_empty(struct lirc_buffer *buf)
+{
+#ifdef LIRC_HAVE_KFIFO
+ return !kfifo_len(buf->fifo);
+#else
+ unsigned long flags;
+ int ret;
+ lirc_buffer_lock(buf, &flags);
+ ret = _lirc_buffer_empty(buf);
+ lirc_buffer_unlock(buf, &flags);
+ return ret;
+#endif
+}
+#ifndef LIRC_HAVE_KFIFO
+static inline int _lirc_buffer_available(struct lirc_buffer *buf)
+{
+ return (buf->size - buf->fill);
+}
+#endif
+static inline int lirc_buffer_available(struct lirc_buffer *buf)
+{
+#ifdef LIRC_HAVE_KFIFO
+ return buf->size - (kfifo_len(buf->fifo) / buf->chunk_size);
+#else
+ unsigned long flags;
+ int ret;
+ lirc_buffer_lock(buf, &flags);
+ ret = _lirc_buffer_available(buf);
+ lirc_buffer_unlock(buf, &flags);
+ return ret;
+#endif
+}
+#ifndef LIRC_HAVE_KFIFO
+static inline void _lirc_buffer_read_1(struct lirc_buffer *buf,
+ unsigned char *dest)
+{
+ memcpy(dest, &buf->data[buf->head*buf->chunk_size], buf->chunk_size);
+ buf->head = mod(buf->head+1, buf->size);
+ buf->fill -= 1;
+}
+#endif
+static inline void lirc_buffer_read(struct lirc_buffer *buf,
+ unsigned char *dest)
+{
+#ifdef LIRC_HAVE_KFIFO
+ if (kfifo_len(buf->fifo) >= buf->chunk_size)
+ kfifo_out(buf->fifo, dest, buf->chunk_size);
+#else
+ unsigned long flags;
+ lirc_buffer_lock(buf, &flags);
+ _lirc_buffer_read_1(buf, dest);
+ lirc_buffer_unlock(buf, &flags);
+#endif
+}
+#ifndef LIRC_HAVE_KFIFO
+static inline void _lirc_buffer_write_1(struct lirc_buffer *buf,
+ unsigned char *orig)
+{
+ memcpy(&buf->data[buf->tail*buf->chunk_size], orig, buf->chunk_size);
+ buf->tail = mod(buf->tail+1, buf->size);
+ buf->fill++;
+}
+#endif
+static inline void lirc_buffer_write(struct lirc_buffer *buf,
+ unsigned char *orig)
+{
+#ifdef LIRC_HAVE_KFIFO
+ kfifo_in(buf->fifo, orig, buf->chunk_size);
+#else
+ unsigned long flags;
+ lirc_buffer_lock(buf, &flags);
+ _lirc_buffer_write_1(buf, orig);
+ lirc_buffer_unlock(buf, &flags);
+#endif
+}
+#ifndef LIRC_HAVE_KFIFO
+static inline void _lirc_buffer_write_n(struct lirc_buffer *buf,
+ unsigned char *orig, int count)
+{
+ int space1;
+ if (buf->head > buf->tail)
+ space1 = buf->head - buf->tail;
+ else
+ space1 = buf->size - buf->tail;
+
+ if (count > space1) {
+ memcpy(&buf->data[buf->tail * buf->chunk_size], orig,
+ space1 * buf->chunk_size);
+ memcpy(&buf->data[0], orig + (space1 * buf->chunk_size),
+ (count - space1) * buf->chunk_size);
+ } else {
+ memcpy(&buf->data[buf->tail * buf->chunk_size], orig,
+ count * buf->chunk_size);
+ }
+ buf->tail = mod(buf->tail + count, buf->size);
+ buf->fill += count;
+}
+#endif
+static inline void lirc_buffer_write_n(struct lirc_buffer *buf,
+ unsigned char *orig, int count)
+{
+#ifdef LIRC_HAVE_KFIFO
+ kfifo_in(buf->fifo, orig, count * buf->chunk_size);
+#else
+ unsigned long flags;
+ lirc_buffer_lock(buf, &flags);
+ _lirc_buffer_write_n(buf, orig, count);
+ lirc_buffer_unlock(buf, &flags);
+#endif
+}
+
+struct lirc_driver {
+ char name[40];
+ int minor;
+ unsigned long code_length;
+ unsigned int buffer_size; /* in chunks holding one code each */
+ int sample_rate;
+ unsigned long features;
+ void *data;
+ int (*add_to_buf) (void *data, struct lirc_buffer *buf);
+#ifndef LIRC_REMOVE_DURING_EXPORT
+ wait_queue_head_t* (*get_queue) (void *data);
+#endif
+ struct lirc_buffer *rbuf;
+ int (*set_use_inc) (void *data);
+ void (*set_use_dec) (void *data);
+ struct file_operations *fops;
+ struct device *dev;
+ struct module *owner;
+};
+/* name:
+ * this string will be used for logs
+ *
+ * minor:
+ * indicates minor device (/dev/lirc) number for registered driver
+ * if caller fills it with negative value, then the first free minor
+ * number will be used (if available)
+ *
+ * code_length:
+ * length of the remote control key code expressed in bits
+ *
+ * sample_rate:
+ * sample_rate equal to 0 means that no polling will be performed and
+ * add_to_buf will be triggered by external events (through task queue
+ * returned by get_queue)
+ *
+ * data:
+ * it may point to any driver data and this pointer will be passed to
+ * all callback functions
+ *
+ * add_to_buf:
+ * add_to_buf will be called after specified period of the time or
+ * triggered by the external event, this behavior depends on value of
+ * the sample_rate this function will be called in user context. This
+ * routine should return 0 if data was added to the buffer and
+ * -ENODATA if none was available. This should add some number of bits
+ * evenly divisible by code_length to the buffer
+ *
+ * get_queue:
+ * this callback should return a pointer to the task queue which will
+ * be used for external event waiting
+ *
+ * rbuf:
+ * if not NULL, it will be used as a read buffer, you will have to
+ * write to the buffer by other means, like irq's (see also
+ * lirc_serial.c).
+ *
+ * set_use_inc:
+ * set_use_inc will be called after device is opened
+ *
+ * set_use_dec:
+ * set_use_dec will be called after device is closed
+ *
+ * fops:
+ * file_operations for drivers which don't fit the current driver model.
+ *
+ * Some ioctl's can be directly handled by lirc_dev if the driver's
+ * ioctl function is NULL or if it returns -ENOIOCTLCMD (see also
+ * lirc_serial.c).
+ *
+ * owner:
+ * the module owning this struct
+ *
+ */
+
+
+/* following functions can be called ONLY from user context
+ *
+ * returns negative value on error or minor number
+ * of the registered device if success
+ * contents of the structure pointed by d is copied
+ */
+extern int lirc_register_driver(struct lirc_driver *d);
+
+/* returns negative value on error or 0 if success
+*/
+extern int lirc_unregister_driver(int minor);
+
+/* Returns the private data stored in the lirc_driver
+ * associated with the given device file pointer.
+ */
+void *lirc_get_pdata(struct file *file);
+
+#endif
diff --git a/ubuntu/lirc/lirc_ene0100/Makefile b/ubuntu/lirc/lirc_ene0100/Makefile
new file mode 100644
index 00000000000..b5f2e6fd137
--- /dev/null
+++ b/ubuntu/lirc/lirc_ene0100/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_ENE0100) += lirc_ene0100.o
diff --git a/ubuntu/lirc/lirc_ene0100/lirc_ene0100.c b/ubuntu/lirc/lirc_ene0100/lirc_ene0100.c
new file mode 100644
index 00000000000..da9519fcadd
--- /dev/null
+++ b/ubuntu/lirc/lirc_ene0100/lirc_ene0100.c
@@ -0,0 +1,653 @@
+/*
+ * driver for ENE KB3926 B/C/D CIR (also known as ENE0100)
+ *
+ * Copyright (C) 2009 Maxim Levitsky <maximlevitsky@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/pnp.h>
+#include <linux/io.h>
+#include <linux/interrupt.h>
+#include "lirc_ene0100.h"
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16)
+#error "Sorry, this driver needs kernel version 2.6.16 or higher"
+#else
+
+static int sample_period = 75;
+static int enable_idle = 1;
+static int enable_learning;
+
+static void ene_set_idle(struct ene_device *dev, int idle);
+static void ene_set_inputs(struct ene_device *dev, int enable);
+
+/* read a hardware register */
+static u8 ene_hw_read_reg(struct ene_device *dev, u16 reg)
+{
+ outb(reg >> 8, dev->hw_io + ENE_ADDR_HI);
+ outb(reg & 0xFF, dev->hw_io + ENE_ADDR_LO);
+ return inb(dev->hw_io + ENE_IO);
+}
+
+/* write a hardware register */
+static void ene_hw_write_reg(struct ene_device *dev, u16 reg, u8 value)
+{
+ outb(reg >> 8, dev->hw_io + ENE_ADDR_HI);
+ outb(reg & 0xFF, dev->hw_io + ENE_ADDR_LO);
+ outb(value, dev->hw_io + ENE_IO);
+}
+
+/* change specific bits in hardware register */
+static void ene_hw_write_reg_mask(struct ene_device *dev,
+ u16 reg, u8 value, u8 mask)
+{
+ u8 regvalue;
+
+ outb(reg >> 8, dev->hw_io + ENE_ADDR_HI);
+ outb(reg & 0xFF, dev->hw_io + ENE_ADDR_LO);
+
+ regvalue = inb(dev->hw_io + ENE_IO) & ~mask;
+ regvalue |= (value & mask);
+ outb(regvalue, dev->hw_io + ENE_IO);
+}
+
+/* read irq status and ack it */
+static int ene_hw_irq_status(struct ene_device *dev, int *buffer_pointer)
+{
+ u8 irq_status;
+ u8 fw_flags1, fw_flags2;
+
+ fw_flags2 = ene_hw_read_reg(dev, ENE_FW2);
+
+ if (buffer_pointer)
+ *buffer_pointer = 4 * (fw_flags2 & ENE_FW2_BUF_HIGH);
+
+ if (dev->hw_revision < ENE_HW_C) {
+ irq_status = ene_hw_read_reg(dev, ENEB_IRQ_STATUS);
+
+ if (!irq_status & ENEB_IRQ_STATUS_IR)
+ return 0;
+ ene_hw_write_reg(dev, ENEB_IRQ_STATUS,
+ irq_status & ~ENEB_IRQ_STATUS_IR);
+
+ /* rev B support only recieving */
+ return ENE_IRQ_RX;
+ }
+
+ irq_status = ene_hw_read_reg(dev, ENEC_IRQ);
+
+ if (!irq_status && ENEC_IRQ_STATUS)
+ return 0;
+
+ /* original driver does that twice - a workaround ? */
+ ene_hw_write_reg(dev, ENEC_IRQ, irq_status & ~ENEC_IRQ_STATUS);
+ ene_hw_write_reg(dev, ENEC_IRQ, irq_status & ~ENEC_IRQ_STATUS);
+
+ /* clear unknown flag in F8F9 */
+ if (fw_flags2 & ENE_FW2_IRQ_CLR)
+ ene_hw_write_reg(dev, ENE_FW2, fw_flags2 & ~ENE_FW2_IRQ_CLR);
+
+ /* check if this is a TX interrupt */
+ fw_flags1 = ene_hw_read_reg(dev, ENE_FW1);
+
+ if (fw_flags1 & ENE_FW1_TXIRQ) {
+ ene_hw_write_reg(dev, ENE_FW1, fw_flags1 & ~ENE_FW1_TXIRQ);
+ return ENE_IRQ_TX;
+ } else
+ return ENE_IRQ_RX;
+}
+
+static int ene_hw_detect(struct ene_device *dev)
+{
+ u8 chip_major, chip_minor;
+ u8 hw_revision, old_ver;
+ u8 tmp;
+ u8 fw_capabilities;
+
+ tmp = ene_hw_read_reg(dev, ENE_HW_UNK);
+ ene_hw_write_reg(dev, ENE_HW_UNK, tmp & ~ENE_HW_UNK_CLR);
+
+ chip_major = ene_hw_read_reg(dev, ENE_HW_VER_MAJOR);
+ chip_minor = ene_hw_read_reg(dev, ENE_HW_VER_MINOR);
+
+ ene_hw_write_reg(dev, ENE_HW_UNK, tmp);
+ hw_revision = ene_hw_read_reg(dev, ENE_HW_VERSION);
+ old_ver = ene_hw_read_reg(dev, ENE_HW_VER_OLD);
+
+ if (hw_revision == 0xFF) {
+
+ ene_printk(KERN_WARNING, "device seems to be disabled\n");
+ ene_printk(KERN_WARNING,
+ "send a mail to lirc-list@lists.sourceforge.net\n");
+ ene_printk(KERN_WARNING, "please attach output of acpidump\n");
+
+ return -ENODEV;
+ }
+
+ if (chip_major == 0x33) {
+ ene_printk(KERN_WARNING, "chips 0x33xx aren't supported yet\n");
+ return -ENODEV;
+ }
+
+ if (chip_major == 0x39 && chip_minor == 0x26 && hw_revision == 0xC0) {
+ dev->hw_revision = ENE_HW_C;
+ ene_printk(KERN_WARNING,
+ "KB3926C detected, driver support is not complete!\n");
+
+ } else if (old_ver == 0x24 && hw_revision == 0xC0) {
+ dev->hw_revision = ENE_HW_B;
+ ene_printk(KERN_NOTICE, "KB3926B detected\n");
+ } else {
+ dev->hw_revision = ENE_HW_D;
+ ene_printk(KERN_WARNING,
+ "unknown ENE chip detected, assuming KB3926D\n");
+ ene_printk(KERN_WARNING, "driver support incomplete");
+
+ }
+
+ ene_printk(KERN_DEBUG, "chip is 0x%02x%02x - 0x%02x, 0x%02x\n",
+ chip_major, chip_minor, old_ver, hw_revision);
+
+
+ /* detect features hardware supports */
+
+ if (dev->hw_revision < ENE_HW_C)
+ return 0;
+
+ fw_capabilities = ene_hw_read_reg(dev, ENE_FW2);
+
+ dev->hw_gpio40_learning = fw_capabilities & ENE_FW2_GP40_AS_LEARN;
+ dev->hw_learning_and_tx_capable = fw_capabilities & ENE_FW2_LEARNING;
+
+ dev->hw_fan_as_normal_input = dev->hw_learning_and_tx_capable &&
+ fw_capabilities & ENE_FW2_FAN_AS_NRML_IN;
+
+ ene_printk(KERN_NOTICE, "hardware features:\n");
+ ene_printk(KERN_NOTICE,
+ "learning and tx %s, gpio40_learn %s, fan_in %s\n",
+ dev->hw_learning_and_tx_capable ? "on" : "off",
+ dev->hw_gpio40_learning ? "on" : "off",
+ dev->hw_fan_as_normal_input ? "on" : "off");
+
+ if (!dev->hw_learning_and_tx_capable && enable_learning)
+ enable_learning = 0;
+
+ if (dev->hw_learning_and_tx_capable) {
+ ene_printk(KERN_WARNING,
+ "Device supports transmitting, but the driver doesn't\n");
+ ene_printk(KERN_WARNING,
+ "due to lack of hardware to test against.\n");
+ ene_printk(KERN_WARNING,
+ "Send a mail to: lirc-list@lists.sourceforge.net\n");
+ }
+ return 0;
+}
+
+/* hardware initialization */
+static int ene_hw_init(void *data)
+{
+ u8 reg_value;
+ struct ene_device *dev = (struct ene_device *)data;
+ dev->in_use = 1;
+
+ if (dev->hw_revision < ENE_HW_C) {
+ ene_hw_write_reg(dev, ENEB_IRQ, dev->irq << 1);
+ ene_hw_write_reg(dev, ENEB_IRQ_UNK1, 0x01);
+ } else {
+ reg_value = ene_hw_read_reg(dev, ENEC_IRQ) & 0xF0;
+ reg_value |= ENEC_IRQ_UNK_EN;
+ reg_value &= ~ENEC_IRQ_STATUS;
+ reg_value |= (dev->irq & ENEC_IRQ_MASK);
+ ene_hw_write_reg(dev, ENEC_IRQ, reg_value);
+ ene_hw_write_reg(dev, ENE_TX_UNK1, 0x63);
+ }
+
+ ene_hw_write_reg(dev, ENE_CIR_CONF2, 0x00);
+ ene_set_inputs(dev, enable_learning);
+
+ /* set sampling period */
+ ene_hw_write_reg(dev, ENE_CIR_SAMPLE_PERIOD, sample_period);
+
+ /* ack any pending irqs - just in case */
+ ene_hw_irq_status(dev, NULL);
+
+ /* enter idle mode */
+ ene_set_idle(dev, 1);
+
+ /* enable firmware bits */
+ ene_hw_write_reg_mask(dev, ENE_FW1,
+ ENE_FW1_ENABLE | ENE_FW1_IRQ,
+ ENE_FW1_ENABLE | ENE_FW1_IRQ);
+ /* clear stats */
+ dev->sample = 0;
+ return 0;
+}
+
+/* this enables gpio40 signal, used if connected to wide band input*/
+static void ene_enable_gpio40(struct ene_device *dev, int enable)
+{
+ ene_hw_write_reg_mask(dev, ENE_CIR_CONF1, enable ?
+ 0 : ENE_CIR_CONF2_GPIO40DIS,
+ ENE_CIR_CONF2_GPIO40DIS);
+}
+
+/* this enables the classic sampler */
+static void ene_enable_normal_recieve(struct ene_device *dev, int enable)
+{
+ ene_hw_write_reg(dev, ENE_CIR_CONF1, enable ? ENE_CIR_CONF1_ADC_ON : 0);
+}
+
+/* this enables recieve via fan input */
+static void ene_enable_fan_recieve(struct ene_device *dev, int enable)
+{
+ if (!enable)
+ ene_hw_write_reg(dev, ENE_FAN_AS_IN1, 0);
+ else {
+ ene_hw_write_reg(dev, ENE_FAN_AS_IN1, ENE_FAN_AS_IN1_EN);
+ ene_hw_write_reg(dev, ENE_FAN_AS_IN2, ENE_FAN_AS_IN2_EN);
+ }
+ dev->fan_input_inuse = enable;
+}
+
+/* determine which input to use*/
+static void ene_set_inputs(struct ene_device *dev, int learning_enable)
+{
+ ene_enable_normal_recieve(dev, 1);
+
+ /* old hardware doesn't support learning mode for sure */
+ if (dev->hw_revision <= ENE_HW_B)
+ return;
+
+ /* reciever not learning capable, still set gpio40 correctly */
+ if (!dev->hw_learning_and_tx_capable) {
+ ene_enable_gpio40(dev, !dev->hw_gpio40_learning);
+ return;
+ }
+
+ /* enable learning mode */
+ if (learning_enable) {
+ ene_enable_gpio40(dev, dev->hw_gpio40_learning);
+
+ /* fan input is not used for learning */
+ if (dev->hw_fan_as_normal_input)
+ ene_enable_fan_recieve(dev, 0);
+
+ /* disable learning mode */
+ } else {
+ if (dev->hw_fan_as_normal_input) {
+ ene_enable_fan_recieve(dev, 1);
+ ene_enable_normal_recieve(dev, 0);
+ } else
+ ene_enable_gpio40(dev, !dev->hw_gpio40_learning);
+ }
+
+ /* set few additional settings for this mode */
+ ene_hw_write_reg_mask(dev, ENE_CIR_CONF1, learning_enable ?
+ ENE_CIR_CONF1_LEARN1 : 0, ENE_CIR_CONF1_LEARN1);
+
+ ene_hw_write_reg_mask(dev, ENE_CIR_CONF2, learning_enable ?
+ ENE_CIR_CONF2_LEARN2 : 0, ENE_CIR_CONF2_LEARN2);
+}
+
+/* deinitialization */
+static void ene_hw_deinit(void *data)
+{
+ struct ene_device *dev = (struct ene_device *)data;
+
+ /* disable samplers */
+ ene_enable_normal_recieve(dev, 0);
+
+ if (dev->hw_fan_as_normal_input)
+ ene_enable_fan_recieve(dev, 0);
+
+ /* disable hardware IRQ and firmware flag */
+ ene_hw_write_reg_mask(dev, ENE_FW1, 0, ENE_FW1_ENABLE | ENE_FW1_IRQ);
+
+ ene_set_idle(dev, 1);
+ dev->in_use = 0;
+}
+
+/* sends current sample to userspace */
+static void send_sample(struct ene_device *dev)
+{
+ int value = abs(dev->sample) & PULSE_MASK;
+
+ if (dev->sample > 0)
+ value |= PULSE_BIT;
+
+ if (!lirc_buffer_full(dev->lirc_driver->rbuf)) {
+ lirc_buffer_write(dev->lirc_driver->rbuf, (void *)&value);
+ wake_up(&dev->lirc_driver->rbuf->wait_poll);
+ }
+ dev->sample = 0;
+}
+
+/* this updates current sample */
+static void update_sample(struct ene_device *dev, int sample)
+{
+ if (!dev->sample)
+ dev->sample = sample;
+ else if (same_sign(dev->sample, sample))
+ dev->sample += sample;
+ else {
+ send_sample(dev);
+ dev->sample = sample;
+ }
+}
+
+/* enable or disable idle mode */
+static void ene_set_idle(struct ene_device *dev, int idle)
+{
+ struct timeval now;
+ int disable = idle && enable_idle && (dev->hw_revision < ENE_HW_C);
+
+ ene_hw_write_reg_mask(dev, ENE_CIR_SAMPLE_PERIOD,
+ disable ? 0 : ENE_CIR_SAMPLE_OVERFLOW,
+ ENE_CIR_SAMPLE_OVERFLOW);
+ dev->idle = idle;
+
+ /* remember when we have entered the idle mode */
+ if (idle) {
+ do_gettimeofday(&dev->gap_start);
+ return;
+ }
+
+ /* send the gap between keypresses now */
+ do_gettimeofday(&now);
+
+ if (now.tv_sec - dev->gap_start.tv_sec > 16)
+ dev->sample = space(PULSE_MASK);
+ else
+ dev->sample = dev->sample +
+ space(1000000ull * (now.tv_sec - dev->gap_start.tv_sec))
+ + space(now.tv_usec - dev->gap_start.tv_usec);
+
+ if (abs(dev->sample) > PULSE_MASK)
+ dev->sample = space(PULSE_MASK);
+ send_sample(dev);
+}
+
+/* interrupt handler */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)
+static irqreturn_t ene_hw_irq(int irq, void *data)
+#else
+static irqreturn_t ene_hw_irq(int irq, void *data, struct pt_regs *regs)
+#endif
+{
+ u16 hw_value;
+ int i, hw_sample;
+ int space;
+ int buffer_pointer;
+ int irq_status;
+
+ struct ene_device *dev = (struct ene_device *)data;
+ irq_status = ene_hw_irq_status(dev, &buffer_pointer);
+
+ if (!irq_status)
+ return IRQ_NONE;
+
+ /* TODO: only RX for now */
+ if (irq_status == ENE_IRQ_TX)
+ return IRQ_HANDLED;
+
+ for (i = 0; i < ENE_SAMPLES_SIZE; i++) {
+
+ hw_value = ene_hw_read_reg(dev,
+ ENE_SAMPLE_BUFFER + buffer_pointer + i);
+
+ if (dev->fan_input_inuse) {
+ /* read high part of the sample */
+ hw_value |= ene_hw_read_reg(dev,
+ ENE_SAMPLE_BUFFER_FAN + buffer_pointer + i) << 8;
+
+ /* test for _space_ bit */
+ space = !(hw_value & ENE_FAN_SMPL_PULS_MSK);
+
+ /* clear space bit, and other unused bits */
+ hw_value &= ENE_FAN_VALUE_MASK;
+ hw_sample = hw_value * ENE_SAMPLE_PERIOD_FAN;
+
+ } else {
+ space = hw_value & ENE_SAMPLE_SPC_MASK;
+ hw_value &= ENE_SAMPLE_VALUE_MASK;
+ hw_sample = hw_value * sample_period;
+ }
+
+ /* no more data */
+ if (!(hw_value))
+ break;
+
+ if (space)
+ hw_sample *= -1;
+
+ /* overflow sample recieved, handle it */
+
+ if (!dev->fan_input_inuse && hw_value == ENE_SAMPLE_OVERFLOW) {
+
+ if (dev->idle)
+ continue;
+
+ if (dev->sample > 0 || abs(dev->sample) <= ENE_MAXGAP)
+ update_sample(dev, hw_sample);
+ else
+ ene_set_idle(dev, 1);
+
+ continue;
+ }
+
+ /* normal first sample recieved */
+ if (!dev->fan_input_inuse && dev->idle) {
+ ene_set_idle(dev, 0);
+
+ /* discard first recieved value, its random
+ since its the time signal was off before
+ first pulse if idle mode is enabled, HW
+ does that for us */
+
+ if (!enable_idle)
+ continue;
+ }
+ update_sample(dev, hw_sample);
+ send_sample(dev);
+ }
+ return IRQ_HANDLED;
+}
+
+static int ene_probe(struct pnp_dev *pnp_dev,
+ const struct pnp_device_id *dev_id)
+{
+ struct ene_device *dev;
+ struct lirc_driver *lirc_driver;
+ int error = -ENOMEM;
+
+ dev = kzalloc(sizeof(struct ene_device), GFP_KERNEL);
+
+ if (!dev)
+ goto err1;
+
+ dev->pnp_dev = pnp_dev;
+ pnp_set_drvdata(pnp_dev, dev);
+
+
+ /* prepare lirc interface */
+ error = -ENOMEM;
+ lirc_driver = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL);
+
+ if (!lirc_driver)
+ goto err2;
+
+ dev->lirc_driver = lirc_driver;
+
+ strcpy(lirc_driver->name, ENE_DRIVER_NAME);
+ lirc_driver->minor = -1;
+ lirc_driver->code_length = sizeof(int) * 8;
+ lirc_driver->features = LIRC_CAN_REC_MODE2;
+ lirc_driver->data = dev;
+ lirc_driver->set_use_inc = ene_hw_init;
+ lirc_driver->set_use_dec = ene_hw_deinit;
+ lirc_driver->dev = &pnp_dev->dev;
+ lirc_driver->owner = THIS_MODULE;
+
+ lirc_driver->rbuf = kzalloc(sizeof(struct lirc_buffer), GFP_KERNEL);
+
+ if (!lirc_driver->rbuf)
+ goto err3;
+
+ if (lirc_buffer_init(lirc_driver->rbuf, sizeof(int), sizeof(int) * 256))
+ goto err4;
+
+ error = -ENODEV;
+ if (lirc_register_driver(lirc_driver))
+ goto err5;
+
+ /* validate resources */
+ if (!pnp_port_valid(pnp_dev, 0) || pnp_port_len(pnp_dev, 0) < ENE_MAX_IO)
+ goto err6;
+
+ if (!pnp_irq_valid(pnp_dev, 0))
+ goto err6;
+
+ dev->hw_io = pnp_port_start(pnp_dev, 0);
+ dev->irq = pnp_irq(pnp_dev, 0);
+
+ /* claim the resources */
+ error = -EBUSY;
+ if (!request_region(dev->hw_io, ENE_MAX_IO, ENE_DRIVER_NAME))
+ goto err6;
+
+ if (request_irq(dev->irq, ene_hw_irq,
+ IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev))
+ goto err7;
+
+ /* detect hardware version and features */
+ error = ene_hw_detect(dev);
+ if (error)
+ goto err8;
+
+ ene_printk(KERN_NOTICE, "driver has been succesfully loaded\n");
+ return 0;
+
+err8:
+ free_irq(dev->irq, dev);
+err7:
+ release_region(dev->hw_io, ENE_MAX_IO);
+err6:
+ lirc_unregister_driver(lirc_driver->minor);
+err5:
+ lirc_buffer_free(lirc_driver->rbuf);
+err4:
+ kfree(lirc_driver->rbuf);
+err3:
+ kfree(lirc_driver);
+err2:
+ kfree(dev);
+err1:
+ return error;
+}
+
+static void ene_remove(struct pnp_dev *pnp_dev)
+{
+ struct ene_device *dev = pnp_get_drvdata(pnp_dev);
+ ene_hw_deinit(dev);
+ free_irq(dev->irq, dev);
+ release_region(dev->hw_io, ENE_MAX_IO);
+ lirc_unregister_driver(dev->lirc_driver->minor);
+ lirc_buffer_free(dev->lirc_driver->rbuf);
+ kfree(dev->lirc_driver);
+ kfree(dev);
+}
+
+#ifdef CONFIG_PM
+
+/* TODO: make 'wake on IR' configurable and add .shutdown */
+/* currently impossible due to lack of kernel support */
+
+static int ene_suspend(struct pnp_dev *pnp_dev, pm_message_t state)
+{
+ struct ene_device *dev = pnp_get_drvdata(pnp_dev);
+ ene_hw_write_reg_mask(dev, ENE_FW1, ENE_FW1_WAKE, ENE_FW1_WAKE);
+ return 0;
+}
+
+static int ene_resume(struct pnp_dev *pnp_dev)
+{
+ struct ene_device *dev = pnp_get_drvdata(pnp_dev);
+ if (dev->in_use)
+ ene_hw_init(dev);
+
+ ene_hw_write_reg_mask(dev, ENE_FW1, 0, ENE_FW1_WAKE);
+ return 0;
+}
+
+#endif
+
+static const struct pnp_device_id ene_ids[] = {
+ {.id = "ENE0100",},
+ {},
+};
+
+static struct pnp_driver ene_driver = {
+ .name = ENE_DRIVER_NAME,
+ .id_table = ene_ids,
+ .flags = PNP_DRIVER_RES_DO_NOT_CHANGE,
+
+ .probe = ene_probe,
+ .remove = __devexit_p(ene_remove),
+
+#ifdef CONFIG_PM
+ .suspend = ene_suspend,
+ .resume = ene_resume,
+#endif
+};
+
+static int __init ene_init(void)
+{
+ if (sample_period < 5) {
+ ene_printk(KERN_ERR, "sample period must be at\n");
+ ene_printk(KERN_ERR, "least 5 us, (at least 30 recommended)\n");
+ return -EINVAL;
+ }
+ return pnp_register_driver(&ene_driver);
+}
+
+static void ene_exit(void)
+{
+ pnp_unregister_driver(&ene_driver);
+}
+
+module_param(sample_period, int, S_IRUGO);
+MODULE_PARM_DESC(sample_period, "Hardware sample period (75 us default)");
+
+module_param(enable_idle, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(enable_idle,
+ "Enables turning off signal sampling after long inactivity time; "
+ "if disabled might help detecting input signal (default: enabled)");
+
+module_param(enable_learning, bool, S_IRUGO);
+MODULE_PARM_DESC(enable_learning, "Use wide band (learning) reciever");
+
+MODULE_DEVICE_TABLE(pnp, ene_ids);
+MODULE_DESCRIPTION
+ ("LIRC driver for KB3926B/KB3926C/KB3926D (aka ENE0100) CIR port");
+MODULE_AUTHOR("Maxim Levitsky");
+MODULE_LICENSE("GPL");
+
+module_init(ene_init);
+module_exit(ene_exit);
+#endif
diff --git a/ubuntu/lirc/lirc_ene0100/lirc_ene0100.h b/ubuntu/lirc/lirc_ene0100/lirc_ene0100.h
new file mode 100644
index 00000000000..ae197531357
--- /dev/null
+++ b/ubuntu/lirc/lirc_ene0100/lirc_ene0100.h
@@ -0,0 +1,170 @@
+/*
+ * driver for ENE KB3926 B/C/D CIR (also known as ENE0100)
+ *
+ * Copyright (C) 2009 Maxim Levitsky <maximlevitsky@gmail.com>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+#include "../kcompat.h"
+#include "../lirc.h"
+#include "../lirc_dev/lirc_dev.h"
+
+/* hardware address */
+#define ENE_STATUS 0 /* hardware status - unused */
+#define ENE_ADDR_HI 1 /* hi byte of register address */
+#define ENE_ADDR_LO 2 /* low byte of register address */
+#define ENE_IO 3 /* read/write window */
+#define ENE_MAX_IO 4
+
+/* 8 bytes of samples, divided in 2 halfs*/
+#define ENE_SAMPLE_BUFFER 0xF8F0 /* regular sample buffer */
+#define ENE_SAMPLE_SPC_MASK (1 << 7) /* sample is space */
+#define ENE_SAMPLE_VALUE_MASK 0x7F
+#define ENE_SAMPLE_OVERFLOW 0x7F
+#define ENE_SAMPLES_SIZE 4
+
+/* fan input sample buffer */
+#define ENE_SAMPLE_BUFFER_FAN 0xF8FB /* this buffer holds high byte of */
+ /* each sample of normal buffer */
+
+#define ENE_FAN_SMPL_PULS_MSK 0x8000 /* this bit of combined sample */
+ /* if set, says that sample is pulse */
+#define ENE_FAN_VALUE_MASK 0x0FFF /* mask for valid bits of the value */
+
+/* first firmware register */
+#define ENE_FW1 0xF8F8
+#define ENE_FW1_ENABLE (1 << 0) /* enable fw processing */
+#define ENE_FW1_TXIRQ (1 << 1) /* TX interrupt pending */
+#define ENE_FW1_WAKE (1 << 6) /* enable wake from S3 */
+#define ENE_FW1_IRQ (1 << 7) /* enable interrupt */
+
+/* second firmware register */
+#define ENE_FW2 0xF8F9
+#define ENE_FW2_BUF_HIGH (1 << 0) /* which half of the buffer to read */
+#define ENE_FW2_IRQ_CLR (1 << 2) /* clear this on IRQ */
+#define ENE_FW2_GP40_AS_LEARN (1 << 4) /* normal input is used as */
+ /* learning input */
+#define ENE_FW2_FAN_AS_NRML_IN (1 << 6) /* fan is used as normal input */
+#define ENE_FW2_LEARNING (1 << 7) /* hardware supports learning and TX */
+
+/* fan as input settings - only if learning capable */
+#define ENE_FAN_AS_IN1 0xFE30 /* fan init reg 1 */
+#define ENE_FAN_AS_IN1_EN 0xCD
+#define ENE_FAN_AS_IN2 0xFE31 /* fan init reg 2 */
+#define ENE_FAN_AS_IN2_EN 0x03
+#define ENE_SAMPLE_PERIOD_FAN 61 /* fan input has fixed sample period */
+
+/* IRQ registers block (for revision B) */
+#define ENEB_IRQ 0xFD09 /* IRQ number */
+#define ENEB_IRQ_UNK1 0xFD17 /* unknown setting = 1 */
+#define ENEB_IRQ_STATUS 0xFD80 /* irq status */
+#define ENEB_IRQ_STATUS_IR (1 << 5) /* IR irq */
+
+/* IRQ registers block (for revision C,D) */
+#define ENEC_IRQ 0xFE9B /* new irq settings register */
+#define ENEC_IRQ_MASK 0x0F /* irq number mask */
+#define ENEC_IRQ_UNK_EN (1 << 4) /* always enabled */
+#define ENEC_IRQ_STATUS (1 << 5) /* irq status and ACK */
+
+/* CIR block settings */
+#define ENE_CIR_CONF1 0xFEC0
+#define ENE_CIR_CONF1_ADC_ON 0x7 /* reciever on gpio40 enabled */
+#define ENE_CIR_CONF1_LEARN1 (1 << 3) /* enabled on learning mode */
+#define ENE_CIR_CONF1_TX_ON 0x30 /* enabled on transmit */
+#define ENE_CIR_CONF1_TX_CARR (1 << 7) /* send TX carrier or not */
+
+#define ENE_CIR_CONF2 0xFEC1 /* unknown setting = 0 */
+#define ENE_CIR_CONF2_LEARN2 (1 << 4) /* set on enable learning */
+#define ENE_CIR_CONF2_GPIO40DIS (1 << 5) /* disable normal input via gpio40 */
+
+#define ENE_CIR_SAMPLE_PERIOD 0xFEC8 /* sample period in us */
+#define ENE_CIR_SAMPLE_OVERFLOW (1 << 7) /* interrupt on overflows if set */
+
+
+/* transmitter - not implemented yet */
+/* KB3926C and higher */
+/* transmission is very similiar to recieving, a byte is written to */
+/* ENE_TX_INPUT, in same manner as it is read from sample buffer */
+/* sample period is fixed*/
+
+
+/* transmitter ports */
+#define ENE_TX_PORT1 0xFC01 /* this enables one or both */
+#define ENE_TX_PORT1_EN (1 << 5) /* TX ports */
+#define ENE_TX_PORT2 0xFC08
+#define ENE_TX_PORT2_EN (1 << 1)
+
+#define ENE_TX_INPUT 0xFEC9 /* next byte to transmit */
+#define ENE_TX_SPC_MASK (1 << 7) /* Transmitted sample is space */
+#define ENE_TX_UNK1 0xFECB /* set to 0x63 */
+#define ENE_TX_SMPL_PERIOD 50 /* transmit sample period */
+
+
+#define ENE_TX_CARRIER 0xFECE /* TX carrier * 2 (khz) */
+#define ENE_TX_CARRIER_UNKBIT 0x80 /* This bit set on transmit */
+#define ENE_TX_CARRIER_LOW 0xFECF /* TX carrier / 2 */
+
+/* Hardware versions */
+#define ENE_HW_VERSION 0xFF00 /* hardware revision */
+#define ENE_HW_UNK 0xFF1D
+#define ENE_HW_UNK_CLR (1 << 2)
+#define ENE_HW_VER_MAJOR 0xFF1E /* chip version */
+#define ENE_HW_VER_MINOR 0xFF1F
+#define ENE_HW_VER_OLD 0xFD00
+
+#define same_sign(a, b) ((((a) > 0) && (b) > 0) || ((a) < 0 && (b) < 0))
+
+#define ENE_DRIVER_NAME "enecir"
+#define ENE_MAXGAP 250000 /* this is amount of time we wait
+ before turning the sampler, chosen
+ arbitry */
+
+#define space(len) (-(len)) /* add a space */
+
+/* software defines */
+#define ENE_IRQ_RX 1
+#define ENE_IRQ_TX 2
+
+#define ENE_HW_B 1 /* 3926B */
+#define ENE_HW_C 2 /* 3926C */
+#define ENE_HW_D 3 /* 3926D */
+
+#define ene_printk(level, text, ...) \
+ printk(level ENE_DRIVER_NAME ": " text, ## __VA_ARGS__)
+
+struct ene_device {
+ struct pnp_dev *pnp_dev;
+ struct lirc_driver *lirc_driver;
+
+ /* hw settings */
+ unsigned long hw_io;
+ int irq;
+
+ int hw_revision; /* hardware revision */
+ int hw_learning_and_tx_capable; /* learning capable */
+ int hw_gpio40_learning; /* gpio40 is learning */
+ int hw_fan_as_normal_input; /* fan input is used as regular input */
+
+ /* device data */
+ int idle;
+ int fan_input_inuse;
+
+ int sample;
+ int in_use;
+
+ struct timeval gap_start;
+};
diff --git a/ubuntu/lirc/lirc_gpio/Makefile b/ubuntu/lirc/lirc_gpio/Makefile
new file mode 100644
index 00000000000..1f2794509f8
--- /dev/null
+++ b/ubuntu/lirc/lirc_gpio/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_GPIO) += lirc_gpio.o
diff --git a/ubuntu/lirc/lirc_gpio/lirc_gpio.c b/ubuntu/lirc/lirc_gpio/lirc_gpio.c
new file mode 100644
index 00000000000..f98a0ca415c
--- /dev/null
+++ b/ubuntu/lirc/lirc_gpio/lirc_gpio.c
@@ -0,0 +1,613 @@
+/*
+ * Remote control driver for the TV-card
+ * key codes are obtained from GPIO port
+ *
+ * (L) by Artur Lipowski <alipowski@interia.pl>
+ * patch for the AverMedia by Santiago Garcia Mantinan <manty@i.am>
+ * and Christoph Bartelmus <lirc@bartelmus.de>
+ * patch for the BestBuy by Miguel Angel Alvarez <maacruz@navegalia.com>
+ * patch for the Winfast TV2000 by Juan Toledo
+ * <toledo@users.sourceforge.net>
+ * patch for the I-O Data GV-BCTV5/PCI by Jens C. Rasmussen
+ * <jens.rasmussen@ieee.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * $Id: lirc_gpio.c,v 1.57 2009/02/14 19:35:52 lirc Exp $
+ *
+ */
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 2, 4)
+#error "*******************************************************"
+#error "Sorry, this driver needs kernel version 2.2.4 or higher"
+#error "*******************************************************"
+#endif
+
+#include <linux/version.h>
+#include <linux/module.h>
+#include <linux/kmod.h>
+#include <linux/sched.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
+#include <linux/wrapper.h>
+#endif
+#include <linux/errno.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)
+#include "../drivers/char/bttv.h"
+#include "../drivers/char/bttvp.h"
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 17)
+#include "../drivers/media/video/bttv.h"
+#include "../drivers/media/video/bttvp.h"
+#else
+#include "../drivers/media/video/bt8xx/bttv.h"
+#include "../drivers/media/video/bt8xx/bttvp.h"
+#endif
+
+#if BTTV_VERSION_CODE < KERNEL_VERSION(0, 7, 45)
+#error "*******************************************************"
+#error " Sorry, this driver needs bttv version 0.7.45 or "
+#error " higher. If you are using the bttv package, copy it to "
+#error " the kernel "
+#error "*******************************************************"
+#endif
+
+#include "../kcompat.h"
+#include "../lirc_dev/lirc_dev.h"
+
+/* insmod parameters */
+static int debug;
+static int card;
+static int minor = -1;
+static int bttv_id = BTTV_BOARD_UNKNOWN;
+static unsigned long gpio_mask;
+static unsigned long gpio_enable;
+static unsigned long gpio_lock_mask;
+static unsigned long gpio_xor_mask;
+static int soft_gap;
+static int sample_rate = 10;
+
+#define dprintk(fmt, args...) \
+ do { \
+ if (debug) \
+ printk(KERN_DEBUG fmt, ## args); \
+ } while (0)
+
+struct rcv_info {
+ int bttv_id;
+ int card_id;
+ unsigned long gpio_mask;
+ unsigned long gpio_enable;
+ unsigned long gpio_lock_mask;
+ unsigned long gpio_xor_mask;
+ int soft_gap;
+ int sample_rate;
+ unsigned char code_length;
+};
+
+static struct rcv_info rcv_infos[] = {
+ {BTTV_BOARD_UNKNOWN,
+ 0, 0, 0, 0, 0, 0, 1, 0},
+ {BTTV_BOARD_PXELVWPLTVPAK,
+ 0, 0x00003e00, 0, 0x0010000, 0, 0, 15, 32},
+ {BTTV_BOARD_PXELVWPLTVPRO,
+ 0, 0x00001f00, 0, 0x0008000, 0, 500, 12, 32},
+ {BTTV_BOARD_PV_BT878P_9B,
+ 0, 0x00001f00, 0, 0x0008000, 0, 500, 12, 32},
+ {BTTV_BOARD_PV_BT878P_PLUS,
+ 0, 0x00001f00, 0, 0x0008000, 0, 500, 12, 32},
+#ifdef BTTV_BOARD_PV_M4900
+ {BTTV_BOARD_PV_M4900,
+ 0, 0x00001f00, 0, 0x0008000, 0, 500, 12, 32},
+#endif
+ {BTTV_BOARD_AVERMEDIA,
+ 0, 0x00f88000, 0, 0x0010000, 0x00010000, 0, 10, 32},
+
+ /* mapped to Capture98 */
+ {BTTV_BOARD_AVPHONE98,
+ 0x00011461, 0x003b8000, 0x00004000,
+ 0x0800000, 0x00800000, 0, 10, 0},
+ {BTTV_BOARD_AVERMEDIA98,
+ 0x00021461, 0x003b8000, 0x00004000,
+ 0x0800000, 0x00800000, 0, 10, 0},
+
+ /* mapped to Phone98 */
+ {BTTV_BOARD_AVPHONE98,
+ 0x00031461, 0x00f88000, 0, 0x0010000, 0x00010000, 0, 10, 32},
+ /* is this one correct? */
+ {BTTV_BOARD_AVERMEDIA98,
+ 0x00041461, 0x00f88000, 0, 0x0010000, 0x00010000, 0, 10, 32},
+ /* work-around for VDOMATE */
+ {BTTV_BOARD_AVERMEDIA98,
+ 0x03001461, 0x00f88000, 0, 0x0010000, 0x00010000, 0, 10, 32},
+ /* reported by Danijel Korzinek, AVerTV GOw/FM */
+ {BTTV_BOARD_AVERMEDIA98,
+ 0x00000000, 0x00f88000, 0, 0x0010000, 0x00010000, 0, 10, 32},
+
+ {BTTV_BOARD_CHRONOS_VS2,
+ 0, 0x000000f8, 0, 0x0000100, 0, 0, 20, 0},
+ /* CPH031 and CPH033 cards (?) */
+ /* MIRO was just a work-around */
+ {BTTV_BOARD_MIRO,
+ 0, 0x00001f00, 0, 0x0004000, 0, 0, 10, 32},
+ {BTTV_BOARD_DYNALINK,
+ 0, 0x00001f00, 0, 0x0004000, 0, 0, 10, 32},
+#ifdef BTTV_BOARD_ASKEY_CPH03X
+ {BTTV_BOARD_ASKEY_CPH03X,
+ 0, 0x00001f00, 0, 0x0004000, 0, 0, 10, 32},
+#endif
+ {BTTV_BOARD_WINVIEW_601,
+ 0, 0x00001f00, 0, 0x0004000, 0, 0, 0, 32},
+#ifdef BTTV_BOARD_KWORLD
+ {BTTV_BOARD_KWORLD,
+ 0, 0x00007f00, 0, 0x0004000, 0, 0, 12, 32},
+#endif
+ /* just a guess */
+ {BTTV_BOARD_MAGICTVIEW061,
+ 0, 0x0028e000, 0, 0x0020000, 0, 0, 20, 32},
+ {BTTV_BOARD_MAGICTVIEW063,
+ 0, 0x0028e000, 0, 0x0020000, 0, 0, 20, 32},
+ {BTTV_BOARD_PHOEBE_TVMAS,
+ 0, 0x0028e000, 0, 0x0020000, 0, 0, 20, 32},
+#ifdef BTTV_BOARD_BESTBUY_EASYTV2
+ {BTTV_BOARD_BESTBUY_EASYTV,
+ 0, 0x00007F00, 0, 0x0004000, 0, 0, 10, 8},
+ {BTTV_BOARD_BESTBUY_EASYTV2,
+ 0, 0x00007F00, 0, 0x0008000, 0, 0, 10, 8},
+#endif
+ /* lock_mask probably also 0x100, or maybe it is 0x0 for all others? */
+ {BTTV_BOARD_FLYVIDEO,
+ 0, 0x000000f8, 0, 0, 0, 0, 0, 42},
+ {BTTV_BOARD_FLYVIDEO_98,
+ 0, 0x000000f8, 0, 0x0000100, 0, 0, 0, 42},
+ {BTTV_BOARD_TYPHOON_TVIEW,
+ 0, 0x000000f8, 0, 0x0000100, 0, 0, 0, 42},
+#ifdef BTTV_BOARD_FLYVIDEO_98FM
+ /* smorar@alfonzo.smuts.uct.ac.za */
+ {BTTV_BOARD_FLYVIDEO_98FM,
+ 0, 0x000000f8, 0, 0x0000100, 0, 0, 0, 42},
+#endif
+ /* The Leadtek WinFast TV 2000 XP card (id 0x6606107d) uses an
+ * extra gpio bit compared to the original TV 2000 card (id
+ * 0x217d6606); as the bttv-0.7.100 driver does not
+ * distinguish between the two cards, we enable the extra bit
+ * based on the card id: */
+ {BTTV_BOARD_WINFAST2000,
+ 0x6606107d, 0x000008f8, 0, 0x0000100, 0, 0, 0, 32},
+ {BTTV_BOARD_WINFAST2000,
+ 0x6609107d, 0x000008f8, 0, 0x0000100, 0, 0, 0, 32},
+ {BTTV_BOARD_WINFAST2000,
+ 0xff06107d, 0x000008f8, 0, 0x0000100, 0, 0, 0, 32},
+ /* default: */
+ {BTTV_BOARD_WINFAST2000,
+ 0, 0x000000f8, 0, 0x0000100, 0, 0, 0, 32},
+#ifdef BTTV_BOARD_GVBCTV5PCI
+ {BTTV_BOARD_GVBCTV5PCI,
+ 0, 0x00f0b000, 0, 0, 0, 0, 20, 8},
+#endif
+};
+
+static unsigned char code_length;
+static unsigned char code_bytes = 1;
+
+#define MAX_BYTES 8
+
+#define LOGHEAD "lirc_gpio (%d): "
+
+/* how many bits GPIO value can be shifted right before processing
+ * it is computed from the value of gpio_mask_parameter
+ */
+static unsigned char gpio_pre_shift;
+
+static int reverse(int data, int bits)
+{
+ int i;
+ int c;
+
+ for (c = 0, i = 0; i < bits; i++)
+ c |= (((data & (1<<i)) ? 1:0)) << (bits-1-i);
+
+ return c;
+}
+
+static int build_key(unsigned long gpio_val, unsigned char codes[MAX_BYTES])
+{
+ unsigned long mask = gpio_mask;
+ unsigned char shift = 0;
+
+ dprintk(LOGHEAD "gpio_val is %lx\n", card, (unsigned long) gpio_val);
+
+ gpio_val ^= gpio_xor_mask;
+
+ if (gpio_lock_mask && (gpio_val & gpio_lock_mask))
+ return -EBUSY;
+
+ switch (bttv_id) {
+ case BTTV_BOARD_AVERMEDIA98:
+ if (bttv_write_gpio(card, gpio_enable, gpio_enable)) {
+ dprintk(LOGHEAD "cannot write to GPIO\n", card);
+ return -EIO;
+ }
+ if (bttv_read_gpio(card, &gpio_val)) {
+ dprintk(LOGHEAD "cannot read GPIO\n", card);
+ return -EIO;
+ }
+ if (bttv_write_gpio(card, gpio_enable, 0)) {
+ dprintk(LOGHEAD "cannot write to GPIO\n", card);
+ return -EIO;
+ }
+ break;
+ default:
+ break;
+ }
+
+ /* extract bits from "raw" GPIO value using gpio_mask */
+ codes[0] = 0;
+ gpio_val >>= gpio_pre_shift;
+ while (mask) {
+ if (mask & 1u)
+ codes[0] |= (gpio_val & 1u) << shift++;
+ mask >>= 1;
+ gpio_val >>= 1;
+ }
+
+ dprintk(LOGHEAD "code is %lx\n", card, (unsigned long) codes[0]);
+ switch (bttv_id) {
+ case BTTV_BOARD_AVERMEDIA:
+ codes[2] = (codes[0]<<2)&0xff;
+ codes[3] = (~codes[2])&0xff;
+ codes[0] = 0x02;
+ codes[1] = 0xFD;
+ break;
+ case BTTV_BOARD_AVPHONE98:
+ codes[2] = ((codes[0]&(~0x1))<<2)&0xff;
+ codes[3] = (~codes[2])&0xff;
+ if (codes[0]&0x1) {
+ codes[0] = 0xc0;
+ codes[1] = 0x3f;
+ } else {
+ codes[0] = 0x40;
+ codes[1] = 0xbf;
+ }
+ break;
+ case BTTV_BOARD_AVERMEDIA98:
+ break;
+ case BTTV_BOARD_FLYVIDEO:
+ case BTTV_BOARD_FLYVIDEO_98:
+ case BTTV_BOARD_TYPHOON_TVIEW:
+#ifdef BTTV_BOARD_FLYVIDEO_98FM
+ case BTTV_BOARD_FLYVIDEO_98FM:
+#endif
+ codes[4] = codes[0]<<3;
+ codes[5] = ((~codes[4])&0xff);
+
+ codes[0] = 0x00;
+ codes[1] = 0x1A;
+ codes[2] = 0x1F;
+ codes[3] = 0x2F;
+ break;
+ case BTTV_BOARD_MAGICTVIEW061:
+ case BTTV_BOARD_MAGICTVIEW063:
+ case BTTV_BOARD_PHOEBE_TVMAS:
+ codes[0] = (codes[0]&0x01)
+ | ((codes[0]&0x02)<<1)
+ | ((codes[0]&0x04)<<2)
+ | ((codes[0]&0x08)>>2)
+ | ((codes[0]&0x10)>>1);
+ /* FALLTHROUGH */
+ case BTTV_BOARD_MIRO:
+ case BTTV_BOARD_DYNALINK:
+#ifdef BTTV_BOARD_ASKEY_CPH03X
+ case BTTV_BOARD_ASKEY_CPH03X:
+#endif
+ case BTTV_BOARD_PXELVWPLTVPAK:
+ case BTTV_BOARD_PXELVWPLTVPRO:
+ case BTTV_BOARD_PV_BT878P_9B:
+ case BTTV_BOARD_PV_BT878P_PLUS:
+#ifdef BTTV_BOARD_PV_M4900
+ case BTTV_BOARD_PV_M4900:
+#endif
+#ifdef BTTV_BOARD_KWORLD
+ case BTTV_BOARD_KWORLD:
+#endif
+ codes[2] = reverse(codes[0], 8);
+ codes[3] = (~codes[2])&0xff;
+ codes[0] = 0x61;
+ codes[1] = 0xD6;
+ break;
+#if 0
+ /* derived from e-tech config file */
+ /* 26 + 16 bits */
+ /* won't apply it until it's confirmed with a fly98 */
+ case BTTV_BOARD_FLYVIDEO_98:
+ case BTTV_BOARD_FLYVIDEO_98FM:
+ codes[4] = codes[0]<<3;
+ codes[5] = (~codes[4])&0xff;
+
+ codes[0] = 0x00;
+ codes[1] = 0x1A;
+ codes[2] = 0x1F;
+ codes[3] = 0x2F;
+ break;
+#endif
+ case BTTV_BOARD_WINFAST2000:
+ /* shift extra bit */
+ codes[0] = (codes[0]&0x1f) | ((codes[0]&0x20) << 1);
+ case BTTV_BOARD_WINVIEW_601:
+ codes[2] = reverse(codes[0], 8);
+ codes[3] = (~codes[2])&0xff;
+ codes[0] = 0xC0;
+ codes[1] = 0x3F;
+ break;
+ default:
+ break;
+ }
+
+ return 0;
+}
+
+/* add_to_buf - copy a code to the buffer */
+static int add_to_buf(void *data, struct lirc_buffer *buf)
+{
+ static unsigned long next_time;
+ static unsigned char prev_codes[MAX_BYTES];
+ unsigned long code = 0;
+ unsigned char cur_codes[MAX_BYTES];
+
+ if (bttv_read_gpio(card, &code)) {
+ dprintk(LOGHEAD "cannot read GPIO\n", card);
+ return -EIO;
+ }
+
+ if (build_key(code, cur_codes))
+ return -EFAULT;
+
+ if (soft_gap) {
+ if (!memcmp(prev_codes, cur_codes, code_bytes) &&
+ jiffies < next_time)
+ return -EAGAIN;
+
+ next_time = jiffies + soft_gap;
+ }
+ memcpy(prev_codes, cur_codes, code_bytes);
+
+ lirc_buffer_write(buf, cur_codes);
+
+ return 0;
+}
+
+static int set_use_inc(void *data)
+{
+ MOD_INC_USE_COUNT;
+ return 0;
+}
+
+static void set_use_dec(void *data)
+{
+ MOD_DEC_USE_COUNT;
+}
+
+static wait_queue_head_t *get_queue(void *data)
+{
+ return bttv_get_gpio_queue(card);
+}
+
+static struct lirc_driver driver = {
+ .name = "lirc_gpio ",
+ .add_to_buf = add_to_buf,
+ .get_queue = get_queue,
+ .set_use_inc = set_use_inc,
+ .set_use_dec = set_use_dec,
+ .dev = NULL,
+ .owner = THIS_MODULE,
+};
+
+/*
+ *
+ */
+static int gpio_remote_init(void)
+{
+ int ret;
+ unsigned int mask;
+
+ /* "normalize" gpio_mask
+ * this means shift it right until first bit is set
+ */
+ while (!(gpio_mask & 1u)) {
+ gpio_pre_shift++;
+ gpio_mask >>= 1;
+ }
+
+ if (code_length)
+ driver.code_length = code_length;
+ else {
+ /* calculate scan code length in bits if needed */
+ driver.code_length = 1;
+ mask = gpio_mask >> 1;
+ while (mask) {
+ if (mask & 1u)
+ driver.code_length++;
+ mask >>= 1;
+ }
+ }
+
+ code_bytes = (driver.code_length/8) + (driver.code_length % 8 ? 1 : 0);
+ if (MAX_BYTES < code_bytes) {
+ printk(LOGHEAD "scan code too long (%d bytes)\n",
+ minor, code_bytes);
+ return -EBADRQC;
+ }
+
+ if (gpio_enable) {
+ if (bttv_gpio_enable(card, gpio_enable, gpio_enable)) {
+ printk(LOGHEAD "gpio_enable failure\n", minor);
+ return -EIO;
+ }
+ }
+
+
+ /* translate ms to jiffies */
+ soft_gap = (soft_gap*HZ) / 1000;
+
+ driver.minor = minor;
+ driver.sample_rate = sample_rate;
+
+ ret = lirc_register_driver(&driver);
+
+ if (0 > ret) {
+ printk(LOGHEAD "device registration failed with %d\n",
+ minor, ret);
+ return ret;
+ }
+
+ minor = ret;
+ printk(LOGHEAD "driver registered\n", minor);
+
+ return 0;
+}
+
+#ifdef MODULE
+/*
+ *
+ */
+int init_module(void)
+{
+ int type, cardid, card_type;
+
+ if (MAX_IRCTL_DEVICES < minor) {
+ printk(KERN_INFO "lirc_gpio: parameter minor (%d) "
+ "must be less than %d!\n",
+ minor, MAX_IRCTL_DEVICES - 1);
+ return -EBADRQC;
+ }
+
+ /* if gpio_mask not zero then use module parameters
+ * instead of autodetecting TV card
+ */
+ if (gpio_mask) {
+ if (sample_rate != 0 &&
+ (2 > sample_rate || HZ < sample_rate)) {
+ printk(LOGHEAD "parameter sample_rate "
+ "must be between 2 and %d!\n", minor, HZ);
+ return -EBADRQC;
+ }
+
+ if (sample_rate != 0 && soft_gap &&
+ ((2000/sample_rate) > soft_gap || 1000 < soft_gap)) {
+ printk(LOGHEAD "parameter soft_gap "
+ "must be between %d and 1000!\n",
+ minor, 2000/sample_rate);
+ return -EBADRQC;
+ }
+ } else {
+ if (bttv_get_cardinfo(card, &type, &cardid) == -1) {
+ printk(LOGHEAD "could not get card type\n", minor);
+ return -EBADRQC;
+ }
+ printk(LOGHEAD "card type 0x%x, id 0x%x\n", minor,
+ type, cardid);
+
+ if (type == BTTV_BOARD_UNKNOWN) {
+ printk(LOGHEAD "cannot detect TV card nr %d!\n",
+ minor, card);
+ return -EBADRQC;
+ }
+ for (card_type = 1;
+ card_type < sizeof(rcv_infos)/sizeof(struct rcv_info);
+ card_type++) {
+ if (rcv_infos[card_type].bttv_id == type &&
+ (rcv_infos[card_type].card_id == 0 ||
+ rcv_infos[card_type].card_id == cardid)) {
+ bttv_id = rcv_infos[card_type].bttv_id;
+ gpio_mask = rcv_infos[card_type].gpio_mask;
+ gpio_enable = rcv_infos[card_type].gpio_enable;
+ gpio_lock_mask =
+ rcv_infos[card_type].gpio_lock_mask;
+ gpio_xor_mask =
+ rcv_infos[card_type].gpio_xor_mask;
+ soft_gap = rcv_infos[card_type].soft_gap;
+ sample_rate = rcv_infos[card_type].sample_rate;
+ code_length = rcv_infos[card_type].code_length;
+ break;
+ }
+ }
+ if (type == BTTV_BOARD_AVPHONE98 && cardid == 0x00011461)
+ bttv_id = BTTV_BOARD_AVERMEDIA98;
+
+ if (type == BTTV_BOARD_AVERMEDIA98 && cardid == 0x00041461)
+ bttv_id = BTTV_BOARD_AVPHONE98;
+
+ if (type == BTTV_BOARD_AVERMEDIA98 && cardid == 0x03001461)
+ bttv_id = BTTV_BOARD_AVPHONE98;
+
+ if (type == BTTV_BOARD_AVERMEDIA98 && cardid == 0x00000000)
+ bttv_id = BTTV_BOARD_AVPHONE98;
+
+ if (card_type == sizeof(rcv_infos)/sizeof(struct rcv_info)) {
+ printk(LOGHEAD "TV card type 0x%x not supported!\n",
+ minor, type);
+ return -EBADRQC;
+ }
+ }
+
+ return gpio_remote_init();
+}
+
+/*
+ *
+ */
+void cleanup_module(void)
+{
+ lirc_unregister_driver(minor);
+
+ dprintk(LOGHEAD "module successfully unloaded\n", minor);
+}
+
+/* Dont try to use it as a static version ! */
+MODULE_DESCRIPTION("Driver module for remote control (data "
+ "from bt848 GPIO port)");
+MODULE_AUTHOR("Artur Lipowski");
+MODULE_LICENSE("GPL");
+
+module_param(minor, int, S_IRUGO);
+MODULE_PARM_DESC(minor, "Preferred minor device number");
+
+module_param(card, int, S_IRUGO);
+MODULE_PARM_DESC(card, "TV card number to attach to");
+
+module_param(gpio_mask, long, S_IRUGO);
+MODULE_PARM_DESC(gpio_mask, "gpio_mask");
+
+module_param(gpio_lock_mask, long, S_IRUGO);
+MODULE_PARM_DESC(gpio_lock_mask, "gpio_lock_mask");
+
+module_param(gpio_xor_mask, long, S_IRUGO);
+MODULE_PARM_DESC(gpio_xor_mask, "gpio_xor_mask");
+
+module_param(soft_gap, int, S_IRUGO);
+MODULE_PARM_DESC(soft_gap, "Time between keypresses (in ms)");
+
+module_param(sample_rate, int, S_IRUGO);
+MODULE_PARM_DESC(sample_rate, "Sample rate (between 2 and HZ)");
+
+module_param(bttv_id, int, S_IRUGO);
+MODULE_PARM_DESC(bttv_id, "BTTV card type");
+
+module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
+
+EXPORT_NO_SYMBOLS;
+
+#endif /* MODULE */
diff --git a/ubuntu/lirc/lirc_i2c/Makefile b/ubuntu/lirc/lirc_i2c/Makefile
new file mode 100644
index 00000000000..40ee53ebc82
--- /dev/null
+++ b/ubuntu/lirc/lirc_i2c/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_I2C) += lirc_i2c.o
diff --git a/ubuntu/lirc/lirc_i2c/lirc_i2c.c b/ubuntu/lirc/lirc_i2c/lirc_i2c.c
new file mode 100644
index 00000000000..dca6b513c0c
--- /dev/null
+++ b/ubuntu/lirc/lirc_i2c/lirc_i2c.c
@@ -0,0 +1,778 @@
+/* $Id: lirc_i2c.c,v 1.70 2009/08/30 16:59:53 jarodwilson Exp $ */
+
+/*
+ * lirc_i2c.c
+ *
+ * i2c IR driver for the onboard IR port on many TV tuner cards, including:
+ * -Flavors of the Hauppauge PVR-150/250/350
+ * -Hauppauge HVR-1300
+ * -PixelView (BT878P+W/FM)
+ * -KNC ONE TV Station/Anubis Typhoon TView Tuner
+ * -Asus TV-Box and Creative/VisionTek BreakOut-Box
+ * -Leadtek Winfast PVR2000
+ *
+ * Copyright (c) 2000 Gerd Knorr <kraxel@goldbach.in-berlin.de>
+ * modified for PixelView (BT878P+W/FM) by
+ * Michal Kochanowicz <mkochano@pld.org.pl>
+ * Christoph Bartelmus <lirc@bartelmus.de>
+ * modified for KNC ONE TV Station/Anubis Typhoon TView Tuner by
+ * Ulrich Mueller <ulrich.mueller42@web.de>
+ * modified for Asus TV-Box and Creative/VisionTek BreakOut-Box by
+ * Stefan Jahn <stefan@lkcc.org>
+ * modified for inclusion into kernel sources by
+ * Jerome Brock <jbrock@users.sourceforge.net>
+ * modified for Leadtek Winfast PVR2000 by
+ * Thomas Reitmayr (treitmayr@yahoo.com)
+ * modified for Hauppauge HVR-1300 by
+ * Jan Frey (jfrey@gmx.de)
+ *
+ * parts are cut&pasted from the old lirc_haup.c driver
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <linux/version.h>
+#include <linux/module.h>
+#include <linux/kmod.h>
+#include <linux/kernel.h>
+#include <linux/sched.h>
+#include <linux/string.h>
+#include <linux/timer.h>
+#include <linux/delay.h>
+#include <linux/errno.h>
+#include <linux/slab.h>
+#include <linux/i2c.h>
+#include <linux/i2c-algo-bit.h>
+
+#include "../kcompat.h"
+#include "../lirc_dev/lirc_dev.h"
+
+struct IR {
+ struct lirc_driver l;
+ struct i2c_client c;
+ int nextkey;
+ unsigned char b[3];
+ unsigned char bits;
+ unsigned char flag;
+};
+
+#define DEVICE_NAME "lirc_i2c"
+
+/* module parameters */
+static int debug; /* debug output */
+static int minor = -1; /* minor number */
+
+#define dprintk(fmt, args...) \
+ do { \
+ if (debug) \
+ printk(KERN_DEBUG DEVICE_NAME ": " fmt, \
+ ## args); \
+ } while (0)
+
+static int reverse(int data, int bits)
+{
+ int i;
+ int c;
+
+ for (c = 0, i = 0; i < bits; i++)
+ c |= ((data & (1<<i)) ? 1 : 0) << (bits-1-i);
+
+ return c;
+}
+
+static int add_to_buf_adap(void *data, struct lirc_buffer *buf)
+{
+ struct IR *ir = data;
+ unsigned char keybuf[4];
+
+ keybuf[0] = 0x00;
+ i2c_master_send(&ir->c, keybuf, 1);
+ /* poll IR chip */
+ if (i2c_master_recv(&ir->c, keybuf, sizeof(keybuf)) != sizeof(keybuf)) {
+ dprintk("read error\n");
+ return -EIO;
+ }
+
+ dprintk("key (0x%02x%02x%02x%02x)\n",
+ keybuf[0], keybuf[1], keybuf[2], keybuf[3]);
+
+ /* key pressed ? */
+ if (keybuf[2] == 0xff)
+ return -ENODATA;
+
+ /* remove repeat bit */
+ keybuf[2] &= 0x7f;
+ keybuf[3] |= 0x80;
+
+ lirc_buffer_write(buf, keybuf);
+ return 0;
+}
+
+static int add_to_buf_pcf8574(void *data, struct lirc_buffer *buf)
+{
+ struct IR *ir = data;
+ int rc;
+ unsigned char all, mask;
+ unsigned char key;
+
+ /* compute all valid bits (key code + pressed/release flag) */
+ all = ir->bits | ir->flag;
+
+ /* save IR writable mask bits */
+ mask = i2c_smbus_read_byte(&ir->c) & ~all;
+
+ /* send bit mask */
+ rc = i2c_smbus_write_byte(&ir->c, (0xff & all) | mask);
+
+ /* receive scan code */
+ rc = i2c_smbus_read_byte(&ir->c);
+
+ if (rc == -1) {
+ dprintk("%s read error\n", ir->c.name);
+ return -EIO;
+ }
+
+ /* drop duplicate polls */
+ if (ir->b[0] == (rc & all))
+ return -ENODATA;
+
+ ir->b[0] = rc & all;
+
+ dprintk("%s key 0x%02X %s\n", ir->c.name, rc & ir->bits,
+ (rc & ir->flag) ? "released" : "pressed");
+
+ /* ignore released buttons */
+ if (rc & ir->flag)
+ return -ENODATA;
+
+ /* set valid key code */
+ key = rc & ir->bits;
+ lirc_buffer_write(buf, &key);
+ return 0;
+}
+
+/* common for Hauppauge IR receivers */
+static int add_to_buf_haup_common(void *data, struct lirc_buffer *buf,
+ unsigned char *keybuf, int size, int offset)
+{
+ struct IR *ir = data;
+ __u16 code;
+ unsigned char codes[2];
+ int ret;
+
+ /* poll IR chip */
+ ret = i2c_master_recv(&ir->c, keybuf, size);
+ if (ret == size) {
+ ir->b[0] = keybuf[offset];
+ ir->b[1] = keybuf[offset+1];
+ ir->b[2] = keybuf[offset+2];
+ if (ir->b[0] != 0x00 && ir->b[1] != 0x00)
+ dprintk("key (0x%02x/0x%02x)\n", ir->b[0], ir->b[1]);
+ } else {
+ dprintk("read error (ret=%d)\n", ret);
+ /* keep last successful read buffer */
+ }
+
+ /* key pressed ? */
+ if ((ir->b[0] & 0x80) == 0)
+ return -ENODATA;
+
+ /* look what we have */
+ code = (((__u16)ir->b[0]&0x7f)<<6) | (ir->b[1]>>2);
+
+ codes[0] = (code >> 8) & 0xff;
+ codes[1] = code & 0xff;
+
+ /* return it */
+ dprintk("sending code 0x%02x%02x to lirc\n", codes[0], codes[1]);
+ lirc_buffer_write(buf, codes);
+ return 0;
+}
+
+/* specific for the Hauppauge PVR150 IR receiver */
+static int add_to_buf_haup_pvr150(void *data, struct lirc_buffer *buf)
+{
+ unsigned char keybuf[6];
+ /* fetch 6 bytes, first relevant is at offset 3 */
+ return add_to_buf_haup_common(data, buf, keybuf, 6, 3);
+}
+
+/* used for all Hauppauge IR receivers but the PVR150 */
+static int add_to_buf_haup(void *data, struct lirc_buffer *buf)
+{
+ unsigned char keybuf[3];
+ /* fetch 3 bytes, first relevant is at offset 0 */
+ return add_to_buf_haup_common(data, buf, keybuf, 3, 0);
+}
+
+
+static int add_to_buf_pvr2000(void *data, struct lirc_buffer *buf)
+{
+ struct IR *ir = data;
+ unsigned char key;
+ s32 flags;
+ s32 code;
+
+ /* poll IR chip */
+ flags = i2c_smbus_read_byte_data(&ir->c, 0x10);
+ if (-1 == flags) {
+ dprintk("read error\n");
+ return -ENODATA;
+ }
+ /* key pressed ? */
+ if (0 == (flags & 0x80))
+ return -ENODATA;
+
+ /* read actual key code */
+ code = i2c_smbus_read_byte_data(&ir->c, 0x00);
+ if (-1 == code) {
+ dprintk("read error\n");
+ return -ENODATA;
+ }
+
+ key = code & 0xFF;
+
+ dprintk("IR Key/Flags: (0x%02x/0x%02x)\n", key, flags & 0xFF);
+
+ /* return it */
+ lirc_buffer_write(buf, &key);
+ return 0;
+}
+
+static int add_to_buf_pixelview(void *data, struct lirc_buffer *buf)
+{
+ struct IR *ir = data;
+ unsigned char key;
+
+ /* poll IR chip */
+ if (1 != i2c_master_recv(&ir->c, &key, 1)) {
+ dprintk("read error\n");
+ return -1;
+ }
+ dprintk("key %02x\n", key);
+
+ /* return it */
+ lirc_buffer_write(buf, &key);
+ return 0;
+}
+
+static int add_to_buf_pv951(void *data, struct lirc_buffer *buf)
+{
+ struct IR *ir = data;
+ unsigned char key;
+ unsigned char codes[4];
+
+ /* poll IR chip */
+ if (1 != i2c_master_recv(&ir->c, &key, 1)) {
+ dprintk("read error\n");
+ return -ENODATA;
+ }
+ /* ignore 0xaa */
+ if (key == 0xaa)
+ return -ENODATA;
+ dprintk("key %02x\n", key);
+
+ codes[0] = 0x61;
+ codes[1] = 0xD6;
+ codes[2] = reverse(key, 8);
+ codes[3] = (~codes[2])&0xff;
+
+ lirc_buffer_write(buf, codes);
+ return 0;
+}
+
+static int add_to_buf_knc1(void *data, struct lirc_buffer *buf)
+{
+ static unsigned char last_key = 0xFF;
+ struct IR *ir = data;
+ unsigned char key;
+
+ /* poll IR chip */
+ if (1 != i2c_master_recv(&ir->c, &key, 1)) {
+ dprintk("read error\n");
+ return -ENODATA;
+ }
+
+ /*
+ * it seems that 0xFE indicates that a button is still held
+ * down, while 0xFF indicates that no button is held
+ * down. 0xFE sequences are sometimes interrupted by 0xFF
+ */
+
+ dprintk("key %02x\n", key);
+
+ if (key == 0xFF)
+ return -ENODATA;
+
+ if (key == 0xFE)
+ key = last_key;
+
+ last_key = key;
+ lirc_buffer_write(buf, &key);
+
+ return 0;
+}
+
+static int set_use_inc(void *data)
+{
+ struct IR *ir = data;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 25)
+ int ret;
+#endif
+
+ dprintk("%s called\n", __func__);
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
+ i2c_use_client(&ir->c);
+#else
+ /* lock bttv in memory while /dev/lirc is in use */
+ ret = i2c_use_client(&ir->c);
+ if (ret != 0)
+ return ret;
+#endif
+
+ MOD_INC_USE_COUNT;
+ return 0;
+}
+
+static void set_use_dec(void *data)
+{
+ struct IR *ir = data;
+
+ dprintk("%s called\n", __func__);
+
+ i2c_release_client(&ir->c);
+ MOD_DEC_USE_COUNT;
+}
+
+static struct lirc_driver lirc_template = {
+ .name = "lirc_i2c",
+ .set_use_inc = set_use_inc,
+ .set_use_dec = set_use_dec,
+ .dev = NULL,
+ .owner = THIS_MODULE,
+};
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+static int ir_attach(struct i2c_adapter *adap, int addr,
+ unsigned short flags, int kind);
+static int ir_probe(struct i2c_adapter *adap);
+# else
+static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id);
+#endif
+static int ir_remove(struct i2c_client *client);
+static int ir_command(struct i2c_client *client, unsigned int cmd, void *arg);
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 30)
+static const struct i2c_device_id ir_receiver_id[] = {
+ /* Generic entry for any IR receiver */
+ { "ir_video", 0 },
+ /* IR device specific entries could be added here */
+ { }
+};
+#endif
+
+static struct i2c_driver driver = {
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16)
+ .name = "i2c ir driver",
+ .flags = I2C_DF_NOTIFY,
+#else
+ .driver = {
+ .owner = THIS_MODULE,
+ .name = "i2c ir driver",
+ },
+#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+ .attach_adapter = ir_probe,
+ .detach_client = ir_remove,
+#else
+ .probe = ir_probe,
+ .remove = ir_remove,
+ .id_table = ir_receiver_id,
+#endif
+ .command = ir_command,
+};
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+static struct i2c_client client_template = {
+ .name = "unset",
+ .driver = &driver
+};
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+static int ir_attach(struct i2c_adapter *adap, int addr,
+ unsigned short flags, int kind)
+#else
+static void pcf_probe(struct i2c_client *client, struct IR *ir)
+{
+ int ret1, ret2, ret3, ret4;
+
+ ret1 = i2c_smbus_write_byte(client, 0xff);
+ ret2 = i2c_smbus_read_byte(client);
+ ret3 = i2c_smbus_write_byte(client, 0x00);
+ ret4 = i2c_smbus_read_byte(client);
+
+ /* in the Asus TV-Box: bit 1-0 */
+ if (((ret2 & 0x03) == 0x03) && ((ret4 & 0x03) == 0x00)) {
+ ir->bits = (unsigned char) ~0x07;
+ ir->flag = 0x04;
+ /* in the Creative/VisionTek BreakOut-Box: bit 7-6 */
+ } else if (((ret2 & 0xc0) == 0xc0) && ((ret4 & 0xc0) == 0x00)) {
+ ir->bits = (unsigned char) ~0xe0;
+ ir->flag = 0x20;
+ }
+
+ return;
+}
+
+static int ir_probe(struct i2c_client *client, const struct i2c_device_id *id)
+#endif
+{
+ struct IR *ir;
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+ int err, retval;
+
+ client_template.adapter = adap;
+ client_template.addr = addr;
+#else
+ struct i2c_adapter *adap = client->adapter;
+ unsigned short addr = client->addr;
+ int retval;
+#endif
+
+ ir = kmalloc(sizeof(struct IR), GFP_KERNEL);
+ if (!ir)
+ return -ENOMEM;
+ memcpy(&ir->l, &lirc_template, sizeof(struct lirc_driver));
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+ memcpy(&ir->c, &client_template, sizeof(struct i2c_client));
+
+ ir->c.adapter = adap;
+ ir->c.addr = addr;
+ i2c_set_clientdata(&ir->c, ir);
+#else
+ memcpy(&ir->c, client, sizeof(struct i2c_client));
+
+ i2c_set_clientdata(client, ir);
+#endif
+ ir->l.data = ir;
+ ir->l.minor = minor;
+ ir->l.sample_rate = 10;
+ ir->l.dev = &ir->c.dev;
+ ir->nextkey = -1;
+
+ switch (addr) {
+ case 0x64:
+ strlcpy(ir->c.name, "Pixelview IR", I2C_NAME_SIZE);
+ ir->l.code_length = 8;
+ ir->l.add_to_buf = add_to_buf_pixelview;
+ break;
+ case 0x4b:
+ strlcpy(ir->c.name, "PV951 IR", I2C_NAME_SIZE);
+ ir->l.code_length = 32;
+ ir->l.add_to_buf = add_to_buf_pv951;
+ break;
+ case 0x71:
+#ifdef I2C_HW_B_CX2341X
+ if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848) ||
+ adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2341X)) {
+#else
+ if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848)) {
+#endif
+ /*
+ * The PVR150 IR receiver uses the same protocol as
+ * other Hauppauge cards, but the data flow is
+ * different, so we need to deal with it by its own.
+ */
+ strlcpy(ir->c.name, "Hauppauge PVR150", I2C_NAME_SIZE);
+ } else /* I2C_HW_B_CX2388x */
+ strlcpy(ir->c.name, "Hauppauge HVR1300", I2C_NAME_SIZE);
+ ir->l.code_length = 13;
+ ir->l.add_to_buf = add_to_buf_haup_pvr150;
+ break;
+ case 0x6b:
+ strlcpy(ir->c.name, "Adaptec IR", I2C_NAME_SIZE);
+ ir->l.code_length = 32;
+ ir->l.add_to_buf = add_to_buf_adap;
+ break;
+ case 0x18:
+ case 0x1a:
+#ifdef I2C_HW_B_CX2341X
+ if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848) ||
+ adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2341X)) {
+#else
+ if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848)) {
+#endif
+ strlcpy(ir->c.name, "Hauppauge IR", I2C_NAME_SIZE);
+ ir->l.code_length = 13;
+ ir->l.add_to_buf = add_to_buf_haup;
+ } else { /* I2C_HW_B_CX2388x */
+ strlcpy(ir->c.name, "Leadtek IR", I2C_NAME_SIZE);
+ ir->l.code_length = 8;
+ ir->l.add_to_buf = add_to_buf_pvr2000;
+ }
+ break;
+ case 0x30:
+ strlcpy(ir->c.name, "KNC ONE IR", I2C_NAME_SIZE);
+ ir->l.code_length = 8;
+ ir->l.add_to_buf = add_to_buf_knc1;
+ break;
+ case 0x21:
+ case 0x23:
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+ ir->bits = flags & 0xff;
+ ir->flag = (flags >> 8) & 0xff;
+#else
+ pcf_probe(client, ir);
+#endif
+ strlcpy(ir->c.name, "TV-Box IR", I2C_NAME_SIZE);
+ ir->l.code_length = 8;
+ ir->l.add_to_buf = add_to_buf_pcf8574;
+ break;
+ default:
+ /* shouldn't happen */
+ printk("lirc_i2c: Huh? unknown i2c address (0x%02x)?\n", addr);
+ kfree(ir);
+ return -EINVAL;
+ }
+ printk(KERN_INFO "lirc_i2c: chip 0x%x found @ 0x%02x (%s)\n",
+ adap->id, addr, ir->c.name);
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+ /* register device */
+ err = i2c_attach_client(&ir->c);
+ if (err) {
+ kfree(ir);
+ return err;
+ }
+#endif
+
+ retval = lirc_register_driver(&ir->l);
+
+ if (retval < 0) {
+ printk(KERN_ERR "lirc_i2c: failed to register driver!\n");
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+ i2c_detach_client(&ir->c);
+#endif
+ kfree(ir);
+ return retval;
+ }
+
+ ir->l.minor = retval;
+
+ return 0;
+}
+
+static int ir_remove(struct i2c_client *client)
+{
+ struct IR *ir = i2c_get_clientdata(client);
+
+ /* unregister device */
+ lirc_unregister_driver(ir->l.minor);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+ i2c_detach_client(&ir->c);
+#endif
+
+ /* free memory */
+ kfree(ir);
+ return 0;
+}
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 31)
+static int ir_probe(struct i2c_adapter *adap)
+{
+ /*
+ * The external IR receiver is at i2c address 0x34 (0x35 for
+ * reads). Future Hauppauge cards will have an internal
+ * receiver at 0x30 (0x31 for reads). In theory, both can be
+ * fitted, and Hauppauge suggest an external overrides an
+ * internal.
+ *
+ * That's why we probe 0x1a (~0x34) first. CB
+ *
+ * The i2c address for the Hauppauge PVR-150 card is 0xe2,
+ * so we need to probe 0x71 as well.
+ */
+
+ static const int probe[] = {
+ 0x1a, /* Hauppauge IR external */
+ 0x18, /* Hauppauge IR internal */
+ 0x71, /* Hauppauge IR (PVR150) */
+ 0x4b, /* PV951 IR */
+ 0x64, /* Pixelview IR */
+ 0x30, /* KNC ONE IR */
+ 0x6b, /* Adaptec IR */
+ -1};
+
+#ifdef I2C_HW_B_CX2388x
+ static const int probe_cx88[] = {
+ 0x18, /* Leadtek Winfast PVR2000 */
+ 0x71, /* Hauppauge HVR-IR */
+ -1};
+#endif
+
+ struct i2c_client c;
+ char buf;
+ int i, rc;
+
+ memset(&c, 0, sizeof(c));
+#ifdef I2C_HW_B_CX2341X
+ if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848) ||
+ adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2341X)) {
+#else
+ if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_BT848)) {
+#endif
+ c.adapter = adap;
+ for (i = 0; -1 != probe[i]; i++) {
+ c.addr = probe[i];
+ rc = i2c_master_recv(&c, &buf, 1);
+ dprintk("probe 0x%02x @ %s: %s\n",
+ probe[i], adap->name,
+ (1 == rc) ? "yes" : "no");
+ if (1 == rc) {
+ rc = ir_attach(adap, probe[i], 0, 0);
+ if (rc < 0)
+ goto attach_fail;
+ }
+ }
+ }
+
+#ifdef I2C_HW_B_CX2388x
+ /* Leadtek Winfast PVR2000 or Hauppauge HVR-1300 */
+ else if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_CX2388x)) {
+ c.adapter = adap;
+ for (i = 0; -1 != probe_cx88[i]; i++) {
+ c.addr = probe_cx88[i];
+ rc = i2c_master_recv(&c, &buf, 1);
+ dprintk("probe 0x%02x @ %s: %s\n",
+ c.addr, adap->name,
+ (1 == rc) ? "yes" : "no");
+ if (1 == rc) {
+ rc = ir_attach(adap, c.addr, 0, 0);
+ if (rc < 0)
+ goto attach_fail;
+ }
+ }
+ }
+#endif
+
+ /* Asus TV-Box and Creative/VisionTek BreakOut-Box (PCF8574) */
+ else if (adap->id == (I2C_ALGO_BIT | I2C_HW_B_RIVA)) {
+ /*
+ * addresses to probe;
+ * leave 0x24 and 0x25 because SAA7113H possibly uses it
+ * 0x21 and 0x22 possibly used by SAA7108E
+ * Asus: 0x21 is a correct address (channel 1 of PCF8574)
+ * Creative: 0x23 is a correct address (channel 3 of PCF8574)
+ * VisionTek: 0x23 is a correct address (channel 3 of PCF8574)
+ */
+ static const int pcf_probe[] = { 0x20, 0x21, 0x22, 0x23,
+ 0x24, 0x25, 0x26, 0x27, -1 };
+ int ret1, ret2, ret3, ret4;
+ unsigned char bits = 0, flag = 0;
+
+ c.adapter = adap;
+ for (i = 0; -1 != pcf_probe[i]; i++) {
+ c.addr = pcf_probe[i];
+ ret1 = i2c_smbus_write_byte(&c, 0xff);
+ ret2 = i2c_smbus_read_byte(&c);
+ ret3 = i2c_smbus_write_byte(&c, 0x00);
+ ret4 = i2c_smbus_read_byte(&c);
+
+ /* ensure that the writable bitmask works correctly */
+ rc = 0;
+ if (ret1 != -1 && ret2 != -1 &&
+ ret3 != -1 && ret4 != -1) {
+ /* in the Asus TV-Box: bit 1-0 */
+ if (((ret2 & 0x03) == 0x03) &&
+ ((ret4 & 0x03) == 0x00)) {
+ bits = (unsigned char) ~0x07;
+ flag = 0x04;
+ rc = 1;
+ }
+ /* in the Creative/VisionTek BreakOut-Box: bit 7-6 */
+ if (((ret2 & 0xc0) == 0xc0) &&
+ ((ret4 & 0xc0) == 0x00)) {
+ bits = (unsigned char) ~0xe0;
+ flag = 0x20;
+ rc = 1;
+ }
+ }
+ dprintk("probe 0x%02x @ %s: %s\n",
+ c.addr, adap->name, rc ? "yes" : "no");
+ if (rc) {
+ rc = ir_attach(adap, pcf_probe[i],
+ bits | (flag << 8), 0);
+ if (rc < 0)
+ goto attach_fail;
+ }
+ }
+ }
+
+ return 0;
+
+attach_fail:
+ printk(KERN_ERR "lirc_i2c: %s: ir_attach failed!\n", __func__);
+ return rc;
+
+}
+#endif
+
+static int ir_command(struct i2c_client *client, unsigned int cmd, void *arg)
+{
+ /* nothing */
+ return 0;
+}
+
+#ifdef MODULE
+
+static int __init lirc_i2c_init(void)
+{
+ request_module("bttv");
+ request_module("rivatv");
+ request_module("ivtv");
+ request_module("cx8800");
+ i2c_add_driver(&driver);
+ return 0;
+}
+
+static void __exit lirc_i2c_exit(void)
+{
+ i2c_del_driver(&driver);
+}
+
+MODULE_DESCRIPTION("Infrared receiver driver for Hauppauge and "
+ "Pixelview cards (i2c stack)");
+MODULE_AUTHOR("Gerd Knorr, Michal Kochanowicz, Christoph Bartelmus, "
+ "Ulrich Mueller, Stefan Jahn, Jerome Brock");
+MODULE_LICENSE("GPL");
+
+module_param(minor, int, S_IRUGO);
+MODULE_PARM_DESC(minor, "Preferred minor device number");
+
+module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
+
+module_init(lirc_i2c_init);
+module_exit(lirc_i2c_exit);
+EXPORT_NO_SYMBOLS;
+
+#endif /* MODULE */
diff --git a/ubuntu/lirc/lirc_igorplugusb/Makefile b/ubuntu/lirc/lirc_igorplugusb/Makefile
new file mode 100644
index 00000000000..8e8bafca3fc
--- /dev/null
+++ b/ubuntu/lirc/lirc_igorplugusb/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_IGORPLUGUSB) += lirc_igorplugusb.o
diff --git a/ubuntu/lirc/lirc_igorplugusb/lirc_igorplugusb.c b/ubuntu/lirc/lirc_igorplugusb/lirc_igorplugusb.c
new file mode 100644
index 00000000000..c38d9254cab
--- /dev/null
+++ b/ubuntu/lirc/lirc_igorplugusb/lirc_igorplugusb.c
@@ -0,0 +1,636 @@
+/*
+ * lirc_igorplugusb - USB remote support for LIRC
+ *
+ * Supports the standard homebrew IgorPlugUSB receiver with Igor's firmware.
+ * See http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20(AVR)_eng.htm
+ *
+ * The device can only record bursts of up to 36 pulses/spaces.
+ * Works fine with RC5. Longer commands lead to device buffer overrun.
+ * (Maybe a better firmware or a microcontroller with more ram can help?)
+ *
+ * Version 0.1 [beta status]
+ *
+ * Copyright (C) 2004 Jan M. Hochstein
+ * <hochstein@algo.informatik.tu-darmstadt.de>
+ *
+ * This driver was derived from:
+ * Paul Miller <pmiller9@users.sourceforge.net>
+ * "lirc_atiusb" module
+ * Vladimir Dergachev <volodya@minspring.com>'s 2002
+ * "USB ATI Remote support" (input device)
+ * Adrian Dewhurst <sailor-lk@sailorfrag.net>'s 2002
+ * "USB StreamZap remote driver" (LIRC)
+ * Artur Lipowski <alipowski@kki.net.pl>'s 2002
+ * "lirc_dev" and "lirc_gpio" LIRC modules
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)
+#error "*******************************************************"
+#error "Sorry, this driver needs kernel version 2.4.0 or higher"
+#error "*******************************************************"
+#endif
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/kmod.h>
+#include <linux/sched.h>
+#include <linux/errno.h>
+#include <linux/ioctl.h>
+#include <linux/fs.h>
+#include <linux/usb.h>
+#include <linux/poll.h>
+#include <linux/smp_lock.h>
+#include <linux/time.h>
+
+#include "../kcompat.h"
+#include "../lirc.h"
+#include "../lirc_dev/lirc_dev.h"
+
+#if !defined(KERNEL_2_5)
+#define USB_CTRL_GET_TIMEOUT 5
+#endif
+
+/* module identification */
+#define DRIVER_VERSION "0.2"
+#define DRIVER_AUTHOR \
+ "Jan M. Hochstein <hochstein@algo.informatik.tu-darmstadt.de>"
+#define DRIVER_DESC "USB remote driver for LIRC"
+#define DRIVER_NAME "lirc_igorplugusb"
+
+/* debugging support */
+#ifdef CONFIG_USB_DEBUG
+static int debug = 1;
+#else
+static int debug;
+#endif
+
+#define dprintk(fmt, args...) \
+ do { \
+ if (debug) \
+ printk(KERN_DEBUG DRIVER_NAME fmt, ## args); \
+ } while (0)
+
+/* One mode2 pulse/space has 4 bytes. */
+#define CODE_LENGTH sizeof(lirc_t)
+
+/* Igor's firmware cannot record bursts longer than 36. */
+#define DEVICE_BUFLEN 36
+
+/*
+ * Header at the beginning of the device's buffer:
+ * unsigned char data_length
+ * unsigned char data_start (!=0 means ring-buffer overrun)
+ * unsigned char counter (incremented by each burst)
+ */
+#define DEVICE_HEADERLEN 3
+
+/* This is for the gap */
+#define ADDITIONAL_LIRC_BYTES 2
+
+/* times to poll per second */
+#define SAMPLE_RATE 100
+static int sample_rate = SAMPLE_RATE;
+
+
+/**** Igor's USB Request Codes */
+
+#define SET_INFRABUFFER_EMPTY 1
+/**
+ * Params: none
+ * Answer: empty
+ */
+
+#define GET_INFRACODE 2
+/**
+ * Params:
+ * wValue: offset to begin reading infra buffer
+ *
+ * Answer: infra data
+ */
+
+#define SET_DATAPORT_DIRECTION 3
+/**
+ * Params:
+ * wValue: (byte) 1 bit for each data port pin (0=in, 1=out)
+ *
+ * Answer: empty
+ */
+
+#define GET_DATAPORT_DIRECTION 4
+/**
+ * Params: none
+ *
+ * Answer: (byte) 1 bit for each data port pin (0=in, 1=out)
+ */
+
+#define SET_OUT_DATAPORT 5
+/**
+ * Params:
+ * wValue: byte to write to output data port
+ *
+ * Answer: empty
+ */
+
+#define GET_OUT_DATAPORT 6
+/**
+ * Params: none
+ *
+ * Answer: least significant 3 bits read from output data port
+ */
+
+#define GET_IN_DATAPORT 7
+/**
+ * Params: none
+ *
+ * Answer: least significant 3 bits read from input data port
+ */
+
+#define READ_EEPROM 8
+/**
+ * Params:
+ * wValue: offset to begin reading EEPROM
+ *
+ * Answer: EEPROM bytes
+ */
+
+#define WRITE_EEPROM 9
+/**
+ * Params:
+ * wValue: offset to EEPROM byte
+ * wIndex: byte to write
+ *
+ * Answer: empty
+ */
+
+#define SEND_RS232 10
+/**
+ * Params:
+ * wValue: byte to send
+ *
+ * Answer: empty
+ */
+
+#define RECV_RS232 11
+/**
+ * Params: none
+ *
+ * Answer: byte received
+ */
+
+#define SET_RS232_BAUD 12
+/**
+ * Params:
+ * wValue: byte to write to UART bit rate register (UBRR)
+ *
+ * Answer: empty
+ */
+
+#define GET_RS232_BAUD 13
+/**
+ * Params: none
+ *
+ * Answer: byte read from UART bit rate register (UBRR)
+ */
+
+
+/* data structure for each usb remote */
+struct igorplug {
+
+ /* usb */
+ struct usb_device *usbdev;
+ struct urb *urb_in;
+ int devnum;
+
+ unsigned char *buf_in;
+ unsigned int len_in;
+ int in_space;
+ struct timeval last_time;
+
+#if defined(KERNEL_2_5)
+ dma_addr_t dma_in;
+#endif
+
+ /* lirc */
+ struct lirc_driver *d;
+
+ /* handle sending (init strings) */
+ int send_flags;
+};
+
+static int set_use_inc(void *data)
+{
+ struct igorplug *ir = data;
+
+ if (!ir) {
+ printk(KERN_ERR DRIVER_NAME
+ "[?]: set_use_inc called with no context\n");
+ return -EIO;
+ }
+ dprintk("[%d]: set use inc\n", ir->devnum);
+
+ MOD_INC_USE_COUNT;
+
+ if (!ir->usbdev)
+ return -ENODEV;
+
+ return 0;
+}
+
+static void set_use_dec(void *data)
+{
+ struct igorplug *ir = data;
+
+ if (!ir) {
+ printk(KERN_ERR DRIVER_NAME
+ "[?]: set_use_dec called with no context\n");
+ return;
+ }
+ dprintk("[%d]: set use dec\n", ir->devnum);
+
+ MOD_DEC_USE_COUNT;
+}
+
+static void send_fragment(struct igorplug *ir, struct lirc_buffer *buf,
+ int i, int max)
+{
+ /* MODE2: pulse/space (PULSE_BIT) in 1us units */
+ while (i < max) {
+ /* 1 Igor-tick = 85.333333 us */
+ lirc_t code = (unsigned int)ir->buf_in[i] * 85 +
+ (unsigned int)ir->buf_in[i] / 3;
+ ir->last_time.tv_usec += code;
+ if (ir->in_space)
+ code |= PULSE_BIT;
+ lirc_buffer_write_n(buf, (unsigned char *)&code, 1);
+ /* 1 chunk = CODE_LENGTH bytes */
+ ir->in_space ^= 1;
+ ++i;
+ }
+}
+
+/**
+ * Called in user context.
+ * return 0 if data was added to the buffer and
+ * -ENODATA if none was available. This should add some number of bits
+ * evenly divisible by code_length to the buffer
+ */
+static int usb_remote_poll(void *data, struct lirc_buffer *buf)
+{
+ int ret;
+ struct igorplug *ir = (struct igorplug *)data;
+
+ if (!ir->usbdev) /* Has the device been removed? */
+ return -ENODEV;
+
+ memset(ir->buf_in, 0, ir->len_in);
+
+ ret = usb_control_msg(
+ ir->usbdev, usb_rcvctrlpipe(ir->usbdev, 0),
+ GET_INFRACODE, USB_TYPE_VENDOR|USB_DIR_IN,
+ 0/* offset */, /*unused*/0,
+ ir->buf_in, ir->len_in,
+ /*timeout*/HZ * USB_CTRL_GET_TIMEOUT);
+ if (ret > 0) {
+ lirc_t code, timediff;
+ struct timeval now;
+
+ /* ACK packet has 1 byte --> ignore */
+ if (ret < DEVICE_HEADERLEN)
+ return -ENODATA;
+
+ dprintk(": Got %d bytes. Header: %02x %02x %02x\n",
+ ret, ir->buf_in[0], ir->buf_in[1], ir->buf_in[2]);
+
+ do_gettimeofday(&now);
+ timediff = now.tv_sec - ir->last_time.tv_sec;
+ if (timediff + 1 > PULSE_MASK / 1000000)
+ timediff = PULSE_MASK;
+ else {
+ timediff *= 1000000;
+ timediff += now.tv_usec - ir->last_time.tv_usec;
+ }
+ ir->last_time.tv_sec = now.tv_sec;
+ ir->last_time.tv_usec = now.tv_usec;
+
+ /* create leading gap */
+ code = timediff;
+ lirc_buffer_write(buf, (unsigned char *)&code);
+ ir->in_space = 1; /* next comes a pulse */
+
+ if (ir->buf_in[2] == 0)
+ send_fragment(ir, buf, DEVICE_HEADERLEN, ret);
+ else {
+ printk(KERN_WARNING DRIVER_NAME
+ "[%d]: Device buffer overrun.\n", ir->devnum);
+ /* HHHNNNNNNNNNNNOOOOOOOO H = header
+ <---[2]---> N = newer
+ <---------ret--------> O = older */
+ ir->buf_in[2] %= ret - DEVICE_HEADERLEN; /* sanitize */
+ /* keep even-ness to not desync pulse/pause */
+ send_fragment(ir, buf, DEVICE_HEADERLEN +
+ ir->buf_in[2] - (ir->buf_in[2] & 1),
+ ret);
+ send_fragment(ir, buf, DEVICE_HEADERLEN,
+ DEVICE_HEADERLEN + ir->buf_in[2]);
+ }
+
+ ret = usb_control_msg(
+ ir->usbdev, usb_rcvctrlpipe(ir->usbdev, 0),
+ SET_INFRABUFFER_EMPTY, USB_TYPE_VENDOR|USB_DIR_IN,
+ /*unused*/0, /*unused*/0,
+ /*dummy*/ir->buf_in, /*dummy*/ir->len_in,
+ /*timeout*/HZ * USB_CTRL_GET_TIMEOUT);
+ if (ret < 0)
+ printk(KERN_WARNING DRIVER_NAME
+ "[%d]: SET_INFRABUFFER_EMPTY: error %d\n",
+ ir->devnum, ret);
+ return 0;
+ } else
+ printk(KERN_WARNING DRIVER_NAME
+ "[%d]: GET_INFRACODE: error %d\n",
+ ir->devnum, ret);
+
+ return -ENODATA;
+}
+
+
+
+#if defined(KERNEL_2_5)
+static int usb_remote_probe(struct usb_interface *intf,
+ const struct usb_device_id *id)
+{
+ struct usb_device *dev = NULL;
+ struct usb_host_interface *idesc = NULL;
+ struct usb_host_endpoint *ep_ctl2;
+#else
+static void *usb_remote_probe(struct usb_device *dev, unsigned int ifnum,
+ const struct usb_device_id *id)
+{
+ struct usb_interface *intf;
+ struct usb_interface_descriptor *idesc;
+ struct usb_endpoint_descriptor *ep_ctl2;
+#endif
+ struct igorplug *ir = NULL;
+ struct lirc_driver *driver = NULL;
+ int devnum, pipe, maxp;
+ int minor = 0;
+ char buf[63], name[128] = "";
+ int mem_failure = 0;
+ int ret;
+
+ dprintk(": usb probe called.\n");
+
+#if defined(KERNEL_2_5)
+ dev = interface_to_usbdev(intf);
+
+# if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 5)
+ idesc = &intf->altsetting[intf->act_altsetting]; /* in 2.6.4 */
+# else
+ idesc = intf->cur_altsetting; /* in 2.6.6 */
+# endif
+
+ if (idesc->desc.bNumEndpoints != 1)
+ return -ENODEV;
+ ep_ctl2 = idesc->endpoint;
+ if (((ep_ctl2->desc.bEndpointAddress & USB_ENDPOINT_DIR_MASK)
+ != USB_DIR_IN)
+ || (ep_ctl2->desc.bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)
+ != USB_ENDPOINT_XFER_CONTROL)
+ return -ENODEV;
+ pipe = usb_rcvctrlpipe(dev, ep_ctl2->desc.bEndpointAddress);
+#else
+ intf = &dev->actconfig->interface[ifnum];
+ idesc = &intf->altsetting[intf->act_altsetting];
+ if (idesc->bNumEndpoints != 1)
+ return NULL;
+ ep_ctl2 = idesc->endpoint;
+ if (((ep_ctl2->bEndpointAddress & USB_ENDPOINT_DIR_MASK)
+ != USB_DIR_IN)
+ || (ep_ctl2->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)
+ != USB_ENDPOINT_XFER_CONTROL)
+ return NULL;
+ pipe = usb_rcvctrlpipe(dev, ep_ctl2->bEndpointAddress);
+#endif
+ devnum = dev->devnum;
+ maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe));
+
+ dprintk(DRIVER_NAME "[%d]: bytes_in_key=%d maxp=%d\n",
+ devnum, CODE_LENGTH, maxp);
+
+
+ mem_failure = 0;
+ ir = kzalloc(sizeof(struct igorplug), GFP_KERNEL);
+ if (!ir) {
+ mem_failure = 1;
+ goto mem_failure_switch;
+ }
+
+ driver = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL);
+ if (!driver) {
+ mem_failure = 2;
+ goto mem_failure_switch;
+ }
+
+#if defined(KERNEL_2_5)
+ ir->buf_in = usb_alloc_coherent(dev,
+ DEVICE_BUFLEN+DEVICE_HEADERLEN,
+ GFP_ATOMIC, &ir->dma_in);
+#else
+ ir->buf_in = kmalloc(DEVICE_BUFLEN+DEVICE_HEADERLEN,
+ GFP_KERNEL);
+#endif
+ if (!ir->buf_in) {
+ mem_failure = 3;
+ goto mem_failure_switch;
+ }
+
+ strcpy(driver->name, DRIVER_NAME " ");
+ driver->minor = -1;
+ driver->code_length = CODE_LENGTH * 8; /* in bits */
+ driver->features = LIRC_CAN_REC_MODE2;
+ driver->data = ir;
+ driver->buffer_size = DEVICE_BUFLEN + ADDITIONAL_LIRC_BYTES;
+ driver->set_use_inc = &set_use_inc;
+ driver->set_use_dec = &set_use_dec;
+ driver->sample_rate = sample_rate; /* per second */
+ driver->add_to_buf = &usb_remote_poll;
+#ifdef LIRC_HAVE_SYSFS
+ driver->dev = &intf->dev;
+#endif
+ driver->owner = THIS_MODULE;
+
+ minor = lirc_register_driver(driver);
+ if (minor < 0)
+ mem_failure = 9;
+
+mem_failure_switch:
+
+ switch (mem_failure) {
+ case 9:
+#if defined(KERNEL_2_5)
+ usb_free_coherent(dev, DEVICE_BUFLEN+DEVICE_HEADERLEN,
+ ir->buf_in, ir->dma_in);
+#else
+ kfree(ir->buf_in);
+#endif
+ case 3:
+ kfree(driver);
+ case 2:
+ kfree(ir);
+ case 1:
+ printk(KERN_ERR DRIVER_NAME "[%d]: out of memory (code=%d)\n",
+ devnum, mem_failure);
+#if defined(KERNEL_2_5)
+ return -ENOMEM;
+#else
+ return NULL;
+#endif
+ }
+
+ driver->minor = minor;
+ ir->d = driver;
+ ir->devnum = devnum;
+ ir->usbdev = dev;
+ ir->len_in = DEVICE_BUFLEN+DEVICE_HEADERLEN;
+ ir->in_space = 1; /* First mode2 event is a space. */
+ do_gettimeofday(&ir->last_time);
+
+ if (dev->descriptor.iManufacturer
+ && usb_string(dev, dev->descriptor.iManufacturer,
+ buf, sizeof(buf)) > 0)
+ strlcpy(name, buf, sizeof(name));
+ if (dev->descriptor.iProduct
+ && usb_string(dev, dev->descriptor.iProduct, buf, sizeof(buf)) > 0)
+ snprintf(name + strlen(name), sizeof(name) - strlen(name),
+ " %s", buf);
+ printk(KERN_INFO DRIVER_NAME "[%d]: %s on usb%d:%d\n", devnum, name,
+ dev->bus->busnum, devnum);
+
+ /* clear device buffer */
+ ret = usb_control_msg(ir->usbdev, usb_rcvctrlpipe(ir->usbdev, 0),
+ SET_INFRABUFFER_EMPTY, USB_TYPE_VENDOR|USB_DIR_IN,
+ /*unused*/0, /*unused*/0,
+ /*dummy*/ir->buf_in, /*dummy*/ir->len_in,
+ /*timeout*/HZ * USB_CTRL_GET_TIMEOUT);
+ if (ret < 0)
+ printk(KERN_WARNING DRIVER_NAME
+ "[%d]: SET_INFRABUFFER_EMPTY: error %d\n",
+ devnum, ret);
+
+#if defined(KERNEL_2_5)
+ usb_set_intfdata(intf, ir);
+ return 0;
+#else
+ return ir;
+#endif
+}
+
+
+#if defined(KERNEL_2_5)
+static void usb_remote_disconnect(struct usb_interface *intf)
+{
+ struct usb_device *dev = interface_to_usbdev(intf);
+ struct igorplug *ir = usb_get_intfdata(intf);
+#else
+static void usb_remote_disconnect(struct usb_device *dev, void *ptr)
+{
+ struct igorplug *ir = ptr;
+#endif
+
+ if (!ir || !ir->d)
+ return;
+
+ printk(KERN_INFO DRIVER_NAME
+ "[%d]: usb remote disconnected\n", ir->devnum);
+
+ lirc_unregister_driver(ir->d->minor);
+
+ lirc_buffer_free(ir->d->rbuf);
+ kfree(ir->d->rbuf);
+ kfree(ir->d);
+
+
+#if defined(KERNEL_2_5)
+ usb_free_coherent(dev, ir->len_in, ir->buf_in, ir->dma_in);
+#else
+ kfree(ir->buf_in);
+#endif
+
+ kfree(ir);
+}
+
+static struct usb_device_id usb_remote_id_table [] = {
+ /* Igor Plug USB (Atmel's Manufact. ID) */
+ { USB_DEVICE(0x03eb, 0x0002) },
+ /* Fit PC2 Infrared Adapter */
+ { USB_DEVICE(0x03eb, 0x21fe) },
+
+ /* Terminating entry */
+ { }
+};
+
+static struct usb_driver usb_remote_driver = {
+ LIRC_THIS_MODULE(.owner = THIS_MODULE)
+ .name = DRIVER_NAME,
+ .probe = usb_remote_probe,
+ .disconnect = usb_remote_disconnect,
+ .id_table = usb_remote_id_table
+};
+
+static int __init usb_remote_init(void)
+{
+ int i;
+
+ printk(KERN_INFO DRIVER_NAME ": " DRIVER_DESC " v" DRIVER_VERSION "\n");
+ printk(KERN_INFO DRIVER_NAME ": " DRIVER_AUTHOR "\n");
+ dprintk(": debug mode enabled\n");
+
+ i = usb_register(&usb_remote_driver);
+ if (i < 0) {
+ printk(KERN_ERR DRIVER_NAME
+ ": usb register failed, result = %d\n", i);
+ return -ENODEV;
+ }
+
+ return 0;
+}
+
+static void __exit usb_remote_exit(void)
+{
+ usb_deregister(&usb_remote_driver);
+}
+
+module_init(usb_remote_init);
+module_exit(usb_remote_exit);
+
+#if defined(KERNEL_2_5)
+#include <linux/vermagic.h>
+MODULE_INFO(vermagic, VERMAGIC_STRING);
+#endif
+
+MODULE_DESCRIPTION(DRIVER_DESC);
+MODULE_AUTHOR(DRIVER_AUTHOR);
+MODULE_LICENSE("GPL");
+MODULE_DEVICE_TABLE(usb, usb_remote_id_table);
+
+module_param(sample_rate, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(sample_rate, "Sampling rate in Hz (default: 100)");
+
+EXPORT_NO_SYMBOLS;
diff --git a/ubuntu/lirc/lirc_imon/Makefile b/ubuntu/lirc/lirc_imon/Makefile
new file mode 100644
index 00000000000..f4386f7d908
--- /dev/null
+++ b/ubuntu/lirc/lirc_imon/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_IMON) += lirc_imon.o
diff --git a/ubuntu/lirc/lirc_imon/lirc_imon.c b/ubuntu/lirc/lirc_imon/lirc_imon.c
new file mode 100644
index 00000000000..901c4388f8d
--- /dev/null
+++ b/ubuntu/lirc/lirc_imon/lirc_imon.c
@@ -0,0 +1,2368 @@
+/*
+ * lirc_imon.c: LIRC/VFD/LCD driver for SoundGraph iMON IR/VFD/LCD
+ * including the iMON PAD model
+ *
+ * $Id: lirc_imon.c,v 1.111 2009/09/11 04:56:18 jarodwilson Exp $
+ *
+ * Copyright(C) 2004 Venky Raju(dev@venky.ws)
+ *
+ * lirc_imon is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+#include <linux/version.h>
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 0)
+#error "*** Sorry, this driver requires a 2.6 kernel"
+#endif
+
+#include <linux/errno.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
+#include <asm/uaccess.h>
+#else
+#include <linux/uaccess.h>
+#endif
+#include <linux/usb.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/usb/input.h>
+#else
+#include <linux/input.h>
+#endif
+#include <linux/time.h>
+#include <linux/timer.h>
+
+#include "../kcompat.h"
+#include "../lirc.h"
+#include "../lirc_dev/lirc_dev.h"
+
+
+#define MOD_AUTHOR "Venky Raju <dev@venky.ws>"
+#define MOD_DESC "Driver for SoundGraph iMON MultiMedia IR/Display"
+#define MOD_NAME "lirc_imon"
+#define MOD_VERSION "0.6"
+
+#define DISPLAY_MINOR_BASE 144
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15)
+#define DEVFS_MODE (S_IFCHR | S_IRUSR | S_IWUSR | \
+ S_IRGRP | S_IWGRP | S_IROTH)
+#endif
+#define DEVICE_NAME LIRC_DEVFS_PREFIX "lcd%d"
+
+#define BUF_CHUNK_SIZE 4
+#define BUF_SIZE 128
+
+#define BIT_DURATION 250 /* each bit received is 250us */
+
+#define IMON_CLOCK_ENABLE_PACKETS 2
+
+#define dprintk(fmt, args...) \
+ do { \
+ if (debug) \
+ printk(KERN_INFO MOD_NAME ": " fmt, ## args); \
+ } while (0)
+
+/*** P R O T O T Y P E S ***/
+
+/* USB Callback prototypes */
+static int imon_probe(struct usb_interface *interface,
+ const struct usb_device_id *id);
+static void imon_disconnect(struct usb_interface *interface);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static void usb_rx_callback_intf0(struct urb *urb, struct pt_regs *regs);
+static void usb_rx_callback_intf1(struct urb *urb, struct pt_regs *regs);
+static void usb_tx_callback(struct urb *urb, struct pt_regs *regs);
+#else
+static void usb_rx_callback_intf0(struct urb *urb);
+static void usb_rx_callback_intf1(struct urb *urb);
+static void usb_tx_callback(struct urb *urb);
+#endif
+
+/* suspend/resume support */
+static int imon_resume(struct usb_interface *intf);
+static int imon_suspend(struct usb_interface *intf, pm_message_t message);
+
+/* Display file_operations function prototypes */
+static int display_open(struct inode *inode, struct file *file);
+static int display_close(struct inode *inode, struct file *file);
+
+/* VFD write operation */
+static ssize_t vfd_write(struct file *file, const char *buf,
+ size_t n_bytes, loff_t *pos);
+
+/* LCD file_operations override function prototypes */
+static ssize_t lcd_write(struct file *file, const char *buf,
+ size_t n_bytes, loff_t *pos);
+
+/* LIRC driver function prototypes */
+static int ir_open(void *data);
+static void ir_close(void *data);
+
+/* Driver init/exit prototypes */
+static int __init imon_init(void);
+static void __exit imon_exit(void);
+
+/*** G L O B A L S ***/
+
+struct imon_context {
+ struct usb_device *usbdev_intf0;
+ /* Newer devices have two interfaces */
+ struct usb_device *usbdev_intf1;
+ int display_supported; /* not all controllers do */
+ int display_isopen; /* display port has been opened */
+ int ir_isopen; /* IR port open */
+ int ir_isassociating; /* IR port open for association */
+ int dev_present_intf0; /* USB device presence, interface 0 */
+ int dev_present_intf1; /* USB device presence, interface 1 */
+ struct mutex lock; /* to lock this object */
+ wait_queue_head_t remove_ok; /* For unexpected USB disconnects */
+
+ int vfd_proto_6p; /* some VFD require a 6th packet */
+ int ir_onboard_decode; /* IR signals decoded onboard */
+
+ struct lirc_driver *driver;
+ struct usb_endpoint_descriptor *rx_endpoint_intf0;
+ struct usb_endpoint_descriptor *rx_endpoint_intf1;
+ struct usb_endpoint_descriptor *tx_endpoint;
+ struct urb *rx_urb_intf0;
+ struct urb *rx_urb_intf1;
+ struct urb *tx_urb;
+ int tx_control;
+ unsigned char usb_rx_buf[8];
+ unsigned char usb_tx_buf[8];
+
+ struct rx_data {
+ int count; /* length of 0 or 1 sequence */
+ int prev_bit; /* logic level of sequence */
+ int initial_space; /* initial space flag */
+ } rx;
+
+ struct tx_t {
+ unsigned char data_buf[35]; /* user data buffer */
+ struct completion finished; /* wait for write to finish */
+ atomic_t busy; /* write in progress */
+ int status; /* status of tx completion */
+ } tx;
+
+ int ffdc_dev; /* is this the overused ffdc ID? */
+ int ir_protocol; /* iMON or MCE (RC6) IR protocol? */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+ struct input_dev *mouse; /* input device for iMON PAD remote */
+ struct input_dev *touch; /* input device for touchscreen */
+#endif
+ int display_type; /* store the display type */
+ int pad_mouse; /* toggle kbd(0)/mouse(1) mode */
+ int touch_x; /* x coordinate on touchscreen */
+ int touch_y; /* y coordinate on touchscreen */
+ char name_mouse[128];
+ char phys_mouse[64];
+ char name_touch[128];
+ char phys_touch[64];
+ struct timer_list timer;
+};
+
+#define TOUCH_TIMEOUT (HZ/30)
+
+/* display file operations. Nb: lcd_write will be subbed in as needed later */
+static struct file_operations display_fops = {
+ .owner = THIS_MODULE,
+ .open = &display_open,
+ .write = &vfd_write,
+ .release = &display_close
+};
+
+enum {
+ IMON_DISPLAY_TYPE_AUTO = 0,
+ IMON_DISPLAY_TYPE_VFD = 1,
+ IMON_DISPLAY_TYPE_LCD = 2,
+ IMON_DISPLAY_TYPE_VGA = 3,
+ IMON_DISPLAY_TYPE_NONE = 4,
+};
+
+enum {
+ IMON_IR_PROTOCOL_IMON = 0,
+ IMON_IR_PROTOCOL_MCE = 1,
+ IMON_IR_PROTOCOL_IMON_NOPAD = 2,
+};
+/*
+ * USB Device ID for iMON USB Control Boards
+ *
+ * The Windows drivers contain 6 different inf files, more or less one for
+ * each new device until the 0x0034-0x0046 devices, which all use the same
+ * driver. Some of the devices in the 34-46 range haven't been definitively
+ * identified yet. Early devices have either a TriGem Computer, Inc. or a
+ * Samsung vendor ID (0x0aa8 and 0x04e8 respectively), while all later
+ * devices use the SoundGraph vendor ID (0x15c2).
+ */
+static struct usb_device_id imon_usb_id_table[] = {
+ /* TriGem iMON (IR only) -- TG_iMON.inf */
+ { USB_DEVICE(0x0aa8, 0x8001) },
+
+ /* SoundGraph iMON (IR only) -- sg_imon.inf */
+ { USB_DEVICE(0x04e8, 0xff30) },
+
+ /* SoundGraph iMON VFD (IR & VFD) -- iMON_VFD.inf */
+ { USB_DEVICE(0x0aa8, 0xffda) },
+
+ /* SoundGraph iMON SS (IR & VFD) -- iMON_SS.inf */
+ { USB_DEVICE(0x15c2, 0xffda) },
+
+ /*
+ * Several devices with this same device ID, all use iMON_PAD.inf
+ * SoundGraph iMON PAD (IR & VFD)
+ * SoundGraph iMON PAD (IR & LCD)
+ * SoundGraph iMON Knob (IR only)
+ */
+ /* SoundGraph iMON PAD (IR & VFD/LCD), iMON Knob */
+ { USB_DEVICE(0x15c2, 0xffdc) },
+
+ /*
+ * Newer devices, all driven by the latest iMON Windows driver, full
+ * list of device IDs extracted via 'strings Setup/data1.hdr |grep 15c2'
+ * Need user input to fill in details on unknown devices.
+ */
+ /* SoundGraph iMON OEM Touch LCD (IR & 7" VGA LCD) */
+ { USB_DEVICE(0x15c2, 0x0034) },
+ /* SoundGraph iMON OEM Touch LCD (IR & 4.3" VGA LCD) */
+ { USB_DEVICE(0x15c2, 0x0035) },
+ /* SoundGraph iMON OEM VFD (IR & VFD) */
+ { USB_DEVICE(0x15c2, 0x0036) },
+ /* device specifics unknown */
+ { USB_DEVICE(0x15c2, 0x0037) },
+ /* SoundGraph iMON OEM LCD (IR & LCD) */
+ { USB_DEVICE(0x15c2, 0x0038) },
+ /* device specifics unknown */
+ { USB_DEVICE(0x15c2, 0x0039) },
+ /* device specifics unknown */
+ { USB_DEVICE(0x15c2, 0x003a) },
+ /* device specifics unknown */
+ { USB_DEVICE(0x15c2, 0x003b) },
+ /* SoundGraph iMON OEM Inside (IR only) */
+ { USB_DEVICE(0x15c2, 0x003c) },
+ /* device specifics unknown */
+ { USB_DEVICE(0x15c2, 0x003d) },
+ /* device specifics unknown */
+ { USB_DEVICE(0x15c2, 0x003e) },
+ /* device specifics unknown */
+ { USB_DEVICE(0x15c2, 0x003f) },
+ /* device specifics unknown */
+ { USB_DEVICE(0x15c2, 0x0040) },
+ /* SoundGraph iMON MINI (IR only) */
+ { USB_DEVICE(0x15c2, 0x0041) },
+ /* Antec Veris Multimedia Station EZ External (IR only) */
+ { USB_DEVICE(0x15c2, 0x0042) },
+ /* Antec Veris Multimedia Station Basic Internal (IR only) */
+ { USB_DEVICE(0x15c2, 0x0043) },
+ /* Antec Veris Multimedia Station Elite (IR & VFD) */
+ { USB_DEVICE(0x15c2, 0x0044) },
+ /* Antec Veris Multimedia Station Premiere (IR & LCD) */
+ { USB_DEVICE(0x15c2, 0x0045) },
+ /* device specifics unknown */
+ { USB_DEVICE(0x15c2, 0x0046) },
+ {}
+};
+
+/* Some iMON VFD models requires a 6th packet for VFD writes */
+static struct usb_device_id vfd_proto_6p_list[] = {
+ { USB_DEVICE(0x15c2, 0xffda) },
+ { USB_DEVICE(0x15c2, 0xffdc) },
+ { USB_DEVICE(0x15c2, 0x0036) },
+ { USB_DEVICE(0x15c2, 0x0044) },
+ {}
+};
+
+/* newer iMON models use control endpoints */
+static struct usb_device_id ctl_ep_device_list[] = {
+ { USB_DEVICE(0x15c2, 0x0034) },
+ { USB_DEVICE(0x15c2, 0x0035) },
+ { USB_DEVICE(0x15c2, 0x0036) },
+ { USB_DEVICE(0x15c2, 0x0037) },
+ { USB_DEVICE(0x15c2, 0x0038) },
+ { USB_DEVICE(0x15c2, 0x0039) },
+ { USB_DEVICE(0x15c2, 0x003a) },
+ { USB_DEVICE(0x15c2, 0x003b) },
+ { USB_DEVICE(0x15c2, 0x003c) },
+ { USB_DEVICE(0x15c2, 0x003d) },
+ { USB_DEVICE(0x15c2, 0x003e) },
+ { USB_DEVICE(0x15c2, 0x003f) },
+ { USB_DEVICE(0x15c2, 0x0040) },
+ { USB_DEVICE(0x15c2, 0x0041) },
+ { USB_DEVICE(0x15c2, 0x0042) },
+ { USB_DEVICE(0x15c2, 0x0043) },
+ { USB_DEVICE(0x15c2, 0x0044) },
+ { USB_DEVICE(0x15c2, 0x0045) },
+ { USB_DEVICE(0x15c2, 0x0046) },
+ {}
+};
+
+/* iMON LCD models use a different write op */
+static struct usb_device_id lcd_device_list[] = {
+ { USB_DEVICE(0x15c2, 0xffdc) },
+ { USB_DEVICE(0x15c2, 0x0038) },
+ { USB_DEVICE(0x15c2, 0x0045) },
+ {}
+};
+
+/* iMON devices with front panel buttons or touchscreen need a larger buffer */
+static struct usb_device_id large_buffer_list[] = {
+ { USB_DEVICE(0x15c2, 0x0034) },
+ { USB_DEVICE(0x15c2, 0x0035) },
+ { USB_DEVICE(0x15c2, 0x0038) },
+ { USB_DEVICE(0x15c2, 0x0045) },
+};
+
+/* Newer iMON models decode the signal onboard */
+static struct usb_device_id ir_onboard_decode_list[] = {
+ { USB_DEVICE(0x15c2, 0xffdc) },
+ { USB_DEVICE(0x15c2, 0x0034) },
+ { USB_DEVICE(0x15c2, 0x0035) },
+ { USB_DEVICE(0x15c2, 0x0036) },
+ { USB_DEVICE(0x15c2, 0x0037) },
+ { USB_DEVICE(0x15c2, 0x0038) },
+ { USB_DEVICE(0x15c2, 0x0039) },
+ { USB_DEVICE(0x15c2, 0x003a) },
+ { USB_DEVICE(0x15c2, 0x003b) },
+ { USB_DEVICE(0x15c2, 0x003c) },
+ { USB_DEVICE(0x15c2, 0x003d) },
+ { USB_DEVICE(0x15c2, 0x003e) },
+ { USB_DEVICE(0x15c2, 0x003f) },
+ { USB_DEVICE(0x15c2, 0x0040) },
+ { USB_DEVICE(0x15c2, 0x0041) },
+ { USB_DEVICE(0x15c2, 0x0042) },
+ { USB_DEVICE(0x15c2, 0x0043) },
+ { USB_DEVICE(0x15c2, 0x0044) },
+ { USB_DEVICE(0x15c2, 0x0045) },
+ { USB_DEVICE(0x15c2, 0x0046) },
+ {}
+};
+
+/* Some iMON devices have no lcd/vfd, don't set one up */
+static struct usb_device_id ir_only_list[] = {
+ { USB_DEVICE(0x0aa8, 0x8001) },
+ { USB_DEVICE(0x04e8, 0xff30) },
+ /* the first imon lcd and the knob share this device id. :\ */
+ /*{ USB_DEVICE(0x15c2, 0xffdc) },*/
+ { USB_DEVICE(0x15c2, 0x003c) },
+ { USB_DEVICE(0x15c2, 0x0041) },
+ { USB_DEVICE(0x15c2, 0x0042) },
+ { USB_DEVICE(0x15c2, 0x0043) },
+ {}
+};
+
+/* iMON devices with VGA touchscreens */
+static struct usb_device_id imon_touchscreen_list[] = {
+ { USB_DEVICE(0x15c2, 0x0034) },
+ { USB_DEVICE(0x15c2, 0x0035) },
+ {}
+};
+
+/* USB Device data */
+static struct usb_driver imon_driver = {
+ LIRC_THIS_MODULE(.owner = THIS_MODULE)
+ .name = MOD_NAME,
+ .probe = imon_probe,
+ .disconnect = imon_disconnect,
+ .suspend = imon_suspend,
+ .resume = imon_resume,
+ .id_table = imon_usb_id_table,
+};
+
+static struct usb_class_driver imon_class = {
+ .name = DEVICE_NAME,
+ .fops = &display_fops,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15)
+ .mode = DEVFS_MODE,
+#endif
+ .minor_base = DISPLAY_MINOR_BASE,
+};
+
+/* to prevent races between open() and disconnect(), probing, etc */
+static DEFINE_MUTEX(driver_lock);
+
+static int debug;
+
+/* lcd, vfd, vga or none? should be auto-detected, but can be overridden... */
+static int display_type;
+
+/* IR protocol: native iMON, Windows MCE (RC-6), or iMON w/o PAD stabilize */
+static int ir_protocol;
+
+/*
+ * In certain use cases, mouse mode isn't really helpful, and could actually
+ * cause confusion, so allow disabling it when the IR device is open.
+ */
+static int nomouse;
+
+/* threshold at which a pad push registers as an arrow key in kbd mode */
+static int pad_thresh;
+
+
+/*** M O D U L E C O D E ***/
+
+MODULE_AUTHOR(MOD_AUTHOR);
+MODULE_DESCRIPTION(MOD_DESC);
+MODULE_VERSION(MOD_VERSION);
+MODULE_LICENSE("GPL");
+MODULE_DEVICE_TABLE(usb, imon_usb_id_table);
+module_param(debug, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Debug messages: 0=no, 1=yes(default: no)");
+module_param(display_type, int, S_IRUGO);
+MODULE_PARM_DESC(display_type, "Type of attached display. 0=autodetect, "
+ "1=vfd, 2=lcd, 3=vga, 4=none (default: autodetect)");
+module_param(ir_protocol, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(ir_protocol, "Which IR protocol to use. 0=native iMON, "
+ "1=Windows Media Center Ed. (RC-6), 2=iMON w/o PAD stabilize "
+ "(default: native iMON)");
+module_param(nomouse, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(nomouse, "Disable mouse input device mode when IR device is "
+ "open. 0=don't disable, 1=disable. (default: don't disable)");
+module_param(pad_thresh, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(pad_thresh, "Threshold at which a pad push registers as an "
+ "arrow key in kbd mode (default: 28)");
+
+static void free_imon_context(struct imon_context *context)
+{
+ usb_free_urb(context->tx_urb);
+ usb_free_urb(context->rx_urb_intf0);
+ usb_free_urb(context->rx_urb_intf1);
+ lirc_buffer_free(context->driver->rbuf);
+ kfree(context->driver->rbuf);
+ kfree(context->driver);
+ kfree(context);
+
+ dprintk("%s: iMON context freed\n", __func__);
+}
+
+static void deregister_from_lirc(struct imon_context *context)
+{
+ int retval;
+ int minor = context->driver->minor;
+
+ retval = lirc_unregister_driver(minor);
+ if (retval)
+ err("%s: unable to deregister from lirc(%d)",
+ __func__, retval);
+ else
+ printk(KERN_INFO MOD_NAME ": Deregistered iMON driver "
+ "(minor:%d)\n", minor);
+
+}
+
+/**
+ * Called when the Display device (e.g. /dev/lcd0)
+ * is opened by the application.
+ */
+static int display_open(struct inode *inode, struct file *file)
+{
+ struct usb_interface *interface;
+ struct imon_context *context = NULL;
+ int subminor;
+ int retval = 0;
+
+ /* prevent races with disconnect */
+ mutex_lock(&driver_lock);
+
+ subminor = iminor(inode);
+ interface = usb_find_interface(&imon_driver, subminor);
+ if (!interface) {
+ err("%s: could not find interface for minor %d",
+ __func__, subminor);
+ retval = -ENODEV;
+ goto exit;
+ }
+ context = usb_get_intfdata(interface);
+
+ if (!context) {
+ err("%s: no context found for minor %d",
+ __func__, subminor);
+ retval = -ENODEV;
+ goto exit;
+ }
+
+ mutex_lock(&context->lock);
+
+ if (!context->display_supported) {
+ err("%s: display not supported by device", __func__);
+ retval = -ENODEV;
+ } else if (context->display_isopen) {
+ err("%s: display port is already open", __func__);
+ retval = -EBUSY;
+ } else {
+ MOD_INC_USE_COUNT;
+ context->display_isopen = 1;
+ file->private_data = context;
+ printk(KERN_INFO "display port opened\n");
+ }
+
+ mutex_unlock(&context->lock);
+
+exit:
+ mutex_unlock(&driver_lock);
+ return retval;
+}
+
+/**
+ * Called when the display device (e.g. /dev/lcd0)
+ * is closed by the application.
+ */
+static int display_close(struct inode *inode, struct file *file)
+{
+ struct imon_context *context = NULL;
+ int retval = 0;
+
+ context = (struct imon_context *)file->private_data;
+
+ if (!context) {
+ err("%s: no context for device", __func__);
+ return -ENODEV;
+ }
+
+ mutex_lock(&context->lock);
+
+ if (!context->display_supported) {
+ err("%s: display not supported by device", __func__);
+ retval = -ENODEV;
+ } else if (!context->display_isopen) {
+ err("%s: display is not open", __func__);
+ retval = -EIO;
+ } else {
+ context->display_isopen = 0;
+ MOD_DEC_USE_COUNT;
+ printk(KERN_INFO "display port closed\n");
+ if (!context->dev_present_intf0 && !context->ir_isopen) {
+ /*
+ * Device disconnected before close and IR port is not
+ * open. If IR port is open, context will be deleted by
+ * ir_close.
+ */
+ mutex_unlock(&context->lock);
+ free_imon_context(context);
+ return retval;
+ }
+ }
+
+ mutex_unlock(&context->lock);
+ return retval;
+}
+
+/**
+ * Sends a packet to the device
+ */
+static int send_packet(struct imon_context *context)
+{
+ unsigned int pipe;
+ int interval = 0;
+ int retval = 0;
+ struct usb_ctrlrequest *control_req = NULL;
+
+ /* Check if we need to use control or interrupt urb */
+ if (!context->tx_control) {
+ pipe = usb_sndintpipe(context->usbdev_intf0,
+ context->tx_endpoint->bEndpointAddress);
+ interval = context->tx_endpoint->bInterval;
+
+ usb_fill_int_urb(context->tx_urb, context->usbdev_intf0, pipe,
+ context->usb_tx_buf,
+ sizeof(context->usb_tx_buf),
+ usb_tx_callback, context, interval);
+
+ context->tx_urb->actual_length = 0;
+ } else {
+ /* fill request into kmalloc'ed space: */
+ control_req = kmalloc(sizeof(struct usb_ctrlrequest),
+ GFP_KERNEL);
+ if (control_req == NULL)
+ return -ENOMEM;
+
+ /* setup packet is '21 09 0200 0001 0008' */
+ control_req->bRequestType = 0x21;
+ control_req->bRequest = 0x09;
+ control_req->wValue = cpu_to_le16(0x0200);
+ control_req->wIndex = cpu_to_le16(0x0001);
+ control_req->wLength = cpu_to_le16(0x0008);
+
+ /* control pipe is endpoint 0x00 */
+ pipe = usb_sndctrlpipe(context->usbdev_intf0, 0);
+
+ /* build the control urb */
+ usb_fill_control_urb(context->tx_urb, context->usbdev_intf0, pipe,
+ (unsigned char *)control_req,
+ context->usb_tx_buf,
+ sizeof(context->usb_tx_buf),
+ usb_tx_callback, context);
+ context->tx_urb->actual_length = 0;
+ }
+
+ init_completion(&context->tx.finished);
+ atomic_set(&(context->tx.busy), 1);
+
+ retval = usb_submit_urb(context->tx_urb, GFP_KERNEL);
+ if (retval) {
+ atomic_set(&(context->tx.busy), 0);
+ err("%s: error submitting urb(%d)", __func__, retval);
+ } else {
+ /* Wait for transmission to complete (or abort) */
+ mutex_unlock(&context->lock);
+ retval = wait_for_completion_interruptible(
+ &context->tx.finished);
+ if (retval)
+ err("%s: task interrupted", __func__);
+ mutex_lock(&context->lock);
+
+ retval = context->tx.status;
+ if (retval)
+ err("%s: packet tx failed (%d)", __func__, retval);
+ }
+
+ kfree(control_req);
+
+ return retval;
+}
+
+/**
+ * Sends an associate packet to the iMON 2.4G.
+ *
+ * This might not be such a good idea, since it has an id collision with
+ * some versions of the "IR & VFD" combo. The only way to determine if it
+ * is an RF version is to look at the product description string. (Which
+ * we currently do not fetch).
+ */
+static int send_associate_24g(struct imon_context *context)
+{
+ int retval;
+ const unsigned char packet[8] = { 0x01, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x20 };
+
+ if (!context) {
+ err("%s: no context for device", __func__);
+ return -ENODEV;
+ }
+
+ if (!context->dev_present_intf0) {
+ err("%s: no iMON device present", __func__);
+ return -ENODEV;
+ }
+
+ memcpy(context->usb_tx_buf, packet, sizeof(packet));
+ retval = send_packet(context);
+
+ return retval;
+}
+
+/**
+ * Sends packets to setup and show clock on iMON display
+ *
+ * Arguments: year - last 2 digits of year, month - 1..12,
+ * day - 1..31, dow - day of the week (0-Sun...6-Sat),
+ * hour - 0..23, minute - 0..59, second - 0..59
+ */
+static int send_set_imon_clock(struct imon_context *context,
+ unsigned int year, unsigned int month,
+ unsigned int day, unsigned int dow,
+ unsigned int hour, unsigned int minute,
+ unsigned int second)
+{
+ unsigned char clock_enable_pkt[IMON_CLOCK_ENABLE_PACKETS][8];
+ int retval = 0;
+ int i;
+
+ if (!context) {
+ err("%s: no context for device", __func__);
+ return -ENODEV;
+ }
+
+ switch(context->display_type) {
+ case IMON_DISPLAY_TYPE_LCD:
+ clock_enable_pkt[0][0] = 0x80;
+ clock_enable_pkt[0][1] = year;
+ clock_enable_pkt[0][2] = month-1;
+ clock_enable_pkt[0][3] = day;
+ clock_enable_pkt[0][4] = hour;
+ clock_enable_pkt[0][5] = minute;
+ clock_enable_pkt[0][6] = second;
+
+ clock_enable_pkt[1][0] = 0x80;
+ clock_enable_pkt[1][1] = 0;
+ clock_enable_pkt[1][2] = 0;
+ clock_enable_pkt[1][3] = 0;
+ clock_enable_pkt[1][4] = 0;
+ clock_enable_pkt[1][5] = 0;
+ clock_enable_pkt[1][6] = 0;
+
+ if (context->ffdc_dev) {
+ clock_enable_pkt[0][7] = 0x50;
+ clock_enable_pkt[1][7] = 0x51;
+ } else {
+ clock_enable_pkt[0][7] = 0x88;
+ clock_enable_pkt[1][7] = 0x8a;
+ }
+
+ break;
+
+ case IMON_DISPLAY_TYPE_VFD:
+ clock_enable_pkt[0][0] = year;
+ clock_enable_pkt[0][1] = month-1;
+ clock_enable_pkt[0][2] = day;
+ clock_enable_pkt[0][3] = dow;
+ clock_enable_pkt[0][4] = hour;
+ clock_enable_pkt[0][5] = minute;
+ clock_enable_pkt[0][6] = second;
+ clock_enable_pkt[0][7] = 0x40;
+
+ clock_enable_pkt[1][0] = 0;
+ clock_enable_pkt[1][1] = 0;
+ clock_enable_pkt[1][2] = 1;
+ clock_enable_pkt[1][3] = 0;
+ clock_enable_pkt[1][4] = 0;
+ clock_enable_pkt[1][5] = 0;
+ clock_enable_pkt[1][6] = 0;
+ clock_enable_pkt[1][7] = 0x42;
+
+ break;
+
+ default:
+ return -ENODEV;
+ }
+
+
+ for (i = 0; i < IMON_CLOCK_ENABLE_PACKETS; i++) {
+ memcpy(context->usb_tx_buf, clock_enable_pkt[i], 8);
+ retval = send_packet(context);
+ if (retval) {
+ err("%s: send_packet failed for packet %d",
+ __func__, i);
+ break;
+ }
+ }
+
+ return retval;
+
+}
+
+/**
+ * These are the sysfs functions to handle the association on the iMON 2.4G LT.
+ */
+static ssize_t show_associate_remote(struct device *d,
+ struct device_attribute *attr,
+ char *buf)
+{
+ struct imon_context *context = dev_get_drvdata(d);
+
+ if (!context)
+ return -ENODEV;
+
+ mutex_lock(&context->lock);
+ if (context->ir_isassociating) {
+ strcpy(buf, "associating\n");
+ } else if (context->ir_isopen) {
+ strcpy(buf, "open\n");
+ } else {
+ strcpy(buf, "closed\n");
+ }
+ printk(KERN_INFO "Visit http://www.lirc.org/html/imon-24g.html for "
+ "instructions on how to associate your iMON 2.4G DT/LT "
+ "remote\n");
+ mutex_unlock(&context->lock);
+ return strlen(buf);
+}
+
+static ssize_t store_associate_remote(struct device *d,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ struct imon_context *context;
+
+ context = dev_get_drvdata(d);
+
+ if (!context)
+ return -ENODEV;
+
+ mutex_lock(&context->lock);
+ if (!context->ir_isopen) {
+ mutex_unlock(&context->lock);
+ return -EINVAL;
+ }
+
+ if (context->ir_isopen) {
+ context->ir_isassociating = 1;
+ send_associate_24g(context);
+ }
+ mutex_unlock(&context->lock);
+
+ return count;
+}
+
+/**
+ * sysfs functions to control internal imon clock
+ */
+static ssize_t show_imon_clock(struct device *d,
+ struct device_attribute *attr, char *buf)
+{
+ struct imon_context *context = dev_get_drvdata(d);
+ size_t len;
+
+ if (!context)
+ return -ENODEV;
+
+ mutex_lock(&context->lock);
+
+ if (!context->display_supported) {
+ len = snprintf(buf, PAGE_SIZE, "Not supported.");
+ } else {
+ len = snprintf(buf, PAGE_SIZE,
+ "To set the clock on your iMON display:\n"
+ "# date \"+%%y %%m %%d %%w %%H %%M %%S\" > imon_clock\n"
+ "%s", context->display_isopen ?
+ "\nNOTE: imon device must be closed\n" : "");
+ }
+
+ mutex_unlock(&context->lock);
+
+ return len;
+}
+
+static ssize_t store_imon_clock(struct device *d,
+ struct device_attribute *attr,
+ const char *buf, size_t count)
+{
+ struct imon_context *context = dev_get_drvdata(d);
+ ssize_t retval;
+ unsigned int year, month, day, dow, hour, minute, second;
+
+ if (!context)
+ return -ENODEV;
+
+ mutex_lock(&context->lock);
+
+ if (!context->display_supported) {
+ retval = -ENODEV;
+ goto exit;
+ } else if (context->display_isopen) {
+ retval = -EBUSY;
+ goto exit;
+ }
+
+ if (sscanf(buf, "%u %u %u %u %u %u %u", &year, &month, &day, &dow,
+ &hour, &minute, &second) != 7) {
+ retval = -EINVAL;
+ goto exit;
+ }
+
+ if ((month < 1 || month > 12) ||
+ (day < 1 || day > 31) || (dow > 6) ||
+ (hour > 23) || (minute > 59) || (second > 59)) {
+ retval = -EINVAL;
+ goto exit;
+ }
+
+ retval = send_set_imon_clock(context, year, month, day, dow,
+ hour, minute, second);
+ if (retval)
+ goto exit;
+
+ retval = count;
+exit:
+ mutex_unlock(&context->lock);
+
+ return retval;
+}
+
+
+static DEVICE_ATTR(imon_clock, S_IWUSR | S_IRUGO, show_imon_clock,
+ store_imon_clock);
+
+static DEVICE_ATTR(associate_remote, S_IWUSR | S_IRUGO, show_associate_remote,
+ store_associate_remote);
+
+static struct attribute *imon_display_sysfs_entries[] = {
+ &dev_attr_imon_clock.attr,
+ NULL
+};
+
+static struct attribute_group imon_display_attribute_group = {
+ .attrs = imon_display_sysfs_entries
+};
+
+static struct attribute *imon_rf_sysfs_entries[] = {
+ &dev_attr_associate_remote.attr,
+ NULL
+};
+
+static struct attribute_group imon_rf_attribute_group = {
+ .attrs = imon_rf_sysfs_entries
+};
+
+/**
+ * Writes data to the VFD. The iMON VFD is 2x16 characters
+ * and requires data in 5 consecutive USB interrupt packets,
+ * each packet but the last carrying 7 bytes.
+ *
+ * I don't know if the VFD board supports features such as
+ * scrolling, clearing rows, blanking, etc. so at
+ * the caller must provide a full screen of data. If fewer
+ * than 32 bytes are provided spaces will be appended to
+ * generate a full screen.
+ */
+static ssize_t vfd_write(struct file *file, const char *buf,
+ size_t n_bytes, loff_t *pos)
+{
+ int i;
+ int offset;
+ int seq;
+ int retval = 0;
+ struct imon_context *context;
+ const unsigned char vfd_packet6[] = {
+ 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF };
+
+ context = (struct imon_context *)file->private_data;
+ if (!context) {
+ err("%s: no context for device", __func__);
+ return -ENODEV;
+ }
+
+ mutex_lock(&context->lock);
+
+ if (!context->dev_present_intf0) {
+ err("%s: no iMON device present", __func__);
+ retval = -ENODEV;
+ goto exit;
+ }
+
+ if (n_bytes <= 0 || n_bytes > 32) {
+ err("%s: invalid payload size", __func__);
+ retval = -EINVAL;
+ goto exit;
+ }
+
+ if (copy_from_user(context->tx.data_buf, buf, n_bytes)) {
+ retval = -EFAULT;
+ goto exit;
+ }
+
+ /* Pad with spaces */
+ for (i = n_bytes; i < 32; ++i)
+ context->tx.data_buf[i] = ' ';
+
+ for (i = 32; i < 35; ++i)
+ context->tx.data_buf[i] = 0xFF;
+
+ offset = 0;
+ seq = 0;
+
+ do {
+ memcpy(context->usb_tx_buf, context->tx.data_buf + offset, 7);
+ context->usb_tx_buf[7] = (unsigned char) seq;
+
+ retval = send_packet(context);
+ if (retval) {
+ err("%s: send packet failed for packet #%d",
+ __func__, seq/2);
+ goto exit;
+ } else {
+ seq += 2;
+ offset += 7;
+ }
+
+ } while (offset < 35);
+
+ if (context->vfd_proto_6p) {
+ /* Send packet #6 */
+ memcpy(context->usb_tx_buf, &vfd_packet6, sizeof(vfd_packet6));
+ context->usb_tx_buf[7] = (unsigned char) seq;
+ retval = send_packet(context);
+ if (retval)
+ err("%s: send packet failed for packet #%d",
+ __func__, seq/2);
+ }
+
+exit:
+ mutex_unlock(&context->lock);
+
+ return (!retval) ? n_bytes : retval;
+}
+
+/**
+ * Writes data to the LCD. The iMON OEM LCD screen excepts 8-byte
+ * packets. We accept data as 16 hexadecimal digits, followed by a
+ * newline (to make it easy to drive the device from a command-line
+ * -- even though the actual binary data is a bit complicated).
+ *
+ * The device itself is not a "traditional" text-mode display. It's
+ * actually a 16x96 pixel bitmap display. That means if you want to
+ * display text, you've got to have your own "font" and translate the
+ * text into bitmaps for display. This is really flexible (you can
+ * display whatever diacritics you need, and so on), but it's also
+ * a lot more complicated than most LCDs...
+ */
+static ssize_t lcd_write(struct file *file, const char *buf,
+ size_t n_bytes, loff_t *pos)
+{
+ int retval = 0;
+ struct imon_context *context;
+
+ context = (struct imon_context *)file->private_data;
+ if (!context) {
+ err("%s: no context for device", __func__);
+ return -ENODEV;
+ }
+
+ mutex_lock(&context->lock);
+
+ if (!context->display_supported) {
+ err("%s: no iMON display present", __func__);
+ retval = -ENODEV;
+ goto exit;
+ }
+
+ if (n_bytes != 8) {
+ err("%s: invalid payload size: %d (expecting 8)",
+ __func__, (int) n_bytes);
+ retval = -EINVAL;
+ goto exit;
+ }
+
+ if (copy_from_user(context->usb_tx_buf, buf, 8)) {
+ retval = -EFAULT;
+ goto exit;
+ }
+
+ retval = send_packet(context);
+ if (retval) {
+ err("%s: send packet failed!", __func__);
+ goto exit;
+ } else {
+ dprintk("%s: write %d bytes to LCD\n", __func__, (int) n_bytes);
+ }
+exit:
+ mutex_unlock(&context->lock);
+ return (!retval) ? n_bytes : retval;
+}
+
+/**
+ * Callback function for USB core API: transmit data
+ */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static void usb_tx_callback(struct urb *urb, struct pt_regs *regs)
+#else
+static void usb_tx_callback(struct urb *urb)
+#endif
+{
+ struct imon_context *context;
+
+ if (!urb)
+ return;
+ context = (struct imon_context *)urb->context;
+ if (!context)
+ return;
+
+ context->tx.status = urb->status;
+
+ /* notify waiters that write has finished */
+ atomic_set(&context->tx.busy, 0);
+ complete(&context->tx.finished);
+
+ return;
+}
+
+/**
+ * iMON IR receivers support two different signal sets -- those used by
+ * the iMON remotes, and those used by the Windows MCE remotes (which is
+ * really just RC-6), but only one or the other at a time, as the signals
+ * are decoded onboard the receiver.
+ */
+static void imon_set_ir_protocol(struct imon_context *context)
+{
+ int retval;
+ unsigned char ir_proto_packet[] =
+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86 };
+
+ switch (ir_protocol) {
+ case IMON_IR_PROTOCOL_MCE:
+ /* MCE proto not supported on devices without tx control */
+ if (!context->tx_control) {
+ printk(KERN_INFO "%s: MCE IR protocol not supported on "
+ "this device, using iMON protocol\n", __func__);
+ context->ir_protocol = IMON_IR_PROTOCOL_IMON;
+ return;
+ }
+ dprintk("Configuring IR receiver for MCE protocol\n");
+ ir_proto_packet[0] = 0x01;
+ context->ir_protocol = IMON_IR_PROTOCOL_MCE;
+ break;
+ case IMON_IR_PROTOCOL_IMON:
+ dprintk("Configuring IR receiver for iMON protocol\n");
+ /* ir_proto_packet[0] = 0x00; // already the default */
+ context->ir_protocol = IMON_IR_PROTOCOL_IMON;
+ break;
+ case IMON_IR_PROTOCOL_IMON_NOPAD:
+ dprintk("Configuring IR receiver for iMON protocol without "
+ "PAD stabilize function enabled\n");
+ /* ir_proto_packet[0] = 0x00; // already the default */
+ context->ir_protocol = IMON_IR_PROTOCOL_IMON_NOPAD;
+ break;
+ default:
+ printk(KERN_INFO "%s: unknown IR protocol specified, will "
+ "just default to iMON protocol\n", __func__);
+ context->ir_protocol = IMON_IR_PROTOCOL_IMON;
+ break;
+ }
+ memcpy(context->usb_tx_buf, &ir_proto_packet,
+ sizeof(ir_proto_packet));
+ retval = send_packet(context);
+ if (retval)
+ printk(KERN_INFO "%s: failed to set remote type\n", __func__);
+}
+
+
+/**
+ * Called by lirc_dev when the application opens /dev/lirc
+ */
+static int ir_open(void *data)
+{
+ int retval = 0;
+ struct imon_context *context;
+
+ /* prevent races with disconnect */
+ mutex_lock(&driver_lock);
+
+ context = (struct imon_context *)data;
+
+ /* initial IR protocol decode variables */
+ context->rx.count = 0;
+ context->rx.initial_space = 1;
+ context->rx.prev_bit = 0;
+
+ /* set new IR protocol if it has changed since init or last open */
+ if (ir_protocol != context->ir_protocol)
+ imon_set_ir_protocol(context);
+
+ context->ir_isopen = 1;
+ printk(KERN_INFO MOD_NAME ": IR port opened\n");
+
+ mutex_unlock(&driver_lock);
+ return retval;
+}
+
+/**
+ * Called by lirc_dev when the application closes /dev/lirc
+ */
+static void ir_close(void *data)
+{
+ struct imon_context *context;
+
+ context = (struct imon_context *)data;
+ if (!context) {
+ err("%s: no context for device", __func__);
+ return;
+ }
+
+ mutex_lock(&context->lock);
+
+ context->ir_isopen = 0;
+ context->ir_isassociating = 0;
+ MOD_DEC_USE_COUNT;
+ printk(KERN_INFO MOD_NAME ": IR port closed\n");
+
+ if (!context->dev_present_intf0) {
+ /*
+ * Device disconnected while IR port was still open. Driver
+ * was not deregistered at disconnect time, so do it now.
+ */
+ deregister_from_lirc(context);
+
+ if (!context->display_isopen) {
+ mutex_unlock(&context->lock);
+ free_imon_context(context);
+ return;
+ }
+ /*
+ * If display port is open, context will be deleted by
+ * display_close
+ */
+ }
+
+ mutex_unlock(&context->lock);
+ return;
+}
+
+/**
+ * Convert bit count to time duration (in us) and submit
+ * the value to lirc_dev.
+ */
+static void submit_data(struct imon_context *context)
+{
+ unsigned char buf[4];
+ int value = context->rx.count;
+ int i;
+
+ dprintk("submitting data to LIRC\n");
+
+ value *= BIT_DURATION;
+ value &= PULSE_MASK;
+ if (context->rx.prev_bit)
+ value |= PULSE_BIT;
+
+ for (i = 0; i < 4; ++i)
+ buf[i] = value>>(i*8);
+
+ lirc_buffer_write(context->driver->rbuf, buf);
+ wake_up(&context->driver->rbuf->wait_poll);
+ return;
+}
+
+static inline int tv2int(const struct timeval *a, const struct timeval *b)
+{
+ int usecs = 0;
+ int sec = 0;
+
+ if (b->tv_usec > a->tv_usec) {
+ usecs = 1000000;
+ sec--;
+ }
+
+ usecs += a->tv_usec - b->tv_usec;
+
+ sec += a->tv_sec - b->tv_sec;
+ sec *= 1000;
+ usecs /= 1000;
+ sec += usecs;
+
+ if (sec < 0)
+ sec = 1000;
+
+ return sec;
+}
+
+/**
+ * The directional pad behaves a bit differently, depending on whether this is
+ * one of the older ffdc devices or a newer device. Newer devices appear to
+ * have a higher resolution matrix for more precise mouse movement, but it
+ * makes things overly sensitive in keyboard mode, so we do some interesting
+ * contortions to make it less touchy. Older devices run through the same
+ * routine with shorter timeout and a smaller threshold.
+ */
+static int stabilize(int a, int b, u16 timeout, u16 threshold)
+{
+ struct timeval ct;
+ static struct timeval prev_time = {0, 0};
+ static struct timeval hit_time = {0, 0};
+ static int x, y, prev_result, hits;
+ int result = 0;
+ int msec, msec_hit;
+
+ do_gettimeofday(&ct);
+ msec = tv2int(&ct, &prev_time);
+ msec_hit = tv2int(&ct, &hit_time);
+
+ if (msec > 100) {
+ x = 0;
+ y = 0;
+ hits = 0;
+ }
+
+ x += a;
+ y += b;
+
+ prev_time = ct;
+
+ if (abs(x) > threshold || abs(y) > threshold) {
+ if (abs(y) > abs(x))
+ result = (y > 0) ? 0x7F : 0x80;
+ else
+ result = (x > 0) ? 0x7F00 : 0x8000;
+
+ x = 0;
+ y = 0;
+
+ if (result == prev_result) {
+ hits++;
+
+ if (hits > 3) {
+ switch (result) {
+ case 0x7F:
+ y = 17 * threshold / 30;
+ break;
+ case 0x80:
+ y -= 17 * threshold / 30;
+ break;
+ case 0x7F00:
+ x = 17 * threshold / 30;
+ break;
+ case 0x8000:
+ x -= 17 * threshold / 30;
+ break;
+ }
+ }
+
+ if (hits == 2 && msec_hit < timeout) {
+ result = 0;
+ hits = 1;
+ }
+ } else {
+ prev_result = result;
+ hits = 1;
+ hit_time = ct;
+ }
+ }
+
+ return result;
+}
+
+/**
+ * Process the incoming packet
+ */
+static void imon_incoming_packet(struct imon_context *context,
+ struct urb *urb, int intf)
+{
+ int len = urb->actual_length;
+ unsigned char *buf = urb->transfer_buffer;
+ char rel_x = 0x00, rel_y = 0x00;
+ int octet, bit;
+ unsigned char mask;
+ int i, chunk_num;
+ int ts_input = 0;
+ int dir = 0;
+ u16 timeout, threshold;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+ int mouse_input;
+ int right_shift = 1;
+ struct input_dev *mouse = NULL;
+ struct input_dev *touch = NULL;
+ const unsigned char toggle_button1[] = { 0x29, 0x91, 0x15, 0xb7 };
+ const unsigned char toggle_button2[] = { 0x29, 0x91, 0x35, 0xb7 };
+ const unsigned char ch_up[] = { 0x28, 0x93, 0x95, 0xb7 };
+ const unsigned char ch_down[] = { 0x28, 0x87, 0x95, 0xb7 };
+#endif
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+ mouse = context->mouse;
+ if (context->display_type == IMON_DISPLAY_TYPE_VGA)
+ touch = context->touch;
+
+ /* keyboard/mouse mode toggle button */
+ if (memcmp(buf, toggle_button1, 4) == 0 ||
+ memcmp(buf, toggle_button2, 4) == 0) {
+ if (!nomouse) {
+ context->pad_mouse = ~(context->pad_mouse) & 0x1;
+ dprintk("toggling to %s mode\n",
+ context->pad_mouse ? "mouse" : "keyboard");
+ } else {
+ context->pad_mouse = 0;
+ dprintk("mouse mode was disabled by modparam\n");
+ }
+ return;
+ }
+
+ /* send touchscreen events through input subsystem if touchpad data */
+ if (context->display_type == IMON_DISPLAY_TYPE_VGA && len == 8 &&
+ buf[7] == 0x86) {
+ if (touch == NULL) {
+ printk(KERN_WARNING "%s: touchscreen input device is "
+ "NULL!\n", __func__);
+ return;
+ }
+ mod_timer(&context->timer, jiffies + TOUCH_TIMEOUT);
+ context->touch_x = (buf[0] << 4) | (buf[1] >> 4);
+ context->touch_y = 0xfff - ((buf[2] << 4) | (buf[1] & 0xf));
+ input_report_abs(touch, ABS_X, context->touch_x);
+ input_report_abs(touch, ABS_Y, context->touch_y);
+ input_report_key(touch, BTN_TOUCH, 0x01);
+ input_sync(touch);
+ ts_input = 1;
+
+ /* send mouse events through input subsystem in mouse mode */
+ } else if (context->pad_mouse || !context->ir_isopen) {
+ /* newer iMON device PAD or mouse button */
+ if (!context->ffdc_dev && (buf[0] & 0x01) && len == 5) {
+ mouse_input = 1;
+ rel_x = buf[2];
+ rel_y = buf[3];
+ right_shift = 1;
+ /* 0xffdc iMON PAD or mouse button input */
+ } else if (context->ffdc_dev && (buf[0] & 0x40) &&
+ !((buf[1] & 0x01) || ((buf[1] >> 2) & 0x01))) {
+ mouse_input = 1;
+ rel_x = (buf[1] & 0x08) | (buf[1] & 0x10) >> 2 |
+ (buf[1] & 0x20) >> 4 | (buf[1] & 0x40) >> 6;
+ if (buf[0] & 0x02)
+ rel_x |= ~0x0f;
+ rel_x = rel_x + rel_x / 2;
+ rel_y = (buf[2] & 0x08) | (buf[2] & 0x10) >> 2 |
+ (buf[2] & 0x20) >> 4 | (buf[2] & 0x40) >> 6;
+ if (buf[0] & 0x01)
+ rel_y |= ~0x0f;
+ rel_y = rel_y + rel_y / 2;
+ right_shift = 2;
+ /* some ffdc devices decode mouse buttons differently... */
+ } else if (context->ffdc_dev && (buf[0] == 0x68)) {
+ mouse_input = 1;
+ right_shift = 2;
+ /* ch+/- buttons, which we use for an emulated scroll wheel */
+ } else if (!memcmp(buf, ch_up, 4)) {
+ mouse_input = 1;
+ dir = 1;
+ } else if (!memcmp(buf, ch_down, 4)) {
+ mouse_input = 1;
+ dir = -1;
+ } else
+ mouse_input = 0;
+
+ if (mouse_input) {
+ if (mouse == NULL) {
+ printk(KERN_WARNING "%s: mouse input device "
+ "is NULL!\n", __func__);
+ return;
+ }
+ dprintk("sending mouse data via input subsystem\n");
+
+ if (dir) {
+ input_report_rel(mouse, REL_WHEEL, dir);
+ } else if (rel_x || rel_y) {
+ input_report_rel(mouse, REL_X, rel_x);
+ input_report_rel(mouse, REL_Y, rel_y);
+ } else {
+ input_report_key(mouse, BTN_LEFT, buf[1] & 0x1);
+ input_report_key(mouse, BTN_RIGHT,
+ buf[1] >> right_shift & 0x1);
+ }
+ input_sync(mouse);
+ return;
+ }
+ }
+#endif
+
+ /*
+ * at this point, mouse and touchscreen input has been handled, so
+ * anything else goes to lirc -- bail out if no listening IR client
+ */
+ if (!context->ir_isopen)
+ return;
+
+ /*
+ * we need to add some special handling for
+ * the imon's IR mouse events
+ */
+ if ((len == 5) && (buf[0] == 0x01) && (buf[4] == 0x00)) {
+ /* first, pad to 8 bytes so it conforms with everything else */
+ buf[5] = buf[6] = buf[7] = 0;
+ len = 8;
+ timeout = 500; /* in msecs */
+ /* (2*threshold) x (2*threshold) square */
+ threshold = pad_thresh ? pad_thresh : 28;
+ rel_x = buf[2];
+ rel_y = buf[3];
+
+ /*
+ * the imon directional pad functions more like a touchpad.
+ * Bytes 3 & 4 contain a position coordinate (x,y), with each
+ * component ranging from -14 to 14. Since this doesn't
+ * cooperate well with the way lirc works (it would appear to
+ * lirc as more than 100 different buttons) we need to map it
+ * to 4 discrete values. Also, when you get too close to
+ * diagonals, it has a tendancy to jump back and forth, so lets
+ * try to ignore when they get too close
+ */
+ if (context->ir_protocol == IMON_IR_PROTOCOL_IMON) {
+ if ((buf[1] == 0) && ((rel_x != 0) || (rel_y != 0))) {
+ dir = stabilize((int)rel_x, (int)rel_y,
+ timeout, threshold);
+ if (!dir)
+ return;
+ buf[2] = dir & 0xFF;
+ buf[3] = (dir >> 8) & 0xFF;
+ }
+ } else {
+ if (abs(rel_y) > abs(rel_x)) {
+ buf[2] = (rel_y > 0) ? 0x7F : 0x80;
+ buf[3] = 0;
+ } else {
+ buf[2] = 0;
+ buf[3] = (rel_x > 0) ? 0x7F : 0x80;
+ }
+ }
+
+ } else if ((len == 8) && (buf[0] & 0x40) &&
+ !(buf[1] & 0x01 || buf[1] >> 2 & 0x01)) {
+ /*
+ * Handle on-board decoded pad events for e.g. older
+ * VFD/iMON-Pad (15c2:ffdc). The remote generates various codes
+ * from 0x68nnnnB7 to 0x6AnnnnB7, the left mouse button
+ * generates 0x688301b7 and the right one 0x688481b7. All other
+ * keys generate 0x2nnnnnnn. Length has been padded to 8
+ * already, position coordinate is encoded in buf[1] and buf[2]
+ * with reversed endianess. Extract direction from buffer,
+ * rotate endianess, adjust sign and feed the values into
+ * stabilize(). The resulting codes will be 0x01008000,
+ * 0x01007F00, ..., so one can use the normal imon-pad config
+ * from the remotes dir.
+ */
+ timeout = 10; /* in msecs */
+ /* (2*threshold) x (2*threshold) square */
+ threshold = pad_thresh ? pad_thresh : 15;
+
+ /* buf[1] is x */
+ rel_x = (buf[1] & 0x08) | (buf[1] & 0x10) >> 2 |
+ (buf[1] & 0x20) >> 4 | (buf[1] & 0x40) >> 6;
+ if(buf[0] & 0x02)
+ rel_x |= ~0x10+1;
+ /* buf[2] is y */
+ rel_y = (buf[2] & 0x08) | (buf[2] & 0x10) >> 2 |
+ (buf[2] & 0x20) >> 4 | (buf[2] & 0x40) >> 6;
+ if(buf[0] & 0x01)
+ rel_y |= ~0x10+1;
+
+ buf[0] = 0x01;
+ buf[1] = buf[4] = buf[5] = buf[6] = buf[7] = 0;
+
+ if (context->ir_protocol == IMON_IR_PROTOCOL_IMON) {
+ dir = stabilize((int)rel_x, (int)rel_y,
+ timeout, threshold);
+ if (!dir)
+ return;
+ buf[2] = dir & 0xFF;
+ buf[3] = (dir >> 8) & 0xFF;
+ } else {
+ if (abs(rel_y) > abs(rel_x)) {
+ buf[2] = (rel_y > 0) ? 0x7F : 0x80;
+ buf[3] = 0;
+ } else {
+ buf[2] = 0;
+ buf[3] = (rel_x > 0) ? 0x7F : 0x80;
+ }
+ }
+
+ } else if (ts_input) {
+ /*
+ * this is touchscreen input, which we need to down-sample
+ * to a 64 button matrix at the moment...
+ */
+ buf[0] = buf[0] >> 5;
+ buf[1] = 0x00;
+ buf[2] = buf[2] >> 5;
+ buf[3] = 0x00;
+ buf[4] = 0x00;
+ buf[5] = 0x00;
+ buf[6] = 0x14;
+ buf[7] = 0xff;
+ }
+
+ if (len != 8) {
+ printk(KERN_WARNING "imon %s: invalid incoming packet "
+ "size (len = %d, intf%d)\n", __func__, len, intf);
+ return;
+ }
+
+ /* iMON 2.4G associate frame */
+ if (buf[0] == 0x00 &&
+ buf[2] == 0xFF && /* REFID */
+ buf[3] == 0xFF &&
+ buf[4] == 0xFF &&
+ buf[5] == 0xFF && /* iMON 2.4G */
+ ((buf[6] == 0x4E && buf[7] == 0xDF) || /* LT */
+ (buf[6] == 0x5E && buf[7] == 0xDF))) { /* DT */
+ printk(KERN_WARNING "%s: remote associated refid=%02X\n",
+ __func__, buf[1]);
+ context->ir_isassociating = 0;
+ }
+
+ chunk_num = buf[7];
+
+ if (chunk_num == 0xFF && !ts_input)
+ return; /* filler frame, no data here */
+
+ if (buf[0] == 0xFF &&
+ buf[1] == 0xFF &&
+ buf[2] == 0xFF &&
+ buf[3] == 0xFF &&
+ buf[4] == 0xFF &&
+ buf[5] == 0xFF && /* iMON 2.4G */
+ ((buf[6] == 0x4E && buf[7] == 0xAF) || /* LT */
+ (buf[6] == 0x5E && buf[7] == 0xAF))) /* DT */
+ return; /* filler frame, no data here */
+
+ if (debug) {
+ if (context->ir_onboard_decode)
+ printk("intf%d decoded packet: ", intf);
+ else
+ printk("raw packet: ");
+ for (i = 0; i < len; ++i)
+ printk("%02x ", buf[i]);
+ printk("\n");
+ }
+
+ if (context->ir_onboard_decode) {
+ /* The signals have been decoded onboard the iMON controller */
+ lirc_buffer_write(context->driver->rbuf, buf);
+ wake_up(&context->driver->rbuf->wait_poll);
+ return;
+ }
+
+ /*
+ * Translate received data to pulse and space lengths.
+ * Received data is active low, i.e. pulses are 0 and
+ * spaces are 1.
+ *
+ * My original algorithm was essentially similar to
+ * Changwoo Ryu's with the exception that he switched
+ * the incoming bits to active high and also fed an
+ * initial space to LIRC at the start of a new sequence
+ * if the previous bit was a pulse.
+ *
+ * I've decided to adopt his algorithm.
+ */
+
+ if (chunk_num == 1 && context->rx.initial_space) {
+ /* LIRC requires a leading space */
+ context->rx.prev_bit = 0;
+ context->rx.count = 4;
+ submit_data(context);
+ context->rx.count = 0;
+ }
+
+ for (octet = 0; octet < 5; ++octet) {
+ mask = 0x80;
+ for (bit = 0; bit < 8; ++bit) {
+ int curr_bit = !(buf[octet] & mask);
+ if (curr_bit != context->rx.prev_bit) {
+ if (context->rx.count) {
+ submit_data(context);
+ context->rx.count = 0;
+ }
+ context->rx.prev_bit = curr_bit;
+ }
+ ++context->rx.count;
+ mask >>= 1;
+ }
+ }
+
+ if (chunk_num == 10) {
+ if (context->rx.count) {
+ submit_data(context);
+ context->rx.count = 0;
+ }
+ context->rx.initial_space = context->rx.prev_bit;
+ }
+}
+
+/**
+ * report touchscreen input
+ */
+static void imon_touch_display_timeout(unsigned long data)
+{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+ struct imon_context *context = (struct imon_context *)data;
+ struct input_dev *touch;
+
+ if (!context->display_type == IMON_DISPLAY_TYPE_VGA)
+ return;
+
+ touch = context->touch;
+ input_report_abs(touch, ABS_X, context->touch_x);
+ input_report_abs(touch, ABS_Y, context->touch_y);
+ input_report_key(touch, BTN_TOUCH, 0x00);
+ input_sync(touch);
+#endif
+
+ return;
+}
+
+/**
+ * Callback function for USB core API: receive data
+ */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static void usb_rx_callback_intf0(struct urb *urb, struct pt_regs *regs)
+#else
+static void usb_rx_callback_intf0(struct urb *urb)
+#endif
+{
+ struct imon_context *context;
+ unsigned char *buf;
+ int len;
+ int intfnum = 0;
+
+ if (!urb)
+ return;
+
+ context = (struct imon_context *)urb->context;
+ if (!context)
+ return;
+
+ buf = urb->transfer_buffer;
+ len = urb->actual_length;
+
+ switch (urb->status) {
+ case -ENOENT: /* usbcore unlink successful! */
+ return;
+
+ case 0:
+ imon_incoming_packet(context, urb, intfnum);
+ break;
+
+ default:
+ printk(KERN_WARNING "imon %s: status(%d): ignored\n",
+ __func__, urb->status);
+ break;
+ }
+
+ usb_submit_urb(context->rx_urb_intf0, GFP_ATOMIC);
+
+ return;
+}
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static void usb_rx_callback_intf1(struct urb *urb, struct pt_regs *regs)
+#else
+static void usb_rx_callback_intf1(struct urb *urb)
+#endif
+{
+ struct imon_context *context;
+ unsigned char *buf;
+ int len;
+ int intfnum = 1;
+
+ if (!urb)
+ return;
+
+ context = (struct imon_context *)urb->context;
+ if (!context)
+ return;
+
+ buf = urb->transfer_buffer;
+ len = urb->actual_length;
+
+ switch (urb->status) {
+ case -ENOENT: /* usbcore unlink successful! */
+ return;
+
+ case 0:
+ imon_incoming_packet(context, urb, intfnum);
+ break;
+
+ default:
+ printk(KERN_WARNING "imon %s: status(%d): ignored\n",
+ __func__, urb->status);
+ break;
+ }
+
+ usb_submit_urb(context->rx_urb_intf1, GFP_ATOMIC);
+
+ return;
+}
+
+/**
+ * Callback function for USB core API: Probe
+ */
+static int imon_probe(struct usb_interface *interface,
+ const struct usb_device_id *id)
+{
+ struct usb_device *usbdev = NULL;
+ struct usb_host_interface *iface_desc = NULL;
+ struct usb_endpoint_descriptor *rx_endpoint = NULL;
+ struct usb_endpoint_descriptor *tx_endpoint = NULL;
+ struct urb *rx_urb = NULL;
+ struct urb *tx_urb = NULL;
+ struct lirc_driver *driver = NULL;
+ struct lirc_buffer *rbuf = NULL;
+ struct usb_interface *first_if;
+ int ifnum;
+ int lirc_minor = 0;
+ int num_endpts;
+ int retval = 0;
+ int display_ep_found = 0;
+ int ir_ep_found = 0;
+ int alloc_status = 0;
+ int vfd_proto_6p = 0;
+ int ir_onboard_decode = 0;
+ int buf_chunk_size = BUF_CHUNK_SIZE;
+ int code_length;
+ int tx_control = 0;
+ struct imon_context *context = NULL;
+ struct imon_context *first_if_context = NULL;
+ int i, sysfs_err;
+ int configured_display_type = IMON_DISPLAY_TYPE_VFD;
+ u16 vendor, product;
+ const unsigned char fp_packet[] = { 0x40, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x88 };
+
+ /*
+ * Try to auto-detect the type of display if the user hasn't set
+ * it by hand via the display_type modparam. Default is VFD.
+ */
+ if (display_type == IMON_DISPLAY_TYPE_AUTO) {
+ if (usb_match_id(interface, lcd_device_list))
+ configured_display_type = IMON_DISPLAY_TYPE_LCD;
+ else if (usb_match_id(interface, imon_touchscreen_list))
+ configured_display_type = IMON_DISPLAY_TYPE_VGA;
+ else if (usb_match_id(interface, ir_only_list))
+ configured_display_type = IMON_DISPLAY_TYPE_NONE;
+ else
+ configured_display_type = IMON_DISPLAY_TYPE_VFD;
+ } else {
+ configured_display_type = display_type;
+ dprintk("%s: overriding display type to %d via modparam\n",
+ __func__, display_type);
+ }
+
+ /*
+ * If it's the LCD, as opposed to the VFD, we just need to replace
+ * the "write" file op.
+ */
+ if (configured_display_type == IMON_DISPLAY_TYPE_LCD)
+ display_fops.write = &lcd_write;
+
+ /*
+ * To get front panel buttons working properly for newer LCD devices,
+ * we really do need a larger buffer.
+ */
+ if (usb_match_id(interface, large_buffer_list))
+ buf_chunk_size = 2 * BUF_CHUNK_SIZE;
+
+ code_length = buf_chunk_size * 8;
+
+ usbdev = usb_get_dev(interface_to_usbdev(interface));
+ iface_desc = interface->cur_altsetting;
+ num_endpts = iface_desc->desc.bNumEndpoints;
+ ifnum = iface_desc->desc.bInterfaceNumber;
+ vendor = le16_to_cpu(usbdev->descriptor.idVendor);
+ product = le16_to_cpu(usbdev->descriptor.idProduct);
+
+ dprintk("%s: found iMON device (%04x:%04x, intf%d)\n",
+ __func__, vendor, product, ifnum);
+
+ /* prevent races probing devices w/multiple interfaces */
+ mutex_lock(&driver_lock);
+
+ first_if = usb_ifnum_to_if(usbdev, 0);
+ first_if_context = (struct imon_context *)usb_get_intfdata(first_if);
+
+ /*
+ * Scan the endpoint list and set:
+ * first input endpoint = IR endpoint
+ * first output endpoint = display endpoint
+ */
+ for (i = 0; i < num_endpts && !(ir_ep_found && display_ep_found); ++i) {
+ struct usb_endpoint_descriptor *ep;
+ int ep_dir;
+ int ep_type;
+ ep = &iface_desc->endpoint[i].desc;
+ ep_dir = ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK;
+ ep_type = ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
+
+ if (!ir_ep_found &&
+ ep_dir == USB_DIR_IN &&
+ ep_type == USB_ENDPOINT_XFER_INT) {
+
+ rx_endpoint = ep;
+ ir_ep_found = 1;
+ dprintk("%s: found IR endpoint\n", __func__);
+
+ } else if (!display_ep_found &&
+ ep_dir == USB_DIR_OUT &&
+ ep_type == USB_ENDPOINT_XFER_INT) {
+ tx_endpoint = ep;
+ display_ep_found = 1;
+ dprintk("%s: found display endpoint\n", __func__);
+ }
+ }
+
+ /*
+ * If we didn't find a display endpoint, this is probably one of the
+ * newer iMON devices that use control urb instead of interrupt
+ */
+ if (!display_ep_found) {
+ if (usb_match_id(interface, ctl_ep_device_list)) {
+ tx_control = 1;
+ display_ep_found = 1;
+ dprintk("%s: device uses control endpoint, not "
+ "interface OUT endpoint\n", __func__);
+ }
+ }
+
+ /*
+ * Some iMON receivers have no display. Unfortunately, it seems
+ * that SoundGraph recycles device IDs between devices both with
+ * and without... :\
+ */
+ if (configured_display_type == IMON_DISPLAY_TYPE_NONE) {
+ display_ep_found = 0;
+ dprintk("%s: device has no display\n", __func__);
+ }
+
+ /*
+ * iMON Touch devices have a VGA touchscreen, but no "display", as
+ * that refers to e.g. /dev/lcd0 (a character device LCD or VFD).
+ */
+ if (configured_display_type == IMON_DISPLAY_TYPE_VGA) {
+ display_ep_found = 0;
+ dprintk("%s: iMON Touch device found\n", __func__);
+ }
+
+ /* Input endpoint is mandatory */
+ if (!ir_ep_found) {
+ err("%s: no valid input (IR) endpoint found.", __func__);
+ retval = -ENODEV;
+ goto exit;
+ } else {
+ /* Determine if the IR signals are decoded onboard */
+ if (usb_match_id(interface, ir_onboard_decode_list))
+ ir_onboard_decode = 1;
+
+ dprintk("%s: ir_onboard_decode: %d\n",
+ __func__, ir_onboard_decode);
+ }
+
+ /* Determine if display requires 6 packets */
+ if (display_ep_found) {
+ if (usb_match_id(interface, vfd_proto_6p_list))
+ vfd_proto_6p = 1;
+
+ dprintk("%s: vfd_proto_6p: %d\n",
+ __func__, vfd_proto_6p);
+ }
+
+ if (ifnum == 0) {
+ context = kzalloc(sizeof(struct imon_context), GFP_KERNEL);
+ if (!context) {
+ err("%s: kzalloc failed for context", __func__);
+ alloc_status = 1;
+ goto alloc_status_switch;
+ }
+ driver = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL);
+ if (!driver) {
+ err("%s: kzalloc failed for lirc_driver", __func__);
+ alloc_status = 2;
+ goto alloc_status_switch;
+ }
+ rbuf = kmalloc(sizeof(struct lirc_buffer), GFP_KERNEL);
+ if (!rbuf) {
+ err("%s: kmalloc failed for lirc_buffer", __func__);
+ alloc_status = 3;
+ goto alloc_status_switch;
+ }
+ if (lirc_buffer_init(rbuf, buf_chunk_size, BUF_SIZE)) {
+ err("%s: lirc_buffer_init failed", __func__);
+ alloc_status = 4;
+ goto alloc_status_switch;
+ }
+ rx_urb = usb_alloc_urb(0, GFP_KERNEL);
+ if (!rx_urb) {
+ err("%s: usb_alloc_urb failed for IR urb", __func__);
+ alloc_status = 5;
+ goto alloc_status_switch;
+ }
+ tx_urb = usb_alloc_urb(0, GFP_KERNEL);
+ if (!tx_urb) {
+ err("%s: usb_alloc_urb failed for display urb",
+ __func__);
+ alloc_status = 6;
+ goto alloc_status_switch;
+ }
+
+ mutex_init(&context->lock);
+ context->vfd_proto_6p = vfd_proto_6p;
+ context->ir_onboard_decode = ir_onboard_decode;
+
+ strcpy(driver->name, MOD_NAME);
+ driver->minor = -1;
+ driver->code_length = ir_onboard_decode ?
+ code_length : sizeof(int) * 8;
+ driver->sample_rate = 0;
+ driver->features = (ir_onboard_decode) ?
+ LIRC_CAN_REC_LIRCCODE : LIRC_CAN_REC_MODE2;
+ driver->data = context;
+ driver->rbuf = rbuf;
+ driver->set_use_inc = ir_open;
+ driver->set_use_dec = ir_close;
+#ifdef LIRC_HAVE_SYSFS
+ driver->dev = &interface->dev;
+#endif
+ driver->owner = THIS_MODULE;
+
+ mutex_lock(&context->lock);
+
+ context->driver = driver;
+ /* start out in keyboard mode */
+ context->pad_mouse = 0;
+
+ init_timer(&context->timer);
+ context->timer.data = (unsigned long)context;
+ context->timer.function = imon_touch_display_timeout;
+
+ lirc_minor = lirc_register_driver(driver);
+ if (lirc_minor < 0) {
+ err("%s: lirc_register_driver failed", __func__);
+ alloc_status = 7;
+ goto alloc_status_switch;
+ } else
+ printk(KERN_INFO MOD_NAME ": Registered iMON driver "
+ "(lirc minor: %d)\n", lirc_minor);
+
+ /* Needed while unregistering! */
+ driver->minor = lirc_minor;
+
+ } else {
+ /* this is the secondary interface on the device */
+ if (first_if_context->driver) {
+ rx_urb = usb_alloc_urb(0, GFP_KERNEL);
+ if (!rx_urb) {
+ err("%s: usb_alloc_urb failed for IR urb",
+ __func__);
+ alloc_status = 5;
+ goto alloc_status_switch;
+ }
+
+ context = first_if_context;
+ }
+ mutex_lock(&context->lock);
+ }
+
+ if (ifnum == 0) {
+ context->usbdev_intf0 = usbdev;
+ context->dev_present_intf0 = 1;
+ context->rx_endpoint_intf0 = rx_endpoint;
+ context->rx_urb_intf0 = rx_urb;
+
+ /*
+ * tx is used to send characters to lcd/vfd, associate RF
+ * remotes, set IR protocol, and maybe more...
+ */
+ context->tx_endpoint = tx_endpoint;
+ context->tx_urb = tx_urb;
+ context->tx_control = tx_control;
+
+ if (display_ep_found)
+ context->display_supported = 1;
+
+ if (product == 0xffdc)
+ context->ffdc_dev = 1;
+
+ context->display_type = configured_display_type;
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+ context->mouse = input_allocate_device();
+
+ snprintf(context->name_mouse, sizeof(context->name_mouse),
+ "iMON PAD IR Mouse (%04x:%04x)",
+ vendor, product);
+ context->mouse->name = context->name_mouse;
+
+ usb_make_path(usbdev, context->phys_mouse, sizeof(context->phys_mouse));
+ strlcat(context->phys_mouse, "/input0", sizeof(context->phys_mouse));
+ context->mouse->phys = context->phys_mouse;
+
+ context->mouse->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REL);
+ context->mouse->keybit[BIT_WORD(BTN_MOUSE)] =
+ BIT_MASK(BTN_LEFT) | BIT_MASK(BTN_RIGHT) |
+ BIT_MASK(BTN_MIDDLE) | BIT_MASK(BTN_SIDE) |
+ BIT_MASK(BTN_EXTRA);
+ context->mouse->relbit[0] = BIT_MASK(REL_X) | BIT_MASK(REL_Y) |
+ BIT_MASK(REL_WHEEL);
+
+ input_set_drvdata(context->mouse, context);
+
+ usb_to_input_id(usbdev, &context->mouse->id);
+ context->mouse->dev.parent = &interface->dev;
+ retval = input_register_device(context->mouse);
+ if (retval)
+ printk(KERN_INFO "%s: pad mouse input device setup failed\n",
+ __func__);
+#endif
+
+ usb_fill_int_urb(context->rx_urb_intf0, context->usbdev_intf0,
+ usb_rcvintpipe(context->usbdev_intf0,
+ context->rx_endpoint_intf0->bEndpointAddress),
+ context->usb_rx_buf, sizeof(context->usb_rx_buf),
+ usb_rx_callback_intf0, context,
+ context->rx_endpoint_intf0->bInterval);
+
+ retval = usb_submit_urb(context->rx_urb_intf0, GFP_KERNEL);
+
+ if (retval) {
+ err("%s: usb_submit_urb failed for intf0 (%d)",
+ __func__, retval);
+ mutex_unlock(&context->lock);
+ goto exit;
+ }
+
+ } else {
+ context->usbdev_intf1 = usbdev;
+ context->dev_present_intf1 = 1;
+ context->rx_endpoint_intf1 = rx_endpoint;
+ context->rx_urb_intf1 = rx_urb;
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+ if (context->display_type == IMON_DISPLAY_TYPE_VGA) {
+ context->touch = input_allocate_device();
+
+ snprintf(context->name_touch, sizeof(context->name_touch),
+ "iMON USB Touchscreen (%04x:%04x)",
+ vendor, product);
+ context->touch->name = context->name_touch;
+
+ usb_make_path(usbdev, context->phys_touch,
+ sizeof(context->phys_touch));
+ strlcat(context->phys_touch, "/input1",
+ sizeof(context->phys_touch));
+ context->touch->phys = context->phys_touch;
+
+ context->touch->evbit[0] =
+ BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
+ context->touch->keybit[BIT_WORD(BTN_TOUCH)] =
+ BIT_MASK(BTN_TOUCH);
+ input_set_abs_params(context->touch, ABS_X,
+ 0x00, 0xfff, 0, 0);
+ input_set_abs_params(context->touch, ABS_Y,
+ 0x00, 0xfff, 0, 0);
+
+ input_set_drvdata(context->touch, context);
+
+ usb_to_input_id(usbdev, &context->touch->id);
+ context->touch->dev.parent = &interface->dev;
+ retval = input_register_device(context->touch);
+ if (retval)
+ printk(KERN_INFO "%s: touchscreen input device setup failed\n",
+ __func__);
+ } else
+ context->touch = NULL;
+#endif
+
+ usb_fill_int_urb(context->rx_urb_intf1, context->usbdev_intf1,
+ usb_rcvintpipe(context->usbdev_intf1,
+ context->rx_endpoint_intf1->bEndpointAddress),
+ context->usb_rx_buf, sizeof(context->usb_rx_buf),
+ usb_rx_callback_intf1, context,
+ context->rx_endpoint_intf1->bInterval);
+
+ retval = usb_submit_urb(context->rx_urb_intf1, GFP_KERNEL);
+
+ if (retval) {
+ err("%s: usb_submit_urb failed for intf1 (%d)",
+ __func__, retval);
+ mutex_unlock(&context->lock);
+ goto exit;
+ }
+ }
+
+ usb_set_intfdata(interface, context);
+
+ /* RF products *also* use 0xffdc... sigh... */
+ if (context->ffdc_dev) {
+ sysfs_err = sysfs_create_group(&interface->dev.kobj,
+ &imon_rf_attribute_group);
+ if (sysfs_err)
+ err("%s: Could not create RF sysfs entries(%d)",
+ __func__, sysfs_err);
+ }
+
+ if (context->display_supported && ifnum == 0) {
+ dprintk("%s: Registering iMON display with sysfs\n", __func__);
+
+ /* set up sysfs entry for built-in clock */
+ sysfs_err = sysfs_create_group(&interface->dev.kobj,
+ &imon_display_attribute_group);
+ if (sysfs_err)
+ err("%s: Could not create display sysfs entries(%d)",
+ __func__, sysfs_err);
+
+ if (usb_register_dev(interface, &imon_class)) {
+ /* Not a fatal error, so ignore */
+ printk(KERN_INFO "%s: could not get a minor number for "
+ "display\n", __func__);
+ }
+
+ /* Enable front-panel buttons and/or knobs */
+ memcpy(context->usb_tx_buf, &fp_packet, sizeof(fp_packet));
+ retval = send_packet(context);
+ /* Not fatal, but warn about it */
+ if (retval)
+ printk(KERN_INFO "%s: failed to enable front-panel "
+ "buttons and/or knobs\n", __func__);
+ }
+
+ /* set IR protocol/remote type */
+ imon_set_ir_protocol(context);
+
+ printk(KERN_INFO MOD_NAME ": iMON device (%04x:%04x, intf%d) on "
+ "usb<%d:%d> initialized\n", vendor, product, ifnum,
+ usbdev->bus->busnum, usbdev->devnum);
+
+alloc_status_switch:
+ mutex_unlock(&context->lock);
+
+ switch (alloc_status) {
+ case 7:
+ usb_free_urb(tx_urb);
+ case 6:
+ usb_free_urb(rx_urb);
+ case 5:
+ if (rbuf)
+ lirc_buffer_free(rbuf);
+ case 4:
+ kfree(rbuf);
+ case 3:
+ kfree(driver);
+ case 2:
+ kfree(context);
+ context = NULL;
+ case 1:
+ retval = -ENOMEM;
+ break;
+ case 0:
+ retval = 0;
+ }
+
+exit:
+ mutex_unlock(&driver_lock);
+
+ return retval;
+}
+
+/**
+ * Callback function for USB core API: disconnect
+ */
+static void imon_disconnect(struct usb_interface *interface)
+{
+ struct imon_context *context;
+ int ifnum;
+
+ /* prevent races with ir_open()/display_open() */
+ mutex_lock(&driver_lock);
+
+ context = usb_get_intfdata(interface);
+ ifnum = interface->cur_altsetting->desc.bInterfaceNumber;
+
+ mutex_lock(&context->lock);
+
+ /*
+ * sysfs_remove_group is safe to call even if sysfs_create_group
+ * hasn't been called
+ */
+ sysfs_remove_group(&interface->dev.kobj,
+ &imon_display_attribute_group);
+ sysfs_remove_group(&interface->dev.kobj,
+ &imon_rf_attribute_group);
+
+ usb_set_intfdata(interface, NULL);
+
+ /* Abort ongoing write */
+ if (atomic_read(&context->tx.busy)) {
+ usb_kill_urb(context->tx_urb);
+ complete_all(&context->tx.finished);
+ }
+
+ if (ifnum == 0) {
+ context->dev_present_intf0 = 0;
+ usb_kill_urb(context->rx_urb_intf0);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+ input_unregister_device(context->mouse);
+#endif
+ if (context->display_supported)
+ usb_deregister_dev(interface, &imon_class);
+ } else {
+ context->dev_present_intf1 = 0;
+ usb_kill_urb(context->rx_urb_intf1);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+ if (context->display_type == IMON_DISPLAY_TYPE_VGA)
+ input_unregister_device(context->touch);
+#endif
+ }
+
+ if (!context->ir_isopen && !context->dev_present_intf0 &&
+ !context->dev_present_intf1) {
+ del_timer_sync(&context->timer);
+ deregister_from_lirc(context);
+ mutex_unlock(&context->lock);
+ if (!context->display_isopen)
+ free_imon_context(context);
+ } else
+ mutex_unlock(&context->lock);
+
+ mutex_unlock(&driver_lock);
+
+ printk(KERN_INFO "%s: iMON device (intf%d) disconnected\n",
+ __func__, ifnum);
+}
+
+static int imon_suspend(struct usb_interface *intf, pm_message_t message)
+{
+ struct imon_context *context = usb_get_intfdata(intf);
+ int ifnum = intf->cur_altsetting->desc.bInterfaceNumber;
+
+ if (ifnum == 0)
+ usb_kill_urb(context->rx_urb_intf0);
+ else
+ usb_kill_urb(context->rx_urb_intf1);
+
+ return 0;
+}
+
+static int imon_resume(struct usb_interface *intf)
+{
+ int rc = 0;
+ struct imon_context *context = usb_get_intfdata(intf);
+ int ifnum = intf->cur_altsetting->desc.bInterfaceNumber;
+
+ if (ifnum == 0) {
+ usb_fill_int_urb(context->rx_urb_intf0, context->usbdev_intf0,
+ usb_rcvintpipe(context->usbdev_intf0,
+ context->rx_endpoint_intf0->bEndpointAddress),
+ context->usb_rx_buf, sizeof(context->usb_rx_buf),
+ usb_rx_callback_intf0, context,
+ context->rx_endpoint_intf0->bInterval);
+
+ rc = usb_submit_urb(context->rx_urb_intf0, GFP_ATOMIC);
+
+ } else {
+ usb_fill_int_urb(context->rx_urb_intf1, context->usbdev_intf1,
+ usb_rcvintpipe(context->usbdev_intf1,
+ context->rx_endpoint_intf1->bEndpointAddress),
+ context->usb_rx_buf, sizeof(context->usb_rx_buf),
+ usb_rx_callback_intf1, context,
+ context->rx_endpoint_intf1->bInterval);
+
+ rc = usb_submit_urb(context->rx_urb_intf1, GFP_ATOMIC);
+ }
+
+ return rc;
+}
+
+static int __init imon_init(void)
+{
+ int rc;
+
+ printk(KERN_INFO MOD_NAME ": " MOD_DESC ", v" MOD_VERSION "\n");
+
+ rc = usb_register(&imon_driver);
+ if (rc) {
+ err("%s: usb register failed(%d)", __func__, rc);
+ return -ENODEV;
+ }
+
+ return 0;
+}
+
+static void __exit imon_exit(void)
+{
+ usb_deregister(&imon_driver);
+ printk(KERN_INFO MOD_NAME ": module removed. Goodbye!\n");
+}
+
+module_init(imon_init);
+module_exit(imon_exit);
diff --git a/ubuntu/lirc/lirc_it87/Makefile b/ubuntu/lirc/lirc_it87/Makefile
new file mode 100644
index 00000000000..de8556c6fbb
--- /dev/null
+++ b/ubuntu/lirc/lirc_it87/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_IT87) += lirc_it87.o
diff --git a/ubuntu/lirc/lirc_it87/README b/ubuntu/lirc/lirc_it87/README
new file mode 100644
index 00000000000..70a5a5363f6
--- /dev/null
+++ b/ubuntu/lirc/lirc_it87/README
@@ -0,0 +1,46 @@
+This is the README using the ITE IT8705 and IT8712 CIR port for LIRC.
+
+The IT8705 for example can be found on the ECS K7S5A.
+
+The driver supports receiving (MODE2) and sending (PULSE). It seems
+sending 'LIRC_CAN_SEND_PULSE' isn't optimal for this type of hardware.
+But because I don't know how to implement 'LIRC_CAN_SEND_CODE', I did
+it this way.
+
+Attention:
+Because of missing hardware, the following hasn't been tested:
+a) receiving with demodulator enabled,
+b) sending (debugging output looks good) and
+c) using IT8712
+
+Any help and/or additions etc. is welcome.
+
+lirc_it87 knows about the following module-parameters:
+MODULE_DESCRIPTION("LIRC driver for ITE IT8712/IT8705 CIR port");
+MODULE_PARM(io, "i");
+MODULE_PARM_DESC(io, "I/O base address (default: 0x310)");
+MODULE_PARM(irq, "i");
+MODULE_PARM_DESC(irq, "Interrupt (1,3-12) (default: 7)");
+MODULE_PARM(it87_enable_demodulator, "i");
+MODULE_PARM_DESC(it87_enable_demodulator, "Receiver demodulator
+ enable/disable (1/0), default: 0");
+
+
+Usage:
+
+a) io and irq:
+
+If the driver finds the IT8705/12-CIR port initialized, io and irq of
+the preinitialized hardware is used by the driver. If both values are
+read 0x0 from the hardware, the default or given value is used.
+Note: I experienced using irq=3. The driver initialized without any
+problems, but no irqs are recognized by the system. I had to switch
+back to default, irq 7.
+
+b) it87_enable_demodulator:
+
+The demodulator for the receiver can be switched off (default within
+the driver). If you need the demodulator simple enable it by the
+following way: it87_enable_demodulator=1.
+
+Hans-Günter Lütke Uphues
diff --git a/ubuntu/lirc/lirc_it87/TODO b/ubuntu/lirc/lirc_it87/TODO
new file mode 100644
index 00000000000..5f04437e731
--- /dev/null
+++ b/ubuntu/lirc/lirc_it87/TODO
@@ -0,0 +1,5 @@
+This is my todo-list for lirc_it87:
+
+1. enabling/using shared IRQ
+2. init/drop IRQ-usage in lirc_open/lirc_close
+
diff --git a/ubuntu/lirc/lirc_it87/lirc_it87.c b/ubuntu/lirc/lirc_it87/lirc_it87.c
new file mode 100644
index 00000000000..9d74f0f29df
--- /dev/null
+++ b/ubuntu/lirc/lirc_it87/lirc_it87.c
@@ -0,0 +1,1011 @@
+/*
+ * LIRC driver for ITE IT8712/IT8705/IT8720 CIR port
+ *
+ * Copyright (C) 2001 Hans-Günter Lütke Uphues <hg_lu@web.de>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ *
+ * ITE IT8705, IT8712(not tested) and IT8720 CIR-port support for lirc based
+ * via cut and paste from lirc_sir.c (C) 2000 Milan Pikula
+ *
+ * Attention: Sendmode only tested with debugging logs
+ *
+ * 2001/02/27 Christoph Bartelmus <lirc@bartelmus.de> :
+ * reimplemented read function
+ * 2005/06/05 Andrew Calkin implemented support for Asus Digimatrix,
+ * based on work of the following member of the Outertrack Digimatrix
+ * Forum: Art103 <r_tay@hotmail.com>
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <linux/version.h>
+#include <linux/module.h>
+#include <linux/sched.h>
+#include <linux/errno.h>
+#include <linux/signal.h>
+#include <linux/fs.h>
+#include <linux/interrupt.h>
+#include <linux/ioport.h>
+#include <linux/kernel.h>
+#include <linux/serial_reg.h>
+#include <linux/time.h>
+#include <linux/string.h>
+#include <linux/types.h>
+#include <linux/wait.h>
+#include <linux/mm.h>
+#include <linux/delay.h>
+#include <linux/poll.h>
+#include <asm/system.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+#include <asm/io.h>
+#include <asm/irq.h>
+#include <asm/fcntl.h>
+#else
+#include <linux/io.h>
+#include <linux/irq.h>
+#include <linux/fcntl.h>
+#endif
+
+#include <linux/timer.h>
+
+#include "../lirc.h"
+#include "../lirc_dev/lirc_dev.h"
+#include "../kcompat.h"
+
+#include "lirc_it87.h"
+
+#ifdef LIRC_IT87_DIGIMATRIX
+static int digimatrix = 1;
+static int it87_freq = 36; /* kHz */
+static int irq = 9;
+#else
+static int digimatrix;
+static int it87_freq = 38; /* kHz */
+static int irq = IT87_CIR_DEFAULT_IRQ;
+#endif
+
+static unsigned long it87_bits_in_byte_out;
+static unsigned long it87_send_counter;
+static unsigned char it87_RXEN_mask = IT87_CIR_RCR_RXEN;
+
+#define RBUF_LEN 1024
+#define WBUF_LEN 1024
+
+#define LIRC_DRIVER_NAME "lirc_it87"
+
+/* timeout for sequences in jiffies (=5/100s) */
+/* must be longer than TIME_CONST */
+#define IT87_TIMEOUT (HZ*5/100)
+
+/* module parameters */
+static int debug;
+#define dprintk(fmt, args...) \
+ do { \
+ if (debug) \
+ printk(KERN_DEBUG LIRC_DRIVER_NAME ": " \
+ fmt, ## args); \
+ } while (0)
+
+static int io = IT87_CIR_DEFAULT_IOBASE;
+/* receiver demodulator default: off */
+static int it87_enable_demodulator;
+
+static int timer_enabled;
+static DEFINE_SPINLOCK(timer_lock);
+static struct timer_list timerlist;
+/* time of last signal change detected */
+static struct timeval last_tv = {0, 0};
+/* time of last UART data ready interrupt */
+static struct timeval last_intr_tv = {0, 0};
+static int last_value;
+
+static DECLARE_WAIT_QUEUE_HEAD(lirc_read_queue);
+
+static DEFINE_SPINLOCK(hardware_lock);
+static DEFINE_SPINLOCK(dev_lock);
+
+static lirc_t rx_buf[RBUF_LEN];
+unsigned int rx_tail, rx_head;
+static lirc_t tx_buf[WBUF_LEN];
+
+/* SECTION: Prototypes */
+
+/* Communication with user-space */
+static int lirc_open(struct inode *inode, struct file *file);
+static int lirc_close(struct inode *inode, struct file *file);
+static unsigned int lirc_poll(struct file *file, poll_table *wait);
+static ssize_t lirc_read(struct file *file, char *buf,
+ size_t count, loff_t *ppos);
+static ssize_t lirc_write(struct file *file, const char *buf,
+ size_t n, loff_t *pos);
+static int lirc_ioctl(struct inode *node, struct file *filep,
+ unsigned int cmd, unsigned long arg);
+static void add_read_queue(int flag, unsigned long val);
+static int init_chrdev(void);
+static void drop_chrdev(void);
+ /* Hardware */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static irqreturn_t it87_interrupt(int irq, void *dev_id,
+ struct pt_regs *regs);
+#else
+static irqreturn_t it87_interrupt(int irq, void *dev_id);
+#endif
+static void send_space(unsigned long len);
+static void send_pulse(unsigned long len);
+static void init_send(void);
+static void terminate_send(unsigned long len);
+static int init_hardware(void);
+static void drop_hardware(void);
+/* Initialisation */
+static int init_port(void);
+static void drop_port(void);
+
+
+/* SECTION: Communication with user-space */
+
+static int lirc_open(struct inode *inode, struct file *file)
+{
+ spin_lock(&dev_lock);
+ if (MOD_IN_USE) {
+ spin_unlock(&dev_lock);
+ return -EBUSY;
+ }
+ MOD_INC_USE_COUNT;
+ spin_unlock(&dev_lock);
+ return 0;
+}
+
+
+static int lirc_close(struct inode *inode, struct file *file)
+{
+ MOD_DEC_USE_COUNT;
+ return 0;
+}
+
+
+static unsigned int lirc_poll(struct file *file, poll_table *wait)
+{
+ poll_wait(file, &lirc_read_queue, wait);
+ if (rx_head != rx_tail)
+ return POLLIN | POLLRDNORM;
+ return 0;
+}
+
+
+static ssize_t lirc_read(struct file *file, char *buf,
+ size_t count, loff_t *ppos)
+{
+ int n = 0;
+ int retval = 0;
+
+ while (n < count) {
+ if (file->f_flags & O_NONBLOCK && rx_head == rx_tail) {
+ retval = -EAGAIN;
+ break;
+ }
+ retval = wait_event_interruptible(lirc_read_queue,
+ rx_head != rx_tail);
+ if (retval)
+ break;
+
+ if (copy_to_user((void *) buf + n, (void *) (rx_buf + rx_head),
+ sizeof(lirc_t))) {
+ retval = -EFAULT;
+ break;
+ }
+ rx_head = (rx_head + 1) & (RBUF_LEN - 1);
+ n += sizeof(lirc_t);
+ }
+ if (n)
+ return n;
+ return retval;
+}
+
+
+static ssize_t lirc_write(struct file *file, const char *buf,
+ size_t n, loff_t *pos)
+{
+ int i = 0;
+
+ if (n % sizeof(lirc_t) || (n / sizeof(lirc_t)) > WBUF_LEN)
+ return -EINVAL;
+ if (copy_from_user(tx_buf, buf, n))
+ return -EFAULT;
+ n /= sizeof(lirc_t);
+ init_send();
+ while (1) {
+ if (i >= n)
+ break;
+ if (tx_buf[i])
+ send_pulse(tx_buf[i]);
+ i++;
+ if (i >= n)
+ break;
+ if (tx_buf[i])
+ send_space(tx_buf[i]);
+ i++;
+ }
+ terminate_send(tx_buf[i - 1]);
+ return n;
+}
+
+
+static int lirc_ioctl(struct inode *node, struct file *filep,
+ unsigned int cmd, unsigned long arg)
+{
+ int retval = 0;
+ unsigned long value = 0;
+ unsigned int ivalue;
+ unsigned long hw_flags;
+
+ if (cmd == LIRC_GET_FEATURES)
+ value = LIRC_CAN_SEND_PULSE |
+ LIRC_CAN_SET_SEND_CARRIER |
+ LIRC_CAN_REC_MODE2;
+ else if (cmd == LIRC_GET_SEND_MODE)
+ value = LIRC_MODE_PULSE;
+ else if (cmd == LIRC_GET_REC_MODE)
+ value = LIRC_MODE_MODE2;
+
+ switch (cmd) {
+ case LIRC_GET_FEATURES:
+ case LIRC_GET_SEND_MODE:
+ case LIRC_GET_REC_MODE:
+ retval = put_user(value, (unsigned long *) arg);
+ break;
+
+ case LIRC_SET_SEND_MODE:
+ case LIRC_SET_REC_MODE:
+ retval = get_user(value, (unsigned long *) arg);
+ break;
+
+ case LIRC_SET_SEND_CARRIER:
+ retval = get_user(ivalue, (unsigned int *) arg);
+ if (retval)
+ return retval;
+ ivalue /= 1000;
+ if (ivalue > IT87_CIR_FREQ_MAX ||
+ ivalue < IT87_CIR_FREQ_MIN)
+ return -EINVAL;
+
+ it87_freq = ivalue;
+
+ spin_lock_irqsave(&hardware_lock, hw_flags);
+ outb(((inb(io + IT87_CIR_TCR2) & IT87_CIR_TCR2_TXMPW) |
+ (it87_freq - IT87_CIR_FREQ_MIN) << 3),
+ io + IT87_CIR_TCR2);
+ spin_unlock_irqrestore(&hardware_lock, hw_flags);
+ dprintk("demodulation frequency: %d kHz\n", it87_freq);
+
+ break;
+
+ default:
+ retval = -EINVAL;
+ }
+
+ if (retval)
+ return retval;
+
+ if (cmd == LIRC_SET_REC_MODE) {
+ if (value != LIRC_MODE_MODE2)
+ retval = -ENOSYS;
+ } else if (cmd == LIRC_SET_SEND_MODE) {
+ if (value != LIRC_MODE_PULSE)
+ retval = -ENOSYS;
+ }
+ return retval;
+}
+
+static void add_read_queue(int flag, unsigned long val)
+{
+ unsigned int new_rx_tail;
+ lirc_t newval;
+
+ dprintk("add flag %d with val %lu\n", flag, val);
+
+ newval = val & PULSE_MASK;
+
+ /*
+ * statistically, pulses are ~TIME_CONST/2 too long. we could
+ * maybe make this more exact, but this is good enough
+ */
+ if (flag) {
+ /* pulse */
+ if (newval > TIME_CONST / 2)
+ newval -= TIME_CONST / 2;
+ else /* should not ever happen */
+ newval = 1;
+ newval |= PULSE_BIT;
+ } else
+ newval += TIME_CONST / 2;
+ new_rx_tail = (rx_tail + 1) & (RBUF_LEN - 1);
+ if (new_rx_tail == rx_head) {
+ dprintk("Buffer overrun.\n");
+ return;
+ }
+ rx_buf[rx_tail] = newval;
+ rx_tail = new_rx_tail;
+ wake_up_interruptible(&lirc_read_queue);
+}
+
+
+static struct file_operations lirc_fops = {
+ .owner = THIS_MODULE,
+ .read = lirc_read,
+ .write = lirc_write,
+ .poll = lirc_poll,
+ .ioctl = lirc_ioctl,
+ .open = lirc_open,
+ .release = lirc_close,
+};
+
+static int set_use_inc(void *data)
+{
+ return 0;
+}
+
+static void set_use_dec(void *data)
+{
+}
+
+static struct lirc_driver driver = {
+ .name = LIRC_DRIVER_NAME,
+ .minor = -1,
+ .code_length = 1,
+ .sample_rate = 0,
+ .data = NULL,
+ .add_to_buf = NULL,
+#ifndef LIRC_REMOVE_DURING_EXPORT
+ .get_queue = NULL,
+#endif
+ .set_use_inc = set_use_inc,
+ .set_use_dec = set_use_dec,
+ .fops = &lirc_fops,
+ .dev = NULL,
+ .owner = THIS_MODULE,
+};
+
+
+static int init_chrdev(void)
+{
+ driver.minor = lirc_register_driver(&driver);
+
+ if (driver.minor < 0) {
+ printk(KERN_ERR LIRC_DRIVER_NAME ": init_chrdev() failed.\n");
+ return -EIO;
+ }
+ return 0;
+}
+
+
+static void drop_chrdev(void)
+{
+ lirc_unregister_driver(driver.minor);
+}
+
+
+/* SECTION: Hardware */
+static long delta(struct timeval *tv1, struct timeval *tv2)
+{
+ unsigned long deltv;
+
+ deltv = tv2->tv_sec - tv1->tv_sec;
+ if (deltv > 15)
+ deltv = 0xFFFFFF;
+ else
+ deltv = deltv*1000000 + tv2->tv_usec - tv1->tv_usec;
+ return deltv;
+}
+
+static void it87_timeout(unsigned long data)
+{
+ unsigned long flags;
+
+ /* avoid interference with interrupt */
+ spin_lock_irqsave(&timer_lock, flags);
+
+ if (digimatrix) {
+ /* We have timed out. Disable the RX mechanism. */
+
+ outb((inb(io + IT87_CIR_RCR) & ~IT87_CIR_RCR_RXEN) |
+ IT87_CIR_RCR_RXACT, io + IT87_CIR_RCR);
+ if (it87_RXEN_mask)
+ outb(inb(io + IT87_CIR_RCR) | IT87_CIR_RCR_RXEN,
+ io + IT87_CIR_RCR);
+ dprintk(" TIMEOUT\n");
+ timer_enabled = 0;
+
+ /* fifo clear */
+ outb(inb(io + IT87_CIR_TCR1) | IT87_CIR_TCR1_FIFOCLR,
+ io+IT87_CIR_TCR1);
+
+ } else {
+ /*
+ * if last received signal was a pulse, but receiving stopped
+ * within the 9 bit frame, we need to finish this pulse and
+ * simulate a signal change to from pulse to space. Otherwise
+ * upper layers will receive two sequences next time.
+ */
+
+ if (last_value) {
+ unsigned long pulse_end;
+
+ /* determine 'virtual' pulse end: */
+ pulse_end = delta(&last_tv, &last_intr_tv);
+ dprintk("timeout add %d for %lu usec\n",
+ last_value, pulse_end);
+ add_read_queue(last_value, pulse_end);
+ last_value = 0;
+ last_tv = last_intr_tv;
+ }
+ }
+ spin_unlock_irqrestore(&timer_lock, flags);
+}
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static irqreturn_t it87_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+#else
+static irqreturn_t it87_interrupt(int irq, void *dev_id)
+#endif
+{
+ unsigned char data;
+ struct timeval curr_tv;
+ static unsigned long deltv;
+ unsigned long deltintrtv;
+ unsigned long flags, hw_flags;
+ int iir, lsr;
+ int fifo = 0;
+ static char lastbit;
+ char bit;
+
+ /* Bit duration in microseconds */
+ const unsigned long bit_duration = 1000000ul /
+ (115200 / IT87_CIR_BAUDRATE_DIVISOR);
+
+
+ iir = inb(io + IT87_CIR_IIR);
+
+ switch (iir & IT87_CIR_IIR_IID) {
+ case 0x4:
+ case 0x6:
+ lsr = inb(io + IT87_CIR_RSR) & (IT87_CIR_RSR_RXFTO |
+ IT87_CIR_RSR_RXFBC);
+ fifo = lsr & IT87_CIR_RSR_RXFBC;
+ dprintk("iir: 0x%x fifo: 0x%x\n", iir, lsr);
+
+ /* avoid interference with timer */
+ spin_lock_irqsave(&timer_lock, flags);
+ spin_lock_irqsave(&hardware_lock, hw_flags);
+ if (digimatrix) {
+ static unsigned long acc_pulse;
+ static unsigned long acc_space;
+
+ do {
+ data = inb(io + IT87_CIR_DR);
+ data = ~data;
+ fifo--;
+ if (data != 0x00) {
+ if (timer_enabled)
+ del_timer(&timerlist);
+ /*
+ * start timer for end of
+ * sequence detection
+ */
+ timerlist.expires = jiffies +
+ IT87_TIMEOUT;
+ add_timer(&timerlist);
+ timer_enabled = 1;
+ }
+ /* Loop through */
+ for (bit = 0; bit < 8; ++bit) {
+ if ((data >> bit) & 1) {
+ ++acc_pulse;
+ if (lastbit == 0) {
+ add_read_queue(0,
+ acc_space *
+ bit_duration);
+ acc_space = 0;
+ }
+ } else {
+ ++acc_space;
+ if (lastbit == 1) {
+ add_read_queue(1,
+ acc_pulse *
+ bit_duration);
+ acc_pulse = 0;
+ }
+ }
+ lastbit = (data >> bit) & 1;
+ }
+
+ } while (fifo != 0);
+ } else { /* Normal Operation */
+ do {
+ del_timer(&timerlist);
+ data = inb(io + IT87_CIR_DR);
+
+ dprintk("data=%.2x\n", data);
+ do_gettimeofday(&curr_tv);
+ deltv = delta(&last_tv, &curr_tv);
+ deltintrtv = delta(&last_intr_tv, &curr_tv);
+
+ dprintk("t %lu , d %d\n",
+ deltintrtv, (int)data);
+
+ /*
+ * if nothing came in last 2 cycles,
+ * it was gap
+ */
+ if (deltintrtv > TIME_CONST * 2) {
+ if (last_value) {
+ dprintk("GAP\n");
+
+ /* simulate signal change */
+ add_read_queue(last_value,
+ deltv -
+ deltintrtv);
+ last_value = 0;
+ last_tv.tv_sec =
+ last_intr_tv.tv_sec;
+ last_tv.tv_usec =
+ last_intr_tv.tv_usec;
+ deltv = deltintrtv;
+ }
+ }
+ data = 1;
+ if (data ^ last_value) {
+ /*
+ * deltintrtv > 2*TIME_CONST,
+ * remember ? the other case is
+ * timeout
+ */
+ add_read_queue(last_value,
+ deltv-TIME_CONST);
+ last_value = data;
+ last_tv = curr_tv;
+ if (last_tv.tv_usec >= TIME_CONST)
+ last_tv.tv_usec -= TIME_CONST;
+ else {
+ last_tv.tv_sec--;
+ last_tv.tv_usec += 1000000 -
+ TIME_CONST;
+ }
+ }
+ last_intr_tv = curr_tv;
+ if (data) {
+ /*
+ * start timer for end of
+ * sequence detection
+ */
+ timerlist.expires =
+ jiffies + IT87_TIMEOUT;
+ add_timer(&timerlist);
+ }
+ outb((inb(io + IT87_CIR_RCR) &
+ ~IT87_CIR_RCR_RXEN) |
+ IT87_CIR_RCR_RXACT,
+ io + IT87_CIR_RCR);
+ if (it87_RXEN_mask)
+ outb(inb(io + IT87_CIR_RCR) |
+ IT87_CIR_RCR_RXEN,
+ io + IT87_CIR_RCR);
+ fifo--;
+ } while (fifo != 0);
+ }
+ spin_unlock_irqrestore(&hardware_lock, hw_flags);
+ spin_unlock_irqrestore(&timer_lock, flags);
+
+ return IRQ_RETVAL(IRQ_HANDLED);
+
+ default:
+ /* not our irq */
+ dprintk("unknown IRQ (shouldn't happen) !!\n");
+ return IRQ_RETVAL(IRQ_NONE);
+ }
+}
+
+
+static void send_it87(unsigned long len, unsigned long stime,
+ unsigned char send_byte, unsigned int count_bits)
+{
+ long count = len / stime;
+ long time_left = 0;
+ static unsigned char byte_out;
+ unsigned long hw_flags;
+
+ dprintk("%s: len=%ld, sb=%d\n", __func__, len, send_byte);
+
+ time_left = (long)len - (long)count * (long)stime;
+ count += ((2 * time_left) / stime);
+ while (count) {
+ long i = 0;
+ for (i = 0; i < count_bits; i++) {
+ byte_out = (byte_out << 1) | (send_byte & 1);
+ it87_bits_in_byte_out++;
+ }
+ if (it87_bits_in_byte_out == 8) {
+ dprintk("out=0x%x, tsr_txfbc: 0x%x\n",
+ byte_out,
+ inb(io + IT87_CIR_TSR) &
+ IT87_CIR_TSR_TXFBC);
+
+ while ((inb(io + IT87_CIR_TSR) &
+ IT87_CIR_TSR_TXFBC) >= IT87_CIR_FIFO_SIZE)
+ ;
+
+ spin_lock_irqsave(&hardware_lock, hw_flags);
+ outb(byte_out, io + IT87_CIR_DR);
+ spin_unlock_irqrestore(&hardware_lock, hw_flags);
+
+ it87_bits_in_byte_out = 0;
+ it87_send_counter++;
+ byte_out = 0;
+ }
+ count--;
+ }
+}
+
+
+/*TODO: maybe exchange space and pulse because it8705 only modulates 0-bits */
+
+static void send_space(unsigned long len)
+{
+ send_it87(len, TIME_CONST, IT87_CIR_SPACE, IT87_CIR_BAUDRATE_DIVISOR);
+}
+
+static void send_pulse(unsigned long len)
+{
+ send_it87(len, TIME_CONST, IT87_CIR_PULSE, IT87_CIR_BAUDRATE_DIVISOR);
+}
+
+
+static void init_send()
+{
+ unsigned long flags;
+
+ spin_lock_irqsave(&hardware_lock, flags);
+ /* RXEN=0: receiver disable */
+ it87_RXEN_mask = 0;
+ outb(inb(io + IT87_CIR_RCR) & ~IT87_CIR_RCR_RXEN,
+ io + IT87_CIR_RCR);
+ spin_unlock_irqrestore(&hardware_lock, flags);
+ it87_bits_in_byte_out = 0;
+ it87_send_counter = 0;
+}
+
+
+static void terminate_send(unsigned long len)
+{
+ unsigned long flags;
+ unsigned long last = 0;
+
+ last = it87_send_counter;
+ /* make sure all necessary data has been sent */
+ while (last == it87_send_counter)
+ send_space(len);
+ /* wait until all data sent */
+ while ((inb(io + IT87_CIR_TSR) & IT87_CIR_TSR_TXFBC) != 0)
+ ;
+ /* then re-enable receiver */
+ spin_lock_irqsave(&hardware_lock, flags);
+ it87_RXEN_mask = IT87_CIR_RCR_RXEN;
+ outb(inb(io + IT87_CIR_RCR) | IT87_CIR_RCR_RXEN,
+ io + IT87_CIR_RCR);
+ spin_unlock_irqrestore(&hardware_lock, flags);
+}
+
+
+static int init_hardware(void)
+{
+ unsigned long flags;
+ unsigned char it87_rcr = 0;
+
+ spin_lock_irqsave(&hardware_lock, flags);
+ /* init cir-port */
+ /* enable r/w-access to Baudrate-Register */
+ outb(IT87_CIR_IER_BR, io + IT87_CIR_IER);
+ outb(IT87_CIR_BAUDRATE_DIVISOR % 0x100, io+IT87_CIR_BDLR);
+ outb(IT87_CIR_BAUDRATE_DIVISOR / 0x100, io+IT87_CIR_BDHR);
+ /* Baudrate Register off, define IRQs: Input only */
+ if (digimatrix) {
+ outb(IT87_CIR_IER_IEC | IT87_CIR_IER_RFOIE, io + IT87_CIR_IER);
+ /* RX: HCFS=0, RXDCR = 001b (33,75..38,25 kHz), RXEN=1 */
+ } else {
+ outb(IT87_CIR_IER_IEC | IT87_CIR_IER_RDAIE, io + IT87_CIR_IER);
+ /* RX: HCFS=0, RXDCR = 001b (35,6..40,3 kHz), RXEN=1 */
+ }
+ it87_rcr = (IT87_CIR_RCR_RXEN & it87_RXEN_mask) | 0x1;
+ if (it87_enable_demodulator)
+ it87_rcr |= IT87_CIR_RCR_RXEND;
+ outb(it87_rcr, io + IT87_CIR_RCR);
+ if (digimatrix) {
+ /* Set FIFO depth to 1 byte, and disable TX */
+ outb(inb(io + IT87_CIR_TCR1) | 0x00,
+ io + IT87_CIR_TCR1);
+
+ /*
+ * TX: it87_freq (36kHz), 'reserved' sensitivity
+ * setting (0x00)
+ */
+ outb(((it87_freq - IT87_CIR_FREQ_MIN) << 3) | 0x00,
+ io + IT87_CIR_TCR2);
+ } else {
+ /* TX: 38kHz, 13,3us (pulse-width) */
+ outb(((it87_freq - IT87_CIR_FREQ_MIN) << 3) | 0x06,
+ io + IT87_CIR_TCR2);
+ }
+ spin_unlock_irqrestore(&hardware_lock, flags);
+ return 0;
+}
+
+
+static void drop_hardware(void)
+{
+ unsigned long flags;
+
+ spin_lock_irqsave(&hardware_lock, flags);
+ disable_irq(irq);
+ /* receiver disable */
+ it87_RXEN_mask = 0;
+ outb(0x1, io + IT87_CIR_RCR);
+ /* turn off irqs */
+ outb(0, io + IT87_CIR_IER);
+ /* fifo clear */
+ outb(IT87_CIR_TCR1_FIFOCLR, io+IT87_CIR_TCR1);
+ /* reset */
+ outb(IT87_CIR_IER_RESET, io+IT87_CIR_IER);
+ enable_irq(irq);
+ spin_unlock_irqrestore(&hardware_lock, flags);
+}
+
+
+static unsigned char it87_read(unsigned char port)
+{
+ outb(port, IT87_ADRPORT);
+ return inb(IT87_DATAPORT);
+}
+
+
+static void it87_write(unsigned char port, unsigned char data)
+{
+ outb(port, IT87_ADRPORT);
+ outb(data, IT87_DATAPORT);
+}
+
+
+/* SECTION: Initialisation */
+
+static int init_port(void)
+{
+ unsigned long hw_flags;
+ int retval = 0;
+
+ unsigned char init_bytes[4] = IT87_INIT;
+ unsigned char it87_chipid = 0;
+ unsigned char ldn = 0;
+ unsigned int it87_io = 0;
+ unsigned int it87_irq = 0;
+
+ /* Enter MB PnP Mode */
+ outb(init_bytes[0], IT87_ADRPORT);
+ outb(init_bytes[1], IT87_ADRPORT);
+ outb(init_bytes[2], IT87_ADRPORT);
+ outb(init_bytes[3], IT87_ADRPORT);
+
+ /* 8712 or 8705 ? */
+ it87_chipid = it87_read(IT87_CHIP_ID1);
+ if (it87_chipid != 0x87) {
+ retval = -ENXIO;
+ return retval;
+ }
+ it87_chipid = it87_read(IT87_CHIP_ID2);
+ if ((it87_chipid != 0x12) &&
+ (it87_chipid != 0x05) &&
+ (it87_chipid != 0x20)) {
+ printk(KERN_INFO LIRC_DRIVER_NAME
+ ": no IT8705/12/20 found, exiting..\n");
+ retval = -ENXIO;
+ return retval;
+ }
+ printk(KERN_INFO LIRC_DRIVER_NAME
+ ": found IT87%.2x.\n",
+ it87_chipid);
+
+ /* get I/O-Port and IRQ */
+ if (it87_chipid == 0x12)
+ ldn = IT8712_CIR_LDN;
+ else
+ ldn = IT8705_CIR_LDN;
+ it87_write(IT87_LDN, ldn);
+
+ it87_io = it87_read(IT87_CIR_BASE_MSB) * 256 +
+ it87_read(IT87_CIR_BASE_LSB);
+ if (it87_io == 0) {
+ if (io == 0)
+ io = IT87_CIR_DEFAULT_IOBASE;
+ printk(KERN_INFO LIRC_DRIVER_NAME
+ ": set default io 0x%x\n",
+ io);
+ it87_write(IT87_CIR_BASE_MSB, io / 0x100);
+ it87_write(IT87_CIR_BASE_LSB, io % 0x100);
+ } else
+ io = it87_io;
+
+ it87_irq = it87_read(IT87_CIR_IRQ);
+ if (digimatrix || it87_irq == 0) {
+ if (irq == 0)
+ irq = IT87_CIR_DEFAULT_IRQ;
+ printk(KERN_INFO LIRC_DRIVER_NAME
+ ": set default irq 0x%x\n",
+ irq);
+ it87_write(IT87_CIR_IRQ, irq);
+ } else
+ irq = it87_irq;
+
+ spin_lock_irqsave(&hardware_lock, hw_flags);
+ /* reset */
+ outb(IT87_CIR_IER_RESET, io+IT87_CIR_IER);
+ /* fifo clear */
+ outb(IT87_CIR_TCR1_FIFOCLR |
+ /* IT87_CIR_TCR1_ILE | */
+ IT87_CIR_TCR1_TXRLE |
+ IT87_CIR_TCR1_TXENDF, io+IT87_CIR_TCR1);
+ spin_unlock_irqrestore(&hardware_lock, hw_flags);
+
+ /* get I/O port access and IRQ line */
+ if (request_region(io, 8, LIRC_DRIVER_NAME) == NULL) {
+ printk(KERN_ERR LIRC_DRIVER_NAME
+ ": i/o port 0x%.4x already in use.\n", io);
+ /* Leaving MB PnP Mode */
+ it87_write(IT87_CFGCTRL, 0x2);
+ return -EBUSY;
+ }
+
+ /* activate CIR-Device */
+ it87_write(IT87_CIR_ACT, 0x1);
+
+ /* Leaving MB PnP Mode */
+ it87_write(IT87_CFGCTRL, 0x2);
+
+ retval = request_irq(irq, it87_interrupt, 0 /*IRQF_DISABLED*/,
+ LIRC_DRIVER_NAME, NULL);
+ if (retval < 0) {
+ printk(KERN_ERR LIRC_DRIVER_NAME
+ ": IRQ %d already in use.\n",
+ irq);
+ release_region(io, 8);
+ return retval;
+ }
+
+ printk(KERN_INFO LIRC_DRIVER_NAME
+ ": I/O port 0x%.4x, IRQ %d.\n", io, irq);
+
+ init_timer(&timerlist);
+ timerlist.function = it87_timeout;
+ timerlist.data = 0xabadcafe;
+
+ return 0;
+}
+
+
+static void drop_port(void)
+{
+#if 0
+ unsigned char init_bytes[4] = IT87_INIT;
+
+ /* Enter MB PnP Mode */
+ outb(init_bytes[0], IT87_ADRPORT);
+ outb(init_bytes[1], IT87_ADRPORT);
+ outb(init_bytes[2], IT87_ADRPORT);
+ outb(init_bytes[3], IT87_ADRPORT);
+
+ /* deactivate CIR-Device */
+ it87_write(IT87_CIR_ACT, 0x0);
+
+ /* Leaving MB PnP Mode */
+ it87_write(IT87_CFGCTRL, 0x2);
+#endif
+
+ del_timer_sync(&timerlist);
+ free_irq(irq, NULL);
+ release_region(io, 8);
+}
+
+
+static int init_lirc_it87(void)
+{
+ int retval;
+
+ init_waitqueue_head(&lirc_read_queue);
+ retval = init_port();
+ if (retval < 0)
+ return retval;
+ init_hardware();
+ printk(KERN_INFO LIRC_DRIVER_NAME ": Installed.\n");
+ return 0;
+}
+
+
+static int __init lirc_it87_init(void)
+{
+ int retval;
+
+ retval = init_chrdev();
+ if (retval < 0)
+ return retval;
+ retval = init_lirc_it87();
+ if (retval) {
+ drop_chrdev();
+ return retval;
+ }
+ return 0;
+}
+
+
+static void __exit lirc_it87_exit(void)
+{
+ drop_hardware();
+ drop_chrdev();
+ drop_port();
+ printk(KERN_INFO LIRC_DRIVER_NAME ": Uninstalled.\n");
+}
+
+module_init(lirc_it87_init);
+module_exit(lirc_it87_exit);
+
+MODULE_DESCRIPTION("LIRC driver for ITE IT8712/IT8705 CIR port");
+MODULE_AUTHOR("Hans-Günter Lütke Uphues");
+MODULE_LICENSE("GPL");
+
+module_param(io, int, S_IRUGO);
+MODULE_PARM_DESC(io, "I/O base address (default: 0x310)");
+
+module_param(irq, int, S_IRUGO);
+#ifdef LIRC_IT87_DIGIMATRIX
+MODULE_PARM_DESC(irq, "Interrupt (1,3-12) (default: 9)");
+#else
+MODULE_PARM_DESC(irq, "Interrupt (1,3-12) (default: 7)");
+#endif
+
+module_param(it87_enable_demodulator, bool, S_IRUGO);
+MODULE_PARM_DESC(it87_enable_demodulator,
+ "Receiver demodulator enable/disable (1/0), default: 0");
+
+module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
+
+module_param(digimatrix, bool, S_IRUGO | S_IWUSR);
+#ifdef LIRC_IT87_DIGIMATRIX
+MODULE_PARM_DESC(digimatrix,
+ "Asus Digimatrix it87 compat. enable/disable (1/0), default: 1");
+#else
+MODULE_PARM_DESC(digimatrix,
+ "Asus Digimatrix it87 compat. enable/disable (1/0), default: 0");
+#endif
+
+
+module_param(it87_freq, int, S_IRUGO);
+#ifdef LIRC_IT87_DIGIMATRIX
+MODULE_PARM_DESC(it87_freq,
+ "Carrier demodulator frequency (kHz), (default: 36)");
+#else
+MODULE_PARM_DESC(it87_freq,
+ "Carrier demodulator frequency (kHz), (default: 38)");
+#endif
+EXPORT_NO_SYMBOLS;
diff --git a/ubuntu/lirc/lirc_it87/lirc_it87.h b/ubuntu/lirc/lirc_it87/lirc_it87.h
new file mode 100644
index 00000000000..cf021c893a3
--- /dev/null
+++ b/ubuntu/lirc/lirc_it87/lirc_it87.h
@@ -0,0 +1,116 @@
+/* lirc_it87.h */
+/* SECTION: Definitions */
+
+/********************************* ITE IT87xx ************************/
+
+/* based on the following documentation from ITE:
+ a) IT8712F Preliminary CIR Programming Guide V0.1
+ b) IT8705F Simple LPC I/O Preliminary Specification V0.3
+ c) IT8712F EC-LPC I/O Preliminary Specification V0.5
+*/
+
+/* IT8712/05 Ports: */
+#define IT87_ADRPORT 0x2e
+#define IT87_DATAPORT 0x2f
+#define IT87_INIT {0x87, 0x01, 0x55, 0x55}
+
+/* alternate Ports: */
+/*
+#define IT87_ADRPORT 0x4e
+#define IT87_DATAPORT 0x4f
+#define IT87_INIT {0x87, 0x01, 0x55, 0xaa}
+ */
+
+/* IT8712/05 Registers */
+#define IT87_CFGCTRL 0x2
+#define IT87_LDN 0x7
+#define IT87_CHIP_ID1 0x20
+#define IT87_CHIP_ID2 0x21
+#define IT87_CFG_VERSION 0x22
+#define IT87_SWSUSPEND 0x23
+
+#define IT8712_CIR_LDN 0xa
+#define IT8705_CIR_LDN 0x7
+
+/* CIR Configuration Registers: */
+#define IT87_CIR_ACT 0x30
+#define IT87_CIR_BASE_MSB 0x60
+#define IT87_CIR_BASE_LSB 0x61
+#define IT87_CIR_IRQ 0x70
+#define IT87_CIR_CONFIG 0xf0
+
+/* List of IT87_CIR registers: offset to BaseAddr */
+#define IT87_CIR_DR 0
+#define IT87_CIR_IER 1
+#define IT87_CIR_RCR 2
+#define IT87_CIR_TCR1 3
+#define IT87_CIR_TCR2 4
+#define IT87_CIR_TSR 5
+#define IT87_CIR_RSR 6
+#define IT87_CIR_BDLR 5
+#define IT87_CIR_BDHR 6
+#define IT87_CIR_IIR 7
+
+/* Bit Definition */
+/* IER: */
+#define IT87_CIR_IER_TM_EN 0x80
+#define IT87_CIR_IER_RESEVED 0x40
+#define IT87_CIR_IER_RESET 0x20
+#define IT87_CIR_IER_BR 0x10
+#define IT87_CIR_IER_IEC 0x8
+#define IT87_CIR_IER_RFOIE 0x4
+#define IT87_CIR_IER_RDAIE 0x2
+#define IT87_CIR_IER_TLDLIE 0x1
+
+/* RCR: */
+#define IT87_CIR_RCR_RDWOS 0x80
+#define IT87_CIR_RCR_HCFS 0x40
+#define IT87_CIR_RCR_RXEN 0x20
+#define IT87_CIR_RCR_RXEND 0x10
+#define IT87_CIR_RCR_RXACT 0x8
+#define IT87_CIR_RCR_RXDCR 0x7
+
+/* TCR1: */
+#define IT87_CIR_TCR1_FIFOCLR 0x80
+#define IT87_CIR_TCR1_ILE 0x40
+#define IT87_CIR_TCR1_FIFOTL 0x30
+#define IT87_CIR_TCR1_TXRLE 0x8
+#define IT87_CIR_TCR1_TXENDF 0x4
+#define IT87_CIR_TCR1_TXMPM 0x3
+
+/* TCR2: */
+#define IT87_CIR_TCR2_CFQ 0xf8
+#define IT87_CIR_TCR2_TXMPW 0x7
+
+/* TSR: */
+#define IT87_CIR_TSR_RESERVED 0xc0
+#define IT87_CIR_TSR_TXFBC 0x3f
+
+/* RSR: */
+#define IT87_CIR_RSR_RXFTO 0x80
+#define IT87_CIR_RSR_RESERVED 0x40
+#define IT87_CIR_RSR_RXFBC 0x3f
+
+/* IIR: */
+#define IT87_CIR_IIR_RESERVED 0xf8
+#define IT87_CIR_IIR_IID 0x6
+#define IT87_CIR_IIR_IIP 0x1
+
+/* TM: */
+#define IT87_CIR_TM_IL_SEL 0x80
+#define IT87_CIR_TM_RESERVED 0x40
+#define IT87_CIR_TM_TM_REG 0x3f
+
+#define IT87_CIR_FIFO_SIZE 32
+
+/* Baudratedivisor for IT87: power of 2: only 1,2,4 or 8) */
+#define IT87_CIR_BAUDRATE_DIVISOR 0x1
+#define IT87_CIR_DEFAULT_IOBASE 0x310
+#define IT87_CIR_DEFAULT_IRQ 0x7
+#define IT87_CIR_SPACE 0x00
+#define IT87_CIR_PULSE 0xff
+#define IT87_CIR_FREQ_MIN 27
+#define IT87_CIR_FREQ_MAX 58
+#define TIME_CONST (IT87_CIR_BAUDRATE_DIVISOR * 8000000ul / 115200ul)
+
+/********************************* ITE IT87xx ************************/
diff --git a/ubuntu/lirc/lirc_ite8709/Makefile b/ubuntu/lirc/lirc_ite8709/Makefile
new file mode 100644
index 00000000000..1d8387cf092
--- /dev/null
+++ b/ubuntu/lirc/lirc_ite8709/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_ITE8709) += lirc_ite8709.o
diff --git a/ubuntu/lirc/lirc_ite8709/lirc_ite8709.c b/ubuntu/lirc/lirc_ite8709/lirc_ite8709.c
new file mode 100644
index 00000000000..bcbc2ad0b03
--- /dev/null
+++ b/ubuntu/lirc/lirc_ite8709/lirc_ite8709.c
@@ -0,0 +1,552 @@
+/*
+ * LIRC driver for ITE8709 CIR port
+ *
+ * Copyright (C) 2008 Grégory Lardière <spmf2004-lirc@yahoo.fr>
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ * USA
+ */
+
+#include <linux/version.h>
+#include <linux/module.h>
+#include <linux/pnp.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+#include <asm/io.h>
+#else
+#include <linux/io.h>
+#endif
+
+#include "../lirc.h"
+#include "../lirc_dev/lirc_dev.h"
+#include "../kcompat.h"
+
+#define LIRC_DRIVER_NAME "lirc_ite8709"
+
+#define BUF_CHUNK_SIZE sizeof(lirc_t)
+#define BUF_SIZE (128*BUF_CHUNK_SIZE)
+
+/*
+ * The ITE8709 device seems to be the combination of IT8512 superIO chip and
+ * a specific firmware running on the IT8512's embedded micro-controller.
+ * In addition of the embedded micro-controller, the IT8512 chip contains a
+ * CIR module and several other modules. A few modules are directly accessible
+ * by the host CPU, but most of them are only accessible by the
+ * micro-controller. The CIR module is only accessible by the micro-controller.
+ * The battery-backed SRAM module is accessible by the host CPU and the
+ * micro-controller. So one of the MC's firmware role is to act as a bridge
+ * between the host CPU and the CIR module. The firmware implements a kind of
+ * communication protocol using the SRAM module as a shared memory. The IT8512
+ * specification is publicly available on ITE's web site, but the communication
+ * protocol is not, so it was reverse-engineered.
+ */
+
+/* ITE8709 Registers addresses and values (reverse-engineered) */
+#define ITE8709_MODE 0x1a
+#define ITE8709_REG_ADR 0x1b
+#define ITE8709_REG_VAL 0x1c
+#define ITE8709_IIR 0x1e /* Interrupt identification register */
+#define ITE8709_RFSR 0x1f /* Receiver FIFO status register */
+#define ITE8709_FIFO_START 0x20
+
+#define ITE8709_MODE_READY 0X00
+#define ITE8709_MODE_WRITE 0X01
+#define ITE8709_MODE_READ 0X02
+#define ITE8709_IIR_RDAI 0x02 /* Receiver data available interrupt */
+#define ITE8709_IIR_RFOI 0x04 /* Receiver FIFO overrun interrupt */
+#define ITE8709_RFSR_MASK 0x3f /* FIFO byte count mask */
+
+/*
+ * IT8512 CIR-module registers addresses and values
+ * (from IT8512 E/F specification v0.4.1)
+ */
+#define IT8512_REG_MSTCR 0x01 /* Master control register */
+#define IT8512_REG_IER 0x02 /* Interrupt enable register */
+#define IT8512_REG_CFR 0x04 /* Carrier frequency register */
+#define IT8512_REG_RCR 0x05 /* Receive control register */
+#define IT8512_REG_BDLR 0x08 /* Baud rate divisor low byte register */
+#define IT8512_REG_BDHR 0x09 /* Baud rate divisor high byte register */
+
+#define IT8512_MSTCR_RESET 0x01 /* Reset registers to default value */
+#define IT8512_MSTCR_FIFOCLR 0x02 /* Clear FIFO */
+#define IT8512_MSTCR_FIFOTL_7 0x04 /* FIFO threshold level : 7 */
+#define IT8512_MSTCR_FIFOTL_25 0x0c /* FIFO threshold level : 25 */
+#define IT8512_IER_RDAIE 0x02 /* Enable data interrupt request */
+#define IT8512_IER_RFOIE 0x04 /* Enable FIFO overrun interrupt req */
+#define IT8512_IER_IEC 0x80 /* Enable interrupt request */
+#define IT8512_CFR_CF_36KHZ 0x09 /* Carrier freq : low speed, 36kHz */
+#define IT8512_RCR_RXDCR_1 0x01 /* Demodulation carrier range : 1 */
+#define IT8512_RCR_RXACT 0x08 /* Receiver active */
+#define IT8512_RCR_RXEN 0x80 /* Receiver enable */
+#define IT8512_BDR_6 6 /* Baud rate divisor : 6 */
+
+/* Actual values used by this driver */
+#define CFG_FIFOTL IT8512_MSTCR_FIFOTL_25
+#define CFG_CR_FREQ IT8512_CFR_CF_36KHZ
+#define CFG_DCR IT8512_RCR_RXDCR_1
+#define CFG_BDR IT8512_BDR_6
+#define CFG_TIMEOUT 100000 /* Rearm interrupt when a space is > 100 ms */
+
+static int debug;
+
+struct ite8709_device {
+ int use_count;
+ int io;
+ int irq;
+ spinlock_t hardware_lock;
+ unsigned long long acc_pulse;
+ unsigned long long acc_space;
+ char lastbit;
+ struct timeval last_tv;
+ struct lirc_driver driver;
+ struct lirc_buffer buffer;
+ struct tasklet_struct tasklet;
+ char force_rearm;
+ char rearmed;
+ char device_busy;
+};
+
+#define dprintk(fmt, args...) \
+ do { \
+ if (debug) \
+ printk(KERN_DEBUG LIRC_DRIVER_NAME ": " \
+ fmt, ## args); \
+ } while (0)
+
+
+static unsigned char ite8709_read(struct ite8709_device *dev,
+ unsigned char port)
+{
+ outb(port, dev->io);
+ return inb(dev->io+1);
+}
+
+static void ite8709_write(struct ite8709_device *dev, unsigned char port,
+ unsigned char data)
+{
+ outb(port, dev->io);
+ outb(data, dev->io+1);
+}
+
+static void ite8709_wait_device(struct ite8709_device *dev)
+{
+ int i = 0;
+ /*
+ * loop until device tells it's ready to continue
+ * iterations count is usually ~750 but can sometimes achieve 13000
+ */
+ for (i = 0; i < 15000; i++) {
+ udelay(2);
+ if (ite8709_read(dev, ITE8709_MODE) == ITE8709_MODE_READY)
+ break;
+ }
+}
+
+static void ite8709_write_register(struct ite8709_device *dev,
+ unsigned char reg_adr, unsigned char reg_value)
+{
+ ite8709_wait_device(dev);
+
+ ite8709_write(dev, ITE8709_REG_VAL, reg_value);
+ ite8709_write(dev, ITE8709_REG_ADR, reg_adr);
+ ite8709_write(dev, ITE8709_MODE, ITE8709_MODE_WRITE);
+}
+
+static void ite8709_init_hardware(struct ite8709_device *dev)
+{
+ spin_lock_irq(&dev->hardware_lock);
+ dev->device_busy = 1;
+ spin_unlock_irq(&dev->hardware_lock);
+
+ ite8709_write_register(dev, IT8512_REG_BDHR, (CFG_BDR >> 8) & 0xff);
+ ite8709_write_register(dev, IT8512_REG_BDLR, CFG_BDR & 0xff);
+ ite8709_write_register(dev, IT8512_REG_CFR, CFG_CR_FREQ);
+ ite8709_write_register(dev, IT8512_REG_IER,
+ IT8512_IER_IEC | IT8512_IER_RFOIE | IT8512_IER_RDAIE);
+ ite8709_write_register(dev, IT8512_REG_RCR, CFG_DCR);
+ ite8709_write_register(dev, IT8512_REG_MSTCR,
+ CFG_FIFOTL | IT8512_MSTCR_FIFOCLR);
+ ite8709_write_register(dev, IT8512_REG_RCR,
+ IT8512_RCR_RXEN | IT8512_RCR_RXACT | CFG_DCR);
+
+ spin_lock_irq(&dev->hardware_lock);
+ dev->device_busy = 0;
+ spin_unlock_irq(&dev->hardware_lock);
+
+ tasklet_enable(&dev->tasklet);
+}
+
+static void ite8709_drop_hardware(struct ite8709_device *dev)
+{
+ tasklet_disable(&dev->tasklet);
+
+ spin_lock_irq(&dev->hardware_lock);
+ dev->device_busy = 1;
+ spin_unlock_irq(&dev->hardware_lock);
+
+ ite8709_write_register(dev, IT8512_REG_RCR, 0);
+ ite8709_write_register(dev, IT8512_REG_MSTCR,
+ IT8512_MSTCR_RESET | IT8512_MSTCR_FIFOCLR);
+
+ spin_lock_irq(&dev->hardware_lock);
+ dev->device_busy = 0;
+ spin_unlock_irq(&dev->hardware_lock);
+}
+
+static int ite8709_set_use_inc(void *data)
+{
+ struct ite8709_device *dev;
+ MOD_INC_USE_COUNT;
+ dev = data;
+ if (dev->use_count == 0)
+ ite8709_init_hardware(dev);
+ dev->use_count++;
+ return 0;
+}
+
+static void ite8709_set_use_dec(void *data)
+{
+ struct ite8709_device *dev;
+ MOD_DEC_USE_COUNT;
+ dev = data;
+ dev->use_count--;
+ if (dev->use_count == 0)
+ ite8709_drop_hardware(dev);
+}
+
+static void ite8709_add_read_queue(struct ite8709_device *dev, int flag,
+ unsigned long long val)
+{
+ lirc_t value;
+
+ dprintk("add a %llu usec %s\n", val, flag ? "pulse" : "space");
+
+ value = (val > PULSE_MASK) ? PULSE_MASK : val;
+ if (flag)
+ value |= PULSE_BIT;
+
+ if (!lirc_buffer_full(&dev->buffer)) {
+ lirc_buffer_write(&dev->buffer, (void *) &value);
+ wake_up(&dev->buffer.wait_poll);
+ }
+}
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static irqreturn_t ite8709_interrupt(int irq, void *dev_id,
+ struct pt_regs *regs)
+#else
+static irqreturn_t ite8709_interrupt(int irq, void *dev_id)
+#endif
+{
+ unsigned char data;
+ int iir, rfsr, i;
+ int fifo = 0;
+ char bit;
+ struct timeval curr_tv;
+
+ /* Bit duration in microseconds */
+ const unsigned long bit_duration = 1000000ul / (115200 / CFG_BDR);
+
+ struct ite8709_device *dev;
+ dev = dev_id;
+
+ /*
+ * If device is busy, we simply discard data because we are in one of
+ * these two cases : shutting down or rearming the device, so this
+ * doesn't really matter and this avoids waiting too long in IRQ ctx
+ */
+ spin_lock(&dev->hardware_lock);
+ if (dev->device_busy) {
+ spin_unlock(&dev->hardware_lock);
+ return IRQ_RETVAL(IRQ_HANDLED);
+ }
+
+ iir = ite8709_read(dev, ITE8709_IIR);
+
+ switch (iir) {
+ case ITE8709_IIR_RFOI:
+ dprintk("fifo overrun, scheduling forced rearm just in case\n");
+ dev->force_rearm = 1;
+ tasklet_schedule(&dev->tasklet);
+ spin_unlock(&dev->hardware_lock);
+ return IRQ_RETVAL(IRQ_HANDLED);
+
+ case ITE8709_IIR_RDAI:
+ rfsr = ite8709_read(dev, ITE8709_RFSR);
+ fifo = rfsr & ITE8709_RFSR_MASK;
+ if (fifo > 32)
+ fifo = 32;
+ dprintk("iir: 0x%x rfsr: 0x%x fifo: %d\n", iir, rfsr, fifo);
+
+ if (dev->rearmed) {
+ do_gettimeofday(&curr_tv);
+ dev->acc_space += 1000000ull
+ * (curr_tv.tv_sec - dev->last_tv.tv_sec)
+ + (curr_tv.tv_usec - dev->last_tv.tv_usec);
+ dev->rearmed = 0;
+ }
+ for (i = 0; i < fifo; i++) {
+ data = ite8709_read(dev, i+ITE8709_FIFO_START);
+ data = ~data;
+ /* Loop through */
+ for (bit = 0; bit < 8; ++bit) {
+ if ((data >> bit) & 1) {
+ dev->acc_pulse += bit_duration;
+ if (dev->lastbit == 0) {
+ ite8709_add_read_queue(dev, 0,
+ dev->acc_space);
+ dev->acc_space = 0;
+ }
+ } else {
+ dev->acc_space += bit_duration;
+ if (dev->lastbit == 1) {
+ ite8709_add_read_queue(dev, 1,
+ dev->acc_pulse);
+ dev->acc_pulse = 0;
+ }
+ }
+ dev->lastbit = (data >> bit) & 1;
+ }
+ }
+ ite8709_write(dev, ITE8709_RFSR, 0);
+
+ if (dev->acc_space > CFG_TIMEOUT) {
+ dprintk("scheduling rearm IRQ\n");
+ do_gettimeofday(&dev->last_tv);
+ dev->force_rearm = 0;
+ tasklet_schedule(&dev->tasklet);
+ }
+
+ spin_unlock(&dev->hardware_lock);
+ return IRQ_RETVAL(IRQ_HANDLED);
+
+ default:
+ /* not our irq */
+ dprintk("unknown IRQ (shouldn't happen) !!\n");
+ spin_unlock(&dev->hardware_lock);
+ return IRQ_RETVAL(IRQ_NONE);
+ }
+}
+
+static void ite8709_rearm_irq(unsigned long data)
+{
+ struct ite8709_device *dev;
+ unsigned long flags;
+ dev = (struct ite8709_device *) data;
+
+ spin_lock_irqsave(&dev->hardware_lock, flags);
+ dev->device_busy = 1;
+ spin_unlock_irqrestore(&dev->hardware_lock, flags);
+
+ if (dev->force_rearm || dev->acc_space > CFG_TIMEOUT) {
+ dprintk("rearming IRQ\n");
+ ite8709_write_register(dev, IT8512_REG_RCR,
+ IT8512_RCR_RXACT | CFG_DCR);
+ ite8709_write_register(dev, IT8512_REG_MSTCR,
+ CFG_FIFOTL | IT8512_MSTCR_FIFOCLR);
+ ite8709_write_register(dev, IT8512_REG_RCR,
+ IT8512_RCR_RXEN | IT8512_RCR_RXACT | CFG_DCR);
+ if (!dev->force_rearm)
+ dev->rearmed = 1;
+ dev->force_rearm = 0;
+ }
+
+ spin_lock_irqsave(&dev->hardware_lock, flags);
+ dev->device_busy = 0;
+ spin_unlock_irqrestore(&dev->hardware_lock, flags);
+}
+
+static int ite8709_cleanup(struct ite8709_device *dev, int stage, int errno,
+ char *msg)
+{
+ if (msg != NULL)
+ printk(KERN_ERR LIRC_DRIVER_NAME ": %s\n", msg);
+
+ switch (stage) {
+ case 6:
+ if (dev->use_count > 0)
+ ite8709_drop_hardware(dev);
+ case 5:
+ free_irq(dev->irq, dev);
+ case 4:
+ release_region(dev->io, 2);
+ case 3:
+ lirc_unregister_driver(dev->driver.minor);
+ case 2:
+ lirc_buffer_free(dev->driver.rbuf);
+ case 1:
+ kfree(dev);
+ case 0:
+ ;
+ }
+
+ return errno;
+}
+
+static int __devinit ite8709_pnp_probe(struct pnp_dev *dev,
+ const struct pnp_device_id *dev_id)
+{
+ struct lirc_driver *driver;
+ struct ite8709_device *ite8709_dev;
+ int ret;
+
+ /* Check resources validity */
+ if (!pnp_irq_valid(dev, 0))
+ return ite8709_cleanup(NULL, 0, -ENODEV, "invalid IRQ");
+ if (!pnp_port_valid(dev, 2))
+ return ite8709_cleanup(NULL, 0, -ENODEV, "invalid IO port");
+
+ /* Allocate memory for device struct */
+ ite8709_dev = kzalloc(sizeof(struct ite8709_device), GFP_KERNEL);
+ if (ite8709_dev == NULL)
+ return ite8709_cleanup(NULL, 0, -ENOMEM, "kzalloc failed");
+ pnp_set_drvdata(dev, ite8709_dev);
+
+ /* Initialize device struct */
+ ite8709_dev->use_count = 0;
+ ite8709_dev->irq = pnp_irq(dev, 0);
+ ite8709_dev->io = pnp_port_start(dev, 2);
+ ite8709_dev->hardware_lock = __SPIN_LOCK_UNLOCKED(
+ ite8709_dev->hardware_lock);
+ ite8709_dev->acc_pulse = 0;
+ ite8709_dev->acc_space = 0;
+ ite8709_dev->lastbit = 0;
+ do_gettimeofday(&ite8709_dev->last_tv);
+ tasklet_init(&ite8709_dev->tasklet, ite8709_rearm_irq,
+ (long) ite8709_dev);
+ ite8709_dev->force_rearm = 0;
+ ite8709_dev->rearmed = 0;
+ ite8709_dev->device_busy = 0;
+
+ /* Initialize driver struct */
+ driver = &ite8709_dev->driver;
+ strcpy(driver->name, LIRC_DRIVER_NAME);
+ driver->minor = -1;
+ driver->code_length = sizeof(lirc_t) * 8;
+ driver->sample_rate = 0;
+ driver->features = LIRC_CAN_REC_MODE2;
+ driver->data = ite8709_dev;
+ driver->add_to_buf = NULL;
+#ifndef LIRC_REMOVE_DURING_EXPORT
+ driver->get_queue = NULL;
+#endif
+ driver->rbuf = &ite8709_dev->buffer;
+ driver->set_use_inc = ite8709_set_use_inc;
+ driver->set_use_dec = ite8709_set_use_dec;
+ driver->fops = NULL;
+ driver->dev = &dev->dev;
+ driver->owner = THIS_MODULE;
+
+ /* Initialize LIRC buffer */
+ if (lirc_buffer_init(driver->rbuf, BUF_CHUNK_SIZE, BUF_SIZE))
+ return ite8709_cleanup(ite8709_dev, 1, -ENOMEM,
+ "lirc_buffer_init() failed");
+
+ /* Register LIRC driver */
+ ret = lirc_register_driver(driver);
+ if (ret < 0)
+ return ite8709_cleanup(ite8709_dev, 2, ret,
+ "lirc_register_driver() failed");
+
+ /* Reserve I/O port access */
+ if (!request_region(ite8709_dev->io, 2, LIRC_DRIVER_NAME))
+ return ite8709_cleanup(ite8709_dev, 3, -EBUSY,
+ "i/o port already in use");
+
+ /* Reserve IRQ line */
+ ret = request_irq(ite8709_dev->irq, ite8709_interrupt, 0,
+ LIRC_DRIVER_NAME, ite8709_dev);
+ if (ret < 0)
+ return ite8709_cleanup(ite8709_dev, 4, ret,
+ "IRQ already in use");
+
+ /* Initialize hardware */
+ ite8709_drop_hardware(ite8709_dev); /* Shutdown hw until first use */
+
+ printk(KERN_INFO LIRC_DRIVER_NAME ": device found : irq=%d io=0x%x\n",
+ ite8709_dev->irq, ite8709_dev->io);
+
+ return 0;
+}
+
+static void __devexit ite8709_pnp_remove(struct pnp_dev *dev)
+{
+ struct ite8709_device *ite8709_dev;
+ ite8709_dev = pnp_get_drvdata(dev);
+
+ ite8709_cleanup(ite8709_dev, 6, 0, NULL);
+
+ printk(KERN_INFO LIRC_DRIVER_NAME ": device removed\n");
+}
+
+#ifdef CONFIG_PM
+static int ite8709_pnp_suspend(struct pnp_dev *dev, pm_message_t state)
+{
+ struct ite8709_device *ite8709_dev;
+ ite8709_dev = pnp_get_drvdata(dev);
+
+ if (ite8709_dev->use_count > 0)
+ ite8709_drop_hardware(ite8709_dev);
+
+ return 0;
+}
+
+static int ite8709_pnp_resume(struct pnp_dev *dev)
+{
+ struct ite8709_device *ite8709_dev;
+ ite8709_dev = pnp_get_drvdata(dev);
+
+ if (ite8709_dev->use_count > 0)
+ ite8709_init_hardware(ite8709_dev);
+
+ return 0;
+}
+#else
+#define ite8709_pnp_suspend NULL
+#define ite8709_pnp_resume NULL
+#endif
+
+static const struct pnp_device_id pnp_dev_table[] = {
+ {"ITE8709", 0},
+ {}
+};
+
+MODULE_DEVICE_TABLE(pnp, pnp_dev_table);
+
+static struct pnp_driver ite8709_pnp_driver = {
+ .name = LIRC_DRIVER_NAME,
+ .probe = ite8709_pnp_probe,
+ .remove = __devexit_p(ite8709_pnp_remove),
+ .suspend = ite8709_pnp_suspend,
+ .resume = ite8709_pnp_resume,
+ .id_table = pnp_dev_table,
+};
+
+int init_module(void)
+{
+ return pnp_register_driver(&ite8709_pnp_driver);
+}
+
+void cleanup_module(void)
+{
+ pnp_unregister_driver(&ite8709_pnp_driver);
+}
+
+MODULE_DESCRIPTION("LIRC driver for ITE8709 CIR port");
+MODULE_AUTHOR("Grégory Lardière");
+MODULE_LICENSE("GPL");
+
+module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
+EXPORT_NO_SYMBOLS;
diff --git a/ubuntu/lirc/lirc_mceusb/Makefile b/ubuntu/lirc/lirc_mceusb/Makefile
new file mode 100644
index 00000000000..4ea43b471fb
--- /dev/null
+++ b/ubuntu/lirc/lirc_mceusb/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_MCEUSB) += lirc_mceusb.o
diff --git a/ubuntu/lirc/lirc_mceusb/lirc_mceusb.c b/ubuntu/lirc/lirc_mceusb/lirc_mceusb.c
new file mode 100644
index 00000000000..4813b31fb30
--- /dev/null
+++ b/ubuntu/lirc/lirc_mceusb/lirc_mceusb.c
@@ -0,0 +1,1288 @@
+/*
+ * LIRC driver for Windows Media Center Edition USB Infrared Transceivers
+ *
+ * (C) by Martin A. Blatter <martin_a_blatter@yahoo.com>
+ *
+ * Transmitter support and reception code cleanup.
+ * (C) by Daniel Melander <lirc@rajidae.se>
+ *
+ * Original lirc_mceusb driver for 1st-gen device:
+ * Copyright (c) 2003-2004 Dan Conti <dconti@acm.wwu.edu>
+ *
+ * Original lirc_mceusb driver deprecated in favor of this driver, which
+ * supports the 1st-gen device now too. Transmitting on the 1st-gen device
+ * only functions on port #2 at the moment.
+ *
+ * Support for 1st-gen device added June 2009,
+ * by Jarod Wilson <jarod@wilsonet.com>
+ *
+ * Initial transmission support for 1st-gen device added August 2009,
+ * by Patrick Calhoun <phineas@ou.edu>
+ *
+ * Derived from ATI USB driver by Paul Miller and the original
+ * MCE USB driver by Dan Conti ((and now including chunks of the latter
+ * relevant to the 1st-gen device initialization)
+ *
+ * This driver will only work reliably with kernel version 2.6.10
+ * or higher, probably because of differences in USB device enumeration
+ * in the kernel code. Device initialization fails most of the time
+ * with earlier kernel versions.
+ *
+ **********************************************************************
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 5)
+#error "*******************************************************"
+#error "Sorry, this driver needs kernel version 2.6.5 or higher"
+#error "*******************************************************"
+#endif
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/module.h>
+#include <linux/kmod.h>
+#include <linux/smp_lock.h>
+#include <linux/completion.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
+#include <asm/uaccess.h>
+#else
+#include <linux/uaccess.h>
+#endif
+#include <linux/usb.h>
+#include <linux/wait.h>
+#include <linux/time.h>
+
+#include "../lirc.h"
+#include "../kcompat.h"
+#include "../lirc_dev/lirc_dev.h"
+
+#define DRIVER_VERSION "1.90"
+#define DRIVER_AUTHOR "Daniel Melander <lirc@rajidae.se>, " \
+ "Martin Blatter <martin_a_blatter@yahoo.com>, " \
+ "Dan Conti <dconti@acm.wwu.edu>"
+#define DRIVER_DESC "Windows Media Center Edition USB IR Transceiver " \
+ "driver for LIRC"
+#define DRIVER_NAME "lirc_mceusb"
+
+#define USB_BUFLEN 32 /* USB reception buffer length */
+#define LIRCBUF_SIZE 256 /* LIRC work buffer length */
+
+/* MCE constants */
+#define MCE_CMDBUF_SIZE 384 /* MCE Command buffer length */
+#define MCE_TIME_UNIT 50 /* Approx 50us resolution */
+#define MCE_CODE_LENGTH 5 /* Normal length of packet (with header) */
+#define MCE_PACKET_SIZE 4 /* Normal length of packet (without header) */
+#define MCE_PACKET_HEADER 0x84 /* Actual header format is 0x80 + num_bytes */
+#define MCE_CONTROL_HEADER 0x9F /* MCE status header */
+#define MCE_TX_HEADER_LENGTH 3 /* # of bytes in the initializing tx header */
+#define MCE_MAX_CHANNELS 2 /* Two transmitters, hardware dependent? */
+#define MCE_DEFAULT_TX_MASK 0x03 /* Val opts: TX1=0x01, TX2=0x02, ALL=0x03 */
+#define MCE_PULSE_BIT 0x80 /* Pulse bit, MSB set == PULSE else SPACE */
+#define MCE_PULSE_MASK 0x7F /* Pulse mask */
+#define MCE_MAX_PULSE_LENGTH 0x7F /* Longest transmittable pulse symbol */
+#define MCE_PACKET_LENGTH_MASK 0x7F /* Pulse mask */
+
+
+/* module parameters */
+#ifdef CONFIG_USB_DEBUG
+static int debug = 1;
+#else
+static int debug;
+#endif
+#define dprintk(fmt, args...) \
+ do { \
+ if (debug) \
+ printk(KERN_DEBUG fmt, ## args); \
+ } while (0)
+
+/* general constants */
+#define SEND_FLAG_IN_PROGRESS 1
+#define SEND_FLAG_COMPLETE 2
+#define RECV_FLAG_IN_PROGRESS 3
+#define RECV_FLAG_COMPLETE 4
+
+#define MCEUSB_INBOUND 1
+#define MCEUSB_OUTBOUND 2
+
+#define VENDOR_PHILIPS 0x0471
+#define VENDOR_SMK 0x0609
+#define VENDOR_TATUNG 0x1460
+#define VENDOR_GATEWAY 0x107b
+#define VENDOR_SHUTTLE 0x1308
+#define VENDOR_SHUTTLE2 0x051c
+#define VENDOR_MITSUMI 0x03ee
+#define VENDOR_TOPSEED 0x1784
+#define VENDOR_RICAVISION 0x179d
+#define VENDOR_ITRON 0x195d
+#define VENDOR_FIC 0x1509
+#define VENDOR_LG 0x043e
+#define VENDOR_MICROSOFT 0x045e
+#define VENDOR_FORMOSA 0x147a
+#define VENDOR_FINTEK 0x1934
+#define VENDOR_PINNACLE 0x2304
+#define VENDOR_ECS 0x1019
+#define VENDOR_WISTRON 0x0fb8
+#define VENDOR_COMPRO 0x185b
+#define VENDOR_NORTHSTAR 0x04eb
+
+static struct usb_device_id mceusb_dev_table[] = {
+ /* Original Microsoft MCE IR Transceiver (often HP-branded) */
+ { USB_DEVICE(VENDOR_MICROSOFT, 0x006d) },
+ /* Philips Infrared Transceiver - Sahara branded */
+ { USB_DEVICE(VENDOR_PHILIPS, 0x0608) },
+ /* Philips Infrared Transceiver - HP branded */
+ { USB_DEVICE(VENDOR_PHILIPS, 0x060c) },
+ /* Philips SRM5100 */
+ { USB_DEVICE(VENDOR_PHILIPS, 0x060d) },
+ /* Philips Infrared Transceiver - Omaura */
+ { USB_DEVICE(VENDOR_PHILIPS, 0x060f) },
+ /* Philips Infrared Transceiver - Spinel plus */
+ { USB_DEVICE(VENDOR_PHILIPS, 0x0613) },
+ /* Philips eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_PHILIPS, 0x0815) },
+ /* SMK/Toshiba G83C0004D410 */
+ { USB_DEVICE(VENDOR_SMK, 0x031d) },
+ /* SMK eHome Infrared Transceiver (Sony VAIO) */
+ { USB_DEVICE(VENDOR_SMK, 0x0322) },
+ /* bundled with Hauppauge PVR-150 */
+ { USB_DEVICE(VENDOR_SMK, 0x0334) },
+ /* Tatung eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_TATUNG, 0x9150) },
+ /* Shuttle eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_SHUTTLE, 0xc001) },
+ /* Shuttle eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_SHUTTLE2, 0xc001) },
+ /* Gateway eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_GATEWAY, 0x3009) },
+ /* Mitsumi */
+ { USB_DEVICE(VENDOR_MITSUMI, 0x2501) },
+ /* Topseed eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_TOPSEED, 0x0001) },
+ /* Topseed HP eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_TOPSEED, 0x0006) },
+ /* Topseed eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_TOPSEED, 0x0007) },
+ /* Topseed eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_TOPSEED, 0x0008) },
+ /* Topseed eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_TOPSEED, 0x000a) },
+ /* Ricavision internal Infrared Transceiver */
+ { USB_DEVICE(VENDOR_RICAVISION, 0x0010) },
+ /* Itron ione Libra Q-11 */
+ { USB_DEVICE(VENDOR_ITRON, 0x7002) },
+ /* FIC eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_FIC, 0x9242) },
+ /* LG eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_LG, 0x9803) },
+ /* Microsoft MCE Infrared Transceiver */
+ { USB_DEVICE(VENDOR_MICROSOFT, 0x00a0) },
+ /* Formosa eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_FORMOSA, 0xe015) },
+ /* Formosa21 / eHome Infrared Receiver */
+ { USB_DEVICE(VENDOR_FORMOSA, 0xe016) },
+ /* Formosa aim / Trust MCE Infrared Receiver */
+ { USB_DEVICE(VENDOR_FORMOSA, 0xe017) },
+ /* Formosa Industrial Computing / Beanbag Emulation Device */
+ { USB_DEVICE(VENDOR_FORMOSA, 0xe018) },
+ /* Formosa21 / eHome Infrared Receiver */
+ { USB_DEVICE(VENDOR_FORMOSA, 0xe03a) },
+ /* Formosa Industrial Computing AIM IR605/A */
+ { USB_DEVICE(VENDOR_FORMOSA, 0xe03c) },
+ /* Fintek eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_FINTEK, 0x0602) },
+ /* Fintek eHome Infrared Transceiver (in the AOpen MP45) */
+ { USB_DEVICE(VENDOR_FINTEK, 0x0702) },
+ /* Pinnacle Remote Kit */
+ { USB_DEVICE(VENDOR_PINNACLE, 0x0225) },
+ /* Elitegroup Computer Systems IR */
+ { USB_DEVICE(VENDOR_ECS, 0x0f38) },
+ /* Wistron Corp. eHome Infrared Receiver */
+ { USB_DEVICE(VENDOR_WISTRON, 0x0002) },
+ /* Compro K100 */
+ { USB_DEVICE(VENDOR_COMPRO, 0x3020) },
+ /* Compro K100 v2 */
+ { USB_DEVICE(VENDOR_COMPRO, 0x3082) },
+ /* Northstar Systems eHome Infrared Transceiver */
+ { USB_DEVICE(VENDOR_NORTHSTAR, 0xe004) },
+ /* Terminating entry */
+ { }
+};
+
+static struct usb_device_id pinnacle_list[] = {
+ { USB_DEVICE(VENDOR_PINNACLE, 0x0225) },
+ {}
+};
+
+static struct usb_device_id microsoft_gen1_list[] = {
+ { USB_DEVICE(VENDOR_MICROSOFT, 0x006d) },
+ {}
+};
+
+static struct usb_device_id transmitter_mask_list[] = {
+ { USB_DEVICE(VENDOR_SMK, 0x031d) },
+ { USB_DEVICE(VENDOR_SMK, 0x0322) },
+ { USB_DEVICE(VENDOR_SMK, 0x0334) },
+ { USB_DEVICE(VENDOR_TOPSEED, 0x0001) },
+ { USB_DEVICE(VENDOR_TOPSEED, 0x0006) },
+ { USB_DEVICE(VENDOR_TOPSEED, 0x0007) },
+ { USB_DEVICE(VENDOR_TOPSEED, 0x0008) },
+ { USB_DEVICE(VENDOR_TOPSEED, 0x000a) },
+ { USB_DEVICE(VENDOR_PINNACLE, 0x0225) },
+ {}
+};
+
+/* data structure for each usb transceiver */
+struct mceusb_dev {
+
+ /* usb */
+ struct usb_device *usbdev;
+ struct urb *urb_in;
+ int devnum;
+ struct usb_endpoint_descriptor *usb_ep_in;
+ struct usb_endpoint_descriptor *usb_ep_out;
+
+ /* buffers and dma */
+ unsigned char *buf_in;
+ unsigned int len_in;
+ dma_addr_t dma_in;
+ dma_addr_t dma_out;
+ unsigned int overflow_len;
+
+ /* lirc */
+ struct lirc_driver *d;
+ lirc_t lircdata;
+ unsigned char is_pulse;
+ struct {
+ u32 connected:1;
+ u32 pinnacle:1;
+ u32 transmitter_mask_inverted:1;
+ u32 microsoft_gen1:1;
+ u32 reserved:28;
+ } flags;
+
+ unsigned char transmitter_mask;
+ unsigned int carrier_freq;
+
+ /* handle sending (init strings) */
+ int send_flags;
+ wait_queue_head_t wait_out;
+
+ struct mutex lock;
+};
+
+/* init strings */
+static char init1[] = {0x00, 0xff, 0xaa, 0xff, 0x0b};
+static char init2[] = {0xff, 0x18};
+
+static char pin_init1[] = { 0x9f, 0x07};
+static char pin_init2[] = { 0x9f, 0x13};
+static char pin_init3[] = { 0x9f, 0x0d};
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 11)
+static unsigned long usecs_to_jiffies(const unsigned int u)
+{
+ if (u > jiffies_to_usecs(MAX_JIFFY_OFFSET))
+ return MAX_JIFFY_OFFSET;
+#if HZ <= USEC_PER_SEC && !(USEC_PER_SEC % HZ)
+ return (u + (USEC_PER_SEC / HZ) - 1) / (USEC_PER_SEC / HZ);
+#elif HZ > USEC_PER_SEC && !(HZ % USEC_PER_SEC)
+ return u * (HZ / USEC_PER_SEC);
+#else
+ return (u * HZ + USEC_PER_SEC - 1) / USEC_PER_SEC;
+#endif
+}
+#endif
+static void mceusb_dev_printdata(struct mceusb_dev *ir, char *buf, int len)
+{
+ char codes[USB_BUFLEN * 3 + 1];
+ int i;
+
+ if (len <= 0)
+ return;
+
+ if (ir->flags.microsoft_gen1 && len <= 2)
+ return;
+
+ for (i = 0; i < len && i < USB_BUFLEN; i++)
+ snprintf(codes + i * 3, 4, "%02x ", buf[i] & 0xFF);
+
+ printk(KERN_INFO "" DRIVER_NAME "[%d]: data received %s (length=%d)\n",
+ ir->devnum, codes, len);
+}
+
+static void usb_async_callback(struct urb *urb, struct pt_regs *regs)
+{
+ struct mceusb_dev *ir;
+ int len;
+
+ if (!urb)
+ return;
+
+ ir = urb->context;
+ if (ir) {
+ len = urb->actual_length;
+
+ dprintk(DRIVER_NAME
+ "[%d]: callback called (status=%d len=%d)\n",
+ ir->devnum, urb->status, len);
+
+ if (debug)
+ mceusb_dev_printdata(ir, urb->transfer_buffer, len);
+ }
+
+}
+
+/* request incoming or send outgoing usb packet - used to initialize remote */
+static void request_packet_async(struct mceusb_dev *ir,
+ struct usb_endpoint_descriptor *ep,
+ unsigned char *data, int size, int urb_type)
+{
+ int res;
+ struct urb *async_urb;
+ unsigned char *async_buf;
+
+ if (urb_type) {
+ async_urb = usb_alloc_urb(0, GFP_KERNEL);
+ if (unlikely(!async_urb))
+ return;
+
+ async_buf = kmalloc(size, GFP_KERNEL);
+ if (!async_buf) {
+ usb_free_urb(async_urb);
+ return;
+ }
+
+ if (urb_type == MCEUSB_OUTBOUND) {
+ /* outbound data */
+ usb_fill_int_urb(async_urb, ir->usbdev,
+ usb_sndintpipe(ir->usbdev,
+ ep->bEndpointAddress),
+ async_buf, size,
+ (usb_complete_t) usb_async_callback,
+ ir, ep->bInterval);
+ memcpy(async_buf, data, size);
+ } else {
+ /* inbound data */
+ usb_fill_int_urb(async_urb, ir->usbdev,
+ usb_rcvintpipe(ir->usbdev,
+ ep->bEndpointAddress),
+ async_buf, size,
+ (usb_complete_t) usb_async_callback,
+ ir, ep->bInterval);
+ }
+ async_urb->transfer_flags = URB_ASYNC_UNLINK;
+ } else {
+ /* standard request */
+ async_urb = ir->urb_in;
+ ir->send_flags = RECV_FLAG_IN_PROGRESS;
+ }
+
+ dprintk(DRIVER_NAME "[%d]: receive request called (size=%#x)\n",
+ ir->devnum, size);
+
+ async_urb->transfer_buffer_length = size;
+ async_urb->dev = ir->usbdev;
+
+ res = usb_submit_urb(async_urb, GFP_ATOMIC);
+ if (res) {
+ dprintk(DRIVER_NAME "[%d]: receive request FAILED! (res=%d)\n",
+ ir->devnum, res);
+ return;
+ }
+ dprintk(DRIVER_NAME "[%d]: receive request complete (res=%d)\n",
+ ir->devnum, res);
+}
+
+static int unregister_from_lirc(struct mceusb_dev *ir)
+{
+ struct lirc_driver *d = ir->d;
+ int devnum;
+ int rtn;
+
+ devnum = ir->devnum;
+ dprintk(DRIVER_NAME "[%d]: unregister from lirc called\n", devnum);
+
+ rtn = lirc_unregister_driver(d->minor);
+ if (rtn > 0) {
+ printk(DRIVER_NAME "[%d]: error in lirc_unregister minor: %d\n"
+ "Trying again...\n", devnum, d->minor);
+ if (rtn == -EBUSY) {
+ printk(DRIVER_NAME
+ "[%d]: device is opened, will unregister"
+ " on close\n", devnum);
+ return -EAGAIN;
+ }
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule_timeout(HZ);
+
+ rtn = lirc_unregister_driver(d->minor);
+ if (rtn > 0)
+ printk(DRIVER_NAME "[%d]: lirc_unregister failed\n",
+ devnum);
+ }
+
+ if (rtn) {
+ printk(DRIVER_NAME "[%d]: didn't free resources\n", devnum);
+ return -EAGAIN;
+ }
+
+ printk(DRIVER_NAME "[%d]: usb remote disconnected\n", devnum);
+
+ lirc_buffer_free(d->rbuf);
+ kfree(d->rbuf);
+ kfree(d);
+ kfree(ir);
+ return 0;
+}
+
+static int mceusb_ir_open(void *data)
+{
+ struct mceusb_dev *ir = data;
+
+ if (!ir) {
+ printk(DRIVER_NAME "[?]: %s called with no context\n",
+ __func__);
+ return -EIO;
+ }
+ dprintk(DRIVER_NAME "[%d]: mceusb IR device opened\n", ir->devnum);
+
+ MOD_INC_USE_COUNT;
+ if (!ir->flags.connected) {
+ if (!ir->usbdev)
+ return -ENOENT;
+ ir->flags.connected = 1;
+ }
+
+ return 0;
+}
+
+static void mceusb_ir_close(void *data)
+{
+ struct mceusb_dev *ir = data;
+
+ if (!ir) {
+ printk(DRIVER_NAME "[?]: %s called with no context\n",
+ __func__);
+ return;
+ }
+ dprintk(DRIVER_NAME "[%d]: mceusb IR device closed\n", ir->devnum);
+
+ if (ir->flags.connected) {
+ mutex_lock(&ir->lock);
+ ir->flags.connected = 0;
+ mutex_unlock(&ir->lock);
+ }
+ MOD_DEC_USE_COUNT;
+}
+
+static void send_packet_to_lirc(struct mceusb_dev *ir)
+{
+ if (ir->lircdata) {
+ lirc_buffer_write(ir->d->rbuf,
+ (unsigned char *) &ir->lircdata);
+ wake_up(&ir->d->rbuf->wait_poll);
+ ir->lircdata = 0;
+ }
+}
+
+static void mceusb_process_ir_data(struct mceusb_dev *ir, int buf_len)
+{
+ int i, j;
+ int packet_len = 0;
+ int start_index = 0;
+
+ /* skip meaningless 0xb1 0x60 header bytes on orig receiver */
+ if (ir->flags.microsoft_gen1)
+ start_index = 2;
+
+ /* this should only trigger w/the 1st-gen mce receiver */
+ for (i = start_index; i < (start_index + ir->overflow_len) &&
+ i < buf_len; i++) {
+ /* rising/falling flank */
+ if (ir->is_pulse != (ir->buf_in[i] & MCE_PULSE_BIT)) {
+ send_packet_to_lirc(ir);
+ ir->is_pulse = ir->buf_in[i] & MCE_PULSE_BIT;
+ }
+
+ /* accumulate mce pulse/space values */
+ ir->lircdata += (ir->buf_in[i] & MCE_PULSE_MASK) *
+ MCE_TIME_UNIT;
+ ir->lircdata |= (ir->is_pulse ? PULSE_BIT : 0);
+ }
+ start_index += ir->overflow_len;
+ ir->overflow_len = 0;
+
+ for (i = start_index; i < buf_len; i++) {
+ /* decode mce packets of the form (84),AA,BB,CC,DD */
+ if (ir->buf_in[i] >= 0x80 && ir->buf_in[i] <= 0x9e) {
+ /* data headers */
+ /* decode packet data */
+ packet_len = ir->buf_in[i] & MCE_PACKET_LENGTH_MASK;
+ ir->overflow_len = i + 1 + packet_len - buf_len;
+ for (j = 1; j <= packet_len && (i + j < buf_len); j++) {
+ /* rising/falling flank */
+ if (ir->is_pulse !=
+ (ir->buf_in[i + j] & MCE_PULSE_BIT)) {
+ send_packet_to_lirc(ir);
+ ir->is_pulse =
+ ir->buf_in[i + j] &
+ MCE_PULSE_BIT;
+ }
+
+ /* accumulate mce pulse/space values */
+ ir->lircdata +=
+ (ir->buf_in[i + j] & MCE_PULSE_MASK) *
+ MCE_TIME_UNIT;
+ ir->lircdata |= (ir->is_pulse ? PULSE_BIT : 0);
+ }
+
+ i += packet_len;
+ } else if (ir->buf_in[i] == MCE_CONTROL_HEADER) {
+ /* status header (0x9F) */
+ /*
+ * A transmission containing one or more consecutive ir
+ * commands always ends with a GAP of 100ms followed by
+ * the sequence 0x9F 0x01 0x01 0x9F 0x15 0x00 0x00 0x80
+ */
+
+#if 0
+ Uncomment this if the last 100ms "infinity"-space should be transmitted
+ to lirc directly instead of at the beginning of the next transmission.
+ Changes pulse/space order.
+
+ if (++i < buf_len && ir->buf_in[i]==0x01)
+ send_packet_to_lirc(ir);
+
+#endif
+
+ /* end decode loop */
+ dprintk(DRIVER_NAME "[%d] %s: found control header\n",
+ ir->devnum, __func__);
+ ir->overflow_len = 0;
+ break;
+ } else {
+ dprintk(DRIVER_NAME "[%d] %s: stray packet?\n",
+ ir->devnum, __func__);
+ ir->overflow_len = 0;
+ }
+ }
+
+ return;
+}
+
+static void mceusb_dev_recv(struct urb *urb, struct pt_regs *regs)
+{
+ struct mceusb_dev *ir;
+ int buf_len;
+
+ if (!urb)
+ return;
+
+ ir = urb->context;
+ if (!ir) {
+ urb->transfer_flags |= URB_ASYNC_UNLINK;
+ usb_unlink_urb(urb);
+ return;
+ }
+
+ buf_len = urb->actual_length;
+
+ if (debug)
+ mceusb_dev_printdata(ir, urb->transfer_buffer, buf_len);
+
+ if (ir->send_flags == RECV_FLAG_IN_PROGRESS) {
+ ir->send_flags = SEND_FLAG_COMPLETE;
+ dprintk(DRIVER_NAME "[%d]: setup answer received %d bytes\n",
+ ir->devnum, buf_len);
+ }
+
+ switch (urb->status) {
+ /* success */
+ case 0:
+ mceusb_process_ir_data(ir, buf_len);
+ break;
+
+ case -ECONNRESET:
+ case -ENOENT:
+ case -ESHUTDOWN:
+ urb->transfer_flags |= URB_ASYNC_UNLINK;
+ usb_unlink_urb(urb);
+ return;
+
+ case -EPIPE:
+ default:
+ break;
+ }
+
+ usb_submit_urb(urb, GFP_ATOMIC);
+}
+
+
+static ssize_t mceusb_transmit_ir(struct file *file, const char *buf,
+ size_t n, loff_t *ppos)
+{
+ int i, count = 0, cmdcount = 0;
+ struct mceusb_dev *ir = NULL;
+ lirc_t wbuf[LIRCBUF_SIZE]; /* Workbuffer with values from lirc */
+ unsigned char cmdbuf[MCE_CMDBUF_SIZE]; /* MCE command buffer */
+ unsigned long signal_duration = 0; /* Singnal length in us */
+ struct timeval start_time, end_time;
+
+ do_gettimeofday(&start_time);
+
+ /* Retrieve lirc_driver data for the device */
+ ir = lirc_get_pdata(file);
+ if (!ir || !ir->usb_ep_out)
+ return -EFAULT;
+
+ if (n % sizeof(lirc_t))
+ return -EINVAL;
+ count = n / sizeof(lirc_t);
+
+ /* Check if command is within limits */
+ if (count > LIRCBUF_SIZE || count%2 == 0)
+ return -EINVAL;
+ if (copy_from_user(wbuf, buf, n))
+ return -EFAULT;
+
+ /* MCE tx init header */
+ cmdbuf[cmdcount++] = MCE_CONTROL_HEADER;
+ cmdbuf[cmdcount++] = 0x08;
+ cmdbuf[cmdcount++] = ir->transmitter_mask;
+
+ /* Generate mce packet data */
+ for (i = 0; (i < count) && (cmdcount < MCE_CMDBUF_SIZE); i++) {
+ signal_duration += wbuf[i];
+ wbuf[i] = wbuf[i] / MCE_TIME_UNIT;
+
+ do { /* loop to support long pulses/spaces > 127*50us=6.35ms */
+
+ /* Insert mce packet header every 4th entry */
+ if ((cmdcount < MCE_CMDBUF_SIZE) &&
+ (cmdcount - MCE_TX_HEADER_LENGTH) %
+ MCE_CODE_LENGTH == 0)
+ cmdbuf[cmdcount++] = MCE_PACKET_HEADER;
+
+ /* Insert mce packet data */
+ if (cmdcount < MCE_CMDBUF_SIZE)
+ cmdbuf[cmdcount++] =
+ (wbuf[i] < MCE_PULSE_BIT ?
+ wbuf[i] : MCE_MAX_PULSE_LENGTH) |
+ (i & 1 ? 0x00 : MCE_PULSE_BIT);
+ else
+ return -EINVAL;
+ } while ((wbuf[i] > MCE_MAX_PULSE_LENGTH) &&
+ (wbuf[i] -= MCE_MAX_PULSE_LENGTH));
+ }
+
+ /* Fix packet length in last header */
+ cmdbuf[cmdcount - (cmdcount - MCE_TX_HEADER_LENGTH) % MCE_CODE_LENGTH] =
+ 0x80 + (cmdcount - MCE_TX_HEADER_LENGTH) % MCE_CODE_LENGTH - 1;
+
+ /* Check if we have room for the empty packet at the end */
+ if (cmdcount >= MCE_CMDBUF_SIZE)
+ return -EINVAL;
+
+ /* All mce commands end with an empty packet (0x80) */
+ cmdbuf[cmdcount++] = 0x80;
+
+ /* Transmit the command to the mce device */
+ request_packet_async(ir, ir->usb_ep_out, cmdbuf,
+ cmdcount, MCEUSB_OUTBOUND);
+
+ /*
+ * The lircd gap calculation expects the write function to
+ * wait the time it takes for the ircommand to be sent before
+ * it returns.
+ */
+ do_gettimeofday(&end_time);
+ signal_duration -= (end_time.tv_usec - start_time.tv_usec) +
+ (end_time.tv_sec - start_time.tv_sec) * 1000000;
+
+ /* delay with the closest number of ticks */
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule_timeout(usecs_to_jiffies(signal_duration));
+
+ return n;
+}
+
+static void set_transmitter_mask(struct mceusb_dev *ir, unsigned int mask)
+{
+ if (ir->flags.transmitter_mask_inverted)
+ /*
+ * The mask begins at 0x02 and has an inverted
+ * numbering scheme
+ */
+ ir->transmitter_mask =
+ (mask != 0x03 ? mask ^ 0x03 : mask) << 1;
+ else
+ ir->transmitter_mask = mask;
+}
+
+
+/* Sets the send carrier frequency */
+static int set_send_carrier(struct mceusb_dev *ir, int carrier)
+{
+ int clk = 10000000;
+ int prescaler = 0, divisor = 0;
+ unsigned char cmdbuf[] = { 0x9F, 0x06, 0x01, 0x80 };
+
+ /* Carrier is changed */
+ if (ir->carrier_freq != carrier) {
+
+ if (carrier <= 0) {
+ ir->carrier_freq = carrier;
+ dprintk(DRIVER_NAME "[%d]: SET_CARRIER disabling "
+ "carrier modulation\n", ir->devnum);
+ request_packet_async(ir, ir->usb_ep_out,
+ cmdbuf, sizeof(cmdbuf),
+ MCEUSB_OUTBOUND);
+ return carrier;
+ }
+
+ for (prescaler = 0; prescaler < 4; ++prescaler) {
+ divisor = (clk >> (2 * prescaler)) / carrier;
+ if (divisor <= 0xFF) {
+ ir->carrier_freq = carrier;
+ cmdbuf[2] = prescaler;
+ cmdbuf[3] = divisor;
+ dprintk(DRIVER_NAME "[%d]: SET_CARRIER "
+ "requesting %d Hz\n",
+ ir->devnum, carrier);
+
+ /* Transmit new carrier to mce device */
+ request_packet_async(ir, ir->usb_ep_out,
+ cmdbuf, sizeof(cmdbuf),
+ MCEUSB_OUTBOUND);
+ return carrier;
+ }
+ }
+
+ return -EINVAL;
+
+ }
+
+ return carrier;
+}
+
+
+static int mceusb_lirc_ioctl(struct inode *node, struct file *filep,
+ unsigned int cmd, unsigned long arg)
+{
+ int result;
+ unsigned int ivalue;
+ unsigned long lvalue;
+ struct mceusb_dev *ir = NULL;
+
+ /* Retrieve lirc_driver data for the device */
+ ir = lirc_get_pdata(filep);
+ if (!ir || !ir->usb_ep_out)
+ return -EFAULT;
+
+
+ switch (cmd) {
+ case LIRC_SET_TRANSMITTER_MASK:
+
+ result = get_user(ivalue, (unsigned int *) arg);
+ if (result)
+ return result;
+ switch (ivalue) {
+ case 0x01: /* Transmitter 1 => 0x04 */
+ case 0x02: /* Transmitter 2 => 0x02 */
+ case 0x03: /* Transmitter 1 & 2 => 0x06 */
+ set_transmitter_mask(ir, ivalue);
+ break;
+
+ default: /* Unsupported transmitter mask */
+ return MCE_MAX_CHANNELS;
+ }
+
+ dprintk(DRIVER_NAME ": SET_TRANSMITTERS mask=%d\n", ivalue);
+ break;
+
+ case LIRC_GET_SEND_MODE:
+
+ result = put_user(LIRC_SEND2MODE(LIRC_CAN_SEND_PULSE &
+ LIRC_CAN_SEND_MASK),
+ (unsigned long *) arg);
+
+ if (result)
+ return result;
+ break;
+
+ case LIRC_SET_SEND_MODE:
+
+ result = get_user(lvalue, (unsigned long *) arg);
+
+ if (result)
+ return result;
+ if (lvalue != (LIRC_MODE_PULSE&LIRC_CAN_SEND_MASK))
+ return -EINVAL;
+ break;
+
+ case LIRC_SET_SEND_CARRIER:
+
+ result = get_user(ivalue, (unsigned int *) arg);
+ if (result)
+ return result;
+
+ set_send_carrier(ir, ivalue);
+ break;
+
+ default:
+ return -ENOIOCTLCMD;
+ }
+
+ return 0;
+}
+
+static struct file_operations lirc_fops = {
+ .owner = THIS_MODULE,
+ .write = mceusb_transmit_ir,
+ .ioctl = mceusb_lirc_ioctl,
+};
+
+static int mceusb_gen1_init(struct mceusb_dev *ir)
+{
+ int i, ret;
+ char junk[64], data[8];
+ int partial = 0;
+
+ /*
+ * Clear off the first few messages. These look like calibration
+ * or test data, I can't really tell. This also flushes in case
+ * we have random ir data queued up.
+ */
+ for (i = 0; i < 40; i++)
+ usb_bulk_msg(ir->usbdev,
+ usb_rcvbulkpipe(ir->usbdev,
+ ir->usb_ep_in->bEndpointAddress),
+ junk, 64, &partial, HZ * 10);
+
+ ir->is_pulse = 1;
+
+ memset(data, 0, 8);
+
+ /* Get Status */
+ ret = usb_control_msg(ir->usbdev, usb_rcvctrlpipe(ir->usbdev, 0),
+ USB_REQ_GET_STATUS, USB_DIR_IN,
+ 0, 0, data, 2, HZ * 3);
+
+ /* ret = usb_get_status( ir->usbdev, 0, 0, data ); */
+ dprintk("%s - ret = %d status = 0x%x 0x%x\n", __func__,
+ ret, data[0], data[1]);
+
+ /*
+ * This is a strange one. They issue a set address to the device
+ * on the receive control pipe and expect a certain value pair back
+ */
+ memset(data, 0, 8);
+
+ ret = usb_control_msg(ir->usbdev, usb_rcvctrlpipe(ir->usbdev, 0),
+ USB_REQ_SET_ADDRESS, USB_TYPE_VENDOR, 0, 0,
+ data, 2, HZ * 3);
+ dprintk("%s - ret = %d, devnum = %d\n",
+ __func__, ret, ir->usbdev->devnum);
+ dprintk("%s - data[0] = %d, data[1] = %d\n",
+ __func__, data[0], data[1]);
+
+ /* set feature */
+ ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
+ USB_REQ_SET_FEATURE, USB_TYPE_VENDOR,
+ 0xc04e, 0x0000, NULL, 0, HZ * 3);
+
+ dprintk("%s - ret = %d\n", __func__, ret);
+
+ /* strange: bRequest == 4 */
+ ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
+ 4, USB_TYPE_VENDOR,
+ 0x0808, 0x0000, NULL, 0, HZ * 3);
+ dprintk("%s - retB = %d\n", __func__, ret);
+
+ /* strange: bRequest == 2 */
+ ret = usb_control_msg(ir->usbdev, usb_sndctrlpipe(ir->usbdev, 0),
+ 2, USB_TYPE_VENDOR,
+ 0x0000, 0x0100, NULL, 0, HZ * 3);
+ dprintk("%s - retC = %d\n", __func__, ret);
+
+ return ret;
+
+};
+
+static int mceusb_dev_probe(struct usb_interface *intf,
+ const struct usb_device_id *id)
+{
+ struct usb_device *dev = interface_to_usbdev(intf);
+ struct usb_host_interface *idesc;
+ struct usb_endpoint_descriptor *ep = NULL;
+ struct usb_endpoint_descriptor *ep_in = NULL;
+ struct usb_endpoint_descriptor *ep_out = NULL;
+ struct usb_host_config *config;
+ struct mceusb_dev *ir = NULL;
+ struct lirc_driver *driver = NULL;
+ struct lirc_buffer *rbuf = NULL;
+ int devnum, pipe, maxp;
+ int minor = 0;
+ int i;
+ char buf[63], name[128] = "";
+ int mem_failure = 0;
+ int is_pinnacle;
+ int is_microsoft_gen1;
+
+ dprintk(DRIVER_NAME ": %s called\n", __func__);
+
+ usb_reset_device(dev);
+
+ config = dev->actconfig;
+
+ idesc = intf->cur_altsetting;
+
+ is_pinnacle = usb_match_id(intf, pinnacle_list) ? 1 : 0;
+
+ is_microsoft_gen1 = usb_match_id(intf, microsoft_gen1_list) ? 1 : 0;
+
+ /* step through the endpoints to find first bulk in and out endpoint */
+ for (i = 0; i < idesc->desc.bNumEndpoints; ++i) {
+ ep = &idesc->endpoint[i].desc;
+
+ if ((ep_in == NULL)
+ && ((ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK)
+ == USB_DIR_IN)
+ && (((ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)
+ == USB_ENDPOINT_XFER_BULK)
+ || ((ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)
+ == USB_ENDPOINT_XFER_INT))) {
+
+ dprintk(DRIVER_NAME ": acceptable inbound endpoint "
+ "found\n");
+ ep_in = ep;
+ ep_in->bmAttributes = USB_ENDPOINT_XFER_INT;
+ if (is_pinnacle)
+ /*
+ * setting seems to 1 seem to cause issues with
+ * Pinnacle timing out on transfer.
+ */
+ ep_in->bInterval = ep->bInterval;
+ else
+ ep_in->bInterval = 1;
+ }
+
+ if ((ep_out == NULL)
+ && ((ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK)
+ == USB_DIR_OUT)
+ && (((ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)
+ == USB_ENDPOINT_XFER_BULK)
+ || ((ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)
+ == USB_ENDPOINT_XFER_INT))) {
+
+ dprintk(DRIVER_NAME ": acceptable outbound endpoint "
+ "found\n");
+ ep_out = ep;
+ ep_out->bmAttributes = USB_ENDPOINT_XFER_INT;
+ if (is_pinnacle)
+ /*
+ * setting seems to 1 seem to cause issues with
+ * Pinnacle timing out on transfer.
+ */
+ ep_out->bInterval = ep->bInterval;
+ else
+ ep_out->bInterval = 1;
+ }
+ }
+ if (ep_in == NULL || ep_out == NULL) {
+ dprintk(DRIVER_NAME ": inbound and/or "
+ "outbound endpoint not found\n");
+ return -ENODEV;
+ }
+
+ devnum = dev->devnum;
+ pipe = usb_rcvintpipe(dev, ep_in->bEndpointAddress);
+ maxp = usb_maxpacket(dev, pipe, usb_pipeout(pipe));
+
+ mem_failure = 0;
+ ir = kzalloc(sizeof(struct mceusb_dev), GFP_KERNEL);
+ if (!ir) {
+ mem_failure = 1;
+ goto mem_failure_switch;
+ }
+
+ driver = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL);
+ if (!driver) {
+ mem_failure = 2;
+ goto mem_failure_switch;
+ }
+
+ rbuf = kmalloc(sizeof(struct lirc_buffer), GFP_KERNEL);
+ if (!rbuf) {
+ mem_failure = 3;
+ goto mem_failure_switch;
+ }
+
+ if (lirc_buffer_init(rbuf, sizeof(lirc_t), LIRCBUF_SIZE)) {
+ mem_failure = 4;
+ goto mem_failure_switch;
+ }
+
+ ir->buf_in = usb_alloc_coherent(dev, maxp, GFP_ATOMIC, &ir->dma_in);
+ if (!ir->buf_in) {
+ mem_failure = 5;
+ goto mem_failure_switch;
+ }
+
+ ir->urb_in = usb_alloc_urb(0, GFP_KERNEL);
+ if (!ir->urb_in) {
+ mem_failure = 7;
+ goto mem_failure_switch;
+ }
+
+ strcpy(driver->name, DRIVER_NAME " ");
+ driver->minor = -1;
+ driver->features = LIRC_CAN_SEND_PULSE |
+ LIRC_CAN_SET_TRANSMITTER_MASK |
+ LIRC_CAN_REC_MODE2 |
+ LIRC_CAN_SET_SEND_CARRIER;
+ driver->data = ir;
+ driver->rbuf = rbuf;
+ driver->set_use_inc = &mceusb_ir_open;
+ driver->set_use_dec = &mceusb_ir_close;
+ driver->code_length = sizeof(lirc_t) * 8;
+ driver->fops = &lirc_fops;
+ driver->dev = &intf->dev;
+ driver->owner = THIS_MODULE;
+
+ mutex_init(&ir->lock);
+ init_waitqueue_head(&ir->wait_out);
+
+ minor = lirc_register_driver(driver);
+ if (minor < 0)
+ mem_failure = 9;
+
+mem_failure_switch:
+
+ switch (mem_failure) {
+ case 9:
+ usb_free_urb(ir->urb_in);
+ case 7:
+ usb_free_coherent(dev, maxp, ir->buf_in, ir->dma_in);
+ case 5:
+ lirc_buffer_free(rbuf);
+ case 4:
+ kfree(rbuf);
+ case 3:
+ kfree(driver);
+ case 2:
+ kfree(ir);
+ case 1:
+ printk(DRIVER_NAME "[%d]: out of memory (code=%d)\n",
+ devnum, mem_failure);
+ return -ENOMEM;
+ }
+
+ driver->minor = minor;
+ ir->d = driver;
+ ir->devnum = devnum;
+ ir->usbdev = dev;
+ ir->len_in = maxp;
+ ir->overflow_len = 0;
+ ir->flags.connected = 0;
+ ir->flags.pinnacle = is_pinnacle;
+ ir->flags.microsoft_gen1 = is_microsoft_gen1;
+ ir->flags.transmitter_mask_inverted =
+ usb_match_id(intf, transmitter_mask_list) ? 0 : 1;
+
+ ir->lircdata = PULSE_MASK;
+ ir->is_pulse = 0;
+
+ /* ir->flags.transmitter_mask_inverted must be set */
+ set_transmitter_mask(ir, MCE_DEFAULT_TX_MASK);
+ /* Saving usb interface data for use by the transmitter routine */
+ ir->usb_ep_in = ep_in;
+ ir->usb_ep_out = ep_out;
+
+ if (dev->descriptor.iManufacturer
+ && usb_string(dev, dev->descriptor.iManufacturer,
+ buf, sizeof(buf)) > 0)
+ strlcpy(name, buf, sizeof(name));
+ if (dev->descriptor.iProduct
+ && usb_string(dev, dev->descriptor.iProduct,
+ buf, sizeof(buf)) > 0)
+ snprintf(name + strlen(name), sizeof(name) - strlen(name),
+ " %s", buf);
+ printk(DRIVER_NAME "[%d]: %s on usb%d:%d\n", devnum, name,
+ dev->bus->busnum, devnum);
+
+ /* inbound data */
+ usb_fill_int_urb(ir->urb_in, dev, pipe, ir->buf_in,
+ maxp, (usb_complete_t) mceusb_dev_recv, ir, ep_in->bInterval);
+ ir->urb_in->transfer_dma = ir->dma_in;
+ ir->urb_in->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
+
+ /* initialize device */
+ if (ir->flags.pinnacle) {
+ int usbret;
+
+ /*
+ * I have no idea why but this reset seems to be crucial to
+ * getting the device to do outbound IO correctly - without
+ * this the device seems to hang, ignoring all input - although
+ * IR signals are correctly sent from the device, no input is
+ * interpreted by the device and the host never does the
+ * completion routine
+ */
+
+ usbret = usb_reset_configuration(dev);
+ printk(DRIVER_NAME "[%d]: usb reset config ret %x\n",
+ devnum, usbret);
+
+ /*
+ * its possible we really should wait for a return
+ * for each of these...
+ */
+ request_packet_async(ir, ep_in, NULL, maxp, MCEUSB_INBOUND);
+ request_packet_async(ir, ep_out, pin_init1, sizeof(pin_init1),
+ MCEUSB_OUTBOUND);
+ request_packet_async(ir, ep_in, NULL, maxp, MCEUSB_INBOUND);
+ request_packet_async(ir, ep_out, pin_init2, sizeof(pin_init2),
+ MCEUSB_OUTBOUND);
+ request_packet_async(ir, ep_in, NULL, maxp, MCEUSB_INBOUND);
+ request_packet_async(ir, ep_out, pin_init3, sizeof(pin_init3),
+ MCEUSB_OUTBOUND);
+ } else if (ir->flags.microsoft_gen1) {
+ /* original ms mce device requires some additional setup */
+ mceusb_gen1_init(ir);
+ } else {
+
+ request_packet_async(ir, ep_in, NULL, maxp, MCEUSB_INBOUND);
+ request_packet_async(ir, ep_in, NULL, maxp, MCEUSB_INBOUND);
+ request_packet_async(ir, ep_out, init1,
+ sizeof(init1), MCEUSB_OUTBOUND);
+ request_packet_async(ir, ep_in, NULL, maxp, MCEUSB_INBOUND);
+ request_packet_async(ir, ep_out, init2,
+ sizeof(init2), MCEUSB_OUTBOUND);
+ }
+
+ /*
+ * if we don't issue the correct number of receives (MCEUSB_INBOUND)
+ * for each outbound, then the first few ir pulses will be interpreted
+ * by the usb_async_callback routine - we should ensure we have the
+ * right amount OR less - as the meusb_dev_recv routine will handle
+ * the control packets OK - they start with 0x9f - but the async
+ * callback doesn't handle ir pulse packets
+ */
+ request_packet_async(ir, ep_in, NULL, maxp, 0);
+
+ usb_set_intfdata(intf, ir);
+
+ return 0;
+}
+
+
+static void mceusb_dev_disconnect(struct usb_interface *intf)
+{
+ struct usb_device *dev = interface_to_usbdev(intf);
+ struct mceusb_dev *ir = usb_get_intfdata(intf);
+
+ usb_set_intfdata(intf, NULL);
+
+ if (!ir || !ir->d)
+ return;
+
+ ir->usbdev = NULL;
+ wake_up_all(&ir->wait_out);
+
+ mutex_lock(&ir->lock);
+ usb_kill_urb(ir->urb_in);
+ usb_free_urb(ir->urb_in);
+ usb_free_coherent(dev, ir->len_in, ir->buf_in, ir->dma_in);
+ mutex_unlock(&ir->lock);
+
+ unregister_from_lirc(ir);
+}
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+static int mceusb_dev_suspend(struct usb_interface *intf, pm_message_t message)
+{
+ struct mceusb_dev *ir = usb_get_intfdata(intf);
+ printk(DRIVER_NAME "[%d]: suspend\n", ir->devnum);
+ usb_kill_urb(ir->urb_in);
+ return 0;
+}
+
+static int mceusb_dev_resume(struct usb_interface *intf)
+{
+ struct mceusb_dev *ir = usb_get_intfdata(intf);
+ printk(DRIVER_NAME "[%d]: resume\n", ir->devnum);
+ if (usb_submit_urb(ir->urb_in, GFP_ATOMIC))
+ return -EIO;
+ return 0;
+}
+#endif
+
+static struct usb_driver mceusb_dev_driver = {
+ LIRC_THIS_MODULE(.owner = THIS_MODULE)
+ .name = DRIVER_NAME,
+ .probe = mceusb_dev_probe,
+ .disconnect = mceusb_dev_disconnect,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+ .suspend = mceusb_dev_suspend,
+ .resume = mceusb_dev_resume,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 23)
+ .reset_resume = mceusb_dev_resume,
+#endif
+#endif
+ .id_table = mceusb_dev_table
+};
+
+static int __init mceusb_dev_init(void)
+{
+ int i;
+
+ printk(KERN_INFO DRIVER_NAME ": " DRIVER_DESC " " DRIVER_VERSION "\n");
+ printk(KERN_INFO DRIVER_NAME ": " DRIVER_AUTHOR "\n");
+ dprintk(DRIVER_NAME ": debug mode enabled\n");
+
+ i = usb_register(&mceusb_dev_driver);
+ if (i < 0) {
+ printk(DRIVER_NAME ": usb register failed, result = %d\n", i);
+ return -ENODEV;
+ }
+
+ return 0;
+}
+
+static void __exit mceusb_dev_exit(void)
+{
+ usb_deregister(&mceusb_dev_driver);
+}
+
+module_init(mceusb_dev_init);
+module_exit(mceusb_dev_exit);
+
+MODULE_DESCRIPTION(DRIVER_DESC);
+MODULE_AUTHOR(DRIVER_AUTHOR);
+MODULE_LICENSE("GPL");
+MODULE_DEVICE_TABLE(usb, mceusb_dev_table);
+/* this was originally lirc_mceusb2, lirc_mceusb and lirc_mceusb2 merged now */
+MODULE_ALIAS("lirc_mceusb2");
+
+module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Debug enabled or not");
+
+EXPORT_NO_SYMBOLS;
diff --git a/ubuntu/lirc/lirc_parallel/Makefile b/ubuntu/lirc/lirc_parallel/Makefile
new file mode 100644
index 00000000000..6304d6f44b9
--- /dev/null
+++ b/ubuntu/lirc/lirc_parallel/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_PARALLEL) += lirc_parallel.o
diff --git a/ubuntu/lirc/lirc_parallel/lirc_parallel.c b/ubuntu/lirc/lirc_parallel/lirc_parallel.c
new file mode 100644
index 00000000000..59d0a591386
--- /dev/null
+++ b/ubuntu/lirc/lirc_parallel/lirc_parallel.c
@@ -0,0 +1,762 @@
+/* $Id: lirc_parallel.c,v 5.53 2009/03/08 19:22:28 lirc Exp $ */
+/*
+ * lirc_parallel.c
+ *
+ * lirc_parallel - device driver for infra-red signal receiving and
+ * transmitting unit built by the author
+ *
+ * Copyright (C) 1998 Christoph Bartelmus <lirc@bartelmus.de>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+/*** Includes ***/
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 2, 18)
+#error "**********************************************************"
+#error " Sorry, this driver needs kernel version 2.2.18 or higher "
+#error "**********************************************************"
+#endif
+
+#ifdef CONFIG_SMP
+#error "--- Sorry, this driver is not SMP safe. ---"
+#endif
+
+#include <linux/module.h>
+#include <linux/sched.h>
+#include <linux/errno.h>
+#include <linux/signal.h>
+#include <linux/fs.h>
+#include <linux/kernel.h>
+#include <linux/ioport.h>
+#include <linux/time.h>
+#include <linux/mm.h>
+#include <linux/delay.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
+#include <asm/io.h>
+#include <asm/signal.h>
+#include <asm/irq.h>
+#include <asm/uaccess.h>
+#else
+#include <linux/io.h>
+#include <linux/signal.h>
+#include <linux/irq.h>
+#include <linux/uaccess.h>
+#endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
+#include <asm/div64.h>
+#endif
+
+#include <linux/poll.h>
+#include <linux/parport.h>
+
+#include "../lirc.h"
+#include "../kcompat.h"
+#include "../lirc_dev/lirc_dev.h"
+
+#include "lirc_parallel.h"
+
+#define LIRC_DRIVER_NAME "lirc_parallel"
+
+#ifndef LIRC_IRQ
+#define LIRC_IRQ 7
+#endif
+#ifndef LIRC_PORT
+#define LIRC_PORT 0x378
+#endif
+#ifndef LIRC_TIMER
+#define LIRC_TIMER 65536
+#endif
+
+/*** Global Variables ***/
+
+static int debug;
+static int check_pselecd;
+
+unsigned int irq = LIRC_IRQ;
+unsigned int io = LIRC_PORT;
+#ifdef LIRC_TIMER
+unsigned int timer;
+unsigned int default_timer = LIRC_TIMER;
+#endif
+
+#define WBUF_SIZE (256)
+#define RBUF_SIZE (256) /* this must be a power of 2 larger than 1 */
+
+static lirc_t wbuf[WBUF_SIZE];
+static lirc_t rbuf[RBUF_SIZE];
+
+DECLARE_WAIT_QUEUE_HEAD(lirc_wait);
+
+unsigned int rptr;
+unsigned int wptr;
+unsigned int lost_irqs;
+int is_open;
+
+struct parport *pport;
+struct pardevice *ppdevice;
+int is_claimed;
+
+unsigned int tx_mask = 1;
+
+/*** Internal Functions ***/
+
+static unsigned int in(int offset)
+{
+ switch (offset) {
+ case LIRC_LP_BASE:
+ return parport_read_data(pport);
+ case LIRC_LP_STATUS:
+ return parport_read_status(pport);
+ case LIRC_LP_CONTROL:
+ return parport_read_control(pport);
+ }
+ return 0; /* make compiler happy */
+}
+
+static void out(int offset, int value)
+{
+ switch (offset) {
+ case LIRC_LP_BASE:
+ parport_write_data(pport, value);
+ break;
+ case LIRC_LP_CONTROL:
+ parport_write_control(pport, value);
+ break;
+ case LIRC_LP_STATUS:
+ printk(KERN_INFO "%s: attempt to write to status register\n",
+ LIRC_DRIVER_NAME);
+ break;
+ }
+}
+
+static unsigned int lirc_get_timer(void)
+{
+ return in(LIRC_PORT_TIMER) & LIRC_PORT_TIMER_BIT;
+}
+
+static unsigned int lirc_get_signal(void)
+{
+ return in(LIRC_PORT_SIGNAL) & LIRC_PORT_SIGNAL_BIT;
+}
+
+static void lirc_on(void)
+{
+ out(LIRC_PORT_DATA, tx_mask);
+}
+
+static void lirc_off(void)
+{
+ out(LIRC_PORT_DATA, 0);
+}
+
+static unsigned int init_lirc_timer(void)
+{
+ struct timeval tv, now;
+ unsigned int level, newlevel, timeelapsed, newtimer;
+ int count = 0;
+
+ do_gettimeofday(&tv);
+ tv.tv_sec++; /* wait max. 1 sec. */
+ level = lirc_get_timer();
+ do {
+ newlevel = lirc_get_timer();
+ if (level == 0 && newlevel != 0)
+ count++;
+ level = newlevel;
+ do_gettimeofday(&now);
+ } while (count < 1000 && (now.tv_sec < tv.tv_sec
+ || (now.tv_sec == tv.tv_sec
+ && now.tv_usec < tv.tv_usec)));
+
+ timeelapsed = ((now.tv_sec + 1 - tv.tv_sec)*1000000
+ + (now.tv_usec - tv.tv_usec));
+ if (count >= 1000 && timeelapsed > 0) {
+ if (default_timer == 0) {
+ /* autodetect timer */
+ newtimer = (1000000*count)/timeelapsed;
+ printk(KERN_INFO "%s: %u Hz timer detected\n",
+ LIRC_DRIVER_NAME, newtimer);
+ return newtimer;
+ } else {
+ newtimer = (1000000*count)/timeelapsed;
+ if (abs(newtimer - default_timer) > default_timer/10) {
+ /* bad timer */
+ printk(KERN_NOTICE "%s: bad timer: %u Hz\n",
+ LIRC_DRIVER_NAME, newtimer);
+ printk(KERN_NOTICE "%s: using default timer: "
+ "%u Hz\n",
+ LIRC_DRIVER_NAME, default_timer);
+ return default_timer;
+ } else {
+ printk(KERN_INFO "%s: %u Hz timer detected\n",
+ LIRC_DRIVER_NAME, newtimer);
+ return newtimer; /* use detected value */
+ }
+ }
+ } else {
+ printk(KERN_NOTICE "%s: no timer detected\n", LIRC_DRIVER_NAME);
+ return 0;
+ }
+}
+
+static int lirc_claim(void)
+{
+ if (parport_claim(ppdevice) != 0) {
+ printk(KERN_WARNING "%s: could not claim port\n",
+ LIRC_DRIVER_NAME);
+ printk(KERN_WARNING "%s: waiting for port becoming available"
+ "\n", LIRC_DRIVER_NAME);
+ if (parport_claim_or_block(ppdevice) < 0) {
+ printk(KERN_NOTICE "%s: could not claim port, giving"
+ " up\n", LIRC_DRIVER_NAME);
+ return 0;
+ }
+ }
+ out(LIRC_LP_CONTROL, LP_PSELECP|LP_PINITP);
+ is_claimed = 1;
+ return 1;
+}
+
+/*** interrupt handler ***/
+
+static void rbuf_write(lirc_t signal)
+{
+ unsigned int nwptr;
+
+ nwptr = (wptr + 1) & (RBUF_SIZE - 1);
+ if (nwptr == rptr) {
+ /* no new signals will be accepted */
+ lost_irqs++;
+ printk(KERN_NOTICE "%s: buffer overrun\n", LIRC_DRIVER_NAME);
+ return;
+ }
+ rbuf[wptr] = signal;
+ wptr = nwptr;
+}
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static void irq_handler(int i, void *blah, struct pt_regs *regs)
+#elif LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 24)
+static void irq_handler(int i, void *blah)
+#else
+static void irq_handler(void *blah)
+#endif
+{
+ struct timeval tv;
+ static struct timeval lasttv;
+ static int init;
+ long signal;
+ lirc_t data;
+ unsigned int level, newlevel;
+ unsigned int timeout;
+
+ if (!MOD_IN_USE)
+ return;
+
+ if (!is_claimed)
+ return;
+
+#if 0
+ /* disable interrupt */
+ disable_irq(irq);
+ out(LIRC_PORT_IRQ, in(LIRC_PORT_IRQ) & (~LP_PINTEN));
+#endif
+ if (check_pselecd && (in(1) & LP_PSELECD))
+ return;
+
+#ifdef LIRC_TIMER
+ if (init) {
+ do_gettimeofday(&tv);
+
+ signal = tv.tv_sec - lasttv.tv_sec;
+ if (signal > 15)
+ /* really long time */
+ data = PULSE_MASK;
+ else
+ data = (lirc_t) (signal*1000000 +
+ tv.tv_usec - lasttv.tv_usec +
+ LIRC_SFH506_DELAY);
+
+ rbuf_write(data); /* space */
+ } else {
+ if (timer == 0) {
+ /*
+ * wake up; we'll lose this signal, but it will be
+ * garbage if the device is turned on anyway
+ */
+ timer = init_lirc_timer();
+ /* enable_irq(irq); */
+ return;
+ }
+ init = 1;
+ }
+
+ timeout = timer/10; /* timeout after 1/10 sec. */
+ signal = 1;
+ level = lirc_get_timer();
+ do {
+ newlevel = lirc_get_timer();
+ if (level == 0 && newlevel != 0)
+ signal++;
+ level = newlevel;
+
+ /* giving up */
+ if (signal > timeout
+ || (check_pselecd && (in(1) & LP_PSELECD))) {
+ signal = 0;
+ printk(KERN_NOTICE "%s: timeout\n", LIRC_DRIVER_NAME);
+ break;
+ }
+ } while (lirc_get_signal());
+
+ if (signal != 0) {
+ /* adjust value to usecs */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
+ unsigned long long helper;
+
+ helper = ((unsigned long long) signal)*1000000;
+ do_div(helper, timer);
+ signal = (long) helper;
+#else
+ signal = (long) ((((double) signal)*1000000)/timer);
+#endif
+
+ if (signal > LIRC_SFH506_DELAY)
+ data = signal - LIRC_SFH506_DELAY;
+ else
+ data = 1;
+ rbuf_write(PULSE_BIT|data); /* pulse */
+ }
+ do_gettimeofday(&lasttv);
+#else
+ /* add your code here */
+#endif
+
+ wake_up_interruptible(&lirc_wait);
+
+ /* enable interrupt */
+ /*
+ enable_irq(irq);
+ out(LIRC_PORT_IRQ, in(LIRC_PORT_IRQ)|LP_PINTEN);
+ */
+}
+
+/*** file operations ***/
+
+static loff_t lirc_lseek(struct file *filep, loff_t offset, int orig)
+{
+ return -ESPIPE;
+}
+
+static ssize_t lirc_read(struct file *filep, char *buf, size_t n, loff_t *ppos)
+{
+ int result = 0;
+ int count = 0;
+ DECLARE_WAITQUEUE(wait, current);
+
+ if (n % sizeof(lirc_t))
+ return -EINVAL;
+
+ add_wait_queue(&lirc_wait, &wait);
+ set_current_state(TASK_INTERRUPTIBLE);
+ while (count < n) {
+ if (rptr != wptr) {
+ if (copy_to_user(buf+count, (char *) &rbuf[rptr],
+ sizeof(lirc_t))) {
+ result = -EFAULT;
+ break;
+ }
+ rptr = (rptr + 1) & (RBUF_SIZE - 1);
+ count += sizeof(lirc_t);
+ } else {
+ if (filep->f_flags & O_NONBLOCK) {
+ result = -EAGAIN;
+ break;
+ }
+ if (signal_pending(current)) {
+ result = -ERESTARTSYS;
+ break;
+ }
+ schedule();
+ set_current_state(TASK_INTERRUPTIBLE);
+ }
+ }
+ remove_wait_queue(&lirc_wait, &wait);
+ set_current_state(TASK_RUNNING);
+ return count ? count : result;
+}
+
+static ssize_t lirc_write(struct file *filep, const char *buf, size_t n,
+ loff_t *ppos)
+{
+ int count;
+ unsigned int i;
+ unsigned int level, newlevel;
+ unsigned long flags;
+ lirc_t counttimer;
+
+ if (!is_claimed)
+ return -EBUSY;
+
+ if (n % sizeof(lirc_t))
+ return -EINVAL;
+
+ count = n / sizeof(lirc_t);
+
+ if (count > WBUF_SIZE || count % 2 == 0)
+ return -EINVAL;
+
+ if (copy_from_user(wbuf, buf, n))
+ return -EFAULT;
+
+#ifdef LIRC_TIMER
+ if (timer == 0) {
+ /* try again if device is ready */
+ timer = init_lirc_timer();
+ if (timer == 0)
+ return -EIO;
+ }
+
+ /* adjust values from usecs */
+ for (i = 0; i < count; i++) {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
+ unsigned long long helper;
+
+ helper = ((unsigned long long) wbuf[i])*timer;
+ do_div(helper, 1000000);
+ wbuf[i] = (lirc_t) helper;
+#else
+ wbuf[i] = (lirc_t) (((double) wbuf[i])*timer/1000000);
+#endif
+ }
+
+ local_irq_save(flags);
+ i = 0;
+ while (i < count) {
+ level = lirc_get_timer();
+ counttimer = 0;
+ lirc_on();
+ do {
+ newlevel = lirc_get_timer();
+ if (level == 0 && newlevel != 0)
+ counttimer++;
+ level = newlevel;
+ if (check_pselecd && (in(1) & LP_PSELECD)) {
+ lirc_off();
+ local_irq_restore(flags);
+ return -EIO;
+ }
+ } while (counttimer < wbuf[i]);
+ i++;
+
+ lirc_off();
+ if (i == count)
+ break;
+ counttimer = 0;
+ do {
+ newlevel = lirc_get_timer();
+ if (level == 0 && newlevel != 0)
+ counttimer++;
+ level = newlevel;
+ if (check_pselecd && (in(1) & LP_PSELECD)) {
+ local_irq_restore(flags);
+ return -EIO;
+ }
+ } while (counttimer < wbuf[i]);
+ i++;
+ }
+ local_irq_restore(flags);
+#else
+ /* place code that handles write without external timer here */
+#endif
+ return n;
+}
+
+static unsigned int lirc_poll(struct file *file, poll_table *wait)
+{
+ poll_wait(file, &lirc_wait, wait);
+ if (rptr != wptr)
+ return POLLIN | POLLRDNORM;
+ return 0;
+}
+
+static int lirc_ioctl(struct inode *node, struct file *filep, unsigned int cmd,
+ unsigned long arg)
+{
+ int result;
+ unsigned long features = LIRC_CAN_SET_TRANSMITTER_MASK |
+ LIRC_CAN_SEND_PULSE | LIRC_CAN_REC_MODE2;
+ unsigned long mode;
+ unsigned int ivalue;
+
+ switch (cmd) {
+ case LIRC_GET_FEATURES:
+ result = put_user(features, (unsigned long *) arg);
+ if (result)
+ return result;
+ break;
+ case LIRC_GET_SEND_MODE:
+ result = put_user(LIRC_MODE_PULSE, (unsigned long *) arg);
+ if (result)
+ return result;
+ break;
+ case LIRC_GET_REC_MODE:
+ result = put_user(LIRC_MODE_MODE2, (unsigned long *) arg);
+ if (result)
+ return result;
+ break;
+ case LIRC_SET_SEND_MODE:
+ result = get_user(mode, (unsigned long *) arg);
+ if (result)
+ return result;
+ if (mode != LIRC_MODE_PULSE)
+ return -EINVAL;
+ break;
+ case LIRC_SET_REC_MODE:
+ result = get_user(mode, (unsigned long *) arg);
+ if (result)
+ return result;
+ if (mode != LIRC_MODE_MODE2)
+ return -ENOSYS;
+ break;
+ case LIRC_SET_TRANSMITTER_MASK:
+ result = get_user(ivalue, (unsigned int *) arg);
+ if (result)
+ return result;
+ if ((ivalue & LIRC_PARALLEL_TRANSMITTER_MASK) != ivalue)
+ return LIRC_PARALLEL_MAX_TRANSMITTERS;
+ tx_mask = ivalue;
+ break;
+ default:
+ return -ENOIOCTLCMD;
+ }
+ return 0;
+}
+
+static int lirc_open(struct inode *node, struct file *filep)
+{
+ if (MOD_IN_USE || !lirc_claim())
+ return -EBUSY;
+
+ parport_enable_irq(pport);
+
+ /* init read ptr */
+ rptr = 0;
+ wptr = 0;
+ lost_irqs = 0;
+
+ MOD_INC_USE_COUNT;
+ is_open = 1;
+ return 0;
+}
+
+static int lirc_close(struct inode *node, struct file *filep)
+{
+ if (is_claimed) {
+ is_claimed = 0;
+ parport_release(ppdevice);
+ }
+ is_open = 0;
+ MOD_DEC_USE_COUNT;
+ return 0;
+}
+
+static struct file_operations lirc_fops = {
+ .owner = THIS_MODULE,
+ .llseek = lirc_lseek,
+ .read = lirc_read,
+ .write = lirc_write,
+ .poll = lirc_poll,
+ .ioctl = lirc_ioctl,
+ .open = lirc_open,
+ .release = lirc_close
+};
+
+static int set_use_inc(void *data)
+{
+ return 0;
+}
+
+static void set_use_dec(void *data)
+{
+}
+
+static struct lirc_driver driver = {
+ .name = LIRC_DRIVER_NAME,
+ .minor = -1,
+ .code_length = 1,
+ .sample_rate = 0,
+ .data = NULL,
+ .add_to_buf = NULL,
+#ifndef LIRC_REMOVE_DURING_EXPORT
+ .get_queue = NULL,
+#endif
+ .set_use_inc = set_use_inc,
+ .set_use_dec = set_use_dec,
+ .fops = &lirc_fops,
+ .dev = NULL,
+ .owner = THIS_MODULE,
+};
+
+#ifdef MODULE
+static int pf(void *handle);
+static void kf(void *handle);
+
+static struct timer_list poll_timer;
+static void poll_state(unsigned long ignored);
+
+static void poll_state(unsigned long ignored)
+{
+ printk(KERN_NOTICE "%s: time\n",
+ LIRC_DRIVER_NAME);
+ del_timer(&poll_timer);
+ if (is_claimed)
+ return;
+ kf(NULL);
+ if (!is_claimed) {
+ printk(KERN_NOTICE "%s: could not claim port, giving up\n",
+ LIRC_DRIVER_NAME);
+ init_timer(&poll_timer);
+ poll_timer.expires = jiffies + HZ;
+ poll_timer.data = (unsigned long)current;
+ poll_timer.function = poll_state;
+ add_timer(&poll_timer);
+ }
+}
+
+static int pf(void *handle)
+{
+ parport_disable_irq(pport);
+ is_claimed = 0;
+ return 0;
+}
+
+static void kf(void *handle)
+{
+ if (!is_open)
+ return;
+ if (!lirc_claim())
+ return;
+ parport_enable_irq(pport);
+ lirc_off();
+ /* this is a bit annoying when you actually print...*/
+ /*
+ printk(KERN_INFO "%s: reclaimed port\n", LIRC_DRIVER_NAME);
+ */
+}
+
+/*** module initialization and cleanup ***/
+
+static int __init lirc_parallel_init(void)
+{
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 3)
+ pport = parport_find_base(io);
+#else
+ pport = parport_enumerate();
+ while (pport != NULL) {
+ if (pport->base == io)
+ break;
+ pport = pport->next;
+ }
+#endif
+ if (pport == NULL) {
+ printk(KERN_NOTICE "%s: no port at %x found\n",
+ LIRC_DRIVER_NAME, io);
+ return -ENXIO;
+ }
+ ppdevice = parport_register_device(pport, LIRC_DRIVER_NAME,
+ pf, kf, irq_handler, 0, NULL);
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 3)
+ parport_put_port(pport);
+#endif
+ if (ppdevice == NULL) {
+ printk(KERN_NOTICE "%s: parport_register_device() failed\n",
+ LIRC_DRIVER_NAME);
+ return -ENXIO;
+ }
+ if (parport_claim(ppdevice) != 0)
+ goto skip_init;
+ is_claimed = 1;
+ out(LIRC_LP_CONTROL, LP_PSELECP|LP_PINITP);
+
+#ifdef LIRC_TIMER
+ if (debug)
+ out(LIRC_PORT_DATA, tx_mask);
+
+ timer = init_lirc_timer();
+
+#if 0 /* continue even if device is offline */
+ if (timer == 0) {
+ is_claimed = 0;
+ parport_release(pport);
+ parport_unregister_device(ppdevice);
+ return -EIO;
+ }
+
+#endif
+ if (debug)
+ out(LIRC_PORT_DATA, 0);
+#endif
+
+ is_claimed = 0;
+ parport_release(ppdevice);
+ skip_init:
+ driver.minor = lirc_register_driver(&driver);
+ if (driver.minor < 0) {
+ printk(KERN_NOTICE "%s: register_chrdev() failed\n",
+ LIRC_DRIVER_NAME);
+ parport_unregister_device(ppdevice);
+ return -EIO;
+ }
+ printk(KERN_INFO "%s: installed using port 0x%04x irq %d\n",
+ LIRC_DRIVER_NAME, io, irq);
+ return 0;
+}
+
+static void __exit lirc_parallel_exit(void)
+{
+ parport_unregister_device(ppdevice);
+ lirc_unregister_driver(driver.minor);
+}
+
+module_init(lirc_parallel_init);
+module_exit(lirc_parallel_exit);
+
+MODULE_DESCRIPTION("Infrared receiver driver for parallel ports.");
+MODULE_AUTHOR("Christoph Bartelmus");
+MODULE_LICENSE("GPL");
+
+module_param(io, int, S_IRUGO);
+MODULE_PARM_DESC(io, "I/O address base (0x3bc, 0x378 or 0x278)");
+
+module_param(irq, int, S_IRUGO);
+MODULE_PARM_DESC(irq, "Interrupt (7 or 5)");
+
+module_param(tx_mask, int, S_IRUGO);
+MODULE_PARM_DESC(tx_maxk, "Transmitter mask (default: 0x01)");
+
+module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
+
+module_param(check_pselecd, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Check for printer (default: 0)");
+EXPORT_NO_SYMBOLS;
+#endif /* MODULE */
diff --git a/ubuntu/lirc/lirc_parallel/lirc_parallel.h b/ubuntu/lirc/lirc_parallel/lirc_parallel.h
new file mode 100644
index 00000000000..59679c6ac60
--- /dev/null
+++ b/ubuntu/lirc/lirc_parallel/lirc_parallel.h
@@ -0,0 +1,26 @@
+/* $Id: lirc_parallel.h,v 5.2 2007/01/25 04:32:05 lirc Exp $ */
+
+#ifndef _LIRC_PARALLEL_H
+#define _LIRC_PARALLEL_H
+
+#include <linux/lp.h>
+
+#define LIRC_PORT_LEN 3
+
+#define LIRC_LP_BASE 0
+#define LIRC_LP_STATUS 1
+#define LIRC_LP_CONTROL 2
+
+#define LIRC_PORT_DATA LIRC_LP_BASE /* base */
+#define LIRC_PORT_TIMER LIRC_LP_STATUS /* status port */
+#define LIRC_PORT_TIMER_BIT LP_PBUSY /* busy signal */
+#define LIRC_PORT_SIGNAL LIRC_LP_STATUS /* status port */
+#define LIRC_PORT_SIGNAL_BIT LP_PACK /* ack signal */
+#define LIRC_PORT_IRQ LIRC_LP_CONTROL /* control port */
+
+#define LIRC_SFH506_DELAY 0 /* delay t_phl in usecs */
+
+#define LIRC_PARALLEL_MAX_TRANSMITTERS 8
+#define LIRC_PARALLEL_TRANSMITTER_MASK ((1<<LIRC_PARALLEL_MAX_TRANSMITTERS) - 1)
+
+#endif
diff --git a/ubuntu/lirc/lirc_sasem/Makefile b/ubuntu/lirc/lirc_sasem/Makefile
new file mode 100644
index 00000000000..18e23f8c9de
--- /dev/null
+++ b/ubuntu/lirc/lirc_sasem/Makefile
@@ -0,0 +1,2 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+obj-$(CONFIG_LIRC_SASEM) += lirc_sasem.o
diff --git a/ubuntu/lirc/lirc_sasem/lirc_sasem.c b/ubuntu/lirc/lirc_sasem/lirc_sasem.c
new file mode 100644
index 00000000000..f5a39b12da5
--- /dev/null
+++ b/ubuntu/lirc/lirc_sasem/lirc_sasem.c
@@ -0,0 +1,1106 @@
+/* $Id: lirc_sasem.c,v 1.40 2009/02/28 10:27:10 lirc Exp $ */
+/*
+ * lirc_sasem.c - USB remote support for LIRC
+ * Version 0.5
+ *
+ * Copyright (C) 2004-2005 Oliver Stabel <oliver.stabel@gmx.de>
+ * Tim Davies <tim@opensystems.net.au>
+ *
+ * This driver was derived from:
+ * Venky Raju <dev@venky.ws>
+ * "lirc_imon - "LIRC/VFD driver for Ahanix/Soundgraph IMON IR/VFD"
+ * Paul Miller <pmiller9@users.sourceforge.net>'s 2003-2004
+ * "lirc_atiusb - USB remote support for LIRC"
+ * Culver Consulting Services <henry@culcon.com>'s 2003
+ * "Sasem OnAir VFD/IR USB driver"
+ *
+ *
+ * NOTE - The LCDproc iMon driver should work with this module. More info at
+ * http://www.frogstorm.info/sasem
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <linux/version.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 22)
+#error "*** Sorry, this driver requires kernel version 2.4.22 or higher"
+#endif
+
+#include <linux/errno.h>
+#include <linux/init.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
+#include <asm/uaccess.h>
+#else
+#include <linux/uaccess.h>
+#endif
+#include <linux/usb.h>
+
+#include "../kcompat.h"
+#include "../lirc.h"
+#include "../lirc_dev/lirc_dev.h"
+
+
+#define MOD_AUTHOR "Oliver Stabel <oliver.stabel@gmx.de>, " \
+ "Tim Davies <tim@opensystems.net.au>"
+#define MOD_DESC "USB Driver for Sasem Remote Controller V1.1"
+#define MOD_NAME "lirc_sasem"
+#define MOD_VERSION "0.5"
+
+#define VFD_MINOR_BASE 144 /* Same as LCD */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15)
+#define DEVFS_MODE S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH
+#endif
+#define DEVFS_NAME LIRC_DEVFS_PREFIX "lcd%d"
+
+#define BUF_CHUNK_SIZE 8
+#define BUF_SIZE 128
+
+#define IOCTL_LCD_CONTRAST 1
+
+/*** P R O T O T Y P E S ***/
+
+/* USB Callback prototypes */
+#ifdef KERNEL_2_5
+static int sasem_probe(struct usb_interface *interface,
+ const struct usb_device_id *id);
+static void sasem_disconnect(struct usb_interface *interface);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static void usb_rx_callback(struct urb *urb, struct pt_regs *regs);
+static void usb_tx_callback(struct urb *urb, struct pt_regs *regs);
+#else
+static void usb_rx_callback(struct urb *urb);
+static void usb_tx_callback(struct urb *urb);
+#endif
+#else
+static void *sasem_probe(struct usb_device *dev, unsigned int intf,
+ const struct usb_device_id *id);
+static void sasem_disconnect(struct usb_device *dev, void *data);
+static void usb_rx_callback(struct urb *urb);
+static void usb_tx_callback(struct urb *urb);
+#endif
+
+/* VFD file_operations function prototypes */
+static int vfd_open(struct inode *inode, struct file *file);
+static int vfd_ioctl(struct inode *inode, struct file *file,
+ unsigned cmd, unsigned long arg);
+static int vfd_close(struct inode *inode, struct file *file);
+static ssize_t vfd_write(struct file *file, const char *buf,
+ size_t n_bytes, loff_t *pos);
+
+/* LIRC driver function prototypes */
+static int ir_open(void *data);
+static void ir_close(void *data);
+
+/* Driver init/exit prototypes */
+static int __init sasem_init(void);
+static void __exit sasem_exit(void);
+
+/*** G L O B A L S ***/
+
+struct sasem_context {
+
+ struct usb_device *dev;
+ int vfd_isopen; /* VFD port has been opened */
+ unsigned int vfd_contrast; /* VFD contrast */
+#if !defined(KERNEL_2_5)
+ int subminor; /* index into minor_table */
+ devfs_handle_t devfs;
+#endif
+ int ir_isopen; /* IR port has been opened */
+ int dev_present; /* USB device presence */
+ struct mutex lock; /* to lock this object */
+ wait_queue_head_t remove_ok; /* For unexpected USB disconnects */
+
+ struct lirc_driver *driver;
+ struct usb_endpoint_descriptor *rx_endpoint;
+ struct usb_endpoint_descriptor *tx_endpoint;
+ struct urb *rx_urb;
+ struct urb *tx_urb;
+ unsigned char usb_rx_buf[8];
+ unsigned char usb_tx_buf[8];
+
+ struct tx_t {
+ unsigned char data_buf[32]; /* user data buffer */
+ struct completion finished; /* wait for write to finish */
+ atomic_t busy; /* write in progress */
+ int status; /* status of tx completion */
+ } tx;
+
+ /* for dealing with repeat codes (wish there was a toggle bit!) */
+ struct timeval presstime;
+ char lastcode[8];
+ int codesaved;
+};
+
+/* VFD file operations */
+static struct file_operations vfd_fops = {
+
+ .owner = THIS_MODULE,
+ .open = &vfd_open,
+ .write = &vfd_write,
+ .ioctl = &vfd_ioctl,
+ .release = &vfd_close
+};
+
+/* USB Device ID for Sasem USB Control Board */
+static struct usb_device_id sasem_usb_id_table [] = {
+ /* Sasem USB Control Board */
+ { USB_DEVICE(0x11ba, 0x0101) },
+ /* Terminating entry */
+ {}
+};
+
+/* USB Device data */
+static struct usb_driver sasem_driver = {
+ LIRC_THIS_MODULE(.owner = THIS_MODULE)
+ .name = MOD_NAME,
+ .probe = sasem_probe,
+ .disconnect = sasem_disconnect,
+ .id_table = sasem_usb_id_table,
+#if !defined(KERNEL_2_5)
+ .fops = &vfd_fops,
+ .minor = VFD_MINOR_BASE,
+#endif
+};
+
+#ifdef KERNEL_2_5
+static struct usb_class_driver sasem_class = {
+ .name = DEVFS_NAME,
+ .fops = &vfd_fops,
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 15)
+ .mode = DEVFS_MODE,
+#endif
+ .minor_base = VFD_MINOR_BASE,
+};
+#endif
+
+/* to prevent races between open() and disconnect() */
+static DEFINE_MUTEX(disconnect_lock);
+
+static int debug;
+
+#if !defined(KERNEL_2_5)
+
+#define MAX_DEVICES 4 /* In case there's more than one Sasem device */
+static struct sasem_context *minor_table [MAX_DEVICES];
+
+/* the global usb devfs handle */
+extern devfs_handle_t usb_devfs_handle;
+
+#endif
+
+/*** M O D U L E C O D E ***/
+
+MODULE_AUTHOR(MOD_AUTHOR);
+MODULE_DESCRIPTION(MOD_DESC);
+MODULE_LICENSE("GPL");
+module_param(debug, int, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Debug messages: 0=no, 1=yes (default: no)");
+
+static void delete_context(struct sasem_context *context)
+{
+ usb_free_urb(context->tx_urb); /* VFD */
+ usb_free_urb(context->rx_urb); /* IR */
+ lirc_buffer_free(context->driver->rbuf);
+ kfree(context->driver->rbuf);
+ kfree(context->driver);
+ kfree(context);
+
+ if (debug)
+ printk(KERN_INFO "%s: context deleted\n", __func__);
+}
+
+static void deregister_from_lirc(struct sasem_context *context)
+{
+ int retval;
+ int minor = context->driver->minor;
+
+ retval = lirc_unregister_driver(minor);
+ if (retval)
+ err("%s: unable to deregister from lirc (%d)",
+ __func__, retval);
+ else
+ printk(KERN_INFO "Deregistered Sasem driver (minor:%d)\n",
+ minor);
+
+}
+
+/**
+ * Called when the VFD device (e.g. /dev/usb/lcd)
+ * is opened by the application.
+ */
+static int vfd_open(struct inode *inode, struct file *file)
+{
+#ifdef KERNEL_2_5
+ struct usb_interface *interface;
+#endif
+ struct sasem_context *context = NULL;
+ int subminor;
+ int retval = 0;
+
+ /* prevent races with disconnect */
+ mutex_lock(&disconnect_lock);
+
+#ifdef KERNEL_2_5
+ subminor = iminor(inode);
+ interface = usb_find_interface(&sasem_driver, subminor);
+ if (!interface) {
+ err("%s: could not find interface for minor %d",
+ __func__, subminor);
+ retval = -ENODEV;
+ goto exit;
+ }
+ context = usb_get_intfdata(interface);
+#else
+ subminor = MINOR(inode->i_rdev) - VFD_MINOR_BASE;
+ if (subminor < 0 || subminor >= MAX_DEVICES) {
+ err("%s: no record of minor %d", __func__, subminor);
+ retval = -ENODEV;
+ goto exit;
+ }
+ context = minor_table [subminor];
+#endif
+
+ if (!context) {
+ err("%s: no context found for minor %d",
+ __func__, subminor);
+ retval = -ENODEV;
+ goto exit;
+ }
+
+ mutex_lock(&context->lock);
+
+ if (context->vfd_isopen) {
+ err("%s: VFD port is already open", __func__);
+ retval = -EBUSY;
+ } else {
+ MOD_INC_USE_COUNT;
+ context->vfd_isopen = 1;
+ file->private_data = context;
+ printk(KERN_INFO "VFD port opened\n");
+ }
+
+ mutex_unlock(&context->lock);
+
+exit:
+ mutex_unlock(&disconnect_lock);
+ return retval;
+}
+
+/**
+ * Called when the VFD device (e.g. /dev/usb/lcd)
+ * is closed by the application.
+ */
+static int vfd_ioctl(struct inode *inode, struct file *file,
+ unsigned cmd, unsigned long arg)
+{
+ struct sasem_context *context = NULL;
+
+ context = (struct sasem_context *) file->private_data;
+
+ if (!context) {
+ err("%s: no context for device", __func__);
+ return -ENODEV;
+ }
+
+ mutex_lock(&context->lock);
+
+ switch (cmd) {
+ case IOCTL_LCD_CONTRAST:
+ if (arg > 1000)
+ arg = 1000;
+ context->vfd_contrast = (unsigned int)arg;
+ break;
+ default:
+ printk(KERN_INFO "Unknown IOCTL command\n");
+ mutex_unlock(&context->lock);
+ return -ENOIOCTLCMD; /* not supported */
+ }
+
+ mutex_unlock(&context->lock);
+ return 0;
+}
+
+/**
+ * Called when the VFD device (e.g. /dev/usb/lcd)
+ * is closed by the application.
+ */
+static int vfd_close(struct inode *inode, struct file *file)
+{
+ struct sasem_context *context = NULL;
+ int retval = 0;
+
+ context = (struct sasem_context *) file->private_data;
+
+ if (!context) {
+ err("%s: no context for device", __func__);
+ return -ENODEV;
+ }
+
+ mutex_lock(&context->lock);
+
+ if (!context->vfd_isopen) {
+ err("%s: VFD is not open", __func__);
+ retval = -EIO;
+ } else {
+ context->vfd_isopen = 0;
+ MOD_DEC_USE_COUNT;
+ printk(KERN_INFO "VFD port closed\n");
+ if (!context->dev_present && !context->ir_isopen) {
+
+ /* Device disconnected before close and IR port is
+ * not open. If IR port is open, context will be
+ * deleted by ir_close. */
+ mutex_unlock(&context->lock);
+ delete_context(context);
+ return retval;
+ }
+ }
+
+ mutex_unlock(&context->lock);
+ return retval;
+}
+
+/**
+ * Sends a packet to the VFD.
+ */
+static int send_packet(struct sasem_context *context)
+{
+ unsigned int pipe;
+ int interval = 0;
+ int retval = 0;
+
+ pipe = usb_sndintpipe(context->dev,
+ context->tx_endpoint->bEndpointAddress);
+#ifdef KERNEL_2_5
+ interval = context->tx_endpoint->bInterval;
+#endif /* Use 0 for 2.4 kernels */
+
+ usb_fill_int_urb(context->tx_urb, context->dev, pipe,
+ context->usb_tx_buf, sizeof(context->usb_tx_buf),
+ usb_tx_callback, context, interval);
+
+ context->tx_urb->actual_length = 0;
+
+ init_completion(&context->tx.finished);
+ atomic_set(&(context->tx.busy), 1);
+
+#ifdef KERNEL_2_5
+ retval = usb_submit_urb(context->tx_urb, GFP_KERNEL);
+#else
+ retval = usb_submit_urb(context->tx_urb);
+#endif
+ if (retval) {
+ atomic_set(&(context->tx.busy), 0);
+ err("%s: error submitting urb (%d)", __func__, retval);
+ } else {
+ /* Wait for transmission to complete (or abort) */
+ mutex_unlock(&context->lock);
+ wait_for_completion(&context->tx.finished);
+ mutex_lock(&context->lock);
+
+ retval = context->tx.status;
+ if (retval)
+ err("%s: packet tx failed (%d)", __func__, retval);
+ }
+
+ return retval;
+}
+
+/**
+ * Writes data to the VFD. The Sasem VFD is 2x16 characters
+ * and requires data in 9 consecutive USB interrupt packets,
+ * each packet carrying 8 bytes.
+ */
+static ssize_t vfd_write(struct file *file, const char *buf,
+ size_t n_bytes, loff_t *pos)
+{
+ int i;
+ int retval = 0;
+ struct sasem_context *context;
+
+ context = (struct sasem_context *) file->private_data;
+ if (!context) {
+ err("%s: no context for device", __func__);
+ return -ENODEV;
+ }
+
+ mutex_lock(&context->lock);
+
+ if (!context->dev_present) {
+ err("%s: no Sasem device present", __func__);
+ retval = -ENODEV;
+ goto exit;
+ }
+
+ if (n_bytes <= 0 || n_bytes > 32) {
+ err("%s: invalid payload size", __func__);
+ retval = -EINVAL;
+ goto exit;
+ }
+
+ retval = copy_from_user(context->tx.data_buf, buf, n_bytes);
+ if (retval < 0)
+ goto exit;
+
+ /* Pad with spaces */
+ for (i = n_bytes; i < 32; ++i)
+ context->tx.data_buf[i] = ' ';
+
+ /* Nine 8 byte packets to be sent */
+ /* NOTE: "\x07\x01\0\0\0\0\0\0" or "\x0c\0\0\0\0\0\0\0"
+ * will clear the VFD */
+ for (i = 0; i < 9; i++) {
+ switch (i) {
+ case 0:
+ memcpy(context->usb_tx_buf, "\x07\0\0\0\0\0\0\0", 8);
+ context->usb_tx_buf[1] = (context->vfd_contrast) ?
+ (0x2B - (context->vfd_contrast - 1) / 250)
+ : 0x2B;
+ break;
+ case 1:
+ memcpy(context->usb_tx_buf, "\x09\x01\0\0\0\0\0\0", 8);
+ break;
+ case 2:
+ memcpy(context->usb_tx_buf, "\x0b\x01\0\0\0\0\0\0", 8);
+ break;
+ case 3:
+ memcpy(context->usb_tx_buf, context->tx.data_buf, 8);
+ break;
+ case 4:
+ memcpy(context->usb_tx_buf,
+ context->tx.data_buf + 8, 8);
+ break;
+ case 5:
+ memcpy(context->usb_tx_buf, "\x09\x01\0\0\0\0\0\0", 8);
+ break;
+ case 6:
+ memcpy(context->usb_tx_buf, "\x0b\x02\0\0\0\0\0\0", 8);
+ break;
+ case 7:
+ memcpy(context->usb_tx_buf,
+ context->tx.data_buf + 16, 8);
+ break;
+ case 8:
+ memcpy(context->usb_tx_buf,
+ context->tx.data_buf + 24, 8);
+ break;
+ }
+ retval = send_packet(context);
+ if (retval) {
+
+ err("%s: send packet failed for packet #%d",
+ __func__, i);
+ goto exit;
+ }
+ }
+exit:
+
+ mutex_unlock(&context->lock);
+
+ return (!retval) ? n_bytes : retval;
+}
+
+/**
+ * Callback function for USB core API: transmit data
+ */
+#if defined(KERNEL_2_5) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static void usb_tx_callback(struct urb *urb, struct pt_regs *regs)
+#else
+static void usb_tx_callback(struct urb *urb)
+#endif
+{
+ struct sasem_context *context;
+
+ if (!urb)
+ return;
+ context = (struct sasem_context *) urb->context;
+ if (!context)
+ return;
+
+ context->tx.status = urb->status;
+
+ /* notify waiters that write has finished */
+ atomic_set(&context->tx.busy, 0);
+ complete(&context->tx.finished);
+
+ return;
+}
+
+/**
+ * Called by lirc_dev when the application opens /dev/lirc
+ */
+static int ir_open(void *data)
+{
+ int retval = 0;
+ struct sasem_context *context;
+
+ /* prevent races with disconnect */
+ mutex_lock(&disconnect_lock);
+
+ context = (struct sasem_context *) data;
+
+ mutex_lock(&context->lock);
+
+ if (context->ir_isopen) {
+ err("%s: IR port is already open", __func__);
+ retval = -EBUSY;
+ goto exit;
+ }
+
+ usb_fill_int_urb(context->rx_urb, context->dev,
+ usb_rcvintpipe(context->dev,
+ context->rx_endpoint->bEndpointAddress),
+ context->usb_rx_buf, sizeof(context->usb_rx_buf),
+ usb_rx_callback, context, context->rx_endpoint->bInterval);
+
+#ifdef KERNEL_2_5
+ retval = usb_submit_urb(context->rx_urb, GFP_KERNEL);
+#else
+ retval = usb_submit_urb(context->rx_urb);
+#endif
+
+ if (retval)
+ err("%s: usb_submit_urb failed for ir_open (%d)",
+ __func__, retval);
+ else {
+ MOD_INC_USE_COUNT;
+ context->ir_isopen = 1;
+ printk(KERN_INFO "IR port opened\n");
+ }
+
+exit:
+ mutex_unlock(&context->lock);
+
+ mutex_unlock(&disconnect_lock);
+ return 0;
+}
+
+/**
+ * Called by lirc_dev when the application closes /dev/lirc
+ */
+static void ir_close(void *data)
+{
+ struct sasem_context *context;
+
+ context = (struct sasem_context *)data;
+ if (!context) {
+ err("%s: no context for device", __func__);
+ return;
+ }
+
+ mutex_lock(&context->lock);
+
+ usb_kill_urb(context->rx_urb);
+ context->ir_isopen = 0;
+ MOD_DEC_USE_COUNT;
+ printk(KERN_INFO "IR port closed\n");
+
+ if (!context->dev_present) {
+
+ /*
+ * Device disconnected while IR port was
+ * still open. Driver was not deregistered
+ * at disconnect time, so do it now.
+ */
+ deregister_from_lirc(context);
+
+ if (!context->vfd_isopen) {
+
+ mutex_unlock(&context->lock);
+ delete_context(context);
+ return;
+ }
+ /* If VFD port is open, context will be deleted by vfd_close */
+ }
+
+ mutex_unlock(&context->lock);
+ return;
+}
+
+/**
+ * Process the incoming packet
+ */
+static void incoming_packet(struct sasem_context *context,
+ struct urb *urb)
+{
+ int len = urb->actual_length;
+ unsigned char *buf = urb->transfer_buffer;
+ long ms;
+ struct timeval tv;
+
+ if (len != 8) {
+ printk(KERN_WARNING "%s: invalid incoming packet size (%d)\n",
+ __func__, len);
+ return;
+ }
+
+#ifdef DEBUG
+ int i;
+ for (i = 0; i < 8; ++i)
+ printk(KERN_INFO "%02x ", buf [i]);
+ printk(KERN_INFO "\n");
+#endif
+
+ /*
+ * Lirc could deal with the repeat code, but we really need to block it
+ * if it arrives too late. Otherwise we could repeat the wrong code.
+ */
+
+ /* get the time since the last button press */
+ do_gettimeofday(&tv);
+ ms = (tv.tv_sec - context->presstime.tv_sec) * 1000 +
+ (tv.tv_usec - context->presstime.tv_usec) / 1000;
+
+ if (memcmp(buf, "\x08\0\0\0\0\0\0\0", 8) == 0) {
+ /*
+ * the repeat code is being sent, so we copy
+ * the old code to LIRC
+ */
+
+ /*
+ * NOTE: Only if the last code was less than 250ms ago
+ * - no one should be able to push another (undetected) button
+ * in that time and then get a false repeat of the previous
+ * press but it is long enough for a genuine repeat
+ */
+ if ((ms < 250) && (context->codesaved != 0)) {
+ memcpy(buf, &context->lastcode, 8);
+ context->presstime.tv_sec = tv.tv_sec;
+ context->presstime.tv_usec = tv.tv_usec;
+ }
+ } else {
+ /* save the current valid code for repeats */
+ memcpy(&context->lastcode, buf, 8);
+ /*
+ * set flag to signal a valid code was save;
+ * just for safety reasons
+ */
+ context->codesaved = 1;
+ context->presstime.tv_sec = tv.tv_sec;
+ context->presstime.tv_usec = tv.tv_usec;
+ }
+
+ lirc_buffer_write(context->driver->rbuf, buf);
+ wake_up(&context->driver->rbuf->wait_poll);
+}
+
+/**
+ * Callback function for USB core API: receive data
+ */
+#if defined(KERNEL_2_5) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static void usb_rx_callback(struct urb *urb, struct pt_regs *regs)
+#else
+static void usb_rx_callback(struct urb *urb)
+#endif
+{
+ struct sasem_context *context;
+
+ if (!urb)
+ return;
+ context = (struct sasem_context *) urb->context;
+ if (!context)
+ return;
+
+ switch (urb->status) {
+
+ case -ENOENT: /* usbcore unlink successful! */
+ return;
+
+ case 0:
+ if (context->ir_isopen)
+ incoming_packet(context, urb);
+ break;
+
+ default:
+ printk(KERN_WARNING "%s: status (%d): ignored\n",
+ __func__, urb->status);
+ break;
+ }
+
+#ifdef KERNEL_2_5
+ usb_submit_urb(context->rx_urb, GFP_ATOMIC);
+#endif
+ return;
+}
+
+
+
+/**
+ * Callback function for USB core API: Probe
+ */
+#ifdef KERNEL_2_5
+static int sasem_probe(struct usb_interface *interface,
+ const struct usb_device_id *id)
+#else
+static void *sasem_probe(struct usb_device *dev, unsigned int intf,
+ const struct usb_device_id *id)
+#endif
+{
+#ifdef KERNEL_2_5
+ struct usb_device *dev = NULL;
+ struct usb_host_interface *iface_desc = NULL;
+#else
+ struct usb_interface *interface = NULL;
+ struct usb_interface_descriptor *iface_desc = NULL;
+ char name [10];
+ int subminor = 0;
+#endif
+ struct usb_endpoint_descriptor *rx_endpoint = NULL;
+ struct usb_endpoint_descriptor *tx_endpoint = NULL;
+ struct urb *rx_urb = NULL;
+ struct urb *tx_urb = NULL;
+ struct lirc_driver *driver = NULL;
+ struct lirc_buffer *rbuf = NULL;
+ int lirc_minor = 0;
+ int num_endpoints;
+ int retval = 0;
+ int vfd_ep_found;
+ int ir_ep_found;
+ int alloc_status;
+ struct sasem_context *context = NULL;
+ int i;
+
+ printk(KERN_INFO "%s: found Sasem device\n", __func__);
+
+#if !defined(KERNEL_2_5)
+ for (subminor = 0; subminor < MAX_DEVICES; ++subminor) {
+ if (minor_table [subminor] == NULL)
+ break;
+ }
+ if (subminor == MAX_DEVICES) {
+ err("%s: allowed number of devices already present",
+ __func__);
+ retval = -ENOMEM;
+ goto exit;
+ }
+#endif
+
+#ifdef KERNEL_2_5
+ dev = usb_get_dev(interface_to_usbdev(interface));
+ iface_desc = interface->cur_altsetting;
+ num_endpoints = iface_desc->desc.bNumEndpoints;
+#else
+ interface = &dev->actconfig->interface [intf];
+ iface_desc = &interface->altsetting [interface->act_altsetting];
+ num_endpoints = iface_desc->bNumEndpoints;
+#endif
+
+ /*
+ * Scan the endpoint list and set:
+ * first input endpoint = IR endpoint
+ * first output endpoint = VFD endpoint
+ */
+
+ ir_ep_found = 0;
+ vfd_ep_found = 0;
+
+ for (i = 0; i < num_endpoints && !(ir_ep_found && vfd_ep_found); ++i) {
+
+ struct usb_endpoint_descriptor *ep;
+ int ep_dir;
+ int ep_type;
+#ifdef KERNEL_2_5
+ ep = &iface_desc->endpoint [i].desc;
+#else
+ ep = &iface_desc->endpoint [i];
+#endif
+ ep_dir = ep->bEndpointAddress & USB_ENDPOINT_DIR_MASK;
+ ep_type = ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
+
+ if (!ir_ep_found &&
+ ep_dir == USB_DIR_IN &&
+ ep_type == USB_ENDPOINT_XFER_INT) {
+
+ rx_endpoint = ep;
+ ir_ep_found = 1;
+ if (debug)
+ printk(KERN_INFO "%s: found IR endpoint\n",
+ __func__);
+
+ } else if (!vfd_ep_found &&
+ ep_dir == USB_DIR_OUT &&
+ ep_type == USB_ENDPOINT_XFER_INT) {
+
+ tx_endpoint = ep;
+ vfd_ep_found = 1;
+ if (debug)
+ printk(KERN_INFO "%s: found VFD endpoint\n",
+ __func__);
+ }
+ }
+
+ /* Input endpoint is mandatory */
+ if (!ir_ep_found) {
+
+ err("%s: no valid input (IR) endpoint found.", __func__);
+ retval = -ENODEV;
+ goto exit;
+ }
+
+ if (!vfd_ep_found)
+ printk(KERN_INFO "%s: no valid output (VFD) endpoint found.\n",
+ __func__);
+
+
+ /* Allocate memory */
+ alloc_status = 0;
+
+ context = kzalloc(sizeof(struct sasem_context), GFP_KERNEL);
+ if (!context) {
+ err("%s: kzalloc failed for context", __func__);
+ alloc_status = 1;
+ goto alloc_status_switch;
+ }
+ driver = kzalloc(sizeof(struct lirc_driver), GFP_KERNEL);
+ if (!driver) {
+ err("%s: kzalloc failed for lirc_driver", __func__);
+ alloc_status = 2;
+ goto alloc_status_switch;
+ }
+ rbuf = kmalloc(sizeof(struct lirc_buffer), GFP_KERNEL);
+ if (!rbuf) {
+ err("%s: kmalloc failed for lirc_buffer", __func__);
+ alloc_status = 3;
+ goto alloc_status_switch;
+ }
+ if (lirc_buffer_init(rbuf, BUF_CHUNK_SIZE, BUF_SIZE)) {
+ err("%s: lirc_buffer_init failed", __func__);
+ alloc_status = 4;
+ goto alloc_status_switch;
+ }
+#ifdef KERNEL_2_5
+ rx_urb = usb_alloc_urb(0, GFP_KERNEL);
+#else
+ rx_urb = usb_alloc_urb(0);
+#endif
+ if (!rx_urb) {
+ err("%s: usb_alloc_urb failed for IR urb", __func__);
+ alloc_status = 5;
+ goto alloc_status_switch;
+ }
+ if (vfd_ep_found) {
+#ifdef KERNEL_2_5
+ tx_urb = usb_alloc_urb(0, GFP_KERNEL);
+#else
+ tx_urb = usb_alloc_urb(0);
+#endif
+ if (!tx_urb) {
+ err("%s: usb_alloc_urb failed for VFD urb", __func__);
+ alloc_status = 6;
+ goto alloc_status_switch;
+ }
+ }
+
+ mutex_init(&context->lock);
+
+ strcpy(driver->name, MOD_NAME);
+ driver->minor = -1;
+ driver->code_length = 64;
+ driver->sample_rate = 0;
+ driver->features = LIRC_CAN_REC_LIRCCODE;
+ driver->data = context;
+ driver->rbuf = rbuf;
+ driver->set_use_inc = ir_open;
+ driver->set_use_dec = ir_close;
+#ifdef LIRC_HAVE_SYSFS
+ driver->dev = &interface->dev;
+#endif
+ driver->owner = THIS_MODULE;
+
+ mutex_lock(&context->lock);
+
+ lirc_minor = lirc_register_driver(driver);
+ if (lirc_minor < 0) {
+ err("%s: lirc_register_driver failed", __func__);
+ alloc_status = 7;
+ mutex_unlock(&context->lock);
+ } else
+ printk(KERN_INFO "%s: Registered Sasem driver (minor:%d)\n",
+ __func__, lirc_minor);
+
+alloc_status_switch:
+
+ switch (alloc_status) {
+
+ case 7:
+ if (vfd_ep_found)
+ usb_free_urb(tx_urb);
+ case 6:
+ usb_free_urb(rx_urb);
+ case 5:
+ lirc_buffer_free(rbuf);
+ case 4:
+ kfree(rbuf);
+ case 3:
+ kfree(driver);
+ case 2:
+ kfree(context);
+ context = NULL;
+ case 1:
+ retval = -ENOMEM;
+ goto exit;
+ }
+
+ /* Needed while unregistering! */
+ driver->minor = lirc_minor;
+
+ context->dev = dev;
+ context->dev_present = 1;
+ context->rx_endpoint = rx_endpoint;
+ context->rx_urb = rx_urb;
+ if (vfd_ep_found) {
+ context->tx_endpoint = tx_endpoint;
+ context->tx_urb = tx_urb;
+ context->vfd_contrast = 1000; /* range 0 - 1000 */
+ }
+ context->driver = driver;
+
+#ifdef KERNEL_2_5
+ usb_set_intfdata(interface, context);
+#else
+ minor_table [subminor] = context;
+ context->subminor = subminor;
+#endif
+
+ if (vfd_ep_found) {
+
+#ifdef KERNEL_2_5
+ if (debug)
+ printk(KERN_INFO "Registering VFD with sysfs\n");
+ if (usb_register_dev(interface, &sasem_class))
+ /* Not a fatal error, so ignore */
+ printk(KERN_INFO "%s: could not get a minor number "
+ "for VFD\n", __func__);
+#else
+ if (debug)
+ printk(KERN_INFO "Registering VFD with devfs\n");
+ sprintf(name, DEVFS_NAME, subminor);
+ context->devfs = devfs_register(usb_devfs_handle, name,
+ DEVFS_FL_DEFAULT,
+ USB_MAJOR, VFD_MINOR_BASE + subminor,
+ DEVFS_MODE, &vfd_fops, NULL);
+ if (!context->devfs)
+ /* not a fatal error so ignore */
+ printk(KERN_INFO "%s: devfs register failed for VFD\n",
+ __func__);
+#endif
+ }
+
+ printk(KERN_INFO "%s: Sasem device on usb<%d:%d> initialized\n",
+ __func__, dev->bus->busnum, dev->devnum);
+
+ mutex_unlock(&context->lock);
+exit:
+#ifdef KERNEL_2_5
+ return retval;
+#else
+ return (!retval) ? context : NULL;
+#endif
+}
+
+/**
+ * Callback function for USB core API: disonnect
+ */
+#ifdef KERNEL_2_5
+static void sasem_disconnect(struct usb_interface *interface)
+#else
+static void sasem_disconnect(struct usb_device *dev, void *data)
+#endif
+{
+ struct sasem_context *context;
+
+ /* prevent races with ir_open()/vfd_open() */
+ mutex_lock(&disconnect_lock);
+
+#ifdef KERNEL_2_5
+ context = usb_get_intfdata(interface);
+#else
+ context = (struct sasem_context *)data;
+#endif
+ mutex_lock(&context->lock);
+
+ printk(KERN_INFO "%s: Sasem device disconnected\n", __func__);
+
+#ifdef KERNEL_2_5
+ usb_set_intfdata(interface, NULL);
+#else
+ minor_table [context->subminor] = NULL;
+#endif
+ context->dev_present = 0;
+
+ /* Stop reception */
+ usb_kill_urb(context->rx_urb);
+
+ /* Abort ongoing write */
+ if (atomic_read(&context->tx.busy)) {
+
+ usb_kill_urb(context->tx_urb);
+ wait_for_completion(&context->tx.finished);
+ }
+
+ /* De-register from lirc_dev if IR port is not open */
+ if (!context->ir_isopen)
+ deregister_from_lirc(context);
+
+#ifdef KERNEL_2_5
+ usb_deregister_dev(interface, &sasem_class);
+#else
+ if (context->devfs)
+ devfs_unregister(context->devfs);
+#endif
+
+ mutex_unlock(&context->lock);
+
+ if (!context->ir_isopen && !context->vfd_isopen)
+ delete_context(context);
+
+ mutex_unlock(&disconnect_lock);
+}
+
+static int __init sasem_init(void)
+{
+ int rc;
+
+ printk(KERN_INFO MOD_DESC ", v" MOD_VERSION "\n");
+ printk(KERN_INFO MOD_AUTHOR "\n");
+
+ rc = usb_register(&sasem_driver);
+ if (rc < 0) {
+ err("%s: usb register failed (%d)", __func__, rc);
+ return -ENODEV;
+ }
+ return 0;
+}
+
+static void __exit sasem_exit(void)
+{
+ usb_deregister(&sasem_driver);
+ printk(KERN_INFO "module removed. Goodbye!\n");
+}
+
+
+module_init(sasem_init);
+module_exit(sasem_exit);
+
+#if !defined(KERNEL_2_5)
+EXPORT_NO_SYMBOLS;
+#endif
diff --git a/ubuntu/lirc/lirc_serial/Makefile b/ubuntu/lirc/lirc_serial/Makefile
new file mode 100644
index 00000000000..54adadbec3f
--- /dev/null
+++ b/ubuntu/lirc/lirc_serial/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_SERIAL) += lirc_serial.o
diff --git a/ubuntu/lirc/lirc_serial/lirc_serial.c b/ubuntu/lirc/lirc_serial/lirc_serial.c
new file mode 100644
index 00000000000..2bc798039c9
--- /dev/null
+++ b/ubuntu/lirc/lirc_serial/lirc_serial.c
@@ -0,0 +1,1420 @@
+/* $Id: lirc_serial.c,v 5.104 2009/03/15 09:34:00 lirc Exp $ */
+/*
+ * lirc_serial.c
+ *
+ * lirc_serial - Device driver that records pulse- and pause-lengths
+ * (space-lengths) between DDCD event on a serial port.
+ *
+ * Copyright (C) 1996,97 Ralph Metzler <rjkm@thp.uni-koeln.de>
+ * Copyright (C) 1998 Trent Piepho <xyzzy@u.washington.edu>
+ * Copyright (C) 1998 Ben Pfaff <blp@gnu.org>
+ * Copyright (C) 1999 Christoph Bartelmus <lirc@bartelmus.de>
+ * Copyright (C) 2007 Andrei Tanas <andrei@tanas.ca> (suspend/resume support)
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+/*
+ * Steve's changes to improve transmission fidelity:
+ * - for systems with the rdtsc instruction and the clock counter, a
+ * send_pule that times the pulses directly using the counter.
+ * This means that the LIRC_SERIAL_TRANSMITTER_LATENCY fudge is
+ * not needed. Measurement shows very stable waveform, even where
+ * PCI activity slows the access to the UART, which trips up other
+ * versions.
+ * - For other system, non-integer-microsecond pulse/space lengths,
+ * done using fixed point binary. So, much more accurate carrier
+ * frequency.
+ * - fine tuned transmitter latency, taking advantage of fractional
+ * microseconds in previous change
+ * - Fixed bug in the way transmitter latency was accounted for by
+ * tuning the pulse lengths down - the send_pulse routine ignored
+ * this overhead as it timed the overall pulse length - so the
+ * pulse frequency was right but overall pulse length was too
+ * long. Fixed by accounting for latency on each pulse/space
+ * iteration.
+ *
+ * Steve Davies <steve@daviesfam.org> July 2001
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 2, 18)
+#error "**********************************************************"
+#error " Sorry, this driver needs kernel version 2.2.18 or higher "
+#error "**********************************************************"
+#endif
+
+#include <linux/module.h>
+#include <linux/errno.h>
+#include <linux/signal.h>
+#include <linux/sched.h>
+#include <linux/fs.h>
+#include <linux/interrupt.h>
+#include <linux/ioport.h>
+#include <linux/kernel.h>
+#include <linux/major.h>
+#include <linux/serial_reg.h>
+#include <linux/time.h>
+#include <linux/string.h>
+#include <linux/types.h>
+#include <linux/wait.h>
+#include <linux/mm.h>
+#include <linux/delay.h>
+#include <linux/poll.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/platform_device.h>
+#endif
+
+#include <asm/system.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
+#include <asm/uaccess.h>
+#else
+#include <linux/uaccess.h>
+#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16)
+#include <asm/io.h>
+#else
+#include <linux/io.h>
+#endif
+#include <linux/irq.h>
+#include <linux/fcntl.h>
+
+#if defined(LIRC_SERIAL_NSLU2)
+#include <asm/hardware.h>
+/* From Intel IXP42X Developer's Manual (#252480-005): */
+/* ftp://download.intel.com/design/network/manuals/25248005.pdf */
+#define UART_IE_IXP42X_UUE 0x40 /* IXP42X UART Unit enable */
+#define UART_IE_IXP42X_RTOIE 0x10 /* IXP42X Receiver Data Timeout int.enable */
+#ifndef NSLU2_LED_GRN_GPIO
+/* added in 2.6.22 */
+#define NSLU2_LED_GRN_GPIO NSLU2_LED_GRN
+#endif
+#endif
+
+#include "../lirc.h"
+#include "../kcompat.h"
+#include "../lirc_dev/lirc_dev.h"
+
+#if defined(LIRC_SERIAL_SOFTCARRIER) && !defined(LIRC_SERIAL_TRANSMITTER)
+#warning "Software carrier only affects transmitting"
+#endif
+
+#if defined(rdtscl)
+
+#define USE_RDTSC
+#warning "Note: using rdtsc instruction"
+#endif
+
+#ifdef LIRC_SERIAL_ANIMAX
+#ifdef LIRC_SERIAL_TRANSMITTER
+#warning "******************************************"
+#warning " This receiver does not have a "
+#warning " transmitter diode "
+#warning "******************************************"
+#endif
+#endif
+
+#define LIRC_DRIVER_VERSION "$Revision: 5.104 $"
+#define LIRC_DRIVER_NAME "lirc_serial"
+
+struct lirc_serial {
+ int signal_pin;
+ int signal_pin_change;
+ int on;
+ int off;
+ long (*send_pulse)(unsigned long length);
+ void (*send_space)(long length);
+ int features;
+};
+
+#define LIRC_HOMEBREW 0
+#define LIRC_IRDEO 1
+#define LIRC_IRDEO_REMOTE 2
+#define LIRC_ANIMAX 3
+#define LIRC_IGOR 4
+#define LIRC_NSLU2 5
+
+#ifdef LIRC_SERIAL_IRDEO
+static int type = LIRC_IRDEO;
+#elif defined(LIRC_SERIAL_IRDEO_REMOTE)
+static int type = LIRC_IRDEO_REMOTE;
+#elif defined(LIRC_SERIAL_ANIMAX)
+static int type = LIRC_ANIMAX;
+#elif defined(LIRC_SERIAL_IGOR)
+static int type = LIRC_IGOR;
+#elif defined(LIRC_SERIAL_NSLU2)
+static int type = LIRC_NSLU2;
+#else
+static int type = LIRC_HOMEBREW;
+#endif
+
+/* Set defaults for NSLU2 */
+#if defined(LIRC_SERIAL_NSLU2)
+#ifndef LIRC_IRQ
+#define LIRC_IRQ IRQ_IXP4XX_UART2
+#endif
+#ifndef LIRC_PORT
+#define LIRC_PORT (IXP4XX_UART2_BASE_VIRT + REG_OFFSET)
+#endif
+#ifndef LIRC_IOMMAP
+#define LIRC_IOMMAP IXP4XX_UART2_BASE_PHYS
+#endif
+#ifndef LIRC_IOSHIFT
+#define LIRC_IOSHIFT 2
+#endif
+#ifndef LIRC_ALLOW_MMAPPED_IO
+#define LIRC_ALLOW_MMAPPED_IO
+#endif
+#endif
+
+#if defined(LIRC_ALLOW_MMAPPED_IO)
+#ifndef LIRC_IOMMAP
+#define LIRC_IOMMAP 0
+#endif
+#ifndef LIRC_IOSHIFT
+#define LIRC_IOSHIFT 0
+#endif
+static int iommap = LIRC_IOMMAP;
+static int ioshift = LIRC_IOSHIFT;
+#endif
+
+#ifdef LIRC_SERIAL_SOFTCARRIER
+static int softcarrier = 1;
+#else
+static int softcarrier;
+#endif
+
+static int share_irq;
+static int debug;
+
+#define dprintk(fmt, args...) \
+ do { \
+ if (debug) \
+ printk(KERN_DEBUG LIRC_DRIVER_NAME ": " \
+ fmt, ## args); \
+ } while (0)
+
+/* forward declarations */
+static long send_pulse_irdeo(unsigned long length);
+static long send_pulse_homebrew(unsigned long length);
+static void send_space_irdeo(long length);
+static void send_space_homebrew(long length);
+
+static struct lirc_serial hardware[] = {
+ [LIRC_HOMEBREW] = {
+ .signal_pin = UART_MSR_DCD,
+ .signal_pin_change = UART_MSR_DDCD,
+ .on = (UART_MCR_RTS | UART_MCR_OUT2 | UART_MCR_DTR),
+ .off = (UART_MCR_RTS | UART_MCR_OUT2),
+ .send_pulse = send_pulse_homebrew,
+ .send_space = send_space_homebrew,
+#ifdef LIRC_SERIAL_TRANSMITTER
+ .features = (LIRC_CAN_SET_SEND_DUTY_CYCLE |
+ LIRC_CAN_SET_SEND_CARRIER |
+ LIRC_CAN_SEND_PULSE | LIRC_CAN_REC_MODE2)
+#else
+ .features = LIRC_CAN_REC_MODE2
+#endif
+ },
+
+ [LIRC_IRDEO] = {
+ .signal_pin = UART_MSR_DSR,
+ .signal_pin_change = UART_MSR_DDSR,
+ .on = UART_MCR_OUT2,
+ .off = (UART_MCR_RTS | UART_MCR_DTR | UART_MCR_OUT2),
+ .send_pulse = send_pulse_irdeo,
+ .send_space = send_space_irdeo,
+ .features = (LIRC_CAN_SET_SEND_DUTY_CYCLE |
+ LIRC_CAN_SEND_PULSE | LIRC_CAN_REC_MODE2)
+ },
+
+ [LIRC_IRDEO_REMOTE] = {
+ .signal_pin = UART_MSR_DSR,
+ .signal_pin_change = UART_MSR_DDSR,
+ .on = (UART_MCR_RTS | UART_MCR_DTR | UART_MCR_OUT2),
+ .off = (UART_MCR_RTS | UART_MCR_DTR | UART_MCR_OUT2),
+ .send_pulse = send_pulse_irdeo,
+ .send_space = send_space_irdeo,
+ .features = (LIRC_CAN_SET_SEND_DUTY_CYCLE |
+ LIRC_CAN_SEND_PULSE | LIRC_CAN_REC_MODE2)
+ },
+
+ [LIRC_ANIMAX] = {
+ .signal_pin = UART_MSR_DCD,
+ .signal_pin_change = UART_MSR_DDCD,
+ .on = 0,
+ .off = (UART_MCR_RTS | UART_MCR_DTR | UART_MCR_OUT2),
+ .send_pulse = NULL,
+ .send_space = NULL,
+ .features = LIRC_CAN_REC_MODE2
+ },
+
+ [LIRC_IGOR] = {
+ .signal_pin = UART_MSR_DSR,
+ .signal_pin_change = UART_MSR_DDSR,
+ .on = (UART_MCR_RTS | UART_MCR_OUT2 | UART_MCR_DTR),
+ .off = (UART_MCR_RTS | UART_MCR_OUT2),
+ .send_pulse = send_pulse_homebrew,
+ .send_space = send_space_homebrew,
+#ifdef LIRC_SERIAL_TRANSMITTER
+ .features = (LIRC_CAN_SET_SEND_DUTY_CYCLE |
+ LIRC_CAN_SET_SEND_CARRIER |
+ LIRC_CAN_SEND_PULSE | LIRC_CAN_REC_MODE2)
+#else
+ .features = LIRC_CAN_REC_MODE2
+#endif
+ },
+
+#if defined(LIRC_SERIAL_NSLU2)
+ /*
+ * Modified Linksys Network Storage Link USB 2.0 (NSLU2):
+ * We receive on CTS of the 2nd serial port (R142,LHS), we
+ * transmit with a IR diode between GPIO[1] (green status LED),
+ * and ground (Matthias Goebl <matthias.goebl@goebl.net>).
+ * See also http://www.nslu2-linux.org for this device
+ */
+ [LIRC_NSLU2] = {
+ .signal_pin = UART_MSR_CTS,
+ .signal_pin_change = UART_MSR_DCTS,
+ .on = (UART_MCR_RTS | UART_MCR_OUT2 | UART_MCR_DTR),
+ .off = (UART_MCR_RTS | UART_MCR_OUT2),
+ .send_pulse = send_pulse_homebrew,
+ .send_space = send_space_homebrew,
+#ifdef LIRC_SERIAL_TRANSMITTER
+ .features = (LIRC_CAN_SET_SEND_DUTY_CYCLE |
+ LIRC_CAN_SET_SEND_CARRIER |
+ LIRC_CAN_SEND_PULSE | LIRC_CAN_REC_MODE2)
+#else
+ .features = LIRC_CAN_REC_MODE2
+#endif
+ },
+#endif
+
+};
+
+#define RS_ISR_PASS_LIMIT 256
+
+/*
+ * A long pulse code from a remote might take up to 300 bytes. The
+ * daemon should read the bytes as soon as they are generated, so take
+ * the number of keys you think you can push before the daemon runs
+ * and multiply by 300. The driver will warn you if you overrun this
+ * buffer. If you have a slow computer or non-busmastering IDE disks,
+ * maybe you will need to increase this.
+ */
+
+/* This MUST be a power of two! It has to be larger than 1 as well. */
+
+#define RBUF_LEN 256
+#define WBUF_LEN 256
+
+static int sense = -1; /* -1 = auto, 0 = active high, 1 = active low */
+static int txsense; /* 0 = active high, 1 = active low */
+
+#ifndef LIRC_IRQ
+#define LIRC_IRQ 4
+#endif
+#ifndef LIRC_PORT
+#define LIRC_PORT 0x3f8
+#endif
+
+static int io = LIRC_PORT;
+static int irq = LIRC_IRQ;
+
+static struct timeval lasttv = {0, 0};
+
+static struct lirc_buffer rbuf;
+
+static lirc_t wbuf[WBUF_LEN];
+
+static unsigned int freq = 38000;
+static unsigned int duty_cycle = 50;
+
+/* Initialized in init_timing_params() */
+static unsigned long period;
+static unsigned long pulse_width;
+static unsigned long space_width;
+
+#if defined(__i386__)
+/*
+ * From:
+ * Linux I/O port programming mini-HOWTO
+ * Author: Riku Saikkonen <Riku.Saikkonen@hut.fi>
+ * v, 28 December 1997
+ *
+ * [...]
+ * Actually, a port I/O instruction on most ports in the 0-0x3ff range
+ * takes almost exactly 1 microsecond, so if you're, for example, using
+ * the parallel port directly, just do additional inb()s from that port
+ * to delay.
+ * [...]
+ */
+/* transmitter latency 1.5625us 0x1.90 - this figure arrived at from
+ * comment above plus trimming to match actual measured frequency.
+ * This will be sensitive to cpu speed, though hopefully most of the 1.5us
+ * is spent in the uart access. Still - for reference test machine was a
+ * 1.13GHz Athlon system - Steve
+ */
+
+/*
+ * changed from 400 to 450 as this works better on slower machines;
+ * faster machines will use the rdtsc code anyway
+ */
+#define LIRC_SERIAL_TRANSMITTER_LATENCY 450
+
+#else
+
+/* does anybody have information on other platforms ? */
+/* 256 = 1<<8 */
+#define LIRC_SERIAL_TRANSMITTER_LATENCY 256
+
+#endif /* __i386__ */
+
+static unsigned int sinp(int offset)
+{
+#if defined(LIRC_ALLOW_MMAPPED_IO)
+ if (iommap != 0) {
+ /* the register is memory-mapped */
+ offset <<= ioshift;
+ return readb(io + offset);
+ }
+#endif
+ return inb(io + offset);
+}
+
+static void soutp(int offset, int value)
+{
+#if defined(LIRC_ALLOW_MMAPPED_IO)
+ if (iommap != 0) {
+ /* the register is memory-mapped */
+ offset <<= ioshift;
+ writeb(value, io + offset);
+ }
+#endif
+ outb(value, io + offset);
+}
+
+static void on(void)
+{
+#if defined(LIRC_SERIAL_NSLU2)
+ /*
+ * On NSLU2, we put the transmit diode between the output of the green
+ * status LED and ground
+ */
+ if (type == LIRC_NSLU2) {
+ gpio_line_set(NSLU2_LED_GRN_GPIO, IXP4XX_GPIO_LOW);
+ return;
+ }
+#endif
+ if (txsense)
+ soutp(UART_MCR, hardware[type].off);
+ else
+ soutp(UART_MCR, hardware[type].on);
+}
+
+static void off(void)
+{
+#if defined(LIRC_SERIAL_NSLU2)
+ if (type == LIRC_NSLU2) {
+ gpio_line_set(NSLU2_LED_GRN_GPIO, IXP4XX_GPIO_HIGH);
+ return;
+ }
+#endif
+ if (txsense)
+ soutp(UART_MCR, hardware[type].on);
+ else
+ soutp(UART_MCR, hardware[type].off);
+}
+
+#ifndef MAX_UDELAY_MS
+#define MAX_UDELAY_US 5000
+#else
+#define MAX_UDELAY_US (MAX_UDELAY_MS*1000)
+#endif
+
+static void safe_udelay(unsigned long usecs)
+{
+ while (usecs > MAX_UDELAY_US) {
+ udelay(MAX_UDELAY_US);
+ usecs -= MAX_UDELAY_US;
+ }
+ udelay(usecs);
+}
+
+#ifdef USE_RDTSC
+/*
+ * This is an overflow/precision juggle, complicated in that we can't
+ * do long long divide in the kernel
+ */
+
+/*
+ * When we use the rdtsc instruction to measure clocks, we keep the
+ * pulse and space widths as clock cycles. As this is CPU speed
+ * dependent, the widths must be calculated in init_port and ioctl
+ * time
+ */
+
+/* So send_pulse can quickly convert microseconds to clocks */
+static unsigned long conv_us_to_clocks;
+
+static int init_timing_params(unsigned int new_duty_cycle,
+ unsigned int new_freq)
+{
+ unsigned long long loops_per_sec, work;
+
+ duty_cycle = new_duty_cycle;
+ freq = new_freq;
+
+ loops_per_sec = current_cpu_data.loops_per_jiffy;
+ loops_per_sec *= HZ;
+
+ /* How many clocks in a microsecond?, avoiding long long divide */
+ work = loops_per_sec;
+ work *= 4295; /* 4295 = 2^32 / 1e6 */
+ conv_us_to_clocks = (work >> 32);
+
+ /*
+ * Carrier period in clocks, approach good up to 32GHz clock,
+ * gets carrier frequency within 8Hz
+ */
+ period = loops_per_sec >> 3;
+ period /= (freq >> 3);
+
+ /* Derive pulse and space from the period */
+ pulse_width = period * duty_cycle / 100;
+ space_width = period - pulse_width;
+ dprintk("in init_timing_params, freq=%d, duty_cycle=%d, "
+ "clk/jiffy=%ld, pulse=%ld, space=%ld, "
+ "conv_us_to_clocks=%ld\n",
+ freq, duty_cycle, current_cpu_data.loops_per_jiffy,
+ pulse_width, space_width, conv_us_to_clocks);
+ return 0;
+}
+#else /* ! USE_RDTSC */
+static int init_timing_params(unsigned int new_duty_cycle,
+ unsigned int new_freq)
+{
+/*
+ * period, pulse/space width are kept with 8 binary places -
+ * IE multiplied by 256.
+ */
+ if (256 * 1000000L / new_freq * new_duty_cycle / 100 <=
+ LIRC_SERIAL_TRANSMITTER_LATENCY)
+ return -EINVAL;
+ if (256 * 1000000L / new_freq * (100 - new_duty_cycle) / 100 <=
+ LIRC_SERIAL_TRANSMITTER_LATENCY)
+ return -EINVAL;
+ duty_cycle = new_duty_cycle;
+ freq = new_freq;
+ period = 256 * 1000000L / freq;
+ pulse_width = period * duty_cycle / 100;
+ space_width = period - pulse_width;
+ dprintk("in init_timing_params, freq=%d pulse=%ld, "
+ "space=%ld\n", freq, pulse_width, space_width);
+ return 0;
+}
+#endif /* USE_RDTSC */
+
+
+/* return value: space length delta */
+
+static long send_pulse_irdeo(unsigned long length)
+{
+ long rawbits, ret;
+ int i;
+ unsigned char output;
+ unsigned char chunk, shifted;
+
+ /* how many bits have to be sent ? */
+ rawbits = length * 1152 / 10000;
+ if (duty_cycle > 50)
+ chunk = 3;
+ else
+ chunk = 1;
+ for (i = 0, output = 0x7f; rawbits > 0; rawbits -= 3) {
+ shifted = chunk << (i * 3);
+ shifted >>= 1;
+ output &= (~shifted);
+ i++;
+ if (i == 3) {
+ soutp(UART_TX, output);
+ while (!(sinp(UART_LSR) & UART_LSR_THRE))
+ ;
+ output = 0x7f;
+ i = 0;
+ }
+ }
+ if (i != 0) {
+ soutp(UART_TX, output);
+ while (!(sinp(UART_LSR) & UART_LSR_TEMT))
+ ;
+ }
+
+ if (i == 0)
+ ret = (-rawbits) * 10000 / 1152;
+ else
+ ret = (3 - i) * 3 *10000 / 1152 + (-rawbits) * 10000 / 1152;
+
+ return ret;
+}
+
+#ifdef USE_RDTSC
+/* Version that uses Pentium rdtsc instruction to measure clocks */
+
+/*
+ * This version does sub-microsecond timing using rdtsc instruction,
+ * and does away with the fudged LIRC_SERIAL_TRANSMITTER_LATENCY
+ * Implicitly i586 architecture... - Steve
+ */
+
+static long send_pulse_homebrew_softcarrier(unsigned long length)
+{
+ int flag;
+ unsigned long target, start, now;
+
+ /* Get going quick as we can */
+ rdtscl(start);
+ on();
+ /* Convert length from microseconds to clocks */
+ length *= conv_us_to_clocks;
+ /* And loop till time is up - flipping at right intervals */
+ now = start;
+ target = pulse_width;
+ flag = 1;
+ while ((now - start) < length) {
+ /* Delay till flip time */
+ do {
+ rdtscl(now);
+ } while ((now - start) < target);
+
+ /* flip */
+ if (flag) {
+ rdtscl(now);
+ off();
+ target += space_width;
+ } else {
+ rdtscl(now); on();
+ target += pulse_width;
+ }
+ flag = !flag;
+ }
+ rdtscl(now);
+ return ((now - start) - length) / conv_us_to_clocks;
+}
+#else /* ! USE_RDTSC */
+/* Version using udelay() */
+
+/*
+ * here we use fixed point arithmetic, with 8
+ * fractional bits. that gets us within 0.1% or so of the right average
+ * frequency, albeit with some jitter in pulse length - Steve
+ */
+
+/* To match 8 fractional bits used for pulse/space length */
+
+static long send_pulse_homebrew_softcarrier(unsigned long length)
+{
+ int flag;
+ unsigned long actual, target, d;
+ length <<= 8;
+
+ actual = 0; target = 0; flag = 0;
+ while (actual < length) {
+ if (flag) {
+ off();
+ target += space_width;
+ } else {
+ on();
+ target += pulse_width;
+ }
+ d = (target - actual -
+ LIRC_SERIAL_TRANSMITTER_LATENCY + 128) >> 8;
+ /*
+ * Note - we've checked in ioctl that the pulse/space
+ * widths are big enough so that d is > 0
+ */
+ udelay(d);
+ actual += (d << 8) + LIRC_SERIAL_TRANSMITTER_LATENCY;
+ flag = !flag;
+ }
+ return (actual-length) >> 8;
+}
+#endif /* USE_RDTSC */
+
+static long send_pulse_homebrew(unsigned long length)
+{
+ if (length <= 0)
+ return 0;
+
+ if (softcarrier)
+ return send_pulse_homebrew_softcarrier(length);
+ else {
+ on();
+ safe_udelay(length);
+ return 0;
+ }
+}
+
+static void send_space_irdeo(long length)
+{
+ if (length <= 0)
+ return;
+
+ safe_udelay(length);
+}
+
+static void send_space_homebrew(long length)
+{
+ off();
+ if (length <= 0)
+ return;
+ safe_udelay(length);
+}
+
+static void rbwrite(lirc_t l)
+{
+ if (lirc_buffer_full(&rbuf)) {
+ /* no new signals will be accepted */
+ dprintk("Buffer overrun\n");
+ return;
+ }
+ lirc_buffer_write(&rbuf, (void *)&l);
+}
+
+static void frbwrite(lirc_t l)
+{
+ /* simple noise filter */
+ static lirc_t pulse = 0L, space = 0L;
+ static unsigned int ptr;
+
+ if (ptr > 0 && (l & PULSE_BIT)) {
+ pulse += l & PULSE_MASK;
+ if (pulse > 250) {
+ rbwrite(space);
+ rbwrite(pulse | PULSE_BIT);
+ ptr = 0;
+ pulse = 0;
+ }
+ return;
+ }
+ if (!(l & PULSE_BIT)) {
+ if (ptr == 0) {
+ if (l > 20000) {
+ space = l;
+ ptr++;
+ return;
+ }
+ } else {
+ if (l > 20000) {
+ space += pulse;
+ if (space > PULSE_MASK)
+ space = PULSE_MASK;
+ space += l;
+ if (space > PULSE_MASK)
+ space = PULSE_MASK;
+ pulse = 0;
+ return;
+ }
+ rbwrite(space);
+ rbwrite(pulse | PULSE_BIT);
+ ptr = 0;
+ pulse = 0;
+ }
+ }
+ rbwrite(l);
+}
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)
+static irqreturn_t irq_handler(int i, void *blah)
+#else
+static irqreturn_t irq_handler(int i, void *blah, struct pt_regs *regs)
+#endif
+{
+ struct timeval tv;
+ int status, counter, dcd;
+ long deltv;
+ lirc_t data;
+ static int last_dcd = -1;
+
+ if ((sinp(UART_IIR) & UART_IIR_NO_INT)) {
+ /* not our interrupt */
+ return IRQ_RETVAL(IRQ_NONE);
+ }
+
+ counter = 0;
+ do {
+ counter++;
+ status = sinp(UART_MSR);
+ if (counter > RS_ISR_PASS_LIMIT) {
+ printk(KERN_WARNING LIRC_DRIVER_NAME ": AIEEEE: "
+ "We're caught!\n");
+ break;
+ }
+ if ((status & hardware[type].signal_pin_change)
+ && sense != -1) {
+ /* get current time */
+ do_gettimeofday(&tv);
+
+ /* New mode, written by Trent Piepho
+ <xyzzy@u.washington.edu>. */
+
+ /*
+ * The old format was not very portable.
+ * We now use an int to pass pulses
+ * and spaces to user space.
+ *
+ * If PULSE_BIT is set a pulse has been
+ * received, otherwise a space has been
+ * received. The driver needs to know if your
+ * receiver is active high or active low, or
+ * the space/pulse sense could be
+ * inverted. The bits denoted by PULSE_MASK are
+ * the length in microseconds. Lengths greater
+ * than or equal to 16 seconds are clamped to
+ * PULSE_MASK. All other bits are unused.
+ * This is a much simpler interface for user
+ * programs, as well as eliminating "out of
+ * phase" errors with space/pulse
+ * autodetection.
+ */
+
+ /* calc time since last interrupt in microseconds */
+ dcd = (status & hardware[type].signal_pin) ? 1 : 0;
+
+ if (dcd == last_dcd) {
+ printk(KERN_WARNING LIRC_DRIVER_NAME
+ ": ignoring spike: %d %d %lx %lx %lx %lx\n",
+ dcd, sense,
+ tv.tv_sec, lasttv.tv_sec,
+ tv.tv_usec, lasttv.tv_usec);
+ continue;
+ }
+
+ deltv = tv.tv_sec-lasttv.tv_sec;
+ if (tv.tv_sec < lasttv.tv_sec ||
+ (tv.tv_sec == lasttv.tv_sec &&
+ tv.tv_usec < lasttv.tv_usec)) {
+ printk(KERN_WARNING LIRC_DRIVER_NAME
+ ": AIEEEE: your clock just jumped "
+ "backwards\n");
+ printk(KERN_WARNING LIRC_DRIVER_NAME
+ ": %d %d %lx %lx %lx %lx\n",
+ dcd, sense,
+ tv.tv_sec, lasttv.tv_sec,
+ tv.tv_usec, lasttv.tv_usec);
+ data = PULSE_MASK;
+ } else if (deltv > 15) {
+ data = PULSE_MASK; /* really long time */
+ if (!(dcd^sense)) {
+ /* sanity check */
+ printk(KERN_WARNING LIRC_DRIVER_NAME
+ ": AIEEEE: "
+ "%d %d %lx %lx %lx %lx\n",
+ dcd, sense,
+ tv.tv_sec, lasttv.tv_sec,
+ tv.tv_usec, lasttv.tv_usec);
+ /*
+ * detecting pulse while this
+ * MUST be a space!
+ */
+ sense = sense ? 0 : 1;
+ }
+ } else
+ data = (lirc_t) (deltv*1000000 +
+ tv.tv_usec -
+ lasttv.tv_usec);
+ frbwrite(dcd^sense ? data : (data|PULSE_BIT));
+ lasttv = tv;
+ last_dcd = dcd;
+ wake_up_interruptible(&rbuf.wait_poll);
+ }
+ } while (!(sinp(UART_IIR) & UART_IIR_NO_INT)); /* still pending ? */
+ return IRQ_RETVAL(IRQ_HANDLED);
+}
+
+static void hardware_init_port(void)
+{
+ unsigned long flags;
+ local_irq_save(flags);
+
+ /* Set DLAB 0. */
+ soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB));
+
+ /* First of all, disable all interrupts */
+ soutp(UART_IER, sinp(UART_IER) &
+ (~(UART_IER_MSI|UART_IER_RLSI|UART_IER_THRI|UART_IER_RDI)));
+
+ /* Clear registers. */
+ sinp(UART_LSR);
+ sinp(UART_RX);
+ sinp(UART_IIR);
+ sinp(UART_MSR);
+
+#if defined(LIRC_SERIAL_NSLU2)
+ if (type == LIRC_NSLU2) {
+ /* Setup NSLU2 UART */
+
+ /* Enable UART */
+ soutp(UART_IER, sinp(UART_IER) | UART_IE_IXP42X_UUE);
+ /* Disable Receiver data Time out interrupt */
+ soutp(UART_IER, sinp(UART_IER) & ~UART_IE_IXP42X_RTOIE);
+ /* set out2 = interrupt unmask; off() doesn't set MCR
+ on NSLU2 */
+ soutp(UART_MCR, UART_MCR_RTS|UART_MCR_OUT2);
+ }
+#endif
+
+ /* Set line for power source */
+ off();
+
+ /* Clear registers again to be sure. */
+ sinp(UART_LSR);
+ sinp(UART_RX);
+ sinp(UART_IIR);
+ sinp(UART_MSR);
+
+ switch (type) {
+ case LIRC_IRDEO:
+ case LIRC_IRDEO_REMOTE:
+ /* setup port to 7N1 @ 115200 Baud */
+ /* 7N1+start = 9 bits at 115200 ~ 3 bits at 38kHz */
+
+ /* Set DLAB 1. */
+ soutp(UART_LCR, sinp(UART_LCR) | UART_LCR_DLAB);
+ /* Set divisor to 1 => 115200 Baud */
+ soutp(UART_DLM, 0);
+ soutp(UART_DLL, 1);
+ /* Set DLAB 0 + 7N1 */
+ soutp(UART_LCR, UART_LCR_WLEN7);
+ /* THR interrupt already disabled at this point */
+ break;
+ default:
+ break;
+ }
+
+ local_irq_restore(flags);
+}
+
+static int init_port(void)
+{
+ int i, nlow, nhigh;
+
+ /* Reserve io region. */
+#if defined(LIRC_ALLOW_MMAPPED_IO)
+ /*
+ * Future MMAP-Developers: Attention!
+ * For memory mapped I/O you *might* need to use ioremap() first,
+ * for the NSLU2 it's done in boot code.
+ */
+ if (((iommap != 0)
+ && (request_mem_region(iommap, 8 << ioshift,
+ LIRC_DRIVER_NAME) == NULL))
+ || ((iommap == 0)
+ && (request_region(io, 8, LIRC_DRIVER_NAME) == NULL))) {
+#else
+ if (request_region(io, 8, LIRC_DRIVER_NAME) == NULL) {
+#endif
+ printk(KERN_ERR LIRC_DRIVER_NAME
+ ": port %04x already in use\n", io);
+ printk(KERN_WARNING LIRC_DRIVER_NAME
+ ": use 'setserial /dev/ttySX uart none'\n");
+ printk(KERN_WARNING LIRC_DRIVER_NAME
+ ": or compile the serial port driver as module and\n");
+ printk(KERN_WARNING LIRC_DRIVER_NAME
+ ": make sure this module is loaded first\n");
+ return -EBUSY;
+ }
+
+ hardware_init_port();
+
+ /* Initialize pulse/space widths */
+ init_timing_params(duty_cycle, freq);
+
+ /* If pin is high, then this must be an active low receiver. */
+ if (sense == -1) {
+ /* wait 1/2 sec for the power supply */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 11)
+ msleep(500);
+#else
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule_timeout(HZ/2);
+#endif
+
+ /*
+ * probe 9 times every 0.04s, collect "votes" for
+ * active high/low
+ */
+ nlow = 0;
+ nhigh = 0;
+ for (i = 0; i < 9; i++) {
+ if (sinp(UART_MSR) & hardware[type].signal_pin)
+ nlow++;
+ else
+ nhigh++;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 11)
+ msleep(40);
+#else
+ schedule_timeout(HZ/25);
+#endif
+ }
+ sense = (nlow >= nhigh ? 1 : 0);
+ printk(KERN_INFO LIRC_DRIVER_NAME ": auto-detected active "
+ "%s receiver\n", sense ? "low" : "high");
+ } else
+ printk(KERN_INFO LIRC_DRIVER_NAME ": Manually using active "
+ "%s receiver\n", sense ? "low" : "high");
+
+ return 0;
+}
+
+static int set_use_inc(void *data)
+{
+ int result;
+ unsigned long flags;
+
+ /* Init read buffer. */
+ if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0)
+ return -ENOMEM;
+
+ /* initialize timestamp */
+ do_gettimeofday(&lasttv);
+
+ result = request_irq(irq, irq_handler,
+ IRQF_DISABLED | (share_irq ? IRQF_SHARED : 0),
+ LIRC_DRIVER_NAME, (void *)&hardware);
+
+ switch (result) {
+ case -EBUSY:
+ printk(KERN_ERR LIRC_DRIVER_NAME ": IRQ %d busy\n", irq);
+ lirc_buffer_free(&rbuf);
+ return -EBUSY;
+ case -EINVAL:
+ printk(KERN_ERR LIRC_DRIVER_NAME
+ ": Bad irq number or handler\n");
+ lirc_buffer_free(&rbuf);
+ return -EINVAL;
+ default:
+ dprintk("Interrupt %d, port %04x obtained\n", irq, io);
+ break;
+ };
+
+ local_irq_save(flags);
+
+ /* Set DLAB 0. */
+ soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB));
+
+ soutp(UART_IER, sinp(UART_IER)|UART_IER_MSI);
+
+ local_irq_restore(flags);
+
+ MOD_INC_USE_COUNT;
+ return 0;
+}
+
+static void set_use_dec(void *data)
+{ unsigned long flags;
+
+ local_irq_save(flags);
+
+ /* Set DLAB 0. */
+ soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB));
+
+ /* First of all, disable all interrupts */
+ soutp(UART_IER, sinp(UART_IER) &
+ (~(UART_IER_MSI|UART_IER_RLSI|UART_IER_THRI|UART_IER_RDI)));
+ local_irq_restore(flags);
+
+ free_irq(irq, (void *)&hardware);
+
+ dprintk("freed IRQ %d\n", irq);
+ lirc_buffer_free(&rbuf);
+
+ MOD_DEC_USE_COUNT;
+}
+
+static ssize_t lirc_write(struct file *file, const char *buf,
+ size_t n, loff_t *ppos)
+{
+ int i, count;
+ unsigned long flags;
+ long delta = 0;
+
+ if (!(hardware[type].features&LIRC_CAN_SEND_PULSE))
+ return -EBADF;
+
+ if (n % sizeof(lirc_t))
+ return -EINVAL;
+ count = n / sizeof(lirc_t);
+ if (count > WBUF_LEN || count % 2 == 0)
+ return -EINVAL;
+ if (copy_from_user(wbuf, buf, n))
+ return -EFAULT;
+ local_irq_save(flags);
+ if (type == LIRC_IRDEO) {
+ /* DTR, RTS down */
+ on();
+ }
+ for (i = 0; i < count; i++) {
+ if (i%2)
+ hardware[type].send_space(wbuf[i]-delta);
+ else
+ delta = hardware[type].send_pulse(wbuf[i]);
+ }
+ off();
+ local_irq_restore(flags);
+ return n;
+}
+
+static int lirc_ioctl(struct inode *node, struct file *filep, unsigned int cmd,
+ unsigned long arg)
+{
+ int result;
+ unsigned long value;
+ unsigned int ivalue;
+
+ switch (cmd) {
+ case LIRC_GET_SEND_MODE:
+ if (!(hardware[type].features&LIRC_CAN_SEND_MASK))
+ return -ENOIOCTLCMD;
+
+ result = put_user(LIRC_SEND2MODE
+ (hardware[type].features&LIRC_CAN_SEND_MASK),
+ (unsigned long *) arg);
+ if (result)
+ return result;
+ break;
+
+ case LIRC_SET_SEND_MODE:
+ if (!(hardware[type].features&LIRC_CAN_SEND_MASK))
+ return -ENOIOCTLCMD;
+
+ result = get_user(value, (unsigned long *) arg);
+ if (result)
+ return result;
+ /* only LIRC_MODE_PULSE supported */
+ if (value != LIRC_MODE_PULSE)
+ return -ENOSYS;
+ break;
+
+ case LIRC_GET_LENGTH:
+ return -ENOSYS;
+ break;
+
+ case LIRC_SET_SEND_DUTY_CYCLE:
+ dprintk("SET_SEND_DUTY_CYCLE\n");
+ if (!(hardware[type].features&LIRC_CAN_SET_SEND_DUTY_CYCLE))
+ return -ENOIOCTLCMD;
+
+ result = get_user(ivalue, (unsigned int *) arg);
+ if (result)
+ return result;
+ if (ivalue <= 0 || ivalue > 100)
+ return -EINVAL;
+ return init_timing_params(ivalue, freq);
+ break;
+
+ case LIRC_SET_SEND_CARRIER:
+ dprintk("SET_SEND_CARRIER\n");
+ if (!(hardware[type].features&LIRC_CAN_SET_SEND_CARRIER))
+ return -ENOIOCTLCMD;
+
+ result = get_user(ivalue, (unsigned int *) arg);
+ if (result)
+ return result;
+ if (ivalue > 500000 || ivalue < 20000)
+ return -EINVAL;
+ return init_timing_params(duty_cycle, ivalue);
+ break;
+
+ default:
+ return -ENOIOCTLCMD;
+ }
+ return 0;
+}
+
+static struct file_operations lirc_fops = {
+ .owner = THIS_MODULE,
+ .write = lirc_write,
+ .ioctl = lirc_ioctl,
+};
+
+static struct lirc_driver driver = {
+ .name = LIRC_DRIVER_NAME,
+ .minor = -1,
+ .code_length = 1,
+ .sample_rate = 0,
+ .data = NULL,
+ .add_to_buf = NULL,
+#ifndef LIRC_REMOVE_DURING_EXPORT
+ .get_queue = NULL,
+#endif
+ .rbuf = &rbuf,
+ .set_use_inc = set_use_inc,
+ .set_use_dec = set_use_dec,
+ .fops = &lirc_fops,
+ .dev = NULL,
+ .owner = THIS_MODULE,
+};
+
+#ifdef MODULE
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+static struct platform_device *lirc_serial_dev;
+
+static int __devinit lirc_serial_probe(struct platform_device *dev)
+{
+ return 0;
+}
+
+static int __devexit lirc_serial_remove(struct platform_device *dev)
+{
+ return 0;
+}
+
+static int lirc_serial_suspend(struct platform_device *dev,
+ pm_message_t state)
+{
+ /* Set DLAB 0. */
+ soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB));
+
+ /* Disable all interrupts */
+ soutp(UART_IER, sinp(UART_IER) &
+ (~(UART_IER_MSI|UART_IER_RLSI|UART_IER_THRI|UART_IER_RDI)));
+
+ /* Clear registers. */
+ sinp(UART_LSR);
+ sinp(UART_RX);
+ sinp(UART_IIR);
+ sinp(UART_MSR);
+
+ return 0;
+}
+
+static int lirc_serial_resume(struct platform_device *dev)
+{
+ unsigned long flags;
+
+ hardware_init_port();
+
+ local_irq_save(flags);
+ /* Enable Interrupt */
+ do_gettimeofday(&lasttv);
+ soutp(UART_IER, sinp(UART_IER)|UART_IER_MSI);
+ off();
+
+ lirc_buffer_clear(&rbuf);
+
+ local_irq_restore(flags);
+
+ return 0;
+}
+
+static struct platform_driver lirc_serial_driver = {
+ .probe = lirc_serial_probe,
+ .remove = __devexit_p(lirc_serial_remove),
+ .suspend = lirc_serial_suspend,
+ .resume = lirc_serial_resume,
+ .driver = {
+ .name = "lirc_serial",
+ .owner = THIS_MODULE,
+ },
+};
+
+static int __init lirc_serial_init(void)
+{
+ int result;
+
+ result = platform_driver_register(&lirc_serial_driver);
+ if (result) {
+ printk("lirc register returned %d\n", result);
+ return result;
+ }
+
+ lirc_serial_dev = platform_device_alloc("lirc_serial", 0);
+ if (!lirc_serial_dev) {
+ result = -ENOMEM;
+ goto exit_driver_unregister;
+ }
+
+ result = platform_device_add(lirc_serial_dev);
+ if (result)
+ goto exit_device_put;
+
+ return 0;
+
+exit_device_put:
+ platform_device_put(lirc_serial_dev);
+exit_driver_unregister:
+ platform_driver_unregister(&lirc_serial_driver);
+ return result;
+}
+
+static void __exit lirc_serial_exit(void)
+{
+ platform_device_unregister(lirc_serial_dev);
+ platform_driver_unregister(&lirc_serial_driver);
+}
+#endif
+
+static int __init lirc_serial_init_module(void)
+{
+ int result;
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+ result = lirc_serial_init();
+ if (result)
+ return result;
+#endif
+ switch (type) {
+ case LIRC_HOMEBREW:
+ case LIRC_IRDEO:
+ case LIRC_IRDEO_REMOTE:
+ case LIRC_ANIMAX:
+ case LIRC_IGOR:
+#if defined(LIRC_SERIAL_NSLU2)
+ case LIRC_NSLU2:
+#endif
+ break;
+ default:
+ result = -EINVAL;
+ goto exit_serial_exit;
+ }
+ if (!softcarrier) {
+ switch (type) {
+ case LIRC_HOMEBREW:
+ case LIRC_IGOR:
+ case LIRC_NSLU2:
+ hardware[type].features &=
+ ~(LIRC_CAN_SET_SEND_DUTY_CYCLE|
+ LIRC_CAN_SET_SEND_CARRIER);
+ break;
+ }
+ }
+
+ result = init_port();
+ if (result < 0)
+ goto exit_serial_exit;
+ driver.features = hardware[type].features;
+ driver.minor = lirc_register_driver(&driver);
+ if (driver.minor < 0) {
+ printk(KERN_ERR LIRC_DRIVER_NAME
+ ": register_chrdev failed!\n");
+ result = -EIO;
+ goto exit_release;
+ }
+
+ printk(KERN_INFO
+ LIRC_DRIVER_NAME " " LIRC_DRIVER_VERSION " registered\n");
+ dprintk("type = %d\n", type);
+ dprintk("IRQ = %d, port = %04x\n", irq, io);
+ dprintk("share_irq = %d\n", share_irq);
+#ifdef LIRC_SERIAL_TRANSMITTER
+ dprintk("txsense = %d\n", txsense);
+#endif
+ dprintk("softcarrier = %d\n", softcarrier);
+
+ return 0;
+exit_release:
+ release_region(io, 8);
+exit_serial_exit:
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+ lirc_serial_exit();
+#endif
+ return result;
+}
+
+static void __exit lirc_serial_exit_module(void)
+{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+ lirc_serial_exit();
+#endif
+#if defined(LIRC_ALLOW_MMAPPED_IO)
+ if (iommap != 0)
+ release_mem_region(iommap, 8 << ioshift);
+ else
+ release_region(io, 8);
+#else
+ release_region(io, 8);
+#endif
+ lirc_unregister_driver(driver.minor);
+ dprintk("cleaned up module\n");
+}
+
+
+module_init(lirc_serial_init_module);
+module_exit(lirc_serial_exit_module);
+
+MODULE_DESCRIPTION("Infra-red receiver driver for serial ports.");
+MODULE_AUTHOR("Ralph Metzler, Trent Piepho, Ben Pfaff, "
+ "Christoph Bartelmus, Andrei Tanas");
+MODULE_LICENSE("GPL");
+
+module_param(type, int, S_IRUGO);
+#if defined(LIRC_SERIAL_NSLU2)
+MODULE_PARM_DESC(type, "Hardware type (0 = home-brew, 1 = IRdeo,"
+ " 2 = IRdeo Remote, 3 = AnimaX, 4 = IgorPlug,"
+ " 5 = NSLU2 RX:CTS2/TX:GreenLED)");
+#else
+MODULE_PARM_DESC(type, "Hardware type (0 = home-brew, 1 = IRdeo,"
+ " 2 = IRdeo Remote, 3 = AnimaX, 4 = IgorPlug)");
+#endif
+
+module_param(io, int, S_IRUGO);
+MODULE_PARM_DESC(io, "I/O address base (0x3f8 or 0x2f8)");
+
+#if defined(LIRC_ALLOW_MMAPPED_IO)
+/* some architectures (e.g. intel xscale) have memory mapped registers */
+module_param(iommap, bool, S_IRUGO);
+MODULE_PARM_DESC(iommap, "physical base for memory mapped I/O"
+ " (0 = no memory mapped io)");
+
+/*
+ * some architectures (e.g. intel xscale) align the 8bit serial registers
+ * on 32bit word boundaries.
+ * See linux-kernel/serial/8250.c serial_in()/out()
+ */
+module_param(ioshift, int, S_IRUGO);
+MODULE_PARM_DESC(ioshift, "shift I/O register offset (0 = no shift)");
+#endif
+
+module_param(irq, int, S_IRUGO);
+MODULE_PARM_DESC(irq, "Interrupt (4 or 3)");
+
+module_param(share_irq, bool, S_IRUGO);
+MODULE_PARM_DESC(share_irq, "Share interrupts (0 = off, 1 = on)");
+
+module_param(sense, bool, S_IRUGO);
+MODULE_PARM_DESC(sense, "Override autodetection of IR receiver circuit"
+ " (0 = active high, 1 = active low )");
+
+#ifdef LIRC_SERIAL_TRANSMITTER
+module_param(txsense, bool, S_IRUGO);
+MODULE_PARM_DESC(txsense, "Sense of transmitter circuit"
+ " (0 = active high, 1 = active low )");
+#endif
+
+module_param(softcarrier, bool, S_IRUGO);
+MODULE_PARM_DESC(softcarrier, "Software carrier (0 = off, 1 = on)");
+
+module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
+
+EXPORT_NO_SYMBOLS;
+
+#endif /* MODULE */
diff --git a/ubuntu/lirc/lirc_sir/Makefile b/ubuntu/lirc/lirc_sir/Makefile
new file mode 100644
index 00000000000..e9afc76e5e4
--- /dev/null
+++ b/ubuntu/lirc/lirc_sir/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_SIR) += lirc_sir.o
diff --git a/ubuntu/lirc/lirc_sir/lirc_sir.c b/ubuntu/lirc/lirc_sir/lirc_sir.c
new file mode 100644
index 00000000000..2e4cbb8c915
--- /dev/null
+++ b/ubuntu/lirc/lirc_sir/lirc_sir.c
@@ -0,0 +1,1345 @@
+/*
+ * LIRC SIR driver, (C) 2000 Milan Pikula <www@fornax.sk>
+ *
+ * lirc_sir - Device driver for use with SIR (serial infra red)
+ * mode of IrDA on many notebooks.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ *
+ * 2000/09/16 Frank Przybylski <mail@frankprzybylski.de> :
+ * added timeout and relaxed pulse detection, removed gap bug
+ *
+ * 2000/12/15 Christoph Bartelmus <lirc@bartelmus.de> :
+ * added support for Tekram Irmate 210 (sending does not work yet,
+ * kind of disappointing that nobody was able to implement that
+ * before),
+ * major clean-up
+ *
+ * 2001/02/27 Christoph Bartelmus <lirc@bartelmus.de> :
+ * added support for StrongARM SA1100 embedded microprocessor
+ * parts cut'n'pasted from sa1100_ir.c (C) 2000 Russell King
+ */
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 2, 18)
+#error "**********************************************************"
+#error " Sorry, this driver needs kernel version 2.2.18 or higher "
+#error "**********************************************************"
+#endif
+#include <linux/module.h>
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <linux/sched.h>
+#include <linux/errno.h>
+#include <linux/signal.h>
+#include <linux/fs.h>
+#include <linux/interrupt.h>
+#include <linux/ioport.h>
+#include <linux/kernel.h>
+#include <linux/serial_reg.h>
+#include <linux/time.h>
+#include <linux/string.h>
+#include <linux/types.h>
+#include <linux/wait.h>
+#include <linux/mm.h>
+#include <linux/delay.h>
+#include <linux/poll.h>
+#include <asm/system.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
+#include <asm/uaccess.h>
+#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16)
+#include <asm/io.h>
+#else
+#include <linux/io.h>
+#endif
+#include <asm/irq.h>
+#include <linux/fcntl.h>
+#ifdef LIRC_ON_SA1100
+#include <asm/hardware.h>
+#ifdef CONFIG_SA1100_COLLIE
+#include <asm/arch/tc35143.h>
+#include <asm/ucb1200.h>
+#endif
+#endif
+
+#include <linux/timer.h>
+
+#include "../lirc.h"
+#include "../lirc_dev/lirc_dev.h"
+#include "../kcompat.h"
+
+/* SECTION: Definitions */
+
+/*** Tekram dongle ***/
+#ifdef LIRC_SIR_TEKRAM
+/* stolen from kernel source */
+/* definitions for Tekram dongle */
+#define TEKRAM_115200 0x00
+#define TEKRAM_57600 0x01
+#define TEKRAM_38400 0x02
+#define TEKRAM_19200 0x03
+#define TEKRAM_9600 0x04
+#define TEKRAM_2400 0x08
+
+#define TEKRAM_PW 0x10 /* Pulse select bit */
+
+/* 10bit * 1s/115200bit in milliseconds = 87ms*/
+#define TIME_CONST (10000000ul/115200ul)
+
+#endif
+
+#ifdef LIRC_SIR_ACTISYS_ACT200L
+static void init_act200(void);
+#elif defined(LIRC_SIR_ACTISYS_ACT220L)
+static void init_act220(void);
+#endif
+
+/*** SA1100 ***/
+#ifdef LIRC_ON_SA1100
+struct sa1100_ser2_registers {
+ /* HSSP control register */
+ unsigned char hscr0;
+ /* UART registers */
+ unsigned char utcr0;
+ unsigned char utcr1;
+ unsigned char utcr2;
+ unsigned char utcr3;
+ unsigned char utcr4;
+ unsigned char utdr;
+ unsigned char utsr0;
+ unsigned char utsr1;
+} sr;
+
+static int irq = IRQ_Ser2ICP;
+
+#define LIRC_ON_SA1100_TRANSMITTER_LATENCY 0
+
+/* pulse/space ratio of 50/50 */
+static unsigned long pulse_width = (13-LIRC_ON_SA1100_TRANSMITTER_LATENCY);
+/* 1000000/freq-pulse_width */
+static unsigned long space_width = (13-LIRC_ON_SA1100_TRANSMITTER_LATENCY);
+static unsigned int freq = 38000; /* modulation frequency */
+static unsigned int duty_cycle = 50; /* duty cycle of 50% */
+
+#endif
+
+#define RBUF_LEN 1024
+#define WBUF_LEN 1024
+
+#define LIRC_DRIVER_NAME "lirc_sir"
+
+#define PULSE '['
+
+#ifndef LIRC_SIR_TEKRAM
+/* 9bit * 1s/115200bit in milli seconds = 78.125ms*/
+#define TIME_CONST (9000000ul/115200ul)
+#endif
+
+
+/* timeout for sequences in jiffies (=5/100s), must be longer than TIME_CONST */
+#define SIR_TIMEOUT (HZ*5/100)
+
+#ifndef LIRC_ON_SA1100
+#ifndef LIRC_IRQ
+#define LIRC_IRQ 4
+#endif
+#ifndef LIRC_PORT
+/* for external dongles, default to com1 */
+#if defined(LIRC_SIR_ACTISYS_ACT200L) || \
+ defined(LIRC_SIR_ACTISYS_ACT220L) || \
+ defined(LIRC_SIR_TEKRAM)
+#define LIRC_PORT 0x3f8
+#else
+/* onboard sir ports are typically com3 */
+#define LIRC_PORT 0x3e8
+#endif
+#endif
+
+static int io = LIRC_PORT;
+static int irq = LIRC_IRQ;
+static int threshold = 3;
+#endif
+
+static DEFINE_SPINLOCK(timer_lock);
+static struct timer_list timerlist;
+/* time of last signal change detected */
+static struct timeval last_tv = {0, 0};
+/* time of last UART data ready interrupt */
+static struct timeval last_intr_tv = {0, 0};
+static int last_value;
+
+static DECLARE_WAIT_QUEUE_HEAD(lirc_read_queue);
+
+static DEFINE_SPINLOCK(hardware_lock);
+static DEFINE_SPINLOCK(dev_lock);
+
+static lirc_t rx_buf[RBUF_LEN];
+static unsigned int rx_tail, rx_head;
+static lirc_t tx_buf[WBUF_LEN];
+
+static int debug;
+#define dprintk(fmt, args...) \
+ do { \
+ if (debug) \
+ printk(KERN_DEBUG LIRC_DRIVER_NAME ": " \
+ fmt, ## args); \
+ } while (0)
+
+/* SECTION: Prototypes */
+
+/* Communication with user-space */
+static int lirc_open(struct inode *inode, struct file *file);
+static int lirc_close(struct inode *inode, struct file *file);
+static unsigned int lirc_poll(struct file *file, poll_table *wait);
+static ssize_t lirc_read(struct file *file, char *buf, size_t count,
+ loff_t *ppos);
+static ssize_t lirc_write(struct file *file, const char *buf, size_t n,
+ loff_t *pos);
+static int lirc_ioctl(struct inode *node, struct file *filep, unsigned int cmd,
+ unsigned long arg);
+static void add_read_queue(int flag, unsigned long val);
+#ifdef MODULE
+static int init_chrdev(void);
+static void drop_chrdev(void);
+#endif
+/* Hardware */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static irqreturn_t sir_interrupt(int irq, void *dev_id,
+ struct pt_regs *regs);
+#else
+static irqreturn_t sir_interrupt(int irq, void *dev_id);
+#endif
+static void send_space(unsigned long len);
+static void send_pulse(unsigned long len);
+static int init_hardware(void);
+static void drop_hardware(void);
+/* Initialisation */
+static int init_port(void);
+static void drop_port(void);
+
+#ifdef LIRC_ON_SA1100
+static void on(void)
+{
+ PPSR |= PPC_TXD2;
+}
+
+static void off(void)
+{
+ PPSR &= ~PPC_TXD2;
+}
+#else
+static unsigned int sinp(int offset)
+{
+ return inb(io + offset);
+}
+
+static void soutp(int offset, int value)
+{
+ outb(value, io + offset);
+}
+#endif
+
+#ifndef MAX_UDELAY_MS
+#define MAX_UDELAY_US 5000
+#else
+#define MAX_UDELAY_US (MAX_UDELAY_MS*1000)
+#endif
+
+static void safe_udelay(unsigned long usecs)
+{
+ while (usecs > MAX_UDELAY_US) {
+ udelay(MAX_UDELAY_US);
+ usecs -= MAX_UDELAY_US;
+ }
+ udelay(usecs);
+}
+
+/* SECTION: Communication with user-space */
+
+static int lirc_open(struct inode *inode, struct file *file)
+{
+ spin_lock(&dev_lock);
+ if (MOD_IN_USE) {
+ spin_unlock(&dev_lock);
+ return -EBUSY;
+ }
+ MOD_INC_USE_COUNT;
+ spin_unlock(&dev_lock);
+ return 0;
+}
+
+static int lirc_close(struct inode *inode, struct file *file)
+{
+ MOD_DEC_USE_COUNT;
+ return 0;
+}
+
+static unsigned int lirc_poll(struct file *file, poll_table *wait)
+{
+ poll_wait(file, &lirc_read_queue, wait);
+ if (rx_head != rx_tail)
+ return POLLIN | POLLRDNORM;
+ return 0;
+}
+
+static ssize_t lirc_read(struct file *file, char *buf, size_t count,
+ loff_t *ppos)
+{
+ int n = 0;
+ int retval = 0;
+ DECLARE_WAITQUEUE(wait, current);
+
+ if (count % sizeof(lirc_t))
+ return -EINVAL;
+
+ add_wait_queue(&lirc_read_queue, &wait);
+ set_current_state(TASK_INTERRUPTIBLE);
+ while (n < count) {
+ if (rx_head != rx_tail) {
+ if (copy_to_user((void *) buf + n,
+ (void *) (rx_buf + rx_head),
+ sizeof(lirc_t))) {
+ retval = -EFAULT;
+ break;
+ }
+ rx_head = (rx_head + 1) & (RBUF_LEN - 1);
+ n += sizeof(lirc_t);
+ } else {
+ if (file->f_flags & O_NONBLOCK) {
+ retval = -EAGAIN;
+ break;
+ }
+ if (signal_pending(current)) {
+ retval = -ERESTARTSYS;
+ break;
+ }
+ schedule();
+ set_current_state(TASK_INTERRUPTIBLE);
+ }
+ }
+ remove_wait_queue(&lirc_read_queue, &wait);
+ set_current_state(TASK_RUNNING);
+ return n ? n : retval;
+}
+static ssize_t lirc_write(struct file *file, const char *buf, size_t n,
+ loff_t *pos)
+{
+ unsigned long flags;
+ int i;
+
+ if (n % sizeof(lirc_t) || (n / sizeof(lirc_t)) > WBUF_LEN)
+ return -EINVAL;
+ if (copy_from_user(tx_buf, buf, n))
+ return -EFAULT;
+ i = 0;
+ n /= sizeof(lirc_t);
+#ifdef LIRC_ON_SA1100
+ /* disable receiver */
+ Ser2UTCR3 = 0;
+#endif
+ local_irq_save(flags);
+ while (1) {
+ if (i >= n)
+ break;
+ if (tx_buf[i])
+ send_pulse(tx_buf[i]);
+ i++;
+ if (i >= n)
+ break;
+ if (tx_buf[i])
+ send_space(tx_buf[i]);
+ i++;
+ }
+ local_irq_restore(flags);
+#ifdef LIRC_ON_SA1100
+ off();
+ udelay(1000); /* wait 1ms for IR diode to recover */
+ Ser2UTCR3 = 0;
+ /* clear status register to prevent unwanted interrupts */
+ Ser2UTSR0 &= (UTSR0_RID | UTSR0_RBB | UTSR0_REB);
+ /* enable receiver */
+ Ser2UTCR3 = UTCR3_RXE|UTCR3_RIE;
+#endif
+ return n;
+}
+
+static int lirc_ioctl(struct inode *node, struct file *filep, unsigned int cmd,
+ unsigned long arg)
+{
+ int retval = 0;
+ unsigned long value = 0;
+#ifdef LIRC_ON_SA1100
+ unsigned int ivalue;
+
+ if (cmd == LIRC_GET_FEATURES)
+ value = LIRC_CAN_SEND_PULSE |
+ LIRC_CAN_SET_SEND_DUTY_CYCLE |
+ LIRC_CAN_SET_SEND_CARRIER |
+ LIRC_CAN_REC_MODE2;
+ else if (cmd == LIRC_GET_SEND_MODE)
+ value = LIRC_MODE_PULSE;
+ else if (cmd == LIRC_GET_REC_MODE)
+ value = LIRC_MODE_MODE2;
+#else
+ if (cmd == LIRC_GET_FEATURES)
+ value = LIRC_CAN_SEND_PULSE | LIRC_CAN_REC_MODE2;
+ else if (cmd == LIRC_GET_SEND_MODE)
+ value = LIRC_MODE_PULSE;
+ else if (cmd == LIRC_GET_REC_MODE)
+ value = LIRC_MODE_MODE2;
+#endif
+
+ switch (cmd) {
+ case LIRC_GET_FEATURES:
+ case LIRC_GET_SEND_MODE:
+ case LIRC_GET_REC_MODE:
+ retval = put_user(value, (unsigned long *) arg);
+ break;
+
+ case LIRC_SET_SEND_MODE:
+ case LIRC_SET_REC_MODE:
+ retval = get_user(value, (unsigned long *) arg);
+ break;
+#ifdef LIRC_ON_SA1100
+ case LIRC_SET_SEND_DUTY_CYCLE:
+ retval = get_user(ivalue, (unsigned int *) arg);
+ if (retval)
+ return reetval;
+ if (ivalue <= 0 || ivalue > 100)
+ return -EINVAL;
+ /* (ivalue/100)*(1000000/freq) */
+ duty_cycle = ivalue;
+ pulse_width = (unsigned long) duty_cycle*10000/freq;
+ space_width = (unsigned long) 1000000L/freq-pulse_width;
+ if (pulse_width >= LIRC_ON_SA1100_TRANSMITTER_LATENCY)
+ pulse_width -= LIRC_ON_SA1100_TRANSMITTER_LATENCY;
+ if (space_width >= LIRC_ON_SA1100_TRANSMITTER_LATENCY)
+ space_width -= LIRC_ON_SA1100_TRANSMITTER_LATENCY;
+ break;
+ case LIRC_SET_SEND_CARRIER:
+ retval = get_user(ivalue, (unsigned int *) arg);
+ if (retval)
+ return retval;
+ if (ivalue > 500000 || ivalue < 20000)
+ return -EINVAL;
+ freq = ivalue;
+ pulse_width = (unsigned long) duty_cycle*10000/freq;
+ space_width = (unsigned long) 1000000L/freq-pulse_width;
+ if (pulse_width >= LIRC_ON_SA1100_TRANSMITTER_LATENCY)
+ pulse_width -= LIRC_ON_SA1100_TRANSMITTER_LATENCY;
+ if (space_width >= LIRC_ON_SA1100_TRANSMITTER_LATENCY)
+ space_width -= LIRC_ON_SA1100_TRANSMITTER_LATENCY;
+ break;
+#endif
+ default:
+ retval = -ENOIOCTLCMD;
+
+ }
+
+ if (retval)
+ return retval;
+ if (cmd == LIRC_SET_REC_MODE) {
+ if (value != LIRC_MODE_MODE2)
+ retval = -ENOSYS;
+ } else if (cmd == LIRC_SET_SEND_MODE) {
+ if (value != LIRC_MODE_PULSE)
+ retval = -ENOSYS;
+ }
+
+ return retval;
+}
+
+static void add_read_queue(int flag, unsigned long val)
+{
+ unsigned int new_rx_tail;
+ lirc_t newval;
+
+ dprintk("add flag %d with val %lu\n", flag, val);
+
+ newval = val & PULSE_MASK;
+
+ /*
+ * statistically, pulses are ~TIME_CONST/2 too long. we could
+ * maybe make this more exact, but this is good enough
+ */
+ if (flag) {
+ /* pulse */
+ if (newval > TIME_CONST/2)
+ newval -= TIME_CONST/2;
+ else /* should not ever happen */
+ newval = 1;
+ newval |= PULSE_BIT;
+ } else {
+ newval += TIME_CONST/2;
+ }
+ new_rx_tail = (rx_tail + 1) & (RBUF_LEN - 1);
+ if (new_rx_tail == rx_head) {
+ dprintk("Buffer overrun.\n");
+ return;
+ }
+ rx_buf[rx_tail] = newval;
+ rx_tail = new_rx_tail;
+ wake_up_interruptible(&lirc_read_queue);
+}
+
+static struct file_operations lirc_fops = {
+ .owner = THIS_MODULE,
+ .read = lirc_read,
+ .write = lirc_write,
+ .poll = lirc_poll,
+ .ioctl = lirc_ioctl,
+ .open = lirc_open,
+ .release = lirc_close,
+};
+
+static int set_use_inc(void *data)
+{
+ return 0;
+}
+
+static void set_use_dec(void *data)
+{
+}
+
+static struct lirc_driver driver = {
+ .name = LIRC_DRIVER_NAME,
+ .minor = -1,
+ .code_length = 1,
+ .sample_rate = 0,
+ .data = NULL,
+ .add_to_buf = NULL,
+#ifndef LIRC_REMOVE_DURING_EXPORT
+ .get_queue = NULL,
+#endif
+ .set_use_inc = set_use_inc,
+ .set_use_dec = set_use_dec,
+ .fops = &lirc_fops,
+ .dev = NULL,
+ .owner = THIS_MODULE,
+};
+
+
+#ifdef MODULE
+static int init_chrdev(void)
+{
+ driver.minor = lirc_register_driver(&driver);
+ if (driver.minor < 0) {
+ printk(KERN_ERR LIRC_DRIVER_NAME ": init_chrdev() failed.\n");
+ return -EIO;
+ }
+ return 0;
+}
+
+static void drop_chrdev(void)
+{
+ lirc_unregister_driver(driver.minor);
+}
+#endif
+
+/* SECTION: Hardware */
+static long delta(struct timeval *tv1, struct timeval *tv2)
+{
+ unsigned long deltv;
+
+ deltv = tv2->tv_sec - tv1->tv_sec;
+ if (deltv > 15)
+ deltv = 0xFFFFFF;
+ else
+ deltv = deltv*1000000 +
+ tv2->tv_usec -
+ tv1->tv_usec;
+ return deltv;
+}
+
+static void sir_timeout(unsigned long data)
+{
+ /*
+ * if last received signal was a pulse, but receiving stopped
+ * within the 9 bit frame, we need to finish this pulse and
+ * simulate a signal change to from pulse to space. Otherwise
+ * upper layers will receive two sequences next time.
+ */
+
+ unsigned long flags;
+ unsigned long pulse_end;
+
+ /* avoid interference with interrupt */
+ spin_lock_irqsave(&timer_lock, flags);
+ if (last_value) {
+#ifndef LIRC_ON_SA1100
+ /* clear unread bits in UART and restart */
+ outb(UART_FCR_CLEAR_RCVR, io + UART_FCR);
+#endif
+ /* determine 'virtual' pulse end: */
+ pulse_end = delta(&last_tv, &last_intr_tv);
+ dprintk("timeout add %d for %lu usec\n", last_value, pulse_end);
+ add_read_queue(last_value, pulse_end);
+ last_value = 0;
+ last_tv = last_intr_tv;
+ }
+ spin_unlock_irqrestore(&timer_lock, flags);
+}
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static irqreturn_t sir_interrupt(int irq, void *dev_id,
+ struct pt_regs *regs)
+#else
+static irqreturn_t sir_interrupt(int irq, void *dev_id)
+#endif
+{
+ unsigned char data;
+ struct timeval curr_tv;
+ static unsigned long deltv;
+#ifdef LIRC_ON_SA1100
+ int status;
+ static int n;
+
+ status = Ser2UTSR0;
+ /*
+ * Deal with any receive errors first. The bytes in error may be
+ * the only bytes in the receive FIFO, so we do this first.
+ */
+ while (status & UTSR0_EIF) {
+ int bstat;
+
+ if (debug) {
+ dprintk("EIF\n");
+ bstat = Ser2UTSR1;
+
+ if (bstat & UTSR1_FRE)
+ dprintk("frame error\n");
+ if (bstat & UTSR1_ROR)
+ dprintk("receive fifo overrun\n");
+ if (bstat & UTSR1_PRE)
+ dprintk("parity error\n");
+ }
+
+ bstat = Ser2UTDR;
+ n++;
+ status = Ser2UTSR0;
+ }
+
+ if (status & (UTSR0_RFS | UTSR0_RID)) {
+ do_gettimeofday(&curr_tv);
+ deltv = delta(&last_tv, &curr_tv);
+ do {
+ data = Ser2UTDR;
+ dprintk("%d data: %u\n", n, (unsigned int) data);
+ n++;
+ } while (status & UTSR0_RID && /* do not empty fifo in order to
+ * get UTSR0_RID in any case */
+ Ser2UTSR1 & UTSR1_RNE); /* data ready */
+
+ if (status&UTSR0_RID) {
+ add_read_queue(0 , deltv - n * TIME_CONST); /*space*/
+ add_read_queue(1, n * TIME_CONST); /*pulse*/
+ n = 0;
+ last_tv = curr_tv;
+ }
+ }
+
+ if (status & UTSR0_TFS)
+ printk(KERN_ERR "transmit fifo not full, shouldn't happen\n");
+
+ /* We must clear certain bits. */
+ status &= (UTSR0_RID | UTSR0_RBB | UTSR0_REB);
+ if (status)
+ Ser2UTSR0 = status;
+#else
+ unsigned long deltintrtv;
+ unsigned long flags;
+ int iir, lsr;
+
+ while ((iir = inb(io + UART_IIR) & UART_IIR_ID)) {
+ switch (iir&UART_IIR_ID) { /* FIXME toto treba preriedit */
+ case UART_IIR_MSI:
+ (void) inb(io + UART_MSR);
+ break;
+ case UART_IIR_RLSI:
+ (void) inb(io + UART_LSR);
+ break;
+ case UART_IIR_THRI:
+#if 0
+ if (lsr & UART_LSR_THRE) /* FIFO is empty */
+ outb(data, io + UART_TX)
+#endif
+ break;
+ case UART_IIR_RDI:
+ /* avoid interference with timer */
+ spin_lock_irqsave(&timer_lock, flags);
+ do {
+ del_timer(&timerlist);
+ data = inb(io + UART_RX);
+ do_gettimeofday(&curr_tv);
+ deltv = delta(&last_tv, &curr_tv);
+ deltintrtv = delta(&last_intr_tv, &curr_tv);
+ dprintk("t %lu, d %d\n", deltintrtv, (int)data);
+ /*
+ * if nothing came in last X cycles,
+ * it was gap
+ */
+ if (deltintrtv > TIME_CONST * threshold) {
+ if (last_value) {
+ dprintk("GAP\n");
+ /* simulate signal change */
+ add_read_queue(last_value,
+ deltv -
+ deltintrtv);
+ last_value = 0;
+ last_tv.tv_sec =
+ last_intr_tv.tv_sec;
+ last_tv.tv_usec =
+ last_intr_tv.tv_usec;
+ deltv = deltintrtv;
+ }
+ }
+ data = 1;
+ if (data ^ last_value) {
+ /*
+ * deltintrtv > 2*TIME_CONST, remember?
+ * the other case is timeout
+ */
+ add_read_queue(last_value,
+ deltv-TIME_CONST);
+ last_value = data;
+ last_tv = curr_tv;
+ if (last_tv.tv_usec >= TIME_CONST) {
+ last_tv.tv_usec -= TIME_CONST;
+ } else {
+ last_tv.tv_sec--;
+ last_tv.tv_usec += 1000000 -
+ TIME_CONST;
+ }
+ }
+ last_intr_tv = curr_tv;
+ if (data) {
+ /*
+ * start timer for end of
+ * sequence detection
+ */
+ timerlist.expires = jiffies +
+ SIR_TIMEOUT;
+ add_timer(&timerlist);
+ }
+
+ lsr = inb(io + UART_LSR);
+ } while (lsr & UART_LSR_DR); /* data ready */
+ spin_unlock_irqrestore(&timer_lock, flags);
+ break;
+ default:
+ break;
+ }
+ }
+#endif
+ return IRQ_RETVAL(IRQ_HANDLED);
+}
+
+#ifdef LIRC_ON_SA1100
+static void send_pulse(unsigned long length)
+{
+ unsigned long k, delay;
+ int flag;
+
+ if (length == 0)
+ return;
+ /*
+ * this won't give us the carrier frequency we really want
+ * due to integer arithmetic, but we can accept this inaccuracy
+ */
+
+ for (k = flag = 0; k < length; k += delay, flag = !flag) {
+ if (flag) {
+ off();
+ delay = space_width;
+ } else {
+ on();
+ delay = pulse_width;
+ }
+ safe_udelay(delay);
+ }
+ off();
+}
+
+static void send_space(unsigned long length)
+{
+ if (length == 0)
+ return;
+ off();
+ safe_udelay(length);
+}
+#else
+static void send_space(unsigned long len)
+{
+ safe_udelay(len);
+}
+
+static void send_pulse(unsigned long len)
+{
+ long bytes_out = len / TIME_CONST;
+ long time_left;
+
+ time_left = (long)len - (long)bytes_out * (long)TIME_CONST;
+ if (bytes_out == 0) {
+ bytes_out++;
+ time_left = 0;
+ }
+ while (bytes_out--) {
+ outb(PULSE, io + UART_TX);
+ /* FIXME treba seriozne cakanie z drivers/char/serial.c */
+ while (!(inb(io + UART_LSR) & UART_LSR_THRE))
+ ;
+ }
+#if 0
+ if (time_left > 0)
+ safe_udelay(time_left);
+#endif
+}
+#endif
+
+#ifdef CONFIG_SA1100_COLLIE
+static int sa1100_irda_set_power_collie(int state)
+{
+ if (state) {
+ /*
+ * 0 - off
+ * 1 - short range, lowest power
+ * 2 - medium range, medium power
+ * 3 - maximum range, high power
+ */
+ ucb1200_set_io_direction(TC35143_GPIO_IR_ON,
+ TC35143_IODIR_OUTPUT);
+ ucb1200_set_io(TC35143_GPIO_IR_ON, TC35143_IODAT_LOW);
+ udelay(100);
+ } else {
+ /* OFF */
+ ucb1200_set_io_direction(TC35143_GPIO_IR_ON,
+ TC35143_IODIR_OUTPUT);
+ ucb1200_set_io(TC35143_GPIO_IR_ON, TC35143_IODAT_HIGH);
+ }
+ return 0;
+}
+#endif
+
+static int init_hardware(void)
+{
+ unsigned long flags;
+
+ spin_lock_irqsave(&hardware_lock, flags);
+ /* reset UART */
+#ifdef LIRC_ON_SA1100
+#ifdef CONFIG_SA1100_BITSY
+ if (machine_is_bitsy()) {
+ printk(KERN_INFO "Power on IR module\n");
+ set_bitsy_egpio(EGPIO_BITSY_IR_ON);
+ }
+#endif
+#ifdef CONFIG_SA1100_COLLIE
+ sa1100_irda_set_power_collie(3); /* power on */
+#endif
+ sr.hscr0 = Ser2HSCR0;
+
+ sr.utcr0 = Ser2UTCR0;
+ sr.utcr1 = Ser2UTCR1;
+ sr.utcr2 = Ser2UTCR2;
+ sr.utcr3 = Ser2UTCR3;
+ sr.utcr4 = Ser2UTCR4;
+
+ sr.utdr = Ser2UTDR;
+ sr.utsr0 = Ser2UTSR0;
+ sr.utsr1 = Ser2UTSR1;
+
+ /* configure GPIO */
+ /* output */
+ PPDR |= PPC_TXD2;
+ PSDR |= PPC_TXD2;
+ /* set output to 0 */
+ off();
+
+ /* Enable HP-SIR modulation, and ensure that the port is disabled. */
+ Ser2UTCR3 = 0;
+ Ser2HSCR0 = sr.hscr0 & (~HSCR0_HSSP);
+
+ /* clear status register to prevent unwanted interrupts */
+ Ser2UTSR0 &= (UTSR0_RID | UTSR0_RBB | UTSR0_REB);
+
+ /* 7N1 */
+ Ser2UTCR0 = UTCR0_1StpBit|UTCR0_7BitData;
+ /* 115200 */
+ Ser2UTCR1 = 0;
+ Ser2UTCR2 = 1;
+ /* use HPSIR, 1.6 usec pulses */
+ Ser2UTCR4 = UTCR4_HPSIR|UTCR4_Z1_6us;
+
+ /* enable receiver, receive fifo interrupt */
+ Ser2UTCR3 = UTCR3_RXE|UTCR3_RIE;
+
+ /* clear status register to prevent unwanted interrupts */
+ Ser2UTSR0 &= (UTSR0_RID | UTSR0_RBB | UTSR0_REB);
+
+#elif defined(LIRC_SIR_TEKRAM)
+ /* disable FIFO */
+ soutp(UART_FCR,
+ UART_FCR_CLEAR_RCVR|
+ UART_FCR_CLEAR_XMIT|
+ UART_FCR_TRIGGER_1);
+
+ /* Set DLAB 0. */
+ soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB));
+
+ /* First of all, disable all interrupts */
+ soutp(UART_IER, sinp(UART_IER) &
+ (~(UART_IER_MSI|UART_IER_RLSI|UART_IER_THRI|UART_IER_RDI)));
+
+ /* Set DLAB 1. */
+ soutp(UART_LCR, sinp(UART_LCR) | UART_LCR_DLAB);
+
+ /* Set divisor to 12 => 9600 Baud */
+ soutp(UART_DLM, 0);
+ soutp(UART_DLL, 12);
+
+ /* Set DLAB 0. */
+ soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB));
+
+ /* power supply */
+ soutp(UART_MCR, UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2);
+ safe_udelay(50*1000);
+
+ /* -DTR low -> reset PIC */
+ soutp(UART_MCR, UART_MCR_RTS|UART_MCR_OUT2);
+ udelay(1*1000);
+
+ soutp(UART_MCR, UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2);
+ udelay(100);
+
+
+ /* -RTS low -> send control byte */
+ soutp(UART_MCR, UART_MCR_DTR|UART_MCR_OUT2);
+ udelay(7);
+ soutp(UART_TX, TEKRAM_115200|TEKRAM_PW);
+
+ /* one byte takes ~1042 usec to transmit at 9600,8N1 */
+ udelay(1500);
+
+ /* back to normal operation */
+ soutp(UART_MCR, UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2);
+ udelay(50);
+
+ udelay(1500);
+
+ /* read previous control byte */
+ printk(KERN_INFO LIRC_DRIVER_NAME
+ ": 0x%02x\n", sinp(UART_RX));
+
+ /* Set DLAB 1. */
+ soutp(UART_LCR, sinp(UART_LCR) | UART_LCR_DLAB);
+
+ /* Set divisor to 1 => 115200 Baud */
+ soutp(UART_DLM, 0);
+ soutp(UART_DLL, 1);
+
+ /* Set DLAB 0, 8 Bit */
+ soutp(UART_LCR, UART_LCR_WLEN8);
+ /* enable interrupts */
+ soutp(UART_IER, sinp(UART_IER)|UART_IER_RDI);
+#else
+ outb(0, io + UART_MCR);
+ outb(0, io + UART_IER);
+ /* init UART */
+ /* set DLAB, speed = 115200 */
+ outb(UART_LCR_DLAB | UART_LCR_WLEN7, io + UART_LCR);
+ outb(1, io + UART_DLL); outb(0, io + UART_DLM);
+ /* 7N1+start = 9 bits at 115200 ~ 3 bits at 44000 */
+ outb(UART_LCR_WLEN7, io + UART_LCR);
+ /* FIFO operation */
+ outb(UART_FCR_ENABLE_FIFO, io + UART_FCR);
+ /* interrupts */
+ /* outb(UART_IER_RLSI|UART_IER_RDI|UART_IER_THRI, io + UART_IER); */
+ outb(UART_IER_RDI, io + UART_IER);
+ /* turn on UART */
+ outb(UART_MCR_DTR|UART_MCR_RTS|UART_MCR_OUT2, io + UART_MCR);
+#ifdef LIRC_SIR_ACTISYS_ACT200L
+ init_act200();
+#elif defined(LIRC_SIR_ACTISYS_ACT220L)
+ init_act220();
+#endif
+#endif
+ spin_unlock_irqrestore(&hardware_lock, flags);
+ return 0;
+}
+
+static void drop_hardware(void)
+{
+ unsigned long flags;
+
+ spin_lock_irqsave(&hardware_lock, flags);
+
+#ifdef LIRC_ON_SA1100
+ Ser2UTCR3 = 0;
+
+ Ser2UTCR0 = sr.utcr0;
+ Ser2UTCR1 = sr.utcr1;
+ Ser2UTCR2 = sr.utcr2;
+ Ser2UTCR4 = sr.utcr4;
+ Ser2UTCR3 = sr.utcr3;
+
+ Ser2HSCR0 = sr.hscr0;
+#ifdef CONFIG_SA1100_BITSY
+ if (machine_is_bitsy())
+ clr_bitsy_egpio(EGPIO_BITSY_IR_ON);
+#endif
+#ifdef CONFIG_SA1100_COLLIE
+ sa1100_irda_set_power_collie(0); /* power off */
+#endif
+#else
+ /* turn off interrupts */
+ outb(0, io + UART_IER);
+#endif
+ spin_unlock_irqrestore(&hardware_lock, flags);
+}
+
+/* SECTION: Initialisation */
+
+static int init_port(void)
+{
+ int retval;
+
+ /* get I/O port access and IRQ line */
+#ifndef LIRC_ON_SA1100
+ if (request_region(io, 8, LIRC_DRIVER_NAME) == NULL) {
+ printk(KERN_ERR LIRC_DRIVER_NAME
+ ": i/o port 0x%.4x already in use.\n", io);
+ return -EBUSY;
+ }
+#endif
+ retval = request_irq(irq, sir_interrupt, IRQF_DISABLED,
+ LIRC_DRIVER_NAME, NULL);
+ if (retval < 0) {
+# ifndef LIRC_ON_SA1100
+ release_region(io, 8);
+# endif
+ printk(KERN_ERR LIRC_DRIVER_NAME
+ ": IRQ %d already in use.\n",
+ irq);
+ return retval;
+ }
+#ifndef LIRC_ON_SA1100
+ printk(KERN_INFO LIRC_DRIVER_NAME
+ ": I/O port 0x%.4x, IRQ %d.\n",
+ io, irq);
+#endif
+
+ init_timer(&timerlist);
+ timerlist.function = sir_timeout;
+ timerlist.data = 0xabadcafe;
+
+ return 0;
+}
+
+static void drop_port(void)
+{
+ free_irq(irq, NULL);
+ del_timer_sync(&timerlist);
+#ifndef LIRC_ON_SA1100
+ release_region(io, 8);
+#endif
+}
+
+#ifdef LIRC_SIR_ACTISYS_ACT200L
+/* Crystal/Cirrus CS8130 IR transceiver, used in Actisys Act200L dongle */
+/* some code borrowed from Linux IRDA driver */
+
+/* Register 0: Control register #1 */
+#define ACT200L_REG0 0x00
+#define ACT200L_TXEN 0x01 /* Enable transmitter */
+#define ACT200L_RXEN 0x02 /* Enable receiver */
+#define ACT200L_ECHO 0x08 /* Echo control chars */
+
+/* Register 1: Control register #2 */
+#define ACT200L_REG1 0x10
+#define ACT200L_LODB 0x01 /* Load new baud rate count value */
+#define ACT200L_WIDE 0x04 /* Expand the maximum allowable pulse */
+
+/* Register 3: Transmit mode register #2 */
+#define ACT200L_REG3 0x30
+#define ACT200L_B0 0x01 /* DataBits, 0=6, 1=7, 2=8, 3=9(8P) */
+#define ACT200L_B1 0x02 /* DataBits, 0=6, 1=7, 2=8, 3=9(8P) */
+#define ACT200L_CHSY 0x04 /* StartBit Synced 0=bittime, 1=startbit */
+
+/* Register 4: Output Power register */
+#define ACT200L_REG4 0x40
+#define ACT200L_OP0 0x01 /* Enable LED1C output */
+#define ACT200L_OP1 0x02 /* Enable LED2C output */
+#define ACT200L_BLKR 0x04
+
+/* Register 5: Receive Mode register */
+#define ACT200L_REG5 0x50
+#define ACT200L_RWIDL 0x01 /* fixed 1.6us pulse mode */
+ /*.. other various IRDA bit modes, and TV remote modes..*/
+
+/* Register 6: Receive Sensitivity register #1 */
+#define ACT200L_REG6 0x60
+#define ACT200L_RS0 0x01 /* receive threshold bit 0 */
+#define ACT200L_RS1 0x02 /* receive threshold bit 1 */
+
+/* Register 7: Receive Sensitivity register #2 */
+#define ACT200L_REG7 0x70
+#define ACT200L_ENPOS 0x04 /* Ignore the falling edge */
+
+/* Register 8,9: Baud Rate Divider register #1,#2 */
+#define ACT200L_REG8 0x80
+#define ACT200L_REG9 0x90
+
+#define ACT200L_2400 0x5f
+#define ACT200L_9600 0x17
+#define ACT200L_19200 0x0b
+#define ACT200L_38400 0x05
+#define ACT200L_57600 0x03
+#define ACT200L_115200 0x01
+
+/* Register 13: Control register #3 */
+#define ACT200L_REG13 0xd0
+#define ACT200L_SHDW 0x01 /* Enable access to shadow registers */
+
+/* Register 15: Status register */
+#define ACT200L_REG15 0xf0
+
+/* Register 21: Control register #4 */
+#define ACT200L_REG21 0x50
+#define ACT200L_EXCK 0x02 /* Disable clock output driver */
+#define ACT200L_OSCL 0x04 /* oscillator in low power, medium accuracy mode */
+
+static void init_act200(void)
+{
+ int i;
+ __u8 control[] = {
+ ACT200L_REG15,
+ ACT200L_REG13 | ACT200L_SHDW,
+ ACT200L_REG21 | ACT200L_EXCK | ACT200L_OSCL,
+ ACT200L_REG13,
+ ACT200L_REG7 | ACT200L_ENPOS,
+ ACT200L_REG6 | ACT200L_RS0 | ACT200L_RS1,
+ ACT200L_REG5 | ACT200L_RWIDL,
+ ACT200L_REG4 | ACT200L_OP0 | ACT200L_OP1 | ACT200L_BLKR,
+ ACT200L_REG3 | ACT200L_B0,
+ ACT200L_REG0 | ACT200L_TXEN | ACT200L_RXEN,
+ ACT200L_REG8 | (ACT200L_115200 & 0x0f),
+ ACT200L_REG9 | ((ACT200L_115200 >> 4) & 0x0f),
+ ACT200L_REG1 | ACT200L_LODB | ACT200L_WIDE
+ };
+
+ /* Set DLAB 1. */
+ soutp(UART_LCR, UART_LCR_DLAB | UART_LCR_WLEN8);
+
+ /* Set divisor to 12 => 9600 Baud */
+ soutp(UART_DLM, 0);
+ soutp(UART_DLL, 12);
+
+ /* Set DLAB 0. */
+ soutp(UART_LCR, UART_LCR_WLEN8);
+ /* Set divisor to 12 => 9600 Baud */
+
+ /* power supply */
+ soutp(UART_MCR, UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2);
+ for (i = 0; i < 50; i++)
+ safe_udelay(1000);
+
+ /* Reset the dongle : set RTS low for 25 ms */
+ soutp(UART_MCR, UART_MCR_DTR|UART_MCR_OUT2);
+ for (i = 0; i < 25; i++)
+ udelay(1000);
+
+ soutp(UART_MCR, UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2);
+ udelay(100);
+
+ /* Clear DTR and set RTS to enter command mode */
+ soutp(UART_MCR, UART_MCR_RTS|UART_MCR_OUT2);
+ udelay(7);
+
+ /* send out the control register settings for 115K 7N1 SIR operation */
+ for (i = 0; i < sizeof(control); i++) {
+ soutp(UART_TX, control[i]);
+ /* one byte takes ~1042 usec to transmit at 9600,8N1 */
+ udelay(1500);
+ }
+
+ /* back to normal operation */
+ soutp(UART_MCR, UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2);
+ udelay(50);
+
+ udelay(1500);
+ soutp(UART_LCR, sinp(UART_LCR) | UART_LCR_DLAB);
+
+ /* Set DLAB 1. */
+ soutp(UART_LCR, UART_LCR_DLAB | UART_LCR_WLEN7);
+
+ /* Set divisor to 1 => 115200 Baud */
+ soutp(UART_DLM, 0);
+ soutp(UART_DLL, 1);
+
+ /* Set DLAB 0. */
+ soutp(UART_LCR, sinp(UART_LCR) & (~UART_LCR_DLAB));
+
+ /* Set DLAB 0, 7 Bit */
+ soutp(UART_LCR, UART_LCR_WLEN7);
+
+ /* enable interrupts */
+ soutp(UART_IER, sinp(UART_IER)|UART_IER_RDI);
+}
+#endif
+
+#ifdef LIRC_SIR_ACTISYS_ACT220L
+/*
+ * Derived from linux IrDA driver (net/irda/actisys.c)
+ * Drop me a mail for any kind of comment: maxx@spaceboyz.net
+ */
+
+void init_act220(void)
+{
+ int i;
+
+ /* DLAB 1 */
+ soutp(UART_LCR, UART_LCR_DLAB|UART_LCR_WLEN7);
+
+ /* 9600 baud */
+ soutp(UART_DLM, 0);
+ soutp(UART_DLL, 12);
+
+ /* DLAB 0 */
+ soutp(UART_LCR, UART_LCR_WLEN7);
+
+ /* reset the dongle, set DTR low for 10us */
+ soutp(UART_MCR, UART_MCR_RTS|UART_MCR_OUT2);
+ udelay(10);
+
+ /* back to normal (still 9600) */
+ soutp(UART_MCR, UART_MCR_DTR|UART_MCR_RTS|UART_MCR_OUT2);
+
+ /*
+ * send RTS pulses until we reach 115200
+ * i hope this is really the same for act220l/act220l+
+ */
+ for (i = 0; i < 3; i++) {
+ udelay(10);
+ /* set RTS low for 10 us */
+ soutp(UART_MCR, UART_MCR_DTR|UART_MCR_OUT2);
+ udelay(10);
+ /* set RTS high for 10 us */
+ soutp(UART_MCR, UART_MCR_RTS|UART_MCR_DTR|UART_MCR_OUT2);
+ }
+
+ /* back to normal operation */
+ udelay(1500); /* better safe than sorry ;) */
+
+ /* Set DLAB 1. */
+ soutp(UART_LCR, UART_LCR_DLAB | UART_LCR_WLEN7);
+
+ /* Set divisor to 1 => 115200 Baud */
+ soutp(UART_DLM, 0);
+ soutp(UART_DLL, 1);
+
+ /* Set DLAB 0, 7 Bit */
+ /* The dongle doesn't seem to have any problems with operation at 7N1 */
+ soutp(UART_LCR, UART_LCR_WLEN7);
+
+ /* enable interrupts */
+ soutp(UART_IER, UART_IER_RDI);
+}
+#endif
+
+static int init_lirc_sir(void)
+{
+ int retval;
+
+ init_waitqueue_head(&lirc_read_queue);
+ retval = init_port();
+ if (retval < 0)
+ return retval;
+ init_hardware();
+ printk(KERN_INFO LIRC_DRIVER_NAME
+ ": Installed.\n");
+ return 0;
+}
+
+#ifdef MODULE
+
+static int __init lirc_sir_init(void)
+{
+ int retval;
+
+ retval = init_chrdev();
+ if (retval < 0)
+ return retval;
+ retval = init_lirc_sir();
+ if (retval) {
+ drop_chrdev();
+ return retval;
+ }
+ return 0;
+}
+
+static void __exit lirc_sir_exit(void)
+{
+ drop_hardware();
+ drop_chrdev();
+ drop_port();
+ printk(KERN_INFO LIRC_DRIVER_NAME ": Uninstalled.\n");
+}
+
+module_init(lirc_sir_init);
+module_exit(lirc_sir_exit);
+
+#ifdef LIRC_SIR_TEKRAM
+MODULE_DESCRIPTION("Infrared receiver driver for Tekram Irmate 210");
+MODULE_AUTHOR("Christoph Bartelmus");
+#elif defined(LIRC_ON_SA1100)
+MODULE_DESCRIPTION("LIRC driver for StrongARM SA1100 embedded microprocessor");
+MODULE_AUTHOR("Christoph Bartelmus");
+#elif defined(LIRC_SIR_ACTISYS_ACT200L)
+MODULE_DESCRIPTION("LIRC driver for Actisys Act200L");
+MODULE_AUTHOR("Karl Bongers");
+#elif defined(LIRC_SIR_ACTISYS_ACT220L)
+MODULE_DESCRIPTION("LIRC driver for Actisys Act220L(+)");
+MODULE_AUTHOR("Jan Roemisch");
+#else
+MODULE_DESCRIPTION("Infrared receiver driver for SIR type serial ports");
+MODULE_AUTHOR("Milan Pikula");
+#endif
+MODULE_LICENSE("GPL");
+
+#ifdef LIRC_ON_SA1100
+module_param(irq, int, S_IRUGO);
+MODULE_PARM_DESC(irq, "Interrupt (16)");
+#else
+module_param(io, int, S_IRUGO);
+MODULE_PARM_DESC(io, "I/O address base (0x3f8 or 0x2f8)");
+
+module_param(irq, int, S_IRUGO);
+MODULE_PARM_DESC(irq, "Interrupt (4 or 3)");
+
+module_param(threshold, int, S_IRUGO);
+MODULE_PARM_DESC(threshold, "space detection threshold (3)");
+#endif
+
+module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
+
+EXPORT_NO_SYMBOLS;
+
+#endif /* MODULE */
diff --git a/ubuntu/lirc/lirc_streamzap/Makefile b/ubuntu/lirc/lirc_streamzap/Makefile
new file mode 100644
index 00000000000..aa332306e62
--- /dev/null
+++ b/ubuntu/lirc/lirc_streamzap/Makefile
@@ -0,0 +1,2 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+obj-$(CONFIG_LIRC_STREAMZAP) += lirc_streamzap.o
diff --git a/ubuntu/lirc/lirc_streamzap/lirc_streamzap.c b/ubuntu/lirc/lirc_streamzap/lirc_streamzap.c
new file mode 100755
index 00000000000..d5e3ea30fcd
--- /dev/null
+++ b/ubuntu/lirc/lirc_streamzap/lirc_streamzap.c
@@ -0,0 +1,888 @@
+/* $Id: lirc_streamzap.c,v 1.48 2009/03/15 09:34:00 lirc Exp $ */
+/*
+ * Streamzap Remote Control driver
+ *
+ * Copyright (c) 2005 Christoph Bartelmus <lirc@bartelmus.de>
+ *
+ * This driver was based on the work of Greg Wickham and Adrian
+ * Dewhurst. It was substantially rewritten to support correct signal
+ * gaps and now maintains a delay buffer, which is used to present
+ * consistent timing behaviour to user space applications. Without the
+ * delay buffer an ugly hack would be required in lircd, which can
+ * cause sluggish signal decoding in certain situations.
+ *
+ * This driver is based on the USB skeleton driver packaged with the
+ * kernel; copyright (C) 2001-2003 Greg Kroah-Hartman (greg@kroah.com)
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)
+#error "*******************************************************"
+#error "Sorry, this driver needs kernel version 2.4.0 or higher"
+#error "*******************************************************"
+#endif
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/module.h>
+#include <linux/smp_lock.h>
+#include <linux/completion.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 18)
+#include <asm/uaccess.h>
+#else
+#include <linux/uaccess.h>
+#endif
+#include <linux/usb.h>
+
+#include "../lirc.h"
+#include "../kcompat.h"
+#include "../lirc_dev/lirc_dev.h"
+
+#define DRIVER_VERSION "$Revision: 1.48 $"
+#define DRIVER_NAME "lirc_streamzap"
+#define DRIVER_DESC "Streamzap Remote Control driver"
+
+static int debug;
+
+#define USB_STREAMZAP_VENDOR_ID 0x0e9c
+#define USB_STREAMZAP_PRODUCT_ID 0x0000
+
+/* Use our own dbg macro */
+#define dprintk(fmt, args...) \
+ do { \
+ if (debug) \
+ printk(KERN_DEBUG DRIVER_NAME "[%d]: " \
+ fmt "\n", ## args); \
+ } while (0)
+
+/* table of devices that work with this driver */
+static struct usb_device_id streamzap_table[] = {
+ /* Streamzap Remote Control */
+ { USB_DEVICE(USB_STREAMZAP_VENDOR_ID, USB_STREAMZAP_PRODUCT_ID) },
+ /* Terminating entry */
+ { }
+};
+
+MODULE_DEVICE_TABLE(usb, streamzap_table);
+
+#define STREAMZAP_PULSE_MASK 0xf0
+#define STREAMZAP_SPACE_MASK 0x0f
+#define STREAMZAP_RESOLUTION 256
+
+/* number of samples buffered */
+#define STREAMZAP_BUFFER_SIZE 128
+
+enum StreamzapDecoderState {
+ PulseSpace,
+ FullPulse,
+ FullSpace,
+ IgnorePulse
+};
+
+/* Structure to hold all of our device specific stuff
+ *
+ * some remarks regarding locking:
+ * theoretically this struct can be accessed from three threads:
+ *
+ * - from lirc_dev through set_use_inc/set_use_dec
+ *
+ * - from the USB layer throuh probe/disconnect/irq
+ *
+ * Careful placement of lirc_register_driver/lirc_unregister_driver
+ * calls will prevent conflicts. lirc_dev makes sure that
+ * set_use_inc/set_use_dec are not being executed and will not be
+ * called after lirc_unregister_driver returns.
+ *
+ * - by the timer callback
+ *
+ * The timer is only running when the device is connected and the
+ * LIRC device is open. Making sure the timer is deleted by
+ * set_use_dec will make conflicts impossible.
+ */
+struct usb_streamzap {
+
+ /* usb */
+ /* save off the usb device pointer */
+ struct usb_device *udev;
+ /* the interface for this device */
+ struct usb_interface *interface;
+
+ /* buffer & dma */
+ unsigned char *buf_in;
+ dma_addr_t dma_in;
+ unsigned int buf_in_len;
+
+ struct usb_endpoint_descriptor *endpoint;
+
+ /* IRQ */
+ struct urb *urb_in;
+
+ /* lirc */
+ struct lirc_driver driver;
+ struct lirc_buffer delay_buf;
+ struct lirc_buffer lirc_buf;
+
+ /* timer used to support delay buffering */
+ struct timer_list delay_timer;
+ int timer_running;
+ spinlock_t timer_lock;
+
+ /* tracks whether we are currently receiving some signal */
+ int idle;
+ /* sum of signal lengths received since signal start */
+ unsigned long sum;
+ /* start time of signal; necessary for gap tracking */
+ struct timeval signal_last;
+ struct timeval signal_start;
+ enum StreamzapDecoderState decoder_state;
+ struct timer_list flush_timer;
+ int flush;
+ int in_use;
+};
+
+
+/* local function prototypes */
+#ifdef KERNEL_2_5
+static int streamzap_probe(struct usb_interface *interface,
+ const struct usb_device_id *id);
+static void streamzap_disconnect(struct usb_interface *interface);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static void usb_streamzap_irq(struct urb *urb, struct pt_regs *regs);
+#else
+static void usb_streamzap_irq(struct urb *urb);
+#endif
+#else
+static void *streamzap_probe(struct usb_device *udev, unsigned int ifnum,
+ const struct usb_device_id *id);
+static void streamzap_disconnect(struct usb_device *dev, void *ptr);
+static void usb_streamzap_irq(struct urb *urb);
+#endif
+static int streamzap_use_inc(void *data);
+static void streamzap_use_dec(void *data);
+static int streamzap_ioctl(struct inode *node, struct file *filep,
+ unsigned int cmd, unsigned long arg);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+static int streamzap_suspend(struct usb_interface *intf, pm_message_t message);
+static int streamzap_resume(struct usb_interface *intf);
+#endif
+
+/* usb specific object needed to register this driver with the usb subsystem */
+
+static struct usb_driver streamzap_driver = {
+ LIRC_THIS_MODULE(.owner = THIS_MODULE)
+ .name = DRIVER_NAME,
+ .probe = streamzap_probe,
+ .disconnect = streamzap_disconnect,
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+ .suspend = streamzap_suspend,
+ .resume = streamzap_resume,
+#endif
+ .id_table = streamzap_table,
+};
+
+static void stop_timer(struct usb_streamzap *sz)
+{
+ unsigned long flags;
+
+ spin_lock_irqsave(&sz->timer_lock, flags);
+ if (sz->timer_running) {
+ sz->timer_running = 0;
+ spin_unlock_irqrestore(&sz->timer_lock, flags);
+ del_timer_sync(&sz->delay_timer);
+ } else {
+ spin_unlock_irqrestore(&sz->timer_lock, flags);
+ }
+}
+
+static void flush_timeout(unsigned long arg)
+{
+ struct usb_streamzap *sz = (struct usb_streamzap *) arg;
+
+ /* finally start accepting data */
+ sz->flush = 0;
+}
+static void delay_timeout(unsigned long arg)
+{
+ unsigned long flags;
+ /* deliver data every 10 ms */
+ static unsigned long timer_inc =
+ (10000/(1000000/HZ)) == 0 ? 1 : (10000/(1000000/HZ));
+ struct usb_streamzap *sz = (struct usb_streamzap *) arg;
+ lirc_t data;
+
+ spin_lock_irqsave(&sz->timer_lock, flags);
+
+ if (!lirc_buffer_empty(&sz->delay_buf) &&
+ !lirc_buffer_full(&sz->lirc_buf)) {
+ lirc_buffer_read(&sz->delay_buf, (unsigned char *) &data);
+ lirc_buffer_write(&sz->lirc_buf, (unsigned char *) &data);
+ }
+ if (!lirc_buffer_empty(&sz->delay_buf)) {
+ while (lirc_buffer_available(&sz->delay_buf) <
+ STREAMZAP_BUFFER_SIZE/2 &&
+ !lirc_buffer_full(&sz->lirc_buf)) {
+ lirc_buffer_read(&sz->delay_buf,
+ (unsigned char *) &data);
+ lirc_buffer_write(&sz->lirc_buf,
+ (unsigned char *) &data);
+ }
+ if (sz->timer_running) {
+ sz->delay_timer.expires = jiffies + timer_inc;
+ add_timer(&sz->delay_timer);
+ }
+ } else {
+ sz->timer_running = 0;
+ }
+
+ if (!lirc_buffer_empty(&sz->lirc_buf))
+ wake_up(&sz->lirc_buf.wait_poll);
+
+ spin_unlock_irqrestore(&sz->timer_lock, flags);
+}
+
+static void flush_delay_buffer(struct usb_streamzap *sz)
+{
+ lirc_t data;
+ int empty = 1;
+
+ while (!lirc_buffer_empty(&sz->delay_buf)) {
+ empty = 0;
+ lirc_buffer_read(&sz->delay_buf, (unsigned char *) &data);
+ if (!lirc_buffer_full(&sz->lirc_buf)) {
+ lirc_buffer_write(&sz->lirc_buf,
+ (unsigned char *) &data);
+ } else {
+ dprintk("buffer overflow", sz->driver.minor);
+ }
+ }
+ if (!empty)
+ wake_up(&sz->lirc_buf.wait_poll);
+}
+
+static void push(struct usb_streamzap *sz, unsigned char *data)
+{
+ unsigned long flags;
+
+ spin_lock_irqsave(&sz->timer_lock, flags);
+ if (lirc_buffer_full(&sz->delay_buf)) {
+ lirc_t data;
+
+ lirc_buffer_read(&sz->delay_buf, (unsigned char *) &data);
+ if (!lirc_buffer_full(&sz->lirc_buf)) {
+ lirc_buffer_write(&sz->lirc_buf,
+ (unsigned char *) &data);
+ } else {
+ dprintk("buffer overflow", sz->driver.minor);
+ }
+ }
+
+ lirc_buffer_write(&sz->delay_buf, data);
+
+ if (!sz->timer_running) {
+ sz->delay_timer.expires = jiffies + HZ/10;
+ add_timer(&sz->delay_timer);
+ sz->timer_running = 1;
+ }
+
+ spin_unlock_irqrestore(&sz->timer_lock, flags);
+}
+
+static void push_full_pulse(struct usb_streamzap *sz,
+ unsigned char value)
+{
+ lirc_t pulse;
+
+ if (sz->idle) {
+ long deltv;
+ lirc_t tmp;
+
+ sz->signal_last = sz->signal_start;
+ do_gettimeofday(&sz->signal_start);
+
+ deltv = sz->signal_start.tv_sec-sz->signal_last.tv_sec;
+ if (deltv > 15) {
+ tmp = PULSE_MASK; /* really long time */
+ } else {
+ tmp = (lirc_t) (deltv*1000000+
+ sz->signal_start.tv_usec -
+ sz->signal_last.tv_usec);
+ tmp -= sz->sum;
+ }
+ dprintk("ls %u", sz->driver.minor, tmp);
+ push(sz, (char *)&tmp);
+
+ sz->idle = 0;
+ sz->sum = 0;
+ }
+
+ pulse = ((lirc_t) value)*STREAMZAP_RESOLUTION;
+ pulse += STREAMZAP_RESOLUTION/2;
+ sz->sum += pulse;
+ pulse |= PULSE_BIT;
+
+ dprintk("p %u", sz->driver.minor, pulse&PULSE_MASK);
+ push(sz, (char *)&pulse);
+}
+
+static void push_half_pulse(struct usb_streamzap *sz,
+ unsigned char value)
+{
+ push_full_pulse(sz, (value & STREAMZAP_PULSE_MASK)>>4);
+}
+
+static void push_full_space(struct usb_streamzap *sz,
+ unsigned char value)
+{
+ lirc_t space;
+
+ space = ((lirc_t) value)*STREAMZAP_RESOLUTION;
+ space += STREAMZAP_RESOLUTION/2;
+ sz->sum += space;
+ dprintk("s %u", sz->driver.minor, space);
+ push(sz, (char *)&space);
+}
+
+static void push_half_space(struct usb_streamzap *sz,
+ unsigned char value)
+{
+ push_full_space(sz, value & STREAMZAP_SPACE_MASK);
+}
+
+/**
+ * usb_streamzap_irq - IRQ handler
+ *
+ * This procedure is invoked on reception of data from
+ * the usb remote.
+ */
+#if defined(KERNEL_2_5) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static void usb_streamzap_irq(struct urb *urb, struct pt_regs *regs)
+#else
+static void usb_streamzap_irq(struct urb *urb)
+#endif
+{
+ struct usb_streamzap *sz;
+ int len;
+ unsigned int i = 0;
+
+ if (!urb)
+ return;
+
+ sz = urb->context;
+ len = urb->actual_length;
+
+ switch (urb->status) {
+ case -ECONNRESET:
+ case -ENOENT:
+ case -ESHUTDOWN:
+ /*
+ * this urb is terminated, clean up.
+ * sz might already be invalid at this point
+ */
+ dprintk("urb status: %d", -1, urb->status);
+ return;
+ default:
+ break;
+ }
+
+ dprintk("received %d", sz->driver.minor, urb->actual_length);
+ if (!sz->flush) {
+ for (i = 0; i < urb->actual_length; i++) {
+ dprintk("%d: %x", sz->driver.minor,
+ i, (unsigned char) sz->buf_in[i]);
+ switch (sz->decoder_state) {
+ case PulseSpace:
+ if ((sz->buf_in[i]&STREAMZAP_PULSE_MASK) ==
+ STREAMZAP_PULSE_MASK) {
+ sz->decoder_state = FullPulse;
+ continue;
+ } else if ((sz->buf_in[i]&STREAMZAP_SPACE_MASK)
+ == STREAMZAP_SPACE_MASK) {
+ push_half_pulse(sz, sz->buf_in[i]);
+ sz->decoder_state = FullSpace;
+ continue;
+ } else {
+ push_half_pulse(sz, sz->buf_in[i]);
+ push_half_space(sz, sz->buf_in[i]);
+ }
+ break;
+ case FullPulse:
+ push_full_pulse(sz, sz->buf_in[i]);
+ sz->decoder_state = IgnorePulse;
+ break;
+ case FullSpace:
+ if (sz->buf_in[i] == 0xff) {
+ sz->idle = 1;
+ stop_timer(sz);
+ flush_delay_buffer(sz);
+ } else
+ push_full_space(sz, sz->buf_in[i]);
+ sz->decoder_state = PulseSpace;
+ break;
+ case IgnorePulse:
+ if ((sz->buf_in[i]&STREAMZAP_SPACE_MASK) ==
+ STREAMZAP_SPACE_MASK) {
+ sz->decoder_state = FullSpace;
+ continue;
+ }
+ push_half_space(sz, sz->buf_in[i]);
+ sz->decoder_state = PulseSpace;
+ break;
+ }
+ }
+ }
+
+#ifdef KERNEL_2_5
+ usb_submit_urb(urb, GFP_ATOMIC);
+#endif
+
+ return;
+}
+
+static struct file_operations streamzap_fops = {
+ .owner = THIS_MODULE,
+ .ioctl = streamzap_ioctl,
+};
+
+
+/**
+ * streamzap_probe
+ *
+ * Called by usb-core to associated with a candidate device
+ * On any failure the return value is the ERROR
+ * On success return 0
+ */
+#ifdef KERNEL_2_5
+static int streamzap_probe(struct usb_interface *interface,
+ const struct usb_device_id *id)
+{
+ struct usb_device *udev = interface_to_usbdev(interface);
+ struct usb_host_interface *iface_host;
+#else
+static void *streamzap_probe(struct usb_device *udev, unsigned int ifnum,
+ const struct usb_device_id *id)
+{
+ struct usb_interface *interface = &udev->actconfig->interface[ifnum];
+ struct usb_interface_descriptor *iface_host;
+#endif
+ int retval = -ENOMEM;
+ struct usb_streamzap *sz = NULL;
+ char buf[63], name[128] = "";
+
+ /* Allocate space for device driver specific data */
+ sz = kzalloc(sizeof(struct usb_streamzap), GFP_KERNEL);
+ if (sz == NULL)
+ goto error;
+
+ sz->udev = udev;
+ sz->interface = interface;
+
+ /* Check to ensure endpoint information matches requirements */
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 5)
+ iface_host = &interface->altsetting[interface->act_altsetting];
+#else
+ iface_host = interface->cur_altsetting;
+#endif
+
+#ifdef KERNEL_2_5
+ if (iface_host->desc.bNumEndpoints != 1) {
+#else
+ if (iface_host->bNumEndpoints != 1) {
+#endif
+#ifdef KERNEL_2_5
+ err("%s: Unexpected desc.bNumEndpoints (%d)", __func__,
+ iface_host->desc.bNumEndpoints);
+#else
+ err("%s: Unexpected desc.bNumEndpoints (%d)", __func__,
+ iface_host->bNumEndpoints);
+#endif
+ retval = -ENODEV;
+ goto error;
+ }
+
+#ifdef KERNEL_2_5
+ sz->endpoint = &(iface_host->endpoint[0].desc);
+#else
+ sz->endpoint = &(iface_host->endpoint[0]);
+#endif
+ if ((sz->endpoint->bEndpointAddress & USB_ENDPOINT_DIR_MASK)
+ != USB_DIR_IN) {
+ err("%s: endpoint doesn't match input device 02%02x",
+ __func__, sz->endpoint->bEndpointAddress);
+ retval = -ENODEV;
+ goto error;
+ }
+
+ if ((sz->endpoint->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK)
+ != USB_ENDPOINT_XFER_INT) {
+ err("%s: endpoint attributes don't match xfer 02%02x",
+ __func__, sz->endpoint->bmAttributes);
+ retval = -ENODEV;
+ goto error;
+ }
+
+ if (sz->endpoint->wMaxPacketSize == 0) {
+ err("%s: endpoint message size==0? ", __func__);
+ retval = -ENODEV;
+ goto error;
+ }
+
+ /* Allocate the USB buffer and IRQ URB */
+
+ sz->buf_in_len = sz->endpoint->wMaxPacketSize;
+#ifdef KERNEL_2_5
+ sz->buf_in = usb_alloc_coherent(sz->udev, sz->buf_in_len,
+ GFP_ATOMIC, &sz->dma_in);
+#else
+ sz->buf_in = kmalloc(sz->buf_in_len, GFP_KERNEL);
+#endif
+ if (sz->buf_in == NULL)
+ goto error;
+
+#ifdef KERNEL_2_5
+ sz->urb_in = usb_alloc_urb(0, GFP_KERNEL);
+#else
+
+ sz->urb_in = usb_alloc_urb(0);
+#endif
+ if (sz->urb_in == NULL)
+ goto error;
+
+ /* Connect this device to the LIRC sub-system */
+
+ if (lirc_buffer_init(&sz->lirc_buf, sizeof(lirc_t),
+ STREAMZAP_BUFFER_SIZE))
+ goto error;
+
+ if (lirc_buffer_init(&sz->delay_buf, sizeof(lirc_t),
+ STREAMZAP_BUFFER_SIZE)) {
+ lirc_buffer_free(&sz->lirc_buf);
+ goto error;
+ }
+
+ strcpy(sz->driver.name, DRIVER_NAME);
+ sz->driver.minor = -1;
+ sz->driver.sample_rate = 0;
+ sz->driver.code_length = sizeof(lirc_t) * 8;
+ sz->driver.features = LIRC_CAN_REC_MODE2 | LIRC_CAN_GET_REC_RESOLUTION;
+ sz->driver.data = sz;
+ sz->driver.rbuf = &sz->lirc_buf;
+ sz->driver.set_use_inc = &streamzap_use_inc;
+ sz->driver.set_use_dec = &streamzap_use_dec;
+ sz->driver.fops = &streamzap_fops;
+#ifdef LIRC_HAVE_SYSFS
+ sz->driver.dev = &interface->dev;
+#endif
+ sz->driver.owner = THIS_MODULE;
+
+ sz->idle = 1;
+ sz->decoder_state = PulseSpace;
+ init_timer(&sz->delay_timer);
+ sz->delay_timer.function = delay_timeout;
+ sz->delay_timer.data = (unsigned long) sz;
+ sz->timer_running = 0;
+ spin_lock_init(&sz->timer_lock);
+
+ init_timer(&sz->flush_timer);
+ sz->flush_timer.function = flush_timeout;
+ sz->flush_timer.data = (unsigned long) sz;
+ /* Complete final initialisations */
+
+ usb_fill_int_urb(sz->urb_in, udev,
+ usb_rcvintpipe(udev, sz->endpoint->bEndpointAddress),
+ sz->buf_in, sz->buf_in_len, usb_streamzap_irq, sz,
+ sz->endpoint->bInterval);
+#ifdef KERNEL_2_5
+ sz->urb_in->transfer_dma = sz->dma_in;
+ sz->urb_in->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
+#endif
+
+ if (udev->descriptor.iManufacturer
+ && usb_string(udev, udev->descriptor.iManufacturer,
+ buf, sizeof(buf)) > 0)
+ strlcpy(name, buf, sizeof(name));
+
+ if (udev->descriptor.iProduct
+ && usb_string(udev, udev->descriptor.iProduct,
+ buf, sizeof(buf)) > 0)
+ snprintf(name + strlen(name), sizeof(name) - strlen(name),
+ " %s", buf);
+
+ printk(KERN_INFO DRIVER_NAME "[%d]: %s on usb%d:%d attached\n",
+ sz->driver.minor, name,
+ udev->bus->busnum, sz->udev->devnum);
+
+#ifdef KERNEL_2_5
+ usb_set_intfdata(interface, sz);
+#endif
+
+ if (lirc_register_driver(&sz->driver) < 0) {
+ lirc_buffer_free(&sz->delay_buf);
+ lirc_buffer_free(&sz->lirc_buf);
+ goto error;
+ }
+
+#ifdef KERNEL_2_5
+ return 0;
+#else
+ return sz;
+#endif
+
+error:
+
+ /*
+ * Premise is that a 'goto error' can be invoked from inside the
+ * probe function and all necessary cleanup actions will be taken
+ * including freeing any necessary memory blocks
+ */
+
+ if (retval == -ENOMEM)
+ err("Out of memory");
+
+ if (sz) {
+ usb_free_urb(sz->urb_in);
+#ifdef KERNEL_2_5
+ usb_free_coherent(udev, sz->buf_in_len, sz->buf_in, sz->dma_in);
+#else
+ if (sz->buf_in) {
+ kfree(sz->buf_in);
+ }
+#endif
+ kfree(sz);
+ }
+
+#ifdef KERNEL_2_5
+ return retval;
+#else
+ return NULL;
+#endif
+}
+
+static int streamzap_use_inc(void *data)
+{
+ struct usb_streamzap *sz = data;
+
+ if (!sz) {
+ dprintk("%s called with no context", -1, __func__);
+ return -EINVAL;
+ }
+ dprintk("set use inc", sz->driver.minor);
+ MOD_INC_USE_COUNT;
+
+ lirc_buffer_clear(&sz->lirc_buf);
+ lirc_buffer_clear(&sz->delay_buf);
+
+ sz->flush_timer.expires = jiffies + HZ;
+ sz->flush = 1;
+ add_timer(&sz->flush_timer);
+
+ sz->urb_in->dev = sz->udev;
+#ifdef KERNEL_2_5
+ if (usb_submit_urb(sz->urb_in, GFP_ATOMIC)) {
+#else
+ if (usb_submit_urb(sz->urb_in)) {
+#endif
+ dprintk("open result = -EIO error submitting urb",
+ sz->driver.minor);
+ MOD_DEC_USE_COUNT;
+ return -EIO;
+ }
+ sz->in_use++;
+
+ return 0;
+}
+
+static void streamzap_use_dec(void *data)
+{
+ struct usb_streamzap *sz = data;
+
+ if (!sz) {
+ dprintk("%s called with no context", -1, __func__);
+ return;
+ }
+ dprintk("set use dec", sz->driver.minor);
+
+ if (sz->flush) {
+ sz->flush = 0;
+ del_timer_sync(&sz->flush_timer);
+ }
+
+ usb_kill_urb(sz->urb_in);
+
+ stop_timer(sz);
+
+ MOD_DEC_USE_COUNT;
+ sz->in_use--;
+}
+
+static int streamzap_ioctl(struct inode *node, struct file *filep,
+ unsigned int cmd, unsigned long arg)
+{
+ int result;
+
+ switch (cmd) {
+ case LIRC_GET_REC_RESOLUTION:
+ result = put_user(STREAMZAP_RESOLUTION, (unsigned int *) arg);
+ if (result)
+ return result;
+ break;
+ default:
+ return -ENOIOCTLCMD;
+ }
+ return 0;
+}
+
+/**
+ * streamzap_disconnect
+ *
+ * Called by the usb core when the device is removed from the system.
+ *
+ * This routine guarantees that the driver will not submit any more urbs
+ * by clearing dev->udev. It is also supposed to terminate any currently
+ * active urbs. Unfortunately, usb_bulk_msg(), used in streamzap_read(),
+ * does not provide any way to do this.
+ */
+#ifdef KERNEL_2_5
+static void streamzap_disconnect(struct usb_interface *interface)
+#else
+static void streamzap_disconnect(struct usb_device *dev, void *ptr)
+#endif
+{
+ struct usb_streamzap *sz;
+ int errnum;
+ int minor;
+
+#ifdef KERNEL_2_5
+ sz = usb_get_intfdata(interface);
+#else
+ sz = ptr;
+#endif
+
+ /* unregister from the LIRC sub-system */
+
+ errnum = lirc_unregister_driver(sz->driver.minor);
+ if (errnum != 0)
+ dprintk("error in lirc_unregister: (returned %d)",
+ sz->driver.minor, errnum);
+
+ lirc_buffer_free(&sz->delay_buf);
+ lirc_buffer_free(&sz->lirc_buf);
+
+ /* unregister from the USB sub-system */
+
+ usb_free_urb(sz->urb_in);
+
+#ifdef KERNEL_2_5
+ usb_free_coherent(sz->udev, sz->buf_in_len, sz->buf_in, sz->dma_in);
+#else
+ kfree(sz->buf_in);
+#endif
+
+ minor = sz->driver.minor;
+ kfree(sz);
+
+ printk(KERN_INFO DRIVER_NAME "[%d]: disconnected\n", minor);
+}
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
+static int streamzap_suspend(struct usb_interface *intf, pm_message_t message)
+{
+ struct usb_streamzap *sz = usb_get_intfdata(intf);
+
+ printk(KERN_INFO DRIVER_NAME "[%d]: suspend\n", sz->driver.minor);
+ if (sz->in_use) {
+ if (sz->flush) {
+ sz->flush = 0;
+ del_timer_sync(&sz->flush_timer);
+ }
+
+ stop_timer(sz);
+
+ usb_kill_urb(sz->urb_in);
+ }
+ return 0;
+}
+
+static int streamzap_resume(struct usb_interface *intf)
+{
+ struct usb_streamzap *sz = usb_get_intfdata(intf);
+
+ lirc_buffer_clear(&sz->lirc_buf);
+ lirc_buffer_clear(&sz->delay_buf);
+
+ if (sz->in_use) {
+ sz->flush_timer.expires = jiffies + HZ;
+ sz->flush = 1;
+ add_timer(&sz->flush_timer);
+
+ sz->urb_in->dev = sz->udev;
+#ifdef KERNEL_2_5
+ if (usb_submit_urb(sz->urb_in, GFP_ATOMIC)) {
+#else
+ if (usb_submit_urb(sz->urb_in)) {
+#endif
+ dprintk("open result = -EIO error submitting urb",
+ sz->driver.minor);
+ MOD_DEC_USE_COUNT;
+ return -EIO;
+ }
+ }
+ return 0;
+}
+#endif
+
+#ifdef MODULE
+/**
+ * usb_streamzap_init
+ */
+static int __init usb_streamzap_init(void)
+{
+ int result;
+
+ /* register this driver with the USB subsystem */
+ result = usb_register(&streamzap_driver);
+
+ if (result) {
+ err("usb_register failed. Error number %d",
+ result);
+ return result;
+ }
+
+ printk(KERN_INFO DRIVER_NAME " " DRIVER_VERSION " registered\n");
+ return 0;
+}
+
+/**
+ * usb_streamzap_exit
+ */
+static void __exit usb_streamzap_exit(void)
+{
+ usb_deregister(&streamzap_driver);
+}
+
+
+module_init(usb_streamzap_init);
+module_exit(usb_streamzap_exit);
+
+MODULE_AUTHOR("Christoph Bartelmus, Greg Wickham, Adrian Dewhurst");
+MODULE_DESCRIPTION(DRIVER_DESC);
+MODULE_LICENSE("GPL");
+
+module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
+EXPORT_NO_SYMBOLS;
+#endif /* MODULE */
diff --git a/ubuntu/lirc/lirc_ttusbir/Makefile b/ubuntu/lirc/lirc_ttusbir/Makefile
new file mode 100644
index 00000000000..aee214f4120
--- /dev/null
+++ b/ubuntu/lirc/lirc_ttusbir/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_TTUSBIR) += lirc_ttusbir.o
diff --git a/ubuntu/lirc/lirc_ttusbir/lirc_ttusbir.c b/ubuntu/lirc/lirc_ttusbir/lirc_ttusbir.c
new file mode 100644
index 00000000000..36cf51981c7
--- /dev/null
+++ b/ubuntu/lirc/lirc_ttusbir/lirc_ttusbir.c
@@ -0,0 +1,410 @@
+/*
+ * lirc_ttusbir.c
+ *
+ * lirc_ttusbir - LIRC device driver for the TechnoTrend USB IR Receiver
+ *
+ * Copyright (C) 2007 Stefan Macher <st_maker-lirc@yahoo.de>
+ *
+ * This LIRC driver provides access to the TechnoTrend USB IR Receiver.
+ * The receiver delivers the IR signal as raw sampled true/false data in
+ * isochronous USB packets each of size 128 byte.
+ * Currently the driver reduces the sampling rate by factor of 8 as this
+ * is still more than enough to decode RC-5 - others should be analyzed.
+ * But the driver does not rely on RC-5 it should be able to decode every
+ * IR signal that is not too fast.
+ */
+
+/*
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include <linux/version.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/errno.h>
+#include <linux/slab.h>
+#include <linux/usb.h>
+
+#include "../lirc.h"
+#include "../kcompat.h"
+#include "../lirc_dev/lirc_dev.h"
+
+MODULE_DESCRIPTION("TechnoTrend USB IR device driver for LIRC");
+MODULE_AUTHOR("Stefan Macher (st_maker-lirc@yahoo.de)");
+MODULE_LICENSE("GPL");
+
+/* #define DEBUG */
+#ifdef DEBUG
+#define DPRINTK printk
+#else
+#define DPRINTK(_x_, a...)
+#endif
+
+/* function declarations */
+static int probe(struct usb_interface *intf, const struct usb_device_id *id);
+static void disconnect(struct usb_interface *intf);
+#if defined(KERNEL_2_5) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static void urb_complete(struct urb *urb, struct pt_regs *pt_regs);
+#else
+static void urb_complete(struct urb *urb);
+#endif
+static int set_use_inc(void *data);
+static void set_use_dec(void *data);
+
+static int num_urbs = 2;
+module_param(num_urbs, int, S_IRUGO);
+MODULE_PARM_DESC(num_urbs,
+ "Number of URBs in queue. Try to increase to 4 in case "
+ "of problems (default: 2; minimum: 2)");
+
+/* table of devices that work with this driver */
+static struct usb_device_id device_id_table[] = {
+ /* TechnoTrend USB IR Receiver */
+ { USB_DEVICE(0x0B48, 0x2003) },
+ /* Terminating entry */
+ { }
+};
+MODULE_DEVICE_TABLE(usb, device_id_table);
+
+/* USB driver definition */
+static struct usb_driver usb_driver = {
+ .name = "TTUSBIR",
+ .id_table = &(device_id_table[0]),
+ .probe = probe,
+ .disconnect = disconnect,
+};
+
+/* USB device definition */
+struct ttusbir_device {
+ struct usb_driver *usb_driver;
+ struct usb_device *udev;
+ struct usb_interface *interf;
+ struct usb_class_driver class_driver;
+ unsigned int ifnum; /* Interface number to use */
+ unsigned int alt_setting; /* alternate setting to use */
+ unsigned int endpoint; /* Endpoint to use */
+ struct urb **urb; /* num_urb URB pointers*/
+ char **buffer; /* 128 byte buffer for each URB */
+ struct lirc_buffer rbuf; /* Buffer towards LIRC */
+ struct lirc_driver driver;
+ int minor;
+ int last_pulse; /* remembers if last received byte was pulse or space */
+ int last_num; /* remembers how many last bytes appeared */
+ int opened;
+};
+
+/*** LIRC specific functions ***/
+static int set_use_inc(void *data)
+{
+ int i, retval;
+ struct ttusbir_device *ttusbir = data;
+
+ DPRINTK("Sending first URBs\n");
+ /* @TODO Do I need to check if I am already opened */
+ ttusbir->opened = 1;
+
+ for (i = 0; i < num_urbs; i++) {
+ retval = usb_submit_urb(ttusbir->urb[i], GFP_KERNEL);
+ if (retval) {
+ err("%s: usb_submit_urb failed on urb %d",
+ __func__, i);
+ return retval;
+ }
+ }
+ return 0;
+}
+
+static void set_use_dec(void *data)
+{
+ struct ttusbir_device *ttusbir = data;
+
+ DPRINTK("Device closed\n");
+
+ ttusbir->opened = 0;
+}
+
+/*** USB specific functions ***/
+
+/*
+ * This mapping table is used to do a very simple filtering of the
+ * input signal.
+ * For a value with at least 4 bits set it returns 0xFF otherwise
+ * 0x00. For faster IR signals this can not be used. But for RC-5 we
+ * still have about 14 samples per pulse/space, i.e. we sample with 14
+ * times higher frequency than the signal frequency
+ */
+const unsigned char map_table[] =
+{
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF,
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x00, 0x00, 0x00, 0xFF, 0x00, 0xFF, 0xFF, 0xFF,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
+};
+
+#if defined(KERNEL_2_5) && LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 19)
+static void urb_complete(struct urb *urb, struct pt_regs *pt_regs)
+#else
+static void urb_complete(struct urb *urb)
+#endif
+{
+ struct ttusbir_device *ttusbir;
+ unsigned char *buf;
+ int i;
+ lirc_t l;
+
+ ttusbir = urb->context;
+
+ if (!ttusbir->opened)
+ return;
+
+ buf = (unsigned char *)urb->transfer_buffer;
+
+ for (i = 0; i < 128; i++) {
+ /* Here we do the filtering and some kind of down sampling */
+ buf[i] = ~map_table[buf[i]];
+ if (ttusbir->last_pulse == buf[i]) {
+ if (ttusbir->last_num < PULSE_MASK/63)
+ ttusbir->last_num++;
+ /*
+ * else we are in a idle period and do not need to
+ * increment any longer
+ */
+ } else {
+ l = ttusbir->last_num * 62; /* about 62 = us/byte */
+ if (ttusbir->last_pulse) /* pulse or space? */
+ l |= PULSE_BIT;
+ if (!lirc_buffer_full(&ttusbir->rbuf)) {
+ lirc_buffer_write(&ttusbir->rbuf, (void *)&l);
+ wake_up_interruptible(&ttusbir->rbuf.wait_poll);
+ }
+ ttusbir->last_num = 0;
+ ttusbir->last_pulse = buf[i];
+ }
+ }
+ usb_submit_urb(urb, GFP_ATOMIC); /* keep data rolling :-) */
+}
+
+/*
+ * Called whenever the USB subsystem thinks we could be the right driver
+ * to handle this device
+ */
+static int probe(struct usb_interface *intf, const struct usb_device_id *id)
+{
+ int alt_set, endp;
+ int found = 0;
+ int i, j;
+ int struct_size;
+ struct usb_host_interface *host_interf;
+ struct usb_interface_descriptor *interf_desc;
+ struct usb_host_endpoint *host_endpoint;
+ struct ttusbir_device *ttusbir;
+
+ DPRINTK("Module ttusbir probe\n");
+
+ /* To reduce memory fragmentation we use only one allocation */
+ struct_size = sizeof(struct ttusbir_device) +
+ (sizeof(struct urb *) * num_urbs) +
+ (sizeof(char *) * num_urbs) +
+ (num_urbs * 128);
+ ttusbir = kzalloc(struct_size, GFP_KERNEL);
+ if (!ttusbir)
+ return -ENOMEM;
+
+ ttusbir->urb = (struct urb **)((char *)ttusbir +
+ sizeof(struct ttusbir_device));
+ ttusbir->buffer = (char **)((char *)ttusbir->urb +
+ (sizeof(struct urb *) * num_urbs));
+ for (i = 0; i < num_urbs; i++)
+ ttusbir->buffer[i] = (char *)ttusbir->buffer +
+ (sizeof(char *)*num_urbs) + (i * 128);
+
+ ttusbir->usb_driver = &usb_driver;
+ ttusbir->alt_setting = -1;
+ /* @TODO check if error can be returned */
+ ttusbir->udev = usb_get_dev(interface_to_usbdev(intf));
+ ttusbir->interf = intf;
+ ttusbir->last_pulse = 0x00;
+ ttusbir->last_num = 0;
+
+ /*
+ * Now look for interface setting we can handle
+ * We are searching for the alt setting where end point
+ * 0x82 has max packet size 16
+ */
+ for (alt_set = 0; alt_set < intf->num_altsetting && !found; alt_set++) {
+ host_interf = &intf->altsetting[alt_set];
+ interf_desc = &host_interf->desc;
+ for (endp = 0; endp < interf_desc->bNumEndpoints; endp++) {
+ host_endpoint = &host_interf->endpoint[endp];
+ if ((host_endpoint->desc.bEndpointAddress == 0x82) &&
+ (host_endpoint->desc.wMaxPacketSize == 0x10)) {
+ ttusbir->alt_setting = alt_set;
+ ttusbir->endpoint = endp;
+ found = 1;
+ break;
+ }
+ }
+ }
+ if (ttusbir->alt_setting != -1)
+ DPRINTK("alt setting: %d\n", ttusbir->alt_setting);
+ else {
+ err("Could not find alternate setting\n");
+ kfree(ttusbir);
+ return -EINVAL;
+ }
+
+ /* OK lets setup this interface setting */
+ usb_set_interface(ttusbir->udev, 0, ttusbir->alt_setting);
+
+ /* Store device info in interface structure */
+ usb_set_intfdata(intf, ttusbir);
+
+ /* Register as a LIRC driver */
+ if (lirc_buffer_init(&ttusbir->rbuf, sizeof(lirc_t), 256) < 0) {
+ err("Could not get memory for LIRC data buffer\n");
+ usb_set_intfdata(intf, NULL);
+ kfree(ttusbir);
+ return -ENOMEM;
+ }
+ strcpy(ttusbir->driver.name, "TTUSBIR");
+ ttusbir->driver.minor = -1;
+ ttusbir->driver.code_length = 1;
+ ttusbir->driver.sample_rate = 0;
+ ttusbir->driver.data = ttusbir;
+ ttusbir->driver.add_to_buf = NULL;
+#ifndef LIRC_REMOVE_DURING_EXPORT
+ ttusbir->driver.get_queue = NULL;
+#endif
+ ttusbir->driver.rbuf = &ttusbir->rbuf;
+ ttusbir->driver.set_use_inc = set_use_inc;
+ ttusbir->driver.set_use_dec = set_use_dec;
+ ttusbir->driver.fops = NULL;
+ ttusbir->driver.dev = &intf->dev;
+ ttusbir->driver.owner = THIS_MODULE;
+ ttusbir->driver.features = LIRC_CAN_REC_MODE2;
+ ttusbir->minor = lirc_register_driver(&ttusbir->driver);
+ if (ttusbir->minor < 0) {
+ err("Error registering as LIRC driver\n");
+ usb_set_intfdata(intf, NULL);
+ lirc_buffer_free(&ttusbir->rbuf);
+ kfree(ttusbir);
+ return -EIO;
+ }
+
+ /* Allocate and setup the URB that we will use to talk to the device */
+ for (i = 0; i < num_urbs; i++) {
+ ttusbir->urb[i] = usb_alloc_urb(8, GFP_KERNEL);
+ if (!ttusbir->urb[i]) {
+ err("Could not allocate memory for the URB\n");
+ for (j = i - 1; j >= 0; j--)
+ kfree(ttusbir->urb[j]);
+ lirc_buffer_free(&ttusbir->rbuf);
+ lirc_unregister_driver(ttusbir->minor);
+ kfree(ttusbir);
+ usb_set_intfdata(intf, NULL);
+ return -ENOMEM;
+ }
+ ttusbir->urb[i]->dev = ttusbir->udev;
+ ttusbir->urb[i]->context = ttusbir;
+ ttusbir->urb[i]->pipe = usb_rcvisocpipe(ttusbir->udev,
+ ttusbir->endpoint);
+ ttusbir->urb[i]->interval = 1;
+ ttusbir->urb[i]->transfer_flags = URB_ISO_ASAP;
+ ttusbir->urb[i]->transfer_buffer = &ttusbir->buffer[i][0];
+ ttusbir->urb[i]->complete = urb_complete;
+ ttusbir->urb[i]->number_of_packets = 8;
+ ttusbir->urb[i]->transfer_buffer_length = 128;
+ for (j = 0; j < 8; j++) {
+ ttusbir->urb[i]->iso_frame_desc[j].offset = j*16;
+ ttusbir->urb[i]->iso_frame_desc[j].length = 16;
+ }
+ }
+ return 0;
+}
+
+/**
+ * Called when the driver is unloaded or the device is unplugged
+ */
+static void disconnect(struct usb_interface *intf)
+{
+ int i;
+ struct ttusbir_device *ttusbir;
+
+ DPRINTK("Module ttusbir disconnect\n");
+
+ ttusbir = (struct ttusbir_device *) usb_get_intfdata(intf);
+ usb_set_intfdata(intf, NULL);
+ lirc_unregister_driver(ttusbir->minor);
+ DPRINTK("unregistered\n");
+
+ for (i = 0; i < num_urbs; i++) {
+ usb_kill_urb(ttusbir->urb[i]);
+ usb_free_urb(ttusbir->urb[i]);
+ }
+ DPRINTK("URBs killed\n");
+ lirc_buffer_free(&ttusbir->rbuf);
+ kfree(ttusbir);
+}
+
+static int ttusbir_init_module(void)
+{
+ int result;
+
+ DPRINTK(KERN_DEBUG "Module ttusbir init\n");
+
+ /* register this driver with the USB subsystem */
+ result = usb_register(&usb_driver);
+ if (result)
+ err("usb_register failed. Error number %d", result);
+ return result;
+}
+
+static void ttusbir_exit_module(void)
+{
+ printk(KERN_DEBUG "Module ttusbir exit\n");
+ usb_deregister(&usb_driver);
+}
+
+module_init(ttusbir_init_module);
+module_exit(ttusbir_exit_module);
diff --git a/ubuntu/lirc/lirc_wpc8769l/Makefile b/ubuntu/lirc/lirc_wpc8769l/Makefile
new file mode 100644
index 00000000000..9f828e7fb7e
--- /dev/null
+++ b/ubuntu/lirc/lirc_wpc8769l/Makefile
@@ -0,0 +1,3 @@
+EXTRA_CFLAGS =-DIRCTL_DEV_MAJOR=61 -DLIRC_SERIAL_TRANSMITTER -DLIRC_SERIAL_SOFTCARRIER -I$(src)/..
+
+obj-$(CONFIG_LIRC_WPC8769l) += lirc_wpc8769l.o
diff --git a/ubuntu/lirc/lirc_wpc8769l/lirc_wpc8769l.c b/ubuntu/lirc/lirc_wpc8769l/lirc_wpc8769l.c
new file mode 100644
index 00000000000..99c325e0877
--- /dev/null
+++ b/ubuntu/lirc/lirc_wpc8769l/lirc_wpc8769l.c
@@ -0,0 +1,1177 @@
+/* $Id: lirc_wpc8769l.c,v 1.8 2009/03/15 09:34:01 lirc Exp $ */
+
+/****************************************************************************
+ ** lirc_wpc8769l.c ****************************************************
+ ****************************************************************************
+ *
+ * lirc_wpc8769l - Device driver for the integrated CIR receiver found in
+ * Acer Aspire 6530G (and probably other models), based on
+ * the Winbond 8769L embedded controller.
+ * (Written using the lirc_serial driver as a guide).
+ *
+ * Copyright (C) 2008, 2009 Juan J. Garcia de Soria <skandalfo@gmail.com>
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#ifdef HAVE_CONFIG_H
+# include <config.h>
+#endif
+
+#include <linux/version.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 2, 18)
+#error "**********************************************************"
+#error " Sorry, this driver needs kernel version 2.2.18 or higher "
+#error "**********************************************************"
+#endif
+
+#include <linux/module.h>
+#include <linux/errno.h>
+#include <linux/fs.h>
+#include <linux/interrupt.h>
+#include <linux/ioport.h>
+#include <linux/time.h>
+#include <linux/timer.h>
+#include <linux/types.h>
+#include <linux/poll.h>
+
+#include <linux/bitops.h>
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 16)
+#include <asm/io.h>
+#else
+#include <linux/io.h>
+#endif
+#include <linux/irq.h>
+
+#include <linux/acpi.h>
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+#include <linux/platform_device.h>
+#endif
+
+#include "../lirc.h"
+#include "../kcompat.h"
+#include "../lirc_dev/lirc_dev.h"
+
+#include "lirc_wpc8769l.h"
+
+/* Name of the lirc device. */
+#define LIRC_DRIVER_NAME "lirc_wpc8769l"
+
+#define dprintk(fmt, args...) \
+ do { \
+ if (debug) \
+ printk(KERN_DEBUG LIRC_DRIVER_NAME ": " \
+ fmt, ## args); \
+ } while (0)
+
+#define wprintk(fmt, args...) \
+ do { \
+ printk(KERN_WARN LIRC_DRIVER_NAME ": " \
+ fmt, ## args); \
+ } while (0)
+
+#define eprintk(fmt, args...) \
+ do { \
+ printk(KERN_ERR LIRC_DRIVER_NAME ": " \
+ fmt, ## args); \
+ } while (0)
+
+#define iprintk(fmt, args...) \
+ do { \
+ printk(KERN_INFO LIRC_DRIVER_NAME ": " \
+ fmt, ## args); \
+ } while (0)
+
+/* Number of driver->lirc-dev buffer elements. */
+#define RBUF_LEN 256
+
+/* Number of 0xff bytes received in a row. */
+static unsigned int wpc8769l_ff_bytes_in_a_row;
+
+/* Hardware resource parameters. */
+static unsigned int baseport1;
+static unsigned int baseport2;
+static unsigned int irq;
+
+/* Debugging flag. */
+static int debug;
+
+/* If true, we skip ACPI autodetection and use the parameter-supplied I/O and
+ * IRQ. */
+static int skip_probe;
+
+/* Whether the device is open or not. */
+static int lirc_wpc8769l_is_open;
+
+/* Code disabled since it didn't seem to work with the test hardware. */
+/*#define LIRC_WPC8769L_WAKEUP*/
+#ifdef LIRC_WPC8769L_WAKEUP
+/* These parameters are taken from the driver for MS Windows Vista.
+ * The specific values used for your hardware may be found at this registry
+ * key:
+ *
+ * HKEY_LOCAL_MACHINE/CurrentControlSet/Services/Winbond CIR/PowerKey
+ */
+static int protocol_select = 2;
+static int max_info_bits = 24;
+static unsigned int rc_wakeup_code = 0x7ffffbf3;
+static unsigned int rc_wakeup_mask = 0xff000fff;
+#endif
+
+/* Resource allocation pointers. */
+static struct resource *wpc8769l_portblock1_resource;
+static struct resource *wpc8769l_portblock2_resource;
+
+/* Hardware related spinlock. */
+static DEFINE_SPINLOCK(wpc8769l_hw_spinlock);
+
+/* The buffer for ISR to bottom half data transfer. */
+static struct lirc_buffer rbuf;
+
+/* Bit-to-MODE2 coalescing helper variables. */
+static int last_was_pulse;
+static lirc_t last_counter;
+
+/* Microseconds after a timeout-triggered pulse. */
+static s64 lastus;
+
+/* Microseconds when the timer was started. */
+static s64 timerstartus;
+
+/* Put another pulse/space to the queue, checking for overruns. */
+static void put_item(lirc_t data)
+{
+ if (lirc_buffer_full(&rbuf)) {
+ if (printk_ratelimit())
+ eprintk("RX buffer overrun.\n");
+ return;
+ }
+ lirc_buffer_write(&rbuf, (void *) &data);
+}
+
+/* Put any accumulated pulse/space to userspace. */
+static void put_span(void)
+{
+ lirc_t data;
+ if (last_counter) {
+ /* Take the usecs length. */
+ data = last_counter;
+
+ /* Mark pulse or space. */
+ if (last_was_pulse)
+ data |= PULSE_BIT;
+
+ /* Put the span to the buffer. */
+ put_item(data);
+
+ /* Reset counter, in order to avoid emitting duplicate data. */
+ last_counter = 0;
+ }
+}
+
+/* Aggregate pulse time. */
+static void put_pulse_bit(lirc_t n)
+{
+ if (last_was_pulse) {
+ last_counter += n;
+ if (last_counter > PULSE_MASK)
+ last_counter = PULSE_MASK;
+ } else {
+ put_span();
+ last_was_pulse = 1;
+ last_counter = n;
+ if (last_counter > PULSE_MASK)
+ last_counter = PULSE_MASK;
+ }
+}
+
+/* Aggregate space time. */
+static void put_space_bit(lirc_t n)
+{
+ if (!last_was_pulse) {
+ last_counter += n;
+ if (last_counter > PULSE_MASK)
+ last_counter = PULSE_MASK;
+ } else {
+ put_span();
+ last_was_pulse = 0;
+ last_counter = n;
+ if (last_counter > PULSE_MASK)
+ last_counter = PULSE_MASK;
+ }
+}
+
+/* Timeout function for last pulse part. */
+static void wpc8769l_last_timeout(unsigned long l)
+{
+ struct timeval currenttv;
+
+ unsigned long flags;
+ spin_lock_irqsave(&wpc8769l_hw_spinlock, flags);
+
+ /* Mark the time at which we inserted the timeout span. */
+ do_gettimeofday(&currenttv);
+ lastus = ((s64) currenttv.tv_sec) * 1000000ll + currenttv.tv_usec;
+
+ /* Emit the timeout as a space. */
+ put_space_bit(lastus - timerstartus);
+
+ /* Signal the bottom half wait queue
+ * that there's data available. */
+ wake_up_interruptible(&rbuf.wait_poll);
+
+ spin_unlock_irqrestore(&wpc8769l_hw_spinlock, flags);
+}
+
+/* Timer for end-of-code pulse timeout. */
+static struct timer_list last_span_timer =
+ TIMER_INITIALIZER(wpc8769l_last_timeout, 0, 0);
+
+/* Interrupt handler, doing the bit sample to mode2 conversion.
+ * Perhaps this work should be taken outside of the ISR... */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 19)
+static irqreturn_t irq_handler(int irqno, void *blah)
+#else
+static irqreturn_t irq_handler(int irqno, void *blah, struct pt_regs *regs)
+#endif
+{
+ unsigned int data;
+ int handled = 0;
+ int count, more;
+ struct timeval currenttv;
+ s64 currentus, span;
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
+ unsigned char data_buf[WPC8769L_BYTE_BUFFER_SIZE];
+ unsigned char *data_ptr;
+ unsigned long *ldata;
+ unsigned int next_one, next_zero, size;
+#else
+ unsigned int mask;
+#endif
+
+ unsigned long flags;
+ spin_lock_irqsave(&wpc8769l_hw_spinlock, flags);
+
+ /* Check whether there's any data available. */
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ data = inb(baseport1 + WPC8769L_DATA_STATUS_REG);
+
+ if (data & WPC8769L_DATA_READY_MASK) {
+ /* Get current timestamp. */
+ do_gettimeofday(&currenttv);
+ currentus = ((s64) currenttv.tv_sec) * 1000000ll +
+ currenttv.tv_usec;
+
+ /* If we had a timeout before we might need to fill
+ * in additional space time. */
+ if (lastus) {
+ /* Calculate the difference, compensating
+ * the time for the data successfully
+ * received (estimated to be
+ * WPC8769L_BYTES_PER_BURST bytes). */
+ span = currentus - lastus
+ - WPC8769L_BYTES_PER_BURST
+ * WPC8769L_USECS_PER_BYTE;
+
+ /* Only insert positive spans. */
+ if (span > 0) {
+ /* Emit the extended gap as a space. */
+ put_space_bit(span);
+ }
+
+ /* Mark that we had the last timeout into account. */
+ lastus = 0;
+ }
+
+ count = 0;
+ more = 1;
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
+ data_ptr = data_buf;
+#endif
+ do {
+ /* Read the next byte of data. */
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ data = inb(baseport1 + WPC8769L_DATA_REG);
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
+ *data_ptr++ = data;
+#else
+ for (mask = 0x01 ; mask < 0x100; mask <<= 1) {
+ if (data & mask)
+ put_space_bit(WPC8769L_USECS_PER_BIT);
+ else
+ put_pulse_bit(WPC8769L_USECS_PER_BIT);
+ }
+#endif
+
+ /* Check for 0xff in a row. */
+ if (data == 0xff)
+ wpc8769l_ff_bytes_in_a_row++;
+ else
+ wpc8769l_ff_bytes_in_a_row = 0;
+
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ data = inb(baseport1 + WPC8769L_DATA_ACK_REG);
+ if (data & WPC8769L_DATA_ACK_REG) {
+ outb(WPC8769L_BANK_E0,
+ baseport1 + WPC8769L_SELECT_REG);
+ data = inb(baseport1 +
+ WPC8769L_REMAINING_RX_DATA_REG);
+ if (!data)
+ more = 0;
+ } else
+ more = 0;
+
+ count++;
+ } while (more && count < WPC8769L_BYTES_PER_BURST);
+
+ if (wpc8769l_ff_bytes_in_a_row
+ >= WPC8769L_FF_BYTES_BEFORE_RESET) {
+
+ /* Put in another 0xff byte. */
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
+ *data_ptr++ = 0xff;
+ count++;
+#else
+ put_space_bit(8 * WPC8769L_USECS_PER_BIT);
+#endif
+
+ /* Reset the hardware in the case of too many
+ * 0xff bytes in a row. */
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ outb(WPC8769L_TIMEOUT_RESET_MASK,
+ baseport1 + WPC8769L_TIMEOUT_RESET_REG);
+ }
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 25)
+ /* Emit the data. */
+ size = count << 3;
+
+ ldata = (unsigned long *) data_buf;
+ next_one = generic_find_next_le_bit(ldata, size, 0);
+
+ if (next_one > 0)
+ put_pulse_bit(next_one
+ * WPC8769L_USECS_PER_BIT);
+
+ while (next_one < size) {
+ next_zero = generic_find_next_zero_le_bit(ldata,
+ size, next_one + 1);
+
+ put_space_bit(
+ (next_zero - next_one)
+ * WPC8769L_USECS_PER_BIT);
+
+ if (next_zero < size) {
+ next_one = generic_find_next_le_bit(ldata,
+ size, next_zero + 1);
+
+ put_pulse_bit(
+ (next_one - next_zero)
+ * WPC8769L_USECS_PER_BIT);
+ } else {
+ next_one = size;
+ }
+ }
+#endif
+
+ /* Mark the IRQ as handled. */
+ handled = 1;
+
+ /* Signal the bottom half wait queue
+ * that there's data available. */
+ wake_up_interruptible(&rbuf.wait_poll);
+
+ /* Set up timeout handling. */
+ mod_timer(&last_span_timer,
+ jiffies + WPC8769L_LAST_TIMEOUT_JIFFIES);
+
+ /* Set up last timer us mark. */
+ timerstartus = currentus;
+ }
+
+ spin_unlock_irqrestore(&wpc8769l_hw_spinlock, flags);
+ return IRQ_RETVAL(handled);
+}
+
+/* Prepare the hardware on module load. */
+static void wpc8769l_prepare_hardware(void)
+{
+ unsigned long flags;
+ spin_lock_irqsave(&wpc8769l_hw_spinlock, flags);
+
+ /* I don't know why this needs reading. */
+ outb(WPC8769L_BANK_E4, baseport1 + WPC8769L_SELECT_REG);
+ inb(baseport1 + WPC8769L_READ_ON_STARTUP_REG);
+
+ spin_unlock_irqrestore(&wpc8769l_hw_spinlock, flags);
+}
+
+
+/* Wake up device from power down and check whether it was the
+ * device that woke us up.
+ */
+static int wpc8769l_power_up_and_check_if_we_woke_us_up(void)
+{
+ unsigned int data;
+ int res;
+
+ unsigned long flags;
+ spin_lock_irqsave(&wpc8769l_hw_spinlock, flags);
+
+ if (baseport2) {
+ data = inb(baseport2 + WPC8769L_BANK2_CLOCK_REG);
+ data &= ~WPC8769L_CLOCK_OFF_MASK;
+ data |= WPC8769L_CLOCK_ON_MASK;
+ outb(data, baseport2 + WPC8769L_BANK2_CLOCK_REG);
+
+ res = inb(baseport2 + WPC8769L_WAKEUP_STATUS_REG)
+ & WPC8769L_WAKEUP_WOKE_UP_MASK;
+
+ data = inb(baseport2 + WPC8769L_BANK2_CLOCK_REG);
+ data &= ~WPC8769L_CLOCK_OFF_MASK;
+ data |= WPC8769L_CLOCK_ON_MASK;
+ outb(data, baseport2 + WPC8769L_BANK2_CLOCK_REG);
+
+ outb(WPC8769L_WAKEUP_WOKE_UP_MASK,
+ baseport2 + WPC8769L_WAKEUP_STATUS_REG);
+
+ outb(WPC8769L_WAKEUP_ACK_MASK,
+ baseport2 + WPC8769L_WAKEUP_ACK_REG);
+ } else {
+ outb(WPC8769L_BANK_F0, baseport1 + WPC8769L_SELECT_REG);
+ res = (inb(baseport1 + WPC8769L_WAKEUP_STATUS_LEG_REG)
+ & WPC8769L_WAKEUP_STATUS_LEG_MASK) ? 1 : 0;
+ }
+
+ spin_unlock_irqrestore(&wpc8769l_hw_spinlock, flags);
+
+ return res;
+}
+
+/* Disable interrupts from device. */
+static void wpc8769l_disable_interrupts(void)
+{
+ unsigned long flags;
+ spin_lock_irqsave(&wpc8769l_hw_spinlock, flags);
+
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ outb(inb(baseport1 + WPC8769L_INTERRUPT_REG)
+ & ~WPC8769L_INTERRUPT_1_MASK,
+ baseport1 + WPC8769L_INTERRUPT_REG);
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ outb(inb(baseport1 + WPC8769L_INTERRUPT_REG)
+ & ~WPC8769L_INTERRUPT_1_MASK,
+ baseport1 + WPC8769L_INTERRUPT_REG);
+
+ spin_unlock_irqrestore(&wpc8769l_hw_spinlock, flags);
+}
+
+#ifdef LIRC_WPC8769L_WAKEUP
+/* Expand value nibble for configuration of wake up parameters.
+ * This seems to manchester-encode a nibble into a byte. */
+static unsigned int wpc8769l_expand_value_nibble(unsigned int nibble)
+{
+ int i;
+ unsigned int tmp, tmp2, res;
+
+ res = 0;
+
+ for (i = 0; i < 4; i += 2) {
+ tmp = (nibble >> i) & 0x3;
+ switch (tmp) {
+ case 3:
+ tmp2 = 5;
+ break;
+ case 2:
+ tmp2 = 6;
+ break;
+ case 1:
+ tmp2 = 9;
+ break;
+ case 0:
+ tmp2 = 0x0a;
+ break;
+ default:
+ return 0;
+ break;
+ }
+ res |= ((tmp2 << i) << i);
+ }
+
+ return res;
+}
+
+/* Expand mask nibble for configuration of wake up parameters. */
+static unsigned int wpc8769l_expand_mask_nibble(unsigned int nibble)
+{
+ int i;
+ unsigned int tmp, tmp2, res;
+
+ res = 0;
+
+ for (i = 0; i < 4; i += 2) {
+ tmp = (nibble >> i) & 0x3;
+ switch (tmp) {
+ case 0:
+ tmp2 = 0;
+ break;
+ case 1:
+ tmp2 = 3;
+ break;
+ case 2:
+ tmp2 = 0x0c;
+ break;
+ case 3:
+ tmp2 = 0x0f;
+ break;
+ default:
+ return 0;
+ break;
+ }
+ res |= ((tmp2 << i) << i);
+ }
+
+ return res;
+}
+
+/* Configure wake up triggers for the hardware that supports it.
+ * THE CALLER MUST HAVE ACQUIRED wpc8769l_hw_spinlock BEFORE CALLING.
+ */
+static void wpc8769l_configure_wakeup_triggers(void)
+{
+ unsigned int x;
+ unsigned int data, data2;
+
+ int i, j;
+
+ x = inb(baseport2 + WPC8769L_WAKEUP_ENABLE_REG)
+ & WPC8769L_WAKEUP_ENABLE_MASK;
+ outb(inb(baseport2 + WPC8769L_WAKEUP_ENABLE_REG)
+ & ~WPC8769L_WAKEUP_ENABLE_MASK,
+ baseport2 + WPC8769L_WAKEUP_ENABLE_REG);
+
+ data = inb(baseport2 + WPC8769L_BANK2_CLOCK_REG);
+ data &= ~WPC8769L_CLOCK_OFF_MASK;
+ data |= WPC8769L_CLOCK_ON_MASK;
+ outb(data, baseport2 + WPC8769L_BANK2_CLOCK_REG);
+
+ outb(WPC8769L_WAKEUP_CONFIGURING_MASK,
+ baseport2 + WPC8769L_WAKEUP_STATUS_REG);
+ outb(WPC8769L_WAKEUP_ACK_MASK,
+ baseport2 + WPC8769L_WAKEUP_ACK_REG);
+
+ data = inb(baseport2 + WPC8769L_BANK2_CLOCK_REG);
+ data &= ~WPC8769L_CLOCK_OFF_MASK;
+ data |= WPC8769L_CLOCK_ON_MASK;
+ outb(data, baseport2 + WPC8769L_BANK2_CLOCK_REG);
+
+ data = inb(baseport2 + WPC8769L_BANK2_CLOCK_REG);
+ data &= ~WPC8769L_CLOCK_OFF_MASK;
+ data |= WPC8769L_CLOCK_ON_MASK;
+ outb(data, baseport2 + WPC8769L_BANK2_CLOCK_REG);
+
+ data = inb(baseport2 + WPC8769L_WAKEUP_CONFIG_REG);
+ data &= WPC8769L_WAKEUP_CONFIG_PRE_MASK;
+ data |= (max_info_bits + WPC8769L_MAX_INFO_BITS_BIAS)
+ << WPC8769L_MAX_INFO_BITS_SHIFT;
+ outb(data, baseport2 + WPC8769L_WAKEUP_CONFIG_REG);
+
+ i = j = 0;
+
+ /* Program values. */
+ while (j < WPC8769L_WAKEUP_DATA_BITS) {
+ data = inb(baseport2 + WPC8769L_BANK2_CLOCK_REG);
+ data &= ~WPC8769L_CLOCK_OFF_MASK;
+ data |= WPC8769L_CLOCK_ON_MASK;
+ outb(data, baseport2 + WPC8769L_BANK2_CLOCK_REG);
+
+ outb(i + WPC8769L_WAKEUP_DATA_BASE,
+ baseport2 + WPC8769L_WAKEUP_DATA_PTR_REG);
+
+ data = inb(baseport2 + WPC8769L_BANK2_CLOCK_REG);
+ data &= ~WPC8769L_CLOCK_OFF_MASK;
+ data |= WPC8769L_CLOCK_ON_MASK;
+ outb(data, baseport2 + WPC8769L_BANK2_CLOCK_REG);
+
+ data = (rc_wakeup_code >> j) & 0x0f;
+ data = wpc8769l_expand_value_nibble(data);
+ outb(data, baseport2 + WPC8769L_WAKEUP_DATA_REG);
+
+ i++;
+ j += 4;
+ }
+
+ /* Program masks. */
+ while (j < WPC8769L_WAKEUP_DATA_BITS) {
+ data = inb(baseport2 + WPC8769L_BANK2_CLOCK_REG);
+ data &= ~WPC8769L_CLOCK_OFF_MASK;
+ data |= WPC8769L_CLOCK_ON_MASK;
+ outb(data, baseport2 + WPC8769L_BANK2_CLOCK_REG);
+
+ outb(i + WPC8769L_WAKEUP_MASK_BASE,
+ baseport2 + WPC8769L_WAKEUP_DATA_PTR_REG);
+
+ data = inb(baseport2 + WPC8769L_BANK2_CLOCK_REG);
+ data &= ~WPC8769L_CLOCK_OFF_MASK;
+ data |= WPC8769L_CLOCK_ON_MASK;
+ outb(data, baseport2 + WPC8769L_BANK2_CLOCK_REG);
+
+ data = (rc_wakeup_mask >> j) & 0x0f;
+ data = wpc8769l_expand_mask_nibble(data);
+ outb(data, baseport2 + WPC8769L_WAKEUP_DATA_REG);
+
+ i++;
+ j += 4;
+ }
+
+ data = inb(baseport2 + WPC8769L_BANK2_CLOCK_REG);
+ data &= ~WPC8769L_CLOCK_OFF_MASK;
+ data |= WPC8769L_CLOCK_ON_MASK;
+ outb(data, baseport2 + WPC8769L_BANK2_CLOCK_REG);
+
+ data2 = inb(baseport2 + WPC8769L_WAKEUP_CONFIG2_REG);
+ data2 &= WPC8769L_WAKEUP_CONFIG2_AND_MASK;
+ data2 |= WPC8769L_WAKEUP_CONFIG2_OR_MASK;
+
+ data = inb(baseport2 + WPC8769L_BANK2_CLOCK_REG);
+ data &= ~WPC8769L_CLOCK_OFF_MASK;
+ data |= WPC8769L_CLOCK_ON_MASK;
+ outb(data, baseport2 + WPC8769L_BANK2_CLOCK_REG);
+
+ outb(data2, baseport2 + WPC8769L_WAKEUP_CONFIG2_REG);
+
+ if (x != WPC8769L_WAKEUP_ENABLE_MASK)
+ outb(inb(baseport2 + WPC8769L_WAKEUP_ENABLE_REG)
+ | WPC8769L_WAKEUP_ENABLE_MASK,
+ baseport2 + WPC8769L_WAKEUP_ENABLE_REG);
+}
+#endif
+
+/* Enable interrupts from device. */
+static void wpc8769l_enable_interrupts(void)
+{
+ unsigned int data, data2, data_save;
+
+ unsigned int a, b;
+
+ unsigned long flags;
+ spin_lock_irqsave(&wpc8769l_hw_spinlock, flags);
+
+ outb(WPC8769L_BANK_F0, baseport1 + WPC8769L_SELECT_REG);
+ data_save = inb(baseport1 + WPC8769L_WAKEUP_STATUS_LEG_REG);
+
+ outb(WPC8769L_BANK_E0, baseport1 + WPC8769L_SELECT_REG);
+ outb(0, baseport1 + WPC8769L_HARDWARE_ENABLE1_REG);
+
+ outb(WPC8769L_BANK_E0, baseport1 + WPC8769L_SELECT_REG);
+ outb(WPC8769L_BANK_E0, baseport1 + WPC8769L_SELECT_REG);
+ outb(inb(baseport1 + WPC8769L_HARDWARE_ENABLE1_REG)
+ | WPC8769L_HARDWARE_ENABLE1_MASK,
+ baseport1 + WPC8769L_HARDWARE_ENABLE1_REG);
+
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ outb(0, baseport1 + WPC8769L_CONFIG_REG);
+
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ data = inb(baseport1 + WPC8769L_CONFIG_REG);
+ data &= ~WPC8769L_CONFIG_OFF_MASK;
+ data |= WPC8769L_CONFIG_ON_MASK;
+ outb(data, baseport1 + WPC8769L_CONFIG_REG);
+
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ outb(WPC8769L_DATA_STATUS_MASK_1, baseport1 + WPC8769L_DATA_STATUS_REG);
+
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ outb(WPC8769L_DATA_STATUS_MASK_2, baseport1 + WPC8769L_DATA_STATUS_REG);
+
+ outb(WPC8769L_BANK_F4, baseport1 + WPC8769L_SELECT_REG);
+ outb(WPC8769L_BANK_F4, baseport1 + WPC8769L_SELECT_REG);
+ outb(inb(baseport1 + WPC8769L_CONFIG2_REG)
+ & ~WPC8769L_CONFIG2_OFF_MASK,
+ baseport1 + WPC8769L_CONFIG2_REG);
+
+ outb(WPC8769L_BANK_EC, baseport1 + WPC8769L_SELECT_REG);
+ outb(WPC8769L_BANK_EC, baseport1 + WPC8769L_SELECT_REG);
+ outb(inb(baseport1 + WPC8769L_CONFIG3_REG)
+ | WPC8769L_CONFIG3_ON_MASK,
+ baseport1 + WPC8769L_CONFIG3_REG);
+
+ outb(WPC8769L_BANK_F4, baseport1 + WPC8769L_SELECT_REG);
+ data = inb(baseport1 + WPC8769L_CONFIG4_REG);
+ data &= WPC8769L_CONFIG4_AND_MASK;
+ data |= WPC8769L_CONFIG4_ON_MASK;
+
+ outb(WPC8769L_BANK_F4, baseport1 + WPC8769L_SELECT_REG);
+ outb(data, baseport1 + WPC8769L_CONFIG4_REG);
+
+ outb(WPC8769L_BANK_E0, baseport1 + WPC8769L_SELECT_REG);
+ outb(WPC8769L_BANK_E0, baseport1 + WPC8769L_SELECT_REG);
+ outb(inb(baseport1 + WPC8769L_CONFIG5_REG)
+ | WPC8769L_CONFIG5_ON_MASK,
+ baseport1 + WPC8769L_CONFIG5_REG);
+
+ outb(WPC8769L_BANK_E0, baseport1 + WPC8769L_SELECT_REG);
+ outb(WPC8769L_CONFIG6_MASK, baseport1 + WPC8769L_CONFIG6_REG);
+
+ outb(WPC8769L_BANK_E0, baseport1 + WPC8769L_SELECT_REG);
+ outb(0, baseport1 + WPC8769L_CONFIG7_REG);
+
+ if (baseport2) {
+ /*
+ * This has to do with wake-up support, which is
+ * disabled when the second I/O range doesn't
+ * exist.
+ */
+ /* -- internal subroutine -- */
+ data = inb(baseport2 + WPC8769L_BANK2_CLOCK_REG);
+ data &= ~WPC8769L_CLOCK_OFF_MASK;
+ data |= WPC8769L_CLOCK_ON_MASK;
+ outb(data, baseport2 + WPC8769L_BANK2_CLOCK_REG);
+
+ data2 = inb(baseport2 + WPC8769L_WAKEUP_CONFIG3_REG);
+ a = (data2 >> WPC8769L_WAKEUP_CONFIG3_A_SHIFT)
+ & WPC8769L_WAKEUP_CONFIG3_A_MASK;
+ b = (data2 >> WPC8769L_WAKEUP_CONFIG3_B_SHIFT)
+ & WPC8769L_WAKEUP_CONFIG3_B_MASK;
+
+ data = inb(baseport2 + WPC8769L_BANK2_CLOCK_REG);
+ data &= ~WPC8769L_CLOCK_OFF_MASK;
+ data |= WPC8769L_CLOCK_ON_MASK;
+ outb(data, baseport2 + WPC8769L_BANK2_CLOCK_REG);
+
+ data2 &= ~WPC8769L_WAKEUP_CONFIG3_OFF_MASK;
+ data2 |= WPC8769L_WAKEUP_CONFIG3_ON_MASK;
+ outb(data2, baseport2 + WPC8769L_WAKEUP_CONFIG3_REG);
+ /* -- end internal subroutine -- */
+
+#ifdef LIRC_WPC8769L_WAKEUP
+ /* Call for setting wake up filters */
+ wpc8769l_configure_wakeup_triggers();
+#endif
+ } else {
+ /* No second port range. Take these defaults. */
+ a = (data_save & WPC8769L_WAKEUP_STATUS_LEG_MASK_A)
+ ? 0 : 1;
+ b = (data_save & WPC8769L_WAKEUP_STATUS_LEG_MASK_B)
+ ? 1 : 0;
+ }
+
+ outb(WPC8769L_BANK_EC, baseport1 + WPC8769L_SELECT_REG);
+ outb(WPC8769L_BANK_EC, baseport1 + WPC8769L_SELECT_REG);
+
+ data = inb(baseport1 + WPC8769L_CONFIG3_REG);
+ data = (a == 1)
+ ? (data & ~WPC8769L_CONFIG3_MASK_1)
+ : (data | WPC8769L_CONFIG3_MASK_1);
+ outb(data, baseport1 + WPC8769L_CONFIG3_REG);
+
+ outb(WPC8769L_BANK_F4, baseport1 + WPC8769L_SELECT_REG);
+ outb(WPC8769L_BANK_F4, baseport1 + WPC8769L_SELECT_REG);
+
+ data = inb(baseport1 + WPC8769L_CONFIG2_REG);
+ data = (b == 0)
+ ? (data & ~WPC8769L_CONFIG2_MASK_1)
+ : (data | WPC8769L_CONFIG2_MASK_1);
+ outb(data, baseport1 + WPC8769L_CONFIG2_REG);
+
+ outb(0, baseport1 + WPC8769L_CONFIG8_REG);
+
+ outb(0, baseport1 + WPC8769L_CONFIG9_REG);
+
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ outb(WPC8769L_BANK_00, baseport1 + WPC8769L_SELECT_REG);
+ outb(inb(baseport1 + WPC8769L_INTERRUPT_REG)
+ | WPC8769L_INTERRUPT_1_MASK,
+ baseport1 + WPC8769L_INTERRUPT_REG);
+
+ spin_unlock_irqrestore(&wpc8769l_hw_spinlock, flags);
+}
+
+/* Called when the device is opened. */
+static int set_use_inc(void *data)
+{
+ int result;
+
+ /* Reset pulse values. */
+ last_was_pulse = 0;
+ last_counter = 0;
+
+ /* Reset last timeout value. */
+ lastus = 0;
+
+ /* Init the read buffer. */
+ if (lirc_buffer_init(&rbuf, sizeof(lirc_t), RBUF_LEN) < 0)
+ return -ENOMEM;
+
+ /* Acquire the IRQ. */
+ result = request_irq(irq, irq_handler,
+ IRQF_DISABLED | IRQF_SHARED,
+ LIRC_DRIVER_NAME, THIS_MODULE);
+
+ switch (result) {
+ case -EBUSY:
+ eprintk("IRQ %d busy\n", irq);
+ lirc_buffer_free(&rbuf);
+ return -EBUSY;
+ case -EINVAL:
+ eprintk("Bad irq number or handler\n");
+ lirc_buffer_free(&rbuf);
+ return -EINVAL;
+ default:
+ dprintk("IRQ %d obtained.\n", irq);
+ break;
+ };
+
+ /* Mark the device as open. */
+ lirc_wpc8769l_is_open = 1;
+
+ /* Enable hardware interrupts. */
+ wpc8769l_enable_interrupts();
+
+ MOD_INC_USE_COUNT;
+ return 0;
+}
+
+/* Called when the device is released. */
+static void set_use_dec(void *data)
+{
+ /* Mark the device as closed. */
+ lirc_wpc8769l_is_open = 0;
+
+ /* Cancel the timeout if pending. */
+ del_timer_sync(&last_span_timer);
+
+ /* Disable the hardware interrupts. */
+ wpc8769l_disable_interrupts();
+
+ /* Free the IRQ. */
+ free_irq(irq, THIS_MODULE);
+ dprintk("Freed IRQ %d\n", irq);
+
+ /* Free the RX buffer. */
+ lirc_buffer_free(&rbuf);
+
+ MOD_DEC_USE_COUNT;
+}
+
+static struct lirc_driver driver = {
+ .name = LIRC_DRIVER_NAME,
+ .minor = -1,
+ .code_length = 1,
+ .sample_rate = 0,
+ .data = NULL,
+ .add_to_buf = NULL,
+ .get_queue = NULL,
+ .rbuf = &rbuf,
+ .set_use_inc = set_use_inc,
+ .set_use_dec = set_use_dec,
+ .fops = NULL,
+ .dev = NULL,
+ .owner = THIS_MODULE,
+};
+
+static acpi_status wec_parse_resources(struct acpi_resource *resource,
+ void *context)
+{
+ if (resource->type == ACPI_RESOURCE_TYPE_IO) {
+ /* Read the two I/O ranges. */
+ if (!baseport1)
+ baseport1 = resource->data.io.minimum;
+ else if (!baseport2)
+ baseport2 = resource->data.io.minimum;
+ } else if (resource->type == ACPI_RESOURCE_TYPE_IRQ) {
+ /* Read the rx IRQ number. */
+ if (!irq)
+ irq = resource->data.irq.interrupts[0];
+ }
+ return AE_OK;
+}
+
+static acpi_status wec_parse_device(acpi_handle handle, u32 level,
+ void *context, void **return_value)
+{
+ acpi_status status;
+ iprintk("Found %s device via ACPI.\n", WPC8769L_ACPI_HID);
+
+ status = acpi_walk_resources(handle, METHOD_NAME__CRS,
+ wec_parse_resources, NULL);
+ if (ACPI_FAILURE(status))
+ return status;
+
+ return AE_OK;
+}
+
+/* Find the device I/O ranges and IRQ number by searching for the
+ * CIR ACPI entry. */
+static int wpc8769l_acpi_detect(void)
+{
+ acpi_status status;
+ status = acpi_get_devices(WPC8769L_ACPI_HID, wec_parse_device, NULL,
+ NULL);
+ if (ACPI_FAILURE(status))
+ return -ENOENT;
+ else
+ return 0;
+}
+
+#ifdef MODULE
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+static struct platform_device *lirc_wpc8769l_platform_dev;
+
+static int __devinit lirc_wpc8769l_probe(struct platform_device *dev)
+{
+ return 0;
+}
+
+static int __devexit lirc_wpc8769l_remove(struct platform_device *dev)
+{
+ return 0;
+}
+
+static int lirc_wpc8769l_suspend(struct platform_device *dev,
+ pm_message_t state)
+{
+ if (lirc_wpc8769l_is_open)
+ /* Disable all interrupts. */
+ wpc8769l_disable_interrupts();
+ return 0;
+}
+
+static int lirc_wpc8769l_resume(struct platform_device *dev)
+{
+ if (lirc_wpc8769l_is_open) {
+ /* Check if we caused resuming; we still do nothing about it. */
+ wpc8769l_power_up_and_check_if_we_woke_us_up();
+
+ /* Enable interrupts again. */
+ wpc8769l_enable_interrupts();
+ }
+ return 0;
+}
+
+static struct platform_driver lirc_wpc8769l_platform_driver = {
+ .probe = lirc_wpc8769l_probe,
+ .remove = __devexit_p(lirc_wpc8769l_remove),
+ .suspend = lirc_wpc8769l_suspend,
+ .resume = lirc_wpc8769l_resume,
+ .driver = {
+ .name = LIRC_DRIVER_NAME,
+ .owner = THIS_MODULE,
+ },
+};
+
+static int __init lirc_wpc8769l_platform_init(void)
+{
+ int result;
+
+ result = platform_driver_register(&lirc_wpc8769l_platform_driver);
+ if (result) {
+ eprintk("Platform driver register returned %d.\n", result);
+ return result;
+ }
+
+ lirc_wpc8769l_platform_dev = platform_device_alloc(LIRC_DRIVER_NAME, 0);
+ if (!lirc_wpc8769l_platform_dev) {
+ result = -ENOMEM;
+ goto exit_driver_unregister;
+ }
+
+ result = platform_device_add(lirc_wpc8769l_platform_dev);
+ if (result)
+ goto exit_device_put;
+
+ return 0;
+
+exit_device_put:
+ platform_device_put(lirc_wpc8769l_platform_dev);
+
+exit_driver_unregister:
+ platform_driver_unregister(&lirc_wpc8769l_platform_driver);
+ return result;
+}
+
+static void __exit lirc_wpc8769l_platform_exit(void)
+{
+ platform_device_unregister(lirc_wpc8769l_platform_dev);
+ platform_driver_unregister(&lirc_wpc8769l_platform_driver);
+}
+#endif
+
+static int __init lirc_wpc8769l_module_init(void)
+{
+ int rc;
+
+ /* If needed, read the resource information for the ACPI device
+ * description. */
+ if (!skip_probe) {
+ rc = wpc8769l_acpi_detect();
+ if (rc) {
+ eprintk("Error when looking for %s ACPI device.\n",
+ WPC8769L_ACPI_HID);
+ return rc;
+ }
+ }
+
+ /* Check that we got some resource info to work with. */
+ if (!baseport1 || !irq) {
+ rc = -ENODEV;
+ eprintk("Not all required resources found for %s device.\n",
+ LIRC_DRIVER_NAME);
+ return rc;
+ }
+
+ dprintk("%s device found to use 0x%04x, 0x%04x I/O bases, IRQ #%d.\n",
+ LIRC_DRIVER_NAME, baseport1, baseport2, irq);
+
+ /* Request the two I/O regions. */
+ wpc8769l_portblock1_resource = request_region(baseport1,
+ WPC8769L_IO_REGION_1_SIZE, LIRC_DRIVER_NAME);
+ if (!wpc8769l_portblock1_resource) {
+ rc = -EBUSY;
+ eprintk("Could not allocate I/O range at 0x%04x", baseport1);
+ return rc;
+ }
+ if (baseport2) {
+ wpc8769l_portblock2_resource = request_region(baseport2,
+ WPC8769L_IO_REGION_2_SIZE, LIRC_DRIVER_NAME);
+ if (!wpc8769l_portblock2_resource) {
+ rc = -EBUSY;
+ printk(KERN_ERR "Could not allocate I/O range "
+ "at 0x%04x",
+ baseport2);
+ goto exit_release_region_1;
+ }
+ }
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+ /* Register the platform driver and device. */
+ rc = lirc_wpc8769l_platform_init();
+ if (rc)
+ goto exit_release_region_2;
+#endif
+
+ /* Prepare the hardware. */
+ wpc8769l_prepare_hardware();
+
+ /* Do load-time checks. */
+ wpc8769l_power_up_and_check_if_we_woke_us_up();
+
+ /* Configure the driver hooks. */
+ driver.features = LIRC_CAN_REC_MODE2;
+ driver.minor = lirc_register_driver(&driver);
+ if (driver.minor < 0) {
+ eprintk("lirc_register_driver failed!\n");
+ rc = -EIO;
+ goto exit_platform_exit;
+ }
+
+ iprintk("Driver loaded.\n");
+
+ return 0; /* Everything OK. */
+
+exit_platform_exit:
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+ lirc_wpc8769l_platform_exit();
+
+exit_release_region_2:
+#endif
+ if (baseport2)
+ release_region(baseport2, WPC8769L_IO_REGION_2_SIZE);
+
+exit_release_region_1:
+ release_region(baseport1, WPC8769L_IO_REGION_1_SIZE);
+
+ return rc;
+}
+
+module_init(lirc_wpc8769l_module_init);
+
+static void __exit lirc_wpc8769l_module_exit(void)
+{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 18)
+ /* Unregister the platform driver and device. */
+ lirc_wpc8769l_platform_exit();
+#endif
+
+ /* Unregister the LIRC driver. */
+ lirc_unregister_driver(driver.minor);
+
+ /* Release the second range. */
+ if (baseport2)
+ release_region(baseport2, WPC8769L_IO_REGION_2_SIZE);
+
+ /* Release the first range. */
+ release_region(baseport1, WPC8769L_IO_REGION_1_SIZE);
+
+ iprintk("Driver unloaded.\n");
+}
+
+module_exit(lirc_wpc8769l_module_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Juan J. Garcia de Soria");
+MODULE_DESCRIPTION("Driver for the integrated Winbond WPC8769L-based IR\
+ receiver found in Acer laptops.");
+MODULE_VERSION("0.0");
+
+module_param(debug, bool, S_IRUGO | S_IWUSR);
+MODULE_PARM_DESC(debug, "Enable debugging messages");
+
+module_param(baseport1, uint, S_IRUGO);
+MODULE_PARM_DESC(baseport1,
+ "First I/O range base address (default: ACPI autodetect).");
+
+module_param(baseport2, uint, S_IRUGO);
+MODULE_PARM_DESC(baseport2,
+ "Second I/O range base address (default: ACPI autodetect).");
+
+module_param(irq, uint, S_IRUGO);
+MODULE_PARM_DESC(irq, "IRQ number (default: ACPI autodetect).");
+
+module_param(skip_probe, bool, S_IRUGO);
+MODULE_PARM_DESC(skip_probe,
+ "Skip ACPI-based device detection \
+(default: false for ACPI autodetect).");
+
+#ifdef LIRC_WPC8769L_WAKEUP
+module_param(protocol_select, int, S_IRUGO);
+MODULE_PARM_DESC(protocol_select,
+ "Define the protocol for wake up functions (default: 2).");
+
+module_param(max_info_bits, int, S_IRUGO);
+MODULE_PARM_DESC(max_info_bits,
+ "Define the maximum info bits for wake up functions (default: 24).");
+
+module_param(rc_wakeup_code, uint, S_IRUGO);
+MODULE_PARM_DESC(rc_wakeup_code,
+ "Define the RC code value for wake up functions\
+ (default: 0x7ffffbf3).");
+
+module_param(rc_wakeup_mask, uint, S_IRUGO);
+MODULE_PARM_DESC(rc_wakeup_mask,
+ "Define the RC code mask for wake up functions (default: 0xff000fff).");
+#endif
+
+EXPORT_NO_SYMBOLS;
+
+#endif /* MODULE */
+
diff --git a/ubuntu/lirc/lirc_wpc8769l/lirc_wpc8769l.h b/ubuntu/lirc/lirc_wpc8769l/lirc_wpc8769l.h
new file mode 100644
index 00000000000..d250bdc7a54
--- /dev/null
+++ b/ubuntu/lirc/lirc_wpc8769l/lirc_wpc8769l.h
@@ -0,0 +1,186 @@
+/* $Id: lirc_wpc8769l.h,v 1.5 2009/06/15 15:11:39 jarodwilson Exp $ */
+
+/****************************************************************************
+ ** lirc_wpc8769l.h ****************************************************
+ ****************************************************************************
+ *
+ * lirc_wpc8769l - Device driver for the integrated CIR receiver found in
+ * Acer Aspire 6530G (and probably other models), based on
+ * the Winbond 8769L embedded controller.
+ * (Written using the lirc_serial driver as a guide).
+ *
+ * Copyright (C) 2008, 2009 Juan J. Garcia de Soria <skandalfo@gmail.com>
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include <linux/types.h>
+
+/* Name of the ACPI resource used to autodetect the receiver. */
+#define WPC8769L_ACPI_HID "WEC1020"
+
+/* Number of microseconds for a whole byte of samples. */
+/* This is assuming 20 kHz bit sampling frequency. */
+#define WPC8769L_USECS_PER_BYTE 400
+
+/* Number of microseconds for a bit sample. */
+#define WPC8769L_USECS_PER_BIT (WPC8769L_USECS_PER_BYTE >> 3)
+
+/* Number of bytes in each data burst. */
+#define WPC8769L_BYTES_PER_BURST 14
+
+/* Number of 0xff bytes before reset. */
+#define WPC8769L_FF_BYTES_BEFORE_RESET 250
+
+/* Microseconds timeout for last part of code. */
+#define WPC8769L_LAST_TIMEOUT_JIFFIES (HZ / 20)
+
+/* Microseconds timeout for last part of code. */
+#define WPC8769L_LAST_TIMEOUT_JIFFIES (HZ / 20)
+
+/* Size of I/O region 1. */
+#define WPC8769L_IO_REGION_1_SIZE 0x08
+
+/* Size of I/O region 2. */
+#define WPC8769L_IO_REGION_2_SIZE 0x20
+
+/* Size of a byte array for a complete burst, rounded
+ * up to an integral number of unsigned longs. */
+#define WPC8769L_BYTE_BUFFER_SIZE \
+ (((WPC8769L_BYTES_PER_BURST + 1 + BITS_PER_LONG / 8 - 1) \
+ / (BITS_PER_LONG / 8)) * (BITS_PER_LONG / 8))
+
+
+
+/* WPC8769L register set definitions. Note that these are all wild guesses.*/
+
+/* Registers for I/O range 1. */
+#define WPC8769L_SELECT_REG 0x03
+
+/*------------*/
+#define WPC8769L_BANK_00 0x00
+
+#define WPC8769L_DATA_REG 0x00
+
+#define WPC8769L_INTERRUPT_REG 0x01
+#define WPC8769L_INTERRUPT_1_MASK 0x01
+#define WPC8769L_INTERRUPT_2_MASK 0x01
+
+#define WPC8769L_DATA_STATUS_REG 0x02
+#define WPC8769L_DATA_READY_MASK 0x01
+#define WPC8769L_DATA_STATUS_MASK_1 0x02
+#define WPC8769L_DATA_STATUS_MASK_2 0xd0
+
+#define WPC8769L_CONFIG_REG 0x04
+#define WPC8769L_CONFIG_OFF_MASK 0xe0
+#define WPC8769L_CONFIG_ON_MASK 0xc0
+
+#define WPC8769L_DATA_ACK_REG 0x05
+#define WPC8769L_DATA_ACK_MASK 0x01
+
+#define WPC8769L_TIMEOUT_RESET_REG 0x07
+#define WPC8769L_TIMEOUT_RESET_MASK 0x20
+
+/*------------*/
+#define WPC8769L_BANK_E0 0xe0
+
+#define WPC8769L_CONFIG6_REG 0x00
+#define WPC8769L_CONFIG6_MASK 0x4b
+
+#define WPC8769L_CONFIG7_REG 0x01
+
+#define WPC8769L_HARDWARE_ENABLE1_REG 0x02
+#define WPC8769L_HARDWARE_ENABLE1_MASK 0x01
+
+#define WPC8769L_CONFIG5_REG 0x04
+#define WPC8769L_CONFIG5_ON_MASK 0x30
+
+#define WPC8769L_REMAINING_RX_DATA_REG 0x07
+
+/*------------*/
+#define WPC8769L_BANK_E4 0xe4
+
+#define WPC8769L_READ_ON_STARTUP_REG 0x00
+
+/*------------*/
+#define WPC8769L_BANK_EC 0xec
+
+#define WPC8769L_CONFIG3_REG 0x04
+#define WPC8769L_CONFIG3_ON_MASK 0x01
+#define WPC8769L_CONFIG3_MASK_1 0x10
+
+/*------------*/
+#define WPC8769L_BANK_F0 0xf0
+
+#define WPC8769L_WAKEUP_STATUS_LEG_REG 0x02
+#define WPC8769L_WAKEUP_STATUS_LEG_MASK 0x04
+#define WPC8769L_WAKEUP_STATUS_LEG_MASK_A 0x02
+#define WPC8769L_WAKEUP_STATUS_LEG_MASK_B 0x08
+
+/*------------*/
+#define WPC8769L_BANK_F4 0xf4
+
+#define WPC8769L_CONFIG9_REG 0x01
+
+#define WPC8769L_CONFIG4_REG 0x02
+#define WPC8769L_CONFIG4_AND_MASK 0x0f
+#define WPC8769L_CONFIG4_ON_MASK 0x50
+
+#define WPC8769L_CONFIG8_REG 0x04
+
+#define WPC8769L_CONFIG2_REG 0x07
+#define WPC8769L_CONFIG2_OFF_MASK 0x20
+#define WPC8769L_CONFIG2_MASK_1 0x10
+
+
+/* Registers for I/O range 2. */
+#define WPC8769L_WAKEUP_ACK_REG 0x00
+#define WPC8769L_WAKEUP_ACK_MASK 0x10
+
+#define WPC8769L_WAKEUP_ENABLE_REG 0x02
+#define WPC8769L_WAKEUP_ENABLE_MASK 0x10
+
+#define WPC8769L_BANK2_CLOCK_REG 0x04
+#define WPC8769L_CLOCK_OFF_MASK 0x02
+#define WPC8769L_CLOCK_ON_MASK 0x01
+
+#define WPC8769L_WAKEUP_CONFIG_REG 0x1a
+#define WPC8769L_WAKEUP_CONFIG_PRE_MASK 0x80
+#define WPC8769L_MAX_INFO_BITS_BIAS 0x0e
+#define WPC8769L_MAX_INFO_BITS_SHIFT 0x01
+
+#define WPC8769L_WAKEUP_CONFIG3_REG 0x13
+#define WPC8769L_WAKEUP_CONFIG3_OFF_MASK 0x10
+#define WPC8769L_WAKEUP_CONFIG3_ON_MASK 0x21
+#define WPC8769L_WAKEUP_CONFIG3_A_SHIFT 0x01
+#define WPC8769L_WAKEUP_CONFIG3_A_MASK 0x03
+#define WPC8769L_WAKEUP_CONFIG3_B_SHIFT 0x03
+#define WPC8769L_WAKEUP_CONFIG3_B_MASK 0x01
+
+#define WPC8769L_WAKEUP_STATUS_REG 0x14
+#define WPC8769L_WAKEUP_WOKE_UP_MASK 0x01
+#define WPC8769L_WAKEUP_CONFIGURING_MASK 0x17
+
+#define WPC8769L_WAKEUP_CONFIG2_REG 0x15
+#define WPC8769L_WAKEUP_CONFIG2_AND_MASK 0xf9
+#define WPC8769L_WAKEUP_CONFIG2_OR_MASK 0x01
+
+#define WPC8769L_WAKEUP_DATA_PTR_REG 0x18
+#define WPC8769L_WAKEUP_DATA_BITS 0x20
+#define WPC8769L_WAKEUP_DATA_BASE 0x10
+#define WPC8769L_WAKEUP_MASK_BASE 0x20
+
+#define WPC8769L_WAKEUP_DATA_REG 0x19
+
diff --git a/ubuntu/ndiswrapper/BOM b/ubuntu/ndiswrapper/BOM
new file mode 100644
index 00000000000..c5dc0e4960b
--- /dev/null
+++ b/ubuntu/ndiswrapper/BOM
@@ -0,0 +1,2 @@
+Downloaded from: http://sourceforge.net/project/showfiles.php?group_id=93482
+Current Version: 1.55
diff --git a/ubuntu/ndiswrapper/Kconfig b/ubuntu/ndiswrapper/Kconfig
new file mode 100644
index 00000000000..554d557a92a
--- /dev/null
+++ b/ubuntu/ndiswrapper/Kconfig
@@ -0,0 +1,4 @@
+config NDISWRAPPER
+ tristate "Wrapper for Windows NDIS network drivers"
+ depends on NET
+ default m
diff --git a/ubuntu/ndiswrapper/Makefile b/ubuntu/ndiswrapper/Makefile
new file mode 100644
index 00000000000..2a8fe4e90ec
--- /dev/null
+++ b/ubuntu/ndiswrapper/Makefile
@@ -0,0 +1,38 @@
+ndiswrapper-objs := crt.o hal.o iw_ndis.o loader.o ndis.o ntoskernel.o ntoskernel_io.o \
+ pe_linker.o pnp.o proc.o rtl.o wrapmem.o wrapndis.o wrapper.o usb.o
+
+EXPORTS = crt_exports.h hal_exports.h ndis_exports.h ntoskernel_exports.h \
+ ntoskernel_io_exports.h rtl_exports.h usb_exports.h
+
+STUB_SRCS = crt.c hal.c ndis.c ntoskernel.c ntoskernel_io.c \
+ pnp.c rtl.c wrapndis.c usb.c
+
+
+EXTRA_CFLAGS += -DENABLE_USB -I$(obj)
+EXTRA_AFLAGS += -I$(obj)
+
+# generate exports symbol table from C files
+quiet_cmd_mkexport = MKEXPORT $@
+cmd_mkexport = $(SHELL) $(srctree)/$(src)/mkexport.sh $< $@
+
+%_exports.h: %.c $(srctree)/$(src)/mkexport.sh FORCE
+ $(call if_changed,mkexport)
+
+$(addprefix $(obj)/,$(EXPORTS:_exports.h=.o)): %.o: %_exports.h
+extra-y += $(EXPORTS)
+
+ifeq ($(CONFIG_X86_64),y)
+quiet_cmd_mkstubs = MKSTUBS $@
+cmd_mkstubs = $(SHELL) $(srctree)/$(src)/mkstubs.sh $(addprefix $(srctree)/$(src)/,$(STUB_SRCS)) >$@
+
+$(obj)/win2lin_stubs.h: $(addprefix $(srctree)/$(src)/,$(STUB_SRCS)) FORCE
+ $(call if_changed,mkstubs)
+
+$(obj)/win2lin_stubs.o: $(obj)/win2lin_stubs.h
+extra-y += win2lin_stubs.h
+ndiswrapper-objs += win2lin_stubs.o
+else
+ndiswrapper-objs += divdi3.o
+endif
+
+obj-$(CONFIG_NDISWRAPPER) := ndiswrapper.o
diff --git a/ubuntu/ndiswrapper/crt.c b/ubuntu/ndiswrapper/crt.c
new file mode 100644
index 00000000000..ee0cbe10a17
--- /dev/null
+++ b/ubuntu/ndiswrapper/crt.c
@@ -0,0 +1,578 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "ntoskernel.h"
+#include "crt_exports.h"
+
+#ifdef CONFIG_X86_64
+/* Windows long is 32-bit, so strip single 'l' in integer formats */
+static void strip_l_modifier(char *str)
+{
+ char *ptr = str;
+ int in_format = 0;
+ char *lptr = NULL;
+ char last = 0;
+ char *end_ptr;
+ char *wptr;
+
+ /* Replace single 'l' inside integer formats with '\0' */
+ for (ptr = str; *ptr; ptr++) {
+ if (!in_format) {
+ if (*ptr == '%')
+ in_format = 1;
+ last = *ptr;
+ continue;
+ }
+ switch (*ptr) {
+ case 'd':
+ case 'i':
+ case 'o':
+ case 'u':
+ case 'x':
+ case 'X':
+ case 'p':
+ case 'n':
+ case 'm':
+ if (lptr) {
+ *lptr = '\0';
+ lptr = NULL;
+ }
+ in_format = 0;
+ break;
+ case 'c':
+ case 'C':
+ case 's':
+ case 'S':
+ case 'f':
+ case 'e':
+ case 'E':
+ case 'g':
+ case 'G':
+ case 'a':
+ case 'A':
+ lptr = NULL;
+ in_format = 0;
+ break;
+ case '%':
+ lptr = NULL;
+ if (last == '%')
+ in_format = 0;
+ else
+ in_format = 1; /* ignore previous junk */
+ break;
+ case 'l':
+ if (last == 'l')
+ lptr = NULL;
+ else
+ lptr = ptr;
+ break;
+ default:
+ break;
+ }
+ last = *ptr;
+ }
+
+ /* Purge zeroes from the resulting string */
+ end_ptr = ptr;
+ wptr = str;
+ for (ptr = str; ptr < end_ptr; ptr++)
+ if (*ptr != 0)
+ *(wptr++) = *ptr;
+ *wptr = 0;
+}
+
+/*
+ * va_list on x86_64 Linux is designed to allow passing arguments in registers
+ * even to variadic functions. va_list is a structure holding pointers to the
+ * register save area, which holds the arguments passed in registers, and to
+ * the stack, which may have the arguments that did not fit the registers.
+ * va_list also holds offsets in the register save area for the next general
+ * purpose and floating point registers that the next va_arg() would fetch.
+ *
+ * Unlike Linux, the Windows va_list is just a pointer to the stack. No
+ * arguments are passed in the registers. That's why we construct the Linux
+ * va_list so that the register save area is never used. For that goal, we set
+ * the offsets to the maximal allowed values, meaning that the arguments passed
+ * in the registers have been exhausted. The values are 48 for general purpose
+ * registers (6 registers, 8 bytes each) and 304 for floating point registers
+ * (16 registers, 16 bytes each, on top of general purpose register).
+ */
+
+struct x86_64_va_list {
+ int gp_offset;
+ int fp_offset;
+ void *overflow_arg_area;
+ void *reg_save_area;
+};
+
+#define VA_LIST_DECL(_args) \
+ va_list _args##new; \
+ struct x86_64_va_list *_args##x;
+#define VA_LIST_PREP(_args) \
+do { \
+ _args##x = (struct x86_64_va_list *)&_args##new; \
+ _args##x->gp_offset = 6 * 8; /* GP registers exhausted */ \
+ _args##x->fp_offset = 6 * 8 + 16 * 16; /* FP registers exhausted */ \
+ _args##x->overflow_arg_area = (void *)_args; \
+ _args##x->reg_save_area = NULL; \
+} while (0)
+#define VA_LIST_CONV(_args) (_args##new)
+#define VA_LIST_FREE(_args)
+#define FMT_DECL(_fmt) \
+ char *_fmt##copy; \
+ int _fmt##len;
+#define FMT_PREP(_fmt) \
+do { \
+ _fmt##len = strlen(format) + 1; \
+ _fmt##copy = kmalloc(_fmt##len, GFP_KERNEL); \
+ if (_fmt##copy) { \
+ memcpy(_fmt##copy, format, _fmt##len); \
+ strip_l_modifier(_fmt##copy); \
+ } \
+} while (0)
+#define FMT_CONV(_fmt) (_fmt##copy ? _fmt##copy : format)
+#define FMT_FREE(_fmt) kfree(_fmt##copy)
+
+#else /* !CONFIG_X86_64 */
+
+#define VA_LIST_DECL(_args)
+#define VA_LIST_PREP(_args)
+#define VA_LIST_CONV(_args) (_args)
+#define VA_LIST_FREE(_args)
+#define FMT_DECL(_fmt)
+#define FMT_PREP(_fmt)
+#define FMT_CONV(_fmt) (format)
+#define FMT_FREE(_fmt)
+
+#endif /* !CONFIG_X86_64 */
+
+noregparm INT WIN_FUNC(_win_sprintf,12)
+ (char *buf, const char *format, ...)
+{
+ va_list args;
+ int res;
+ FMT_DECL(format)
+
+ FMT_PREP(format);
+ va_start(args, format);
+ res = vsprintf(buf, FMT_CONV(format), args);
+ va_end(args);
+ FMT_FREE(format);
+
+ TRACE2("buf: %p: %s", buf, buf);
+ return res;
+}
+
+noregparm INT WIN_FUNC(swprintf,12)
+ (wchar_t *buf, const wchar_t *format, ...)
+{
+ TODO();
+ EXIT2(return 0);
+}
+
+noregparm INT WIN_FUNC(_win_vsprintf,3)
+ (char *str, const char *format, va_list ap)
+{
+ INT i;
+ VA_LIST_DECL(ap)
+ FMT_DECL(format)
+
+ VA_LIST_PREP(ap);
+ FMT_PREP(format);
+
+ i = vsprintf(str, FMT_CONV(format), VA_LIST_CONV(ap));
+ TRACE2("str: %p: %s", str, str);
+
+ FMT_FREE(format);
+ VA_LIST_FREE(ap);
+ EXIT2(return i);
+}
+
+noregparm INT WIN_FUNC(_win_snprintf,12)
+ (char *buf, SIZE_T count, const char *format, ...)
+{
+ va_list args;
+ int res;
+ FMT_DECL(format)
+
+ FMT_PREP(format);
+ va_start(args, format);
+ res = vsnprintf(buf, count, FMT_CONV(format), args);
+ va_end(args);
+ TRACE2("buf: %p: %s", buf, buf);
+
+ FMT_FREE(format);
+ return res;
+}
+
+noregparm INT WIN_FUNC(_win__snprintf,12)
+ (char *buf, SIZE_T count, const char *format, ...)
+{
+ va_list args;
+ int res;
+ FMT_DECL(format)
+
+ FMT_PREP(format);
+ va_start(args, format);
+ res = vsnprintf(buf, count, FMT_CONV(format), args);
+ va_end(args);
+ TRACE2("buf: %p: %s", buf, buf);
+
+ FMT_FREE(format);
+ return res;
+}
+
+noregparm INT WIN_FUNC(_win_vsnprintf,4)
+ (char *str, SIZE_T size, const char *format, va_list ap)
+{
+ INT i;
+ VA_LIST_DECL(ap)
+ FMT_DECL(format)
+
+ VA_LIST_PREP(ap);
+ FMT_PREP(format);
+
+ i = vsnprintf(str, size, FMT_CONV(format), VA_LIST_CONV(ap));
+ TRACE2("str: %p: %s", str, str);
+
+ FMT_FREE(format);
+ VA_LIST_FREE(ap);
+ EXIT2(return i);
+}
+
+noregparm INT WIN_FUNC(_win__vsnprintf,4)
+ (char *str, SIZE_T size, const char *format, va_list ap)
+{
+ INT i;
+ VA_LIST_DECL(ap)
+ FMT_DECL(format)
+
+ VA_LIST_PREP(ap);
+ FMT_PREP(format);
+
+ i = vsnprintf(str, size, FMT_CONV(format), VA_LIST_CONV(ap));
+ TRACE2("str: %p: %s", str, str);
+
+ FMT_FREE(format);
+ VA_LIST_FREE(ap);
+ EXIT2(return i);
+}
+
+noregparm char *WIN_FUNC(_win_strncpy,3)
+ (char *dst, char *src, SIZE_T n)
+{
+ return strncpy(dst, src, n);
+}
+
+noregparm SIZE_T WIN_FUNC(_win_strlen,1)
+ (const char *s)
+{
+ return strlen(s);
+}
+
+noregparm INT WIN_FUNC(_win_strncmp,3)
+ (const char *s1, const char *s2, SIZE_T n)
+{
+ return strncmp(s1, s2, n);
+}
+
+noregparm INT WIN_FUNC(_win_strcmp,2)
+ (const char *s1, const char *s2)
+{
+ return strcmp(s1, s2);
+}
+
+noregparm INT WIN_FUNC(_win_stricmp,2)
+ (const char *s1, const char *s2)
+{
+ return stricmp(s1, s2);
+}
+
+noregparm char *WIN_FUNC(_win_strncat,3)
+ (char *dest, const char *src, SIZE_T n)
+{
+ return strncat(dest, src, n);
+}
+
+noregparm INT WIN_FUNC(_win_wcscmp,2)
+ (const wchar_t *s1, const wchar_t *s2)
+{
+ while (*s1 && *s1 == *s2) {
+ s1++;
+ s2++;
+ }
+ return *s1 - *s2;
+}
+
+noregparm INT WIN_FUNC(_win_wcsicmp,2)
+ (const wchar_t *s1, const wchar_t *s2)
+{
+ while (*s1 && tolower((char)*s1) == tolower((char)*s2)) {
+ s1++;
+ s2++;
+ }
+ return tolower((char)*s1) - tolower((char)*s2);
+}
+
+noregparm SIZE_T WIN_FUNC(_win_wcslen,1)
+ (const wchar_t *s)
+{
+ const wchar_t *t = s;
+ while (*t)
+ t++;
+ return t - s;
+}
+
+noregparm wchar_t *WIN_FUNC(_win_wcsncpy,3)
+ (wchar_t *dest, const wchar_t *src, SIZE_T n)
+{
+ const wchar_t *s;
+ wchar_t *d;
+ s = src + n;
+ d = dest;
+ while (src < s && (*d++ = *src++))
+ ;
+ if (s > src)
+ memset(d, 0, (s - src) * sizeof(wchar_t));
+ return dest;
+}
+
+noregparm wchar_t *WIN_FUNC(_win_wcscpy,2)
+ (wchar_t *dest, const wchar_t *src)
+{
+ wchar_t *d = dest;
+ while ((*d++ = *src++))
+ ;
+ return dest;
+}
+
+noregparm wchar_t *WIN_FUNC(_win_wcscat,2)
+ (wchar_t *dest, const wchar_t *src)
+{
+ wchar_t *d;
+ d = dest;
+ while (*d)
+ d++;
+ while ((*d++ = *src++))
+ ;
+ return dest;
+}
+
+noregparm INT WIN_FUNC(_win_towupper,1)
+ (wchar_t c)
+{
+ return toupper(c);
+}
+
+noregparm INT WIN_FUNC(_win_towlower,1)
+ (wchar_t c)
+{
+ return tolower(c);
+}
+
+noregparm INT WIN_FUNC(_win_tolower,1)
+ (INT c)
+{
+ return tolower(c);
+}
+
+noregparm INT WIN_FUNC(_win_toupper,1)
+ (INT c)
+{
+ return toupper(c);
+}
+
+noregparm void *WIN_FUNC(_win_strcpy,2)
+ (void *to, const void *from)
+{
+ return strcpy(to, from);
+}
+
+noregparm char *WIN_FUNC(_win_strstr,2)
+ (const char *s1, const char *s2)
+{
+ return strstr(s1, s2);
+}
+
+noregparm char *WIN_FUNC(_win_strchr,2)
+ (const char *s, int c)
+{
+ return strchr(s, c);
+}
+
+noregparm char *WIN_FUNC(_win_strrchr,2)
+ (const char *s, int c)
+{
+ return strrchr(s, c);
+}
+
+noregparm void *WIN_FUNC(_win_memmove,3)
+ (void *to, void *from, SIZE_T count)
+{
+ return memmove(to, from, count);
+}
+
+noregparm void *WIN_FUNC(_win_memchr,3)
+ (const void *s, INT c, SIZE_T n)
+{
+ return memchr(s, c, n);
+}
+
+noregparm void *WIN_FUNC(_win_memcpy,3)
+ (void *to, const void *from, SIZE_T n)
+{
+ return memcpy(to, from, n);
+}
+
+noregparm void *WIN_FUNC(_win_memset,3)
+ (void *s, char c, SIZE_T count)
+{
+ return memset(s, c, count);
+}
+
+noregparm int WIN_FUNC(_win_memcmp,3)
+ (void *s1, void *s2, SIZE_T n)
+{
+ return memcmp(s1, s2, n);
+}
+
+noregparm void WIN_FUNC(_win_srand,1)
+ (UINT seed)
+{
+ net_srandom(seed);
+}
+
+noregparm int WIN_FUNC(rand,0)
+ (void)
+{
+ char buf[6];
+ int i, n;
+
+ get_random_bytes(buf, sizeof(buf));
+ for (n = i = 0; i < sizeof(buf) ; i++)
+ n += buf[i];
+ return n;
+}
+
+noregparm int WIN_FUNC(_win_atoi,1)
+ (const char *ptr)
+{
+ int i = simple_strtol(ptr, NULL, 10);
+ return i;
+}
+
+noregparm int WIN_FUNC(_win_isprint,1)
+ (int c)
+{
+ return isprint(c);
+}
+
+wstdcall s64 WIN_FUNC(_alldiv,2)
+ (s64 a, s64 b)
+{
+ return a / b;
+}
+
+wstdcall u64 WIN_FUNC(_aulldiv,2)
+ (u64 a, u64 b)
+{
+ return a / b;
+}
+
+wstdcall s64 WIN_FUNC(_allmul,2)
+ (s64 a, s64 b)
+{
+ return a * b;
+}
+
+wstdcall u64 WIN_FUNC(_aullmul,2)
+ (u64 a, u64 b)
+{
+ return a * b;
+}
+
+wstdcall s64 WIN_FUNC(_allrem,2)
+ (s64 a, s64 b)
+{
+ return a % b;
+}
+
+wstdcall u64 WIN_FUNC(_aullrem,2)
+ (u64 a, u64 b)
+{
+ return a % b;
+}
+
+__attribute__((regparm(3))) s64 WIN_FUNC(_allshl,2)
+ (s64 a, u8 b)
+{
+ return a << b;
+}
+
+__attribute__((regparm(3))) u64 WIN_FUNC(_aullshl,2)
+ (u64 a, u8 b)
+{
+ return a << b;
+}
+
+__attribute__((regparm(3))) s64 WIN_FUNC(_allshr,2)
+ (s64 a, u8 b)
+{
+ return a >> b;
+}
+
+__attribute__((regparm(3))) u64 WIN_FUNC(_aullshr,2)
+ (u64 a, u8 b)
+{
+ return a >> b;
+}
+
+int stricmp(const char *s1, const char *s2)
+{
+ while (*s1 && tolower(*s1) == tolower(*s2)) {
+ s1++;
+ s2++;
+ }
+ return *s1 - *s2;
+}
+
+void dump_bytes(const char *ctx, const u8 *from, int len)
+{
+ int i, j;
+ u8 *buf;
+
+ buf = kmalloc(len * 3 + 1, irql_gfp());
+ if (!buf) {
+ ERROR("couldn't allocate memory");
+ return;
+ }
+ for (i = j = 0; i < len; i++, j += 3) {
+ sprintf(&buf[j], "%02x ", from[i]);
+ }
+ buf[j] = 0;
+ printk(KERN_DEBUG "%s: %p: %s\n", ctx, from, buf);
+ kfree(buf);
+}
+
+int crt_init(void)
+{
+ return 0;
+}
+
+/* called when module is being removed */
+void crt_exit(void)
+{
+ EXIT4(return);
+}
diff --git a/ubuntu/ndiswrapper/divdi3.c b/ubuntu/ndiswrapper/divdi3.c
new file mode 100644
index 00000000000..f8cb92e1c16
--- /dev/null
+++ b/ubuntu/ndiswrapper/divdi3.c
@@ -0,0 +1,329 @@
+/* 64-bit multiplication and division
+ Copyright (C) 1989, 1992-1999, 2000, 2001, 2002, 2003
+ Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+
+#if BITS_PER_LONG != 32
+#error This is for 32-bit targets only
+#endif
+
+typedef unsigned int UQItype __attribute__ ((mode (QI)));
+typedef int SItype __attribute__ ((mode (SI)));
+typedef unsigned int USItype __attribute__ ((mode (SI)));
+typedef int DItype __attribute__ ((mode (DI)));
+typedef unsigned int UDItype __attribute__ ((mode (DI)));
+#define Wtype SItype
+#define HWtype SItype
+#define DWtype DItype
+#define UWtype USItype
+#define UHWtype USItype
+#define UDWtype UDItype
+#define W_TYPE_SIZE 32
+
+#include "longlong.h"
+
+#if defined(__BIG_ENDIAN)
+struct DWstruct { Wtype high, low;};
+#elif defined(__LITTLE_ENDIAN)
+struct DWstruct { Wtype low, high;};
+#else
+#error Unhandled endianity
+#endif
+typedef union { struct DWstruct s; DWtype ll; } DWunion;
+
+/* Prototypes of exported functions. */
+extern DWtype __divdi3 (DWtype u, DWtype v);
+extern DWtype __moddi3 (DWtype u, DWtype v);
+extern UDWtype __udivdi3 (UDWtype u, UDWtype v);
+extern UDWtype __umoddi3 (UDWtype u, UDWtype v);
+
+static UDWtype
+__udivmoddi4 (UDWtype n, UDWtype d, UDWtype *rp)
+{
+ DWunion ww;
+ DWunion nn, dd;
+ DWunion rr;
+ UWtype d0, d1, n0, n1, n2;
+ UWtype q0, q1;
+ UWtype b, bm;
+
+ nn.ll = n;
+ dd.ll = d;
+
+ d0 = dd.s.low;
+ d1 = dd.s.high;
+ n0 = nn.s.low;
+ n1 = nn.s.high;
+
+#if !UDIV_NEEDS_NORMALIZATION
+ if (d1 == 0)
+ {
+ if (d0 > n1)
+ {
+ /* 0q = nn / 0D */
+
+ udiv_qrnnd (q0, n0, n1, n0, d0);
+ q1 = 0;
+
+ /* Remainder in n0. */
+ }
+ else
+ {
+ /* qq = NN / 0d */
+
+ if (d0 == 0)
+ d0 = 1 / d0; /* Divide intentionally by zero. */
+
+ udiv_qrnnd (q1, n1, 0, n1, d0);
+ udiv_qrnnd (q0, n0, n1, n0, d0);
+
+ /* Remainder in n0. */
+ }
+
+ if (rp != 0)
+ {
+ rr.s.low = n0;
+ rr.s.high = 0;
+ *rp = rr.ll;
+ }
+ }
+
+#else /* UDIV_NEEDS_NORMALIZATION */
+
+ if (d1 == 0)
+ {
+ if (d0 > n1)
+ {
+ /* 0q = nn / 0D */
+
+ count_leading_zeros (bm, d0);
+
+ if (bm != 0)
+ {
+ /* Normalize, i.e. make the most significant bit of the
+ denominator set. */
+
+ d0 = d0 << bm;
+ n1 = (n1 << bm) | (n0 >> (W_TYPE_SIZE - bm));
+ n0 = n0 << bm;
+ }
+
+ udiv_qrnnd (q0, n0, n1, n0, d0);
+ q1 = 0;
+
+ /* Remainder in n0 >> bm. */
+ }
+ else
+ {
+ /* qq = NN / 0d */
+
+ if (d0 == 0)
+ d0 = 1 / d0; /* Divide intentionally by zero. */
+
+ count_leading_zeros (bm, d0);
+
+ if (bm == 0)
+ {
+ /* From (n1 >= d0) /\ (the most significant bit of d0 is set),
+ conclude (the most significant bit of n1 is set) /\ (the
+ leading quotient digit q1 = 1).
+
+ This special case is necessary, not an optimization.
+ (Shifts counts of W_TYPE_SIZE are undefined.) */
+
+ n1 -= d0;
+ q1 = 1;
+ }
+ else
+ {
+ /* Normalize. */
+
+ b = W_TYPE_SIZE - bm;
+
+ d0 = d0 << bm;
+ n2 = n1 >> b;
+ n1 = (n1 << bm) | (n0 >> b);
+ n0 = n0 << bm;
+
+ udiv_qrnnd (q1, n1, n2, n1, d0);
+ }
+
+ /* n1 != d0... */
+
+ udiv_qrnnd (q0, n0, n1, n0, d0);
+
+ /* Remainder in n0 >> bm. */
+ }
+
+ if (rp != 0)
+ {
+ rr.s.low = n0 >> bm;
+ rr.s.high = 0;
+ *rp = rr.ll;
+ }
+ }
+#endif /* UDIV_NEEDS_NORMALIZATION */
+
+ else
+ {
+ if (d1 > n1)
+ {
+ /* 00 = nn / DD */
+
+ q0 = 0;
+ q1 = 0;
+
+ /* Remainder in n1n0. */
+ if (rp != 0)
+ {
+ rr.s.low = n0;
+ rr.s.high = n1;
+ *rp = rr.ll;
+ }
+ }
+ else
+ {
+ /* 0q = NN / dd */
+
+ count_leading_zeros (bm, d1);
+ if (bm == 0)
+ {
+ /* From (n1 >= d1) /\ (the most significant bit of d1 is set),
+ conclude (the most significant bit of n1 is set) /\ (the
+ quotient digit q0 = 0 or 1).
+
+ This special case is necessary, not an optimization. */
+
+ /* The condition on the next line takes advantage of that
+ n1 >= d1 (true due to program flow). */
+ if (n1 > d1 || n0 >= d0)
+ {
+ q0 = 1;
+ sub_ddmmss (n1, n0, n1, n0, d1, d0);
+ }
+ else
+ q0 = 0;
+
+ q1 = 0;
+
+ if (rp != 0)
+ {
+ rr.s.low = n0;
+ rr.s.high = n1;
+ *rp = rr.ll;
+ }
+ }
+ else
+ {
+ UWtype m1, m0;
+ /* Normalize. */
+
+ b = W_TYPE_SIZE - bm;
+
+ d1 = (d1 << bm) | (d0 >> b);
+ d0 = d0 << bm;
+ n2 = n1 >> b;
+ n1 = (n1 << bm) | (n0 >> b);
+ n0 = n0 << bm;
+
+ udiv_qrnnd (q0, n1, n2, n1, d1);
+ umul_ppmm (m1, m0, q0, d0);
+
+ if (m1 > n1 || (m1 == n1 && m0 > n0))
+ {
+ q0--;
+ sub_ddmmss (m1, m0, m1, m0, d1, d0);
+ }
+
+ q1 = 0;
+
+ /* Remainder in (n1n0 - m1m0) >> bm. */
+ if (rp != 0)
+ {
+ sub_ddmmss (n1, n0, n1, n0, m1, m0);
+ rr.s.low = (n1 << b) | (n0 >> bm);
+ rr.s.high = n1 >> bm;
+ *rp = rr.ll;
+ }
+ }
+ }
+ }
+
+ ww.s.low = q0;
+ ww.s.high = q1;
+ return ww.ll;
+}
+
+DWtype
+__divdi3 (DWtype u, DWtype v)
+{
+ Wtype c = 0;
+ DWtype w;
+
+ if (u < 0)
+ {
+ c = ~c;
+ u = -u;
+ }
+ if (v < 0)
+ {
+ c = ~c;
+ v = -v;
+ }
+ w = __udivmoddi4 (u, v, NULL);
+ if (c)
+ w = -w;
+ return w;
+}
+
+DWtype
+__moddi3 (DWtype u, DWtype v)
+{
+ Wtype c = 0;
+ DWtype w;
+
+ if (u < 0)
+ {
+ c = ~c;
+ u = -u;
+ }
+ if (v < 0)
+ v = -v;
+ __udivmoddi4 (u, v, &w);
+ if (c)
+ w = -w;
+ return w;
+}
+
+UDWtype
+__udivdi3 (UDWtype u, UDWtype v)
+{
+ return __udivmoddi4 (u, v, NULL);
+}
+
+UDWtype
+__umoddi3 (UDWtype u, UDWtype v)
+{
+ UDWtype w;
+
+ __udivmoddi4 (u, v, &w);
+ return w;
+}
diff --git a/ubuntu/ndiswrapper/hal.c b/ubuntu/ndiswrapper/hal.c
new file mode 100644
index 00000000000..1467d08af77
--- /dev/null
+++ b/ubuntu/ndiswrapper/hal.c
@@ -0,0 +1,157 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "ntoskernel.h"
+#include "hal_exports.h"
+
+wstdcall void WIN_FUNC(WRITE_PORT_ULONG,2)
+ (ULONG_PTR port, ULONG value)
+{
+ outl(value, port);
+}
+
+wstdcall ULONG WIN_FUNC(READ_PORT_ULONG,1)
+ (ULONG_PTR port)
+{
+ return inl(port);
+}
+
+wstdcall void WIN_FUNC(WRITE_PORT_USHORT,2)
+ (ULONG_PTR port, USHORT value)
+{
+ outw(value, port);
+}
+
+wstdcall USHORT WIN_FUNC(READ_PORT_USHORT,1)
+ (ULONG_PTR port)
+{
+ return inw(port);
+}
+
+wstdcall void WIN_FUNC(WRITE_PORT_UCHAR,2)
+ (ULONG_PTR port, UCHAR value)
+{
+ outb(value, port);
+}
+
+wstdcall UCHAR WIN_FUNC(READ_PORT_UCHAR,1)
+ (ULONG_PTR port)
+{
+ return inb(port);
+}
+
+wstdcall void WIN_FUNC(WRITE_PORT_BUFFER_USHORT,3)
+ (ULONG_PTR port, USHORT *buf, ULONG count)
+{
+ outsw(port, buf, count);
+}
+
+wstdcall void WIN_FUNC(READ_PORT_BUFFER_USHORT,3)
+ (ULONG_PTR port, USHORT *buf, ULONG count)
+{
+ insw(port, buf, count);
+}
+
+wstdcall void WIN_FUNC(WRITE_PORT_BUFFER_ULONG,3)
+ (ULONG_PTR port, ULONG *buf, ULONG count)
+{
+ outsl(port, buf, count);
+}
+
+wstdcall void WIN_FUNC(READ_PORT_BUFFER_ULONG,3)
+ (ULONG_PTR port, ULONG *buf, ULONG count)
+{
+ insl(port, buf, count);
+}
+
+wstdcall USHORT WIN_FUNC(READ_REGISTER_USHORT,1)
+ (void __iomem *reg)
+{
+ return readw(reg);
+}
+
+wstdcall void WIN_FUNC(WRITE_REGISTER_ULONG,2)
+ (void __iomem *reg, UINT val)
+{
+ writel(val, reg);
+}
+
+wstdcall void WIN_FUNC(WRITE_REGISTER_USHORT,2)
+ (void __iomem *reg, USHORT val)
+{
+ writew(val, reg);
+}
+
+wstdcall void WIN_FUNC(WRITE_REGISTER_UCHAR,2)
+ (void __iomem *reg, UCHAR val)
+{
+ writeb(val, reg);
+}
+
+wstdcall void WIN_FUNC(KeStallExecutionProcessor,1)
+ (ULONG usecs)
+{
+ udelay(usecs);
+}
+
+wstdcall KIRQL WIN_FUNC(KeGetCurrentIrql,0)
+ (void)
+{
+ return current_irql();
+}
+
+wfastcall KIRQL WIN_FUNC(KfRaiseIrql,1)
+ (KIRQL newirql)
+{
+ return raise_irql(newirql);
+}
+
+wfastcall void WIN_FUNC(KfLowerIrql,1)
+ (KIRQL oldirql)
+{
+ lower_irql(oldirql);
+}
+
+wfastcall KIRQL WIN_FUNC(KfAcquireSpinLock,1)
+ (NT_SPIN_LOCK *lock)
+{
+ return nt_spin_lock_irql(lock, DISPATCH_LEVEL);
+}
+
+wfastcall void WIN_FUNC(KfReleaseSpinLock,2)
+ (NT_SPIN_LOCK *lock, KIRQL oldirql)
+{
+ nt_spin_unlock_irql(lock, oldirql);
+}
+
+wfastcall void WIN_FUNC(KefAcquireSpinLockAtDpcLevel,1)
+ (NT_SPIN_LOCK *lock)
+{
+#ifdef DEBUG_IRQL
+ if (current_irql() != DISPATCH_LEVEL)
+ ERROR("irql != DISPATCH_LEVEL");
+#endif
+ nt_spin_lock(lock);
+}
+
+wfastcall void WIN_FUNC(KefReleaseSpinLockFromDpcLevel,1)
+ (NT_SPIN_LOCK *lock)
+{
+#ifdef DEBUG_IRQL
+ if (current_irql() != DISPATCH_LEVEL)
+ ERROR("irql != DISPATCH_LEVEL");
+#endif
+ nt_spin_unlock(lock);
+}
diff --git a/ubuntu/ndiswrapper/iw_ndis.c b/ubuntu/ndiswrapper/iw_ndis.c
new file mode 100644
index 00000000000..434260e8909
--- /dev/null
+++ b/ubuntu/ndiswrapper/iw_ndis.c
@@ -0,0 +1,1973 @@
+ /*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <linux/version.h>
+#include <linux/wireless.h>
+#include <linux/netdevice.h>
+#include <linux/etherdevice.h>
+#include <linux/ethtool.h>
+#include <linux/if_arp.h>
+#include <linux/usb.h>
+#include <linux/random.h>
+
+#include <net/iw_handler.h>
+#include <linux/rtnetlink.h>
+#include <asm/uaccess.h>
+
+#include "iw_ndis.h"
+#include "wrapndis.h"
+
+static int freq_chan[] = { 2412, 2417, 2422, 2427, 2432, 2437, 2442,
+ 2447, 2452, 2457, 2462, 2467, 2472, 2484 };
+
+static const char *network_names[] = {"IEEE 802.11FH", "IEEE 802.11b",
+ "IEEE 802.11a", "IEEE 802.11g", "Auto"};
+
+int set_essid(struct ndis_device *wnd, const char *ssid, int ssid_len)
+{
+ NDIS_STATUS res;
+ struct ndis_essid req;
+
+ if (ssid_len > NDIS_ESSID_MAX_SIZE)
+ return -EINVAL;
+
+ memset(&req, 0, sizeof(req));
+ req.length = ssid_len;
+ if (ssid_len)
+ memcpy(&req.essid, ssid, ssid_len);
+
+ res = mp_set(wnd, OID_802_11_SSID, &req, sizeof(req));
+ if (res) {
+ WARNING("setting essid failed (%08X)", res);
+ EXIT2(return -EINVAL);
+ }
+ memcpy(&wnd->essid, &req, sizeof(req));
+ EXIT2(return 0);
+}
+
+static int set_assoc_params(struct ndis_device *wnd)
+{
+ TRACE2("wpa_version=0x%x auth_alg=0x%x key_mgmt=0x%x "
+ "cipher_pairwise=0x%x cipher_group=0x%x",
+ wnd->iw_auth_wpa_version, wnd->iw_auth_80211_alg,
+ wnd->iw_auth_key_mgmt, wnd->iw_auth_cipher_pairwise,
+ wnd->iw_auth_cipher_group);
+ set_auth_mode(wnd);
+ set_priv_filter(wnd);
+ set_encr_mode(wnd);
+ return 0;
+}
+
+static int iw_set_essid(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ char ssid[NDIS_ESSID_MAX_SIZE];
+ int length;
+
+ ENTER2("");
+ memset(ssid, 0, sizeof(ssid));
+ /* there is no way to turn off essid other than to set to
+ * random bytes; instead, we use off to mean any */
+ if (wrqu->essid.flags) {
+ /* wireless-tools prior to version 20 add extra 1, and
+ * later than 20 don't! Deal with that mess */
+ length = wrqu->essid.length - 1;
+ if (length > 0)
+ length--;
+ while (length < wrqu->essid.length && extra[length])
+ length++;
+ TRACE2("%d", length);
+ if (length <= 0 || length > NDIS_ESSID_MAX_SIZE)
+ EXIT2(return -EINVAL);
+ } else
+ length = 0;
+
+ set_assoc_params(wnd);
+
+ memcpy(ssid, extra, length);
+ if (set_essid(wnd, ssid, length))
+ EXIT2(return -EINVAL);
+
+ EXIT2(return 0);
+}
+
+static int iw_get_essid(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ NDIS_STATUS res;
+ struct ndis_essid req;
+
+ ENTER2("");
+ memset(&req, 0, sizeof(req));
+ res = mp_query(wnd, OID_802_11_SSID, &req, sizeof(req));
+ if (res) {
+ WARNING("getting essid failed (%08X)", res);
+ EXIT2(return -EOPNOTSUPP);
+ }
+ memcpy(extra, req.essid, req.length);
+ if (req.length > 0)
+ wrqu->essid.flags = 1;
+ else
+ wrqu->essid.flags = 0;
+ wrqu->essid.length = req.length;
+ EXIT2(return 0);
+}
+
+int set_infra_mode(struct ndis_device *wnd,
+ enum ndis_infrastructure_mode mode)
+{
+ NDIS_STATUS res;
+ unsigned int i;
+
+ ENTER2("%d", mode);
+ res = mp_query_int(wnd, OID_802_11_INFRASTRUCTURE_MODE,
+ &wnd->infrastructure_mode);
+ if (res != NDIS_STATUS_SUCCESS) {
+ WARNING("getting operating mode to failed (%08X)", res);
+ EXIT2(return -EINVAL);
+ }
+ if (wnd->infrastructure_mode == mode)
+ EXIT2(return 0);
+ res = mp_set_int(wnd, OID_802_11_INFRASTRUCTURE_MODE, mode);
+ if (res) {
+ WARNING("setting operating mode to %d failed (%08X)",
+ mode, res);
+ EXIT2(return -EINVAL);
+ }
+ /* NDIS drivers clear keys when infrastructure mode is
+ * changed. But Linux tools assume otherwise. So set the
+ * keys */
+ if (wnd->iw_auth_key_mgmt == 0 ||
+ wnd->iw_auth_key_mgmt == IW_AUTH_KEY_MGMT_802_1X) {
+ for (i = 0; i < MAX_ENCR_KEYS; i++) {
+ if (wnd->encr_info.keys[i].length > 0)
+ add_wep_key(wnd, wnd->encr_info.keys[i].key,
+ wnd->encr_info.keys[i].length, i);
+ }
+ }
+ wnd->infrastructure_mode = mode;
+ EXIT2(return 0);
+}
+
+static int iw_set_infra_mode(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ enum ndis_infrastructure_mode ndis_mode;
+
+ ENTER2("%d", wrqu->mode);
+ switch (wrqu->mode) {
+ case IW_MODE_ADHOC:
+ ndis_mode = Ndis802_11IBSS;
+ break;
+ case IW_MODE_INFRA:
+ ndis_mode = Ndis802_11Infrastructure;
+ break;
+ case IW_MODE_AUTO:
+ ndis_mode = Ndis802_11AutoUnknown;
+ break;
+ default:
+ EXIT2(return -EINVAL);
+ }
+
+ if (set_infra_mode(wnd, ndis_mode))
+ EXIT2(return -EINVAL);
+
+ EXIT2(return 0);
+}
+
+static int iw_get_infra_mode(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ int ndis_mode, iw_mode;
+ NDIS_STATUS res;
+
+ ENTER2("");
+ res = mp_query_int(wnd, OID_802_11_INFRASTRUCTURE_MODE, &ndis_mode);
+ if (res) {
+ WARNING("getting operating mode failed (%08X)", res);
+ EXIT2(return -EOPNOTSUPP);
+ }
+
+ switch(ndis_mode) {
+ case Ndis802_11IBSS:
+ iw_mode = IW_MODE_ADHOC;
+ break;
+ case Ndis802_11Infrastructure:
+ iw_mode = IW_MODE_INFRA;
+ break;
+ case Ndis802_11AutoUnknown:
+ iw_mode = IW_MODE_AUTO;
+ break;
+ default:
+ ERROR("invalid operating mode (%u)", ndis_mode);
+ EXIT2(return -EINVAL);
+ }
+ wrqu->mode = iw_mode;
+ EXIT2(return 0);
+}
+
+static const char *network_type_to_name(int net_type)
+{
+ if (net_type >= 0 &&
+ net_type < (sizeof(network_names)/sizeof(network_names[0])))
+ return network_names[net_type];
+ else
+ return network_names[sizeof(network_names) /
+ sizeof(network_names[0]) - 1];
+}
+
+static int iw_get_network_type(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ unsigned int network_type;
+ NDIS_STATUS res;
+
+ ENTER2("");
+ res = mp_query_int(wnd, OID_802_11_NETWORK_TYPE_IN_USE,
+ &network_type);
+ if (res) {
+ WARNING("getting network type failed: %08X", res);
+ network_type = -1;
+ }
+ strncpy(wrqu->name, network_type_to_name(network_type),
+ sizeof(wrqu->name) - 1);
+ wrqu->name[sizeof(wrqu->name)-1] = 0;
+ return 0;
+}
+
+static int iw_get_freq(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ NDIS_STATUS res;
+ struct ndis_configuration req;
+
+ ENTER2("");
+ memset(&req, 0, sizeof(req));
+ res = mp_query(wnd, OID_802_11_CONFIGURATION, &req, sizeof(req));
+ if (res) {
+ WARNING("getting configuration failed (%08X)", res);
+ EXIT2(return -EOPNOTSUPP);
+ }
+
+ memset(&(wrqu->freq), 0, sizeof(struct iw_freq));
+
+ /* see comment in wireless.h above the "struct iw_freq"
+ definition for an explanation of this if
+ NOTE: 1000000 is due to the kHz
+ */
+ if (req.ds_config > 1000000) {
+ wrqu->freq.m = req.ds_config / 10;
+ wrqu->freq.e = 1;
+ }
+ else
+ wrqu->freq.m = req.ds_config;
+
+ /* convert from kHz to Hz */
+ wrqu->freq.e += 3;
+
+ return 0;
+}
+
+static int iw_set_freq(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ NDIS_STATUS res;
+ struct ndis_configuration req;
+
+ ENTER2("");
+ /* this OID is valid only when not associated */
+ if (netif_carrier_ok(wnd->net_dev))
+ EXIT2(return 0);
+ memset(&req, 0, sizeof(req));
+ res = mp_query(wnd, OID_802_11_CONFIGURATION, &req, sizeof(req));
+ if (res) {
+ WARNING("getting configuration failed (%08X)", res);
+ EXIT2(return 0);
+ }
+
+ if (wrqu->freq.m < 1000 && wrqu->freq.e == 0) {
+ if (wrqu->freq.m >= 1 &&
+ wrqu->freq.m <= (sizeof(freq_chan) / sizeof(freq_chan[0])))
+ req.ds_config = freq_chan[wrqu->freq.m - 1] * 1000;
+ else
+ return -EINVAL;
+ } else {
+ int i;
+ req.ds_config = wrqu->freq.m;
+ for (i = wrqu->freq.e; i > 0; i--)
+ req.ds_config *= 10;
+ req.ds_config /= 1000;
+ }
+ res = mp_set(wnd, OID_802_11_CONFIGURATION, &req, sizeof(req));
+ if (res)
+ WARNING("setting configuration failed (%08X)", res);
+ return 0;
+}
+
+static int iw_get_tx_power(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ ndis_tx_power_level ndis_power;
+ NDIS_STATUS res;
+
+ ENTER2("");
+ res = mp_query(wnd, OID_802_11_TX_POWER_LEVEL,
+ &ndis_power, sizeof(ndis_power));
+ if (res)
+ return -EOPNOTSUPP;
+ wrqu->txpower.flags = IW_TXPOW_MWATT;
+ wrqu->txpower.disabled = 0;
+ wrqu->txpower.fixed = 0;
+ wrqu->txpower.value = ndis_power;
+ return 0;
+}
+
+static int iw_set_tx_power(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ ndis_tx_power_level ndis_power;
+ NDIS_STATUS res;
+
+ ENTER2("");
+ if (wrqu->txpower.disabled)
+ ndis_power = 0;
+ else {
+ if (wrqu->txpower.flags == IW_TXPOW_MWATT)
+ ndis_power = wrqu->txpower.value;
+ else { // wrqu->txpower.flags == IW_TXPOW_DBM
+ if (wrqu->txpower.value > 20)
+ ndis_power = 128;
+ else if (wrqu->txpower.value < -43)
+ ndis_power = 127;
+ else {
+ signed char tmp;
+ tmp = wrqu->txpower.value;
+ tmp = -12 - tmp;
+ tmp <<= 2;
+ ndis_power = (unsigned char)tmp;
+ }
+ }
+ }
+ TRACE2("%d", ndis_power);
+ res = mp_set(wnd, OID_802_11_TX_POWER_LEVEL,
+ &ndis_power, sizeof(ndis_power));
+ if (res)
+ EXIT2(return -EOPNOTSUPP);
+ if (ndis_power == 0)
+ res = disassociate(wnd, 0);
+ EXIT2(return 0);
+}
+
+static int iw_get_bitrate(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ ULONG ndis_rate;
+ int res;
+
+ ENTER2("");
+ res = mp_query(wnd, OID_GEN_LINK_SPEED, &ndis_rate, sizeof(ndis_rate));
+ if (res) {
+ WARNING("getting bitrate failed (%08X)", res);
+ ndis_rate = 0;
+ }
+
+ wrqu->bitrate.value = ndis_rate * 100;
+ return 0;
+}
+
+static int iw_set_bitrate(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ int i, n;
+ NDIS_STATUS res;
+ ndis_rates_ex rates;
+
+ ENTER2("");
+ if (wrqu->bitrate.fixed == 0)
+ EXIT2(return 0);
+
+ res = mp_query_info(wnd, OID_802_11_SUPPORTED_RATES, &rates,
+ sizeof(rates), &n, NULL);
+ if (res) {
+ WARNING("getting bit rate failed (%08X)", res);
+ EXIT2(return 0);
+ }
+ for (i = 0; i < n; i++) {
+ if (rates[i] & 0x80)
+ continue;
+ if ((rates[i] & 0x7f) * 500000 > wrqu->bitrate.value) {
+ TRACE2("setting rate %d to 0",
+ (rates[i] & 0x7f) * 500000);
+ rates[i] = 0;
+ }
+ }
+
+ res = mp_set(wnd, OID_802_11_DESIRED_RATES, &rates, n);
+ if (res) {
+ WARNING("setting bit rate failed (%08X)", res);
+ EXIT2(return 0);
+ }
+
+ return 0;
+}
+
+static int iw_set_dummy(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ /* Do nothing. Used for ioctls that are not implemented. */
+ return 0;
+}
+
+static int iw_get_rts_threshold(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ ndis_rts_threshold threshold;
+ NDIS_STATUS res;
+
+ ENTER2("");
+ res = mp_query(wnd, OID_802_11_RTS_THRESHOLD,
+ &threshold, sizeof(threshold));
+ if (res)
+ return -EOPNOTSUPP;
+
+ wrqu->rts.value = threshold;
+ return 0;
+}
+
+static int iw_set_rts_threshold(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ ndis_rts_threshold threshold;
+ NDIS_STATUS res;
+
+ ENTER2("");
+ threshold = wrqu->rts.value;
+ res = mp_set(wnd, OID_802_11_RTS_THRESHOLD,
+ &threshold, sizeof(threshold));
+ if (res == NDIS_STATUS_INVALID_DATA)
+ return -EINVAL;
+ if (res)
+ return -EOPNOTSUPP;
+
+ return 0;
+}
+
+static int iw_get_frag_threshold(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ ndis_fragmentation_threshold frag_threshold;
+ NDIS_STATUS res;
+
+ ENTER2("");
+ res = mp_query(wnd, OID_802_11_FRAGMENTATION_THRESHOLD,
+ &frag_threshold, sizeof(frag_threshold));
+ if (res)
+ return -ENOTSUPP;
+
+ wrqu->frag.value = frag_threshold;
+ return 0;
+}
+
+static int iw_set_frag_threshold(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ ndis_rts_threshold threshold;
+ NDIS_STATUS res;
+
+ ENTER2("");
+ threshold = wrqu->frag.value;
+ res = mp_set(wnd, OID_802_11_FRAGMENTATION_THRESHOLD,
+ &threshold, sizeof(threshold));
+ if (res == NDIS_STATUS_INVALID_DATA)
+ return -EINVAL;
+ if (res)
+ return -EOPNOTSUPP;
+ return 0;
+}
+
+int get_ap_address(struct ndis_device *wnd, mac_address ap_addr)
+{
+ NDIS_STATUS res;
+
+ res = mp_query(wnd, OID_802_11_BSSID, ap_addr, ETH_ALEN);
+ TRACE2(MACSTRSEP, MAC2STR(ap_addr));
+ if (res) {
+ TRACE2("res: %08X", res);
+ memset(ap_addr, 0x0, ETH_ALEN);
+ EXIT2(return -EOPNOTSUPP);
+ }
+ EXIT2(return 0);
+}
+
+static int iw_get_ap_address(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ mac_address ap_addr;
+
+ ENTER2("");
+ get_ap_address(wnd, ap_addr);
+ memcpy(wrqu->ap_addr.sa_data, ap_addr, ETH_ALEN);
+ wrqu->ap_addr.sa_family = ARPHRD_ETHER;
+ EXIT2(return 0);
+}
+
+static int iw_set_ap_address(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ NDIS_STATUS res;
+ mac_address ap_addr;
+
+ ENTER2("");
+ memcpy(ap_addr, wrqu->ap_addr.sa_data, ETH_ALEN);
+ TRACE2(MACSTRSEP, MAC2STR(ap_addr));
+ res = mp_set(wnd, OID_802_11_BSSID, ap_addr, ETH_ALEN);
+ /* user apps may set ap's mac address, which is not required;
+ * they may fail to work if this function fails, so return
+ * success */
+ if (res)
+ WARNING("setting AP mac address failed (%08X)", res);
+
+ EXIT2(return 0);
+}
+
+int set_iw_auth_mode(struct ndis_device *wnd, int wpa_version,
+ int auth_80211_alg)
+{
+ NDIS_STATUS res;
+ ULONG auth_mode;
+
+ ENTER2("%d, %d", wpa_version, auth_80211_alg);
+ if (wpa_version & IW_AUTH_WPA_VERSION_WPA2) {
+ if (wnd->iw_auth_key_mgmt & IW_AUTH_KEY_MGMT_802_1X)
+ auth_mode = Ndis802_11AuthModeWPA2;
+ else
+ auth_mode = Ndis802_11AuthModeWPA2PSK;
+ } else if (wpa_version & IW_AUTH_WPA_VERSION_WPA) {
+ if (wnd->iw_auth_key_mgmt & IW_AUTH_KEY_MGMT_802_1X)
+ auth_mode = Ndis802_11AuthModeWPA;
+ else if (wnd->iw_auth_key_mgmt & IW_AUTH_KEY_MGMT_PSK)
+ auth_mode = Ndis802_11AuthModeWPAPSK;
+ else
+ auth_mode = Ndis802_11AuthModeWPANone;
+ } else if (auth_80211_alg & IW_AUTH_ALG_SHARED_KEY) {
+ if (auth_80211_alg & IW_AUTH_ALG_OPEN_SYSTEM)
+ auth_mode = Ndis802_11AuthModeAutoSwitch;
+ else
+ auth_mode = Ndis802_11AuthModeShared;
+ } else
+ auth_mode = Ndis802_11AuthModeOpen;
+
+ res = mp_set_int(wnd, OID_802_11_AUTHENTICATION_MODE, auth_mode);
+ if (res) {
+ WARNING("setting auth mode to %u failed (%08X)",
+ auth_mode, res);
+ if (res == NDIS_STATUS_INVALID_DATA)
+ EXIT2(return -EINVAL);
+ return -EOPNOTSUPP;
+ }
+ wnd->iw_auth_wpa_version = wpa_version;
+ wnd->iw_auth_80211_alg = auth_80211_alg;
+ EXIT2(return 0);
+}
+
+int set_ndis_auth_mode(struct ndis_device *wnd, ULONG auth_mode)
+{
+ NDIS_STATUS res;
+
+ ENTER2("%d", auth_mode);
+ res = mp_set_int(wnd, OID_802_11_AUTHENTICATION_MODE, auth_mode);
+ if (res) {
+ WARNING("setting auth mode to %u failed (%08X)",
+ auth_mode, res);
+ if (res == NDIS_STATUS_INVALID_DATA)
+ EXIT2(return -EINVAL);
+ return -EOPNOTSUPP;
+ }
+ switch (auth_mode) {
+ case Ndis802_11AuthModeWPA:
+ wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_WPA;
+ wnd->iw_auth_key_mgmt = IW_AUTH_KEY_MGMT_802_1X;
+ break;
+ case Ndis802_11AuthModeWPAPSK:
+ wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_WPA;
+ wnd->iw_auth_key_mgmt = IW_AUTH_KEY_MGMT_PSK;
+ case Ndis802_11AuthModeWPANone:
+ wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_DISABLED;
+ wnd->iw_auth_key_mgmt = IW_AUTH_KEY_MGMT_PSK;
+ break;
+ case Ndis802_11AuthModeWPA2:
+ wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_WPA2;
+ wnd->iw_auth_key_mgmt = IW_AUTH_KEY_MGMT_802_1X;
+ break;
+ case Ndis802_11AuthModeWPA2PSK:
+ wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_WPA2;
+ wnd->iw_auth_key_mgmt = IW_AUTH_KEY_MGMT_PSK;
+ break;
+ case Ndis802_11AuthModeOpen:
+ wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_DISABLED;
+ wnd->iw_auth_80211_alg = IW_AUTH_ALG_OPEN_SYSTEM;
+ break;
+ case Ndis802_11AuthModeShared:
+ wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_DISABLED;
+ wnd->iw_auth_80211_alg = IW_AUTH_ALG_SHARED_KEY;
+ break;
+ case Ndis802_11AuthModeAutoSwitch:
+ wnd->iw_auth_wpa_version = IW_AUTH_WPA_VERSION_DISABLED;
+ wnd->iw_auth_80211_alg = IW_AUTH_ALG_SHARED_KEY;
+ wnd->iw_auth_80211_alg |= IW_AUTH_ALG_OPEN_SYSTEM;
+ break;
+ default:
+ WARNING("invalid authentication algorithm: %d", auth_mode);
+ break;
+ }
+ EXIT2(return 0);
+}
+
+int set_auth_mode(struct ndis_device *wnd)
+{
+ return set_iw_auth_mode(wnd, wnd->iw_auth_wpa_version,
+ wnd->iw_auth_80211_alg);
+}
+
+int get_ndis_auth_mode(struct ndis_device *wnd)
+{
+ ULONG mode;
+ NDIS_STATUS res;
+
+ res = mp_query_int(wnd, OID_802_11_AUTHENTICATION_MODE, &mode);
+ if (res) {
+ WARNING("getting authentication mode failed (%08X)", res);
+ EXIT2(return -EOPNOTSUPP);
+ }
+ TRACE2("%d", mode);
+ return mode;
+}
+
+int set_iw_encr_mode(struct ndis_device *wnd, int cipher_pairwise,
+ int cipher_groupwise)
+{
+ NDIS_STATUS res;
+ ULONG ndis_mode;
+
+ ENTER2("%d, %d", cipher_pairwise, cipher_groupwise);
+ if (cipher_pairwise & IW_AUTH_CIPHER_CCMP)
+ ndis_mode = Ndis802_11Encryption3Enabled;
+ else if (cipher_pairwise & IW_AUTH_CIPHER_TKIP)
+ ndis_mode = Ndis802_11Encryption2Enabled;
+ else if (cipher_pairwise &
+ (IW_AUTH_CIPHER_WEP40 | IW_AUTH_CIPHER_WEP104))
+ ndis_mode = Ndis802_11Encryption1Enabled;
+ else if (cipher_groupwise & IW_AUTH_CIPHER_CCMP)
+ ndis_mode = Ndis802_11Encryption3Enabled;
+ else if (cipher_groupwise & IW_AUTH_CIPHER_TKIP)
+ ndis_mode = Ndis802_11Encryption2Enabled;
+ else
+ ndis_mode = Ndis802_11EncryptionDisabled;
+
+ res = mp_set_int(wnd, OID_802_11_ENCRYPTION_STATUS, ndis_mode);
+ if (res) {
+ WARNING("setting encryption mode to %u failed (%08X)",
+ ndis_mode, res);
+ if (res == NDIS_STATUS_INVALID_DATA)
+ EXIT2(return -EINVAL);
+ return -EOPNOTSUPP;
+ }
+ wnd->iw_auth_cipher_pairwise = cipher_pairwise;
+ wnd->iw_auth_cipher_group = cipher_groupwise;
+ EXIT2(return 0);
+}
+
+int set_encr_mode(struct ndis_device *wnd)
+{
+ return set_iw_encr_mode(wnd, wnd->iw_auth_cipher_pairwise,
+ wnd->iw_auth_cipher_group);
+}
+
+int get_ndis_encr_mode(struct ndis_device *wnd)
+{
+ ULONG mode;
+ NDIS_STATUS res;
+
+ ENTER2("");
+ res = mp_query_int(wnd, OID_802_11_ENCRYPTION_STATUS, &mode);
+ if (res) {
+ WARNING("getting encryption status failed (%08X)", res);
+ EXIT2(return -EOPNOTSUPP);
+ } else
+ EXIT2(return mode);
+}
+
+static int iw_get_encr(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ int index, mode;
+ struct encr_info *encr_info = &wnd->encr_info;
+
+ ENTER2("wnd = %p", wnd);
+ wrqu->data.length = 0;
+ extra[0] = 0;
+
+ index = (wrqu->encoding.flags & IW_ENCODE_INDEX);
+ TRACE2("index = %u", index);
+ if (index > 0)
+ index--;
+ else
+ index = encr_info->tx_key_index;
+
+ if (index < 0 || index >= MAX_ENCR_KEYS) {
+ WARNING("encryption index out of range (%u)", index);
+ EXIT2(return -EINVAL);
+ }
+
+ if (index != encr_info->tx_key_index) {
+ if (encr_info->keys[index].length > 0) {
+ wrqu->data.flags |= IW_ENCODE_ENABLED;
+ wrqu->data.length = encr_info->keys[index].length;
+ memcpy(extra, encr_info->keys[index].key,
+ encr_info->keys[index].length);
+ }
+ else
+ wrqu->data.flags |= IW_ENCODE_DISABLED;
+
+ EXIT2(return 0);
+ }
+
+ /* transmit key */
+ mode = get_ndis_encr_mode(wnd);
+ if (mode < 0)
+ EXIT2(return -EOPNOTSUPP);
+
+ if (mode == Ndis802_11EncryptionDisabled ||
+ mode == Ndis802_11EncryptionNotSupported)
+ wrqu->data.flags |= IW_ENCODE_DISABLED;
+ else {
+ if (mode == Ndis802_11Encryption1KeyAbsent ||
+ mode == Ndis802_11Encryption2KeyAbsent ||
+ mode == Ndis802_11Encryption3KeyAbsent)
+ wrqu->data.flags |= IW_ENCODE_NOKEY;
+ else {
+ wrqu->data.flags |= IW_ENCODE_ENABLED;
+ wrqu->encoding.flags |= index+1;
+ wrqu->data.length = encr_info->keys[index].length;
+ memcpy(extra, encr_info->keys[index].key,
+ encr_info->keys[index].length);
+ }
+ }
+ mode = get_ndis_auth_mode(wnd);
+ if (mode < 0)
+ EXIT2(return -EOPNOTSUPP);
+
+ if (mode == Ndis802_11AuthModeOpen)
+ wrqu->data.flags |= IW_ENCODE_OPEN;
+ else if (mode == Ndis802_11AuthModeAutoSwitch)
+ wrqu->data.flags |= IW_ENCODE_RESTRICTED;
+ else // Ndis802_11AuthModeAutoSwitch, Ndis802_11AuthModeWPA etc.
+ wrqu->data.flags |= IW_ENCODE_RESTRICTED;
+
+ EXIT2(return 0);
+}
+
+/* index must be 0 - N, as per NDIS */
+int add_wep_key(struct ndis_device *wnd, char *key, int key_len,
+ int index)
+{
+ struct ndis_encr_key ndis_key;
+ NDIS_STATUS res;
+
+ ENTER2("key index: %d, length: %d", index, key_len);
+ if (key_len <= 0 || key_len > NDIS_ENCODING_TOKEN_MAX) {
+ WARNING("invalid key length (%d)", key_len);
+ EXIT2(return -EINVAL);
+ }
+ if (index < 0 || index >= MAX_ENCR_KEYS) {
+ WARNING("invalid key index (%d)", index);
+ EXIT2(return -EINVAL);
+ }
+ ndis_key.struct_size = sizeof(ndis_key);
+ ndis_key.length = key_len;
+ memcpy(&ndis_key.key, key, key_len);
+ ndis_key.index = index;
+
+ if (index == wnd->encr_info.tx_key_index) {
+ ndis_key.index |= (1 << 31);
+ res = set_iw_encr_mode(wnd, IW_AUTH_CIPHER_WEP104,
+ IW_AUTH_CIPHER_NONE);
+ if (res)
+ WARNING("encryption couldn't be enabled (%08X)", res);
+ }
+ TRACE2("key %d: " MACSTRSEP, index, MAC2STR(key));
+ res = mp_set(wnd, OID_802_11_ADD_WEP, &ndis_key, sizeof(ndis_key));
+ if (res) {
+ WARNING("adding encryption key %d failed (%08X)",
+ index+1, res);
+ EXIT2(return -EINVAL);
+ }
+
+ /* Atheros driver messes up ndis_key during ADD_WEP, so
+ * don't rely on that; instead use info in key and key_len */
+ wnd->encr_info.keys[index].length = key_len;
+ memcpy(&wnd->encr_info.keys[index].key, key, key_len);
+
+ EXIT2(return 0);
+}
+
+/* remove_key is for both wep and wpa */
+static int remove_key(struct ndis_device *wnd, int index,
+ mac_address bssid)
+{
+ NDIS_STATUS res;
+ if (wnd->encr_info.keys[index].length == 0)
+ EXIT2(return 0);
+ wnd->encr_info.keys[index].length = 0;
+ memset(&wnd->encr_info.keys[index].key, 0,
+ sizeof(wnd->encr_info.keys[index].length));
+ if (wnd->iw_auth_cipher_pairwise == IW_AUTH_CIPHER_TKIP ||
+ wnd->iw_auth_cipher_pairwise == IW_AUTH_CIPHER_CCMP ||
+ wnd->iw_auth_cipher_group == IW_AUTH_CIPHER_TKIP ||
+ wnd->iw_auth_cipher_group == IW_AUTH_CIPHER_CCMP) {
+ struct ndis_remove_key remove_key;
+ remove_key.struct_size = sizeof(remove_key);
+ remove_key.index = index;
+ if (bssid) {
+ /* pairwise key */
+ if (memcmp(bssid, "\xff\xff\xff\xff\xff\xff",
+ ETH_ALEN) != 0)
+ remove_key.index |= (1 << 30);
+ memcpy(remove_key.bssid, bssid,
+ sizeof(remove_key.bssid));
+ } else
+ memset(remove_key.bssid, 0xff,
+ sizeof(remove_key.bssid));
+ if (mp_set(wnd, OID_802_11_REMOVE_KEY,
+ &remove_key, sizeof(remove_key)))
+ EXIT2(return -EINVAL);
+ } else {
+ ndis_key_index keyindex = index;
+ res = mp_set_int(wnd, OID_802_11_REMOVE_WEP, keyindex);
+ if (res) {
+ WARNING("removing encryption key %d failed (%08X)",
+ keyindex, res);
+ EXIT2(return -EINVAL);
+ }
+ }
+ /* if it is transmit key, disable encryption */
+ if (index == wnd->encr_info.tx_key_index) {
+ res = set_iw_encr_mode(wnd, IW_AUTH_CIPHER_NONE,
+ IW_AUTH_CIPHER_NONE);
+ if (res)
+ WARNING("changing encr status failed (%08X)", res);
+ }
+ TRACE2("key %d removed", index);
+ EXIT2(return 0);
+}
+
+static int iw_set_wep(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ NDIS_STATUS res;
+ unsigned int index, key_len;
+ struct encr_info *encr_info = &wnd->encr_info;
+ unsigned char *key;
+
+ ENTER2("");
+ index = (wrqu->encoding.flags & IW_ENCODE_INDEX);
+ TRACE2("index = %u", index);
+
+ /* iwconfig gives index as 1 - N */
+ if (index > 0)
+ index--;
+ else
+ index = encr_info->tx_key_index;
+
+ if (index < 0 || index >= MAX_ENCR_KEYS) {
+ WARNING("encryption index out of range (%u)", index);
+ EXIT2(return -EINVAL);
+ }
+
+ /* remove key if disabled */
+ if (wrqu->data.flags & IW_ENCODE_DISABLED) {
+ if (remove_key(wnd, index, NULL))
+ EXIT2(return -EINVAL);
+ else
+ EXIT2(return 0);
+ }
+
+ /* global encryption state (for all keys) */
+ if (wrqu->data.flags & IW_ENCODE_OPEN)
+ res = set_ndis_auth_mode(wnd, Ndis802_11AuthModeOpen);
+ else // if (wrqu->data.flags & IW_ENCODE_RESTRICTED)
+ res = set_ndis_auth_mode(wnd, Ndis802_11AuthModeShared);
+ if (res) {
+ WARNING("setting authentication mode failed (%08X)", res);
+ EXIT2(return -EINVAL);
+ }
+
+ TRACE2("key length: %d", wrqu->data.length);
+
+ if (wrqu->data.length > 0) {
+ key_len = wrqu->data.length;
+ key = extra;
+ } else { // must be set as tx key
+ if (encr_info->keys[index].length == 0) {
+ WARNING("key %d is not set", index+1);
+ EXIT2(return -EINVAL);
+ }
+ key_len = encr_info->keys[index].length;
+ key = encr_info->keys[index].key;
+ encr_info->tx_key_index = index;
+ }
+
+ if (add_wep_key(wnd, key, key_len, index))
+ EXIT2(return -EINVAL);
+
+ if (index == encr_info->tx_key_index) {
+ /* if transmit key is at index other than 0, some
+ * drivers, at least Atheros and TI, want another
+ * (global) non-transmit key to be set; don't know why */
+ if (index != 0) {
+ int i;
+ for (i = 0; i < MAX_ENCR_KEYS; i++)
+ if (i != index &&
+ encr_info->keys[i].length != 0)
+ break;
+ if (i == MAX_ENCR_KEYS) {
+ if (index == 0)
+ i = index + 1;
+ else
+ i = index - 1;
+ if (add_wep_key(wnd, key, key_len, i))
+ WARNING("couldn't add broadcast key"
+ " at %d", i);
+ }
+ }
+ /* ndis drivers want essid to be set after setting encr */
+ set_essid(wnd, wnd->essid.essid, wnd->essid.length);
+ }
+ EXIT2(return 0);
+}
+
+static int iw_set_nick(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+
+ if (wrqu->data.length >= IW_ESSID_MAX_SIZE || wrqu->data.length <= 0)
+ return -EINVAL;
+ memcpy(wnd->nick, extra, wrqu->data.length);
+ wnd->nick[wrqu->data.length] = 0;
+ return 0;
+}
+
+static int iw_get_nick(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+
+ wrqu->data.length = strlen(wnd->nick);
+ memcpy(extra, wnd->nick, wrqu->data.length);
+ return 0;
+}
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 27) && !defined(IW_REQUEST_FLAG_COMPAT)
+#define iwe_stream_add_event(a, b, c, d, e) iwe_stream_add_event(b, c, d, e)
+#define iwe_stream_add_point(a, b, c, d, e) iwe_stream_add_point(b, c, d, e)
+#define iwe_stream_add_value(a, b, c, d, e, f) \
+ iwe_stream_add_value(b, c, d, e, f)
+#define iwe_stream_lcp_len(a) IW_EV_LCP_LEN
+#endif
+
+static char *ndis_translate_scan(struct net_device *dev,
+ struct iw_request_info *info, char *event,
+ char *end_buf, void *item)
+{
+ struct iw_event iwe;
+ char *current_val;
+ int i, nrates;
+ unsigned char buf[MAX_WPA_IE_LEN * 2 + 30];
+ struct ndis_wlan_bssid *bssid;
+ struct ndis_wlan_bssid_ex *bssid_ex;
+
+ ENTER2("%p, %p", event, item);
+ bssid = item;
+ bssid_ex = item;
+ /* add mac address */
+ memset(&iwe, 0, sizeof(iwe));
+ iwe.cmd = SIOCGIWAP;
+ iwe.u.ap_addr.sa_family = ARPHRD_ETHER;
+ iwe.len = IW_EV_ADDR_LEN;
+ memcpy(iwe.u.ap_addr.sa_data, bssid->mac, ETH_ALEN);
+ event = iwe_stream_add_event(info, event, end_buf, &iwe,
+ IW_EV_ADDR_LEN);
+
+ /* add essid */
+ memset(&iwe, 0, sizeof(iwe));
+ iwe.cmd = SIOCGIWESSID;
+ iwe.u.data.length = bssid->ssid.length;
+ if (iwe.u.data.length > IW_ESSID_MAX_SIZE)
+ iwe.u.data.length = IW_ESSID_MAX_SIZE;
+ iwe.u.data.flags = 1;
+ iwe.len = IW_EV_POINT_LEN + iwe.u.data.length;
+ event = iwe_stream_add_point(info, event, end_buf, &iwe,
+ bssid->ssid.essid);
+
+ /* add protocol name */
+ memset(&iwe, 0, sizeof(iwe));
+ iwe.cmd = SIOCGIWNAME;
+ strncpy(iwe.u.name, network_type_to_name(bssid->net_type), IFNAMSIZ);
+ event = iwe_stream_add_event(info, event, end_buf, &iwe,
+ IW_EV_CHAR_LEN);
+
+ /* add mode */
+ memset(&iwe, 0, sizeof(iwe));
+ iwe.cmd = SIOCGIWMODE;
+ if (bssid->mode == Ndis802_11IBSS)
+ iwe.u.mode = IW_MODE_ADHOC;
+ else if (bssid->mode == Ndis802_11Infrastructure)
+ iwe.u.mode = IW_MODE_INFRA;
+ else // if (bssid->mode == Ndis802_11AutoUnknown)
+ iwe.u.mode = IW_MODE_AUTO;
+ event = iwe_stream_add_event(info, event, end_buf, &iwe,
+ IW_EV_UINT_LEN);
+
+ /* add freq */
+ memset(&iwe, 0, sizeof(iwe));
+ iwe.cmd = SIOCGIWFREQ;
+ iwe.u.freq.m = bssid->config.ds_config;
+ if (bssid->config.ds_config > 1000000) {
+ iwe.u.freq.m = bssid->config.ds_config / 10;
+ iwe.u.freq.e = 1;
+ }
+ else
+ iwe.u.freq.m = bssid->config.ds_config;
+ /* convert from kHz to Hz */
+ iwe.u.freq.e += 3;
+ iwe.len = IW_EV_FREQ_LEN;
+ event = iwe_stream_add_event(info, event, end_buf, &iwe,
+ IW_EV_FREQ_LEN);
+
+ /* add qual */
+ memset(&iwe, 0, sizeof(iwe));
+ iwe.cmd = IWEVQUAL;
+ i = 100 * (bssid->rssi - WL_NOISE) / (WL_SIGMAX - WL_NOISE);
+ if (i < 0)
+ i = 0;
+ else if (i > 100)
+ i = 100;
+ iwe.u.qual.level = bssid->rssi;
+ iwe.u.qual.noise = WL_NOISE;
+ iwe.u.qual.qual = i;
+ iwe.len = IW_EV_QUAL_LEN;
+ event = iwe_stream_add_event(info, event, end_buf, &iwe,
+ IW_EV_QUAL_LEN);
+
+ /* add key info */
+ memset(&iwe, 0, sizeof(iwe));
+ iwe.cmd = SIOCGIWENCODE;
+ if (bssid->privacy == Ndis802_11PrivFilterAcceptAll)
+ iwe.u.data.flags = IW_ENCODE_DISABLED;
+ else
+ iwe.u.data.flags = IW_ENCODE_ENABLED | IW_ENCODE_NOKEY;
+ iwe.u.data.length = 0;
+ iwe.len = IW_EV_POINT_LEN;
+ event = iwe_stream_add_point(info, event, end_buf, &iwe,
+ bssid->ssid.essid);
+
+ /* add rate */
+ memset(&iwe, 0, sizeof(iwe));
+ current_val = event + iwe_stream_lcp_len(info);
+ iwe.cmd = SIOCGIWRATE;
+ if (bssid->length > sizeof(*bssid))
+ nrates = NDIS_MAX_RATES_EX;
+ else
+ nrates = NDIS_MAX_RATES;
+ for (i = 0 ; i < nrates ; i++) {
+ if (bssid->rates[i] & 0x7f) {
+ iwe.u.bitrate.value = ((bssid->rates[i] & 0x7f) *
+ 500000);
+ current_val = iwe_stream_add_value(info, event,
+ current_val,
+ end_buf, &iwe,
+ IW_EV_PARAM_LEN);
+ }
+ }
+
+ if ((current_val - event) > iwe_stream_lcp_len(info))
+ event = current_val;
+
+ memset(&iwe, 0, sizeof(iwe));
+ iwe.cmd = IWEVCUSTOM;
+ sprintf(buf, "bcn_int=%d", bssid->config.beacon_period);
+ iwe.u.data.length = strlen(buf);
+ event = iwe_stream_add_point(info, event, end_buf, &iwe, buf);
+
+ memset(&iwe, 0, sizeof(iwe));
+ iwe.cmd = IWEVCUSTOM;
+ sprintf(buf, "atim=%u", bssid->config.atim_window);
+ iwe.u.data.length = strlen(buf);
+ event = iwe_stream_add_point(info, event, end_buf, &iwe, buf);
+
+ TRACE2("%d, %u", bssid->length, (unsigned int)sizeof(*bssid));
+ if (bssid->length > sizeof(*bssid)) {
+ unsigned char *iep = (unsigned char *)bssid_ex->ies +
+ sizeof(struct ndis_fixed_ies);
+ no_warn_unused unsigned char *end = iep + bssid_ex->ie_length;
+
+ while (iep + 1 < end && iep + 2 + iep[1] <= end) {
+ unsigned char ielen = 2 + iep[1];
+
+ if (ielen > SSID_MAX_WPA_IE_LEN) {
+ iep += ielen;
+ continue;
+ }
+ if ((iep[0] == WLAN_EID_GENERIC && iep[1] >= 4 &&
+ memcmp(iep + 2, "\x00\x50\xf2\x01", 4) == 0) ||
+ iep[0] == RSN_INFO_ELEM) {
+ memset(&iwe, 0, sizeof(iwe));
+ iwe.cmd = IWEVGENIE;
+ iwe.u.data.length = ielen;
+ event = iwe_stream_add_point(info, event,
+ end_buf, &iwe,
+ iep);
+ }
+ iep += ielen;
+ }
+ }
+ TRACE2("event = %p, current_val = %p", event, current_val);
+ EXIT2(return event);
+}
+
+int set_scan(struct ndis_device *wnd)
+{
+ NDIS_STATUS res;
+
+ ENTER2("");
+ res = mp_set(wnd, OID_802_11_BSSID_LIST_SCAN, NULL, 0);
+ if (res) {
+ WARNING("scanning failed (%08X)", res);
+ EXIT2(return -EOPNOTSUPP);
+ }
+ wnd->scan_timestamp = jiffies;
+ EXIT2(return 0);
+}
+
+static int iw_set_scan(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ return set_scan(wnd);
+}
+
+static int iw_get_scan(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ unsigned int i, list_len, needed;
+ NDIS_STATUS res;
+ struct ndis_bssid_list *bssid_list = NULL;
+ char *event = extra;
+ struct ndis_wlan_bssid *cur_item ;
+
+ ENTER2("");
+ if (time_before(jiffies, wnd->scan_timestamp + 3 * HZ))
+ return -EAGAIN;
+ /* try with space for a few scan items */
+ list_len = sizeof(ULONG) + sizeof(struct ndis_wlan_bssid_ex) * 8;
+ bssid_list = kmalloc(list_len, GFP_KERNEL);
+ if (!bssid_list) {
+ ERROR("couldn't allocate memory");
+ return -ENOMEM;
+ }
+ /* some drivers don't set bssid_list->num_items to 0 if
+ OID_802_11_BSSID_LIST returns no items (prism54 driver, e.g.,) */
+ memset(bssid_list, 0, list_len);
+
+ needed = 0;
+ res = mp_query_info(wnd, OID_802_11_BSSID_LIST,
+ bssid_list, list_len, NULL, &needed);
+ if (res == NDIS_STATUS_INVALID_LENGTH ||
+ res == NDIS_STATUS_BUFFER_TOO_SHORT) {
+ /* now try with required space */
+ kfree(bssid_list);
+ list_len = needed;
+ bssid_list = kmalloc(list_len, GFP_KERNEL);
+ if (!bssid_list) {
+ ERROR("couldn't allocate memory");
+ return -ENOMEM;
+ }
+ memset(bssid_list, 0, list_len);
+
+ res = mp_query(wnd, OID_802_11_BSSID_LIST,
+ bssid_list, list_len);
+ }
+ if (res) {
+ WARNING("getting BSSID list failed (%08X)", res);
+ kfree(bssid_list);
+ EXIT2(return -EOPNOTSUPP);
+ }
+ TRACE2("%d", bssid_list->num_items);
+ cur_item = &bssid_list->bssid[0];
+ for (i = 0; i < bssid_list->num_items; i++) {
+ event = ndis_translate_scan(dev, info, event,
+ extra + IW_SCAN_MAX_DATA, cur_item);
+ cur_item = (struct ndis_wlan_bssid *)((char *)cur_item +
+ cur_item->length);
+ }
+ wrqu->data.length = event - extra;
+ wrqu->data.flags = 0;
+ kfree(bssid_list);
+ EXIT2(return 0);
+}
+
+static int iw_set_power_mode(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ NDIS_STATUS res;
+ ULONG power_mode;
+
+ if (wrqu->power.disabled == 1)
+ power_mode = NDIS_POWER_OFF;
+ else if (wrqu->power.flags & IW_POWER_MIN)
+ power_mode = NDIS_POWER_MIN;
+ else // if (wrqu->power.flags & IW_POWER_MAX)
+ power_mode = NDIS_POWER_MAX;
+
+ TRACE2("%d", power_mode);
+ res = mp_set(wnd, OID_802_11_POWER_MODE,
+ &power_mode, sizeof(power_mode));
+ if (res)
+ WARNING("setting power mode failed (%08X)", res);
+ return 0;
+}
+
+static int iw_get_power_mode(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ NDIS_STATUS res;
+ ULONG power_mode;
+
+ ENTER2("");
+ res = mp_query(wnd, OID_802_11_POWER_MODE,
+ &power_mode, sizeof(power_mode));
+ if (res)
+ return -ENOTSUPP;
+
+ if (power_mode == NDIS_POWER_OFF)
+ wrqu->power.disabled = 1;
+ else {
+ if (wrqu->power.flags != 0)
+ return 0;
+ wrqu->power.flags |= IW_POWER_ALL_R;
+ wrqu->power.flags |= IW_POWER_TIMEOUT;
+ wrqu->power.value = 0;
+ wrqu->power.disabled = 0;
+
+ if (power_mode == NDIS_POWER_MIN)
+ wrqu->power.flags |= IW_POWER_MIN;
+ else // if (power_mode == NDIS_POWER_MAX)
+ wrqu->power.flags |= IW_POWER_MAX;
+ }
+ return 0;
+}
+
+static int iw_get_sensitivity(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ NDIS_STATUS res;
+ ndis_rssi rssi_trigger;
+
+ ENTER2("");
+ res = mp_query(wnd, OID_802_11_RSSI_TRIGGER,
+ &rssi_trigger, sizeof(rssi_trigger));
+ if (res)
+ return -EOPNOTSUPP;
+ wrqu->param.value = rssi_trigger;
+ wrqu->param.disabled = (rssi_trigger == 0);
+ wrqu->param.fixed = 1;
+ return 0;
+}
+
+static int iw_set_sensitivity(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ NDIS_STATUS res;
+ ndis_rssi rssi_trigger;
+
+ ENTER2("");
+ if (wrqu->param.disabled)
+ rssi_trigger = 0;
+ else
+ rssi_trigger = wrqu->param.value;
+ res = mp_set(wnd, OID_802_11_RSSI_TRIGGER,
+ &rssi_trigger, sizeof(rssi_trigger));
+ if (res == NDIS_STATUS_INVALID_DATA)
+ return -EINVAL;
+ if (res)
+ return -EOPNOTSUPP;
+ return 0;
+}
+
+static int iw_get_ndis_stats(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ struct iw_statistics *stats = &wnd->iw_stats;
+ memcpy(&wrqu->qual, &stats->qual, sizeof(stats->qual));
+ return 0;
+}
+
+static int iw_get_range(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct iw_range *range = (struct iw_range *)extra;
+ struct iw_point *data = &wrqu->data;
+ struct ndis_device *wnd = netdev_priv(dev);
+ unsigned int i, n;
+ NDIS_STATUS res;
+ ndis_rates_ex rates;
+ ndis_tx_power_level tx_power;
+
+ ENTER2("");
+ data->length = sizeof(struct iw_range);
+ memset(range, 0, sizeof(struct iw_range));
+
+ range->txpower_capa = IW_TXPOW_MWATT;
+ range->num_txpower = 0;
+
+ res = mp_query(wnd, OID_802_11_TX_POWER_LEVEL,
+ &tx_power, sizeof(tx_power));
+ if (!res) {
+ range->num_txpower = 1;
+ range->txpower[0] = tx_power;
+ }
+
+ range->we_version_compiled = WIRELESS_EXT;
+ range->we_version_source = 18;
+
+ range->retry_capa = IW_RETRY_LIMIT;
+ range->retry_flags = IW_RETRY_LIMIT;
+ range->min_retry = 0;
+ range->max_retry = 255;
+
+ range->num_channels = 1;
+
+ range->max_qual.qual = 100;
+ range->max_qual.level = 154;
+ range->max_qual.noise = 154;
+ range->sensitivity = 3;
+
+ range->max_encoding_tokens = 4;
+ range->num_encoding_sizes = 2;
+ range->encoding_size[0] = 5;
+ range->encoding_size[1] = 13;
+
+ range->num_bitrates = 0;
+ memset(&rates, 0, sizeof(rates));
+ res = mp_query_info(wnd, OID_802_11_SUPPORTED_RATES,
+ &rates, sizeof(rates), &n, NULL);
+ if (res)
+ WARNING("getting bit rates failed: %08X", res);
+ else {
+ for (i = 0; i < n && range->num_bitrates < IW_MAX_BITRATES; i++)
+ if (rates[i] & 0x80)
+ continue;
+ else if (rates[i] & 0x7f) {
+ range->bitrate[range->num_bitrates] =
+ (rates[i] & 0x7f) * 500000;
+ range->num_bitrates++;
+ }
+ }
+
+ range->num_channels = (sizeof(freq_chan)/sizeof(freq_chan[0]));
+
+ for (i = 0; i < (sizeof(freq_chan)/sizeof(freq_chan[0])) &&
+ i < IW_MAX_FREQUENCIES; i++) {
+ range->freq[i].i = i + 1;
+ range->freq[i].m = freq_chan[i] * 100000;
+ range->freq[i].e = 1;
+ }
+ range->num_frequency = i;
+
+ range->min_rts = 0;
+ range->max_rts = 2347;
+ range->min_frag = 256;
+ range->max_frag = 2346;
+
+ /* Event capability (kernel + driver) */
+ range->event_capa[0] = (IW_EVENT_CAPA_K_0 |
+ IW_EVENT_CAPA_MASK(SIOCGIWTHRSPY) |
+ IW_EVENT_CAPA_MASK(SIOCGIWAP) |
+ IW_EVENT_CAPA_MASK(SIOCGIWSCAN));
+ range->event_capa[1] = IW_EVENT_CAPA_K_1;
+ range->event_capa[4] = (IW_EVENT_CAPA_MASK(IWEVTXDROP) |
+ IW_EVENT_CAPA_MASK(IWEVCUSTOM) |
+ IW_EVENT_CAPA_MASK(IWEVREGISTERED) |
+ IW_EVENT_CAPA_MASK(IWEVEXPIRED));
+
+ range->enc_capa = 0;
+
+ if (test_bit(Ndis802_11Encryption2Enabled, &wnd->capa.encr))
+ range->enc_capa |= IW_ENC_CAPA_CIPHER_TKIP;
+ if (test_bit(Ndis802_11Encryption3Enabled, &wnd->capa.encr))
+ range->enc_capa |= IW_ENC_CAPA_CIPHER_CCMP;
+
+ if (test_bit(Ndis802_11AuthModeWPA, &wnd->capa.auth) ||
+ test_bit(Ndis802_11AuthModeWPAPSK, &wnd->capa.auth))
+ range->enc_capa |= IW_ENC_CAPA_WPA;
+ if (test_bit(Ndis802_11AuthModeWPA2, &wnd->capa.auth) ||
+ test_bit(Ndis802_11AuthModeWPA2PSK, &wnd->capa.auth))
+ range->enc_capa |= IW_ENC_CAPA_WPA2;
+
+ return 0;
+}
+
+void set_default_iw_params(struct ndis_device *wnd)
+{
+ wnd->iw_auth_key_mgmt = 0;
+ wnd->iw_auth_wpa_version = 0;
+ set_infra_mode(wnd, Ndis802_11Infrastructure);
+ set_ndis_auth_mode(wnd, Ndis802_11AuthModeOpen);
+ set_priv_filter(wnd);
+ set_iw_encr_mode(wnd, IW_AUTH_CIPHER_NONE, IW_AUTH_CIPHER_NONE);
+}
+
+static int deauthenticate(struct ndis_device *wnd)
+{
+ int ret;
+
+ ENTER2("");
+ ret = disassociate(wnd, 1);
+ set_default_iw_params(wnd);
+ EXIT2(return ret);
+}
+
+NDIS_STATUS disassociate(struct ndis_device *wnd, int reset_ssid)
+{
+ NDIS_STATUS res;
+ u8 buf[NDIS_ESSID_MAX_SIZE];
+ int i;
+
+ TRACE2("");
+ res = mp_set(wnd, OID_802_11_DISASSOCIATE, NULL, 0);
+ /* disassociate causes radio to be turned off; if reset_ssid
+ * is given, set ssid to random to enable radio */
+ if (reset_ssid) {
+ get_random_bytes(buf, sizeof(buf));
+ for (i = 0; i < sizeof(buf); i++)
+ buf[i] = 'a' + (buf[i] % 26);
+ set_essid(wnd, buf, sizeof(buf));
+ }
+ return res;
+}
+
+static ULONG ndis_priv_mode(struct ndis_device *wnd)
+{
+ if (wnd->iw_auth_wpa_version & IW_AUTH_WPA_VERSION_WPA2 ||
+ wnd->iw_auth_wpa_version & IW_AUTH_WPA_VERSION_WPA)
+ return Ndis802_11PrivFilter8021xWEP;
+ else
+ return Ndis802_11PrivFilterAcceptAll;
+}
+
+int set_priv_filter(struct ndis_device *wnd)
+{
+ NDIS_STATUS res;
+ ULONG flags;
+
+ flags = ndis_priv_mode(wnd);
+ ENTER2("filter: %d", flags);
+ res = mp_set_int(wnd, OID_802_11_PRIVACY_FILTER, flags);
+ if (res)
+ TRACE2("setting privacy filter to %d failed (%08X)",
+ flags, res);
+ EXIT2(return 0);
+}
+
+static int iw_set_mlme(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ struct iw_mlme *mlme = (struct iw_mlme *)extra;
+
+ ENTER2("");
+ switch (mlme->cmd) {
+ case IW_MLME_DEAUTH:
+ return deauthenticate(wnd);
+ case IW_MLME_DISASSOC:
+ TRACE2("cmd=%d reason_code=%d", mlme->cmd, mlme->reason_code);
+ return disassociate(wnd, 1);
+ default:
+ return -EOPNOTSUPP;
+ }
+
+ return 0;
+}
+
+static int iw_set_genie(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ /*
+ * NDIS drivers do not allow IEs to be configured; this is
+ * done by the driver based on other configuration. Return 0
+ * to avoid causing issues with user space programs that
+ * expect this function to succeed.
+ */
+ return 0;
+}
+
+static int iw_set_auth(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ TRACE2("index=%d value=%d", wrqu->param.flags & IW_AUTH_INDEX,
+ wrqu->param.value);
+ switch (wrqu->param.flags & IW_AUTH_INDEX) {
+ case IW_AUTH_WPA_VERSION:
+ wnd->iw_auth_wpa_version = wrqu->param.value;
+ break;
+ case IW_AUTH_CIPHER_PAIRWISE:
+ wnd->iw_auth_cipher_pairwise = wrqu->param.value;
+ break;
+ case IW_AUTH_CIPHER_GROUP:
+ wnd->iw_auth_cipher_group = wrqu->param.value;
+ break;
+ case IW_AUTH_KEY_MGMT:
+ wnd->iw_auth_key_mgmt = wrqu->param.value;
+ break;
+ case IW_AUTH_80211_AUTH_ALG:
+ wnd->iw_auth_80211_alg = wrqu->param.value;
+ break;
+ case IW_AUTH_WPA_ENABLED:
+ if (wrqu->param.value)
+ deauthenticate(wnd);
+ break;
+ case IW_AUTH_TKIP_COUNTERMEASURES:
+ case IW_AUTH_DROP_UNENCRYPTED:
+ case IW_AUTH_RX_UNENCRYPTED_EAPOL:
+ case IW_AUTH_PRIVACY_INVOKED:
+ TRACE2("%d not implemented: %d",
+ wrqu->param.flags & IW_AUTH_INDEX, wrqu->param.value);
+ break;
+ default:
+ WARNING("invalid cmd %d", wrqu->param.flags & IW_AUTH_INDEX);
+ return -EOPNOTSUPP;
+ }
+ return 0;
+}
+
+static int iw_get_auth(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+
+ ENTER2("index=%d", wrqu->param.flags & IW_AUTH_INDEX);
+ switch (wrqu->param.flags & IW_AUTH_INDEX) {
+ case IW_AUTH_WPA_VERSION:
+ wrqu->param.value = wnd->iw_auth_wpa_version;
+ break;
+ case IW_AUTH_CIPHER_PAIRWISE:
+ wrqu->param.value = wnd->iw_auth_cipher_pairwise;
+ break;
+ case IW_AUTH_CIPHER_GROUP:
+ wrqu->param.value = wnd->iw_auth_cipher_group;
+ break;
+ case IW_AUTH_KEY_MGMT:
+ wrqu->param.value = wnd->iw_auth_key_mgmt;
+ break;
+ case IW_AUTH_80211_AUTH_ALG:
+ wrqu->param.value = wnd->iw_auth_80211_alg;
+ break;
+ default:
+ WARNING("invalid cmd %d", wrqu->param.flags & IW_AUTH_INDEX);
+ return -EOPNOTSUPP;
+ }
+ return 0;
+}
+
+static int iw_set_encodeext(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct iw_encode_ext *ext = (struct iw_encode_ext *)extra;
+ struct ndis_device *wnd = netdev_priv(dev);
+ struct ndis_add_key ndis_key;
+ int i, keyidx;
+ NDIS_STATUS res;
+ u8 *addr;
+
+ keyidx = wrqu->encoding.flags & IW_ENCODE_INDEX;
+ ENTER2("%d", keyidx);
+ if (keyidx)
+ keyidx--;
+ else
+ keyidx = wnd->encr_info.tx_key_index;
+
+ if (keyidx < 0 || keyidx >= MAX_ENCR_KEYS)
+ return -EINVAL;
+
+ if (ext->alg == WPA_ALG_WEP) {
+ if (!test_bit(Ndis802_11Encryption1Enabled, &wnd->capa.encr))
+ EXIT2(return -1);
+ if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY)
+ wnd->encr_info.tx_key_index = keyidx;
+ if (add_wep_key(wnd, ext->key, ext->key_len, keyidx))
+ EXIT2(return -1);
+ else
+ EXIT2(return 0);
+ }
+ if ((wrqu->encoding.flags & IW_ENCODE_DISABLED) ||
+ ext->alg == IW_ENCODE_ALG_NONE || ext->key_len == 0)
+ EXIT2(return remove_key(wnd, keyidx, ndis_key.bssid));
+
+ if (ext->key_len > sizeof(ndis_key.key)) {
+ TRACE2("incorrect key length (%u)", ext->key_len);
+ EXIT2(return -1);
+ }
+
+ memset(&ndis_key, 0, sizeof(ndis_key));
+
+ ndis_key.struct_size =
+ sizeof(ndis_key) - sizeof(ndis_key.key) + ext->key_len;
+ ndis_key.length = ext->key_len;
+ ndis_key.index = keyidx;
+
+ if (ext->ext_flags & IW_ENCODE_EXT_RX_SEQ_VALID) {
+ for (i = 0; i < 6 ; i++)
+ ndis_key.rsc |= (((u64)ext->rx_seq[i]) << (i * 8));
+ TRACE2("0x%Lx", ndis_key.rsc);
+ ndis_key.index |= 1 << 29;
+ }
+
+ addr = ext->addr.sa_data;
+ if (ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) {
+ /* group key */
+ if (wnd->infrastructure_mode == Ndis802_11IBSS)
+ memset(ndis_key.bssid, 0xff, ETH_ALEN);
+ else
+ get_ap_address(wnd, ndis_key.bssid);
+ } else {
+ /* pairwise key */
+ ndis_key.index |= (1 << 30);
+ memcpy(ndis_key.bssid, addr, ETH_ALEN);
+ }
+ TRACE2(MACSTRSEP, MAC2STR(ndis_key.bssid));
+
+ if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY)
+ ndis_key.index |= (1 << 31);
+
+ if (ext->alg == IW_ENCODE_ALG_TKIP && ext->key_len == 32) {
+ /* wpa_supplicant gives us the Michael MIC RX/TX keys in
+ * different order than NDIS spec, so swap the order here. */
+ memcpy(ndis_key.key, ext->key, 16);
+ memcpy(ndis_key.key + 16, ext->key + 24, 8);
+ memcpy(ndis_key.key + 24, ext->key + 16, 8);
+ } else
+ memcpy(ndis_key.key, ext->key, ext->key_len);
+
+ res = mp_set(wnd, OID_802_11_ADD_KEY, &ndis_key, ndis_key.struct_size);
+ if (res) {
+ TRACE2("adding key failed (%08X), %u",
+ res, ndis_key.struct_size);
+ EXIT2(return -1);
+ }
+ wnd->encr_info.keys[keyidx].length = ext->key_len;
+ memcpy(&wnd->encr_info.keys[keyidx].key, ndis_key.key, ext->key_len);
+ if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY)
+ wnd->encr_info.tx_key_index = keyidx;
+ TRACE2("key %d added", keyidx);
+
+ EXIT2(return 0);
+}
+
+static int iw_get_encodeext(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ /* struct iw_encode_ext *ext = (struct iw_encode_ext *) extra; */
+ /* TODO */
+ ENTER2("");
+ return 0;
+}
+
+static int iw_set_pmksa(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct iw_pmksa *pmksa = (struct iw_pmksa *)extra;
+ struct ndis_pmkid pmkid;
+ NDIS_STATUS res;
+ struct ndis_device *wnd = netdev_priv(dev);
+
+ /* TODO: must keep local list of PMKIDs since NDIS drivers
+ * expect that all PMKID entries are included whenever a new
+ * one is added. */
+
+ ENTER2("%d", pmksa->cmd);
+ if ((pmksa->cmd == IW_PMKSA_ADD || pmksa->cmd == IW_PMKSA_REMOVE) &&
+ (!(wnd->iw_auth_wpa_version & IW_AUTH_WPA_VERSION_WPA2)))
+ EXIT2(return -EOPNOTSUPP);
+
+ memset(&pmkid, 0, sizeof(pmkid));
+ if (pmksa->cmd == IW_PMKSA_ADD) {
+ pmkid.bssid_info_count = 1;
+ memcpy(pmkid.bssid_info[0].bssid, pmksa->bssid.sa_data,
+ ETH_ALEN);
+ memcpy(pmkid.bssid_info[0].pmkid, pmksa->pmkid, IW_PMKID_LEN);
+ }
+ pmkid.length = sizeof(pmkid);
+
+ res = mp_set(wnd, OID_802_11_PMKID, &pmkid, pmkid.length);
+ if (res == NDIS_STATUS_FAILURE)
+ EXIT2(return -EOPNOTSUPP);
+ TRACE2("OID_802_11_PMKID -> %d", res);
+ if (res)
+ return -EINVAL;
+
+ return 0;
+}
+
+#define WEXT(id) [id - SIOCIWFIRST]
+
+static const iw_handler ndis_handler[] = {
+ WEXT(SIOCGIWNAME) = iw_get_network_type,
+ WEXT(SIOCSIWESSID) = iw_set_essid,
+ WEXT(SIOCGIWESSID) = iw_get_essid,
+ WEXT(SIOCSIWMODE) = iw_set_infra_mode,
+ WEXT(SIOCGIWMODE) = iw_get_infra_mode,
+ WEXT(SIOCGIWFREQ) = iw_get_freq,
+ WEXT(SIOCSIWFREQ) = iw_set_freq,
+ WEXT(SIOCGIWTXPOW) = iw_get_tx_power,
+ WEXT(SIOCSIWTXPOW) = iw_set_tx_power,
+ WEXT(SIOCGIWRATE) = iw_get_bitrate,
+ WEXT(SIOCSIWRATE) = iw_set_bitrate,
+ WEXT(SIOCGIWRTS) = iw_get_rts_threshold,
+ WEXT(SIOCSIWRTS) = iw_set_rts_threshold,
+ WEXT(SIOCGIWFRAG) = iw_get_frag_threshold,
+ WEXT(SIOCSIWFRAG) = iw_set_frag_threshold,
+ WEXT(SIOCGIWAP) = iw_get_ap_address,
+ WEXT(SIOCSIWAP) = iw_set_ap_address,
+ WEXT(SIOCSIWENCODE) = iw_set_wep,
+ WEXT(SIOCGIWENCODE) = iw_get_encr,
+ WEXT(SIOCSIWSCAN) = iw_set_scan,
+ WEXT(SIOCGIWSCAN) = iw_get_scan,
+ WEXT(SIOCGIWPOWER) = iw_get_power_mode,
+ WEXT(SIOCSIWPOWER) = iw_set_power_mode,
+ WEXT(SIOCGIWRANGE) = iw_get_range,
+ WEXT(SIOCGIWSTATS) = iw_get_ndis_stats,
+ WEXT(SIOCGIWSENS) = iw_get_sensitivity,
+ WEXT(SIOCSIWSENS) = iw_set_sensitivity,
+ WEXT(SIOCGIWNICKN) = iw_get_nick,
+ WEXT(SIOCSIWNICKN) = iw_set_nick,
+ WEXT(SIOCSIWCOMMIT) = iw_set_dummy,
+ WEXT(SIOCSIWMLME) = iw_set_mlme,
+ WEXT(SIOCSIWGENIE) = iw_set_genie,
+ WEXT(SIOCSIWAUTH) = iw_set_auth,
+ WEXT(SIOCGIWAUTH) = iw_get_auth,
+ WEXT(SIOCSIWENCODEEXT) = iw_set_encodeext,
+ WEXT(SIOCGIWENCODEEXT) = iw_get_encodeext,
+ WEXT(SIOCSIWPMKSA) = iw_set_pmksa,
+};
+
+/* private ioctl's */
+
+static int priv_reset(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ int res;
+ ENTER2("");
+ res = mp_reset(netdev_priv(dev));
+ if (res) {
+ WARNING("reset failed: %08X", res);
+ return -EOPNOTSUPP;
+ }
+ return 0;
+}
+
+static int priv_deauthenticate(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ int res;
+ ENTER2("");
+ res = deauthenticate(netdev_priv(dev));
+ return res;
+}
+
+static int priv_power_profile(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ struct miniport *mp;
+ ULONG profile_inf;
+
+ ENTER2("");
+ mp = &wnd->wd->driver->ndis_driver->mp;
+ if (!mp->pnp_event_notify)
+ EXIT2(return -EOPNOTSUPP);
+
+ /* 1 for AC and 0 for Battery */
+ if (wrqu->param.value)
+ profile_inf = NdisPowerProfileAcOnLine;
+ else
+ profile_inf = NdisPowerProfileBattery;
+
+ LIN2WIN4(mp->pnp_event_notify, wnd->nmb->mp_ctx,
+ NdisDevicePnPEventPowerProfileChanged,
+ &profile_inf, sizeof(profile_inf));
+ EXIT2(return 0);
+}
+
+static int priv_network_type(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ enum network_type network_type;
+ NDIS_STATUS res;
+ char type;
+
+ ENTER2("");
+ type = wrqu->param.value;
+ if (type == 'f')
+ network_type = Ndis802_11FH;
+ else if (type == 'b')
+ network_type = Ndis802_11DS;
+ else if (type == 'a')
+ network_type = Ndis802_11OFDM5;
+ else if (type == 'g' || type == 'n')
+ network_type = Ndis802_11OFDM24;
+ else
+ network_type = Ndis802_11Automode;
+
+ res = mp_set_int(wnd, OID_802_11_NETWORK_TYPE_IN_USE, network_type);
+ if (res) {
+ WARNING("setting network type to %d failed (%08X)",
+ network_type, res);
+ EXIT2(return -EINVAL);
+ }
+
+ EXIT2(return 0);
+}
+
+static int priv_media_stream_mode(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ NDIS_STATUS res;
+ int mode;
+
+ ENTER2("");
+ if (wrqu->param.value > 0)
+ mode = Ndis802_11MediaStreamOn;
+ else
+ mode = Ndis802_11MediaStreamOff;
+ res = mp_set_int(wnd, OID_802_11_MEDIA_STREAM_MODE, mode);
+ if (res) {
+ WARNING("oid failed (%08X)", res);
+ EXIT2(return -EINVAL);
+ }
+ EXIT2(return 0);
+}
+
+static int priv_reload_defaults(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ int res;
+ ENTER2("");
+ res = mp_set_int(wnd, OID_802_11_RELOAD_DEFAULTS,
+ Ndis802_11ReloadWEPKeys);
+ if (res) {
+ WARNING("reloading defaults failed: %08X", res);
+ return -EOPNOTSUPP;
+ }
+ return 0;
+}
+
+static const struct iw_priv_args priv_args[] = {
+ {PRIV_RESET, 0, 0, "ndis_reset"},
+ {PRIV_POWER_PROFILE, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0,
+ "power_profile"},
+ {PRIV_DEAUTHENTICATE, 0, 0, "deauthenticate"},
+ {PRIV_NETWORK_TYPE, IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | 1, 0,
+ "network_type"},
+ {PRIV_MEDIA_STREAM_MODE, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0,
+ "media_stream"},
+
+ {PRIV_RELOAD_DEFAULTS, 0, 0, "reload_defaults"},
+};
+
+#define WEPRIV(id) [id - SIOCIWFIRSTPRIV]
+
+static const iw_handler priv_handler[] = {
+ WEPRIV(PRIV_RESET) = priv_reset,
+ WEPRIV(PRIV_POWER_PROFILE) = priv_power_profile,
+ WEPRIV(PRIV_DEAUTHENTICATE) = priv_deauthenticate,
+ WEPRIV(PRIV_NETWORK_TYPE) = priv_network_type,
+ WEPRIV(PRIV_MEDIA_STREAM_MODE) = priv_media_stream_mode,
+ WEPRIV(PRIV_RELOAD_DEFAULTS) = priv_reload_defaults,
+};
+
+const struct iw_handler_def ndis_handler_def = {
+ .num_standard = sizeof(ndis_handler) / sizeof(ndis_handler[0]),
+ .num_private = sizeof(priv_handler) / sizeof(priv_handler[0]),
+ .num_private_args = sizeof(priv_args) / sizeof(priv_args[0]),
+
+ .standard = (iw_handler *)ndis_handler,
+ .private = (iw_handler *)priv_handler,
+ .private_args = (struct iw_priv_args *)priv_args,
+ .get_wireless_stats = get_iw_stats,
+};
diff --git a/ubuntu/ndiswrapper/iw_ndis.h b/ubuntu/ndiswrapper/iw_ndis.h
new file mode 100644
index 00000000000..9d057c32b61
--- /dev/null
+++ b/ubuntu/ndiswrapper/iw_ndis.h
@@ -0,0 +1,208 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef _IW_NDIS_H_
+#define _IW_NDIS_H_
+
+#include "ndis.h"
+
+#define WL_NOISE -96 /* typical noise level in dBm */
+#define WL_SIGMAX -32 /* typical maximum signal level in dBm */
+
+struct ndis_encr_key {
+ ULONG struct_size;
+ ULONG index;
+ ULONG length;
+ UCHAR key[NDIS_ENCODING_TOKEN_MAX];
+};
+
+struct ndis_add_key {
+ ULONG struct_size;
+ ndis_key_index index;
+ ULONG length;
+ mac_address bssid;
+ UCHAR pad[6];
+ ndis_key_rsc rsc;
+ UCHAR key[NDIS_ENCODING_TOKEN_MAX];
+};
+
+struct ndis_remove_key {
+ ULONG struct_size;
+ ndis_key_index index;
+ mac_address bssid;
+};
+
+struct ndis_fixed_ies {
+ UCHAR time_stamp[8];
+ USHORT beacon_interval;
+ USHORT capa;
+};
+
+struct ndis_variable_ies {
+ ULONG elem_id;
+ UCHAR length;
+ UCHAR data[1];
+};
+
+enum ndis_reload_defaults { Ndis802_11ReloadWEPKeys };
+
+struct ndis_assoc_info {
+ ULONG length;
+ USHORT req_ies;
+ struct req_ie {
+ USHORT capa;
+ USHORT listen_interval;
+ mac_address cur_ap_address;
+ } req_ie;
+ ULONG req_ie_length;
+ ULONG offset_req_ies;
+ USHORT resp_ies;
+ struct resp_ie {
+ USHORT capa;
+ USHORT status_code;
+ USHORT assoc_id;
+ } resp_ie;
+ ULONG resp_ie_length;
+ ULONG offset_resp_ies;
+};
+
+struct ndis_configuration_fh {
+ ULONG length;
+ ULONG hop_pattern;
+ ULONG hop_set;
+ ULONG dwell_time;
+};
+
+struct ndis_configuration {
+ ULONG length;
+ ULONG beacon_period;
+ ULONG atim_window;
+ ULONG ds_config;
+ struct ndis_configuration_fh fh_config;
+};
+
+struct ndis_wlan_bssid {
+ ULONG length;
+ mac_address mac;
+ UCHAR reserved[2];
+ struct ndis_essid ssid;
+ ULONG privacy;
+ ndis_rssi rssi;
+ UINT net_type;
+ struct ndis_configuration config;
+ UINT mode;
+ ndis_rates rates;
+};
+
+struct ndis_wlan_bssid_ex {
+ ULONG length;
+ mac_address mac;
+ UCHAR reserved[2];
+ struct ndis_essid ssid;
+ ULONG privacy;
+ ndis_rssi rssi;
+ UINT net_type;
+ struct ndis_configuration config;
+ UINT mode;
+ ndis_rates_ex rates_ex;
+ ULONG ie_length;
+ UCHAR ies[1];
+};
+
+/* we use bssid_list as bssid_list_ex also */
+struct ndis_bssid_list {
+ ULONG num_items;
+ struct ndis_wlan_bssid bssid[1];
+};
+
+enum ndis_priv_filter {
+ Ndis802_11PrivFilterAcceptAll, Ndis802_11PrivFilter8021xWEP
+};
+
+enum network_type {
+ Ndis802_11FH, Ndis802_11DS, Ndis802_11OFDM5, Ndis802_11OFDM24,
+ /* MSDN site uses Ndis802_11Automode, which is not mentioned
+ * in DDK, so add one and assign it to
+ * Ndis802_11NetworkTypeMax */
+ Ndis802_11Automode, Ndis802_11NetworkTypeMax = Ndis802_11Automode
+};
+
+struct network_type_list {
+ ULONG num;
+ enum network_type types[1];
+};
+
+enum ndis_power {
+ NDIS_POWER_OFF = 0, NDIS_POWER_MAX, NDIS_POWER_MIN,
+};
+
+struct ndis_auth_req {
+ ULONG length;
+ mac_address bssid;
+ ULONG flags;
+};
+
+struct ndis_bssid_info {
+ mac_address bssid;
+ ndis_pmkid_vavlue pmkid;
+};
+
+struct ndis_pmkid {
+ ULONG length;
+ ULONG bssid_info_count;
+ struct ndis_bssid_info bssid_info[1];
+};
+
+int add_wep_key(struct ndis_device *wnd, char *key, int key_len,
+ int index);
+int set_essid(struct ndis_device *wnd, const char *ssid, int ssid_len);
+int set_infra_mode(struct ndis_device *wnd,
+ enum ndis_infrastructure_mode mode);
+int get_ap_address(struct ndis_device *wnd, mac_address mac);
+int set_ndis_auth_mode(struct ndis_device *wnd, ULONG auth_mode);
+int set_iw_auth_mode(struct ndis_device *wnd, int wpa_version,
+ int auth_80211_alg);
+int set_auth_mode(struct ndis_device *wnd);
+int set_ndis_encr_mode(struct ndis_device *wnd, int cipher_pairwise,
+ int cipher_groupwise);
+int get_ndis_encr_mode(struct ndis_device *wnd);
+int set_encr_mode(struct ndis_device *wnd);
+int set_iw_encr_mode(struct ndis_device *wnd, int cipher_pairwise,
+ int cipher_groupwise);
+int get_ndis_auth_mode(struct ndis_device *wnd);
+int set_priv_filter(struct ndis_device *wnd);
+int set_scan(struct ndis_device *wnd);
+NDIS_STATUS disassociate(struct ndis_device *wnd, int reset_ssid);
+void set_default_iw_params(struct ndis_device *wnd);
+extern const struct iw_handler_def ndis_handler_def;
+
+#define PRIV_RESET SIOCIWFIRSTPRIV+16
+#define PRIV_POWER_PROFILE SIOCIWFIRSTPRIV+17
+#define PRIV_NETWORK_TYPE SIOCIWFIRSTPRIV+18
+#define PRIV_DEAUTHENTICATE SIOCIWFIRSTPRIV+19
+#define PRIV_MEDIA_STREAM_MODE SIOCIWFIRSTPRIV+20
+#define PRIV_RELOAD_DEFAULTS SIOCIWFIRSTPRIV+23
+
+#define RSN_INFO_ELEM 0x30
+
+/* these have to match what is in wpa_supplicant */
+
+typedef enum { WPA_ALG_NONE, WPA_ALG_WEP, WPA_ALG_TKIP, WPA_ALG_CCMP } wpa_alg;
+typedef enum { CIPHER_NONE, CIPHER_WEP40, CIPHER_TKIP, CIPHER_CCMP,
+ CIPHER_WEP104 } wpa_cipher;
+typedef enum { KEY_MGMT_802_1X, KEY_MGMT_PSK, KEY_MGMT_NONE,
+ KEY_MGMT_802_1X_NO_WPA, KEY_MGMT_WPA_NONE } wpa_key_mgmt;
+
+#endif // IW_NDIS_H
diff --git a/ubuntu/ndiswrapper/lin2win.h b/ubuntu/ndiswrapper/lin2win.h
new file mode 100644
index 00000000000..824f69c8213
--- /dev/null
+++ b/ubuntu/ndiswrapper/lin2win.h
@@ -0,0 +1,202 @@
+/*
+ * Copyright (C) 2006 Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifdef CONFIG_X86_64
+
+/* Windows functions must have 32 bytes of shadow space for arguments
+ * above return address, irrespective of number of args. So argc >= 4
+ */
+
+#define alloc_win_stack_frame(argc) \
+ "sub $(" #argc "+1)*8, %%rsp\n\t"
+#define free_win_stack_frame(argc) \
+ "add $(" #argc "+1)*8, %%rsp\n\t"
+
+/* m is index of Windows arg required; Windows arg 1 should be at
+ * 0(%rsp), arg 2 at 8(%rsp) and so on after the frame is allocated.
+*/
+
+#define lin2win_win_arg(m) "(" #m "-1)*8(%%rsp)"
+
+/* args for Windows function must be in clobber / output list */
+
+#define outputs() \
+ "=a" (_ret), "=c" (_dummy), "=d" (_dummy), \
+ "=r" (r8), "=r" (r9), "=r" (r10), "=r" (r11)
+
+#define clobbers() "cc"
+
+#define LIN2WIN0(func) \
+({ \
+ u64 _ret, _dummy; \
+ register u64 r8 __asm__("r8"); \
+ register u64 r9 __asm__("r9"); \
+ register u64 r10 __asm__("r10"); \
+ register u64 r11 __asm__("r11"); \
+ __asm__ __volatile__( \
+ alloc_win_stack_frame(4) \
+ "callq *%[fptr]\n\t" \
+ free_win_stack_frame(4) \
+ : outputs() \
+ : [fptr] "r" (func) \
+ : clobbers()); \
+ _ret; \
+})
+
+#define LIN2WIN1(func, arg1) \
+({ \
+ u64 _ret, _dummy; \
+ register u64 r8 __asm__("r8"); \
+ register u64 r9 __asm__("r9"); \
+ register u64 r10 __asm__("r10"); \
+ register u64 r11 __asm__("r11"); \
+ __asm__ __volatile__( \
+ alloc_win_stack_frame(4) \
+ "callq *%[fptr]\n\t" \
+ free_win_stack_frame(4) \
+ : outputs() \
+ : "c" (arg1), [fptr] "r" (func) \
+ : clobbers()); \
+ _ret; \
+})
+
+#define LIN2WIN2(func, arg1, arg2) \
+({ \
+ u64 _ret, _dummy; \
+ register u64 r8 __asm__("r8"); \
+ register u64 r9 __asm__("r9"); \
+ register u64 r10 __asm__("r10"); \
+ register u64 r11 __asm__("r11"); \
+ __asm__ __volatile__( \
+ alloc_win_stack_frame(4) \
+ "callq *%[fptr]\n\t" \
+ free_win_stack_frame(4) \
+ : outputs() \
+ : "c" (arg1), "d" (arg2), [fptr] "r" (func) \
+ : clobbers()); \
+ _ret; \
+})
+
+#define LIN2WIN3(func, arg1, arg2, arg3) \
+({ \
+ u64 _ret, _dummy; \
+ register u64 r8 __asm__("r8") = (u64)arg3; \
+ register u64 r9 __asm__("r9"); \
+ register u64 r10 __asm__("r10"); \
+ register u64 r11 __asm__("r11"); \
+ __asm__ __volatile__( \
+ alloc_win_stack_frame(4) \
+ "callq *%[fptr]\n\t" \
+ free_win_stack_frame(4) \
+ : outputs() \
+ : "c" (arg1), "d" (arg2), "r" (r8), \
+ [fptr] "r" (func) \
+ : clobbers()); \
+ _ret; \
+})
+
+#define LIN2WIN4(func, arg1, arg2, arg3, arg4) \
+({ \
+ u64 _ret, _dummy; \
+ register u64 r8 __asm__("r8") = (u64)arg3; \
+ register u64 r9 __asm__("r9") = (u64)arg4; \
+ register u64 r10 __asm__("r10"); \
+ register u64 r11 __asm__("r11"); \
+ __asm__ __volatile__( \
+ alloc_win_stack_frame(4) \
+ "callq *%[fptr]\n\t" \
+ free_win_stack_frame(4) \
+ : outputs() \
+ : "c" (arg1), "d" (arg2), "r" (r8), "r" (r9), \
+ [fptr] "r" (func) \
+ : clobbers()); \
+ _ret; \
+})
+
+#define LIN2WIN5(func, arg1, arg2, arg3, arg4, arg5) \
+({ \
+ u64 _ret, _dummy; \
+ register u64 r8 __asm__("r8") = (u64)arg3; \
+ register u64 r9 __asm__("r9") = (u64)arg4; \
+ register u64 r10 __asm__("r10"); \
+ register u64 r11 __asm__("r11"); \
+ __asm__ __volatile__( \
+ alloc_win_stack_frame(5) \
+ "movq %[rarg5], " lin2win_win_arg(5) "\n\t" \
+ "callq *%[fptr]\n\t" \
+ free_win_stack_frame(5) \
+ : outputs() \
+ : "c" (arg1), "d" (arg2), "r" (r8), "r" (r9), \
+ [rarg5] "ri" ((u64)arg5), \
+ [fptr] "r" (func) \
+ : clobbers()); \
+ _ret; \
+})
+
+#define LIN2WIN6(func, arg1, arg2, arg3, arg4, arg5, arg6) \
+({ \
+ u64 _ret, _dummy; \
+ register u64 r8 __asm__("r8") = (u64)arg3; \
+ register u64 r9 __asm__("r9") = (u64)arg4; \
+ register u64 r10 __asm__("r10"); \
+ register u64 r11 __asm__("r11"); \
+ __asm__ __volatile__( \
+ alloc_win_stack_frame(6) \
+ "movq %[rarg5], " lin2win_win_arg(5) "\n\t" \
+ "movq %[rarg6], " lin2win_win_arg(6) "\n\t" \
+ "callq *%[fptr]\n\t" \
+ free_win_stack_frame(6) \
+ : outputs() \
+ : "c" (arg1), "d" (arg2), "r" (r8), "r" (r9), \
+ [rarg5] "ri" ((u64)arg5), [rarg6] "ri" ((u64)arg6), \
+ [fptr] "r" (func) \
+ : clobbers()); \
+ _ret; \
+})
+
+#else // CONFIG_X86_64
+
+#define LIN2WIN1(func, arg1) \
+({ \
+ TRACE6("calling %p", func); \
+ func(arg1); \
+})
+#define LIN2WIN2(func, arg1, arg2) \
+({ \
+ TRACE6("calling %p", func); \
+ func(arg1, arg2); \
+})
+#define LIN2WIN3(func, arg1, arg2, arg3) \
+({ \
+ TRACE6("calling %p", func); \
+ func(arg1, arg2, arg3); \
+})
+#define LIN2WIN4(func, arg1, arg2, arg3, arg4) \
+({ \
+ TRACE6("calling %p", func); \
+ func(arg1, arg2, arg3, arg4); \
+})
+#define LIN2WIN5(func, arg1, arg2, arg3, arg4, arg5) \
+({ \
+ TRACE6("calling %p", func); \
+ func(arg1, arg2, arg3, arg4, arg5); \
+})
+#define LIN2WIN6(func, arg1, arg2, arg3, arg4, arg5, arg6) \
+({ \
+ TRACE6("calling %p", func); \
+ func(arg1, arg2, arg3, arg4, arg5, arg6); \
+})
+
+#endif // CONFIG_X86_64
diff --git a/ubuntu/ndiswrapper/loader.c b/ubuntu/ndiswrapper/loader.c
new file mode 100644
index 00000000000..5c231c71a47
--- /dev/null
+++ b/ubuntu/ndiswrapper/loader.c
@@ -0,0 +1,877 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "ndis.h"
+#include "loader.h"
+#include "wrapndis.h"
+#include "pnp.h"
+
+#include <linux/module.h>
+#include <linux/kmod.h>
+#include <linux/miscdevice.h>
+#include <asm/uaccess.h>
+
+/*
+ Network adapter: ClassGuid = {4d36e972-e325-11ce-bfc1-08002be10318}
+ Network client: ClassGuid = {4d36e973-e325-11ce-bfc1-08002be10318}
+ PCMCIA adapter: ClassGuid = {4d36e977-e325-11ce-bfc1-08002be10318}
+ USB: ClassGuid = {36fc9e60-c465-11cf-8056-444553540000}
+*/
+
+/* the indices used here must match macros WRAP_NDIS_DEVICE etc. */
+static struct guid class_guids[] = {
+ /* Network */
+ {0x4d36e972, 0xe325, 0x11ce, },
+ /* USB WDM */
+ {0x36fc9e60, 0xc465, 0x11cf, },
+ /* Bluetooth */
+ {0xe0cbf06c, 0xcd8b, 0x4647, },
+ /* ivtcorporatino.com's bluetooth device claims this is
+ * bluetooth guid */
+ {0xf12d3cf8, 0xb11d, 0x457e, },
+};
+
+struct semaphore loader_mutex;
+static struct completion loader_complete;
+
+static struct nt_list wrap_devices;
+static struct nt_list wrap_drivers;
+
+static int wrap_device_type(int data1)
+{
+ int i;
+ for (i = 0; i < sizeof(class_guids) / sizeof(class_guids[0]); i++)
+ if (data1 == class_guids[i].data1)
+ return i;
+ ERROR("unknown device: 0x%x\n", data1);
+ return -1;
+}
+
+/* load driver for given device, if not already loaded */
+struct wrap_driver *load_wrap_driver(struct wrap_device *wd)
+{
+ int ret;
+ struct nt_list *cur;
+ struct wrap_driver *wrap_driver;
+
+ ENTER1("device: %04X:%04X:%04X:%04X", wd->vendor, wd->device,
+ wd->subvendor, wd->subdevice);
+ if (down_interruptible(&loader_mutex)) {
+ WARNING("couldn't obtain loader_mutex");
+ EXIT1(return NULL);
+ }
+ wrap_driver = NULL;
+ nt_list_for_each(cur, &wrap_drivers) {
+ wrap_driver = container_of(cur, struct wrap_driver, list);
+ if (!stricmp(wrap_driver->name, wd->driver_name)) {
+ TRACE1("driver %s already loaded", wrap_driver->name);
+ break;
+ } else
+ wrap_driver = NULL;
+ }
+ up(&loader_mutex);
+
+ if (!wrap_driver) {
+ char *argv[] = {"loadndisdriver", WRAP_CMD_LOAD_DRIVER,
+#if defined(DEBUG) && DEBUG >= 1
+ "1",
+#else
+ "0",
+#endif
+ UTILS_VERSION, wd->driver_name,
+ wd->conf_file_name, NULL};
+ char *env[] = {NULL};
+
+ TRACE1("loading driver %s", wd->driver_name);
+ if (down_interruptible(&loader_mutex)) {
+ WARNING("couldn't obtain loader_mutex");
+ EXIT1(return NULL);
+ }
+ INIT_COMPLETION(loader_complete);
+ ret = call_usermodehelper("/sbin/loadndisdriver", argv, env, 1);
+ if (ret) {
+ up(&loader_mutex);
+ ERROR("couldn't load driver %s; check system log "
+ "for messages from 'loadndisdriver'",
+ wd->driver_name);
+ EXIT1(return NULL);
+ }
+ wait_for_completion(&loader_complete);
+ TRACE1("%s", wd->driver_name);
+ wrap_driver = NULL;
+ nt_list_for_each(cur, &wrap_drivers) {
+ wrap_driver = container_of(cur, struct wrap_driver,
+ list);
+ if (!stricmp(wrap_driver->name, wd->driver_name)) {
+ wd->driver = wrap_driver;
+ break;
+ } else
+ wrap_driver = NULL;
+ }
+ up(&loader_mutex);
+ if (wrap_driver)
+ TRACE1("driver %s is loaded", wrap_driver->name);
+ else
+ ERROR("couldn't load driver '%s'", wd->driver_name);
+ }
+ EXIT1(return wrap_driver);
+}
+
+/* load the driver files from userspace. */
+static int load_sys_files(struct wrap_driver *driver,
+ struct load_driver *load_driver)
+{
+ int i, err;
+
+ TRACE1("num_pe_images = %d", load_driver->num_sys_files);
+ TRACE1("loading driver: %s", load_driver->name);
+ strncpy(driver->name, load_driver->name, sizeof(driver->name));
+ driver->name[sizeof(driver->name)-1] = 0;
+ TRACE1("driver: %s", driver->name);
+ err = 0;
+ driver->num_pe_images = 0;
+ for (i = 0; i < load_driver->num_sys_files; i++) {
+ struct pe_image *pe_image;
+ pe_image = &driver->pe_images[driver->num_pe_images];
+
+ strncpy(pe_image->name, load_driver->sys_files[i].name,
+ sizeof(pe_image->name));
+ pe_image->name[sizeof(pe_image->name)-1] = 0;
+ TRACE1("image size: %lu bytes",
+ (unsigned long)load_driver->sys_files[i].size);
+
+#ifdef CONFIG_X86_64
+#ifdef PAGE_KERNEL_EXECUTABLE
+ pe_image->image =
+ __vmalloc(load_driver->sys_files[i].size,
+ GFP_KERNEL | __GFP_HIGHMEM,
+ PAGE_KERNEL_EXECUTABLE);
+#elif defined PAGE_KERNEL_EXEC
+ pe_image->image =
+ __vmalloc(load_driver->sys_files[i].size,
+ GFP_KERNEL | __GFP_HIGHMEM,
+ PAGE_KERNEL_EXEC);
+#else
+#error x86_64 should have either PAGE_KERNEL_EXECUTABLE or PAGE_KERNEL_EXEC
+#endif
+#else
+ /* hate to play with kernel macros, but PAGE_KERNEL_EXEC is
+ * not available to modules! */
+#ifdef cpu_has_nx
+ if (cpu_has_nx)
+ pe_image->image =
+ __vmalloc(load_driver->sys_files[i].size,
+ GFP_KERNEL | __GFP_HIGHMEM,
+ __pgprot(__PAGE_KERNEL & ~_PAGE_NX));
+ else
+ pe_image->image =
+ vmalloc(load_driver->sys_files[i].size);
+#else
+ pe_image->image =
+ vmalloc(load_driver->sys_files[i].size);
+#endif
+#endif
+ if (!pe_image->image) {
+ ERROR("couldn't allocate memory");
+ err = -ENOMEM;
+ break;
+ }
+ TRACE1("image is at %p", pe_image->image);
+
+ if (copy_from_user(pe_image->image,
+ load_driver->sys_files[i].data,
+ load_driver->sys_files[i].size)) {
+ ERROR("couldn't load file %s",
+ load_driver->sys_files[i].name);
+ err = -EFAULT;
+ break;
+ }
+ pe_image->size = load_driver->sys_files[i].size;
+ driver->num_pe_images++;
+ }
+
+ if (!err && link_pe_images(driver->pe_images, driver->num_pe_images)) {
+ ERROR("couldn't prepare driver '%s'", load_driver->name);
+ err = -EINVAL;
+ }
+
+ if (driver->num_pe_images < load_driver->num_sys_files || err) {
+ for (i = 0; i < driver->num_pe_images; i++)
+ if (driver->pe_images[i].image)
+ vfree(driver->pe_images[i].image);
+ driver->num_pe_images = 0;
+ EXIT1(return err);
+ } else
+ EXIT1(return 0);
+}
+
+struct wrap_bin_file *get_bin_file(char *bin_file_name)
+{
+ int i = 0;
+ struct wrap_driver *driver, *cur;
+
+ ENTER1("%s", bin_file_name);
+ if (down_interruptible(&loader_mutex)) {
+ WARNING("couldn't obtain loader_mutex");
+ EXIT1(return NULL);
+ }
+ driver = NULL;
+ nt_list_for_each_entry(cur, &wrap_drivers, list) {
+ for (i = 0; i < cur->num_bin_files; i++)
+ if (!stricmp(cur->bin_files[i].name, bin_file_name)) {
+ driver = cur;
+ break;
+ }
+ if (driver)
+ break;
+ }
+ up(&loader_mutex);
+ if (!driver) {
+ TRACE1("coudln't find bin file '%s'", bin_file_name);
+ return NULL;
+ }
+
+ if (!driver->bin_files[i].data) {
+ char *argv[] = {"loadndisdriver", WRAP_CMD_LOAD_BIN_FILE,
+#if defined(DEBUG) && DEBUG >= 1
+ "1",
+#else
+ "0",
+#endif
+ UTILS_VERSION, driver->name,
+ driver->bin_files[i].name, NULL};
+ char *env[] = {NULL};
+ int ret;
+
+ TRACE1("loading bin file %s/%s", driver->name,
+ driver->bin_files[i].name);
+ if (down_interruptible(&loader_mutex)) {
+ WARNING("couldn't obtain loader_mutex");
+ EXIT1(return NULL);
+ }
+ INIT_COMPLETION(loader_complete);
+ ret = call_usermodehelper("/sbin/loadndisdriver", argv, env, 1);
+ if (ret) {
+ up(&loader_mutex);
+ ERROR("couldn't load file %s/%s; check system log "
+ "for messages from 'loadndisdriver' (%d)",
+ driver->name, driver->bin_files[i].name, ret);
+ EXIT1(return NULL);
+ }
+ wait_for_completion(&loader_complete);
+ up(&loader_mutex);
+ if (!driver->bin_files[i].data) {
+ WARNING("couldn't load binary file %s",
+ driver->bin_files[i].name);
+ EXIT1(return NULL);
+ }
+ }
+ EXIT2(return &(driver->bin_files[i]));
+}
+
+/* called with loader_mutex down */
+static int add_bin_file(struct load_driver_file *driver_file)
+{
+ struct wrap_driver *driver, *cur;
+ struct wrap_bin_file *bin_file;
+ int i = 0;
+
+ driver = NULL;
+ nt_list_for_each_entry(cur, &wrap_drivers, list) {
+ for (i = 0; i < cur->num_bin_files; i++)
+ if (!stricmp(cur->bin_files[i].name,
+ driver_file->name)) {
+ driver = cur;
+ break;
+ }
+ if (driver)
+ break;
+ }
+ if (!driver) {
+ ERROR("couldn't find %s", driver_file->name);
+ return -EINVAL;
+ }
+ bin_file = &driver->bin_files[i];
+ strncpy(bin_file->name, driver_file->name, sizeof(bin_file->name));
+ bin_file->name[sizeof(bin_file->name)-1] = 0;
+ bin_file->data = vmalloc(driver_file->size);
+ if (!bin_file->data) {
+ ERROR("couldn't allocate memory");
+ return -ENOMEM;
+ }
+ bin_file->size = driver_file->size;
+ if (copy_from_user(bin_file->data, driver_file->data, bin_file->size)) {
+ ERROR("couldn't copy data");
+ free_bin_file(bin_file);
+ return -EFAULT;
+ }
+ return 0;
+}
+
+void free_bin_file(struct wrap_bin_file *bin_file)
+{
+ TRACE2("unloading %s", bin_file->name);
+ if (bin_file->data)
+ vfree(bin_file->data);
+ bin_file->data = NULL;
+ bin_file->size = 0;
+ EXIT2(return);
+}
+
+/* load firmware files from userspace */
+static int load_bin_files_info(struct wrap_driver *driver,
+ struct load_driver *load_driver)
+{
+ struct wrap_bin_file *bin_files;
+ int i;
+
+ ENTER1("%s, %d", load_driver->name, load_driver->num_bin_files);
+ driver->num_bin_files = 0;
+ driver->bin_files = NULL;
+ if (load_driver->num_bin_files == 0)
+ EXIT1(return 0);
+ bin_files = kzalloc(load_driver->num_bin_files * sizeof(*bin_files),
+ GFP_KERNEL);
+ if (!bin_files) {
+ ERROR("couldn't allocate memory");
+ EXIT1(return -ENOMEM);
+ }
+
+ for (i = 0; i < load_driver->num_bin_files; i++) {
+ strncpy(bin_files[i].name, load_driver->bin_files[i].name,
+ sizeof(bin_files[i].name));
+ bin_files[i].name[sizeof(bin_files[i].name)-1] = 0;
+ TRACE2("loaded bin file %s", bin_files[i].name);
+ }
+ driver->num_bin_files = load_driver->num_bin_files;
+ driver->bin_files = bin_files;
+ EXIT1(return 0);
+}
+
+/* load settnigs for a device. called with loader_mutex down */
+static int load_settings(struct wrap_driver *wrap_driver,
+ struct load_driver *load_driver)
+{
+ int i, num_settings;
+
+ ENTER1("%p, %p", wrap_driver, load_driver);
+
+ num_settings = 0;
+ for (i = 0; i < load_driver->num_settings; i++) {
+ struct load_device_setting *load_setting =
+ &load_driver->settings[i];
+ struct wrap_device_setting *setting;
+ ULONG data1;
+
+ setting = kzalloc(sizeof(*setting), GFP_KERNEL);
+ if (!setting) {
+ ERROR("couldn't allocate memory");
+ break;
+ }
+ strncpy(setting->name, load_setting->name,
+ sizeof(setting->name));
+ setting->name[sizeof(setting->name)-1] = 0;
+ strncpy(setting->value, load_setting->value,
+ sizeof(setting->value));
+ setting->value[sizeof(setting->value)-1] = 0;
+ TRACE2("%p: %s=%s", setting, setting->name, setting->value);
+
+ if (strcmp(setting->name, "driver_version") == 0) {
+ strncpy(wrap_driver->version, setting->value,
+ sizeof(wrap_driver->version));
+ wrap_driver->version[sizeof(wrap_driver->version)-1] = 0;
+ } else if (strcmp(setting->name, "class_guid") == 0 &&
+ sscanf(setting->value, "%x", &data1) == 1) {
+ wrap_driver->dev_type = wrap_device_type(data1);
+ if (wrap_driver->dev_type < 0) {
+ WARNING("unknown guid: %x", data1);
+ wrap_driver->dev_type = 0;
+ }
+ }
+ InsertTailList(&wrap_driver->settings, &setting->list);
+ num_settings++;
+ }
+ /* it is not a fatal error if some settings couldn't be loaded */
+ if (num_settings > 0)
+ EXIT1(return 0);
+ else
+ EXIT1(return -EINVAL);
+}
+
+void unload_wrap_device(struct wrap_device *wd)
+{
+ struct nt_list *cur;
+ ENTER1("unloading device %p (%04X:%04X:%04X:%04X), driver %s", wd,
+ wd->vendor, wd->device, wd->subvendor, wd->subdevice,
+ wd->driver_name);
+ if (down_interruptible(&loader_mutex))
+ WARNING("couldn't obtain loader_mutex");
+ while ((cur = RemoveHeadList(&wd->settings))) {
+ struct wrap_device_setting *setting;
+ setting = container_of(cur, struct wrap_device_setting, list);
+ kfree(setting);
+ }
+ RemoveEntryList(&wd->list);
+ up(&loader_mutex);
+ kfree(wd);
+ EXIT1(return);
+}
+
+/* should be called with loader_mutex down */
+void unload_wrap_driver(struct wrap_driver *driver)
+{
+ int i;
+ struct driver_object *drv_obj;
+ struct nt_list *cur, *next;
+
+ ENTER1("unloading driver: %s (%p)", driver->name, driver);
+ TRACE1("freeing %d images", driver->num_pe_images);
+ drv_obj = driver->drv_obj;
+ for (i = 0; i < driver->num_pe_images; i++)
+ if (driver->pe_images[i].image) {
+ TRACE1("freeing image at %p",
+ driver->pe_images[i].image);
+ vfree(driver->pe_images[i].image);
+ }
+
+ TRACE1("freeing %d bin files", driver->num_bin_files);
+ for (i = 0; i < driver->num_bin_files; i++) {
+ TRACE1("freeing image at %p", driver->bin_files[i].data);
+ if (driver->bin_files[i].data)
+ vfree(driver->bin_files[i].data);
+ }
+ if (driver->bin_files)
+ kfree(driver->bin_files);
+ RtlFreeUnicodeString(&drv_obj->name);
+ RemoveEntryList(&driver->list);
+ nt_list_for_each_safe(cur, next, &driver->settings) {
+ struct wrap_device_setting *setting;
+ struct ndis_configuration_parameter *param;
+
+ setting = container_of(cur, struct wrap_device_setting, list);
+ TRACE2("%p", setting);
+ param = setting->encoded;
+ if (param) {
+ TRACE2("%p", param);
+ if (param->type == NdisParameterString)
+ RtlFreeUnicodeString(&param->data.string);
+ ExFreePool(param);
+ }
+ kfree(setting);
+ }
+ /* this frees driver */
+ free_custom_extensions(drv_obj->drv_ext);
+ kfree(drv_obj->drv_ext);
+ TRACE1("drv_obj: %p", drv_obj);
+
+ EXIT1(return);
+}
+
+/* call the entry point of the driver */
+static int start_wrap_driver(struct wrap_driver *driver)
+{
+ int i;
+ NTSTATUS ret, res;
+ struct driver_object *drv_obj;
+ typeof(driver->pe_images[0].entry) entry;
+
+ ENTER1("%s", driver->name);
+ drv_obj = driver->drv_obj;
+ for (ret = res = 0, i = 0; i < driver->num_pe_images; i++)
+ /* dlls are already started by loader */
+ if (driver->pe_images[i].type == IMAGE_FILE_EXECUTABLE_IMAGE) {
+ entry = driver->pe_images[i].entry;
+ drv_obj->start = driver->pe_images[i].entry;
+ drv_obj->driver_size = driver->pe_images[i].size;
+ TRACE1("entry: %p, %p, drv_obj: %p",
+ entry, *entry, drv_obj);
+ res = LIN2WIN2(entry, drv_obj, &drv_obj->name);
+ ret |= res;
+ TRACE1("entry returns %08X", res);
+ break;
+ }
+ if (ret) {
+ ERROR("driver initialization failed: %08X", ret);
+ RtlFreeUnicodeString(&drv_obj->name);
+ /* this frees ndis_driver */
+ free_custom_extensions(drv_obj->drv_ext);
+ kfree(drv_obj->drv_ext);
+ TRACE1("drv_obj: %p", drv_obj);
+ ObDereferenceObject(drv_obj);
+ EXIT1(return -EINVAL);
+ }
+ EXIT1(return 0);
+}
+
+/*
+ * add driver to list of loaded driver but make sure this driver is
+ * not loaded before. called with loader_mutex down
+ */
+static int add_wrap_driver(struct wrap_driver *driver)
+{
+ struct wrap_driver *tmp;
+
+ ENTER1("name: %s", driver->name);
+ nt_list_for_each_entry(tmp, &wrap_drivers, list) {
+ if (stricmp(tmp->name, driver->name) == 0) {
+ ERROR("cannot add duplicate driver");
+ EXIT1(return -EBUSY);
+ }
+ }
+ InsertHeadList(&wrap_drivers, &driver->list);
+ EXIT1(return 0);
+}
+
+/* load a driver from userspace and initialize it. called with
+ * loader_mutex down */
+static int load_user_space_driver(struct load_driver *load_driver)
+{
+ struct driver_object *drv_obj;
+ struct ansi_string ansi_reg;
+ struct wrap_driver *wrap_driver = NULL;
+
+ ENTER1("%p", load_driver);
+ drv_obj = allocate_object(sizeof(*drv_obj), OBJECT_TYPE_DRIVER, NULL);
+ if (!drv_obj) {
+ ERROR("couldn't allocate memory");
+ EXIT1(return -ENOMEM);
+ }
+ TRACE1("drv_obj: %p", drv_obj);
+ drv_obj->drv_ext = kzalloc(sizeof(*(drv_obj->drv_ext)), GFP_KERNEL);
+ if (!drv_obj->drv_ext) {
+ ERROR("couldn't allocate memory");
+ ObDereferenceObject(drv_obj);
+ EXIT1(return -ENOMEM);
+ }
+ InitializeListHead(&drv_obj->drv_ext->custom_ext);
+ if (IoAllocateDriverObjectExtension(drv_obj,
+ (void *)WRAP_DRIVER_CLIENT_ID,
+ sizeof(*wrap_driver),
+ (void **)&wrap_driver) !=
+ STATUS_SUCCESS)
+ EXIT1(return -ENOMEM);
+ TRACE1("driver: %p", wrap_driver);
+ memset(wrap_driver, 0, sizeof(*wrap_driver));
+ InitializeListHead(&wrap_driver->list);
+ InitializeListHead(&wrap_driver->settings);
+ InitializeListHead(&wrap_driver->wrap_devices);
+ wrap_driver->drv_obj = drv_obj;
+ RtlInitAnsiString(&ansi_reg, "/tmp");
+ if (RtlAnsiStringToUnicodeString(&drv_obj->name, &ansi_reg, TRUE) !=
+ STATUS_SUCCESS) {
+ ERROR("couldn't initialize registry path");
+ free_custom_extensions(drv_obj->drv_ext);
+ kfree(drv_obj->drv_ext);
+ TRACE1("drv_obj: %p", drv_obj);
+ ObDereferenceObject(drv_obj);
+ EXIT1(return -EINVAL);
+ }
+ strncpy(wrap_driver->name, load_driver->name, sizeof(wrap_driver->name));
+ wrap_driver->name[sizeof(wrap_driver->name)-1] = 0;
+ if (load_sys_files(wrap_driver, load_driver) ||
+ load_bin_files_info(wrap_driver, load_driver) ||
+ load_settings(wrap_driver, load_driver) ||
+ start_wrap_driver(wrap_driver) ||
+ add_wrap_driver(wrap_driver)) {
+ unload_wrap_driver(wrap_driver);
+ EXIT1(return -EINVAL);
+ } else {
+ printk(KERN_INFO "%s: driver %s (%s) loaded\n",
+ DRIVER_NAME, wrap_driver->name, wrap_driver->version);
+ add_taint(TAINT_PROPRIETARY_MODULE);
+ EXIT1(return 0);
+ }
+}
+
+static struct pci_device_id wrap_pci_id_table[] = {
+ {PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID},
+};
+
+static struct pci_driver wrap_pci_driver = {
+ .name = DRIVER_NAME,
+ .id_table = wrap_pci_id_table,
+ .probe = wrap_pnp_start_pci_device,
+ .remove = __devexit_p(wrap_pnp_remove_pci_device),
+ .suspend = wrap_pnp_suspend_pci_device,
+ .resume = wrap_pnp_resume_pci_device,
+};
+
+#ifdef ENABLE_USB
+static struct usb_device_id wrap_usb_id_table[] = {
+ {
+ .driver_info = 1
+ },
+};
+
+static struct usb_driver wrap_usb_driver = {
+ .name = DRIVER_NAME,
+ .id_table = wrap_usb_id_table,
+ .probe = wrap_pnp_start_usb_device,
+ .disconnect = __devexit_p(wrap_pnp_remove_usb_device),
+ .suspend = wrap_pnp_suspend_usb_device,
+ .resume = wrap_pnp_resume_usb_device,
+};
+#endif
+
+/* register drivers for pci and usb */
+static void register_devices(void)
+{
+ int res;
+
+ res = pci_register_driver(&wrap_pci_driver);
+ if (res < 0) {
+ ERROR("couldn't register pci driver: %d", res);
+ wrap_pci_driver.name = NULL;
+ }
+
+#ifdef ENABLE_USB
+ res = usb_register(&wrap_usb_driver);
+ if (res < 0) {
+ ERROR("couldn't register usb driver: %d", res);
+ wrap_usb_driver.name = NULL;
+ }
+#endif
+ EXIT1(return);
+}
+
+static void unregister_devices(void)
+{
+ struct nt_list *cur, *next;
+
+ if (down_interruptible(&loader_mutex))
+ WARNING("couldn't obtain loader_mutex");
+ nt_list_for_each_safe(cur, next, &wrap_devices) {
+ struct wrap_device *wd;
+ wd = container_of(cur, struct wrap_device, list);
+ set_bit(HW_PRESENT, &wd->hw_status);
+ }
+ up(&loader_mutex);
+
+ if (wrap_pci_driver.name)
+ pci_unregister_driver(&wrap_pci_driver);
+#ifdef ENABLE_USB
+ if (wrap_usb_driver.name)
+ usb_deregister(&wrap_usb_driver);
+#endif
+}
+
+struct wrap_device *load_wrap_device(struct load_device *load_device)
+{
+ int ret;
+ struct nt_list *cur;
+ struct wrap_device *wd = NULL;
+ char vendor[5], device[5], subvendor[5], subdevice[5], bus[5];
+
+ ENTER1("%04x, %04x, %04x, %04x", load_device->vendor,
+ load_device->device, load_device->subvendor,
+ load_device->subdevice);
+ if (sprintf(vendor, "%04x", load_device->vendor) == 4 &&
+ sprintf(device, "%04x", load_device->device) == 4 &&
+ sprintf(subvendor, "%04x", load_device->subvendor) == 4 &&
+ sprintf(subdevice, "%04x", load_device->subdevice) == 4 &&
+ sprintf(bus, "%04x", load_device->bus) == 4) {
+ char *argv[] = {"loadndisdriver", WRAP_CMD_LOAD_DEVICE,
+#if defined(DEBUG) && DEBUG >= 1
+ "1",
+#else
+ "0",
+#endif
+ UTILS_VERSION, vendor, device,
+ subvendor, subdevice, bus, NULL};
+ char *env[] = {NULL};
+ TRACE2("%s, %s, %s, %s, %s", vendor, device,
+ subvendor, subdevice, bus);
+ if (down_interruptible(&loader_mutex)) {
+ WARNING("couldn't obtain loader_mutex");
+ EXIT1(return NULL);
+ }
+ INIT_COMPLETION(loader_complete);
+ ret = call_usermodehelper("/sbin/loadndisdriver", argv, env, 1);
+ if (ret) {
+ up(&loader_mutex);
+ TRACE1("couldn't load device %04x:%04x; check system "
+ "log for messages from 'loadndisdriver'",
+ load_device->vendor, load_device->device);
+ EXIT1(return NULL);
+ }
+ wait_for_completion(&loader_complete);
+ wd = NULL;
+ nt_list_for_each(cur, &wrap_devices) {
+ wd = container_of(cur, struct wrap_device, list);
+ TRACE2("%p, %04x, %04x, %04x, %04x", wd, wd->vendor,
+ wd->device, wd->subvendor, wd->subdevice);
+ if (wd->vendor == load_device->vendor &&
+ wd->device == load_device->device)
+ break;
+ else
+ wd = NULL;
+ }
+ up(&loader_mutex);
+ } else
+ wd = NULL;
+ EXIT1(return wd);
+}
+
+struct wrap_device *get_wrap_device(void *dev, int bus)
+{
+ struct nt_list *cur;
+ struct wrap_device *wd;
+
+ if (down_interruptible(&loader_mutex)) {
+ WARNING("couldn't obtain loader_mutex");
+ return NULL;
+ }
+ wd = NULL;
+ nt_list_for_each(cur, &wrap_devices) {
+ wd = container_of(cur, struct wrap_device, list);
+ if (bus == WRAP_PCI_BUS &&
+ wrap_is_pci_bus(wd->dev_bus) && wd->pci.pdev == dev)
+ break;
+ else if (bus == WRAP_USB_BUS &&
+ wrap_is_usb_bus(wd->dev_bus) && wd->usb.udev == dev)
+ break;
+ else
+ wd = NULL;
+ }
+ up(&loader_mutex);
+ return wd;
+}
+
+/* called with loader_mutex is down */
+static int wrapper_ioctl(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
+{
+ struct load_driver *load_driver;
+ struct load_device load_device;
+ struct load_driver_file load_bin_file;
+ int ret;
+ void __user *addr = (void __user *)arg;
+
+ ENTER1("cmd: %u", cmd);
+
+ ret = 0;
+ switch (cmd) {
+ case WRAP_IOCTL_LOAD_DEVICE:
+ if (copy_from_user(&load_device, addr, sizeof(load_device))) {
+ ret = -EFAULT;
+ break;
+ }
+ TRACE2("%04x, %04x, %04x, %04x", load_device.vendor,
+ load_device.device, load_device.subvendor,
+ load_device.subdevice);
+ if (load_device.vendor) {
+ struct wrap_device *wd;
+ wd = kzalloc(sizeof(*wd), GFP_KERNEL);
+ if (!wd) {
+ ret = -ENOMEM;
+ break;
+ }
+ InitializeListHead(&wd->settings);
+ wd->dev_bus = WRAP_BUS(load_device.bus);
+ wd->vendor = load_device.vendor;
+ wd->device = load_device.device;
+ wd->subvendor = load_device.subvendor;
+ wd->subdevice = load_device.subdevice;
+ strncpy(wd->conf_file_name, load_device.conf_file_name,
+ sizeof(wd->conf_file_name));
+ wd->conf_file_name[sizeof(wd->conf_file_name)-1] = 0;
+ strncpy(wd->driver_name, load_device.driver_name,
+ sizeof(wd->driver_name));
+ wd->driver_name[sizeof(wd->driver_name)-1] = 0;
+ InsertHeadList(&wrap_devices, &wd->list);
+ ret = 0;
+ } else
+ ret = -EINVAL;
+ break;
+ case WRAP_IOCTL_LOAD_DRIVER:
+ TRACE1("loading driver at %p", addr);
+ load_driver = vmalloc(sizeof(*load_driver));
+ if (!load_driver) {
+ ret = -ENOMEM;
+ break;
+ }
+ if (copy_from_user(load_driver, addr, sizeof(*load_driver)))
+ ret = -EFAULT;
+ else
+ ret = load_user_space_driver(load_driver);
+ vfree(load_driver);
+ break;
+ case WRAP_IOCTL_LOAD_BIN_FILE:
+ if (copy_from_user(&load_bin_file, addr, sizeof(load_bin_file)))
+ ret = -EFAULT;
+ else
+ ret = add_bin_file(&load_bin_file);
+ break;
+ default:
+ ERROR("unknown ioctl %u", cmd);
+ ret = -EINVAL;
+ break;
+ }
+ complete(&loader_complete);
+ EXIT1(return ret);
+}
+
+static int wrapper_ioctl_release(struct inode *inode, struct file *file)
+{
+ ENTER1("");
+ return 0;
+}
+
+static struct file_operations wrapper_fops = {
+ .owner = THIS_MODULE,
+ .ioctl = wrapper_ioctl,
+ .release = wrapper_ioctl_release,
+};
+
+static struct miscdevice wrapper_misc = {
+ .name = DRIVER_NAME,
+ .minor = MISC_DYNAMIC_MINOR,
+ .fops = &wrapper_fops
+};
+
+int loader_init(void)
+{
+ int err;
+
+ InitializeListHead(&wrap_drivers);
+ InitializeListHead(&wrap_devices);
+ sema_init(&loader_mutex, 1);
+ init_completion(&loader_complete);
+ if ((err = misc_register(&wrapper_misc)) < 0 ) {
+ ERROR("couldn't register module (%d)", err);
+ unregister_devices();
+ EXIT1(return err);
+ }
+ register_devices();
+ EXIT1(return 0);
+}
+
+void loader_exit(void)
+{
+ struct nt_list *cur, *next;
+
+ ENTER1("");
+ misc_deregister(&wrapper_misc);
+ unregister_devices();
+ if (down_interruptible(&loader_mutex))
+ WARNING("couldn't obtain loader_mutex");
+ nt_list_for_each_safe(cur, next, &wrap_drivers) {
+ struct wrap_driver *driver;
+ driver = container_of(cur, struct wrap_driver, list);
+ unload_wrap_driver(driver);
+ }
+ up(&loader_mutex);
+ EXIT1(return);
+}
diff --git a/ubuntu/ndiswrapper/loader.h b/ubuntu/ndiswrapper/loader.h
new file mode 100644
index 00000000000..5073f49d6a9
--- /dev/null
+++ b/ubuntu/ndiswrapper/loader.h
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef _LOADER_H_
+#define _LOADER_H_
+
+#include "ndiswrapper.h"
+
+#ifndef __KERNEL__
+#define __user
+#endif
+
+struct load_driver_file {
+ char driver_name[MAX_DRIVER_NAME_LEN];
+ char name[MAX_DRIVER_NAME_LEN];
+ size_t size;
+ void __user *data;
+};
+
+struct load_device_setting {
+ char name[MAX_SETTING_NAME_LEN];
+ char value[MAX_SETTING_VALUE_LEN];
+};
+
+struct load_device {
+ int bus;
+ int vendor;
+ int device;
+ int subvendor;
+ int subdevice;
+ char conf_file_name[MAX_DRIVER_NAME_LEN];
+ char driver_name[MAX_DRIVER_NAME_LEN];
+};
+
+struct load_devices {
+ int count;
+ struct load_device *devices;
+};
+
+struct load_driver {
+ char name[MAX_DRIVER_NAME_LEN];
+ char conf_file_name[MAX_DRIVER_NAME_LEN];
+ unsigned int num_sys_files;
+ struct load_driver_file sys_files[MAX_DRIVER_PE_IMAGES];
+ unsigned int num_settings;
+ struct load_device_setting settings[MAX_DEVICE_SETTINGS];
+ unsigned int num_bin_files;
+ struct load_driver_file bin_files[MAX_DRIVER_BIN_FILES];
+};
+
+#define WRAP_IOCTL_LOAD_DEVICE _IOW(('N' + 'd' + 'i' + 'S'), 0, \
+ struct load_device *)
+#define WRAP_IOCTL_LOAD_DRIVER _IOW(('N' + 'd' + 'i' + 'S'), 1, \
+ struct load_driver *)
+#define WRAP_IOCTL_LOAD_BIN_FILE _IOW(('N' + 'd' + 'i' + 'S'), 2, \
+ struct load_driver_file *)
+
+#define WRAP_CMD_LOAD_DEVICE "load_device"
+#define WRAP_CMD_LOAD_DRIVER "load_driver"
+#define WRAP_CMD_LOAD_BIN_FILE "load_bin_file"
+
+int loader_init(void);
+void loader_exit(void);
+
+#ifdef __KERNEL__
+struct wrap_device *load_wrap_device(struct load_device *load_device);
+struct wrap_driver *load_wrap_driver(struct wrap_device *device);
+struct wrap_bin_file *get_bin_file(char *bin_file_name);
+void free_bin_file(struct wrap_bin_file *bin_file);
+void unload_wrap_driver(struct wrap_driver *driver);
+void unload_wrap_device(struct wrap_device *wd);
+struct wrap_device *get_wrap_device(void *dev, int bus_type);
+
+extern struct semaphore loader_mutex;
+#endif
+
+#endif /* LOADER_H */
+
diff --git a/ubuntu/ndiswrapper/longlong.h b/ubuntu/ndiswrapper/longlong.h
new file mode 100644
index 00000000000..cd1e30ed2eb
--- /dev/null
+++ b/ubuntu/ndiswrapper/longlong.h
@@ -0,0 +1,1333 @@
+/* longlong.h -- definitions for mixed size 32/64 bit arithmetic.
+ Copyright (C) 1991, 1992, 1994, 1995, 1996, 1997, 1998, 1999, 2000
+ Free Software Foundation, Inc.
+
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/* You have to define the following before including this file:
+
+ UWtype -- An unsigned type, default type for operations (typically a "word")
+ UHWtype -- An unsigned type, at least half the size of UWtype.
+ UDWtype -- An unsigned type, at least twice as large a UWtype
+ W_TYPE_SIZE -- size in bits of UWtype
+
+ UQItype -- Unsigned 8 bit type.
+ SItype, USItype -- Signed and unsigned 32 bit types.
+ DItype, UDItype -- Signed and unsigned 64 bit types.
+
+ On a 32 bit machine UWtype should typically be USItype;
+ on a 64 bit machine, UWtype should typically be UDItype.
+*/
+
+#define __BITS4 (W_TYPE_SIZE / 4)
+#define __ll_B ((UWtype) 1 << (W_TYPE_SIZE / 2))
+#define __ll_lowpart(t) ((UWtype) (t) & (__ll_B - 1))
+#define __ll_highpart(t) ((UWtype) (t) >> (W_TYPE_SIZE / 2))
+
+#ifndef W_TYPE_SIZE
+#define W_TYPE_SIZE 32
+#define UWtype USItype
+#define UHWtype USItype
+#define UDWtype UDItype
+#endif
+
+/* Define auxiliary asm macros.
+
+ 1) umul_ppmm(high_prod, low_prod, multipler, multiplicand) multiplies two
+ UWtype integers MULTIPLER and MULTIPLICAND, and generates a two UWtype
+ word product in HIGH_PROD and LOW_PROD.
+
+ 2) __umulsidi3(a,b) multiplies two UWtype integers A and B, and returns a
+ UDWtype product. This is just a variant of umul_ppmm.
+
+ 3) udiv_qrnnd(quotient, remainder, high_numerator, low_numerator,
+ denominator) divides a UDWtype, composed by the UWtype integers
+ HIGH_NUMERATOR and LOW_NUMERATOR, by DENOMINATOR and places the quotient
+ in QUOTIENT and the remainder in REMAINDER. HIGH_NUMERATOR must be less
+ than DENOMINATOR for correct operation. If, in addition, the most
+ significant bit of DENOMINATOR must be 1, then the pre-processor symbol
+ UDIV_NEEDS_NORMALIZATION is defined to 1.
+
+ 4) sdiv_qrnnd(quotient, remainder, high_numerator, low_numerator,
+ denominator). Like udiv_qrnnd but the numbers are signed. The quotient
+ is rounded towards 0.
+
+ 5) count_leading_zeros(count, x) counts the number of zero-bits from the
+ msb to the first nonzero bit in the UWtype X. This is the number of
+ steps X needs to be shifted left to set the msb. Undefined for X == 0,
+ unless the symbol COUNT_LEADING_ZEROS_0 is defined to some value.
+
+ 6) count_trailing_zeros(count, x) like count_leading_zeros, but counts
+ from the least significant end.
+
+ 7) add_ssaaaa(high_sum, low_sum, high_addend_1, low_addend_1,
+ high_addend_2, low_addend_2) adds two UWtype integers, composed by
+ HIGH_ADDEND_1 and LOW_ADDEND_1, and HIGH_ADDEND_2 and LOW_ADDEND_2
+ respectively. The result is placed in HIGH_SUM and LOW_SUM. Overflow
+ (i.e. carry out) is not stored anywhere, and is lost.
+
+ 8) sub_ddmmss(high_difference, low_difference, high_minuend, low_minuend,
+ high_subtrahend, low_subtrahend) subtracts two two-word UWtype integers,
+ composed by HIGH_MINUEND_1 and LOW_MINUEND_1, and HIGH_SUBTRAHEND_2 and
+ LOW_SUBTRAHEND_2 respectively. The result is placed in HIGH_DIFFERENCE
+ and LOW_DIFFERENCE. Overflow (i.e. carry out) is not stored anywhere,
+ and is lost.
+
+ If any of these macros are left undefined for a particular CPU,
+ C macros are used. */
+
+/* The CPUs come in alphabetical order below.
+
+ Please add support for more CPUs here, or improve the current support
+ for the CPUs below!
+ (E.g. WE32100, IBM360.) */
+
+#if defined (__GNUC__) && !defined (NO_ASM)
+
+/* We sometimes need to clobber "cc" with gcc2, but that would not be
+ understood by gcc1. Use cpp to avoid major code duplication. */
+#if __GNUC__ < 2
+#define __CLOBBER_CC
+#define __AND_CLOBBER_CC
+#else /* __GNUC__ >= 2 */
+#define __CLOBBER_CC : "cc"
+#define __AND_CLOBBER_CC , "cc"
+#endif /* __GNUC__ < 2 */
+
+#if defined (__alpha) && W_TYPE_SIZE == 64
+#define umul_ppmm(ph, pl, m0, m1) \
+ do { \
+ UDItype __m0 = (m0), __m1 = (m1); \
+ __asm__ ("umulh %r1,%2,%0" \
+ : "=r" ((UDItype) ph) \
+ : "%rJ" (__m0), \
+ "rI" (__m1)); \
+ (pl) = __m0 * __m1; \
+ } while (0)
+#define UMUL_TIME 46
+#ifndef LONGLONG_STANDALONE
+#define udiv_qrnnd(q, r, n1, n0, d) \
+ do { UDItype __r; \
+ (q) = __udiv_qrnnd (&__r, (n1), (n0), (d)); \
+ (r) = __r; \
+ } while (0)
+extern UDItype __udiv_qrnnd (UDItype *, UDItype, UDItype, UDItype);
+#define UDIV_TIME 220
+#endif /* LONGLONG_STANDALONE */
+#ifdef __alpha_cix__
+#define count_leading_zeros(COUNT,X) \
+ __asm__("ctlz %1,%0" : "=r"(COUNT) : "r"(X))
+#define count_trailing_zeros(COUNT,X) \
+ __asm__("cttz %1,%0" : "=r"(COUNT) : "r"(X))
+#define COUNT_LEADING_ZEROS_0 64
+#else
+extern const UQItype __clz_tab[];
+#define count_leading_zeros(COUNT,X) \
+ do { \
+ UDItype __xr = (X), __t, __a; \
+ __asm__("cmpbge $31,%1,%0" : "=r"(__t) : "r"(__xr)); \
+ __a = __clz_tab[__t ^ 0xff] - 1; \
+ __asm__("extbl %1,%2,%0" : "=r"(__t) : "r"(__xr), "r"(__a)); \
+ (COUNT) = 64 - (__clz_tab[__t] + __a*8); \
+ } while (0)
+#define count_trailing_zeros(COUNT,X) \
+ do { \
+ UDItype __xr = (X), __t, __a; \
+ __asm__("cmpbge $31,%1,%0" : "=r"(__t) : "r"(__xr)); \
+ __t = ~__t & -~__t; \
+ __a = ((__t & 0xCC) != 0) * 2; \
+ __a += ((__t & 0xF0) != 0) * 4; \
+ __a += ((__t & 0xAA) != 0); \
+ __asm__("extbl %1,%2,%0" : "=r"(__t) : "r"(__xr), "r"(__a)); \
+ __a <<= 3; \
+ __t &= -__t; \
+ __a += ((__t & 0xCC) != 0) * 2; \
+ __a += ((__t & 0xF0) != 0) * 4; \
+ __a += ((__t & 0xAA) != 0); \
+ (COUNT) = __a; \
+ } while (0)
+#endif /* __alpha_cix__ */
+#endif /* __alpha */
+
+#if defined (__arc__) && W_TYPE_SIZE == 32
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ __asm__ ("add.f %1, %4, %5\n\tadc %0, %2, %3" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "%r" ((USItype) (ah)), \
+ "rIJ" ((USItype) (bh)), \
+ "%r" ((USItype) (al)), \
+ "rIJ" ((USItype) (bl)))
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ __asm__ ("sub.f %1, %4, %5\n\tsbc %0, %2, %3" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "r" ((USItype) (ah)), \
+ "rIJ" ((USItype) (bh)), \
+ "r" ((USItype) (al)), \
+ "rIJ" ((USItype) (bl)))
+/* Call libgcc routine. */
+#define umul_ppmm(w1, w0, u, v) \
+do { \
+ DWunion __w; \
+ __w.ll = __umulsidi3 (u, v); \
+ w1 = __w.s.high; \
+ w0 = __w.s.low; \
+} while (0)
+#define __umulsidi3 __umulsidi3
+UDItype __umulsidi3 (USItype, USItype);
+#endif
+
+#if defined (__arm__) && W_TYPE_SIZE == 32
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ __asm__ ("adds %1, %4, %5\n\tadc %0, %2, %3" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "%r" ((USItype) (ah)), \
+ "rI" ((USItype) (bh)), \
+ "%r" ((USItype) (al)), \
+ "rI" ((USItype) (bl)))
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ __asm__ ("subs %1, %4, %5\n\tsbc %0, %2, %3" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "r" ((USItype) (ah)), \
+ "rI" ((USItype) (bh)), \
+ "r" ((USItype) (al)), \
+ "rI" ((USItype) (bl)))
+#define umul_ppmm(xh, xl, a, b) \
+{register USItype __t0, __t1, __t2; \
+ __asm__ ("%@ Inlined umul_ppmm\n" \
+ " mov %2, %5, lsr #16\n" \
+ " mov %0, %6, lsr #16\n" \
+ " bic %3, %5, %2, lsl #16\n" \
+ " bic %4, %6, %0, lsl #16\n" \
+ " mul %1, %3, %4\n" \
+ " mul %4, %2, %4\n" \
+ " mul %3, %0, %3\n" \
+ " mul %0, %2, %0\n" \
+ " adds %3, %4, %3\n" \
+ " addcs %0, %0, #65536\n" \
+ " adds %1, %1, %3, lsl #16\n" \
+ " adc %0, %0, %3, lsr #16" \
+ : "=&r" ((USItype) (xh)), \
+ "=r" ((USItype) (xl)), \
+ "=&r" (__t0), "=&r" (__t1), "=r" (__t2) \
+ : "r" ((USItype) (a)), \
+ "r" ((USItype) (b)));}
+#define UMUL_TIME 20
+#define UDIV_TIME 100
+#endif /* __arm__ */
+
+#if defined (__hppa) && W_TYPE_SIZE == 32
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ __asm__ ("add %4,%5,%1\n\taddc %2,%3,%0" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "%rM" ((USItype) (ah)), \
+ "rM" ((USItype) (bh)), \
+ "%rM" ((USItype) (al)), \
+ "rM" ((USItype) (bl)))
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ __asm__ ("sub %4,%5,%1\n\tsubb %2,%3,%0" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "rM" ((USItype) (ah)), \
+ "rM" ((USItype) (bh)), \
+ "rM" ((USItype) (al)), \
+ "rM" ((USItype) (bl)))
+#if defined (_PA_RISC1_1)
+#define umul_ppmm(w1, w0, u, v) \
+ do { \
+ union \
+ { \
+ UDItype __f; \
+ struct {USItype __w1, __w0;} __w1w0; \
+ } __t; \
+ __asm__ ("xmpyu %1,%2,%0" \
+ : "=x" (__t.__f) \
+ : "x" ((USItype) (u)), \
+ "x" ((USItype) (v))); \
+ (w1) = __t.__w1w0.__w1; \
+ (w0) = __t.__w1w0.__w0; \
+ } while (0)
+#define UMUL_TIME 8
+#else
+#define UMUL_TIME 30
+#endif
+#define UDIV_TIME 40
+#define count_leading_zeros(count, x) \
+ do { \
+ USItype __tmp; \
+ __asm__ ( \
+ "ldi 1,%0\n" \
+" extru,= %1,15,16,%%r0 ; Bits 31..16 zero?\n" \
+" extru,tr %1,15,16,%1 ; No. Shift down, skip add.\n"\
+" ldo 16(%0),%0 ; Yes. Perform add.\n" \
+" extru,= %1,23,8,%%r0 ; Bits 15..8 zero?\n" \
+" extru,tr %1,23,8,%1 ; No. Shift down, skip add.\n"\
+" ldo 8(%0),%0 ; Yes. Perform add.\n" \
+" extru,= %1,27,4,%%r0 ; Bits 7..4 zero?\n" \
+" extru,tr %1,27,4,%1 ; No. Shift down, skip add.\n"\
+" ldo 4(%0),%0 ; Yes. Perform add.\n" \
+" extru,= %1,29,2,%%r0 ; Bits 3..2 zero?\n" \
+" extru,tr %1,29,2,%1 ; No. Shift down, skip add.\n"\
+" ldo 2(%0),%0 ; Yes. Perform add.\n" \
+" extru %1,30,1,%1 ; Extract bit 1.\n" \
+" sub %0,%1,%0 ; Subtract it.\n" \
+ : "=r" (count), "=r" (__tmp) : "1" (x)); \
+ } while (0)
+#endif
+
+#if (defined (__i370__) || defined (__mvs__)) && W_TYPE_SIZE == 32
+#define umul_ppmm(xh, xl, m0, m1) \
+ do { \
+ union {UDItype __ll; \
+ struct {USItype __h, __l;} __i; \
+ } __xx; \
+ USItype __m0 = (m0), __m1 = (m1); \
+ __asm__ ("mr %0,%3" \
+ : "=r" (__xx.__i.__h), \
+ "=r" (__xx.__i.__l) \
+ : "%1" (__m0), \
+ "r" (__m1)); \
+ (xh) = __xx.__i.__h; (xl) = __xx.__i.__l; \
+ (xh) += ((((SItype) __m0 >> 31) & __m1) \
+ + (((SItype) __m1 >> 31) & __m0)); \
+ } while (0)
+#define smul_ppmm(xh, xl, m0, m1) \
+ do { \
+ union {DItype __ll; \
+ struct {USItype __h, __l;} __i; \
+ } __xx; \
+ __asm__ ("mr %0,%3" \
+ : "=r" (__xx.__i.__h), \
+ "=r" (__xx.__i.__l) \
+ : "%1" (m0), \
+ "r" (m1)); \
+ (xh) = __xx.__i.__h; (xl) = __xx.__i.__l; \
+ } while (0)
+#define sdiv_qrnnd(q, r, n1, n0, d) \
+ do { \
+ union {DItype __ll; \
+ struct {USItype __h, __l;} __i; \
+ } __xx; \
+ __xx.__i.__h = n1; __xx.__i.__l = n0; \
+ __asm__ ("dr %0,%2" \
+ : "=r" (__xx.__ll) \
+ : "0" (__xx.__ll), "r" (d)); \
+ (q) = __xx.__i.__l; (r) = __xx.__i.__h; \
+ } while (0)
+#endif
+
+#if (defined (__i386__) || defined (__i486__)) && W_TYPE_SIZE == 32
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ __asm__ ("addl %5,%1\n\tadcl %3,%0" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "%0" ((USItype) (ah)), \
+ "g" ((USItype) (bh)), \
+ "%1" ((USItype) (al)), \
+ "g" ((USItype) (bl)))
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ __asm__ ("subl %5,%1\n\tsbbl %3,%0" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "0" ((USItype) (ah)), \
+ "g" ((USItype) (bh)), \
+ "1" ((USItype) (al)), \
+ "g" ((USItype) (bl)))
+#define umul_ppmm(w1, w0, u, v) \
+ __asm__ ("mull %3" \
+ : "=a" ((USItype) (w0)), \
+ "=d" ((USItype) (w1)) \
+ : "%0" ((USItype) (u)), \
+ "rm" ((USItype) (v)))
+#define udiv_qrnnd(q, r, n1, n0, dv) \
+ __asm__ ("divl %4" \
+ : "=a" ((USItype) (q)), \
+ "=d" ((USItype) (r)) \
+ : "0" ((USItype) (n0)), \
+ "1" ((USItype) (n1)), \
+ "rm" ((USItype) (dv)))
+#define count_leading_zeros(count, x) \
+ do { \
+ USItype __cbtmp; \
+ __asm__ ("bsrl %1,%0" \
+ : "=r" (__cbtmp) : "rm" ((USItype) (x))); \
+ (count) = __cbtmp ^ 31; \
+ } while (0)
+#define count_trailing_zeros(count, x) \
+ __asm__ ("bsfl %1,%0" : "=r" (count) : "rm" ((USItype)(x)))
+#define UMUL_TIME 40
+#define UDIV_TIME 40
+#endif /* 80x86 */
+
+#if defined (__i960__) && W_TYPE_SIZE == 32
+#define umul_ppmm(w1, w0, u, v) \
+ ({union {UDItype __ll; \
+ struct {USItype __l, __h;} __i; \
+ } __xx; \
+ __asm__ ("emul %2,%1,%0" \
+ : "=d" (__xx.__ll) \
+ : "%dI" ((USItype) (u)), \
+ "dI" ((USItype) (v))); \
+ (w1) = __xx.__i.__h; (w0) = __xx.__i.__l;})
+#define __umulsidi3(u, v) \
+ ({UDItype __w; \
+ __asm__ ("emul %2,%1,%0" \
+ : "=d" (__w) \
+ : "%dI" ((USItype) (u)), \
+ "dI" ((USItype) (v))); \
+ __w; })
+#endif /* __i960__ */
+
+#if defined (__M32R__) && W_TYPE_SIZE == 32
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ /* The cmp clears the condition bit. */ \
+ __asm__ ("cmp %0,%0\n\taddx %%5,%1\n\taddx %%3,%0" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "%0" ((USItype) (ah)), \
+ "r" ((USItype) (bh)), \
+ "%1" ((USItype) (al)), \
+ "r" ((USItype) (bl)) \
+ : "cbit")
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ /* The cmp clears the condition bit. */ \
+ __asm__ ("cmp %0,%0\n\tsubx %5,%1\n\tsubx %3,%0" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "0" ((USItype) (ah)), \
+ "r" ((USItype) (bh)), \
+ "1" ((USItype) (al)), \
+ "r" ((USItype) (bl)) \
+ : "cbit")
+#endif /* __M32R__ */
+
+#if defined (__mc68000__) && W_TYPE_SIZE == 32
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ __asm__ ("add%.l %5,%1\n\taddx%.l %3,%0" \
+ : "=d" ((USItype) (sh)), \
+ "=&d" ((USItype) (sl)) \
+ : "%0" ((USItype) (ah)), \
+ "d" ((USItype) (bh)), \
+ "%1" ((USItype) (al)), \
+ "g" ((USItype) (bl)))
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ __asm__ ("sub%.l %5,%1\n\tsubx%.l %3,%0" \
+ : "=d" ((USItype) (sh)), \
+ "=&d" ((USItype) (sl)) \
+ : "0" ((USItype) (ah)), \
+ "d" ((USItype) (bh)), \
+ "1" ((USItype) (al)), \
+ "g" ((USItype) (bl)))
+
+/* The '020, '030, '040 and CPU32 have 32x32->64 and 64/32->32q-32r. */
+#if defined (__mc68020__) || defined(mc68020) \
+ || defined(__mc68030__) || defined(mc68030) \
+ || defined(__mc68040__) || defined(mc68040) \
+ || defined(__mcpu32__) || defined(mcpu32)
+#define umul_ppmm(w1, w0, u, v) \
+ __asm__ ("mulu%.l %3,%1:%0" \
+ : "=d" ((USItype) (w0)), \
+ "=d" ((USItype) (w1)) \
+ : "%0" ((USItype) (u)), \
+ "dmi" ((USItype) (v)))
+#define UMUL_TIME 45
+#define udiv_qrnnd(q, r, n1, n0, d) \
+ __asm__ ("divu%.l %4,%1:%0" \
+ : "=d" ((USItype) (q)), \
+ "=d" ((USItype) (r)) \
+ : "0" ((USItype) (n0)), \
+ "1" ((USItype) (n1)), \
+ "dmi" ((USItype) (d)))
+#define UDIV_TIME 90
+#define sdiv_qrnnd(q, r, n1, n0, d) \
+ __asm__ ("divs%.l %4,%1:%0" \
+ : "=d" ((USItype) (q)), \
+ "=d" ((USItype) (r)) \
+ : "0" ((USItype) (n0)), \
+ "1" ((USItype) (n1)), \
+ "dmi" ((USItype) (d)))
+
+#else /* not mc68020 */
+#if !defined(__mcf5200__)
+/* %/ inserts REGISTER_PREFIX, %# inserts IMMEDIATE_PREFIX. */
+#define umul_ppmm(xh, xl, a, b) \
+ __asm__ ("| Inlined umul_ppmm\n" \
+ " move%.l %2,%/d0\n" \
+ " move%.l %3,%/d1\n" \
+ " move%.l %/d0,%/d2\n" \
+ " swap %/d0\n" \
+ " move%.l %/d1,%/d3\n" \
+ " swap %/d1\n" \
+ " move%.w %/d2,%/d4\n" \
+ " mulu %/d3,%/d4\n" \
+ " mulu %/d1,%/d2\n" \
+ " mulu %/d0,%/d3\n" \
+ " mulu %/d0,%/d1\n" \
+ " move%.l %/d4,%/d0\n" \
+ " eor%.w %/d0,%/d0\n" \
+ " swap %/d0\n" \
+ " add%.l %/d0,%/d2\n" \
+ " add%.l %/d3,%/d2\n" \
+ " jcc 1f\n" \
+ " add%.l %#65536,%/d1\n" \
+ "1: swap %/d2\n" \
+ " moveq %#0,%/d0\n" \
+ " move%.w %/d2,%/d0\n" \
+ " move%.w %/d4,%/d2\n" \
+ " move%.l %/d2,%1\n" \
+ " add%.l %/d1,%/d0\n" \
+ " move%.l %/d0,%0" \
+ : "=g" ((USItype) (xh)), \
+ "=g" ((USItype) (xl)) \
+ : "g" ((USItype) (a)), \
+ "g" ((USItype) (b)) \
+ : "d0", "d1", "d2", "d3", "d4")
+#define UMUL_TIME 100
+#define UDIV_TIME 400
+#endif /* not mcf5200 */
+#endif /* not mc68020 */
+
+/* The '020, '030, '040 and '060 have bitfield insns. */
+#if defined (__mc68020__) || defined(mc68020) \
+ || defined(__mc68030__) || defined(mc68030) \
+ || defined(__mc68040__) || defined(mc68040) \
+ || defined(__mc68060__) || defined(mc68060)
+#define count_leading_zeros(count, x) \
+ __asm__ ("bfffo %1{%b2:%b2},%0" \
+ : "=d" ((USItype) (count)) \
+ : "od" ((USItype) (x)), "n" (0))
+#endif
+#endif /* mc68000 */
+
+#if defined (__m88000__) && W_TYPE_SIZE == 32
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ __asm__ ("addu.co %1,%r4,%r5\n\taddu.ci %0,%r2,%r3" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "%rJ" ((USItype) (ah)), \
+ "rJ" ((USItype) (bh)), \
+ "%rJ" ((USItype) (al)), \
+ "rJ" ((USItype) (bl)))
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ __asm__ ("subu.co %1,%r4,%r5\n\tsubu.ci %0,%r2,%r3" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "rJ" ((USItype) (ah)), \
+ "rJ" ((USItype) (bh)), \
+ "rJ" ((USItype) (al)), \
+ "rJ" ((USItype) (bl)))
+#define count_leading_zeros(count, x) \
+ do { \
+ USItype __cbtmp; \
+ __asm__ ("ff1 %0,%1" \
+ : "=r" (__cbtmp) \
+ : "r" ((USItype) (x))); \
+ (count) = __cbtmp ^ 31; \
+ } while (0)
+#define COUNT_LEADING_ZEROS_0 63 /* sic */
+#if defined (__mc88110__)
+#define umul_ppmm(wh, wl, u, v) \
+ do { \
+ union {UDItype __ll; \
+ struct {USItype __h, __l;} __i; \
+ } __xx; \
+ __asm__ ("mulu.d %0,%1,%2" \
+ : "=r" (__xx.__ll) \
+ : "r" ((USItype) (u)), \
+ "r" ((USItype) (v))); \
+ (wh) = __xx.__i.__h; \
+ (wl) = __xx.__i.__l; \
+ } while (0)
+#define udiv_qrnnd(q, r, n1, n0, d) \
+ ({union {UDItype __ll; \
+ struct {USItype __h, __l;} __i; \
+ } __xx; \
+ USItype __q; \
+ __xx.__i.__h = (n1); __xx.__i.__l = (n0); \
+ __asm__ ("divu.d %0,%1,%2" \
+ : "=r" (__q) \
+ : "r" (__xx.__ll), \
+ "r" ((USItype) (d))); \
+ (r) = (n0) - __q * (d); (q) = __q; })
+#define UMUL_TIME 5
+#define UDIV_TIME 25
+#else
+#define UMUL_TIME 17
+#define UDIV_TIME 150
+#endif /* __mc88110__ */
+#endif /* __m88000__ */
+
+#if defined (__mips__) && W_TYPE_SIZE == 32
+#define umul_ppmm(w1, w0, u, v) \
+ __asm__ ("multu %2,%3" \
+ : "=l" ((USItype) (w0)), \
+ "=h" ((USItype) (w1)) \
+ : "d" ((USItype) (u)), \
+ "d" ((USItype) (v)))
+#define UMUL_TIME 10
+#define UDIV_TIME 100
+#endif /* __mips__ */
+
+#if defined (__ns32000__) && W_TYPE_SIZE == 32
+#define umul_ppmm(w1, w0, u, v) \
+ ({union {UDItype __ll; \
+ struct {USItype __l, __h;} __i; \
+ } __xx; \
+ __asm__ ("meid %2,%0" \
+ : "=g" (__xx.__ll) \
+ : "%0" ((USItype) (u)), \
+ "g" ((USItype) (v))); \
+ (w1) = __xx.__i.__h; (w0) = __xx.__i.__l;})
+#define __umulsidi3(u, v) \
+ ({UDItype __w; \
+ __asm__ ("meid %2,%0" \
+ : "=g" (__w) \
+ : "%0" ((USItype) (u)), \
+ "g" ((USItype) (v))); \
+ __w; })
+#define udiv_qrnnd(q, r, n1, n0, d) \
+ ({union {UDItype __ll; \
+ struct {USItype __l, __h;} __i; \
+ } __xx; \
+ __xx.__i.__h = (n1); __xx.__i.__l = (n0); \
+ __asm__ ("deid %2,%0" \
+ : "=g" (__xx.__ll) \
+ : "0" (__xx.__ll), \
+ "g" ((USItype) (d))); \
+ (r) = __xx.__i.__l; (q) = __xx.__i.__h; })
+#define count_trailing_zeros(count,x) \
+ do { \
+ __asm__ ("ffsd %2,%0" \
+ : "=r" ((USItype) (count)) \
+ : "0" ((USItype) 0), \
+ "r" ((USItype) (x))); \
+ } while (0)
+#endif /* __ns32000__ */
+
+/* FIXME: We should test _IBMR2 here when we add assembly support for the
+ system vendor compilers.
+ FIXME: What's needed for gcc PowerPC VxWorks? __vxworks__ is not good
+ enough, since that hits ARM and m68k too. */
+#if (defined (_ARCH_PPC) /* AIX */ \
+ || defined (_ARCH_PWR) /* AIX */ \
+ || defined (_ARCH_COM) /* AIX */ \
+ || defined (__powerpc__) /* gcc */ \
+ || defined (__POWERPC__) /* BEOS */ \
+ || defined (__ppc__) /* Darwin */ \
+ || defined (PPC) /* GNU/Linux, SysV */ \
+ ) && W_TYPE_SIZE == 32
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ do { \
+ if (__builtin_constant_p (bh) && (bh) == 0) \
+ __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{aze|addze} %0,%2" \
+ : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\
+ else if (__builtin_constant_p (bh) && (bh) == ~(USItype) 0) \
+ __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{ame|addme} %0,%2" \
+ : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\
+ else \
+ __asm__ ("{a%I5|add%I5c} %1,%4,%5\n\t{ae|adde} %0,%2,%3" \
+ : "=r" (sh), "=&r" (sl) \
+ : "%r" (ah), "r" (bh), "%r" (al), "rI" (bl)); \
+ } while (0)
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ do { \
+ if (__builtin_constant_p (ah) && (ah) == 0) \
+ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfze|subfze} %0,%2" \
+ : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\
+ else if (__builtin_constant_p (ah) && (ah) == ~(USItype) 0) \
+ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfme|subfme} %0,%2" \
+ : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\
+ else if (__builtin_constant_p (bh) && (bh) == 0) \
+ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{ame|addme} %0,%2" \
+ : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\
+ else if (__builtin_constant_p (bh) && (bh) == ~(USItype) 0) \
+ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{aze|addze} %0,%2" \
+ : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\
+ else \
+ __asm__ ("{sf%I4|subf%I4c} %1,%5,%4\n\t{sfe|subfe} %0,%3,%2" \
+ : "=r" (sh), "=&r" (sl) \
+ : "r" (ah), "r" (bh), "rI" (al), "r" (bl)); \
+ } while (0)
+#define count_leading_zeros(count, x) \
+ __asm__ ("{cntlz|cntlzw} %0,%1" : "=r" (count) : "r" (x))
+#define COUNT_LEADING_ZEROS_0 32
+#if defined (_ARCH_PPC) || defined (__powerpc__) || defined (__POWERPC__) \
+ || defined (__ppc__) || defined (PPC) || defined (__vxworks__)
+#define umul_ppmm(ph, pl, m0, m1) \
+ do { \
+ USItype __m0 = (m0), __m1 = (m1); \
+ __asm__ ("mulhwu %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \
+ (pl) = __m0 * __m1; \
+ } while (0)
+#define UMUL_TIME 15
+#define smul_ppmm(ph, pl, m0, m1) \
+ do { \
+ SItype __m0 = (m0), __m1 = (m1); \
+ __asm__ ("mulhw %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \
+ (pl) = __m0 * __m1; \
+ } while (0)
+#define SMUL_TIME 14
+#define UDIV_TIME 120
+#elif defined (_ARCH_PWR)
+#define UMUL_TIME 8
+#define smul_ppmm(xh, xl, m0, m1) \
+ __asm__ ("mul %0,%2,%3" : "=r" (xh), "=q" (xl) : "r" (m0), "r" (m1))
+#define SMUL_TIME 4
+#define sdiv_qrnnd(q, r, nh, nl, d) \
+ __asm__ ("div %0,%2,%4" : "=r" (q), "=q" (r) : "r" (nh), "1" (nl), "r" (d))
+#define UDIV_TIME 100
+#endif
+#endif /* 32-bit POWER architecture variants. */
+
+/* We should test _IBMR2 here when we add assembly support for the system
+ vendor compilers. */
+#if (defined (_ARCH_PPC64) || defined (__powerpc64__)) && W_TYPE_SIZE == 64
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ do { \
+ if (__builtin_constant_p (bh) && (bh) == 0) \
+ __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{aze|addze} %0,%2" \
+ : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\
+ else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0) \
+ __asm__ ("{a%I4|add%I4c} %1,%3,%4\n\t{ame|addme} %0,%2" \
+ : "=r" (sh), "=&r" (sl) : "r" (ah), "%r" (al), "rI" (bl));\
+ else \
+ __asm__ ("{a%I5|add%I5c} %1,%4,%5\n\t{ae|adde} %0,%2,%3" \
+ : "=r" (sh), "=&r" (sl) \
+ : "%r" (ah), "r" (bh), "%r" (al), "rI" (bl)); \
+ } while (0)
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ do { \
+ if (__builtin_constant_p (ah) && (ah) == 0) \
+ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfze|subfze} %0,%2" \
+ : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\
+ else if (__builtin_constant_p (ah) && (ah) == ~(UDItype) 0) \
+ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{sfme|subfme} %0,%2" \
+ : "=r" (sh), "=&r" (sl) : "r" (bh), "rI" (al), "r" (bl));\
+ else if (__builtin_constant_p (bh) && (bh) == 0) \
+ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{ame|addme} %0,%2" \
+ : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\
+ else if (__builtin_constant_p (bh) && (bh) == ~(UDItype) 0) \
+ __asm__ ("{sf%I3|subf%I3c} %1,%4,%3\n\t{aze|addze} %0,%2" \
+ : "=r" (sh), "=&r" (sl) : "r" (ah), "rI" (al), "r" (bl));\
+ else \
+ __asm__ ("{sf%I4|subf%I4c} %1,%5,%4\n\t{sfe|subfe} %0,%3,%2" \
+ : "=r" (sh), "=&r" (sl) \
+ : "r" (ah), "r" (bh), "rI" (al), "r" (bl)); \
+ } while (0)
+#define count_leading_zeros(count, x) \
+ __asm__ ("cntlzd %0,%1" : "=r" (count) : "r" (x))
+#define COUNT_LEADING_ZEROS_0 64
+#define umul_ppmm(ph, pl, m0, m1) \
+ do { \
+ UDItype __m0 = (m0), __m1 = (m1); \
+ __asm__ ("mulhdu %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \
+ (pl) = __m0 * __m1; \
+ } while (0)
+#define UMUL_TIME 15
+#define smul_ppmm(ph, pl, m0, m1) \
+ do { \
+ DItype __m0 = (m0), __m1 = (m1); \
+ __asm__ ("mulhd %0,%1,%2" : "=r" (ph) : "%r" (m0), "r" (m1)); \
+ (pl) = __m0 * __m1; \
+ } while (0)
+#define SMUL_TIME 14 /* ??? */
+#define UDIV_TIME 120 /* ??? */
+#endif /* 64-bit PowerPC. */
+
+#if defined (__ibm032__) /* RT/ROMP */ && W_TYPE_SIZE == 32
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ __asm__ ("a %1,%5\n\tae %0,%3" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "%0" ((USItype) (ah)), \
+ "r" ((USItype) (bh)), \
+ "%1" ((USItype) (al)), \
+ "r" ((USItype) (bl)))
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ __asm__ ("s %1,%5\n\tse %0,%3" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "0" ((USItype) (ah)), \
+ "r" ((USItype) (bh)), \
+ "1" ((USItype) (al)), \
+ "r" ((USItype) (bl)))
+#define umul_ppmm(ph, pl, m0, m1) \
+ do { \
+ USItype __m0 = (m0), __m1 = (m1); \
+ __asm__ ( \
+ "s r2,r2\n" \
+" mts r10,%2\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" m r2,%3\n" \
+" cas %0,r2,r0\n" \
+" mfs r10,%1" \
+ : "=r" ((USItype) (ph)), \
+ "=r" ((USItype) (pl)) \
+ : "%r" (__m0), \
+ "r" (__m1) \
+ : "r2"); \
+ (ph) += ((((SItype) __m0 >> 31) & __m1) \
+ + (((SItype) __m1 >> 31) & __m0)); \
+ } while (0)
+#define UMUL_TIME 20
+#define UDIV_TIME 200
+#define count_leading_zeros(count, x) \
+ do { \
+ if ((x) >= 0x10000) \
+ __asm__ ("clz %0,%1" \
+ : "=r" ((USItype) (count)) \
+ : "r" ((USItype) (x) >> 16)); \
+ else \
+ { \
+ __asm__ ("clz %0,%1" \
+ : "=r" ((USItype) (count)) \
+ : "r" ((USItype) (x))); \
+ (count) += 16; \
+ } \
+ } while (0)
+#endif
+
+#if defined (__sh2__) && W_TYPE_SIZE == 32
+#define umul_ppmm(w1, w0, u, v) \
+ __asm__ ( \
+ "dmulu.l %2,%3\n\tsts macl,%1\n\tsts mach,%0" \
+ : "=r" ((USItype)(w1)), \
+ "=r" ((USItype)(w0)) \
+ : "r" ((USItype)(u)), \
+ "r" ((USItype)(v)) \
+ : "macl", "mach")
+#define UMUL_TIME 5
+#endif
+
+#if defined (__SH5__) && __SHMEDIA__ && W_TYPE_SIZE == 32
+#define __umulsidi3(u,v) ((UDItype)(USItype)u*(USItype)v)
+#define count_leading_zeros(count, x) \
+ do \
+ { \
+ UDItype x_ = (USItype)(x); \
+ SItype c_; \
+ \
+ __asm__ ("nsb %1, %0" : "=r" (c_) : "r" (x_)); \
+ (count) = c_ - 31; \
+ } \
+ while (0)
+#define COUNT_LEADING_ZEROS_0 32
+#endif
+
+#if defined (__sparc__) && !defined (__arch64__) && !defined (__sparcv9) \
+ && W_TYPE_SIZE == 32
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ __asm__ ("addcc %r4,%5,%1\n\taddx %r2,%3,%0" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "%rJ" ((USItype) (ah)), \
+ "rI" ((USItype) (bh)), \
+ "%rJ" ((USItype) (al)), \
+ "rI" ((USItype) (bl)) \
+ __CLOBBER_CC)
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ __asm__ ("subcc %r4,%5,%1\n\tsubx %r2,%3,%0" \
+ : "=r" ((USItype) (sh)), \
+ "=&r" ((USItype) (sl)) \
+ : "rJ" ((USItype) (ah)), \
+ "rI" ((USItype) (bh)), \
+ "rJ" ((USItype) (al)), \
+ "rI" ((USItype) (bl)) \
+ __CLOBBER_CC)
+#if defined (__sparc_v8__)
+#define umul_ppmm(w1, w0, u, v) \
+ __asm__ ("umul %2,%3,%1;rd %%y,%0" \
+ : "=r" ((USItype) (w1)), \
+ "=r" ((USItype) (w0)) \
+ : "r" ((USItype) (u)), \
+ "r" ((USItype) (v)))
+#define udiv_qrnnd(__q, __r, __n1, __n0, __d) \
+ __asm__ ("mov %2,%%y;nop;nop;nop;udiv %3,%4,%0;umul %0,%4,%1;sub %3,%1,%1"\
+ : "=&r" ((USItype) (__q)), \
+ "=&r" ((USItype) (__r)) \
+ : "r" ((USItype) (__n1)), \
+ "r" ((USItype) (__n0)), \
+ "r" ((USItype) (__d)))
+#else
+#if defined (__sparclite__)
+/* This has hardware multiply but not divide. It also has two additional
+ instructions scan (ffs from high bit) and divscc. */
+#define umul_ppmm(w1, w0, u, v) \
+ __asm__ ("umul %2,%3,%1;rd %%y,%0" \
+ : "=r" ((USItype) (w1)), \
+ "=r" ((USItype) (w0)) \
+ : "r" ((USItype) (u)), \
+ "r" ((USItype) (v)))
+#define udiv_qrnnd(q, r, n1, n0, d) \
+ __asm__ ("! Inlined udiv_qrnnd\n" \
+" wr %%g0,%2,%%y ! Not a delayed write for sparclite\n" \
+" tst %%g0\n" \
+" divscc %3,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%%g1\n" \
+" divscc %%g1,%4,%0\n" \
+" rd %%y,%1\n" \
+" bl,a 1f\n" \
+" add %1,%4,%1\n" \
+"1: ! End of inline udiv_qrnnd" \
+ : "=r" ((USItype) (q)), \
+ "=r" ((USItype) (r)) \
+ : "r" ((USItype) (n1)), \
+ "r" ((USItype) (n0)), \
+ "rI" ((USItype) (d)) \
+ : "g1" __AND_CLOBBER_CC)
+#define UDIV_TIME 37
+#define count_leading_zeros(count, x) \
+ do { \
+ __asm__ ("scan %1,1,%0" \
+ : "=r" ((USItype) (count)) \
+ : "r" ((USItype) (x))); \
+ } while (0)
+/* Early sparclites return 63 for an argument of 0, but they warn that future
+ implementations might change this. Therefore, leave COUNT_LEADING_ZEROS_0
+ undefined. */
+#else
+/* SPARC without integer multiplication and divide instructions.
+ (i.e. at least Sun4/20,40,60,65,75,110,260,280,330,360,380,470,490) */
+#define umul_ppmm(w1, w0, u, v) \
+ __asm__ ("! Inlined umul_ppmm\n" \
+" wr %%g0,%2,%%y ! SPARC has 0-3 delay insn after a wr\n"\
+" sra %3,31,%%o5 ! Don't move this insn\n" \
+" and %2,%%o5,%%o5 ! Don't move this insn\n" \
+" andcc %%g0,0,%%g1 ! Don't move this insn\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,%3,%%g1\n" \
+" mulscc %%g1,0,%%g1\n" \
+" add %%g1,%%o5,%0\n" \
+" rd %%y,%1" \
+ : "=r" ((USItype) (w1)), \
+ "=r" ((USItype) (w0)) \
+ : "%rI" ((USItype) (u)), \
+ "r" ((USItype) (v)) \
+ : "g1", "o5" __AND_CLOBBER_CC)
+#define UMUL_TIME 39 /* 39 instructions */
+/* It's quite necessary to add this much assembler for the sparc.
+ The default udiv_qrnnd (in C) is more than 10 times slower! */
+#define udiv_qrnnd(__q, __r, __n1, __n0, __d) \
+ __asm__ ("! Inlined udiv_qrnnd\n" \
+" mov 32,%%g1\n" \
+" subcc %1,%2,%%g0\n" \
+"1: bcs 5f\n" \
+" addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb\n" \
+" sub %1,%2,%1 ! this kills msb of n\n" \
+" addx %1,%1,%1 ! so this can't give carry\n" \
+" subcc %%g1,1,%%g1\n" \
+"2: bne 1b\n" \
+" subcc %1,%2,%%g0\n" \
+" bcs 3f\n" \
+" addxcc %0,%0,%0 ! shift n1n0 and a q-bit in lsb\n" \
+" b 3f\n" \
+" sub %1,%2,%1 ! this kills msb of n\n" \
+"4: sub %1,%2,%1\n" \
+"5: addxcc %1,%1,%1\n" \
+" bcc 2b\n" \
+" subcc %%g1,1,%%g1\n" \
+"! Got carry from n. Subtract next step to cancel this carry.\n" \
+" bne 4b\n" \
+" addcc %0,%0,%0 ! shift n1n0 and a 0-bit in lsb\n" \
+" sub %1,%2,%1\n" \
+"3: xnor %0,0,%0\n" \
+" ! End of inline udiv_qrnnd" \
+ : "=&r" ((USItype) (__q)), \
+ "=&r" ((USItype) (__r)) \
+ : "r" ((USItype) (__d)), \
+ "1" ((USItype) (__n1)), \
+ "0" ((USItype) (__n0)) : "g1" __AND_CLOBBER_CC)
+#define UDIV_TIME (3+7*32) /* 7 instructions/iteration. 32 iterations. */
+#endif /* __sparclite__ */
+#endif /* __sparc_v8__ */
+#endif /* sparc32 */
+
+#if ((defined (__sparc__) && defined (__arch64__)) || defined (__sparcv9)) \
+ && W_TYPE_SIZE == 64
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ __asm__ ("addcc %r4,%5,%1\n\t" \
+ "add %r2,%3,%0\n\t" \
+ "bcs,a,pn %%xcc, 1f\n\t" \
+ "add %0, 1, %0\n" \
+ "1:" \
+ : "=r" ((UDItype)(sh)), \
+ "=&r" ((UDItype)(sl)) \
+ : "%rJ" ((UDItype)(ah)), \
+ "rI" ((UDItype)(bh)), \
+ "%rJ" ((UDItype)(al)), \
+ "rI" ((UDItype)(bl)) \
+ __CLOBBER_CC)
+
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ __asm__ ("subcc %r4,%5,%1\n\t" \
+ "sub %r2,%3,%0\n\t" \
+ "bcs,a,pn %%xcc, 1f\n\t" \
+ "sub %0, 1, %0\n\t" \
+ "1:" \
+ : "=r" ((UDItype)(sh)), \
+ "=&r" ((UDItype)(sl)) \
+ : "rJ" ((UDItype)(ah)), \
+ "rI" ((UDItype)(bh)), \
+ "rJ" ((UDItype)(al)), \
+ "rI" ((UDItype)(bl)) \
+ __CLOBBER_CC)
+
+#define umul_ppmm(wh, wl, u, v) \
+ do { \
+ UDItype tmp1, tmp2, tmp3, tmp4; \
+ __asm__ __volatile__ ( \
+ "srl %7,0,%3\n\t" \
+ "mulx %3,%6,%1\n\t" \
+ "srlx %6,32,%2\n\t" \
+ "mulx %2,%3,%4\n\t" \
+ "sllx %4,32,%5\n\t" \
+ "srl %6,0,%3\n\t" \
+ "sub %1,%5,%5\n\t" \
+ "srlx %5,32,%5\n\t" \
+ "addcc %4,%5,%4\n\t" \
+ "srlx %7,32,%5\n\t" \
+ "mulx %3,%5,%3\n\t" \
+ "mulx %2,%5,%5\n\t" \
+ "sethi %%hi(0x80000000),%2\n\t" \
+ "addcc %4,%3,%4\n\t" \
+ "srlx %4,32,%4\n\t" \
+ "add %2,%2,%2\n\t" \
+ "movcc %%xcc,%%g0,%2\n\t" \
+ "addcc %5,%4,%5\n\t" \
+ "sllx %3,32,%3\n\t" \
+ "add %1,%3,%1\n\t" \
+ "add %5,%2,%0" \
+ : "=r" ((UDItype)(wh)), \
+ "=&r" ((UDItype)(wl)), \
+ "=&r" (tmp1), "=&r" (tmp2), "=&r" (tmp3), "=&r" (tmp4) \
+ : "r" ((UDItype)(u)), \
+ "r" ((UDItype)(v)) \
+ __CLOBBER_CC); \
+ } while (0)
+#define UMUL_TIME 96
+#define UDIV_TIME 230
+#endif /* sparc64 */
+
+#if defined (__vax__) && W_TYPE_SIZE == 32
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ __asm__ ("addl2 %5,%1\n\tadwc %3,%0" \
+ : "=g" ((USItype) (sh)), \
+ "=&g" ((USItype) (sl)) \
+ : "%0" ((USItype) (ah)), \
+ "g" ((USItype) (bh)), \
+ "%1" ((USItype) (al)), \
+ "g" ((USItype) (bl)))
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ __asm__ ("subl2 %5,%1\n\tsbwc %3,%0" \
+ : "=g" ((USItype) (sh)), \
+ "=&g" ((USItype) (sl)) \
+ : "0" ((USItype) (ah)), \
+ "g" ((USItype) (bh)), \
+ "1" ((USItype) (al)), \
+ "g" ((USItype) (bl)))
+#define umul_ppmm(xh, xl, m0, m1) \
+ do { \
+ union { \
+ UDItype __ll; \
+ struct {USItype __l, __h;} __i; \
+ } __xx; \
+ USItype __m0 = (m0), __m1 = (m1); \
+ __asm__ ("emul %1,%2,$0,%0" \
+ : "=r" (__xx.__ll) \
+ : "g" (__m0), \
+ "g" (__m1)); \
+ (xh) = __xx.__i.__h; \
+ (xl) = __xx.__i.__l; \
+ (xh) += ((((SItype) __m0 >> 31) & __m1) \
+ + (((SItype) __m1 >> 31) & __m0)); \
+ } while (0)
+#define sdiv_qrnnd(q, r, n1, n0, d) \
+ do { \
+ union {DItype __ll; \
+ struct {SItype __l, __h;} __i; \
+ } __xx; \
+ __xx.__i.__h = n1; __xx.__i.__l = n0; \
+ __asm__ ("ediv %3,%2,%0,%1" \
+ : "=g" (q), "=g" (r) \
+ : "g" (__xx.__ll), "g" (d)); \
+ } while (0)
+#endif /* __vax__ */
+
+#if defined (__z8000__) && W_TYPE_SIZE == 16
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ __asm__ ("add %H1,%H5\n\tadc %H0,%H3" \
+ : "=r" ((unsigned int)(sh)), \
+ "=&r" ((unsigned int)(sl)) \
+ : "%0" ((unsigned int)(ah)), \
+ "r" ((unsigned int)(bh)), \
+ "%1" ((unsigned int)(al)), \
+ "rQR" ((unsigned int)(bl)))
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ __asm__ ("sub %H1,%H5\n\tsbc %H0,%H3" \
+ : "=r" ((unsigned int)(sh)), \
+ "=&r" ((unsigned int)(sl)) \
+ : "0" ((unsigned int)(ah)), \
+ "r" ((unsigned int)(bh)), \
+ "1" ((unsigned int)(al)), \
+ "rQR" ((unsigned int)(bl)))
+#define umul_ppmm(xh, xl, m0, m1) \
+ do { \
+ union {long int __ll; \
+ struct {unsigned int __h, __l;} __i; \
+ } __xx; \
+ unsigned int __m0 = (m0), __m1 = (m1); \
+ __asm__ ("mult %S0,%H3" \
+ : "=r" (__xx.__i.__h), \
+ "=r" (__xx.__i.__l) \
+ : "%1" (__m0), \
+ "rQR" (__m1)); \
+ (xh) = __xx.__i.__h; (xl) = __xx.__i.__l; \
+ (xh) += ((((signed int) __m0 >> 15) & __m1) \
+ + (((signed int) __m1 >> 15) & __m0)); \
+ } while (0)
+#endif /* __z8000__ */
+
+#endif /* __GNUC__ */
+
+/* If this machine has no inline assembler, use C macros. */
+
+#if !defined (add_ssaaaa)
+#define add_ssaaaa(sh, sl, ah, al, bh, bl) \
+ do { \
+ UWtype __x; \
+ __x = (al) + (bl); \
+ (sh) = (ah) + (bh) + (__x < (al)); \
+ (sl) = __x; \
+ } while (0)
+#endif
+
+#if !defined (sub_ddmmss)
+#define sub_ddmmss(sh, sl, ah, al, bh, bl) \
+ do { \
+ UWtype __x; \
+ __x = (al) - (bl); \
+ (sh) = (ah) - (bh) - (__x > (al)); \
+ (sl) = __x; \
+ } while (0)
+#endif
+
+#if !defined (umul_ppmm)
+#define umul_ppmm(w1, w0, u, v) \
+ do { \
+ UWtype __x0, __x1, __x2, __x3; \
+ UHWtype __ul, __vl, __uh, __vh; \
+ \
+ __ul = __ll_lowpart (u); \
+ __uh = __ll_highpart (u); \
+ __vl = __ll_lowpart (v); \
+ __vh = __ll_highpart (v); \
+ \
+ __x0 = (UWtype) __ul * __vl; \
+ __x1 = (UWtype) __ul * __vh; \
+ __x2 = (UWtype) __uh * __vl; \
+ __x3 = (UWtype) __uh * __vh; \
+ \
+ __x1 += __ll_highpart (__x0);/* this can't give carry */ \
+ __x1 += __x2; /* but this indeed can */ \
+ if (__x1 < __x2) /* did we get it? */ \
+ __x3 += __ll_B; /* yes, add it in the proper pos. */ \
+ \
+ (w1) = __x3 + __ll_highpart (__x1); \
+ (w0) = __ll_lowpart (__x1) * __ll_B + __ll_lowpart (__x0); \
+ } while (0)
+#endif
+
+#if !defined (__umulsidi3)
+#define __umulsidi3(u, v) \
+ ({DWunion __w; \
+ umul_ppmm (__w.s.high, __w.s.low, u, v); \
+ __w.ll; })
+#endif
+
+/* Define this unconditionally, so it can be used for debugging. */
+#define __udiv_qrnnd_c(q, r, n1, n0, d) \
+ do { \
+ UWtype __d1, __d0, __q1, __q0; \
+ UWtype __r1, __r0, __m; \
+ __d1 = __ll_highpart (d); \
+ __d0 = __ll_lowpart (d); \
+ \
+ __r1 = (n1) % __d1; \
+ __q1 = (n1) / __d1; \
+ __m = (UWtype) __q1 * __d0; \
+ __r1 = __r1 * __ll_B | __ll_highpart (n0); \
+ if (__r1 < __m) \
+ { \
+ __q1--, __r1 += (d); \
+ if (__r1 >= (d)) /* i.e. we didn't get carry when adding to __r1 */\
+ if (__r1 < __m) \
+ __q1--, __r1 += (d); \
+ } \
+ __r1 -= __m; \
+ \
+ __r0 = __r1 % __d1; \
+ __q0 = __r1 / __d1; \
+ __m = (UWtype) __q0 * __d0; \
+ __r0 = __r0 * __ll_B | __ll_lowpart (n0); \
+ if (__r0 < __m) \
+ { \
+ __q0--, __r0 += (d); \
+ if (__r0 >= (d)) \
+ if (__r0 < __m) \
+ __q0--, __r0 += (d); \
+ } \
+ __r0 -= __m; \
+ \
+ (q) = (UWtype) __q1 * __ll_B | __q0; \
+ (r) = __r0; \
+ } while (0)
+
+/* If the processor has no udiv_qrnnd but sdiv_qrnnd, go through
+ __udiv_w_sdiv (defined in libgcc or elsewhere). */
+#if !defined (udiv_qrnnd) && defined (sdiv_qrnnd)
+#define udiv_qrnnd(q, r, nh, nl, d) \
+ do { \
+ USItype __r; \
+ (q) = __udiv_w_sdiv (&__r, nh, nl, d); \
+ (r) = __r; \
+ } while (0)
+#endif
+
+/* If udiv_qrnnd was not defined for this processor, use __udiv_qrnnd_c. */
+#if !defined (udiv_qrnnd)
+#define UDIV_NEEDS_NORMALIZATION 1
+#define udiv_qrnnd __udiv_qrnnd_c
+#endif
+
+#if !defined (count_leading_zeros)
+extern const UQItype __clz_tab[];
+#define count_leading_zeros(count, x) \
+ do { \
+ UWtype __xr = (x); \
+ UWtype __a; \
+ \
+ if (W_TYPE_SIZE <= 32) \
+ { \
+ __a = __xr < ((UWtype)1<<2*__BITS4) \
+ ? (__xr < ((UWtype)1<<__BITS4) ? 0 : __BITS4) \
+ : (__xr < ((UWtype)1<<3*__BITS4) ? 2*__BITS4 : 3*__BITS4); \
+ } \
+ else \
+ { \
+ for (__a = W_TYPE_SIZE - 8; __a > 0; __a -= 8) \
+ if (((__xr >> __a) & 0xff) != 0) \
+ break; \
+ } \
+ \
+ (count) = W_TYPE_SIZE - (__clz_tab[__xr >> __a] + __a); \
+ } while (0)
+#define COUNT_LEADING_ZEROS_0 W_TYPE_SIZE
+#endif
+
+#if !defined (count_trailing_zeros)
+/* Define count_trailing_zeros using count_leading_zeros. The latter might be
+ defined in asm, but if it is not, the C version above is good enough. */
+#define count_trailing_zeros(count, x) \
+ do { \
+ UWtype __ctz_x = (x); \
+ UWtype __ctz_c; \
+ count_leading_zeros (__ctz_c, __ctz_x & -__ctz_x); \
+ (count) = W_TYPE_SIZE - 1 - __ctz_c; \
+ } while (0)
+#endif
+
+#ifndef UDIV_NEEDS_NORMALIZATION
+#define UDIV_NEEDS_NORMALIZATION 0
+#endif
diff --git a/ubuntu/ndiswrapper/mkexport.sh b/ubuntu/ndiswrapper/mkexport.sh
new file mode 100644
index 00000000000..174f38dba79
--- /dev/null
+++ b/ubuntu/ndiswrapper/mkexport.sh
@@ -0,0 +1,42 @@
+#! /bin/sh
+
+# Generate exports symbol table from C files
+
+input="$1"
+output="$2"
+exports=$(basename "$output" .h)
+exec >"$output"
+
+echo "/* automatically generated from src */";
+
+sed -n -e '/^\(wstdcall\|wfastcall\|noregparm\|__attribute__\)/{
+:more
+N
+s/\([^{]\)$/\1/
+t more
+s/\n{$/;/
+p
+}' $input
+
+echo "#ifdef CONFIG_X86_64";
+
+sed -n \
+ -e 's/.*WIN_FUNC(\([^\,]\+\) *\, *\([0-9]\+\)).*/'\
+'WIN_FUNC_DECL(\1, \2)/p' \
+ -e 's/.*WIN_FUNC_PTR(\([^\,]\+\) *\, *\([0-9]\+\)).*/'\
+'WIN_FUNC_DECL(\1, \2)/p' $input | sort -u
+
+echo "#endif"
+echo "extern struct wrap_export $exports[];"
+echo "struct wrap_export $exports[] = {"
+
+sed -n \
+ -e 's/.*WIN_FUNC(_win_\([^\,]\+\) *\, *\([0-9]\+\)).*/'\
+' WIN_WIN_SYMBOL(\1, \2),/p' \
+ -e 's/.*WIN_FUNC(\([^\,]\+\) *\, *\([0-9]\+\)).*/'\
+' WIN_SYMBOL(\1, \2),/p' \
+ -e 's/.*WIN_SYMBOL_MAP(\("[^"]\+"\)[ ,\n]\+\([^)]\+\)).*/'\
+' {\1, (generic_func)\2},/p' $input | sort -u
+
+echo " {NULL, NULL}"
+echo "};"
diff --git a/ubuntu/ndiswrapper/mkstubs.sh b/ubuntu/ndiswrapper/mkstubs.sh
new file mode 100644
index 00000000000..7aab344ace1
--- /dev/null
+++ b/ubuntu/ndiswrapper/mkstubs.sh
@@ -0,0 +1,12 @@
+#! /bin/sh
+
+for file in "$@"; do
+ echo
+ echo "# automatically generated from $file"
+ sed -n \
+ -e 's/.*WIN_FUNC(\([^\,]\+\) *\, *\([0-9]\+\)).*/\
+ win2lin(\1, \2)/p' \
+ -e 's/.*WIN_FUNC_PTR(\([^\,]\+\) *\, *\([0-9]\+\)).*/\
+ win2lin(\1, \2)/p' \
+ $file | sed -e 's/[ \t ]\+//' | sort -u; \
+done
diff --git a/ubuntu/ndiswrapper/ndis.c b/ubuntu/ndiswrapper/ndis.c
new file mode 100644
index 00000000000..d2174b48a73
--- /dev/null
+++ b/ubuntu/ndiswrapper/ndis.c
@@ -0,0 +1,2974 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "ndis.h"
+#include "iw_ndis.h"
+#include "wrapndis.h"
+#include "pnp.h"
+#include "loader.h"
+#include <linux/kernel_stat.h>
+#include <asm/dma.h>
+#include "ndis_exports.h"
+
+#define MAX_ALLOCATED_NDIS_PACKETS TX_RING_SIZE
+#define MAX_ALLOCATED_NDIS_BUFFERS TX_RING_SIZE
+
+static void ndis_worker(worker_param_t dummy);
+static work_struct_t ndis_work;
+static struct nt_list ndis_work_list;
+static spinlock_t ndis_work_list_lock;
+
+workqueue_struct_t *ndis_wq;
+static struct nt_thread *ndis_worker_thread;
+
+static void *ndis_get_routine_address(char *name);
+
+wstdcall void WIN_FUNC(NdisInitializeWrapper,4)
+ (void **driver_handle, struct driver_object *driver,
+ struct unicode_string *reg_path, void *unused)
+{
+ ENTER1("handle: %p, driver: %p", driver_handle, driver);
+ *driver_handle = driver;
+ EXIT1(return);
+}
+
+wstdcall void WIN_FUNC(NdisTerminateWrapper,2)
+ (struct device_object *dev_obj, void *system_specific)
+{
+ EXIT1(return);
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisMRegisterMiniport,3)
+ (struct driver_object *drv_obj, struct miniport *mp, UINT length)
+{
+ int min_length;
+ struct wrap_driver *wrap_driver;
+ struct ndis_driver *ndis_driver;
+
+ min_length = ((char *)&mp->co_create_vc) - ((char *)mp);
+
+ ENTER1("%p %p %d", drv_obj, mp, length);
+
+ if (mp->major_version < 4) {
+ ERROR("Driver is using ndis version %d which is too old.",
+ mp->major_version);
+ EXIT1(return NDIS_STATUS_BAD_VERSION);
+ }
+
+ if (length < min_length) {
+ ERROR("Characteristics length %d is too small", length);
+ EXIT1(return NDIS_STATUS_BAD_CHARACTERISTICS);
+ }
+
+ TRACE1("%d.%d, %d, %u", mp->major_version, mp->minor_version, length,
+ (u32)sizeof(struct miniport));
+ wrap_driver = IoGetDriverObjectExtension(drv_obj,
+ (void *)WRAP_DRIVER_CLIENT_ID);
+ if (!wrap_driver) {
+ ERROR("couldn't get wrap_driver");
+ EXIT1(return NDIS_STATUS_RESOURCES);
+ }
+ if (IoAllocateDriverObjectExtension(
+ drv_obj, (void *)NDIS_DRIVER_CLIENT_ID,
+ sizeof(*ndis_driver), (void **)&ndis_driver) !=
+ STATUS_SUCCESS)
+ EXIT1(return NDIS_STATUS_RESOURCES);
+ wrap_driver->ndis_driver = ndis_driver;
+ TRACE1("driver: %p", ndis_driver);
+ memcpy(&ndis_driver->mp, mp, min_t(int, sizeof(*mp), length));
+
+ DBG_BLOCK(2) {
+ int i;
+ void **func;
+ char *mp_funcs[] = {
+ "queryinfo", "reconfig", "reset", "send", "setinfo",
+ "tx_data", "return_packet", "send_packets",
+ "alloc_complete", "co_create_vc", "co_delete_vc",
+ "co_activate_vc", "co_deactivate_vc",
+ "co_send_packets", "co_request", "cancel_send_packets",
+ "pnp_event_notify", "shutdown",
+ };
+ func = (void **)&ndis_driver->mp.queryinfo;
+ for (i = 0; i < (sizeof(mp_funcs) / sizeof(mp_funcs[0])); i++)
+ TRACE2("function '%s' is at %p", mp_funcs[i], func[i]);
+ }
+ EXIT1(return NDIS_STATUS_SUCCESS);
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisMRegisterDevice,6)
+ (struct driver_object *drv_obj, struct unicode_string *dev_name,
+ struct unicode_string *link, void **funcs,
+ struct device_object **dev_obj, void **dev_obj_handle)
+{
+ NTSTATUS status;
+ struct device_object *tmp;
+ int i;
+
+ ENTER1("%p, %p, %p", drv_obj, dev_name, link);
+ status = IoCreateDevice(drv_obj, 0, dev_name, FILE_DEVICE_NETWORK, 0,
+ FALSE, &tmp);
+
+ if (status != STATUS_SUCCESS)
+ EXIT1(return NDIS_STATUS_RESOURCES);
+ if (link)
+ status = IoCreateSymbolicLink(link, dev_name);
+ if (status != STATUS_SUCCESS) {
+ IoDeleteDevice(tmp);
+ EXIT1(return NDIS_STATUS_RESOURCES);
+ }
+
+ *dev_obj = tmp;
+ *dev_obj_handle = *dev_obj;
+ for (i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++)
+ if (funcs[i] && i != IRP_MJ_PNP && i != IRP_MJ_POWER) {
+ drv_obj->major_func[i] = funcs[i];
+ TRACE1("mj_fn for 0x%x is at %p", i, funcs[i]);
+ }
+ EXIT1(return NDIS_STATUS_SUCCESS);
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisMDeregisterDevice,1)
+ (struct device_object *dev_obj)
+{
+ ENTER2("%p", dev_obj);
+ IoDeleteDevice(dev_obj);
+ return NDIS_STATUS_SUCCESS;
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisAllocateMemoryWithTag,3)
+ (void **dest, UINT length, ULONG tag)
+{
+ void *addr;
+
+ assert_irql(_irql_ <= DISPATCH_LEVEL);
+ addr = ExAllocatePoolWithTag(NonPagedPool, length, tag);
+ TRACE4("%p", addr);
+ if (addr) {
+ *dest = addr;
+ EXIT4(return NDIS_STATUS_SUCCESS);
+ } else
+ EXIT4(return NDIS_STATUS_FAILURE);
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisAllocateMemory,4)
+ (void **dest, UINT length, UINT flags, NDIS_PHY_ADDRESS highest_address)
+{
+ return NdisAllocateMemoryWithTag(dest, length, 0);
+}
+
+/* length_tag is either length or tag, depending on if
+ * NdisAllocateMemory or NdisAllocateMemoryTag is used to allocate
+ * memory */
+wstdcall void WIN_FUNC(NdisFreeMemory,3)
+ (void *addr, UINT length_tag, UINT flags)
+{
+ TRACE4("%p", addr);
+ ExFreePool(addr);
+}
+
+noregparm void WIN_FUNC(NdisWriteErrorLogEntry,12)
+ (struct driver_object *drv_obj, ULONG error, ULONG count, ...)
+{
+ va_list args;
+ int i;
+ ULONG code;
+
+ va_start(args, count);
+ ERROR("log: %08X, count: %d, return_address: %p",
+ error, count, __builtin_return_address(0));
+ for (i = 0; i < count; i++) {
+ code = va_arg(args, ULONG);
+ ERROR("code: 0x%x", code);
+ }
+ va_end(args);
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisOpenConfiguration,3)
+ (NDIS_STATUS *status, struct ndis_mp_block **conf_handle,
+ struct ndis_mp_block *handle)
+{
+ ENTER2("%p", conf_handle);
+ *conf_handle = handle;
+ *status = NDIS_STATUS_SUCCESS;
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisOpenProtocolConfiguration,3)
+ (NDIS_STATUS *status, void **confhandle,
+ struct unicode_string *section)
+{
+ ENTER2("%p", confhandle);
+ *status = NDIS_STATUS_SUCCESS;
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisOpenConfigurationKeyByName,4)
+ (NDIS_STATUS *status, void *handle,
+ struct unicode_string *key, void **subkeyhandle)
+{
+ struct ansi_string ansi;
+ ENTER2("");
+ if (RtlUnicodeStringToAnsiString(&ansi, key, TRUE) == STATUS_SUCCESS) {
+ TRACE2("%s", ansi.buf);
+ RtlFreeAnsiString(&ansi);
+ }
+ *subkeyhandle = handle;
+ *status = NDIS_STATUS_SUCCESS;
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisOpenConfigurationKeyByIndex,5)
+ (NDIS_STATUS *status, void *handle, ULONG index,
+ struct unicode_string *key, void **subkeyhandle)
+{
+ ENTER2("%u", index);
+// *subkeyhandle = handle;
+ *status = NDIS_STATUS_FAILURE;
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisCloseConfiguration,1)
+ (void *handle)
+{
+ /* instead of freeing all configuration parameters as we are
+ * supposed to do here, we free them when the device is
+ * removed */
+ ENTER2("%p", handle);
+ return;
+}
+
+wstdcall void WIN_FUNC(NdisOpenFile,5)
+ (NDIS_STATUS *status, struct wrap_bin_file **file,
+ UINT *filelength, struct unicode_string *filename,
+ NDIS_PHY_ADDRESS highest_address)
+{
+ struct ansi_string ansi;
+ struct wrap_bin_file *bin_file;
+
+ ENTER2("%p, %d, %llx, %p", status, *filelength, highest_address, *file);
+ if (RtlUnicodeStringToAnsiString(&ansi, filename, TRUE) !=
+ STATUS_SUCCESS) {
+ *status = NDIS_STATUS_RESOURCES;
+ EXIT2(return);
+ }
+ TRACE2("%s", ansi.buf);
+ bin_file = get_bin_file(ansi.buf);
+ if (bin_file) {
+ *file = bin_file;
+ *filelength = bin_file->size;
+ *status = NDIS_STATUS_SUCCESS;
+ } else
+ *status = NDIS_STATUS_FILE_NOT_FOUND;
+
+ RtlFreeAnsiString(&ansi);
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisMapFile,3)
+ (NDIS_STATUS *status, void **mappedbuffer, struct wrap_bin_file *file)
+{
+ ENTER2("%p", file);
+
+ if (!file) {
+ *status = NDIS_STATUS_ALREADY_MAPPED;
+ EXIT2(return);
+ }
+
+ *status = NDIS_STATUS_SUCCESS;
+ *mappedbuffer = file->data;
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisUnmapFile,1)
+ (struct wrap_bin_file *file)
+{
+ ENTER2("%p", file);
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisCloseFile,1)
+ (struct wrap_bin_file *file)
+{
+ ENTER2("%p", file);
+ free_bin_file(file);
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisGetSystemUpTime,1)
+ (ULONG *ms)
+{
+ *ms = 1000 * jiffies / HZ;
+ EXIT5(return);
+}
+
+wstdcall ULONG WIN_FUNC(NDIS_BUFFER_TO_SPAN_PAGES,1)
+ (ndis_buffer *buffer)
+{
+ ULONG n, length;
+
+ if (buffer == NULL)
+ EXIT2(return 0);
+ if (MmGetMdlByteCount(buffer) == 0)
+ EXIT2(return 1);
+
+ length = MmGetMdlByteCount(buffer);
+ n = SPAN_PAGES(MmGetMdlVirtualAddress(buffer), length);
+ TRACE4("%p, %p, %d, %d", buffer->startva, buffer->mappedsystemva,
+ length, n);
+ EXIT3(return n);
+}
+
+wstdcall void WIN_FUNC(NdisGetBufferPhysicalArraySize,2)
+ (ndis_buffer *buffer, UINT *arraysize)
+{
+ ENTER3("%p", buffer);
+ *arraysize = NDIS_BUFFER_TO_SPAN_PAGES(buffer);
+ EXIT3(return);
+}
+
+static struct ndis_configuration_parameter *
+ndis_encode_setting(struct wrap_device_setting *setting,
+ enum ndis_parameter_type type)
+{
+ struct ansi_string ansi;
+ struct ndis_configuration_parameter *param;
+
+ param = setting->encoded;
+ if (param) {
+ if (param->type == type)
+ EXIT2(return param);
+ if (param->type == NdisParameterString)
+ RtlFreeUnicodeString(&param->data.string);
+ setting->encoded = NULL;
+ } else
+ param = ExAllocatePoolWithTag(NonPagedPool, sizeof(*param), 0);
+ if (!param) {
+ ERROR("couldn't allocate memory");
+ return NULL;
+ }
+ switch(type) {
+ case NdisParameterInteger:
+ param->data.integer = simple_strtol(setting->value, NULL, 0);
+ TRACE2("0x%x", (ULONG)param->data.integer);
+ break;
+ case NdisParameterHexInteger:
+ param->data.integer = simple_strtol(setting->value, NULL, 16);
+ TRACE2("0x%x", (ULONG)param->data.integer);
+ break;
+ case NdisParameterString:
+ RtlInitAnsiString(&ansi, setting->value);
+ TRACE2("'%s'", ansi.buf);
+ if (RtlAnsiStringToUnicodeString(&param->data.string,
+ &ansi, TRUE)) {
+ ExFreePool(param);
+ EXIT2(return NULL);
+ }
+ break;
+ case NdisParameterBinary:
+ param->data.integer = simple_strtol(setting->value, NULL, 2);
+ TRACE2("0x%x", (ULONG)param->data.integer);
+ break;
+ default:
+ ERROR("unknown type: %d", type);
+ ExFreePool(param);
+ return NULL;
+ }
+ param->type = type;
+ setting->encoded = param;
+ EXIT2(return param);
+}
+
+static int ndis_decode_setting(struct wrap_device_setting *setting,
+ struct ndis_configuration_parameter *param)
+{
+ struct ansi_string ansi;
+ struct ndis_configuration_parameter *prev;
+
+ ENTER2("%p, %p", setting, param);
+ prev = setting->encoded;
+ if (prev && prev->type == NdisParameterString) {
+ RtlFreeUnicodeString(&prev->data.string);
+ setting->encoded = NULL;
+ }
+ switch(param->type) {
+ case NdisParameterInteger:
+ snprintf(setting->value, sizeof(u32), "%u",
+ param->data.integer);
+ setting->value[sizeof(ULONG)] = 0;
+ break;
+ case NdisParameterHexInteger:
+ snprintf(setting->value, sizeof(u32), "%x",
+ param->data.integer);
+ setting->value[sizeof(ULONG)] = 0;
+ break;
+ case NdisParameterString:
+ ansi.buf = setting->value;
+ ansi.max_length = MAX_SETTING_VALUE_LEN;
+ if ((RtlUnicodeStringToAnsiString(&ansi, &param->data.string,
+ FALSE) != STATUS_SUCCESS)
+ || ansi.length >= MAX_SETTING_VALUE_LEN) {
+ EXIT1(return -1);
+ }
+ if (ansi.length == ansi.max_length)
+ ansi.length--;
+ setting->value[ansi.length] = 0;
+ break;
+ case NdisParameterBinary:
+ snprintf(setting->value, sizeof(u32), "%u",
+ param->data.integer);
+ setting->value[sizeof(ULONG)] = 0;
+ break;
+ default:
+ TRACE2("unknown setting type: %d", param->type);
+ return -1;
+ }
+ TRACE2("setting changed %s='%s', %d", setting->name, setting->value,
+ ansi.length);
+ return 0;
+}
+
+static int read_setting(struct nt_list *setting_list, char *keyname, int length,
+ struct ndis_configuration_parameter **param,
+ enum ndis_parameter_type type)
+{
+ struct wrap_device_setting *setting;
+ if (down_interruptible(&loader_mutex))
+ WARNING("couldn't obtain loader_mutex");
+ nt_list_for_each_entry(setting, setting_list, list) {
+ if (strnicmp(keyname, setting->name, length) == 0) {
+ TRACE2("setting %s='%s'", keyname, setting->value);
+ up(&loader_mutex);
+ *param = ndis_encode_setting(setting, type);
+ if (*param)
+ EXIT2(return 0);
+ else
+ EXIT2(return -1);
+ }
+ }
+ up(&loader_mutex);
+ EXIT2(return -1);
+}
+
+wstdcall void WIN_FUNC(NdisReadConfiguration,5)
+ (NDIS_STATUS *status, struct ndis_configuration_parameter **param,
+ struct ndis_mp_block *nmb, struct unicode_string *key,
+ enum ndis_parameter_type type)
+{
+ struct ansi_string ansi;
+ int ret;
+
+ ENTER2("nmb: %p", nmb);
+ ret = RtlUnicodeStringToAnsiString(&ansi, key, TRUE);
+ if (ret != STATUS_SUCCESS || ansi.buf == NULL) {
+ *param = NULL;
+ *status = NDIS_STATUS_FAILURE;
+ RtlFreeAnsiString(&ansi);
+ EXIT2(return);
+ }
+ TRACE2("%d, %s", type, ansi.buf);
+
+ if (read_setting(&nmb->wnd->wd->settings, ansi.buf,
+ ansi.length, param, type) == 0 ||
+ read_setting(&nmb->wnd->wd->driver->settings, ansi.buf,
+ ansi.length, param, type) == 0)
+ *status = NDIS_STATUS_SUCCESS;
+ else {
+ TRACE2("setting %s not found (type:%d)", ansi.buf, type);
+ *status = NDIS_STATUS_FAILURE;
+ }
+ RtlFreeAnsiString(&ansi);
+ EXIT2(return);
+
+}
+
+wstdcall void WIN_FUNC(NdisWriteConfiguration,4)
+ (NDIS_STATUS *status, struct ndis_mp_block *nmb,
+ struct unicode_string *key, struct ndis_configuration_parameter *param)
+{
+ struct ansi_string ansi;
+ char *keyname;
+ struct wrap_device_setting *setting;
+
+ ENTER2("nmb: %p", nmb);
+ if (RtlUnicodeStringToAnsiString(&ansi, key, TRUE)) {
+ *status = NDIS_STATUS_FAILURE;
+ EXIT2(return);
+ }
+ keyname = ansi.buf;
+ TRACE2("%s", keyname);
+
+ if (down_interruptible(&loader_mutex))
+ WARNING("couldn't obtain loader_mutex");
+ nt_list_for_each_entry(setting, &nmb->wnd->wd->settings, list) {
+ if (strnicmp(keyname, setting->name, ansi.length) == 0) {
+ up(&loader_mutex);
+ if (ndis_decode_setting(setting, param))
+ *status = NDIS_STATUS_FAILURE;
+ else
+ *status = NDIS_STATUS_SUCCESS;
+ RtlFreeAnsiString(&ansi);
+ EXIT2(return);
+ }
+ }
+ up(&loader_mutex);
+ setting = kzalloc(sizeof(*setting), GFP_KERNEL);
+ if (setting) {
+ if (ansi.length == ansi.max_length)
+ ansi.length--;
+ memcpy(setting->name, keyname, ansi.length);
+ setting->name[ansi.length] = 0;
+ if (ndis_decode_setting(setting, param))
+ *status = NDIS_STATUS_FAILURE;
+ else {
+ *status = NDIS_STATUS_SUCCESS;
+ if (down_interruptible(&loader_mutex))
+ WARNING("couldn't obtain loader_mutex");
+ InsertTailList(&nmb->wnd->wd->settings, &setting->list);
+ up(&loader_mutex);
+ }
+ } else
+ *status = NDIS_STATUS_RESOURCES;
+
+ RtlFreeAnsiString(&ansi);
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisReadNetworkAddress,4)
+ (NDIS_STATUS *status, void **addr, UINT *len,
+ struct ndis_mp_block *nmb)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ struct ndis_configuration_parameter *param;
+ struct unicode_string key;
+ struct ansi_string ansi;
+ typeof(wnd->mac) mac;
+ int i, ret;
+
+ ENTER2("%p", nmb);
+ RtlInitAnsiString(&ansi, "NetworkAddress");
+ *status = NDIS_STATUS_FAILURE;
+ if (RtlAnsiStringToUnicodeString(&key, &ansi, TRUE) != STATUS_SUCCESS)
+ EXIT1(return);
+
+ NdisReadConfiguration(&ret, &param, nmb, &key, NdisParameterString);
+ RtlFreeUnicodeString(&key);
+ if (ret != NDIS_STATUS_SUCCESS)
+ EXIT1(return);
+ ret = RtlUnicodeStringToAnsiString(&ansi, &param->data.string, TRUE);
+ if (ret != STATUS_SUCCESS)
+ EXIT1(return);
+
+ i = 0;
+ if (ansi.length >= 2 * sizeof(mac)) {
+ for (i = 0; i < sizeof(mac); i++) {
+ char c[3];
+ int x;
+ c[0] = ansi.buf[i*2];
+ c[1] = ansi.buf[i*2+1];
+ c[2] = 0;
+ ret = sscanf(c, "%x", &x);
+ if (ret != 1)
+ break;
+ mac[i] = x;
+ }
+ }
+ TRACE2("%s, %d, " MACSTR, ansi.buf, i, MAC2STR(mac));
+ RtlFreeAnsiString(&ansi);
+ if (i == sizeof(mac)) {
+ memcpy(wnd->mac, mac, sizeof(wnd->mac));
+ *len = sizeof(mac);
+ *addr = wnd->mac;
+ *status = NDIS_STATUS_SUCCESS;
+ }
+ EXIT1(return);
+}
+
+wstdcall void WIN_FUNC(NdisInitializeString,2)
+ (struct unicode_string *dest, UCHAR *src)
+{
+ struct ansi_string ansi;
+
+ ENTER2("");
+ if (src == NULL) {
+ dest->length = dest->max_length = 0;
+ dest->buf = NULL;
+ } else {
+ RtlInitAnsiString(&ansi, src);
+ /* the string is freed with NdisFreeMemory */
+ RtlAnsiStringToUnicodeString(dest, &ansi, TRUE);
+ }
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisInitAnsiString,2)
+ (struct ansi_string *dst, CHAR *src)
+{
+ RtlInitAnsiString(dst, src);
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisInitUnicodeString,2)
+ (struct unicode_string *dest, const wchar_t *src)
+{
+ RtlInitUnicodeString(dest, src);
+ return;
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisAnsiStringToUnicodeString,2)
+ (struct unicode_string *dst, struct ansi_string *src)
+{
+ ENTER2("");
+ if (dst == NULL || src == NULL)
+ EXIT2(return NDIS_STATUS_FAILURE);
+ if (RtlAnsiStringToUnicodeString(dst, src, FALSE) == STATUS_SUCCESS)
+ return NDIS_STATUS_SUCCESS;
+ else
+ return NDIS_STATUS_FAILURE;
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisUnicodeStringToAnsiString,2)
+ (struct ansi_string *dst, struct unicode_string *src)
+{
+ ENTER2("");
+ if (dst == NULL || src == NULL)
+ EXIT2(return NDIS_STATUS_FAILURE);
+ if (RtlUnicodeStringToAnsiString(dst, src, FALSE) == STATUS_SUCCESS)
+ return NDIS_STATUS_SUCCESS;
+ else
+ return NDIS_STATUS_FAILURE;
+}
+
+wstdcall NTSTATUS WIN_FUNC(NdisUpcaseUnicodeString,2)
+ (struct unicode_string *dst, struct unicode_string *src)
+{
+ EXIT2(return RtlUpcaseUnicodeString(dst, src, FALSE));
+}
+
+wstdcall void WIN_FUNC(NdisMSetAttributesEx,5)
+ (struct ndis_mp_block *nmb, void *mp_ctx,
+ UINT hangcheck_interval, UINT attributes, ULONG adaptertype)
+{
+ struct ndis_device *wnd;
+
+ ENTER1("%p, %p, %d, %08x, %d", nmb, mp_ctx, hangcheck_interval,
+ attributes, adaptertype);
+ wnd = nmb->wnd;
+ nmb->mp_ctx = mp_ctx;
+ wnd->attributes = attributes;
+
+ if ((attributes & NDIS_ATTRIBUTE_BUS_MASTER) &&
+ wrap_is_pci_bus(wnd->wd->dev_bus))
+ pci_set_master(wnd->wd->pci.pdev);
+
+ if (hangcheck_interval > 0)
+ wnd->hangcheck_interval = 2 * hangcheck_interval * HZ;
+ else
+ wnd->hangcheck_interval = 2 * HZ;
+
+ EXIT1(return);
+}
+
+wstdcall ULONG WIN_FUNC(NdisReadPciSlotInformation,5)
+ (struct ndis_mp_block *nmb, ULONG slot,
+ ULONG offset, char *buf, ULONG len)
+{
+ struct wrap_device *wd = nmb->wnd->wd;
+ ULONG i;
+ for (i = 0; i < len; i++)
+ if (pci_read_config_byte(wd->pci.pdev, offset + i, &buf[i]) !=
+ PCIBIOS_SUCCESSFUL)
+ break;
+ DBG_BLOCK(2) {
+ if (i != len)
+ WARNING("%u, %u", i, len);
+ }
+ return i;
+}
+
+wstdcall ULONG WIN_FUNC(NdisImmediateReadPciSlotInformation,5)
+ (struct ndis_mp_block *nmb, ULONG slot,
+ ULONG offset, char *buf, ULONG len)
+{
+ return NdisReadPciSlotInformation(nmb, slot, offset, buf, len);
+}
+
+wstdcall ULONG WIN_FUNC(NdisWritePciSlotInformation,5)
+ (struct ndis_mp_block *nmb, ULONG slot,
+ ULONG offset, char *buf, ULONG len)
+{
+ struct wrap_device *wd = nmb->wnd->wd;
+ ULONG i;
+ for (i = 0; i < len; i++)
+ if (pci_write_config_byte(wd->pci.pdev, offset + i, buf[i]) !=
+ PCIBIOS_SUCCESSFUL)
+ break;
+ DBG_BLOCK(2) {
+ if (i != len)
+ WARNING("%u, %u", i, len);
+ }
+ return i;
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisMRegisterIoPortRange,4)
+ (void **virt, struct ndis_mp_block *nmb, UINT start, UINT len)
+{
+ ENTER3("%08x %08x", start, len);
+ *virt = (void *)(ULONG_PTR)start;
+ return NDIS_STATUS_SUCCESS;
+}
+
+wstdcall void WIN_FUNC(NdisMDeregisterIoPortRange,4)
+ (struct ndis_mp_block *nmb, UINT start, UINT len, void* virt)
+{
+ ENTER1("%08x %08x", start, len);
+}
+
+wstdcall void WIN_FUNC(NdisReadPortUchar,3)
+ (struct ndis_mp_block *nmb, ULONG port, char *data)
+{
+ *data = inb(port);
+}
+
+wstdcall void WIN_FUNC(NdisImmediateReadPortUchar,3)
+ (struct ndis_mp_block *nmb, ULONG port, char *data)
+{
+ *data = inb(port);
+}
+
+wstdcall void WIN_FUNC(NdisWritePortUchar,3)
+ (struct ndis_mp_block *nmb, ULONG port, char data)
+{
+ outb(data, port);
+}
+
+wstdcall void WIN_FUNC(NdisImmediateWritePortUchar,3)
+ (struct ndis_mp_block *nmb, ULONG port, char data)
+{
+ outb(data, port);
+}
+
+wstdcall void WIN_FUNC(NdisMQueryAdapterResources,4)
+ (NDIS_STATUS *status, struct ndis_mp_block *nmb,
+ NDIS_RESOURCE_LIST *resource_list, UINT *size)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ NDIS_RESOURCE_LIST *list;
+ UINT resource_length;
+
+ list = &wnd->wd->resource_list->list->partial_resource_list;
+ resource_length = sizeof(struct cm_partial_resource_list) +
+ sizeof(struct cm_partial_resource_descriptor) *
+ (list->count - 1);
+ TRACE2("%p, %p,%d (%d), %p %d %d", wnd, resource_list, *size,
+ resource_length, &list->partial_descriptors[list->count-1],
+ list->partial_descriptors[list->count-1].u.interrupt.level,
+ list->partial_descriptors[list->count-1].u.interrupt.vector);
+ if (*size < sizeof(*list)) {
+ *size = resource_length;
+ *status = NDIS_STATUS_BUFFER_TOO_SHORT;
+ } else {
+ ULONG count;
+ if (*size >= resource_length) {
+ *size = resource_length;
+ count = list->count;
+ } else {
+ UINT n = sizeof(*list);
+ count = 1;
+ while (count++ < list->count && n < *size)
+ n += sizeof(list->partial_descriptors);
+ *size = n;
+ }
+ memcpy(resource_list, list, *size);
+ resource_list->count = count;
+ *status = NDIS_STATUS_SUCCESS;
+ }
+ EXIT2(return);
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisMPciAssignResources,3)
+ (struct ndis_mp_block *nmb, ULONG slot_number,
+ NDIS_RESOURCE_LIST **resources)
+{
+ struct ndis_device *wnd = nmb->wnd;
+
+ ENTER2("%p, %p", wnd, wnd->wd->resource_list);
+ *resources = &wnd->wd->resource_list->list->partial_resource_list;
+ EXIT2(return NDIS_STATUS_SUCCESS);
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisMMapIoSpace,4)
+ (void __iomem **virt, struct ndis_mp_block *nmb,
+ NDIS_PHY_ADDRESS phy_addr, UINT len)
+{
+ struct ndis_device *wnd = nmb->wnd;
+
+ ENTER2("%Lx, %d", phy_addr, len);
+ *virt = MmMapIoSpace(phy_addr, len, MmCached);
+ if (*virt == NULL) {
+ ERROR("ioremap failed");
+ EXIT2(return NDIS_STATUS_FAILURE);
+ }
+ wnd->mem_start = phy_addr;
+ wnd->mem_end = phy_addr + len;
+ TRACE2("%p", *virt);
+ EXIT2(return NDIS_STATUS_SUCCESS);
+}
+
+wstdcall void WIN_FUNC(NdisMUnmapIoSpace,3)
+ (struct ndis_mp_block *nmb, void __iomem *virt, UINT len)
+{
+ ENTER2("%p, %d", virt, len);
+ MmUnmapIoSpace(virt, len);
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisAllocateSpinLock,1)
+ (struct ndis_spinlock *lock)
+{
+ TRACE4("lock %p, %p", lock, &lock->klock);
+ KeInitializeSpinLock(&lock->klock);
+ lock->irql = PASSIVE_LEVEL;
+ return;
+}
+
+wstdcall void WIN_FUNC(NdisFreeSpinLock,1)
+ (struct ndis_spinlock *lock)
+{
+ TRACE4("lock %p, %p", lock, &lock->klock);
+ return;
+}
+
+wstdcall void WIN_FUNC(NdisAcquireSpinLock,1)
+ (struct ndis_spinlock *lock)
+{
+ ENTER6("lock %p, %p", lock, &lock->klock);
+// assert_irql(_irql_ <= DISPATCH_LEVEL);
+ lock->irql = nt_spin_lock_irql(&lock->klock, DISPATCH_LEVEL);
+ return;
+}
+
+wstdcall void WIN_FUNC(NdisReleaseSpinLock,1)
+ (struct ndis_spinlock *lock)
+{
+ ENTER6("lock %p, %p", lock, &lock->klock);
+// assert_irql(_irql_ == DISPATCH_LEVEL);
+ nt_spin_unlock_irql(&lock->klock, lock->irql);
+ return;
+}
+
+wstdcall void WIN_FUNC(NdisDprAcquireSpinLock,1)
+ (struct ndis_spinlock *lock)
+{
+ ENTER6("lock %p", &lock->klock);
+// assert_irql(_irql_ == DISPATCH_LEVEL);
+ nt_spin_lock(&lock->klock);
+ return;
+}
+
+wstdcall void WIN_FUNC(NdisDprReleaseSpinLock,1)
+ (struct ndis_spinlock *lock)
+{
+ ENTER6("lock %p", &lock->klock);
+// assert_irql(_irql_ == DISPATCH_LEVEL);
+ nt_spin_unlock(&lock->klock);
+ return;
+}
+
+wstdcall void WIN_FUNC(NdisInitializeReadWriteLock,1)
+ (struct ndis_rw_lock *rw_lock)
+{
+ ENTER3("%p", rw_lock);
+ memset(rw_lock, 0, sizeof(*rw_lock));
+ KeInitializeSpinLock(&rw_lock->klock);
+ return;
+}
+
+/* read/write locks are implemented in a rather simplisitic way - we
+ * should probably use Linux's rw_lock implementation */
+
+wstdcall void WIN_FUNC(NdisAcquireReadWriteLock,3)
+ (struct ndis_rw_lock *rw_lock, BOOLEAN write,
+ struct lock_state *lock_state)
+{
+ if (write) {
+ while (1) {
+ if (cmpxchg(&rw_lock->count, 0, -1) == 0)
+ return;
+ while (rw_lock->count)
+ cpu_relax();
+ }
+ return;
+ }
+ while (1) {
+ typeof(rw_lock->count) count;
+ while ((count = rw_lock->count) < 0)
+ cpu_relax();
+ if (cmpxchg(&rw_lock->count, count, count + 1) == count)
+ return;
+ }
+}
+
+wstdcall void WIN_FUNC(NdisReleaseReadWriteLock,2)
+ (struct ndis_rw_lock *rw_lock, struct lock_state *lock_state)
+{
+ if (rw_lock->count > 0)
+ pre_atomic_add(rw_lock->count, -1);
+ else if (rw_lock->count == -1)
+ rw_lock->count = 0;
+ else
+ WARNING("invalid state: %d", rw_lock->count);
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisMAllocateMapRegisters,5)
+ (struct ndis_mp_block *nmb, UINT dmachan,
+ NDIS_DMA_SIZE dmasize, ULONG basemap, ULONG max_buf_size)
+{
+ struct ndis_device *wnd = nmb->wnd;
+
+ ENTER2("%p, %d %d %d %d", wnd, dmachan, dmasize, basemap, max_buf_size);
+ if (wnd->dma_map_count > 0) {
+ WARNING("%s: map registers already allocated: %u",
+ wnd->net_dev->name, wnd->dma_map_count);
+ EXIT2(return NDIS_STATUS_RESOURCES);
+ }
+ if (dmasize == NDIS_DMA_24BITS) {
+ if (pci_set_dma_mask(wnd->wd->pci.pdev, DMA_BIT_MASK(24)) ||
+ pci_set_consistent_dma_mask(wnd->wd->pci.pdev,
+ DMA_BIT_MASK(24)))
+ WARNING("setting dma mask failed");
+ } else if (dmasize == NDIS_DMA_32BITS) {
+ /* consistent dma is in low 32-bits by default */
+ if (pci_set_dma_mask(wnd->wd->pci.pdev, DMA_BIT_MASK(32)))
+ WARNING("setting dma mask failed");
+#ifdef CONFIG_X86_64
+ } else if (dmasize == NDIS_DMA_64BITS) {
+ if (pci_set_dma_mask(wnd->wd->pci.pdev, DMA_BIT_MASK(64)) ||
+ pci_set_consistent_dma_mask(wnd->wd->pci.pdev,
+ DMA_BIT_MASK(64)))
+ WARNING("setting dma mask failed");
+ else
+ wnd->net_dev->features |= NETIF_F_HIGHDMA;
+#endif
+ }
+ /* since memory for buffer is allocated with kmalloc, buffer
+ * is physically contiguous, so entire map will fit in one
+ * register */
+ if (basemap > 64) {
+ WARNING("Windows driver %s requesting too many (%u) "
+ "map registers", wnd->wd->driver->name, basemap);
+ /* As per NDIS, NDIS_STATUS_RESOURCES should be
+ * returned, but with that Atheros PCI driver fails -
+ * for now tolerate it */
+// EXIT2(return NDIS_STATUS_RESOURCES);
+ }
+
+ wnd->dma_map_addr = kmalloc(basemap * sizeof(*(wnd->dma_map_addr)),
+ GFP_KERNEL);
+ if (!wnd->dma_map_addr)
+ EXIT2(return NDIS_STATUS_RESOURCES);
+ memset(wnd->dma_map_addr, 0, basemap * sizeof(*(wnd->dma_map_addr)));
+ wnd->dma_map_count = basemap;
+ TRACE2("%u", wnd->dma_map_count);
+ EXIT2(return NDIS_STATUS_SUCCESS);
+}
+
+wstdcall void WIN_FUNC(NdisMFreeMapRegisters,1)
+ (struct ndis_mp_block *nmb)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ int i;
+
+ ENTER2("wnd: %p", wnd);
+ if (wnd->dma_map_addr) {
+ for (i = 0; i < wnd->dma_map_count; i++) {
+ if (wnd->dma_map_addr[i])
+ WARNING("%s: dma addr %p not freed by "
+ "Windows driver", wnd->net_dev->name,
+ (void *)wnd->dma_map_addr[i]);
+ }
+ kfree(wnd->dma_map_addr);
+ wnd->dma_map_addr = NULL;
+ } else
+ WARNING("map registers already freed?");
+ wnd->dma_map_count = 0;
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisMStartBufferPhysicalMapping,6)
+ (struct ndis_mp_block *nmb, ndis_buffer *buf,
+ ULONG index, BOOLEAN write_to_dev,
+ struct ndis_phy_addr_unit *phy_addr_array, UINT *array_size)
+{
+ struct ndis_device *wnd = nmb->wnd;
+
+ ENTER3("%p, %p, %u, %u", wnd, buf, index, wnd->dma_map_count);
+ if (unlikely(wnd->sg_dma_size || !write_to_dev ||
+ index >= wnd->dma_map_count)) {
+ WARNING("invalid request: %d, %d, %d, %d", wnd->sg_dma_size,
+ write_to_dev, index, wnd->dma_map_count);
+ phy_addr_array[0].phy_addr = 0;
+ phy_addr_array[0].length = 0;
+ *array_size = 0;
+ return;
+ }
+ if (wnd->dma_map_addr[index]) {
+ TRACE2("buffer %p at %d is already mapped: %lx", buf, index,
+ (unsigned long)wnd->dma_map_addr[index]);
+// *array_size = 1;
+ return;
+ }
+ TRACE3("%p, %p, %u", buf, MmGetSystemAddressForMdl(buf),
+ MmGetMdlByteCount(buf));
+ DBG_BLOCK(4) {
+ dump_bytes(__func__, MmGetSystemAddressForMdl(buf),
+ MmGetMdlByteCount(buf));
+ }
+ wnd->dma_map_addr[index] =
+ PCI_DMA_MAP_SINGLE(wnd->wd->pci.pdev,
+ MmGetSystemAddressForMdl(buf),
+ MmGetMdlByteCount(buf), PCI_DMA_TODEVICE);
+ phy_addr_array[0].phy_addr = wnd->dma_map_addr[index];
+ phy_addr_array[0].length = MmGetMdlByteCount(buf);
+ TRACE4("%Lx, %d, %d", phy_addr_array[0].phy_addr,
+ phy_addr_array[0].length, index);
+ *array_size = 1;
+}
+
+wstdcall void WIN_FUNC(NdisMCompleteBufferPhysicalMapping,3)
+ (struct ndis_mp_block *nmb, ndis_buffer *buf, ULONG index)
+{
+ struct ndis_device *wnd = nmb->wnd;
+
+ ENTER3("%p, %p %u (%u)", wnd, buf, index, wnd->dma_map_count);
+
+ if (unlikely(wnd->sg_dma_size))
+ WARNING("buffer %p may have been unmapped already", buf);
+ if (index >= wnd->dma_map_count) {
+ ERROR("invalid map register (%u >= %u)",
+ index, wnd->dma_map_count);
+ return;
+ }
+ TRACE4("%lx", (unsigned long)wnd->dma_map_addr[index]);
+ if (wnd->dma_map_addr[index]) {
+ PCI_DMA_UNMAP_SINGLE(wnd->wd->pci.pdev, wnd->dma_map_addr[index],
+ MmGetMdlByteCount(buf), PCI_DMA_TODEVICE);
+ wnd->dma_map_addr[index] = 0;
+ } else
+ WARNING("map registers at %u not used", index);
+}
+
+wstdcall void WIN_FUNC(NdisMAllocateSharedMemory,5)
+ (struct ndis_mp_block *nmb, ULONG size,
+ BOOLEAN cached, void **virt, NDIS_PHY_ADDRESS *phys)
+{
+ dma_addr_t dma_addr;
+ struct wrap_device *wd = nmb->wnd->wd;
+
+ ENTER3("size: %u, cached: %d", size, cached);
+ *virt = PCI_DMA_ALLOC_COHERENT(wd->pci.pdev, size, &dma_addr);
+ if (*virt)
+ *phys = dma_addr;
+ else
+ WARNING("couldn't allocate %d bytes of %scached DMA memory",
+ size, cached ? "" : "un-");
+ EXIT3(return);
+}
+
+wstdcall void WIN_FUNC(NdisMFreeSharedMemory,5)
+ (struct ndis_mp_block *nmb, ULONG size, BOOLEAN cached,
+ void *virt, NDIS_PHY_ADDRESS addr)
+{
+ struct wrap_device *wd = nmb->wnd->wd;
+ ENTER3("%p, %Lx, %u", virt, addr, size);
+ PCI_DMA_FREE_COHERENT(wd->pci.pdev, size, virt, addr);
+ EXIT3(return);
+}
+
+wstdcall void alloc_shared_memory_async(void *arg1, void *arg2)
+{
+ struct ndis_device *wnd;
+ struct alloc_shared_mem *alloc_shared_mem;
+ struct miniport *mp;
+ void *virt;
+ NDIS_PHY_ADDRESS phys;
+ KIRQL irql;
+
+ wnd = arg1;
+ alloc_shared_mem = arg2;
+ mp = &wnd->wd->driver->ndis_driver->mp;
+ NdisMAllocateSharedMemory(wnd->nmb, alloc_shared_mem->size,
+ alloc_shared_mem->cached, &virt, &phys);
+ irql = serialize_lock_irql(wnd);
+ assert_irql(_irql_ == DISPATCH_LEVEL);
+ LIN2WIN5(mp->alloc_complete, wnd->nmb, virt,
+ &phys, alloc_shared_mem->size, alloc_shared_mem->ctx);
+ serialize_unlock_irql(wnd, irql);
+ kfree(alloc_shared_mem);
+}
+WIN_FUNC_DECL(alloc_shared_memory_async,2)
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisMAllocateSharedMemoryAsync,4)
+ (struct ndis_mp_block *nmb, ULONG size, BOOLEAN cached, void *ctx)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ struct alloc_shared_mem *alloc_shared_mem;
+
+ ENTER3("wnd: %p", wnd);
+ alloc_shared_mem = kmalloc(sizeof(*alloc_shared_mem), irql_gfp());
+ if (!alloc_shared_mem) {
+ WARNING("couldn't allocate memory");
+ return NDIS_STATUS_FAILURE;
+ }
+
+ alloc_shared_mem->size = size;
+ alloc_shared_mem->cached = cached;
+ alloc_shared_mem->ctx = ctx;
+ if (schedule_ntos_work_item(WIN_FUNC_PTR(alloc_shared_memory_async,2),
+ wnd, alloc_shared_mem))
+ EXIT3(return NDIS_STATUS_FAILURE);
+ EXIT3(return NDIS_STATUS_PENDING);
+}
+
+/* Some drivers allocate NDIS_BUFFER (aka MDL) very often; instead of
+ * allocating and freeing with kernel functions, we chain them into
+ * ndis_buffer_pool. When an MDL is freed, it is added to the list of
+ * free MDLs. When allocated, we first check if there is one in free
+ * list and if so just return it; otherwise, we allocate a new one and
+ * return that. This reduces memory fragmentation. Windows DDK says
+ * that the driver itself shouldn't check what is returned in
+ * pool_handle, presumably because buffer pools are not used in
+ * XP. However, as long as driver follows rest of the semantics - that
+ * it should indicate maximum number of MDLs used with num_descr and
+ * pass the same pool_handle in other buffer functions, this should
+ * work. Sadly, though, NdisFreeBuffer doesn't pass the pool_handle,
+ * so we use 'process' field of MDL to store pool_handle. */
+
+wstdcall void WIN_FUNC(NdisAllocateBufferPool,3)
+ (NDIS_STATUS *status, struct ndis_buffer_pool **pool_handle,
+ UINT num_descr)
+{
+ struct ndis_buffer_pool *pool;
+
+ ENTER1("buffers: %d", num_descr);
+ pool = kmalloc(sizeof(*pool), irql_gfp());
+ if (!pool) {
+ *status = NDIS_STATUS_RESOURCES;
+ EXIT3(return);
+ }
+ spin_lock_init(&pool->lock);
+ pool->max_descr = num_descr;
+ pool->num_allocated_descr = 0;
+ pool->free_descr = NULL;
+ *pool_handle = pool;
+ *status = NDIS_STATUS_SUCCESS;
+ TRACE1("pool: %p, num_descr: %d", pool, num_descr);
+ EXIT1(return);
+}
+
+wstdcall void WIN_FUNC(NdisAllocateBuffer,5)
+ (NDIS_STATUS *status, ndis_buffer **buffer,
+ struct ndis_buffer_pool *pool, void *virt, UINT length)
+{
+ ndis_buffer *descr;
+
+ ENTER4("pool: %p (%d)", pool, pool->num_allocated_descr);
+ /* NDIS drivers should call this at DISPATCH_LEVEL, but
+ * alloc_tx_packet calls at SOFT_IRQL */
+ assert_irql(_irql_ <= SOFT_LEVEL);
+ if (!pool) {
+ *status = NDIS_STATUS_FAILURE;
+ *buffer = NULL;
+ EXIT4(return);
+ }
+ spin_lock_bh(&pool->lock);
+ if ((descr = pool->free_descr))
+ pool->free_descr = descr->next;
+ spin_unlock_bh(&pool->lock);
+ if (descr) {
+ typeof(descr->flags) flags;
+ flags = descr->flags;
+ memset(descr, 0, sizeof(*descr));
+ MmInitializeMdl(descr, virt, length);
+ if (flags & MDL_CACHE_ALLOCATED)
+ descr->flags |= MDL_CACHE_ALLOCATED;
+ } else {
+ if (pool->num_allocated_descr > pool->max_descr) {
+ TRACE2("pool %p is full: %d(%d)", pool,
+ pool->num_allocated_descr, pool->max_descr);
+#ifndef ALLOW_POOL_OVERFLOW
+ *status = NDIS_STATUS_FAILURE;
+ *buffer = NULL;
+ return;
+#endif
+ }
+ descr = allocate_init_mdl(virt, length);
+ if (!descr) {
+ WARNING("couldn't allocate buffer");
+ *status = NDIS_STATUS_FAILURE;
+ *buffer = NULL;
+ EXIT4(return);
+ }
+ TRACE4("buffer %p for %p, %d", descr, virt, length);
+ atomic_inc_var(pool->num_allocated_descr);
+ }
+ /* TODO: make sure this mdl can map given buffer */
+ MmBuildMdlForNonPagedPool(descr);
+// descr->flags |= MDL_ALLOCATED_FIXED_SIZE |
+// MDL_MAPPED_TO_SYSTEM_VA | MDL_PAGES_LOCKED;
+ descr->pool = pool;
+ *buffer = descr;
+ *status = NDIS_STATUS_SUCCESS;
+ TRACE4("buffer: %p", descr);
+ EXIT4(return);
+}
+
+wstdcall void WIN_FUNC(NdisFreeBuffer,1)
+ (ndis_buffer *buffer)
+{
+ struct ndis_buffer_pool *pool;
+
+ ENTER4("%p", buffer);
+ if (!buffer || !buffer->pool) {
+ ERROR("invalid buffer");
+ EXIT4(return);
+ }
+ pool = buffer->pool;
+ if (pool->num_allocated_descr > MAX_ALLOCATED_NDIS_BUFFERS) {
+ /* NB NB NB: set mdl's 'pool' field to NULL before
+ * calling free_mdl; otherwise free_mdl calls
+ * NdisFreeBuffer back */
+ atomic_dec_var(pool->num_allocated_descr);
+ buffer->pool = NULL;
+ free_mdl(buffer);
+ } else {
+ spin_lock_bh(&pool->lock);
+ buffer->next = pool->free_descr;
+ pool->free_descr = buffer;
+ spin_unlock_bh(&pool->lock);
+ }
+ EXIT4(return);
+}
+
+wstdcall void WIN_FUNC(NdisFreeBufferPool,1)
+ (struct ndis_buffer_pool *pool)
+{
+ ndis_buffer *cur, *next;
+
+ TRACE3("pool: %p", pool);
+ if (!pool) {
+ WARNING("invalid pool");
+ EXIT3(return);
+ }
+ spin_lock_bh(&pool->lock);
+ cur = pool->free_descr;
+ while (cur) {
+ next = cur->next;
+ cur->pool = NULL;
+ free_mdl(cur);
+ cur = next;
+ }
+ spin_unlock_bh(&pool->lock);
+ kfree(pool);
+ pool = NULL;
+ EXIT3(return);
+}
+
+wstdcall void WIN_FUNC(NdisAdjustBufferLength,2)
+ (ndis_buffer *buffer, UINT length)
+{
+ ENTER4("%p, %d", buffer, length);
+ buffer->bytecount = length;
+}
+
+wstdcall void WIN_FUNC(NdisQueryBuffer,3)
+ (ndis_buffer *buffer, void **virt, UINT *length)
+{
+ ENTER4("buffer: %p", buffer);
+ if (virt)
+ *virt = MmGetSystemAddressForMdl(buffer);
+ *length = MmGetMdlByteCount(buffer);
+ TRACE4("%p, %u", virt? *virt : NULL, *length);
+ return;
+}
+
+wstdcall void WIN_FUNC(NdisQueryBufferSafe,4)
+ (ndis_buffer *buffer, void **virt, UINT *length,
+ enum mm_page_priority priority)
+{
+ ENTER4("%p, %p, %p, %d", buffer, virt, length, priority);
+ if (virt)
+ *virt = MmGetSystemAddressForMdlSafe(buffer, priority);
+ *length = MmGetMdlByteCount(buffer);
+ TRACE4("%p, %u", virt? *virt : NULL, *length);
+}
+
+wstdcall void *WIN_FUNC(NdisBufferVirtualAddress,1)
+ (ndis_buffer *buffer)
+{
+ ENTER3("%p", buffer);
+ return MmGetSystemAddressForMdl(buffer);
+}
+
+wstdcall ULONG WIN_FUNC(NdisBufferLength,1)
+ (ndis_buffer *buffer)
+{
+ ENTER3("%p", buffer);
+ return MmGetMdlByteCount(buffer);
+}
+
+wstdcall void WIN_FUNC(NdisQueryBufferOffset,3)
+ (ndis_buffer *buffer, UINT *offset, UINT *length)
+{
+ ENTER3("%p", buffer);
+ *offset = MmGetMdlByteOffset(buffer);
+ *length = MmGetMdlByteCount(buffer);
+ TRACE3("%d, %d", *offset, *length);
+}
+
+wstdcall void WIN_FUNC(NdisUnchainBufferAtBack,2)
+ (struct ndis_packet *packet, ndis_buffer **buffer)
+{
+ ndis_buffer *b, *btail;
+
+ ENTER3("%p", packet);
+ b = packet->private.buffer_head;
+ if (!b) {
+ /* no buffer in packet */
+ *buffer = NULL;
+ EXIT3(return);
+ }
+ btail = packet->private.buffer_tail;
+ *buffer = btail;
+ if (b == btail) {
+ /* one buffer in packet */
+ packet->private.buffer_head = NULL;
+ packet->private.buffer_tail = NULL;
+ } else {
+ while (b->next != btail)
+ b = b->next;
+ packet->private.buffer_tail = b;
+ b->next = NULL;
+ }
+ packet->private.valid_counts = FALSE;
+ EXIT3(return);
+}
+
+wstdcall void WIN_FUNC(NdisUnchainBufferAtFront,2)
+ (struct ndis_packet *packet, ndis_buffer **buffer)
+{
+ ENTER3("%p", packet);
+ if (packet->private.buffer_head == NULL) {
+ /* no buffer in packet */
+ *buffer = NULL;
+ EXIT3(return);
+ }
+
+ *buffer = packet->private.buffer_head;
+ if (packet->private.buffer_head == packet->private.buffer_tail) {
+ /* one buffer in packet */
+ packet->private.buffer_head = NULL;
+ packet->private.buffer_tail = NULL;
+ } else
+ packet->private.buffer_head = (*buffer)->next;
+
+ packet->private.valid_counts = FALSE;
+ EXIT3(return);
+}
+
+wstdcall void WIN_FUNC(NdisGetFirstBufferFromPacketSafe,6)
+ (struct ndis_packet *packet, ndis_buffer **first_buffer,
+ void **first_buffer_va, UINT *first_buffer_length,
+ UINT *total_buffer_length, enum mm_page_priority priority)
+{
+ ndis_buffer *b = packet->private.buffer_head;
+
+ ENTER3("%p(%p)", packet, b);
+ *first_buffer = b;
+ if (b) {
+ *first_buffer_va = MmGetSystemAddressForMdlSafe(b, priority);
+ *first_buffer_length = *total_buffer_length =
+ MmGetMdlByteCount(b);
+ for (b = b->next; b; b = b->next)
+ *total_buffer_length += MmGetMdlByteCount(b);
+ } else {
+ *first_buffer_va = NULL;
+ *first_buffer_length = 0;
+ *total_buffer_length = 0;
+ }
+ TRACE3("%p, %d, %d", *first_buffer_va, *first_buffer_length,
+ *total_buffer_length);
+ EXIT3(return);
+}
+
+wstdcall void WIN_FUNC(NdisGetFirstBufferFromPacket,6)
+ (struct ndis_packet *packet, ndis_buffer **first_buffer,
+ void **first_buffer_va, UINT *first_buffer_length,
+ UINT *total_buffer_length, enum mm_page_priority priority)
+{
+ NdisGetFirstBufferFromPacketSafe(packet, first_buffer,
+ first_buffer_va, first_buffer_length,
+ total_buffer_length,
+ NormalPagePriority);
+}
+
+wstdcall void WIN_FUNC(NdisAllocatePacketPoolEx,5)
+ (NDIS_STATUS *status, struct ndis_packet_pool **pool_handle,
+ UINT num_descr, UINT overflowsize, UINT proto_rsvd_length)
+{
+ struct ndis_packet_pool *pool;
+
+ ENTER3("buffers: %d, length: %d", num_descr, proto_rsvd_length);
+ pool = kzalloc(sizeof(*pool), irql_gfp());
+ if (!pool) {
+ *status = NDIS_STATUS_RESOURCES;
+ EXIT3(return);
+ }
+ spin_lock_init(&pool->lock);
+ pool->max_descr = num_descr;
+ pool->num_allocated_descr = 0;
+ pool->num_used_descr = 0;
+ pool->free_descr = NULL;
+ pool->proto_rsvd_length = proto_rsvd_length;
+ *pool_handle = pool;
+ *status = NDIS_STATUS_SUCCESS;
+ TRACE3("pool: %p", pool);
+ EXIT3(return);
+}
+
+wstdcall void WIN_FUNC(NdisAllocatePacketPool,4)
+ (NDIS_STATUS *status, struct ndis_packet_pool **pool_handle,
+ UINT num_descr, UINT proto_rsvd_length)
+{
+ NdisAllocatePacketPoolEx(status, pool_handle, num_descr, 0,
+ proto_rsvd_length);
+ EXIT3(return);
+}
+
+wstdcall void WIN_FUNC(NdisFreePacketPool,1)
+ (struct ndis_packet_pool *pool)
+{
+ struct ndis_packet *packet, *next;
+
+ ENTER3("pool: %p", pool);
+ if (!pool) {
+ WARNING("invalid pool");
+ EXIT3(return);
+ }
+ spin_lock_bh(&pool->lock);
+ packet = pool->free_descr;
+ while (packet) {
+ next = (struct ndis_packet *)packet->reserved[0];
+ kfree(packet);
+ packet = next;
+ }
+ pool->num_allocated_descr = 0;
+ pool->num_used_descr = 0;
+ pool->free_descr = NULL;
+ spin_unlock_bh(&pool->lock);
+ kfree(pool);
+ EXIT3(return);
+}
+
+wstdcall UINT WIN_FUNC(NdisPacketPoolUsage,1)
+ (struct ndis_packet_pool *pool)
+{
+ EXIT4(return pool->num_used_descr);
+}
+
+wstdcall void WIN_FUNC(NdisAllocatePacket,3)
+ (NDIS_STATUS *status, struct ndis_packet **ndis_packet,
+ struct ndis_packet_pool *pool)
+{
+ struct ndis_packet *packet;
+ int packet_length;
+
+ ENTER4("pool: %p", pool);
+ if (!pool) {
+ *status = NDIS_STATUS_RESOURCES;
+ *ndis_packet = NULL;
+ EXIT4(return);
+ }
+ assert_irql(_irql_ <= SOFT_LEVEL);
+ if (pool->num_used_descr > pool->max_descr) {
+ TRACE3("pool %p is full: %d(%d)", pool,
+ pool->num_used_descr, pool->max_descr);
+#ifndef ALLOW_POOL_OVERFLOW
+ *status = NDIS_STATUS_RESOURCES;
+ *ndis_packet = NULL;
+ return;
+#endif
+ }
+ /* packet has space for 1 byte in protocol_reserved field */
+ packet_length = sizeof(*packet) - 1 + pool->proto_rsvd_length +
+ sizeof(struct ndis_packet_oob_data);
+ spin_lock_bh(&pool->lock);
+ if ((packet = pool->free_descr))
+ pool->free_descr = (void *)packet->reserved[0];
+ spin_unlock_bh(&pool->lock);
+ if (!packet) {
+ packet = kmalloc(packet_length, irql_gfp());
+ if (!packet) {
+ WARNING("couldn't allocate packet");
+ *status = NDIS_STATUS_RESOURCES;
+ *ndis_packet = NULL;
+ return;
+ }
+ atomic_inc_var(pool->num_allocated_descr);
+ }
+ TRACE4("%p, %p", pool, packet);
+ atomic_inc_var(pool->num_used_descr);
+ memset(packet, 0, packet_length);
+ packet->private.oob_offset =
+ packet_length - sizeof(struct ndis_packet_oob_data);
+ packet->private.packet_flags = fPACKET_ALLOCATED_BY_NDIS;
+ packet->private.pool = pool;
+ *ndis_packet = packet;
+ *status = NDIS_STATUS_SUCCESS;
+ EXIT4(return);
+}
+
+wstdcall void WIN_FUNC(NdisDprAllocatePacket,3)
+ (NDIS_STATUS *status, struct ndis_packet **packet,
+ struct ndis_packet_pool *pool)
+{
+ NdisAllocatePacket(status, packet, pool);
+}
+
+wstdcall void WIN_FUNC(NdisFreePacket,1)
+ (struct ndis_packet *packet)
+{
+ struct ndis_packet_pool *pool;
+
+ ENTER4("%p, %p", packet, packet->private.pool);
+ pool = packet->private.pool;
+ if (!pool) {
+ ERROR("invalid pool %p", packet);
+ EXIT4(return);
+ }
+ assert((int)pool->num_used_descr > 0);
+ atomic_dec_var(pool->num_used_descr);
+ if (packet->reserved[1]) {
+ TRACE3("%p, %p", packet, (void *)packet->reserved[1]);
+ kfree((void *)packet->reserved[1]);
+ packet->reserved[1] = 0;
+ }
+ if (pool->num_allocated_descr > MAX_ALLOCATED_NDIS_PACKETS) {
+ TRACE3("%p", pool);
+ atomic_dec_var(pool->num_allocated_descr);
+ kfree(packet);
+ } else {
+ TRACE4("%p, %p, %p", pool, packet, pool->free_descr);
+ spin_lock_bh(&pool->lock);
+ packet->reserved[0] =
+ (typeof(packet->reserved[0]))pool->free_descr;
+ pool->free_descr = packet;
+ spin_unlock_bh(&pool->lock);
+ }
+ EXIT4(return);
+}
+
+wstdcall struct ndis_packet_stack *WIN_FUNC(NdisIMGetCurrentPacketStack,2)
+ (struct ndis_packet *packet, BOOLEAN *stacks_remain)
+{
+ struct ndis_packet_stack *stack;
+
+ if (!packet->reserved[1]) {
+ stack = kzalloc(2 * sizeof(*stack), irql_gfp());
+ TRACE3("%p, %p", packet, stack);
+ packet->reserved[1] = (typeof(packet->reserved[1]))stack;
+ } else {
+ stack = (void *)packet->reserved[1];;
+ if (xchg(&stack->ndis_reserved[0], 1)) {
+ stack++;
+ if (xchg(&stack->ndis_reserved[0], 1))
+ stack = NULL;
+ }
+ TRACE3("%p", stack);
+ }
+ if (stack)
+ *stacks_remain = TRUE;
+ else
+ *stacks_remain = FALSE;
+
+ EXIT3(return stack);
+}
+
+wstdcall void WIN_FUNC(NdisCopyFromPacketToPacketSafe,7)
+ (struct ndis_packet *dst, UINT dst_offset, UINT num_to_copy,
+ struct ndis_packet *src, UINT src_offset, UINT *num_copied,
+ enum mm_page_priority priority)
+{
+ UINT dst_n, src_n, n, left;
+ ndis_buffer *dst_buf;
+ ndis_buffer *src_buf;
+
+ ENTER4("");
+ if (!dst || !src) {
+ *num_copied = 0;
+ EXIT4(return);
+ }
+
+ dst_buf = dst->private.buffer_head;
+ src_buf = src->private.buffer_head;
+
+ if (!dst_buf || !src_buf) {
+ *num_copied = 0;
+ EXIT4(return);
+ }
+ dst_n = MmGetMdlByteCount(dst_buf) - dst_offset;
+ src_n = MmGetMdlByteCount(src_buf) - src_offset;
+
+ n = min(src_n, dst_n);
+ n = min(n, num_to_copy);
+ memcpy(MmGetSystemAddressForMdl(dst_buf) + dst_offset,
+ MmGetSystemAddressForMdl(src_buf) + src_offset, n);
+
+ left = num_to_copy - n;
+ while (left > 0) {
+ src_offset += n;
+ dst_offset += n;
+ dst_n -= n;
+ src_n -= n;
+ if (dst_n == 0) {
+ dst_buf = dst_buf->next;
+ if (!dst_buf)
+ break;
+ dst_n = MmGetMdlByteCount(dst_buf);
+ dst_offset = 0;
+ }
+ if (src_n == 0) {
+ src_buf = src_buf->next;
+ if (!src_buf)
+ break;
+ src_n = MmGetMdlByteCount(src_buf);
+ src_offset = 0;
+ }
+
+ n = min(src_n, dst_n);
+ n = min(n, left);
+ memcpy(MmGetSystemAddressForMdl(dst_buf) + dst_offset,
+ MmGetSystemAddressForMdl(src_buf) + src_offset, n);
+ left -= n;
+ }
+ *num_copied = num_to_copy - left;
+ EXIT4(return);
+}
+
+wstdcall void WIN_FUNC(NdisCopyFromPacketToPacket,6)
+ (struct ndis_packet *dst, UINT dst_offset, UINT num_to_copy,
+ struct ndis_packet *src, UINT src_offset, UINT *num_copied)
+{
+ NdisCopyFromPacketToPacketSafe(dst, dst_offset, num_to_copy,
+ src, src_offset, num_copied,
+ NormalPagePriority);
+ return;
+}
+
+wstdcall void WIN_FUNC(NdisIMCopySendPerPacketInfo,2)
+ (struct ndis_packet *dst, struct ndis_packet *src)
+{
+ struct ndis_packet_oob_data *dst_oob, *src_oob;
+ dst_oob = NDIS_PACKET_OOB_DATA(dst);
+ src_oob = NDIS_PACKET_OOB_DATA(src);
+ memcpy(&dst_oob->ext, &src_oob->ext, sizeof(dst_oob->ext));
+ return;
+}
+
+wstdcall void WIN_FUNC(NdisSend,3)
+ (NDIS_STATUS *status, struct ndis_mp_block *nmb,
+ struct ndis_packet *packet)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ struct miniport *mp;
+ KIRQL irql;
+
+ mp = &wnd->wd->driver->ndis_driver->mp;
+ if (mp->send_packets) {
+ irql = serialize_lock_irql(wnd);
+ assert_irql(_irql_ == DISPATCH_LEVEL);
+ LIN2WIN3(mp->send_packets, wnd->nmb->mp_ctx, &packet, 1);
+ serialize_unlock_irql(wnd, irql);
+ if (deserialized_driver(wnd))
+ *status = NDIS_STATUS_PENDING;
+ else {
+ struct ndis_packet_oob_data *oob_data;
+ oob_data = NDIS_PACKET_OOB_DATA(packet);
+ *status = oob_data->status;
+ switch (*status) {
+ case NDIS_STATUS_SUCCESS:
+ free_tx_packet(wnd, packet, *status);
+ break;
+ case NDIS_STATUS_PENDING:
+ break;
+ case NDIS_STATUS_RESOURCES:
+ wnd->tx_ok = 0;
+ break;
+ case NDIS_STATUS_FAILURE:
+ default:
+ free_tx_packet(wnd, packet, *status);
+ break;
+ }
+ }
+ } else {
+ irql = serialize_lock_irql(wnd);
+ assert_irql(_irql_ == DISPATCH_LEVEL);
+ *status = LIN2WIN3(mp->send, wnd->nmb->mp_ctx, packet, 0);
+ serialize_unlock_irql(wnd, irql);
+ switch (*status) {
+ case NDIS_STATUS_SUCCESS:
+ free_tx_packet(wnd, packet, *status);
+ break;
+ case NDIS_STATUS_PENDING:
+ break;
+ case NDIS_STATUS_RESOURCES:
+ wnd->tx_ok = 0;
+ break;
+ case NDIS_STATUS_FAILURE:
+ default:
+ free_tx_packet(wnd, packet, *status);
+ break;
+ }
+ }
+ EXIT3(return);
+}
+
+/* called for serialized drivers only */
+wstdcall void mp_timer_dpc(struct kdpc *kdpc, void *ctx, void *arg1, void *arg2)
+{
+ struct ndis_mp_timer *timer;
+ struct ndis_mp_block *nmb;
+
+ timer = ctx;
+ TIMERENTER("%p, %p, %p, %p", timer, timer->func, timer->ctx, timer->nmb);
+ assert_irql(_irql_ == DISPATCH_LEVEL);
+ nmb = timer->nmb;
+ serialize_lock(nmb->wnd);
+ LIN2WIN4(timer->func, NULL, timer->ctx, NULL, NULL);
+ serialize_unlock(nmb->wnd);
+ TIMEREXIT(return);
+}
+WIN_FUNC_DECL(mp_timer_dpc,4)
+
+wstdcall void WIN_FUNC(NdisMInitializeTimer,4)
+ (struct ndis_mp_timer *timer, struct ndis_mp_block *nmb,
+ DPC func, void *ctx)
+{
+ TIMERENTER("%p, %p, %p, %p", timer, func, ctx, nmb);
+ assert_irql(_irql_ == PASSIVE_LEVEL);
+ timer->func = func;
+ timer->ctx = ctx;
+ timer->nmb = nmb;
+ if (deserialized_driver(nmb->wnd))
+ KeInitializeDpc(&timer->kdpc, func, ctx);
+ else
+ KeInitializeDpc(&timer->kdpc, WIN_FUNC_PTR(mp_timer_dpc,4),
+ timer);
+ wrap_init_timer(&timer->nt_timer, NotificationTimer, nmb);
+ TIMEREXIT(return);
+}
+
+wstdcall void WIN_FUNC(NdisMSetPeriodicTimer,2)
+ (struct ndis_mp_timer *timer, UINT period_ms)
+{
+ unsigned long expires = MSEC_TO_HZ(period_ms);
+
+ TIMERENTER("%p, %u, %ld", timer, period_ms, expires);
+ assert_irql(_irql_ <= DISPATCH_LEVEL);
+ wrap_set_timer(&timer->nt_timer, expires, expires, &timer->kdpc);
+ TIMEREXIT(return);
+}
+
+wstdcall void WIN_FUNC(NdisMCancelTimer,2)
+ (struct ndis_mp_timer *timer, BOOLEAN *canceled)
+{
+ TIMERENTER("%p", timer);
+ assert_irql(_irql_ <= DISPATCH_LEVEL);
+ *canceled = KeCancelTimer(&timer->nt_timer);
+ TIMERTRACE("%d", *canceled);
+ return;
+}
+
+wstdcall void WIN_FUNC(NdisInitializeTimer,3)
+ (struct ndis_timer *timer, void *func, void *ctx)
+{
+ TIMERENTER("%p, %p, %p", timer, func, ctx);
+ assert_irql(_irql_ == PASSIVE_LEVEL);
+ KeInitializeDpc(&timer->kdpc, func, ctx);
+ wrap_init_timer(&timer->nt_timer, NotificationTimer, NULL);
+ TIMEREXIT(return);
+}
+
+/* NdisMSetTimer is a macro that calls NdisSetTimer with
+ * ndis_mp_timer typecast to ndis_timer */
+
+wstdcall void WIN_FUNC(NdisSetTimer,2)
+ (struct ndis_timer *timer, UINT duetime_ms)
+{
+ unsigned long expires = MSEC_TO_HZ(duetime_ms);
+
+ TIMERENTER("%p, %p, %u, %ld", timer, timer->nt_timer.wrap_timer,
+ duetime_ms, expires);
+ assert_irql(_irql_ <= DISPATCH_LEVEL);
+ wrap_set_timer(&timer->nt_timer, expires, 0, &timer->kdpc);
+ TIMEREXIT(return);
+}
+
+wstdcall void WIN_FUNC(NdisCancelTimer,2)
+ (struct ndis_timer *timer, BOOLEAN *canceled)
+{
+ TIMERENTER("%p", timer);
+ assert_irql(_irql_ <= DISPATCH_LEVEL);
+ *canceled = KeCancelTimer(&timer->nt_timer);
+ TIMEREXIT(return);
+}
+
+wstdcall void WIN_FUNC(NdisMRegisterAdapterShutdownHandler,3)
+ (struct ndis_mp_block *nmb, void *ctx, void *func)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ ENTER1("%p", func);
+ wnd->wd->driver->ndis_driver->mp.shutdown = func;
+ wnd->shutdown_ctx = ctx;
+}
+
+wstdcall void WIN_FUNC(NdisMDeregisterAdapterShutdownHandler,1)
+ (struct ndis_mp_block *nmb)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ wnd->wd->driver->ndis_driver->mp.shutdown = NULL;
+ wnd->shutdown_ctx = NULL;
+}
+
+/* TODO: rt61 (serialized) driver doesn't want MiniportEnableInterrupt
+ * to be called in irq handler, but mrv800c (deserialized) driver
+ * wants. NDIS is confusing about when to call MiniportEnableInterrupt
+ * For now, handle these cases with two separate irq handlers based on
+ * observation of these two drivers. However, it is likely not
+ * correct. */
+wstdcall void deserialized_irq_handler(struct kdpc *kdpc, void *ctx,
+ void *arg1, void *arg2)
+{
+ struct ndis_device *wnd = ctx;
+ ndis_interrupt_handler irq_handler = arg1;
+ struct miniport *mp = arg2;
+
+ TRACE6("%p", irq_handler);
+ assert_irql(_irql_ == DISPATCH_LEVEL);
+ LIN2WIN1(irq_handler, wnd->nmb->mp_ctx);
+ if (mp->enable_interrupt)
+ LIN2WIN1(mp->enable_interrupt, wnd->nmb->mp_ctx);
+ EXIT6(return);
+}
+WIN_FUNC_DECL(deserialized_irq_handler,4)
+
+wstdcall void serialized_irq_handler(struct kdpc *kdpc, void *ctx,
+ void *arg1, void *arg2)
+{
+ struct ndis_device *wnd = ctx;
+ ndis_interrupt_handler irq_handler = arg1;
+
+ TRACE6("%p, %p, %p", wnd, irq_handler, arg2);
+ assert_irql(_irql_ == DISPATCH_LEVEL);
+ serialize_lock(wnd);
+ LIN2WIN1(irq_handler, arg2);
+ serialize_unlock(wnd);
+ EXIT6(return);
+}
+WIN_FUNC_DECL(serialized_irq_handler,4)
+
+wstdcall BOOLEAN ndis_isr(struct kinterrupt *kinterrupt, void *ctx)
+{
+ struct ndis_mp_interrupt *mp_interrupt = ctx;
+ struct ndis_device *wnd = mp_interrupt->nmb->wnd;
+ BOOLEAN recognized = TRUE, queue_handler = TRUE;
+
+ TRACE6("%p", wnd);
+ /* kernel may call ISR when registering interrupt, in
+ * the same context if DEBUG_SHIRQ is enabled */
+ assert_irql(_irql_ == DIRQL || _irql_ == PASSIVE_LEVEL);
+ if (mp_interrupt->shared)
+ LIN2WIN3(mp_interrupt->isr, &recognized, &queue_handler,
+ wnd->nmb->mp_ctx);
+ else {
+ struct miniport *mp;
+ mp = &wnd->wd->driver->ndis_driver->mp;
+ LIN2WIN1(mp->disable_interrupt, wnd->nmb->mp_ctx);
+ /* it is not shared interrupt, so handler must be called */
+ recognized = queue_handler = TRUE;
+ }
+ if (recognized) {
+ if (queue_handler) {
+ TRACE5("%p", &wnd->irq_kdpc);
+ queue_kdpc(&wnd->irq_kdpc);
+ }
+ EXIT6(return TRUE);
+ }
+ EXIT6(return FALSE);
+}
+WIN_FUNC_DECL(ndis_isr,2)
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisMRegisterInterrupt,7)
+ (struct ndis_mp_interrupt *mp_interrupt,
+ struct ndis_mp_block *nmb, UINT vector, UINT level,
+ BOOLEAN req_isr, BOOLEAN shared, enum kinterrupt_mode mode)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ struct miniport *mp;
+
+ ENTER1("%p, vector:%d, level:%d, req_isr:%d, shared:%d, mode:%d",
+ mp_interrupt, vector, level, req_isr, shared, mode);
+
+ mp = &wnd->wd->driver->ndis_driver->mp;
+ nt_spin_lock_init(&mp_interrupt->lock);
+ mp_interrupt->irq = vector;
+ mp_interrupt->isr = mp->isr;
+ mp_interrupt->mp_dpc = mp->handle_interrupt;
+ mp_interrupt->nmb = nmb;
+ mp_interrupt->req_isr = req_isr;
+ if (shared && !req_isr)
+ WARNING("shared but dynamic interrupt!");
+ mp_interrupt->shared = shared;
+ wnd->mp_interrupt = mp_interrupt;
+ if (mp->enable_interrupt)
+ mp_interrupt->enable = TRUE;
+ else
+ mp_interrupt->enable = FALSE;
+
+ if (deserialized_driver(wnd)) {
+ KeInitializeDpc(&wnd->irq_kdpc,
+ WIN_FUNC_PTR(deserialized_irq_handler,4),
+ nmb->wnd);
+ wnd->irq_kdpc.arg1 = mp->handle_interrupt;
+ wnd->irq_kdpc.arg2 = mp;
+ TRACE2("%p, %p, %p, %p", wnd->irq_kdpc.arg1, wnd->irq_kdpc.arg2,
+ nmb->wnd, nmb->mp_ctx);
+ } else {
+ KeInitializeDpc(&wnd->irq_kdpc,
+ WIN_FUNC_PTR(serialized_irq_handler,4),
+ nmb->wnd);
+ wnd->irq_kdpc.arg1 = mp->handle_interrupt;
+ wnd->irq_kdpc.arg2 = nmb->mp_ctx;
+ TRACE2("%p, %p, %p", wnd->irq_kdpc.arg1, wnd->irq_kdpc.arg2,
+ nmb->wnd);
+ }
+
+ if (IoConnectInterrupt(&mp_interrupt->kinterrupt,
+ WIN_FUNC_PTR(ndis_isr,2), mp_interrupt, NULL,
+ vector, DIRQL, DIRQL, mode, shared, 0, FALSE) !=
+ STATUS_SUCCESS) {
+ printk(KERN_WARNING "%s: request for IRQ %d failed\n",
+ DRIVER_NAME, vector);
+ return NDIS_STATUS_RESOURCES;
+ }
+ printk(KERN_INFO "%s: using IRQ %d\n", DRIVER_NAME, vector);
+ EXIT1(return NDIS_STATUS_SUCCESS);
+}
+
+wstdcall void WIN_FUNC(NdisMDeregisterInterrupt,1)
+ (struct ndis_mp_interrupt *mp_interrupt)
+{
+ struct ndis_mp_block *nmb;
+
+ ENTER1("%p", mp_interrupt);
+ nmb = xchg(&mp_interrupt->nmb, NULL);
+ TRACE1("%p", nmb);
+ if (!nmb) {
+ WARNING("interrupt already freed?");
+ return;
+ }
+ nmb->wnd->mp_interrupt = NULL;
+ if (dequeue_kdpc(&nmb->wnd->irq_kdpc))
+ TRACE2("interrupt kdpc was pending");
+ flush_workqueue(wrapndis_wq);
+ IoDisconnectInterrupt(mp_interrupt->kinterrupt);
+ EXIT1(return);
+}
+
+wstdcall BOOLEAN WIN_FUNC(NdisMSynchronizeWithInterrupt,3)
+ (struct ndis_mp_interrupt *mp_interrupt,
+ PKSYNCHRONIZE_ROUTINE sync_func, void *ctx)
+{
+ return KeSynchronizeExecution(mp_interrupt->kinterrupt, sync_func, ctx);
+}
+
+/* called via function pointer; but 64-bit RNDIS driver calls directly */
+wstdcall void WIN_FUNC(NdisMIndicateStatus,4)
+ (struct ndis_mp_block *nmb, NDIS_STATUS status, void *buf, UINT len)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ struct ndis_status_indication *si;
+
+ ENTER2("status=0x%x len=%d", status, len);
+ switch (status) {
+ case NDIS_STATUS_MEDIA_CONNECT:
+ set_media_state(wnd, NdisMediaStateConnected);
+ break;
+ case NDIS_STATUS_MEDIA_DISCONNECT:
+ set_media_state(wnd, NdisMediaStateDisconnected);
+ break;
+ case NDIS_STATUS_MEDIA_SPECIFIC_INDICATION:
+ if (!buf)
+ break;
+ si = buf;
+ TRACE2("status_type=%d", si->status_type);
+ switch (si->status_type) {
+ case Ndis802_11StatusType_MediaStreamMode:
+ break;
+#ifdef CONFIG_WIRELESS_EXT
+ case Ndis802_11StatusType_Authentication:
+ buf = (char *)buf + sizeof(*si);
+ len -= sizeof(*si);
+ while (len > 0) {
+ int pairwise_error = 0, group_error = 0;
+ struct ndis_auth_req *auth_req =
+ (struct ndis_auth_req *)buf;
+ TRACE1(MACSTRSEP, MAC2STR(auth_req->bssid));
+ if (auth_req->flags & 0x01)
+ TRACE2("reauth request");
+ if (auth_req->flags & 0x02)
+ TRACE2("key update request");
+ if (auth_req->flags & 0x06) {
+ pairwise_error = 1;
+ TRACE2("pairwise_error");
+ }
+ if (auth_req->flags & 0x0E) {
+ group_error = 1;
+ TRACE2("group_error");
+ }
+ if (pairwise_error || group_error) {
+ union iwreq_data wrqu;
+ struct iw_michaelmicfailure micfailure;
+
+ memset(&micfailure, 0, sizeof(micfailure));
+ if (pairwise_error)
+ micfailure.flags |=
+ IW_MICFAILURE_PAIRWISE;
+ if (group_error)
+ micfailure.flags |=
+ IW_MICFAILURE_GROUP;
+ memcpy(micfailure.src_addr.sa_data,
+ auth_req->bssid, ETH_ALEN);
+ memset(&wrqu, 0, sizeof(wrqu));
+ wrqu.data.length = sizeof(micfailure);
+ wireless_send_event(wnd->net_dev,
+ IWEVMICHAELMICFAILURE,
+ &wrqu, (u8 *)&micfailure);
+ }
+ len -= auth_req->length;
+ buf = (char *)buf + auth_req->length;
+ }
+ break;
+ case Ndis802_11StatusType_PMKID_CandidateList:
+ {
+ u8 *end;
+ unsigned long i;
+ struct ndis_pmkid_candidate_list *cand;
+
+ cand = buf + sizeof(struct ndis_status_indication);
+ if (len < sizeof(struct ndis_status_indication) +
+ sizeof(struct ndis_pmkid_candidate_list) ||
+ cand->version != 1) {
+ WARNING("unrecognized PMKID ignored");
+ EXIT1(return);
+ }
+
+ end = (u8 *)buf + len;
+ TRACE2("PMKID ver %d num_cand %d",
+ cand->version, cand->num_candidates);
+ for (i = 0; i < cand->num_candidates; i++) {
+ struct iw_pmkid_cand pcand;
+ union iwreq_data wrqu;
+ struct ndis_pmkid_candidate *c =
+ &cand->candidates[i];
+ if ((u8 *)(c + 1) > end) {
+ TRACE2("truncated PMKID");
+ break;
+ }
+ TRACE2("%ld: " MACSTRSEP " 0x%x",
+ i, MAC2STR(c->bssid), c->flags);
+ memset(&pcand, 0, sizeof(pcand));
+ if (c->flags & 0x01)
+ pcand.flags |= IW_PMKID_CAND_PREAUTH;
+ pcand.index = i;
+ memcpy(pcand.bssid.sa_data, c->bssid, ETH_ALEN);
+
+ memset(&wrqu, 0, sizeof(wrqu));
+ wrqu.data.length = sizeof(pcand);
+ wireless_send_event(wnd->net_dev, IWEVPMKIDCAND,
+ &wrqu, (u8 *)&pcand);
+ }
+ break;
+ }
+ case Ndis802_11StatusType_RadioState:
+ {
+ struct ndis_radio_status_indication *radio_status = buf;
+ if (radio_status->radio_state ==
+ Ndis802_11RadioStatusOn)
+ INFO("radio is turned on");
+ else if (radio_status->radio_state ==
+ Ndis802_11RadioStatusHardwareOff)
+ INFO("radio is turned off by hardware");
+ else if (radio_status->radio_state ==
+ Ndis802_11RadioStatusSoftwareOff)
+ INFO("radio is turned off by software");
+ break;
+ }
+#endif
+ default:
+ /* is this RSSI indication? */
+ TRACE2("unknown indication: %x", si->status_type);
+ break;
+ }
+ break;
+ default:
+ TRACE2("unknown status: %08X", status);
+ break;
+ }
+
+ EXIT2(return);
+}
+
+/* called via function pointer; but 64-bit RNDIS driver calls directly */
+wstdcall void WIN_FUNC(NdisMIndicateStatusComplete,1)
+ (struct ndis_mp_block *nmb)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ ENTER2("%p", wnd);
+ if (wnd->tx_ok)
+ schedule_wrapndis_work(&wnd->tx_work);
+}
+
+/* called via function pointer */
+wstdcall void NdisMSendComplete(struct ndis_mp_block *nmb,
+ struct ndis_packet *packet, NDIS_STATUS status)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ ENTER4("%p, %08X", packet, status);
+ assert_irql(_irql_ <= DISPATCH_LEVEL);
+ if (deserialized_driver(wnd))
+ free_tx_packet(wnd, packet, status);
+ else {
+ struct ndis_packet_oob_data *oob_data;
+ NDIS_STATUS pkt_status;
+ TRACE3("%p, %08x", packet, status);
+ oob_data = NDIS_PACKET_OOB_DATA(packet);
+ switch ((pkt_status = xchg(&oob_data->status, status))) {
+ case NDIS_STATUS_NOT_RECOGNIZED:
+ free_tx_packet(wnd, packet, status);
+ break;
+ case NDIS_STATUS_PENDING:
+ case 0:
+ break;
+ default:
+ WARNING("%p: invalid status: %08X", packet, pkt_status);
+ break;
+ }
+ /* In case a serialized driver has earlier requested a
+ * pause by returning NDIS_STATUS_RESOURCES during
+ * MiniportSend(Packets), wakeup tx worker now.
+ */
+ if (xchg(&wnd->tx_ok, 1) == 0) {
+ TRACE3("%d, %d", wnd->tx_ring_start, wnd->tx_ring_end);
+ schedule_wrapndis_work(&wnd->tx_work);
+ }
+ }
+ EXIT3(return);
+}
+
+/* called via function pointer */
+wstdcall void NdisMSendResourcesAvailable(struct ndis_mp_block *nmb)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ ENTER3("%d, %d", wnd->tx_ring_start, wnd->tx_ring_end);
+ wnd->tx_ok = 1;
+ schedule_wrapndis_work(&wnd->tx_work);
+ EXIT3(return);
+}
+
+wstdcall void return_packet(void *arg1, void *arg2)
+{
+ struct ndis_device *wnd;
+ struct ndis_packet *packet;
+ struct miniport *mp;
+ KIRQL irql;
+
+ wnd = arg1;
+ packet = arg2;
+ ENTER4("%p, %p", wnd, packet);
+ mp = &wnd->wd->driver->ndis_driver->mp;
+ irql = serialize_lock_irql(wnd);
+ assert_irql(_irql_ == DISPATCH_LEVEL);
+ LIN2WIN2(mp->return_packet, wnd->nmb->mp_ctx, packet);
+ serialize_unlock_irql(wnd, irql);
+ EXIT4(return);
+}
+WIN_FUNC_DECL(return_packet,2)
+
+/* called via function pointer */
+wstdcall void NdisMIndicateReceivePacket(struct ndis_mp_block *nmb,
+ struct ndis_packet **packets,
+ UINT nr_packets)
+{
+ struct ndis_device *wnd;
+ ndis_buffer *buffer;
+ struct ndis_packet *packet;
+ struct sk_buff *skb;
+ ULONG i, length, total_length;
+ struct ndis_packet_oob_data *oob_data;
+ void *virt;
+ struct ndis_tcp_ip_checksum_packet_info csum;
+
+ ENTER3("%p, %d", nmb, nr_packets);
+ assert_irql(_irql_ <= DISPATCH_LEVEL);
+ wnd = nmb->wnd;
+ for (i = 0; i < nr_packets; i++) {
+ packet = packets[i];
+ if (!packet) {
+ WARNING("empty packet ignored");
+ continue;
+ }
+ wnd->net_dev->last_rx = jiffies;
+ /* get total number of bytes in packet */
+ NdisGetFirstBufferFromPacketSafe(packet, &buffer, &virt,
+ &length, &total_length,
+ NormalPagePriority);
+ TRACE3("%d, %d", length, total_length);
+ oob_data = NDIS_PACKET_OOB_DATA(packet);
+ TRACE3("0x%x, 0x%x, %Lu", packet->private.flags,
+ packet->private.packet_flags, oob_data->time_rxed);
+ skb = dev_alloc_skb(total_length);
+ if (skb) {
+ while (buffer) {
+ memcpy_skb(skb, MmGetSystemAddressForMdl(buffer),
+ MmGetMdlByteCount(buffer));
+ buffer = buffer->next;
+ }
+ skb->dev = wnd->net_dev;
+ skb->protocol = eth_type_trans(skb, wnd->net_dev);
+ pre_atomic_add(wnd->net_stats.rx_bytes, total_length);
+ atomic_inc_var(wnd->net_stats.rx_packets);
+ csum.value = (typeof(csum.value))(ULONG_PTR)
+ oob_data->ext.info[TcpIpChecksumPacketInfo];
+ TRACE3("0x%05x", csum.value);
+ if (wnd->rx_csum.value &&
+ (csum.rx.tcp_succeeded || csum.rx.udp_succeeded ||
+ csum.rx.ip_succeeded))
+ skb->ip_summed = CHECKSUM_UNNECESSARY;
+ else
+ skb->ip_summed = CHECKSUM_NONE;
+
+ if (in_interrupt())
+ netif_rx(skb);
+ else
+ netif_rx_ni(skb);
+ } else {
+ WARNING("couldn't allocate skb; packet dropped");
+ atomic_inc_var(wnd->net_stats.rx_dropped);
+ }
+
+ /* serialized drivers check the status upon return
+ * from this function */
+ if (!deserialized_driver(wnd)) {
+ oob_data->status = NDIS_STATUS_SUCCESS;
+ continue;
+ }
+
+ /* if a deserialized driver sets
+ * NDIS_STATUS_RESOURCES, then it reclaims the packet
+ * upon return from this function */
+ if (oob_data->status == NDIS_STATUS_RESOURCES)
+ continue;
+
+ assert(oob_data->status == NDIS_STATUS_SUCCESS);
+ /* deserialized driver doesn't check the status upon
+ * return from this function; we need to call
+ * MiniportReturnPacket later for this packet. Calling
+ * MiniportReturnPacket from here is not correct - the
+ * driver doesn't expect it (at least Centrino driver
+ * crashes) */
+ schedule_ntos_work_item(WIN_FUNC_PTR(return_packet,2),
+ wnd, packet);
+ }
+ EXIT3(return);
+}
+
+/* called via function pointer (by NdisMEthIndicateReceive macro); the
+ * first argument is nmb->eth_db */
+wstdcall void EthRxIndicateHandler(struct ndis_mp_block *nmb, void *rx_ctx,
+ char *header1, char *header, UINT header_size,
+ void *look_ahead, UINT look_ahead_size,
+ UINT packet_size)
+{
+ struct sk_buff *skb = NULL;
+ struct ndis_device *wnd;
+ unsigned int skb_size = 0;
+ KIRQL irql;
+ struct ndis_packet_oob_data *oob_data;
+
+ ENTER3("nmb = %p, rx_ctx = %p, buf = %p, size = %d, buf = %p, "
+ "size = %d, packet = %d", nmb, rx_ctx, header, header_size,
+ look_ahead, look_ahead_size, packet_size);
+
+ wnd = nmb->wnd;
+ TRACE3("wnd = %p", wnd);
+ if (!wnd) {
+ ERROR("nmb is NULL");
+ EXIT3(return);
+ }
+ wnd->net_dev->last_rx = jiffies;
+
+ if (look_ahead_size < packet_size) {
+ struct ndis_packet *packet;
+ struct miniport *mp;
+ unsigned int bytes_txed;
+ NDIS_STATUS res;
+
+ NdisAllocatePacket(&res, &packet, wnd->tx_packet_pool);
+ if (res != NDIS_STATUS_SUCCESS) {
+ atomic_inc_var(wnd->net_stats.rx_dropped);
+ EXIT3(return);
+ }
+ oob_data = NDIS_PACKET_OOB_DATA(packet);
+ mp = &wnd->wd->driver->ndis_driver->mp;
+ irql = serialize_lock_irql(wnd);
+ assert_irql(_irql_ == DISPATCH_LEVEL);
+ res = LIN2WIN6(mp->tx_data, packet, &bytes_txed, nmb,
+ rx_ctx, look_ahead_size, packet_size);
+ serialize_unlock_irql(wnd, irql);
+ TRACE3("%d, %d, %d", header_size, look_ahead_size, bytes_txed);
+ if (res == NDIS_STATUS_SUCCESS) {
+ ndis_buffer *buffer;
+ struct ndis_tcp_ip_checksum_packet_info csum;
+ skb = dev_alloc_skb(header_size + look_ahead_size +
+ bytes_txed);
+ if (!skb) {
+ ERROR("couldn't allocate skb; packet dropped");
+ atomic_inc_var(wnd->net_stats.rx_dropped);
+ NdisFreePacket(packet);
+ return;
+ }
+ memcpy_skb(skb, header, header_size);
+ memcpy_skb(skb, look_ahead, look_ahead_size);
+ buffer = packet->private.buffer_head;
+ while (buffer) {
+ memcpy_skb(skb,
+ MmGetSystemAddressForMdl(buffer),
+ MmGetMdlByteCount(buffer));
+ buffer = buffer->next;
+ }
+ skb_size = header_size + look_ahead_size + bytes_txed;
+ csum.value = (typeof(csum.value))(ULONG_PTR)
+ oob_data->ext.info[TcpIpChecksumPacketInfo];
+ TRACE3("0x%05x", csum.value);
+ if (wnd->rx_csum.value &&
+ (csum.rx.tcp_succeeded || csum.rx.udp_succeeded))
+ skb->ip_summed = CHECKSUM_UNNECESSARY;
+ else
+ skb->ip_summed = CHECKSUM_NONE;
+ NdisFreePacket(packet);
+ } else if (res == NDIS_STATUS_PENDING) {
+ /* driver will call td_complete */
+ oob_data->look_ahead = kmalloc(look_ahead_size,
+ GFP_ATOMIC);
+ if (!oob_data->look_ahead) {
+ NdisFreePacket(packet);
+ ERROR("packet dropped");
+ atomic_inc_var(wnd->net_stats.rx_dropped);
+ EXIT3(return);
+ }
+ assert(sizeof(oob_data->header) == header_size);
+ memcpy(oob_data->header, header,
+ sizeof(oob_data->header));
+ memcpy(oob_data->look_ahead, look_ahead,
+ look_ahead_size);
+ oob_data->look_ahead_size = look_ahead_size;
+ EXIT3(return);
+ } else {
+ WARNING("packet dropped: %08X", res);
+ atomic_inc_var(wnd->net_stats.rx_dropped);
+ NdisFreePacket(packet);
+ EXIT3(return);
+ }
+ } else {
+ skb_size = header_size + packet_size;
+ skb = dev_alloc_skb(skb_size);
+ if (skb) {
+ memcpy_skb(skb, header, header_size);
+ memcpy_skb(skb, look_ahead, packet_size);
+ }
+ }
+
+ if (skb) {
+ skb->dev = wnd->net_dev;
+ skb->protocol = eth_type_trans(skb, wnd->net_dev);
+ pre_atomic_add(wnd->net_stats.rx_bytes, skb_size);
+ atomic_inc_var(wnd->net_stats.rx_packets);
+ if (in_interrupt())
+ netif_rx(skb);
+ else
+ netif_rx_ni(skb);
+ }
+
+ EXIT3(return);
+}
+
+/* called via function pointer */
+wstdcall void NdisMTransferDataComplete(struct ndis_mp_block *nmb,
+ struct ndis_packet *packet,
+ NDIS_STATUS status, UINT bytes_txed)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ struct sk_buff *skb;
+ unsigned int skb_size;
+ struct ndis_packet_oob_data *oob_data;
+ ndis_buffer *buffer;
+ struct ndis_tcp_ip_checksum_packet_info csum;
+
+ ENTER3("wnd = %p, packet = %p, bytes_txed = %d",
+ wnd, packet, bytes_txed);
+ if (!packet) {
+ WARNING("illegal packet");
+ EXIT3(return);
+ }
+ wnd->net_dev->last_rx = jiffies;
+ oob_data = NDIS_PACKET_OOB_DATA(packet);
+ skb_size = sizeof(oob_data->header) + oob_data->look_ahead_size +
+ bytes_txed;
+ skb = dev_alloc_skb(skb_size);
+ if (!skb) {
+ kfree(oob_data->look_ahead);
+ NdisFreePacket(packet);
+ ERROR("couldn't allocate skb; packet dropped");
+ atomic_inc_var(wnd->net_stats.rx_dropped);
+ EXIT3(return);
+ }
+ memcpy_skb(skb, oob_data->header, sizeof(oob_data->header));
+ memcpy_skb(skb, oob_data->look_ahead, oob_data->look_ahead_size);
+ buffer = packet->private.buffer_head;
+ while (buffer) {
+ memcpy_skb(skb, MmGetSystemAddressForMdl(buffer),
+ MmGetMdlByteCount(buffer));
+ buffer = buffer->next;
+ }
+ kfree(oob_data->look_ahead);
+ NdisFreePacket(packet);
+ skb->dev = wnd->net_dev;
+ skb->protocol = eth_type_trans(skb, wnd->net_dev);
+ pre_atomic_add(wnd->net_stats.rx_bytes, skb_size);
+ atomic_inc_var(wnd->net_stats.rx_packets);
+
+ csum.value = (typeof(csum.value))(ULONG_PTR)
+ oob_data->ext.info[TcpIpChecksumPacketInfo];
+ TRACE3("0x%05x", csum.value);
+ if (wnd->rx_csum.value &&
+ (csum.rx.tcp_succeeded || csum.rx.udp_succeeded))
+ skb->ip_summed = CHECKSUM_UNNECESSARY;
+ else
+ skb->ip_summed = CHECKSUM_NONE;
+
+ if (in_interrupt())
+ netif_rx(skb);
+ else
+ netif_rx_ni(skb);
+}
+
+/* called via function pointer */
+wstdcall void EthRxComplete(struct ndis_mp_block *nmb)
+{
+ TRACE3("");
+}
+
+/* called via function pointer */
+wstdcall void NdisMQueryInformationComplete(struct ndis_mp_block *nmb,
+ NDIS_STATUS status)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ typeof(wnd->ndis_req_task) task;
+
+ ENTER2("nmb: %p, wnd: %p, %08X", nmb, wnd, status);
+ wnd->ndis_req_status = status;
+ wnd->ndis_req_done = 1;
+ if ((task = xchg(&wnd->ndis_req_task, NULL)))
+ wake_up_process(task);
+ else
+ WARNING("invalid task");
+ EXIT2(return);
+}
+
+/* called via function pointer */
+wstdcall void NdisMSetInformationComplete(struct ndis_mp_block *nmb,
+ NDIS_STATUS status)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ typeof(wnd->ndis_req_task) task;
+
+ ENTER2("status = %08X", status);
+ wnd->ndis_req_status = status;
+ wnd->ndis_req_done = 1;
+ if ((task = xchg(&wnd->ndis_req_task, NULL)))
+ wake_up_process(task);
+ else
+ WARNING("invalid task");
+ EXIT2(return);
+}
+
+/* called via function pointer */
+wstdcall void NdisMResetComplete(struct ndis_mp_block *nmb,
+ NDIS_STATUS status, BOOLEAN address_reset)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ typeof(wnd->ndis_req_task) task;
+
+ ENTER2("status: %08X, %u", status, address_reset);
+ wnd->ndis_req_status = status;
+ wnd->ndis_req_done = address_reset + 1;
+ if ((task = xchg(&wnd->ndis_req_task, NULL)))
+ wake_up_process(task);
+ else
+ WARNING("invalid task");
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(NdisMSleep,1)
+ (ULONG us)
+{
+ unsigned long delay;
+
+ ENTER4("%p: us: %u", current, us);
+ delay = USEC_TO_HZ(us);
+ sleep_hz(delay);
+ TRACE4("%p: done", current);
+}
+
+wstdcall void WIN_FUNC(NdisGetCurrentSystemTime,1)
+ (LARGE_INTEGER *time)
+{
+ *time = ticks_1601();
+ TRACE5("%Lu, %lu", *time, jiffies);
+}
+
+wstdcall LONG WIN_FUNC(NdisInterlockedDecrement,1)
+ (LONG *val)
+{
+ return InterlockedDecrement(val);
+}
+
+wstdcall LONG WIN_FUNC(NdisInterlockedIncrement,1)
+ (LONG *val)
+{
+ return InterlockedIncrement(val);
+}
+
+wstdcall struct nt_list *WIN_FUNC(NdisInterlockedInsertHeadList,3)
+ (struct nt_list *head, struct nt_list *entry,
+ struct ndis_spinlock *lock)
+{
+ return ExInterlockedInsertHeadList(head, entry, &lock->klock);
+}
+
+wstdcall struct nt_list *WIN_FUNC(NdisInterlockedInsertTailList,3)
+ (struct nt_list *head, struct nt_list *entry,
+ struct ndis_spinlock *lock)
+{
+ return ExInterlockedInsertTailList(head, entry, &lock->klock);
+}
+
+wstdcall struct nt_list *WIN_FUNC(NdisInterlockedRemoveHeadList,2)
+ (struct nt_list *head, struct ndis_spinlock *lock)
+{
+ return ExInterlockedRemoveHeadList(head, &lock->klock);
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisMInitializeScatterGatherDma,3)
+ (struct ndis_mp_block *nmb, BOOLEAN dma_size, ULONG max_phy_map)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ ENTER2("dma_size=%d, maxtransfer=%u", dma_size, max_phy_map);
+#ifdef CONFIG_X86_64
+ if (dma_size != NDIS_DMA_64BITS) {
+ TRACE1("DMA size is not 64-bits");
+ if (pci_set_dma_mask(wnd->wd->pci.pdev, DMA_BIT_MASK(32)) ||
+ pci_set_consistent_dma_mask(wnd->wd->pci.pdev,
+ DMA_BIT_MASK(32)))
+ WARNING("setting dma mask failed");
+ }
+#endif
+ if ((wnd->attributes & NDIS_ATTRIBUTE_BUS_MASTER) &&
+ wrap_is_pci_bus(wnd->wd->dev_bus)) {
+ wnd->sg_dma_size = max_phy_map;
+ return NDIS_STATUS_SUCCESS;
+ } else
+ EXIT1(return NDIS_STATUS_NOT_SUPPORTED);
+}
+
+wstdcall ULONG WIN_FUNC(NdisMGetDmaAlignment,1)
+ (struct ndis_mp_block *nmb)
+{
+ ENTER3("");
+ return dma_get_cache_alignment();
+}
+
+wstdcall CHAR WIN_FUNC(NdisSystemProcessorCount,0)
+ (void)
+{
+ return (CHAR)NR_CPUS;
+}
+
+wstdcall void WIN_FUNC(NdisGetCurrentProcessorCounts,3)
+ (ULONG *idle, ULONG *kernel_user, ULONG *index)
+{
+ int cpu = smp_processor_id();
+ *idle = kstat_cpu(cpu).cpustat.idle;
+ *kernel_user = kstat_cpu(cpu).cpustat.system +
+ kstat_cpu(cpu).cpustat.user;
+ *index = cpu;
+}
+
+wstdcall void WIN_FUNC(NdisInitializeEvent,1)
+ (struct ndis_event *ndis_event)
+{
+ EVENTENTER("%p", ndis_event);
+ KeInitializeEvent(&ndis_event->nt_event, NotificationEvent, 0);
+}
+
+wstdcall BOOLEAN WIN_FUNC(NdisWaitEvent,2)
+ (struct ndis_event *ndis_event, UINT ms)
+{
+ LARGE_INTEGER ticks;
+ NTSTATUS res;
+
+ EVENTENTER("%p %u", ndis_event, ms);
+ ticks = -((LARGE_INTEGER)ms * TICKSPERMSEC);
+ res = KeWaitForSingleObject(&ndis_event->nt_event, 0, 0, TRUE,
+ ms == 0 ? NULL : &ticks);
+ if (res == STATUS_SUCCESS)
+ EXIT3(return TRUE);
+ else
+ EXIT3(return FALSE);
+}
+
+wstdcall void WIN_FUNC(NdisSetEvent,1)
+ (struct ndis_event *ndis_event)
+{
+ EVENTENTER("%p", ndis_event);
+ KeSetEvent(&ndis_event->nt_event, 0, 0);
+}
+
+wstdcall void WIN_FUNC(NdisResetEvent,1)
+ (struct ndis_event *ndis_event)
+{
+ EVENTENTER("%p", ndis_event);
+ KeResetEvent(&ndis_event->nt_event);
+}
+
+static void ndis_worker(worker_param_t dummy)
+{
+ struct nt_list *ent;
+ struct ndis_work_item *ndis_work_item;
+
+ WORKENTER("");
+ while (1) {
+ spin_lock_bh(&ndis_work_list_lock);
+ ent = RemoveHeadList(&ndis_work_list);
+ spin_unlock_bh(&ndis_work_list_lock);
+ if (!ent)
+ break;
+ ndis_work_item = container_of(ent, struct ndis_work_item, list);
+ WORKTRACE("%p: %p, %p", ndis_work_item,
+ ndis_work_item->func, ndis_work_item->ctx);
+ LIN2WIN2(ndis_work_item->func, ndis_work_item,
+ ndis_work_item->ctx);
+ WORKTRACE("%p done", ndis_work_item);
+ }
+ WORKEXIT(return);
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisScheduleWorkItem,1)
+ (struct ndis_work_item *ndis_work_item)
+{
+ ENTER3("%p", ndis_work_item);
+ spin_lock_bh(&ndis_work_list_lock);
+ InsertTailList(&ndis_work_list, &ndis_work_item->list);
+ spin_unlock_bh(&ndis_work_list_lock);
+ WORKTRACE("scheduling %p", ndis_work_item);
+ schedule_ndis_work(&ndis_work);
+ EXIT3(return NDIS_STATUS_SUCCESS);
+}
+
+wstdcall void WIN_FUNC(NdisMGetDeviceProperty,6)
+ (struct ndis_mp_block *nmb, void **phy_dev, void **func_dev,
+ void **next_dev, void **alloc_res, void**trans_res)
+{
+ ENTER2("nmb: %p, phy_dev = %p, func_dev = %p, next_dev = %p, "
+ "alloc_res = %p, trans_res = %p", nmb, phy_dev, func_dev,
+ next_dev, alloc_res, trans_res);
+ if (phy_dev)
+ *phy_dev = nmb->pdo;
+ if (func_dev)
+ *func_dev = nmb->fdo;
+ if (next_dev)
+ *next_dev = nmb->next_device;
+}
+
+wstdcall void WIN_FUNC(NdisMRegisterUnloadHandler,2)
+ (struct driver_object *drv_obj, void *unload)
+{
+ if (drv_obj)
+ drv_obj->unload = unload;
+ return;
+}
+
+wstdcall UINT WIN_FUNC(NdisGetVersion,0)
+ (void)
+{
+ return 0x00050001;
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisMQueryAdapterInstanceName,2)
+ (struct unicode_string *name, struct ndis_mp_block *nmb)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ struct ansi_string ansi;
+
+ if (wrap_is_pci_bus(wnd->wd->dev_bus))
+ RtlInitAnsiString(&ansi, "PCI Ethernet Adapter");
+ else
+ RtlInitAnsiString(&ansi, "USB Ethernet Adapter");
+
+ if (RtlAnsiStringToUnicodeString(name, &ansi, TRUE))
+ EXIT2(return NDIS_STATUS_RESOURCES);
+ else
+ EXIT2(return NDIS_STATUS_SUCCESS);
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisWriteEventLogEntry,7)
+ (void *handle, NDIS_STATUS code, ULONG value, USHORT n,
+ void *strings, ULONG datasize, void *data)
+{
+ TRACE1("0x%x, 0x%x, %u, %u", code, value, n, datasize);
+ return NDIS_STATUS_SUCCESS;
+}
+
+wstdcall void *WIN_FUNC(NdisGetRoutineAddress,1)
+ (struct unicode_string *unicode_string)
+{
+ struct ansi_string ansi_string;
+ void *address;
+
+ if (RtlUnicodeStringToAnsiString(&ansi_string, unicode_string, TRUE) !=
+ STATUS_SUCCESS)
+ EXIT1(return NULL);
+ INFO("%s", ansi_string.buf);
+ address = ndis_get_routine_address(ansi_string.buf);
+ RtlFreeAnsiString(&ansi_string);
+ return address;
+}
+
+wstdcall ULONG WIN_FUNC(NdisReadPcmciaAttributeMemory,4)
+ (struct ndis_mp_block *nmb, ULONG offset, void *buffer,
+ ULONG length)
+{
+ TODO();
+ return 0;
+}
+
+wstdcall ULONG WIN_FUNC(NdisWritePcmciaAttributeMemory,4)
+ (struct ndis_mp_block *nmb, ULONG offset, void *buffer,
+ ULONG length)
+{
+ TODO();
+ return 0;
+}
+
+wstdcall void WIN_FUNC(NdisMCoIndicateReceivePacket,3)
+ (struct ndis_mp_block *nmb, struct ndis_packet **packets,
+ UINT nr_packets)
+{
+ ENTER3("nmb = %p", nmb);
+ NdisMIndicateReceivePacket(nmb, packets, nr_packets);
+ EXIT3(return);
+}
+
+wstdcall void WIN_FUNC(NdisMCoSendComplete,3)
+ (NDIS_STATUS status, struct ndis_mp_block *nmb,
+ struct ndis_packet *packet)
+{
+ ENTER3("%08x", status);
+ NdisMSendComplete(nmb, packet, status);
+ EXIT3(return);
+}
+
+wstdcall void WIN_FUNC(NdisMCoRequestComplete,3)
+ (NDIS_STATUS status, struct ndis_mp_block *nmb,
+ struct ndis_request *ndis_request)
+{
+ struct ndis_device *wnd = nmb->wnd;
+ typeof(wnd->ndis_req_task) task;
+
+ ENTER3("%08X", status);
+ wnd->ndis_req_status = status;
+ wnd->ndis_req_done = 1;
+ if ((task = xchg(&wnd->ndis_req_task, NULL)))
+ wake_up_process(task);
+ else
+ WARNING("invalid task");
+ EXIT3(return);
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisIMNotifiyPnPEvent,2)
+ (struct ndis_mp_block *nmb, struct net_pnp_event *event)
+{
+ ENTER2("%p, %d", nmb, event->code);
+ /* NdisWrapper never calls protocol's pnp event notifier, so
+ * nothing to do here */
+ EXIT2(return NDIS_STATUS_SUCCESS);
+}
+
+wstdcall void WIN_FUNC(NdisCompletePnPEvent,2)
+ (NDIS_STATUS status, void *handle, struct net_pnp_event *event)
+{
+ ENTER2("%d, %p, %d", status, handle, event->code);
+ /* NdisWrapper never calls protocol's pnp event notifier, so
+ * nothing to do here */
+ EXIT2(return);
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisMSetMiniportSecondary,2)
+ (struct ndis_mp_block *nmb2, struct ndis_mp_block *nmb1)
+{
+ ENTER3("%p, %p", nmb1, nmb2);
+ TODO();
+ EXIT3(return NDIS_STATUS_SUCCESS);
+}
+
+wstdcall NDIS_STATUS WIN_FUNC(NdisMPromoteMiniport,1)
+ (struct ndis_mp_block *nmb)
+{
+ ENTER3("%p", nmb);
+ TODO();
+ EXIT3(return NDIS_STATUS_SUCCESS);
+}
+
+wstdcall void WIN_FUNC(NdisMCoActivateVcComplete,3)
+ (NDIS_STATUS status, void *handle, void *params)
+{
+ TODO();
+}
+
+wstdcall void WIN_FUNC(NdisMCoDeactivateVcComplete,2)
+ (NDIS_STATUS status, void *handle)
+{
+ TODO();
+}
+
+wstdcall void WIN_FUNC(NdisMRemoveMiniport,1)
+ (void *handle)
+{
+ TODO();
+}
+
+static void *ndis_get_routine_address(char *name)
+{
+ int i;
+ ENTER2("%p", name);
+ for (i = 0; i < sizeof(ndis_exports) / sizeof(ndis_exports[0]); i++) {
+ if (strcmp(name, ndis_exports[i].name) == 0) {
+ TRACE2("%p", ndis_exports[i].func);
+ return ndis_exports[i].func;
+ }
+ }
+ EXIT2(return NULL);
+}
+
+/* ndis_init_device is called for each device */
+int ndis_init_device(struct ndis_device *wnd)
+{
+ struct ndis_mp_block *nmb = wnd->nmb;
+
+ KeInitializeSpinLock(&nmb->lock);
+ wnd->mp_interrupt = NULL;
+ wnd->wrap_timer_slist.next = NULL;
+ if (wnd->wd->driver->ndis_driver)
+ wnd->wd->driver->ndis_driver->mp.shutdown = NULL;
+
+ nmb->filterdbs.eth_db = nmb;
+ nmb->filterdbs.tr_db = nmb;
+ nmb->filterdbs.fddi_db = nmb;
+ nmb->filterdbs.arc_db = nmb;
+
+ nmb->rx_packet = WIN_FUNC_PTR(NdisMIndicateReceivePacket,3);
+ nmb->send_complete = WIN_FUNC_PTR(NdisMSendComplete,3);
+ nmb->send_resource_avail = WIN_FUNC_PTR(NdisMSendResourcesAvailable,1);
+ nmb->status = WIN_FUNC_PTR(NdisMIndicateStatus,4);
+ nmb->status_complete = WIN_FUNC_PTR(NdisMIndicateStatusComplete,1);
+ nmb->queryinfo_complete = WIN_FUNC_PTR(NdisMQueryInformationComplete,2);
+ nmb->setinfo_complete = WIN_FUNC_PTR(NdisMSetInformationComplete,2);
+ nmb->reset_complete = WIN_FUNC_PTR(NdisMResetComplete,3);
+ nmb->eth_rx_indicate = WIN_FUNC_PTR(EthRxIndicateHandler,8);
+ nmb->eth_rx_complete = WIN_FUNC_PTR(EthRxComplete,1);
+ nmb->td_complete = WIN_FUNC_PTR(NdisMTransferDataComplete,4);
+ return 0;
+}
+
+/* ndis_exit_device is called for each device */
+void ndis_exit_device(struct ndis_device *wnd)
+{
+ struct wrap_device_setting *setting;
+ ENTER2("%p", wnd);
+ if (down_interruptible(&loader_mutex))
+ WARNING("couldn't obtain loader_mutex");
+ nt_list_for_each_entry(setting, &wnd->wd->settings, list) {
+ struct ndis_configuration_parameter *param;
+ param = setting->encoded;
+ if (param) {
+ if (param->type == NdisParameterString)
+ RtlFreeUnicodeString(&param->data.string);
+ ExFreePool(param);
+ setting->encoded = NULL;
+ }
+ }
+ up(&loader_mutex);
+}
+
+/* ndis_init is called once when module is loaded */
+int ndis_init(void)
+{
+ InitializeListHead(&ndis_work_list);
+ spin_lock_init(&ndis_work_list_lock);
+ initialize_work(&ndis_work, ndis_worker, NULL);
+
+ ndis_wq = create_singlethread_workqueue("ndis_wq");
+ if (!ndis_wq) {
+ WARNING("couldn't create worker thread");
+ EXIT1(return -ENOMEM);
+ }
+
+ ndis_worker_thread = wrap_worker_init(ndis_wq);
+ TRACE1("%p", ndis_worker_thread);
+ return 0;
+}
+
+/* ndis_exit is called once when module is removed */
+void ndis_exit(void)
+{
+ ENTER1("");
+ if (ndis_wq)
+ destroy_workqueue(ndis_wq);
+ TRACE1("%p", ndis_worker_thread);
+ if (ndis_worker_thread)
+ ObDereferenceObject(ndis_worker_thread);
+ EXIT1(return);
+}
diff --git a/ubuntu/ndiswrapper/ndis.h b/ubuntu/ndiswrapper/ndis.h
new file mode 100644
index 00000000000..6a01eb9060c
--- /dev/null
+++ b/ubuntu/ndiswrapper/ndis.h
@@ -0,0 +1,1314 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef _NDIS_H_
+#define _NDIS_H_
+
+#include "ntoskernel.h"
+
+//#define ALLOW_POOL_OVERFLOW 1
+
+#define NDIS_DMA_24BITS 0
+#define NDIS_DMA_32BITS 1
+#define NDIS_DMA_64BITS 2
+
+#ifdef CONFIG_X86_64
+#define MAXIMUM_PROCESSORS 64
+#else
+#define MAXIMUM_PROCESSORS 32
+#endif
+
+typedef UINT NDIS_STATUS;
+typedef UCHAR NDIS_DMA_SIZE;
+typedef LONG ndis_rssi;
+typedef ULONG ndis_key_index;
+typedef ULONG ndis_tx_power_level;
+typedef ULONGULONG ndis_key_rsc;
+typedef UCHAR ndis_rates[NDIS_MAX_RATES];
+typedef UCHAR ndis_rates_ex[NDIS_MAX_RATES_EX];
+typedef UCHAR mac_address[ETH_ALEN];
+typedef ULONG ndis_fragmentation_threshold;
+typedef ULONG ndis_rts_threshold;
+typedef ULONG ndis_antenna;
+typedef ULONG ndis_oid;
+
+typedef UCHAR ndis_pmkid_vavlue[16];
+
+typedef uint64_t NDIS_PHY_ADDRESS;
+
+struct ndis_sg_element {
+ PHYSICAL_ADDRESS address;
+ ULONG length;
+ ULONG_PTR reserved;
+};
+
+struct ndis_sg_list {
+ ULONG nent;
+ ULONG_PTR reserved;
+ struct ndis_sg_element elements[];
+};
+
+/* when sending packets, ndiswrapper associates exactly one sg element
+ * in sg list */
+struct wrap_tx_sg_list {
+ ULONG nent;
+ ULONG_PTR reserved;
+ struct ndis_sg_element elements[1];
+};
+
+struct ndis_phy_addr_unit {
+ NDIS_PHY_ADDRESS phy_addr;
+ UINT length;
+};
+
+typedef struct mdl ndis_buffer;
+
+struct ndis_buffer_pool {
+ ndis_buffer *free_descr;
+// NT_SPIN_LOCK lock;
+ spinlock_t lock;
+ UINT max_descr;
+ UINT num_allocated_descr;
+};
+
+#define NDIS_PROTOCOL_ID_DEFAULT 0x00
+#define NDIS_PROTOCOL_ID_TCP_IP 0x02
+#define NDIS_PROTOCOL_ID_IPX 0x06
+#define NDIS_PROTOCOL_ID_NBF 0x07
+#define NDIS_PROTOCOL_ID_MAX 0x0F
+#define NDIS_PROTOCOL_ID_MASK 0x0F
+
+#define fPACKET_WRAPPER_RESERVED 0x3F
+#define fPACKET_CONTAINS_MEDIA_SPECIFIC_INFO 0x40
+#define fPACKET_ALLOCATED_BY_NDIS 0x80
+
+#define PROTOCOL_RESERVED_SIZE_IN_PACKET (4 * sizeof(void *))
+
+struct transport_header_offset {
+ USHORT protocol_type;
+ USHORT header_offset;
+};
+
+struct ndis_network_address {
+ USHORT length;
+ USHORT type;
+ UCHAR address[1];
+};
+
+struct ndis_network_address_list {
+ LONG count;
+ USHORT type;
+ struct ndis_network_address address[1];
+};
+
+struct ndis_tcp_ip_checksum_packet_info {
+ union {
+ struct {
+ ULONG v4:1;
+ ULONG v6:1;
+ ULONG tcp:1;
+ ULONG udp:1;
+ ULONG ip:1;
+ } tx;
+ struct {
+ ULONG tcp_failed:1;
+ ULONG udp_failed:1;
+ ULONG ip_failed:1;
+ ULONG tcp_succeeded:1;
+ ULONG udp_succeeded:1;
+ ULONG ip_succeeded:1;
+ ULONG loopback:1;
+ } rx;
+ ULONG value;
+ };
+};
+
+enum ndis_task {
+ TcpIpChecksumNdisTask, IpSecNdisTask, TcpLargeSendNdisTask, MaxNdisTask
+};
+
+enum ndis_encapsulation {
+ UNSPECIFIED_Encapsulation, NULL_Encapsulation,
+ IEEE_802_3_Encapsulation, IEEE_802_5_Encapsulation,
+ LLC_SNAP_ROUTED_Encapsulation, LLC_SNAP_BRIDGED_Encapsulation
+};
+
+#define NDIS_TASK_OFFLOAD_VERSION 1
+
+struct ndis_encapsulation_format {
+ enum ndis_encapsulation encap;
+ struct {
+ ULONG fixed_header_size:1;
+ ULONG reserved:31;
+ } flags;
+ ULONG header_size;
+};
+
+struct ndis_task_offload_header {
+ ULONG version;
+ ULONG size;
+ ULONG reserved;
+ ULONG offset_first_task;
+ struct ndis_encapsulation_format encap_format;
+};
+
+struct ndis_task_offload {
+ ULONG version;
+ ULONG size;
+ enum ndis_task task;
+ ULONG offset_next_task;
+ ULONG task_buf_length;
+ UCHAR task_buf[1];
+};
+
+struct v4_checksum {
+ union {
+ struct {
+ ULONG ip_opts:1;
+ ULONG tcp_opts:1;
+ ULONG tcp_csum:1;
+ ULONG udp_csum:1;
+ ULONG ip_csum:1;
+ };
+ ULONG value;
+ };
+};
+
+struct v6_checksum {
+ ULONG ip_supported:1;
+ ULONG tcp_supported:1;
+ ULONG tcp_csum:1;
+ ULONG udp_csum:1;
+};
+
+struct ndis_task_tcp_ip_checksum {
+ struct v4_checksum v4_tx;
+ struct v4_checksum v4_rx;
+ struct v6_checksum v6_tx;
+ struct v6_checksum v6_rx;
+};
+
+struct ndis_task_tcp_large_send {
+ ULONG version;
+ ULONG max_size;
+ ULONG min_seg_count;
+ BOOLEAN tcp_opts;
+ BOOLEAN ip_opts;
+};
+
+struct ndis_packet;
+
+struct ndis_packet_pool {
+ struct ndis_packet *free_descr;
+// NT_SPIN_LOCK lock;
+ spinlock_t lock;
+ UINT max_descr;
+ UINT num_allocated_descr;
+ UINT num_used_descr;
+ UINT proto_rsvd_length;
+};
+
+struct ndis_packet_stack {
+ ULONG_PTR IM_reserved[2];
+ ULONG_PTR ndis_reserved[4];
+};
+
+enum ndis_per_packet_info {
+ TcpIpChecksumPacketInfo, IpSecPacketInfo, TcpLargeSendPacketInfo,
+ ClassificationHandlePacketInfo, NdisReserved,
+ ScatterGatherListPacketInfo, Ieee8021QInfo, OriginalPacketInfo,
+ PacketCancelId, MaxPerPacketInfo
+};
+
+struct ndis_packet_extension {
+ void *info[MaxPerPacketInfo];
+};
+
+struct ndis_packet_private {
+ UINT nr_pages;
+ UINT len;
+ ndis_buffer *buffer_head;
+ ndis_buffer *buffer_tail;
+ struct ndis_packet_pool *pool;
+ UINT count;
+ ULONG flags;
+ BOOLEAN valid_counts;
+ UCHAR packet_flags;
+ USHORT oob_offset;
+};
+
+struct ndis_packet {
+ struct ndis_packet_private private;
+ /* for use by miniport */
+ union {
+ /* for connectionless mininports */
+ struct {
+ UCHAR miniport_reserved[2 * sizeof(void *)];
+ UCHAR wrapper_reserved[2 * sizeof(void *)];
+ } cl_reserved;
+ /* for deserialized miniports */
+ struct {
+ UCHAR miniport_reserved_ex[3 * sizeof(void *)];
+ UCHAR wrapper_reserved_ex[sizeof(void *)];
+ } deserailized_reserved;
+ struct {
+ UCHAR mac_reserved[4 * sizeof(void *)];
+ } mac_reserved;
+ };
+ ULONG_PTR reserved[2];
+ UCHAR protocol_reserved[1];
+};
+
+/* OOB data */
+struct ndis_packet_oob_data {
+ union {
+ ULONGLONG time_to_tx;
+ ULONGLONG time_txed;
+ };
+ ULONGLONG time_rxed;
+ UINT header_size;
+ UINT media_size;
+ void *media;
+ NDIS_STATUS status;
+
+ /* ndiswrapper specific info; extension should be right after
+ * ndis's oob_data */
+ struct ndis_packet_extension ext;
+ union {
+ /* used for tx only */
+ struct {
+ struct sk_buff *tx_skb;
+ union {
+ struct wrap_tx_sg_list wrap_tx_sg_list;
+ struct ndis_sg_list *tx_sg_list;
+ };
+ };
+ /* used for rx only */
+ struct {
+ unsigned char header[ETH_HLEN];
+ unsigned char *look_ahead;
+ UINT look_ahead_size;
+ };
+ };
+};
+
+#define NDIS_PACKET_OOB_DATA(packet) \
+ (struct ndis_packet_oob_data *)(((void *)(packet)) + \
+ (packet)->private.oob_offset)
+
+enum ndis_device_pnp_event {
+ NdisDevicePnPEventQueryRemoved, NdisDevicePnPEventRemoved,
+ NdisDevicePnPEventSurpriseRemoved, NdisDevicePnPEventQueryStopped,
+ NdisDevicePnPEventStopped, NdisDevicePnPEventPowerProfileChanged,
+ NdisDevicePnPEventMaximum
+};
+
+enum ndis_request_type {
+ NdisRequestQueryInformation, NdisRequestSetInformation,
+ NdisRequestQueryStatistics, NdisRequestOpen, NdisRequestClose,
+ NdisRequestSend, NdisRequestTransferData, NdisRequestReset,
+ NdisRequestGeneric1, NdisRequestGeneric2, NdisRequestGeneric3,
+ NdisRequestGeneric4
+};
+
+struct ndis_request {
+ mac_address mac;
+ enum ndis_request_type request_type;
+ union data {
+ struct query_info {
+ UINT oid;
+ void *buf;
+ UINT buf_len;
+ UINT written;
+ UINT needed;
+ } query_info;
+ struct set_info {
+ UINT oid;
+ void *buf;
+ UINT buf_len;
+ UINT written;
+ UINT needed;
+ } set_info;
+ } data;
+};
+
+enum ndis_medium {
+ NdisMedium802_3, NdisMedium802_5, NdisMediumFddi, NdisMediumWan,
+ NdisMediumLocalTalk, NdisMediumDix, NdisMediumArcnetRaw,
+ NdisMediumArcnet878_2, NdisMediumAtm, NdisMediumWirelessWan,
+ NdisMediumIrda, NdisMediumBpc, NdisMediumCoWan,
+ NdisMedium1394, NdisMediumMax
+};
+
+enum ndis_physical_medium {
+ NdisPhysicalMediumUnspecified, NdisPhysicalMediumWirelessLan,
+ NdisPhysicalMediumCableModem, NdisPhysicalMediumPhoneLine,
+ NdisPhysicalMediumPowerLine, NdisPhysicalMediumDSL,
+ NdisPhysicalMediumFibreChannel, NdisPhysicalMedium1394,
+ NdisPhysicalMediumWirelessWan, NdisPhysicalMediumMax
+};
+
+enum ndis_power_state {
+ NdisDeviceStateUnspecified = 0,
+ NdisDeviceStateD0, NdisDeviceStateD1, NdisDeviceStateD2,
+ NdisDeviceStateD3, NdisDeviceStateMaximum
+};
+
+enum ndis_power_profile {
+ NdisPowerProfileBattery, NdisPowerProfileAcOnLine
+};
+
+struct ndis_pm_wakeup_capabilities {
+ enum ndis_power_state min_magic_packet_wakeup;
+ enum ndis_power_state min_pattern_wakeup;
+ enum ndis_power_state min_link_change_wakeup;
+};
+
+#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001
+#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002
+#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004
+
+enum net_pnp_event_code {
+ NetEventSetPower, NetEventQueryPower, NetEventQueryRemoveDevice,
+ NetEventCancelRemoveDevice, NetEventReconfigure, NetEventBindList,
+ NetEventBindsComplete, NetEventPnPCapabilities, NetEventMaximum
+};
+
+struct net_pnp_event {
+ enum net_pnp_event_code code;
+ void *buf;
+ ULONG buf_length;
+ ULONG_PTR ndis_reserved[4];
+ ULONG_PTR transport_reserved[4];
+ ULONG_PTR tdi_reserved[4];
+ ULONG_PTR tdi_client_reserved[4];
+};
+
+struct ndis_pnp_capabilities {
+ ULONG flags;
+ struct ndis_pm_wakeup_capabilities wakeup;
+};
+
+typedef void (*ndis_isr_handler)(BOOLEAN *recognized, BOOLEAN *queue_handler,
+ void *handle) wstdcall;
+typedef void (*ndis_interrupt_handler)(void *ctx) wstdcall;
+
+struct miniport {
+ /* NDIS 3.0 */
+ UCHAR major_version;
+ UCHAR minor_version;
+ USHORT filler;
+ UINT reserved;
+ BOOLEAN (*hangcheck)(void *ctx) wstdcall;
+ void (*disable_interrupt)(void *ctx) wstdcall;
+ void (*enable_interrupt)(void *ctx) wstdcall;
+ void (*mp_halt)(void *ctx) wstdcall;
+ ndis_interrupt_handler handle_interrupt;
+ NDIS_STATUS (*init)(NDIS_STATUS *error_status, UINT *medium_index,
+ enum ndis_medium medium[], UINT medium_array_size,
+ void *handle, void *conf_handle) wstdcall;
+ ndis_isr_handler isr;
+ NDIS_STATUS (*queryinfo)(void *ctx, ndis_oid oid, void *buffer,
+ ULONG buflen, ULONG *written,
+ ULONG *needed) wstdcall;
+ void *reconfig;
+ NDIS_STATUS (*reset)(BOOLEAN *reset_address, void *ctx) wstdcall;
+ NDIS_STATUS (*send)(void *ctx, struct ndis_packet *packet,
+ UINT flags) wstdcall;
+ NDIS_STATUS (*setinfo)(void *ctx, ndis_oid oid, void *buffer,
+ ULONG buflen, ULONG *written,
+ ULONG *needed) wstdcall;
+ NDIS_STATUS (*tx_data)(struct ndis_packet *ndis_packet,
+ UINT *bytes_txed, void *mp_ctx, void *rx_ctx,
+ UINT offset, UINT bytes_to_tx) wstdcall;
+ /* NDIS 4.0 extensions */
+ void (*return_packet)(void *ctx, void *packet) wstdcall;
+ void (*send_packets)(void *ctx, struct ndis_packet **packets,
+ INT nr_of_packets) wstdcall;
+ void (*alloc_complete)(void *handle, void *virt,
+ NDIS_PHY_ADDRESS *phys,
+ ULONG size, void *ctx) wstdcall;
+ /* NDIS 5.0 extensions */
+ NDIS_STATUS (*co_create_vc)(void *ctx, void *vc_handle,
+ void *vc_ctx) wstdcall;
+ NDIS_STATUS (*co_delete_vc)(void *vc_ctx) wstdcall;
+ NDIS_STATUS (*co_activate_vc)(void *vc_ctx, void *call_params) wstdcall;
+ NDIS_STATUS (*co_deactivate_vc)(void *vc_ctx) wstdcall;
+ NDIS_STATUS (*co_send_packets)(void *vc_ctx, void **packets,
+ UINT nr_of_packets) wstdcall;
+ NDIS_STATUS (*co_request)(void *ctx, void *vc_ctx, UINT *req) wstdcall;
+ /* NDIS 5.1 extensions */
+ void (*cancel_send_packets)(void *ctx, void *id) wstdcall;
+ void (*pnp_event_notify)(void *ctx, enum ndis_device_pnp_event event,
+ void *inf_buf, ULONG inf_buf_len) wstdcall;
+ void (*shutdown)(void *ctx) wstdcall;
+ void *reserved1;
+ void *reserved2;
+ void *reserved3;
+ void *reserved4;
+};
+
+struct ndis_spinlock {
+ NT_SPIN_LOCK klock;
+ KIRQL irql;
+};
+
+union ndis_rw_lock_refcount {
+ UCHAR cache_line[16];
+};
+
+struct ndis_rw_lock {
+ union {
+ struct {
+ NT_SPIN_LOCK klock;
+ void *context;
+ };
+ UCHAR reserved[16];
+ };
+ union {
+ union ndis_rw_lock_refcount ref_count[MAXIMUM_PROCESSORS];
+ /* ndiswrapper specific */
+ volatile int count;
+ };
+};
+
+struct lock_state {
+ USHORT state;
+ KIRQL irql;
+};
+
+struct ndis_work_item;
+typedef void (*NDIS_PROC)(struct ndis_work_item *, void *) wstdcall;
+
+struct ndis_work_item {
+ void *ctx;
+ NDIS_PROC func;
+ union {
+ UCHAR reserved[8 * sizeof(void *)];
+ /* ndiswrapper specific */
+ struct nt_list list;
+ };
+};
+
+struct alloc_shared_mem {
+ void *ctx;
+ ULONG size;
+ BOOLEAN cached;
+};
+
+struct ndis_mp_block;
+
+/* this is opaque to drivers, so we can use it as we please */
+struct ndis_mp_interrupt {
+ struct kinterrupt *kinterrupt;
+ NT_SPIN_LOCK lock;
+ union {
+ void *reserved;
+ unsigned int irq;
+ };
+ ndis_isr_handler isr;
+ ndis_interrupt_handler mp_dpc;
+ struct kdpc intr_dpc;
+ struct ndis_mp_block *nmb;
+ UCHAR dpc_count;
+ BOOLEAN enable;
+ struct nt_event dpc_completed_event;
+ BOOLEAN shared;
+ BOOLEAN req_isr;
+};
+
+struct ndis_binary_data {
+ USHORT len;
+ void *buf;
+};
+
+enum ndis_parameter_type {
+ NdisParameterInteger, NdisParameterHexInteger,
+ NdisParameterString, NdisParameterMultiString, NdisParameterBinary,
+};
+
+typedef struct unicode_string NDIS_STRING;
+
+struct ndis_configuration_parameter {
+ enum ndis_parameter_type type;
+ union {
+ ULONG integer;
+ NDIS_STRING string;
+ } data;
+};
+
+struct ndis_driver {
+ struct miniport mp;
+};
+
+/* IDs used to store extensions in driver_object's custom extension */
+#define NDIS_DRIVER_CLIENT_ID 10
+
+struct ndis_wireless_stats {
+ ULONG length;
+ LARGE_INTEGER tx_frag;
+ LARGE_INTEGER tx_multi_frag;
+ LARGE_INTEGER failed;
+ LARGE_INTEGER retry;
+ LARGE_INTEGER multi_retry;
+ LARGE_INTEGER rtss_succ;
+ LARGE_INTEGER rtss_fail;
+ LARGE_INTEGER ack_fail;
+ LARGE_INTEGER frame_dup;
+ LARGE_INTEGER rx_frag;
+ LARGE_INTEGER rx_multi_frag;
+ LARGE_INTEGER fcs_err;
+ LARGE_INTEGER tkip_local_mic_failures;
+ LARGE_INTEGER tkip_icv_errors;
+ LARGE_INTEGER tkip_counter_measures_invoked;
+ LARGE_INTEGER tkip_replays;
+ LARGE_INTEGER ccmp_format_errors;
+ LARGE_INTEGER ccmp_replays;
+ LARGE_INTEGER ccmp_decrypt_errors;
+ LARGE_INTEGER fourway_handshake_failures;
+ LARGE_INTEGER wep_undecryptable_count;
+ LARGE_INTEGER wep_icv_errorcount;
+ LARGE_INTEGER decrypt_success_count;
+ LARGE_INTEGER decrypt_failure_count;
+};
+
+enum ndis_status_type {
+ Ndis802_11StatusType_Authentication,
+ Ndis802_11StatusType_MediaStreamMode,
+ Ndis802_11StatusType_PMKID_CandidateList,
+ Ndis802_11StatusType_RadioState,
+};
+
+struct ndis_status_indication {
+ enum ndis_status_type status_type;
+};
+
+enum ndis_radio_status {
+ Ndis802_11RadioStatusOn, Ndis802_11RadioStatusHardwareOff,
+ Ndis802_11RadioStatusSoftwareOff,
+};
+
+struct ndis_radio_status_indication
+{
+ enum ndis_status_type status_type;
+ enum ndis_radio_status radio_state;
+};
+
+enum ndis_media_state {
+ NdisMediaStateConnected,
+ NdisMediaStateDisconnected,
+};
+
+enum ndis_media_stream_mode {
+ Ndis802_11MediaStreamOff, Ndis802_11MediaStreamOn
+};
+
+enum wrapper_work {
+ LINK_STATUS_OFF, LINK_STATUS_ON, SET_MULTICAST_LIST, COLLECT_IW_STATS,
+ HANGCHECK, NETIF_WAKEQ,
+};
+
+struct encr_info {
+ struct encr_key {
+ ULONG length;
+ UCHAR key[NDIS_ENCODING_TOKEN_MAX];
+ } keys[MAX_ENCR_KEYS];
+ unsigned short tx_key_index;
+};
+
+struct ndis_essid {
+ ULONG length;
+ UCHAR essid[NDIS_ESSID_MAX_SIZE];
+};
+
+enum ndis_infrastructure_mode {
+ Ndis802_11IBSS, Ndis802_11Infrastructure, Ndis802_11AutoUnknown,
+ Ndis802_11InfrastructureMax
+};
+
+enum authentication_mode {
+ Ndis802_11AuthModeOpen, Ndis802_11AuthModeShared,
+ Ndis802_11AuthModeAutoSwitch, Ndis802_11AuthModeWPA,
+ Ndis802_11AuthModeWPAPSK, Ndis802_11AuthModeWPANone,
+ Ndis802_11AuthModeWPA2, Ndis802_11AuthModeWPA2PSK,
+ Ndis802_11AuthModeMax
+};
+
+enum encryption_status {
+ Ndis802_11WEPEnabled,
+ Ndis802_11Encryption1Enabled = Ndis802_11WEPEnabled,
+ Ndis802_11WEPDisabled,
+ Ndis802_11EncryptionDisabled = Ndis802_11WEPDisabled,
+ Ndis802_11WEPKeyAbsent,
+ Ndis802_11Encryption1KeyAbsent = Ndis802_11WEPKeyAbsent,
+ Ndis802_11WEPNotSupported,
+ Ndis802_11EncryptionNotSupported = Ndis802_11WEPNotSupported,
+ Ndis802_11Encryption2Enabled, Ndis802_11Encryption2KeyAbsent,
+ Ndis802_11Encryption3Enabled, Ndis802_11Encryption3KeyAbsent
+};
+
+struct ndis_auth_encr_pair {
+ enum authentication_mode auth_mode;
+ enum encryption_status encr_mode;
+};
+
+struct ndis_capability {
+ ULONG length;
+ ULONG version;
+ ULONG num_PMKIDs;
+ ULONG num_auth_encr_pair;
+ struct ndis_auth_encr_pair auth_encr_pair[1];
+};
+
+struct ndis_guid {
+ struct guid guid;
+ union {
+ ndis_oid oid;
+ NDIS_STATUS status;
+ };
+ ULONG size;
+ ULONG flags;
+};
+
+struct ndis_timer {
+ struct nt_timer nt_timer;
+ struct kdpc kdpc;
+};
+
+struct ndis_mp_timer {
+ struct nt_timer nt_timer;
+ struct kdpc kdpc;
+ DPC func;
+ void *ctx;
+ struct ndis_mp_block *nmb;
+ struct ndis_mp_timer *next;
+};
+
+typedef struct cm_partial_resource_list NDIS_RESOURCE_LIST;
+
+struct ndis_event {
+ struct nt_event nt_event;
+};
+
+struct ndis_bind_paths {
+ UINT number;
+ struct unicode_string paths[1];
+};
+
+struct ndis_reference {
+ NT_SPIN_LOCK lock;
+ USHORT ref_count;
+ BOOLEAN closing;
+};
+
+struct ndis_filterdbs {
+ union {
+ void *eth_db;
+ void *null_db;
+ };
+ void *tr_db;
+ void *fddi_db;
+ void *arc_db;
+};
+
+enum ndis_interface_type {
+ NdisInterfaceInternal, NdisInterfaceIsa, NdisInterfaceEisa,
+ NdisInterfaceMca, NdisInterfaceTurboChannel, NdisInterfacePci,
+ NdisInterfacePcMcia,
+};
+
+struct auth_encr_capa {
+ unsigned long auth;
+ unsigned long encr;
+};
+
+struct ndis_pmkid_candidate {
+ mac_address bssid;
+ DWORD flags;
+};
+
+struct ndis_pmkid_candidate_list {
+ ULONG version;
+ ULONG num_candidates;
+ struct ndis_pmkid_candidate candidates[1];
+};
+
+/*
+ * This struct contains function pointers that the drivers references
+ * directly via macros, so it's important that they are at the correct
+ * position.
+ */
+struct ndis_mp_block {
+ void *signature;
+ struct ndis_mp_block *next;
+ struct driver_object *drv_obj;
+ void *mp_ctx;
+ struct unicode_string name;
+ struct ndis_bind_paths *bindpaths;
+ void *openqueue;
+ struct ndis_reference reference;
+ void *device_ctx;
+ UCHAR padding;
+ UCHAR lock_acquired;
+ UCHAR pmode_opens;
+ UCHAR assigned_cpu;
+ NT_SPIN_LOCK lock;
+ enum ndis_request_type *mediarequest;
+ struct ndis_mp_interrupt *interrupt;
+ ULONG flags;
+ ULONG pnp_flags;
+ struct nt_list packet_list;
+ struct ndis_packet *first_pending_tx_packet;
+ struct ndis_packet *return_packet_queue;
+ ULONG request_buffer;
+ void *set_mcast_buffer;
+ struct ndis_mp_block *primary_mp;
+ void *wrapper_ctx;
+ void *bus_data_ctx;
+ ULONG pnp_capa;
+ void *resources;
+ struct ndis_timer wakeup_dpc_timer;
+ struct unicode_string basename;
+ struct unicode_string symlink_name;
+ ULONG ndis_hangcheck_interval;
+ USHORT hanghcheck_ticks;
+ USHORT hangcheck_tick;
+ NDIS_STATUS ndis_reset_status;
+ void *resetopen;
+ struct ndis_filterdbs filterdbs;
+ void *rx_packet;
+ void *send_complete;
+ void *send_resource_avail;
+ void *reset_complete;
+
+ enum ndis_medium media_type;
+ ULONG bus_number;
+ enum ndis_interface_type bus_type;
+ enum ndis_interface_type adapter_type;
+ struct device_object *fdo;
+ struct device_object *pdo;
+ struct device_object *next_device;
+ void *mapreg;
+ void *call_mgraflist;
+ void *mp_thread;
+ void *setinfobuf;
+ USHORT setinfo_buf_len;
+ USHORT max_send_pkts;
+ NDIS_STATUS fake_status;
+ void *lock_handler;
+ struct unicode_string *adapter_instance_name;
+ void *timer_queue;
+ UINT mac_options;
+ void *pending_req;
+ UINT max_long_addrs;
+ UINT max_short_addrs;
+ UINT cur_lookahead;
+ UINT max_lookahead;
+
+ ndis_interrupt_handler irq_bh;
+ void *disable_intr;
+ void *enable_intr;
+ void *send_pkts;
+ void *deferred_send;
+ void *eth_rx_indicate;
+ void *tr_rx_indicate;
+ void *fddi_rx_indicate;
+ void *eth_rx_complete;
+ void *tr_rx_complete;
+ void *fddi_rx_complete;
+
+ void *status;
+ void *status_complete;
+ void *td_complete;
+
+ void *queryinfo_complete;
+ void *setinfo_complete;
+ void *wan_tx_complete;
+ void *wan_rx;
+ void *wan_rx_complete;
+ /* ndiswrapper specific */
+ struct ndis_device *wnd;
+};
+
+struct ndis_device {
+ struct ndis_mp_block *nmb;
+ struct wrap_device *wd;
+ struct net_device *net_dev;
+ void *shutdown_ctx;
+ struct ndis_mp_interrupt *mp_interrupt;
+ struct kdpc irq_kdpc;
+ unsigned long mem_start;
+ unsigned long mem_end;
+
+ struct net_device_stats net_stats;
+ struct iw_statistics iw_stats;
+ BOOLEAN iw_stats_enabled;
+ struct ndis_wireless_stats ndis_stats;
+
+ work_struct_t tx_work;
+ struct ndis_packet *tx_ring[TX_RING_SIZE];
+ u8 tx_ring_start;
+ u8 tx_ring_end;
+ u8 is_tx_ring_full;
+ u8 tx_ok;
+ spinlock_t tx_ring_lock;
+ struct semaphore tx_ring_mutex;
+ unsigned int max_tx_packets;
+ struct semaphore ndis_req_mutex;
+ struct task_struct *ndis_req_task;
+ int ndis_req_done;
+ NDIS_STATUS ndis_req_status;
+ ULONG packet_filter;
+
+ ULONG sg_dma_size;
+ ULONG dma_map_count;
+ dma_addr_t *dma_map_addr;
+
+ int hangcheck_interval;
+ struct timer_list hangcheck_timer;
+ int iw_stats_interval;
+ struct timer_list iw_stats_timer;
+ unsigned long scan_timestamp;
+ struct encr_info encr_info;
+ char nick[IW_ESSID_MAX_SIZE + 1];
+ struct ndis_essid essid;
+ struct auth_encr_capa capa;
+ enum ndis_infrastructure_mode infrastructure_mode;
+ int max_pmkids;
+ int num_pmkids;
+ struct ndis_pmkid *pmkids;
+ mac_address mac;
+ struct proc_dir_entry *procfs_iface;
+
+ work_struct_t ndis_work;
+ unsigned long ndis_pending_work;
+ UINT attributes;
+ int iw_auth_wpa_version;
+ int iw_auth_cipher_pairwise;
+ int iw_auth_cipher_group;
+ int iw_auth_key_mgmt;
+ int iw_auth_80211_alg;
+ struct ndis_packet_pool *tx_packet_pool;
+ struct ndis_buffer_pool *tx_buffer_pool;
+ int multicast_size;
+ struct v4_checksum rx_csum;
+ struct v4_checksum tx_csum;
+ enum ndis_physical_medium physical_medium;
+ ULONG ndis_wolopts;
+ struct nt_slist wrap_timer_slist;
+ int drv_ndis_version;
+ struct ndis_pnp_capabilities pnp_capa;
+ char netdev_name[IFNAMSIZ];
+};
+
+BOOLEAN ndis_isr(struct kinterrupt *kinterrupt, void *ctx) wstdcall;
+
+int ndis_init(void);
+void ndis_exit(void);
+int ndis_init_device(struct ndis_device *wnd);
+void ndis_exit_device(struct ndis_device *wnd);
+
+int wrap_procfs_add_ndis_device(struct ndis_device *wnd);
+void wrap_procfs_remove_ndis_device(struct ndis_device *wnd);
+
+void NdisAllocatePacketPoolEx(NDIS_STATUS *status,
+ struct ndis_packet_pool **pool_handle,
+ UINT num_descr, UINT overflowsize,
+ UINT proto_rsvd_length) wstdcall;
+void NdisFreePacketPool(struct ndis_packet_pool *pool) wstdcall;
+void NdisAllocatePacket(NDIS_STATUS *status, struct ndis_packet **packet,
+ struct ndis_packet_pool *pool) wstdcall;
+void NdisFreePacket(struct ndis_packet *descr) wstdcall;
+void NdisAllocateBufferPool(NDIS_STATUS *status,
+ struct ndis_buffer_pool **pool_handle,
+ UINT num_descr) wstdcall;
+void NdisFreeBufferPool(struct ndis_buffer_pool *pool) wstdcall;
+void NdisAllocateBuffer(NDIS_STATUS *status, ndis_buffer **buffer,
+ struct ndis_buffer_pool *pool, void *virt,
+ UINT length) wstdcall;
+void NdisFreeBuffer(ndis_buffer *descr) wstdcall;
+void NdisMIndicateReceivePacket(struct ndis_mp_block *nmb,
+ struct ndis_packet **packets,
+ UINT nr_packets) wstdcall;
+void NdisMSendComplete(struct ndis_mp_block *nmb, struct ndis_packet *packet,
+ NDIS_STATUS status) wstdcall;
+void NdisMSendResourcesAvailable(struct ndis_mp_block *nmb) wstdcall;
+void NdisMIndicateStatus(struct ndis_mp_block *nmb,
+ NDIS_STATUS status, void *buf, UINT len) wstdcall;
+void NdisMIndicateStatusComplete(struct ndis_mp_block *nmb) wstdcall;
+void NdisMQueryInformationComplete(struct ndis_mp_block *nmb,
+ NDIS_STATUS status) wstdcall;
+void NdisMSetInformationComplete(struct ndis_mp_block *nmb,
+ NDIS_STATUS status) wstdcall;
+void NdisMResetComplete(struct ndis_mp_block *nmb, NDIS_STATUS status,
+ BOOLEAN address_reset) wstdcall;
+ULONG NDIS_BUFFER_TO_SPAN_PAGES(ndis_buffer *buffer) wstdcall;
+BOOLEAN NdisWaitEvent(struct ndis_event *event, UINT timeout) wstdcall;
+void NdisSetEvent(struct ndis_event *event) wstdcall;
+void NdisMDeregisterInterrupt(struct ndis_mp_interrupt *mp_interrupt) wstdcall;
+void EthRxIndicateHandler(struct ndis_mp_block *nmb, void *rx_ctx,
+ char *header1, char *header, UINT header_size,
+ void *look_ahead, UINT look_ahead_size,
+ UINT packet_size) wstdcall;
+void EthRxComplete(struct ndis_mp_block *nmb) wstdcall;
+void NdisMTransferDataComplete(struct ndis_mp_block *nmb,
+ struct ndis_packet *packet, NDIS_STATUS status,
+ UINT bytes_txed) wstdcall;
+void NdisWriteConfiguration(NDIS_STATUS *status, struct ndis_mp_block *nmb,
+ struct unicode_string *key,
+ struct ndis_configuration_parameter *param) wstdcall;
+void NdisReadConfiguration(NDIS_STATUS *status,
+ struct ndis_configuration_parameter **param,
+ struct ndis_mp_block *nmb,
+ struct unicode_string *key,
+ enum ndis_parameter_type type) wstdcall;
+
+/* Required OIDs */
+#define OID_GEN_SUPPORTED_LIST 0x00010101
+#define OID_GEN_HARDWARE_STATUS 0x00010102
+#define OID_GEN_MEDIA_SUPPORTED 0x00010103
+#define OID_GEN_MEDIA_IN_USE 0x00010104
+#define OID_GEN_MAXIMUM_LOOKAHEAD 0x00010105
+#define OID_GEN_MAXIMUM_FRAME_SIZE 0x00010106
+#define OID_GEN_LINK_SPEED 0x00010107
+#define OID_GEN_TRANSMIT_BUFFER_SPACE 0x00010108
+#define OID_GEN_RECEIVE_BUFFER_SPACE 0x00010109
+#define OID_GEN_TRANSMIT_BLOCK_SIZE 0x0001010A
+#define OID_GEN_RECEIVE_BLOCK_SIZE 0x0001010B
+#define OID_GEN_VENDOR_ID 0x0001010C
+#define OID_GEN_VENDOR_DESCRIPTION 0x0001010D
+#define OID_GEN_CURRENT_PACKET_FILTER 0x0001010E
+#define OID_GEN_CURRENT_LOOKAHEAD 0x0001010F
+#define OID_GEN_DRIVER_VERSION 0x00010110
+#define OID_GEN_MAXIMUM_TOTAL_SIZE 0x00010111
+#define OID_GEN_PROTOCOL_OPTIONS 0x00010112
+#define OID_GEN_MAC_OPTIONS 0x00010113
+#define OID_GEN_MEDIA_CONNECT_STATUS 0x00010114
+#define OID_GEN_MAXIMUM_SEND_PACKETS 0x00010115
+#define OID_GEN_VENDOR_DRIVER_VERSION 0x00010116
+#define OID_GEN_SUPPORTED_GUIDS 0x00010117
+#define OID_GEN_NETWORK_LAYER_ADDRESSES 0x00010118 /* Set only */
+#define OID_GEN_TRANSPORT_HEADER_OFFSET 0x00010119 /* Set only */
+#define OID_GEN_MACHINE_NAME 0x0001021A
+#define OID_GEN_RNDIS_CONFIG_PARAMETER 0x0001021B /* Set only */
+#define OID_GEN_VLAN_ID 0x0001021C
+
+/* Optional OIDs. */
+#define OID_GEN_MEDIA_CAPABILITIES 0x00010201
+#define OID_GEN_PHYSICAL_MEDIUM 0x00010202
+
+/* Required statistics OIDs. */
+#define OID_GEN_XMIT_OK 0x00020101
+#define OID_GEN_RCV_OK 0x00020102
+#define OID_GEN_XMIT_ERROR 0x00020103
+#define OID_GEN_RCV_ERROR 0x00020104
+#define OID_GEN_RCV_NO_BUFFER 0x00020105
+
+/* Optional OID statistics */
+#define OID_GEN_DIRECTED_BYTES_XMIT 0x00020201
+#define OID_GEN_DIRECTED_FRAMES_XMIT 0x00020202
+#define OID_GEN_MULTICAST_BYTES_XMIT 0x00020203
+#define OID_GEN_MULTICAST_FRAMES_XMIT 0x00020204
+#define OID_GEN_BROADCAST_BYTES_XMIT 0x00020205
+#define OID_GEN_BROADCAST_FRAMES_XMIT 0x00020206
+#define OID_GEN_DIRECTED_BYTES_RCV 0x00020207
+#define OID_GEN_DIRECTED_FRAMES_RCV 0x00020208
+#define OID_GEN_MULTICAST_BYTES_RCV 0x00020209
+#define OID_GEN_MULTICAST_FRAMES_RCV 0x0002020A
+#define OID_GEN_BROADCAST_BYTES_RCV 0x0002020B
+#define OID_GEN_BROADCAST_FRAMES_RCV 0x0002020C
+#define OID_GEN_RCV_CRC_ERROR 0x0002020D
+#define OID_GEN_TRANSMIT_QUEUE_LENGTH 0x0002020E
+#define OID_GEN_GET_TIME_CAPS 0x0002020F
+#define OID_GEN_GET_NETCARD_TIME 0x00020210
+#define OID_GEN_NETCARD_LOAD 0x00020211
+#define OID_GEN_DEVICE_PROFILE 0x00020212
+
+/* 802.3 (ethernet) OIDs */
+#define OID_802_3_PERMANENT_ADDRESS 0x01010101
+#define OID_802_3_CURRENT_ADDRESS 0x01010102
+#define OID_802_3_MULTICAST_LIST 0x01010103
+#define OID_802_3_MAXIMUM_LIST_SIZE 0x01010104
+#define OID_802_3_MAC_OPTIONS 0x01010105
+#define NDIS_802_3_MAC_OPTION_PRIORITY 0x00000001
+#define OID_802_3_RCV_ERROR_ALIGNMENT 0x01020101
+#define OID_802_3_XMIT_ONE_COLLISION 0x01020102
+#define OID_802_3_XMIT_MORE_COLLISIONS 0x01020103
+#define OID_802_3_XMIT_DEFERRED 0x01020201
+#define OID_802_3_XMIT_MAX_COLLISIONS 0x01020202
+#define OID_802_3_RCV_OVERRUN 0x01020203
+#define OID_802_3_XMIT_UNDERRUN 0x01020204
+#define OID_802_3_XMIT_HEARTBEAT_FAILURE 0x01020205
+#define OID_802_3_XMIT_TIMES_CRS_LOST 0x01020206
+#define OID_802_3_XMIT_LATE_COLLISIONS 0x01020207
+
+/* PnP and power management OIDs */
+#define OID_PNP_CAPABILITIES 0xFD010100
+#define OID_PNP_SET_POWER 0xFD010101
+#define OID_PNP_QUERY_POWER 0xFD010102
+#define OID_PNP_ADD_WAKE_UP_PATTERN 0xFD010103
+#define OID_PNP_REMOVE_WAKE_UP_PATTERN 0xFD010104
+#define OID_PNP_WAKE_UP_PATTERN_LIST 0xFD010105
+#define OID_PNP_ENABLE_WAKE_UP 0xFD010106
+
+/* PnP/PM Statistics (Optional). */
+#define OID_PNP_WAKE_UP_OK 0xFD020200
+#define OID_PNP_WAKE_UP_ERROR 0xFD020201
+
+/* The following bits are defined for OID_PNP_ENABLE_WAKE_UP */
+#define NDIS_PNP_WAKE_UP_MAGIC_PACKET 0x00000001
+#define NDIS_PNP_WAKE_UP_PATTERN_MATCH 0x00000002
+#define NDIS_PNP_WAKE_UP_LINK_CHANGE 0x00000004
+
+/* 802.11 OIDs */
+#define OID_802_11_BSSID 0x0D010101
+#define OID_802_11_SSID 0x0D010102
+#define OID_802_11_NETWORK_TYPES_SUPPORTED 0x0D010203
+#define OID_802_11_NETWORK_TYPE_IN_USE 0x0D010204
+#define OID_802_11_TX_POWER_LEVEL 0x0D010205
+#define OID_802_11_RSSI 0x0D010206
+#define OID_802_11_RSSI_TRIGGER 0x0D010207
+#define OID_802_11_INFRASTRUCTURE_MODE 0x0D010108
+#define OID_802_11_FRAGMENTATION_THRESHOLD 0x0D010209
+#define OID_802_11_RTS_THRESHOLD 0x0D01020A
+#define OID_802_11_NUMBER_OF_ANTENNAS 0x0D01020B
+#define OID_802_11_RX_ANTENNA_SELECTED 0x0D01020C
+#define OID_802_11_TX_ANTENNA_SELECTED 0x0D01020D
+#define OID_802_11_SUPPORTED_RATES 0x0D01020E
+#define OID_802_11_DESIRED_RATES 0x0D010210
+#define OID_802_11_CONFIGURATION 0x0D010211
+#define OID_802_11_STATISTICS 0x0D020212
+#define OID_802_11_ADD_WEP 0x0D010113
+#define OID_802_11_REMOVE_WEP 0x0D010114
+#define OID_802_11_DISASSOCIATE 0x0D010115
+#define OID_802_11_POWER_MODE 0x0D010216
+#define OID_802_11_BSSID_LIST 0x0D010217
+#define OID_802_11_AUTHENTICATION_MODE 0x0D010118
+#define OID_802_11_PRIVACY_FILTER 0x0D010119
+#define OID_802_11_BSSID_LIST_SCAN 0x0D01011A
+#define OID_802_11_WEP_STATUS 0x0D01011B
+#define OID_802_11_ENCRYPTION_STATUS OID_802_11_WEP_STATUS
+#define OID_802_11_RELOAD_DEFAULTS 0x0D01011C
+#define OID_802_11_ADD_KEY 0x0D01011D
+#define OID_802_11_REMOVE_KEY 0x0D01011E
+#define OID_802_11_ASSOCIATION_INFORMATION 0x0D01011F
+#define OID_802_11_TEST 0x0D010120
+#define OID_802_11_MEDIA_STREAM_MODE 0x0D010121
+#define OID_802_11_CAPABILITY 0x0D010122
+#define OID_802_11_PMKID 0x0D010123
+
+#define NDIS_STATUS_SUCCESS 0
+#define NDIS_STATUS_PENDING 0x00000103
+#define NDIS_STATUS_NOT_RECOGNIZED 0x00010001
+#define NDIS_STATUS_NOT_COPIED 0x00010002
+#define NDIS_STATUS_NOT_ACCEPTED 0x00010003
+#define NDIS_STATUS_CALL_ACTIVE 0x00010007
+#define NDIS_STATUS_ONLINE 0x40010003
+#define NDIS_STATUS_RESET_START 0x40010004
+#define NDIS_STATUS_RESET_END 0x40010005
+#define NDIS_STATUS_RING_STATUS 0x40010006
+#define NDIS_STATUS_CLOSED 0x40010007
+#define NDIS_STATUS_WAN_LINE_UP 0x40010008
+#define NDIS_STATUS_WAN_LINE_DOWN 0x40010009
+#define NDIS_STATUS_WAN_FRAGMENT 0x4001000A
+#define NDIS_STATUS_MEDIA_CONNECT 0x4001000B
+#define NDIS_STATUS_MEDIA_DISCONNECT 0x4001000C
+#define NDIS_STATUS_HARDWARE_LINE_UP 0x4001000D
+#define NDIS_STATUS_HARDWARE_LINE_DOWN 0x4001000E
+#define NDIS_STATUS_INTERFACE_UP 0x4001000F
+#define NDIS_STATUS_INTERFACE_DOWN 0x40010010
+#define NDIS_STATUS_MEDIA_BUSY 0x40010011
+#define NDIS_STATUS_MEDIA_SPECIFIC_INDICATION 0x40010012
+#define NDIS_STATUS_WW_INDICATION NDIS_STATUS_MEDIA_SPECIFIC_INDICATION
+#define NDIS_STATUS_LINK_SPEED_CHANGE 0x40010013
+#define NDIS_STATUS_WAN_GET_STATS 0x40010014
+#define NDIS_STATUS_WAN_CO_FRAGMENT 0x40010015
+#define NDIS_STATUS_WAN_CO_LINKPARAMS 0x40010016
+#define NDIS_STATUS_NOT_RESETTABLE 0x80010001
+#define NDIS_STATUS_SOFT_ERRORS 0x80010003
+#define NDIS_STATUS_HARD_ERRORS 0x80010004
+#define NDIS_STATUS_BUFFER_OVERFLOW 0x80000005
+#define NDIS_STATUS_FAILURE 0xC0000001
+#define NDIS_STATUS_INVALID_PARAMETER 0xC000000D
+#define NDIS_STATUS_RESOURCES 0xC000009A
+#define NDIS_STATUS_CLOSING 0xC0010002
+#define NDIS_STATUS_BAD_VERSION 0xC0010004
+#define NDIS_STATUS_BAD_CHARACTERISTICS 0xC0010005
+#define NDIS_STATUS_ADAPTER_NOT_FOUND 0xC0010006
+#define NDIS_STATUS_OPEN_FAILED 0xC0010007
+#define NDIS_STATUS_DEVICE_FAILED 0xC0010008
+#define NDIS_STATUS_MULTICAST_FULL 0xC0010009
+#define NDIS_STATUS_MULTICAST_EXISTS 0xC001000A
+#define NDIS_STATUS_MULTICAST_NOT_FOUND 0xC001000B
+#define NDIS_STATUS_REQUEST_ABORTED 0xC001000C
+#define NDIS_STATUS_RESET_IN_PROGRESS 0xC001000D
+#define NDIS_STATUS_CLOSING_INDICATING 0xC001000E
+#define NDIS_STATUS_BAD_VERSION 0xC0010004
+#define NDIS_STATUS_NOT_SUPPORTED 0xC00000BB
+#define NDIS_STATUS_INVALID_PACKET 0xC001000F
+#define NDIS_STATUS_OPEN_LIST_FULL 0xC0010010
+#define NDIS_STATUS_ADAPTER_NOT_READY 0xC0010011
+#define NDIS_STATUS_ADAPTER_NOT_OPEN 0xC0010012
+#define NDIS_STATUS_NOT_INDICATING 0xC0010013
+#define NDIS_STATUS_INVALID_LENGTH 0xC0010014
+#define NDIS_STATUS_INVALID_DATA 0xC0010015
+#define NDIS_STATUS_BUFFER_TOO_SHORT 0xC0010016
+#define NDIS_STATUS_INVALID_OID 0xC0010017
+#define NDIS_STATUS_ADAPTER_REMOVED 0xC0010018
+#define NDIS_STATUS_UNSUPPORTED_MEDIA 0xC0010019
+#define NDIS_STATUS_GROUP_ADDRESS_IN_USE 0xC001001A
+#define NDIS_STATUS_FILE_NOT_FOUND 0xC001001B
+#define NDIS_STATUS_ERROR_READING_FILE 0xC001001C
+#define NDIS_STATUS_ALREADY_MAPPED 0xC001001D
+#define NDIS_STATUS_RESOURCE_CONFLICT 0xC001001E
+#define NDIS_STATUS_NO_CABLE 0xC001001F
+#define NDIS_STATUS_INVALID_SAP 0xC0010020
+#define NDIS_STATUS_SAP_IN_USE 0xC0010021
+#define NDIS_STATUS_INVALID_ADDRESS 0xC0010022
+#define NDIS_STATUS_VC_NOT_ACTIVATED 0xC0010023
+#define NDIS_STATUS_DEST_OUT_OF_ORDER 0xC0010024
+#define NDIS_STATUS_VC_NOT_AVAILABLE 0xC0010025
+#define NDIS_STATUS_CELLRATE_NOT_AVAILABLE 0xC0010026
+#define NDIS_STATUS_INCOMPATABLE_QOS 0xC0010027
+#define NDIS_STATUS_AAL_PARAMS_UNSUPPORTED 0xC0010028
+#define NDIS_STATUS_NO_ROUTE_TO_DESTINATION 0xC0010029
+#define NDIS_STATUS_TOKEN_RING_OPEN_ERROR 0xC0011000
+#define NDIS_STATUS_INVALID_DEVICE_REQUEST 0xC0000010
+#define NDIS_STATUS_NETWORK_UNREACHABLE 0xC000023C
+
+/* Event codes */
+
+#define EVENT_NDIS_RESOURCE_CONFLICT 0xC0001388
+#define EVENT_NDIS_OUT_OF_RESOURCE 0xC0001389
+#define EVENT_NDIS_HARDWARE_FAILURE 0xC000138A
+#define EVENT_NDIS_ADAPTER_NOT_FOUND 0xC000138B
+#define EVENT_NDIS_INTERRUPT_CONNECT 0xC000138C
+#define EVENT_NDIS_DRIVER_FAILURE 0xC000138D
+#define EVENT_NDIS_BAD_VERSION 0xC000138E
+#define EVENT_NDIS_TIMEOUT 0x8000138F
+#define EVENT_NDIS_NETWORK_ADDRESS 0xC0001390
+#define EVENT_NDIS_UNSUPPORTED_CONFIGURATION 0xC0001391
+#define EVENT_NDIS_INVALID_VALUE_FROM_ADAPTER 0xC0001392
+#define EVENT_NDIS_MISSING_CONFIGURATION_PARAMETER 0xC0001393
+#define EVENT_NDIS_BAD_IO_BASE_ADDRESS 0xC0001394
+#define EVENT_NDIS_RECEIVE_SPACE_SMALL 0x40001395
+#define EVENT_NDIS_ADAPTER_DISABLED 0x80001396
+#define EVENT_NDIS_IO_PORT_CONFLICT 0x80001397
+#define EVENT_NDIS_PORT_OR_DMA_CONFLICT 0x80001398
+#define EVENT_NDIS_MEMORY_CONFLICT 0x80001399
+#define EVENT_NDIS_INTERRUPT_CONFLICT 0x8000139A
+#define EVENT_NDIS_DMA_CONFLICT 0x8000139B
+#define EVENT_NDIS_INVALID_DOWNLOAD_FILE_ERROR 0xC000139C
+#define EVENT_NDIS_MAXRECEIVES_ERROR 0x8000139D
+#define EVENT_NDIS_MAXTRANSMITS_ERROR 0x8000139E
+#define EVENT_NDIS_MAXFRAMESIZE_ERROR 0x8000139F
+#define EVENT_NDIS_MAXINTERNALBUFS_ERROR 0x800013A0
+#define EVENT_NDIS_MAXMULTICAST_ERROR 0x800013A1
+#define EVENT_NDIS_PRODUCTID_ERROR 0x800013A2
+#define EVENT_NDIS_LOBE_FAILUE_ERROR 0x800013A3
+#define EVENT_NDIS_SIGNAL_LOSS_ERROR 0x800013A4
+#define EVENT_NDIS_REMOVE_RECEIVED_ERROR 0x800013A5
+#define EVENT_NDIS_TOKEN_RING_CORRECTION 0x400013A6
+#define EVENT_NDIS_ADAPTER_CHECK_ERROR 0xC00013A7
+#define EVENT_NDIS_RESET_FAILURE_ERROR 0x800013A8
+#define EVENT_NDIS_CABLE_DISCONNECTED_ERROR 0x800013A9
+#define EVENT_NDIS_RESET_FAILURE_CORRECTION 0x800013AA
+
+/* packet filter bits used by NDIS_OID_PACKET_FILTER */
+#define NDIS_PACKET_TYPE_DIRECTED 0x00000001
+#define NDIS_PACKET_TYPE_MULTICAST 0x00000002
+#define NDIS_PACKET_TYPE_ALL_MULTICAST 0x00000004
+#define NDIS_PACKET_TYPE_BROADCAST 0x00000008
+#define NDIS_PACKET_TYPE_SOURCE_ROUTING 0x00000010
+#define NDIS_PACKET_TYPE_PROMISCUOUS 0x00000020
+#define NDIS_PACKET_TYPE_SMT 0x00000040
+#define NDIS_PACKET_TYPE_ALL_LOCAL 0x00000080
+#define NDIS_PACKET_TYPE_GROUP 0x00001000
+#define NDIS_PACKET_TYPE_ALL_FUNCTIONAL 0x00002000
+#define NDIS_PACKET_TYPE_FUNCTIONAL 0x00004000
+#define NDIS_PACKET_TYPE_MAC_FRAME 0x00008000
+
+/* memory allocation flags */
+#define NDIS_MEMORY_CONTIGUOUS 0x00000001
+#define NDIS_MEMORY_NONCACHED 0x00000002
+
+/* Atrribute flags to NdisMSetAtrributesEx */
+#define NDIS_ATTRIBUTE_IGNORE_PACKET_TIMEOUT 0x00000001
+#define NDIS_ATTRIBUTE_IGNORE_REQUEST_TIMEOUT 0x00000002
+#define NDIS_ATTRIBUTE_IGNORE_TOKEN_RING_ERRORS 0x00000004
+#define NDIS_ATTRIBUTE_BUS_MASTER 0x00000008
+#define NDIS_ATTRIBUTE_INTERMEDIATE_DRIVER 0x00000010
+#define NDIS_ATTRIBUTE_DESERIALIZE 0x00000020
+#define NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND 0x00000040
+#define NDIS_ATTRIBUTE_SURPRISE_REMOVE_OK 0x00000080
+#define NDIS_ATTRIBUTE_NOT_CO_NDIS 0x00000100
+#define NDIS_ATTRIBUTE_USES_SAFE_BUFFER_APIS 0x00000200
+
+#define OID_TCP_TASK_OFFLOAD 0xFC010201
+
+#define NDIS_MAC_OPTION_COPY_LOOKAHEAD_DATA 0x00000001
+#define NDIS_MAC_OPTION_RECEIVE_SERIALIZED 0x00000002
+#define NDIS_MAC_OPTION_TRANSFERS_NOT_PEND 0x00000004
+#define NDIS_MAC_OPTION_NO_LOOPBACK 0x00000008
+#define NDIS_MAC_OPTION_FULL_DUPLEX 0x00000010
+#define NDIS_MAC_OPTION_EOTX_INDICATION 0x00000020
+#define NDIS_MAC_OPTION_8021P_PRIORITY 0x00000040
+#define NDIS_MAC_OPTION_SUPPORTS_MAC_ADDRESS_OVERWRITE 0x00000080
+#define NDIS_MAC_OPTION_RECEIVE_AT_DPC 0x00000100
+#define NDIS_MAC_OPTION_8021Q_VLAN 0x00000200
+#define NDIS_MAC_OPTION_RESERVED 0x80000000
+
+#define deserialized_driver(wnd) (wnd->attributes & NDIS_ATTRIBUTE_DESERIALIZE)
+
+static inline void serialize_lock(struct ndis_device *wnd)
+{
+ nt_spin_lock(&wnd->nmb->lock);
+}
+
+static inline void serialize_unlock(struct ndis_device *wnd)
+{
+ nt_spin_unlock(&wnd->nmb->lock);
+}
+
+static inline KIRQL serialize_lock_irql(struct ndis_device *wnd)
+{
+ if (deserialized_driver(wnd))
+ return raise_irql(DISPATCH_LEVEL);
+ else
+ return nt_spin_lock_irql(&wnd->nmb->lock, DISPATCH_LEVEL);
+}
+
+static inline void serialize_unlock_irql(struct ndis_device *wnd,
+ KIRQL irql)
+{
+ if (deserialized_driver(wnd))
+ lower_irql(irql);
+ else
+ nt_spin_unlock_irql(&wnd->nmb->lock, irql);
+}
+
+static inline void if_serialize_lock(struct ndis_device *wnd)
+{
+ if (!deserialized_driver(wnd))
+ nt_spin_lock(&wnd->nmb->lock);
+}
+
+static inline void if_serialize_unlock(struct ndis_device *wnd)
+{
+ if (!deserialized_driver(wnd))
+ nt_spin_unlock(&wnd->nmb->lock);
+}
+
+#endif /* NDIS_H */
diff --git a/ubuntu/ndiswrapper/ndiswrapper.h b/ubuntu/ndiswrapper/ndiswrapper.h
new file mode 100644
index 00000000000..a7187e8e07b
--- /dev/null
+++ b/ubuntu/ndiswrapper/ndiswrapper.h
@@ -0,0 +1,219 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef _NDISWRAPPER_H_
+#define _NDISWRAPPER_H_
+
+#define DRIVER_VERSION "1.56"
+#define UTILS_VERSION "1.9"
+
+#define DRIVER_NAME "ndiswrapper"
+#define DRIVER_CONFIG_DIR "/etc/ndiswrapper"
+
+#define SSID_MAX_WPA_IE_LEN 40
+#define NDIS_ESSID_MAX_SIZE 32
+#define NDIS_ENCODING_TOKEN_MAX 32
+#define MAX_ENCR_KEYS 4
+#define TX_RING_SIZE 16
+#define NDIS_MAX_RATES 8
+#define NDIS_MAX_RATES_EX 16
+#define WLAN_EID_GENERIC 221
+#define MAX_WPA_IE_LEN 64
+#define MAX_STR_LEN 512
+
+#define WRAP_PCI_BUS 5
+#define WRAP_PCMCIA_BUS 8
+/* some USB devices, e.g., DWL-G120 have BusType as 0 */
+#define WRAP_INTERNAL_BUS 0
+/* documentation at msdn says 15 is PNP bus, but inf files from all
+ * vendors say 15 is USB; which is correct? */
+#define WRAP_USB_BUS 15
+
+/* NDIS device must be 0, for compatability with old versions of
+ * ndiswrapper where device type for NDIS drivers is 0 */
+#define WRAP_NDIS_DEVICE 0
+#define WRAP_USB_DEVICE 1
+#define WRAP_BLUETOOTH_DEVICE1 2
+#define WRAP_BLUETOOTH_DEVICE2 3
+
+#define WRAP_DEVICE_BUS(dev, bus) ((dev) << 8 | (bus))
+#define WRAP_BUS(dev_bus) ((dev_bus) & 0x000FF)
+#define WRAP_DEVICE(dev_bus) ((dev_bus) >> 8)
+
+#define MAX_DRIVER_NAME_LEN 32
+#define MAX_VERSION_STRING_LEN 64
+#define MAX_SETTING_NAME_LEN 128
+#define MAX_SETTING_VALUE_LEN 256
+
+#define MAX_DRIVER_PE_IMAGES 4
+#define MAX_DRIVER_BIN_FILES 5
+#define MAX_DEVICE_SETTINGS 512
+
+#define MAX_ALLOCATED_URBS 15
+
+#define DEV_ANY_ID -1
+
+#define MAC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
+#define MACSTRSEP "%02x:%02x:%02x:%02x:%02x:%02x"
+#define MACSTR "%02x%02x%02x%02x%02x%02x"
+#define MACINTADR(a) (int*)&((a)[0]), (int*)&((a)[1]), (int*)&((a)[2]), \
+ (int*)&((a)[3]), (int*)&((a)[4]), (int*)&((a)[5])
+
+#ifdef __KERNEL__
+/* DEBUG macros */
+
+#define MSG(level, fmt, ...) \
+ printk(level "ndiswrapper (%s:%d): " fmt "\n", \
+ __func__, __LINE__ , ## __VA_ARGS__)
+
+#define WARNING(fmt, ...) MSG(KERN_WARNING, fmt, ## __VA_ARGS__)
+#define ERROR(fmt, ...) MSG(KERN_ERR, fmt , ## __VA_ARGS__)
+#define INFO(fmt, ...) MSG(KERN_INFO, fmt , ## __VA_ARGS__)
+#define TODO() WARNING("not fully implemented (yet)")
+
+#define TRACE(fmt, ...) do { } while (0)
+#define TRACE1(fmt, ...) do { } while (0)
+#define TRACE2(fmt, ...) do { } while (0)
+#define TRACE3(fmt, ...) do { } while (0)
+#define TRACE4(fmt, ...) do { } while (0)
+#define TRACE5(fmt, ...) do { } while (0)
+#define TRACE6(fmt, ...) do { } while (0)
+
+/* for a block of code */
+#define DBG_BLOCK(level) while (0)
+
+extern int debug;
+
+#if defined DEBUG
+#undef TRACE
+#define TRACE(level, fmt, ...) \
+do { \
+ if (debug >= level) \
+ printk(KERN_INFO "%s (%s:%d): " fmt "\n", DRIVER_NAME, \
+ __func__, __LINE__ , ## __VA_ARGS__); \
+} while (0)
+#undef DBG_BLOCK
+#define DBG_BLOCK(level) if (debug >= level)
+#endif
+
+#if defined(DEBUG) && DEBUG >= 1
+#undef TRACE1
+#define TRACE1(fmt, ...) TRACE(1, fmt , ## __VA_ARGS__)
+#endif
+
+#if defined(DEBUG) && DEBUG >= 2
+#undef TRACE2
+#define TRACE2(fmt, ...) TRACE(2, fmt , ## __VA_ARGS__)
+#endif
+
+#if defined(DEBUG) && DEBUG >= 3
+#undef TRACE3
+#define TRACE3(fmt, ...) TRACE(3, fmt , ## __VA_ARGS__)
+#endif
+
+#if defined(DEBUG) && DEBUG >= 4
+#undef TRACE4
+#define TRACE4(fmt, ...) TRACE(4, fmt , ## __VA_ARGS__)
+#endif
+
+#if defined(DEBUG) && DEBUG >= 5
+#undef TRACE5
+#define TRACE5(fmt, ...) TRACE(5, fmt , ## __VA_ARGS__)
+#endif
+
+#if defined(DEBUG) && DEBUG >= 6
+#undef TRACE6
+#define TRACE6(fmt, ...) TRACE(6, fmt , ## __VA_ARGS__)
+#endif
+
+#define ENTER1(fmt, ...) TRACE1("Enter " fmt , ## __VA_ARGS__)
+#define ENTER2(fmt, ...) TRACE2("Enter " fmt , ## __VA_ARGS__)
+#define ENTER3(fmt, ...) TRACE3("Enter " fmt , ## __VA_ARGS__)
+#define ENTER4(fmt, ...) TRACE4("Enter " fmt , ## __VA_ARGS__)
+#define ENTER5(fmt, ...) TRACE5("Enter " fmt , ## __VA_ARGS__)
+#define ENTER6(fmt, ...) TRACE6("Enter " fmt , ## __VA_ARGS__)
+
+#define EXIT1(stmt) do { TRACE1("Exit"); stmt; } while(0)
+#define EXIT2(stmt) do { TRACE2("Exit"); stmt; } while(0)
+#define EXIT3(stmt) do { TRACE3("Exit"); stmt; } while(0)
+#define EXIT4(stmt) do { TRACE4("Exit"); stmt; } while(0)
+#define EXIT5(stmt) do { TRACE5("Exit"); stmt; } while(0)
+#define EXIT6(stmt) do { TRACE6("Exit"); stmt; } while(0)
+
+#if defined(USB_DEBUG)
+#define USBTRACE TRACE1
+#define USBENTER ENTER1
+#define USBEXIT EXIT1
+#else
+#define USBTRACE(fmt, ...)
+#define USBENTER(fmt, ...)
+#define USBEXIT(stmt) stmt
+#endif
+
+#if defined(EVENT_DEBUG)
+#define EVENTTRACE TRACE1
+#define EVENTENTER ENTER1
+#define EVENTEXIT EXIT1
+#else
+#define EVENTTRACE(fmt, ...)
+#define EVENTENTER(fmt, ...)
+#define EVENTEXIT(stmt) stmt
+#endif
+
+#if defined(TIMER_DEBUG)
+#define TIMERTRACE TRACE1
+#define TIMERENTER ENTER1
+#define TIMEREXIT EXIT1
+#else
+#define TIMERTRACE(fmt, ...)
+#define TIMERENTER(fmt, ...)
+#define TIMEREXIT(stmt) stmt
+#endif
+
+#if defined(IO_DEBUG)
+#define IOTRACE TRACE1
+#define IOENTER ENTER1
+#define IOEXIT EXIT1
+#else
+#define IOTRACE(fmt, ...)
+#define IOENTER(fmt, ...)
+#define IOEXIT(stmt) stmt
+#endif
+
+#if defined(WORK_DEBUG)
+#define WORKTRACE TRACE1
+#define WORKENTER ENTER1
+#define WORKEXIT EXIT1
+#else
+#define WORKTRACE(fmt, ...)
+#define WORKENTER(fmt, ...)
+#define WORKEXIT(stmt) stmt
+#endif
+
+#ifdef DEBUG
+#define assert(expr) \
+do { \
+ if (!(expr)) { \
+ ERROR("assertion '%s' failed", #expr); \
+ dump_stack(); \
+ } \
+} while (0)
+#else
+#define assert(expr) do { } while (0)
+#endif
+
+#endif // __KERNEL__
+
+#endif // NDISWRAPPER_H
diff --git a/ubuntu/ndiswrapper/ntoskernel.c b/ubuntu/ndiswrapper/ntoskernel.c
new file mode 100644
index 00000000000..d8e01111841
--- /dev/null
+++ b/ubuntu/ndiswrapper/ntoskernel.c
@@ -0,0 +1,2683 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "ntoskernel.h"
+#include "ndis.h"
+#include "usb.h"
+#include "pnp.h"
+#include "loader.h"
+#include "ntoskernel_exports.h"
+
+/* MDLs describe a range of virtual address with an array of physical
+ * pages right after the header. For different ranges of virtual
+ * addresses, the number of entries of physical pages may be different
+ * (depending on number of entries required). If we want to allocate
+ * MDLs from a pool, the size has to be constant. So we assume that
+ * maximum range used by a driver is MDL_CACHE_PAGES; if a driver
+ * requests an MDL for a bigger region, we allocate it with kmalloc;
+ * otherwise, we allocate from the pool */
+
+#define MDL_CACHE_PAGES 3
+#define MDL_CACHE_SIZE (sizeof(struct mdl) + \
+ (sizeof(PFN_NUMBER) * MDL_CACHE_PAGES))
+struct wrap_mdl {
+ struct nt_list list;
+ struct mdl mdl[0];
+};
+
+/* everything here is for all drivers/devices - not per driver/device */
+static spinlock_t dispatcher_lock;
+spinlock_t ntoskernel_lock;
+static void *mdl_cache;
+static struct nt_list wrap_mdl_list;
+
+static work_struct_t kdpc_work;
+static void kdpc_worker(worker_param_t dummy);
+
+static struct nt_list kdpc_list;
+static spinlock_t kdpc_list_lock;
+
+static struct nt_list callback_objects;
+
+struct nt_list object_list;
+
+struct bus_driver {
+ struct nt_list list;
+ char name[MAX_DRIVER_NAME_LEN];
+ struct driver_object drv_obj;
+};
+
+static struct nt_list bus_driver_list;
+
+static work_struct_t ntos_work;
+static struct nt_list ntos_work_list;
+static spinlock_t ntos_work_lock;
+static void ntos_work_worker(worker_param_t dummy);
+static struct nt_thread *ntos_worker_thread;
+spinlock_t irp_cancel_lock;
+static NT_SPIN_LOCK nt_list_lock;
+static struct nt_slist wrap_timer_slist;
+
+/* compute ticks (100ns) since 1601 until when system booted into
+ * wrap_ticks_to_boot */
+u64 wrap_ticks_to_boot;
+
+#if defined(CONFIG_X86_64)
+static struct timer_list shared_data_timer;
+struct kuser_shared_data kuser_shared_data;
+static void update_user_shared_data_proc(unsigned long data);
+#endif
+
+WIN_SYMBOL_MAP("KeTickCount", &jiffies)
+
+WIN_SYMBOL_MAP("NlsMbCodePageTag", FALSE)
+
+workqueue_struct_t *ntos_wq;
+
+#ifdef WRAP_PREEMPT
+DEFINE_PER_CPU(irql_info_t, irql_info);
+#endif
+
+#if defined(CONFIG_X86_64)
+static void update_user_shared_data_proc(unsigned long data)
+{
+ /* timer is supposed to be scheduled every 10ms, but bigger
+ * intervals seem to work (tried upto 50ms) */
+ *((ULONG64 *)&kuser_shared_data.system_time) = ticks_1601();
+ *((ULONG64 *)&kuser_shared_data.interrupt_time) =
+ jiffies * TICKSPERSEC / HZ;
+ *((ULONG64 *)&kuser_shared_data.tick) = jiffies;
+
+ mod_timer(&shared_data_timer, jiffies + MSEC_TO_HZ(30));
+}
+#endif
+
+void *allocate_object(ULONG size, enum common_object_type type,
+ struct unicode_string *name)
+{
+ struct common_object_header *hdr;
+ void *body;
+
+ /* we pad header as prefix to body */
+ hdr = ExAllocatePoolWithTag(NonPagedPool, OBJECT_SIZE(size), 0);
+ if (!hdr) {
+ WARNING("couldn't allocate memory");
+ return NULL;
+ }
+ memset(hdr, 0, OBJECT_SIZE(size));
+ if (name) {
+ hdr->name.buf = ExAllocatePoolWithTag(NonPagedPool,
+ name->max_length, 0);
+ if (!hdr->name.buf) {
+ ExFreePool(hdr);
+ return NULL;
+ }
+ memcpy(hdr->name.buf, name->buf, name->max_length);
+ hdr->name.length = name->length;
+ hdr->name.max_length = name->max_length;
+ }
+ hdr->type = type;
+ hdr->ref_count = 1;
+ spin_lock_bh(&ntoskernel_lock);
+ /* threads are looked up often (in KeWaitForXXX), so optimize
+ * for fast lookups of threads */
+ if (type == OBJECT_TYPE_NT_THREAD)
+ InsertHeadList(&object_list, &hdr->list);
+ else
+ InsertTailList(&object_list, &hdr->list);
+ spin_unlock_bh(&ntoskernel_lock);
+ body = HEADER_TO_OBJECT(hdr);
+ TRACE3("allocated hdr: %p, body: %p", hdr, body);
+ return body;
+}
+
+void free_object(void *object)
+{
+ struct common_object_header *hdr;
+
+ hdr = OBJECT_TO_HEADER(object);
+ spin_lock_bh(&ntoskernel_lock);
+ RemoveEntryList(&hdr->list);
+ spin_unlock_bh(&ntoskernel_lock);
+ TRACE3("freed hdr: %p, body: %p", hdr, object);
+ if (hdr->name.buf)
+ ExFreePool(hdr->name.buf);
+ ExFreePool(hdr);
+}
+
+static int add_bus_driver(const char *name)
+{
+ struct bus_driver *bus_driver;
+
+ bus_driver = kzalloc(sizeof(*bus_driver), GFP_KERNEL);
+ if (!bus_driver) {
+ ERROR("couldn't allocate memory");
+ return -ENOMEM;
+ }
+ strncpy(bus_driver->name, name, sizeof(bus_driver->name));
+ bus_driver->name[sizeof(bus_driver->name)-1] = 0;
+ spin_lock_bh(&ntoskernel_lock);
+ InsertTailList(&bus_driver_list, &bus_driver->list);
+ spin_unlock_bh(&ntoskernel_lock);
+ TRACE1("bus driver %s is at %p", name, &bus_driver->drv_obj);
+ return STATUS_SUCCESS;
+}
+
+struct driver_object *find_bus_driver(const char *name)
+{
+ struct bus_driver *bus_driver;
+ struct driver_object *drv_obj;
+
+ spin_lock_bh(&ntoskernel_lock);
+ drv_obj = NULL;
+ nt_list_for_each_entry(bus_driver, &bus_driver_list, list) {
+ if (strcmp(bus_driver->name, name) == 0) {
+ drv_obj = &bus_driver->drv_obj;
+ break;
+ }
+ }
+ spin_unlock_bh(&ntoskernel_lock);
+ return drv_obj;
+}
+
+wfastcall struct nt_list *WIN_FUNC(ExfInterlockedInsertHeadList,3)
+ (struct nt_list *head, struct nt_list *entry, NT_SPIN_LOCK *lock)
+{
+ struct nt_list *first;
+ unsigned long flags;
+
+ ENTER5("head = %p, entry = %p", head, entry);
+ nt_spin_lock_irqsave(lock, flags);
+ first = InsertHeadList(head, entry);
+ nt_spin_unlock_irqrestore(lock, flags);
+ TRACE5("head = %p, old = %p", head, first);
+ return first;
+}
+
+wfastcall struct nt_list *WIN_FUNC(ExInterlockedInsertHeadList,3)
+ (struct nt_list *head, struct nt_list *entry, NT_SPIN_LOCK *lock)
+{
+ ENTER5("%p", head);
+ return ExfInterlockedInsertHeadList(head, entry, lock);
+}
+
+wfastcall struct nt_list *WIN_FUNC(ExfInterlockedInsertTailList,3)
+ (struct nt_list *head, struct nt_list *entry, NT_SPIN_LOCK *lock)
+{
+ struct nt_list *last;
+ unsigned long flags;
+
+ ENTER5("head = %p, entry = %p", head, entry);
+ nt_spin_lock_irqsave(lock, flags);
+ last = InsertTailList(head, entry);
+ nt_spin_unlock_irqrestore(lock, flags);
+ TRACE5("head = %p, old = %p", head, last);
+ return last;
+}
+
+wfastcall struct nt_list *WIN_FUNC(ExInterlockedInsertTailList,3)
+ (struct nt_list *head, struct nt_list *entry, NT_SPIN_LOCK *lock)
+{
+ ENTER5("%p", head);
+ return ExfInterlockedInsertTailList(head, entry, lock);
+}
+
+wfastcall struct nt_list *WIN_FUNC(ExfInterlockedRemoveHeadList,2)
+ (struct nt_list *head, NT_SPIN_LOCK *lock)
+{
+ struct nt_list *ret;
+ unsigned long flags;
+
+ ENTER5("head = %p", head);
+ nt_spin_lock_irqsave(lock, flags);
+ ret = RemoveHeadList(head);
+ nt_spin_unlock_irqrestore(lock, flags);
+ TRACE5("head = %p, ret = %p", head, ret);
+ return ret;
+}
+
+wfastcall struct nt_list *WIN_FUNC(ExInterlockedRemoveHeadList,2)
+ (struct nt_list *head, NT_SPIN_LOCK *lock)
+{
+ ENTER5("%p", head);
+ return ExfInterlockedRemoveHeadList(head, lock);
+}
+
+wfastcall struct nt_list *WIN_FUNC(ExfInterlockedRemoveTailList,2)
+ (struct nt_list *head, NT_SPIN_LOCK *lock)
+{
+ struct nt_list *ret;
+ unsigned long flags;
+
+ ENTER5("head = %p", head);
+ nt_spin_lock_irqsave(lock, flags);
+ ret = RemoveTailList(head);
+ nt_spin_unlock_irqrestore(lock, flags);
+ TRACE5("head = %p, ret = %p", head, ret);
+ return ret;
+}
+
+wfastcall struct nt_list *WIN_FUNC(ExInterlockedRemoveTailList,2)
+ (struct nt_list *head, NT_SPIN_LOCK *lock)
+{
+ ENTER5("%p", head);
+ return ExfInterlockedRemoveTailList(head, lock);
+}
+
+wfastcall void WIN_FUNC(InitializeSListHead,1)
+ (nt_slist_header *head)
+{
+ memset(head, 0, sizeof(*head));
+}
+
+wfastcall struct nt_slist *WIN_FUNC(ExInterlockedPushEntrySList,3)
+ (nt_slist_header *head, struct nt_slist *entry, NT_SPIN_LOCK *lock)
+{
+ struct nt_slist *ret;
+
+ ret = PushEntrySList(head, entry, lock);
+ return ret;
+}
+
+wstdcall struct nt_slist *WIN_FUNC(ExpInterlockedPushEntrySList,2)
+ (nt_slist_header *head, struct nt_slist *entry)
+{
+ struct nt_slist *ret;
+
+ ret = PushEntrySList(head, entry, &nt_list_lock);
+ return ret;
+}
+
+wfastcall struct nt_slist *WIN_FUNC(InterlockedPushEntrySList,2)
+ (nt_slist_header *head, struct nt_slist *entry)
+{
+ struct nt_slist *ret;
+
+ ret = PushEntrySList(head, entry, &nt_list_lock);
+ return ret;
+}
+
+wfastcall struct nt_slist *WIN_FUNC(ExInterlockedPopEntrySList,2)
+ (nt_slist_header *head, NT_SPIN_LOCK *lock)
+{
+ struct nt_slist *ret;
+
+ ret = PopEntrySList(head, lock);
+ return ret;
+}
+
+wstdcall struct nt_slist *WIN_FUNC(ExpInterlockedPopEntrySList,1)
+ (nt_slist_header *head)
+{
+ struct nt_slist *ret;
+
+ ret = PopEntrySList(head, &nt_list_lock);
+ return ret;
+}
+
+wfastcall struct nt_slist *WIN_FUNC(InterlockedPopEntrySList,1)
+ (nt_slist_header *head)
+{
+ struct nt_slist *ret;
+
+ ret = PopEntrySList(head, &nt_list_lock);
+ return ret;
+}
+
+wstdcall USHORT WIN_FUNC(ExQueryDepthSList,1)
+ (nt_slist_header *head)
+{
+ USHORT depth;
+ ENTER5("%p", head);
+ depth = head->depth;
+ TRACE5("%d, %p", depth, head->next);
+ return depth;
+}
+
+wfastcall LONG WIN_FUNC(InterlockedIncrement,1)
+ (LONG volatile *val)
+{
+ return post_atomic_add(*val, 1);
+}
+
+wfastcall LONG WIN_FUNC(InterlockedDecrement,1)
+ (LONG volatile *val)
+{
+ return post_atomic_add(*val, -1);
+}
+
+wfastcall LONG WIN_FUNC(InterlockedExchange,2)
+ (LONG volatile *target, LONG val)
+{
+ return xchg(target, val);
+}
+
+wfastcall LONG WIN_FUNC(InterlockedCompareExchange,3)
+ (LONG volatile *dest, LONG new, LONG old)
+{
+ return cmpxchg(dest, old, new);
+}
+
+wfastcall void WIN_FUNC(ExInterlockedAddLargeStatistic,2)
+ (LARGE_INTEGER volatile *plint, ULONG n)
+{
+ unsigned long flags;
+
+ local_irq_save(flags);
+#ifdef CONFIG_X86_64
+ __asm__ __volatile__(
+ "\n"
+ LOCK_PREFIX "add %1, %0\n\t"
+ : "+m" (*plint)
+ : "r" (n));
+#else
+ __asm__ __volatile__(
+ "1:\t"
+ " movl %1, %%ebx\n\t"
+ " movl %%edx, %%ecx\n\t"
+ " addl %%eax, %%ebx\n\t"
+ " adcl $0, %%ecx\n\t"
+ LOCK_PREFIX "cmpxchg8b %0\n\t"
+ " jnz 1b\n\t"
+ : "+m" (*plint)
+ : "m" (n), "A" (*plint)
+ : "ebx", "ecx");
+#endif
+ local_irq_restore(flags);
+}
+
+static void initialize_object(struct dispatcher_header *dh, enum dh_type type,
+ int state)
+{
+ memset(dh, 0, sizeof(*dh));
+ set_object_type(dh, type);
+ dh->signal_state = state;
+ InitializeListHead(&dh->wait_blocks);
+}
+
+static void timer_proc(unsigned long data)
+{
+ struct wrap_timer *wrap_timer = (struct wrap_timer *)data;
+ struct nt_timer *nt_timer;
+ struct kdpc *kdpc;
+
+ nt_timer = wrap_timer->nt_timer;
+ TIMERENTER("%p(%p), %lu", wrap_timer, nt_timer, jiffies);
+#ifdef TIMER_DEBUG
+ BUG_ON(wrap_timer->wrap_timer_magic != WRAP_TIMER_MAGIC);
+ BUG_ON(nt_timer->wrap_timer_magic != WRAP_TIMER_MAGIC);
+#endif
+ KeSetEvent((struct nt_event *)nt_timer, 0, FALSE);
+ if (wrap_timer->repeat)
+ mod_timer(&wrap_timer->timer, jiffies + wrap_timer->repeat);
+ kdpc = nt_timer->kdpc;
+ if (kdpc)
+ queue_kdpc(kdpc);
+ TIMEREXIT(return);
+}
+
+void wrap_init_timer(struct nt_timer *nt_timer, enum timer_type type,
+ struct ndis_mp_block *nmb)
+{
+ struct wrap_timer *wrap_timer;
+
+ /* TODO: if a timer is initialized more than once, we allocate
+ * memory for wrap_timer more than once for the same nt_timer,
+ * wasting memory. We can check if nt_timer->wrap_timer_magic is
+ * set and not allocate, but it is not guaranteed always to be
+ * safe */
+ TIMERENTER("%p", nt_timer);
+ /* we allocate memory for wrap_timer behind driver's back and
+ * there is no NDIS/DDK function where this memory can be
+ * freed, so we use slack_kmalloc so it gets freed when driver
+ * is unloaded */
+ if (nmb)
+ wrap_timer = kmalloc(sizeof(*wrap_timer), irql_gfp());
+ else
+ wrap_timer = slack_kmalloc(sizeof(*wrap_timer));
+ if (!wrap_timer) {
+ ERROR("couldn't allocate memory for timer");
+ return;
+ }
+
+ memset(wrap_timer, 0, sizeof(*wrap_timer));
+ init_timer(&wrap_timer->timer);
+ wrap_timer->timer.data = (unsigned long)wrap_timer;
+ wrap_timer->timer.function = timer_proc;
+ wrap_timer->nt_timer = nt_timer;
+#ifdef TIMER_DEBUG
+ wrap_timer->wrap_timer_magic = WRAP_TIMER_MAGIC;
+#endif
+ nt_timer->wrap_timer = wrap_timer;
+ nt_timer->kdpc = NULL;
+ initialize_object(&nt_timer->dh, type, 0);
+ nt_timer->wrap_timer_magic = WRAP_TIMER_MAGIC;
+ TIMERTRACE("timer %p (%p)", wrap_timer, nt_timer);
+ spin_lock_bh(&ntoskernel_lock);
+ if (nmb) {
+ wrap_timer->slist.next = nmb->wnd->wrap_timer_slist.next;
+ nmb->wnd->wrap_timer_slist.next = &wrap_timer->slist;
+ } else {
+ wrap_timer->slist.next = wrap_timer_slist.next;
+ wrap_timer_slist.next = &wrap_timer->slist;
+ }
+ spin_unlock_bh(&ntoskernel_lock);
+ TIMEREXIT(return);
+}
+
+wstdcall void WIN_FUNC(KeInitializeTimerEx,2)
+ (struct nt_timer *nt_timer, enum timer_type type)
+{
+ TIMERENTER("%p", nt_timer);
+ wrap_init_timer(nt_timer, type, NULL);
+}
+
+wstdcall void WIN_FUNC(KeInitializeTimer,1)
+ (struct nt_timer *nt_timer)
+{
+ TIMERENTER("%p", nt_timer);
+ wrap_init_timer(nt_timer, NotificationTimer, NULL);
+}
+
+/* expires and repeat are in HZ */
+BOOLEAN wrap_set_timer(struct nt_timer *nt_timer, unsigned long expires_hz,
+ unsigned long repeat_hz, struct kdpc *kdpc)
+{
+ struct wrap_timer *wrap_timer;
+
+ TIMERENTER("%p, %lu, %lu, %p, %lu",
+ nt_timer, expires_hz, repeat_hz, kdpc, jiffies);
+
+ wrap_timer = nt_timer->wrap_timer;
+ TIMERTRACE("%p", wrap_timer);
+#ifdef TIMER_DEBUG
+ if (wrap_timer->nt_timer != nt_timer)
+ WARNING("bad timers: %p, %p, %p", wrap_timer, nt_timer,
+ wrap_timer->nt_timer);
+ if (nt_timer->wrap_timer_magic != WRAP_TIMER_MAGIC) {
+ WARNING("buggy Windows timer didn't initialize timer %p",
+ nt_timer);
+ return FALSE;
+ }
+ if (wrap_timer->wrap_timer_magic != WRAP_TIMER_MAGIC) {
+ WARNING("timer %p is not initialized (%lx)?",
+ wrap_timer, wrap_timer->wrap_timer_magic);
+ wrap_timer->wrap_timer_magic = WRAP_TIMER_MAGIC;
+ }
+#endif
+ KeClearEvent((struct nt_event *)nt_timer);
+ nt_timer->kdpc = kdpc;
+ wrap_timer->repeat = repeat_hz;
+ if (mod_timer(&wrap_timer->timer, jiffies + expires_hz))
+ TIMEREXIT(return TRUE);
+ else
+ TIMEREXIT(return FALSE);
+}
+
+wstdcall BOOLEAN WIN_FUNC(KeSetTimerEx,4)
+ (struct nt_timer *nt_timer, LARGE_INTEGER duetime_ticks,
+ LONG period_ms, struct kdpc *kdpc)
+{
+ unsigned long expires_hz, repeat_hz;
+
+ TIMERENTER("%p, %Ld, %d", nt_timer, duetime_ticks, period_ms);
+ expires_hz = SYSTEM_TIME_TO_HZ(duetime_ticks);
+ repeat_hz = MSEC_TO_HZ(period_ms);
+ return wrap_set_timer(nt_timer, expires_hz, repeat_hz, kdpc);
+}
+
+wstdcall BOOLEAN WIN_FUNC(KeSetTimer,3)
+ (struct nt_timer *nt_timer, LARGE_INTEGER duetime_ticks,
+ struct kdpc *kdpc)
+{
+ TIMERENTER("%p, %Ld, %p", nt_timer, duetime_ticks, kdpc);
+ return KeSetTimerEx(nt_timer, duetime_ticks, 0, kdpc);
+}
+
+wstdcall BOOLEAN WIN_FUNC(KeCancelTimer,1)
+ (struct nt_timer *nt_timer)
+{
+ struct wrap_timer *wrap_timer;
+ int ret;
+
+ TIMERENTER("%p", nt_timer);
+ wrap_timer = nt_timer->wrap_timer;
+ if (!wrap_timer) {
+ ERROR("invalid wrap_timer");
+ return TRUE;
+ }
+#ifdef TIMER_DEBUG
+ BUG_ON(wrap_timer->wrap_timer_magic != WRAP_TIMER_MAGIC);
+#endif
+ /* disable timer before deleting so if it is periodic timer, it
+ * won't be re-armed after deleting */
+ wrap_timer->repeat = 0;
+ ret = del_timer_sync(&wrap_timer->timer);
+ /* the documentation for KeCancelTimer suggests the DPC is
+ * deqeued, but actually DPC is left to run */
+ if (ret)
+ TIMEREXIT(return TRUE);
+ else
+ TIMEREXIT(return FALSE);
+}
+
+wstdcall BOOLEAN WIN_FUNC(KeReadStateTimer,1)
+ (struct nt_timer *nt_timer)
+{
+ if (nt_timer->dh.signal_state)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+wstdcall void WIN_FUNC(KeInitializeDpc,3)
+ (struct kdpc *kdpc, void *func, void *ctx)
+{
+ ENTER3("%p, %p, %p", kdpc, func, ctx);
+ memset(kdpc, 0, sizeof(*kdpc));
+ kdpc->func = func;
+ kdpc->ctx = ctx;
+ InitializeListHead(&kdpc->list);
+}
+
+static void kdpc_worker(worker_param_t dummy)
+{
+ struct nt_list *entry;
+ struct kdpc *kdpc;
+ unsigned long flags;
+ KIRQL irql;
+
+ WORKENTER("");
+ irql = raise_irql(DISPATCH_LEVEL);
+ while (1) {
+ spin_lock_irqsave(&kdpc_list_lock, flags);
+ entry = RemoveHeadList(&kdpc_list);
+ if (entry) {
+ kdpc = container_of(entry, struct kdpc, list);
+ assert(kdpc->queued);
+ kdpc->queued = 0;
+ } else
+ kdpc = NULL;
+ spin_unlock_irqrestore(&kdpc_list_lock, flags);
+ if (!kdpc)
+ break;
+ WORKTRACE("%p, %p, %p, %p, %p", kdpc, kdpc->func, kdpc->ctx,
+ kdpc->arg1, kdpc->arg2);
+ assert_irql(_irql_ == DISPATCH_LEVEL);
+ LIN2WIN4(kdpc->func, kdpc, kdpc->ctx, kdpc->arg1, kdpc->arg2);
+ assert_irql(_irql_ == DISPATCH_LEVEL);
+ }
+ lower_irql(irql);
+ WORKEXIT(return);
+}
+
+wstdcall void WIN_FUNC(KeFlushQueuedDpcs,0)
+ (void)
+{
+ kdpc_worker(NULL);
+}
+
+BOOLEAN queue_kdpc(struct kdpc *kdpc)
+{
+ BOOLEAN ret;
+ unsigned long flags;
+
+ WORKENTER("%p", kdpc);
+ spin_lock_irqsave(&kdpc_list_lock, flags);
+ if (kdpc->queued)
+ ret = FALSE;
+ else {
+ if (unlikely(kdpc->importance == HighImportance))
+ InsertHeadList(&kdpc_list, &kdpc->list);
+ else
+ InsertTailList(&kdpc_list, &kdpc->list);
+ kdpc->queued = 1;
+ ret = TRUE;
+ }
+ spin_unlock_irqrestore(&kdpc_list_lock, flags);
+ if (ret == TRUE)
+ schedule_ntos_work(&kdpc_work);
+ WORKTRACE("%d", ret);
+ return ret;
+}
+
+BOOLEAN dequeue_kdpc(struct kdpc *kdpc)
+{
+ BOOLEAN ret;
+ unsigned long flags;
+
+ WORKENTER("%p", kdpc);
+ spin_lock_irqsave(&kdpc_list_lock, flags);
+ if (kdpc->queued) {
+ RemoveEntryList(&kdpc->list);
+ kdpc->queued = 0;
+ ret = TRUE;
+ } else
+ ret = FALSE;
+ spin_unlock_irqrestore(&kdpc_list_lock, flags);
+ WORKTRACE("%d", ret);
+ return ret;
+}
+
+wstdcall BOOLEAN WIN_FUNC(KeInsertQueueDpc,3)
+ (struct kdpc *kdpc, void *arg1, void *arg2)
+{
+ WORKENTER("%p, %p, %p", kdpc, arg1, arg2);
+ kdpc->arg1 = arg1;
+ kdpc->arg2 = arg2;
+ return queue_kdpc(kdpc);
+}
+
+wstdcall BOOLEAN WIN_FUNC(KeRemoveQueueDpc,1)
+ (struct kdpc *kdpc)
+{
+ return dequeue_kdpc(kdpc);
+}
+
+wstdcall void WIN_FUNC(KeSetImportanceDpc,2)
+ (struct kdpc *kdpc, enum kdpc_importance importance)
+{
+ kdpc->importance = importance;
+}
+
+static void ntos_work_worker(worker_param_t dummy)
+{
+ struct ntos_work_item *ntos_work_item;
+ struct nt_list *cur;
+
+ while (1) {
+ spin_lock_bh(&ntos_work_lock);
+ cur = RemoveHeadList(&ntos_work_list);
+ spin_unlock_bh(&ntos_work_lock);
+ if (!cur)
+ break;
+ ntos_work_item = container_of(cur, struct ntos_work_item, list);
+ WORKTRACE("%p: executing %p, %p, %p", current,
+ ntos_work_item->func, ntos_work_item->arg1,
+ ntos_work_item->arg2);
+ LIN2WIN2(ntos_work_item->func, ntos_work_item->arg1,
+ ntos_work_item->arg2);
+ kfree(ntos_work_item);
+ }
+ WORKEXIT(return);
+}
+
+int schedule_ntos_work_item(NTOS_WORK_FUNC func, void *arg1, void *arg2)
+{
+ struct ntos_work_item *ntos_work_item;
+
+ WORKENTER("adding work: %p, %p, %p", func, arg1, arg2);
+ ntos_work_item = kmalloc(sizeof(*ntos_work_item), irql_gfp());
+ if (!ntos_work_item) {
+ ERROR("couldn't allocate memory");
+ return -ENOMEM;
+ }
+ ntos_work_item->func = func;
+ ntos_work_item->arg1 = arg1;
+ ntos_work_item->arg2 = arg2;
+ spin_lock_bh(&ntos_work_lock);
+ InsertTailList(&ntos_work_list, &ntos_work_item->list);
+ spin_unlock_bh(&ntos_work_lock);
+ schedule_ntos_work(&ntos_work);
+ WORKEXIT(return 0);
+}
+
+wstdcall void WIN_FUNC(KeInitializeSpinLock,1)
+ (NT_SPIN_LOCK *lock)
+{
+ ENTER6("%p", lock);
+ nt_spin_lock_init(lock);
+}
+
+wstdcall void WIN_FUNC(KeAcquireSpinLock,2)
+ (NT_SPIN_LOCK *lock, KIRQL *irql)
+{
+ ENTER6("%p", lock);
+ *irql = nt_spin_lock_irql(lock, DISPATCH_LEVEL);
+}
+
+wstdcall void WIN_FUNC(KeReleaseSpinLock,2)
+ (NT_SPIN_LOCK *lock, KIRQL oldirql)
+{
+ ENTER6("%p", lock);
+ nt_spin_unlock_irql(lock, oldirql);
+}
+
+wstdcall void WIN_FUNC(KeAcquireSpinLockAtDpcLevel,1)
+ (NT_SPIN_LOCK *lock)
+{
+ ENTER6("%p", lock);
+ nt_spin_lock(lock);
+}
+
+wstdcall void WIN_FUNC(KeReleaseSpinLockFromDpcLevel,1)
+ (NT_SPIN_LOCK *lock)
+{
+ ENTER6("%p", lock);
+ nt_spin_unlock(lock);
+}
+
+wstdcall void WIN_FUNC(KeRaiseIrql,2)
+ (KIRQL newirql, KIRQL *oldirql)
+{
+ ENTER6("%d", newirql);
+ *oldirql = raise_irql(newirql);
+}
+
+wstdcall KIRQL WIN_FUNC(KeRaiseIrqlToDpcLevel,0)
+ (void)
+{
+ return raise_irql(DISPATCH_LEVEL);
+}
+
+wstdcall void WIN_FUNC(KeLowerIrql,1)
+ (KIRQL irql)
+{
+ ENTER6("%d", irql);
+ lower_irql(irql);
+}
+
+wstdcall KIRQL WIN_FUNC(KeAcquireSpinLockRaiseToDpc,1)
+ (NT_SPIN_LOCK *lock)
+{
+ ENTER6("%p", lock);
+ return nt_spin_lock_irql(lock, DISPATCH_LEVEL);
+}
+
+#undef ExAllocatePoolWithTag
+
+wstdcall void *WIN_FUNC(ExAllocatePoolWithTag,3)
+ (enum pool_type pool_type, SIZE_T size, ULONG tag)
+{
+ void *addr;
+
+ ENTER4("pool_type: %d, size: %lu, tag: 0x%x", pool_type, size, tag);
+ assert_irql(_irql_ <= DISPATCH_LEVEL);
+ if (size < PAGE_SIZE)
+ addr = kmalloc(size, irql_gfp());
+ else {
+ if (irql_gfp() & GFP_ATOMIC) {
+ addr = __vmalloc(size, GFP_ATOMIC | __GFP_HIGHMEM,
+ PAGE_KERNEL);
+ TRACE1("%p, %lu", addr, size);
+ } else {
+ addr = vmalloc(size);
+ TRACE1("%p, %lu", addr, size);
+ }
+ }
+ DBG_BLOCK(1) {
+ if (addr)
+ TRACE4("addr: %p, %lu", addr, size);
+ else
+ TRACE1("failed: %lu", size);
+ }
+ return addr;
+}
+WIN_FUNC_DECL(ExAllocatePoolWithTag,3)
+
+wstdcall void WIN_FUNC(ExFreePoolWithTag,2)
+ (void *addr, ULONG tag)
+{
+ TRACE4("%p", addr);
+ if ((unsigned long)addr < VMALLOC_START ||
+ (unsigned long)addr >= VMALLOC_END)
+ kfree(addr);
+ else
+ vfree(addr);
+
+ EXIT4(return);
+}
+
+wstdcall void WIN_FUNC(ExFreePool,1)
+ (void *addr)
+{
+ ExFreePoolWithTag(addr, 0);
+}
+WIN_FUNC_DECL(ExFreePool,1)
+
+wstdcall void WIN_FUNC(ExInitializeNPagedLookasideList,7)
+ (struct npaged_lookaside_list *lookaside,
+ LOOKASIDE_ALLOC_FUNC *alloc_func, LOOKASIDE_FREE_FUNC *free_func,
+ ULONG flags, SIZE_T size, ULONG tag, USHORT depth)
+{
+ ENTER3("lookaside: %p, size: %lu, flags: %u, head: %p, "
+ "alloc: %p, free: %p", lookaside, size, flags,
+ lookaside, alloc_func, free_func);
+
+ memset(lookaside, 0, sizeof(*lookaside));
+
+ lookaside->size = size;
+ lookaside->tag = tag;
+ lookaside->depth = 4;
+ lookaside->maxdepth = 256;
+ lookaside->pool_type = NonPagedPool;
+
+ if (alloc_func)
+ lookaside->alloc_func = alloc_func;
+ else
+ lookaside->alloc_func = WIN_FUNC_PTR(ExAllocatePoolWithTag,3);
+ if (free_func)
+ lookaside->free_func = free_func;
+ else
+ lookaside->free_func = WIN_FUNC_PTR(ExFreePool,1);
+
+#ifndef CONFIG_X86_64
+ nt_spin_lock_init(&lookaside->obsolete);
+#endif
+ EXIT3(return);
+}
+
+wstdcall void WIN_FUNC(ExDeleteNPagedLookasideList,1)
+ (struct npaged_lookaside_list *lookaside)
+{
+ struct nt_slist *entry;
+
+ ENTER3("lookaside = %p", lookaside);
+ while ((entry = ExpInterlockedPopEntrySList(&lookaside->head)))
+ LIN2WIN1(lookaside->free_func, entry);
+ EXIT3(return);
+}
+
+#if defined(ALLOC_DEBUG) && ALLOC_DEBUG > 1
+#define ExAllocatePoolWithTag(pool_type, size, tag) \
+ wrap_ExAllocatePoolWithTag(pool_type, size, tag, __FILE__, __LINE__)
+#endif
+
+wstdcall NTSTATUS WIN_FUNC(ExCreateCallback,4)
+ (struct callback_object **object, struct object_attributes *attributes,
+ BOOLEAN create, BOOLEAN allow_multiple_callbacks)
+{
+ struct callback_object *obj;
+
+ ENTER2("");
+ spin_lock_bh(&ntoskernel_lock);
+ nt_list_for_each_entry(obj, &callback_objects, callback_funcs) {
+ if (obj->attributes == attributes) {
+ spin_unlock_bh(&ntoskernel_lock);
+ *object = obj;
+ return STATUS_SUCCESS;
+ }
+ }
+ spin_unlock_bh(&ntoskernel_lock);
+ obj = allocate_object(sizeof(struct callback_object),
+ OBJECT_TYPE_CALLBACK, NULL);
+ if (!obj)
+ EXIT2(return STATUS_INSUFFICIENT_RESOURCES);
+ InitializeListHead(&obj->callback_funcs);
+ nt_spin_lock_init(&obj->lock);
+ obj->allow_multiple_callbacks = allow_multiple_callbacks;
+ obj->attributes = attributes;
+ *object = obj;
+ EXIT2(return STATUS_SUCCESS);
+}
+
+wstdcall void *WIN_FUNC(ExRegisterCallback,3)
+ (struct callback_object *object, PCALLBACK_FUNCTION func, void *context)
+{
+ struct callback_func *callback;
+ KIRQL irql;
+
+ ENTER2("");
+ irql = nt_spin_lock_irql(&object->lock, DISPATCH_LEVEL);
+ if (object->allow_multiple_callbacks == FALSE &&
+ !IsListEmpty(&object->callback_funcs)) {
+ nt_spin_unlock_irql(&object->lock, irql);
+ EXIT2(return NULL);
+ }
+ nt_spin_unlock_irql(&object->lock, irql);
+ callback = kmalloc(sizeof(*callback), GFP_KERNEL);
+ if (!callback) {
+ ERROR("couldn't allocate memory");
+ return NULL;
+ }
+ callback->func = func;
+ callback->context = context;
+ callback->object = object;
+ irql = nt_spin_lock_irql(&object->lock, DISPATCH_LEVEL);
+ InsertTailList(&object->callback_funcs, &callback->list);
+ nt_spin_unlock_irql(&object->lock, irql);
+ EXIT2(return callback);
+}
+
+wstdcall void WIN_FUNC(ExUnregisterCallback,1)
+ (struct callback_func *callback)
+{
+ struct callback_object *object;
+ KIRQL irql;
+
+ ENTER3("%p", callback);
+ if (!callback)
+ return;
+ object = callback->object;
+ irql = nt_spin_lock_irql(&object->lock, DISPATCH_LEVEL);
+ RemoveEntryList(&callback->list);
+ nt_spin_unlock_irql(&object->lock, irql);
+ kfree(callback);
+ return;
+}
+
+wstdcall void WIN_FUNC(ExNotifyCallback,3)
+ (struct callback_object *object, void *arg1, void *arg2)
+{
+ struct callback_func *callback;
+ KIRQL irql;
+
+ ENTER3("%p", object);
+ irql = nt_spin_lock_irql(&object->lock, DISPATCH_LEVEL);
+ nt_list_for_each_entry(callback, &object->callback_funcs, list) {
+ LIN2WIN3(callback->func, callback->context, arg1, arg2);
+ }
+ nt_spin_unlock_irql(&object->lock, irql);
+ return;
+}
+
+/* check and set signaled state; should be called with dispatcher_lock held */
+/* @grab indicates if the event should be grabbed or checked
+ * - note that a semaphore may stay in signaled state for multiple
+ * 'grabs' if the count is > 1 */
+static int grab_object(struct dispatcher_header *dh,
+ struct task_struct *thread, int grab)
+{
+ EVENTTRACE("%p, %p, %d, %d", dh, thread, grab, dh->signal_state);
+ if (unlikely(is_mutex_object(dh))) {
+ struct nt_mutex *nt_mutex;
+ nt_mutex = container_of(dh, struct nt_mutex, dh);
+ EVENTTRACE("%p, %p, %d, %p, %d", nt_mutex,
+ nt_mutex->owner_thread, dh->signal_state,
+ thread, grab);
+ /* either no thread owns the mutex or this thread owns
+ * it */
+ assert(dh->signal_state == 1 && nt_mutex->owner_thread == NULL);
+ assert(dh->signal_state < 1 && nt_mutex->owner_thread != NULL);
+ if ((dh->signal_state == 1 && nt_mutex->owner_thread == NULL) ||
+ nt_mutex->owner_thread == thread) {
+ if (grab) {
+ dh->signal_state--;
+ nt_mutex->owner_thread = thread;
+ }
+ EVENTEXIT(return 1);
+ }
+ } else if (dh->signal_state > 0) {
+ /* to grab, decrement signal_state for synchronization
+ * or semaphore objects */
+ if (grab && (is_synch_object(dh) || is_semaphore_object(dh)))
+ dh->signal_state--;
+ EVENTEXIT(return 1);
+ }
+ EVENTEXIT(return 0);
+}
+
+/* this function should be called holding dispatcher_lock */
+static void object_signalled(struct dispatcher_header *dh)
+{
+ struct nt_list *cur, *next;
+ struct wait_block *wb;
+
+ EVENTENTER("%p", dh);
+ nt_list_for_each_safe(cur, next, &dh->wait_blocks) {
+ wb = container_of(cur, struct wait_block, list);
+ assert(wb->thread != NULL);
+ assert(wb->object == NULL);
+ if (!grab_object(dh, wb->thread, 1))
+ continue;
+ EVENTTRACE("%p (%p): waking %p", dh, wb, wb->thread);
+ RemoveEntryList(cur);
+ wb->object = dh;
+ *(wb->wait_done) = 1;
+ wake_up_process(wb->thread);
+ }
+ EVENTEXIT(return);
+}
+
+wstdcall NTSTATUS WIN_FUNC(KeWaitForMultipleObjects,8)
+ (ULONG count, void *object[], enum wait_type wait_type,
+ KWAIT_REASON wait_reason, KPROCESSOR_MODE wait_mode,
+ BOOLEAN alertable, LARGE_INTEGER *timeout,
+ struct wait_block *wait_block_array)
+{
+ int i, res = 0, wait_count, wait_done;
+ typeof(jiffies) wait_hz = 0;
+ struct wait_block *wb, wb_array[THREAD_WAIT_OBJECTS];
+ struct dispatcher_header *dh;
+
+ EVENTENTER("%p, %d, %u, %p", current, count, wait_type, timeout);
+
+ if (count > MAX_WAIT_OBJECTS ||
+ (count > THREAD_WAIT_OBJECTS && wait_block_array == NULL))
+ EVENTEXIT(return STATUS_INVALID_PARAMETER);
+
+ if (wait_block_array == NULL)
+ wb = wb_array;
+ else
+ wb = wait_block_array;
+
+ /* If *timeout == 0: In the case of WaitAny, if an object can
+ * be grabbed (object is in signaled state), grab and
+ * return. In the case of WaitAll, we have to first make sure
+ * all objects can be grabbed. If any/some of them can't be
+ * grabbed, either we return STATUS_TIMEOUT or wait for them,
+ * depending on how to satisfy wait. If all of them can be
+ * grabbed, we will grab them in the next loop below */
+
+ spin_lock_bh(&dispatcher_lock);
+ for (i = wait_count = 0; i < count; i++) {
+ dh = object[i];
+ EVENTTRACE("%p: event %p (%d)", current, dh, dh->signal_state);
+ /* wait_type == 1 for WaitAny, 0 for WaitAll */
+ if (grab_object(dh, current, wait_type)) {
+ if (wait_type == WaitAny) {
+ spin_unlock_bh(&dispatcher_lock);
+ EVENTEXIT(return STATUS_WAIT_0 + i);
+ }
+ } else {
+ EVENTTRACE("%p: wait for %p", current, dh);
+ wait_count++;
+ }
+ }
+
+ if (timeout && *timeout == 0 && wait_count) {
+ spin_unlock_bh(&dispatcher_lock);
+ EVENTEXIT(return STATUS_TIMEOUT);
+ }
+
+ /* get the list of objects the thread needs to wait on and add
+ * the thread on the wait list for each such object */
+ /* if *timeout == 0, this step will grab all the objects */
+ wait_done = 0;
+ for (i = 0; i < count; i++) {
+ dh = object[i];
+ EVENTTRACE("%p: event %p (%d)", current, dh, dh->signal_state);
+ wb[i].object = NULL;
+ if (grab_object(dh, current, 1)) {
+ EVENTTRACE("%p: no wait for %p (%d)",
+ current, dh, dh->signal_state);
+ /* mark that we are not waiting on this object */
+ wb[i].thread = NULL;
+ } else {
+ wb[i].wait_done = &wait_done;
+ wb[i].thread = current;
+ EVENTTRACE("%p: wait for %p", current, dh);
+ InsertTailList(&dh->wait_blocks, &wb[i].list);
+ }
+ }
+ spin_unlock_bh(&dispatcher_lock);
+ if (wait_count == 0)
+ EVENTEXIT(return STATUS_SUCCESS);
+
+ assert(timeout == NULL || *timeout != 0);
+ if (timeout == NULL)
+ wait_hz = 0;
+ else
+ wait_hz = SYSTEM_TIME_TO_HZ(*timeout);
+
+ DBG_BLOCK(2) {
+ KIRQL irql = current_irql();
+ if (irql >= DISPATCH_LEVEL) {
+ TRACE2("wait in atomic context: %lu, %d, %ld",
+ wait_hz, in_atomic(), in_interrupt());
+ }
+ }
+ assert_irql(_irql_ < DISPATCH_LEVEL);
+ EVENTTRACE("%p: sleep for %ld on %p", current, wait_hz, &wait_done);
+ /* we don't honor 'alertable' - according to decription for
+ * this, even if waiting in non-alertable state, thread may be
+ * alerted in some circumstances */
+ while (wait_count) {
+ res = wait_condition(wait_done, wait_hz, TASK_INTERRUPTIBLE);
+ spin_lock_bh(&dispatcher_lock);
+ EVENTTRACE("%p woke up: %d, %d", current, res, wait_done);
+ /* the event may have been set by the time
+ * wrap_wait_event returned and spinlock obtained, so
+ * don't rely on value of 'res' - check event status */
+ if (!wait_done) {
+ assert(res <= 0);
+ /* timed out or interrupted; remove from wait list */
+ for (i = 0; i < count; i++) {
+ if (!wb[i].thread)
+ continue;
+ EVENTTRACE("%p: timedout, dequeue %p (%p)",
+ current, object[i], wb[i].object);
+ assert(wb[i].object == NULL);
+ RemoveEntryList(&wb[i].list);
+ }
+ spin_unlock_bh(&dispatcher_lock);
+ if (res < 0)
+ EVENTEXIT(return STATUS_ALERTED);
+ else
+ EVENTEXIT(return STATUS_TIMEOUT);
+ }
+ assert(res > 0);
+ /* woken because object(s) signalled */
+ for (i = 0; wait_count && i < count; i++) {
+ if (!wb[i].thread || !wb[i].object)
+ continue;
+ DBG_BLOCK(1) {
+ if (wb[i].object != object[i]) {
+ EVENTTRACE("oops %p != %p",
+ wb[i].object, object[i]);
+ continue;
+ }
+ }
+ wait_count--;
+ if (wait_type == WaitAny) {
+ int j;
+ /* done; remove from rest of wait list */
+ for (j = i + 1; j < count; j++) {
+ if (wb[j].thread && !wb[j].object)
+ RemoveEntryList(&wb[j].list);
+ }
+ spin_unlock_bh(&dispatcher_lock);
+ EVENTEXIT(return STATUS_WAIT_0 + i);
+ }
+ }
+ wait_done = 0;
+ spin_unlock_bh(&dispatcher_lock);
+ if (wait_count == 0)
+ EVENTEXIT(return STATUS_SUCCESS);
+
+ /* this thread is still waiting for more objects, so
+ * let it wait for remaining time and those objects */
+ if (timeout)
+ wait_hz = res;
+ else
+ wait_hz = 0;
+ }
+ /* should never reach here, but compiler wants return value */
+ ERROR("%p: wait_hz: %ld", current, wait_hz);
+ EVENTEXIT(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS WIN_FUNC(KeWaitForSingleObject,5)
+ (void *object, KWAIT_REASON wait_reason, KPROCESSOR_MODE wait_mode,
+ BOOLEAN alertable, LARGE_INTEGER *timeout)
+{
+ return KeWaitForMultipleObjects(1, &object, WaitAny, wait_reason,
+ wait_mode, alertable, timeout, NULL);
+}
+
+wstdcall void WIN_FUNC(KeInitializeEvent,3)
+ (struct nt_event *nt_event, enum event_type type, BOOLEAN state)
+{
+ EVENTENTER("event = %p, type = %d, state = %d", nt_event, type, state);
+ initialize_object(&nt_event->dh, type, state);
+ EVENTEXIT(return);
+}
+
+wstdcall LONG WIN_FUNC(KeSetEvent,3)
+ (struct nt_event *nt_event, KPRIORITY incr, BOOLEAN wait)
+{
+ LONG old_state;
+
+ EVENTENTER("%p, %d", nt_event, nt_event->dh.type);
+ if (wait == TRUE)
+ WARNING("wait = %d, not yet implemented", wait);
+ spin_lock_bh(&dispatcher_lock);
+ old_state = nt_event->dh.signal_state;
+ nt_event->dh.signal_state = 1;
+ if (old_state == 0)
+ object_signalled(&nt_event->dh);
+ spin_unlock_bh(&dispatcher_lock);
+ EVENTEXIT(return old_state);
+}
+
+wstdcall void WIN_FUNC(KeClearEvent,1)
+ (struct nt_event *nt_event)
+{
+ EVENTENTER("%p", nt_event);
+ nt_event->dh.signal_state = 0;
+ EVENTEXIT(return);
+}
+
+wstdcall LONG WIN_FUNC(KeResetEvent,1)
+ (struct nt_event *nt_event)
+{
+ LONG old_state;
+
+ EVENTENTER("%p", nt_event);
+ old_state = xchg(&nt_event->dh.signal_state, 0);
+ EVENTEXIT(return old_state);
+}
+
+wstdcall LONG WIN_FUNC(KeReadStateEvent,1)
+ (struct nt_event *nt_event)
+{
+ LONG state;
+
+ state = nt_event->dh.signal_state;
+ EVENTTRACE("%d", state);
+ return state;
+}
+
+wstdcall void WIN_FUNC(KeInitializeMutex,2)
+ (struct nt_mutex *mutex, ULONG level)
+{
+ EVENTENTER("%p", mutex);
+ initialize_object(&mutex->dh, MutexObject, 1);
+ mutex->dh.size = sizeof(*mutex);
+ InitializeListHead(&mutex->list);
+ mutex->abandoned = FALSE;
+ mutex->apc_disable = 1;
+ mutex->owner_thread = NULL;
+ EVENTEXIT(return);
+}
+
+wstdcall LONG WIN_FUNC(KeReleaseMutex,2)
+ (struct nt_mutex *mutex, BOOLEAN wait)
+{
+ LONG ret;
+ struct task_struct *thread;
+
+ EVENTENTER("%p, %d, %p", mutex, wait, current);
+ if (wait == TRUE)
+ WARNING("wait: %d", wait);
+ thread = current;
+ spin_lock_bh(&dispatcher_lock);
+ EVENTTRACE("%p, %p, %p, %d", mutex, thread, mutex->owner_thread,
+ mutex->dh.signal_state);
+ if ((mutex->owner_thread == thread) && (mutex->dh.signal_state <= 0)) {
+ ret = mutex->dh.signal_state++;
+ if (ret == 0) {
+ mutex->owner_thread = NULL;
+ object_signalled(&mutex->dh);
+ }
+ } else {
+ ret = STATUS_MUTANT_NOT_OWNED;
+ WARNING("invalid mutex: %p, %p, %p", mutex, mutex->owner_thread,
+ thread);
+ }
+ EVENTTRACE("%p, %p, %p, %d", mutex, thread, mutex->owner_thread,
+ mutex->dh.signal_state);
+ spin_unlock_bh(&dispatcher_lock);
+ EVENTEXIT(return ret);
+}
+
+wstdcall void WIN_FUNC(KeInitializeSemaphore,3)
+ (struct nt_semaphore *semaphore, LONG count, LONG limit)
+{
+ EVENTENTER("%p: %d", semaphore, count);
+ /* if limit > 1, we need to satisfy as many waits (until count
+ * becomes 0); so we keep decrementing count everytime a wait
+ * is satisified */
+ initialize_object(&semaphore->dh, SemaphoreObject, count);
+ semaphore->dh.size = sizeof(*semaphore);
+ semaphore->limit = limit;
+ EVENTEXIT(return);
+}
+
+wstdcall LONG WIN_FUNC(KeReleaseSemaphore,4)
+ (struct nt_semaphore *semaphore, KPRIORITY incr, LONG adjustment,
+ BOOLEAN wait)
+{
+ LONG ret;
+
+ EVENTENTER("%p", semaphore);
+ spin_lock_bh(&dispatcher_lock);
+ ret = semaphore->dh.signal_state;
+ assert(ret >= 0);
+ if (semaphore->dh.signal_state + adjustment <= semaphore->limit)
+ semaphore->dh.signal_state += adjustment;
+ else {
+ WARNING("releasing %d over limit %d", adjustment,
+ semaphore->limit);
+ semaphore->dh.signal_state = semaphore->limit;
+ }
+ if (semaphore->dh.signal_state > 0)
+ object_signalled(&semaphore->dh);
+ spin_unlock_bh(&dispatcher_lock);
+ EVENTEXIT(return ret);
+}
+
+wstdcall NTSTATUS WIN_FUNC(KeDelayExecutionThread,3)
+ (KPROCESSOR_MODE wait_mode, BOOLEAN alertable, LARGE_INTEGER *interval)
+{
+ int res;
+ long timeout;
+
+ if (wait_mode != 0)
+ ERROR("invalid wait_mode %d", wait_mode);
+
+ timeout = SYSTEM_TIME_TO_HZ(*interval);
+ EVENTTRACE("%p, %Ld, %ld", current, *interval, timeout);
+ if (timeout <= 0)
+ EVENTEXIT(return STATUS_SUCCESS);
+
+ if (alertable)
+ set_current_state(TASK_INTERRUPTIBLE);
+ else
+ set_current_state(TASK_UNINTERRUPTIBLE);
+
+ res = schedule_timeout(timeout);
+ EVENTTRACE("%p, %d", current, res);
+ if (res == 0)
+ EVENTEXIT(return STATUS_SUCCESS);
+ else
+ EVENTEXIT(return STATUS_ALERTED);
+}
+
+wstdcall ULONGLONG WIN_FUNC(KeQueryInterruptTime,0)
+ (void)
+{
+ EXIT5(return jiffies * TICKSPERJIFFY);
+}
+
+wstdcall ULONG WIN_FUNC(KeQueryTimeIncrement,0)
+ (void)
+{
+ EXIT5(return TICKSPERSEC / HZ);
+}
+
+wstdcall void WIN_FUNC(KeQuerySystemTime,1)
+ (LARGE_INTEGER *time)
+{
+ *time = ticks_1601();
+ TRACE5("%Lu, %lu", *time, jiffies);
+}
+
+wstdcall void WIN_FUNC(KeQueryTickCount,1)
+ (LARGE_INTEGER *count)
+{
+ *count = jiffies;
+}
+
+wstdcall LARGE_INTEGER WIN_FUNC(KeQueryPerformanceCounter,1)
+ (LARGE_INTEGER *counter)
+{
+ if (counter)
+ *counter = HZ;
+ return jiffies;
+}
+
+wstdcall KAFFINITY WIN_FUNC(KeQueryActiveProcessors,0)
+ (void)
+{
+ int i, n;
+ KAFFINITY bits = 0;
+#ifdef num_online_cpus
+ n = num_online_cpus();
+#else
+ n = NR_CPUS;
+#endif
+ for (i = 0; i < n; i++)
+ bits = (bits << 1) | 1;
+ return bits;
+}
+
+struct nt_thread *get_current_nt_thread(void)
+{
+ struct task_struct *task = current;
+ struct nt_thread *thread;
+ struct common_object_header *header;
+
+ TRACE6("task: %p", task);
+ thread = NULL;
+ spin_lock_bh(&ntoskernel_lock);
+ nt_list_for_each_entry(header, &object_list, list) {
+ TRACE6("%p, %d", header, header->type);
+ if (header->type != OBJECT_TYPE_NT_THREAD)
+ break;
+ thread = HEADER_TO_OBJECT(header);
+ TRACE6("%p, %p", thread, thread->task);
+ if (thread->task == task)
+ break;
+ else
+ thread = NULL;
+ }
+ spin_unlock_bh(&ntoskernel_lock);
+ if (thread == NULL)
+ TRACE4("couldn't find thread for task %p, %d", task, task->pid);
+ TRACE6("%p", thread);
+ return thread;
+}
+
+static struct task_struct *get_nt_thread_task(struct nt_thread *thread)
+{
+ struct task_struct *task;
+ struct common_object_header *header;
+
+ TRACE6("%p", thread);
+ task = NULL;
+ spin_lock_bh(&ntoskernel_lock);
+ nt_list_for_each_entry(header, &object_list, list) {
+ TRACE6("%p, %d", header, header->type);
+ if (header->type != OBJECT_TYPE_NT_THREAD)
+ break;
+ if (thread == HEADER_TO_OBJECT(header)) {
+ task = thread->task;
+ break;
+ }
+ }
+ spin_unlock_bh(&ntoskernel_lock);
+ if (task == NULL)
+ TRACE2("%p: couldn't find task for %p", current, thread);
+ return task;
+}
+
+static struct nt_thread *create_nt_thread(struct task_struct *task)
+{
+ struct nt_thread *thread;
+ thread = allocate_object(sizeof(*thread), OBJECT_TYPE_NT_THREAD, NULL);
+ if (!thread) {
+ ERROR("couldn't allocate thread object");
+ EXIT2(return NULL);
+ }
+ thread->task = task;
+ if (task)
+ thread->pid = task->pid;
+ else
+ thread->pid = 0;
+ nt_spin_lock_init(&thread->lock);
+ InitializeListHead(&thread->irps);
+ initialize_object(&thread->dh, ThreadObject, 0);
+ thread->dh.size = sizeof(*thread);
+ thread->prio = LOW_PRIORITY;
+ return thread;
+}
+
+wstdcall struct nt_thread *WIN_FUNC(KeGetCurrentThread,0)
+ (void)
+{
+ struct nt_thread *thread = get_current_nt_thread();
+ TRACE2("%p, %p", thread, current);
+ return thread;
+}
+
+wstdcall KPRIORITY WIN_FUNC(KeQueryPriorityThread,1)
+ (struct nt_thread *thread)
+{
+ KPRIORITY prio;
+ struct task_struct *task;
+
+ TRACE2("%p", thread);
+#ifdef CONFIG_X86_64
+ /* sis163u driver for amd64 passes 0x1f from thread created by
+ * PsCreateSystemThread - no idea what is 0x1f */
+ if (thread == (void *)0x1f)
+ thread = get_current_nt_thread();
+#endif
+ if (!thread) {
+ TRACE2("invalid thread");
+ EXIT2(return LOW_REALTIME_PRIORITY);
+ }
+ task = get_nt_thread_task(thread);
+ if (!task) {
+ TRACE2("couldn't find task for thread: %p", thread);
+ EXIT2(return LOW_REALTIME_PRIORITY);
+ }
+
+ prio = thread->prio;
+
+ TRACE2("%d", prio);
+ return prio;
+}
+
+wstdcall KPRIORITY WIN_FUNC(KeSetPriorityThread,2)
+ (struct nt_thread *thread, KPRIORITY prio)
+{
+ KPRIORITY old_prio;
+ struct task_struct *task;
+
+ TRACE2("thread: %p, priority = %u", thread, prio);
+#ifdef CONFIG_X86_64
+ if (thread == (void *)0x1f)
+ thread = get_current_nt_thread();
+#endif
+ if (!thread) {
+ TRACE2("invalid thread");
+ EXIT2(return LOW_REALTIME_PRIORITY);
+ }
+ task = get_nt_thread_task(thread);
+ if (!task) {
+ TRACE2("couldn't find task for thread: %p", thread);
+ EXIT2(return LOW_REALTIME_PRIORITY);
+ }
+
+ old_prio = thread->prio;
+ thread->prio = prio;
+
+ TRACE2("%d, %d", old_prio, thread->prio);
+ return old_prio;
+}
+
+struct thread_trampoline {
+ void (*func)(void *) wstdcall;
+ void *ctx;
+ struct nt_thread *thread;
+ struct completion started;
+};
+
+static int ntdriver_thread(void *data)
+{
+ struct thread_trampoline *thread_tramp = data;
+ /* yes, a tramp! */
+ typeof(thread_tramp->func) func = thread_tramp->func;
+ typeof(thread_tramp->ctx) ctx = thread_tramp->ctx;
+
+ thread_tramp->thread->task = current;
+ thread_tramp->thread->pid = current->pid;
+ TRACE2("thread: %p, task: %p (%d)", thread_tramp->thread,
+ current, current->pid);
+ complete(&thread_tramp->started);
+
+#ifdef PF_NOFREEZE
+ current->flags |= PF_NOFREEZE;
+#endif
+ strncpy(current->comm, "ntdriver", sizeof(current->comm));
+ current->comm[sizeof(current->comm)-1] = 0;
+ LIN2WIN1(func, ctx);
+ ERROR("task: %p", current);
+ return 0;
+}
+
+wstdcall NTSTATUS WIN_FUNC(PsCreateSystemThread,7)
+ (void **handle, ULONG access, void *obj_attr, void *process,
+ void *client_id, void (*func)(void *) wstdcall, void *ctx)
+{
+ struct thread_trampoline thread_tramp;
+
+ ENTER2("handle = %p, access = %u, obj_attr = %p, process = %p, "
+ "client_id = %p, func = %p, context = %p", handle, access,
+ obj_attr, process, client_id, func, ctx);
+
+ thread_tramp.thread = create_nt_thread(NULL);
+ if (!thread_tramp.thread) {
+ ERROR("couldn't allocate thread object");
+ EXIT2(return STATUS_RESOURCES);
+ }
+ TRACE2("thread: %p", thread_tramp.thread);
+ thread_tramp.func = func;
+ thread_tramp.ctx = ctx;
+ init_completion(&thread_tramp.started);
+
+ thread_tramp.thread->task = kthread_run(ntdriver_thread,
+ &thread_tramp, "ntdriver");
+ if (IS_ERR(thread_tramp.thread->task)) {
+ free_object(thread_tramp.thread);
+ EXIT2(return STATUS_FAILURE);
+ }
+ TRACE2("created task: %p", thread_tramp.thread->task);
+
+ wait_for_completion(&thread_tramp.started);
+ *handle = OBJECT_TO_HEADER(thread_tramp.thread);
+ TRACE2("created thread: %p, %p", thread_tramp.thread, *handle);
+ EXIT2(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS WIN_FUNC(PsTerminateSystemThread,1)
+ (NTSTATUS status)
+{
+ struct nt_thread *thread;
+
+ TRACE2("%p, %08X", current, status);
+ thread = get_current_nt_thread();
+ TRACE2("%p", thread);
+ if (thread) {
+ KeSetEvent((struct nt_event *)&thread->dh, 0, FALSE);
+ while (1) {
+ struct nt_list *ent;
+ struct irp *irp;
+ KIRQL irql;
+ irql = nt_spin_lock_irql(&thread->lock, DISPATCH_LEVEL);
+ ent = RemoveHeadList(&thread->irps);
+ nt_spin_unlock_irql(&thread->lock, irql);
+ if (!ent)
+ break;
+ irp = container_of(ent, struct irp, thread_list);
+ IOTRACE("%p", irp);
+ IoCancelIrp(irp);
+ }
+ /* the driver may later query this status with
+ * ZwQueryInformationThread */
+ thread->status = status;
+ } else
+ ERROR("couldn't find thread for task: %p", current);
+
+ complete_and_exit(NULL, status);
+ ERROR("oops: %p, %d", thread->task, thread->pid);
+ return STATUS_FAILURE;
+}
+
+wstdcall BOOLEAN WIN_FUNC(KeRemoveEntryDeviceQueue,2)
+ (struct kdevice_queue *dev_queue, struct kdevice_queue_entry *entry)
+{
+ struct kdevice_queue_entry *e;
+ KIRQL irql;
+
+ irql = nt_spin_lock_irql(&dev_queue->lock, DISPATCH_LEVEL);
+ nt_list_for_each_entry(e, &dev_queue->list, list) {
+ if (e == entry) {
+ RemoveEntryList(&e->list);
+ nt_spin_unlock_irql(&dev_queue->lock, irql);
+ return TRUE;
+ }
+ }
+ nt_spin_unlock_irql(&dev_queue->lock, irql);
+ return FALSE;
+}
+
+wstdcall BOOLEAN WIN_FUNC(KeSynchronizeExecution,3)
+ (struct kinterrupt *interrupt, PKSYNCHRONIZE_ROUTINE synch_routine,
+ void *ctx)
+{
+ BOOLEAN ret;
+ unsigned long flags;
+
+ nt_spin_lock_irqsave(interrupt->actual_lock, flags);
+ ret = LIN2WIN1(synch_routine, ctx);
+ nt_spin_unlock_irqrestore(interrupt->actual_lock, flags);
+ TRACE6("%d", ret);
+ return ret;
+}
+
+wstdcall void *WIN_FUNC(MmAllocateContiguousMemorySpecifyCache,5)
+ (SIZE_T size, PHYSICAL_ADDRESS lowest, PHYSICAL_ADDRESS highest,
+ PHYSICAL_ADDRESS boundary, enum memory_caching_type cache_type)
+{
+ void *addr;
+ gfp_t flags;
+
+ ENTER2("%lu, 0x%lx, 0x%lx, 0x%lx, %d", size, (long)lowest,
+ (long)highest, (long)boundary, cache_type);
+ flags = irql_gfp();
+ addr = wrap_get_free_pages(flags, size);
+ TRACE2("%p, %lu, 0x%x", addr, size, flags);
+ if (addr && ((virt_to_phys(addr) + size) <= highest))
+ EXIT2(return addr);
+#ifdef CONFIG_X86_64
+ /* GFP_DMA is really only 16MB even on x86-64, but there is no
+ * other zone available */
+ if (highest <= DMA_BIT_MASK(31))
+ flags |= __GFP_DMA;
+ else if (highest <= DMA_BIT_MASK(32))
+ flags |= __GFP_DMA32;
+#else
+ if (highest <= DMA_BIT_MASK(24))
+ flags |= __GFP_DMA;
+ else if (highest > DMA_BIT_MASK(30))
+ flags |= __GFP_HIGHMEM;
+#endif
+ addr = wrap_get_free_pages(flags, size);
+ TRACE2("%p, %lu, 0x%x", addr, size, flags);
+ return addr;
+}
+
+wstdcall void WIN_FUNC(MmFreeContiguousMemorySpecifyCache,3)
+ (void *base, SIZE_T size, enum memory_caching_type cache_type)
+{
+ TRACE2("%p, %lu", base, size);
+ free_pages((unsigned long)base, get_order(size));
+}
+
+wstdcall PHYSICAL_ADDRESS WIN_FUNC(MmGetPhysicalAddress,1)
+ (void *base)
+{
+ unsigned long phy = virt_to_phys(base);
+ TRACE2("%p, %p", base, (void *)phy);
+ return phy;
+}
+
+/* Atheros card with pciid 168C:0014 calls this function with 0xf0000
+ * and 0xf6ef0 address, and then check for things that seem to be
+ * related to ACPI: "_SM_" and "_DMI_". This may be the hack they do
+ * to check if this card is installed in IBM thinkpads; we can
+ * probably get this device to work if we create a buffer with the
+ * strings as required by the driver and return virtual address for
+ * that address instead */
+wstdcall void __iomem *WIN_FUNC(MmMapIoSpace,3)
+ (PHYSICAL_ADDRESS phys_addr, SIZE_T size,
+ enum memory_caching_type cache)
+{
+ void __iomem *virt;
+ ENTER1("cache type: %d", cache);
+ if (cache == MmCached)
+ virt = ioremap(phys_addr, size);
+ else
+ virt = ioremap_nocache(phys_addr, size);
+ TRACE1("%Lx, %lu, %p", phys_addr, size, virt);
+ return virt;
+}
+
+wstdcall void WIN_FUNC(MmUnmapIoSpace,2)
+ (void __iomem *addr, SIZE_T size)
+{
+ ENTER1("%p, %lu", addr, size);
+ iounmap(addr);
+ return;
+}
+
+wstdcall ULONG WIN_FUNC(MmSizeOfMdl,2)
+ (void *base, ULONG length)
+{
+ return sizeof(struct mdl) +
+ (sizeof(PFN_NUMBER) * SPAN_PAGES(base, length));
+}
+
+struct mdl *allocate_init_mdl(void *virt, ULONG length)
+{
+ struct wrap_mdl *wrap_mdl;
+ struct mdl *mdl;
+ int mdl_size = MmSizeOfMdl(virt, length);
+
+ if (mdl_size <= MDL_CACHE_SIZE) {
+ wrap_mdl = kmem_cache_alloc(mdl_cache, irql_gfp());
+ if (!wrap_mdl)
+ return NULL;
+ spin_lock_bh(&dispatcher_lock);
+ InsertHeadList(&wrap_mdl_list, &wrap_mdl->list);
+ spin_unlock_bh(&dispatcher_lock);
+ mdl = wrap_mdl->mdl;
+ TRACE3("allocated mdl from cache: %p(%p), %p(%d)",
+ wrap_mdl, mdl, virt, length);
+ memset(mdl, 0, MDL_CACHE_SIZE);
+ MmInitializeMdl(mdl, virt, length);
+ /* mark the MDL as allocated from cache pool so when
+ * it is freed, we free it back to the pool */
+ mdl->flags = MDL_ALLOCATED_FIXED_SIZE | MDL_CACHE_ALLOCATED;
+ } else {
+ wrap_mdl =
+ kmalloc(sizeof(*wrap_mdl) + mdl_size, irql_gfp());
+ if (!wrap_mdl)
+ return NULL;
+ mdl = wrap_mdl->mdl;
+ TRACE3("allocated mdl from memory: %p(%p), %p(%d)",
+ wrap_mdl, mdl, virt, length);
+ spin_lock_bh(&dispatcher_lock);
+ InsertHeadList(&wrap_mdl_list, &wrap_mdl->list);
+ spin_unlock_bh(&dispatcher_lock);
+ memset(mdl, 0, mdl_size);
+ MmInitializeMdl(mdl, virt, length);
+ mdl->flags = MDL_ALLOCATED_FIXED_SIZE;
+ }
+ return mdl;
+}
+
+void free_mdl(struct mdl *mdl)
+{
+ /* A driver may allocate Mdl with NdisAllocateBuffer and free
+ * with IoFreeMdl (e.g., 64-bit Broadcom). Since we need to
+ * treat buffers allocated with Ndis calls differently, we
+ * must call NdisFreeBuffer if it is allocated with Ndis
+ * function. We set 'pool' field in Ndis functions. */
+ if (!mdl)
+ return;
+ if (mdl->pool)
+ NdisFreeBuffer(mdl);
+ else {
+ struct wrap_mdl *wrap_mdl = (struct wrap_mdl *)
+ ((char *)mdl - offsetof(struct wrap_mdl, mdl));
+ spin_lock_bh(&dispatcher_lock);
+ RemoveEntryList(&wrap_mdl->list);
+ spin_unlock_bh(&dispatcher_lock);
+
+ if (mdl->flags & MDL_CACHE_ALLOCATED) {
+ TRACE3("freeing mdl cache: %p, %p, %p",
+ wrap_mdl, mdl, mdl->mappedsystemva);
+ kmem_cache_free(mdl_cache, wrap_mdl);
+ } else {
+ TRACE3("freeing mdl: %p, %p, %p",
+ wrap_mdl, mdl, mdl->mappedsystemva);
+ kfree(wrap_mdl);
+ }
+ }
+ return;
+}
+
+wstdcall void WIN_FUNC(IoBuildPartialMdl,4)
+ (struct mdl *source, struct mdl *target, void *virt, ULONG length)
+{
+ MmInitializeMdl(target, virt, length);
+ target->flags |= MDL_PARTIAL;
+}
+
+wstdcall void WIN_FUNC(MmBuildMdlForNonPagedPool,1)
+ (struct mdl *mdl)
+{
+ PFN_NUMBER *mdl_pages;
+ int i, n;
+
+ ENTER4("%p", mdl);
+ /* already mapped */
+// mdl->mappedsystemva = MmGetMdlVirtualAddress(mdl);
+ mdl->flags |= MDL_SOURCE_IS_NONPAGED_POOL;
+ TRACE4("%p, %p, %p, %d, %d", mdl, mdl->mappedsystemva, mdl->startva,
+ mdl->byteoffset, mdl->bytecount);
+ n = SPAN_PAGES(MmGetSystemAddressForMdl(mdl), MmGetMdlByteCount(mdl));
+ if (n > MDL_CACHE_PAGES)
+ WARNING("%p, %d, %d", MmGetSystemAddressForMdl(mdl),
+ MmGetMdlByteCount(mdl), n);
+ mdl_pages = MmGetMdlPfnArray(mdl);
+ for (i = 0; i < n; i++)
+ mdl_pages[i] = (ULONG_PTR)mdl->startva + (i * PAGE_SIZE);
+ EXIT4(return);
+}
+
+wstdcall void *WIN_FUNC(MmMapLockedPages,2)
+ (struct mdl *mdl, KPROCESSOR_MODE access_mode)
+{
+ /* already mapped */
+// mdl->mappedsystemva = MmGetMdlVirtualAddress(mdl);
+ mdl->flags |= MDL_MAPPED_TO_SYSTEM_VA;
+ /* what is the need for MDL_PARTIAL_HAS_BEEN_MAPPED? */
+ if (mdl->flags & MDL_PARTIAL)
+ mdl->flags |= MDL_PARTIAL_HAS_BEEN_MAPPED;
+ return mdl->mappedsystemva;
+}
+
+wstdcall void *WIN_FUNC(MmMapLockedPagesSpecifyCache,6)
+ (struct mdl *mdl, KPROCESSOR_MODE access_mode,
+ enum memory_caching_type cache_type, void *base_address,
+ ULONG bug_check, enum mm_page_priority priority)
+{
+ return MmMapLockedPages(mdl, access_mode);
+}
+
+wstdcall void WIN_FUNC(MmUnmapLockedPages,2)
+ (void *base, struct mdl *mdl)
+{
+ mdl->flags &= ~MDL_MAPPED_TO_SYSTEM_VA;
+ return;
+}
+
+wstdcall void WIN_FUNC(MmProbeAndLockPages,3)
+ (struct mdl *mdl, KPROCESSOR_MODE access_mode,
+ enum lock_operation operation)
+{
+ /* already locked */
+ mdl->flags |= MDL_PAGES_LOCKED;
+ return;
+}
+
+wstdcall void WIN_FUNC(MmUnlockPages,1)
+ (struct mdl *mdl)
+{
+ mdl->flags &= ~MDL_PAGES_LOCKED;
+ return;
+}
+
+wstdcall BOOLEAN WIN_FUNC(MmIsAddressValid,1)
+ (void *virt_addr)
+{
+ if (virt_addr_valid(virt_addr))
+ return TRUE;
+ else
+ return FALSE;
+}
+
+wstdcall void *WIN_FUNC(MmLockPagableDataSection,1)
+ (void *address)
+{
+ return address;
+}
+
+wstdcall void WIN_FUNC(MmUnlockPagableImageSection,1)
+ (void *handle)
+{
+ return;
+}
+
+wstdcall NTSTATUS WIN_FUNC(ObReferenceObjectByHandle,6)
+ (void *handle, ACCESS_MASK desired_access, void *obj_type,
+ KPROCESSOR_MODE access_mode, void **object, void *handle_info)
+{
+ struct common_object_header *hdr;
+
+ TRACE2("%p", handle);
+ hdr = HANDLE_TO_HEADER(handle);
+ atomic_inc_var(hdr->ref_count);
+ *object = HEADER_TO_OBJECT(hdr);
+ TRACE2("%p, %p, %d, %p", hdr, object, hdr->ref_count, *object);
+ return STATUS_SUCCESS;
+}
+
+/* DDK doesn't say if return value should be before incrementing or
+ * after incrementing reference count, but according to #reactos
+ * devels, it should be return value after incrementing */
+wfastcall LONG WIN_FUNC(ObfReferenceObject,1)
+ (void *object)
+{
+ struct common_object_header *hdr;
+ LONG ret;
+
+ hdr = OBJECT_TO_HEADER(object);
+ ret = post_atomic_add(hdr->ref_count, 1);
+ TRACE2("%p, %d, %p", hdr, hdr->ref_count, object);
+ return ret;
+}
+
+static int dereference_object(void *object)
+{
+ struct common_object_header *hdr;
+ int ref_count;
+
+ ENTER2("object: %p", object);
+ hdr = OBJECT_TO_HEADER(object);
+ TRACE2("hdr: %p", hdr);
+ ref_count = post_atomic_add(hdr->ref_count, -1);
+ TRACE2("object: %p, %d", object, ref_count);
+ if (ref_count < 0)
+ ERROR("invalid object: %p (%d)", object, ref_count);
+ if (ref_count <= 0) {
+ free_object(object);
+ return 1;
+ } else
+ return 0;
+}
+
+wfastcall void WIN_FUNC(ObfDereferenceObject,1)
+ (void *object)
+{
+ TRACE2("%p", object);
+ dereference_object(object);
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwCreateFile,11)
+ (void **handle, ACCESS_MASK access_mask,
+ struct object_attributes *obj_attr, struct io_status_block *iosb,
+ LARGE_INTEGER *size, ULONG file_attr, ULONG share_access,
+ ULONG create_disposition, ULONG create_options, void *ea_buffer,
+ ULONG ea_length)
+{
+ struct common_object_header *coh;
+ struct file_object *fo;
+ struct ansi_string ansi;
+ struct wrap_bin_file *bin_file;
+ char *file_basename;
+ NTSTATUS status;
+
+ spin_lock_bh(&ntoskernel_lock);
+ nt_list_for_each_entry(coh, &object_list, list) {
+ if (coh->type != OBJECT_TYPE_FILE)
+ continue;
+ /* TODO: check if file is opened in shared mode */
+ if (!RtlCompareUnicodeString(&coh->name, obj_attr->name, TRUE)) {
+ fo = HEADER_TO_OBJECT(coh);
+ bin_file = fo->wrap_bin_file;
+ *handle = coh;
+ spin_unlock_bh(&ntoskernel_lock);
+ ObReferenceObject(fo);
+ iosb->status = FILE_OPENED;
+ iosb->info = bin_file->size;
+ EXIT2(return STATUS_SUCCESS);
+ }
+ }
+ spin_unlock_bh(&ntoskernel_lock);
+
+ if (RtlUnicodeStringToAnsiString(&ansi, obj_attr->name, TRUE) !=
+ STATUS_SUCCESS)
+ EXIT2(return STATUS_INSUFFICIENT_RESOURCES);
+
+ file_basename = strrchr(ansi.buf, '\\');
+ if (file_basename)
+ file_basename++;
+ else
+ file_basename = ansi.buf;
+ TRACE2("file: '%s', '%s'", ansi.buf, file_basename);
+
+ fo = allocate_object(sizeof(struct file_object), OBJECT_TYPE_FILE,
+ obj_attr->name);
+ if (!fo) {
+ RtlFreeAnsiString(&ansi);
+ iosb->status = STATUS_INSUFFICIENT_RESOURCES;
+ iosb->info = 0;
+ EXIT2(return STATUS_FAILURE);
+ }
+ coh = OBJECT_TO_HEADER(fo);
+ bin_file = get_bin_file(file_basename);
+ if (bin_file) {
+ TRACE2("%s, %s", bin_file->name, file_basename);
+ fo->flags = FILE_OPENED;
+ } else if (access_mask & FILE_WRITE_DATA) {
+ bin_file = kzalloc(sizeof(*bin_file), GFP_KERNEL);
+ if (bin_file) {
+ strncpy(bin_file->name, file_basename,
+ sizeof(bin_file->name));
+ bin_file->name[sizeof(bin_file->name)-1] = 0;
+ bin_file->data = vmalloc(*size);
+ if (bin_file->data) {
+ memset(bin_file->data, 0, *size);
+ bin_file->size = *size;
+ fo->flags = FILE_CREATED;
+ } else {
+ kfree(bin_file);
+ bin_file = NULL;
+ }
+ }
+ } else
+ bin_file = NULL;
+
+ RtlFreeAnsiString(&ansi);
+ if (!bin_file) {
+ iosb->status = FILE_DOES_NOT_EXIST;
+ iosb->info = 0;
+ free_object(fo);
+ EXIT2(return STATUS_FAILURE);
+ }
+
+ fo->wrap_bin_file = bin_file;
+ fo->current_byte_offset = 0;
+ if (access_mask & FILE_READ_DATA)
+ fo->read_access = TRUE;
+ if (access_mask & FILE_WRITE_DATA)
+ fo->write_access = TRUE;
+ iosb->status = FILE_OPENED;
+ iosb->info = bin_file->size;
+ *handle = coh;
+ TRACE2("handle: %p", *handle);
+ status = STATUS_SUCCESS;
+ EXIT2(return status);
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwOpenFile,6)
+ (void **handle, ACCESS_MASK access_mask,
+ struct object_attributes *obj_attr, struct io_status_block *iosb,
+ ULONG share_access, ULONG open_options)
+{
+ LARGE_INTEGER size;
+ return ZwCreateFile(handle, access_mask, obj_attr, iosb, &size, 0,
+ share_access, 0, open_options, NULL, 0);
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwReadFile,9)
+ (void *handle, struct nt_event *event, void *apc_routine,
+ void *apc_context, struct io_status_block *iosb, void *buffer,
+ ULONG length, LARGE_INTEGER *byte_offset, ULONG *key)
+{
+ struct file_object *fo;
+ struct common_object_header *coh;
+ ULONG count;
+ size_t offset;
+ struct wrap_bin_file *file;
+
+ TRACE2("%p", handle);
+ coh = handle;
+ if (coh->type != OBJECT_TYPE_FILE) {
+ ERROR("handle %p is invalid: %d", handle, coh->type);
+ EXIT2(return STATUS_FAILURE);
+ }
+ fo = HANDLE_TO_OBJECT(coh);
+ file = fo->wrap_bin_file;
+ TRACE2("file: %s (%zu)", file->name, file->size);
+ spin_lock_bh(&ntoskernel_lock);
+ if (byte_offset)
+ offset = *byte_offset;
+ else
+ offset = fo->current_byte_offset;
+ count = min((size_t)length, file->size - offset);
+ TRACE2("count: %u, offset: %zu, length: %u", count, offset, length);
+ memcpy(buffer, ((void *)file->data) + offset, count);
+ fo->current_byte_offset = offset + count;
+ spin_unlock_bh(&ntoskernel_lock);
+ iosb->status = STATUS_SUCCESS;
+ iosb->info = count;
+ EXIT2(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwWriteFile,9)
+ (void *handle, struct nt_event *event, void *apc_routine,
+ void *apc_context, struct io_status_block *iosb, void *buffer,
+ ULONG length, LARGE_INTEGER *byte_offset, ULONG *key)
+{
+ struct file_object *fo;
+ struct common_object_header *coh;
+ struct wrap_bin_file *file;
+ unsigned long offset;
+
+ TRACE2("%p", handle);
+ coh = handle;
+ if (coh->type != OBJECT_TYPE_FILE) {
+ ERROR("handle %p is invalid: %d", handle, coh->type);
+ EXIT2(return STATUS_FAILURE);
+ }
+ fo = HANDLE_TO_OBJECT(coh);
+ file = fo->wrap_bin_file;
+ TRACE2("file: %zu, %u", file->size, length);
+ spin_lock_bh(&ntoskernel_lock);
+ if (byte_offset)
+ offset = *byte_offset;
+ else
+ offset = fo->current_byte_offset;
+ if (length + offset > file->size) {
+ WARNING("%lu, %u", length + offset, (unsigned int)file->size);
+ /* TODO: implement writing past end of current size */
+ iosb->status = STATUS_FAILURE;
+ iosb->info = 0;
+ } else {
+ memcpy(file->data + offset, buffer, length);
+ iosb->status = STATUS_SUCCESS;
+ iosb->info = length;
+ fo->current_byte_offset = offset + length;
+ }
+ spin_unlock_bh(&ntoskernel_lock);
+ EXIT2(return iosb->status);
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwClose,1)
+ (void *handle)
+{
+ struct common_object_header *coh;
+
+ TRACE2("%p", handle);
+ if (handle == NULL) {
+ TRACE1("");
+ EXIT2(return STATUS_SUCCESS);
+ }
+ coh = handle;
+ if (coh->type == OBJECT_TYPE_FILE) {
+ struct file_object *fo;
+ struct wrap_bin_file *bin_file;
+ typeof(fo->flags) flags;
+
+ fo = HANDLE_TO_OBJECT(handle);
+ flags = fo->flags;
+ bin_file = fo->wrap_bin_file;
+ if (dereference_object(fo)) {
+ if (flags == FILE_CREATED) {
+ vfree(bin_file->data);
+ kfree(bin_file);
+ } else
+ free_bin_file(bin_file);
+ }
+ } else if (coh->type == OBJECT_TYPE_NT_THREAD) {
+ struct nt_thread *thread = HANDLE_TO_OBJECT(handle);
+ TRACE2("thread: %p (%p)", thread, handle);
+ ObDereferenceObject(thread);
+ } else {
+ /* TODO: can we just dereference object here? */
+ WARNING("closing handle 0x%x not implemented", coh->type);
+ }
+ EXIT2(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwQueryInformationFile,5)
+ (void *handle, struct io_status_block *iosb, void *info,
+ ULONG length, enum file_info_class class)
+{
+ struct file_object *fo;
+ struct file_name_info *fni;
+ struct file_std_info *fsi;
+ struct wrap_bin_file *file;
+ struct common_object_header *coh;
+
+ ENTER2("%p", handle);
+ coh = handle;
+ if (coh->type != OBJECT_TYPE_FILE) {
+ ERROR("handle %p is invalid: %d", coh, coh->type);
+ EXIT2(return STATUS_FAILURE);
+ }
+ fo = HANDLE_TO_OBJECT(handle);
+ TRACE2("fo: %p, %d", fo, class);
+ switch (class) {
+ case FileNameInformation:
+ fni = info;
+ fni->length = min(length, (typeof(length))coh->name.length);
+ memcpy(fni->name, coh->name.buf, fni->length);
+ iosb->status = STATUS_SUCCESS;
+ iosb->info = fni->length;
+ break;
+ case FileStandardInformation:
+ fsi = info;
+ file = fo->wrap_bin_file;
+ fsi->alloc_size = file->size;
+ fsi->eof = file->size;
+ fsi->num_links = 1;
+ fsi->delete_pending = FALSE;
+ fsi->dir = FALSE;
+ iosb->status = STATUS_SUCCESS;
+ iosb->info = 0;
+ break;
+ default:
+ WARNING("type %d not implemented yet", class);
+ iosb->status = STATUS_FAILURE;
+ iosb->info = 0;
+ break;
+ }
+ EXIT2(return iosb->status);
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwOpenSection,3)
+ (void **handle, ACCESS_MASK access, struct object_attributes *obj_attrs)
+{
+ INFO("%p, 0x%x, %d", obj_attrs, obj_attrs->attributes, access);
+ TODO();
+ *handle = obj_attrs;
+ return STATUS_SUCCESS;
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwMapViewOfSection,10)
+ (void *secn_handle, void *process_handle, void **base_address,
+ ULONG zero_bits, LARGE_INTEGER *secn_offset, SIZE_T *view_size,
+ enum section_inherit inherit, ULONG alloc_type, ULONG protect)
+{
+ INFO("%p, %p, %p", secn_handle, process_handle, base_address);
+ TODO();
+ *base_address = (void *)0xdeadbeef;
+ return STATUS_SUCCESS;
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwUnmapViewOfSection,2)
+ (void *process_handle, void *base_address)
+{
+ INFO("%p, %p", process_handle, base_address);
+ TODO();
+ return STATUS_SUCCESS;
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwCreateKey,7)
+ (void **handle, ACCESS_MASK desired_access,
+ struct object_attributes *attr, ULONG title_index,
+ struct unicode_string *class, ULONG create_options,
+ ULONG *disposition)
+{
+ struct ansi_string ansi;
+ if (RtlUnicodeStringToAnsiString(&ansi, attr->name, TRUE) ==
+ STATUS_SUCCESS) {
+ TRACE1("key: %s", ansi.buf);
+ RtlFreeAnsiString(&ansi);
+ }
+ *handle = NULL;
+ return STATUS_SUCCESS;
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwOpenKey,3)
+ (void **handle, ACCESS_MASK desired_access,
+ struct object_attributes *attr)
+{
+ struct ansi_string ansi;
+ if (RtlUnicodeStringToAnsiString(&ansi, attr->name, TRUE) ==
+ STATUS_SUCCESS) {
+ TRACE1("key: %s", ansi.buf);
+ RtlFreeAnsiString(&ansi);
+ }
+ *handle = NULL;
+ return STATUS_SUCCESS;
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwSetValueKey,6)
+ (void *handle, struct unicode_string *name, ULONG title_index,
+ ULONG type, void *data, ULONG data_size)
+{
+ struct ansi_string ansi;
+ if (RtlUnicodeStringToAnsiString(&ansi, name, TRUE) ==
+ STATUS_SUCCESS) {
+ TRACE1("key: %s", ansi.buf);
+ RtlFreeAnsiString(&ansi);
+ }
+ return STATUS_SUCCESS;
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwQueryValueKey,6)
+ (void *handle, struct unicode_string *name,
+ enum key_value_information_class class, void *info,
+ ULONG length, ULONG *res_length)
+{
+ struct ansi_string ansi;
+ if (RtlUnicodeStringToAnsiString(&ansi, name, TRUE) == STATUS_SUCCESS) {
+ TRACE1("key: %s", ansi.buf);
+ RtlFreeAnsiString(&ansi);
+ }
+ TODO();
+ return STATUS_INVALID_PARAMETER;
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwDeleteKey,1)
+ (void *handle)
+{
+ ENTER2("%p", handle);
+ return STATUS_SUCCESS;
+}
+
+wstdcall NTSTATUS WIN_FUNC(ZwPowerInformation,4)
+ (INT info_level, void *in_buf, ULONG in_buf_len, void *out_buf,
+ ULONG out_buf_len)
+{
+ INFO("%d, %u, %u", info_level, in_buf_len, out_buf_len);
+ TODO();
+ return STATUS_ACCESS_DENIED;
+}
+
+wstdcall NTSTATUS WIN_FUNC(WmiSystemControl,4)
+ (struct wmilib_context *info, struct device_object *dev_obj,
+ struct irp *irp, void *irp_disposition)
+{
+ TODO();
+ return STATUS_SUCCESS;
+}
+
+wstdcall NTSTATUS WIN_FUNC(WmiCompleteRequest,5)
+ (struct device_object *dev_obj, struct irp *irp, NTSTATUS status,
+ ULONG buffer_used, CCHAR priority_boost)
+{
+ TODO();
+ return STATUS_SUCCESS;
+}
+
+noregparm NTSTATUS WIN_FUNC(WmiTraceMessage,12)
+ (void *tracehandle, ULONG message_flags,
+ void *message_guid, USHORT message_no, ...)
+{
+ TODO();
+ EXIT2(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS WIN_FUNC(WmiQueryTraceInformation,4)
+ (enum trace_information_class trace_info_class, void *trace_info,
+ ULONG *req_length, void *buf)
+{
+ TODO();
+ EXIT2(return STATUS_SUCCESS);
+}
+
+/* this function can't be wstdcall as it takes variable number of args */
+noregparm ULONG WIN_FUNC(DbgPrint,12)
+ (char *format, ...)
+{
+#ifdef DEBUG
+ va_list args;
+ static char buf[100];
+
+ va_start(args, format);
+ vsnprintf(buf, sizeof(buf), format, args);
+ printk(KERN_DEBUG "%s (%s): %s", DRIVER_NAME, __func__, buf);
+ va_end(args);
+#endif
+ return STATUS_SUCCESS;
+}
+
+wstdcall void WIN_FUNC(KeBugCheck,1)
+ (ULONG code)
+{
+ TODO();
+ return;
+}
+
+wstdcall void WIN_FUNC(KeBugCheckEx,5)
+ (ULONG code, ULONG_PTR param1, ULONG_PTR param2,
+ ULONG_PTR param3, ULONG_PTR param4)
+{
+ TODO();
+ return;
+}
+
+wstdcall void WIN_FUNC(ExSystemTimeToLocalTime,2)
+ (LARGE_INTEGER *system_time, LARGE_INTEGER *local_time)
+{
+ *local_time = *system_time;
+}
+
+wstdcall ULONG WIN_FUNC(ExSetTimerResolution,2)
+ (ULONG time, BOOLEAN set)
+{
+ /* why a driver should change system wide timer resolution is
+ * beyond me */
+ return time;
+}
+
+wstdcall void WIN_FUNC(DbgBreakPoint,0)
+ (void)
+{
+ TODO();
+}
+
+wstdcall void WIN_FUNC(_except_handler3,0)
+ (void)
+{
+ TODO();
+}
+
+wstdcall void WIN_FUNC(__C_specific_handler,0)
+ (void)
+{
+ TODO();
+}
+
+wstdcall void WIN_FUNC(_purecall,0)
+ (void)
+{
+ TODO();
+}
+
+wstdcall void WIN_FUNC(__chkstk,0)
+ (void)
+{
+ TODO();
+}
+
+struct worker_init_struct {
+ work_struct_t work;
+ struct completion completion;
+ struct nt_thread *nt_thread;
+};
+
+static void wrap_worker_init_func(worker_param_t param)
+{
+ struct worker_init_struct *worker_init_struct;
+
+ worker_init_struct =
+ worker_param_data(param, struct worker_init_struct, work);
+ TRACE1("%p", worker_init_struct);
+ worker_init_struct->nt_thread = create_nt_thread(current);
+ if (!worker_init_struct->nt_thread)
+ WARNING("couldn't create worker thread");
+ complete(&worker_init_struct->completion);
+}
+
+struct nt_thread *wrap_worker_init(workqueue_struct_t *wq)
+{
+ struct worker_init_struct worker_init_struct;
+
+ TRACE1("%p", &worker_init_struct);
+ init_completion(&worker_init_struct.completion);
+ initialize_work(&worker_init_struct.work, wrap_worker_init_func,
+ &worker_init_struct);
+ worker_init_struct.nt_thread = NULL;
+ if (wq)
+ queue_work(wq, &worker_init_struct.work);
+ else
+ schedule_work(&worker_init_struct.work);
+ wait_for_completion(&worker_init_struct.completion);
+ TRACE1("%p", worker_init_struct.nt_thread);
+ return worker_init_struct.nt_thread;
+}
+
+int ntoskernel_init(void)
+{
+ struct timeval now;
+
+ spin_lock_init(&dispatcher_lock);
+ spin_lock_init(&ntoskernel_lock);
+ spin_lock_init(&ntos_work_lock);
+ spin_lock_init(&kdpc_list_lock);
+ spin_lock_init(&irp_cancel_lock);
+ InitializeListHead(&wrap_mdl_list);
+ InitializeListHead(&kdpc_list);
+ InitializeListHead(&callback_objects);
+ InitializeListHead(&bus_driver_list);
+ InitializeListHead(&object_list);
+ InitializeListHead(&ntos_work_list);
+
+ nt_spin_lock_init(&nt_list_lock);
+
+ initialize_work(&kdpc_work, kdpc_worker, NULL);
+ initialize_work(&ntos_work, ntos_work_worker, NULL);
+ wrap_timer_slist.next = NULL;
+
+ do_gettimeofday(&now);
+ wrap_ticks_to_boot = TICKS_1601_TO_1970;
+ wrap_ticks_to_boot += (u64)now.tv_sec * TICKSPERSEC;
+ wrap_ticks_to_boot += now.tv_usec * 10;
+ wrap_ticks_to_boot -= jiffies * TICKSPERJIFFY;
+ TRACE2("%Lu", wrap_ticks_to_boot);
+
+#ifdef WRAP_PREEMPT
+ do {
+ int cpu;
+ for_each_possible_cpu(cpu) {
+ irql_info_t *info;
+ info = &per_cpu(irql_info, cpu);
+ mutex_init(&(info->lock));
+ info->task = NULL;
+ info->count = 0;
+ }
+ } while (0);
+#endif
+
+ ntos_wq = create_singlethread_workqueue("ntos_wq");
+ if (!ntos_wq) {
+ WARNING("couldn't create ntos_wq thread");
+ return -ENOMEM;
+ }
+ ntos_worker_thread = wrap_worker_init(ntos_wq);
+ TRACE1("%p", ntos_worker_thread);
+
+ if (add_bus_driver("PCI")
+#ifdef ENABLE_USB
+ || add_bus_driver("USB")
+#endif
+ ) {
+ ntoskernel_exit();
+ return -ENOMEM;
+ }
+ mdl_cache =
+ wrap_kmem_cache_create("wrap_mdl",
+ sizeof(struct wrap_mdl) + MDL_CACHE_SIZE,
+ 0, 0);
+ TRACE2("%p", mdl_cache);
+ if (!mdl_cache) {
+ ERROR("couldn't allocate MDL cache");
+ ntoskernel_exit();
+ return -ENOMEM;
+ }
+
+#if defined(CONFIG_X86_64)
+ memset(&kuser_shared_data, 0, sizeof(kuser_shared_data));
+ *((ULONG64 *)&kuser_shared_data.system_time) = ticks_1601();
+ init_timer(&shared_data_timer);
+ shared_data_timer.function = update_user_shared_data_proc;
+ shared_data_timer.data = (unsigned long)0;
+#endif
+ return 0;
+}
+
+int ntoskernel_init_device(struct wrap_device *wd)
+{
+#if defined(CONFIG_X86_64)
+ if (kuser_shared_data.reserved1)
+ mod_timer(&shared_data_timer, jiffies + MSEC_TO_HZ(30));
+#endif
+ return 0;
+}
+
+void ntoskernel_exit_device(struct wrap_device *wd)
+{
+ ENTER2("");
+
+ KeFlushQueuedDpcs();
+ EXIT2(return);
+}
+
+void ntoskernel_exit(void)
+{
+ struct nt_list *cur;
+
+ ENTER2("");
+
+ /* free kernel (Ke) timers */
+ TRACE2("freeing timers");
+ while (1) {
+ struct wrap_timer *wrap_timer;
+ struct nt_slist *slist;
+
+ spin_lock_bh(&ntoskernel_lock);
+ if ((slist = wrap_timer_slist.next))
+ wrap_timer_slist.next = slist->next;
+ spin_unlock_bh(&ntoskernel_lock);
+ TIMERTRACE("%p", slist);
+ if (!slist)
+ break;
+ wrap_timer = container_of(slist, struct wrap_timer, slist);
+ if (del_timer_sync(&wrap_timer->timer))
+ WARNING("Buggy Windows driver left timer %p running",
+ wrap_timer->nt_timer);
+ memset(wrap_timer, 0, sizeof(*wrap_timer));
+ slack_kfree(wrap_timer);
+ }
+
+ TRACE2("freeing MDLs");
+ if (mdl_cache) {
+ spin_lock_bh(&ntoskernel_lock);
+ if (!IsListEmpty(&wrap_mdl_list))
+ ERROR("Windows driver didn't free all MDLs; "
+ "freeing them now");
+ while ((cur = RemoveHeadList(&wrap_mdl_list))) {
+ struct wrap_mdl *wrap_mdl;
+ wrap_mdl = container_of(cur, struct wrap_mdl, list);
+ if (wrap_mdl->mdl->flags & MDL_CACHE_ALLOCATED)
+ kmem_cache_free(mdl_cache, wrap_mdl);
+ else
+ kfree(wrap_mdl);
+ }
+ spin_unlock_bh(&ntoskernel_lock);
+ kmem_cache_destroy(mdl_cache);
+ mdl_cache = NULL;
+ }
+
+ TRACE2("freeing callbacks");
+ spin_lock_bh(&ntoskernel_lock);
+ while ((cur = RemoveHeadList(&callback_objects))) {
+ struct callback_object *object;
+ struct nt_list *ent;
+ object = container_of(cur, struct callback_object, list);
+ while ((ent = RemoveHeadList(&object->callback_funcs))) {
+ struct callback_func *f;
+ f = container_of(ent, struct callback_func, list);
+ kfree(f);
+ }
+ kfree(object);
+ }
+ spin_unlock_bh(&ntoskernel_lock);
+
+ spin_lock_bh(&ntoskernel_lock);
+ while ((cur = RemoveHeadList(&bus_driver_list))) {
+ struct bus_driver *bus_driver;
+ bus_driver = container_of(cur, struct bus_driver, list);
+ /* TODO: make sure all all drivers are shutdown/removed */
+ kfree(bus_driver);
+ }
+ spin_unlock_bh(&ntoskernel_lock);
+
+#if defined(CONFIG_X86_64)
+ del_timer_sync(&shared_data_timer);
+#endif
+ if (ntos_wq)
+ destroy_workqueue(ntos_wq);
+ TRACE1("%p", ntos_worker_thread);
+ if (ntos_worker_thread)
+ ObDereferenceObject(ntos_worker_thread);
+ ENTER2("freeing objects");
+ spin_lock_bh(&ntoskernel_lock);
+ while ((cur = RemoveHeadList(&object_list))) {
+ struct common_object_header *hdr;
+ hdr = container_of(cur, struct common_object_header, list);
+ if (hdr->type == OBJECT_TYPE_NT_THREAD)
+ TRACE1("object %p(%d) was not freed, freeing it now",
+ HEADER_TO_OBJECT(hdr), hdr->type);
+ else
+ WARNING("object %p(%d) was not freed, freeing it now",
+ HEADER_TO_OBJECT(hdr), hdr->type);
+ ExFreePool(hdr);
+ }
+ spin_unlock_bh(&ntoskernel_lock);
+
+ EXIT2(return);
+}
diff --git a/ubuntu/ndiswrapper/ntoskernel.h b/ubuntu/ndiswrapper/ntoskernel.h
new file mode 100644
index 00000000000..ff0535bc0e9
--- /dev/null
+++ b/ubuntu/ndiswrapper/ntoskernel.h
@@ -0,0 +1,1157 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef _NTOSKERNEL_H_
+#define _NTOSKERNEL_H_
+
+#include <linux/types.h>
+#include <linux/timer.h>
+#include <linux/time.h>
+#include <linux/module.h>
+#include <linux/kmod.h>
+
+#include <linux/netdevice.h>
+#include <linux/wireless.h>
+#include <linux/pci.h>
+#include <linux/wait.h>
+#include <linux/pm.h>
+#include <linux/delay.h>
+#include <linux/mm.h>
+#include <linux/random.h>
+#include <linux/ctype.h>
+#include <linux/list.h>
+#include <linux/sched.h>
+#include <linux/usb.h>
+#include <linux/spinlock.h>
+#include <asm/mman.h>
+#include <linux/version.h>
+#include <linux/etherdevice.h>
+#include <net/iw_handler.h>
+#include <linux/ethtool.h>
+#include <linux/if_arp.h>
+#include <linux/rtnetlink.h>
+#include <linux/highmem.h>
+#include <linux/percpu.h>
+#include <linux/kthread.h>
+#include <linux/workqueue.h>
+
+#if !defined(CONFIG_X86) && !defined(CONFIG_X86_64)
+#error "this module is for x86 or x86_64 architectures only"
+#endif
+
+/* Interrupt backwards compatibility stuff */
+#include <linux/interrupt.h>
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,29)
+#ifndef IRQ_HANDLED
+#define IRQ_HANDLED
+#define IRQ_NONE
+#define irqreturn_t void
+#endif
+#endif /* Linux < 2.6.29 */
+
+/* pci functions in 2.6 kernels have problems allocating dma buffers,
+ * but seem to work fine with dma functions
+ */
+#include <asm/dma-mapping.h>
+
+#define PCI_DMA_ALLOC_COHERENT(pci_dev,size,dma_handle) \
+ dma_alloc_coherent(&pci_dev->dev,size,dma_handle, \
+ GFP_KERNEL | __GFP_REPEAT)
+#define PCI_DMA_FREE_COHERENT(pci_dev,size,cpu_addr,dma_handle) \
+ dma_free_coherent(&pci_dev->dev,size,cpu_addr,dma_handle)
+#define PCI_DMA_MAP_SINGLE(pci_dev,addr,size,direction) \
+ dma_map_single(&pci_dev->dev,addr,size,direction)
+#define PCI_DMA_UNMAP_SINGLE(pci_dev,dma_handle,size,direction) \
+ dma_unmap_single(&pci_dev->dev,dma_handle,size,direction)
+#define MAP_SG(pci_dev, sglist, nents, direction) \
+ dma_map_sg(&pci_dev->dev, sglist, nents, direction)
+#define UNMAP_SG(pci_dev, sglist, nents, direction) \
+ dma_unmap_sg(&pci_dev->dev, sglist, nents, direction)
+#define PCI_DMA_MAP_ERROR(dma_addr) dma_mapping_error(dma_addr)
+
+
+#if defined(CONFIG_NET_RADIO) && !defined(CONFIG_WIRELESS_EXT)
+#define CONFIG_WIRELESS_EXT
+#endif
+
+#define prepare_wait_condition(task, var, value) \
+do { \
+ var = value; \
+ task = current; \
+ barrier(); \
+} while (0)
+
+/* Wait in wait_state (e.g., TASK_INTERRUPTIBLE) for condition to
+ * become true; timeout is either jiffies (> 0) to wait or 0 to wait
+ * forever.
+ * When timeout == 0, return value is
+ * > 0 if condition becomes true, or
+ * < 0 if signal is pending on the thread.
+ * When timeout > 0, return value is
+ * > 0 if condition becomes true before timeout,
+ * < 0 if signal is pending on the thread before timeout, or
+ * 0 if timedout (condition may have become true at the same time)
+ */
+
+#define wait_condition(condition, timeout, wait_state) \
+({ \
+ long ret = timeout ? timeout : 1; \
+ while (1) { \
+ if (signal_pending(current)) { \
+ ret = -ERESTARTSYS; \
+ break; \
+ } \
+ set_current_state(wait_state); \
+ if (condition) { \
+ __set_current_state(TASK_RUNNING); \
+ break; \
+ } \
+ if (timeout) { \
+ ret = schedule_timeout(ret); \
+ if (!ret) \
+ break; \
+ } else \
+ schedule(); \
+ } \
+ ret; \
+})
+
+#ifdef WRAP_WQ
+
+struct workqueue_struct;
+
+struct workqueue_thread {
+ spinlock_t lock;
+ struct task_struct *task;
+ struct completion *completion;
+ char name[16];
+ int pid;
+ /* whether any work_structs pending? <0 implies quit */
+ s8 pending;
+ /* list of work_structs pending */
+ struct list_head work_list;
+};
+
+typedef struct workqueue_struct {
+ u8 singlethread;
+ u8 qon;
+ int num_cpus;
+ struct workqueue_thread threads[0];
+} workqueue_struct_t;
+
+typedef struct {
+ struct list_head list;
+ void (*func)(void *data);
+ void *data;
+ /* whether/on which thread scheduled */
+ struct workqueue_thread *thread;
+} work_struct_t;
+
+#define initialize_work(work, pfunc, pdata) \
+ do { \
+ (work)->func = (pfunc); \
+ (work)->data = (pdata); \
+ (work)->thread = NULL; \
+ } while (0)
+
+#undef create_singlethread_workqueue
+#define create_singlethread_workqueue(name) wrap_create_wq(name, 1, 0)
+#undef create_workqueue
+#define create_workqueue(name) wrap_create_wq(name, 0, 0)
+#undef destroy_workqueue
+#define destroy_workqueue wrap_destroy_wq
+#undef queue_work
+#define queue_work wrap_queue_work
+#undef flush_workqueue
+#define flush_workqueue wrap_flush_wq
+
+workqueue_struct_t *wrap_create_wq(const char *name, u8 singlethread, u8 freeze);
+void wrap_destroy_wq_on(workqueue_struct_t *workq, int cpu);
+void wrap_destroy_wq(workqueue_struct_t *workq);
+int wrap_queue_work_on(workqueue_struct_t *workq, work_struct_t *work,
+ int cpu);
+int wrap_queue_work(workqueue_struct_t *workq, work_struct_t *work);
+void wrap_cancel_work(work_struct_t *work);
+void wrap_flush_wq_on(workqueue_struct_t *workq, int cpu);
+void wrap_flush_wq(workqueue_struct_t *workq);
+typedef void *worker_param_t;
+#define worker_param_data(param, type, member) param
+
+#else // WRAP_WQ
+
+typedef struct workqueue_struct workqueue_struct_t;
+typedef struct work_struct work_struct_t;
+
+#if defined(INIT_WORK_NAR) || defined(INIT_DELAYED_WORK_DEFERRABLE)
+#define initialize_work(work, func, data) INIT_WORK(work, func)
+typedef struct work_struct *worker_param_t;
+#define worker_param_data(param, type, member) \
+ container_of(param, type, member)
+#else
+#define initialize_work(work, func, data) INIT_WORK(work, func, data)
+typedef void *worker_param_t;
+#define worker_param_data(param, type, member) param
+#endif // INIT_WORK_NAR
+
+#endif // WRAP_WQ
+
+struct nt_thread *wrap_worker_init(workqueue_struct_t *wq);
+
+#ifdef module_param
+#define WRAP_MODULE_PARM_INT(name, perm) module_param(name, int, perm)
+#define WRAP_MODULE_PARM_STRING(name, perm) module_param(name, charp, perm)
+#else
+#define WRAP_MODULE_PARM_INT(name, perm) MODULE_PARM(name, "i")
+#define WRAP_MODULE_PARM_STRING(name, perm) MODULE_PARM(name, "s")
+#endif
+
+#ifndef LOCK_PREFIX
+#ifdef LOCK
+#define LOCK_PREFIX LOCK
+#else
+#ifdef CONFIG_SMP
+#define LOCK_PREFIX "lock ; "
+#else
+#define LOCK_PREFIX ""
+#endif
+#endif
+#endif
+
+#ifndef NETDEV_TX_OK
+#define NETDEV_TX_OK 0
+#endif
+
+#ifndef NETDEV_TX_BUSY
+#define NETDEV_TX_BUSY 1
+#endif
+
+#ifndef CHECKSUM_HW
+#define CHECKSUM_HW CHECKSUM_PARTIAL
+#endif
+
+#ifndef offset_in_page
+#define offset_in_page(p) ((unsigned long)(p) & ~PAGE_MASK)
+#endif
+
+#ifndef PMSG_SUSPEND
+#ifdef PM_SUSPEND
+/* this is not correct - the value of PM_SUSPEND is different from
+ * PMSG_SUSPEND, but ndiswrapper doesn't care about the value when
+ * suspending */
+#define PMSG_SUSPEND PM_SUSPEND
+#define PSMG_ON PM_ON
+#else
+typedef u32 pm_message_t;
+#define PMSG_SUSPEND 2
+#define PMSG_ON 0
+#endif
+#endif
+
+#ifndef PCI_D0
+#define PCI_D0 0
+#endif
+
+#ifndef PCI_D3hot
+#define PCI_D3hot 3
+#endif
+
+#ifndef PCI_D3cold
+#define PCI_D3cold 3
+#endif
+
+#ifndef PM_EVENT_SUSPEND
+#define PM_EVENT_SUSPEND 2
+#endif
+
+#if !defined(HAVE_NETDEV_PRIV)
+#define netdev_priv(dev) ((dev)->priv)
+#endif
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18)
+#define ISR_PT_REGS_PARAM_DECL
+#define ISR_PT_REGS_ARG
+#else
+#define ISR_PT_REGS_PARAM_DECL , struct pt_regs *regs
+#define ISR_PT_REGS_ARG , NULL
+#endif
+
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16)
+#define for_each_possible_cpu(_cpu) for_each_cpu(_cpu)
+#endif
+
+#ifndef flush_icache_range
+#define flush_icache_range(start, end) do { } while (0)
+#endif
+
+#ifndef CHECKSUM_PARTIAL
+#define CHECKSUM_PARTIAL CHECKSUM_HW
+#endif
+
+#ifndef IRQF_SHARED
+#define IRQF_SHARED SA_SHIRQ
+#endif
+
+#define memcpy_skb(skb, from, length) \
+ memcpy(skb_put(skb, length), from, length)
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
+#ifndef DMA_BIT_MASK
+#define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
+#endif
+#endif
+
+#ifndef __GFP_DMA32
+#define __GFP_DMA32 GFP_DMA
+#endif
+
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,22)
+#define wrap_kmem_cache_create(name, size, align, flags) \
+ kmem_cache_create(name, size, align, flags, NULL, NULL)
+#else
+#define wrap_kmem_cache_create(name, size, align, flags) \
+ kmem_cache_create(name, size, align, flags, NULL)
+#endif
+
+#include "winnt_types.h"
+#include "ndiswrapper.h"
+#include "pe_linker.h"
+#include "wrapmem.h"
+#include "lin2win.h"
+#include "loader.h"
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
+static inline void netif_tx_lock(struct net_device *dev)
+{
+ spin_lock(&dev->xmit_lock);
+}
+static inline void netif_tx_unlock(struct net_device *dev)
+{
+ spin_unlock(&dev->xmit_lock);
+}
+static inline void netif_tx_lock_bh(struct net_device *dev)
+{
+ spin_lock_bh(&dev->xmit_lock);
+}
+static inline void netif_tx_unlock_bh(struct net_device *dev)
+{
+ spin_unlock_bh(&dev->xmit_lock);
+}
+#endif
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
+static inline void netif_poll_enable(struct net_device *dev)
+{
+}
+static inline void netif_poll_disable(struct net_device *dev)
+{
+}
+#endif
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
+#define proc_net_root init_net.proc_net
+#else
+#define proc_net_root proc_net
+#endif
+
+/* TICK is 100ns */
+#define TICKSPERSEC 10000000
+#define TICKSPERMSEC 10000
+#define SECSPERDAY 86400
+#define TICKSPERJIFFY ((TICKSPERSEC + HZ - 1) / HZ)
+
+#define int_div_round(x, y) (((x) + (y - 1)) / (y))
+
+/* 1601 to 1970 is 369 years plus 89 leap days */
+#define SECS_1601_TO_1970 ((369 * 365 + 89) * (u64)SECSPERDAY)
+#define TICKS_1601_TO_1970 (SECS_1601_TO_1970 * TICKSPERSEC)
+
+/* 100ns units to HZ; if sys_time is negative, relative to current
+ * clock, otherwise from year 1601 */
+#define SYSTEM_TIME_TO_HZ(sys_time) \
+ (((sys_time) <= 0) ? \
+ int_div_round(((u64)HZ * (-(sys_time))), TICKSPERSEC) : \
+ int_div_round(((s64)HZ * ((sys_time) - ticks_1601())), TICKSPERSEC))
+
+#define MSEC_TO_HZ(ms) int_div_round((ms * HZ), 1000)
+#define USEC_TO_HZ(us) int_div_round((us * HZ), 1000000)
+
+extern u64 wrap_ticks_to_boot;
+
+static inline u64 ticks_1601(void)
+{
+ return wrap_ticks_to_boot + (u64)jiffies * TICKSPERJIFFY;
+}
+
+typedef void (*generic_func)(void);
+
+struct wrap_export {
+ const char *name;
+ generic_func func;
+};
+
+#ifdef CONFIG_X86_64
+
+#define WIN_SYMBOL(name, argc) \
+ {#name, (generic_func) win2lin_ ## name ## _ ## argc}
+#define WIN_WIN_SYMBOL(name, argc) \
+ {#name, (generic_func) win2lin__win_ ## name ## _ ## argc}
+#define WIN_FUNC_DECL(name, argc) \
+ extern typeof(name) win2lin_ ## name ## _ ## argc;
+#define WIN_FUNC_PTR(name, argc) win2lin_ ## name ## _ ## argc
+
+#else
+
+#define WIN_SYMBOL(name, argc) {#name, (generic_func)name}
+#define WIN_WIN_SYMBOL(name, argc) {#name, (generic_func)_win_ ## name}
+#define WIN_FUNC_DECL(name, argc)
+#define WIN_FUNC_PTR(name, argc) name
+
+#endif
+
+#define WIN_FUNC(name, argc) name
+/* map name s to f - if f is different from s */
+#define WIN_SYMBOL_MAP(s, f)
+
+#define POOL_TAG(A, B, C, D) \
+ ((ULONG)((A) + ((B) << 8) + ((C) << 16) + ((D) << 24)))
+
+struct pe_image {
+ char name[MAX_DRIVER_NAME_LEN];
+ UINT (*entry)(struct driver_object *, struct unicode_string *) wstdcall;
+ void *image;
+ int size;
+ int type;
+
+ IMAGE_NT_HEADERS *nt_hdr;
+ IMAGE_OPTIONAL_HEADER *opt_hdr;
+};
+
+struct ndis_mp_block;
+
+struct wrap_timer {
+ struct nt_slist slist;
+ struct timer_list timer;
+ struct nt_timer *nt_timer;
+ long repeat;
+#ifdef TIMER_DEBUG
+ unsigned long wrap_timer_magic;
+#endif
+};
+
+struct ntos_work_item {
+ struct nt_list list;
+ void *arg1;
+ void *arg2;
+ NTOS_WORK_FUNC func;
+};
+
+struct wrap_device_setting {
+ struct nt_list list;
+ char name[MAX_SETTING_NAME_LEN];
+ char value[MAX_SETTING_VALUE_LEN];
+ void *encoded;
+};
+
+struct wrap_bin_file {
+ char name[MAX_DRIVER_NAME_LEN];
+ size_t size;
+ void *data;
+};
+
+#define WRAP_DRIVER_CLIENT_ID 1
+
+struct wrap_driver {
+ struct nt_list list;
+ struct driver_object *drv_obj;
+ char name[MAX_DRIVER_NAME_LEN];
+ char version[MAX_SETTING_VALUE_LEN];
+ unsigned short num_pe_images;
+ struct pe_image pe_images[MAX_DRIVER_PE_IMAGES];
+ unsigned short num_bin_files;
+ struct wrap_bin_file *bin_files;
+ struct nt_list wrap_devices;
+ struct nt_list settings;
+ int dev_type;
+ struct ndis_driver *ndis_driver;
+};
+
+enum hw_status {
+ HW_INITIALIZED = 1, HW_SUSPENDED, HW_HALTED, HW_PRESENT,
+};
+
+struct wrap_device {
+ /* first part is (de)initialized once by loader */
+ struct nt_list list;
+ int dev_bus;
+ int vendor;
+ int device;
+ int subvendor;
+ int subdevice;
+ char conf_file_name[MAX_DRIVER_NAME_LEN];
+ char driver_name[MAX_DRIVER_NAME_LEN];
+ struct wrap_driver *driver;
+ struct nt_list settings;
+
+ /* rest should be (de)initialized when a device is
+ * (un)plugged */
+ struct cm_resource_list *resource_list;
+ unsigned long hw_status;
+ struct device_object *pdo;
+ union {
+ struct {
+ struct pci_dev *pdev;
+ enum device_power_state wake_state;
+ } pci;
+ struct {
+ struct usb_device *udev;
+ struct usb_interface *intf;
+ int num_alloc_urbs;
+ struct nt_list wrap_urb_list;
+ } usb;
+ };
+ union {
+ struct ndis_device *wnd;
+ };
+};
+
+#define wrap_is_pci_bus(dev_bus) \
+ (WRAP_BUS(dev_bus) == WRAP_PCI_BUS || \
+ WRAP_BUS(dev_bus) == WRAP_PCMCIA_BUS)
+#ifdef ENABLE_USB
+/* earlier versions of ndiswrapper used 0 as USB_BUS */
+#define wrap_is_usb_bus(dev_bus) \
+ (WRAP_BUS(dev_bus) == WRAP_USB_BUS || \
+ WRAP_BUS(dev_bus) == WRAP_INTERNAL_BUS)
+#else
+#define wrap_is_usb_bus(dev_bus) 0
+#endif
+#define wrap_is_bluetooth_device(dev_bus) \
+ (WRAP_DEVICE(dev_bus) == WRAP_BLUETOOTH_DEVICE1 || \
+ WRAP_DEVICE(dev_bus) == WRAP_BLUETOOTH_DEVICE2)
+
+extern workqueue_struct_t *ntos_wq;
+#define schedule_ntos_work(work_struct) queue_work(ntos_wq, work_struct)
+#define schedule_work(work_struct) queue_work(ntos_wq, work_struct)
+
+extern workqueue_struct_t *ndis_wq;
+#define schedule_ndis_work(work_struct) queue_work(ndis_wq, work_struct)
+
+extern workqueue_struct_t *wrapndis_wq;
+#define schedule_wrapndis_work(work_struct) queue_work(wrapndis_wq, work_struct)
+
+#define atomic_unary_op(var, size, oper) \
+do { \
+ if (size == 1) \
+ __asm__ __volatile__( \
+ LOCK_PREFIX oper "b %b0\n\t" : "+m" (var)); \
+ else if (size == 2) \
+ __asm__ __volatile__( \
+ LOCK_PREFIX oper "w %w0\n\t" : "+m" (var)); \
+ else if (size == 4) \
+ __asm__ __volatile__( \
+ LOCK_PREFIX oper "l %0\n\t" : "+m" (var)); \
+ else if (size == 8) \
+ __asm__ __volatile__( \
+ LOCK_PREFIX oper "q %q0\n\t" : "+m" (var)); \
+ else { \
+ extern void _invalid_op_size_(void); \
+ _invalid_op_size_(); \
+ } \
+} while (0)
+
+#define atomic_inc_var_size(var, size) atomic_unary_op(var, size, "inc")
+
+#define atomic_inc_var(var) atomic_inc_var_size(var, sizeof(var))
+
+#define atomic_dec_var_size(var, size) atomic_unary_op(var, size, "dec")
+
+#define atomic_dec_var(var) atomic_dec_var_size(var, sizeof(var))
+
+#define pre_atomic_add(var, i) \
+({ \
+ typeof(var) pre; \
+ __asm__ __volatile__( \
+ LOCK_PREFIX "xadd %0, %1\n\t" \
+ : "=r"(pre), "+m"(var) \
+ : "0"(i)); \
+ pre; \
+})
+
+#define post_atomic_add(var, i) (pre_atomic_add(var, i) + i)
+
+#ifndef in_atomic
+#define in_atomic() in_interrupt()
+#endif
+
+#ifndef preempt_enable_no_resched
+#define preempt_enable_no_resched() preempt_enable()
+#endif
+
+//#define DEBUG_IRQL 1
+
+#ifdef DEBUG_IRQL
+#define assert_irql(cond) \
+do { \
+ KIRQL _irql_ = current_irql(); \
+ if (!(cond)) { \
+ WARNING("assertion '%s' failed: %d", #cond, _irql_); \
+ DBG_BLOCK(4) { \
+ dump_stack(); \
+ } \
+ } \
+} while (0)
+#else
+#define assert_irql(cond) do { } while (0)
+#endif
+
+/* When preempt is enabled, we should preempt_disable to raise IRQL to
+ * DISPATCH_LEVEL, to be consistent with the semantics. However, using
+ * a mutex instead, so that only ndiswrapper threads run one at a time
+ * on a processor when at DISPATCH_LEVEL seems to be enough. So that
+ * is what we will use until we learn otherwise. If
+ * preempt_(en|dis)able is required for some reason, comment out
+ * following #define. */
+
+#define WRAP_PREEMPT 1
+
+#if !defined(CONFIG_PREEMPT) || defined(CONFIG_PREEMPT_RT)
+#ifndef WRAP_PREEMPT
+#define WRAP_PREEMPT 1
+#endif
+#endif
+
+//#undef WRAP_PREEMPT
+
+#ifdef WRAP_PREEMPT
+
+typedef struct {
+ int count;
+ struct mutex lock;
+#ifdef CONFIG_SMP
+ typeof(current->cpus_allowed) cpus_allowed;
+#endif
+ struct task_struct *task;
+} irql_info_t;
+
+DECLARE_PER_CPU(irql_info_t, irql_info);
+
+static inline KIRQL raise_irql(KIRQL newirql)
+{
+ irql_info_t *info;
+
+ assert(newirql == DISPATCH_LEVEL);
+ info = &get_cpu_var(irql_info);
+ if (info->task == current) {
+ assert(info->count > 0);
+ assert(mutex_is_locked(&info->lock));
+#if defined(CONFIG_SMP) && defined(DEBUG)
+ do {
+ cpumask_t cpumask;
+ cpumask = cpumask_of_cpu(smp_processor_id());
+ cpus_xor(cpumask, cpumask, current->cpus_allowed);
+ assert(cpus_empty(cpumask));
+ } while (0);
+#endif
+ info->count++;
+ put_cpu_var(irql_info);
+ return DISPATCH_LEVEL;
+ }
+ /* TODO: is this enough to pin down to current cpu? */
+#ifdef CONFIG_SMP
+ assert(task_cpu(current) == smp_processor_id());
+ info->cpus_allowed = current->cpus_allowed;
+ current->cpus_allowed = cpumask_of_cpu(smp_processor_id());
+#endif
+ put_cpu_var(irql_info);
+ mutex_lock(&info->lock);
+ assert(info->count == 0);
+ assert(info->task == NULL);
+ info->count = 1;
+ info->task = current;
+ return PASSIVE_LEVEL;
+}
+
+static inline void lower_irql(KIRQL oldirql)
+{
+ irql_info_t *info;
+
+ assert(oldirql <= DISPATCH_LEVEL);
+ info = &get_cpu_var(irql_info);
+ assert(info->task == current);
+ assert(mutex_is_locked(&info->lock));
+ assert(info->count > 0);
+ if (--info->count == 0) {
+ info->task = NULL;
+#ifdef CONFIG_SMP
+ current->cpus_allowed = info->cpus_allowed;
+#endif
+ mutex_unlock(&info->lock);
+ }
+ put_cpu_var(irql_info);
+}
+
+static inline KIRQL current_irql(void)
+{
+ int count;
+ if (in_irq() || irqs_disabled())
+ EXIT4(return DIRQL);
+ if (in_atomic() || in_interrupt())
+ EXIT4(return SOFT_IRQL);
+ count = get_cpu_var(irql_info).count;
+ put_cpu_var(irql_info);
+ if (count)
+ EXIT6(return DISPATCH_LEVEL);
+ else
+ EXIT6(return PASSIVE_LEVEL);
+}
+
+#else
+
+static inline KIRQL current_irql(void)
+{
+ if (in_irq() || irqs_disabled())
+ EXIT4(return DIRQL);
+ if (in_interrupt())
+ EXIT4(return SOFT_IRQL);
+ if (in_atomic())
+ EXIT6(return DISPATCH_LEVEL);
+ else
+ EXIT6(return PASSIVE_LEVEL);
+}
+
+static inline KIRQL raise_irql(KIRQL newirql)
+{
+ KIRQL ret = in_atomic() ? DISPATCH_LEVEL : PASSIVE_LEVEL;
+ assert(newirql == DISPATCH_LEVEL);
+ assert(current_irql() <= DISPATCH_LEVEL);
+ preempt_disable();
+ return ret;
+}
+
+static inline void lower_irql(KIRQL oldirql)
+{
+ assert(current_irql() == DISPATCH_LEVEL);
+ preempt_enable();
+}
+
+#endif
+
+#define irql_gfp() (in_atomic() ? GFP_ATOMIC : GFP_KERNEL)
+
+/* Windows spinlocks are of type ULONG_PTR which is not big enough to
+ * store Linux spinlocks; so we implement Windows spinlocks using
+ * ULONG_PTR space with our own functions/macros */
+
+/* Windows seems to use 0 for unlocked state of spinlock - if Linux
+ * convention of 1 for unlocked state is used, at least prism54 driver
+ * crashes */
+
+#define NT_SPIN_LOCK_UNLOCKED 0
+#define NT_SPIN_LOCK_LOCKED 1
+
+static inline void nt_spin_lock_init(NT_SPIN_LOCK *lock)
+{
+ *lock = NT_SPIN_LOCK_UNLOCKED;
+}
+
+#ifdef CONFIG_SMP
+
+static inline void nt_spin_lock(NT_SPIN_LOCK *lock)
+{
+ __asm__ __volatile__(
+ "1:\t"
+ " xchgl %1, %0\n\t"
+ " testl %1, %1\n\t"
+ " jz 3f\n"
+ "2:\t"
+ " rep; nop\n\t"
+ " cmpl %2, %0\n\t"
+ " je 1b\n\t"
+ " jmp 2b\n"
+ "3:\n\t"
+ : "+m" (*lock)
+ : "r" (NT_SPIN_LOCK_LOCKED), "i" (NT_SPIN_LOCK_UNLOCKED));
+}
+
+static inline void nt_spin_unlock(NT_SPIN_LOCK *lock)
+{
+ *lock = NT_SPIN_LOCK_UNLOCKED;
+}
+
+#else // CONFIG_SMP
+
+#define nt_spin_lock(lock) do { } while (0)
+
+#define nt_spin_unlock(lock) do { } while (0)
+
+#endif // CONFIG_SMP
+
+/* When kernel would've disabled preempt (e.g., in interrupt
+ * handlers), we need to fake preempt so driver thinks it is running
+ * at right IRQL */
+
+/* raise IRQL to given (higher) IRQL if necessary before locking */
+static inline KIRQL nt_spin_lock_irql(NT_SPIN_LOCK *lock, KIRQL newirql)
+{
+ KIRQL oldirql = raise_irql(newirql);
+ nt_spin_lock(lock);
+ return oldirql;
+}
+
+/* lower IRQL to given (lower) IRQL if necessary after unlocking */
+static inline void nt_spin_unlock_irql(NT_SPIN_LOCK *lock, KIRQL oldirql)
+{
+ nt_spin_unlock(lock);
+ lower_irql(oldirql);
+}
+
+#define nt_spin_lock_irqsave(lock, flags) \
+do { \
+ local_irq_save(flags); \
+ preempt_disable(); \
+ nt_spin_lock(lock); \
+} while (0)
+
+#define nt_spin_unlock_irqrestore(lock, flags) \
+do { \
+ nt_spin_unlock(lock); \
+ preempt_enable_no_resched(); \
+ local_irq_restore(flags); \
+ preempt_check_resched(); \
+} while (0)
+
+static inline ULONG SPAN_PAGES(void *ptr, SIZE_T length)
+{
+ return PAGE_ALIGN(((unsigned long)ptr & (PAGE_SIZE - 1)) + length)
+ >> PAGE_SHIFT;
+}
+
+#ifdef CONFIG_X86_64
+
+/* TODO: can these be implemented without using spinlock? */
+
+static inline struct nt_slist *PushEntrySList(nt_slist_header *head,
+ struct nt_slist *entry,
+ NT_SPIN_LOCK *lock)
+{
+ KIRQL irql = nt_spin_lock_irql(lock, DISPATCH_LEVEL);
+ entry->next = head->next;
+ head->next = entry;
+ head->depth++;
+ nt_spin_unlock_irql(lock, irql);
+ TRACE4("%p, %p, %p", head, entry, entry->next);
+ return entry->next;
+}
+
+static inline struct nt_slist *PopEntrySList(nt_slist_header *head,
+ NT_SPIN_LOCK *lock)
+{
+ struct nt_slist *entry;
+ KIRQL irql = nt_spin_lock_irql(lock, DISPATCH_LEVEL);
+ entry = head->next;
+ if (entry) {
+ head->next = entry->next;
+ head->depth--;
+ }
+ nt_spin_unlock_irql(lock, irql);
+ TRACE4("%p, %p", head, entry);
+ return entry;
+}
+
+#else
+
+#define u64_low_32(x) ((u32)x)
+#define u64_high_32(x) ((u32)(x >> 32))
+
+static inline u64 nt_cmpxchg8b(volatile u64 *ptr, u64 old, u64 new)
+{
+ u64 prev;
+
+ __asm__ __volatile__(
+ "\n"
+ LOCK_PREFIX "cmpxchg8b %0\n"
+ : "+m" (*ptr), "=A" (prev)
+ : "A" (old), "b" (u64_low_32(new)), "c" (u64_high_32(new)));
+ return prev;
+}
+
+/* slist routines below update slist atomically - no need for
+ * spinlocks */
+
+static inline struct nt_slist *PushEntrySList(nt_slist_header *head,
+ struct nt_slist *entry,
+ NT_SPIN_LOCK *lock)
+{
+ nt_slist_header old, new;
+ do {
+ old.align = head->align;
+ entry->next = old.next;
+ new.next = entry;
+ new.depth = old.depth + 1;
+ } while (nt_cmpxchg8b(&head->align, old.align, new.align) != old.align);
+ TRACE4("%p, %p, %p", head, entry, old.next);
+ return old.next;
+}
+
+static inline struct nt_slist *PopEntrySList(nt_slist_header *head,
+ NT_SPIN_LOCK *lock)
+{
+ struct nt_slist *entry;
+ nt_slist_header old, new;
+ do {
+ old.align = head->align;
+ entry = old.next;
+ if (!entry)
+ break;
+ new.next = entry->next;
+ new.depth = old.depth - 1;
+ } while (nt_cmpxchg8b(&head->align, old.align, new.align) != old.align);
+ TRACE4("%p, %p", head, entry);
+ return entry;
+}
+
+#endif
+
+#define sleep_hz(n) \
+do { \
+ set_current_state(TASK_INTERRUPTIBLE); \
+ schedule_timeout(n); \
+} while (0)
+
+int ntoskernel_init(void);
+void ntoskernel_exit(void);
+int ntoskernel_init_device(struct wrap_device *wd);
+void ntoskernel_exit_device(struct wrap_device *wd);
+void *allocate_object(ULONG size, enum common_object_type type,
+ struct unicode_string *name);
+void free_object(void *object);
+
+int usb_init(void);
+void usb_exit(void);
+int usb_init_device(struct wrap_device *wd);
+void usb_exit_device(struct wrap_device *wd);
+void usb_cancel_pending_urbs(void);
+
+int crt_init(void);
+void crt_exit(void);
+int rtl_init(void);
+void rtl_exit(void);
+int wrap_procfs_init(void);
+void wrap_procfs_remove(void);
+
+int link_pe_images(struct pe_image *pe_image, unsigned short n);
+
+int stricmp(const char *s1, const char *s2);
+void dump_bytes(const char *name, const u8 *from, int len);
+struct mdl *allocate_init_mdl(void *virt, ULONG length);
+void free_mdl(struct mdl *mdl);
+struct driver_object *find_bus_driver(const char *name);
+void free_custom_extensions(struct driver_extension *drv_obj_ext);
+struct nt_thread *get_current_nt_thread(void);
+u64 ticks_1601(void);
+int schedule_ntos_work_item(NTOS_WORK_FUNC func, void *arg1, void *arg2);
+void wrap_init_timer(struct nt_timer *nt_timer, enum timer_type type,
+ struct ndis_mp_block *nmb);
+BOOLEAN wrap_set_timer(struct nt_timer *nt_timer, unsigned long expires_hz,
+ unsigned long repeat_hz, struct kdpc *kdpc);
+
+LONG InterlockedDecrement(LONG volatile *val) wfastcall;
+LONG InterlockedIncrement(LONG volatile *val) wfastcall;
+struct nt_list *ExInterlockedInsertHeadList
+ (struct nt_list *head, struct nt_list *entry,
+ NT_SPIN_LOCK *lock) wfastcall;
+struct nt_list *ExInterlockedInsertTailList
+ (struct nt_list *head, struct nt_list *entry,
+ NT_SPIN_LOCK *lock) wfastcall;
+struct nt_list *ExInterlockedRemoveHeadList
+ (struct nt_list *head, NT_SPIN_LOCK *lock) wfastcall;
+NTSTATUS IofCallDriver(struct device_object *dev_obj, struct irp *irp) wfastcall;
+KIRQL KfRaiseIrql(KIRQL newirql) wfastcall;
+void KfLowerIrql(KIRQL oldirql) wfastcall;
+KIRQL KfAcquireSpinLock(NT_SPIN_LOCK *lock) wfastcall;
+void KfReleaseSpinLock(NT_SPIN_LOCK *lock, KIRQL oldirql) wfastcall;
+void IofCompleteRequest(struct irp *irp, CHAR prio_boost) wfastcall;
+void KefReleaseSpinLockFromDpcLevel(NT_SPIN_LOCK *lock) wfastcall;
+
+LONG ObfReferenceObject(void *object) wfastcall;
+void ObfDereferenceObject(void *object) wfastcall;
+
+#define ObReferenceObject(object) ObfReferenceObject(object)
+#define ObDereferenceObject(object) ObfDereferenceObject(object)
+
+void WRITE_PORT_UCHAR(ULONG_PTR port, UCHAR value) wstdcall;
+UCHAR READ_PORT_UCHAR(ULONG_PTR port) wstdcall;
+
+#undef ExAllocatePoolWithTag
+void *ExAllocatePoolWithTag(enum pool_type pool_type, SIZE_T size,
+ ULONG tag) wstdcall;
+#if defined(ALLOC_DEBUG) && ALLOC_DEBUG > 1
+#define ExAllocatePoolWithTag(pool_type, size, tag) \
+ wrap_ExAllocatePoolWithTag(pool_type, size, tag, __FILE__, __LINE__)
+#endif
+
+void ExFreePool(void *p) wstdcall;
+ULONG MmSizeOfMdl(void *base, ULONG length) wstdcall;
+void __iomem *MmMapIoSpace(PHYSICAL_ADDRESS phys_addr, SIZE_T size,
+ enum memory_caching_type cache) wstdcall;
+void MmUnmapIoSpace(void __iomem *addr, SIZE_T size) wstdcall;
+void MmProbeAndLockPages(struct mdl *mdl, KPROCESSOR_MODE access_mode,
+ enum lock_operation operation) wstdcall;
+void MmUnlockPages(struct mdl *mdl) wstdcall;
+void KeInitializeEvent(struct nt_event *nt_event,
+ enum event_type type, BOOLEAN state) wstdcall;
+LONG KeSetEvent(struct nt_event *nt_event, KPRIORITY incr,
+ BOOLEAN wait) wstdcall;
+LONG KeResetEvent(struct nt_event *nt_event) wstdcall;
+void KeClearEvent(struct nt_event *nt_event) wstdcall;
+void KeInitializeDpc(struct kdpc *kdpc, void *func, void *ctx) wstdcall;
+BOOLEAN queue_kdpc(struct kdpc *kdpc);
+BOOLEAN dequeue_kdpc(struct kdpc *kdpc);
+
+void KeFlushQueuedDpcs(void) wstdcall;
+NTSTATUS IoConnectInterrupt(struct kinterrupt **kinterrupt,
+ PKSERVICE_ROUTINE service_routine,
+ void *service_context, NT_SPIN_LOCK *lock,
+ ULONG vector, KIRQL irql, KIRQL synch_irql,
+ enum kinterrupt_mode interrupt_mode,
+ BOOLEAN shareable, KAFFINITY processor_enable_mask,
+ BOOLEAN floating_save) wstdcall;
+void IoDisconnectInterrupt(struct kinterrupt *interrupt) wstdcall;
+BOOLEAN KeSynchronizeExecution(struct kinterrupt *interrupt,
+ PKSYNCHRONIZE_ROUTINE synch_routine,
+ void *ctx) wstdcall;
+
+NTSTATUS KeWaitForSingleObject(void *object, KWAIT_REASON reason,
+ KPROCESSOR_MODE waitmode, BOOLEAN alertable,
+ LARGE_INTEGER *timeout) wstdcall;
+struct mdl *IoAllocateMdl(void *virt, ULONG length, BOOLEAN second_buf,
+ BOOLEAN charge_quota, struct irp *irp) wstdcall;
+void MmBuildMdlForNonPagedPool(struct mdl *mdl) wstdcall;
+void IoFreeMdl(struct mdl *mdl) wstdcall;
+NTSTATUS IoCreateDevice(struct driver_object *driver, ULONG dev_ext_length,
+ struct unicode_string *dev_name, DEVICE_TYPE dev_type,
+ ULONG dev_chars, BOOLEAN exclusive,
+ struct device_object **dev_obj) wstdcall;
+NTSTATUS IoCreateSymbolicLink(struct unicode_string *link,
+ struct unicode_string *dev_name) wstdcall;
+void IoDeleteDevice(struct device_object *dev) wstdcall;
+void IoDetachDevice(struct device_object *topdev) wstdcall;
+struct device_object *IoGetAttachedDevice(struct device_object *dev) wstdcall;
+struct device_object *IoGetAttachedDeviceReference
+ (struct device_object *dev) wstdcall;
+NTSTATUS IoAllocateDriverObjectExtension
+ (struct driver_object *drv_obj, void *client_id, ULONG extlen,
+ void **ext) wstdcall;
+void *IoGetDriverObjectExtension(struct driver_object *drv,
+ void *client_id) wstdcall;
+struct device_object *IoAttachDeviceToDeviceStack
+ (struct device_object *src, struct device_object *dst) wstdcall;
+void KeInitializeEvent(struct nt_event *nt_event, enum event_type type,
+ BOOLEAN state) wstdcall;
+struct irp *IoAllocateIrp(char stack_count, BOOLEAN charge_quota) wstdcall;
+void IoFreeIrp(struct irp *irp) wstdcall;
+BOOLEAN IoCancelIrp(struct irp *irp) wstdcall;
+struct irp *IoBuildSynchronousFsdRequest
+ (ULONG major_func, struct device_object *dev_obj, void *buf,
+ ULONG length, LARGE_INTEGER *offset, struct nt_event *event,
+ struct io_status_block *status) wstdcall;
+struct irp *IoBuildAsynchronousFsdRequest
+ (ULONG major_func, struct device_object *dev_obj, void *buf,
+ ULONG length, LARGE_INTEGER *offset,
+ struct io_status_block *status) wstdcall;
+NTSTATUS PoCallDriver(struct device_object *dev_obj, struct irp *irp) wstdcall;
+
+NTSTATUS IoPassIrpDown(struct device_object *dev_obj, struct irp *irp) wstdcall;
+WIN_FUNC_DECL(IoPassIrpDown,2);
+NTSTATUS IoSyncForwardIrp(struct device_object *dev_obj,
+ struct irp *irp) wstdcall;
+NTSTATUS IoAsyncForwardIrp(struct device_object *dev_obj,
+ struct irp *irp) wstdcall;
+NTSTATUS IoInvalidDeviceRequest(struct device_object *dev_obj,
+ struct irp *irp) wstdcall;
+
+KIRQL KeGetCurrentIrql(void) wstdcall;
+void KeInitializeSpinLock(NT_SPIN_LOCK *lock) wstdcall;
+void KeAcquireSpinLock(NT_SPIN_LOCK *lock, KIRQL *irql) wstdcall;
+void KeReleaseSpinLock(NT_SPIN_LOCK *lock, KIRQL oldirql) wstdcall;
+KIRQL KeAcquireSpinLockRaiseToDpc(NT_SPIN_LOCK *lock) wstdcall;
+
+void IoAcquireCancelSpinLock(KIRQL *irql) wstdcall;
+void IoReleaseCancelSpinLock(KIRQL irql) wstdcall;
+
+void RtlCopyMemory(void *dst, const void *src, SIZE_T length) wstdcall;
+NTSTATUS RtlUnicodeStringToAnsiString
+ (struct ansi_string *dst, const struct unicode_string *src,
+ BOOLEAN dup) wstdcall;
+NTSTATUS RtlAnsiStringToUnicodeString
+ (struct unicode_string *dst, const struct ansi_string *src,
+ BOOLEAN dup) wstdcall;
+void RtlInitAnsiString(struct ansi_string *dst, const char *src) wstdcall;
+void RtlInitString(struct ansi_string *dst, const char *src) wstdcall;
+void RtlInitUnicodeString(struct unicode_string *dest,
+ const wchar_t *src) wstdcall;
+void RtlFreeUnicodeString(struct unicode_string *string) wstdcall;
+void RtlFreeAnsiString(struct ansi_string *string) wstdcall;
+LONG RtlCompareUnicodeString(const struct unicode_string *s1,
+ const struct unicode_string *s2,
+ BOOLEAN case_insensitive) wstdcall;
+void RtlCopyUnicodeString(struct unicode_string *dst,
+ struct unicode_string *src) wstdcall;
+NTSTATUS RtlUpcaseUnicodeString(struct unicode_string *dst,
+ struct unicode_string *src,
+ BOOLEAN alloc) wstdcall;
+void KeInitializeTimer(struct nt_timer *nt_timer) wstdcall;
+void KeInitializeTimerEx(struct nt_timer *nt_timer,
+ enum timer_type type) wstdcall;
+BOOLEAN KeSetTimerEx(struct nt_timer *nt_timer, LARGE_INTEGER duetime_ticks,
+ LONG period_ms, struct kdpc *kdpc) wstdcall;
+BOOLEAN KeSetTimer(struct nt_timer *nt_timer, LARGE_INTEGER duetime_ticks,
+ struct kdpc *kdpc) wstdcall;
+BOOLEAN KeCancelTimer(struct nt_timer *nt_timer) wstdcall;
+void KeInitializeDpc(struct kdpc *kdpc, void *func, void *ctx) wstdcall;
+struct nt_thread *KeGetCurrentThread(void) wstdcall;
+NTSTATUS ObReferenceObjectByHandle(void *handle, ACCESS_MASK desired_access,
+ void *obj_type, KPROCESSOR_MODE access_mode,
+ void **object, void *handle_info) wstdcall;
+
+void adjust_user_shared_data_addr(char *driver, unsigned long length);
+
+extern spinlock_t ntoskernel_lock;
+extern spinlock_t irp_cancel_lock;
+extern struct nt_list object_list;
+#ifdef CONFIG_X86_64
+extern struct kuser_shared_data kuser_shared_data;
+#endif
+
+#define IoCompleteRequest(irp, prio) IofCompleteRequest(irp, prio)
+#define IoCallDriver(dev, irp) IofCallDriver(dev, irp)
+
+#if defined(IO_DEBUG)
+#define DUMP_IRP(_irp) \
+do { \
+ struct io_stack_location *_irp_sl; \
+ _irp_sl = IoGetCurrentIrpStackLocation(_irp); \
+ IOTRACE("irp: %p, stack size: %d, cl: %d, sl: %p, dev_obj: %p, " \
+ "mj_fn: %d, minor_fn: %d, nt_urb: %p, event: %p", \
+ _irp, _irp->stack_count, (_irp)->current_location, \
+ _irp_sl, _irp_sl->dev_obj, _irp_sl->major_fn, \
+ _irp_sl->minor_fn, IRP_URB(_irp), \
+ (_irp)->user_event); \
+} while (0)
+#else
+#define DUMP_IRP(_irp) do { } while (0)
+#endif
+
+#endif // _NTOSKERNEL_H_
diff --git a/ubuntu/ndiswrapper/ntoskernel_io.c b/ubuntu/ndiswrapper/ntoskernel_io.c
new file mode 100644
index 00000000000..7af0eb1f4d2
--- /dev/null
+++ b/ubuntu/ndiswrapper/ntoskernel_io.c
@@ -0,0 +1,1106 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "ntoskernel.h"
+#include "ndis.h"
+#include "wrapndis.h"
+#include "usb.h"
+#include "loader.h"
+#include "ntoskernel_io_exports.h"
+
+wstdcall void WIN_FUNC(IoAcquireCancelSpinLock,1)
+ (KIRQL *irql) __acquires(irql)
+{
+ spin_lock_bh(&irp_cancel_lock);
+ *irql = 0;
+}
+
+wstdcall void WIN_FUNC(IoReleaseCancelSpinLock,1)
+ (KIRQL irql) __releases(irql)
+{
+ spin_unlock_bh(&irp_cancel_lock);
+}
+
+wstdcall int WIN_FUNC(IoIsWdmVersionAvailable,2)
+ (UCHAR major, UCHAR minor)
+{
+ IOENTER("%d, %x", major, minor);
+ if (major == 1 &&
+ (minor == 0x30 || // Windows 2003
+ minor == 0x20 || // Windows XP
+ minor == 0x10)) // Windows 2000
+ IOEXIT(return TRUE);
+ IOEXIT(return FALSE);
+}
+
+wstdcall BOOLEAN WIN_FUNC(IoIs32bitProcess,1)
+ (struct irp *irp)
+{
+#ifdef CONFIG_X86_64
+ return FALSE;
+#else
+ return TRUE;
+#endif
+}
+
+wstdcall void WIN_FUNC(IoInitializeIrp,3)
+ (struct irp *irp, USHORT size, CCHAR stack_count)
+{
+ IOENTER("irp: %p, %d, %d", irp, size, stack_count);
+
+ memset(irp, 0, size);
+ irp->size = size;
+ irp->stack_count = stack_count;
+ irp->current_location = stack_count;
+ IoGetCurrentIrpStackLocation(irp) = IRP_SL(irp, stack_count);
+ IOEXIT(return);
+}
+
+wstdcall void WIN_FUNC(IoReuseIrp,2)
+ (struct irp *irp, NTSTATUS status)
+{
+ IOENTER("%p, %d", irp, status);
+ if (irp) {
+ UCHAR alloc_flags;
+
+ alloc_flags = irp->alloc_flags;
+ IoInitializeIrp(irp, irp->size, irp->stack_count);
+ irp->alloc_flags = alloc_flags;
+ irp->io_status.status = status;
+ }
+ IOEXIT(return);
+}
+
+wstdcall struct irp *WIN_FUNC(IoAllocateIrp,2)
+ (char stack_count, BOOLEAN charge_quota)
+{
+ struct irp *irp;
+ int irp_size;
+
+ IOENTER("count: %d", stack_count);
+ stack_count++;
+ irp_size = IoSizeOfIrp(stack_count);
+ irp = kmalloc(irp_size, irql_gfp());
+ if (irp)
+ IoInitializeIrp(irp, irp_size, stack_count);
+ IOTRACE("irp %p", irp);
+ IOEXIT(return irp);
+}
+
+wstdcall BOOLEAN WIN_FUNC(IoCancelIrp,1)
+ (struct irp *irp)
+{
+ typeof(irp->cancel_routine) cancel_routine;
+
+ /* NB: this function may be called at DISPATCH_LEVEL */
+ IOTRACE("irp: %p", irp);
+ if (!irp)
+ return FALSE;
+ DUMP_IRP(irp);
+ IoAcquireCancelSpinLock(&irp->cancel_irql);
+ cancel_routine = xchg(&irp->cancel_routine, NULL);
+ IOTRACE("%p", cancel_routine);
+ irp->cancel = TRUE;
+ if (cancel_routine) {
+ struct io_stack_location *irp_sl;
+ irp_sl = IoGetCurrentIrpStackLocation(irp);
+ IOTRACE("%p, %p", irp_sl, irp_sl->dev_obj);
+ /* cancel_routine will release the spin lock */
+ __release(irp->cancel_irql);
+ LIN2WIN2(cancel_routine, irp_sl->dev_obj, irp);
+ /* in usb's cancel, irp->cancel is set to indicate
+ * status of cancel */
+ IOEXIT(return xchg(&irp->cancel, TRUE));
+ } else {
+ IOTRACE("irp %p already canceled", irp);
+ IoReleaseCancelSpinLock(irp->cancel_irql);
+ IOEXIT(return FALSE);
+ }
+}
+
+wstdcall void IoQueueThreadIrp(struct irp *irp)
+{
+ struct nt_thread *thread;
+ KIRQL irql;
+
+ thread = get_current_nt_thread();
+ if (thread) {
+ IOTRACE("thread: %p, task: %p", thread, thread->task);
+ irp->flags |= IRP_SYNCHRONOUS_API;
+ irql = nt_spin_lock_irql(&thread->lock, DISPATCH_LEVEL);
+ InsertTailList(&thread->irps, &irp->thread_list);
+ IoIrpThread(irp) = thread;
+ nt_spin_unlock_irql(&thread->lock, irql);
+ } else
+ IoIrpThread(irp) = NULL;
+}
+
+wstdcall void IoDequeueThreadIrp(struct irp *irp)
+{
+ struct nt_thread *thread;
+ KIRQL irql;
+
+ thread = IoIrpThread(irp);
+ if (thread) {
+ irql = nt_spin_lock_irql(&thread->lock, DISPATCH_LEVEL);
+ RemoveEntryList(&irp->thread_list);
+ nt_spin_unlock_irql(&thread->lock, irql);
+ }
+}
+
+wstdcall void WIN_FUNC(IoFreeIrp,1)
+ (struct irp *irp)
+{
+ IOENTER("irp = %p", irp);
+ if (irp->flags & IRP_SYNCHRONOUS_API)
+ IoDequeueThreadIrp(irp);
+ kfree(irp);
+
+ IOEXIT(return);
+}
+
+wstdcall struct irp *WIN_FUNC(IoBuildAsynchronousFsdRequest,6)
+ (ULONG major_fn, struct device_object *dev_obj, void *buffer,
+ ULONG length, LARGE_INTEGER *offset,
+ struct io_status_block *user_status)
+{
+ struct irp *irp;
+ struct io_stack_location *irp_sl;
+
+ IOENTER("%p", dev_obj);
+ if (!dev_obj)
+ IOEXIT(return NULL);
+ irp = IoAllocateIrp(dev_obj->stack_count, FALSE);
+ if (irp == NULL) {
+ WARNING("couldn't allocate irp");
+ IOEXIT(return NULL);
+ }
+
+ irp_sl = IoGetNextIrpStackLocation(irp);
+ irp_sl->major_fn = major_fn;
+ IOTRACE("major_fn: %d", major_fn);
+ irp_sl->minor_fn = 0;
+ irp_sl->flags = 0;
+ irp_sl->control = 0;
+ irp_sl->dev_obj = dev_obj;
+ irp_sl->file_obj = NULL;
+ irp_sl->completion_routine = NULL;
+
+ if (dev_obj->flags & DO_DIRECT_IO) {
+ irp->mdl = IoAllocateMdl(buffer, length, FALSE, FALSE, irp);
+ if (irp->mdl == NULL) {
+ IoFreeIrp(irp);
+ return NULL;
+ }
+ MmProbeAndLockPages(irp->mdl, KernelMode,
+ major_fn == IRP_MJ_WRITE ?
+ IoReadAccess : IoWriteAccess);
+ IOTRACE("mdl: %p", irp->mdl);
+ } else if (dev_obj->flags & DO_BUFFERED_IO) {
+ irp->associated_irp.system_buffer = buffer;
+ irp->flags = IRP_BUFFERED_IO;
+ irp->mdl = NULL;
+ IOTRACE("buffer: %p", buffer);
+ }
+ if (major_fn == IRP_MJ_READ) {
+ irp_sl->params.read.length = length;
+ irp_sl->params.read.byte_offset = *offset;
+ } else if (major_fn == IRP_MJ_WRITE) {
+ irp_sl->params.write.length = length;
+ irp_sl->params.write.byte_offset = *offset;
+ }
+ irp->user_status = user_status;
+ IOTRACE("irp: %p", irp);
+ return irp;
+}
+
+wstdcall struct irp *WIN_FUNC(IoBuildSynchronousFsdRequest,7)
+ (ULONG major_fn, struct device_object *dev_obj, void *buf,
+ ULONG length, LARGE_INTEGER *offset, struct nt_event *event,
+ struct io_status_block *user_status)
+{
+ struct irp *irp;
+
+ irp = IoBuildAsynchronousFsdRequest(major_fn, dev_obj, buf, length,
+ offset, user_status);
+ if (irp == NULL)
+ return NULL;
+ irp->user_event = event;
+ IoQueueThreadIrp(irp);
+ return irp;
+}
+
+wstdcall struct irp *WIN_FUNC(IoBuildDeviceIoControlRequest,9)
+ (ULONG ioctl, struct device_object *dev_obj,
+ void *input_buf, ULONG input_buf_len, void *output_buf,
+ ULONG output_buf_len, BOOLEAN internal_ioctl,
+ struct nt_event *event, struct io_status_block *io_status)
+{
+ struct irp *irp;
+ struct io_stack_location *irp_sl;
+ ULONG buf_len;
+
+ IOENTER("%p, 0x%08x, %d", dev_obj, ioctl, internal_ioctl);
+ if (!dev_obj)
+ IOEXIT(return NULL);
+ irp = IoAllocateIrp(dev_obj->stack_count, FALSE);
+ if (irp == NULL) {
+ WARNING("couldn't allocate irp");
+ return NULL;
+ }
+ irp_sl = IoGetNextIrpStackLocation(irp);
+ irp_sl->params.dev_ioctl.code = ioctl;
+ irp_sl->params.dev_ioctl.input_buf_len = input_buf_len;
+ irp_sl->params.dev_ioctl.output_buf_len = output_buf_len;
+ irp_sl->major_fn = (internal_ioctl) ?
+ IRP_MJ_INTERNAL_DEVICE_CONTROL : IRP_MJ_DEVICE_CONTROL;
+ IOTRACE("%d", IO_METHOD_FROM_CTL_CODE(ioctl));
+
+ switch (IO_METHOD_FROM_CTL_CODE(ioctl)) {
+ case METHOD_BUFFERED:
+ buf_len = max(input_buf_len, output_buf_len);
+ if (buf_len) {
+ irp->associated_irp.system_buffer =
+ ExAllocatePoolWithTag(NonPagedPool, buf_len, 0);
+ if (!irp->associated_irp.system_buffer) {
+ IoFreeIrp(irp);
+ IOEXIT(return NULL);
+ }
+ irp->associated_irp.system_buffer = input_buf;
+ if (input_buf)
+ memcpy(irp->associated_irp.system_buffer,
+ input_buf, input_buf_len);
+ irp->flags = IRP_BUFFERED_IO | IRP_DEALLOCATE_BUFFER;
+ if (output_buf)
+ irp->flags = IRP_INPUT_OPERATION;
+ irp->user_buf = output_buf;
+ } else
+ irp->user_buf = NULL;
+ break;
+ case METHOD_IN_DIRECT:
+ case METHOD_OUT_DIRECT:
+ if (input_buf) {
+ irp->associated_irp.system_buffer =
+ ExAllocatePoolWithTag(NonPagedPool,
+ input_buf_len, 0);
+ if (!irp->associated_irp.system_buffer) {
+ IoFreeIrp(irp);
+ IOEXIT(return NULL);
+ }
+ memcpy(irp->associated_irp.system_buffer,
+ input_buf, input_buf_len);
+ irp->flags = IRP_BUFFERED_IO | IRP_DEALLOCATE_BUFFER;
+ }
+ /* TODO: we are supposed to setup MDL, but USB layer
+ * doesn't use MDLs. Moreover, USB layer mirrors
+ * non-DMAable buffers, so no need to allocate
+ * DMAable buffer here */
+ if (output_buf) {
+ irp->associated_irp.system_buffer =
+ ExAllocatePoolWithTag(NonPagedPool,
+ output_buf_len, 0);
+ if (!irp->associated_irp.system_buffer) {
+ IoFreeIrp(irp);
+ IOEXIT(return NULL);
+ }
+ irp->flags = IRP_BUFFERED_IO | IRP_DEALLOCATE_BUFFER;
+ }
+ break;
+ case METHOD_NEITHER:
+ irp->user_buf = output_buf;
+ irp_sl->params.dev_ioctl.type3_input_buf = input_buf;
+ break;
+ }
+
+ irp->user_status = io_status;
+ irp->user_event = event;
+ IoQueueThreadIrp(irp);
+
+ IOTRACE("irp: %p", irp);
+ IOEXIT(return irp);
+}
+
+wfastcall NTSTATUS WIN_FUNC(IofCallDriver,2)
+ (struct device_object *dev_obj, struct irp *irp)
+{
+ struct io_stack_location *irp_sl;
+ NTSTATUS status;
+ driver_dispatch_t *major_func;
+ struct driver_object *drv_obj;
+
+ if (irp->current_location <= 0) {
+ ERROR("invalid irp: %p, %d", irp, irp->current_location);
+ return STATUS_INVALID_PARAMETER;
+ }
+ IOTRACE("%p, %p, %p, %d, %d, %p", dev_obj, irp, dev_obj->drv_obj,
+ irp->current_location, irp->stack_count,
+ IoGetCurrentIrpStackLocation(irp));
+ IoSetNextIrpStackLocation(irp);
+ DUMP_IRP(irp);
+ irp_sl = IoGetCurrentIrpStackLocation(irp);
+ drv_obj = dev_obj->drv_obj;
+ irp_sl->dev_obj = dev_obj;
+ major_func = drv_obj->major_func[irp_sl->major_fn];
+ IOTRACE("major_func: %p, dev_obj: %p", major_func, dev_obj);
+ if (major_func)
+ status = LIN2WIN2(major_func, dev_obj, irp);
+ else {
+ ERROR("major_function %d is not implemented",
+ irp_sl->major_fn);
+ status = STATUS_NOT_SUPPORTED;
+ }
+ IOEXIT(return status);
+}
+
+wfastcall void WIN_FUNC(IofCompleteRequest,2)
+ (struct irp *irp, CHAR prio_boost)
+{
+ struct io_stack_location *irp_sl;
+
+#ifdef IO_DEBUG
+ DUMP_IRP(irp);
+ if (irp->io_status.status == STATUS_PENDING) {
+ ERROR("invalid irp: %p, STATUS_PENDING", irp);
+ return;
+ }
+ if (irp->current_location < 0 ||
+ irp->current_location >= irp->stack_count) {
+ ERROR("invalid irp: %p, %d", irp, irp->current_location);
+ return;
+ }
+#endif
+ for (irp_sl = IoGetCurrentIrpStackLocation(irp);
+ irp->current_location < irp->stack_count; irp_sl++) {
+ struct device_object *dev_obj;
+ NTSTATUS status;
+
+ DUMP_IRP(irp);
+ if (irp_sl->control & SL_PENDING_RETURNED)
+ irp->pending_returned = TRUE;
+
+ /* current_location and dev_obj must be same as when
+ * driver called IoSetCompletionRoutine, which sets
+ * completion routine at next (lower) location, which
+ * is what we are going to call below; so we set
+ * current_location and dev_obj for the previous
+ * (higher) location */
+ IoSkipCurrentIrpStackLocation(irp);
+ if (irp->current_location < irp->stack_count)
+ dev_obj = IoGetCurrentIrpStackLocation(irp)->dev_obj;
+ else
+ dev_obj = NULL;
+
+ IOTRACE("%d, %d, %p", irp->current_location, irp->stack_count,
+ dev_obj);
+ if (irp_sl->completion_routine &&
+ ((irp->io_status.status == STATUS_SUCCESS &&
+ irp_sl->control & SL_INVOKE_ON_SUCCESS) ||
+ (irp->io_status.status != STATUS_SUCCESS &&
+ irp_sl->control & SL_INVOKE_ON_ERROR) ||
+ (irp->cancel == TRUE &&
+ irp_sl->control & SL_INVOKE_ON_CANCEL))) {
+ IOTRACE("calling completion_routine at: %p, %p",
+ irp_sl->completion_routine, irp_sl->context);
+ status = LIN2WIN3(irp_sl->completion_routine,
+ dev_obj, irp, irp_sl->context);
+ IOTRACE("status: %08X", status);
+ if (status == STATUS_MORE_PROCESSING_REQUIRED)
+ IOEXIT(return);
+ } else {
+ /* propagate pending status to next irp_sl */
+ if (irp->pending_returned &&
+ irp->current_location < irp->stack_count)
+ IoMarkIrpPending(irp);
+ }
+ }
+
+ if (irp->user_status) {
+ irp->user_status->status = irp->io_status.status;
+ irp->user_status->info = irp->io_status.info;
+ }
+
+ if (irp->user_event) {
+ IOTRACE("setting event %p", irp->user_event);
+ KeSetEvent(irp->user_event, prio_boost, FALSE);
+ }
+
+ if (irp->associated_irp.system_buffer &&
+ (irp->flags & IRP_DEALLOCATE_BUFFER))
+ ExFreePool(irp->associated_irp.system_buffer);
+ else {
+ struct mdl *mdl;
+ while ((mdl = irp->mdl)) {
+ irp->mdl = mdl->next;
+ MmUnlockPages(mdl);
+ IoFreeMdl(mdl);
+ }
+ }
+ IOTRACE("freeing irp %p", irp);
+ IoFreeIrp(irp);
+ IOEXIT(return);
+}
+
+wstdcall NTSTATUS IoPassIrpDown(struct device_object *dev_obj, struct irp *irp)
+{
+ IoSkipCurrentIrpStackLocation(irp);
+ IOEXIT(return IoCallDriver(dev_obj, irp));
+}
+
+wstdcall NTSTATUS IoIrpSyncComplete(struct device_object *dev_obj,
+ struct irp *irp, void *context)
+{
+ if (irp->pending_returned == TRUE)
+ KeSetEvent(context, IO_NO_INCREMENT, FALSE);
+ IOEXIT(return STATUS_MORE_PROCESSING_REQUIRED);
+}
+WIN_FUNC_DECL(IoIrpSyncComplete,3)
+
+wstdcall NTSTATUS IoSyncForwardIrp(struct device_object *dev_obj,
+ struct irp *irp)
+{
+ struct nt_event event;
+ NTSTATUS status;
+
+ IoCopyCurrentIrpStackLocationToNext(irp);
+ KeInitializeEvent(&event, SynchronizationEvent, FALSE);
+ /* completion function is called as Windows function */
+ IoSetCompletionRoutine(irp, WIN_FUNC_PTR(IoIrpSyncComplete,3), &event,
+ TRUE, TRUE, TRUE);
+ status = IoCallDriver(dev_obj, irp);
+ IOTRACE("%08X", status);
+ if (status == STATUS_PENDING) {
+ KeWaitForSingleObject(&event, Executive, KernelMode, FALSE,
+ NULL);
+ status = irp->io_status.status;
+ }
+ IOTRACE("%08X", status);
+ IOEXIT(return status);
+}
+WIN_FUNC_DECL(IoSyncForwardIrp,2)
+
+wstdcall NTSTATUS IoAsyncForwardIrp(struct device_object *dev_obj,
+ struct irp *irp)
+{
+ NTSTATUS status;
+
+ IoCopyCurrentIrpStackLocationToNext(irp);
+ status = IoCallDriver(dev_obj, irp);
+ IOEXIT(return status);
+}
+WIN_FUNC_DECL(IoAsyncForwardIrp,2)
+
+wstdcall NTSTATUS IoInvalidDeviceRequest(struct device_object *dev_obj,
+ struct irp *irp)
+{
+ struct io_stack_location *irp_sl;
+ NTSTATUS status;
+
+ irp_sl = IoGetCurrentIrpStackLocation(irp);
+ WARNING("%d:%d not implemented", irp_sl->major_fn, irp_sl->minor_fn);
+ irp->io_status.status = STATUS_SUCCESS;
+ irp->io_status.info = 0;
+ status = irp->io_status.status;
+ IoCompleteRequest(irp, IO_NO_INCREMENT);
+ IOEXIT(return status);
+}
+WIN_FUNC_DECL(IoInvalidDeviceRequest,2)
+
+static irqreturn_t io_irq_isr(int irq, void *data ISR_PT_REGS_PARAM_DECL)
+{
+ struct kinterrupt *interrupt = data;
+ BOOLEAN ret;
+
+#ifdef CONFIG_DEBUG_SHIRQ
+ if (!interrupt->u.enabled)
+ EXIT1(return IRQ_NONE);
+#endif
+ TRACE6("%p", interrupt);
+ nt_spin_lock(interrupt->actual_lock);
+ ret = LIN2WIN2(interrupt->isr, interrupt, interrupt->isr_ctx);
+ nt_spin_unlock(interrupt->actual_lock);
+ if (ret == TRUE)
+ EXIT6(return IRQ_HANDLED);
+ else
+ EXIT6(return IRQ_NONE);
+}
+
+wstdcall NTSTATUS WIN_FUNC(IoConnectInterrupt,11)
+ (struct kinterrupt **kinterrupt, PKSERVICE_ROUTINE isr, void *isr_ctx,
+ NT_SPIN_LOCK *lock, ULONG vector, KIRQL irql, KIRQL synch_irql,
+ enum kinterrupt_mode mode, BOOLEAN shared, KAFFINITY cpu_mask,
+ BOOLEAN save_fp)
+{
+ struct kinterrupt *interrupt;
+ IOENTER("");
+ interrupt = kzalloc(sizeof(*interrupt), GFP_KERNEL);
+ if (!interrupt)
+ IOEXIT(return STATUS_INSUFFICIENT_RESOURCES);
+ interrupt->vector = vector;
+ interrupt->cpu_mask = cpu_mask;
+ nt_spin_lock_init(&interrupt->lock);
+ if (lock)
+ interrupt->actual_lock = lock;
+ else
+ interrupt->actual_lock = &interrupt->lock;
+ interrupt->shared = shared;
+ interrupt->save_fp = save_fp;
+ interrupt->isr = isr;
+ interrupt->isr_ctx = isr_ctx;
+ InitializeListHead(&interrupt->list);
+ interrupt->irql = irql;
+ interrupt->synch_irql = synch_irql;
+ interrupt->mode = mode;
+ if (request_irq(vector, io_irq_isr, shared ? IRQF_SHARED : 0,
+ "ndiswrapper", interrupt)) {
+ WARNING("request for irq %d failed", vector);
+ kfree(interrupt);
+ IOEXIT(return STATUS_INSUFFICIENT_RESOURCES);
+ }
+ *kinterrupt = interrupt;
+#ifdef CONFIG_DEBUG_SHIRQ
+ interrupt->u.enabled = 1;
+#endif
+ IOEXIT(return STATUS_SUCCESS);
+}
+
+wstdcall void WIN_FUNC(IoDisconnectInterrupt,1)
+ (struct kinterrupt *interrupt)
+{
+#ifdef CONFIG_DEBUG_SHIRQ
+ interrupt->u.enabled = 0;
+#endif
+ free_irq(interrupt->vector, interrupt);
+ kfree(interrupt);
+}
+
+wstdcall struct mdl *WIN_FUNC(IoAllocateMdl,5)
+ (void *virt, ULONG length, BOOLEAN second_buf, BOOLEAN charge_quota,
+ struct irp *irp)
+{
+ struct mdl *mdl;
+ mdl = allocate_init_mdl(virt, length);
+ if (!mdl)
+ return NULL;
+ if (irp) {
+ if (second_buf == TRUE) {
+ struct mdl *last;
+
+ last = irp->mdl;
+ while (last->next)
+ last = last->next;
+ last->next = mdl;
+ } else
+ irp->mdl = mdl;
+ }
+ IOTRACE("%p", mdl);
+ return mdl;
+}
+
+wstdcall void WIN_FUNC(IoFreeMdl,1)
+ (struct mdl *mdl)
+{
+ IOTRACE("%p", mdl);
+ free_mdl(mdl);
+}
+
+wstdcall struct io_workitem *WIN_FUNC(IoAllocateWorkItem,1)
+ (struct device_object *dev_obj)
+{
+ struct io_workitem *io_workitem;
+
+ IOENTER("%p", dev_obj);
+ io_workitem = kmalloc(sizeof(*io_workitem), irql_gfp());
+ if (!io_workitem)
+ IOEXIT(return NULL);
+ io_workitem->dev_obj = dev_obj;
+ IOEXIT(return io_workitem);
+}
+
+wstdcall void WIN_FUNC(IoFreeWorkItem,1)
+ (struct io_workitem *io_workitem)
+{
+ kfree(io_workitem);
+ IOEXIT(return);
+}
+
+wstdcall void WIN_FUNC(IoQueueWorkItem,4)
+ (struct io_workitem *io_workitem, void *func,
+ enum work_queue_type queue_type, void *context)
+{
+ IOENTER("%p, %p", io_workitem, io_workitem->dev_obj);
+ io_workitem->worker_routine = func;
+ io_workitem->context = context;
+ schedule_ntos_work_item(func, io_workitem->dev_obj, context);
+ IOEXIT(return);
+}
+
+wstdcall void WIN_FUNC(ExQueueWorkItem,2)
+ (struct io_workitem *io_workitem, enum work_queue_type queue_type)
+{
+ IOENTER("%p", io_workitem);
+ schedule_ntos_work_item(io_workitem->worker_routine,
+ io_workitem->dev_obj, io_workitem->context);
+}
+
+wstdcall NTSTATUS WIN_FUNC(IoAllocateDriverObjectExtension,4)
+ (struct driver_object *drv_obj, void *client_id, ULONG extlen,
+ void **ext)
+{
+ struct custom_ext *ce;
+
+ IOENTER("%p, %p", drv_obj, client_id);
+ ce = kmalloc(sizeof(*ce) + extlen, irql_gfp());
+ if (ce == NULL)
+ return STATUS_INSUFFICIENT_RESOURCES;
+
+ IOTRACE("custom_ext: %p", ce);
+ ce->client_id = client_id;
+ spin_lock_bh(&ntoskernel_lock);
+ InsertTailList(&drv_obj->drv_ext->custom_ext, &ce->list);
+ spin_unlock_bh(&ntoskernel_lock);
+
+ *ext = (void *)ce + sizeof(*ce);
+ IOTRACE("ext: %p", *ext);
+ IOEXIT(return STATUS_SUCCESS);
+}
+
+wstdcall void *WIN_FUNC(IoGetDriverObjectExtension,2)
+ (struct driver_object *drv_obj, void *client_id)
+{
+ struct custom_ext *ce;
+ void *ret;
+
+ IOENTER("drv_obj: %p, client_id: %p", drv_obj, client_id);
+ ret = NULL;
+ spin_lock_bh(&ntoskernel_lock);
+ nt_list_for_each_entry(ce, &drv_obj->drv_ext->custom_ext, list) {
+ if (ce->client_id == client_id) {
+ ret = (void *)ce + sizeof(*ce);
+ break;
+ }
+ }
+ spin_unlock_bh(&ntoskernel_lock);
+ IOTRACE("ret: %p", ret);
+ return ret;
+}
+
+void free_custom_extensions(struct driver_extension *drv_ext)
+{
+ struct nt_list *ent;
+
+ IOENTER("%p", drv_ext);
+ spin_lock_bh(&ntoskernel_lock);
+ while ((ent = RemoveHeadList(&drv_ext->custom_ext)))
+ kfree(ent);
+ spin_unlock_bh(&ntoskernel_lock);
+ IOEXIT(return);
+}
+
+wstdcall NTSTATUS WIN_FUNC(IoCreateDevice,7)
+ (struct driver_object *drv_obj, ULONG dev_ext_length,
+ struct unicode_string *dev_name, DEVICE_TYPE dev_type,
+ ULONG dev_chars, BOOLEAN exclusive, struct device_object **newdev)
+{
+ struct device_object *dev;
+ struct dev_obj_ext *dev_obj_ext;
+ int size;
+
+ IOENTER("%p, %u, %p", drv_obj, dev_ext_length, dev_name);
+
+ size = sizeof(*dev) + dev_ext_length + sizeof(*dev_obj_ext);
+ dev = allocate_object(size, OBJECT_TYPE_DEVICE, dev_name);
+ if (!dev)
+ IOEXIT(return STATUS_INSUFFICIENT_RESOURCES);
+ if (dev_ext_length)
+ dev->dev_ext = dev + 1;
+ else
+ dev->dev_ext = NULL;
+
+ dev_obj_ext = ((void *)(dev + 1)) + dev_ext_length;
+ dev_obj_ext->dev_obj = dev;
+ dev_obj_ext->size = 0;
+ dev_obj_ext->type = IO_TYPE_DEVICE;
+ dev->dev_obj_ext = dev_obj_ext;
+
+ dev->type = dev_type;
+ dev->flags = 0;
+ dev->size = sizeof(*dev) + dev_ext_length;
+ dev->ref_count = 1;
+ dev->attached = NULL;
+ dev->stack_count = 1;
+
+ dev->drv_obj = drv_obj;
+ dev->next = drv_obj->dev_obj;
+ drv_obj->dev_obj = dev;
+
+ dev->align_req = 1;
+ dev->characteristics = dev_chars;
+ dev->io_timer = NULL;
+ KeInitializeEvent(&dev->lock, SynchronizationEvent, TRUE);
+ dev->vpb = NULL;
+
+ IOTRACE("dev: %p, ext: %p", dev, dev->dev_ext);
+ *newdev = dev;
+ IOEXIT(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS WIN_FUNC(IoCreateUnprotectedSymbolicLink,2)
+ (struct unicode_string *link, struct unicode_string *dev_name)
+{
+ struct ansi_string ansi;
+
+ IOENTER("%p, %p", dev_name, link);
+ if (dev_name && (RtlUnicodeStringToAnsiString(&ansi, dev_name, TRUE) ==
+ STATUS_SUCCESS)) {
+ IOTRACE("dev_name: %s", ansi.buf);
+ RtlFreeAnsiString(&ansi);
+ }
+ if (link && (RtlUnicodeStringToAnsiString(&ansi, link, TRUE) ==
+ STATUS_SUCCESS)) {
+ IOTRACE("link: %s", ansi.buf);
+ RtlFreeAnsiString(&ansi);
+ }
+// TODO();
+ IOEXIT(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS WIN_FUNC(IoCreateSymbolicLink,2)
+ (struct unicode_string *link, struct unicode_string *dev_name)
+{
+ IOEXIT(return IoCreateUnprotectedSymbolicLink(link, dev_name));
+}
+
+wstdcall NTSTATUS WIN_FUNC(IoDeleteSymbolicLink,1)
+ (struct unicode_string *link)
+{
+ struct ansi_string ansi;
+
+ IOENTER("%p", link);
+ if (link && (RtlUnicodeStringToAnsiString(&ansi, link, TRUE) ==
+ STATUS_SUCCESS)) {
+ IOTRACE("dev_name: %s", ansi.buf);
+ RtlFreeAnsiString(&ansi);
+ }
+ IOEXIT(return STATUS_SUCCESS);
+}
+
+wstdcall void WIN_FUNC(IoDeleteDevice,1)
+ (struct device_object *dev)
+{
+ IOENTER("%p", dev);
+ if (dev == NULL)
+ IOEXIT(return);
+ IOTRACE("drv_obj: %p", dev->drv_obj);
+ if (dev->drv_obj) {
+ struct device_object *prev;
+
+ prev = dev->drv_obj->dev_obj;
+ IOTRACE("dev_obj: %p", prev);
+ if (prev == dev)
+ dev->drv_obj->dev_obj = dev->next;
+ else if (prev) {
+ while (prev->next != dev)
+ prev = prev->next;
+ prev->next = dev->next;
+ }
+ }
+ ObDereferenceObject(dev);
+ IOEXIT(return);
+}
+
+wstdcall void WIN_FUNC(IoDetachDevice,1)
+ (struct device_object *tgt)
+{
+ struct device_object *tail;
+
+ IOENTER("%p", tgt);
+ if (!tgt)
+ IOEXIT(return);
+ tail = tgt->attached;
+ if (!tail)
+ IOEXIT(return);
+ IOTRACE("tail: %p", tail);
+
+ spin_lock_bh(&ntoskernel_lock);
+ tgt->attached = tail->attached;
+ IOTRACE("attached:%p", tgt->attached);
+ for ( ; tail; tail = tail->attached) {
+ IOTRACE("tail:%p", tail);
+ tail->stack_count--;
+ }
+ spin_unlock_bh(&ntoskernel_lock);
+ IOEXIT(return);
+}
+
+wstdcall struct device_object *WIN_FUNC(IoGetAttachedDevice,1)
+ (struct device_object *dev)
+{
+ IOENTER("%p", dev);
+ if (!dev)
+ IOEXIT(return NULL);
+ spin_lock_bh(&ntoskernel_lock);
+ while (dev->attached)
+ dev = dev->attached;
+ spin_unlock_bh(&ntoskernel_lock);
+ IOEXIT(return dev);
+}
+
+wstdcall struct device_object *WIN_FUNC(IoGetAttachedDeviceReference,1)
+ (struct device_object *dev)
+{
+ IOENTER("%p", dev);
+ if (!dev)
+ IOEXIT(return NULL);
+ dev = IoGetAttachedDevice(dev);
+ ObReferenceObject(dev);
+ IOEXIT(return dev);
+}
+
+wstdcall struct device_object *WIN_FUNC(IoAttachDeviceToDeviceStack,2)
+ (struct device_object *src, struct device_object *tgt)
+{
+ struct device_object *attached;
+ struct dev_obj_ext *src_dev_ext;
+
+ IOENTER("%p, %p", src, tgt);
+ attached = IoGetAttachedDevice(tgt);
+ IOTRACE("%p", attached);
+ src_dev_ext = src->dev_obj_ext;
+ spin_lock_bh(&ntoskernel_lock);
+ if (attached)
+ attached->attached = src;
+ src->attached = NULL;
+ src->stack_count = attached->stack_count + 1;
+ src_dev_ext->attached_to = attached;
+ spin_unlock_bh(&ntoskernel_lock);
+ IOTRACE("stack_count: %d -> %d", attached->stack_count,
+ src->stack_count);
+ IOEXIT(return attached);
+}
+
+wstdcall NTSTATUS WIN_FUNC(IoGetDeviceProperty,5)
+ (struct device_object *pdo, enum device_registry_property dev_property,
+ ULONG buffer_len, void *buffer, ULONG *result_len)
+{
+ struct ansi_string ansi;
+ struct unicode_string unicode;
+ struct wrap_device *wd;
+ ULONG need;
+
+ IOENTER("dev_obj = %p, dev_property = %d, buffer_len = %u, "
+ "buffer = %p, result_len = %p", pdo, dev_property,
+ buffer_len, buffer, result_len);
+
+ wd = pdo->reserved;
+ switch (dev_property) {
+ case DevicePropertyDeviceDescription:
+ case DevicePropertyFriendlyName:
+ case DevicePropertyDriverKeyName:
+ if (wrap_is_pci_bus(wd->dev_bus))
+ RtlInitAnsiString(&ansi, "PCI");
+ else // if (wrap_is_usb_bus(wd->dev_bus))
+ RtlInitAnsiString(&ansi, "USB");
+ need = sizeof(wchar_t) * (ansi.max_length + 1);
+ if (buffer_len < need) {
+ *result_len = need;
+ IOEXIT(return STATUS_BUFFER_TOO_SMALL);
+ }
+ unicode.max_length = buffer_len;
+ unicode.buf = buffer;
+ if (RtlAnsiStringToUnicodeString(&unicode, &ansi,
+ FALSE) != STATUS_SUCCESS) {
+ *result_len = unicode.length;
+ IOEXIT(return STATUS_BUFFER_TOO_SMALL);
+ }
+ IOEXIT(return STATUS_SUCCESS);
+ default:
+ WARNING("%d not implemented", dev_property);
+ IOEXIT(return STATUS_INVALID_PARAMETER_2);
+ }
+}
+
+wstdcall NTSTATUS WIN_FUNC(IoGetDeviceObjectPointer,4)
+ (struct unicode_string *name, ACCESS_MASK desired_access,
+ void *file_obj, struct device_object *dev_obj)
+{
+ struct common_object_header *coh;
+
+ dev_obj = NULL;
+ /* TODO: access is not checked and file_obj is set to NULL */
+ file_obj = NULL;
+ spin_lock_bh(&ntoskernel_lock);
+ nt_list_for_each_entry(coh, &object_list, list) {
+ TRACE5("header: %p, type: %d", coh, coh->type);
+ if (coh->type != OBJECT_TYPE_DEVICE)
+ continue;
+ if (!RtlCompareUnicodeString(&coh->name, name, TRUE)) {
+ dev_obj = HEADER_TO_OBJECT(coh);
+ TRACE5("dev_obj: %p", dev_obj);
+ break;
+ }
+ }
+ spin_unlock_bh(&ntoskernel_lock);
+ if (dev_obj)
+ IOEXIT(return STATUS_SUCCESS);
+ else
+ IOEXIT(return STATUS_OBJECT_NAME_INVALID);
+}
+
+/* NOTE: Make sure to compile with -freg-struct-return, so gcc will
+ * return union in register, like Windows */
+wstdcall union power_state WIN_FUNC(PoSetPowerState,3)
+ (struct device_object *dev_obj, enum power_state_type type,
+ union power_state state)
+{
+ IOEXIT(return state);
+}
+
+wstdcall NTSTATUS WIN_FUNC(PoCallDriver,2)
+ (struct device_object *dev_obj, struct irp *irp)
+{
+ return IoCallDriver(dev_obj, irp);
+}
+
+wstdcall NTSTATUS WIN_FUNC(PoRequestPowerIrp,6)
+ (struct device_object *dev_obj, UCHAR minor_fn,
+ union power_state power_state, void *completion_func,
+ void *context, struct irp **pirp)
+{
+ struct irp *irp;
+ struct io_stack_location *irp_sl;
+
+ TRACE1("%p, %d, %p", dev_obj, dev_obj->stack_count, dev_obj->drv_obj);
+ irp = IoAllocateIrp(dev_obj->stack_count, FALSE);
+ if (!irp)
+ return STATUS_INSUFFICIENT_RESOURCES;
+ irp_sl = IoGetNextIrpStackLocation(irp);
+ irp_sl->major_fn = IRP_MJ_POWER;
+ irp_sl->minor_fn = minor_fn;
+ if (minor_fn == IRP_MN_WAIT_WAKE)
+ irp_sl->params.power.type = SystemPowerState;
+ else
+ irp_sl->params.power.type = DevicePowerState;
+ irp_sl->params.power.state = power_state;
+ irp_sl->completion_routine = completion_func;
+ irp->io_status.status = STATUS_NOT_SUPPORTED;
+ *pirp = irp;
+ return PoCallDriver(dev_obj, irp);
+}
+
+wstdcall void WIN_FUNC(PoStartNextPowerIrp,1)
+ (struct irp *irp)
+{
+ IOENTER("irp = %p", irp);
+ IOEXIT(return);
+}
+
+wstdcall void WIN_FUNC(IoInitializeRemoveLockEx,5)
+ (struct io_remove_lock *lock, ULONG alloc_tag, ULONG max_locked_min,
+ ULONG high_mark, ULONG lock_size)
+{
+ TODO();
+}
+
+wstdcall void *WIN_FUNC(IoAllocateErrorLogEntry,2)
+ (void *io_object, UCHAR entry_size)
+{
+ /* not implemented fully */
+ void *ret = kmalloc(sizeof(struct io_error_log_packet) + entry_size,
+ irql_gfp());
+ TRACE2("%p", ret);
+ if (ret)
+ return ret + sizeof(struct io_error_log_packet);
+ else
+ return NULL;
+}
+
+wstdcall void WIN_FUNC(IoWriteErrorLogEntry,1)
+ (void *entry)
+{
+ /* TODO: log error with codes and message */
+ ERROR("");
+}
+
+wstdcall void WIN_FUNC(IoFreeErrorLogEntry,1)
+ (void *entry)
+{
+ TRACE2("%p", entry);
+ kfree(entry - sizeof(struct io_error_log_packet));
+}
+
+wstdcall NTSTATUS WIN_FUNC(IoAcquireRemoveLockEx,5)
+ (struct io_remove_lock lock, void *tag, char *file, ULONG line,
+ ULONG lock_size)
+{
+ TODO();
+ IOEXIT(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS WIN_FUNC(IoReleaseRemoveLockEx,3)
+ (struct io_remove_lock lock, void *tag, ULONG lock_size)
+{
+ TODO();
+ IOEXIT(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS WIN_FUNC(IoRegisterDeviceInterface,4)
+ (struct device_object *pdo, struct guid *guid_class,
+ struct unicode_string *reference, struct unicode_string *link)
+{
+ struct ansi_string ansi;
+
+ /* TODO: check if pdo is valid */
+ RtlInitAnsiString(&ansi, "ndis");
+ ENTER1("pdo: %p, ref: %p, link: %p, %x, %x, %x", pdo, reference, link,
+ guid_class->data1, guid_class->data2, guid_class->data3);
+ return RtlAnsiStringToUnicodeString(link, &ansi, TRUE);
+}
+
+wstdcall NTSTATUS WIN_FUNC(IoSetDeviceInterfaceState,2)
+ (struct unicode_string *link, BOOLEAN enable)
+{
+ ENTER1("link: %p, enable: %d", link, enable);
+ return STATUS_SUCCESS;
+}
+
+wstdcall NTSTATUS WIN_FUNC(IoOpenDeviceRegistryKey,4)
+ (struct device_object *dev_obj, ULONG type, ACCESS_MASK mask,
+ void **handle)
+{
+ ENTER1("dev_obj: %p", dev_obj);
+ *handle = dev_obj;
+ return STATUS_SUCCESS;
+}
+
+wstdcall NTSTATUS WIN_FUNC(IoWMIRegistrationControl,2)
+ (struct device_object *dev_obj, ULONG action)
+{
+ ENTER2("%p, %d", dev_obj, action);
+ EXIT2(return STATUS_SUCCESS);
+}
+
+wstdcall void WIN_FUNC(IoInvalidateDeviceRelations,2)
+ (struct device_object *dev_obj, enum device_relation_type type)
+{
+ INFO("%p, %d", dev_obj, type);
+ TODO();
+}
+
+wstdcall void WIN_FUNC(IoInvalidateDeviceState,1)
+ (struct device_object *pdo)
+{
+ INFO("%p", pdo);
+ TODO();
+}
diff --git a/ubuntu/ndiswrapper/pe_linker.c b/ubuntu/ndiswrapper/pe_linker.c
new file mode 100644
index 00000000000..b2637ff98b5
--- /dev/null
+++ b/ubuntu/ndiswrapper/pe_linker.c
@@ -0,0 +1,599 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifdef TEST_LOADER
+
+#include "usr_linker.h"
+
+#else
+
+#include <linux/types.h>
+#include <asm/errno.h>
+
+//#define DEBUGLINKER 2
+
+#include "ntoskernel.h"
+
+#endif
+
+struct pe_exports {
+ char *dll;
+ char *name;
+ generic_func addr;
+};
+
+static struct pe_exports pe_exports[40];
+static int num_pe_exports;
+
+#define RVA2VA(image, rva, type) (type)(ULONG_PTR)((void *)image + rva)
+#define CHECK_SZ(a,b) { if (sizeof(a) != b) { \
+ ERROR("%s is bad, got %zd, expected %d", \
+ #a , sizeof(a), (b)); return -EINVAL; } }
+
+#if defined(DEBUGLINKER) && DEBUGLINKER > 0
+#define DBGLINKER(fmt, ...) printk(KERN_INFO "%s (%s:%d): " fmt "\n", \
+ DRIVER_NAME, __func__, \
+ __LINE__ , ## __VA_ARGS__);
+static const char *image_directory_name[] = {
+ "EXPORT",
+ "IMPORT",
+ "RESOURCE",
+ "EXCEPTION",
+ "SECURITY",
+ "BASERELOC",
+ "DEBUG",
+ "COPYRIGHT",
+ "GLOBALPTR",
+ "TLS",
+ "LOAD_CONFIG",
+ "BOUND_IMPORT",
+ "IAT",
+ "DELAY_IMPORT",
+ "COM_DESCRIPTOR" };
+#else
+#define DBGLINKER(fmt, ...) do { } while (0)
+#endif
+
+#ifndef TEST_LOADER
+extern struct wrap_export ntoskernel_exports[], ntoskernel_io_exports[],
+ ndis_exports[], crt_exports[], hal_exports[], rtl_exports[];
+#ifdef ENABLE_USB
+extern struct wrap_export usb_exports[];
+#endif
+
+static int get_export(char *name, generic_func *func)
+{
+ int i, j;
+
+ struct wrap_export *exports[] = {
+ ntoskernel_exports,
+ ntoskernel_io_exports,
+ ndis_exports,
+ crt_exports,
+ hal_exports,
+ rtl_exports,
+#ifdef ENABLE_USB
+ usb_exports,
+#endif
+ };
+
+ for (j = 0; j < ARRAY_SIZE(exports); j++)
+ for (i = 0; exports[j][i].name != NULL; i++)
+ if (strcmp(exports[j][i].name, name) == 0) {
+ *func = exports[j][i].func;
+ return 0;
+ }
+
+ for (i = 0; i < num_pe_exports; i++)
+ if (strcmp(pe_exports[i].name, name) == 0) {
+ *func = pe_exports[i].addr;
+ return 0;
+ }
+
+ return -1;
+}
+#endif // TEST_LOADER
+
+static void *get_dll_init(char *name)
+{
+ int i;
+ for (i = 0; i < num_pe_exports; i++)
+ if ((strcmp(pe_exports[i].dll, name) == 0) &&
+ (strcmp(pe_exports[i].name, "DllInitialize") == 0))
+ return (void *)pe_exports[i].addr;
+ return NULL;
+}
+
+/*
+ * Find and validate the coff header
+ *
+ */
+static int check_nt_hdr(IMAGE_NT_HEADERS *nt_hdr)
+{
+ int i;
+ WORD attr;
+ PIMAGE_OPTIONAL_HEADER opt_hdr;
+
+ /* Validate the "PE\0\0" signature */
+ if (nt_hdr->Signature != IMAGE_NT_SIGNATURE) {
+ ERROR("is this driver file? bad signature %08x",
+ nt_hdr->Signature);
+ return -EINVAL;
+ }
+
+ opt_hdr = &nt_hdr->OptionalHeader;
+ /* Make sure Image is PE32 or PE32+ */
+#ifdef CONFIG_X86_64
+ if (opt_hdr->Magic != IMAGE_NT_OPTIONAL_HDR64_MAGIC) {
+ ERROR("kernel is 64-bit, but Windows driver is not 64-bit;"
+ "bad magic: %04X", opt_hdr->Magic);
+ return -EINVAL;
+ }
+#else
+ if (opt_hdr->Magic != IMAGE_NT_OPTIONAL_HDR32_MAGIC) {
+ ERROR("kernel is 32-bit, but Windows driver is not 32-bit;"
+ "bad magic: %04X", opt_hdr->Magic);
+ return -EINVAL;
+ }
+#endif
+
+ /* Validate the image for the current architecture. */
+#ifdef CONFIG_X86_64
+ if (nt_hdr->FileHeader.Machine != IMAGE_FILE_MACHINE_AMD64) {
+ ERROR("kernel is 64-bit, but Windows driver is not 64-bit;"
+ " (PE signature is %04X)", nt_hdr->FileHeader.Machine);
+ return -EINVAL;
+ }
+#else
+ if (nt_hdr->FileHeader.Machine != IMAGE_FILE_MACHINE_I386) {
+ ERROR("kernel is 32-bit, but Windows driver is not 32-bit;"
+ " (PE signature is %04X)", nt_hdr->FileHeader.Machine);
+ return -EINVAL;
+ }
+#endif
+
+ /* Must have attributes */
+#ifdef CONFIG_X86_64
+ attr = IMAGE_FILE_EXECUTABLE_IMAGE | IMAGE_FILE_LARGE_ADDRESS_AWARE;
+#else
+ attr = IMAGE_FILE_EXECUTABLE_IMAGE | IMAGE_FILE_32BIT_MACHINE;
+#endif
+ if ((nt_hdr->FileHeader.Characteristics & attr) != attr)
+ return -EINVAL;
+
+ /* Must be relocatable */
+ attr = IMAGE_FILE_RELOCS_STRIPPED;
+ if ((nt_hdr->FileHeader.Characteristics & attr))
+ return -EINVAL;
+
+ /* Make sure we have at least one section */
+ if (nt_hdr->FileHeader.NumberOfSections == 0)
+ return -EINVAL;
+
+ if (opt_hdr->SectionAlignment < opt_hdr->FileAlignment) {
+ ERROR("alignment mismatch: secion: 0x%x, file: 0x%x",
+ opt_hdr->SectionAlignment, opt_hdr->FileAlignment);
+ return -EINVAL;
+ }
+
+ DBGLINKER("number of datadictionary entries %d",
+ opt_hdr->NumberOfRvaAndSizes);
+ for (i = 0; i < opt_hdr->NumberOfRvaAndSizes; i++) {
+ DBGLINKER("datadirectory %s RVA:%X Size:%d",
+ (i<=IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR)?
+ image_directory_name[i] : "unknown",
+ opt_hdr->DataDirectory[i].VirtualAddress,
+ opt_hdr->DataDirectory[i].Size);
+ }
+
+ if ((nt_hdr->FileHeader.Characteristics & IMAGE_FILE_EXECUTABLE_IMAGE))
+ return IMAGE_FILE_EXECUTABLE_IMAGE;
+ if ((nt_hdr->FileHeader.Characteristics & IMAGE_FILE_DLL))
+ return IMAGE_FILE_DLL;
+ return -EINVAL;
+}
+
+static int import(void *image, IMAGE_IMPORT_DESCRIPTOR *dirent, char *dll)
+{
+ ULONG_PTR *lookup_tbl, *address_tbl;
+ char *symname = NULL;
+ int i;
+ int ret = 0;
+ generic_func adr;
+
+ lookup_tbl = RVA2VA(image, dirent->u.OriginalFirstThunk, ULONG_PTR *);
+ address_tbl = RVA2VA(image, dirent->FirstThunk, ULONG_PTR *);
+
+ for (i = 0; lookup_tbl[i]; i++) {
+ if (IMAGE_SNAP_BY_ORDINAL(lookup_tbl[i])) {
+ ERROR("ordinal import not supported: %Lu",
+ (uint64_t)lookup_tbl[i]);
+ return -1;
+ }
+ else {
+ symname = RVA2VA(image,
+ ((lookup_tbl[i] &
+ ~IMAGE_ORDINAL_FLAG) + 2), char *);
+ }
+
+ ret = get_export(symname, &adr);
+ if (ret < 0) {
+ ERROR("unknown symbol: %s:'%s'", dll, symname);
+ } else {
+ DBGLINKER("found symbol: %s:%s: addr: %p, rva = %Lu",
+ dll, symname, adr, (uint64_t)address_tbl[i]);
+ address_tbl[i] = (ULONG_PTR)adr;
+ }
+ }
+ return ret;
+}
+
+static int read_exports(struct pe_image *pe)
+{
+ IMAGE_EXPORT_DIRECTORY *export_dir_table;
+ uint32_t *export_addr_table;
+ int i;
+ uint32_t *name_table;
+ PIMAGE_OPTIONAL_HEADER opt_hdr;
+ IMAGE_DATA_DIRECTORY *export_data_dir;
+
+ opt_hdr = &pe->nt_hdr->OptionalHeader;
+ export_data_dir =
+ &opt_hdr->DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT];
+
+ if (export_data_dir->Size == 0) {
+ DBGLINKER("no exports");
+ return 0;
+ }
+
+ export_dir_table =
+ RVA2VA(pe->image, export_data_dir->VirtualAddress,
+ IMAGE_EXPORT_DIRECTORY *);
+
+ name_table = (unsigned int *)(pe->image +
+ export_dir_table->AddressOfNames);
+ export_addr_table = (uint32_t *)
+ (pe->image + export_dir_table->AddressOfFunctions);
+
+ for (i = 0; i < export_dir_table->NumberOfNames; i++) {
+
+ if (export_data_dir->VirtualAddress <= *export_addr_table ||
+ *export_addr_table >= (export_data_dir->VirtualAddress +
+ export_data_dir->Size))
+ DBGLINKER("forwarder rva");
+
+ DBGLINKER("export symbol: %s, at %p",
+ (char *)(pe->image + *name_table),
+ pe->image + *export_addr_table);
+
+ pe_exports[num_pe_exports].dll = pe->name;
+ pe_exports[num_pe_exports].name = pe->image + *name_table;
+ pe_exports[num_pe_exports].addr =
+ pe->image + *export_addr_table;
+
+ num_pe_exports++;
+ name_table++;
+ export_addr_table++;
+ }
+ return 0;
+}
+
+static int fixup_imports(void *image, IMAGE_NT_HEADERS *nt_hdr)
+{
+ int i;
+ char *name;
+ int ret = 0;
+ IMAGE_IMPORT_DESCRIPTOR *dirent;
+ IMAGE_DATA_DIRECTORY *import_data_dir;
+ PIMAGE_OPTIONAL_HEADER opt_hdr;
+
+ opt_hdr = &nt_hdr->OptionalHeader;
+ import_data_dir =
+ &opt_hdr->DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT];
+ dirent = RVA2VA(image, import_data_dir->VirtualAddress,
+ IMAGE_IMPORT_DESCRIPTOR *);
+
+ for (i = 0; dirent[i].Name; i++) {
+ name = RVA2VA(image, dirent[i].Name, char*);
+
+ DBGLINKER("imports from dll: %s", name);
+ ret += import(image, &dirent[i], name);
+ }
+ return ret;
+}
+
+static int fixup_reloc(void *image, IMAGE_NT_HEADERS *nt_hdr)
+{
+ ULONG_PTR base;
+ ULONG_PTR size;
+ IMAGE_BASE_RELOCATION *fixup_block;
+ IMAGE_DATA_DIRECTORY *base_reloc_data_dir;
+ PIMAGE_OPTIONAL_HEADER opt_hdr;
+
+ opt_hdr = &nt_hdr->OptionalHeader;
+ base = opt_hdr->ImageBase;
+ base_reloc_data_dir =
+ &opt_hdr->DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC];
+ if (base_reloc_data_dir->Size == 0)
+ return 0;
+
+ fixup_block = RVA2VA(image, base_reloc_data_dir->VirtualAddress,
+ IMAGE_BASE_RELOCATION *);
+ DBGLINKER("fixup_block=%p, image=%p", fixup_block, image);
+ DBGLINKER("fixup_block info: %x %d",
+ fixup_block->VirtualAddress, fixup_block->SizeOfBlock);
+
+ while (fixup_block->SizeOfBlock) {
+ int i;
+ WORD fixup, offset;
+
+ size = (fixup_block->SizeOfBlock -
+ sizeof(IMAGE_BASE_RELOCATION)) / sizeof(WORD);
+ DBGLINKER("found %Lu relocations in this block",
+ (uint64_t)size);
+
+ for (i = 0; i < size; i++) {
+ fixup = fixup_block->TypeOffset[i];
+ offset = fixup & 0xfff;
+ switch ((fixup >> 12) & 0x0f) {
+ case IMAGE_REL_BASED_ABSOLUTE:
+ break;
+
+ case IMAGE_REL_BASED_HIGHLOW: {
+ uint32_t addr;
+ uint32_t *loc =
+ RVA2VA(image,
+ fixup_block->VirtualAddress +
+ offset, uint32_t *);
+ addr = RVA2VA(image, (*loc - base), uint32_t);
+ DBGLINKER("relocation: *%p (Val:%X)= %X",
+ loc, *loc, addr);
+ *loc = addr;
+ }
+ break;
+
+ case IMAGE_REL_BASED_DIR64: {
+ uint64_t addr;
+ uint64_t *loc =
+ RVA2VA(image,
+ fixup_block->VirtualAddress +
+ offset, uint64_t *);
+ addr = RVA2VA(image, (*loc - base), uint64_t);
+ DBGLINKER("relocation: *%p (Val:%llX)= %llx",
+ loc, *loc, addr);
+ *loc = addr;
+ }
+ break;
+
+ default:
+ ERROR("unknown fixup: %08X",
+ (fixup >> 12) & 0x0f);
+ return -EOPNOTSUPP;
+ break;
+ }
+ }
+ DBGLINKER("finished relocating block");
+
+ fixup_block = (IMAGE_BASE_RELOCATION *)
+ ((void *)fixup_block + fixup_block->SizeOfBlock);
+ };
+ DBGLINKER("done relocating all");
+
+ return 0;
+}
+
+/* Expand the image in memroy if necessary. The image on disk does not
+ * necessarily maps the image of the driver in memory, so we have to
+ * re-write it in order to fullfill the sections alignements. The
+ * advantage to do that is that rva_to_va becomes a simple
+ * addition. */
+static int fix_pe_image(struct pe_image *pe)
+{
+ void *image;
+ IMAGE_SECTION_HEADER *sect_hdr;
+ int i, sections;
+ int image_size;
+
+ if (pe->size == pe->opt_hdr->SizeOfImage) {
+ /* Nothing to do */
+ return 0;
+ }
+
+ image_size = pe->opt_hdr->SizeOfImage;
+#ifdef CONFIG_X86_64
+#ifdef PAGE_KERNEL_EXECUTABLE
+ image = __vmalloc(image_size, GFP_KERNEL | __GFP_HIGHMEM,
+ PAGE_KERNEL_EXECUTABLE);
+#elif defined PAGE_KERNEL_EXEC
+ image = __vmalloc(image_size, GFP_KERNEL | __GFP_HIGHMEM,
+ PAGE_KERNEL_EXEC);
+#else
+#error x86_64 should have either PAGE_KERNEL_EXECUTABLE or PAGE_KERNEL_EXEC
+#endif
+#else
+#ifdef cpu_has_nx
+ /* hate to play with kernel macros, but PAGE_KERNEL_EXEC is
+ * not available to modules! */
+ if (cpu_has_nx)
+ image = __vmalloc(image_size, GFP_KERNEL | __GFP_HIGHMEM,
+ __pgprot(__PAGE_KERNEL & ~_PAGE_NX));
+ else
+ image = vmalloc(image_size);
+#else
+ image = vmalloc(image_size);
+#endif
+#endif
+ if (image == NULL) {
+ ERROR("failed to allocate enough space for new image:"
+ " %d bytes", image_size);
+ return -ENOMEM;
+ }
+
+ /* Copy all the headers, ie everything before the first section. */
+
+ sections = pe->nt_hdr->FileHeader.NumberOfSections;
+ sect_hdr = IMAGE_FIRST_SECTION(pe->nt_hdr);
+
+ DBGLINKER("copying headers: %u bytes", sect_hdr->PointerToRawData);
+
+ memcpy(image, pe->image, sect_hdr->PointerToRawData);
+
+ /* Copy all the sections */
+ for (i = 0; i < sections; i++) {
+ DBGLINKER("Copy section %s from %x to %x",
+ sect_hdr->Name, sect_hdr->PointerToRawData,
+ sect_hdr->VirtualAddress);
+ if (sect_hdr->VirtualAddress+sect_hdr->SizeOfRawData >
+ image_size) {
+ ERROR("Invalid section %s in driver", sect_hdr->Name);
+ vfree(image);
+ return -EINVAL;
+ }
+
+ memcpy(image+sect_hdr->VirtualAddress,
+ pe->image + sect_hdr->PointerToRawData,
+ sect_hdr->SizeOfRawData);
+ sect_hdr++;
+ }
+
+ vfree(pe->image);
+ pe->image = image;
+ pe->size = image_size;
+
+ /* Update our internal pointers */
+ pe->nt_hdr = (IMAGE_NT_HEADERS *)
+ (pe->image + ((IMAGE_DOS_HEADER *)pe->image)->e_lfanew);
+ pe->opt_hdr = &pe->nt_hdr->OptionalHeader;
+
+ DBGLINKER("set nt headers: nt_hdr=%p, opt_hdr=%p, image=%p",
+ pe->nt_hdr, pe->opt_hdr, pe->image);
+
+ return 0;
+}
+
+#if defined(CONFIG_X86_64)
+static void fix_user_shared_data_addr(char *driver, unsigned long length)
+{
+ unsigned long i, n, max_addr, *addr;
+
+ n = length - sizeof(unsigned long);
+ max_addr = KI_USER_SHARED_DATA + sizeof(kuser_shared_data);
+ for (i = 0; i < n; i++) {
+ addr = (unsigned long *)(driver + i);
+ if (*addr >= KI_USER_SHARED_DATA && *addr < max_addr) {
+ *addr -= KI_USER_SHARED_DATA;
+ *addr += (unsigned long)&kuser_shared_data;
+ kuser_shared_data.reserved1 = 1;
+ }
+ }
+}
+#endif
+
+int link_pe_images(struct pe_image *pe_image, unsigned short n)
+{
+ int i;
+ struct pe_image *pe;
+
+#ifdef DEBUG
+ /* Sanity checkings */
+ CHECK_SZ(IMAGE_SECTION_HEADER, IMAGE_SIZEOF_SECTION_HEADER);
+ CHECK_SZ(IMAGE_FILE_HEADER, IMAGE_SIZEOF_FILE_HEADER);
+ CHECK_SZ(IMAGE_OPTIONAL_HEADER, IMAGE_SIZEOF_NT_OPTIONAL_HEADER);
+ CHECK_SZ(IMAGE_NT_HEADERS, 4 + IMAGE_SIZEOF_FILE_HEADER +
+ IMAGE_SIZEOF_NT_OPTIONAL_HEADER);
+ CHECK_SZ(IMAGE_DOS_HEADER, 0x40);
+ CHECK_SZ(IMAGE_EXPORT_DIRECTORY, 40);
+ CHECK_SZ(IMAGE_BASE_RELOCATION, 8);
+ CHECK_SZ(IMAGE_IMPORT_DESCRIPTOR, 20);
+#endif
+
+ for (i = 0; i < n; i++) {
+ IMAGE_DOS_HEADER *dos_hdr;
+ pe = &pe_image[i];
+ dos_hdr = pe->image;
+
+ if (pe->size < sizeof(IMAGE_DOS_HEADER)) {
+ TRACE1("image too small: %d", pe->size);
+ return -EINVAL;
+ }
+
+ pe->nt_hdr =
+ (IMAGE_NT_HEADERS *)(pe->image + dos_hdr->e_lfanew);
+ pe->opt_hdr = &pe->nt_hdr->OptionalHeader;
+
+ pe->type = check_nt_hdr(pe->nt_hdr);
+ if (pe->type <= 0) {
+ TRACE1("type <= 0");
+ return -EINVAL;
+ }
+
+ if (fix_pe_image(pe)) {
+ TRACE1("bad PE image");
+ return -EINVAL;
+ }
+
+ if (read_exports(pe)) {
+ TRACE1("read exports failed");
+ return -EINVAL;
+ }
+ }
+
+ for (i = 0; i < n; i++) {
+ pe = &pe_image[i];
+
+ if (fixup_reloc(pe->image, pe->nt_hdr)) {
+ TRACE1("fixup reloc failed");
+ return -EINVAL;
+ }
+ if (fixup_imports(pe->image, pe->nt_hdr)) {
+ TRACE1("fixup imports failed");
+ return -EINVAL;
+ }
+#if defined(CONFIG_X86_64)
+ INFO("fixing KI_USER_SHARED_DATA address in the driver");
+ fix_user_shared_data_addr(pe_image[i].image, pe_image[i].size);
+#endif
+ flush_icache_range(pe->image, pe->size);
+
+ pe->entry =
+ RVA2VA(pe->image,
+ pe->opt_hdr->AddressOfEntryPoint, void *);
+ TRACE1("entry is at %p, rva at %08X", pe->entry,
+ pe->opt_hdr->AddressOfEntryPoint);
+ }
+
+ for (i = 0; i < n; i++) {
+ pe = &pe_image[i];
+
+ if (pe->type == IMAGE_FILE_DLL) {
+ struct unicode_string ustring;
+ char *buf = "0/0t0m0p00";
+ int (*dll_entry)(struct unicode_string *ustring)
+ wstdcall;
+
+ memset(&ustring, 0, sizeof(ustring));
+ ustring.buf = (wchar_t *)buf;
+ dll_entry = (void *)get_dll_init(pe->name);
+
+ TRACE1("calling dll_init at %p", dll_entry);
+ if (!dll_entry || dll_entry(&ustring))
+ ERROR("DLL initialize failed for %s",
+ pe->name);
+ }
+ else if (pe->type != IMAGE_FILE_EXECUTABLE_IMAGE)
+ ERROR("illegal image type: %d", pe->type);
+ }
+ return 0;
+}
diff --git a/ubuntu/ndiswrapper/pe_linker.h b/ubuntu/ndiswrapper/pe_linker.h
new file mode 100644
index 00000000000..d582cdbb7c9
--- /dev/null
+++ b/ubuntu/ndiswrapper/pe_linker.h
@@ -0,0 +1,993 @@
+/*
+ * This file is an excerpt of winnt.h from WINE, which bears the
+ * following copyright:
+ *
+ * Win32 definitions for Windows NT
+ *
+ * Copyright 1996 Alexandre Julliard
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+/*
+ * File formats definitions
+ */
+typedef struct _IMAGE_DOS_HEADER {
+ WORD e_magic; /* 00: MZ Header signature */
+ WORD e_cblp; /* 02: Bytes on last page of file */
+ WORD e_cp; /* 04: Pages in file */
+ WORD e_crlc; /* 06: Relocations */
+ WORD e_cparhdr; /* 08: Size of header in paragraphs */
+ WORD e_minalloc; /* 0a: Minimum extra paragraphs needed */
+ WORD e_maxalloc; /* 0c: Maximum extra paragraphs needed */
+ WORD e_ss; /* 0e: Initial (relative) SS value */
+ WORD e_sp; /* 10: Initial SP value */
+ WORD e_csum; /* 12: Checksum */
+ WORD e_ip; /* 14: Initial IP value */
+ WORD e_cs; /* 16: Initial (relative) CS value */
+ WORD e_lfarlc; /* 18: File address of relocation table */
+ WORD e_ovno; /* 1a: Overlay number */
+ WORD e_res[4]; /* 1c: Reserved words */
+ WORD e_oemid; /* 24: OEM identifier (for e_oeminfo) */
+ WORD e_oeminfo; /* 26: OEM information; e_oemid specific */
+ WORD e_res2[10]; /* 28: Reserved words */
+ DWORD e_lfanew; /* 3c: Offset to extended header */
+} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
+
+#define IMAGE_DOS_SIGNATURE 0x5A4D /* MZ */
+#define IMAGE_OS2_SIGNATURE 0x454E /* NE */
+#define IMAGE_OS2_SIGNATURE_LE 0x454C /* LE */
+#define IMAGE_OS2_SIGNATURE_LX 0x584C /* LX */
+#define IMAGE_VXD_SIGNATURE 0x454C /* LE */
+#define IMAGE_NT_SIGNATURE 0x00004550 /* PE00 */
+
+/*
+ * This is the Windows executable (NE) header.
+ * the name IMAGE_OS2_HEADER is misleading, but in the SDK this way.
+ */
+typedef struct
+{
+ WORD ne_magic; /* 00 NE signature 'NE' */
+ BYTE ne_ver; /* 02 Linker version number */
+ BYTE ne_rev; /* 03 Linker revision number */
+ WORD ne_enttab; /* 04 Offset to entry table relative to NE */
+ WORD ne_cbenttab; /* 06 Length of entry table in bytes */
+ LONG ne_crc; /* 08 Checksum */
+ WORD ne_flags; /* 0c Flags about segments in this file */
+ WORD ne_autodata; /* 0e Automatic data segment number */
+ WORD ne_heap; /* 10 Initial size of local heap */
+ WORD ne_stack; /* 12 Initial size of stack */
+ DWORD ne_csip; /* 14 Initial CS:IP */
+ DWORD ne_sssp; /* 18 Initial SS:SP */
+ WORD ne_cseg; /* 1c # of entries in segment table */
+ WORD ne_cmod; /* 1e # of entries in module reference tab. */
+ WORD ne_cbnrestab; /* 20 Length of nonresident-name table */
+ WORD ne_segtab; /* 22 Offset to segment table */
+ WORD ne_rsrctab; /* 24 Offset to resource table */
+ WORD ne_restab; /* 26 Offset to resident-name table */
+ WORD ne_modtab; /* 28 Offset to module reference table */
+ WORD ne_imptab; /* 2a Offset to imported name table */
+ DWORD ne_nrestab; /* 2c Offset to nonresident-name table */
+ WORD ne_cmovent; /* 30 # of movable entry points */
+ WORD ne_align; /* 32 Logical sector alignment shift count */
+ WORD ne_cres; /* 34 # of resource segments */
+ BYTE ne_exetyp; /* 36 Flags indicating target OS */
+ BYTE ne_flagsothers; /* 37 Additional information flags */
+ WORD ne_pretthunks; /* 38 Offset to return thunks */
+ WORD ne_psegrefbytes; /* 3a Offset to segment ref. bytes */
+ WORD ne_swaparea; /* 3c Reserved by Microsoft */
+ WORD ne_expver; /* 3e Expected Windows version number */
+} IMAGE_OS2_HEADER, *PIMAGE_OS2_HEADER;
+
+typedef struct _IMAGE_VXD_HEADER {
+ WORD e32_magic;
+ BYTE e32_border;
+ BYTE e32_worder;
+ DWORD e32_level;
+ WORD e32_cpu;
+ WORD e32_os;
+ DWORD e32_ver;
+ DWORD e32_mflags;
+ DWORD e32_mpages;
+ DWORD e32_startobj;
+ DWORD e32_eip;
+ DWORD e32_stackobj;
+ DWORD e32_esp;
+ DWORD e32_pagesize;
+ DWORD e32_lastpagesize;
+ DWORD e32_fixupsize;
+ DWORD e32_fixupsum;
+ DWORD e32_ldrsize;
+ DWORD e32_ldrsum;
+ DWORD e32_objtab;
+ DWORD e32_objcnt;
+ DWORD e32_objmap;
+ DWORD e32_itermap;
+ DWORD e32_rsrctab;
+ DWORD e32_rsrccnt;
+ DWORD e32_restab;
+ DWORD e32_enttab;
+ DWORD e32_dirtab;
+ DWORD e32_dircnt;
+ DWORD e32_fpagetab;
+ DWORD e32_frectab;
+ DWORD e32_impmod;
+ DWORD e32_impmodcnt;
+ DWORD e32_impproc;
+ DWORD e32_pagesum;
+ DWORD e32_datapage;
+ DWORD e32_preload;
+ DWORD e32_nrestab;
+ DWORD e32_cbnrestab;
+ DWORD e32_nressum;
+ DWORD e32_autodata;
+ DWORD e32_debuginfo;
+ DWORD e32_debuglen;
+ DWORD e32_instpreload;
+ DWORD e32_instdemand;
+ DWORD e32_heapsize;
+ BYTE e32_res3[12];
+ DWORD e32_winresoff;
+ DWORD e32_winreslen;
+ WORD e32_devid;
+ WORD e32_ddkver;
+} IMAGE_VXD_HEADER, *PIMAGE_VXD_HEADER;
+
+/* These defines describe the meanings of the bits in the
+ Characteristics field */
+
+#define IMAGE_FILE_RELOCS_STRIPPED 0x0001 /* No relocation info */
+#define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002
+#define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004
+#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008
+#define IMAGE_FILE_AGGRESIVE_WS_TRIM 0x0010
+#define IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020
+#define IMAGE_FILE_16BIT_MACHINE 0x0040
+#define IMAGE_FILE_BYTES_REVERSED_LO 0x0080
+#define IMAGE_FILE_32BIT_MACHINE 0x0100
+#define IMAGE_FILE_DEBUG_STRIPPED 0x0200
+#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400
+#define IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800
+#define IMAGE_FILE_SYSTEM 0x1000
+#define IMAGE_FILE_DLL 0x2000
+#define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000
+#define IMAGE_FILE_BYTES_REVERSED_HI 0x8000
+
+/* These are the settings of the Machine field. */
+#define IMAGE_FILE_MACHINE_UNKNOWN 0
+#define IMAGE_FILE_MACHINE_I860 0x014d
+#define IMAGE_FILE_MACHINE_I386 0x014c
+#define IMAGE_FILE_MACHINE_R3000 0x0162
+#define IMAGE_FILE_MACHINE_R4000 0x0166
+#define IMAGE_FILE_MACHINE_R10000 0x0168
+#define IMAGE_FILE_MACHINE_WCEMIPSV2 0x0169
+#define IMAGE_FILE_MACHINE_ALPHA 0x0184
+#define IMAGE_FILE_MACHINE_SH3 0x01a2
+#define IMAGE_FILE_MACHINE_SH3DSP 0x01a3
+#define IMAGE_FILE_MACHINE_SH3E 0x01a4
+#define IMAGE_FILE_MACHINE_SH4 0x01a6
+#define IMAGE_FILE_MACHINE_SH5 0x01a8
+#define IMAGE_FILE_MACHINE_ARM 0x01c0
+#define IMAGE_FILE_MACHINE_THUMB 0x01c2
+#define IMAGE_FILE_MACHINE_AM33 0x01d3
+#define IMAGE_FILE_MACHINE_POWERPC 0x01f0
+#define IMAGE_FILE_MACHINE_POWERPCFP 0x01f1
+#define IMAGE_FILE_MACHINE_IA64 0x0200
+#define IMAGE_FILE_MACHINE_MIPS16 0x0266
+#define IMAGE_FILE_MACHINE_ALPHA64 0x0284
+#define IMAGE_FILE_MACHINE_MIPSFPU 0x0366
+#define IMAGE_FILE_MACHINE_MIPSFPU16 0x0466
+#define IMAGE_FILE_MACHINE_AXP64 IMAGE_FILE_MACHINE_ALPHA64
+#define IMAGE_FILE_MACHINE_TRICORE 0x0520
+#define IMAGE_FILE_MACHINE_CEF 0x0cef
+#define IMAGE_FILE_MACHINE_EBC 0x0ebc
+#define IMAGE_FILE_MACHINE_AMD64 0x8664
+#define IMAGE_FILE_MACHINE_M32R 0x9041
+#define IMAGE_FILE_MACHINE_CEE 0xc0ee
+
+#define IMAGE_SIZEOF_FILE_HEADER 20
+#define IMAGE_SIZEOF_ROM_OPTIONAL_HEADER 56
+#define IMAGE_SIZEOF_STD_OPTIONAL_HEADER 28
+#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER32 224
+#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER64 240
+#define IMAGE_SIZEOF_SHORT_NAME 8
+#define IMAGE_SIZEOF_SECTION_HEADER 40
+#define IMAGE_SIZEOF_SYMBOL 18
+#define IMAGE_SIZEOF_AUX_SYMBOL 18
+#define IMAGE_SIZEOF_RELOCATION 10
+#define IMAGE_SIZEOF_BASE_RELOCATION 8
+#define IMAGE_SIZEOF_LINENUMBER 6
+#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60
+
+/* Possible Magic values */
+#define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x010b
+#define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x020b
+#define IMAGE_ROM_OPTIONAL_HDR_MAGIC 0x0107
+
+#ifdef CONFIG_X86_64
+#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER IMAGE_SIZEOF_NT_OPTIONAL_HEADER64
+#define IMAGE_NT_OPTIONAL_HDR_MAGIC IMAGE_NT_OPTIONAL_HDR64_MAGIC
+#else
+#define IMAGE_SIZEOF_NT_OPTIONAL_HEADER IMAGE_SIZEOF_NT_OPTIONAL_HEADER32
+#define IMAGE_NT_OPTIONAL_HDR_MAGIC IMAGE_NT_OPTIONAL_HDR32_MAGIC
+#endif
+
+/* These are indexes into the DataDirectory array */
+#define IMAGE_FILE_EXPORT_DIRECTORY 0
+#define IMAGE_FILE_IMPORT_DIRECTORY 1
+#define IMAGE_FILE_RESOURCE_DIRECTORY 2
+#define IMAGE_FILE_EXCEPTION_DIRECTORY 3
+#define IMAGE_FILE_SECURITY_DIRECTORY 4
+#define IMAGE_FILE_BASE_RELOCATION_TABLE 5
+#define IMAGE_FILE_DEBUG_DIRECTORY 6
+#define IMAGE_FILE_DESCRIPTION_STRING 7
+#define IMAGE_FILE_MACHINE_VALUE 8 /* Mips */
+#define IMAGE_FILE_THREAD_LOCAL_STORAGE 9
+#define IMAGE_FILE_CALLBACK_DIRECTORY 10
+
+/* Directory Entries, indices into the DataDirectory array */
+
+#define IMAGE_DIRECTORY_ENTRY_EXPORT 0
+#define IMAGE_DIRECTORY_ENTRY_IMPORT 1
+#define IMAGE_DIRECTORY_ENTRY_RESOURCE 2
+#define IMAGE_DIRECTORY_ENTRY_EXCEPTION 3
+#define IMAGE_DIRECTORY_ENTRY_SECURITY 4
+#define IMAGE_DIRECTORY_ENTRY_BASERELOC 5
+#define IMAGE_DIRECTORY_ENTRY_DEBUG 6
+#define IMAGE_DIRECTORY_ENTRY_COPYRIGHT 7
+#define IMAGE_DIRECTORY_ENTRY_GLOBALPTR 8 /* (MIPS GP) */
+#define IMAGE_DIRECTORY_ENTRY_TLS 9
+#define IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG 10
+#define IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT 11
+#define IMAGE_DIRECTORY_ENTRY_IAT 12 /* Import Address Table */
+#define IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT 13
+#define IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR 14
+
+/* Subsystem Values */
+
+#define IMAGE_SUBSYSTEM_UNKNOWN 0
+#define IMAGE_SUBSYSTEM_NATIVE 1
+#define IMAGE_SUBSYSTEM_WINDOWS_GUI 2 /* Windows GUI subsystem */
+#define IMAGE_SUBSYSTEM_WINDOWS_CUI 3 /* Windows character subsystem */
+#define IMAGE_SUBSYSTEM_OS2_CUI 5
+#define IMAGE_SUBSYSTEM_POSIX_CUI 7
+#define IMAGE_SUBSYSTEM_NATIVE_WINDOWS 8 /* native Win9x driver */
+#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI 9 /* Windows CE subsystem */
+#define IMAGE_SUBSYSTEM_EFI_APPLICATION 10
+#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
+#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 12
+#define IMAGE_SUBSYSTEM_EFI_ROM 13
+#define IMAGE_SUBSYSTEM_XBOX 14
+
+typedef struct _IMAGE_FILE_HEADER {
+ WORD Machine;
+ WORD NumberOfSections;
+ DWORD TimeDateStamp;
+ DWORD PointerToSymbolTable;
+ DWORD NumberOfSymbols;
+ WORD SizeOfOptionalHeader;
+ WORD Characteristics;
+} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER;
+
+typedef struct _IMAGE_DATA_DIRECTORY {
+ DWORD VirtualAddress;
+ DWORD Size;
+} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY;
+
+#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16
+
+typedef struct _IMAGE_OPTIONAL_HEADER32 {
+
+ /* Standard fields */
+
+ WORD Magic;
+ BYTE MajorLinkerVersion;
+ BYTE MinorLinkerVersion;
+ DWORD SizeOfCode;
+ DWORD SizeOfInitializedData;
+ DWORD SizeOfUninitializedData;
+ DWORD AddressOfEntryPoint;
+ DWORD BaseOfCode;
+ DWORD BaseOfData;
+
+ /* NT additional fields */
+ DWORD ImageBase;
+ DWORD SectionAlignment;
+ DWORD FileAlignment;
+ WORD MajorOperatingSystemVersion;
+ WORD MinorOperatingSystemVersion;
+ WORD MajorImageVersion;
+ WORD MinorImageVersion;
+ WORD MajorSubsystemVersion;
+ WORD MinorSubsystemVersion;
+ DWORD Win32VersionValue;
+ DWORD SizeOfImage;
+ DWORD SizeOfHeaders;
+ DWORD CheckSum;
+ WORD Subsystem;
+ WORD DllCharacteristics;
+ DWORD SizeOfStackReserve;
+ DWORD SizeOfStackCommit;
+ DWORD SizeOfHeapReserve;
+ DWORD SizeOfHeapCommit;
+ DWORD LoaderFlags;
+ DWORD NumberOfRvaAndSizes;
+ IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
+} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32;
+
+typedef struct _IMAGE_OPTIONAL_HEADER64 {
+
+ /* Standard fields */
+
+ WORD Magic;
+ BYTE MajorLinkerVersion;
+ BYTE MinorLinkerVersion;
+ DWORD SizeOfCode;
+ DWORD SizeOfInitializedData;
+ DWORD SizeOfUninitializedData;
+ DWORD AddressOfEntryPoint;
+ DWORD BaseOfCode;
+
+ /* NT additional fields */
+ ULONGLONG ImageBase;
+ DWORD SectionAlignment;
+ DWORD FileAlignment;
+ WORD MajorOperatingSystemVersion;
+ WORD MinorOperatingSystemVersion;
+ WORD MajorImageVersion;
+ WORD MinorImageVersion;
+ WORD MajorSubsystemVersion;
+ WORD MinorSubsystemVersion;
+ DWORD Win32VersionValue;
+ DWORD SizeOfImage;
+ DWORD SizeOfHeaders;
+ DWORD CheckSum;
+ WORD Subsystem;
+ WORD DllCharacteristics;
+ ULONGLONG SizeOfStackReserve;
+ ULONGLONG SizeOfStackCommit;
+ ULONGLONG SizeOfHeapReserve;
+ ULONGLONG SizeOfHeapCommit;
+ DWORD LoaderFlags;
+ DWORD NumberOfRvaAndSizes;
+ IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES];
+} IMAGE_OPTIONAL_HEADER64, *PIMAGE_OPTIONAL_HEADER64;
+
+#ifdef CONFIG_X86_64
+typedef IMAGE_OPTIONAL_HEADER64 IMAGE_OPTIONAL_HEADER;
+typedef PIMAGE_OPTIONAL_HEADER64 PIMAGE_OPTIONAL_HEADER;
+#else
+typedef IMAGE_OPTIONAL_HEADER32 IMAGE_OPTIONAL_HEADER;
+typedef PIMAGE_OPTIONAL_HEADER32 PIMAGE_OPTIONAL_HEADER;
+#endif
+
+typedef struct _IMAGE_NT_HEADERS32 {
+ DWORD Signature; /* "PE"\0\0 */ /* 0x00 */
+ IMAGE_FILE_HEADER FileHeader; /* 0x04 */
+ IMAGE_OPTIONAL_HEADER32 OptionalHeader; /* 0x18 */
+} IMAGE_NT_HEADERS32, *PIMAGE_NT_HEADERS32;
+
+typedef struct _IMAGE_NT_HEADERS64 {
+ DWORD Signature; /* "PE"\0\0 */ /* 0x00 */
+ IMAGE_FILE_HEADER FileHeader; /* 0x04 */
+ IMAGE_OPTIONAL_HEADER64 OptionalHeader; /* 0x18 */
+} IMAGE_NT_HEADERS64, *PIMAGE_NT_HEADERS64;
+
+#ifdef CONFIG_X86_64
+typedef IMAGE_NT_HEADERS64 IMAGE_NT_HEADERS;
+typedef PIMAGE_NT_HEADERS64 PIMAGE_NT_HEADERS;
+#else
+typedef IMAGE_NT_HEADERS32 IMAGE_NT_HEADERS;
+typedef PIMAGE_NT_HEADERS32 PIMAGE_NT_HEADERS;
+#endif
+
+#define IMAGE_SIZEOF_SHORT_NAME 8
+
+typedef struct _IMAGE_SECTION_HEADER {
+ BYTE Name[IMAGE_SIZEOF_SHORT_NAME];
+ union {
+ DWORD PhysicalAddress;
+ DWORD VirtualSize;
+ } Misc;
+ DWORD VirtualAddress;
+ DWORD SizeOfRawData;
+ DWORD PointerToRawData;
+ DWORD PointerToRelocations;
+ DWORD PointerToLinenumbers;
+ WORD NumberOfRelocations;
+ WORD NumberOfLinenumbers;
+ DWORD Characteristics;
+} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER;
+
+#define IMAGE_SIZEOF_SECTION_HEADER 40
+
+#define IMAGE_FIRST_SECTION(ntheader) \
+((PIMAGE_SECTION_HEADER)((LPBYTE)&((PIMAGE_NT_HEADERS)(ntheader))->OptionalHeader + \
+((PIMAGE_NT_HEADERS)(ntheader))->FileHeader.SizeOfOptionalHeader))
+
+/* These defines are for the Characteristics bitfield. */
+/* #define IMAGE_SCN_TYPE_REG 0x00000000 - Reserved */
+/* #define IMAGE_SCN_TYPE_DSECT 0x00000001 - Reserved */
+/* #define IMAGE_SCN_TYPE_NOLOAD 0x00000002 - Reserved */
+/* #define IMAGE_SCN_TYPE_GROUP 0x00000004 - Reserved */
+#define IMAGE_SCN_TYPE_NO_PAD 0x00000008 /* Reserved */
+/* #define IMAGE_SCN_TYPE_COPY 0x00000010 - Reserved */
+
+#define IMAGE_SCN_CNT_CODE 0x00000020
+#define IMAGE_SCN_CNT_INITIALIZED_DATA 0x00000040
+#define IMAGE_SCN_CNT_UNINITIALIZED_DATA 0x00000080
+
+#define IMAGE_SCN_LNK_OTHER 0x00000100
+#define IMAGE_SCN_LNK_INFO 0x00000200
+/* #define IMAGE_SCN_TYPE_OVER 0x00000400 - Reserved */
+#define IMAGE_SCN_LNK_REMOVE 0x00000800
+#define IMAGE_SCN_LNK_COMDAT 0x00001000
+
+/* 0x00002000 - Reserved */
+/* #define IMAGE_SCN_MEM_PROTECTED 0x00004000 - Obsolete */
+#define IMAGE_SCN_MEM_FARDATA 0x00008000
+
+/* #define IMAGE_SCN_MEM_SYSHEAP 0x00010000 - Obsolete */
+#define IMAGE_SCN_MEM_PURGEABLE 0x00020000
+#define IMAGE_SCN_MEM_16BIT 0x00020000
+#define IMAGE_SCN_MEM_LOCKED 0x00040000
+#define IMAGE_SCN_MEM_PRELOAD 0x00080000
+
+#define IMAGE_SCN_ALIGN_1BYTES 0x00100000
+#define IMAGE_SCN_ALIGN_2BYTES 0x00200000
+#define IMAGE_SCN_ALIGN_4BYTES 0x00300000
+#define IMAGE_SCN_ALIGN_8BYTES 0x00400000
+#define IMAGE_SCN_ALIGN_16BYTES 0x00500000 /* Default */
+#define IMAGE_SCN_ALIGN_32BYTES 0x00600000
+#define IMAGE_SCN_ALIGN_64BYTES 0x00700000
+#define IMAGE_SCN_ALIGN_128BYTES 0x00800000
+#define IMAGE_SCN_ALIGN_256BYTES 0x00900000
+#define IMAGE_SCN_ALIGN_512BYTES 0x00A00000
+#define IMAGE_SCN_ALIGN_1024BYTES 0x00B00000
+#define IMAGE_SCN_ALIGN_2048BYTES 0x00C00000
+#define IMAGE_SCN_ALIGN_4096BYTES 0x00D00000
+#define IMAGE_SCN_ALIGN_8192BYTES 0x00E00000
+/* 0x00F00000 - Unused */
+#define IMAGE_SCN_ALIGN_MASK 0x00F00000
+
+#define IMAGE_SCN_LNK_NRELOC_OVFL 0x01000000
+
+
+#define IMAGE_SCN_MEM_DISCARDABLE 0x02000000
+#define IMAGE_SCN_MEM_NOT_CACHED 0x04000000
+#define IMAGE_SCN_MEM_NOT_PAGED 0x08000000
+#define IMAGE_SCN_MEM_SHARED 0x10000000
+#define IMAGE_SCN_MEM_EXECUTE 0x20000000
+#define IMAGE_SCN_MEM_READ 0x40000000
+#define IMAGE_SCN_MEM_WRITE 0x80000000
+
+typedef struct _IMAGE_SYMBOL {
+ union {
+ BYTE ShortName[8];
+ struct {
+ DWORD Short;
+ DWORD Long;
+ } Name;
+ DWORD LongName[2];
+ } N;
+ DWORD Value;
+ SHORT SectionNumber;
+ WORD Type;
+ BYTE StorageClass;
+ BYTE NumberOfAuxSymbols;
+} IMAGE_SYMBOL;
+typedef IMAGE_SYMBOL *PIMAGE_SYMBOL;
+
+#define IMAGE_SIZEOF_SYMBOL 18
+
+typedef struct _IMAGE_LINENUMBER {
+ union {
+ DWORD SymbolTableIndex;
+ DWORD VirtualAddress;
+ } Type;
+ WORD Linenumber;
+} IMAGE_LINENUMBER;
+typedef IMAGE_LINENUMBER *PIMAGE_LINENUMBER;
+
+#define IMAGE_SIZEOF_LINENUMBER 6
+
+typedef union _IMAGE_AUX_SYMBOL {
+ struct {
+ DWORD TagIndex;
+ union {
+ struct {
+ WORD Linenumber;
+ WORD Size;
+ } LnSz;
+ DWORD TotalSize;
+ } Misc;
+ union {
+ struct {
+ DWORD PointerToLinenumber;
+ DWORD PointerToNextFunction;
+ } Function;
+ struct {
+ WORD Dimension[4];
+ } Array;
+ } FcnAry;
+ WORD TvIndex;
+ } Sym;
+ struct {
+ BYTE Name[IMAGE_SIZEOF_SYMBOL];
+ } File;
+ struct {
+ DWORD Length;
+ WORD NumberOfRelocations;
+ WORD NumberOfLinenumbers;
+ DWORD CheckSum;
+ SHORT Number;
+ BYTE Selection;
+ } Section;
+} IMAGE_AUX_SYMBOL;
+typedef IMAGE_AUX_SYMBOL *PIMAGE_AUX_SYMBOL;
+
+#define IMAGE_SIZEOF_AUX_SYMBOL 18
+
+#define IMAGE_SYM_UNDEFINED (SHORT)0
+#define IMAGE_SYM_ABSOLUTE (SHORT)-1
+#define IMAGE_SYM_DEBUG (SHORT)-2
+
+#define IMAGE_SYM_TYPE_NULL 0x0000
+#define IMAGE_SYM_TYPE_VOID 0x0001
+#define IMAGE_SYM_TYPE_CHAR 0x0002
+#define IMAGE_SYM_TYPE_SHORT 0x0003
+#define IMAGE_SYM_TYPE_INT 0x0004
+#define IMAGE_SYM_TYPE_LONG 0x0005
+#define IMAGE_SYM_TYPE_FLOAT 0x0006
+#define IMAGE_SYM_TYPE_DOUBLE 0x0007
+#define IMAGE_SYM_TYPE_STRUCT 0x0008
+#define IMAGE_SYM_TYPE_UNION 0x0009
+#define IMAGE_SYM_TYPE_ENUM 0x000A
+#define IMAGE_SYM_TYPE_MOE 0x000B
+#define IMAGE_SYM_TYPE_BYTE 0x000C
+#define IMAGE_SYM_TYPE_WORD 0x000D
+#define IMAGE_SYM_TYPE_UINT 0x000E
+#define IMAGE_SYM_TYPE_DWORD 0x000F
+#define IMAGE_SYM_TYPE_PCODE 0x8000
+
+#define IMAGE_SYM_DTYPE_NULL 0
+#define IMAGE_SYM_DTYPE_POINTER 1
+#define IMAGE_SYM_DTYPE_FUNCTION 2
+#define IMAGE_SYM_DTYPE_ARRAY 3
+
+#define IMAGE_SYM_CLASS_END_OF_FUNCTION (BYTE )-1
+#define IMAGE_SYM_CLASS_NULL 0x0000
+#define IMAGE_SYM_CLASS_AUTOMATIC 0x0001
+#define IMAGE_SYM_CLASS_EXTERNAL 0x0002
+#define IMAGE_SYM_CLASS_STATIC 0x0003
+#define IMAGE_SYM_CLASS_REGISTER 0x0004
+#define IMAGE_SYM_CLASS_EXTERNAL_DEF 0x0005
+#define IMAGE_SYM_CLASS_LABEL 0x0006
+#define IMAGE_SYM_CLASS_UNDEFINED_LABEL 0x0007
+#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT 0x0008
+#define IMAGE_SYM_CLASS_ARGUMENT 0x0009
+#define IMAGE_SYM_CLASS_STRUCT_TAG 0x000A
+#define IMAGE_SYM_CLASS_MEMBER_OF_UNION 0x000B
+#define IMAGE_SYM_CLASS_UNION_TAG 0x000C
+#define IMAGE_SYM_CLASS_TYPE_DEFINITION 0x000D
+#define IMAGE_SYM_CLASS_UNDEFINED_STATIC 0x000E
+#define IMAGE_SYM_CLASS_ENUM_TAG 0x000F
+#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM 0x0010
+#define IMAGE_SYM_CLASS_REGISTER_PARAM 0x0011
+#define IMAGE_SYM_CLASS_BIT_FIELD 0x0012
+
+#define IMAGE_SYM_CLASS_FAR_EXTERNAL 0x0044
+#define IMAGE_SYM_CLASS_BLOCK 0x0064
+#define IMAGE_SYM_CLASS_FUNCTION 0x0065
+#define IMAGE_SYM_CLASS_END_OF_STRUCT 0x0066
+#define IMAGE_SYM_CLASS_FILE 0x0067
+#define IMAGE_SYM_CLASS_SECTION 0x0068
+#define IMAGE_SYM_CLASS_WEAK_EXTERNAL 0x0069
+
+#define N_BTMASK 0x000F
+#define N_TMASK 0x0030
+#define N_TMASK1 0x00C0
+#define N_TMASK2 0x00F0
+#define N_BTSHFT 4
+#define N_TSHIFT 2
+
+#define BTYPE(x) ((x) & N_BTMASK)
+
+#ifndef ISPTR
+#define ISPTR(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_POINTER << N_BTSHFT))
+#endif
+
+#ifndef ISFCN
+#define ISFCN(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_FUNCTION << N_BTSHFT))
+#endif
+
+#ifndef ISARY
+#define ISARY(x) (((x) & N_TMASK) == (IMAGE_SYM_DTYPE_ARRAY << N_BTSHFT))
+#endif
+
+#ifndef ISTAG
+#define ISTAG(x) ((x)==IMAGE_SYM_CLASS_STRUCT_TAG || (x)==IMAGE_SYM_CLASS_UNION_TAG || (x)==IMAGE_SYM_CLASS_ENUM_TAG)
+#endif
+
+#ifndef INCREF
+#define INCREF(x) ((((x)&~N_BTMASK)<<N_TSHIFT)|(IMAGE_SYM_DTYPE_POINTER<<N_BTSHFT)|((x)&N_BTMASK))
+#endif
+#ifndef DECREF
+#define DECREF(x) ((((x)>>N_TSHIFT)&~N_BTMASK)|((x)&N_BTMASK))
+#endif
+
+#define IMAGE_COMDAT_SELECT_NODUPLICATES 1
+#define IMAGE_COMDAT_SELECT_ANY 2
+#define IMAGE_COMDAT_SELECT_SAME_SIZE 3
+#define IMAGE_COMDAT_SELECT_EXACT_MATCH 4
+#define IMAGE_COMDAT_SELECT_ASSOCIATIVE 5
+#define IMAGE_COMDAT_SELECT_LARGEST 6
+#define IMAGE_COMDAT_SELECT_NEWEST 7
+
+#define IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY 1
+#define IMAGE_WEAK_EXTERN_SEARCH_LIBRARY 2
+#define IMAGE_WEAK_EXTERN_SEARCH_ALIAS 3
+
+/* Export module directory */
+
+typedef struct _IMAGE_EXPORT_DIRECTORY {
+ DWORD Characteristics;
+ DWORD TimeDateStamp;
+ WORD MajorVersion;
+ WORD MinorVersion;
+ DWORD Name;
+ DWORD Base;
+ DWORD NumberOfFunctions;
+ DWORD NumberOfNames;
+ DWORD AddressOfFunctions;
+ DWORD AddressOfNames;
+ DWORD AddressOfNameOrdinals;
+} IMAGE_EXPORT_DIRECTORY,*PIMAGE_EXPORT_DIRECTORY;
+
+/* Import name entry */
+typedef struct _IMAGE_IMPORT_BY_NAME {
+ WORD Hint;
+ BYTE Name[1];
+} IMAGE_IMPORT_BY_NAME,*PIMAGE_IMPORT_BY_NAME;
+
+/* Import thunk */
+typedef struct _IMAGE_THUNK_DATA32 {
+ union {
+ DWORD ForwarderString;
+ DWORD Function;
+ DWORD Ordinal;
+ DWORD AddressOfData;
+ } u1;
+} IMAGE_THUNK_DATA32,*PIMAGE_THUNK_DATA32;
+
+typedef struct _IMAGE_THUNK_DATA64 {
+ union {
+ ULONGLONG ForwarderString;
+ ULONGLONG Function;
+ ULONGLONG Ordinal;
+ ULONGLONG AddressOfData;
+ } u1;
+} IMAGE_THUNK_DATA64,*PIMAGE_THUNK_DATA64;
+
+#ifdef CONFIG_X86_64
+typedef IMAGE_THUNK_DATA32 IMAGE_THUNK_DATA;
+typedef PIMAGE_THUNK_DATA32 PIMAGE_THUNK_DATA;
+#else
+typedef IMAGE_THUNK_DATA64 IMAGE_THUNK_DATA;
+typedef PIMAGE_THUNK_DATA64 PIMAGE_THUNK_DATA;
+#endif
+
+/* Import module directory */
+
+typedef struct packed _IMAGE_IMPORT_DESCRIPTOR {
+ union {
+ DWORD Characteristics; /* 0 for terminating null
+ * import descriptor */
+ DWORD OriginalFirstThunk; /* RVA to original unbound
+ * IAT */
+ } u;
+ DWORD TimeDateStamp; /* 0 if not bound,
+ * -1 if bound, and real date\time stamp
+ * in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT
+ * (new BIND)
+ * otherwise date/time stamp of DLL bound to
+ * (Old BIND)
+ */
+ DWORD ForwarderChain; /* -1 if no forwarders */
+ DWORD Name;
+ /* RVA to IAT (if bound this IAT has actual addresses) */
+ DWORD FirstThunk;
+} IMAGE_IMPORT_DESCRIPTOR,*PIMAGE_IMPORT_DESCRIPTOR;
+
+#define IMAGE_ORDINAL_FLAG32 0x80000000
+#define IMAGE_ORDINAL_FLAG64 0x8000000000000000UL
+#define IMAGE_SNAP_BY_ORDINAL32(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG32) != 0)
+#define IMAGE_SNAP_BY_ORDINAL64(Ordinal) ((Ordinal & IMAGE_ORDINAL_FLAG64) != 0)
+#define IMAGE_ORDINAL(Ordinal) (Ordinal & 0xffff)
+
+#ifdef CONFIG_X86_64
+#define IMAGE_ORDINAL_FLAG IMAGE_ORDINAL_FLAG64
+#define IMAGE_SNAP_BY_ORDINAL IMAGE_SNAP_BY_ORDINAL64
+#else
+#define IMAGE_ORDINAL_FLAG IMAGE_ORDINAL_FLAG32
+#define IMAGE_SNAP_BY_ORDINAL IMAGE_SNAP_BY_ORDINAL32
+#endif
+
+typedef struct _IMAGE_BOUND_IMPORT_DESCRIPTOR
+{
+ DWORD TimeDateStamp;
+ WORD OffsetModuleName;
+ WORD NumberOfModuleForwarderRefs;
+/* Array of zero or more IMAGE_BOUND_FORWARDER_REF follows */
+} IMAGE_BOUND_IMPORT_DESCRIPTOR, *PIMAGE_BOUND_IMPORT_DESCRIPTOR;
+
+typedef struct _IMAGE_BOUND_FORWARDER_REF
+{
+ DWORD TimeDateStamp;
+ WORD OffsetModuleName;
+ WORD Reserved;
+} IMAGE_BOUND_FORWARDER_REF, *PIMAGE_BOUND_FORWARDER_REF;
+
+typedef struct _IMAGE_BASE_RELOCATION
+{
+ DWORD VirtualAddress;
+ DWORD SizeOfBlock;
+ WORD TypeOffset[0];
+} IMAGE_BASE_RELOCATION,*PIMAGE_BASE_RELOCATION;
+
+typedef struct _IMAGE_RELOCATION
+{
+ union {
+ DWORD VirtualAddress;
+ DWORD RelocCount;
+ } DUMMYUNIONNAME;
+ DWORD SymbolTableIndex;
+ WORD Type;
+} IMAGE_RELOCATION, *PIMAGE_RELOCATION;
+
+#define IMAGE_SIZEOF_RELOCATION 10
+
+/* generic relocation types */
+#define IMAGE_REL_BASED_ABSOLUTE 0
+#define IMAGE_REL_BASED_HIGH 1
+#define IMAGE_REL_BASED_LOW 2
+#define IMAGE_REL_BASED_HIGHLOW 3
+#define IMAGE_REL_BASED_HIGHADJ 4
+#define IMAGE_REL_BASED_MIPS_JMPADDR 5
+#define IMAGE_REL_BASED_SECTION 6
+#define IMAGE_REL_BASED_REL 7
+#define IMAGE_REL_BASED_MIPS_JMPADDR16 9
+#define IMAGE_REL_BASED_IA64_IMM64 9 /* yes, 9 too */
+#define IMAGE_REL_BASED_DIR64 10
+#define IMAGE_REL_BASED_HIGH3ADJ 11
+
+/* I386 relocation types */
+#define IMAGE_REL_I386_ABSOLUTE 0
+#define IMAGE_REL_I386_DIR16 1
+#define IMAGE_REL_I386_REL16 2
+#define IMAGE_REL_I386_DIR32 6
+#define IMAGE_REL_I386_DIR32NB 7
+#define IMAGE_REL_I386_SEG12 9
+#define IMAGE_REL_I386_SECTION 10
+#define IMAGE_REL_I386_SECREL 11
+#define IMAGE_REL_I386_REL32 20
+
+/* MIPS relocation types */
+#define IMAGE_REL_MIPS_ABSOLUTE 0x0000
+#define IMAGE_REL_MIPS_REFHALF 0x0001
+#define IMAGE_REL_MIPS_REFWORD 0x0002
+#define IMAGE_REL_MIPS_JMPADDR 0x0003
+#define IMAGE_REL_MIPS_REFHI 0x0004
+#define IMAGE_REL_MIPS_REFLO 0x0005
+#define IMAGE_REL_MIPS_GPREL 0x0006
+#define IMAGE_REL_MIPS_LITERAL 0x0007
+#define IMAGE_REL_MIPS_SECTION 0x000A
+#define IMAGE_REL_MIPS_SECREL 0x000B
+#define IMAGE_REL_MIPS_SECRELLO 0x000C
+#define IMAGE_REL_MIPS_SECRELHI 0x000D
+#define IMAGE_REL_MIPS_JMPADDR16 0x0010
+#define IMAGE_REL_MIPS_REFWORDNB 0x0022
+#define IMAGE_REL_MIPS_PAIR 0x0025
+
+/* ALPHA relocation types */
+#define IMAGE_REL_ALPHA_ABSOLUTE 0x0000
+#define IMAGE_REL_ALPHA_REFLONG 0x0001
+#define IMAGE_REL_ALPHA_REFQUAD 0x0002
+#define IMAGE_REL_ALPHA_GPREL 0x0003
+#define IMAGE_REL_ALPHA_LITERAL 0x0004
+#define IMAGE_REL_ALPHA_LITUSE 0x0005
+#define IMAGE_REL_ALPHA_GPDISP 0x0006
+#define IMAGE_REL_ALPHA_BRADDR 0x0007
+#define IMAGE_REL_ALPHA_HINT 0x0008
+#define IMAGE_REL_ALPHA_INLINE_REFLONG 0x0009
+#define IMAGE_REL_ALPHA_REFHI 0x000A
+#define IMAGE_REL_ALPHA_REFLO 0x000B
+#define IMAGE_REL_ALPHA_PAIR 0x000C
+#define IMAGE_REL_ALPHA_MATCH 0x000D
+#define IMAGE_REL_ALPHA_SECTION 0x000E
+#define IMAGE_REL_ALPHA_SECREL 0x000F
+#define IMAGE_REL_ALPHA_REFLONGNB 0x0010
+#define IMAGE_REL_ALPHA_SECRELLO 0x0011
+#define IMAGE_REL_ALPHA_SECRELHI 0x0012
+#define IMAGE_REL_ALPHA_REFQ3 0x0013
+#define IMAGE_REL_ALPHA_REFQ2 0x0014
+#define IMAGE_REL_ALPHA_REFQ1 0x0015
+#define IMAGE_REL_ALPHA_GPRELLO 0x0016
+#define IMAGE_REL_ALPHA_GPRELHI 0x0017
+
+/* PowerPC relocation types */
+#define IMAGE_REL_PPC_ABSOLUTE 0x0000
+#define IMAGE_REL_PPC_ADDR64 0x0001
+#define IMAGE_REL_PPC_ADDR 0x0002
+#define IMAGE_REL_PPC_ADDR24 0x0003
+#define IMAGE_REL_PPC_ADDR16 0x0004
+#define IMAGE_REL_PPC_ADDR14 0x0005
+#define IMAGE_REL_PPC_REL24 0x0006
+#define IMAGE_REL_PPC_REL14 0x0007
+#define IMAGE_REL_PPC_TOCREL16 0x0008
+#define IMAGE_REL_PPC_TOCREL14 0x0009
+#define IMAGE_REL_PPC_ADDR32NB 0x000A
+#define IMAGE_REL_PPC_SECREL 0x000B
+#define IMAGE_REL_PPC_SECTION 0x000C
+#define IMAGE_REL_PPC_IFGLUE 0x000D
+#define IMAGE_REL_PPC_IMGLUE 0x000E
+#define IMAGE_REL_PPC_SECREL16 0x000F
+#define IMAGE_REL_PPC_REFHI 0x0010
+#define IMAGE_REL_PPC_REFLO 0x0011
+#define IMAGE_REL_PPC_PAIR 0x0012
+#define IMAGE_REL_PPC_SECRELLO 0x0013
+#define IMAGE_REL_PPC_SECRELHI 0x0014
+#define IMAGE_REL_PPC_GPREL 0x0015
+#define IMAGE_REL_PPC_TYPEMASK 0x00FF
+/* modifier bits */
+#define IMAGE_REL_PPC_NEG 0x0100
+#define IMAGE_REL_PPC_BRTAKEN 0x0200
+#define IMAGE_REL_PPC_BRNTAKEN 0x0400
+#define IMAGE_REL_PPC_TOCDEFN 0x0800
+
+/* SH3 ? relocation type */
+#define IMAGE_REL_SH3_ABSOLUTE 0x0000
+#define IMAGE_REL_SH3_DIRECT16 0x0001
+#define IMAGE_REL_SH3_DIRECT 0x0002
+#define IMAGE_REL_SH3_DIRECT8 0x0003
+#define IMAGE_REL_SH3_DIRECT8_WORD 0x0004
+#define IMAGE_REL_SH3_DIRECT8_LONG 0x0005
+#define IMAGE_REL_SH3_DIRECT4 0x0006
+#define IMAGE_REL_SH3_DIRECT4_WORD 0x0007
+#define IMAGE_REL_SH3_DIRECT4_LONG 0x0008
+#define IMAGE_REL_SH3_PCREL8_WORD 0x0009
+#define IMAGE_REL_SH3_PCREL8_LONG 0x000A
+#define IMAGE_REL_SH3_PCREL12_WORD 0x000B
+#define IMAGE_REL_SH3_STARTOF_SECTION 0x000C
+#define IMAGE_REL_SH3_SIZEOF_SECTION 0x000D
+#define IMAGE_REL_SH3_SECTION 0x000E
+#define IMAGE_REL_SH3_SECREL 0x000F
+#define IMAGE_REL_SH3_DIRECT32_NB 0x0010
+
+/* ARM (Archimedes?) relocation types */
+#define IMAGE_REL_ARM_ABSOLUTE 0x0000
+#define IMAGE_REL_ARM_ADDR 0x0001
+#define IMAGE_REL_ARM_ADDR32NB 0x0002
+#define IMAGE_REL_ARM_BRANCH24 0x0003
+#define IMAGE_REL_ARM_BRANCH11 0x0004
+#define IMAGE_REL_ARM_SECTION 0x000E
+#define IMAGE_REL_ARM_SECREL 0x000F
+
+/* IA64 relocation types */
+#define IMAGE_REL_IA64_ABSOLUTE 0x0000
+#define IMAGE_REL_IA64_IMM14 0x0001
+#define IMAGE_REL_IA64_IMM22 0x0002
+#define IMAGE_REL_IA64_IMM64 0x0003
+#define IMAGE_REL_IA64_DIR 0x0004
+#define IMAGE_REL_IA64_DIR64 0x0005
+#define IMAGE_REL_IA64_PCREL21B 0x0006
+#define IMAGE_REL_IA64_PCREL21M 0x0007
+#define IMAGE_REL_IA64_PCREL21F 0x0008
+#define IMAGE_REL_IA64_GPREL22 0x0009
+#define IMAGE_REL_IA64_LTOFF22 0x000A
+#define IMAGE_REL_IA64_SECTION 0x000B
+#define IMAGE_REL_IA64_SECREL22 0x000C
+#define IMAGE_REL_IA64_SECREL64I 0x000D
+#define IMAGE_REL_IA64_SECREL 0x000E
+#define IMAGE_REL_IA64_LTOFF64 0x000F
+#define IMAGE_REL_IA64_DIR32NB 0x0010
+#define IMAGE_REL_IA64_RESERVED_11 0x0011
+#define IMAGE_REL_IA64_RESERVED_12 0x0012
+#define IMAGE_REL_IA64_RESERVED_13 0x0013
+#define IMAGE_REL_IA64_RESERVED_14 0x0014
+#define IMAGE_REL_IA64_RESERVED_15 0x0015
+#define IMAGE_REL_IA64_RESERVED_16 0x0016
+#define IMAGE_REL_IA64_ADDEND 0x001F
+
+/* archive format */
+
+#define IMAGE_ARCHIVE_START_SIZE 8
+#define IMAGE_ARCHIVE_START "!<arch>\n"
+#define IMAGE_ARCHIVE_END "`\n"
+#define IMAGE_ARCHIVE_PAD "\n"
+#define IMAGE_ARCHIVE_LINKER_MEMBER "/ "
+#define IMAGE_ARCHIVE_LONGNAMES_MEMBER "// "
+
+typedef struct _IMAGE_ARCHIVE_MEMBER_HEADER
+{
+ BYTE Name[16];
+ BYTE Date[12];
+ BYTE UserID[6];
+ BYTE GroupID[6];
+ BYTE Mode[8];
+ BYTE Size[10];
+ BYTE EndHeader[2];
+} IMAGE_ARCHIVE_MEMBER_HEADER, *PIMAGE_ARCHIVE_MEMBER_HEADER;
+
+#define IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR 60
+
+/*
+ * Resource directory stuff
+ */
+typedef struct _IMAGE_RESOURCE_DIRECTORY {
+ DWORD Characteristics;
+ DWORD TimeDateStamp;
+ WORD MajorVersion;
+ WORD MinorVersion;
+ WORD NumberOfNamedEntries;
+ WORD NumberOfIdEntries;
+ /* IMAGE_RESOURCE_DIRECTORY_ENTRY DirectoryEntries[]; */
+} IMAGE_RESOURCE_DIRECTORY,*PIMAGE_RESOURCE_DIRECTORY;
+
+#define IMAGE_RESOURCE_NAME_IS_STRING 0x80000000
+#define IMAGE_RESOURCE_DATA_IS_DIRECTORY 0x80000000
+
+typedef struct _IMAGE_RESOURCE_DIRECTORY_ENTRY {
+ union {
+ struct {
+#ifdef BITFIELDS_BIGENDIAN
+ unsigned NameIsString:1;
+ unsigned NameOffset:31;
+#else
+ unsigned NameOffset:31;
+ unsigned NameIsString:1;
+#endif
+ } DUMMYSTRUCTNAME1;
+ DWORD Name;
+ struct {
+#ifdef WORDS_BIGENDIAN
+ WORD __pad;
+ WORD Id;
+#else
+ WORD Id;
+ WORD __pad;
+#endif
+ } DUMMYSTRUCTNAME2;
+ } DUMMYUNIONNAME1;
+ union {
+ DWORD OffsetToData;
+ struct {
+#ifdef BITFIELDS_BIGENDIAN
+ unsigned DataIsDirectory:1;
+ unsigned OffsetToDirectory:31;
+#else
+ unsigned OffsetToDirectory:31;
+ unsigned DataIsDirectory:1;
+#endif
+ } DUMMYSTRUCTNAME3;
+ } DUMMYUNIONNAME2;
+} IMAGE_RESOURCE_DIRECTORY_ENTRY,*PIMAGE_RESOURCE_DIRECTORY_ENTRY;
+
+
+typedef struct _IMAGE_RESOURCE_DIRECTORY_STRING {
+ WORD Length;
+ CHAR NameString[ 1 ];
+} IMAGE_RESOURCE_DIRECTORY_STRING,*PIMAGE_RESOURCE_DIRECTORY_STRING;
+
diff --git a/ubuntu/ndiswrapper/pnp.c b/ubuntu/ndiswrapper/pnp.c
new file mode 100644
index 00000000000..252e9c703e3
--- /dev/null
+++ b/ubuntu/ndiswrapper/pnp.c
@@ -0,0 +1,742 @@
+/*
+ * Copyright (C) 2005 Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "usb.h"
+#include "pnp.h"
+#include "wrapndis.h"
+#include "loader.h"
+
+/* Functions callable from the NDIS driver */
+wstdcall NTSTATUS pdoDispatchDeviceControl(struct device_object *pdo,
+ struct irp *irp);
+wstdcall NTSTATUS pdoDispatchPnp(struct device_object *pdo, struct irp *irp);
+wstdcall NTSTATUS pdoDispatchPower(struct device_object *pdo, struct irp *irp);
+
+static NTSTATUS start_pdo(struct device_object *pdo)
+{
+ int i, ret, count, resources_size;
+ struct wrap_device *wd;
+ struct pci_dev *pdev;
+ struct cm_partial_resource_descriptor *entry;
+ struct cm_partial_resource_list *partial_resource_list;
+
+ ENTER1("%p, %p", pdo, pdo->reserved);
+ wd = pdo->reserved;
+ if (ntoskernel_init_device(wd))
+ EXIT1(return STATUS_FAILURE);
+ if (wrap_is_usb_bus(wd->dev_bus)) {
+#ifdef ENABLE_USB
+ if (usb_init_device(wd)) {
+ ntoskernel_exit_device(wd);
+ EXIT1(return STATUS_FAILURE);
+ }
+#endif
+ EXIT1(return STATUS_SUCCESS);
+ }
+ if (!wrap_is_pci_bus(wd->dev_bus))
+ EXIT1(return STATUS_SUCCESS);
+ pdev = wd->pci.pdev;
+ ret = pci_enable_device(pdev);
+ if (ret) {
+ ERROR("couldn't enable PCI device: %x", ret);
+ return STATUS_FAILURE;
+ }
+ ret = pci_request_regions(pdev, DRIVER_NAME);
+ if (ret) {
+ ERROR("couldn't request PCI regions: %x", ret);
+ goto err_enable;
+ }
+ pci_set_power_state(pdev, PCI_D0);
+#ifdef CONFIG_X86_64
+ /* 64-bit broadcom driver doesn't work if DMA is allocated
+ * from over 1GB */
+ if (wd->vendor == 0x14e4) {
+ if (pci_set_dma_mask(pdev, DMA_BIT_MASK(30)) ||
+ pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(30)))
+ WARNING("couldn't set DMA mask; this driver "
+ "may not work with more than 1GB RAM");
+ }
+#endif
+ /* IRQ resource entry is filled in from pdev, instead of
+ * pci_resource macros */
+ for (i = count = 0; pci_resource_start(pdev, i); i++)
+ if ((pci_resource_flags(pdev, i) & IORESOURCE_MEM) ||
+ (pci_resource_flags(pdev, i) & IORESOURCE_IO))
+ count++;
+ /* space for entry for IRQ is already in
+ * cm_partial_resource_list */
+ resources_size = sizeof(struct cm_resource_list) +
+ sizeof(struct cm_partial_resource_descriptor) * count;
+ TRACE2("resources: %d, %d", count, resources_size);
+ wd->resource_list = kzalloc(resources_size, GFP_KERNEL);
+ if (!wd->resource_list) {
+ WARNING("couldn't allocate memory");
+ goto err_regions;
+ }
+ wd->resource_list->count = 1;
+ wd->resource_list->list[0].interface_type = PCIBus;
+ /* bus_number is not used by WDM drivers */
+ wd->resource_list->list[0].bus_number = pdev->bus->number;
+
+ partial_resource_list =
+ &wd->resource_list->list->partial_resource_list;
+ partial_resource_list->version = 1;
+ partial_resource_list->revision = 1;
+ partial_resource_list->count = count + 1;
+
+ for (i = count = 0; pci_resource_start(pdev, i); i++) {
+ entry = &partial_resource_list->partial_descriptors[count];
+ TRACE2("%d", count);
+ if (pci_resource_flags(pdev, i) & IORESOURCE_MEM) {
+ entry->type = CmResourceTypeMemory;
+ entry->flags = CM_RESOURCE_MEMORY_READ_WRITE;
+ entry->share = CmResourceShareDeviceExclusive;
+ } else if (pci_resource_flags(pdev, i) & IORESOURCE_IO) {
+ entry->type = CmResourceTypePort;
+ entry->flags = CM_RESOURCE_PORT_IO;
+ entry->share = CmResourceShareDeviceExclusive;
+#if 0
+ } else if (pci_resource_flags(pdev, i) & IORESOURCE_DMA) {
+ /* it looks like no driver uses this resource */
+ typeof(pci_resource_flags(pdev, 0)) flags;
+ entry->type = CmResourceTypeDma;
+ flags = pci_resource_flags(pdev, i);
+ if (flags & IORESOURCE_DMA_TYPEA)
+ entry->flags |= CM_RESOURCE_DMA_TYPE_A;
+ else if (flags & IORESOURCE_DMA_TYPEB)
+ entry->flags |= CM_RESOURCE_DMA_TYPE_B;
+ else if (flags & IORESOURCE_DMA_TYPEF)
+ entry->flags |= CM_RESOURCE_DMA_TYPE_F;
+ if (flags & IORESOURCE_DMA_8BIT)
+ entry->flags |= CM_RESOURCE_DMA_8;
+ else if (flags & IORESOURCE_DMA_16BIT)
+ entry->flags |= CM_RESOURCE_DMA_16;
+ /* what about 32bit DMA? */
+ else if (flags & IORESOURCE_DMA_8AND16BIT)
+ entry->flags |= CM_RESOURCE_DMA_8_AND_16;
+ if (flags & IORESOURCE_DMA_MASTER)
+ entry->flags |= CM_RESOURCE_DMA_BUS_MASTER;
+ entry->u.dma.channel = pci_resource_start(pdev, i);
+ /* what should this be? */
+ entry->u.dma.port = 1;
+#endif
+ } else
+ continue;
+ /* TODO: Add other resource types? */
+ entry->u.generic.start =
+ (ULONG_PTR)pci_resource_start(pdev, i);
+ entry->u.generic.length = pci_resource_len(pdev, i);
+ count++;
+ }
+
+ /* put IRQ resource at the end */
+ entry = &partial_resource_list->partial_descriptors[count++];
+ entry->type = CmResourceTypeInterrupt;
+ entry->flags = CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE;
+ /* we assume all devices use shared IRQ */
+ entry->share = CmResourceShareShared;
+ /* as per documentation, interrupt level should be DIRQL, but
+ * examples from DDK as well some drivers, such as AR5211,
+ * RT8180L use interrupt level as interrupt vector also in
+ * NdisMRegisterInterrupt */
+ entry->u.interrupt.level = pdev->irq;
+ entry->u.interrupt.vector = pdev->irq;
+ entry->u.interrupt.affinity = -1;
+
+ TRACE2("resource list count %d, irq: %d",
+ partial_resource_list->count, pdev->irq);
+ pci_set_drvdata(pdev, wd);
+ EXIT1(return STATUS_SUCCESS);
+err_regions:
+ pci_release_regions(pdev);
+err_enable:
+ pci_disable_device(pdev);
+ wd->pci.pdev = NULL;
+ wd->pdo = NULL;
+ EXIT1(return STATUS_FAILURE);
+}
+
+static void remove_pdo(struct device_object *pdo)
+{
+ struct wrap_device *wd = pdo->reserved;
+
+ ntoskernel_exit_device(wd);
+ if (wrap_is_pci_bus(wd->dev_bus)) {
+ struct pci_dev *pdev = wd->pci.pdev;
+ pci_release_regions(pdev);
+ pci_disable_device(pdev);
+ wd->pci.pdev = NULL;
+ pci_set_drvdata(pdev, NULL);
+ } else if (wrap_is_usb_bus(wd->dev_bus)) {
+#ifdef ENABLE_USB
+ usb_exit_device(wd);
+#endif
+ }
+ if (wd->resource_list)
+ kfree(wd->resource_list);
+ wd->resource_list = NULL;
+ return;
+}
+
+static NTSTATUS IoSendIrpTopDev(struct device_object *dev_obj, ULONG major_fn,
+ ULONG minor_fn, struct io_stack_location *sl)
+{
+ NTSTATUS status;
+ struct nt_event event;
+ struct irp *irp;
+ struct io_stack_location *irp_sl;
+ struct device_object *top_dev = IoGetAttachedDeviceReference(dev_obj);
+
+ KeInitializeEvent(&event, NotificationEvent, FALSE);
+ irp = IoBuildSynchronousFsdRequest(IRP_MJ_PNP, top_dev, NULL, 0, NULL,
+ &event, NULL);
+ irp->io_status.status = STATUS_NOT_IMPLEMENTED;
+ irp->io_status.info = 0;
+ irp_sl = IoGetNextIrpStackLocation(irp);
+ if (sl)
+ memcpy(irp_sl, sl, sizeof(*irp_sl));
+ irp_sl->major_fn = major_fn;
+ irp_sl->minor_fn = minor_fn;
+ status = IoCallDriver(top_dev, irp);
+ if (status == STATUS_PENDING) {
+ KeWaitForSingleObject(&event, Executive, KernelMode,
+ FALSE, NULL);
+ status = irp->io_status.status;
+ }
+ ObDereferenceObject(top_dev);
+ return status;
+}
+
+wstdcall NTSTATUS pdoDispatchDeviceControl(struct device_object *pdo,
+ struct irp *irp)
+{
+ struct io_stack_location *irp_sl;
+ NTSTATUS status;
+
+ DUMP_IRP(irp);
+ irp_sl = IoGetCurrentIrpStackLocation(irp);
+#ifdef ENABLE_USB
+ status = wrap_submit_irp(pdo, irp);
+ IOTRACE("status: %08X", status);
+ if (status != STATUS_PENDING)
+ IoCompleteRequest(irp, IO_NO_INCREMENT);
+#else
+ status = irp->io_status.status = STATUS_NOT_IMPLEMENTED;
+ IoCompleteRequest(irp, IO_NO_INCREMENT);
+#endif
+ IOEXIT(return status);
+}
+WIN_FUNC_DECL(pdoDispatchDeviceControl,2)
+
+wstdcall NTSTATUS pdoDispatchPnp(struct device_object *pdo, struct irp *irp)
+{
+ struct io_stack_location *irp_sl;
+ struct wrap_device *wd;
+ NTSTATUS status;
+#ifdef ENABLE_USB
+ struct usbd_bus_interface_usbdi *usb_intf;
+#endif
+
+ irp_sl = IoGetCurrentIrpStackLocation(irp);
+ TRACE2("%p %d:%d", pdo, irp_sl->major_fn, irp_sl->minor_fn);
+ wd = pdo->reserved;
+ switch (irp_sl->minor_fn) {
+ case IRP_MN_START_DEVICE:
+ status = start_pdo(pdo);
+ break;
+ case IRP_MN_QUERY_STOP_DEVICE:
+ case IRP_MN_STOP_DEVICE:
+ case IRP_MN_QUERY_REMOVE_DEVICE:
+ status = STATUS_SUCCESS;
+ break;
+ case IRP_MN_REMOVE_DEVICE:
+ remove_pdo(pdo);
+ status = STATUS_SUCCESS;
+ break;
+ case IRP_MN_QUERY_INTERFACE:
+#ifdef ENABLE_USB
+ if (!wrap_is_usb_bus(wd->dev_bus)) {
+ status = STATUS_NOT_IMPLEMENTED;
+ break;
+ }
+ TRACE2("type: %x, size: %d, version: %d",
+ irp_sl->params.query_intf.type->data1,
+ irp_sl->params.query_intf.size,
+ irp_sl->params.query_intf.version);
+ usb_intf = (struct usbd_bus_interface_usbdi *)
+ irp_sl->params.query_intf.intf;
+ usb_intf->Context = wd;
+ usb_intf->InterfaceReference = USBD_InterfaceReference;
+ usb_intf->InterfaceDereference = USBD_InterfaceDereference;
+ usb_intf->GetUSBDIVersion = USBD_InterfaceGetUSBDIVersion;
+ usb_intf->QueryBusTime = USBD_InterfaceQueryBusTime;
+ usb_intf->SubmitIsoOutUrb = USBD_InterfaceSubmitIsoOutUrb;
+ usb_intf->QueryBusInformation =
+ USBD_InterfaceQueryBusInformation;
+ if (irp_sl->params.query_intf.version >=
+ USB_BUSIF_USBDI_VERSION_1)
+ usb_intf->IsDeviceHighSpeed =
+ USBD_InterfaceIsDeviceHighSpeed;
+ if (irp_sl->params.query_intf.version >=
+ USB_BUSIF_USBDI_VERSION_2)
+ usb_intf->LogEntry = USBD_InterfaceLogEntry;
+ status = STATUS_SUCCESS;
+#else
+ status = STATUS_NOT_IMPLEMENTED;
+#endif
+ break;
+ default:
+ TRACE2("fn %d not implemented", irp_sl->minor_fn);
+ status = STATUS_SUCCESS;
+ break;
+ }
+ irp->io_status.status = status;
+ TRACE2("status: %08X", status);
+ IoCompleteRequest(irp, IO_NO_INCREMENT);
+ IOEXIT(return status);
+}
+WIN_FUNC_DECL(pdoDispatchPnp,2)
+
+wstdcall NTSTATUS pdoDispatchPower(struct device_object *pdo, struct irp *irp)
+{
+ struct io_stack_location *irp_sl;
+ struct wrap_device *wd;
+ union power_state power_state;
+ struct pci_dev *pdev;
+ NTSTATUS status;
+
+ irp_sl = IoGetCurrentIrpStackLocation(irp);
+ wd = pdo->reserved;
+ TRACE2("pdo: %p, fn: %d:%d, wd: %p",
+ pdo, irp_sl->major_fn, irp_sl->minor_fn, wd);
+ switch (irp_sl->minor_fn) {
+ case IRP_MN_WAIT_WAKE:
+ /* TODO: this is not complete/correct */
+ TRACE2("state: %d, completion: %p",
+ irp_sl->params.power.state.system_state,
+ irp_sl->completion_routine);
+ IoMarkIrpPending(irp);
+ status = STATUS_PENDING;
+ break;
+ case IRP_MN_SET_POWER:
+ power_state = irp_sl->params.power.state;
+ if (power_state.device_state == PowerDeviceD0) {
+ TRACE2("resuming %p", wd);
+ if (wrap_is_pci_bus(wd->dev_bus)) {
+ pdev = wd->pci.pdev;
+ pci_restore_state(pdev);
+ if (wd->pci.wake_state == PowerDeviceD3) {
+ pci_enable_wake(wd->pci.pdev,
+ PCI_D3hot, 0);
+ pci_enable_wake(wd->pci.pdev,
+ PCI_D3cold, 0);
+ }
+ pci_set_power_state(pdev, PCI_D0);
+ } else { // usb device
+#ifdef ENABLE_USB
+ wrap_resume_urbs(wd);
+#endif
+ }
+ } else {
+ TRACE2("suspending device %p", wd);
+ if (wrap_is_pci_bus(wd->dev_bus)) {
+ pdev = wd->pci.pdev;
+ pci_save_state(pdev);
+ TRACE2("%d", wd->pci.wake_state);
+ if (wd->pci.wake_state == PowerDeviceD3) {
+ pci_enable_wake(wd->pci.pdev,
+ PCI_D3hot, 1);
+ pci_enable_wake(wd->pci.pdev,
+ PCI_D3cold, 1);
+ }
+ pci_set_power_state(pdev, PCI_D3hot);
+ } else { // usb device
+#ifdef ENABLE_USB
+ wrap_suspend_urbs(wd);
+#endif
+ }
+ }
+ status = STATUS_SUCCESS;
+ break;
+ case IRP_MN_QUERY_POWER:
+ status = STATUS_SUCCESS;
+ break;
+ default:
+ TRACE2("fn %d not implemented", irp_sl->minor_fn);
+ status = STATUS_SUCCESS;
+ break;
+ }
+ irp->io_status.status = status;
+ IoCompleteRequest(irp, IO_NO_INCREMENT);
+ return status;
+}
+WIN_FUNC_DECL(pdoDispatchPower,2)
+
+static NTSTATUS pnp_set_device_power_state(struct wrap_device *wd,
+ enum device_power_state state)
+{
+ NTSTATUS status;
+ struct device_object *pdo;
+ struct io_stack_location irp_sl;
+
+ pdo = wd->pdo;
+ IOTRACE("%p, %p", pdo, IoGetAttachedDevice(pdo));
+ memset(&irp_sl, 0, sizeof(irp_sl));
+ irp_sl.params.power.state.device_state = state;
+ irp_sl.params.power.type = DevicePowerState;
+ if (state > PowerDeviceD0) {
+ status = IoSendIrpTopDev(pdo, IRP_MJ_POWER, IRP_MN_QUERY_POWER,
+ &irp_sl);
+ if (status != STATUS_SUCCESS) {
+ TRACE1("query of power to %d returns %08X",
+ state, status);
+ EXIT1(return status);
+ }
+ }
+ status = IoSendIrpTopDev(pdo, IRP_MJ_POWER, IRP_MN_SET_POWER, &irp_sl);
+ if (status != STATUS_SUCCESS)
+ WARNING("setting power to %d failed: %08X", state, status);
+ EXIT1(return status);
+}
+
+NTSTATUS pnp_start_device(struct wrap_device *wd)
+{
+ struct device_object *fdo;
+ struct device_object *pdo;
+ struct io_stack_location irp_sl;
+ NTSTATUS status;
+
+ pdo = wd->pdo;
+ /* TODO: for now we use same resources for both translated
+ * resources and raw resources */
+ memset(&irp_sl, 0, sizeof(irp_sl));
+ irp_sl.params.start_device.allocated_resources =
+ wd->resource_list;
+ irp_sl.params.start_device.allocated_resources_translated =
+ wd->resource_list;
+ status = IoSendIrpTopDev(pdo, IRP_MJ_PNP, IRP_MN_START_DEVICE, &irp_sl);
+ fdo = IoGetAttachedDevice(pdo);
+ if (status == STATUS_SUCCESS)
+ fdo->drv_obj->drv_ext->count++;
+ else
+ WARNING("Windows driver couldn't initialize the device (%08X)",
+ status);
+ EXIT1(return status);
+}
+
+NTSTATUS pnp_stop_device(struct wrap_device *wd)
+{
+ struct device_object *pdo;
+ NTSTATUS status;
+
+ pdo = wd->pdo;
+ status = IoSendIrpTopDev(pdo, IRP_MJ_PNP, IRP_MN_QUERY_STOP_DEVICE,
+ NULL);
+ if (status != STATUS_SUCCESS)
+ WARNING("status: %08X", status);
+ /* for now we ignore query status */
+ status = IoSendIrpTopDev(pdo, IRP_MJ_PNP, IRP_MN_STOP_DEVICE, NULL);
+ if (status != STATUS_SUCCESS)
+ WARNING("status: %08X", status);
+ if (status != STATUS_SUCCESS)
+ WARNING("status: %08X", status);
+ EXIT2(return status);
+}
+
+NTSTATUS pnp_remove_device(struct wrap_device *wd)
+{
+ struct device_object *pdo, *fdo;
+ struct driver_object *fdo_drv_obj;
+ NTSTATUS status;
+
+ pdo = wd->pdo;
+ fdo = IoGetAttachedDevice(pdo);
+ fdo_drv_obj = fdo->drv_obj;
+ TRACE2("%p, %p, %p", pdo, fdo, fdo_drv_obj);
+ status = IoSendIrpTopDev(pdo, IRP_MJ_PNP, IRP_MN_QUERY_REMOVE_DEVICE,
+ NULL);
+ if (status != STATUS_SUCCESS)
+ WARNING("status: %08X", status);
+
+ status = IoSendIrpTopDev(pdo, IRP_MJ_PNP, IRP_MN_REMOVE_DEVICE, NULL);
+ if (status != STATUS_SUCCESS)
+ WARNING("status: %08X", status);
+ /* TODO: should we use count in drv_ext or driver's Object
+ * header reference count to keep count of devices associated
+ * with a driver? */
+ if (status == STATUS_SUCCESS)
+ fdo_drv_obj->drv_ext->count--;
+ TRACE1("count: %d", fdo_drv_obj->drv_ext->count);
+ if (fdo_drv_obj->drv_ext->count < 0)
+ WARNING("wrong count: %d", fdo_drv_obj->drv_ext->count);
+ if (fdo_drv_obj->drv_ext->count == 0) {
+ struct wrap_driver *wrap_driver;
+ TRACE1("unloading driver: %p", fdo_drv_obj);
+ wrap_driver =
+ IoGetDriverObjectExtension(fdo_drv_obj,
+ (void *)WRAP_DRIVER_CLIENT_ID);
+ if (fdo_drv_obj->unload)
+ LIN2WIN1(fdo_drv_obj->unload, fdo_drv_obj);
+ if (wrap_driver) {
+ if (down_interruptible(&loader_mutex))
+ WARNING("couldn't obtain loader_mutex");
+ unload_wrap_driver(wrap_driver);
+ up(&loader_mutex);
+ } else
+ ERROR("couldn't get wrap_driver");
+ ObDereferenceObject(fdo_drv_obj);
+ }
+ IoDeleteDevice(pdo);
+ unload_wrap_device(wd);
+ EXIT1(return status);
+}
+
+WIN_FUNC_DECL(IoInvalidDeviceRequest,2)
+
+static struct device_object *alloc_pdo(struct driver_object *drv_obj)
+{
+ struct device_object *pdo;
+ NTSTATUS status ;
+ int i;
+ struct ansi_string ansi_name;
+ struct unicode_string unicode_name;
+
+ RtlInitAnsiString(&ansi_name, "NDISpdo");
+ if (RtlAnsiStringToUnicodeString(&unicode_name, &ansi_name, TRUE) ==
+ STATUS_SUCCESS) {
+ status = IoCreateDevice(drv_obj, 0, &unicode_name,
+ FILE_DEVICE_UNKNOWN,
+ FILE_AUTOGENERATED_DEVICE_NAME,
+ FALSE, &pdo);
+ RtlFreeUnicodeString(&unicode_name);
+ } else {
+ status = IoCreateDevice(drv_obj, 0, NULL,
+ FILE_DEVICE_UNKNOWN,
+ FILE_AUTOGENERATED_DEVICE_NAME,
+ FALSE, &pdo);
+ }
+ TRACE1("%p, %d, %p", drv_obj, status, pdo);
+ if (status != STATUS_SUCCESS)
+ return NULL;
+ /* dispatch routines are called as Windows functions */
+ for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++)
+ drv_obj->major_func[i] = WIN_FUNC_PTR(IoInvalidDeviceRequest,2);
+ drv_obj->major_func[IRP_MJ_INTERNAL_DEVICE_CONTROL] =
+ WIN_FUNC_PTR(pdoDispatchDeviceControl,2);
+ drv_obj->major_func[IRP_MJ_DEVICE_CONTROL] =
+ WIN_FUNC_PTR(pdoDispatchDeviceControl,2);
+ drv_obj->major_func[IRP_MJ_POWER] = WIN_FUNC_PTR(pdoDispatchPower,2);
+ drv_obj->major_func[IRP_MJ_PNP] = WIN_FUNC_PTR(pdoDispatchPnp,2);
+ return pdo;
+}
+
+static int wrap_pnp_start_device(struct wrap_device *wd)
+{
+ struct wrap_driver *driver;
+ struct device_object *pdo;
+ struct driver_object *pdo_drv_obj;
+
+ ENTER1("wd: %p", wd);
+
+ if (!((wrap_is_pci_bus(wd->dev_bus)) ||
+ (wrap_is_usb_bus(wd->dev_bus)))) {
+ ERROR("bus type %d (%d) not supported",
+ WRAP_BUS(wd->dev_bus), wd->dev_bus);
+ EXIT1(return -EINVAL);
+ }
+ driver = load_wrap_driver(wd);
+ if (!driver)
+ return -ENODEV;
+
+ wd->driver = driver;
+ wd->dev_bus = WRAP_DEVICE_BUS(driver->dev_type, WRAP_BUS(wd->dev_bus));
+ TRACE1("dev type: %d, bus type: %d, %d", WRAP_DEVICE(wd->dev_bus),
+ WRAP_BUS(wd->dev_bus), wd->dev_bus);
+ TRACE1("%d, %d", driver->dev_type, wrap_is_usb_bus(wd->dev_bus));
+ /* first create pdo */
+ if (wrap_is_pci_bus(wd->dev_bus))
+ pdo_drv_obj = find_bus_driver("PCI");
+ else // if (wrap_is_usb_bus(wd->dev_bus))
+ pdo_drv_obj = find_bus_driver("USB");
+ if (!pdo_drv_obj)
+ return -EINVAL;
+ pdo = alloc_pdo(pdo_drv_obj);
+ if (!pdo)
+ return -ENOMEM;
+ wd->pdo = pdo;
+ pdo->reserved = wd;
+ if (WRAP_DEVICE(wd->dev_bus) == WRAP_NDIS_DEVICE) {
+ if (init_ndis_driver(driver->drv_obj)) {
+ IoDeleteDevice(pdo);
+ return -EINVAL;
+ }
+ }
+ TRACE1("%p", driver->drv_obj->drv_ext->add_device);
+ if (driver->drv_obj->drv_ext->add_device(driver->drv_obj, pdo) !=
+ STATUS_SUCCESS) {
+ IoDeleteDevice(pdo);
+ return -ENOMEM;
+ }
+ if (pnp_start_device(wd) != STATUS_SUCCESS) {
+ /* TODO: we need proper cleanup, to deallocate memory,
+ * for example */
+ pnp_remove_device(wd);
+ return -EINVAL;
+ }
+ return 0;
+}
+
+/*
+ * This function should not be marked __devinit because PCI IDs are
+ * added dynamically.
+ */
+int wrap_pnp_start_pci_device(struct pci_dev *pdev,
+ const struct pci_device_id *ent)
+{
+ struct load_device load_device;
+ struct wrap_device *wd;
+
+ ENTER1("called for %04x:%04x:%04x:%04x", pdev->vendor, pdev->device,
+ pdev->subsystem_vendor, pdev->subsystem_device);
+
+ load_device.bus = WRAP_PCI_BUS;
+ load_device.vendor = pdev->vendor;
+ load_device.device = pdev->device;
+ load_device.subvendor = pdev->subsystem_vendor;
+ load_device.subdevice = pdev->subsystem_device;
+ wd = load_wrap_device(&load_device);
+ if (!wd)
+ EXIT1(return -ENODEV);
+ wd->pci.pdev = pdev;
+ return wrap_pnp_start_device(wd);
+}
+
+void wrap_pnp_remove_pci_device(struct pci_dev *pdev)
+{
+ struct wrap_device *wd;
+
+ wd = (struct wrap_device *)pci_get_drvdata(pdev);
+ ENTER1("%p, %p", pdev, wd);
+ if (!wd)
+ EXIT1(return);
+ pnp_remove_device(wd);
+}
+
+int wrap_pnp_suspend_pci_device(struct pci_dev *pdev, pm_message_t state)
+{
+ struct wrap_device *wd;
+
+ wd = (struct wrap_device *)pci_get_drvdata(pdev);
+ return pnp_set_device_power_state(wd, PowerDeviceD3);
+}
+
+int wrap_pnp_resume_pci_device(struct pci_dev *pdev)
+{
+ struct wrap_device *wd;
+
+ wd = (struct wrap_device *)pci_get_drvdata(pdev);
+ return pnp_set_device_power_state(wd, PowerDeviceD0);
+}
+
+#ifdef ENABLE_USB
+int wrap_pnp_start_usb_device(struct usb_interface *intf,
+ const struct usb_device_id *usb_id)
+{
+ struct wrap_device *wd;
+ int ret;
+ struct usb_device *udev = interface_to_usbdev(intf);
+ ENTER1("%04x, %04x, %04x", udev->descriptor.idVendor,
+ udev->descriptor.idProduct, udev->descriptor.bDeviceClass);
+
+ /* USB device (e.g., RNDIS) may have multiple interfaces;
+ initialize one interface only (is there a way to know which
+ of these interfaces is for network?) */
+
+ if ((wd = get_wrap_device(udev, WRAP_USB_BUS))) {
+ TRACE1("device already initialized: %p", wd);
+ usb_set_intfdata(intf, NULL);
+ ret = 0;
+ } else {
+ struct load_device load_device;
+
+ load_device.bus = WRAP_USB_BUS;
+ load_device.vendor = le16_to_cpu(udev->descriptor.idVendor);
+ load_device.device = le16_to_cpu(udev->descriptor.idProduct);
+ load_device.subvendor = 0;
+ load_device.subdevice = 0;
+ wd = load_wrap_device(&load_device);
+ TRACE2("%p", wd);
+ if (wd) {
+ /* some devices (e.g., TI 4150, RNDIS) need
+ * full reset */
+ ret = usb_reset_device(udev);
+ if (ret)
+ WARNING("reset failed: %d", ret);
+ usb_set_intfdata(intf, wd);
+ wd->usb.intf = intf;
+ wd->usb.udev = udev;
+ ret = wrap_pnp_start_device(wd);
+ } else
+ ret = -ENODEV;
+ }
+
+ TRACE2("ret: %d", ret);
+ if (ret)
+ EXIT1(return ret);
+ else
+ return 0;
+}
+
+void __devexit wrap_pnp_remove_usb_device(struct usb_interface *intf)
+{
+ struct wrap_device *wd;
+
+ wd = (struct wrap_device *)usb_get_intfdata(intf);
+ TRACE1("%p, %p", intf, wd);
+ if (wd == NULL)
+ EXIT1(return);
+ usb_set_intfdata(intf, NULL);
+ wd->usb.intf = NULL;
+ pnp_remove_device(wd);
+}
+
+int wrap_pnp_suspend_usb_device(struct usb_interface *intf, pm_message_t state)
+{
+ struct wrap_device *wd;
+ struct device_object *pdo;
+
+ wd = usb_get_intfdata(intf);
+ ENTER1("%p, %p", intf, wd);
+ if (!wd)
+ EXIT1(return 0);
+ pdo = wd->pdo;
+ if (pnp_set_device_power_state(wd, PowerDeviceD3))
+ return -1;
+ return 0;
+}
+
+int wrap_pnp_resume_usb_device(struct usb_interface *intf)
+{
+ struct wrap_device *wd;
+ wd = usb_get_intfdata(intf);
+ ENTER1("%p, %p", intf, wd);
+ if (!wd)
+ EXIT1(return 0);
+ if (pnp_set_device_power_state(wd, PowerDeviceD0))
+ return -1;
+ return 0;
+}
+
+#endif // USB
diff --git a/ubuntu/ndiswrapper/pnp.h b/ubuntu/ndiswrapper/pnp.h
new file mode 100644
index 00000000000..58037706b9c
--- /dev/null
+++ b/ubuntu/ndiswrapper/pnp.h
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2005 Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef _PNP_H_
+#define _PNP_H_
+
+#include "ntoskernel.h"
+#include "ndis.h"
+#include "wrapndis.h"
+
+NTSTATUS pnp_start_device(struct wrap_device *wd);
+NTSTATUS pnp_stop_device(struct wrap_device *wd);
+NTSTATUS pnp_remove_device(struct wrap_device *wd);
+
+int wrap_pnp_start_pci_device(struct pci_dev *pdev,
+ const struct pci_device_id *ent);
+void __devexit wrap_pnp_remove_pci_device(struct pci_dev *pdev);
+int wrap_pnp_suspend_pci_device(struct pci_dev *pdev, pm_message_t state);
+int wrap_pnp_resume_pci_device(struct pci_dev *pdev);
+
+#ifdef ENABLE_USB
+int wrap_pnp_start_usb_device(struct usb_interface *intf,
+ const struct usb_device_id *usb_id);
+void wrap_pnp_remove_usb_device(struct usb_interface *intf);
+int wrap_pnp_suspend_usb_device(struct usb_interface *intf,
+ pm_message_t state);
+int wrap_pnp_resume_usb_device(struct usb_interface *intf);
+#endif
+
+#endif
diff --git a/ubuntu/ndiswrapper/proc.c b/ubuntu/ndiswrapper/proc.c
new file mode 100644
index 00000000000..bbcefca13a3
--- /dev/null
+++ b/ubuntu/ndiswrapper/proc.c
@@ -0,0 +1,565 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+#include <linux/proc_fs.h>
+#include <linux/module.h>
+#include <asm/uaccess.h>
+
+#include "ndis.h"
+#include "iw_ndis.h"
+#include "wrapndis.h"
+#include "pnp.h"
+#include "wrapper.h"
+
+#define MAX_PROC_STR_LEN 32
+
+static struct proc_dir_entry *wrap_procfs_entry;
+
+static int procfs_read_ndis_stats(char *page, char **start, off_t off,
+ int count, int *eof, void *data)
+{
+ char *p = page;
+ struct ndis_device *wnd = (struct ndis_device *)data;
+ struct ndis_wireless_stats stats;
+ NDIS_STATUS res;
+ ndis_rssi rssi;
+
+ if (off != 0) {
+ *eof = 1;
+ return 0;
+ }
+
+ res = mp_query(wnd, OID_802_11_RSSI, &rssi, sizeof(rssi));
+ if (!res)
+ p += sprintf(p, "signal_level=%d dBm\n", (s32)rssi);
+
+ res = mp_query(wnd, OID_802_11_STATISTICS, &stats, sizeof(stats));
+ if (!res) {
+
+ p += sprintf(p, "tx_frames=%Lu\n", stats.tx_frag);
+ p += sprintf(p, "tx_multicast_frames=%Lu\n",
+ stats.tx_multi_frag);
+ p += sprintf(p, "tx_failed=%Lu\n", stats.failed);
+ p += sprintf(p, "tx_retry=%Lu\n", stats.retry);
+ p += sprintf(p, "tx_multi_rerty=%Lu\n", stats.multi_retry);
+ p += sprintf(p, "tx_rtss_success=%Lu\n", stats.rtss_succ);
+ p += sprintf(p, "tx_rtss_fail=%Lu\n", stats.rtss_fail);
+ p += sprintf(p, "ack_fail=%Lu\n", stats.ack_fail);
+ p += sprintf(p, "frame_duplicates=%Lu\n", stats.frame_dup);
+ p += sprintf(p, "rx_frames=%Lu\n", stats.rx_frag);
+ p += sprintf(p, "rx_multicast_frames=%Lu\n",
+ stats.rx_multi_frag);
+ p += sprintf(p, "fcs_errors=%Lu\n", stats.fcs_err);
+ }
+
+ if (p - page > count) {
+ ERROR("wrote %lu bytes (limit is %u)\n",
+ (unsigned long)(p - page), count);
+ *eof = 1;
+ }
+
+ return p - page;
+}
+
+static int procfs_read_ndis_encr(char *page, char **start, off_t off,
+ int count, int *eof, void *data)
+{
+ char *p = page;
+ struct ndis_device *wnd = (struct ndis_device *)data;
+ int i, encr_status, auth_mode, infra_mode;
+ NDIS_STATUS res;
+ struct ndis_essid essid;
+ mac_address ap_address;
+
+ if (off != 0) {
+ *eof = 1;
+ return 0;
+ }
+
+ res = mp_query(wnd, OID_802_11_BSSID,
+ &ap_address, sizeof(ap_address));
+ if (res)
+ memset(ap_address, 0, ETH_ALEN);
+ p += sprintf(p, "ap_address=%2.2X", ap_address[0]);
+ for (i = 1 ; i < ETH_ALEN ; i++)
+ p += sprintf(p, ":%2.2X", ap_address[i]);
+ p += sprintf(p, "\n");
+
+ res = mp_query(wnd, OID_802_11_SSID, &essid, sizeof(essid));
+ if (!res)
+ p += sprintf(p, "essid=%.*s\n", essid.length, essid.essid);
+
+ res = mp_query_int(wnd, OID_802_11_ENCRYPTION_STATUS, &encr_status);
+ if (!res) {
+ typeof(&wnd->encr_info.keys[0]) tx_key;
+ p += sprintf(p, "tx_key=%u\n", wnd->encr_info.tx_key_index);
+ p += sprintf(p, "key=");
+ tx_key = &wnd->encr_info.keys[wnd->encr_info.tx_key_index];
+ if (tx_key->length > 0)
+ for (i = 0; i < tx_key->length; i++)
+ p += sprintf(p, "%2.2X", tx_key->key[i]);
+ else
+ p += sprintf(p, "off");
+ p += sprintf(p, "\n");
+ p += sprintf(p, "encr_mode=%d\n", encr_status);
+ }
+ res = mp_query_int(wnd, OID_802_11_AUTHENTICATION_MODE, &auth_mode);
+ if (!res)
+ p += sprintf(p, "auth_mode=%d\n", auth_mode);
+ res = mp_query_int(wnd, OID_802_11_INFRASTRUCTURE_MODE, &infra_mode);
+ p += sprintf(p, "mode=%s\n", (infra_mode == Ndis802_11IBSS) ?
+ "adhoc" : (infra_mode == Ndis802_11Infrastructure) ?
+ "managed" : "auto");
+ if (p - page > count) {
+ WARNING("wrote %lu bytes (limit is %u)",
+ (unsigned long)(p - page), count);
+ *eof = 1;
+ }
+
+ return p - page;
+}
+
+static int procfs_read_ndis_hw(char *page, char **start, off_t off,
+ int count, int *eof, void *data)
+{
+ char *p = page;
+ struct ndis_device *wnd = (struct ndis_device *)data;
+ struct ndis_configuration config;
+ unsigned int power_mode;
+ NDIS_STATUS res;
+ ndis_tx_power_level tx_power;
+ ULONG bit_rate;
+ ndis_rts_threshold rts_threshold;
+ ndis_fragmentation_threshold frag_threshold;
+ ndis_antenna antenna;
+ ULONG packet_filter;
+ int n;
+ mac_address mac;
+ char *hw_status[] = {"ready", "initializing", "resetting", "closing",
+ "not ready"};
+
+ if (off != 0) {
+ *eof = 1;
+ return 0;
+ }
+
+ res = mp_query_int(wnd, OID_GEN_HARDWARE_STATUS, &n);
+ if (res == NDIS_STATUS_SUCCESS &&
+ n >= 0 && n < sizeof(hw_status) / sizeof(hw_status[0]))
+ p += sprintf(p, "status=%s\n", hw_status[n]);
+
+ res = mp_query(wnd, OID_802_3_CURRENT_ADDRESS, mac, sizeof(mac));
+ if (!res)
+ p += sprintf(p, "mac: " MACSTRSEP "\n", MAC2STR(mac));
+ res = mp_query(wnd, OID_802_11_CONFIGURATION, &config, sizeof(config));
+ if (!res) {
+ p += sprintf(p, "beacon_period=%u msec\n",
+ config.beacon_period);
+ p += sprintf(p, "atim_window=%u msec\n", config.atim_window);
+ p += sprintf(p, "frequency=%u kHZ\n", config.ds_config);
+ p += sprintf(p, "hop_pattern=%u\n",
+ config.fh_config.hop_pattern);
+ p += sprintf(p, "hop_set=%u\n",
+ config.fh_config.hop_set);
+ p += sprintf(p, "dwell_time=%u msec\n",
+ config.fh_config.dwell_time);
+ }
+
+ res = mp_query(wnd, OID_802_11_TX_POWER_LEVEL,
+ &tx_power, sizeof(tx_power));
+ if (!res)
+ p += sprintf(p, "tx_power=%u mW\n", tx_power);
+
+ res = mp_query(wnd, OID_GEN_LINK_SPEED, &bit_rate, sizeof(bit_rate));
+ if (!res)
+ p += sprintf(p, "bit_rate=%u kBps\n", (u32)bit_rate / 10);
+
+ res = mp_query(wnd, OID_802_11_RTS_THRESHOLD,
+ &rts_threshold, sizeof(rts_threshold));
+ if (!res)
+ p += sprintf(p, "rts_threshold=%u bytes\n", rts_threshold);
+
+ res = mp_query(wnd, OID_802_11_FRAGMENTATION_THRESHOLD,
+ &frag_threshold, sizeof(frag_threshold));
+ if (!res)
+ p += sprintf(p, "frag_threshold=%u bytes\n", frag_threshold);
+
+ res = mp_query_int(wnd, OID_802_11_POWER_MODE, &power_mode);
+ if (!res)
+ p += sprintf(p, "power_mode=%s\n",
+ (power_mode == NDIS_POWER_OFF) ? "always_on" :
+ (power_mode == NDIS_POWER_MAX) ?
+ "max_savings" : "min_savings");
+
+ res = mp_query(wnd, OID_802_11_NUMBER_OF_ANTENNAS,
+ &antenna, sizeof(antenna));
+ if (!res)
+ p += sprintf(p, "num_antennas=%u\n", antenna);
+
+ res = mp_query(wnd, OID_802_11_TX_ANTENNA_SELECTED,
+ &antenna, sizeof(antenna));
+ if (!res)
+ p += sprintf(p, "tx_antenna=%u\n", antenna);
+
+ res = mp_query(wnd, OID_802_11_RX_ANTENNA_SELECTED,
+ &antenna, sizeof(antenna));
+ if (!res)
+ p += sprintf(p, "rx_antenna=%u\n", antenna);
+
+ p += sprintf(p, "encryption_modes=%s%s%s%s%s%s%s\n",
+ test_bit(Ndis802_11Encryption1Enabled, &wnd->capa.encr) ?
+ "WEP" : "none",
+
+ test_bit(Ndis802_11Encryption2Enabled, &wnd->capa.encr) ?
+ "; TKIP with WPA" : "",
+ test_bit(Ndis802_11AuthModeWPA2, &wnd->capa.auth) ?
+ ", WPA2" : "",
+ test_bit(Ndis802_11AuthModeWPA2PSK, &wnd->capa.auth) ?
+ ", WPA2PSK" : "",
+
+ test_bit(Ndis802_11Encryption3Enabled, &wnd->capa.encr) ?
+ "; AES/CCMP with WPA" : "",
+ test_bit(Ndis802_11AuthModeWPA2, &wnd->capa.auth) ?
+ ", WPA2" : "",
+ test_bit(Ndis802_11AuthModeWPA2PSK, &wnd->capa.auth) ?
+ ", WPA2PSK" : "");
+
+ res = mp_query_int(wnd, OID_GEN_CURRENT_PACKET_FILTER, &packet_filter);
+ if (!res) {
+ if (packet_filter != wnd->packet_filter)
+ WARNING("wrong packet_filter? 0x%08x, 0x%08x\n",
+ packet_filter, wnd->packet_filter);
+ p += sprintf(p, "packet_filter: 0x%08x\n", packet_filter);
+ }
+ if (p - page > count) {
+ WARNING("wrote %lu bytes (limit is %u)",
+ (unsigned long)(p - page), count);
+ *eof = 1;
+ }
+
+ return p - page;
+}
+
+static int procfs_read_ndis_settings(char *page, char **start, off_t off,
+ int count, int *eof, void *data)
+{
+ char *p = page;
+ struct ndis_device *wnd = (struct ndis_device *)data;
+ struct wrap_device_setting *setting;
+
+ if (off != 0) {
+ *eof = 1;
+ return 0;
+ }
+
+ p += sprintf(p, "hangcheck_interval=%d\n",
+ hangcheck_interval == 0 ?
+ (int)(wnd->hangcheck_interval / HZ) : -1);
+
+ list_for_each_entry(setting, &wnd->wd->settings, list) {
+ p += sprintf(p, "%s=%s\n", setting->name, setting->value);
+ }
+
+ list_for_each_entry(setting, &wnd->wd->driver->settings, list) {
+ p += sprintf(p, "%s=%s\n", setting->name, setting->value);
+ }
+
+ return p - page;
+}
+
+static int procfs_write_ndis_settings(struct file *file, const char __user *buf,
+ unsigned long count, void *data)
+{
+ struct ndis_device *wnd = (struct ndis_device *)data;
+ char setting[MAX_PROC_STR_LEN], *p;
+ unsigned int i;
+ NDIS_STATUS res;
+
+ if (count > MAX_PROC_STR_LEN)
+ return -EINVAL;
+
+ memset(setting, 0, sizeof(setting));
+ if (copy_from_user(setting, buf, count))
+ return -EFAULT;
+
+ if ((p = strchr(setting, '\n')))
+ *p = 0;
+
+ if ((p = strchr(setting, '=')))
+ *p = 0;
+
+ if (!strcmp(setting, "hangcheck_interval")) {
+ if (!p)
+ return -EINVAL;
+ p++;
+ i = simple_strtol(p, NULL, 10);
+ hangcheck_del(wnd);
+ if (i > 0) {
+ wnd->hangcheck_interval = i * HZ;
+ hangcheck_add(wnd);
+ }
+ } else if (!strcmp(setting, "suspend")) {
+ if (!p)
+ return -EINVAL;
+ p++;
+ i = simple_strtol(p, NULL, 10);
+ if (i <= 0 || i > 3)
+ return -EINVAL;
+ if (wrap_is_pci_bus(wnd->wd->dev_bus))
+ i = wrap_pnp_suspend_pci_device(wnd->wd->pci.pdev,
+ PMSG_SUSPEND);
+ else
+#ifdef ENABLE_USB
+ i = wrap_pnp_suspend_usb_device(wnd->wd->usb.intf,
+ PMSG_SUSPEND);
+#else
+ i = -1;
+#endif
+ if (i)
+ return -EINVAL;
+ } else if (!strcmp(setting, "resume")) {
+ if (wrap_is_pci_bus(wnd->wd->dev_bus))
+ i = wrap_pnp_resume_pci_device(wnd->wd->pci.pdev);
+ else
+#ifdef ENABLE_USB
+ i = wrap_pnp_resume_usb_device(wnd->wd->usb.intf);
+#else
+ i = -1;
+#endif
+ if (i)
+ return -EINVAL;
+ } else if (!strcmp(setting, "stats_enabled")) {
+ if (!p)
+ return -EINVAL;
+ p++;
+ i = simple_strtol(p, NULL, 10);
+ if (i > 0)
+ wnd->iw_stats_enabled = TRUE;
+ else
+ wnd->iw_stats_enabled = FALSE;
+ } else if (!strcmp(setting, "packet_filter")) {
+ if (!p)
+ return -EINVAL;
+ p++;
+ i = simple_strtol(p, NULL, 10);
+ res = mp_set_int(wnd, OID_GEN_CURRENT_PACKET_FILTER, i);
+ if (res)
+ WARNING("setting packet_filter failed: %08X", res);
+ } else if (!strcmp(setting, "reinit")) {
+ if (ndis_reinit(wnd) != NDIS_STATUS_SUCCESS)
+ return -EFAULT;
+ } else {
+ struct ndis_configuration_parameter param;
+ struct unicode_string key;
+ struct ansi_string ansi;
+
+ if (!p)
+ return -EINVAL;
+ p++;
+ RtlInitAnsiString(&ansi, p);
+ if (RtlAnsiStringToUnicodeString(&param.data.string, &ansi,
+ TRUE) != STATUS_SUCCESS)
+ EXIT1(return -EFAULT);
+ param.type = NdisParameterString;
+ RtlInitAnsiString(&ansi, setting);
+ if (RtlAnsiStringToUnicodeString(&key, &ansi,
+ TRUE) != STATUS_SUCCESS) {
+ RtlFreeUnicodeString(&param.data.string);
+ EXIT1(return -EINVAL);
+ }
+ NdisWriteConfiguration(&res, wnd->nmb, &key, &param);
+ RtlFreeUnicodeString(&key);
+ RtlFreeUnicodeString(&param.data.string);
+ if (res != NDIS_STATUS_SUCCESS)
+ return -EFAULT;
+ }
+ return count;
+}
+
+int wrap_procfs_add_ndis_device(struct ndis_device *wnd)
+{
+ struct proc_dir_entry *procfs_entry;
+
+ if (wrap_procfs_entry == NULL)
+ return -ENOMEM;
+
+ if (wnd->procfs_iface) {
+ ERROR("%s already registered?", wnd->netdev_name);
+ return -EINVAL;
+ }
+ wnd->procfs_iface = proc_mkdir(wnd->netdev_name, wrap_procfs_entry);
+ if (wnd->procfs_iface == NULL) {
+ ERROR("couldn't create proc directory");
+ return -ENOMEM;
+ }
+ wnd->procfs_iface->uid = proc_uid;
+ wnd->procfs_iface->gid = proc_gid;
+
+ procfs_entry = create_proc_entry("hw", S_IFREG | S_IRUSR | S_IRGRP,
+ wnd->procfs_iface);
+ if (procfs_entry == NULL) {
+ ERROR("couldn't create proc entry for 'hw'");
+ goto err_hw;
+ } else {
+ procfs_entry->uid = proc_uid;
+ procfs_entry->gid = proc_gid;
+ procfs_entry->data = wnd;
+ procfs_entry->read_proc = procfs_read_ndis_hw;
+ }
+
+ procfs_entry = create_proc_entry("stats", S_IFREG | S_IRUSR | S_IRGRP,
+ wnd->procfs_iface);
+ if (procfs_entry == NULL) {
+ ERROR("couldn't create proc entry for 'stats'");
+ goto err_stats;
+ } else {
+ procfs_entry->uid = proc_uid;
+ procfs_entry->gid = proc_gid;
+ procfs_entry->data = wnd;
+ procfs_entry->read_proc = procfs_read_ndis_stats;
+ }
+
+ procfs_entry = create_proc_entry("encr", S_IFREG | S_IRUSR | S_IRGRP,
+ wnd->procfs_iface);
+ if (procfs_entry == NULL) {
+ ERROR("couldn't create proc entry for 'encr'");
+ goto err_encr;
+ } else {
+ procfs_entry->uid = proc_uid;
+ procfs_entry->gid = proc_gid;
+ procfs_entry->data = wnd;
+ procfs_entry->read_proc = procfs_read_ndis_encr;
+ }
+
+ procfs_entry = create_proc_entry("settings", S_IFREG |
+ S_IRUSR | S_IRGRP |
+ S_IWUSR | S_IWGRP, wnd->procfs_iface);
+ if (procfs_entry == NULL) {
+ ERROR("couldn't create proc entry for 'settings'");
+ goto err_settings;
+ } else {
+ procfs_entry->uid = proc_uid;
+ procfs_entry->gid = proc_gid;
+ procfs_entry->data = wnd;
+ procfs_entry->read_proc = procfs_read_ndis_settings;
+ procfs_entry->write_proc = procfs_write_ndis_settings;
+ }
+ return 0;
+
+err_settings:
+ remove_proc_entry("encr", wnd->procfs_iface);
+err_encr:
+ remove_proc_entry("stats", wnd->procfs_iface);
+err_stats:
+ remove_proc_entry("hw", wnd->procfs_iface);
+err_hw:
+ remove_proc_entry(wnd->netdev_name, wrap_procfs_entry);
+ wnd->procfs_iface = NULL;
+ return -ENOMEM;
+}
+
+void wrap_procfs_remove_ndis_device(struct ndis_device *wnd)
+{
+ struct proc_dir_entry *procfs_iface = xchg(&wnd->procfs_iface, NULL);
+
+ if (procfs_iface == NULL)
+ return;
+ remove_proc_entry("hw", procfs_iface);
+ remove_proc_entry("stats", procfs_iface);
+ remove_proc_entry("encr", procfs_iface);
+ remove_proc_entry("settings", procfs_iface);
+ if (wrap_procfs_entry)
+ remove_proc_entry(wnd->netdev_name, wrap_procfs_entry);
+}
+
+static int procfs_read_debug(char *page, char **start, off_t off,
+ int count, int *eof, void *data)
+{
+ char *p = page;
+ enum alloc_type type;
+
+ if (off != 0) {
+ *eof = 1;
+ return 0;
+ }
+ p += sprintf(p, "%d\n", debug);
+ type = 0;
+#ifdef ALLOC_DEBUG
+ for (type = 0; type < ALLOC_TYPE_MAX; type++)
+ p += sprintf(p, "total size of allocations in %d: %d\n",
+ type, alloc_size(type));
+#endif
+ return p - page;
+}
+
+static int procfs_write_debug(struct file *file, const char __user *buf,
+ unsigned long count, void *data)
+{
+ int i;
+ char setting[MAX_PROC_STR_LEN], *p;
+
+ if (count > MAX_PROC_STR_LEN)
+ return -EINVAL;
+
+ memset(setting, 0, sizeof(setting));
+ if (copy_from_user(setting, buf, count))
+ return -EFAULT;
+
+ if ((p = strchr(setting, '\n')))
+ *p = 0;
+
+ if ((p = strchr(setting, '=')))
+ *p = 0;
+
+ i = simple_strtol(setting, NULL, 10);
+ if (i >= 0 && i < 10)
+ debug = i;
+ else
+ return -EINVAL;
+ return count;
+}
+
+int wrap_procfs_init(void)
+{
+ struct proc_dir_entry *procfs_entry;
+
+ wrap_procfs_entry = proc_mkdir(DRIVER_NAME, proc_net_root);
+ if (wrap_procfs_entry == NULL) {
+ ERROR("couldn't create procfs directory");
+ return -ENOMEM;
+ }
+ wrap_procfs_entry->uid = proc_uid;
+ wrap_procfs_entry->gid = proc_gid;
+
+ procfs_entry = create_proc_entry("debug", S_IFREG | S_IRUSR | S_IRGRP,
+ wrap_procfs_entry);
+ if (procfs_entry == NULL) {
+ ERROR("couldn't create proc entry for 'debug'");
+ return -ENOMEM;
+ } else {
+ procfs_entry->uid = proc_uid;
+ procfs_entry->gid = proc_gid;
+ procfs_entry->read_proc = procfs_read_debug;
+ procfs_entry->write_proc = procfs_write_debug;
+ }
+ return 0;
+}
+
+void wrap_procfs_remove(void)
+{
+ if (wrap_procfs_entry == NULL)
+ return;
+ remove_proc_entry("debug", wrap_procfs_entry);
+ remove_proc_entry(DRIVER_NAME, proc_net_root);
+}
diff --git a/ubuntu/ndiswrapper/rtl.c b/ubuntu/ndiswrapper/rtl.c
new file mode 100644
index 00000000000..918e73ed7f1
--- /dev/null
+++ b/ubuntu/ndiswrapper/rtl.c
@@ -0,0 +1,716 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "ntoskernel.h"
+#include "rtl_exports.h"
+
+wstdcall SIZE_T WIN_FUNC(RtlCompareMemory,3)
+ (const void *a, const void *b, SIZE_T len)
+{
+ size_t i;
+ char *x, *y;
+
+ x = (char *)a;
+ y = (char *)b;
+ /* MSDN says this should return number of bytes that compare as
+ * equal. This can be interpretted as either all bytes that are
+ * equal in 'len' bytes or that only until the bytes compare as
+ * not equal. Initially we had it the former way, but Realtek driver
+ * doesn't like it that way - it takes many attempts to associate
+ * with WPA. ReactOS returns the number of bytes that are equal
+ * upto when they compare as not equal.
+ * According to lords at #reactos, that is the way it should be
+ * and that msdn is wrong about it!
+ */
+ for (i = 0; i < len && x[i] == y[i]; i++)
+ ;
+ return i;
+}
+
+wstdcall void WIN_FUNC(RtlCopyMemory,3)
+ (void *dst, const void *src, SIZE_T length)
+{
+ memcpy(dst, src, length);
+}
+
+wstdcall void WIN_FUNC(RtlZeroMemory,2)
+ (void *dst, SIZE_T length)
+{
+ memset(dst, 0, length);
+}
+
+wstdcall void WIN_FUNC(RtlSecureZeroMemory,2)
+ (void *dst, SIZE_T length)
+{
+ memset(dst, 0, length);
+}
+
+wstdcall void WIN_FUNC(RtlFillMemory,3)
+ (void *dest, SIZE_T length, UCHAR fill)
+{
+ memset(dest, fill, length);
+}
+
+wstdcall void WIN_FUNC(RtlMoveMemory,3)
+ (void *dest, const void *src, SIZE_T length)
+{
+ memmove(dest, src, length);
+}
+
+wstdcall LONG WIN_FUNC(RtlCompareString,3)
+ (const struct ansi_string *s1, const struct ansi_string *s2,
+ BOOLEAN case_insensitive)
+{
+ unsigned int len;
+ LONG ret = 0;
+ const char *p1, *p2;
+
+ ENTER2("");
+ len = min(s1->length, s2->length);
+ p1 = s1->buf;
+ p2 = s2->buf;
+ if (case_insensitive)
+ while (!ret && len--)
+ ret = toupper(*p1++) - toupper(*p2++);
+ else
+ while (!ret && len--)
+ ret = *p1++ - *p2++;
+ if (!ret)
+ ret = s1->length - s2->length;
+ EXIT2(return ret);
+}
+
+wstdcall LONG WIN_FUNC(RtlCompareUnicodeString,3)
+ (const struct unicode_string *s1, const struct unicode_string *s2,
+ BOOLEAN case_insensitive)
+{
+ unsigned int len;
+ LONG ret = 0;
+ const wchar_t *p1, *p2;
+
+ ENTER2("");
+
+ len = min(s1->length, s2->length) / sizeof(wchar_t);
+ p1 = s1->buf;
+ p2 = s2->buf;
+ if (case_insensitive)
+ while (!ret && len--)
+ ret = toupper((u8)*p1++) - toupper((u8)*p2++);
+ else
+ while (!ret && len--)
+ ret = (u8)*p1++ - (u8)*p2++;
+ if (!ret)
+ ret = s1->length - s2->length;
+ TRACE2("len: %d, ret: %d", len, ret);
+ EXIT2(return ret);
+}
+
+wstdcall BOOLEAN WIN_FUNC(RtlEqualString,3)
+ (const struct ansi_string *s1, const struct ansi_string *s2,
+ BOOLEAN case_insensitive)
+{
+ ENTER1("");
+ if (s1->length != s2->length)
+ return FALSE;
+ return !RtlCompareString(s1, s2, case_insensitive);
+}
+
+wstdcall BOOLEAN WIN_FUNC(RtlEqualUnicodeString,3)
+ (const struct unicode_string *s1, const struct unicode_string *s2,
+ BOOLEAN case_insensitive)
+{
+ if (s1->length != s2->length)
+ return FALSE;
+ return !RtlCompareUnicodeString(s1, s2, case_insensitive);
+}
+
+wstdcall void WIN_FUNC(RtlCopyUnicodeString,2)
+ (struct unicode_string *dst, struct unicode_string *src)
+{
+ ENTER1("%p, %p", dst, src);
+ if (src && src->buf && dst->buf) {
+ dst->length = min(src->length, dst->max_length);
+ memcpy(dst->buf, src->buf, dst->length);
+ if (dst->length < dst->max_length)
+ dst->buf[dst->length / sizeof(dst->buf[0])] = 0;
+ } else
+ dst->length = 0;
+ EXIT1(return);
+}
+
+wstdcall void WIN_FUNC(RtlCopyString,2)
+ (struct ansi_string *dst, struct ansi_string *src)
+{
+ ENTER1("%p, %p", dst, src);
+ if (src && src->buf && dst->buf) {
+ dst->length = min(src->length, dst->max_length);
+ memcpy(dst->buf, src->buf, dst->length);
+ if (dst->length < dst->max_length)
+ dst->buf[dst->length] = 0;
+ } else
+ dst->length = 0;
+ EXIT1(return);
+}
+
+wstdcall NTSTATUS WIN_FUNC(RtlAppendUnicodeToString,2)
+ (struct unicode_string *dst, wchar_t *src)
+{
+ if (src) {
+ int len;
+ for (len = 0; src[len]; len++)
+ ;
+ if (dst->length + (len * sizeof(dst->buf[0])) > dst->max_length)
+ return STATUS_BUFFER_TOO_SMALL;
+ memcpy(&dst->buf[dst->length], src, len * sizeof(dst->buf[0]));
+ dst->length += len * sizeof(dst->buf[0]);
+ if (dst->max_length > dst->length)
+ dst->buf[dst->length / sizeof(dst->buf[0])] = 0;
+ }
+ return STATUS_SUCCESS;
+}
+
+wstdcall NTSTATUS WIN_FUNC(RtlAppendUnicodeStringToString,2)
+ (struct unicode_string *dst, struct unicode_string *src)
+{
+ if (dst->max_length < src->length + dst->length)
+ return STATUS_BUFFER_TOO_SMALL;
+ if (src->length) {
+ memcpy(&dst->buf[dst->length], src->buf, src->length);
+ dst->length += src->length;
+ if (dst->max_length > dst->length)
+ dst->buf[dst->length / sizeof(dst->buf[0])] = 0;
+ }
+ EXIT2(return STATUS_SUCCESS);
+}
+
+wstdcall ULONG WIN_FUNC(RtlxAnsiStringToUnicodeSize,1)
+ (const struct ansi_string *string)
+{
+ int i;
+
+ for (i = 0; i < string->max_length && string->buf[i]; i++)
+ ;
+ return i * sizeof(wchar_t);
+}
+
+wstdcall ULONG WIN_FUNC(RtlxUnicodeStringToAnsiSize,1)
+ (const struct unicode_string *string)
+{
+ int i;
+
+ for (i = 0; i < string->max_length && string->buf[i]; i++)
+ ;
+ return i;
+}
+
+wstdcall NTSTATUS WIN_FUNC(RtlAnsiStringToUnicodeString,3)
+ (struct unicode_string *dst, const struct ansi_string *src,
+ BOOLEAN alloc)
+{
+ int i, n;
+
+ n = RtlxAnsiStringToUnicodeSize(src);
+ TRACE2("%d, %d, %d, %d, %p", n, dst->max_length, src->length,
+ src->max_length, src->buf);
+ if (alloc == TRUE) {
+#if 0
+ if (n == 0) {
+ dst->length = dst->max_length = 0;
+ dst->buf = NULL;
+ EXIT2(return STATUS_SUCCESS);
+ }
+#endif
+ dst->max_length = n + sizeof(dst->buf[0]);
+ dst->buf = ExAllocatePoolWithTag(NonPagedPool,
+ dst->max_length, 0);
+ if (!dst->buf) {
+ dst->max_length = dst->length = 0;
+ EXIT2(return STATUS_NO_MEMORY);
+ }
+ } else if (dst->max_length < n)
+ EXIT2(return STATUS_BUFFER_TOO_SMALL);
+
+ dst->length = n;
+ n /= sizeof(dst->buf[0]);
+ for (i = 0; i < n; i++)
+ dst->buf[i] = src->buf[i];
+ if (i * sizeof(dst->buf[0]) < dst->max_length)
+ dst->buf[i] = 0;
+ TRACE2("dst: length: %d, max_length: %d, string: %p",
+ dst->length, dst->max_length, src->buf);
+ EXIT2(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS WIN_FUNC(RtlUnicodeStringToAnsiString,3)
+ (struct ansi_string *dst, const struct unicode_string *src,
+ BOOLEAN alloc)
+{
+ int i, n;
+
+ n = RtlxUnicodeStringToAnsiSize(src);
+ TRACE2("%d, %d, %d, %d, %p", n, dst->max_length, src->length,
+ src->max_length, src->buf);
+ if (alloc == TRUE) {
+#if 0
+ if (n == 0) {
+ dst->length = dst->max_length = 0;
+ dst->buf = NULL;
+ EXIT2(return STATUS_SUCCESS);
+ }
+#endif
+ dst->max_length = n + sizeof(dst->buf[0]);
+ dst->buf = ExAllocatePoolWithTag(NonPagedPool,
+ dst->max_length, 0);
+ if (!dst->buf) {
+ dst->max_length = dst->length = 0;
+ EXIT1(return STATUS_NO_MEMORY);
+ }
+ } else if (dst->max_length < n)
+ EXIT2(return STATUS_BUFFER_TOO_SMALL);
+
+ dst->length = n;
+ for (i = 0; i < n; i++)
+ dst->buf[i] = src->buf[i];
+ if (i < dst->max_length)
+ dst->buf[i] = 0;
+ TRACE2("string: %p, len: %d(%d)", dst->buf, dst->length,
+ dst->max_length);
+ EXIT2(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS WIN_FUNC(RtlUnicodeStringToInteger,3)
+ (struct unicode_string *ustring, ULONG base, ULONG *value)
+{
+ int i, sign = 1;
+ ULONG res;
+ typeof(ustring->buf) string;
+
+ if (ustring->length == 0) {
+ *value = 0;
+ return STATUS_SUCCESS;
+ }
+
+ string = ustring->buf;
+ i = 0;
+ while (i < (ustring->length / sizeof(*string)) && string[i] == ' ')
+ i++;
+ if (string[i] == '+')
+ i++;
+ else if (string[i] == '-') {
+ i++;
+ sign = -1;
+ }
+ if (base == 0) {
+ base = 10;
+ if (i <= ((ustring->length / sizeof(*string)) - 2) &&
+ string[i] == '0') {
+ i++;
+ if (string[i] == 'b') {
+ base = 2;
+ i++;
+ } else if (string[i] == 'o') {
+ base = 8;
+ i++;
+ } else if (string[i] == 'x') {
+ base = 16;
+ i++;
+ }
+ }
+ }
+ if (!(base == 2 || base == 8 || base == 10 || base == 16))
+ EXIT2(return STATUS_INVALID_PARAMETER);
+
+ for (res = 0; i < (ustring->length / sizeof(*string)); i++) {
+ int v;
+ if (isdigit((char)string[i]))
+ v = string[i] - '0';
+ else if (isxdigit((char)string[i]))
+ v = tolower((char)string[i]) - 'a' + 10;
+ else
+ v = base;
+ if (v >= base)
+ EXIT2(return STATUS_INVALID_PARAMETER);
+ res = res * base + v;
+ }
+ *value = sign * res;
+ EXIT3(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS WIN_FUNC(RtlCharToInteger,3)
+ (const char *string, ULONG base, ULONG *value)
+{
+ int sign = 1;
+ ULONG res;
+
+ if (!string || !value)
+ EXIT2(return STATUS_INVALID_PARAMETER);
+ while (*string == ' ')
+ string++;
+ if (*string == '+')
+ string++;
+ else if (*string == '-') {
+ string++;
+ sign = -1;
+ }
+ if (base == 0) {
+ base = 10;
+ if (*string == '0') {
+ string++;
+ if (*string == 'b') {
+ base = 2;
+ string++;
+ } else if (*string == 'o') {
+ base = 8;
+ string++;
+ } else if (*string == 'x') {
+ base = 16;
+ string++;
+ }
+ }
+ }
+ if (!(base == 2 || base == 8 || base == 10 || base == 16))
+ EXIT2(return STATUS_INVALID_PARAMETER);
+
+ for (res = 0; *string; string++) {
+ int v;
+ if (isdigit(*string))
+ v = *string - '0';
+ else if (isxdigit(*string))
+ v = tolower(*string) - 'a' + 10;
+ else
+ v = base;
+ if (v >= base)
+ EXIT2(return STATUS_INVALID_PARAMETER);
+ res = res * base + v;
+ }
+ *value = sign * res;
+ EXIT3(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS WIN_FUNC(RtlIntegerToUnicodeString,3)
+ (ULONG value, ULONG base, struct unicode_string *ustring)
+{
+ typeof(ustring->buf) buf = ustring->buf;
+ int i;
+
+ if (base == 0)
+ base = 10;
+ if (!(base == 2 || base == 8 || base == 10 || base == 16))
+ return STATUS_INVALID_PARAMETER;
+ for (i = 0; value && i < ustring->max_length / sizeof(*buf); i++) {
+ int r;
+ r = value % base;
+ value /= base;
+ if (r < 10)
+ buf[i] = r + '0';
+ else
+ buf[i] = r + 'a' - 10;
+ }
+ if (value)
+ return STATUS_BUFFER_OVERFLOW;
+ ustring->length = i * sizeof(*buf);
+ return STATUS_SUCCESS;
+}
+
+wstdcall LARGE_INTEGER WIN_FUNC(RtlConvertUlongToLargeInteger,1)
+ (ULONG ul)
+{
+ LARGE_INTEGER li = ul;
+ return li;
+}
+
+wfastcall USHORT WIN_FUNC(RtlUshortByteSwap,1)
+ (USHORT src)
+{
+ return __swab16(src);
+}
+
+wfastcall ULONG WIN_FUNC(RtlUlongByteSwap,1)
+ (ULONG src)
+{
+ /* ULONG is 32 bits for both 32-bit and 64-bit architectures */
+ return __swab32(src);
+}
+
+wstdcall NTSTATUS WIN_FUNC(RtlUpcaseUnicodeString,3)
+ (struct unicode_string *dst, struct unicode_string *src, BOOLEAN alloc)
+{
+ USHORT i, n;
+
+ if (alloc) {
+ dst->buf = ExAllocatePoolWithTag(NonPagedPool, src->length, 0);
+ if (dst->buf)
+ dst->max_length = src->length;
+ else
+ EXIT2(return STATUS_NO_MEMORY);
+ } else {
+ if (dst->max_length < src->length)
+ EXIT2(return STATUS_BUFFER_OVERFLOW);
+ }
+
+ n = src->length / sizeof(src->buf[0]);
+ for (i = 0; i < n; i++)
+ dst->buf[i] = toupper(src->buf[i]);
+
+ dst->length = src->length;
+ EXIT3(return STATUS_SUCCESS);
+}
+
+wstdcall void WIN_FUNC(RtlInitUnicodeString,2)
+ (struct unicode_string *dst, const wchar_t *src)
+{
+ ENTER2("%p", dst);
+ if (dst == NULL)
+ EXIT1(return);
+ if (src == NULL) {
+ dst->max_length = dst->length = 0;
+ dst->buf = NULL;
+ } else {
+ int i;
+ for (i = 0; (char)src[i]; i++)
+ ;
+ dst->buf = (typeof(dst->buf))src;
+ dst->length = i * sizeof(dst->buf[0]);
+ dst->max_length = (i + 1) * sizeof(dst->buf[0]);
+ }
+ EXIT1(return);
+}
+
+wstdcall void WIN_FUNC(RtlInitAnsiString,2)
+ (struct ansi_string *dst, const char *src)
+{
+ ENTER2("%p", dst);
+ if (dst == NULL)
+ EXIT2(return);
+ if (src == NULL) {
+ dst->max_length = dst->length = 0;
+ dst->buf = NULL;
+ } else {
+ int i;
+ for (i = 0; src[i]; i++)
+ ;
+ dst->buf = (typeof(dst->buf))src;
+ dst->length = i;
+ dst->max_length = i + 1;
+ }
+ TRACE2("%p", dst->buf);
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(RtlInitString,2)
+ (struct ansi_string *dst, const char *src)
+{
+ ENTER2("%p", dst);
+ RtlInitAnsiString(dst, src);
+ EXIT2(return);
+}
+
+wstdcall void WIN_FUNC(RtlFreeUnicodeString,1)
+ (struct unicode_string *string)
+{
+ ENTER2("%p", string);
+ if (string == NULL)
+ return;
+ if (string->buf)
+ ExFreePool(string->buf);
+ string->length = string->max_length = 0;
+ string->buf = NULL;
+ return;
+}
+
+wstdcall void WIN_FUNC(RtlFreeAnsiString,1)
+ (struct ansi_string *string)
+{
+ ENTER2("%p", string);
+ if (string == NULL)
+ return;
+ if (string->buf)
+ ExFreePool(string->buf);
+ string->length = string->max_length = 0;
+ string->buf = NULL;
+ return;
+}
+
+/* guid string is of the form: {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX} */
+wstdcall NTSTATUS WIN_FUNC(RtlGUIDFromString,2)
+ (struct unicode_string *guid_string, struct guid *guid)
+{
+ struct ansi_string ansi;
+ NTSTATUS ret;
+ int i, j, k, l, m;
+
+ ret = RtlUnicodeStringToAnsiString(&ansi, guid_string, TRUE);
+ if (ret != STATUS_SUCCESS)
+ return ret;
+ if (ansi.length != 37 || ansi.buf[0] != '{' ||
+ ansi.buf[36] != '}' || ansi.buf[9] != '-' ||
+ ansi.buf[14] != '-' || ansi.buf[19] != '-' ||
+ ansi.buf[24] != '-') {
+ RtlFreeAnsiString(&ansi);
+ EXIT2(return STATUS_INVALID_PARAMETER);
+ }
+ memcpy(&guid->data4, &ansi.buf[29], sizeof(guid->data3));
+ /* set end of data3 for scanf */
+ ansi.buf[29] = 0;
+ if (sscanf(&ansi.buf[1], "%x", &i) == 1 &&
+ sscanf(&ansi.buf[10], "%x", &j) == 1 &&
+ sscanf(&ansi.buf[15], "%x", &k) == 1 &&
+ sscanf(&ansi.buf[20], "%x", &l) == 1 &&
+ sscanf(&ansi.buf[25], "%x", &m) == 1) {
+ guid->data1 = (i << 16) | (j < 8) | k;
+ guid->data2 = l;
+ guid->data3 = m;
+ ret = STATUS_SUCCESS;
+ } else
+ ret = STATUS_INVALID_PARAMETER;
+ RtlFreeAnsiString(&ansi);
+ return ret;
+}
+
+wstdcall NTSTATUS WIN_FUNC(RtlQueryRegistryValues,5)
+ (ULONG relative, wchar_t *path, struct rtl_query_registry_table *tbl,
+ void *context, void *env)
+{
+ struct ansi_string ansi;
+ struct unicode_string unicode;
+ NTSTATUS status, ret;
+ static int i = 0;
+
+ ENTER3("%x, %p", relative, tbl);
+// TODO();
+
+ RtlInitUnicodeString(&unicode, path);
+ if (RtlUnicodeStringToAnsiString(&ansi, &unicode, TRUE) ==
+ STATUS_SUCCESS) {
+ TRACE2("%s", ansi.buf);
+ RtlFreeAnsiString(&ansi);
+ }
+ ret = STATUS_SUCCESS;
+ for (; tbl->name; tbl++) {
+ RtlInitUnicodeString(&unicode, tbl->name);
+ if (RtlUnicodeStringToAnsiString(&ansi, &unicode, TRUE) ==
+ STATUS_SUCCESS) {
+ TRACE2("name: %s", ansi.buf);
+ RtlFreeAnsiString(&ansi);
+ }
+ TRACE2("flags: %08X", tbl->flags);
+ if (tbl->flags == RTL_QUERY_REGISTRY_DIRECT) {
+ TRACE2("type: %08X", tbl->def_type);
+ if (tbl->def_type == REG_DWORD) {
+ /* Atheros USB driver needs this, but
+ * don't know where and how to get its
+ * value */
+ if (tbl->def_data) {
+ TRACE2("def_data: %x",
+ *(int *)tbl->def_data);
+ *(DWORD *)tbl->context = 0x5f292a + i++;
+// *(DWORD *)tbl->def_data;
+ } else
+ *(DWORD *)tbl->context = 0x2345dbe;
+ }
+ } else {
+ void *data;
+ ULONG type, length;
+
+ if (!tbl->query_func) {
+ ERROR("oops: no query_func");
+ ret = STATUS_INVALID_PARAMETER;
+ break;
+ }
+ if (tbl->flags & RTL_QUERY_REGISTRY_NOVALUE) {
+ data = NULL;
+ type = REG_NONE;
+ length = 0;
+ } else {
+ data = tbl->def_data;
+ type = tbl->def_type;
+ length = tbl->def_length;;
+ }
+ TRACE2("calling query_func: %p", tbl->query_func);
+ status = LIN2WIN6(tbl->query_func, tbl->name, type,
+ data, length, context, env);
+ TRACE2("status: %08X", status);
+ if (status) {
+ if (status == STATUS_BUFFER_TOO_SMALL)
+ ret = STATUS_BUFFER_TOO_SMALL;
+ else
+ EXIT2(return STATUS_INVALID_PARAMETER);
+ }
+ }
+ }
+ EXIT3(return ret);
+}
+
+wstdcall NTSTATUS WIN_FUNC(RtlWriteRegistryValue,6)
+ (ULONG relative, wchar_t *path, wchar_t *name, ULONG type,
+ void *data, ULONG length)
+{
+ struct ansi_string ansi;
+ struct unicode_string unicode;
+
+ ENTER3("%d", relative);
+ TODO();
+
+ RtlInitUnicodeString(&unicode, path);
+ if (RtlUnicodeStringToAnsiString(&ansi, &unicode, TRUE) ==
+ STATUS_SUCCESS) {
+ TRACE2("%s", ansi.buf);
+ RtlFreeAnsiString(&ansi);
+ }
+ RtlInitUnicodeString(&unicode, name);
+ if (RtlUnicodeStringToAnsiString(&ansi, &unicode, TRUE) ==
+ STATUS_SUCCESS) {
+ TRACE2("%s", ansi.buf);
+ RtlFreeAnsiString(&ansi);
+ }
+ EXIT5(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS WIN_FUNC(RtlDeleteRegistryValue,3)
+ (ULONG relative, wchar_t *path, wchar_t *name)
+{
+ return STATUS_SUCCESS;
+}
+
+wstdcall void WIN_FUNC(RtlAssert,4)
+ (char *failed_assertion, char *file_name, ULONG line_num, char *message)
+{
+ ERROR("assertion '%s' failed at %s line %d%s",
+ failed_assertion, file_name, line_num, message ? message : "");
+ return;
+}
+
+wstdcall void WIN_FUNC(RtlUnwind,0)
+ (void)
+{
+ TODO();
+}
+
+wstdcall void WIN_FUNC(RtlRaiseException,1)
+ (void *exception_record)
+{
+ TODO();
+}
+
+int rtl_init(void)
+{
+ return 0;
+}
+
+/* called when module is being removed */
+void rtl_exit(void)
+{
+ EXIT4(return);
+}
diff --git a/ubuntu/ndiswrapper/usb.c b/ubuntu/ndiswrapper/usb.c
new file mode 100644
index 00000000000..0e6da84a10c
--- /dev/null
+++ b/ubuntu/ndiswrapper/usb.c
@@ -0,0 +1,1457 @@
+/*
+ * Copyright (C) 2004 Jan Kiszka
+ * Copyright (C) 2005 Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "ndis.h"
+#include "usb.h"
+#include "usb_exports.h"
+
+#ifdef USB_DEBUG
+static unsigned int urb_id = 0;
+
+#define DUMP_WRAP_URB(wrap_urb, dir) \
+ USBTRACE("urb %p (%d) %s: buf: %p, len: %d, pipe: 0x%x, %d", \
+ (wrap_urb)->urb, (wrap_urb)->id, \
+ (dir == USB_DIR_OUT) ? "going down" : "coming back", \
+ (wrap_urb)->urb->transfer_buffer, \
+ (wrap_urb)->urb->transfer_buffer_length, \
+ (wrap_urb)->urb->pipe, (wrap_urb)->urb->status)
+
+#define DUMP_URB_BUFFER(urb, dir) \
+ while (debug >= 2) { \
+ int i; \
+ char msg[20], *t; \
+ if (!urb->transfer_buffer) \
+ break; \
+ if (!((usb_pipein(urb->pipe) && dir == USB_DIR_IN) || \
+ (usb_pipeout(urb->pipe) && dir == USB_DIR_OUT))) \
+ break; \
+ t = msg; \
+ t += sprintf(t, "%d: ", (urb)->actual_length); \
+ for (i = 0; i < urb->actual_length && \
+ t < &msg[sizeof(msg) - 4]; i++) \
+ t += sprintf(t, "%02X ", \
+ ((char *)urb->transfer_buffer)[i]); \
+ *t = 0; \
+ USBTRACE("%s", msg); \
+ break; \
+ }
+
+#else
+
+#define DUMP_WRAP_URB(wrap_urb, dir) (void)0
+#define DUMP_URB_BUFFER(urb, dir) (void)0
+
+#endif
+
+#define CUR_ALT_SETTING(intf) (intf)->cur_altsetting
+
+#ifndef USB_CTRL_SET_TIMEOUT
+#define USB_CTRL_SET_TIMEOUT 5000
+#endif
+
+#ifndef USB_CTRL_GET_TIMEOUT
+#define USB_CTRL_GET_TIMEOUT 5000
+#endif
+
+#ifndef URB_NO_TRANSFER_DMA_MAP
+#define URB_NO_TRANSFER_DMA_MAP 0
+#endif
+
+/* wrap_urb->flags */
+/* transfer_buffer for urb is allocated; free it in wrap_free_urb */
+#define WRAP_URB_COPY_BUFFER 0x01
+
+static int inline wrap_cancel_urb(struct wrap_urb *wrap_urb)
+{
+ int ret;
+ USBTRACE("%p, %p, %d", wrap_urb, wrap_urb->urb, wrap_urb->state);
+ if (wrap_urb->state != URB_SUBMITTED)
+ USBEXIT(return -1);
+ ret = usb_unlink_urb(wrap_urb->urb);
+ USBTRACE("ret: %d", ret);
+ if (ret == -EINPROGRESS)
+ return 0;
+ else {
+ WARNING("unlink failed: %d", ret);
+ return ret;
+ }
+}
+
+#define URB_STATUS(wrap_urb) (wrap_urb->urb->status)
+
+static struct nt_list wrap_urb_complete_list;
+static spinlock_t wrap_urb_complete_list_lock;
+
+static work_struct_t wrap_urb_complete_work;
+static void wrap_urb_complete_worker(worker_param_t dummy);
+
+static void kill_all_urbs(struct wrap_device *wd, int complete)
+{
+ struct nt_list *ent;
+ struct wrap_urb *wrap_urb;
+ KIRQL irql;
+
+ USBTRACE("%d", wd->usb.num_alloc_urbs);
+ while (1) {
+ IoAcquireCancelSpinLock(&irql);
+ ent = RemoveHeadList(&wd->usb.wrap_urb_list);
+ IoReleaseCancelSpinLock(irql);
+ if (!ent)
+ break;
+ wrap_urb = container_of(ent, struct wrap_urb, list);
+ if (wrap_urb->state == URB_SUBMITTED) {
+ WARNING("Windows driver %s didn't free urb: %p",
+ wd->driver->name, wrap_urb->urb);
+ if (!complete)
+ wrap_urb->urb->complete = NULL;
+ usb_kill_urb(wrap_urb->urb);
+ }
+ USBTRACE("%p, %p", wrap_urb, wrap_urb->urb);
+ usb_free_urb(wrap_urb->urb);
+ kfree(wrap_urb);
+ }
+ wd->usb.num_alloc_urbs = 0;
+}
+
+/* for a given Linux urb status code, return corresponding NT urb status */
+static USBD_STATUS wrap_urb_status(int urb_status)
+{
+ switch (urb_status) {
+ case 0:
+ return USBD_STATUS_SUCCESS;
+ case -EPROTO:
+ return USBD_STATUS_TIMEOUT;
+ case -EILSEQ:
+ return USBD_STATUS_CRC;
+ case -EPIPE:
+ return USBD_STATUS_INVALID_PIPE_HANDLE;
+ case -ECOMM:
+ return USBD_STATUS_DATA_OVERRUN;
+ case -ENOSR:
+ return USBD_STATUS_DATA_UNDERRUN;
+ case -EOVERFLOW:
+ return USBD_STATUS_BABBLE_DETECTED;
+ case -EREMOTEIO:
+ return USBD_STATUS_ERROR_SHORT_TRANSFER;;
+ case -ENODEV:
+ case -ESHUTDOWN:
+ case -ENOENT:
+ return USBD_STATUS_DEVICE_GONE;
+ case -ENOMEM:
+ return USBD_STATUS_NO_MEMORY;
+ case -EINVAL:
+ return USBD_STATUS_REQUEST_FAILED;
+ default:
+ return USBD_STATUS_NOT_SUPPORTED;
+ }
+}
+
+/* for a given USBD_STATUS, return its corresponding NTSTATUS (for irp) */
+static NTSTATUS nt_urb_irp_status(USBD_STATUS nt_urb_status)
+{
+ switch (nt_urb_status) {
+ case USBD_STATUS_SUCCESS:
+ return STATUS_SUCCESS;
+ case USBD_STATUS_DEVICE_GONE:
+ return STATUS_DEVICE_REMOVED;
+ case USBD_STATUS_PENDING:
+ return STATUS_PENDING;
+ case USBD_STATUS_NOT_SUPPORTED:
+ return STATUS_NOT_IMPLEMENTED;
+ case USBD_STATUS_NO_MEMORY:
+ return STATUS_NO_MEMORY;
+ case USBD_STATUS_REQUEST_FAILED:
+ return STATUS_NOT_SUPPORTED;
+ default:
+ return STATUS_FAILURE;
+ }
+}
+
+static void wrap_free_urb(struct urb *urb)
+{
+ struct irp *irp;
+ struct wrap_urb *wrap_urb;
+
+ USBTRACE("freeing urb: %p", urb);
+ wrap_urb = urb->context;
+ irp = wrap_urb->irp;
+ if (wrap_urb->flags & WRAP_URB_COPY_BUFFER) {
+ USBTRACE("freeing DMA buffer for URB: %p %p",
+ urb, urb->transfer_buffer);
+ usb_free_coherent(IRP_WRAP_DEVICE(irp)->usb.udev,
+ urb->transfer_buffer_length,
+ urb->transfer_buffer, urb->transfer_dma);
+ }
+ if (urb->setup_packet)
+ kfree(urb->setup_packet);
+ if (IRP_WRAP_DEVICE(irp)->usb.num_alloc_urbs > MAX_ALLOCATED_URBS) {
+ IoAcquireCancelSpinLock(&irp->cancel_irql);
+ RemoveEntryList(&wrap_urb->list);
+ IRP_WRAP_DEVICE(irp)->usb.num_alloc_urbs--;
+ IoReleaseCancelSpinLock(irp->cancel_irql);
+ usb_free_urb(urb);
+ kfree(wrap_urb);
+ } else {
+ wrap_urb->state = URB_FREE;
+ wrap_urb->flags = 0;
+ wrap_urb->irp = NULL;
+ }
+ return;
+}
+
+void wrap_suspend_urbs(struct wrap_device *wd)
+{
+ /* TODO: do we need to cancel urbs? */
+ USBTRACE("%p, %d", wd, wd->usb.num_alloc_urbs);
+}
+
+void wrap_resume_urbs(struct wrap_device *wd)
+{
+ /* TODO: do we need to resubmit urbs? */
+ USBTRACE("%p, %d", wd, wd->usb.num_alloc_urbs);
+}
+
+wstdcall void wrap_cancel_irp(struct device_object *dev_obj, struct irp *irp)
+{
+ struct urb *urb;
+
+ /* NB: this function is called holding Cancel spinlock */
+ USBENTER("irp: %p", irp);
+ urb = IRP_WRAP_URB(irp)->urb;
+ USBTRACE("canceling urb %p", urb);
+ if (wrap_cancel_urb(IRP_WRAP_URB(irp))) {
+ irp->cancel = FALSE;
+ ERROR("urb %p can't be canceled: %d", urb,
+ IRP_WRAP_URB(irp)->state);
+ } else
+ USBTRACE("urb %p canceled", urb);
+ IoReleaseCancelSpinLock(irp->cancel_irql);
+ return;
+}
+WIN_FUNC_DECL(wrap_cancel_irp,2)
+
+static struct urb *wrap_alloc_urb(struct irp *irp, unsigned int pipe,
+ void *buf, unsigned int buf_len)
+{
+ struct urb *urb;
+ gfp_t alloc_flags;
+ struct wrap_urb *wrap_urb;
+ struct wrap_device *wd;
+
+ USBENTER("irp: %p", irp);
+ wd = IRP_WRAP_DEVICE(irp);
+ alloc_flags = irql_gfp();
+ IoAcquireCancelSpinLock(&irp->cancel_irql);
+ urb = NULL;
+ nt_list_for_each_entry(wrap_urb, &wd->usb.wrap_urb_list, list) {
+ if (cmpxchg(&wrap_urb->state, URB_FREE,
+ URB_ALLOCATED) == URB_FREE) {
+ urb = wrap_urb->urb;
+ usb_init_urb(urb);
+ break;
+ }
+ }
+ if (!urb) {
+ IoReleaseCancelSpinLock(irp->cancel_irql);
+ wrap_urb = kzalloc(sizeof(*wrap_urb), alloc_flags);
+ if (!wrap_urb) {
+ WARNING("couldn't allocate memory");
+ return NULL;
+ }
+ urb = usb_alloc_urb(0, alloc_flags);
+ if (!urb) {
+ WARNING("couldn't allocate urb");
+ kfree(wrap_urb);
+ return NULL;
+ }
+ IoAcquireCancelSpinLock(&irp->cancel_irql);
+ wrap_urb->urb = urb;
+ wrap_urb->state = URB_ALLOCATED;
+ InsertTailList(&wd->usb.wrap_urb_list, &wrap_urb->list);
+ wd->usb.num_alloc_urbs++;
+ }
+
+#ifdef URB_ASYNC_UNLINK
+ urb->transfer_flags |= URB_ASYNC_UNLINK;
+#elif defined(USB_ASYNC_UNLINK)
+ urb->transfer_flags |= USB_ASYNC_UNLINK;
+#endif
+ urb->context = wrap_urb;
+ wrap_urb->irp = irp;
+ IRP_WRAP_URB(irp) = wrap_urb;
+ /* called as Windows function */
+ irp->cancel_routine = WIN_FUNC_PTR(wrap_cancel_irp,2);
+ IoReleaseCancelSpinLock(irp->cancel_irql);
+ USBTRACE("urb: %p", urb);
+
+ urb->transfer_buffer_length = buf_len;
+ if (buf_len && buf && (!virt_addr_valid(buf)
+#if defined(CONFIG_HIGHMEM) || defined(CONFIG_HIGHMEM4G)
+ || PageHighMem(virt_to_page(buf))
+#endif
+ )) {
+ urb->transfer_buffer =
+ usb_alloc_coherent(wd->usb.udev, buf_len, alloc_flags,
+ &urb->transfer_dma);
+ if (!urb->transfer_buffer) {
+ WARNING("couldn't allocate dma buf");
+ IoAcquireCancelSpinLock(&irp->cancel_irql);
+ wrap_urb->state = URB_FREE;
+ wrap_urb->irp = NULL;
+ IRP_WRAP_URB(irp) = NULL;
+ IoReleaseCancelSpinLock(irp->cancel_irql);
+ return NULL;
+ }
+ if (urb->transfer_dma)
+ urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
+ wrap_urb->flags |= WRAP_URB_COPY_BUFFER;
+ if (usb_pipeout(pipe))
+ memcpy(urb->transfer_buffer, buf, buf_len);
+ USBTRACE("DMA buf for urb %p: %p", urb, urb->transfer_buffer);
+ } else
+ urb->transfer_buffer = buf;
+ return urb;
+}
+
+static USBD_STATUS wrap_submit_urb(struct irp *irp)
+{
+ int ret;
+ struct urb *urb;
+ union nt_urb *nt_urb;
+
+ urb = IRP_WRAP_URB(irp)->urb;
+ nt_urb = IRP_URB(irp);
+#ifdef USB_DEBUG
+ if (IRP_WRAP_URB(irp)->state != URB_ALLOCATED) {
+ ERROR("urb %p is in wrong state: %d",
+ urb, IRP_WRAP_URB(irp)->state);
+ NT_URB_STATUS(nt_urb) = USBD_STATUS_REQUEST_FAILED;
+ return NT_URB_STATUS(nt_urb);
+ }
+ IRP_WRAP_URB(irp)->id = pre_atomic_add(urb_id, 1);
+#endif
+ DUMP_WRAP_URB(IRP_WRAP_URB(irp), USB_DIR_OUT);
+ irp->io_status.status = STATUS_PENDING;
+ irp->io_status.info = 0;
+ NT_URB_STATUS(nt_urb) = USBD_STATUS_PENDING;
+ IoMarkIrpPending(irp);
+ DUMP_URB_BUFFER(urb, USB_DIR_OUT);
+ USBTRACE("%p", urb);
+ IRP_WRAP_URB(irp)->state = URB_SUBMITTED;
+ ret = usb_submit_urb(urb, irql_gfp());
+ if (ret) {
+ USBTRACE("ret: %d", ret);
+ wrap_free_urb(urb);
+ /* we assume that IRP was not in pending state before */
+ IoUnmarkIrpPending(irp);
+ NT_URB_STATUS(nt_urb) = wrap_urb_status(ret);
+ USBEXIT(return NT_URB_STATUS(nt_urb));
+ } else
+ USBEXIT(return USBD_STATUS_PENDING);
+}
+
+static void wrap_urb_complete(struct urb *urb ISR_PT_REGS_PARAM_DECL)
+{
+ struct irp *irp;
+ struct wrap_urb *wrap_urb;
+
+ wrap_urb = urb->context;
+ USBTRACE("%p (%p) completed", wrap_urb, urb);
+ irp = wrap_urb->irp;
+ DUMP_WRAP_URB(wrap_urb, USB_DIR_IN);
+ irp->cancel_routine = NULL;
+#ifdef USB_DEBUG
+ if (wrap_urb->state != URB_SUBMITTED) {
+ WARNING("urb %p in wrong state: %d (%d)", urb, wrap_urb->state,
+ urb->status);
+ return;
+ }
+#endif
+ wrap_urb->state = URB_COMPLETED;
+ spin_lock(&wrap_urb_complete_list_lock);
+ InsertTailList(&wrap_urb_complete_list, &wrap_urb->complete_list);
+ spin_unlock(&wrap_urb_complete_list_lock);
+ schedule_ntos_work(&wrap_urb_complete_work);
+}
+
+/* one worker for all devices */
+static void wrap_urb_complete_worker(worker_param_t dummy)
+{
+ struct irp *irp;
+ struct urb *urb;
+ struct usbd_bulk_or_intr_transfer *bulk_int_tx;
+ struct usbd_vendor_or_class_request *vc_req;
+ union nt_urb *nt_urb;
+ struct wrap_urb *wrap_urb;
+ struct nt_list *ent;
+ unsigned long flags;
+
+ USBENTER("");
+ while (1) {
+ spin_lock_irqsave(&wrap_urb_complete_list_lock, flags);
+ ent = RemoveHeadList(&wrap_urb_complete_list);
+ spin_unlock_irqrestore(&wrap_urb_complete_list_lock, flags);
+ if (!ent)
+ break;
+ wrap_urb = container_of(ent, struct wrap_urb, complete_list);
+ urb = wrap_urb->urb;
+#ifdef USB_DEBUG
+ if (wrap_urb->state != URB_COMPLETED &&
+ wrap_urb->state != URB_INT_UNLINKED)
+ WARNING("urb %p in wrong state: %d",
+ urb, wrap_urb->state);
+#endif
+ irp = wrap_urb->irp;
+ DUMP_IRP(irp);
+ nt_urb = IRP_URB(irp);
+ USBTRACE("urb: %p, nt_urb: %p, status: %d",
+ urb, nt_urb, urb->status);
+ switch (urb->status) {
+ case 0:
+ /* succesfully transferred */
+ irp->io_status.info = urb->actual_length;
+ if (nt_urb->header.function ==
+ URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER) {
+ bulk_int_tx = &nt_urb->bulk_int_transfer;
+ bulk_int_tx->transfer_buffer_length =
+ urb->actual_length;
+ DUMP_URB_BUFFER(urb, USB_DIR_IN);
+ if ((wrap_urb->flags & WRAP_URB_COPY_BUFFER) &&
+ usb_pipein(urb->pipe))
+ memcpy(bulk_int_tx->transfer_buffer,
+ urb->transfer_buffer,
+ urb->actual_length);
+ } else { // vendor or class request
+ vc_req = &nt_urb->vendor_class_request;
+ vc_req->transfer_buffer_length =
+ urb->actual_length;
+ DUMP_URB_BUFFER(urb, USB_DIR_IN);
+ if ((wrap_urb->flags & WRAP_URB_COPY_BUFFER) &&
+ usb_pipein(urb->pipe))
+ memcpy(vc_req->transfer_buffer,
+ urb->transfer_buffer,
+ urb->actual_length);
+ }
+ NT_URB_STATUS(nt_urb) = USBD_STATUS_SUCCESS;
+ irp->io_status.status = STATUS_SUCCESS;
+ break;
+ case -ENOENT:
+ case -ECONNRESET:
+ /* urb canceled */
+ irp->io_status.info = 0;
+ TRACE2("urb %p canceled", urb);
+ NT_URB_STATUS(nt_urb) = USBD_STATUS_SUCCESS;
+ irp->io_status.status = STATUS_CANCELLED;
+ break;
+ default:
+ TRACE2("irp: %p, urb: %p, status: %d/%d",
+ irp, urb, urb->status, wrap_urb->state);
+ irp->io_status.info = 0;
+ NT_URB_STATUS(nt_urb) = wrap_urb_status(urb->status);
+ irp->io_status.status =
+ nt_urb_irp_status(NT_URB_STATUS(nt_urb));
+ break;
+ }
+ wrap_free_urb(urb);
+ IoCompleteRequest(irp, IO_NO_INCREMENT);
+ }
+ USBEXIT(return);
+}
+
+static USBD_STATUS wrap_bulk_or_intr_trans(struct irp *irp)
+{
+ usbd_pipe_handle pipe_handle;
+ struct urb *urb;
+ unsigned int pipe;
+ struct usbd_bulk_or_intr_transfer *bulk_int_tx;
+ USBD_STATUS status;
+ struct usb_device *udev;
+ union nt_urb *nt_urb;
+
+ nt_urb = IRP_URB(irp);
+ udev = IRP_WRAP_DEVICE(irp)->usb.udev;
+ bulk_int_tx = &nt_urb->bulk_int_transfer;
+ pipe_handle = bulk_int_tx->pipe_handle;
+ USBTRACE("flags: 0x%x, length: %u, buffer: %p, handle: %p",
+ bulk_int_tx->transfer_flags,
+ bulk_int_tx->transfer_buffer_length,
+ bulk_int_tx->transfer_buffer, pipe_handle);
+
+ if (USBD_IS_BULK_PIPE(pipe_handle)) {
+ if (bulk_int_tx->transfer_flags & USBD_TRANSFER_DIRECTION_IN)
+ pipe = usb_rcvbulkpipe(udev,
+ pipe_handle->bEndpointAddress);
+ else
+ pipe = usb_sndbulkpipe(udev,
+ pipe_handle->bEndpointAddress);
+ } else {
+ if (bulk_int_tx->transfer_flags & USBD_TRANSFER_DIRECTION_IN)
+ pipe = usb_rcvintpipe(udev,
+ pipe_handle->bEndpointAddress);
+ else
+ pipe = usb_sndintpipe(udev,
+ pipe_handle->bEndpointAddress);
+ }
+
+ DUMP_IRP(irp);
+ urb = wrap_alloc_urb(irp, pipe, bulk_int_tx->transfer_buffer,
+ bulk_int_tx->transfer_buffer_length);
+ if (!urb) {
+ ERROR("couldn't allocate urb");
+ return USBD_STATUS_NO_MEMORY;
+ }
+ if (usb_pipein(pipe) &&
+ (!(bulk_int_tx->transfer_flags & USBD_SHORT_TRANSFER_OK))) {
+ USBTRACE("short not ok");
+ urb->transfer_flags |= URB_SHORT_NOT_OK;
+ }
+ if (usb_pipebulk(pipe)) {
+ usb_fill_bulk_urb(urb, udev, pipe, urb->transfer_buffer,
+ bulk_int_tx->transfer_buffer_length,
+ wrap_urb_complete, urb->context);
+ USBTRACE("submitting bulk urb %p on pipe 0x%x (ep 0x%x)",
+ urb, urb->pipe, pipe_handle->bEndpointAddress);
+ } else {
+ usb_fill_int_urb(urb, udev, pipe, urb->transfer_buffer,
+ bulk_int_tx->transfer_buffer_length,
+ wrap_urb_complete, urb->context,
+ pipe_handle->bInterval);
+ USBTRACE("submitting interrupt urb %p on pipe 0x%x (ep 0x%x), "
+ "intvl: %d", urb, urb->pipe,
+ pipe_handle->bEndpointAddress, pipe_handle->bInterval);
+ }
+ status = wrap_submit_urb(irp);
+ USBTRACE("status: %08X", status);
+ USBEXIT(return status);
+}
+
+static USBD_STATUS wrap_vendor_or_class_req(struct irp *irp)
+{
+ u8 req_type;
+ unsigned int pipe;
+ struct usbd_vendor_or_class_request *vc_req;
+ struct usb_device *udev;
+ union nt_urb *nt_urb;
+ USBD_STATUS status;
+ struct urb *urb;
+ struct usb_ctrlrequest *dr;
+
+ nt_urb = IRP_URB(irp);
+ udev = IRP_WRAP_DEVICE(irp)->usb.udev;
+ vc_req = &nt_urb->vendor_class_request;
+ USBTRACE("bits: %x, req: %x, val: %08x, index: %08x, flags: %x,"
+ "buf: %p, len: %d", vc_req->reserved_bits, vc_req->request,
+ vc_req->value, vc_req->index, vc_req->transfer_flags,
+ vc_req->transfer_buffer, vc_req->transfer_buffer_length);
+
+ USBTRACE("%x", nt_urb->header.function);
+ switch (nt_urb->header.function) {
+ case URB_FUNCTION_VENDOR_DEVICE:
+ req_type = USB_TYPE_VENDOR | USB_RECIP_DEVICE;
+ break;
+ case URB_FUNCTION_VENDOR_INTERFACE:
+ req_type = USB_TYPE_VENDOR | USB_RECIP_INTERFACE;
+ break;
+ case URB_FUNCTION_VENDOR_ENDPOINT:
+ req_type = USB_TYPE_VENDOR | USB_RECIP_ENDPOINT;
+ break;
+ case URB_FUNCTION_VENDOR_OTHER:
+ req_type = USB_TYPE_VENDOR | USB_RECIP_OTHER;
+ break;
+ case URB_FUNCTION_CLASS_DEVICE:
+ req_type = USB_TYPE_CLASS | USB_RECIP_DEVICE;
+ break;
+ case URB_FUNCTION_CLASS_INTERFACE:
+ req_type = USB_TYPE_CLASS | USB_RECIP_INTERFACE;
+ break;
+ case URB_FUNCTION_CLASS_ENDPOINT:
+ req_type = USB_TYPE_CLASS | USB_RECIP_ENDPOINT;
+ break;
+ case URB_FUNCTION_CLASS_OTHER:
+ req_type = USB_TYPE_CLASS | USB_RECIP_OTHER;
+ break;
+ default:
+ ERROR("unknown request type: %x", nt_urb->header.function);
+ req_type = 0;
+ break;
+ }
+
+ req_type |= vc_req->reserved_bits;
+ USBTRACE("req type: %08x", req_type);
+
+ if (vc_req->transfer_flags & USBD_TRANSFER_DIRECTION_IN) {
+ pipe = usb_rcvctrlpipe(udev, 0);
+ req_type |= USB_DIR_IN;
+ USBTRACE("pipe: %x, dir in", pipe);
+ } else {
+ pipe = usb_sndctrlpipe(udev, 0);
+ req_type |= USB_DIR_OUT;
+ USBTRACE("pipe: %x, dir out", pipe);
+ }
+ urb = wrap_alloc_urb(irp, pipe, vc_req->transfer_buffer,
+ vc_req->transfer_buffer_length);
+ if (!urb) {
+ ERROR("couldn't allocate urb");
+ return USBD_STATUS_NO_MEMORY;
+ }
+
+ if (usb_pipein(pipe) &&
+ (!(vc_req->transfer_flags & USBD_SHORT_TRANSFER_OK))) {
+ USBTRACE("short not ok");
+ urb->transfer_flags |= URB_SHORT_NOT_OK;
+ }
+
+ dr = kzalloc(sizeof(*dr), GFP_ATOMIC);
+ if (!dr) {
+ ERROR("couldn't allocate memory");
+ wrap_free_urb(urb);
+ return USBD_STATUS_NO_MEMORY;
+ }
+ dr->bRequestType = req_type;
+ dr->bRequest = vc_req->request;
+ dr->wValue = cpu_to_le16(vc_req->value);
+ dr->wIndex = cpu_to_le16((u16)vc_req->index);
+ dr->wLength = cpu_to_le16((u16)urb->transfer_buffer_length);
+
+ usb_fill_control_urb(urb, udev, pipe, (unsigned char *)dr,
+ urb->transfer_buffer, urb->transfer_buffer_length,
+ wrap_urb_complete, urb->context);
+ status = wrap_submit_urb(irp);
+ USBTRACE("status: %08X", status);
+ USBEXIT(return status);
+}
+
+static USBD_STATUS wrap_reset_pipe(struct usb_device *udev, struct irp *irp)
+{
+ int ret;
+ union nt_urb *nt_urb;
+ usbd_pipe_handle pipe_handle;
+ unsigned int pipe1, pipe2;
+
+ nt_urb = IRP_URB(irp);
+ pipe_handle = nt_urb->pipe_req.pipe_handle;
+ /* TODO: not clear if both directions should be cleared? */
+ if (USBD_IS_BULK_PIPE(pipe_handle)) {
+ pipe1 = usb_rcvbulkpipe(udev, pipe_handle->bEndpointAddress);
+ pipe2 = usb_sndbulkpipe(udev, pipe_handle->bEndpointAddress);
+ } else if (USBD_IS_INT_PIPE(pipe_handle)) {
+ pipe1 = usb_rcvintpipe(udev, pipe_handle->bEndpointAddress);
+ pipe2 = pipe1;
+ } else {
+ WARNING("invalid pipe %d", pipe_handle->bEndpointAddress);
+ return USBD_STATUS_INVALID_PIPE_HANDLE;
+ }
+ USBTRACE("ep: %d, pipe: 0x%x", pipe_handle->bEndpointAddress, pipe1);
+ ret = usb_clear_halt(udev, pipe1);
+ if (ret)
+ USBTRACE("resetting pipe %d failed: %d", pipe1, ret);
+ if (pipe2 != pipe1) {
+ ret = usb_clear_halt(udev, pipe2);
+ if (ret)
+ USBTRACE("resetting pipe %d failed: %d", pipe2, ret);
+ }
+// return wrap_urb_status(ret);
+ return USBD_STATUS_SUCCESS;
+}
+
+static USBD_STATUS wrap_abort_pipe(struct usb_device *udev, struct irp *irp)
+{
+ union nt_urb *nt_urb;
+ usbd_pipe_handle pipe_handle;
+ struct wrap_urb *wrap_urb;
+ struct wrap_device *wd;
+ KIRQL irql;
+
+ wd = IRP_WRAP_DEVICE(irp);
+ nt_urb = IRP_URB(irp);
+ pipe_handle = nt_urb->pipe_req.pipe_handle;
+ USBENTER("%p, %x", irp, pipe_handle->bEndpointAddress);
+ IoAcquireCancelSpinLock(&irql);
+ nt_list_for_each_entry(wrap_urb, &wd->usb.wrap_urb_list, list) {
+ USBTRACE("%p, %p, %d, %x, %x", wrap_urb, wrap_urb->urb,
+ wrap_urb->state, wrap_urb->urb->pipe,
+ usb_pipeendpoint(wrap_urb->urb->pipe));
+ /* for WG111T driver, urbs for endpoint 0 should also
+ * be canceled */
+ if ((usb_pipeendpoint(wrap_urb->urb->pipe) ==
+ pipe_handle->bEndpointAddress) ||
+ (usb_pipeendpoint(wrap_urb->urb->pipe) == 0)) {
+ if (wrap_cancel_urb(wrap_urb) == 0)
+ USBTRACE("canceled wrap_urb: %p", wrap_urb);
+ }
+ }
+ IoReleaseCancelSpinLock(irql);
+ NT_URB_STATUS(nt_urb) = USBD_STATUS_CANCELED;
+ USBEXIT(return USBD_STATUS_SUCCESS);
+}
+
+static USBD_STATUS wrap_set_clear_feature(struct usb_device *udev,
+ struct irp *irp)
+{
+ union nt_urb *nt_urb;
+ struct urb_control_feature_request *feat_req;
+ int ret = 0;
+ __u8 request, type;
+ __u16 feature;
+
+ nt_urb = IRP_URB(irp);
+ feat_req = &nt_urb->feat_req;
+ feature = feat_req->feature_selector;
+ switch (nt_urb->header.function) {
+ case URB_FUNCTION_SET_FEATURE_TO_DEVICE:
+ request = USB_REQ_SET_FEATURE;
+ type = USB_DT_DEVICE;
+ break;
+ case URB_FUNCTION_SET_FEATURE_TO_INTERFACE:
+ request = USB_REQ_SET_FEATURE;
+ type = USB_DT_INTERFACE;
+ break;
+ case URB_FUNCTION_SET_FEATURE_TO_ENDPOINT:
+ request = USB_REQ_SET_FEATURE;
+ type = USB_DT_ENDPOINT;
+ break;
+ case URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE:
+ request = USB_REQ_CLEAR_FEATURE;
+ type = USB_DT_DEVICE;
+ break;
+ case URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE:
+ request = USB_REQ_CLEAR_FEATURE;
+ type = USB_DT_INTERFACE;
+ break;
+ case URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT:
+ request = USB_REQ_CLEAR_FEATURE;
+ type = USB_DT_ENDPOINT;
+ break;
+ default:
+ WARNING("invalid function: %x", nt_urb->header.function);
+ NT_URB_STATUS(nt_urb) = USBD_STATUS_NOT_SUPPORTED;
+ return NT_URB_STATUS(nt_urb);
+ }
+ ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0), request, type,
+ feature, feat_req->index, NULL, 0, 1000);
+ NT_URB_STATUS(nt_urb) = wrap_urb_status(ret);
+ USBEXIT(return NT_URB_STATUS(nt_urb));
+}
+
+static USBD_STATUS wrap_get_status_request(struct usb_device *udev,
+ struct irp *irp)
+{
+ union nt_urb *nt_urb;
+ struct urb_control_get_status_request *status_req;
+ int ret = 0;
+ __u8 type;
+
+ nt_urb = IRP_URB(irp);
+ status_req = &nt_urb->status_req;
+ switch (nt_urb->header.function) {
+ case URB_FUNCTION_GET_STATUS_FROM_DEVICE:
+ type = USB_RECIP_DEVICE;
+ break;
+ case URB_FUNCTION_GET_STATUS_FROM_INTERFACE:
+ type = USB_RECIP_INTERFACE;
+ break;
+ case URB_FUNCTION_GET_STATUS_FROM_ENDPOINT:
+ type = USB_RECIP_ENDPOINT;
+ break;
+ default:
+ WARNING("invalid function: %x", nt_urb->header.function);
+ NT_URB_STATUS(nt_urb) = USBD_STATUS_NOT_SUPPORTED;
+ return NT_URB_STATUS(nt_urb);
+ }
+ assert(status_req->transfer_buffer_length == sizeof(u16));
+ ret = usb_get_status(udev, type, status_req->index,
+ status_req->transfer_buffer);
+ if (ret >= 0) {
+ assert(ret <= status_req->transfer_buffer_length);
+ status_req->transfer_buffer_length = ret;
+ NT_URB_STATUS(nt_urb) = USBD_STATUS_SUCCESS;
+ } else
+ NT_URB_STATUS(nt_urb) = wrap_urb_status(ret);
+ USBEXIT(return NT_URB_STATUS(nt_urb));
+}
+
+static void set_intf_pipe_info(struct wrap_device *wd,
+ struct usb_interface *usb_intf,
+ struct usbd_interface_information *intf)
+{
+ int i;
+ struct usb_endpoint_descriptor *ep;
+ struct usbd_pipe_information *pipe;
+
+ for (i = 0; i < CUR_ALT_SETTING(usb_intf)->desc.bNumEndpoints; i++) {
+ ep = &(CUR_ALT_SETTING(usb_intf)->endpoint[i]).desc;
+ if (i >= intf->bNumEndpoints) {
+ ERROR("intf %p has only %d endpoints, "
+ "ignoring endpoints above %d",
+ intf, intf->bNumEndpoints, i);
+ break;
+ }
+ pipe = &intf->pipes[i];
+
+ if (pipe->flags & USBD_PF_CHANGE_MAX_PACKET)
+ USBTRACE("pkt_sz: %d: %d", pipe->wMaxPacketSize,
+ pipe->max_tx_size);
+ USBTRACE("driver wants max_tx_size to %d",
+ pipe->max_tx_size);
+
+ pipe->wMaxPacketSize = le16_to_cpu(ep->wMaxPacketSize);
+ pipe->bEndpointAddress = ep->bEndpointAddress;
+ pipe->type = ep->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
+ if (pipe->type == UsbdPipeTypeInterrupt) {
+ /* Windows and Linux differ in how the
+ * bInterval is interpretted */
+ /* for low speed:
+ interval (Windows) -> frames per ms (Linux)
+ 0 to 15 -> 8
+ 16 to 35 -> 16
+ 36 to 255 -> 32
+
+ for full speed: interval -> frames per ms
+ 1 -> 1
+ 2 to 3 -> 2
+ 4 to 7 -> 4
+ 8 to 15 -> 8
+ 16 to 31 -> 16
+ 32 to 255 -> 32
+
+ for high speed: interval -> microframes
+ 1 -> 1
+ 2 -> 2
+ 3 -> 4
+ 4 -> 8
+ 5 -> 16
+ 6 -> 32
+ 7 to 255 -> 32
+ */
+ if (wd->usb.udev->speed == USB_SPEED_LOW)
+ pipe->bInterval = ep->bInterval + 5;
+ else if (wd->usb.udev->speed == USB_SPEED_FULL)
+ pipe->bInterval = ep->bInterval;
+ else {
+ int j, k;
+ for (j = k = 1; j < ep->bInterval; k++)
+ j *= 2;
+ pipe->bInterval = k;
+ }
+ }
+ pipe->handle = ep;
+ USBTRACE("%d: ep 0x%x, type %d, pkt_sz %d, intv %d (%d),"
+ "type: %d, handle %p", i, ep->bEndpointAddress,
+ ep->bmAttributes, pipe->wMaxPacketSize, ep->bInterval,
+ pipe->bInterval, pipe->type, pipe->handle);
+ }
+}
+
+static USBD_STATUS wrap_select_configuration(struct wrap_device *wd,
+ union nt_urb *nt_urb,
+ struct irp *irp)
+{
+ int i, ret;
+ struct usbd_select_configuration *sel_conf;
+ struct usb_device *udev;
+ struct usbd_interface_information *intf;
+ struct usb_config_descriptor *config;
+ struct usb_interface *usb_intf;
+
+ udev = wd->usb.udev;
+ sel_conf = &nt_urb->select_conf;
+ config = sel_conf->config;
+ USBTRACE("%p", config);
+ if (config == NULL) {
+ kill_all_urbs(wd, 1);
+ ret = usb_reset_configuration(udev);
+ return wrap_urb_status(ret);
+ }
+
+ USBTRACE("conf: %d, type: %d, length: %d, numif: %d, attr: %08x",
+ config->bConfigurationValue, config->bDescriptorType,
+ config->wTotalLength, config->bNumInterfaces,
+ config->bmAttributes);
+ ret = usb_control_msg(udev, usb_sndctrlpipe(udev, 0),
+ USB_REQ_SET_CONFIGURATION, 0,
+ config->bConfigurationValue, 0,
+ NULL, 0, USB_CTRL_SET_TIMEOUT);
+ if (ret < 0) {
+ ERROR("ret: %d", ret);
+ return wrap_urb_status(ret);
+ }
+ sel_conf->handle = udev->actconfig;
+ intf = &sel_conf->intf;
+ for (i = 0; i < config->bNumInterfaces && intf->bLength > 0;
+ i++, intf = (((void *)intf) + intf->bLength)) {
+
+ USBTRACE("intf: %d, alt setting: %d",
+ intf->bInterfaceNumber, intf->bAlternateSetting);
+ ret = usb_set_interface(udev, intf->bInterfaceNumber,
+ intf->bAlternateSetting);
+ if (ret < 0) {
+ ERROR("failed with %d", ret);
+ return wrap_urb_status(ret);
+ }
+ usb_intf = usb_ifnum_to_if(udev, intf->bInterfaceNumber);
+ if (!usb_intf) {
+ ERROR("couldn't obtain ifnum");
+ return USBD_STATUS_REQUEST_FAILED;
+ }
+ USBTRACE("intf: %p, num ep: %d", intf, intf->bNumEndpoints);
+ set_intf_pipe_info(wd, usb_intf, intf);
+ }
+ return USBD_STATUS_SUCCESS;
+}
+
+static USBD_STATUS wrap_select_interface(struct wrap_device *wd,
+ union nt_urb *nt_urb,
+ struct irp *irp)
+{
+ int ret;
+ struct usbd_select_interface *sel_intf;
+ struct usb_device *udev;
+ struct usbd_interface_information *intf;
+ struct usb_interface *usb_intf;
+
+ udev = wd->usb.udev;
+ sel_intf = &nt_urb->select_intf;
+ intf = &sel_intf->intf;
+
+ ret = usb_set_interface(udev, intf->bInterfaceNumber,
+ intf->bAlternateSetting);
+ if (ret < 0) {
+ ERROR("failed with %d", ret);
+ return wrap_urb_status(ret);
+ }
+ usb_intf = usb_ifnum_to_if(udev, intf->bInterfaceNumber);
+ if (!usb_intf) {
+ ERROR("couldn't get interface information");
+ return USBD_STATUS_REQUEST_FAILED;
+ }
+ USBTRACE("intf: %p, num ep: %d", usb_intf, intf->bNumEndpoints);
+ set_intf_pipe_info(wd, usb_intf, intf);
+ return USBD_STATUS_SUCCESS;
+}
+
+static int wrap_usb_get_string(struct usb_device *udev, unsigned short langid,
+ unsigned char index, void *buf, int size)
+{
+ int i, ret;
+ /* if langid is 0, return array of langauges supported in
+ * buf */
+ for (i = 0; i < 3; i++) {
+ ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
+ USB_REQ_GET_DESCRIPTOR, USB_DIR_IN,
+ (USB_DT_STRING << 8) + index, langid,
+ buf, size, USB_CTRL_GET_TIMEOUT);
+ if (ret > 0 || ret == -EPIPE)
+ break;
+ }
+ return ret;
+}
+
+static USBD_STATUS wrap_get_descriptor(struct wrap_device *wd,
+ union nt_urb *nt_urb, struct irp *irp)
+{
+ struct usbd_control_descriptor_request *control_desc;
+ int ret = 0;
+ struct usb_device *udev;
+
+ udev = wd->usb.udev;
+ control_desc = &nt_urb->control_desc;
+ USBTRACE("desctype = %d, descindex = %d, transfer_buffer = %p,"
+ "transfer_buffer_length = %d", control_desc->desc_type,
+ control_desc->index, control_desc->transfer_buffer,
+ control_desc->transfer_buffer_length);
+
+ if (control_desc->desc_type == USB_DT_STRING) {
+ USBTRACE("langid: %x", control_desc->language_id);
+ ret = wrap_usb_get_string(udev, control_desc->language_id,
+ control_desc->index,
+ control_desc->transfer_buffer,
+ control_desc->transfer_buffer_length);
+ } else {
+ ret = usb_get_descriptor(udev, control_desc->desc_type,
+ control_desc->index,
+ control_desc->transfer_buffer,
+ control_desc->transfer_buffer_length);
+ }
+ if (ret < 0) {
+ USBTRACE("request %d failed: %d", control_desc->desc_type, ret);
+ control_desc->transfer_buffer_length = 0;
+ return wrap_urb_status(ret);
+ } else {
+ USBTRACE("ret: %08x", ret);
+ control_desc->transfer_buffer_length = ret;
+ irp->io_status.info = ret;
+ return USBD_STATUS_SUCCESS;
+ }
+}
+
+static USBD_STATUS wrap_process_nt_urb(struct irp *irp)
+{
+ union nt_urb *nt_urb;
+ struct usb_device *udev;
+ USBD_STATUS status;
+ struct wrap_device *wd;
+
+ wd = IRP_WRAP_DEVICE(irp);
+ udev = wd->usb.udev;
+ nt_urb = IRP_URB(irp);
+ USBENTER("nt_urb = %p, irp = %p, length = %d, function = %x",
+ nt_urb, irp, nt_urb->header.length, nt_urb->header.function);
+
+ DUMP_IRP(irp);
+ switch (nt_urb->header.function) {
+ /* bulk/int and vendor/class urbs are submitted to
+ * Linux USB core; if the call is sucessful, urb's
+ * completion worker will return IRP later */
+ case URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
+ USBTRACE("submitting bulk/int irp: %p", irp);
+ status = wrap_bulk_or_intr_trans(irp);
+ break;
+
+ case URB_FUNCTION_VENDOR_DEVICE:
+ case URB_FUNCTION_VENDOR_INTERFACE:
+ case URB_FUNCTION_VENDOR_ENDPOINT:
+ case URB_FUNCTION_VENDOR_OTHER:
+ case URB_FUNCTION_CLASS_DEVICE:
+ case URB_FUNCTION_CLASS_INTERFACE:
+ case URB_FUNCTION_CLASS_ENDPOINT:
+ case URB_FUNCTION_CLASS_OTHER:
+ USBTRACE("submitting vendor/class irp: %p", irp);
+ status = wrap_vendor_or_class_req(irp);
+ break;
+
+ /* rest are synchronous */
+ case URB_FUNCTION_SELECT_CONFIGURATION:
+ status = wrap_select_configuration(wd, nt_urb, irp);
+ NT_URB_STATUS(nt_urb) = status;
+ break;
+
+ case URB_FUNCTION_SELECT_INTERFACE:
+ status = wrap_select_interface(wd, nt_urb, irp);
+ NT_URB_STATUS(nt_urb) = status;
+ break;
+
+ case URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE:
+ status = wrap_get_descriptor(wd, nt_urb, irp);
+ NT_URB_STATUS(nt_urb) = status;
+ break;
+
+ case URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL:
+ status = wrap_reset_pipe(udev, irp);
+ NT_URB_STATUS(nt_urb) = status;
+ break;
+
+ case URB_FUNCTION_ABORT_PIPE:
+ status = wrap_abort_pipe(udev, irp);
+ break;
+
+ case URB_FUNCTION_SET_FEATURE_TO_DEVICE:
+ case URB_FUNCTION_SET_FEATURE_TO_INTERFACE:
+ case URB_FUNCTION_SET_FEATURE_TO_ENDPOINT:
+ case URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE:
+ case URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE:
+ case URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT:
+ status = wrap_set_clear_feature(udev, irp);
+ break;
+
+ case URB_FUNCTION_GET_STATUS_FROM_DEVICE:
+ case URB_FUNCTION_GET_STATUS_FROM_INTERFACE:
+ case URB_FUNCTION_GET_STATUS_FROM_ENDPOINT:
+ status = wrap_get_status_request(udev, irp);
+ break;
+
+ default:
+ ERROR("function %x not implemented", nt_urb->header.function);
+ status = NT_URB_STATUS(nt_urb) = USBD_STATUS_NOT_SUPPORTED;
+ break;
+ }
+ USBTRACE("status: %08X", status);
+ return status;
+}
+
+static USBD_STATUS wrap_reset_port(struct irp *irp)
+{
+ no_warn_unused int ret, lock = 0;
+ struct wrap_device *wd;
+
+ wd = IRP_WRAP_DEVICE(irp);
+ USBENTER("%p, %p", wd, wd->usb.udev);
+ lock = usb_lock_device_for_reset(wd->usb.udev, wd->usb.intf);
+ if (lock < 0) {
+ WARNING("locking failed: %d", lock);
+// return wrap_urb_status(lock);
+ return USBD_STATUS_SUCCESS;
+ }
+ ret = usb_reset_device(wd->usb.udev);
+ if (ret < 0)
+ USBTRACE("reset failed: %d", ret);
+ /* TODO: should reconfigure? */
+ if (lock)
+ usb_unlock_device(wd->usb.udev);
+// return wrap_urb_status(ret);
+ return USBD_STATUS_SUCCESS;
+}
+
+static USBD_STATUS wrap_get_port_status(struct irp *irp)
+{
+ struct wrap_device *wd;
+ ULONG *status;
+ enum usb_device_state state;
+
+ wd = IRP_WRAP_DEVICE(irp);
+ USBENTER("%p, %p", wd, wd->usb.udev);
+ status = IoGetCurrentIrpStackLocation(irp)->params.others.arg1;
+ state = wd->usb.udev->state;
+ if (state != USB_STATE_NOTATTACHED &&
+ state != USB_STATE_SUSPENDED) {
+ *status |= USBD_PORT_CONNECTED;
+ if (state == USB_STATE_CONFIGURED)
+ *status |= USBD_PORT_ENABLED;
+ }
+ USBTRACE("state: %d, *status: %08X", state, *status);
+ return USBD_STATUS_SUCCESS;
+}
+
+NTSTATUS wrap_submit_irp(struct device_object *pdo, struct irp *irp)
+{
+ struct io_stack_location *irp_sl;
+ struct wrap_device *wd;
+ USBD_STATUS status;
+ struct usbd_idle_callback *idle_callback;
+
+ USBENTER("%p, %p", pdo, irp);
+ wd = pdo->reserved;
+ if (wd->usb.intf == NULL) {
+ USBTRACE("%p", irp);
+ irp->io_status.status = STATUS_DEVICE_REMOVED;
+ irp->io_status.info = 0;
+ USBEXIT(return STATUS_DEVICE_REMOVED);
+ }
+ IRP_WRAP_DEVICE(irp) = wd;
+ irp_sl = IoGetCurrentIrpStackLocation(irp);
+ switch (irp_sl->params.dev_ioctl.code) {
+ case IOCTL_INTERNAL_USB_SUBMIT_URB:
+ status = wrap_process_nt_urb(irp);
+ break;
+ case IOCTL_INTERNAL_USB_RESET_PORT:
+ status = wrap_reset_port(irp);
+ break;
+ case IOCTL_INTERNAL_USB_GET_PORT_STATUS:
+ status = wrap_get_port_status(irp);
+ break;
+ case IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION:
+ idle_callback = irp_sl->params.dev_ioctl.type3_input_buf;
+ USBTRACE("suspend function: %p", idle_callback->callback);
+ status = USBD_STATUS_NOT_SUPPORTED;
+ break;
+ default:
+ ERROR("ioctl %08X NOT IMPLEMENTED",
+ irp_sl->params.dev_ioctl.code);
+ status = USBD_STATUS_NOT_SUPPORTED;
+ break;
+ }
+
+ USBTRACE("status: %08X", status);
+ if (status == USBD_STATUS_PENDING) {
+ /* don't touch this IRP - it may have been already
+ * completed/returned */
+ return STATUS_PENDING;
+ } else {
+ irp->io_status.status = nt_urb_irp_status(status);
+ if (status != USBD_STATUS_SUCCESS)
+ irp->io_status.info = 0;
+ USBEXIT(return irp->io_status.status);
+ }
+}
+
+/* TODO: The example on msdn in reference section suggests that second
+ * argument should be an array of usbd_interface_information, but
+ * description and examples elsewhere suggest that it should be
+ * usbd_interface_list_entry structre. Which is correct? */
+
+wstdcall union nt_urb *WIN_FUNC(USBD_CreateConfigurationRequestEx,2)
+ (struct usb_config_descriptor *config,
+ struct usbd_interface_list_entry *intf_list)
+{
+ int size, i, n;
+ struct usbd_interface_information *intf;
+ struct usbd_pipe_information *pipe;
+ struct usb_interface_descriptor *intf_desc;
+ struct usbd_select_configuration *select_conf;
+
+ USBENTER("config = %p, intf_list = %p", config, intf_list);
+
+ /* calculate size required; select_conf already has space for
+ * one intf structure */
+ size = sizeof(*select_conf) - sizeof(*intf);
+ for (n = 0; n < config->bNumInterfaces; n++) {
+ i = intf_list[n].intf_desc->bNumEndpoints;
+ /* intf already has space for one pipe */
+ size += sizeof(*intf) + (i - 1) * sizeof(*pipe);
+ }
+ /* don't use kmalloc - driver frees it with ExFreePool */
+ select_conf = ExAllocatePoolWithTag(NonPagedPool, size,
+ POOL_TAG('L', 'U', 'S', 'B'));
+ if (!select_conf) {
+ WARNING("couldn't allocate memory");
+ return NULL;
+ }
+ memset(select_conf, 0, size);
+ intf = &select_conf->intf;
+ select_conf->handle = config;
+ for (n = 0; n < config->bNumInterfaces && intf_list[n].intf_desc; n++) {
+ /* initialize 'intf' fields in intf_list so they point
+ * to appropriate entry; these may be read/written by
+ * driver after this function returns */
+ intf_list[n].intf = intf;
+ intf_desc = intf_list[n].intf_desc;
+
+ i = intf_desc->bNumEndpoints;
+ intf->bLength = sizeof(*intf) + (i - 1) * sizeof(*pipe);
+
+ intf->bInterfaceNumber = intf_desc->bInterfaceNumber;
+ intf->bAlternateSetting = intf_desc->bAlternateSetting;
+ intf->bInterfaceClass = intf_desc->bInterfaceClass;
+ intf->bInterfaceSubClass = intf_desc->bInterfaceSubClass;
+ intf->bInterfaceProtocol = intf_desc->bInterfaceProtocol;
+ intf->bNumEndpoints = intf_desc->bNumEndpoints;
+
+ pipe = &intf->pipes[0];
+ for (i = 0; i < intf->bNumEndpoints; i++) {
+ memset(&pipe[i], 0, sizeof(*pipe));
+ pipe[i].max_tx_size =
+ USBD_DEFAULT_MAXIMUM_TRANSFER_SIZE;
+ }
+ intf->handle = intf_desc;
+ intf = (((void *)intf) + intf->bLength);
+ }
+ select_conf->header.function = URB_FUNCTION_SELECT_CONFIGURATION;
+ select_conf->header.length = size;
+ select_conf->config = config;
+ USBEXIT(return (union nt_urb *)select_conf);
+}
+
+WIN_SYMBOL_MAP("_USBD_CreateConfigurationRequestEx@8", USBD_CreateConfigurationRequestEx)
+
+wstdcall struct usb_interface_descriptor *
+WIN_FUNC(USBD_ParseConfigurationDescriptorEx,7)
+ (struct usb_config_descriptor *config, void *start,
+ LONG bInterfaceNumber, LONG bAlternateSetting, LONG bInterfaceClass,
+ LONG bInterfaceSubClass, LONG bInterfaceProtocol)
+{
+ void *pos;
+ struct usb_interface_descriptor *intf;
+
+ USBENTER("config = %p, start = %p, ifnum = %d, alt_setting = %d,"
+ " class = %d, subclass = %d, proto = %d", config, start,
+ bInterfaceNumber, bAlternateSetting, bInterfaceClass,
+ bInterfaceSubClass, bInterfaceProtocol);
+
+ for (pos = start;
+ pos < ((void *)config + le16_to_cpu(config->wTotalLength));
+ pos += intf->bLength) {
+
+ intf = pos;
+
+ if ((intf->bDescriptorType == USB_DT_INTERFACE) &&
+ ((bInterfaceNumber == -1) ||
+ (intf->bInterfaceNumber == bInterfaceNumber)) &&
+ ((bAlternateSetting == -1) ||
+ (intf->bAlternateSetting == bAlternateSetting)) &&
+ ((bInterfaceClass == -1) ||
+ (intf->bInterfaceClass == bInterfaceClass)) &&
+ ((bInterfaceSubClass == -1) ||
+ (intf->bInterfaceSubClass == bInterfaceSubClass)) &&
+ ((bInterfaceProtocol == -1) ||
+ (intf->bInterfaceProtocol == bInterfaceProtocol))) {
+ USBTRACE("selected interface = %p", intf);
+ USBEXIT(return intf);
+ }
+ }
+ USBEXIT(return NULL);
+}
+
+WIN_SYMBOL_MAP("_USBD_ParseConfigurationDescriptorEx@28", USBD_ParseConfigurationDescriptorEx)
+
+wstdcall union nt_urb *WIN_FUNC(USBD_CreateConfigurationRequest,2)
+ (struct usb_config_descriptor *config, USHORT *size)
+{
+ union nt_urb *nt_urb;
+ struct usbd_interface_list_entry intf_list[2];
+ struct usb_interface_descriptor *intf_desc;
+
+ USBENTER("config = %p, urb_size = %p", config, size);
+
+ intf_desc = USBD_ParseConfigurationDescriptorEx(config, config, -1, -1,
+ -1, -1, -1);
+ intf_list[0].intf_desc = intf_desc;
+ intf_list[0].intf = NULL;
+ intf_list[1].intf_desc = NULL;
+ intf_list[1].intf = NULL;
+ nt_urb = USBD_CreateConfigurationRequestEx(config, intf_list);
+ if (!nt_urb)
+ return NULL;
+
+ *size = nt_urb->select_conf.header.length;
+ USBEXIT(return nt_urb);
+}
+
+wstdcall struct usb_interface_descriptor *
+WIN_FUNC(USBD_ParseConfigurationDescriptor,3)
+ (struct usb_config_descriptor *config, UCHAR bInterfaceNumber,
+ UCHAR bAlternateSetting)
+{
+ return USBD_ParseConfigurationDescriptorEx(config, config,
+ bInterfaceNumber,
+ bAlternateSetting,
+ -1, -1, -1);
+}
+
+wstdcall usb_common_descriptor_t *WIN_FUNC(USBD_ParseDescriptors,4)
+ (void *buf, ULONG length, void *start, LONG type)
+{
+ usb_common_descriptor_t *descr = start;
+
+ while ((void *)descr < buf + length) {
+ if (descr->bDescriptorType == type)
+ return descr;
+ if (descr->bLength == 0)
+ break;
+ descr = (void *)descr + descr->bLength;
+ }
+ USBEXIT(return NULL);
+}
+
+WIN_SYMBOL_MAP("_USBD_ParseDescriptors@16", USBD_ParseDescriptors)
+
+wstdcall void WIN_FUNC(USBD_GetUSBDIVersion,1)
+ (struct usbd_version_info *version_info)
+{
+ /* this function is obsolete in Windows XP */
+ if (version_info) {
+ version_info->usbdi_version = USBDI_VERSION_XP;
+ /* TODO: how do we get this correctly? */
+ version_info->supported_usb_version = 0x110;
+ }
+ USBEXIT(return);
+}
+
+wstdcall void
+USBD_InterfaceGetUSBDIVersion(void *context,
+ struct usbd_version_info *version_info,
+ ULONG *hcd_capa)
+{
+ struct wrap_device *wd = context;
+
+ if (version_info) {
+ version_info->usbdi_version = USBDI_VERSION_XP;
+ if (wd->usb.udev->speed == USB_SPEED_HIGH)
+ version_info->supported_usb_version = 0x200;
+ else
+ version_info->supported_usb_version = 0x110;
+ }
+ *hcd_capa = USB_HCD_CAPS_SUPPORTS_RT_THREADS;
+ USBEXIT(return);
+}
+
+wstdcall BOOLEAN USBD_InterfaceIsDeviceHighSpeed(void *context)
+{
+ struct wrap_device *wd = context;
+
+ USBTRACE("wd: %p", wd);
+ if (wd->usb.udev->speed == USB_SPEED_HIGH)
+ USBEXIT(return TRUE);
+ else
+ USBEXIT(return FALSE);
+}
+
+wstdcall void USBD_InterfaceReference(void *context)
+{
+ USBTRACE("%p", context);
+ TODO();
+}
+
+wstdcall void USBD_InterfaceDereference(void *context)
+{
+ USBTRACE("%p", context);
+ TODO();
+}
+
+wstdcall NTSTATUS USBD_InterfaceQueryBusTime(void *context, ULONG *frame)
+{
+ struct wrap_device *wd = context;
+
+ *frame = usb_get_current_frame_number(wd->usb.udev);
+ USBEXIT(return STATUS_SUCCESS);
+}
+
+wstdcall NTSTATUS USBD_InterfaceSubmitIsoOutUrb(void *context,
+ union nt_urb *nt_urb)
+{
+ /* TODO: implement this */
+ TODO();
+ USBEXIT(return STATUS_NOT_IMPLEMENTED);
+}
+
+wstdcall NTSTATUS
+USBD_InterfaceQueryBusInformation(void *context, ULONG level, void *buf,
+ ULONG *buf_length, ULONG *buf_actual_length)
+{
+ struct wrap_device *wd = context;
+ struct usb_bus_information_level *bus_info;
+ struct usb_bus *bus;
+
+ bus = wd->usb.udev->bus;
+ bus_info = buf;
+ TODO();
+ USBEXIT(return STATUS_NOT_IMPLEMENTED);
+}
+
+wstdcall NTSTATUS
+USBD_InterfaceLogEntry(void *context, ULONG driver_tag, ULONG enum_tag,
+ ULONG p1, ULONG p2)
+{
+ ERROR("%p, %x, %x, %x, %x", context, driver_tag, enum_tag, p1, p2);
+ USBEXIT(return STATUS_SUCCESS);
+}
+
+int usb_init(void)
+{
+ InitializeListHead(&wrap_urb_complete_list);
+ spin_lock_init(&wrap_urb_complete_list_lock);
+ initialize_work(&wrap_urb_complete_work, wrap_urb_complete_worker, NULL);
+#ifdef USB_DEBUG
+ urb_id = 0;
+#endif
+ return 0;
+}
+
+void usb_exit(void)
+{
+ USBEXIT(return);
+}
+
+int usb_init_device(struct wrap_device *wd)
+{
+ InitializeListHead(&wd->usb.wrap_urb_list);
+ wd->usb.num_alloc_urbs = 0;
+ USBEXIT(return 0);
+}
+
+void usb_exit_device(struct wrap_device *wd)
+{
+ kill_all_urbs(wd, 0);
+ USBEXIT(return);
+}
diff --git a/ubuntu/ndiswrapper/usb.h b/ubuntu/ndiswrapper/usb.h
new file mode 100644
index 00000000000..fedfdb8499d
--- /dev/null
+++ b/ubuntu/ndiswrapper/usb.h
@@ -0,0 +1,376 @@
+/*
+ * Copyright (C) 2004 Jan Kiszka
+ * Copyright (C) 2005 Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef _USB_H_
+#define _USB_H_
+
+#include "ntoskernel.h"
+
+#define IOCTL_INTERNAL_USB_SUBMIT_URB 0x00220003
+#define IOCTL_INTERNAL_USB_RESET_PORT 0x00220007
+#define IOCTL_INTERNAL_USB_GET_PORT_STATUS 0x00220013
+#define IOCTL_INTERNAL_USB_CYCLE_PORT 0x0022001F
+#define IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION 0x00220027
+
+#define URB_FUNCTION_SELECT_CONFIGURATION 0x0000
+#define URB_FUNCTION_SELECT_INTERFACE 0x0001
+#define URB_FUNCTION_ABORT_PIPE 0x0002
+#define URB_FUNCTION_TAKE_FRAME_LENGTH_CONTROL 0x0003
+#define URB_FUNCTION_RELEASE_FRAME_LENGTH_CONTROL 0x0004
+#define URB_FUNCTION_GET_FRAME_LENGTH 0x0005
+#define URB_FUNCTION_SET_FRAME_LENGTH 0x0006
+#define URB_FUNCTION_GET_CURRENT_FRAME_NUMBER 0x0007
+#define URB_FUNCTION_CONTROL_TRANSFER 0x0008
+#define URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER 0x0009
+#define URB_FUNCTION_ISOCH_TRANSFER 0x000A
+#define URB_FUNCTION_GET_DESCRIPTOR_FROM_DEVICE 0x000B
+#define URB_FUNCTION_SET_DESCRIPTOR_TO_DEVICE 0x000C
+#define URB_FUNCTION_SET_FEATURE_TO_DEVICE 0x000D
+#define URB_FUNCTION_SET_FEATURE_TO_INTERFACE 0x000E
+#define URB_FUNCTION_SET_FEATURE_TO_ENDPOINT 0x000F
+#define URB_FUNCTION_CLEAR_FEATURE_TO_DEVICE 0x0010
+#define URB_FUNCTION_CLEAR_FEATURE_TO_INTERFACE 0x0011
+#define URB_FUNCTION_CLEAR_FEATURE_TO_ENDPOINT 0x0012
+#define URB_FUNCTION_GET_STATUS_FROM_DEVICE 0x0013
+#define URB_FUNCTION_GET_STATUS_FROM_INTERFACE 0x0014
+#define URB_FUNCTION_GET_STATUS_FROM_ENDPOINT 0x0015
+#define URB_FUNCTION_RESERVED_0X0016 0x0016
+#define URB_FUNCTION_VENDOR_DEVICE 0x0017
+#define URB_FUNCTION_VENDOR_INTERFACE 0x0018
+#define URB_FUNCTION_VENDOR_ENDPOINT 0x0019
+#define URB_FUNCTION_CLASS_DEVICE 0x001A
+#define URB_FUNCTION_CLASS_INTERFACE 0x001B
+#define URB_FUNCTION_CLASS_ENDPOINT 0x001C
+#define URB_FUNCTION_RESERVE_0X001D 0x001D
+#define URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL 0x001E
+#define URB_FUNCTION_CLASS_OTHER 0x001F
+#define URB_FUNCTION_VENDOR_OTHER 0x0020
+#define URB_FUNCTION_GET_STATUS_FROM_OTHER 0x0021
+#define URB_FUNCTION_CLEAR_FEATURE_TO_OTHER 0x0022
+#define URB_FUNCTION_SET_FEATURE_TO_OTHER 0x0023
+#define URB_FUNCTION_GET_DESCRIPTOR_FROM_ENDPOINT 0x0024
+#define URB_FUNCTION_SET_DESCRIPTOR_TO_ENDPOINT 0x0025
+#define URB_FUNCTION_GET_CONFIGURATION 0x0026
+#define URB_FUNCTION_GET_INTERFACE 0x0027
+#define URB_FUNCTION_GET_DESCRIPTOR_FROM_INTERFACE 0x0028
+#define URB_FUNCTION_SET_DESCRIPTOR_TO_INTERFACE 0x0029
+#define URB_FUNCTION_GET_MS_FEATURE_DESCRIPTOR 0x002A
+#define URB_FUNCTION_RESERVE_0X002B 0x002B
+#define URB_FUNCTION_RESERVE_0X002C 0x002C
+#define URB_FUNCTION_RESERVE_0X002D 0x002D
+#define URB_FUNCTION_RESERVE_0X002E 0x002E
+#define URB_FUNCTION_RESERVE_0X002F 0x002F
+// USB 2.0 calls start at 0x0030
+#define URB_FUNCTION_SYNC_RESET_PIPE 0x0030
+#define URB_FUNCTION_SYNC_CLEAR_STALL 0x0031
+#define URB_FUNCTION_CONTROL_TRANSFER_EX 0x0032
+
+#define USBD_PF_CHANGE_MAX_PACKET 0x00000001
+
+#define USBD_TRANSFER_DIRECTION_OUT 0
+#define USBD_TRANSFER_DIRECTION_IN 1
+
+#define USBD_SHORT_TRANSFER_OK 0x00000002
+#define USBD_START_ISO_TRANSFER_ASAP 0x00000004
+#define USBD_DEFAULT_PIPE_TRANSFER 0x00000008
+
+#define USBD_TRANSFER_DIRECTION(flags) \
+ ((flags) & USBD_TRANSFER_DIRECTION_IN)
+
+enum pipe_type {UsbdPipeTypeControl = USB_ENDPOINT_XFER_CONTROL,
+ UsbdPipeTypeIsochronous = USB_ENDPOINT_XFER_ISOC,
+ UsbdPipeTypeBulk = USB_ENDPOINT_XFER_BULK,
+ UsbdPipeTypeInterrupt = USB_ENDPOINT_XFER_INT};
+
+#define USBD_IS_BULK_PIPE(pipe_handle) \
+ (((pipe_handle)->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) \
+ == USB_ENDPOINT_XFER_BULK)
+
+#define USBD_IS_INT_PIPE(pipe_handle) \
+ (((pipe_handle)->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK) \
+ == USB_ENDPOINT_XFER_INT)
+
+#define USBD_PORT_ENABLED 0x00000001
+#define USBD_PORT_CONNECTED 0x00000002
+
+typedef LONG USBD_STATUS;
+
+#define USBD_STATUS_SUCCESS 0x0
+#define USBD_STATUS_PENDING 0x40000000
+#define USBD_STATUS_CANCELED 0x00010000
+
+#define USBD_STATUS_CRC 0xC0000001
+#define USBD_STATUS_BTSTUFF 0xC0000002
+#define USBD_STATUS_DATA_TOGGLE_MISMATCH 0xC0000003
+#define USBD_STATUS_STALL_PID 0xC0000004
+#define USBD_STATUS_DEV_NOT_RESPONDING 0xC0000005
+#define USBD_STATUS_PID_CHECK_FAILURE 0xC0000006
+#define USBD_STATUS_UNEXPECTED_PID 0xC0000007
+#define USBD_STATUS_DATA_OVERRUN 0xC0000008
+#define USBD_STATUS_DATA_UNDERRUN 0xC0000009
+#define USBD_STATUS_RESERVED1 0xC000000A
+#define USBD_STATUS_RESERVED2 0xC000000B
+#define USBD_STATUS_BUFFER_OVERRUN 0xC000000C
+#define USBD_STATUS_BUFFER_UNDERRUN 0xC000000D
+#define USBD_STATUS_NOT_ACCESSED 0xC000000F
+#define USBD_STATUS_FIFO 0xC0000010
+#define USBD_STATUS_XACT_ERROR 0xC0000011
+#define USBD_STATUS_BABBLE_DETECTED 0xC0000012
+#define USBD_STATUS_DATA_BUFFER_ERROR 0xC0000013
+
+#define USBD_STATUS_NOT_SUPPORTED 0xC0000E00
+#define USBD_STATUS_BUFFER_TOO_SMALL 0xC0003000
+#define USBD_STATUS_TIMEOUT 0xC0006000
+#define USBD_STATUS_DEVICE_GONE 0xC0007000
+
+#define USBD_STATUS_NO_MEMORY 0x80000100
+#define USBD_STATUS_INVALID_URB_FUNCTION 0x80000200
+#define USBD_STATUS_INVALID_PARAMETER 0x80000300
+#define USBD_STATUS_REQUEST_FAILED 0x80000500
+#define USBD_STATUS_INVALID_PIPE_HANDLE 0x80000600
+#define USBD_STATUS_ERROR_SHORT_TRANSFER 0x80000900
+
+#define USBD_DEFAULT_MAXIMUM_TRANSFER_SIZE PAGE_SIZE
+
+struct urb_hcd_area {
+ void *reserved8[8];
+};
+
+typedef struct usb_endpoint_descriptor *usbd_pipe_handle;
+typedef struct usb_descriptor_header usb_common_descriptor_t;
+
+struct usbd_pipe_information {
+ USHORT wMaxPacketSize;
+ UCHAR bEndpointAddress;
+ UCHAR bInterval;
+ enum pipe_type type;
+ usbd_pipe_handle handle;
+ ULONG max_tx_size;
+ ULONG flags;
+};
+
+struct usbd_interface_information {
+ USHORT bLength;
+ UCHAR bInterfaceNumber;
+ UCHAR bAlternateSetting;
+ UCHAR bInterfaceClass;
+ UCHAR bInterfaceSubClass;
+ UCHAR bInterfaceProtocol;
+ UCHAR reserved;
+ void *handle;
+ ULONG bNumEndpoints;
+ struct usbd_pipe_information pipes[1];
+};
+
+struct usbd_interface_list_entry {
+ struct usb_interface_descriptor *intf_desc;
+ struct usbd_interface_information *intf;
+};
+
+struct nt_urb_header {
+ USHORT length;
+ USHORT function;
+ USBD_STATUS status;
+ void *usbd_dev_handle;
+ ULONG usbd_flags;
+};
+
+struct usbd_select_interface {
+ struct nt_urb_header header;
+ void *handle;
+ struct usbd_interface_information intf;
+};
+
+struct usbd_select_configuration {
+ struct nt_urb_header header;
+ struct usb_config_descriptor *config;
+ void *handle;
+ struct usbd_interface_information intf;
+};
+
+struct usbd_control_descriptor_request {
+ struct nt_urb_header header;
+ void *reserved;
+ ULONG reserved0;
+ ULONG transfer_buffer_length;
+ void *transfer_buffer;
+ struct mdl *mdl;
+ union nt_urb *urb_link;
+ struct urb_hcd_area hca;
+ USHORT reserved1;
+ UCHAR index;
+ UCHAR desc_type;
+ USHORT language_id;
+ USHORT reserved2;
+};
+
+struct usbd_bulk_or_intr_transfer {
+ struct nt_urb_header header;
+ usbd_pipe_handle pipe_handle;
+ ULONG transfer_flags;
+ ULONG transfer_buffer_length;
+ void *transfer_buffer;
+ struct mdl *mdl;
+ union nt_urb *urb_link;
+ struct urb_hcd_area hca;
+};
+
+struct usbd_pipe_request {
+ struct nt_urb_header header;
+ usbd_pipe_handle pipe_handle;
+};
+
+struct usbd_vendor_or_class_request {
+ struct nt_urb_header header;
+ void *reserved;
+ ULONG transfer_flags;
+ ULONG transfer_buffer_length;
+ void *transfer_buffer;
+ struct mdl *mdl;
+ union nt_urb *link;
+ struct urb_hcd_area hca;
+ UCHAR reserved_bits;
+ UCHAR request;
+ USHORT value;
+ USHORT index;
+ USHORT reserved1;
+};
+
+struct urb_control_feature_request {
+ struct nt_urb_header header;
+ void *reserved;
+ ULONG reserved2;
+ ULONG reserved3;
+ void *reserved4;
+ struct mdl *reserved5;
+ union nt_urb *link;
+ struct urb_hcd_area hca;
+ USHORT reserved0;
+ USHORT feature_selector;
+ USHORT index;
+ USHORT reserved1;
+};
+
+struct urb_control_get_status_request {
+ struct nt_urb_header header;
+ void *reserved;
+ ULONG reserved0;
+ ULONG transfer_buffer_length;
+ void *transfer_buffer;
+ struct mdl *mdl;
+ union nt_urb *link;
+ struct urb_hcd_area hca;
+ UCHAR reserved1[4];
+ USHORT index;
+ USHORT reserved2;
+};
+
+struct usbd_iso_packet_desc {
+ ULONG offset;
+ ULONG length;
+ USBD_STATUS status;
+};
+
+struct usbd_isochronous_transfer {
+ struct nt_urb_header header;
+ usbd_pipe_handle pipe_handle;
+ ULONG transfer_flags;
+ ULONG transfer_buffer_length;
+ void *transfer_buffer;
+ struct mdl *mdl;
+ union nt_urb *urb_link;
+ struct urb_hcd_area hca;
+ ULONG start_frame;
+ ULONG number_of_packets;
+ ULONG error_count;
+ struct usbd_iso_packet_desc iso_packet[1];
+};
+
+union nt_urb {
+ struct nt_urb_header header;
+ struct usbd_select_interface select_intf;
+ struct usbd_select_configuration select_conf;
+ struct usbd_bulk_or_intr_transfer bulk_int_transfer;
+ struct usbd_control_descriptor_request control_desc;
+ struct usbd_vendor_or_class_request vendor_class_request;
+ struct usbd_isochronous_transfer isochronous;
+ struct usbd_pipe_request pipe_req;
+ struct urb_control_feature_request feat_req;
+ struct urb_control_get_status_request status_req;
+};
+
+struct usbd_bus_interface_usbdi {
+ USHORT Size;
+ USHORT Version;
+ void *Context;
+ void *InterfaceReference;
+ void *InterfaceDereference;
+ void *GetUSBDIVersion;
+ void *QueryBusTime;
+ void *SubmitIsoOutUrb;
+ void *QueryBusInformation;
+ /* version 1 and above have following field */
+ void *IsDeviceHighSpeed;
+ /* version 2 (and above) have following field */
+ void *LogEntry;
+};
+
+struct usbd_bus_information_level {
+ ULONG TotalBandwidth;
+ ULONG ConsumedBandwidth;
+ /* level 1 and above have following fields */
+ ULONG ControllerNameLength;
+ wchar_t ControllerName[1];
+};
+
+#define USBDI_VERSION_XP 0x00000500 // Windows XP
+#define USB_HCD_CAPS_SUPPORTS_RT_THREADS 0x00000001
+#define USB_BUSIF_USBDI_VERSION_0 0x0000
+#define USB_BUSIF_USBDI_VERSION_1 0x0001
+#define USB_BUSIF_USBDI_VERSION_2 0x0002
+
+struct usbd_version_info {
+ ULONG usbdi_version;
+ ULONG supported_usb_version;
+};
+
+struct usbd_idle_callback {
+ void *callback;
+ void *context;
+};
+
+#define NT_URB_STATUS(nt_urb) ((nt_urb)->header.status)
+
+NTSTATUS wrap_submit_irp(struct device_object *pdo, struct irp *irp);
+void wrap_suspend_urbs(struct wrap_device *wd);
+void wrap_resume_urbs(struct wrap_device *wd);
+
+void USBD_InterfaceGetUSBDIVersion(void *context,
+ struct usbd_version_info *version_info,
+ ULONG *hcd_capa) wstdcall;
+BOOLEAN USBD_InterfaceIsDeviceHighSpeed(void *context) wstdcall;
+void USBD_InterfaceReference(void *context) wstdcall;
+void USBD_InterfaceDereference(void *context) wstdcall;
+NTSTATUS USBD_InterfaceQueryBusTime(void *context, ULONG *frame) wstdcall;
+NTSTATUS USBD_InterfaceSubmitIsoOutUrb(void *context,
+ union nt_urb *nt_urb) wstdcall;
+NTSTATUS USBD_InterfaceQueryBusInformation(void *context, ULONG level, void *buf,
+ ULONG *buf_length,
+ ULONG *buf_actual_length) wstdcall;
+NTSTATUS USBD_InterfaceLogEntry(void *context, ULONG driver_tag, ULONG enum_tag,
+ ULONG p1, ULONG p2) wstdcall;
+
+#endif /* USB_H */
diff --git a/ubuntu/ndiswrapper/win2lin_stubs.S b/ubuntu/ndiswrapper/win2lin_stubs.S
new file mode 100644
index 00000000000..1ccfd2d2e7a
--- /dev/null
+++ b/ubuntu/ndiswrapper/win2lin_stubs.S
@@ -0,0 +1,288 @@
+/*
+ * Copyright (C) 2005 Karl Vogel, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include <linux/linkage.h>
+
+#ifdef CONFIG_X86_64
+
+/*
+# Windows <---> Linux register usage conversion when calling functions
+# V = Volatile
+# NV = Non Volatile (needs to be saved)
+#
+# Win Lin
+# ---------------------------------------
+# Rax Return V Return V
+# Rbx NV NV
+# Rcx Arg1 V Arg4 V
+# Rdx Arg2 V Arg3 V
+# Rsi NV Arg2 V
+# Rdi NV Arg1 V
+# Rsp NV NV
+# Rbp NV NV
+# R8 Arg3 V Arg5 V
+# R9 Arg4 V Arg6 V
+# R10 V V
+# R11 V V
+# R12 NV NV
+# R13 NV NV
+# R14 NV NV
+# R15 NV NV
+#
+# In addition, Linux uses %rax to indicate number of SSE registers used
+# when variadic functions are called. Since there is no way to obtain this
+# from Windows, for now, we just assume this is 0 (hence %rax is cleared).
+#
+# Windows pushes arguments 5 and higher onto stack in case of integer
+# variables and 4 and higher in case of floating point variabes (passed
+# in SSE registers).
+
+In a windows function, the stackframe/registers look like this:
+
+# 0x0048 ....
+# 0x0040 arg8
+# 0x0038 arg7
+# 0x0030 arg6
+# 0x0028 arg5
+# 0x0020 shadow/spill space for arg4
+# 0x0018 shadow/spill space for arg3
+# 0x0010 shadow/spill space for arg2
+# 0x0008 shadow/spill space for arg1
+# 0x0000 ret
+
+# register spill space is same irrespective of number of arguments - even
+# if Windows function takes less than 4 arguments, 32 bytes above return
+# address is reserved for the function
+
+In Linux it should look like:
+
+# 0x0018 ....
+# 0x0010 arg8
+# 0x0008 arg7
+# 0x0000 ret
+
+*/
+
+#
+# setup for Windows to Linux function call
+#
+
+ .text
+
+.macro win2lin_prolog
+ push %rsi
+ push %rdi
+.endm
+
+.macro win2lin_epilog
+ pop %rdi
+ pop %rsi
+.endm
+
+# when Windows function calls Linux function, the function address is in %r10
+
+.macro call_lin_func
+ xor %rax, %rax # rax indicates number of SSE regs
+ call *%r10
+.endm
+
+# before prolog, 0(%rsp) is return address, 8(%rsp) would be arg1
+# (but it is in register) and so on, so n'th arg would be at n*8(%rsp)
+# for n > 4. But in prolog, we push 2 registers that are non-volaile in
+# Windows, but volatile in Linux. So after prolog, args are at (n+2)*8(%rsp)
+
+#define win2lin_win_arg(n) (n+2)*8(%rsp)
+
+#define win2lin_arg1 mov %rcx, %rdi
+#define win2lin_arg2 mov %rdx, %rsi
+#define win2lin_arg3 mov %r8, %rdx
+#define win2lin_arg4 mov %r9, %rcx
+#define win2lin_arg5 mov win2lin_win_arg(5), %r8
+#define win2lin_arg6 mov win2lin_win_arg(6), %r9
+
+ .type win2lin0, @function
+win2lin0:
+ win2lin_prolog
+ call_lin_func
+ win2lin_epilog
+ ret
+ .size win2lin0, .-win2lin0
+
+ .type win2lin1, @function
+win2lin1:
+ win2lin_prolog
+ win2lin_arg1
+ call_lin_func
+ win2lin_epilog
+ ret
+ .size win2lin1, .-win2lin1
+
+ .type win2lin2, @function
+win2lin2:
+ win2lin_prolog
+ win2lin_arg1
+ win2lin_arg2
+ call_lin_func
+ win2lin_epilog
+ ret
+ .size win2lin2, .-win2lin2
+
+ .type win2lin3, @function
+win2lin3:
+ win2lin_prolog
+ win2lin_arg1
+ win2lin_arg2
+ win2lin_arg3
+ call_lin_func
+ win2lin_epilog
+ ret
+ .size win2lin3, .-win2lin3
+
+ .type win2lin4, @function
+win2lin4:
+ win2lin_prolog
+ win2lin_arg1
+ win2lin_arg2
+ win2lin_arg3
+ win2lin_arg4
+ call_lin_func
+ win2lin_epilog
+ ret
+ .size win2lin4, .-win2lin4
+
+ .type win2lin5, @function
+win2lin5:
+ win2lin_prolog
+ win2lin_arg1
+ win2lin_arg2
+ win2lin_arg3
+ win2lin_arg4
+ win2lin_arg5
+ call_lin_func
+ win2lin_epilog
+ ret
+ .size win2lin5, .-win2lin5
+
+ .type win2lin6, @function
+win2lin6:
+ win2lin_prolog
+ win2lin_arg1
+ win2lin_arg2
+ win2lin_arg3
+ win2lin_arg4
+ win2lin_arg5
+ win2lin_arg6
+ call_lin_func
+ win2lin_epilog
+ ret
+ .size win2lin6, .-win2lin6
+
+# Allocate stack frame for Linux arguments before calling function.
+# First 6 args are passed through registers, so we need space for 7 and above.
+# The arguments should have been copied onto stack already.
+
+.macro call_lin_func_args n
+ sub $(\n-6)*8, %rsp
+ call_lin_func
+ add $(\n-6)*8, %rsp
+ .endm
+
+# m is index of Linux arg required, n is total number of args to function
+# After stack frame is allocated, Linux arg 7 should be at 0(%rsp),
+# arg 8 should be at 1*8(%rsp) and so on. So Linux arg m should be at (m-7)*8
+# Stack frame starts at -(n-6)*8(%rsp), so before stack frame is allocated
+# Linux arg m should be at (6-n+m-7)*8(%rsp)
+
+#define win2lin_lin_arg(m,n) (m-1-n)*8(%rsp)
+
+ .type win2lin7, @function
+win2lin7:
+ win2lin_prolog
+
+ win2lin_arg1
+ win2lin_arg2
+ win2lin_arg3
+ win2lin_arg4
+ win2lin_arg5
+ win2lin_arg6
+
+ # copy windows argument 7 onto stack for Linux function
+ mov win2lin_win_arg(7), %r11
+ mov %r11, win2lin_lin_arg(7,7)
+
+ call_lin_func_args(7)
+ win2lin_epilog
+ ret
+ .size win2lin7, .-win2lin7
+
+ .type win2lin8, @function
+win2lin8:
+ win2lin_prolog
+
+ win2lin_arg1
+ win2lin_arg2
+ win2lin_arg3
+ win2lin_arg4
+ win2lin_arg5
+ win2lin_arg6
+
+ # copy windows arguments 7 and 8 onto stack for Linux function
+ mov win2lin_win_arg(7), %r11
+ mov %r11, win2lin_lin_arg(7,8)
+ mov win2lin_win_arg(8), %r11
+ mov %r11, win2lin_lin_arg(8,8)
+
+ call_lin_func_args(8)
+ win2lin_epilog
+ ret
+ .size win2lin8, .-win2lin8
+
+ .type win2lin9, @function
+win2lin9:
+win2lin10:
+win2lin11:
+win2lin12:
+ win2lin_prolog
+
+ # since we destroy rsi and rdi here, first copy windows
+ # arguments 7 through 12 onto stack for Linux function
+ mov %rcx, %r11 # save rcx
+ lea win2lin_win_arg(7), %rsi # source (windows arg 7 and up)
+ lea win2lin_lin_arg(7,12), %rdi # = destination
+ mov $6, %rcx # 6 arguments
+ rep
+ movsq
+ mov %r11, %rcx # restore rcx
+
+ win2lin_arg1
+ win2lin_arg2
+ win2lin_arg3
+ win2lin_arg4
+ win2lin_arg5
+ win2lin_arg6
+
+ call_lin_func_args(12)
+ win2lin_epilog
+ ret
+ .size win2lin9, .-win2lin9
+
+#define win2lin(name, argc) \
+ENTRY(win2lin_ ## name ## _ ## argc) \
+ lea name(%rip), %r10 ; \
+ jmp win2lin ## argc
+
+#include "win2lin_stubs.h"
+
+#endif // CONFIG_X86_64
diff --git a/ubuntu/ndiswrapper/winnt_types.h b/ubuntu/ndiswrapper/winnt_types.h
new file mode 100644
index 00000000000..62a8e53eb0f
--- /dev/null
+++ b/ubuntu/ndiswrapper/winnt_types.h
@@ -0,0 +1,1702 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef _WINNT_TYPES_H_
+#define _WINNT_TYPES_H_
+
+#define TRUE 1
+#define FALSE 0
+
+#define PASSIVE_LEVEL 0
+#define APC_LEVEL 1
+#define DISPATCH_LEVEL 2
+#define DEVICE_LEVEL_BASE 4
+
+/* soft interrupts / bottom-half's are disabled at SOFT_IRQL */
+#define SOFT_IRQL (DEVICE_LEVEL_BASE + 1)
+#define DIRQL (DEVICE_LEVEL_BASE + 2)
+
+#define STATUS_WAIT_0 0
+#define STATUS_SUCCESS 0
+#define STATUS_ALERTED 0x00000101
+#define STATUS_TIMEOUT 0x00000102
+#define STATUS_PENDING 0x00000103
+#define STATUS_FAILURE 0xC0000001
+#define STATUS_NOT_IMPLEMENTED 0xC0000002
+#define STATUS_INVALID_PARAMETER 0xC000000D
+#define STATUS_INVALID_DEVICE_REQUEST 0xC0000010
+#define STATUS_MORE_PROCESSING_REQUIRED 0xC0000016
+#define STATUS_ACCESS_DENIED 0xC0000022
+#define STATUS_BUFFER_TOO_SMALL 0xC0000023
+#define STATUS_OBJECT_NAME_INVALID 0xC0000023
+#define STATUS_MUTANT_NOT_OWNED 0xC0000046
+#define STATUS_RESOURCES 0xC000009A
+#define STATUS_DELETE_PENDING 0xC0000056
+#define STATUS_INSUFFICIENT_RESOURCES 0xC000009A
+#define STATUS_NOT_SUPPORTED 0xC00000BB
+#define STATUS_INVALID_PARAMETER_2 0xC00000F0
+#define STATUS_NO_MEMORY 0xC0000017
+#define STATUS_CANCELLED 0xC0000120
+#define STATUS_DEVICE_REMOVED 0xC00002B6
+#define STATUS_DEVICE_NOT_CONNECTED 0xC000009D
+
+#define STATUS_BUFFER_OVERFLOW 0x80000005
+
+#define SL_PENDING_RETURNED 0x01
+#define SL_INVOKE_ON_CANCEL 0x20
+#define SL_INVOKE_ON_SUCCESS 0x40
+#define SL_INVOKE_ON_ERROR 0x80
+
+#define IRP_MJ_CREATE 0x00
+#define IRP_MJ_CREATE_NAMED_PIPE 0x01
+#define IRP_MJ_CLOSE 0x02
+#define IRP_MJ_READ 0x03
+#define IRP_MJ_WRITE 0x04
+
+#define IRP_MJ_DEVICE_CONTROL 0x0E
+#define IRP_MJ_INTERNAL_DEVICE_CONTROL 0x0F
+#define IRP_MJ_POWER 0x16
+#define IRP_MJ_SYSTEM_CONTROL 0x0E
+#define IRP_MJ_PNP 0x1b
+#define IRP_MJ_MAXIMUM_FUNCTION 0x1b
+
+#define IRP_MN_WAIT_WAKE 0x00
+#define IRP_MN_POWER_SEQUENCE 0x01
+#define IRP_MN_SET_POWER 0x02
+#define IRP_MN_QUERY_POWER 0x03
+
+#define IRP_MN_REGINFO 0x08
+#define IRP_MN_REGINFO_EX 0x0b
+
+#define IRP_MN_START_DEVICE 0x00
+#define IRP_MN_QUERY_REMOVE_DEVICE 0x01
+#define IRP_MN_REMOVE_DEVICE 0x02
+#define IRP_MN_CANCEL_REMOVE_DEVICE 0x03
+#define IRP_MN_STOP_DEVICE 0x04
+#define IRP_MN_QUERY_STOP_DEVICE 0x05
+#define IRP_MN_CANCEL_STOP_DEVICE 0x06
+#define IRP_MN_QUERY_DEVICE_RELATIONS 0x07
+#define IRP_MN_QUERY_INTERFACE 0x08
+
+#define IRP_BUFFERED_IO 0x00000010
+#define IRP_DEALLOCATE_BUFFER 0x00000020
+#define IRP_INPUT_OPERATION 0x00000040
+
+#define IRP_DEFFER_IO_COMPLETION 0x00000800
+
+#define THREAD_WAIT_OBJECTS 3
+#define MAX_WAIT_OBJECTS 64
+
+#define LOW_PRIORITY 0
+#define LOW_REALTIME_PRIORITY 16
+#define HIGH_PRIORITY 31
+#define MAXIMUM_PRIORITY 32
+
+#define PROCESSOR_FEATURE_MAX 64
+
+#define IO_NO_INCREMENT 0
+
+#define WMIREG_ACTION_REGISTER 1
+#define WMIREG_ACTION_DEREGISTER 2
+#define WMIREG_ACTION_REREGISTER 3
+#define WMIREG_ACTION_UPDATE_GUIDS 4
+
+#define WMIREGISTER 0
+#define WMIUPDATE 1
+
+#ifdef CONFIG_X86_64
+#define wstdcall
+#define wfastcall
+#define noregparm
+
+#define KI_USER_SHARED_DATA 0xfffff78000000000UL
+
+#else
+
+#define noregparm __attribute__((regparm(0)))
+#define wstdcall __attribute__((__stdcall__, regparm(0)))
+#if defined(__GNUC__) && ((__GNUC__ == 3 && __GNUC_MINOR__ > 3) || __GNUC__ > 3)
+#undef fastcall
+#define wfastcall __attribute__((fastcall))
+#else
+#error "gcc 3.4 or newer should be used for compiling this module"
+#endif
+
+#define KI_USER_SHARED_DATA 0xffdf0000
+
+#endif
+
+#define packed __attribute__((packed))
+#define no_warn_unused __attribute__((unused))
+
+typedef u8 BOOLEAN;
+typedef u8 BYTE;
+typedef u8 *LPBYTE;
+typedef s8 CHAR;
+typedef u8 UCHAR;
+typedef s16 SHORT;
+typedef u16 USHORT;
+typedef u16 WORD;
+typedef s32 INT;
+typedef u32 UINT;
+typedef u32 DWORD;
+typedef s32 LONG;
+typedef u32 ULONG;
+typedef s64 LONGLONG;
+typedef u64 ULONGLONG;
+typedef u64 ULONGULONG;
+typedef u64 ULONG64;
+
+typedef CHAR CCHAR;
+typedef USHORT wchar_t;
+typedef SHORT CSHORT;
+typedef LONGLONG LARGE_INTEGER;
+
+typedef LONG NTSTATUS;
+
+typedef LONG KPRIORITY;
+typedef LARGE_INTEGER PHYSICAL_ADDRESS;
+typedef UCHAR KIRQL;
+typedef CHAR KPROCESSOR_MODE;
+
+/* ULONG_PTR is 32 bits on 32-bit platforms and 64 bits on 64-bit
+ * platform, which is same as 'unsigned long' in Linux */
+typedef unsigned long ULONG_PTR;
+
+typedef ULONG_PTR SIZE_T;
+typedef ULONG_PTR KAFFINITY;
+typedef ULONG ACCESS_MASK;
+
+typedef ULONG_PTR PFN_NUMBER;
+typedef ULONG SECURITY_INFORMATION;
+
+/* non-negative numbers indicate success */
+#define NT_SUCCESS(status) ((NTSTATUS)(status) >= 0)
+
+struct ansi_string {
+ USHORT length;
+ USHORT max_length;
+ char *buf;
+};
+
+struct unicode_string {
+ USHORT length;
+ USHORT max_length;
+ wchar_t *buf;
+};
+
+struct nt_slist {
+ struct nt_slist *next;
+};
+
+#ifdef CONFIG_X86_64
+/* it is not clear how nt_slist_head is used to store pointer to
+ * slists and depth; here we assume 'align' field is used to store
+ * depth and 'region' field is used to store slist pointers */
+struct nt_slist_head {
+ union {
+ USHORT depth;
+ ULONGLONG align;
+ };
+ union {
+ ULONGLONG region;
+ struct nt_slist *next;
+ };
+} __attribute__((aligned(16)));
+typedef struct nt_slist_head nt_slist_header;
+#else
+union nt_slist_head {
+ ULONGLONG align;
+ struct {
+ struct nt_slist *next;
+ USHORT depth;
+ USHORT sequence;
+ };
+};
+typedef union nt_slist_head nt_slist_header;
+#endif
+
+struct nt_list {
+ struct nt_list *next;
+ struct nt_list *prev;
+};
+
+typedef ULONG_PTR NT_SPIN_LOCK;
+
+enum kdpc_importance {LowImportance, MediumImportance, HighImportance};
+
+struct kdpc;
+typedef void (*DPC)(struct kdpc *kdpc, void *ctx, void *arg1,
+ void *arg2) wstdcall;
+struct kdpc {
+ SHORT type;
+ UCHAR nr_cpu;
+ UCHAR importance;
+ struct nt_list list;
+ DPC func;
+ void *ctx;
+ void *arg1;
+ void *arg2;
+ union {
+ NT_SPIN_LOCK *lock;
+ /* 'lock' is not used; 'queued' represents whether
+ * kdpc is queued or not */
+ int queued;
+ };
+};
+
+enum pool_type {
+ NonPagedPool, PagedPool, NonPagedPoolMustSucceed, DontUseThisType,
+ NonPagedPoolCacheAligned, PagedPoolCacheAligned,
+ NonPagedPoolCacheAlignedMustS, MaxPoolType,
+ NonPagedPoolSession = 32,
+ PagedPoolSession = NonPagedPoolSession + 1,
+ NonPagedPoolMustSucceedSession = PagedPoolSession + 1,
+ DontUseThisTypeSession = NonPagedPoolMustSucceedSession + 1,
+ NonPagedPoolCacheAlignedSession = DontUseThisTypeSession + 1,
+ PagedPoolCacheAlignedSession = NonPagedPoolCacheAlignedSession + 1,
+ NonPagedPoolCacheAlignedMustSSession = PagedPoolCacheAlignedSession + 1
+};
+
+enum memory_caching_type_orig {
+ MmFrameBufferCached = 2
+};
+
+enum memory_caching_type {
+ MmNonCached = FALSE, MmCached = TRUE,
+ MmWriteCombined = MmFrameBufferCached, MmHardwareCoherentCached,
+ MmNonCachedUnordered, MmUSWCCached, MmMaximumCacheType
+};
+
+enum lock_operation {
+ IoReadAccess, IoWriteAccess, IoModifyAccess
+};
+
+enum mode {
+ KernelMode, UserMode, MaximumMode
+};
+
+struct mdl {
+ struct mdl *next;
+ CSHORT size;
+ CSHORT flags;
+ /* NdisFreeBuffer doesn't pass pool, so we store pool in
+ * unused field 'process' */
+ union {
+ void *process;
+ void *pool;
+ };
+ void *mappedsystemva;
+ void *startva;
+ ULONG bytecount;
+ ULONG byteoffset;
+};
+
+#define MDL_MAPPED_TO_SYSTEM_VA 0x0001
+#define MDL_PAGES_LOCKED 0x0002
+#define MDL_SOURCE_IS_NONPAGED_POOL 0x0004
+#define MDL_ALLOCATED_FIXED_SIZE 0x0008
+#define MDL_PARTIAL 0x0010
+#define MDL_PARTIAL_HAS_BEEN_MAPPED 0x0020
+#define MDL_IO_PAGE_READ 0x0040
+#define MDL_WRITE_OPERATION 0x0080
+#define MDL_PARENT_MAPPED_SYSTEM_VA 0x0100
+#define MDL_FREE_EXTRA_PTES 0x0200
+#define MDL_IO_SPACE 0x0800
+#define MDL_NETWORK_HEADER 0x1000
+#define MDL_MAPPING_CAN_FAIL 0x2000
+#define MDL_ALLOCATED_MUST_SUCCEED 0x4000
+
+#define MDL_POOL_ALLOCATED 0x0400
+#define MDL_CACHE_ALLOCATED 0x8000
+
+#define PAGE_START(ptr) ((void *)((ULONG_PTR)(ptr) & ~(PAGE_SIZE - 1)))
+#define BYTE_OFFSET(ptr) ((ULONG)((ULONG_PTR)(ptr) & (PAGE_SIZE - 1)))
+
+#define MmGetMdlByteCount(mdl) ((mdl)->bytecount)
+#define MmGetMdlVirtualAddress(mdl) ((mdl)->startva + (mdl)->byteoffset)
+#define MmGetMdlByteOffset(mdl) ((mdl)->byteoffset)
+#define MmGetSystemAddressForMdl(mdl) ((mdl)->mappedsystemva)
+#define MmGetSystemAddressForMdlSafe(mdl, priority) ((mdl)->mappedsystemva)
+#define MmGetMdlPfnArray(mdl) ((PFN_NUMBER *)(mdl + 1))
+#define MmInitializeMdl(mdl, baseva, length) \
+do { \
+ (mdl)->next = NULL; \
+ (mdl)->size = MmSizeOfMdl(baseva, length); \
+ (mdl)->flags = 0; \
+ (mdl)->startva = PAGE_START(baseva); \
+ (mdl)->byteoffset = BYTE_OFFSET(baseva); \
+ (mdl)->bytecount = length; \
+ (mdl)->mappedsystemva = baseva; \
+ TRACE4("%p %p %p %d %d", (mdl), baseva, (mdl)->startva, \
+ (mdl)->byteoffset, length); \
+} while (0)
+
+struct kdevice_queue_entry {
+ struct nt_list list;
+ ULONG sort_key;
+ BOOLEAN inserted;
+};
+
+struct kdevice_queue {
+ USHORT type;
+ USHORT size;
+ struct nt_list list;
+ NT_SPIN_LOCK lock;
+ BOOLEAN busy;
+};
+
+struct wait_context_block {
+ struct kdevice_queue_entry wait_queue_entry;
+ void *device_routine;
+ void *device_context;
+ ULONG num_regs;
+ void *device_object;
+ void *current_irp;
+ void *buffer_chaining_dpc;
+};
+
+struct wait_block {
+ struct nt_list list;
+ struct task_struct *thread;
+ void *object;
+ int *wait_done;
+ USHORT wait_key;
+ USHORT wait_type;
+};
+
+struct dispatcher_header {
+ UCHAR type;
+ UCHAR absolute;
+ UCHAR size;
+ UCHAR inserted;
+ LONG signal_state;
+ struct nt_list wait_blocks;
+};
+
+enum event_type {
+ NotificationEvent,
+ SynchronizationEvent,
+};
+
+enum timer_type {
+ NotificationTimer = NotificationEvent,
+ SynchronizationTimer = SynchronizationEvent,
+};
+
+enum dh_type {
+ NotificationObject = NotificationEvent,
+ SynchronizationObject = SynchronizationEvent,
+ MutexObject,
+ SemaphoreObject,
+ ThreadObject,
+};
+
+enum wait_type {
+ WaitAll, WaitAny
+};
+
+/* objects that use dispatcher_header have it as the first field, so
+ * whenever we need to initialize dispatcher_header, we can convert
+ * that object into a nt_event and access dispatcher_header */
+struct nt_event {
+ struct dispatcher_header dh;
+};
+
+struct wrap_timer;
+
+#define WRAP_TIMER_MAGIC 47697249
+
+struct nt_timer {
+ struct dispatcher_header dh;
+ /* We can't fit Linux timer in this structure. Instead of
+ * padding the nt_timer structure, we replace due_time field
+ * with *wrap_timer and allocate memory for it when nt_timer is
+ * initialized */
+ union {
+ ULONGLONG due_time;
+ struct wrap_timer *wrap_timer;
+ };
+ struct nt_list nt_timer_list;
+ struct kdpc *kdpc;
+ union {
+ LONG period;
+ LONG wrap_timer_magic;
+ };
+};
+
+struct nt_mutex {
+ struct dispatcher_header dh;
+ struct nt_list list;
+ struct task_struct *owner_thread;
+ BOOLEAN abandoned;
+ BOOLEAN apc_disable;
+};
+
+struct nt_semaphore {
+ struct dispatcher_header dh;
+ LONG limit;
+};
+
+struct nt_thread {
+ struct dispatcher_header dh;
+ /* the rest in Windows is a long structure; since this
+ * structure is opaque to drivers, we just define what we
+ * need */
+ int pid;
+ NTSTATUS status;
+ struct task_struct *task;
+ struct nt_list irps;
+ NT_SPIN_LOCK lock;
+ KPRIORITY prio;
+};
+
+#define set_object_type(dh, type) ((dh)->type = (type))
+#define is_notify_object(dh) ((dh)->type == NotificationObject)
+#define is_synch_object(dh) ((dh)->type == SynchronizationObject)
+#define is_mutex_object(dh) ((dh)->type == MutexObject)
+#define is_semaphore_object(dh) ((dh)->type == SemaphoreObject)
+#define is_nt_thread_object(dh) ((dh)->type == ThreadObject)
+
+#define IO_TYPE_ADAPTER 1
+#define IO_TYPE_CONTROLLER 2
+#define IO_TYPE_DEVICE 3
+#define IO_TYPE_DRIVER 4
+#define IO_TYPE_FILE 5
+#define IO_TYPE_IRP 6
+#define IO_TYPE_DEVICE_OBJECT_EXTENSION 13
+
+struct irp;
+struct dev_obj_ext;
+struct driver_object;
+
+struct device_object {
+ CSHORT type;
+ USHORT size;
+ LONG ref_count;
+ struct driver_object *drv_obj;
+ struct device_object *next;
+ struct device_object *attached;
+ struct irp *current_irp;
+ void *io_timer;
+ ULONG flags;
+ ULONG characteristics;
+ void *vpb;
+ void *dev_ext;
+ CCHAR stack_count;
+ union {
+ struct nt_list queue_list;
+ struct wait_context_block wcb;
+ } queue;
+ ULONG align_req;
+ struct kdevice_queue dev_queue;
+ struct kdpc dpc;
+ ULONG active_threads;
+ void *security_desc;
+ struct nt_event lock;
+ USHORT sector_size;
+ USHORT spare1;
+ struct dev_obj_ext *dev_obj_ext;
+ void *reserved;
+};
+
+struct dev_obj_ext {
+ CSHORT type;
+ CSHORT size;
+ struct device_object *dev_obj;
+ struct device_object *attached_to;
+};
+
+struct io_status_block {
+ union {
+ NTSTATUS status;
+ void *pointer;
+ };
+ ULONG_PTR info;
+};
+
+#ifdef CONFIG_X86_64
+struct io_status_block32 {
+ NTSTATUS status;
+ ULONG info;
+};
+#endif
+
+#define DEVICE_TYPE ULONG
+
+struct driver_extension;
+
+typedef NTSTATUS driver_dispatch_t(struct device_object *dev_obj,
+ struct irp *irp) wstdcall;
+
+struct driver_object {
+ CSHORT type;
+ CSHORT size;
+ struct device_object *dev_obj;
+ ULONG flags;
+ void *start;
+ ULONG driver_size;
+ void *section;
+ struct driver_extension *drv_ext;
+ struct unicode_string name;
+ struct unicode_string *hardware_database;
+ void *fast_io_dispatch;
+ void *init;
+ void *start_io;
+ void (*unload)(struct driver_object *driver) wstdcall;
+ driver_dispatch_t *major_func[IRP_MJ_MAXIMUM_FUNCTION + 1];
+};
+
+struct driver_extension {
+ struct driver_object *drv_obj;
+ NTSTATUS (*add_device)(struct driver_object *drv_obj,
+ struct device_object *dev_obj) wstdcall;
+ ULONG count;
+ struct unicode_string service_key_name;
+ struct nt_list custom_ext;
+};
+
+struct custom_ext {
+ struct nt_list list;
+ void *client_id;
+};
+
+struct wrap_bin_file;
+
+struct file_object {
+ CSHORT type;
+ CSHORT size;
+ struct device_object *dev_obj;
+ void *volume_parameter_block;
+ void *fs_context;
+ void *fs_context2;
+ void *section_object_pointer;
+ void *private_cache_map;
+ NTSTATUS final_status;
+ union {
+ struct file_object *related_file_object;
+ struct wrap_bin_file *wrap_bin_file;
+ };
+ BOOLEAN lock_operation;
+ BOOLEAN delete_pending;
+ BOOLEAN read_access;
+ BOOLEAN write_access;
+ BOOLEAN delete_access;
+ BOOLEAN shared_read;
+ BOOLEAN shared_write;
+ BOOLEAN shared_delete;
+ ULONG flags;
+ struct unicode_string _name_;
+ LARGE_INTEGER current_byte_offset;
+ ULONG waiters;
+ ULONG busy;
+ void *last_lock;
+ struct nt_event lock;
+ struct nt_event event;
+ void *completion_context;
+};
+
+#ifdef CONFIG_X86_64
+#define POINTER_ALIGN __attribute__((aligned(8)))
+#else
+#define POINTER_ALIGN
+#endif
+
+#define CACHE_ALIGN __attribute__((aligned(128)))
+
+enum system_power_state {
+ PowerSystemUnspecified = 0,
+ PowerSystemWorking, PowerSystemSleeping1, PowerSystemSleeping2,
+ PowerSystemSleeping3, PowerSystemHibernate, PowerSystemShutdown,
+ PowerSystemMaximum,
+};
+
+enum device_power_state {
+ PowerDeviceUnspecified = 0,
+ PowerDeviceD0, PowerDeviceD1, PowerDeviceD2, PowerDeviceD3,
+ PowerDeviceMaximum,
+};
+
+union power_state {
+ enum system_power_state system_state;
+ enum device_power_state device_state;
+};
+
+enum power_state_type {
+ SystemPowerState = 0, DevicePowerState,
+};
+
+enum power_action {
+ PowerActionNone = 0,
+ PowerActionReserved, PowerActionSleep, PowerActionHibernate,
+ PowerActionShutdown, PowerActionShutdownReset, PowerActionShutdownOff,
+ PowerActionWarmEject,
+};
+
+struct guid {
+ ULONG data1;
+ USHORT data2;
+ USHORT data3;
+ UCHAR data4[8];
+};
+
+struct nt_interface {
+ USHORT size;
+ USHORT version;
+ void *context;
+ void (*reference)(void *context) wstdcall;
+ void (*dereference)(void *context) wstdcall;
+};
+
+enum interface_type {
+ InterfaceTypeUndefined = -1, Internal, Isa, Eisa, MicroChannel,
+ TurboChannel, PCIBus, VMEBus, NuBus, PCMCIABus, CBus, MPIBus,
+ MPSABus, ProcessorInternal, InternalPowerBus, PNPISABus,
+ PNPBus, MaximumInterfaceType,
+};
+
+#define CmResourceTypeNull 0
+#define CmResourceTypePort 1
+#define CmResourceTypeInterrupt 2
+#define CmResourceTypeMemory 3
+#define CmResourceTypeDma 4
+#define CmResourceTypeDeviceSpecific 5
+#define CmResourceTypeBusNumber 6
+#define CmResourceTypeMaximum 7
+
+#define CmResourceTypeNonArbitrated 128
+#define CmResourceTypeConfigData 128
+#define CmResourceTypeDevicePrivate 129
+#define CmResourceTypePcCardConfig 130
+#define CmResourceTypeMfCardConfig 131
+
+enum cm_share_disposition {
+ CmResourceShareUndetermined = 0, CmResourceShareDeviceExclusive,
+ CmResourceShareDriverExclusive, CmResourceShareShared
+};
+
+#define CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE 0
+#define CM_RESOURCE_INTERRUPT_LATCHED 1
+#define CM_RESOURCE_MEMORY_READ_WRITE 0x0000
+#define CM_RESOURCE_MEMORY_READ_ONLY 0x0001
+#define CM_RESOURCE_MEMORY_WRITE_ONLY 0x0002
+#define CM_RESOURCE_MEMORY_PREFETCHABLE 0x0004
+
+#define CM_RESOURCE_MEMORY_COMBINEDWRITE 0x0008
+#define CM_RESOURCE_MEMORY_24 0x0010
+#define CM_RESOURCE_MEMORY_CACHEABLE 0x0020
+
+#define CM_RESOURCE_PORT_MEMORY 0x0000
+#define CM_RESOURCE_PORT_IO 0x0001
+#define CM_RESOURCE_PORT_10_BIT_DECODE 0x0004
+#define CM_RESOURCE_PORT_12_BIT_DECODE 0x0008
+#define CM_RESOURCE_PORT_16_BIT_DECODE 0x0010
+#define CM_RESOURCE_PORT_POSITIVE_DECODE 0x0020
+#define CM_RESOURCE_PORT_PASSIVE_DECODE 0x0040
+#define CM_RESOURCE_PORT_WINDOW_DECODE 0x0080
+
+#define CM_RESOURCE_DMA_8 0x0000
+#define CM_RESOURCE_DMA_16 0x0001
+#define CM_RESOURCE_DMA_32 0x0002
+#define CM_RESOURCE_DMA_8_AND_16 0x0004
+#define CM_RESOURCE_DMA_BUS_MASTER 0x0008
+#define CM_RESOURCE_DMA_TYPE_A 0x0010
+#define CM_RESOURCE_DMA_TYPE_B 0x0020
+#define CM_RESOURCE_DMA_TYPE_F 0x0040
+
+#define MAX_RESOURCES 20
+
+#pragma pack(push,4)
+struct cm_partial_resource_descriptor {
+ UCHAR type;
+ UCHAR share;
+ USHORT flags;
+ union {
+ struct {
+ PHYSICAL_ADDRESS start;
+ ULONG length;
+ } generic;
+ struct {
+ PHYSICAL_ADDRESS start;
+ ULONG length;
+ } port;
+ struct {
+ ULONG level;
+ ULONG vector;
+ KAFFINITY affinity;
+ } interrupt;
+ struct {
+ PHYSICAL_ADDRESS start;
+ ULONG length;
+ } memory;
+ struct {
+ ULONG channel;
+ ULONG port;
+ ULONG reserved1;
+ } dma;
+ struct {
+ ULONG data[3];
+ } device_private;
+ struct {
+ ULONG start;
+ ULONG length;
+ ULONG reserved;
+ } bus_number;
+ struct {
+ ULONG data_size;
+ ULONG reserved1;
+ ULONG reserved2;
+ } device_specific_data;
+ } u;
+};
+#pragma pack(pop)
+
+struct cm_partial_resource_list {
+ USHORT version;
+ USHORT revision;
+ ULONG count;
+ struct cm_partial_resource_descriptor partial_descriptors[1];
+};
+
+struct cm_full_resource_descriptor {
+ enum interface_type interface_type;
+ ULONG bus_number;
+ struct cm_partial_resource_list partial_resource_list;
+};
+
+struct cm_resource_list {
+ ULONG count;
+ struct cm_full_resource_descriptor list[1];
+};
+
+enum file_info_class {
+ FileDirectoryInformation = 1,
+ FileBasicInformation = 4,
+ FileStandardInformation = 5,
+ FileNameInformation = 9,
+ FilePositionInformation = 14,
+ FileAlignmentInformation = 17,
+ FileNetworkOpenInformation = 34,
+ FileAttributeTagInformation = 35,
+ FileMaximumInformation = 41,
+};
+
+enum fs_info_class {
+ FileFsVolumeInformation = 1,
+ /* ... */
+ FileFsMaximumInformation = 9,
+};
+
+enum device_relation_type {
+ BusRelations, EjectionRelations, PowerRelations, RemovalRelations,
+ TargetDeviceRelation, SingleBusRelations,
+};
+
+enum bus_query_id_type {
+ BusQueryDeviceID = 0, BusQueryHardwareIDs = 1,
+ BusQueryCompatibleIDs = 2, BusQueryInstanceID = 3,
+ BusQueryDeviceSerialNumber = 4,
+};
+
+enum device_text_type {
+ DeviceTextDescription = 0, DeviceTextLocationInformation = 1,
+};
+
+enum device_usage_notification_type {
+ DeviceUsageTypeUndefined, DeviceUsageTypePaging,
+ DeviceUsageTypeHibernation, DevbiceUsageTypeDumpFile,
+};
+
+#define METHOD_BUFFERED 0
+#define METHOD_IN_DIRECT 1
+#define METHOD_OUT_DIRECT 2
+#define METHOD_NEITHER 3
+
+#define CTL_CODE(dev_type, func, method, access) \
+ (((dev_type) << 16) | ((access) << 14) | ((func) << 2) | (method))
+
+#define IO_METHOD_FROM_CTL_CODE(code) (code & 0x3)
+
+#ifndef CONFIG_X86_64
+#pragma pack(push,4)
+#endif
+struct io_stack_location {
+ UCHAR major_fn;
+ UCHAR minor_fn;
+ UCHAR flags;
+ UCHAR control;
+ union {
+ struct {
+ void *security_context;
+ ULONG options;
+ USHORT POINTER_ALIGN file_attributes;
+ USHORT share_access;
+ ULONG POINTER_ALIGN ea_length;
+ } create;
+ struct {
+ ULONG length;
+ ULONG POINTER_ALIGN key;
+ LARGE_INTEGER byte_offset;
+ } read;
+ struct {
+ ULONG length;
+ ULONG POINTER_ALIGN key;
+ LARGE_INTEGER byte_offset;
+ } write;
+ struct {
+ ULONG length;
+ enum file_info_class POINTER_ALIGN file_info_class;
+ } query_file;
+ struct {
+ ULONG length;
+ enum file_info_class POINTER_ALIGN file_info_class;
+ struct file_object *file_object;
+ union {
+ struct {
+ BOOLEAN replace_if_exists;
+ BOOLEAN advance_only;
+ };
+ ULONG cluster_count;
+ void *delete_handle;
+ };
+ } set_file;
+ struct {
+ ULONG length;
+ enum fs_info_class POINTER_ALIGN fs_info_class;
+ } query_volume;
+ struct {
+ ULONG output_buf_len;
+ ULONG POINTER_ALIGN input_buf_len;
+ ULONG POINTER_ALIGN code;
+ void *type3_input_buf;
+ } dev_ioctl;
+ struct {
+ SECURITY_INFORMATION security_info;
+ ULONG POINTER_ALIGN length;
+ } query_security;
+ struct {
+ SECURITY_INFORMATION security_info;
+ void *security_descriptor;
+ } set_security;
+ struct {
+ void *vpb;
+ struct device_object *device_object;
+ } mount_volume;
+ struct {
+ void *vpb;
+ struct device_object *device_object;
+ } verify_volume;
+ struct {
+ void *srb;
+ } scsi;
+ struct {
+ enum device_relation_type type;
+ } query_device_relations;
+ struct {
+ const struct guid *type;
+ USHORT size;
+ USHORT version;
+ struct nt_interface *intf;
+ void *intf_data;
+ } query_intf;
+ struct {
+ void *capabilities;
+ } device_capabilities;
+ struct {
+ void *io_resource_requirement_list;
+ } filter_resource_requirements;
+ struct {
+ ULONG which_space;
+ void *buffer;
+ ULONG offset;
+ ULONG POINTER_ALIGN length;
+ } read_write_config;
+ struct {
+ BOOLEAN lock;
+ } set_lock;
+ struct {
+ enum bus_query_id_type id_type;
+ } query_id;
+ struct {
+ enum device_text_type device_text_type;
+ ULONG POINTER_ALIGN locale_id;
+ } query_device_text;
+ struct {
+ BOOLEAN in_path;
+ BOOLEAN reserved[3];
+ enum device_usage_notification_type POINTER_ALIGN type;
+ } usage_notification;
+ struct {
+ enum system_power_state power_state;
+ } wait_wake;
+ struct {
+ void *power_sequence;
+ } power_sequence;
+ struct {
+ ULONG sys_context;
+ enum power_state_type POINTER_ALIGN type;
+ union power_state POINTER_ALIGN state;
+ enum power_action POINTER_ALIGN shutdown_type;
+ } power;
+ struct {
+ struct cm_resource_list *allocated_resources;
+ struct cm_resource_list *allocated_resources_translated;
+ } start_device;
+ struct {
+ ULONG_PTR provider_id;
+ void *data_path;
+ ULONG buf_len;
+ void *buf;
+ } wmi;
+ struct {
+ void *arg1;
+ void *arg2;
+ void *arg3;
+ void *arg4;
+ } others;
+ } params;
+ struct device_object *dev_obj;
+ struct file_object *file_obj;
+ NTSTATUS (*completion_routine)(struct device_object *,
+ struct irp *, void *) wstdcall;
+ void *context;
+};
+#ifndef CONFIG_X86_64
+#pragma pack(pop)
+#endif
+
+struct kapc {
+ CSHORT type;
+ CSHORT size;
+ ULONG spare0;
+ struct nt_thread *thread;
+ struct nt_list list;
+ void *kernele_routine;
+ void *rundown_routine;
+ void *normal_routine;
+ void *normal_context;
+ void *sys_arg1;
+ void *sys_arg2;
+ CCHAR apc_state_index;
+ KPROCESSOR_MODE apc_mode;
+ BOOLEAN inserted;
+};
+
+#define IRP_NOCACHE 0x00000001
+#define IRP_SYNCHRONOUS_API 0x00000004
+#define IRP_ASSOCIATED_IRP 0x00000008
+
+enum urb_state {
+ URB_INVALID = 1, URB_ALLOCATED, URB_SUBMITTED,
+ URB_COMPLETED, URB_FREE, URB_SUSPEND, URB_INT_UNLINKED };
+
+struct wrap_urb {
+ struct nt_list list;
+ enum urb_state state;
+ struct nt_list complete_list;
+ unsigned int flags;
+ struct urb *urb;
+ struct irp *irp;
+#ifdef USB_DEBUG
+ unsigned int id;
+#endif
+};
+
+struct irp {
+ SHORT type;
+ USHORT size;
+ struct mdl *mdl;
+ ULONG flags;
+ union {
+ struct irp *master_irp;
+ LONG irp_count;
+ void *system_buffer;
+ } associated_irp;
+ struct nt_list thread_list;
+ struct io_status_block io_status;
+ KPROCESSOR_MODE requestor_mode;
+ BOOLEAN pending_returned;
+ CHAR stack_count;
+ CHAR current_location;
+ BOOLEAN cancel;
+ KIRQL cancel_irql;
+ CCHAR apc_env;
+ UCHAR alloc_flags;
+ struct io_status_block *user_status;
+ struct nt_event *user_event;
+ union {
+ struct {
+ void *user_apc_routine;
+ void *user_apc_context;
+ } async_params;
+ LARGE_INTEGER alloc_size;
+ } overlay;
+ void (*cancel_routine)(struct device_object *, struct irp *) wstdcall;
+ void *user_buf;
+ union {
+ struct {
+ union {
+ struct kdevice_queue_entry dev_q_entry;
+ struct {
+ void *driver_context[4];
+ };
+ };
+ void *thread;
+ char *aux_buf;
+ struct {
+ struct nt_list list;
+ union {
+ struct io_stack_location *csl;
+ ULONG packet_type;
+ };
+ };
+ struct file_object *file_object;
+ } overlay;
+ union {
+ struct kapc apc;
+ /* space for apc is used for ndiswrapper
+ * specific fields */
+ struct {
+ struct wrap_urb *wrap_urb;
+ struct wrap_device *wrap_device;
+ };
+ };
+ void *completion_key;
+ } tail;
+};
+
+#define IoSizeOfIrp(stack_count) \
+ ((USHORT)(sizeof(struct irp) + \
+ ((stack_count) * sizeof(struct io_stack_location))))
+#define IoGetCurrentIrpStackLocation(irp) \
+ (irp)->tail.overlay.csl
+#define IoGetNextIrpStackLocation(irp) \
+ (IoGetCurrentIrpStackLocation(irp) - 1)
+#define IoGetPreviousIrpStackLocation(irp) \
+ (IoGetCurrentIrpStackLocation(irp) + 1)
+
+#define IoSetNextIrpStackLocation(irp) \
+do { \
+ KIRQL _irql_; \
+ IoAcquireCancelSpinLock(&_irql_); \
+ (irp)->current_location--; \
+ IoGetCurrentIrpStackLocation(irp)--; \
+ IoReleaseCancelSpinLock(_irql_); \
+} while (0)
+
+#define IoSkipCurrentIrpStackLocation(irp) \
+do { \
+ KIRQL _irql_; \
+ IoAcquireCancelSpinLock(&_irql_); \
+ (irp)->current_location++; \
+ IoGetCurrentIrpStackLocation(irp)++; \
+ IoReleaseCancelSpinLock(_irql_); \
+} while (0)
+
+static inline void
+IoCopyCurrentIrpStackLocationToNext(struct irp *irp)
+{
+ struct io_stack_location *next;
+ next = IoGetNextIrpStackLocation(irp);
+ memcpy(next, IoGetCurrentIrpStackLocation(irp),
+ offsetof(struct io_stack_location, completion_routine));
+ next->control = 0;
+}
+
+static inline void
+IoSetCompletionRoutine(struct irp *irp, void *routine, void *context,
+ BOOLEAN success, BOOLEAN error, BOOLEAN cancel)
+{
+ struct io_stack_location *irp_sl = IoGetNextIrpStackLocation(irp);
+ irp_sl->completion_routine = routine;
+ irp_sl->context = context;
+ irp_sl->control = 0;
+ if (success)
+ irp_sl->control |= SL_INVOKE_ON_SUCCESS;
+ if (error)
+ irp_sl->control |= SL_INVOKE_ON_ERROR;
+ if (cancel)
+ irp_sl->control |= SL_INVOKE_ON_CANCEL;
+}
+
+#define IoMarkIrpPending(irp) \
+ (IoGetCurrentIrpStackLocation((irp))->control |= SL_PENDING_RETURNED)
+#define IoUnmarkIrpPending(irp) \
+ (IoGetCurrentIrpStackLocation((irp))->control &= ~SL_PENDING_RETURNED)
+
+#define IRP_SL(irp, n) (((struct io_stack_location *)((irp) + 1)) + (n))
+#define IRP_DRIVER_CONTEXT(irp) (irp)->tail.overlay.driver_context
+#define IoIrpThread(irp) ((irp)->tail.overlay.thread)
+
+#define IRP_URB(irp) \
+ (union nt_urb *)(IoGetCurrentIrpStackLocation(irp)->params.others.arg1)
+
+#define IRP_WRAP_DEVICE(irp) (irp)->tail.wrap_device
+#define IRP_WRAP_URB(irp) (irp)->tail.wrap_urb
+
+struct wmi_guid_reg_info {
+ struct guid *guid;
+ ULONG instance_count;
+ ULONG flags;
+};
+
+struct wmilib_context {
+ ULONG guid_count;
+ struct wmi_guid_reg_info *guid_list;
+ void *query_wmi_reg_info;
+ void *query_wmi_data_block;
+ void *set_wmi_data_block;
+ void *set_wmi_data_item;
+ void *execute_wmi_method;
+ void *wmi_function_control;
+};
+
+enum key_value_information_class {
+ KeyValueBasicInformation, KeyValueFullInformation,
+ KeyValuePartialInformation, KeyValueFullInformationAlign64,
+ KeyValuePartialInformationAlign64
+};
+
+struct file_name_info {
+ ULONG length;
+ wchar_t *name;
+};
+
+struct file_std_info {
+ LARGE_INTEGER alloc_size;
+ LARGE_INTEGER eof;
+ ULONG num_links;
+ BOOLEAN delete_pending;
+ BOOLEAN dir;
+};
+
+enum nt_obj_type {
+ NT_OBJ_EVENT = 10, NT_OBJ_MUTEX, NT_OBJ_THREAD, NT_OBJ_TIMER,
+ NT_OBJ_SEMAPHORE,
+};
+
+enum common_object_type {
+ OBJECT_TYPE_NONE, OBJECT_TYPE_DEVICE, OBJECT_TYPE_DRIVER,
+ OBJECT_TYPE_NT_THREAD, OBJECT_TYPE_FILE, OBJECT_TYPE_CALLBACK,
+};
+
+struct common_object_header {
+ struct nt_list list;
+ enum common_object_type type;
+ UINT size;
+ UINT ref_count;
+ BOOLEAN close_in_process;
+ BOOLEAN permanent;
+ struct unicode_string name;
+};
+
+#define OBJECT_TO_HEADER(object) \
+ (struct common_object_header *)((void *)(object) - \
+ sizeof(struct common_object_header))
+#define OBJECT_SIZE(size) \
+ ((size) + sizeof(struct common_object_header))
+#define HEADER_TO_OBJECT(hdr) \
+ ((void *)(hdr) + sizeof(struct common_object_header))
+#define HANDLE_TO_OBJECT(handle) HEADER_TO_OBJECT(handle)
+#define HANDLE_TO_HEADER(handle) (handle)
+
+enum work_queue_type {
+ CriticalWorkQueue, DelayedWorkQueue, HyperCriticalWorkQueue,
+ MaximumWorkQueue
+};
+
+typedef void (*NTOS_WORK_FUNC)(void *arg1, void *arg2) wstdcall;
+
+struct io_workitem {
+ enum work_queue_type type;
+ struct device_object *dev_obj;
+ NTOS_WORK_FUNC worker_routine;
+ void *context;
+};
+
+struct io_workitem_entry {
+ struct nt_list list;
+ struct io_workitem *io_workitem;
+};
+
+enum mm_page_priority {
+ LowPagePriority, NormalPagePriority = 16, HighPagePriority = 32
+};
+
+enum kinterrupt_mode {
+ LevelSensitive, Latched
+};
+
+enum ntos_wait_reason {
+ Executive, FreePage, PageIn, PoolAllocation, DelayExecution,
+ Suspended, UserRequest, WrExecutive, WrFreePage, WrPageIn,
+ WrPoolAllocation, WrDelayExecution, WrSuspended, WrUserRequest,
+ WrEventPair, WrQueue, WrLpcReceive, WrLpcReply, WrVirtualMemory,
+ WrPageOut, WrRendezvous, Spare2, Spare3, Spare4, Spare5, Spare6,
+ WrKernel, MaximumWaitReason
+};
+
+typedef enum ntos_wait_reason KWAIT_REASON;
+
+typedef void *LOOKASIDE_ALLOC_FUNC(enum pool_type pool_type,
+ SIZE_T size, ULONG tag) wstdcall;
+typedef void LOOKASIDE_FREE_FUNC(void *) wstdcall;
+
+struct npaged_lookaside_list {
+ nt_slist_header head;
+ USHORT depth;
+ USHORT maxdepth;
+ ULONG totalallocs;
+ union {
+ ULONG allocmisses;
+ ULONG allochits;
+ } u1;
+ ULONG totalfrees;
+ union {
+ ULONG freemisses;
+ ULONG freehits;
+ } u2;
+ enum pool_type pool_type;
+ ULONG tag;
+ ULONG size;
+ LOOKASIDE_ALLOC_FUNC *alloc_func;
+ LOOKASIDE_FREE_FUNC *free_func;
+ struct nt_list list;
+ ULONG lasttotallocs;
+ union {
+ ULONG lastallocmisses;
+ ULONG lastallochits;
+ } u3;
+ ULONG pad[2];
+#ifndef CONFIG_X86_64
+ NT_SPIN_LOCK obsolete;
+#endif
+}
+#ifdef CONFIG_X86_64
+CACHE_ALIGN
+#endif
+;
+
+enum device_registry_property {
+ DevicePropertyDeviceDescription, DevicePropertyHardwareID,
+ DevicePropertyCompatibleIDs, DevicePropertyBootConfiguration,
+ DevicePropertyBootConfigurationTranslated,
+ DevicePropertyClassName, DevicePropertyClassGuid,
+ DevicePropertyDriverKeyName, DevicePropertyManufacturer,
+ DevicePropertyFriendlyName, DevicePropertyLocationInformation,
+ DevicePropertyPhysicalDeviceObjectName, DevicePropertyBusTypeGuid,
+ DevicePropertyLegacyBusType, DevicePropertyBusNumber,
+ DevicePropertyEnumeratorName, DevicePropertyAddress,
+ DevicePropertyUINumber, DevicePropertyInstallState,
+ DevicePropertyRemovalPolicy
+};
+
+enum trace_information_class {
+ TraceIdClass, TraceHandleClass, TraceEnableFlagsClass,
+ TraceEnableLevelClass, GlobalLoggerHandleClass, EventLoggerHandleClass,
+ AllLoggerHandlesClass, TraceHandleByNameClass
+};
+
+struct kinterrupt;
+typedef BOOLEAN (*PKSERVICE_ROUTINE)(struct kinterrupt *interrupt,
+ void *context) wstdcall;
+typedef BOOLEAN (*PKSYNCHRONIZE_ROUTINE)(void *context) wstdcall;
+
+struct kinterrupt {
+ ULONG vector;
+ KAFFINITY cpu_mask;
+ NT_SPIN_LOCK lock;
+ NT_SPIN_LOCK *actual_lock;
+ BOOLEAN shared;
+ BOOLEAN save_fp;
+ union {
+ CHAR processor_number;
+#ifdef CONFIG_DEBUG_SHIRQ
+ CHAR enabled;
+#endif
+ } u;
+ PKSERVICE_ROUTINE isr;
+ void *isr_ctx;
+ struct nt_list list;
+ KIRQL irql;
+ KIRQL synch_irql;
+ enum kinterrupt_mode mode;
+};
+
+struct time_fields {
+ CSHORT year;
+ CSHORT month;
+ CSHORT day;
+ CSHORT hour;
+ CSHORT minute;
+ CSHORT second;
+ CSHORT milliseconds;
+ CSHORT weekday;
+};
+
+struct object_attributes {
+ ULONG length;
+ void *root_dir;
+ struct unicode_string *name;
+ ULONG attributes;
+ void *security_descr;
+ void *security_qos;
+};
+
+typedef void (*PCALLBACK_FUNCTION)(void *context, void *arg1,
+ void *arg2) wstdcall;
+
+struct callback_object;
+struct callback_func {
+ PCALLBACK_FUNCTION func;
+ void *context;
+ struct nt_list list;
+ struct callback_object *object;
+};
+
+struct callback_object {
+ NT_SPIN_LOCK lock;
+ struct nt_list list;
+ struct nt_list callback_funcs;
+ BOOLEAN allow_multiple_callbacks;
+ struct object_attributes *attributes;
+};
+
+enum section_inherit {
+ ViewShare = 1, ViewUnmap = 2
+};
+
+struct ksystem_time {
+ ULONG low_part;
+ LONG high1_time;
+ LONG high2_time;
+};
+
+enum nt_product_type {
+ nt_product_win_nt = 1, nt_product_lan_man_nt, nt_product_server
+};
+
+enum alt_arch_type {
+ arch_type_standard, arch_type_nex98x86, end_alternatives
+};
+
+struct kuser_shared_data {
+ ULONG tick_count;
+ ULONG tick_count_multiplier;
+ volatile struct ksystem_time interrupt_time;
+ volatile struct ksystem_time system_time;
+ volatile struct ksystem_time time_zone_bias;
+ USHORT image_number_low;
+ USHORT image_number_high;
+ wchar_t nt_system_root[260];
+ ULONG max_stack_trace_depth;
+ ULONG crypto_exponent;
+ ULONG time_zone_id;
+ ULONG large_page_min;
+ ULONG reserved2[7];
+ enum nt_product_type nt_product_type;
+ BOOLEAN product_type_is_valid;
+ ULONG nt_major_version;
+ ULONG nt_minor_version;
+ BOOLEAN processor_features[PROCESSOR_FEATURE_MAX];
+ ULONG reserved1;
+ ULONG reserved3;
+ volatile LONG time_slip;
+ enum alt_arch_type alt_arch_type;
+ LARGE_INTEGER system_expiration_date;
+ ULONG suite_mask;
+ BOOLEAN kdbg_enabled;
+ volatile ULONG active_console;
+ volatile ULONG dismount_count;
+ ULONG com_plus_package;
+ ULONG last_system_rite_event_tick_count;
+ ULONG num_phys_pages;
+ BOOLEAN safe_boot_mode;
+ ULONG trace_log;
+ ULONGLONG fill0;
+ ULONGLONG sys_call[4];
+ union {
+ volatile struct ksystem_time tick_count;
+ volatile ULONG64 tick_count_quad;
+ } tick;
+};
+
+#define REG_NONE (0)
+#define REG_SZ (1)
+#define REG_EXPAND_SZ (2)
+#define REG_BINARY (3)
+#define REG_DWORD (4)
+
+#define RTL_REGISTRY_ABSOLUTE 0
+#define RTL_REGISTRY_SERVICES 1
+#define RTL_REGISTRY_CONTROL 2
+#define RTL_REGISTRY_WINDOWS_NT 3
+#define RTL_REGISTRY_DEVICEMAP 4
+#define RTL_REGISTRY_USER 5
+#define RTL_REGISTRY_MAXIMUM 6
+#define RTL_REGISTRY_HANDLE 0x40000000
+#define RTL_REGISTRY_OPTIONAL 0x80000000
+
+#define RTL_QUERY_REGISTRY_SUBKEY 0x00000001
+#define RTL_QUERY_REGISTRY_TOPKEY 0x00000002
+#define RTL_QUERY_REGISTRY_REQUIRED 0x00000004
+#define RTL_QUERY_REGISTRY_NOVALUE 0x00000008
+#define RTL_QUERY_REGISTRY_NOEXPAND 0x00000010
+#define RTL_QUERY_REGISTRY_DIRECT 0x00000020
+#define RTL_QUERY_REGISTRY_DELETE 0x00000040
+
+typedef NTSTATUS (*PRTL_QUERY_REGISTRY_ROUTINE)(wchar_t *name, ULONG type,
+ void *data, ULONG length,
+ void *context,
+ void *entry) wstdcall;
+
+struct rtl_query_registry_table {
+ PRTL_QUERY_REGISTRY_ROUTINE query_func;
+ ULONG flags;
+ wchar_t *name;
+ void *context;
+ ULONG def_type;
+ void *def_data;
+ ULONG def_length;
+};
+
+struct io_remove_lock {
+ BOOLEAN removed;
+ BOOLEAN reserved[3];
+ LONG io_count;
+ struct nt_event remove_event;
+};
+
+struct io_error_log_packet {
+ UCHAR major_fn_code;
+ UCHAR retry_count;
+ USHORT dump_data_size;
+ USHORT nr_of_strings;
+ USHORT string_offset;
+ USHORT event_category;
+ NTSTATUS error_code;
+ ULONG unique_error_value;
+ NTSTATUS final_status;
+ ULONG sequence_number;
+ ULONG io_control_code;
+ LARGE_INTEGER device_offset;
+ ULONG dump_data[1];
+};
+
+/* some of the functions below are slightly different from DDK's
+ * implementation; e.g., Insert functions return appropriate
+ * pointer */
+
+/* instead of using Linux's lists, we implement list manipulation
+ * functions because nt_list is used by drivers and we don't want to
+ * worry about Linux's list being different from nt_list (right now
+ * they are same, but in future they could be different) */
+
+static inline void InitializeListHead(struct nt_list *head)
+{
+ head->next = head->prev = head;
+}
+
+static inline BOOLEAN IsListEmpty(struct nt_list *head)
+{
+ if (head == head->next)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+static inline void RemoveEntryList(struct nt_list *entry)
+{
+ entry->prev->next = entry->next;
+ entry->next->prev = entry->prev;
+}
+
+static inline struct nt_list *RemoveHeadList(struct nt_list *head)
+{
+ struct nt_list *entry;
+
+ entry = head->next;
+ if (entry == head)
+ return NULL;
+ else {
+ RemoveEntryList(entry);
+ return entry;
+ }
+}
+
+static inline struct nt_list *RemoveTailList(struct nt_list *head)
+{
+ struct nt_list *entry;
+
+ entry = head->prev;
+ if (entry == head)
+ return NULL;
+ else {
+ RemoveEntryList(entry);
+ return entry;
+ }
+}
+
+static inline void InsertListEntry(struct nt_list *entry, struct nt_list *prev,
+ struct nt_list *next)
+{
+ next->prev = entry;
+ entry->next = next;
+ entry->prev = prev;
+ prev->next = entry;
+}
+
+static inline struct nt_list *InsertHeadList(struct nt_list *head,
+ struct nt_list *entry)
+{
+ struct nt_list *ret;
+
+ if (IsListEmpty(head))
+ ret = NULL;
+ else
+ ret = head->next;
+
+ InsertListEntry(entry, head, head->next);
+ return ret;
+}
+
+static inline struct nt_list *InsertTailList(struct nt_list *head,
+ struct nt_list *entry)
+{
+ struct nt_list *ret;
+
+ if (IsListEmpty(head))
+ ret = NULL;
+ else
+ ret = head->prev;
+
+ InsertListEntry(entry, head->prev, head);
+ return ret;
+}
+
+#define nt_list_for_each(pos, head) \
+ for (pos = (head)->next; pos != (head); pos = pos->next)
+
+#define nt_list_for_each_entry(pos, head, member) \
+ for (pos = container_of((head)->next, typeof(*pos), member); \
+ &pos->member != (head); \
+ pos = container_of(pos->member.next, typeof(*pos), member))
+
+#define nt_list_for_each_safe(pos, n, head) \
+ for (pos = (head)->next, n = pos->next; pos != (head); \
+ pos = n, n = pos->next)
+
+/* device object flags */
+#define DO_VERIFY_VOLUME 0x00000002
+#define DO_BUFFERED_IO 0x00000004
+#define DO_EXCLUSIVE 0x00000008
+#define DO_DIRECT_IO 0x00000010
+#define DO_MAP_IO_BUFFER 0x00000020
+#define DO_DEVICE_HAS_NAME 0x00000040
+#define DO_DEVICE_INITIALIZING 0x00000080
+#define DO_SYSTEM_BOOT_PARTITION 0x00000100
+#define DO_LONG_TERM_REQUESTS 0x00000200
+#define DO_NEVER_LAST_DEVICE 0x00000400
+#define DO_SHUTDOWN_REGISTERED 0x00000800
+#define DO_BUS_ENUMERATED_DEVICE 0x00001000
+#define DO_POWER_PAGABLE 0x00002000
+#define DO_POWER_INRUSH 0x00004000
+#define DO_LOW_PRIORITY_FILESYSTEM 0x00010000
+
+/* Various supported device types (used with IoCreateDevice()) */
+
+#define FILE_DEVICE_BEEP 0x00000001
+#define FILE_DEVICE_CD_ROM 0x00000002
+#define FILE_DEVICE_CD_ROM_FILE_SYSTEM 0x00000003
+#define FILE_DEVICE_CONTROLLER 0x00000004
+#define FILE_DEVICE_DATALINK 0x00000005
+#define FILE_DEVICE_DFS 0x00000006
+#define FILE_DEVICE_DISK 0x00000007
+#define FILE_DEVICE_DISK_FILE_SYSTEM 0x00000008
+#define FILE_DEVICE_FILE_SYSTEM 0x00000009
+#define FILE_DEVICE_INPORT_PORT 0x0000000A
+#define FILE_DEVICE_KEYBOARD 0x0000000B
+#define FILE_DEVICE_MAILSLOT 0x0000000C
+#define FILE_DEVICE_MIDI_IN 0x0000000D
+#define FILE_DEVICE_MIDI_OUT 0x0000000E
+#define FILE_DEVICE_MOUSE 0x0000000F
+#define FILE_DEVICE_MULTI_UNC_PROVIDER 0x00000010
+#define FILE_DEVICE_NAMED_PIPE 0x00000011
+#define FILE_DEVICE_NETWORK 0x00000012
+#define FILE_DEVICE_NETWORK_BROWSER 0x00000013
+#define FILE_DEVICE_NETWORK_FILE_SYSTEM 0x00000014
+#define FILE_DEVICE_NULL 0x00000015
+#define FILE_DEVICE_PARALLEL_PORT 0x00000016
+#define FILE_DEVICE_PHYSICAL_NETCARD 0x00000017
+#define FILE_DEVICE_PRINTER 0x00000018
+#define FILE_DEVICE_SCANNER 0x00000019
+#define FILE_DEVICE_SERIAL_MOUSE_PORT 0x0000001A
+#define FILE_DEVICE_SERIAL_PORT 0x0000001B
+#define FILE_DEVICE_SCREEN 0x0000001C
+#define FILE_DEVICE_SOUND 0x0000001D
+#define FILE_DEVICE_STREAMS 0x0000001E
+#define FILE_DEVICE_TAPE 0x0000001F
+#define FILE_DEVICE_TAPE_FILE_SYSTEM 0x00000020
+#define FILE_DEVICE_TRANSPORT 0x00000021
+#define FILE_DEVICE_UNKNOWN 0x00000022
+#define FILE_DEVICE_VIDEO 0x00000023
+#define FILE_DEVICE_VIRTUAL_DISK 0x00000024
+#define FILE_DEVICE_WAVE_IN 0x00000025
+#define FILE_DEVICE_WAVE_OUT 0x00000026
+#define FILE_DEVICE_8042_PORT 0x00000027
+#define FILE_DEVICE_NETWORK_REDIRECTOR 0x00000028
+#define FILE_DEVICE_BATTERY 0x00000029
+#define FILE_DEVICE_BUS_EXTENDER 0x0000002A
+#define FILE_DEVICE_MODEM 0x0000002B
+#define FILE_DEVICE_VDM 0x0000002C
+#define FILE_DEVICE_MASS_STORAGE 0x0000002D
+#define FILE_DEVICE_SMB 0x0000002E
+#define FILE_DEVICE_KS 0x0000002F
+#define FILE_DEVICE_CHANGER 0x00000030
+#define FILE_DEVICE_SMARTCARD 0x00000031
+#define FILE_DEVICE_ACPI 0x00000032
+#define FILE_DEVICE_DVD 0x00000033
+#define FILE_DEVICE_FULLSCREEN_VIDEO 0x00000034
+#define FILE_DEVICE_DFS_FILE_SYSTEM 0x00000035
+#define FILE_DEVICE_DFS_VOLUME 0x00000036
+#define FILE_DEVICE_SERENUM 0x00000037
+#define FILE_DEVICE_TERMSRV 0x00000038
+#define FILE_DEVICE_KSEC 0x00000039
+#define FILE_DEVICE_FIPS 0x0000003A
+
+/* Device characteristics */
+
+#define FILE_REMOVABLE_MEDIA 0x00000001
+#define FILE_READ_ONLY_DEVICE 0x00000002
+#define FILE_FLOPPY_DISKETTE 0x00000004
+#define FILE_WRITE_ONCE_MEDIA 0x00000008
+#define FILE_REMOTE_DEVICE 0x00000010
+#define FILE_DEVICE_IS_MOUNTED 0x00000020
+#define FILE_VIRTUAL_VOLUME 0x00000040
+#define FILE_AUTOGENERATED_DEVICE_NAME 0x00000080
+#define FILE_DEVICE_SECURE_OPEN 0x00000100
+
+#define FILE_READ_DATA 0x0001
+#define FILE_WRITE_DATA 0x0002
+
+#define FILE_SUPERSEDED 0x00000000
+#define FILE_OPENED 0x00000001
+#define FILE_CREATED 0x00000002
+#define FILE_OVERWRITTEN 0x00000003
+#define FILE_EXISTS 0x00000004
+#define FILE_DOES_NOT_EXIST 0x00000005
+
+
+#endif /* WINNT_TYPES_H */
diff --git a/ubuntu/ndiswrapper/wrapmem.c b/ubuntu/ndiswrapper/wrapmem.c
new file mode 100644
index 00000000000..bd63df66a10
--- /dev/null
+++ b/ubuntu/ndiswrapper/wrapmem.c
@@ -0,0 +1,360 @@
+/*
+ * Copyright (C) 2006 Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#define _WRAPMEM_C_
+
+#include "ntoskernel.h"
+
+struct slack_alloc_info {
+ struct nt_list list;
+ size_t size;
+};
+
+static struct nt_list allocs;
+static struct nt_list slack_allocs;
+static spinlock_t alloc_lock;
+
+struct vmem_block {
+ struct nt_list list;
+ int size;
+};
+
+static struct nt_list vmem_list;
+
+#if defined(ALLOC_DEBUG)
+struct alloc_info {
+ enum alloc_type type;
+ size_t size;
+#if ALLOC_DEBUG > 1
+ struct nt_list list;
+ const char *file;
+ int line;
+ ULONG tag;
+#endif
+};
+
+static atomic_t alloc_sizes[ALLOC_TYPE_MAX];
+#endif
+
+void wrapmem_info(void)
+{
+#ifdef ALLOC_DEBUG
+ enum alloc_type type;
+ for (type = 0; type < ALLOC_TYPE_MAX; type++)
+ INFO("total size of allocations in %d: %d",
+ type, atomic_read(&alloc_sizes[type]));
+#endif
+}
+
+/* allocate memory and add it to list of allocated pointers; if a
+ * driver doesn't free this memory for any reason (buggy driver or we
+ * allocate space behind driver's back since we need more space than
+ * corresponding Windows structure provides etc.), this gets freed
+ * automatically when module is unloaded
+ */
+void *slack_kmalloc(size_t size)
+{
+ struct slack_alloc_info *info;
+ gfp_t flags;
+
+ ENTER4("size = %lu", (unsigned long)size);
+
+ if (irql_gfp() & GFP_ATOMIC)
+ flags = GFP_ATOMIC;
+ else
+ flags = GFP_KERNEL;
+ info = kmalloc(size + sizeof(*info), flags);
+ if (!info)
+ return NULL;
+ info->size = size;
+ spin_lock_bh(&alloc_lock);
+ InsertTailList(&slack_allocs, &info->list);
+ spin_unlock_bh(&alloc_lock);
+#ifdef ALLOC_DEBUG
+ atomic_add(size, &alloc_sizes[ALLOC_TYPE_SLACK]);
+#endif
+ TRACE4("%p, %p", info, info + 1);
+ EXIT4(return info + 1);
+}
+
+/* free pointer and remove from list of allocated pointers */
+void slack_kfree(void *ptr)
+{
+ struct slack_alloc_info *info;
+
+ ENTER4("%p", ptr);
+ info = ptr - sizeof(*info);
+ spin_lock_bh(&alloc_lock);
+ RemoveEntryList(&info->list);
+ spin_unlock_bh(&alloc_lock);
+#ifdef ALLOC_DEBUG
+ atomic_sub(info->size, &alloc_sizes[ALLOC_TYPE_SLACK]);
+#endif
+ kfree(info);
+ EXIT4(return);
+}
+
+#if defined(ALLOC_DEBUG)
+void *wrap_kmalloc(size_t size, gfp_t flags, const char *file, int line)
+{
+ struct alloc_info *info;
+
+ info = kmalloc(size + sizeof(*info), flags);
+ if (!info)
+ return NULL;
+ if (flags & GFP_ATOMIC)
+ info->type = ALLOC_TYPE_KMALLOC_ATOMIC;
+ else
+ info->type = ALLOC_TYPE_KMALLOC_NON_ATOMIC;
+ info->size = size;
+ atomic_add(size, &alloc_sizes[info->type]);
+#if ALLOC_DEBUG > 1
+ info->file = file;
+ info->line = line;
+ info->tag = 0;
+ spin_lock_bh(&alloc_lock);
+ InsertTailList(&allocs, &info->list);
+ spin_unlock_bh(&alloc_lock);
+#endif
+ TRACE4("%p", info + 1);
+ return info + 1;
+}
+
+void *wrap_kzalloc(size_t size, gfp_t flags, const char *file, int line)
+{
+ void *ptr = wrap_kmalloc(size, flags, file, line);
+ if (ptr)
+ memset(ptr, 0, size);
+ return ptr;
+}
+
+void wrap_kfree(void *ptr)
+{
+ struct alloc_info *info;
+
+ TRACE4("%p", ptr);
+ if (!ptr)
+ return;
+ info = ptr - sizeof(*info);
+ atomic_sub(info->size, &alloc_sizes[info->type]);
+#if ALLOC_DEBUG > 1
+ spin_lock_bh(&alloc_lock);
+ RemoveEntryList(&info->list);
+ spin_unlock_bh(&alloc_lock);
+ if (!(info->type == ALLOC_TYPE_KMALLOC_ATOMIC ||
+ info->type == ALLOC_TYPE_KMALLOC_NON_ATOMIC))
+ WARNING("invliad type: %d", info->type);
+#endif
+ kfree(info);
+}
+
+void *wrap_vmalloc(unsigned long size, const char *file, int line)
+{
+ struct alloc_info *info;
+
+ info = vmalloc(size + sizeof(*info));
+ if (!info)
+ return NULL;
+ info->type = ALLOC_TYPE_VMALLOC_NON_ATOMIC;
+ info->size = size;
+ atomic_add(size, &alloc_sizes[info->type]);
+#if ALLOC_DEBUG > 1
+ info->file = file;
+ info->line = line;
+ info->tag = 0;
+ spin_lock_bh(&alloc_lock);
+ InsertTailList(&allocs, &info->list);
+ spin_unlock_bh(&alloc_lock);
+#endif
+ return info + 1;
+}
+
+void *wrap__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot,
+ const char *file, int line)
+{
+ struct alloc_info *info;
+
+ info = __vmalloc(size + sizeof(*info), gfp_mask, prot);
+ if (!info)
+ return NULL;
+ if (gfp_mask & GFP_ATOMIC)
+ info->type = ALLOC_TYPE_VMALLOC_ATOMIC;
+ else
+ info->type = ALLOC_TYPE_VMALLOC_NON_ATOMIC;
+ info->size = size;
+ atomic_add(size, &alloc_sizes[info->type]);
+#if ALLOC_DEBUG > 1
+ info->file = file;
+ info->line = line;
+ info->tag = 0;
+ spin_lock_bh(&alloc_lock);
+ InsertTailList(&allocs, &info->list);
+ spin_unlock_bh(&alloc_lock);
+#endif
+ return info + 1;
+}
+
+void wrap_vfree(void *ptr)
+{
+ struct alloc_info *info;
+
+ info = ptr - sizeof(*info);
+ atomic_sub(info->size, &alloc_sizes[info->type]);
+#if ALLOC_DEBUG > 1
+ spin_lock_bh(&alloc_lock);
+ RemoveEntryList(&info->list);
+ spin_unlock_bh(&alloc_lock);
+ if (!(info->type == ALLOC_TYPE_VMALLOC_ATOMIC ||
+ info->type == ALLOC_TYPE_VMALLOC_NON_ATOMIC))
+ WARNING("invliad type: %d", info->type);
+#endif
+ vfree(info);
+}
+
+void *wrap_alloc_pages(gfp_t flags, unsigned int size,
+ const char *file, int line)
+{
+ struct alloc_info *info;
+
+ size += sizeof(*info);
+ info = (struct alloc_info *)__get_free_pages(flags, get_order(size));
+ if (!info)
+ return NULL;
+ info->type = ALLOC_TYPE_PAGES;
+ info->size = size;
+ atomic_add(size, &alloc_sizes[info->type]);
+#if ALLOC_DEBUG > 1
+ info->file = file;
+ info->line = line;
+ info->tag = 0;
+ spin_lock_bh(&alloc_lock);
+ InsertTailList(&allocs, &info->list);
+ spin_unlock_bh(&alloc_lock);
+#endif
+ return info + 1;
+}
+
+void wrap_free_pages(unsigned long ptr, int order)
+{
+ struct alloc_info *info;
+
+ info = (void *)ptr - sizeof(*info);
+ atomic_sub(info->size, &alloc_sizes[info->type]);
+#if ALLOC_DEBUG > 1
+ spin_lock_bh(&alloc_lock);
+ RemoveEntryList(&info->list);
+ spin_unlock_bh(&alloc_lock);
+ if (info->type != ALLOC_TYPE_PAGES)
+ WARNING("invliad type: %d", info->type);
+#endif
+ free_pages((unsigned long)info, get_order(info->size));
+}
+
+#if ALLOC_DEBUG > 1
+#undef ExAllocatePoolWithTag
+void *wrap_ExAllocatePoolWithTag(enum pool_type pool_type, SIZE_T size,
+ ULONG tag, const char *file, int line)
+{
+ void *addr;
+ struct alloc_info *info;
+
+ ENTER4("pool_type: %d, size: %lu, tag: %u", pool_type, size, tag);
+ addr = ExAllocatePoolWithTag(pool_type, size, tag);
+ if (!addr)
+ return NULL;
+ info = addr - sizeof(*info);
+ info->file = file;
+ info->line = line;
+ info->tag = tag;
+ EXIT4(return addr);
+}
+#endif
+
+int alloc_size(enum alloc_type type)
+{
+ if (type >= 0 && type < ALLOC_TYPE_MAX)
+ return atomic_read(&alloc_sizes[type]);
+ else
+ return -EINVAL;
+}
+
+#endif // ALLOC_DEBUG
+
+int wrapmem_init(void)
+{
+ InitializeListHead(&allocs);
+ InitializeListHead(&slack_allocs);
+ InitializeListHead(&vmem_list);
+ spin_lock_init(&alloc_lock);
+ return 0;
+}
+
+void wrapmem_exit(void)
+{
+ enum alloc_type type;
+ struct nt_list *ent;
+
+ /* free all pointers on the slack list */
+ while (1) {
+ struct slack_alloc_info *info;
+ spin_lock_bh(&alloc_lock);
+ ent = RemoveHeadList(&slack_allocs);
+ spin_unlock_bh(&alloc_lock);
+ if (!ent)
+ break;
+ info = container_of(ent, struct slack_alloc_info, list);
+#ifdef ALLOC_DEBUG
+ atomic_sub(info->size, &alloc_sizes[ALLOC_TYPE_SLACK]);
+#endif
+ kfree(info);
+ }
+ type = 0;
+#ifdef ALLOC_DEBUG
+ for (type = 0; type < ALLOC_TYPE_MAX; type++) {
+ int n = atomic_read(&alloc_sizes[type]);
+ if (n)
+ WARNING("%d bytes of memory in %d leaking", n, type);
+ }
+
+#if ALLOC_DEBUG > 1
+ while (1) {
+ struct alloc_info *info;
+
+ spin_lock_bh(&alloc_lock);
+ ent = RemoveHeadList(&allocs);
+ spin_unlock_bh(&alloc_lock);
+ if (!ent)
+ break;
+ info = container_of(ent, struct alloc_info, list);
+ atomic_sub(info->size, &alloc_sizes[ALLOC_TYPE_SLACK]);
+ WARNING("%p in %d of size %zu allocated at %s(%d) "
+ "with tag 0x%08X leaking; freeing it now",
+ info + 1, info->type, info->size, info->file,
+ info->line, info->tag);
+ if (info->type == ALLOC_TYPE_KMALLOC_ATOMIC ||
+ info->type == ALLOC_TYPE_KMALLOC_NON_ATOMIC)
+ kfree(info);
+ else if (info->type == ALLOC_TYPE_VMALLOC_ATOMIC ||
+ info->type == ALLOC_TYPE_VMALLOC_NON_ATOMIC)
+ vfree(info);
+ else if (info->type == ALLOC_TYPE_PAGES)
+ free_pages((unsigned long)info, get_order(info->size));
+ else
+ WARNING("invalid type: %d; not freed", info->type);
+ }
+#endif
+#endif
+ return;
+}
diff --git a/ubuntu/ndiswrapper/wrapmem.h b/ubuntu/ndiswrapper/wrapmem.h
new file mode 100644
index 00000000000..7374ae261ea
--- /dev/null
+++ b/ubuntu/ndiswrapper/wrapmem.h
@@ -0,0 +1,94 @@
+/*
+ * Copyright (C) 2006 Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef _WRAPMEM_H_
+
+/* set ALLOC_DEBUG to 1 to get information about memory used by both
+ * ndiswrapper and Windows driver by reading
+ * /proc/net/ndiswrapper/debug; this will also show memory leaks
+ * (memory allocated but not freed) when ndiswrapper module is
+ * unloaded.
+
+ * ALLOC_DEBUG=2: details about individual allocations leaking is printed
+ * ALLOC_DEBUG=3: tags in ExAllocatePoolWithTag leaking printed
+*/
+
+//#ifndef ALLOC_DEBUG
+//#define ALLOC_DEBUG 1
+//#endif
+
+enum alloc_type { ALLOC_TYPE_KMALLOC_ATOMIC, ALLOC_TYPE_KMALLOC_NON_ATOMIC,
+ ALLOC_TYPE_VMALLOC_ATOMIC, ALLOC_TYPE_VMALLOC_NON_ATOMIC,
+ ALLOC_TYPE_SLACK, ALLOC_TYPE_PAGES, ALLOC_TYPE_MAX };
+
+int wrapmem_init(void);
+void wrapmem_exit(void);
+void *slack_kmalloc(size_t size);
+void slack_kfree(void *ptr);
+void wrapmem_info(void);
+
+#ifdef ALLOC_DEBUG
+void *wrap_kmalloc(size_t size, gfp_t flags, const char *file, int line);
+void *wrap_kzalloc(size_t size, gfp_t flags, const char *file, int line);
+void wrap_kfree(void *ptr);
+void *wrap_vmalloc(unsigned long size, const char *file, int line);
+void *wrap__vmalloc(unsigned long size, gfp_t flags, pgprot_t prot,
+ const char *file, int line);
+void wrap_vfree(void *ptr);
+void *wrap_alloc_pages(gfp_t flags, unsigned int size,
+ const char *file, int line);
+void wrap_free_pages(unsigned long ptr, int order);
+int alloc_size(enum alloc_type type);
+
+#ifndef _WRAPMEM_C_
+#undef kmalloc
+#undef kzalloc
+#undef kfree
+#undef vmalloc
+#undef __vmalloc
+#undef vfree
+#define kmalloc(size, flags) \
+ wrap_kmalloc(size, flags, __FILE__, __LINE__)
+#define kzalloc(size, flags) \
+ wrap_kzalloc(size, flags, __FILE__, __LINE__)
+#define vmalloc(size) \
+ wrap_vmalloc(size, __FILE__, __LINE__)
+#define __vmalloc(size, flags, prot) \
+ wrap__vmalloc(size, flags, prot, __FILE__, __LINE__)
+#define kfree(ptr) wrap_kfree(ptr)
+#define vfree(ptr) wrap_vfree(ptr)
+
+#define wrap_get_free_pages(flags, size) \
+ wrap_alloc_pages(flags, size, __FILE__, __LINE__)
+#undef free_pages
+#define free_pages(ptr, order) wrap_free_pages(ptr, order)
+
+#if ALLOC_DEBUG > 1
+void *wrap_ExAllocatePoolWithTag(enum pool_type pool_type, SIZE_T size,
+ ULONG tag, const char *file, int line);
+#define ExAllocatePoolWithTag(pool_type, size, tag) \
+ wrap_ExAllocatePoolWithTag(pool_type, size, tag, __FILE__, __LINE__)
+#endif
+
+#endif // _WRAPMEM_C_
+
+#else
+
+#define wrap_get_free_pages(flags, size) \
+ (void *)__get_free_pages(flags, get_order(size))
+
+#endif // ALLOC_DEBUG
+
+#endif
diff --git a/ubuntu/ndiswrapper/wrapndis.c b/ubuntu/ndiswrapper/wrapndis.c
new file mode 100644
index 00000000000..2ac89e7e239
--- /dev/null
+++ b/ubuntu/ndiswrapper/wrapndis.c
@@ -0,0 +1,2134 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "ndis.h"
+#include "iw_ndis.h"
+#include "pnp.h"
+#include "loader.h"
+#include "wrapndis.h"
+#include <linux/inetdevice.h>
+#include <linux/ip.h>
+#include <linux/tcp.h>
+#include <linux/udp.h>
+#include <linux/in.h>
+#include "wrapper.h"
+
+/* Functions callable from the NDIS driver */
+wstdcall NTSTATUS NdisDispatchDeviceControl(struct device_object *fdo,
+ struct irp *irp);
+wstdcall NTSTATUS NdisDispatchPnp(struct device_object *fdo, struct irp *irp);
+wstdcall NTSTATUS NdisDispatchPower(struct device_object *fdo, struct irp *irp);
+
+workqueue_struct_t *wrapndis_wq;
+static struct nt_thread *wrapndis_worker_thread;
+
+static int set_packet_filter(struct ndis_device *wnd,
+ ULONG packet_filter);
+static void add_iw_stats_timer(struct ndis_device *wnd);
+static void del_iw_stats_timer(struct ndis_device *wnd);
+static NDIS_STATUS ndis_start_device(struct ndis_device *wnd);
+static int ndis_remove_device(struct ndis_device *wnd);
+static void set_multicast_list(struct ndis_device *wnd);
+static int ndis_net_dev_open(struct net_device *net_dev);
+static int ndis_net_dev_close(struct net_device *net_dev);
+
+/* MiniportReset */
+NDIS_STATUS mp_reset(struct ndis_device *wnd)
+{
+ NDIS_STATUS res;
+ struct miniport *mp;
+ BOOLEAN reset_address;
+ KIRQL irql;
+
+ ENTER2("wnd: %p", wnd);
+ if (down_interruptible(&wnd->tx_ring_mutex))
+ EXIT3(return NDIS_STATUS_FAILURE);
+ if (down_interruptible(&wnd->ndis_req_mutex)) {
+ up(&wnd->tx_ring_mutex);
+ EXIT3(return NDIS_STATUS_FAILURE);
+ }
+ mp = &wnd->wd->driver->ndis_driver->mp;
+ prepare_wait_condition(wnd->ndis_req_task, wnd->ndis_req_done, 0);
+ WARNING("%s is being reset", wnd->net_dev->name);
+ irql = serialize_lock_irql(wnd);
+ assert_irql(_irql_ == DISPATCH_LEVEL);
+ res = LIN2WIN2(mp->reset, &reset_address, wnd->nmb->mp_ctx);
+ serialize_unlock_irql(wnd, irql);
+
+ TRACE2("%08X, %08X", res, reset_address);
+ if (res == NDIS_STATUS_PENDING) {
+ /* wait for NdisMResetComplete */
+ if (wait_condition((wnd->ndis_req_done > 0), 0,
+ TASK_INTERRUPTIBLE) < 0)
+ res = NDIS_STATUS_FAILURE;
+ else {
+ res = wnd->ndis_req_status;
+ reset_address = wnd->ndis_req_done - 1;
+ }
+ TRACE2("%08X, %08X", res, reset_address);
+ }
+ up(&wnd->ndis_req_mutex);
+ if (res == NDIS_STATUS_SUCCESS && reset_address) {
+ set_packet_filter(wnd, wnd->packet_filter);
+ set_multicast_list(wnd);
+ }
+ up(&wnd->tx_ring_mutex);
+ EXIT3(return res);
+}
+
+/* MiniportRequest(Query/Set)Information */
+NDIS_STATUS mp_request(enum ndis_request_type request,
+ struct ndis_device *wnd, ndis_oid oid,
+ void *buf, ULONG buflen, ULONG *written, ULONG *needed)
+{
+ NDIS_STATUS res;
+ ULONG w, n;
+ struct miniport *mp;
+ KIRQL irql;
+
+ if (down_interruptible(&wnd->ndis_req_mutex))
+ EXIT3(return NDIS_STATUS_FAILURE);
+ if (!written)
+ written = &w;
+ if (!needed)
+ needed = &n;
+ mp = &wnd->wd->driver->ndis_driver->mp;
+ prepare_wait_condition(wnd->ndis_req_task, wnd->ndis_req_done, 0);
+ irql = serialize_lock_irql(wnd);
+ assert_irql(_irql_ == DISPATCH_LEVEL);
+ switch (request) {
+ case NdisRequestQueryInformation:
+ TRACE2("%p, %08X, %p", mp->queryinfo, oid, wnd->nmb->mp_ctx);
+ res = LIN2WIN6(mp->queryinfo, wnd->nmb->mp_ctx, oid, buf,
+ buflen, written, needed);
+ break;
+ case NdisRequestSetInformation:
+ TRACE2("%p, %08X, %p", mp->setinfo, oid, wnd->nmb->mp_ctx);
+ res = LIN2WIN6(mp->setinfo, wnd->nmb->mp_ctx, oid, buf,
+ buflen, written, needed);
+ break;
+ default:
+ WARNING("invalid request %d, %08X", request, oid);
+ res = NDIS_STATUS_NOT_SUPPORTED;
+ break;
+ }
+ serialize_unlock_irql(wnd, irql);
+ TRACE2("%08X, %08X", res, oid);
+ if (res == NDIS_STATUS_PENDING) {
+ /* wait for NdisMQueryInformationComplete */
+ if (wait_condition((wnd->ndis_req_done > 0), 0,
+ TASK_INTERRUPTIBLE) < 0)
+ res = NDIS_STATUS_FAILURE;
+ else
+ res = wnd->ndis_req_status;
+ TRACE2("%08X, %08X", res, oid);
+ }
+ up(&wnd->ndis_req_mutex);
+ DBG_BLOCK(2) {
+ if (res || needed)
+ TRACE2("%08X, %d, %d, %d", res, buflen, *written,
+ *needed);
+ }
+ EXIT3(return res);
+}
+
+/* MiniportPnPEventNotify */
+static NDIS_STATUS mp_pnp_event(struct ndis_device *wnd,
+ enum ndis_device_pnp_event event,
+ ULONG power_profile)
+{
+ struct miniport *mp;
+
+ ENTER1("%p, %d", wnd, event);
+ mp = &wnd->wd->driver->ndis_driver->mp;
+ if (!mp->pnp_event_notify) {
+ TRACE1("Windows driver %s doesn't support "
+ "MiniportPnpEventNotify", wnd->wd->driver->name);
+ return NDIS_STATUS_FAILURE;
+ }
+ /* RNDIS driver doesn't like to be notified if device is
+ * already halted */
+ if (!test_bit(HW_INITIALIZED, &wnd->wd->hw_status))
+ EXIT1(return NDIS_STATUS_SUCCESS);
+ switch (event) {
+ case NdisDevicePnPEventSurpriseRemoved:
+ TRACE1("%u, %p",
+ (wnd->attributes & NDIS_ATTRIBUTE_SURPRISE_REMOVE_OK),
+ mp->pnp_event_notify);
+ if ((wnd->attributes & NDIS_ATTRIBUTE_SURPRISE_REMOVE_OK) &&
+ !test_bit(HW_PRESENT, &wnd->wd->hw_status) &&
+ mp->pnp_event_notify) {
+ TRACE1("calling surprise_removed");
+ LIN2WIN4(mp->pnp_event_notify, wnd->nmb->mp_ctx,
+ NdisDevicePnPEventSurpriseRemoved, NULL, 0);
+ } else
+ TRACE1("Windows driver %s doesn't support "
+ "MiniportPnpEventNotify for safe unplugging",
+ wnd->wd->driver->name);
+ return NDIS_STATUS_SUCCESS;
+ case NdisDevicePnPEventPowerProfileChanged:
+ if (power_profile)
+ power_profile = NdisPowerProfileAcOnLine;
+ LIN2WIN4(mp->pnp_event_notify, wnd->nmb->mp_ctx,
+ NdisDevicePnPEventPowerProfileChanged,
+ &power_profile, (ULONG)sizeof(power_profile));
+ return NDIS_STATUS_SUCCESS;
+ default:
+ WARNING("event %d not yet implemented", event);
+ return NDIS_STATUS_SUCCESS;
+ }
+}
+
+/* MiniportInitialize */
+static NDIS_STATUS mp_init(struct ndis_device *wnd)
+{
+ NDIS_STATUS error_status, status;
+ UINT medium_index;
+ enum ndis_medium medium_array[] = {NdisMedium802_3};
+ struct miniport *mp;
+
+ ENTER1("irql: %d", current_irql());
+ if (test_bit(HW_INITIALIZED, &wnd->wd->hw_status)) {
+ WARNING("device %p already initialized!", wnd);
+ return NDIS_STATUS_FAILURE;
+ }
+
+ if (!wnd->wd->driver->ndis_driver ||
+ !wnd->wd->driver->ndis_driver->mp.init) {
+ WARNING("assuming WDM (non-NDIS) driver");
+ EXIT1(return NDIS_STATUS_NOT_RECOGNIZED);
+ }
+ mp = &wnd->wd->driver->ndis_driver->mp;
+ status = LIN2WIN6(mp->init, &error_status, &medium_index, medium_array,
+ sizeof(medium_array) / sizeof(medium_array[0]),
+ wnd->nmb, wnd->nmb);
+ TRACE1("init returns: %08X, irql: %d", status, current_irql());
+ if (status != NDIS_STATUS_SUCCESS) {
+ WARNING("couldn't initialize device: %08X", status);
+ EXIT1(return NDIS_STATUS_FAILURE);
+ }
+
+ /* Wait a little to let card power up otherwise ifup might
+ * fail after boot */
+ sleep_hz(HZ / 5);
+ status = mp_pnp_event(wnd, NdisDevicePnPEventPowerProfileChanged,
+ NdisPowerProfileAcOnLine);
+ if (status != NDIS_STATUS_SUCCESS)
+ TRACE1("setting power failed: %08X", status);
+ set_bit(HW_INITIALIZED, &wnd->wd->hw_status);
+ /* the description about NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND is
+ * misleading/confusing */
+ status = mp_query(wnd, OID_PNP_CAPABILITIES,
+ &wnd->pnp_capa, sizeof(wnd->pnp_capa));
+ if (status == NDIS_STATUS_SUCCESS) {
+ TRACE1("%d, %d", wnd->pnp_capa.wakeup.min_magic_packet_wakeup,
+ wnd->pnp_capa.wakeup.min_pattern_wakeup);
+ wnd->attributes |= NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND;
+ status = mp_query_int(wnd, OID_PNP_ENABLE_WAKE_UP,
+ &wnd->ndis_wolopts);
+ TRACE1("%08X, %x", status, wnd->ndis_wolopts);
+ } else if (status == NDIS_STATUS_NOT_SUPPORTED)
+ wnd->attributes &= ~NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND;
+ TRACE1("%d", wnd->pnp_capa.wakeup.min_magic_packet_wakeup);
+ /* although some NDIS drivers support suspend, Linux kernel
+ * has issues with suspending USB devices */
+ if (wrap_is_usb_bus(wnd->wd->dev_bus)) {
+ wnd->attributes &= ~NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND;
+ wnd->ndis_wolopts = 0;
+ }
+ mp_set_int(wnd, OID_802_11_POWER_MODE, NDIS_POWER_OFF);
+ EXIT1(return NDIS_STATUS_SUCCESS);
+}
+
+/* MiniportHalt */
+static void mp_halt(struct ndis_device *wnd)
+{
+ struct miniport *mp;
+
+ ENTER1("%p", wnd);
+ if (!test_and_clear_bit(HW_INITIALIZED, &wnd->wd->hw_status)) {
+ WARNING("device %p is not initialized - not halting", wnd);
+ return;
+ }
+ hangcheck_del(wnd);
+ del_iw_stats_timer(wnd);
+ if (wnd->physical_medium == NdisPhysicalMediumWirelessLan &&
+ wrap_is_pci_bus(wnd->wd->dev_bus)) {
+ up(&wnd->ndis_req_mutex);
+ disassociate(wnd, 0);
+ if (down_interruptible(&wnd->ndis_req_mutex))
+ WARNING("couldn't obtain ndis_req_mutex");
+ }
+ mp = &wnd->wd->driver->ndis_driver->mp;
+ TRACE1("halt: %p", mp->mp_halt);
+ LIN2WIN1(mp->mp_halt, wnd->nmb->mp_ctx);
+ /* if a driver doesn't call NdisMDeregisterInterrupt during
+ * halt, deregister it now */
+ if (wnd->mp_interrupt)
+ NdisMDeregisterInterrupt(wnd->mp_interrupt);
+ /* cancel any timers left by bugyy windows driver; also free
+ * the memory for timers */
+ while (1) {
+ struct nt_slist *slist;
+ struct wrap_timer *wrap_timer;
+
+ spin_lock_bh(&ntoskernel_lock);
+ if ((slist = wnd->wrap_timer_slist.next))
+ wnd->wrap_timer_slist.next = slist->next;
+ spin_unlock_bh(&ntoskernel_lock);
+ TIMERTRACE("%p", slist);
+ if (!slist)
+ break;
+ wrap_timer = container_of(slist, struct wrap_timer, slist);
+ wrap_timer->repeat = 0;
+ /* ktimer that this wrap_timer is associated to can't
+ * be touched, as it may have been freed by the driver
+ * already */
+ if (del_timer_sync(&wrap_timer->timer))
+ WARNING("Buggy Windows driver left timer %p "
+ "running", wrap_timer->nt_timer);
+ memset(wrap_timer, 0, sizeof(*wrap_timer));
+ kfree(wrap_timer);
+ }
+ EXIT1(return);
+}
+
+static NDIS_STATUS mp_set_power_state(struct ndis_device *wnd,
+ enum ndis_power_state state)
+{
+ NDIS_STATUS status;
+
+ TRACE1("%d", state);
+ if (state == NdisDeviceStateD0) {
+ status = NDIS_STATUS_SUCCESS;
+ up(&wnd->ndis_req_mutex);
+ if (test_and_clear_bit(HW_HALTED, &wnd->wd->hw_status)) {
+ status = mp_init(wnd);
+ if (status == NDIS_STATUS_SUCCESS) {
+ set_packet_filter(wnd, wnd->packet_filter);
+ set_multicast_list(wnd);
+ }
+ } else if (test_and_clear_bit(HW_SUSPENDED,
+ &wnd->wd->hw_status)) {
+ status = mp_set_int(wnd, OID_PNP_SET_POWER, state);
+ if (status != NDIS_STATUS_SUCCESS)
+ WARNING("%s: setting power to state %d failed? "
+ "%08X", wnd->net_dev->name, state,
+ status);
+ } else
+ return NDIS_STATUS_FAILURE;
+
+ if (wrap_is_pci_bus(wnd->wd->dev_bus)) {
+ pci_enable_wake(wnd->wd->pci.pdev, PCI_D3hot, 0);
+ pci_enable_wake(wnd->wd->pci.pdev, PCI_D3cold, 0);
+ }
+ if (status == NDIS_STATUS_SUCCESS) {
+ up(&wnd->tx_ring_mutex);
+ netif_device_attach(wnd->net_dev);
+ hangcheck_add(wnd);
+ add_iw_stats_timer(wnd);
+ } else
+ WARNING("%s: couldn't set power to state %d; device not"
+ " resumed", wnd->net_dev->name, state);
+ EXIT1(return status);
+ } else {
+ if (down_interruptible(&wnd->tx_ring_mutex))
+ EXIT1(return NDIS_STATUS_FAILURE);
+ netif_device_detach(wnd->net_dev);
+ hangcheck_del(wnd);
+ del_iw_stats_timer(wnd);
+ status = NDIS_STATUS_NOT_SUPPORTED;
+ if (wnd->attributes & NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND) {
+ status = mp_set_int(wnd, OID_PNP_ENABLE_WAKE_UP,
+ wnd->ndis_wolopts);
+ TRACE2("0x%x, 0x%x", status, wnd->ndis_wolopts);
+ if (status == NDIS_STATUS_SUCCESS) {
+ if (wnd->ndis_wolopts)
+ wnd->wd->pci.wake_state =
+ PowerDeviceD3;
+ else
+ wnd->wd->pci.wake_state =
+ PowerDeviceUnspecified;
+ } else
+ WARNING("couldn't set wake-on-lan options: "
+ "0x%x, %08X", wnd->ndis_wolopts, status);
+ status = mp_set_int(wnd, OID_PNP_SET_POWER, state);
+ if (status == NDIS_STATUS_SUCCESS)
+ set_bit(HW_SUSPENDED, &wnd->wd->hw_status);
+ else
+ WARNING("suspend failed: %08X", status);
+ }
+ if (status != NDIS_STATUS_SUCCESS) {
+ WARNING("%s does not support power management; "
+ "halting the device", wnd->net_dev->name);
+ mp_halt(wnd);
+ set_bit(HW_HALTED, &wnd->wd->hw_status);
+ status = STATUS_SUCCESS;
+ }
+ if (down_interruptible(&wnd->ndis_req_mutex))
+ WARNING("couldn't lock ndis_req_mutex");
+ EXIT1(return status);
+ }
+}
+
+static int ndis_set_mac_address(struct net_device *dev, void *p)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ struct sockaddr *addr = p;
+ struct ndis_configuration_parameter param;
+ struct unicode_string key;
+ struct ansi_string ansi;
+ NDIS_STATUS res;
+ unsigned char mac_string[2 * ETH_ALEN + 1];
+ mac_address mac;
+
+ memcpy(mac, addr->sa_data, sizeof(mac));
+ memset(mac_string, 0, sizeof(mac_string));
+ res = snprintf(mac_string, sizeof(mac_string), MACSTR, MAC2STR(mac));
+ if (res != (sizeof(mac_string) - 1))
+ EXIT1(return -EINVAL);
+ TRACE1("new mac: %s", mac_string);
+
+ RtlInitAnsiString(&ansi, mac_string);
+ if (RtlAnsiStringToUnicodeString(&param.data.string, &ansi,
+ TRUE) != STATUS_SUCCESS)
+ EXIT1(return -EINVAL);
+
+ param.type = NdisParameterString;
+ RtlInitAnsiString(&ansi, "NetworkAddress");
+ if (RtlAnsiStringToUnicodeString(&key, &ansi, TRUE) != STATUS_SUCCESS) {
+ RtlFreeUnicodeString(&param.data.string);
+ EXIT1(return -EINVAL);
+ }
+ NdisWriteConfiguration(&res, wnd->nmb, &key, &param);
+ RtlFreeUnicodeString(&key);
+ RtlFreeUnicodeString(&param.data.string);
+
+ if (res != NDIS_STATUS_SUCCESS)
+ EXIT1(return -EFAULT);
+ if (ndis_reinit(wnd) == NDIS_STATUS_SUCCESS) {
+ res = mp_query(wnd, OID_802_3_CURRENT_ADDRESS,
+ mac, sizeof(mac));
+ if (res == NDIS_STATUS_SUCCESS) {
+ TRACE1("mac:" MACSTRSEP, MAC2STR(mac));
+ memcpy(dev->dev_addr, mac, sizeof(mac));
+ } else
+ ERROR("couldn't get mac address: %08X", res);
+ }
+ EXIT1(return 0);
+}
+
+static int setup_tx_sg_list(struct ndis_device *wnd, struct sk_buff *skb,
+ struct ndis_packet_oob_data *oob_data)
+{
+ struct ndis_sg_element *sg_element;
+ struct ndis_sg_list *sg_list;
+ int i;
+
+ ENTER3("%p, %d", skb, skb_shinfo(skb)->nr_frags);
+ if (skb_shinfo(skb)->nr_frags <= 1) {
+ sg_element = &oob_data->wrap_tx_sg_list.elements[0];
+ sg_element->address =
+ PCI_DMA_MAP_SINGLE(wnd->wd->pci.pdev, skb->data,
+ skb->len, PCI_DMA_TODEVICE);
+ sg_element->length = skb->len;
+ oob_data->wrap_tx_sg_list.nent = 1;
+ oob_data->ext.info[ScatterGatherListPacketInfo] =
+ &oob_data->wrap_tx_sg_list;
+ TRACE3("%Lx, %u", sg_element->address, sg_element->length);
+ return 0;
+ }
+ sg_list = kmalloc(sizeof(*sg_list) +
+ (skb_shinfo(skb)->nr_frags + 1) * sizeof(*sg_element),
+ GFP_ATOMIC);
+ if (!sg_list)
+ return -ENOMEM;
+ sg_list->nent = skb_shinfo(skb)->nr_frags + 1;
+ TRACE3("%p, %d", sg_list, sg_list->nent);
+ sg_element = sg_list->elements;
+ sg_element->length = skb_headlen(skb);
+ sg_element->address =
+ PCI_DMA_MAP_SINGLE(wnd->wd->pci.pdev, skb->data,
+ skb_headlen(skb), PCI_DMA_TODEVICE);
+ for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
+ skb_frag_t *frag = &skb_shinfo(skb)->frags[i];
+ sg_element++;
+ sg_element->length = frag->size;
+ sg_element->address =
+ pci_map_page(wnd->wd->pci.pdev, frag->page,
+ frag->page_offset, frag->size,
+ PCI_DMA_TODEVICE);
+ TRACE3("%Lx, %u", sg_element->address, sg_element->length);
+ }
+ oob_data->ext.info[ScatterGatherListPacketInfo] = sg_list;
+ return 0;
+}
+
+static void free_tx_sg_list(struct ndis_device *wnd,
+ struct ndis_packet_oob_data *oob_data)
+{
+ int i;
+ struct ndis_sg_element *sg_element;
+ struct ndis_sg_list *sg_list =
+ oob_data->ext.info[ScatterGatherListPacketInfo];
+ sg_element = sg_list->elements;
+ TRACE3("%p, %d", sg_list, sg_list->nent);
+ PCI_DMA_UNMAP_SINGLE(wnd->wd->pci.pdev, sg_element->address,
+ sg_element->length, PCI_DMA_TODEVICE);
+ if (sg_list->nent == 1)
+ EXIT3(return);
+ for (i = 1; i < sg_list->nent; i++, sg_element++) {
+ TRACE3("%Lx, %u", sg_element->address, sg_element->length);
+ pci_unmap_page(wnd->wd->pci.pdev, sg_element->address,
+ sg_element->length, PCI_DMA_TODEVICE);
+ }
+ TRACE3("%p", sg_list);
+ kfree(sg_list);
+}
+
+static struct ndis_packet *alloc_tx_packet(struct ndis_device *wnd,
+ struct sk_buff *skb)
+{
+ struct ndis_packet *packet;
+ ndis_buffer *buffer;
+ struct ndis_packet_oob_data *oob_data;
+ NDIS_STATUS status;
+
+ NdisAllocatePacket(&status, &packet, wnd->tx_packet_pool);
+ if (status != NDIS_STATUS_SUCCESS)
+ return NULL;
+ NdisAllocateBuffer(&status, &buffer, wnd->tx_buffer_pool,
+ skb->data, skb->len);
+ if (status != NDIS_STATUS_SUCCESS) {
+ NdisFreePacket(packet);
+ return NULL;
+ }
+ packet->private.buffer_head = buffer;
+ packet->private.buffer_tail = buffer;
+
+ oob_data = NDIS_PACKET_OOB_DATA(packet);
+ oob_data->tx_skb = skb;
+ if (wnd->sg_dma_size) {
+ if (setup_tx_sg_list(wnd, skb, oob_data)) {
+ NdisFreeBuffer(buffer);
+ NdisFreePacket(packet);
+ return NULL;
+ }
+ }
+ if (skb->ip_summed == CHECKSUM_PARTIAL) {
+ struct ndis_tcp_ip_checksum_packet_info csum;
+ int protocol;
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21)
+ protocol = ntohs(skb->protocol);
+#else
+ protocol = skb->nh.iph->protocol;
+#endif
+ csum.value = 0;
+ csum.tx.v4 = 1;
+ if (protocol == IPPROTO_TCP)
+ csum.tx.tcp = 1;
+ else if (protocol == IPPROTO_UDP)
+ csum.tx.udp = 1;
+// csum->tx.ip = 1;
+ packet->private.flags |= NDIS_PROTOCOL_ID_TCP_IP;
+ oob_data->ext.info[TcpIpChecksumPacketInfo] =
+ (void *)(ULONG_PTR)csum.value;
+ }
+ DBG_BLOCK(4) {
+ dump_bytes(__func__, skb->data, skb->len);
+ }
+ TRACE4("%p, %p, %p", packet, buffer, skb);
+ return packet;
+}
+
+void free_tx_packet(struct ndis_device *wnd, struct ndis_packet *packet,
+ NDIS_STATUS status)
+{
+ ndis_buffer *buffer;
+ struct ndis_packet_oob_data *oob_data;
+ struct sk_buff *skb;
+ struct ndis_packet_pool *pool;
+
+ assert_irql(_irql_ <= DISPATCH_LEVEL);
+ assert(packet->private.packet_flags);
+ oob_data = NDIS_PACKET_OOB_DATA(packet);
+ skb = oob_data->tx_skb;
+ buffer = packet->private.buffer_head;
+ TRACE4("%p, %p, %p, %08X", packet, buffer, skb, status);
+ if (status == NDIS_STATUS_SUCCESS) {
+ pre_atomic_add(wnd->net_stats.tx_bytes, packet->private.len);
+ atomic_inc_var(wnd->net_stats.tx_packets);
+ } else {
+ TRACE1("packet dropped: %08X", status);
+ atomic_inc_var(wnd->net_stats.tx_dropped);
+ }
+ if (wnd->sg_dma_size)
+ free_tx_sg_list(wnd, oob_data);
+ NdisFreeBuffer(buffer);
+ dev_kfree_skb_any(skb);
+ pool = packet->private.pool;
+ NdisFreePacket(packet);
+ if (netif_queue_stopped(wnd->net_dev) &&
+ ((pool->max_descr - pool->num_used_descr) >=
+ (wnd->max_tx_packets / 4))) {
+ set_bit(NETIF_WAKEQ, &wnd->ndis_pending_work);
+ schedule_wrapndis_work(&wnd->ndis_work);
+ }
+ EXIT4(return);
+}
+
+/* MiniportSend and MiniportSendPackets */
+/* this function is called holding tx_ring_mutex. start and n are such
+ * that start + n < TX_RING_SIZE; i.e., packets don't wrap around
+ * ring */
+static u8 mp_tx_packets(struct ndis_device *wnd, u8 start, u8 n)
+{
+ NDIS_STATUS res;
+ struct miniport *mp;
+ struct ndis_packet *packet;
+ u8 sent;
+ KIRQL irql;
+
+ ENTER3("%d, %d", start, n);
+ mp = &wnd->wd->driver->ndis_driver->mp;
+ if (mp->send_packets) {
+ if (deserialized_driver(wnd)) {
+ LIN2WIN3(mp->send_packets, wnd->nmb->mp_ctx,
+ &wnd->tx_ring[start], n);
+ sent = n;
+ } else {
+ irql = serialize_lock_irql(wnd);
+ LIN2WIN3(mp->send_packets, wnd->nmb->mp_ctx,
+ &wnd->tx_ring[start], n);
+ serialize_unlock_irql(wnd, irql);
+ for (sent = 0; sent < n && wnd->tx_ok; sent++) {
+ struct ndis_packet_oob_data *oob_data;
+ packet = wnd->tx_ring[start + sent];
+ oob_data = NDIS_PACKET_OOB_DATA(packet);
+ switch ((res =
+ xchg(&oob_data->status,
+ NDIS_STATUS_NOT_RECOGNIZED))) {
+ case NDIS_STATUS_SUCCESS:
+ free_tx_packet(wnd, packet,
+ NDIS_STATUS_SUCCESS);
+ break;
+ case NDIS_STATUS_PENDING:
+ break;
+ case NDIS_STATUS_RESOURCES:
+ wnd->tx_ok = 0;
+ /* resubmit this packet and
+ * the rest when resources
+ * become available */
+ sent--;
+ break;
+ case NDIS_STATUS_FAILURE:
+ free_tx_packet(wnd, packet,
+ NDIS_STATUS_FAILURE);
+ break;
+ default:
+ ERROR("%p: invalid status: %08X",
+ packet, res);
+ free_tx_packet(wnd, packet,
+ oob_data->status);
+ break;
+ }
+ TRACE3("%p, %d", packet, res);
+ }
+ }
+ TRACE3("sent: %d(%d)", sent, n);
+ } else {
+ for (sent = 0; sent < n && wnd->tx_ok; sent++) {
+ struct ndis_packet_oob_data *oob_data;
+ packet = wnd->tx_ring[start + sent];
+ oob_data = NDIS_PACKET_OOB_DATA(packet);
+ oob_data->status = NDIS_STATUS_NOT_RECOGNIZED;
+ irql = serialize_lock_irql(wnd);
+ res = LIN2WIN3(mp->send, wnd->nmb->mp_ctx,
+ packet, packet->private.flags);
+ serialize_unlock_irql(wnd, irql);
+ switch (res) {
+ case NDIS_STATUS_SUCCESS:
+ free_tx_packet(wnd, packet, res);
+ break;
+ case NDIS_STATUS_PENDING:
+ break;
+ case NDIS_STATUS_RESOURCES:
+ wnd->tx_ok = 0;
+ /* resend this packet when resources
+ * become available */
+ sent--;
+ break;
+ case NDIS_STATUS_FAILURE:
+ free_tx_packet(wnd, packet, res);
+ break;
+ default:
+ ERROR("packet %p: invalid status: %08X",
+ packet, res);
+ break;
+ }
+ }
+ }
+ EXIT3(return sent);
+}
+
+static void tx_worker(worker_param_t param)
+{
+ struct ndis_device *wnd;
+ s8 n;
+
+ wnd = worker_param_data(param, struct ndis_device, tx_work);
+ ENTER3("tx_ok %d", wnd->tx_ok);
+ while (wnd->tx_ok) {
+ if (down_interruptible(&wnd->tx_ring_mutex))
+ break;
+ spin_lock_bh(&wnd->tx_ring_lock);
+ n = wnd->tx_ring_end - wnd->tx_ring_start;
+ TRACE3("%d, %d, %d", wnd->tx_ring_start, wnd->tx_ring_end, n);
+ /* end == start if either ring is empty or full; in
+ * the latter case is_tx_ring_full is set */
+ if (n == 0) {
+ if (wnd->is_tx_ring_full)
+ n = TX_RING_SIZE - wnd->tx_ring_start;
+ else {
+ spin_unlock_bh(&wnd->tx_ring_lock);
+ up(&wnd->tx_ring_mutex);
+ break;
+ }
+ } else if (n < 0)
+ n = TX_RING_SIZE - wnd->tx_ring_start;
+ spin_unlock_bh(&wnd->tx_ring_lock);
+ if (unlikely(n > wnd->max_tx_packets))
+ n = wnd->max_tx_packets;
+ n = mp_tx_packets(wnd, wnd->tx_ring_start, n);
+ if (n) {
+ wnd->net_dev->trans_start = jiffies;
+ wnd->tx_ring_start =
+ (wnd->tx_ring_start + n) % TX_RING_SIZE;
+ wnd->is_tx_ring_full = 0;
+ }
+ up(&wnd->tx_ring_mutex);
+ TRACE3("%d, %d, %d", wnd->tx_ring_start, wnd->tx_ring_end, n);
+ }
+ EXIT3(return);
+}
+
+static int tx_skbuff(struct sk_buff *skb, struct net_device *dev)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ struct ndis_packet *packet;
+
+ packet = alloc_tx_packet(wnd, skb);
+ if (!packet) {
+ TRACE2("couldn't allocate packet");
+ netif_tx_lock(dev);
+ netif_stop_queue(dev);
+ netif_tx_unlock(dev);
+ return NETDEV_TX_BUSY;
+ }
+ spin_lock(&wnd->tx_ring_lock);
+ wnd->tx_ring[wnd->tx_ring_end++] = packet;
+ if (wnd->tx_ring_end == TX_RING_SIZE)
+ wnd->tx_ring_end = 0;
+ if (wnd->tx_ring_end == wnd->tx_ring_start) {
+ netif_tx_lock(dev);
+ wnd->is_tx_ring_full = 1;
+ netif_stop_queue(dev);
+ netif_tx_unlock(dev);
+ }
+ spin_unlock(&wnd->tx_ring_lock);
+ TRACE4("ring: %d, %d", wnd->tx_ring_start, wnd->tx_ring_end);
+ schedule_wrapndis_work(&wnd->tx_work);
+ return NETDEV_TX_OK;
+}
+
+static int set_packet_filter(struct ndis_device *wnd, ULONG packet_filter)
+{
+ NDIS_STATUS res;
+
+ while (1) {
+ res = mp_set_int(wnd, OID_GEN_CURRENT_PACKET_FILTER,
+ packet_filter);
+ if (res == NDIS_STATUS_SUCCESS)
+ break;
+ TRACE2("couldn't set filter 0x%08x", packet_filter);
+ /* NDIS_PACKET_TYPE_PROMISCUOUS may not work with 802.11 */
+ if (packet_filter & NDIS_PACKET_TYPE_PROMISCUOUS) {
+ packet_filter &= ~NDIS_PACKET_TYPE_PROMISCUOUS;
+ continue;
+ }
+ if (packet_filter & NDIS_PACKET_TYPE_ALL_LOCAL) {
+ packet_filter &= ~NDIS_PACKET_TYPE_ALL_LOCAL;
+ continue;
+ }
+ if (packet_filter & NDIS_PACKET_TYPE_ALL_FUNCTIONAL) {
+ packet_filter &= ~NDIS_PACKET_TYPE_ALL_FUNCTIONAL;
+ continue;
+ }
+ if (packet_filter & NDIS_PACKET_TYPE_MULTICAST) {
+ packet_filter &= ~NDIS_PACKET_TYPE_MULTICAST;
+ packet_filter |= NDIS_PACKET_TYPE_ALL_MULTICAST;
+ continue;
+ }
+ if (packet_filter & NDIS_PACKET_TYPE_ALL_MULTICAST) {
+ packet_filter &= ~NDIS_PACKET_TYPE_ALL_MULTICAST;
+ continue;
+ }
+ break;
+ }
+
+ wnd->packet_filter = packet_filter;
+ res = mp_query_int(wnd, OID_GEN_CURRENT_PACKET_FILTER, &packet_filter);
+ if (packet_filter != wnd->packet_filter) {
+ WARNING("filter not set: 0x%08x, 0x%08x",
+ packet_filter, wnd->packet_filter);
+ wnd->packet_filter = packet_filter;
+ }
+ if (wnd->packet_filter)
+ EXIT3(return 0);
+ else
+ EXIT3(return -1);
+}
+
+void set_media_state(struct ndis_device *wnd, enum ndis_media_state state)
+{
+ ENTER2("state: 0x%x", state);
+ if (state == NdisMediaStateConnected) {
+ netif_carrier_on(wnd->net_dev);
+ wnd->tx_ok = 1;
+ if (netif_queue_stopped(wnd->net_dev))
+ netif_wake_queue(wnd->net_dev);
+ if (wnd->physical_medium == NdisPhysicalMediumWirelessLan) {
+ set_bit(LINK_STATUS_ON, &wnd->ndis_pending_work);
+ schedule_wrapndis_work(&wnd->ndis_work);
+ }
+ } else if (state == NdisMediaStateDisconnected) {
+ netif_carrier_off(wnd->net_dev);
+ netif_stop_queue(wnd->net_dev);
+ wnd->tx_ok = 0;
+ if (wnd->physical_medium == NdisPhysicalMediumWirelessLan) {
+ memset(&wnd->essid, 0, sizeof(wnd->essid));
+ set_bit(LINK_STATUS_OFF, &wnd->ndis_pending_work);
+ schedule_wrapndis_work(&wnd->ndis_work);
+ }
+ } else {
+ WARNING("invalid media state: 0x%x", state);
+ }
+}
+
+static int ndis_net_dev_open(struct net_device *net_dev)
+{
+ ENTER1("%p", netdev_priv(net_dev));
+ netif_start_queue(net_dev);
+ netif_poll_enable(net_dev);
+ EXIT1(return 0);
+}
+
+static int ndis_net_dev_close(struct net_device *net_dev)
+{
+ ENTER1("%p", netdev_priv(net_dev));
+ netif_poll_disable(net_dev);
+ netif_tx_disable(net_dev);
+ EXIT1(return 0);
+}
+
+static int ndis_change_mtu(struct net_device *net_dev, int mtu)
+{
+ struct ndis_device *wnd = netdev_priv(net_dev);
+ int max;
+
+ if (mtu < ETH_ZLEN)
+ return -EINVAL;
+ if (mp_query_int(wnd, OID_GEN_MAXIMUM_TOTAL_SIZE, &max) !=
+ NDIS_STATUS_SUCCESS)
+ return -EOPNOTSUPP;
+ TRACE1("%d", max);
+ max -= ETH_HLEN;
+ if (max <= ETH_ZLEN)
+ return -EINVAL;
+ if (mtu + ETH_HLEN > max)
+ return -EINVAL;
+ net_dev->mtu = mtu;
+ return 0;
+}
+
+#ifdef CONFIG_NET_POLL_CONTROLLER
+static void ndis_poll_controller(struct net_device *dev)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+
+ disable_irq(dev->irq);
+ ndis_isr(wnd->mp_interrupt->kinterrupt, wnd->mp_interrupt);
+ enable_irq(dev->irq);
+}
+#endif
+
+/* called from BH context */
+static struct net_device_stats *ndis_get_stats(struct net_device *dev)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ return &wnd->net_stats;
+}
+
+/* called from BH context */
+static void ndis_set_multicast_list(struct net_device *dev)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ set_bit(SET_MULTICAST_LIST, &wnd->ndis_pending_work);
+ schedule_wrapndis_work(&wnd->ndis_work);
+}
+
+/* called from BH context */
+struct iw_statistics *get_iw_stats(struct net_device *dev)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ return &wnd->iw_stats;
+}
+
+static void update_iw_stats(struct ndis_device *wnd)
+{
+ struct iw_statistics *iw_stats = &wnd->iw_stats;
+ struct ndis_wireless_stats ndis_stats;
+ NDIS_STATUS res;
+ ndis_rssi rssi;
+ int qual;
+
+ ENTER2("%p", wnd);
+ if (wnd->iw_stats_enabled == FALSE || !netif_carrier_ok(wnd->net_dev)) {
+ memset(iw_stats, 0, sizeof(*iw_stats));
+ EXIT2(return);
+ }
+ res = mp_query(wnd, OID_802_11_RSSI, &rssi, sizeof(rssi));
+ if (res == NDIS_STATUS_SUCCESS)
+ iw_stats->qual.level = rssi;
+
+ qual = 100 * (rssi - WL_NOISE) / (WL_SIGMAX - WL_NOISE);
+ if (qual < 0)
+ qual = 0;
+ else if (qual > 100)
+ qual = 100;
+
+ iw_stats->qual.noise = WL_NOISE;
+ iw_stats->qual.qual = qual;
+
+ res = mp_query(wnd, OID_802_11_STATISTICS,
+ &ndis_stats, sizeof(ndis_stats));
+ if (res != NDIS_STATUS_SUCCESS)
+ EXIT2(return);
+ iw_stats->discard.retries = (unsigned long)ndis_stats.retry +
+ (unsigned long)ndis_stats.multi_retry;
+ iw_stats->discard.misc = (unsigned long)ndis_stats.fcs_err +
+ (unsigned long)ndis_stats.rtss_fail +
+ (unsigned long)ndis_stats.ack_fail +
+ (unsigned long)ndis_stats.frame_dup;
+
+ EXIT2(return);
+}
+
+static void set_multicast_list(struct ndis_device *wnd)
+{
+ struct net_device *net_dev;
+ int mc_count;
+ ULONG packet_filter;
+ NDIS_STATUS res;
+
+ net_dev = wnd->net_dev;
+ packet_filter = wnd->packet_filter;
+ mc_count = netdev_mc_count(net_dev);
+
+ TRACE2("0x%08x", packet_filter);
+ if (net_dev->flags & IFF_PROMISC) {
+ packet_filter |= NDIS_PACKET_TYPE_PROMISCUOUS |
+ NDIS_PACKET_TYPE_ALL_LOCAL;
+ } else if (net_dev->flags & IFF_ALLMULTI ||
+ mc_count > wnd->multicast_size) {
+ packet_filter |= NDIS_PACKET_TYPE_ALL_MULTICAST;
+ TRACE2("0x%08x", packet_filter);
+ } else if (mc_count > 0) {
+ int i, size;
+ char *buf;
+ struct netdev_hw_addr *ha;
+ size = min(wnd->multicast_size, mc_count);
+ TRACE2("%d, %d", wnd->multicast_size, mc_count);
+ buf = kmalloc(size * ETH_ALEN, GFP_KERNEL);
+ if (!buf) {
+ WARNING("couldn't allocate memory");
+ EXIT2(return);
+ }
+ netdev_for_each_mc_addr(ha, net_dev) {
+ if (net_dev->addr_len != ETH_ALEN)
+ continue;
+ memcpy(buf + i * ETH_ALEN, ha->addr, ETH_ALEN);
+ TRACE2(MACSTRSEP, MAC2STR(ha->addr));
+ i++;
+ }
+ res = mp_set(wnd, OID_802_3_MULTICAST_LIST, buf, i * ETH_ALEN);
+ if (res == NDIS_STATUS_SUCCESS && i > 0)
+ packet_filter |= NDIS_PACKET_TYPE_MULTICAST;
+ else
+ packet_filter |= NDIS_PACKET_TYPE_ALL_MULTICAST;
+ kfree(buf);
+ }
+ TRACE2("0x%08x", packet_filter);
+ res = set_packet_filter(wnd, packet_filter);
+ if (res)
+ TRACE1("couldn't set packet filter (%08X)", res);
+ EXIT2(return);
+}
+
+static void link_status_off(struct ndis_device *wnd)
+{
+#ifdef CONFIG_WIRELESS_EXT
+ union iwreq_data wrqu;
+
+ memset(&wrqu, 0, sizeof(wrqu));
+ wrqu.ap_addr.sa_family = ARPHRD_ETHER;
+ wireless_send_event(wnd->net_dev, SIOCGIWAP, &wrqu, NULL);
+#endif
+ EXIT2(return);
+}
+
+static void link_status_on(struct ndis_device *wnd)
+{
+#ifdef CONFIG_WIRELESS_EXT
+ struct ndis_assoc_info *ndis_assoc_info;
+ union iwreq_data wrqu;
+ NDIS_STATUS res;
+ const int assoc_size = sizeof(*ndis_assoc_info) + IW_CUSTOM_MAX + 32;
+#endif
+
+ ENTER2("");
+#ifdef CONFIG_WIRELESS_EXT
+ memset(&wrqu, 0, sizeof(wrqu));
+ ndis_assoc_info = kzalloc(assoc_size, GFP_KERNEL);
+ if (!ndis_assoc_info) {
+ ERROR("couldn't allocate memory");
+ goto send_assoc_event;
+ }
+ res = mp_query(wnd, OID_802_11_ASSOCIATION_INFORMATION,
+ ndis_assoc_info, assoc_size);
+ if (res) {
+ TRACE2("query assoc_info failed (%08X)", res);
+ kfree(ndis_assoc_info);
+ goto send_assoc_event;
+ }
+ TRACE2("%u, 0x%x, %u, 0x%x, %u", ndis_assoc_info->length,
+ ndis_assoc_info->req_ies, ndis_assoc_info->req_ie_length,
+ ndis_assoc_info->resp_ies, ndis_assoc_info->resp_ie_length);
+ if (ndis_assoc_info->req_ie_length > 0) {
+ wrqu.data.length = ndis_assoc_info->req_ie_length;
+ wireless_send_event(wnd->net_dev, IWEVASSOCREQIE, &wrqu,
+ ((char *)ndis_assoc_info) +
+ ndis_assoc_info->offset_req_ies);
+ }
+ if (ndis_assoc_info->resp_ie_length > 0) {
+ wrqu.data.length = ndis_assoc_info->resp_ie_length;
+ wireless_send_event(wnd->net_dev, IWEVASSOCRESPIE, &wrqu,
+ ((char *)ndis_assoc_info) +
+ ndis_assoc_info->offset_resp_ies);
+ }
+ kfree(ndis_assoc_info);
+
+send_assoc_event:
+ get_ap_address(wnd, wrqu.ap_addr.sa_data);
+ wrqu.ap_addr.sa_family = ARPHRD_ETHER;
+ TRACE2(MACSTRSEP, MAC2STR(wrqu.ap_addr.sa_data));
+ wireless_send_event(wnd->net_dev, SIOCGIWAP, &wrqu, NULL);
+#endif
+ EXIT2(return);
+}
+
+static void iw_stats_timer_proc(unsigned long data)
+{
+ struct ndis_device *wnd = (struct ndis_device *)data;
+
+ ENTER2("%d", wnd->iw_stats_interval);
+ if (wnd->iw_stats_interval > 0) {
+ set_bit(COLLECT_IW_STATS, &wnd->ndis_pending_work);
+ schedule_wrapndis_work(&wnd->ndis_work);
+ }
+ mod_timer(&wnd->iw_stats_timer, jiffies + wnd->iw_stats_interval);
+}
+
+static void add_iw_stats_timer(struct ndis_device *wnd)
+{
+ if (wnd->physical_medium != NdisPhysicalMediumWirelessLan)
+ return;
+ if (wnd->iw_stats_interval < 0)
+ wnd->iw_stats_interval *= -1;
+ wnd->iw_stats_timer.data = (unsigned long)wnd;
+ wnd->iw_stats_timer.function = iw_stats_timer_proc;
+ mod_timer(&wnd->iw_stats_timer, jiffies + wnd->iw_stats_interval);
+}
+
+static void del_iw_stats_timer(struct ndis_device *wnd)
+{
+ ENTER2("%d", wnd->iw_stats_interval);
+ wnd->iw_stats_interval *= -1;
+ del_timer_sync(&wnd->iw_stats_timer);
+ EXIT2(return);
+}
+
+static void hangcheck_proc(unsigned long data)
+{
+ struct ndis_device *wnd = (struct ndis_device *)data;
+
+ ENTER3("%d", wnd->hangcheck_interval);
+ if (wnd->hangcheck_interval > 0) {
+ set_bit(HANGCHECK, &wnd->ndis_pending_work);
+ schedule_wrapndis_work(&wnd->ndis_work);
+ }
+ mod_timer(&wnd->hangcheck_timer, jiffies + wnd->hangcheck_interval);
+ EXIT3(return);
+}
+
+void hangcheck_add(struct ndis_device *wnd)
+{
+ if (!wnd->wd->driver->ndis_driver->mp.hangcheck ||
+ hangcheck_interval < 0)
+ EXIT2(return);
+
+ if (hangcheck_interval > 0)
+ wnd->hangcheck_interval = hangcheck_interval * HZ;
+ if (wnd->hangcheck_interval < 0)
+ wnd->hangcheck_interval *= -1;
+ wnd->hangcheck_timer.data = (unsigned long)wnd;
+ wnd->hangcheck_timer.function = hangcheck_proc;
+ mod_timer(&wnd->hangcheck_timer, jiffies + wnd->hangcheck_interval);
+ EXIT2(return);
+}
+
+void hangcheck_del(struct ndis_device *wnd)
+{
+ ENTER2("%d", wnd->hangcheck_interval);
+ if (wnd->hangcheck_interval > 0)
+ wnd->hangcheck_interval *= -1;
+ del_timer_sync(&wnd->hangcheck_timer);
+ EXIT2(return);
+}
+
+/* worker procedure to take care of setting/checking various states */
+static void ndis_worker(worker_param_t param)
+{
+ struct ndis_device *wnd;
+
+ wnd = worker_param_data(param, struct ndis_device, ndis_work);
+ WORKTRACE("0x%lx", wnd->ndis_pending_work);
+
+ if (test_and_clear_bit(NETIF_WAKEQ, &wnd->ndis_pending_work)) {
+ netif_tx_lock_bh(wnd->net_dev);
+ netif_wake_queue(wnd->net_dev);
+ netif_tx_unlock_bh(wnd->net_dev);
+ }
+
+ if (test_and_clear_bit(LINK_STATUS_OFF, &wnd->ndis_pending_work))
+ link_status_off(wnd);
+
+ if (test_and_clear_bit(LINK_STATUS_ON, &wnd->ndis_pending_work))
+ link_status_on(wnd);
+
+ if (test_and_clear_bit(COLLECT_IW_STATS, &wnd->ndis_pending_work))
+ update_iw_stats(wnd);
+
+ if (test_and_clear_bit(SET_MULTICAST_LIST,
+ &wnd->ndis_pending_work))
+ set_multicast_list(wnd);
+
+ if (test_and_clear_bit(HANGCHECK, &wnd->ndis_pending_work)) {
+ struct miniport *mp;
+ BOOLEAN reset;
+ KIRQL irql;
+
+ mp = &wnd->wd->driver->ndis_driver->mp;
+ irql = serialize_lock_irql(wnd);
+ reset = LIN2WIN1(mp->hangcheck, wnd->nmb->mp_ctx);
+ serialize_unlock_irql(wnd, irql);
+ if (reset) {
+ TRACE2("%s needs reset", wnd->net_dev->name);
+ mp_reset(wnd);
+ }
+ }
+ WORKEXIT(return);
+}
+
+NDIS_STATUS ndis_reinit(struct ndis_device *wnd)
+{
+ NDIS_STATUS status;
+
+ wnd->attributes &= ~NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND;
+ status = mp_set_power_state(wnd, NdisDeviceStateD3);
+ if (status != NDIS_STATUS_SUCCESS) {
+ ERROR("halting device %s failed: %08X", wnd->net_dev->name,
+ status);
+ return status;
+ }
+ status = mp_set_power_state(wnd, NdisDeviceStateD0);
+ if (status != NDIS_STATUS_SUCCESS)
+ ERROR("starting device %s failed: %08X", wnd->net_dev->name,
+ status);
+ return status;
+}
+
+static void get_encryption_capa(struct ndis_device *wnd, char *buf,
+ const int buf_len)
+{
+ int i, mode;
+ NDIS_STATUS res;
+ struct ndis_assoc_info ndis_assoc_info;
+ struct ndis_add_key ndis_key;
+ struct ndis_capability *c;
+
+ ENTER1("%p", wnd);
+ /* set network type to g, b, or a, in that order */
+ res = mp_query(wnd, OID_802_11_NETWORK_TYPES_SUPPORTED, buf, buf_len);
+ if (res == NDIS_STATUS_SUCCESS) {
+ struct network_type_list *net_types;
+ unsigned long types = 0;
+ net_types = (typeof(net_types))buf;
+ for (i = 0; i < net_types->num; i++) {
+ TRACE2("%d", net_types->types[i]);
+ set_bit(net_types->types[i], &types);
+ }
+ if (types & Ndis802_11OFDM24)
+ mode = Ndis802_11OFDM24;
+ else if (types & Ndis802_11DS)
+ mode = Ndis802_11DS;
+ else if (types & Ndis802_11OFDM5)
+ mode = Ndis802_11OFDM5;
+ else
+ mode = Ndis802_11DS;
+ mp_set_int(wnd, OID_802_11_NETWORK_TYPE_IN_USE, mode);
+ }
+ /* check if WEP is supported */
+ if (set_iw_encr_mode(wnd, IW_AUTH_CIPHER_WEP104,
+ IW_AUTH_CIPHER_NONE) == 0 &&
+ get_ndis_encr_mode(wnd) == Ndis802_11Encryption1KeyAbsent)
+ set_bit(Ndis802_11Encryption1Enabled, &wnd->capa.encr);
+
+ /* check if WPA is supported */
+ if (set_ndis_auth_mode(wnd, Ndis802_11AuthModeWPA) == 0 &&
+ get_ndis_auth_mode(wnd) == Ndis802_11AuthModeWPA)
+ set_bit(Ndis802_11AuthModeWPA, &wnd->capa.encr);
+ else
+ EXIT1(return);
+
+ if (set_ndis_auth_mode(wnd, Ndis802_11AuthModeWPAPSK) == 0 &&
+ get_ndis_auth_mode(wnd) == Ndis802_11AuthModeWPAPSK)
+ set_bit(Ndis802_11AuthModeWPAPSK, &wnd->capa.encr);
+
+ /* check for highest encryption */
+ mode = 0;
+ if (set_iw_encr_mode(wnd, IW_AUTH_CIPHER_CCMP,
+ IW_AUTH_CIPHER_NONE) == 0 &&
+ (i = get_ndis_encr_mode(wnd)) > 0 &&
+ (i == Ndis802_11Encryption3KeyAbsent ||
+ i == Ndis802_11Encryption3Enabled))
+ mode = Ndis802_11Encryption3Enabled;
+ else if (set_iw_encr_mode(wnd, IW_AUTH_CIPHER_TKIP,
+ IW_AUTH_CIPHER_NONE) == 0 &&
+ (i = get_ndis_encr_mode(wnd)) > 0 &&
+ (i == Ndis802_11Encryption2KeyAbsent ||
+ i == Ndis802_11Encryption2Enabled))
+ mode = Ndis802_11Encryption2Enabled;
+ else if (set_iw_encr_mode(wnd, IW_AUTH_CIPHER_WEP104,
+ IW_AUTH_CIPHER_NONE) == 0 &&
+ (i = get_ndis_encr_mode(wnd)) > 0 &&
+ (i == Ndis802_11Encryption1KeyAbsent ||
+ i == Ndis802_11Encryption1Enabled))
+ mode = Ndis802_11Encryption1Enabled;
+
+ TRACE1("mode: %d", mode);
+ if (mode == 0)
+ EXIT1(return);
+ set_bit(Ndis802_11Encryption1Enabled, &wnd->capa.encr);
+ if (mode == Ndis802_11Encryption1Enabled)
+ EXIT1(return);
+
+ ndis_key.length = 32;
+ ndis_key.index = 0xC0000001;
+ ndis_key.struct_size = sizeof(ndis_key);
+ res = mp_set(wnd, OID_802_11_ADD_KEY, &ndis_key, ndis_key.struct_size);
+ TRACE2("%08X, %lu", res, (unsigned long)sizeof(ndis_key));
+ if (res && res != NDIS_STATUS_INVALID_DATA)
+ EXIT1(return);
+ res = mp_query(wnd, OID_802_11_ASSOCIATION_INFORMATION,
+ &ndis_assoc_info, sizeof(ndis_assoc_info));
+ TRACE1("%08X", res);
+ if (res == NDIS_STATUS_NOT_SUPPORTED)
+ EXIT1(return);
+
+ set_bit(Ndis802_11Encryption2Enabled, &wnd->capa.encr);
+ if (mode == Ndis802_11Encryption3Enabled)
+ set_bit(Ndis802_11Encryption3Enabled, &wnd->capa.encr);
+ /* not all drivers support OID_802_11_CAPABILITY, so we don't
+ * know for sure if driver support WPA or WPAPSK; assume
+ * WPAPSK */
+ set_bit(Ndis802_11AuthModeWPAPSK, &wnd->capa.auth);
+ wnd->max_pmkids = 1;
+
+ memset(buf, 0, buf_len);
+ c = (struct ndis_capability *)buf;
+ res = mp_query(wnd, OID_802_11_CAPABILITY, buf, buf_len);
+ if (!(res == NDIS_STATUS_SUCCESS && c->version == 2))
+ EXIT1(return);
+ wnd->max_pmkids = c->num_PMKIDs;
+
+ for (i = 0; i < c->num_auth_encr_pair; i++) {
+ struct ndis_auth_encr_pair *ae;
+
+ ae = &c->auth_encr_pair[i];
+ if ((char *)(ae + 1) > buf + buf_len)
+ break;
+ switch (ae->auth_mode) {
+ case Ndis802_11AuthModeOpen:
+ case Ndis802_11AuthModeShared:
+ case Ndis802_11AuthModeWPA:
+ case Ndis802_11AuthModeWPAPSK:
+ case Ndis802_11AuthModeWPANone:
+ case Ndis802_11AuthModeWPA2:
+ case Ndis802_11AuthModeWPA2PSK:
+ set_bit(ae->auth_mode, &wnd->capa.auth);
+ break;
+ default:
+ WARNING("unknown auth_mode: %d", ae->auth_mode);
+ break;
+ }
+ switch (ae->encr_mode) {
+ case Ndis802_11EncryptionDisabled:
+ case Ndis802_11Encryption1Enabled:
+ case Ndis802_11Encryption2Enabled:
+ case Ndis802_11Encryption3Enabled:
+ set_bit(ae->encr_mode, &wnd->capa.encr);
+ break;
+ default:
+ WARNING("unknown encr_mode: %d", ae->encr_mode);
+ break;
+ }
+ }
+ EXIT1(return);
+}
+
+wstdcall NTSTATUS NdisDispatchDeviceControl(struct device_object *fdo,
+ struct irp *irp)
+{
+ struct ndis_device *wnd;
+
+ TRACE3("fdo: %p", fdo);
+ /* for now, we don't have anything intresting here, so pass it
+ * down to bus driver */
+ wnd = fdo->reserved;
+ return IoPassIrpDown(wnd->nmb->pdo, irp);
+}
+WIN_FUNC_DECL(NdisDispatchDeviceControl,2)
+
+wstdcall NTSTATUS NdisDispatchPower(struct device_object *fdo, struct irp *irp)
+{
+ struct io_stack_location *irp_sl;
+ struct ndis_device *wnd;
+ enum ndis_power_state state;
+ NTSTATUS status;
+ NDIS_STATUS ndis_status;
+
+ irp_sl = IoGetCurrentIrpStackLocation(irp);
+ wnd = fdo->reserved;
+ IOTRACE("fdo: %p, fn: %d:%d, wnd: %p", fdo, irp_sl->major_fn,
+ irp_sl->minor_fn, wnd);
+ if ((irp_sl->params.power.type == SystemPowerState &&
+ irp_sl->params.power.state.system_state > PowerSystemWorking) ||
+ (irp_sl->params.power.type == DevicePowerState &&
+ irp_sl->params.power.state.device_state > PowerDeviceD0))
+ state = NdisDeviceStateD3;
+ else
+ state = NdisDeviceStateD0;
+ switch (irp_sl->minor_fn) {
+ case IRP_MN_SET_POWER:
+ if (state == NdisDeviceStateD0) {
+ status = IoSyncForwardIrp(wnd->nmb->pdo, irp);
+ if (status != STATUS_SUCCESS)
+ break;
+ ndis_status = mp_set_power_state(wnd, state);
+ if (ndis_status != NDIS_STATUS_SUCCESS)
+ WARNING("couldn't set power to %d: %08X",
+ state, ndis_status);
+ TRACE2("%s: device resumed", wnd->net_dev->name);
+ irp->io_status.status = status = STATUS_SUCCESS;
+ IoCompleteRequest(irp, IO_NO_INCREMENT);
+ break;
+ } else {
+ ndis_status = mp_set_power_state(wnd, state);
+ /* TODO: handle error case */
+ if (ndis_status != NDIS_STATUS_SUCCESS)
+ WARNING("setting power to %d failed: %08X",
+ state, ndis_status);
+ status = IoAsyncForwardIrp(wnd->nmb->pdo, irp);
+ }
+ break;
+ case IRP_MN_QUERY_POWER:
+ if (wnd->attributes & NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND) {
+ ndis_status = mp_query(wnd, OID_PNP_QUERY_POWER,
+ &state, sizeof(state));
+ TRACE2("%d, %08X", state, ndis_status);
+ /* this OID must always succeed */
+ if (ndis_status != NDIS_STATUS_SUCCESS)
+ TRACE1("query power returns %08X", ndis_status);
+ irp->io_status.status = STATUS_SUCCESS;
+ } else
+ irp->io_status.status = STATUS_SUCCESS;
+ status = IoPassIrpDown(wnd->nmb->pdo, irp);
+ break;
+ case IRP_MN_WAIT_WAKE:
+ case IRP_MN_POWER_SEQUENCE:
+ /* TODO: implement WAIT_WAKE */
+ status = IoPassIrpDown(wnd->nmb->pdo, irp);
+ break;
+ default:
+ status = IoPassIrpDown(wnd->nmb->pdo, irp);
+ break;
+ }
+ IOEXIT(return status);
+}
+WIN_FUNC_DECL(NdisDispatchPower,2)
+
+wstdcall NTSTATUS NdisDispatchPnp(struct device_object *fdo, struct irp *irp)
+{
+ struct io_stack_location *irp_sl;
+ struct ndis_device *wnd;
+ struct device_object *pdo;
+ NTSTATUS status;
+
+ IOTRACE("fdo: %p, irp: %p", fdo, irp);
+ irp_sl = IoGetCurrentIrpStackLocation(irp);
+ wnd = fdo->reserved;
+ pdo = wnd->nmb->pdo;
+ switch (irp_sl->minor_fn) {
+ case IRP_MN_START_DEVICE:
+ status = IoSyncForwardIrp(pdo, irp);
+ if (status != STATUS_SUCCESS)
+ break;
+ if (ndis_start_device(wnd) == NDIS_STATUS_SUCCESS)
+ status = STATUS_SUCCESS;
+ else
+ status = STATUS_FAILURE;
+ irp->io_status.status = status;
+ IoCompleteRequest(irp, IO_NO_INCREMENT);
+ break;
+ case IRP_MN_QUERY_STOP_DEVICE:
+ /* TODO: implement in NDIS */
+ status = IoPassIrpDown(wnd->nmb->pdo, irp);
+ break;
+ case IRP_MN_STOP_DEVICE:
+ mp_halt(wnd);
+ irp->io_status.status = STATUS_SUCCESS;
+ status = IoAsyncForwardIrp(pdo, irp);
+ break;
+ case IRP_MN_REMOVE_DEVICE:
+ TRACE1("%s", wnd->net_dev->name);
+ mp_pnp_event(wnd, NdisDevicePnPEventSurpriseRemoved, 0);
+ if (ndis_remove_device(wnd)) {
+ status = STATUS_FAILURE;
+ break;
+ }
+ /* wnd is already freed */
+ status = IoAsyncForwardIrp(pdo, irp);
+ IoDetachDevice(fdo);
+ IoDeleteDevice(fdo);
+ break;
+ default:
+ status = IoAsyncForwardIrp(pdo, irp);
+ break;
+ }
+ IOTRACE("status: %08X", status);
+ IOEXIT(return status);
+}
+WIN_FUNC_DECL(NdisDispatchPnp,2)
+
+static void set_task_offload(struct ndis_device *wnd, void *buf,
+ const int buf_size)
+{
+ struct ndis_task_offload_header *task_offload_header;
+ struct ndis_task_offload *task_offload;
+ struct ndis_task_tcp_ip_checksum *csum = NULL;
+ struct ndis_task_tcp_large_send *tso = NULL;
+ NDIS_STATUS status;
+
+ memset(buf, 0, buf_size);
+ task_offload_header = buf;
+ task_offload_header->version = NDIS_TASK_OFFLOAD_VERSION;
+ task_offload_header->size = sizeof(*task_offload_header);
+ task_offload_header->encap_format.flags.fixed_header_size = 1;
+ task_offload_header->encap_format.header_size = sizeof(struct ethhdr);
+ task_offload_header->encap_format.encap = IEEE_802_3_Encapsulation;
+ status = mp_query(wnd, OID_TCP_TASK_OFFLOAD, buf, buf_size);
+ TRACE1("%08X", status);
+ if (status != NDIS_STATUS_SUCCESS)
+ EXIT1(return);
+ if (task_offload_header->offset_first_task == 0)
+ EXIT1(return);
+ task_offload = ((void *)task_offload_header +
+ task_offload_header->offset_first_task);
+ while (1) {
+ TRACE1("%d, %d", task_offload->version, task_offload->task);
+ switch(task_offload->task) {
+ case TcpIpChecksumNdisTask:
+ csum = (void *)task_offload->task_buf;
+ break;
+ case TcpLargeSendNdisTask:
+ tso = (void *)task_offload->task_buf;
+ break;
+ default:
+ TRACE1("%d", task_offload->task);
+ break;
+ }
+ if (task_offload->offset_next_task == 0)
+ break;
+ task_offload = (void *)task_offload +
+ task_offload->offset_next_task;
+ }
+ if (tso)
+ TRACE1("%u, %u, %d, %d", tso->max_size, tso->min_seg_count,
+ tso->tcp_opts, tso->ip_opts);
+ if (!csum)
+ EXIT1(return);
+ TRACE1("%08x, %08x", csum->v4_tx.value, csum->v4_rx.value);
+ task_offload_header->encap_format.flags.fixed_header_size = 1;
+ task_offload_header->encap_format.header_size = sizeof(struct ethhdr);
+ task_offload_header->offset_first_task = sizeof(*task_offload_header);
+ task_offload = ((void *)task_offload_header +
+ task_offload_header->offset_first_task);
+ task_offload->offset_next_task = 0;
+ task_offload->size = sizeof(*task_offload);
+ task_offload->task = TcpIpChecksumNdisTask;
+ memcpy(task_offload->task_buf, csum, sizeof(*csum));
+ task_offload->task_buf_length = sizeof(*csum);
+ status = mp_set(wnd, OID_TCP_TASK_OFFLOAD, task_offload_header,
+ sizeof(*task_offload_header) +
+ sizeof(*task_offload) + sizeof(*csum));
+ TRACE1("%08X", status);
+ if (status != NDIS_STATUS_SUCCESS)
+ EXIT2(return);
+ wnd->tx_csum = csum->v4_tx;
+ if (csum->v4_tx.tcp_csum && csum->v4_tx.udp_csum) {
+ if (csum->v4_tx.ip_csum) {
+ wnd->net_dev->features |= NETIF_F_HW_CSUM;
+ TRACE1("hw checksum enabled");
+ } else {
+ wnd->net_dev->features |= NETIF_F_IP_CSUM;
+ TRACE1("IP checksum enabled");
+ }
+ if (wnd->sg_dma_size)
+ wnd->net_dev->features |= NETIF_F_SG;
+ }
+ wnd->rx_csum = csum->v4_rx;
+ EXIT1(return);
+}
+
+static void get_supported_oids(struct ndis_device *wnd)
+{
+ NDIS_STATUS res;
+ int i, n, needed;
+ ndis_oid *oids;
+
+ res = mp_query_info(wnd, OID_GEN_SUPPORTED_LIST, NULL, 0, NULL,
+ &needed);
+ if (!(res == NDIS_STATUS_BUFFER_TOO_SHORT ||
+ res == NDIS_STATUS_INVALID_LENGTH))
+ EXIT1(return);
+ oids = kmalloc(needed, GFP_KERNEL);
+ if (!oids) {
+ TRACE1("couldn't allocate memory");
+ EXIT1(return);
+ }
+ res = mp_query(wnd, OID_GEN_SUPPORTED_LIST, oids, needed);
+ if (res) {
+ TRACE1("failed: %08X", res);
+ kfree(oids);
+ EXIT1(return);
+ }
+ for (i = 0, n = needed / sizeof(*oids); i < n; i++) {
+ TRACE1("oid: %08X", oids[i]);
+ /* if a wireless device didn't say so for
+ * OID_GEN_PHYSICAL_MEDIUM (they should, but in case) */
+ if (wnd->physical_medium != NdisPhysicalMediumWirelessLan &&
+ oids[i] == OID_802_11_SSID)
+ wnd->physical_medium = NdisPhysicalMediumWirelessLan;
+ }
+ kfree(oids);
+ EXIT1(return);
+}
+
+static void ndis_get_drvinfo(struct net_device *dev,
+ struct ethtool_drvinfo *info)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ strncpy(info->driver, DRIVER_NAME, sizeof(info->driver) - 2);
+ strcat(info->driver, "+");
+ strncat(info->driver, wnd->wd->driver->name,
+ sizeof(info->driver) - strlen(DRIVER_NAME) - 1);
+ strncpy(info->version, DRIVER_VERSION, sizeof(info->version) - 2);
+ strcat(info->version, "+");
+ strncat(info->version, wnd->wd->driver->version,
+ sizeof(info->version) - strlen(DRIVER_VERSION) - 1);
+ if (wrap_is_pci_bus(wnd->wd->dev_bus))
+ strncpy(info->bus_info, pci_name(wnd->wd->pci.pdev),
+ sizeof(info->bus_info) - 1);
+#ifdef ENABLE_USB
+ else
+ usb_make_path(wnd->wd->usb.udev, info->bus_info,
+ sizeof(info->bus_info) - 1);
+#endif
+ return;
+}
+
+static u32 ndis_get_link(struct net_device *dev)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ return netif_carrier_ok(wnd->net_dev);
+}
+
+static void ndis_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+
+ wol->supported = 0;
+ wol->wolopts = 0;
+ if (!(wnd->attributes & NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND))
+ EXIT2(return);
+ if (!wrap_is_pci_bus(wnd->wd->dev_bus))
+ EXIT2(return);
+ /* we always suspend to D3 */
+ if (wnd->pnp_capa.wakeup.min_magic_packet_wakeup < NdisDeviceStateD3)
+ return;
+ wol->supported |= WAKE_MAGIC;
+ if (wnd->ndis_wolopts & NDIS_PNP_WAKE_UP_MAGIC_PACKET)
+ wol->wolopts |= WAKE_MAGIC;
+ return;
+}
+
+static int ndis_set_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+
+ if (!(wnd->attributes & NDIS_ATTRIBUTE_NO_HALT_ON_SUSPEND))
+ return -EOPNOTSUPP;
+ if (wnd->pnp_capa.wakeup.min_magic_packet_wakeup < NdisDeviceStateD3)
+ EXIT2(return -EOPNOTSUPP);
+ TRACE2("0x%x", wol->wolopts);
+ if (wol->wolopts & WAKE_MAGIC) {
+ wnd->ndis_wolopts |= NDIS_PNP_WAKE_UP_MAGIC_PACKET;
+ if (wol->wolopts != WAKE_MAGIC)
+ WARNING("ignored wake-on-lan options: 0x%x",
+ wol->wolopts & ~WAKE_MAGIC);
+ } else if (!wol->wolopts)
+ wnd->ndis_wolopts = 0;
+ else
+ return -EOPNOTSUPP;
+ TRACE2("0x%x", wnd->ndis_wolopts);
+ return 0;
+}
+
+static u32 ndis_get_tx_csum(struct net_device *dev)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ if (wnd->tx_csum.tcp_csum && wnd->tx_csum.udp_csum)
+ return 1;
+ else
+ return 0;
+}
+
+static u32 ndis_get_rx_csum(struct net_device *dev)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ if (wnd->rx_csum.value)
+ return 1;
+ else
+ return 0;
+}
+
+static int ndis_set_tx_csum(struct net_device *dev, u32 data)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+
+ if (data && (wnd->tx_csum.value == 0))
+ return -EOPNOTSUPP;
+
+ if (wnd->tx_csum.ip_csum)
+ ethtool_op_set_tx_hw_csum(dev, data);
+ else
+ ethtool_op_set_tx_csum(dev, data);
+ return 0;
+}
+
+static int ndis_set_rx_csum(struct net_device *dev, u32 data)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+
+ if (data && (wnd->tx_csum.value == 0))
+ return -EOPNOTSUPP;
+
+ /* TODO: enable/disable rx csum through NDIS */
+ return 0;
+}
+
+static u32 ndis_get_sg(struct net_device *dev)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ if (wnd->sg_dma_size)
+ return ethtool_op_get_sg(dev);
+ else
+ return 0;
+}
+
+static int ndis_set_sg(struct net_device *dev, u32 data)
+{
+ struct ndis_device *wnd = netdev_priv(dev);
+ if (wnd->sg_dma_size)
+ return ethtool_op_set_sg(dev, data);
+ else
+ return -EOPNOTSUPP;
+}
+
+static struct ethtool_ops ndis_ethtool_ops = {
+ .get_drvinfo = ndis_get_drvinfo,
+ .get_link = ndis_get_link,
+ .get_wol = ndis_get_wol,
+ .set_wol = ndis_set_wol,
+ .get_tx_csum = ndis_get_tx_csum,
+ .get_rx_csum = ndis_get_rx_csum,
+ .set_tx_csum = ndis_set_tx_csum,
+ .set_rx_csum = ndis_set_rx_csum,
+ .get_sg = ndis_get_sg,
+ .set_sg = ndis_set_sg,
+};
+
+static int notifier_event(struct notifier_block *notifier, unsigned long event,
+ void *ptr)
+{
+ struct net_device *net_dev = ptr;
+
+ ENTER2("0x%lx", event);
+ if (net_dev->ethtool_ops == &ndis_ethtool_ops
+ && event == NETDEV_CHANGENAME) {
+ struct ndis_device *wnd = netdev_priv(net_dev);
+ /* called with rtnl lock held, so no need to lock */
+ wrap_procfs_remove_ndis_device(wnd);
+ printk(KERN_INFO "%s: changing interface name from '%s' to "
+ "'%s'\n", DRIVER_NAME, wnd->netdev_name, net_dev->name);
+ memcpy(wnd->netdev_name, net_dev->name,
+ sizeof(wnd->netdev_name));
+ wrap_procfs_add_ndis_device(wnd);
+ }
+ return NOTIFY_DONE;
+}
+
+static struct notifier_block netdev_notifier = {
+ .notifier_call = notifier_event,
+};
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+static const struct net_device_ops ndis_netdev_ops = {
+ .ndo_open = ndis_net_dev_open,
+ .ndo_stop = ndis_net_dev_close,
+ .ndo_start_xmit = tx_skbuff,
+ .ndo_change_mtu = ndis_change_mtu,
+ .ndo_set_multicast_list = ndis_set_multicast_list,
+ .ndo_set_mac_address = ndis_set_mac_address,
+ .ndo_get_stats = ndis_get_stats,
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ .ndo_poll_controller = ndis_poll_controller,
+#endif
+};
+#endif
+
+static NDIS_STATUS ndis_start_device(struct ndis_device *wnd)
+{
+ struct wrap_device *wd;
+ struct net_device *net_dev;
+ NDIS_STATUS status;
+ char *buf;
+ const int buf_len = 256;
+ mac_address mac;
+ struct transport_header_offset *tx_header_offset;
+ int n;
+
+ ENTER2("%d", in_atomic());
+ status = mp_init(wnd);
+ if (status == NDIS_STATUS_NOT_RECOGNIZED)
+ EXIT1(return NDIS_STATUS_SUCCESS);
+ if (status != NDIS_STATUS_SUCCESS)
+ EXIT1(return status);
+ wd = wnd->wd;
+ net_dev = wnd->net_dev;
+
+ get_supported_oids(wnd);
+ memset(mac, 0, sizeof(mac));
+ status = mp_query(wnd, OID_802_3_CURRENT_ADDRESS, mac, sizeof(mac));
+ if (memcmp(mac, "\x00\x00\x00\x00\x00\x00", sizeof(mac)) == 0) {
+ status = mp_query(wnd, OID_802_3_PERMANENT_ADDRESS, mac,
+ sizeof(mac));
+ if (status != NDIS_STATUS_SUCCESS) {
+ ERROR("couldn't get mac address: %08X", status);
+ goto err_start;
+ }
+ }
+ TRACE1("mac:" MACSTRSEP, MAC2STR(mac));
+ memcpy(net_dev->dev_addr, mac, ETH_ALEN);
+
+ strncpy(net_dev->name, if_name, IFNAMSIZ - 1);
+ net_dev->name[IFNAMSIZ - 1] = 0;
+
+ wnd->packet_filter = NDIS_PACKET_TYPE_DIRECTED |
+ NDIS_PACKET_TYPE_BROADCAST | NDIS_PACKET_TYPE_MULTICAST;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
+ net_dev->netdev_ops = &ndis_netdev_ops;
+#else
+ net_dev->open = ndis_net_dev_open;
+ net_dev->hard_start_xmit = tx_skbuff;
+ net_dev->stop = ndis_net_dev_close;
+ net_dev->get_stats = ndis_get_stats;
+ net_dev->change_mtu = ndis_change_mtu;
+ net_dev->set_multicast_list = ndis_set_multicast_list;
+ net_dev->set_mac_address = ndis_set_mac_address;
+#ifdef CONFIG_NET_POLL_CONTROLLER
+ net_dev->poll_controller = ndis_poll_controller;
+#endif
+#endif
+ if (wnd->physical_medium == NdisPhysicalMediumWirelessLan) {
+ net_dev->wireless_handlers = &ndis_handler_def;
+ }
+ net_dev->ethtool_ops = &ndis_ethtool_ops;
+ if (wnd->mp_interrupt)
+ net_dev->irq = wnd->mp_interrupt->irq;
+ net_dev->mem_start = wnd->mem_start;
+ net_dev->mem_end = wnd->mem_end;
+ status = mp_query_int(wnd, OID_802_3_MAXIMUM_LIST_SIZE,
+ &wnd->multicast_size);
+ if (status != NDIS_STATUS_SUCCESS || wnd->multicast_size < 0)
+ wnd->multicast_size = 0;
+ if (wnd->multicast_size > 0)
+ net_dev->flags |= IFF_MULTICAST;
+ else
+ net_dev->flags &= ~IFF_MULTICAST;
+
+ buf = kmalloc(buf_len, GFP_KERNEL);
+ if (!buf) {
+ WARNING("couldn't allocate memory");
+ goto err_start;
+ }
+
+ set_task_offload(wnd, buf, buf_len);
+#ifdef NETIF_F_LLTX
+ net_dev->features |= NETIF_F_LLTX;
+#endif
+
+ if (register_netdev(net_dev)) {
+ ERROR("cannot register net device %s", net_dev->name);
+ goto err_register;
+ }
+ memcpy(wnd->netdev_name, net_dev->name, sizeof(wnd->netdev_name));
+ memset(buf, 0, buf_len);
+ status = mp_query(wnd, OID_GEN_VENDOR_DESCRIPTION, buf, buf_len);
+ if (status != NDIS_STATUS_SUCCESS) {
+ WARNING("couldn't get vendor information: 0x%x", status);
+ buf[0] = 0;
+ }
+ wnd->drv_ndis_version = n = 0;
+ mp_query_int(wnd, OID_GEN_DRIVER_VERSION, &wnd->drv_ndis_version);
+ mp_query_int(wnd, OID_GEN_VENDOR_DRIVER_VERSION, &n);
+
+ printk(KERN_INFO "%s: ethernet device " MACSTRSEP " using %sNDIS "
+ "driver: %s, version: 0x%x, NDIS version: 0x%x, vendor: '%s', "
+ "%s\n", net_dev->name, MAC2STR(net_dev->dev_addr),
+ deserialized_driver(wnd) ? "" : "serialized ",
+ wnd->wd->driver->name, n, wnd->drv_ndis_version, buf,
+ wnd->wd->conf_file_name);
+
+ if (deserialized_driver(wnd)) {
+ /* deserialized drivers don't have a limit, but we
+ * keep max at TX_RING_SIZE */
+ wnd->max_tx_packets = TX_RING_SIZE;
+ } else {
+ status = mp_query_int(wnd, OID_GEN_MAXIMUM_SEND_PACKETS,
+ &wnd->max_tx_packets);
+ if (status != NDIS_STATUS_SUCCESS)
+ wnd->max_tx_packets = 1;
+ if (wnd->max_tx_packets > TX_RING_SIZE)
+ wnd->max_tx_packets = TX_RING_SIZE;
+ }
+ TRACE2("maximum send packets: %d", wnd->max_tx_packets);
+ NdisAllocatePacketPoolEx(&status, &wnd->tx_packet_pool,
+ wnd->max_tx_packets, 0,
+ PROTOCOL_RESERVED_SIZE_IN_PACKET);
+ if (status != NDIS_STATUS_SUCCESS) {
+ ERROR("couldn't allocate packet pool");
+ goto packet_pool_err;
+ }
+ NdisAllocateBufferPool(&status, &wnd->tx_buffer_pool,
+ wnd->max_tx_packets + 4);
+ if (status != NDIS_STATUS_SUCCESS) {
+ ERROR("couldn't allocate buffer pool");
+ goto buffer_pool_err;
+ }
+ TRACE1("pool: %p", wnd->tx_buffer_pool);
+
+ if (mp_query_int(wnd, OID_GEN_MAXIMUM_TOTAL_SIZE, &n) ==
+ NDIS_STATUS_SUCCESS && n > ETH_HLEN)
+ ndis_change_mtu(wnd->net_dev, n - ETH_HLEN);
+
+ if (mp_query_int(wnd, OID_GEN_MAC_OPTIONS, &n) == NDIS_STATUS_SUCCESS)
+ TRACE2("mac options supported: 0x%x", n);
+
+ tx_header_offset = (typeof(tx_header_offset))buf;
+ tx_header_offset->protocol_type = NDIS_PROTOCOL_ID_TCP_IP;
+ tx_header_offset->header_offset = sizeof(ETH_HLEN);
+ status = mp_set(wnd, OID_GEN_TRANSPORT_HEADER_OFFSET,
+ tx_header_offset, sizeof(*tx_header_offset));
+ TRACE2("%08X", status);
+
+ status = mp_query_int(wnd, OID_GEN_PHYSICAL_MEDIUM,
+ &wnd->physical_medium);
+ if (status != NDIS_STATUS_SUCCESS)
+ wnd->physical_medium = NdisPhysicalMediumUnspecified;
+
+ if (wnd->physical_medium == NdisPhysicalMediumWirelessLan) {
+ mp_set_int(wnd, OID_802_11_POWER_MODE, NDIS_POWER_OFF);
+ get_encryption_capa(wnd, buf, buf_len);
+ TRACE1("capbilities = %ld", wnd->capa.encr);
+ printk(KERN_INFO "%s: encryption modes supported: "
+ "%s%s%s%s%s%s%s\n", net_dev->name,
+ test_bit(Ndis802_11Encryption1Enabled, &wnd->capa.encr) ?
+ "WEP" : "none",
+
+ test_bit(Ndis802_11Encryption2Enabled, &wnd->capa.encr) ?
+ "; TKIP with WPA" : "",
+ test_bit(Ndis802_11AuthModeWPA2, &wnd->capa.auth) ?
+ ", WPA2" : "",
+ test_bit(Ndis802_11AuthModeWPA2PSK, &wnd->capa.auth) ?
+ ", WPA2PSK" : "",
+
+ test_bit(Ndis802_11Encryption3Enabled, &wnd->capa.encr) ?
+ "; AES/CCMP with WPA" : "",
+ test_bit(Ndis802_11AuthModeWPA2, &wnd->capa.auth) ?
+ ", WPA2" : "",
+ test_bit(Ndis802_11AuthModeWPA2PSK, &wnd->capa.auth) ?
+ ", WPA2PSK" : "");
+
+ set_default_iw_params(wnd);
+ }
+ status = mp_query_int(wnd, OID_GEN_MEDIA_CONNECT_STATUS, (int *)buf);
+ if (status == NDIS_STATUS_SUCCESS)
+ set_media_state(wnd, *((int *)buf));
+ kfree(buf);
+ wrap_procfs_add_ndis_device(wnd);
+ hangcheck_add(wnd);
+ add_iw_stats_timer(wnd);
+ EXIT1(return NDIS_STATUS_SUCCESS);
+
+buffer_pool_err:
+ wnd->tx_buffer_pool = NULL;
+ if (wnd->tx_packet_pool) {
+ NdisFreePacketPool(wnd->tx_packet_pool);
+ wnd->tx_packet_pool = NULL;
+ }
+packet_pool_err:
+err_register:
+ kfree(buf);
+err_start:
+ ndis_remove_device(wnd);
+ EXIT1(return NDIS_STATUS_FAILURE);
+}
+
+static int ndis_remove_device(struct ndis_device *wnd)
+{
+ s8 tx_pending;
+
+ /* prevent setting essid during disassociation */
+ memset(&wnd->essid, 0, sizeof(wnd->essid));
+ wnd->tx_ok = 0;
+ if (wnd->max_tx_packets)
+ unregister_netdev(wnd->net_dev);
+ netif_carrier_off(wnd->net_dev);
+ /* if device is suspended, but resume failed, tx_ring_mutex
+ * may already be locked */
+ if (down_trylock(&wnd->tx_ring_mutex))
+ WARNING("couldn't obtain tx_ring_mutex");
+ spin_lock_bh(&wnd->tx_ring_lock);
+ tx_pending = wnd->tx_ring_end - wnd->tx_ring_start;
+ if (tx_pending < 0)
+ tx_pending += TX_RING_SIZE;
+ else if (tx_pending == 0 && wnd->is_tx_ring_full)
+ tx_pending = TX_RING_SIZE - 1;
+ wnd->is_tx_ring_full = 0;
+ /* throw away pending packets */
+ while (tx_pending-- > 0) {
+ struct ndis_packet *packet;
+
+ packet = wnd->tx_ring[wnd->tx_ring_start];
+ free_tx_packet(wnd, packet, NDIS_STATUS_CLOSING);
+ wnd->tx_ring_start = (wnd->tx_ring_start + 1) % TX_RING_SIZE;
+ }
+ spin_unlock_bh(&wnd->tx_ring_lock);
+ up(&wnd->tx_ring_mutex);
+ wrap_procfs_remove_ndis_device(wnd);
+ mp_halt(wnd);
+ ndis_exit_device(wnd);
+
+ if (wnd->tx_packet_pool) {
+ NdisFreePacketPool(wnd->tx_packet_pool);
+ wnd->tx_packet_pool = NULL;
+ }
+ if (wnd->tx_buffer_pool) {
+ NdisFreeBufferPool(wnd->tx_buffer_pool);
+ wnd->tx_buffer_pool = NULL;
+ }
+ if (wnd->pmkids)
+ kfree(wnd->pmkids);
+ printk(KERN_INFO "%s: device %s removed\n", DRIVER_NAME,
+ wnd->net_dev->name);
+ kfree(wnd->nmb);
+ free_netdev(wnd->net_dev);
+ EXIT2(return 0);
+}
+
+static wstdcall NTSTATUS NdisAddDevice(struct driver_object *drv_obj,
+ struct device_object *pdo)
+{
+ struct device_object *fdo;
+ struct ndis_mp_block *nmb;
+ NTSTATUS status;
+ struct ndis_device *wnd;
+ struct net_device *net_dev;
+ struct wrap_device *wd;
+ unsigned long i;
+
+ ENTER2("%p, %p", drv_obj, pdo);
+ if (strlen(if_name) >= IFNAMSIZ) {
+ ERROR("interface name '%s' is too long", if_name);
+ return STATUS_INVALID_PARAMETER;
+ }
+ net_dev = alloc_etherdev(sizeof(*wnd));
+ if (!net_dev) {
+ ERROR("couldn't allocate device");
+ return STATUS_RESOURCES;
+ }
+ wd = pdo->reserved;
+ if (wrap_is_pci_bus(wd->dev_bus))
+ SET_NETDEV_DEV(net_dev, &wd->pci.pdev->dev);
+ if (wrap_is_usb_bus(wd->dev_bus))
+ SET_NETDEV_DEV(net_dev, &wd->usb.intf->dev);
+ status = IoCreateDevice(drv_obj, 0, NULL, FILE_DEVICE_UNKNOWN, 0,
+ FALSE, &fdo);
+ if (status != STATUS_SUCCESS) {
+ free_netdev(net_dev);
+ EXIT2(return status);
+ }
+ wnd = netdev_priv(net_dev);
+ TRACE1("wnd: %p", wnd);
+
+ nmb = kmalloc(sizeof(*nmb), GFP_KERNEL);
+ if (!nmb) {
+ WARNING("couldn't allocate memory");
+ IoDeleteDevice(fdo);
+ free_netdev(net_dev);
+ return STATUS_RESOURCES;
+ }
+#if defined(DEBUG) && DEBUG >= 6
+ /* poison nmb so if a driver accesses uninitialized pointers, we
+ * know what it is */
+ for (i = 0; i < sizeof(*nmb) / sizeof(unsigned long); i++)
+ ((unsigned long *)nmb)[i] = i + 0x8a3fc1;
+#endif
+
+ wnd->nmb = nmb;
+ nmb->wnd = wnd;
+ nmb->pdo = pdo;
+ wd->wnd = wnd;
+ wnd->wd = wd;
+ wnd->net_dev = net_dev;
+ fdo->reserved = wnd;
+ nmb->fdo = fdo;
+ if (ndis_init_device(wnd)) {
+ IoDeleteDevice(fdo);
+ kfree(nmb);
+ free_netdev(net_dev);
+ EXIT1(return STATUS_RESOURCES);
+ }
+ nmb->next_device = IoAttachDeviceToDeviceStack(fdo, pdo);
+ spin_lock_init(&wnd->tx_ring_lock);
+ sema_init(&wnd->tx_ring_mutex, 1);
+ sema_init(&wnd->ndis_req_mutex, 1);
+ wnd->ndis_req_done = 0;
+ initialize_work(&wnd->tx_work, tx_worker, wnd);
+ wnd->tx_ring_start = 0;
+ wnd->tx_ring_end = 0;
+ wnd->is_tx_ring_full = 0;
+ wnd->capa.encr = 0;
+ wnd->capa.auth = 0;
+ wnd->attributes = 0;
+ wnd->dma_map_count = 0;
+ wnd->dma_map_addr = NULL;
+ wnd->nick[0] = 0;
+ init_timer(&wnd->hangcheck_timer);
+ wnd->scan_timestamp = 0;
+ init_timer(&wnd->iw_stats_timer);
+ wnd->iw_stats_interval = 10 * HZ;
+ wnd->ndis_pending_work = 0;
+ memset(&wnd->essid, 0, sizeof(wnd->essid));
+ memset(&wnd->encr_info, 0, sizeof(wnd->encr_info));
+ wnd->infrastructure_mode = Ndis802_11Infrastructure;
+ initialize_work(&wnd->ndis_work, ndis_worker, wnd);
+ wnd->iw_stats_enabled = TRUE;
+
+ TRACE1("nmb: %p, pdo: %p, fdo: %p, attached: %p, next: %p",
+ nmb, pdo, fdo, fdo->attached, nmb->next_device);
+
+ /* dispatch routines are called as Windows functions */
+ for (i = 0; i <= IRP_MJ_MAXIMUM_FUNCTION; i++)
+ drv_obj->major_func[i] = WIN_FUNC_PTR(IoPassIrpDown,2);
+
+ drv_obj->major_func[IRP_MJ_PNP] = WIN_FUNC_PTR(NdisDispatchPnp,2);
+ drv_obj->major_func[IRP_MJ_POWER] = WIN_FUNC_PTR(NdisDispatchPower,2);
+ drv_obj->major_func[IRP_MJ_INTERNAL_DEVICE_CONTROL] =
+ WIN_FUNC_PTR(NdisDispatchDeviceControl,2);
+// drv_obj->major_func[IRP_MJ_DEVICE_CONTROL] =
+// WIN_FUNC_PTR(NdisDispatchDeviceControl,2);
+ EXIT2(return STATUS_SUCCESS);
+}
+
+int init_ndis_driver(struct driver_object *drv_obj)
+{
+ ENTER1("%p", drv_obj);
+ drv_obj->drv_ext->add_device = NdisAddDevice;
+ return 0;
+}
+
+int wrapndis_init(void)
+{
+ wrapndis_wq = create_singlethread_workqueue("wrapndis_wq");
+ if (!wrapndis_wq)
+ EXIT1(return -ENOMEM);
+ wrapndis_worker_thread = wrap_worker_init(wrapndis_wq);
+ TRACE1("%p", wrapndis_worker_thread);
+ register_netdevice_notifier(&netdev_notifier);
+ return 0;
+}
+
+void wrapndis_exit(void)
+{
+ unregister_netdevice_notifier(&netdev_notifier);
+ if (wrapndis_wq)
+ destroy_workqueue(wrapndis_wq);
+ TRACE1("%p", wrapndis_worker_thread);
+ if (wrapndis_worker_thread)
+ ObDereferenceObject(wrapndis_worker_thread);
+}
diff --git a/ubuntu/ndiswrapper/wrapndis.h b/ubuntu/ndiswrapper/wrapndis.h
new file mode 100644
index 00000000000..6fce2ddb788
--- /dev/null
+++ b/ubuntu/ndiswrapper/wrapndis.h
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef _WRAPNDIS_H_
+#define _WRAPNDIS_H_
+
+#include "ndis.h"
+#include "pnp.h"
+
+int wrapndis_init(void);
+void wrapndis_exit(void);
+
+NDIS_STATUS mp_reset(struct ndis_device *wnd);
+
+NDIS_STATUS mp_request(enum ndis_request_type request,
+ struct ndis_device *wnd, ndis_oid oid,
+ void *buf, ULONG buflen, ULONG *written, ULONG *needed);
+
+static inline NDIS_STATUS mp_query_info(struct ndis_device *wnd,
+ ndis_oid oid, void *buf, ULONG buflen,
+ ULONG *written, ULONG *needed)
+{
+ return mp_request(NdisRequestQueryInformation, wnd, oid,
+ buf, buflen, written, needed);
+}
+
+static inline NDIS_STATUS mp_set_info(struct ndis_device *wnd,
+ ndis_oid oid, void *buf, ULONG buflen,
+ ULONG *written, ULONG *needed)
+{
+ return mp_request(NdisRequestSetInformation, wnd, oid,
+ buf, buflen, written, needed);
+}
+
+static inline NDIS_STATUS mp_query(struct ndis_device *wnd, ndis_oid oid,
+ void *buf, ULONG buflen)
+{
+ return mp_request(NdisRequestQueryInformation, wnd, oid,
+ buf, buflen, NULL, NULL);
+}
+
+static inline NDIS_STATUS mp_query_int(struct ndis_device *wnd,
+ ndis_oid oid, ULONG *data)
+{
+ return mp_request(NdisRequestQueryInformation, wnd, oid,
+ data, sizeof(ULONG), NULL, NULL);
+}
+
+static inline NDIS_STATUS mp_set(struct ndis_device *wnd, ndis_oid oid,
+ void *buf, ULONG buflen)
+{
+ return mp_request(NdisRequestSetInformation, wnd, oid,
+ buf, buflen, NULL, NULL);
+}
+
+static inline NDIS_STATUS mp_set_int(struct ndis_device *wnd,
+ ndis_oid oid, ULONG data)
+{
+ return mp_request(NdisRequestSetInformation, wnd, oid,
+ &data, sizeof(ULONG), NULL, NULL);
+}
+
+void free_tx_packet(struct ndis_device *wnd, struct ndis_packet *packet,
+ NDIS_STATUS status);
+int init_ndis_driver(struct driver_object *drv_obj);
+NDIS_STATUS ndis_reinit(struct ndis_device *wnd);
+void set_media_state(struct ndis_device *wnd, enum ndis_media_state state);
+
+void hangcheck_add(struct ndis_device *wnd);
+void hangcheck_del(struct ndis_device *wnd);
+
+driver_dispatch_t winNdisDispatchPnp;
+driver_dispatch_t winNdisDispatchPower;
+driver_dispatch_t winNdisDispatchDeviceControl;
+
+struct iw_statistics *get_iw_stats(struct net_device *dev);
+
+#endif
diff --git a/ubuntu/ndiswrapper/wrapper.c b/ubuntu/ndiswrapper/wrapper.c
new file mode 100644
index 00000000000..3e4bf08ece3
--- /dev/null
+++ b/ubuntu/ndiswrapper/wrapper.c
@@ -0,0 +1,121 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#include "ndis.h"
+#include "iw_ndis.h"
+#include "loader.h"
+#include "pnp.h"
+#include "wrapper.h"
+
+char *if_name = "wlan%d";
+int proc_uid, proc_gid;
+int hangcheck_interval;
+static char *utils_version = UTILS_VERSION;
+
+#if defined(DEBUG) && (DEBUG > 0)
+int debug = DEBUG;
+#else
+int debug = 0;
+#endif
+
+WRAP_MODULE_PARM_STRING(if_name, 0400);
+MODULE_PARM_DESC(if_name, "Network interface name or template "
+ "(default: wlan%d)");
+WRAP_MODULE_PARM_INT(proc_uid, 0600);
+MODULE_PARM_DESC(proc_uid, "The uid of the files created in /proc "
+ "(default: 0).");
+WRAP_MODULE_PARM_INT(proc_gid, 0600);
+MODULE_PARM_DESC(proc_gid, "The gid of the files created in /proc "
+ "(default: 0).");
+WRAP_MODULE_PARM_INT(debug, 0600);
+MODULE_PARM_DESC(debug, "debug level");
+
+/* 0 - default value provided by NDIS driver,
+ * positive value - force hangcheck interval to that many seconds
+ * negative value - disable hangcheck
+ */
+WRAP_MODULE_PARM_INT(hangcheck_interval, 0600);
+MODULE_PARM_DESC(hangcheck_interval, "The interval, in seconds, for checking"
+ " if driver is hung. (default: 0)");
+
+WRAP_MODULE_PARM_STRING(utils_version, 0400);
+MODULE_PARM_DESC(utils_version, "Compatible version of utils "
+ "(read only: " UTILS_VERSION ")");
+
+MODULE_AUTHOR("ndiswrapper team <ndiswrapper-general@lists.sourceforge.net>");
+#ifdef MODULE_DESCRIPTION
+MODULE_DESCRIPTION("NDIS wrapper driver");
+#endif
+#ifdef MODULE_VERSION
+MODULE_VERSION(DRIVER_VERSION);
+#endif
+MODULE_LICENSE("GPL");
+
+static void module_cleanup(void)
+{
+ loader_exit();
+#ifdef ENABLE_USB
+ usb_exit();
+#endif
+
+ wrap_procfs_remove();
+ wrapndis_exit();
+ ndis_exit();
+ rtl_exit();
+ crt_exit();
+ ntoskernel_exit();
+ wrapmem_exit();
+}
+
+static int __init wrapper_init(void)
+{
+ printk(KERN_INFO "%s version %s loaded (smp=%s, preempt=%s)\n",
+ DRIVER_NAME, DRIVER_VERSION,
+#ifdef CONFIG_SMP
+ "yes"
+#else
+ "no"
+#endif
+ ,
+#ifdef CONFIG_PREEMPT_RT
+ "rt"
+#elif defined(CONFIG_PREEMPT)
+ "yes"
+#else
+ "no"
+#endif
+ );
+
+ if (wrapmem_init() || ntoskernel_init() || crt_init() ||
+ rtl_init() || ndis_init() || wrapndis_init() ||
+#ifdef ENABLE_USB
+ usb_init() ||
+#endif
+ wrap_procfs_init() || loader_init()) {
+ module_cleanup();
+ ERROR("%s: initialization failed", DRIVER_NAME);
+ return -EINVAL;
+ }
+ EXIT1(return 0);
+}
+
+static void __exit wrapper_exit(void)
+{
+ ENTER1("");
+ module_cleanup();
+}
+
+module_init(wrapper_init);
+module_exit(wrapper_exit);
diff --git a/ubuntu/ndiswrapper/wrapper.h b/ubuntu/ndiswrapper/wrapper.h
new file mode 100644
index 00000000000..ba9a09ff20e
--- /dev/null
+++ b/ubuntu/ndiswrapper/wrapper.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2003-2005 Pontus Fuchs, Giridhar Pemmasani
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef WRAPPER_H
+#define WRAPPER_H
+
+extern char *if_name;
+extern int proc_uid;
+extern int proc_gid;
+extern int hangcheck_interval;
+
+#endif /* WRAPPER_H */
diff --git a/ubuntu/omnibook/BOM b/ubuntu/omnibook/BOM
new file mode 100644
index 00000000000..cc115c0f4c8
--- /dev/null
+++ b/ubuntu/omnibook/BOM
@@ -0,0 +1,2 @@
+Downloaded from: http://sourceforge.net/projects/omke/
+Current Version: 2.20070211
diff --git a/ubuntu/omnibook/Kconfig b/ubuntu/omnibook/Kconfig
new file mode 100644
index 00000000000..acad37a989c
--- /dev/null
+++ b/ubuntu/omnibook/Kconfig
@@ -0,0 +1,5 @@
+config OMNIBOOK
+ tristate "Kernel module for HP and Toshiba laptops"
+ depends on X86
+ default m
+ ---help---
diff --git a/ubuntu/omnibook/Makefile b/ubuntu/omnibook/Makefile
new file mode 100644
index 00000000000..fcde1fab866
--- /dev/null
+++ b/ubuntu/omnibook/Makefile
@@ -0,0 +1,171 @@
+#
+# Makefile -- makefile for the HP OmniBook support module
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2, or (at your option) any
+# later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# Written by Soós Péter <sp@osb.hu>, 2002-2004
+# Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006-2007
+#
+
+#Module informations
+
+MODULE_NAME = omnibook
+MODULE_VERSION = 2.20090707
+MODULE_BRANCH = trunk
+
+# Out-of-tree configuration
+ifndef CONFIG_OMNIBOOK
+OMNIBOOK_STANDALONE=y
+CONFIG_OMNIBOOK=m
+
+#Uncomment and set to force debug behavior
+#NOTE: Default (commented) behavior is to enable debug in trunk or branch svn
+# snapshot and to disable it for release
+#OMNIBOOK_WANT_DEBUG=n
+
+#comment to disable backlight device support
+OMNIBOOK_WANT_BACKLIGHT=y
+
+#Uncomment to force legacy (pre-ACPI system) features support
+#OMNIBOOK_WANT_LEGACY=y
+
+endif
+
+ifeq ($(KERNELRELEASE),)
+# Support for direct Makefile invocation
+
+DESTDIR =
+MODDIR = $(DESTDIR)/lib/modules
+KVERS = $(shell uname -r)
+KVER = $(KVERS)
+VMODDIR = $(MODDIR)/$(KVER)
+INSTDIR = extra
+#KSRC = /usr/src/linux
+KSRC = $(VMODDIR)/build
+KMODDIR = $(KSRC)/drivers/misc/omnibook
+KDOCDIR = $(KSRC)/Documentation/omnibook
+PWD = $(shell pwd)
+TODAY = $(shell date +%Y%m%d)
+DEPMOD = /sbin/depmod -aq
+RMMOD = /sbin/modprobe -r
+INSMOD = /sbin/modprobe
+INSTALL = install -m 644
+MKDIR = mkdir -p
+RM = rm -f
+FIND = find
+
+all: $(MODULE_NAME).ko
+
+clean:
+ make -C $(KSRC) M=$(PWD) clean
+ $(RM) -r *~ "#*#" .swp
+ $(RM) -r debian/omnibook-source *-stamp
+ $(RM) -r Module.symvers Modules.symvers
+
+install: all
+ # Removing module from locations used by previous versions
+ $(RM) $(VMODDIR)/kernel/drivers/char/$(MODULE_NAME).ko
+ $(RM) $(VMODDIR)/kernel/drivers/misc/$(MODULE_NAME).ko
+ make INSTALL_MOD_PATH=$(DESTDIR) INSTALL_MOD_DIR=$(INSTDIR) -C $(KSRC) M=$(PWD) modules_install
+
+unload:
+ $(RMMOD) $(MODULE_NAME) || :
+
+load: install unload
+ $(DEPMOD)
+ $(INSMOD) $(MODULE_NAME)
+
+uninstall: unload
+ $(FIND) $(VMODDIR) -name "$(MODULE_NAME).ko" -exec $(RM) {} \;
+ $(DEPMOD)
+
+$(MODULE_NAME).ko:
+ $(MAKE) -C $(KSRC) SUBDIRS=$(PWD) modules
+
+kinstall:
+ $(RM) -r $(KMODDIR)
+ $(MKDIR) $(KMODDIR)
+ $(INSTALL) *.h *.c sections.lds $(KMODDIR)
+ $(MKDIR) $(KDOCDIR)
+ $(INSTALL) doc/README $(KDOCDIR)
+
+kpatch: kinstall
+ (cd $(KSRC); patch -p1 < $(PWD)/misc/omnibook-integration.patch)
+
+version:
+ sed -i "s|^\(MODULE_VERSION = \).*|\1 2.$(TODAY)|" Makefile
+ sed -i "s|^\(MODULE_BRANCH = \).*|\1 release|" Makefile
+ sed -i "s|^\(2\.\)X\{8\}|\1$(TODAY)|" doc/ChangeLog
+
+
+release: clean version
+ mkdir -p ../$(MODULE_NAME)-2.$(TODAY)
+ cp -a *.h *.c *.lds Makefile doc misc ../$(MODULE_NAME)-2.$(TODAY)
+ rm -f ../$(MODULE_NAME)-2.$(TODAY).tar ../$(MODULE_NAME)-2.$(TODAY).tar.gz
+ (cd ..; tar cvf $(MODULE_NAME)-2.$(TODAY).tar $(MODULE_NAME)-2.$(TODAY); gzip -9 $(MODULE_NAME)-2.$(TODAY).tar)
+
+else
+# Support for kernel build system invocation
+
+ifneq ($(MODULE_BRANCH), release)
+EXTRA_CFLAGS += -DOMNIBOOK_MODULE_VERSION='"$(MODULE_VERSION)-$(MODULE_BRANCH)"'
+else
+EXTRA_CFLAGS += -DOMNIBOOK_MODULE_VERSION='"$(MODULE_VERSION)"'
+endif
+
+ifeq ($(OMNIBOOK_STANDALONE),y)
+
+ifeq ($(OMNIBOOK_WANT_BACKLIGHT),y)
+ifdef CONFIG_BACKLIGHT_CLASS_DEVICE
+# we support backlight interface only after 2.6.16
+ifeq ($(shell if [ $(SUBLEVEL) -gt 16 ] ; then echo -n 'y'; fi),y)
+EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_BACKLIGHT
+else
+$(warning "Backlight support in only supported for kernel version newer than 2.6.16")
+$(warning "Disabling backlight sysfs interface")
+endif
+endif
+endif
+
+ifeq ($(OMNIBOOK_WANT_LEGACY),y)
+EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_LEGACY
+endif
+
+ifndef CONFIG_ACPI_EC
+EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_LEGACY
+endif
+
+ifneq ($(MODULE_BRANCH), release)
+ifneq ($(OMNIBOOK_WANT_DEBUG),n)
+EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_DEBUG # -Wa -g0
+endif
+else
+ifeq ($(OMNIBOOK_WANT_DEBUG),y)
+EXTRA_CFLAGS += -DCONFIG_OMNIBOOK_DEBUG # -Wa -g0
+endif
+
+endif
+
+endif
+
+EXTRA_CFLAGS += -DOMNIBOOK_MODULE_NAME='"$(MODULE_NAME)"'
+#EXTRA_LDFLAGS += $(src)/sections.lds
+EXTRA_LDFLAGS += $(PWD)/ubuntu/omnibook/sections.lds
+
+obj-$(CONFIG_OMNIBOOK) += $(MODULE_NAME).o
+omnibook-objs := init.o lib.o ec.o kbc.o pio.o compal.o acpi.o nbsmi.o \
+ ac.o battery.o blank.o bluetooth.o cooling.o display.o dock.o \
+ dump.o fan.o fan_policy.o hotkeys.o info.o lcd.o muteled.o \
+ polling.o temperature.o touchpad.o wireless.o throttling.o
+
+endif # End of kernel build system part
+
+# End of file
diff --git a/ubuntu/omnibook/ac.c b/ubuntu/omnibook/ac.c
new file mode 100644
index 00000000000..3787cdc0ffe
--- /dev/null
+++ b/ubuntu/omnibook/ac.c
@@ -0,0 +1,60 @@
+/*
+ * ac.c -- AC adapter related functions
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+static int omnibook_ac_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+ u8 ac;
+ int retval;
+
+ retval = backend_byte_read(io_op, &ac);
+ if (retval < 0)
+ return retval;
+
+ len += sprintf(buffer + len, "AC %s\n", (!!ac) ? "on-line" : "off-line");
+
+ return len;
+}
+
+static struct omnibook_tbl ac_table[] __initdata = {
+ {XE3GF | TSP10 | TSM30X | TSM70, SIMPLE_BYTE(EC, XE3GF_ADP, XE3GF_ADP_MASK)},
+ {XE3GC | AMILOD, SIMPLE_BYTE(EC, XE3GC_STA1, XE3GC_ADP_MASK)},
+ {OB500 | OB510 | OB6000 | OB6100 | XE4500, SIMPLE_BYTE(EC, OB500_STA2, OB500_ADP_MASK)},
+ {OB4150, SIMPLE_BYTE(EC, OB4150_ADP, OB4150_ADP_MASK)},
+ {XE2, SIMPLE_BYTE(EC, XE2_STA1, XE2_ADP_MASK)},
+ {0,}
+};
+
+struct omnibook_feature __declared_feature ac_driver = {
+ .name = "ac",
+#ifdef CONFIG_OMNIBOOK_LEGACY
+ .enabled = 1,
+#else
+ .enabled = 0,
+#endif
+ .read = omnibook_ac_read,
+ .ectypes = XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | OB4150 | XE2 | AMILOD | TSP10 | TSM70 | TSM30X,
+ .tbl = ac_table,
+};
+
+module_param_named(ac, ac_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(ac, "Use 0 to disable, 1 to enable AC adapter status monitoring");
+
+/* End of file */
diff --git a/ubuntu/omnibook/acpi.c b/ubuntu/omnibook/acpi.c
new file mode 100644
index 00000000000..7c6a86573bb
--- /dev/null
+++ b/ubuntu/omnibook/acpi.c
@@ -0,0 +1,1158 @@
+/*
+ * acpi.c -- ACPI methods low-level access code for TSM70 class laptops
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ *
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+#ifdef CONFIG_ACPI
+
+#include <acpi/acpi_drivers.h>
+#include <linux/workqueue.h>
+
+/* copied from drivers/input/serio/i8042-io.h */
+#define I8042_KBD_PHYS_DESC "isa0060/serio0"
+
+/*
+ * ACPI backend masks and strings
+ */
+
+#define GET_WIRELESS_METHOD "ANTR"
+#define SET_WIRELESS_METHOD "ANTW"
+#define WLEX_MASK 0x4
+#define WLAT_MASK 0x1
+#define BTEX_MASK 0x8
+#define BTAT_MASK 0x2
+#define KLSW_MASK 0x10
+
+#define GET_DISPLAY_METHOD "DOSS"
+#define SET_DISPLAY_METHOD "DOSW"
+/* Display reading masks CADL = detected, CSTE = enabled */
+#define LCD_CADL 0x10
+#define CRT_CADL 0x20
+#define TVO_CADL 0x40
+#define DVI_CADL 0x80
+#define LCD_CSTE 0x1
+#define CRT_CSTE 0x2
+#define TVO_CSTE 0x4
+#define DVI_CSTE 0x8
+
+/* TSX205 Video-Out methods and return values */
+#define TSX205_SET_DISPLAY_METHOD "STBL"
+#define TSX205_SLI_DISPLAY_METHOD "SL01.VGA1.STBL"
+/* NOTE: Method DSSW seems to be some sort of auto-detect method */
+#define TSX205_AUTO_DISPLAY_METHOD "DSSW"
+#define TSX205_DSPY_DE 0x1F /* DE - Detected and Enabled */
+#define TSX205_DSPY_DN 0x1D /* DN - Detected and Not enabled */
+#define TSX205_DSPY_NE 0x0F /* NE - Not detected and Enabled */
+#define TSX205_DSPY_NN 0x0D /* NN - Not detected and Not enabled */
+
+#define GET_THROTTLE_METHOD "THRO"
+#define SET_THROTTLE_METHOD "CLCK"
+
+static char ec_dev_list[][20] = {
+ "\\_SB.PCI0.LPCB.EC0",
+ "\\_SB.PCI0.LPC0.EC0",
+};
+
+/* TSX205 HCI and display handles */
+static char tsx205_dev_list[][20] = {
+ "\\_SB.VALZ",
+ "\\_SB.PCI0.PEGP.VGA"
+};
+
+/* TSX205 GET video-out methods */
+static char tsx205_video_list[][20] = {
+ "LCD._DCS",
+ "CRT._DCS",
+ "TV._DCS",
+ "DVI._DCS",
+ "SL01.VGA1.LCD._DCS",
+ "SL01.VGA1.CRT._DCS",
+ "SL01.VGA1.TV._DCS",
+ "SL01.VGA1.DVI._DCS",
+};
+
+#define TOSHIBA_ACPI_BT_CLASS "bluetooth"
+#define TOSHIBA_ACPI_DEVICE_NAME "bluetooth adapter"
+
+#define TOSH_BT_ACTIVATE_USB "AUSB"
+#define TOSH_BT_DISABLE_USB "DUSB"
+#define TOSH_BT_POWER_ON "BTPO"
+#define TOSH_BT_POWER_OFF "BTPF"
+#define TOSH_BT_STATUS "BTST"
+#define TOSH_BT_KSST_MASK 0x1
+#define TOSH_BT_USB_MASK 0x40
+#define TOSH_BT_POWER_MASK 0x80
+
+/*
+ * ACPI driver for Toshiba Bluetooth device
+ */
+static int omnibook_acpi_bt_add(struct acpi_device *device);
+static int omnibook_acpi_bt_remove(struct acpi_device *device, int type);
+
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)
+static const struct acpi_device_id omnibook_bt_ids[] = {
+ {"TOS6205", 0},
+ {"", 0},
+};
+
+static struct acpi_driver omnibook_bt_driver = {
+ .name = OMNIBOOK_MODULE_NAME,
+ .class = TOSHIBA_ACPI_BT_CLASS,
+ .ids = omnibook_bt_ids,
+ .ops = {
+ .add = omnibook_acpi_bt_add,
+ .remove = omnibook_acpi_bt_remove,
+ },
+};
+#else /* 2.6.23 */
+static struct acpi_driver omnibook_bt_driver = {
+ .name = OMNIBOOK_MODULE_NAME,
+ .class = TOSHIBA_ACPI_BT_CLASS,
+ .ids = "TOS6205",
+ .ops = {
+ .add = omnibook_acpi_bt_add,
+ .remove = omnibook_acpi_bt_remove,
+ },
+};
+#endif /* 2.6.23 */
+
+
+/*
+ * ACPI backend private data structure
+ */
+struct acpi_backend_data {
+ acpi_handle ec_handle; /* Handle on ACPI EC device */
+ acpi_handle bt_handle; /* Handle on ACPI BT device */
+ acpi_handle hci_handle; /* Handle on ACPI HCI device */
+ acpi_handle dis_handle; /* Handle on ACPI Display device */
+ unsigned has_antr_antw:1; /* Are there ANTR/ANTW methods in the EC device ? */
+ unsigned has_doss_dosw:1; /* Are there DOSS/DOSW methods in the EC device ? */
+ unsigned has_sli:1; /* Does the laptop has SLI enabled ? */
+ struct input_dev *acpi_input_dev;
+ struct work_struct fnkey_work;
+};
+
+/*
+ * Hotkeys workflow:
+ * 1. Fn+Foo pressed
+ * 2. Scancode 0x6e generated by kbd controller
+ * 3. Scancode 0x6e caught by omnibook input handler
+ * 4. INFO method has keycode of last actually pressed Fn key
+ * 5. acpi_scan_table used to associate a detected keycode with a generated one
+ * 6. Generated keycode issued using the omnibook input device
+ */
+
+/*
+ * The input handler should only bind with the standard AT keyboard.
+ * XXX: Scancode 0x6e won't be detected if the keyboard has already been
+ * grabbed (the Xorg event input driver do that)
+ */
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21))
+static int hook_connect(struct input_handler *handler,
+ struct input_dev *dev,
+ const struct input_device_id *id)
+#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
+static struct input_handle *hook_connect(struct input_handler *handler,
+ struct input_dev *dev,
+ const struct input_device_id *id)
+#else
+static struct input_handle *hook_connect(struct input_handler *handler,
+ struct input_dev *dev,
+ struct input_device_id *id)
+#endif
+{
+ struct input_handle *handle;
+ int error;
+
+ /* the 0x0001 vendor magic number is found in atkbd.c */
+ if(!(dev->id.bustype == BUS_I8042 && dev->id.vendor == 0x0001))
+ goto out_nobind;
+
+ if(!strstr(dev->phys, I8042_KBD_PHYS_DESC))
+ goto out_nobind;
+
+ dprintk("hook_connect for device %s.\n", dev->name);
+
+ if(dev->grab)
+ printk(O_WARN "Input device is grabbed by %s, Fn hotkeys won't work.\n",
+ dev->grab->name);
+
+ handle = kzalloc(sizeof(struct input_handle), GFP_KERNEL);
+ if (!handle)
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21))
+ return -ENOMEM;
+#else
+ return NULL;
+#endif
+
+ handle->dev = dev;
+ handle->handler = handler;
+ handle->name = "omnibook_scancode_hook";
+ handle->private = handler->private;
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21))
+ error = input_register_handle(handle);
+ if (error) {
+ dprintk("register_handle failed\n");
+ goto out_nobind_free;
+ }
+ error = input_open_device(handle);
+ if (error) {
+ dprintk("register_handle failed\n");
+ input_unregister_handle(handle);
+ goto out_nobind_free;
+ }
+
+#else
+ status=input_open_device(handle);
+ if (error==0) dprintk("Input device opened\n");
+ else {
+ dprintk("opening input device failed\n");
+ goto out_nobind_free;
+ }
+#endif
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21))
+ return 0;
+out_nobind_free:
+ kfree(handle);
+out_nobind:
+ return -ENODEV;
+#else
+ return handle;
+out_nobind_free:
+ kfree(handle);
+out_nobind:
+ return NULL;
+#endif
+}
+
+static void hook_disconnect(struct input_handle *handle)
+{
+ dprintk("hook_disconnect.\n");
+ input_close_device(handle);
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21))
+ input_unregister_handle(handle);
+#endif
+ kfree(handle);
+}
+
+/*
+ * Hook for scancode 0x6e. Actual handling is done in a workqueue.
+ */
+static void hook_event(struct input_handle *handle, unsigned int event_type,
+ unsigned int event_code, int value)
+{
+ if (event_type == EV_MSC && event_code == MSC_SCAN && value == ACPI_FN_SCAN)
+ schedule_work(&((struct acpi_backend_data *)handle->private)->fnkey_work);
+}
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
+static const struct input_device_id hook_ids[] = {
+#else
+static struct input_device_id hook_ids[] = {
+#endif
+ {
+ .flags = INPUT_DEVICE_ID_MATCH_EVBIT,
+ .evbit = { BIT(EV_KEY) },
+ },
+ { }, /* Terminating entry */
+};
+
+static struct input_handler hook_handler = {
+ .event = hook_event,
+ .connect = hook_connect,
+ .disconnect = hook_disconnect,
+ .name = OMNIBOOK_MODULE_NAME,
+ .id_table = hook_ids,
+};
+
+/*
+ * Detected scancode to keycode table
+ */
+static const struct {
+ unsigned int scancode;
+ unsigned int keycode;
+} acpi_scan_table[] = {
+ { HCI_FN_RELEASED, KEY_FN},
+ { HCI_MUTE, KEY_MUTE},
+ { HCI_BREAK, KEY_COFFEE},
+ { HCI_1, KEY_ZOOMOUT},
+ { HCI_2, KEY_ZOOMIN},
+ { HCI_SPACE, KEY_ZOOMRESET},
+ { HCI_BSM, KEY_BATTERY},
+ { HCI_SUSPEND, KEY_SLEEP},
+ { HCI_HIBERNATE, KEY_SUSPEND},
+ { HCI_VIDEOOUT, KEY_SWITCHVIDEOMODE},
+ { HCI_BRIGHTNESSDOWN, KEY_BRIGHTNESSDOWN},
+ { HCI_BRIGHTNESSUP, KEY_BRIGHTNESSUP},
+ { HCI_WLAN, KEY_WLAN},
+ { HCI_TOUCHPAD, KEY_PROG1},
+ { HCI_FN_PRESSED, KEY_FN},
+ { 0, 0},
+};
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19))
+static void omnibook_handle_fnkey(struct work_struct *work);
+#else
+static void omnibook_handle_fnkey(void* data);
+#endif
+
+/*
+ * Register the input handler and the input device in the input subsystem
+ */
+static int register_input_subsystem(struct acpi_backend_data *priv_data)
+{
+ int i, retval = 0;
+ struct input_dev *acpi_input_dev;
+
+ acpi_input_dev = input_allocate_device();
+ if (!acpi_input_dev) {
+ retval = -ENOMEM;
+ goto out;
+ }
+
+ acpi_input_dev->name = "Omnibook ACPI scancode generator";
+ acpi_input_dev->phys = "omnibook/input0";
+ acpi_input_dev->id.bustype = BUS_HOST;
+
+ set_bit(EV_KEY, acpi_input_dev->evbit);
+
+ for(i=0 ; i < ARRAY_SIZE(acpi_scan_table); i++)
+ set_bit(acpi_scan_table[i].keycode, acpi_input_dev->keybit);
+
+ retval = input_register_device(acpi_input_dev);
+ if (retval) {
+ input_free_device(acpi_input_dev);
+ goto out;
+ }
+
+ priv_data->acpi_input_dev = acpi_input_dev;
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19))
+ INIT_WORK(&priv_data->fnkey_work, *omnibook_handle_fnkey);
+#else
+ INIT_WORK(&priv_data->fnkey_work, *omnibook_handle_fnkey, priv_data);
+#endif
+
+
+ hook_handler.private = priv_data;
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
+ retval = input_register_handler(&hook_handler);
+#else
+ input_register_handler(&hook_handler);
+#endif
+
+ out:
+ return retval;
+}
+
+/*
+ * Execute an ACPI method which return either an integer or nothing
+ * and that require 0 or 1 numerical argument
+ * (acpi_evaluate_object wrapper)
+ */
+static int omnibook_acpi_execute(acpi_handle dev_handle, char *method, const int *param, int *result)
+{
+
+ struct acpi_object_list args_list;
+ struct acpi_buffer buff;
+ union acpi_object arg, out_objs[1];
+
+ if (param) {
+ args_list.count = 1;
+ args_list.pointer = &arg;
+ arg.type = ACPI_TYPE_INTEGER;
+ arg.integer.value = *param;
+ } else
+ args_list.count = 0;
+
+ buff.length = sizeof(out_objs);
+ buff.pointer = out_objs;
+
+ if (acpi_evaluate_object(dev_handle, method, &args_list, &buff) != AE_OK) {
+ printk(O_ERR "ACPI method execution failed\n");
+ return -EIO;
+ }
+
+ if (!result) /* We don't care what the method returned here */
+ return 0;
+
+ if (out_objs[0].type != ACPI_TYPE_INTEGER) {
+ printk(O_ERR "ACPI method result is not a number\n");
+ return -EINVAL;
+ }
+
+ *result = out_objs[0].integer.value;
+ return 0;
+}
+
+/*
+ * Probe for expected ACPI devices
+ */
+static int omnibook_acpi_init(const struct omnibook_operation *io_op)
+{
+ int retval = 0;
+ acpi_handle dev_handle, method_handle, hci_handle, dis_handle;
+ int i;
+ int has_sli = 0;
+ struct acpi_backend_data *priv_data;
+
+ if (unlikely(acpi_disabled)) {
+ printk(O_ERR "ACPI is disabled: feature unavailable.\n");
+ return -ENODEV;
+ }
+
+ if (!io_op->backend->data) {
+ dprintk("Try to init ACPI backend\n");
+ mutex_init(&io_op->backend->mutex);
+ mutex_lock(&io_op->backend->mutex);
+ kref_init(&io_op->backend->kref);
+ priv_data = kzalloc(sizeof(struct acpi_backend_data), GFP_KERNEL);
+ if (!priv_data) {
+ retval = -ENOMEM;
+ goto error0;
+ }
+
+ /* Locate ACPI EC device, acpi_get_handle set dev_handle to NULL if not found */
+ for (i = 0; i < ARRAY_SIZE(ec_dev_list); i++) {
+ if (acpi_get_handle(NULL, ec_dev_list[i], &dev_handle) == AE_OK) {
+ dprintk("ACPI EC device found\n");
+ priv_data->ec_handle = dev_handle;
+ break;
+ }
+ }
+
+ if (!dev_handle) {
+ printk(O_ERR "Can't get handle on ACPI EC device.\n");
+ retval = -ENODEV;
+ goto error1;
+ }
+
+ /* Probe for HCI and Display devices only on TSX205 models */
+ if (omnibook_ectype & TSX205) {
+ if (acpi_get_handle(NULL, tsx205_dev_list[0], &hci_handle) == AE_OK) {
+ dprintk("Toshiba X205 HCI device found\n");
+ priv_data->hci_handle = hci_handle;
+ }
+
+ if (!hci_handle) {
+ printk(O_ERR "Couldn't get HCI handle.\n");
+ retval = -ENODEV;
+ goto error1;
+ }
+
+ if (acpi_get_handle(NULL, tsx205_dev_list[1], &dis_handle) == AE_OK)
+ priv_data->dis_handle = dis_handle;
+
+ if (!dis_handle) {
+ printk(O_ERR "Couldn't get X205 Display handle.\n");
+ retval = -ENODEV;
+ goto error1;
+ }
+
+ /* Does the laptop has SLI enabled? */
+ omnibook_acpi_execute(dis_handle, (char *)TSX205_SLIVDO_METHOD, NULL, &has_sli);
+ if (has_sli)
+ dprintk("Toshiba X205 Display device found (SLI).\n");
+ else
+ dprintk("Toshiba X205 Display device found.\n");
+
+ priv_data->has_sli = has_sli;
+ }
+
+ if ((acpi_get_handle( dev_handle, GET_WIRELESS_METHOD, &method_handle) == AE_OK) &&
+ (acpi_get_handle( dev_handle, SET_WIRELESS_METHOD, &method_handle) == AE_OK))
+ priv_data->has_antr_antw = 1;
+
+ if (omnibook_ectype & TSX205) {
+ if ((acpi_get_handle(dis_handle, TSX205_AUTO_DISPLAY_METHOD, &method_handle) == AE_OK) &&
+ (acpi_get_handle(dis_handle, TSX205_AUTO_DISPLAY_METHOD, &method_handle) == AE_OK))
+ priv_data->has_doss_dosw = 1;
+ } else {
+ if ((acpi_get_handle( dev_handle, GET_DISPLAY_METHOD, &method_handle) == AE_OK) &&
+ (acpi_get_handle( dev_handle, SET_DISPLAY_METHOD, &method_handle) == AE_OK))
+ priv_data->has_doss_dosw = 1;
+ }
+
+ retval = register_input_subsystem(priv_data);
+ if(retval)
+ goto error1;
+
+ io_op->backend->data = (void *) priv_data;
+
+ mutex_unlock(&io_op->backend->mutex);
+
+ /* attempt to register Toshiba bluetooth ACPI driver */
+ acpi_bus_register_driver(&omnibook_bt_driver);
+
+ dprintk("ACPI backend init OK\n");
+
+ return 0;
+
+ } else {
+ dprintk("ACPI backend has already been initialized\n");
+ kref_get(&io_op->backend->kref);
+ return 0;
+ }
+
+ error1:
+ kfree(priv_data);
+ io_op->backend->data = NULL;
+ error0:
+ mutex_unlock(&io_op->backend->mutex);
+ mutex_destroy(&io_op->backend->mutex);
+ return retval;
+}
+
+static void omnibook_acpi_free(struct kref *ref)
+{
+ struct omnibook_backend *backend;
+ struct acpi_backend_data *priv_data;
+
+ backend = container_of(ref, struct omnibook_backend, kref);
+ priv_data = backend->data;
+
+ dprintk("ACPI backend not used anymore: disposing\n");
+
+
+ dprintk("ptr addr: %p driver name: %s\n",&omnibook_bt_driver, omnibook_bt_driver.name);
+ acpi_bus_unregister_driver(&omnibook_bt_driver);
+
+ flush_scheduled_work();
+ input_unregister_handler(&hook_handler);
+ input_unregister_device(priv_data->acpi_input_dev);
+
+ mutex_lock(&backend->mutex);
+ kfree(backend->data);
+ backend->data = NULL;
+ mutex_unlock(&backend->mutex);
+ mutex_destroy(&backend->mutex);
+}
+
+static void omnibook_acpi_exit(const struct omnibook_operation *io_op)
+{
+ dprintk("Trying to dispose ACPI backend\n");
+ kref_put(&io_op->backend->kref, omnibook_acpi_free);
+}
+
+/* forward declaration */
+struct omnibook_backend acpi_backend;
+
+/* Function taken from toshiba_acpi */
+static acpi_status hci_raw(const u32 in[HCI_WORDS], u32 out[HCI_WORDS])
+{
+ struct acpi_backend_data *priv_data = acpi_backend.data;
+ struct acpi_object_list params;
+ union acpi_object in_objs[HCI_WORDS];
+ struct acpi_buffer results;
+ union acpi_object out_objs[HCI_WORDS + 1];
+ acpi_status status;
+ int i;
+
+ params.count = HCI_WORDS;
+ params.pointer = in_objs;
+ for (i = 0; i < HCI_WORDS; ++i) {
+ in_objs[i].type = ACPI_TYPE_INTEGER;
+ in_objs[i].integer.value = in[i];
+ }
+
+ results.length = sizeof(out_objs);
+ results.pointer = out_objs;
+
+ status = acpi_evaluate_object(priv_data->hci_handle, (char *)HCI_METHOD, &params,
+ &results);
+ if ((status == AE_OK) && (out_objs->package.count <= HCI_WORDS)) {
+ for (i = 0; i < out_objs->package.count; ++i) {
+ out[i] = out_objs->package.elements[i].integer.value;
+ }
+ }
+
+ return status;
+}
+
+/*
+ * Set Bluetooth device state using the Toshiba BT device
+ */
+static int set_bt_status(const struct acpi_backend_data *priv_data, unsigned int state)
+{
+ int retval = 0;
+
+ if (state) {
+ retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_ACTIVATE_USB, NULL, NULL);
+ if (retval)
+ goto out;
+ retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_POWER_ON, NULL, NULL);
+ if (retval)
+ goto out;
+ } else {
+ retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_DISABLE_USB, NULL, NULL);
+ if (retval)
+ goto out;
+ retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_POWER_OFF, NULL, NULL);
+ if (retval)
+ goto out;
+ }
+ out:
+ return retval;
+}
+
+static int omnibook_acpi_bt_add(struct acpi_device *device)
+{
+ int retval;
+ struct acpi_backend_data *priv_data = acpi_backend.data;
+
+ dprintk("Enabling Toshiba Bluetooth ACPI device.\n");
+ strcpy(acpi_device_name(device), TOSHIBA_ACPI_DEVICE_NAME);
+ strcpy(acpi_device_class(device), TOSHIBA_ACPI_BT_CLASS);
+
+ /* Save handle in backend private data structure. ugly. */
+
+ mutex_lock(&acpi_backend.mutex);
+ priv_data->bt_handle = device->handle;
+ retval = set_bt_status(priv_data, 1);
+ mutex_unlock(&acpi_backend.mutex);
+
+ return retval;
+}
+
+static int omnibook_acpi_bt_remove(struct acpi_device *device, int type)
+{
+ int retval;
+ struct acpi_backend_data *priv_data = acpi_backend.data;
+
+ mutex_lock(&acpi_backend.mutex);
+ dprintk("Disabling Toshiba Bluetooth ACPI device.\n");
+ retval = set_bt_status(priv_data, 0);
+ priv_data->bt_handle = NULL;
+ mutex_unlock(&acpi_backend.mutex);
+
+ return retval;
+}
+
+/*
+ * Get Bluetooth status using the BTST method
+ */
+static int get_bt_status(const struct acpi_backend_data *priv_data, unsigned int *state)
+{
+ int retval = 0;
+ int raw_state;
+
+ if ((retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_STATUS, NULL, &raw_state)))
+ return retval;
+
+ dprintk("BTST raw_state: %x\n", raw_state);
+
+ *state = BT_EX;
+ *state |= ((raw_state & TOSH_BT_USB_MASK) && (raw_state & TOSH_BT_POWER_MASK)) ? BT_STA : 0;
+
+ return retval;
+}
+
+/*
+ * Get the Bluetooth + Wireless status using the ANTR method
+ * FIXME: what if ANTR and BTST disagree ? we thrust ANTR for now
+ */
+static int get_wireless_status(const struct acpi_backend_data *priv_data, unsigned int *state)
+{
+ int retval = 0;
+ int raw_state;
+
+ if ((retval = omnibook_acpi_execute(priv_data->ec_handle, GET_WIRELESS_METHOD, NULL, &raw_state)))
+ return retval;
+
+ dprintk("get_wireless raw_state: %x\n", raw_state);
+
+ *state = (raw_state & WLEX_MASK) ? WIFI_EX : 0;
+ *state |= (raw_state & WLAT_MASK) ? WIFI_STA : 0;
+ *state |= (raw_state & KLSW_MASK) ? KILLSWITCH : 0;
+ *state |= (raw_state & BTEX_MASK) ? BT_EX : 0;
+ *state |= (raw_state & BTAT_MASK) ? BT_STA : 0;
+
+ return retval;
+}
+
+static int get_tsx205_wireless_status(const struct acpi_backend_data *priv_data, unsigned int *state)
+{
+ int retval = 0;
+ int raw_state;
+ u32 in[HCI_WORDS] = { HCI_GET, HCI_RF_CONTROL, 0, HCI_WIRELESS_CHECK, 0, 0 };
+ u32 out[HCI_WORDS];
+
+ hci_raw(in, out);
+
+ /* Now let's check the killswitch */
+ if ((retval = omnibook_acpi_execute(priv_data->ec_handle, TSX205_KILLSW_METHOD, NULL, &raw_state)))
+ return retval;
+
+ dprintk("get_wireless raw_state: %x\n", out[2]);
+
+ *state = ((out[2] & 0xff)) ? WIFI_EX : 0;
+ *state |= (raw_state) ? WIFI_STA : 0;
+ *state |= (!raw_state) ? KILLSWITCH : 0;
+
+ /* And finally BT */
+ if ((retval = omnibook_acpi_execute(priv_data->bt_handle, TOSH_BT_STATUS, NULL, &raw_state)))
+ return retval;
+
+ *state |= BT_EX;
+ *state |= ((raw_state & TOSH_BT_USB_MASK) && (raw_state & TOSH_BT_POWER_MASK)) ? BT_STA : 0;
+
+ return retval;
+}
+
+static int omnibook_acpi_get_wireless(const struct omnibook_operation *io_op, unsigned int *state)
+{
+ int retval;
+ struct acpi_backend_data *priv_data = io_op->backend->data;
+
+ /* use BTST (BT device) if we don't have ANTR/ANTW (EC device) */
+ if (omnibook_ectype & TSX205)
+ retval = get_tsx205_wireless_status(priv_data, state);
+ else if (priv_data->has_antr_antw)
+ retval = get_wireless_status(priv_data, state);
+ else if(priv_data->bt_handle)
+ retval = get_bt_status(priv_data, state);
+ else
+ retval = -ENODEV;
+
+ return retval;
+}
+
+/*
+ * Set the Bluetooth + Wireless status using the ANTW method
+ */
+static int set_wireless_status(const struct acpi_backend_data *priv_data, unsigned int state)
+{
+ int retval;
+ int raw_state;
+
+ raw_state = !!(state & WIFI_STA); /* bit 0 */
+ raw_state |= !!(state & BT_STA) << 0x1; /* bit 1 */
+
+ dprintk("set_wireless raw_state: %x\n", raw_state);
+
+ retval = omnibook_acpi_execute(priv_data->ec_handle, SET_WIRELESS_METHOD, &raw_state, NULL);
+
+ return retval;
+}
+
+static int set_tsx205_wireless_status(const struct acpi_backend_data *priv_data, unsigned int state)
+{
+ int retval;
+ int raw_state = !!(state & WIFI_STA);
+
+ dprintk("set_wireless raw_state: %x\n", raw_state);
+
+ u32 in[HCI_WORDS] = { HCI_SET, HCI_RF_CONTROL, raw_state, HCI_WIRELESS_POWER, 0, 0 };
+ u32 out[HCI_WORDS];
+ hci_raw(in, out);
+
+ raw_state |= !!(state & BT_STA) << 0x1; /* bit 1 */
+
+ /* BT status */
+ retval = set_bt_status(priv_data->bt_handle, state);
+
+ return retval;
+}
+
+static int omnibook_acpi_set_wireless(const struct omnibook_operation *io_op, unsigned int state)
+{
+ int retval = -ENODEV;
+ struct acpi_backend_data *priv_data = io_op->backend->data;
+
+ /* First try the TSX205 methods */
+ if(omnibook_ectype & TSX205)
+ retval = set_tsx205_wireless_status(priv_data, state);
+
+ /* Then try the ANTR/ANTW methods */
+ if(priv_data->has_antr_antw)
+ retval = set_wireless_status(priv_data, state);
+
+ /* Then try the bluetooth ACPI device if present */
+ if(priv_data->bt_handle)
+ retval = set_bt_status(priv_data, (state & BT_STA));
+
+ return retval;
+}
+
+static int tsx205_get_display(const struct acpi_backend_data *priv_data, unsigned int *state, unsigned int device)
+{
+ int retval = 0;
+ int raw_state = 0;
+
+ retval = omnibook_acpi_execute(priv_data->dis_handle, tsx205_video_list[device], NULL, &raw_state);
+ if (retval < 0) {
+ dprintk(O_ERR "Failed to get video device (%d) state.\n", device);
+ return retval;
+ }
+
+ /* Ugly, but better than nothing... */
+ switch (device) {
+ case 0:
+ case 4: /* LCD device */
+ dprintk("get_display LCD (%d) raw_state: %x\n", device, raw_state);
+ if (raw_state == TSX205_DSPY_DE) {
+ *state |= DISPLAY_LCD_DET;
+ *state |= DISPLAY_LCD_ON;
+ } else
+ if (raw_state == TSX205_DSPY_DN)
+ *state |= DISPLAY_LCD_DET;
+ else if (raw_state == TSX205_DSPY_NE)
+ *state |= DISPLAY_LCD_ON;
+ break;
+ case 1:
+ case 5: /* CRT device */
+ dprintk("get_display CRT (%d) raw_state: %x\n", device, raw_state);
+ if (raw_state == TSX205_DSPY_DE) {
+ *state |= DISPLAY_CRT_DET;
+ *state |= DISPLAY_CRT_ON;
+ } else
+ if (raw_state == TSX205_DSPY_DN)
+ *state |= DISPLAY_CRT_DET;
+ else if (raw_state == TSX205_DSPY_NE)
+ *state |= DISPLAY_CRT_ON;
+ break;
+ case 2:
+ case 6: /* TV-OUT device */
+ dprintk("get_display TV-OUT (%d) raw_state: %x\n", device, raw_state);
+ if (raw_state == TSX205_DSPY_DE) {
+ *state |= DISPLAY_TVO_DET;
+ *state |= DISPLAY_TVO_ON;
+ } else
+ if (raw_state == TSX205_DSPY_DN)
+ *state |= DISPLAY_TVO_DET;
+ else if (raw_state == TSX205_DSPY_NE)
+ *state |= DISPLAY_TVO_ON;
+ break;
+ case 3:
+ case 7: /* DVI device */
+ dprintk("get_display DVI (%d) raw_state: %x\n", device, raw_state);
+ if (raw_state == TSX205_DSPY_DE) {
+ *state |= DISPLAY_DVI_DET;
+ *state |= DISPLAY_DVI_ON;
+ } else
+ if (raw_state == TSX205_DSPY_DN)
+ *state |= DISPLAY_DVI_DET;
+ else if (raw_state == TSX205_DSPY_NE)
+ *state |= DISPLAY_DVI_ON;
+ break;
+ }
+
+ return retval;
+}
+
+static int omnibook_acpi_get_display(const struct omnibook_operation *io_op, unsigned int *state)
+{
+ int retval = 0;
+ int raw_state = 0;
+ struct acpi_backend_data *priv_data = io_op->backend->data;
+
+ if(!priv_data->has_doss_dosw)
+ return -ENODEV;
+
+ if (omnibook_ectype & TSX205) {
+ int i;
+
+ /* Loop 'tru the different Video-Out devices */
+ if (priv_data->has_sli)
+ for (i = 4; i < ARRAY_SIZE(tsx205_video_list); i++)
+ retval = tsx205_get_display(priv_data, state, i);
+ else
+ for (i = 0; i < 4; i++)
+ retval = tsx205_get_display(priv_data, state, i);
+
+ if (retval < 0)
+ return -EIO;
+
+ goto vidout;
+ }
+
+ retval = omnibook_acpi_execute(priv_data->ec_handle, GET_DISPLAY_METHOD, NULL, &raw_state);
+ if (retval < 0)
+ return retval;
+
+ dprintk("get_display raw_state: %x\n", raw_state);
+
+ /* Backend specific to backend-neutral conversion */
+ *state = (raw_state & LCD_CSTE) ? DISPLAY_LCD_ON : 0;
+ *state |= (raw_state & CRT_CSTE) ? DISPLAY_CRT_ON : 0;
+ *state |= (raw_state & TVO_CSTE) ? DISPLAY_TVO_ON : 0;
+ *state |= (raw_state & DVI_CSTE) ? DISPLAY_DVI_ON : 0;
+
+ *state |= (raw_state & LCD_CADL) ? DISPLAY_LCD_DET : 0;
+ *state |= (raw_state & CRT_CADL) ? DISPLAY_CRT_DET : 0;
+ *state |= (raw_state & TVO_CADL) ? DISPLAY_TVO_DET : 0;
+ *state |= (raw_state & DVI_CADL) ? DISPLAY_DVI_DET : 0;
+
+vidout:
+ return DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON | DISPLAY_DVI_ON
+ | DISPLAY_LCD_DET | DISPLAY_CRT_DET | DISPLAY_TVO_DET | DISPLAY_DVI_DET;
+}
+
+static const unsigned int acpi_display_mode_list[] = {
+ DISPLAY_LCD_ON,
+ DISPLAY_CRT_ON,
+ DISPLAY_LCD_ON | DISPLAY_CRT_ON,
+ DISPLAY_TVO_ON,
+ DISPLAY_LCD_ON | DISPLAY_TVO_ON,
+ DISPLAY_CRT_ON | DISPLAY_TVO_ON,
+ DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON,
+ DISPLAY_DVI_ON,
+ DISPLAY_LCD_ON | DISPLAY_DVI_ON,
+};
+
+static int omnibook_acpi_set_display(const struct omnibook_operation *io_op, unsigned int state)
+{
+ int retval = 0;
+ int i;
+ int matched = -1;
+ struct acpi_backend_data *priv_data = io_op->backend->data;
+
+ if(!priv_data->has_doss_dosw)
+ return -ENODEV;
+
+ for (i = 0; i < ARRAY_SIZE(acpi_display_mode_list); i++) {
+ if (acpi_display_mode_list[i] == state) {
+ matched = i + 1; /* raw state is array row number + 1 */
+ break;
+ }
+ }
+ if (matched == -1) {
+ printk("Display mode %x is unsupported.\n", state);
+ return -EINVAL;
+ }
+
+ dprintk("set_display raw_state: %x\n", matched);
+
+ if (omnibook_ectype & TSX205) {
+ if (priv_data->has_sli)
+ retval = omnibook_acpi_execute(priv_data->dis_handle, TSX205_SLI_DISPLAY_METHOD, &matched, NULL);
+ else
+ retval = omnibook_acpi_execute(priv_data->dis_handle, TSX205_SET_DISPLAY_METHOD, &matched, NULL);
+ } else
+ retval = omnibook_acpi_execute(priv_data->ec_handle, SET_DISPLAY_METHOD, &matched, NULL);
+ if (retval < 0)
+ return retval;
+
+ return DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON | DISPLAY_DVI_ON;
+}
+
+static int omnibook_acpi_get_throttle(const struct omnibook_operation *io_op, unsigned int *state)
+{
+ int retval;
+ int thtl_en = 0, thtl_dty = 0;
+ int param;
+ struct acpi_backend_data *priv_data = io_op->backend->data;
+
+ param = 0;
+ /* Read THEN aka THTL_EN in ICH6M datasheets */
+ retval = omnibook_acpi_execute(priv_data->ec_handle, GET_THROTTLE_METHOD, &param, &thtl_en);
+ if ( thtl_en == 0 ) {
+ *state = 0;
+ return retval;
+ }
+ param = 1;
+ /* Read DUTY aka THTL_DTY in ICH6M datasheets */
+ retval = omnibook_acpi_execute(priv_data->ec_handle, GET_THROTTLE_METHOD, &param, &thtl_dty);
+ WARN_ON(thtl_dty > 7); /* We shouldn't encounter more than 7 throttling level */
+ *state = 8 - thtl_dty; /* THTL_DTY and ACPI T-state are reverse mapped */
+ return retval;
+}
+
+static int omnibook_acpi_set_throttle(const struct omnibook_operation *io_op, unsigned int state)
+{
+ struct acpi_backend_data *priv_data = io_op->backend->data;
+ /* THTL_DTY and ACPI T-state are reverse mapped */
+ /* throttling.c already clamped state between 0 and 7 */
+ if (state)
+ state = 8 - state;
+
+ return omnibook_acpi_execute(priv_data->ec_handle, SET_THROTTLE_METHOD, &state, NULL);
+}
+
+/*
+ * Fn+foo hotkeys handling
+ */
+static int omnibook_hci_get_hotkeys(const struct omnibook_operation *io_op, unsigned int *state)
+{
+ u32 in[HCI_WORDS] = { HCI_GET, HCI_HOTKEY_EVENT, 0, 0, 0, 0 };
+ u32 out[HCI_WORDS];
+ acpi_status status = hci_raw(in, out);
+
+ if (status != AE_OK)
+ return HCI_FAILURE;
+
+ dprintk("get_hotkeys raw_state: %x\n", out[2]);
+
+ *state = (out[2] & ACPI_FN_MASK) ? HKEY_FN : 0;
+
+ return 0;
+}
+
+static int omnibook_hci_set_hotkeys(const struct omnibook_operation *io_op, unsigned int state)
+{
+ u32 in[HCI_WORDS] = { 0, 0, 0, 0, 0, 0 };
+ u32 out[HCI_WORDS];
+ in[0] = HCI_SET;
+ in[1] = HCI_HOTKEY_EVENT;
+ in[2] = (state & HKEY_FN) ? 1 : 0;
+ acpi_status status = hci_raw(in, out);
+
+ dprintk("set_hotkeys (Fn interface) raw_state: %x\n", in[2]);
+
+ return (status == AE_OK) ? out[0] : HCI_FAILURE;
+}
+
+static int omnibook_acpi_get_events(unsigned int *state)
+{
+ acpi_status status;
+ struct acpi_backend_data *priv_data = acpi_backend.data;
+
+ /* We need to call the NTFY method first so it can activate the TECF variable */
+ status = omnibook_acpi_execute(priv_data->ec_handle, TSX205_NOTIFY_METHOD, NULL, NULL);
+ if (status != AE_OK) {
+ dprintk(O_ERR "Failed to activate NTFY method.\n");
+ return -EIO;
+ }
+
+ /* Now we can poll the INFO method to get last pressed hotkey */
+ status = omnibook_acpi_execute(priv_data->hci_handle, TSX205_EVENTS_METHOD, NULL, state);
+ if (status != AE_OK) {
+ dprintk(O_ERR "Failed to get Hotkey event.\n");
+ return -EIO;
+ }
+
+ /* We only care about a key press, so just report the Fn key Press/Release */
+ if ( ((*state & ~0x80) == 0x100) || ((*state & ~0x80) == 0x17f) )
+ *state &= ~0x80;
+
+ return status;
+}
+
+/*
+ * Adjust the lcd backlight level by delta.
+ * Used for Fn+F6/F7 keypress
+ */
+static int adjust_brighness(int delta)
+{
+ struct omnibook_feature *lcd_feature = omnibook_find_feature("lcd");
+ struct omnibook_operation *io_op;
+ int retval = 0;
+ u8 brgt;
+
+ if(!lcd_feature)
+ return -ENODEV;
+
+ io_op = lcd_feature->io_op;
+
+ mutex_lock(&io_op->backend->mutex);
+
+ if(( retval = __backend_byte_read(io_op, &brgt)))
+ goto out;
+
+ dprintk("Fn-F6/F7 pressed: adjusting brightness.\n");
+
+ if (((int) brgt + delta) < 0)
+ brgt = 0;
+ else if ((brgt + delta) > omnibook_max_brightness)
+ brgt = omnibook_max_brightness;
+ else
+ brgt += delta;
+
+ retval = __backend_byte_write(io_op, brgt);
+
+ out:
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+/*
+ * Workqueue handler for Fn hotkeys
+ */
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19))
+static void omnibook_handle_fnkey(struct work_struct *work)
+#else
+static void omnibook_handle_fnkey(void* data)
+#endif
+{
+ int i;
+ u32 gen_scan;
+ struct input_dev *input_dev;
+ acpi_status status;
+
+ status = omnibook_acpi_get_events(&gen_scan);
+ if (status != AE_OK)
+ return;
+
+ dprintk("detected scancode 0x%x.\n", gen_scan);
+ switch(gen_scan) {
+ case HCI_BRIGHTNESSDOWN:
+ adjust_brighness(-1);
+ break;
+ case HCI_BRIGHTNESSUP:
+ adjust_brighness(+1);
+ break;
+ }
+
+ for (i = 0 ; i < ARRAY_SIZE(acpi_scan_table); i++) {
+ if (gen_scan == acpi_scan_table[i].scancode) {
+ dprintk("generating keycode %i.\n", acpi_scan_table[i].keycode);
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19))
+ input_dev = container_of(work, struct acpi_backend_data, fnkey_work)->acpi_input_dev;
+#else
+ input_dev = ((struct acpi_backend_data *) data)->acpi_input_dev;
+#endif
+ omnibook_report_key(input_dev, acpi_scan_table[i].keycode);
+ break;
+ }
+ }
+}
+
+struct omnibook_backend acpi_backend = {
+ .name = "acpi",
+ .hotkeys_read_cap = HKEY_FN,
+ .hotkeys_write_cap = HKEY_FN,
+ .init = omnibook_acpi_init,
+ .exit = omnibook_acpi_exit,
+ .aerial_get = omnibook_acpi_get_wireless,
+ .aerial_set = omnibook_acpi_set_wireless,
+ .display_get = omnibook_acpi_get_display,
+ .display_set = omnibook_acpi_set_display,
+ .throttle_get = omnibook_acpi_get_throttle,
+ .throttle_set = omnibook_acpi_set_throttle,
+ .hotkeys_get = omnibook_hci_get_hotkeys,
+ .hotkeys_set = omnibook_hci_set_hotkeys,
+};
+
+#else /* CONFIG_ACPI */
+
+/* dummy backend for non-ACPI systems */
+static int _fail_probe(const struct omnibook_operation *io_op)
+{
+ return -ENODEV;
+}
+
+struct omnibook_backend acpi_backend = {
+ .name = "acpi",
+ .init = _fail_probe,
+};
+
+#endif /* CONFIG_ACPI */
diff --git a/ubuntu/omnibook/battery.c b/ubuntu/omnibook/battery.c
new file mode 100644
index 00000000000..c9191fc2146
--- /dev/null
+++ b/ubuntu/omnibook/battery.c
@@ -0,0 +1,557 @@
+/*
+ * battery.c -- battery related functions
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+struct omnibook_battery_info {
+ u8 type; /* 1 - Li-Ion, 2 NiMH */
+ u16 sn; /* Serial number */
+ u16 dv; /* Design Voltage */
+ u16 dc; /* Design Capacity */
+};
+
+struct omnibook_battery_state {
+ u16 pv; /* Present Voltage */
+ u16 rc; /* Remaining Capacity */
+ u16 lc; /* Last Full Capacity */
+ u8 gauge; /* Gauge in % */
+ u8 status; /* 0 - unknown, 1 - charged, 2 - discharging, 3 - charging, 4 - critical) */
+};
+
+enum {
+ OMNIBOOK_BATTSTAT_UNKNOWN,
+ OMNIBOOK_BATTSTAT_CHARGED,
+ OMNIBOOK_BATTSTAT_DISCHARGING,
+ OMNIBOOK_BATTSTAT_CHARGING,
+ OMNIBOOK_BATTSTAT_CRITICAL
+};
+
+#define BAT_OFFSET 0x10
+
+static int __backend_u16_read(struct omnibook_operation *io_op, u16 *data)
+{
+ int retval;
+ u8 byte;
+
+ retval = __backend_byte_read(io_op, &byte);
+ if (retval)
+ return retval;
+ *data = byte;
+ io_op->read_addr += 1;
+ retval = __backend_byte_read(io_op, &byte);
+ *data += (byte << 8);
+ return retval;
+}
+
+static int omnibook_battery_present(struct omnibook_operation *io_op, int num)
+{
+ int retval;
+ u8 bat;
+ int i;
+
+ /*
+ * XE3GF
+ * TSP10
+ * TSM30X
+ * TSM70
+ */
+ if (omnibook_ectype & (XE3GF | TSP10 | TSM70 | TSM30X)) {
+ io_op->read_addr = XE3GF_BAL;
+ io_op->read_mask = XE3GF_BAL0_MASK;
+ for (i = 0; i < num; i++)
+ io_op->read_mask = io_op->read_mask << 1;
+ retval = __backend_byte_read(io_op, &bat);
+ /*
+ * XE3GC
+ * AMILOD
+ */
+ } else if (omnibook_ectype & (XE3GC | AMILOD)) {
+ io_op->read_addr = XE3GC_BAT;
+ io_op->read_mask = XE3GC_BAT0_MASK;
+ for (i = 0; i < num; i++)
+ io_op->read_mask = io_op->read_mask << 1;
+ retval = __backend_byte_read(io_op, &bat);
+ } else
+ retval = -ENODEV;
+
+ /* restore default read_mask */
+ io_op->read_mask = 0;
+
+ return !!bat;
+}
+
+/*
+ * Get static battery information
+ * All info have to be reread every time because battery sould be cahnged
+ * when laptop is on AC power
+ * return values:
+ * < 0 - ERROR
+ * 0 - OK
+ * 1 - Battery is not present
+ * 2 - Not supported
+ */
+static int omnibook_get_battery_info(struct omnibook_operation *io_op,
+ int num,
+ struct omnibook_battery_info *battinfo)
+{
+ int retval;
+ /*
+ * XE3GF
+ * TSP10
+ * TSM70
+ * TSM30X
+ */
+ if (omnibook_ectype & (XE3GF | TSP10 | TSM70 | TSM30X)) {
+ retval = omnibook_battery_present(io_op, num);
+ if (retval < 0)
+ return retval;
+ if (retval) {
+ io_op->read_addr = XE3GF_BTY0 + (BAT_OFFSET * num);
+ if ((retval = __backend_byte_read(io_op, &(*battinfo).type)))
+ return retval;
+ io_op->read_addr = XE3GF_BSN0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &(*battinfo).sn)))
+ return retval;
+ io_op->read_addr = XE3GF_BDV0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &(*battinfo).dv)))
+ return retval;
+ io_op->read_addr = XE3GF_BDC0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &(*battinfo).dc)))
+ return retval;
+
+ (*battinfo).type = ((*battinfo).type & XE3GF_BTY_MASK) ? 1 : 0;
+ } else
+ return 1;
+ /*
+ * XE3GC
+ */
+ } else if (omnibook_ectype & (XE3GC)) {
+ retval = omnibook_battery_present(io_op, num);
+ if (retval < 0)
+ return retval;
+ if (retval) {
+ io_op->read_addr = XE3GC_BDV0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &(*battinfo).dv)))
+ return retval;
+ io_op->read_addr = XE3GC_BDC0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &(*battinfo).dc)))
+ return retval;
+ io_op->read_addr = XE3GC_BTY0 + (BAT_OFFSET * num);
+ if ((retval = __backend_byte_read(io_op, &(*battinfo).type)))
+ return retval;
+
+ (*battinfo).type = ((*battinfo).type & XE3GC_BTY_MASK) ? 1 : 0;
+ (*battinfo).sn = 0; /* Unknown */
+ } else
+ return 1;
+ /*
+ * AMILOD
+ */
+ } else if (omnibook_ectype & (AMILOD)) {
+ retval = omnibook_battery_present(io_op, num);
+ if (retval < 0)
+ return retval;
+ if (retval) {
+ io_op->read_addr = AMILOD_BDV0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &(*battinfo).dv)))
+ return retval;
+ io_op->read_addr = AMILOD_BDC0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &(*battinfo).dc)))
+ return retval;
+ io_op->read_addr = AMILOD_BTY0 + (BAT_OFFSET * num);
+ if ((retval = __backend_byte_read(io_op, &(*battinfo).type)))
+ return retval;
+
+ (*battinfo).type = ((*battinfo).type & AMILOD_BTY_MASK) ? 1 : 0;
+ (*battinfo).sn = 0; /* Unknown */
+ } else
+ return 1;
+ /*
+ * FIXME
+ * OB500
+ * OB510
+ */
+ } else if (omnibook_ectype & (OB500 | OB510)) {
+ switch (num) {
+ case 0:
+ case 1:
+ case 2:
+ break;
+ default:
+ return -EINVAL;
+ }
+ /*
+ * OB6000
+ * OB6100
+ * XE4500
+ */
+ } else if (omnibook_ectype & (OB6000 | OB6100 | XE4500)) {
+ switch (num) {
+ case 0:
+ case 1:
+ break;
+ default:
+ return -EINVAL;
+ }
+ } else
+ return 2;
+
+ return 0;
+}
+
+/*
+ * Get battery status
+ * return values:
+ * < 0 - ERROR
+ * 0 - OK
+ * 1 - Battery is not present
+ * 2 - Not supported
+ */
+static int omnibook_get_battery_status(struct omnibook_operation *io_op,
+ int num,
+ struct omnibook_battery_state *battstat)
+{
+ int retval;
+ u8 status;
+ u16 dc;
+ int gauge;
+
+ /*
+ * XE3GF
+ * TSP10
+ * TSM70
+ */
+ if (omnibook_ectype & (XE3GF | TSP10 | TSM70 | TSM30X)) {
+ retval = omnibook_battery_present(io_op, num);
+ if (retval < 0)
+ return retval;
+ if (retval) {
+ io_op->read_addr = XE3GF_BST0 + (BAT_OFFSET * num);
+ if ((retval = __backend_byte_read(io_op, &status)))
+ return retval;
+ io_op->read_addr = XE3GF_BRC0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &(*battstat).rc)))
+ return retval;
+ io_op->read_addr = XE3GF_BPV0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &(*battstat).pv)))
+ return retval;
+ io_op->read_addr = XE3GF_BFC0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &(*battstat).lc)))
+ return retval;
+ io_op->read_addr = XE3GF_GAU0 + (BAT_OFFSET * num);
+ if ((retval = __backend_byte_read(io_op, &(*battstat).gauge)))
+ return retval;
+
+ if (status & XE3GF_BST_MASK_CRT)
+ (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL;
+ else if (status & XE3GF_BST_MASK_CHR)
+ (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING;
+ else if (status & XE3GF_BST_MASK_DSC)
+ (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING;
+ else if (status & (XE3GF_BST_MASK_CHR | XE3GF_BST_MASK_DSC))
+ (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN;
+ else {
+ (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED;
+ }
+ } else
+ return 1;
+ /*
+ * XE3GC
+ */
+ } else if (omnibook_ectype & (XE3GC)) {
+ retval = omnibook_battery_present(io_op, num);
+ if (retval < 0)
+ return retval;
+ if (retval) {
+ io_op->read_addr = XE3GC_BST0 + (BAT_OFFSET * num);
+ if ((retval = __backend_byte_read(io_op, &status)))
+ return retval;
+ io_op->read_addr = XE3GC_BRC0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &(*battstat).rc)))
+ return retval;
+ io_op->read_addr = XE3GC_BPV0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &(*battstat).pv)))
+ return retval;
+ io_op->read_addr = XE3GC_BDC0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &dc)))
+ return retval;
+
+ if (status & XE3GC_BST_MASK_CRT)
+ (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL;
+ else if (status & XE3GC_BST_MASK_CHR)
+ (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING;
+ else if (status & XE3GC_BST_MASK_DSC)
+ (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING;
+ else if (status & (XE3GC_BST_MASK_CHR | XE3GC_BST_MASK_DSC))
+ (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN;
+ else {
+ (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED;
+ }
+ gauge = ((*battstat).rc * 100) / dc;
+ (*battstat).gauge = gauge;
+ (*battstat).lc = 0; /* Unknown */
+ } else
+ return 1;
+ /*
+ * AMILOD
+ */
+ } else if (omnibook_ectype & (AMILOD)) {
+ retval = omnibook_battery_present(io_op, num);
+ if (retval < 0)
+ return retval;
+ if (retval) {
+ io_op->read_addr = AMILOD_BST0 + (BAT_OFFSET * num);
+ if ((retval = __backend_byte_read(io_op, &status)))
+ return retval;
+ io_op->read_addr = AMILOD_BRC0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &(*battstat).rc)))
+ return retval;
+ io_op->read_addr = AMILOD_BPV0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &(*battstat).pv)))
+ return retval;
+ io_op->read_addr = AMILOD_BDC0 + (BAT_OFFSET * num);
+ if ((retval = __backend_u16_read(io_op, &dc)))
+ return retval;
+
+ if (status & AMILOD_BST_MASK_CRT)
+ (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL;
+ else if (status & AMILOD_BST_MASK_CHR)
+ (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING;
+ else if (status & AMILOD_BST_MASK_DSC)
+ (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING;
+ else if (status & (AMILOD_BST_MASK_CHR | AMILOD_BST_MASK_DSC))
+ (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN;
+ else {
+ (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED;
+ }
+ gauge = ((*battstat).rc * 100) / dc;
+ (*battstat).gauge = gauge;
+ (*battstat).lc = 0; /* Unknown */
+ } else
+ return 1;
+ /*
+ * OB500
+ * OB510
+ */
+ } else if (omnibook_ectype & (OB500 | OB510)) {
+ switch (num) {
+ case 0:
+ io_op->read_addr = OB500_BT1S;
+ if ((retval = __backend_byte_read(io_op, &status)))
+ return retval;
+ io_op->read_addr = OB500_BT1C;
+ if ((retval = __backend_u16_read(io_op, &(*battstat).rc)))
+ return retval;
+ io_op->read_addr = OB500_BT1V;
+ if ((retval = __backend_u16_read(io_op, &(*battstat).pv)))
+ return retval;
+ break;
+ case 1:
+ io_op->read_addr = OB500_BT2S;
+ if ((retval = __backend_byte_read(io_op, &status)))
+ return retval;
+ io_op->read_addr = OB500_BT2C;
+ if ((retval = __backend_u16_read(io_op, &(*battstat).rc)))
+ return retval;
+ io_op->read_addr = OB500_BT2V;
+ if ((retval = __backend_u16_read(io_op, &(*battstat).pv)))
+ return retval;
+ break;
+ case 2:
+ io_op->read_addr = OB500_BT3S;
+ if ((retval = __backend_byte_read(io_op, &status)))
+ return retval;
+ io_op->read_addr = OB500_BT3C;
+ if ((retval = __backend_u16_read(io_op, &(*battstat).rc)))
+ return retval;
+ io_op->read_addr = OB500_BT3V;
+ if ((retval = __backend_u16_read(io_op, &(*battstat).pv)))
+ return retval;
+ break;
+ default:
+ return -EINVAL;
+ }
+ if (status & OB500_BST_MASK_CRT)
+ (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL;
+ else if (status & OB500_BST_MASK_CHR)
+ (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING;
+ else if (status & OB500_BST_MASK_DSC)
+ (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING;
+ else if (status & (OB500_BST_MASK_CHR | OB500_BST_MASK_DSC))
+ (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN;
+ else {
+ (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED;
+ }
+ /*
+ * OB6000
+ * OB6100
+ * XE4500
+ */
+ } else if (omnibook_ectype & (OB6000 | OB6100 | XE4500)) {
+ switch (num) {
+ case 0:
+ io_op->read_addr = OB500_BT1S;
+ if ((retval = __backend_byte_read(io_op, &status)))
+ return retval;
+ io_op->read_addr = OB500_BT1C;
+ if ((retval = __backend_u16_read(io_op, &(*battstat).rc)))
+ return retval;
+ io_op->read_addr = OB500_BT1V;
+ if ((retval = __backend_u16_read(io_op, &(*battstat).pv)))
+ return retval;
+ break;
+ case 1:
+ io_op->read_addr = OB500_BT3S;
+ if ((retval = __backend_byte_read(io_op, &status)))
+ return retval;
+ io_op->read_addr = OB500_BT3C;
+ if ((retval = __backend_u16_read(io_op, &(*battstat).rc)))
+ return retval;
+ io_op->read_addr = OB500_BT3V;
+ if ((retval = __backend_u16_read(io_op, &(*battstat).pv)))
+ return retval;
+ break;
+ default:
+ return -EINVAL;
+ }
+ if (status & OB500_BST_MASK_CRT)
+ (*battstat).status = OMNIBOOK_BATTSTAT_CRITICAL;
+ else if (status & OB500_BST_MASK_CHR)
+ (*battstat).status = OMNIBOOK_BATTSTAT_CHARGING;
+ else if (status & OB500_BST_MASK_DSC)
+ (*battstat).status = OMNIBOOK_BATTSTAT_DISCHARGING;
+ else if (status & (OB500_BST_MASK_CHR | OB500_BST_MASK_DSC))
+ (*battstat).status = OMNIBOOK_BATTSTAT_UNKNOWN;
+ else {
+ (*battstat).status = OMNIBOOK_BATTSTAT_CHARGED;
+ }
+ } else {
+ return 2;
+ }
+ return 0;
+}
+
+static int omnibook_battery_read(char *buffer, struct omnibook_operation *io_op)
+{
+ char *statustr;
+ char *typestr;
+ int max = 0;
+ int num = 0;
+ int len = 0;
+ int retval;
+ int i;
+ struct omnibook_battery_info battinfo;
+ struct omnibook_battery_state battstat;
+ /*
+ * XE3GF
+ * XE3GC
+ * 0B6000
+ * 0B6100
+ * XE4500
+ * AMILOD
+ * TSP10
+ */
+ if (omnibook_ectype & (XE3GF | XE3GC | OB6000 | OB6100 | XE4500 | AMILOD | TSP10))
+ max = 2;
+ /*
+ * OB500
+ * 0B510
+ */
+ else if (omnibook_ectype & (OB500 | OB510))
+ max = 3;
+ /*
+ * TSM30X
+ * TSM70
+ */
+ else if (omnibook_ectype & (TSM70 | TSM30X))
+ max = 1;
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+
+ for (i = 0; i < max; i++) {
+ retval = omnibook_get_battery_info(io_op, i, &battinfo);
+ if (retval == 0) {
+ num++;
+ omnibook_get_battery_status(io_op, i, &battstat);
+ typestr = (battinfo.type) ? "Li-Ion" : "NiMH";
+ switch (battstat.status) {
+ case OMNIBOOK_BATTSTAT_CHARGED:
+ statustr = "charged";
+ break;
+ case OMNIBOOK_BATTSTAT_DISCHARGING:
+ statustr = "discharging";
+ break;
+ case OMNIBOOK_BATTSTAT_CHARGING:
+ statustr = "charging";
+ break;
+ case OMNIBOOK_BATTSTAT_CRITICAL:
+ statustr = "critical";
+ break;
+ default:
+ statustr = "unknown";
+ }
+
+ len += sprintf(buffer + len, "Battery: %11d\n", i);
+ len += sprintf(buffer + len, "Type: %11s\n", typestr);
+ if (battinfo.sn)
+ len +=
+ sprintf(buffer + len, "Serial Number: %11d\n",
+ battinfo.sn);
+ len += sprintf(buffer + len, "Present Voltage: %11d mV\n", battstat.pv);
+ len += sprintf(buffer + len, "Design Voltage: %11d mV\n", battinfo.dv);
+ len += sprintf(buffer + len, "Remaining Capacity: %11d mAh\n", battstat.rc);
+ if (battstat.lc)
+ len +=
+ sprintf(buffer + len, "Last Full Capacity: %11d mAh\n",
+ battstat.lc);
+ len += sprintf(buffer + len, "Design Capacity: %11d mAh\n", battinfo.dc);
+ len +=
+ sprintf(buffer + len, "Gauge: %11d %%\n", battstat.gauge);
+ len += sprintf(buffer + len, "Status: %11s\n", statustr);
+ len += sprintf(buffer + len, "\n");
+ }
+ }
+ if (num == 0)
+ len += sprintf(buffer + len, "No battery present\n");
+
+ mutex_unlock(&io_op->backend->mutex);
+
+ return len;
+}
+
+static struct omnibook_tbl battery_table[] __initdata = {
+ {XE3GF | XE3GC | AMILOD | TSP10 | TSM70 | TSM30X, {EC,}},
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature battery_driver = {
+ .name = "battery",
+#ifdef CONFIG_OMNIBOOK_LEGACY
+ .enabled = 1,
+#else
+ .enabled = 0,
+#endif
+ .read = omnibook_battery_read,
+ .ectypes = XE3GF | XE3GC | AMILOD | TSP10 | TSM70 | TSM30X, /* FIXME: OB500|OB6000|OB6100|XE4500 */
+ .tbl = battery_table,
+};
+
+module_param_named(battery, battery_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(battery, "Use 0 to disable, 1 to enable battery status monitoring");
+/* End of file */
diff --git a/ubuntu/omnibook/blank.c b/ubuntu/omnibook/blank.c
new file mode 100644
index 00000000000..1bad34c3793
--- /dev/null
+++ b/ubuntu/omnibook/blank.c
@@ -0,0 +1,138 @@
+/*
+ * blank.c -- blanking lcd console
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <asm/io.h>
+#include "hardware.h"
+
+static struct omnibook_feature blank_driver;
+
+/*
+ * console_blank_hook pointer manipulation is lock protected
+ */
+extern int (*console_blank_hook) (int);
+static DEFINE_SPINLOCK(blank_spinlock);
+
+
+int omnibook_lcd_blank(int blank)
+{
+ struct omnibook_feature *blank_feature = omnibook_find_feature("blank");
+
+ if(!blank_feature)
+ return -ENODEV;
+
+ return omnibook_apply_write_mask(blank_feature->io_op, blank);
+}
+
+static int console_blank_register_hook(void)
+{
+ spin_lock(&blank_spinlock);
+ if (console_blank_hook != omnibook_lcd_blank) {
+ if (console_blank_hook == NULL) {
+ console_blank_hook = omnibook_lcd_blank;
+ printk(O_INFO "LCD backlight turn off at console blanking is enabled.\n");
+ } else
+ printk(O_INFO "There is a console blanking solution already registered.\n");
+ }
+ spin_unlock(&blank_spinlock);
+ return 0;
+}
+
+static int console_blank_unregister_hook(void)
+{
+ int retval;
+ spin_lock(&blank_spinlock);
+ if (console_blank_hook == omnibook_lcd_blank) {
+ console_blank_hook = NULL;
+ printk(O_INFO "LCD backlight turn off at console blanking is disabled.\n");
+ } else if (console_blank_hook) {
+ printk(O_WARN "You can not disable another console blanking solution.\n");
+ retval = -EBUSY;
+ } else {
+ printk(O_INFO "Console blanking already disabled.\n");
+ }
+ spin_unlock(&blank_spinlock);
+ return retval;
+}
+
+static int omnibook_console_blank_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+
+ spin_lock(&blank_spinlock);
+
+ len +=
+ sprintf(buffer + len, "LCD console blanking hook is %s\n",
+ (console_blank_hook == omnibook_lcd_blank) ? "enabled" : "disabled");
+
+ spin_unlock(&blank_spinlock);
+
+ return len;
+}
+
+static int omnibook_console_blank_write(char *buffer, struct omnibook_operation *io_op)
+{
+ int retval;
+
+ switch (*buffer) {
+ case '0':
+ retval = console_blank_unregister_hook();
+ break;
+ case '1':
+ retval = console_blank_register_hook();
+ break;
+ default:
+ retval = -EINVAL;
+ }
+ return retval;
+}
+
+static int __init omnibook_console_blank_init(struct omnibook_operation *io_op)
+{
+ return console_blank_register_hook();
+}
+
+static void __exit omnibook_console_blank_cleanup(struct omnibook_operation *io_op)
+{
+ console_blank_unregister_hook();
+}
+
+static struct omnibook_tbl blank_table[] __initdata = {
+ {TSM70 | TSX205, {CDI, 0, TSM100_BLANK_INDEX, 0, TSM100_LCD_OFF, TSM100_LCD_ON}},
+ {XE3GF | XE3GC | AMILOD | TSP10 | TSM70 | TSM30X,
+ COMMAND(KBC, OMNIBOOK_KBC_CMD_LCD_OFF, OMNIBOOK_KBC_CMD_LCD_ON)},
+ {OB500 | OB6000 | XE2, {PIO, OB500_GPO1, OB500_GPO1, 0, -OB500_BKLT_MASK, OB500_BKLT_MASK}},
+ {OB510 | OB6100, {PIO, OB510_GPO2, OB510_GPO2, 0, -OB510_BKLT_MASK, OB510_BKLT_MASK}},
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature blank_driver = {
+ .name = "blank",
+ .enabled = 1,
+ .read = omnibook_console_blank_read,
+ .write = omnibook_console_blank_write,
+ .init = omnibook_console_blank_init,
+ .exit = omnibook_console_blank_cleanup,
+ .ectypes =
+ XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE2 | AMILOD | TSP10 | TSM70 | TSM30X | TSX205,
+ .tbl = blank_table,
+};
+
+module_param_named(blank, blank_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(blank, "Use 0 to disable, 1 to enable lcd console blanking");
+/* End of file */
diff --git a/ubuntu/omnibook/bluetooth.c b/ubuntu/omnibook/bluetooth.c
new file mode 100644
index 00000000000..1095eecb9f7
--- /dev/null
+++ b/ubuntu/omnibook/bluetooth.c
@@ -0,0 +1,104 @@
+/*
+ * wireless.c Bluetooth feature
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ *
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+static int omnibook_bt_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+ int retval;
+ unsigned int state;
+
+ if ((retval = backend_aerial_get(io_op, &state)))
+ return retval;
+
+ len +=
+ sprintf(buffer + len, "Bluetooth adapter is %s",
+ (state & BT_EX) ? "present" : "absent");
+ if (state & BT_EX)
+ len += sprintf(buffer + len, " and %s", (state & BT_STA) ? "enabled" : "disabled");
+ len += sprintf(buffer + len, ".\n");
+ return len;
+
+}
+
+static int omnibook_bt_write(char *buffer, struct omnibook_operation *io_op)
+{
+ int retval = 0;
+ unsigned int state;
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+
+ if ((retval = __backend_aerial_get(io_op, &state)))
+ goto out;
+
+ if (*buffer == '0')
+ state &= ~BT_STA;
+ else if (*buffer == '1')
+ state |= BT_STA;
+ else {
+ retval = -EINVAL;
+ goto out;
+ }
+
+ retval = __backend_aerial_set(io_op, state);
+
+ out:
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+static struct omnibook_feature bt_driver;
+
+static int __init omnibook_bt_init(struct omnibook_operation *io_op)
+{
+ int retval = 0;
+ unsigned int state;
+
+/*
+ * Refuse enabling/disabling a non-existent device
+ */
+
+ if ((retval = backend_aerial_get(io_op, &state)))
+ return retval;
+
+ if (!(state & BT_EX))
+ bt_driver.write = NULL;
+
+ return retval;
+}
+
+static struct omnibook_tbl wireless_table[] __initdata = {
+ {TSM70 | TSA105 | TSX205, {ACPI,}}, /* stubs to select backend */
+ {TSM40, {SMI,}}, /* stubs to select backend */
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature bt_driver = {
+ .name = "bluetooth",
+ .enabled = 1,
+ .read = omnibook_bt_read,
+ .write = omnibook_bt_write,
+ .init = omnibook_bt_init,
+ .ectypes = TSM70 | TSM40 | TSA105 | TSX205,
+ .tbl = wireless_table,
+};
+
+module_param_named(bluetooth, bt_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(bluetooth, "Use 0 to disable, 1 to enable bluetooth adapter control");
diff --git a/ubuntu/omnibook/compal.c b/ubuntu/omnibook/compal.c
new file mode 100644
index 00000000000..766aec531a5
--- /dev/null
+++ b/ubuntu/omnibook/compal.c
@@ -0,0 +1,526 @@
+/*
+ * compal.c -- EC PIO Command/Data/Index mode low-level access code
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ *
+ */
+
+#include "omnibook.h"
+
+#include <linux/delay.h>
+#include <linux/ioport.h>
+#include <linux/pci.h>
+#include <linux/kref.h>
+
+#include <asm/io.h>
+#include "hardware.h"
+
+/*
+ * ATI's IXP PCI-LPC bridge
+ */
+#define PCI_DEVICE_ID_ATI_SB400 0x4377
+
+/*
+ * PCI Config space regiser
+ * Laptop with Intel ICH Chipset
+ * See ICH6M and ICH7M spec
+ */
+#define INTEL_LPC_GEN1_DEC 0x84
+#define INTEL_LPC_GEN4_DEC 0x90
+#define INTEL_IOPORT_BASE 0xff2c
+
+/*
+ * PCI Config space regiser
+ * Laptop with ATI Chipset
+ * FIXME Untested, name unknown
+ */
+#define ATI_LPC_REG 0x4a
+#define ATI_IOPORT_BASE 0xfd60
+
+/*
+ *This interface uses 2 ports for command and 1 port for data
+ *These are relative to the ioport_base address
+ */
+
+#define PIO_PORT_COMMAND1 0x1
+#define PIO_PORT_COMMAND2 0x2
+#define PIO_PORT_DATA 0x3
+
+/*
+ * Private data of this backend
+ */
+static struct pci_dev *lpc_bridge; /* Southbridge chip ISA bridge/LPC interface PCI device */
+static u32 ioport_base; /* PIO base adress */
+static union {
+ u16 word;
+ u32 dword;
+} pci_reg_state; /* Saved state of register in PCI config spave */
+
+/*
+ * Possible list of supported southbridges
+ * Here mostly to implement a more or less clean PCI probing
+ * Works only because of previous DMI probing.
+ * Shared with nbsmi backend
+ */
+const struct pci_device_id lpc_bridge_table[] = {
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AA_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AB_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801BA_10, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_12, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801DB_12, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801E_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801EB_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ESB_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH6_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_0, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_30, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH7_31, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_ICH8_4, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SB400, PCI_ANY_ID, PCI_ANY_ID, 0, 0,},
+ {0,}, /* End of list */
+};
+
+/*
+ * Low-level Read function:
+ * Write a 2-bytes wide command to the COMMAND ports
+ * Read the result in the DATA port
+ */
+static unsigned char lowlevel_read(u16 command)
+{
+ unsigned char data;
+ outb((command & 0xff00) >> 8, ioport_base + PIO_PORT_COMMAND1);
+ outb(command & 0x00ff, ioport_base + PIO_PORT_COMMAND2);
+ data = inb(ioport_base + PIO_PORT_DATA);
+ return data;
+}
+
+/*
+ * Low-level Write function:
+ * Write a 2-bytes wide command to the COMMAND ports
+ * Write the result in the DATA port
+ */
+static void lowlevel_write(u16 command, u8 data)
+{
+ outb((command & 0xff00) >> 8, ioport_base + PIO_PORT_COMMAND1);
+ outb(command & 0x00ff, ioport_base + PIO_PORT_COMMAND2);
+ outb(data, ioport_base + PIO_PORT_DATA);
+}
+
+/*
+ * Probe for a state of the PIO Command/Data/Index interface
+ * Give some time for the controler to settle in the desired state
+ * mode significance:
+ * 0: Waiting for command
+ * 1,2,3: I am confused FIXME
+ */
+static int check_cdimode_flag(unsigned int mode)
+{
+ int i;
+ int retval;
+
+ /*dprintk("Index mode:");*/
+ for (i = 1; i <= 250; i++) {
+ retval = lowlevel_read(0xfbfc);
+ /*dprintk_simple(" [%i]", retval);*/
+ if (retval == mode) {
+ /*dprintk_simple(".\n");
+ dprintk("Index Mode Ok (%i) after %i iter\n", mode, i);*/
+ return 0;
+ }
+ udelay(100);
+ }
+ printk(O_ERR "check_cdimode_flag timeout.\n");
+ return -ETIME;
+}
+
+/*
+ * Check for conventional default (0xf432) state in Commad ports
+ */
+static int check_default_state(void)
+{
+ int i;
+
+ for (i = 1; i <= 250; i++) {
+ if ((inb(ioport_base + PIO_PORT_COMMAND1) == 0xf4)
+ && (inb(ioport_base + PIO_PORT_COMMAND2) == 0x32))
+ return 0;
+ udelay(100);
+ }
+ printk(O_ERR "check_default_state timeout.\n");
+ return -ETIME;
+}
+
+/*
+ * Enable EC Command/Data/Index PIO Access and then check EC state.
+ * Enabling is done in PCI config space of the LPC bridge.
+ *
+ * Just after Enabling, the EC should be in a precisly defined state:
+ * - PIO should be in a conventional default state (0xf432 in the Command ports)
+ * - Command/Data/Index interface waiting for command
+ * The EC is expected to be in that state prior to any attempt to use the interface.
+ *
+ */
+static int enable_cdimode(void)
+{
+ union {
+ u16 word;
+ u32 dword;
+ } value;
+
+ switch (lpc_bridge->vendor) {
+ case PCI_VENDOR_ID_INTEL:
+ switch (lpc_bridge->device) {
+ case PCI_DEVICE_ID_INTEL_ICH7_0: /* ICH7 */
+ case PCI_DEVICE_ID_INTEL_ICH7_1:
+ case PCI_DEVICE_ID_INTEL_ICH7_30:
+ case PCI_DEVICE_ID_INTEL_ICH7_31:
+ case PCI_DEVICE_ID_INTEL_ICH8_4: /* ICH8 */
+ pci_read_config_dword(lpc_bridge, INTEL_LPC_GEN4_DEC, &(value.dword));
+ pci_reg_state.dword = value.dword;
+ value.dword = 0x3CFF21;
+ pci_write_config_dword(lpc_bridge, INTEL_LPC_GEN4_DEC, value.dword);
+ break;
+ default: /* All other Intel chipset */
+ pci_read_config_word(lpc_bridge, INTEL_LPC_GEN1_DEC, &(value.word));
+ pci_reg_state.word = value.word;
+ value.word = (INTEL_IOPORT_BASE & 0xfff1) | 0x1;
+ pci_write_config_word(lpc_bridge, INTEL_LPC_GEN1_DEC, value.word);
+ }
+ break;
+ case PCI_VENDOR_ID_ATI:
+ pci_read_config_dword(lpc_bridge, ATI_LPC_REG, &(value.dword));
+ pci_reg_state.dword = value.dword;
+ value.dword = ((pci_reg_state.dword & 0x7f) | 0x80) << 0x10;
+ pci_write_config_dword(lpc_bridge, ATI_LPC_REG, value.dword);
+ break;
+ default:
+ BUG();
+ }
+ dprintk("Saved state of PCI register: [%x].\n", pci_reg_state.dword);
+
+ if (check_default_state() || check_cdimode_flag(0)) {
+ printk(O_ERR "EC state check failure, please report.\n");
+ return -EIO;
+ }
+
+ return 0;
+
+}
+
+/*
+ * Send a write command and associated data code to be written
+ * Known commands an associated code significance:
+ * 0xfbfd: Select Index with 'code' ordinal
+ * 0xfbfe: Set to 'code' a previously selected Index
+ * 0xfbfc: Set CDI mode flag
+ */
+static int send_ec_cmd(unsigned int command, u8 code)
+{
+ lowlevel_write(0xfbfc, 0x2);
+ lowlevel_write(command, code);
+ lowlevel_write(0xfbfc, 0x1);
+ if (check_cdimode_flag(2))
+ return -ETIME;
+ return 0;
+}
+
+/*
+ * Send a read command
+ * Known commands an associated code significance:
+ * 0xfbfe: Read a previously selected Index
+ * 0xfbfc: Set CDI mode flag
+ */
+static int read_ec_cmd(unsigned int command, u8 * value)
+{
+ *value = lowlevel_read(command);
+ lowlevel_write(0xfbfc, 0x1);
+ if (check_cdimode_flag(2))
+ return -ETIME;
+ return 0;
+}
+
+/*
+ * Disable EC Command/Data/Index PIO Access
+ * Step 1: clear_cdimode
+ * Send Disable command
+ * Revert PIO interface to conventional default state (0xf432 in the Command ports)
+ * Step 2: clear_cdimode_pci
+ * Disable the interface in the PCI config space of the Southbridge
+ * These steps are separated due to constrains in error path treatement
+ */
+static void clear_cdimode(void)
+{
+ lowlevel_write(0xfbfc, 0x0);
+ outb(0xf4, ioport_base + PIO_PORT_COMMAND1);
+ outb(0x32, ioport_base + PIO_PORT_COMMAND2);
+}
+
+static void clear_cdimode_pci(void)
+{
+ switch (lpc_bridge->vendor) {
+ case PCI_VENDOR_ID_INTEL:
+ switch (lpc_bridge->device) {
+ case PCI_DEVICE_ID_INTEL_ICH7_0: /* ICH7 */
+ case PCI_DEVICE_ID_INTEL_ICH7_1:
+ case PCI_DEVICE_ID_INTEL_ICH7_30:
+ case PCI_DEVICE_ID_INTEL_ICH7_31:
+ case PCI_DEVICE_ID_INTEL_ICH8_4: /* ICH8 */
+ pci_write_config_dword(lpc_bridge, INTEL_LPC_GEN4_DEC, pci_reg_state.dword);
+ break;
+ default: /* All other Intel chipset */
+ pci_write_config_word(lpc_bridge, INTEL_LPC_GEN1_DEC, pci_reg_state.word);
+ }
+ break;
+ case PCI_VENDOR_ID_ATI:
+ pci_write_config_dword(lpc_bridge, ATI_LPC_REG, pci_reg_state.dword);
+ break;
+ default:
+ BUG();
+ }
+}
+
+/*
+ * Try to init the backend
+ * This function can be called blindly as it use a kref
+ * to check if the init sequence was already done.
+ */
+static int omnibook_cdimode_init(const struct omnibook_operation *io_op)
+{
+ int retval = 0;
+ int i;
+
+ /* ectypes other than TSM70 have no business with this backend */
+ if (!(omnibook_ectype & (TSM70 | TSX205)))
+ return -ENODEV;
+
+ if (io_op->backend->already_failed) {
+ dprintk("CDI backend init already failed, skipping.\n");
+ return -ENODEV;
+ }
+
+ if (!lpc_bridge) {
+ /* Fist use of the backend */
+ dprintk("Try to init cdimode\n");
+ mutex_init(&io_op->backend->mutex);
+ mutex_lock(&io_op->backend->mutex);
+ kref_init(&io_op->backend->kref);
+
+ /* PCI probing: find the LPC Super I/O bridge PCI device */
+ for (i = 0; !lpc_bridge && lpc_bridge_table[i].vendor; ++i)
+ lpc_bridge =
+ pci_get_device(lpc_bridge_table[i].vendor, lpc_bridge_table[i].device,
+ NULL);
+
+ if (!lpc_bridge) {
+ printk(O_ERR "Fail to find a supported LPC I/O bridge, please report\n");
+ retval = -ENODEV;
+ goto error1;
+ }
+
+ if ((retval = pci_enable_device(lpc_bridge))) {
+ printk(O_ERR "Unable to enable PCI device.\n");
+ goto error2;
+ }
+
+ switch (lpc_bridge->vendor) {
+ case PCI_VENDOR_ID_INTEL:
+ ioport_base = INTEL_IOPORT_BASE;
+ break;
+ case PCI_VENDOR_ID_ATI:
+ ioport_base = ATI_IOPORT_BASE;
+ break;
+ default:
+ BUG();
+ }
+
+ if (!request_region(ioport_base, 4, OMNIBOOK_MODULE_NAME)) {
+ printk(O_ERR "Request I/O region error\n");
+ retval = -ENODEV;
+ goto error2;
+ }
+
+ /*
+ * Make an enable-check disable cycle for testing purpose
+ */
+
+ retval = enable_cdimode();
+ if (retval)
+ goto error3;
+
+ clear_cdimode();
+ clear_cdimode_pci();
+
+ dprintk("Cdimode init ok\n");
+ mutex_unlock(&io_op->backend->mutex);
+ return 0;
+ } else {
+ dprintk("Cdimode has already been initialized\n");
+ kref_get(&io_op->backend->kref);
+ return 0;
+ }
+
+ error3:
+ clear_cdimode_pci();
+ release_region(ioport_base, 4);
+ error2:
+ pci_dev_put(lpc_bridge);
+ lpc_bridge = NULL;
+ error1:
+ io_op->backend->already_failed = 1;
+ mutex_unlock(&io_op->backend->mutex);
+ mutex_destroy(&io_op->backend->mutex);
+ return retval;
+}
+
+static void cdimode_free(struct kref *ref)
+{
+ struct omnibook_backend *backend;
+
+ dprintk("Cdimode not used anymore: disposing\n");
+
+ backend = container_of(ref, struct omnibook_backend, kref);
+
+ mutex_lock(&backend->mutex);
+ pci_dev_put(lpc_bridge);
+ release_region(ioport_base, 4);
+ lpc_bridge = NULL;
+ mutex_unlock(&backend->mutex);
+ mutex_destroy(&backend->mutex);
+}
+
+static void omnibook_cdimode_exit(const struct omnibook_operation *io_op)
+{
+ /* ectypes other than TSM70 have no business with this backend */
+ BUG_ON(!(omnibook_ectype & (TSM70 | TSX205)));
+ dprintk("Trying to dispose cdimode\n");
+ kref_put(&io_op->backend->kref, cdimode_free);
+}
+
+/*
+ * Read EC index and write result to value
+ * 'EC index' here is unrelated to an index in the EC registers
+ */
+static int omnibook_cdimode_read(const struct omnibook_operation *io_op, u8 * value)
+{
+ int retval = 0;
+
+ if (!lpc_bridge)
+ return -ENODEV;
+
+ retval = enable_cdimode();
+ if (retval)
+ goto out;
+ retval = send_ec_cmd(0xfbfd, (unsigned int)io_op->read_addr);
+ if (retval)
+ goto error;
+ retval = read_ec_cmd(0xfbfe, value);
+
+ if (io_op->read_mask)
+ *value &= io_op->read_mask;
+
+ error:
+ clear_cdimode();
+ out:
+ clear_cdimode_pci();
+ return retval;
+}
+
+/*
+ * Write value
+ * 'EC index' here is unrelated to an index in the EC registers
+ */
+static int omnibook_cdimode_write(const struct omnibook_operation *io_op, u8 value)
+{
+ int retval = 0;
+
+ if (!lpc_bridge)
+ return -ENODEV;
+
+ retval = enable_cdimode();
+ if (retval)
+ goto out;
+ retval = send_ec_cmd(0xfbfd, (unsigned int)io_op->write_addr);
+ if (retval)
+ goto error;
+ retval = send_ec_cmd(0xfbfe, value);
+ error:
+ clear_cdimode();
+ out:
+ clear_cdimode_pci();
+ return retval;
+
+}
+
+/*
+ * Fn+foo and multimedia hotkeys handling
+ */
+static int omnibook_cdimode_hotkeys(const struct omnibook_operation *io_op, unsigned int state)
+{
+ int retval;
+
+ struct omnibook_operation hotkeys_op =
+ { CDI, 0, TSM70_FN_INDEX, 0, TSM70_FN_ENABLE, TSM70_FN_DISABLE};
+
+ /* Fn+foo handling */
+ retval = __omnibook_toggle(&hotkeys_op, !!(state & HKEY_FN));
+ if (retval < 0)
+ return retval;
+
+ /* Multimedia keys handling */
+ hotkeys_op.write_addr = TSM70_HOTKEYS_INDEX;
+ hotkeys_op.on_mask = TSM70_HOTKEYS_ENABLE;
+ hotkeys_op.off_mask = TSM70_HOTKEYS_DISABLE;
+ retval = __omnibook_toggle(&hotkeys_op, !!(state & HKEY_MULTIMEDIA));
+
+ return retval;
+}
+
+/* Scan index space, this hard locks my machine */
+#if 0
+static int compal_scan(char *buffer)
+{
+ int len = 0;
+ int i, j;
+ u8 v;
+
+ for (i = 0; i < 255; i += 16) {
+ for (j = 0; j < 16; j++) {
+ omnibook_compal_read(i + j, &v);
+ len += sprintf(buffer + len, "Read index %02x: %02x\n", i + j, v);
+ mdelay(500);
+ }
+ if (j != 16)
+ break;
+ }
+
+ return len;
+}
+#endif
+
+struct omnibook_backend compal_backend = {
+ .name = "compal",
+ .hotkeys_write_cap = HKEY_MULTIMEDIA | HKEY_FN,
+ .init = omnibook_cdimode_init,
+ .exit = omnibook_cdimode_exit,
+ .byte_read = omnibook_cdimode_read,
+ .byte_write = omnibook_cdimode_write,
+ .hotkeys_set = omnibook_cdimode_hotkeys,
+};
+
+/* End of file */
diff --git a/ubuntu/omnibook/compat.h b/ubuntu/omnibook/compat.h
new file mode 100644
index 00000000000..d45605371d5
--- /dev/null
+++ b/ubuntu/omnibook/compat.h
@@ -0,0 +1,71 @@
+/*
+ * compat.h -- Older kernel (=> 2.6.11) support
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include <linux/version.h>
+
+/*
+ * For compatibility with kernel older than 2.6.16
+ * Mutex to Semaphore fallback
+ */
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16))
+#include <asm/semaphore.h>
+#define DEFINE_MUTEX(lock) DECLARE_MUTEX(lock)
+#define mutex_init(lock) init_MUTEX(lock)
+#define mutex_lock(lock) down(lock)
+#define mutex_lock_interruptible(lock) down_interruptible(lock)
+#define mutex_unlock(lock) up(lock)
+#define mutex_destroy(lock) do { } while(0)
+#else
+#include <linux/mutex.h>
+#endif
+
+/*
+ * For compatibility with kernel older than 2.6.14
+ */
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,14))
+static void inline *kzalloc(size_t size, int flags)
+{
+ void *ret = kmalloc(size, flags);
+ if (ret)
+ memset(ret, 0, size);
+ return ret;
+}
+#endif
+
+/*
+ * For compatibility with kernel older than 2.6.11
+ */
+
+#ifndef DEFINE_SPINLOCK
+#define DEFINE_SPINLOCK(s) spinlock_t s = SPIN_LOCK_UNLOCKED
+#endif
+
+/*
+ * Those kernel don't have ICH7 southbridge pcids
+ */
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11))
+#define PCI_DEVICE_ID_INTEL_ICH7_0 0x27b8
+#define PCI_DEVICE_ID_INTEL_ICH7_1 0x27b9
+#define PCI_DEVICE_ID_INTEL_ICH7_30 0x27b0
+#define PCI_DEVICE_ID_INTEL_ICH7_31 0x27bd
+#endif
+
+
+
+/* End of file */
diff --git a/ubuntu/omnibook/cooling.c b/ubuntu/omnibook/cooling.c
new file mode 100644
index 00000000000..a9a935e7e6f
--- /dev/null
+++ b/ubuntu/omnibook/cooling.c
@@ -0,0 +1,97 @@
+/*
+ * colling.c -- cooling methods feature
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Mathieu Bérard <mathieu.berard@crans.org>, 2007
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+static int omnibook_cooling_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+
+ len += sprintf(buffer + len, "Cooling method : %s\n",
+ io_op->backend->cooling_state ? "Performance" : "Powersave" );
+
+ mutex_unlock(&io_op->backend->mutex);
+ return len;
+}
+
+static int omnibook_cooling_write(char *buffer, struct omnibook_operation *io_op)
+{
+ int retval = 0;
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+
+
+ if (*buffer == '0') {
+ retval = __backend_byte_write(io_op,
+ TSM70_COOLING_OFFSET + TSM70_COOLING_POWERSAVE);
+ } else if (*buffer == '1') {
+ retval = __backend_byte_write(io_op,
+ TSM70_COOLING_OFFSET + TSM70_COOLING_PERF);
+ } else {
+ retval = -EINVAL;
+ goto out;
+ }
+
+ /* *buffer is either '0' or '1' here */
+ if (!retval)
+ io_op->backend->cooling_state = *buffer - '0' ;
+
+ mutex_unlock(&io_op->backend->mutex);
+
+ out:
+ return retval;
+}
+
+static int __init omnibook_cooling_init(struct omnibook_operation *io_op)
+{
+ mutex_lock(&io_op->backend->mutex);
+ /* XXX: Assumed default cooling method: performance */
+ io_op->backend->cooling_state = TSM70_COOLING_PERF;
+ mutex_unlock(&io_op->backend->mutex);
+ return 0;
+}
+
+static void __exit omnibook_cooling_exit(struct omnibook_operation *io_op)
+{
+ /* Set back cooling method to performance */
+ backend_byte_write(io_op, TSM70_COOLING_OFFSET + TSM70_COOLING_PERF);
+}
+
+static struct omnibook_tbl cooling_table[] __initdata = {
+ {TSM70 | TSX205, {CDI, 0, TSM70_FN_INDEX, 0, 0, 0 }},
+ {0,}
+};
+
+struct omnibook_feature __declared_feature cooling_driver = {
+ .name = "cooling",
+ .enabled = 1,
+ .read = omnibook_cooling_read,
+ .write = omnibook_cooling_write,
+ .init = omnibook_cooling_init,
+ .exit = omnibook_cooling_exit,
+ .ectypes = TSM70 | TSX205,
+ .tbl = cooling_table,
+};
+
+module_param_named(cooling, cooling_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(cooling, "Use 0 to disable, 1 to enable CPU cooling method control");
+
+/* End of file */
diff --git a/ubuntu/omnibook/debian/README.Debian b/ubuntu/omnibook/debian/README.Debian
new file mode 100644
index 00000000000..4978147dcfe
--- /dev/null
+++ b/ubuntu/omnibook/debian/README.Debian
@@ -0,0 +1,30 @@
+omnibook for Debian
+-------------------
+
+Please see docs/README for a description of the omnibook kernel module.
+
+The Debian omnibook source package provides omnibook-source, package
+which provides the source for the kernel module.
+
+The omnibook-source package can be used in several ways,
+
+ - Using the make-kpkg(1) command provided by the kernel-package Debian
+ package. This will produce a corresponding omnibook-modules package for
+ the Debian kernel-image package that you are using.
+ See the "modules_image" section of the make-kpkg(1) man page.
+
+ - Using module-assistant. Simply issue the following command (as root):
+ $ module-assistant auto-install omnibook
+ Please see the module-assistant documentation for futher details.
+
+ - Changing to the /usr/src/modules/omnibook/ directory and building as
+ the README file instructs using "make; make install". This will build
+ and install a module specific to the system you are building on and is
+ not under control of the packaging system.
+
+If your are not using module-assisatant, you have to unpack
+/usr/src/omnibook-source.tar.bz2 to /usr/src.
+
+ -- Peter Soos <sp@osb.hu>, Wed, 25 Jan 2006 21:06:28 +0100
+ -- Julien Valroff <julien@kirya.net> Sun, 07 Oct 2007 10:38:07 +0200
+
diff --git a/ubuntu/omnibook/debian/changelog b/ubuntu/omnibook/debian/changelog
new file mode 100644
index 00000000000..896a82bfb0a
--- /dev/null
+++ b/ubuntu/omnibook/debian/changelog
@@ -0,0 +1,170 @@
+omnibook (2:2.20070211+svn20090714b-1) unstable; urgency=low
+
+ * New SVN snapshot:
+ + fix build issue induced by previous patches
+ + fix build with kernel >= 2.6.30
+
+ -- Julien Valroff <julien@kirya.net> Tue, 14 Jul 2009 18:17:49 +0200
+
+omnibook (2:2.20070211+svn20090714-1) unstable; urgency=low
+
+ * New SVN snapshot:
+ + Applied patches from Azael Avalos <coproscefalo@gmail.com>
+ to add support to Satellite X205 and other laptops based on
+ ICH8
+ * New Standards version 3.8.2
+ * Bumped DH compat to 7
+ * Updated copyright information
+ * Now use dh_prep instead of dh_clean -k
+
+ -- Julien Valroff <julien@kirya.net> Tue, 14 Jul 2009 10:03:00 +0200
+
+omnibook (2:2.20070211+svn20090227-1) unstable; urgency=low
+
+ * New SVN snapshot
+ + Applied patch from Danny Kukawka <dkukawka@suse.de> to
+ fix compiler warning about use uninitialized variable
+ + Applied patch from Danny Kukawka <dkukawka@suse.de> to
+ fix build the driver on older kernel versions
+
+ * New Standards version 3.8.0 - no further changes needed
+ * Updated copryight information
+
+ -- Julien Valroff <julien@kirya.net> Fri, 27 Feb 2009 19:57:35 +0100
+
+omnibook (2:2.20070211+svn20071217-1) unstable; urgency=low
+
+ * New SVN snapshot (r271)
+ * Added amd64 as a compatible architecture for the module
+ * New Standards version 3.7.3 - no further changes needed
+
+ -- Julien Valroff <julien@kirya.net> Mon, 17 Dec 2007 18:00:29 +0100
+
+omnibook (2:2.20070211+svn20071006-1) unstable; urgency=low
+
+ * New SVN snapshot (r264):
+ + Update for acpi and backlight API changes in linux 2.6.23
+ * First upload to Debian (Closes: #445602):
+ + Improved debian/copyright
+ + Bumped debhelper compat to version 5
+ + Added myself as maintainer
+ + Updated README.Debian
+ * debian/control:
+ + Moved Homepage to own field (from pseudo-field in long description)
+ + Added Vcs-* fields
+
+ -- Julien Valroff <julien@kirya.net> Thu, 29 Nov 2007 18:30:27 +0100
+
+omnibook (2:2.20070211+svn20070905-1) unstable; urgency=low
+
+ * Added dependency on dpatch
+ * [debian/rules]:
+ - Fixed lintian warning in the clean target
+
+ -- Julien Valroff <julien@kirya.net> Wed, 05 Sep 2007 20:25:13 +0200
+
+omnibook (2:2.20070211+svn20070526-1) unstable; urgency=low
+
+ * New SVN snapshot (r259):
+ + Fixed compilation issue with kernel 2.6.21
+ + DMI signature added:
+ Toshiba Satellite P25 (ectype 11)
+ Toshiba Satellite M60 (ectype 12)
+ * Added patch to disable debug for SVN snasphot
+
+ -- Julien Valroff <julien@kirya.net> Sat, 26 May 2007 15:19:57 +0200
+
+omnibook (2:2.20070211-1) unstable; urgency=low
+
+ * New upstream release:
+ + For ectype 12 (Satellite M40X, M70, M100, ...):
+ - improved bluetooth control
+ - cooling method control
+ - CPU throttling ( ACPI T-States)
+ + Full hotkeys support for Tecra S1
+ + Bluetooth control for Ectype 14 (Satellite A100, A105, M115, ...)
+ * Updated homepage in long description
+
+ -- Julien Valroff <julien@kirya.net> Mon, 12 Feb 2007 18:50:05 +0100
+
+omnibook (2:2.20060921+svn20061202-1) unstable; urgency=low
+
+ * New SVN snapshot (r228)
+
+ -- Julien Valroff <julien@kirya.net> Sat, 2 Dec 2006 10:17:07 +0100
+
+omnibook (2:2.20060921+svn20061112-1) unstable; urgency=low
+
+ * SVN snapshot:
+ + Disabled Acer support
+ + Fixed and improved bluetooth handling for TSM30X class laptop
+ + DMI signature added:
+ HP Pavilion ze4500 (ectype 7)
+ Toshiba Satellite 1130 (ectype 1)
+ Toshiba Satellite A75 (ectype 12)
+ Toshiba Tecra A4 (ectype 13)
+ + Implemented Volume down,up and Mute buttons polling for ectype 2
+ + Implemented ectype 13 Fn hotkeys handling.
+ * changed compression of the sources in /usr/src/ to bzip2
+
+ -- Julien Valroff <julien@kirya.net> Sat, 11 Nov 2006 14:08:47 +0100
+
+omnibook (2:2.20060921-1) unstable; urgency=low
+
+ * New upstream release:
+ + Expand display and hotkeys features
+ + Added support for more laptops
+ + Code cleanups
+ + Minor bug fixes
+
+ -- Julien Valroff <julien@kirya.net> Mon, 25 Sep 2006 08:14:59 +0200
+
+omnibook (2:2.20060817-1) unstable; urgency=low
+
+ * New upstream release
+ * [01_makfefile.dpatch] Removed - fixed upstream
+ * Changed defaut STEM value to linux (follows kernel-package)
+ * Uses dh_installmodules for maintainance scripts
+
+ -- Julien Valroff <julien@kirya.net> Mon, 11 Sep 2006 18:00:50 +0200
+
+omnibook (2:2.20060809-2) unstable; urgency=low
+
+ * Include copyright and Debian changelog in omnibook-module
+ * Fix Makefile issue in a more elegant way
+
+ -- Julien Valroff <julien@kirya.net> Thu, 10 Aug 2006 10:16:47 +0200
+
+omnibook (2:2.20060809-1) unstable; urgency=low
+
+ * New upstream release:
+ + Addeed autodetection of the Toshiba Satellite M40X laptop
+
+ -- Julien Valroff <julien@kirya.net> Thu, 10 Aug 2006 09:40:45 +0200
+
+omnibook (2:2.20060806-1) unstable; urgency=low
+
+ * New upstream branch - Mathieu Bérard launched new project
+ * Added myself as co-maintainer
+ * Bumped upstream version and use epoch to ensure upgrades
+ * [debian/rules]:
+ + Clean-ups
+ + Recommends linux-image or kernel-image
+ * [debian/control] Improved long description
+ * [debian/post*.modules.in] Fixed bashisms
+ * Added patch to fix install target in Makefile
+
+ -- Julien Valroff <julien@kirya.net> Thu, 10 Aug 2006 01:35:38 +0200
+
+omnibook (20060126-1) unstable; urgency=low
+
+ * Minor build inconveniences corrected.
+
+ -- Daniel Gimpelevich <daniel@gimpelevich.san-francisco.ca.us> Sun, 18 Jun 2006 12:28:55 -0700
+
+omnibook (20060126-0) unstable; urgency=low
+
+ * Locally built.
+
+ -- Péter Soós <sp@osb.hu> Wed, 25 Jan 2006 21:06:28 +0100
+
diff --git a/ubuntu/omnibook/debian/compat b/ubuntu/omnibook/debian/compat
new file mode 100644
index 00000000000..7f8f011eb73
--- /dev/null
+++ b/ubuntu/omnibook/debian/compat
@@ -0,0 +1 @@
+7
diff --git a/ubuntu/omnibook/debian/control b/ubuntu/omnibook/debian/control
new file mode 100644
index 00000000000..bbcd4e733c3
--- /dev/null
+++ b/ubuntu/omnibook/debian/control
@@ -0,0 +1,21 @@
+Source: omnibook
+Section: misc
+Priority: optional
+Maintainer: Julien Valroff <julien@kirya.net>
+Build-Depends: debhelper (>> 7.0.0), dpatch, bzip2
+Standards-Version: 3.8.2
+Homepage: http://omnibook.sf.net
+Vcs-Svn: https://omnibook.svn.sourceforge.net/svnroot/omnibook/omnibook/trunk
+Vcs-Browser: http://omnibook.svn.sourceforge.net/viewvc/omnibook/
+
+Package: omnibook-source
+Architecture: all
+Depends: debhelper (>= 4.0.0), make, module-assistant, kernel-package, bzip2, dpatch
+Description: Source for the omnibook driver
+ This package contains the loadable kernel modules for the HP OmniBooks,
+ Pavilions, Toshiba Satellites and some other laptops manufactured by
+ Compal Electronics, Inc as ODM.
+ .
+ This module is only compatible with Linux kernels >= 2.6.9
+ .
+ Kernel source is required to compile this module.
diff --git a/ubuntu/omnibook/debian/control.modules.in b/ubuntu/omnibook/debian/control.modules.in
new file mode 100644
index 00000000000..a06acc2c304
--- /dev/null
+++ b/ubuntu/omnibook/debian/control.modules.in
@@ -0,0 +1,23 @@
+Source: omnibook
+Section: misc
+Priority: optional
+Maintainer: Julien Valroff <julien@kirya.net>
+Build-Depends: debhelper (>> 7.0.0)
+Standards-Version: 3.8.2
+
+Package: omnibook-module-_KVERS_
+Architecture: i386 amd64
+Recommends: _STEM_-image-_KVERS_
+Provides: omnibook-module
+Description: omnibook module for Linux (kernel _KVERS_)
+ This package contains the loadable kernel modules for the HP OmniBooks,
+ Pavilions, Toshiba Satellites and some other laptops manufactured by
+ Compal Electronics, Inc as ODM.
+ .
+ This package contains the compiled kernel modules for _KVERS_
+ .
+ If you have compiled your own kernel, you will most likely need to build
+ your own omnibook-module. The omnibook-source package has been
+ provided for use with the Debian kernel-package utility to produce a version
+ of omnibook-module for your kernel.
+
diff --git a/ubuntu/omnibook/debian/copyright b/ubuntu/omnibook/debian/copyright
new file mode 100644
index 00000000000..3011f9100f1
--- /dev/null
+++ b/ubuntu/omnibook/debian/copyright
@@ -0,0 +1,32 @@
+This package was debianized by Peter Soos <sp@osb.hu> on
+Wed, 25 Jan 2006 21:06:28 +0100.
+Debian package was improved by Julien Valroff <julien@kirya.net>
+
+It was downloaded from http://sourceforge.net/projects/omnibook
+
+Copyright Holder: 2006-2007 Mathieu Bérard <math_b@users.sourceforge.net>
+
+dump.c:
+ Copyright (C) 2004-2005 Borislav Deianov <borislav@users.sf.net>
+
+License:
+
+ This package is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+The Debian packaging is
+ Copyright (C) 2006 Peter Soos <sp@osb.hu>
+ Copyright (C) 2006-2009 Julien Valroff <julien@kirya.net>
+It is licensed under the GPL, version 2.
+
+You should have received a copy of the GNU General Public License with
+the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL-2;
+if not, write to the Free Software Foundation, Inc., 51 Franklin St,
+Fifth Floor, Boston, MA 02110-1301, USA.
diff --git a/ubuntu/omnibook/debian/docs b/ubuntu/omnibook/debian/docs
new file mode 100644
index 00000000000..92b96855904
--- /dev/null
+++ b/ubuntu/omnibook/debian/docs
@@ -0,0 +1,4 @@
+doc/BUGS
+doc/CREDITS
+doc/README
+misc/hotkeys
diff --git a/ubuntu/omnibook/debian/rules b/ubuntu/omnibook/debian/rules
new file mode 100755
index 00000000000..187600424be
--- /dev/null
+++ b/ubuntu/omnibook/debian/rules
@@ -0,0 +1,135 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+include /usr/share/dpatch/dpatch.make
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+ CFLAGS += -O2
+endif
+
+# Name of the source package
+psource := omnibook-source
+
+# The short upstream name, used for the module source directory
+sname := omnibook
+
+# prefix of the target package name
+PACKAGE=omnibook-module
+
+### end KERNEL SETUP
+
+configure: configure-stamp
+configure-stamp:
+ dh_testdir
+ touch configure-stamp
+
+
+build-arch: configure-stamp build-arch-stamp
+build-arch-stamp:
+ dh_testdir
+ touch build-arch-stamp
+
+build-indep: patch configure-stamp build-indep-stamp
+build-indep-stamp:
+ dh_testdir
+
+ touch build-indep-stamp
+
+build: patch build-arch build-indep
+
+clean: unpatch
+ dh_testdir
+ rm -f build-arch-stamp build-indep-stamp configure-stamp
+
+ dh_clean
+
+install: DH_OPTIONS=
+install: patch build
+ dh_testdir
+ dh_testroot
+ dh_prep
+ dh_installdirs
+
+ # Create the directories to install the source into
+ dh_installdirs -p$(psource) usr/src/modules/$(sname)/debian
+ cp debian/compat debian/rules debian/changelog \
+ debian/control debian/copyright debian/*.modules.in \
+ debian/$(psource)/usr/src/modules/$(sname)/debian
+ cp Makefile *.c *.h *.lds debian/$(psource)/usr/src/modules/$(sname)
+
+ cd debian/$(psource)/usr/src && tar c modules | bzip2 -9 > $(sname).tar.bz2 && rm -rf modules
+ dh_install
+
+# Build architecture-independent files here.
+# Pass -i to all debhelper commands in this target to reduce clutter.
+binary-indep: build install
+ dh_testdir -i
+ dh_testroot -i
+ dh_installchangelogs -i doc/ChangeLog
+ dh_installdocs -i
+ dh_installexamples -i
+ dh_installman -i
+ dh_link -i
+ dh_compress -i
+ dh_fixperms -i
+ dh_installdeb -i
+ dh_installdeb -i
+ dh_shlibdeps -i
+ dh_gencontrol -i
+ dh_md5sums -i
+ dh_builddeb -i
+
+# Build architecture-dependent files here.
+binary-arch: build install
+
+# modifieable for experiments or debugging m-a
+MA_DIR ?= /usr/share/modass
+# load generic variable handling
+-include $(MA_DIR)/include/generic.make
+# load default rules, including kdist, kdist_image, ...
+-include $(MA_DIR)/include/common-rules.make
+
+ifndef KPKG_STEM
+STEM:=linux
+else
+STEM:=${KPKG_STEM}
+endif
+
+kdist_clean: prep-deb-files
+ [ ! -f Makefile ] || $(MAKE) KSRC=$(KSRC) clean
+ dh_clean
+
+kdist_config: prep-deb-files
+ sed -i -e 's/_STEM_/$(STEM)/g' debian/control
+
+binary-modules: kdist_config prep-deb-files
+ dh_testroot
+ dh_prep
+ dh_installdirs lib/modules/$(KVERS)/extra
+
+ # Build the module
+ $(MAKE) KSRC=$(KSRC) KVERS=$(KVERS)
+
+ # Install the module
+ $(MAKE) install KSRC=$(KSRC) DESTDIR=$(CURDIR)/debian/$(PKGNAME) INSTDIR=extra DEPMOD="/bin/true"
+
+ dh_installdocs
+ dh_compress
+ dh_installmodules
+ dh_installchangelogs
+ dh_fixperms
+ dh_installdeb
+ dh_gencontrol -- -v$(VERSION)
+ dh_md5sums
+ dh_builddeb --destdir=$(DEB_DESTDIR)
+ dh_prep
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure binary-modules kdist kdist_config kdist_image kdist_clean
diff --git a/ubuntu/omnibook/display.c b/ubuntu/omnibook/display.c
new file mode 100644
index 00000000000..1c5d4d79d72
--- /dev/null
+++ b/ubuntu/omnibook/display.c
@@ -0,0 +1,114 @@
+/*
+ * display.c -- External display (LCD,VGA,TV-OUT) feature
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+static const char display_name[][16] = {
+ "Internal LCD",
+ "External VGA",
+ "External TV-OUT",
+ "External DVI",
+};
+
+static int omnibook_display_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+ int retval;
+ unsigned int sta, en_mask, det_mask;
+
+ retval = backend_display_get(io_op, &sta);
+ if (retval < 0)
+ return retval;
+
+ for (en_mask = DISPLAY_LCD_ON; en_mask <= DISPLAY_DVI_ON; en_mask = en_mask << 1) {
+ det_mask = en_mask << 4; /* see display masks in omnibook.h */
+ if (!(retval & en_mask) && !(retval & det_mask))
+ continue; /* not supported */
+ len += sprintf(buffer + len, "%s:", display_name[ffs(en_mask) - 1]);
+ if (retval & det_mask)
+ len +=
+ sprintf(buffer + len, " display %s",
+ (sta & det_mask) ? "present" : "absent");
+ if (retval & en_mask)
+ len +=
+ sprintf(buffer + len, " port %s",
+ (sta & en_mask) ? "enabled" : "disabled");
+ len += sprintf(buffer + len, "\n");
+ }
+
+ return len;
+}
+
+static int omnibook_display_write(char *buffer, struct omnibook_operation *io_op)
+{
+ int retval;
+ unsigned int state;
+ char *endp;
+
+ state = simple_strtoul(buffer, &endp, 16);
+ if (endp == buffer)
+ return -EINVAL;
+ else
+ retval = backend_display_set(io_op, state);
+
+ return retval;
+}
+
+static struct omnibook_feature display_driver;
+
+static int __init omnibook_display_init(struct omnibook_operation *io_op)
+{
+ int retval;
+ unsigned int state;
+
+ /* Disable file writing if unsuported by backend */
+ if (!io_op->backend->display_set)
+ display_driver.write = NULL;
+
+ retval = backend_display_get(io_op, &state);
+ if (retval < 0)
+ return retval;
+ else
+ return 0;
+}
+
+static struct omnibook_tbl display_table[] __initdata = {
+ {TSM70 | TSX205, {ACPI,}},
+ {TSM40, {SMI, SMI_GET_DISPLAY_STATE, SMI_SET_DISPLAY_STATE, 0, 0, 0}},
+ {XE3GF | TSP10 | TSM70 | TSM30X | TSM40, SIMPLE_BYTE(EC, XE3GF_STA1, XE3GF_SHDD_MASK)},
+ {XE3GC, SIMPLE_BYTE(EC, XE3GC_STA1, XE3GC_CRTI_MASK)},
+ {OB500 | OB510 | OB6000 | OB6100 | XE4500, SIMPLE_BYTE(EC, OB500_STA1, OB500_CRTS_MASK)},
+ {OB4150, SIMPLE_BYTE(EC, OB4150_STA2, OB4150_CRST_MASK)},
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature display_driver = {
+ .name = "display",
+ .enabled = 1,
+ .init = omnibook_display_init,
+ .read = omnibook_display_read,
+ .write = omnibook_display_write,
+ .ectypes =
+ XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | OB4150 | TSP10 | TSM70 | TSM30X |
+ TSM40 | TSX205,
+ .tbl = display_table,
+};
+
+module_param_named(display, display_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(display, "Use 0 to disable, 1 to enable display status handling");
+/* End of file */
diff --git a/ubuntu/omnibook/doc/BUGS b/ubuntu/omnibook/doc/BUGS
new file mode 100644
index 00000000000..c629259c5b4
--- /dev/null
+++ b/ubuntu/omnibook/doc/BUGS
@@ -0,0 +1,17 @@
+Bugs and problems in omnibook module code
+=========================================
+
+* Volume Control buttons on machine (not on docking station) do not generate
+ scancodes on OB500 style models. It is unhandled yet.
+* Setting the LCD brightness on HP OmniBook XE3 GF via /proc/omnibook/lcd
+ is working if you press one of the brightness control keys once after
+ writing the value into /proc/omnibook/lcd.
+* I'm not a native English speaker so text corrections are welcome.
+* obtest can BADLY confuse the in-kernel ACPI code due to its racy
+ implementation.
+* Reenabling wifi adapter after previous disabling is broken on
+ Toshiba Satellite M100 (ipw3945)
+* Real support of ectype 14 is still missing
+* See http://sourceforge.net/tracker/?atid=868542&group_id=174260&func=browse
+ for sf.net bug tracking system.
+
diff --git a/ubuntu/omnibook/doc/COPYING b/ubuntu/omnibook/doc/COPYING
new file mode 100644
index 00000000000..d60c31a97a5
--- /dev/null
+++ b/ubuntu/omnibook/doc/COPYING
@@ -0,0 +1,340 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+ 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Library General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General
+Public License instead of this License.
diff --git a/ubuntu/omnibook/doc/CREDITS b/ubuntu/omnibook/doc/CREDITS
new file mode 100644
index 00000000000..c525a4b548b
--- /dev/null
+++ b/ubuntu/omnibook/doc/CREDITS
@@ -0,0 +1,39 @@
+The module was originally written by
+
+* Soós Péter <sp@osb.hu>
+
+Special thanks to the following persons and/or organisations (without
+particular order):
+
+* Al Stone <ahs3@fc.hp.com> and Linux Systems Operation at HP for lending
+ an HP OmniBook 500 for the project purposes.
+* Pavel Mihaylov <bin@bash.info> for his omke project discovering a lot of
+ OmniBook features, providing some code for XE3 GC machines and testing.
+* Ducrot Bruno <ducrot@poupinou.org> sharing lots of information about
+ embedded controller and related code, added lots of Toshiba support,
+ writing tosh3k code, sending patches etc.
+
+Thanks to the following people (without particular order):
+
+* Al Stone <ahs3@fc.hp.com> for sharing some programming information.
+* Guido Guenther <agx@sigxcpu.org> for initial OneTouch enabling code.
+* Jens Thoms Toerring <Jens.Toerring@physik.fu-berlin.de> for initial
+ OneTouch power management code.
+* Maciek Gorniak <mago@acn.waw.pl> for initial HP Pavilion N5415 detecting
+ code and initial lcd brighness code.
+* Rick Richardson <rickr@mn.rr.com> for some bugfixes and useful patches.
+* Bob McElrath <mcelrath@draal.physics.wisc.edu> for initial Compal ACL00
+ code.
+* Luisimi Moya <luismimoya@eresmas.net> for Acer Aspire 1400 support.
+* Bernhard Kaindl <bernhard.kaindl@gmx.de> for bugfixes and patches
+* Gabriele Vivinetto <gabriele.mailing@rvmgroup.it> for documentation
+ enhancements and testing.
+* Mark Chappell <nslm@nslm.fsnet.co.uk> for building on kernel 2.6.
+* Massimo Dal Zotto <dz@debian.org> for his i8k code.
+* Jonathan A. Buzzard <jonathan@buzzard.org.uk> for his toshiba code.
+* Some others on OmniBook mailing list at
+ http://zurich.ai.mit.edu/mailman/listinfo/omnibook
+ for providing information and testing.
+
+Last but not least thanks to Linus Torvald and more for creating and
+maintaining the Linux kernel.
diff --git a/ubuntu/omnibook/doc/ChangeLog b/ubuntu/omnibook/doc/ChangeLog
new file mode 100644
index 00000000000..38749b9cd76
--- /dev/null
+++ b/ubuntu/omnibook/doc/ChangeLog
@@ -0,0 +1,521 @@
+Changelog file for omnibook package:
+------------------------------------
+
+2.XXXXXXXX Mathieu Bérard <math_b@users.sourceforge.net>
+* DMI signature added:
+ Toshiba Satellite P25 (ectype 11)
+ Toshiba Satellite M60 (ectype 12)
+* Applied patch from Danny Kukawka <dkukawka@suse.de> to
+ fix compiler warning about use uninitialized variable
+* Applied patch from Danny Kukawka <dkukawka@suse.de> to
+ fix build the driver on older kernel versions
+* Applied patches from Azael Avalos <coproscefalo@gmail.com>
+ to add support to Satellite X205 and other laptops based on
+ ICH8
+* Fix build with kernel >= 2.6.30
+
+2.20070211 Mathieu Bérard <math_b@users.sourceforge.net>
+* Disable Acer support, acerhk module should provided better
+ support with a far more complete autodetection database
+ (see http://www2.informatik.hu-berlin.de/~tauber/acerhk/)
+* Fix and improve bluetooth handling for TSM30X class laptops
+ bluetooth now also works for TSA105
+* Implement Volume down,up and Mute buttons polling for ectype 2
+ It was the last missing part from the "omke" module which never
+ got ported to linux 2.6
+* Implement ectype 13 Fn hotkeys handling.
+* DMI signature added:
+ HP Pavilion ze4500 (ectype 7)
+ Toshiba Satellite 1130 (ectype 1)
+ Toshiba Satellite A75 (ectype 12)
+ Toshiba Tecra A4 (ectype 13)
+ Toshiba Satellite A80 (ectype 12)
+ Toshiba Satellite P100 (ectype 14)
+* Split TSM30X (ectype 12) : this ectype was reimplemented and if the
+ new implementation works with Toshiba M40X, M70, M100... it does not
+ (and will never, due to hardware) with Toshiba M30X, the only way
+ to fix this is to split TSM30X (ectype 12) in :
+ -TSM70 (ectype 12) => new implementation (compal.c & acpi.c backends)
+ -TSM30X (ectype 15) => old implementation (legacy backends)
+ This is done by renaming TSM30X to TSM40 and restore old TSM30X
+ The state of the Toshiba M35X is unknown and is assigned to TSM70, one
+ should send a bug report if that fail.
+ Fix bugs 1617818 and 1605278
+* New features for TSM70 class laptops:
+ -Cooling method control (can tune fan behaviour to 'Save power' or
+ to 'Maximize performance') provided in /proc/omnibook/cooling
+ -CPU Throttling status&control (also known as ACPI T-States) should
+ be supported out of the box via /proc/acpi/processor/CPU0/throttling
+ but at least Toshiba Satellite M70 as a deficient ACPI FADT table
+ which prevent than, thus a custom access to ACPI Throttling is
+ provided in /proc/omnibook/throttling
+
+2.20060921 Mathieu Bérard <math_b@users.sourceforge.net>
+* The minimal required kernel version is now 2.6.9 (kref API)
+* Convert semaphore to mutex with fallback for pre 2.6.16 kernel
+* Kill CONFIG_OMNIBOOK_APMEMU and introduce OMNIBOOK_LEGACY:
+ pre-ACPI features now depends on it.
+ Default enabling of ac and battery features also
+ depends on it. It is _disabled_ by default.
+* Introduce ACPI methods execution backend: TSM70 needs it
+ for Display and Wifi/Bluetooth features
+* Expand display and hotkeys features
+* Introduce experimental NbSmi backend for TSM40. It is
+ based on technical documentation provided by Toshiba.
+ Thanks Toshiba !
+* Kill unused omnibook_mem_read/write function for mmio
+ access
+* Cleanup in blank.c fan.c temperature.c
+* Unbreak Pio backend: use request/release_region
+* Introduce bluetooth and wifi frontend features : they allow
+ adapter state querry and control (existence probing, wifi
+ kill switch probing and adapter enabling/disabling).
+ Supported by TSM30X and TSM40
+* Introduce omnibook_backend struct as a uniform way of
+ communication between backend and frontend, this
+ kill omnibook_io_{read/write} and friends.
+* Modify ombibook_feature struct to incorporate pointers
+ to an omnibook_table table and to a omnibook_operation
+ struct which is picked-up from the ectype matching
+ omnibook_table entry upon feature initialization
+* Add muteled resume handler
+* Add touchpad handling for TSM30X
+* Add proper display handling for TSM30X
+* Change all features struct name from foo_feature to
+ foo_driver to kept modpost section mismatch detection
+ silent. Put tbl, init and exit entries to their relevant
+ sections.
+* Many bugfix and dock support for TSM40 by Holger Nelson.
+* Add DMI Signature for Toshiba Satellite 1700-Series, with ectype 10.
+ LCD does not work.
+* Add DMI Signature for Toshiba Equium A110, added with
+ ectype 1, until implementation of a better backend
+* Add DMI Signature for Toshiba _Satellite_ M100, Satellite A70
+ and Tecra S2. added with ectype 12
+* Add DMI Signature for Toshiba Tecra S1, added with
+ ectype 13
+
+2.200608017 Mathieu Bérard <math_b@users.sourceforge.net>
+* Fix bug un omnibook_io_match
+* Fix DMI handling behaviour: we stop on the FIRST matched
+ DMI entry. This is restoring pre-20060806 behaviour.
+ Invert M40 vs. M40X entry position.
+
+2.20060816 Mathieu Bérard <math_b@users.sourceforge.net>
+* Merge from the new-backend branch: Add new backend code
+ (in compal.c) used with TSM30X class laptops:
+ Used for lcd access
+ Used for hotkeys support: now most Fn+key generate a scancode,
+ as well as the wifi kill switch.
+ Warning: tested only on TSM40X an TSM70 laptops.
+* Create omnibook_io_operation struct and omnibook_io_{read/write}
+ funtions to simplify implementation of some simple features.
+ Used with ac display dock and led features.
+* Rename onetouch feature to "hotkeys" which is a vendor neutral name.
+* The minimal required kernel version is now 2.6.9 (kref API)
+* Convert semaphore to mutex with fallback for pre 2.6.16 kernel
+* Kill CONFIG_OMNIBOOK_APMEMU and introduce OMNIBOOK_LEGACY:
+ pre-ACPI features now depends on it.
+ Default enabling of ac and battery features also
+ depends on it. It is _disabled_ by default.
+* Introduce ACPI methods execution backend: TSM70 needs it
+ for Display and Wifi/Bluetooth features
+* Expand display and hotkeys features
+* Introduce experimental NbSmi backend for TSM40. It is
+ based on technical documentation provided by Toshiba.
+ Thanks Toshiba !
+* Kill unused omnibook_mem_read/write function for mmio
+ access
+* Cleanup in blank.c fan.c temperature.c
+* Unbreak Pio backend: use request/release_region
+* Introduce bluetooth and wifi frontend features : they allow
+ adapter state querry and control (existence probing, wifi
+ kill switch probing and adapter enabling/disabling).
+ Supported by TSM30X and TSM40
+* Introduce omnibook_backend struct as a uniform way of
+ communication between backend and frontend, this
+ kill omnibook_io_{read/write} and friends.
+* Modify ombibook_feature struct to incorporate pointers
+ to an omnibook_table table and to a omnibook_operation
+ struct which is picked-up from the ectype matching
+ omnibook_table entry upon feature initialization
+* Add muteled resume handler
+* Add touchpad handling for TSM30X
+* Add proper display handling for TSM30X
+* Change all features struct name from foo_feature to
+ foo_driver to kept modpost section mismatch detection
+ silent. Put tbl, init and exit entries to their relevant
+ sections.
+
+2.20060809 Mathieu Bérard <math_b@users.sourceforge.net>
+* Add dmi info for Toshiba Satellite M40X (Thanks Julien Valroff)
+* Fix two brown paper bag bugs in Debian/Ubuntu support
+
+2.20060806 Mathieu Bérard <math_b@users.sourceforge.net>
+* Make the module linux 2.6 only
+ Kernel versions from 2.6.8 to a least 2.6.17 are supported
+ Code for compatibility with kernels older than 2.6.17 is
+ mostly implemented in compat.h
+* Integrate with Driver Model:
+ register as a platform device and optional
+ registration as a backlight device (2.6.17+ required here)
+* Get rid of deprecated pm_legacy functions
+* Use kernel-provided DMI information:
+ Use kernel-provided dmi_check_system for system identification
+ omnibook_tc_t and omnibook_models_t are merged and converted into a
+ dmi_system_id struct and moved from init.c to laptop.h
+* MODULE_PARAM -> 2.6-style module_parm_*
+* Move some code from "feature".c files back to init.c
+ Interface is provided by the new omnibook_feature struct
+ Enabled features are now in placed in a linked list
+ This eliminate util.c
+ Rationale: Reduce code duplication and create a standard template for features
+* Move dmi and version display into their own file: info.c
+* Remove all (as unneeded) EXPORT_SYMBOL
+* Misc fixes in Makefile
+ Also make more use of Kbuild
+* Use sscanf and simple_stro{u}l for strings parsing instead of custom code
+* Run lindent for better conformance with kernel coding style
+* Add very limited support for some Toshiba M40 (more info needed)
+* Use bitmasks for EC types matching, this change is transparent for the user
+ (e.g. one can still use ectype=num module parameter)
+ Rationale: Reduce the size of the omnibook_feature struct
+* Polish Debian support: Use module-assistant and fix all Lintian warning
+ Fix building against non-running kernel (Thanks to Daniel Gimpelevich)
+* Update documentation and omnibook-integration.patch
+* Fix spinlock usage: they can be used unconditionally as they are automatically
+ optimized out at build-time on UP. This should improve PREEMPT safety
+* Spinlock protect omnibook_mem_* and use ioread8 and iowrite8
+* Fix: Custom EC access function are also used if ACPI is compiled but disabled
+* Cleanup: remove lots of unneeded #ifdef
+* Add a new feature for testers: dump
+ Dump was stolen from the ibm_acpi driver
+ It is disabled by default
+* Bump version to 2.YYYYMMDD
+
+2006-05-15 Thomas Perl <thp@perli.net>
+* Added support for xe4500's "audio mute" led
+
+2006-01-26 Soós Péter <sp@osb.hu>
+* Added support for kernels >= 2.6.15 (pm_legacy.h)
+* Added Toshiba Satellite M30X
+* Added support for Toshiba Satellite M70
+* Added support for HP Pavilion ze4300 series
+* Fixed module unloading on 2.6 series kernels (thanks to
+ math_b@users.sourceforge.net)
+* Changed version number to +%Y%m%d format
+* Added Debian support
+
+2005-02-17 Soós Péter <sp@osb.hu>
+* Fixed Makefile
+* Updated Toshiba 1115 information
+
+2004-12-15 Scott Barnes <reeve@users.sourceforge.net>
+* Added Toshiba Satellite M35X
+
+2004-09-16 Soós Péter <sp@osb.hu>
+* Added INSTALL-2.6 file
+* Little spelling fixes in documentation
+* Little bugfixes
+* Added Compal ACL10
+
+2004-07-01 Soós Péter <sp@osb.hu>
+* Added new technology codes
+* Added some new HP nx9000 detection string
+* Added Toshiba Satellite P20
+
+2004-06-07 Chris Green <cmg@dok.org>
+* Added Toshiba Satellite P15
+
+2004-06-01 Soós Péter <sp@osb.hu>
+* Added Toshiba Satellite 1955
+* Added Toshiba Satellite 2435
+* Added Toshiba Satellite P10 (new ectype)
+* Acer Aspire 1350
+
+2004-01-23 Soós Péter <sp@osb.hu>
+* Added HP Pavilion ze8500 (HP nx9010)
+* fixed PM handler for OneTouch keys and touchpad
+
+2004-01-20 Soós Péter <sp@osb.hu>
+* Only fan status supported on HP OmniBook 4150, XE2 and
+ Fujitsu-Siemens Amilo D, fan control is unsupported
+* #include fixes in ec.c
+
+2004-01-16 Soós Péter <sp@osb.hu>
+* Added fan support for Fujitsu-Siemens Amilo D series laptops
+
+2004-01-14 Soós Péter <sp@osb.hu>
+* Fixed Makefile for kernels 2.6
+* Added Fujitsu-Siemens Amilo D series laptops (new ectype)
+
+2003-12-08 Soós Péter <sp@osb.hu>
+
+* Fixed tecnology code detection
+* Added HP/Compaq nx9005
+* Fixed Makefile for kernel 2.4
+
+2003-11-12 Soós Péter <sp@osb.hu>
+
+* Fixed KERNEL_WARNING in init.c
+
+2003-11-10 Soós Péter <sp@osb.hu>
+
+* Fixed timeout bugs in ec.c
+* Fixed touchpad dependency code for kernel 2.6
+* Added Compaq nx9000
+
+2003-11-10 Mark Chappell <mark@nslm.fsnet.co.uk>
+
+* Added kernel 2.6 support to Makefile
+
+2003-10-23 Soós Péter <sp@osb.hu>
+
+* Totally removed key polling code for kernels >= 2.5.0 but 2.5/2.6 kernels
+ is unsuported yet
+* proc_battery is static
+* Added HP OmniBook 900 B support
+* Added HP OmniBook XE2 support (added new ectype value for it)
+* Added Compaq nx9010
+* Reversed ChangeLog
+* Some documentation changes
+
+2003-08-28 Soós Péter <sp@osb.hu>
+
+* Added Toshiba Satellite 2430
+* Documentation enhancements
+
+2003-04-03 Soós Péter <sp@osb.hu>
+
+* Really fixed __init bug in user parameter code
+* Fixed omnibook_dmi_ident (it was static)
+
+2003-03-31 Soós Péter <sp@osb.hu>
+
+* Fixed HP technology code detection
+* Key polling is disabled by default on XE3GC style machines
+* Fixed PM code in polling.c
+* Added util.c
+* Fixed __init bug in user parameter code
+* Cleaned up ec.h
+* Added Toshiba Satellite 1950 detection
+* Documentation enhancements
+
+2003-03-13 Soós Péter <sp@osb.hu>
+
+* Added HP Pavilion ZU1155 and ZU1175 detection
+
+2003-03-11 Soós Péter <sp@osb.hu>
+
+* Fixed bogus version information
+
+2003-03-06 Ducrot Bruno <ducrot@poupinou.org>
+
+* Fan off hack for XE3GF style machines
+
+2003-03-04 Ducrot Bruno <ducrot@poupinou.org>
+
+* Fixed spinlock problem
+
+2003-02-28 Soós Péter <sp@osb.hu>
+
+* Added /proc/omnibook/version
+* Added OMNIBOOK_ prefix to MODULE_NAME and MODULE_VERSION definitions
+* Fixed bugs in lcd.c (thanks to Bernhard Kaindl <bernhard.kaindl@gmx.de>)
+* Some code tuning and cosmetic changes
+* Fixed OmniBook 4150 support
+
+2003-02-26 Soós Péter <sp@osb.hu>
+
+* Fixed kernel Oops in technology code identification
+* Some minor changes in logging
+
+2003-02-25 Soós Péter <sp@osb.hu>
+
+* Try to identify HP laptops by technology code if machine is unsupported
+* Fixed dmi identification code
+
+2003-02-14 Soós Péter <sp@osb.hu>
+
+* Added HP Pavilion ze4100 support
+* Added HP Pavilion ze4200 support
+* Fixed HP Pavilion xt155 detection
+* Added Acer Aspire 1400 series laptop support
+* Fixed APM status detection bug
+* Cleaned up dmi identification code
+* Removed "Asset Tag:" field from dmi string structure
+
+2003-01-27 Soós Péter <sp@osb.hu>
+
+* Added HP Pavilion N5430 support
+* EC functions are work even if boot parameter acpi=off is given
+* Improved error handling in externally callable functions
+* Fixed kernel integration patch
+* Removed unreliable undocking feature for OB500
+* Fixed HP Pavilion N5415 support
+* Added new format hotkeys sample files
+
+2003-01-09 Ducrot Bruno <ducrot@poupinou.org>
+
+* Added to use ACPI_EC if available
+
+2003-01-09 Soós Péter <sp@osb.hu>
+
+* Fixed reverse console blanking bug on OB5xx and OB6xxx
+* Disabled unreliable undocking feature on OB500
+
+2003-01-08 Ducrot Bruno <ducrot@poupinou.org>
+
+* Added Toshiba Satellite 3000, 3005, 1000, 1005, 1110, 1115, 1900, 1905
+ support
+
+2003-01-08 Soós Péter <sp@osb.hu>
+
+* The ectype values changed again! See the README!
+* Fixed new ectypes detection bug
+* Added OmniBook xe4400 support
+* Added LCD display turn off at console blanking on OB5xx and OB6xxx
+* Documentation fixes
+
+2003-01-07 Soós Péter <sp@osb.hu>
+
+* Fixed bit level negation bug in fan.c
+* Added turn fan on for Toshiba 3000
+* Corrected OmniBook 4150 support code
+
+2003-01-06 Soós Péter <sp@osb.hu>
+
+* Changed ectype values! See the README!
+* Fixed some bugs in obtest utility
+* Fixed second battery status bug in battery.c
+* Added textual descriptions to some functions in /proc/omnibook
+* Fix APM emulation to work when APM support is present but APM power
+ status reporting flagged broken
+* Added docking station support
+* Added fan support
+* Added module parameter: user
+* Added OmniBook xe155, xe4100 and ze4125 support
+* Fan policy moved to /proc/omnibook/fan_policy
+* Reorganized scancode emulation code for XE3 GC
+* Polling of volume buttons on XE3CG style models can be enabled/disabled
+ via /proc/omnibook/key_polling
+* Finished abstraction layer
+* Some minor changes in Rick's model detection code
+* New kernel integration code
+
+2002-12-22 Rick Richardson <rickr@mn.rr.com>
+
+* Added on and off as valid input to /proc/omnibook/lcd, to turn
+ the LCD backlight on and off.
+
+2002-12-15 Rick Richardson <rickr@mn.rr.com>
+
+* Reimplemented model detection so you only have to modify one file
+ to add a new model. features.h is now deprecated.
+* Added the Toshiba Satellite 1115/S103 to the supported models
+* Fixed bug in apmemu.c which caused /proc/apm to report the battery
+ status as critical when the battery was charging.
+
+2002-10-16 Soós Péter <sp@osb.hu>
+
+* Added HP Pavilion N5415 support
+* Corrected HP Pavilion N5441 support
+* Fix values of OB500 type machines in ec.h
+* LCD brightness support added for XE3GC and XE3GF style machines
+* Added HP OmniBook 510 FB support
+* AC adapter status monitoring is working on all machines
+* External display status monitoring is working on all machines
+* CPU temperature monitoring is working on all machines
+* __init functions gone to init.h
+* Added an abstraction layer between the low level, hardware dependent
+ functions and the applications (not yet finished). See omnibook.h for
+ details.
+
+2002-09-20 Soós Péter <sp@osb.hu>
+
+* Using save_flags()/cli() instead spinlocks in ec.c because of laptops do
+ not have more than one CPU (yet ;)). This improves performance and
+ eliminates packet loss in ppp stack
+* The previous version of XE3 GC scancode emulation was buggy: it worked only
+ when ACPI enabled. Current version is working ACPI independent way
+
+2002-09-05 Soós Péter <sp@osb.hu>
+
+* Added secondary battery support (untested, please report!)
+* Added ectype module parameter to specify the type of embedded
+ controller firmware
+* Added some OmniBook XE3 GC support code
+* Added some OmniBook 500 style embedded controller firmware support code
+ (OmniBook 5xx, 6xxx and some Pavilions)
+* Reorganized features matrix (again): the features depends on the embedded
+ controller firmware, not the model
+* Added external display status monitoring on some machine
+* Added scancode emulation on OmniBook XE3 GC
+
+2002-08-14 Soós Péter <sp@osb.hu>
+
+* Added HP OmniBook 6000 EA support (OneTouch only)
+* Added HP OmniBook 6100 EB support (OneTouch only)
+* Fixed Toshiba Satellite 3000-100 detection
+* Fixed timeout and locking bugs in ec.c
+* Added HP Pavilion Notebook ZT1141
+* Reorganized the feature matrix and parameter detection code to make easy
+ to add new features differents machine by machine
+
+2002-08-11 Soós Péter <sp@osb.hu>
+
+* Fixed removing of procfs entries
+* Fixed APM detection
+* Added kernel source integration
+* Fixed __initdata bugs
+* Handling difference between untesed and unsupported features
+
+2002-08-09 Soós Péter <sp@osb.hu>
+
+* Added Compal ACL00 laptop support
+* Updated documentation
+* Added touchpad support
+* Some bugfixes
+* /proc/apm emulation added
+
+2002-08-06 Soós Péter <sp@osb.hu>
+
+* Corrected full charged battery info
+* Added OneTouch handling via procfs
+* Added console blank handling via procfs
+* Added temperature policy handling via procfs
+* Corrected the bug in DMI code to report the serial number
+* Added module parameter support
+* Added HP Pavilion Notebook N5490, ZT1195 (and probably other Pavilions)
+
+2002-07-17 Soós Péter <sp@osb.hu>
+
+* Improved error handling
+* Some text corrections
+* Added Toshiba Satellite 3000-100 support
+* Some code tuning
+* Added omnibook prefix for variables and functions to prevent conflicts
+ with another code
+* Added /proc filesystem support
+* Added battery status monitoring
+* Added CPU temperature monitoring
+
+2002-06-03 Soós Péter <sp@osb.hu>
+
+* Some code tuning
+
+2002-05-07 Soós Péter <sp@osb.hu>
+
+* Added missing #include <linux/sched.h> to main.c
+* Some text corrections
+* Added HP OmniBook 500 FA support (OneTouch only)
+
+2002-05-06 Soós Péter <sp@osb.hu>
+
+* LCD display turn off at console blanking added
+* Code cleanup
+
+2002-05-02 Soós Péter <sp@osb.hu>
+
+* The first release of omnibook module
+* OneTouch button support
diff --git a/ubuntu/omnibook/doc/README b/ubuntu/omnibook/doc/README
new file mode 100644
index 00000000000..e8fb7cdfd97
--- /dev/null
+++ b/ubuntu/omnibook/doc/README
@@ -0,0 +1,42 @@
+===============================================================
+Kernel Support for HP OmniBooks, Pavilions and Compal laptops
+===============================================================
+
+This package is intended to provide Linux kernel support for many laptops such as:
+- HP OmniBook and Pavilion
+- Toshiba Satellite and Tecra which are not supported by the toshiba_acpi module
+- Compal ACL00
+- Many laptops manufactured by Compal Electronics, Inc as ODM
+
+Supported features depends on the exact laptop model but may include:
+- Enabling hotkey buttons
+- Console (LCD display) blanking
+- Battery status monitoring.
+- Fan and fan policy support
+- Touchpad control
+- AC Adapter status monitoring
+- External display monitors status monitoring and control
+- LCD brightness (backlight) monitoring and control
+- Docking station/port replicator status
+- CPU temperature monitoring
+- Mute LED monitoring and control
+- Wifi and Bluetooth adapters monitoring and control
+- Cooling method control
+- CPU Throttling control
+
+Useful links:
+
+Full documentation (HOWTO, Installation instructions, Supported laptops list... ):
+http://omnibook.sourceforge.net/doku.php?id=start
+
+Sourceforge project page:
+http://sourceforge.net/projects/omnibook
+
+Other links not related to the project:
+
+For HP Omnibook specific issues ou can see the OmniBook mailing list:
+http://zurich.ai.mit.edu/mailman/listinfo/omnibook
+
+or the Toshiba linux mailing list:
+http://linux.toshiba-dme.co.jp/linux/
+
diff --git a/ubuntu/omnibook/dock.c b/ubuntu/omnibook/dock.c
new file mode 100644
index 00000000000..3264f70e4c6
--- /dev/null
+++ b/ubuntu/omnibook/dock.c
@@ -0,0 +1,84 @@
+/*
+ * dock.c -- docking station/port replicator support
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+static int omnibook_dock_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+ u8 dock;
+ int retval;
+
+ if ((retval = backend_byte_read(io_op, &dock)))
+ return retval;
+
+ len += sprintf(buffer + len, "Laptop is %s\n", (dock) ? "docked" : "undocked");
+
+ return len;
+}
+
+static int omnibook_dock_write(char *buffer, struct omnibook_operation *io_op)
+{
+ int retval;
+
+ switch (*buffer) {
+ case '0':
+ retval = backend_byte_write(io_op, 0);
+ break;
+ case '1':
+ retval = backend_byte_write(io_op, 1);
+ break;
+ default:
+ retval = -EINVAL;
+ }
+
+ return retval;
+}
+
+static struct omnibook_feature dock_driver;
+
+static int __init omnibook_dock_init(struct omnibook_operation *io_op)
+{
+ /* writing is only supported on ectype 13 */
+ if(!(omnibook_ectype & TSM40))
+ dock_driver.write = NULL;
+
+ return 0;
+}
+
+static struct omnibook_tbl dock_table[] __initdata = {
+ {XE3GF, SIMPLE_BYTE(EC, XE3GF_CSPR, XE3GF_CSPR_MASK)},
+ {OB500 | OB510 | OB6000 | OB6100, SIMPLE_BYTE(EC, OB500_STA1, OB500_DCKS_MASK)},
+ {OB4150, SIMPLE_BYTE(EC, OB4150_DCID, 0)},
+ {TSM40, {SMI, SMI_GET_DOCK, SMI_SET_DOCK, 0, 0, 0}},
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature dock_driver = {
+ .name = "dock",
+ .enabled = 0,
+ .init = omnibook_dock_init,
+ .read = omnibook_dock_read,
+ .write = omnibook_dock_write,
+ .ectypes = XE3GF | OB500 | OB510 | OB6000 | OB6100 | OB4150 | TSM40,
+ .tbl = dock_table,
+};
+
+module_param_named(dock, dock_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(dock, "Use 0 to disable, 1 to enable docking station support");
+/* End of file */
diff --git a/ubuntu/omnibook/dump.c b/ubuntu/omnibook/dump.c
new file mode 100644
index 00000000000..ff959e96a8d
--- /dev/null
+++ b/ubuntu/omnibook/dump.c
@@ -0,0 +1,107 @@
+/*
+ * dump.c - Raw dump of EC register, stolen from ibm_acpi.c
+ *
+ *
+ * Copyright (C) 2004-2005 Borislav Deianov <borislav@users.sf.net>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+static u8 ecdump_regs[256];
+
+static int ecdump_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+ int i, j;
+ u8 v;
+
+ len +=
+ sprintf(buffer + len,
+ "EC " " +00 +01 +02 +03 +04 +05 +06 +07"
+ " +08 +09 +0a +0b +0c +0d +0e +0f\n");
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+
+ for (i = 0; i < 255; i += 16) {
+ len += sprintf(buffer + len, "EC 0x%02x:", i);
+ for (j = 0; j < 16; j++) {
+ io_op->read_addr = i +j;
+ if (__backend_byte_read(io_op, &v))
+ break;
+ if (v != ecdump_regs[i + j])
+ len += sprintf(buffer + len, " *%02x", v);
+ else
+ len += sprintf(buffer + len, " %02x", v);
+ ecdump_regs[i + j] = v;
+ }
+ len += sprintf(buffer + len, "\n");
+ if (j != 16)
+ break;
+ }
+
+ mutex_unlock(&io_op->backend->mutex);
+
+ /* These are way too dangerous to advertise openly... */
+#if 0
+ len +=
+ sprintf(buffer + len,
+ "commands:\t0x<offset> 0x<value>" " (<offset> is 00-ff, <value> is 00-ff)\n");
+ len +=
+ sprintf(buffer + len,
+ "commands:\t0x<offset> <value> " " (<offset> is 00-ff, <value> is 0-255)\n");
+#endif
+ return len;
+}
+
+static int ecdump_write(char *buffer, struct omnibook_operation *io_op)
+{
+
+ int i, v;
+
+ if (sscanf(buffer, "0x%x 0x%x", &i, &v) == 2) {
+ /* i and v set */
+ } else if (sscanf(buffer, "0x%x %u", &i, &v) == 2) {
+ /* i and v set */
+ } else
+ return -EINVAL;
+ if (i >= 0 && i < 256 && v >= 0 && v < 256) {
+ io_op->write_addr = i;
+ return backend_byte_write(io_op, v);
+ } else
+ return -EINVAL;
+
+ return 0;
+}
+
+static struct omnibook_tbl dump_table[] __initdata = {
+ {ALL_ECTYPES, {EC,}},
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature dump_driver = {
+ .name = "dump",
+ .enabled = 0,
+ .read = ecdump_read,
+ .write = ecdump_write,
+ .tbl = dump_table,
+};
+
+module_param_named(dump, dump_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(dump, "Use 0 to disable, 1 to enable embedded controller register dump support");
+/* End of file */
diff --git a/ubuntu/omnibook/ec.c b/ubuntu/omnibook/ec.c
new file mode 100644
index 00000000000..714ce4ac0d9
--- /dev/null
+++ b/ubuntu/omnibook/ec.c
@@ -0,0 +1,188 @@
+/*
+ * ec.c -- low level functions to access Embedded Controller,
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <linux/types.h>
+#include <linux/delay.h>
+#include <linux/sched.h>
+#include <linux/spinlock.h>
+#include <linux/ioport.h>
+
+#include <asm/io.h>
+#include "hardware.h"
+
+/*
+ * Interrupt control
+ */
+
+static DEFINE_SPINLOCK(omnibook_ec_lock);
+
+/*
+ * Registers of the embedded controller
+ */
+
+#define OMNIBOOK_EC_DATA 0x62
+#define OMNIBOOK_EC_SC 0x66
+
+/*
+ * Embedded controller status register bits
+ */
+
+#define OMNIBOOK_EC_STAT_OBF 0x01 /* Output buffer full */
+#define OMNIBOOK_EC_STAT_IBF 0x02 /* Input buffer full */
+
+
+/*
+ * Embedded controller commands
+ */
+
+#define OMNIBOOK_EC_CMD_READ 0x80
+#define OMNIBOOK_EC_CMD_WRITE 0x81
+
+/*
+ * Wait for embedded controller buffer
+ */
+
+static int omnibook_ec_wait(u8 event)
+{
+ int timeout = OMNIBOOK_TIMEOUT;
+
+ switch (event) {
+ case OMNIBOOK_EC_STAT_OBF:
+ while (!(inb(OMNIBOOK_EC_SC) & event) && timeout--)
+ mdelay(1);
+ break;
+ case OMNIBOOK_EC_STAT_IBF:
+ while ((inb(OMNIBOOK_EC_SC) & event) && timeout--)
+ mdelay(1);
+ break;
+ default:
+ return -EINVAL;
+ }
+ if (timeout > 0)
+ return 0;
+ return -ETIME;
+}
+
+/*
+ * Read from the embedded controller
+ * Decide at run-time if we can use the much cleaner ACPI EC driver instead of
+ * this implementation, this is the case if ACPI has been compiled and is not
+ * disabled.
+ */
+
+static int omnibook_ec_read(const struct omnibook_operation *io_op, u8 * data)
+{
+ int retval;
+
+#ifdef CONFIG_ACPI_EC
+ if (likely(!acpi_disabled)) {
+ retval = ec_read((u8) io_op->read_addr, data);
+ if (io_op->read_mask)
+ *data &= io_op->read_mask;
+// dprintk("ACPI EC read at %lx success %i.\n", io_op->read_addr, retval);
+ return retval;
+ }
+#endif
+ spin_lock_irq(&omnibook_ec_lock);
+ retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF);
+ if (retval)
+ goto end;
+ outb(OMNIBOOK_EC_CMD_READ, OMNIBOOK_EC_SC);
+ retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF);
+ if (retval)
+ goto end;
+ outb((u8) io_op->read_addr, OMNIBOOK_EC_DATA);
+ retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_OBF);
+ if (retval)
+ goto end;
+ *data = inb(OMNIBOOK_EC_DATA);
+ if (io_op->read_mask)
+ *data &= io_op->read_mask;
+ end:
+ spin_unlock_irq(&omnibook_ec_lock);
+// dprintk("Custom EC read at %lx success %i.\n", io_op->read_addr, retval);
+ return retval;
+}
+
+/*
+ * Write to the embedded controller:
+ * If OMNIBOOK_LEGACY is set, decide at run-time if we can use the much cleaner
+ * ACPI EC driver instead of this legacy implementation.
+ * This is the case if ACPI has been compiled and is not
+ * disabled.
+ * If OMNIBOOK_LEGACY is unset, we drop our custoim implementation
+ */
+
+static int omnibook_ec_write(const struct omnibook_operation *io_op, u8 data)
+{
+ int retval;
+
+#ifdef CONFIG_ACPI_EC
+ if (likely(!acpi_disabled)) {
+ retval = ec_write((u8) io_op->write_addr, data);
+// dprintk("ACPI EC write at %lx success %i.\n", io_op->write_addr, retval);
+ return retval;
+ }
+#endif
+
+ spin_lock_irq(&omnibook_ec_lock);
+ retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF);
+ if (retval)
+ goto end;
+ outb(OMNIBOOK_EC_CMD_WRITE, OMNIBOOK_EC_SC);
+ retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF);
+ if (retval)
+ goto end;
+ outb((u8) io_op->write_addr, OMNIBOOK_EC_DATA);
+ retval = omnibook_ec_wait(OMNIBOOK_EC_STAT_IBF);
+ if (retval)
+ goto end;
+ outb(data, OMNIBOOK_EC_DATA);
+ end:
+ spin_unlock_irq(&omnibook_ec_lock);
+// dprintk("Custom EC write at %lx success %i.\n", io_op->write_addr, retval);
+ return retval;
+}
+
+static int omnibook_ec_display(const struct omnibook_operation *io_op, unsigned int *state)
+{
+ int retval;
+ u8 raw_state;
+
+ retval = __backend_byte_read(io_op, &raw_state);
+ if (retval < 0)
+ return retval;
+
+ *state = !!(raw_state) & DISPLAY_CRT_DET;
+
+ return DISPLAY_CRT_DET;
+}
+
+/*
+ * Backend interface declarations
+ */
+
+struct omnibook_backend ec_backend = {
+ .name = "ec",
+ .byte_read = omnibook_ec_read,
+ .byte_write = omnibook_ec_write,
+ .display_get = omnibook_ec_display,
+};
+
+/* End of file */
diff --git a/ubuntu/omnibook/fan.c b/ubuntu/omnibook/fan.c
new file mode 100644
index 00000000000..d8129935dee
--- /dev/null
+++ b/ubuntu/omnibook/fan.c
@@ -0,0 +1,183 @@
+/*
+ * fan.c -- fan status/control
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <linux/delay.h>
+#include <asm/io.h>
+#include "hardware.h"
+
+static const struct omnibook_operation ctmp_io_op = { EC, XE3GF_CTMP, 0, 0, 0, 0 };
+static const struct omnibook_operation fot_io_op = { EC, XE3GF_FOT, XE3GF_FOT, 0, 0, 0 };
+
+static int omnibook_get_fan(struct omnibook_operation *io_op)
+{
+ u8 fan;
+ int retval;
+
+ if ((retval = backend_byte_read(io_op, &fan)))
+ return retval;
+
+ /*
+ * For most models the reading is a bool
+ * It as to be inverted on all but OB6000|OB6100|OB4150|AMILOD
+ * TSP10|XE3GF|TSX205 return an integer
+ */
+
+ if (omnibook_ectype & (TSP10 | XE3GF | TSX205))
+ retval = fan;
+ else if (omnibook_ectype & (OB6000 | OB6100 | OB4150 | AMILOD))
+ retval = !!fan;
+ else
+ retval = !fan;
+
+ return retval;
+}
+
+static int omnibook_fan_on(struct omnibook_operation *io_op)
+{
+ return omnibook_apply_write_mask(io_op, 1);
+}
+
+static int omnibook_fan_off(struct omnibook_operation *io_op)
+{
+ int i, retval = 0;
+
+ if (!(omnibook_ectype & (XE3GF | TSP10 | TSX205))) {
+ retval = omnibook_apply_write_mask(io_op, 0);
+ return retval;
+ } else {
+ /*
+ * Special handling for XE3GF & TSP10
+ */
+ u8 fot, temp, fan;
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+
+ retval = __backend_byte_read(io_op, &fan);
+
+ /* error or fan is already off */
+ if (retval || !fan)
+ goto out;
+
+ /* now we set FOT to current temp, then reset to initial value */
+ if ((retval = __backend_byte_read(&fot_io_op, &fot)))
+ goto out;
+ if ((retval = __backend_byte_read(&ctmp_io_op, &temp)))
+ goto out;
+
+ /* Wait for no longer than 250ms (this is arbitrary). */
+ for (i = 0; i < 250; i++) {
+ __backend_byte_write(&fot_io_op, temp);
+ mdelay(1);
+ __backend_byte_read(io_op, &fan);
+ if (!fan) /* Fan is off */
+ break;
+ }
+ __backend_byte_write(&fot_io_op, fot);
+
+ if(i == 250 ) {
+ printk(O_ERR "Attempt to switch off the fan failed.\n");
+ retval = -EIO;
+ }
+
+ out:
+ mutex_unlock(&io_op->backend->mutex);
+ }
+
+
+ return retval;
+}
+
+static int omnibook_fan_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int fan;
+ int len = 0;
+ char *str;
+
+ fan = omnibook_get_fan(io_op);
+ if (fan < 0)
+ return fan;
+ str = (fan) ? "on" : "off";
+
+ if (fan > 1)
+ len += sprintf(buffer + len, "Fan is %s (level %d)\n", str, fan);
+ else
+ len += sprintf(buffer + len, "Fan is %s\n", str);
+
+ return len;
+}
+
+static int omnibook_fan_write(char *buffer, struct omnibook_operation *io_op)
+{
+ int retval;
+
+ switch (*buffer) {
+ case '0':
+ retval = omnibook_fan_off(io_op);
+ break;
+ case '1':
+ retval = omnibook_fan_on(io_op);
+ break;
+ default:
+ retval = -EINVAL;
+ }
+ return retval;
+}
+
+static struct omnibook_feature fan_driver;
+
+static int __init omnibook_fan_init(struct omnibook_operation *io_op)
+{
+ /*
+ * OB4150
+ * XE2
+ * AMILOD
+ * They only support fan reading
+ */
+ if (omnibook_ectype & (OB4150 | XE2 | AMILOD))
+ fan_driver.write = NULL;
+ return 0;
+}
+
+static struct omnibook_tbl fan_table[] __initdata = {
+ {XE3GF | TSP10 | TSM70 | TSX205, {EC, XE3GF_FSRD, XE3GF_FSRD, 0, XE3GF_FAN_ON_MASK, 0}},
+ {OB500,
+ {PIO, OB500_GPO1, OB500_GPO1, OB500_FAN_OFF_MASK, -OB500_FAN_ON_MASK, OB500_FAN_OFF_MASK}},
+ {OB510,
+ {PIO, OB510_GPIO, OB510_GPIO, OB510_FAN_OFF_MASK, -OB510_FAN_ON_MASK, OB510_FAN_OFF_MASK}},
+ {OB6000 | OB6100,
+ {EC, OB6000_STA1, OB6000_STA1, OB6000_FAN_MASK, OB6000_FAN_MASK, -OB6000_FAN_MASK}},
+ {OB4150 | AMILOD, {EC, OB4150_STA1, 0, OB4150_FAN_MASK, 0, 0}},
+ {XE2, {PIO, OB500_GPO1, 0, XE2_FAN_MASK, 0, 0}},
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature fan_driver = {
+ .name = "fan",
+ .enabled = 1,
+ .read = omnibook_fan_read,
+ .write = omnibook_fan_write,
+ .init = omnibook_fan_init,
+ .ectypes = XE3GF | OB500 | OB510 | OB6000 | OB6100 | OB4150 | XE2 | AMILOD | TSP10 | TSX205,
+ .tbl = fan_table,
+};
+
+module_param_named(fan, fan_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(fan, "Use 0 to disable, 1 to enable fan status monitor and control");
+/* End of file */
diff --git a/ubuntu/omnibook/fan_policy.c b/ubuntu/omnibook/fan_policy.c
new file mode 100644
index 00000000000..67915ffedbb
--- /dev/null
+++ b/ubuntu/omnibook/fan_policy.c
@@ -0,0 +1,188 @@
+/*
+ * fan_policy.c -- fan policy support
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <linux/ctype.h>
+#include "hardware.h"
+
+/*
+ * Default temperature limits.
+ * Danger! You may overheat your CPU!
+ * Do not change these values unless you exactly know what you do.
+ */
+
+#define OMNIBOOK_FAN_LEVELS 8
+#define OMNIBOOK_FAN_MIN 25 /* Minimal value of fan off temperature */
+#define OMNIBOOK_FOT_MAX 75 /* Maximal value of fan off temperature */
+#define OMNIBOOK_FAN_MAX 95 /* Maximal value of fan on temperature */
+#define OMNIBOOK_FOT_DEFAULT 60 /* Default value of fan off temperature */
+#define OMNIBOOK_FAN1_DEFAULT 75 /* Default value of fan on temperature */
+#define OMNIBOOK_FAN2_DEFAULT 85 /* Default value of fan level 2 temperature */
+#define OMNIBOOK_FAN3_DEFAULT 90 /* Default value of fan level 3 temperature */
+#define OMNIBOOK_FAN4_DEFAULT 95 /* Default value of fan level 4 temperature */
+#define OMNIBOOK_FAN5_DEFAULT 95 /* Default value of fan level 5 temperature */
+#define OMNIBOOK_FAN6_DEFAULT 95 /* Default value of fan level 6 temperature */
+#define OMNIBOOK_FAN7_DEFAULT 95 /* Default value of fan level 7 temperature */
+
+static const u8 fan_defaults[] = {
+ OMNIBOOK_FOT_DEFAULT,
+ OMNIBOOK_FAN1_DEFAULT,
+ OMNIBOOK_FAN2_DEFAULT,
+ OMNIBOOK_FAN3_DEFAULT,
+ OMNIBOOK_FAN4_DEFAULT,
+ OMNIBOOK_FAN5_DEFAULT,
+ OMNIBOOK_FAN6_DEFAULT,
+ OMNIBOOK_FAN7_DEFAULT,
+};
+
+static int omnibook_get_fan_policy(struct omnibook_operation *io_op, u8 *fan_policy)
+{
+ int retval ;
+ int i;
+
+ for (i = 0; i < OMNIBOOK_FAN_LEVELS; i++) {
+ io_op->read_addr = XE3GF_FOT + i;
+ if ((retval = __backend_byte_read(io_op, &fan_policy[i])))
+ return retval;
+ }
+
+ return 0;
+}
+
+static int omnibook_set_fan_policy(struct omnibook_operation *io_op, const u8 *fan_policy)
+{
+ int retval;
+ int i;
+
+ if (fan_policy[0] > OMNIBOOK_FOT_MAX)
+ return -EINVAL;
+
+ for (i = 0; i < OMNIBOOK_FAN_LEVELS; i++) {
+ if ((fan_policy[i] > fan_policy[i + 1])
+ || (fan_policy[i] < OMNIBOOK_FAN_MIN)
+ || (fan_policy[i] > OMNIBOOK_FAN_MAX))
+ return -EINVAL;
+ }
+ for (i = 0; i < OMNIBOOK_FAN_LEVELS; i++) {
+ io_op->write_addr = XE3GF_FOT + i;
+ if ((retval = __backend_byte_write(io_op, fan_policy[i])))
+ return retval;
+ }
+
+ return 0;
+}
+
+static int omnibook_fan_policy_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int retval;
+ int len = 0;
+ u8 i;
+ u8 fan_policy[OMNIBOOK_FAN_LEVELS];
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+
+ retval = omnibook_get_fan_policy(io_op, &fan_policy[0]);
+
+ mutex_unlock(&io_op->backend->mutex);
+
+ if(retval)
+ return retval;
+
+ len += sprintf(buffer + len, "Fan off temperature: %2d C\n", fan_policy[0]);
+ len += sprintf(buffer + len, "Fan on temperature: %2d C\n", fan_policy[1]);
+ for (i = 2; i < OMNIBOOK_FAN_LEVELS; i++) {
+ len +=
+ sprintf(buffer + len, "Fan level %1d temperature: %2d C\n", i,
+ fan_policy[i]);
+ }
+ len += sprintf(buffer + len, "Minimal temperature to set: %2d C\n", OMNIBOOK_FAN_MIN);
+ len += sprintf(buffer + len, "Maximal temperature to set: %2d C\n", OMNIBOOK_FAN_MAX);
+
+ return len;
+}
+
+static int omnibook_fan_policy_write(char *buffer, struct omnibook_operation *io_op)
+{
+ int n = 0;
+ char *b;
+ char *endp;
+ int retval;
+ int temp;
+ u8 fan_policy[OMNIBOOK_FAN_LEVELS];
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+
+ if ((retval = omnibook_get_fan_policy(io_op, &fan_policy[0])))
+ goto out;
+
+ /*
+ * Could also be done much simpler using sscanf(,"%u %u ...
+ * but this would hardcode OMNIBOOK_FAN_LEVELS.
+ * The parsed format is "%u " repeated OMNIBOOK_FAN_LEVELS+1 times
+ */
+
+ b = buffer;
+ do {
+ dprintk("n=[%i] b=[%s]\n", n, b);
+ if (n > OMNIBOOK_FAN_LEVELS) {
+ retval = -EINVAL;
+ goto out;
+ }
+ if (!isspace(*b)) {
+ temp = simple_strtoul(b, &endp, 10);
+ if (endp != b) { /* there was a match */
+ fan_policy[n++] = temp;
+ b = endp;
+ } else {
+ retval = -EINVAL;
+ goto out;
+ }
+ } else
+ b++;
+ } while ((*b != '\0') && (*b != '\n'));
+
+ /* A zero value set the defaults */
+ if ((fan_policy[0] == 0) && (n == 1))
+ retval = omnibook_set_fan_policy(io_op, &fan_defaults[0]);
+ else
+ retval = omnibook_set_fan_policy(io_op, &fan_policy[0]);
+
+ out:
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+static struct omnibook_tbl fan_policy_table[] __initdata = {
+ {XE3GF, {EC,}},
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature fan_policy_driver = {
+ .name = "fan_policy",
+ .enabled = 1,
+ .read = omnibook_fan_policy_read,
+ .write = omnibook_fan_policy_write,
+ .ectypes = XE3GF,
+ .tbl = fan_policy_table,
+};
+
+module_param_named(fan_policy, fan_policy_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(fan_policy, "Use 0 to disable, 1 to enable fan control policy support");
+/* End of file */
diff --git a/ubuntu/omnibook/hardware.h b/ubuntu/omnibook/hardware.h
new file mode 100644
index 00000000000..aa12a4363f8
--- /dev/null
+++ b/ubuntu/omnibook/hardware.h
@@ -0,0 +1,582 @@
+/*
+ * hardware.h -- low level definitions to access Embedded Controller and co.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006-2007
+ */
+
+#include <linux/acpi.h>
+#include "compat.h"
+
+/*
+ * Quite ugly:
+ * on_mask and off_maks are also used to store the i8042 data for kbc backend.
+ * an union seemed overkilled
+ */
+
+struct omnibook_backend;
+
+struct omnibook_operation {
+ struct omnibook_backend *backend;
+ unsigned long read_addr; /* address for data reading */
+ unsigned long write_addr; /* address for data writing */
+ u8 read_mask; /* read mask */
+ int on_mask; /* mask to set (pos value) or unset (neg value) to put feature in on state */
+ int off_mask; /* mask to set (pos value) or unset (neg value) to put feature in off state */
+};
+
+#define COMMAND(backend,data_on,data_off) { backend, 0, 0, 0, data_on, data_off }
+#define SIMPLE_BYTE(backend,addr,mask) { backend, addr, addr, mask, 0, 0 }
+
+struct omnibook_tbl {
+ enum omnibook_ectype_t ectypes;
+ struct omnibook_operation io_op;
+};
+
+/*
+ * Backend interface definition
+ */
+
+struct omnibook_backend {
+ const char *name; /* backend name */
+ struct mutex mutex; /* serializes all access to backend functions */
+ const unsigned int hotkeys_read_cap; /* hotkey probing mask */
+ const unsigned int hotkeys_write_cap; /* hotkey setting mask */
+
+ /* Public data fields, access with mutex held */
+ unsigned int hotkeys_state; /* saved hotkeys state */
+ unsigned int touchpad_state; /* saved touchpad state */
+ unsigned int muteled_state; /* saved muteled state */
+ unsigned int cooling_state; /* saved cooling method state */
+
+ /* Public function pointers */
+ int (*init) (const struct omnibook_operation *);
+ void (*exit) (const struct omnibook_operation *);
+ int (*byte_read) (const struct omnibook_operation *, u8 *);
+ int (*byte_write) (const struct omnibook_operation *, u8);
+ int (*aerial_get) (const struct omnibook_operation *, unsigned int *);
+ int (*aerial_set) (const struct omnibook_operation *, unsigned int);
+ int (*hotkeys_get) (const struct omnibook_operation *, unsigned int *);
+ int (*hotkeys_set) (const struct omnibook_operation *, unsigned int);
+ int (*display_get) (const struct omnibook_operation *, unsigned int *);
+ int (*display_set) (const struct omnibook_operation *, unsigned int);
+ int (*throttle_get) (const struct omnibook_operation *, unsigned int *);
+ int (*throttle_set) (const struct omnibook_operation *, unsigned int);
+
+ /* Private fields, never to be accessed outside backend code */
+ struct kref kref; /* Reference counter of this backend */
+ void *data; /* private data pointer */
+ int already_failed; /* Backend init already failed at least once */
+};
+
+extern struct omnibook_backend kbc_backend;
+extern struct omnibook_backend pio_backend;
+extern struct omnibook_backend ec_backend;
+extern struct omnibook_backend acpi_backend;
+extern struct omnibook_backend nbsmi_backend;
+extern struct omnibook_backend compal_backend;
+
+#define KBC &kbc_backend
+#define PIO &pio_backend
+#define EC &ec_backend
+#define ACPI &acpi_backend
+#define SMI &nbsmi_backend
+#define CDI &compal_backend
+
+int __omnibook_apply_write_mask(const struct omnibook_operation *io_op, int toggle);
+int __omnibook_toggle(const struct omnibook_operation *io_op, int toggle);
+
+/*
+ * Lock helper functions. Defines locking and __prefixed non locking variants.
+ */
+
+#define helper_func(func) \
+static inline int backend_##func##_get(const struct omnibook_operation *io_op, unsigned int *data) \
+{ \
+ int retval; \
+ if(mutex_lock_interruptible(&io_op->backend->mutex)) \
+ return -ERESTARTSYS; \
+ retval = io_op->backend->func##_get(io_op, data); \
+ mutex_unlock(&io_op->backend->mutex); \
+ return retval; \
+} \
+static inline int backend_##func##_set(const struct omnibook_operation *io_op, unsigned int data) \
+{ \
+ int retval; \
+ if(mutex_lock_interruptible(&io_op->backend->mutex)) \
+ return -ERESTARTSYS; \
+ retval = io_op->backend->func##_set(io_op, data); \
+ mutex_unlock(&io_op->backend->mutex); \
+ return retval; \
+}\
+static inline int __backend_##func##_get(const struct omnibook_operation *io_op, unsigned int *data) \
+{ \
+ int retval; \
+ WARN_ON(!mutex_is_locked(&io_op->backend->mutex)); \
+ retval = io_op->backend->func##_get(io_op, data); \
+ return retval; \
+} \
+static inline int __backend_##func##_set(const struct omnibook_operation *io_op, unsigned int data) \
+{ \
+ int retval; \
+ WARN_ON(!mutex_is_locked(&io_op->backend->mutex)); \
+ retval = io_op->backend->func##_set(io_op, data); \
+ return retval; \
+}
+
+helper_func(aerial)
+helper_func(hotkeys)
+helper_func(display)
+helper_func(throttle)
+
+static inline int backend_byte_read(const struct omnibook_operation *io_op, u8 *data)
+{
+ int retval;
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+ retval = io_op->backend->byte_read(io_op, data);
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+static inline int backend_byte_write(const struct omnibook_operation *io_op, u8 data)
+{
+ int retval;
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+ retval = io_op->backend->byte_write(io_op, data);
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+static inline int __backend_byte_read(const struct omnibook_operation *io_op, u8 *data)
+{
+ int retval;
+ WARN_ON(!mutex_is_locked(&io_op->backend->mutex));
+ retval = io_op->backend->byte_read(io_op, data);
+ return retval;
+}
+
+static inline int __backend_byte_write(const struct omnibook_operation *io_op, u8 data)
+{
+ int retval;
+ WARN_ON(!mutex_is_locked(&io_op->backend->mutex));
+ retval = io_op->backend->byte_write(io_op, data);
+ return retval;
+}
+
+static inline int omnibook_apply_write_mask(const struct omnibook_operation *io_op, int toggle)
+{
+ int retval;
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+ retval = __omnibook_apply_write_mask(io_op, toggle);
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+static inline int omnibook_toggle(const struct omnibook_operation *io_op, int toggle)
+{
+ int retval;
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+ retval = __omnibook_toggle(io_op, toggle);
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+/*
+ * Timeout in ms for sending to controller
+ */
+
+#define OMNIBOOK_TIMEOUT 250
+
+
+/*
+ * Embedded controller adresses
+ */
+
+#define XE3GF_CHGM 0x90 /* , 16 bit */
+#define XE3GF_CHGS 0x92 /* , 16 bit */
+#define XE3GF_CHGC 0x94 /* Current charge of board, 16 bit */
+#define XE3GF_CHGV 0x96 /* Current voltage, 16 bit */
+#define XE3GF_CHGA 0x98 /* Current intensity, 16 bit */
+#define XE3GF_BAL 0x9A /* Battery present status */
+#define XE3GF_STA1 0x9C /* Various status bits */
+#define XE3GF_CSPR 0xA1 /* Port replicator status, 1 bit */
+#define XE3GF_ADP 0xA3 /* AC acapter status, 1 bit */
+#define XE3GF_FOT 0xA5 /* Fan off temperature, 8 bit */
+#define XE3GF_FSD1 0xA6 /* Fan on temperature, 8 bit */
+#define XE3GF_FSD2 0xA7 /* Fan level 2 temperature, 8 bit */
+#define XE3GF_FSD3 0xA8 /* Fan level 3 temperature, 8 bit */
+#define XE3GF_FSD4 0xA9 /* Fan level 4 temperature, 8 bit */
+#define XE3GF_FSD5 0xAA /* Fan level 5 temperature, 8 bit */
+#define XE3GF_FSD6 0xAB /* Fan level 6 temperature, 8 bit */
+#define XE3GF_FSD7 0xAC /* Fan level 7 temperature, 8 bit */
+#define XE3GF_FSRD 0xAD /* Fan status, 8 bit */
+#define XE3GF_CTMP 0xB0 /* CPU tempetature, 8 bit */
+#define XE3GF_BRTS 0xB9 /* LCD brightness, 4 bit */
+#define XE3GF_BTY0 0xC0 /* Battery 0 type, 1 bit */
+#define XE3GF_BST0 0xC1 /* Battery 0 status, 3 bit */
+#define XE3GF_BRC0 0xC2 /* Battery 0 remaining capacity, 16 bit */
+#define XE3GF_BSN0 0xC4 /* Battery 0 serial number 16 bit */
+#define XE3GF_BPV0 0xC6 /* Battery 0 present voltage, 16 bit */
+#define XE3GF_BDV0 0xC8 /* Battery 0 design voltage 16 bit */
+#define XE3GF_BDC0 0xCA /* Battery 0 design capacity 16 bit */
+#define XE3GF_BFC0 0xCC /* Battery 0 last full capacity 16 bit */
+#define XE3GF_GAU0 0xCE /* Battery 0 gauge, 8 bit */
+#define XE3GF_BTY1 0xD0 /* Battery 1 type, 1 bit */
+#define XE3GF_BST1 0xD1 /* Battery 1 status, 3 bit */
+#define XE3GF_BRC1 0xD2 /* Battery 1 remaining capacity, 16 bit */
+#define XE3GF_BSN1 0xD4 /* Battery 1 serial number, 16 bit */
+#define XE3GF_BPV1 0xD6 /* Battery 1 present voltage, 16 bit */
+#define XE3GF_BDV1 0xD8 /* Battery 1 design voltage 16 bit */
+#define XE3GF_BDC1 0xDA /* Battery 1 design capacity 16 bit */
+#define XE3GF_BFC1 0xDC /* Battery 1 last full capacity 16 bit */
+#define XE3GF_GAU1 0xDE /* Battery 1 gauge, 8 bit */
+
+/*
+ * Bitmasks for sub byte values
+ */
+
+#define XE3GF_SHDD_MASK 0x40 /* External display status */
+#define XE3GF_CSPR_MASK 0x01 /* Port replicator status */
+#define XE3GF_ADP_MASK 0x20 /* AC acapter status */
+#define XE3GF_BAL0_MASK 0x01 /* Battery 0 present */
+#define XE3GF_BAL1_MASK 0x02 /* Battery 1 present */
+#define XE3GF_BMF_MASK 0x70 /* Model code */
+#define XE3GF_BTY_MASK 0x80 /* Type: Ni-MH or Li-Ion */
+#define XE3GF_BST_MASK_DSC 0x01 /* Discarging */
+#define XE3GF_BST_MASK_CHR 0x02 /* Charging */
+#define XE3GF_BST_MASK_CRT 0x04 /* Critical */
+#define XE3GF_FSRD_MASK_S1 0x01 /* Fan level 1 */
+#define XE3GF_FSRD_MASK_S2 0x02 /* Fan level 2 */
+#define XE3GF_FSRD_MASK_S3 0x04 /* Fan level 3 */
+#define XE3GF_FSRD_MASK_S4 0x08 /* Fan level 4 */
+#define XE3GF_FSRD_MASK_S5 0x10 /* Fan level 5 */
+#define XE3GF_FSRD_MASK_S6 0x20 /* Fan level 6 */
+#define XE3GF_FSRD_MASK_S7 0x40 /* Fan level 7 */
+#define XE3GF_BRTS_MASK 0x0F /* LCD brightness */
+#define XE3GF_FAN_ON_MASK 0x02 /* Fan on */
+
+/*
+ * OmniBook XE3 GC values
+ */
+
+#define XE3GC_CTMP 0x28 /* CPU tempetature, 8 bit */
+#define XE3GC_STA1 0x30 /* Various status bits */
+#define XE3GC_Q0A 0x31 /* Various status bits */
+#define XE3GC_CCUR 0x38 /* Current charge of board, 16 bit ? */
+#define XE3GC_CVOL 0x3A /* Current voltage, 16 bit ? */
+#define XE3GC_CARM 0x3C /* Current intensity, 16 bit ? */
+#define XE3GC_BAT 0x3E /* Battery present status */
+#define XE3GC_BST0 0x40 /* Battery 0 status, 3 bit */
+#define XE3GC_BPR0 0x41 /* Battery 0 present rate, 16 bit ? */
+#define XE3GC_BRC0 0x43 /* Battery 0 remaining capacity, 16 bit */
+#define XE3GC_BPV0 0x45 /* Battery 0 present voltage, 16 bit */
+#define XE3GC_BDV0 0x47 /* Battery 0 design voltage 16 bit */
+#define XE3GC_BDC0 0x49 /* Battery 0 design capacity 16 bit */
+#define XE3GC_BTY0 0x4A /* Battery 0 type, 1 bit ? */
+#define XE3GC_BTP0 0x4B /* Battery 0 ?, 1 bit */
+#define XE3GC_BSN0 0x4C /* Battery 0 serial number, 8 bit ? */
+#define XE3GC_BMF0 0x4D /* Battery 0 ?,8 bit */
+#define XE3GC_BST1 0x50 /* Battery 1 status, 3 bit */
+#define XE3GC_BPR1 0x51 /* Battery 1 present rate, 16 bit ? */
+#define XE3GC_BRC1 0x53 /* Battery 1 remaining capacity, 16 bit */
+#define XE3GC_BPV1 0x55 /* Battery 1 present voltage, 16 bit */
+#define XE3GC_BDV1 0x57 /* Battery 1 design voltage 16 bit */
+#define XE3GC_BDC1 0x59 /* Battery 1 design capacity 16 bit */
+#define XE3GC_BTY1 0x5A /* Battery 1 type, 1 bit ? */
+#define XE3GC_BTP1 0x5B /* Battery 1 ?, 1 bit */
+#define XE3GC_BSN1 0x5C /* Battery 1 serial number, 8 bit ? */
+#define XE3GC_BMF1 0x5D /* Battery 1 ?,8 bit */
+#define XE3GC_STA2 0x61 /* Various status bits */
+#define XE3GC_BTVL 0x6A /* LCD brightness, 4 bit */
+
+/*
+ * Bitmasks for sub byte values
+ */
+
+#define XE3GC_ADP_MASK 0x40 /* AC acapter status */
+#define XE3GC_BAT0_MASK 0x01 /* Battery 0 present */
+#define XE3GC_BAT1_MASK 0x02 /* Battery 1 present */
+#define XE3GC_BTY_MASK 0x01 /* Type: Ni-MH or Li-Ion */
+#define XE3GC_BST_MASK_DSC 0x01 /* Discarging */
+#define XE3GC_BST_MASK_CHR 0x02 /* Charging */
+#define XE3GC_BST_MASK_CRT 0x04 /* Critical */
+#define XE3GC_CRTI_MASK 0x04 /* External display status */
+#define XE3GC_SLPB_MASK 0x01 /* Sleep button pressed */
+#define XE3GC_F5_MASK 0x02 /* Fn-F5 - LCD/CRT switch pressed */
+#define XE3GC_VOLD_MASK 0x04 /* Fn-down arrow or Volume down pressed */
+#define XE3GC_VOLU_MASK 0x08 /* Fn-up arrow or Volume up pressed */
+#define XE3GC_MUTE_MASK 0x10 /* Fn+F7 - Volume mute pressed */
+#define XE3GC_CNTR_MASK 0x20 /* Fn+F3/Fn+F4 - Contrast up or down pressed */
+#define XE3GC_BRGT_MASK 0x40 /* Fn+F1/Fn+F2 - Brightness up or down pressed */
+#define XE3GC_BTVL_MASK 0x0F /* LCD brightness */
+
+/*
+ * Toshiba Satellite A105 values and mask
+ */
+
+#define A105_BNDT 0xA3 /* LCD brightness */
+#define A105_BNDT_MASK 0x0F
+
+/*
+ * Fujitsu Amilo D values
+ */
+
+#define AMILOD_TMP 0x28 /* CPU tempetature, 8 bit */
+#define AMILOD_STA1 0x30 /* Various status bits */
+#define AMILOD_BAT 0x3E /* Battery present status */
+#define AMILOD_BDC0 0x40 /* Battery 0 design capacity 16 bit */
+#define AMILOD_BDV0 0x42 /* Battery 0 design voltage 16 bit */
+#define AMILOD_BTY0 0x44 /* Battery 0 type, 1 bit ? */
+#define AMILOD_BST0 0x45 /* Battery 0 status, 3 bit */
+#define AMILOD_BPR0 0x46 /* Battery 0 present rate, 16 bit ? */
+#define AMILOD_BRC0 0x48 /* Battery 0 remaining capacity, 16 bit */
+#define AMILOD_BPV0 0x4A /* Battery 0 present voltage, 16 bit */
+#define AMILOD_BTP0 0x4C /* Battery 0 ?, 1 bit */
+#define AMILOD_BDC1 0x50 /* Battery 1 design capacity 16 bit */
+#define AMILOD_BDV1 0x52 /* Battery 1 design voltage 16 bit */
+#define AMILOD_BTY1 0x54 /* Battery 1 type, 1 bit ? */
+#define AMILOD_BST1 0x55 /* Battery 1 status, 3 bit */
+#define AMILOD_BPR1 0x56 /* Battery 1 present rate, 16 bit ? */
+#define AMILOD_BRC1 0x58 /* Battery 1 remaining capacity, 16 bit */
+#define AMILOD_BPV1 0x5A /* Battery 1 present voltage, 16 bit */
+#define AMILOD_BTP1 0x5C /* Battery 1 ?, 1 bit */
+#define AMILOD_CBRG 0x6F /* LCD brightness, 4 bit */
+
+/*
+ * Bitmasks for sub byte values
+ */
+
+#define AMILOD_ADP_MASK 0x40 /* AC acapter status */
+#define AMILOD_BAT0_MASK 0x01 /* Battery 0 present */
+#define AMILOD_BAT1_MASK 0x02 /* Battery 1 present */
+#define AMILOD_BTY_MASK 0x01 /* Type: Ni-MH or Li-Ion */
+#define AMILOD_BST_MASK_DSC 0x01 /* Discarging */
+#define AMILOD_BST_MASK_CHR 0x02 /* Charging */
+#define AMILOD_BST_MASK_CRT 0x04 /* Critical */
+#define AMILOD_CBRG_MASK 0x0F /* LCD brightness */
+
+/*
+ * OmniBook 500, 510, 6000, 6100, XE2 values
+ */
+
+#define OB500_STA1 0x44 /* Various status bits */
+#define OB500_STA2 0x50 /* Various status bits */
+#define OB500_CTMP 0x55 /* CPU tempetature, 8 bit */
+#define OB500_BT1I 0x58 /* Battery 1 ? 16 bit */
+#define OB500_BT1C 0x5A /* Battery 1 remaining capacity 16 bit ? */
+#define OB500_BT1V 0x5C /* Battery 1 present voltage 16 bit ? */
+#define OB500_BT1S 0x5E /* Battery 1 status 3 bit ? */
+#define OB500_BT2I 0x6A /* Battery 2 ? 16 bit */
+#define OB500_BT2C 0x6C /* Battery 2 remaining capacity 16 bit ? */
+#define OB500_BT2V 0x6E /* Battery 2 present voltage 16 bit ? */
+#define OB500_BT2S 0x70 /* Battery 2 status 3 bit ? */
+#define OB500_BT3I 0x5F /* Battery 3 ? 16 bit */
+#define OB500_BT3C 0x61 /* Battery 3 remaining capacity 16 bit ? */
+#define OB500_BT3V 0x63 /* Battery 3 present voltage 16 bit ? */
+#define OB500_BT3S 0x65 /* Battery 3 status 3 bit ? */
+
+#define OB6000_STA1 0x77 /* Various status bits */
+
+#define XE2_STA1 0x50 /* Various status bits */
+
+/*
+ * Bitmasks for sub byte values
+ */
+
+#define OB500_LIDS_MASK 0x01 /* LID status */
+#define OB500_CRTS_MASK 0x20 /* External display status */
+#define OB500_SLPS_MASK 0x40 /* Sleep button status */
+#define OB500_DCKS_MASK 0x80 /* Docking status */
+#define OB500_ADP_MASK 0x02 /* AC acapter status */
+#define OB500_BST_MASK_DSC 0x01 /* Discarging */
+#define OB500_BST_MASK_CHR 0x02 /* Charging */
+#define OB500_BST_MASK_CRT 0x04 /* Critical */
+
+#define OB6000_FAN_MASK 0x10 /* Fan status */
+
+#define XE2_ADP_MASK 0x02 /* AC acapter status */
+
+/*
+ * OmniBook 4150
+ */
+
+#define OB4150_TMP 0x28 /* CPU tempetature, 8 bit */
+#define OB4150_STA1 0x2E /* Various status bits */
+#define OB4150_STA2 0x2F /* Various status bits */
+#define OB4150_ADP 0x30 /* AC acapter status, 1 bit */
+#define OB4150_DCID 0x2C /* Port replicator */
+
+/*
+ * Bitmasks for sub byte values
+ */
+
+#define OB4150_FAN_MASK 0x01 /* Fan status */
+#define OB4150_ADP_MASK 0x40 /* AC acapter status */
+#define OB4150_CRST_MASK 0x20 /* External display status */
+
+/*
+ * Keyboard controller command for some laptop functions
+ */
+
+#define OMNIBOOK_KBC_CONTROL_CMD 0x59
+
+/*
+ * Keyboard controller command parameters for functions available via kbc
+ */
+
+#define OMNIBOOK_KBC_CMD_ONETOUCH_ENABLE 0x90 /* Enables OneTouch buttons */
+#define OMNIBOOK_KBC_CMD_ONETOUCH_DISABLE 0x91 /* Disables OneTouch buttons */
+#define OMNIBOOK_KBC_CMD_TOUCHPAD_ENABLE 0xAA /* Enables touchpad */
+#define OMNIBOOK_KBC_CMD_TOUCHPAD_DISABLE 0xA9 /* Disables touchpad */
+#define OMNIBOOK_KBC_CMD_LCD_ON 0xE1 /* Turns LCD display on */
+#define OMNIBOOK_KBC_CMD_LCD_OFF 0xE2 /* Turns LCD display off */
+#define OMNIBOOK_KBC_CMD_MUTELED_ON 0x94 /* Turns (xe4500) Mute LED on */
+#define OMNIBOOK_KBC_CMD_MUTELED_OFF 0x95 /* Turns (xe4500) Mute LED off */
+#define OMNIBOOK_KBC_CMD_AC_POWER_ENABLE 0xC2 /* Enable AC power */
+#define OMNIBOOK_KBC_CMD_AC_POWER_DISABLE 0xC1 /* Disable AC power */
+
+/*
+ * Other I/O ports
+ */
+
+#define ACL00_AC_STAT 0x11B9 /* AC adapter status on ACL00 */
+#define ACL00_AC_MASK 0x04 /* Bitmask for AC adapter status on ACL00 */
+#define TOSH3K_AC_STAT 0x102D /* AC adapter status on Toshiba 3000 */
+#define TOSH3K_AC_MASK 0x08 /* Bitmask for AC adapter status on Toshiba 3000 */
+#define XE3GF_AC_STAT 0x11B9 /* AC adapter status on XE3 GF */
+#define XE3GF_AC_MASK 0x04 /* Bitmask for AC adapter status on XE3 GF */
+#define XE3GF_LID_STAT 0x11AD /* LID switch status on XE3 GF */
+#define XE3GF_LID_MASK 0x20 /* Bitmask for LID switch status on XE3 GF */
+#define XE3GC_SMIC 0xFE00
+
+#define OB500_GPO1 0x8034 /* Fan control */
+#define OB510_GPO2 0x11B9 /* LCD backlight */
+#define OB510_GPIO 0x118F /* Fan control */
+
+#define OB500_FAN_ON_MASK 0x0A /* Turn fan on with zero bits */
+#define OB500_FAN_OFF_MASK 0x08 /* Fan status/off */
+#define OB500_BKLT_MASK 0x40 /* LCD backlight */
+#define OB510_FAN_ON_MASK 0x18 /* Turn fan on with zero bits */
+#define OB510_FAN_OFF_MASK 0x10 /* Turn fan on */
+#define OB510_BKLT_MASK 0x01 /* LCD backlight */
+
+#define XE2_FAN_MASK 0x02 /* Turn fan on with zero bit */
+
+/*
+ * Memory adresses
+ */
+
+#define XE3GC_BCMD 0xFFFFEBC
+
+/*
+ * Toshiba Satellite A105 values and mask
+ */
+
+#define A105_BNDT 0xA3 /* LCD brightness */
+#define A105_BNDT_MASK 0x0F
+
+/*
+ * Index and values for Command/Data/Index interface
+ * Notice similitudes with commands code for kbc
+ */
+
+#define TSM70_FN_INDEX 0x45
+#define TSM70_FN_ENABLE 0x75
+#define TSM70_FN_DISABLE 0x74
+#define TSM70_HOTKEYS_INDEX 0x59
+#define TSM70_HOTKEYS_ENABLE 0x90
+#define TSM70_HOTKEYS_DISABLE 0x91
+#define TSM70_LCD_READ 0x5C
+#define TSM70_LCD_WRITE 0x5D
+#define TSM70_TOUCHPAD_ON 0x80
+#define TSM70_TOUCHPAD_OFF 0x81
+#define TSM100_BLANK_INDEX 0x59
+#define TSM100_LCD_ON 0xe1
+#define TSM100_LCD_OFF 0xe2
+#define TSM70_COOLING_OFFSET 0xb0
+#define TSM70_COOLING_POWERSAVE 0x0
+#define TSM70_COOLING_PERF 0x2
+
+/* Toshiba SMI funtions and constants*/
+#define SMI_FN_PRESSED 0x8f
+#define SMI_SET_LCD_BRIGHTNESS 0xa2
+#define SMI_GET_LCD_BRIGHTNESS 0xa3
+#define SMI_GET_KILL_SWITCH 0xa4
+#define SMI_SET_AERIAL 0xa5
+#define SMI_GET_AERIAL 0xa6
+#define SMI_SET_DISPLAY_STATE 0xa7
+#define SMI_GET_DISPLAY_STATE 0xa8
+#define SMI_SET_FN_INTERFACE 0xa9
+#define SMI_GET_FN_INTERFACE 0xaa
+#define SMI_GET_FN_LAST_SCAN 0xab
+#define SMI_SET_DOCK 0xac /* Undocumented */
+#define SMI_GET_DOCK 0xad /* Undocumented */
+#define SMI_SET_FN_F5_INTERFACE 0xc2
+
+#define SMI_FN_KEYS_MASK 0x01
+#define SMI_STICK_KEYS_MASK 0x02
+#define SMI_FN_TWICE_LOCK_MASK 0x04
+#define SMI_FN_DOCK_MASK 0x08
+
+#define SMI_FN_SCAN 0x6d /* Fn key scancode */
+#define SMI_DOCK_SCAN 0x6e /* Dock scancode */
+
+/* Toshiba HCI method and constants */
+#define HCI_METHOD "SPFC"
+#define HCI_WORDS 6
+
+#define HCI_GET 0xfe00
+#define HCI_SET 0xff00
+
+#define HCI_HOTKEY_EVENT 0x001e
+#define HCI_RF_CONTROL 0x0056
+
+#define HCI_ENABLE 0x0001
+#define HCI_DISABLE 0x0000
+
+#define HCI_WIRELESS_CHECK 0x0001
+#define HCI_WIRELESS_POWER 0x0200
+
+#define HCI_SUCCESS 0x0000
+#define HCI_FAILURE 0x1000
+#define HCI_NOT_SUPPORTED 0x8000
+
+/* Toshiba Satellite X205 methods */
+#define TSX205_EVENTS_METHOD "INFO"
+#define TSX205_NOTIFY_METHOD "NTFY"
+#define TSX205_KILLSW_METHOD "KLSW"
+#define TSX205_SLIVDO_METHOD "CSLI"
+
+#define ACPI_FN_MASK 0x01
+#define ACPI_FN_SCAN 0x6e /* Fn key scancode */
+
+/* HCI key definitions */
+#define HCI_FN_RELEASED 0x100
+#define HCI_MUTE 0x101
+#define HCI_1 0x102
+#define HCI_2 0x103
+#define HCI_SPACE 0x139
+#define HCI_BREAK 0x13b
+#define HCI_BSM 0x13c
+#define HCI_SUSPEND 0x13d
+#define HCI_HIBERNATE 0x13e
+#define HCI_VIDEOOUT 0x13f
+#define HCI_BRIGHTNESSDOWN 0x140
+#define HCI_BRIGHTNESSUP 0x141
+#define HCI_WLAN 0x142
+#define HCI_TOUCHPAD 0x143
+#define HCI_FN_PRESSED 0x17f
diff --git a/ubuntu/omnibook/hotkeys.c b/ubuntu/omnibook/hotkeys.c
new file mode 100644
index 00000000000..7d541e12adb
--- /dev/null
+++ b/ubuntu/omnibook/hotkeys.c
@@ -0,0 +1,193 @@
+/*
+ * hotkeys.c -- code to handling Hotkey/E-Key/EasyAccess buttons
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+/* Predefined convinient on/off states */
+#define HKEY_ON HKEY_ONETOUCH|HKEY_MULTIMEDIA|HKEY_FN|HKEY_DOCK|HKEY_FNF5
+#define HKEY_OFF 0
+
+/*
+ * Set hotkeys status and update recorded saved state
+ */
+static int hotkeys_set_save(struct omnibook_operation *io_op, unsigned int state)
+{
+ int retval;
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+
+ retval = __backend_hotkeys_set(io_op, state);
+ if (retval < 0)
+ goto out;
+
+ /* Update saved state */
+ io_op->backend->hotkeys_state = state & io_op->backend->hotkeys_write_cap;
+
+ out:
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+/*
+ * Read hotkeys status, fallback to reading saved state if real probing is not
+ * supported.
+ */
+static int hotkeys_get_save(struct omnibook_operation *io_op, unsigned int *state)
+{
+ unsigned int read_state = 0;
+ int retval = 0;
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+
+ if (io_op->backend->hotkeys_get)
+ retval = __backend_hotkeys_get(io_op, &read_state);
+ if (retval < 0)
+ goto out;
+
+ /* Return previously set state for the fields that are write only */
+ *state = (read_state & io_op->backend->hotkeys_read_cap) +
+ (io_op->backend->hotkeys_state & ~io_op->backend->hotkeys_read_cap);
+
+ out:
+ mutex_unlock(&io_op->backend->mutex);
+ return 0;
+}
+
+/*
+ * Power management handlers
+ */
+
+/*
+ * Restore previously saved state
+ */
+static int omnibook_hotkeys_resume(struct omnibook_operation *io_op)
+{
+ int retval;
+ mutex_lock(&io_op->backend->mutex);
+ retval = __backend_hotkeys_set(io_op, io_op->backend->hotkeys_state);
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+/*
+ * Disable hotkeys upon suspend (FIXME is the disabling required ?)
+ */
+static int omnibook_hotkeys_suspend(struct omnibook_operation *io_op)
+{
+ int retval = 0;
+ retval = backend_hotkeys_set(io_op, HKEY_OFF);
+ return retval;
+}
+
+static const char pretty_name[][27] = {
+ "Onetouch buttons are",
+ "Multimedia hotkeys are",
+ "Fn hotkeys are",
+ "Stick key is",
+ "Press Fn twice to lock is",
+ "Dock events are",
+ "Fn + F5 hotkey is",
+};
+
+static int omnibook_hotkeys_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+ int retval;
+ unsigned int read_state = 0; /* buggy gcc 4.1 warning fix */
+ unsigned int shift, mask;
+
+ retval = hotkeys_get_save(io_op, &read_state);
+
+ if (retval < 0)
+ return retval;
+
+ for (shift = 0; shift <= HKEY_LAST_SHIFT ; shift++) {
+ mask = 1 << shift;
+ /* we assume write capability or read capability imply support */
+ if ((io_op->backend->hotkeys_read_cap | io_op->backend->hotkeys_write_cap) & mask)
+ len +=
+ sprintf(buffer + len, "%s %s.\n", pretty_name[shift],
+ (read_state & mask) ? "enabled" : "disabled");
+ }
+
+ return len;
+}
+
+static int omnibook_hotkeys_write(char *buffer, struct omnibook_operation *io_op)
+{
+ unsigned int state;
+ char *endp;
+
+ if (strncmp(buffer, "off", 3) == 0)
+ hotkeys_set_save(io_op, HKEY_OFF);
+ else if (strncmp(buffer, "on", 2) == 0)
+ hotkeys_set_save(io_op, HKEY_ON);
+ else {
+ state = simple_strtoul(buffer, &endp, 16);
+ if (endp == buffer)
+ return -EINVAL;
+ else
+ hotkeys_set_save(io_op, state);
+ }
+ return 0;
+}
+
+static int __init omnibook_hotkeys_init(struct omnibook_operation *io_op)
+{
+ int retval;
+
+ printk(O_INFO "Enabling all hotkeys.\n");
+ retval = hotkeys_set_save(io_op, HKEY_ON);
+ return retval < 0 ? retval : 0;
+}
+
+static void __exit omnibook_hotkeys_cleanup(struct omnibook_operation *io_op)
+{
+ printk(O_INFO "Disabling all hotkeys.\n");
+ hotkeys_set_save(io_op, HKEY_OFF);
+}
+
+static struct omnibook_tbl hotkeys_table[] __initdata = {
+ {XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | AMILOD | TSP10 | TSM30X,
+ COMMAND(KBC,OMNIBOOK_KBC_CMD_ONETOUCH_ENABLE,OMNIBOOK_KBC_CMD_ONETOUCH_DISABLE)},
+ {TSM70, {CDI,}},
+ {TSM40, {SMI,}},
+ {TSX205, {ACPI,}},
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature hotkeys_driver = {
+ .name = "hotkeys",
+ .enabled = 1,
+ .read = omnibook_hotkeys_read,
+ .write = omnibook_hotkeys_write,
+ .init = omnibook_hotkeys_init,
+ .exit = omnibook_hotkeys_cleanup,
+ .suspend = omnibook_hotkeys_suspend,
+ .resume = omnibook_hotkeys_resume,
+ .ectypes =
+ XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | AMILOD | TSP10 | TSM70 | TSM30X |
+ TSM40 | TSX205,
+ .tbl = hotkeys_table,
+};
+
+module_param_named(hotkeys, hotkeys_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(hotkeys, "Use 0 to disable, 1 to enable hotkeys handling");
+/* End of file */
diff --git a/ubuntu/omnibook/info.c b/ubuntu/omnibook/info.c
new file mode 100644
index 00000000000..8e25e7a1a9d
--- /dev/null
+++ b/ubuntu/omnibook/info.c
@@ -0,0 +1,68 @@
+/*
+ * info.c -- trivial informational features
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <linux/dmi.h>
+#include <linux/version.h>
+
+static int omnibook_version_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+
+ len += sprintf(buffer + len, "%s\n", OMNIBOOK_MODULE_VERSION);
+
+ return len;
+}
+
+static int omnibook_dmi_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+
+ len += sprintf(buffer + len, "BIOS Vendor: %s\n", dmi_get_system_info(DMI_BIOS_VENDOR));
+ len += sprintf(buffer + len, "BIOS Version: %s\n", dmi_get_system_info(DMI_BIOS_VERSION));
+ len += sprintf(buffer + len, "BIOS Release: %s\n", dmi_get_system_info(DMI_BIOS_DATE));
+ len += sprintf(buffer + len, "System Vendor: %s\n", dmi_get_system_info(DMI_SYS_VENDOR));
+ len += sprintf(buffer + len, "Product Name: %s\n", dmi_get_system_info(DMI_PRODUCT_NAME));
+ len +=
+ sprintf(buffer + len, "Version: %s\n", dmi_get_system_info(DMI_PRODUCT_VERSION));
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15))
+ len +=
+ sprintf(buffer + len, "Serial Number: %s\n", dmi_get_system_info(DMI_PRODUCT_SERIAL));
+#endif
+ len += sprintf(buffer + len, "Board Vendor: %s\n", dmi_get_system_info(DMI_BOARD_VENDOR));
+ len += sprintf(buffer + len, "Board Name: %s\n", dmi_get_system_info(DMI_BOARD_VERSION));
+
+ return len;
+}
+
+static struct omnibook_feature __declared_feature version_driver = {
+ .name = "version",
+ .enabled = 1,
+ .read = omnibook_version_read,
+};
+
+static struct omnibook_feature __declared_feature dmi_driver = {
+ .name = "dmi",
+ .enabled = 1,
+ .read = omnibook_dmi_read,
+};
+
+module_param_named(dmi, dmi_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(dmi, "Use 0 to disable, 1 to enable DMI informations display support");
+
+/* End of file */
diff --git a/ubuntu/omnibook/init.c b/ubuntu/omnibook/init.c
new file mode 100644
index 00000000000..c5278fea963
--- /dev/null
+++ b/ubuntu/omnibook/init.c
@@ -0,0 +1,535 @@
+/*
+ * init.c -- module initialization code
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <linux/proc_fs.h>
+#include <linux/dmi.h>
+#include <linux/version.h>
+#include <asm/uaccess.h>
+
+#include "hardware.h"
+#include "laptop.h"
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15))
+#include <linux/platform_device.h>
+#else
+#include <linux/device.h>
+#endif
+
+/*
+ * For compatibility with kernel older than 2.6.11
+ */
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11))
+typedef u32 pm_message_t;
+#endif
+
+static int __init omnibook_probe(struct platform_device *dev);
+static int __exit omnibook_remove(struct platform_device *dev);
+static int omnibook_suspend(struct platform_device *dev, pm_message_t state);
+static int omnibook_resume(struct platform_device *dev);
+
+/*
+ * For compatibility with kernel older than 2.6.15
+ */
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,15))
+
+#define to_platform_device(x) container_of((x), struct platform_device, dev)
+
+static int __init compat_omnibook_probe(struct device *dev)
+{
+ struct platform_device *pdev = to_platform_device(dev);
+ return omnibook_probe(pdev);
+}
+
+static int __exit compat_omnibook_remove(struct device *dev)
+{
+ struct platform_device *pdev = to_platform_device(dev);
+ return omnibook_remove(pdev);
+}
+
+static int compat_omnibook_suspend(struct device *dev, pm_message_t state, u32 level)
+{
+ struct platform_device *pdev = to_platform_device(dev);
+ return omnibook_suspend(pdev, state);
+}
+
+static int compat_omnibook_resume(struct device *dev, u32 level)
+{
+ struct platform_device *pdev = to_platform_device(dev);
+ return omnibook_resume(pdev);
+}
+
+#endif
+
+static struct proc_dir_entry *omnibook_proc_root = NULL;
+
+enum omnibook_ectype_t omnibook_ectype = NONE;
+
+static const char *laptop_model __initdata;
+
+static int omnibook_userset = 0;
+
+/*
+ * The platform_driver interface was added in linux 2.6.15
+ */
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15))
+
+static struct platform_device *omnibook_device;
+
+static struct platform_driver omnibook_driver = {
+ .probe = omnibook_probe,
+ .remove = omnibook_remove,
+#ifdef CONFIG_PM
+ .suspend = omnibook_suspend,
+ .resume = omnibook_resume,
+#endif
+ .driver = {
+ .name = OMNIBOOK_MODULE_NAME,
+ .owner = THIS_MODULE,
+ },
+};
+
+#else /* 2.6.15 */
+
+static struct device_driver omnibook_driver = {
+ .name = OMNIBOOK_MODULE_NAME,
+ .bus = &platform_bus_type,
+ .probe = compat_omnibook_probe,
+ .remove = compat_omnibook_remove,
+#ifdef CONFIG_PM
+ .suspend = compat_omnibook_suspend,
+ .resume = compat_omnibook_resume,
+#endif
+};
+
+static struct platform_device omnibook_device = {
+ .name = OMNIBOOK_MODULE_NAME,
+};
+
+#endif /* 2.6.15 */
+
+/* Linked list of all enabled features */
+static struct omnibook_feature *omnibook_available_feature;
+
+/* Delimiters of the .features section wich holds all the omnibook_feature structs */
+extern struct omnibook_feature _start_features_driver[];
+extern struct omnibook_feature _end_features_driver[];
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+static int __init dmi_matched(struct dmi_system_id *dmi)
+#else
+static int __init dmi_matched(const struct dmi_system_id *dmi)
+#endif
+{
+ omnibook_ectype = (enum omnibook_ectype_t)dmi->driver_data;
+ if (dmi->ident)
+ laptop_model = (char *)dmi->ident;
+ else
+ laptop_model = dmi_get_system_info(DMI_PRODUCT_VERSION);
+ return 1; /* return non zero means we stop the parsing selecting this entry */
+}
+
+/*
+ * Callback function for procfs file reading: the name of the file read was stored in *data
+ */
+static int procfile_read_dispatch(char *page, char **start, off_t off, int count, int *eof,
+ void *data)
+{
+ struct omnibook_feature *feature = (struct omnibook_feature *)data;
+ int len = 0;
+
+ if (!feature || !feature->read)
+ return -EINVAL;
+
+ if(off)
+ goto out;
+
+ len = feature->read(page, feature->io_op);
+ if (len < 0)
+ return len;
+
+ out:
+ *eof = 1;
+ return len;
+}
+
+/*
+ * Callback function for procfs file writing: the name of the file written was stored in *data
+ */
+static int procfile_write_dispatch(struct file *file, const char __user * userbuf,
+ unsigned long count, void *data)
+{
+ struct omnibook_feature *feature = (struct omnibook_feature *)data;
+ char *kernbuf;
+ int retval;
+
+ if (!feature || !feature->write)
+ return -EINVAL;
+
+ kernbuf = kmalloc(count + 1, GFP_KERNEL);
+ if (!kernbuf)
+ return -ENOMEM;
+
+ if (copy_from_user(kernbuf, userbuf, count)) {
+ kfree(kernbuf);
+ return -EFAULT;
+ }
+
+ /* Make sure the string is \0 terminated */
+ kernbuf[count] = '\0';
+
+ retval = feature->write(kernbuf, feature->io_op);
+ if (retval == 0)
+ retval = count;
+
+ kfree(kernbuf);
+
+ return retval;
+}
+
+/*
+ * Match an ectype and return pointer to corresponding omnibook_operation.
+ * Also make corresponding backend initialisation if necessary, and skip
+ * to the next entry if it fails.
+ */
+static struct omnibook_operation *omnibook_backend_match(struct omnibook_tbl *tbl)
+{
+ int i;
+ struct omnibook_operation *matched = NULL;
+
+ for (i = 0; tbl[i].ectypes; i++) {
+ if (omnibook_ectype & tbl[i].ectypes) {
+ if (tbl[i].io_op.backend->init && tbl[i].io_op.backend->init(&tbl[i].io_op)) {
+ dprintk("Backend %s init failed, skipping entry.\n",
+ tbl[i].io_op.backend->name);
+ continue;
+ }
+ matched = &tbl[i].io_op;
+ dprintk("Returning table entry nr %i.\n", i);
+ break;
+ }
+ }
+ return matched;
+}
+
+/*
+ * Initialise a feature and add it to the linked list of active features
+ */
+static int __init omnibook_init(struct omnibook_feature *feature)
+{
+ int retval = 0;
+ mode_t pmode;
+ struct proc_dir_entry *proc_entry;
+ struct omnibook_operation *op;
+
+ if (!feature)
+ return -EINVAL;
+
+/*
+ * Select appropriate backend for feature operations
+ * We copy the io_op field so the tbl can be initdata
+ */
+ if (feature->tbl) {
+ dprintk("Begin table match of %s feature.\n", feature->name);
+ op = omnibook_backend_match(feature->tbl);
+ if (!op) {
+ dprintk("Match failed: disabling %s.\n", feature->name);
+ return -ENODEV;
+ }
+ feature->io_op = kmalloc(sizeof(struct omnibook_operation), GFP_KERNEL);
+ if (!feature->io_op)
+ return -ENOMEM;
+ memcpy(feature->io_op, op, sizeof(struct omnibook_operation));
+ } else
+ dprintk("%s feature has no backend table, io_op not initialized.\n", feature->name);
+
+/*
+ * Specific feature init code
+ */
+ if (feature->init && (retval = feature->init(feature->io_op))) {
+ printk(O_ERR "Init function of %s failed with error %i.\n", feature->name, retval);
+ goto err;
+ }
+/*
+ * procfs file setup
+ */
+ if (feature->name && feature->read) {
+ pmode = S_IFREG | S_IRUGO;
+ if (feature->write) {
+ pmode |= S_IWUSR;
+ if (omnibook_userset)
+ pmode |= S_IWUGO;
+ }
+
+ proc_entry = create_proc_entry(feature->name, pmode, omnibook_proc_root);
+
+ if (!proc_entry) {
+ printk(O_ERR "Unable to create proc entry %s\n", feature->name);
+ if (feature->exit)
+ feature->exit(feature->io_op);
+ retval = -ENOENT;
+ goto err;
+ }
+ proc_entry->data = feature;
+ proc_entry->read_proc = &procfile_read_dispatch;
+ if (feature->write)
+ proc_entry->write_proc = &procfile_write_dispatch;
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
+ proc_entry->owner = THIS_MODULE;
+ #endif
+ }
+ list_add_tail(&feature->list, &omnibook_available_feature->list);
+ return 0;
+ err:
+ if (feature->io_op && feature->io_op->backend->exit)
+ feature->io_op->backend->exit(feature->io_op);
+ kfree(feature->io_op);
+ return retval;
+}
+
+/*
+ * Callback function for driver registering :
+ * Initialize the linked list of enabled features and call omnibook_init to populate it
+ */
+static int __init omnibook_probe(struct platform_device *dev)
+{
+ int i;
+ struct omnibook_feature *feature;
+
+ /* temporary hack */
+ mutex_init(&kbc_backend.mutex);
+ mutex_init(&pio_backend.mutex);
+ mutex_init(&ec_backend.mutex);
+
+ omnibook_available_feature = kzalloc(sizeof(struct omnibook_feature), GFP_KERNEL);
+ if (!omnibook_available_feature)
+ return -ENOMEM;
+ INIT_LIST_HEAD(&omnibook_available_feature->list);
+
+ for (i = 0; i < _end_features_driver - _start_features_driver; i++) {
+
+ feature = &_start_features_driver[i];
+
+ if (!feature->enabled)
+ continue;
+
+ if ((omnibook_ectype & feature->ectypes) || (!feature->ectypes))
+ omnibook_init(feature);
+ }
+
+ printk(O_INFO "Enabled features:");
+ list_for_each_entry(feature, &omnibook_available_feature->list, list) {
+ if (feature->name)
+ printk(" %s", feature->name);
+ }
+ printk(".\n");
+
+ return 0;
+}
+
+/*
+ * Callback function for driver removal
+ */
+static int __exit omnibook_remove(struct platform_device *dev)
+{
+ struct omnibook_feature *feature, *temp;
+
+ list_for_each_entry_safe(feature, temp, &omnibook_available_feature->list, list) {
+ list_del(&feature->list);
+ /* Feature specific cleanup */
+ if (feature->exit)
+ feature->exit(feature->io_op);
+ /* Generic backend cleanup */
+ if (feature->io_op && feature->io_op->backend->exit)
+ feature->io_op->backend->exit(feature->io_op);
+ if (feature->name)
+ remove_proc_entry(feature->name, omnibook_proc_root);
+ kfree(feature->io_op);
+ }
+ kfree(omnibook_available_feature);
+
+ return 0;
+}
+
+/*
+ * Callback function for system suspend
+ */
+static int omnibook_suspend(struct platform_device *dev, pm_message_t state)
+{
+ int retval;
+ struct omnibook_feature *feature;
+
+ list_for_each_entry(feature, &omnibook_available_feature->list, list) {
+ if (feature->suspend) {
+ retval = feature->suspend(feature->io_op);
+ if (retval)
+ printk(O_ERR "Unable to suspend the %s feature (error %i).\n", feature->name, retval);
+ }
+ }
+ return 0;
+}
+
+/*
+ * Callback function for system resume
+ */
+static int omnibook_resume(struct platform_device *dev)
+{
+ int retval;
+ struct omnibook_feature *feature;
+
+ list_for_each_entry(feature, &omnibook_available_feature->list, list) {
+ if (feature->resume) {
+ retval = feature->resume(feature->io_op);
+ if (retval)
+ printk(O_ERR "Unable to resume the %s feature (error %i).\n", feature->name, retval);
+ }
+ }
+ return 0;
+}
+
+/*
+ * Find a given available feature by its name
+ */
+struct omnibook_feature *omnibook_find_feature(char *name)
+{
+ struct omnibook_feature *feature;
+
+ list_for_each_entry(feature, &omnibook_available_feature->list, list) {
+ if (!strcmp(feature->name, name))
+ return feature;
+ }
+ return NULL;
+}
+
+/*
+ * Maintain compatibility with the old ectype numbers:
+ * ex: The user set/get ectype=12 for TSM70=2^(12-1)
+ */
+static int __init set_ectype_param(const char *val, struct kernel_param *kp)
+{
+ char *endp;
+ int value;
+
+ if (!val)
+ return -EINVAL;
+
+ value = simple_strtol(val, &endp, 10);
+ if (endp == val) /* No match */
+ return -EINVAL;
+ omnibook_ectype = 1 << (value - 1);
+ return 0;
+}
+
+static int get_ectype_param(char *buffer, struct kernel_param *kp)
+{
+ return sprintf(buffer, "%i", ffs(omnibook_ectype));
+}
+
+static int __init omnibook_module_init(void)
+{
+ int retval;
+
+ printk(O_INFO "Driver version %s.\n", OMNIBOOK_MODULE_VERSION);
+
+ if (omnibook_ectype != NONE)
+ printk(O_WARN "Forced load with EC type %i.\n", ffs(omnibook_ectype));
+ else if (dmi_check_system(omnibook_ids))
+ printk(O_INFO "%s detected.\n", laptop_model);
+ else
+ printk(O_INFO "Unknown model.\n");
+
+ omnibook_proc_root = proc_mkdir(OMNIBOOK_MODULE_NAME, NULL);
+ if (!omnibook_proc_root) {
+ printk(O_ERR "Unable to create /proc/%s.\n", OMNIBOOK_MODULE_NAME);
+ return -ENOENT;
+ }
+
+/*
+ * The platform_driver interface was added in linux 2.6.15
+ */
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15))
+
+ retval = platform_driver_register(&omnibook_driver);
+ if (retval < 0)
+ return retval;
+
+ omnibook_device = platform_device_alloc(OMNIBOOK_MODULE_NAME, -1);
+ if (!omnibook_device) {
+ platform_driver_unregister(&omnibook_driver);
+ return -ENOMEM;
+ }
+
+ retval = platform_device_add(omnibook_device);
+ if (retval) {
+ platform_device_put(omnibook_device);
+ platform_driver_unregister(&omnibook_driver);
+ return retval;
+ }
+#else /* 2.6.15 */
+
+ retval = driver_register(&omnibook_driver);
+ if (retval < 0)
+ return retval;
+
+ retval = platform_device_register(&omnibook_device);
+
+ if (retval) {
+ driver_unregister(&omnibook_driver);
+ return retval;
+ }
+#endif
+ return 0;
+}
+
+static void __exit omnibook_module_cleanup(void)
+{
+
+/*
+ * The platform_driver interface was added in linux 2.6.15
+ */
+
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,15))
+ platform_device_unregister(omnibook_device);
+ platform_driver_unregister(&omnibook_driver);
+#else
+ platform_device_unregister(&omnibook_device);
+ driver_unregister(&omnibook_driver);
+#endif
+
+ if (omnibook_proc_root)
+ remove_proc_entry("omnibook", NULL);
+ printk(O_INFO "Module is unloaded.\n");
+}
+
+module_init(omnibook_module_init);
+module_exit(omnibook_module_cleanup);
+
+MODULE_AUTHOR("Soós Péter, Mathieu Bérard");
+MODULE_VERSION(OMNIBOOK_MODULE_VERSION);
+MODULE_DESCRIPTION
+ ("Kernel interface for HP OmniBook, HP Pavilion, Toshiba Satellite and Compal ACL00 laptops");
+MODULE_LICENSE("GPL");
+module_param_call(ectype, set_ectype_param, get_ectype_param, NULL, S_IRUGO);
+module_param_named(userset, omnibook_userset, int, S_IRUGO);
+MODULE_PARM_DESC(ectype, "Type of embedded controller firmware");
+MODULE_PARM_DESC(userset, "Use 0 to disable, 1 to enable users to set parameters");
+
+/* End of file */
diff --git a/ubuntu/omnibook/kbc.c b/ubuntu/omnibook/kbc.c
new file mode 100644
index 00000000000..5634b40565c
--- /dev/null
+++ b/ubuntu/omnibook/kbc.c
@@ -0,0 +1,152 @@
+/*
+ * kbc.c -- low level functions to access Keyboard Controller
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <linux/types.h>
+#include <linux/delay.h>
+#include <linux/sched.h>
+#include <linux/spinlock.h>
+#include <linux/ioport.h>
+
+#include <asm/io.h>
+#include "hardware.h"
+
+extern int omnibook_key_polling_enable(void);
+extern int omnibook_key_polling_disable(void);
+
+/*
+ * Registers of the keyboard controller
+ */
+
+#define OMNIBOOK_KBC_DATA 0x60
+#define OMNIBOOK_KBC_SC 0x64
+
+/*
+ * Keyboard controller status register bits
+ */
+
+#define OMNIBOOK_KBC_STAT_OBF 0x01 /* Output buffer full */
+#define OMNIBOOK_KBC_STAT_IBF 0x02 /* Input buffer full */
+
+
+/*
+ * Interrupt control
+ */
+
+static DEFINE_SPINLOCK(omnibook_kbc_lock);
+
+/*
+ * Wait for keyboard buffer
+ */
+
+static int omnibook_kbc_wait(u8 event)
+{
+ int timeout = OMNIBOOK_TIMEOUT;
+
+ switch (event) {
+ case OMNIBOOK_KBC_STAT_OBF:
+ while (!(inb(OMNIBOOK_KBC_SC) & event) && timeout--)
+ mdelay(1);
+ break;
+ case OMNIBOOK_KBC_STAT_IBF:
+ while ((inb(OMNIBOOK_KBC_SC) & event) && timeout--)
+ mdelay(1);
+ break;
+ default:
+ return -EINVAL;
+ }
+ if (timeout > 0)
+ return 0;
+ return -ETIME;
+}
+
+/*
+ * Write to the keyboard command register
+ */
+
+static int omnibook_kbc_write_command(u8 cmd)
+{
+ int retval;
+
+ spin_lock_irq(&omnibook_kbc_lock);
+ retval = omnibook_kbc_wait(OMNIBOOK_KBC_STAT_IBF);
+ if (retval)
+ goto end;
+ outb(cmd, OMNIBOOK_KBC_SC);
+ retval = omnibook_kbc_wait(OMNIBOOK_KBC_STAT_IBF);
+ end:
+ spin_unlock_irq(&omnibook_kbc_lock);
+ return retval;
+}
+
+/*
+ * Write to the keyboard data register
+ */
+
+static int omnibook_kbc_write_data(u8 data)
+{
+ int retval;
+
+ spin_lock_irq(&omnibook_kbc_lock);
+ retval = omnibook_kbc_wait(OMNIBOOK_KBC_STAT_IBF);
+ if (retval)
+ goto end;
+ outb(data, OMNIBOOK_KBC_DATA);
+ retval = omnibook_kbc_wait(OMNIBOOK_KBC_STAT_IBF);
+ end:
+ spin_unlock_irq(&omnibook_kbc_lock);
+ return retval;
+}
+
+/*
+ * Send a command to keyboard controller
+ */
+
+static int omnibook_kbc_command(const struct omnibook_operation *io_op, u8 data)
+{
+ int retval;
+
+ if ((retval = omnibook_kbc_write_command(OMNIBOOK_KBC_CONTROL_CMD)))
+ return retval;
+
+ retval = omnibook_kbc_write_data(data);
+ return retval;
+}
+
+/*
+ * Onetouch button hotkey handler
+ */
+static int omnibook_kbc_hotkeys(const struct omnibook_operation *io_op, unsigned int state)
+{
+ int retval;
+
+ retval = __omnibook_toggle(io_op, !!(state & HKEY_ONETOUCH));
+ return retval;
+}
+
+/*
+ * Backend interface declarations
+ */
+struct omnibook_backend kbc_backend = {
+ .name = "i8042",
+ .hotkeys_write_cap = HKEY_ONETOUCH,
+ .byte_write = omnibook_kbc_command,
+ .hotkeys_set = omnibook_kbc_hotkeys,
+};
+
+/* End of file */
diff --git a/ubuntu/omnibook/laptop.h b/ubuntu/omnibook/laptop.h
new file mode 100644
index 00000000000..dd0a198039a
--- /dev/null
+++ b/ubuntu/omnibook/laptop.h
@@ -0,0 +1,1077 @@
+/*
+ * laptop.h -- Various structures about supported hardware
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Written by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+
+#define HP_SIGNATURE "Hewlett-Packard"
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+static int __init dmi_matched(struct dmi_system_id *dmi);
+#else
+static int __init dmi_matched(const struct dmi_system_id *dmi);
+#endif
+
+static struct dmi_system_id omnibook_ids[] __initdata = {
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook XE3 GF",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE3 GF"),
+ },
+ .driver_data = (void *) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook XT1000",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XT1000"),
+ },
+ .driver_data = (void *) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook XE2 DC",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE2 DC"),
+ },
+ .driver_data = (void *) XE2
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook XE3 GC",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE3 GC"),
+ },
+ .driver_data = (void*) XE3GC
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook XE3 GD / Pavilion N5430",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE3 GD"),
+ },
+ .driver_data = (void*) XE3GC
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook XE3 GE / Pavilion N5415",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook XE3 GE"),
+ },
+ .driver_data = (void*) XE3GC
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook 500 FA",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 500 FA"),
+ },
+ .driver_data = (void*) OB500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook 510 FB",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 510 FB"),
+ },
+ .driver_data = (void*) OB510
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook 4150",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 4150"),
+ },
+ .driver_data = (void*) OB4150
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook 900 B",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 900 B"),
+ },
+ .driver_data = (void*) OB4150
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook 6000 EA",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 6000 EA"),
+ },
+ .driver_data = (void*) OB6000
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook 6100 EB",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 6100 EB"),
+ },
+ .driver_data = (void*) OB6100
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook xe4000/xe4100",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook xe4000"),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook xe4400",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook xe4400"),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook xe4500",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook xe4500"),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook 6200 EG / vt6200 / xt 6200",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook 6200 EG"),
+ },
+ .driver_data = (void*) XE4500
+ },
+ /* There are no model specific strings of some HP OmniBook XT1500 */
+ {
+ .callback = dmi_matched,
+ .ident = "HP OmniBook XT1500",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP OmniBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP OmniBook"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP Pavilion ze4000 / ze4125",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP NoteBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP NoteBook ze4000"),
+ },
+ .driver_data = (void*) XE4500
+ },
+ /* There are no model specific strings of some HP Pavilion xt155 and some HP Pavilion ze4100
+ * There are no model specific strings of some HP nx9000 */
+ {
+ .callback = dmi_matched,
+ .ident = "HP Pavilion xt155 / ze4100 / nx9000",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP NoteBook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP NoteBook PC"),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP Pavilion ZU1000 FA / ZU1000 FA / ZU1175",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion ZU1000 FA"),
+ },
+ .driver_data = (void*) OB500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP Pavilion Notebook XE3 GC / N5290",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook XE3 GC"),
+ },
+ .driver_data = (void*) XE3GC
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP Pavilion Notebook GD / N5441",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook Model GD"),
+ },
+ .driver_data = (void*) XE3GC
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP Pavilion Notebook GE / XH545",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook Model GE"),
+ },
+ .driver_data = (void*) XE3GC
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP Pavilion Notebook ZT1000 / ZT1141",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook ZT1000"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ /* There are no model specific strings of some HP Pavilion ZT1175 and ZT1195 notebooks */
+ {
+ .callback = dmi_matched,
+ .ident = "HP Pavilion ZT1175 / ZT1195",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP Pavilion Notebook PC"),
+ DMI_MATCH(DMI_PRODUCT_VERSION, "HP Pavilion Notebook"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP Pavilion ze4200 series",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ze4200"),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP Pavilion ze4300 series",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ze4300"),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP Pavilion ze4500 series",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ze4500"),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP Pavilion ze8500 series",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "Pavilion ze8500"),
+ },
+ .driver_data = (void*) XE4500
+ },
+ /* Compaq nx9000 */
+ {
+ .callback = dmi_matched,
+ .ident = "HP Compaq nx9000",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP nx9000"),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP Compaq nx9005",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP nx9005"),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP Compaq nx9010",
+ .matches = {
+ DMI_MATCH(DMI_PRODUCT_NAME, "HP nx9010"),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1000",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S1000"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1005",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S1005"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1110",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S1110"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1115",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S1115"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1130",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1130"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1700-100",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S1700-100"),
+ },
+ .driver_data = (void*) AMILOD
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1700-200",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S1700-200"),
+ },
+ .driver_data = (void*) AMILOD
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1700-300",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S1700-300"),
+ },
+ .driver_data = (void*) AMILOD
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1700-400",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S1700-400"),
+ },
+ .driver_data = (void*) AMILOD
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1700-500",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S1700-500"),
+ },
+ .driver_data = (void*) AMILOD
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1900",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S1900"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1905",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S1905"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1950",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S1950"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1955",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S1955"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 2430",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S2430"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 2435",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S2435"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 3000",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S3000"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 3005",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "S3005"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1000",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1000"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1005",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1005"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1110",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1110"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1115",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1115"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1115",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Toshiba 1115"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1900",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1900"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1905",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1905"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1950",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1950"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 1955",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 1955"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 2430",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 2430"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 2435",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 2435"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 3000",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 3000"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite 3005",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite 3005"),
+ },
+ .driver_data = (void*) XE3GF,
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite A70",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A70"),
+ },
+ .driver_data = (void*) TSM70
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite A75",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A75"),
+ },
+ .driver_data = (void*) TSM70
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite A80",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A80"),
+ },
+ .driver_data = (void*) TSM70
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite A105",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A105"),
+ },
+ .driver_data = (void*) TSA105
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite A100",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite A100"),
+ },
+ .driver_data = (void*) TSA105
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite P100",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P100"),
+ },
+ .driver_data = (void*) TSA105
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite P10",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P10"),
+ },
+ .driver_data = (void*) TSP10
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite P15",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P15"),
+ },
+ .driver_data = (void*) TSP10
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite P20",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P20"),
+ },
+ .driver_data = (void*) TSP10
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite P25",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite P25"),
+ },
+ .driver_data = (void*) TSM70
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite M30X",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M30X"),
+ },
+ .driver_data = (void*) TSM30X
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite M35X",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M35X"),
+ },
+ .driver_data = (void*) TSM70
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite M50",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M50"),
+ },
+ .driver_data = (void*) TSM70
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite M60",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M60"),
+ },
+ .driver_data = (void*) TSM70
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite M70",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M70"),
+ },
+ .driver_data = (void*) TSM70
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite M100",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "SATELLITE M100"),
+ },
+ .driver_data = (void*) TSM70
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite M100",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M100"),
+ },
+ .driver_data = (void*) TSM70
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite M115",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M115"),
+ },
+ .driver_data = (void*) TSA105
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite M40X",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M40X"),
+ },
+ .driver_data = (void*) TSM70
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite M40",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M40"),
+ },
+ .driver_data = (void*) TSM40
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite M45",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite M45"),
+ },
+ .driver_data = (void*) TSM40
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Satellite X205-S9800",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Satellite X205"),
+ },
+ .driver_data = (void*) TSX205
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Tecra S1",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "TECRA S1"),
+ },
+ .driver_data = (void*) TSM40
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Tecra S1",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Tecra S1"),
+ },
+ .driver_data = (void*) TSM40
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Tecra S2",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Tecra S2"),
+ },
+ .driver_data = (void*) TSM70
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Tecra A4",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Tecra A4"),
+ },
+ .driver_data = (void*) TSM40
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Tecra A6",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "TECRA A6"),
+ },
+ .driver_data = (void*) TSM70
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Toshiba Equium A110",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "TOSHIBA"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "EQUIUM A110"),
+ },
+ .driver_data = (void*) TSM30X /* FIXME: provisional */
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Compal ACL00",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "COMPAL"),
+ DMI_MATCH(DMI_BOARD_NAME, "ACL00"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Compal ACL10",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "COMPAL"),
+ DMI_MATCH(DMI_BOARD_NAME, "ACL10"),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "Fujitsu-Siemens Amilo D series",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
+ DMI_MATCH(DMI_PRODUCT_NAME, "Amilo D-Series"),
+ },
+ .driver_data = (void*) AMILOD
+ },
+/* HP Technology code Matching:
+ * Technology code appears in the first two chracters of BIOS version string
+ * ended by a dot, but it prefixed a space character on some models and BIOS
+ * versions.
+ * New HP/Compaq models use more characters (eg. KF_KH.).
+ */
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code CI",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "CI."),
+ },
+ .driver_data = (void*) OB4150
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code CL",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "CL."),
+ },
+ .driver_data = (void*) OB4150
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code DC",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "DC."),
+ },
+ .driver_data = (void*) XE2
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code EA",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "EA."),
+ },
+ .driver_data = (void*) OB6000
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code EB",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "EB."),
+ },
+ .driver_data = (void*) OB6100
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code EG",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "EG."),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code FA",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "FA."),
+ },
+ .driver_data = (void*) OB500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code FB",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "FB."),
+ },
+ .driver_data = (void*) OB510
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code GC",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "GC."),
+ },
+ .driver_data = (void*) XE3GC
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code GD",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "GD."),
+ },
+ .driver_data = (void*) XE3GC
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code GE",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "GE."),
+ },
+ .driver_data = (void*) XE3GC
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code GF",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "GF."),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code IB",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "IB."),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code IC",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "IC."),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code ID",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "ID."),
+ },
+ .driver_data = (void*) XE3GF
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code KA",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "KA."),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code KB",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "KB."),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code KC",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "KC."),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code KD",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "KD."),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code KE",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "KE."),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code KE_KG",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "KE_KG."),
+ },
+ .driver_data = (void*) XE4500
+ },
+ {
+ .callback = dmi_matched,
+ .ident = "HP model with technology code KF_KH",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, HP_SIGNATURE),
+ DMI_MATCH(DMI_BIOS_VERSION, "KF_KH."),
+ },
+ .driver_data = (void*) XE4500
+ },
+ { NULL, }
+};
diff --git a/ubuntu/omnibook/lcd.c b/ubuntu/omnibook/lcd.c
new file mode 100644
index 00000000000..7702ea67c0b
--- /dev/null
+++ b/ubuntu/omnibook/lcd.c
@@ -0,0 +1,207 @@
+/*
+ * lcd.c -- LCD brightness and on/off
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Maciek Górniak <mago@acn.waw.pl>, 2002
+ * Modified by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+#include <linux/err.h>
+
+#ifdef CONFIG_OMNIBOOK_BACKLIGHT
+#include <linux/backlight.h>
+#endif
+
+#include "hardware.h"
+
+unsigned int omnibook_max_brightness;
+
+#ifdef CONFIG_OMNIBOOK_BACKLIGHT
+static struct backlight_device *omnibook_backlight_device;
+
+static int omnibook_get_backlight(struct backlight_device *bd);
+static int omnibook_set_backlight(struct backlight_device *bd);
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
+static struct backlight_ops omnibookbl_ops = {
+#else /* 2.6.21 */
+static struct backlight_properties omnibookbl_data = {
+ .owner = THIS_MODULE,
+#endif /* 2.6.21 */
+ .get_brightness = omnibook_get_backlight,
+ .update_status = omnibook_set_backlight,
+};
+
+static int omnibook_get_backlight(struct backlight_device *bd)
+{
+ int retval = 0;
+ struct omnibook_operation *io_op;
+ u8 brgt;
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)
+ io_op = bl_get_data(bd);
+#else /* 2.6.23 */
+ io_op = class_get_devdata(&bd->class_dev);
+#endif /* 2.6.23 */
+ retval = backend_byte_read(io_op, &brgt);
+ if (!retval)
+ retval = brgt;
+
+ return retval;
+}
+
+static int omnibook_set_backlight(struct backlight_device *bd)
+{
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
+ u8 intensity = bd->props.brightness;
+#else /* 2.6.21 */
+ u8 intensity = bd->props->brightness;
+#endif /* 2.6.21 */
+ struct omnibook_operation *io_op;
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)
+ io_op = bl_get_data(bd);
+#else /* 2.6.23 */
+ io_op = class_get_devdata(&bd->class_dev);
+#endif /* 2.6.23 */
+ return backend_byte_write(io_op, intensity);
+}
+#endif /* CONFIG_OMNIBOOK_BACKLIGHT */
+
+static int omnibook_brightness_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+ u8 brgt;
+
+ backend_byte_read(io_op, &brgt);
+
+ len +=
+ sprintf(buffer + len, "LCD brightness: %2d (max value: %d)\n", brgt,
+ omnibook_max_brightness);
+
+ return len;
+}
+
+static int omnibook_brightness_write(char *buffer, struct omnibook_operation *io_op)
+{
+ unsigned int brgt = 0;
+ char *endp;
+
+ if (strncmp(buffer, "off", 3) == 0)
+ omnibook_lcd_blank(1);
+ else if (strncmp(buffer, "on", 2) == 0)
+ omnibook_lcd_blank(0);
+ else {
+ brgt = simple_strtoul(buffer, &endp, 10);
+ if ((endp == buffer) || (brgt > omnibook_max_brightness))
+ return -EINVAL;
+ else {
+ backend_byte_write(io_op, brgt);
+#ifdef CONFIG_OMNIBOOK_BACKLIGHT
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
+ omnibook_backlight_device->props.brightness = brgt;
+#else /* 2.6.21 */
+ omnibookbl_data.brightness = brgt;
+#endif
+#endif
+ }
+ }
+ return 0;
+}
+
+static int __init omnibook_brightness_init(struct omnibook_operation *io_op)
+{
+ /*
+ * FIXME: What is exactly the max value for each model ?
+ * I know that it's 7 for the TSM30X, TSM70, TSM40 and TSA105
+ * and previous versions of this driver (wrongly) assumed it was 10 for
+ * all models.
+ *
+ * XE3GF
+ * TSM30X
+ * TSM70
+ * TSM40
+ * TSA105
+ * TSX205
+ */
+ if (omnibook_ectype & (XE3GF | TSM70 | TSM30X | TSM40 | TSA105 | TSX205))
+ omnibook_max_brightness = 7;
+ else {
+ omnibook_max_brightness = 10;
+ printk(O_WARN "Assuming that LCD brightness is between 0 and %i,\n",
+ omnibook_max_brightness);
+ printk(O_WARN
+ "please contact http://sourceforge.net/projects/omnibook to confirm.\n");
+ }
+
+#ifdef CONFIG_OMNIBOOK_BACKLIGHT
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
+ omnibook_backlight_device =
+ backlight_device_register(OMNIBOOK_MODULE_NAME, NULL, (void *)io_op, &omnibookbl_ops);
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
+ omnibook_backlight_device =
+ backlight_device_register(OMNIBOOK_MODULE_NAME, NULL, (void *)io_op, &omnibookbl_data);
+#else /* < 2.6.20 */
+ omnibook_backlight_device =
+ backlight_device_register(OMNIBOOK_MODULE_NAME, (void *)io_op, &omnibookbl_data);
+#endif
+ if (IS_ERR(omnibook_backlight_device)) {
+ printk(O_ERR "Unable to register as backlight device.\n");
+ return -ENODEV;
+ }
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
+ omnibook_backlight_device->props.max_brightness = omnibook_max_brightness;
+ backend_byte_read(io_op, (u8*) &omnibook_backlight_device->props.brightness);
+#else /* < 2.6.21 */
+ omnibookbl_data.max_brightness = omnibook_max_brightness;
+ backend_byte_read(io_op, (u8*) &omnibookbl_data.brightness);
+#endif
+
+#endif /* CONFIG_OMNIBOOK_BACKLIGHT */
+ return 0;
+}
+static void __exit omnibook_brightness_cleanup(struct omnibook_operation *io_op)
+{
+#ifdef CONFIG_OMNIBOOK_BACKLIGHT
+ backlight_device_unregister(omnibook_backlight_device);
+#endif
+}
+
+static struct omnibook_tbl lcd_table[] __initdata = {
+ {TSM70 | TSX205, {CDI, TSM70_LCD_READ, TSM70_LCD_WRITE, 0, 0, 0}},
+ {TSM40, {SMI, SMI_GET_LCD_BRIGHTNESS, SMI_SET_LCD_BRIGHTNESS, 0, 0, 0}},
+ {XE3GF | TSP10 | TSM70 | TSM30X, SIMPLE_BYTE(EC, XE3GF_BRTS, XE3GF_BRTS_MASK)},
+ {XE3GC, SIMPLE_BYTE(EC, XE3GC_BTVL, XE3GC_BTVL_MASK)},
+ {AMILOD, SIMPLE_BYTE(EC, AMILOD_CBRG, XE3GC_BTVL_MASK)},
+ {TSA105, SIMPLE_BYTE(EC, A105_BNDT, A105_BNDT_MASK)},
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature lcd_driver = {
+ .name = "lcd",
+ .enabled = 1,
+ .read = omnibook_brightness_read,
+ .write = omnibook_brightness_write,
+ .init = omnibook_brightness_init,
+ .exit = omnibook_brightness_cleanup,
+ .ectypes = XE3GF | XE3GC | AMILOD | TSP10 | TSM70 | TSM30X | TSM40 | TSA105 | TSX205,
+ .tbl = lcd_table,
+};
+
+module_param_named(lcd, lcd_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(lcd, "Use 0 to disable, 1 to enable to LCD brightness support");
+
+/* End of file */
diff --git a/ubuntu/omnibook/lib.c b/ubuntu/omnibook/lib.c
new file mode 100644
index 00000000000..728e70f3668
--- /dev/null
+++ b/ubuntu/omnibook/lib.c
@@ -0,0 +1,81 @@
+/*
+ * lib.c -- Generic helpers functions
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include "hardware.h"
+#include "compat.h"
+#include <linux/input.h>
+
+/*
+ * Generic funtion for applying a mask on a value
+ * Hack: degenerate to omnibook_toggle if there is no read method
+ * of if the read address is 0, this is used in blank.c
+ */
+int __omnibook_apply_write_mask(const struct omnibook_operation *io_op, int toggle)
+{
+ int retval = 0;
+ int mask;
+ u8 data;
+
+ if(!(io_op->backend->byte_read && io_op->read_addr))
+ return __omnibook_toggle(io_op,toggle);
+
+ if ((retval = __backend_byte_read(io_op, &data)))
+ return retval;
+
+ if (toggle == 1)
+ mask = io_op->on_mask;
+ else if (toggle == 0)
+ mask = io_op->off_mask;
+ else
+ return -EINVAL;
+
+ if (mask > 0)
+ data |= (u8) mask;
+ else if (mask < 0)
+ data &= ~((u8) (-mask));
+ else
+ return -EINVAL;
+
+ retval = __backend_byte_write(io_op, data);
+
+ return retval;
+}
+
+/*
+ * Helper for toggle like operations
+ */
+int __omnibook_toggle(const struct omnibook_operation *io_op, int toggle)
+{
+ int retval;
+ u8 data;
+
+ data = toggle ? io_op->on_mask : io_op->off_mask;
+ retval = __backend_byte_write(io_op, data);
+ return retval;
+}
+
+void omnibook_report_key( struct input_dev *dev, unsigned int keycode)
+{
+ input_report_key(dev, keycode, 1);
+ input_sync(dev);
+ input_report_key(dev, keycode, 0);
+ input_sync(dev);
+}
+
+/* End of file */
diff --git a/ubuntu/omnibook/misc/README.mmkeys b/ubuntu/omnibook/misc/README.mmkeys
new file mode 100644
index 00000000000..9a9fc04aa0a
--- /dev/null
+++ b/ubuntu/omnibook/misc/README.mmkeys
@@ -0,0 +1,9 @@
+This patch maps some extra Fn+key combinations to keycodes for multimedia
+keyboards and only works for the nbsmi-backend. It might be useful if you
+want to control some mediaplayer while working with other applications.
+
+Following combinations are mapped:
+Fn+Y => Previous song
+Fn+X => Play/pause
+Fn+V => Stop CD
+Fn+B => Next song \ No newline at end of file
diff --git a/ubuntu/omnibook/misc/dmi_strings.txt b/ubuntu/omnibook/misc/dmi_strings.txt
new file mode 100644
index 00000000000..4eef0c09ae7
--- /dev/null
+++ b/ubuntu/omnibook/misc/dmi_strings.txt
@@ -0,0 +1,857 @@
+HP OmniBook XT1000 -------------------------
+
+BIOS Vendor: Insyde Software
+BIOS Version: IB.M1.05
+BIOS Release: 02/28/2002
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook XT1000
+Board Vendor: Hewlett-Packard
+Board Name: HP OmniBook PC
+Board Version: HP OmniBook XT1000
+
+---------------------------------------------
+HP OmniBook XT1500 --------------------------
+
+BIOS Vendor: Insyde Software
+BIOS Version: IC.M1.05
+BIOS Release: 08/13/2002
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook
+Board Vendor: Hewlett-Packard
+Board Name: HP OmniBook PC
+Board Version: HP OmniBook
+
+---------------------------------------------
+HP OmniBook XT1500 -------------------------
+
+BIOS Vendor: Phoenix Technologies LTD
+BIOS Version: ID.M1.04
+BIOS Release: 08/14/2002
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook XE3 GF
+Board Vendor: Hewlett-Packard
+Board Name: N/A
+Board Version: OmniBook Zinfandel 4.5
+
+---------------------------------------------
+HP OmniBook XE3 GC --------------------------
+
+BIOS Vendor: Phoenix Technologies LTD
+BIOS Version: GC.M1.63
+BIOS Release: 01/01/1992
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook XE3 GC
+Board Vendor: Hewlett-Packard
+Board Name: N/A
+Board Version: OmniBook N32N-733
+
+---------------------------------------------
+HP OmniBook XE3 GF --------------------------
+
+BIOS Vendor: Phoenix Technologies LTD
+BIOS Version: GF.M1.07
+BIOS Release: 03/05/2002
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook XE3 GF
+Board Vendor: Hewlett-Packard
+Board Name: N/A
+Board Version: OmniBook N32N-101
+
+---------------------------------------------
+HP OmniBook 500 FA --------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd
+BIOS Version: FA.M2.62
+BIOS Release: 11/30/1999
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook 500 FA
+Board Vendor: Hewlett-Packard
+Board Name: HP OmniBook PC
+Board Version: 500 FA
+
+---------------------------------------------
+HP OmniBook 510 FB --------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: FB.M1.20
+BIOS Release: 04/12/02
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook 510 FB
+Board Vendor: Hewlett-Packard
+Board Name: HP OmniBook PC
+Board Version: 510FB
+
+---------------------------------------------
+Toshiba Satellite 3000-100 ------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V2.20
+BIOS Release: 10/12/01
+System Vendor: TOSHIBA
+Product Name: S3000-100
+Version: PS300E-03EKL-FR
+Board Vendor: Null
+Board Name: 888M1
+Board Version: Null
+
+---------------------------------------------
+Toshiba Satellite 1115-s103------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.20
+BIOS Release: 09/11/2002
+System Vendor: TOSHIBA
+Product Name: Satellite 1115
+Version: PS111U-001FUV
+Board Vendor: TOSHIBA
+Board Name: BTK20
+Board Version: Null
+
+---------------------------------------------
+Toshiba Satellite 1110 ----------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.20
+BIOS Release: 09/11/2002
+System Vendor: TOSHIBA
+Product Name: S1110
+Version: PS111E-003DN-GR
+Board Vendor: TOSHIBA
+Board Name: BTK20
+Board Version: Null
+
+---------------------------------------------
+Toshiba Satellite 1130 ----------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.70A
+BIOS Release: 09/02/2003
+System Vendor: TOSHIBA
+Product Name: Satellite 1130
+Version: PS113E-05ZYF-GR
+Board Vendor: TOSHIBA
+Board Name: BTW30
+Board Version: Null
+
+---------------------------------------------
+Toshiba Satellite 1900-704 ------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.50
+BIOS Release: 11/25/2002
+System Vendor: TOSHIBA
+Product Name: Satellite 1950
+Version: PS195E-008QY-DU
+Board Vendor: TOSHIBA
+Board Name: ATR60
+
+---------------------------------------------
+Toshiba Satellite 1955-s805 -----------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.00
+BIOS Release: 01/17/2003
+System Vendor: TOSHIBA
+Product Name: Satellite 1955
+Version: PS197U-000LEV
+Board Vendor: TOSHIBA
+Board Name: BTR80
+Board Version: Null
+
+---------------------------------------------
+Toshiba Satellite A70 -----------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.50
+BIOS Release: 11/16/2004
+System Vendor: TOSHIBA
+Product Name: Satellite A70
+Version: PSA70C-KL100E
+Serial Number: X4451615K
+Board Vendor: TOSHIBA
+Board Name: EDW10
+Board Version: Null
+
+---------------------------------------------
+Toshiba Satellite A80 -----------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V2.50
+BIOS Release: 01/11/2006
+System Vendor: TOSHIBA
+Product Name: Satellite A80
+Version: PSA80E-03T00JSP
+Board Vendor: TOSHIBA
+Board Name: Null
+
+---------------------------------------------
+Toshiba Satellite A105 ----------------------
+
+BIOS Vendor: Phoenix Technologies LTD
+BIOS Version: 1.30
+BIOS Release: 02/09/2006
+System Vendor: TOSHIBA
+Product Name: Satellite A105
+Version: PSAA8U-02000U
+Board Vendor: Intel Corporation
+Board Name: Not Applicable
+
+---------------------------------------------
+Toshiba Satellite P10 -----------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.20
+BIOS Release: 09/12/2003
+System Vendor: TOSHIBA
+Product Name: Satellite P10
+Version: PSP10E-34FJR
+Board Vendor: TOSHIBA
+Board Name: DAL00
+Board Version: Null
+
+---------------------------------------------
+Toshiba Satellite P15 -----------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.20
+BIOS Release: 09/12/2003
+System Vendor: TOSHIBA
+Product Name: Satellite P15
+Version: PSP10U-0DUJPV
+Board Vendor: TOSHIBA
+Board Name: DAL00
+Board Version: Null
+
+---------------------------------------------
+Toshiba Satellite P25 -----------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V2.10
+BIOS Release: 12/27/2004
+System Vendor: TOSHIBA
+Product Name: Satellite P25
+Version: PSP20U-19PS8R
+Board Vendor: TOSHIBA
+Board Name: Null
+
+---------------------------------------------
+Toshiba Satellite P100 ----------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V3.30
+BIOS Release: 12/22/2006
+System Vendor: TOSHIBA
+Product Name: Satellite P100
+Version: PSPA3E-02E013G3
+Board Vendor: TOSHIBA
+Board Name: Not Applicable
+
+---------------------------------------------
+Toshiba Satellite M40 -----------------------
+
+BIOS Vendor: Phoenix Technologies LTD
+BIOS Version: 1.10
+BIOS Release: 08/24/05
+System Vendor: TOSHIBA
+Product Name: Satellite M40
+Version: PSM44E-00U00EFR
+Board Vendor: ATI
+Board Name: SB400
+Board Version: Rev0.4b
+
+---------------------------------------------
+Toshiba Satellite M45 (S355) ----------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: Version 2.00
+BIOS Release: 02/07/2006
+System Vendor: TOSHIBA
+Product Name: Satellite M45
+Version: PSM40U-073001
+Board Vendor: TOSHIBA
+Board Name: Version A0
+
+---------------------------------------------
+Toshiba Satellite M40X (-131)----------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.60
+BIOS Release: 06/09/2005
+System Vendor: TOSHIBA
+Product Name: Satellite M40X
+Version: PSM4XE-01400GFR
+Board Vendor: TOSHIBA
+Board Name: EAL30
+Board Version: Null
+
+---------------------------------------------
+Toshiba Satellite M50------------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V2.10
+BIOS Release: 05/08/2006
+System Vendor: TOSHIBA
+Product Name: Satellite M50
+Version: PSM51E-01C011IT
+Board Vendor: TOSHIBA
+Board Name: Null
+
+---------------------------------------------
+Toshiba Satellite M60 -----------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.60
+BIOS Release: 03/16/2006
+System Vendor: TOSHIBA
+Product Name: Satellite M60
+Version: PSM60E-0CD01FIT
+Board Vendor: TOSHIBA
+Board Name: Null
+
+---------------------------------------------
+Toshiba Satellite M70 -----------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.10
+BIOS Release: 09/15/2005
+System Vendor: TOSHIBA
+Product Name: Satellite M70
+Version: PSM71E-01100KFR
+Board Vendor: TOSHIBA
+Board Name: HTW00
+Board Version: Null
+
+---------------------------------------------
+Toshiba Satellite A75 -----------------------
+
+IOS Vendor: TOSHIBA
+BIOS Version: V1.50
+BIOS Release: 11/16/2004
+System Vendor: TOSHIBA
+Product Name: Satellite A75
+Version: PSA70U-004004B
+Board Vendor: TOSHIBA
+Board Name: Null
+
+---------------------------------------------
+Toshiba Satellite M100 ----------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.90
+BIOS Release: 07/20/2006
+System Vendor: TOSHIBA
+Product Name: SATELLITE M100
+Version: PSMA0E-030019TE
+Board Vendor: TOSHIBA
+Board Name: HAQAA
+Board Version: Null
+
+---------------------------------------------
+Toshiba Satellite M100 ----------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.00
+BIOS Release: 03/30/2006
+System Vendor: TOSHIBA
+Product Name: Satellite M100
+Version: PSMA2U-00T00G
+Board Vendor: TOSHIBA
+Board Name: HAWAA
+Board Version: None
+
+---------------------------------------------
+Toshiba Satellite M115 ----------------------
+
+Bios vender: Phoenix Tech. LTD
+Bios version: 1.00
+Bios release: 08/31/2006
+System Vendor: Toshiba
+Product Name: Satellite M115
+Version: PSMBOU-015007
+Board vendor Intel
+Board name: N/a
+
+---------------------------------------------
+Toshiba Equium A110 -------------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.30
+BIOS Release: 07/20/2006
+System Vendor: TOSHIBA
+Product Name: EQUIUM A110
+Version: PSAB2E-002006AV
+Board Vendor: TOSHIBA
+Board Name: Null
+
+---------------------------------------------
+Toshiba Tecra A4 ----------------------------
+
+
+BIOS Vendor: TOSHIBA
+BIOS Version: Version 1.70
+BIOS Release: 10/14/2005
+System Vendor: TOSHIBA
+Product Name: Tecra A4
+Version: PTA40E-0UN00FSP
+Board Vendor: TOSHIBA
+Board Name: Version A0
+
+---------------------------------------------
+Toshiba Tecra A6 ----------------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V2.70
+BIOS Release: 04/26/2007
+System Vendor: TOSHIBA
+Product Name: TECRA A6
+Version: PTA60U-0FK00D
+Board Vendor: TOSHIBA
+Board Name: Null
+
+---------------------------------------------
+Toshiba Tecra S2 ----------------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V2.50
+BIOS Release: 01/11/2006
+System Vendor: TOSHIBA
+Product Name: Tecra S2
+Version: PTS20E-1FE04Q8M
+Board Vendor: TOSHIBA
+Board Name: Null
+
+---------------------------------------------
+Compal ACL00 --------------------------------
+
+BIOS Vendor: COMPAL
+BIOS Version: V2.10C
+BIOS Release: 03/25/02
+System Vendor: COMPAL
+Product Name: *
+Version: *
+Board Vendor: Null
+Board Name: ACL00
+Board Version: Null
+
+---------------------------------------------
+Compal ACL10 --------------------------------
+
+BIOS Vendor: COMPAL
+BIOS Version: V1.10
+BIOS Release: 04/12/2001
+System Vendor: *
+Product Name: *
+Version: *
+Board Vendor: COMPAL
+Board Name: ACL10
+Board Version: Null
+
+---------------------------------------------
+HP Pavilion ZT1195 --------------------------
+
+BIOS Vendor: Insyde Software
+BIOS Version: IC.M1.00
+BIOS Release: 03/20/2002
+System Vendor: Hewlett-Packard
+Product Name: HP Pavilion Notebook PC
+Version: HP Pavilion Notebook
+Board Vendor: Hewlett-Packard
+Board Name: HP Pavilion Notebook PC
+Board Version: HP Pavilion Notebook
+
+---------------------------------------------
+HP Pavilion ZT1141 --------------------------
+
+BIOS Vendor: Insyde Software
+BIOS Version: IB.M1.05
+BIOS Release: 02/28/2002
+System Vendor: Hewlett-Packard
+Product Name: HP Pavilion Notebook PC
+Version: HP Pavilion Notebook ZT1000
+Board Vendor: Hewlett-Packard
+Board Name: HP Pavilion Notebook PC
+Board Version: HP Pavilion Notebook ZT1000
+
+---------------------------------------------
+HP OmniBook 6100 EB -------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: EB.M2.20
+BIOS Release: 02/27/02
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook 6100 EB
+Board Vendor: Hewlett-Packard
+Board Name: HP OmniBook PC
+Board Version: 6100EB
+
+---------------------------------------------
+HP OmniBook 6000 EA -------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: EA.M1.81
+BIOS Release: 02/22/2002
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook 6000 EA
+Board Vendor: Hewlett-Packard
+Board Name: HP OmniBook PC
+Board Version: 6000EA
+
+---------------------------------------------
+HP OmniBook xe4500 --------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: KB.M1.30
+BIOS Release: 08/05/20022
+System Vendor: Hewlett-Packard.
+Product Name: HP OmniBook PC
+Version: HP OmniBook xe4500
+Board Vendor: Hewlett-Packard
+Board Name: HP OmniBook PC
+Board Version: xe4500
+
+---------------------------------------------
+HP Pavilion N5441 ---------------------------
+
+BIOS Vendor: Phoenix Technologies LTD
+BIOS Version: GD.M1.08
+BIOS Release: 09/27/2001
+System Vendor: Hewlett-Packard
+Product Name: HP Pavilion Notebook PC
+Version: HP Pavilion Notebook Model GD
+Board Vendor: Hewlett-Packard
+Board Name: N/A
+Board Version: OmniBook N32N-736
+
+---------------------------------------------
+HP Pavilion N5430 ---------------------------
+
+BIOS Vendor: Phoenix Technologies LTD
+BIOS Version: GD.M1.08
+BIOS Release: 09/27/2001
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook XE3 GD
+Board Vendor: Hewlett-Packard
+Board Name: N/A
+Board Version: OmniBook N32N-736
+
+---------------------------------------------
+HP Pavilion N5415 ---------------------------
+
+BIOS Vendor: Phoenix Technologies LTD
+BIOS Version: GE.M1.04
+BIOS Release: 07/30/2002
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook XE3 GE
+Board Vendor: Hewlett-Packard
+Board Name: N/A
+Board Version: OmniBook N32N-736
+
+---------------------------------------------
+HP Pavilion N5290 ---------------------------
+
+BIOS Vendor: Phoenix Technologies LTD
+BIOS Version: GC.M1.63
+BIOS Release: 01/01/1992
+System Vendor: Hewlett-Packard
+Product Name: HP Pavilion Notebook PC
+Version: HP Pavilion Notebook XE3 GC
+Board Vendor: Hewlett-Packard
+Board Name: N/A
+Board Version: OmniBook N32N-733
+
+---------------------------------------------
+HP OmniBook vt6200 -------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: EG.M2.10
+BIOS Release: 09/19/02
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook 6200 EG
+Board Vendor: Hewlett-Packard
+Board Name: HP OmniBook PC
+Board Version: 6200EG
+
+---------------------------------------------
+HP OmniBook 4150 ----------------------------
+
+BIOS Vendor: Phoenix Technologies LTD
+BIOS Version: CI.M2.250
+BIOS Release: 06/10/99
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook 4150
+Board Vendor: Hewlett-Packard
+Board Name: N/A
+Board Version: OmniBook TS32T2
+
+---------------------------------------------
+HP OmniBook xt6200 --------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd
+BIOS Version: EG.M2.10
+BIOS Release: 09/19/02
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook 6200 EG
+Board Vendor: Hewlett-Packard
+Board Name: HP OmniBook PC
+Board Version: 6200EG
+
+---------------------------------------------
+HP Pavilion ze4125 --------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd
+BIOS Version: KA.M1.20
+BIOS Release: 09/13/2002
+System Vendor: Hewlett-Packard
+Product Name: HP NoteBook PC
+Version: HP NoteBook ze4000
+Board Vendor: Hewlett-Packard
+Board Name: HP NoteBook PC
+Board Version: HP NoteBook ze4000
+
+---------------------------------------------
+HP OmniBook xt155 ---------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: KE.M1.40
+BIOS Release: 10/11/20022
+System Vendor: Hewlett-Packard
+Product Name: HP NoteBook PC
+Version: HP Notebook PC
+Board Vendor: Hewlett-Packard
+Board Name: HP NoteBook PC
+Board Version: HP Notebook PC
+
+---------------------------------------------
+HP OmniBook xe4100 --------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: KC.M1.10
+BIOS Release: 07/11/2002
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook xe4000
+Board Vendor: Hewlett-Packard
+Board Name: HP OmniBook PC
+Board Version: 4000KC
+
+---------------------------------------------
+HP Omnibook xe4400 --------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: KD.M1.60
+BIOS Release: 09/19/20022
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP Omnibook xe4400
+Board Vendor: Hewlett-Packard
+Board Name: HP OmniBook PC
+Board Version: xe4400
+
+---------------------------------------------
+HP Pavilion ze4100 --------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: KE.M1.40
+BIOS Release: 10/11/20022
+System Vendor: Hewlett-Packard
+Product Name: HP NoteBook PC
+Version: HP Notebook PC
+Board Vendor: Hewlett-Packard
+Board Name: HP NoteBook PC
+Board Version: HP Notebook PC
+
+---------------------------------------------
+Acer Aspire 1350 ----------------------------
+BIOS Vendor: Acer
+BIOS Version: 3A24
+BIOS Release: 12/01/2003
+System Vendor: Acer,Inc.
+Product Name: Aspire 1350
+Version: 3A24
+Board Vendor: Acer,Inc.
+Board Name: Aspire 1350
+Board Version: Rev.A
+
+---------------------------------------------
+Acer Aspire 1406 LC -------------------------
+
+BIOS Vendor: Acer
+BIOS Version: V2.30
+BIOS Release: 10/04/02
+System Vendor: Acer
+Product Name: Aspire 1400 series
+Version: *
+Board Vendor: Null
+Board Name: BR20
+Board Version: Null
+
+---------------------------------------------
+HP Pavilion ze4200 --------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: KE.M1.53
+BIOS Release: 12/10/20022
+System Vendor: Hewlett-Packard
+Product Name: Pavilion ze4200
+Version: KE.M1.53
+Board Vendor: Hewlett-Packard
+Board Name: 002A
+Board Version: NS570 Version PQ1A74
+
+---------------------------------------------
+HP Pavilion ze4500 --------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: KAM1.57
+BIOS Release: 02/19/2004
+System Vendor: Hewlett-Packard
+Product Name: Pavilion ze4500 (DP793E)
+Version: KAM1.57
+Board Vendor: Hewlett-Packard
+Board Name: PQ1A83
+
+---------------------------------------------
+HP Pavilion ZU1175 --------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: FA.M2.60
+BIOS Release: 11/30/1999
+System Vendor: Hewlett-Packard
+Product Name: HP Pavilion Notebook PC
+Version: HP Pavilion ZU1000 FA
+Board Vendor: Hewlett-Packard
+Board Name: HP Pavilion Notebook PC
+Board Version: 1000FA
+
+---------------------------------------------
+HP Pavilion XH545 ---------------------------
+
+BIOS Vendor: Phoenix Technologies LTD
+BIOS Version: GE.M1.03
+BIOS Release: 11/08/2001
+System Vendor: Hewlett-Packard
+Product Name: HP Pavilion Notebook PC
+Version: HP Pavilion Notebook Model GE
+Board Vendor: Hewlett-Packard
+Board Name: N/A
+Board Version: OmniBook N32N-736
+
+---------------------------------------------
+Toshiba Satellite 2430-402 ------------------
+
+BIOS Vendor: TOSHIBA
+BIOS Version: V1.30
+BIOS Release: 01/16/2003
+System Vendor: TOSHIBA
+Product Name: Satellite 2430
+Version: PS243E-06P4S-4V
+Board Vendor: TOSHIBA
+Board Name: BTS88
+Board Version: Null
+
+---------------------------------------------
+HP OmniBook 900 B ---------------------------
+
+BIOS Vendor: Phoenix Technologies LTD
+BIOS Version: CL.M3.13
+BIOS Release: 11/11/99
+System Vendor: Hewlett-Packard
+Product Name: HP OmniBook PC
+Version: HP OmniBook 900 B
+Board Vendor: Hewlett-Packard
+Board Name: N/A
+Board Version: OmniBook TS32U2
+
+---------------------------------------------
+HP Compaq nx9000 ----------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: KE_KG.M1.06
+BIOS Release: 05/16/2003
+System Vendor: Hewlett-Packard
+Product Name: HP nx9000 (DG223T)
+Version: KG.M1.06
+Board Vendor: Hewlett-Packard
+Board Name: 002A
+Board Version: NS570 Version PQ1A78
+
+---------------------------------------------
+HP Compaq nx9000 ----------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: KE_KG.M1.15
+BIOS Release: 12/19/2003
+System Vendor: Hewlett-Packard
+Product Name: HP Notebook PC
+Version: HP Notebook PC
+Board Vendor: <NULL>
+Board Name: <NULL>
+Board Version: <NULL>
+
+---------------------------------------------
+HP Compaq nx9005 ----------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: KAM1.46
+BIOS Release: 07/21/200392
+System Vendor: Hewlett-Packard
+Product Name: HP nx9005 (DJ163A)
+Version: KAM1.46
+Board Vendor: Hewlett-Packard
+Board Name: 0024
+Board Version: PQ1A78
+
+----------------------------------------------
+HP Compaq nx9010 -----------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: KF_KH.F.08
+BIOS Release: 06/06/2003
+System Vendor: Hewlett-Packard
+Product Name: HP nx9010 (DJ123A)
+Version: KH.F.08
+Board Vendor: Hewlett-Packard
+Board Name: 0850
+Board Version: NS570 Version PQ1B56
+
+----------------------------------------------
+HP Pavilion ze8500 --------------------------
+
+BIOS Vendor: Phoenix Technologies Ltd.
+BIOS Version: KF_KH.F.18
+BIOS Release: 11/13/2003
+System Vendor: Hewlett-Packard
+Product Name: Pavilion ze8500 (DJ317A)
+Version: KH.F.18
+Board Vendor: Hewlett-Packard
+Board Name: 0850
+Board Version: NS570 Version PQ1B60
+
+---------------------------------------------
+Fujitsu-Siemens Amilo D ---------------------
+
+BIOS Vendor: Phoenix
+BIOS Version: V1.20
+BIOS Release: 11/14/2001
+System Vendor: FUJITSU SIEMENS
+Product Name: Amilo D-Series
+Version: DESKTOP CPU ONLY
+Board Vendor: CY23
+Board Name: 8606-686B
+Board Version: None
+
+---------------------------------------------
diff --git a/ubuntu/omnibook/misc/hotkeys/README.hotkeys b/ubuntu/omnibook/misc/hotkeys/README.hotkeys
new file mode 100644
index 00000000000..3522bdfcc42
--- /dev/null
+++ b/ubuntu/omnibook/misc/hotkeys/README.hotkeys
@@ -0,0 +1,22 @@
+HotKeys is a program to use the special keys on internet/multimedia
+keyboards.
+
+The HotKeys daemon listens for the "special" hotkeys that you won't
+normally use on your Internet/Multimedia keyboards. The buttons
+perform their intended behaviors, such as volume up and down, mute the
+speaker, or launch applications. It has On-screen display (OSD) to
+show the volume, program that's being started, etc. It features an
+XML-based keycode configuration file format, which makes it possible
+to define the hotkeys to launch any programs you want.
+
+You may reach it at http://ypwong.org/hotkeys/
+
+Files in this directory provide examles for hotkeys definition files
+for certain laptop models supported by omnibook module:
+
+ob5xx.def: HP OmniBook 5xx
+xe3gc.def: HP OmniBook XE3 GC, GD, GE and HP Pavilion N5xxx
+xe3gf.def: HP OmniBook XE3 GF
+xe4xxx.def: HP OmniBook xe4xxx and ze4xxx
+xt155.def: HP OmniBook xt155
+nx9xxx.def: HP/Compaq nx9xxx
diff --git a/ubuntu/omnibook/misc/hotkeys/nx9xxx.def b/ubuntu/omnibook/misc/hotkeys/nx9xxx.def
new file mode 100644
index 00000000000..9d3f531fe8d
--- /dev/null
+++ b/ubuntu/omnibook/misc/hotkeys/nx9xxx.def
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<definition>
+ <config model="HP/Compaq nx9xxx laptops">
+
+ <!--
+ Multimedia keys are disabled by default on HP laptops.
+ For enabling them see the project at URL
+ http://sourceforge.net/projects/omke
+ -->
+
+ <Email keycode="236"/>
+ <WebBrowser keycode="178"/>
+ <Shell keycode="243"/>
+ <ScreenSaver keycode="241"/>
+ <Help keycode="240"/>
+
+ <VolUp keycode="176" adj="1"/>
+ <VolDown keycode="174" adj="1"/>
+
+ <userdef keycode="160" command="aumix -vM">Sound muted</userdef>
+
+ </config>
+
+ <contributor>
+ <name>Soos, Peter</name>
+ <email>sp@osb.hu</email>
+ </contributor>
+</definition>
diff --git a/ubuntu/omnibook/misc/hotkeys/ob5xx.def b/ubuntu/omnibook/misc/hotkeys/ob5xx.def
new file mode 100644
index 00000000000..807b8d1748f
--- /dev/null
+++ b/ubuntu/omnibook/misc/hotkeys/ob5xx.def
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<definition>
+ <config model="HP OmniBook 5xx">
+
+ <!--
+ Multimedia keys are disabled by default on HP OmniBook
+ laptops. For enabling them see the project at URL
+ http://sourceforge.net/projects/omke
+ -->
+
+ <Shell keycode="244"/>
+ <Help keycode="243"/>
+
+ <!-- Keys below available on the docking station only -->
+
+ <PrevTrack keycode="144"/>
+ <Play keycode="162"/>
+ <Stop keycode="164"/>
+ <NextTrack keycode="153"/>
+
+ <VolUp keycode="176" adj="1"/>
+ <VolDown keycode="174" adj="1"/>
+
+ </config>
+
+ <contributor>
+ <name>Soos, Peter</name>
+ <email>sp@osb.hu</email>
+ </contributor>
+</definition>
diff --git a/ubuntu/omnibook/misc/hotkeys/xe3gc.def b/ubuntu/omnibook/misc/hotkeys/xe3gc.def
new file mode 100644
index 00000000000..5e418f21ffa
--- /dev/null
+++ b/ubuntu/omnibook/misc/hotkeys/xe3gc.def
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<definition>
+ <config model="HP OmniBook XE3 GC, GD, GE and HP Pavilion N5xxx">
+
+ <!--
+ Multimedia keys are disabled by default on HP OmniBook
+ laptops. For enabling them see the project at URL
+ http://sourceforge.net/projects/omke
+ -->
+
+ <PrevTrack keycode="144"/>
+ <Play keycode="162"/>
+ <Stop keycode="164"/>
+ <NextTrack keycode="153"/>
+
+ <VolUp keycode="176" adj="1"/>
+ <VolDown keycode="174" adj="1"/>
+
+ <WebBrowser keycode="243"/>
+ <Email keycode="244"/>
+ <Shell keycode="242"/>
+ <Help keycode="241"/>
+
+ <userdef keycode="160" command="aumix -vM">Sound muted</userdef>
+
+ </config>
+
+ <contributor>
+ <name>Soos, Peter</name>
+ <email>sp@osb.hu</email>
+ </contributor>
+</definition>
diff --git a/ubuntu/omnibook/misc/hotkeys/xe3gf.def b/ubuntu/omnibook/misc/hotkeys/xe3gf.def
new file mode 100644
index 00000000000..8f8b40e56f1
--- /dev/null
+++ b/ubuntu/omnibook/misc/hotkeys/xe3gf.def
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<definition>
+ <config model="HP OmniBook XE3 GF">
+
+ <!--
+ Multimedia keys are disabled by default on HP OmniBook
+ laptops. For enabling them see the project at URL
+ http://sourceforge.net/projects/omke
+ -->
+
+ <PrevTrack keycode="144"/>
+ <Play keycode="162"/>
+ <Stop keycode="164"/>
+ <NextTrack keycode="153"/>
+
+ <VolUp keycode="176" adj="1"/>
+ <VolDown keycode="174" adj="1"/>
+
+ <Email keycode="236"/>
+ <WebBrowser keycode="178"/>
+ <Shell keycode="244"/>
+ <Help keycode="243"/>
+
+ <userdef keycode="160" command="aumix -vM">Sound muted</userdef>
+
+ </config>
+
+ <contributor>
+ <name>Soos, Peter</name>
+ <email>sp@osb.hu</email>
+ </contributor>
+</definition>
diff --git a/ubuntu/omnibook/misc/hotkeys/xe4xxx.def b/ubuntu/omnibook/misc/hotkeys/xe4xxx.def
new file mode 100644
index 00000000000..6b14cde47a9
--- /dev/null
+++ b/ubuntu/omnibook/misc/hotkeys/xe4xxx.def
@@ -0,0 +1,28 @@
+<?xml version="1.0"?>
+<definition>
+ <config model="HP OmniBook xe4xxx and ze4xxx">
+
+ <!--
+ Multimedia keys are disabled by default on HP OmniBook
+ laptops. For enabling them see the project at URL
+ http://sourceforge.net/projects/omke
+ -->
+
+ <Email keycode="236"/>
+ <WebBrowser keycode="178"/>
+ <Shell keycode="243"/>
+ <ScreenSaver keycode="241"/>
+ <Help keycode="240"/>
+
+ <VolUp keycode="176" adj="1"/>
+ <VolDown keycode="174" adj="1"/>
+
+ <userdef keycode="160" command="aumix -vM">Sound muted</userdef>
+
+ </config>
+
+ <contributor>
+ <name>Soos, Peter</name>
+ <email>sp@osb.hu</email>
+ </contributor>
+</definition>
diff --git a/ubuntu/omnibook/misc/hotkeys/xt155.def b/ubuntu/omnibook/misc/hotkeys/xt155.def
new file mode 100644
index 00000000000..d200bf09eac
--- /dev/null
+++ b/ubuntu/omnibook/misc/hotkeys/xt155.def
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<definition>
+ <config model="HP OmniBook xt155">
+
+ <!--
+ Multimedia keys are disabled by default on HP OmniBook
+ laptops. For enabling them see the project at URL
+ http://sourceforge.net/projects/omke
+ -->
+
+ <Email keycode="236"/>
+ <WebBrowser keycode="178"/>
+ <Shell keycode="243"/>
+ <ScreenSaver keycode="241"/>
+ <Help keycode="240"/>
+
+ </config>
+
+ <contributor>
+ <name>Soos, Peter</name>
+ <email>sp@osb.hu</email>
+ </contributor>
+</definition>
diff --git a/ubuntu/omnibook/muteled.c b/ubuntu/omnibook/muteled.c
new file mode 100644
index 00000000000..a21793a50bf
--- /dev/null
+++ b/ubuntu/omnibook/muteled.c
@@ -0,0 +1,109 @@
+/*
+ * mutled.c -- MUTE LED control
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Thomas Perl <thp@perli.net>, 2006
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+static int omnibook_muteled_set(struct omnibook_operation *io_op, int status)
+{
+ int retval = 0;
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+
+ if((retval = __omnibook_toggle(io_op, !!status))) {
+ printk(O_ERR "Failed muteled %s command.\n", status ? "on" : "off");
+ goto out;
+ }
+
+ io_op->backend->muteled_state = !!status;
+
+ out:
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+/*
+ * Hardware query is unsupported, reading is unreliable.
+ */
+static int omnibook_muteled_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+ len +=
+ sprintf(buffer + len, "Last mute LED action was an %s command.\n",
+ io_op->backend->touchpad_state ? "on" : "off");
+
+ mutex_unlock(&io_op->backend->mutex);
+ return len;
+}
+
+static int omnibook_muteled_write(char *buffer, struct omnibook_operation *io_op)
+{
+ int cmd;
+
+ if (*buffer == '0' || *buffer == '1') {
+ cmd = *buffer - '0';
+ if (!omnibook_muteled_set(io_op, cmd)) {
+ dprintk("Switching mute LED to %s state.\n", cmd ? "on" : "off");
+ }
+ } else {
+ return -EINVAL;
+ }
+ return 0;
+}
+
+/*
+ * May re-enable muteled upon resume
+ */
+static int omnibook_muteled_resume(struct omnibook_operation *io_op)
+{
+ int retval;
+ mutex_lock(&io_op->backend->mutex);
+ retval = __omnibook_toggle(io_op, !!io_op->backend->touchpad_state);
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+/*
+ * Switch muteled off upon exit
+ */
+static void __exit omnibook_muteled_cleanup(struct omnibook_operation *io_op)
+{
+ omnibook_muteled_set(io_op, 0);
+}
+
+static struct omnibook_tbl muteled_table[] __initdata = {
+ {XE4500, COMMAND(KBC, OMNIBOOK_KBC_CMD_MUTELED_ON, OMNIBOOK_KBC_CMD_MUTELED_OFF)},
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature muteled_driver = {
+ .name = "muteled",
+ .enabled = 1,
+ .read = omnibook_muteled_read,
+ .write = omnibook_muteled_write,
+ .exit = omnibook_muteled_cleanup,
+ .resume = omnibook_muteled_resume,
+ .ectypes = XE4500,
+ .tbl = muteled_table,
+};
+
+module_param_named(muteled, muteled_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(muteled, "Use 0 to disable, 1 to enable 'Audo Mute' LED control");
diff --git a/ubuntu/omnibook/nbsmi.c b/ubuntu/omnibook/nbsmi.c
new file mode 100644
index 00000000000..8ce10b98015
--- /dev/null
+++ b/ubuntu/omnibook/nbsmi.c
@@ -0,0 +1,968 @@
+/*
+ * nbsmi.c -- Toshiba SMI low-level acces code
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ *
+ * Sources of inspirations for this code were:
+ * -Toshiba via provided hardware specification
+ * -Thorsten Zachmann with the 's1bl' project
+ * -Frederico Munoz with the 'tecra_acpi' project
+ * Thanks to them
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+#include <linux/preempt.h>
+#include <linux/pci.h>
+#include <linux/kref.h>
+#include <asm/io.h>
+#include <asm/mc146818rtc.h>
+#include <linux/workqueue.h>
+#include <linux/delay.h>
+
+/* copied from drivers/input/serio/i8042-io.h */
+#define I8042_KBD_PHYS_DESC "isa0060/serio0"
+
+/*
+ * ATI's IXP PCI-LPC bridge
+ */
+#define INTEL_PMBASE 0x40
+#define INTEL_GPE0_EN 0x2c
+
+#define BUFFER_SIZE 0x20
+#define INTEL_OFFSET 0x60
+#define INTEL_SMI_PORT 0xb2 /* APM_CNT port in INTEL ICH specs */
+
+/*
+ * Toshiba Specs state 0xef here but:
+ * -this would overflow (ef + 19 > ff)
+ * -code from Toshiba use e0, which make much more sense
+ */
+
+#define ATI_OFFSET 0xe0
+#define ATI_SMI_PORT 0xb0
+
+#define EC_INDEX_PORT 0x300
+#define EC_DATA_PORT 0x301
+
+/* Masks decode for GetAeral */
+#define WLEX_MASK 0x4
+#define WLAT_MASK 0x8
+#define BTEX_MASK 0x1
+#define BTAT_MASK 0x2
+
+/*
+ * Private data of this backend
+ */
+struct nbsmi_backend_data {
+ struct pci_dev *lpc_bridge; /* Southbridge chip ISA bridge/LPC interface PCI device */
+ u8 start_offset; /* Start offset in CMOS memory */
+ struct input_dev *nbsmi_input_dev;
+ struct work_struct fnkey_work;
+};
+
+/*
+ * Possible list of supported southbridges
+ * Here mostly to implement a more or less clean PCI probing
+ * Works only because of previous DMI probing.
+ * It's in compal.c
+ */
+extern const struct pci_device_id lpc_bridge_table[];
+
+/*
+ * Since we are going to trigger an SMI, all registers (I assume this does not
+ * include esp and maybe ebp) and eflags may be mangled in the
+ * process.
+ * We also disable preemtion and IRQs upon SMI call.
+ */
+static inline u32 ati_do_smi_call(u16 function)
+{
+ unsigned long flags;
+ u32 retval = 0;
+
+ local_irq_save(flags);
+ preempt_disable();
+
+/*
+ * eflags, eax, ebx, ecx, edx, esi and edi are clobbered upon writing to SMI_PORT
+ * thus the clobber list.
+ *
+ * Equivalent pseudocode:
+ *
+ * eax = function; [non null]
+ * outw(eax, ATI_SMI_PORT); <- This Trigger an SMI
+ * if( eax == 0 ) [success if eax has been cleared]
+ * goto out;
+ * if( inb(ATI_SMI_PORT + 1) == 0) [if not in eax, success maybe be stored here]
+ * goto out;
+ * retval = -EIO; [too bad]
+ * out:
+ */
+ __asm__ __volatile__("outw %%ax, %2; \
+ orw %%ax, %%ax; \
+ jz 1f; \
+ inw %3, %%ax; \
+ orw %%ax, %%ax; \
+ jz 1f; \
+ movl %4, %0; \
+ 1:;"
+ : "=m" (retval)
+ : "a"(function), "N"(ATI_SMI_PORT), "N"(ATI_SMI_PORT+1), "i"(-EIO)
+ : "memory", "ebx", "ecx", "edx", "esi", "edi", "cc");
+
+ local_irq_restore(flags);
+ preempt_enable_no_resched();
+ return retval;
+}
+
+static inline u32 intel_do_smi_call(u16 function, struct pci_dev *lpc_bridge)
+{
+ u32 state;
+ unsigned long flags;
+ u32 retval = 0;
+ u32 sci_en = 0;
+
+ local_irq_save(flags);
+ preempt_disable();
+
+/*
+ * We get the PMBASE offset ( bits 15:7 at 0x40 offset of PCI config space )
+ * And we access offset 2c (GPE0_EN), save the state, disable all SCI
+ * and restore the state after the SMI call
+ */
+ pci_read_config_dword(lpc_bridge, INTEL_PMBASE, &sci_en);
+ sci_en = sci_en & 0xff80; /* Keep bits 15:7 */
+ sci_en += INTEL_GPE0_EN; /* GPEO_EN offset */
+ state = inl(sci_en);
+ outl(0, sci_en);
+
+/*
+ * eflags, eax, ebx, ecx, edx, esi and edi are clobbered upon writing to SMI_PORT
+ * thus the clobber list.
+ *
+ * Equivalent pseudocode:
+ *
+ * eax = function; [non null]
+ * outw(eax, INTEL_SMI_PORT); <- This Trigger an SMI
+ * if( eax == 0 ) [success if eax has been cleared]
+ * goto out;
+ * retval = -EIO; [too bad]
+ * out:
+ */
+ __asm__ __volatile__("outw %%ax, %2; \
+ orw %%ax, %%ax; \
+ jz 1f; \
+ movl %3, %0; \
+ 1:;"
+ : "=m" (retval)
+ : "a"(function), "N"(INTEL_SMI_PORT), "i"(-EIO)
+ : "memory", "ebx", "ecx", "edx", "esi", "edi", "cc");
+
+ outl(state, sci_en);
+ local_irq_restore(flags);
+ preempt_enable_no_resched();
+ return retval;
+}
+
+static int nbsmi_smi_command(u16 function,
+ const u8 * inputbuffer,
+ u8 * outputbuffer,
+ const struct nbsmi_backend_data *priv_data)
+{
+ int count;
+ u32 retval = 0;
+
+
+ for (count = 0; count < BUFFER_SIZE; count++) {
+ outb(count + priv_data->start_offset, RTC_PORT(2));
+ outb(*(inputbuffer + count), RTC_PORT(3));
+ }
+
+/*
+ * We have to write 0xe4XX to smi_port
+ * where XX is the SMI function code
+ */
+ function = (function & 0xff) << 8;
+ function |= 0xe4;
+
+ switch (priv_data->lpc_bridge->vendor) {
+ case PCI_VENDOR_ID_INTEL:
+ retval = intel_do_smi_call(function, priv_data->lpc_bridge);
+ break;
+ case PCI_VENDOR_ID_ATI:
+ retval = ati_do_smi_call(function);
+ break;
+ default:
+ BUG();
+ }
+
+ if (retval)
+ printk(O_ERR "smi_command failed with error %u.\n", retval);
+
+ for (count = 0; count < BUFFER_SIZE; count++) {
+ outb(count + priv_data->start_offset, RTC_PORT(2));
+ *(outputbuffer + count) = inb(RTC_PORT(3));
+ }
+
+ return retval;
+}
+
+static int nbsmi_smi_read_command(const struct omnibook_operation *io_op, u8 * data)
+{
+ int retval;
+ u8 *inputbuffer;
+ u8 *outputbuffer;
+ struct nbsmi_backend_data *priv_data = io_op->backend->data;
+
+ if (!priv_data)
+ return -ENODEV;
+
+ inputbuffer = kcalloc(BUFFER_SIZE, sizeof(u8), GFP_KERNEL);
+ if (!inputbuffer) {
+ retval = -ENOMEM;
+ goto error1;
+ }
+
+ outputbuffer = kcalloc(BUFFER_SIZE, sizeof(u8), GFP_KERNEL);
+ if (!outputbuffer) {
+ retval = -ENOMEM;
+ goto error2;
+ }
+
+ retval = nbsmi_smi_command((u16) io_op->read_addr, inputbuffer, outputbuffer, priv_data);
+ if (retval)
+ goto out;
+
+ *data = outputbuffer[0];
+
+ if (io_op->read_mask)
+ *data &= io_op->read_mask;
+
+ out:
+ kfree(outputbuffer);
+ error2:
+ kfree(inputbuffer);
+ error1:
+ return retval;
+}
+
+static int nbsmi_smi_write_command(const struct omnibook_operation *io_op, u8 data)
+{
+ int retval;
+ u8 *inputbuffer;
+ u8 *outputbuffer;
+ struct nbsmi_backend_data *priv_data = io_op->backend->data;
+
+ if (!priv_data)
+ return -ENODEV;
+
+ inputbuffer = kcalloc(BUFFER_SIZE, sizeof(u8), GFP_KERNEL);
+ if (!inputbuffer) {
+ retval = -ENOMEM;
+ goto error1;
+ }
+
+ outputbuffer = kcalloc(BUFFER_SIZE, sizeof(u8), GFP_KERNEL);
+ if (!outputbuffer) {
+ retval = -ENOMEM;
+ goto error2;
+ }
+
+ inputbuffer[0] = data;
+
+ retval = nbsmi_smi_command((u16) io_op->write_addr, inputbuffer, outputbuffer, priv_data);
+
+ kfree(outputbuffer);
+ error2:
+ kfree(inputbuffer);
+ error1:
+ return retval;
+}
+
+/*
+ * Read/Write to INDEX/DATA interface at port 0x300 (SMSC Mailbox registers)
+ */
+static inline void nbsmi_ec_read_command(u8 index, u8 * data)
+{
+ outb(index, EC_INDEX_PORT);
+ *data = inb(EC_DATA_PORT);
+}
+
+#if 0
+static inline void nbsmi_ec_write_command(u8 index, u8 data)
+{
+ outb(index, EC_INDEX_PORT);
+ outb(data, EC_DATA_PORT);
+}
+#endif
+
+
+/*
+ * Hotkeys workflow:
+ * 1. Fn+Foo pressed
+ * 2. Scancode 0x6d generated by kbd controller
+ * 3. Scancode 0x6d caught by omnibook input handler
+ * 4. SMI Call issued -> Got keycode of last actually pressed Fn key
+ * 5. nbsmi_scan_table used to associate a detected keycode with a generated one
+ * 6. Generated keycode issued using the omnibook input device
+ */
+
+/*
+ * The input handler should only bind with the standard AT keyboard.
+ * XXX: Scancode 0x6d won't be detected if the keyboard has already been
+ * grabbed (the Xorg event input driver do that)
+ */
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21))
+static int hook_connect(struct input_handler *handler,
+ struct input_dev *dev,
+ const struct input_device_id *id)
+#elif (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
+static struct input_handle *hook_connect(struct input_handler *handler,
+ struct input_dev *dev,
+ const struct input_device_id *id)
+#else
+static struct input_handle *hook_connect(struct input_handler *handler,
+ struct input_dev *dev,
+ struct input_device_id *id)
+#endif
+{
+ struct input_handle *handle;
+ int error;
+
+ /* the 0x0001 vendor magic number is found in atkbd.c */
+ if(!(dev->id.bustype == BUS_I8042 && dev->id.vendor == 0x0001))
+ goto out_nobind;
+
+ if(!strstr(dev->phys, I8042_KBD_PHYS_DESC))
+ goto out_nobind;
+
+ dprintk("hook_connect for device %s.\n", dev->name);
+
+ if(dev->grab)
+ printk(O_WARN "Input device is grabbed by %s, Fn hotkeys won't work.\n",
+ dev->grab->name);
+
+ handle = kzalloc(sizeof(struct input_handle), GFP_KERNEL);
+ if (!handle)
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21))
+ return -ENOMEM;
+#else
+ return NULL;
+#endif
+
+ handle->dev = dev;
+ handle->handler = handler;
+ handle->name = "omnibook_scancode_hook";
+ handle->private = handler->private;
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21))
+ error = input_register_handle(handle);
+ if (error) {
+ dprintk("register_handle failed\n");
+ goto out_nobind_free;
+ }
+ error = input_open_device(handle);
+ if (error) {
+ dprintk("register_handle failed\n");
+ input_unregister_handle(handle);
+ goto out_nobind_free;
+ }
+
+#else
+ error = input_open_device(handle);
+ if (error==0) dprintk("Input device opened\n");
+ else {
+ dprintk("opening input device failed\n");
+ goto out_nobind_free;
+ }
+#endif
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21))
+ return 0;
+out_nobind_free:
+ kfree(handle);
+out_nobind:
+ return -ENODEV;
+#else
+ return handle;
+out_nobind_free:
+ kfree(handle);
+out_nobind:
+ return NULL;
+#endif
+}
+
+static void hook_disconnect(struct input_handle *handle)
+{
+ dprintk("hook_disconnect.\n");
+ input_close_device(handle);
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,21))
+ input_unregister_handle(handle);
+#endif
+ kfree(handle);
+}
+
+/*
+ * Hook for scancode 0x6d. Actual handling is done in a workqueue as
+ * the nbsmi backend might sleep.
+ */
+
+static void hook_event(struct input_handle *handle, unsigned int event_type,
+ unsigned int event_code, int value)
+{
+ if (event_type == EV_MSC && event_code == MSC_SCAN && value == SMI_FN_SCAN)
+ schedule_work(&((struct nbsmi_backend_data *)handle->private)->fnkey_work);
+}
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
+static const struct input_device_id hook_ids[] = {
+#else
+static struct input_device_id hook_ids[] = {
+#endif
+ {
+ .flags = INPUT_DEVICE_ID_MATCH_EVBIT,
+ .evbit = { BIT(EV_KEY) },
+ },
+ { }, /* Terminating entry */
+};
+
+static struct input_handler hook_handler = {
+ .event = hook_event,
+ .connect = hook_connect,
+ .disconnect = hook_disconnect,
+ .name = OMNIBOOK_MODULE_NAME,
+ .id_table = hook_ids,
+};
+
+/*
+ * Define some KEY_ that may be missing in input.h for some kernel versions
+ */
+#ifndef KEY_WLAN
+#define KEY_WLAN 238
+#endif
+
+/*
+ * Detected scancode to keycode table
+ */
+static const struct {
+ unsigned int scancode;
+ unsigned int keycode;
+} nbsmi_scan_table[] = {
+ { KEY_ESC, KEY_MUTE},
+ { KEY_F1, KEY_FN_F1},
+ { KEY_F2, KEY_PROG1},
+ { KEY_F3, KEY_SLEEP},
+ { KEY_F4, KEY_SUSPEND},
+ { KEY_F5, KEY_SWITCHVIDEOMODE},
+ { KEY_F6, KEY_BRIGHTNESSDOWN},
+ { KEY_F7, KEY_BRIGHTNESSUP},
+ { KEY_F8, KEY_WLAN},
+ { KEY_F9, KEY_FN_F9},
+ { KEY_SPACE, KEY_ZOOM},
+ { 0,0},
+};
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19))
+static void omnibook_handle_fnkey(struct work_struct *work);
+#else
+static void omnibook_handle_fnkey(void* data);
+#endif
+
+/*
+ * Register the input handler and the input device in the input subsystem
+ */
+static int register_input_subsystem(struct nbsmi_backend_data *priv_data)
+{
+ int i, retval = 0;
+ struct input_dev *nbsmi_input_dev;
+
+ nbsmi_input_dev = input_allocate_device();
+ if (!nbsmi_input_dev) {
+ retval = -ENOMEM;
+ goto out;
+ }
+
+ nbsmi_input_dev->name = "Omnibook NbSMI scancode generator";
+ nbsmi_input_dev->phys = "omnibook/input0";
+ nbsmi_input_dev->id.bustype = BUS_HOST;
+
+ set_bit(EV_KEY, nbsmi_input_dev->evbit);
+
+ for(i=0 ; i < ARRAY_SIZE(nbsmi_scan_table); i++)
+ set_bit(nbsmi_scan_table[i].keycode, nbsmi_input_dev->keybit);
+
+ retval = input_register_device(nbsmi_input_dev);
+ if(retval) {
+ input_free_device(nbsmi_input_dev);
+ goto out;
+ }
+
+ priv_data->nbsmi_input_dev = nbsmi_input_dev;
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19))
+ INIT_WORK(&priv_data->fnkey_work, *omnibook_handle_fnkey);
+#else
+ INIT_WORK(&priv_data->fnkey_work, *omnibook_handle_fnkey, priv_data);
+#endif
+
+
+ hook_handler.private = priv_data;
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
+ retval = input_register_handler(&hook_handler);
+#else
+ input_register_handler(&hook_handler);
+#endif
+
+ out:
+ return retval;
+}
+
+/*
+ * Try to init the backend
+ * This function can be called blindly as it use a kref
+ * to check if the init sequence was already done.
+ */
+static int omnibook_nbsmi_init(const struct omnibook_operation *io_op)
+{
+ int retval = 0;
+ int i;
+ u8 ec_data;
+ u32 smi_port = 0;
+ struct nbsmi_backend_data *priv_data;
+
+ /* ectypes other than TSM40 have no business with this backend */
+ if (!(omnibook_ectype & TSM40))
+ return -ENODEV;
+
+ if (io_op->backend->already_failed) {
+ dprintk("NbSmi backend init already failed, skipping.\n");
+ return -ENODEV;
+ }
+
+ if (!io_op->backend->data) {
+ /* Fist use of the backend */
+ dprintk("Try to init NbSmi\n");
+ mutex_init(&io_op->backend->mutex);
+ mutex_lock(&io_op->backend->mutex);
+ kref_init(&io_op->backend->kref);
+
+ priv_data = kzalloc(sizeof(struct nbsmi_backend_data), GFP_KERNEL);
+ if (!priv_data) {
+ retval = -ENOMEM;
+ goto error0;
+ }
+
+ /* PCI probing: find the LPC Super I/O bridge PCI device */
+ for (i = 0; !priv_data->lpc_bridge && lpc_bridge_table[i].vendor; ++i)
+ priv_data->lpc_bridge =
+ pci_get_device(lpc_bridge_table[i].vendor, lpc_bridge_table[i].device,
+ NULL);
+
+ if (!priv_data->lpc_bridge) {
+ printk(O_ERR "Fail to find a supported LPC I/O bridge, please report\n");
+ retval = -ENODEV;
+ goto error1;
+ }
+
+ if ((retval = pci_enable_device(priv_data->lpc_bridge))) {
+ printk(O_ERR "Unable to enable PCI device.\n");
+ goto error2;
+ }
+
+ switch (priv_data->lpc_bridge->vendor) {
+ case PCI_VENDOR_ID_INTEL:
+ priv_data->start_offset = INTEL_OFFSET;
+ smi_port = INTEL_SMI_PORT;
+ break;
+ case PCI_VENDOR_ID_ATI:
+ priv_data->start_offset = ATI_OFFSET;
+ smi_port = ATI_SMI_PORT;
+ break;
+ default:
+ BUG();
+ }
+
+ if (!request_region(smi_port, 2, OMNIBOOK_MODULE_NAME)) {
+ printk(O_ERR "Request SMI I/O region error\n");
+ retval = -ENODEV;
+ goto error2;
+ }
+
+ if (!request_region(EC_INDEX_PORT, 2, OMNIBOOK_MODULE_NAME)) {
+ printk(O_ERR "Request EC I/O region error\n");
+ retval = -ENODEV;
+ goto error3;
+ }
+
+ /*
+ * Try some heuristic tests to avoid enabling this interface on unsuported laptops:
+ * See what a port 300h read index 8f gives. Guess there is nothing if read 0xff
+ */
+
+ nbsmi_ec_read_command(SMI_FN_PRESSED, &ec_data);
+ dprintk("NbSmi test probe read: %x\n", ec_data);
+ if (ec_data == 0xff) {
+ printk(O_ERR "Probing at SMSC Mailbox registers failed, disabling NbSmi\n");
+ retval = -ENODEV;
+ goto error4;
+ }
+
+ retval = register_input_subsystem(priv_data);
+ if(retval)
+ goto error4;
+
+ io_op->backend->data = priv_data;
+
+ dprintk("NbSmi init ok\n");
+ mutex_unlock(&io_op->backend->mutex);
+ return 0;
+ } else {
+ dprintk("NbSmi has already been initialized\n");
+ kref_get(&io_op->backend->kref);
+ return 0;
+ }
+ error4:
+ release_region(EC_INDEX_PORT, 2);
+ error3:
+ release_region(smi_port, 2);
+ error2:
+ pci_dev_put(priv_data->lpc_bridge);
+ error1:
+ kfree(priv_data);
+ io_op->backend->data = NULL;
+ error0:
+ io_op->backend->already_failed = 1;
+ mutex_unlock(&io_op->backend->mutex);
+ mutex_destroy(&io_op->backend->mutex);
+ return retval;
+}
+
+/*
+ * Free all allocated stuff and unregister from the input subsystem
+ */
+static void nbsmi_free(struct kref *ref)
+{
+ u32 smi_port = 0;
+ struct omnibook_backend *backend;
+ struct nbsmi_backend_data *priv_data;
+
+ dprintk("NbSmi not used anymore: disposing\n");
+
+ backend = container_of(ref, struct omnibook_backend, kref);
+ priv_data = backend->data;
+
+ flush_scheduled_work();
+ input_unregister_handler(&hook_handler);
+ input_unregister_device(priv_data->nbsmi_input_dev);
+
+ mutex_lock(&backend->mutex);
+
+ switch (priv_data->lpc_bridge->vendor) {
+ case PCI_VENDOR_ID_INTEL:
+ smi_port = INTEL_SMI_PORT;
+ break;
+ case PCI_VENDOR_ID_ATI:
+ smi_port = ATI_SMI_PORT;
+ break;
+ default:
+ BUG();
+ }
+
+ pci_dev_put(priv_data->lpc_bridge);
+ release_region(smi_port, 2);
+ release_region(EC_INDEX_PORT, 2);
+ kfree(priv_data);
+ backend->data = NULL;
+ mutex_unlock(&backend->mutex);
+ mutex_destroy(&backend->mutex);
+}
+
+static void omnibook_nbsmi_exit(const struct omnibook_operation *io_op)
+{
+ /* ectypes other than TSM40 have no business with this backend */
+ BUG_ON(!(omnibook_ectype & TSM40));
+ dprintk("Trying to dispose NbSmi\n");
+ kref_put(&io_op->backend->kref, nbsmi_free);
+}
+
+/*
+ * Adjust the lcd backlight level by delta.
+ * Used for Fn+F6/F7 keypress
+ */
+static int adjust_brighness(int delta)
+{
+ struct omnibook_feature *lcd_feature = omnibook_find_feature("lcd");
+ struct omnibook_operation *io_op;
+ int retval = 0;
+ u8 brgt;
+
+ if(!lcd_feature)
+ return -ENODEV;
+
+ io_op = lcd_feature->io_op;
+
+ mutex_lock(&io_op->backend->mutex);
+
+ if(( retval = __backend_byte_read(io_op, &brgt)))
+ goto out;
+
+ dprintk("FnF6/F7 pressed: adjusting britghtnes.\n");
+
+ if (((int) brgt + delta) < 0)
+ brgt = 0;
+ else if ((brgt + delta) > omnibook_max_brightness)
+ brgt = omnibook_max_brightness;
+ else
+ brgt += delta;
+
+ retval = __backend_byte_write(io_op, brgt);
+
+ out:
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+static const struct omnibook_operation last_scan_op = SIMPLE_BYTE(SMI,SMI_GET_FN_LAST_SCAN,0);
+
+/*
+ * Workqueue handler for Fn hotkeys
+ */
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19))
+static void omnibook_handle_fnkey(struct work_struct *work)
+#else
+static void omnibook_handle_fnkey(void* data)
+#endif
+{
+ int i;
+ u8 gen_scan;
+ struct input_dev *input_dev;
+
+ if(backend_byte_read(&last_scan_op, &gen_scan))
+ return;
+
+ dprintk("detected scancode %x.\n", gen_scan);
+ switch(gen_scan) {
+ case KEY_F6:
+ adjust_brighness(-1);
+ break;
+ case KEY_F7:
+ adjust_brighness(+1);
+ break;
+ }
+
+ for(i = 0 ; i < ARRAY_SIZE(nbsmi_scan_table); i++) {
+ if( gen_scan == nbsmi_scan_table[i].scancode) {
+ dprintk("generating keycode %i.\n", nbsmi_scan_table[i].keycode);
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19))
+ input_dev = container_of(work, struct nbsmi_backend_data, fnkey_work)->nbsmi_input_dev;
+#else
+ input_dev = ((struct nbsmi_backend_data *) data)->nbsmi_input_dev;
+#endif
+ omnibook_report_key(input_dev, nbsmi_scan_table[i].keycode);
+ break;
+ }
+ }
+}
+
+static int omnibook_nbsmi_get_wireless(const struct omnibook_operation *io_op, unsigned int *state)
+{
+ int retval = 0;
+ struct omnibook_operation aerial_op = SIMPLE_BYTE(SMI, SMI_GET_KILL_SWITCH, 0);
+ u8 data;
+
+ if ((retval = nbsmi_smi_read_command(&aerial_op, &data)))
+ goto out;
+
+ dprintk("get_wireless (kill switch) raw_state: %x\n", data);
+
+ *state = data ? KILLSWITCH : 0;
+
+ aerial_op.read_addr = SMI_GET_AERIAL;
+
+ if ((retval = nbsmi_smi_read_command(&aerial_op, &data)))
+ goto out;
+
+ dprintk("get_wireless (aerial) raw_state: %x\n", data);
+
+ *state |= (data & WLEX_MASK) ? WIFI_EX : 0;
+ *state |= (data & WLAT_MASK) ? WIFI_STA : 0;
+ *state |= (data & BTEX_MASK) ? BT_EX : 0;
+ *state |= (data & BTAT_MASK) ? BT_STA : 0;
+
+ out:
+ return retval;
+}
+
+static int omnibook_nbsmi_set_wireless(const struct omnibook_operation *io_op, unsigned int state)
+{
+ int retval = 0;
+ u8 data;
+ struct omnibook_operation aerial_op = SIMPLE_BYTE(SMI, SMI_SET_AERIAL, 0);
+
+ data = !!(state & BT_STA);
+ data |= !!(state & WIFI_STA) << 0x1;
+
+ dprintk("set_wireless raw_state: %x\n", data);
+
+ retval = nbsmi_smi_write_command(&aerial_op, data);
+
+ return retval;
+}
+
+static int omnibook_nbmsi_hotkeys_get(const struct omnibook_operation *io_op, unsigned int *state)
+{
+ int retval;
+ u8 data = 0;
+ struct omnibook_operation hotkeys_op = SIMPLE_BYTE(SMI, SMI_GET_FN_INTERFACE, 0);
+
+ retval = nbsmi_smi_read_command(&hotkeys_op, &data);
+ if (retval < 0)
+ return retval;
+
+ dprintk("get_hotkeys raw_state: %x\n", data);
+
+ *state = (data & SMI_FN_KEYS_MASK) ? HKEY_FN : 0;
+ *state |= (data & SMI_STICK_KEYS_MASK) ? HKEY_STICK : 0;
+ *state |= (data & SMI_FN_TWICE_LOCK_MASK) ? HKEY_TWICE_LOCK : 0;
+ *state |= (data & SMI_FN_DOCK_MASK) ? HKEY_DOCK : 0;
+
+ return 0;
+}
+
+
+static int omnibook_nbmsi_hotkeys_set(const struct omnibook_operation *io_op, unsigned int state)
+{
+ int i, retval;
+ u8 data, rdata;
+ struct omnibook_operation hotkeys_op = SIMPLE_BYTE(SMI, SMI_SET_FN_F5_INTERFACE, 0);
+ u8* data_array;
+
+ data = !!(state & HKEY_FNF5);
+
+ dprintk("set_hotkeys (Fn F5) raw_state: %x\n", data);
+
+ retval = nbsmi_smi_write_command(&hotkeys_op, data);
+ if (retval < 0)
+ return retval;
+
+ hotkeys_op.write_addr = SMI_SET_FN_INTERFACE;
+ hotkeys_op.read_addr = SMI_GET_FN_INTERFACE;
+
+ data = (state & HKEY_FN) ? SMI_FN_KEYS_MASK : 0;
+ data |= (state & HKEY_STICK) ? SMI_STICK_KEYS_MASK : 0;
+ data |= (state & HKEY_TWICE_LOCK) ? SMI_FN_TWICE_LOCK_MASK : 0;
+ data |= (state & HKEY_DOCK) ? SMI_FN_DOCK_MASK : 0;
+
+ dprintk("set_hotkeys (Fn interface) raw_state: %x\n", data);
+
+ /*
+ * Hardware seems to be quite stubborn and multiple retries may be
+ * required. The criteria here is simple: retry until probed state match
+ * the requested one (with timeout).
+ */
+
+ data_array = kcalloc(250, sizeof(u8), GFP_KERNEL);
+ if(!data_array)
+ return -ENODEV;
+
+ for (i = 0; i < 250; i++) {
+ retval = nbsmi_smi_write_command(&hotkeys_op, data);
+ if (retval)
+ goto out;
+ mdelay(1);
+ retval = nbsmi_smi_read_command(&hotkeys_op, &rdata);
+ if(retval)
+ goto out;
+ data_array[i] = rdata;
+ if(rdata == data) {
+ dprintk("check loop ok after %i iters\n.",i);
+ retval = 0;
+ goto out;
+ }
+ }
+ dprintk("error or check loop timeout !!\n");
+ dprintk("forensics datas: ");
+ for (i = 0; i < 250; i++)
+ dprintk_simple("%x ", data_array[i]);
+ dprintk_simple("\n");
+out:
+ kfree(data_array);
+ return retval;
+}
+
+static const unsigned int nbsmi_display_mode_list[] = {
+ DISPLAY_LCD_ON,
+ DISPLAY_LCD_ON | DISPLAY_CRT_ON,
+ DISPLAY_CRT_ON,
+ DISPLAY_LCD_ON | DISPLAY_TVO_ON,
+ DISPLAY_TVO_ON,
+};
+
+static int omnibook_nbmsi_display_get(const struct omnibook_operation *io_op, unsigned int *state)
+{
+ int retval = 0;
+ u8 data;
+
+ retval = nbsmi_smi_read_command(io_op, &data);
+ if (retval < 0)
+ return retval;
+
+ if (data > (ARRAY_SIZE(nbsmi_display_mode_list) - 1))
+ return -EIO;
+
+ *state = nbsmi_display_mode_list[data];
+
+ return DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON;
+}
+
+static int omnibook_nbmsi_display_set(const struct omnibook_operation *io_op, unsigned int state)
+{
+ int retval;
+ int i;
+ u8 matched = 255;
+
+ for (i = 0; i < ARRAY_SIZE(nbsmi_display_mode_list); i++) {
+ if (nbsmi_display_mode_list[i] == state) {
+ matched = i;
+ break;
+ }
+ }
+
+ if(matched == 255) {
+ printk(O_ERR "Display mode %x is unsupported.\n", state);
+ return -EINVAL;
+ }
+
+ retval = nbsmi_smi_write_command(io_op, matched);
+ if (retval < 0)
+ return retval;
+
+ return DISPLAY_LCD_ON | DISPLAY_CRT_ON | DISPLAY_TVO_ON;
+}
+
+struct omnibook_backend nbsmi_backend = {
+ .name = "nbsmi",
+ .hotkeys_read_cap = HKEY_FN | HKEY_STICK | HKEY_TWICE_LOCK | HKEY_DOCK,
+ .hotkeys_write_cap = HKEY_FN | HKEY_STICK | HKEY_TWICE_LOCK | HKEY_DOCK | HKEY_FNF5,
+ .init = omnibook_nbsmi_init,
+ .exit = omnibook_nbsmi_exit,
+ .byte_read = nbsmi_smi_read_command,
+ .byte_write = nbsmi_smi_write_command,
+ .aerial_get = omnibook_nbsmi_get_wireless,
+ .aerial_set = omnibook_nbsmi_set_wireless,
+ .hotkeys_get = omnibook_nbmsi_hotkeys_get,
+ .hotkeys_set = omnibook_nbmsi_hotkeys_set,
+ .display_get = omnibook_nbmsi_display_get,
+ .display_set = omnibook_nbmsi_display_set,
+};
diff --git a/ubuntu/omnibook/omnibook.h b/ubuntu/omnibook/omnibook.h
new file mode 100644
index 00000000000..db811144d51
--- /dev/null
+++ b/ubuntu/omnibook/omnibook.h
@@ -0,0 +1,145 @@
+/*
+ * omnibook.h -- High level data structures and functions of omnibook
+ * support code
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006-2007
+ */
+
+#include <linux/module.h>
+#include <linux/moduleparam.h>
+#include <linux/input.h>
+#include <linux/version.h>
+
+/*
+ * EC types
+ */
+
+extern enum omnibook_ectype_t {
+ NONE = 0, /* 0 Default/unknown EC type */
+ XE3GF = (1<<0), /* 1 HP OmniBook XE3 GF, most old Toshiba Satellites */
+ XE3GC = (1<<1), /* 2 HP OmniBook XE3 GC, GD, GE and compatible */
+ OB500 = (1<<2), /* 3 HP OmniBook 500 and compatible */
+ OB510 = (1<<3), /* 4 HP OmniBook 510 */
+ OB6000 = (1<<4), /* 5 HP OmniBook 6000 */
+ OB6100 = (1<<5), /* 6 HP OmniBook 6100 */
+ XE4500 = (1<<6), /* 7 HP OmniBook xe4500 and compatible */
+ OB4150 = (1<<7), /* 8 HP OmniBook 4150 */
+ XE2 = (1<<8), /* 9 HP OmniBook XE2 */
+ AMILOD = (1<<9), /* 10 Fujitsu Amilo D */
+ TSP10 = (1<<10), /* 11 Toshiba Satellite P10, P15, P20 and compatible */
+ TSM70 = (1<<11), /* 12 Toshiba Satellite M40X, M70 and compatible */
+ TSM40 = (1<<12), /* 13 Toshiba Satellite M40, M45 and Tecra S1 */
+ TSA105 = (1<<13), /* 14 Toshiba Satellite A105 and compatible (Real support is MISSING) */
+ TSM30X = (1<<14), /* 15 Toshiba Stallite M30X and compatible */
+ TSX205 = (1<<15) /* 16 Toshiba Stallite X205 and compatible */
+} omnibook_ectype;
+
+#define ALL_ECTYPES XE3GF|XE3GC|OB500|OB510|OB6000|OB6100|XE4500|OB4150|XE2|AMILOD|TSP10|TSM70|TSM40|TSA105|TSM30X|TSX205
+
+/*
+ * This represent a feature provided by this module
+ */
+
+struct omnibook_operation;
+
+struct omnibook_feature {
+ char *name; /* Name */
+ int enabled; /* Set from module parameter */
+ int (*read) (char *,struct omnibook_operation *); /* Procfile read function */
+ int (*write) (char *,struct omnibook_operation *); /* Procfile write function */
+ int (*init) (struct omnibook_operation *); /* Specific Initialization function */
+ void (*exit) (struct omnibook_operation *); /* Specific Cleanup function */
+ int (*suspend) (struct omnibook_operation *); /* PM Suspend function */
+ int (*resume) (struct omnibook_operation *); /* PM Resume function */
+ int ectypes; /* Type(s) of EC we support for this feature (bitmask) */
+ struct omnibook_tbl *tbl;
+ struct omnibook_operation *io_op;
+ struct list_head list;
+};
+
+/*
+ * State of a Wifi/Bluetooth adapter
+ */
+enum {
+ WIFI_EX = (1<<0), /* 1 1=present 0=absent */
+ WIFI_STA = (1<<1), /* 2 1=enabled 0=disabled */
+ KILLSWITCH = (1<<2), /* 4 1=radio on 0=radio off */
+ BT_EX = (1<<3), /* 8 1=present 0=absent */
+ BT_STA = (1<<4), /* 16 1=enabled 0=disabled */
+};
+
+/*
+ * Hotkeys state backend neutral masks
+ */
+enum {
+ HKEY_ONETOUCH = (1<<0), /* 1 Ontetouch button scancode generation */
+ HKEY_MULTIMEDIA = (1<<1), /* 2 "Multimedia hotkeys" scancode generation */
+ HKEY_FN = (1<<2), /* 4 Fn + foo hotkeys scancode generation */
+ HKEY_STICK = (1<<3), /* 8 Stick key (Fn locked/unlocked on keypress) */
+ HKEY_TWICE_LOCK = (1<<4), /* 16 Press Fn twice to lock */
+ HKEY_DOCK = (1<<5), /* 32 (Un)Dock events scancode generation */
+ HKEY_FNF5 = (1<<6), /* 64 Fn + F5 (toggle display) is enabled */
+};
+
+#define HKEY_LAST_SHIFT 6
+
+/*
+ * Display state backend neutral masks
+ * _ON masks = port is powered up and running
+ * _DET masks = a plugged display have been detected
+ */
+
+enum {
+ DISPLAY_LCD_ON = (1<<0), /* 1 Internal LCD panel */
+ DISPLAY_CRT_ON = (1<<1), /* 2 External VGA port */
+ DISPLAY_TVO_ON = (1<<2), /* 4 External TV-OUT port */
+ DISPLAY_DVI_ON = (1<<3), /* 8 External DVI port */
+ DISPLAY_LCD_DET = (1<<4), /* 16 Internal LCD panel */
+ DISPLAY_CRT_DET = (1<<5), /* 32 External VGA port */
+ DISPLAY_TVO_DET = (1<<6), /* 64 External TV-OUT port */
+ DISPLAY_DVI_DET = (1<<7), /* 128 External DVI port */
+};
+
+extern unsigned int omnibook_max_brightness;
+int set_omnibook_param(const char *val, struct kernel_param *kp);
+int omnibook_lcd_blank(int blank);
+struct omnibook_feature *omnibook_find_feature(char *name);
+void omnibook_report_key(struct input_dev *dev, unsigned int keycode);
+
+/*
+ * __attribute_used__ is not defined anymore in 2.6.24
+ * but __used appeared only in 2.6.22
+ */
+#ifndef __used
+#define __used __attribute_used__
+#endif
+
+#define __declared_feature __attribute__ (( __section__(".features"), __aligned__(__alignof__ (struct omnibook_feature)))) __used
+
+/*
+ * yet another printk wrapper
+ */
+#define O_INFO KERN_INFO OMNIBOOK_MODULE_NAME ": "
+#define O_WARN KERN_WARNING OMNIBOOK_MODULE_NAME ": "
+#define O_ERR KERN_ERR OMNIBOOK_MODULE_NAME ": "
+
+#ifdef CONFIG_OMNIBOOK_DEBUG
+#define dprintk(fmt, args...) printk(KERN_INFO "%s: " fmt, OMNIBOOK_MODULE_NAME, ## args)
+#define dprintk_simple(fmt, args...) printk(fmt, ## args)
+#else
+#define dprintk(fmt, args...) do { } while(0)
+#define dprintk_simple(fmt, args...) do { } while(0)
+#endif
+
+/* End of file */
diff --git a/ubuntu/omnibook/pio.c b/ubuntu/omnibook/pio.c
new file mode 100644
index 00000000000..312811efdf7
--- /dev/null
+++ b/ubuntu/omnibook/pio.c
@@ -0,0 +1,173 @@
+/*
+ * pio.c -- low level functions I/O ports
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+
+#include <linux/types.h>
+#include <linux/delay.h>
+#include <linux/sched.h>
+#include <linux/spinlock.h>
+#include <linux/ioport.h>
+
+#include <asm/io.h>
+#include "hardware.h"
+
+/*
+ * IO port backend. Only support single or dual ports operations
+ * private data structure: it's the linked list of requested ports
+ *
+ * Race condition issue: omnibook_pio_init/exit functions are only called from
+ * omnibook_backend_match and omnibook_remove from init.c, this should happen
+ * only at module init/exit time so there is no need for a lock.
+ */
+
+struct pio_priv_data_t {
+ unsigned long addr;
+ struct kref refcount;
+ struct list_head list;
+};
+
+static struct pio_priv_data_t pio_priv_data = {
+ .addr = 0,
+ .list = LIST_HEAD_INIT(pio_priv_data.list),
+};
+
+/*
+ * Match an entry in the linked list helper function: see if we have and entry
+ * whose addr field match maddr
+ */
+static struct pio_priv_data_t *omnibook_match_port(struct pio_priv_data_t *data,
+ unsigned long maddr)
+{
+ struct pio_priv_data_t *cursor;
+
+ list_for_each_entry(cursor, &data->list, list) {
+ if (cursor->addr == maddr) {
+ return cursor;
+ }
+ }
+ return NULL;
+}
+
+/*
+ * See if we have to request raddr
+ */
+static int omnibook_claim_port(struct pio_priv_data_t *data, unsigned long raddr)
+{
+ struct pio_priv_data_t *match, *new;
+
+ match = omnibook_match_port(data, raddr);
+ if (match) {
+ /* Already requested by us: increment kref and quit */
+ kref_get(&match->refcount);
+ return 0;
+ }
+
+ /* there was no match: request the region and add to list */
+ if (!request_region(raddr, 1, OMNIBOOK_MODULE_NAME)) {
+ printk(O_ERR "Request I/O port error\n");
+ return -ENODEV;
+ }
+
+ new = kmalloc(sizeof(struct pio_priv_data_t), GFP_KERNEL);
+ if (!new) {
+ release_region(raddr, 1);
+ return -ENOMEM;
+ }
+
+ kref_init(&new->refcount);
+ new->addr = raddr;
+ list_add(&new->list, &data->list);
+
+ return 0;
+}
+
+/*
+ * Register read_addr and write_addr
+ */
+static int omnibook_pio_init(const struct omnibook_operation *io_op)
+{
+ int retval = 0;
+
+ if (io_op->read_addr
+ && (retval = omnibook_claim_port(io_op->backend->data, io_op->read_addr)))
+ goto out;
+
+ if (io_op->write_addr && (io_op->write_addr != io_op->read_addr))
+ retval = omnibook_claim_port(io_op->backend->data, io_op->write_addr);
+
+ out:
+ return retval;
+}
+
+/*
+ * REALLY release a port
+ */
+static void omnibook_free_port(struct kref *ref)
+{
+ struct pio_priv_data_t *data;
+
+ data = container_of(ref, struct pio_priv_data_t, refcount);
+ release_region(data->addr, 1);
+ list_del(&data->list);
+ kfree(data);
+}
+
+/*
+ * Unregister read_addr and write_addr
+ */
+static void omnibook_pio_exit(const struct omnibook_operation *io_op)
+{
+ struct pio_priv_data_t *match;
+
+ match = omnibook_match_port(io_op->backend->data, io_op->read_addr);
+ if (match)
+ kref_put(&match->refcount, omnibook_free_port);
+
+ match = omnibook_match_port(io_op->backend->data, io_op->write_addr);
+ if (match)
+ kref_put(&match->refcount, omnibook_free_port);
+
+}
+
+static int omnibook_io_read(const struct omnibook_operation *io_op, u8 * value)
+{
+ *value = inb(io_op->read_addr);
+ if (io_op->read_mask)
+ *value &= io_op->read_mask;
+ return 0;
+}
+
+static int omnibook_io_write(const struct omnibook_operation *io_op, u8 value)
+{
+ outb(io_op->write_addr, value);
+ return 0;
+}
+
+/*
+ * Backend interface declarations
+ */
+struct omnibook_backend pio_backend = {
+ .name = "pio",
+ .data = &pio_priv_data,
+ .init = omnibook_pio_init,
+ .exit = omnibook_pio_exit,
+ .byte_read = omnibook_io_read,
+ .byte_write = omnibook_io_write,
+};
+
+/* End of file */
diff --git a/ubuntu/omnibook/polling.c b/ubuntu/omnibook/polling.c
new file mode 100644
index 00000000000..2d28f7e4e1e
--- /dev/null
+++ b/ubuntu/omnibook/polling.c
@@ -0,0 +1,259 @@
+/*
+ * polling.c -- scancode emulation for volume buttons
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+#include <linux/workqueue.h>
+#include <linux/jiffies.h>
+
+/*
+ * XE3GC type key_polling polling:
+ *
+ * Polling interval for keys (100 ms)
+ */
+
+#define OMNIBOOK_POLL msecs_to_jiffies(100)
+
+/*
+ * workqueue manipulations are mutex protected and thus kept in sync with key_polling_enabled
+ */
+static struct workqueue_struct *omnibook_wq;
+static int key_polling_enabled;
+static DEFINE_MUTEX(poll_mutex);
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19))
+static void omnibook_key_poller(struct work_struct *work);
+DECLARE_DELAYED_WORK(omnibook_poll_work, *omnibook_key_poller);
+#else
+static void omnibook_key_poller(void *data);
+DECLARE_WORK(omnibook_poll_work, *omnibook_key_poller, NULL);
+#endif
+
+static struct omnibook_feature key_polling_driver;
+static struct input_dev *poll_input_dev;
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,19))
+ static void omnibook_key_poller(struct work_struct *work)
+#else
+ static void omnibook_key_poller(void *data)
+#endif
+{
+ u8 q0a;
+ int retval;
+
+ mutex_lock(&key_polling_driver.io_op->backend->mutex);
+ __backend_byte_read(key_polling_driver.io_op, &q0a);
+ __backend_byte_write(key_polling_driver.io_op, 0);
+ mutex_unlock(&key_polling_driver.io_op->backend->mutex);
+
+#ifdef CONFIG_OMNIBOOK_DEBUG
+ if (unlikely(q0a & XE3GC_SLPB_MASK))
+ dprintk("Sleep button pressed.\n");
+ if (unlikely(q0a & XE3GC_F5_MASK))
+ dprintk("Fn-F5 - LCD/CRT switch pressed.\n");
+ if (unlikely(q0a & XE3GC_CNTR_MASK))
+ dprintk("Fn+F3/Fn+F4 - Contrast up or down pressed.\n");
+ if (unlikely(q0a & XE3GC_BRGT_MASK))
+ dprintk("Fn+F1/Fn+F2 - Brightness up or down pressed.\n");
+#endif
+
+ /*
+ * Volume button scancode emulaton
+ * It emulates a key press and a release without repeat as other OneTouch buttons do.
+ */
+
+ if (unlikely(q0a & XE3GC_VOLD_MASK)) {
+ dprintk("Fn-down arrow or Volume down pressed.\n");
+ omnibook_report_key(poll_input_dev, KEY_VOLUMEDOWN);
+ }
+ if (unlikely(q0a & XE3GC_VOLU_MASK)) {
+ dprintk("Fn-up arrow or Volume up pressed.\n");
+ omnibook_report_key(poll_input_dev, KEY_VOLUMEUP);
+ }
+ if (unlikely(q0a & XE3GC_MUTE_MASK)) {
+ dprintk("Fn+F7 - Volume mute pressed.\n");
+ omnibook_report_key(poll_input_dev, KEY_MUTE);
+ }
+
+ retval = queue_delayed_work(omnibook_wq, &omnibook_poll_work, OMNIBOOK_POLL);
+ if(unlikely(!retval)) /* here non-zero on success */
+ printk(O_ERR "Key_poller failed to rearm.\n");
+}
+
+static int omnibook_key_polling_enable(void)
+{
+ int retval = 0;
+
+ if(mutex_lock_interruptible(&poll_mutex))
+ return -ERESTARTSYS;
+
+ if(key_polling_enabled)
+ goto out;
+
+ retval = !queue_delayed_work(omnibook_wq, &omnibook_poll_work, OMNIBOOK_POLL);
+ if(retval)
+ printk(O_ERR "Key_poller enabling failed.\n");
+ else {
+ dprintk("Scancode emulation for volume buttons enabled.\n");
+ key_polling_enabled = 1;
+ }
+
+ out:
+ mutex_unlock(&poll_mutex);
+ return retval;
+}
+
+static int omnibook_key_polling_disable(void)
+{
+ if(mutex_lock_interruptible(&poll_mutex))
+ return -ERESTARTSYS;
+
+ if(!key_polling_enabled)
+ goto out;
+
+ cancel_rearming_delayed_workqueue(omnibook_wq, &omnibook_poll_work);
+ dprintk("Scancode emulation for volume buttons disabled.\n");
+ key_polling_enabled = 0;
+
+ out:
+ mutex_unlock(&poll_mutex);
+ return 0;
+}
+
+
+static int omnibook_key_polling_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+
+ if(mutex_lock_interruptible(&poll_mutex))
+ return -ERESTARTSYS;
+
+ len += sprintf(buffer + len, "Volume buttons polling is %s.\n",
+ (key_polling_enabled) ? "enabled" : "disabled");
+#ifdef CONFIG_OMNIBOOK_DEBUG
+ if(key_polling_enabled)
+ len += sprintf(buffer + len, "Will poll in %i msec.\n",
+ jiffies_to_msecs(omnibook_poll_work.timer.expires - jiffies));
+#endif
+ mutex_unlock(&poll_mutex);
+ return len;
+}
+
+static int omnibook_key_polling_write(char *buffer, struct omnibook_operation *io_op)
+{
+ int retval;
+ switch (*buffer) {
+ case '0':
+ retval = omnibook_key_polling_disable();
+ break;
+ case '1':
+ retval = omnibook_key_polling_enable();
+ break;
+ default:
+ retval = -EINVAL;
+ }
+ return retval;
+}
+
+
+/*
+ * Stop polling upon suspend an restore it upon resume
+ */
+static int omnibook_key_polling_resume(struct omnibook_operation *io_op)
+{
+ int retval = 0;
+
+ mutex_lock(&poll_mutex);
+ if(key_polling_enabled)
+ retval = !queue_delayed_work(omnibook_wq, &omnibook_poll_work, OMNIBOOK_POLL);
+ mutex_unlock(&poll_mutex);
+ return retval;
+}
+
+static int omnibook_key_polling_suspend(struct omnibook_operation *io_op)
+{
+ mutex_lock(&poll_mutex);
+ if(key_polling_enabled)
+ cancel_rearming_delayed_workqueue(omnibook_wq, &omnibook_poll_work);
+ mutex_unlock(&poll_mutex);
+ return 0;
+}
+
+static int __init omnibook_key_polling_init(struct omnibook_operation *io_op)
+{
+ int retval = 0;
+
+ poll_input_dev = input_allocate_device();
+ if (!poll_input_dev) {
+ retval = -ENOMEM;
+ goto out;
+ }
+
+ poll_input_dev->name = "Omnibook legacy laptop scancode generator";
+ poll_input_dev->phys = "omnibook/input0";
+ poll_input_dev->id.bustype = BUS_HOST;
+
+ /* this device has three keys */
+ set_bit(EV_KEY, poll_input_dev->evbit);
+ set_bit(KEY_VOLUMEDOWN, poll_input_dev->keybit);
+ set_bit(KEY_VOLUMEUP, poll_input_dev->keybit);
+ set_bit(KEY_MUTE, poll_input_dev->keybit);
+
+ retval = input_register_device(poll_input_dev);
+ if (retval) {
+ input_free_device(poll_input_dev);
+ goto out;
+ }
+
+ omnibook_wq = create_singlethread_workqueue("omnibook");
+ if(!omnibook_wq)
+ retval = -ENOMEM;
+ else
+ retval = omnibook_key_polling_enable();
+
+out:
+ return retval;
+}
+
+static void __exit omnibook_key_polling_cleanup(struct omnibook_operation *io_op)
+{
+ omnibook_key_polling_disable();
+ destroy_workqueue(omnibook_wq);
+ input_unregister_device(poll_input_dev);
+}
+
+static struct omnibook_tbl key_polling_table[] __initdata = {
+ {XE3GC, SIMPLE_BYTE(EC, XE3GC_Q0A, 0)},
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature key_polling_driver = {
+ .name = "key_polling",
+ .enabled = 0, /* dangerous */
+ .read = omnibook_key_polling_read,
+ .write = omnibook_key_polling_write,
+ .init = omnibook_key_polling_init,
+ .exit = omnibook_key_polling_cleanup,
+ .suspend = omnibook_key_polling_suspend,
+ .resume = omnibook_key_polling_resume,
+ .ectypes = XE3GC,
+ .tbl = key_polling_table,
+};
+
+module_param_named(key_polling, key_polling_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(key_polling, "Use 0 to disable, 1 to enable key polling");
+/* End of file */
diff --git a/ubuntu/omnibook/sections.lds b/ubuntu/omnibook/sections.lds
new file mode 100644
index 00000000000..7fc90dd8832
--- /dev/null
+++ b/ubuntu/omnibook/sections.lds
@@ -0,0 +1,11 @@
+SECTIONS
+{
+ .data :
+ {
+ . = ALIGN(32);
+ _start_features_driver = .;
+ *(.features)
+ _end_features_driver = .;
+ *(.data)
+ }
+}
diff --git a/ubuntu/omnibook/temperature.c b/ubuntu/omnibook/temperature.c
new file mode 100644
index 00000000000..b27b6118fc5
--- /dev/null
+++ b/ubuntu/omnibook/temperature.c
@@ -0,0 +1,55 @@
+/*
+ * temperature.c -- CPU temprature monitoring
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+static int omnibook_temperature_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+ int retval;
+ u8 temp;
+
+ if ((retval = backend_byte_read(io_op, &temp)))
+ return retval;
+
+ len += sprintf(buffer + len, "CPU temperature: %2d C\n", temp);
+
+ return len;
+}
+
+static struct omnibook_tbl temp_table[] __initdata = {
+ {XE3GF | TSP10 | TSM70 | TSM30X | TSX205, SIMPLE_BYTE(EC, XE3GF_CTMP, 0)},
+ {XE3GC | AMILOD, SIMPLE_BYTE(EC, XE3GC_CTMP, 0)},
+ {OB500 | OB510 | OB6000 | OB6100 | XE4500 | XE2, SIMPLE_BYTE(EC, OB500_CTMP, 0)},
+ {OB4150, SIMPLE_BYTE(EC, OB4150_TMP, 0)},
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature temperature_driver = {
+ .name = "temperature",
+ .enabled = 1,
+ .read = omnibook_temperature_read,
+ .ectypes =
+ XE3GF | XE3GC | OB500 | OB510 | OB6000 | OB6100 | XE4500 | OB4150 | XE2 | AMILOD | TSP10
+ | TSM70 | TSM30X | TSX205,
+ .tbl = temp_table,
+};
+
+module_param_named(temperature, temperature_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(temperature, "Use 0 to disable, 1 to enable thermal status and policy support");
+/* End of file */
diff --git a/ubuntu/omnibook/throttling.c b/ubuntu/omnibook/throttling.c
new file mode 100644
index 00000000000..31d7f6ed5d1
--- /dev/null
+++ b/ubuntu/omnibook/throttling.c
@@ -0,0 +1,83 @@
+/*
+ * throttling.c --CPU throttling control feature
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Mathieu Bérard <mathieu.berard@crans.org>, 2007
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+/*
+ * Throttling level/rate mapping found in ICH6M datasheets
+ * the output is set to mimic the one of /proc/acpi/cpu/CPU0/throttling
+ * XXX: We always assume that there are 8 T-States and one processor.
+ */
+static const int trate[8] = { 0, 12, 25, 37, 50, 62, 75, 87 };
+
+static int omnibook_throttle_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+ int tstate = 0;
+ int retval, i;
+
+ retval = backend_throttle_get(io_op, &tstate);
+ if (retval < 0)
+ return retval;
+
+ len += sprintf(buffer + len, "state count: 8\n");
+ len += sprintf(buffer + len, "active state: T%d\n", tstate);
+ for (i = 0; i < 8; i += 1)
+ {
+ len += sprintf(buffer + len, " %cT%d: %02d%%\n",
+ (i == tstate ? '*' : ' '),
+ i,
+ trate[i]);
+ }
+
+ return len;
+}
+
+static int omnibook_throttle_write(char *buffer, struct omnibook_operation *io_op)
+{
+ int retval = 0;
+ int data;
+ char *endp;
+
+ data = simple_strtoul(buffer, &endp, 10);
+ if ((endp == buffer) || (data > 7)) /* There are 8 throttling levels */
+ return -EINVAL;
+ else
+ retval = backend_throttle_set(io_op, data);
+
+ return retval;
+}
+
+
+static struct omnibook_tbl throttle_table[] __initdata = {
+ {TSM70 | TSX205, {ACPI,}},
+ {0,}
+};
+
+struct omnibook_feature __declared_feature throttle_driver = {
+ .name = "throttling",
+ .enabled = 1,
+ .read = omnibook_throttle_read,
+ .write = omnibook_throttle_write,
+ .ectypes = TSM70 | TSX205,
+ .tbl = throttle_table,
+};
+
+module_param_named(throttle, throttle_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(throttle, "Use 0 to disable, 1 to enable CPU throttling control");
+
+/* End of file */
diff --git a/ubuntu/omnibook/touchpad.c b/ubuntu/omnibook/touchpad.c
new file mode 100644
index 00000000000..b95e2ecb5cc
--- /dev/null
+++ b/ubuntu/omnibook/touchpad.c
@@ -0,0 +1,126 @@
+/*
+ * touchpad.c -- enable/disable touchpad
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Soós Péter <sp@osb.hu>, 2002-2004
+ * Modified by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+static int omnibook_touchpad_set(struct omnibook_operation *io_op, int status)
+{
+ int retval = 0;
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+
+ if ((retval = __omnibook_toggle(io_op, !!status))) {
+ printk(O_ERR "Failed touchpad %sable command.\n", status ? "en" : "dis");
+ goto out;
+ }
+
+ io_op->backend->touchpad_state = !!status;
+
+ out:
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+/*
+ * Power management handlers: redisable touchpad on resume (if necessary)
+ */
+static int omnibook_touchpad_resume(struct omnibook_operation *io_op)
+{
+ int retval;
+ mutex_lock(&io_op->backend->mutex);
+ retval = __omnibook_toggle(io_op, !!io_op->backend->touchpad_state);
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+/*
+ * Hardware query is unsupported, so reading is unreliable.
+ */
+static int omnibook_touchpad_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+
+ len +=
+ sprintf(buffer + len, "Last touchpad action was an %s command.\n",
+ io_op->backend->touchpad_state ? "enable" : "disable");
+
+ mutex_unlock(&io_op->backend->mutex);
+ return len;
+}
+
+static int omnibook_touchpad_write(char *buffer, struct omnibook_operation *io_op)
+{
+ int cmd;
+
+ if (*buffer == '0' || *buffer == '1') {
+ cmd = *buffer - '0';
+ if (!omnibook_touchpad_set(io_op, cmd)) {
+ dprintk("%sabling touchpad.\n", cmd ? "En" : "Dis");
+ }
+ } else {
+ return -EINVAL;
+ }
+ return 0;
+}
+
+
+static int __init omnibook_touchpad_init(struct omnibook_operation *io_op)
+{
+ mutex_lock(&io_op->backend->mutex);
+ /* Touchpad is assumed to be enabled by default */
+ io_op->backend->touchpad_state = 1;
+ mutex_unlock(&io_op->backend->mutex);
+ return 0;
+}
+
+/*
+ * Reenable touchpad upon exit
+ */
+static void __exit omnibook_touchpad_cleanup(struct omnibook_operation *io_op)
+{
+ omnibook_touchpad_set(io_op, 1);
+ printk(O_INFO "Enabling touchpad.\n");
+}
+
+static struct omnibook_tbl touchpad_table[] __initdata = {
+ {XE3GF | XE3GC | TSP10,
+ COMMAND(KBC, OMNIBOOK_KBC_CMD_TOUCHPAD_ENABLE, OMNIBOOK_KBC_CMD_TOUCHPAD_DISABLE)},
+ {TSM70, {CDI, 0, TSM70_FN_INDEX, 0, TSM70_TOUCHPAD_ON, TSM70_TOUCHPAD_OFF}},
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature touchpad_driver = {
+ .name = "touchpad",
+ .enabled = 1,
+ .read = omnibook_touchpad_read,
+ .write = omnibook_touchpad_write,
+ .init = omnibook_touchpad_init,
+ .exit = omnibook_touchpad_cleanup,
+ .resume = omnibook_touchpad_resume,
+ .ectypes = XE3GF | XE3GC | TSP10 | TSM70,
+ .tbl = touchpad_table,
+};
+
+module_param_named(touchpad, touchpad_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(touchpad, "Use 0 to disable, 1 to enable touchpad handling");
+
+/* End of file */
diff --git a/ubuntu/omnibook/wireless.c b/ubuntu/omnibook/wireless.c
new file mode 100644
index 00000000000..71b0c41b37a
--- /dev/null
+++ b/ubuntu/omnibook/wireless.c
@@ -0,0 +1,108 @@
+/*
+ * wireless.c Wifi feature
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2, or (at your option) any
+ * later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * Written by Mathieu Bérard <mathieu.berard@crans.org>, 2006
+ *
+ */
+
+#include "omnibook.h"
+#include "hardware.h"
+
+static int omnibook_wifi_read(char *buffer, struct omnibook_operation *io_op)
+{
+ int len = 0;
+ int retval;
+ unsigned int state;
+
+ if ((retval = backend_aerial_get(io_op, &state)))
+ return retval;
+
+ len +=
+ sprintf(buffer + len, "Wifi adapter is %s", (state & WIFI_EX) ? "present" : "absent");
+ if (state & WIFI_EX)
+ len +=
+ sprintf(buffer + len, " and %s", (state & WIFI_STA) ? "enabled" : "disabled");
+ len += sprintf(buffer + len, ".\n");
+ len +=
+ sprintf(buffer + len, "Wifi Kill switch is %s.\n", (state & KILLSWITCH) ? "on" : "off");
+
+ return len;
+
+}
+
+static int omnibook_wifi_write(char *buffer, struct omnibook_operation *io_op)
+{
+ int retval = 0;
+ unsigned int state;
+
+ if(mutex_lock_interruptible(&io_op->backend->mutex))
+ return -ERESTARTSYS;
+
+ if ((retval = __backend_aerial_get(io_op, &state)))
+ goto out;
+
+ if (*buffer == '0')
+ state &= ~WIFI_STA;
+ else if (*buffer == '1')
+ state |= WIFI_STA;
+ else {
+ retval = -EINVAL;
+ goto out;
+ }
+
+ if ((retval = __backend_aerial_set(io_op, state)))
+ return retval;
+
+ out:
+ mutex_unlock(&io_op->backend->mutex);
+ return retval;
+}
+
+static struct omnibook_feature wifi_driver;
+
+static int __init omnibook_wifi_init(struct omnibook_operation *io_op)
+{
+ int retval = 0;
+ unsigned int state;
+
+/*
+ * Refuse enabling/disabling a non-existent device
+ */
+
+ if ((retval = backend_aerial_get(io_op, &state)))
+ return retval;
+
+ if (!(state & WIFI_EX))
+ wifi_driver.write = NULL;
+
+ return retval;
+}
+
+static struct omnibook_tbl wireless_table[] __initdata = {
+ {TSM70 | TSX205, {ACPI,}}, /* stubs to select backend */
+ {TSM40, {SMI,}}, /* stubs to select backend */
+ {0,}
+};
+
+static struct omnibook_feature __declared_feature wifi_driver = {
+ .name = "wifi",
+ .enabled = 1,
+ .read = omnibook_wifi_read,
+ .write = omnibook_wifi_write,
+ .init = omnibook_wifi_init,
+ .ectypes = TSM70 | TSM40 | TSX205,
+ .tbl = wireless_table,
+};
+
+module_param_named(wifi, wifi_driver.enabled, int, S_IRUGO);
+MODULE_PARM_DESC(wifi, "Use 0 to disable, 1 to enable Wifi adapter control");
diff --git a/ubuntu/rfkill/BOM b/ubuntu/rfkill/BOM
new file mode 100644
index 00000000000..4af52e4b77d
--- /dev/null
+++ b/ubuntu/rfkill/BOM
@@ -0,0 +1,6 @@
+Downloaded from: http://sourceforge.net/project/showfiles.php?group_id=108766
+Current Version: 1.3
+Comments:
+
+Had to change &proc_root to NULL due to changes in create/remove proc
+entry usage.
diff --git a/ubuntu/rfkill/Kconfig b/ubuntu/rfkill/Kconfig
new file mode 100644
index 00000000000..efb62c2c5bb
--- /dev/null
+++ b/ubuntu/rfkill/Kconfig
@@ -0,0 +1,9 @@
+config AVERATEC_5100P
+ tristate "Software kill switch for Averatec 5100P"
+ depends on X86
+ default m
+
+config PACKARDBELL_E5
+ tristate "Software kill switch for Packard Bell EasyNote E5"
+ depends on X86
+ default m
diff --git a/ubuntu/rfkill/Makefile b/ubuntu/rfkill/Makefile
new file mode 100644
index 00000000000..f0230c1e26b
--- /dev/null
+++ b/ubuntu/rfkill/Makefile
@@ -0,0 +1,6 @@
+#
+# Makefile for Ubuntu additional drivers
+#
+
+obj-$(CONFIG_AVERATEC_5100P) += av5100.o
+obj-$(CONFIG_PACKARDBELL_E5) += pbe5.o
diff --git a/ubuntu/rfkill/av5100.c b/ubuntu/rfkill/av5100.c
new file mode 100644
index 00000000000..23023f810c6
--- /dev/null
+++ b/ubuntu/rfkill/av5100.c
@@ -0,0 +1,174 @@
+/*******************************************************************************
+
+ Copyright(c) 2003 - 2004 Intel Corporation. All rights reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2 of the GNU General Public License as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program; if not, write to the Free Software Foundation, Inc., 59
+ Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ The full GNU General Public License is included in this distribution in the
+ file called LICENSE.
+
+ Contact Information:
+ James P. Ketrenos <ipw2100-admin@linux.intel.com>
+ Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
+
+*******************************************************************************/
+#include <linux/compiler.h>
+#include <linux/errno.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/types.h>
+#include <linux/netdevice.h>
+#include <linux/version.h>
+#include <linux/proc_fs.h>
+#include <linux/ioport.h>
+#include <asm/uaccess.h>
+#include <asm/io.h>
+
+
+#define DRV_NAME "av5100"
+#define DRV_VERSION "1.3"
+#define DRV_DESCRIPTION "SW RF kill switch for Averatec 5100P"
+#define DRV_COPYRIGHT "Copyright(c) 2003-2004 Intel Corporation"
+
+static int radio = 1;
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
+
+MODULE_PARM(radio, "i");
+
+#else /* LINUX_VERSION_CODE < 2.6.0 */
+
+#include <linux/moduleparam.h>
+module_param(radio, int, 1);
+
+#endif /* LINUX_VERSION_CODE < 2.6.0 */
+
+MODULE_PARM_DESC(radio, "controls state of radio (1=on, 0=off)");
+
+MODULE_DESCRIPTION(DRV_DESCRIPTION);
+MODULE_AUTHOR(DRV_COPYRIGHT);
+MODULE_LICENSE("GPL");
+
+#define AV5100_RADIO_ON (0xe0)
+#define AV5100_RADIO_OFF (0xe1)
+
+static int av5100_radio = AV5100_RADIO_OFF;
+
+static void av5100_set_radio(int state)
+{
+ printk(KERN_INFO DRV_NAME ": Radio being turned %s\n",
+ (state == AV5100_RADIO_ON) ? "ON" : "OFF");
+ outl(0x80020800, 0xcf8);
+ outb(0x6f, 0x0072);
+ outl(0x1800ffff, 0x1184);
+ outb(state, 0x00b2);
+ av5100_radio = state;
+}
+
+
+/*
+ * proc stuff
+ */
+static struct proc_dir_entry *dir_base = NULL;
+
+static int proc_set_radio(struct file *file, const char *buffer,
+ unsigned long count, void *data)
+{
+ av5100_set_radio(buffer[0] == '0' ? AV5100_RADIO_OFF : AV5100_RADIO_ON);
+
+ return count;
+}
+
+static int proc_get_radio(char *page, char **start, off_t offset,
+ int count, int *eof, void *data)
+{
+ int len = 0;
+
+ len += snprintf(page, count, DRV_NAME ": %d\n",
+ av5100_radio == AV5100_RADIO_OFF ? 0 : 1);
+
+ *eof = 1;
+ return len;
+}
+
+
+static void av5100_proc_cleanup(void)
+{
+ if (dir_base) {
+ remove_proc_entry("radio", dir_base);
+ remove_proc_entry(DRV_NAME, NULL);
+ dir_base = NULL;
+ }
+}
+
+
+static int av5100_proc_init(void)
+{
+ struct proc_dir_entry *ent;
+ int err = 0;
+
+ dir_base = create_proc_entry(DRV_NAME, S_IFDIR, NULL);
+ if (dir_base == NULL) {
+ printk(KERN_ERR DRV_NAME ": Unable to initialise /proc/"
+ DRV_NAME "\n");
+ err = -ENOMEM;
+ goto fail;
+ }
+
+
+ ent = create_proc_entry("radio", S_IFREG | S_IRUGO | S_IWUSR,
+ dir_base);
+ if (ent) {
+ ent->read_proc = proc_get_radio;
+ ent->write_proc = proc_set_radio;
+ } else {
+ printk(KERN_ERR
+ "Unable to initialize /proc/" DRV_NAME "/radio\n");
+ err = -ENOMEM;
+ goto fail;
+ }
+
+ return 0;
+
+ fail:
+ av5100_proc_cleanup();
+ return err;
+}
+
+/*
+ * module stuff
+ */
+static int __init av5100_init(void)
+{
+ av5100_proc_init();
+
+ av5100_set_radio((radio == 1) ? AV5100_RADIO_ON : AV5100_RADIO_OFF);
+
+ return 0;
+}
+
+static void __exit av5100_exit(void)
+{
+ av5100_set_radio(AV5100_RADIO_OFF);
+
+ av5100_proc_cleanup();
+}
+
+module_init(av5100_init);
+module_exit(av5100_exit);
+
+/*
+ 1 2 3 4 5 6 7
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+*/
diff --git a/ubuntu/rfkill/pbe5.c b/ubuntu/rfkill/pbe5.c
new file mode 100644
index 00000000000..ca30b24fbdb
--- /dev/null
+++ b/ubuntu/rfkill/pbe5.c
@@ -0,0 +1,205 @@
+/*******************************************************************************
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2 of the GNU General Public License as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program; if not, write to the Free Software Foundation, Inc., 59
+ Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ The full GNU General Public License is included in this distribution in the
+ file called LICENSE.
+
+ Author:
+ Pedro Ramalhais <pmr09313@students.fct.unl.pt>
+
+ Based on:
+ av5100.c from http://ipw2100.sourceforge.net/
+
+*******************************************************************************/
+
+#include <linux/compiler.h>
+#include <linux/errno.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/types.h>
+#include <linux/netdevice.h>
+#include <linux/version.h>
+#include <linux/proc_fs.h>
+#include <linux/ioport.h>
+#include <asm/uaccess.h>
+#include <asm/io.h>
+
+#define DRV_NAME "pbe5"
+#define DRV_VERSION "1.3"
+#define DRV_DESCRIPTION "SW RF kill switch for Packard Bell EasyNote E5"
+#define DRV_AUTHOR "Pedro Ramalhais"
+#define DRV_LICENSE "GPL"
+
+static int radio = 1;
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
+
+MODULE_PARM(radio, "i");
+
+#else /* LINUX_VERSION_CODE < 2.6.0 */
+
+#include <linux/moduleparam.h>
+module_param(radio, int, 1);
+
+#endif /* LINUX_VERSION_CODE < 2.6.0 */
+
+MODULE_PARM_DESC(radio, "controls state of radio (1=on, 0=off)");
+
+MODULE_DESCRIPTION(DRV_DESCRIPTION);
+MODULE_AUTHOR(DRV_AUTHOR);
+MODULE_LICENSE(DRV_LICENSE);
+
+/*
+ * NOTE: These values were obtained from disassembling the Icon.exe program
+ * installed in the Packard Bell EasyNote E5 laptop. The names were guessed,
+ * so don't rely on them.
+ */
+#define PBE5_PORT_TOGGLE 0x0b3
+#define PBE5_VALUE_TOGGLE_ON 0x01
+#define PBE5_VALUE_TOGGLE_OFF 0x00
+#define PBE5_PORT_APPLY 0x0b2
+#define PBE5_VALUE_APPLY 0xef
+
+// Some "booleans" =;-)
+#define PBE5_RADIO_OFF 0
+#define PBE5_RADIO_ON 1
+
+static int pbe5_radio_status = PBE5_RADIO_ON;
+
+unsigned char pbe5_get_radio(void)
+{
+ unsigned char val = 0x00;
+
+ val = inb(PBE5_PORT_TOGGLE);
+
+ return val;
+}
+
+static void pbe5_set_radio(int state_set)
+{
+ pbe5_radio_status = pbe5_get_radio();
+
+ if (pbe5_radio_status != state_set) {
+ // Set the radio toggle register
+ outb(PBE5_VALUE_TOGGLE_ON, PBE5_PORT_TOGGLE);
+ // Commit the radio toggle register value
+ outb(PBE5_VALUE_APPLY, PBE5_PORT_APPLY);
+ // Update the radio status
+ pbe5_radio_status = pbe5_get_radio();
+
+ printk(KERN_INFO DRV_NAME ": Radio turned %s\n",
+ (state_set == PBE5_RADIO_ON) ? "ON" : "OFF");
+ } else {
+ printk(KERN_INFO DRV_NAME ": Radio already %s\n",
+ (state_set == PBE5_RADIO_ON) ? "ON" : "OFF");
+ }
+}
+
+
+/*
+ * proc stuff
+ */
+static struct proc_dir_entry *dir_base = NULL;
+
+static int proc_set_radio(struct file *file, const char *buffer,
+ unsigned long count, void *data)
+{
+ pbe5_set_radio(buffer[0] == '0' ? PBE5_RADIO_OFF : PBE5_RADIO_ON);
+
+ return count;
+}
+
+static int proc_get_radio(char *page, char **start, off_t offset,
+ int count, int *eof, void *data)
+{
+ int len = 0;
+
+ len += snprintf(page, count, DRV_NAME ": %d\n",
+ pbe5_radio_status == PBE5_RADIO_OFF ? 0 : 1);
+
+ *eof = 1;
+ return len;
+}
+
+
+static void pbe5_proc_cleanup(void)
+{
+ if (dir_base) {
+ remove_proc_entry("radio", dir_base);
+ remove_proc_entry(DRV_NAME, NULL);
+ dir_base = NULL;
+ }
+}
+
+
+static int pbe5_proc_init(void)
+{
+ struct proc_dir_entry *ent;
+ int err = 0;
+
+ dir_base = create_proc_entry(DRV_NAME, S_IFDIR, NULL);
+ if (dir_base == NULL) {
+ printk(KERN_ERR DRV_NAME ": Unable to initialise /proc/"
+ DRV_NAME "\n");
+ err = -ENOMEM;
+ goto fail;
+ }
+
+
+ ent = create_proc_entry("radio", S_IFREG | S_IRUGO | S_IWUSR,
+ dir_base);
+ if (ent) {
+ ent->read_proc = proc_get_radio;
+ ent->write_proc = proc_set_radio;
+ } else {
+ printk(KERN_ERR
+ "Unable to initialize /proc/" DRV_NAME "/radio\n");
+ err = -ENOMEM;
+ goto fail;
+ }
+
+ return 0;
+
+ fail:
+ pbe5_proc_cleanup();
+ return err;
+}
+
+/*
+ * module stuff
+ */
+static int __init pbe5_init(void)
+{
+ pbe5_proc_init();
+
+ pbe5_set_radio((radio == 1) ? PBE5_RADIO_ON : PBE5_RADIO_OFF);
+
+ return 0;
+}
+
+static void __exit pbe5_exit(void)
+{
+ pbe5_set_radio(PBE5_RADIO_OFF);
+
+ pbe5_proc_cleanup();
+}
+
+module_init(pbe5_init);
+module_exit(pbe5_exit);
+
+/*
+ 1 2 3 4 5 6 7
+12345678901234567890123456789012345678901234567890123456789012345678901234567890
+*/
diff --git a/ubuntu/rtl8192se/BOM b/ubuntu/rtl8192se/BOM
new file mode 100644
index 00000000000..357639a3505
--- /dev/null
+++ b/ubuntu/rtl8192se/BOM
@@ -0,0 +1,2 @@
+Downloaded from: http://www.realtek.com/products/productsView.aspx?Langid=1&PFid=48&Level=5&Conn=4&ProdID=230
+Current Version: 0015.0127.2010
diff --git a/ubuntu/rtl8192se/Kconfig b/ubuntu/rtl8192se/Kconfig
new file mode 100644
index 00000000000..8b90d6770b5
--- /dev/null
+++ b/ubuntu/rtl8192se/Kconfig
@@ -0,0 +1,5 @@
+config RTL8192SE
+ tristate "Kernel module for RTL81991/2SE or RTL8171 wireless"
+ depends on X86
+ default m
+ ---help---
diff --git a/ubuntu/rtl8192se/Makefile b/ubuntu/rtl8192se/Makefile
new file mode 100755
index 00000000000..0f2c735b6b5
--- /dev/null
+++ b/ubuntu/rtl8192se/Makefile
@@ -0,0 +1,786 @@
+NIC_SELECT = RTL8192SE
+
+CC = gcc
+KVER := $(shell uname -r)
+MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
+
+ifeq ($(shell uname -r|cut -d. -f1,2), 2.6)
+###################### KERNEL 2.6 ################################
+ifeq ($(NIC_SELECT),RTL8192CE)
+sub_folder = rtl8192c
+EXTRA_CFLAGS = -DRTL8192CE
+EXTRA_CFLAGS += -DEEPROM_OLD_FORMAT_SUPPORT=0 \
+ -DRTL8192SU_DISABLE_CCK_RATE=0 \
+ -DDISABLE_BB_RF=0 \
+ -DRTL92SE_FPGA_VERIFY=0 \
+ -DSIMULATE_ETHERNET=0 \
+ -DSUPERMAC_92D_ENABLE=0 \
+ -DEARLYMODE_ENABLE_FOR_92D=0 \
+ -DRTL8192S_DISABLE_FW_DM=0 \
+ -DMP_CCK_WORKAROUND=0 \
+ -DRTL8192SE_DISABLE_MGNT_QUEUE=0 \
+ -DRTL8190_Download_Firmware_From_Header=1 \
+ -DMUTUAL_AUTHENTICATION=1 \
+ -DFOR_QMI=0 \
+ -DENABLE_TKIP11N \
+ -DCONFIG_PM_RTL \
+ -DCONFIG_PM \
+ -DENABLE_IPS \
+ -DENABLE_LPS \
+ -DCONFIG_ASPM_OR_D3 \
+ -DENABLE_GPIO_RADIO_CTL \
+ -DMP_DRIVER=0 \
+ -DENABLE_DOT11D
+ # \
+ -D_ENABLE_SW_BEACON \
+ -DUSE_FW_SOURCE_IMG_FILE \
+ -DEFUSE_REPG_WORKAROUND \
+ -DENABLE_AMSDU \
+ -DADHOC_11N \
+ -DFOR_ANDROID_X86 \
+ -DCONFIG_64BIT_DMA \
+ #
+endif
+
+ifeq ($(NIC_SELECT),RTL8192SE)
+sub_folder = rtl8192s
+EXTRA_CFLAGS = -DRTL8192SE
+EXTRA_CFLAGS += -DEEPROM_OLD_FORMAT_SUPPORT=0 \
+ -DRTL92SE_FPGA_VERIFY=0 \
+ -DDEMO_BOARD_SUPPORT=1 \
+ -DRTL8192SU_DISABLE_CCK_RATE=0 \
+ -DRTL8192S_DISABLE_FW_DM=0 \
+ -DHAL_MAC_ENABLE=1 \
+ -DHAL_BB_ENABLE=1 \
+ -DHAL_RF_ENABLE=1 \
+ -DRTL8192S_PREPARE_FOR_NORMAL_RELEASE=1 \
+ -DDISABLE_BB_RF=0 \
+ -DCONFIG_PM_RTL \
+ -DCONFIG_PM \
+ -DENABLE_GPIO_RADIO_CTL \
+ -DRTL8190_Download_Firmware_From_Header=1 \
+ -DENABLE_LPS \
+ -DCONFIG_RX_CMD \
+ -DENABLE_IPS \
+ -DUSE_FW_SOURCE_IMG_FILE \
+ -DENABLE_DOT11D \
+ -DCONFIG_ASPM_OR_D3 \
+ # \
+ -DCONFIG_CRDA \
+ -DCONFIG_CFG_80211 \
+ -DCONFIG_RTL_RFKILL \
+ -DCONFIG_FW_SETCHAN \
+ -DRTL8192S_WAPI_SUPPORT \
+ -D_ENABLE_SW_BEACON \
+ -DCONFIG_MP \
+ -DENABLE_AMSDU \
+ -DADHOC_11N \
+ -DEFUSE_REPG_WORKAROUN \
+ -DENABLE_TKIP11N \
+ -DFOR_ANDROID_X86 \
+ #
+ #NOTICE:
+ #[1] CONFIG_MP is for MP test,
+ # you should close IPS/LPS/GPIO/ASPM
+ #[2] In order to support CRDA, RFKILL
+ # CONFIG_CFG_80211 need to be enabled at first.
+ #[3] In order to support CRDA,
+ # DOT11D need to be enabled at first.
+ #[4] CRDA and RFKILL can be enabled individually.
+
+
+endif
+ifeq ($(NIC_SELECT),RTL8190P)
+sub_folder = rtl8192e
+EXTRA_CFLAGS += -DRTL8190P \
+ -DUSE_FW_SOURCE_IMG_FILE \
+ -DEEPROM_OLD_FORMAT_SUPPORT=1 \
+ -DENABLE_DOT11D
+ # \
+ -DCONFIG_PM \
+ -DENABLE_TKIP11N \
+ -DFOR_ANDROID_X86 \
+ #
+endif
+ifeq ($(NIC_SELECT),RTL8192E)
+sub_folder = rtl8192e
+EXTRA_CFLAGS+=-DRTL8192E \
+ -DEEPROM_OLD_FORMAT_SUPPORT=1 \
+ -DUSE_FW_SOURCE_IMG_FILE \
+ -DENABLE_IPS \
+ -DENABLE_LPS \
+ -DENABLE_GPIO_RADIO_CTL \
+ -DCONFIG_PM_RTL \
+ -DCONFIG_PM \
+ -DENABLE_DOT11D
+ # \
+ -DCONFIG_RTL8192_IO_MAP \
+ -DCONFIG_ASPM_OR_D3 \
+ -DENABLE_TKIP11N \
+ -DFOR_ANDROID_X86 \
+ #
+endif
+ifeq ($(NIC_SELECT),RTL8191SE_MESH)
+sub_folder = rtl8192s
+EXTRA_CFLAGS += -DRTL8192SE \
+ -DEEPROM_OLD_FORMAT_SUPPORT=0 \
+ -DRTL92SE_FPGA_VERIFY=0 \
+ -DDEMO_BOARD_SUPPORT=1 \
+ -DRTL8192SU_DISABLE_CCK_RATE=0 \
+ -DRTL8192S_DISABLE_FW_DM=0 \
+ -DHAL_MAC_ENABLE=1 \
+ -DHAL_BB_ENABLE=1 \
+ -DHAL_RF_ENABLE=1 \
+ -DRTL8192S_PREPARE_FOR_NORMAL_RELEASE=1 \
+ -DDISABLE_BB_RF=0 \
+ -DRTL8190_Download_Firmware_From_Header=1 \
+ -DEFUSE_REPG_WORKAROUND \
+ -DCONFIG_PM \
+ -DCONFIG_PM_RTL \
+ -DENABLE_GPIO_RADIO_CTL \
+ -DENABLE_IPS \
+ -DENABLE_LPS \
+ -DCONFIG_ASPM_OR_D3 \
+ -DCUSTOMER_ID_INTEL_CMPC \
+ -DMESH_8192_SPECIFIED \
+ -D_RTL8192_EXT_PATCH_ \
+ -D_MESH_DEBUG_ \
+ -DTREE_BASED_ROUTING_ENABLE \
+ -DMESH_PATHSEL_DBG_LV=0 \
+ -DMESH_PATHSEL_DBG_SIMPLE=0 \
+ -DMESH_PATHSEL_DBG_TEST=0 \
+ -DBUILT_IN_MSHCLASS \
+ -DENABLE_AMSDU \
+ -DUSE_FW_SOURCE_IMG_FILE \
+ -DENABLE_DOT11D \
+ -DCONFIG_RX_CMD \
+ # \
+ -DADHOC_11N \
+ -DCOMPATIBLE_WITH_RALINK_MESH \
+ -DCONFIG_CRDA \
+ -DCONFIG_FW_SETCHAN \
+ -DRTL8192S_WAPI_SUPPORT \
+ -DMESH_AUTO_TEST \
+ -D_ENABLE_SW_BEACON \
+ -DEFUSE_REPG_WORKAROUND \
+ -DENABLE_TKIP11N \
+ -DFOR_ANDROID_X86 \
+ -DCONFIG_MP \
+ #
+endif
+
+#it will fail to compile in suse linux enterprise 10 sp2. This flag is to solve this problem.
+ifeq ($(shell uname -r | cut -d. -f1,2,3,4), 2.6.16.60-0)
+ EXTRA_CFLAGS += -DOPENSUSE_SLED=1
+else
+ EXTRA_CFLAGS += -DOPENSUSE_SLED=0
+endif
+
+# Switch AP will fail in moblin2. This flag is to solve this issue.
+ifeq ($(shell uname -r | cut -d. -f6 | cut -d- -f1), moblin2)
+ EXTRA_CFLAGS += -DFOR_MOBLIN
+endif
+
+EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/wireless
+EXTRA_CFLAGS += -std=gnu89
+EXTRA_CFLAGS += -O2
+EXTRA_CFLAGS += -mhard-float -DCONFIG_FORCE_HARD_FLOAT=y
+EXTRA_CFLAGS += -DTHOMAS_TURBO
+#flag for single module compile
+EXTRA_CFLAGS += -DBUILT_IN_RTLLIB
+#EXTRA_CFLAGS += -DCONFIG_RTLWIFI_DEBUGFS
+ifeq ($(NIC_SELECT),RTL8190P)
+r8190_pci-objs := rtl_core.o \
+ rtl_eeprom.o \
+ rtl_ps.o \
+ rtl_wx.o \
+ rtl_cam.o \
+ rtl_dm.o \
+ rtl_pm.o \
+ rtl_debug.o \
+ rtl_ethtool.o \
+ rtl8192e/r8190P_hwimg.o \
+ rtl8192e/r8190P_rtl8256.o \
+ rtl8192e/r8192E_dev.o \
+ rtl8192e/r8192E_phy.o \
+ rtl8192e/r8192E_firmware.o \
+ rtl8192e/r8192E_cmdpkt.o \
+ ../../rtllib/rtllib_rx.o \
+ ../../rtllib/rtllib_softmac.o \
+ ../../rtllib/rtllib_tx.o \
+ ../../rtllib/rtllib_wx.o \
+ ../../rtllib/rtllib_module.o \
+ ../../rtllib/rtllib_softmac_wx.o \
+ ../../rtllib/rtl819x_HTProc.o \
+ ../../rtllib/rtl819x_TSProc.o \
+ ../../rtllib/rtl819x_BAProc.o \
+ ../../rtllib/dot11d.o \
+ ../../rtllib/rtllib_crypt.o \
+ ../../rtllib/rtllib_crypt_tkip.o \
+ ../../rtllib/rtllib_crypt_ccmp.o \
+ ../../rtllib/rtllib_crypt_wep.o
+
+obj-m := r8190_pci.o
+endif
+ifeq ($(NIC_SELECT),RTL8192E)
+r8192e_pci-objs := rtl_core.o \
+ rtl_eeprom.o \
+ rtl_ps.o \
+ rtl_wx.o \
+ rtl_cam.o \
+ rtl_dm.o \
+ rtl_pm.o \
+ rtl_debug.o \
+ rtl_ethtool.o \
+ rtl8192e/r8192E_dev.o \
+ rtl8192e/r8192E_phy.o \
+ rtl8192e/r8192E_firmware.o \
+ rtl8192e/r8192E_cmdpkt.o \
+ rtl8192e/r8192E_hwimg.o \
+ rtl8192e/r8190P_rtl8256.o \
+ rtllib/rtllib_rx.o \
+ rtllib/rtllib_softmac.o \
+ rtllib/rtllib_tx.o \
+ rtllib/rtllib_wx.o \
+ rtllib/rtllib_module.o \
+ rtllib/rtllib_softmac_wx.o \
+ rtllib/rtl819x_HTProc.o \
+ rtllib/rtl819x_TSProc.o \
+ rtllib/rtl819x_BAProc.o \
+ rtllib/dot11d.o \
+ rtllib/rtllib_crypt.o \
+ rtllib/rtllib_crypt_tkip.o \
+ rtllib/rtllib_crypt_ccmp.o \
+ rtllib/rtllib_crypt_wep.o
+obj-m := r8192e_pci.o
+endif
+ifeq ($(NIC_SELECT),RTL8192SE)
+r8192se_pci-objs := rtl_core.o \
+ rtl_regd.o \
+ rtl_rfkill.o \
+ rtl_eeprom.o \
+ rtl_wx.o \
+ rtl_cam.o \
+ rtl_pm.o \
+ rtl_ps.o \
+ rtl_dm.o \
+ rtl_debug.o \
+ rtl_ethtool.o \
+ rtl8192s/r8192S_dev.o \
+ rtl8192s/r8192S_Efuse.o \
+ rtl8192s/r8192S_phy.o \
+ rtl8192s/r8192S_firmware.o \
+ rtl8192s/r8192S_rtl6052.o \
+ rtl8192s/r8192S_hwimg.o \
+ rtl8192s/r8192S_led.o \
+ rtl8192s/r8192S_mp.o \
+ rtl8192s/r8192S_scan.o \
+ rtllib/rtllib_rx.o \
+ rtllib/rtllib_softmac.o \
+ rtllib/rtllib_tx.o \
+ rtllib/rtllib_wx.o \
+ rtllib/rtllib_module.o \
+ rtllib/rtllib_softmac_wx.o \
+ rtllib/rtl819x_HTProc.o \
+ rtllib/rtl819x_TSProc.o \
+ rtllib/rtl819x_BAProc.o \
+ rtllib/dot11d.o \
+ rtllib/rtllib_crypt.o \
+ rtllib/rtllib_crypt_tkip.o \
+ rtllib/rtllib_crypt_ccmp.o \
+ rtllib/rtllib_crypt_wep.o \
+ rtllib/wapi.o \
+ rtllib/wapi_interface.o
+# rtl8192e/r8190P_rtl8256.o
+obj-m := r8192se_pci.o
+endif
+
+ifeq ($(NIC_SELECT),RTL8192CE)
+r8192ce_pci-objs := rtl_core.o \
+ rtl_eeprom.o \
+ rtl_wx.o \
+ rtl_cam.o \
+ rtl_pm.o \
+ rtl_ps.o \
+ rtl_debug.o \
+ rtl_ethtool.o \
+ rtl8192c/r8192C_dev.o \
+ rtl8192c/r8192C_Efuse.o \
+ rtl8192c/r8192C_phy.o \
+ rtl8192c/r8192C_firmware.o \
+ rtl8192c/r8192C_dm.o \
+ rtl8192c/r8192C_rtl6052.o \
+ rtl8192c/r8192C_hwimg.o \
+ rtl8192c/r8192C_led.o \
+ rtl8192c/r8192C_com.o \
+ rtl8192c/r8192C_PhyParam.o \
+ ../../rtllib/rtllib_rx.o \
+ ../../rtllib/rtllib_softmac.o \
+ ../../rtllib/rtllib_tx.o \
+ ../../rtllib/rtllib_wx.o \
+ ../../rtllib/rtllib_module.o \
+ ../../rtllib/rtllib_softmac_wx.o \
+ ../../rtllib/rtl819x_HTProc.o \
+ ../../rtllib/rtl819x_TSProc.o \
+ ../../rtllib/rtl819x_BAProc.o \
+ ../../rtllib/dot11d.o \
+ ../../rtllib/rtllib_crypt.o \
+ ../../rtllib/rtllib_crypt_tkip.o \
+ ../../rtllib/rtllib_crypt_ccmp.o \
+ ../../rtllib/rtllib_crypt_wep.o
+obj-m := r8192ce_pci.o
+endif
+
+ifeq ($(NIC_SELECT),RTL8191SE_MESH)
+r8192se_pci_mesh-objs := rtl_core.o \
+ rtl_regd.o \
+ rtl_rfkill.o \
+ rtl_eeprom.o \
+ rtl_ps.o \
+ rtl_wx.o \
+ rtl_cam.o \
+ rtl_dm.o \
+ rtl_pm.o \
+ rtl_debug.o \
+ rtl_ethtool.o \
+ rtl_mesh.o \
+ rtl8192s/r8192S_dev.o \
+ rtl8192s/r8192S_Efuse.o \
+ rtl8192s/r8192S_phy.o \
+ rtl8192s/r8192S_firmware.o \
+ rtl8192s/r8192S_rtl6052.o \
+ rtl8192s/r8192S_hwimg.o \
+ rtl8192s/r8192S_led.o \
+ rtl8192s/r8192S_mp.o \
+ rtl8192s/r8192S_scan.o \
+ ../../rtllib/rtllib_rx.o \
+ ../../rtllib/rtllib_softmac.o \
+ ../../rtllib/rtllib_tx.o \
+ ../../rtllib/rtllib_wx.o \
+ ../../rtllib/rtllib_module.o \
+ ../../rtllib/rtllib_softmac_wx.o \
+ ../../rtllib/rtl819x_HTProc.o \
+ ../../rtllib/rtl819x_TSProc.o \
+ ../../rtllib/rtl819x_BAProc.o \
+ ../../rtllib/dot11d.o \
+ ../../rtllib/rtllib_crypt.o \
+ ../../rtllib/rtllib_crypt_tkip.o \
+ ../../rtllib/rtllib_crypt_ccmp.o \
+ ../../rtllib/rtllib_crypt_wep.o \
+ ../../mshclass/msh_class.o \
+ ../../mshclass/mesh_8192_util.o \
+ ../../mshclass/rtl8192_mesh.o \
+ ../../mshclass/rtl8192s_sme.o \
+ ../../mshclass/rtl8192_proc.o \
+ ../../mshclass/8192s_pathsel.o \
+ ../../mshclass/hash_table.o \
+ ../../mshclass/rtl8192_sha1.o \
+ ../../mshclass/rtl8192_sha256.o \
+ ../../mshclass/rtl8192_aes.o \
+ ../../mshclass/mesh_abbr_handshk.o \
+ ../../mshclass/rtl8192_bn_ctx.o \
+ ../../mshclass/rtl8192_bn_asm.o \
+ ../../mshclass/rtl8192_bn_gcd.o \
+ ../../mshclass/rtl8192_bn_mont.o \
+ ../../mshclass/rtl8192_bn_recp.o \
+ ../../mshclass/rtl8192_bn_lib.o \
+ ../../mshclass/mesh_ath.o \
+ ../../mshclass/pathselection.o \
+ ../../mshclass/tree_proactive.o
+# rtl8192e/r8190P_rtl8256.o
+obj-m := r8192se_pci_mesh.o
+endif
+
+
+KSRC := /lib/modules/$(KVER)/build
+INSTALL_PREFIX :=
+IMG_DIR := /lib/firmware/
+all: modules
+
+modules:
+ $(MAKE) -C $(KSRC) M=$(PWD) CC=$(CC) modules
+install: modules
+ifeq ($(NIC_SELECT),RTL8190P)
+ install -p -m 644 r8190_pci.ko $(MODDESTDIR)
+endif
+ifeq ($(NIC_SELECT),RTL8192E)
+ install -p -m 644 r8192e_pci.ko $(MODDESTDIR)
+endif
+ifeq ($(NIC_SELECT),RTL8192SE)
+ install -p -m 644 r8192se_pci.ko $(MODDESTDIR)
+endif
+ifeq ($(NIC_SELECT),RTL8192CE)
+ install -p -m 644 r8192ce_pci.ko $(MODDESTDIR)
+endif
+ifeq ($(NIC_SELECT),RTL8191SE_MESH)
+ cp ../../script/mesh-tools /usr/share/enhanced-easy-network/ -rf
+ cp ../../script/mesh.conf /etc/
+ cp ../../script/wpa_mesh_tkip.conf /etc/
+ cp ../../script/wpa_mesh_ccmp.conf /etc/
+ chmod 777 ../../script/do_install
+ ../../script/do_install
+ install -p -m 644 r8192se_pci_mesh.ko $(MODDESTDIR)
+endif
+
+ depmod -a
+ @#copy firmware img to target fold
+ $(shell [ -d "$(IMG_DIR)/`uname -r`" ] && cp -fr $(RTL819x_FIRM_DIR)/$(NIC_SELECT) $(IMG_DIR)/`uname -r`/.)
+ $(shell [ ! -d "$(IMG_DIR)/`uname -r`" ] && cp -fr $(RTL819x_FIRM_DIR)/$(NIC_SELECT) $(IMG_DIR)/.)
+uninstall:
+ifeq ($(NIC_SELECT),RTL8190P)
+ $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8190_pci.ko)
+endif
+ifeq ($(NIC_SELECT),RTL8192E)
+ $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192e_pci.ko)
+endif
+ifeq ($(NIC_SELECT),RTL8192SE)
+ $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192se_pci.ko)
+endif
+ifeq ($(NIC_SELECT),RTL8192CE)
+ $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192ce_pci.ko)
+endif
+ifeq ($(NIC_SELECT),RTL8191SE_MESH)
+ rm -f /etc/wpa_mesh_tkip.conf
+ rm -f /etc/wpa_mesh_ccmp.conf
+ $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192se_pci_mesh.ko)
+endif
+ depmod -a
+ @#delete the firmware img
+ @rm -fr /lib/firmware/$(NIC_SELECT)
+ @rm -fr /lib/firmware/`uname -r`/$(NIC_SELECT)
+else
+###################### KERNEL 2.4 ################################
+LD := ld
+KSRC := /lib/modules/$(KVER)/build
+CONFIG_FILE := $(KSRC)/include/linux/autoconf.h
+CFLAGS += -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall
+CFLAGS += -I$(KSRC)/include -I.
+CFLAGS += -DMODVERSIONS -DEXPORT_SYMTAB -include $(KSRC)/include/linux/modversions.h
+#CFLAGS += -D__NO_VERSION__ -DEXPORT_SYMTAB
+
+ifeq ($(NIC_SELECT),RTL8190P)
+sub_folder = rtl8192e
+CFLAGS += -DRTL8190P
+CFLAGS+=-DEEPROM_OLD_FORMAT_SUPPORT=1
+#CFLAGS +=-DCONFIG_RTLWIFI_DEBUGFS
+endif
+
+ifeq ($(NIC_SELECT),RTL8192E)
+sub_folder = rtl8192e
+CFLAGS += -DRTL8192E
+CFLAGS+=-DEEPROM_OLD_FORMAT_SUPPORT=1
+CFLAGS+=-DENABLE_GPIO_RADIO_CTL
+#CFLAGS += -DENABLE_IPS
+#CFLAGS += -DENABLE_IPS
+#CFLAGS +=-DCONFIG_RTLWIFI_DEBUGFS
+endif
+
+ifeq ($(NIC_SELECT),RTL8192SE)
+sub_folder = rtl8192s
+CFLAGS += -DRTL8192SE
+CFLAGS += -DEEPROM_OLD_FORMAT_SUPPORT=0
+CFLAGS += -DRTL92SE_FPGA_VERIFY=0
+CFLAGS += -DDEMO_BOARD_SUPPORT=1
+CFLAGS += -DRTL8192SU_DISABLE_CCK_RATE=0
+CFLAGS += -DRTL8192S_DISABLE_FW_DM=0
+CFLAGS += -DHAL_MAC_ENABLE=1
+CFLAGS += -DHAL_BB_ENABLE=1
+CFLAGS += -DHAL_RF_ENABLE=1
+CFLAGS += -DRTL8192S_PREPARE_FOR_NORMAL_RELEASE=1
+CFLAGS += -DDISABLE_BB_RF=0
+CFLAGS += -DRTL8190_Download_Firmware_From_Header=1
+#CFLAGS += -DRTL8192S_WAPI_SUPPORT=1
+#CFLAGS +=-DCONFIG_RTLWIFI_DEBUGFS
+#CFLAGS += -DCONFIG_PM_RTL
+#CFLAGS += -DENABLE_GPIO_RADIO_CTL
+#EXTRA_CFLAGS += -DCONFIG_PM
+#EXTRA_CFLAGS += -DENABLE_IPS
+#EXTRA_CFLAGS += -DENABLE_LPS
+#EXTRA_CFLAGS += -DCONFIG_ASPM_OR_D3
+#CFLAGS += -DENABLE_AMSDU
+#CFLAGS += -DADHOC_11N
+endif
+
+ifeq ($(NIC_SELECT),RTL8191SE_MESH)
+sub_folder = rtl8192s
+CFLAGS += -DRTL8192SE
+CFLAGS +=-DEEPROM_OLD_FORMAT_SUPPORT=1
+#CFLAGS +=-DCONFIG_RTLWIFI_DEBUGFS
+CFLAGS += -DEEPROM_OLD_FORMAT_SUPPORT=0
+CFLAGS += -DRTL92SE_FPGA_VERIFY=0
+CFLAGS += -DDEMO_BOARD_SUPPORT=1
+CFLAGS += -DRTL8192SU_DISABLE_CCK_RATE=0
+CFLAGS += -DRTL8192S_DISABLE_FW_DM=0
+CFLAGS += -DHAL_MAC_ENABLE=1
+CFLAGS += -DHAL_BB_ENABLE=1
+CFLAGS += -DHAL_RF_ENABLE=1
+CFLAGS += -DRTL8192S_PREPARE_FOR_NORMAL_RELEASE=1
+CFLAGS += -DDISABLE_BB_RF=0
+CFLAGS += -DCONFIG_PM_RTL
+CFLAGS += -DENABLE_GPIO_RADIO_CTL
+CFLAGS += -DRTL8190_Download_Firmware_From_Header=1
+CFLAGS += -DENABLE_IPS
+CFLAGS += -DENABLE_LPS
+CFLAGS += -DCONFIG_ASPM_OR_D3
+CFLAGS += -D_RTL8192_EXT_PATCH_ \
+ -DMESH_8192_SPECIFIED \
+ -D_MESH_DEBUG_ \
+ -DTREE_BASED_ROUTING_ENABLE \
+ -DMESH_PATHSEL_DBG_LV=0 \
+ -DMESH_PATHSEL_DBG_SIMPLE=0 \
+ -DMESH_PATHSEL_DBG_TEST=0\
+ -DBUILT_IN_MSHCLASS \
+ -DCUSTOMER_ID_INTEL_CMPC \
+ -DENABLE_AMSDU
+endif
+CFLAGS += -DTHOMAS_TURBO
+CFLAGS += -DENABLE_DOT11D
+
+#flag for single module compile
+CFLAGS += -DBUILT_IN_RTLLIB
+CFLAGS += -DBUILT_IN_CRYPTO
+#CFLAGS += -DENABLE_TKIP11N
+
+SMP := $(shell $(CC) $(CFLAGS) -E -dM $(CONFIG_FILE) | \
+ grep CONFIG_SMP | awk '{print $$3}')
+ifneq ($(SMP),1)
+ SMP := 0
+endif
+ifeq ($(SMP),1)
+ CFLAGS += -D__SMP__
+endif
+OBJS := ${patsubst %.c, %.o, ${wildcard *.c}}
+
+ifeq ($(NIC_SELECT),RTL8190P)
+all:r8190_pci.o
+r8190_pci.o: \
+ rtl_core.o \
+ rtl_eeprom.o \
+ rtl_ps.o \
+ rtl_dm.o \
+ rtl_wx.o \
+ rtl_cam.o \
+ rtl_pm.o \
+ rtl_debug.o \
+ rtl_ethtool.o \
+ rtl8192e/r8190P_rtl8256.o \
+ rtl8192e/r8190P_hwimg.o \
+ rtl8192e/r8192E_dev.o \
+ rtl8192e/r8192E_cmdpkt.o\
+ rtl8192e/r8192E_firmware.o \
+ rtl8192e/r8192E_phy.o \
+ ../../rtllib/rtllib_rx.o \
+ ../../rtllib/rtllib_softmac.o \
+ ../../rtllib/rtllib_tx.o \
+ ../../rtllib/rtllib_wx.o \
+ ../../rtllib/rtllib_module.o \
+ ../../rtllib/rtllib_softmac_wx.o \
+ ../../rtllib/rtl819x_HTProc.o \
+ ../../rtllib/rtl819x_TSProc.o \
+ ../../rtllib/rtl819x_BAProc.o \
+ ../../rtllib/dot11d.o \
+ ../../rtllib/rtllib_crypt.o \
+ ../../rtllib/rtllib_crypt_tkip.o \
+ ../../rtllib/rtllib_crypt_ccmp.o \
+ ../../rtllib/rtllib_crypt_wep.o \
+ ../../rtllib/api.o \
+ ../../rtllib/compress.o \
+ ../../rtllib/digest.o \
+ ../../rtllib/cipher.o \
+ ../../rtllib/scatterwalk.o \
+ ../../rtllib/arc4.o \
+ ../../rtllib/michael_mic.o \
+ ../../rtllib/aes.o \
+ ../../rtllib/proc.o
+
+ $(LD) -r $^ -o $@
+install:r8190_pci.o
+ install -p -m 644 r8190_pci.o $(MODDESTDIR)
+ @depmod -a
+uninstall:
+ $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8190_pci.o)
+ @depmod -a
+endif
+
+ifeq ($(NIC_SELECT),RTL8192E)
+all:r8192e_pci.o
+r8192e_pci.o: \
+ rtl_core.o \
+ rtl_eeprom.o \
+ rtl_ps.o \
+ rtl_dm.o \
+ rtl_wx.o \
+ rtl_cam.o \
+ rtl_pm.o \
+ rtl_debug.o \
+ rtl_ethtool.o \
+ rtl8192e/r8192E_dev.o \
+ rtl8192e/r8190P_rtl8256.o \
+ rtl8192e/r8192E_hwimg.o \
+ rtl8192e/r8192E_cmdpkt.o\
+ rtl8192e/r8192E_firmware.o \
+ rtl8192e/r8192E_phy.o \
+ ../../rtllib/rtllib_rx.o \
+ ../../rtllib/rtllib_softmac.o \
+ ../../rtllib/rtllib_tx.o \
+ ../../rtllib/rtllib_wx.o \
+ ../../rtllib/rtllib_module.o \
+ ../../rtllib/rtllib_softmac_wx.o \
+ ../../rtllib/rtl819x_HTProc.o \
+ ../../rtllib/rtl819x_TSProc.o \
+ ../../rtllib/rtl819x_BAProc.o \
+ ../../rtllib/dot11d.o \
+ ../../rtllib/rtllib_crypt.o \
+ ../../rtllib/rtllib_crypt_tkip.o \
+ ../../rtllib/rtllib_crypt_ccmp.o \
+ ../../rtllib/rtllib_crypt_wep.o \
+ ../../rtllib/api.o \
+ ../../rtllib/compress.o \
+ ../../rtllib/digest.o \
+ ../../rtllib/cipher.o \
+ ../../rtllib/scatterwalk.o \
+ ../../rtllib/arc4.o \
+ ../../rtllib/michael_mic.o \
+ ../../rtllib/aes.o \
+ ../../rtllib/proc.o
+
+ $(LD) -r $^ -o $@
+install:
+ install -p -m 644 r8192e_pci.o $(MODDESTDIR)
+ @depmod -a
+uninstall:
+ $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192e_pci.o)
+ @depmod -a
+endif
+
+ifeq ($(NIC_SELECT),RTL8192SE)
+all:r8192se_pci.o
+r8192se_pci.o: rtl_core.o \
+ rtl_debug.o \
+ rtl_ethtool.o \
+ rtl_eeprom.o \
+ rtl_ps.o \
+ rtl_dm.o \
+ rtl_wx.o \
+ rtl_cam.o \
+ rtl_pm.o \
+ rtl8192s/r8192S_dev.o \
+ rtl8192s/r8192S_Efuse.o \
+ rtl8192s/r8192S_firmware.o \
+ rtl8192s/r8192S_hwimg.o \
+ rtl8192s/r8192S_led.o \
+ rtl8192s/r8192S_phy.o \
+ rtl8192s/r8192S_rtl6052.o \
+ ../../rtllib/rtllib_rx.o \
+ ../../rtllib/rtllib_softmac.o \
+ ../../rtllib/rtllib_tx.o \
+ ../../rtllib/rtllib_wx.o \
+ ../../rtllib/rtllib_module.o \
+ ../../rtllib/rtllib_softmac_wx.o \
+ ../../rtllib/rtl819x_HTProc.o \
+ ../../rtllib/rtl819x_TSProc.o \
+ ../../rtllib/rtl819x_BAProc.o \
+ ../../rtllib/dot11d.o \
+ ../../rtllib/rtllib_crypt.o \
+ ../../rtllib/rtllib_crypt_tkip.o \
+ ../../rtllib/rtllib_crypt_ccmp.o \
+ ../../rtllib/rtllib_crypt_wep.o \
+ ../../rtllib/api.o \
+ ../../rtllib/compress.o \
+ ../../rtllib/digest.o \
+ ../../rtllib/cipher.o \
+ ../../rtllib/scatterwalk.o \
+ ../../rtllib/arc4.o \
+ ../../rtllib/michael_mic.o \
+ ../../rtllib/aes.o \
+ ../../rtllib/proc.o \
+ ../../rtllib/wapi.o \
+ ../../rtllib/wapi_interface.o
+# rtl8192e/r8192E_cmdpkt.o
+# rtl8192e/r8190P_rtl8256.o
+ $(LD) -r $^ -o $@
+install:r8192se_pci.o
+ install -p -m 644 r8192se_pci.o $(MODDESTDIR)
+ @depmod -a
+uninstall:
+ $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192se_pci.o)
+ @depmod -a
+endif
+
+ifeq ($(NIC_SELECT),RTL8191SE_MESH )
+all:r8192se_pci_mesh.o
+r8192se_pci_mesh.o: \
+ rtl_core.o \
+ rtl_eeprom.o \
+ rtl_ps.o \
+ rtl_dm.o \
+ rtl_wx.o \
+ rtl_cam.o \
+ rtl_pm.o \
+ rtl_debug.o \
+ rtl_ethtool.o \
+ rtl_mesh.o \
+ rtl8192s/r8192S_dev.o \
+ rtl8192s/r8192S_Efuse.o \
+ rtl8192s/r8192S_firmware.o \
+ rtl8192s/r8192S_hwimg.o \
+ rtl8192s/r8192S_led.o \
+ rtl8192s/r8192S_phy.o \
+ rtl8192s/r8192S_rtl6052.o \
+ ../../rtllib/rtllib_rx.o \
+ ../../rtllib/rtllib_softmac.o \
+ ../../rtllib/rtllib_tx.o \
+ ../../rtllib/rtllib_wx.o \
+ ../../rtllib/rtllib_module.o \
+ ../../rtllib/rtllib_softmac_wx.o \
+ ../../rtllib/rtl819x_HTProc.o \
+ ../../rtllib/rtl819x_TSProc.o \
+ ../../rtllib/rtl819x_BAProc.o \
+ ../../rtllib/dot11d.o \
+ ../../rtllib/rtllib_crypt.o \
+ ../../rtllib/rtllib_crypt_tkip.o \
+ ../../rtllib/rtllib_crypt_ccmp.o \
+ ../../rtllib/rtllib_crypt_wep.o \
+ ../../mshclass/msh_class.o \
+ ../../mshclass/mesh_8192_util.o \
+ ../../mshclass/rtl8192_mesh.o \
+ ../../mshclass/rtl8192s_sme.o \
+ ../../mshclass/rtl8192_proc.o \
+ ../../mshclass/8192s_pathsel.o \
+ ../../mshclass/hash_table.o \
+ ../../mshclass/pathselection.o \
+ ../../mshclass/tree_proactive.o \
+ ../../mshclass/hash_table.o \
+ ../../mshclass/sha1.o \
+ ../../mshclass/sha256.o \
+ ../../mshclass/aes.o \
+ ../../mshclass/mesh_abbr_handshk.o \
+ ../../mshclass/bn_ctx.o \
+ ../../mshclass/bn_asm.o \
+ ../../mshclass/bn_gcd.o \
+ ../../mshclass/bn_mont.o \
+ ../../mshclass/bn_recp.o \
+ ../../mshclass/bn_lib.o \
+ ../../mshclass/mesh_ath.o
+# rtl8192e/r8190P_rtl8256.o \
+# rtl8192e/r8192E_cmdpkt.o
+ $(LD) -r $^ -o $@
+install:r8192se_pci_mesh.o
+ install -p -m 644 r8192se_pci_mesh.o $(MODDESTDIR)
+ @depmod -a
+uninstall:
+ $(shell [ -d $(MODDESTDIR) ] && rm -f $(MODDESTDIR)/r8192se_pci_mesh.o)
+ @depmod -a
+endif
+endif
+
+.PHONY:clean
+clean:
+ rm -fr *.mod.c *.mod *.o .*.cmd *.ko *~
+ rm -fr .tmp_versions
+ rm -fr Modules.symvers
+ rm -fr Module.symvers
+ rm -fr Module.markers
+ rm -fr modules.order
+ rm -fr tags
+ @make -C $(sub_folder)/ clean
diff --git a/ubuntu/rtl8192se/rtl8192s/Makefile b/ubuntu/rtl8192se/rtl8192s/Makefile
new file mode 100755
index 00000000000..86754af2a75
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/Makefile
@@ -0,0 +1,10 @@
+.PHONY:clean
+clean:
+ rm -fr *.mod.c *.mod *.o .*.cmd *.ko *~
+ rm -fr .tmp_versions
+ rm -fr Modules.symvers
+ rm -fr Module.symvers
+ rm -fr Module.markers
+ rm -fr modules.order
+ rm -fr tags
+
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_Efuse.c b/ubuntu/rtl8192se/rtl8192s/r8192S_Efuse.c
new file mode 100755
index 00000000000..0b7c0d8208c
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_Efuse.c
@@ -0,0 +1,1869 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#include "../rtl_core.h"
+#include "r8192S_Efuse.h"
+
+#include <linux/types.h>
+
+#ifdef RTL8192SE
+/*---------------------------Define Local Constant---------------------------*/
+#define _POWERON_DELAY_
+#define _PRE_EXECUTE_READ_CMD_
+
+#define EFUSE_REPEAT_THRESHOLD_ 3
+#define EFUSE_ERROE_HANDLE 1
+
+
+typedef struct _EFUSE_MAP_A{
+ u8 offset;
+ u8 word_start;
+ u8 byte_start;
+ u8 byte_cnts;
+
+}EFUSE_MAP, *PEFUSE_MAP;
+
+typedef struct PG_PKT_STRUCT_A{
+ u8 offset;
+ u8 word_en;
+ u8 data[8];
+}PGPKT_STRUCT,*PPGPKT_STRUCT;
+
+typedef enum _EFUSE_DATA_ITEM{
+ EFUSE_CHIP_ID=0,
+ EFUSE_LDO_SETTING,
+ EFUSE_CLK_SETTING,
+ EFUSE_SDIO_SETTING,
+ EFUSE_CCCR,
+ EFUSE_SDIO_MODE,
+ EFUSE_OCR,
+ EFUSE_F0CIS,
+ EFUSE_F1CIS,
+ EFUSE_MAC_ADDR,
+ EFUSE_EEPROM_VER,
+ EFUSE_CHAN_PLAN,
+ EFUSE_TXPW_TAB
+} EFUSE_DATA_ITEM;
+
+struct efuse_priv
+{
+ u8 id[2];
+ u8 ldo_setting[2];
+ u8 clk_setting[2];
+ u8 cccr;
+ u8 sdio_mode;
+ u8 ocr[3];
+ u8 cis0[17];
+ u8 cis1[48];
+ u8 mac_addr[6];
+ u8 eeprom_verno;
+ u8 channel_plan;
+ u8 tx_power_b[14];
+ u8 tx_power_g[14];
+};
+
+/*---------------------------Define Local Constant---------------------------*/
+
+
+/*------------------------Define global variable-----------------------------*/
+const u8 MAX_PGPKT_SIZE = 9;
+const u8 PGPKT_DATA_SIZE = 8;
+const u32 EFUSE_MAX_SIZE = 512;
+
+const u8 EFUSE_OOB_PROTECT_BYTES = 15;
+
+
+const EFUSE_MAP RTL8712_SDIO_EFUSE_TABLE[]={
+/*ID*/ {0 ,0 ,0 ,2 },
+/*LDO Setting*/ {0 ,1 ,0 ,2 },
+/*CLK Setting*/ {0 ,2 ,0 ,2 },
+/*SDIO Setting*/{1 ,0 ,0 ,1 },
+/*CCCR*/ {1 ,0 ,1 ,1 },
+/*SDIO MODE*/ {1 ,1 ,0 ,1 },
+/*OCR*/ {1 ,1 ,1 ,3 },
+/*CCIS*/ {1 ,3 ,0 ,17 },
+/*F1CIS*/ {3 ,3 ,1 ,48 },
+/*MAC Addr*/ {10 ,0 ,0 ,6 },
+/*EEPROM ver*/ {10 ,3 ,0 ,1 },
+/*Channel plan*/{10 ,3 ,1 ,1 },
+/*TxPwIndex */ {11 ,0 ,0 ,28 }
+};
+
+/*------------------------Define global variable-----------------------------*/
+
+
+/*------------------------Define local variable------------------------------*/
+
+/*------------------------Define local variable------------------------------*/
+
+
+/*--------------------Define function prototype-----------------------*/
+extern void
+EFUSE_Initialize(struct net_device* dev);
+extern u8
+EFUSE_Read1Byte(struct net_device* dev, u16 Address);
+extern void
+EFUSE_Write1Byte(struct net_device* dev, u16 Address,u8 Value);
+
+static void
+efuse_ShadowRead1Byte(struct net_device* dev,u16 Offset,u8 *Value);
+static void
+efuse_ShadowRead2Byte(struct net_device* dev, u16 Offset,u16 *Value );
+static void
+efuse_ShadowRead4Byte(struct net_device* dev, u16 Offset,u32 *Value );
+static void
+efuse_ShadowWrite1Byte(struct net_device* dev, u16 Offset, u8 Value);
+static void
+efuse_ShadowWrite2Byte(struct net_device* dev, u16 Offset,u16 Value);
+static void
+efuse_ShadowWrite4Byte(struct net_device* dev, u16 Offset,u32 Value);
+
+static u8
+efuse_OneByteRead(struct net_device* dev,u16 addr,u8 *data);
+static u8
+efuse_OneByteWrite(struct net_device* dev,u16 addr, u8 data);
+
+static void
+efuse_ReadAllMap(struct net_device* dev,u8 *Efuse);
+#ifdef TO_DO_LIST
+static void
+efuse_WriteAllMap(struct net_device* dev,u8 *eeprom,u32 eeprom_size);
+static bool
+efuse_ParsingMap(char* szStr,u32* pu4bVal,u32* pu4bMove);
+#endif
+static u8
+efuse_PgPacketRead( struct net_device* dev,u8 offset,u8 *data);
+static u8
+efuse_PgPacketWrite(struct net_device* dev,u8 offset,u8 word_en,u8 *data);
+static void
+efuse_WordEnableDataRead( u8 word_en,u8 *sourdata,u8 *targetdata);
+static u8
+efuse_WordEnableDataWrite( struct net_device* dev, u16 efuse_addr, u8 word_en, u8 *data);
+static void
+efuse_PowerSwitch(struct net_device* dev,u8 PwrState);
+static u16
+efuse_GetCurrentSize(struct net_device* dev);
+static u8
+efuse_CalculateWordCnts(u8 word_en);
+#if 0
+static void
+efuse_ResetLoader(struct net_device* dev);
+#endif
+#ifdef TO_DO_LIST
+static void efuse_reg_ctrl(struct net_device* dev, u8 bPowerOn);
+#endif
+/*--------------------Define function prototype-----------------------*/
+
+
+
+extern void
+EFUSE_Initialize(struct net_device* dev)
+{
+ u8 Bytetemp = {0x00};
+ u8 temp = {0x00};
+
+ Bytetemp = read_nic_byte(dev, SYS_FUNC_EN+1);
+ temp = Bytetemp | 0x20;
+ write_nic_byte(dev, SYS_FUNC_EN+1, temp);
+
+ Bytetemp = read_nic_byte(dev, SYS_ISO_CTRL+1);
+ temp = Bytetemp & 0xFE;
+ write_nic_byte(dev, SYS_ISO_CTRL+1, temp);
+
+
+ Bytetemp = read_nic_byte(dev, EFUSE_TEST+3);
+ temp = Bytetemp | 0x80;
+ write_nic_byte(dev, EFUSE_TEST+3, temp);
+
+ write_nic_byte(dev, 0x2F8, 0x3);
+
+ write_nic_byte(dev, EFUSE_CTRL+3, 0x72);
+
+} /* EFUSE_Initialize */
+
+
+extern u8
+EFUSE_Read1Byte(struct net_device* dev, u16 Address)
+{
+ u8 data;
+ u8 Bytetemp = {0x00};
+ u8 temp = {0x00};
+ u32 k=0;
+
+ if (Address < EFUSE_REAL_CONTENT_LEN)
+ {
+ temp = Address & 0xFF;
+ write_nic_byte(dev, EFUSE_CTRL+1, temp);
+ Bytetemp = read_nic_byte(dev, EFUSE_CTRL+2);
+ temp = ((Address >> 8) & 0x03) | (Bytetemp & 0xFC);
+ write_nic_byte(dev, EFUSE_CTRL+2, temp);
+
+ Bytetemp = read_nic_byte(dev, EFUSE_CTRL+3);
+ temp = Bytetemp & 0x7F;
+ write_nic_byte(dev, EFUSE_CTRL+3, temp);
+
+ Bytetemp = read_nic_byte(dev, EFUSE_CTRL+3);
+ while(!(Bytetemp & 0x80))
+ {
+ Bytetemp = read_nic_byte(dev, EFUSE_CTRL+3);
+ k++;
+ if(k==1000)
+ {
+ k=0;
+ break;
+ }
+ }
+ data=read_nic_byte(dev, EFUSE_CTRL);
+ return data;
+ }
+ else
+ return 0xFF;
+
+} /* EFUSE_Read1Byte */
+
+
+extern void
+EFUSE_Write1Byte(struct net_device* dev, u16 Address,u8 Value)
+{
+ u8 Bytetemp = {0x00};
+ u8 temp = {0x00};
+ u32 k=0;
+
+
+ if( Address < EFUSE_REAL_CONTENT_LEN)
+ {
+ write_nic_byte(dev, EFUSE_CTRL, Value);
+
+ temp = Address & 0xFF;
+ write_nic_byte(dev, EFUSE_CTRL+1, temp);
+ Bytetemp = read_nic_byte(dev, EFUSE_CTRL+2);
+
+ temp = ((Address >> 8) & 0x03) | (Bytetemp & 0xFC);
+ write_nic_byte(dev, EFUSE_CTRL+2, temp);
+
+ Bytetemp = read_nic_byte(dev, EFUSE_CTRL+3);
+ temp = Bytetemp | 0x80;
+ write_nic_byte(dev, EFUSE_CTRL+3, temp);
+
+ Bytetemp = read_nic_byte(dev, EFUSE_CTRL+3);
+ while(Bytetemp & 0x80)
+ {
+ Bytetemp = read_nic_byte(dev, EFUSE_CTRL+3);
+ k++;
+ if(k==100)
+ {
+ k=0;
+ break;
+ }
+ }
+ }
+
+} /* EFUSE_Write1Byte */
+
+
+#ifdef EFUSE_FOR_92SU
+void do_93c46(struct net_device* dev, u8 addorvalue)
+{
+ u8 cs[1] = {0x88};
+ u8 cssk[1] = {0x8c};
+ u8 csdi[1] = {0x8a};
+ u8 csskdi[1] = {0x8e};
+ u8 count;
+
+ for(count=0 ; count<8 ; count++)
+ {
+ if((addorvalue&0x80)!=0)
+ {
+ write_nic_byte(dev, EPROM_CMD, csdi[0]);
+ write_nic_byte(dev, EPROM_CMD, csskdi[0]);
+ }
+ else
+ {
+ write_nic_byte(dev, EPROM_CMD, cs[0]);
+ write_nic_byte(dev, EPROM_CMD, cssk[0]);
+ }
+ addorvalue = addorvalue << 1;
+ }
+}
+
+
+u16 Read93C46(struct net_device* dev, u16 Reg )
+{
+
+ u8 clear[1] = {0x0};
+ u8 cs[1] = {0x88};
+ u8 cssk[1] = {0x8c};
+ u8 csdi[1] = {0x8a};
+ u8 csskdi[1] = {0x8e};
+ u8 EepromSEL[1]={0x00};
+ u8 address;
+
+ u16 storedataF[1] = {0x0};
+ u8 t,data[1],storedata[1];
+
+
+ address = (u8)Reg;
+
+ *EepromSEL= read_nic_byte(dev, EPROM_CMD);
+
+ if((*EepromSEL & 0x10) == 0x10)
+ {
+ address = address | 0x80;
+
+ write_nic_byte(dev, EPROM_CMD, csdi[0]);
+ write_nic_byte(dev, EPROM_CMD, csskdi[0]);
+ do_93c46(dev, address);
+ }
+
+
+ for(t=0 ; t<16 ; t++)
+ {
+ write_nic_byte(dev, EPROM_CMD, cs[0]);
+ write_nic_byte(dev, EPROM_CMD, cssk[0]);
+ *data= read_nic_byte(dev, EPROM_CMD);
+
+ if(*data & 0x8d)
+ {
+ *data = *data & 0x01;
+ *storedata = *data;
+ }
+ else
+ {
+ *data = *data & 0x01 ;
+ *storedata = *data;
+ }
+ *storedataF = (*storedataF << 1 ) + *storedata;
+ }
+ write_nic_byte(dev, EPROM_CMD, cs[0]);
+ write_nic_byte(dev, EPROM_CMD, clear[0]);
+
+ return *storedataF;
+}
+
+
+void
+ReadEFuseByte(struct net_device* dev,u16 _offset, u8 *pbuf)
+{
+
+ u32 value32;
+ u8 readbyte;
+ u16 retry;
+
+
+ write_nic_byte(dev, EFUSE_CTRL+1, (_offset & 0xff));
+ readbyte = read_nic_byte(dev, EFUSE_CTRL+2);
+ write_nic_byte(dev, EFUSE_CTRL+2, ((_offset >> 8) & 0x03) | (readbyte & 0xfc));
+
+ readbyte = read_nic_byte(dev, EFUSE_CTRL+3);
+ write_nic_byte(dev, EFUSE_CTRL+3, (readbyte & 0x7f));
+
+ retry = 0;
+ value32 = read_nic_dword(dev, EFUSE_CTRL);
+ while(!(((value32 >> 24) & 0xff) & 0x80) && (retry<10000))
+ {
+ value32 = read_nic_dword(dev, EFUSE_CTRL);
+ retry++;
+ }
+ *pbuf = (u8)(value32 & 0xff);
+}
+
+
+#define EFUSE_READ_SWITCH 1
+void
+ReadEFuse(struct net_device* dev, u16 _offset, u16 _size_byte, u8 *pbuf)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 efuseTbl[EFUSE_MAP_LEN];
+ u8 rtemp8[1];
+ u16 eFuse_Addr = 0;
+ u8 offset, wren;
+ u16 i, j;
+ u16 eFuseWord[EFUSE_MAX_SECTION][EFUSE_MAX_WORD_UNIT];
+ u16 efuse_utilized = 0;
+ u16 efuse_usage = 0;
+#ifdef EFUSE_REPG_WORKAROUND
+ u16 sec1_addr = 0, sec5_addr = 0;
+#endif
+
+ if((_offset + _size_byte)>EFUSE_MAP_LEN)
+ {
+ printk("ReadEFuse(): Invalid offset with read bytes!!\n");
+ return;
+ }
+
+ for (i = 0; i < EFUSE_MAX_SECTION; i++)
+ for (j = 0; j < EFUSE_MAX_WORD_UNIT; j++)
+ eFuseWord[i][j]=0xFFFF;
+
+ for (i = 0; i < EFUSE_MAP_LEN; i++)
+ efuseTbl[i] = 0xFF;
+
+ ReadEFuseByte(dev, eFuse_Addr, rtemp8);
+ if(*rtemp8 != 0xFF)
+ {
+ efuse_utilized++;
+ eFuse_Addr++;
+ }
+ while((*rtemp8 != 0xFF) && (eFuse_Addr < EFUSE_REAL_CONTENT_LEN))
+ {
+ offset = ((*rtemp8 >> 4) & 0x0f);
+#ifdef EFUSE_REPG_WORKAROUND
+ if (IS_HARDWARE_TYPE_8192SE(dev))
+ {
+ if (offset == 1)
+ {
+ sec1_addr = eFuse_Addr;
+ }
+ else if (offset == 5)
+ {
+ sec5_addr = eFuse_Addr;
+ }
+
+ if (sec1_addr > sec5_addr)
+ {
+ priv->efuse_RePGSec1Flag = false;
+ }
+ else
+ {
+ priv->efuse_RePGSec1Flag = true;
+ }
+ }
+#endif
+ if(offset < EFUSE_MAX_SECTION){
+ wren = (*rtemp8 & 0x0f);
+ for(i=0; i<4; i++){
+ if(!(wren & 0x01)){
+ ReadEFuseByte(dev, eFuse_Addr, rtemp8); eFuse_Addr++;
+ efuse_utilized++;
+ eFuseWord[offset][i] = (*rtemp8 & 0xff);
+ if(eFuse_Addr >= EFUSE_REAL_CONTENT_LEN) break;
+ ReadEFuseByte(dev, eFuse_Addr, rtemp8); eFuse_Addr++;
+ efuse_utilized++;
+ eFuseWord[offset][i] |= (((u16)*rtemp8 << 8) & 0xff00);
+ if(eFuse_Addr >= EFUSE_REAL_CONTENT_LEN) break;
+ }
+ wren >>= 1;
+ }
+ }
+ ReadEFuseByte(dev, eFuse_Addr, rtemp8);
+ if(*rtemp8 != 0xFF && (eFuse_Addr < 512))
+ {
+ efuse_utilized++;
+ eFuse_Addr++;
+ }
+ }
+
+ for(i=0; i<EFUSE_MAX_SECTION; i++){
+ for(j=0; j<EFUSE_MAX_WORD_UNIT; j++){
+ efuseTbl[(i*8)+(j*2)]=(eFuseWord[i][j] & 0xff);
+ efuseTbl[(i*8)+((j*2)+1)]=((eFuseWord[i][j] >> 8) & 0xff);
+#ifdef FUSE_REPG_WORKAROUND
+ if ((i == 1) && (priv->efuse_RePGSec1Flag == true))
+ {
+ priv->efuse_RePGData[j*2]=(eFuseWord[i][j] & 0xff);
+ priv->efuse_RePGData[(j*2)+1]=((eFuseWord[i][j] >> 8) & 0xff);
+ }
+#endif
+ }
+ }
+ for(i=0; i<_size_byte; i++)
+ pbuf[i] = efuseTbl[_offset+i];
+ priv->EfuseUsedBytes = efuse_utilized;
+ efuse_usage = (u8)((efuse_utilized*100)/EFUSE_REAL_CONTENT_LEN);
+ priv->EfuseUsedPercentage = efuse_usage;
+}
+#endif
+
+extern bool EFUSE_ShadowUpdateChk(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 SectionIdx, i, Base;
+ u16 WordsNeed = 0, HdrNum = 0, TotalBytes = 0, EfuseUsed = 0;
+ bool bWordChanged, bResult = true;
+
+ for (SectionIdx = 0; SectionIdx < 16; SectionIdx++) {
+ Base = SectionIdx * 8;
+ bWordChanged = false;
+
+ for (i = 0; i < 8; i=i+2) {
+ if((priv->EfuseMap[EFUSE_INIT_MAP][Base+i] !=
+ priv->EfuseMap[EFUSE_MODIFY_MAP][Base+i]) ||
+ (priv->EfuseMap[EFUSE_INIT_MAP][Base+i+1] !=
+ priv->EfuseMap[EFUSE_MODIFY_MAP][Base+i+1])) {
+ WordsNeed++;
+ bWordChanged = true;
+ }
+ }
+
+ if( bWordChanged == true )
+ HdrNum++;
+ }
+
+ TotalBytes = HdrNum + WordsNeed * 2;
+ EfuseUsed = priv->EfuseUsedBytes;
+
+ if ((TotalBytes + EfuseUsed) >= (EFUSE_MAX_SIZE - EFUSE_OOB_PROTECT_BYTES))
+ bResult = false;
+
+ return bResult;
+}
+
+extern void
+EFUSE_ShadowRead( struct net_device* dev, u8 Type, u16 Offset, u32 *Value)
+{
+
+ if (Type == 1)
+ efuse_ShadowRead1Byte(dev, Offset, (u8 *)Value);
+ else if (Type == 2)
+ efuse_ShadowRead2Byte(dev, Offset, (u16 *)Value);
+ else if (Type == 4)
+ efuse_ShadowRead4Byte(dev, Offset, (u32 *)Value);
+
+}
+
+
+extern void
+EFUSE_ShadowWrite( struct net_device* dev, u8 Type, u16 Offset,u32 Value)
+{
+
+ if (Offset >= 0x18 && Offset <= 0x1F)
+ return;
+
+ if (Type == 1)
+ efuse_ShadowWrite1Byte(dev, Offset, (u8)Value);
+ else if (Type == 2)
+ efuse_ShadowWrite2Byte(dev, Offset, (u16)Value);
+ else if (Type == 4)
+ efuse_ShadowWrite4Byte(dev, Offset, (u32)Value);
+
+}
+
+
+extern bool EFUSE_ShadowUpdate(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u16 i, offset, base = 0;
+ u8 word_en = 0x0F;
+ bool first_pg = false;
+
+ if (!EFUSE_ShadowUpdateChk(dev)) {
+ efuse_ReadAllMap(dev, &priv->EfuseMap[EFUSE_INIT_MAP][0]);
+ memcpy(&priv->EfuseMap[EFUSE_MODIFY_MAP][0],
+ (void *)&priv->EfuseMap[EFUSE_INIT_MAP][0], HWSET_MAX_SIZE_92S);
+
+ printk("<---EFUSE_ShadowUpdate(): Efuse out of capacity!!\n");
+ return false;
+ }
+
+ efuse_PowerSwitch(dev, true);
+
+ for (offset = 0; offset < 16; offset++)
+ {
+ if(IS_HARDWARE_TYPE_8192SE(dev)){
+ if (offset == 3)
+ continue;
+ }
+ word_en = 0x0F;
+ base = offset * 8;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (offset == 0 && priv->EfuseMap[EFUSE_INIT_MAP][base+i] == 0xFF)
+ {
+ first_pg = true;
+ }
+
+ if (first_pg == true && offset == 1 && IS_HARDWARE_TYPE_8192SE(dev))
+ {
+ continue;
+ }
+
+ if (first_pg == true)
+ {
+ word_en &= ~(BIT(i/2));
+ priv->EfuseMap[EFUSE_INIT_MAP][base+i] =
+ priv->EfuseMap[EFUSE_MODIFY_MAP][base+i];
+ }else
+ {
+ if ( priv->EfuseMap[EFUSE_INIT_MAP][base+i] !=
+ priv->EfuseMap[EFUSE_MODIFY_MAP][base+i])
+ {
+ word_en &= ~(EFUSE_BIT(i/2));
+
+ priv->EfuseMap[EFUSE_INIT_MAP][base+i] =
+ priv->EfuseMap[EFUSE_MODIFY_MAP][base+i];
+ }
+ }
+ }
+
+ if (word_en != 0x0F)
+ {
+ u8 tmpdata[8];
+
+ memcpy(tmpdata, &(priv->EfuseMap[EFUSE_MODIFY_MAP][base]), 8);
+ efuse_PgPacketWrite(dev,(u8)offset,word_en,tmpdata);
+ }
+
+ }
+ if (first_pg == true && IS_HARDWARE_TYPE_8192SE(dev))
+ {
+ u8 tmpdata[8];
+
+ memcpy(tmpdata, (&priv->EfuseMap[EFUSE_MODIFY_MAP][8]), 8);
+ efuse_PgPacketWrite(dev, 1, 0x0, tmpdata);
+#if 0
+ u1Byte tmpdata[8] = {0xFF, 0xFF, 0xEC, 0x10, 0xFF, 0xFF, 0xFF, 0xFF};
+
+ efuse_PgPacketWrite(pAdapter, 1, 0xD, tmpdata);
+#endif
+ }
+
+
+ efuse_PowerSwitch(dev, false);
+ efuse_ReadAllMap(dev, &priv->EfuseMap[EFUSE_INIT_MAP][0]);
+ memcpy(&priv->EfuseMap[EFUSE_MODIFY_MAP][0],
+ (void *)&priv->EfuseMap[EFUSE_INIT_MAP][0], HWSET_MAX_SIZE_92S);
+
+ return true;
+}
+
+
+extern void EFUSE_ShadowMapUpdate(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if (priv->AutoloadFailFlag == true){
+ memset(&(priv->EfuseMap[EFUSE_INIT_MAP][0]), 0xff, 128);
+ }else{
+ efuse_ReadAllMap(dev, &priv->EfuseMap[EFUSE_INIT_MAP][0]);
+ }
+ memcpy(&priv->EfuseMap[EFUSE_MODIFY_MAP][0],
+ &priv->EfuseMap[EFUSE_INIT_MAP][0], HWSET_MAX_SIZE_92S);
+
+}
+
+
+extern void
+EFUSE_ForceWriteVendorId( struct net_device* dev)
+{
+ u8 tmpdata[8] = {0xFF, 0xFF, 0xEC, 0x10, 0xFF, 0xFF, 0xFF, 0xFF};
+
+ efuse_PowerSwitch(dev, true);
+
+ efuse_PgPacketWrite(dev, 1, 0xD, tmpdata);
+
+ efuse_PowerSwitch(dev, false);
+
+}
+
+extern void
+EFUSE_RePgSection1(struct net_device* dev)
+{
+#ifdef EFUSE_REPG_WORKAROUND
+
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if (priv->efuse_RePGSec1Flag == true)
+ {
+ efuse_PowerSwitch(dev, true);
+ RT_TRACE(COMP_INIT, "EFUSE REPG: %p, %u\n", priv->efuse_RePGData, 8);
+
+ efuse_PgPacketWrite(dev, 1, 0x0d, priv->efuse_RePGData);
+ efuse_PowerSwitch(dev, false);
+ priv->efuse_RePGSec1Flag = false;
+ }
+#endif
+}
+
+
+static void
+efuse_ShadowRead1Byte(struct net_device* dev, u16 Offset, u8 *Value)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ *Value = priv->EfuseMap[EFUSE_MODIFY_MAP][Offset];
+
+}
+
+static void
+efuse_ShadowRead2Byte(struct net_device* dev, u16 Offset, u16 *Value)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ *Value = priv->EfuseMap[EFUSE_MODIFY_MAP][Offset];
+ *Value |= priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+1]<<8;
+
+}
+
+static void
+efuse_ShadowRead4Byte(struct net_device* dev, u16 Offset, u32 *Value)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ *Value = priv->EfuseMap[EFUSE_MODIFY_MAP][Offset];
+ *Value |= priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+1]<<8;
+ *Value |= priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+2]<<16;
+ *Value |= priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+3]<<24;
+
+}
+
+
+
+static void
+efuse_ShadowWrite1Byte(struct net_device* dev, u16 Offset, u8 Value)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ priv->EfuseMap[EFUSE_MODIFY_MAP][Offset] = Value;
+
+}
+
+static void
+efuse_ShadowWrite2Byte(struct net_device* dev, u16 Offset, u16 Value)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ priv->EfuseMap[EFUSE_MODIFY_MAP][Offset] = Value&0x00FF;
+ priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+1] = Value>>8;
+
+}
+
+static void
+efuse_ShadowWrite4Byte(struct net_device* dev, u16 Offset, u32 Value)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ priv->EfuseMap[EFUSE_MODIFY_MAP][Offset] = (u8)(Value&0x000000FF);
+ priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+1] = (u8)((Value>>8)&0x0000FF);
+ priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+2] = (u8)((Value>>16)&0x00FF);
+ priv->EfuseMap[EFUSE_MODIFY_MAP][Offset+3] = (u8)((Value>>24)&0xFF);
+
+}
+
+
+static u8
+efuse_OneByteRead(struct net_device* dev, u16 addr,u8 *data)
+{
+ u8 tmpidx = 0;
+ u8 bResult;
+
+ write_nic_byte(dev, EFUSE_CTRL+1, (u8)(addr&0xff));
+ write_nic_byte(dev, EFUSE_CTRL+2, ((u8)((addr>>8) &0x03) ) |
+ (read_nic_byte(dev, EFUSE_CTRL+2)&0xFC ));
+
+ write_nic_byte(dev, EFUSE_CTRL+3, 0x72);
+
+ while(!(0x80 &read_nic_byte(dev, EFUSE_CTRL+3))&&(tmpidx<100))
+ {
+ tmpidx++;
+ }
+ if(tmpidx<100)
+ {
+ *data=read_nic_byte(dev, EFUSE_CTRL);
+ bResult = true;
+ }
+ else
+ {
+ *data = 0xff;
+ bResult = false;
+ }
+ return bResult;
+}
+
+static u8
+efuse_OneByteWrite(struct net_device* dev, u16 addr, u8 data)
+{
+ u8 tmpidx = 0;
+ u8 bResult;
+
+
+
+ write_nic_byte(dev, EFUSE_CTRL+1, (u8)(addr&0xff));
+ write_nic_byte(dev, EFUSE_CTRL+2,
+ read_nic_byte(dev, EFUSE_CTRL+2)|(u8)((addr>>8)&0x03) );
+
+ write_nic_byte(dev, EFUSE_CTRL, data);
+ write_nic_byte(dev, EFUSE_CTRL+3, 0xF2);
+
+ while((0x80 & read_nic_byte(dev, EFUSE_CTRL+3)) && (tmpidx<100) ){
+ tmpidx++;
+ }
+
+ if(tmpidx<100)
+ {
+ bResult = true;
+ }
+ else
+ {
+ bResult = false;
+ }
+
+ return bResult;
+}
+
+
+static void
+efuse_ReadAllMap(struct net_device* dev, u8 *Efuse)
+{
+
+ efuse_PowerSwitch(dev, true);
+ ReadEFuse(dev, 0, 128, Efuse);
+ efuse_PowerSwitch(dev, false);
+#if 0
+ RT_TRACE(COMP_INIT, "efuse_ResetLoader\n");
+ efuse_ResetLoader(dev);
+
+ write_nic_byte(dev, EFUSE_CLK, 0x03);
+
+ ReadEFuse(dev, 0, 128, Efuse);
+
+ write_nic_byte(dev, EFUSE_CLK, 0x02);
+#if 0
+ for(offset = 0;offset<16;offset++)
+ {
+ PlatformFillMemory((PVOID)pg_data, 8, 0xff);
+ efuse_PgPacketRead(pAdapter,offset,pg_data);
+
+ PlatformMoveMemory((PVOID)&Efuse[offset*8], (PVOID)pg_data, 8);
+ }
+#endif
+
+ if (Efuse[0] != 0x29 || Efuse[1] != 0x81)
+ {
+ if (index ++ < 5)
+ {
+ RT_TRACE(COMP_INIT, "EFUSE R FAIL %d\n", index);
+ efuse_ReadAllMap(dev, Efuse);
+ }
+ }
+ else
+ {
+ index = 0;
+ }
+
+#endif
+}
+
+
+#ifdef TO_DO_LIST
+static void
+efuse_WriteAllMap(struct net_device* dev,u8 *eeprom, u32 eeprom_size)
+{
+ unsigned char word_en = 0x00;
+
+ unsigned char tmpdata[8];
+ unsigned char offset;
+
+ efuse_PowerSwitch(dev, true);
+
+ for(offset=0 ; offset< eeprom_size/PGPKT_DATA_SIZE ; offset++)
+ {
+ if (IS_HARDWARE_TYPE_8192SE(dev))
+ {
+ if (offset == 3/* || offset > 9*/)
+ continue;
+ else
+ word_en = 0x00;
+ }
+
+ memcpy(tmpdata, (eeprom+(offset*PGPKT_DATA_SIZE)), 8);
+
+
+ efuse_PgPacketWrite(dev,offset,word_en,tmpdata);
+
+
+ }
+
+ efuse_PowerSwitch(dev, false);
+
+}
+#endif
+static u8
+efuse_PgPacketRead( struct net_device* dev, u8 offset, u8 *data)
+{
+ u8 ReadState = PG_STATE_HEADER;
+
+ bool bContinual = true;
+ bool bDataEmpty = true ;
+
+ u8 efuse_data,word_cnts=0;
+ u16 efuse_addr = 0;
+ u8 hoffset=0,hworden=0;
+ u8 tmpidx=0;
+ u8 tmpdata[8];
+
+ if(data==NULL) return false;
+ if(offset>15) return false;
+
+ memset(data, 0xff, sizeof(u8)*PGPKT_DATA_SIZE);
+ memset(tmpdata, 0xff, sizeof(u8)*PGPKT_DATA_SIZE);
+
+
+ while(bContinual && (efuse_addr < EFUSE_MAX_SIZE) )
+ {
+ if(ReadState & PG_STATE_HEADER)
+ {
+ if(efuse_OneByteRead(dev, efuse_addr ,&efuse_data)&&(efuse_data!=0xFF)){
+ hoffset = (efuse_data>>4) & 0x0F;
+ hworden = efuse_data & 0x0F;
+ word_cnts = efuse_CalculateWordCnts(hworden);
+ bDataEmpty = true ;
+
+ if(hoffset==offset){
+ for(tmpidx = 0;tmpidx< word_cnts*2 ;tmpidx++){
+ if(efuse_OneByteRead(dev, efuse_addr+1+tmpidx ,&efuse_data) ){
+ tmpdata[tmpidx] = efuse_data;
+ if(efuse_data!=0xff){
+ bDataEmpty = false;
+ }
+ }
+ }
+ if(bDataEmpty==false){
+ ReadState = PG_STATE_DATA;
+ }else{
+ efuse_addr = efuse_addr + (word_cnts*2)+1;
+ ReadState = PG_STATE_HEADER;
+ }
+ }
+ else{
+ efuse_addr = efuse_addr + (word_cnts*2)+1;
+ ReadState = PG_STATE_HEADER;
+ }
+
+ }
+ else{
+ bContinual = false ;
+ }
+ }
+ else if(ReadState & PG_STATE_DATA)
+ {
+ efuse_WordEnableDataRead(hworden,tmpdata,data);
+ efuse_addr = efuse_addr + (word_cnts*2)+1;
+ ReadState = PG_STATE_HEADER;
+ }
+
+ }
+
+
+ if( (data[0]==0xff) &&(data[1]==0xff) && (data[2]==0xff) && (data[3]==0xff) &&
+ (data[4]==0xff) &&(data[5]==0xff) && (data[6]==0xff) && (data[7]==0xff))
+ return false;
+ else
+ return true;
+
+}
+
+
+static u8 efuse_PgPacketWrite(struct net_device* dev, u8 offset, u8 word_en,u8 *data)
+{
+ u8 WriteState = PG_STATE_HEADER;
+ bool bContinual = true,bDataEmpty=true, bResult = true;
+ u16 efuse_addr = 0;
+ u8 efuse_data;
+
+ u8 pg_header = 0;
+
+ u8 tmp_word_cnts=0,target_word_cnts=0;
+ u8 tmp_header,match_word_en,tmp_word_en;
+
+ PGPKT_STRUCT target_pkt;
+ PGPKT_STRUCT tmp_pkt;
+
+ u8 originaldata[sizeof(u8)*8];
+ u8 tmpindex = 0,badworden = 0x0F;
+
+ static u32 repeat_times = 0;
+
+ if (efuse_GetCurrentSize(dev) >= EFUSE_MAX_SIZE - EFUSE_OOB_PROTECT_BYTES) {
+ printk("efuse_PgPacketWrite error \n");
+ return false;
+ }
+
+ target_pkt.offset = offset;
+ target_pkt.word_en= word_en;
+
+ memset(target_pkt.data,0xFF,sizeof(u8)*8);
+
+ efuse_WordEnableDataRead(word_en,data,target_pkt.data);
+ target_word_cnts = efuse_CalculateWordCnts(target_pkt.word_en);
+
+ printk("EFUSE Power ON\n");
+
+ while (bContinual && (efuse_addr < (EFUSE_MAX_SIZE - EFUSE_OOB_PROTECT_BYTES)))
+ {
+ if(WriteState==PG_STATE_HEADER)
+ {
+ bDataEmpty=true;
+ badworden = 0x0F;
+ printk("EFUSE PG_STATE_HEADER\n");
+ if ( efuse_OneByteRead(dev, efuse_addr ,&efuse_data) &&
+ (efuse_data!=0xFF))
+ {
+ tmp_header = efuse_data;
+
+ tmp_pkt.offset = (tmp_header>>4) & 0x0F;
+ tmp_pkt.word_en = tmp_header & 0x0F;
+ tmp_word_cnts = efuse_CalculateWordCnts(tmp_pkt.word_en);
+
+ if(tmp_pkt.offset != target_pkt.offset)
+ {
+ efuse_addr = efuse_addr + (tmp_word_cnts*2) +1;
+ #if (EFUSE_ERROE_HANDLE == 1)
+ WriteState = PG_STATE_HEADER;
+ #endif
+ }
+ else
+ {
+ for(tmpindex=0 ; tmpindex<(tmp_word_cnts*2) ; tmpindex++)
+ {
+ if(efuse_OneByteRead(dev, (efuse_addr+1+tmpindex) ,&efuse_data)&&(efuse_data != 0xFF)){
+ bDataEmpty = false;
+ }
+ }
+ if(bDataEmpty == false)
+ {
+ efuse_addr = efuse_addr + (tmp_word_cnts*2) +1;
+ #if (EFUSE_ERROE_HANDLE == 1)
+ WriteState=PG_STATE_HEADER;
+ #endif
+ }
+ else
+ {
+ match_word_en = 0x0F;
+ if( !( (target_pkt.word_en&BIT0)|(tmp_pkt.word_en&BIT0) ))
+ {
+ match_word_en &= (~BIT0);
+ }
+ if( !( (target_pkt.word_en&BIT1)|(tmp_pkt.word_en&BIT1) ))
+ {
+ match_word_en &= (~BIT1);
+ }
+ if( !( (target_pkt.word_en&BIT2)|(tmp_pkt.word_en&BIT2) ))
+ {
+ match_word_en &= (~BIT2);
+ }
+ if( !( (target_pkt.word_en&BIT3)|(tmp_pkt.word_en&BIT3) ))
+ {
+ match_word_en &= (~BIT3);
+ }
+
+ if((match_word_en&0x0F)!=0x0F)
+ {
+ badworden = efuse_WordEnableDataWrite(dev,efuse_addr+1, tmp_pkt.word_en ,target_pkt.data);
+
+ if(0x0F != (badworden&0x0F))
+ {
+ u8 reorg_offset = offset;
+ u8 reorg_worden=badworden;
+ efuse_PgPacketWrite(dev,reorg_offset,reorg_worden,originaldata);
+ }
+
+ tmp_word_en = 0x0F;
+ if( (target_pkt.word_en&BIT0)^(match_word_en&BIT0) )
+ {
+ tmp_word_en &= (~BIT0);
+ }
+ if( (target_pkt.word_en&BIT1)^(match_word_en&BIT1) )
+ {
+ tmp_word_en &= (~BIT1);
+ }
+ if( (target_pkt.word_en&BIT2)^(match_word_en&BIT2) )
+ {
+ tmp_word_en &= (~BIT2);
+ }
+ if( (target_pkt.word_en&BIT3)^(match_word_en&BIT3) )
+ {
+ tmp_word_en &=(~BIT3);
+ }
+
+ if((tmp_word_en&0x0F)!=0x0F){
+ efuse_addr = efuse_GetCurrentSize(dev);
+ target_pkt.offset = offset;
+ target_pkt.word_en= tmp_word_en;
+ }else{
+ bContinual = false;
+ }
+ #if (EFUSE_ERROE_HANDLE == 1)
+ WriteState=PG_STATE_HEADER;
+ repeat_times++;
+ if(repeat_times>EFUSE_REPEAT_THRESHOLD_){
+ bContinual = false;
+ bResult = false;
+ }
+ #endif
+ }
+ else{
+ efuse_addr = efuse_addr + (2*tmp_word_cnts) +1;
+ target_pkt.offset = offset;
+ target_pkt.word_en= target_pkt.word_en;
+ #if (EFUSE_ERROE_HANDLE == 1)
+ WriteState=PG_STATE_HEADER;
+ #endif
+ }
+ }
+ }
+ printk("EFUSE PG_STATE_HEADER-1\n");
+ }
+ else
+ {
+ pg_header = ((target_pkt.offset << 4)&0xf0) |target_pkt.word_en;
+
+ efuse_OneByteWrite(dev,efuse_addr, pg_header);
+ efuse_OneByteRead(dev,efuse_addr, &tmp_header);
+
+ if(tmp_header == pg_header)
+ {
+ WriteState = PG_STATE_DATA;
+ }
+ #if (EFUSE_ERROE_HANDLE == 1)
+ else if(tmp_header == 0xFF){
+ WriteState = PG_STATE_HEADER;
+ repeat_times++;
+ if(repeat_times>EFUSE_REPEAT_THRESHOLD_){
+ bContinual = false;
+ bResult = false;
+ }
+ }
+ #endif
+ else
+ {
+ tmp_pkt.offset = (tmp_header>>4) & 0x0F;
+ tmp_pkt.word_en= tmp_header & 0x0F;
+ tmp_word_cnts = efuse_CalculateWordCnts(tmp_pkt.word_en);
+
+ memset(originaldata,0xff,sizeof(u8)*8);
+
+ if(efuse_PgPacketRead( dev, tmp_pkt.offset,originaldata))
+ {
+ badworden = efuse_WordEnableDataWrite(dev,efuse_addr+1,tmp_pkt.word_en,originaldata);
+ if(0x0F != (badworden&0x0F))
+ {
+ u8 reorg_offset = tmp_pkt.offset;
+ u8 reorg_worden=badworden;
+ efuse_PgPacketWrite(dev,reorg_offset,reorg_worden,originaldata);
+ efuse_addr = efuse_GetCurrentSize(dev);
+ }
+ else{
+ efuse_addr = efuse_addr + (tmp_word_cnts*2) +1;
+ }
+ }
+ else
+ {
+ efuse_addr = efuse_addr + (tmp_word_cnts*2) +1;
+ }
+
+ #if (EFUSE_ERROE_HANDLE == 1)
+ WriteState=PG_STATE_HEADER;
+ repeat_times++;
+ if(repeat_times>EFUSE_REPEAT_THRESHOLD_){
+ bContinual = false;
+ bResult = false;
+ }
+ #endif
+
+ printk("EFUSE PG_STATE_HEADER-2\n");
+ }
+
+ }
+
+ }
+ else if(WriteState==PG_STATE_DATA)
+ {
+ printk("EFUSE PG_STATE_DATA\n");
+ badworden = 0x0f;
+ badworden = efuse_WordEnableDataWrite(dev,efuse_addr+1,target_pkt.word_en,target_pkt.data);
+ if((badworden&0x0F)==0x0F)
+ {
+ bContinual = false;
+ }
+ else
+ {
+ efuse_addr = efuse_addr + (2*target_word_cnts) +1;
+
+ target_pkt.offset = offset;
+ target_pkt.word_en= badworden;
+ target_word_cnts = efuse_CalculateWordCnts(target_pkt.word_en);
+ #if (EFUSE_ERROE_HANDLE == 1)
+ WriteState=PG_STATE_HEADER;
+ repeat_times++;
+ if(repeat_times>EFUSE_REPEAT_THRESHOLD_){
+ bContinual = false;
+ bResult = false;
+ }
+ #endif
+ printk("EFUSE PG_STATE_HEADER-3\n");
+ }
+ }
+ }
+
+
+ return true;
+}
+
+
+static void
+efuse_WordEnableDataRead( u8 word_en,u8 *sourdata,u8 *targetdata)
+{
+
+
+
+ if (!(word_en&BIT0))
+ {
+ targetdata[0] = sourdata[0];
+ targetdata[1] = sourdata[1];
+ }
+ if (!(word_en&BIT1))
+ {
+ targetdata[2] = sourdata[2];
+ targetdata[3] = sourdata[3];
+ }
+ if (!(word_en&BIT2))
+ {
+ targetdata[4] = sourdata[4];
+ targetdata[5] = sourdata[5];
+ }
+ if (!(word_en&BIT3))
+ {
+ targetdata[6] = sourdata[6];
+ targetdata[7] = sourdata[7];
+ }
+}
+
+
+static u8
+efuse_WordEnableDataWrite( struct net_device* dev, u16 efuse_addr, u8 word_en, u8 *data)
+{
+ u16 tmpaddr = 0;
+ u16 start_addr = efuse_addr;
+ u8 badworden = 0x0F;
+ u8 tmpdata[8];
+
+ memset(tmpdata,0xff,PGPKT_DATA_SIZE);
+
+
+
+ if(!(word_en&BIT0))
+ {
+ tmpaddr = start_addr;
+ efuse_OneByteWrite(dev,start_addr++, data[0]);
+ efuse_OneByteWrite(dev,start_addr++, data[1]);
+
+ efuse_OneByteRead(dev,tmpaddr, &tmpdata[0]);
+ efuse_OneByteRead(dev,tmpaddr+1, &tmpdata[1]);
+ if((data[0]!=tmpdata[0])||(data[1]!=tmpdata[1])){
+ badworden &= (~BIT0);
+ }
+ }
+ if(!(word_en&BIT1))
+ {
+ tmpaddr = start_addr;
+ efuse_OneByteWrite(dev,start_addr++, data[2]);
+ efuse_OneByteWrite(dev,start_addr++, data[3]);
+
+ efuse_OneByteRead(dev,tmpaddr , &tmpdata[2]);
+ efuse_OneByteRead(dev,tmpaddr+1, &tmpdata[3]);
+ if((data[2]!=tmpdata[2])||(data[3]!=tmpdata[3])){
+ badworden &=( ~BIT1);
+ }
+ }
+ if(!(word_en&BIT2))
+ {
+ tmpaddr = start_addr;
+ efuse_OneByteWrite(dev,start_addr++, data[4]);
+ efuse_OneByteWrite(dev,start_addr++, data[5]);
+
+ efuse_OneByteRead(dev,tmpaddr, &tmpdata[4]);
+ efuse_OneByteRead(dev,tmpaddr+1, &tmpdata[5]);
+ if((data[4]!=tmpdata[4])||(data[5]!=tmpdata[5])){
+ badworden &=( ~BIT2);
+ }
+ }
+ if(!(word_en&BIT3))
+ {
+ tmpaddr = start_addr;
+ efuse_OneByteWrite(dev,start_addr++, data[6]);
+ efuse_OneByteWrite(dev,start_addr++, data[7]);
+
+ efuse_OneByteRead(dev,tmpaddr, &tmpdata[6]);
+ efuse_OneByteRead(dev,tmpaddr+1, &tmpdata[7]);
+ if((data[6]!=tmpdata[6])||(data[7]!=tmpdata[7])){
+ badworden &=( ~BIT3);
+ }
+ }
+ return badworden;
+}
+
+
+static void
+efuse_PowerSwitch(struct net_device* dev, u8 PwrState)
+{
+ u8 tempval;
+ if (PwrState == true)
+ {
+ tempval = read_nic_byte(dev, EFUSE_TEST+3);
+ write_nic_byte(dev, EFUSE_TEST+3, (tempval | 0x80));
+
+ write_nic_byte(dev, EFUSE_CLK, 0x03);
+ }
+ else
+ {
+ tempval = read_nic_byte(dev, EFUSE_TEST+3);
+ write_nic_byte(dev, EFUSE_TEST+3, (tempval & 0x7F));
+
+ write_nic_byte(dev, EFUSE_CLK, 0x02);
+ }
+
+} /* efuse_PowerSwitch */
+
+
+static u16
+efuse_GetCurrentSize(struct net_device* dev)
+{
+ bool bContinual = true;
+
+ u16 efuse_addr = 0;
+ u8 hoffset=0,hworden=0;
+ u8 efuse_data,word_cnts=0;
+
+
+ while ( bContinual &&
+ efuse_OneByteRead(dev, efuse_addr ,&efuse_data) &&
+ (efuse_addr < EFUSE_MAX_SIZE) )
+ {
+ if(efuse_data!=0xFF)
+ {
+ hoffset = (efuse_data>>4) & 0x0F;
+ hworden = efuse_data & 0x0F;
+ word_cnts = efuse_CalculateWordCnts(hworden);
+ efuse_addr = efuse_addr + (word_cnts*2)+1;
+ }
+ else
+ {
+ bContinual = false ;
+ }
+ }
+
+
+ return efuse_addr;
+
+}
+
+
+static u8
+efuse_CalculateWordCnts(u8 word_en)
+{
+ u8 word_cnts = 0;
+ if(!(word_en & BIT0)) word_cnts++;
+ if(!(word_en & BIT1)) word_cnts++;
+ if(!(word_en & BIT2)) word_cnts++;
+ if(!(word_en & BIT3)) word_cnts++;
+ return word_cnts;
+}
+
+
+#if 0
+static void efuse_ResetLoader(struct net_device* dev)
+{
+ u16 tmpU2b;
+
+ tmpU2b = read_nic_word(dev, SYS_FUNC_EN);
+ write_nic_word(dev, SYS_FUNC_EN, (tmpU2b&~(BIT12)));
+ mdelay(10);
+ write_nic_word(dev, SYS_FUNC_EN, (tmpU2b|BIT12));
+ mdelay(10);
+
+}
+#endif
+
+ #ifdef TO_DO_LIST
+extern bool
+EFUSE_ProgramMap(struct net_device* dev, char* pFileName,u8 TableType)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ s4Byte nLinesRead, ithLine;
+ RT_STATUS rtStatus = RT_STATUS_SUCCESS;
+ char* szLine;
+ u32 u4bRegValue, u4RegMask;
+ u32 u4bMove;
+ u16 index = 0;
+ u16 i;
+ u8 eeprom[HWSET_MAX_SIZE_92S];
+
+ rtStatus = PlatformReadFile(
+ dev,
+ pFileName,
+ (u8*)(priv->BufOfLines),
+ MAX_LINES_HWCONFIG_TXT,
+ MAX_BYTES_LINE_HWCONFIG_TXT,
+ &nLinesRead
+ );
+
+ if(rtStatus == RT_STATUS_SUCCESS)
+ {
+ memcp(pHalData->BufOfLines3, pHalData->BufOfLines,
+ nLinesRead*MAX_BYTES_LINE_HWCONFIG_TXT);
+ pHalData->nLinesRead3 = nLinesRead;
+ }
+
+ if(rtStatus == RT_STATUS_SUCCESS)
+ {
+ printk("szEepromFile(): read %s ok\n", pFileName);
+ for(ithLine = 0; ithLine < nLinesRead; ithLine++)
+ {
+ szLine = pHalData->BufOfLines[ithLine];
+ printk("Line-%d String =%s\n", ithLine, szLine);
+
+ if(!IsCommentString(szLine))
+ {
+ for (i = 0; i < 8; i++)
+ {
+ u32 j;
+
+ efuse_ParsingMap(szLine, &u4bRegValue, &u4bMove);
+
+ szLine += u4bMove;
+ eeprom[index++] = (u8)(u4bRegValue&0xff);
+ eeprom[index++] = (u8)((u4bRegValue>>8)&0xff);
+
+ printk("Addr-%d = %x\n", (ithLine*8+i), u4bRegValue);
+ }
+ }
+
+ }
+
+ }
+ else
+ {
+ printk("szEepromFile(): Fail read%s\n", pFileName);
+ return RT_STATUS_FAILURE;
+ }
+
+
+
+ if (TableType == 1)
+ {
+ efuse_WriteAllMap(dev, eeprom, HWSET_MAX_SIZE_92S);
+ }
+ else
+ {
+ for (i = 0; i < HWSET_MAX_SIZE_92S; i++)
+ EFUSE_ShadowWrite(dev, 1, i, (u32)eeprom[i]);
+ }
+
+ return rtStatus;
+} /* EFUSE_ProgramMap */
+
+#endif
+
+bool IsHexDigit( char chTmp)
+{
+ if( (chTmp >= '0' && chTmp <= '9') ||
+ (chTmp >= 'a' && chTmp <= 'f') ||
+ (chTmp >= 'A' && chTmp <= 'F') )
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+}
+
+u32 MapCharToHexDigit(char chTmp)
+{
+ if(chTmp >= '0' && chTmp <= '9')
+ return (chTmp - '0');
+ else if(chTmp >= 'a' && chTmp <= 'f')
+ return (10 + (chTmp - 'a'));
+ else if(chTmp >= 'A' && chTmp <= 'F')
+ return (10 + (chTmp - 'A'));
+ else
+ return 0;
+}
+
+#ifdef TO_DO_LIST
+static bool
+efuse_ParsingMap(char* szStr,u32* pu4bVal,u32* pu4bMove)
+{
+ char* szScan = szStr;
+
+ if(szStr == NULL || pu4bVal == NULL || pu4bMove == NULL)
+ {
+ return false;
+ }
+
+ *pu4bMove = 0;
+ *pu4bVal = 0;
+
+ while( *szScan != '\0' &&
+ (*szScan == ' ' || *szScan == '\t') )
+ {
+ szScan++;
+ (*pu4bMove)++;
+ }
+
+ if(!IsHexDigit(*szScan))
+ {
+ return false;
+ }
+
+ do
+ {
+ (*pu4bVal) <<= 4;
+ *pu4bVal += MapCharToHexDigit(*szScan);
+
+ szScan++;
+ (*pu4bMove)++;
+ } while(IsHexDigit(*szScan));
+
+ return true;
+
+} /* efuse_ParsingMap */
+#endif
+
+int efuse_one_byte_rw(struct net_device* dev, u8 bRead, u16 addr, u8 *data)
+{
+ u32 bResult;
+ u8 tmpidx = 0;
+ u8 tmpv8=0;
+
+
+ write_nic_byte(dev, EFUSE_CTRL+1, (u8)(addr&0xff));
+ tmpv8 = ((u8)((addr>>8) &0x03) ) | (read_nic_byte(dev, EFUSE_CTRL+2)&0xFC );
+ write_nic_byte(dev, EFUSE_CTRL+2, tmpv8);
+
+ if(true==bRead){
+
+ write_nic_byte(dev, EFUSE_CTRL+3, 0x72);
+
+ while(!(0x80 & read_nic_byte(dev, EFUSE_CTRL+3)) && (tmpidx<100) ){
+ tmpidx++;
+ }
+ if(tmpidx<100){
+ *data=read_nic_byte(dev, EFUSE_CTRL);
+ bResult = true;
+ }
+ else
+ {
+ *data = 0;
+ bResult = false;
+ }
+
+ }
+ else{
+ write_nic_byte(dev, EFUSE_CTRL, *data);
+
+ write_nic_byte(dev, EFUSE_CTRL+3, 0xF2);
+
+ while((0x80 & read_nic_byte(dev, EFUSE_CTRL+3)) && (tmpidx<100) ){
+ tmpidx++;
+ }
+ if(tmpidx<100)
+ {
+ *data=read_nic_byte(dev, EFUSE_CTRL);
+ bResult = true;
+ }
+ else
+ {
+ *data = 0;
+ bResult = false;
+ }
+
+ }
+ return bResult;
+}
+void efuse_access(struct net_device* dev, u8 bRead,u16 start_addr, u8 cnts, u8 *data)
+{
+ u8 efuse_clk_ori,efuse_clk_new;
+ u32 i = 0;
+
+ if(start_addr>0x200) return;
+ efuse_clk_ori = read_nic_byte(dev,SYS_FUNC_EN+1);
+ efuse_clk_new = efuse_clk_ori|0x20;
+
+ if(efuse_clk_new!= efuse_clk_ori){
+ write_nic_byte(dev, SYS_FUNC_EN+1, efuse_clk_new);
+ }
+#ifdef _POWERON_DELAY_
+ mdelay(10);
+#endif
+ write_nic_byte(dev, EFUSE_TEST+3, (read_nic_byte(dev, EFUSE_TEST+3)|0x80));
+ write_nic_byte(dev, EFUSE_CLK_CTRL, (read_nic_byte(dev, EFUSE_CLK_CTRL)|0x03));
+
+#ifdef _PRE_EXECUTE_READ_CMD_
+ {
+ unsigned char tmpdata;
+ efuse_OneByteRead(dev, 0,&tmpdata);
+ }
+#endif
+
+ for(i=0;i<cnts;i++){
+ efuse_one_byte_rw(dev,bRead, start_addr+i , data+i);
+ }
+ write_nic_byte(dev, EFUSE_TEST+3, read_nic_byte(dev, EFUSE_TEST+3)&0x7f);
+ write_nic_byte(dev, EFUSE_CLK_CTRL, read_nic_byte(dev, EFUSE_CLK_CTRL)&0xfd);
+
+ if(efuse_clk_new != efuse_clk_ori) write_nic_byte(dev, 0x10250003, efuse_clk_ori);
+
+}
+
+#ifdef TO_DO_LIST
+static void efuse_reg_ctrl(struct net_device* dev, u8 bPowerOn)
+{
+ if(true==bPowerOn){
+ write_nic_byte(dev, SYS_FUNC_EN+1, read_nic_byte(dev,SYS_FUNC_EN+1)|0x20);
+#ifdef _POWERON_DELAY_
+ mdelay(10);
+#endif
+ write_nic_byte(dev, EFUSE_TEST+4, (read_nic_byte(dev, EFUSE_TEST+4)|0x80));
+ write_nic_byte(dev, EFUSE_CLK_CTRL, (read_nic_byte(dev, EFUSE_CLK_CTRL)|0x03));
+#ifdef _PRE_EXECUTE_READ_CMD_
+ {
+ unsigned char tmpdata;
+ efuse_OneByteRead(dev, 0,&tmpdata);
+ }
+
+#endif
+ }
+ else{
+ write_nic_byte(dev, EFUSE_TEST+4, read_nic_byte(dev, EFUSE_TEST+4)&0x7f);
+ write_nic_byte(dev, EFUSE_CLK_CTRL, read_nic_byte(dev, EFUSE_CLK_CTRL)&0xfd);
+
+ }
+
+
+}
+#endif
+
+void efuse_read_data(struct net_device* dev,u8 efuse_read_item,u8 *data,u32 data_size)
+{
+ u8 offset, word_start,byte_start,byte_cnts;
+ u8 efusedata[EFUSE_REAL_CONTENT_LEN];
+ u8 *tmpdata = NULL;
+
+ u8 pg_pkt_cnts ;
+
+ u8 tmpidx;
+ u8 pg_data[8];
+
+ if(efuse_read_item> (sizeof(RTL8712_SDIO_EFUSE_TABLE)/sizeof(EFUSE_MAP))){
+ return ;
+ }
+
+ offset = RTL8712_SDIO_EFUSE_TABLE[efuse_read_item].offset ;
+ word_start = RTL8712_SDIO_EFUSE_TABLE[efuse_read_item].word_start;
+ byte_start = RTL8712_SDIO_EFUSE_TABLE[efuse_read_item].byte_start;
+ byte_cnts = RTL8712_SDIO_EFUSE_TABLE[efuse_read_item].byte_cnts;
+
+ if(data_size!=byte_cnts){
+ return;
+ }
+
+ pg_pkt_cnts = (byte_cnts /PGPKT_DATA_SIZE) +1;
+
+ if(pg_pkt_cnts > 1){
+ tmpdata = efusedata;
+
+ if(tmpdata!=NULL)
+ {
+ memset(tmpdata,0xff,pg_pkt_cnts*PGPKT_DATA_SIZE);
+
+ for(tmpidx=0;tmpidx<pg_pkt_cnts;tmpidx++)
+ {
+ memset(pg_data,0xff,PGPKT_DATA_SIZE);
+ if(true== efuse_PgPacketRead(dev,offset+tmpidx,pg_data))
+ {
+ memcpy(tmpdata+(PGPKT_DATA_SIZE*tmpidx),pg_data,PGPKT_DATA_SIZE);
+ }
+ }
+ memcpy(data,(tmpdata+ (2*word_start)+byte_start ),data_size);
+ }
+ }
+ else
+ {
+ memset(pg_data,0xff,PGPKT_DATA_SIZE);
+ if(true==efuse_PgPacketRead(dev,offset,pg_data)){
+ memcpy(data,pg_data+ (2*word_start)+byte_start ,data_size);
+ }
+ }
+
+}
+void efuse_write_data(struct net_device* dev,u8 efuse_write_item,u8 *data,u32 data_size,u32 bWordUnit)
+{
+ u8 offset, word_start,byte_start,byte_cnts;
+ u8 word_en = 0x0f,word_cnts;
+ u8 pg_pkt_cnts ;
+
+ u8 tmpidx,tmpbitmask;
+ u8 pg_data[8],tmpbytes=0;
+
+ if(efuse_write_item> (sizeof(RTL8712_SDIO_EFUSE_TABLE)/sizeof(EFUSE_MAP))){
+ return ;
+ }
+
+ offset = RTL8712_SDIO_EFUSE_TABLE[efuse_write_item].offset ;
+ word_start = RTL8712_SDIO_EFUSE_TABLE[efuse_write_item].word_start;
+ byte_start = RTL8712_SDIO_EFUSE_TABLE[efuse_write_item].byte_start;
+ byte_cnts = RTL8712_SDIO_EFUSE_TABLE[efuse_write_item].byte_cnts;
+
+ if(data_size > byte_cnts){
+ return;
+ }
+ pg_pkt_cnts = (byte_cnts /PGPKT_DATA_SIZE) +1;
+ word_cnts = byte_cnts /2 ;
+
+ if(byte_cnts %2){
+ word_cnts+=1;
+ }
+ if((byte_start==1)||((byte_cnts%2)==1)){
+
+ if((efuse_write_item==EFUSE_F0CIS)||(efuse_write_item==EFUSE_F1CIS)){
+ memset(pg_data,0xff,PGPKT_DATA_SIZE);
+ efuse_PgPacketRead(dev,offset,pg_data);
+
+ if(efuse_write_item==EFUSE_F0CIS){
+ word_en = 0x07;
+ memcpy(pg_data+word_start*2+byte_start,data,sizeof(u8)*2);
+ efuse_PgPacketWrite(dev,offset,word_en,pg_data+(word_start*2));
+
+ word_en = 0x00;
+ efuse_PgPacketWrite(dev,(offset+1),word_en,data+2);
+
+ word_en = 0x00;
+ efuse_PgPacketRead(dev,offset+2,pg_data);
+ memcpy(pg_data,data+2+8,sizeof(u8)*7);
+
+ efuse_PgPacketWrite(dev,(offset+2),word_en,pg_data);
+ }
+ else if(efuse_write_item==EFUSE_F1CIS){
+ word_en = 0x07;
+ efuse_PgPacketRead(dev,offset,pg_data);
+ pg_data[7] = data[0];
+ efuse_PgPacketWrite(dev,offset,word_en,pg_data+(word_start*2));
+
+ word_en = 0x00;
+ for(tmpidx = 0 ;tmpidx<(word_cnts/4);tmpidx++){
+ efuse_PgPacketWrite(dev,(offset+1+tmpidx),word_en,data+1+(tmpidx*PGPKT_DATA_SIZE));
+ }
+ }
+
+ }
+ else{
+ memset(pg_data,0xff,PGPKT_DATA_SIZE);
+ if((efuse_write_item==EFUSE_SDIO_SETTING)||(efuse_write_item==EFUSE_CCCR)){
+ word_en = 0x0e ;
+ tmpbytes = 2;
+ }
+ else if(efuse_write_item == EFUSE_SDIO_MODE){
+ word_en = 0x0d ;
+ tmpbytes = 2;
+ }
+ else if(efuse_write_item == EFUSE_OCR){
+ word_en = 0x09 ;
+ tmpbytes = 4;
+ }
+ else if((efuse_write_item == EFUSE_EEPROM_VER)||(efuse_write_item==EFUSE_CHAN_PLAN)){
+ word_en = 0x07 ;
+ tmpbytes = 2;
+ }
+ if(bWordUnit==true){
+ memcpy(pg_data+word_start*2 ,data,sizeof(u8)*tmpbytes);
+ }
+ else{
+ efuse_PgPacketRead(dev,offset,pg_data);
+ memcpy(pg_data+(2*word_start)+byte_start,data,sizeof(u8)*byte_cnts);
+ }
+
+ efuse_PgPacketWrite(dev,offset,word_en,pg_data+(word_start*2));
+
+ }
+
+ }
+ else if(pg_pkt_cnts>1){
+ if(word_start==0){
+ word_en = 0x00;
+ for(tmpidx = 0 ;tmpidx<(word_cnts/4);tmpidx++)
+ {
+ efuse_PgPacketWrite(dev,(offset+tmpidx),word_en,data+(tmpidx*PGPKT_DATA_SIZE));
+ }
+ word_en = 0x0f;
+ for(tmpidx= 0; tmpidx<(word_cnts%4) ; tmpidx++)
+ {
+ tmpbitmask =tmpidx;
+ word_en &= (~(EFUSE_BIT(tmpbitmask)));
+ }
+ efuse_PgPacketWrite(dev,offset+(word_cnts/4),word_en,data+((word_cnts/4)*PGPKT_DATA_SIZE));
+ }else
+ {
+
+ }
+ }
+ else{
+ word_en = 0x0f;
+ for(tmpidx= 0; tmpidx<word_cnts ; tmpidx++)
+ {
+ tmpbitmask = word_start + tmpidx ;
+ word_en &= (~(EFUSE_BIT(tmpbitmask)));
+ }
+ efuse_PgPacketWrite(dev,offset,word_en,data);
+ }
+
+}
+
+void efuset_test_func_read(struct net_device* dev)
+{
+ u8 chipid[2];
+ u8 ocr[3];
+ u8 macaddr[6];
+ u8 txpowertable[28];
+
+ memset(chipid,0,sizeof(u8)*2);
+ efuse_read_data(dev,EFUSE_CHIP_ID,chipid,sizeof(chipid));
+
+ memset(ocr,0,sizeof(u8)*3);
+ efuse_read_data(dev,EFUSE_CCCR,ocr,sizeof(ocr));
+
+ memset(macaddr,0,sizeof(u8)*6);
+ efuse_read_data(dev,EFUSE_MAC_ADDR,macaddr,sizeof(macaddr));
+
+ memset(txpowertable,0,sizeof(u8)*28);
+ efuse_read_data(dev,EFUSE_TXPW_TAB,txpowertable,sizeof(txpowertable));
+}
+
+void efuset_test_func_write(struct net_device* dev)
+{
+ u32 bWordUnit = true;
+ u8 CCCR=0x02,SDIO_SETTING = 0xFF;
+ u8 tmpdata[2];
+
+ u8 macaddr[6] = {0x00,0xe0,0x4c,0x87,0x12,0x66};
+ efuse_write_data(dev,EFUSE_MAC_ADDR,macaddr,sizeof(macaddr),bWordUnit);
+
+ bWordUnit = false;
+ efuse_write_data(dev,EFUSE_CCCR,&CCCR,sizeof(u8),bWordUnit);
+
+ bWordUnit = false;
+ efuse_write_data(dev,EFUSE_SDIO_SETTING,&SDIO_SETTING,sizeof(u8),bWordUnit);
+
+ bWordUnit = true;
+ tmpdata[0] =SDIO_SETTING ;
+ tmpdata[1] =CCCR ;
+ efuse_write_data(dev,EFUSE_SDIO_SETTING,tmpdata,sizeof(tmpdata),bWordUnit);
+
+}
+#endif
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_Efuse.h b/ubuntu/rtl8192se/rtl8192s/r8192S_Efuse.h
new file mode 100755
index 00000000000..405f076f0f6
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_Efuse.h
@@ -0,0 +1,98 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+
+#ifndef __INC_EFUSE_H
+#define __INC_EFUSE_H
+
+#define EFUSE_FOR_92SU 1
+
+/*--------------------------Define Parameters-------------------------------*/
+#define EFUSE_REAL_CONTENT_LEN 512
+#define EFUSE_MAP_LEN 128
+#define EFUSE_MAX_SECTION 16
+#define EFUSE_MAX_WORD_UNIT 4
+#define EFUSE_IC_ID_OFFSET 506
+
+#define EFUSE_INIT_MAP 0
+#define EFUSE_MODIFY_MAP 1
+
+#define EFUSE_CLK_CTRL EFUSE_CTRL
+#define EFUSE_BIT(x) (1 << (x))
+
+#define PG_STATE_HEADER 0x01
+#define PG_STATE_WORD_0 0x02
+#define PG_STATE_WORD_1 0x04
+#define PG_STATE_WORD_2 0x08
+#define PG_STATE_WORD_3 0x10
+#define PG_STATE_DATA 0x20
+
+#define PG_SWBYTE_H 0x01
+#define PG_SWBYTE_L 0x02
+
+/*--------------------------Define Parameters-------------------------------*/
+
+
+/*------------------------------Define structure----------------------------*/
+
+/*------------------------------Define structure----------------------------*/
+
+
+/*------------------------Export global variable----------------------------*/
+/*------------------------Export global variable----------------------------*/
+
+/*------------------------Export Marco Definition---------------------------*/
+
+/*------------------------Export Marco Definition---------------------------*/
+
+
+/*--------------------------Exported Function prototype---------------------*/
+extern void
+EFUSE_Initialize(struct net_device* dev);
+extern u8
+EFUSE_Read1Byte(struct net_device* dev,u16 Address);
+extern void
+EFUSE_Write1Byte(struct net_device* dev,u16 Address,u8 Value);
+
+#ifdef EFUSE_FOR_92SU
+extern void
+ReadEFuse(struct net_device* dev,u16 _offset,u16 _size_byte,u8* pbuf);
+extern void
+ReadEFuseByte(struct net_device* dev,u16 _offset,u8 *pbuf);
+#endif
+
+extern void
+EFUSE_ShadowRead(struct net_device* dev,unsigned char Type,unsigned short Offset,u32 *Value);
+extern void
+EFUSE_ShadowWrite(struct net_device* dev,unsigned char Type,unsigned short Offset,u32 Value);
+extern bool
+EFUSE_ShadowUpdate(struct net_device* dev);
+extern bool
+EFUSE_ShadowUpdateChk(struct net_device* dev);
+extern void
+EFUSE_ShadowMapUpdate(struct net_device* dev);
+extern void
+EFUSE_RePgSection1(struct net_device* dev);
+
+extern bool
+EFUSE_ProgramMap(struct net_device* dev,char* pFileName, u8 TableType);
+/*--------------------------Exported Function prototype---------------------*/
+
+/* End of Efuse.h */
+
+#endif
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_def.h b/ubuntu/rtl8192se/rtl8192s/r8192S_def.h
new file mode 100755
index 00000000000..86097c66408
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_def.h
@@ -0,0 +1,756 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef R8192SE_DEF_H
+#define R8192SE_DEF_H
+
+#include <linux/types.h>
+#include "../rtl_endianfree.h"
+
+#define HAL_RETRY_LIMIT_INFRA 48
+#define HAL_RETRY_LIMIT_AP_ADHOC 7
+
+#define HAL_DM_DIG_DISABLE BIT0
+#define HAL_DM_HIPWR_DISABLE BIT1
+
+#define RX_DESC_SIZE 24
+#define RX_DRV_INFO_SIZE_UNIT 8
+
+
+#define TX_DESC_SIZE 32
+
+#define SET_TX_DESC_PKT_SIZE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 0, 16, __Value)
+#define SET_TX_DESC_OFFSET(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 16, 8, __Value)
+#define SET_TX_DESC_TYPE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 24, 2, __Value)
+#define SET_TX_DESC_LAST_SEG(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 26, 1, __Value)
+#define SET_TX_DESC_FIRST_SEG(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 27, 1, __Value)
+#define SET_TX_DESC_LINIP(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 28, 1, __Value)
+#define SET_TX_DESC_AMSDU(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 29, 1, __Value)
+#define SET_TX_DESC_GREEN_FIELD(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 30, 1, __Value)
+#define SET_TX_DESC_OWN(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc, 31, 1, __Value)
+
+#define SET_TX_DESC_MACID(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 0, 5, __Value)
+#define SET_TX_DESC_MORE_DATA(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 5, 1, __Value)
+#define SET_TX_DESC_MORE_FRAG(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 6, 1, __Value)
+#define SET_TX_DESC_PIFS(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 7, 1, __Value)
+#define SET_TX_DESC_QUEUE_SEL(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 8, 5, __Value)
+#define SET_TX_DESC_ACK_POLICY(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 13, 2, __Value)
+#define SET_TX_DESC_NO_ACM(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 15, 1, __Value)
+#define SET_TX_DESC_NON_QOS(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 16, 1, __Value)
+#define SET_TX_DESC_KEY_ID(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 17, 2, __Value)
+#define SET_TX_DESC_OUI(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 19, 1, __Value)
+#define SET_TX_DESC_PKT_TYPE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 20, 1, __Value)
+#define SET_TX_DESC_EN_DESC_ID(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 21, 1, __Value)
+#define SET_TX_DESC_SEC_TYPE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 22, 2, __Value)
+#define SET_TX_DESC_WDS(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 24, 1, __Value)
+#define SET_TX_DESC_HTC(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 25, 1, __Value)
+#define SET_TX_DESC_PKT_OFFSET(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 26, 5, __Value)
+#define SET_TX_DESC_HWPC(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+4, 27, 1, __Value)
+
+#define SET_TX_DESC_DATA_RETRY_LIMIT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 0, 6, __Value)
+#define SET_TX_DESC_RETRY_LIMIT_ENABLE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 6, 1, __Value)
+#define SET_TX_DESC_TSFL(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 7, 5, __Value)
+#define SET_TX_DESC_RTS_RETRY_COUNT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 12, 6, __Value)
+#define SET_TX_DESC_DATA_RETRY_COUNT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 18, 6, __Value)
+#define SET_TX_DESC_RSVD_MACID(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(((__pTxDesc) + 8), 24, 5, __Value)
+#define SET_TX_DESC_AGG_ENABLE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 29, 1, __Value)
+#define SET_TX_DESC_AGG_BREAK(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 30, 1, __Value)
+#define SET_TX_DESC_OWN_MAC(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+8, 31, 1, __Value)
+
+#define SET_TX_DESC_NEXT_HEAP_PAGE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+12, 0, 8, __Value)
+#define SET_TX_DESC_TAIL_PAGE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+12, 8, 8, __Value)
+#define SET_TX_DESC_SEQ(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+12, 16, 12, __Value)
+#define SET_TX_DESC_FRAG(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+12, 28, 4, __Value)
+
+#define SET_TX_DESC_RTS_RATE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 0, 6, __Value)
+#define SET_TX_DESC_DISABLE_RTS_FB(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 6, 1, __Value)
+#define SET_TX_DESC_RTS_RATE_FB_LIMIT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 7, 4, __Value)
+#define SET_TX_DESC_CTS_ENABLE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 11, 1, __Value)
+#define SET_TX_DESC_RTS_ENABLE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 12, 1, __Value)
+#define SET_TX_DESC_RA_BRSR_ID(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 13, 3, __Value)
+#define SET_TX_DESC_TXHT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 16, 1, __Value)
+#define SET_TX_DESC_TX_SHORT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 17, 1, __Value)
+#define SET_TX_DESC_TX_BANDWIDTH(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 18, 1, __Value)
+#define SET_TX_DESC_TX_SUB_CARRIER(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 19, 2, __Value)
+#define SET_TX_DESC_TX_STBC(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 21, 2, __Value)
+#define SET_TX_DESC_TX_REVERSE_DIRECTION(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 23, 1, __Value)
+#define SET_TX_DESC_RTS_HT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 24, 1, __Value)
+#define SET_TX_DESC_RTS_SHORT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 25, 1, __Value)
+#define SET_TX_DESC_RTS_BANDWIDTH(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 26, 1, __Value)
+#define SET_TX_DESC_RTS_SUB_CARRIER(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 27, 2, __Value)
+#define SET_TX_DESC_RTS_STBC(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 29, 2, __Value)
+#define SET_TX_DESC_USER_RATE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+16, 31, 1, __Value)
+
+#define SET_TX_DESC_PACKET_ID(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+20, 0, 9, __Value)
+#define SET_TX_DESC_TX_RATE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+20, 9, 6, __Value)
+#define SET_TX_DESC_DISABLE_FB(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+20, 15, 1, __Value)
+#define SET_TX_DESC_DATA_RATE_FB_LIMIT(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+20, 16, 5, __Value)
+#define SET_TX_DESC_TX_AGC(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+20, 21, 11, __Value)
+
+#define SET_TX_DESC_IP_CHECK_SUM(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+24, 0, 16, __Value)
+#define SET_TX_DESC_TCP_CHECK_SUM(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+24, 16, 16, __Value)
+
+#define SET_TX_DESC_TX_BUFFER_SIZE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+28, 0, 16, __Value)
+#define SET_TX_DESC_IP_HEADER_OFFSET(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+28, 16, 8, __Value)
+#define SET_TX_DESC_TCP_ENABLE(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+28, 31, 1, __Value)
+
+#define SET_TX_DESC_TX_BUFFER_ADDRESS(__pTxDesc, __Value) SET_BITS_TO_LE_4BYTE(__pTxDesc+32, 0, 32, __Value)
+
+
+#define TX_DESC_NEXT_DESC_OFFSET 36
+#define CLEAR_PCI_TX_DESC_CONTENT(__pTxDesc, _size) \
+ { \
+ if(_size > TX_DESC_NEXT_DESC_OFFSET) \
+ memset((void*)__pTxDesc, 0, TX_DESC_NEXT_DESC_OFFSET); \
+ else \
+ memset((void*)__pTxDesc, 0, _size); \
+ if(_size > (TX_DESC_NEXT_DESC_OFFSET + 4)) \
+ memset((void*)(__pTxDesc + (TX_DESC_NEXT_DESC_OFFSET + 4)), 0, (_size - TX_DESC_NEXT_DESC_OFFSET)); \
+ }
+
+#define C2H_RX_CMD_HDR_LEN 8
+#define GET_C2H_CMD_CMD_LEN(__pRxHeader) LE_BITS_TO_4BYTE((__pRxHeader), 0, 16)
+#define GET_C2H_CMD_ELEMENT_ID(__pRxHeader) LE_BITS_TO_4BYTE((__pRxHeader), 16, 8)
+#define GET_C2H_CMD_CMD_SEQ(__pRxHeader) LE_BITS_TO_4BYTE((__pRxHeader), 24, 7)
+#define GET_C2H_CMD_CONTINUE(__pRxHeader) LE_BITS_TO_4BYTE((__pRxHeader), 31, 1)
+#define GET_C2H_CMD_CONTENT(__pRxHeader) ((u8*)(__pRxHeader) + C2H_RX_CMD_HDR_LEN)
+
+#define GET_C2H_CMD_FEEDBACK_ELEMENT_ID(__pCmdFBHeader) LE_BITS_TO_4BYTE((__pCmdFBHeader), 0, 8)
+#define GET_C2H_CMD_FEEDBACK_CCX_LEN(__pCmdFBHeader) LE_BITS_TO_4BYTE((__pCmdFBHeader), 8, 8)
+#define GET_C2H_CMD_FEEDBACK_CCX_CMD_CNT(__pCmdFBHeader) LE_BITS_TO_4BYTE((__pCmdFBHeader), 16, 16)
+#define GET_C2H_CMD_FEEDBACK_CCX_MAC_ID(__pCmdFBHeader) LE_BITS_TO_4BYTE(((__pCmdFBHeader) + 4), 0, 5)
+#define GET_C2H_CMD_FEEDBACK_CCX_VALID(__pCmdFBHeader) LE_BITS_TO_4BYTE(((__pCmdFBHeader) + 4), 7, 1)
+#define GET_C2H_CMD_FEEDBACK_CCX_RETRY_CNT(__pCmdFBHeader) LE_BITS_TO_4BYTE(((__pCmdFBHeader) + 4), 8, 5)
+#define GET_C2H_CMD_FEEDBACK_CCX_TOK(__pCmdFBHeader) LE_BITS_TO_4BYTE(((__pCmdFBHeader) + 4), 15, 1)
+#define GET_C2H_CMD_FEEDBACK_CCX_QSEL(__pCmdFBHeader) LE_BITS_TO_4BYTE(((__pCmdFBHeader) + 4), 16, 4)
+#define GET_C2H_CMD_FEEDBACK_CCX_SEQ(__pCmdFBHeader) LE_BITS_TO_4BYTE(((__pCmdFBHeader) + 4), 20, 12)
+
+
+#if 0
+#define BK_QUEUE 0
+#define BE_QUEUE 1
+#define VI_QUEUE 2
+#define VO_QUEUE 3
+#define BEACON_QUEUE 4
+#define TXCMD_QUEUE 5
+#define MGNT_QUEUE 6
+#define HIGH_QUEUE 7
+#define HCCA_QUEUE 8
+
+#define LOW_QUEUE BE_QUEUE
+#define NORMAL_QUEUE MGNT_QUEUE
+#endif
+
+#define RX_MPDU_QUEUE 0
+#define RX_CMD_QUEUE 1
+#define RX_MAX_QUEUE 2
+
+
+typedef enum _rtl819x_loopback{
+ RTL819X_NO_LOOPBACK = 0,
+ RTL819X_MAC_LOOPBACK = 1,
+ RTL819X_DMA_LOOPBACK = 2,
+ RTL819X_CCK_LOOPBACK = 3,
+}rtl819x_loopback_e;
+
+#define RESET_DELAY_8185 20
+
+#define RT_IBSS_INT_MASKS 0
+
+#define DESC92S_RATE1M 0x00
+#define DESC92S_RATE2M 0x01
+#define DESC92S_RATE5_5M 0x02
+#define DESC92S_RATE11M 0x03
+#define DESC92S_RATE6M 0x04
+#define DESC92S_RATE9M 0x05
+#define DESC92S_RATE12M 0x06
+#define DESC92S_RATE18M 0x07
+#define DESC92S_RATE24M 0x08
+#define DESC92S_RATE36M 0x09
+#define DESC92S_RATE48M 0x0a
+#define DESC92S_RATE54M 0x0b
+#define DESC92S_RATEMCS0 0x0c
+#define DESC92S_RATEMCS1 0x0d
+#define DESC92S_RATEMCS2 0x0e
+#define DESC92S_RATEMCS3 0x0f
+#define DESC92S_RATEMCS4 0x10
+#define DESC92S_RATEMCS5 0x11
+#define DESC92S_RATEMCS6 0x12
+#define DESC92S_RATEMCS7 0x13
+#define DESC92S_RATEMCS8 0x14
+#define DESC92S_RATEMCS9 0x15
+#define DESC92S_RATEMCS10 0x16
+#define DESC92S_RATEMCS11 0x17
+#define DESC92S_RATEMCS12 0x18
+#define DESC92S_RATEMCS13 0x19
+#define DESC92S_RATEMCS14 0x1a
+#define DESC92S_RATEMCS15 0x1b
+#define DESC92S_RATEMCS15_SG 0x1c
+#define DESC92S_RATEMCS32 0x20
+
+#define SHORT_SLOT_TIME 9
+#define NON_SHORT_SLOT_TIME 20
+
+
+#define MAX_LINES_HWCONFIG_TXT 1000
+#define MAX_BYTES_LINE_HWCONFIG_TXT 256
+
+#define SW_THREE_WIRE 0
+#define HW_THREE_WIRE 2
+
+#define BT_DEMO_BOARD 0
+#define BT_QA_BOARD 1
+#define BT_FPGA 2
+
+#define Rx_Smooth_Factor 20
+
+#define QSLT_BK 0x2
+#define QSLT_BE 0x0
+#define QSLT_VI 0x5
+#define QSLT_VO 0x7
+#define QSLT_BEACON 0x10
+#define QSLT_HIGH 0x11
+#define QSLT_MGNT 0x12
+#define QSLT_CMD 0x13
+
+#define NUM_OF_FIRMWARE_QUEUE 10
+#define NUM_OF_PAGES_IN_FW 0x100
+#define NUM_OF_PAGE_IN_FW_QUEUE_BK 0x07
+#define NUM_OF_PAGE_IN_FW_QUEUE_BE 0x07
+#define NUM_OF_PAGE_IN_FW_QUEUE_VI 0x07
+#define NUM_OF_PAGE_IN_FW_QUEUE_VO 0x07
+#define NUM_OF_PAGE_IN_FW_QUEUE_HCCA 0x0
+#define NUM_OF_PAGE_IN_FW_QUEUE_CMD 0x0
+#define NUM_OF_PAGE_IN_FW_QUEUE_MGNT 0x02
+#define NUM_OF_PAGE_IN_FW_QUEUE_HIGH 0x02
+#define NUM_OF_PAGE_IN_FW_QUEUE_BCN 0x2
+#define NUM_OF_PAGE_IN_FW_QUEUE_PUB 0xA1
+
+#define NUM_OF_PAGE_IN_FW_QUEUE_BK_DTM 0x026
+#define NUM_OF_PAGE_IN_FW_QUEUE_BE_DTM 0x048
+#define NUM_OF_PAGE_IN_FW_QUEUE_VI_DTM 0x048
+#define NUM_OF_PAGE_IN_FW_QUEUE_VO_DTM 0x026
+#define NUM_OF_PAGE_IN_FW_QUEUE_PUB_DTM 0x00
+
+#define HAL_PRIME_CHNL_OFFSET_DONT_CARE 0
+#define HAL_PRIME_CHNL_OFFSET_LOWER 1
+#define HAL_PRIME_CHNL_OFFSET_UPPER 2
+
+
+
+#define MAX_SILENT_RESET_RX_SLOT_NUM 10
+typedef enum tag_Rf_OpType
+{
+ RF_OP_By_SW_3wire = 0,
+ RF_OP_By_FW,
+ RF_OP_MAX
+}RF_OpType_E;
+
+
+typedef enum _POWER_SAVE_MODE
+{
+ POWER_SAVE_MODE_ACTIVE,
+ POWER_SAVE_MODE_SAVE,
+}POWER_SAVE_MODE;
+
+typedef enum _INTERFACE_SELECT_8190PCI{
+ INTF_SEL1_MINICARD = 0,
+ INTF_SEL0_PCIE = 1,
+ INTF_SEL2_RSV = 2,
+ INTF_SEL3_RSV = 3,
+} INTERFACE_SELECT_8190PCI, *PINTERFACE_SELECT_8190PCI;
+
+
+typedef struct _BB_REGISTER_DEFINITION{
+ u32 rfintfs;
+ u32 rfintfi;
+ u32 rfintfo;
+ u32 rfintfe;
+ u32 rf3wireOffset;
+ u32 rfLSSI_Select;
+ u32 rfTxGainStage;
+ u32 rfHSSIPara1;
+ u32 rfHSSIPara2;
+ u32 rfSwitchControl;
+ u32 rfAGCControl1;
+ u32 rfAGCControl2;
+ u32 rfRxIQImbalance;
+ u32 rfRxAFE;
+ u32 rfTxIQImbalance;
+ u32 rfTxAFE;
+ u32 rfLSSIReadBack;
+ u32 rfLSSIReadBackPi;
+}BB_REGISTER_DEFINITION_T, *PBB_REGISTER_DEFINITION_T;
+
+
+
+
+typedef struct _rx_fwinfo_8192s{
+
+ /*u32 gain_0:7;
+ u32 trsw_0:1;
+ u32 gain_1:7;
+ u32 trsw_1:1;
+ u32 gain_2:7;
+ u32 trsw_2:1;
+ u32 gain_3:7;
+ u32 trsw_3:1; */
+ u8 gain_trsw[4];
+
+ /*u32 pwdb_all:8;
+ u32 cfosho_0:8;
+ u32 cfosho_1:8;
+ u32 cfosho_2:8;*/
+ u8 pwdb_all;
+ u8 cfosho[4];
+
+ /*u32 cfosho_3:8;
+ u32 cfotail_0:8;
+ u32 cfotail_1:8;
+ u32 cfotail_2:8;*/
+ u8 cfotail[4];
+
+ /*u32 cfotail_3:8;
+ u32 rxevm_0:8;
+ u32 rxevm_1:8;
+ u32 rxsnr_0:8;*/
+ s8 rxevm[2];
+ s8 rxsnr[4];
+
+ /*u32 rxsnr_1:8;
+ u32 rxsnr_2:8;
+ u32 rxsnr_3:8;
+ u32 pdsnr_0:8;*/
+ u8 pdsnr[2];
+
+ /*u32 pdsnr_1:8;
+ u32 csi_current_0:8;
+ u32 csi_current_1:8;
+ u32 csi_target_0:8;*/
+ u8 csi_current[2];
+ u8 csi_target[2];
+
+ /*u32 csi_target_1:8;
+ u32 sigevm:8;
+ u32 max_ex_pwr:8;
+ u32 ex_intf_flag:1;
+ u32 sgi_en:1;
+ u32 rxsc:2;
+ u32 reserve:4;*/
+ u8 sigevm;
+ u8 max_ex_pwr;
+ u8 ex_intf_flag:1;
+ u8 sgi_en:1;
+ u8 rxsc:2;
+ u8 reserve:4;
+
+}rx_fwinfo, *prx_fwinfo;
+
+typedef struct _LOG_INTERRUPT_8190
+{
+ u32 nIMR_COMDOK;
+ u32 nIMR_MGNTDOK;
+ u32 nIMR_HIGH;
+ u32 nIMR_VODOK;
+ u32 nIMR_VIDOK;
+ u32 nIMR_BEDOK;
+ u32 nIMR_BKDOK;
+ u32 nIMR_ROK;
+ u32 nIMR_RCOK;
+ u32 nIMR_TBDOK;
+ u32 nIMR_BDOK;
+ u32 nIMR_RXFOVW;
+} LOG_INTERRUPT_8190_T, *PLOG_INTERRUPT_8190_T;
+
+typedef struct _phy_cck_rx_status_report_819xpci
+{
+ u8 adc_pwdb_X[4];
+ u8 sq_rpt;
+ u8 cck_agc_rpt;
+}phy_sts_cck_819xpci_t, phy_sts_cck_8192s_t;
+
+#define PHY_RSSI_SLID_WIN_MAX 100
+#define PHY_LINKQUALITY_SLID_WIN_MAX 20
+#define PHY_Beacon_RSSI_SLID_WIN_MAX 10
+
+typedef struct _tx_desc_8192se{
+
+ u32 PktSize:16;
+ u32 Offset:8;
+ u32 Type:2;
+ u32 LastSeg:1;
+ u32 FirstSeg:1;
+ u32 LINIP:1;
+ u32 AMSDU:1;
+ u32 GF:1;
+ u32 OWN:1;
+
+ u32 MacID:5;
+ u32 MoreData:1;
+ u32 MoreFrag:1;
+ u32 PIFS:1;
+ u32 QueueSel:5;
+ u32 AckPolicy:2;
+ u32 NoACM:1;
+ u32 NonQos:1;
+ u32 KeyID:2;
+ u32 OUI:1;
+ u32 PktType:1;
+ u32 EnDescID:1;
+ u32 SecType:2;
+ u32 HTC:1;
+ u32 WDS:1;
+ u32 PktOffset:5;
+ u32 HWPC:1;
+
+ u32 DataRetryLmt:6;
+ u32 RetryLmtEn:1;
+ u32 TSFL:5;
+ u32 RTSRC:6;
+ u32 DATARC:6;
+ u32 Rsvd_MacID:5;
+ u32 AggEn:1;
+ u32 BK:1;
+ u32 OwnMAC:1;
+
+ u32 NextHeadPage:8;
+ u32 TailPage:8;
+ u32 Seq:12;
+ u32 Frag:4;
+
+ u32 RTSRate:6;
+ u32 DisRTSFB:1;
+ u32 RTSRateFBLmt:4;
+ u32 CTS2Self:1;
+ u32 RTSEn:1;
+ u32 RaBRSRID:3;
+ u32 TXHT:1;
+ u32 TxShort:1;
+ u32 TxBw:1;
+ u32 TXSC:2;
+ u32 STBC:2;
+ u32 RD:1;
+ u32 RTSHT:1;
+ u32 RTSShort:1;
+ u32 RTSBW:1;
+ u32 RTSSC:2;
+ u32 RTSSTBC:2;
+ u32 UserRate:1;
+
+ u32 PktID:9;
+ u32 TxRate:6;
+ u32 DISFB:1;
+ u32 DataRateFBLmt:5;
+ u32 TxAGC:11;
+
+ u32 IPChkSum:16;
+ u32 TCPChkSum:16;
+
+ u32 TxBufferSize:16;
+ u32 IPHdrOffset:8;
+ u32 Rsvd3:7;
+ u32 TCPEn:1;
+
+ u32 TxBuffAddr;
+
+ u32 NextDescAddress;
+
+ u32 Reserve_Pass_92S_PCIE_MM_Limit[6];
+
+} tx_desc, *ptx_desc;
+
+
+typedef struct _tx_desc_cmd_8192se{
+ u32 PktSize:16;
+ u32 Offset:8;
+ u32 Rsvd0:2;
+ u32 FirstSeg:1;
+ u32 LastSeg:1;
+ u32 LINIP:1;
+ u32 Rsvd1:2;
+ u32 OWN:1;
+
+ u32 Rsvd2;
+ u32 Rsvd3;
+ u32 Rsvd4;
+ u32 Rsvd5;
+ u32 Rsvd6;
+ u32 Rsvd7;
+
+ u32 TxBufferSize:16;
+ u32 Rsvd8:16;
+
+ u32 TxBufferAddr;
+
+ u32 NextTxDescAddress;
+
+ u32 Reserve_Pass_92S_PCIE_MM_Limit[6];
+
+}tx_desc_cmd, *ptx_desc_cmd;
+
+
+typedef struct _tx_status_desc_8192se{
+
+ u32 PktSize:16;
+ u32 Offset:8;
+ u32 Type:2;
+ u32 LastSeg:1;
+ u32 FirstSeg:1;
+ u32 LINIP:1;
+ u32 AMSDU:1;
+ u32 GF:1;
+ u32 OWN:1;
+
+ u32 MacID:5;
+ u32 MoreData:1;
+ u32 MoreFrag:1;
+ u32 PIFS:1;
+ u32 QueueSel:5;
+ u32 AckPolicy:2;
+ u32 NoACM:1;
+ u32 NonQos:1;
+ u32 KeyID:2;
+ u32 OUI:1;
+ u32 PktType:1;
+ u32 EnDescID:1;
+ u32 SecType:2;
+ u32 HTC:1;
+ u32 WDS:1;
+ u32 PktOffset:5;
+ u32 HWPC:1;
+
+ u32 DataRetryLmt:6;
+ u32 RetryLmtEn:1;
+ u32 TSFL:5;
+ u32 RTSRC:6;
+ u32 DATARC:6;
+ u32 Rsvd1:5;
+ u32 AggEn:1;
+ u32 BK:1;
+ u32 OwnMAC:1;
+
+ u32 NextHeadPage:8;
+ u32 TailPage:8;
+ u32 Seq:12;
+ u32 Frag:4;
+
+ u32 RTSRate:6;
+ u32 DisRTSFB:1;
+ u32 RTSRateFBLmt:4;
+ u32 CTS2Self:1;
+ u32 RTSEn:1;
+ u32 RaBRSRID:3;
+ u32 TXHT:1;
+ u32 TxShort:1;
+ u32 TxBw:1;
+ u32 TXSC:2;
+ u32 STBC:2;
+ u32 RD:1;
+ u32 RTSHT:1;
+ u32 RTSShort:1;
+ u32 RTSBW:1;
+ u32 RTSSC:2;
+ u32 RTSSTBC:2;
+ u32 UserRate:1;
+
+ u32 PktID:9;
+ u32 TxRate:6;
+ u32 DISFB:1;
+ u32 DataRateFBLmt:5;
+ u32 TxAGC:11;
+
+ u32 IPChkSum:16;
+ u32 TCPChkSum:16;
+
+ u32 TxBufferSize:16;
+ u32 IPHdrOffset:8;
+ u32 Rsvd2:7;
+ u32 TCPEn:1;
+
+ u32 TxBufferAddr;
+
+ u32 NextDescAddress;
+
+ u32 Reserve_Pass_92S_PCIE_MM_Limit[6];
+
+}tx_status_desc, *ptx_status_desc;
+
+
+typedef struct _rx_desc_8192se{
+ u32 Length:14;
+ u32 CRC32:1;
+ u32 ICVError:1;
+ u32 DrvInfoSize:4;
+ u32 Security:3;
+ u32 Qos:1;
+ u32 Shift:2;
+ u32 PHYStatus:1;
+ u32 SWDec:1;
+ u32 LastSeg:1;
+ u32 FirstSeg:1;
+ u32 EOR:1;
+ u32 OWN:1;
+
+ u32 MACID:5;
+ u32 TID:4;
+ u32 HwRsvd:5;
+ u32 PAGGR:1;
+ u32 FAGGR:1;
+ u32 A1_FIT:4;
+ u32 A2_FIT:4;
+ u32 PAM:1;
+ u32 PWR:1;
+ u32 MoreData:1;
+ u32 MoreFrag:1;
+ u32 Type:2;
+ u32 MC:1;
+ u32 BC:1;
+
+ u32 Seq:12;
+ u32 Frag:4;
+ u32 NextPktLen:14;
+ u32 NextIND:1;
+ u32 Rsvd:1;
+
+ u32 RxMCS:6;
+ u32 RxHT:1;
+ u32 AMSDU:1;
+ u32 SPLCP:1;
+ u32 BandWidth:1;
+ u32 HTC:1;
+ u32 TCPChkRpt:1;
+ u32 IPChkRpt:1;
+ u32 TCPChkValID:1;
+ u32 HwPCErr:1;
+ u32 HwPCInd:1;
+ u32 IV0:16;
+
+ u32 IV1;
+
+ u32 TSFL;
+
+ u32 BufferAddress;
+
+ u32 NextRxDescAddress;
+
+#if 0
+ u32 BA_SSN:12;
+ u32 BA_VLD:1;
+ u32 RSVD:19;
+#endif
+
+} rx_desc, *prx_desc;
+
+
+
+typedef struct _rx_desc_status_8192se{
+ u32 Length:14;
+ u32 CRC32:1;
+ u32 ICVError:1;
+ u32 DrvInfoSize:4;
+ u32 Security:3;
+ u32 Qos:1;
+ u32 Shift:2;
+ u32 PHYStatus:1;
+ u32 SWDec:1;
+ u32 LastSeg:1;
+ u32 FirstSeg:1;
+ u32 EOR:1;
+ u32 OWN:1;
+
+ u32 MACID:5;
+ u32 TID:4;
+ u32 HwRsvd:5;
+ u32 PAGGR:1;
+ u32 FAGGR:1;
+ u32 A1_FIT:4;
+ u32 A2_FIT:4;
+ u32 PAM:1;
+ u32 PWR:1;
+ u32 MoreData:1;
+ u32 MoreFrag:1;
+ u32 Type:2;
+ u32 MC:1;
+ u32 BC:1;
+
+ u32 Seq:12;
+ u32 Frag:4;
+ u32 NextPktLen:14;
+ u32 NextIND:1;
+ u32 Rsvd:1;
+
+ u32 RxMCS:6;
+ u32 RxHT:1;
+ u32 AMSDU:1;
+ u32 SPLCP:1;
+ u32 BW:1;
+ u32 HTC:1;
+ u32 TCPChkRpt:1;
+ u32 IPChkRpt:1;
+ u32 TCPChkValID:1;
+ u32 HwPCErr:1;
+ u32 HwPCInd:1;
+ u32 IV0:16;
+
+ u32 IV1;
+
+ u32 TSFL;
+
+
+ u32 BufferAddress;
+
+ u32 NextRxDescAddress;
+
+#if 0
+ u32 BA_SSN:12;
+ u32 BA_VLD:1;
+ u32 RSVD:19;
+#endif
+}rx_desc_status, *prx_desc_status;
+
+typedef enum _HAL_FW_C2H_CMD_ID
+{
+ HAL_FW_C2H_CMD_Read_MACREG = 0,
+ HAL_FW_C2H_CMD_Read_BBREG = 1,
+ HAL_FW_C2H_CMD_Read_RFREG = 2,
+ HAL_FW_C2H_CMD_Read_EEPROM = 3,
+ HAL_FW_C2H_CMD_Read_EFUSE = 4,
+ HAL_FW_C2H_CMD_Read_CAM = 5,
+ HAL_FW_C2H_CMD_Get_BasicRate = 6,
+ HAL_FW_C2H_CMD_Get_DataRate = 7,
+ HAL_FW_C2H_CMD_Survey = 8 ,
+ HAL_FW_C2H_CMD_SurveyDone = 9,
+ HAL_FW_C2H_CMD_JoinBss = 10,
+ HAL_FW_C2H_CMD_AddSTA = 11,
+ HAL_FW_C2H_CMD_DelSTA = 12,
+ HAL_FW_C2H_CMD_AtimDone = 13,
+ HAL_FW_C2H_CMD_TX_Report = 14,
+ HAL_FW_C2H_CMD_CCX_Report = 15,
+ HAL_FW_C2H_CMD_DTM_Report = 16,
+ HAL_FW_C2H_CMD_TX_Rate_Statistics = 17,
+ HAL_FW_C2H_CMD_C2HLBK = 18,
+ HAL_FW_C2H_CMD_C2HDBG = 19,
+ HAL_FW_C2H_CMD_C2HFEEDBACK = 20,
+ HAL_FW_C2H_CMD_BT_State = 25,
+ HAL_FW_C2H_CMD_BT_Service = 26,
+ HAL_FW_C2H_CMD_MAX
+}HAL_FW_C2H_CMD_ID;
+
+#define HAL_FW_C2H_CMD_C2HFEEDBACK_CCX_PER_PKT_RPT 0x04
+#define HAL_FW_C2H_CMD_C2HFEEDBACK_DTM_TX_STATISTICS_RPT 0x05
+#endif
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_dev.c b/ubuntu/rtl8192se/rtl8192s/r8192S_dev.c
new file mode 100755
index 00000000000..975d6806800
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_dev.c
@@ -0,0 +1,5004 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#include "../rtl_core.h"
+#include "../rtl_dm.h"
+#include "../rtl_wx.h"
+#include "r8192S_phy.h"
+#include "r8192S_phyreg.h"
+#include "r8192S_rtl6052.h"
+#include "r8192S_Efuse.h"
+
+#ifdef _RTL8192_EXT_PATCH_
+#include "../../../mshclass/msh_class.h"
+#include "../rtl_mesh.h"
+#endif
+
+extern int WDCAPARA_ADD[];
+
+void rtl8192se_start_beacon(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ struct rtllib_network *net = &priv->rtllib->current_network;
+ u16 BcnTimeCfg = 0;
+ u16 BcnCW = 6;
+ u16 BcnIFS = 0xf;
+
+ DMESG("Enabling beacon TX");
+ rtl8192_irq_disable(dev);
+
+ write_nic_word(dev, ATIMWND, 2);
+
+ write_nic_word(dev, BCN_INTERVAL, net->beacon_interval);
+ PHY_SetBeaconHwReg(dev, net->beacon_interval);
+
+#ifdef RTL8192SE
+ write_nic_word(dev, BCN_DRV_EARLY_INT, 10<<4);
+#else
+ write_nic_word(dev, BCN_DRV_EARLY_INT, 10);
+#endif
+ write_nic_word(dev, BCN_DMATIME, 256);
+
+ write_nic_byte(dev, BCN_ERR_THRESH, 100);
+
+#if 1
+ switch(priv->rtllib->iw_mode)
+ {
+ case IW_MODE_ADHOC:
+ case IW_MODE_MESH:
+ BcnTimeCfg |= (BcnCW<<BCN_TCFG_CW_SHIFT);
+ break;
+ default:
+ printk("Invalid Operation Mode!!\n");
+ break;
+ }
+
+ BcnTimeCfg |= BcnIFS<<BCN_TCFG_IFS;
+
+
+ {
+ u8 u1Temp = (u8)(net->beacon_interval);
+ write_nic_dword(dev, WFM5, 0xF1000000 |((u16)( u1Temp) << 8));
+ ChkFwCmdIoDone(dev);
+ }
+#else
+ BcnTimeCfg |= BcnCW<<BCN_TCFG_CW_SHIFT;
+ BcnTimeCfg |= BcnIFS<<BCN_TCFG_IFS;
+ write_nic_word(dev, BCN_TCFG, BcnTimeCfg);
+#endif
+ rtl8192_irq_enable(dev);
+}
+
+void rtl8192se_update_msr(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 msr;
+ LED_CTL_MODE LedAction = LED_CTL_NO_LINK;
+ msr = read_nic_byte(dev, MSR);
+ msr &= ~ MSR_LINK_MASK;
+
+ switch (priv->rtllib->iw_mode) {
+ case IW_MODE_INFRA:
+ if (priv->rtllib->state == RTLLIB_LINKED)
+ msr |= (MSR_LINK_MANAGED << MSR_LINK_SHIFT);
+ else
+ msr |= (MSR_LINK_NONE << MSR_LINK_SHIFT);
+ LedAction = LED_CTL_LINK;
+ break;
+ case IW_MODE_ADHOC:
+ if (priv->rtllib->state == RTLLIB_LINKED)
+ msr |= (MSR_LINK_ADHOC << MSR_LINK_SHIFT);
+ else
+ msr |= (MSR_LINK_NONE << MSR_LINK_SHIFT);
+ break;
+ case IW_MODE_MASTER:
+ if (priv->rtllib->state == RTLLIB_LINKED)
+ msr |= (MSR_LINK_MASTER << MSR_LINK_SHIFT);
+ else
+ msr |= (MSR_LINK_NONE << MSR_LINK_SHIFT);
+ break;
+#ifdef _RTL8192_EXT_PATCH_
+ case IW_MODE_MESH:
+ printk("%s: iw_mode=%d state=%d only_mesh=%d mesh_state=%d\n", __FUNCTION__,priv->rtllib->iw_mode,priv->rtllib->state, priv->rtllib->only_mesh, priv->rtllib->mesh_state);
+ if (priv->rtllib->only_mesh) {
+ if (priv->rtllib->mesh_state == RTLLIB_MESH_LINKED)
+ msr |= (MSR_LINK_MASTER<<MSR_LINK_SHIFT);
+ else
+ msr |= (MSR_LINK_NONE<<MSR_LINK_SHIFT);
+ } else {
+ if (priv->rtllib->mesh_state == RTLLIB_MESH_LINKED) {
+ msr |= (MSR_LINK_ADHOC << MSR_LINK_SHIFT);
+ } else {
+ msr |= (MSR_LINK_NONE << MSR_LINK_SHIFT);
+ }
+ if (priv->rtllib->state == RTLLIB_LINKED)
+ msr |= (MSR_LINK_MANAGED << MSR_LINK_SHIFT);
+ }
+ break;
+#endif
+ default:
+ break;
+ }
+
+ write_nic_byte(dev, MSR, msr);
+ if(priv->rtllib->LedControlHandler)
+ priv->rtllib->LedControlHandler(dev, LedAction);
+}
+
+static void rtl8192se_config_hw_for_load_fail(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u16 i;
+ u8 sMacAddr[6] = {0x00, 0xE0, 0x4C, 0x81, 0x92, 0x00};
+ u8 rf_path, index;
+ u32 tmp1111 = 0;
+ u32 tmp2222 = 0;
+
+ RT_TRACE(COMP_INIT, "====> rtl8192se_config_hw_for_load_fail\n");
+
+ for(;tmp2222<0xff;tmp2222+=4)
+ {
+ tmp1111= read_nic_dword(dev, tmp2222);
+ }
+
+ write_nic_byte(dev, SYS_ISO_CTRL+1, 0xE8);
+ mdelay(10);
+ write_nic_byte(dev, PMC_FSM, 0x02);
+
+ priv->eeprom_vid= 0;
+ priv->eeprom_did= 0;
+ priv->eeprom_ChannelPlan= 0;
+ priv->eeprom_CustomerID= 0;
+
+ get_random_bytes(&sMacAddr[5], 1);
+ for(i = 0; i < 6; i++)
+ dev->dev_addr[i] = sMacAddr[i];
+
+
+ priv->rf_type= RTL819X_DEFAULT_RF_TYPE;
+ priv->rf_chip = RF_6052;
+
+#if (EEPROM_OLD_FORMAT_SUPPORT == 1)
+ for(i=0; i<14; i++)
+ {
+ priv->EEPROMTxPowerLevelCCK[i] = (u8)(EEPROM_Default_TxPower & 0xff);
+ RT_TRACE(COMP_INIT, "CCK 2.4G Tx Pwr Index %d = 0x%02x\n",
+ i, priv->EEPROMTxPowerLevelCCK[i]);
+ }
+
+ for(i=0; i<14; i++)
+ {
+ priv->EEPROMTxPowerLevelOFDM24G[i] = (u8)(EEPROM_Default_TxPower & 0xff);
+ RT_TRACE(COMP_INIT, "OFDM 2.4G Tx Pwr Index %d = 0x%02x\n",
+ i, priv->EEPROMTxPowerLevelOFDM24G[i]);
+ }
+
+ for(i=0; i<14; i++)
+ {
+ priv->TxPowerLevelOFDM24G[i] = priv->EEPROMTxPowerLevelOFDM24G[i];
+ priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelCCK[i];
+ }
+ for(i=0; i<6; i++)
+ {
+ priv->EEPROMHT2T_TxPwr[i] = EEPROM_Default_HT2T_TxPwr;
+ }
+
+#else
+ for (rf_path = 0; rf_path < 2; rf_path++)
+ {
+ for (i = 0; i < 3; i++)
+ {
+ priv->RfCckChnlAreaTxPwr[rf_path][i] =
+ priv->RfOfdmChnlAreaTxPwr1T[rf_path][i] =
+ priv->RfOfdmChnlAreaTxPwr2T[rf_path][i] =
+ EEPROM_Default_TxPowerLevel;
+ }
+ }
+
+ for (rf_path = 0; rf_path < 2; rf_path++)
+ {
+ for(i=0; i<14; i++)
+ {
+ if (i < 3)
+ index = 0;
+ else if (i < 8)
+ index = 1;
+ else
+ index = 2;
+
+ priv->RfTxPwrLevelCck[rf_path][i] =
+ priv->RfCckChnlAreaTxPwr[rf_path][index] =
+ priv->RfTxPwrLevelOfdm1T[rf_path][i] =
+ priv->RfOfdmChnlAreaTxPwr1T[rf_path][index] =
+ priv->RfTxPwrLevelOfdm2T[rf_path][i] =
+ priv->RfOfdmChnlAreaTxPwr2T[rf_path][index] =
+ (u8)(EEPROM_Default_TxPower & 0xff);
+
+ if (rf_path == 0)
+ {
+ priv->TxPowerLevelOFDM24G[i] = (u8)(EEPROM_Default_TxPower & 0xff);
+ priv->TxPowerLevelCCK[i] = (u8)(EEPROM_Default_TxPower & 0xff);
+ }
+ }
+
+ }
+
+ RT_TRACE(COMP_INIT, "All TxPwr = 0x%x\n", EEPROM_Default_TxPower);
+
+ for(i=0; i<14; i++)
+ {
+ priv->TxPwrHt20Diff[RF90_PATH_A][i] = DEFAULT_HT20_TXPWR_DIFF;
+ priv->TxPwrHt20Diff[RF90_PATH_B][i] = DEFAULT_HT20_TXPWR_DIFF;
+
+ priv->TxPwrLegacyHtDiff[0][i] = EEPROM_Default_LegacyHTTxPowerDiff;
+ priv->TxPwrLegacyHtDiff[1][i] = EEPROM_Default_LegacyHTTxPowerDiff;
+ }
+
+ priv->TxPwrSafetyFlag = 0;
+#endif
+
+ priv->EEPROMTxPowerDiff = EEPROM_Default_LegacyHTTxPowerDiff;
+ priv->LegacyHTTxPowerDiff = priv->EEPROMTxPowerDiff;
+ RT_TRACE(COMP_INIT, "TxPowerDiff = %#x\n", priv->EEPROMTxPowerDiff);
+
+ for (rf_path = 0; rf_path < 2; rf_path++)
+ {
+ for (i = 0; i < 3; i++)
+ {
+ priv->EEPROMPwrGroup[rf_path][i] = 0;
+ }
+ }
+
+ for (rf_path = 0; rf_path < 2; rf_path++)
+ {
+ for(i=0; i<14; i++)
+ {
+ if (i < 3)
+ index = 0;
+ else if (i < 8)
+ index = 1;
+ else
+ index = 2;
+ priv->PwrGroupHT20[rf_path][i] = (priv->EEPROMPwrGroup[rf_path][index]&0xf);
+ priv->PwrGroupHT40[rf_path][i] = ((priv->EEPROMPwrGroup[rf_path][index]&0xf0)>>4);
+ }
+ }
+ priv->EEPROMRegulatory = 0;
+
+ priv->EEPROMTSSI_A = EEPROM_Default_TSSI;
+ priv->EEPROMTSSI_B = EEPROM_Default_TSSI;
+
+ for(i=0; i<6; i++)
+ {
+ priv->EEPROMHT2T_TxPwr[i] = EEPROM_Default_HT2T_TxPwr;
+ }
+
+
+ priv->EEPROMThermalMeter = EEPROM_Default_ThermalMeter;
+ priv->ThermalMeter[0] = (priv->EEPROMThermalMeter&0x1f);
+ priv->TSSI_13dBm = priv->EEPROMThermalMeter *100;
+
+ priv->BluetoothCoexist = EEPROM_Default_BlueToothCoexist;
+ priv->EEPROMBluetoothType = EEPROM_Default_BlueToothType;
+ priv->EEPROMBluetoothAntNum = EEPROM_Default_BlueToothAntNum;
+ priv->EEPROMBluetoothAntIsolation = EEPROM_Default_BlueToothAntIso;
+
+ priv->EEPROMCrystalCap = EEPROM_Default_CrystalCap;
+ priv->CrystalCap = priv->EEPROMCrystalCap;
+
+ priv->eeprom_ChannelPlan = 0;
+ priv->eeprom_version = 1;
+ priv->bTXPowerDataReadFromEEPORM = false;
+
+ priv->rf_type = RTL819X_DEFAULT_RF_TYPE;
+ priv->rf_chip = RF_6052;
+ priv->eeprom_CustomerID = 0;
+ RT_TRACE(COMP_INIT, "EEPROM Customer ID: 0x%2x\n", priv->eeprom_CustomerID);
+
+
+ priv->EEPROMBoardType = EEPROM_Default_BoardType;
+ RT_TRACE(COMP_INIT, "BoardType = %#x\n", priv->EEPROMBoardType);
+
+ priv->LedStrategy = SW_LED_MODE7;
+
+
+ RT_TRACE(COMP_INIT,"<==== rtl8192se_config_hw_for_load_fail\n");
+}
+
+static void rtl8192se_get_IC_Inferiority(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 Efuse_ID;
+
+ priv->IC_Class = IC_INFERIORITY_A;
+ if((priv->epromtype == EEPROM_BOOT_EFUSE) && !priv->AutoloadFailFlag)
+ {
+ Efuse_ID = EFUSE_Read1Byte(dev, EFUSE_IC_ID_OFFSET);
+
+ if(Efuse_ID == 0xfe)
+ {
+ priv->IC_Class = IC_INFERIORITY_B;
+
+ }
+ }
+}
+
+void
+HalCustomizedBehavior8192S(struct net_device* dev)
+{
+ struct r8192_priv* priv = rtllib_priv(dev);
+ priv->rtllib->bForcedShowRateStill = false;
+ switch(priv->CustomerID)
+ {
+ case RT_CID_DEFAULT:
+ priv->LedStrategy = SW_LED_MODE7;
+ if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 &&
+ priv->eeprom_svid == 0x1A3B && priv->eeprom_smid == 0x1A07)
+ {
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->rtllib->mode = WIRELESS_MODE_G;
+ priv->rtllib->bForcedBgMode = true;
+ priv->rtllib->bForcedShowRateStill = true;
+ }
+ else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 &&
+ priv->eeprom_svid == 0x1A3B && priv->eeprom_smid == 0x1A04)
+ {
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->rtllib->mode = WIRELESS_MODE_G;
+ priv->rtllib->bForcedBgMode = true;
+ priv->rtllib->bForcedShowRateStill = true;
+ }
+ else if(priv->eeprom_svid == 0x1A3B && (priv->eeprom_smid == 0x1104 ||
+ priv->eeprom_smid == 0x1107))
+ {
+ priv->rtllib->bForcedShowRateStill = true;
+ }
+ else if(priv->eeprom_vid == 0x10ec && priv->eeprom_did == 0x8171 &&
+ priv->eeprom_svid == 0x10ec && priv->eeprom_smid == 0x7171){
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->rtllib->mode = WIRELESS_MODE_G;
+ priv->rtllib->bForcedBgMode = true;
+ }else if(priv->eeprom_vid == 0x10ec && priv->eeprom_did == 0x8174 &&
+ priv->eeprom_svid == 0x10ec && priv->eeprom_smid == 0x7174){
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->rtllib->mode = WIRELESS_MODE_G;
+ }else if(priv->eeprom_vid == 0x10ec && priv->eeprom_did == 0x8174 &&
+ priv->eeprom_svid == 0x10ec && priv->eeprom_smid == 0x7150){
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->rtllib->mode = WIRELESS_MODE_G;
+ }else if(priv->eeprom_vid == 0x10ec && priv->eeprom_did == 0x8172 &&
+ priv->eeprom_svid == 0x10ec && priv->eeprom_smid == 0x7172){
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->rtllib->mode = WIRELESS_MODE_G;
+ }else if(priv->eeprom_vid == 0x10ec && priv->eeprom_did == 0x8172 &&
+ priv->eeprom_svid == 0x10ec && priv->eeprom_smid == 0x7186){
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->rtllib->mode = WIRELESS_MODE_G;
+ }
+ break;
+
+ break;
+
+ case RT_CID_819x_Acer:
+ priv->LedStrategy = SW_LED_MODE7;
+ break;
+
+ case RT_CID_TOSHIBA:
+ priv->rtllib->current_network.channel = 10;
+ priv->LedStrategy = SW_LED_MODE7;
+ priv->EEPROMRegulatory = 1;
+ if(priv->eeprom_smid >= 0x7000 && priv->eeprom_smid < 0x8000){
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->rtllib->mode = WIRELESS_MODE_G;
+ priv->rtllib->bForcedBgMode = true;
+ }
+ break;
+ case RT_CID_CCX:
+ priv->DMFlag |= (HAL_DM_DIG_DISABLE | HAL_DM_HIPWR_DISABLE);
+ break;
+
+ case RT_CID_819x_Lenovo:
+ priv->LedStrategy = SW_LED_MODE7;
+ if(priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0xE025){
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->rtllib->mode = WIRELESS_MODE_G;
+ }
+ break;
+
+ case RT_CID_819x_QMI:
+ priv->LedStrategy = SW_LED_MODE8;
+ if(priv->eeprom_svid == 0x1462 && priv->eeprom_smid == 0x897A){
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->RegWirelessMode = WIRELESS_MODE_G;
+ priv->rtllib->mode = WIRELESS_MODE_G;
+ }
+ break;
+
+ case RT_CID_819x_MSI:
+ priv->LedStrategy = SW_LED_MODE9;
+ break;
+
+ case RT_CID_819x_HP:
+ priv->LedStrategy = SW_LED_MODE7;
+ priv->bLedOpenDrain = true;
+
+ case RT_CID_WHQL:
+ ;
+ break;
+
+ default:
+ RT_TRACE(COMP_INIT,"Unkown hardware Type \n");
+ break;
+ }
+}
+
+static void rtl8192se_read_eeprom_info(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u16 i,usValue;
+ u16 EEPROMId;
+#if (EEPROM_OLD_FORMAT_SUPPORT == 1)
+ u8 tmpBuffer[30];
+#endif
+ u8 tempval;
+ u8 hwinfo[HWSET_MAX_SIZE_92S];
+ u8 rf_path, index;
+
+ RT_TRACE(COMP_INIT, "====> rtl8192se_read_eeprom_info\n");
+
+ if (priv->epromtype== EEPROM_93C46)
+ {
+ write_nic_byte(dev, SYS_ISO_CTRL+1, 0xE8);
+ mdelay(10);
+ write_nic_byte(dev, PMC_FSM, 0x02);
+
+ RT_TRACE(COMP_INIT, "EEPROM\n");
+ for(i = 0; i < HWSET_MAX_SIZE_92S; i += 2)
+ {
+ usValue = eprom_read(dev, (u16) (i>>1));
+ *((u16*)(&hwinfo[i])) = usValue;
+ }
+ }
+ else if (priv->epromtype == EEPROM_BOOT_EFUSE)
+ {
+ RT_TRACE(COMP_INIT, "EFUSE\n");
+
+ EFUSE_ShadowMapUpdate(dev);
+
+ memcpy( hwinfo, &priv->EfuseMap[EFUSE_INIT_MAP][0], HWSET_MAX_SIZE_92S);
+ }
+
+
+ EEPROMId = *((u16 *)&hwinfo[0]);
+ if( EEPROMId != RTL8190_EEPROM_ID )
+ {
+ RT_TRACE(COMP_ERR, "EEPROM ID(%#x) is invalid!!\n", EEPROMId);
+ priv->AutoloadFailFlag=true;
+ }
+ else
+ {
+ RT_TRACE(COMP_EPROM, "Autoload OK\n");
+ priv->AutoloadFailFlag=false;
+ }
+
+ if (priv->AutoloadFailFlag == true)
+ {
+ rtl8192se_config_hw_for_load_fail(dev);
+ return;
+ }
+
+ rtl8192se_get_IC_Inferiority(dev);
+
+ priv->eeprom_vid = *(u16 *)&hwinfo[EEPROM_VID];
+ priv->eeprom_did = *(u16 *)&hwinfo[EEPROM_DID];
+ priv->eeprom_svid = *(u16 *)&hwinfo[EEPROM_SVID];
+ priv->eeprom_smid = *(u16 *)&hwinfo[EEPROM_SMID];
+ priv->eeprom_version = *(u16 *)&hwinfo[EEPROM_Version];
+
+ RT_TRACE(COMP_EPROM, "EEPROMId = 0x%4x\n", EEPROMId);
+ RT_TRACE(COMP_EPROM, "EEPROM VID = 0x%4x\n", priv->eeprom_vid);
+ RT_TRACE(COMP_EPROM, "EEPROM DID = 0x%4x\n", priv->eeprom_did);
+ RT_TRACE(COMP_EPROM, "EEPROM SVID = 0x%4x\n", priv->eeprom_svid);
+ RT_TRACE(COMP_EPROM, "EEPROM SMID = 0x%4x\n", priv->eeprom_smid);
+
+ priv->EEPROMOptional = *(u8 *)&hwinfo[EEPROM_Optional];
+ priv->ShowRateMode = 2;
+ priv->rtllib->bForcedShowRxRate = false;
+
+ if(priv->ShowRateMode == 0) {
+ if((priv->EEPROMOptional & BIT3) == 0x08/*0000_1000*/) {
+ priv->rtllib->bForcedShowRxRate = true;
+ }
+ } else if(priv->ShowRateMode == 2){
+ priv->rtllib->bForcedShowRxRate = true;
+ }
+
+ for(i = 0; i < 6; i += 2)
+ {
+ usValue = *(u16 *)&hwinfo[EEPROM_MAC_ADDR+i];
+ *((u16*)(&dev->dev_addr[i])) = usValue;
+ }
+ for (i=0;i<6;i++)
+ write_nic_byte(dev, MACIDR0+i, dev->dev_addr[i]);
+
+ RT_TRACE(COMP_EPROM, "ReadAdapterInfo8192S(), Permanent Address = %02x-%02x-%02x-%02x-%02x-%02x\n",
+ dev->dev_addr[0], dev->dev_addr[1], dev->dev_addr[2], dev->dev_addr[3],
+ dev->dev_addr[4], dev->dev_addr[5]);
+
+#if (EEPROM_OLD_FORMAT_SUPPORT == 1)
+ for(i = 0; i < EEPROM_TX_PWR_INDEX_RANGE; i += 2)
+ {
+ usValue = *(u16 *)&hwinfo[EEPROM_TxPowerBase+i];
+ *((u16 *)(&tmpBuffer[i])) = usValue;
+ }
+ for(i=0; i<14; i++)
+ {
+ priv->EEPROMTxPowerLevelCCK[i] = (u8)tmpBuffer[i];
+ priv->EEPROMTxPowerLevelOFDM24G[i] = (u8)tmpBuffer[i+14];
+ }
+
+
+ for(i=0; i<14; i++)
+ {
+ priv->TxPowerLevelOFDM24G[i] = priv->EEPROMTxPowerLevelOFDM24G[i];
+ priv->TxPowerLevelCCK[i] = priv->EEPROMTxPowerLevelCCK[i];
+
+ RT_TRACE(COMP_EPROM, "CH%d CCK Tx PWR IDX = 0x%02x\n", i, priv->EEPROMTxPowerLevelCCK[i]);
+ RT_TRACE(COMP_EPROM, "CH%d OFDM Tx PWR IDX = 0x%02x\n", i, priv->EEPROMTxPowerLevelOFDM24G[i]);
+ }
+
+ for(i = 0; i < 6; i += 2)
+ {
+ usValue = *(u16 *)&hwinfo[EEPROM_HT2T_CH1_A+i];
+ *((u16*)(&priv->EEPROMHT2T_TxPwr[i])) = usValue;
+ }
+ for(i=0; i<6; i++)
+ {
+ RT_TRACE(COMP_EPROM, "EEPROMHT2T_TxPwr, Index %d = 0x%02x\n", i, priv->EEPROMHT2T_TxPwr[i]);
+ }
+
+#else
+
+ for (rf_path = 0; rf_path < 2; rf_path++)
+ {
+ for (i = 0; i < 3; i++)
+ {
+ priv->RfCckChnlAreaTxPwr[rf_path][i] =
+ hwinfo[EEPROM_TxPowerBase+rf_path*3+i];
+
+ priv->RfOfdmChnlAreaTxPwr1T[rf_path][i] =
+ hwinfo[EEPROM_TxPowerBase+6+rf_path*3+i];
+
+ priv->RfOfdmChnlAreaTxPwr2T[rf_path][i] =
+ hwinfo[EEPROM_TxPowerBase+12+rf_path*3+i];
+ }
+ }
+
+ for (rf_path = 0; rf_path < 2; rf_path++)
+ {
+ for (i = 0; i < 3; i++)
+ {
+ RT_TRACE(COMP_EPROM,"CCK RF-%d CHan_Area-%d = 0x%x\n", rf_path, i,
+ priv->RfCckChnlAreaTxPwr[rf_path][i]);
+ RT_TRACE(COMP_EPROM, "OFDM-1T RF-%d CHan_Area-%d = 0x%x\n", rf_path, i,
+ priv->RfOfdmChnlAreaTxPwr1T[rf_path][i]);
+ RT_TRACE(COMP_EPROM,"OFDM-2T RF-%d CHan_Area-%d = 0x%x\n", rf_path, i,
+ priv->RfOfdmChnlAreaTxPwr2T[rf_path][i]);
+ }
+
+ for(i=0; i<14; i++)
+ {
+ if (i < 3)
+ index = 0;
+ else if (i < 8)
+ index = 1;
+ else
+ index = 2;
+
+ priv->RfTxPwrLevelCck[rf_path][i] =
+ priv->RfCckChnlAreaTxPwr[rf_path][index];
+ priv->RfTxPwrLevelOfdm1T[rf_path][i] =
+ priv->RfOfdmChnlAreaTxPwr1T[rf_path][index];
+ priv->RfTxPwrLevelOfdm2T[rf_path][i] =
+ priv->RfOfdmChnlAreaTxPwr2T[rf_path][index];
+
+ if (rf_path == 0)
+ {
+ priv->TxPowerLevelOFDM24G[i] = priv->RfTxPwrLevelOfdm1T[rf_path][i] ;
+ priv->TxPowerLevelCCK[i] = priv->RfTxPwrLevelCck[rf_path][i];
+ }
+ }
+
+ for(i=0; i<14; i++)
+ {
+ RT_TRACE(COMP_EPROM, "Rf-%d TxPwr CH-%d CCK OFDM_1T OFDM_2T= 0x%x/0x%x/0x%x\n",
+ rf_path, i, priv->RfTxPwrLevelCck[rf_path][i],
+ priv->RfTxPwrLevelOfdm1T[rf_path][i] ,
+ priv->RfTxPwrLevelOfdm2T[rf_path][i] );
+ }
+ }
+ for (rf_path = 0; rf_path < 2; rf_path++)
+ {
+ for (i = 0; i < 3; i++)
+ {
+ priv->EEPROMPwrGroup[rf_path][i] = hwinfo[EEPROM_TxPWRGroup+rf_path*3+i];
+ }
+ }
+
+ for (rf_path = 0; rf_path < 2; rf_path++)
+ {
+ for(i=0; i<14; i++)
+ {
+ if (i < 3)
+ index = 0;
+ else if (i < 8)
+ index = 1;
+ else
+ index = 2;
+ priv->PwrGroupHT20[rf_path][i] = (priv->EEPROMPwrGroup[rf_path][index]&0xf);
+ priv->PwrGroupHT40[rf_path][i] = ((priv->EEPROMPwrGroup[rf_path][index]&0xf0)>>4);
+ RT_TRACE(COMP_INIT, "RF-%d PwrGroupHT20[%d] = 0x%x\n", rf_path, i, priv->PwrGroupHT20[rf_path][i]);
+ RT_TRACE(COMP_INIT, "RF-%d PwrGroupHT40[%d] = 0x%x\n", rf_path, i, priv->PwrGroupHT40[rf_path][i]);
+ }
+ }
+
+ for(i=0; i<14; i++)
+ {
+ if (i < 3)
+ index = 0;
+ else if (i < 8)
+ index = 1;
+ else
+ index = 2;
+
+ tempval = (*(u8 *)&hwinfo[EEPROM_TX_PWR_HT20_DIFF+index])&0xff;
+ priv->TxPwrHt20Diff[RF90_PATH_A][i] = (tempval&0xF);
+ priv->TxPwrHt20Diff[RF90_PATH_B][i] = ((tempval>>4)&0xF);
+
+ if (i < 3)
+ index = 0;
+ else if (i < 8)
+ index = 0x11;
+ else
+ index = 1;
+
+ tempval = (*(u8 *)&hwinfo[EEPROM_TX_PWR_OFDM_DIFF+index])&0xff;
+ priv->TxPwrLegacyHtDiff[RF90_PATH_A][i] = (tempval&0xF);
+ priv->TxPwrLegacyHtDiff[RF90_PATH_B][i] = ((tempval>>4)&0xF);
+
+ tempval = (*(u8 *)&hwinfo[TX_PWR_SAFETY_CHK]);
+ priv->TxPwrSafetyFlag = (tempval&0x01);
+ }
+
+ priv->EEPROMRegulatory = 0;
+ if(priv->eeprom_version >= 2)
+ {
+ if(priv->eeprom_version >= 4)
+ priv->EEPROMRegulatory = (hwinfo[EEPROM_Regulatory]&0x7);
+ else
+ priv->EEPROMRegulatory = (hwinfo[EEPROM_Regulatory]&0x1);
+ }
+ RT_TRACE(COMP_INIT, "EEPROMRegulatory = 0x%x\n", priv->EEPROMRegulatory);
+
+ for(i=0; i<14; i++)
+ RT_TRACE(COMP_EPROM, "RF-A Ht20 to HT40 Diff[%d] = 0x%x\n", i, priv->TxPwrHt20Diff[RF90_PATH_A][i]);
+ for(i=0; i<14; i++)
+ RT_TRACE(COMP_EPROM, "RF-A Legacy to Ht40 Diff[%d] = 0x%x\n", i, priv->TxPwrLegacyHtDiff[RF90_PATH_A][i]);
+ for(i=0; i<14; i++)
+ RT_TRACE(COMP_EPROM, "RF-B Ht20 to HT40 Diff[%d] = 0x%x\n", i, priv->TxPwrHt20Diff[RF90_PATH_B][i]);
+ for(i=0; i<14; i++)
+ RT_TRACE(COMP_EPROM, "RF-B Legacy to HT40 Diff[%d] = 0x%x\n", i, priv->TxPwrLegacyHtDiff[RF90_PATH_B][i]);
+#endif
+ RT_TRACE(COMP_EPROM, "TxPwrSafetyFlag = %d\n", priv->TxPwrSafetyFlag);
+
+ tempval = (*(u8 *)&hwinfo[EEPROM_RFInd_PowerDiff])&0xff;
+ priv->EEPROMTxPowerDiff = tempval;
+ priv->LegacyHTTxPowerDiff = priv->TxPwrLegacyHtDiff[RF90_PATH_A][0];
+
+ RT_TRACE(COMP_EPROM, "TxPowerDiff = %#x\n", priv->EEPROMTxPowerDiff);
+
+ usValue = *(u16 *)&hwinfo[EEPROM_TSSI_A];
+ priv->EEPROMTSSI_A = (u8)((usValue&0xff00)>>8);
+ usValue = *(u8 *)&hwinfo[EEPROM_TSSI_B];
+ priv->EEPROMTSSI_B = (u8)(usValue&0xff);
+ RT_TRACE(COMP_EPROM, "TSSI_A = %#x, TSSI_B = %#x\n",
+ priv->EEPROMTSSI_A, priv->EEPROMTSSI_B);
+
+ tempval = *(u8 *)&hwinfo[EEPROM_ThermalMeter];
+ priv->EEPROMThermalMeter = tempval;
+ RT_TRACE(COMP_EPROM, "ThermalMeter = %#x\n", priv->EEPROMThermalMeter);
+ priv->ThermalMeter[0] =(priv->EEPROMThermalMeter&0x1f);
+ priv->TSSI_13dBm = priv->EEPROMThermalMeter *100;
+
+ tempval = *(u8 *)&hwinfo[EEPROM_BLUETOOTH_COEXIST];
+ priv->EEPROMBluetoothCoexist = ((tempval&0x2)>>1);
+ priv->BluetoothCoexist = priv->EEPROMBluetoothCoexist;
+ tempval = hwinfo[EEPROM_BLUETOOTH_TYPE];
+ priv->EEPROMBluetoothType = ((tempval&0xe)>>1);
+ priv->EEPROMBluetoothAntNum = (tempval&0x1);
+ priv->EEPROMBluetoothAntIsolation = ((tempval&0x10)>>4);
+ RT_TRACE(COMP_EPROM, "BlueTooth Coexistance = %#x\n", priv->BluetoothCoexist);
+
+#ifdef MERGE_TO_DO
+ BT_VAR_INIT(Adapter);
+
+ tempval = hwinfo[EEPROM_WoWLAN];
+ priv->EEPROMSupportWoWLAN = ((tempval&0x4)>>2);
+ if (priv->EEPROMSupportWoWLAN)
+ priv->bHwSupportRemoteWakeUp = true;
+ else
+ priv->bHwSupportRemoteWakeUp = false;
+#endif
+#ifdef RTL8192S_WAPI_SUPPORT
+ tempval = *(u8 *)&hwinfo[EEPROM_WAPI_SUPPORT];
+ priv->EEPROMWapiSupport = ((tempval&0x10)>>4);
+ priv->EEPROMWapiSupport = 1;
+
+ priv->WapiSupport = priv->EEPROMWapiSupport;
+ priv->rtllib->WapiSupport = priv->WapiSupport;
+ RT_TRACE(COMP_EPROM, "WAPI Support = %#x\n", priv->WapiSupport);
+#endif
+
+ tempval = (*(u8 *)&hwinfo[EEPROM_CrystalCap])>>4;
+ priv->EEPROMCrystalCap =tempval;
+ RT_TRACE(COMP_EPROM, "CrystalCap = %#x\n", priv->EEPROMCrystalCap);
+ priv->CrystalCap = priv->EEPROMCrystalCap;
+
+ priv->eeprom_ChannelPlan = *(u8 *)&hwinfo[EEPROM_ChannelPlan];
+ priv->bTXPowerDataReadFromEEPORM = true;
+ RT_TRACE(COMP_EPROM, "EEPROM ChannelPlan = 0x%4x\n", priv->eeprom_ChannelPlan);
+
+ tempval = *(u8*)&hwinfo[EEPROM_BoardType];
+ if (tempval == 0)
+ priv->rf_type= RF_2T2R;
+ else if (tempval == 1)
+ priv->rf_type = RF_1T2R;
+ else if (tempval == 2)
+ priv->rf_type = RF_1T2R;
+ else if (tempval == 3)
+ priv->rf_type = RF_1T1R;
+
+ priv->rtllib->RF_Type = priv->rf_type;
+ priv->rtllib->b1x1RecvCombine = false;
+ if (priv->rf_type == RF_1T2R)
+ {
+ tempval = read_nic_byte(dev, 0x07);
+ if (!(tempval & BIT0))
+ {
+ priv->rtllib->b1x1RecvCombine = true;
+ RT_TRACE(COMP_INIT, "RF_TYPE=1T2R but only 1SS\n");
+ }
+ }
+ priv->rtllib->b1SSSupport = priv->rtllib->b1x1RecvCombine;
+
+ priv->rf_chip = RF_6052;
+
+ priv->eeprom_CustomerID = *(u8 *)&hwinfo[EEPROM_CustomID];
+
+ RT_TRACE(COMP_EPROM, "EEPROM Customer ID: 0x%2x, rf_chip:%x\n", priv->eeprom_CustomerID, priv->rf_chip);
+
+ priv->rtllib->b_customer_lenovo_id = false;
+
+ switch(priv->eeprom_CustomerID)
+ {
+ case EEPROM_CID_DEFAULT:
+ if(priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0xE020){
+ priv->CustomerID = RT_CID_819x_Lenovo;
+ priv->rtllib->b_customer_lenovo_id = true;
+ }
+ else if(priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0xE025)
+ priv->CustomerID = RT_CID_819x_Lenovo;
+ else if(priv->eeprom_svid == 0x1A32 && priv->eeprom_smid == 0x4308)
+ priv->CustomerID = RT_CID_819x_QMI;
+ else if(priv->eeprom_svid == 0x1A32 && priv->eeprom_smid == 0x0311)
+ priv->CustomerID = RT_CID_819x_QMI;
+ else if(priv->eeprom_svid == 0x1462 && priv->eeprom_smid == 0x6897)
+ priv->CustomerID = RT_CID_819x_MSI;
+ else if(priv->eeprom_svid == 0x1462 && priv->eeprom_smid == 0x3821)
+ priv->CustomerID = RT_CID_819x_MSI;
+ else if(priv->eeprom_svid == 0x1462 && priv->eeprom_smid == 0x897A)
+ priv->CustomerID = RT_CID_819x_MSI;
+ else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 &&
+ priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8156)
+ priv->CustomerID = RT_CID_819x_Acer;
+ else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 &&
+ priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8157)
+ priv->CustomerID = RT_CID_819x_Acer;
+ else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 &&
+ priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0xE021)
+ priv->CustomerID = RT_CID_819x_Acer;
+ else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 &&
+ priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0xE022)
+ priv->CustomerID = RT_CID_819x_Acer;
+ else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 &&
+ priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8158)
+ priv->CustomerID = RT_CID_819x_Acer;
+ else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8172 &&
+ priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8159)
+ priv->CustomerID = RT_CID_819x_Acer;
+ else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 &&
+ priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8186)
+ priv->CustomerID = RT_CID_819x_Acer;
+ else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 &&
+ priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8187)
+ priv->CustomerID = RT_CID_819x_Acer;
+ else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 &&
+ priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8156)
+ priv->CustomerID = RT_CID_819x_Acer;
+ else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8174 &&
+ priv->eeprom_svid == 0x10EC && priv->eeprom_smid == 0x8157)
+ priv->CustomerID = RT_CID_819x_Acer;
+ else if( priv->eeprom_vid == 0x10EC && priv->eeprom_did == 0x8171 &&
+ priv->eeprom_svid == 0x103C && priv->eeprom_smid == 0x1467)
+ priv->CustomerID = RT_CID_819x_HP;
+ else
+ priv->CustomerID = RT_CID_DEFAULT;
+ break;
+
+ case EEPROM_CID_TOSHIBA:
+ priv->CustomerID = RT_CID_TOSHIBA;
+ break;
+
+ case EEPROM_CID_QMI:
+ priv->CustomerID = RT_CID_819x_QMI;
+ break;
+
+ case EEPROM_CID_WHQL:
+#ifdef TO_DO_LIST
+ priv->bInHctTest = true;
+ priv->bSupportTurboMode = false;
+ priv->bAutoTurboBy8186 = false;
+ priv->PowerSaveControl.bInactivePs = false;
+ priv->PowerSaveControl.bIPSModeBackup = false;
+ priv->PowerSaveControl.bLeisurePs = false;
+ priv->keepAliveLevel = 0;
+ priv->bUnloadDriverwhenS3S4 = false;
+#endif
+ break;
+
+ default:
+ priv->CustomerID = RT_CID_DEFAULT;
+ break;
+
+ }
+
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if (priv->rtllib->WapiSupport)
+ {
+ WapiInit(priv->rtllib);
+ }
+#endif
+ RT_TRACE(COMP_INIT, "<==== rtl8192se_read_eeprom_info\n");
+}
+
+void rtl8192se_get_eeprom_size(struct net_device* dev)
+{
+ struct r8192_priv* priv = rtllib_priv(dev);
+ u8 curCR = 0;
+ curCR = read_nic_byte(dev, EPROM_CMD);
+ PHY_RFShadowRefresh(dev);
+ if (curCR & BIT4){
+ RT_TRACE(COMP_EPROM, "Boot from EEPROM\n");
+ priv->epromtype = EEPROM_93C46;
+ }
+ else{
+ RT_TRACE(COMP_EPROM, "Boot from EFUSE\n");
+ priv->epromtype = EEPROM_BOOT_EFUSE;
+ }
+ if (curCR & BIT5){
+ RT_TRACE(COMP_EPROM,"Autoload OK\n");
+ priv->AutoloadFailFlag=false;
+ rtl8192se_read_eeprom_info(dev);
+ }
+ else{
+ RT_TRACE(COMP_INIT, "AutoLoad Fail reported from CR9346!!\n");
+ priv->AutoloadFailFlag=true;
+ rtl8192se_config_hw_for_load_fail(dev);
+
+ if (priv->epromtype == EEPROM_BOOT_EFUSE)
+ {
+#if (RTL92SE_FPGA_VERIFY == 0)
+ EFUSE_ShadowMapUpdate(dev);
+#endif
+ }
+ }
+#ifdef TO_DO_LIST
+ if(Adapter->bInHctTest)
+ {
+ pMgntInfo->PowerSaveControl.bInactivePs = false;
+ pMgntInfo->PowerSaveControl.bIPSModeBackup = false;
+ pMgntInfo->PowerSaveControl.bLeisurePs = false;
+ pMgntInfo->keepAliveLevel = 0;
+ }
+#endif
+#ifdef ENABLE_DOT11D
+ priv->ChannelPlan = COUNTRY_CODE_WORLD_WIDE_13;
+
+ if(priv->ChannelPlan == COUNTRY_CODE_GLOBAL_DOMAIN) {
+ GET_DOT11D_INFO(priv->rtllib)->bEnabled = 1;
+ RT_TRACE(COMP_INIT, "%s: Enable dot11d when RT_CHANNEL_DOMAIN_GLOBAL_DOAMIN!\n", __FUNCTION__);
+ }
+#endif
+
+ RT_TRACE(COMP_INIT, "RegChannelPlan(%d) EEPROMChannelPlan(%d)", \
+ priv->RegChannelPlan, priv->eeprom_ChannelPlan);
+ RT_TRACE(COMP_INIT, "ChannelPlan = %d\n" , priv->ChannelPlan);
+ HalCustomizedBehavior8192S(dev);
+}
+
+#if (RTL92SE_FPGA_VERIFY == 1)
+static void MacConfigBeforeFwDownload(struct net_device* dev)
+{
+ struct r8192_priv* priv = rtllib_priv(dev);
+ u8 i;
+ u8 tmpU1b;
+ u16 tmpU2b;
+ u32 addr;
+
+ RT_TRACE(COMP_INIT, "Set some register before enable NIC\r\n");
+
+ tmpU1b = read_nic_byte(dev, 0x562);
+ tmpU1b |= 0x08;
+ write_nic_byte(dev, 0x562, tmpU1b);
+ tmpU1b &= ~(BIT3);
+ write_nic_byte(dev, 0x562, tmpU1b);
+
+ tmpU1b = read_nic_byte(dev, SYS_FUNC_EN+1);
+ tmpU1b &= 0x73;
+ write_nic_byte(dev, SYS_FUNC_EN+1, tmpU1b);
+
+ tmpU1b = read_nic_byte(dev, SYS_CLKR);
+ tmpU1b &= 0xfa;
+ write_nic_byte(dev, SYS_CLKR, tmpU1b);
+
+ RT_TRACE(COMP_INIT, "Delay 1000ms before reset NIC. I dont know how long should we delay!!!!!\r\n");
+ ssleep(1);
+
+ write_nic_byte(dev, SYS_CLKR, SYS_CLKSEL_80M);
+
+ tmpU1b = read_nic_byte(dev, SPS1_CTRL);
+ write_nic_byte(dev, SPS1_CTRL, (tmpU1b|SPS1_LDEN));
+
+ tmpU1b = read_nic_byte(dev, AFE_MISC);
+ write_nic_byte(dev, AFE_MISC, (tmpU1b|AFE_BGEN));
+
+ tmpU1b = read_nic_byte(dev, LDOA15_CTRL);
+ write_nic_byte(dev, LDOA15_CTRL, (tmpU1b|LDA15_EN));
+
+ tmpU1b = read_nic_byte(dev, SPS1_CTRL);
+ write_nic_byte(dev, SPS1_CTRL, (tmpU1b|SPS1_SWEN));
+
+ tmpU1b = read_nic_byte(dev, AFE_MISC);
+ write_nic_byte(dev, AFE_MISC, (tmpU1b|AFE_MBEN));
+
+ tmpU2b = read_nic_word(dev, SYS_ISO_CTRL);
+ write_nic_word(dev, SYS_ISO_CTRL, (tmpU2b|ISO_PWC_DV2RP));
+
+ tmpU2b = read_nic_word(dev, SYS_ISO_CTRL);
+ write_nic_word(dev, SYS_ISO_CTRL, (tmpU2b &(~ISO_PWC_RV2RP)));
+
+ tmpU2b = read_nic_word(dev, AFE_XTAL_CTRL);
+ write_nic_word(dev, AFE_XTAL_CTRL, (tmpU2b &(~XTAL_GATE_AFE)));
+
+ tmpU1b = read_nic_byte(dev, AFE_PLL_CTRL);
+ write_nic_byte(dev, AFE_PLL_CTRL, (tmpU1b|APLL_EN));
+
+ write_nic_byte(dev, SYS_ISO_CTRL, 0xEE);
+
+ tmpU2b = read_nic_word(dev, SYS_CLKR);
+ write_nic_word(dev, SYS_CLKR, (tmpU2b|SYS_MAC_CLK_EN));
+
+ tmpU2b = read_nic_word(dev, SYS_FUNC_EN);
+ write_nic_word(dev, SYS_FUNC_EN, (tmpU2b|FEN_DCORE|FEN_MREGEN));
+
+ tmpU2b = read_nic_word(dev, SYS_CLKR);
+ write_nic_word(dev, SYS_CLKR, ((tmpU2b|SYS_FWHW_SEL)&(~SYS_SWHW_SEL)));
+
+ write_nic_byte(dev, RF_CTRL, 0);
+ write_nic_byte(dev, RF_CTRL, 7);
+
+ write_nic_word(dev, CMDR, 0x37FC);
+
+#if 1
+ write_nic_byte(dev, 0x6, 0x30);
+ write_nic_byte(dev, 0x49, 0xf0);
+
+ write_nic_byte(dev, 0x4b, 0x81);
+
+ write_nic_byte(dev, 0xb5, 0x21);
+
+ write_nic_byte(dev, 0xdc, 0xff);
+ write_nic_byte(dev, 0xdd, 0xff);
+ write_nic_byte(dev, 0xde, 0xff);
+ write_nic_byte(dev, 0xdf, 0xff);
+
+ write_nic_byte(dev, 0x11a, 0x00);
+ write_nic_byte(dev, 0x11b, 0x00);
+
+ for (i = 0; i < 32; i++)
+ write_nic_byte(dev, INIMCS_SEL+i, 0x1b);
+
+ write_nic_byte(dev, 0x236, 0xff);
+
+ write_nic_byte(dev, 0x503, 0x22);
+
+ if(priv->bIntelBridgeExist) {
+ write_nic_byte(dev, 0x560, 0x40);
+ } else {
+ write_nic_byte(dev, 0x560, 0x00);
+ }
+
+ write_nic_byte(dev, DBG_PORT, 0x91);
+#endif
+
+#ifdef CONFIG_RX_CMD
+ write_nic_dword(dev, RCDA, priv->rx_ring_dma[RX_CMD_QUEUE]);
+#endif
+ write_nic_dword(dev, RDQDA, priv->rx_ring_dma[RX_MPDU_QUEUE]);
+ rtl8192_tx_enable(dev);
+
+ RT_TRACE(COMP_INIT, "<---MacConfig8192SE()\n");
+
+} /* MacConfigBeforeFwDownload */
+#else
+void gen_RefreshLedState(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PLED_8190 pLed0 = &(priv->SwLed0);
+
+ if(priv->bfirst_init)
+ {
+ RT_TRACE(COMP_INIT, "gen_RefreshLedState first init\n");
+ return;
+ }
+
+ if(priv->rtllib->RfOffReason == RF_CHANGE_BY_IPS )
+ {
+ SwLedOn(dev, pLed0);
+ }
+ else
+ {
+ SwLedOff(dev, pLed0);
+ }
+
+}
+void MacConfigBeforeFwDownload(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 i;
+ u8 tmpU1b;
+ u16 tmpU2b;
+ u8 PollingCnt = 20;
+
+ RT_TRACE(COMP_INIT, "--->MacConfigBeforeFwDownload()\n");
+
+ if (priv->initialized_at_probe) {
+ return;
+ }
+
+ if(priv->bfirst_init)
+ {
+ tmpU1b = read_nic_byte(dev, SYS_FUNC_EN+1);
+ tmpU1b &= 0xFE;
+ write_nic_byte(dev, SYS_FUNC_EN+1, tmpU1b);
+ udelay(1);
+ write_nic_byte(dev, SYS_FUNC_EN+1, tmpU1b|BIT0);
+ }
+
+ tmpU1b = read_nic_byte(dev, (SYS_CLKR + 1));
+ if(tmpU1b & BIT7)
+ {
+ tmpU1b &= ~(BIT6 | BIT7);
+ if(!HalSetSysClk8192SE(dev, tmpU1b))
+ return;
+ }
+
+#ifdef MERGE_TO_DO
+ if( (pHalData->bt_coexist.BluetoothCoexist) &&
+ (pHalData->bt_coexist.BT_CoexistType == BT_CSR) )
+ {
+ write_nic_byte(dev, AFE_PLL_CTRL, 0x0);
+ udelay(50);
+ write_nic_byte(dev, LDOA15_CTRL, 0x34);
+ udelay(50);
+ }
+ else
+#endif
+ {
+ write_nic_byte(dev, AFE_PLL_CTRL, 0x0);
+ udelay(50);
+ write_nic_byte(dev, LDOA15_CTRL, 0x34);
+ udelay(50);
+ }
+
+
+ write_nic_byte(dev, RPWM, 0x0);
+
+ tmpU1b = read_nic_byte(dev, SYS_FUNC_EN+1);
+ tmpU1b &= 0x73;
+ write_nic_byte(dev, SYS_FUNC_EN+1, tmpU1b);
+ mdelay(1);
+
+ write_nic_byte(dev, CMDR, 0);
+ write_nic_byte(dev, TCR, 0);
+
+#if (DEMO_BOARD_SUPPORT == 0)
+ tmpU1b = read_nic_byte(dev, SPS1_CTRL);
+ tmpU1b &= 0xfc;
+ write_nic_byte(dev, SPS1_CTRL, tmpU1b);
+#endif
+
+ tmpU1b = read_nic_byte(dev, 0x562);
+ tmpU1b |= 0x08;
+ write_nic_byte(dev, 0x562, tmpU1b);
+ tmpU1b &= ~(BIT3);
+ write_nic_byte(dev, 0x562, tmpU1b);
+
+
+
+
+
+ RT_TRACE(COMP_INIT, "Enable AFE clock source\r\n");
+ tmpU1b = read_nic_byte(dev, AFE_XTAL_CTRL);
+ write_nic_byte(dev, AFE_XTAL_CTRL, (tmpU1b|0x01));
+ udelay(2000);
+ tmpU1b = read_nic_byte(dev, AFE_XTAL_CTRL+1);
+ write_nic_byte(dev, AFE_XTAL_CTRL+1, (tmpU1b&0xfb));
+
+
+ RT_TRACE(COMP_INIT, "Enable AFE Macro Block's Bandgap\r\n");
+ tmpU1b = read_nic_byte(dev, AFE_MISC);
+ write_nic_byte(dev, AFE_MISC, (tmpU1b|BIT0));
+ mdelay(1);
+
+ RT_TRACE(COMP_INIT, "Enable AFE Mbias\r\n");
+ tmpU1b = read_nic_byte(dev, AFE_MISC);
+ write_nic_byte(dev, AFE_MISC, (tmpU1b|0x02));
+ mdelay(1);
+
+ tmpU1b = read_nic_byte(dev, LDOA15_CTRL);
+ write_nic_byte(dev, LDOA15_CTRL, (tmpU1b|BIT0));
+
+
+
+ tmpU2b = read_nic_word(dev, SYS_ISO_CTRL);
+ write_nic_word(dev, SYS_ISO_CTRL, (tmpU2b|BIT11));
+
+
+ tmpU2b = read_nic_word(dev, SYS_FUNC_EN);
+ write_nic_word(dev, SYS_FUNC_EN, (tmpU2b |BIT13));
+
+
+ write_nic_byte(dev, SYS_ISO_CTRL+1, 0x68);
+
+ udelay(200);
+ tmpU1b = read_nic_byte(dev, AFE_PLL_CTRL);
+ write_nic_byte(dev, AFE_PLL_CTRL, (tmpU1b|BIT0|BIT4));
+
+#if 1
+ udelay(100);
+ write_nic_byte(dev, AFE_PLL_CTRL, (tmpU1b|BIT0|BIT4|BIT6));
+ udelay(10);
+ write_nic_byte(dev, AFE_PLL_CTRL, (tmpU1b|BIT0|BIT4));
+ udelay(10);
+#endif
+ tmpU1b = read_nic_byte(dev, AFE_PLL_CTRL+1);
+ write_nic_byte(dev, AFE_PLL_CTRL+1, (tmpU1b|BIT0));
+ mdelay(1);
+
+ write_nic_byte(dev, SYS_ISO_CTRL, 0xA6);
+
+ tmpU2b = read_nic_word(dev, SYS_CLKR);
+ write_nic_word(dev, SYS_CLKR, (tmpU2b|BIT12|BIT11));
+
+ tmpU2b = read_nic_word(dev, SYS_FUNC_EN);
+ write_nic_word(dev, SYS_FUNC_EN, (tmpU2b|BIT11));
+
+ tmpU1b = read_nic_byte(dev, SYS_FUNC_EN+1);
+ write_nic_byte(dev, SYS_FUNC_EN+1, tmpU1b&~(BIT7));
+
+ write_nic_word(dev, SYS_FUNC_EN, (tmpU2b|BIT11|BIT15));
+
+ tmpU2b = read_nic_word(dev, SYS_CLKR);
+ write_nic_word(dev, SYS_CLKR, (tmpU2b&(~BIT2)));
+
+ tmpU1b = read_nic_byte(dev, (SYS_CLKR + 1));
+ tmpU1b = ((tmpU1b | BIT7) & (~BIT6));
+ if(!HalSetSysClk8192SE(dev, tmpU1b))
+ return;
+
+#if 0
+ tmpU2b = read_nic_word(dev, SYS_CLKR);
+ write_nic_word(dev, SYS_CLKR, ((tmpU2b|BIT15)&(~BIT14)));
+#endif
+
+ write_nic_word(dev, CMDR, 0x07FC);
+
+#if 1
+ write_nic_byte(dev, 0x6, 0x30);
+ write_nic_byte(dev, 0x49, 0xf0);
+
+ write_nic_byte(dev, 0x4b, 0x81);
+
+ write_nic_byte(dev, 0xb5, 0x21);
+
+ write_nic_byte(dev, 0xdc, 0xff);
+ write_nic_byte(dev, 0xdd, 0xff);
+ write_nic_byte(dev, 0xde, 0xff);
+ write_nic_byte(dev, 0xdf, 0xff);
+
+ write_nic_byte(dev, 0x11a, 0x00);
+ write_nic_byte(dev, 0x11b, 0x00);
+
+ for (i = 0; i < 32; i++)
+ write_nic_byte(dev, INIMCS_SEL+i, 0x1b);
+
+ write_nic_byte(dev, 0x236, 0xff);
+
+ write_nic_byte(dev, 0x503, 0x22);
+ if (priv->pci_bridge_vendor & (PCI_BRIDGE_VENDOR_INTEL | PCI_BRIDGE_VENDOR_SIS)) {
+ write_nic_byte(dev, 0x560, 0x40);
+ } else {
+ write_nic_byte(dev, 0x560, 0x00);
+ }
+
+ write_nic_byte(dev, DBG_PORT, 0x91);
+#endif
+
+ write_nic_dword(dev, RDQDA, priv->rx_ring_dma[RX_MPDU_QUEUE]);
+#ifdef CONFIG_RX_CMD
+ write_nic_dword(dev, RCDA, priv->rx_ring_dma[RX_CMD_QUEUE]);
+#endif
+ rtl8192_tx_enable(dev);
+
+ write_nic_word(dev, CMDR, 0x37FC);
+ do {
+ tmpU1b = read_nic_byte(dev, TCR);
+ if((tmpU1b & TXDMA_INIT_VALUE) == TXDMA_INIT_VALUE)
+ break;
+
+ udelay(5);
+ } while(PollingCnt--);
+
+ if(PollingCnt <= 0 )
+ {
+ RT_TRACE(COMP_ERR, "MacConfigBeforeFwDownloadASIC(): Polling TXDMA_INIT_VALUE timeout!! Current TCR(%#x)\n", tmpU1b);
+ tmpU1b = read_nic_byte(dev, CMDR);
+ write_nic_byte(dev, CMDR, tmpU1b&(~TXDMA_EN));
+ udelay(2);
+ write_nic_byte(dev, CMDR, tmpU1b|TXDMA_EN);
+ }
+
+ gen_RefreshLedState(dev);
+
+ RT_TRACE(COMP_INIT, "<---MacConfigBeforeFwDownload()\n");
+
+} /* MacConfigBeforeFwDownload */
+#endif
+
+static void MacConfigAfterFwDownload(struct net_device* dev)
+{
+ u8 i;
+ u16 tmpU2b;
+ struct r8192_priv* priv = rtllib_priv(dev);
+
+
+ write_nic_byte(dev, CMDR,
+ (u8)(BBRSTn|BB_GLB_RSTn|SCHEDULE_EN|MACRXEN|MACTXEN|DDMA_EN|FW2HW_EN|
+ RXDMA_EN|TXDMA_EN|HCI_RXDMA_EN|HCI_TXDMA_EN));
+ write_nic_dword(dev, TCR,
+ read_nic_dword(dev, TCR)|TXDMAPRE2FULL);
+ write_nic_dword(dev, RCR, priv->ReceiveConfig);
+
+#if 0
+ for (i=0;i<6;i++)
+ write_nic_byte(dev, MACIDR0+i, dev->dev_addr[i]);
+#endif
+ write_nic_word(dev, SIFS_CCK, 0x0a0a);
+ write_nic_word(dev, SIFS_OFDM, 0x1010);
+ write_nic_byte(dev, ACK_TIMEOUT, 0x40);
+
+ write_nic_word(dev, BCN_INTERVAL, 100);
+ write_nic_word(dev, ATIMWND, 2);
+#ifdef _ENABLE_SW_BEACON
+ write_nic_word(dev, BCN_DRV_EARLY_INT, BIT15);
+#endif
+
+#if 0
+ write_nic_dword(dev, RQPN1,
+ NUM_OF_PAGE_IN_FW_QUEUE_BK<<0 | NUM_OF_PAGE_IN_FW_QUEUE_BE<<8 |\
+ NUM_OF_PAGE_IN_FW_QUEUE_VI<<16 | NUM_OF_PAGE_IN_FW_QUEUE_VO<<24);
+ write_nic_dword(dev, RQPN2,
+ NUM_OF_PAGE_IN_FW_QUEUE_HCCA << 0 | NUM_OF_PAGE_IN_FW_QUEUE_CMD << 8|\
+ NUM_OF_PAGE_IN_FW_QUEUE_MGNT << 16 |NUM_OF_PAGE_IN_FW_QUEUE_HIGH << 24);
+ write_nic_dword(dev, RQPN3,
+ NUM_OF_PAGE_IN_FW_QUEUE_BCN<<0 | NUM_OF_PAGE_IN_FW_QUEUE_PUB<<8);
+ write_nic_byte(dev, LD_RQPN, BIT7);
+#endif
+
+
+
+
+ write_nic_byte(dev, RXDMA,
+ read_nic_byte(dev, RXDMA)|BIT6);
+
+ if (priv->card_8192_version== VERSION_8192S_ACUT)
+ write_nic_byte(dev, RRSR, 0xf0);
+ else if (priv->card_8192_version == VERSION_8192S_BCUT)
+ write_nic_byte(dev, RRSR, 0xff);
+ write_nic_byte(dev, RRSR+1, 0x01);
+ write_nic_byte(dev, RRSR+2, 0x00);
+
+ for (i = 0; i < 8; i++)
+ {
+
+ if (priv->card_8192_version == VERSION_8192S_ACUT)
+ write_nic_dword(dev, ARFR0+i*4, 0x1f0ff0f0);
+#if 0
+ else if (priv->card_8192_version == VERSION_8192S_BCUT)
+ write_nic_dword(dev, ARFR0+i*4, 0x1f0ff0f0);
+#endif
+ }
+
+ write_nic_byte(dev, AGGLEN_LMT_H, 0x0f);
+ write_nic_word(dev, AGGLEN_LMT_L, 0x7442);
+ write_nic_word(dev, AGGLEN_LMT_L+2, 0xddd7);
+ write_nic_word(dev, AGGLEN_LMT_L+4, 0xd772);
+ write_nic_word(dev, AGGLEN_LMT_L+6, 0xfffd);
+
+ write_nic_dword(dev, DARFRC, 0x04010000);
+ write_nic_dword(dev, DARFRC+4, 0x09070605);
+ write_nic_dword(dev, RARFRC, 0x04010000);
+ write_nic_dword(dev, RARFRC+4, 0x09070605);
+
+
+
+ write_nic_word(dev, SG_RATE, 0xFFFF);
+
+
+ write_nic_word(dev, NAV_PROT_LEN, 0x0080);
+ write_nic_byte(dev, CFEND_TH, 0xFF);
+ write_nic_byte(dev, AMPDU_MIN_SPACE, 0x07);
+ write_nic_byte(dev, TXOP_STALL_CTRL, 0x00);
+
+
+ /*write_nic_byte(dev, PCIF, ((MXDMA2_NoLimit<<MXDMA2_RX_SHIFT) | \
+ (MXDMA2_NoLimit<<MXDMA2_TX_SHIFT) | \
+ (1<<MULRW_SHIFT)));*/
+
+ write_nic_byte(dev, RXDRVINFO_SZ, 4);
+
+ tmpU2b= read_nic_byte(dev, SYS_FUNC_EN);
+ write_nic_byte(dev, SYS_FUNC_EN, tmpU2b | BIT13);
+ tmpU2b= read_nic_byte(dev, SYS_ISO_CTRL);
+ write_nic_byte(dev, SYS_ISO_CTRL, tmpU2b & (~BIT8));
+
+ if (priv->epromtype == EEPROM_BOOT_EFUSE)
+ {
+ u8 tempval;
+
+ tempval = read_nic_byte(dev, SYS_ISO_CTRL+1);
+ tempval &= 0xFE;
+ write_nic_byte(dev, SYS_ISO_CTRL+1, tempval);
+
+
+
+ write_nic_byte(dev, EFUSE_CTRL+3, 0x72);
+ RT_TRACE(COMP_INIT, "EFUSE CONFIG OK\n");
+ }
+ RT_TRACE(COMP_INIT, "MacConfigAfterFwDownload OK\n");
+
+} /* MacConfigAfterFwDownload */
+
+static void rtl8192se_HalDetectPwrDownMode(struct net_device*dev)
+{
+ u8 tmpvalue;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ EFUSE_ShadowRead(dev, 1, 0x78, (u32 *)&tmpvalue);
+
+ if (tmpvalue & BIT0) {
+ priv->pwrdown = true;
+ } else {
+ priv->pwrdown = false;
+ }
+}
+
+void HwConfigureRTL8192SE(struct net_device *dev)
+{
+
+ struct r8192_priv* priv = rtllib_priv(dev);
+
+ u8 regBwOpMode = 0;
+ u32 regRATR = 0, regRRSR = 0;
+ u8 regTmp = 0;
+
+
+ switch(priv->rtllib->mode)
+ {
+ case WIRELESS_MODE_B:
+ regBwOpMode = BW_OPMODE_20MHZ;
+ regRATR = RATE_ALL_CCK;
+ regRRSR = RATE_ALL_CCK;
+ break;
+ case WIRELESS_MODE_A:
+ regBwOpMode = BW_OPMODE_5G |BW_OPMODE_20MHZ;
+ regRATR = RATE_ALL_OFDM_AG;
+ regRRSR = RATE_ALL_OFDM_AG;
+ break;
+ case WIRELESS_MODE_G:
+ regBwOpMode = BW_OPMODE_20MHZ;
+ regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
+ regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
+ break;
+ case WIRELESS_MODE_AUTO:
+ case WIRELESS_MODE_N_24G:
+ regBwOpMode = BW_OPMODE_20MHZ;
+ regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS;
+ regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
+ break;
+ case WIRELESS_MODE_N_5G:
+ regBwOpMode = BW_OPMODE_5G;
+ regRATR = RATE_ALL_OFDM_AG | RATE_ALL_OFDM_1SS | RATE_ALL_OFDM_2SS;
+ regRRSR = RATE_ALL_OFDM_AG;
+ break;
+ default:
+ regBwOpMode = BW_OPMODE_20MHZ;
+ regRATR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
+ regRRSR = RATE_ALL_CCK | RATE_ALL_OFDM_AG;
+ break;
+ }
+
+ regTmp = read_nic_byte(dev, INIRTSMCS_SEL);
+#if (RTL8192SU_DISABLE_CCK_RATE == 1)
+ regRRSR = ((regRRSR & 0x000ffff0)<<8) | regTmp;
+#else
+ regRRSR = ((regRRSR & 0x000fffff)<<8) | regTmp;
+#endif
+ write_nic_dword(dev, INIRTSMCS_SEL, regRRSR);
+
+ write_nic_byte(dev, BW_OPMODE, regBwOpMode);
+ priv->rtllib->SetHwRegHandler(dev, HW_VAR_RETRY_LIMIT, (u8*)(&priv->ShortRetryLimit));
+
+ write_nic_byte(dev, MLT, 0x8f);
+
+
+
+#if 1
+ switch(priv->rf_type)
+ {
+ case RF_1T2R:
+ case RF_1T1R:
+ RT_TRACE(COMP_INIT, "Initializeadapter: RF_Type%s\n", priv->rf_type==RF_1T1R? "(1T1R)":"(1T2R)");
+ priv->rtllib->MinSpaceCfg = (MAX_MSS_DENSITY_1T<<3);
+ break;
+ case RF_2T2R:
+ case RF_2T2R_GREEN:
+ RT_TRACE(COMP_INIT, "Initializeadapter:RF_Type(2T2R)\n");
+ priv->rtllib->MinSpaceCfg = (MAX_MSS_DENSITY_2T<<3);
+ break;
+ }
+ write_nic_byte(dev, AMPDU_MIN_SPACE, priv->rtllib->MinSpaceCfg);
+#else
+ priv->rtllib->MinSpaceCfg = 0x90;
+ SetHwReg8192SE(dev, HW_VAR_AMPDU_MIN_SPACE, (u8*)(&priv->rtllib->MinSpaceCfg));
+#endif
+}
+
+void
+RF_RECOVERY(struct net_device*dev ,u8 Start, u8 End)
+{
+ u8 offset;
+ u8 counter;
+
+
+ for(offset = Start; offset<End; offset++)
+ {
+ PHY_RFShadowCompareFlagSet(dev, (RF90_RADIO_PATH_E)0, offset,true);
+
+ if(PHY_RFShadowCompare(dev, (RF90_RADIO_PATH_E)0, offset))
+ {
+ PHY_RFShadowRecorverFlagSet(dev, (RF90_RADIO_PATH_E)0, offset, true);
+
+ for (counter = 0; counter < 10; counter++)
+ {
+ RT_TRACE(COMP_INIT, "PHY_RFShadowCompare OKCNT=%d offset=%0x\n", counter, offset);
+ PHY_RFShadowRecorver( dev, (RF90_RADIO_PATH_E)0, offset);
+ if (offset == 0x18)
+ {
+ if (!PHY_RFShadowCompare(dev, (RF90_RADIO_PATH_E)0, offset))
+ {
+ RT_TRACE(COMP_INIT, "PHY_RFShadowCompare OKCNT=%d\n", counter);
+ PHY_RFShadowRecorverFlagSet(dev, (RF90_RADIO_PATH_E)0, offset, false);
+ break;
+ }
+ }
+ else
+ {
+ PHY_RFShadowRecorverFlagSet(dev, (RF90_RADIO_PATH_E)0, offset, false);
+ break;
+ }
+ }
+}
+ }
+
+}
+
+bool rtl8192se_adapter_start(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool rtStatus = true;
+ u8 tmpU1b;
+ u8 eRFPath;
+ u8 fw_download_times = 1;
+ u8 i=0;
+ RT_TRACE(COMP_INIT, "rtl8192se_adapter_start()\n");
+ priv->being_init_adapter = true;
+#ifdef CONFIG_ASPM_OR_D3
+ RT_DISABLE_ASPM(dev);
+#endif
+start:
+ rtl8192_pci_resetdescring(dev);
+ MacConfigBeforeFwDownload(dev);
+ priv->initialized_at_probe = false;
+
+ priv->card_8192_version = priv->rtllib->VersionID
+ = (VERSION_8192S)((read_nic_dword(dev, PMC_FSM)>>16)&0xF);
+
+ RT_TRACE(COMP_INIT, "NIC version : %s\n", ((read_nic_dword(dev, PMC_FSM)>>15)&0x1)?"C-cut":"B-cut");
+
+ rtStatus = FirmwareDownload92S((struct net_device*)dev);
+ if(rtStatus != true)
+ {
+ if(fw_download_times <= 10){
+ RT_TRACE(COMP_INIT, "rtl8192se_adapter_start(): Download Firmware failed %d times, Download again!!\n",fw_download_times);
+ fw_download_times = fw_download_times + 1;
+ goto start;
+ }else{
+ RT_TRACE(COMP_INIT, "rtl8192se_adapter_start(): Download Firmware failed 10, end!!\n");
+ goto end;
+ }
+ }
+
+ MacConfigAfterFwDownload(dev);
+
+ priv->FwCmdIOMap = read_nic_word(dev, LBUS_MON_ADDR);
+ priv->FwCmdIOParam = read_nic_dword(dev, LBUS_ADDR_MASK);
+
+
+#if (RTL8192S_DISABLE_FW_DM == 1)
+ write_nic_dword(dev, WFM5, FW_DM_DISABLE);
+ ChkFwCmdIoDone(dev);
+ write_nic_dword(dev, WFM5, FW_TXANT_SWITCH_DISABLE);
+ ChkFwCmdIoDone(dev);
+#endif
+
+#if (HAL_MAC_ENABLE == 1)
+ RT_TRACE(COMP_INIT, "MAC Config Start!\n");
+ if (PHY_MACConfig8192S(dev) != true)
+ {
+ RT_TRACE(COMP_ERR, "MAC Config failed\n");
+ return rtStatus;
+ }
+ RT_TRACE(COMP_INIT, "MAC Config Finished!\n");
+#endif
+
+ write_nic_dword(dev, CMDR, 0x37FC);
+
+#if (HAL_BB_ENABLE == 1)
+ RT_TRACE(COMP_INIT, "BB Config Start!\n");
+ if (PHY_BBConfig8192S(dev) != true)
+ {
+ RT_TRACE(COMP_INIT, "BB Config failed\n");
+ return rtStatus;
+ }
+ RT_TRACE(COMP_INIT, "BB Config Finished!\n");
+#endif
+
+
+ priv->Rf_Mode = RF_OP_By_SW_3wire;
+#if (HAL_RF_ENABLE == 1)
+ RT_TRACE(COMP_INIT, "RF Config started!\n");
+
+#if (RTL92SE_FPGA_VERIFY == 0)
+ write_nic_byte(dev, AFE_XTAL_CTRL+1, 0xDB);
+ if(priv->card_8192_version== VERSION_8192S_ACUT)
+ write_nic_byte(dev, SPS1_CTRL+3, 0x07);
+ else
+ write_nic_byte(dev, RF_CTRL, 0x07);
+#endif
+ if(PHY_RFConfig8192S(dev) != true)
+ {
+ RT_TRACE(COMP_ERR, "RF Config failed\n");
+ return rtStatus;
+ }
+ RT_TRACE(COMP_INIT, "RF Config Finished!\n");
+#endif
+
+
+ priv->RfRegChnlVal[0] = rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)0, RF_CHNLBW, bRFRegOffsetMask);
+ priv->RfRegChnlVal[1] = rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)1, RF_CHNLBW, bRFRegOffsetMask);
+
+ rtl8192_setBBreg(dev, rFPGA0_RFMOD, bCCKEn, 0x1);
+ rtl8192_setBBreg(dev, rFPGA0_RFMOD, bOFDMEn, 0x1);
+
+ HwConfigureRTL8192SE(dev);
+
+ if(priv->ResetProgress == RESET_TYPE_NORESET)
+ rtl8192_SetWirelessMode(dev, priv->rtllib->mode);
+ CamResetAllEntry(dev);
+ {
+ u8 SECR_value = 0x0;
+ SECR_value |= SCR_TxEncEnable;
+ SECR_value |= SCR_RxDecEnable;
+ SECR_value |= SCR_NoSKMC;
+ write_nic_byte(dev, SECR, SECR_value);
+ }
+
+ {
+ int i;
+ for (i=0; i<4; i++)
+ write_nic_dword(dev, WDCAPARA_ADD[i], 0x5e4322);
+ }
+ {
+ PHY_GetHWRegOriginalValue(dev);
+#ifndef CONFIG_MP
+ rtl8192_phy_setTxPower(dev, priv->chan);
+#endif
+ }
+
+ rtl8192se_HalDetectPwrDownMode(dev);
+#if 1
+ if(priv->RegRfOff == true)
+ {
+ RT_TRACE((COMP_INIT|COMP_RF), "InitializeAdapter8190(): Turn off RF for RegRfOff ----------\n");
+ MgntActSet_RF_State(dev, eRfOff, RF_CHANGE_BY_SW);
+
+ for(eRFPath = 0; eRFPath <priv->NumTotalRFPath; eRFPath++)
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, 0x4, 0xC00, 0x0);
+
+ }
+ else if(priv->rtllib->RfOffReason > RF_CHANGE_BY_PS)
+ {
+ RT_TRACE((COMP_INIT|COMP_RF), "InitializeAdapter8190(): Turn off RF for RfOffReason(%d) ----------\n", priv->rtllib->RfOffReason);
+ MgntActSet_RF_State(dev, eRfOff, priv->rtllib->RfOffReason);
+ }
+ else
+ {
+ if(priv->bHwRadioOff == false){
+ priv->rtllib->eRFPowerState = eRfOn;
+ priv->rtllib->RfOffReason = 0;
+ if(priv->rtllib->LedControlHandler)
+ priv->rtllib->LedControlHandler(dev, LED_CTL_POWER_ON);
+ }
+ }
+#endif
+
+
+
+ {
+ int i;
+ for (i=0;i<6;i++)
+ write_nic_byte(dev, MACIDR0+i, dev->dev_addr[i]);
+ }
+
+ tmpU1b = read_nic_byte(dev, MAC_PINMUX_CFG);
+ write_nic_byte(dev, MAC_PINMUX_CFG, tmpU1b&(~BIT3));
+
+ if(priv->CustomerID == RT_CID_CCX)
+ {
+ RT_TRACE(COMP_INIT ,"InitializeAdapter8192SE(): Set FW Cmd FW_TX_FEEDBACK_CCX_ENABLE\n");
+ write_nic_dword(dev, WFM5, FW_TX_FEEDBACK_CCX_ENABLE);
+ ChkFwCmdIoDone(dev);
+
+ write_nic_dword(dev, WFM5, FW_HIGH_PWR_DISABLE);
+ ChkFwCmdIoDone(dev);
+ write_nic_dword(dev, WFM5, FW_DIG_HALT);
+ ChkFwCmdIoDone(dev);
+
+ write_nic_byte(dev, 0xC50, 0x1C);
+ write_nic_byte(dev, 0xC58, 0x1C);
+ }
+
+ if(priv->pFirmware->FirmwareVersion >= 0x49){
+ u8 tmp_byte = 0;
+
+ tmp_byte = read_nic_byte(dev, FW_RSVD_PG_CRTL) & (~BIT4);
+ tmp_byte = tmp_byte | BIT5;
+ write_nic_byte(dev, FW_RSVD_PG_CRTL, tmp_byte);
+
+ write_nic_dword(dev, TXDESC_MSK, 0xFFFFCFFF);
+ }
+
+ if(priv->pFirmware->FirmwareVersion >= 0x35)
+ {
+ priv->rtllib->SetFwCmdHandler(dev, FW_CMD_RA_INIT);
+ }
+ else if(priv->pFirmware->FirmwareVersion >= 0x34)
+ {
+ write_nic_dword(dev, WFM5, FW_RA_INIT);
+ ChkFwCmdIoDone(dev);
+ }
+ else
+ {
+ write_nic_dword(dev, WFM5, FW_RA_RESET);
+ ChkFwCmdIoDone(dev);
+ write_nic_dword(dev, WFM5, FW_RA_ACTIVE);
+ ChkFwCmdIoDone(dev);
+ write_nic_dword(dev, WFM5, FW_RA_REFRESH);
+ ChkFwCmdIoDone(dev);
+ }
+
+
+
+ PHY_SwitchEphyParameter(dev);
+ RF_RECOVERY(dev, 0x25, 0x29);
+
+ priv->SilentResetRxSlotIndex = 0;
+ for( i=0; i < MAX_SILENT_RESET_RX_SLOT_NUM; i++ )
+ {
+ priv->SilentResetRxStuckEvent[i] = 0;
+ }
+
+ if(priv->BluetoothCoexist)
+ {
+ printk("Write reg 0x%x = 1 for Bluetooth Co-existance\n", SYSF_CFG);
+ write_nic_byte(dev, SYSF_CFG, 0x1);
+ }
+
+ priv->bIgnoreSilentReset = true;
+
+#ifdef CONFIG_FW_PARSEBEACON
+ if (!(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){
+ write_nic_dword(dev, RXFILTERMAP, 0x0100);
+ }
+#endif
+ rtl8192_irq_enable(dev);
+end:
+ priv->being_init_adapter = false;
+ return rtStatus;
+
+
+}
+
+void rtl8192se_net_update(struct net_device *dev)
+{
+
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_network *net = &priv->rtllib->current_network;
+ u16 rate_config = 0;
+ u32 regTmp = 0;
+ u8 rateIndex = 0;
+ u8 RetryLimit = 0x30;
+ u16 cap = net->capability;
+
+ priv->short_preamble = cap & WLAN_CAPABILITY_SHORT_PREAMBLE;
+
+ {
+ rtl8192_config_rate(dev, &rate_config);
+ if (priv->card_8192_version== VERSION_8192S_ACUT)
+ priv->basic_rate = rate_config = rate_config & 0x150;
+ else if (priv->card_8192_version == VERSION_8192S_BCUT)
+ priv->basic_rate= rate_config = rate_config & 0x15f;
+
+#if 1
+ if(priv->rtllib->pHTInfo->IOTPeer == HT_IOT_PEER_CISCO && ((rate_config &0x150)==0))
+ {
+ rate_config |=0x010;
+ }
+ if(priv->rtllib->pHTInfo->IOTPeer & HT_IOT_ACT_WA_IOT_Broadcom)
+ {
+ rate_config &= 0x1f0;
+ printk("HW_VAR_BASIC_RATE, HT_IOT_ACT_WA_IOT_Broadcom, BrateCfg = 0x%x\n", rate_config);
+ }
+
+ write_nic_byte(dev, RRSR, rate_config&0xff);
+ write_nic_byte(dev, RRSR+1, (rate_config>>8)&0xff);
+
+ while(rate_config > 0x1)
+ {
+ rate_config = (rate_config>> 1);
+ rateIndex++;
+ }
+ write_nic_byte(dev, INIRTSMCS_SEL, rateIndex);
+
+ regTmp = (priv->nCur40MhzPrimeSC) << 5;
+ if (priv->short_preamble)
+ regTmp |= 0x80;
+ write_nic_byte(dev, RRSR+2, regTmp);
+#endif
+ }
+
+ write_nic_dword(dev,BSSIDR,((u32*)net->bssid)[0]);
+ write_nic_word(dev,BSSIDR+4,((u16*)net->bssid)[2]);
+
+ if (priv->rtllib->iw_mode == IW_MODE_ADHOC){
+ RetryLimit = HAL_RETRY_LIMIT_AP_ADHOC;
+ } else {
+ RetryLimit = (priv->CustomerID == RT_CID_CCX) ? 7 : HAL_RETRY_LIMIT_INFRA;
+ }
+ priv->rtllib->SetHwRegHandler(dev, HW_VAR_RETRY_LIMIT, (u8*)(&RetryLimit));
+
+ if (priv->rtllib->iw_mode == IW_MODE_ADHOC){
+ priv->rtllib->SetHwRegHandler( dev, HW_VAR_BEACON_INTERVAL, (u8*)(&net->beacon_interval));
+ }
+
+ rtl8192_update_cap(dev, cap);
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+void rtl8192se_mesh_net_update(struct net_device *dev)
+{
+
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_network *net = &priv->rtllib->current_mesh_network;
+ u16 rate_config = 0;
+ u32 regTmp = 0;
+ u8 rateIndex = 0;
+ u8 retrylimit = 0x7;
+ u16 cap = net->capability;
+ /* At the peer mesh mode, the peer MP shall recognize the short preamble */
+ priv->short_preamble = 1;
+
+ if (priv->card_8192_version== VERSION_8192S_ACUT)
+ priv->basic_rate = rate_config = 0x150;
+ else if (priv->card_8192_version == VERSION_8192S_BCUT)
+ priv->basic_rate= rate_config = 0x15f;
+
+ write_nic_byte(dev, RRSR, rate_config&0xff);
+ write_nic_byte(dev, RRSR+1, (rate_config>>8)&0xff);
+
+ while(rate_config > 0x1)
+ {
+ rate_config = (rate_config>> 1);
+ rateIndex++;
+ }
+ write_nic_byte(dev, INIRTSMCS_SEL, rateIndex);
+
+ regTmp = (priv->nCur40MhzPrimeSC) << 5;
+ if (priv->short_preamble)
+ regTmp |= 0x80;
+ write_nic_byte(dev, RRSR+2, regTmp);
+
+
+ write_nic_word(dev, BCN_INTERVAL, net->beacon_interval);
+ PHY_SetBeaconHwReg( dev, net->beacon_interval);
+ rtl8192_update_cap(dev, cap);
+
+ priv->ShortRetryLimit =
+ priv->LongRetryLimit = retrylimit;
+
+ write_nic_word(dev,RETRY_LIMIT, \
+ retrylimit << RETRY_LIMIT_SHORT_SHIFT | \
+ retrylimit << RETRY_LIMIT_LONG_SHIFT);
+}
+#endif
+
+void rtl8192se_link_change(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+ u32 reg = 0;
+
+ if(IS_NIC_DOWN(priv))
+ return;
+
+ priv->rtllib->GetHwRegHandler(dev, HW_VAR_RCR, (u8*)(&reg));
+
+ printk("===>%s():ieee->iw_mode is %d\n",__FUNCTION__,ieee->iw_mode);
+ if (ieee->state == RTLLIB_LINKED) {
+#ifdef CONFIG_FW_PARSEBEACON
+ if (!(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){
+ write_nic_dword(dev, RXFILTERMAP, 0x0000);
+ }
+#endif
+ if(priv->DM_Type == DM_Type_ByFW) {
+ if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_HIGH_POWER)
+ ieee->SetFwCmdHandler(dev, FW_CMD_HIGH_PWR_DISABLE);
+ else
+ ieee->SetFwCmdHandler(dev, FW_CMD_HIGH_PWR_ENABLE);
+ }
+ rtl8192se_net_update(dev);
+
+ if(ieee->bUseRAMask){
+ ieee->UpdateHalRAMaskHandler(
+ dev,
+ false,
+ 0,
+ ieee->pHTInfo->PeerMimoPs,
+ ieee->mode,
+ ieee->pHTInfo->bCurTxBW40MHz,
+ 0);
+ priv->rssi_level = 0;
+ }else{
+ rtl8192se_update_ratr_table(dev,ieee->dot11HTOperationalRateSet,NULL);
+ }
+ if(ieee->IntelPromiscuousModeInfo.bPromiscuousOn)
+ ;
+ else
+ reg |= RCR_CBSSID;
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ else if ((ieee->mesh_state == RTLLIB_MESH_LINKED) && ieee->only_mesh) {
+ rtl8192se_mesh_net_update(dev);
+ if(ieee->bUseRAMask){
+ ieee->UpdateHalRAMaskHandler(
+ dev,
+ false,
+ 0,
+ ieee->pHTInfo->PeerMimoPs,
+ ieee->mode,
+ ieee->pHTInfo->bCurTxBW40MHz,
+ 0);
+ priv->rssi_level = 0;
+ }else{
+ rtl8192se_update_ratr_table(dev,ieee->dot11HTOperationalRateSet,NULL);
+ }
+#ifdef CONFIG_FW_PARSEBEACON
+ if (!(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){
+ write_nic_dword(dev, RXFILTERMAP, 0x0100);
+ }
+#endif
+ reg &= ~RCR_CBSSID;
+ }
+#endif
+ else{
+#ifdef CONFIG_FW_PARSEBEACON
+ if (!(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){
+ write_nic_dword(dev, RXFILTERMAP, 0x0100);
+ }
+#endif
+ reg &= ~RCR_CBSSID;
+ }
+ priv->rtllib->SetHwRegHandler( dev, HW_VAR_RCR, (u8*)(&reg) );
+
+ rtl8192se_update_msr(dev);
+ {
+ u32 temp = read_nic_dword(dev, TCR);
+ write_nic_dword(dev, TCR, temp&(~BIT8));
+ write_nic_dword(dev, TCR, temp|BIT8);
+ }
+}
+
+void rtl8192se_AllowAllDestAddr(struct net_device* dev,
+ bool bAllowAllDA, bool WriteIntoReg)
+{
+ struct r8192_priv* priv = rtllib_priv(dev);
+
+ if( bAllowAllDA )
+ {
+ priv->ReceiveConfig |= RCR_AAP;
+ }
+ else
+ {
+ priv->ReceiveConfig &= ~RCR_AAP;
+ }
+
+ if( WriteIntoReg )
+ {
+ write_nic_dword( dev, RCR, priv->ReceiveConfig );
+ }
+}
+
+
+u8 MRateToHwRate8192SE(struct net_device*dev, u8 rate)
+{
+ u8 ret = DESC92S_RATE1M;
+ u16 max_sg_rate;
+ static u16 multibss_sg_old = 0x1234;
+ u16 multibss_sg;
+
+ switch(rate)
+ {
+ case MGN_1M: ret = DESC92S_RATE1M; break;
+ case MGN_2M: ret = DESC92S_RATE2M; break;
+ case MGN_5_5M: ret = DESC92S_RATE5_5M; break;
+ case MGN_11M: ret = DESC92S_RATE11M; break;
+ case MGN_6M: ret = DESC92S_RATE6M; break;
+ case MGN_9M: ret = DESC92S_RATE9M; break;
+ case MGN_12M: ret = DESC92S_RATE12M; break;
+ case MGN_18M: ret = DESC92S_RATE18M; break;
+ case MGN_24M: ret = DESC92S_RATE24M; break;
+ case MGN_36M: ret = DESC92S_RATE36M; break;
+ case MGN_48M: ret = DESC92S_RATE48M; break;
+ case MGN_54M: ret = DESC92S_RATE54M; break;
+
+ case MGN_MCS0: ret = DESC92S_RATEMCS0; break;
+ case MGN_MCS1: ret = DESC92S_RATEMCS1; break;
+ case MGN_MCS2: ret = DESC92S_RATEMCS2; break;
+ case MGN_MCS3: ret = DESC92S_RATEMCS3; break;
+ case MGN_MCS4: ret = DESC92S_RATEMCS4; break;
+ case MGN_MCS5: ret = DESC92S_RATEMCS5; break;
+ case MGN_MCS6: ret = DESC92S_RATEMCS6; break;
+ case MGN_MCS7: ret = DESC92S_RATEMCS7; break;
+ case MGN_MCS8: ret = DESC92S_RATEMCS8; break;
+ case MGN_MCS9: ret = DESC92S_RATEMCS9; break;
+ case MGN_MCS10: ret = DESC92S_RATEMCS10; break;
+ case MGN_MCS11: ret = DESC92S_RATEMCS11; break;
+ case MGN_MCS12: ret = DESC92S_RATEMCS12; break;
+ case MGN_MCS13: ret = DESC92S_RATEMCS13; break;
+ case MGN_MCS14: ret = DESC92S_RATEMCS14; break;
+ case MGN_MCS15: ret = DESC92S_RATEMCS15; break;
+
+ case MGN_MCS0_SG:
+ case MGN_MCS1_SG:
+ case MGN_MCS2_SG:
+ case MGN_MCS3_SG:
+ case MGN_MCS4_SG:
+ case MGN_MCS5_SG:
+ case MGN_MCS6_SG:
+ case MGN_MCS7_SG:
+ case MGN_MCS8_SG:
+ case MGN_MCS9_SG:
+ case MGN_MCS10_SG:
+ case MGN_MCS11_SG:
+ case MGN_MCS12_SG:
+ case MGN_MCS13_SG:
+ case MGN_MCS14_SG:
+ case MGN_MCS15_SG:
+ ret = DESC92S_RATEMCS15_SG;
+ max_sg_rate = rate&0xf;
+ multibss_sg = max_sg_rate | (max_sg_rate<<4) | (max_sg_rate<<8) | (max_sg_rate<<12);
+ if (multibss_sg_old != multibss_sg)
+ {
+ write_nic_dword(dev, SG_RATE, multibss_sg);
+ multibss_sg_old = multibss_sg;
+ }
+ break;
+
+
+ case (0x80|0x20): ret = DESC92S_RATEMCS32; break;
+
+ default: ret = DESC92S_RATEMCS15; break;
+
+ }
+
+ return ret;
+}
+
+u8 rtl8192se_MapHwQueueToFirmwareQueue(u8 QueueID, u8 priority)
+{
+ u8 QueueSelect = 0x0;
+
+ switch(QueueID) {
+#if defined RTL8192E || defined RTL8190P
+ case BE_QUEUE:
+ QueueSelect = QSLT_BE;
+ break;
+
+ case BK_QUEUE:
+ QueueSelect = QSLT_BK;
+ break;
+
+ case VO_QUEUE:
+ QueueSelect = QSLT_VO;
+ break;
+
+ case VI_QUEUE:
+ QueueSelect = QSLT_VI;
+ break;
+ case MGNT_QUEUE:
+ QueueSelect = QSLT_MGNT;
+ break;
+ case BEACON_QUEUE:
+ QueueSelect = QSLT_BEACON;
+ break;
+ case TXCMD_QUEUE:
+ QueueSelect = QSLT_CMD;
+ break;
+ case HIGH_QUEUE:
+ QueueSelect = QSLT_HIGH;
+ break;
+#elif defined RTL8192SE
+ case BE_QUEUE:
+ QueueSelect = priority;
+ break;
+ case BK_QUEUE:
+ QueueSelect = priority;
+ break;
+ case VO_QUEUE:
+ QueueSelect = priority;
+ break;
+ case VI_QUEUE:
+ QueueSelect = priority;
+ break;
+ case MGNT_QUEUE:
+ QueueSelect = QSLT_BE;
+ break;
+ case BEACON_QUEUE:
+ QueueSelect = QSLT_BEACON;
+ break;
+ case TXCMD_QUEUE:
+ QueueSelect = QSLT_CMD;
+ break;
+ case HIGH_QUEUE:
+ QueueSelect = QSLT_HIGH;
+ break;
+#endif
+ default:
+ RT_TRACE(COMP_ERR, "TransmitTCB(): Impossible Queue Selection: %d \n", QueueID);
+ break;
+ }
+ return QueueSelect;
+}
+
+
+void rtl8192se_tx_fill_desc(struct net_device* dev, tx_desc * pDesc, cb_desc * cb_desc, struct sk_buff* skb)
+{
+ u8 *pSeq;
+ u16 Temp;
+ struct r8192_priv* priv = rtllib_priv(dev);
+
+ struct rtllib_hdr_1addr * header = NULL;
+
+ dma_addr_t mapping = pci_map_single(priv->pdev, skb->data, skb->len, PCI_DMA_TODEVICE);
+
+ u16 fc=0, stype=0;
+ header = (struct rtllib_hdr_1addr *)(((u8*)skb->data));
+ fc = header->frame_ctl;
+ stype = WLAN_FC_GET_STYPE(fc);
+ memset((void*)pDesc, 0, 32);
+
+ {
+
+ if(priv->rtllib->bUseRAMask){
+ if(cb_desc->macId < 32)
+ {
+ pDesc->MacID = cb_desc->macId;
+ pDesc->Rsvd_MacID = cb_desc->macId;
+ }
+ }
+ pDesc->TXHT = (cb_desc->data_rate&0x80)?1:0;
+
+#if (RTL92SE_FPGA_VERIFY == 0)
+ if (priv->card_8192_version== VERSION_8192S_ACUT)
+ {
+ if (cb_desc->data_rate== MGN_1M || cb_desc->data_rate == MGN_2M ||
+ cb_desc->data_rate == MGN_5_5M || cb_desc->data_rate == MGN_11M)
+ {
+ cb_desc->data_rate = MGN_12M;
+ }
+ }
+#endif
+ pDesc->TxRate = MRateToHwRate8192SE(dev,cb_desc->data_rate);
+ pDesc->TxShort = rtl8192se_QueryIsShort(((cb_desc->data_rate&0x80)?1:0), MRateToHwRate8192SE(dev,cb_desc->data_rate), cb_desc);
+
+ if(cb_desc->bAMPDUEnable)
+ {
+ pDesc->AggEn = 1;
+ }
+ else
+ {
+ pDesc->AggEn = 0;
+ }
+
+ {
+ pSeq = (u8 *)(skb->data+22);
+ Temp = pSeq[0];
+ Temp <<= 12;
+ Temp |= (*(u16 *)pSeq)>>4;
+ pDesc->Seq = Temp;
+ }
+
+ pDesc->RTSEn = (cb_desc->bRTSEnable && cb_desc->bCTSEnable==false)?1:0;
+ pDesc->CTS2Self = (cb_desc->bCTSEnable)?1:0;
+ pDesc->RTSSTBC = (cb_desc->bRTSSTBC)?1:0;
+ pDesc->RTSHT = (cb_desc->rts_rate&0x80)?1:0;
+
+#if (RTL92SE_FPGA_VERIFY == 0)
+ if (priv->card_8192_version== VERSION_8192S_ACUT)
+ {
+ if (cb_desc->rts_rate == MGN_1M || cb_desc->rts_rate == MGN_2M ||
+ cb_desc->rts_rate == MGN_5_5M || cb_desc->rts_rate == MGN_11M)
+ {
+ cb_desc->rts_rate = MGN_12M;
+ }
+ }
+#endif
+ pDesc->RTSRate = MRateToHwRate8192SE(dev,cb_desc->rts_rate);
+ pDesc->RTSRate = MRateToHwRate8192SE(dev,MGN_24M);
+ pDesc->RTSBW = 0;
+ pDesc->RTSSC = cb_desc->RTSSC;
+ pDesc->RTSShort = (pDesc->RTSHT==0)?(cb_desc->bRTSUseShortPreamble?1:0):(cb_desc->bRTSUseShortGI?1:0);
+ if(priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40)
+ {
+ if(cb_desc->bPacketBW)
+ {
+ pDesc->TxBw = 1;
+ pDesc->TXSC = 0;
+ }
+ else
+ {
+ pDesc->TxBw = 0;
+ pDesc->TXSC = priv->nCur40MhzPrimeSC;
+ }
+ }
+ else
+ {
+ pDesc->TxBw = 0;
+ pDesc->TXSC = 0;
+ }
+
+ pDesc->LINIP = 0;
+ pDesc->Offset = 32;
+ pDesc->PktSize = (u16)skb->len;
+
+ pDesc->RaBRSRID = cb_desc->RATRIndex;
+#if 0
+printk("*************TXDESC:\n");
+printk("\tTxRate: %d\n", pDesc->TxRate);
+printk("\tAMPDUEn: %d\n", pDesc->AggEn);
+printk("\tTxBw: %d\n", pDesc->TxBw);
+printk("\tTXSC: %d\n", pDesc->TXSC);
+printk("\tPktSize: %d\n", pDesc->PktSize);
+printk("\tRatrIdx: %d\n", pDesc->RaBRSRID);
+#endif
+ if (cb_desc->bHwSec) {
+ static u8 tmp =0;
+ if (!tmp) {
+ tmp = 1;
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if(cb_desc->mesh_pkt == 0)
+#endif
+ {
+ switch (priv->rtllib->pairwise_key_type) {
+ case KEY_TYPE_WEP40:
+ case KEY_TYPE_WEP104:
+ pDesc->SecType = 0x1;
+ break;
+ case KEY_TYPE_TKIP:
+ pDesc->SecType = 0x2;
+ break;
+ case KEY_TYPE_CCMP:
+ pDesc->SecType = 0x3;
+ break;
+ case KEY_TYPE_NA:
+ pDesc->SecType = 0x0;
+ break;
+ }
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ else if(cb_desc->mesh_pkt == 1)
+ {
+ switch (priv->rtllib->mesh_pairwise_key_type) {
+ case KEY_TYPE_WEP40:
+ case KEY_TYPE_WEP104:
+ pDesc->SecType = 0x1;
+ break;
+ case KEY_TYPE_TKIP:
+ pDesc->SecType = 0x2;
+ break;
+ case KEY_TYPE_CCMP:
+ pDesc->SecType = 0x3;
+ break;
+ case KEY_TYPE_NA:
+ pDesc->SecType = 0x0;
+ break;
+ }
+ }
+#endif
+ }
+
+ pDesc->PktID = 0x0;
+ pDesc->QueueSel = rtl8192se_MapHwQueueToFirmwareQueue(cb_desc->queue_index, cb_desc->priority);
+
+ pDesc->DataRateFBLmt = 0x1F;
+ pDesc->DISFB = cb_desc->bTxDisableRateFallBack;
+ pDesc->UserRate = cb_desc->bTxUseDriverAssingedRate;
+
+ if (pDesc->UserRate == true && pDesc->TXHT == true)
+ RF_ChangeTxPath(dev, cb_desc->data_rate);
+
+ }
+
+
+ pDesc->FirstSeg = 1;
+ pDesc->LastSeg = 1;
+
+ pDesc->TxBufferSize= (u16)skb->len;
+
+ pDesc->TxBuffAddr = cpu_to_le32(mapping);
+
+}
+
+void rtl8192se_tx_fill_cmd_desc(struct net_device* dev, tx_desc_cmd * entry, cb_desc * cb_desc, struct sk_buff* skb)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(cb_desc->bCmdOrInit == DESC_PACKET_TYPE_INIT) {
+
+ dma_addr_t mapping = pci_map_single(priv->pdev, skb->data, skb->len, PCI_DMA_TODEVICE);
+
+ memset((void*)entry, 0, 32);
+
+ entry->LINIP = cb_desc->bLastIniPkt;
+
+ entry->FirstSeg = 1;
+ entry->LastSeg = 1;
+
+ entry->TxBufferSize= (u16)(skb->len);
+ entry->TxBufferAddr = cpu_to_le32(mapping);
+ entry->PktSize = (u16)(skb->len);
+
+ {
+ entry->OWN = 1;
+ }
+ } else {
+
+ u8* pDesc = (u8*)entry;
+
+ dma_addr_t mapping = pci_map_single(priv->pdev, skb->data, skb->len, PCI_DMA_TODEVICE);
+
+ CLEAR_PCI_TX_DESC_CONTENT(pDesc, sizeof(tx_desc_cmd));
+
+ SET_TX_DESC_FIRST_SEG(pDesc, 1);
+ SET_TX_DESC_LAST_SEG(pDesc, 1);
+
+ SET_TX_DESC_OFFSET(pDesc, 0x20);
+
+ SET_TX_DESC_PKT_SIZE(pDesc, (u16)(skb->len));
+ SET_TX_DESC_QUEUE_SEL(pDesc, 0x13);
+
+
+ SET_BITS_TO_LE_4BYTE(skb->data, 24, 7, priv->H2CTxCmdSeq);
+
+ SET_TX_DESC_TX_BUFFER_SIZE(pDesc, (u16)(skb->len));
+ SET_TX_DESC_TX_BUFFER_ADDRESS(pDesc, cpu_to_le32(mapping));
+
+ SET_TX_DESC_OWN(pDesc, 1);
+
+ RT_TRACE(COMP_CMD, "TxFillCmdDesc8192SE(): H2C Tx Cmd Content ----->\n");
+ }
+}
+
+u8 HwRateToMRate92S(bool bIsHT, u8 rate)
+{
+ u8 ret_rate = 0x02;
+
+ if (!bIsHT) {
+ switch (rate) {
+ case DESC92S_RATE1M:
+ ret_rate = MGN_1M;
+ break;
+ case DESC92S_RATE2M:
+ ret_rate = MGN_2M;
+ break;
+ case DESC92S_RATE5_5M:
+ ret_rate = MGN_5_5M;
+ break;
+ case DESC92S_RATE11M:
+ ret_rate = MGN_11M;
+ break;
+ case DESC92S_RATE6M:
+ ret_rate = MGN_6M;
+ break;
+ case DESC92S_RATE9M:
+ ret_rate = MGN_9M;
+ break;
+ case DESC92S_RATE12M:
+ ret_rate = MGN_12M;
+ break;
+ case DESC92S_RATE18M:
+ ret_rate = MGN_18M;
+ break;
+ case DESC92S_RATE24M:
+ ret_rate = MGN_24M;
+ break;
+ case DESC92S_RATE36M:
+ ret_rate = MGN_36M;
+ break;
+ case DESC92S_RATE48M:
+ ret_rate = MGN_48M;
+ break;
+ case DESC92S_RATE54M:
+ ret_rate = MGN_54M;
+ break;
+ default:
+ ret_rate = 0xff;
+ break;
+ }
+ } else {
+ switch (rate) {
+ case DESC92S_RATEMCS0:
+ ret_rate = MGN_MCS0;
+ break;
+ case DESC92S_RATEMCS1:
+ ret_rate = MGN_MCS1;
+ break;
+ case DESC92S_RATEMCS2:
+ ret_rate = MGN_MCS2;
+ break;
+ case DESC92S_RATEMCS3:
+ ret_rate = MGN_MCS3;
+ break;
+ case DESC92S_RATEMCS4:
+ ret_rate = MGN_MCS4;
+ break;
+ case DESC92S_RATEMCS5:
+ ret_rate = MGN_MCS5;
+ break;
+ case DESC92S_RATEMCS6:
+ ret_rate = MGN_MCS6;
+ break;
+ case DESC92S_RATEMCS7:
+ ret_rate = MGN_MCS7;
+ break;
+ case DESC92S_RATEMCS8:
+ ret_rate = MGN_MCS8;
+ break;
+ case DESC92S_RATEMCS9:
+ ret_rate = MGN_MCS9;
+ break;
+ case DESC92S_RATEMCS10:
+ ret_rate = MGN_MCS10;
+ break;
+ case DESC92S_RATEMCS11:
+ ret_rate = MGN_MCS11;
+ break;
+ case DESC92S_RATEMCS12:
+ ret_rate = MGN_MCS12;
+ break;
+ case DESC92S_RATEMCS13:
+ ret_rate = MGN_MCS13;
+ break;
+ case DESC92S_RATEMCS14:
+ ret_rate = MGN_MCS14;
+ break;
+ case DESC92S_RATEMCS15:
+ ret_rate = MGN_MCS15;
+ break;
+ case DESC92S_RATEMCS32:
+ ret_rate = (0x80|0x20);
+ break;
+ default:
+ ret_rate = 0xff;
+ break;
+ }
+
+ }
+ return ret_rate;
+}
+
+long
+rtl8192se_signal_scale_mapping(struct r8192_priv * priv,
+ long currsig
+ )
+{
+ long retsig;
+
+#if defined RTL8192SE || defined RTL8192CE
+ if(priv->CustomerID == RT_CID_819x_Lenovo)
+ {
+ return currsig;
+ }
+ else if(priv->CustomerID == RT_CID_819x_Netcore)
+ {
+ if(currsig >= 31 && currsig <= 100)
+ {
+ retsig = 100;
+ }
+ else if(currsig >= 21 && currsig <= 30)
+ {
+ retsig = 90 + ((currsig - 20) / 1);
+ }
+ else if(currsig >= 11 && currsig <= 20)
+ {
+ retsig = 80 + ((currsig - 10) / 1);
+ }
+ else if(currsig >= 7 && currsig <= 10)
+ {
+ retsig = 69 + (currsig - 7);
+ }
+ else if(currsig == 6)
+ {
+ retsig = 54;
+ }
+ else if(currsig == 5)
+ {
+ retsig = 45;
+ }
+ else if(currsig == 4)
+ {
+ retsig = 36;
+ }
+ else if(currsig == 3)
+ {
+ retsig = 27;
+ }
+ else if(currsig == 2)
+ {
+ retsig = 18;
+ }
+ else if(currsig == 1)
+ {
+ retsig = 9;
+ }
+ else
+ {
+ retsig = currsig;
+ }
+ return retsig;
+ }
+#endif
+
+ if(currsig >= 61 && currsig <= 100)
+ {
+ retsig = 90 + ((currsig - 60) / 4);
+ }
+ else if(currsig >= 41 && currsig <= 60)
+ {
+ retsig = 78 + ((currsig - 40) / 2);
+ }
+ else if(currsig >= 31 && currsig <= 40)
+ {
+ retsig = 66 + (currsig - 30);
+ }
+ else if(currsig >= 21 && currsig <= 30)
+ {
+ retsig = 54 + (currsig - 20);
+ }
+ else if(currsig >= 5 && currsig <= 20)
+ {
+ retsig = 42 + (((currsig - 5) * 2) / 3);
+ }
+ else if(currsig == 4)
+ {
+ retsig = 36;
+ }
+ else if(currsig == 3)
+ {
+ retsig = 27;
+ }
+ else if(currsig == 2)
+ {
+ retsig = 18;
+ }
+ else if(currsig == 1)
+ {
+ retsig = 9;
+ }
+ else
+ {
+ retsig = currsig;
+ }
+
+ return retsig;
+}
+
+
+#define rx_hal_is_cck_rate(_pdesc)\
+ (_pdesc->RxMCS == DESC92S_RATE1M ||\
+ _pdesc->RxMCS == DESC92S_RATE2M ||\
+ _pdesc->RxMCS == DESC92S_RATE5_5M ||\
+ _pdesc->RxMCS == DESC92S_RATE11M)
+#ifdef _RTL8192_EXT_PATCH_
+void rtl8192se_query_rxphystatus(
+ struct r8192_priv * priv,
+ struct rtllib_rx_stats * pstats,
+ prx_desc pdesc,
+ prx_fwinfo pDrvInfo,
+ bool bpacket_match_bssid,
+ bool bpacket_toself,
+ bool bPacketBeacon
+ )
+{
+ bool is_cck_rate;
+ phy_sts_cck_8192s_t* cck_buf;
+ u8 rx_pwr_all=0, rx_pwr[4], rf_rx_num=0, EVM, PWDB_ALL;
+ u8 i, max_spatial_stream;
+ u32 rssi, total_rssi = 0;
+ u8 cck_highpwr = 0;
+ is_cck_rate = rx_hal_is_cck_rate(pdesc);
+
+ pstats->bPacketMatchBSSID = bpacket_match_bssid;
+ pstats->bPacketToSelf = bpacket_toself;
+ pstats->bIsCCK = is_cck_rate;
+ pstats->bPacketBeacon = bPacketBeacon;
+
+ pstats->RxMIMOSignalQuality[0] = -1;
+ pstats->RxMIMOSignalQuality[1] = -1;
+
+ if (is_cck_rate){
+ u8 report;
+
+ cck_buf = (phy_sts_cck_8192s_t*)pDrvInfo;
+
+ if(priv->rtllib->eRFPowerState == eRfOn)
+ cck_highpwr = (u8)priv->bCckHighPower;
+ else
+ cck_highpwr = false;
+ if (!cck_highpwr){
+ report = cck_buf->cck_agc_rpt & 0xc0;
+ report = report >> 6;
+ switch(report){
+ case 0x3:
+ rx_pwr_all = -40 - (cck_buf->cck_agc_rpt&0x3e);
+ break;
+ case 0x2:
+ rx_pwr_all = -20 - (cck_buf->cck_agc_rpt&0x3e);
+ break;
+ case 0x1:
+ rx_pwr_all = -2 - (cck_buf->cck_agc_rpt&0x3e);
+ break;
+ case 0x0:
+ rx_pwr_all = 14 - (cck_buf->cck_agc_rpt&0x3e);
+ break;
+ }
+ }
+ else{
+ report = pDrvInfo->cfosho[0] & 0x60;
+ report = report >> 5;
+ switch(report){
+ case 0x3:
+ rx_pwr_all = -40 - ((cck_buf->cck_agc_rpt & 0x1f)<<1);
+ break;
+ case 0x2:
+ rx_pwr_all = -20 - ((cck_buf->cck_agc_rpt & 0x1f)<<1);
+ break;
+ case 0x1:
+ rx_pwr_all = -2 - ((cck_buf->cck_agc_rpt & 0x1f)<<1);
+ break;
+ case 0x0:
+ rx_pwr_all = 14 - ((cck_buf->cck_agc_rpt & 0x1f)<<1);
+ break;
+ }
+ }
+
+ PWDB_ALL= rtl819x_query_rxpwrpercentage(rx_pwr_all);
+ {
+ PWDB_ALL+=6;
+ if(PWDB_ALL > 100)
+ PWDB_ALL = 100;
+ if(PWDB_ALL > 34 && PWDB_ALL <= 42)
+ PWDB_ALL -= 2;
+ else if(PWDB_ALL > 26 && PWDB_ALL <= 34)
+ PWDB_ALL -= 6;
+ else if(PWDB_ALL > 14 && PWDB_ALL <= 26)
+ PWDB_ALL -= 8;
+ else if(PWDB_ALL > 4 && PWDB_ALL <= 14)
+ PWDB_ALL -= 4;
+ }
+ pstats->RxPWDBAll = PWDB_ALL;
+ pstats->RecvSignalPower = rx_pwr_all;
+
+ if (bpacket_match_bssid){
+ u8 sq;
+ if(priv->CustomerID == RT_CID_819x_Lenovo)
+ {
+ if(PWDB_ALL >= 50)
+ sq = 100;
+ else if(PWDB_ALL >= 35 && PWDB_ALL < 50)
+ sq = 80;
+ else if(PWDB_ALL >= 22 && PWDB_ALL < 35)
+ sq = 60;
+ else if(PWDB_ALL >= 18 && PWDB_ALL < 22)
+ sq = 40;
+ else
+ sq = 20;
+ }
+ else
+ {
+ if (pstats->RxPWDBAll > 40)
+ sq = 100;
+ else{
+ sq = cck_buf->sq_rpt;
+ if (sq > 64)
+ sq = 0;
+ else if(sq < 20)
+ sq = 100;
+ else
+ sq = ((64-sq)*100)/44;
+ }
+ }
+ pstats->SignalQuality = sq;
+ pstats->RxMIMOSignalQuality[0] = sq;
+ pstats->RxMIMOSignalQuality[1] = -1;
+ }
+ }
+ else{
+ priv->brfpath_rxenable[0] = priv->brfpath_rxenable[1] = true;
+
+ for (i=RF90_PATH_A; i<RF90_PATH_MAX; i++){
+ if (priv->brfpath_rxenable[i])
+ rf_rx_num ++;
+
+ rx_pwr[i] = ((pDrvInfo->gain_trsw[i]&0x3f)*2) - 110;
+ rssi = rtl819x_query_rxpwrpercentage(rx_pwr[i]);
+ total_rssi += rssi;
+
+ priv->stats.rxSNRdB[i] = (long)(pDrvInfo->rxsnr[i]/2);
+
+ if (bpacket_match_bssid){
+ pstats->RxMIMOSignalStrength[i] = (u8)rssi;
+ if(priv->CustomerID == RT_CID_819x_Lenovo)
+ {
+ u8 SQ;
+
+ if(i == 0)
+ {
+ if(rssi >= 50)
+ SQ = 100;
+ else if(rssi >= 35 && rssi < 50)
+ SQ = 80;
+ else if(rssi >= 22 && rssi < 35)
+ SQ = 60;
+ else if(rssi >= 18 && rssi < 22)
+ SQ = 40;
+ else
+ SQ = 20;
+ pstats->SignalQuality = SQ;
+ }
+ }
+ }
+ }
+ rx_pwr_all = ((pDrvInfo->pwdb_all >> 1) & 0x7f) - 106;
+ PWDB_ALL = rtl819x_query_rxpwrpercentage(rx_pwr_all);
+
+ pstats->RxPWDBAll = PWDB_ALL;
+ pstats->RxPower = rx_pwr_all;
+ pstats->RecvSignalPower = rx_pwr_all;
+
+ if(priv->CustomerID != RT_CID_819x_Lenovo){
+ if (pdesc->RxHT && pdesc->RxMCS >= DESC92S_RATEMCS8 && pdesc->RxMCS <= DESC92S_RATEMCS15)
+ max_spatial_stream = 2;
+ else
+ max_spatial_stream = 1;
+
+ for(i=0; i<max_spatial_stream; i++){
+ EVM = rtl819x_evm_dbtopercentage(pDrvInfo->rxevm[i]);
+
+ if (bpacket_match_bssid)
+ {
+ if (i==0)
+ pstats->SignalQuality = (u8)(EVM & 0xff);
+ pstats->RxMIMOSignalQuality[i] = (u8)(EVM&0xff);
+ }
+ }
+ }
+#if 1
+ if (pdesc->BandWidth)
+ priv->stats.received_bwtype[1+pDrvInfo->rxsc]++;
+ else
+ priv->stats.received_bwtype[0]++;
+#endif
+ }
+
+ if (is_cck_rate){
+ pstats->SignalStrength = (u8)(rtl8192se_signal_scale_mapping(priv,PWDB_ALL));
+ }
+ else {
+ if (rf_rx_num != 0)
+ pstats->SignalStrength = (u8)(rtl8192se_signal_scale_mapping(priv,total_rssi/=rf_rx_num));
+ }
+}
+#else
+void rtl8192se_query_rxphystatus(
+ struct r8192_priv * priv,
+ struct rtllib_rx_stats * pstats,
+ prx_desc pdesc,
+ prx_fwinfo pDrvInfo,
+ struct rtllib_rx_stats * precord_stats,
+ bool bpacket_match_bssid,
+ bool bpacket_toself,
+ bool bPacketBeacon,
+ bool bToSelfBA
+ )
+{
+ bool is_cck_rate;
+ phy_sts_cck_8192s_t* cck_buf;
+ s8 rx_pwr_all=0, rx_pwr[4];
+ u8 rf_rx_num=0, EVM, PWDB_ALL;
+ u8 i, max_spatial_stream;
+ u32 rssi, total_rssi = 0;
+
+ is_cck_rate = rx_hal_is_cck_rate(pdesc);
+
+ memset(precord_stats, 0, sizeof(struct rtllib_rx_stats));
+ pstats->bPacketMatchBSSID = precord_stats->bPacketMatchBSSID = bpacket_match_bssid;
+ pstats->bPacketToSelf = precord_stats->bPacketToSelf = bpacket_toself;
+ pstats->bIsCCK = precord_stats->bIsCCK = is_cck_rate;
+ pstats->bPacketBeacon = precord_stats->bPacketBeacon = bPacketBeacon;
+ pstats->bToSelfBA = precord_stats->bToSelfBA = bToSelfBA;
+ pstats->bIsCCK = precord_stats->bIsCCK = is_cck_rate;
+
+ pstats->RxMIMOSignalQuality[0] = -1;
+ pstats->RxMIMOSignalQuality[1] = -1;
+ precord_stats->RxMIMOSignalQuality[0] = -1;
+ precord_stats->RxMIMOSignalQuality[1] = -1;
+
+ if (is_cck_rate){
+ u8 report, cck_highpwr;
+
+ cck_buf = (phy_sts_cck_8192s_t*)pDrvInfo;
+
+ if(!priv->bInPowerSaveMode)
+ cck_highpwr = (u8)rtl8192_QueryBBReg(priv->rtllib->dev, rFPGA0_XA_HSSIParameter2, BIT9);
+ else
+ cck_highpwr = false;
+ if (!cck_highpwr){
+ report = cck_buf->cck_agc_rpt & 0xc0;
+ report = report >> 6;
+ switch(report){
+ case 0x3:
+ rx_pwr_all = -35 - (cck_buf->cck_agc_rpt&0x3e);
+ break;
+ case 0x2:
+ rx_pwr_all = -23 - (cck_buf->cck_agc_rpt&0x3e);
+ break;
+ case 0x1:
+ rx_pwr_all = -11 - (cck_buf->cck_agc_rpt&0x3e);
+ break;
+ case 0x0:
+ rx_pwr_all = 8 - (cck_buf->cck_agc_rpt&0x3e);
+ break;
+ }
+ }
+ else{
+ report = pDrvInfo->cfosho[0] & 0x60;
+ report = report >> 5;
+ switch(report){
+ case 0x3:
+ rx_pwr_all = -35 - ((cck_buf->cck_agc_rpt & 0x1f)<<1);
+ break;
+ case 0x2:
+ rx_pwr_all = -23 - ((cck_buf->cck_agc_rpt & 0x1f)<<1);
+ break;
+ case 0x1:
+ rx_pwr_all = -11 - ((cck_buf->cck_agc_rpt & 0x1f)<<1);
+ break;
+ case 0x0:
+ rx_pwr_all = -8 - ((cck_buf->cck_agc_rpt & 0x1f)<<1);
+ break;
+ }
+ }
+
+ PWDB_ALL= rtl819x_query_rxpwrpercentage(rx_pwr_all);
+ pstats->RxPWDBAll = precord_stats->RxPWDBAll = PWDB_ALL;
+ pstats->RecvSignalPower = rx_pwr_all;
+
+ if (bpacket_match_bssid){
+ u8 sq;
+ if (pstats->RxPWDBAll > 40)
+ sq = 100;
+ else{
+ sq = cck_buf->sq_rpt;
+ if (sq > 64)
+ sq = 0;
+ else if(sq < 20)
+ sq = 100;
+ else
+ sq = ((64-sq)*100)/44;
+ }
+ pstats->SignalQuality = precord_stats->SignalQuality = sq;
+ pstats->RxMIMOSignalQuality[0] = precord_stats->RxMIMOSignalQuality[0] = sq;
+ pstats->RxMIMOSignalQuality[1] = precord_stats->RxMIMOSignalQuality[1] = -1;
+ }
+ }
+ else{
+ priv->brfpath_rxenable[0] = priv->brfpath_rxenable[1] = true;
+
+ for (i=RF90_PATH_A; i<RF90_PATH_MAX; i++){
+ if (priv->brfpath_rxenable[i])
+ rf_rx_num ++;
+
+ rx_pwr[i] = ((pDrvInfo->gain_trsw[i]&0x3f)*2) - 110;
+ rssi = rtl819x_query_rxpwrpercentage(rx_pwr[i]);
+ total_rssi += rssi;
+
+ priv->stats.rxSNRdB[i] = (long)(pDrvInfo->rxsnr[i]/2);
+
+ if (bpacket_match_bssid){
+ pstats->RxMIMOSignalStrength[i] = (u8)rssi;
+ precord_stats->RxMIMOSignalStrength [i] = (u8)rssi;
+ }
+ }
+
+ rx_pwr_all = ((pDrvInfo->pwdb_all >> 1) & 0x7f) - 0x106;
+ PWDB_ALL = rtl819x_query_rxpwrpercentage(rx_pwr_all);
+
+ pstats->RxPWDBAll = precord_stats->RxPWDBAll = PWDB_ALL;
+ pstats->RxPower = precord_stats->RxPower = rx_pwr_all;
+ pstats->RecvSignalPower = precord_stats->RecvSignalPower = rx_pwr_all;
+
+ if (pdesc->RxHT && pdesc->RxMCS >= DESC92S_RATEMCS8 && pdesc->RxMCS <= DESC92S_RATEMCS15)
+ max_spatial_stream = 2;
+ else
+ max_spatial_stream = 1;
+
+ for(i=0; i<max_spatial_stream; i++){
+ EVM = rtl819x_evm_dbtopercentage(pDrvInfo->rxevm[i]);
+
+ if (bpacket_match_bssid)
+ {
+ if (i==0)
+ pstats->SignalQuality =
+ precord_stats->SignalQuality = (u8)(EVM&0xff);
+ pstats->RxMIMOSignalQuality[i] =
+ precord_stats->RxMIMOSignalQuality[i] = (u8)(EVM&0xff);
+ }
+ }
+#if 0
+ if (pdesc->BW)
+ priv->stats.received_bwtype[1+pDrvInfo->rxsc]++;
+ else
+ priv->stats.received_bwtype[0]++;
+#endif
+ }
+
+ if (is_cck_rate)
+ pstats->SignalStrength =
+ precord_stats->SignalStrength = (u8)(rtl8192se_signal_scale_mapping(priv,PWDB_ALL));
+ else
+ if (rf_rx_num != 0)
+ pstats->SignalStrength =
+ precord_stats->SignalStrength = (u8)(rtl8192se_signal_scale_mapping(priv,total_rssi/=rf_rx_num));
+
+}
+#endif
+
+#ifdef _RTL8192_EXT_PATCH_
+void rtl819x_update_rxsignalstatistics8192S(
+ struct r8192_priv * priv,
+ struct rtllib_rx_stats * pstats
+ )
+{
+ int weighting = 0;
+
+
+ if(priv->stats.recv_signal_power == 0)
+ priv->stats.recv_signal_power = pstats->RecvSignalPower;
+
+ if(pstats->RecvSignalPower > priv->stats.recv_signal_power)
+ weighting = 5;
+ else if(pstats->RecvSignalPower < priv->stats.recv_signal_power)
+ weighting = (-5);
+ priv->stats.recv_signal_power = (priv->stats.recv_signal_power * 5 + pstats->RecvSignalPower + weighting) / 6;
+
+}
+
+void Process_UI_RSSI_8192S(struct r8192_priv * priv,struct rtllib_rx_stats * pstats)
+{
+ u8 rfPath;
+ u32 last_rssi, tmpVal;
+
+ if(pstats->bPacketToSelf || pstats->bPacketBeacon)
+ {
+ priv->stats.RssiCalculateCnt++;
+ if(priv->stats.ui_rssi.TotalNum++ >= PHY_RSSI_SLID_WIN_MAX)
+ {
+ priv->stats.ui_rssi.TotalNum = PHY_RSSI_SLID_WIN_MAX;
+ last_rssi = priv->stats.ui_rssi.elements[priv->stats.ui_rssi.index];
+ priv->stats.ui_rssi.TotalVal -= last_rssi;
+ }
+ priv->stats.ui_rssi.TotalVal += pstats->SignalStrength;
+
+ priv->stats.ui_rssi.elements[priv->stats.ui_rssi.index++] = pstats->SignalStrength;
+ if(priv->stats.ui_rssi.index >= PHY_RSSI_SLID_WIN_MAX)
+ priv->stats.ui_rssi.index = 0;
+
+ tmpVal = priv->stats.ui_rssi.TotalVal/priv->stats.ui_rssi.TotalNum;
+ priv->stats.signal_strength = rtl819x_translate_todbm(priv, (u8)tmpVal);
+
+ }
+
+ if(!pstats->bIsCCK && pstats->bPacketToSelf)
+ {
+ for (rfPath = RF90_PATH_A; rfPath < priv->NumTotalRFPath; rfPath++)
+ {
+ if (!rtl8192_phy_CheckIsLegalRFPath(priv->rtllib->dev, rfPath))
+ continue;
+ RT_TRACE(COMP_DBG, "pstats->RxMIMOSignalStrength[%d] = %d \n", rfPath, pstats->RxMIMOSignalStrength[rfPath] );
+
+ if(priv->stats.rx_rssi_percentage[rfPath] == 0)
+ {
+ priv->stats.rx_rssi_percentage[rfPath] = pstats->RxMIMOSignalStrength[rfPath];
+ }
+
+ if(pstats->RxMIMOSignalStrength[rfPath] > priv->stats.rx_rssi_percentage[rfPath])
+ {
+ priv->stats.rx_rssi_percentage[rfPath] =
+ ( (priv->stats.rx_rssi_percentage[rfPath]*(Rx_Smooth_Factor-1)) +
+ (pstats->RxMIMOSignalStrength[rfPath])) /(Rx_Smooth_Factor);
+ priv->stats.rx_rssi_percentage[rfPath] = priv->stats.rx_rssi_percentage[rfPath] + 1;
+ }
+ else
+ {
+ priv->stats.rx_rssi_percentage[rfPath] =
+ ( (priv->stats.rx_rssi_percentage[rfPath]*(Rx_Smooth_Factor-1)) +
+ (pstats->RxMIMOSignalStrength[rfPath])) /(Rx_Smooth_Factor);
+ }
+ RT_TRACE(COMP_DBG, "priv->stats.rx_rssi_percentage[%d] = %d \n",rfPath, priv->stats.rx_rssi_percentage[rfPath] );
+ }
+ }
+
+}
+
+void Process_PWDB_8192S(struct r8192_priv * priv,struct rtllib_rx_stats * pstats,struct rtllib_network* pnet, struct sta_info *pEntry)
+{
+ long UndecoratedSmoothedPWDB=0;
+
+ if(priv->rtllib->iw_mode == IW_MODE_MESH){
+ if(pnet){
+ if(priv->mshobj->ext_patch_get_peermp_rssi_param)
+ UndecoratedSmoothedPWDB = priv->mshobj->ext_patch_get_peermp_rssi_param(pnet);
+ }else
+ UndecoratedSmoothedPWDB = priv->undecorated_smoothed_pwdb;
+ }
+ else if(priv->rtllib->iw_mode == IW_MODE_ADHOC){
+ if(pEntry){
+ UndecoratedSmoothedPWDB = pEntry->rssi_stat.UndecoratedSmoothedPWDB;
+ }
+ }else
+ UndecoratedSmoothedPWDB = priv->undecorated_smoothed_pwdb;
+
+ if(pstats->bPacketToSelf || pstats->bPacketBeacon){
+ if(UndecoratedSmoothedPWDB < 0){
+ UndecoratedSmoothedPWDB = pstats->RxPWDBAll;
+ }
+
+ if(pstats->RxPWDBAll > (u32)UndecoratedSmoothedPWDB){
+ UndecoratedSmoothedPWDB =
+ ( ((UndecoratedSmoothedPWDB)*(Rx_Smooth_Factor-1)) +
+ (pstats->RxPWDBAll)) /(Rx_Smooth_Factor);
+ UndecoratedSmoothedPWDB = UndecoratedSmoothedPWDB + 1;
+ }else{
+ UndecoratedSmoothedPWDB =
+ ( ((UndecoratedSmoothedPWDB)*(Rx_Smooth_Factor-1)) +
+ (pstats->RxPWDBAll)) /(Rx_Smooth_Factor);
+ }
+ if(priv->rtllib->iw_mode == IW_MODE_MESH){
+ if(pnet){
+ if(priv->mshobj->ext_patch_set_peermp_rssi_param)
+ priv->mshobj->ext_patch_set_peermp_rssi_param(pnet,UndecoratedSmoothedPWDB);
+ }else
+ priv->undecorated_smoothed_pwdb = UndecoratedSmoothedPWDB;
+ }else if(priv->rtllib->iw_mode == IW_MODE_ADHOC){
+ if(pEntry){
+ pEntry->rssi_stat.UndecoratedSmoothedPWDB = UndecoratedSmoothedPWDB;
+ }
+ }else{
+ priv->undecorated_smoothed_pwdb = UndecoratedSmoothedPWDB;
+ }
+ rtl819x_update_rxsignalstatistics8192S(priv, pstats);
+ }
+}
+
+void Process_UiLinkQuality8192S(struct r8192_priv * priv,struct rtllib_rx_stats * pstats)
+{
+ u32 last_evm=0, nSpatialStream, tmpVal;
+
+ if(pstats->SignalQuality != 0)
+ {
+ if (pstats->bPacketToSelf || pstats->bPacketBeacon)
+ {
+ if(priv->stats.ui_link_quality.TotalNum++ >= PHY_LINKQUALITY_SLID_WIN_MAX)
+ {
+ priv->stats.ui_link_quality.TotalNum = PHY_LINKQUALITY_SLID_WIN_MAX;
+ last_evm = priv->stats.ui_link_quality.elements[priv->stats.ui_link_quality.index];
+ priv->stats.ui_link_quality.TotalVal -= last_evm;
+ }
+ priv->stats.ui_link_quality.TotalVal += pstats->SignalQuality;
+
+ priv->stats.ui_link_quality.elements[priv->stats.ui_link_quality.index++] = pstats->SignalQuality;
+ if(priv->stats.ui_link_quality.index >= PHY_LINKQUALITY_SLID_WIN_MAX)
+ priv->stats.ui_link_quality.index = 0;
+
+
+ tmpVal = priv->stats.ui_link_quality.TotalVal/priv->stats.ui_link_quality.TotalNum;
+ priv->stats.signal_quality = tmpVal;
+ priv->stats.last_signal_strength_inpercent = tmpVal;
+
+ for(nSpatialStream = 0; nSpatialStream<2 ; nSpatialStream++)
+ {
+ if(pstats->RxMIMOSignalQuality[nSpatialStream] != -1)
+ {
+ if(priv->stats.rx_evm_percentage[nSpatialStream] == 0)
+ {
+ priv->stats.rx_evm_percentage[nSpatialStream] = pstats->RxMIMOSignalQuality[nSpatialStream];
+ }
+ priv->stats.rx_evm_percentage[nSpatialStream] =
+ ( (priv->stats.rx_evm_percentage[nSpatialStream]*(Rx_Smooth_Factor-1)) +
+ (pstats->RxMIMOSignalQuality[nSpatialStream]* 1)) /(Rx_Smooth_Factor);
+ }
+ }
+ }
+ }
+ else
+ ;
+
+}
+#endif
+
+
+#ifdef _RTL8192_EXT_PATCH_
+void rtl8192se_process_phyinfo(struct r8192_priv * priv, u8* buffer,struct rtllib_rx_stats * pcurrent_stats,struct rtllib_network * pnet, struct sta_info *pEntry)
+#else
+void rtl8192se_process_phyinfo(struct r8192_priv * priv, u8* buffer,struct rtllib_rx_stats * pprevious_stats, struct rtllib_rx_stats * pcurrent_stats)
+#endif
+{
+#ifdef _RTL8192_EXT_PATCH_
+ if(!pcurrent_stats->bPacketMatchBSSID)
+ return;
+ Process_UI_RSSI_8192S(priv, pcurrent_stats);
+ Process_PWDB_8192S(priv, pcurrent_stats, pnet, pEntry);
+ Process_UiLinkQuality8192S(priv, pcurrent_stats);
+#else
+ bool bcheck = false;
+ u8 rfpath;
+ u32 nspatial_stream, tmp_val;
+ static u32 slide_rssi_index=0, slide_rssi_statistics=0;
+ static u32 slide_evm_index=0, slide_evm_statistics=0;
+ static u32 last_rssi=0, last_evm=0;
+ static u32 slide_beacon_adc_pwdb_index=0, slide_beacon_adc_pwdb_statistics=0;
+ static u32 last_beacon_adc_pwdb=0;
+
+ struct rtllib_hdr_3addr *hdr;
+ u16 sc ;
+ unsigned int frag,seq;
+ hdr = (struct rtllib_hdr_3addr *)buffer;
+ sc = le16_to_cpu(hdr->seq_ctl);
+ frag = WLAN_GET_SEQ_FRAG(sc);
+ seq = WLAN_GET_SEQ_SEQ(sc);
+ pcurrent_stats->Seq_Num = seq;
+ if(!pprevious_stats->bIsAMPDU)
+ {
+ bcheck = true;
+ }else {
+#if 0
+ if( !pcurrent_stats->bIsAMPDU || pcurrent_stats->bFirstMPDU)
+ bcheck = true;
+#endif
+ }
+
+ if(slide_rssi_statistics++ >= PHY_RSSI_SLID_WIN_MAX)
+ {
+ slide_rssi_statistics = PHY_RSSI_SLID_WIN_MAX;
+ last_rssi = priv->stats.slide_signal_strength[slide_rssi_index];
+ priv->stats.slide_rssi_total -= last_rssi;
+ }
+ priv->stats.slide_rssi_total += pprevious_stats->SignalStrength;
+
+ priv->stats.slide_signal_strength[slide_rssi_index++] = pprevious_stats->SignalStrength;
+ if(slide_rssi_index >= PHY_RSSI_SLID_WIN_MAX)
+ slide_rssi_index = 0;
+
+ tmp_val = priv->stats.slide_rssi_total/slide_rssi_statistics;
+ priv->stats.signal_strength = rtl819x_translate_todbm(priv, (u8)tmp_val);
+ pcurrent_stats->rssi = priv->stats.signal_strength;
+ if(!pprevious_stats->bPacketMatchBSSID)
+ {
+ if(!pprevious_stats->bToSelfBA)
+ return;
+ }
+
+ if(!bcheck)
+ return;
+
+ rtl819x_process_cck_rxpathsel(priv,pprevious_stats);
+
+ priv->stats.num_process_phyinfo++;
+#if 0
+ if(slide_rssi_statistics++ >= PHY_RSSI_SLID_WIN_MAX)
+ {
+ slide_rssi_statistics = PHY_RSSI_SLID_WIN_MAX;
+ last_rssi = priv->stats.slide_signal_strength[slide_rssi_index];
+ priv->stats.slide_rssi_total -= last_rssi;
+ }
+ priv->stats.slide_rssi_total += pprevious_stats->SignalStrength;
+
+ priv->stats.slide_signal_strength[slide_rssi_index++] = pprevious_stats->SignalStrength;
+ if(slide_rssi_index >= PHY_RSSI_SLID_WIN_MAX)
+ slide_rssi_index = 0;
+
+ tmp_val = priv->stats.slide_rssi_total/slide_rssi_statistics;
+ priv->stats.signal_strength = rtl819x_translate_todbm(priv, (u8)tmp_val);
+
+#endif
+ if(!pprevious_stats->bIsCCK && pprevious_stats->bPacketToSelf)
+ {
+ for (rfpath = RF90_PATH_A; rfpath < RF90_PATH_C; rfpath++)
+ {
+ if (!rtl8192_phy_CheckIsLegalRFPath(priv->rtllib->dev, rfpath))
+ continue;
+ RT_TRACE(COMP_DBG,"Jacken -> pPreviousstats->RxMIMOSignalStrength[rfpath] = %d \n" ,pprevious_stats->RxMIMOSignalStrength[rfpath] );
+ if(priv->stats.rx_rssi_percentage[rfpath] == 0)
+ {
+ priv->stats.rx_rssi_percentage[rfpath] = pprevious_stats->RxMIMOSignalStrength[rfpath];
+ }
+ if(pprevious_stats->RxMIMOSignalStrength[rfpath] > priv->stats.rx_rssi_percentage[rfpath])
+ {
+ priv->stats.rx_rssi_percentage[rfpath] =
+ ( (priv->stats.rx_rssi_percentage[rfpath]*(Rx_Smooth_Factor-1)) +
+ (pprevious_stats->RxMIMOSignalStrength[rfpath])) /(Rx_Smooth_Factor);
+ priv->stats.rx_rssi_percentage[rfpath] = priv->stats.rx_rssi_percentage[rfpath] + 1;
+ }
+ else
+ {
+ priv->stats.rx_rssi_percentage[rfpath] =
+ ( (priv->stats.rx_rssi_percentage[rfpath]*(Rx_Smooth_Factor-1)) +
+ (pprevious_stats->RxMIMOSignalStrength[rfpath])) /(Rx_Smooth_Factor);
+ }
+ RT_TRACE(COMP_DBG,"Jacken -> priv->RxStats.RxRSSIPercentage[rfPath] = %d \n" ,priv->stats.rx_rssi_percentage[rfpath] );
+ }
+ }
+
+
+ if(pprevious_stats->bPacketBeacon)
+ {
+ if(slide_beacon_adc_pwdb_statistics++ >= PHY_Beacon_RSSI_SLID_WIN_MAX)
+ {
+ slide_beacon_adc_pwdb_statistics = PHY_Beacon_RSSI_SLID_WIN_MAX;
+ last_beacon_adc_pwdb = priv->stats.Slide_Beacon_pwdb[slide_beacon_adc_pwdb_index];
+ priv->stats.Slide_Beacon_Total -= last_beacon_adc_pwdb;
+ }
+ priv->stats.Slide_Beacon_Total += pprevious_stats->RxPWDBAll;
+ priv->stats.Slide_Beacon_pwdb[slide_beacon_adc_pwdb_index] = pprevious_stats->RxPWDBAll;
+ slide_beacon_adc_pwdb_index++;
+ if(slide_beacon_adc_pwdb_index >= PHY_Beacon_RSSI_SLID_WIN_MAX)
+ slide_beacon_adc_pwdb_index = 0;
+ pprevious_stats->RxPWDBAll = priv->stats.Slide_Beacon_Total/slide_beacon_adc_pwdb_statistics;
+ if(pprevious_stats->RxPWDBAll >= 3)
+ pprevious_stats->RxPWDBAll -= 3;
+ }
+
+ RT_TRACE(COMP_RXDESC, "Smooth %s PWDB = %d\n",
+ pprevious_stats->bIsCCK? "CCK": "OFDM",
+ pprevious_stats->RxPWDBAll);
+
+ if(pprevious_stats->bPacketToSelf || pprevious_stats->bPacketBeacon || pprevious_stats->bToSelfBA)
+ {
+ if(priv->undecorated_smoothed_pwdb < 0)
+ {
+ priv->undecorated_smoothed_pwdb = pprevious_stats->RxPWDBAll;
+ }
+#if 1
+ if(pprevious_stats->RxPWDBAll > (u32)priv->undecorated_smoothed_pwdb)
+ {
+ priv->undecorated_smoothed_pwdb =
+ ( ((priv->undecorated_smoothed_pwdb)*(Rx_Smooth_Factor-1)) +
+ (pprevious_stats->RxPWDBAll)) /(Rx_Smooth_Factor);
+ priv->undecorated_smoothed_pwdb = priv->undecorated_smoothed_pwdb + 1;
+ }
+ else
+ {
+ priv->undecorated_smoothed_pwdb =
+ ( ((priv->undecorated_smoothed_pwdb)*(Rx_Smooth_Factor-1)) +
+ (pprevious_stats->RxPWDBAll)) /(Rx_Smooth_Factor);
+ }
+#else
+ if(pPreviousRfd->Status.RxPWDBAll > (u32)pHalData->UndecoratedSmoothedPWDB)
+ {
+ pHalData->UndecoratedSmoothedPWDB =
+ ( ((pHalData->UndecoratedSmoothedPWDB)* 5) + (pPreviousRfd->Status.RxPWDBAll)) / 6;
+ pHalData->UndecoratedSmoothedPWDB = pHalData->UndecoratedSmoothedPWDB + 1;
+ }
+ else
+ {
+ pHalData->UndecoratedSmoothedPWDB =
+ ( ((pHalData->UndecoratedSmoothedPWDB)* 5) + (pPreviousRfd->Status.RxPWDBAll)) / 6;
+ }
+#endif
+ rtl819x_update_rxsignalstatistics8190pci(priv,pprevious_stats);
+ }
+
+ if(pprevious_stats->SignalQuality == 0)
+ {
+ }
+ else
+ {
+ if(pprevious_stats->bPacketToSelf || pprevious_stats->bPacketBeacon || pprevious_stats->bToSelfBA){
+ if(slide_evm_statistics++ >= PHY_RSSI_SLID_WIN_MAX){
+ slide_evm_statistics = PHY_RSSI_SLID_WIN_MAX;
+ last_evm = priv->stats.slide_evm[slide_evm_index];
+ priv->stats.slide_evm_total -= last_evm;
+ }
+
+ priv->stats.slide_evm_total += pprevious_stats->SignalQuality;
+
+ priv->stats.slide_evm[slide_evm_index++] = pprevious_stats->SignalQuality;
+ if(slide_evm_index >= PHY_RSSI_SLID_WIN_MAX)
+ slide_evm_index = 0;
+
+ tmp_val = priv->stats.slide_evm_total/slide_evm_statistics;
+ priv->stats.signal_quality = tmp_val;
+ priv->stats.last_signal_strength_inpercent = tmp_val;
+ }
+
+ if(pprevious_stats->bPacketToSelf || pprevious_stats->bPacketBeacon || pprevious_stats->bToSelfBA)
+ {
+ for(nspatial_stream = 0; nspatial_stream<2 ; nspatial_stream++)
+ {
+ if(pprevious_stats->RxMIMOSignalQuality[nspatial_stream] != -1)
+ {
+ if(priv->stats.rx_evm_percentage[nspatial_stream] == 0)
+ {
+ priv->stats.rx_evm_percentage[nspatial_stream] = pprevious_stats->RxMIMOSignalQuality[nspatial_stream];
+ }
+ priv->stats.rx_evm_percentage[nspatial_stream] =
+ ( (priv->stats.rx_evm_percentage[nspatial_stream]* (Rx_Smooth_Factor-1)) +
+ (pprevious_stats->RxMIMOSignalQuality[nspatial_stream]* 1)) / (Rx_Smooth_Factor);
+ }
+ }
+ }
+ }
+#endif
+
+}
+
+
+
+void rtl8192se_TranslateRxSignalStuff(struct net_device *dev,
+ struct sk_buff *skb,
+ struct rtllib_rx_stats * pstats,
+ prx_desc pdesc,
+ prx_fwinfo pdrvinfo)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ bool bpacket_match_bssid, bpacket_toself;
+ bool bPacketBeacon=false;
+ struct rtllib_hdr_3addr *hdr;
+#ifdef _RTL8192_EXT_PATCH_
+ struct rtllib_network* pnet=NULL;
+ u8 *psaddr;
+ struct sta_info *pEntry = NULL;
+#else
+ bool bToSelfBA=false;
+ static struct rtllib_rx_stats previous_stats;
+#endif
+ u16 fc,type;
+ u8* tmp_buf;
+ u8 *praddr;
+
+ tmp_buf = skb->data + pstats->RxDrvInfoSize + pstats->RxBufShift;
+
+ hdr = (struct rtllib_hdr_3addr *)tmp_buf;
+ fc = le16_to_cpu(hdr->frame_ctl);
+ type = WLAN_FC_GET_TYPE(fc);
+ praddr = hdr->addr1;
+
+#ifdef _RTL8192_EXT_PATCH_
+ psaddr = hdr->addr2;
+ if((priv->rtllib->iw_mode == IW_MODE_MESH) && (priv->mshobj->ext_patch_get_mpinfo))
+ pnet = priv->mshobj->ext_patch_get_mpinfo(dev,psaddr);
+ if(priv->rtllib->iw_mode == IW_MODE_ADHOC){
+ pEntry = GetStaInfo(priv->rtllib, psaddr);
+ }
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ bpacket_match_bssid = ((RTLLIB_FTYPE_CTL != type) && (!pstats->bHwError) && (!pstats->bCRC)&& (!pstats->bICV));
+ if(pnet){
+ bpacket_match_bssid = bpacket_match_bssid;
+ }
+ else{
+ bpacket_match_bssid = bpacket_match_bssid &&
+ (!compare_ether_addr(priv->rtllib->current_network.bssid,
+ (fc & RTLLIB_FCTL_TODS)? hdr->addr1 :
+ (fc & RTLLIB_FCTL_FROMDS )? hdr->addr2 : hdr->addr3));
+ }
+#else
+ bpacket_match_bssid = ((RTLLIB_FTYPE_CTL != type) &&
+ (!compare_ether_addr(priv->rtllib->current_network.bssid,
+ (fc & RTLLIB_FCTL_TODS)? hdr->addr1 :
+ (fc & RTLLIB_FCTL_FROMDS )? hdr->addr2 : hdr->addr3))
+ && (!pstats->bHwError) && (!pstats->bCRC)&& (!pstats->bICV));
+#endif
+ bpacket_toself = bpacket_match_bssid & (!compare_ether_addr(praddr, priv->rtllib->dev->dev_addr));
+ if(WLAN_FC_GET_FRAMETYPE(fc)== RTLLIB_STYPE_BEACON){
+ bPacketBeacon = true;
+ }
+#ifndef _RTL8192_EXT_PATCH_
+ if(WLAN_FC_GET_FRAMETYPE(fc) == RTLLIB_STYPE_BLOCKACK){
+ if ((!compare_ether_addr(praddr,dev->dev_addr)))
+ bToSelfBA = true;
+ }
+#endif
+ if(bpacket_match_bssid){
+ priv->stats.numpacket_matchbssid++;
+ }
+ if(bpacket_toself){
+ priv->stats.numpacket_toself++;
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ rtl8192se_query_rxphystatus(priv, pstats, pdesc, pdrvinfo, bpacket_match_bssid,
+ bpacket_toself ,bPacketBeacon);
+ rtl8192se_process_phyinfo(priv, tmp_buf,pstats,pnet, pEntry);
+
+#else
+ rtl8192se_process_phyinfo(priv, tmp_buf,&previous_stats, pstats);
+ rtl8192se_query_rxphystatus(priv, pstats, pdesc, pdrvinfo, &previous_stats, bpacket_match_bssid,
+ bpacket_toself ,bPacketBeacon, bToSelfBA);
+ rtl8192_record_rxdesc_forlateruse(pstats, &previous_stats);
+#endif
+
+}
+
+void rtl8192se_UpdateReceivedRateHistogramStatistics(
+ struct net_device *dev,
+ struct rtllib_rx_stats* pstats
+ )
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ u32 rcvType=1;
+ u32 rateIndex;
+ u32 preamble_guardinterval;
+
+ #if 0
+ if (pRfd->queue_id == CMPK_RX_QUEUE_ID)
+ return;
+ #endif
+ if(pstats->bCRC)
+ rcvType = 2;
+ else if(pstats->bICV)
+ rcvType = 3;
+
+ if(pstats->bShortPreamble)
+ preamble_guardinterval = 1;
+ else
+ preamble_guardinterval = 0;
+
+ switch(pstats->rate)
+ {
+ case MGN_1M: rateIndex = 0; break;
+ case MGN_2M: rateIndex = 1; break;
+ case MGN_5_5M: rateIndex = 2; break;
+ case MGN_11M: rateIndex = 3; break;
+ case MGN_6M: rateIndex = 4; break;
+ case MGN_9M: rateIndex = 5; break;
+ case MGN_12M: rateIndex = 6; break;
+ case MGN_18M: rateIndex = 7; break;
+ case MGN_24M: rateIndex = 8; break;
+ case MGN_36M: rateIndex = 9; break;
+ case MGN_48M: rateIndex = 10; break;
+ case MGN_54M: rateIndex = 11; break;
+ case MGN_MCS0: rateIndex = 12; break;
+ case MGN_MCS1: rateIndex = 13; break;
+ case MGN_MCS2: rateIndex = 14; break;
+ case MGN_MCS3: rateIndex = 15; break;
+ case MGN_MCS4: rateIndex = 16; break;
+ case MGN_MCS5: rateIndex = 17; break;
+ case MGN_MCS6: rateIndex = 18; break;
+ case MGN_MCS7: rateIndex = 19; break;
+ case MGN_MCS8: rateIndex = 20; break;
+ case MGN_MCS9: rateIndex = 21; break;
+ case MGN_MCS10: rateIndex = 22; break;
+ case MGN_MCS11: rateIndex = 23; break;
+ case MGN_MCS12: rateIndex = 24; break;
+ case MGN_MCS13: rateIndex = 25; break;
+ case MGN_MCS14: rateIndex = 26; break;
+ case MGN_MCS15: rateIndex = 27; break;
+ default: rateIndex = 28; break;
+ }
+ priv->stats.received_preamble_GI[preamble_guardinterval][rateIndex]++;
+ priv->stats.received_rate_histogram[0][rateIndex]++;
+ priv->stats.received_rate_histogram[rcvType][rateIndex]++;
+}
+
+bool rtl8192se_rx_query_status_desc(struct net_device* dev, struct rtllib_rx_stats* stats, rx_desc *pdesc, struct sk_buff* skb)
+{
+ struct r8192_priv* priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+ u32 PHYStatus = pdesc->PHYStatus;
+ rx_fwinfo* pDrvInfo;
+ stats->Length = (u16)pdesc->Length;
+ stats->RxDrvInfoSize = (u8)pdesc->DrvInfoSize*8;
+ stats->RxBufShift = (u8)((pdesc->Shift)&0x03);
+ stats->bICV = (u16)pdesc->ICVError;
+ stats->bCRC = (u16)pdesc->CRC32;
+ stats->bHwError = (u16)(pdesc->CRC32|pdesc->ICVError);
+ stats->Decrypted = !pdesc->SWDec;
+ stats->rate = (u8)pdesc->RxMCS;
+ stats->bShortPreamble= (u16)pdesc->SPLCP;
+ stats->bIsAMPDU = (bool)(pdesc->PAGGR==1);
+ stats->bFirstMPDU = (bool)((pdesc->PAGGR==1) && (pdesc->FAGGR==1));
+ stats->TimeStampLow = pdesc->TSFL;
+ stats->RxIs40MHzPacket= (bool)pdesc->BandWidth;
+ if(IS_UNDER_11N_AES_MODE(ieee))
+ {
+ if(stats->bICV && !stats->bCRC)
+ {
+ stats->bICV = false;
+ stats->bHwError = false;
+ }
+ }
+
+
+ if(stats->Length > 0x2000 || stats->Length < 24)
+ {
+ RT_TRACE(COMP_ERR, "Err RX pkt len = 0x%x\n", stats->Length);
+ stats->bHwError |= 1;
+ }
+ rtl8192se_UpdateReceivedRateHistogramStatistics(dev, stats);
+
+ if(!stats->bHwError)
+ stats->rate = HwRateToMRate92S((bool)(pdesc->RxHT), (u8)(pdesc->RxMCS));
+ else
+ {
+ stats->rate = MGN_1M;
+ return false;
+ }
+
+ rtl819x_UpdateRxPktTimeStamp(dev, stats);
+
+ if((stats->RxBufShift + stats->RxDrvInfoSize) > 0)
+ stats->bShift = 1;
+
+ if (PHYStatus == true)
+ {
+ pDrvInfo = (rx_fwinfo*)(skb->data + stats->RxBufShift);
+
+ rtl8192se_TranslateRxSignalStuff(dev, skb, stats, pdesc, pDrvInfo);
+
+ }
+ return true;
+}
+
+void rtl8192se_halt_adapter(struct net_device *dev, bool bReset)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int i;
+ u8 wait = 30;
+
+ RT_TRACE(COMP_INIT, "==> rtl8192se_halt_adapter()\n");
+
+#if 1
+ while (wait-- >= 10 && priv->PwrDomainProtect == true)
+ {
+ if (priv->PwrDomainProtect == true)
+ {
+ RT_TRACE(COMP_INIT, "Delay 20ms to wait PwrDomainProtect\n");
+ mdelay(20);
+ }
+ else
+ break;
+ }
+
+ if (wait == 9)
+ RT_TRACE(COMP_INIT, "PwrDomainProtect FAIL\n");
+#endif
+
+ priv->rtllib->state = RTLLIB_NOLINK;
+ rtl8192se_update_msr(dev);
+#if 1
+ PHY_SetRtl8192seRfHalt(dev);
+#endif
+ udelay(100);
+
+#if 0
+ udelay(20);
+ if (!bReset) {
+ mdelay(20);
+ }
+#endif
+ for(i = 0; i < MAX_QUEUE_SIZE; i++) {
+ skb_queue_purge(&priv->rtllib->skb_waitQ [i]);
+ }
+ for(i = 0; i < MAX_QUEUE_SIZE; i++) {
+ skb_queue_purge(&priv->rtllib->skb_aggQ [i]);
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ for(i = 0; i < MAX_QUEUE_SIZE; i++) {
+ skb_queue_purge(&priv->rtllib->skb_meshaggQ [i]);
+ }
+#endif
+
+ skb_queue_purge(&priv->skb_queue);
+ RT_TRACE(COMP_INIT, "<== HaltAdapter8192SE()\n");
+ return;
+}
+
+u8 GetFreeRATRIndex8192SE (struct net_device* dev)
+{
+ struct r8192_priv* priv = rtllib_priv(dev);
+ u8 bitmap = priv->RATRTableBitmap;
+ u8 ratr_index = 0;
+ for( ;ratr_index<7; ratr_index++)
+ {
+ if((bitmap & BIT0) == 0)
+ {
+ priv->RATRTableBitmap |= BIT0<<ratr_index;
+ return ratr_index;
+ }
+ bitmap = bitmap >>1;
+ }
+ return ratr_index;
+}
+
+void rtl8192se_update_ratr_table(struct net_device* dev,u8* pMcsRate,struct sta_info* pEntry)
+{
+ struct r8192_priv* priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+ u32 ratr_value = 0;
+ u8 ratr_index = 0;
+ u8 bNMode = 0;
+ u16 shortGI_rate = 0;
+ u32 tmp_ratr_value = 0;
+ u8 MimoPs;
+ WIRELESS_MODE WirelessMode;
+ u8 bCurTxBW40MHz, bCurShortGI40MHz, bCurShortGI20MHz;
+
+ if(ieee->iw_mode == IW_MODE_ADHOC){
+ if(pEntry == NULL){
+ printk("Doesn't have match Entry\n");
+ return;
+ }
+
+ if(pEntry->ratr_index != 8)
+ ratr_index = pEntry->ratr_index;
+ else
+ ratr_index = GetFreeRATRIndex8192SE(dev);
+
+ if(ratr_index == 7){
+ RT_TRACE(COMP_RATE, "Ratrtable are full");
+ return;
+ }
+ MimoPs = pEntry->htinfo.MimoPs;
+
+ if((ieee->mode == WIRELESS_MODE_G) && (pEntry->wireless_mode == WIRELESS_MODE_N_24G))
+ WirelessMode = ieee->mode;
+ else
+ WirelessMode = pEntry->wireless_mode;
+
+ bCurTxBW40MHz = pEntry->htinfo.bCurTxBW40MHz;
+ bCurShortGI40MHz = pEntry->htinfo.bCurShortGI40MHz;
+ bCurShortGI20MHz = pEntry->htinfo.bCurShortGI20MHz;
+ pEntry->ratr_index = ratr_index;
+ }
+ else
+ {
+ ratr_index = 0;
+ WirelessMode = ieee->mode;
+ MimoPs = ieee->pHTInfo->PeerMimoPs;
+ bCurTxBW40MHz = ieee->pHTInfo->bCurTxBW40MHz;
+ bCurShortGI40MHz = ieee->pHTInfo->bCurShortGI40MHz;
+ bCurShortGI20MHz = ieee->pHTInfo->bCurShortGI20MHz;
+ }
+
+ rtl8192_config_rate(dev, (u16*)(&ratr_value));
+ ratr_value |= (*(u16*)(pMcsRate)) << 12;
+ switch (WirelessMode)
+ {
+ case IEEE_A:
+ ratr_value &= 0x00000FF0;
+ break;
+ case IEEE_B:
+ ratr_value &= 0x0000000D;
+ break;
+ case IEEE_G:
+ case IEEE_G|IEEE_B:
+ ratr_value &= 0x00000FF5;
+ break;
+ case IEEE_N_24G:
+ case IEEE_N_5G:
+ bNMode = 1;
+ if (MimoPs == 0)
+ ratr_value &= 0x0007F005;
+ else{
+ if (priv->rf_type == RF_1T2R ||priv->rf_type == RF_1T1R || (ieee->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_TX_2SS)){
+ if ((bCurTxBW40MHz) && !(ieee->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_TX_40_MHZ))
+ ratr_value &= 0x000FF015;
+ else
+ ratr_value &= 0x000ff005;
+ }else{
+ if ((bCurTxBW40MHz) && !(ieee->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_TX_40_MHZ))
+ ratr_value &= 0x0f0ff015;
+ else
+ ratr_value &= 0x0f0ff005;
+ }
+ }
+ break;
+ default:
+ printk("====>%s(), mode is not correct:%x\n", __FUNCTION__,WirelessMode);
+ break;
+ }
+ if (priv->card_8192_version>= VERSION_8192S_BCUT)
+ ratr_value &= 0x0FFFFFFF;
+ else if (priv->card_8192_version == VERSION_8192S_ACUT)
+ ratr_value &= 0x0FFFFFF0;
+
+ if (((ieee->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_SHORT_GI)==0) &&
+ bNMode && ((bCurTxBW40MHz && bCurShortGI40MHz) ||
+ (!bCurTxBW40MHz && bCurShortGI20MHz)))
+ {
+ ratr_value |= 0x10000000;
+ tmp_ratr_value = (ratr_value>>12);
+ for(shortGI_rate=15; shortGI_rate>0; shortGI_rate--)
+ {
+ if((1<<shortGI_rate) & tmp_ratr_value)
+ break;
+ }
+ shortGI_rate = (shortGI_rate<<12)|(shortGI_rate<<8)|\
+ (shortGI_rate<<4)|(shortGI_rate);
+ write_nic_byte(dev, SG_RATE, shortGI_rate);
+ }
+
+ if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom)
+ {
+ ratr_value &= 0xfffffff0;
+ printk("UpdateHalRATRTable8192SE(), for HT_IOT_ACT_WA_IOT_Broadcom, ratr_value = 0x%x\n", ratr_value);
+ }
+
+ write_nic_dword(dev, ARFR0+ratr_index*4, ratr_value);
+ RT_TRACE(COMP_RATE, "%s: ratr_index=%d ratr_table=0x%8.8x\n", __FUNCTION__,ratr_index, read_nic_dword(dev, ARFR0+ratr_index*4));
+ if (ratr_value & 0xfffff000){
+ rtl8192se_set_fw_cmd(dev, FW_CMD_RA_REFRESH_N);
+ }
+ else{
+ rtl8192se_set_fw_cmd(dev, FW_CMD_RA_REFRESH_BG);
+ }
+}
+
+int r8192se_resume_firm(struct net_device *dev)
+{
+ write_nic_byte(dev, 0x42, 0xFF);
+ write_nic_word(dev, 0x40, 0x77FC);
+ write_nic_word(dev, 0x40, 0x57FC);
+ write_nic_word(dev, 0x40, 0x37FC);
+ write_nic_word(dev, 0x40, 0x77FC);
+
+ udelay(100);
+
+ write_nic_word(dev, 0x40, 0x57FC);
+ write_nic_word(dev, 0x40, 0x37FC);
+ write_nic_byte(dev, 0x42, 0x00);
+
+ return 0;
+}
+void PHY_SetRtl8192seRfHalt(struct net_device* dev)
+{
+ struct r8192_priv* priv = rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+ u8 u1bTmp;
+
+ if(priv->rtllib->RfOffReason == RF_CHANGE_BY_IPS && priv->LedStrategy == SW_LED_MODE8)
+ {
+ SET_RTL8192SE_RF_SLEEP(dev);
+ return;
+ }
+
+#ifdef LOW_DOWN_POWER
+ if(0)
+#else
+ if(priv->bDriverIsGoingToUnload)
+#endif
+ write_nic_byte(dev,0x560,0x0);
+
+ RT_TRACE(COMP_PS, "PHY_SetRtl8192seRfHalt save BB/RF\n");
+ u1bTmp = read_nic_byte(dev, LDOV12D_CTRL);
+ u1bTmp |= BIT0;
+ write_nic_byte(dev, LDOV12D_CTRL, u1bTmp);
+ write_nic_byte(dev, SPS1_CTRL, 0x0);
+ write_nic_byte(dev, TXPAUSE, 0xFF);
+ write_nic_word(dev, CMDR, 0x57FC);
+ udelay(100);
+ write_nic_word(dev, CMDR, 0x77FC);
+ write_nic_byte(dev, PHY_CCA, 0x0);
+ udelay(10);
+ write_nic_word(dev, CMDR, 0x37FC);
+ udelay(10);
+ write_nic_word(dev, CMDR, 0x77FC);
+ udelay(10);
+ write_nic_word(dev, CMDR, 0x57FC);
+ write_nic_word(dev, CMDR, 0x0000);
+
+
+#ifdef LOW_DOWN_POWER
+ if(0)
+#else
+ if(priv->bDriverIsGoingToUnload)
+#endif
+ {
+ u1bTmp = read_nic_byte(dev, (SYS_FUNC_EN+ 1));
+ u1bTmp &= ~(BIT0);
+ write_nic_byte(dev, SYS_FUNC_EN+1, u1bTmp);
+ }
+
+
+ u1bTmp = read_nic_byte(dev, (SYS_CLKR + 1));
+
+ if (u1bTmp & BIT7) {
+ u1bTmp &= ~(BIT6 | BIT7);
+ if(!HalSetSysClk8192SE(dev, u1bTmp)) {
+ printk("Switch ctrl path fail\n");
+ return;
+ }
+ }
+
+#ifdef LOW_DOWN_POWER
+ if((priv->rtllib->RfOffReason & (RF_CHANGE_BY_IPS | RF_CHANGE_BY_HW)) &&
+ !priv->bDriverIsGoingToUnload)
+#else
+ if(priv->rtllib->RfOffReason==RF_CHANGE_BY_IPS && !priv->bDriverIsGoingToUnload)
+#endif
+ {
+ write_nic_byte(dev, 0x03, 0xF9);
+ } else
+ {
+ write_nic_byte(dev, 0x03, 0xF9);
+ }
+ write_nic_byte(dev, SYS_CLKR+1, 0x70);
+ write_nic_byte(dev, AFE_PLL_CTRL+1, 0x68);
+ write_nic_byte(dev, AFE_PLL_CTRL, 0x00);
+ write_nic_byte(dev, LDOA15_CTRL, 0x34);
+ write_nic_byte(dev, AFE_XTAL_CTRL, 0x0E);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC);
+}
+
+
+/*
+* Description:
+* Set RateAdaptive Mask
+* /param Adapter Pionter to Adapter entity
+* /param bMulticast TURE if broadcast or multicast, used for softAP basic rate
+* /param macId macID to set
+* /param wirelessMode wireless mode of associated AP/client
+* /return void
+*
+*/
+void UpdateHalRAMask8192SE(
+ struct net_device* dev,
+ bool bMulticast,
+ u8 macId,
+ u8 MimoPs,
+ u8 WirelessMode,
+ u8 bCurTxBW40MHz,
+ u8 rssi_level){
+ struct r8192_priv* priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+ PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo;
+ u8* pMcsRate = ieee->dot11HTOperationalRateSet;
+ u32 ratr_bitmap, RateSet, mask=0, band = 0, ratr_value = 0;
+ u8 shortGI_rate = 0, bShortGI = false;
+
+ RT_TRACE(COMP_RATE, "%s: macid:%d MimoPs=%d WirelessMode=0x%x bCurTxBW40MHz=%d rssid_level=%d\n",__FUNCTION__, macId, MimoPs, WirelessMode,bCurTxBW40MHz, rssi_level);
+ rtl8192_config_rate(dev, (u16*)&RateSet);
+ RateSet |= (*(u16*)(pMcsRate)) << 12;
+ ratr_bitmap = RateSet;
+
+ switch (WirelessMode){
+ case WIRELESS_MODE_B:
+ band |= WIRELESS_11B;
+ ratr_bitmap &= 0x0000000d;
+ break;
+ case WIRELESS_MODE_G:
+ case (WIRELESS_MODE_G |WIRELESS_MODE_B):
+ band |= (WIRELESS_11G | WIRELESS_11B);
+
+ if(rssi_level == 1)
+ ratr_bitmap &= 0x00000f00;
+ else if(rssi_level == 2)
+ ratr_bitmap &= 0x00000ff0;
+ else
+ ratr_bitmap &= 0x00000ff5;
+ break;
+ case WIRELESS_MODE_A:
+ band |= WIRELESS_11A;
+ ratr_bitmap &= 0x00000ff0;
+ break;
+ case WIRELESS_MODE_N_24G:
+ case WIRELESS_MODE_N_5G:
+ {
+ band |= (WIRELESS_11N| WIRELESS_11G| WIRELESS_11B);
+ if(MimoPs == MIMO_PS_STATIC){
+ if(rssi_level == 1)
+ ratr_bitmap &= 0x00070000;
+ else if(rssi_level == 2)
+ ratr_bitmap &= 0x0007f000;
+ else
+ ratr_bitmap &= 0x0007f005;
+ }else{
+ if (priv->rf_type == RF_1T2R || priv->rf_type == RF_1T1R){
+ if (bCurTxBW40MHz){
+ if(rssi_level == 1)
+ ratr_bitmap &= 0x000f0000;
+ else if(rssi_level == 2)
+ ratr_bitmap &= 0x000ff000;
+ else
+ ratr_bitmap &= 0x000ff015;
+ }else{
+ if(rssi_level == 1)
+ ratr_bitmap &= 0x000f0000;
+ else if(rssi_level == 2)
+ ratr_bitmap &= 0x000ff000;
+ else
+ ratr_bitmap &= 0x000ff005;
+ }
+ }else{
+ if (bCurTxBW40MHz){
+ if(rssi_level == 1)
+ ratr_bitmap &= 0x0f0f0000;
+ else if(rssi_level == 2)
+ ratr_bitmap &= 0x0f0ff000;
+ else
+ ratr_bitmap &= 0x0f0ff015;
+ }else{
+ if(rssi_level == 1)
+ ratr_bitmap &= 0x0f0f0000;
+ else if(rssi_level == 2)
+ ratr_bitmap &= 0x0f0ff000;
+ else
+ ratr_bitmap &= 0x0f0ff005;
+ }
+ }
+ }
+ if( (pHTInfo->bCurTxBW40MHz && pHTInfo->bCurShortGI40MHz) ||
+ (!pHTInfo->bCurTxBW40MHz && pHTInfo->bCurShortGI20MHz)){
+ if(macId == 0)
+ bShortGI = true;
+ else
+ bShortGI = false;
+ }
+ break;
+ }
+ default:
+ band |= (WIRELESS_11N| WIRELESS_11G| WIRELESS_11B);
+
+ if(priv->rf_type == RF_1T2R)
+ ratr_bitmap &= 0x000ff0ff;
+ else
+ ratr_bitmap &= 0x0f0ff0ff;
+ break;
+ }
+
+ if (priv->card_8192_version >= VERSION_8192S_BCUT)
+ ratr_bitmap &= 0x0FFFFFFF;
+ else if (priv->card_8192_version == VERSION_8192S_ACUT)
+ ratr_bitmap &= 0x0FFFFFF0;
+
+ if(bShortGI){
+ ratr_bitmap |= 0x10000000;
+ ratr_value = (ratr_bitmap>>12);
+ for(shortGI_rate=15; shortGI_rate>0; shortGI_rate--){
+ if((1<<shortGI_rate) & ratr_value)
+ break;
+ }
+ shortGI_rate = (shortGI_rate<<12)|(shortGI_rate<<8)|(shortGI_rate<<4)|(shortGI_rate);
+ write_nic_byte(dev, SG_RATE, shortGI_rate);
+ }
+
+ if(macId == 0)
+ {
+ if(priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom)
+ ratr_bitmap &= 0xfffffff0;
+ if(priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_SHORT_GI)
+ ratr_bitmap &=0x0fffffff;
+ }
+ mask |= (bMulticast ? 1 : 0)<<9 | (macId & 0x1f)<<4 | (band & 0xf);
+
+ RT_TRACE(COMP_RATE, "%s(): mask = %x, bitmap = %x\n",__func__, mask, ratr_bitmap);
+ write_nic_dword(dev, 0x2c4, ratr_bitmap);
+ write_nic_dword(dev, WFM5, (FW_RA_UPDATE_MASK | (mask << 8)));
+}
+
+u8 HalSetSysClk8192SE( struct net_device *dev, u8 Data)
+{
+#if 0
+ write_nic_byte(dev, (SYS_CLKR + 1), Data);
+ udelay(200);;
+ return 1;
+#else
+ {
+ u8 WaitCount = 100;
+ bool bResult = false;
+
+#ifdef TO_DO_LIST
+ RT_DISABLE_FUNC(Adapter, DF_IO_BIT);
+
+ do
+ {
+ if(pDevice->IOCount == 0)
+ break;
+ delay_us(10);
+ }while(WaitCount -- > 0);
+
+ if(WaitCount == 0)
+ {
+ RT_ENABLE_FUNC(Adapter, DF_IO_BIT);
+ RT_TRACE(COMP_POWER, DBG_WARNING, ("HalSetSysClk8192SE(): Wait too long! Skip ....\n"));
+ return false;
+ }
+ #endif
+ write_nic_byte(dev,SYS_CLKR + 1,Data);
+
+ udelay(400);
+
+
+ {
+ u8 TmpValue;
+ TmpValue=read_nic_byte(dev,SYS_CLKR + 1);
+ bResult = ((TmpValue&BIT7)== (Data & BIT7));
+ if((Data &(BIT6|BIT7)) == false)
+ {
+ WaitCount = 100;
+ TmpValue = 0;
+ while(1)
+ {
+ WaitCount--;
+ TmpValue=read_nic_byte(dev, SYS_CLKR + 1);
+ if((TmpValue &BIT6))
+ break;
+ printk("wait for BIT6 return value %x\n",TmpValue);
+ if(WaitCount==0)
+ break;
+ udelay(10);
+ }
+ if(WaitCount == 0)
+ bResult = false;
+ else
+ bResult = true;
+ }
+ }
+#ifdef TO_DO_LIST
+ RT_ENABLE_FUNC(Adapter, DF_IO_BIT);
+#endif
+ RT_TRACE(COMP_PS,"HalSetSysClk8192SE():Value = %02X, return: %d\n", Data, bResult);
+ return bResult;
+ }
+#endif
+}
+
+static u8 LegacyRateSet[12] = {0x02 , 0x04 , 0x0b , 0x16 , 0x0c , 0x12 , 0x18 , 0x24 , 0x30 , 0x48 , 0x60 , 0x6c};
+void GetHwReg8192SE(struct net_device *dev,u8 variable,u8* val)
+{
+ struct r8192_priv* priv = rtllib_priv(dev);
+ switch(variable)
+ {
+ case HW_VAR_INIT_TX_RATE:
+ {
+ u8 RateIdx = read_nic_byte(dev, TX_RATE_REG);
+ if(RateIdx < 76)
+ *((u8*)(val)) = (RateIdx<12)?(LegacyRateSet[RateIdx]):((RateIdx-12)|0x80);
+ else
+ *((u8*)(val)) = 0;
+ }
+ break;
+
+ case HW_VAR_RCR:
+ *((u32*)(val)) = priv->ReceiveConfig;
+ break;
+
+ default:
+ break;
+ }
+}
+
+void SetHwReg8192SE(struct net_device *dev,u8 variable,u8* val)
+{
+ struct r8192_priv* priv = rtllib_priv(dev);
+ switch(variable)
+ {
+ case HW_VAR_AMPDU_MIN_SPACE:
+ {
+ u8 MinSpacingToSet;
+ u8 SecMinSpace;
+
+ MinSpacingToSet = *((u8*)val);
+ if(MinSpacingToSet <= 7)
+ {
+ if((priv->rtllib->current_network.capability & WLAN_CAPABILITY_PRIVACY) == 0)
+ SecMinSpace = 0;
+ else if (priv->rtllib->rtllib_ap_sec_type &&
+ (priv->rtllib->rtllib_ap_sec_type(priv->rtllib)
+ & (SEC_ALG_WEP|SEC_ALG_TKIP)))
+ SecMinSpace = 7;
+ else
+ SecMinSpace = 1;
+
+ if(MinSpacingToSet < SecMinSpace)
+ MinSpacingToSet = SecMinSpace;
+ priv->rtllib->MinSpaceCfg = ((priv->rtllib->MinSpaceCfg&0xf8) |MinSpacingToSet);
+ RT_TRACE(COMP_MLME, "Set HW_VAR_AMPDU_MIN_SPACE: %#x\n", priv->rtllib->MinSpaceCfg);
+ write_nic_byte(dev, AMPDU_MIN_SPACE, priv->rtllib->MinSpaceCfg);
+ }
+ }
+ break;
+ case HW_VAR_SHORTGI_DENSITY:
+ {
+ u8 DensityToSet;
+
+ DensityToSet = *((u8*)val);
+ priv->rtllib->MinSpaceCfg|= (DensityToSet<<3);
+ RT_TRACE(COMP_MLME, "Set HW_VAR_SHORTGI_DENSITY: %#x\n", priv->rtllib->MinSpaceCfg);
+ write_nic_byte(dev, AMPDU_MIN_SPACE, priv->rtllib->MinSpaceCfg);
+ break;
+ }
+ case HW_VAR_AMPDU_FACTOR:
+ {
+ u8 FactorToSet;
+ u8 RegToSet;
+ u8 FactorLevel[18] = {2, 4, 4, 7, 7, 13, 13, 13, 2, 7, 7, 13, 13, 15, 15, 15, 15, 0};
+ u8 index = 0;
+
+ FactorToSet = *((u8*)val);
+ if(FactorToSet <= 3)
+ {
+ FactorToSet = (1<<(FactorToSet + 2));
+ if(FactorToSet>0xf)
+ FactorToSet = 0xf;
+
+ for(index=0; index<17; index++)
+ {
+ if(FactorLevel[index] > FactorToSet)
+ FactorLevel[index] = FactorToSet;
+ }
+
+ for(index=0; index<8; index++)
+ {
+ RegToSet = ((FactorLevel[index*2]) | (FactorLevel[index*2+1]<<4));
+ write_nic_byte(dev, AGGLEN_LMT_L+index, RegToSet);
+ }
+ RegToSet = ((FactorLevel[16]) | (FactorLevel[17]<<4));
+ write_nic_byte(dev, AGGLEN_LMT_H, RegToSet);
+
+ RT_TRACE(COMP_MLME, "Set HW_VAR_AMPDU_FACTOR: %#x\n", FactorToSet);
+ }
+ }
+ break;
+ case HW_VAR_BASIC_RATE:
+ {
+ u16 BrateCfg = 0;
+ u8 RateIndex = 0;
+
+
+ rtl8192_config_rate(dev, &BrateCfg);
+
+ if (priv->card_8192_version == VERSION_8192S_ACUT)
+ priv->basic_rate = BrateCfg = BrateCfg & 0x150;
+ else if (priv->card_8192_version == VERSION_8192S_BCUT)
+ priv->basic_rate = BrateCfg = BrateCfg & 0x15f;
+
+ if(priv->rtllib->pHTInfo->IOTPeer == HT_IOT_PEER_CISCO && ((BrateCfg &0x150)==0))
+ {
+ BrateCfg |=0x010;
+ }
+ if(priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom)
+ {
+ BrateCfg &= 0x1f0;
+ printk("HW_VAR_BASIC_RATE, HT_IOT_ACT_WA_IOT_Broadcom, BrateCfg = 0x%x\n", BrateCfg);
+ }
+ write_nic_byte(dev, RRSR, BrateCfg&0xff);
+ write_nic_byte(dev, RRSR+1, (BrateCfg>>8)&0xff);
+
+ while(BrateCfg > 0x1)
+ {
+ BrateCfg = (BrateCfg >> 1);
+ RateIndex++;
+ }
+ write_nic_byte(dev, INIRTSMCS_SEL, RateIndex);
+ }
+ break;
+ case HW_VAR_RETRY_LIMIT:
+ {
+ u8 RetryLimit = ((u8*)(val))[0];
+
+ priv->ShortRetryLimit = RetryLimit;
+ priv->LongRetryLimit = RetryLimit;
+
+ write_nic_word(dev, RETRY_LIMIT,
+ RetryLimit << RETRY_LIMIT_SHORT_SHIFT | \
+ RetryLimit << RETRY_LIMIT_LONG_SHIFT);
+ }
+ break;
+ case HW_VAR_BEACON_INTERVAL:
+ {
+ write_nic_word(dev, BCN_INTERVAL, *((u16*)val));
+ PHY_SetBeaconHwReg(dev, *((u16*)val));
+ }
+ break;
+
+ case HW_VAR_BSSID:
+ write_nic_dword(dev, BSSIDR, ((u32*)(val))[0]);
+ write_nic_word(dev, BSSIDR+4, ((u16*)(val+4))[0]);
+ break;
+
+ case HW_VAR_MEDIA_STATUS:
+ {
+ RT_OP_MODE OpMode = *((RT_OP_MODE *)(val));
+ LED_CTL_MODE LedAction = LED_CTL_NO_LINK;
+ u8 btMsr = read_nic_byte(dev, MSR);
+
+ btMsr &= 0xfc;
+ switch(OpMode)
+ {
+ case RT_OP_MODE_INFRASTRUCTURE:
+ btMsr |= MSR_INFRA;
+ LedAction = LED_CTL_LINK;
+ break;
+
+ case RT_OP_MODE_IBSS:
+ btMsr |= MSR_ADHOC;
+ break;
+
+ case RT_OP_MODE_AP:
+ btMsr |= MSR_AP;
+ LedAction = LED_CTL_LINK;
+ break;
+
+ default:
+ btMsr |= MSR_NOLINK;
+ break;
+ }
+
+ write_nic_byte(dev, MSR, btMsr);
+
+ {
+ u32 temp = read_nic_dword(dev, TCR);
+ write_nic_dword(dev, TCR, temp&(~BIT8));
+ write_nic_dword(dev, TCR, temp|BIT8);
+ }
+ priv->rtllib->LedControlHandler(dev, LedAction);
+ }
+ break;
+
+ case HW_VAR_RCR:
+ {
+ write_nic_dword(dev, RCR,((u32*)(val))[0]);
+ priv->ReceiveConfig = ((u32*)(val))[0];
+ }
+ break;
+
+ case HW_VAR_CECHK_BSSID:
+ {
+ u32 RegRCR, Type;
+
+ Type = ((u8*)(val))[0];
+ priv->rtllib->GetHwRegHandler(dev, HW_VAR_RCR, (u8*)(&RegRCR));
+
+#if (RTL92SE_FPGA_VERIFY == 1)
+ RegRCR &= (~RCR_CBSSID);
+#else
+#if 1
+ if (Type == true)
+ RegRCR |= (RCR_CBSSID);
+ else if (Type == false)
+ RegRCR &= (~RCR_CBSSID);
+#endif
+ priv->rtllib->SetHwRegHandler( dev, HW_VAR_RCR, (u8*)(&RegRCR) );
+#endif
+ }
+ break;
+
+ case HW_VAR_SLOT_TIME:
+ {
+
+ priv->slot_time = val[0];
+ write_nic_byte(dev, SLOT_TIME, val[0]);
+
+#ifdef MERGE_TO_DO
+ if(priv->rtllib->current_network.qos_data.supported !=0)
+ {
+ for(eACI = 0; eACI < AC_MAX; eACI++)
+ {
+ priv->rtllib->SetHwRegHandler(dev, HW_VAR_AC_PARAM, GET_WMM_PARAM_ELE_SINGLE_AC_PARAM(pStaQos->WMMParamEle, eACI) );
+ }
+ }
+ else
+ {
+ u8 u1bAIFS = aSifsTime + (2 * priv->slot_time);
+
+ write_nic_byte(dev, REG_EDCA_VO_PARAM, u1bAIFS);
+ write_nic_byte(dev, REG_EDCA_VI_PARAM, u1bAIFS);
+ write_nic_byte(dev, REG_EDCA_BE_PARAM, u1bAIFS);
+ write_nic_byte(dev, REG_EDCA_BK_PARAM, u1bAIFS);
+ }
+#endif
+ }
+ break;
+
+ case HW_VAR_ACK_PREAMBLE:
+ {
+ u8 regTmp;
+ priv->short_preamble = (bool)(*(u8*)val );
+ regTmp = (priv->nCur40MhzPrimeSC)<<5;
+ if(priv->short_preamble)
+ regTmp |= 0x80;
+
+ write_nic_byte(dev, RRSR+2, regTmp);
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+
+void SetBeaconRelatedRegisters8192SE(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ struct rtllib_network *net = &priv->rtllib->current_network;
+ u16 BcnTimeCfg = 0;
+ u16 BcnCW = 6, BcnIFS = 0xf;
+ u16 AtimWindow = 2;
+ int OpMode = priv->rtllib->iw_mode;
+ u16 BcnInterval = net->beacon_interval;
+ write_nic_word(dev, ATIMWND, AtimWindow);
+
+ write_nic_word(dev, BCN_INTERVAL, BcnInterval);
+ PHY_SetBeaconHwReg( dev, BcnInterval);
+
+ write_nic_word(dev, BCN_DRV_EARLY_INT, 10<<4);
+
+ write_nic_word(dev, BCN_DMATIME, 256);
+
+ write_nic_byte(dev, BCN_ERR_THRESH, 100);
+
+
+ switch(OpMode)
+ {
+ case IW_MODE_ADHOC:
+ BcnTimeCfg |= (BcnCW<<BCN_TCFG_CW_SHIFT);
+ break;
+ default:
+ printk("Invalid Operation Mode!!\n");
+ break;
+ }
+
+ BcnTimeCfg |= BcnIFS<<BCN_TCFG_IFS;
+
+
+ {
+ u8 u1Temp = (u8)(BcnInterval);
+ write_nic_dword(dev, WFM5, 0xF1000000 |((u16)( u1Temp) << 8));
+ ChkFwCmdIoDone(dev);
+ }
+}
+
+void UpdateHalRATRTableIndex(struct net_device *dev)
+{
+ struct r8192_priv* priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+ u8 bitmap = 0;
+ int i;
+
+ for (i = 0; i < PEER_MAX_ASSOC; i++) {
+ if (NULL != ieee->peer_assoc_list[i]) {
+ bitmap |= BIT0 << ieee->peer_assoc_list[i]->ratr_index;
+ }
+ }
+
+ priv->RATRTableBitmap = bitmap;
+ return;
+}
+
+bool rtl8192se_check_ht_cap(struct net_device* dev, struct sta_info *sta,
+ struct rtllib_network* net)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+ PHT_CAPABILITY_ELE pHTCapIE = NULL;
+ PHT_INFORMATION_ELE pPeerHTInfo = NULL;
+ u8 ExtChlOffset=0;
+ u8 *pMcsFilter = NULL;
+ u16 nMaxAMSDUSize = 0;
+ static u8 EWC11NHTCap[] = {0x00, 0x90, 0x4c, 0x33};
+ static u8 EWC11NHTInfo[] = {0x00, 0x90, 0x4c, 0x34};
+
+ if ((ieee->mode != WIRELESS_MODE_N_24G) &&
+ (ieee->mode != WIRELESS_MODE_N_5G)) {
+ if (net->mode == IEEE_N_5G)
+ sta->wireless_mode = IEEE_A;
+ else if (net->mode == IEEE_N_24G) {
+ if (net->rates_ex_len > 0)
+ sta->wireless_mode = IEEE_G;
+ else
+ sta->wireless_mode = IEEE_B;
+ } else
+ sta->wireless_mode = net->mode;
+ printk("%s():i am G mode ,do not need to check Cap IE. wireless_mode=0x%x\n",
+ __FUNCTION__, sta->wireless_mode);
+ return false;
+ }
+ if ((ieee->mode ==WIRELESS_MODE_N_24G)
+ && ieee->pHTInfo->bRegSuppCCK== false) {
+ if(net->mode == IEEE_B){
+ sta->wireless_mode = net->mode;
+ printk("%s(): peer is B MODE return\n", __FUNCTION__);
+ return false;
+ }
+ }
+ if(net->bssht.bdHTCapLen != 0)
+ {
+ sta->htinfo.bEnableHT = true;
+ sta->htinfo.bCurRxReorderEnable = ieee->pHTInfo->bRegRxReorderEnable;
+ if(net->mode == IEEE_A)
+ sta->wireless_mode = IEEE_N_5G;
+ else
+ sta->wireless_mode = IEEE_N_24G;
+ } else {
+ printk("%s(): have no HTCap IE, mode is %d\n",__FUNCTION__,net->mode);
+ sta->wireless_mode = net->mode;
+ sta->htinfo.bEnableHT = false;
+ return true;
+ }
+
+ if (!memcmp(net->bssht.bdHTCapBuf ,EWC11NHTCap, sizeof(EWC11NHTCap)))
+ pHTCapIE = (PHT_CAPABILITY_ELE)(&(net->bssht.bdHTCapBuf[4]));
+ else
+ pHTCapIE = (PHT_CAPABILITY_ELE)(net->bssht.bdHTCapBuf);
+
+ if (!memcmp(net->bssht.bdHTInfoBuf, EWC11NHTInfo, sizeof(EWC11NHTInfo)))
+ pPeerHTInfo = (PHT_INFORMATION_ELE)(&net->bssht.bdHTInfoBuf[4]);
+ else
+ pPeerHTInfo = (PHT_INFORMATION_ELE)(net->bssht.bdHTInfoBuf);
+
+ ExtChlOffset=((ieee->pHTInfo->bRegBW40MHz == false)?HT_EXTCHNL_OFFSET_NO_EXT:
+ (ieee->current_network.channel<=6)?
+ HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ printk("******** STA wireless mode %d\n", sta->wireless_mode);
+
+ if (ieee->pHTInfo->bRegSuppCCK)
+ sta->htinfo.bSupportCck = (pHTCapIE->DssCCk==1)?true:false;
+ else {
+ if(pHTCapIE->DssCCk==1)
+ return false;
+ }
+
+ sta->htinfo.MimoPs= pHTCapIE->MimoPwrSave;
+
+ printk("******** PEER MP MimoPs %d\n", sta->htinfo.MimoPs);
+ if(ieee->pHTInfo->bRegBW40MHz)
+ sta->htinfo.bBw40MHz= (pHTCapIE->ChlWidth==1)?true:false;
+ else
+ sta->htinfo.bBw40MHz = false;
+
+ if((pPeerHTInfo->ExtChlOffset) != ExtChlOffset)
+ sta->htinfo.bBw40MHz = false;
+
+ ieee->Peer_bCurBW40M = sta->htinfo.bBw40MHz;
+ printk("******** PEER MP bCurBW40M %d\n", sta->htinfo.bBw40MHz);
+ if(ieee->pHTInfo->bRegBW40MHz == true)
+ sta->htinfo.bCurTxBW40MHz = sta->htinfo.bBw40MHz;
+
+ printk("******** PEER MP bCurTxBW40MHz %d\n", sta->htinfo.bCurTxBW40MHz);
+ sta->htinfo.bCurShortGI20MHz=
+ ((ieee->pHTInfo->bRegShortGI20MHz)?((pHTCapIE->ShortGI20Mhz==1)?true:false):false);
+ sta->htinfo.bCurShortGI40MHz=
+ ((ieee->pHTInfo->bRegShortGI40MHz)?((pHTCapIE->ShortGI40Mhz==1)?true:false):false);
+
+ printk("******** PEER MP bCurShortGI20MHz %d, bCurShortGI40MHz %d\n",sta->htinfo.bCurShortGI20MHz,sta->htinfo.bCurShortGI40MHz);
+ nMaxAMSDUSize = (pHTCapIE->MaxAMSDUSize==0)?3839:7935;
+ if(ieee->pHTInfo->nAMSDU_MaxSize >= nMaxAMSDUSize)
+ sta->htinfo.AMSDU_MaxSize = nMaxAMSDUSize;
+ else
+ sta->htinfo.AMSDU_MaxSize = ieee->pHTInfo->nAMSDU_MaxSize;
+
+ printk("****************AMSDU_MaxSize=%d\n",sta->htinfo.AMSDU_MaxSize);
+
+ if(ieee->pHTInfo->AMPDU_Factor >= pHTCapIE->MaxRxAMPDUFactor)
+ sta->htinfo.AMPDU_Factor = pHTCapIE->MaxRxAMPDUFactor;
+ else
+ sta->htinfo.AMPDU_Factor = ieee->pHTInfo->AMPDU_Factor;
+
+ if(ieee->pHTInfo->MPDU_Density >= pHTCapIE->MPDUDensity)
+ sta->htinfo.MPDU_Density = pHTCapIE->MPDUDensity;
+ else
+ sta->htinfo.MPDU_Density = ieee->pHTInfo->MPDU_Density;
+
+ HTFilterMCSRate(ieee, pHTCapIE->MCS, sta->htinfo.McsRateSet);
+ if(sta->htinfo.MimoPs == 0)
+ pMcsFilter = MCS_FILTER_1SS;
+ else
+ pMcsFilter = MCS_FILTER_ALL;
+
+ sta->htinfo.HTHighestOperaRate = HTGetHighestMCSRate(ieee, sta->htinfo.McsRateSet, pMcsFilter);
+ printk("******** PEER MP HTHighestOperaRate %x\n",sta->htinfo.HTHighestOperaRate);
+
+ return true;
+
+}
+
+#if LINUX_VERSION_CODE >=KERNEL_VERSION(2,6,20)
+void rtl8192se_check_tsf_wq(struct work_struct * work)
+{
+ struct delayed_work *dwork = container_of(work,struct delayed_work,work);
+ struct rtllib_device *ieee = container_of(dwork, struct rtllib_device, check_tsf_wq);
+ struct net_device *dev = ieee->dev;
+#else
+void rtl8192se_check_tsf_wq(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+#endif
+ u32 CurrTsfHigh,CurrTsfLow;
+ u32 TargetTsfHigh,TargetTsfLow;
+
+ CurrTsfHigh = read_nic_dword(dev, TSFR+4);
+ CurrTsfLow = (u32)(ieee->CurrTsf & 0xffff);
+ TargetTsfHigh = (u32)(ieee->TargetTsf >> 32);
+ TargetTsfLow = (u32)(ieee->TargetTsf & 0xffff);
+
+ printk("Current TSF Low = %x, Hight = %x\n",CurrTsfLow,CurrTsfHigh);
+ printk("Target TSF Low = %x, Hight = %x\n",TargetTsfLow,TargetTsfHigh);
+
+ ieee->CurrTsf |= (u64)CurrTsfHigh << 32;
+
+ if(ieee->CurrTsf < ieee->TargetTsf)
+ {
+ down(&ieee->wx_sem);
+
+ rtllib_stop_protocol(ieee,true);
+
+ ieee->ssid_set = 1;
+
+ rtllib_start_protocol(ieee);
+
+ up(&ieee->wx_sem);
+ }
+}
+
+#if LINUX_VERSION_CODE >=KERNEL_VERSION(2,6,20)
+void rtl8192se_update_assoc_sta_info_wq(struct work_struct * work)
+{
+ struct delayed_work *dwork = container_of(work,struct delayed_work,work);
+ struct rtllib_device *ieee = container_of(dwork, struct rtllib_device, update_assoc_sta_info_wq);
+ struct net_device *dev = ieee->dev;
+#else
+void rtl8192se_update_assoc_sta_info_wq(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+#endif
+ struct sta_info * pEntry = NULL;
+ int idx = 0;
+ for(idx=0; idx<PEER_MAX_ASSOC; idx++)
+ {
+ pEntry = ieee->peer_assoc_list[idx];
+ if(NULL != pEntry)
+ {
+ u8 * addr = pEntry->macaddr;
+
+ if(ieee->bUseRAMask){
+ if((pEntry->wireless_mode & WIRELESS_MODE_N_24G) || (pEntry->wireless_mode & WIRELESS_MODE_N_5G))
+ pEntry->ratr_index = RATR_INX_WIRELESS_NGB;
+ else if(pEntry->wireless_mode & WIRELESS_MODE_G)
+ pEntry->ratr_index = RATR_INX_WIRELESS_GB;
+ else if(pEntry->wireless_mode & WIRELESS_MODE_B)
+ pEntry->ratr_index = RATR_INX_WIRELESS_B;
+ ieee->UpdateHalRAMaskHandler(dev,
+ false,
+ pEntry->aid+1,
+ pEntry->htinfo.MimoPs,
+ pEntry->wireless_mode,
+ pEntry->htinfo.bCurTxBW40MHz,
+ 0);
+ }
+ else
+ rtl8192se_update_ratr_table(dev,pEntry->htinfo.McsRateSet,pEntry);
+ printk("%s: STA:"MAC_FMT", aid:%d, wireless_mode=0x%x ratr_index=%d\n",__FUNCTION__,MAC_ARG(addr), pEntry->aid, pEntry->wireless_mode, pEntry->ratr_index);
+ }
+ }
+ if(!ieee->bUseRAMask)
+ UpdateHalRATRTableIndex(dev);
+
+ if(ieee->Peer_bCurBW40M)
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ else
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+}
+
+bool
+rtl8192se_RxCommandPacketHandle(
+ struct net_device *dev,
+ struct sk_buff* skb,
+ rx_desc *pdesc)
+{
+ u8* pRxCmdHeader;
+ u8* pCmdContent;
+ u16 total_length, offset;
+ u16 RxCmdLen;
+ u8 RxCmdElementID, RxCmdSeq;
+ bool RxCmdContinue;
+
+#if 0
+ if ((pRfd->queue_id != CMPK_RX_QUEUE_ID) || (pRfd == NULL))
+ {
+ return 0;
+ }
+#endif
+
+
+#if 0
+ if(pdesc->MACID == 0x1e)
+ {
+ return 0;
+ }
+#endif
+
+ total_length = pdesc->Length;
+ pRxCmdHeader = skb->data;
+ offset = 0;
+
+ do
+ {
+ RxCmdLen = (u16)GET_C2H_CMD_CMD_LEN(pRxCmdHeader + offset);
+ RxCmdElementID = (u8)GET_C2H_CMD_ELEMENT_ID(pRxCmdHeader + offset);
+ RxCmdSeq = (u8)GET_C2H_CMD_CMD_SEQ(pRxCmdHeader + offset);
+ RxCmdContinue = (bool)GET_C2H_CMD_CONTINUE(pRxCmdHeader + offset);
+ pCmdContent = (u8*)GET_C2H_CMD_CONTENT(pRxCmdHeader + offset);
+
+ if((offset + C2H_RX_CMD_HDR_LEN + RxCmdLen) > total_length)
+ {
+ printk("Wrong C2H Cmd length!\n");
+ break;
+ }
+
+ RT_TRACE(COMP_CMD, "RxCmdLen = 0x%x, RxCmdElementID = 0x%x, RxCmdSeq = 0x%x, RxCmdContinue = 0x%x\n",
+ RxCmdLen, RxCmdElementID, RxCmdSeq, RxCmdContinue);
+ RT_TRACE(COMP_CMD, "Rx CMD Packet Hex Data :%x\n", total_length);
+ RT_TRACE(COMP_CMD, "Rx CMD Content Hex Data :%x:%x\n", *pCmdContent, RxCmdLen);
+
+ switch(RxCmdElementID)
+ {
+ case HAL_FW_C2H_CMD_C2HFEEDBACK:
+ {
+ switch(GET_C2H_CMD_FEEDBACK_ELEMENT_ID(pCmdContent))
+ {
+ case HAL_FW_C2H_CMD_C2HFEEDBACK_CCX_PER_PKT_RPT:
+ {
+ RT_TRACE(COMP_CMD, "HAL_FW_C2H_CMD_C2HFEEDBACK_CCX_PER_PKT_RPT FW_DBG CMD Hex:%x\n", total_length);
+ }
+ break;
+
+ case HAL_FW_C2H_CMD_C2HFEEDBACK_DTM_TX_STATISTICS_RPT:
+ break;
+
+ default:
+ break;
+ }
+ }
+ break;
+
+ case HAL_FW_C2H_CMD_C2HDBG:
+ RT_TRACE(COMP_CMD, "rtl8192se_RxCommandPacketHandle(): %x:%x<*** FW_DBG CMD String ***>\n", *pCmdContent, RxCmdLen);
+ break;
+
+ case HAL_FW_C2H_CMD_BT_State:
+ {
+ }
+ break;
+ case HAL_FW_C2H_CMD_BT_Service:
+ {
+ }
+ break;
+ case HAL_FW_C2H_CMD_SurveyDone:
+ {
+ rtl8192se_rx_surveydone_cmd(dev);
+ }
+ break;
+ default:
+ RT_TRACE(COMP_CMD, "rtl8192se_RxCommandPacketHandle(): Receive unhandled C2H CMD (%d)\n", RxCmdElementID);
+ break;
+ }
+
+ offset += (C2H_RX_CMD_HDR_LEN + N_BYTE_ALIGMENT(RxCmdLen, 8));
+
+ if(!RxCmdContinue || ((offset + C2H_RX_CMD_HDR_LEN) > total_length))
+ {
+ break;
+ }
+ }while(true);
+ RT_TRACE(COMP_RECV, "RxCommandPacketHandle8190Pci(): It is a command packet\n");
+
+ return 1;
+}
+
+void
+rtl8192se_InitializeVariables(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if (priv->rf_type == RF_1T1R)
+ strcpy(priv->nick, "rtl8191SEVA1");
+ else if (priv->rf_type == RF_1T2R)
+ strcpy(priv->nick, "rtl8191SEVA2");
+ else
+ strcpy(priv->nick, "rtl8192SE");
+
+#ifdef _ENABLE_SW_BEACON
+ priv->rtllib->softmac_features = IEEE_SOFTMAC_SCAN |
+ IEEE_SOFTMAC_ASSOCIATE | IEEE_SOFTMAC_PROBERQ |
+ IEEE_SOFTMAC_PROBERS | IEEE_SOFTMAC_TX_QUEUE |
+ IEEE_SOFTMAC_BEACONS;
+#else
+#ifdef _RTL8192_EXT_PATCH_
+ priv->rtllib->softmac_features = IEEE_SOFTMAC_SCAN |
+ IEEE_SOFTMAC_ASSOCIATE | IEEE_SOFTMAC_PROBERQ |
+ IEEE_SOFTMAC_PROBERS | IEEE_SOFTMAC_TX_QUEUE /* |
+ IEEE_SOFTMAC_BEACONS*/;
+#else
+ priv->rtllib->softmac_features = IEEE_SOFTMAC_SCAN |
+ IEEE_SOFTMAC_ASSOCIATE | IEEE_SOFTMAC_PROBERQ |
+ IEEE_SOFTMAC_PROBERS | IEEE_SOFTMAC_TX_QUEUE /* |
+ IEEE_SOFTMAC_BEACONS*/;
+#endif
+#endif
+
+ priv->rtllib->tx_headroom = 0;
+
+ priv->ShortRetryLimit = 0x30;
+ priv->LongRetryLimit = 0x30;
+
+ priv->EarlyRxThreshold = 7;
+ priv->pwrGroupCnt = 0;
+
+ priv->bIgnoreSilentReset = false;
+ priv->enable_gpio0 = 0;
+
+ priv->TransmitConfig = 0;
+
+ priv->ReceiveConfig =
+ RCR_APPFCS | RCR_APWRMGT | /*RCR_ADD3 |*/
+ RCR_AMF | RCR_ADF | RCR_APP_MIC | RCR_APP_ICV |
+ RCR_AICV | RCR_ACRC32 |
+ RCR_AB | RCR_AM |
+ RCR_APM |
+ /*RCR_AAP |*/
+ RCR_APP_PHYST_STAFF | RCR_APP_PHYST_RXFF |
+ (priv->EarlyRxThreshold<<RCR_FIFO_OFFSET) ;
+
+#if 0
+ priv->irq_mask[0] =
+ (IMR_ROK | IMR_VODOK | IMR_VIDOK | IMR_BEDOK | IMR_BKDOK | \
+ IMR_HCCADOK | IMR_MGNTDOK | IMR_COMDOK | IMR_HIGHDOK | \
+ IMR_BDOK | IMR_RXCMDOK | /*IMR_TIMEOUT0 |*/ IMR_RDU | IMR_RXFOVW/* | \
+ IMR_BcnInt| IMR_TXFOVW | IMR_TBDOK | IMR_TBDER*/);
+#else
+ priv->irq_mask[0] =
+ (IMR_ROK | IMR_VODOK | IMR_VIDOK | IMR_BEDOK | IMR_BKDOK | \
+ IMR_HCCADOK | IMR_MGNTDOK | IMR_COMDOK | IMR_HIGHDOK | \
+ IMR_BDOK | IMR_RXCMDOK | /*IMR_TIMEOUT0 |*/ IMR_RDU | IMR_RXFOVW | \
+ IMR_BcnInt/*| IMR_TXFOVW*/ /*| IMR_TBDOK | IMR_TBDER*/);
+#endif
+ priv->irq_mask[1] = 0;/* IMR_TBDOK | IMR_TBDER*/
+
+
+ priv->MidHighPwrTHR_L1 = 0x3B;
+ priv->MidHighPwrTHR_L2 = 0x40;
+ priv->PwrDomainProtect = false;
+
+ if (!(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){
+ if (!priv->scan_cmd) {
+ priv->scan_cmd = kmalloc(sizeof(H2C_SITESURVEY_PARA) +
+ RTL_MAX_SCAN_SIZE, GFP_KERNEL);
+ }
+ }
+}
+
+void rtl8192se_EnableInterrupt(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ priv->irq_enabled = 1;
+
+#ifdef RTL8192CE
+ write_nic_dword(dev, REG_HIMR, priv->irq_mask[0]&0xFFFFFFFF);
+#else
+ write_nic_dword(dev,INTA_MASK, priv->irq_mask[0]);
+#endif
+
+#ifdef RTL8192SE
+ write_nic_dword(dev,INTA_MASK+4, priv->irq_mask[1]&0x3F);
+#endif
+
+}
+
+void rtl8192se_DisableInterrupt(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+#ifdef RTL8192CE
+ write_nic_dword(dev, REG_HIMR, IMR8190_DISABLED);
+#else
+ write_nic_dword(dev,INTA_MASK,0);
+#endif
+
+#ifdef RTL8192SE
+ write_nic_dword(dev,INTA_MASK + 4,0);
+#endif
+ priv->irq_enabled = 0;
+}
+
+void rtl8192se_ClearInterrupt(struct net_device *dev)
+{
+ u32 tmp = 0;
+#ifdef RTL8192CE
+ tmp = read_nic_dword(dev, REG_HISR);
+ write_nic_dword(dev, REG_HISR, tmp);
+#else
+ tmp = read_nic_dword(dev, ISR);
+ write_nic_dword(dev, ISR, tmp);
+#endif
+
+#ifdef RTL8192SE
+ tmp = read_nic_dword(dev, ISR+4);
+ write_nic_dword(dev, ISR+4, tmp);
+#endif
+}
+
+void rtl8192se_enable_rx(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ write_nic_dword(dev, RDQDA,priv->rx_ring_dma[RX_MPDU_QUEUE]);
+#ifdef CONFIG_RX_CMD
+ write_nic_dword(dev, RCDA, priv->rx_ring_dma[RX_CMD_QUEUE]);
+#endif
+}
+
+u32 TX_DESC_BASE[] = {TBKDA, TBEDA, TVIDA, TVODA, TBDA, TCDA, TMDA, THPDA, HDA};
+void rtl8192se_enable_tx(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ u32 i;
+
+ for (i = 0; i < MAX_TX_QUEUE_COUNT; i++)
+ write_nic_dword(dev, TX_DESC_BASE[i], priv->tx_ring[i].dma);
+}
+
+
+void rtl8192se_beacon_disable(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ u32 reg;
+
+#ifdef RTL8192CE
+ reg = read_nic_dword(priv->rtllib->dev,REG_HIMR);
+
+ reg &= ~(IMR_BcnInt | IMR_BcnInt | IMR_TBDOK | IMR_TBDER);
+ write_nic_dword(priv->rtllib->dev, REG_HIMR, reg);
+#else
+ reg = read_nic_dword(priv->rtllib->dev,INTA_MASK);
+
+ reg &= ~(IMR_BcnInt | IMR_BcnInt | IMR_TBDOK | IMR_TBDER);
+ write_nic_dword(priv->rtllib->dev, INTA_MASK, reg);
+#endif
+}
+
+void rtl8192se_interrupt_recognized(struct net_device *dev, u32 *p_inta, u32 *p_intb)
+{
+#ifdef RTL8192SE
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ *p_inta = read_nic_dword(dev, ISR) & priv->irq_mask[0];
+#else
+ *p_inta = read_nic_dword(dev, ISR) ;
+#endif
+ write_nic_dword(dev,ISR,*p_inta);
+#ifdef RTL8192SE
+ *p_intb = read_nic_dword(dev, ISR+4);
+ write_nic_dword(dev, ISR+4, *p_intb);
+#endif
+}
+
+bool rtl8192se_HalRxCheckStuck(struct net_device *dev)
+{
+
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u16 RegRxCounter = (u16)(priv->InterruptLog.nIMR_ROK&0xffff);
+ bool bStuck = false;
+ u32 SlotIndex = 0, TotalRxStuckCount = 0;
+ u8 i;
+ u8 SilentResetRxSoltNum = 4;
+
+
+ SlotIndex = (priv->SilentResetRxSlotIndex++)%SilentResetRxSoltNum;
+
+ if(priv->RxCounter==RegRxCounter)
+ {
+ priv->SilentResetRxStuckEvent[SlotIndex] = 1;
+
+ for( i = 0; i < SilentResetRxSoltNum ; i++ )
+ TotalRxStuckCount += priv->SilentResetRxStuckEvent[i];
+
+ if(TotalRxStuckCount == SilentResetRxSoltNum)
+ {
+ bStuck = true;
+ for( i = 0; i < SilentResetRxSoltNum ; i++ )
+ TotalRxStuckCount += priv->SilentResetRxStuckEvent[i];
+ }
+
+
+ } else {
+ priv->SilentResetRxStuckEvent[SlotIndex] = 0;
+ }
+
+ priv->RxCounter = RegRxCounter;
+
+ return bStuck;
+}
+
+bool rtl8192se_HalTxCheckStuck(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool bStuck = false;
+#if defined(RTL8192E) || defined(RTL8190P)
+ u16 RegTxCounter = read_nic_word(dev, 0x128);
+#elif defined (RTL8192SE) || defined (RTL8192CE)
+ u16 RegTxCounter = read_nic_word(dev, 0x366);
+#else
+ u16 RegTxCounter = priv->TxCounter + 1;
+ WARN_ON(1);
+#endif
+
+ RT_TRACE(COMP_RESET, "%s():RegTxCounter is %d,TxCounter is %d\n",
+ __FUNCTION__,RegTxCounter,priv->TxCounter);
+
+ if(priv->TxCounter == RegTxCounter)
+ bStuck = true;
+
+ priv->TxCounter = RegTxCounter;
+
+ return bStuck;
+}
+
+bool rtl8192se_GetNmodeSupportBySecCfg(struct net_device *dev)
+{
+#ifdef RTL8192SE
+ return true;
+#else
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+ if (ieee->rtllib_ap_sec_type &&
+ (ieee->rtllib_ap_sec_type(priv->rtllib)&(SEC_ALG_WEP|SEC_ALG_TKIP))) {
+ return false;
+ } else {
+ return true;
+ }
+#endif
+}
+
+bool rtl8192se_GetHalfNmodeSupportByAPs(struct net_device* dev)
+{
+#ifdef RTL8192SE
+ return false;
+#else
+ bool Reval;
+ struct r8192_priv* priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+
+ if(ieee->bHalfWirelessN24GMode == true)
+ Reval = true;
+ else
+ Reval = false;
+
+ return Reval;
+#endif
+}
+
+u8 rtl8192se_QueryIsShort(u8 TxHT, u8 TxRate, cb_desc *tcb_desc)
+{
+ u8 tmp_Short;
+
+ tmp_Short = (TxHT==1)?((tcb_desc->bUseShortGI)?1:0):((tcb_desc->bUseShortPreamble)?1:0);
+#if defined RTL8192SE || defined RTL8192CE
+ if(TxHT==1 && TxRate != DESC92S_RATEMCS15)
+#elif defined RTL8192E || defined RTL8190P
+ if(TxHT==1 && TxRate != DESC90_RATEMCS15)
+#endif
+ tmp_Short = 0;
+
+ return tmp_Short;
+}
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_dev.h b/ubuntu/rtl8192se/rtl8192s/r8192S_dev.h
new file mode 100755
index 00000000000..4058e221f98
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_dev.h
@@ -0,0 +1,65 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef _RTL8192SE_H
+#define _RTL8192SE_H
+
+#include "r8192S_def.h"
+
+u8 rtl8192se_QueryIsShort(u8 TxHT, u8 TxRate, cb_desc *tcb_desc);
+bool rtl8192se_GetHalfNmodeSupportByAPs(struct net_device* dev);
+bool rtl8192se_GetNmodeSupportBySecCfg(struct net_device *dev);
+bool rtl8192se_HalTxCheckStuck(struct net_device *dev);
+bool rtl8192se_HalRxCheckStuck(struct net_device *dev);
+void rtl8192se_interrupt_recognized(struct net_device *dev, u32 *p_inta, u32 *p_intb);
+void rtl8192se_enable_rx(struct net_device *dev);
+void rtl8192se_enable_tx(struct net_device *dev);
+void rtl8192se_EnableInterrupt(struct net_device *dev);
+void rtl8192se_DisableInterrupt(struct net_device *dev);
+void rtl8192se_ClearInterrupt(struct net_device *dev);
+void rtl8192se_InitializeVariables(struct net_device *dev);
+void rtl8192se_start_beacon(struct net_device *dev);
+u8 MRateToHwRate8192SE(struct net_device*dev, u8 rate);
+void rtl8192se_get_eeprom_size(struct net_device* dev);
+void MacConfigBeforeFwDownload(struct net_device *dev);
+bool rtl8192se_adapter_start(struct net_device* dev);
+void rtl8192se_link_change(struct net_device *dev);
+void rtl8192se_AllowAllDestAddr(struct net_device* dev, bool bAllowAllDA, bool WriteIntoReg);
+void rtl8192se_tx_fill_desc(struct net_device *dev, tx_desc *pDesc, cb_desc *cb_desc, struct sk_buff *skb);
+void rtl8192se_tx_fill_cmd_desc(struct net_device *dev, tx_desc_cmd *entry, cb_desc *cb_desc,
+ struct sk_buff *skb);
+bool rtl8192se_rx_query_status_desc(struct net_device* dev, struct rtllib_rx_stats* stats,
+ rx_desc *pdesc, struct sk_buff* skb);
+void rtl8192se_halt_adapter(struct net_device *dev, bool bReset);
+void rtl8192se_update_ratr_table(struct net_device* dev,u8* pMcsRate,struct sta_info* pEntry);
+int r8192se_resume_firm(struct net_device *dev);
+void PHY_SetRtl8192seRfHalt(struct net_device* dev);
+void UpdateHalRAMask8192SE(struct net_device* dev, bool bMulticast, u8 macId, u8 MimoPs, u8 WirelessMode, u8 bCurTxBW40MHz, u8 rssi_level);
+u8 HalSetSysClk8192SE(struct net_device *dev, u8 Data);
+bool rtl8192se_RxCommandPacketHandle(struct net_device *dev, struct sk_buff* skb,rx_desc *pdesc);
+bool rtl8192se_check_ht_cap(struct net_device* dev, struct sta_info *sta,
+ struct rtllib_network* net);
+u8 rtl8192se_MapHwQueueToFirmwareQueue(u8 QueueID, u8 priority);
+#endif
+
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_firmware.c b/ubuntu/rtl8192se/rtl8192s/r8192S_firmware.c
new file mode 100755
index 00000000000..6c347db05ae
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_firmware.c
@@ -0,0 +1,856 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#if defined(RTL8192SE)
+#include "../rtl_core.h"
+#include "../rtl_endianfree.h"
+#include "r8192S_hwimg.h"
+#include "r8192S_dev.h"
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) && defined(USE_FW_SOURCE_IMG_FILE)
+#include <linux/firmware.h>
+#endif
+#define byte(x,n) ( (x >> (8 * n)) & 0xff )
+
+static void fw_SetRQPN(struct net_device *dev)
+{
+
+ write_nic_dword(dev, RQPN, 0xffffffff);
+ write_nic_dword(dev, RQPN+4, 0xffffffff);
+ write_nic_byte(dev, RQPN+8, 0xff);
+ write_nic_byte(dev, RQPN+0xB, 0x80);
+
+
+} /* fw_SetRQPN */
+
+bool FirmwareDownloadCode(struct net_device *dev, u8 * code_virtual_address,u32 buffer_len)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool rt_status = true;
+ u16 frag_threshold = MAX_FIRMWARE_CODE_SIZE;
+ u16 frag_length, frag_offset = 0;
+ struct sk_buff *skb;
+ unsigned char *seg_ptr;
+ cb_desc *tcb_desc;
+ u8 bLastIniPkt = 0;
+ u16 ExtraDescOffset = 0;
+
+#ifdef RTL8192SE
+ fw_SetRQPN(dev);
+#endif
+
+ RT_TRACE(COMP_FIRMWARE, "--->FirmwareDownloadCode()\n" );
+
+ if(buffer_len >= MAX_FIRMWARE_CODE_SIZE)
+ {
+ RT_TRACE(COMP_ERR, "Size over FIRMWARE_CODE_SIZE! \n");
+ goto cmdsend_downloadcode_fail;
+ }
+
+ ExtraDescOffset = 0;
+
+ do {
+ if((buffer_len-frag_offset) > frag_threshold)
+ {
+ frag_length = frag_threshold + ExtraDescOffset;
+ }
+ else
+ {
+ frag_length = (u16)(buffer_len - frag_offset + ExtraDescOffset);
+ bLastIniPkt = 1;
+ }
+
+ skb = dev_alloc_skb(frag_length);
+ memcpy((unsigned char *)(skb->cb),&dev,sizeof(dev));
+
+ tcb_desc = (cb_desc*)(skb->cb + MAX_DEV_ADDR_SIZE);
+ tcb_desc->queue_index = TXCMD_QUEUE;
+ tcb_desc->bCmdOrInit = DESC_PACKET_TYPE_INIT;
+ tcb_desc->bLastIniPkt = bLastIniPkt;
+
+ skb_reserve(skb, ExtraDescOffset);
+ seg_ptr = (u8 *)skb_put(skb, (u32)(frag_length-ExtraDescOffset));
+ memcpy(seg_ptr, code_virtual_address+frag_offset, (u32)(frag_length-ExtraDescOffset));
+
+ tcb_desc->txbuf_size= frag_length;
+
+ if(!priv->rtllib->check_nic_enough_desc(dev,tcb_desc->queue_index)||
+ (!skb_queue_empty(&priv->rtllib->skb_waitQ[tcb_desc->queue_index]))||\
+ (priv->rtllib->queue_stop) )
+ {
+ RT_TRACE(COMP_FIRMWARE,"=====================================================> tx full!\n");
+ skb_queue_tail(&priv->rtllib->skb_waitQ[tcb_desc->queue_index], skb);
+ }
+ else
+ {
+ priv->rtllib->softmac_hard_start_xmit(skb,dev);
+ }
+
+ frag_offset += (frag_length - ExtraDescOffset);
+
+ }while(frag_offset < buffer_len);
+ write_nic_byte(dev, TPPoll, TPPoll_CQ);
+ return rt_status ;
+
+
+cmdsend_downloadcode_fail:
+ rt_status = false;
+ RT_TRACE(COMP_ERR, "CmdSendDownloadCode fail !!\n");
+ return rt_status;
+
+}
+
+
+
+bool
+FirmwareEnableCPU(struct net_device *dev)
+{
+
+ bool rtStatus = true;
+ u8 tmpU1b, CPUStatus = 0;
+ u16 tmpU2b;
+ u32 iCheckTime = 200;
+
+ RT_TRACE(COMP_FIRMWARE, "-->FirmwareEnableCPU()\n" );
+
+ fw_SetRQPN(dev);
+
+ tmpU1b = read_nic_byte(dev, SYS_CLKR);
+ write_nic_byte(dev, SYS_CLKR, (tmpU1b|SYS_CPU_CLKSEL));
+
+ tmpU2b = read_nic_word(dev, SYS_FUNC_EN);
+ write_nic_word(dev, SYS_FUNC_EN, (tmpU2b|FEN_CPUEN));
+
+ do
+ {
+ CPUStatus = read_nic_byte(dev, TCR);
+ if(CPUStatus& IMEM_RDY)
+ {
+ RT_TRACE(COMP_FIRMWARE, "IMEM Ready after CPU has refilled.\n");
+ break;
+ }
+
+ udelay(100);
+ }while(iCheckTime--);
+
+ if(!(CPUStatus & IMEM_RDY))
+ return false;
+
+ RT_TRACE(COMP_FIRMWARE, "<--FirmwareEnableCPU(): rtStatus(%#x)\n", rtStatus);
+ return rtStatus;
+}
+
+FIRMWARE_8192S_STATUS
+FirmwareGetNextStatus(FIRMWARE_8192S_STATUS FWCurrentStatus)
+{
+ FIRMWARE_8192S_STATUS NextFWStatus = 0;
+
+ switch(FWCurrentStatus)
+ {
+ case FW_STATUS_INIT:
+ NextFWStatus = FW_STATUS_LOAD_IMEM;
+ break;
+
+ case FW_STATUS_LOAD_IMEM:
+ NextFWStatus = FW_STATUS_LOAD_EMEM;
+ break;
+
+ case FW_STATUS_LOAD_EMEM:
+ NextFWStatus = FW_STATUS_LOAD_DMEM;
+ break;
+
+ case FW_STATUS_LOAD_DMEM:
+ NextFWStatus = FW_STATUS_READY;
+ break;
+
+ default:
+ RT_TRACE(COMP_ERR,"Invalid FW Status(%#x)!!\n", FWCurrentStatus);
+ break;
+ }
+ return NextFWStatus;
+}
+
+bool FirmwareCheckReady(struct net_device *dev, u8 LoadFWStatus)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool rtStatus = true;
+ rt_firmware *pFirmware = priv->pFirmware;
+ short PollingCnt = 1000;
+ u8 CPUStatus = 0;
+ u32 tmpU4b;
+
+ RT_TRACE(COMP_FIRMWARE, "--->%s(): LoadStaus(%d),", __FUNCTION__, LoadFWStatus);
+
+ pFirmware->FWStatus = (FIRMWARE_8192S_STATUS)LoadFWStatus;
+
+ switch (LoadFWStatus) {
+ case FW_STATUS_LOAD_IMEM:
+ do {
+ CPUStatus = read_nic_byte(dev, TCR);
+ if(CPUStatus& IMEM_CODE_DONE)
+ break;
+ udelay(5);
+ } while (PollingCnt--);
+ if (!(CPUStatus & IMEM_CHK_RPT) || (PollingCnt <= 0)) {
+ RT_TRACE(COMP_ERR, "FW_STATUS_LOAD_IMEM FAIL CPU, Status=%x\r\n", CPUStatus);
+ goto status_check_fail;
+ }
+ break;
+
+ case FW_STATUS_LOAD_EMEM:
+ do {
+ CPUStatus = read_nic_byte(dev, TCR);
+ if(CPUStatus& EMEM_CODE_DONE)
+ break;
+ udelay(5);
+ } while(PollingCnt--);
+ if (!(CPUStatus & EMEM_CHK_RPT) || (PollingCnt <= 0)) {
+ RT_TRACE(COMP_ERR, "FW_STATUS_LOAD_EMEM FAIL CPU, Status=%x\r\n", CPUStatus);
+ goto status_check_fail;
+ }
+
+ rtStatus = FirmwareEnableCPU(dev);
+ if (rtStatus != true) {
+ RT_TRACE(COMP_ERR, "Enable CPU fail ! \n" );
+ goto status_check_fail;
+ }
+ break;
+
+ case FW_STATUS_LOAD_DMEM:
+ do {
+ CPUStatus = read_nic_byte(dev, TCR);
+ if (CPUStatus& DMEM_CODE_DONE)
+ break;
+ udelay(5);
+ } while(PollingCnt--);
+
+ if (!(CPUStatus & DMEM_CODE_DONE) || (PollingCnt <= 0)) {
+ RT_TRACE(COMP_ERR, "Polling DMEM code done fail ! CPUStatus(%#x)\n", CPUStatus);
+ goto status_check_fail;
+ }
+
+ RT_TRACE(COMP_FIRMWARE, "DMEM code download success, CPUStatus(%#x)\n", CPUStatus);
+ PollingCnt = 2000;
+ do {
+ CPUStatus = read_nic_byte(dev, TCR);
+ if(CPUStatus & FWRDY)
+ break;
+ udelay(40);
+ } while(PollingCnt--);
+
+ RT_TRACE(COMP_FIRMWARE, "Polling Load Firmware ready, CPUStatus(%x)\n", CPUStatus);
+ if (((CPUStatus & LOAD_FW_READY) != LOAD_FW_READY) || (PollingCnt <= 0)) {
+ RT_TRACE(COMP_ERR, "Polling Load Firmware ready fail ! CPUStatus(%x)\n", CPUStatus);
+ goto status_check_fail;
+ }
+
+#ifdef RTL8192SE
+#endif
+
+ tmpU4b = read_nic_dword(dev,TCR);
+ write_nic_dword(dev, TCR, (tmpU4b&(~TCR_ICV)));
+
+ tmpU4b = read_nic_dword(dev, RCR);
+ write_nic_dword(dev, RCR,
+ (tmpU4b|RCR_APPFCS|RCR_APP_ICV|RCR_APP_MIC));
+
+ RT_TRACE(COMP_FIRMWARE, "FirmwareCheckReady(): Current RCR settings(%#x)\n", tmpU4b);
+
+#if 0
+ priv->TransmitConfig = read_nic_dword_E(dev, TCR);
+ RT_TRACE(COMP_FIRMWARE, "FirmwareCheckReady(): Current TCR settings(%#x)\n", priv->TransmitConfig);
+#endif
+
+ write_nic_byte(dev, LBKMD_SEL, LBK_NORMAL);
+ break;
+ default :
+ RT_TRACE(COMP_FIRMWARE, "Unknown status check!\n");
+ rtStatus = false;
+ break;
+ }
+
+status_check_fail:
+ RT_TRACE(COMP_FIRMWARE, "<---%s: LoadFWStatus(%d), rtStatus(%x)\n", __FUNCTION__,
+ LoadFWStatus, rtStatus);
+ return rtStatus;
+}
+u8 FirmwareHeaderMapRfType(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ switch(priv->rf_type)
+ {
+ case RF_1T1R: return 0x11;
+ case RF_1T2R: return 0x12;
+ case RF_2T2R: return 0x22;
+ case RF_2T2R_GREEN: return 0x92;
+ default:
+ RT_TRACE(COMP_INIT, "Unknown RF type(%x)\n",priv->rf_type);
+ break;
+ }
+ return 0x22;
+}
+
+
+void FirmwareHeaderPriveUpdate(struct net_device *dev, PRT_8192S_FIRMWARE_PRIV pFwPriv)
+{
+ pFwPriv->rf_config = FirmwareHeaderMapRfType(dev);
+}
+
+
+
+bool FirmwareDownload92S(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool rtStatus = true;
+ u8 *pucMappedFile = NULL;
+ u32 ulFileLength = 0;
+ u8 FwHdrSize = RT_8192S_FIRMWARE_HDR_SIZE;
+ rt_firmware *pFirmware = priv->pFirmware;
+ u8 FwStatus = FW_STATUS_INIT;
+ PRT_8192S_FIRMWARE_HDR pFwHdr = NULL;
+ PRT_8192S_FIRMWARE_PRIV pFwPriv = NULL;
+
+ pFirmware->FWStatus = FW_STATUS_INIT;
+
+ RT_TRACE(COMP_FIRMWARE, " --->FirmwareDownload92S()\n");
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) && defined(USE_FW_SOURCE_IMG_FILE)
+ priv->firmware_source = FW_SOURCE_IMG_FILE;
+#else
+ priv->firmware_source = FW_SOURCE_HEADER_FILE;
+#endif
+
+ switch( priv->firmware_source )
+ {
+ case FW_SOURCE_IMG_FILE:
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0) && defined(USE_FW_SOURCE_IMG_FILE)
+ if(pFirmware->szFwTmpBufferLen == 0)
+ {
+#ifdef _RTL8192_EXT_PATCH_
+ const char *pFwImageFileName[1] = {"RTL8191SE_MESH/rtl8192sfw.bin"};
+#else
+ const char *pFwImageFileName[1] = {"RTL8192SE/rtl8192sfw.bin"};
+#endif
+ const struct firmware *fw_entry = NULL;
+ u32 ulInitStep = 0;
+ int rc = 0;
+ u32 file_length = 0;
+ rc = request_firmware(&fw_entry, pFwImageFileName[ulInitStep],&priv->pdev->dev);
+ if(rc < 0 ) {
+ RT_TRACE(COMP_ERR, "request firmware fail!\n");
+ goto DownloadFirmware_Fail;
+ }
+
+ if(fw_entry->size > sizeof(pFirmware->szFwTmpBuffer)) {
+ RT_TRACE(COMP_ERR, "img file size exceed the container buffer fail!\n");
+ release_firmware(fw_entry);
+ goto DownloadFirmware_Fail;
+ }
+
+ memcpy(pFirmware->szFwTmpBuffer,fw_entry->data,fw_entry->size);
+ pFirmware->szFwTmpBufferLen = fw_entry->size;
+ release_firmware(fw_entry);
+
+ pucMappedFile = pFirmware->szFwTmpBuffer;
+ file_length = pFirmware->szFwTmpBufferLen;
+
+ pFirmware->pFwHeader = (PRT_8192S_FIRMWARE_HDR) pucMappedFile;
+ pFwHdr = pFirmware->pFwHeader;
+ RT_TRACE(COMP_FIRMWARE,"signature:%x, version:%x, size:%x, imemsize:%x, sram size:%x\n", \
+ pFwHdr->Signature, pFwHdr->Version, pFwHdr->DMEMSize, \
+ pFwHdr->IMG_IMEM_SIZE, pFwHdr->IMG_SRAM_SIZE);
+ pFirmware->FirmwareVersion = byte(pFwHdr->Version ,0);
+ if ((pFwHdr->IMG_IMEM_SIZE==0) || (pFwHdr->IMG_IMEM_SIZE > sizeof(pFirmware->FwIMEM)))
+ {
+ RT_TRACE(COMP_ERR, "%s: memory for data image is less than IMEM required\n",\
+ __FUNCTION__);
+ goto DownloadFirmware_Fail;
+ } else {
+ pucMappedFile+=FwHdrSize;
+
+ memcpy(pFirmware->FwIMEM, pucMappedFile, pFwHdr->IMG_IMEM_SIZE);
+ pFirmware->FwIMEMLen = pFwHdr->IMG_IMEM_SIZE;
+ }
+
+ if (pFwHdr->IMG_SRAM_SIZE > sizeof(pFirmware->FwEMEM))
+ {
+ RT_TRACE(COMP_ERR, "%s: memory for data image is less than EMEM required\n",\
+ __FUNCTION__);
+ goto DownloadFirmware_Fail;
+ }
+ else
+ {
+ pucMappedFile += pFirmware->FwIMEMLen;
+
+ memcpy(pFirmware->FwEMEM, pucMappedFile, pFwHdr->IMG_SRAM_SIZE);
+ pFirmware->FwEMEMLen = pFwHdr->IMG_SRAM_SIZE;
+ }
+ }
+#endif
+ break;
+
+ case FW_SOURCE_HEADER_FILE:
+#if 1
+#define Rtl819XFwImageArray Rtl8192SEFwImgArray
+ pucMappedFile = Rtl819XFwImageArray;
+ ulFileLength = ImgArrayLength;
+
+ RT_TRACE(COMP_INIT,"Fw download from header.\n");
+ pFirmware->pFwHeader = (PRT_8192S_FIRMWARE_HDR) pucMappedFile;
+ pFwHdr = pFirmware->pFwHeader;
+ RT_TRACE(COMP_FIRMWARE,"signature:%x, version:%x, size:%x, imemsize:%x, sram size:%x\n", \
+ pFwHdr->Signature, pFwHdr->Version, pFwHdr->DMEMSize, \
+ pFwHdr->IMG_IMEM_SIZE, pFwHdr->IMG_SRAM_SIZE);
+ pFirmware->FirmwareVersion = byte(pFwHdr->Version ,0);
+
+ if ((pFwHdr->IMG_IMEM_SIZE==0) || (pFwHdr->IMG_IMEM_SIZE > sizeof(pFirmware->FwIMEM)))
+ {
+ printk("FirmwareDownload92S(): memory for data image is less than IMEM required\n");
+ goto DownloadFirmware_Fail;
+ }
+ else
+ {
+ pucMappedFile+=FwHdrSize;
+
+ memcpy(pFirmware->FwIMEM, pucMappedFile, pFwHdr->IMG_IMEM_SIZE);
+ pFirmware->FwIMEMLen = pFwHdr->IMG_IMEM_SIZE;
+ }
+
+ if (pFwHdr->IMG_SRAM_SIZE > sizeof(pFirmware->FwEMEM))
+ {
+ printk(" FirmwareDownload92S(): memory for data image is less than EMEM required\n");
+ goto DownloadFirmware_Fail;
+ } else {
+ pucMappedFile+= pFirmware->FwIMEMLen;
+
+ memcpy(pFirmware->FwEMEM, pucMappedFile, pFwHdr->IMG_SRAM_SIZE);
+ pFirmware->FwEMEMLen = pFwHdr->IMG_SRAM_SIZE;
+ }
+#endif
+ break;
+ default:
+ break;
+ }
+
+ FwStatus = FirmwareGetNextStatus(pFirmware->FWStatus);
+ while(FwStatus!= FW_STATUS_READY)
+ {
+ switch(FwStatus)
+ {
+ case FW_STATUS_LOAD_IMEM:
+ pucMappedFile = pFirmware->FwIMEM;
+ ulFileLength = pFirmware->FwIMEMLen;
+ break;
+
+ case FW_STATUS_LOAD_EMEM:
+ pucMappedFile = pFirmware->FwEMEM;
+ ulFileLength = pFirmware->FwEMEMLen;
+ break;
+
+ case FW_STATUS_LOAD_DMEM:
+ pFwHdr = pFirmware->pFwHeader;
+ pFwPriv = (PRT_8192S_FIRMWARE_PRIV)&pFwHdr->FWPriv;
+ FirmwareHeaderPriveUpdate(dev, pFwPriv);
+ pucMappedFile = (u8*)(pFirmware->pFwHeader)+RT_8192S_FIRMWARE_HDR_EXCLUDE_PRI_SIZE;
+ ulFileLength = FwHdrSize-RT_8192S_FIRMWARE_HDR_EXCLUDE_PRI_SIZE;
+ break;
+
+ default:
+ RT_TRACE(COMP_ERR, "Unexpected Download step!!\n");
+ goto DownloadFirmware_Fail;
+ break;
+ }
+
+ rtStatus = FirmwareDownloadCode(dev, pucMappedFile, ulFileLength);
+
+ if(rtStatus != true)
+ {
+ RT_TRACE(COMP_ERR, "FirmwareDownloadCode() fail ! \n" );
+ goto DownloadFirmware_Fail;
+ }
+
+ rtStatus = FirmwareCheckReady(dev, FwStatus);
+
+ if(rtStatus != true)
+ {
+ RT_TRACE(COMP_ERR, "FirmwareDownloadCode() fail ! \n");
+ goto DownloadFirmware_Fail;
+ }
+
+ FwStatus = FirmwareGetNextStatus(pFirmware->FWStatus);
+ }
+
+ RT_TRACE(COMP_FIRMWARE, "Firmware Download Success!!\n");
+ return rtStatus;
+
+ DownloadFirmware_Fail:
+ RT_TRACE(COMP_ERR, "Firmware Download Fail!!%x\n",read_nic_word(dev, TCR));
+ rtStatus = false;
+ return rtStatus;
+}
+void rtl8192se_dump_skb_data(struct sk_buff *skb)
+{
+ u8 i = 0;
+ u8 *arry = skb->data;
+
+ printk("\nSCAN_CMD/PROBE_REQ==============>\n");
+ for(i = 0; i < skb->len; i ++){
+ if((i % 4 == 0)&&(i != 0))
+ printk("\n");
+ printk("%2.2x ", arry[i]);
+ }
+ printk("\nSCAN_CMD/PROBE_REQ<==============\n");
+}
+
+void rtl8192se_dump_cmd_para(u8*SiteSurveyPara)
+{
+ u8 i = 0;
+ u8 desc_size = sizeof(tx_desc_fw);
+ u8 para_size = 8+desc_size;
+ u8 *arry = SiteSurveyPara;
+
+ printk("\nSCAN_CMD_PARA==============>\n");
+ for(i = 0; i < para_size; i ++){
+ if((i % 4 == 0)&&(i != 0))
+ printk("\n");
+ printk("%2.2x ", arry[i]);
+ }
+ printk("\nSCAN_CMD_PARA<==============\n");
+}
+#if 1
+RT_STATUS
+CmdSendPacket(
+ struct net_device *dev,
+ cb_desc *pTcb,
+ struct sk_buff *skb,
+ u32 BufferLen,
+ u32 PacketType,
+ bool bLastInitPacket
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ RT_STATUS rtStatus = RT_STATUS_SUCCESS;
+
+ pTcb->queue_index = TXCMD_QUEUE;
+ pTcb->bCmdOrInit = PacketType;
+ pTcb->bLastIniPkt = bLastInitPacket;
+ pTcb->txbuf_size = BufferLen;
+
+
+ if(!priv->rtllib->check_nic_enough_desc(dev,pTcb->queue_index)||
+ (!skb_queue_empty(&priv->rtllib->skb_waitQ[pTcb->queue_index]))||\
+ (priv->rtllib->queue_stop) ) {
+ RT_TRACE(COMP_CMD,"=========================> tx full!\n");
+ skb_queue_tail(&priv->rtllib->skb_waitQ[pTcb->queue_index], skb);
+ } else {
+ priv->rtllib->softmac_hard_start_xmit(skb,dev);
+ }
+
+ return rtStatus;
+}
+
+u32
+FillH2CCmd(
+ struct sk_buff *skb,
+ u32 H2CBufferLen,
+ u32 CmdNum,
+ u32* pElementID,
+ u32* pCmdLen,
+ u8** pCmbBuffer,
+ u8* CmdStartSeq
+ )
+{
+ u8 i = 0;
+ u32 TotalLen = 0, Len = 0, TxDescLen = 0;
+ u32 preContinueOffset = 0;
+
+ u8* pH2CBuffer;
+
+ do
+ {
+ Len = H2C_TX_CMD_HDR_LEN + N_BYTE_ALIGMENT(pCmdLen[i], 8);
+
+ if(H2CBufferLen < TotalLen + Len + TxDescLen)
+ break;
+
+ pH2CBuffer = (u8 *) skb_put(skb, (u32)Len);
+ memset((pH2CBuffer + TotalLen + TxDescLen),0,Len);
+
+ SET_BITS_TO_LE_4BYTE((pH2CBuffer + TotalLen + TxDescLen), 0, 16, pCmdLen[i]);
+
+ SET_BITS_TO_LE_4BYTE((pH2CBuffer + TotalLen + TxDescLen), 16, 8, pElementID[i]);
+
+ *CmdStartSeq = *CmdStartSeq % 0x80;
+ SET_BITS_TO_LE_4BYTE((pH2CBuffer + TotalLen + TxDescLen), 24, 7, *CmdStartSeq);
+ ++ *CmdStartSeq;
+
+ memcpy((pH2CBuffer + TotalLen + TxDescLen + H2C_TX_CMD_HDR_LEN), pCmbBuffer[i], pCmdLen[i]);
+
+ if(i < CmdNum - 1)
+ SET_BITS_TO_LE_4BYTE((pH2CBuffer + preContinueOffset), 31, 1, 1);
+
+ preContinueOffset = TotalLen;
+
+ TotalLen += Len;
+ }while(++ i < CmdNum);
+
+ return TotalLen;
+}
+
+u32
+GetH2CCmdLen(
+ u32 H2CBufferLen,
+ u32 CmdNum,
+ u32* pCmdLen
+ )
+{
+ u8 i = 0;
+ u32 TotalLen = 0, Len = 0, TxDescLen = 0;
+
+ do
+ {
+ Len = H2C_TX_CMD_HDR_LEN + N_BYTE_ALIGMENT(pCmdLen[i], 8);
+
+ if(H2CBufferLen < TotalLen + Len + TxDescLen)
+ break;
+
+ TotalLen += Len;
+ }while(++ i < CmdNum);
+
+ return TotalLen + TxDescLen;
+}
+
+/*-----------------------------------------------------------------------------
+ * Function: FirmwareSetH2CCmd()
+ *
+ * Overview: Set FW H2C command (Decide ElementID, cmd content length, and get FW buffer)
+ *
+ * Input: H2CCmd: H2C command type.
+ * pCmdBuffer: Pointer of the H2C command content.
+ *
+ * Output: NONE
+ *
+ * Return: RT_STATUS
+ *
+ * Revised History:
+ * When Who Remark
+ * 2009/1/12 tynli Create the version 0.
+ *
+ *---------------------------------------------------------------------------*/
+RT_STATUS
+FirmwareSetH2CCmd(
+ struct net_device *dev,
+ u8 H2CCmd,
+ u8* pCmdBuffer
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 ElementID;
+ u32 Cmd_Len;
+ cb_desc *pTcb;
+ struct sk_buff *skb;
+ u32 Len;
+
+ RT_STATUS rtStatus;
+
+ switch(H2CCmd){
+ case FW_H2C_SETPWRMODE:
+ {
+ ElementID = H2C_SetPwrMode_CMD ;
+ Cmd_Len = sizeof(H2C_SETPWRMODE_PARM);
+ }
+ break;
+ case FW_H2C_JOINBSSRPT:
+ {
+ ElementID = H2C_JoinbssRpt_CMD;
+ Cmd_Len = sizeof(H2C_JOINBSSRPT_PARM);
+ }
+ break;
+ case FW_H2C_WoWLAN_UPDATE_GTK:
+ {
+ ElementID = H2C_WoWLAN_UPDATE_GTK_CMD;
+ Cmd_Len = sizeof(H2C_WPA_TWO_WAY_PARA);
+ }
+ break;
+ case FW_H2C_WoWLAN_UPDATE_IV:
+ {
+ ElementID = H2C_WoWLAN_UPDATE_IV_CMD;
+ Cmd_Len = sizeof(unsigned long long);
+ }
+ break;
+
+ case FW_H2C_WoWLAN_OFFLOAD:
+ {
+ ElementID = H2C_WoWLAN_FW_OFFLOAD;
+ Cmd_Len = sizeof(u8);
+ }
+ break;
+ case FW_H2C_SITESURVEY:
+ {
+ ElementID = H2C_SiteSurvey_CMD;
+ Cmd_Len = sizeof(H2C_SITESURVEY_PARA) + ((PH2C_SITESURVEY_PARA)pCmdBuffer)->probe_req_len - sizeof(tx_desc_fw);
+ }
+ break;
+ default:
+ break;
+ }
+
+ RT_TRACE(COMP_CMD, "FirmwareSetH2CCmd() HW_VAR_SET_TX_CMD: ElementID = %d, %d+%d=Cmd_Len = %d\n", ElementID, sizeof(H2C_SITESURVEY_PARA),((PH2C_SITESURVEY_PARA)pCmdBuffer)->probe_req_len, Cmd_Len);
+
+ {
+ Len = GetH2CCmdLen(MAX_TRANSMIT_BUFFER_SIZE, 1, &Cmd_Len);
+
+ RT_TRACE(COMP_CMD, "---------->%s(), cmdlen:%d,len:%d\n", __func__,Cmd_Len,Len);
+ skb = dev_alloc_skb(Len);
+ memcpy((unsigned char *)(skb->cb),&dev,sizeof(dev));
+
+ pTcb = (cb_desc*)(skb->cb + MAX_DEV_ADDR_SIZE);
+
+ FillH2CCmd(skb, MAX_TRANSMIT_BUFFER_SIZE, 1, &ElementID, &Cmd_Len, &pCmdBuffer, &priv->H2CTxCmdSeq);
+
+
+ rtStatus = CmdSendPacket(dev, pTcb, skb, Len, DESC_PACKET_TYPE_NORMAL, false);
+
+ }
+
+ write_nic_byte(dev, TPPoll, TPPoll_CQ);
+
+ return RT_STATUS_SUCCESS;
+}
+
+
+void
+rtl8192se_set_scan_cmd(struct net_device *dev, u32 start_flag)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ H2C_SITESURVEY_PARA *SiteSurveyPara;
+
+ if (!priv->scan_cmd) {
+ priv->scan_cmd = kmalloc(sizeof(H2C_SITESURVEY_PARA) +
+ RTL_MAX_SCAN_SIZE, GFP_KERNEL);
+ if (!priv->scan_cmd) {
+ printk("----------->%s() Error!!!\n", __func__);
+ return;
+ }
+ }
+
+ SiteSurveyPara = priv->scan_cmd;
+ memset(SiteSurveyPara, 0, sizeof(struct _H2C_SITESURVEY_PARA) + RTL_MAX_SCAN_SIZE);
+
+ if(start_flag){
+ struct sk_buff *skb = rtllib_probe_req(priv->rtllib);
+ cb_desc *tcb_desc = (cb_desc *)(skb->cb + 8);
+
+
+ tcb_desc->queue_index = MGNT_QUEUE;
+ tcb_desc->data_rate = MgntQuery_MgntFrameTxRate(priv->rtllib);
+ tcb_desc->RATRIndex = 7;
+ tcb_desc->bTxDisableRateFallBack = 1;
+ tcb_desc->bTxUseDriverAssingedRate = 1;
+
+
+ SiteSurveyPara->start_flag = start_flag;
+ SiteSurveyPara->probe_req_len = skb->len + sizeof(tx_desc_fw);
+
+ SiteSurveyPara->desc.MacID = 0;
+ SiteSurveyPara->desc.TXHT = (tcb_desc->data_rate&0x80)?1:0;
+ SiteSurveyPara->desc.TxRate = MRateToHwRate8192SE(dev,tcb_desc->data_rate);
+ SiteSurveyPara->desc.TxShort = rtl8192se_QueryIsShort(((tcb_desc->data_rate&0x80)?1:0), MRateToHwRate8192SE(dev,tcb_desc->data_rate), tcb_desc);
+
+ SiteSurveyPara->desc.AggEn = 0;
+ SiteSurveyPara->desc.Seq = 0;
+ SiteSurveyPara->desc.RTSEn = (tcb_desc->bRTSEnable && tcb_desc->bCTSEnable==false)?1:0;
+ SiteSurveyPara->desc.CTS2Self = (tcb_desc->bCTSEnable)?1:0;
+ SiteSurveyPara->desc.RTSSTBC = (tcb_desc->bRTSSTBC)?1:0;
+ SiteSurveyPara->desc.RTSHT = (tcb_desc->rts_rate&0x80)?1:0;
+ SiteSurveyPara->desc.RTSRate = MRateToHwRate8192SE(dev,tcb_desc->rts_rate);
+ SiteSurveyPara->desc.RTSRate = MRateToHwRate8192SE(dev,MGN_24M);
+ SiteSurveyPara->desc.RTSBW = 0;
+ SiteSurveyPara->desc.RTSSC = tcb_desc->RTSSC;
+ SiteSurveyPara->desc.RTSShort = (SiteSurveyPara->desc.RTSHT==0)?(tcb_desc->bRTSUseShortPreamble?1:0):(tcb_desc->bRTSUseShortGI?1:0);
+
+ if(priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40){
+ if(tcb_desc->bPacketBW) {
+ SiteSurveyPara->desc.TxBw = 1;
+ SiteSurveyPara->desc.TXSC = 0;
+ } else {
+ SiteSurveyPara->desc.TxBw = 0;
+ SiteSurveyPara->desc.TXSC = priv->nCur40MhzPrimeSC;
+ }
+ } else {
+ SiteSurveyPara->desc.TxBw = 0;
+ SiteSurveyPara->desc.TXSC = 0;
+ }
+
+ SiteSurveyPara->desc.LINIP = 0;
+ SiteSurveyPara->desc.Offset = 32;
+ SiteSurveyPara->desc.PktSize = (u16)skb->len;
+
+ SiteSurveyPara->desc.RaBRSRID = tcb_desc->RATRIndex;
+
+ SiteSurveyPara->desc.PktID = 0x0;
+ SiteSurveyPara->desc.QueueSel = rtl8192se_MapHwQueueToFirmwareQueue(tcb_desc->queue_index, tcb_desc->priority);
+
+ SiteSurveyPara->desc.DataRateFBLmt= 0x1F;
+ SiteSurveyPara->desc.DISFB = tcb_desc->bTxDisableRateFallBack;
+ SiteSurveyPara->desc.UserRate = tcb_desc->bTxUseDriverAssingedRate;
+
+
+ SiteSurveyPara->desc.FirstSeg = 1;
+ SiteSurveyPara->desc.LastSeg = 1;
+
+ SiteSurveyPara->desc.TxBufferSize = (u16)skb->len;
+
+ SiteSurveyPara->desc.OWN = 1;
+
+
+ memcpy(&SiteSurveyPara->probe_req[0], skb->data, (u16)skb->len);
+
+ dev_kfree_skb_any(skb);
+ } else {
+ SiteSurveyPara->start_flag = start_flag;
+ SiteSurveyPara->probe_req_len = 0;
+ }
+
+ FirmwareSetH2CCmd( dev ,FW_H2C_SITESURVEY, (u8*)SiteSurveyPara);
+}
+
+int rtl8192se_send_scan_cmd(struct net_device *dev, bool start)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(start){
+ priv->rtllib->scan_watch_dog =0;
+#if 0
+ queue_delayed_work_rsl(priv->priv_wq,&priv->hw_scan_simu_wq,0);
+#else
+ rtl8192se_set_scan_cmd(dev, start);
+#endif
+ } else {
+#if 0
+ rtl8192se_rx_surveydone_cmd(dev);
+#else
+ rtl8192se_set_scan_cmd(dev, start);
+#endif
+ }
+ return true;
+}
+#endif
+
+#endif
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_firmware.h b/ubuntu/rtl8192se/rtl8192s/r8192S_firmware.h
new file mode 100755
index 00000000000..7784db18b85
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_firmware.h
@@ -0,0 +1,419 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef __INC_FIRMWARE_H
+#define __INC_FIRMWARE_H
+
+#include "r8192S_def.h"
+
+#define RTL8190_MAX_FIRMWARE_CODE_SIZE 64000
+#define RTL8190_CPU_START_OFFSET 0x80
+#define MAX_FIRMWARE_CODE_SIZE 0xFF00
+
+#define H2C_TX_CMD_HDR_LEN 8
+
+#define RTL8192S_FW_PKT_FRAG_SIZE 0x4000
+
+#ifdef RTL8192SE
+#define GET_COMMAND_PACKET_FRAG_THRESHOLD(v) 4*(v/4) - 8
+#else
+#define GET_COMMAND_PACKET_FRAG_THRESHOLD(v) (4*(v/4) - 8 - USB_HWDESC_HEADER_LEN)
+#endif
+
+typedef enum _DESC_PACKET_TYPE{
+ DESC_PACKET_TYPE_INIT = 0,
+ DESC_PACKET_TYPE_NORMAL = 1,
+}DESC_PACKET_TYPE;
+
+
+#ifdef RTL8192S
+typedef enum _firmware_init_step{
+ FW_INIT_STEP0_IMEM = 0,
+ FW_INIT_STEP1_MAIN = 1,
+ FW_INIT_STEP2_DATA = 2,
+}firmware_init_step_e;
+#else
+typedef enum _firmware_init_step{
+ FW_INIT_STEP0_BOOT = 0,
+ FW_INIT_STEP1_MAIN = 1,
+ FW_INIT_STEP2_DATA = 2,
+}firmware_init_step_e;
+#endif
+
+typedef enum _firmware_source{
+ FW_SOURCE_IMG_FILE = 0,
+ FW_SOURCE_HEADER_FILE = 1,
+}firmware_source_e, *pfirmware_source_e;
+
+typedef enum _opt_rst_type{
+ OPT_SYSTEM_RESET = 0,
+ OPT_FIRMWARE_RESET = 1,
+}opt_rst_type_e;
+
+typedef enum _FIRMWARE_STATUS{
+ FW_STATUS_0_INIT = 0,
+ FW_STATUS_1_MOVE_BOOT_CODE = 1,
+ FW_STATUS_2_MOVE_MAIN_CODE = 2,
+ FW_STATUS_3_TURNON_CPU = 3,
+ FW_STATUS_4_MOVE_DATA_CODE = 4,
+ FW_STATUS_5_READY = 5,
+}FIRMWARE_STATUS;
+
+typedef enum _H2C_CMD{
+ FW_H2C_SETPWRMODE = 0,
+ FW_H2C_JOINBSSRPT = 1,
+ FW_H2C_WoWLAN_UPDATE_GTK = 2,
+ FW_H2C_WoWLAN_UPDATE_IV = 3,
+ FW_H2C_WoWLAN_OFFLOAD = 4,
+ FW_H2C_SITESURVEY=5,
+}H2C_CMD;
+
+ typedef struct _H2C_SETPWRMODE_PARM {
+ u8 mode;
+ u8 flag_low_traffic_en;
+ u8 flag_lpnav_en;
+ u8 flag_rf_low_snr_en;
+ u8 flag_dps_en;
+ u8 bcn_rx_en;
+ u8 bcn_pass_cnt;
+ u8 bcn_to; // beacon TO (ms). ¡§=0¡¨ no limit.
+ u16 bcn_itv;
+ u8 app_itv;
+ u8 awake_bcn_itvl;
+ u8 smart_ps;
+ u8 bcn_pass_period;
+ }H2C_SETPWRMODE_PARM, *PH2C_SETPWRMODE_PARM;
+
+typedef struct _H2C_JOINBSSRPT_PARM {
+ u8 OpMode;
+ u8 Ps_Qos_Info;
+ u8 Bssid[6];
+ u16 BcnItv;
+ u16 Aid;
+}H2C_JOINBSSRPT_PARM, *PH2C_JOINBSSRPT_PARM;
+
+typedef struct _H2C_WPA_PTK {
+ u8 kck[16]; /* EAPOL-Key Key Confirmation Key (KCK) */
+ u8 kek[16]; /* EAPOL-Key Key Encryption Key (KEK) */
+ u8 tk1[16]; /* Temporal Key 1 (TK1) */
+ union {
+ u8 tk2[16];
+ struct {
+ u8 tx_mic_key[8];
+ u8 rx_mic_key[8];
+ }Athu;
+ }U;
+}H2C_WPA_PTK;
+
+typedef struct _H2C_WPA_TWO_WAY_PARA{
+ u8 pairwise_en_alg;
+ u8 group_en_alg;
+ H2C_WPA_PTK wpa_ptk_value;
+}H2C_WPA_TWO_WAY_PARA, *PH2C_WPA_TWO_WAY_PARA;
+
+typedef struct _tx_desc_8192se_fw{
+
+ u32 PktSize:16;
+ u32 Offset:8;
+ u32 Type:2;
+ u32 LastSeg:1;
+ u32 FirstSeg:1;
+ u32 LINIP:1;
+ u32 AMSDU:1;
+ u32 GF:1;
+ u32 OWN:1;
+
+ u32 MacID:5;
+ u32 MoreData:1;
+ u32 MoreFrag:1;
+ u32 PIFS:1;
+ u32 QueueSel:5;
+ u32 AckPolicy:2;
+ u32 NoACM:1;
+ u32 NonQos:1;
+ u32 KeyID:2;
+ u32 OUI:1;
+ u32 PktType:1;
+ u32 EnDescID:1;
+ u32 SecType:2;
+ u32 HTC:1;
+ u32 WDS:1;
+ u32 PktOffset:5;
+ u32 HWPC:1;
+
+ u32 DataRetryLmt:6;
+ u32 RetryLmtEn:1;
+ u32 TSFL:5;
+ u32 RTSRC:6;
+ u32 DATARC:6;
+
+ u32 Rsvd1:5;
+ u32 AggEn:1;
+ u32 BK:1;
+ u32 OwnMAC:1;
+
+ u32 NextHeadPage:8;
+ u32 TailPage:8;
+ u32 Seq:12;
+ u32 Frag:4;
+
+ u32 RTSRate:6;
+ u32 DisRTSFB:1;
+ u32 RTSRateFBLmt:4;
+ u32 CTS2Self:1;
+ u32 RTSEn:1;
+ u32 RaBRSRID:3;
+ u32 TXHT:1;
+ u32 TxShort:1;
+ u32 TxBw:1;
+ u32 TXSC:2;
+ u32 STBC:2;
+ u32 RD:1;
+ u32 RTSHT:1;
+ u32 RTSShort:1;
+ u32 RTSBW:1;
+ u32 RTSSC:2;
+ u32 RTSSTBC:2;
+ u32 UserRate:1;
+
+ u32 PktID:9;
+ u32 TxRate:6;
+ u32 DISFB:1;
+ u32 DataRateFBLmt:5;
+ u32 TxAGC:11;
+
+ u32 IPChkSum:16;
+ u32 TCPChkSum:16;
+
+ u32 TxBufferSize:16;
+ u32 IPHdrOffset:8;
+ u32 Rsvd3:7;
+ u32 TCPEn:1;
+} tx_desc_fw, *ptx_desc_fw;
+
+typedef struct _H2C_SITESURVEY_PARA {
+ u32 start_flag;
+ u32 probe_req_len;
+ tx_desc_fw desc;
+ u8 probe_req[0];
+}H2C_SITESURVEY_PARA, *PH2C_SITESURVEY_PARA;
+
+ typedef enum _FIRMWARE_H2C_CMD{
+ H2C_Read_MACREG_CMD , /*0*/
+ H2C_Write_MACREG_CMD ,
+ H2C_ReadBB_CMD ,
+ H2C_WriteBB_CMD ,
+ H2C_ReadRF_CMD ,
+ H2C_WriteRF_CMD , /*5*/
+ H2C_Read_EEPROM_CMD ,
+ H2C_Write_EEPROM_CMD ,
+ H2C_Read_EFUSE_CMD ,
+ H2C_Write_EFUSE_CMD ,
+ H2C_Read_CAM_CMD , /*10*/
+ H2C_Write_CAM_CMD ,
+ H2C_setBCNITV_CMD,
+ H2C_setMBIDCFG_CMD,
+ H2C_JoinBss_CMD ,
+ H2C_DisConnect_CMD, /*15*/
+ H2C_CreateBss_CMD ,
+ H2C_SetOpMode_CMD,
+ H2C_SiteSurvey_CMD,
+ H2C_SetAuth_CMD,
+ H2C_SetKey_CMD , /*20*/
+ H2C_SetStaKey_CMD ,
+ H2C_SetAssocSta_CMD,
+ H2C_DelAssocSta_CMD ,
+ H2C_SetStaPwrState_CMD ,
+ H2C_SetBasicRate_CMD , /*25*/
+ H2C_GetBasicRate_CMD ,
+ H2C_SetDataRate_CMD ,
+ H2C_GetDataRate_CMD ,
+ H2C_SetPhyInfo_CMD ,
+ H2C_GetPhyInfo_CMD , /*30*/
+ H2C_SetPhy_CMD ,
+ H2C_GetPhy_CMD ,
+ H2C_readRssi_CMD ,
+ H2C_readGain_CMD ,
+ H2C_SetAtim_CMD , /*35*/
+ H2C_SetPwrMode_CMD ,
+ H2C_JoinbssRpt_CMD,
+ H2C_SetRaTable_CMD ,
+ H2C_GetRaTable_CMD ,
+ H2C_GetCCXReport_CMD, /*40*/
+ H2C_GetDTMReport_CMD,
+ H2C_GetTXRateStatistics_CMD,
+ H2C_SetUsbSuspend_CMD,
+ H2C_SetH2cLbk_CMD ,
+ H2C_tmp1 , /*45*/
+ H2C_WoWLAN_UPDATE_GTK_CMD ,
+ H2C_WoWLAN_FW_OFFLOAD ,
+ H2C_tmp2 ,
+ H2C_tmp3 ,
+ H2C_WoWLAN_UPDATE_IV_CMD , /*50*/
+ H2C_tmp4,
+ MAX_H2CCMD /*52*/
+}FIRMWARE_H2C_CMD;
+
+
+typedef struct _RT_8192S_FIRMWARE_PRIV {
+
+ u8 signature_0;
+ u8 signature_1;
+ u8 hci_sel;
+ u8 chip_version;
+ u8 customer_ID_0;
+ u8 customer_ID_1;
+ u8 rf_config;
+ u8 usb_ep_num;
+
+ u8 regulatory_class_0;
+ u8 regulatory_class_1;
+ u8 regulatory_class_2;
+ u8 regulatory_class_3;
+ u8 rfintfs;
+ u8 def_nettype;
+ u8 rsvd010;
+ u8 rsvd011;
+
+
+ u8 lbk_mode;
+ u8 mp_mode;
+ u8 rsvd020;
+ u8 rsvd021;
+ u8 rsvd022;
+ u8 rsvd023;
+ u8 rsvd024;
+ u8 rsvd025;
+
+ u8 qos_en;
+ u8 bw_40MHz_en;
+ u8 AMSDU2AMPDU_en;
+ u8 AMPDU_en;
+ u8 rate_control_offload;
+ u8 aggregation_offload;
+ u8 rsvd030;
+ u8 rsvd031;
+
+
+ unsigned char beacon_offload;
+ unsigned char MLME_offload;
+ unsigned char hwpc_offload;
+ unsigned char tcp_checksum_offload;
+ unsigned char tcp_offload;
+ unsigned char ps_control_offload;
+ unsigned char WWLAN_offload;
+ unsigned char rsvd040;
+
+ u8 tcp_tx_frame_len_L;
+ u8 tcp_tx_frame_len_H;
+ u8 tcp_rx_frame_len_L;
+ u8 tcp_rx_frame_len_H;
+ u8 rsvd050;
+ u8 rsvd051;
+ u8 rsvd052;
+ u8 rsvd053;
+}RT_8192S_FIRMWARE_PRIV, *PRT_8192S_FIRMWARE_PRIV;
+
+typedef struct _RT_8192S_FIRMWARE_HDR {
+
+ u16 Signature;
+ u16 Version;
+ u32 DMEMSize;
+
+
+ u32 IMG_IMEM_SIZE;
+ u32 IMG_SRAM_SIZE;
+
+ u32 FW_PRIV_SIZE;
+ u32 Rsvd0;
+
+ u32 Rsvd1;
+ u32 Rsvd2;
+
+ RT_8192S_FIRMWARE_PRIV FWPriv;
+
+}RT_8192S_FIRMWARE_HDR, *PRT_8192S_FIRMWARE_HDR;
+
+#define RT_8192S_FIRMWARE_HDR_SIZE 80
+#define RT_8192S_FIRMWARE_HDR_EXCLUDE_PRI_SIZE 32
+
+typedef enum _FIRMWARE_8192S_STATUS{
+ FW_STATUS_INIT = 0,
+ FW_STATUS_LOAD_IMEM = 1,
+ FW_STATUS_LOAD_EMEM = 2,
+ FW_STATUS_LOAD_DMEM = 3,
+ FW_STATUS_READY = 4,
+}FIRMWARE_8192S_STATUS;
+
+typedef struct _rt_firmware{
+ firmware_source_e eFWSource;
+ PRT_8192S_FIRMWARE_HDR pFwHeader;
+ FIRMWARE_8192S_STATUS FWStatus;
+ u16 FirmwareVersion;
+ u8 FwIMEM[RTL8190_MAX_FIRMWARE_CODE_SIZE];
+ u8 FwEMEM[RTL8190_MAX_FIRMWARE_CODE_SIZE];
+ u32 FwIMEMLen;
+ u32 FwEMEMLen;
+ u8 szFwTmpBuffer[164000];
+ u32 szFwTmpBufferLen;
+ u16 CmdPacketFragThresold;
+}rt_firmware, *prt_firmware;
+
+#define FW_DIG_ENABLE_CTL BIT0
+#define FW_HIGH_PWR_ENABLE_CTL BIT1
+#define FW_SS_CTL BIT2
+#define FW_RA_INIT_CTL BIT3
+#define FW_RA_BG_CTL BIT4
+#define FW_RA_N_CTL BIT5
+#define FW_PWR_TRK_CTL BIT6
+#define FW_IQK_CTL BIT7
+#define FW_FA_CTL BIT8
+#define FW_DRIVER_CTRL_DM_CTL BIT9
+#define FW_PAPE_CTL_BY_SW_HW BIT10
+#define FW_DISABLE_ALL_DM 0
+
+#define FW_PWR_TRK_PARAM_CLR 0x0000ffff
+#define FW_RA_PARAM_CLR 0xffff0000
+
+#define FW_CMD_IO_CLR(priv, _Bit) \
+ udelay(1000); \
+ priv->FwCmdIOMap &= (~_Bit);
+
+#define FW_CMD_IO_UPDATE(priv, _val) \
+ priv->FwCmdIOMap = _val;
+
+#define FW_CMD_IO_SET(priv, _val) \
+ write_nic_word(priv->rtllib->dev, LBUS_MON_ADDR, (u16)_val); \
+ FW_CMD_IO_UPDATE(priv, _val);\
+
+#define FW_CMD_PARA_SET(priv, _val) \
+ write_nic_dword(priv->rtllib->dev, LBUS_ADDR_MASK, _val); \
+ priv->FwCmdIOParam = _val;
+
+#define FW_CMD_IO_QUERY(priv) (u16)(priv->FwCmdIOMap)
+#define FW_CMD_IO_PARA_QUERY(priv) ((u32)(priv->FwCmdIOParam))
+
+bool FirmwareEnableCPU(struct net_device *dev);
+bool FirmwareCheckReady(struct net_device *dev, u8 LoadFWStatus);
+
+bool FirmwareDownload92S(struct net_device *dev);
+int rtl8192se_send_scan_cmd(struct net_device *dev, bool start);
+
+void rtl8192se_dump_skb_data(struct sk_buff *skb);
+#endif
+
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_hw.h b/ubuntu/rtl8192se/rtl8192s/r8192S_hw.h
new file mode 100755
index 00000000000..31be6fa135a
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_hw.h
@@ -0,0 +1,1070 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef __INC_HAL8192SREG_H
+#define __INC_HAL8192SREG_H
+
+
+#if 0
+typedef enum _RT_RF_TYPE_DEF
+{
+ RF_1T2R = 0,
+ RF_2T4R,
+ RF_2T2R,
+ RF_1T1R,
+ RF_2T2R_GREEN,
+ RF_819X_MAX_TYPE
+}RT_RF_TYPE_DEF;
+#endif
+
+#define SYS_ISO_CTRL 0x0000
+#define SYS_FUNC_EN 0x0002
+#define PMC_FSM 0x0004
+#define SYS_CLKR 0x0008
+#define EPROM_CMD 0x000A
+#define EE_VPD 0x000C
+#define AFE_MISC 0x0010
+#define SPS0_CTRL 0x0011
+#define SPS1_CTRL 0x0018
+#define RF_CTRL 0x001F
+#define LDOA15_CTRL 0x0020
+#define LDOV12D_CTRL 0x0021
+#define LDOHCI12_CTRL 0x0022
+#define LDO_USB_SDIO 0x0023
+#define LPLDO_CTRL 0x0024
+#define AFE_XTAL_CTRL 0x0026
+#define AFE_PLL_CTRL 0x0028
+#define EFUSE_CTRL 0x0030
+#define EFUSE_TEST 0x0034
+#define PWR_DATA 0x0038
+#define DBG_PORT 0x003A
+#define DPS_TIMER 0x003C
+#define RCLK_MON 0x003E
+
+#define CMDR 0x0040
+#define TXPAUSE 0x0042
+#define LBKMD_SEL 0x0043
+#define TCR 0x0044
+#define RCR 0x0048
+#define MSR 0x004C
+#define SYSF_CFG 0x004D
+#define RX_PKY_LIMIT 0x004E
+#define MBIDCTRL 0x004F
+
+#define MACIDR 0x0050
+#define MACIDR0 0x0050
+#define MACIDR4 0x0054
+#define BSSIDR 0x0058
+#define HWVID 0x005E
+#define MAR 0x0060
+#define MBIDCAMCONTENT 0x0068
+#define MBIDCAMCFG 0x0070
+#define BUILDTIME 0x0074
+#define BUILDUSER 0x0078
+
+#define IDR0 MACIDR0
+#define IDR4 MACIDR4
+
+#define TSFR 0x0080
+#define SLOT_TIME 0x0089
+#define USTIME 0x008A
+#define SIFS_CCK 0x008C
+#define SIFS_OFDM 0x008E
+#define PIFS_TIME 0x0090
+#define ACK_TIMEOUT 0x0091
+#define EIFSTR 0x0092
+#define BCN_INTERVAL 0x0094
+#define ATIMWND 0x0096
+#define BCN_DRV_EARLY_INT 0x0098
+#define BCN_DMATIME 0x009A
+#define BCN_ERR_THRESH 0x009C
+#define MLT 0x009D
+#define RSVD_MAC_TUNE_US 0x009E
+
+#define RQPN 0x00A0
+#define RQPN1 0x00A0
+#define RQPN2 0x00A1
+#define RQPN3 0x00A2
+#define RQPN4 0x00A3
+#define RQPN5 0x00A4
+#define RQPN6 0x00A5
+#define RQPN7 0x00A6
+#define RQPN8 0x00A7
+#define RQPN9 0x00A8
+#define RQPN10 0x00A9
+#define LD_RQPN 0x00AB
+#define RXFF_BNDY 0x00AC
+#define RXRPT_BNDY 0x00B0
+#define TXPKTBUF_PGBNDY 0x00B4
+#define PBP 0x00B5
+#define RXDRVINFO_SZ 0x00B6
+#define TXFF_STATUS 0x00B7
+#define RXFF_STATUS 0x00B8
+#define TXFF_EMPTY_TH 0x00B9
+#define SDIO_RX_BLKSZ 0x00BC
+#define RXDMA 0x00BD
+#define RXPKT_NUM 0x00BE
+#define C2HCMD_UDT_SIZE 0x00C0
+#define C2HCMD_UDT_ADDR 0x00C2
+#define FIFOPAGE1 0x00C4
+#define FIFOPAGE2 0x00C8
+#define FIFOPAGE3 0x00CC
+#define FIFOPAGE4 0x00D0
+#define FIFOPAGE5 0x00D4
+#define FW_RSVD_PG_CRTL 0x00D8
+#define RXDMA_AGG_PG_TH 0x00D9
+#define TXDESC_MSK 0x00DC
+#define TXRPTFF_RDPTR 0x00E0
+#define TXRPTFF_WTPTR 0x00E4
+#define C2HFF_RDPTR 0x00E8
+#define C2HFF_WTPTR 0x00EC
+#define RXFF0_RDPTR 0x00F0
+#define RXFF0_WTPTR 0x00F4
+#define RXFF1_RDPTR 0x00F8
+#define RXFF1_WTPTR 0x00FC
+#define RXRPT0_RDPTR 0x0100
+#define RXRPT0_WTPTR 0x0104
+#define RXRPT1_RDPTR 0x0108
+#define RXRPT1_WTPTR 0x010C
+#define RX0_UDT_SIZE 0x0110
+#define RX1PKTNUM 0x0114
+#define RXFILTERMAP 0x0116
+#define RXFILTERMAP_GP1 0x0118
+#define RXFILTERMAP_GP2 0x011A
+#define RXFILTERMAP_GP3 0x011C
+#define BCNQ_CTRL 0x0120
+#define MGTQ_CTRL 0x0124
+#define HIQ_CTRL 0x0128
+#define VOTID7_CTRL 0x012c
+#define VOTID6_CTRL 0x0130
+#define VITID5_CTRL 0x0134
+#define VITID4_CTRL 0x0138
+#define BETID3_CTRL 0x013c
+#define BETID0_CTRL 0x0140
+#define BKTID2_CTRL 0x0144
+#define BKTID1_CTRL 0x0148
+#define CMDQ_CTRL 0x014c
+#define TXPKT_NUM_CTRL 0x0150
+#define TXQ_PGADD 0x0152
+#define TXFF_PG_NUM 0x0154
+#define TRXDMA_STATUS 0x0156
+
+#define INIMCS_SEL 0x0160
+#define TX_RATE_REG INIMCS_SEL
+#define INIRTSMCS_SEL 0x0180
+#define RRSR 0x0181
+#define ARFR0 0x0184
+#define ARFR1 0x0188
+#define ARFR2 0x018C
+#define ARFR3 0x0190
+#define ARFR4 0x0194
+#define ARFR5 0x0198
+#define ARFR6 0x019C
+#define ARFR7 0x01A0
+#define AGGLEN_LMT_H 0x01A7
+#define AGGLEN_LMT_L 0x01A8
+#define DARFRC 0x01B0
+#define RARFRC 0x01B8
+#define MCS_TXAGC 0x01C0
+#define CCK_TXAGC 0x01C8
+
+#define EDCAPARA_VO 0x01D0
+#define EDCAPARA_VI 0x01D4
+#define EDCAPARA_BE 0x01D8
+#define EDCAPARA_BK 0x01DC
+#define BCNTCFG 0x01E0
+#define CWRR 0x01E2
+#define ACMAVG 0x01E4
+#define AcmHwCtrl 0x01E7
+#define VO_ADMTM 0x01E8
+#define VI_ADMTM 0x01EC
+#define BE_ADMTM 0x01F0
+#define RETRY_LIMIT 0x01F4
+#define SG_RATE 0x01F6
+
+#define NAV_CTRL 0x0200
+#define BW_OPMODE 0x0203
+#define BACAMCMD 0x0204
+#define BACAMCONTENT 0x0208
+
+#define LBDLY 0x0210
+#define FWDLY 0x0211
+#define HWPC_RX_CTRL 0x0218
+#define MQIR 0x0220
+#define MAIR 0x0222
+#define MSIR 0x0224
+#define CLM_RESULT 0x0227
+#define NHM_RPI_CNT 0x0228
+#define RXERR_RPT 0x0230
+#define NAV_PROT_LEN 0x0234
+#define CFEND_TH 0x0236
+#define AMPDU_MIN_SPACE 0x0237
+#define TXOP_STALL_CTRL 0x0238
+
+#define RWCAM 0x0240
+#define WCAMI 0x0244
+#define RCAMO 0x0248
+#define CAMDBG 0x024C
+#define SECR 0x0250
+
+#define WOW_CTRL 0x0260
+#define PSSTATUS 0x0261
+#define PSSWITCH 0x0262
+#define MIMOPS_WAIT_PERIOD 0x0263
+#define LPNAV_CTRL 0x0264
+#define WFM0 0x0270
+#define WFM1 0x0280
+#define WFM2 0x0290
+#define WFM3 0x02A0
+#define WFM4 0x02B0
+#define WFM5 0x02C0
+#define WFCRC 0x02D0
+#define FW_RPT_REG 0x02c4
+
+#define PSTIME 0x02E0
+#define TIMER0 0x02E4
+#define TIMER1 0x02E8
+#define GPIO_CTRL 0x02EC
+#define GPIO_IN 0x02EC
+#define GPIO_OUT 0x02ED
+#define GPIO_IO_SEL 0x02EE
+#define GPIO_MOD 0x02EF
+#define GPIO_INTCTRL 0x02F0
+#define MAC_PINMUX_CFG 0x02F1
+#define LEDCFG 0x02F2
+#define PHY_REG 0x02F3
+#define PHY_REG_DATA 0x02F4
+#define EFUSE_CLK 0x02F8
+
+#define INTA_MASK 0x0300
+#define ISR 0x0308
+
+#define DBG_PORT_SWITCH 0x003A
+#define BIST 0x0310
+#define DBS 0x0314
+#define CPUINST 0x0318
+#define CPUCAUSE 0x031C
+#define LBUS_ERR_ADDR 0x0320
+#define LBUS_ERR_CMD 0x0324
+#define LBUS_ERR_DATA_L 0x0328
+#define LBUS_ERR_DATA_H 0x032C
+#define LX_EXCEPTION_ADDR 0x0330
+#define WDG_CTRL 0x0334
+#define INTMTU 0x0338
+#define INTM 0x033A
+#define FDLOCKTURN0 0x033C
+#define FDLOCKTURN1 0x033D
+#define TRXPKTBUF_DBG_DATA 0x0340
+#define TRXPKTBUF_DBG_CTRL 0x0348
+#define DPLL 0x034A
+#define CBUS_ERR_ADDR 0x0350
+#define CBUS_ERR_CMD 0x0354
+#define CBUS_ERR_DATA_L 0x0358
+#define CBUS_ERR_DATA_H 0x035C
+#define USB_SIE_INTF_ADDR 0x0360
+#define USB_SIE_INTF_WD 0x0361
+#define USB_SIE_INTF_RD 0x0362
+#define USB_SIE_INTF_CTRL 0x0363
+#define LBUS_MON_ADDR 0x0364
+#define LBUS_ADDR_MASK 0x0368
+
+
+#define TPPoll 0x0500
+#define PM_CTRL 0x0502
+#define PCIF 0x0503
+
+#define THPDA 0x0514
+#define TMDA 0x0518
+#define TCDA 0x051C
+#define HDA 0x0520
+#define TVODA 0x0524
+#define TVIDA 0x0528
+#define TBEDA 0x052C
+#define TBKDA 0x0530
+#define TBDA 0x0534
+#define RCDA 0x0538
+#define RDQDA 0x053C
+#define DBI_WDATA 0x0540
+#define DBI_RDATA 0x0544
+#define DBI_CTRL 0x0548
+#define MDIO_DATA 0x0550
+#define MDIO_CTRL 0x0554
+#define PCI_RPWM 0x0561
+#define PCI_CPWM 0x0563
+
+
+#define PHY_CCA 0x803
+
+
+#define USB_RX_AGG_TIMEOUT 0xFE5B
+
+#define FW_OFFLOAD_EN BIT7
+
+#define MAX_MSS_DENSITY_2T 0x13
+#define MAX_MSS_DENSITY_1T 0x0A
+
+#define RXDMA_AGG_EN BIT7
+
+#define RXDMA_AGG_TIMEOUT_DISABLE 0x00
+#define RXDMA_AGG_TIMEOUT_17MS 0x01
+#define RXDMA_AGG_TIMEOUT_17_2_MS 0x02
+#define RXDMA_AGG_TIMEOUT_17_4_MS 0x04
+#define RXDMA_AGG_TIMEOUT_17_10_MS 0x0A
+
+#define InvalidBBRFValue 0x12345678
+
+#define USB_RPWM 0xFE58
+
+#ifdef RTL8192SE
+#define RPWM PCI_RPWM
+#endif
+#ifdef RTL8192SU
+#define RPWM USB_RPWM
+#endif
+
+#if 1
+#define AFR 0x010
+#define BCN_TCFG 0x062
+#define RATR0 0x320
+#endif
+#define UnusedRegister 0x0320
+#define PSR UnusedRegister
+#define DCAM UnusedRegister
+#define BBAddr UnusedRegister
+#define PhyDataR UnusedRegister
+#define UFWP UnusedRegister
+
+
+
+#define ISO_MD2PP BIT0
+#define ISO_PA2PCIE BIT3
+#define ISO_PLL2MD BIT4
+#define ISO_PWC_DV2RP BIT11
+#define ISO_PWC_RV2RP BIT12
+
+#define FEN_MREGEN BIT15
+#define FEN_DCORE BIT11
+#define FEN_CPUEN BIT10
+
+#define PAD_HWPD_IDN BIT22
+
+#define SYS_CLKSEL_80M BIT0
+#define SYS_PS_CLKSEL BIT1
+#define SYS_CPU_CLKSEL BIT2
+#define SYS_MAC_CLK_EN BIT11
+#define SYS_SWHW_SEL BIT14
+#define SYS_FWHW_SEL BIT15
+
+
+#define CmdEEPROM_En BIT5
+#define CmdEERPOMSEL BIT4
+#define Cmd9346CR_9356SEL BIT4
+#define AutoLoadEEPROM (CmdEEPROM_En|CmdEERPOMSEL)
+#define AutoLoadEFUSE CmdEEPROM_En
+#define EPROM_CMD_OPERATING_MODE_SHIFT 6
+#define EPROM_CMD_OPERATING_MODE_MASK ((1<<7)|(1<<6))
+#define EPROM_CMD_CONFIG 0x3
+#define EPROM_CMD_NORMAL 0
+#define EPROM_CMD_LOAD 1
+#define EPROM_CMD_PROGRAM 2
+#define EPROM_CS_SHIFT 3
+#define EPROM_CK_SHIFT 2
+#define EPROM_W_SHIFT 1
+#define EPROM_R_SHIFT 0
+
+#define AFE_MBEN BIT1
+#define AFE_BGEN BIT0
+
+#define SPS1_SWEN BIT1
+#define SPS1_LDEN BIT0
+
+#define RF_EN BIT0
+#define RF_RSTB BIT1
+#define RF_SDMRSTB BIT2
+
+#define LDA15_EN BIT0
+
+#define LDV12_EN BIT0
+#define LDV12_SDBY BIT1
+
+#define XTAL_GATE_AFE BIT10
+
+#define APLL_EN BIT0
+
+#define AFR_CardBEn BIT0
+#define AFR_CLKRUN_SEL BIT1
+#define AFR_FuncRegEn BIT2
+
+#define APSDOFF_STATUS BIT15
+#define APSDOFF BIT14
+#define BBRSTn BIT13
+#define BB_GLB_RSTn BIT12
+#define SCHEDULE_EN BIT10
+#define MACRXEN BIT9
+#define MACTXEN BIT8
+#define DDMA_EN BIT7
+#define FW2HW_EN BIT6
+#define RXDMA_EN BIT5
+#define TXDMA_EN BIT4
+#define HCI_RXDMA_EN BIT3
+#define HCI_TXDMA_EN BIT2
+
+#define StopHCCA BIT6
+#define StopHigh BIT5
+#define StopMgt BIT4
+#define StopVO BIT3
+#define StopVI BIT2
+#define StopBE BIT1
+#define StopBK BIT0
+
+#define LBK_NORMAL 0x00
+#define LBK_MAC_LB (BIT0|BIT1|BIT3)
+#define LBK_MAC_DLB (BIT0|BIT1)
+#define LBK_DMA_LB (BIT0|BIT1|BIT2)
+
+#define TCP_OFDL_EN BIT25
+#define HWPC_TX_EN BIT24
+#define TXDMAPRE2FULL BIT23
+#define DISCW BIT20
+#define TCRICV BIT19
+#define CfendForm BIT17
+#define TCRCRC BIT16
+#define FAKE_IMEM_EN BIT15
+#define TSFRST BIT9
+#define TSFEN BIT8
+#define FWALLRDY (BIT0|BIT1|BIT2|BIT3|BIT4|BIT5|BIT6|BIT7)
+#define FWRDY BIT7
+#define BASECHG BIT6
+#define IMEM BIT5
+#define DMEM_CODE_DONE BIT4
+#define EXT_IMEM_CHK_RPT BIT3
+#define EXT_IMEM_CODE_DONE BIT2
+#define IMEM_CHK_RPT BIT1
+#define IMEM_CODE_DONE BIT0
+#define IMEM_CODE_DONE BIT0
+#define IMEM_CHK_RPT BIT1
+#define EMEM_CODE_DONE BIT2
+#define EMEM_CHK_RPT BIT3
+#define DMEM_CODE_DONE BIT4
+#define IMEM_RDY BIT5
+#define BASECHG BIT6
+#define FWRDY BIT7
+#define LOAD_FW_READY (IMEM_CODE_DONE|IMEM_CHK_RPT|EMEM_CODE_DONE|\
+ EMEM_CHK_RPT|DMEM_CODE_DONE|IMEM_RDY|BASECHG|\
+ FWRDY)
+#define TCR_TSFEN BIT8
+#define TCR_TSFRST BIT9
+#define TCR_FAKE_IMEM_EN BIT15
+#define TCR_CRC BIT16
+#define TCR_ICV BIT19
+#define TCR_DISCW BIT20
+#define TCR_HWPC_TX_EN BIT24
+#define TCR_TCP_OFDL_EN BIT25
+#define TXDMA_INIT_VALUE (IMEM_CHK_RPT|EXT_IMEM_CHK_RPT)
+
+#define RCR_APPFCS BIT31
+#define RCR_DIS_ENC_2BYTE BIT30
+#define RCR_DIS_AES_2BYTE BIT29
+#define RCR_HTC_LOC_CTRL BIT28
+#define RCR_ENMBID BIT27
+#define RCR_RX_TCPOFDL_EN BIT26
+#define RCR_APP_PHYST_RXFF BIT25
+#define RCR_APP_PHYST_STAFF BIT24
+#define RCR_CBSSID BIT23
+#define RCR_APWRMGT BIT22
+#define RCR_ADD3 BIT21
+#define RCR_AMF BIT20
+#define RCR_ACF BIT19
+#define RCR_ADF BIT18
+#define RCR_APP_MIC BIT17
+#define RCR_APP_ICV BIT16
+#define RCR_RXFTH BIT13
+#define RCR_AICV BIT12
+#define RCR_RXDESC_LK_EN BIT11
+#define RCR_APP_BA_SSN BIT6
+#define RCR_ACRC32 BIT5
+#define RCR_RXSHFT_EN BIT4
+#define RCR_AB BIT3
+#define RCR_AM BIT2
+#define RCR_APM BIT1
+#define RCR_AAP BIT0
+#define RCR_MXDMA_OFFSET 8
+#define RCR_FIFO_OFFSET 13
+
+/*
+Network Type
+00: No link
+01: Link in ad hoc network
+10: Link in infrastructure network
+11: AP mode
+Default: 00b.
+*/
+#define MSR_LINK_MASK ((1<<0)|(1<<1))
+#define MSR_LINK_MANAGED 2
+#define MSR_LINK_NONE 0
+#define MSR_LINK_SHIFT 0
+#define MSR_LINK_ADHOC 1
+#define MSR_LINK_MASTER 3
+#if 1
+#define MSR_NOLINK 0x00
+#define MSR_ADHOC 0x01
+#define MSR_INFRA 0x02
+#define MSR_AP 0x03
+#endif
+#define ENUART BIT7
+#define ENJTAG BIT3
+#define BTMODE (BIT2|BIT1)
+#define ENBT BIT0
+
+#define ENMBID BIT7
+#define BCNUM (BIT6|BIT5|BIT4)
+
+
+#define USTIME_EDCA 0xFF00
+#define USTIME_TSF 0x00FF
+
+#define SIFS_TRX 0xFF00
+#define SIFS_CTX 0x00FF
+
+#define ENSWBCN BIT15
+#define DRVERLY_TU 0x0FF0
+#define DRVERLY_US 0x000F
+#define BCN_TCFG_CW_SHIFT 8
+#define BCN_TCFG_IFS 0
+
+
+#define RRSR_RSC_OFFSET 21
+#define RRSR_SHORT_OFFSET 23
+#define RRSR_RSC_BW_40M 0x600000
+#define RRSR_RSC_UPSUBCHNL 0x400000
+#define RRSR_RSC_LOWSUBCHNL 0x200000
+#define RRSR_SHORT 0x800000
+#define RRSR_1M BIT0
+#define RRSR_2M BIT1
+#define RRSR_5_5M BIT2
+#define RRSR_11M BIT3
+#define RRSR_6M BIT4
+#define RRSR_9M BIT5
+#define RRSR_12M BIT6
+#define RRSR_18M BIT7
+#define RRSR_24M BIT8
+#define RRSR_36M BIT9
+#define RRSR_48M BIT10
+#define RRSR_54M BIT11
+#define RRSR_MCS0 BIT12
+#define RRSR_MCS1 BIT13
+#define RRSR_MCS2 BIT14
+#define RRSR_MCS3 BIT15
+#define RRSR_MCS4 BIT16
+#define RRSR_MCS5 BIT17
+#define RRSR_MCS6 BIT18
+#define RRSR_MCS7 BIT19
+#define BRSR_AckShortPmb BIT23
+
+#define RATR_1M 0x00000001
+#define RATR_2M 0x00000002
+#define RATR_55M 0x00000004
+#define RATR_11M 0x00000008
+#define RATR_6M 0x00000010
+#define RATR_9M 0x00000020
+#define RATR_12M 0x00000040
+#define RATR_18M 0x00000080
+#define RATR_24M 0x00000100
+#define RATR_36M 0x00000200
+#define RATR_48M 0x00000400
+#define RATR_54M 0x00000800
+#define RATR_MCS0 0x00001000
+#define RATR_MCS1 0x00002000
+#define RATR_MCS2 0x00004000
+#define RATR_MCS3 0x00008000
+#define RATR_MCS4 0x00010000
+#define RATR_MCS5 0x00020000
+#define RATR_MCS6 0x00040000
+#define RATR_MCS7 0x00080000
+#define RATR_MCS8 0x00100000
+#define RATR_MCS9 0x00200000
+#define RATR_MCS10 0x00400000
+#define RATR_MCS11 0x00800000
+#define RATR_MCS12 0x01000000
+#define RATR_MCS13 0x02000000
+#define RATR_MCS14 0x04000000
+#define RATR_MCS15 0x08000000
+#define RATE_ALL_CCK RATR_1M|RATR_2M|RATR_55M|RATR_11M
+#define RATE_ALL_OFDM_AG RATR_6M|RATR_9M|RATR_12M|RATR_18M|RATR_24M|\
+ RATR_36M|RATR_48M|RATR_54M
+#define RATE_ALL_OFDM_1SS RATR_MCS0|RATR_MCS1|RATR_MCS2|RATR_MCS3 |\
+ RATR_MCS4|RATR_MCS5|RATR_MCS6 |RATR_MCS7
+#define RATE_ALL_OFDM_2SS RATR_MCS8|RATR_MCS9 |RATR_MCS10|RATR_MCS11|\
+ RATR_MCS12|RATR_MCS13|RATR_MCS14|RATR_MCS15
+
+#define AC_PARAM_TXOP_LIMIT_OFFSET 16
+#define AC_PARAM_ECW_MAX_OFFSET 12
+#define AC_PARAM_ECW_MIN_OFFSET 8
+#define AC_PARAM_AIFS_OFFSET 0
+
+#define AcmHw_HwEn BIT0
+#define AcmHw_BeqEn BIT1
+#define AcmHw_ViqEn BIT2
+#define AcmHw_VoqEn BIT3
+#define AcmHw_BeqStatus BIT4
+#define AcmHw_ViqStatus BIT5
+#define AcmHw_VoqStatus BIT6
+
+#define RETRY_LIMIT_SHORT_SHIFT 8
+#define RETRY_LIMIT_LONG_SHIFT 0
+
+#define NAV_UPPER_EN BIT16
+#define NAV_UPPER 0xFF00
+#define NAV_RTSRST 0xFF
+#define BW_OPMODE_20MHZ BIT2
+#define BW_OPMODE_5G BIT1
+#define BW_OPMODE_11J BIT0
+
+#define RXERR_RPT_RST BIT27
+#define RXERR_OFDM_PPDU 0
+#define RXERR_OFDM_FALSE_ALARM 1
+#define RXERR_OFDM_MPDU_OK 2
+#define RXERR_OFDM_MPDU_FAIL 3
+#define RXERR_CCK_PPDU 4
+#define RXERR_CCK_FALSE_ALARM 5
+#define RXERR_CCK_MPDU_OK 6
+#define RXERR_CCK_MPDU_FAIL 7
+#define RXERR_HT_PPDU 8
+#define RXERR_HT_FALSE_ALARM 9
+#define RXERR_HT_MPDU_TOTAL 10
+#define RXERR_HT_MPDU_OK 11
+#define RXERR_HT_MPDU_FAIL 12
+#define RXERR_RX_FULL_DROP 15
+
+
+#define CAM_CM_SecCAMPolling BIT31
+#define CAM_CM_SecCAMClr BIT30
+#define CAM_CM_SecCAMWE BIT16
+#define CAM_ADDR 0xFF
+
+#define Dbg_CAM_TXSecCAMInfo BIT31
+#define Dbg_CAM_SecKeyFound BIT30
+
+
+#define SCR_TxUseDK BIT0
+#define SCR_RxUseDK BIT1
+#define SCR_TxEncEnable BIT2
+#define SCR_RxDecEnable BIT3
+#define SCR_SKByA2 BIT4
+#define SCR_NoSKMC BIT5
+#define CAM_VALID BIT15
+#define CAM_NOTVALID 0x0000
+#define CAM_USEDK BIT5
+
+#define CAM_NONE 0x0
+#define CAM_WEP40 0x01
+#define CAM_TKIP 0x02
+#define CAM_AES 0x04
+#define CAM_WEP104 0x05
+
+#define TOTAL_CAM_ENTRY 32
+#define HALF_CAM_ENTRY 16
+
+#define CAM_CONFIG_USEDK true
+#define CAM_CONFIG_NO_USEDK false
+
+#define CAM_WRITE BIT16
+#define CAM_READ 0x00000000
+#define CAM_POLLINIG BIT31
+
+#define SCR_UseDK 0x01
+#define SCR_TxSecEnable 0x02
+#define SCR_RxSecEnable 0x04
+
+#define WOW_PMEN BIT0
+#define WOW_WOMEN BIT1
+#define WOW_MAGIC BIT2
+#define WOW_UWF BIT3
+
+#define GPIOMUX_EN BIT3
+#define GPIOSEL_GPIO 0
+#define GPIOSEL_PHYDBG 1
+#define GPIOSEL_BT 2
+#define GPIOSEL_WLANDBG 3
+#define GPIOSEL_GPIO_MASK ~(BIT0|BIT1)
+
+#define HST_RDBUSY BIT0
+#define CPU_WTBUSY BIT1
+
+#define IMR8190_DISABLED 0x0
+#define IMR_CPUERR BIT5
+#define IMR_ATIMEND BIT4
+#define IMR_TBDOK BIT3
+#define IMR_TBDER BIT2
+#define IMR_BCNDMAINT8 BIT1
+#define IMR_BCNDMAINT7 BIT0
+#define IMR_BCNDMAINT6 BIT31
+#define IMR_BCNDMAINT5 BIT30
+#define IMR_BCNDMAINT4 BIT29
+#define IMR_BCNDMAINT3 BIT28
+#define IMR_BCNDMAINT2 BIT27
+#define IMR_BCNDMAINT1 BIT26
+#define IMR_BCNDOK8 BIT25
+#define IMR_BCNDOK7 BIT24
+#define IMR_BCNDOK6 BIT23
+#define IMR_BCNDOK5 BIT22
+#define IMR_BCNDOK4 BIT21
+#define IMR_BCNDOK3 BIT20
+#define IMR_BCNDOK2 BIT19
+#define IMR_BCNDOK1 BIT18
+#define IMR_TIMEOUT2 BIT17
+#define IMR_TIMEOUT1 BIT16
+#define IMR_TXFOVW BIT15
+#define IMR_PSTIMEOUT BIT14
+#define IMR_BcnInt BIT13
+#define IMR_RXFOVW BIT12
+#define IMR_RDU BIT11
+#define IMR_RXCMDOK BIT10
+#define IMR_BDOK BIT9
+#define IMR_HIGHDOK BIT8
+#define IMR_COMDOK BIT7
+#define IMR_MGNTDOK BIT6
+#define IMR_HCCADOK BIT5
+#define IMR_BKDOK BIT4
+#define IMR_BEDOK BIT3
+#define IMR_VIDOK BIT2
+#define IMR_VODOK BIT1
+#define IMR_ROK BIT0
+
+
+#define TPPoll_BKQ BIT0
+#define TPPoll_BEQ BIT1
+#define TPPoll_VIQ BIT2
+#define TPPoll_VOQ BIT3
+#define TPPoll_BQ BIT4
+#define TPPoll_CQ BIT5
+#define TPPoll_MQ BIT6
+#define TPPoll_HQ BIT7
+#define TPPoll_HCCAQ BIT8
+#define TPPoll_StopBK BIT9
+#define TPPoll_StopBE BIT10
+#define TPPoll_StopVI BIT11
+#define TPPoll_StopVO BIT12
+#define TPPoll_StopMgt BIT13
+#define TPPoll_StopHigh BIT14
+#define TPPoll_StopHCCA BIT15
+#define TPPoll_SHIFT 8
+
+#define MXDMA2_16bytes 0x000
+#define MXDMA2_32bytes 0x001
+#define MXDMA2_64bytes 0x010
+#define MXDMA2_128bytes 0x011
+#define MXDMA2_256bytes 0x100
+#define MXDMA2_512bytes 0x101
+#define MXDMA2_1024bytes 0x110
+#define MXDMA2_NoLimit 0x7
+
+#define MULRW_SHIFT 3
+#define MXDMA2_RX_SHIFT 4
+#define MXDMA2_TX_SHIFT 0
+
+#define CCX_CMD_CLM_ENABLE BIT0
+#define CCX_CMD_NHM_ENABLE BIT1
+#define CCX_CMD_FUNCTION_ENABLE BIT8
+#define CCX_CMD_IGNORE_CCA BIT9
+#define CCX_CMD_IGNORE_TXON BIT10
+#define CCX_CLM_RESULT_READY BIT16
+#define CCX_NHM_RESULT_READY BIT16
+#define CCX_CMD_RESET 0x0
+
+
+#define HWSET_MAX_SIZE_92S 128
+
+
+
+#ifdef RTL8192SE
+#define RTL8190_EEPROM_ID 0x8129
+#define EEPROM_HPON 0x02
+#define EEPROM_CLK 0x06
+#define EEPROM_TESTR 0x08
+
+#define EEPROM_VID 0x0A
+#define EEPROM_DID 0x0C
+#define EEPROM_SVID 0x0E
+#define EEPROM_SMID 0x10
+
+#define EEPROM_MAC_ADDR 0x12
+#define EEPROM_NODE_ADDRESS_BYTE_0 0x12
+
+#define EEPROM_PwDiff 0x54
+
+#define EEPROM_TxPowerBase 0x50
+#define EEPROM_TX_PWR_INDEX_RANGE 28
+
+#define EEPROM_TX_PWR_HT20_DIFF 0x62
+#define DEFAULT_HT20_TXPWR_DIFF 2
+#define EEPROM_TX_PWR_OFDM_DIFF 0x65
+
+#define EEPROM_TxPWRGroup 0x67
+#define EEPROM_Regulatory 0x6D
+
+#define TX_PWR_SAFETY_CHK 0x6D
+#define EEPROM_TxPwIndex_CCK_24G 0x5D
+#define EEPROM_TxPwIndex_OFDM_24G 0x6B
+#define EEPROM_HT2T_CH1_A 0x6c
+#define EEPROM_HT2T_CH7_A 0x6d
+#define EEPROM_HT2T_CH13_A 0x6e
+#define EEPROM_HT2T_CH1_B 0x6f
+#define EEPROM_HT2T_CH7_B 0x70
+#define EEPROM_HT2T_CH13_B 0x71
+#define EEPROM_TSSI_A 0x74
+#define EEPROM_TSSI_B 0x75
+#define EEPROM_RFInd_PowerDiff 0x76
+#define EEPROM_Default_LegacyHTTxPowerDiff 0x3
+#define EEPROM_ThermalMeter 0x77
+#define EEPROM_BLUETOOTH_COEXIST 0x78
+#define EEPROM_BLUETOOTH_TYPE 0x4f
+
+#define EEPROM_Optional 0x78
+#ifdef RTL8192S_WAPI_SUPPORT
+#define EEPROM_WAPI_SUPPORT 0x78
+#endif
+#define EEPROM_WoWLAN 0x78
+
+#define EEPROM_CrystalCap 0x79
+#define EEPROM_ChannelPlan 0x7B
+#define EEPROM_Version 0x7C
+#define EEPROM_CustomID 0x7A
+#define EEPROM_BoardType 0x7E
+
+#define EEPROM_Default_TSSI 0x0
+#define EEPROM_Default_TxPowerDiff 0x0
+#define EEPROM_Default_CrystalCap 0x5
+#define EEPROM_Default_BoardType 0x02
+#define EEPROM_Default_TxPower 0x1010
+#define EEPROM_Default_HT2T_TxPwr 0x10
+
+#define EEPROM_Default_LegacyHTTxPowerDiff 0x3
+#define EEPROM_Default_ThermalMeter 0x12
+#define EEPROM_Default_BlueToothCoexist 0x0
+#define EEPROM_Default_BlueToothAntNum 0x0
+#define EEPROM_Default_BlueToothAntIso 0x0
+#define EEPROM_Default_BlueToothType 0x0
+#define EEPROM_Default_AntTxPowerDiff 0x0
+#define EEPROM_Default_TxPwDiff_CrystalCap 0x5
+#define EEPROM_Default_TxPowerLevel 0x22
+
+#define EEPROM_CHANNEL_PLAN_FCC 0x0
+#define EEPROM_CHANNEL_PLAN_IC 0x1
+#define EEPROM_CHANNEL_PLAN_ETSI 0x2
+#define EEPROM_CHANNEL_PLAN_SPAIN 0x3
+#define EEPROM_CHANNEL_PLAN_FRANCE 0x4
+#define EEPROM_CHANNEL_PLAN_MKK 0x5
+#define EEPROM_CHANNEL_PLAN_MKK1 0x6
+#define EEPROM_CHANNEL_PLAN_ISRAEL 0x7
+#define EEPROM_CHANNEL_PLAN_TELEC 0x8
+#define EEPROM_CHANNEL_PLAN_GLOBAL_DOMAIN 0x9
+#define EEPROM_CHANNEL_PLAN_WORLD_WIDE_13 0xA
+#define EEPROM_CHANNEL_PLAN_NCC 0xB
+#define EEPROM_CHANNEL_PLAN_BY_HW_MASK 0x80
+
+
+#define EEPROM_CID_DEFAULT 0x0
+#define EEPROM_CID_TOSHIBA 0x4
+#define EEPROM_CID_CCX 0x10
+#define EEPROM_CID_QMI 0x0D
+#define EEPROM_CID_WHQL 0xFE
+
+#else
+#define RTL8190_EEPROM_ID 0x8129
+#define EEPROM_HPON 0x02
+#define EEPROM_VID 0x08
+#define EEPROM_PID 0x0A
+#define EEPROM_USB_OPTIONAL 0x0C
+#define EEPROM_USB_PHY_PARA1 0x0D
+#define EEPROM_NODE_ADDRESS_BYTE_0 0x12
+#define EEPROM_Version 0x50
+#define EEPROM_ChannelPlan 0x51
+#define EEPROM_CustomID 0x52
+#define EEPROM_SubCustomID 0x53
+
+#if (EEPROM_OLD_FORMAT_SUPPORT ==1)
+#define EEPROM_PwDiff 0x54
+#define EEPROM_ThermalMeter 0x55
+#define EEPROM_Reserved 0x56
+#define EEPROM_CrystalCap 0x57
+#define EEPROM_TxPowerBase 0x58
+#define EEPROM_TxPwIndex_CCK_24G 0x59
+#define EEPROM_TxPwIndex_OFDM_24G 0x67
+#define EEPROM_TSSI_A 0x75
+#define EEPROM_TSSI_B 0x76
+#define EEPROM_TxPwTkMode 0x77
+#define EEPROM_HT2T_CH1_A 0x78
+#define EEPROM_HT2T_CH7_A 0x79
+#define EEPROM_HT2T_CH13_A 0x7a
+#define EEPROM_HT2T_CH1_B 0x7b
+#define EEPROM_HT2T_CH7_B 0x7c
+#define EEPROM_HT2T_CH13_B 0x7d
+#define EEPROM_BoardType 0x7e
+#else
+#define EEPROM_BoardType 0x54
+#define EEPROM_TxPwIndex 0x55
+#define EEPROM_PwDiff 0x67
+#define EEPROM_ThermalMeter 0x68
+#define EEPROM_CrystalCap 0x69
+#define EEPROM_TxPowerBase 0x6a
+#define EEPROM_TSSI_A 0x6b
+#define EEPROM_TSSI_B 0x6c
+#define EEPROM_TxPwTkMode 0x6d
+
+#define EEPROM_TX_PWR_HT20_DIFF 0x6e
+#define DEFAULT_HT20_TXPWR_DIFF 2
+#define EEPROM_TX_PWR_OFDM_DIFF 0x71
+#define TX_PWR_SAFETY_CHK 0x79
+#endif
+#define EEPROM_USB_Default_OPTIONAL_FUNC 0x8
+#define EEPROM_USB_Default_PHY_PARAM 0x0
+#define EEPROM_Default_TSSI 0x0
+#define EEPROM_Default_TxPwrTkMode 0x0
+#define EEPROM_Default_TxPowerDiff 0x0
+#define EEPROM_Default_TxPowerBase 0x0
+#define EEPROM_Default_ThermalMeter 0x7
+#define EEPROM_Default_PwDiff 0x4
+#define EEPROM_Default_CrystalCap 0x5
+#define EEPROM_Default_TxPower 0x1010
+#define EEPROM_Default_BoardType 0x02
+#define EEPROM_Default_HT2T_TxPwr 0x10
+#define EEPROM_USB_SN BIT0
+#define EEPROM_USB_REMOTE_WAKEUP BIT1
+#define EEPROM_USB_DEVICE_PWR BIT2
+#define EEPROM_EP_NUMBER (BIT3|BIT4)
+
+
+#define EEPROM_CHANNEL_PLAN_FCC 0x0
+#define EEPROM_CHANNEL_PLAN_IC 0x1
+#define EEPROM_CHANNEL_PLAN_ETSI 0x2
+#define EEPROM_CHANNEL_PLAN_SPAIN 0x3
+#define EEPROM_CHANNEL_PLAN_FRANCE 0x4
+#define EEPROM_CHANNEL_PLAN_MKK 0x5
+#define EEPROM_CHANNEL_PLAN_MKK1 0x6
+#define EEPROM_CHANNEL_PLAN_ISRAEL 0x7
+#define EEPROM_CHANNEL_PLAN_TELEC 0x8
+#define EEPROM_CHANNEL_PLAN_GLOBAL_DOMAIN 0x9
+#define EEPROM_CHANNEL_PLAN_WORLD_WIDE_13 0xA
+#define EEPROM_CHANNEL_PLAN_BY_HW_MASK 0x80
+
+#define EEPROM_CID_DEFAULT 0x0
+#define EEPROM_CID_ALPHA 0x1
+#define EEPROM_CID_TOSHIBA 0x4
+#define EEPROM_CID_WHQL 0xFE
+#endif
+
+
+#define FW_DIG_DISABLE 0xfd00cc00
+#define FW_DIG_ENABLE 0xfd000000
+#define FW_DIG_HALT 0xfd000001
+#define FW_DIG_RESUME 0xfd000002
+#define FW_HIGH_PWR_DISABLE 0xfd000008
+#define FW_HIGH_PWR_ENABLE 0xfd000009
+#define FW_ADD_A2_ENTRY 0xfd000016
+#define FW_TXPWR_TRACK_ENABLE 0xfd000017
+#define FW_TXPWR_TRACK_DISABLE 0xfd000018
+#define FW_TXPWR_TRACK_THERMAL 0xfd000019
+#define FW_TXANT_SWITCH_ENABLE 0xfd000023
+#define FW_TXANT_SWITCH_DISABLE 0xfd000024
+#define FW_RA_INIT 0xfd000026
+#define FW_CTRL_DM_BY_DRIVER 0Xfd00002a
+#define FW_RA_IOT_BG_COMB 0xfd000030
+#define FW_RA_IOT_N_COMB 0xfd000031
+#define FW_RA_REFRESH 0xfd0000a0
+#define FW_RA_UPDATE_MASK 0xfd0000a2
+#define FW_RA_DISABLE 0xfd0000a4
+#define FW_RA_ACTIVE 0xfd0000a6
+#define FW_RA_DISABLE_RSSI_MASK 0xfd0000ac
+#define FW_RA_ENABLE_RSSI_MASK 0xfd0000ad
+#define FW_RA_RESET 0xfd0000af
+#define FW_DM_DISABLE 0xfd00aa00
+#define FW_IQK_ENABLE 0xf0000020
+#define FW_IQK_SUCCESS 0x0000dddd
+#define FW_IQK_FAIL 0x0000ffff
+#define FW_OP_FAILURE 0xffffffff
+#define FW_TX_FEEDBACK_NONE 0xfb000000
+#define FW_TX_FEEDBACK_DTM_ENABLE (FW_TX_FEEDBACK_NONE | 0x1)
+#define FW_TX_FEEDBACK_CCX_ENABLE (FW_TX_FEEDBACK_NONE | 0x2)
+#define FW_BB_RESET_ENABLE 0xff00000d
+#define FW_BB_RESET_DISABLE 0xff00000e
+#define FW_LPS_ENTER 0xfe000010
+#define FW_LPS_LEAVE 0xfe000011
+#define FW_INDIRECT_READ 0xf2000000
+#define FW_INDIRECT_WRITE 0xf2000001
+#define FW_CHAN_SET 0xf3000001
+
+
+
+
+
+
+
+#define RFPC 0x5F
+#define RCR_9356SEL BIT6
+#define TCR_LRL_OFFSET 0
+#define TCR_SRL_OFFSET 8
+#define TCR_MXDMA_OFFSET 21
+#define TCR_SAT BIT24
+#define RCR_MXDMA_OFFSET 8
+#define RCR_FIFO_OFFSET 13
+#define RCR_OnlyErlPkt BIT31
+#define CWR 0xDC
+#define RetryCTR 0xDE
+
+
+#define LED1Cfg UnusedRegister
+#define LED0Cfg UnusedRegister
+#define GPI UnusedRegister
+#define BRSR UnusedRegister
+#define CPU_GEN UnusedRegister
+#define SIFS UnusedRegister
+
+#define CPU_GEN_SYSTEM_RESET 0x00000001
+
+
+
+
+#define CCX_COMMAND_REG 0x890
+#define CLM_PERIOD_REG 0x894
+#define NHM_PERIOD_REG 0x896
+#define NHM_THRESHOLD0 0x898
+#define NHM_THRESHOLD1 0x899
+#define NHM_THRESHOLD2 0x89A
+#define NHM_THRESHOLD3 0x89B
+#define NHM_THRESHOLD4 0x89C
+#define NHM_THRESHOLD5 0x89D
+#define NHM_THRESHOLD6 0x89E
+#define CLM_RESULT_REG 0x8D0
+#define NHM_RESULT_REG 0x8D4
+#define NHM_RPI_COUNTER0 0x8D8
+#define NHM_RPI_COUNTER1 0x8D9
+#define NHM_RPI_COUNTER2 0x8DA
+#define NHM_RPI_COUNTER3 0x8DB
+#define NHM_RPI_COUNTER4 0x8DC
+#define NHM_RPI_COUNTER5 0x8DD
+#define NHM_RPI_COUNTER6 0x8DE
+#define NHM_RPI_COUNTER7 0x8DF
+
+
+#define HAL_8192S_HW_GPIO_OFF_BIT BIT3
+#define HAL_8192S_HW_GPIO_OFF_MASK 0xF7
+#define HAL_8192S_HW_GPIO_WPS_BIT BIT4
+
+#endif
+
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg.c b/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg.c
new file mode 100755
index 00000000000..87df799dfbc
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg.c
@@ -0,0 +1,5904 @@
+/*Created on 2010/ 2/24, 2:32*/
+
+#ifdef RTL8192SE
+#include "r8192S_hwimg.h"
+
+u8 Rtl8192SEFwImgArray[ImgArrayLength] = {
+0x92,0x81,0x3e,0x70,0x30,0x00,0x00,0x00,0x08,0xb4,0x00,0x00,0xc8,0x87,0x00,0x00,
+0x30,0x00,0x00,0x00,0x40,0x86,0x00,0x00,0x3e,0x00,0x0c,0x00,0x01,0x18,0x17,0x51,
+0x92,0x81,0x01,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x1f,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x1a,0x3c,0x80,0x03,0x5a,0x37,0x00,0x80,0x1b,0x3c,0x80,0x00,0x7b,0x37,
+0x00,0x00,0x5b,0xaf,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x37,0x00,0x80,0x1b,0x3c,
+0x80,0x00,0x7b,0x37,0x00,0x00,0x5b,0xaf,0x01,0x80,0x1a,0x3c,0xcc,0xac,0x5a,0x27,
+0x08,0x00,0x40,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x04,0x00,0xa1,0xaf,0x08,0x00,0xa2,0xaf,0x0c,0x00,0xa3,0xaf,0x10,0x00,0xa4,0xaf,
+0x14,0x00,0xa5,0xaf,0x18,0x00,0xa6,0xaf,0x1c,0x00,0xa7,0xaf,0x20,0x00,0xa8,0xaf,
+0x24,0x00,0xa9,0xaf,0x28,0x00,0xaa,0xaf,0x2c,0x00,0xab,0xaf,0x30,0x00,0xac,0xaf,
+0x34,0x00,0xad,0xaf,0x38,0x00,0xae,0xaf,0x3c,0x00,0xaf,0xaf,0x12,0x40,0x00,0x00,
+0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40,0x40,0x00,0xb0,0xaf,0x44,0x00,0xb1,0xaf,
+0x48,0x00,0xb2,0xaf,0x4c,0x00,0xb3,0xaf,0x50,0x00,0xb4,0xaf,0x54,0x00,0xb5,0xaf,
+0x58,0x00,0xb6,0xaf,0x5c,0x00,0xb7,0xaf,0x60,0x00,0xb8,0xaf,0x64,0x00,0xb9,0xaf,
+0x68,0x00,0xbc,0xaf,0x6c,0x00,0xbd,0xaf,0x70,0x00,0xbe,0xaf,0x74,0x00,0xbf,0xaf,
+0x78,0x00,0xa8,0xaf,0x7c,0x00,0xa9,0xaf,0x80,0x00,0xaa,0xaf,0xcb,0x2a,0x00,0x08,
+0x21,0x20,0xa0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x06,0x3c,0x00,0x80,0x02,0x3c,0xe8,0xff,0xbd,0x27,0x18,0x03,0xc3,0x34,
+0x00,0x03,0x42,0x24,0x14,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x42,0xb0,0x03,0x3c,
+0x03,0x00,0x63,0x34,0x00,0x00,0x62,0x90,0x02,0x80,0x0a,0x3c,0x02,0x80,0x10,0x3c,
+0xff,0x00,0x42,0x30,0x00,0x46,0x02,0x00,0x10,0x00,0x42,0x30,0x13,0x00,0x40,0x10,
+0x03,0x46,0x08,0x00,0xcc,0x3d,0x42,0x8d,0x38,0x15,0x05,0x26,0xec,0x23,0xa4,0x94,
+0x01,0x00,0x47,0x24,0x10,0x00,0x02,0x24,0xb0,0x03,0xc9,0x34,0x00,0x00,0x62,0xa0,
+0x07,0x00,0x80,0x10,0x1c,0x03,0xc6,0x34,0xf0,0x23,0xa2,0x94,0xec,0x23,0xa0,0xa4,
+0xf0,0x23,0xa0,0xa4,0x00,0x00,0x04,0x24,0x00,0x00,0xc2,0xa0,0x00,0x00,0x20,0xad,
+0x01,0x00,0x82,0x24,0xcc,0x3d,0x47,0xad,0xec,0x23,0xa2,0xa4,0x12,0x00,0x00,0x05,
+0x42,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x38,0x15,0x04,0x26,0x18,0x0b,0x83,0x94,0x14,0x0b,0x85,0x94,
+0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x80,0x00,0x63,0x30,0x41,0xb0,0x02,0x3c,
+0x25,0x18,0x65,0x00,0x08,0x00,0x42,0x34,0x18,0x00,0xbd,0x27,0x00,0x00,0x43,0xa4,
+0x08,0x00,0xe0,0x03,0x14,0x0b,0x83,0xa4,0x80,0xff,0x03,0x24,0x03,0x00,0x42,0x34,
+0x00,0x00,0x43,0xa0,0x54,0x1c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x38,0x15,0x04,0x26,
+0x18,0x0b,0x83,0x94,0x14,0x0b,0x85,0x94,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,
+0x80,0x00,0x63,0x30,0x41,0xb0,0x02,0x3c,0x25,0x18,0x65,0x00,0x08,0x00,0x42,0x34,
+0x18,0x00,0xbd,0x27,0x00,0x00,0x43,0xa4,0x08,0x00,0xe0,0x03,0x14,0x0b,0x83,0xa4,
+0xff,0x00,0x84,0x30,0x0b,0x00,0x82,0x2c,0xff,0xff,0xe7,0x30,0x10,0x00,0xa8,0x93,
+0x19,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0x02,0x80,0x03,0x3c,0x80,0x10,0x04,0x00,
+0xc0,0x82,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,
+0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x43,0xb0,0x02,0x3c,0x78,0x00,0x44,0x34,
+0x07,0x00,0xe2,0x30,0x00,0x00,0x85,0xac,0x04,0x00,0x86,0xac,0x04,0x00,0x40,0x18,
+0x00,0x00,0x00,0x00,0xf8,0xff,0xe2,0x30,0x08,0x00,0x42,0x24,0xff,0xff,0x47,0x30,
+0x21,0x10,0xe8,0x00,0x00,0x80,0x03,0x3c,0x08,0x00,0x82,0xac,0x25,0x10,0x43,0x00,
+0x08,0x00,0x82,0xac,0x01,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x6c,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,
+0x20,0x01,0x00,0x08,0x60,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,
+0x54,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x48,0x00,0x44,0x34,
+0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x3c,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,
+0x20,0x01,0x00,0x08,0x30,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,
+0x24,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x18,0x00,0x44,0x34,
+0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x0c,0x00,0x44,0x34,0x20,0x01,0x00,0x08,
+0x43,0xb0,0x04,0x3c,0x01,0x00,0x02,0x24,0x43,0xb0,0x03,0x3c,0x04,0x20,0x82,0x00,
+0x88,0x00,0x65,0x34,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0xff,0x42,0x30,
+0x05,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x00,0x00,0xa2,0x94,
+0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x30,0x24,0x10,0x44,0x00,0xf5,0xff,0x40,0x1c,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x08,0x3c,
+0x00,0x80,0x02,0x3c,0xd0,0xff,0xbd,0x27,0x18,0x03,0x03,0x35,0x7c,0x05,0x42,0x24,
+0x00,0x00,0x62,0xac,0x28,0x00,0xb4,0xaf,0x20,0x00,0xb2,0xaf,0x18,0x00,0xb0,0xaf,
+0x2c,0x00,0xbf,0xaf,0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf,0x08,0x00,0xf3,0x8c,
+0xff,0x00,0xc6,0x30,0x00,0x01,0x02,0x24,0x0c,0x00,0xf1,0x84,0x23,0x10,0x46,0x00,
+0xff,0xff,0xa3,0x30,0xff,0xff,0x50,0x30,0xff,0x00,0x94,0x30,0xd0,0x03,0x08,0x35,
+0x21,0x30,0xc5,0x00,0x21,0x20,0x80,0x02,0x21,0x28,0x60,0x02,0x21,0x38,0x00,0x02,
+0x02,0x92,0x03,0x00,0x00,0x00,0x11,0xad,0x00,0x00,0x13,0xad,0x8f,0x01,0x00,0x08,
+0x00,0x00,0x00,0x00,0x01,0x01,0x23,0x2a,0xff,0xff,0x22,0x32,0x21,0x98,0x70,0x02,
+0x21,0x20,0x80,0x02,0x00,0x01,0x10,0x24,0x4d,0x01,0x00,0x0c,0x0b,0x80,0x43,0x00,
+0xc0,0x10,0x12,0x00,0x28,0xb0,0x03,0x3c,0x21,0x10,0x43,0x00,0x00,0x00,0x45,0x90,
+0x20,0x10,0x06,0x3c,0x21,0x20,0x80,0x02,0xff,0x00,0xb2,0x30,0x00,0x12,0x12,0x00,
+0x21,0x30,0x46,0x00,0x21,0x28,0x60,0x02,0x21,0x38,0x00,0x02,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa0,0xaf,0x23,0x18,0x30,0x02,0x00,0x8c,0x03,0x00,0x03,0x8c,0x11,0x00,
+0xe8,0xff,0x20,0x1e,0x00,0x00,0x00,0x00,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,0xc8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,
+0x25,0xb0,0x04,0x3c,0x20,0x00,0xb2,0xaf,0x38,0x15,0x52,0x24,0x00,0x80,0x02,0x3c,
+0x18,0x03,0x83,0x34,0x78,0x06,0x42,0x24,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,
+0x30,0x00,0xbf,0xaf,0x2c,0x00,0xb5,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0x00,0x00,0x62,0xac,0xb0,0x03,0x93,0x34,0x21,0xa0,0x40,0x02,0xc0,0x24,0x42,0x8e,
+0x2c,0x25,0x50,0x8e,0x21,0x20,0x00,0x00,0x00,0x00,0x62,0xae,0xc4,0x24,0x42,0xae,
+0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,0x2c,0x25,0x44,0x8e,
+0x30,0x25,0x43,0x8e,0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,
+0x0a,0x18,0x82,0x00,0x2c,0x25,0x43,0xae,0x2c,0x25,0x85,0x8e,0x00,0x00,0x00,0x00,
+0x00,0x00,0x65,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32,0x25,0x80,0x02,0x02,
+0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,0xff,0x00,0x15,0x24,0x21,0x20,0x00,0x00,
+0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0x20,0x10,0x02,0x3c,0x40,0x00,0x07,0x24,
+0x00,0x1a,0x11,0x00,0x21,0x18,0x62,0x00,0x05,0x00,0x35,0x12,0x21,0x30,0x60,0x00,
+0x74,0x24,0x91,0xa2,0xc0,0x24,0x83,0xae,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x00,0x00,0x05,0x96,0x24,0x24,0x83,0x8e,0x2a,0xb0,0x02,0x3c,0x27,0x20,0x05,0x00,
+0x01,0x00,0x46,0x34,0x21,0x10,0x65,0x00,0x2b,0x18,0x64,0x00,0x02,0x00,0x60,0x10,
+0x00,0x00,0x00,0x00,0x24,0x24,0x82,0xae,0x04,0x00,0x04,0x8e,0x08,0x00,0x03,0x8e,
+0xff,0xe0,0x02,0x3c,0xff,0xff,0x42,0x34,0x1f,0x00,0x84,0x30,0x24,0x18,0x62,0x00,
+0x00,0x26,0x04,0x00,0xff,0xdf,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x00,0x40,0x04,0x3c,0xc0,0xff,0x02,0x24,0x25,0x18,0x64,0x00,
+0x24,0x18,0x62,0x00,0x08,0x00,0x03,0xae,0x01,0x00,0x02,0x24,0x02,0x00,0x03,0x24,
+0x00,0x00,0xc2,0xa0,0x00,0x00,0xc3,0xa0,0xbc,0xff,0x35,0x16,0x41,0xb0,0x03,0x3c,
+0x08,0x0b,0x82,0x8e,0x30,0x00,0xbf,0x8f,0x00,0x38,0x42,0x34,0x00,0x00,0x62,0xac,
+0x2c,0x00,0xb5,0x8f,0x08,0x0b,0x82,0xae,0x24,0x00,0xb3,0x8f,0x28,0x00,0xb4,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x38,0x00,0xbd,0x27,0x25,0xb0,0x04,0x3c,0x00,0x80,0x02,0x3c,0xc0,0xff,0xbd,0x27,
+0x18,0x03,0x83,0x34,0x04,0x08,0x42,0x24,0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf,
+0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,
+0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x02,0x80,0x02,0x3c,0x38,0x15,0x52,0x24,0xb0,0x03,0x95,0x34,0x25,0x02,0x00,0x08,
+0x21,0xf0,0x40,0x02,0x08,0x00,0x04,0xae,0x82,0x0b,0x82,0x92,0x00,0x00,0x00,0x00,
+0x45,0x00,0x40,0x10,0x2a,0xb0,0x02,0x3c,0x09,0x00,0x42,0x34,0x01,0x00,0x03,0x24,
+0x02,0x00,0x04,0x24,0x00,0x00,0x43,0xa0,0x00,0x00,0x44,0xa0,0x5a,0x00,0x36,0x12,
+0x00,0x00,0x00,0x00,0xd8,0x24,0x42,0x8e,0x44,0x25,0x53,0x8e,0x01,0x00,0x04,0x24,
+0x00,0x00,0xa2,0xae,0xdc,0x24,0x42,0xae,0x00,0x00,0xb3,0xae,0x4d,0x01,0x00,0x0c,
+0x21,0xa0,0xc0,0x03,0x44,0x25,0x44,0x8e,0x48,0x25,0x43,0x8e,0x40,0x00,0x84,0x24,
+0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x44,0x25,0x43,0xae,
+0x44,0x25,0xc5,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0xa5,0xae,0x02,0x80,0x17,0x3c,
+0xff,0xff,0x62,0x32,0x25,0x80,0x57,0x00,0x00,0x00,0xb0,0xae,0x0c,0x00,0x02,0x92,
+0xff,0x00,0x16,0x24,0x01,0x00,0x04,0x24,0x00,0x00,0xa2,0xae,0x0c,0x00,0x11,0x92,
+0x20,0x10,0x02,0x3c,0x40,0x00,0x07,0x24,0x00,0x1a,0x11,0x00,0x21,0x18,0x62,0x00,
+0x05,0x00,0x36,0x12,0x21,0x30,0x60,0x00,0xd8,0x24,0xc3,0xaf,0x7c,0x24,0xd1,0xa3,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x04,0x00,0x04,0x8e,0x08,0x00,0x03,0x8e,
+0xff,0xe0,0x02,0x3c,0xff,0xff,0x42,0x34,0x1f,0x00,0x84,0x30,0x24,0x18,0x62,0x00,
+0x00,0x26,0x04,0x00,0xff,0xdf,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0xc0,0xff,0x05,0x24,
+0x82,0x11,0x03,0x00,0x24,0x20,0x65,0x00,0x01,0x00,0x42,0x30,0xbd,0xff,0x40,0x10,
+0x04,0x00,0x84,0x34,0x08,0x00,0x03,0xae,0x82,0x0b,0x82,0x92,0x00,0x00,0x00,0x00,
+0xbd,0xff,0x40,0x14,0x2a,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x01,0x00,0x03,0x24,0x82,0x0b,0x83,0xa2,
+0x02,0x00,0x02,0x92,0x00,0x00,0x00,0x00,0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30,
+0x25,0x10,0x57,0x00,0x02,0x00,0x43,0x94,0x00,0x00,0x00,0x00,0xff,0xc0,0x64,0x30,
+0x00,0xc0,0x84,0x34,0xe0,0x24,0x00,0x0c,0x83,0x0b,0x83,0xa2,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x2a,0xb0,0x02,0x3c,0x09,0x00,0x42,0x34,
+0x01,0x00,0x03,0x24,0x02,0x00,0x04,0x24,0x00,0x00,0x43,0xa0,0x00,0x00,0x44,0xa0,
+0xa8,0xff,0x36,0x16,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x03,0x3c,0x38,0x15,0x62,0x24,
+0x08,0x0b,0x43,0x8c,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x38,0x63,0x34,
+0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x83,0xac,0x08,0x00,0xe0,0x03,
+0x08,0x0b,0x43,0xac,0x25,0xb0,0x04,0x3c,0x00,0x80,0x02,0x3c,0xc0,0xff,0xbd,0x27,
+0x18,0x03,0x83,0x34,0x54,0x0a,0x42,0x24,0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,
+0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,
+0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x02,0x80,0x16,0x3c,
+0x38,0x15,0xd3,0x26,0xb0,0x03,0x94,0x34,0x02,0x80,0x15,0x3c,0x21,0xb8,0x60,0x02,
+0xcc,0x24,0x62,0x8e,0x38,0x25,0x70,0x8e,0x01,0x00,0x04,0x24,0x00,0x00,0x82,0xae,
+0xd0,0x24,0x62,0xae,0x00,0x00,0x90,0xae,0x4d,0x01,0x00,0x0c,0x21,0x88,0xe0,0x02,
+0x38,0x25,0x64,0x8e,0x3c,0x25,0x63,0x8e,0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,
+0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x38,0x25,0x63,0xae,0x38,0x25,0xe5,0x8e,
+0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32,
+0x25,0x80,0x02,0x02,0x00,0x00,0x90,0xae,0x0c,0x00,0x02,0x92,0x00,0x00,0x00,0x00,
+0x00,0x00,0x82,0xae,0x0c,0x00,0x12,0x92,0xff,0x00,0x02,0x24,0x0a,0x00,0x42,0x12,
+0x00,0x1a,0x12,0x00,0x20,0x10,0x02,0x3c,0x21,0x18,0x62,0x00,0xcc,0x24,0xe3,0xae,
+0x78,0x24,0xf2,0xa2,0x21,0x30,0x60,0x00,0x01,0x00,0x04,0x24,0x40,0x00,0x07,0x24,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x04,0x24,0x22,0x8e,0x04,0x00,0x03,0x8e,
+0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x5d,0x00,0x40,0x14,0x1f,0x00,0x64,0x30,
+0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,
+0x00,0x26,0x04,0x00,0x25,0x28,0x44,0x00,0x08,0x00,0x05,0xae,0xc2,0x11,0x05,0x00,
+0x01,0x00,0x43,0x30,0x47,0x00,0x60,0x14,0x01,0x00,0x02,0x24,0x00,0x00,0x04,0x96,
+0x28,0x24,0x23,0x8e,0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,0x05,0x00,0x40,0x10,
+0xff,0xdf,0x02,0x3c,0x21,0x10,0x64,0x00,0x28,0x24,0x22,0xae,0x08,0x00,0x05,0x8e,
+0xff,0xdf,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x28,0xa2,0x00,0x00,0x40,0x03,0x3c,
+0x25,0x28,0xa3,0x00,0x82,0x11,0x05,0x00,0x01,0x00,0x42,0x30,0x03,0x00,0x40,0x14,
+0xc0,0xff,0x02,0x24,0x24,0x10,0xa2,0x00,0x04,0x00,0x45,0x34,0x08,0x00,0x05,0xae,
+0x38,0x15,0xc2,0x26,0x82,0x0b,0x44,0x90,0x01,0x00,0x03,0x24,0x3b,0x00,0x83,0x10,
+0x7f,0xff,0x02,0x24,0x24,0x10,0xa2,0x00,0x08,0x00,0x02,0xae,0x38,0x15,0xc5,0x26,
+0xd0,0x24,0xa2,0x8c,0x20,0x00,0x10,0x8e,0x00,0x80,0x03,0x3c,0x25,0x10,0x43,0x00,
+0x2a,0xb0,0x03,0x3c,0x08,0x00,0x50,0xac,0x05,0x00,0x70,0x34,0x01,0x00,0x02,0x24,
+0x02,0x00,0x03,0x24,0x00,0x00,0x02,0xa2,0x00,0x00,0x03,0xa2,0xdc,0x3d,0xa2,0x96,
+0xff,0x00,0x03,0x24,0x01,0x00,0x42,0x24,0xdc,0x3d,0xa2,0xa6,0xdc,0x3d,0xa4,0x96,
+0x25,0xb0,0x02,0x3c,0x66,0x03,0x42,0x34,0x00,0x00,0x44,0xa4,0x98,0xff,0x43,0x16,
+0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x08,0x0b,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x38,0x42,0x34,
+0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x62,0xac,0x08,0x00,0xe0,0x03,
+0x08,0x0b,0xa2,0xac,0xc3,0xff,0x62,0x14,0xff,0xdf,0x02,0x3c,0x00,0x00,0x04,0x96,
+0x24,0x24,0x23,0x8e,0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,0xbd,0xff,0x40,0x10,
+0xff,0xdf,0x02,0x3c,0x21,0x10,0x64,0x00,0xeb,0x02,0x00,0x08,0x24,0x24,0x22,0xae,
+0x08,0x00,0x05,0x8e,0xe0,0x02,0x00,0x08,0xc2,0x11,0x05,0x00,0x80,0x00,0xa5,0x34,
+0xff,0x02,0x00,0x08,0x08,0x00,0x05,0xae,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf,
+0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,
+0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0x02,0x80,0x06,0x3c,0x94,0x3e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x18,0x03,0x42,0x34,0xe8,0x0c,0x63,0x24,0x40,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,
+0x21,0xb0,0x00,0x00,0x03,0x00,0x80,0x10,0x7f,0x00,0xa2,0x30,0xbf,0x00,0xa2,0x30,
+0x01,0x00,0x16,0x24,0x94,0x3e,0xc2,0xa0,0x94,0x3e,0xc2,0x90,0x25,0xb0,0x04,0x3c,
+0x88,0x02,0x83,0x34,0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x02,0x80,0x15,0x3c,0x38,0x15,0xb2,0x26,0xb0,0x03,0x93,0x34,
+0x02,0x80,0x14,0x3c,0xac,0x03,0x00,0x08,0x21,0xb8,0x40,0x02,0x58,0x24,0xf1,0xa2,
+0x38,0x15,0xa2,0x26,0x90,0x24,0x46,0x8c,0xfc,0x24,0x45,0x8c,0x03,0x00,0x04,0x24,
+0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x38,0x15,0xa5,0x26,
+0x04,0x24,0xa2,0x8c,0x04,0x00,0x03,0x8e,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,
+0x08,0x00,0x40,0x14,0x1f,0x00,0x64,0x30,0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c,
+0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,0x00,0x26,0x04,0x00,0x25,0x18,0x44,0x00,
+0x08,0x00,0x03,0xae,0x00,0x00,0x04,0x96,0x28,0x24,0xa3,0x8c,0x27,0x10,0x04,0x00,
+0x2b,0x10,0x62,0x00,0x02,0x00,0x40,0x10,0x21,0x10,0x64,0x00,0x28,0x24,0xa2,0xac,
+0x10,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0x53,0x00,0x80,0x04,0x00,0x00,0x00,0x00,
+0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,
+0x0c,0x00,0x42,0x28,0x06,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x96,
+0x00,0x00,0x00,0x00,0xfd,0x0f,0x42,0x28,0x44,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x18,0x43,0x00,
+0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0x08,0x00,0x03,0xae,0x82,0x11,0x03,0x00,
+0x01,0x00,0x42,0x30,0x05,0x00,0x40,0x14,0x2a,0xb0,0x07,0x3c,0xc0,0xff,0x02,0x24,
+0x24,0x10,0x62,0x00,0x04,0x00,0x42,0x34,0x08,0x00,0x02,0xae,0x0d,0x00,0xe2,0x34,
+0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24,0x02,0x00,0x03,0x24,
+0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0,0xdc,0x3d,0x84,0x96,0x25,0xb0,0x06,0x3c,
+0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24,0xdc,0x3d,0x84,0xa6,0xdc,0x3d,0x82,0x96,
+0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4,0x33,0x00,0x23,0x12,0x00,0x00,0x00,0x00,
+0x90,0x24,0x42,0x8e,0xfc,0x24,0x50,0x8e,0x03,0x00,0x04,0x24,0x00,0x00,0x62,0xae,
+0x94,0x24,0x42,0xae,0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xfc,0x24,0x44,0x8e,0x00,0x25,0x43,0x8e,0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,
+0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0xfc,0x24,0x43,0xae,0xfc,0x24,0xe2,0x8e,
+0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32,
+0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,0x00,0x00,0x00,0x00,
+0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,0x9f,0xff,0x22,0x12,
+0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00,0x93,0xff,0xc0,0x16,
+0x90,0x24,0xe2,0xae,0x60,0x03,0x00,0x08,0x54,0x24,0xf1,0xa2,0x08,0x00,0x03,0x8e,
+0x94,0x03,0x00,0x08,0x82,0x11,0x03,0x00,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,
+0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x14,0x00,0x42,0x28,0xab,0xff,0x40,0x14,
+0x42,0x12,0x03,0x00,0x9f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x10,0x82,0x00,
+0x82,0x03,0x00,0x08,0x10,0x00,0x02,0xae,0x20,0x00,0xc0,0x12,0x38,0x15,0xa2,0x26,
+0x58,0x24,0x43,0x90,0x41,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0,
+0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x38,0x15,0xa5,0x26,0x08,0x0b,0xa4,0x8c,0x01,0x00,0x02,0x3c,0x38,0x00,0xbf,0x8f,
+0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x00,0x80,0x42,0x34,0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,
+0x00,0x00,0x64,0xac,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa4,0xac,0x54,0x24,0x43,0x90,
+0x40,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x38,0x15,0xa5,0x26,
+0x08,0x0b,0xa4,0x8c,0x01,0x00,0x02,0x3c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x80,0x42,0x34,
+0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x64,0xac,
+0x08,0x00,0xe0,0x03,0x08,0x0b,0xa4,0xac,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf,
+0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,
+0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0x02,0x80,0x06,0x3c,0x94,0x3e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x18,0x03,0x42,0x34,0x78,0x10,0x63,0x24,0x10,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,
+0x21,0xb0,0x00,0x00,0x03,0x00,0x80,0x10,0xdf,0x00,0xa2,0x30,0xef,0x00,0xa2,0x30,
+0x01,0x00,0x16,0x24,0x94,0x3e,0xc2,0xa0,0x94,0x3e,0xc3,0x90,0x25,0xb0,0x02,0x3c,
+0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x02,0x80,0x15,0x3c,0x38,0x15,0xb2,0x26,
+0x21,0x98,0x40,0x00,0x02,0x80,0x14,0x3c,0x91,0x04,0x00,0x08,0x21,0xb8,0x40,0x02,
+0x60,0x24,0xf1,0xa2,0x38,0x15,0xa2,0x26,0x9c,0x24,0x46,0x8c,0x08,0x25,0x45,0x8c,
+0x04,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x38,0x15,0xa5,0x26,0x04,0x24,0xa2,0x8c,0x04,0x00,0x03,0x8e,0x42,0x10,0x02,0x00,
+0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14,0x1f,0x00,0x64,0x30,0x08,0x00,0x02,0x8e,
+0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,0x00,0x26,0x04,0x00,
+0x25,0x18,0x44,0x00,0x08,0x00,0x03,0xae,0x00,0x00,0x04,0x96,0x28,0x24,0xa3,0x8c,
+0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,0x02,0x00,0x40,0x10,0x21,0x10,0x64,0x00,
+0x28,0x24,0xa2,0xac,0x10,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0x53,0x00,0x80,0x04,
+0x00,0x00,0x00,0x00,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,
+0x3f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,0x06,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x00,0x00,0x02,0x96,0x00,0x00,0x00,0x00,0xfd,0x0f,0x42,0x28,0x44,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c,0xff,0xff,0x63,0x34,
+0x24,0x18,0x43,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0x08,0x00,0x03,0xae,
+0x82,0x11,0x03,0x00,0x01,0x00,0x42,0x30,0x05,0x00,0x40,0x14,0x2a,0xb0,0x07,0x3c,
+0xc0,0xff,0x02,0x24,0x24,0x10,0x62,0x00,0x04,0x00,0x42,0x34,0x08,0x00,0x02,0xae,
+0x15,0x00,0xe2,0x34,0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24,
+0x02,0x00,0x03,0x24,0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0,0xdc,0x3d,0x84,0x96,
+0x25,0xb0,0x06,0x3c,0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24,0xdc,0x3d,0x84,0xa6,
+0xdc,0x3d,0x82,0x96,0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4,0x33,0x00,0x23,0x12,
+0x00,0x00,0x00,0x00,0x9c,0x24,0x42,0x8e,0x08,0x25,0x50,0x8e,0x04,0x00,0x04,0x24,
+0x00,0x00,0x62,0xae,0xa0,0x24,0x42,0xae,0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x08,0x25,0x44,0x8e,0x0c,0x25,0x43,0x8e,0x40,0x00,0x84,0x24,
+0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x08,0x25,0x43,0xae,
+0x08,0x25,0xe2,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c,
+0xff,0xff,0x10,0x32,0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,
+0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,
+0x9f,0xff,0x22,0x12,0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00,
+0x93,0xff,0xc0,0x16,0x9c,0x24,0xe2,0xae,0x45,0x04,0x00,0x08,0x5c,0x24,0xf1,0xa2,
+0x08,0x00,0x03,0x8e,0x79,0x04,0x00,0x08,0x82,0x11,0x03,0x00,0x14,0x00,0x03,0x8e,
+0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x14,0x00,0x42,0x28,
+0xab,0xff,0x40,0x14,0x42,0x12,0x03,0x00,0x9f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x24,0x10,0x82,0x00,0x67,0x04,0x00,0x08,0x10,0x00,0x02,0xae,0x1f,0x00,0xc0,0x12,
+0x38,0x15,0xa2,0x26,0x60,0x24,0x43,0x90,0x43,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,
+0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x38,0x15,0xa5,0x26,0x08,0x0b,0xa2,0x8c,0x38,0x00,0xbf,0x8f,
+0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x06,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,
+0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,0x5c,0x24,0x43,0x90,
+0x42,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x38,0x15,0xa5,0x26,
+0x08,0x0b,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,
+0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,
+0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x06,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,
+0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,
+0x08,0x0b,0xa2,0xac,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf,0x38,0x00,0xbf,0xaf,
+0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,
+0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x02,0x80,0x06,0x3c,
+0x94,0x3e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,
+0x04,0x14,0x63,0x24,0x01,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,0x21,0xb0,0x00,0x00,
+0x03,0x00,0x80,0x10,0xf7,0x00,0xa2,0x30,0xfe,0x00,0xa2,0x30,0x01,0x00,0x16,0x24,
+0x94,0x3e,0xc2,0xa0,0x94,0x3e,0xc3,0x90,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,
+0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x02,0x80,0x15,0x3c,0x38,0x15,0xb2,0x26,0x21,0x98,0x40,0x00,0x02,0x80,0x14,0x3c,
+0x48,0x05,0x00,0x08,0x21,0xb8,0x40,0x02,0x00,0x00,0x02,0x96,0x00,0x00,0x00,0x00,
+0xfd,0x0f,0x42,0x28,0x67,0x00,0x40,0x10,0x00,0x20,0x02,0x3c,0x08,0x00,0x03,0x8e,
+0x00,0x00,0x00,0x00,0x25,0x18,0x62,0x00,0x82,0x11,0x03,0x00,0x01,0x00,0x42,0x30,
+0x6b,0x00,0x40,0x14,0x2a,0xb0,0x07,0x3c,0xc0,0xff,0x02,0x24,0x24,0x10,0x62,0x00,
+0x04,0x00,0x42,0x34,0x2a,0xb0,0x07,0x3c,0x08,0x00,0x02,0xae,0x1d,0x00,0xe2,0x34,
+0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24,0x02,0x00,0x03,0x24,
+0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0,0xdc,0x3d,0x84,0x96,0x25,0xb0,0x06,0x3c,
+0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24,0xdc,0x3d,0x84,0xa6,0xdc,0x3d,0x82,0x96,
+0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4,0x67,0x00,0x23,0x12,0x00,0x00,0x00,0x00,
+0xa8,0x24,0x42,0x8e,0x14,0x25,0x50,0x8e,0x05,0x00,0x04,0x24,0x00,0x00,0x62,0xae,
+0xac,0x24,0x42,0xae,0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x14,0x25,0x44,0x8e,0x18,0x25,0x43,0x8e,0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,
+0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x14,0x25,0x43,0xae,0x14,0x25,0xe2,0x8e,
+0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32,
+0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,0x00,0x00,0x00,0x00,
+0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,0x0d,0x00,0x22,0x12,
+0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00,0x66,0x00,0xc0,0x12,
+0xa8,0x24,0xe2,0xae,0x70,0x24,0xf1,0xa2,0x38,0x15,0xa2,0x26,0xa8,0x24,0x46,0x8c,
+0x14,0x25,0x45,0x8c,0x05,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa0,0xaf,0x38,0x15,0xa5,0x26,0x04,0x24,0xa2,0x8c,0x04,0x00,0x03,0x8e,
+0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14,0x1f,0x00,0x64,0x30,
+0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,
+0x00,0x26,0x04,0x00,0x25,0x10,0x44,0x00,0x08,0x00,0x02,0xae,0x00,0x00,0x04,0x96,
+0x28,0x24,0xa3,0x8c,0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,0x02,0x00,0x40,0x10,
+0x21,0x10,0x64,0x00,0x28,0x24,0xa2,0xac,0x10,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,
+0x47,0x00,0x80,0x04,0x00,0x00,0x00,0x00,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,
+0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,0x96,0xff,0x40,0x10,
+0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c,0xff,0xff,0x63,0x34,
+0x24,0x10,0x43,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x44,0x00,0x82,0x11,0x03,0x00,
+0x01,0x00,0x42,0x30,0x99,0xff,0x40,0x10,0xc0,0xff,0x02,0x24,0x2a,0xb0,0x07,0x3c,
+0x1d,0x00,0xe2,0x34,0x08,0x00,0x03,0xae,0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00,
+0x01,0x00,0x04,0x24,0x02,0x00,0x03,0x24,0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0,
+0xdc,0x3d,0x84,0x96,0x25,0xb0,0x06,0x3c,0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24,
+0xdc,0x3d,0x84,0xa6,0xdc,0x3d,0x82,0x96,0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4,
+0x9b,0xff,0x23,0x16,0x00,0x00,0x00,0x00,0x2d,0x00,0xc0,0x12,0x38,0x15,0xa2,0x26,
+0x70,0x24,0x43,0x90,0x45,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0,
+0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x38,0x15,0xa5,0x26,0x08,0x0b,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x18,0x00,0x03,0x3c,
+0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,
+0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,0x6a,0x05,0x00,0x08,0x64,0x24,0xf1,0xa2,
+0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,
+0x14,0x00,0x42,0x28,0xb7,0xff,0x40,0x14,0x42,0x12,0x03,0x00,0x9f,0xff,0x02,0x3c,
+0xff,0xff,0x42,0x34,0x24,0x10,0x82,0x00,0x8c,0x05,0x00,0x08,0x10,0x00,0x02,0xae,
+0x64,0x24,0x43,0x90,0x44,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0,
+0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x38,0x15,0xa5,0x26,0x08,0x0b,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x18,0x00,0x03,0x3c,
+0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,
+0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf,
+0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,
+0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0x02,0x80,0x06,0x3c,0x94,0x3e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x18,0x03,0x42,0x34,0xe8,0x17,0x63,0x24,0x02,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,
+0x21,0xb0,0x00,0x00,0x03,0x00,0x80,0x10,0xfb,0x00,0xa2,0x30,0xfd,0x00,0xa2,0x30,
+0x01,0x00,0x16,0x24,0x94,0x3e,0xc2,0xa0,0x94,0x3e,0xc3,0x90,0x25,0xb0,0x02,0x3c,
+0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x02,0x80,0x15,0x3c,0x38,0x15,0xb2,0x26,0x21,0x98,0x40,0x00,
+0x02,0x80,0x14,0x3c,0x41,0x06,0x00,0x08,0x21,0xb8,0x40,0x02,0x00,0x00,0x02,0x96,
+0x00,0x00,0x00,0x00,0xfd,0x0f,0x42,0x28,0x67,0x00,0x40,0x10,0x00,0x20,0x02,0x3c,
+0x08,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x25,0x18,0x62,0x00,0x82,0x11,0x03,0x00,
+0x01,0x00,0x42,0x30,0x6b,0x00,0x40,0x14,0x2a,0xb0,0x07,0x3c,0xc0,0xff,0x02,0x24,
+0x24,0x10,0x62,0x00,0x04,0x00,0x42,0x34,0x2a,0xb0,0x07,0x3c,0x08,0x00,0x02,0xae,
+0x25,0x00,0xe2,0x34,0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24,
+0x02,0x00,0x03,0x24,0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0,0xdc,0x3d,0x84,0x96,
+0x25,0xb0,0x06,0x3c,0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24,0xdc,0x3d,0x84,0xa6,
+0xdc,0x3d,0x82,0x96,0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4,0x67,0x00,0x23,0x12,
+0x00,0x00,0x00,0x00,0xb4,0x24,0x42,0x8e,0x20,0x25,0x50,0x8e,0x06,0x00,0x04,0x24,
+0x00,0x00,0x62,0xae,0xb8,0x24,0x42,0xae,0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x20,0x25,0x44,0x8e,0x24,0x25,0x43,0x8e,0x40,0x00,0x84,0x24,
+0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x20,0x25,0x43,0xae,
+0x20,0x25,0xe2,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c,
+0xff,0xff,0x10,0x32,0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,
+0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,
+0x0d,0x00,0x22,0x12,0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00,
+0x66,0x00,0xc0,0x12,0xb4,0x24,0xe2,0xae,0x6c,0x24,0xf1,0xa2,0x38,0x15,0xa2,0x26,
+0xb4,0x24,0x46,0x8c,0x20,0x25,0x45,0x8c,0x06,0x00,0x04,0x24,0x40,0x00,0x07,0x24,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x38,0x15,0xa5,0x26,0x04,0x24,0xa2,0x8c,
+0x04,0x00,0x03,0x8e,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14,
+0x1f,0x00,0x64,0x30,0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34,
+0x24,0x10,0x43,0x00,0x00,0x26,0x04,0x00,0x25,0x10,0x44,0x00,0x08,0x00,0x02,0xae,
+0x00,0x00,0x04,0x96,0x28,0x24,0xa3,0x8c,0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,
+0x02,0x00,0x40,0x10,0x21,0x10,0x64,0x00,0x28,0x24,0xa2,0xac,0x10,0x00,0x04,0x8e,
+0x00,0x00,0x00,0x00,0x47,0x00,0x80,0x04,0x00,0x00,0x00,0x00,0x14,0x00,0x03,0x8e,
+0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,
+0x96,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c,
+0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x44,0x00,
+0x82,0x11,0x03,0x00,0x01,0x00,0x42,0x30,0x99,0xff,0x40,0x10,0xc0,0xff,0x02,0x24,
+0x2a,0xb0,0x07,0x3c,0x25,0x00,0xe2,0x34,0x08,0x00,0x03,0xae,0x04,0x00,0x43,0x24,
+0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24,0x02,0x00,0x03,0x24,0x00,0x00,0x44,0xa0,
+0x00,0x00,0x43,0xa0,0xdc,0x3d,0x84,0x96,0x25,0xb0,0x06,0x3c,0x66,0x03,0xc5,0x34,
+0x01,0x00,0x84,0x24,0xdc,0x3d,0x84,0xa6,0xdc,0x3d,0x82,0x96,0xff,0x00,0x03,0x24,
+0x00,0x00,0xa2,0xa4,0x9b,0xff,0x23,0x16,0x00,0x00,0x00,0x00,0x2d,0x00,0xc0,0x12,
+0x38,0x15,0xa2,0x26,0x6c,0x24,0x43,0x90,0x47,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,
+0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x38,0x15,0xa5,0x26,0x08,0x0b,0xa2,0x8c,0x38,0x00,0xbf,0x8f,
+0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x60,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,
+0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,0x63,0x06,0x00,0x08,
+0x68,0x24,0xf1,0xa2,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,
+0x3f,0x00,0x42,0x30,0x14,0x00,0x42,0x28,0xb7,0xff,0x40,0x14,0x42,0x12,0x03,0x00,
+0x9f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x10,0x82,0x00,0x85,0x06,0x00,0x08,
+0x10,0x00,0x02,0xae,0x68,0x24,0x43,0x90,0x46,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,
+0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x38,0x15,0xa5,0x26,0x08,0x0b,0xa2,0x8c,0x38,0x00,0xbf,0x8f,
+0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x60,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,
+0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,0x00,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0xcc,0x1b,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x05,0x3c,
+0x38,0x15,0xa5,0x24,0x10,0x0b,0xa2,0x8c,0x08,0x0b,0xa4,0x8c,0x00,0x08,0x03,0x3c,
+0x24,0x10,0x43,0x00,0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x00,0x00,0x64,0xac,
+0x08,0x00,0xe0,0x03,0x08,0x0b,0xa4,0xac,0x25,0xb0,0x05,0x3c,0x00,0x80,0x02,0x3c,
+0xc0,0xff,0xbd,0x27,0x18,0x03,0xa4,0x34,0x28,0x1c,0x42,0x24,0x2a,0xb0,0x03,0x3c,
+0x00,0x00,0x82,0xac,0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,
+0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,
+0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x2c,0x00,0x63,0x34,
+0x00,0x00,0x69,0x8c,0xff,0x00,0x02,0x24,0xff,0x00,0x24,0x31,0xaf,0x00,0x82,0x10,
+0x00,0x80,0x22,0x31,0x37,0x00,0x40,0x10,0x00,0xff,0x02,0x3c,0x00,0x80,0x02,0x3c,
+0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,0x14,0x00,0x82,0x10,0x02,0x80,0x03,0x3c,
+0x38,0x15,0x70,0x24,0xff,0x00,0x23,0x31,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x50,0x25,0x05,0x8e,0x25,0xb0,0x02,0x3c,0xff,0x00,0x28,0x31,
+0x7c,0x03,0x42,0x34,0x00,0x00,0x48,0xa4,0x21,0x30,0x60,0x00,0xe4,0x24,0x03,0xae,
+0x80,0x24,0x09,0xa2,0x0a,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa0,0xaf,0x01,0x00,0x03,0x24,0x58,0x25,0x03,0xa2,0x02,0x80,0x02,0x3c,
+0x38,0x15,0x44,0x24,0x58,0x25,0x83,0x90,0x01,0x00,0x02,0x24,0x28,0x00,0x62,0x10,
+0x02,0x80,0x02,0x3c,0x38,0x15,0x50,0x24,0x59,0x25,0x02,0x92,0x00,0x00,0x00,0x00,
+0x08,0x00,0x40,0x10,0x00,0x04,0x03,0x3c,0x10,0x0b,0x02,0x8e,0x08,0x0b,0x04,0x8e,
+0x24,0x10,0x43,0x00,0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x00,0x00,0x64,0xac,
+0x08,0x0b,0x04,0xae,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x40,0x00,0xbd,0x27,0x24,0x10,0x22,0x01,0xcb,0xff,0x40,0x10,0xff,0x00,0x02,0x24,
+0x02,0x80,0x02,0x3c,0x38,0x15,0x43,0x24,0x80,0x24,0x62,0x90,0x20,0xb0,0x03,0x3c,
+0xb0,0x03,0xa4,0x34,0x00,0x12,0x02,0x00,0x21,0x10,0x43,0x00,0x0c,0x00,0x49,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x00,0x89,0xac,0x25,0x07,0x00,0x08,0xff,0x00,0x24,0x31,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,
+0x21,0x88,0x80,0x00,0x2a,0xb0,0x04,0x3c,0x2c,0x00,0x9e,0x34,0xb0,0x03,0x54,0x34,
+0x21,0x98,0x20,0x02,0x7c,0x03,0x57,0x34,0x01,0x00,0x16,0x24,0x99,0x07,0x00,0x08,
+0x01,0x00,0x15,0x24,0xf2,0x23,0x22,0x96,0x25,0xb0,0x03,0x3c,0x1e,0x03,0x63,0x34,
+0x01,0x00,0x42,0x34,0x59,0x25,0x36,0xa2,0x00,0x00,0x62,0xa4,0xf2,0x23,0x22,0xa6,
+0x30,0x00,0x02,0x24,0x03,0x00,0x42,0x12,0x02,0x00,0x02,0x24,0x01,0x00,0xd6,0xa3,
+0x01,0x00,0xc2,0xa3,0x59,0x25,0x62,0x92,0x00,0x00,0x00,0x00,0x4f,0x00,0x55,0x14,
+0x02,0x80,0x02,0x3c,0x0c,0x00,0x03,0x92,0xff,0x00,0x02,0x24,0xff,0x00,0x69,0x30,
+0x4a,0x00,0x22,0x11,0x02,0x80,0x02,0x3c,0x80,0x24,0x63,0xa2,0x80,0x24,0x28,0x92,
+0x50,0x25,0x25,0x8e,0x20,0x10,0x02,0x3c,0xff,0x00,0x03,0x31,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x00,0x00,0x89,0xae,0x21,0x30,0x60,0x00,0x00,0x00,0xe8,0xa6,
+0x0a,0x00,0x04,0x24,0xe4,0x24,0x23,0xae,0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa0,0xaf,0x50,0x25,0x30,0x8e,0x0a,0x00,0x04,0x24,0x00,0x00,0x90,0xae,
+0x4d,0x01,0x00,0x0c,0xff,0xff,0x10,0x32,0x02,0x80,0x02,0x3c,0x25,0x80,0x02,0x02,
+0x02,0x00,0x03,0x92,0x20,0x00,0x02,0x24,0xd2,0xff,0x62,0x14,0x21,0x38,0x03,0x02,
+0x02,0x80,0x02,0x3c,0xc8,0x87,0x47,0xac,0x20,0x00,0x03,0x26,0x02,0x00,0x62,0x90,
+0x59,0x25,0x25,0x92,0x03,0x00,0x64,0x90,0xff,0x00,0x52,0x30,0x28,0x00,0x07,0x26,
+0x13,0x00,0xb5,0x14,0x7f,0x00,0x86,0x30,0x02,0x80,0x02,0x3c,0x02,0x80,0x05,0x3c,
+0xbc,0x3d,0x43,0x94,0xd1,0x3d,0xa4,0x90,0x01,0x00,0x63,0x24,0x7f,0x00,0x84,0x30,
+0x08,0x00,0xc4,0x10,0xbc,0x3d,0x43,0xa4,0xf2,0x23,0x22,0x96,0x25,0xb0,0x03,0x3c,
+0x1e,0x03,0x63,0x34,0x10,0x00,0x42,0x34,0x00,0x00,0x62,0xa4,0xd1,0x3d,0xa6,0xa0,
+0xf2,0x23,0x22,0xa6,0x31,0x00,0x42,0x2e,0xbd,0xff,0x40,0x10,0x00,0x00,0x00,0x00,
+0x01,0x80,0x02,0x3c,0x02,0x80,0x06,0x3c,0xc0,0x18,0x12,0x00,0x1c,0x74,0x42,0x24,
+0xbe,0x3d,0xc5,0x94,0x21,0x18,0x62,0x00,0x04,0x00,0x62,0x8c,0x01,0x00,0xa5,0x24,
+0x02,0x80,0x03,0x3c,0x21,0x20,0xe0,0x00,0xbe,0x3d,0xc5,0xa4,0x09,0xf8,0x40,0x00,
+0xc4,0x87,0x62,0xac,0x7d,0x07,0x00,0x08,0x30,0x00,0x02,0x24,0x02,0x80,0x03,0x3c,
+0x38,0x15,0x62,0x24,0x3b,0x07,0x00,0x08,0x58,0x25,0x40,0xa0,0x84,0x3e,0x44,0x8c,
+0x25,0xb0,0x03,0x3c,0xb0,0x03,0x63,0x34,0x00,0x00,0x64,0xac,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x41,0x07,0x00,0x08,
+0x02,0x80,0x02,0x3c,0xc8,0xff,0xbd,0x27,0xff,0xff,0xa8,0x30,0x02,0x80,0x02,0x3c,
+0x25,0x40,0x02,0x01,0x30,0x00,0xb6,0xaf,0x20,0x00,0xb2,0xaf,0x34,0x00,0xbf,0xaf,
+0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf,
+0x18,0x00,0xb0,0xaf,0x00,0x00,0x03,0x8d,0xff,0xff,0xd2,0x30,0x21,0xb0,0xa0,0x00,
+0x00,0xc0,0x02,0x24,0x08,0x00,0x45,0x26,0x04,0x00,0x06,0x8d,0x24,0x18,0x62,0x00,
+0xff,0x3f,0xa5,0x30,0xf0,0xff,0x02,0x3c,0x25,0x18,0x65,0x00,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x00,0x80,0x05,0x3c,0x25,0x18,0x65,0x00,0xff,0x01,0xc6,0x34,
+0x00,0x00,0x03,0xad,0x04,0x00,0x06,0xad,0x21,0x48,0x80,0x00,0xff,0xff,0xe7,0x30,
+0x18,0x00,0x12,0xa5,0x1a,0x00,0x07,0xa1,0x18,0x00,0x03,0x8d,0xff,0x7f,0x02,0x3c,
+0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x02,0x80,0x15,0x3c,0x18,0x00,0x03,0xad,
+0x38,0x15,0xa5,0x26,0xee,0x23,0xa3,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x62,0x24,
+0xee,0x23,0xa2,0xa0,0x18,0x00,0x04,0x8d,0xff,0x80,0x02,0x3c,0x20,0x00,0x45,0x26,
+0xff,0xff,0x42,0x34,0x7f,0x00,0x63,0x30,0xff,0xff,0xb2,0x30,0x24,0x20,0x82,0x00,
+0x00,0x1e,0x03,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x00,0x42,0x34,0x25,0x20,0x83,0x00,
+0x07,0x00,0x45,0x32,0x18,0x00,0x04,0xad,0x00,0x00,0x52,0xa4,0x03,0x00,0xa0,0x10,
+0xff,0xff,0x42,0x32,0x08,0x00,0x42,0x26,0xff,0xff,0x42,0x30,0x38,0x15,0xb4,0x26,
+0xb4,0x25,0x86,0x8e,0xb8,0x25,0x90,0x8e,0xf8,0xff,0x52,0x30,0x21,0x10,0xd2,0x00,
+0x2b,0x10,0x02,0x02,0x31,0x00,0x40,0x10,0xff,0x00,0x33,0x31,0x23,0x80,0x06,0x02,
+0x21,0x28,0xc0,0x02,0xff,0xff,0x07,0x32,0x01,0x00,0x11,0x24,0x21,0x20,0x60,0x02,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xb1,0xaf,0x23,0x18,0x50,0x02,0xff,0xff,0x72,0x30,
+0x22,0x10,0x02,0x3c,0x21,0x10,0x42,0x02,0x21,0x20,0x60,0x02,0x4d,0x01,0x00,0x0c,
+0xb4,0x25,0x82,0xae,0x21,0x28,0xd0,0x02,0x21,0x38,0x40,0x02,0x21,0x20,0x60,0x02,
+0x10,0x00,0xb1,0xaf,0x22,0x10,0x06,0x3c,0x10,0x01,0x00,0x0c,0x38,0x15,0xb1,0x26,
+0xb4,0x25,0x23,0x8e,0x25,0xb0,0x10,0x3c,0xb0,0x03,0x02,0x36,0x21,0x20,0x60,0x02,
+0x00,0x00,0x43,0xac,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,0xb4,0x25,0x25,0x8e,
+0xec,0x00,0x02,0x36,0xbd,0x00,0x04,0x36,0x00,0x00,0x45,0xac,0x00,0x00,0x83,0x90,
+0xc2,0x00,0x10,0x36,0x34,0x00,0xbf,0x8f,0x10,0x00,0x63,0x34,0x00,0x00,0x83,0xa0,
+0x30,0x00,0xb6,0x8f,0x00,0x00,0x05,0xa6,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x21,0x28,0xc0,0x02,
+0x21,0x20,0x60,0x02,0x21,0x38,0x40,0x02,0x01,0x00,0x02,0x24,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa2,0xaf,0xb4,0x25,0x83,0x8e,0x38,0x15,0xb1,0x26,0x25,0xb0,0x10,0x3c,
+0x21,0x18,0x72,0x00,0xb4,0x25,0x83,0xae,0xb4,0x25,0x23,0x8e,0xb0,0x03,0x02,0x36,
+0x21,0x20,0x60,0x02,0x00,0x00,0x43,0xac,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xb4,0x25,0x25,0x8e,0xec,0x00,0x02,0x36,0xbd,0x00,0x04,0x36,0x00,0x00,0x45,0xac,
+0x00,0x00,0x83,0x90,0xc2,0x00,0x10,0x36,0x34,0x00,0xbf,0x8f,0x10,0x00,0x63,0x34,
+0x00,0x00,0x83,0xa0,0x30,0x00,0xb6,0x8f,0x00,0x00,0x05,0xa6,0x2c,0x00,0xb5,0x8f,
+0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,
+0x18,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,
+0xe0,0xff,0xbd,0x27,0x25,0xb0,0x02,0x3c,0x14,0x00,0xb1,0xaf,0x18,0x00,0xbf,0xaf,
+0x10,0x00,0xb0,0xaf,0xbf,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x21,0x28,0x00,0x00,
+0x08,0x00,0x06,0x24,0x04,0x00,0x63,0x2c,0x12,0x00,0x60,0x14,0x21,0x88,0x80,0x00,
+0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x02,0x80,0x03,0x3c,0x30,0x3b,0x63,0x24,0x04,0x00,0x64,0x8c,0x00,0x00,0x23,0xae,
+0x04,0x00,0x71,0xac,0x00,0x00,0x91,0xac,0x04,0x00,0x24,0xae,0x00,0x60,0x82,0x40,
+0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x08,0x00,0x82,0x94,0x02,0x80,0x04,0x3c,0x58,0x45,0x00,0x0c,
+0x25,0x20,0x44,0x00,0x00,0x60,0x10,0x40,0x01,0x00,0x01,0x36,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x08,0x00,0x25,0x8e,0x0c,0x00,0x26,0x96,0x14,0x00,0x27,0x96,
+0xdd,0x07,0x00,0x0c,0x09,0x00,0x04,0x24,0x04,0x00,0x23,0x8e,0x00,0x00,0x22,0x8e,
+0x21,0x20,0x20,0x02,0x00,0x00,0x62,0xac,0x04,0x00,0x43,0xac,0x00,0x00,0x31,0xae,
+0xaa,0x47,0x00,0x0c,0x04,0x00,0x31,0xae,0x00,0x60,0x90,0x40,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc0,0x22,0x63,0x24,0x18,0x03,0x42,0x34,
+0xe0,0xff,0xbd,0x27,0xff,0xff,0x84,0x30,0x00,0x00,0x43,0xac,0x18,0x00,0xb2,0xaf,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0xaf,0xff,0xff,0xb0,0x30,
+0xff,0xff,0xd2,0x30,0x89,0x47,0x00,0x0c,0xff,0xff,0xf1,0x30,0x21,0x20,0x40,0x00,
+0x0a,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0x08,0x00,0x43,0x94,0x14,0x00,0x50,0xac,
+0x02,0x80,0x02,0x3c,0x25,0x18,0x62,0x00,0x18,0x00,0x63,0x24,0x06,0x00,0x71,0xa4,
+0x78,0x08,0x00,0x0c,0x04,0x00,0x72,0xa4,0x01,0x00,0x03,0x24,0x1c,0x00,0xbf,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x60,0x00,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x2a,0xb0,0x04,0x3c,0x28,0x00,0x85,0x34,
+0x03,0x00,0x82,0x90,0x04,0x00,0x84,0x24,0x05,0x00,0x40,0x14,0x2b,0x18,0xa4,0x00,
+0xfb,0xff,0x60,0x10,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x78,0x23,0x63,0x24,0x18,0x03,0x42,0x34,0xd0,0xff,0xbd,0x27,0x00,0x00,0x43,0xac,
+0x24,0x00,0xb3,0xaf,0x28,0x00,0xbf,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,
+0xd2,0x08,0x00,0x0c,0x18,0x00,0xb0,0xaf,0x06,0x00,0x40,0x10,0x02,0x80,0x13,0x3c,
+0x38,0x15,0x63,0x26,0x82,0x0b,0x62,0x90,0x00,0x00,0x00,0x00,0x9f,0x00,0x40,0x14,
+0x00,0xc0,0x04,0x34,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x2a,0xb0,0x02,0x3c,0x36,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x38,0x15,0x66,0x26,
+0xbc,0x25,0xc5,0x8c,0xc0,0x18,0x03,0x00,0x23,0xb0,0x04,0x3c,0xf0,0x07,0x63,0x30,
+0xff,0x1f,0x02,0x3c,0x21,0x18,0x64,0x00,0xff,0xff,0x42,0x34,0x24,0x20,0x62,0x00,
+0x23,0x88,0x85,0x00,0x00,0x04,0x22,0x26,0x2b,0x28,0x85,0x00,0x6c,0x25,0xc3,0x8c,
+0x0b,0x88,0x45,0x00,0xe1,0x01,0x22,0x2e,0x68,0x25,0xc3,0xac,0xc0,0x25,0xc4,0xac,
+0x72,0x25,0xc0,0xa4,0x14,0x00,0x40,0x14,0x71,0x25,0xc0,0xa0,0x20,0xfe,0x82,0x24,
+0x20,0x02,0x83,0x24,0x0a,0x18,0x45,0x00,0x23,0x10,0x02,0x3c,0xff,0x03,0x42,0x34,
+0x2b,0x10,0x43,0x00,0x21,0x28,0x60,0x00,0x34,0x00,0x40,0x14,0xbc,0x25,0xc3,0xac,
+0xc0,0x25,0xc2,0x8c,0x00,0x00,0x00,0x00,0x2b,0x18,0x45,0x00,0x23,0x88,0x45,0x00,
+0x03,0x00,0x60,0x10,0xe1,0x01,0x22,0x2e,0x00,0x04,0x31,0x26,0xe1,0x01,0x22,0x2e,
+0x0e,0x00,0x40,0x10,0x38,0x15,0x70,0x26,0x38,0x15,0x70,0x26,0xc0,0x25,0x03,0x8e,
+0xbc,0x25,0x04,0x8e,0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,0x26,0x00,0x40,0x14,
+0x2b,0x10,0x64,0x00,0x52,0x00,0x40,0x14,0x25,0xb0,0x02,0x3c,0x80,0x00,0x03,0x24,
+0xd0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x38,0x15,0x70,0x26,0xbc,0x25,0x03,0x96,
+0x2a,0xb0,0x02,0x3c,0x35,0x00,0x42,0x34,0xc2,0x88,0x03,0x00,0x00,0x00,0x51,0xa0,
+0x7e,0x1e,0x00,0x0c,0x00,0x00,0x00,0x00,0x72,0x25,0x03,0x96,0x25,0xb0,0x02,0x3c,
+0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x08,0x0b,0x02,0x8e,0x80,0x00,0x03,0x3c,
+0x41,0xb0,0x04,0x3c,0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xac,0x28,0x00,0xbf,0x8f,
+0x08,0x0b,0x02,0xae,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,
+0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,0x00,0xfc,0xa5,0x24,
+0x14,0x09,0x00,0x08,0xbc,0x25,0xc5,0xac,0x68,0x25,0x05,0x8e,0x21,0x30,0x80,0x00,
+0xff,0xff,0x27,0x32,0x09,0x00,0x04,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x68,0x25,0x03,0x8e,0x72,0x25,0x05,0x96,0xbc,0x25,0x02,0x8e,0x21,0x18,0x71,0x00,
+0x21,0x28,0x25,0x02,0x21,0x10,0x51,0x00,0x09,0x00,0x04,0x24,0xbc,0x25,0x02,0xae,
+0x68,0x25,0x03,0xae,0x4d,0x01,0x00,0x0c,0x72,0x25,0x05,0xa6,0x38,0x15,0x70,0x26,
+0xbc,0x25,0x03,0x96,0x2a,0xb0,0x02,0x3c,0x35,0x00,0x42,0x34,0xc2,0x88,0x03,0x00,
+0x00,0x00,0x51,0xa0,0x7e,0x1e,0x00,0x0c,0x00,0x00,0x00,0x00,0x72,0x25,0x03,0x96,
+0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x08,0x0b,0x02,0x8e,
+0x80,0x00,0x03,0x3c,0x41,0xb0,0x04,0x3c,0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xac,
+0x28,0x00,0xbf,0x8f,0x08,0x0b,0x02,0xae,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,
+0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,
+0xc4,0x25,0x02,0x8e,0x68,0x25,0x05,0x8e,0x21,0x30,0x80,0x00,0x23,0x88,0x44,0x00,
+0xff,0xff,0x27,0x32,0x09,0x00,0x04,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x68,0x25,0x03,0x8e,0x72,0x25,0x02,0x96,0xc0,0x25,0x12,0x96,0x21,0x18,0x71,0x00,
+0x21,0x10,0x22,0x02,0x23,0x10,0x11,0x3c,0x68,0x25,0x03,0xae,0x72,0x25,0x02,0xa6,
+0x0c,0x00,0x40,0x16,0xbc,0x25,0x11,0xae,0x09,0x00,0x04,0x24,0x4d,0x01,0x00,0x0c,
+0x38,0x15,0x70,0x26,0x5c,0x09,0x00,0x08,0x00,0x00,0x00,0x00,0x1c,0x27,0x62,0x94,
+0x82,0x0b,0x60,0xa0,0xe0,0x24,0x00,0x0c,0x21,0x20,0x44,0x00,0xf1,0x08,0x00,0x08,
+0x00,0x00,0x00,0x00,0x4d,0x01,0x00,0x0c,0x09,0x00,0x04,0x24,0x68,0x25,0x05,0x8e,
+0x09,0x00,0x04,0x24,0x23,0x10,0x06,0x3c,0x21,0x38,0x40,0x02,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa0,0xaf,0x68,0x25,0x03,0x8e,0x72,0x25,0x02,0x96,0x21,0x20,0x51,0x02,
+0x21,0x18,0x72,0x00,0x21,0x10,0x42,0x02,0xbc,0x25,0x04,0xae,0x09,0x00,0x04,0x24,
+0x68,0x25,0x03,0xae,0x8b,0x09,0x00,0x08,0x72,0x25,0x02,0xa6,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x05,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,
+0x09,0x00,0x02,0x24,0x02,0x80,0x09,0x3c,0x38,0x15,0x28,0x25,0xf4,0x23,0x06,0x8d,
+0xff,0xff,0x02,0x34,0x44,0x00,0xc2,0x10,0x21,0x38,0x80,0x00,0x2b,0x10,0xc7,0x00,
+0x34,0x00,0x40,0x10,0x02,0x19,0x06,0x00,0x21,0x10,0xc7,0x00,0x23,0x10,0x43,0x00,
+0x10,0x00,0x46,0x24,0xf4,0x23,0x06,0xad,0xf8,0x23,0x02,0xad,0x38,0x15,0x26,0x25,
+0x06,0x00,0xc4,0x94,0xff,0xff,0x02,0x34,0xff,0xff,0x83,0x30,0x33,0x00,0x62,0x10,
+0x00,0x11,0x07,0x00,0xff,0xff,0x84,0x30,0x2b,0x10,0x87,0x00,0x20,0x00,0x40,0x10,
+0x03,0x19,0x04,0x00,0x03,0x11,0x04,0x00,0x21,0x18,0x87,0x00,0x23,0x18,0x62,0x00,
+0x10,0x00,0x64,0x24,0x06,0x00,0xc4,0xa4,0xf8,0x23,0xc3,0xac,0xc0,0x10,0x05,0x00,
+0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x38,0x15,0x23,0x25,
+0x80,0x10,0x02,0x00,0x21,0x28,0x43,0x00,0x80,0x11,0xa6,0x8c,0x00,0x21,0x07,0x00,
+0xff,0xff,0xc2,0x38,0x0a,0x30,0x82,0x00,0x2b,0x18,0xc7,0x00,0x07,0x00,0x60,0x10,
+0x21,0x10,0xc7,0x00,0x02,0x19,0x06,0x00,0x23,0x10,0x43,0x00,0x10,0x00,0x46,0x24,
+0x80,0x11,0xa6,0xac,0x08,0x00,0xe0,0x03,0x84,0x11,0xa2,0xac,0x02,0x19,0x06,0x00,
+0x23,0x10,0x43,0x00,0x80,0x11,0xa2,0xac,0x08,0x00,0xe0,0x03,0x84,0x11,0xa2,0xac,
+0x21,0x10,0x87,0x00,0x23,0x10,0x43,0x00,0x06,0x00,0xc2,0xa4,0xcb,0x09,0x00,0x08,
+0xf8,0x23,0xc2,0xac,0x21,0x10,0xc7,0x00,0x23,0x10,0x43,0x00,0xf4,0x23,0x02,0xad,
+0xf8,0x23,0x02,0xad,0x38,0x15,0x26,0x25,0x06,0x00,0xc4,0x94,0xff,0xff,0x02,0x34,
+0xff,0xff,0x83,0x30,0xcf,0xff,0x62,0x14,0x00,0x11,0x07,0x00,0x21,0x20,0x40,0x00,
+0xc1,0x09,0x00,0x08,0x06,0x00,0xc2,0xa4,0x00,0x31,0x04,0x00,0xb3,0x09,0x00,0x08,
+0xf4,0x23,0x06,0xad,0x63,0x00,0x82,0x24,0x77,0x00,0x42,0x2c,0x00,0x00,0x85,0x28,
+0x04,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0x64,0x00,0x82,0x24,0x64,0x00,0x03,0x24,
+0x0b,0x18,0x45,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0xe8,0xff,0xbd,0x27,
+0x10,0x00,0xbf,0xaf,0x0c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,
+0x04,0x00,0x42,0x28,0x07,0x00,0x40,0x14,0x25,0xb0,0x02,0x3c,0x04,0x00,0xa4,0x90,
+0x10,0x00,0xbf,0x8f,0x18,0x00,0xbd,0x27,0x42,0x20,0x04,0x00,0xf9,0x09,0x00,0x08,
+0x96,0xff,0x84,0x24,0x24,0x08,0x42,0x34,0x00,0x00,0x43,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x02,0x63,0x30,0x1b,0x00,0x60,0x14,0x01,0x00,0x02,0x24,0x05,0x00,0xa3,0x90,
+0x00,0x00,0x00,0x00,0x82,0x21,0x03,0x00,0x3c,0x00,0x82,0x10,0x02,0x00,0x82,0x28,
+0x57,0x00,0x40,0x14,0x02,0x00,0x02,0x24,0x46,0x00,0x82,0x10,0x03,0x00,0x02,0x24,
+0x2e,0x00,0x82,0x10,0x3e,0x00,0x63,0x30,0xf9,0x09,0x00,0x0c,0x21,0x20,0xc0,0x00,
+0x06,0x00,0x45,0x24,0x65,0x00,0xa4,0x2c,0x64,0x00,0x03,0x24,0x0a,0x28,0x64,0x00,
+0xdd,0xff,0xa2,0x24,0x08,0x00,0x42,0x2c,0x1f,0x00,0x40,0x10,0xe5,0xff,0xa2,0x24,
+0xfe,0xff,0xa5,0x24,0x10,0x00,0xbf,0x8f,0x21,0x10,0xa0,0x00,0x08,0x00,0xe0,0x03,
+0x18,0x00,0xbd,0x27,0x05,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x60,0x00,0x64,0x30,
+0x42,0x21,0x04,0x00,0x25,0x00,0x82,0x10,0x02,0x00,0x82,0x28,0x36,0x00,0x40,0x14,
+0x02,0x00,0x02,0x24,0x2f,0x00,0x82,0x10,0x03,0x00,0x02,0x24,0xe6,0xff,0x82,0x14,
+0x1f,0x00,0x62,0x30,0x40,0x10,0x02,0x00,0xd8,0xff,0x03,0x24,0x23,0x30,0x62,0x00,
+0xf9,0x09,0x00,0x0c,0x21,0x20,0xc0,0x00,0x06,0x00,0x45,0x24,0x65,0x00,0xa4,0x2c,
+0x64,0x00,0x03,0x24,0x0a,0x28,0x64,0x00,0xdd,0xff,0xa2,0x24,0x08,0x00,0x42,0x2c,
+0xe3,0xff,0x40,0x14,0xe5,0xff,0xa2,0x24,0x08,0x00,0x42,0x2c,0x06,0x00,0x40,0x10,
+0xf1,0xff,0xa2,0x24,0x2d,0x0a,0x00,0x08,0xfa,0xff,0xa5,0x24,0xd8,0xff,0x02,0x24,
+0x22,0x0a,0x00,0x08,0x23,0x30,0x43,0x00,0x0c,0x00,0x42,0x2c,0x0c,0x00,0x40,0x10,
+0xfb,0xff,0xa2,0x24,0x2d,0x0a,0x00,0x08,0xf8,0xff,0xa5,0x24,0x3e,0x00,0x63,0x30,
+0xfe,0xff,0x02,0x24,0x22,0x0a,0x00,0x08,0x23,0x30,0x43,0x00,0x1f,0x00,0x62,0x30,
+0x40,0x10,0x02,0x00,0xfe,0xff,0x03,0x24,0x40,0x0a,0x00,0x08,0x23,0x30,0x62,0x00,
+0x0a,0x00,0x42,0x2c,0xcb,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x2d,0x0a,0x00,0x08,
+0xfc,0xff,0xa5,0x24,0x3e,0x00,0x63,0x30,0xec,0xff,0x02,0x24,0x22,0x0a,0x00,0x08,
+0x23,0x30,0x43,0x00,0x1f,0x00,0x62,0x30,0x40,0x10,0x02,0x00,0xec,0xff,0x03,0x24,
+0x40,0x0a,0x00,0x08,0x23,0x30,0x62,0x00,0xb3,0xff,0x80,0x14,0x1f,0x00,0x62,0x30,
+0x40,0x10,0x02,0x00,0x0e,0x00,0x03,0x24,0x40,0x0a,0x00,0x08,0x23,0x30,0x62,0x00,
+0xad,0xff,0x80,0x14,0x3e,0x00,0x63,0x30,0x0e,0x00,0x02,0x24,0x22,0x0a,0x00,0x08,
+0x23,0x30,0x43,0x00,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,
+0x14,0x00,0xb1,0xaf,0x0c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,
+0x04,0x00,0x42,0x28,0x29,0x00,0x40,0x14,0x21,0x80,0xa0,0x00,0x00,0x00,0xa4,0x8c,
+0x02,0x80,0x11,0x3c,0x3f,0x00,0x84,0x30,0x40,0x20,0x04,0x00,0xf9,0x09,0x00,0x0c,
+0x96,0xff,0x84,0x24,0x38,0x15,0x25,0x26,0xfc,0x23,0xa4,0x8c,0x21,0x18,0x40,0x00,
+0xff,0xff,0x02,0x34,0x3c,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,
+0x27,0x00,0x40,0x10,0x21,0x10,0x83,0x00,0x21,0x18,0x83,0x00,0x02,0x11,0x04,0x00,
+0x23,0x20,0x62,0x00,0x10,0x00,0x84,0x24,0xfc,0x23,0xa4,0xac,0x00,0x00,0x04,0x8e,
+0x00,0x00,0x00,0x00,0xc2,0x21,0x04,0x00,0x7e,0x00,0x84,0x30,0xf9,0x09,0x00,0x0c,
+0x96,0xff,0x84,0x24,0x38,0x15,0x25,0x26,0x00,0x24,0xa4,0x8c,0x21,0x18,0x40,0x00,
+0xff,0xff,0x02,0x34,0x25,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,
+0x0b,0x00,0x40,0x10,0x21,0x10,0x83,0x00,0x21,0x18,0x83,0x00,0x02,0x11,0x04,0x00,
+0x23,0x20,0x62,0x00,0x10,0x00,0x84,0x24,0x00,0x24,0xa4,0xac,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x02,0x19,0x04,0x00,
+0x23,0x10,0x43,0x00,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x00,0x24,0xa2,0xac,
+0x02,0x19,0x04,0x00,0x23,0x10,0x43,0x00,0xfc,0x23,0xa2,0xac,0x00,0x00,0x04,0x8e,
+0x00,0x00,0x00,0x00,0xc2,0x21,0x04,0x00,0x7e,0x00,0x84,0x30,0xf9,0x09,0x00,0x0c,
+0x96,0xff,0x84,0x24,0x38,0x15,0x25,0x26,0x00,0x24,0xa4,0x8c,0x21,0x18,0x40,0x00,
+0xff,0xff,0x02,0x34,0xde,0xff,0x82,0x14,0x2b,0x10,0x83,0x00,0x00,0x21,0x03,0x00,
+0xa3,0x0a,0x00,0x08,0x00,0x24,0xa4,0xac,0x00,0x21,0x03,0x00,0x8f,0x0a,0x00,0x08,
+0xfc,0x23,0xa4,0xac,0x98,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x58,0x00,0xb6,0xaf,
+0x64,0x00,0xbf,0xaf,0x60,0x00,0xbe,0xaf,0x5c,0x00,0xb7,0xaf,0x54,0x00,0xb5,0xaf,
+0x50,0x00,0xb4,0xaf,0x4c,0x00,0xb3,0xaf,0x48,0x00,0xb2,0xaf,0x44,0x00,0xb1,0xaf,
+0x40,0x00,0xb0,0xaf,0x38,0x15,0x56,0x24,0x25,0xb0,0x03,0x3c,0x04,0x01,0x62,0x34,
+0x00,0x00,0x43,0x8c,0xa4,0x25,0xc7,0x8e,0x00,0x00,0x00,0x00,0x33,0x00,0xe3,0x10,
+0xa8,0x25,0xc3,0xae,0x2b,0x10,0x67,0x00,0xbf,0x00,0x40,0x14,0x2b,0x10,0xe3,0x00,
+0xe9,0x00,0x40,0x14,0x02,0x80,0x02,0x3c,0x38,0x15,0x44,0x24,0x78,0x25,0x83,0x94,
+0x02,0x80,0x02,0x3c,0x21,0x88,0x00,0x00,0x18,0x00,0x40,0x1a,0x25,0x98,0x62,0x00,
+0x21,0xf0,0x80,0x00,0x01,0x00,0x14,0x24,0x21,0x20,0x00,0x00,0x21,0x80,0x93,0x00,
+0x00,0x00,0x05,0x8e,0x00,0x00,0x00,0x00,0x07,0x00,0xa0,0x10,0x01,0x00,0x22,0x26,
+0x04,0x00,0x02,0x8e,0x00,0xf0,0x03,0x3c,0x00,0x20,0x04,0x3c,0x24,0x10,0x43,0x00,
+0x1f,0x00,0x44,0x10,0x06,0x00,0x22,0x26,0xff,0xff,0x51,0x30,0x82,0x16,0x05,0x00,
+0x01,0x00,0x42,0x30,0x35,0x00,0x54,0x10,0x02,0x80,0x03,0x3c,0x80,0x20,0x11,0x00,
+0x2a,0x10,0x92,0x00,0xed,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x38,0x00,0xa4,0x8f,
+0xaa,0x47,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x08,0x04,0x44,0x24,
+0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,0x1c,0x2c,0x00,0x0c,0x21,0x38,0x00,0x00,
+0x25,0xb0,0x03,0x3c,0x04,0x01,0x62,0x34,0x00,0x00,0x43,0x8c,0xa4,0x25,0xc7,0x8e,
+0x00,0x00,0x00,0x00,0xcf,0xff,0xe3,0x14,0xa8,0x25,0xc3,0xae,0x25,0xb0,0x04,0x3c,
+0x00,0x01,0x82,0x34,0x00,0x00,0x47,0xac,0x06,0x0b,0x00,0x08,0xa4,0x25,0xc7,0xae,
+0xc8,0x0c,0xc2,0x8f,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0xc8,0x0c,0xc2,0xaf,
+0x0c,0x00,0x04,0x8e,0x0c,0x00,0x02,0x24,0x3f,0x00,0x83,0x30,0x7b,0x00,0x62,0x10,
+0x21,0x28,0xc0,0x03,0x3f,0x00,0x83,0x30,0x0d,0x00,0x02,0x24,0x70,0x00,0x62,0x10,
+0x00,0x00,0x00,0x00,0x3f,0x00,0x83,0x30,0x0e,0x00,0x02,0x24,0x04,0x00,0x62,0x10,
+0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x8e,0xfa,0x0a,0x00,0x08,0x06,0x00,0x22,0x26,
+0xd4,0x0c,0xc2,0x8f,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0xd4,0x0c,0xc2,0xaf,
+0x00,0x00,0x05,0x8e,0xfa,0x0a,0x00,0x08,0x06,0x00,0x22,0x26,0x38,0x15,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x02,0x11,0x02,0x00,0x03,0x00,0x42,0x30,0x05,0x00,0x54,0x10,
+0xc2,0x13,0x05,0x00,0x1e,0x00,0x42,0x30,0x21,0x10,0x51,0x00,0xff,0x0a,0x00,0x08,
+0xff,0xff,0x51,0x30,0x38,0x15,0x64,0x24,0x01,0x00,0x82,0x90,0x00,0x00,0x00,0x00,
+0x24,0x00,0x40,0x14,0x02,0x80,0x04,0x3c,0x04,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,
+0x02,0x14,0x04,0x00,0x0f,0x00,0x45,0x30,0x08,0x00,0xa3,0x28,0x1c,0x00,0x60,0x10,
+0x02,0x17,0x04,0x00,0x03,0x00,0x43,0x30,0x08,0x00,0x60,0x10,0x00,0xc0,0x02,0x3c,
+0x24,0x10,0x82,0x00,0x16,0x00,0x40,0x14,0x03,0x00,0x02,0x24,0x15,0x00,0x62,0x10,
+0x02,0x80,0x04,0x3c,0x14,0x00,0x60,0x10,0x38,0x15,0x82,0x24,0x80,0x10,0x11,0x00,
+0x21,0xa8,0x53,0x00,0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,0x21,0x18,0xa2,0x00,
+0xec,0xff,0xa2,0x8e,0xf0,0x04,0x77,0x90,0x25,0xb0,0x03,0x3c,0xd4,0x02,0x63,0x34,
+0x21,0x28,0xa0,0x02,0x21,0x20,0x00,0x02,0x00,0x00,0x62,0xac,0x03,0x0a,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x21,0x20,0x40,0x00,0xad,0x09,0x00,0x0c,0x21,0x28,0xe0,0x02,
+0x02,0x80,0x04,0x3c,0x38,0x15,0x82,0x24,0x01,0x00,0x43,0x90,0x00,0x00,0x00,0x00,
+0x80,0x00,0x74,0x10,0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c,0x38,0x15,0x84,0x24,
+0x01,0x00,0x83,0x90,0x02,0x00,0x02,0x24,0x08,0x00,0x62,0x10,0x00,0x00,0x00,0x00,
+0x00,0x00,0x05,0x8e,0x00,0x00,0x00,0x00,0xc2,0x13,0x05,0x00,0x1e,0x00,0x42,0x30,
+0x21,0x10,0x51,0x00,0xff,0x0a,0x00,0x08,0xff,0xff,0x51,0x30,0x04,0x00,0x04,0x8e,
+0x00,0x00,0x00,0x00,0x02,0x14,0x04,0x00,0x0f,0x00,0x46,0x30,0x08,0x00,0xc3,0x28,
+0xf3,0xff,0x60,0x10,0x02,0x17,0x04,0x00,0x03,0x00,0x42,0x30,0xf0,0xff,0x40,0x14,
+0x80,0x10,0x11,0x00,0x21,0xa8,0x53,0x00,0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,
+0x21,0x18,0xc2,0x00,0xec,0xff,0xa2,0x8e,0xf0,0x04,0x77,0x90,0x25,0xb0,0x03,0x3c,
+0xd4,0x02,0x63,0x34,0x21,0x28,0xa0,0x02,0x21,0x20,0x00,0x02,0x00,0x00,0x62,0xac,
+0x03,0x0a,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x20,0x40,0x00,0xad,0x09,0x00,0x0c,
+0x21,0x28,0xe0,0x02,0x00,0x00,0x05,0x8e,0x73,0x0b,0x00,0x08,0xc2,0x13,0x05,0x00,
+0xd0,0x0c,0xa2,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0xd0,0x0c,0xa2,0xac,
+0x0c,0x00,0x04,0x8e,0x26,0x0b,0x00,0x08,0x3f,0x00,0x83,0x30,0xcc,0x0c,0xc2,0x8f,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0xcc,0x0c,0xc2,0xaf,0x0c,0x00,0x04,0x8e,
+0x22,0x0b,0x00,0x08,0x3f,0x00,0x83,0x30,0xac,0x25,0xc2,0x8e,0xff,0xff,0x71,0x30,
+0x23,0x10,0x47,0x00,0xff,0xff,0x50,0x30,0x21,0x18,0x11,0x02,0xff,0xff,0x72,0x30,
+0x89,0x47,0x00,0x0c,0x21,0x20,0x40,0x02,0x74,0x00,0x40,0x10,0x38,0x00,0xa2,0xaf,
+0x38,0x00,0xa3,0x8f,0xa4,0x25,0xc6,0x8e,0x21,0x38,0x00,0x02,0x08,0x00,0x62,0x8c,
+0x08,0x00,0x04,0x24,0x10,0x00,0xa0,0xaf,0x21,0x18,0x52,0x00,0x21,0x28,0x40,0x00,
+0x74,0x25,0xc3,0xae,0x10,0x01,0x00,0x0c,0x78,0x25,0xc2,0xae,0x4d,0x01,0x00,0x0c,
+0x08,0x00,0x04,0x24,0x78,0x25,0xc5,0x8e,0x25,0xb0,0x04,0x3c,0x24,0x10,0x02,0x3c,
+0x21,0x28,0xb0,0x00,0x00,0x01,0x90,0x34,0x00,0x00,0x02,0xae,0x21,0x38,0x20,0x02,
+0x08,0x00,0x04,0x24,0x24,0x10,0x06,0x3c,0xa4,0x25,0xc2,0xae,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa0,0xaf,0xa8,0x25,0xc3,0x8e,0x08,0x00,0x04,0x24,0x4d,0x01,0x00,0x0c,
+0xa4,0x25,0xc3,0xae,0xa4,0x25,0xc2,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xae,
+0xe6,0x0a,0x00,0x08,0x02,0x80,0x02,0x3c,0x23,0x10,0x67,0x00,0xff,0xff,0x52,0x30,
+0x89,0x47,0x00,0x0c,0x21,0x20,0x40,0x02,0x53,0x00,0x40,0x10,0x38,0x00,0xa2,0xaf,
+0x38,0x00,0xa3,0x8f,0xa4,0x25,0xc6,0x8e,0x08,0x00,0x04,0x24,0x08,0x00,0x62,0x8c,
+0x21,0x38,0x40,0x02,0x10,0x00,0xa0,0xaf,0x21,0x18,0x52,0x00,0x21,0x28,0x40,0x00,
+0x74,0x25,0xc3,0xae,0x10,0x01,0x00,0x0c,0x78,0x25,0xc2,0xae,0xa8,0x25,0xc3,0x8e,
+0x08,0x00,0x04,0x24,0x4d,0x01,0x00,0x0c,0xa4,0x25,0xc3,0xae,0xa4,0x25,0xc3,0x8e,
+0x25,0xb0,0x04,0x3c,0x00,0x01,0x82,0x34,0x00,0x00,0x43,0xac,0xe6,0x0a,0x00,0x08,
+0x02,0x80,0x02,0x3c,0x04,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0x02,0x14,0x04,0x00,
+0x0f,0x00,0x42,0x30,0x08,0x00,0x42,0x28,0x06,0x00,0x40,0x10,0x00,0xc0,0x02,0x3c,
+0x02,0x17,0x04,0x00,0x03,0x00,0x42,0x30,0x0b,0x00,0x40,0x10,0x02,0x80,0x03,0x3c,
+0x00,0xc0,0x02,0x3c,0x24,0x10,0x82,0x00,0x73,0xff,0x40,0x14,0x02,0x17,0x04,0x00,
+0x03,0x00,0x42,0x30,0x03,0x00,0x03,0x24,0x6f,0xff,0x43,0x10,0x00,0x00,0x00,0x00,
+0x6d,0xff,0x40,0x10,0x02,0x80,0x03,0x3c,0x38,0x15,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x15,0x00,0x54,0x10,0x21,0xb8,0x00,0x00,
+0x80,0x10,0x11,0x00,0x21,0xa8,0x53,0x00,0xec,0xff,0xa3,0x8e,0x25,0xb0,0x02,0x3c,
+0xd4,0x02,0x42,0x34,0x21,0x20,0x00,0x02,0x21,0x28,0xa0,0x02,0x00,0x00,0x43,0xac,
+0x03,0x0a,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x20,0x40,0x00,0xad,0x09,0x00,0x0c,
+0x21,0x28,0xe0,0x02,0x58,0xff,0xe0,0x16,0x00,0x00,0x00,0x00,0x21,0x28,0xa0,0x02,
+0x79,0x0a,0x00,0x0c,0x21,0x20,0x00,0x02,0x6b,0x0b,0x00,0x08,0x02,0x80,0x04,0x3c,
+0x02,0x14,0x04,0x00,0x0f,0x00,0x42,0x30,0x38,0x15,0x63,0x24,0x21,0x10,0x43,0x00,
+0xf0,0x04,0x57,0x90,0x05,0x0c,0x00,0x08,0x80,0x10,0x11,0x00,0x25,0xb0,0x04,0x3c,
+0x44,0x44,0x02,0x3c,0xbc,0x02,0x83,0x34,0x44,0x44,0x42,0x34,0x00,0x00,0x62,0xac,
+0x07,0x0b,0x00,0x08,0x02,0x80,0x02,0x3c,0xa8,0x25,0xc5,0x8e,0x25,0xb0,0x02,0x3c,
+0x00,0x01,0x43,0x34,0xbc,0x02,0x44,0x34,0x66,0x66,0x02,0x3c,0x66,0x66,0x42,0x34,
+0x00,0x00,0x65,0xac,0x00,0x00,0x82,0xac,0x06,0x0b,0x00,0x08,0xa4,0x25,0xc5,0xae,
+0x00,0x80,0x02,0x3c,0xc0,0x30,0x43,0x24,0x25,0xb0,0x02,0x3c,0xc0,0xff,0xbd,0x27,
+0x18,0x03,0x42,0x34,0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,
+0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x3c,0x00,0xbf,0xaf,0x24,0x00,0xb3,0xaf,
+0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x00,0x00,0x43,0xac,
+0x21,0xf0,0x00,0x00,0x02,0x80,0x14,0x3c,0x02,0x80,0x15,0x3c,0x02,0x80,0x16,0x3c,
+0x02,0x80,0x17,0x3c,0x38,0x15,0x85,0x26,0xf0,0x23,0xa3,0x94,0x25,0xb0,0x08,0x3c,
+0x00,0x80,0x06,0x3c,0x18,0x03,0x04,0x35,0x01,0x00,0x63,0x24,0xc0,0x30,0xc2,0x24,
+0x00,0x00,0x82,0xac,0xf0,0x23,0xa3,0xa4,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xc6,0x00,0x03,0x35,0x00,0x00,0x62,0x94,
+0x00,0x00,0x00,0x00,0x11,0x00,0x42,0x2c,0x08,0x00,0x40,0x14,0x02,0x80,0x03,0x3c,
+0x02,0x80,0x04,0x3c,0x84,0x3e,0x62,0x8c,0x9c,0x3e,0x83,0x8c,0x02,0x80,0x06,0x3c,
+0x9c,0x3e,0x80,0xac,0x25,0x10,0x43,0x00,0x84,0x3e,0xc2,0xac,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xc0,0x02,0x02,0x35,0x00,0x00,0x52,0x8c,
+0xff,0x00,0x03,0x3c,0xff,0xff,0x62,0x34,0x2b,0x10,0x52,0x00,0x42,0x00,0x40,0x10,
+0x00,0xff,0x02,0x3c,0xff,0x00,0x42,0x34,0x00,0xfd,0x04,0x3c,0x24,0x38,0x42,0x02,
+0x12,0x00,0x82,0x34,0x2e,0x06,0xe2,0x10,0x2b,0x10,0x47,0x00,0x41,0x02,0x40,0x14,
+0xa5,0x00,0x82,0x34,0x00,0xf8,0x06,0x3c,0x18,0x00,0xc2,0x34,0x71,0x06,0xe2,0x10,
+0x2b,0x10,0x47,0x00,0xc0,0x02,0x40,0x14,0x00,0xfb,0x09,0x3c,0x00,0xf1,0x04,0x3c,
+0x02,0x00,0x82,0x34,0x2d,0x00,0xe2,0x10,0x2b,0x10,0x47,0x00,0x3e,0x03,0x40,0x14,
+0x11,0x00,0xc2,0x34,0x00,0xf0,0x04,0x3c,0x02,0x00,0x82,0x34,0xc4,0x06,0xe2,0x10,
+0x2b,0x10,0x47,0x00,0x39,0x04,0x40,0x14,0x20,0x00,0x82,0x34,0x00,0xe0,0x02,0x3c,
+0xe9,0x06,0xe2,0x10,0x2b,0x10,0x47,0x00,0xd9,0x04,0x40,0x14,0x00,0xc0,0x02,0x3c,
+0x25,0x07,0xe2,0x10,0x00,0xd0,0x02,0x3c,0xaa,0x07,0xe2,0x10,0x00,0x0f,0x42,0x32,
+0x00,0xf0,0x02,0x3c,0x24,0x28,0x42,0x02,0x18,0x00,0xa2,0x10,0x00,0x70,0x08,0x3c,
+0x0f,0x00,0x03,0x3c,0x24,0x10,0x48,0x02,0x02,0x25,0x12,0x00,0xff,0xff,0x63,0x34,
+0x00,0x50,0x06,0x3c,0x24,0x38,0x43,0x02,0x02,0x57,0x02,0x00,0xff,0x00,0x84,0x30,
+0x7b,0x03,0xa6,0x10,0xff,0x00,0x49,0x32,0x2b,0x10,0xc5,0x00,0x6f,0x03,0x40,0x14,
+0x00,0x80,0x02,0x3c,0x00,0x20,0x02,0x3c,0xf2,0x05,0xa2,0x10,0x2b,0x10,0x45,0x00,
+0x30,0x04,0x40,0x14,0x00,0x30,0x02,0x3c,0xef,0x05,0xa0,0x10,0x80,0x10,0x04,0x00,
+0x00,0x10,0x02,0x3c,0xec,0x05,0xa2,0x10,0x80,0x10,0x04,0x00,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x08,0x3c,0x64,0x03,0x02,0x35,
+0x00,0x00,0x43,0x94,0x68,0x03,0x04,0x35,0xd0,0x3d,0xa3,0xa6,0x00,0x00,0x82,0x8c,
+0x00,0x00,0x00,0x00,0xe0,0x3d,0xc2,0xae,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0xd0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,
+0xca,0x01,0x40,0x10,0x38,0x15,0x86,0x26,0x38,0x15,0x87,0x26,0x38,0x15,0x84,0x8e,
+0xd8,0x02,0xe5,0x8c,0xe8,0x02,0xe6,0x8c,0xf0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x00,0x50,0x03,0x3c,0x24,0x28,0xa2,0x00,0x01,0x00,0x84,0x34,0x24,0x30,0xc3,0x00,
+0x00,0x10,0x02,0x3c,0x38,0x15,0x84,0xae,0xe2,0x05,0xc2,0x10,0xd8,0x02,0xe5,0xac,
+0xd0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x30,0xb4,0x01,0x40,0x10,
+0xf3,0xff,0x03,0x24,0x38,0x15,0x82,0x8e,0x00,0x00,0x00,0x00,0x24,0x10,0x43,0x00,
+0x04,0x00,0x42,0x34,0x38,0x15,0x82,0xae,0xd0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00,
+0x04,0x00,0x42,0x30,0x41,0x01,0x40,0x10,0xcf,0xff,0x03,0x24,0x38,0x15,0x82,0x8e,
+0x00,0x00,0x00,0x00,0x24,0x10,0x43,0x00,0x10,0x00,0x42,0x34,0x38,0x15,0x82,0xae,
+0xd0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x30,0x40,0x01,0x40,0x14,
+0x00,0x00,0x00,0x00,0xd0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00,0x10,0x00,0x42,0x30,
+0x26,0x00,0x40,0x10,0x38,0x15,0x84,0x26,0xc9,0x02,0x82,0x90,0xe0,0x3d,0xc3,0x8e,
+0x01,0x00,0x42,0x24,0xc9,0x02,0x82,0xa0,0x0f,0x00,0x63,0x30,0x01,0x00,0x02,0x24,
+0xdb,0x05,0x62,0x10,0x02,0x80,0x04,0x3c,0xe0,0x3d,0x82,0x8c,0x02,0x00,0x03,0x24,
+0x0f,0x00,0x42,0x30,0xd8,0x05,0x43,0x10,0x00,0x00,0x00,0x00,0xe0,0x3d,0x82,0x8c,
+0x03,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0x02,0x00,0x43,0x10,0x03,0x00,0x04,0x24,
+0x21,0x20,0x00,0x00,0xc9,0x48,0x00,0x0c,0x00,0x00,0x00,0x00,0xe0,0x3d,0xc3,0x8e,
+0xd0,0x3d,0xa5,0x96,0x25,0xb0,0x02,0x3c,0xf0,0x00,0x63,0x30,0x64,0x03,0x42,0x34,
+0x02,0x19,0x03,0x00,0xef,0x00,0xa5,0x30,0x38,0x15,0x84,0x26,0x02,0x00,0x83,0xa0,
+0x00,0x00,0x45,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0xd0,0x3d,0xa2,0x96,
+0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x30,0x26,0x00,0x40,0x10,0x38,0x15,0x84,0x26,
+0xca,0x02,0x82,0x90,0xe0,0x3d,0xc3,0x8e,0x01,0x00,0x42,0x24,0xca,0x02,0x82,0xa0,
+0x0f,0x00,0x63,0x30,0x01,0x00,0x02,0x24,0xaf,0x05,0x62,0x10,0x02,0x80,0x04,0x3c,
+0xe0,0x3d,0x82,0x8c,0x02,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0xb0,0x05,0x43,0x10,
+0x00,0x00,0x00,0x00,0xe0,0x3d,0x82,0x8c,0x03,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,
+0x02,0x00,0x43,0x10,0x03,0x00,0x04,0x24,0x21,0x20,0x00,0x00,0xc9,0x48,0x00,0x0c,
+0x00,0x00,0x00,0x00,0xe0,0x3d,0xc3,0x8e,0xd0,0x3d,0xa5,0x96,0x25,0xb0,0x02,0x3c,
+0xf0,0x00,0x63,0x30,0x64,0x03,0x42,0x34,0x02,0x19,0x03,0x00,0xdf,0x00,0xa5,0x30,
+0x38,0x15,0x84,0x26,0x02,0x00,0x83,0xa0,0x00,0x00,0x45,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0xd0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x30,
+0xbc,0x00,0x40,0x10,0x38,0x15,0x84,0x26,0x38,0x15,0x8f,0x26,0x08,0x00,0xe4,0x8d,
+0x00,0x00,0x00,0x00,0x42,0x17,0x04,0x00,0x03,0x00,0x42,0x30,0x6f,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0xe0,0x3d,0xc2,0x8e,0xff,0x9f,0x03,0x3c,0xff,0xff,0x63,0x34,
+0x24,0x18,0x83,0x00,0x00,0xff,0x11,0x3c,0x00,0x20,0x04,0x3c,0x25,0x18,0x64,0x00,
+0x24,0x10,0x51,0x00,0x08,0x00,0xe3,0xad,0x91,0x01,0x40,0x14,0x02,0x80,0x10,0x3c,
+0x25,0xb0,0x0e,0x3c,0x03,0x0d,0xc2,0x35,0x00,0x00,0x43,0x90,0x10,0x00,0xe4,0x8d,
+0xff,0x3f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x58,0x82,0x00,0x70,0x00,0x63,0x30,
+0x00,0x40,0x02,0x3c,0x78,0x05,0x60,0x10,0x25,0x58,0x62,0x01,0x94,0x0e,0xc2,0x35,
+0x9c,0x0e,0xc3,0x35,0xa4,0x0e,0xc4,0x35,0xac,0x0e,0xc5,0x35,0x00,0x00,0x47,0x8c,
+0x00,0x00,0x6a,0x8c,0x00,0x00,0x8c,0x8c,0x00,0x00,0xa6,0x8c,0x0c,0x00,0xe4,0x8d,
+0xb4,0x0e,0xc2,0x35,0x00,0x00,0x49,0x8c,0xff,0x03,0x05,0x3c,0x00,0xfc,0x08,0x24,
+0xbc,0x0e,0xc2,0x35,0x24,0x38,0xe5,0x00,0x24,0x30,0xc5,0x00,0x24,0x18,0x68,0x01,
+0x02,0x3c,0x07,0x00,0x00,0x00,0x4b,0x8c,0x24,0x20,0x88,0x00,0x02,0x34,0x06,0x00,
+0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34,0x25,0x20,0x87,0x00,0x25,0x18,0x66,0x00,
+0x24,0x50,0x45,0x01,0x24,0x48,0x25,0x01,0x24,0x18,0x62,0x00,0x24,0x20,0x82,0x00,
+0x82,0x51,0x0a,0x00,0x82,0x49,0x09,0x00,0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x25,0x20,0x8a,0x00,0x25,0x18,0x69,0x00,0x24,0x60,0x85,0x01,0x24,0x58,0x65,0x01,
+0x24,0x18,0x62,0x00,0x24,0x20,0x82,0x00,0xcc,0x0e,0xcd,0x35,0xc4,0x0e,0xc8,0x35,
+0x00,0x61,0x0c,0x00,0x00,0x59,0x0b,0x00,0x00,0x00,0x07,0x8d,0x25,0x18,0x6b,0x00,
+0x00,0x00,0xa6,0x8d,0x25,0x20,0x8c,0x00,0x10,0x00,0xe3,0xad,0x0c,0x00,0xe4,0xad,
+0x38,0x15,0x83,0x26,0x0c,0x00,0x62,0x8c,0x24,0x30,0xc5,0x00,0x24,0x38,0xe5,0x00,
+0x02,0x3c,0x07,0x00,0x02,0x34,0x06,0x00,0x16,0x00,0xe6,0xa5,0x45,0x05,0x40,0x04,
+0x14,0x00,0xe7,0xa5,0xe0,0x3d,0xc2,0x8e,0xff,0x00,0x04,0x3c,0x24,0x10,0x44,0x00,
+0x05,0x00,0x40,0x10,0x12,0x00,0x02,0x24,0xe0,0x3d,0xc2,0x8e,0x00,0x00,0x00,0x00,
+0x24,0x10,0x44,0x00,0x02,0x14,0x02,0x00,0xc3,0x02,0x62,0xa0,0x10,0x4e,0x00,0x0c,
+0x10,0x00,0xa4,0x27,0x4b,0x4d,0x00,0x0c,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,
+0x0c,0x00,0x43,0x8c,0x00,0x80,0x04,0x3c,0x25,0x18,0x64,0x00,0x0c,0x00,0x43,0xac,
+0x38,0x15,0x82,0x26,0xc3,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c,0x61,0x0c,0x63,0x34,
+0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0xd0,0x3d,0xa2,0x96,
+0x00,0x00,0x00,0x00,0x80,0x00,0x42,0x30,0x4c,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x38,0x15,0x82,0x8e,0x00,0x00,0x00,0x00,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,
+0x08,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xd0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00,
+0x00,0x01,0x42,0x30,0xd8,0x00,0x40,0x14,0x02,0x80,0x02,0x3c,0x38,0x15,0x82,0x26,
+0xea,0x02,0x40,0xa0,0xd0,0x3d,0xa2,0x96,0x01,0x00,0x03,0x24,0x00,0x02,0x42,0x30,
+0xd9,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x8e,0xfd,0xff,0x03,0x24,
+0x24,0x10,0x43,0x00,0x38,0x15,0x82,0xae,0x25,0xb0,0x05,0x3c,0x4c,0x00,0xa3,0x34,
+0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,0x05,0x00,0x40,0x14,
+0x3f,0xff,0x03,0x24,0x38,0x15,0x82,0x8e,0x00,0x00,0x00,0x00,0x24,0x10,0x43,0x00,
+0x38,0x15,0x82,0xae,0x30,0x3b,0xe4,0x8e,0x00,0x80,0x06,0x3c,0xc0,0x31,0xc2,0x24,
+0x18,0x03,0xa3,0x34,0x30,0x3b,0xe6,0x26,0x00,0x00,0x62,0xac,0x11,0x00,0x86,0x10,
+0x02,0x80,0x02,0x3c,0xbf,0x00,0xb2,0x34,0x38,0x15,0x51,0x24,0x21,0x80,0xc0,0x00,
+0x21,0xf0,0x00,0x00,0x00,0x00,0x42,0x92,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x2c,
+0x09,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0xf8,0x25,0x24,0x8e,0x78,0x08,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x30,0x3b,0xe2,0x8e,0x00,0x00,0x00,0x00,0xf5,0xff,0x50,0x14,
+0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x08,0x08,0x44,0x24,0x21,0x28,0x00,0x00,
+0x21,0x30,0x00,0x00,0x1c,0x2c,0x00,0x0c,0x21,0x38,0x00,0x00,0x46,0x0c,0x00,0x08,
+0x38,0x15,0x85,0x26,0x08,0x00,0x83,0x8c,0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x08,0x00,0x83,0xac,0xd0,0x3d,0xa2,0x96,0x00,0x00,0x00,0x00,
+0x80,0x00,0x42,0x30,0xb6,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x38,0x15,0x85,0x26,
+0xc8,0x02,0xa4,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0x02,0x1f,0x04,0x00,
+0x01,0x00,0x63,0x24,0x24,0x20,0x82,0x00,0x00,0x1f,0x03,0x00,0x25,0x20,0x83,0x00,
+0x2a,0x4a,0x00,0x0c,0xc8,0x02,0xa4,0xac,0xd0,0x3d,0xa3,0x96,0x25,0xb0,0x02,0x3c,
+0x64,0x03,0x42,0x34,0x7f,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0xb8,0x0d,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x8e,
+0x00,0x00,0x00,0x00,0x24,0x10,0x43,0x00,0x38,0x15,0x82,0xae,0xd0,0x3d,0xa2,0x96,
+0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x30,0xc2,0xfe,0x40,0x10,0x00,0x00,0x00,0x00,
+0x38,0x15,0x85,0x26,0xc8,0x02,0xa4,0x8c,0xff,0xf0,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x02,0x1e,0x04,0x00,0x0f,0x00,0x63,0x30,0x01,0x00,0x63,0x24,0x0f,0x00,0x63,0x30,
+0x24,0x20,0x82,0x00,0x00,0x1e,0x03,0x00,0x25,0x20,0x83,0x00,0x99,0x48,0x00,0x0c,
+0xc8,0x02,0xa4,0xac,0x11,0x4a,0x00,0x0c,0x00,0x00,0x00,0x00,0xe0,0x3d,0xc2,0x8e,
+0x01,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0xef,0x09,0x43,0x10,0x02,0x80,0x04,0x3c,
+0xe0,0x3d,0x82,0x8c,0x02,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0xec,0x09,0x43,0x10,
+0x00,0x00,0x00,0x00,0xe0,0x3d,0x82,0x8c,0x03,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,
+0x02,0x00,0x43,0x10,0x03,0x00,0x04,0x24,0x21,0x20,0x00,0x00,0xc9,0x48,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x29,0xb0,0x02,0x3c,0x00,0x00,0x40,0xac,0x08,0x00,0x44,0x34,
+0x0c,0x00,0x45,0x34,0x10,0x00,0x46,0x34,0x3c,0x00,0x51,0x34,0x04,0x00,0x43,0x34,
+0x14,0x00,0x47,0x34,0x18,0x00,0x48,0x34,0x1c,0x00,0x49,0x34,0x20,0x00,0x4a,0x34,
+0x24,0x00,0x4b,0x34,0x28,0x00,0x4c,0x34,0x2c,0x00,0x4d,0x34,0x30,0x00,0x4e,0x34,
+0x34,0x00,0x4f,0x34,0x38,0x00,0x50,0x34,0x02,0x80,0x02,0x3c,0x00,0x00,0x60,0xac,
+0x00,0x00,0x80,0xac,0x00,0x00,0xa0,0xac,0xff,0xff,0x04,0x24,0x00,0x00,0xc0,0xac,
+0x21,0x28,0x00,0x00,0x00,0x00,0xe0,0xac,0x38,0x15,0x46,0x24,0x00,0x00,0x00,0xad,
+0x00,0x00,0x20,0xad,0x00,0x00,0x40,0xad,0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad,
+0x00,0x00,0xa0,0xad,0x00,0x00,0xc0,0xad,0x00,0x00,0xe0,0xad,0x00,0x00,0x00,0xae,
+0x00,0x00,0x20,0xae,0x21,0x18,0xa6,0x00,0x01,0x00,0xa5,0x24,0x08,0x00,0xa2,0x28,
+0xfc,0xff,0x40,0x14,0xf0,0x04,0x64,0xa0,0x02,0x80,0x02,0x3c,0x38,0x15,0x43,0x24,
+0x1f,0x00,0x05,0x24,0x90,0x11,0x62,0x8c,0xff,0xff,0xa5,0x24,0xf0,0x00,0x42,0x34,
+0x90,0x11,0x62,0xac,0xfb,0xff,0xa1,0x04,0x94,0x00,0x63,0x24,0xd0,0x3d,0xa3,0x96,
+0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34,0xf7,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0xe5,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x38,0x15,0x82,0x8e,0xd5,0x0c,0x00,0x08,0x24,0x10,0x43,0x00,0x38,0x15,0x84,0x8e,
+0xe8,0x02,0xc5,0x8c,0xfe,0xff,0x02,0x24,0x00,0x90,0x03,0x3c,0x24,0x20,0x82,0x00,
+0x24,0x18,0xa3,0x00,0x00,0x10,0x02,0x3c,0x3d,0xfe,0x62,0x14,0x38,0x15,0x84,0xae,
+0x50,0x0c,0x03,0x35,0xff,0xbf,0x02,0x3c,0x00,0x00,0x64,0x90,0xff,0xff,0x42,0x34,
+0x24,0x10,0xa2,0x00,0x00,0x80,0x03,0x3c,0x25,0x10,0x43,0x00,0xe8,0x02,0xc2,0xac,
+0xcc,0x0c,0x00,0x08,0xdb,0x02,0xc4,0xa0,0xff,0xff,0x03,0x24,0x38,0x15,0x42,0x24,
+0xea,0x02,0x43,0xa0,0xd0,0x3d,0xa2,0x96,0x01,0x00,0x03,0x24,0x00,0x02,0x42,0x30,
+0x29,0xff,0x43,0x14,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x8e,0x25,0xb0,0x03,0x3c,
+0x77,0x00,0x04,0x24,0x02,0x00,0x42,0x34,0x99,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,
+0x38,0x15,0x82,0xae,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0xcf,0x0d,0x00,0x08,
+0x25,0xb0,0x05,0x3c,0x2b,0x04,0xe2,0x10,0x2b,0x10,0x47,0x00,0xa0,0x00,0x40,0x14,
+0x24,0x00,0x82,0x34,0x36,0x04,0xe2,0x10,0x2b,0x10,0x47,0x00,0x1f,0x01,0x40,0x14,
+0x30,0x00,0x82,0x34,0x18,0x00,0x82,0x34,0xa1,0x04,0xe2,0x10,0x2b,0x10,0x47,0x00,
+0xe1,0x01,0x40,0x14,0x21,0x00,0x82,0x34,0x15,0x00,0x82,0x34,0xe7,0xfd,0xe2,0x10,
+0x2b,0x10,0x47,0x00,0x7c,0x02,0x40,0x14,0x16,0x00,0x82,0x34,0x13,0x00,0x82,0x34,
+0xb8,0x06,0xe2,0x10,0x14,0x00,0x82,0x34,0xc6,0xfd,0xe2,0x14,0x00,0xf0,0x02,0x3c,
+0xff,0x00,0x04,0x3c,0x00,0xff,0x82,0x34,0x24,0x10,0x42,0x02,0xdc,0xfd,0x40,0x10,
+0x25,0xb0,0x02,0x3c,0x38,0x15,0x83,0x26,0x00,0xff,0x45,0x32,0x08,0x03,0x66,0x90,
+0x02,0x2a,0x05,0x00,0xfb,0xff,0xa2,0x24,0x24,0x20,0x44,0x02,0x02,0x24,0x04,0x00,
+0x23,0x03,0x62,0xa0,0x25,0xb0,0x02,0x3c,0x00,0x01,0xc6,0x34,0xfb,0xff,0x87,0x24,
+0xc0,0x02,0x42,0x34,0x08,0x03,0x66,0xac,0x21,0x03,0x67,0xa0,0x20,0x03,0x64,0xa0,
+0x22,0x03,0x65,0xa0,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x04,0x3c,0x94,0x0e,0x82,0x34,0x9c,0x0e,0x83,0x34,0xa4,0x0e,0x85,0x34,
+0xac,0x0e,0x86,0x34,0x00,0x00,0x49,0x8c,0x00,0x00,0x6c,0x8c,0xb4,0x0e,0x82,0x34,
+0x00,0x00,0xae,0x8c,0x10,0x00,0xe3,0x8d,0x00,0x00,0xc8,0x8c,0x0c,0x00,0xe5,0x8d,
+0x00,0x00,0x4a,0x8c,0xff,0x3f,0x02,0x3c,0xff,0x03,0x06,0x3c,0xff,0xff,0x42,0x34,
+0x00,0xfc,0x07,0x24,0x24,0x18,0x62,0x00,0x24,0x48,0x26,0x01,0xbc,0x0e,0x82,0x34,
+0x24,0x40,0x06,0x01,0x00,0x00,0x4b,0x8c,0x24,0x18,0x67,0x00,0x24,0x28,0xa7,0x00,
+0x02,0x44,0x08,0x00,0xcc,0x0e,0x8d,0x34,0x02,0x4c,0x09,0x00,0xc4,0x0e,0x84,0x34,
+0xf0,0xff,0x02,0x3c,0x00,0x00,0x87,0x8c,0xff,0x03,0x42,0x34,0x00,0x00,0xa4,0x8d,
+0x25,0x18,0x68,0x00,0x25,0x28,0xa9,0x00,0x24,0x60,0x86,0x01,0x24,0x50,0x46,0x01,
+0xe0,0x3d,0x08,0x8e,0x24,0x18,0x62,0x00,0x24,0x28,0xa2,0x00,0x82,0x61,0x0c,0x00,
+0x82,0x51,0x0a,0x00,0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34,0x25,0x28,0xac,0x00,
+0x25,0x18,0x6a,0x00,0x24,0x70,0xc6,0x01,0x24,0x58,0x66,0x01,0x24,0x18,0x62,0x00,
+0x24,0x28,0xa2,0x00,0x24,0x20,0x86,0x00,0x00,0x71,0x0e,0x00,0x00,0x59,0x0b,0x00,
+0x24,0x38,0xe6,0x00,0xff,0xff,0x02,0x3c,0x25,0x28,0xae,0x00,0x25,0x18,0x6b,0x00,
+0x02,0x3c,0x07,0x00,0x02,0x24,0x04,0x00,0x24,0x40,0x02,0x01,0x0c,0x00,0xe5,0xad,
+0x10,0x00,0xe3,0xad,0x14,0x00,0xe7,0xa5,0x82,0x00,0x00,0x11,0x16,0x00,0xe4,0xa5,
+0xe0,0x3d,0x03,0x8e,0xe0,0x3d,0x02,0x8e,0x02,0x1c,0x03,0x00,0x24,0x10,0x51,0x00,
+0x02,0x16,0x02,0x00,0xc7,0x02,0xe2,0xa1,0xc3,0x02,0xe3,0xa1,0x10,0x4e,0x00,0x0c,
+0x10,0x00,0xa4,0x27,0xd0,0x3d,0xa3,0x96,0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34,
+0xbf,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,
+0xa9,0x0d,0x00,0x08,0x38,0x15,0x82,0x26,0x01,0x00,0x22,0x35,0xc8,0x03,0xe2,0x10,
+0x2b,0x10,0x47,0x00,0xb7,0x00,0x40,0x14,0x05,0x00,0x82,0x34,0x00,0xf9,0x03,0x3c,
+0x03,0x00,0x62,0x34,0x28,0x04,0xe2,0x10,0x2b,0x10,0x47,0x00,0x25,0x01,0x40,0x14,
+0x06,0x00,0x62,0x34,0xbd,0x04,0xe3,0x10,0x2b,0x10,0x67,0x00,0x42,0x02,0x40,0x14,
+0x01,0x00,0x62,0x34,0x20,0x00,0xc2,0x34,0xdc,0x04,0xe2,0x10,0x21,0x00,0xc2,0x34,
+0x44,0xfd,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x38,0x15,0x82,0x26,0x10,0x0b,0x43,0x8c,
+0x00,0x04,0x04,0x3c,0x25,0x18,0x64,0x00,0x10,0x0b,0x43,0xac,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x00,0xff,0x05,0x3c,0xb4,0x03,0xe5,0x10,0x2b,0x10,0xa7,0x00,0x4d,0x00,0x40,0x14,
+0x0f,0x00,0xa2,0x34,0xaf,0x00,0x82,0x34,0x33,0x04,0xe2,0x10,0x2b,0x10,0x47,0x00,
+0xc2,0x00,0x40,0x14,0xaa,0x00,0x82,0x34,0xbd,0x04,0xe2,0x10,0x2b,0x10,0x47,0x00,
+0x87,0x01,0x40,0x14,0xab,0x00,0x82,0x34,0xa6,0x00,0x82,0x34,0xca,0x04,0xe2,0x10,
+0xa7,0x00,0x82,0x34,0x27,0xfd,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x00,0xff,0x42,0x32,
+0x02,0x9a,0x02,0x00,0x02,0x1c,0x12,0x00,0x01,0x00,0x02,0x24,0xaa,0x08,0x62,0x12,
+0xff,0x00,0x67,0x30,0x02,0x00,0x02,0x24,0x97,0x08,0x62,0x12,0x03,0x00,0x02,0x24,
+0x84,0x08,0x62,0x12,0x04,0x00,0x02,0x24,0x72,0x08,0x62,0x12,0x08,0x00,0x02,0x24,
+0x5f,0x08,0x62,0x12,0x09,0x00,0x02,0x24,0x4c,0x08,0x62,0x12,0x0a,0x00,0x02,0x24,
+0x39,0x08,0x62,0x12,0x0b,0x00,0x02,0x24,0x26,0x08,0x62,0x12,0x0c,0x00,0x02,0x24,
+0xce,0x07,0x62,0x12,0x0d,0x00,0x02,0x24,0xbb,0x07,0x62,0x12,0x0e,0x00,0x02,0x24,
+0xa8,0x07,0x62,0x12,0x0f,0x00,0x02,0x24,0x95,0x07,0x62,0x12,0x10,0x00,0x02,0x24,
+0x23,0xfd,0x62,0x16,0x25,0xb0,0x02,0x3c,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x47,0x00,0x38,0x15,0x83,0x26,0x80,0x10,0x02,0x00,
+0x21,0x10,0x43,0x00,0x64,0x11,0x44,0x94,0x60,0x11,0x45,0x94,0x25,0xb0,0x06,0x3c,
+0x00,0x24,0x04,0x00,0xc4,0x02,0xc3,0x34,0x21,0x28,0xa4,0x00,0x00,0x00,0x65,0xac,
+0x70,0x11,0x47,0x8c,0x6c,0x11,0x43,0x8c,0x68,0x11,0x44,0x94,0x25,0xb0,0x02,0x3c,
+0x21,0x18,0x67,0x00,0x00,0x1c,0x03,0x00,0xc8,0x02,0xc6,0x34,0x21,0x20,0x83,0x00,
+0xc0,0x02,0x42,0x34,0x00,0x00,0xc4,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x12,0x00,0x02,0x24,0xc7,0x02,0xe2,0xa1,0x27,0x0f,0x00,0x08,
+0xc3,0x02,0xe2,0xa1,0x6b,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,0xaa,0x00,0x40,0x14,
+0x21,0x00,0xa2,0x34,0x0c,0x00,0xa2,0x34,0x5e,0x04,0xe2,0x10,0x2b,0x10,0x47,0x00,
+0x56,0x02,0x40,0x14,0x0d,0x00,0xa2,0x34,0x01,0x00,0xa2,0x34,0xac,0x06,0xe2,0x10,
+0x07,0x00,0xa2,0x34,0xdb,0xfc,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x43,0x47,0x00,0x0c,
+0x07,0x00,0x04,0x24,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x6c,0x03,0xe2,0x10,0x00,0xf8,0x05,0x3c,
+0x2b,0x10,0x47,0x00,0xba,0x00,0x40,0x14,0x14,0x00,0xc2,0x34,0x00,0xf2,0x03,0x3c,
+0x2a,0x04,0xe3,0x10,0x2b,0x10,0x67,0x00,0xe2,0x01,0x40,0x14,0x01,0x00,0x62,0x34,
+0x03,0x00,0x82,0x34,0x80,0x05,0xe2,0x10,0x04,0x00,0x82,0x34,0xc5,0xfc,0xe2,0x14,
+0x00,0xf0,0x02,0x3c,0x02,0x14,0x12,0x00,0xff,0x00,0x53,0x30,0x00,0xff,0x43,0x32,
+0x07,0x00,0x62,0x2e,0xd9,0xfc,0x40,0x10,0x02,0xf2,0x03,0x00,0x02,0x80,0x04,0x3c,
+0xec,0x82,0x83,0x24,0x80,0x10,0x13,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,
+0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x44,0x03,0xe2,0x10,
+0x2b,0x10,0x47,0x00,0xd8,0x00,0x40,0x14,0xa1,0x00,0x82,0x34,0x28,0x00,0x82,0x34,
+0x45,0x05,0xe2,0x10,0x2b,0x10,0x47,0x00,0x2f,0x02,0x40,0x14,0x29,0x00,0x82,0x34,
+0x25,0x00,0x82,0x34,0x5c,0x05,0xe2,0x10,0x26,0x00,0x82,0x34,0xa9,0xfc,0xe2,0x14,
+0x00,0xf0,0x02,0x3c,0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34,0x00,0x00,0x43,0x90,
+0x00,0x00,0x00,0x00,0xff,0x00,0x73,0x30,0x08,0x00,0x64,0x36,0x00,0x00,0x44,0xa0,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x4b,0x00,0x40,0x14,0x09,0x00,0x82,0x34,
+0x03,0x00,0x82,0x34,0x2b,0x10,0xe2,0x00,0xb1,0xfc,0x40,0x10,0x25,0xb0,0x02,0x3c,
+0x75,0x03,0xe4,0x10,0x2b,0x10,0x87,0x00,0x71,0x02,0x40,0x14,0x01,0x00,0x82,0x34,
+0x02,0x00,0x22,0x35,0x6d,0x05,0xe2,0x10,0x03,0x00,0x22,0x35,0x8d,0xfc,0xe2,0x14,
+0x00,0xf0,0x02,0x3c,0x38,0x15,0x83,0x26,0x04,0x24,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x03,0x00,0x42,0x34,0x04,0x24,0x62,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x89,0x03,0xa2,0x10,
+0x2b,0x10,0x45,0x00,0xcb,0x00,0x40,0x14,0x00,0xa0,0x02,0x3c,0x00,0x60,0x02,0x3c,
+0x04,0x00,0xa2,0x10,0x80,0x10,0x04,0x00,0x95,0xfc,0xa8,0x14,0x25,0xb0,0x02,0x3c,
+0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x38,0x15,0x83,0x26,0x21,0x10,0x43,0x00,
+0x21,0x10,0x4a,0x00,0xc5,0x03,0x49,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0xfe,0x04,0x3c,
+0x12,0x00,0x82,0x34,0x7b,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,0xd5,0x00,0x40,0x14,
+0x19,0x00,0x82,0x34,0x10,0x00,0x82,0x34,0x2a,0x05,0xe2,0x10,0x11,0x00,0x82,0x34,
+0x64,0xfc,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xff,0x00,0x02,0x3c,0x00,0xff,0x42,0x34,
+0x24,0x10,0x42,0x02,0x02,0xf2,0x02,0x00,0x38,0x15,0x83,0x26,0x21,0x20,0xc0,0x03,
+0xe0,0x24,0x00,0x0c,0x82,0x0b,0x60,0xa0,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x77,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,
+0xd0,0x00,0x40,0x14,0x10,0x00,0x82,0x34,0x07,0x00,0x82,0x34,0x00,0x04,0xe2,0x10,
+0x08,0x00,0x82,0x34,0x47,0xfc,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x25,0xb0,0x03,0x3c,
+0x64,0x03,0x63,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0xfd,0x00,0x42,0x30,
+0x00,0x00,0x62,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x71,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,
+0x3f,0x01,0x40,0x14,0x30,0x00,0xa2,0x34,0x10,0x00,0xa2,0x34,0xf3,0x03,0xe2,0x10,
+0x20,0x00,0xa2,0x34,0x33,0xfc,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x02,0x80,0x04,0x3c,
+0x84,0x3e,0x83,0x8c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x43,0xac,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x68,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,0xc7,0x01,0x40,0x14,
+0x20,0x00,0x62,0x34,0x04,0x00,0x62,0x34,0xea,0x03,0xe2,0x10,0x05,0x00,0x62,0x34,
+0x20,0xfc,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x38,0x15,0x82,0x26,0x5c,0x24,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0xf9,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,0xda,0x00,0x40,0x14,0x16,0x00,0xa2,0x34,
+0x12,0x00,0xc2,0x34,0xe1,0x03,0xe2,0x10,0x13,0x00,0xc2,0x34,0x0d,0xfc,0xe2,0x14,
+0x00,0xf0,0x02,0x3c,0x28,0xb0,0x13,0x3c,0x00,0x00,0x62,0x96,0x02,0x1c,0x12,0x00,
+0xff,0x00,0x64,0x30,0xff,0xff,0x5e,0x30,0xff,0x00,0xc3,0x33,0x0c,0x00,0x83,0x10,
+0xff,0x7f,0x03,0x3c,0x08,0x00,0x73,0x26,0x00,0x00,0x62,0x96,0x00,0x00,0x00,0x00,
+0xff,0xff,0x5e,0x30,0xff,0x00,0xc3,0x33,0x04,0x00,0x83,0x10,0xff,0xff,0x62,0x32,
+0x00,0x08,0x42,0x2c,0xf7,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0xff,0x7f,0x03,0x3c,
+0xff,0xff,0x63,0x34,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x24,0x18,0x63,0x02,
+0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x39,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,
+0x7d,0x01,0x40,0x14,0x22,0x00,0x82,0x34,0x19,0x00,0x82,0x34,0x20,0x04,0xe2,0x10,
+0x20,0x00,0x82,0x34,0xe7,0xfb,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x38,0x15,0x84,0x26,
+0x08,0x00,0x83,0x8c,0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x08,0x00,0x83,0xac,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xfb,0x02,0xe2,0x10,0x2b,0x10,0x47,0x00,
+0xbf,0x00,0x40,0x14,0xa3,0x00,0x82,0x34,0x31,0x00,0x82,0x34,0x00,0x04,0xe2,0x10,
+0xa0,0x00,0x82,0x34,0x8a,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xe4,0x03,0xe2,0x10,
+0x2b,0x10,0x47,0x00,0x07,0x01,0x40,0x14,0x00,0xf1,0x02,0x3c,0x03,0x00,0x82,0x34,
+0xc4,0x03,0xe2,0x10,0x08,0x00,0x82,0x34,0xca,0xfb,0xe2,0x14,0x00,0xf0,0x02,0x3c,
+0x00,0xff,0x42,0x32,0x02,0x92,0x02,0x00,0xc2,0x06,0x40,0x12,0x01,0x00,0x02,0x24,
+0x61,0x07,0x42,0x12,0x00,0x00,0x00,0x00,0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xbf,0x01,0xa2,0x10,0x00,0x40,0x02,0x3c,0x40,0xff,0xa2,0x10,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x39,0x03,0xa2,0x10,0x2b,0x10,0x45,0x00,0x6f,0x01,0x40,0x14,
+0x00,0xb0,0x02,0x3c,0x00,0x90,0x02,0x3c,0xc9,0xfb,0xa2,0x14,0x25,0xb0,0x02,0x3c,
+0x38,0x15,0x82,0x26,0x21,0x10,0x82,0x00,0x77,0x04,0x49,0xa0,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0xaf,0x04,0xe2,0x10,0xae,0x00,0x82,0x34,0xa2,0xfb,0xe2,0x14,0x00,0xf0,0x02,0x3c,
+0x00,0xff,0x45,0x32,0x02,0x24,0x12,0x00,0xff,0x00,0x84,0x30,0x4b,0x48,0x00,0x0c,
+0x02,0x2a,0x05,0x00,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x62,0xa0,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xfd,0x04,0xe2,0x10,0x2b,0x10,0x47,0x00,0x5a,0x01,0x40,0x14,
+0x1a,0x00,0x82,0x34,0x18,0x00,0x82,0x34,0x8e,0xfb,0xe2,0x14,0x00,0xf0,0x02,0x3c,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x38,0x15,0x82,0x26,0x83,0x0b,0x44,0x90,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,
+0x00,0x00,0x64,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xae,0x04,0xe2,0x10,0x11,0x00,0x82,0x34,0x79,0xfb,0xe2,0x14,
+0x00,0xf0,0x02,0x3c,0x02,0x1c,0x12,0x00,0x1f,0x00,0x67,0x30,0xc0,0x10,0x07,0x00,
+0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,0x25,0xb0,0x04,0x3c,0x21,0x10,0x47,0x00,
+0x02,0x80,0x03,0x3c,0xc8,0x02,0x85,0x34,0x38,0x15,0x63,0x24,0xc4,0x02,0x84,0x34,
+0x80,0x10,0x02,0x00,0x00,0x00,0x93,0x8c,0x21,0x48,0x43,0x00,0x00,0x00,0xa8,0x8c,
+0x21,0x58,0x80,0x00,0x21,0x28,0x00,0x00,0xff,0x00,0x0a,0x24,0x29,0xb0,0x06,0x3c,
+0x21,0x20,0xa3,0x00,0xf0,0x04,0x82,0x90,0x00,0x00,0x00,0x00,0x39,0x07,0x4a,0x10,
+0x00,0x00,0x00,0x00,0x37,0x07,0x47,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xa5,0x24,
+0x08,0x00,0xa2,0x28,0xf6,0xff,0x40,0x14,0x08,0x00,0xc6,0x24,0x08,0x00,0x02,0x24,
+0x73,0xfb,0xa2,0x14,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0xff,0xff,0x03,0x24,
+0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xd0,0x04,0xe2,0x10,0x17,0x00,0x82,0x34,
+0x4c,0xfb,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x25,0xb0,0x04,0x3c,0x68,0x03,0x85,0x34,
+0x00,0x00,0xa3,0x8c,0x00,0xff,0x42,0x32,0x00,0x12,0x02,0x00,0xff,0xff,0x73,0x30,
+0x25,0x10,0x53,0x00,0x00,0x00,0xa2,0xac,0x64,0x03,0x84,0x34,0x00,0x00,0x82,0x90,
+0x00,0x00,0x00,0x00,0xff,0x00,0x53,0x30,0x25,0xb0,0x02,0x3c,0x40,0x00,0x63,0x36,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x83,0xa0,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xb2,0x04,0xe2,0x10,0x2b,0x10,0x47,0x00,0x61,0x04,0x40,0x14,
+0x00,0x00,0x00,0x00,0x2e,0x19,0x00,0x0c,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x49,0x04,0xe4,0x10,0x01,0x00,0x82,0x34,0x2a,0xfb,0xe2,0x14,0x00,0xf0,0x02,0x3c,
+0x25,0xb0,0x02,0x3c,0xff,0x00,0x03,0x3c,0xc4,0x02,0x44,0x34,0x00,0xff,0x63,0x34,
+0x00,0x00,0x93,0x8c,0x24,0x18,0x43,0x02,0x02,0x92,0x03,0x00,0x21,0x10,0x42,0x02,
+0x00,0x00,0x53,0xac,0x00,0x00,0x53,0x8c,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x93,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x01,0x04,0xe2,0x10,0x2b,0x10,0x47,0x00,0x13,0x01,0x40,0x14,0xff,0xff,0x02,0x34,
+0x25,0xb0,0x02,0x3c,0xff,0x00,0x03,0x3c,0xc4,0x02,0x42,0x34,0x00,0xff,0x63,0x34,
+0x00,0x00,0x45,0x8c,0x24,0x18,0x43,0x02,0x02,0xf2,0x03,0x00,0xd5,0x49,0x00,0x0c,
+0x21,0x20,0xc0,0x03,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x47,0x05,0xe2,0x10,0x02,0x00,0x62,0x34,
+0x04,0xfb,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x38,0x15,0x82,0x26,0x68,0x24,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0xce,0x04,0xe2,0x10,0x2b,0x10,0x47,0x00,0xa8,0x00,0x40,0x14,0x31,0x00,0xa2,0x34,
+0x22,0x00,0xa2,0x34,0xf3,0xfa,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x02,0x80,0x02,0x3c,
+0x9c,0x3e,0x43,0x8c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x43,0xac,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xec,0x04,0xe2,0x10,0x10,0x00,0xa2,0x34,0xe5,0xfa,0xe2,0x14,
+0x00,0xf0,0x02,0x3c,0x21,0x98,0x00,0x00,0xaf,0x11,0x00,0x08,0x27,0xb0,0x04,0x3c,
+0x00,0x01,0x62,0x2e,0x0c,0x00,0x40,0x10,0x08,0x00,0x84,0x24,0x00,0x00,0x83,0x94,
+0x00,0x00,0x00,0x00,0xff,0xff,0x7e,0x30,0xff,0x00,0xc2,0x33,0xf0,0x00,0x42,0x28,
+0xf7,0xff,0x40,0x14,0x01,0x00,0x73,0x26,0xff,0xff,0x73,0x26,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x42,0x34,0x00,0x00,0x5e,0xa4,0xff,0x00,0x62,0x2e,0xec,0xfa,0x40,0x14,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x12,0x87,0x03,0x3c,0x00,0x00,0x43,0xac,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xe0,0x04,0xe2,0x10,0x01,0x00,0x42,0x34,0xc5,0xfa,0xe2,0x14,
+0x00,0xf0,0x02,0x3c,0x00,0xff,0x42,0x32,0x02,0xf2,0x02,0x00,0x0c,0x05,0xc0,0x13,
+0x25,0xb0,0x05,0x3c,0x94,0x00,0xa2,0x34,0x00,0x00,0x43,0x94,0xb0,0x03,0xa6,0x34,
+0xff,0xff,0xca,0x27,0xff,0xff,0x73,0x30,0x1b,0x00,0x7e,0x02,0x02,0x00,0xc0,0x17,
+0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x00,0x00,0xd3,0xac,0x38,0x15,0x88,0x26,
+0x01,0x00,0x02,0x24,0xef,0x0a,0x02,0xa1,0x80,0xff,0x02,0x24,0x4f,0x00,0xab,0x34,
+0x9e,0x00,0xac,0x34,0xf2,0x0a,0x09,0x95,0x44,0x00,0xa7,0x34,0xd8,0x00,0xa5,0x34,
+0x12,0x98,0x00,0x00,0x80,0x22,0x13,0x00,0x00,0xf8,0x84,0x24,0x18,0x00,0xd3,0x03,
+0xff,0xff,0x5e,0x31,0x00,0x19,0x1e,0x00,0x25,0x18,0x62,0x00,0x26,0xb0,0x02,0x3c,
+0x00,0x00,0xde,0xac,0x7c,0x00,0x42,0x34,0x00,0x00,0x63,0xa1,0x00,0x00,0xd3,0xac,
+0x00,0x00,0x93,0xa5,0x42,0x99,0x04,0x00,0x00,0x00,0xd3,0xac,0x00,0x00,0x53,0xa4,
+0x00,0x00,0xe3,0x94,0xff,0xfd,0x02,0x24,0x24,0x18,0x62,0x00,0x00,0x00,0xe3,0xa4,
+0x00,0x00,0xe4,0x94,0x12,0x68,0x00,0x00,0x23,0x48,0x2d,0x01,0x00,0x02,0x84,0x34,
+0xf4,0x0a,0x09,0xa5,0x00,0x00,0xe4,0xa4,0x00,0x00,0xa2,0x90,0x00,0x00,0x00,0x00,
+0x40,0x00,0x42,0x34,0x00,0x00,0xa2,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x86,0x04,0xe2,0x10,
+0x0e,0x00,0xa2,0x34,0x87,0xfa,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x38,0x15,0x82,0x26,
+0x52,0x24,0x40,0xa4,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x5e,0x04,0xe2,0x10,0x2a,0x00,0x82,0x34,
+0x7c,0xfa,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x25,0xb0,0x02,0x3c,0x65,0x03,0x42,0x34,
+0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x73,0x30,0x02,0x00,0x64,0x36,
+0x00,0x00,0x44,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x1d,0x04,0xe2,0x10,0x23,0x00,0x82,0x34,
+0x6c,0xfa,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x38,0x15,0x85,0x26,0xd8,0x02,0xa3,0x8c,
+0x0f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x10,0x00,0x04,0x3c,
+0x25,0xb0,0x02,0x3c,0x25,0x18,0x64,0x00,0xc0,0x02,0x42,0x34,0xd8,0x02,0xa3,0xac,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x18,0x04,0xe2,0x10,
+0x2b,0x10,0x47,0x00,0x4a,0x00,0x40,0x14,0x07,0x00,0x62,0x34,0x59,0xfa,0xe2,0x14,
+0x00,0xf0,0x02,0x3c,0x38,0x15,0x82,0x26,0x54,0x24,0x44,0x90,0x25,0xb0,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x4d,0xfa,0xe2,0x14,
+0x00,0xf0,0x02,0x3c,0x38,0x15,0x82,0x26,0x54,0x25,0x44,0x8c,0x25,0xb0,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x5c,0xfa,0xa2,0x14,
+0x25,0xb0,0x02,0x3c,0x80,0x10,0x04,0x00,0x38,0x15,0x83,0x26,0x21,0x10,0x43,0x00,
+0x6c,0x05,0x47,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x36,0xfa,0xe2,0x14,0x00,0xf0,0x02,0x3c,
+0xff,0x00,0x02,0x3c,0x00,0xff,0x42,0x34,0x24,0x10,0x42,0x02,0x02,0xf2,0x02,0x00,
+0x01,0x00,0x03,0x24,0x12,0x05,0xc3,0x13,0x02,0x00,0xc2,0x2b,0x05,0x05,0x40,0x14,
+0x03,0x00,0x02,0x24,0xfa,0x04,0xc2,0x13,0x38,0x15,0x82,0x26,0x7c,0x0b,0x44,0x94,
+0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0xc4,0x03,0xe2,0x10,0x02,0x00,0x82,0x34,0x1e,0xfa,0xe2,0x14,0x00,0xf0,0x02,0x3c,
+0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,
+0xff,0x00,0x73,0x30,0x05,0x00,0x64,0x36,0x00,0x00,0x44,0xa0,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x10,0xfa,0xe9,0x14,0x00,0xf0,0x02,0x3c,0x38,0x15,0x85,0x26,0x04,0x24,0xa2,0x8c,
+0xfd,0xff,0x03,0x24,0xfe,0xff,0x04,0x24,0x24,0x10,0x43,0x00,0x24,0x10,0x44,0x00,
+0x04,0x24,0xa2,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x83,0x26,0xec,0x25,0x62,0xac,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x38,0x15,0x83,0x26,
+0x21,0x10,0x43,0x00,0x21,0x10,0x4a,0x00,0x38,0x03,0x49,0xa0,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x24,0x10,0x43,0x02,0x02,0x3c,0x02,0x00,0xc0,0x18,0x07,0x00,0x21,0x18,0x67,0x00,
+0x80,0x18,0x03,0x00,0x00,0xff,0x42,0x32,0x21,0x18,0x67,0x00,0x02,0x99,0x02,0x00,
+0x80,0x18,0x03,0x00,0x25,0xb0,0x02,0x3c,0x21,0x18,0x65,0x00,0xc0,0x02,0x42,0x34,
+0x80,0x11,0x73,0xac,0x84,0x11,0x73,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xdb,0x02,0xe3,0x90,0x50,0x0c,0x02,0x35,0x21,0x28,0x00,0x00,
+0x00,0x00,0x43,0xa0,0x01,0x00,0xa2,0x24,0xff,0x00,0x45,0x30,0x06,0x00,0xa3,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0xa2,0x24,0x38,0x15,0x82,0x26,0xdb,0x02,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x58,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x85,0x26,0xe8,0x02,0xa3,0x8c,0x00,0x40,0x04,0x3c,
+0xff,0x7f,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0xcc,0x0c,0x00,0x08,0xe8,0x02,0xa3,0xac,0x27,0x0d,0x00,0x08,0x01,0x00,0x04,0x24,
+0xfd,0x0c,0x00,0x08,0x01,0x00,0x04,0x24,0xfd,0x0c,0x00,0x08,0x02,0x00,0x04,0x24,
+0x27,0x0d,0x00,0x08,0x02,0x00,0x04,0x24,0x2a,0x4a,0x00,0x0c,0x10,0x00,0xeb,0xad,
+0x38,0x15,0x83,0x26,0x0c,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0xbd,0xfa,0x41,0x04,
+0x00,0x00,0x00,0x00,0x10,0x4e,0x00,0x0c,0x10,0x00,0xa4,0x27,0xa9,0x0d,0x00,0x08,
+0x38,0x15,0x82,0x26,0x24,0x20,0x43,0x02,0x0f,0x4a,0x00,0x0c,0x02,0x24,0x04,0x00,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xc1,0x19,0x00,0x0c,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0xd8,0x02,0xa3,0x8c,0x0f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0x12,0x01,0x02,0x3c,0x13,0x13,0x42,0x34,0x0c,0x09,0x04,0x35,0xd8,0x02,0xa3,0xac,
+0x00,0x00,0x82,0xac,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x04,0x24,0xa2,0x8c,0xfd,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0x01,0x00,0x42,0x34,
+0x04,0x24,0xa2,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x43,0x47,0x00,0x0c,0x21,0x20,0x00,0x00,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x56,0x01,0x02,0x35,0xff,0x00,0x03,0x24,0x00,0x00,0x43,0xa4,
+0x01,0x00,0x04,0x24,0x02,0x80,0x02,0x3c,0xc0,0x3d,0x44,0xa0,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x64,0x03,0x02,0x35,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x73,0x30,
+0x10,0x00,0x64,0x36,0x00,0x00,0x44,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0xff,0x48,0x32,
+0x02,0x22,0x08,0x00,0x21,0x98,0x00,0x00,0x2f,0x13,0x00,0x08,0x27,0xb0,0x07,0x3c,
+0x00,0x01,0x62,0x2e,0x0b,0x00,0x40,0x10,0x08,0x00,0xe7,0x24,0x00,0x00,0xe2,0x94,
+0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x30,0xff,0x00,0xc3,0x33,0xf8,0xff,0x64,0x14,
+0x01,0x00,0x73,0x26,0xff,0xff,0x73,0x26,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0x00,0x53,0xa4,0xff,0x00,0x62,0x2e,0x6d,0xf9,0x40,0x14,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x42,0x34,0x12,0x87,0x03,0x3c,0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x24,0x10,0x43,0x02,0x02,0xf4,0x02,0x00,0x00,0xff,0x43,0x32,0x04,0x00,0xc0,0x13,
+0x02,0x92,0x03,0x00,0x01,0x00,0x02,0x24,0x02,0x00,0xc2,0x13,0x01,0x00,0x04,0x24,
+0x21,0x20,0x00,0x00,0x2a,0x42,0x00,0x0c,0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,
+0x95,0x44,0x00,0x0c,0x21,0x20,0x40,0x02,0xff,0xff,0x10,0x36,0x24,0x98,0x50,0x00,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x53,0xac,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x08,0x00,0xa3,0x8c,0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x08,0x00,0xa3,0xac,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x64,0x24,0xa3,0x90,0xc4,0x02,0x02,0x35,
+0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0xff,0x48,0x32,0x02,0x1a,0x08,0x00,
+0xff,0x00,0x02,0x24,0x2d,0x02,0x62,0x10,0x25,0xb0,0x05,0x3c,0x0e,0x00,0x60,0x14,
+0x00,0xcc,0x02,0x34,0x25,0xb0,0x04,0x3c,0x64,0x03,0x84,0x34,0x38,0x15,0x87,0x26,
+0x00,0x00,0x85,0x94,0xe8,0x02,0xe6,0x8c,0xff,0xef,0x02,0x3c,0xff,0xfe,0x03,0x24,
+0xff,0xff,0x42,0x34,0x24,0x28,0xa3,0x00,0x24,0x30,0xc2,0x00,0x00,0x00,0x85,0xa4,
+0xe8,0x02,0xe6,0xac,0x00,0xcc,0x02,0x34,0x25,0xf9,0x02,0x15,0x25,0xb0,0x02,0x3c,
+0x38,0x15,0x82,0x26,0xe8,0x02,0x43,0x8c,0x00,0x10,0x04,0x3c,0x25,0x18,0x64,0x00,
+0xe8,0x02,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x99,0x48,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x21,0x10,0x82,0x00,0x5a,0x04,0x49,0xa0,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x00,0xff,0x62,0x34,0x24,0x10,0x42,0x02,0x02,0xf2,0x02,0x00,
+0x38,0x15,0x83,0x26,0x83,0x0b,0x7e,0xa0,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x24,0x12,0x00,0xff,0x1b,0x00,0x0c,
+0xff,0x00,0x84,0x30,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34,
+0x00,0x00,0x44,0x90,0x38,0x15,0x85,0x26,0x08,0x03,0xa6,0x90,0xff,0x00,0x93,0x30,
+0x02,0x00,0x63,0x36,0x08,0x03,0xa6,0xac,0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x02,0x80,0x06,0x3c,0x98,0x3e,0xc3,0x8c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x58,0x24,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x38,0x15,0x84,0x26,0x08,0x00,0x83,0x8c,0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x00,0x20,0x02,0x3c,0x25,0x18,0x62,0x00,0x02,0x34,0x12,0x00,
+0x00,0x1f,0x45,0x32,0x25,0xb0,0x02,0x3c,0x02,0x9a,0x05,0x00,0x3f,0x00,0xc8,0x30,
+0xc0,0x02,0x42,0x34,0xc1,0x02,0x88,0xa0,0x08,0x00,0x83,0xac,0xbc,0x02,0x93,0xa0,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x25,0xb0,0x05,0x3c,
+0xc4,0x02,0xa3,0x34,0x00,0x00,0x64,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x24,0x90,0x82,0x00,0x01,0x00,0x03,0x3c,0x2b,0x18,0x72,0x00,0xb4,0xf8,0x60,0x10,
+0x25,0xb0,0x02,0x3c,0x00,0xb0,0x02,0x3c,0x25,0x90,0x42,0x02,0x00,0x00,0x53,0x8e,
+0xc8,0x02,0xa2,0x34,0x00,0x00,0x53,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,
+0x70,0x24,0x44,0x90,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x50,0x24,0x44,0x94,0x25,0xb0,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xa4,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x80,0x10,0x04,0x00,
+0x38,0x15,0x83,0x26,0x21,0x10,0x43,0x00,0xf8,0x04,0x47,0xac,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x03,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x84,0x26,
+0x10,0x0b,0x83,0x8c,0xff,0xfb,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x10,0x0b,0x83,0xac,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x11,0x4a,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x02,0x22,0x02,0x00,0x01,0x00,0x03,0x24,0x26,0x04,0x83,0x10,
+0x02,0x00,0x02,0x24,0x1d,0x04,0x82,0x10,0x03,0x00,0x02,0x24,0x3e,0x03,0x82,0x10,
+0x00,0x00,0x00,0x00,0xc9,0x48,0x00,0x0c,0x21,0x20,0x00,0x00,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0xcc,0x50,0x00,0x0c,0x21,0x20,0x40,0x02,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0xff,0x43,0x32,
+0x00,0xff,0x02,0x34,0x33,0x03,0x62,0x10,0x38,0x15,0x82,0x26,0xec,0x25,0x40,0xac,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x60,0x24,0x44,0x90,0x25,0xb0,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x28,0xb0,0x02,0x3c,
+0x00,0x00,0x43,0x90,0xff,0x00,0x02,0x24,0xff,0x00,0x72,0x30,0x43,0xf8,0x42,0x12,
+0x28,0xb0,0x05,0x3c,0xff,0x00,0x04,0x24,0xc0,0x10,0x12,0x00,0x21,0x10,0x45,0x00,
+0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x72,0x30,0xfb,0xff,0x44,0x16,
+0xc0,0x10,0x12,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xfa,0x18,0x00,0x0c,0xfd,0x00,0x04,0x24,
+0x25,0xb0,0x04,0x3c,0x00,0x1c,0x02,0x3c,0xa0,0x00,0x85,0x34,0x00,0x1c,0x42,0x34,
+0x00,0x00,0xa2,0xac,0x00,0xe0,0x02,0x3c,0xa8,0x00,0x86,0x34,0x00,0xbe,0x42,0x34,
+0xa4,0x00,0x84,0x34,0x00,0x04,0x03,0x24,0x00,0x00,0x83,0xac,0x00,0x00,0xc2,0xac,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x02,0x14,0x12,0x00,0x00,0xff,0x43,0x32,0xff,0x00,0x5e,0x30,
+0x04,0x00,0xc0,0x13,0x02,0x92,0x03,0x00,0x01,0x00,0x02,0x24,0x02,0x00,0xc2,0x13,
+0x01,0x00,0x04,0x24,0x21,0x20,0x00,0x00,0x25,0xb0,0x10,0x3c,0x2a,0x42,0x00,0x0c,
+0xc4,0x02,0x10,0x36,0x00,0x00,0x13,0x8e,0x0f,0x00,0x11,0x3c,0x21,0x20,0x40,0x02,
+0x21,0x30,0x60,0x02,0x6a,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x21,0x20,0x40,0x02,
+0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x00,0x00,0x02,0xae,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x38,0x15,0x85,0x26,0xc8,0x02,0xa4,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x02,0x1f,0x04,0x00,0x01,0x00,0x63,0x24,0x24,0x20,0x82,0x00,0x00,0x1f,0x03,0x00,
+0x25,0x20,0x83,0x00,0xc8,0x02,0xa4,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x2a,0x4a,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,
+0xff,0x00,0x73,0x30,0x20,0x00,0x64,0x36,0x00,0x00,0x44,0xa0,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x03,0x3c,0xc0,0x02,0x62,0x34,0x00,0x00,0x40,0xac,0x94,0x0e,0x64,0x34,
+0x9c,0x0e,0x62,0x34,0xa4,0x0e,0x65,0x34,0xac,0x0e,0x66,0x34,0x00,0x00,0x89,0x8c,
+0x38,0x15,0x8f,0x26,0x00,0x00,0x4b,0x8c,0x00,0x00,0xac,0x8c,0x00,0x00,0xc4,0x8c,
+0xb4,0x0e,0x62,0x34,0x0c,0x00,0xe5,0x8d,0x10,0x00,0xe6,0x8d,0x00,0x00,0x4a,0x8c,
+0xff,0x03,0x07,0x3c,0x00,0xfc,0x08,0x24,0xbc,0x0e,0x62,0x34,0x24,0x48,0x27,0x01,
+0x24,0x20,0x87,0x00,0x00,0x00,0x4d,0x8c,0x24,0x30,0xc8,0x00,0x02,0x4c,0x09,0x00,
+0x24,0x28,0xa8,0x00,0x02,0x24,0x04,0x00,0xcc,0x0e,0x68,0x34,0xf0,0xff,0x02,0x3c,
+0xc4,0x0e,0x63,0x34,0xff,0x03,0x42,0x34,0x25,0x28,0xa9,0x00,0x25,0x30,0xc4,0x00,
+0x00,0x00,0x69,0x8c,0x08,0x00,0xe4,0x8d,0x00,0x00,0x0e,0x8d,0x24,0x58,0x67,0x01,
+0x24,0x50,0x47,0x01,0x24,0x30,0xc2,0x00,0x24,0x28,0xa2,0x00,0x82,0x59,0x0b,0x00,
+0x82,0x51,0x0a,0x00,0x0f,0xc0,0x03,0x3c,0xff,0x9f,0x02,0x3c,0xff,0xff,0x63,0x34,
+0xff,0xff,0x42,0x34,0x25,0x28,0xab,0x00,0x25,0x30,0xca,0x00,0x24,0x60,0x87,0x01,
+0x24,0x68,0xa7,0x01,0xff,0x00,0x08,0x3c,0x24,0x20,0x82,0x00,0x24,0x30,0xc3,0x00,
+0x24,0x28,0xa3,0x00,0x24,0x70,0xc7,0x01,0x00,0x61,0x0c,0x00,0x00,0x69,0x0d,0x00,
+0x24,0x48,0x27,0x01,0x00,0xff,0x03,0x35,0x00,0x20,0x02,0x3c,0x25,0x20,0x82,0x00,
+0x25,0x28,0xac,0x00,0x25,0x30,0xcd,0x00,0x02,0x4c,0x09,0x00,0x02,0x74,0x0e,0x00,
+0x24,0x18,0x43,0x02,0x08,0x00,0xe4,0xad,0x0c,0x00,0xe5,0xad,0x10,0x00,0xe6,0xad,
+0x14,0x00,0xe9,0xa5,0x43,0x00,0x60,0x10,0x16,0x00,0xee,0xa5,0x24,0x10,0x48,0x02,
+0x02,0x14,0x02,0x00,0x02,0x1a,0x12,0x00,0xc7,0x02,0xe2,0xa1,0xc3,0x02,0xe3,0xa1,
+0x38,0x15,0x82,0x26,0xc3,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c,0x61,0x0c,0x63,0x34,
+0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x10,0x4e,0x00,0x0c,
+0x10,0x00,0xa4,0x27,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,
+0x60,0x00,0x06,0x24,0x6a,0x44,0x00,0x0c,0x24,0x00,0x04,0x24,0xab,0x18,0x00,0x0c,
+0xe8,0x03,0x04,0x24,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x24,0x00,0x04,0x24,0x95,0x44,0x00,0x0c,0xff,0xff,0x05,0x36,
+0x1f,0x00,0x53,0x30,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0x00,0x53,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x02,0x1a,0x12,0x00,
+0x02,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xa7,0x09,0x00,0x0c,0x21,0x20,0xc0,0x03,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x12,0x00,0x02,0x24,0xc7,0x02,0xe2,0xa1,0x10,0x15,0x00,0x08,
+0xc3,0x02,0xe2,0xa1,0x38,0x15,0x83,0x26,0x82,0x0b,0x62,0x90,0x00,0x00,0x00,0x00,
+0x53,0xf7,0x40,0x14,0x25,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xff,0x00,0x02,0x3c,0x00,0xff,0x42,0x34,
+0x24,0x10,0x42,0x02,0x02,0xf2,0x02,0x00,0x01,0x00,0x02,0x24,0x21,0x20,0xc0,0x03,
+0x82,0x0b,0x62,0xa0,0xe0,0x24,0x00,0x0c,0x83,0x0b,0x7e,0xa0,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,
+0x04,0x24,0x43,0x8c,0xfe,0xff,0x04,0x24,0x02,0x00,0x63,0x34,0x24,0x18,0x64,0x00,
+0x04,0x24,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0xec,0x25,0x40,0xac,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x02,0x1c,0x12,0x00,0x1f,0x00,0x67,0x30,0xc0,0x10,0x07,0x00,
+0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,
+0x38,0x15,0x84,0x26,0x21,0x30,0x44,0x00,0x90,0x11,0xc3,0x90,0x0f,0x00,0x02,0x24,
+0x02,0x29,0x03,0x00,0x05,0x00,0xa2,0x10,0x21,0x18,0xa4,0x00,0xf0,0x04,0x62,0x90,
+0x00,0x00,0x00,0x00,0x02,0x02,0x47,0x10,0xff,0xff,0x02,0x24,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x42,0x34,0xff,0xff,0x03,0x24,0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0xe9,0x51,0x00,0x0c,0x21,0x20,0x40,0x02,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x64,0x03,0xa5,0x34,
+0x38,0x15,0x86,0x26,0x00,0x00,0xa3,0x94,0xe8,0x02,0xc4,0x8c,0xff,0xef,0x02,0x3c,
+0xff,0xff,0x42,0x34,0x24,0x20,0x82,0x00,0x00,0x01,0x63,0x34,0x00,0x00,0xa3,0xa4,
+0x81,0x13,0x00,0x08,0xe8,0x02,0xc4,0xac,0xff,0x00,0x02,0x3c,0x00,0xff,0x42,0x34,
+0x24,0x10,0x42,0x02,0x25,0xb0,0x03,0x3c,0x02,0x92,0x02,0x00,0x21,0x10,0x43,0x02,
+0x00,0x00,0x53,0x8c,0xc4,0x02,0x63,0x34,0x00,0x00,0x73,0xac,0x00,0x00,0x53,0x8c,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xf4,0x19,0x00,0x0c,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x29,0xb0,0x02,0x3c,0x00,0x00,0x40,0xac,0x04,0x00,0x44,0x34,0x08,0x00,0x45,0x34,
+0x0c,0x00,0x46,0x34,0x3c,0x00,0x43,0x34,0x10,0x00,0x47,0x34,0x14,0x00,0x48,0x34,
+0x18,0x00,0x49,0x34,0x1c,0x00,0x4a,0x34,0x20,0x00,0x4b,0x34,0x24,0x00,0x4c,0x34,
+0x28,0x00,0x4d,0x34,0x2c,0x00,0x4e,0x34,0x30,0x00,0x4f,0x34,0x34,0x00,0x50,0x34,
+0x38,0x00,0x51,0x34,0x02,0x80,0x02,0x3c,0x00,0x00,0x80,0xac,0x00,0x00,0xa0,0xac,
+0x38,0x15,0x44,0x24,0x00,0x00,0xc0,0xac,0x21,0x28,0x00,0x00,0x00,0x00,0xe0,0xac,
+0xff,0xff,0x06,0x24,0x00,0x00,0x00,0xad,0x00,0x00,0x20,0xad,0x00,0x00,0x40,0xad,
+0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad,0x00,0x00,0xa0,0xad,0x00,0x00,0xc0,0xad,
+0x00,0x00,0xe0,0xad,0x00,0x00,0x00,0xae,0x00,0x00,0x20,0xae,0x00,0x00,0x60,0xac,
+0x21,0x18,0xa4,0x00,0x01,0x00,0xa5,0x24,0x08,0x00,0xa2,0x28,0xfc,0xff,0x40,0x14,
+0xf0,0x04,0x66,0xa0,0x02,0x80,0x02,0x3c,0x38,0x15,0x43,0x24,0x1f,0x00,0x05,0x24,
+0x90,0x11,0x62,0x8c,0xff,0xff,0xa5,0x24,0xf0,0x00,0x42,0x34,0x90,0x11,0x62,0xac,
+0xfb,0xff,0xa1,0x04,0x94,0x00,0x63,0x24,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x38,0x15,0x82,0x26,
+0x82,0x0b,0x44,0x90,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x68,0x19,0x00,0x0c,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x14,0x12,0x00,
+0x1f,0x00,0x47,0x30,0xc0,0x18,0x07,0x00,0x21,0x18,0x67,0x00,0x00,0x0f,0x44,0x32,
+0x80,0x18,0x03,0x00,0x02,0x4a,0x04,0x00,0x25,0xb0,0x02,0x3c,0x38,0x15,0x84,0x26,
+0x21,0x18,0x67,0x00,0xc8,0x02,0x46,0x34,0x21,0x28,0x24,0x01,0xc4,0x02,0x42,0x34,
+0x80,0x18,0x03,0x00,0x00,0x00,0x53,0x8c,0x21,0x18,0x64,0x00,0x00,0x00,0xc8,0x8c,
+0xf0,0x04,0xa7,0xa0,0x90,0x11,0x64,0x8c,0x0f,0xff,0x02,0x24,0xc0,0x28,0x09,0x00,
+0x24,0x20,0x82,0x00,0x29,0xb0,0x02,0x3c,0x21,0x28,0xa2,0x00,0x00,0x31,0x09,0x00,
+0x25,0xb0,0x02,0x3c,0x25,0x20,0x86,0x00,0xc0,0x02,0x42,0x34,0x90,0x11,0x64,0xac,
+0x00,0x00,0xb3,0xac,0x04,0x00,0xa8,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c,0x64,0x03,0x63,0x34,0x00,0x00,0x62,0x90,
+0x00,0x00,0x00,0x00,0xfa,0x00,0x42,0x30,0x00,0x00,0x62,0xa0,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x02,0x14,0x12,0x00,0x00,0x1f,0x43,0x32,0x3f,0x00,0x48,0x30,0x25,0xb0,0x02,0x3c,
+0x02,0x9a,0x03,0x00,0xc0,0x02,0x42,0x34,0x38,0x15,0x83,0x26,0xc1,0x02,0x68,0xa0,
+0xbc,0x02,0x73,0xa0,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0xff,0x00,0x02,0x3c,0x00,0xff,0x42,0x34,0x24,0x10,0x42,0x02,0x02,0xf2,0x02,0x00,
+0x07,0x00,0x03,0x24,0xc0,0x00,0xc3,0x13,0x08,0x00,0xc2,0x2b,0xb2,0x00,0x40,0x10,
+0x20,0x00,0x02,0x24,0x56,0xf6,0xc0,0x17,0x25,0xb0,0x02,0x3c,0x02,0x80,0x04,0x3c,
+0x90,0x3d,0x83,0x94,0xc4,0x02,0x42,0x34,0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x43,0x47,0x00,0x0c,0x01,0x00,0x04,0x24,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,
+0x59,0x25,0x44,0x90,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x02,0x1c,0x12,0x00,0x00,0x1f,0x42,0x32,0x38,0x15,0x90,0x26,
+0x02,0x9a,0x02,0x00,0x3f,0x00,0x68,0x30,0xc1,0x02,0x08,0xa2,0xbc,0x02,0x13,0xa2,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x65,0x21,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x98,0x40,0x00,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x42,0x34,0x00,0x00,0x53,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x03,0x00,0x02,0x92,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,
+0x03,0x00,0x02,0xa2,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x24,0x38,0x15,0x83,0x26,
+0x52,0x24,0x62,0xa4,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x25,0xb0,0x05,0x3c,0xc4,0x02,0xa3,0x34,
+0x00,0x00,0x64,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x90,0x82,0x00,
+0x01,0x00,0x03,0x3c,0x2b,0x18,0x72,0x00,0x0d,0xf6,0x60,0x10,0x25,0xb0,0x02,0x3c,
+0xc8,0x02,0xa2,0x34,0x00,0x00,0x53,0x8c,0x00,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x25,0x90,0x43,0x02,0xc0,0x02,0x42,0x34,0x00,0x00,0x53,0xae,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xff,0x00,0x05,0x3c,0x00,0xff,0xa5,0x34,
+0x24,0x28,0x45,0x02,0x25,0xb0,0x04,0x3c,0x02,0x2a,0x05,0x00,0x94,0x00,0x83,0x34,
+0x40,0x11,0x05,0x00,0x26,0xb0,0x06,0x3c,0x00,0x00,0x65,0xa4,0xc0,0xff,0x53,0x24,
+0x7c,0x00,0xcc,0x34,0x04,0x00,0x07,0x24,0x9a,0x00,0x88,0x34,0x98,0x00,0x89,0x34,
+0x96,0x00,0x8a,0x34,0x7a,0x00,0xc6,0x34,0xb0,0x03,0x8b,0x34,0x00,0x04,0x02,0x24,
+0xa0,0x00,0x03,0x24,0x00,0x00,0x02,0xa5,0x44,0x00,0x84,0x34,0x00,0x00,0x23,0xa5,
+0x00,0x00,0x47,0xa5,0x00,0x00,0xc7,0xa0,0x00,0x00,0x73,0xad,0x00,0x00,0x93,0xa5,
+0x00,0x00,0x83,0x94,0xff,0xfd,0x02,0x24,0x38,0x15,0x86,0x26,0x24,0x18,0x62,0x00,
+0x00,0x00,0x83,0xa4,0x00,0x00,0x82,0x94,0xf2,0x0a,0xc5,0xa4,0x00,0x02,0x42,0x34,
+0x00,0x00,0x82,0xa4,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x6c,0x24,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x4f,0x00,0xa2,0x34,0x9e,0x00,0xa3,0x34,0x00,0x00,0x40,0xa0,0x00,0x00,0x60,0xa4,
+0x94,0x00,0xa2,0x34,0x00,0x00,0x43,0x94,0x9a,0x00,0xa4,0x34,0x98,0x00,0xa6,0x34,
+0xff,0xff,0x73,0x30,0x80,0x12,0x13,0x00,0x00,0xf8,0x42,0x24,0x42,0x99,0x02,0x00,
+0x00,0x14,0x02,0x24,0x00,0x00,0x82,0xa4,0x26,0xb0,0x02,0x3c,0xb0,0x03,0xa7,0x34,
+0xa0,0x80,0x03,0x24,0x7c,0x00,0x42,0x34,0x00,0x00,0xc3,0xa4,0x44,0x00,0xa4,0x34,
+0x00,0x00,0xf3,0xac,0x00,0x00,0x53,0xa4,0x00,0x00,0x83,0x94,0xff,0xfd,0x02,0x24,
+0xd8,0x00,0xa5,0x34,0x24,0x18,0x62,0x00,0x00,0x00,0x83,0xa4,0x00,0x00,0x82,0x94,
+0x38,0x15,0x86,0x26,0x00,0x02,0x42,0x34,0x00,0x00,0x82,0xa4,0x00,0x00,0xa3,0x90,
+0xbf,0xff,0x02,0x24,0xf4,0x0a,0xc0,0xa4,0x24,0x18,0x62,0x00,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0xef,0x0a,0xc0,0xa0,0x00,0x00,0xa3,0xa0,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xa5,0xf5,0xc2,0x17,0x25,0xb0,0x02,0x3c,
+0x02,0x80,0x02,0x3c,0xaa,0x3d,0x43,0x90,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x80,0x06,0x3c,0x97,0x3d,0xc3,0x90,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,
+0x21,0x10,0x47,0x00,0xe8,0x26,0x83,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,
+0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,
+0x21,0x10,0x47,0x00,0x02,0x80,0x06,0x3c,0xe4,0x26,0xc3,0x24,0x80,0x10,0x02,0x00,
+0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,
+0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,0x21,0x10,0x47,0x00,0xe0,0x26,0x83,0x24,
+0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,
+0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x47,0x00,0x02,0x80,0x06,0x3c,
+0xdc,0x26,0xc3,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,
+0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x7e,0x0b,0x44,0x94,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xfd,0xfa,0xc0,0x17,0x38,0x15,0x82,0x26,0x78,0x0b,0x44,0x94,
+0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0x38,0x15,0x82,0x26,0x7a,0x0b,0x44,0x94,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xc9,0x48,0x00,0x0c,0x03,0x00,0x04,0x24,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x34,0x38,0x15,0x83,0x26,0xec,0x25,0x62,0xac,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0x25,0xb0,0x02,0x3c,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0xf0,0x04,0x62,0xa0,0x90,0x11,0xc3,0x8c,0x29,0xb0,0x02,0x3c,0xc0,0x20,0x05,0x00,
+0x21,0x20,0x82,0x00,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0xf0,0x00,0x63,0x34,
+0x90,0x11,0xc3,0xac,0x00,0x00,0x80,0xac,0x04,0x00,0x80,0xac,0x00,0x00,0x45,0xac,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,
+0x02,0x80,0x04,0x3c,0x21,0x10,0x47,0x00,0xd8,0x26,0x83,0x24,0x80,0x10,0x02,0x00,
+0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x47,0x00,0x02,0x80,0x06,0x3c,0xd4,0x26,0xc3,0x24,
+0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,
+0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,0x21,0x10,0x47,0x00,
+0xd0,0x26,0x83,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,
+0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,
+0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x47,0x00,
+0x02,0x80,0x06,0x3c,0xcc,0x26,0xc3,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,
+0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,
+0x21,0x10,0x47,0x00,0x38,0x15,0x83,0x26,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,
+0xec,0x11,0x44,0x8c,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x63,0x34,
+0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,0x80,0x10,0x02,0x00,
+0x02,0x80,0x04,0x3c,0x21,0x10,0x47,0x00,0xc8,0x26,0x83,0x24,0x80,0x10,0x02,0x00,
+0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x47,0x00,0x38,0x15,0x83,0x26,0x80,0x10,0x02,0x00,
+0x21,0x10,0x43,0x00,0x8c,0x11,0x44,0x8c,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xc0,0x10,0x07,0x00,0x21,0x10,0x47,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x47,0x00,0x38,0x15,0x83,0x26,0x80,0x10,0x02,0x00,
+0x21,0x10,0x43,0x00,0x88,0x11,0x44,0x8c,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x63,0x34,0xc0,0x02,0x42,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x43,0x0e,0x00,0x08,0x01,0x00,0x04,0x24,
+0x43,0x0e,0x00,0x08,0x02,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x00,0x11,0x1e,0x00,0x38,0x15,0x83,0x26,0x21,0x10,0x43,0x00,
+0x2c,0x03,0x44,0x8c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x42,0x26,0x04,0x00,
+0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x11,0x1e,0x00,0x38,0x15,0x83,0x26,
+0x21,0x10,0x43,0x00,0x2f,0x03,0x44,0x90,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,
+0x01,0x00,0x84,0x30,0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,
+0x00,0x19,0x1e,0x00,0x21,0x18,0x62,0x00,0x36,0x03,0x64,0x94,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,
+0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xc9,0x48,0x00,0x0c,
+0x02,0x00,0x04,0x24,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xc9,0x48,0x00,0x0c,0x01,0x00,0x04,0x24,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0xaa,0x0c,0x00,0x08,
+0x00,0x00,0x00,0x00,0xf0,0x04,0x87,0xa0,0x90,0x11,0x22,0x8d,0x0f,0x00,0xa3,0x30,
+0x0f,0xff,0x04,0x24,0x00,0x19,0x03,0x00,0x24,0x10,0x44,0x00,0x25,0x10,0x43,0x00,
+0x90,0x11,0x22,0xad,0x00,0x00,0xd3,0xac,0x04,0x00,0xc8,0xac,0x00,0x00,0x65,0xad,
+0x34,0x11,0x00,0x08,0x08,0x00,0x02,0x24,0x38,0x15,0x82,0x26,0x00,0x19,0x1e,0x00,
+0x21,0x18,0x62,0x00,0x35,0x03,0x64,0x90,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x00,0x19,0x1e,0x00,
+0x21,0x18,0x62,0x00,0x34,0x03,0x64,0x90,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x00,0x19,0x1e,0x00,
+0x21,0x18,0x62,0x00,0x32,0x03,0x64,0x94,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,0x00,0x19,0x1e,0x00,
+0x21,0x18,0x62,0x00,0x30,0x03,0x64,0x94,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0x00,0x44,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,
+0xaa,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x01,0x80,0x03,0x3c,0xd8,0x7d,0x64,0xac,
+0x00,0x60,0x82,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c,
+0xd8,0x7d,0x45,0x8c,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,
+0xac,0x62,0x63,0x24,0x00,0x00,0x43,0xac,0x04,0x00,0x02,0x24,0x1e,0x00,0xa2,0x10,
+0x05,0x00,0xa2,0x2c,0x10,0x00,0x40,0x10,0x05,0x00,0x02,0x24,0x03,0x00,0x02,0x24,
+0x08,0x00,0xa2,0x10,0x00,0x19,0x04,0x00,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,
+0xc0,0x10,0x02,0x00,0x23,0x10,0x44,0x00,0x00,0x11,0x02,0x00,0x21,0x10,0x44,0x00,
+0x40,0x19,0x02,0x00,0xff,0xff,0x63,0x24,0xfe,0xff,0x60,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xf3,0xff,0xa2,0x10,0x06,0x00,0x02,0x24,
+0xf2,0xff,0xa2,0x14,0x80,0x10,0x04,0x00,0x40,0x11,0x04,0x00,0x23,0x10,0x44,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,0x00,0x19,0x02,0x00,0x23,0x18,0x62,0x00,
+0xc1,0x18,0x00,0x08,0x00,0x19,0x03,0x00,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,
+0xc0,0x10,0x02,0x00,0x23,0x10,0x44,0x00,0x00,0x11,0x02,0x00,0x21,0x10,0x44,0x00,
+0xc1,0x18,0x00,0x08,0x00,0x19,0x02,0x00,0x01,0x80,0x02,0x3c,0xd8,0x7d,0x45,0x8c,
+0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,0x68,0x63,0x63,0x24,
+0x00,0x00,0x43,0xac,0x05,0x00,0x02,0x24,0x10,0x00,0xa2,0x10,0x06,0x00,0xa2,0x2c,
+0x09,0x00,0x40,0x14,0x04,0x00,0x02,0x24,0x06,0x00,0x02,0x24,0x0f,0x00,0xa2,0x10,
+0x00,0x11,0x04,0x00,0xff,0xff,0x84,0x24,0xfe,0xff,0x80,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xfa,0xff,0xa2,0x14,0x80,0x10,0x04,0x00,
+0x21,0x10,0x44,0x00,0xe9,0x18,0x00,0x08,0x40,0x20,0x02,0x00,0x80,0x10,0x04,0x00,
+0x21,0x10,0x44,0x00,0xe9,0x18,0x00,0x08,0x80,0x20,0x02,0x00,0x23,0x10,0x44,0x00,
+0xe9,0x18,0x00,0x08,0x40,0x20,0x02,0x00,0xff,0xff,0x85,0x30,0x21,0x30,0x00,0x00,
+0x25,0xb0,0x03,0x3c,0x2a,0xb0,0x04,0x3c,0xb4,0x00,0x63,0x34,0x01,0x00,0xa2,0x24,
+0x31,0x00,0x84,0x34,0x00,0x00,0x65,0xa0,0x00,0x00,0x85,0xa0,0xff,0xff,0x45,0x30,
+0x12,0x00,0xa0,0x10,0x01,0x00,0x03,0x24,0x28,0xb0,0x07,0x3c,0x0f,0x19,0x00,0x08,
+0xff,0xff,0x08,0x24,0x00,0x00,0x83,0xa0,0x01,0x00,0x63,0x24,0xff,0xff,0x63,0x30,
+0x2b,0x10,0xa3,0x00,0x09,0x00,0x40,0x14,0x08,0x00,0xc6,0x24,0xf9,0xff,0x65,0x14,
+0x21,0x20,0xc7,0x00,0x01,0x00,0x63,0x24,0xff,0xff,0x63,0x30,0x2b,0x10,0xa3,0x00,
+0x00,0x00,0x88,0xa0,0xf9,0xff,0x40,0x10,0x08,0x00,0xc6,0x24,0x00,0x01,0xa2,0x2c,
+0x13,0x00,0x40,0x10,0x21,0x18,0xa0,0x00,0xff,0x00,0x08,0x24,0x28,0xb0,0x07,0x3c,
+0x23,0x19,0x00,0x08,0xff,0xff,0x09,0x24,0xff,0xff,0x43,0x30,0x00,0x00,0xa2,0xa0,
+0x00,0x01,0x62,0x2c,0x0a,0x00,0x40,0x10,0x08,0x00,0xc6,0x24,0x01,0x00,0x62,0x24,
+0xf9,0xff,0x68,0x14,0x21,0x28,0xc7,0x00,0x00,0x01,0x02,0x24,0xff,0xff,0x43,0x30,
+0x00,0x01,0x62,0x2c,0x00,0x00,0xa9,0xa0,0xf8,0xff,0x40,0x14,0x08,0x00,0xc6,0x24,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xd0,0xff,0xbd,0x27,0x28,0x00,0xbf,0xaf,
+0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x12,0x40,0x01,0x00,0x41,0x36,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x10,0x3c,0x42,0x00,0x15,0x36,
+0xff,0xff,0x02,0x24,0x00,0x00,0xa2,0xa2,0xd8,0x00,0x05,0x36,0x40,0x00,0x11,0x36,
+0xa8,0x00,0x14,0x36,0xa0,0x00,0x13,0x36,0x00,0x10,0x03,0x24,0xa4,0x00,0x10,0x36,
+0x00,0x80,0x02,0x3c,0x00,0x00,0x23,0xa6,0x00,0x00,0xa0,0xa0,0x00,0x00,0x60,0xae,
+0x00,0x00,0x00,0xae,0x00,0x00,0x82,0xae,0x00,0x00,0xa3,0x90,0x80,0xff,0x02,0x24,
+0xfd,0x00,0x04,0x24,0x25,0x18,0x62,0x00,0xfc,0x17,0x02,0x24,0x00,0x00,0xa3,0xa0,
+0x00,0x00,0x22,0xa6,0xfa,0x18,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,
+0x38,0x15,0x42,0x24,0x74,0x0b,0x45,0x8c,0x6c,0x0b,0x43,0x8c,0x70,0x0b,0x44,0x8c,
+0xfc,0x37,0x02,0x24,0x00,0x00,0x63,0xae,0x00,0x00,0x04,0xae,0x00,0x00,0x85,0xae,
+0x00,0x00,0x22,0xa6,0x00,0x00,0xa0,0xa2,0x00,0x60,0x92,0x40,0x28,0x00,0xbf,0x8f,
+0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,
+0xc8,0xff,0xbd,0x27,0x34,0x00,0xbf,0xaf,0x30,0x00,0xbe,0xaf,0x2c,0x00,0xb7,0xaf,
+0x28,0x00,0xb6,0xaf,0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,
+0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x16,0x40,
+0x01,0x00,0xc1,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x11,0x3c,
+0x40,0x00,0x30,0x36,0xff,0xff,0x02,0x24,0x42,0x00,0x3e,0x36,0xfc,0x77,0x13,0x24,
+0x00,0x00,0xc2,0xa3,0xfc,0x57,0x12,0x24,0x00,0x00,0x13,0xa6,0xda,0x18,0x00,0x0c,
+0x32,0x00,0x04,0x24,0xfc,0x37,0x17,0x24,0x32,0x00,0x04,0x24,0x00,0x00,0x12,0xa6,
+0xda,0x18,0x00,0x0c,0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x24,0x00,0x00,0x17,0xa6,
+0xda,0x18,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0xa6,0xda,0x18,0x00,0x0c,
+0x32,0x00,0x04,0x24,0x32,0x00,0x04,0x24,0x00,0x00,0x12,0xa6,0xda,0x18,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x96,0x24,0xfa,0x03,0x24,0xd8,0x00,0x25,0x36,
+0x24,0x10,0x43,0x00,0x00,0x00,0x02,0xa6,0x00,0x00,0xa3,0x90,0xa0,0x00,0x34,0x36,
+0xa4,0x00,0x35,0x36,0xa8,0x00,0x33,0x36,0x7f,0x00,0x63,0x30,0x00,0x80,0x02,0x3c,
+0x00,0x00,0xa3,0xa0,0x00,0x00,0x80,0xae,0x00,0x00,0xa0,0xae,0x00,0x00,0x62,0xae,
+0x00,0x00,0xa3,0x90,0x80,0xff,0x02,0x24,0xfd,0x00,0x04,0x24,0x25,0x18,0x62,0x00,
+0x00,0x00,0xa3,0xa0,0x00,0x00,0x12,0xa6,0xfa,0x18,0x00,0x0c,0x56,0x01,0x31,0x36,
+0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,0x74,0x0b,0x45,0x8c,0x6c,0x0b,0x43,0x8c,
+0x70,0x0b,0x44,0x8c,0xff,0x0f,0x02,0x24,0x00,0x00,0x83,0xae,0x00,0x00,0xa4,0xae,
+0x00,0x00,0x65,0xae,0x00,0x00,0x17,0xa6,0x00,0x00,0x22,0xa6,0x00,0x00,0xc0,0xa3,
+0x00,0x60,0x96,0x40,0x34,0x00,0xbf,0x8f,0x30,0x00,0xbe,0x8f,0x2c,0x00,0xb7,0x8f,
+0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x38,0x00,0xbd,0x27,0xd0,0xff,0xbd,0x27,0x2c,0x00,0xbf,0xaf,0x28,0x00,0xb6,0xaf,
+0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x10,0x3c,0x40,0x00,0x05,0x36,
+0x00,0x00,0xa2,0x94,0xaf,0xff,0x03,0x24,0xa8,0x00,0x13,0x36,0x24,0x10,0x43,0x00,
+0x00,0x00,0xa2,0xa4,0xa0,0x00,0x12,0x36,0xa4,0x00,0x10,0x36,0x00,0x00,0x55,0x8e,
+0x00,0x00,0x16,0x8e,0x00,0x00,0x71,0x8e,0x00,0x80,0x14,0x3c,0xfc,0x37,0x02,0x24,
+0x00,0x00,0x40,0xae,0xfd,0x00,0x04,0x24,0x00,0x00,0x00,0xae,0x21,0x88,0x34,0x02,
+0x00,0x00,0x74,0xae,0x00,0x00,0xa2,0xa4,0xfa,0x18,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x55,0xae,0x00,0x00,0x16,0xae,0x00,0x00,0x71,0xae,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb6,0x8f,
+0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x25,0xb0,0x04,0x3c,0x40,0x00,0x84,0x34,0x00,0x00,0x82,0x94,0xd8,0xfd,0x03,0x24,
+0x24,0x10,0x43,0x00,0xfc,0x37,0x03,0x24,0x00,0x00,0x82,0xa4,0x00,0x00,0x83,0xa4,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x8c,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xff,0xff,0xc6,0x30,0x10,0x00,0x02,0x24,0x0c,0x00,0xc2,0x10,0x11,0x00,0xc3,0x28,
+0x06,0x00,0x60,0x10,0x20,0x00,0x02,0x24,0x08,0x00,0x02,0x24,0x0d,0x00,0xc2,0x10,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x06,0x00,0xc2,0x10,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xa4,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x25,0xb0,0x02,0x3c,0x0a,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0xff,0xff,0xa5,0x24,
+0x00,0x2c,0x05,0x00,0xfd,0x00,0x63,0x30,0x03,0x2c,0x05,0x00,0xff,0xff,0x87,0x30,
+0x00,0x00,0x43,0xa0,0x1a,0x00,0xa0,0x04,0x00,0x00,0x00,0x00,0x21,0x30,0x40,0x00,
+0x07,0x10,0xa7,0x00,0x01,0x00,0x42,0x30,0xfd,0x00,0x64,0x30,0x00,0x00,0x42,0x38,
+0x02,0x00,0x63,0x34,0x0a,0x18,0x82,0x00,0x00,0x00,0xc3,0xa0,0x04,0x00,0x63,0x34,
+0x00,0x00,0xc3,0xa0,0x09,0x00,0x02,0x24,0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04,
+0xff,0xff,0x42,0x24,0xfb,0x00,0x63,0x30,0x00,0x00,0xc3,0xa0,0x04,0x00,0x02,0x24,
+0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0xff,0xff,0xa2,0x24,
+0x00,0x2c,0x02,0x00,0x03,0x2c,0x05,0x00,0xea,0xff,0xa1,0x04,0x07,0x10,0xa7,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0x0a,0x00,0x42,0x34,
+0x00,0x00,0x43,0x90,0xff,0xff,0x84,0x24,0x00,0x24,0x04,0x00,0x03,0x24,0x04,0x00,
+0xff,0x00,0x65,0x30,0x1d,0x00,0x80,0x04,0x21,0x38,0x00,0x00,0x21,0x30,0x40,0x00,
+0x01,0x00,0x08,0x24,0x04,0x00,0xa5,0x34,0x00,0x00,0xc5,0xa0,0x00,0x00,0xc2,0x90,
+0x00,0x00,0x00,0x00,0xff,0x00,0x45,0x30,0x01,0x00,0xa3,0x30,0x05,0x00,0x60,0x10,
+0x04,0x00,0x02,0x24,0x04,0x10,0x88,0x00,0x25,0x10,0x47,0x00,0xff,0xff,0x47,0x30,
+0x04,0x00,0x02,0x24,0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,
+0xfb,0x00,0xa5,0x30,0x00,0x00,0xc5,0xa0,0x09,0x00,0x02,0x24,0xff,0xff,0x42,0x24,
+0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0xff,0xff,0x82,0x24,0x00,0x24,0x02,0x00,
+0x03,0x24,0x04,0x00,0xe7,0xff,0x81,0x04,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0xe0,0x00,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x25,0xb0,0x10,0x3c,
+0x0a,0x00,0x10,0x36,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x00,0x00,0x02,0x92,
+0xff,0xff,0x91,0x30,0x03,0x00,0x05,0x24,0xc0,0x00,0x42,0x30,0x80,0x00,0x43,0x34,
+0x00,0x00,0x03,0xa2,0x04,0x00,0x63,0x34,0x00,0x00,0x03,0xa2,0xfb,0x00,0x63,0x30,
+0x00,0x00,0x03,0xa2,0x08,0x00,0x63,0x34,0x00,0x00,0x03,0xa2,0x04,0x00,0x63,0x34,
+0x00,0x00,0x03,0xa2,0xfb,0x00,0x63,0x30,0x00,0x00,0x03,0xa2,0x24,0x1a,0x00,0x0c,
+0x06,0x00,0x04,0x24,0x42,0x20,0x11,0x00,0x24,0x1a,0x00,0x0c,0x06,0x00,0x05,0x24,
+0x4a,0x1a,0x00,0x0c,0x10,0x00,0x04,0x24,0x00,0x00,0x03,0x92,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0xc0,0x00,0x63,0x30,0x00,0x00,0x03,0xa2,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,
+0xff,0xff,0xb1,0x30,0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0xaf,
+0x21,0x90,0xc0,0x00,0x0a,0x00,0x20,0x12,0xff,0xff,0x90,0x30,0x71,0x1a,0x00,0x0c,
+0x21,0x20,0x00,0x02,0xfe,0xff,0x23,0x26,0x02,0x00,0x04,0x26,0x00,0x00,0x42,0xa6,
+0xff,0xff,0x71,0x30,0xff,0xff,0x90,0x30,0xf8,0xff,0x20,0x16,0x02,0x00,0x52,0x26,
+0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x25,0xb0,0x03,0x3c,0x0a,0x00,0x68,0x34,
+0x00,0x00,0x02,0x91,0xff,0xff,0xa5,0x30,0xff,0x00,0x84,0x30,0x1f,0x00,0xa0,0x10,
+0xff,0x00,0x47,0x30,0x21,0x48,0x00,0x01,0x0c,0x00,0x6c,0x34,0x0b,0x00,0x6b,0x34,
+0xc0,0xff,0x0a,0x24,0x21,0x68,0x00,0x01,0x25,0x10,0xea,0x00,0xff,0x00,0x47,0x30,
+0x00,0x00,0x64,0xa1,0x00,0x00,0x27,0xa1,0x00,0x00,0x22,0x91,0x00,0x00,0x00,0x00,
+0xff,0x00,0x47,0x30,0xc0,0x00,0xe3,0x30,0x08,0x00,0x60,0x10,0x00,0x00,0x00,0x00,
+0x21,0x40,0xa0,0x01,0x00,0x00,0x02,0x91,0x00,0x00,0x00,0x00,0xff,0x00,0x47,0x30,
+0xc0,0x00,0xe3,0x30,0xfb,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x8d,
+0xfc,0xff,0xa3,0x24,0x04,0x00,0x84,0x24,0xff,0xff,0x65,0x30,0x00,0x00,0xc2,0xac,
+0xff,0x00,0x84,0x30,0xe8,0xff,0xa0,0x14,0x04,0x00,0xc6,0x24,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0xff,0x00,0x84,0x30,0x21,0x68,0xe0,0x00,0xff,0xff,0xa5,0x30,
+0xc0,0x50,0x04,0x00,0x00,0x60,0x0c,0x40,0x01,0x00,0x81,0x35,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x00,0x00,0xc2,0x90,0x01,0x00,0xc3,0x90,0x25,0xb0,0x07,0x3c,
+0x00,0x14,0x02,0x00,0x25,0x28,0xa2,0x00,0x00,0x1e,0x03,0x00,0x01,0x80,0x08,0x3c,
+0x25,0x20,0xa3,0x00,0x40,0x02,0xe9,0x34,0x25,0x18,0x48,0x01,0x44,0x02,0xe7,0x34,
+0x00,0x00,0xe4,0xac,0x00,0x00,0x23,0xad,0x03,0x00,0xc2,0x90,0x02,0x00,0xc4,0x90,
+0x04,0x00,0xc3,0x90,0x05,0x00,0xc5,0x90,0x00,0x12,0x02,0x00,0x25,0x20,0x82,0x00,
+0x00,0x1c,0x03,0x00,0x01,0x00,0x4a,0x25,0x25,0x20,0x83,0x00,0x00,0x2e,0x05,0x00,
+0x25,0x40,0x48,0x01,0x25,0x20,0x85,0x00,0x00,0x00,0xe4,0xac,0x01,0x00,0x4a,0x25,
+0x00,0x00,0x28,0xad,0x01,0x80,0x0b,0x3c,0x21,0x40,0x00,0x00,0x21,0x10,0xa8,0x01,
+0x01,0x00,0x43,0x90,0x00,0x00,0x45,0x90,0x02,0x00,0x44,0x90,0x03,0x00,0x46,0x90,
+0x00,0x1a,0x03,0x00,0x25,0x28,0xa3,0x00,0x00,0x24,0x04,0x00,0x25,0x28,0xa4,0x00,
+0x00,0x36,0x06,0x00,0x04,0x00,0x08,0x25,0x25,0x10,0x4b,0x01,0x25,0x20,0xa6,0x00,
+0x10,0x00,0x03,0x2d,0x00,0x00,0xe4,0xac,0x01,0x00,0x4a,0x25,0x00,0x00,0x22,0xad,
+0xee,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x00,0x60,0x8c,0x40,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0xff,0xff,0x84,0x30,0x42,0xb0,0x08,0x3c,0x80,0x10,0x04,0x00,
+0x21,0x10,0x48,0x00,0x04,0x00,0x46,0xac,0x00,0x00,0x07,0x91,0x40,0x18,0x04,0x00,
+0x03,0x00,0x06,0x24,0xff,0x00,0xe7,0x30,0x04,0x30,0x66,0x00,0x01,0x00,0x02,0x24,
+0x04,0x10,0x62,0x00,0x25,0x30,0xc7,0x00,0xff,0xff,0xa5,0x30,0x25,0x10,0x47,0x00,
+0x02,0x00,0xa0,0x14,0xff,0x00,0xc7,0x30,0xff,0x00,0x47,0x30,0x42,0xb0,0x02,0x3c,
+0x00,0x00,0x47,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x42,0xb0,0x02,0x3c,
+0x03,0x00,0x47,0x34,0x00,0x00,0xe3,0x90,0xff,0x00,0x84,0x30,0x04,0x00,0x84,0x24,
+0xff,0x00,0x65,0x30,0x01,0x00,0x02,0x24,0x04,0x30,0x82,0x00,0x07,0x18,0x85,0x00,
+0x25,0xb0,0x02,0x3c,0xe8,0x03,0x42,0x34,0x01,0x00,0x63,0x30,0x21,0x20,0xc0,0x00,
+0x00,0x00,0x45,0xa0,0x02,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0xa0,
+0x08,0x00,0xe0,0x03,0x24,0x10,0x85,0x00,0x00,0x60,0x03,0x40,0x01,0x00,0x61,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x01,0x80,0x02,0x3c,0xdc,0x7d,0x42,0x24,
+0x04,0x00,0x45,0x8c,0x00,0x00,0x82,0xac,0x04,0x00,0x44,0xac,0x00,0x00,0xa4,0xac,
+0x04,0x00,0x85,0xac,0x00,0x60,0x83,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x14,0x00,0x83,0x90,0x01,0x00,0x02,0x24,0x08,0x00,0x86,0xac,0x18,0x00,0x85,0xac,
+0x00,0x00,0x84,0xac,0x03,0x00,0x62,0x10,0x04,0x00,0x84,0xac,0x3a,0x1b,0x00,0x08,
+0x0c,0x00,0x80,0xac,0x0c,0x00,0x82,0x8c,0x3a,0x1b,0x00,0x08,0x10,0x00,0x82,0xac,
+0x00,0x60,0x03,0x40,0x01,0x00,0x61,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x04,0x00,0x85,0x8c,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xac,
+0x04,0x00,0x45,0xac,0x00,0x00,0x84,0xac,0x04,0x00,0x84,0xac,0x00,0x60,0x83,0x40,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xd0,0xff,0xbd,0x27,0x28,0x00,0xb6,0xaf,
+0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x14,0x00,0xb1,0xaf,0x2c,0x00,0xbf,0xaf,
+0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x80,0x16,0x3c,
+0x01,0x80,0x14,0x3c,0x02,0x80,0x11,0x3c,0x02,0x80,0x15,0x3c,0xcc,0x3d,0x24,0x8e,
+0x25,0xb0,0x02,0x3c,0x88,0x6d,0xc3,0x26,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0xdc,0x7d,0x90,0x8e,0x18,0x00,0x80,0x10,0xdc,0x7d,0x82,0x26,0x15,0x00,0x02,0x12,
+0x00,0x00,0x00,0x00,0x21,0x98,0x40,0x00,0x01,0x00,0x12,0x24,0x14,0x00,0x02,0x92,
+0x00,0x00,0x00,0x00,0x1d,0x00,0x52,0x10,0x00,0x00,0x00,0x00,0x09,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0x0c,0x00,0x03,0x8e,0xcc,0x3d,0x22,0x8e,0x00,0x00,0x00,0x00,
+0x23,0x20,0x62,0x00,0x2b,0x10,0x43,0x00,0x0e,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x0c,0x00,0x04,0xae,0x00,0x00,0x10,0x8e,0x00,0x00,0x00,0x00,0xef,0xff,0x13,0x16,
+0x00,0x00,0x00,0x00,0xcc,0x3d,0x20,0xae,0x08,0x0c,0xa4,0x26,0x21,0x28,0x00,0x00,
+0x21,0x30,0x00,0x00,0x1c,0x2c,0x00,0x0c,0x21,0x38,0x00,0x00,0x6f,0x1b,0x00,0x08,
+0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0x18,0x00,0x04,0x8e,0x09,0xf8,0x40,0x00,
+0x00,0x00,0x00,0x00,0x89,0x1b,0x00,0x08,0x0c,0x00,0x02,0xae,0x0c,0x00,0x03,0x8e,
+0xcc,0x3d,0x22,0x8e,0x00,0x00,0x00,0x00,0x23,0x20,0x62,0x00,0x2b,0x10,0x43,0x00,
+0xe7,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0x18,0x00,0x04,0x8e,
+0x09,0xf8,0x40,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x03,0x8e,0x89,0x1b,0x00,0x08,
+0x0c,0x00,0x03,0xae,0x02,0x80,0x02,0x3c,0x3c,0x39,0x43,0x8c,0xff,0x00,0xa5,0x30,
+0x25,0xb0,0x02,0x3c,0x42,0x18,0x03,0x00,0x21,0x30,0xa2,0x00,0x01,0x00,0x63,0x30,
+0x01,0x00,0x02,0x24,0x10,0x00,0xa7,0x2c,0x04,0x00,0x62,0x10,0xff,0x00,0x84,0x30,
+0x60,0x01,0xc4,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c,
+0x10,0x00,0xa2,0x34,0xfa,0xff,0xe0,0x10,0x21,0x40,0x43,0x00,0x60,0x01,0xc4,0xa0,
+0x60,0x01,0x04,0xa1,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xff,0x00,0x84,0x30,
+0x01,0x00,0x03,0x24,0x10,0x00,0x02,0x3c,0x04,0x18,0x83,0x00,0xf0,0x70,0x42,0x34,
+0x15,0x00,0x84,0x2c,0x06,0x00,0x80,0x10,0x24,0x28,0x62,0x00,0x0f,0x00,0x63,0x30,
+0x04,0x00,0xa0,0x14,0x01,0x00,0x02,0x24,0x02,0x00,0x60,0x14,0x02,0x00,0x02,0x24,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xc0,0x40,0x04,0x00,
+0x21,0x18,0x04,0x01,0x80,0x18,0x03,0x00,0x21,0x18,0x64,0x00,0x02,0x80,0x02,0x3c,
+0x80,0x18,0x03,0x00,0x38,0x15,0x42,0x24,0x21,0x18,0x62,0x00,0x8c,0x11,0x66,0x8c,
+0x21,0x38,0x60,0x00,0x92,0x11,0x60,0xa0,0x93,0x11,0x60,0xa0,0x1c,0x00,0x05,0x24,
+0xe0,0x1b,0x00,0x08,0x01,0x00,0x03,0x24,0x08,0x00,0xa0,0x04,0x21,0x10,0x04,0x01,
+0x04,0x10,0xa3,0x00,0x24,0x10,0xc2,0x00,0xfb,0xff,0x40,0x10,0xff,0xff,0xa5,0x24,
+0x01,0x00,0xa5,0x24,0x92,0x11,0xe5,0xa0,0x21,0x10,0x04,0x01,0x80,0x10,0x02,0x00,
+0x21,0x10,0x44,0x00,0x02,0x80,0x03,0x3c,0x80,0x10,0x02,0x00,0x38,0x15,0x63,0x24,
+0x21,0x18,0x43,0x00,0x8c,0x11,0x66,0x8c,0x21,0x28,0x00,0x00,0xf4,0x1b,0x00,0x08,
+0x01,0x00,0x07,0x24,0x1d,0x00,0xa2,0x28,0x08,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x04,0x10,0xa7,0x00,0x24,0x10,0xc2,0x00,0xfa,0xff,0x40,0x10,0x01,0x00,0xa5,0x24,
+0xff,0xff,0xa5,0x24,0x08,0x00,0xe0,0x03,0x93,0x11,0x65,0xa0,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xd8,0xff,0xbd,0x27,
+0x10,0x00,0xb0,0xaf,0xc0,0x80,0x04,0x00,0x21,0x80,0x04,0x02,0x80,0x80,0x10,0x00,
+0x21,0x80,0x04,0x02,0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,0x80,0x80,0x10,0x00,
+0x20,0x00,0xbf,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x21,0x80,0x02,0x02,
+0x14,0x00,0xb1,0xaf,0x90,0x11,0x03,0x8e,0x25,0xb0,0x02,0x3c,0x80,0x01,0x53,0x34,
+0x07,0x00,0x63,0x30,0x80,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0x00,0x00,0x71,0x92,
+0x88,0x11,0x05,0x8e,0x84,0x01,0x62,0x8c,0x21,0x90,0x80,0x00,0xff,0x00,0x31,0x32,
+0x24,0x10,0x45,0x00,0xcf,0x1b,0x00,0x0c,0x8c,0x11,0x02,0xae,0x92,0x11,0x04,0x92,
+0xa9,0x1b,0x00,0x0c,0xff,0x00,0x45,0x32,0x92,0x11,0x04,0x92,0xbf,0x1b,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,0x0a,0x88,0x62,0x00,
+0x00,0x00,0x71,0xa2,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,
+0xff,0xff,0x84,0x30,0x00,0x02,0x82,0x30,0x07,0x00,0x03,0x24,0x0d,0x00,0x40,0x14,
+0x0b,0x00,0x84,0x30,0x0c,0x00,0x82,0x2c,0x0a,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x02,0x80,0x03,0x3c,0x80,0x10,0x04,0x00,0x08,0x83,0x63,0x24,0x21,0x10,0x43,0x00,
+0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,
+0x07,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x06,0x00,0x03,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x05,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0x04,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0x03,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x02,0x00,0x03,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x01,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0x21,0x18,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0x90,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x68,0x00,0xbe,0xaf,0x64,0x00,0xb7,0xaf,
+0x60,0x00,0xb6,0xaf,0x5c,0x00,0xb5,0xaf,0x54,0x00,0xb3,0xaf,0x50,0x00,0xb2,0xaf,
+0x6c,0x00,0xbf,0xaf,0x58,0x00,0xb4,0xaf,0x4c,0x00,0xb1,0xaf,0x48,0x00,0xb0,0xaf,
+0x38,0x83,0x42,0x24,0x00,0x00,0x54,0x8c,0x08,0x00,0x03,0x24,0x10,0x00,0xa3,0xaf,
+0x21,0x98,0x00,0x00,0x21,0xa8,0x00,0x00,0x21,0xb8,0x00,0x00,0x21,0xf0,0x00,0x00,
+0x14,0x00,0xa0,0xaf,0x18,0x00,0xa0,0xaf,0x1c,0x00,0xa0,0xaf,0x20,0x00,0xa0,0xaf,
+0x21,0xb0,0x00,0x00,0x24,0x00,0xa0,0xaf,0x28,0x00,0xa0,0xaf,0x2c,0x00,0xa0,0xaf,
+0x30,0x00,0xa0,0xaf,0x34,0x00,0xa0,0xaf,0x38,0x00,0xa0,0xaf,0x3c,0x00,0xa0,0xaf,
+0x40,0x00,0xa0,0xaf,0x21,0x90,0x80,0x02,0x90,0x11,0x42,0x8e,0x00,0x00,0x00,0x00,
+0x02,0x13,0x02,0x00,0x01,0x00,0x42,0x30,0x6c,0x00,0x40,0x10,0x25,0xb0,0x02,0x3c,
+0x21,0x10,0x62,0x02,0x60,0x01,0x44,0x90,0x78,0x11,0x43,0x8e,0x74,0x11,0x46,0x8e,
+0xff,0x00,0x91,0x30,0x02,0x80,0x04,0x3c,0x38,0x15,0x84,0x24,0x21,0x10,0x24,0x02,
+0x77,0x04,0x44,0x90,0x5a,0x04,0x45,0x90,0x5c,0x11,0x47,0x8e,0x18,0x00,0x64,0x00,
+0x12,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0xc5,0x00,
+0x12,0x30,0x00,0x00,0x21,0x30,0xc3,0x00,0x2b,0x10,0xe6,0x00,0x25,0x01,0x40,0x14,
+0x23,0x10,0xe6,0x00,0x5c,0x11,0x42,0xae,0x78,0x11,0x44,0x8e,0x74,0x11,0x47,0x8e,
+0x60,0x11,0x48,0x8e,0x64,0x11,0x45,0x8e,0x6c,0x11,0x46,0x8e,0x70,0x11,0x43,0x8e,
+0x21,0x38,0xe4,0x00,0x02,0x80,0x04,0x3c,0x38,0x15,0x84,0x24,0x21,0x10,0x24,0x02,
+0x21,0x40,0x05,0x01,0x21,0x30,0xc3,0x00,0xce,0x04,0x42,0x90,0x5c,0x11,0x4a,0x8e,
+0x0c,0x00,0xe0,0x10,0x21,0x48,0x00,0x00,0x2b,0x48,0x47,0x00,0x0b,0x00,0x20,0x15,
+0x02,0x80,0x02,0x3c,0x07,0x00,0x22,0x2e,0x93,0x01,0x40,0x14,0xc0,0x10,0x07,0x00,
+0x0c,0x00,0x02,0x24,0x8f,0x01,0x22,0x12,0x0d,0x00,0x02,0x24,0x8e,0x01,0x22,0x12,
+0xc0,0x10,0x07,0x00,0x81,0x00,0x20,0x11,0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,
+0x80,0x18,0x11,0x00,0x21,0x18,0x62,0x00,0x21,0x20,0x51,0x02,0xce,0x11,0x85,0x90,
+0xf8,0x04,0x62,0x8c,0x00,0x00,0x00,0x00,0x04,0x10,0xa2,0x00,0x2b,0x10,0x4a,0x00,
+0x76,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xec,0x11,0x42,0x8e,0x01,0x00,0x07,0x24,
+0x04,0x18,0x27,0x02,0x24,0x10,0x43,0x00,0x04,0x01,0x40,0x10,0x1c,0x00,0x22,0x2e,
+0x21,0x28,0x51,0x02,0x94,0x11,0xa6,0x90,0xce,0x11,0xa2,0x90,0x0a,0x00,0x04,0x24,
+0xff,0x00,0xc3,0x30,0x04,0x20,0x44,0x00,0x2a,0x18,0x64,0x00,0xfb,0x00,0x60,0x10,
+0x1c,0x00,0x22,0x2e,0x01,0x00,0xc2,0x24,0xff,0x00,0x43,0x30,0x8c,0x01,0x64,0x10,
+0x94,0x11,0xa2,0xa0,0x02,0x80,0x04,0x3c,0x38,0x15,0x85,0x24,0x80,0x10,0x11,0x00,
+0x21,0x10,0x45,0x00,0x6c,0x05,0x44,0x8c,0xf8,0x04,0x43,0x8c,0x21,0x30,0xc5,0x02,
+0x40,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x21,0x18,0x62,0x00,0x82,0x50,0x03,0x00,
+0x5c,0x11,0xca,0xac,0xec,0x25,0xa3,0x8c,0xff,0xff,0x02,0x34,0x03,0x00,0x62,0x10,
+0x21,0x20,0x20,0x02,0xa9,0x1b,0x00,0x0c,0xff,0x00,0x65,0x32,0xbf,0x1b,0x00,0x0c,
+0x21,0x20,0x20,0x02,0x10,0x00,0xa4,0x8f,0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,
+0x0a,0x20,0x62,0x00,0xbc,0x00,0x60,0x12,0x10,0x00,0xa4,0xaf,0x02,0x80,0x03,0x3c,
+0x38,0x15,0x62,0x24,0x21,0x10,0xa2,0x02,0x70,0x11,0x40,0xac,0x74,0x11,0x40,0xac,
+0x78,0x11,0x40,0xac,0x60,0x11,0x40,0xac,0x64,0x11,0x40,0xac,0x68,0x11,0x40,0xac,
+0x6c,0x11,0x40,0xac,0x40,0x00,0xa4,0x8f,0x3c,0x00,0xa2,0x8f,0x01,0x00,0x73,0x26,
+0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,0x40,0x00,0xa4,0xaf,0x3c,0x00,0xa2,0xaf,
+0x38,0x00,0xa4,0x8f,0x34,0x00,0xa2,0x8f,0x20,0x00,0x63,0x2a,0x94,0x00,0x84,0x24,
+0x94,0x00,0x42,0x24,0x38,0x00,0xa4,0xaf,0x34,0x00,0xa2,0xaf,0x30,0x00,0xa4,0x8f,
+0x2c,0x00,0xa2,0x8f,0x94,0x00,0x52,0x26,0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,
+0x30,0x00,0xa4,0xaf,0x2c,0x00,0xa2,0xaf,0x28,0x00,0xa4,0x8f,0x24,0x00,0xa2,0x8f,
+0x94,0x00,0xd6,0x26,0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,0x28,0x00,0xa4,0xaf,
+0x24,0x00,0xa2,0xaf,0x20,0x00,0xa4,0x8f,0x1c,0x00,0xa2,0x8f,0x94,0x00,0xde,0x27,
+0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,0x20,0x00,0xa4,0xaf,0x1c,0x00,0xa2,0xaf,
+0x18,0x00,0xa4,0x8f,0x14,0x00,0xa2,0x8f,0x94,0x00,0x94,0x26,0x94,0x00,0x84,0x24,
+0x94,0x00,0x42,0x24,0x18,0x00,0xa4,0xaf,0x14,0x00,0xa2,0xaf,0x94,0x00,0xf7,0x26,
+0x59,0xff,0x60,0x14,0x94,0x00,0xb5,0x26,0x10,0x00,0xa3,0x8f,0x6c,0x00,0xbf,0x8f,
+0x68,0x00,0xbe,0x8f,0x64,0x00,0xb7,0x8f,0x60,0x00,0xb6,0x8f,0x5c,0x00,0xb5,0x8f,
+0x58,0x00,0xb4,0x8f,0x54,0x00,0xb3,0x8f,0x50,0x00,0xb2,0x8f,0x4c,0x00,0xb1,0x8f,
+0x48,0x00,0xb0,0x8f,0x25,0xb0,0x02,0x3c,0x80,0x01,0x42,0x34,0x70,0x00,0xbd,0x27,
+0x00,0x00,0x43,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x87,0x00,0xe0,0x10,
+0x00,0x00,0x00,0x00,0x87,0x00,0x20,0x15,0x02,0x80,0x03,0x3c,0x40,0x10,0x07,0x00,
+0x21,0x10,0x47,0x00,0x82,0x10,0x02,0x00,0x2b,0x10,0x46,0x00,0xa7,0xff,0x40,0x10,
+0x00,0x00,0x00,0x00,0x20,0x00,0xa2,0x8f,0x02,0x80,0x04,0x3c,0x38,0x15,0x88,0x24,
+0x21,0x20,0x48,0x00,0x21,0x30,0x91,0x00,0xec,0x11,0x83,0x8c,0x01,0x00,0x05,0x24,
+0x04,0x10,0x25,0x02,0xb1,0x11,0xc7,0x90,0x27,0x10,0x02,0x00,0x24,0x18,0x62,0x00,
+0xec,0x11,0x83,0xac,0x09,0x00,0xe5,0x10,0x94,0x11,0xc0,0xa0,0x1c,0x00,0xa3,0x8f,
+0x21,0x38,0x00,0x00,0x21,0x20,0x68,0x00,0x21,0x18,0x87,0x00,0x01,0x00,0xe7,0x24,
+0x1d,0x00,0xe2,0x28,0xfc,0xff,0x40,0x14,0xce,0x11,0x60,0xa0,0x02,0x80,0x04,0x3c,
+0x38,0x15,0x83,0x24,0x18,0x00,0xa4,0x8f,0x21,0x50,0x60,0x00,0x21,0x38,0x00,0x00,
+0x21,0x10,0x83,0x00,0x21,0x10,0x51,0x00,0xb1,0x11,0x40,0xa0,0x02,0x80,0x03,0x3c,
+0x02,0x80,0x02,0x3c,0x4c,0x82,0x49,0x24,0xd8,0x81,0x68,0x24,0x80,0x18,0x07,0x00,
+0x21,0x10,0x69,0x00,0x21,0x20,0x68,0x00,0x00,0x00,0x46,0x8c,0x00,0x00,0x85,0x8c,
+0x01,0x00,0xe7,0x24,0x21,0x18,0x6a,0x00,0x1d,0x00,0xe2,0x28,0xf8,0x04,0x65,0xac,
+0xf6,0xff,0x40,0x14,0x6c,0x05,0x66,0xac,0x15,0x00,0x20,0x12,0x02,0x80,0x05,0x3c,
+0x93,0x11,0x82,0x92,0xff,0xff,0x27,0x26,0x2a,0x10,0xe2,0x00,0x10,0x00,0x40,0x14,
+0x02,0x80,0x03,0x3c,0x14,0x00,0xa4,0x8f,0x38,0x15,0x62,0x24,0x21,0x10,0x82,0x00,
+0x93,0x11,0x45,0x90,0x8c,0x11,0x44,0x8c,0x01,0x00,0x06,0x24,0x04,0x18,0xe6,0x00,
+0x24,0x10,0x83,0x00,0x06,0x01,0x43,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0xe7,0x24,
+0x2a,0x10,0xe5,0x00,0xfa,0xff,0x40,0x10,0x04,0x18,0xe6,0x00,0x02,0x80,0x05,0x3c,
+0x96,0x3d,0xa3,0x90,0x22,0x00,0x02,0x24,0xe8,0x00,0x62,0x10,0x02,0x80,0x03,0x3c,
+0x02,0x80,0x04,0x3c,0x38,0x15,0x83,0x24,0x80,0x10,0x11,0x00,0x21,0x10,0x43,0x00,
+0x6c,0x05,0x44,0x8c,0xf8,0x04,0x43,0x8c,0x96,0x3d,0xa5,0x90,0x40,0x10,0x04,0x00,
+0x21,0x10,0x44,0x00,0x21,0x18,0x62,0x00,0x22,0x00,0x02,0x24,0xd6,0x00,0xa2,0x10,
+0x82,0x50,0x03,0x00,0xec,0x11,0x83,0x8e,0x01,0x00,0x02,0x24,0x04,0x10,0x22,0x02,
+0x25,0x18,0x62,0x00,0xec,0x11,0x83,0xae,0x02,0x80,0x02,0x3c,0x38,0x15,0x43,0x24,
+0x21,0x10,0xe3,0x02,0x5c,0x11,0x4a,0xac,0xec,0x25,0x64,0x8c,0xff,0xff,0x02,0x34,
+0x44,0xff,0x82,0x14,0x21,0x20,0x20,0x02,0xbf,0x1b,0x00,0x0c,0x21,0x20,0x20,0x02,
+0x10,0x00,0xa4,0x8f,0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,0x0a,0x20,0x62,0x00,
+0x46,0xff,0x60,0x16,0x10,0x00,0xa4,0xaf,0x02,0x80,0x02,0x3c,0x38,0x15,0x50,0x24,
+0x64,0x11,0x05,0x96,0x60,0x11,0x02,0x96,0x25,0xb0,0x11,0x3c,0x00,0x2c,0x05,0x00,
+0x21,0x28,0x45,0x00,0xc4,0x47,0x00,0x0c,0x68,0x0c,0x24,0x36,0x70,0x11,0x02,0x8e,
+0x6c,0x11,0x05,0x8e,0x68,0x11,0x03,0x96,0x6c,0x0c,0x24,0x36,0x21,0x28,0xa2,0x00,
+0x00,0x2c,0x05,0x00,0xc4,0x47,0x00,0x0c,0x21,0x28,0x65,0x00,0xe8,0x1c,0x00,0x08,
+0x02,0x80,0x03,0x3c,0x92,0x1c,0x00,0x08,0x5c,0x11,0x40,0xae,0x27,0xff,0x20,0x11,
+0x02,0x80,0x03,0x3c,0x38,0x15,0x62,0x24,0x80,0x18,0x11,0x00,0x21,0x18,0x62,0x00,
+0x6c,0x05,0x64,0x8c,0x00,0x00,0x00,0x00,0x2b,0x20,0x44,0x01,0x1f,0xff,0x80,0x10,
+0x00,0x00,0x00,0x00,0x39,0x1d,0x00,0x08,0x00,0x00,0x00,0x00,0x0a,0xff,0x40,0x10,
+0x02,0x80,0x04,0x3c,0x21,0x20,0x51,0x02,0xb1,0x11,0x83,0x90,0x01,0x00,0x02,0x24,
+0x78,0x00,0x62,0x10,0x02,0x80,0x02,0x3c,0x40,0x00,0xa3,0x8f,0x38,0x15,0x42,0x24,
+0x21,0x20,0x62,0x00,0x21,0x38,0x00,0x00,0x21,0x18,0x87,0x00,0x01,0x00,0xe7,0x24,
+0x1d,0x00,0xe2,0x28,0xfc,0xff,0x40,0x14,0xce,0x11,0x60,0xa0,0x3c,0x00,0xa2,0x8f,
+0x02,0x80,0x04,0x3c,0x38,0x15,0x85,0x24,0x21,0x30,0x45,0x00,0xec,0x11,0xc2,0x8c,
+0x01,0x00,0x03,0x24,0x04,0x18,0x23,0x02,0x27,0x18,0x03,0x00,0x21,0x20,0xd1,0x00,
+0x24,0x10,0x43,0x00,0xb1,0x11,0x80,0xa0,0xec,0x11,0xc2,0xac,0x12,0x00,0x20,0x16,
+0x94,0x11,0x80,0xa0,0x92,0x11,0xc2,0x90,0x00,0x00,0x00,0x00,0x0e,0x00,0x40,0x10,
+0x01,0x00,0x07,0x24,0x38,0x00,0xa3,0x8f,0x01,0x00,0x06,0x24,0x21,0x10,0x65,0x00,
+0x92,0x11,0x44,0x90,0x8c,0x11,0x45,0x8c,0x04,0x18,0xe6,0x00,0x24,0x10,0xa3,0x00,
+0x8d,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xe7,0x24,0x2a,0x10,0x87,0x00,
+0xfa,0xff,0x40,0x10,0x04,0x18,0xe6,0x00,0x02,0x80,0x02,0x3c,0x38,0x15,0x44,0x24,
+0x34,0x00,0xa2,0x8f,0x01,0x00,0x27,0x26,0x21,0x18,0x44,0x00,0x92,0x11,0x62,0x90,
+0x00,0x00,0x00,0x00,0x2a,0x10,0x47,0x00,0x0f,0x00,0x40,0x14,0x02,0x80,0x05,0x3c,
+0x30,0x00,0xa3,0x8f,0x01,0x00,0x06,0x24,0x21,0x10,0x64,0x00,0x92,0x11,0x45,0x90,
+0x8c,0x11,0x44,0x8c,0x04,0x18,0xe6,0x00,0x24,0x10,0x83,0x00,0x73,0x00,0x43,0x10,
+0x00,0x00,0x00,0x00,0x01,0x00,0xe7,0x24,0x2a,0x10,0xa7,0x00,0xfa,0xff,0x40,0x10,
+0x04,0x18,0xe6,0x00,0x02,0x80,0x05,0x3c,0x96,0x3d,0xa3,0x90,0x22,0x00,0x02,0x24,
+0x3e,0x00,0x62,0x10,0xee,0xff,0x22,0x26,0x96,0x3d,0xa3,0x90,0x22,0x00,0x02,0x24,
+0xbd,0xfe,0x62,0x14,0x02,0x80,0x04,0x3c,0x28,0x00,0xa2,0x8f,0x38,0x15,0x86,0x24,
+0x21,0x20,0x46,0x00,0x90,0x11,0x85,0x8c,0x01,0x00,0x03,0x24,0x42,0x13,0x05,0x00,
+0x07,0x00,0x42,0x30,0xb3,0xfe,0x43,0x10,0x14,0x00,0x22,0x2e,0xb1,0xfe,0x40,0x14,
+0x1c,0x00,0x22,0x2e,0xaf,0xfe,0x40,0x10,0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34,
+0x24,0x10,0xa2,0x00,0x00,0x20,0x42,0x34,0x90,0x11,0x82,0xac,0x93,0x11,0x83,0x90,
+0xff,0xff,0x27,0x26,0x2a,0x18,0xe3,0x00,0xa6,0xfe,0x60,0x14,0x00,0x00,0x00,0x00,
+0x24,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00,0x21,0x10,0x66,0x00,0x93,0x11,0x45,0x90,
+0x8c,0x11,0x44,0x8c,0x32,0x1e,0x00,0x08,0x01,0x00,0x06,0x24,0x2a,0x10,0xe5,0x00,
+0x9c,0xfe,0x40,0x14,0x00,0x00,0x00,0x00,0x04,0x18,0xe6,0x00,0x24,0x10,0x83,0x00,
+0xfa,0xff,0x43,0x14,0xff,0xff,0xe7,0x24,0x01,0x00,0xe7,0x24,0xcd,0x1c,0x00,0x08,
+0xff,0x00,0xf1,0x30,0xc0,0x10,0x07,0x00,0x23,0x10,0x47,0x00,0xc2,0x10,0x02,0x00,
+0x2b,0x10,0x48,0x00,0x7c,0xfe,0x40,0x14,0x00,0x00,0x00,0x00,0xad,0x1c,0x00,0x08,
+0x00,0x00,0x00,0x00,0x18,0x00,0x22,0x2e,0x17,0x00,0x40,0x14,0x05,0x00,0x22,0x2e,
+0xce,0x11,0x83,0x90,0x00,0x00,0x00,0x00,0x05,0x00,0x62,0x2c,0x8b,0xff,0x40,0x10,
+0x01,0x00,0x62,0x24,0xd3,0x1d,0x00,0x08,0xce,0x11,0x82,0xa0,0xff,0x00,0x42,0x30,
+0x02,0x00,0x42,0x2c,0xc0,0xff,0x40,0x10,0x02,0x80,0x04,0x3c,0x2c,0x00,0xa3,0x8f,
+0x38,0x15,0x82,0x24,0x21,0x10,0x62,0x00,0x8c,0x11,0x43,0x8c,0x00,0x01,0x04,0x3c,
+0x18,0x00,0x02,0x24,0x24,0x18,0x64,0x00,0x0e,0x1e,0x00,0x08,0x0b,0x88,0x43,0x00,
+0xcd,0x1c,0x00,0x08,0xb1,0x11,0xa7,0xa0,0x04,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0xce,0x11,0x83,0x90,0x47,0x1e,0x00,0x08,0x03,0x00,0x62,0x2c,0xce,0x11,0x83,0x90,
+0x47,0x1e,0x00,0x08,0x04,0x00,0x62,0x2c,0x13,0x00,0x02,0x24,0x29,0xff,0x22,0x16,
+0x02,0x80,0x02,0x3c,0x94,0x1d,0x00,0x08,0x38,0x15,0x43,0x24,0x38,0x15,0x62,0x24,
+0x21,0x20,0xc2,0x03,0x90,0x11,0x83,0x8c,0x00,0x00,0x00,0x00,0x42,0x13,0x03,0x00,
+0x07,0x00,0x42,0x30,0x12,0xff,0x40,0x10,0x14,0x00,0x22,0x2e,0x10,0xff,0x40,0x10,
+0x0c,0x00,0x22,0x2e,0x0e,0xff,0x40,0x14,0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34,
+0x24,0x10,0x62,0x00,0x80,0x1d,0x00,0x08,0x90,0x11,0x82,0xac,0xff,0x00,0xf1,0x30,
+0x0a,0x1e,0x00,0x08,0x02,0x80,0x05,0x3c,0xf2,0x1d,0x00,0x08,0xff,0x00,0xf1,0x30,
+0x7b,0x1d,0x00,0x08,0xff,0x00,0xf1,0x30,0xa8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,
+0x38,0x00,0xb2,0xaf,0x54,0x00,0xbf,0xaf,0x50,0x00,0xbe,0xaf,0x4c,0x00,0xb7,0xaf,
+0x48,0x00,0xb6,0xaf,0x44,0x00,0xb5,0xaf,0x40,0x00,0xb4,0xaf,0x3c,0x00,0xb3,0xaf,
+0x34,0x00,0xb1,0xaf,0x30,0x00,0xb0,0xaf,0x38,0x15,0x46,0x24,0x71,0x25,0xc4,0x90,
+0x6c,0x25,0xc3,0x8c,0x68,0x25,0xc2,0x8c,0x21,0x90,0x64,0x00,0x2b,0x10,0x42,0x02,
+0x7e,0x00,0x40,0x10,0x21,0x88,0xc0,0x00,0x02,0x80,0x1e,0x3c,0x02,0x80,0x17,0x3c,
+0x21,0xa8,0xc0,0x00,0x21,0xb0,0xc0,0x00,0x9d,0x1e,0x00,0x08,0x01,0x00,0x14,0x24,
+0x68,0x25,0xc2,0x8e,0x10,0x00,0x52,0x26,0x2b,0x10,0x42,0x02,0x73,0x00,0x40,0x10,
+0x21,0x88,0xc0,0x02,0x71,0x25,0x22,0x92,0xff,0xff,0x45,0x32,0x25,0x28,0xb7,0x00,
+0x10,0x00,0x42,0x24,0x71,0x25,0x22,0xa2,0x14,0x39,0xc4,0x27,0x60,0x45,0x00,0x0c,
+0x10,0x00,0x06,0x24,0x04,0x24,0x23,0x8e,0x00,0x00,0x00,0x00,0x42,0x18,0x03,0x00,
+0x01,0x00,0x63,0x30,0x71,0x00,0x74,0x10,0x02,0x80,0x03,0x3c,0x38,0x15,0x63,0x24,
+0xe0,0x23,0x62,0x8c,0x00,0x00,0x00,0x00,0x42,0x84,0x02,0x00,0x1f,0x00,0x10,0x32,
+0xc0,0x48,0x10,0x00,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x55,0x00,0x90,0x11,0x45,0x8c,0x00,0x00,0x00,0x00,
+0x02,0x1b,0x05,0x00,0x01,0x00,0x63,0x30,0xdd,0xff,0x60,0x10,0x21,0x30,0xa0,0x02,
+0x25,0xb0,0x02,0x3c,0x21,0x40,0x02,0x02,0xdc,0x23,0xa7,0x8e,0x04,0x24,0xa2,0x8e,
+0x60,0x01,0x03,0x91,0x82,0x25,0x07,0x00,0x01,0x00,0x42,0x30,0xff,0x00,0x6b,0x30,
+0x9a,0x00,0x54,0x10,0x3f,0x00,0x8a,0x30,0x02,0x80,0x04,0x3c,0x3c,0x83,0x84,0x24,
+0x00,0x00,0x86,0x8c,0x04,0x00,0x04,0x24,0xdc,0x23,0xc3,0x8c,0x00,0x00,0x00,0x00,
+0x82,0x15,0x03,0x00,0x3f,0x00,0x42,0x30,0x05,0x00,0x42,0x28,0x0a,0x00,0x60,0x04,
+0x0a,0x50,0x82,0x00,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x7c,0x11,0x43,0x8c,0x04,0x00,0x0a,0x24,
+0x01,0x00,0x63,0x24,0x7c,0x11,0x43,0xac,0xe0,0x23,0xc2,0x8c,0x00,0x00,0x00,0x00,
+0x02,0x13,0x02,0x00,0x1f,0x00,0x42,0x30,0x08,0x00,0x42,0x28,0xb8,0xff,0x40,0x10,
+0x00,0x00,0x00,0x00,0xdc,0x23,0xc2,0x8c,0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,
+0xb3,0xff,0x4b,0x14,0x00,0x00,0x00,0x00,0x9f,0x00,0x40,0x11,0x21,0x10,0x30,0x01,
+0xa8,0x00,0x54,0x11,0x80,0x10,0x02,0x00,0x02,0x00,0x02,0x24,0xb0,0x00,0x42,0x11,
+0x21,0x10,0x30,0x01,0x03,0x00,0x02,0x24,0xb8,0x00,0x42,0x11,0x21,0x10,0x30,0x01,
+0xc0,0x00,0x44,0x11,0x21,0x10,0x30,0x01,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,
+0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x28,0x46,0x00,0x80,0x11,0xa3,0x8c,
+0x21,0x10,0x66,0x01,0x94,0x04,0x44,0x90,0x02,0x19,0x03,0x00,0x2b,0x18,0x64,0x00,
+0xc8,0x00,0x60,0x14,0x00,0x00,0x00,0x00,0x74,0x11,0xa3,0x8c,0x80,0x10,0x0b,0x00,
+0x21,0x10,0x4b,0x00,0x01,0x00,0x63,0x24,0x21,0x10,0x46,0x00,0x74,0x11,0xa3,0xac,
+0x21,0x10,0x4a,0x00,0x38,0x03,0x44,0x90,0x5c,0x11,0xa3,0x8c,0x00,0x00,0x00,0x00,
+0x21,0x18,0x64,0x00,0x5c,0x11,0xa3,0xac,0x68,0x25,0xc2,0x8e,0x10,0x00,0x52,0x26,
+0x2b,0x10,0x42,0x02,0x8f,0xff,0x40,0x14,0x21,0x88,0xc0,0x02,0x54,0x00,0xbf,0x8f,
+0x50,0x00,0xbe,0x8f,0x4c,0x00,0xb7,0x8f,0x48,0x00,0xb6,0x8f,0x44,0x00,0xb5,0x8f,
+0x40,0x00,0xb4,0x8f,0x3c,0x00,0xb3,0x8f,0x38,0x00,0xb2,0x8f,0x34,0x00,0xb1,0x8f,
+0x30,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x58,0x00,0xbd,0x27,0xe0,0x23,0x22,0x8e,
+0x00,0x00,0x00,0x00,0x42,0x14,0x02,0x00,0x10,0x00,0x43,0x30,0x90,0xff,0x60,0x10,
+0x0f,0x00,0x50,0x30,0x89,0x47,0x00,0x0c,0x48,0x00,0x04,0x24,0x74,0xff,0x40,0x10,
+0x21,0x98,0x40,0x00,0x14,0x00,0x02,0x24,0x28,0x00,0x04,0x24,0x14,0x00,0x62,0xae,
+0x0c,0x00,0x64,0xae,0x14,0x00,0xa3,0x8f,0xe0,0xff,0x04,0x24,0x08,0x00,0x07,0x24,
+0x80,0x00,0x63,0x34,0x14,0x00,0xa3,0xaf,0xe0,0x23,0x26,0x8e,0x24,0x18,0x64,0x00,
+0xff,0xe0,0x04,0x24,0x42,0x14,0x06,0x00,0x1f,0x00,0x42,0x30,0x25,0x18,0x62,0x00,
+0x14,0x00,0xa3,0xaf,0xdc,0x23,0x25,0x8e,0x24,0x18,0x64,0x00,0x02,0x23,0x06,0x00,
+0x82,0x13,0x05,0x00,0x00,0x1f,0x42,0x30,0x25,0x18,0x62,0x00,0xff,0xff,0x02,0x3c,
+0xff,0x7f,0x42,0x34,0xc2,0x2f,0x05,0x00,0x24,0x18,0x62,0x00,0xc0,0x2b,0x05,0x00,
+0x0f,0x00,0x02,0x3c,0x25,0x18,0x65,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0x00,0x35,0x06,0x00,0xf0,0xff,0x02,0x3c,0x25,0x18,0x66,0x00,0xff,0xff,0x42,0x34,
+0x0f,0x00,0x84,0x30,0x24,0x18,0x62,0x00,0x00,0x24,0x04,0x00,0x25,0x18,0x64,0x00,
+0x02,0x80,0x04,0x3c,0x10,0x00,0xa5,0x27,0x68,0x39,0x84,0x24,0x02,0x00,0x06,0x24,
+0x04,0x00,0x02,0x24,0x11,0x00,0xa7,0xa3,0x14,0x00,0xa3,0xaf,0x6c,0x45,0x00,0x0c,
+0x10,0x00,0xa2,0xa3,0x08,0x00,0x64,0x96,0x10,0x00,0xa5,0x27,0x02,0x00,0x06,0x24,
+0x25,0x20,0x97,0x00,0x6c,0x45,0x00,0x0c,0x20,0x00,0x84,0x24,0x78,0x08,0x00,0x0c,
+0x21,0x20,0x60,0x02,0xb1,0x1e,0x00,0x08,0xc0,0x48,0x10,0x00,0x02,0x12,0x05,0x00,
+0x01,0x00,0x42,0x30,0x14,0x00,0x54,0x10,0xc2,0x10,0x05,0x00,0x01,0x00,0x42,0x30,
+0x76,0x00,0x54,0x10,0x00,0x00,0x00,0x00,0x10,0x24,0xa2,0x96,0x60,0x01,0x03,0x91,
+0xc2,0x27,0x07,0x00,0x21,0x10,0x42,0x01,0x2c,0x24,0xa3,0xa2,0x13,0x00,0x80,0x10,
+0x10,0x24,0xa2,0xa6,0x59,0xff,0x94,0x14,0x02,0x80,0x04,0x3c,0x0c,0x24,0xa2,0x96,
+0x16,0x24,0xa3,0x96,0x01,0x00,0x42,0x24,0x01,0x00,0x63,0x24,0x0c,0x24,0xa2,0xa6,
+0xc7,0x1e,0x00,0x08,0x16,0x24,0xa3,0xa6,0x5d,0x00,0xe0,0x04,0x00,0x00,0x00,0x00,
+0x0e,0x24,0xa3,0x96,0x1a,0x24,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,
+0x1a,0x24,0xa2,0xa6,0xc6,0x1e,0x00,0x08,0x0e,0x24,0xc3,0xa4,0x0e,0x24,0xa3,0x96,
+0x1c,0x24,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,0x1c,0x24,0xa2,0xa6,
+0xc6,0x1e,0x00,0x08,0x0e,0x24,0xc3,0xa4,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x60,0x11,0x43,0x8c,0x00,0x00,0x00,0x00,
+0x01,0x00,0x63,0x24,0x5c,0xff,0x54,0x15,0x60,0x11,0x43,0xac,0x21,0x10,0x30,0x01,
+0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,
+0x64,0x11,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x64,0x11,0x43,0xac,
+0x02,0x00,0x02,0x24,0x54,0xff,0x42,0x15,0x03,0x00,0x02,0x24,0x21,0x10,0x30,0x01,
+0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,
+0x68,0x11,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x68,0x11,0x43,0xac,
+0x03,0x00,0x02,0x24,0x4a,0xff,0x42,0x15,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,
+0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x6c,0x11,0x43,0x8c,
+0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x43,0xff,0x44,0x15,0x6c,0x11,0x43,0xac,
+0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,
+0x21,0x10,0x46,0x00,0x70,0x11,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,
+0x70,0x11,0x43,0xac,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,
+0x80,0x10,0x02,0x00,0x21,0x28,0x46,0x00,0x80,0x11,0xa3,0x8c,0x21,0x10,0x66,0x01,
+0x94,0x04,0x44,0x90,0x02,0x19,0x03,0x00,0x2b,0x18,0x64,0x00,0x3a,0xff,0x60,0x10,
+0x00,0x00,0x00,0x00,0x78,0x11,0xa3,0x8c,0x80,0x10,0x0b,0x00,0x02,0x80,0x04,0x3c,
+0x38,0x15,0x84,0x24,0x21,0x10,0x4b,0x00,0x01,0x00,0x63,0x24,0x21,0x10,0x44,0x00,
+0x78,0x11,0xa3,0xac,0x21,0x10,0x4a,0x00,0xc9,0x03,0x44,0x90,0x5c,0x11,0xa3,0x8c,
+0x00,0x00,0x00,0x00,0x21,0x18,0x64,0x00,0x0a,0x1f,0x00,0x08,0x5c,0x11,0xa3,0xac,
+0x0c,0x24,0xa3,0x96,0x14,0x24,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,
+0x14,0x24,0xa2,0xa6,0xc6,0x1e,0x00,0x08,0x0c,0x24,0xc3,0xa4,0x08,0x00,0xe0,0x04,
+0x00,0x00,0x00,0x00,0x0e,0x24,0xa3,0x96,0x18,0x24,0xa2,0x96,0x01,0x00,0x63,0x24,
+0x01,0x00,0x42,0x24,0x18,0x24,0xa2,0xa6,0xc6,0x1e,0x00,0x08,0x0e,0x24,0xc3,0xa4,
+0x0c,0x24,0xa3,0x96,0x12,0x24,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,
+0x12,0x24,0xa2,0xa6,0xc6,0x1e,0x00,0x08,0x0c,0x24,0xc3,0xa4,0x02,0x80,0x0a,0x3c,
+0x38,0x15,0x42,0x8d,0xe8,0xff,0xbd,0x27,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,
+0x11,0x00,0x40,0x14,0x10,0x00,0xbf,0xaf,0x25,0xb0,0x05,0x3c,0x4c,0x00,0xa2,0x34,
+0x00,0x00,0x43,0x90,0x38,0x15,0x46,0x25,0xf9,0x0a,0xc2,0x90,0x03,0x00,0x67,0x30,
+0x09,0x00,0x47,0x10,0x58,0x00,0xa2,0x34,0x00,0x00,0x44,0x8c,0x29,0xb0,0x03,0x3c,
+0x5c,0x00,0xa2,0x34,0x00,0x00,0x64,0xac,0x00,0x00,0x44,0x8c,0x04,0x00,0x63,0x34,
+0xf9,0x0a,0xc7,0xa0,0x00,0x00,0x64,0xac,0x25,0xb0,0x02,0x3c,0x2d,0x0a,0x46,0x34,
+0xa2,0x0d,0x43,0x34,0xa4,0x0d,0x44,0x34,0xa6,0x0d,0x45,0x34,0xa8,0x0d,0x42,0x34,
+0x00,0x00,0x67,0x94,0x00,0x00,0x88,0x94,0x00,0x00,0xa9,0x94,0x00,0x00,0x44,0x94,
+0x00,0x00,0xc3,0x90,0x38,0x15,0x42,0x25,0xe2,0x02,0x44,0xa4,0x40,0x00,0x63,0x34,
+0xff,0x00,0x63,0x30,0x00,0x00,0xc3,0xa0,0xdc,0x02,0x47,0xa4,0xde,0x02,0x48,0xa4,
+0xe0,0x02,0x49,0xa4,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x07,0x3c,
+0x5b,0x0a,0xe2,0x34,0x00,0x00,0x44,0x90,0x38,0x15,0x46,0x25,0x5c,0x0a,0xe2,0x34,
+0x00,0x00,0x45,0x90,0xdc,0x02,0xc3,0x94,0xde,0x02,0xc2,0x94,0xe0,0x02,0xc9,0x94,
+0xe2,0x02,0xc8,0x94,0xff,0x00,0x84,0x30,0x21,0x18,0x62,0x00,0x00,0x22,0x04,0x00,
+0xff,0x00,0xa5,0x30,0x21,0x20,0x85,0x00,0x21,0x18,0x69,0x00,0xff,0xff,0x82,0x30,
+0x21,0x18,0x68,0x00,0x21,0x18,0x62,0x00,0x64,0x0c,0xe7,0x34,0xff,0xff,0x42,0x30,
+0xe4,0x02,0xc3,0xac,0x00,0x00,0xe2,0xa4,0xe8,0x02,0xc4,0xa4,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x42,0x8d,0x01,0x00,0x03,0x24,0x01,0x00,0x44,0x30,
+0x07,0x00,0x83,0x10,0x38,0x15,0x45,0x25,0xb9,0x51,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x10,0x00,0xbf,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,
+0xe8,0x02,0xa2,0x8c,0x00,0x00,0x00,0x00,0x02,0x17,0x02,0x00,0x01,0x00,0x42,0x30,
+0xf5,0xff,0x40,0x14,0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90,
+0x00,0x00,0x00,0x00,0x03,0x00,0x63,0x30,0x4e,0x00,0x64,0x10,0x00,0x00,0x00,0x00,
+0x38,0x15,0x45,0x25,0xea,0x02,0xa2,0x90,0x00,0x00,0x00,0x00,0x07,0x00,0x40,0x14,
+0x38,0x15,0x46,0x25,0x38,0x15,0x42,0x8d,0x01,0x00,0x03,0x24,0x02,0x11,0x02,0x00,
+0x03,0x00,0x42,0x30,0x49,0x00,0x43,0x10,0x3e,0x00,0x02,0x24,0xea,0x02,0xc3,0x90,
+0xff,0x00,0x02,0x24,0xe0,0xff,0x62,0x14,0x25,0xb0,0x02,0x3c,0x50,0x0c,0x42,0x34,
+0x00,0x00,0x45,0x90,0xcc,0x02,0xc4,0x94,0xe4,0x02,0xc7,0x8c,0x32,0x00,0x02,0x24,
+0x20,0x00,0x03,0x24,0x7f,0x00,0xa5,0x30,0x2b,0x20,0xe4,0x00,0xd4,0x02,0xc2,0xa0,
+0xd5,0x02,0xc3,0xa0,0x0c,0x00,0x80,0x14,0xff,0xff,0xa2,0x24,0xce,0x02,0xc2,0x94,
+0x00,0x00,0x00,0x00,0x2b,0x10,0xe2,0x00,0x09,0x00,0x40,0x14,0x38,0x15,0x44,0x25,
+0xd0,0x02,0xc2,0x94,0x00,0x00,0x00,0x00,0x2b,0x10,0xe2,0x00,0x02,0x00,0x40,0x10,
+0x02,0x00,0xa2,0x24,0x01,0x00,0xa2,0x24,0xff,0x00,0x45,0x30,0x38,0x15,0x44,0x25,
+0xd4,0x02,0x83,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x65,0x00,0xb9,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x21,0x28,0x60,0x00,0x38,0x15,0x43,0x25,0xe4,0x02,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x11,0x27,0x42,0x2c,0xae,0x00,0x40,0x14,0x3a,0x00,0xa2,0x2c,
+0x32,0x00,0x05,0x24,0x44,0x00,0x03,0x24,0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34,
+0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c,0x50,0x0c,0x42,0x34,0x00,0x00,0x45,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,0x58,0x0c,0x42,0x34,
+0x00,0x00,0x45,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x3e,0x20,0x00,0x08,
+0x00,0x00,0x00,0x00,0xea,0x02,0xa2,0x90,0x00,0x00,0x00,0x00,0xb0,0xff,0x40,0x14,
+0xff,0xff,0x02,0x24,0x50,0x20,0x00,0x08,0xea,0x02,0xa2,0xa0,0x02,0x00,0xa4,0x90,
+0xd4,0x02,0xa2,0xa0,0x1c,0x00,0x03,0x24,0x06,0x00,0x02,0x24,0x92,0x00,0x82,0x10,
+0xd5,0x02,0xa3,0xa0,0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90,
+0x00,0x00,0x00,0x00,0x03,0x00,0x63,0x30,0x8f,0xff,0x60,0x10,0x38,0x15,0x44,0x25,
+0xfc,0x23,0x83,0x8c,0xff,0xff,0x02,0x34,0x8b,0xff,0x62,0x10,0x00,0x00,0x00,0x00,
+0xe4,0x02,0x83,0x8c,0x00,0x00,0x00,0x00,0xe9,0x03,0x62,0x2c,0x97,0x00,0x40,0x14,
+0x90,0x01,0x62,0x2c,0xd6,0x02,0x83,0x90,0x00,0x00,0x00,0x00,0x00,0x16,0x03,0x00,
+0x03,0x16,0x02,0x00,0xfe,0xff,0x42,0x24,0xfc,0xff,0x42,0x28,0x02,0x00,0x40,0x10,
+0xfe,0xff,0x62,0x24,0xfc,0xff,0x02,0x24,0xd6,0x02,0x82,0xa0,0x38,0x15,0x44,0x25,
+0x90,0x11,0x82,0x8c,0x06,0x00,0x03,0x24,0x07,0x00,0x42,0x30,0x96,0x00,0x43,0x10,
+0x25,0xb0,0x03,0x3c,0x00,0x24,0x82,0x8c,0xfc,0x23,0x84,0x8c,0x02,0x11,0x02,0x00,
+0x7f,0x00,0x4c,0x30,0x02,0x21,0x04,0x00,0x66,0x0c,0x63,0x34,0x00,0x00,0x6c,0xa0,
+0x7f,0x00,0x8b,0x30,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,
+0x67,0x0c,0x42,0x34,0x00,0x00,0x4b,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,
+0x00,0x3e,0x0b,0x00,0x00,0x16,0x0c,0x00,0x2b,0x20,0x8b,0x01,0x03,0x3e,0x07,0x00,
+0x03,0x16,0x02,0x00,0x0a,0x38,0x44,0x00,0x25,0xb0,0x02,0x3c,0x04,0x0d,0x42,0x34,
+0x00,0x00,0x43,0x90,0x01,0x00,0x02,0x24,0xff,0x00,0x63,0x30,0x6f,0x00,0x62,0x10,
+0x04,0x00,0xe2,0x24,0x02,0x00,0x80,0x14,0x23,0x10,0x6c,0x01,0x23,0x10,0x8b,0x01,
+0xff,0x00,0x42,0x30,0x15,0x00,0x42,0x2c,0x05,0x00,0x40,0x14,0x25,0xb0,0x02,0x3c,
+0x38,0x15,0x43,0x25,0x0a,0x00,0x02,0x24,0xd6,0x02,0x62,0xa0,0x25,0xb0,0x02,0x3c,
+0x6c,0x03,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x00,0x16,0x03,0x00,
+0x03,0x16,0x02,0x00,0x02,0x00,0x40,0x14,0x0a,0x00,0x42,0x24,0x0a,0x00,0xe2,0x24,
+0x38,0x15,0x44,0x25,0xd6,0x02,0x83,0x90,0x00,0x3e,0x02,0x00,0x03,0x3e,0x07,0x00,
+0xd2,0x02,0x85,0x90,0x23,0x18,0xe3,0x00,0x00,0x3e,0x03,0x00,0x03,0x3e,0x07,0x00,
+0xff,0x00,0xa2,0x30,0x2a,0x10,0x47,0x00,0x3e,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x00,0x3e,0x05,0x00,0x03,0x3e,0x07,0x00,0x38,0x15,0x43,0x25,0xe4,0x02,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x11,0x27,0x42,0x2c,0x32,0x00,0x40,0x14,0x3a,0x00,0xe2,0x28,
+0x32,0x00,0xe2,0x28,0x2f,0x00,0x40,0x10,0x3a,0x00,0xe2,0x28,0x32,0x00,0x07,0x24,
+0x44,0x00,0x03,0x24,0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34,0x00,0x00,0x43,0xa0,
+0x25,0xb0,0x02,0x3c,0x50,0x0c,0x42,0x34,0xff,0x00,0xe4,0x30,0x00,0x00,0x44,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,0x58,0x0c,0x42,0x34,
+0x00,0x00,0x44,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x3e,0x20,0x00,0x08,
+0x00,0x00,0x00,0x00,0x54,0xff,0x40,0x10,0x48,0x00,0x03,0x24,0x86,0x20,0x00,0x08,
+0x44,0x00,0x03,0x24,0xd5,0x02,0x83,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0xa3,0x00,
+0x7e,0x20,0x00,0x08,0x0b,0x28,0x62,0x00,0x25,0xb0,0x02,0x3c,0x00,0x08,0x42,0x34,
+0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x27,0x18,0x03,0x00,0x01,0x00,0x63,0x30,
+0x69,0xff,0x60,0x10,0x25,0xb0,0x02,0x3c,0x36,0x00,0x02,0x24,0xa9,0x20,0x00,0x08,
+0xd2,0x02,0xa2,0xa0,0xd3,0xff,0x40,0x10,0x48,0x00,0x03,0x24,0x19,0x21,0x00,0x08,
+0x44,0x00,0x03,0x24,0xd3,0x02,0x83,0x80,0x00,0x00,0x00,0x00,0xff,0x00,0x62,0x30,
+0x2a,0x10,0xe2,0x00,0x0e,0x21,0x00,0x08,0x0b,0x38,0x62,0x00,0x73,0xff,0x40,0x10,
+0x00,0x00,0x00,0x00,0xd6,0x02,0x83,0x90,0x00,0x00,0x00,0x00,0x00,0x16,0x03,0x00,
+0x03,0x16,0x02,0x00,0x02,0x00,0x42,0x24,0x0d,0x00,0x42,0x28,0x0b,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0xc2,0x20,0x00,0x08,0x0c,0x00,0x02,0x24,0x00,0x3e,0x02,0x00,
+0xed,0x20,0x00,0x08,0x03,0x3e,0x07,0x00,0x80,0x11,0x82,0x8c,0x2b,0x20,0x8b,0x01,
+0x02,0x11,0x02,0x00,0xe6,0x20,0x00,0x08,0x7f,0x00,0x47,0x30,0xc2,0x20,0x00,0x08,
+0x02,0x00,0x62,0x24,0xc0,0xff,0xbd,0x27,0x28,0x00,0xb4,0xaf,0x25,0xb0,0x14,0x3c,
+0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x3c,0x00,0xbf,0xaf,
+0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,
+0x20,0x00,0xb2,0xaf,0xd8,0x00,0x86,0x36,0x00,0x00,0xc3,0x90,0x02,0x80,0x02,0x3c,
+0x38,0x15,0x51,0x24,0x2a,0xb0,0x10,0x3c,0xa0,0xff,0x02,0x24,0x25,0x18,0x62,0x00,
+0x34,0x00,0x05,0x36,0xfe,0xff,0x02,0x24,0xbc,0x02,0x32,0x92,0x40,0x00,0x04,0x24,
+0x00,0x00,0xc3,0xa0,0x00,0x00,0xa2,0xa0,0x89,0x47,0x00,0x0c,0x00,0x96,0x12,0x00,
+0x21,0x98,0x40,0x00,0x8d,0x00,0x60,0x12,0x00,0x40,0x02,0x3c,0x08,0x00,0x63,0x8e,
+0xb0,0x03,0x82,0x36,0x25,0xb0,0x1e,0x3c,0x21,0x20,0x60,0x02,0x00,0x00,0x43,0xac,
+0xfb,0x44,0x00,0x0c,0x21,0xb8,0x20,0x02,0x42,0x00,0xd5,0x37,0x03,0x0c,0xd1,0x37,
+0x17,0x0e,0xd6,0x37,0x04,0x00,0x14,0x24,0x2a,0xb0,0x03,0x3c,0x06,0x00,0x63,0x34,
+0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,0x00,0xff,0x42,0x30,0x0a,0x00,0x40,0x18,
+0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c,0xfc,0x85,0x84,0x24,0x00,0x00,0x83,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,0x00,0xff,0x42,0x30,
+0xfc,0xff,0x40,0x1c,0x00,0x00,0x00,0x00,0x08,0x00,0x65,0x8e,0x20,0x10,0x06,0x3c,
+0x01,0x00,0x04,0x24,0x00,0xfe,0xc6,0x34,0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa4,0xaf,0x4d,0x01,0x00,0x0c,0x01,0x00,0x04,0x24,0x02,0x80,0x02,0x3c,
+0x00,0x86,0x42,0x24,0x00,0x00,0x45,0x8c,0x01,0x00,0x03,0x24,0x21,0x20,0x00,0x00,
+0x00,0x00,0xa3,0xa0,0xff,0xff,0x03,0x24,0x00,0x00,0xa3,0xa2,0x00,0x00,0x22,0x92,
+0x00,0x00,0x00,0x00,0xff,0x00,0x42,0x30,0x40,0x00,0x42,0x34,0x00,0x00,0x22,0xa2,
+0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x82,0x24,0x02,0x00,0x02,0x24,0x02,0x80,0x04,0x3c,0x00,0x00,0xa2,0xa0,
+0x38,0x15,0x83,0x24,0xc1,0x02,0x62,0x90,0x00,0x00,0xc4,0x92,0x21,0x28,0x00,0x00,
+0x00,0x00,0xc2,0xa2,0xff,0x00,0x90,0x30,0x01,0x00,0xa2,0x24,0xff,0x00,0x45,0x30,
+0x06,0x00,0xa3,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0xa2,0x24,0xef,0xff,0x02,0x24,
+0x64,0x00,0x04,0x24,0x00,0x00,0xa2,0xa2,0xda,0x18,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x22,0x92,0x21,0x20,0x00,0x00,0xbf,0x00,0x42,0x30,0x00,0x00,0x22,0xa2,
+0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x82,0x24,0xda,0x18,0x00,0x0c,0x84,0x03,0x04,0x24,0xf4,0x08,0xc2,0x37,
+0x00,0x00,0x43,0x8c,0x00,0x80,0x04,0x3c,0xdf,0x07,0x84,0x34,0x00,0x00,0xd0,0xa2,
+0x21,0x10,0x00,0x00,0x24,0x28,0x64,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x00,0x00,0xa0,0xa2,
+0x00,0x00,0x22,0x92,0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30,0x40,0x00,0x42,0x34,
+0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0xbe,0x02,0xe2,0x92,0x1f,0x00,0xa3,0x30,
+0x2b,0x10,0x62,0x00,0x0a,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0xbf,0x02,0xe2,0x92,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x43,0x00,0x05,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,
+0x01,0x00,0x02,0x3c,0x25,0x10,0x62,0x00,0x21,0x90,0x42,0x02,0x02,0x80,0x02,0x3c,
+0x96,0x3d,0x43,0x90,0x22,0x00,0x02,0x24,0x1c,0x00,0x62,0x10,0x92,0x00,0x02,0x24,
+0x1b,0x00,0x62,0x10,0x02,0x80,0x03,0x3c,0xff,0xff,0x94,0x26,0xda,0x18,0x00,0x0c,
+0xf4,0x01,0x04,0x24,0x89,0xff,0x81,0x06,0x2a,0xb0,0x03,0x3c,0x04,0x00,0x60,0x12,
+0x25,0xb0,0x02,0x3c,0xaa,0x47,0x00,0x0c,0x21,0x20,0x60,0x02,0x25,0xb0,0x02,0x3c,
+0xd8,0x02,0x42,0x34,0x00,0x00,0x52,0xac,0x21,0x10,0x40,0x02,0x3c,0x00,0xbf,0x8f,
+0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,
+0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,
+0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x02,0x80,0x03,0x3c,
+0x38,0x15,0x63,0x24,0xbe,0x02,0x62,0x90,0xc0,0x07,0xa3,0x30,0x82,0x19,0x03,0x00,
+0x2b,0x10,0x62,0x00,0xe0,0xff,0x40,0x10,0x02,0x80,0x04,0x3c,0x38,0x15,0x84,0x24,
+0xbf,0x02,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x43,0x00,0xda,0xff,0x40,0x10,
+0x00,0x12,0x03,0x00,0x10,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x02,0x22,0x00,0x08,
+0x21,0x90,0x42,0x02,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x0f,0x00,0x10,0x3c,
+0xff,0xff,0x05,0x36,0xf0,0xf8,0x06,0x34,0x15,0x00,0x04,0x24,0x1c,0x00,0xbf,0xaf,
+0x18,0x00,0xb2,0xaf,0x6a,0x44,0x00,0x0c,0x14,0x00,0xb1,0xaf,0xda,0x18,0x00,0x0c,
+0x64,0x00,0x04,0x24,0x02,0x80,0x12,0x3c,0xff,0xff,0x05,0x36,0x56,0x30,0x06,0x24,
+0x6a,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,0x38,0x15,0x51,0x26,0xda,0x18,0x00,0x0c,
+0x64,0x00,0x04,0x24,0x08,0x03,0x23,0x92,0x04,0x00,0x02,0x24,0x20,0x00,0x62,0x10,
+0x25,0xb0,0x02,0x3c,0x18,0x03,0x25,0x8e,0x25,0xb0,0x10,0x3c,0x46,0x52,0x00,0x0c,
+0x00,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e,0x46,0x52,0x00,0x0c,0x04,0x0e,0x04,0x36,
+0x1c,0x03,0x25,0x8e,0x46,0x52,0x00,0x0c,0x08,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e,
+0x46,0x52,0x00,0x0c,0x10,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e,0x46,0x52,0x00,0x0c,
+0x14,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e,0x46,0x52,0x00,0x0c,0x18,0x0e,0x04,0x36,
+0x18,0x03,0x25,0x8e,0x46,0x52,0x00,0x0c,0x1c,0x0e,0x04,0x36,0x38,0x15,0x43,0x26,
+0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x04,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x08,0x03,0x62,0xa0,
+0x00,0x0e,0x42,0x34,0x00,0x00,0x43,0x8c,0x18,0x03,0x25,0x8e,0x00,0x00,0x00,0x00,
+0xde,0xff,0x65,0x14,0x25,0xb0,0x10,0x3c,0x5c,0x22,0x00,0x08,0x38,0x15,0x43,0x26,
+0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,
+0xf0,0xf8,0x06,0x34,0x15,0x00,0x04,0x24,0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,
+0x6a,0x44,0x00,0x0c,0x14,0x00,0xb1,0xaf,0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,
+0xff,0xff,0x05,0x36,0x56,0x30,0x06,0x24,0x6a,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,
+0x02,0x80,0x10,0x3c,0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,0x38,0x15,0x02,0x26,
+0x08,0x03,0x46,0x90,0x25,0xb0,0x11,0x3c,0x10,0x10,0x12,0x3c,0x01,0x00,0x03,0x24,
+0x00,0x0e,0x24,0x36,0x1e,0x00,0xc3,0x10,0x10,0x10,0x45,0x36,0x46,0x52,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x04,0x0e,0x24,0x36,0x46,0x52,0x00,0x0c,0x10,0x10,0x45,0x36,
+0x08,0x0e,0x24,0x36,0x46,0x52,0x00,0x0c,0x10,0x10,0x05,0x24,0x10,0x0e,0x24,0x36,
+0x46,0x52,0x00,0x0c,0x10,0x10,0x45,0x36,0x14,0x0e,0x24,0x36,0x46,0x52,0x00,0x0c,
+0x10,0x10,0x45,0x36,0x18,0x0e,0x24,0x36,0x46,0x52,0x00,0x0c,0x10,0x10,0x45,0x36,
+0x1c,0x0e,0x24,0x36,0x46,0x52,0x00,0x0c,0x10,0x10,0x45,0x36,0x38,0x15,0x03,0x26,
+0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x01,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x08,0x03,0x62,0xa0,
+0x00,0x00,0x86,0x8c,0x00,0x00,0x00,0x00,0xe0,0xff,0xc5,0x14,0x38,0x15,0x03,0x26,
+0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x01,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x08,0x03,0x62,0xa0,
+0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x0f,0x00,0x11,0x3c,
+0x01,0x00,0x10,0x3c,0xff,0xff,0x25,0x36,0xf4,0x98,0x06,0x36,0x15,0x00,0x04,0x24,
+0x1c,0x00,0xbf,0xaf,0x6a,0x44,0x00,0x0c,0x18,0x00,0xb2,0xaf,0xda,0x18,0x00,0x0c,
+0x64,0x00,0x04,0x24,0x56,0x30,0x06,0x36,0xff,0xff,0x25,0x36,0x1a,0x00,0x04,0x24,
+0x6a,0x44,0x00,0x0c,0x02,0x80,0x11,0x3c,0x38,0x15,0x30,0x26,0xda,0x18,0x00,0x0c,
+0x64,0x00,0x04,0x24,0x08,0x03,0x02,0x92,0x25,0xb0,0x12,0x3c,0x08,0x00,0x40,0x14,
+0x08,0x0e,0x44,0x36,0x25,0xb0,0x02,0x3c,0x00,0x0e,0x42,0x34,0x00,0x00,0x45,0x8c,
+0xf0,0x02,0x03,0x8e,0x00,0x00,0x00,0x00,0x17,0x00,0xa3,0x10,0x38,0x15,0x22,0x26,
+0xec,0x02,0x05,0x8e,0x46,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,0xf0,0x02,0x05,0x8e,
+0x46,0x52,0x00,0x0c,0x00,0x0e,0x44,0x36,0xf4,0x02,0x05,0x8e,0x46,0x52,0x00,0x0c,
+0x04,0x0e,0x44,0x36,0xf8,0x02,0x05,0x8e,0x46,0x52,0x00,0x0c,0x10,0x0e,0x44,0x36,
+0xfc,0x02,0x05,0x8e,0x46,0x52,0x00,0x0c,0x14,0x0e,0x44,0x36,0x00,0x03,0x05,0x8e,
+0x46,0x52,0x00,0x0c,0x18,0x0e,0x44,0x36,0x04,0x03,0x05,0x8e,0x46,0x52,0x00,0x0c,
+0x1c,0x0e,0x44,0x36,0x38,0x15,0x22,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,
+0x08,0x03,0x40,0xa0,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,
+0x0f,0x00,0x11,0x3c,0x01,0x00,0x10,0x3c,0xff,0xff,0x25,0x36,0xf4,0x98,0x06,0x36,
+0x15,0x00,0x04,0x24,0x1c,0x00,0xbf,0xaf,0x6a,0x44,0x00,0x0c,0x18,0x00,0xb2,0xaf,
+0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,0x02,0x80,0x12,0x3c,0xff,0xff,0x25,0x36,
+0x56,0x30,0x06,0x36,0x6a,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,0x38,0x15,0x51,0x26,
+0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,0x08,0x03,0x23,0x92,0x03,0x00,0x02,0x24,
+0x2c,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c,0xf0,0x02,0x25,0x8e,0x25,0xb0,0x10,0x3c,
+0x46,0x52,0x00,0x0c,0x00,0x0e,0x04,0x36,0xf4,0x02,0x25,0x8e,0x46,0x52,0x00,0x0c,
+0x04,0x0e,0x04,0x36,0xf8,0x02,0x25,0x8e,0x46,0x52,0x00,0x0c,0x10,0x0e,0x04,0x36,
+0xfc,0x02,0x25,0x8e,0x46,0x52,0x00,0x0c,0x14,0x0e,0x04,0x36,0x00,0x03,0x25,0x8e,
+0x46,0x52,0x00,0x0c,0x18,0x0e,0x04,0x36,0x04,0x03,0x25,0x8e,0x46,0x52,0x00,0x0c,
+0x1c,0x0e,0x04,0x36,0x0c,0x03,0x24,0x8e,0xec,0x02,0x22,0x8e,0x00,0x00,0x00,0x00,
+0x21,0x28,0x44,0x00,0x00,0xff,0xa3,0x30,0xff,0xff,0x02,0x3c,0xff,0x00,0x42,0x34,
+0x01,0x3f,0x63,0x2c,0x24,0x10,0xa2,0x00,0x0c,0x00,0x60,0x10,0x08,0x0e,0x04,0x36,
+0x46,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,0x38,0x15,0x43,0x26,0x1c,0x00,0xbf,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x03,0x00,0x02,0x24,
+0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x08,0x03,0x62,0xa0,0x24,0x23,0x00,0x08,
+0x00,0x3f,0x45,0x34,0x00,0x0e,0x42,0x34,0x00,0x00,0x43,0x8c,0xf0,0x02,0x25,0x8e,
+0x00,0x00,0x00,0x00,0xd2,0xff,0x65,0x14,0x25,0xb0,0x10,0x3c,0x27,0x23,0x00,0x08,
+0x38,0x15,0x43,0x26,0xd8,0xff,0xbd,0x27,0x18,0x00,0xb2,0xaf,0x02,0x80,0x12,0x3c,
+0x24,0x00,0xbf,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,
+0x10,0x00,0xb0,0xaf,0x38,0x15,0x44,0x26,0x90,0x11,0x82,0x8c,0x06,0x00,0x03,0x24,
+0x07,0x00,0x42,0x30,0xa3,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0x00,0x24,0x82,0x8c,
+0xfc,0x23,0x83,0x8c,0x02,0x11,0x02,0x00,0x02,0x19,0x03,0x00,0x7f,0x00,0x63,0x30,
+0x7f,0x00,0x42,0x30,0x2b,0x20,0x43,0x00,0x21,0xa0,0x60,0x00,0x0a,0xa0,0x44,0x00,
+0x38,0x15,0x42,0x8e,0x38,0x15,0x44,0x26,0x40,0x00,0x03,0x24,0xcc,0x00,0x42,0x30,
+0x08,0x03,0x93,0x90,0x8c,0x00,0x43,0x10,0x01,0x00,0x02,0x24,0x25,0xb0,0x08,0x3c,
+0x4c,0x00,0x03,0x35,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,
+0x07,0x00,0x40,0x10,0x38,0x15,0x45,0x26,0x38,0x15,0x42,0x92,0x00,0x00,0x00,0x00,
+0x82,0x11,0x02,0x00,0x2f,0x00,0x40,0x10,0x00,0x0e,0x05,0x35,0x38,0x15,0x45,0x26,
+0x08,0x03,0xa2,0x8c,0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0x0f,0x00,0x40,0x14,
+0x38,0x15,0x42,0x26,0x25,0xb0,0x02,0x3c,0x84,0x01,0x42,0x34,0x00,0x00,0x44,0x8c,
+0x0d,0x00,0x03,0x24,0x80,0x00,0x83,0x10,0x3e,0x00,0x02,0x24,0x4a,0x00,0x03,0x24,
+0x23,0x03,0xa2,0xa0,0x20,0x03,0xa3,0xa0,0x45,0x00,0x02,0x24,0x43,0x00,0x03,0x24,
+0x21,0x03,0xa2,0xa0,0x22,0x03,0xa3,0xa0,0x38,0x15,0x42,0x26,0x80,0x11,0x43,0x8c,
+0x25,0xb0,0x02,0x3c,0x60,0x0c,0x42,0x34,0x02,0x19,0x03,0x00,0xff,0x00,0x63,0x30,
+0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x38,0x15,0x45,0x8e,
+0x44,0x00,0x02,0x24,0xcc,0x00,0xa3,0x30,0x37,0x00,0x62,0x10,0x38,0x15,0x44,0x26,
+0x24,0x00,0xbf,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x28,0x00,0xbd,0x27,0x00,0x00,0xa2,0x8c,0x00,0x00,0x00,0x00,0x63,0x00,0x40,0x10,
+0x10,0x0e,0x07,0x35,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x08,0x0e,0x02,0x35,0x04,0x0e,0x03,0x35,0x00,0x00,0x44,0x8c,
+0x00,0x00,0xa5,0x8c,0x00,0x00,0x66,0x8c,0x02,0x80,0x02,0x3c,0x38,0x15,0x49,0x24,
+0xec,0x02,0x24,0xad,0xf0,0x02,0x25,0xad,0xf4,0x02,0x26,0xad,0x14,0x0e,0x04,0x35,
+0x02,0x80,0x02,0x3c,0x18,0x0e,0x05,0x35,0x00,0x00,0xe7,0x8c,0x1c,0x0e,0x06,0x35,
+0x00,0x00,0x83,0x8c,0x96,0x3d,0x4a,0x90,0x00,0x00,0xa2,0x8c,0x00,0x00,0xc4,0x8c,
+0xf8,0x02,0x27,0xad,0x00,0x03,0x22,0xad,0x22,0x00,0x02,0x24,0xfc,0x02,0x23,0xad,
+0x5f,0x00,0x42,0x11,0x04,0x03,0x24,0xad,0x92,0x00,0x02,0x24,0x5d,0x00,0x42,0x11,
+0x0d,0x08,0x02,0x35,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x38,0x15,0x42,0x8e,0x3f,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0x40,0x00,0x42,0x34,
+0x63,0x23,0x00,0x08,0x38,0x15,0x42,0xae,0xfc,0x23,0x83,0x8c,0xff,0xff,0x02,0x34,
+0xc7,0xff,0x62,0x10,0x02,0x11,0x05,0x00,0x03,0x00,0x45,0x30,0x01,0x00,0x03,0x24,
+0xc3,0xff,0xa3,0x14,0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90,
+0x00,0x00,0x00,0x00,0x03,0x00,0x63,0x30,0xbd,0xff,0x60,0x10,0x03,0x00,0x02,0x24,
+0x71,0x00,0x62,0x12,0x04,0x00,0x62,0x2a,0x53,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x76,0x00,0x60,0x12,0x00,0x00,0x00,0x00,0xb5,0xff,0x65,0x16,0x00,0x00,0x00,0x00,
+0x20,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0x62,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x23,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00,
+0x54,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0xb0,0x22,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x88,0x23,0x00,0x08,0x00,0x00,0x00,0x00,0x1b,0x00,0x62,0x12,0x04,0x00,0x02,0x24,
+0x19,0x00,0x62,0x12,0x38,0x15,0x43,0x26,0xff,0xff,0x02,0x24,0x57,0x23,0x00,0x08,
+0x08,0x03,0x62,0xa0,0x80,0x11,0x82,0x8c,0x00,0x00,0x00,0x00,0x02,0x11,0x02,0x00,
+0x50,0x23,0x00,0x08,0x7f,0x00,0x54,0x30,0x3b,0x00,0x02,0x24,0x46,0x00,0x03,0x24,
+0x23,0x03,0xa2,0xa0,0x20,0x03,0xa3,0xa0,0x41,0x00,0x02,0x24,0x40,0x00,0x03,0x24,
+0x21,0x03,0xa2,0xa0,0x76,0x23,0x00,0x08,0x22,0x03,0xa3,0xa0,0x00,0x00,0xe3,0x8c,
+0x3f,0x3f,0x02,0x3c,0x3f,0x3f,0x42,0x34,0x9a,0xff,0x62,0x14,0x00,0x00,0x00,0x00,
+0x64,0x23,0x00,0x08,0x38,0x15,0x45,0x26,0x0f,0x00,0x10,0x3c,0x01,0x00,0x11,0x3c,
+0xff,0xff,0x05,0x36,0xf4,0x98,0x26,0x36,0x6a,0x44,0x00,0x0c,0x15,0x00,0x04,0x24,
+0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,0xff,0xff,0x05,0x36,0x56,0x30,0x26,0x36,
+0x6a,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x38,0x15,0x43,0x26,0xff,0xff,0x02,0x24,0x57,0x23,0x00,0x08,0x08,0x03,0x62,0xa0,
+0x0d,0x08,0x02,0x35,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x0f,0x00,0x63,0x30,
+0x08,0x00,0x62,0x2c,0x0f,0x00,0x63,0x38,0x9e,0xff,0x40,0x14,0x01,0x00,0x65,0x24,
+0x00,0x16,0x05,0x00,0x00,0x24,0x05,0x00,0x00,0x1a,0x05,0x00,0x25,0x10,0x44,0x00,
+0x25,0x10,0x43,0x00,0x25,0x10,0x45,0x00,0x25,0x18,0x65,0x00,0x1c,0x03,0x23,0xad,
+0xb5,0x23,0x00,0x08,0x18,0x03,0x22,0xad,0x04,0x00,0x02,0x24,0x11,0x00,0x62,0x12,
+0xff,0x00,0x02,0x24,0x62,0xff,0x62,0x16,0x00,0x00,0x00,0x00,0x22,0x03,0x82,0x90,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0x21,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x20,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0x0a,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x6c,0x22,0x00,0x0c,0x00,0x00,0x00,0x00,0x88,0x23,0x00,0x08,
+0x00,0x00,0x00,0x00,0x21,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00,
+0xf8,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x2d,0x22,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x88,0x23,0x00,0x08,0x00,0x00,0x00,0x00,0x24,0x03,0x82,0x90,0x00,0x00,0x00,0x00,
+0x2b,0x10,0x82,0x02,0x9c,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0xed,0x22,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x88,0x23,0x00,0x08,0x00,0x00,0x00,0x00,0x22,0x03,0x82,0x90,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0xe6,0xff,0x40,0x10,0x00,0x00,0x00,0x00,
+0x25,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00,0x8e,0xff,0x40,0x14,
+0x00,0x00,0x00,0x00,0xed,0x22,0x00,0x0c,0x00,0x00,0x00,0x00,0x88,0x23,0x00,0x08,
+0x00,0x00,0x00,0x00,0x02,0x80,0x08,0x3c,0x38,0x15,0x05,0x25,0x80,0x11,0xa4,0x8c,
+0xea,0x02,0xa3,0x90,0x02,0x11,0x04,0x00,0x26,0x00,0x60,0x14,0x7f,0x00,0x46,0x30,
+0x25,0xb0,0x07,0x3c,0x4c,0x00,0xe2,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,
+0x20,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x34,0x1d,0x00,0x82,0x10,
+0x00,0x00,0x00,0x00,0x00,0x08,0xe3,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,
+0x01,0x00,0x42,0x30,0x19,0x00,0x40,0x10,0x4b,0x00,0xc2,0x2c,0x3e,0x00,0x40,0x10,
+0x01,0x00,0x04,0x24,0xd8,0xff,0xc2,0x24,0x1e,0x00,0x42,0x2c,0x49,0x00,0x40,0x10,
+0x23,0x00,0xc2,0x2c,0x38,0x15,0x04,0x25,0xd7,0x02,0x82,0x90,0x00,0x00,0x00,0x00,
+0x44,0x00,0x40,0x10,0x23,0x00,0xc2,0x2c,0x25,0xb0,0x02,0x3c,0x87,0x0c,0x42,0x34,
+0x20,0x00,0x03,0x24,0x00,0x00,0x43,0xa0,0xd7,0x02,0x80,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x17,0x00,0x40,0x10,
+0x01,0x00,0x04,0x24,0xd8,0xff,0xc2,0x24,0x1e,0x00,0x42,0x2c,0x44,0x00,0x40,0x10,
+0x23,0x00,0xc2,0x2c,0x38,0x15,0x04,0x25,0xd7,0x02,0x82,0x90,0x00,0x00,0x00,0x00,
+0x3f,0x00,0x40,0x10,0x23,0x00,0xc2,0x2c,0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34,
+0x44,0x00,0x03,0x24,0x00,0x00,0x43,0xa0,0xd7,0x02,0x80,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xd7,0x02,0xa2,0x90,
+0x00,0x00,0x00,0x00,0xe7,0xff,0x44,0x10,0x43,0x00,0x02,0x24,0x30,0x0c,0xe3,0x34,
+0xd7,0x02,0xa4,0xa0,0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xd7,0x02,0xa2,0x90,0x00,0x00,0x00,0x00,
+0xc0,0xff,0x44,0x10,0x10,0x00,0x02,0x24,0x87,0x0c,0xe3,0x34,0xd7,0x02,0xa4,0xa0,
+0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0xc7,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x38,0x15,0x04,0x25,
+0xd7,0x02,0x82,0x90,0x02,0x00,0x03,0x24,0xc2,0xff,0x43,0x10,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x02,0x3c,0x87,0x0c,0x42,0x34,0xd7,0x02,0x83,0xa0,0x00,0x00,0x40,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0xb4,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x38,0x15,0x04,0x25,0xd7,0x02,0x82,0x90,
+0x02,0x00,0x03,0x24,0xaf,0xff,0x43,0x10,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,
+0xd7,0x02,0x83,0xa0,0x30,0x0c,0x42,0x34,0x42,0x00,0x03,0x24,0x00,0x00,0x43,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0xff,0xff,0x8d,0x30,0x00,0x60,0x0f,0x40,0x01,0x00,0xe1,0x35,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x02,0x80,0x06,0x3c,0x38,0x15,0xce,0x24,0x82,0x0b,0xc2,0x91,
+0x00,0x00,0x00,0x00,0x1d,0x00,0x40,0x10,0x25,0xb0,0x03,0x3c,0x38,0x02,0x64,0x34,
+0x80,0xff,0x02,0x24,0x00,0x00,0x82,0xa0,0x34,0x02,0x6a,0x34,0xd2,0x01,0x65,0x34,
+0xd6,0x01,0x66,0x34,0xda,0x01,0x67,0x34,0xde,0x01,0x63,0x34,0x00,0x00,0xa8,0x94,
+0x00,0x00,0xc9,0x94,0x00,0x00,0xeb,0x94,0x00,0x00,0x6c,0x94,0x00,0x00,0x44,0x95,
+0xb0,0xfe,0xa2,0x25,0xff,0xff,0x4d,0x30,0x80,0x0b,0xc4,0xa5,0x00,0x00,0xa0,0xa4,
+0x78,0x0b,0xc8,0xa5,0x00,0x00,0xc0,0xa4,0x7a,0x0b,0xc9,0xa5,0x00,0x00,0xe0,0xa4,
+0x7c,0x0b,0xcb,0xa5,0x00,0x00,0x60,0xa4,0x00,0x00,0x4d,0xa5,0x7e,0x0b,0xcc,0xa5,
+0x00,0x60,0x8f,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x2a,0xb0,0x02,0x3c,
+0x0a,0x00,0x45,0x34,0x63,0x00,0x03,0x24,0xff,0xff,0x04,0x34,0x00,0x00,0xa2,0x90,
+0x00,0x00,0x00,0x00,0x0a,0x00,0x40,0x10,0x38,0x15,0xc2,0x24,0x64,0x00,0x02,0x24,
+0xff,0xff,0x42,0x24,0xff,0xff,0x42,0x30,0xfe,0xff,0x40,0x14,0xff,0xff,0x42,0x24,
+0xff,0xff,0x62,0x24,0xff,0xff,0x43,0x30,0xf4,0xff,0x64,0x14,0x38,0x15,0xc2,0x24,
+0x80,0x0b,0x48,0x94,0x7e,0x0b,0x47,0x94,0x78,0x0b,0x49,0x94,0x7a,0x0b,0x4a,0x94,
+0x7c,0x0b,0x4b,0x94,0x25,0xb0,0x03,0x3c,0x38,0x02,0x6c,0x34,0x34,0x02,0x62,0x34,
+0xd2,0x01,0x64,0x34,0xd6,0x01,0x65,0x34,0xda,0x01,0x66,0x34,0xde,0x01,0x63,0x34,
+0x00,0x00,0x48,0xa4,0x00,0x00,0x89,0xa4,0x00,0x00,0xaa,0xa4,0x00,0x00,0xcb,0xa4,
+0x00,0x00,0x67,0xa4,0x00,0x00,0x80,0xa1,0x00,0x60,0x8f,0x40,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x25,0xb0,0x04,0x3c,0x08,0x00,0x83,0x34,0x00,0x00,0x62,0x94,
+0x00,0x00,0x00,0x00,0x00,0x14,0x02,0x00,0x03,0x14,0x02,0x00,0x1a,0x00,0x40,0x04,
+0x60,0x02,0x85,0x34,0x00,0x00,0xa3,0x90,0x05,0x00,0x02,0x24,0x00,0x03,0x8b,0x34,
+0xff,0x00,0x63,0x30,0x04,0x03,0x8c,0x34,0xbd,0x00,0x8a,0x34,0x03,0x00,0x86,0x34,
+0x40,0x00,0x85,0x34,0xfc,0x77,0x09,0x24,0x11,0x00,0x62,0x10,0x23,0x00,0x84,0x34,
+0x00,0x00,0xc2,0x90,0xfe,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0x00,0x00,0xc2,0xa0,
+0x22,0x00,0x02,0x24,0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad,0x00,0x00,0x82,0xa0,
+0xfc,0x37,0x02,0x24,0x00,0x00,0xa9,0xa4,0x00,0x00,0xa2,0xa4,0x00,0x00,0xa9,0xa4,
+0x00,0x00,0xa0,0xa4,0x00,0x00,0xa0,0xa4,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad,0x00,0x00,0x42,0x91,0x00,0x00,0x00,0x00,
+0x08,0x00,0x42,0x34,0x00,0x00,0x42,0xa1,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xd0,0xff,0xbd,0x27,0x1c,0x00,0xb1,0xaf,0x2c,0x00,0xbf,0xaf,0x28,0x00,0xb4,0xaf,
+0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x18,0x00,0xb0,0xaf,0xff,0xff,0x11,0x24,
+0x02,0x80,0x13,0x3c,0x41,0xb0,0x02,0x3c,0x38,0x15,0x66,0x26,0x04,0x00,0x42,0x34,
+0x00,0x00,0x47,0x8c,0x0c,0x0b,0xc5,0x8c,0x02,0x80,0x03,0x3c,0x9e,0x3d,0x64,0x90,
+0x08,0x0b,0xc8,0x8c,0x02,0x80,0x02,0x3c,0xc0,0x3d,0x49,0x90,0x25,0xb0,0x0a,0x3c,
+0x25,0x90,0xa7,0x00,0xb0,0x03,0x42,0x35,0x00,0x00,0x52,0xac,0x00,0x24,0x04,0x00,
+0x00,0x00,0x48,0xac,0x84,0x02,0x43,0x35,0x8c,0x02,0x45,0x35,0x01,0x00,0x02,0x24,
+0x00,0x00,0x72,0xac,0x00,0x00,0xa4,0xac,0x8d,0x04,0x22,0x11,0x0c,0x0b,0xd2,0xac,
+0x38,0x15,0x70,0x26,0x08,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x24,0x10,0x52,0x00,
+0x01,0x00,0x42,0x30,0x31,0x00,0x40,0x10,0x02,0x80,0x14,0x3c,0x25,0xb0,0x0b,0x3c,
+0x04,0x00,0x63,0x35,0x00,0x00,0x6a,0x8c,0x40,0x00,0x02,0x3c,0x24,0x10,0x42,0x01,
+0x70,0x04,0x40,0x14,0x01,0x00,0x03,0x24,0x92,0x3d,0x82,0x92,0x00,0x00,0x00,0x00,
+0x0f,0x00,0x42,0x30,0xcd,0x04,0x43,0x10,0x20,0xbd,0x02,0x3c,0xec,0x02,0x65,0x35,
+0x4d,0x00,0x68,0x35,0xf1,0x02,0x69,0x35,0x08,0x00,0x07,0x24,0x78,0x02,0x42,0x34,
+0x00,0x00,0x43,0xa4,0x00,0x00,0x00,0xa1,0x00,0x00,0x27,0xa1,0x00,0x00,0xa0,0xac,
+0x00,0x00,0xa2,0x8c,0xff,0x00,0x03,0x3c,0x80,0x00,0x04,0x3c,0xff,0x00,0x4a,0x30,
+0x25,0x50,0x43,0x01,0x24,0x20,0x44,0x01,0xf2,0x02,0x66,0x35,0x0a,0x00,0x6a,0x35,
+0x80,0xff,0x02,0x24,0x00,0x00,0x00,0xa1,0x00,0x00,0x27,0xa1,0x00,0x00,0xa3,0xac,
+0x00,0x00,0xa3,0xac,0x00,0x00,0xc0,0xa0,0x00,0x00,0x42,0xa1,0x04,0x00,0x80,0x10,
+0x02,0x00,0x65,0x35,0x84,0xff,0x02,0x24,0x00,0x00,0x42,0xa1,0x02,0x00,0x65,0x35,
+0x00,0x00,0xa3,0x94,0x0c,0x0b,0x04,0x8e,0xff,0xbf,0x02,0x24,0x24,0x18,0x62,0x00,
+0x01,0x00,0x84,0x38,0x00,0x00,0xa3,0xa4,0x0c,0x0b,0x04,0xae,0x38,0x15,0x66,0x26,
+0x08,0x0b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x24,0x28,0x52,0x00,0x04,0x00,0xa3,0x30,
+0x09,0x00,0x60,0x10,0x08,0x00,0xa2,0x30,0x0c,0x0b,0xc2,0x8c,0x25,0xb0,0x03,0x3c,
+0x04,0x00,0x04,0x24,0x04,0x00,0x42,0x38,0xb0,0x03,0x63,0x34,0x00,0x00,0x64,0xac,
+0x0c,0x0b,0xc2,0xac,0x08,0x00,0xa2,0x30,0x06,0x00,0x40,0x10,0x10,0x00,0xa2,0x30,
+0x0c,0x0b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x38,0x0c,0x0b,0xc2,0xac,
+0x10,0x00,0xa2,0x30,0x06,0x00,0x40,0x10,0x20,0x00,0xa2,0x30,0x0c,0x0b,0xc2,0x8c,
+0x00,0x00,0x00,0x00,0x10,0x00,0x42,0x38,0x0c,0x0b,0xc2,0xac,0x20,0x00,0xa2,0x30,
+0x06,0x00,0x40,0x10,0x40,0x00,0xa2,0x30,0x0c,0x0b,0xc2,0x8c,0x00,0x00,0x00,0x00,
+0x20,0x00,0x42,0x38,0x0c,0x0b,0xc2,0xac,0x40,0x00,0xa2,0x30,0x06,0x00,0x40,0x10,
+0x80,0x00,0xa2,0x30,0x0c,0x0b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x38,
+0x0c,0x0b,0xc2,0xac,0x80,0x00,0xa2,0x30,0x06,0x00,0x40,0x10,0x00,0x01,0xa2,0x30,
+0x0c,0x0b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x80,0x00,0x42,0x38,0x0c,0x0b,0xc2,0xac,
+0x00,0x01,0xa2,0x30,0x06,0x00,0x40,0x10,0x00,0x02,0xa2,0x30,0x0c,0x0b,0xc2,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x01,0x42,0x38,0x0c,0x0b,0xc2,0xac,0x00,0x02,0xa2,0x30,
+0x06,0x00,0x40,0x10,0x00,0x04,0xa2,0x30,0x0c,0x0b,0xc2,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x02,0x42,0x38,0x0c,0x0b,0xc2,0xac,0x00,0x04,0xa2,0x30,0x05,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x0c,0x0b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x00,0x04,0x42,0x38,
+0x0c,0x0b,0xc2,0xac,0x00,0x08,0xa2,0x30,0x36,0x00,0x40,0x10,0x2a,0xb0,0x03,0x3c,
+0x00,0x00,0x6a,0x8c,0xff,0x00,0x02,0x24,0xff,0x00,0x44,0x31,0x2c,0x00,0x82,0x10,
+0x00,0x80,0x42,0x31,0x17,0x04,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,
+0x24,0x10,0x42,0x01,0x0b,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x74,0x24,0xc2,0x90,
+0x20,0xb0,0x03,0x3c,0x00,0x12,0x02,0x00,0x21,0x10,0x43,0x00,0x0c,0x00,0x4a,0x8c,
+0x25,0xb0,0x03,0x3c,0xb0,0x03,0x63,0x34,0x00,0x00,0x6a,0xac,0xff,0x00,0x44,0x31,
+0xff,0x00,0x02,0x24,0x1a,0x00,0x82,0x10,0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31,
+0x2c,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,
+0x21,0x30,0x60,0x00,0xc0,0x24,0x03,0xae,0x21,0x20,0x00,0x00,0x74,0x24,0x0a,0xa2,
+0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x08,0x0b,0x05,0x8e,
+0x02,0x80,0x06,0x3c,0x84,0x3e,0xc4,0x8c,0xff,0xc7,0x02,0x24,0x24,0x28,0xa2,0x00,
+0x25,0xb0,0x02,0x3c,0x04,0x00,0x84,0x34,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,
+0x00,0x00,0x44,0xac,0x00,0x00,0x65,0xac,0x84,0x3e,0xc4,0xac,0x08,0x0b,0x05,0xae,
+0x38,0x15,0x63,0x26,0x0c,0x0b,0x62,0x8c,0x00,0x00,0x00,0x00,0x00,0x08,0x42,0x38,
+0x0c,0x0b,0x62,0xac,0x38,0x15,0x65,0x26,0x08,0x0b,0xa2,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x10,0x52,0x00,0x00,0x10,0x42,0x30,0x38,0x00,0x40,0x10,0x2a,0xb0,0x02,0x3c,
+0x08,0x00,0x43,0x34,0x00,0x00,0x6a,0x8c,0xff,0x00,0x02,0x24,0xff,0x00,0x44,0x31,
+0x2c,0x00,0x82,0x10,0x00,0x80,0x42,0x31,0xdd,0x03,0x40,0x14,0x00,0x80,0x02,0x3c,
+0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x0b,0x00,0x40,0x10,0xff,0x00,0x02,0x24,
+0x7c,0x24,0xa2,0x90,0x20,0xb0,0x03,0x3c,0x00,0x12,0x02,0x00,0x21,0x10,0x43,0x00,
+0x0c,0x00,0x4a,0x8c,0x25,0xb0,0x03,0x3c,0xb0,0x03,0x63,0x34,0x00,0x00,0x6a,0xac,
+0xff,0x00,0x44,0x31,0xff,0x00,0x02,0x24,0x1a,0x00,0x82,0x10,0x38,0x15,0x70,0x26,
+0xff,0x00,0x43,0x31,0x44,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0xd8,0x24,0x03,0xae,0x01,0x00,0x04,0x24,
+0x7c,0x24,0x0a,0xa2,0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x08,0x0b,0x05,0x8e,0x02,0x80,0x06,0x3c,0x84,0x3e,0xc4,0x8c,0xff,0xc7,0x02,0x24,
+0x24,0x28,0xa2,0x00,0x25,0xb0,0x02,0x3c,0x10,0x00,0x84,0x34,0x80,0x03,0x42,0x34,
+0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x65,0xac,0x84,0x3e,0xc4,0xac,
+0x08,0x0b,0x05,0xae,0x38,0x15,0x63,0x26,0x0c,0x0b,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x10,0x42,0x38,0x0c,0x0b,0x62,0xac,0x38,0x15,0x65,0x26,0x08,0x0b,0xa2,0x8c,
+0x00,0x00,0x00,0x00,0x24,0x10,0x52,0x00,0x00,0x20,0x42,0x30,0x37,0x00,0x40,0x10,
+0x2a,0xb0,0x02,0x3c,0x04,0x00,0x43,0x34,0x00,0x00,0x6a,0x8c,0xff,0x00,0x02,0x24,
+0xff,0x00,0x44,0x31,0xc1,0x03,0x82,0x10,0x00,0x80,0x42,0x31,0xa3,0x03,0x40,0x14,
+0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x0b,0x00,0x40,0x10,
+0xff,0x00,0x02,0x24,0x78,0x24,0xa2,0x90,0x20,0xb0,0x03,0x3c,0x00,0x12,0x02,0x00,
+0x21,0x10,0x43,0x00,0x0c,0x00,0x4a,0x8c,0x25,0xb0,0x03,0x3c,0xb0,0x03,0x63,0x34,
+0x00,0x00,0x6a,0xac,0xff,0x00,0x44,0x31,0xff,0x00,0x02,0x24,0x1a,0x00,0x82,0x10,
+0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x38,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,
+0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0xcc,0x24,0x03,0xae,
+0x01,0x00,0x04,0x24,0x78,0x24,0x0a,0xa2,0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa0,0xaf,0x08,0x0b,0x05,0x8e,0x02,0x80,0x06,0x3c,0x84,0x3e,0xc4,0x8c,
+0xff,0xc7,0x02,0x24,0x24,0x28,0xa2,0x00,0x25,0xb0,0x02,0x3c,0x20,0x00,0x84,0x34,
+0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x65,0xac,
+0x84,0x3e,0xc4,0xac,0x08,0x0b,0x05,0xae,0x38,0x15,0x63,0x26,0x0c,0x0b,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x20,0x42,0x38,0x0c,0x0b,0x62,0xac,0x38,0x15,0x65,0x26,
+0x08,0x0b,0xa2,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x52,0x00,0x00,0x80,0x42,0x30,
+0x59,0x00,0x40,0x10,0x2a,0xb0,0x06,0x3c,0x0c,0x00,0xc3,0x34,0x00,0x00,0x6a,0x8c,
+0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0x75,0x03,0x87,0x10,0x00,0x80,0x42,0x31,
+0x24,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,
+0x22,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x40,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,
+0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,0x0f,0x00,0x87,0x10,0x38,0x15,0x62,0x26,
+0x54,0x24,0xa4,0xa0,0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,
+0x09,0x00,0x83,0x10,0x38,0x15,0x62,0x26,0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,
+0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,
+0x54,0x24,0xe3,0xa0,0x38,0x15,0x62,0x26,0x54,0x24,0x43,0x90,0x20,0xb0,0x02,0x3c,
+0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,
+0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,0xdb,0x26,0x00,0x08,
+0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,0x24,0x00,0x82,0x10,
+0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0xfc,0x24,0x05,0x8e,0x20,0x10,0x02,0x3c,
+0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0x54,0x24,0x0a,0xa2,
+0x90,0x24,0x03,0xae,0x03,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa0,0xaf,0x02,0x80,0x0a,0x3c,0x94,0x3e,0x47,0x91,0x02,0x80,0x09,0x3c,
+0x84,0x3e,0x25,0x8d,0x08,0x0b,0x06,0x8e,0x01,0x00,0x08,0x3c,0x80,0xff,0x02,0x24,
+0x25,0x38,0xe2,0x00,0x00,0x80,0x03,0x35,0x80,0x00,0xa5,0x34,0x27,0x18,0x03,0x00,
+0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c,0x24,0x30,0xc3,0x00,0x25,0x20,0x85,0x00,
+0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x27,0x88,0x08,0x00,
+0x00,0x00,0x66,0xac,0x84,0x3e,0x25,0xad,0x94,0x3e,0x47,0xa1,0x08,0x0b,0x06,0xae,
+0x38,0x15,0x63,0x26,0x0c,0x0b,0x62,0x8c,0x00,0x00,0x00,0x00,0x00,0x80,0x42,0x38,
+0x0c,0x0b,0x62,0xac,0x38,0x15,0x65,0x26,0x08,0x0b,0xa2,0x8c,0x01,0x00,0x03,0x3c,
+0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00,0x24,0x10,0x43,0x00,0x56,0x00,0x40,0x10,
+0x2a,0xb0,0x06,0x3c,0x10,0x00,0xc3,0x34,0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,
+0xff,0x00,0x44,0x31,0x20,0x03,0x87,0x10,0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31,
+0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,
+0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x41,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,
+0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10,0x38,0x15,0x62,0x26,
+0x58,0x24,0xa4,0xa0,0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,
+0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,
+0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,0x58,0x24,0xe3,0xa0,
+0x38,0x15,0x62,0x26,0x58,0x24,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,
+0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,0x3a,0x27,0x00,0x08,0xff,0x00,0x02,0x24,
+0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,0x22,0x00,0x82,0x10,0x38,0x15,0x70,0x26,
+0xff,0x00,0x43,0x31,0xfc,0x24,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0x90,0x24,0x03,0xae,0x03,0x00,0x04,0x24,
+0x40,0x00,0x07,0x24,0x58,0x24,0x0a,0xa2,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x02,0x80,0x09,0x3c,0x94,0x3e,0x27,0x91,0x02,0x80,0x08,0x3c,0x84,0x3e,0x05,0x8d,
+0x08,0x0b,0x06,0x8e,0x01,0x00,0x02,0x3c,0x00,0x80,0x42,0x34,0x40,0x00,0xe7,0x34,
+0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x80,0x00,0xa5,0x34,0x00,0x26,0x07,0x00,
+0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,
+0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac,0x84,0x3e,0x05,0xad,0x94,0x3e,0x27,0xa1,
+0x08,0x0b,0x06,0xae,0x38,0x15,0x62,0x26,0x0c,0x0b,0x43,0x8c,0x01,0x00,0x04,0x3c,
+0x26,0x18,0x64,0x00,0x0c,0x0b,0x43,0xac,0x38,0x15,0x65,0x26,0x08,0x0b,0xa2,0x8c,
+0x02,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10,
+0x2a,0xb0,0x06,0x3c,0x14,0x00,0xc3,0x34,0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,
+0xff,0x00,0x44,0x31,0xe4,0x02,0x87,0x10,0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31,
+0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,
+0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x42,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,
+0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10,0x38,0x15,0x62,0x26,
+0x5c,0x24,0xa4,0xa0,0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,
+0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,
+0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,0x5c,0x24,0xe3,0xa0,
+0x38,0x15,0x62,0x26,0x5c,0x24,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,
+0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,0x96,0x27,0x00,0x08,0xff,0x00,0x02,0x24,
+0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,0x25,0x00,0x82,0x10,0x38,0x15,0x70,0x26,
+0xff,0x00,0x43,0x31,0x08,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0x5c,0x24,0x0a,0xa2,0x9c,0x24,0x03,0xae,
+0x04,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x02,0x80,0x0a,0x3c,0x94,0x3e,0x47,0x91,0x02,0x80,0x09,0x3c,0x84,0x3e,0x25,0x8d,
+0x08,0x0b,0x06,0x8e,0x06,0x00,0x02,0x3c,0x20,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,
+0x24,0x30,0xc2,0x00,0x00,0x01,0xa5,0x34,0x25,0xb0,0x03,0x3c,0x04,0x00,0x02,0x3c,
+0x00,0x26,0x07,0x00,0x26,0x88,0x22,0x02,0xb0,0x03,0x68,0x34,0x25,0x20,0x85,0x00,
+0x80,0x03,0x63,0x34,0x41,0xb0,0x02,0x3c,0x00,0x00,0x64,0xac,0x00,0x00,0x46,0xac,
+0x84,0x3e,0x25,0xad,0x94,0x3e,0x47,0xa1,0x08,0x0b,0x06,0xae,0x00,0x00,0x11,0xad,
+0x38,0x15,0x62,0x26,0x0c,0x0b,0x43,0x8c,0x02,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,
+0x0c,0x0b,0x43,0xac,0x38,0x15,0x65,0x26,0x08,0x0b,0xa2,0x8c,0x04,0x00,0x03,0x3c,
+0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00,0x24,0x10,0x43,0x00,0x58,0x00,0x40,0x10,
+0x25,0xb0,0x03,0x3c,0xb0,0x03,0x62,0x34,0x2a,0xb0,0x08,0x3c,0x00,0x00,0x51,0xac,
+0x18,0x00,0x06,0x35,0x00,0x00,0xca,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,
+0x70,0x02,0x87,0x10,0x04,0x00,0x02,0x24,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,
+0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,
+0xff,0x00,0x02,0x24,0x43,0x00,0x06,0x35,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,
+0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10,0x38,0x15,0x62,0x26,0x60,0x24,0xa4,0xa0,
+0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,
+0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,
+0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,0x60,0x24,0xe3,0xa0,0x38,0x15,0x62,0x26,
+0x60,0x24,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,
+0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,
+0x00,0x00,0x4a,0xac,0xf9,0x27,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0xc2,0xac,
+0xff,0x00,0x02,0x24,0x21,0x00,0x82,0x10,0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31,
+0x08,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,
+0x21,0x30,0x60,0x00,0x9c,0x24,0x03,0xae,0x04,0x00,0x04,0x24,0x40,0x00,0x07,0x24,
+0x60,0x24,0x0a,0xa2,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x09,0x3c,
+0x94,0x3e,0x27,0x91,0x02,0x80,0x08,0x3c,0x84,0x3e,0x05,0x8d,0x08,0x0b,0x06,0x8e,
+0x06,0x00,0x02,0x3c,0x10,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,
+0x00,0x01,0xa5,0x34,0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00,
+0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac,
+0x84,0x3e,0x05,0xad,0x94,0x3e,0x27,0xa1,0x08,0x0b,0x06,0xae,0x38,0x15,0x62,0x26,
+0x0c,0x0b,0x43,0x8c,0x04,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x0c,0x0b,0x43,0xac,
+0x38,0x15,0x65,0x26,0x08,0x0b,0xa2,0x8c,0x08,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,
+0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10,0x2a,0xb0,0x06,0x3c,0x1c,0x00,0xc3,0x34,
+0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0x19,0x02,0x87,0x10,
+0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,
+0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,
+0x44,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,
+0x0e,0x00,0x87,0x10,0x38,0x15,0x62,0x26,0x64,0x24,0xa4,0xa0,0x00,0x00,0xc2,0x90,
+0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00,
+0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,
+0xff,0x00,0x44,0x30,0x64,0x24,0xe3,0xa0,0x38,0x15,0x62,0x26,0x64,0x24,0x43,0x90,
+0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,
+0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,
+0x54,0x28,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,
+0x25,0x00,0x82,0x10,0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x14,0x25,0x05,0x8e,
+0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,
+0x64,0x24,0x0a,0xa2,0xa8,0x24,0x03,0xae,0x05,0x00,0x04,0x24,0x40,0x00,0x07,0x24,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x0a,0x3c,0x94,0x3e,0x47,0x91,
+0x02,0x80,0x09,0x3c,0x84,0x3e,0x25,0x8d,0x08,0x0b,0x06,0x8e,0x18,0x00,0x02,0x3c,
+0x08,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x00,0x02,0xa5,0x34,
+0x25,0xb0,0x03,0x3c,0x10,0x00,0x02,0x3c,0x00,0x26,0x07,0x00,0x26,0x88,0x22,0x02,
+0xb0,0x03,0x68,0x34,0x25,0x20,0x85,0x00,0x80,0x03,0x63,0x34,0x41,0xb0,0x02,0x3c,
+0x00,0x00,0x64,0xac,0x00,0x00,0x46,0xac,0x84,0x3e,0x25,0xad,0x94,0x3e,0x47,0xa1,
+0x08,0x0b,0x06,0xae,0x00,0x00,0x11,0xad,0x38,0x15,0x62,0x26,0x0c,0x0b,0x43,0x8c,
+0x08,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x0c,0x0b,0x43,0xac,0x38,0x15,0x65,0x26,
+0x08,0x0b,0xa2,0x8c,0x10,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00,
+0x24,0x10,0x43,0x00,0x58,0x00,0x40,0x10,0x25,0xb0,0x06,0x3c,0xb0,0x03,0xc2,0x34,
+0x2a,0xb0,0x08,0x3c,0x00,0x00,0x51,0xac,0x20,0x00,0x03,0x35,0x00,0x00,0x6a,0x8c,
+0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0xbb,0x01,0x87,0x10,0x90,0x03,0xc2,0x34,
+0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,
+0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x45,0x00,0x06,0x35,
+0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10,
+0x38,0x15,0x62,0x26,0x70,0x24,0xa4,0xa0,0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,
+0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,
+0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,
+0x70,0x24,0xe3,0xa0,0x38,0x15,0x62,0x26,0x70,0x24,0x43,0x90,0x20,0xb0,0x02,0x3c,
+0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,
+0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,0xb7,0x28,0x00,0x08,
+0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,0x21,0x00,0x82,0x10,
+0x38,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x14,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,
+0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0xa8,0x24,0x03,0xae,
+0x05,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x70,0x24,0x0a,0xa2,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa0,0xaf,0x02,0x80,0x09,0x3c,0x94,0x3e,0x27,0x91,0x02,0x80,0x08,0x3c,
+0x84,0x3e,0x05,0x8d,0x08,0x0b,0x06,0x8e,0x18,0x00,0x02,0x3c,0x01,0x00,0xe7,0x34,
+0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x00,0x02,0xa5,0x34,0x00,0x26,0x07,0x00,
+0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,
+0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac,0x84,0x3e,0x05,0xad,0x94,0x3e,0x27,0xa1,
+0x08,0x0b,0x06,0xae,0x38,0x15,0x62,0x26,0x0c,0x0b,0x43,0x8c,0x10,0x00,0x04,0x3c,
+0x26,0x18,0x64,0x00,0x0c,0x0b,0x43,0xac,0x38,0x15,0x65,0x26,0x08,0x0b,0xa2,0x8c,
+0x20,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10,
+0x2a,0xb0,0x06,0x3c,0x24,0x00,0xc3,0x34,0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,
+0xff,0x00,0x44,0x31,0x63,0x01,0x87,0x10,0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31,
+0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,
+0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x46,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,
+0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10,0x38,0x15,0x62,0x26,
+0x68,0x24,0xa4,0xa0,0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,
+0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,
+0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,0x68,0x24,0xe3,0xa0,
+0x38,0x15,0x62,0x26,0x68,0x24,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,
+0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,0x12,0x29,0x00,0x08,0xff,0x00,0x02,0x24,
+0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,0x25,0x00,0x82,0x10,0x38,0x15,0x70,0x26,
+0xff,0x00,0x43,0x31,0x20,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0x68,0x24,0x0a,0xa2,0xb4,0x24,0x03,0xae,
+0x06,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x02,0x80,0x0a,0x3c,0x94,0x3e,0x47,0x91,0x02,0x80,0x09,0x3c,0x84,0x3e,0x25,0x8d,
+0x08,0x0b,0x06,0x8e,0x60,0x00,0x02,0x3c,0x04,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,
+0x24,0x30,0xc2,0x00,0x00,0x04,0xa5,0x34,0x25,0xb0,0x03,0x3c,0x40,0x00,0x02,0x3c,
+0x00,0x26,0x07,0x00,0x26,0x88,0x22,0x02,0xb0,0x03,0x68,0x34,0x25,0x20,0x85,0x00,
+0x80,0x03,0x63,0x34,0x41,0xb0,0x02,0x3c,0x00,0x00,0x64,0xac,0x00,0x00,0x46,0xac,
+0x84,0x3e,0x25,0xad,0x94,0x3e,0x47,0xa1,0x08,0x0b,0x06,0xae,0x00,0x00,0x11,0xad,
+0x38,0x15,0x62,0x26,0x0c,0x0b,0x43,0x8c,0x20,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,
+0x0c,0x0b,0x43,0xac,0x38,0x15,0x65,0x26,0x08,0x0b,0xa2,0x8c,0x40,0x00,0x03,0x3c,
+0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00,0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10,
+0x38,0x15,0x70,0x26,0x25,0xb0,0x02,0x3c,0x2a,0xb0,0x07,0x3c,0xb0,0x03,0x42,0x34,
+0x00,0x00,0x51,0xac,0x28,0x00,0xe3,0x34,0x00,0x00,0x6a,0x8c,0xff,0x00,0x06,0x24,
+0xff,0x00,0x44,0x31,0xd0,0x00,0x86,0x10,0x25,0xbd,0x02,0x3c,0x00,0x80,0x42,0x31,
+0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,
+0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x47,0x00,0xe7,0x34,0x00,0x00,0xe2,0x90,
+0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,0x0e,0x00,0x86,0x10,0x38,0x15,0x62,0x26,
+0x6c,0x24,0xa4,0xa0,0x00,0x00,0xe2,0x90,0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,
+0x07,0x00,0x83,0x10,0x21,0x30,0xa0,0x00,0x21,0x28,0xe0,0x00,0x00,0x00,0xa2,0x90,
+0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,0x6c,0x24,0xc3,0xa0,
+0x38,0x15,0x62,0x26,0x6c,0x24,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,
+0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,0x76,0x29,0x00,0x08,0xff,0x00,0x02,0x24,
+0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,0x21,0x00,0x82,0x10,0x38,0x15,0x70,0x26,
+0xff,0x00,0x43,0x31,0x20,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0xb4,0x24,0x03,0xae,0x06,0x00,0x04,0x24,
+0x40,0x00,0x07,0x24,0x6c,0x24,0x0a,0xa2,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x02,0x80,0x09,0x3c,0x94,0x3e,0x27,0x91,0x02,0x80,0x08,0x3c,0x84,0x3e,0x05,0x8d,
+0x08,0x0b,0x06,0x8e,0x60,0x00,0x02,0x3c,0x02,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,
+0x24,0x30,0xc2,0x00,0x00,0x04,0xa5,0x34,0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c,
+0x25,0x20,0x85,0x00,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,
+0x00,0x00,0x66,0xac,0x84,0x3e,0x05,0xad,0x94,0x3e,0x27,0xa1,0x08,0x0b,0x06,0xae,
+0x38,0x15,0x62,0x26,0x0c,0x0b,0x43,0x8c,0x40,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,
+0x0c,0x0b,0x43,0xac,0x38,0x15,0x70,0x26,0x08,0x0b,0x06,0x8e,0x00,0x04,0x11,0x3c,
+0x24,0x10,0xd2,0x00,0x24,0x10,0x51,0x00,0x57,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x24,0x28,0xd2,0x00,0x00,0x08,0x04,0x3c,0x24,0x10,0xa4,0x00,0x08,0x00,0x40,0x10,
+0x80,0x00,0x07,0x3c,0x0c,0x0b,0x03,0x8e,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,
+0x26,0x18,0x64,0x00,0x00,0x00,0x44,0xac,0x0c,0x0b,0x03,0xae,0x80,0x00,0x07,0x3c,
+0x24,0x10,0xa7,0x00,0x21,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x0c,0x0b,0x03,0x8e,
+0x25,0xb0,0x08,0x3c,0xb0,0x03,0x09,0x35,0x2a,0xb0,0x02,0x3c,0x00,0x00,0x23,0xad,
+0x36,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x23,0xb0,0x04,0x3c,0xff,0x1f,0x02,0x3c,
+0xc0,0x18,0x03,0x00,0xf0,0x07,0x63,0x30,0xbc,0x25,0x05,0x8e,0x21,0x18,0x64,0x00,
+0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x60,0x00,0x65,0x10,0xc0,0x25,0x03,0xae,
+0x02,0x80,0x05,0x3c,0x84,0x3e,0xa3,0x8c,0x27,0x20,0x07,0x00,0x24,0x20,0xc4,0x00,
+0x00,0x08,0x63,0x34,0x41,0xb0,0x02,0x3c,0x00,0x00,0x23,0xad,0x00,0x00,0x44,0xac,
+0x84,0x3e,0xa3,0xac,0x08,0x0b,0x04,0xae,0x38,0x15,0x62,0x26,0x0c,0x0b,0x43,0x8c,
+0x80,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x0c,0x0b,0x43,0xac,0x38,0x15,0x66,0x26,
+0x08,0x0b,0xc3,0x8c,0x00,0x01,0x04,0x3c,0x24,0x28,0x72,0x00,0x24,0x10,0xa4,0x00,
+0x06,0x00,0x40,0x10,0x25,0xb0,0x02,0x3c,0x0c,0x0b,0xc3,0x8c,0xb0,0x03,0x42,0x34,
+0x26,0x18,0x64,0x00,0x00,0x00,0x44,0xac,0x0c,0x0b,0xc3,0xac,0x00,0x02,0x04,0x3c,
+0x24,0x10,0xa4,0x00,0x06,0x00,0x40,0x10,0x25,0xb0,0x03,0x3c,0x0c,0x0b,0xc2,0x8c,
+0xb0,0x03,0x63,0x34,0x26,0x10,0x44,0x00,0x0c,0x0b,0xc2,0xac,0x00,0x00,0x64,0xac,
+0x92,0x3d,0x82,0x92,0x01,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0x21,0x00,0x43,0x10,
+0x00,0x00,0x00,0x00,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x30,0x00,0xbd,0x27,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x38,
+0xaf,0x25,0x00,0x08,0x0c,0x0b,0x02,0xae,0x43,0x47,0x00,0x0c,0x07,0x00,0x04,0x24,
+0x0c,0x0b,0x03,0x8e,0x08,0x0b,0x06,0x8e,0x25,0xb0,0x02,0x3c,0x26,0x18,0x71,0x00,
+0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0xa4,0x29,0x00,0x08,0x0c,0x0b,0x03,0xae,
+0x56,0x01,0x42,0x35,0x00,0x00,0x43,0x94,0x00,0x00,0x00,0x00,0x70,0xfb,0x60,0x10,
+0x00,0x00,0x00,0x00,0x43,0x47,0x00,0x0c,0x07,0x00,0x04,0x24,0x79,0x25,0x00,0x08,
+0x38,0x15,0x70,0x26,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x2d,0x25,0x00,0x08,
+0x30,0x00,0xbd,0x27,0x00,0x00,0x62,0xac,0x0d,0x26,0x00,0x08,0xff,0x00,0x02,0x24,
+0x00,0x00,0x62,0xac,0x4a,0x26,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,
+0x87,0x26,0x00,0x08,0xff,0x00,0x02,0x24,0x01,0x00,0x03,0x24,0x90,0x03,0x42,0x34,
+0x00,0x00,0x43,0xac,0x99,0x29,0x00,0x08,0x38,0x15,0x62,0x26,0xd0,0x03,0x03,0x35,
+0x80,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xcf,0x29,0x00,0x08,0x38,0x15,0x62,0x26,
+0x25,0xb0,0x02,0x3c,0x07,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x38,0x15,0x63,0x26,0x0c,0x0b,0x62,0x8c,0x00,0x00,0x00,0x00,0x00,0x80,0x42,0x38,
+0x05,0x27,0x00,0x08,0x0c,0x0b,0x62,0xac,0x06,0x00,0x03,0x24,0x90,0x03,0x42,0x34,
+0x00,0x00,0x43,0xac,0x5e,0x27,0x00,0x08,0x38,0x15,0x62,0x26,0x25,0xb0,0x02,0x3c,
+0x07,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x38,0x15,0x63,0x26,
+0x0c,0x0b,0x62,0x8c,0x00,0x00,0x00,0x00,0x00,0x20,0x42,0x38,0xa7,0x26,0x00,0x08,
+0x0c,0x0b,0x62,0xac,0x90,0x03,0x63,0x34,0x00,0x00,0x62,0xac,0x1c,0x28,0x00,0x08,
+0x38,0x15,0x62,0x26,0x03,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x7b,0x28,0x00,0x08,0x38,0x15,0x62,0x26,0x00,0x00,0x40,0xac,0xda,0x28,0x00,0x08,
+0x38,0x15,0x62,0x26,0x02,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x39,0x29,0x00,0x08,0x38,0x15,0x62,0x26,0x05,0x00,0x03,0x24,0x90,0x03,0x42,0x34,
+0x00,0x00,0x43,0xac,0xbd,0x27,0x00,0x08,0x38,0x15,0x62,0x26,0x01,0x00,0x04,0x24,
+0x17,0x00,0x05,0x24,0x21,0x30,0x00,0x00,0xb0,0x08,0x00,0x0c,0x21,0x38,0x00,0x00,
+0x53,0xfb,0x40,0x10,0x38,0x15,0x66,0x26,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,
+0x01,0x00,0x42,0x38,0xb0,0x25,0x00,0x08,0x0c,0x0b,0x02,0xae,0x25,0xb0,0x0d,0x3c,
+0x01,0x80,0x02,0x3c,0x18,0x03,0xa4,0x35,0x8c,0xa9,0x42,0x24,0x02,0x80,0x03,0x3c,
+0x41,0xb0,0x08,0x3c,0x00,0x00,0x82,0xac,0x38,0x15,0x6a,0x24,0x0a,0x00,0x02,0x35,
+0x00,0x00,0x44,0x94,0x16,0x0b,0x43,0x95,0x14,0x0b,0x4b,0x95,0x25,0x18,0x64,0x00,
+0xff,0xff,0x6c,0x30,0x24,0x10,0x8b,0x01,0x02,0x00,0x42,0x30,0x53,0x00,0x40,0x10,
+0x02,0x00,0x64,0x38,0x02,0x00,0x02,0x24,0xc0,0x03,0xa3,0x35,0x00,0x00,0x62,0xac,
+0x16,0x0b,0x44,0xa5,0x24,0x38,0x8b,0x01,0x04,0x00,0xe2,0x30,0x0a,0x00,0x40,0x10,
+0x08,0x00,0xe2,0x30,0x16,0x0b,0x43,0x95,0x0c,0x00,0x04,0x35,0xc0,0x03,0xa5,0x35,
+0x04,0x00,0x63,0x38,0x04,0x00,0x02,0x24,0x00,0x00,0x86,0x8c,0x00,0x00,0xa2,0xac,
+0x16,0x0b,0x43,0xa5,0x08,0x00,0xe2,0x30,0x08,0x00,0x40,0x10,0x10,0x00,0xe2,0x30,
+0x16,0x0b,0x42,0x95,0xc0,0x03,0xa4,0x35,0x08,0x00,0x03,0x24,0x08,0x00,0x42,0x38,
+0x00,0x00,0x83,0xac,0x16,0x0b,0x42,0xa5,0x10,0x00,0xe2,0x30,0x08,0x00,0x40,0x10,
+0x20,0x00,0xe2,0x30,0x16,0x0b,0x42,0x95,0xc0,0x03,0xa4,0x35,0x10,0x00,0x03,0x24,
+0x10,0x00,0x42,0x38,0x00,0x00,0x83,0xac,0x16,0x0b,0x42,0xa5,0x20,0x00,0xe2,0x30,
+0x08,0x00,0x40,0x10,0x80,0x00,0xe2,0x30,0x16,0x0b,0x42,0x95,0xc0,0x03,0xa4,0x35,
+0x20,0x00,0x03,0x24,0x20,0x00,0x42,0x38,0x00,0x00,0x83,0xac,0x16,0x0b,0x42,0xa5,
+0x80,0x00,0xe2,0x30,0x15,0x00,0x40,0x10,0x24,0x10,0x8b,0x01,0x02,0x80,0x09,0x3c,
+0x16,0x0b,0x46,0x95,0x84,0x3e,0x25,0x8d,0x10,0x00,0x02,0x3c,0x7f,0xff,0x04,0x24,
+0x24,0x20,0x64,0x01,0x25,0x28,0xa2,0x00,0x80,0x00,0xc6,0x38,0xb0,0x03,0xa7,0x35,
+0x08,0x00,0x08,0x35,0xc0,0x03,0xa3,0x35,0x80,0x00,0x02,0x24,0x00,0x00,0x62,0xac,
+0x21,0x58,0x80,0x00,0x00,0x00,0xe5,0xac,0x16,0x0b,0x46,0xa5,0x84,0x3e,0x25,0xad,
+0x00,0x00,0x04,0xa5,0x14,0x0b,0x44,0xa5,0x24,0x10,0x8b,0x01,0x00,0x30,0x42,0x30,
+0x07,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x16,0x0b,0x42,0x95,0x00,0x00,0x00,0x00,
+0x00,0x10,0x42,0x38,0x00,0x20,0x42,0x34,0x16,0x0b,0x42,0xa5,0x02,0x80,0x02,0x3c,
+0x92,0x3d,0x43,0x90,0x01,0x00,0x02,0x24,0x0f,0x00,0x63,0x30,0x05,0x00,0x62,0x10,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x79,0x2a,0x00,0x08,
+0x16,0x0b,0x43,0xa5,0x2d,0x25,0x00,0x08,0x00,0x00,0x00,0x00,0xf8,0xff,0xbd,0x27,
+0x25,0xb0,0x05,0x3c,0x04,0x00,0xb1,0xaf,0x00,0x00,0xb0,0xaf,0x18,0x03,0xa6,0x34,
+0x00,0x00,0xc3,0x8c,0x1c,0x03,0xa2,0x34,0x00,0x00,0x43,0xac,0x00,0x40,0x07,0x40,
+0x00,0x68,0x09,0x40,0x00,0x70,0x02,0x40,0x00,0x60,0x08,0x40,0x01,0x80,0x02,0x3c,
+0x2c,0xab,0x42,0x24,0x00,0x00,0xc2,0xac,0x80,0x00,0x87,0x8c,0x7c,0x02,0xa2,0x34,
+0x84,0x02,0xa3,0x34,0x88,0x02,0xa6,0x34,0x00,0x00,0x47,0xac,0x00,0x00,0x69,0xac,
+0x00,0x00,0xc8,0xac,0x74,0x00,0x83,0x8c,0x8c,0x02,0xa2,0x34,0x90,0x02,0xa7,0x34,
+0x00,0x00,0x43,0xac,0x08,0x00,0x86,0x8c,0x94,0x02,0xa8,0x34,0x98,0x02,0xa9,0x34,
+0x00,0x00,0xe6,0xac,0x0c,0x00,0x82,0x8c,0x9c,0x02,0xa6,0x34,0xa0,0x02,0xa7,0x34,
+0x00,0x00,0x02,0xad,0x10,0x00,0x83,0x8c,0xa4,0x02,0xa8,0x34,0xa8,0x02,0xaa,0x34,
+0x00,0x00,0x23,0xad,0x14,0x00,0x82,0x8c,0xac,0x02,0xa9,0x34,0xb0,0x02,0xab,0x34,
+0x00,0x00,0xc2,0xac,0x18,0x00,0x83,0x8c,0xb4,0x02,0xa6,0x34,0xb8,0x02,0xac,0x34,
+0x00,0x00,0xe3,0xac,0x1c,0x00,0x82,0x8c,0xbc,0x02,0xa7,0x34,0xc0,0x02,0xad,0x34,
+0x00,0x00,0x02,0xad,0x20,0x00,0x83,0x8c,0xc4,0x02,0xa8,0x34,0xc8,0x02,0xae,0x34,
+0x00,0x00,0x43,0xad,0x24,0x00,0x82,0x8c,0xcc,0x02,0xaa,0x34,0xd0,0x02,0xaf,0x34,
+0x00,0x00,0x22,0xad,0x28,0x00,0x83,0x8c,0xd4,0x02,0xa9,0x34,0xd8,0x02,0xb0,0x34,
+0x00,0x00,0x63,0xad,0x2c,0x00,0x82,0x8c,0x70,0x02,0xab,0x34,0x74,0x02,0xb1,0x34,
+0x00,0x00,0xc2,0xac,0x30,0x00,0x83,0x8c,0x78,0x02,0xa5,0x34,0x00,0x00,0x83,0xad,
+0x34,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xe2,0xac,0x38,0x00,0x83,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xad,0x3c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x02,0xad,0x40,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xad,
+0x44,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0xad,0x48,0x00,0x83,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x00,0xe3,0xad,0x4c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x22,0xad,0x50,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xae,
+0x54,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xad,0x58,0x00,0x83,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x00,0x23,0xae,0x5c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0xa2,0xac,0x31,0x2b,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x1b,0x3c,
+0xcc,0xac,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,
+0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00,0x80,0xda,0x1b,0x00,0x08,0x00,0x7b,0x27,
+0x04,0x00,0x61,0xaf,0x08,0x00,0x62,0xaf,0x0c,0x00,0x63,0xaf,0x10,0x00,0x64,0xaf,
+0x14,0x00,0x65,0xaf,0x18,0x00,0x66,0xaf,0x1c,0x00,0x67,0xaf,0x20,0x00,0x68,0xaf,
+0x24,0x00,0x69,0xaf,0x28,0x00,0x6a,0xaf,0x2c,0x00,0x6b,0xaf,0x30,0x00,0x6c,0xaf,
+0x34,0x00,0x6d,0xaf,0x38,0x00,0x6e,0xaf,0x3c,0x00,0x6f,0xaf,0x12,0x40,0x00,0x00,
+0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40,0x40,0x00,0x70,0xaf,0x44,0x00,0x71,0xaf,
+0x48,0x00,0x72,0xaf,0x4c,0x00,0x73,0xaf,0x50,0x00,0x74,0xaf,0x54,0x00,0x75,0xaf,
+0x58,0x00,0x76,0xaf,0x5c,0x00,0x77,0xaf,0x60,0x00,0x78,0xaf,0x64,0x00,0x79,0xaf,
+0x68,0x00,0x7c,0xaf,0x6c,0x00,0x7d,0xaf,0x70,0x00,0x7e,0xaf,0x74,0x00,0x7f,0xaf,
+0x78,0x00,0x68,0xaf,0x7c,0x00,0x69,0xaf,0x80,0x00,0x6a,0xaf,0x00,0x68,0x1a,0x40,
+0x7f,0x00,0x5b,0x33,0x30,0x00,0x60,0x13,0x00,0x00,0x00,0x00,0x25,0xb0,0x1b,0x3c,
+0x30,0x03,0x7b,0x37,0x00,0x00,0x00,0x00,0x00,0x00,0x7a,0xaf,0x00,0x00,0x00,0x00,
+0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00,0x80,0xda,0x1b,0x00,0x08,0x00,0x7b,0x27,
+0x04,0x00,0x61,0xaf,0x08,0x00,0x62,0xaf,0x0c,0x00,0x63,0xaf,0x10,0x00,0x64,0xaf,
+0x14,0x00,0x65,0xaf,0x18,0x00,0x66,0xaf,0x1c,0x00,0x67,0xaf,0x20,0x00,0x68,0xaf,
+0x24,0x00,0x69,0xaf,0x28,0x00,0x6a,0xaf,0x2c,0x00,0x6b,0xaf,0x30,0x00,0x6c,0xaf,
+0x34,0x00,0x6d,0xaf,0x38,0x00,0x6e,0xaf,0x3c,0x00,0x6f,0xaf,0x12,0x40,0x00,0x00,
+0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40,0x40,0x00,0x70,0xaf,0x44,0x00,0x71,0xaf,
+0x48,0x00,0x72,0xaf,0x4c,0x00,0x73,0xaf,0x50,0x00,0x74,0xaf,0x54,0x00,0x75,0xaf,
+0x58,0x00,0x76,0xaf,0x5c,0x00,0x77,0xaf,0x60,0x00,0x78,0xaf,0x64,0x00,0x79,0xaf,
+0x68,0x00,0x7c,0xaf,0x6c,0x00,0x7d,0xaf,0x70,0x00,0x7e,0xaf,0x74,0x00,0x7f,0xaf,
+0x78,0x00,0x68,0xaf,0x7c,0x00,0x69,0xaf,0x80,0x00,0x6a,0xaf,0xcb,0x2a,0x00,0x08,
+0x21,0x20,0x60,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x08,0x3c,0x20,0x03,0x08,0x35,
+0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0xad,0x00,0x04,0x5b,0x33,0x0a,0x00,0x60,0x13,
+0x00,0x00,0x00,0x00,0x01,0x80,0x08,0x3c,0x60,0x95,0x08,0x25,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x1b,0x3c,0x24,0x03,0x7b,0x37,0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xaf,
+0x09,0xf8,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x08,0x5b,0x33,0x25,0xb0,0x08,0x3c,
+0x28,0x03,0x08,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xad,0x06,0x00,0x60,0x13,
+0x00,0x00,0x00,0x00,0x01,0x80,0x08,0x3c,0x8c,0xa9,0x08,0x25,0x00,0x00,0x00,0x00,
+0x09,0xf8,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x80,0x1a,0x3c,0x84,0x3e,0x5a,0x27,
+0x04,0x00,0x5b,0x97,0x25,0xb0,0x08,0x3c,0x30,0x03,0x08,0x35,0x00,0x00,0x00,0x00,
+0x00,0x00,0x1b,0xad,0x18,0x00,0x60,0x13,0x00,0x00,0x00,0x00,0x08,0xec,0x9b,0x27,
+0x00,0x00,0x00,0x00,0x04,0x00,0x61,0x8f,0xfc,0x03,0x70,0x7b,0x7c,0x00,0x62,0x7b,
+0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b,0x3c,0x01,0x68,0x7b,0x13,0x00,0x00,0x02,
+0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b,0xbc,0x01,0x6c,0x7b,0xfc,0x01,0x6e,0x7b,
+0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b,0xbc,0x02,0x74,0x7b,0xfc,0x02,0x76,0x7b,
+0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b,0xbc,0x03,0x7e,0x7b,0x80,0x00,0x7b,0x8f,
+0x1a,0x2c,0x00,0x08,0x00,0x00,0x00,0x00,0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00,
+0x80,0xda,0x1b,0x00,0x08,0x00,0x7b,0x27,0x08,0x00,0x5b,0xaf,0xfc,0xef,0x9d,0x27,
+0x00,0x00,0x4a,0x8f,0x00,0x00,0x00,0x00,0x21,0x00,0x40,0x11,0x00,0x00,0x00,0x00,
+0x02,0x80,0x08,0x3c,0xe4,0x3d,0x08,0x25,0x21,0x48,0x00,0x00,0x21,0x58,0x00,0x00,
+0x01,0x00,0x6b,0x25,0x1a,0x00,0x40,0x11,0x24,0x70,0x4b,0x01,0x14,0x00,0xc0,0x11,
+0x01,0x00,0x04,0x24,0x00,0x00,0x00,0x00,0x04,0x00,0x44,0xa3,0x26,0x50,0x4b,0x01,
+0x00,0x00,0x4a,0xaf,0x80,0x80,0x09,0x00,0x21,0x80,0x08,0x02,0x00,0x00,0x10,0x8e,
+0x00,0x00,0x00,0x00,0x09,0xf8,0x00,0x02,0x00,0x00,0x00,0x00,0x01,0x80,0x1b,0x3c,
+0x94,0xaf,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,
+0x02,0x80,0x1a,0x3c,0x84,0x3e,0x5a,0x27,0xe1,0xff,0x00,0x10,0x00,0x00,0x00,0x00,
+0x01,0x00,0x29,0x25,0x40,0x58,0x0b,0x00,0xdd,0x2b,0x00,0x08,0x00,0x00,0x00,0x00,
+0x02,0x80,0x1b,0x3c,0x84,0x3e,0x7b,0x27,0x21,0x60,0x00,0x00,0x04,0x00,0x6c,0xa7,
+0x08,0x00,0x7a,0x8f,0x00,0x00,0x00,0x00,0xf8,0xff,0x5a,0x27,0x00,0x00,0x5a,0x8f,
+0x00,0x00,0x00,0x00,0x08,0x00,0x5a,0x27,0x84,0x00,0x44,0x8f,0x00,0x00,0x00,0x00,
+0xf9,0xff,0x80,0x10,0x00,0x00,0x00,0x00,0x04,0x00,0x41,0x8f,0xfc,0x03,0x50,0x7b,
+0x7c,0x00,0x42,0x7b,0xbc,0x00,0x44,0x7b,0xfc,0x00,0x46,0x7b,0x3c,0x01,0x48,0x7b,
+0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x4a,0x7b,0xbc,0x01,0x4c,0x7b,
+0xfc,0x01,0x4e,0x7b,0x3c,0x02,0x50,0x7b,0x7c,0x02,0x52,0x7b,0xbc,0x02,0x54,0x7b,
+0xfc,0x02,0x56,0x7b,0x3c,0x03,0x58,0x7b,0x7c,0x03,0x5c,0x7b,0xbc,0x03,0x5e,0x7b,
+0x80,0x00,0x5b,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0x60,0x03,0x10,0x00,0x00,0x42,
+0x00,0x60,0x05,0x40,0x42,0x28,0x05,0x00,0x40,0x28,0x05,0x00,0x00,0x60,0x85,0x40,
+0x04,0x00,0x81,0xac,0x08,0x00,0x82,0xac,0x0c,0x00,0x83,0xac,0x20,0x00,0x88,0xac,
+0x24,0x00,0x89,0xac,0x28,0x00,0x8a,0xac,0x2c,0x00,0x8b,0xac,0x30,0x00,0x8c,0xac,
+0x34,0x00,0x8d,0xac,0x38,0x00,0x8e,0xac,0x3c,0x00,0x8f,0xac,0x12,0x40,0x00,0x00,
+0x10,0x48,0x00,0x00,0x40,0x00,0x90,0xac,0x44,0x00,0x91,0xac,0x48,0x00,0x92,0xac,
+0x4c,0x00,0x93,0xac,0x50,0x00,0x94,0xac,0x54,0x00,0x95,0xac,0x58,0x00,0x96,0xac,
+0x5c,0x00,0x97,0xac,0x60,0x00,0x98,0xac,0x64,0x00,0x99,0xac,0x68,0x00,0x9c,0xac,
+0x6c,0x00,0x9d,0xac,0x70,0x00,0x9e,0xac,0x74,0x00,0x9f,0xac,0x78,0x00,0x88,0xac,
+0x7c,0x00,0x89,0xac,0x80,0x00,0x9f,0xac,0xf8,0xff,0x84,0x24,0x00,0x00,0x84,0x8c,
+0x00,0x00,0x00,0x00,0x08,0x00,0x84,0x24,0x84,0x00,0x86,0x8c,0x00,0x00,0x00,0x00,
+0xf9,0xff,0xc0,0x10,0x00,0x00,0x00,0x00,0x21,0xd8,0x80,0x00,0x01,0x00,0xba,0x24,
+0x04,0x00,0x61,0x8f,0xfc,0x03,0x70,0x7b,0x7c,0x00,0x62,0x7b,0xbc,0x00,0x64,0x7b,
+0xfc,0x00,0x66,0x7b,0x3c,0x01,0x68,0x7b,0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,
+0x7c,0x01,0x6a,0x7b,0xbc,0x01,0x6c,0x7b,0xfc,0x01,0x6e,0x7b,0x3c,0x02,0x70,0x7b,
+0x7c,0x02,0x72,0x7b,0xbc,0x02,0x74,0x7b,0xfc,0x02,0x76,0x7b,0x3c,0x03,0x78,0x7b,
+0x7c,0x03,0x7c,0x7b,0xbc,0x03,0x7e,0x7b,0x80,0x00,0x7b,0x8f,0x00,0x00,0x00,0x00,
+0x08,0x00,0x60,0x03,0x00,0x60,0x9a,0x40,0x00,0x60,0x05,0x40,0x42,0x28,0x05,0x00,
+0x40,0x28,0x05,0x00,0x00,0x60,0x85,0x40,0x04,0x00,0x81,0xac,0x08,0x00,0x82,0xac,
+0x0c,0x00,0x83,0xac,0x20,0x00,0x88,0xac,0x24,0x00,0x89,0xac,0x28,0x00,0x8a,0xac,
+0x2c,0x00,0x8b,0xac,0x30,0x00,0x8c,0xac,0x34,0x00,0x8d,0xac,0x38,0x00,0x8e,0xac,
+0x3c,0x00,0x8f,0xac,0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x40,0x00,0x90,0xac,
+0x44,0x00,0x91,0xac,0x48,0x00,0x92,0xac,0x4c,0x00,0x93,0xac,0x50,0x00,0x94,0xac,
+0x54,0x00,0x94,0xac,0x58,0x00,0x96,0xac,0x5c,0x00,0x96,0xac,0x60,0x00,0x98,0xac,
+0x64,0x00,0x99,0xac,0x68,0x00,0x9c,0xac,0x6c,0x00,0x9d,0xac,0x70,0x00,0x9e,0xac,
+0x78,0x00,0x88,0xac,0x7c,0x00,0x89,0xac,0x80,0x00,0x9f,0xac,0x84,0x00,0x80,0xac,
+0xf8,0xff,0x84,0x24,0x00,0x00,0x84,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x84,0x24,
+0x84,0x00,0x86,0x8c,0xfa,0xff,0xc0,0x10,0x00,0x00,0x00,0x00,0x21,0xd8,0x80,0x00,
+0x01,0x00,0xba,0x24,0x04,0x00,0x61,0x8f,0xfc,0x03,0x70,0x7b,0x7c,0x00,0x62,0x7b,
+0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b,0x3c,0x01,0x68,0x7b,0x13,0x00,0x00,0x02,
+0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b,0xbc,0x01,0x6c,0x7b,0xfc,0x01,0x6e,0x7b,
+0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b,0xbc,0x02,0x74,0x7b,0xfc,0x02,0x76,0x7b,
+0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b,0xbc,0x03,0x7e,0x7b,0x80,0x00,0x7b,0x8f,
+0x08,0x00,0x60,0x03,0x00,0x60,0x9a,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x50,0xf3,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x1b,0x3c,0x00,0x00,0x7b,0x27,
+0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,0x00,0x00,0x05,0x24,
+0x03,0x00,0xa4,0x24,0x00,0xa0,0x80,0x40,0x00,0xa0,0x84,0x40,0x01,0x80,0x04,0x3c,
+0x98,0x03,0x84,0x24,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x01,0x80,0x1b,0x3c,0x98,0x03,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,
+0x00,0x00,0x5b,0xaf,0x02,0x80,0x1a,0x3c,0x00,0x00,0x5a,0x27,0xfc,0x03,0x5d,0x27,
+0x02,0x80,0x1c,0x3c,0x00,0x14,0x9c,0x27,0x00,0xf0,0x08,0x3c,0x00,0x0c,0x08,0x35,
+0x00,0x60,0x88,0x40,0x02,0x80,0x04,0x3c,0x00,0x00,0x84,0x24,0xff,0x7f,0x05,0x3c,
+0xff,0xff,0xa5,0x34,0x24,0x20,0x85,0x00,0x00,0x20,0x84,0x4c,0xff,0xff,0x05,0x34,
+0x21,0x28,0xa4,0x00,0x00,0x28,0x85,0x4c,0x00,0x80,0x04,0x3c,0x00,0x00,0x84,0x24,
+0xff,0x7f,0x05,0x3c,0xff,0xff,0xa5,0x34,0x24,0x20,0x85,0x00,0x00,0x00,0x84,0x4c,
+0xff,0xff,0x06,0x34,0x21,0x30,0xc4,0x00,0x24,0x30,0xc5,0x00,0x00,0x08,0x86,0x4c,
+0x00,0xa0,0x04,0x40,0x10,0x00,0x84,0x34,0x00,0xa0,0x84,0x40,0x01,0x80,0x1b,0x3c,
+0x24,0x04,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,
+0x00,0x00,0x00,0x00,0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x85,0x84,
+0x20,0x00,0x06,0x24,0x25,0x28,0xa6,0x00,0x00,0x00,0x85,0xa4,0x01,0x80,0x1b,0x3c,
+0x54,0x04,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,
+0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x85,0x8c,0x00,0x00,0x00,0x00,
+0x10,0x00,0xa5,0x30,0xfc,0xff,0xa0,0x10,0x00,0x00,0x00,0x00,0xff,0x1f,0x07,0x3c,
+0xff,0xff,0xe7,0x34,0x02,0x80,0x05,0x3c,0x90,0x3d,0xa5,0x24,0xff,0xff,0xa5,0x30,
+0x40,0xb0,0x04,0x3c,0x25,0x28,0xa4,0x00,0x24,0x28,0xa7,0x00,0x21,0x30,0x00,0x00,
+0x43,0xb0,0x02,0x3c,0x00,0x80,0x04,0x3c,0x40,0x00,0x84,0x34,0x00,0x00,0x45,0xac,
+0x04,0x00,0x46,0xac,0x08,0x00,0x44,0xac,0xe3,0x53,0x00,0x08,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x09,0x00,0x02,0x24,0xff,0xff,0x42,0x24,
+0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0x08,0x00,0xe0,0x03,0x01,0x00,0x42,0x24,
+0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x82,0xac,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x21,0x18,0x40,0x00,0x00,0x60,0x83,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x82,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x44,0x05,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x04,0x00,0x85,0x8c,0x00,0x80,0x03,0x3c,0x01,0x00,0x02,0x24,0x25,0x28,0xa3,0x00,
+0x00,0x00,0xa4,0x8c,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x74,0x05,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x04,0x00,0x82,0x8c,0x02,0x00,0x83,0x94,0x00,0x80,0x07,0x3c,0x25,0x28,0x47,0x00,
+0x00,0x00,0xa2,0x8c,0x10,0x00,0x02,0x24,0x13,0x00,0x62,0x10,0x11,0x00,0x66,0x28,
+0x06,0x00,0xc0,0x10,0x20,0x00,0x02,0x24,0x08,0x00,0x02,0x24,0x17,0x00,0x62,0x10,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0xfd,0xff,0x62,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xac,
+0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x25,0x10,0x47,0x00,0x00,0x00,0x42,0x8c,
+0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0xa2,0xa4,0x04,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x25,0x18,0x67,0x00,
+0x00,0x00,0x62,0x94,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0x82,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xa0,0x04,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,
+0x25,0x18,0x67,0x00,0x00,0x00,0x62,0x90,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,
+0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c,0x1c,0x00,0xbf,0xaf,
+0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,0x38,0x15,0x31,0x26,0x50,0x25,0x30,0x96,
+0x02,0x80,0x02,0x3c,0x01,0x80,0x03,0x3c,0x25,0x80,0x02,0x02,0x25,0xb0,0x02,0x3c,
+0x38,0x06,0x63,0x24,0x18,0x03,0x42,0x34,0x60,0x00,0x04,0x26,0x80,0x00,0x05,0x26,
+0x00,0x00,0x43,0xac,0x6c,0x45,0x00,0x0c,0x03,0x00,0x06,0x24,0x21,0x20,0x00,0x02,
+0x21,0x28,0x00,0x00,0x58,0x45,0x00,0x0c,0x08,0x00,0x06,0x24,0x50,0x25,0x22,0x8e,
+0x0c,0x00,0x03,0x24,0x0c,0x00,0x43,0xae,0x08,0x00,0x42,0xae,0x12,0x00,0x02,0x24,
+0x14,0x00,0x42,0xae,0x21,0x20,0x40,0x02,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x78,0x08,0x00,0x08,0x20,0x00,0xbd,0x27,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,
+0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x02,0x80,0x02,0x3c,0x21,0x48,0x80,0x00,
+0x38,0x15,0x48,0x24,0x21,0x38,0x00,0x00,0x21,0x28,0x27,0x01,0x00,0x00,0xa2,0x90,
+0x21,0x20,0xe8,0x00,0x01,0x00,0xe7,0x24,0x50,0x0c,0x82,0xa0,0x1e,0x00,0xa3,0x90,
+0x1e,0x00,0xe6,0x28,0x6e,0x0c,0x83,0xa0,0x3c,0x00,0xa2,0x90,0x00,0x00,0x00,0x00,
+0x8c,0x0c,0x82,0xa0,0x5a,0x00,0xa3,0x90,0xf3,0xff,0xc0,0x14,0xaa,0x0c,0x83,0xa0,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,
+0x20,0xbd,0x03,0x3c,0x58,0x00,0x63,0x34,0x00,0x00,0x62,0x90,0x0f,0x27,0x07,0x24,
+0x20,0x00,0x42,0x34,0x00,0x00,0x62,0xa0,0xff,0xff,0xe7,0x24,0xff,0xff,0xe1,0x04,
+0xff,0xff,0xe7,0x24,0x62,0xbd,0x04,0x3c,0x24,0x10,0x82,0x34,0x00,0x00,0x40,0xa0,
+0x28,0x10,0x83,0x34,0x0c,0x11,0x86,0x34,0x0e,0x00,0x02,0x24,0x00,0x00,0x60,0xa0,
+0x00,0x11,0x85,0x34,0x00,0x00,0xc2,0xa0,0x00,0x00,0xa7,0x8c,0xdf,0xff,0x02,0x24,
+0x10,0x00,0x86,0x34,0x24,0x38,0xe2,0x00,0x49,0x0c,0x03,0x24,0xcf,0xff,0x02,0x24,
+0x00,0x00,0xc3,0xac,0x04,0x00,0x84,0x34,0x00,0x00,0xa7,0xac,0x24,0x38,0xe2,0x00,
+0x41,0x0c,0x02,0x24,0x00,0x00,0xa7,0xac,0x00,0x00,0x80,0xac,0x00,0x00,0xc2,0xac,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x25,0xb0,0x05,0x3c,0x01,0x80,0x03,0x3c,0x21,0x38,0x80,0x00,0x18,0x03,0xa2,0x34,
+0xa8,0x08,0x63,0x24,0x01,0x00,0x04,0x24,0x00,0x00,0x43,0xac,0x35,0x00,0xe4,0x10,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x10,0x20,0x08,0xa2,0x34,0x02,0x00,0x02,0x24,
+0x83,0x00,0xe2,0x10,0x03,0x00,0x02,0x24,0x5a,0x00,0xe2,0x10,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x00,0x00,0x44,0x8c,
+0x38,0x15,0x66,0x24,0x70,0x08,0x02,0x24,0xe0,0x08,0x03,0x24,0x8c,0x0b,0xc2,0xac,
+0x40,0x08,0x02,0x24,0x90,0x0b,0xc3,0xac,0x9c,0x0b,0xc2,0xac,0x78,0x08,0x03,0x24,
+0x0c,0x08,0x02,0x24,0xa0,0x0b,0xc3,0xac,0xa4,0x0b,0xc2,0xac,0x10,0x08,0x03,0x24,
+0x20,0x08,0x02,0x24,0xa8,0x0b,0xc3,0xac,0xac,0x0b,0xc2,0xac,0x24,0x08,0x03,0x24,
+0x58,0x08,0x02,0x24,0xb0,0x0b,0xc3,0xac,0xb4,0x0b,0xc2,0xac,0x50,0x0c,0x03,0x24,
+0x54,0x0c,0x02,0x24,0xb8,0x0b,0xc3,0xac,0xbc,0x0b,0xc2,0xac,0x14,0x0c,0x03,0x24,
+0x10,0x0c,0x02,0x24,0x60,0x08,0x05,0x24,0xc0,0x0b,0xc3,0xac,0xc4,0x0b,0xc2,0xac,
+0x80,0x0c,0x03,0x24,0x84,0x0c,0x02,0x24,0x00,0x01,0x84,0x30,0xcc,0x0b,0xc2,0xac,
+0x98,0x0b,0xc5,0xac,0xc8,0x0b,0xc3,0xac,0x89,0x0b,0xc0,0xa0,0x94,0x0b,0xc5,0xac,
+0x02,0x00,0x80,0x10,0xa0,0x08,0x02,0x24,0xb8,0x08,0x02,0x24,0x08,0x00,0xe0,0x03,
+0xd0,0x0b,0xc2,0xac,0x28,0x08,0xa2,0x34,0x02,0x80,0x03,0x3c,0x00,0x00,0x44,0x8c,
+0x38,0x15,0x66,0x24,0x70,0x08,0x02,0x24,0xe0,0x08,0x03,0x24,0x8c,0x0b,0xc2,0xac,
+0x44,0x08,0x02,0x24,0x90,0x0b,0xc3,0xac,0x9c,0x0b,0xc2,0xac,0x78,0x08,0x03,0x24,
+0x0c,0x08,0x02,0x24,0xa0,0x0b,0xc3,0xac,0xa4,0x0b,0xc2,0xac,0x14,0x08,0x03,0x24,
+0x28,0x08,0x02,0x24,0xa8,0x0b,0xc3,0xac,0xac,0x0b,0xc2,0xac,0x2c,0x08,0x03,0x24,
+0x58,0x08,0x02,0x24,0xb0,0x0b,0xc3,0xac,0xb4,0x0b,0xc2,0xac,0x58,0x0c,0x03,0x24,
+0x5c,0x0c,0x02,0x24,0xb8,0x0b,0xc3,0xac,0xbc,0x0b,0xc2,0xac,0x1c,0x0c,0x03,0x24,
+0x18,0x0c,0x02,0x24,0x64,0x08,0x05,0x24,0xc0,0x0b,0xc3,0xac,0xc4,0x0b,0xc2,0xac,
+0x88,0x0c,0x03,0x24,0x8c,0x0c,0x02,0x24,0x00,0x01,0x84,0x30,0xcc,0x0b,0xc2,0xac,
+0x89,0x0b,0xc7,0xa0,0x98,0x0b,0xc5,0xac,0xc8,0x0b,0xc3,0xac,0x94,0x0b,0xc5,0xac,
+0xd6,0xff,0x80,0x10,0xa4,0x08,0x02,0x24,0xbc,0x08,0x02,0x24,0x08,0x00,0xe0,0x03,
+0xd0,0x0b,0xc2,0xac,0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,0xac,0x08,0x03,0x24,
+0xd0,0x0b,0x43,0xac,0x74,0x08,0x03,0x24,0xe4,0x08,0x04,0x24,0x8c,0x0b,0x43,0xac,
+0x4c,0x08,0x03,0x24,0x90,0x0b,0x44,0xac,0x9c,0x0b,0x43,0xac,0x7c,0x08,0x04,0x24,
+0x0c,0x08,0x03,0x24,0xa0,0x0b,0x44,0xac,0xa4,0x0b,0x43,0xac,0x1c,0x08,0x04,0x24,
+0x38,0x08,0x03,0x24,0xa8,0x0b,0x44,0xac,0xac,0x0b,0x43,0xac,0x3c,0x08,0x04,0x24,
+0x5c,0x08,0x03,0x24,0xb0,0x0b,0x44,0xac,0xb4,0x0b,0x43,0xac,0x68,0x0c,0x04,0x24,
+0x6c,0x0c,0x03,0x24,0xb8,0x0b,0x44,0xac,0xbc,0x0b,0x43,0xac,0x2c,0x0c,0x04,0x24,
+0x28,0x0c,0x03,0x24,0x6c,0x08,0x05,0x24,0xc0,0x0b,0x44,0xac,0xc4,0x0b,0x43,0xac,
+0x98,0x0c,0x04,0x24,0x9c,0x0c,0x03,0x24,0x89,0x0b,0x47,0xa0,0x98,0x0b,0x45,0xac,
+0xc8,0x0b,0x44,0xac,0xcc,0x0b,0x43,0xac,0x08,0x00,0xe0,0x03,0x94,0x0b,0x45,0xac,
+0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,0xa8,0x08,0x03,0x24,0xd0,0x0b,0x43,0xac,
+0x74,0x08,0x03,0x24,0xe4,0x08,0x04,0x24,0x8c,0x0b,0x43,0xac,0x48,0x08,0x03,0x24,
+0x90,0x0b,0x44,0xac,0x9c,0x0b,0x43,0xac,0x7c,0x08,0x04,0x24,0x0c,0x08,0x03,0x24,
+0xa0,0x0b,0x44,0xac,0xa4,0x0b,0x43,0xac,0x18,0x08,0x04,0x24,0x30,0x08,0x03,0x24,
+0xa8,0x0b,0x44,0xac,0xac,0x0b,0x43,0xac,0x34,0x08,0x04,0x24,0x5c,0x08,0x03,0x24,
+0xb0,0x0b,0x44,0xac,0xb4,0x0b,0x43,0xac,0x60,0x0c,0x04,0x24,0x64,0x0c,0x03,0x24,
+0xb8,0x0b,0x44,0xac,0xbc,0x0b,0x43,0xac,0x24,0x0c,0x04,0x24,0x20,0x0c,0x03,0x24,
+0x68,0x08,0x05,0x24,0xc0,0x0b,0x44,0xac,0xc4,0x0b,0x43,0xac,0x90,0x0c,0x04,0x24,
+0x94,0x0c,0x03,0x24,0x89,0x0b,0x47,0xa0,0x98,0x0b,0x45,0xac,0xc8,0x0b,0x44,0xac,
+0xcc,0x0b,0x43,0xac,0x08,0x00,0xe0,0x03,0x94,0x0b,0x45,0xac,0xe6,0x42,0x00,0x08,
+0x21,0x18,0x00,0x00,0x20,0x00,0x62,0x2c,0x06,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x06,0x10,0x64,0x00,0x01,0x00,0x42,0x30,0xfa,0xff,0x40,0x10,0x01,0x00,0x63,0x24,
+0xff,0xff,0x63,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0xd8,0xff,0xbd,0x27,
+0x25,0xb0,0x02,0x3c,0x18,0x00,0xb2,0xaf,0x21,0x90,0x82,0x00,0xff,0xff,0x02,0x24,
+0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,0x20,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,
+0x21,0x88,0xa0,0x00,0x21,0x20,0xa0,0x00,0x21,0x18,0x40,0x02,0x10,0x00,0xa2,0x10,
+0x21,0x98,0xc0,0x00,0x00,0x00,0x50,0x8e,0xe1,0x42,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x04,0x10,0x53,0x00,0x27,0x18,0x11,0x00,0x25,0x18,0x62,0x00,0x24,0x18,0x70,0x00,
+0x00,0x00,0x43,0xae,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,
+0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x28,0x00,0xbd,0x27,0x00,0x00,0x66,0xac,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x21,0x30,0x80,0x00,0xd4,0x20,0x44,0x8c,
+0xed,0x42,0x00,0x08,0xff,0xff,0x05,0x24,0xe0,0xff,0xbd,0x27,0x25,0xb0,0x02,0x3c,
+0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x21,0x20,0x82,0x00,
+0x00,0x00,0x90,0x8c,0x21,0x88,0xa0,0x00,0xe1,0x42,0x00,0x0c,0x21,0x20,0xa0,0x00,
+0x24,0x80,0x11,0x02,0x06,0x10,0x50,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xd0,0xff,0xbd,0x27,
+0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c,0x28,0x00,0xbf,0xaf,0x20,0x00,0xb4,0xaf,
+0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x24,0x00,0xb5,0xaf,0x10,0x00,0xb0,0xaf,
+0x38,0x15,0x31,0x26,0xb0,0x0b,0x22,0x8e,0x25,0xb0,0x12,0x3c,0x24,0x08,0x53,0x36,
+0x21,0x10,0x52,0x00,0x00,0x00,0x70,0x8e,0x00,0x00,0x55,0x8c,0x7f,0x80,0x03,0x3c,
+0xff,0x7f,0x02,0x3c,0xff,0xff,0x63,0x34,0xff,0xff,0x42,0x34,0x24,0x10,0x02,0x02,
+0x24,0x18,0xa3,0x02,0xc0,0x25,0x04,0x00,0x25,0x18,0x64,0x00,0x00,0x80,0x14,0x3c,
+0x00,0x00,0x62,0xae,0x01,0x00,0x04,0x24,0xab,0x18,0x00,0x0c,0x25,0xa8,0x74,0x00,
+0xb0,0x0b,0x22,0x8e,0x25,0x80,0x14,0x02,0x01,0x00,0x04,0x24,0x21,0x10,0x52,0x00,
+0x00,0x00,0x55,0xac,0xab,0x18,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xae,
+0xab,0x18,0x00,0x0c,0x01,0x00,0x04,0x24,0xd0,0x0b,0x24,0x8e,0x0f,0x00,0x05,0x3c,
+0x28,0x00,0xbf,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0xff,0xff,0xa5,0x34,
+0x18,0x43,0x00,0x08,0x30,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,
+0x02,0x80,0x11,0x3c,0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,0x38,0x15,0x27,0x26,
+0x8b,0x0b,0xe5,0x90,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x70,0x0d,0x63,0x24,
+0x18,0x03,0x42,0x34,0x02,0x00,0x06,0x24,0x00,0x00,0x43,0xac,0x34,0x00,0xa6,0x10,
+0x21,0x80,0x80,0x00,0x03,0x00,0x03,0x24,0x3a,0x00,0xa3,0x10,0x2e,0x00,0x02,0x2e,
+0x10,0x00,0x02,0x2e,0x07,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xff,0x00,0x04,0x32,
+0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x29,0x43,0x00,0x08,
+0x20,0x00,0xbd,0x27,0xfa,0xff,0xa6,0x14,0xff,0x00,0x04,0x32,0x89,0x0b,0xe4,0x90,
+0x01,0x00,0x02,0x24,0x33,0x00,0x82,0x10,0x02,0x00,0x82,0x28,0x38,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0x38,0x00,0x85,0x10,0x38,0x15,0x22,0x26,0x2e,0x00,0x83,0x10,
+0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x24,0x18,0x43,0x00,0x0c,0xff,0xff,0x05,0x24,
+0xff,0xfc,0x06,0x3c,0xff,0xff,0xc6,0x34,0x24,0x30,0x46,0x00,0x00,0x08,0x04,0x24,
+0xed,0x42,0x00,0x0c,0xff,0xff,0x05,0x24,0x38,0x15,0x22,0x26,0x89,0x0b,0x44,0x90,
+0x01,0x00,0x03,0x24,0x07,0x00,0x83,0x10,0x02,0x00,0x82,0x28,0x2c,0x00,0x40,0x14,
+0x02,0x00,0x02,0x24,0x2c,0x00,0x82,0x10,0x03,0x00,0x02,0x24,0xdb,0xff,0x82,0x14,
+0x00,0x00,0x00,0x00,0x38,0x15,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c,
+0xed,0x42,0x00,0x0c,0x21,0x30,0x00,0x00,0x72,0x43,0x00,0x08,0xff,0x00,0x04,0x32,
+0x25,0x00,0x82,0x2c,0xcc,0xff,0x40,0x14,0x03,0x00,0x03,0x24,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0xc7,0xff,0x40,0x14,0x10,0x00,0x02,0x2e,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x38,0x15,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c,
+0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24,0x84,0x43,0x00,0x08,0x00,0x08,0x04,0x24,
+0xcc,0xff,0x80,0x14,0x38,0x15,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x24,
+0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24,0x84,0x43,0x00,0x08,0x00,0x08,0x04,0x24,
+0xb2,0xff,0x80,0x14,0x00,0x00,0x00,0x00,0x38,0x15,0x22,0x26,0x8c,0x0b,0x44,0x8c,
+0x0f,0x00,0x05,0x24,0xed,0x42,0x00,0x0c,0x21,0x30,0x00,0x00,0x72,0x43,0x00,0x08,
+0xff,0x00,0x04,0x32,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c,
+0x38,0x15,0x28,0x26,0x8b,0x0b,0x06,0x91,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x1c,0x0f,0x63,0x24,0x18,0x03,0x42,0x34,0x02,0x00,0x07,0x24,0x18,0x00,0xb2,0xaf,
+0x10,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0xaf,0x00,0x00,0x43,0xac,0x21,0x90,0xa0,0x00,
+0x39,0x00,0xc7,0x10,0xff,0x00,0x90,0x30,0x03,0x00,0x03,0x24,0x3f,0x00,0xc3,0x10,
+0x2e,0x00,0x02,0x2e,0x10,0x00,0x02,0x2e,0x0c,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x0f,0x00,0x04,0x3c,0xff,0xff,0x84,0x34,0x24,0x20,0x44,0x02,0x00,0x15,0x10,0x00,
+0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x25,0x20,0x44,0x00,0x13,0x43,0x00,0x08,0x20,0x00,0xbd,0x27,0xf5,0xff,0xc7,0x14,
+0x0f,0x00,0x04,0x3c,0x89,0x0b,0x04,0x91,0x01,0x00,0x02,0x24,0x33,0x00,0x82,0x10,
+0x02,0x00,0x82,0x28,0x38,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x38,0x00,0x86,0x10,
+0x38,0x15,0x22,0x26,0x2e,0x00,0x83,0x10,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x24,
+0x18,0x43,0x00,0x0c,0xff,0xff,0x05,0x24,0xff,0xfc,0x06,0x3c,0xff,0xff,0xc6,0x34,
+0x24,0x30,0x46,0x00,0x00,0x08,0x04,0x24,0xed,0x42,0x00,0x0c,0xff,0xff,0x05,0x24,
+0x38,0x15,0x22,0x26,0x89,0x0b,0x44,0x90,0x01,0x00,0x03,0x24,0x07,0x00,0x83,0x10,
+0x02,0x00,0x82,0x28,0x2c,0x00,0x40,0x14,0x02,0x00,0x02,0x24,0x2c,0x00,0x82,0x10,
+0x03,0x00,0x02,0x24,0xd6,0xff,0x82,0x14,0x00,0x00,0x00,0x00,0x38,0x15,0x22,0x26,
+0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c,0xed,0x42,0x00,0x0c,0x21,0x30,0x00,0x00,
+0xdf,0x43,0x00,0x08,0x0f,0x00,0x04,0x3c,0x25,0x00,0x02,0x2e,0xc7,0xff,0x40,0x14,
+0x03,0x00,0x03,0x24,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xc1,0xff,0x40,0x14,
+0x00,0x00,0x00,0x00,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x38,0x15,0x22,0x26,
+0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c,0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24,
+0xf6,0x43,0x00,0x08,0x00,0x08,0x04,0x24,0xcc,0xff,0x80,0x14,0x38,0x15,0x22,0x26,
+0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x24,0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24,
+0xf6,0x43,0x00,0x08,0x00,0x08,0x04,0x24,0xad,0xff,0x80,0x14,0x00,0x00,0x00,0x00,
+0x38,0x15,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x24,0xed,0x42,0x00,0x0c,
+0x21,0x30,0x00,0x00,0xdf,0x43,0x00,0x08,0x0f,0x00,0x04,0x3c,0xe8,0xff,0xbd,0x27,
+0x10,0x00,0xb0,0xaf,0x21,0x80,0x80,0x00,0x14,0x00,0xbf,0xaf,0x29,0x43,0x00,0x0c,
+0x21,0x20,0x00,0x00,0x40,0x01,0x44,0x34,0x21,0x18,0x40,0x00,0x1f,0x00,0x02,0x2e,
+0x00,0x23,0x04,0x00,0x10,0x00,0x40,0x10,0x10,0x00,0x05,0x2e,0x00,0x01,0x64,0x34,
+0x06,0x00,0xa0,0x10,0x00,0x23,0x04,0x00,0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x13,0x43,0x00,0x0c,
+0xf1,0xff,0x10,0x26,0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x13,0x43,0x00,0x0c,0xe2,0xff,0x10,0x26,
+0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x18,0x00,0xbd,0x27,0x25,0xb0,0x02,0x3c,0x27,0x38,0x05,0x00,0x21,0x40,0x82,0x00,
+0xff,0xff,0x02,0x24,0x07,0x00,0xa2,0x10,0x25,0x38,0xe6,0x00,0x00,0x00,0x02,0x8d,
+0x00,0x00,0x00,0x00,0x24,0x10,0xe2,0x00,0x00,0x00,0x02,0xad,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xad,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c,0xd8,0xff,0xbd,0x27,0xa8,0x11,0x42,0x24,
+0x18,0x03,0x63,0x34,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,
+0x24,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,
+0x21,0x88,0xa0,0x00,0x21,0x98,0xc0,0x00,0x21,0xa0,0x80,0x00,0x00,0x60,0x12,0x40,
+0x01,0x00,0x41,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x0f,0x00,0x02,0x3c,
+0xff,0xff,0x42,0x34,0x0a,0x00,0x22,0x12,0x21,0x28,0xc0,0x00,0x5c,0x43,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x21,0x20,0x20,0x02,0xe1,0x42,0x00,0x0c,0x21,0x80,0x40,0x00,
+0x04,0x10,0x53,0x00,0x27,0x28,0x11,0x00,0x25,0x28,0xa2,0x00,0x24,0x28,0xb0,0x00,
+0xc7,0x43,0x00,0x0c,0xff,0x00,0x84,0x32,0x00,0x60,0x92,0x40,0x24,0x00,0xbf,0x8f,
+0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x01,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0xe0,0xff,0xbd,0x27,0x54,0x12,0x63,0x24,0x18,0x03,0x42,0x34,
+0x18,0x00,0xb2,0xaf,0x1c,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,
+0x00,0x00,0x43,0xac,0x21,0x90,0xa0,0x00,0x00,0x60,0x11,0x40,0x01,0x00,0x21,0x36,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x5c,0x43,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x21,0x80,0x40,0x00,0xe1,0x42,0x00,0x0c,0x21,0x20,0x40,0x02,0x24,0x80,0x12,0x02,
+0x06,0x80,0x50,0x00,0x00,0x60,0x91,0x40,0x21,0x10,0x00,0x02,0x1c,0x00,0xbf,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0xc8,0xff,0xbd,0x27,0x2c,0x00,0xb1,0xaf,0xff,0xff,0x05,0x24,
+0x21,0x88,0x80,0x00,0x02,0x00,0x06,0x24,0x10,0x00,0xa4,0x27,0x34,0x00,0xbf,0xaf,
+0x30,0x00,0xb2,0xaf,0x58,0x45,0x00,0x0c,0x28,0x00,0xb0,0xaf,0x08,0x00,0x30,0x96,
+0x02,0x80,0x02,0x3c,0x21,0x28,0x00,0x00,0x25,0x80,0x02,0x02,0x21,0x20,0x00,0x02,
+0x58,0x45,0x00,0x0c,0x10,0x00,0x06,0x24,0x20,0x00,0x02,0x96,0x24,0x00,0x04,0x26,
+0x10,0x00,0xa5,0x27,0x03,0xff,0x42,0x30,0xc8,0x00,0x42,0x34,0x20,0x00,0x02,0xa6,
+0x60,0x45,0x00,0x0c,0x06,0x00,0x06,0x24,0x25,0xb0,0x03,0x3c,0x50,0x00,0x62,0x34,
+0x00,0x00,0x44,0x8c,0x54,0x00,0x65,0x34,0x58,0x00,0x66,0x34,0x18,0x00,0xa4,0xaf,
+0x00,0x00,0xa2,0x8c,0x5c,0x00,0x63,0x34,0x2a,0x00,0x04,0x26,0x1c,0x00,0xa2,0xaf,
+0x00,0x00,0xc7,0x8c,0x18,0x00,0xa5,0x27,0x06,0x00,0x06,0x24,0x20,0x00,0xa7,0xaf,
+0x00,0x00,0x62,0x8c,0x1a,0x00,0x12,0x24,0x60,0x45,0x00,0x0c,0x24,0x00,0xa2,0xaf,
+0x30,0x00,0x04,0x26,0x20,0x00,0xa5,0x27,0x60,0x45,0x00,0x0c,0x06,0x00,0x06,0x24,
+0x13,0x00,0x03,0x24,0x14,0x00,0x23,0xae,0x0c,0x00,0x32,0xae,0x08,0x00,0x05,0x8e,
+0x04,0x00,0x04,0x8e,0xff,0xdf,0x02,0x3c,0x14,0x00,0x06,0x8e,0xff,0xff,0x42,0x34,
+0x10,0x00,0x07,0x8e,0xff,0xe0,0x03,0x24,0x24,0x28,0xa2,0x00,0x00,0x40,0x02,0x3c,
+0x24,0x20,0x83,0x00,0x25,0x28,0xa2,0x00,0xff,0x81,0x03,0x24,0xfe,0xff,0x02,0x3c,
+0x24,0x30,0xc3,0x00,0xff,0xff,0x42,0x34,0x00,0x12,0x84,0x34,0x00,0x80,0x03,0x3c,
+0x24,0x20,0x82,0x00,0x25,0x38,0xe3,0x00,0x00,0x26,0xc6,0x34,0x80,0x00,0xa5,0x34,
+0x20,0x00,0x02,0x24,0x00,0x00,0x12,0xa6,0x10,0x00,0x07,0xae,0x02,0x00,0x02,0xa2,
+0x14,0x00,0x06,0xae,0x04,0x00,0x04,0xae,0x08,0x00,0x05,0xae,0x34,0x00,0xbf,0x8f,
+0x30,0x00,0xb2,0x8f,0x2c,0x00,0xb1,0x8f,0x28,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x38,0x00,0xbd,0x27,0x54,0x45,0x00,0x08,0xff,0x00,0xa5,0x30,0x00,0x00,0x85,0xa0,
+0xff,0xff,0xc6,0x24,0x01,0x00,0x84,0x24,0xfc,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x05,0x00,0xc0,0x10,0x00,0x00,0x00,0x00,
+0x00,0x00,0x85,0xac,0xff,0xff,0xc6,0x24,0xfd,0xff,0xc0,0x14,0x04,0x00,0x84,0x24,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x21,0x38,0x80,0x00,0x08,0x00,0xc0,0x10,
+0xff,0xff,0xc3,0x24,0xff,0xff,0x06,0x24,0x00,0x00,0xa2,0x90,0xff,0xff,0x63,0x24,
+0x01,0x00,0xa5,0x24,0x00,0x00,0xe2,0xa0,0xfb,0xff,0x66,0x14,0x01,0x00,0xe7,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x21,0x38,0x80,0x00,0x08,0x00,0xc0,0x10,
+0xff,0xff,0xc3,0x24,0xff,0xff,0x06,0x24,0x00,0x00,0xa2,0x8c,0xff,0xff,0x63,0x24,
+0x04,0x00,0xa5,0x24,0x00,0x00,0xe2,0xac,0xfb,0xff,0x66,0x14,0x04,0x00,0xe7,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x2b,0x10,0xa4,0x00,0x0d,0x00,0x40,0x14,
+0xff,0xff,0x02,0x24,0xff,0xff,0xc6,0x24,0x08,0x00,0xc2,0x10,0x21,0x18,0x80,0x00,
+0xff,0xff,0x07,0x24,0x00,0x00,0xa2,0x90,0xff,0xff,0xc6,0x24,0x01,0x00,0xa5,0x24,
+0x00,0x00,0x62,0xa0,0xfb,0xff,0xc7,0x14,0x01,0x00,0x63,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x80,0x00,0x21,0x28,0xa6,0x00,0x21,0x18,0x86,0x00,0xff,0xff,0xc6,0x24,
+0xfa,0xff,0xc2,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0x07,0x24,0xff,0xff,0xa5,0x24,
+0x00,0x00,0xa2,0x90,0xff,0xff,0x63,0x24,0xff,0xff,0xc6,0x24,0xfb,0xff,0xc7,0x14,
+0x00,0x00,0x62,0xa0,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x0c,0x00,0xc0,0x10,
+0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x90,0x00,0x00,0xa3,0x90,0x01,0x00,0x84,0x24,
+0x23,0x10,0x43,0x00,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,0x04,0x00,0x40,0x14,
+0x01,0x00,0xa5,0x24,0xff,0xff,0xc6,0x24,0xf6,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0xc0,0x00,0xab,0x45,0x00,0x08,0x21,0x18,0x86,0x00,
+0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0x04,0x00,0x45,0x10,0x00,0x00,0x00,0x00,
+0x01,0x00,0x84,0x24,0xfa,0xff,0x83,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x80,0x00,0x09,0x00,0xc0,0x10,0xff,0xff,0xc3,0x24,0xff,0x00,0xa5,0x30,
+0xff,0xff,0x06,0x24,0x00,0x00,0x82,0x90,0xff,0xff,0x63,0x24,0x05,0x00,0x45,0x10,
+0x01,0x00,0x84,0x24,0xfb,0xff,0x66,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0xff,0xff,0x82,0x24,0x21,0x38,0x00,0x00,
+0x1f,0x00,0xc0,0x10,0x21,0x18,0x00,0x00,0x02,0x80,0x02,0x3c,0xc0,0x86,0x4b,0x24,
+0x00,0x00,0x87,0x90,0x00,0x00,0xa3,0x90,0xff,0xff,0xc6,0x24,0x01,0x00,0x84,0x24,
+0x21,0x10,0xeb,0x00,0x16,0x00,0xe0,0x10,0x01,0x00,0xa5,0x24,0x14,0x00,0x60,0x10,
+0x21,0x48,0x6b,0x00,0x10,0x00,0xe3,0x10,0x20,0x00,0xe8,0x24,0x00,0x00,0x42,0x90,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x02,0x00,0x40,0x10,0x20,0x00,0x6a,0x24,
+0xff,0x00,0x07,0x31,0x00,0x00,0x22,0x91,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,
+0x02,0x00,0x40,0x10,0xff,0x00,0xe7,0x30,0xff,0x00,0x43,0x31,0xff,0x00,0x63,0x30,
+0x03,0x00,0xe3,0x14,0x00,0x00,0x00,0x00,0xe5,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x23,0x10,0xe3,0x00,0x21,0x18,0x80,0x00,0x00,0x00,0xa2,0x90,
+0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,0xfc,0xff,0x40,0x14,0x01,0x00,0x84,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x21,0x38,0x80,0x00,0xff,0xff,0x03,0x24,
+0xff,0xff,0xc6,0x24,0x06,0x00,0xc3,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,
+0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,0xf9,0xff,0x40,0x14,0x01,0x00,0x84,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0xe0,0x00,0x00,0x00,0x82,0x80,0xfa,0x45,0x00,0x08,
+0x21,0x18,0x80,0x00,0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x80,0x00,0x00,0x00,0x00,
+0xfc,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,0x01,0x00,0xa5,0x24,
+0x00,0x00,0x82,0xa0,0xfc,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0x12,0x00,0xc0,0x10,0x21,0x18,0x80,0x00,0x00,0x00,0x82,0x80,
+0x0b,0x46,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x80,
+0x00,0x00,0x00,0x00,0xfc,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,
+0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,0x05,0x00,0x40,0x10,0x01,0x00,0x84,0x24,
+0xff,0xff,0xc6,0x24,0xf9,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xa0,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x00,0x00,0x83,0x90,0x00,0x00,0xa2,0x90,
+0x01,0x00,0x84,0x24,0x23,0x10,0x62,0x00,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,
+0x03,0x00,0x40,0x14,0x01,0x00,0xa5,0x24,0xf7,0xff,0x60,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x21,0x10,0x00,0x00,0x0b,0x00,0xc0,0x10,
+0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,0x00,0x00,0x83,0x90,0xff,0xff,0xc6,0x24,
+0x23,0x10,0x62,0x00,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,0x03,0x00,0x40,0x14,
+0x01,0x00,0xa5,0x24,0xf5,0xff,0x60,0x14,0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x80,0x00,0x2e,0x05,0x00,0x21,0x10,0x80,0x00,
+0x3c,0x46,0x00,0x08,0x03,0x2e,0x05,0x00,0x07,0x00,0x60,0x10,0x01,0x00,0x42,0x24,
+0x00,0x00,0x43,0x80,0x00,0x00,0x00,0x00,0xfb,0xff,0x65,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x00,0x00,0x82,0x80,0x48,0x46,0x00,0x08,0x21,0x18,0x80,0x00,0x01,0x00,0x63,0x24,
+0x00,0x00,0x62,0x80,0x00,0x00,0x00,0x00,0xfc,0xff,0x40,0x14,0x23,0x10,0x64,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,
+0x21,0x80,0xa0,0x00,0x14,0x00,0xb1,0xaf,0x18,0x00,0xbf,0xaf,0x21,0x88,0x80,0x00,
+0x42,0x46,0x00,0x0c,0x00,0x86,0x10,0x00,0x21,0x18,0x51,0x00,0x03,0x86,0x10,0x00,
+0x00,0x00,0x62,0x80,0x00,0x00,0x00,0x00,0x0a,0x00,0x50,0x10,0x21,0x10,0x60,0x00,
+0xff,0xff,0x63,0x24,0x2b,0x10,0x71,0x00,0xf9,0xff,0x40,0x10,0x21,0x10,0x00,0x00,
+0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x21,0x30,0x80,0x00,0x0d,0x00,0xa0,0x10,
+0xff,0xff,0xa3,0x24,0x00,0x00,0x82,0x80,0x00,0x00,0x00,0x00,0x09,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x24,0xff,0xff,0x63,0x24,0x05,0x00,0x65,0x10,
+0x01,0x00,0xc6,0x24,0x00,0x00,0xc2,0x80,0x00,0x00,0x00,0x00,0xfa,0xff,0x40,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x23,0x10,0xc4,0x00,0x00,0x00,0x82,0x90,
+0x00,0x00,0x00,0x00,0x19,0x00,0x40,0x10,0x21,0x40,0x00,0x00,0x00,0x00,0xa9,0x80,
+0x00,0x00,0x00,0x00,0x17,0x00,0x20,0x11,0x21,0x30,0xa0,0x00,0x00,0x3e,0x02,0x00,
+0x03,0x3e,0x07,0x00,0x21,0x18,0x20,0x01,0x15,0x00,0xe3,0x10,0x00,0x00,0x00,0x00,
+0x01,0x00,0xc6,0x24,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0x00,0x1e,0x02,0x00,
+0x03,0x1e,0x03,0x00,0xf8,0xff,0x60,0x14,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,
+0x06,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x90,
+0x00,0x00,0x00,0x00,0xeb,0xff,0x40,0x14,0x01,0x00,0x08,0x25,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x01,0x00,0x00,0xa2,0x90,0x8d,0x46,0x00,0x08,0x00,0x16,0x02,0x00,
+0x00,0x00,0xc2,0x90,0x8d,0x46,0x00,0x08,0x00,0x16,0x02,0x00,0x00,0x00,0x87,0x90,
+0x00,0x00,0x00,0x00,0x14,0x00,0xe0,0x10,0x21,0x10,0x80,0x00,0x00,0x00,0xa4,0x90,
+0x00,0x00,0x00,0x00,0x00,0x1e,0x04,0x00,0x03,0x1e,0x03,0x00,0x09,0x00,0x60,0x10,
+0x21,0x30,0xa0,0x00,0x00,0x3e,0x07,0x00,0x03,0x3e,0x07,0x00,0x0b,0x00,0xe3,0x10,
+0x01,0x00,0xc6,0x24,0x00,0x00,0xc3,0x80,0x00,0x00,0x00,0x00,0xfb,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0x00,0x00,0x47,0x90,0x00,0x00,0x00,0x00,
+0xf0,0xff,0xe0,0x14,0x00,0x00,0x00,0x00,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,
+0x18,0x00,0xbf,0xaf,0x21,0x80,0x80,0x00,0x1d,0x00,0x80,0x10,0x21,0x88,0xa0,0x00,
+0x79,0x46,0x00,0x0c,0x21,0x20,0x00,0x02,0x21,0x80,0x02,0x02,0x00,0x00,0x02,0x82,
+0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02,0x22,0x00,0x40,0x10,0x21,0x18,0x00,0x00,
+0x9d,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x05,0x00,0x40,0x10,0x21,0x18,0x40,0x00,
+0x00,0x00,0x42,0x80,0x00,0x00,0x00,0x00,0x0a,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x02,0x80,0x02,0x3c,0xe8,0x87,0x43,0xac,0x21,0x18,0x00,0x02,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x60,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x00,0x00,0x60,0xa0,0xce,0x46,0x00,0x08,0x01,0x00,0x63,0x24,
+0x02,0x80,0x02,0x3c,0xe8,0x87,0x50,0x8c,0x00,0x00,0x00,0x00,0xf3,0xff,0x00,0x12,
+0x21,0x18,0x00,0x00,0x79,0x46,0x00,0x0c,0x21,0x20,0x00,0x02,0x21,0x80,0x02,0x02,
+0x00,0x00,0x02,0x82,0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02,0xe0,0xff,0x40,0x14,
+0x21,0x18,0x00,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x02,0x80,0x02,0x3c,0xe8,0x87,0x40,0xac,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0xe0,0xff,0xbd,0x27,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,
+0x1c,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x90,0x8c,0x21,0x90,0x80,0x00,
+0x21,0x88,0xa0,0x00,0x21,0x18,0x00,0x00,0x0f,0x00,0x00,0x12,0x21,0x20,0x00,0x02,
+0x79,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x80,0x02,0x02,0x00,0x00,0x02,0x82,
+0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02,0x07,0x00,0x40,0x10,0x21,0x18,0x00,0x00,
+0x9d,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x18,0x40,0x00,0x09,0x00,0x40,0x14,
+0x00,0x00,0x42,0xae,0x21,0x18,0x00,0x02,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x60,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x00,0x00,0x42,0x80,0x00,0x00,0x00,0x00,0xf5,0xff,0x40,0x10,
+0x01,0x00,0x64,0x24,0x00,0x00,0x60,0xa0,0x07,0x47,0x00,0x08,0x00,0x00,0x44,0xae,
+0xd8,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x21,0x88,0x80,0x00,0x21,0x20,0xa0,0x00,
+0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x20,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,
+0x42,0x46,0x00,0x0c,0x21,0x98,0xa0,0x00,0x21,0x90,0x40,0x00,0x08,0x00,0x40,0x16,
+0x21,0x10,0x20,0x02,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,
+0x42,0x46,0x00,0x0c,0x21,0x20,0x20,0x02,0x21,0x80,0x40,0x00,0x2a,0x10,0x52,0x00,
+0x0a,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x21,0x20,0x20,0x02,0x21,0x28,0x60,0x02,
+0x21,0x30,0x40,0x02,0x95,0x45,0x00,0x0c,0xff,0xff,0x10,0x26,0x0b,0x00,0x40,0x10,
+0x2a,0x18,0x12,0x02,0xf8,0xff,0x60,0x10,0x01,0x00,0x31,0x26,0x20,0x00,0xbf,0x8f,
+0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x23,0x47,0x00,0x08,
+0x21,0x10,0x20,0x02,0x25,0xb0,0x05,0x3c,0x01,0x00,0x06,0x24,0x01,0x80,0x02,0x3c,
+0x04,0x30,0x86,0x00,0xf1,0x02,0xa7,0x34,0xed,0x02,0xa4,0x34,0x0c,0x1d,0x42,0x24,
+0x18,0x03,0xa5,0x34,0x08,0x00,0x03,0x24,0x00,0x00,0xa2,0xac,0x00,0x00,0xe3,0xa0,
+0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0,
+0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0,
+0x00,0x00,0x80,0xa0,0x00,0x00,0xe0,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c,0x68,0x1d,0x42,0x24,0x18,0x03,0x63,0x34,
+0x00,0x00,0x62,0xac,0x00,0x00,0x83,0x90,0x30,0x00,0x02,0x24,0x05,0x00,0x62,0x10,
+0x21,0x20,0x00,0x00,0x31,0x00,0x02,0x24,0x02,0x00,0x62,0x10,0x01,0x00,0x04,0x24,
+0x07,0x00,0x04,0x24,0x43,0x47,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c,
+0x25,0xb0,0x03,0x3c,0xa4,0x1d,0x42,0x24,0x18,0x03,0x63,0x34,0x02,0x80,0x04,0x3c,
+0x00,0x00,0x62,0xac,0x08,0x00,0xe0,0x03,0xcc,0x3d,0x80,0xac,0x02,0x80,0x02,0x3c,
+0x38,0x3b,0x42,0x24,0xc0,0x20,0x04,0x00,0x21,0x20,0x82,0x00,0x21,0x28,0x00,0x00,
+0x00,0x60,0x06,0x40,0x01,0x00,0xc1,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x09,0x00,0x44,0x10,0x00,0x00,0x00,0x00,
+0x04,0x00,0x43,0x8c,0x21,0x28,0x40,0x00,0x00,0x00,0x42,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x62,0xac,0x04,0x00,0x43,0xac,0x00,0x00,0xa5,0xac,0x04,0x00,0xa5,0xac,
+0x00,0x60,0x86,0x40,0x08,0x00,0xe0,0x03,0x21,0x10,0xa0,0x00,0xe8,0xff,0xbd,0x27,
+0x10,0x00,0xb0,0xaf,0x21,0x80,0x80,0x00,0x01,0x01,0x02,0x2e,0x14,0x00,0xbf,0xaf,
+0x01,0x00,0x04,0x24,0x01,0x02,0x03,0x2e,0x0b,0x00,0x40,0x14,0x21,0x28,0x00,0x00,
+0x02,0x00,0x04,0x24,0x08,0x00,0x60,0x14,0x01,0x08,0x02,0x2e,0x06,0x00,0x40,0x14,
+0x03,0x00,0x04,0x24,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0xa0,0x00,
+0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x71,0x47,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xf8,0xff,0x40,0x10,0x21,0x28,0x40,0x00,0x0c,0x00,0x50,0xac,0x14,0x00,0xbf,0x8f,
+0x10,0x00,0xb0,0x8f,0x21,0x10,0xa0,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,
+0x02,0x80,0x03,0x3c,0x50,0x3b,0x62,0x8c,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x00,0x60,0x06,0x40,0x01,0x00,0xc1,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x10,0x00,0x83,0x8c,0x02,0x80,0x02,0x3c,0x38,0x3b,0x42,0x24,0xc0,0x18,0x03,0x00,
+0x21,0x18,0x62,0x00,0x00,0x00,0x65,0x8c,0x02,0x80,0x07,0x3c,0x02,0x80,0x08,0x3c,
+0x00,0x00,0x85,0xac,0x04,0x00,0xa4,0xac,0x04,0x00,0x83,0xac,0x98,0x3e,0xe5,0x8c,
+0x00,0x00,0x00,0x00,0x05,0x00,0xa0,0x10,0x00,0x00,0x64,0xac,0x84,0x3e,0x02,0x8d,
+0x98,0x3e,0xe0,0xac,0x25,0x10,0x45,0x00,0x84,0x3e,0x02,0xad,0x00,0x60,0x86,0x40,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,
+0x10,0x00,0xb0,0xaf,0xc0,0x80,0x04,0x00,0x21,0x80,0x04,0x02,0x80,0x80,0x10,0x00,
+0x21,0x80,0x04,0x02,0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,0x80,0x80,0x10,0x00,
+0x21,0x80,0x02,0x02,0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,
+0x90,0x11,0x05,0x8e,0xff,0x1f,0x02,0x3c,0x25,0xb0,0x12,0x3c,0xff,0xff,0x42,0x34,
+0xf8,0xff,0x03,0x24,0x88,0x11,0x02,0xae,0x84,0x01,0x46,0x36,0x24,0x28,0xa3,0x00,
+0xff,0xfe,0x02,0x24,0x00,0x00,0xc7,0x8c,0x24,0x28,0xa2,0x00,0xff,0xef,0x03,0x24,
+0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34,0x24,0x28,0xa3,0x00,0x24,0x28,0xa2,0x00,
+0x8c,0x11,0x07,0xae,0x90,0x11,0x05,0xae,0xcf,0x1b,0x00,0x0c,0x21,0x88,0x80,0x00,
+0x92,0x11,0x02,0x92,0x21,0x88,0x32,0x02,0x1c,0x00,0xbf,0x8f,0x60,0x01,0x22,0xa2,
+0x18,0x00,0xb2,0x8f,0x7c,0x11,0x00,0xae,0x60,0x11,0x00,0xae,0x64,0x11,0x00,0xae,
+0x68,0x11,0x00,0xae,0x6c,0x11,0x00,0xae,0x70,0x11,0x00,0xae,0x74,0x11,0x00,0xae,
+0x78,0x11,0x00,0xae,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0xff,0x00,0xa5,0x30,0xc0,0x10,0x05,0x00,0x21,0x10,0x45,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x02,0x80,0x03,0x3c,0x38,0x15,0x63,0x24,
+0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x90,0x11,0x43,0x8c,0x25,0xb0,0x05,0x3c,
+0xff,0x00,0xc6,0x30,0x21,0x30,0xc5,0x00,0xaf,0x01,0xc2,0x90,0x07,0x00,0x63,0x30,
+0x80,0x18,0x03,0x00,0x21,0x18,0x65,0x00,0xff,0x00,0x88,0x30,0xff,0x00,0x49,0x30,
+0x84,0x01,0x66,0x8c,0x21,0x50,0x00,0x00,0x21,0x58,0x00,0x00,0x2b,0x00,0x20,0x11,
+0x21,0x20,0x00,0x01,0x2b,0x00,0xc0,0x10,0x2b,0x10,0x09,0x01,0x21,0x28,0x00,0x00,
+0x20,0x48,0x00,0x08,0x01,0x00,0x07,0x24,0xff,0x00,0x65,0x30,0x1d,0x00,0xa2,0x2c,
+0x07,0x00,0x40,0x10,0xff,0xff,0x02,0x25,0x04,0x10,0xa7,0x00,0x24,0x10,0x46,0x00,
+0xf9,0xff,0x40,0x10,0x01,0x00,0xa3,0x24,0x21,0x58,0xa0,0x00,0xff,0xff,0x02,0x25,
+0xff,0x00,0x45,0x30,0x2b,0x18,0xab,0x00,0x0f,0x00,0x60,0x14,0x2b,0x10,0x49,0x01,
+0x01,0x00,0x04,0x24,0x04,0x10,0xa4,0x00,0x24,0x10,0x46,0x00,0xff,0xff,0xa7,0x24,
+0x04,0x00,0x40,0x10,0x01,0x00,0x43,0x25,0x17,0x00,0x49,0x11,0xff,0x00,0x6a,0x30,
+0x21,0x40,0xa0,0x00,0xff,0x00,0xe5,0x30,0x2b,0x10,0xab,0x00,0xf6,0xff,0x40,0x10,
+0x04,0x10,0xa4,0x00,0x2b,0x10,0x49,0x01,0x08,0x00,0x40,0x10,0x21,0x20,0x00,0x01,
+0x23,0x10,0x2a,0x01,0x2a,0x10,0x62,0x01,0x04,0x00,0x40,0x14,0x21,0x20,0x00,0x00,
+0x23,0x10,0x69,0x01,0x21,0x10,0x4a,0x00,0xff,0x00,0x44,0x30,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x80,0x00,0xfd,0xff,0x40,0x14,0x21,0x20,0x00,0x00,0x23,0x10,0x09,0x01,
+0x41,0x48,0x00,0x08,0xff,0x00,0x44,0x30,0x21,0x20,0x00,0x01,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x80,0x00,0xff,0x00,0x84,0x30,0xc0,0x10,0x04,0x00,0x21,0x10,0x44,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,0x02,0x80,0x03,0x3c,0x38,0x15,0x63,0x24,
+0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x25,0xb0,0x06,0x3c,0x90,0x11,0x43,0x8c,
+0xff,0x00,0xa5,0x30,0x21,0x20,0x86,0x00,0x21,0x28,0xa6,0x00,0x60,0x01,0x82,0x90,
+0xaf,0x01,0xa4,0x90,0x07,0x00,0x63,0x30,0x80,0x18,0x03,0x00,0x21,0x18,0x66,0x00,
+0xff,0x00,0x48,0x30,0xff,0x00,0x89,0x30,0x84,0x01,0x66,0x8c,0x21,0x50,0x00,0x00,
+0x21,0x58,0x00,0x00,0x2b,0x00,0x20,0x11,0x21,0x20,0x00,0x01,0x2b,0x00,0xc0,0x10,
+0x2b,0x10,0x09,0x01,0x21,0x28,0x00,0x00,0x6e,0x48,0x00,0x08,0x01,0x00,0x07,0x24,
+0xff,0x00,0x65,0x30,0x1d,0x00,0xa2,0x2c,0x07,0x00,0x40,0x10,0xff,0xff,0x02,0x25,
+0x04,0x10,0xa7,0x00,0x24,0x10,0x46,0x00,0xf9,0xff,0x40,0x10,0x01,0x00,0xa3,0x24,
+0x21,0x58,0xa0,0x00,0xff,0xff,0x02,0x25,0xff,0x00,0x45,0x30,0x2b,0x18,0xab,0x00,
+0x0f,0x00,0x60,0x14,0x2b,0x10,0x49,0x01,0x01,0x00,0x04,0x24,0x04,0x10,0xa4,0x00,
+0x24,0x10,0x46,0x00,0xff,0xff,0xa7,0x24,0x04,0x00,0x40,0x10,0x01,0x00,0x43,0x25,
+0x17,0x00,0x49,0x11,0xff,0x00,0x6a,0x30,0x21,0x40,0xa0,0x00,0xff,0x00,0xe5,0x30,
+0x2b,0x10,0xab,0x00,0xf6,0xff,0x40,0x10,0x04,0x10,0xa4,0x00,0x2b,0x10,0x49,0x01,
+0x08,0x00,0x40,0x10,0x21,0x20,0x00,0x01,0x23,0x10,0x2a,0x01,0x2a,0x10,0x62,0x01,
+0x04,0x00,0x40,0x14,0x21,0x20,0x00,0x00,0x23,0x10,0x69,0x01,0x21,0x10,0x4a,0x00,
+0xff,0x00,0x44,0x30,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0xfd,0xff,0x40,0x14,
+0x21,0x20,0x00,0x00,0x23,0x10,0x09,0x01,0x8f,0x48,0x00,0x08,0xff,0x00,0x44,0x30,
+0x21,0x20,0x00,0x01,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0xd8,0xff,0xbd,0x27,
+0x02,0x80,0x02,0x3c,0x18,0x00,0xb2,0xaf,0xff,0xff,0x03,0x3c,0x38,0x15,0x52,0x24,
+0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x20,0x00,0xbf,0xaf,
+0xff,0x1f,0x73,0x34,0x21,0x88,0x00,0x00,0x21,0x80,0x40,0x02,0xcd,0x47,0x00,0x0c,
+0x21,0x20,0x20,0x02,0x90,0x11,0x02,0x8e,0x21,0x28,0x00,0x00,0x24,0x10,0x53,0x00,
+0x00,0x20,0x42,0x34,0x90,0x11,0x02,0xae,0x92,0x11,0x03,0x92,0x00,0x00,0x00,0x00,
+0x80,0x18,0x03,0x00,0x21,0x18,0x72,0x00,0xf8,0x04,0x64,0x8c,0x6c,0x05,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x21,0x10,0x44,0x00,0x42,0x10,0x02,0x00,0x5c,0x11,0x02,0xae,
+0x21,0x10,0x05,0x02,0x01,0x00,0xa5,0x24,0x1d,0x00,0xa3,0x28,0xce,0x11,0x40,0xa0,
+0x94,0x11,0x40,0xa0,0xfa,0xff,0x60,0x14,0xb1,0x11,0x40,0xa0,0x01,0x00,0x31,0x26,
+0x20,0x00,0x22,0x2a,0xec,0x11,0x00,0xae,0xe4,0xff,0x40,0x14,0x94,0x00,0x10,0x26,
+0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0xc0,0xff,0xbd,0x27,
+0x02,0x80,0x02,0x3c,0x2c,0x00,0xb5,0xaf,0x38,0x15,0x46,0x24,0x3c,0x00,0xbf,0xaf,
+0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x28,0x00,0xb4,0xaf,
+0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0xec,0x25,0xc2,0x8c,0xff,0x00,0x03,0x24,0xff,0x00,0x8d,0x30,0xff,0xff,0x42,0x38,
+0x0b,0x18,0x02,0x00,0xff,0xff,0x04,0x34,0x10,0x00,0xa3,0xaf,0xec,0x25,0xc4,0xac,
+0xb9,0x00,0xa0,0x11,0x08,0x00,0x15,0x24,0x02,0x80,0x02,0x3c,0xb8,0x81,0x45,0x24,
+0x94,0x04,0xc4,0x24,0xea,0x48,0x00,0x08,0x21,0x88,0x00,0x00,0x01,0x00,0x31,0x26,
+0x00,0x00,0x82,0xa0,0x1d,0x00,0x22,0x2a,0x0b,0x00,0x40,0x10,0x01,0x00,0x84,0x24,
+0x21,0x10,0x25,0x02,0x00,0x00,0x42,0x90,0x00,0x00,0x00,0x00,0xf7,0xff,0x40,0x10,
+0xfd,0xff,0x43,0x24,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x00,0x00,0x83,0xa0,
+0xf7,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x02,0x80,0x02,0x3c,0x38,0x15,0x4a,0x24,
+0x01,0x80,0x03,0x3c,0x01,0x80,0x02,0x3c,0x50,0x7f,0x6c,0x24,0xd8,0x7e,0x4b,0x24,
+0x21,0x88,0x00,0x00,0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00,0x21,0x40,0x2a,0x01,
+0x21,0x38,0x2c,0x01,0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90,0x00,0x00,0x45,0x90,
+0x21,0x18,0x06,0x01,0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28,0xc9,0x03,0x64,0xa0,
+0xf8,0xff,0x40,0x14,0x38,0x03,0x65,0xa0,0x21,0x10,0x2b,0x02,0x1d,0x00,0x44,0x90,
+0x00,0x00,0x45,0x90,0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,
+0x77,0x04,0x64,0xa0,0x5a,0x04,0x65,0xa0,0xeb,0xff,0x40,0x14,0x05,0x00,0x29,0x25,
+0xaf,0x00,0xa0,0x11,0x02,0x80,0x02,0x3c,0x38,0x15,0x48,0x24,0x02,0x80,0x03,0x3c,
+0x02,0x80,0x02,0x3c,0x4c,0x82,0x69,0x24,0xd8,0x81,0x47,0x24,0x21,0x88,0x00,0x00,
+0x80,0x18,0x11,0x00,0x21,0x10,0x69,0x00,0x21,0x20,0x67,0x00,0x00,0x00,0x46,0x8c,
+0x00,0x00,0x85,0x8c,0x01,0x00,0x31,0x26,0x21,0x18,0x68,0x00,0x04,0x00,0x22,0x2a,
+0xf8,0x04,0x65,0xac,0xf6,0xff,0x40,0x14,0x6c,0x05,0x66,0xac,0x02,0x80,0x02,0x3c,
+0x38,0x15,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x4c,0x82,0x68,0x24,
+0xd8,0x81,0x47,0x24,0x04,0x00,0x11,0x24,0x80,0x20,0x11,0x00,0x21,0x10,0x88,0x00,
+0x21,0x30,0x87,0x00,0x00,0x00,0x45,0x8c,0x00,0x00,0xc3,0x8c,0x01,0x00,0x31,0x26,
+0x21,0x20,0x89,0x00,0x82,0x28,0x05,0x00,0x82,0x18,0x03,0x00,0x1d,0x00,0x22,0x2a,
+0xf8,0x04,0x83,0xac,0xf4,0xff,0x40,0x14,0x6c,0x05,0x85,0xac,0x02,0x80,0x02,0x3c,
+0x38,0x15,0x56,0x24,0xff,0xff,0x02,0x3c,0x21,0xf0,0xc0,0x02,0xff,0x1f,0x57,0x34,
+0x21,0x88,0x00,0x00,0x21,0xa0,0x00,0x00,0x47,0x49,0x00,0x08,0x21,0x90,0xc0,0x02,
+0x01,0x00,0x31,0x26,0x20,0x00,0x22,0x2a,0x94,0x00,0x52,0x26,0x3d,0x00,0x40,0x10,
+0x94,0x00,0x94,0x26,0x90,0x11,0x44,0x8e,0x01,0x00,0x03,0x24,0x02,0x13,0x04,0x00,
+0x01,0x00,0x53,0x30,0xf6,0xff,0x63,0x16,0x07,0x00,0x82,0x30,0x25,0xb0,0x03,0x3c,
+0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x84,0x01,0x45,0x8c,0x88,0x11,0x43,0x8e,
+0x21,0x20,0x20,0x02,0x24,0x28,0xa3,0x00,0xcf,0x1b,0x00,0x0c,0x8c,0x11,0x45,0xae,
+0x92,0x11,0x44,0x92,0xa9,0x1b,0x00,0x0c,0xff,0x00,0x25,0x32,0x90,0x11,0x42,0x8e,
+0x00,0x00,0x00,0x00,0x24,0x10,0x57,0x00,0x00,0x20,0x42,0x34,0x90,0x11,0x42,0xae,
+0x92,0x11,0x50,0x92,0x00,0x00,0x00,0x00,0x21,0x20,0x00,0x02,0xbf,0x1b,0x00,0x0c,
+0x80,0x80,0x10,0x00,0x21,0x80,0x16,0x02,0x60,0x11,0x40,0xae,0x64,0x11,0x40,0xae,
+0x68,0x11,0x40,0xae,0x6c,0x11,0x40,0xae,0x70,0x11,0x40,0xae,0x74,0x11,0x40,0xae,
+0x78,0x11,0x40,0xae,0x7c,0x11,0x40,0xae,0xf8,0x04,0x04,0x8e,0x6c,0x05,0x03,0x8e,
+0x26,0x10,0x53,0x00,0x21,0x30,0x00,0x00,0x21,0x18,0x64,0x00,0x42,0x18,0x03,0x00,
+0x04,0x00,0x04,0x24,0x0a,0xa8,0x82,0x00,0x5c,0x11,0x43,0xae,0x21,0x20,0x9e,0x02,
+0x21,0x10,0x86,0x00,0x01,0x00,0xc6,0x24,0x1d,0x00,0xc3,0x28,0xce,0x11,0x40,0xa0,
+0x94,0x11,0x40,0xa0,0xfa,0xff,0x60,0x14,0xb1,0x11,0x40,0xa0,0x01,0x00,0x31,0x26,
+0x20,0x00,0x22,0x2a,0xec,0x11,0x80,0xac,0x94,0x00,0x52,0x26,0xc5,0xff,0x40,0x14,
+0x94,0x00,0x94,0x26,0x25,0xb0,0x02,0x3c,0x80,0x01,0x42,0x34,0x00,0x00,0x55,0xa0,
+0x10,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00,0x03,0x00,0x60,0x14,0x02,0x80,0x03,0x3c,
+0x38,0x15,0x62,0x24,0xec,0x25,0x40,0xac,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,
+0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,0xb8,0x81,0x45,0x24,
+0x94,0x04,0xc4,0x24,0x21,0x88,0x00,0x00,0x21,0x10,0x25,0x02,0x00,0x00,0x43,0x90,
+0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x00,0x00,0x83,0xa0,0xfa,0xff,0x40,0x14,
+0x01,0x00,0x84,0x24,0x02,0x80,0x02,0x3c,0x38,0x15,0x4a,0x24,0x02,0x80,0x03,0x3c,
+0x01,0x80,0x02,0x3c,0x74,0x80,0x6c,0x24,0x14,0x7f,0x4b,0x24,0x21,0x88,0x00,0x00,
+0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00,0x21,0x40,0x2a,0x01,0x21,0x38,0x2c,0x01,
+0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90,0x00,0x00,0x45,0x90,0x21,0x18,0x06,0x01,
+0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28,0xc9,0x03,0x64,0xa0,0xf8,0xff,0x40,0x14,
+0x38,0x03,0x65,0xa0,0x21,0x10,0x2b,0x02,0x1d,0x00,0x44,0x90,0x00,0x00,0x45,0x90,
+0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x77,0x04,0x64,0xa0,
+0x5a,0x04,0x65,0xa0,0xeb,0xff,0x40,0x14,0x05,0x00,0x29,0x25,0x02,0x80,0x02,0x3c,
+0x38,0x15,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x4c,0x82,0x68,0x24,
+0xd8,0x81,0x47,0x24,0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00,0x21,0x10,0x68,0x00,
+0x21,0x20,0x67,0x00,0x00,0x00,0x46,0x8c,0x00,0x00,0x85,0x8c,0x01,0x00,0x31,0x26,
+0x21,0x18,0x69,0x00,0x1d,0x00,0x22,0x2a,0xf8,0x04,0x65,0xac,0xf6,0xff,0x40,0x14,
+0x6c,0x05,0x66,0xac,0x3a,0x49,0x00,0x08,0x02,0x80,0x02,0x3c,0xd8,0xff,0xbd,0x27,
+0xff,0xff,0x84,0x30,0x18,0x00,0xb2,0xaf,0xf0,0x01,0x92,0x30,0x02,0x91,0x12,0x00,
+0x14,0x00,0xb1,0xaf,0xc0,0x88,0x12,0x00,0x21,0x88,0x32,0x02,0x80,0x88,0x11,0x00,
+0x21,0x88,0x32,0x02,0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,0x80,0x88,0x11,0x00,
+0x21,0x88,0x22,0x02,0x20,0x00,0xbf,0xaf,0x1c,0x00,0xb3,0xaf,0x10,0x00,0xb0,0xaf,
+0x90,0x11,0x30,0x8e,0x00,0x02,0x83,0x30,0xff,0xfe,0x02,0x24,0x2b,0x18,0x03,0x00,
+0x00,0x10,0x10,0x36,0x24,0x80,0x02,0x02,0x00,0x1a,0x03,0x00,0x00,0x04,0x82,0x30,
+0x25,0x80,0x03,0x02,0x2b,0x10,0x02,0x00,0xf7,0xff,0x03,0x24,0x24,0x80,0x03,0x02,
+0xc0,0x10,0x02,0x00,0x25,0x80,0x02,0x02,0x88,0x11,0x25,0xae,0x90,0x11,0x30,0xae,
+0x2c,0x1c,0x00,0x0c,0x21,0x98,0xa0,0x00,0xf8,0xff,0x03,0x24,0x24,0x80,0x03,0x02,
+0x07,0x00,0x42,0x30,0x25,0x80,0x02,0x02,0x07,0x00,0x03,0x32,0x25,0xb0,0x02,0x3c,
+0x80,0x18,0x03,0x00,0x90,0x11,0x30,0xae,0x21,0x18,0x62,0x00,0x84,0x01,0x62,0x8c,
+0x21,0x20,0x40,0x02,0x24,0x10,0x53,0x00,0xcf,0x1b,0x00,0x0c,0x8c,0x11,0x22,0xae,
+0x92,0x11,0x24,0x92,0x21,0x28,0x40,0x02,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0xa9,0x1b,0x00,0x08,
+0x28,0x00,0xbd,0x27,0xcd,0x47,0x00,0x08,0xff,0x00,0x84,0x30,0x02,0x80,0x02,0x3c,
+0x38,0x15,0x43,0x24,0x1f,0x00,0x04,0x24,0x90,0x11,0x62,0x8c,0xff,0xff,0x84,0x24,
+0x00,0x10,0x42,0x34,0x90,0x11,0x62,0xac,0xfb,0xff,0x81,0x04,0x94,0x00,0x63,0x24,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x23,0x10,0xa4,0x00,
+0x2b,0x18,0xa4,0x00,0x23,0x20,0x85,0x00,0x08,0x00,0xe0,0x03,0x0b,0x10,0x83,0x00,
+0x20,0xff,0xbd,0x27,0xcc,0x00,0xb5,0xaf,0xdc,0x00,0xbf,0xaf,0xd8,0x00,0xbe,0xaf,
+0xd4,0x00,0xb7,0xaf,0xd0,0x00,0xb6,0xaf,0xc8,0x00,0xb4,0xaf,0xc4,0x00,0xb3,0xaf,
+0xc0,0x00,0xb2,0xaf,0xbc,0x00,0xb1,0xaf,0xb8,0x00,0xb0,0xaf,0x21,0xa8,0x00,0x00,
+0x40,0x11,0x15,0x00,0x10,0x00,0xa3,0x27,0x21,0x10,0x43,0x00,0x07,0x00,0x16,0x24,
+0xff,0xff,0xd6,0x26,0x00,0x00,0x40,0xac,0xfd,0xff,0xc1,0x06,0x04,0x00,0x42,0x24,
+0x01,0x00,0xb5,0x26,0x03,0x00,0xa2,0x2e,0xf6,0xff,0x40,0x14,0x40,0x11,0x15,0x00,
+0x25,0xb0,0x10,0x3c,0xc4,0x02,0x02,0x36,0x00,0x00,0x40,0xac,0x04,0x00,0x03,0x36,
+0x00,0x00,0x62,0x8c,0x04,0x0c,0x03,0x36,0x00,0x00,0x63,0x8c,0x08,0x0c,0x04,0x36,
+0x0f,0x00,0x11,0x3c,0xac,0x00,0xa3,0xaf,0x00,0x00,0x84,0x8c,0x24,0x10,0x51,0x00,
+0x02,0xf4,0x02,0x00,0xb0,0x00,0xa4,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x21,0x20,0x00,0x00,0x95,0x44,0x00,0x0c,
+0xff,0xff,0x25,0x36,0x70,0x00,0xa2,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,
+0x01,0x00,0x04,0x24,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x21,0x20,0x00,0x00,0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,
+0x74,0x00,0xa2,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,
+0xe0,0x0e,0x02,0x36,0x21,0x20,0x40,0x00,0x00,0x00,0x42,0x8c,0xdc,0x0e,0x12,0x36,
+0x70,0x0e,0x13,0x36,0x78,0x00,0xa2,0xaf,0x00,0x00,0x42,0x8e,0x74,0x0e,0x14,0x36,
+0x78,0x0e,0x15,0x36,0x7c,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8e,0x7c,0x0e,0x16,0x36,
+0x80,0x0e,0x17,0x36,0x80,0x00,0xa3,0xaf,0x00,0x00,0x82,0x8e,0xd4,0x0e,0x10,0x36,
+0xed,0x3f,0x11,0x3c,0x84,0x00,0xa2,0xaf,0x00,0x00,0xa3,0x8e,0xfb,0x92,0x25,0x36,
+0x88,0x00,0xa3,0xaf,0x00,0x00,0xc2,0x8e,0x00,0x00,0x00,0x00,0x8c,0x00,0xa2,0xaf,
+0x00,0x00,0xe3,0x8e,0x25,0xb0,0x02,0x3c,0x84,0x0e,0x42,0x34,0x90,0x00,0xa3,0xaf,
+0x00,0x00,0x42,0x8c,0x25,0xb0,0x03,0x3c,0x88,0x0e,0x63,0x34,0x94,0x00,0xa2,0xaf,
+0x00,0x00,0x63,0x8c,0x25,0xb0,0x02,0x3c,0x8c,0x0e,0x42,0x34,0x98,0x00,0xa3,0xaf,
+0x00,0x00,0x42,0x8c,0x25,0xb0,0x03,0x3c,0xd0,0x0e,0x63,0x34,0x9c,0x00,0xa2,0xaf,
+0x00,0x00,0x63,0x8c,0x00,0x00,0x00,0x00,0xa0,0x00,0xa3,0xaf,0x00,0x00,0x02,0x8e,
+0x25,0xb0,0x03,0x3c,0xd8,0x0e,0x63,0x34,0xa4,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8c,
+0x1c,0x4a,0x00,0x0c,0xa8,0x00,0xa3,0xaf,0x21,0x20,0x40,0x02,0x1c,0x4a,0x00,0x0c,
+0xfb,0x92,0x25,0x36,0x21,0x20,0x60,0x02,0x1c,0x4a,0x00,0x0c,0xfb,0x92,0x25,0x36,
+0x21,0x20,0x80,0x02,0x1c,0x4a,0x00,0x0c,0xfb,0x92,0x25,0x36,0x21,0x20,0xa0,0x02,
+0x1c,0x4a,0x00,0x0c,0xfb,0x92,0x25,0x36,0x21,0x20,0xc0,0x02,0x1c,0x4a,0x00,0x0c,
+0xfb,0x92,0x25,0x36,0x21,0x20,0xe0,0x02,0x1c,0x4a,0x00,0x0c,0xfb,0x92,0x25,0x36,
+0x02,0x80,0x02,0x3c,0x40,0x83,0x42,0x24,0x00,0x00,0x44,0x8c,0xfb,0x92,0x25,0x36,
+0x1c,0x4a,0x00,0x0c,0x25,0xb0,0x13,0x3c,0x02,0x80,0x03,0x3c,0x44,0x83,0x63,0x24,
+0x00,0x00,0x64,0x8c,0xfb,0x92,0x25,0x36,0x1c,0x4a,0x00,0x0c,0x21,0xb0,0x00,0x00,
+0x02,0x80,0x02,0x3c,0x48,0x83,0x42,0x24,0x00,0x00,0x44,0x8c,0xfb,0x92,0x25,0x36,
+0x1c,0x4a,0x00,0x0c,0xff,0x03,0x14,0x3c,0x02,0x80,0x03,0x3c,0x4c,0x83,0x63,0x24,
+0x00,0x00,0x64,0x8c,0xfb,0x92,0x25,0x36,0x1c,0x4a,0x00,0x0c,0x10,0x00,0xb7,0x27,
+0x21,0x20,0x00,0x02,0x1c,0x4a,0x00,0x0c,0xfb,0x92,0x25,0x36,0x02,0x80,0x02,0x3c,
+0x50,0x83,0x42,0x24,0x00,0x00,0x44,0x8c,0x1c,0x4a,0x00,0x0c,0xfb,0x92,0x25,0x36,
+0x08,0x4b,0x00,0x08,0x21,0xa8,0x00,0x00,0x6e,0x00,0xc2,0x13,0x02,0x80,0x02,0x3c,
+0xac,0x0e,0x62,0x36,0x94,0x0e,0x63,0x36,0x00,0x00,0x48,0x8c,0x00,0x00,0x64,0x8c,
+0xb4,0x0e,0x62,0x36,0x9c,0x0e,0x63,0x36,0x00,0x00,0x45,0x8c,0x00,0x00,0x66,0x8c,
+0x25,0xb0,0x03,0x3c,0xbc,0x0e,0x63,0x34,0x00,0x00,0x67,0x8c,0x24,0x20,0x94,0x00,
+0x00,0xd8,0x02,0x3c,0x24,0x10,0x02,0x01,0x24,0x28,0xb4,0x00,0x24,0x30,0xd4,0x00,
+0x24,0x38,0xf4,0x00,0x02,0x24,0x04,0x00,0x20,0x01,0x03,0x24,0x01,0x00,0x42,0x2c,
+0x02,0x2c,0x05,0x00,0x02,0x34,0x06,0x00,0xe8,0x00,0x83,0x10,0x02,0x3c,0x07,0x00,
+0xe6,0x00,0xa3,0x10,0x20,0x00,0x03,0x24,0xe4,0x00,0xc3,0x10,0x00,0x00,0x00,0x00,
+0xe2,0x00,0xe3,0x10,0x01,0x00,0x08,0x24,0x80,0x00,0x03,0x24,0x08,0x00,0x83,0x10,
+0x21,0x20,0x00,0x00,0x06,0x00,0xa3,0x10,0x21,0x20,0x00,0x00,0xe0,0x03,0x03,0x24,
+0x03,0x00,0xc3,0x10,0x00,0x00,0x00,0x00,0xdb,0x00,0xe3,0x10,0x01,0x00,0x04,0x24,
+0x05,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x11,0x00,0x00,0x00,0x00,
+0xd7,0x00,0x80,0x14,0x94,0x0e,0x63,0x36,0x01,0x00,0xb5,0x26,0x0a,0x00,0xa2,0x2e,
+0x01,0x01,0x40,0x10,0x00,0x00,0x00,0x00,0xcb,0xff,0xc0,0x17,0x01,0x00,0x02,0x24,
+0xa0,0x00,0x03,0x3c,0x30,0x54,0x65,0x34,0x1c,0x4a,0x00,0x0c,0x04,0x0c,0x64,0x36,
+0x08,0x00,0x05,0x3c,0xe4,0x00,0xa5,0x34,0x1c,0x4a,0x00,0x0c,0x08,0x0c,0x64,0x36,
+0x28,0x0e,0x64,0x36,0x1c,0x4a,0x00,0x0c,0x80,0x80,0x05,0x3c,0x14,0x02,0x02,0x3c,
+0x48,0x01,0x45,0x34,0x1c,0x4a,0x00,0x0c,0x40,0x0e,0x64,0x36,0x16,0x68,0x05,0x3c,
+0xa2,0x04,0xa5,0x34,0x1c,0x4a,0x00,0x0c,0x44,0x0e,0x64,0x36,0x4c,0x0e,0x64,0x36,
+0x1c,0x4a,0x00,0x0c,0xd1,0x28,0x05,0x24,0x14,0x02,0x03,0x3c,0x4d,0x01,0x65,0x34,
+0x1c,0x4a,0x00,0x0c,0x60,0x0e,0x64,0x36,0x16,0x28,0x05,0x3c,0xba,0x08,0xa5,0x34,
+0x1c,0x4a,0x00,0x0c,0x64,0x0e,0x64,0x36,0x6c,0x0e,0x64,0x36,0x1c,0x4a,0x00,0x0c,
+0xd1,0x28,0x05,0x24,0x00,0xfb,0x05,0x3c,0x01,0x00,0xa5,0x34,0x1c,0x4a,0x00,0x0c,
+0x48,0x0e,0x64,0x36,0x00,0xf8,0x05,0x3c,0x01,0x00,0xa5,0x34,0x1c,0x4a,0x00,0x0c,
+0x48,0x0e,0x64,0x36,0xab,0x18,0x00,0x0c,0x03,0x00,0x04,0x24,0xa0,0x00,0x02,0x3c,
+0x33,0x54,0x45,0x34,0x1c,0x4a,0x00,0x0c,0x04,0x0c,0x64,0x36,0x08,0x0c,0x64,0x36,
+0x1c,0x4a,0x00,0x0c,0xe4,0x00,0x05,0x24,0x28,0x0e,0x64,0x36,0x1c,0x4a,0x00,0x0c,
+0x21,0x28,0x00,0x00,0x01,0x00,0x02,0x24,0x96,0xff,0xc2,0x17,0xac,0x0e,0x62,0x36,
+0x02,0x80,0x02,0x3c,0x54,0x83,0x42,0x24,0x25,0xb0,0x03,0x3c,0x00,0x00,0x44,0x8c,
+0x20,0x08,0x63,0x34,0x00,0x00,0x71,0x8c,0x00,0x01,0x03,0x3c,0x00,0x01,0x65,0x34,
+0x1c,0x4a,0x00,0x0c,0x25,0xb0,0x12,0x3c,0x00,0x01,0x02,0x3c,0x00,0x01,0x45,0x34,
+0x1c,0x4a,0x00,0x0c,0x28,0x08,0x44,0x36,0xa0,0x00,0x03,0x3c,0x30,0x54,0x65,0x34,
+0x1c,0x4a,0x00,0x0c,0x04,0x0c,0x44,0x36,0x08,0x00,0x05,0x3c,0xe4,0x00,0xa5,0x34,
+0x1c,0x4a,0x00,0x0c,0x08,0x0c,0x44,0x36,0x28,0x0e,0x44,0x36,0x1c,0x4a,0x00,0x0c,
+0x80,0x80,0x05,0x3c,0x00,0x01,0x02,0x3c,0x00,0x7c,0x45,0x34,0x1c,0x4a,0x00,0x0c,
+0x30,0x0e,0x44,0x36,0x00,0x01,0x03,0x3c,0x00,0x48,0x65,0x34,0x1c,0x4a,0x00,0x0c,
+0x34,0x0e,0x44,0x36,0x00,0x10,0x02,0x3c,0x1f,0xdc,0x45,0x34,0x1c,0x4a,0x00,0x0c,
+0x38,0x0e,0x44,0x36,0x00,0x10,0x03,0x3c,0x1f,0x8c,0x65,0x34,0x1c,0x4a,0x00,0x0c,
+0x3c,0x0e,0x44,0x36,0x14,0x02,0x02,0x3c,0x02,0x01,0x45,0x34,0x1c,0x4a,0x00,0x0c,
+0x40,0x0e,0x44,0x36,0x16,0x68,0x05,0x3c,0xc7,0x04,0xa5,0x34,0x1c,0x4a,0x00,0x0c,
+0x44,0x0e,0x44,0x36,0x4c,0x0e,0x44,0x36,0x1c,0x4a,0x00,0x0c,0xd1,0x28,0x05,0x24,
+0x6c,0x0e,0x44,0x36,0x1c,0x4a,0x00,0x0c,0xd1,0x28,0x05,0x24,0x00,0x01,0x03,0x3c,
+0x00,0x7c,0x65,0x34,0x1c,0x4a,0x00,0x0c,0x50,0x0e,0x44,0x36,0x00,0x01,0x02,0x3c,
+0x00,0x48,0x45,0x34,0x1c,0x4a,0x00,0x0c,0x54,0x0e,0x44,0x36,0x00,0x10,0x03,0x3c,
+0x23,0xdc,0x65,0x34,0x1c,0x4a,0x00,0x0c,0x58,0x0e,0x44,0x36,0x00,0x10,0x02,0x3c,
+0x23,0x8c,0x45,0x34,0x1c,0x4a,0x00,0x0c,0x5c,0x0e,0x44,0x36,0x14,0x02,0x03,0x3c,
+0x02,0x01,0x65,0x34,0x1c,0x4a,0x00,0x0c,0x60,0x0e,0x44,0x36,0x16,0x28,0x05,0x3c,
+0x07,0x0d,0xa5,0x34,0x1c,0x4a,0x00,0x0c,0x64,0x0e,0x44,0x36,0x48,0x0e,0x44,0x36,
+0x1c,0x4a,0x00,0x0c,0x00,0xfb,0x05,0x3c,0x00,0xf8,0x05,0x3c,0x1c,0x4a,0x00,0x0c,
+0x48,0x0e,0x44,0x36,0x00,0x02,0x10,0x3c,0xab,0x18,0x00,0x0c,0x03,0x00,0x04,0x24,
+0x4c,0x0e,0x44,0x36,0x1c,0x4a,0x00,0x0c,0xd1,0x28,0x05,0x36,0xd1,0x28,0x05,0x36,
+0x1c,0x4a,0x00,0x0c,0x6c,0x0e,0x44,0x36,0x48,0x0e,0x44,0x36,0x1c,0x4a,0x00,0x0c,
+0x00,0xfb,0x05,0x3c,0x00,0xf8,0x05,0x3c,0x1c,0x4a,0x00,0x0c,0x48,0x0e,0x44,0x36,
+0xab,0x18,0x00,0x0c,0x03,0x00,0x04,0x24,0xac,0x00,0xa5,0x8f,0x04,0x0c,0x44,0x36,
+0x1c,0x4a,0x00,0x0c,0x00,0x01,0x31,0x32,0xb0,0x00,0xa5,0x8f,0x08,0x0c,0x44,0x36,
+0x1c,0x4a,0x00,0x0c,0x2b,0x88,0x11,0x00,0x28,0x0e,0x44,0x36,0x1c,0x4a,0x00,0x0c,
+0x21,0x28,0x00,0x00,0x23,0xff,0x20,0x16,0xac,0x0e,0x62,0x36,0x02,0x80,0x02,0x3c,
+0x54,0x83,0x42,0x24,0x00,0x00,0x44,0x8c,0x1c,0x4a,0x00,0x0c,0x00,0x01,0x05,0x3c,
+0x28,0x08,0x44,0x36,0x1c,0x4a,0x00,0x0c,0x00,0x01,0x05,0x3c,0xac,0x0e,0x62,0x36,
+0x94,0x0e,0x63,0x36,0x00,0x00,0x48,0x8c,0x00,0x00,0x64,0x8c,0xb4,0x0e,0x62,0x36,
+0x9c,0x0e,0x63,0x36,0x00,0x00,0x45,0x8c,0x00,0x00,0x66,0x8c,0x25,0xb0,0x03,0x3c,
+0xbc,0x0e,0x63,0x34,0x00,0x00,0x67,0x8c,0x24,0x20,0x94,0x00,0x00,0xd8,0x02,0x3c,
+0x24,0x10,0x02,0x01,0x24,0x28,0xb4,0x00,0x24,0x30,0xd4,0x00,0x24,0x38,0xf4,0x00,
+0x02,0x24,0x04,0x00,0x20,0x01,0x03,0x24,0x01,0x00,0x42,0x2c,0x02,0x2c,0x05,0x00,
+0x02,0x34,0x06,0x00,0x1a,0xff,0x83,0x14,0x02,0x3c,0x07,0x00,0x80,0x00,0x03,0x24,
+0x20,0xff,0x83,0x14,0x21,0x40,0x00,0x00,0xfe,0x4a,0x00,0x08,0x21,0x20,0x00,0x00,
+0x00,0x00,0x62,0x8c,0x9c,0x0e,0x65,0x36,0xa4,0x0e,0x66,0x36,0x24,0x10,0x54,0x00,
+0x02,0x14,0x02,0x00,0x00,0x00,0xe2,0xae,0x00,0x00,0xa4,0x8c,0xac,0x0e,0x67,0x36,
+0xb4,0x0e,0x65,0x36,0x24,0x20,0x94,0x00,0x02,0x24,0x04,0x00,0x04,0x00,0xe4,0xae,
+0x00,0x00,0xc3,0x8c,0xc4,0x0e,0x64,0x36,0x24,0x18,0x74,0x00,0x02,0x1c,0x03,0x00,
+0x08,0x00,0xe3,0xae,0x00,0x00,0xe2,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x54,0x00,
+0x02,0x14,0x02,0x00,0x0c,0x00,0xe2,0xae,0x00,0x00,0xa3,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x18,0x74,0x00,0x02,0x1c,0x03,0x00,0x10,0x00,0xe3,0xae,0x25,0xb0,0x03,0x3c,
+0xbc,0x0e,0x63,0x34,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x54,0x00,
+0x02,0x14,0x02,0x00,0x14,0x00,0xe2,0xae,0x00,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x18,0x74,0x00,0x02,0x1c,0x03,0x00,0x18,0x00,0xe3,0xae,0x25,0xb0,0x03,0x3c,
+0xcc,0x0e,0x63,0x34,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x54,0x00,
+0x02,0x14,0x02,0x00,0x1c,0x00,0xe2,0xae,0x01,0x00,0xd6,0x26,0x03,0x00,0xc2,0x2e,
+0xc7,0xfe,0x40,0x14,0x20,0x00,0xf7,0x26,0x10,0x00,0xb0,0x8f,0x00,0x00,0x00,0x00,
+0x39,0x01,0x00,0x16,0x00,0x00,0x00,0x00,0x30,0x00,0xb1,0x8f,0x00,0x00,0x00,0x00,
+0x06,0x00,0x20,0x16,0x21,0x20,0x00,0x02,0x50,0x00,0xa2,0x8f,0x00,0x00,0x00,0x00,
+0x29,0x00,0x40,0x10,0xff,0x00,0x05,0x24,0x21,0x20,0x00,0x02,0x25,0x4a,0x00,0x0c,
+0x21,0x28,0x20,0x02,0x03,0x00,0x42,0x2c,0x08,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x34,0x00,0xa5,0x8f,0x14,0x00,0xa4,0x8f,0x25,0x4a,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x03,0x00,0x42,0x2c,0x1c,0x00,0x40,0x14,0x21,0x28,0x00,0x00,0x50,0x00,0xb2,0x8f,
+0x21,0x20,0x00,0x02,0x25,0x4a,0x00,0x0c,0x21,0x28,0x40,0x02,0x03,0x00,0x42,0x2c,
+0x09,0x00,0x40,0x10,0x21,0x20,0x20,0x02,0x54,0x00,0xa5,0x8f,0x14,0x00,0xa4,0x8f,
+0x25,0x4a,0x00,0x0c,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x2c,0x0e,0x00,0x40,0x14,
+0x21,0x28,0x00,0x00,0x21,0x20,0x20,0x02,0x25,0x4a,0x00,0x0c,0x21,0x28,0x40,0x02,
+0x03,0x00,0x42,0x2c,0xd0,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x54,0x00,0xa5,0x8f,
+0x34,0x00,0xa4,0x8f,0x25,0x4a,0x00,0x0c,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x2c,
+0xc9,0x00,0x40,0x10,0x01,0x00,0x05,0x24,0xff,0x00,0x02,0x24,0xcb,0x00,0xa2,0x10,
+0x25,0xb0,0x03,0x3c,0x10,0x00,0xa2,0x27,0x40,0x29,0x05,0x00,0x02,0x80,0x0f,0x3c,
+0x21,0x28,0xa2,0x00,0x38,0x15,0xec,0x25,0x00,0x00,0xa6,0x8c,0x0c,0x00,0xa7,0x8c,
+0x0c,0x00,0x83,0x8d,0x10,0x00,0x84,0x8d,0x04,0x00,0xa8,0x8c,0x10,0x00,0xa9,0x8c,
+0x00,0xfc,0x02,0x24,0x08,0x00,0xaa,0x8c,0x14,0x00,0xab,0x8c,0x24,0x20,0x82,0x00,
+0xff,0x03,0xc6,0x30,0x24,0x18,0x62,0x00,0xff,0x03,0xe7,0x30,0xf0,0xff,0x02,0x3c,
+0xff,0x03,0x42,0x34,0x25,0x18,0x66,0x00,0x25,0x20,0x87,0x00,0xff,0x03,0x08,0x31,
+0xff,0x03,0x29,0x31,0x24,0x20,0x82,0x00,0x24,0x18,0x62,0x00,0x80,0x42,0x08,0x00,
+0x80,0x4a,0x09,0x00,0x0f,0xc0,0x02,0x3c,0x1c,0x00,0xa6,0x8c,0x18,0x00,0xa7,0x8c,
+0xff,0xff,0x42,0x34,0x25,0x18,0x68,0x00,0x25,0x20,0x89,0x00,0xff,0x03,0x4a,0x31,
+0xff,0x03,0x6b,0x31,0x24,0x20,0x82,0x00,0x00,0x55,0x0a,0x00,0x24,0x18,0x62,0x00,
+0x00,0x5d,0x0b,0x00,0x25,0x18,0x6a,0x00,0x25,0x20,0x8b,0x00,0x16,0x00,0x86,0xa5,
+0x0c,0x00,0x83,0xad,0x10,0x00,0x84,0xad,0x14,0x00,0x87,0xa5,0x38,0x15,0xf1,0x25,
+0x10,0x00,0x22,0x8e,0x01,0x00,0x03,0x24,0x82,0x17,0x02,0x00,0x4d,0x00,0x43,0x10,
+0x25,0xb0,0x12,0x3c,0x0c,0x00,0x23,0x8e,0x80,0x0c,0x44,0x36,0x00,0x00,0x88,0x8c,
+0x00,0x02,0x62,0x30,0xc0,0xff,0x13,0x3c,0x82,0x6d,0x08,0x00,0x03,0x00,0x40,0x10,
+0xff,0x03,0x65,0x30,0x00,0xfc,0x02,0x24,0x25,0x28,0xa2,0x00,0x18,0x00,0xad,0x00,
+0x82,0x62,0x03,0x00,0xff,0x03,0x8c,0x31,0x00,0x02,0x83,0x31,0x12,0x10,0x00,0x00,
+0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x46,0x30,0x00,0xfc,0x02,0x24,
+0x25,0x60,0x82,0x01,0x18,0x00,0x8d,0x01,0x00,0xfc,0x74,0x36,0x24,0x28,0x14,0x01,
+0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,
+0x25,0x28,0xa2,0x00,0x1c,0x4a,0x00,0x0c,0x25,0x28,0xa6,0x00,0x94,0x0c,0x44,0x36,
+0x00,0x00,0x85,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x55,0x34,0xc0,0x03,0x10,0x32,
+0x24,0x28,0xb5,0x00,0x80,0x85,0x10,0x00,0x1c,0x4a,0x00,0x0c,0x25,0x28,0xb0,0x00,
+0x10,0x00,0x2c,0x8e,0x88,0x0c,0x44,0x36,0x00,0x00,0x88,0x8c,0x82,0x2a,0x0c,0x00,
+0xff,0x03,0xa5,0x30,0x24,0x10,0x13,0x01,0x00,0x02,0xa3,0x30,0x03,0x00,0x60,0x10,
+0x82,0x6d,0x02,0x00,0x00,0xfc,0x02,0x24,0x25,0x28,0xa2,0x00,0x18,0x00,0xad,0x00,
+0x02,0x65,0x0c,0x00,0xff,0x03,0x8c,0x31,0x00,0x02,0x83,0x31,0x12,0x10,0x00,0x00,
+0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x46,0x30,0x00,0xfc,0x02,0x24,
+0x25,0x60,0x82,0x01,0x18,0x00,0x8d,0x01,0x24,0x28,0x14,0x01,0x12,0x80,0x00,0x00,
+0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,0x25,0x28,0xa2,0x00,
+0x1c,0x4a,0x00,0x0c,0x25,0x28,0xa6,0x00,0x9c,0x0c,0x44,0x36,0x00,0x00,0x85,0x8c,
+0xc0,0x03,0x10,0x32,0x80,0x85,0x10,0x00,0x24,0x28,0xb5,0x00,0x1c,0x4a,0x00,0x0c,
+0x25,0x28,0xb0,0x00,0x78,0x00,0xa5,0x8f,0x25,0xb0,0x10,0x3c,0x1c,0x4a,0x00,0x0c,
+0xe0,0x0e,0x04,0x36,0x7c,0x00,0xa5,0x8f,0x1c,0x4a,0x00,0x0c,0xdc,0x0e,0x04,0x36,
+0x80,0x00,0xa5,0x8f,0x1c,0x4a,0x00,0x0c,0x70,0x0e,0x04,0x36,0x84,0x00,0xa5,0x8f,
+0x1c,0x4a,0x00,0x0c,0x74,0x0e,0x04,0x36,0x88,0x00,0xa5,0x8f,0x1c,0x4a,0x00,0x0c,
+0x78,0x0e,0x04,0x36,0x8c,0x00,0xa5,0x8f,0x1c,0x4a,0x00,0x0c,0x7c,0x0e,0x04,0x36,
+0x90,0x00,0xa5,0x8f,0x1c,0x4a,0x00,0x0c,0x80,0x0e,0x04,0x36,0x94,0x00,0xa5,0x8f,
+0x1c,0x4a,0x00,0x0c,0x84,0x0e,0x04,0x36,0x98,0x00,0xa5,0x8f,0x1c,0x4a,0x00,0x0c,
+0x88,0x0e,0x04,0x36,0x9c,0x00,0xa5,0x8f,0x1c,0x4a,0x00,0x0c,0x8c,0x0e,0x04,0x36,
+0xa0,0x00,0xa5,0x8f,0x1c,0x4a,0x00,0x0c,0xd0,0x0e,0x04,0x36,0xa4,0x00,0xa5,0x8f,
+0x1c,0x4a,0x00,0x0c,0xd4,0x0e,0x04,0x36,0xa8,0x00,0xa5,0x8f,0x88,0x0e,0x04,0x36,
+0x1c,0x4a,0x00,0x0c,0x0f,0x00,0x10,0x3c,0x70,0x00,0xa6,0x8f,0xff,0xff,0x05,0x36,
+0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,0x74,0x00,0xa6,0x8f,0xff,0xff,0x05,0x36,
+0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0xdc,0x00,0xbf,0x8f,0xd8,0x00,0xbe,0x8f,
+0xd4,0x00,0xb7,0x8f,0xd0,0x00,0xb6,0x8f,0xcc,0x00,0xb5,0x8f,0xc8,0x00,0xb4,0x8f,
+0xc4,0x00,0xb3,0x8f,0xc0,0x00,0xb2,0x8f,0xbc,0x00,0xb1,0x8f,0xb8,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0xe0,0x00,0xbd,0x27,0xff,0x00,0x05,0x24,0xff,0x00,0x02,0x24,
+0x39,0xff,0xa2,0x14,0x10,0x00,0xa2,0x27,0x25,0xb0,0x03,0x3c,0x94,0x0e,0x62,0x34,
+0x9c,0x0e,0x64,0x34,0xa4,0x0e,0x65,0x34,0xac,0x0e,0x66,0x34,0x02,0x80,0x0f,0x3c,
+0x00,0x00,0x49,0x8c,0x38,0x15,0xed,0x25,0x00,0x00,0x8c,0x8c,0x00,0x00,0xae,0x8c,
+0x00,0x00,0xc7,0x8c,0xb4,0x0e,0x62,0x34,0x0c,0x00,0xa4,0x8d,0x10,0x00,0xa5,0x8d,
+0x00,0x00,0x4a,0x8c,0xff,0x03,0x06,0x3c,0x00,0xfc,0x08,0x24,0xbc,0x0e,0x62,0x34,
+0x24,0x48,0x26,0x01,0x24,0x38,0xe6,0x00,0x00,0x00,0x4b,0x8c,0x24,0x28,0xa8,0x00,
+0x24,0x20,0x88,0x00,0x02,0x3c,0x07,0x00,0xcc,0x0e,0x68,0x34,0x02,0x4c,0x09,0x00,
+0xc4,0x0e,0x63,0x34,0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34,0x25,0x28,0xa7,0x00,
+0x25,0x20,0x89,0x00,0x00,0x00,0x67,0x8c,0x24,0x60,0x86,0x01,0x00,0x00,0x03,0x8d,
+0x24,0x50,0x46,0x01,0x24,0x28,0xa2,0x00,0x24,0x20,0x82,0x00,0x82,0x61,0x0c,0x00,
+0x82,0x51,0x0a,0x00,0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34,0x25,0x20,0x8c,0x00,
+0x25,0x28,0xaa,0x00,0x24,0x70,0xc6,0x01,0x24,0x58,0x66,0x01,0x24,0x28,0xa2,0x00,
+0x24,0x18,0x66,0x00,0x00,0x71,0x0e,0x00,0x24,0x20,0x82,0x00,0x00,0x59,0x0b,0x00,
+0x24,0x38,0xe6,0x00,0x25,0x20,0x8e,0x00,0x25,0x28,0xab,0x00,0x02,0x3c,0x07,0x00,
+0x02,0x1c,0x03,0x00,0x16,0x00,0xa3,0xa5,0x0c,0x00,0xa4,0xad,0x10,0x00,0xa5,0xad,
+0x71,0x4c,0x00,0x08,0x14,0x00,0xa7,0xa5,0x30,0x00,0xb1,0x8f,0x19,0x4c,0x00,0x08,
+0x21,0x20,0x00,0x02,0xe0,0xff,0xbd,0x27,0x44,0x00,0x02,0x24,0x10,0x00,0xa2,0xa3,
+0x49,0x00,0x03,0x24,0x47,0x00,0x02,0x24,0x02,0x80,0x07,0x3c,0xcc,0x88,0xe7,0x24,
+0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3,0x10,0x27,0x03,0x24,0x01,0x00,0x02,0x24,
+0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,0x40,0x38,0xc6,0x24,
+0x0c,0x00,0xe3,0xac,0x14,0x00,0xe2,0xa0,0x18,0x00,0xbf,0xaf,0x48,0x1b,0x00,0x0c,
+0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0xd0,0xff,0xbd,0x27,0x25,0xb0,0x03,0x3c,0x20,0x00,0xb4,0xaf,
+0x1c,0x00,0xb3,0xaf,0x2c,0x00,0xbf,0xaf,0x28,0x00,0xb6,0xaf,0x24,0x00,0xb5,0xaf,
+0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x03,0x0d,0x64,0x34,
+0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x54,0x30,0x70,0x00,0x93,0x32,
+0x63,0x00,0x60,0x12,0x42,0x00,0x63,0x34,0x8f,0x00,0x82,0x32,0x00,0x00,0x82,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x5b,0x00,0x60,0x12,0x00,0x00,0x00,0x00,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x0f,0x00,0x11,0x3c,0x21,0x20,0x00,0x00,0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,
+0x21,0xa8,0x40,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x21,0x20,0x00,0x00,0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x21,0xb0,0x40,0x00,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x64,0x00,0x04,0x24,
+0xda,0x18,0x00,0x0c,0x08,0x00,0x10,0x3c,0xff,0xff,0x10,0x36,0x2a,0x42,0x00,0x0c,
+0x21,0x20,0x00,0x00,0x01,0x00,0x12,0x3c,0x24,0x30,0xb0,0x02,0x25,0x30,0xd2,0x00,
+0xff,0xff,0x25,0x36,0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0xda,0x18,0x00,0x0c,
+0x64,0x00,0x04,0x24,0x24,0x80,0xd0,0x02,0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,
+0x25,0x30,0x12,0x02,0xff,0xff,0x25,0x36,0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,
+0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x0f,0x00,0x11,0x3c,0x18,0x00,0x04,0x24,0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,
+0x21,0x80,0x40,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,0x18,0x00,0x04,0x24,0xff,0xff,0x25,0x36,
+0x6a,0x44,0x00,0x0c,0x00,0x80,0x06,0x36,0xab,0x18,0x00,0x0c,0x03,0x00,0x04,0x24,
+0x27,0x00,0x60,0x16,0x25,0xb0,0x02,0x3c,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb6,0x8f,
+0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x25,0xb0,0x02,0x3c,0x42,0x00,0x42,0x34,
+0x30,0x00,0xbd,0x27,0x00,0x00,0x40,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xff,0xff,0x02,0x24,0x00,0x00,0x62,0xa0,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x0f,0x00,0x11,0x3c,0x18,0x00,0x04,0x24,
+0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x21,0x80,0x40,0x00,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x18,0x00,0x04,0x24,0xff,0xff,0x25,0x36,0x6a,0x44,0x00,0x0c,0x00,0x80,0x06,0x36,
+0xab,0x18,0x00,0x0c,0x03,0x00,0x04,0x24,0xdb,0xff,0x60,0x12,0x25,0xb0,0x02,0x3c,
+0x03,0x0d,0x42,0x34,0x00,0x00,0x54,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,
+0x0f,0x00,0x10,0x3c,0x21,0x30,0xa0,0x02,0xff,0xff,0x05,0x36,0x6a,0x44,0x00,0x0c,
+0x21,0x20,0x00,0x00,0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,
+0x01,0x00,0x04,0x24,0xff,0xff,0x05,0x36,0x21,0x30,0xc0,0x02,0x6a,0x44,0x00,0x0c,
+0x21,0x20,0x00,0x00,0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,0x2c,0x00,0xbf,0x8f,
+0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x20,0x00,0x00,
+0x2a,0x42,0x00,0x08,0x30,0x00,0xbd,0x27,0xc0,0xff,0xbd,0x27,0x28,0x00,0xb4,0xaf,
+0x02,0x80,0x14,0x3c,0x30,0x00,0xb6,0xaf,0x38,0x15,0x85,0x26,0x38,0x00,0xbf,0xaf,
+0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,
+0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x0c,0x00,0xa2,0x8c,0xc8,0x02,0xa3,0x90,
+0x06,0x00,0x16,0x24,0x82,0x17,0x02,0x00,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x30,
+0x08,0x00,0x40,0x14,0xc8,0x02,0xa3,0xa0,0x08,0x00,0xa2,0x8c,0x01,0x00,0x03,0x24,
+0x42,0x17,0x02,0x00,0x03,0x00,0x42,0x30,0x4e,0x01,0x43,0x10,0x25,0xb0,0x02,0x3c,
+0x38,0x15,0x85,0x26,0x0c,0x00,0xa2,0x8c,0x01,0x00,0x03,0x24,0x82,0x17,0x02,0x00,
+0x01,0x00,0x44,0x30,0x0d,0x00,0x83,0x10,0x00,0x00,0x00,0x00,0x38,0x00,0xbf,0x8f,
+0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x08,0x00,0xa2,0x8c,
+0x00,0x00,0x00,0x00,0x42,0x17,0x02,0x00,0x03,0x00,0x43,0x30,0xef,0xff,0x64,0x14,
+0x00,0x00,0x00,0x00,0x10,0x00,0xa2,0x8c,0x00,0x00,0x00,0x00,0x82,0x17,0x02,0x00,
+0x60,0x02,0x43,0x10,0x0f,0x00,0x10,0x3c,0xc7,0x02,0xb3,0x90,0x25,0xb0,0x02,0x3c,
+0x62,0x0c,0x42,0x34,0xff,0x00,0x63,0x32,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x90,0x26,0xc6,0x02,0x02,0x92,0x00,0x00,0x00,0x00,
+0x6f,0x01,0x40,0x10,0x01,0x00,0x02,0x24,0x25,0xb0,0x11,0x3c,0x03,0x0d,0x23,0x36,
+0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x70,0x00,0x42,0x30,0x95,0x01,0x40,0x14,
+0xcc,0x00,0x02,0x24,0xc4,0x02,0x02,0x96,0x00,0x00,0x00,0x00,0x23,0x20,0x53,0x00,
+0x2b,0x18,0x53,0x00,0x23,0x10,0x62,0x02,0x0a,0x10,0x83,0x00,0x03,0x00,0x42,0x2c,
+0x62,0x01,0x40,0x10,0x00,0x00,0x00,0x00,0xc4,0x02,0x03,0x92,0x63,0x0c,0x22,0x36,
+0x21,0x20,0x00,0x00,0x00,0x00,0x43,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,
+0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x38,0x15,0x83,0x26,
+0xc3,0x02,0x62,0x90,0x08,0x00,0x66,0x8c,0xc2,0x02,0x73,0xa0,0x23,0x20,0x53,0x00,
+0x2b,0x38,0x62,0x02,0x23,0x90,0x62,0x02,0x02,0x2c,0x06,0x00,0x0b,0x90,0x87,0x00,
+0x3f,0x00,0xa5,0x30,0x3f,0x00,0xc4,0x30,0x24,0x00,0x02,0x24,0x20,0x00,0x03,0x24,
+0x23,0x10,0x44,0x00,0x7d,0x01,0x40,0x16,0x23,0x18,0x65,0x00,0x21,0x40,0x80,0x00,
+0x21,0xa8,0xa0,0x00,0x02,0x80,0x17,0x3c,0x2b,0x28,0xc8,0x02,0xf3,0x01,0xa0,0x10,
+0x38,0x15,0x82,0x26,0x80,0x10,0x08,0x00,0x38,0x15,0x83,0x26,0x21,0x10,0x43,0x00,
+0x18,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x82,0x25,0x04,0x00,0x38,0x15,0x86,0x26,
+0x0c,0x00,0xc3,0x8c,0x00,0x00,0x00,0x00,0xff,0x03,0x67,0x30,0x7b,0x01,0xe0,0x10,
+0x00,0x02,0x62,0x30,0x04,0x00,0x40,0x10,0x18,0x00,0xe4,0x00,0x00,0xfc,0x02,0x24,
+0x25,0x38,0xe2,0x00,0x18,0x00,0xe4,0x00,0x82,0x82,0x03,0x00,0xff,0x03,0x10,0x32,
+0x00,0x02,0x03,0x32,0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,
+0xff,0x03,0x45,0x30,0x00,0xfc,0x02,0x24,0x25,0x80,0x02,0x02,0x18,0x00,0x04,0x02,
+0x80,0x1d,0x04,0x00,0x25,0xb0,0x11,0x3c,0x80,0x0c,0x24,0x36,0x94,0x0c,0x31,0x36,
+0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,
+0x25,0x18,0x62,0x00,0x25,0x18,0x65,0x00,0x21,0x28,0x60,0x00,0x1c,0x4a,0x00,0x0c,
+0x10,0x00,0xa3,0xaf,0x00,0x00,0x23,0x8e,0xff,0x0f,0x02,0x3c,0xc0,0x03,0x10,0x32,
+0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x80,0x85,0x10,0x00,0x25,0x18,0x70,0x00,
+0x21,0x20,0x20,0x02,0x21,0x28,0x60,0x00,0x10,0x00,0xa3,0xaf,0x1c,0x4a,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x38,0x15,0x83,0x26,0x08,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x59,0x01,0x40,0x04,0xc0,0x28,0x15,0x00,0x21,0x10,0xa3,0x00,0xac,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x22,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xad,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x23,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xae,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x24,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xaf,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x25,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb0,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x26,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb1,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x27,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb2,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x28,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb3,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x29,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x96,0x3d,0xe3,0x92,0x22,0x00,0x02,0x24,0x03,0x00,0x62,0x10,
+0x92,0x00,0x02,0x24,0x0d,0xff,0x62,0x14,0x00,0x00,0x00,0x00,0x38,0x15,0x82,0x26,
+0x08,0x00,0x43,0x8c,0x01,0x00,0x44,0x3a,0x24,0x00,0x02,0x24,0x02,0x1a,0x03,0x00,
+0x3f,0x00,0x63,0x30,0x01,0x00,0x84,0x30,0x67,0x01,0x80,0x10,0x23,0x28,0x43,0x00,
+0x42,0x18,0x12,0x00,0x40,0x10,0x03,0x00,0x21,0x90,0x43,0x00,0x38,0x15,0x83,0x26,
+0xc3,0x02,0x62,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x62,0x02,0x46,0x01,0x40,0x10,
+0x2b,0x10,0x45,0x02,0x06,0x00,0x40,0x10,0x24,0x00,0x06,0x24,0x08,0x00,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0x3f,0x00,0x42,0x30,0x21,0x30,0x52,0x00,
+0x2b,0x28,0xc6,0x02,0x46,0x01,0xa0,0x10,0x38,0x15,0x82,0x26,0x80,0x10,0x06,0x00,
+0x38,0x15,0x83,0x26,0x21,0x10,0x43,0x00,0x18,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,
+0x82,0x25,0x04,0x00,0x38,0x15,0x83,0x26,0x10,0x00,0x70,0x8c,0x00,0x00,0x00,0x00,
+0x82,0x3a,0x10,0x00,0xff,0x03,0xe7,0x30,0x4d,0x01,0xe0,0x10,0x00,0x02,0xe2,0x30,
+0x04,0x00,0x40,0x10,0x18,0x00,0xe4,0x00,0x00,0xfc,0x02,0x24,0x25,0x38,0xe2,0x00,
+0x18,0x00,0xe4,0x00,0x02,0x85,0x10,0x00,0xff,0x03,0x10,0x32,0x00,0x02,0x03,0x32,
+0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x45,0x30,
+0x00,0xfc,0x02,0x24,0x25,0x80,0x02,0x02,0x18,0x00,0x04,0x02,0x80,0x1d,0x04,0x00,
+0x25,0xb0,0x11,0x3c,0x88,0x0c,0x24,0x36,0x9c,0x0c,0x31,0x36,0x12,0x80,0x00,0x00,
+0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,0x25,0x18,0x62,0x00,
+0x25,0x18,0x65,0x00,0x21,0x28,0x60,0x00,0x1c,0x4a,0x00,0x0c,0x10,0x00,0xa3,0xaf,
+0x00,0x00,0x23,0x8e,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0xc0,0x03,0x10,0x32,
+0x24,0x18,0x62,0x00,0x80,0x85,0x10,0x00,0x25,0x18,0x70,0x00,0x21,0x20,0x20,0x02,
+0x21,0x28,0x60,0x00,0x1c,0x4a,0x00,0x0c,0x10,0x00,0xa3,0xaf,0x31,0x4e,0x00,0x08,
+0x00,0x00,0x00,0x00,0x80,0x0c,0x42,0x34,0x00,0x00,0x43,0x8c,0x21,0x30,0xa0,0x00,
+0xc0,0xff,0x02,0x3c,0x24,0x20,0x62,0x00,0x21,0x88,0x00,0x00,0xc0,0xff,0x05,0x3c,
+0x84,0x4f,0x00,0x08,0x18,0x00,0xc3,0x24,0x01,0x00,0x31,0x26,0x25,0x00,0x22,0x2e,
+0x0d,0x00,0x40,0x10,0x02,0x80,0x17,0x3c,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x10,0x45,0x00,0xf8,0xff,0x44,0x14,0x04,0x00,0x63,0x24,0x08,0x00,0xc2,0x8c,
+0xc0,0xff,0x03,0x24,0x3f,0x00,0x24,0x32,0x24,0x10,0x43,0x00,0x25,0x10,0x44,0x00,
+0x08,0x00,0xc2,0xac,0x02,0x80,0x17,0x3c,0x96,0x3d,0xe3,0x92,0x22,0x00,0x02,0x24,
+0x3a,0x00,0x62,0x10,0x92,0x00,0x02,0x24,0x39,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c,
+0x25,0xb0,0x02,0x3c,0x24,0x0a,0x42,0x34,0x00,0x00,0x44,0x8c,0x3f,0x3f,0x03,0x3c,
+0x3f,0x3f,0x63,0x34,0x24,0x20,0x83,0x00,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,
+0xe6,0x15,0x53,0x24,0xee,0x16,0x72,0x24,0x21,0x88,0x00,0x00,0xab,0x4f,0x00,0x08,
+0x10,0x00,0xa4,0xaf,0x95,0x45,0x00,0x0c,0x00,0x00,0x00,0x00,0x43,0x00,0x40,0x10,
+0x38,0x15,0x85,0x26,0x01,0x00,0x31,0x26,0x21,0x00,0x22,0x2e,0x17,0x00,0x40,0x10,
+0x38,0x15,0x82,0x26,0xc0,0x80,0x11,0x00,0x10,0x00,0xa4,0x27,0x21,0x28,0x13,0x02,
+0x95,0x45,0x00,0x0c,0x04,0x00,0x06,0x24,0x21,0x28,0x12,0x02,0x10,0x00,0xa4,0x27,
+0xf0,0xff,0x40,0x14,0x04,0x00,0x06,0x24,0x38,0x15,0x85,0x26,0x08,0x00,0xa3,0x8c,
+0xc0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x3f,0x00,0x24,0x32,0x24,0x18,0x62,0x00,
+0x00,0x24,0x04,0x00,0xff,0x7f,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x08,0x00,0xa3,0xac,0x38,0x15,0x82,0x26,0x0c,0x00,0x43,0x8c,
+0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0x2a,0x4e,0x00,0x08,0x0c,0x00,0x43,0xac,
+0xc6,0x02,0x02,0xa2,0x58,0x4e,0x00,0x08,0xc4,0x02,0x13,0xa6,0x63,0x4d,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x68,0x4e,0x00,0x08,0xc4,0x02,0x13,0xa6,0x25,0xb0,0x02,0x3c,
+0x88,0x0c,0x42,0x34,0x00,0x00,0x44,0x8c,0x02,0x80,0x03,0x3c,0x38,0x15,0x66,0x24,
+0xc0,0xff,0x02,0x3c,0x24,0x20,0x82,0x00,0x21,0x88,0x00,0x00,0xc0,0xff,0x05,0x3c,
+0xdc,0x4f,0x00,0x08,0x18,0x00,0xc3,0x24,0x01,0x00,0x31,0x26,0x25,0x00,0x22,0x2e,
+0xbc,0xff,0x40,0x10,0x25,0xb0,0x02,0x3c,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x10,0x45,0x00,0xf8,0xff,0x44,0x14,0x04,0x00,0x63,0x24,0x08,0x00,0xc2,0x8c,
+0x3f,0x00,0x23,0x32,0xff,0xc0,0x04,0x24,0x24,0x10,0x44,0x00,0x00,0x1a,0x03,0x00,
+0x25,0x10,0x43,0x00,0x96,0x4f,0x00,0x08,0x08,0x00,0xc2,0xac,0x08,0x00,0xa3,0x8c,
+0xc0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x3f,0x00,0x24,0x32,0x24,0x18,0x62,0x00,
+0x00,0x24,0x04,0x00,0x25,0x18,0x64,0x00,0x00,0x80,0x02,0x3c,0xbf,0x4f,0x00,0x08,
+0x25,0x18,0x62,0x00,0x63,0x0c,0x23,0x36,0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x72,0x4e,0x00,0x08,0x38,0x15,0x83,0x26,0x8b,0x00,0xe0,0x10,
+0x21,0x40,0x00,0x00,0x2b,0x10,0x42,0x02,0x21,0x20,0x92,0x00,0x00,0x00,0x42,0x38,
+0x24,0x00,0x08,0x24,0x2b,0x18,0x43,0x02,0x0b,0x40,0x82,0x00,0x7d,0xfe,0x60,0x10,
+0x20,0x00,0x15,0x24,0x38,0x15,0x83,0x26,0x0a,0x00,0x62,0x94,0x02,0x80,0x17,0x3c,
+0x3f,0x00,0x42,0x30,0x84,0x4e,0x00,0x08,0x21,0xa8,0x52,0x00,0x83,0x00,0xa0,0x10,
+0x80,0x10,0x08,0x00,0x21,0x10,0x46,0x00,0x18,0x00,0x45,0x8c,0x25,0xb0,0x04,0x3c,
+0x1c,0x4a,0x00,0x0c,0x80,0x0c,0x84,0x34,0x25,0xb0,0x04,0x3c,0x94,0x0c,0x84,0x34,
+0xb9,0x4e,0x00,0x08,0x21,0x28,0x00,0x00,0x21,0x10,0xa3,0x00,0xb4,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x22,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb5,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x23,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb6,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x24,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb7,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x25,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb8,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x26,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb9,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x27,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xba,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x28,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x38,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xbb,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x29,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x1f,0x4f,0x00,0x08,0x00,0x00,0x00,0x00,0x30,0x00,0x43,0x8c,
+0x8d,0x4e,0x00,0x08,0x82,0x25,0x03,0x00,0x08,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x02,0x12,0x02,0x00,0x3f,0x00,0x42,0x30,0x2b,0x18,0x42,0x02,0xbc,0xfe,0x60,0x14,
+0x23,0x30,0x52,0x00,0x21,0x30,0x00,0x00,0x21,0x28,0x00,0x00,0x38,0x15,0x82,0x26,
+0x30,0x00,0x43,0x8c,0x47,0x4f,0x00,0x08,0x82,0x25,0x03,0x00,0x23,0x10,0x92,0x00,
+0x2b,0x18,0x44,0x02,0x2b,0x20,0x45,0x02,0x0b,0x40,0x43,0x00,0xf5,0xfd,0x80,0x14,
+0x23,0xa8,0xb2,0x00,0x83,0x4e,0x00,0x08,0x21,0xa8,0x00,0x00,0x30,0x00,0xc5,0x8c,
+0x12,0x50,0x00,0x08,0x25,0xb0,0x04,0x3c,0xff,0xff,0x43,0x26,0x42,0x18,0x03,0x00,
+0x40,0x10,0x03,0x00,0x21,0x10,0x43,0x00,0x31,0x4f,0x00,0x08,0x01,0x00,0x52,0x24,
+0x21,0x00,0xa0,0x10,0x80,0x10,0x06,0x00,0x21,0x10,0x43,0x00,0x18,0x00,0x45,0x8c,
+0x25,0xb0,0x04,0x3c,0x1c,0x4a,0x00,0x0c,0x88,0x0c,0x84,0x34,0x25,0xb0,0x04,0x3c,
+0x9c,0x0c,0x84,0x34,0x1c,0x4a,0x00,0x0c,0x21,0x28,0x00,0x00,0x31,0x4e,0x00,0x08,
+0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x36,0x60,0x00,0x06,0x24,0x6a,0x44,0x00,0x0c,
+0x24,0x00,0x04,0x24,0xab,0x18,0x00,0x0c,0xe8,0x03,0x04,0x24,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x24,0x00,0x04,0x24,
+0x95,0x44,0x00,0x0c,0xff,0xff,0x05,0x36,0x1f,0x00,0x53,0x30,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xda,0x18,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x4a,0x4e,0x00,0x08,0x25,0xb0,0x02,0x3c,0x30,0x00,0x65,0x8c,0x9f,0x50,0x00,0x08,
+0x25,0xb0,0x04,0x3c,0x00,0xff,0x84,0x30,0x02,0x22,0x04,0x00,0x08,0x00,0x80,0x10,
+0x02,0x80,0x02,0x3c,0xff,0x00,0x02,0x24,0x04,0x00,0x82,0x10,0xcc,0xff,0x03,0x24,
+0x02,0x80,0x02,0x3c,0x08,0x00,0xe0,0x03,0x22,0x18,0x43,0xa0,0x02,0x80,0x02,0x3c,
+0x08,0x00,0xe0,0x03,0x22,0x18,0x44,0xa0,0x02,0x24,0x04,0x00,0xff,0x00,0x84,0x30,
+0xc0,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,
+0x02,0x80,0x03,0x3c,0x80,0x10,0x02,0x00,0x38,0x15,0x63,0x24,0x20,0x00,0x84,0x2c,
+0x09,0x00,0x80,0x10,0x21,0x10,0x43,0x00,0x80,0x11,0x43,0x8c,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x42,0x34,0x02,0x19,0x03,0x00,0x7f,0x00,0x63,0x30,0x00,0x00,0x43,0xac,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x2c,0x39,0x43,0x8c,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x02,0x19,0x03,0x00,0x7f,0x00,0x63,0x30,
+0x00,0x00,0x43,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xff,0x00,0x85,0x30,
+0xd2,0xff,0xa3,0x24,0xfe,0xff,0xa2,0x24,0xda,0xff,0xa4,0x24,0x04,0x00,0x63,0x2c,
+0x08,0x00,0x84,0x2c,0x06,0x00,0x60,0x14,0xff,0x00,0x42,0x30,0xf0,0xff,0xa2,0x24,
+0xfc,0xff,0xa3,0x24,0x16,0x00,0x46,0x2c,0x03,0x00,0x80,0x10,0xff,0x00,0x62,0x30,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xfa,0xff,0xa3,0x24,0xfc,0xff,0xc0,0x10,
+0x21,0x10,0xa0,0x00,0x08,0x00,0xe0,0x03,0xff,0x00,0x62,0x30,0xe0,0xff,0xbd,0x27,
+0x02,0x80,0x08,0x3c,0x18,0x00,0xbf,0xaf,0x38,0x15,0x08,0x25,0xe8,0x02,0x07,0x8d,
+0x02,0x80,0x02,0x3c,0x96,0x3d,0x49,0x90,0x00,0x03,0x02,0x3c,0x25,0x38,0xe2,0x00,
+0xff,0xf3,0x02,0x3c,0xff,0xff,0x42,0x34,0x02,0x80,0x03,0x3c,0x24,0x38,0xe2,0x00,
+0x94,0x88,0x6a,0x24,0x01,0x80,0x06,0x3c,0x22,0x00,0x02,0x24,0x21,0x20,0x40,0x01,
+0x98,0x44,0xc6,0x24,0x10,0x00,0xa5,0x27,0x05,0x00,0x22,0x11,0xe8,0x02,0x07,0xad,
+0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0x44,0x00,0x02,0x24,0x10,0x00,0xa2,0xa3,0x49,0x00,0x03,0x24,0x47,0x00,0x02,0x24,
+0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3,0xd0,0x07,0x03,0x24,0x01,0x00,0x02,0x24,
+0x13,0x00,0xa0,0xa3,0x0c,0x00,0x43,0xad,0x48,0x1b,0x00,0x0c,0x14,0x00,0x42,0xa1,
+0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x02,0x80,0x10,0x3c,0x18,0x00,0xbf,0xaf,
+0x14,0x00,0xb1,0xaf,0x38,0x15,0x04,0x26,0xd8,0x02,0x82,0x8c,0x01,0x00,0x03,0x24,
+0x02,0x15,0x02,0x00,0x0f,0x00,0x42,0x30,0x07,0x00,0x43,0x10,0x25,0xb0,0x06,0x3c,
+0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x4c,0x00,0xc3,0x34,0x00,0x00,0x62,0x90,
+0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,0x45,0x00,0x40,0x10,0xff,0xf3,0x02,0x3c,
+0xe8,0x02,0x85,0x8c,0x00,0x00,0x00,0x00,0x82,0x16,0x05,0x00,0x03,0x00,0x42,0x30,
+0x17,0x00,0x40,0x14,0x38,0x15,0x11,0x26,0x0c,0x09,0xc3,0x34,0x00,0x00,0x63,0x8c,
+0x12,0x01,0x02,0x3c,0x13,0x13,0x42,0x34,0x6b,0x00,0x62,0x10,0xff,0xfc,0x02,0x3c,
+0x22,0x02,0x02,0x3c,0x23,0x13,0x42,0x34,0x52,0x00,0x62,0x10,0xff,0xfc,0x02,0x3c,
+0x00,0x03,0x02,0x3c,0x25,0x10,0xa2,0x00,0xe8,0x02,0x82,0xac,0x38,0x15,0x05,0x26,
+0xe8,0x02,0xa3,0x8c,0xff,0xf3,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0x00,0x04,0x04,0x3c,0x25,0x18,0x64,0x00,0xe8,0x02,0xa3,0xac,0x38,0x15,0x11,0x26,
+0xfc,0x23,0x24,0x8e,0xff,0xff,0x02,0x34,0xd5,0xff,0x82,0x10,0x00,0x00,0x00,0x00,
+0x80,0x11,0x22,0x8e,0x00,0x00,0x00,0x00,0x02,0x11,0x02,0x00,0x7f,0x00,0x42,0x30,
+0x3f,0x00,0x43,0x2c,0x28,0x00,0x60,0x14,0x3b,0x00,0x42,0x2c,0x00,0x24,0x22,0x8e,
+0x02,0x19,0x04,0x00,0x02,0x11,0x02,0x00,0x23,0x18,0x62,0x00,0x3a,0x00,0x60,0x18,
+0x01,0x00,0x03,0x24,0xeb,0x02,0x22,0x92,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,
+0x0e,0x00,0x43,0x10,0x38,0x15,0x02,0x26,0x25,0xb0,0x04,0x3c,0x12,0x01,0x05,0x3c,
+0x0c,0x09,0x84,0x34,0x1c,0x4a,0x00,0x0c,0x13,0x13,0xa5,0x34,0xe8,0x02,0x23,0x8e,
+0xff,0xfc,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x00,0x01,0x04,0x3c,
+0x25,0x18,0x64,0x00,0xe8,0x02,0x23,0xae,0x38,0x15,0x02,0x26,0xe8,0x02,0x43,0x8c,
+0x00,0x20,0x04,0x3c,0x25,0x18,0x64,0x00,0x32,0x51,0x00,0x08,0xe8,0x02,0x43,0xac,
+0xe8,0x02,0x83,0x8c,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x20,0x00,0xbd,0x27,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0xe8,0x02,0x83,0xac,0xa5,0xff,0x40,0x10,0x03,0x00,0x03,0x24,
+0xeb,0x02,0x22,0x92,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,0xa0,0xff,0x43,0x10,
+0x32,0x03,0x05,0x3c,0x25,0xb0,0x04,0x3c,0x0c,0x09,0x84,0x34,0x1c,0x4a,0x00,0x0c,
+0x33,0x13,0xa5,0x34,0xe8,0x02,0x23,0x8e,0xff,0xdf,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x00,0x03,0x04,0x3c,0x25,0x18,0x64,0x00,0x32,0x51,0x00,0x08,
+0xe8,0x02,0x23,0xae,0xff,0xff,0x42,0x34,0x24,0x10,0xa2,0x00,0x00,0x02,0x03,0x3c,
+0x50,0x51,0x00,0x08,0x25,0x10,0x43,0x00,0xeb,0x02,0x22,0x92,0x02,0x00,0x03,0x24,
+0x03,0x00,0x42,0x30,0xd5,0xff,0x43,0x10,0x38,0x15,0x02,0x26,0x25,0xb0,0x04,0x3c,
+0x22,0x02,0x05,0x3c,0x0c,0x09,0x84,0x34,0x1c,0x4a,0x00,0x0c,0x23,0x13,0xa5,0x34,
+0xe8,0x02,0x23,0x8e,0xff,0xfc,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0x7a,0x51,0x00,0x08,0x00,0x02,0x04,0x3c,0xff,0xff,0x42,0x34,0x24,0x10,0xa2,0x00,
+0x00,0x01,0x03,0x3c,0x50,0x51,0x00,0x08,0x25,0x10,0x43,0x00,0x25,0xb0,0x03,0x3c,
+0x03,0x0d,0x63,0x34,0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30,
+0x08,0x00,0x42,0x34,0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,
+0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,
+0x03,0x0d,0x63,0x34,0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,0xf7,0x00,0x42,0x30,
+0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,0x2d,0x0a,0x63,0x34,
+0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,0x3f,0x00,0x42,0x30,0x00,0x00,0x62,0xa0,
+0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,0x2d,0x0a,0x63,0x34,0x00,0x00,0x62,0x90,
+0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30,0x80,0x00,0x42,0x34,0x00,0x00,0x62,0xa0,
+0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfc,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,
+0xff,0x00,0x03,0x3c,0x82,0x01,0x49,0x34,0x81,0x01,0x48,0x34,0x24,0x10,0x83,0x00,
+0x02,0x3c,0x02,0x00,0x00,0xff,0x63,0x34,0x02,0x80,0x02,0x3c,0x38,0x15,0x45,0x24,
+0x02,0x32,0x04,0x00,0x01,0x00,0x02,0x24,0x24,0x20,0x83,0x00,0xda,0x0c,0xa2,0xa0,
+0xc8,0x0c,0xa0,0xac,0xcc,0x0c,0xa0,0xac,0xd0,0x0c,0xa0,0xac,0x06,0x00,0x80,0x14,
+0xd4,0x0c,0xa0,0xac,0x00,0x00,0x02,0x91,0x00,0x00,0x23,0x91,0xd8,0x0c,0xa2,0xa0,
+0x08,0x00,0xe0,0x03,0xd9,0x0c,0xa3,0xa0,0xd9,0x0c,0xa7,0xa0,0x08,0x00,0xe0,0x03,
+0xd8,0x0c,0xa6,0xa0,0x02,0x80,0x03,0x3c,0x38,0x15,0x63,0x24,0xd9,0x0c,0x66,0x90,
+0xd8,0x0c,0x65,0x90,0x25,0xb0,0x02,0x3c,0x82,0x01,0x44,0x34,0x81,0x01,0x42,0x34,
+0x00,0x00,0x45,0xa0,0x00,0x00,0x86,0xa0,0x08,0x00,0xe0,0x03,0xda,0x0c,0x60,0xa0,
+0x02,0x80,0x08,0x3c,0x38,0x15,0x04,0x25,0xda,0x0c,0x82,0x90,0x00,0x00,0x00,0x00,
+0x15,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0xcc,0x0c,0x82,0x8c,0xc8,0x0c,0x85,0x8c,
+0x25,0xb0,0x03,0x3c,0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00,0x82,0x01,0x67,0x34,
+0x0f,0x00,0x40,0x10,0x81,0x01,0x66,0x34,0xd9,0x0c,0x83,0x90,0xd8,0x0c,0x82,0x90,
+0xf0,0x00,0x63,0x30,0x1f,0x00,0x42,0x30,0x00,0x00,0xc2,0xa0,0x00,0x00,0xe3,0xa0,
+0x38,0x15,0x02,0x25,0x01,0x00,0x03,0x24,0xd4,0x0c,0x40,0xac,0xc8,0x0c,0x40,0xac,
+0xcc,0x0c,0x40,0xac,0xd0,0x0c,0x40,0xac,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0xd0,0x0c,0x82,0x8c,0x25,0xb0,0x03,0x3c,0x82,0x01,0x69,0x34,0x40,0x11,0x02,0x00,
+0x2b,0x10,0xa2,0x00,0x0e,0x00,0x40,0x14,0x81,0x01,0x66,0x34,0xd4,0x0c,0x82,0x8c,
+0x00,0x00,0x00,0x00,0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00,0x08,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0xd9,0x0c,0x83,0x90,0xd8,0x0c,0x82,0x90,0x00,0x00,0x00,0x00,
+0x00,0x00,0xc2,0xa0,0x00,0x00,0x23,0xa1,0x23,0x52,0x00,0x08,0x38,0x15,0x02,0x25,
+0xd9,0x0c,0x83,0x90,0xd8,0x0c,0x82,0x90,0xf0,0x00,0x63,0x30,0x7f,0x00,0x42,0x30,
+0x00,0x00,0xc2,0xa0,0x00,0x00,0x23,0xa1,0x23,0x52,0x00,0x08,0x38,0x15,0x02,0x25,
+0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c,0x33,0x02,0x65,0x34,0x00,0x11,0x04,0x00,
+0x00,0x00,0xa2,0xa0,0x30,0x02,0x63,0x34,0x00,0x00,0x65,0x8c,0x0f,0x00,0x02,0x3c,
+0xff,0xff,0x42,0x34,0x24,0x28,0xa2,0x00,0x01,0x00,0x03,0x24,0x04,0x18,0x83,0x00,
+0x02,0x00,0xa0,0x10,0x21,0x10,0x00,0x00,0xff,0xff,0x62,0x30,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x25,0xb0,0x11,0x3c,
+0x18,0x00,0xb2,0xaf,0x4c,0x00,0x22,0x36,0x1c,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,
+0x00,0x00,0x44,0x90,0x02,0x80,0x03,0x3c,0x02,0x00,0x02,0x24,0xff,0x00,0x84,0x30,
+0x07,0x00,0x82,0x10,0x38,0x15,0x72,0x24,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0x52,0x24,0x43,0x96,0x01,0x00,0x02,0x24,0xf7,0xff,0x62,0x14,0x21,0x20,0x00,0x00,
+0x4f,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x24,0x4f,0x52,0x00,0x0c,
+0x21,0x80,0x40,0x00,0x25,0x80,0x02,0x02,0x33,0x02,0x23,0x36,0x08,0x00,0x02,0x24,
+0xff,0xff,0x10,0x32,0x40,0x00,0x25,0x36,0x00,0x00,0x62,0xa0,0xea,0xff,0x00,0x16,
+0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x94,0x50,0x24,0x43,0x96,0xff,0xdf,0x42,0x30,
+0x00,0x20,0x44,0x34,0x01,0x00,0x63,0x24,0x50,0x24,0x43,0xa6,0x00,0x00,0xa2,0xa4,
+0x00,0x00,0xa4,0xa4,0x6c,0x52,0x00,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xb8,0xff,0xbd,0x27,
+0x02,0x80,0x02,0x3c,0x3c,0x00,0xb1,0xaf,0x38,0x00,0xb0,0xaf,0x40,0x00,0xbf,0xaf,
+0x38,0x15,0x50,0x24,0x04,0x24,0x03,0x8e,0x02,0x80,0x11,0x3c,0x01,0x00,0x02,0x24,
+0x01,0x00,0x63,0x30,0x10,0x00,0xa4,0x27,0x40,0x39,0x25,0x26,0x07,0x00,0x62,0x10,
+0x0a,0x00,0x06,0x24,0x40,0x00,0xbf,0x8f,0x3c,0x00,0xb1,0x8f,0x38,0x00,0xb0,0x8f,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x48,0x00,0xbd,0x27,0x6c,0x45,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x21,0x28,0x00,0x00,0x40,0x39,0x24,0x26,0x58,0x45,0x00,0x0c,
+0x0a,0x00,0x06,0x24,0x28,0x00,0x03,0x24,0x05,0x00,0x02,0x24,0x09,0x24,0x03,0xa2,
+0x08,0x24,0x02,0xa2,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x89,0x47,0x00,0x0c,0x48,0x00,0x04,0x24,0x21,0x80,0x40,0x00,0x10,0x00,0xa5,0x27,
+0xe4,0xff,0x40,0x10,0x0a,0x00,0x06,0x24,0x08,0x00,0x44,0x94,0x14,0x00,0x02,0x24,
+0x14,0x00,0x02,0xae,0x02,0x80,0x02,0x3c,0x28,0x00,0x03,0x24,0x25,0x20,0x82,0x00,
+0x0c,0x00,0x03,0xae,0x6c,0x45,0x00,0x0c,0x20,0x00,0x84,0x24,0x78,0x08,0x00,0x0c,
+0x21,0x20,0x00,0x02,0x9f,0x52,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,0x24,0x4b,0x63,0x24,0x00,0x00,0x43,0xac,
+0x63,0x00,0x02,0x24,0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,
+0x02,0x80,0x02,0x3c,0x90,0x3d,0x45,0x94,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,
+0x93,0x3d,0x66,0x90,0xa0,0x3d,0x47,0x90,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,
+0xab,0x3d,0x6a,0x90,0xad,0x3d,0x4b,0x90,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,
+0xb0,0x3d,0x6c,0x90,0xb2,0x3d,0x4d,0x90,0x07,0x00,0x03,0x24,0x02,0x80,0x02,0x3c,
+0x25,0xb0,0x04,0x3c,0x9d,0x3d,0x43,0xa0,0xb0,0x03,0x84,0x34,0x02,0x80,0x02,0x3c,
+0x02,0x80,0x18,0x3c,0x92,0x3d,0x08,0x93,0x00,0x00,0x85,0xac,0x9e,0x3d,0x40,0xa0,
+0x02,0x80,0x02,0x3c,0x00,0x00,0x86,0xac,0x9f,0x3d,0x40,0xa0,0x02,0x80,0x02,0x3c,
+0x00,0x00,0x87,0xac,0x02,0x80,0x0f,0x3c,0xc0,0x3d,0x40,0xa0,0x02,0x80,0x02,0x3c,
+0xbc,0x3d,0x40,0xa4,0x38,0x15,0xee,0x25,0x02,0x80,0x03,0x3c,0xfd,0xff,0x02,0x24,
+0xbe,0x3d,0x60,0xa4,0xe2,0x0a,0xc2,0xa1,0x01,0x00,0x03,0x24,0x00,0x78,0x02,0x24,
+0xe0,0x0a,0xc3,0xa1,0xe4,0x0a,0xc2,0xa5,0xff,0x07,0x03,0x24,0x0f,0x00,0x09,0x31,
+0x02,0x00,0x02,0x24,0xe6,0x0a,0xc3,0xa5,0x00,0x00,0x88,0xac,0x00,0x00,0x8a,0xac,
+0x00,0x00,0x8b,0xac,0x00,0x00,0x8c,0xac,0x00,0x00,0x8d,0xac,0x0c,0x00,0x22,0x11,
+0x82,0x0b,0xc0,0xa1,0x92,0x3d,0x02,0x93,0x01,0x00,0x05,0x24,0x0f,0x00,0x42,0x30,
+0x20,0x00,0x45,0x10,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,
+0xdc,0x3d,0x40,0xa4,0xd1,0x3d,0x65,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x02,0x80,0x02,0x3c,0x97,0x3d,0x44,0x90,0x06,0x00,0x03,0x24,0x2d,0x00,0x83,0x10,
+0x0b,0x00,0x02,0x24,0x22,0x00,0x82,0x10,0x02,0x80,0x02,0x3c,0xaa,0x3d,0x43,0x90,
+0x00,0x00,0x00,0x00,0x36,0x00,0x60,0x10,0x00,0xe0,0x02,0x3c,0x04,0xe0,0x02,0x3c,
+0x38,0x15,0xe4,0x25,0x00,0x8e,0x42,0x34,0x00,0x15,0x03,0x3c,0x74,0x0b,0x82,0xac,
+0x00,0x15,0x63,0x34,0x00,0x42,0x02,0x24,0x6c,0x0b,0x83,0xac,0x70,0x0b,0x82,0xac,
+0x92,0x3d,0x02,0x93,0x01,0x00,0x05,0x24,0x0f,0x00,0x42,0x30,0xe2,0xff,0x45,0x14,
+0x00,0x00,0x00,0x00,0x00,0x80,0x02,0x3c,0x38,0x15,0xe4,0x25,0x02,0xbc,0x42,0x34,
+0x15,0x15,0x03,0x3c,0x07,0x07,0x63,0x34,0x74,0x0b,0x82,0xac,0x02,0x02,0x02,0x3c,
+0x6c,0x0b,0x83,0xac,0x70,0x0b,0x82,0xac,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,
+0xdc,0x3d,0x40,0xa4,0xd1,0x3d,0x65,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x00,0x80,0x02,0x3c,0x00,0xbc,0x42,0x34,0x15,0x15,0x03,0x3c,0x74,0x0b,0xc2,0xad,
+0x07,0x07,0x63,0x34,0x03,0x03,0x02,0x3c,0x6c,0x0b,0xc3,0xad,0x07,0x53,0x00,0x08,
+0x70,0x0b,0xc2,0xad,0x02,0x80,0x02,0x3c,0xaa,0x3d,0x43,0x90,0x00,0x00,0x00,0x00,
+0x14,0x00,0x60,0x10,0x00,0xc0,0x02,0x3c,0x04,0xc0,0x02,0x3c,0x00,0xb8,0x42,0x34,
+0x74,0x0b,0xc2,0xad,0x00,0x15,0x03,0x3c,0x02,0x02,0x02,0x3c,0x00,0x07,0x63,0x34,
+0x00,0x22,0x42,0x34,0x6c,0x0b,0xc3,0xad,0x07,0x53,0x00,0x08,0x70,0x0b,0xc2,0xad,
+0x38,0x15,0xe4,0x25,0x00,0xb2,0x42,0x34,0x00,0x1c,0x03,0x3c,0x74,0x0b,0x82,0xac,
+0x00,0x1c,0x63,0x34,0x00,0x04,0x02,0x24,0x6c,0x0b,0x83,0xac,0x26,0x53,0x00,0x08,
+0x70,0x0b,0x82,0xac,0x00,0xb2,0x42,0x34,0x1c,0x1c,0x03,0x3c,0x74,0x0b,0xc2,0xad,
+0x07,0x07,0x63,0x34,0x00,0x04,0x02,0x24,0x6c,0x0b,0xc3,0xad,0x07,0x53,0x00,0x08,
+0x70,0x0b,0xc2,0xad,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x94,0x4d,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x7f,0x00,0x02,0x3c,0x0d,0xb8,0x46,0x34,
+0x80,0x00,0x03,0x3c,0x25,0x30,0xc3,0x00,0x00,0x04,0x02,0x3c,0x25,0x30,0xc2,0x00,
+0x00,0x08,0x03,0x3c,0x25,0x30,0xc3,0x00,0x02,0x80,0x04,0x3c,0x01,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x38,0x15,0x84,0x24,0x41,0xb0,0x05,0x3c,0xb0,0x4d,0x63,0x24,
+0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x00,0xa6,0xac,0x10,0x0b,0x86,0xac,
+0x08,0x0b,0x86,0xac,0x08,0x00,0xa5,0x34,0x86,0x00,0x06,0x24,0x00,0x00,0xa6,0xa4,
+0x14,0x0b,0x86,0xa4,0x0c,0x0b,0x80,0xac,0x16,0x0b,0x80,0xa4,0x18,0x0b,0x86,0xa4,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x8b,0x53,0x00,0x08,0x00,0x00,0x00,0x00,0x42,0xb0,0x02,0x3c,
+0xa0,0xff,0x03,0x24,0x01,0x00,0x42,0x34,0xe8,0xff,0xbd,0x27,0x21,0x20,0x00,0x00,
+0x01,0x00,0x05,0x24,0x00,0x01,0x06,0x24,0x00,0x00,0x43,0xa0,0x10,0x00,0xbf,0xaf,
+0x11,0x1b,0x00,0x0c,0x00,0x00,0x00,0x00,0x10,0x00,0xbf,0x8f,0x03,0x00,0x04,0x24,
+0x01,0x00,0x05,0x24,0x40,0x1f,0x06,0x24,0x11,0x1b,0x00,0x08,0x18,0x00,0xbd,0x27,
+0xe8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x14,0x00,0xbf,0xaf,0xb7,0x56,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,0xff,0xff,0x03,0x34,
+0xf8,0x23,0x43,0xac,0xf4,0x23,0x43,0xac,0x21,0x80,0x40,0x00,0xf0,0x23,0x40,0xa4,
+0xf2,0x23,0x40,0xa4,0x1f,0x00,0x03,0x24,0xff,0xff,0x63,0x24,0xdc,0x0c,0x40,0xa4,
+0xde,0x0c,0x40,0xa4,0xe0,0x0c,0x40,0xa4,0xe2,0x0c,0x40,0xa4,0xe4,0x0c,0x40,0xa4,
+0xe6,0x0c,0x40,0xa4,0xe8,0x0c,0x40,0xa4,0xea,0x0c,0x40,0xa4,0xec,0x0c,0x40,0xa4,
+0xf5,0xff,0x61,0x04,0x24,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,0x10,0x00,0x03,0x24,
+0xb0,0x03,0x42,0x34,0x02,0x80,0x04,0x3c,0x60,0x18,0x84,0x24,0x00,0x00,0x43,0xac,
+0x21,0x28,0x00,0x00,0x58,0x45,0x00,0x0c,0x04,0x00,0x06,0x24,0x87,0x57,0x00,0x0c,
+0x00,0x00,0x00,0x00,0xfa,0x57,0x00,0x0c,0xec,0x25,0x00,0xae,0x5c,0x59,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x96,0x3d,0x64,0x90,0x92,0x00,0x02,0x24,
+0x03,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0xd4,0x59,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xba,0x59,0x00,0x0c,0x00,0x00,0x00,0x00,0x33,0x58,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x41,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00,0x50,0x24,0x00,0xa6,0x27,0x5a,0x00,0x0c,
+0x52,0x24,0x00,0xa6,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x02,0x80,0x04,0x3c,
+0x02,0x80,0x05,0x3c,0x28,0x3b,0x82,0x24,0x30,0x3b,0xa3,0x24,0x18,0x00,0xbd,0x27,
+0x04,0x00,0x42,0xac,0x28,0x3b,0x82,0xac,0x30,0x3b,0xa3,0xac,0x08,0x00,0xe0,0x03,
+0x04,0x00,0x63,0xac,0xe8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x01,0x80,0x02,0x3c,
+0x25,0xb0,0x10,0x3c,0x18,0x03,0x03,0x36,0x8c,0x4f,0x42,0x24,0x00,0x00,0x62,0xac,
+0x14,0x00,0xbf,0xaf,0xc9,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,0x68,0x54,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x24,0x02,0x80,0x02,0x3c,0x93,0x56,0x00,0x0c,
+0xc3,0x20,0x43,0xa0,0x32,0x41,0x00,0x0c,0x00,0x00,0x00,0x00,0x9e,0x53,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x44,0x00,0x03,0x36,0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,
+0x40,0x00,0x42,0x34,0x00,0x00,0x62,0xa4,0x65,0x53,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x8d,0x53,0x00,0x0c,0x00,0x00,0x00,0x00,0x5f,0x56,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x23,0x56,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x80,0x04,0x3c,0x34,0x2b,0x84,0x24,
+0x7c,0x56,0x00,0x0c,0x01,0x00,0x05,0x24,0x00,0x80,0x04,0x3c,0xc0,0x30,0x84,0x24,
+0x7c,0x56,0x00,0x0c,0x02,0x00,0x05,0x24,0x69,0x47,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x00,0x80,0x04,0x3c,0x88,0x6d,0x84,0x24,0x7c,0x56,0x00,0x0c,0x03,0x00,0x05,0x24,
+0x02,0x80,0x02,0x3c,0xa0,0x3d,0x43,0x90,0x43,0x00,0x04,0x36,0x29,0x00,0x60,0x10,
+0xd8,0x00,0x10,0x36,0x07,0x00,0x02,0x24,0x2b,0x00,0x62,0x10,0x25,0xb0,0x04,0x3c,
+0x10,0x02,0x86,0x34,0x43,0x00,0x85,0x34,0x03,0x00,0x02,0x24,0x10,0x00,0x03,0x24,
+0x00,0x00,0xa2,0xa0,0xd8,0x00,0x84,0x34,0x00,0x00,0xc3,0xa0,0x00,0x00,0x82,0x90,
+0x80,0xff,0x03,0x24,0x42,0xb0,0x05,0x3c,0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xa0,
+0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x82,0x94,0x00,0x00,0x00,0x00,
+0xc0,0x00,0x42,0x34,0x00,0x00,0x82,0xa4,0x00,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,
+0x01,0x00,0x63,0x34,0x00,0x00,0xa3,0xa0,0x6c,0x53,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x02,0x80,0x04,0x3c,0x08,0x00,0x84,0x24,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,
+0x1c,0x2c,0x00,0x0c,0x21,0x38,0x00,0x00,0x8b,0x53,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,
+0x18,0x00,0xbd,0x27,0x00,0x00,0x80,0xa0,0x00,0x00,0x03,0x92,0x80,0xff,0x02,0x24,
+0x25,0x18,0x62,0x00,0x00,0x00,0x03,0xa2,0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,
+0x00,0x00,0x82,0x94,0x42,0xb0,0x05,0x3c,0xc0,0x00,0x42,0x34,0x00,0x00,0x82,0xa4,
+0x00,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x34,0x00,0x00,0xa3,0xa0,
+0x6c,0x53,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c,0x08,0x00,0x84,0x24,
+0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,0x1c,0x2c,0x00,0x0c,0x21,0x38,0x00,0x00,
+0x8b,0x53,0x00,0x0c,0x00,0x00,0x00,0x00,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,
+0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x21,0x20,0x00,0x00,
+0x20,0xb0,0x06,0x3c,0xff,0xff,0x05,0x34,0x21,0x18,0x86,0x00,0x04,0x00,0x84,0x24,
+0x2a,0x10,0xa4,0x00,0x00,0x00,0x60,0xac,0xfb,0xff,0x40,0x10,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xb8,0xff,0xbd,0x27,0x25,0xb0,0x04,0x3c,
+0x44,0x00,0xbf,0xaf,0x40,0x00,0xbe,0xaf,0x3c,0x00,0xb7,0xaf,0x38,0x00,0xb6,0xaf,
+0x34,0x00,0xb5,0xaf,0x30,0x00,0xb4,0xaf,0x2c,0x00,0xb3,0xaf,0x28,0x00,0xb2,0xaf,
+0x24,0x00,0xb1,0xaf,0x20,0x00,0xb0,0xaf,0x0a,0x00,0x83,0x34,0x00,0x00,0x62,0x90,
+0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x30,0x0c,0x00,0x40,0x10,0x4c,0x87,0x02,0x3c,
+0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x10,0x00,0x42,0x30,0x68,0x01,0x40,0x10,
+0x4c,0x87,0x02,0x3c,0x54,0x00,0x83,0x34,0x50,0x00,0x82,0x34,0x00,0x00,0x45,0xac,
+0x00,0x00,0x65,0xa4,0x8c,0x54,0x00,0x08,0x02,0x80,0x03,0x3c,0x54,0x00,0x85,0x34,
+0x00,0xe0,0x42,0x34,0x50,0x00,0x84,0x34,0x12,0x01,0x03,0x24,0x00,0x00,0x82,0xac,
+0x00,0x00,0xa3,0xac,0x02,0x80,0x03,0x3c,0x38,0x15,0x62,0x24,0xe2,0x0a,0x43,0x90,
+0xe6,0x0a,0x45,0x94,0x25,0xb0,0x1e,0x3c,0x1c,0x00,0xa3,0xa3,0x6c,0x0b,0x43,0x8c,
+0x58,0x00,0xc6,0x37,0x5c,0x00,0xc7,0x37,0x10,0x00,0xa3,0xaf,0x70,0x0b,0x43,0x8c,
+0xff,0xff,0x04,0x24,0x60,0x00,0xc8,0x37,0x14,0x00,0xa3,0xaf,0x74,0x0b,0x42,0x8c,
+0x96,0x01,0x03,0x24,0x64,0x00,0xc9,0x37,0x18,0x00,0xa2,0xaf,0x24,0x10,0x02,0x3c,
+0x21,0x28,0xa2,0x00,0x4c,0x81,0x02,0x3c,0x00,0xe0,0x42,0x34,0x00,0x00,0xc2,0xac,
+0x8a,0x00,0xca,0x37,0x00,0x00,0xe3,0xac,0x89,0x00,0xcb,0x37,0x28,0x28,0x02,0x24,
+0x09,0x00,0x03,0x24,0x00,0x00,0x04,0xad,0x8c,0x00,0xcd,0x37,0x00,0x00,0x24,0xad,
+0x8e,0x00,0xce,0x37,0x00,0x00,0x42,0xa5,0x00,0x00,0x63,0xa1,0x10,0x10,0x02,0x24,
+0x0a,0x0a,0x03,0x24,0x00,0x00,0xa2,0xa5,0x00,0x00,0xc3,0xa5,0x25,0xb0,0x03,0x3c,
+0x13,0x00,0x02,0x24,0x90,0x00,0x63,0x34,0x00,0x00,0x62,0xa0,0x25,0xb0,0x02,0x3c,
+0x40,0x00,0x03,0x24,0x91,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x92,0x00,0xd1,0x37,
+0x3a,0x01,0x02,0x24,0x21,0x00,0x03,0x24,0xb5,0x00,0xd2,0x37,0x00,0x00,0x22,0xa6,
+0x00,0x00,0x43,0xa2,0x10,0x00,0xa3,0x8f,0xa0,0x00,0xd3,0x37,0xa4,0x00,0xd4,0x37,
+0x00,0x00,0x63,0xae,0x14,0x00,0xa2,0x8f,0xa8,0x00,0xd5,0x37,0xb6,0x00,0xdf,0x37,
+0x00,0x00,0x82,0xae,0x18,0x00,0xa3,0x8f,0x21,0x10,0x02,0x3c,0xff,0x77,0x42,0x34,
+0x00,0x00,0xa3,0xae,0x25,0xb0,0x03,0x3c,0xac,0x00,0x63,0x34,0x00,0x00,0x62,0xac,
+0x25,0xb0,0x02,0x3c,0x25,0xb0,0x03,0x3c,0xb0,0x00,0x42,0x34,0xd8,0x00,0x63,0x34,
+0x00,0x00,0x45,0xac,0x00,0x00,0x60,0xa0,0x1c,0x00,0xa3,0x93,0x25,0xb0,0x02,0x3c,
+0xb4,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x25,0xb0,0x03,0x3c,0x04,0x00,0x02,0x24,
+0xb9,0x00,0x63,0x34,0x00,0x00,0xe2,0xa3,0x00,0x00,0x64,0xa0,0x25,0xb0,0x03,0x3c,
+0x0f,0x00,0x02,0x24,0xba,0x00,0x63,0x34,0x00,0x00,0x62,0xa4,0x25,0xb0,0x02,0x3c,
+0x16,0x01,0x42,0x34,0x00,0x00,0x40,0xa4,0x25,0xb0,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x18,0x01,0x63,0x34,0x1a,0x01,0x42,0x34,0x00,0x00,0x60,0xa4,0x00,0x00,0x40,0xa4,
+0x25,0xb0,0x03,0x3c,0xff,0xff,0x02,0x3c,0xff,0x0f,0x42,0x34,0xdc,0x00,0x63,0x34,
+0x00,0x00,0x62,0xac,0x2f,0x00,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x32,0x32,0x63,0x34,
+0xd0,0x01,0x42,0x34,0x00,0x00,0x43,0xac,0x5e,0x00,0x0c,0x3c,0x25,0xb0,0x03,0x3c,
+0x08,0x00,0x02,0x3c,0x32,0x43,0x90,0x35,0xd4,0x01,0x63,0x34,0x30,0xa5,0x42,0x34,
+0xd8,0x01,0xcf,0x37,0x00,0x00,0x70,0xac,0x00,0x00,0xe2,0xad,0x02,0x80,0x02,0x3c,
+0x96,0x3d,0x4d,0x90,0xdc,0x01,0xc3,0x37,0x1a,0x06,0x02,0x24,0x28,0x83,0x8c,0x35,
+0xe0,0x01,0xc4,0x37,0x00,0x00,0x6c,0xac,0xf4,0x01,0xc5,0x37,0x00,0x00,0x82,0xa4,
+0x07,0x07,0x03,0x24,0xc2,0x00,0x02,0x3c,0x00,0x00,0xa3,0xa4,0x51,0x10,0x42,0x34,
+0x26,0x00,0x03,0x24,0xf8,0x01,0xc6,0x37,0x00,0x02,0xc7,0x37,0x00,0x00,0xc2,0xac,
+0x03,0x02,0xc8,0x37,0x00,0x00,0xe3,0xa4,0x04,0x00,0x03,0x24,0x00,0x00,0x03,0xa1,
+0x0c,0x00,0x02,0x24,0xc0,0x01,0x03,0x24,0x36,0x02,0xc9,0x37,0x34,0x02,0xca,0x37,
+0x00,0x00,0x22,0xa1,0x37,0x02,0xcb,0x37,0x00,0x00,0x43,0xa5,0x03,0x00,0x02,0x24,
+0x22,0x00,0x03,0x24,0x00,0x00,0x62,0xa1,0xd6,0x00,0xa3,0x11,0x1b,0x1b,0x02,0x3c,
+0x13,0x13,0x02,0x3c,0x13,0x13,0x42,0x34,0x60,0x01,0xc3,0x37,0x64,0x01,0xc4,0x37,
+0x68,0x01,0xc5,0x37,0x7c,0x01,0xca,0x37,0x6c,0x01,0xc6,0x37,0x70,0x01,0xc7,0x37,
+0x74,0x01,0xc8,0x37,0x78,0x01,0xc9,0x37,0x00,0x00,0x62,0xac,0x00,0x00,0x82,0xac,
+0x00,0x00,0xa2,0xac,0x00,0x00,0xc2,0xac,0x00,0x00,0xe2,0xac,0x00,0x00,0x02,0xad,
+0x00,0x00,0x22,0xad,0x00,0x00,0x42,0xad,0x02,0x80,0x02,0x3c,0x96,0x3d,0x45,0x90,
+0x25,0xb0,0x0c,0x3c,0x01,0x70,0x03,0x3c,0x80,0x01,0x82,0x35,0x08,0x5f,0x63,0x34,
+0x22,0x00,0x04,0x24,0x00,0x00,0x43,0xac,0xb5,0x00,0xa4,0x10,0x0f,0x1f,0x02,0x3c,
+0x92,0x00,0x02,0x24,0xb2,0x00,0xa2,0x10,0x0f,0x1f,0x02,0x3c,0x0f,0x10,0x02,0x3c,
+0x00,0xf0,0x51,0x34,0xf7,0x01,0x92,0x35,0x15,0xf0,0x4d,0x34,0x77,0x00,0x0e,0x24,
+0x84,0x01,0x87,0x35,0x88,0x01,0x88,0x35,0x10,0xf0,0x44,0x34,0x8c,0x01,0x85,0x35,
+0x05,0xf0,0x42,0x34,0x00,0x00,0xed,0xac,0x90,0x01,0x83,0x35,0x00,0x00,0x04,0xad,
+0x94,0x01,0x86,0x35,0x00,0x00,0xa2,0xac,0xf5,0x0f,0x02,0x24,0x00,0x00,0x71,0xac,
+0x25,0xb0,0x05,0x3c,0x00,0x00,0xc2,0xac,0x98,0x01,0x89,0x35,0x9c,0x01,0x8a,0x35,
+0xf0,0x0f,0x03,0x24,0x0d,0x00,0x02,0x24,0x00,0x00,0x23,0xad,0xa0,0x01,0x8b,0x35,
+0x00,0x00,0x42,0xad,0xa7,0x01,0xb7,0x34,0xf6,0x01,0x8c,0x35,0xff,0xff,0x02,0x24,
+0x00,0x00,0x6d,0xad,0x00,0x00,0x8e,0xa1,0x00,0x00,0x4e,0xa2,0x00,0x00,0xe2,0xa2,
+0x25,0xb0,0x02,0x3c,0xa8,0x01,0xb6,0x34,0xff,0xff,0x09,0x24,0xac,0x01,0x42,0x34,
+0x00,0x00,0xc9,0xae,0x03,0x04,0x04,0x3c,0x00,0x00,0x49,0xac,0x07,0x08,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x01,0x02,0x84,0x34,0x05,0x06,0x63,0x34,0xb4,0x01,0xb1,0x34,
+0xb8,0x01,0xb2,0x34,0xbc,0x01,0xb3,0x34,0xb0,0x01,0x42,0x34,0x00,0x00,0x44,0xac,
+0x00,0x00,0x23,0xae,0x25,0xb0,0x02,0x3c,0x00,0x00,0x44,0xae,0x00,0x00,0x63,0xae,
+0x25,0xb0,0x03,0x3c,0x0c,0x00,0x06,0x24,0xc0,0x01,0xb4,0x34,0xc1,0x01,0xb5,0x34,
+0x0d,0x00,0x08,0x24,0xc2,0x01,0x63,0x34,0xc3,0x01,0x42,0x34,0x00,0x00,0x86,0xa2,
+0xc4,0x01,0xab,0x34,0x00,0x00,0xa6,0xa2,0xc5,0x01,0xac,0x34,0x00,0x00,0x66,0xa0,
+0x0e,0x00,0x07,0x24,0x00,0x00,0x48,0xa0,0xc6,0x01,0xaa,0x34,0xc7,0x01,0xad,0x34,
+0x0f,0x00,0x02,0x24,0x00,0x00,0x68,0xa1,0x00,0x00,0x87,0xa1,0x00,0x00,0x47,0xa1,
+0x00,0x00,0xa2,0xa1,0x57,0x01,0x02,0x3c,0x48,0x00,0xbf,0x34,0x46,0x00,0xae,0x34,
+0x0e,0xe2,0x42,0x34,0x00,0x00,0xc0,0xa5,0x4c,0x00,0xbe,0x34,0x00,0x00,0xe2,0xaf,
+0x4d,0x00,0xb9,0x34,0x80,0xff,0x02,0x24,0x00,0x00,0xc0,0xa3,0x00,0x00,0x22,0xa3,
+0x25,0xb0,0x02,0x3c,0xbc,0x00,0x03,0x24,0x40,0x00,0x42,0x34,0x00,0x00,0x43,0xa4,
+0x25,0xb0,0x03,0x3c,0x64,0x03,0xb8,0x34,0xfc,0x37,0x02,0x24,0x40,0x00,0x63,0x34,
+0x00,0x00,0x00,0xa3,0xd8,0x00,0xa7,0x34,0x00,0x00,0x62,0xa4,0x00,0x00,0xe3,0x90,
+0x80,0xff,0x02,0x24,0x2a,0xb0,0x04,0x3c,0x25,0x18,0x62,0x00,0x00,0x00,0xe3,0xa0,
+0x26,0xb0,0x06,0x3c,0x30,0x00,0x89,0x34,0x20,0x20,0x02,0x24,0x38,0x00,0x84,0x34,
+0x40,0x00,0x03,0x24,0x00,0x00,0x82,0xa4,0x79,0x00,0xc8,0x34,0x00,0x00,0x23,0xa1,
+0x94,0x00,0xaa,0x34,0x16,0x00,0x02,0x24,0x64,0x00,0x03,0x24,0x00,0x00,0x02,0xa1,
+0x7c,0x00,0xd2,0x34,0x00,0x00,0x43,0xa5,0x98,0x00,0xab,0x34,0x7a,0x00,0xc6,0x34,
+0x22,0x00,0x02,0x24,0x04,0x00,0x03,0x24,0x00,0x00,0x62,0xa5,0x9c,0x00,0xac,0x34,
+0x00,0x00,0xc3,0xa0,0x20,0x0c,0x02,0x24,0x0a,0x00,0x03,0x24,0x00,0x00,0x42,0xa6,
+0x9a,0x00,0xad,0x34,0x00,0x00,0x83,0xa1,0x96,0x00,0xae,0x34,0xff,0x03,0x02,0x24,
+0x02,0x00,0x03,0x24,0x00,0x00,0xa2,0xa5,0x00,0x00,0xc3,0xa5,0x25,0xb0,0x03,0x3c,
+0x20,0x00,0x02,0x24,0xb7,0x00,0x63,0x34,0x00,0x00,0x62,0xa0,0x89,0x00,0xb1,0x34,
+0x09,0x00,0x03,0x24,0x00,0x00,0x23,0xa2,0x44,0x00,0xa5,0x34,0x00,0x00,0xa3,0x94,
+0x02,0x80,0x02,0x3c,0x38,0x15,0x46,0x24,0xff,0xfd,0x02,0x24,0x24,0x18,0x62,0x00,
+0x00,0x00,0xa3,0xa4,0x00,0x00,0xa2,0x94,0xe2,0x0a,0xc4,0x90,0x04,0x02,0x03,0x24,
+0x00,0x02,0x42,0x34,0x00,0x00,0xa2,0xa4,0x29,0xb0,0x02,0x3c,0x40,0x00,0x42,0x34,
+0x00,0x00,0x43,0xa4,0xfa,0x18,0x00,0x0c,0x00,0x00,0x00,0x00,0x44,0x00,0xbf,0x8f,
+0x40,0x00,0xbe,0x8f,0x3c,0x00,0xb7,0x8f,0x38,0x00,0xb6,0x8f,0x34,0x00,0xb5,0x8f,
+0x30,0x00,0xb4,0x8f,0x2c,0x00,0xb3,0x8f,0x28,0x00,0xb2,0x8f,0x24,0x00,0xb1,0x8f,
+0x20,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x48,0x00,0xbd,0x27,
+0x54,0x00,0x85,0x34,0x00,0xe0,0x42,0x34,0x50,0x00,0x84,0x34,0x12,0x01,0x03,0x24,
+0x00,0x00,0x82,0xac,0x00,0x00,0xa3,0xa4,0x8c,0x54,0x00,0x08,0x02,0x80,0x03,0x3c,
+0x00,0xf0,0x51,0x34,0xf7,0x01,0x92,0x35,0x15,0xf0,0x4d,0x34,0x42,0x55,0x00,0x08,
+0xff,0xff,0x0e,0x24,0x20,0x55,0x00,0x08,0x1b,0x1b,0x42,0x34,0x25,0xb0,0x03,0x3c,
+0x25,0xb0,0x08,0x3c,0xfc,0x37,0x02,0x24,0x40,0x00,0x63,0x34,0x01,0x80,0x04,0x3c,
+0x00,0x00,0x62,0xa4,0xbc,0x6f,0x84,0x24,0xff,0x00,0x07,0x24,0xb0,0x03,0x06,0x35,
+0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00,0xff,0x00,0x62,0x30,0x21,0x18,0x68,0x00,
+0x0a,0x00,0x47,0x10,0xff,0x00,0x65,0x30,0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x62,0xac,0x00,0x00,0xc3,0xac,0x04,0x00,0x82,0x8c,0x08,0x00,0x84,0x24,
+0x00,0x00,0xc2,0xac,0xf2,0xff,0xa7,0x14,0x00,0x00,0x00,0x00,0x25,0xb0,0x08,0x3c,
+0x01,0x80,0x02,0x3c,0xb4,0x69,0x44,0x24,0xff,0x00,0x07,0x24,0xb0,0x03,0x06,0x35,
+0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00,0xff,0x00,0x62,0x30,0x21,0x18,0x68,0x00,
+0x0a,0x00,0x47,0x10,0xff,0x00,0x65,0x30,0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x62,0xac,0x00,0x00,0xc3,0xac,0x04,0x00,0x82,0x8c,0x08,0x00,0x84,0x24,
+0x00,0x00,0xc2,0xac,0xf2,0xff,0xa7,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c,0x02,0x80,0x05,0x3c,0x68,0x59,0x42,0x24,
+0x02,0x80,0x03,0x3c,0xe4,0x3d,0xa2,0xac,0x00,0x80,0x02,0x3c,0x84,0x3e,0x60,0xac,
+0xe4,0x3d,0xa4,0x24,0x02,0x80,0x03,0x3c,0x78,0x06,0x42,0x24,0x88,0x3e,0x60,0xa4,
+0x08,0x00,0x82,0xac,0x02,0x80,0x03,0x3c,0x00,0x80,0x02,0x3c,0x8a,0x3e,0x60,0xa4,
+0x02,0x80,0x06,0x3c,0x54,0x0a,0x42,0x24,0x00,0x80,0x03,0x3c,0x8c,0x3e,0xc7,0x24,
+0x14,0x00,0x82,0xac,0x04,0x08,0x63,0x24,0x02,0x80,0x02,0x3c,0x8c,0x3e,0xc0,0xac,
+0x10,0x00,0x83,0xac,0x04,0x00,0xe0,0xac,0x02,0x80,0x03,0x3c,0x94,0x3e,0x40,0xa0,
+0x02,0x80,0x02,0x3c,0x98,0x3e,0x60,0xac,0x9c,0x3e,0x40,0xac,0x00,0x80,0x02,0x3c,
+0x00,0x80,0x03,0x3c,0xcc,0x1b,0x42,0x24,0xe8,0x0c,0x63,0x24,0x40,0x00,0x82,0xac,
+0x1c,0x00,0x83,0xac,0x00,0x80,0x02,0x3c,0x00,0x80,0x03,0x3c,0x78,0x10,0x42,0x24,
+0x04,0x14,0x63,0x24,0x20,0x00,0x82,0xac,0x24,0x00,0x83,0xac,0x00,0x80,0x02,0x3c,
+0x00,0x80,0x03,0x3c,0xe8,0x17,0x42,0x24,0x78,0x23,0x63,0x24,0x28,0x00,0x82,0xac,
+0x2c,0x00,0x83,0xac,0x00,0x80,0x02,0x3c,0x00,0x80,0x03,0x3c,0x28,0x1c,0x42,0x24,
+0x00,0x03,0x63,0x24,0x3c,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0x50,0x00,0x83,0xac,
+0x25,0xb0,0x02,0x3c,0x08,0x00,0x42,0x34,0x00,0x00,0x43,0x8c,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x02,0x80,0x0e,0x3c,0x02,0x80,0x08,0x3c,0x02,0x80,0x02,0x3c,
+0x02,0x80,0x03,0x3c,0xf8,0x03,0x4d,0x24,0x00,0x14,0x6c,0x24,0x01,0x00,0x07,0x24,
+0x00,0x00,0xcb,0x25,0xff,0xff,0x0a,0x24,0x00,0x04,0x09,0x25,0x80,0x1a,0x07,0x00,
+0x21,0x10,0x6b,0x00,0x00,0x00,0x42,0xac,0x90,0x00,0x4a,0xac,0x00,0x04,0x04,0x8d,
+0x01,0x00,0xe7,0x24,0x08,0x00,0x45,0x24,0x21,0x18,0x6d,0x00,0x05,0x00,0xe6,0x28,
+0x04,0x00,0x82,0xac,0x00,0x00,0x44,0xac,0x04,0x00,0x49,0xac,0x00,0x04,0x02,0xad,
+0x8c,0x00,0x40,0xac,0x6c,0x00,0xa3,0xac,0xf0,0xff,0xc0,0x14,0x68,0x00,0xac,0xac,
+0x08,0x00,0xe0,0x03,0x00,0x00,0xc9,0xad,0x05,0x00,0xa2,0x2c,0x13,0x00,0x40,0x10,
+0xff,0xff,0x07,0x24,0x02,0x80,0x02,0x3c,0x80,0x1a,0x05,0x00,0x00,0x00,0x42,0x24,
+0x0e,0x00,0xa0,0x10,0x21,0x30,0x62,0x00,0x90,0x00,0xc3,0x8c,0xff,0xff,0x02,0x24,
+0x0a,0x00,0x62,0x14,0x00,0x00,0x00,0x00,0x8c,0x00,0xc2,0x8c,0x00,0x00,0x00,0x00,
+0x06,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x24,0x88,0x00,0xc4,0xac,
+0x8c,0x00,0xc2,0xac,0x90,0x00,0xc5,0xac,0x21,0x38,0xa0,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0xe0,0x00,0x25,0xb0,0x04,0x3c,0x01,0x80,0x02,0x3c,0x18,0x03,0x85,0x34,
+0x4c,0x5a,0x42,0x24,0xe0,0xff,0xbd,0x27,0x00,0x00,0xa2,0xac,0x1b,0x00,0x86,0x34,
+0xdb,0xff,0x03,0x24,0x27,0x00,0x84,0x34,0x07,0x00,0x02,0x24,0x14,0x00,0xb1,0xaf,
+0x10,0x00,0xb0,0xaf,0x00,0x00,0x83,0xa0,0x18,0x00,0xbf,0xaf,0x00,0x00,0xc2,0xa0,
+0x01,0x00,0x11,0x24,0x21,0x80,0x00,0x00,0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x02,
+0x01,0x00,0x02,0x26,0xff,0x00,0x50,0x30,0x2b,0x18,0x30,0x02,0xfa,0xff,0x60,0x10,
+0x00,0x00,0x00,0x00,0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x3c,0x00,0x80,0x63,0x24,0x40,0x10,0x04,0x3c,
+0xff,0xff,0x63,0x30,0x02,0x80,0x02,0x3c,0x38,0x15,0x42,0x24,0x25,0xc0,0x64,0x00,
+0x00,0x25,0x58,0xac,0x80,0x00,0x18,0x27,0x0c,0x25,0x58,0xac,0x80,0x00,0x18,0x27,
+0x18,0x25,0x58,0xac,0x80,0x00,0x18,0x27,0x24,0x25,0x58,0xac,0x80,0x00,0x18,0x27,
+0xe0,0xff,0xbd,0x27,0x30,0x25,0x58,0xac,0x80,0x00,0x18,0x27,0x1c,0x00,0xb7,0xaf,
+0x18,0x00,0xb6,0xaf,0x14,0x00,0xb5,0xaf,0x10,0x00,0xb4,0xaf,0x0c,0x00,0xb3,0xaf,
+0x08,0x00,0xb2,0xaf,0x04,0x00,0xb1,0xaf,0x00,0x00,0xb0,0xaf,0x3c,0x25,0x58,0xac,
+0x0c,0x25,0x45,0x8c,0x18,0x25,0x46,0x8c,0x24,0x25,0x47,0x8c,0x30,0x25,0x48,0x8c,
+0x3c,0x25,0x49,0x8c,0x80,0x00,0x18,0x27,0x48,0x25,0x58,0xac,0x21,0x50,0x00,0x03,
+0x25,0x18,0x64,0x00,0x25,0xb0,0x0e,0x3c,0x20,0x10,0x04,0x3c,0x80,0x00,0x18,0x27,
+0xfc,0x24,0x43,0xac,0x08,0x25,0x45,0xac,0x14,0x25,0x46,0xac,0x20,0x25,0x47,0xac,
+0x2c,0x25,0x48,0xac,0x38,0x25,0x49,0xac,0xac,0x00,0xc3,0x35,0x94,0x24,0x44,0xac,
+0x90,0x24,0x44,0xac,0xa0,0x24,0x44,0xac,0x9c,0x24,0x44,0xac,0xac,0x24,0x44,0xac,
+0xa8,0x24,0x44,0xac,0xb8,0x24,0x44,0xac,0xb4,0x24,0x44,0xac,0x54,0x25,0x58,0xac,
+0x44,0x25,0x4a,0xac,0xc4,0x24,0x44,0xac,0xc0,0x24,0x44,0xac,0xd0,0x24,0x44,0xac,
+0xcc,0x24,0x44,0xac,0xdc,0x24,0x44,0xac,0xd8,0x24,0x44,0xac,0x00,0x02,0x18,0x27,
+0x00,0x00,0x68,0x8c,0xe4,0x0a,0x46,0x94,0x6c,0x25,0x58,0xac,0xb0,0x00,0xc3,0x35,
+0x00,0x00,0x76,0x8c,0x21,0x10,0x05,0x3c,0x54,0x25,0x52,0x8c,0x23,0x10,0x0c,0x3c,
+0x22,0x10,0x0d,0x3c,0x02,0x80,0x11,0x3c,0x02,0x80,0x14,0x3c,0x02,0x80,0x15,0x3c,
+0x02,0x80,0x17,0x3c,0x00,0x80,0xa3,0x34,0x24,0x10,0x07,0x3c,0x21,0x98,0x00,0x03,
+0x23,0x18,0x66,0x00,0x00,0x02,0x18,0x27,0x38,0x3b,0x26,0x26,0x40,0x3b,0x8a,0x26,
+0x48,0x3b,0xa9,0x26,0x50,0x3b,0xeb,0x26,0x00,0x04,0x8f,0x35,0x01,0x00,0x08,0x25,
+0x00,0x40,0xb0,0x35,0x00,0x01,0xce,0x35,0x50,0x25,0x52,0xac,0x68,0x25,0x53,0xac,
+0xc4,0x25,0x4f,0xac,0x88,0x25,0x48,0xac,0x94,0x25,0x43,0xac,0xb8,0x25,0x50,0xac,
+0xac,0x25,0x56,0xac,0x00,0x00,0xc7,0xad,0xa8,0x25,0x47,0xac,0xc8,0x25,0x44,0xac,
+0xe8,0x24,0x44,0xac,0xe4,0x24,0x44,0xac,0x72,0x25,0x40,0xa4,0x71,0x25,0x40,0xa0,
+0x70,0x25,0x40,0xa0,0xbc,0x25,0x4c,0xac,0xc0,0x25,0x4c,0xac,0x80,0x25,0x45,0xac,
+0x84,0x25,0x45,0xac,0x8c,0x25,0x45,0xac,0x90,0x25,0x45,0xac,0xb0,0x25,0x4d,0xac,
+0xb4,0x25,0x4d,0xac,0xa4,0x25,0x47,0xac,0xcc,0x25,0x44,0xac,0xd8,0x25,0x58,0xac,
+0xd4,0x25,0x58,0xac,0x04,0x00,0x29,0xad,0x40,0x3b,0x8a,0xae,0x04,0x00,0x6b,0xad,
+0x48,0x3b,0xa9,0xae,0x04,0x00,0xc6,0xac,0x50,0x3b,0xeb,0xae,0x38,0x3b,0x26,0xae,
+0x04,0x00,0x4a,0xad,0x02,0x80,0x03,0x3c,0x00,0x14,0x62,0x24,0x00,0x14,0x66,0xac,
+0x04,0x00,0xc2,0xac,0x38,0x3b,0x22,0xae,0x04,0x00,0x46,0xac,0x08,0x00,0x58,0xac,
+0x10,0x00,0x40,0xac,0x00,0x01,0x18,0x27,0x21,0x48,0x40,0x00,0x18,0x00,0x48,0x24,
+0x01,0x00,0x07,0x24,0x21,0x18,0x40,0x01,0x21,0x28,0x00,0x00,0x07,0x00,0x06,0x24,
+0x21,0x20,0xa8,0x00,0x21,0x10,0xa9,0x00,0xff,0xff,0xc6,0x24,0x20,0x00,0x58,0xac,
+0x28,0x00,0x47,0xac,0x18,0x00,0xa5,0x24,0x00,0x00,0x8a,0xac,0x04,0x00,0x83,0xac,
+0x00,0x00,0x64,0xac,0x00,0x01,0x18,0x27,0xf5,0xff,0xc1,0x04,0x21,0x18,0x80,0x00,
+0x02,0x80,0x02,0x3c,0x48,0x3b,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,
+0x04,0x00,0x27,0x8d,0xd8,0x14,0x4b,0x24,0x04,0x00,0x44,0xad,0x02,0x00,0x08,0x24,
+0x00,0x14,0x6a,0x24,0x21,0x28,0x00,0x00,0x01,0x00,0x06,0x24,0x21,0x20,0xab,0x00,
+0x21,0x10,0xaa,0x00,0xff,0xff,0xc6,0x24,0xe0,0x00,0x58,0xac,0xe8,0x00,0x48,0xac,
+0x18,0x00,0xa5,0x24,0x00,0x00,0x89,0xac,0x04,0x00,0x87,0xac,0x00,0x00,0xe4,0xac,
+0x00,0x02,0x18,0x27,0xf5,0xff,0xc1,0x04,0x21,0x38,0x80,0x00,0x02,0x80,0x02,0x3c,
+0x50,0x3b,0x48,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x04,0x00,0x07,0x8d,
+0x08,0x15,0x4b,0x24,0x04,0x00,0x24,0xad,0x00,0x14,0x6a,0x24,0x03,0x00,0x09,0x24,
+0x21,0x28,0x00,0x00,0x01,0x00,0x06,0x24,0x21,0x20,0xab,0x00,0x21,0x10,0xaa,0x00,
+0xff,0xff,0xc6,0x24,0x10,0x01,0x58,0xac,0x18,0x01,0x49,0xac,0x18,0x00,0xa5,0x24,
+0x00,0x00,0x88,0xac,0x04,0x00,0x87,0xac,0x00,0x00,0xe4,0xac,0x00,0x08,0x18,0x27,
+0xf5,0xff,0xc1,0x04,0x21,0x38,0x80,0x00,0x1c,0x00,0xb7,0x8f,0x18,0x00,0xb6,0x8f,
+0x14,0x00,0xb5,0x8f,0x10,0x00,0xb4,0x8f,0x0c,0x00,0xb3,0x8f,0x08,0x00,0xb2,0x8f,
+0x04,0x00,0xb1,0x8f,0x00,0x00,0xb0,0x8f,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,
+0x04,0x00,0x04,0xad,0xc8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,
+0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0xd8,0x81,0x73,0x24,0x4c,0x82,0x52,0x24,
+0x02,0x80,0x03,0x3c,0xff,0xff,0x02,0x3c,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,
+0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x30,0x00,0xbf,0xaf,0xff,0x1f,0x54,0x34,
+0x38,0x15,0x70,0x24,0x21,0x88,0x00,0x00,0x02,0x80,0x15,0x3c,0xcd,0x47,0x00,0x0c,
+0x21,0x20,0x20,0x02,0x90,0x11,0x05,0x8e,0x6c,0x00,0x66,0x8e,0x6c,0x00,0x43,0x8e,
+0xb8,0x81,0xa2,0x26,0x1b,0x00,0x44,0x90,0x21,0x18,0x66,0x00,0x24,0x28,0xb4,0x00,
+0x00,0x21,0x04,0x00,0x42,0x18,0x03,0x00,0x00,0x20,0xa5,0x34,0x5c,0x11,0x03,0xae,
+0x80,0x11,0x04,0xae,0x90,0x11,0x05,0xae,0x84,0x11,0x04,0xae,0x21,0x30,0x00,0x00,
+0x21,0x10,0x06,0x02,0x01,0x00,0xc6,0x24,0x1d,0x00,0xc3,0x28,0xb1,0x11,0x40,0xa0,
+0x94,0x11,0x40,0xa0,0xfa,0xff,0x60,0x14,0xce,0x11,0x40,0xa0,0x01,0x00,0x31,0x26,
+0x20,0x00,0x22,0x2a,0xec,0x11,0x00,0xae,0xe4,0xff,0x40,0x14,0x94,0x00,0x10,0x26,
+0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x38,0x15,0x4b,0x24,0x02,0x80,0x02,0x3c,
+0x4c,0x82,0x6f,0x24,0xd8,0x81,0x4d,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,
+0xb8,0x81,0x6e,0x24,0x98,0x81,0x4c,0x24,0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00,
+0x21,0x20,0x6d,0x00,0x21,0x10,0x6f,0x00,0x21,0x28,0x2e,0x02,0x21,0x30,0x2c,0x02,
+0x00,0x00,0x88,0x8c,0x00,0x00,0xa9,0x90,0x00,0x00,0xc7,0x90,0x00,0x00,0x4a,0x8c,
+0x21,0x10,0x2b,0x02,0x01,0x00,0x31,0x26,0x21,0x18,0x6b,0x00,0x1d,0x00,0x24,0x2a,
+0xf8,0x04,0x68,0xac,0xce,0x04,0x47,0xa0,0x6c,0x05,0x6a,0xac,0xef,0xff,0x80,0x14,
+0x94,0x04,0x49,0xa0,0x02,0x80,0x02,0x3c,0x38,0x15,0x4a,0x24,0x02,0x80,0x03,0x3c,
+0x01,0x80,0x02,0x3c,0x74,0x80,0x6b,0x24,0x14,0x7f,0x4c,0x24,0x21,0x88,0x00,0x00,
+0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00,0x21,0x40,0x2a,0x01,0x21,0x38,0x2b,0x01,
+0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90,0x00,0x00,0x45,0x90,0x21,0x18,0x06,0x01,
+0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28,0xc9,0x03,0x64,0xa0,0xf8,0xff,0x40,0x14,
+0x38,0x03,0x65,0xa0,0x21,0x10,0x2c,0x02,0x1d,0x00,0x44,0x90,0x00,0x00,0x45,0x90,
+0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x77,0x04,0x64,0xa0,
+0x5a,0x04,0x65,0xa0,0xeb,0xff,0x40,0x14,0x05,0x00,0x29,0x25,0x30,0x00,0xbf,0x8f,
+0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,
+0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,
+0x29,0xb0,0x02,0x3c,0xf8,0xff,0xbd,0x27,0x00,0x00,0x40,0xac,0x08,0x00,0x44,0x34,
+0x0c,0x00,0x45,0x34,0x10,0x00,0x46,0x34,0x04,0x00,0x43,0x34,0x14,0x00,0x47,0x34,
+0x18,0x00,0x48,0x34,0x1c,0x00,0x49,0x34,0x20,0x00,0x4a,0x34,0x24,0x00,0x4b,0x34,
+0x28,0x00,0x4c,0x34,0x2c,0x00,0x4d,0x34,0x30,0x00,0x4e,0x34,0x34,0x00,0x4f,0x34,
+0x04,0x00,0xb1,0xaf,0x00,0x00,0xb0,0xaf,0x3c,0x00,0x51,0x34,0x38,0x00,0x50,0x34,
+0x02,0x80,0x02,0x3c,0x00,0x00,0x60,0xac,0x00,0x00,0x80,0xac,0x00,0x00,0xa0,0xac,
+0x21,0x20,0x00,0x00,0x00,0x00,0xc0,0xac,0xff,0xff,0x05,0x24,0x00,0x00,0xe0,0xac,
+0x38,0x15,0x46,0x24,0x00,0x00,0x00,0xad,0x00,0x00,0x20,0xad,0x00,0x00,0x40,0xad,
+0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad,0x00,0x00,0xa0,0xad,0x00,0x00,0xc0,0xad,
+0x00,0x00,0xe0,0xad,0x00,0x00,0x00,0xae,0x00,0x00,0x20,0xae,0x21,0x18,0x86,0x00,
+0x01,0x00,0x84,0x24,0x08,0x00,0x82,0x28,0xfc,0xff,0x40,0x14,0xf0,0x04,0x65,0xa0,
+0x02,0x80,0x02,0x3c,0x38,0x15,0x43,0x24,0x1f,0x00,0x04,0x24,0x90,0x11,0x62,0x8c,
+0xff,0xff,0x84,0x24,0xf0,0x00,0x42,0x34,0x90,0x11,0x62,0xac,0xfb,0xff,0x81,0x04,
+0x94,0x00,0x63,0x24,0x04,0x00,0xb1,0x8f,0x00,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x08,0x00,0xbd,0x27,0x48,0xfd,0xbd,0x27,0xb4,0x02,0xb3,0xaf,0x02,0x80,0x02,0x3c,
+0x02,0x80,0x13,0x3c,0x58,0x83,0x46,0x24,0x38,0x15,0x63,0x26,0xb0,0x02,0xb2,0xaf,
+0xac,0x02,0xb1,0xaf,0xa8,0x02,0xb0,0xaf,0x03,0x00,0x60,0xa0,0x21,0x38,0xa0,0x03,
+0x90,0x00,0xc8,0x24,0x00,0x00,0xc2,0x8c,0x04,0x00,0xc3,0x8c,0x08,0x00,0xc4,0x8c,
+0x0c,0x00,0xc5,0x8c,0x10,0x00,0xc6,0x24,0x00,0x00,0xe2,0xac,0x04,0x00,0xe3,0xac,
+0x08,0x00,0xe4,0xac,0x0c,0x00,0xe5,0xac,0xf6,0xff,0xc8,0x14,0x10,0x00,0xe7,0x24,
+0x00,0x00,0xc3,0x8c,0x02,0x80,0x02,0x3c,0xec,0x83,0x58,0x24,0x00,0x00,0xe3,0xac,
+0x98,0x00,0xb9,0x27,0x00,0x01,0x12,0x27,0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,
+0x09,0x00,0x04,0x93,0x0d,0x00,0x05,0x93,0x00,0x00,0x11,0x93,0x02,0x00,0x0d,0x93,
+0x04,0x00,0x10,0x93,0x06,0x00,0x0c,0x93,0x08,0x00,0x0f,0x93,0x0a,0x00,0x07,0x93,
+0x0c,0x00,0x0e,0x93,0x0e,0x00,0x06,0x93,0x03,0x00,0x08,0x93,0x07,0x00,0x09,0x93,
+0x0b,0x00,0x0a,0x93,0x0f,0x00,0x0b,0x93,0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,
+0x00,0x22,0x04,0x00,0x00,0x2a,0x05,0x00,0x25,0x10,0x51,0x00,0x25,0x18,0x70,0x00,
+0x25,0x20,0x8f,0x00,0x25,0x28,0xae,0x00,0x00,0x6c,0x0d,0x00,0x00,0x64,0x0c,0x00,
+0x00,0x3c,0x07,0x00,0x00,0x34,0x06,0x00,0x25,0x68,0xa2,0x01,0x25,0x60,0x83,0x01,
+0x25,0x38,0xe4,0x00,0x25,0x30,0xc5,0x00,0x00,0x46,0x08,0x00,0x00,0x4e,0x09,0x00,
+0x00,0x56,0x0a,0x00,0x00,0x5e,0x0b,0x00,0x25,0x40,0x0d,0x01,0x25,0x48,0x2c,0x01,
+0x25,0x50,0x47,0x01,0x25,0x58,0x66,0x01,0x10,0x00,0x18,0x27,0x00,0x00,0x28,0xaf,
+0x04,0x00,0x29,0xaf,0x08,0x00,0x2a,0xaf,0x0c,0x00,0x2b,0xaf,0xd2,0xff,0x12,0x17,
+0x10,0x00,0x39,0x27,0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x00,0x00,0x09,0x93,
+0x02,0x00,0x04,0x93,0x04,0x00,0x08,0x93,0x06,0x00,0x05,0x93,0x07,0x00,0x06,0x93,
+0x03,0x00,0x07,0x93,0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x25,0x10,0x49,0x00,
+0x25,0x18,0x68,0x00,0x00,0x24,0x04,0x00,0x00,0x2c,0x05,0x00,0x25,0x20,0x82,0x00,
+0x25,0x28,0xa3,0x00,0x00,0x3e,0x07,0x00,0x00,0x36,0x06,0x00,0x02,0x80,0x02,0x3c,
+0x25,0x38,0xe4,0x00,0x25,0x30,0xc5,0x00,0xf4,0x84,0x58,0x24,0x04,0x00,0x26,0xaf,
+0x00,0x00,0x27,0xaf,0x00,0x01,0x12,0x27,0xa0,0x01,0xb9,0x27,0x01,0x00,0x02,0x93,
+0x05,0x00,0x03,0x93,0x09,0x00,0x04,0x93,0x0d,0x00,0x05,0x93,0x00,0x00,0x11,0x93,
+0x02,0x00,0x0d,0x93,0x04,0x00,0x10,0x93,0x06,0x00,0x0c,0x93,0x08,0x00,0x0f,0x93,
+0x0a,0x00,0x07,0x93,0x0c,0x00,0x0e,0x93,0x0e,0x00,0x06,0x93,0x03,0x00,0x08,0x93,
+0x07,0x00,0x09,0x93,0x0b,0x00,0x0a,0x93,0x0f,0x00,0x0b,0x93,0x00,0x12,0x02,0x00,
+0x00,0x1a,0x03,0x00,0x00,0x22,0x04,0x00,0x00,0x2a,0x05,0x00,0x25,0x10,0x51,0x00,
+0x25,0x18,0x70,0x00,0x25,0x20,0x8f,0x00,0x25,0x28,0xae,0x00,0x00,0x6c,0x0d,0x00,
+0x00,0x64,0x0c,0x00,0x00,0x3c,0x07,0x00,0x00,0x34,0x06,0x00,0x25,0x68,0xa2,0x01,
+0x25,0x60,0x83,0x01,0x25,0x38,0xe4,0x00,0x25,0x30,0xc5,0x00,0x00,0x46,0x08,0x00,
+0x00,0x4e,0x09,0x00,0x00,0x56,0x0a,0x00,0x00,0x5e,0x0b,0x00,0x25,0x40,0x0d,0x01,
+0x25,0x48,0x2c,0x01,0x25,0x50,0x47,0x01,0x25,0x58,0x66,0x01,0x10,0x00,0x18,0x27,
+0x00,0x00,0x28,0xaf,0x04,0x00,0x29,0xaf,0x08,0x00,0x2a,0xaf,0x0c,0x00,0x2b,0xaf,
+0xd2,0xff,0x12,0x17,0x10,0x00,0x39,0x27,0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,
+0x00,0x00,0x09,0x93,0x02,0x00,0x04,0x93,0x04,0x00,0x08,0x93,0x06,0x00,0x05,0x93,
+0x07,0x00,0x06,0x93,0x03,0x00,0x07,0x93,0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,
+0x25,0x10,0x49,0x00,0x25,0x18,0x68,0x00,0x00,0x24,0x04,0x00,0x00,0x2c,0x05,0x00,
+0x25,0x20,0x82,0x00,0x25,0x28,0xa3,0x00,0x00,0x3e,0x07,0x00,0x00,0x36,0x06,0x00,
+0x25,0x30,0xc5,0x00,0x25,0x38,0xe4,0x00,0x02,0x80,0x02,0x3c,0x04,0x00,0x26,0xaf,
+0x00,0x00,0x27,0xaf,0x38,0x15,0x46,0x24,0x21,0x50,0x00,0x00,0x80,0x20,0x0a,0x00,
+0x21,0x10,0x9d,0x00,0x00,0x00,0x45,0x8c,0x01,0x00,0x43,0x25,0xff,0x00,0x6a,0x30,
+0x21,0x20,0x86,0x00,0x25,0x00,0x42,0x2d,0xf8,0xff,0x40,0x14,0x18,0x00,0x85,0xac,
+0x02,0x80,0x02,0x3c,0x38,0x15,0x4b,0x24,0x21,0x50,0x00,0x00,0xc0,0x10,0x0a,0x00,
+0x21,0x48,0x5d,0x00,0x21,0x38,0x00,0x00,0x21,0x40,0x4b,0x00,0x21,0x10,0x27,0x01,
+0xa0,0x01,0x46,0x90,0x98,0x00,0x45,0x90,0x01,0x00,0xe4,0x24,0x21,0x18,0x07,0x01,
+0xff,0x00,0x87,0x30,0x08,0x00,0xe2,0x2c,0xb4,0x01,0x66,0xa0,0xf7,0xff,0x40,0x14,
+0xac,0x00,0x65,0xa0,0x01,0x00,0x42,0x25,0xff,0x00,0x4a,0x30,0x21,0x00,0x43,0x2d,
+0xef,0xff,0x60,0x14,0xc0,0x10,0x0a,0x00,0x25,0xb0,0x02,0x3c,0x0a,0x00,0x42,0x34,
+0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x20,0x00,0x63,0x30,0x4f,0x00,0x60,0x10,
+0x38,0x15,0x64,0x26,0x33,0x00,0x02,0x24,0xc1,0x02,0x62,0xa1,0x1c,0x00,0x03,0x24,
+0x0f,0x00,0x02,0x24,0xbc,0x02,0x63,0xa1,0xbd,0x02,0x62,0xa1,0x38,0x15,0x65,0x26,
+0x08,0x00,0xa4,0x8c,0xff,0x7f,0x09,0x3c,0xff,0xff,0x29,0x35,0xc0,0xff,0x02,0x24,
+0x24,0x20,0x89,0x00,0x24,0x20,0x82,0x00,0x0c,0x00,0x84,0x34,0xff,0xc0,0x02,0x24,
+0xc8,0x02,0xa0,0xa0,0x24,0x20,0x82,0x00,0xc0,0xff,0x02,0x3c,0xc8,0x02,0xa6,0x8c,
+0xff,0xff,0x42,0x34,0x00,0x18,0x84,0x34,0x24,0x20,0x82,0x00,0xff,0x0f,0x02,0x3c,
+0xff,0xff,0x42,0x34,0xbf,0xff,0x03,0x3c,0x24,0x30,0xc2,0x00,0xff,0xff,0x63,0x34,
+0x7f,0xff,0x02,0x3c,0x24,0x20,0x83,0x00,0xff,0xff,0x42,0x34,0x24,0x20,0x82,0x00,
+0x7f,0xff,0x03,0x24,0x40,0x40,0x84,0x34,0xff,0xff,0x02,0x3c,0x24,0x20,0x83,0x00,
+0xff,0x7f,0x42,0x34,0xc8,0x02,0xa6,0xac,0x24,0x20,0x82,0x00,0xc9,0x02,0xa0,0xa0,
+0x0c,0x00,0xa6,0x8c,0xff,0x9f,0x02,0x3c,0xc8,0x02,0xa7,0x8c,0xff,0xff,0x42,0x34,
+0xff,0xbf,0x03,0x3c,0x10,0x00,0xa8,0x8c,0xff,0xff,0x63,0x34,0x24,0x20,0x82,0x00,
+0xff,0xf0,0x02,0x3c,0x24,0x30,0xc3,0x00,0xff,0xff,0x42,0x34,0xff,0x3f,0x03,0x3c,
+0xff,0xff,0x63,0x34,0x24,0x38,0xe2,0x00,0xb4,0x02,0xb3,0x8f,0x1f,0x00,0x02,0x24,
+0xb0,0x02,0xb2,0x8f,0xac,0x02,0xb1,0x8f,0xa8,0x02,0xb0,0x8f,0x24,0x40,0x03,0x01,
+0xbe,0x02,0xa2,0xa0,0x01,0x00,0x03,0x24,0xff,0xff,0x02,0x24,0x24,0x30,0xc9,0x00,
+0xc0,0x02,0xa3,0xa0,0xc2,0x02,0xa2,0xa0,0xff,0x00,0x03,0x24,0x12,0x00,0x02,0x24,
+0xb8,0x02,0xbd,0x27,0xc8,0x02,0xa7,0xac,0x08,0x00,0xa4,0xac,0x10,0x00,0xa8,0xac,
+0x0c,0x00,0xa6,0xac,0xc4,0x02,0xa3,0xa4,0xc7,0x02,0xa2,0xa0,0xca,0x02,0xa0,0xa0,
+0xbf,0x02,0xa0,0xa0,0x08,0x00,0xe0,0x03,0xc6,0x02,0xa0,0xa0,0x33,0x00,0x02,0x24,
+0xc1,0x02,0x82,0xa0,0x0d,0x00,0x03,0x24,0x03,0x00,0x02,0x24,0xbc,0x02,0x83,0xa0,
+0x0d,0x59,0x00,0x08,0xbd,0x02,0x82,0xa0,0x02,0x80,0x19,0x3c,0x38,0x15,0x22,0x27,
+0xff,0xff,0x03,0x34,0xe0,0xff,0xbd,0x27,0x18,0x00,0xbf,0xaf,0x21,0xc0,0x40,0x00,
+0x00,0x24,0x43,0xac,0xea,0x02,0x40,0xa0,0xf4,0x23,0x43,0xac,0xfc,0x23,0x43,0xac,
+0x1f,0x00,0x0f,0x24,0xff,0xff,0xef,0x25,0x80,0x11,0x43,0xac,0x84,0x11,0x43,0xac,
+0xfc,0xff,0xe1,0x05,0x94,0x00,0x42,0x24,0x38,0x15,0x24,0x8f,0xd8,0x02,0x05,0x8f,
+0xf0,0xff,0x02,0x3c,0xe8,0x02,0x07,0x8f,0xfd,0xff,0x03,0x24,0xff,0xff,0x42,0x34,
+0x24,0x20,0x83,0x00,0x24,0x28,0xa2,0x00,0x20,0x00,0x0f,0x24,0xff,0xff,0x0e,0x24,
+0xff,0xef,0x02,0x3c,0x38,0x15,0x24,0xaf,0xff,0xff,0x42,0x34,0xd8,0x02,0x05,0xaf,
+0x02,0x00,0x0e,0xa3,0xdb,0x02,0x0f,0xa3,0xd8,0x02,0x00,0xa3,0xff,0xbf,0x03,0x3c,
+0x38,0x15,0x28,0x8f,0xd8,0x02,0x09,0x8f,0x24,0x38,0xe2,0x00,0xff,0xff,0x63,0x34,
+0x24,0x38,0xe3,0x00,0xff,0x7f,0x02,0x3c,0x0f,0xff,0x03,0x3c,0xfe,0xff,0x04,0x24,
+0xff,0xff,0x42,0x34,0xff,0xff,0x63,0x34,0x24,0x40,0x04,0x01,0x24,0x38,0xe2,0x00,
+0x24,0x48,0x23,0x01,0xff,0xdf,0x02,0x3c,0xcf,0xff,0x03,0x24,0x24,0x40,0x03,0x01,
+0xff,0xff,0x42,0x34,0x10,0x00,0x03,0x3c,0x24,0x38,0xe2,0x00,0x25,0x48,0x23,0x01,
+0x0a,0x00,0x02,0x24,0x00,0x02,0x03,0x24,0x38,0x15,0x28,0xaf,0x02,0x80,0x0a,0x3c,
+0xd6,0x02,0x02,0xa3,0xd0,0x02,0x03,0xa7,0x00,0x01,0x02,0x24,0x49,0x00,0x03,0x24,
+0xe8,0x02,0x07,0xaf,0xd8,0x02,0x09,0xaf,0x5c,0x88,0x4a,0x25,0x3e,0x00,0x0c,0x24,
+0x1c,0x00,0x0d,0x24,0x01,0x00,0x0b,0x24,0x11,0x00,0xa3,0xa3,0xce,0x02,0x02,0xa7,
+0xd0,0x07,0x03,0x24,0x44,0x00,0x02,0x24,0x00,0x80,0x06,0x3c,0x10,0x00,0xa2,0xa3,
+0x10,0x00,0xa5,0x27,0x47,0x00,0x02,0x24,0x21,0x20,0x40,0x01,0xac,0x7f,0xc6,0x24,
+0xd4,0x02,0x0c,0xa3,0xd5,0x02,0x0d,0xa3,0xcc,0x02,0x0f,0xa7,0x01,0x00,0x0b,0xa3,
+0x0c,0x00,0x43,0xad,0x14,0x00,0x4b,0xa1,0x06,0x00,0x0e,0xa7,0xd2,0x02,0x0c,0xa3,
+0xd3,0x02,0x0d,0xa3,0x12,0x00,0xa2,0xa3,0x48,0x1b,0x00,0x0c,0x13,0x00,0xa0,0xa3,
+0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0xe0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x50,0x00,0x03,0x24,0x10,0x00,0xa3,0xa3,
+0x12,0x22,0x40,0xa0,0x41,0x00,0x03,0x24,0x52,0x00,0x02,0x24,0x02,0x80,0x07,0x3c,
+0x04,0x89,0xe7,0x24,0x11,0x00,0xa2,0xa3,0x12,0x00,0xa3,0xa3,0xd0,0x07,0x02,0x24,
+0x01,0x00,0x03,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,
+0x38,0x48,0xc6,0x24,0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0,0x18,0x00,0xbf,0xaf,
+0x48,0x1b,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x02,0x80,0x09,0x3c,0x38,0x15,0x23,0x8d,
+0xff,0xff,0x02,0x24,0xff,0x00,0x4b,0x30,0xf3,0xff,0x02,0x24,0x24,0x18,0x62,0x00,
+0x3f,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0xd8,0xff,0xbd,0x27,0x38,0x15,0x23,0xad,
+0x47,0x00,0x02,0x24,0x3b,0x00,0x03,0x24,0x02,0x80,0x08,0x3c,0x20,0x89,0x08,0x25,
+0x18,0x00,0xb0,0xaf,0x10,0x00,0xa2,0xa3,0x38,0x15,0x30,0x25,0x11,0x00,0xa3,0xa3,
+0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24,0x01,0x00,0x07,0x3c,0x01,0x80,0x06,0x3c,
+0x08,0x03,0x0b,0xae,0x1c,0x00,0xb1,0xaf,0x56,0x30,0xea,0x34,0x43,0x00,0x11,0x24,
+0xf4,0x98,0xe7,0x34,0x10,0x00,0xa5,0x27,0x0c,0x00,0x02,0xad,0x14,0x00,0x03,0xa1,
+0x21,0x20,0x00,0x01,0xe4,0x8c,0xc6,0x24,0x20,0x00,0xbf,0xaf,0x12,0x00,0xb1,0xa3,
+0x10,0x03,0x07,0xae,0x14,0x03,0x0a,0xae,0x13,0x00,0xa0,0xa3,0x0c,0x03,0x00,0xae,
+0x18,0x03,0x00,0xae,0x48,0x1b,0x00,0x0c,0x1c,0x03,0x00,0xae,0x1e,0x00,0x02,0x24,
+0x25,0x03,0x02,0xa2,0x4a,0x00,0x03,0x24,0x45,0x00,0x02,0x24,0x20,0x03,0x03,0xa2,
+0x21,0x03,0x02,0xa2,0x23,0x00,0x03,0x24,0x3e,0x00,0x02,0x24,0x22,0x03,0x11,0xa2,
+0x23,0x03,0x02,0xa2,0x24,0x03,0x03,0xa2,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb1,0x8f,
+0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,
+0x3b,0x00,0x02,0x24,0x43,0x00,0x03,0x24,0x10,0x00,0xa2,0xa3,0x11,0x00,0xa3,0xa3,
+0x36,0x00,0x02,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x07,0x3c,0x3c,0x89,0xe7,0x24,
+0x12,0x00,0xa2,0xa3,0x0f,0x18,0x60,0xa0,0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24,
+0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,0x54,0x91,0xc6,0x24,
+0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0,0x18,0x00,0xbf,0xaf,0x48,0x1b,0x00,0x0c,
+0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x52,0x00,0x03,0x24,
+0x10,0x00,0xa3,0xa3,0x88,0x39,0x40,0xa4,0x54,0x00,0x03,0x24,0x53,0x00,0x02,0x24,
+0x02,0x80,0x07,0x3c,0x74,0x89,0xe7,0x24,0x11,0x00,0xa2,0xa3,0x12,0x00,0xa3,0xa3,
+0xf4,0x01,0x02,0x24,0x01,0x00,0x03,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,
+0x21,0x20,0xe0,0x00,0x7c,0x49,0xc6,0x24,0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0,
+0x18,0x00,0xbf,0xaf,0x48,0x1b,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x02,0x80,0x04,0x3c,
+0xd8,0xff,0xbd,0x27,0x40,0x39,0x84,0x24,0x21,0x28,0x00,0x00,0x20,0x00,0xbf,0xaf,
+0x58,0x45,0x00,0x0c,0x0a,0x00,0x06,0x24,0x02,0x80,0x07,0x3c,0x38,0x15,0xe7,0x24,
+0x04,0x24,0xe3,0x8c,0xfd,0xff,0x02,0x24,0x02,0x80,0x08,0x3c,0x24,0x18,0x62,0x00,
+0xfe,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0x05,0x00,0x02,0x24,0x04,0x24,0xe3,0xac,
+0x08,0x24,0xe2,0xa0,0x28,0x00,0x03,0x24,0x46,0x00,0x02,0x24,0x10,0x00,0xa2,0xa3,
+0x09,0x24,0xe3,0xa0,0x4b,0x00,0x02,0x24,0x42,0x00,0x03,0x24,0x90,0x89,0x08,0x25,
+0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3,0xd0,0x07,0x03,0x24,0x01,0x00,0x02,0x24,
+0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0x00,0x01,0x44,0x4a,0xc6,0x24,
+0x06,0x24,0xe0,0xa4,0x0c,0x00,0x03,0xad,0x14,0x00,0x02,0xa1,0x48,0x1b,0x00,0x0c,
+0x13,0x00,0xa0,0xa3,0x20,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x28,0x00,0xbd,0x27,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x00,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x01,0x5e,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x02,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x03,0x5e,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x04,0x5d,0x78,0x0c,0x00,0x00,0x01,0x00,0x05,0x5b,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x06,0x59,0x78,0x0c,0x00,0x00,0x01,0x00,0x07,0x57,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x08,0x55,0x78,0x0c,0x00,0x00,0x01,0x00,0x09,0x53,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x0a,0x51,0x78,0x0c,0x00,0x00,0x01,0x00,0x0b,0x4f,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x0c,0x4d,0x78,0x0c,0x00,0x00,0x01,0x00,0x0d,0x4b,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x0e,0x49,0x78,0x0c,0x00,0x00,0x01,0x00,0x0f,0x47,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x10,0x45,0x78,0x0c,0x00,0x00,0x01,0x00,0x11,0x43,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x12,0x41,0x78,0x0c,0x00,0x00,0x01,0x00,0x13,0x3f,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x14,0x3d,0x78,0x0c,0x00,0x00,0x01,0x00,0x15,0x3b,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x16,0x39,0x78,0x0c,0x00,0x00,0x01,0x00,0x17,0x37,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x18,0x35,0x78,0x0c,0x00,0x00,0x01,0x00,0x19,0x33,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x1a,0x31,0x78,0x0c,0x00,0x00,0x01,0x00,0x1b,0x2f,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x1c,0x2d,0x78,0x0c,0x00,0x00,0x01,0x00,0x1d,0x2b,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x1e,0x29,0x78,0x0c,0x00,0x00,0x01,0x00,0x1f,0x27,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x20,0x25,0x78,0x0c,0x00,0x00,0x01,0x00,0x21,0x23,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x22,0x21,0x78,0x0c,0x00,0x00,0x01,0x00,0x23,0x1f,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x24,0x1d,0x78,0x0c,0x00,0x00,0x01,0x00,0x25,0x1b,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x26,0x19,0x78,0x0c,0x00,0x00,0x01,0x00,0x27,0x17,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x28,0x15,0x78,0x0c,0x00,0x00,0x01,0x00,0x29,0x13,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x2a,0x11,0x78,0x0c,0x00,0x00,0x01,0x00,0x2b,0x0f,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x2c,0x0d,0x78,0x0c,0x00,0x00,0x01,0x00,0x2d,0x0b,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x2e,0x09,0x78,0x0c,0x00,0x00,0x01,0x00,0x2f,0x07,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x30,0x05,0x78,0x0c,0x00,0x00,0x01,0x00,0x31,0x03,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x32,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x33,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x34,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x35,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x36,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x37,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x38,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x39,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x3a,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3b,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x3c,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3d,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x3e,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3f,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x40,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x41,0x5e,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x42,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x43,0x5e,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x44,0x5d,0x78,0x0c,0x00,0x00,0x01,0x00,0x45,0x5b,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x46,0x59,0x78,0x0c,0x00,0x00,0x01,0x00,0x47,0x57,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x48,0x55,0x78,0x0c,0x00,0x00,0x01,0x00,0x49,0x53,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x4a,0x51,0x78,0x0c,0x00,0x00,0x01,0x00,0x4b,0x4f,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x4c,0x4d,0x78,0x0c,0x00,0x00,0x01,0x00,0x4d,0x4b,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x4e,0x49,0x78,0x0c,0x00,0x00,0x01,0x00,0x4f,0x47,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x50,0x45,0x78,0x0c,0x00,0x00,0x01,0x00,0x51,0x43,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x52,0x41,0x78,0x0c,0x00,0x00,0x01,0x00,0x53,0x3f,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x54,0x3d,0x78,0x0c,0x00,0x00,0x01,0x00,0x55,0x3b,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x56,0x39,0x78,0x0c,0x00,0x00,0x01,0x00,0x57,0x37,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x58,0x35,0x78,0x0c,0x00,0x00,0x01,0x00,0x59,0x33,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x5a,0x31,0x78,0x0c,0x00,0x00,0x01,0x00,0x5b,0x2f,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x5c,0x2d,0x78,0x0c,0x00,0x00,0x01,0x00,0x5d,0x2b,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x5e,0x29,0x78,0x0c,0x00,0x00,0x01,0x00,0x5f,0x27,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x60,0x25,0x78,0x0c,0x00,0x00,0x01,0x00,0x61,0x23,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x62,0x21,0x78,0x0c,0x00,0x00,0x01,0x00,0x63,0x1f,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x64,0x1d,0x78,0x0c,0x00,0x00,0x01,0x00,0x65,0x1b,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x66,0x19,0x78,0x0c,0x00,0x00,0x01,0x00,0x67,0x17,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x68,0x15,0x78,0x0c,0x00,0x00,0x01,0x00,0x69,0x13,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x6a,0x11,0x78,0x0c,0x00,0x00,0x01,0x00,0x6b,0x0f,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x6c,0x0d,0x78,0x0c,0x00,0x00,0x01,0x00,0x6d,0x0b,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x6e,0x09,0x78,0x0c,0x00,0x00,0x01,0x00,0x6f,0x07,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x70,0x05,0x78,0x0c,0x00,0x00,0x01,0x00,0x71,0x03,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x72,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x73,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x74,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x75,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x76,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x77,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x78,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x79,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x7a,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7b,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x7c,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7d,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x7e,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7f,0x01,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x00,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x01,0x30,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x02,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x03,0x30,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x04,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x05,0x30,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x06,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x07,0x30,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x08,0x3e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x09,0x40,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x0a,0x42,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0b,0x44,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x0c,0x46,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0d,0x48,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x0e,0x48,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0f,0x4a,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x10,0x4a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x11,0x4c,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x12,0x4c,0x78,0x0c,0x00,0x00,0x1e,0x00,0x13,0x4e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x14,0x50,0x78,0x0c,0x00,0x00,0x1e,0x00,0x15,0x50,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x16,0x50,0x78,0x0c,0x00,0x00,0x1e,0x00,0x17,0x52,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x18,0x52,0x78,0x0c,0x00,0x00,0x1e,0x00,0x19,0x52,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x1a,0x54,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1b,0x54,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x1c,0x54,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1d,0x56,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x1e,0x56,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1f,0x56,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x20,0x56,0x78,0x0c,0x00,0x00,0x1e,0x00,0x21,0x58,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x22,0x58,0x78,0x0c,0x00,0x00,0x1e,0x00,0x23,0x58,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x24,0x58,0x78,0x0c,0x00,0x00,0x1e,0x00,0x25,0x5a,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x26,0x5a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x27,0x5a,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x28,0x5c,0x78,0x0c,0x00,0x00,0x1e,0x00,0x29,0x5c,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x2a,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2b,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x2c,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2d,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x2e,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2f,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x30,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x31,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x32,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x33,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x34,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x35,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x36,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x37,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x38,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x39,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x3a,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3b,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x3c,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3d,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x3e,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3f,0x5e,0xff,0x00,0x00,0x00,
+0xff,0xff,0xff,0xff,0x00,0x08,0x00,0x00,0x00,0x00,0x04,0x03,0x04,0x08,0x00,0x00,
+0x03,0x00,0x00,0x00,0x08,0x08,0x00,0x00,0x00,0xfc,0x00,0x00,0x0c,0x08,0x00,0x00,
+0x0a,0x00,0x00,0x04,0x10,0x08,0x00,0x00,0xff,0x10,0x10,0x80,0x14,0x08,0x00,0x00,
+0x10,0x3d,0x0c,0x02,0x18,0x08,0x00,0x00,0xc5,0x03,0x00,0x00,0x1c,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x00,0x04,0x00,0x00,0x00,0x24,0x08,0x00,0x00,
+0x00,0x02,0x69,0x00,0x28,0x08,0x00,0x00,0x04,0x00,0x00,0x00,0x2c,0x08,0x00,0x00,
+0x00,0x02,0x69,0x00,0x30,0x08,0x00,0x00,0x04,0x00,0x00,0x00,0x34,0x08,0x00,0x00,
+0x00,0x02,0x69,0x00,0x38,0x08,0x00,0x00,0x04,0x00,0x00,0x00,0x3c,0x08,0x00,0x00,
+0x00,0x02,0x69,0x00,0x40,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x48,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x4c,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x50,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x54,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x58,0x08,0x00,0x00,0x65,0xa9,0x65,0xa9,0x5c,0x08,0x00,0x00,
+0x65,0xa9,0x65,0xa9,0x60,0x08,0x00,0x00,0x30,0x01,0x7f,0x0f,0x64,0x08,0x00,0x00,
+0x30,0x01,0x7f,0x0f,0x68,0x08,0x00,0x00,0x30,0x01,0x7f,0x0f,0x6c,0x08,0x00,0x00,
+0x30,0x01,0x7f,0x0f,0x70,0x08,0x00,0x00,0x00,0x03,0x00,0x03,0x74,0x08,0x00,0x00,
+0x00,0x03,0x00,0x03,0x78,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x7c,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x90,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x94,0x08,0x00,0x00,
+0xfe,0xff,0xff,0xff,0x98,0x08,0x00,0x00,0x10,0x20,0x30,0x40,0x9c,0x08,0x00,0x00,
+0x50,0x60,0x70,0x00,0xb0,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xe0,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0xe4,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,
+0x03,0x03,0x03,0x03,0x04,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x08,0x0e,0x00,0x00,
+0x03,0x03,0x00,0x00,0x0c,0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0x00,
+0x03,0x03,0x03,0x03,0x14,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x18,0x0e,0x00,0x00,
+0x03,0x03,0x03,0x03,0x1c,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x00,0x09,0x00,0x00,
+0x00,0x00,0x00,0x00,0x04,0x09,0x00,0x00,0x23,0x00,0x00,0x00,0x08,0x09,0x00,0x00,
+0x00,0x00,0x00,0x00,0x0c,0x09,0x00,0x00,0x33,0x13,0x32,0x03,0x08,0x0a,0x00,0x00,
+0x00,0x86,0x88,0x8f,0x2c,0x0a,0x00,0x00,0x00,0x00,0x92,0x00,0x00,0x0c,0x00,0x00,
+0x80,0x00,0x00,0x00,0x04,0x0c,0x00,0x00,0x33,0x54,0x00,0x00,0x08,0x0c,0x00,0x00,
+0xe4,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00,0x6c,0x6c,0x6c,0x6c,0x10,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x08,0x14,0x0c,0x00,0x00,0x00,0x01,0x00,0x40,0x18,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x08,0x1c,0x0c,0x00,0x00,0x00,0x01,0x00,0x40,0x20,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x08,0x24,0x0c,0x00,0x00,0x00,0x01,0x00,0x40,0x28,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x08,0x2c,0x0c,0x00,0x00,0x00,0x01,0x00,0x40,0x30,0x0c,0x00,0x00,
+0x44,0x6a,0xe9,0x8d,0x34,0x0c,0x00,0x00,0xcd,0x52,0x96,0x46,0x38,0x0c,0x00,0x00,
+0x90,0x5a,0x01,0x48,0x3c,0x0c,0x00,0x00,0x64,0x97,0x97,0x1a,0x40,0x0c,0x00,0x00,
+0x3f,0x42,0x7c,0x1f,0x44,0x0c,0x00,0x00,0xb7,0x00,0x01,0x00,0x48,0x0c,0x00,0x00,
+0x00,0x00,0x02,0xec,0x4c,0x0c,0x00,0x00,0x03,0x03,0xfc,0x00,0x50,0x0c,0x00,0x00,
+0x1c,0x34,0x54,0x69,0x54,0x0c,0x00,0x00,0x94,0x00,0x3c,0x43,0x58,0x0c,0x00,0x00,
+0x1c,0x34,0x54,0x69,0x5c,0x0c,0x00,0x00,0x94,0x00,0x3c,0x43,0x60,0x0c,0x00,0x00,
+0x1c,0x34,0x54,0x69,0x64,0x0c,0x00,0x00,0x94,0x00,0x3c,0x43,0x68,0x0c,0x00,0x00,
+0x1c,0x34,0x54,0x69,0x6c,0x0c,0x00,0x00,0x94,0x00,0x3c,0x43,0x70,0x0c,0x00,0x00,
+0x0d,0x00,0x5a,0x2c,0x74,0x0c,0x00,0x00,0x1b,0x15,0x86,0x01,0x78,0x0c,0x00,0x00,
+0x1f,0x00,0x00,0x00,0x7c,0x0c,0x00,0x00,0x12,0x16,0xb9,0x00,0x80,0x0c,0x00,0x00,
+0x80,0x00,0x00,0x20,0x84,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x0c,0x00,0x00,
+0x80,0x00,0x00,0x20,0x8c,0x0c,0x00,0x00,0x00,0x00,0x20,0x08,0x90,0x0c,0x00,0x00,
+0x00,0x01,0x00,0x40,0x94,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x98,0x0c,0x00,0x00,
+0x00,0x01,0x00,0x40,0x9c,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x0c,0x00,0x00,
+0x92,0x24,0x49,0x00,0xa4,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xa8,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xac,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xb0,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xb4,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xb8,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xbc,0x0c,0x00,0x00,0x92,0x24,0x49,0x00,0xc0,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xc4,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xc8,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xcc,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xd4,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xd8,0x0c,0x00,0x00,
+0x27,0x24,0xb2,0x64,0xdc,0x0c,0x00,0x00,0x32,0x69,0x76,0x00,0xe0,0x0c,0x00,0x00,
+0x22,0x22,0x22,0x00,0xe4,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xe8,0x0c,0x00,0x00,
+0x02,0x43,0x64,0x07,0x00,0x0d,0x00,0x00,0x80,0x07,0x00,0x00,0x04,0x0d,0x00,0x00,
+0x03,0x04,0x00,0x00,0x08,0x0d,0x00,0x00,0x7f,0x90,0x00,0x00,0x0c,0x0d,0x00,0x00,
+0x01,0x00,0x00,0x00,0x10,0x0d,0x00,0x00,0x99,0x99,0x69,0xa0,0x14,0x0d,0x00,0x00,
+0x67,0x3c,0x99,0x99,0x18,0x0d,0x00,0x00,0x6b,0x5b,0x8f,0x6a,0x1c,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x20,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x24,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x28,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x2c,0x0d,0x00,0x00,
+0x75,0x19,0x97,0xcc,0x30,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x34,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x38,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x3c,0x0d,0x00,0x00,
+0x93,0x72,0x02,0x00,0x40,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x44,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x48,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x0d,0x00,0x00,
+0x0a,0x14,0x37,0x64,0x54,0x0d,0x00,0x00,0x02,0xbd,0x4d,0x02,0x58,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x5c,0x0d,0x00,0x00,0x64,0x20,0x03,0x30,0x60,0x0d,0x00,0x00,
+0x68,0xde,0x53,0x46,0x64,0x0d,0x00,0x00,0x3c,0x8a,0x51,0x00,0x68,0x0d,0x00,0x00,
+0x06,0x01,0x00,0x00,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x74,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x34,0x01,0x00,0x00,0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x34,0x01,0x00,0x00,0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x30,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x13,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x17,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x06,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x06,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x08,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x0c,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x1f,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x01,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x38,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x02,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x01,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x01,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0xac,0x26,0x00,0x80,0x00,0xb7,0x00,0x00,
+0x01,0xe0,0x0e,0x00,0x02,0x4d,0x04,0x00,0x03,0x41,0x04,0x00,0x04,0xc3,0x08,0x00,
+0x05,0x72,0x0c,0x00,0x06,0xe6,0x00,0x00,0x07,0x2a,0x08,0x00,0x08,0x3f,0x00,0x00,
+0x09,0x35,0x03,0x00,0x0a,0xd4,0x09,0x00,0x0b,0xbb,0x07,0x00,0x0c,0x50,0x08,0x00,
+0x0d,0xdf,0x0c,0x00,0x0e,0x2b,0x00,0x00,0x0f,0x14,0x01,0x00,0x00,0xb7,0x01,0x00,
+0x01,0x01,0x00,0x00,0x02,0x00,0x04,0x00,0x01,0x02,0x00,0x00,0x02,0x01,0x04,0x00,
+0x01,0x03,0x00,0x00,0x02,0x02,0x04,0x00,0x01,0x04,0x00,0x00,0x02,0x03,0x04,0x00,
+0x01,0x05,0x00,0x00,0x02,0x04,0x04,0x00,0x01,0x06,0x00,0x00,0x02,0x05,0x04,0x00,
+0x01,0x07,0x00,0x00,0x02,0x08,0x04,0x00,0x01,0x08,0x00,0x00,0x02,0x09,0x04,0x00,
+0x01,0x09,0x00,0x00,0x02,0x0a,0x04,0x00,0x01,0x0a,0x00,0x00,0x02,0x0b,0x04,0x00,
+0x01,0x0b,0x00,0x00,0x02,0x02,0x05,0x00,0x01,0x0c,0x00,0x00,0x02,0x03,0x05,0x00,
+0x01,0x0d,0x00,0x00,0x02,0x04,0x05,0x00,0x01,0x0e,0x00,0x00,0x02,0x05,0x05,0x00,
+0x01,0x0f,0x00,0x00,0x02,0x40,0x05,0x00,0x01,0x10,0x00,0x00,0x02,0x41,0x05,0x00,
+0x01,0x11,0x00,0x00,0x02,0x42,0x05,0x00,0x01,0x12,0x00,0x00,0x02,0x43,0x05,0x00,
+0x01,0x13,0x00,0x00,0x02,0x44,0x05,0x00,0x01,0x14,0x00,0x00,0x02,0x45,0x05,0x00,
+0x01,0x15,0x00,0x00,0x02,0x80,0x05,0x00,0x01,0x16,0x00,0x00,0x02,0x81,0x05,0x00,
+0x01,0x17,0x00,0x00,0x02,0x82,0x05,0x00,0x01,0x18,0x00,0x00,0x02,0x83,0x05,0x00,
+0x01,0x19,0x00,0x00,0x02,0x84,0x05,0x00,0x01,0x1a,0x00,0x00,0x02,0x85,0x05,0x00,
+0x01,0x1b,0x00,0x00,0x02,0x88,0x05,0x00,0x01,0x1c,0x00,0x00,0x02,0x89,0x05,0x00,
+0x01,0x1d,0x00,0x00,0x02,0x8a,0x05,0x00,0x01,0x1e,0x00,0x00,0x02,0x8b,0x05,0x00,
+0x01,0x1f,0x00,0x00,0x02,0x43,0x06,0x00,0x01,0x20,0x00,0x00,0x02,0x44,0x06,0x00,
+0x01,0x21,0x00,0x00,0x02,0x45,0x06,0x00,0x01,0x22,0x00,0x00,0x02,0x80,0x06,0x00,
+0x01,0x23,0x00,0x00,0x02,0x81,0x06,0x00,0x01,0x24,0x00,0x00,0x02,0x82,0x06,0x00,
+0x01,0x25,0x00,0x00,0x02,0x83,0x06,0x00,0x01,0x26,0x00,0x00,0x02,0x84,0x06,0x00,
+0x01,0x27,0x00,0x00,0x02,0x85,0x06,0x00,0x01,0x28,0x00,0x00,0x02,0x88,0x06,0x00,
+0x01,0x29,0x00,0x00,0x02,0x89,0x06,0x00,0x01,0x2a,0x00,0x00,0x02,0x8a,0x06,0x00,
+0x01,0x2b,0x00,0x00,0x02,0x8b,0x06,0x00,0x01,0x2c,0x00,0x00,0x02,0x8c,0x06,0x00,
+0x01,0x2d,0x00,0x00,0x02,0x42,0x07,0x00,0x01,0x2e,0x00,0x00,0x02,0x43,0x07,0x00,
+0x01,0x2f,0x00,0x00,0x02,0x44,0x07,0x00,0x01,0x30,0x00,0x00,0x02,0x45,0x07,0x00,
+0x01,0x31,0x00,0x00,0x02,0x80,0x07,0x00,0x01,0x32,0x00,0x00,0x02,0x81,0x07,0x00,
+0x01,0x33,0x00,0x00,0x02,0x82,0x07,0x00,0x01,0x34,0x00,0x00,0x02,0x83,0x07,0x00,
+0x01,0x35,0x00,0x00,0x02,0x84,0x07,0x00,0x01,0x36,0x00,0x00,0x02,0x85,0x07,0x00,
+0x01,0x37,0x00,0x00,0x02,0x88,0x07,0x00,0x01,0x38,0x00,0x00,0x02,0x89,0x07,0x00,
+0x01,0x39,0x00,0x00,0x02,0x8a,0x07,0x00,0x01,0x3a,0x00,0x00,0x02,0x8b,0x07,0x00,
+0x01,0x3b,0x00,0x00,0x02,0x8c,0x07,0x00,0x01,0x3c,0x00,0x00,0x02,0x8d,0x07,0x00,
+0x01,0x3d,0x00,0x00,0x02,0x90,0x07,0x00,0x01,0x3e,0x00,0x00,0x02,0x91,0x07,0x00,
+0x01,0x3f,0x00,0x00,0x02,0x92,0x07,0x00,0x01,0x40,0x00,0x00,0x02,0x93,0x07,0x00,
+0x01,0x41,0x00,0x00,0x02,0x94,0x07,0x00,0x01,0x42,0x00,0x00,0x02,0x95,0x07,0x00,
+0x01,0x43,0x00,0x00,0x02,0x98,0x07,0x00,0x01,0x44,0x00,0x00,0x02,0x99,0x07,0x00,
+0x01,0x45,0x00,0x00,0x02,0x9a,0x07,0x00,0x01,0x46,0x00,0x00,0x02,0x9b,0x07,0x00,
+0x01,0x47,0x00,0x00,0x02,0x9c,0x07,0x00,0x01,0x48,0x00,0x00,0x02,0x9d,0x07,0x00,
+0x01,0x49,0x00,0x00,0x02,0xa0,0x07,0x00,0x01,0x4a,0x00,0x00,0x02,0xa1,0x07,0x00,
+0x01,0x4b,0x00,0x00,0x02,0xa2,0x07,0x00,0x01,0x4c,0x00,0x00,0x02,0xa3,0x07,0x00,
+0x01,0x4d,0x00,0x00,0x02,0xa4,0x07,0x00,0x01,0x4e,0x00,0x00,0x02,0xa5,0x07,0x00,
+0x01,0x4f,0x00,0x00,0x02,0xa8,0x07,0x00,0x01,0x50,0x00,0x00,0x02,0xa9,0x07,0x00,
+0x01,0x51,0x00,0x00,0x02,0xaa,0x03,0x00,0x01,0x52,0x00,0x00,0x02,0xab,0x03,0x00,
+0x01,0x53,0x00,0x00,0x02,0xac,0x03,0x00,0x01,0x54,0x00,0x00,0x02,0xad,0x03,0x00,
+0x01,0x55,0x00,0x00,0x02,0xb0,0x03,0x00,0x01,0x56,0x00,0x00,0x02,0xb1,0x03,0x00,
+0x01,0x57,0x00,0x00,0x02,0xb2,0x03,0x00,0x01,0x58,0x00,0x00,0x02,0xb3,0x03,0x00,
+0x01,0x59,0x00,0x00,0x02,0xb4,0x03,0x00,0x01,0x5a,0x00,0x00,0x02,0xb5,0x03,0x00,
+0x01,0x5b,0x00,0x00,0x02,0xb8,0x03,0x00,0x01,0x5c,0x00,0x00,0x02,0xb9,0x03,0x00,
+0x01,0x5d,0x00,0x00,0x02,0xba,0x03,0x00,0x01,0x5e,0x00,0x00,0x02,0xbb,0x03,0x00,
+0x01,0x5f,0x00,0x00,0x02,0xbb,0x03,0x00,0x03,0x80,0x00,0x00,0x05,0x04,0x00,0x00,
+0x00,0xb7,0x00,0x00,0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
+0x02,0x4d,0x0c,0x00,0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x02,0x4d,0x04,0x00,
+0x00,0xbf,0x02,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x00,0xb7,0x00,0x00,
+0x01,0xe0,0x0e,0x00,0x02,0x4d,0x04,0x00,0x03,0x41,0x04,0x00,0x04,0xc3,0x08,0x00,
+0x05,0x72,0x0c,0x00,0x06,0xe6,0x00,0x00,0x07,0x2a,0x08,0x00,0x08,0x3f,0x00,0x00,
+0x09,0x35,0x03,0x00,0x0a,0xd4,0x09,0x00,0x0b,0xbb,0x07,0x00,0x0c,0x50,0x08,0x00,
+0x0d,0xdf,0x0c,0x00,0x0e,0x2b,0x00,0x00,0x0f,0x14,0x01,0x00,0x00,0xb7,0x01,0x00,
+0x01,0x01,0x00,0x00,0x02,0x00,0x04,0x00,0x01,0x02,0x00,0x00,0x02,0x01,0x04,0x00,
+0x01,0x03,0x00,0x00,0x02,0x02,0x04,0x00,0x01,0x04,0x00,0x00,0x02,0x03,0x04,0x00,
+0x01,0x05,0x00,0x00,0x02,0x04,0x04,0x00,0x01,0x06,0x00,0x00,0x02,0x05,0x04,0x00,
+0x01,0x07,0x00,0x00,0x02,0x08,0x04,0x00,0x01,0x08,0x00,0x00,0x02,0x09,0x04,0x00,
+0x01,0x09,0x00,0x00,0x02,0x0a,0x04,0x00,0x01,0x0a,0x00,0x00,0x02,0x0b,0x04,0x00,
+0x01,0x0b,0x00,0x00,0x02,0x02,0x05,0x00,0x01,0x0c,0x00,0x00,0x02,0x03,0x05,0x00,
+0x01,0x0d,0x00,0x00,0x02,0x04,0x05,0x00,0x01,0x0e,0x00,0x00,0x02,0x05,0x05,0x00,
+0x01,0x0f,0x00,0x00,0x02,0x40,0x05,0x00,0x01,0x10,0x00,0x00,0x02,0x41,0x05,0x00,
+0x01,0x11,0x00,0x00,0x02,0x42,0x05,0x00,0x01,0x12,0x00,0x00,0x02,0x43,0x05,0x00,
+0x01,0x13,0x00,0x00,0x02,0x44,0x05,0x00,0x01,0x14,0x00,0x00,0x02,0x45,0x05,0x00,
+0x01,0x15,0x00,0x00,0x02,0x80,0x05,0x00,0x01,0x16,0x00,0x00,0x02,0x81,0x05,0x00,
+0x01,0x17,0x00,0x00,0x02,0x82,0x05,0x00,0x01,0x18,0x00,0x00,0x02,0x83,0x05,0x00,
+0x01,0x19,0x00,0x00,0x02,0x84,0x05,0x00,0x01,0x1a,0x00,0x00,0x02,0x85,0x05,0x00,
+0x01,0x1b,0x00,0x00,0x02,0x88,0x05,0x00,0x01,0x1c,0x00,0x00,0x02,0x89,0x05,0x00,
+0x01,0x1d,0x00,0x00,0x02,0x8a,0x05,0x00,0x01,0x1e,0x00,0x00,0x02,0x8b,0x05,0x00,
+0x01,0x1f,0x00,0x00,0x02,0x43,0x06,0x00,0x01,0x20,0x00,0x00,0x02,0x44,0x06,0x00,
+0x01,0x21,0x00,0x00,0x02,0x45,0x06,0x00,0x01,0x22,0x00,0x00,0x02,0x80,0x06,0x00,
+0x01,0x23,0x00,0x00,0x02,0x81,0x06,0x00,0x01,0x24,0x00,0x00,0x02,0x82,0x06,0x00,
+0x01,0x25,0x00,0x00,0x02,0x83,0x06,0x00,0x01,0x26,0x00,0x00,0x02,0x84,0x06,0x00,
+0x01,0x27,0x00,0x00,0x02,0x85,0x06,0x00,0x01,0x28,0x00,0x00,0x02,0x88,0x06,0x00,
+0x01,0x29,0x00,0x00,0x02,0x89,0x06,0x00,0x01,0x2a,0x00,0x00,0x02,0x8a,0x06,0x00,
+0x01,0x2b,0x00,0x00,0x02,0x8b,0x06,0x00,0x01,0x2c,0x00,0x00,0x02,0x8c,0x06,0x00,
+0x01,0x2d,0x00,0x00,0x02,0x42,0x07,0x00,0x01,0x2e,0x00,0x00,0x02,0x43,0x07,0x00,
+0x01,0x2f,0x00,0x00,0x02,0x44,0x07,0x00,0x01,0x30,0x00,0x00,0x02,0x45,0x07,0x00,
+0x01,0x31,0x00,0x00,0x02,0x80,0x07,0x00,0x01,0x32,0x00,0x00,0x02,0x81,0x07,0x00,
+0x01,0x33,0x00,0x00,0x02,0x82,0x07,0x00,0x01,0x34,0x00,0x00,0x02,0x83,0x07,0x00,
+0x01,0x35,0x00,0x00,0x02,0x84,0x07,0x00,0x01,0x36,0x00,0x00,0x02,0x85,0x07,0x00,
+0x01,0x37,0x00,0x00,0x02,0x88,0x07,0x00,0x01,0x38,0x00,0x00,0x02,0x89,0x07,0x00,
+0x01,0x39,0x00,0x00,0x02,0x8a,0x07,0x00,0x01,0x3a,0x00,0x00,0x02,0x8b,0x07,0x00,
+0x01,0x3b,0x00,0x00,0x02,0x8c,0x07,0x00,0x01,0x3c,0x00,0x00,0x02,0x8d,0x07,0x00,
+0x01,0x3d,0x00,0x00,0x02,0x90,0x07,0x00,0x01,0x3e,0x00,0x00,0x02,0x91,0x07,0x00,
+0x01,0x3f,0x00,0x00,0x02,0x92,0x07,0x00,0x01,0x40,0x00,0x00,0x02,0x93,0x07,0x00,
+0x01,0x41,0x00,0x00,0x02,0x94,0x07,0x00,0x01,0x42,0x00,0x00,0x02,0x95,0x07,0x00,
+0x01,0x43,0x00,0x00,0x02,0x98,0x07,0x00,0x01,0x44,0x00,0x00,0x02,0x99,0x07,0x00,
+0x01,0x45,0x00,0x00,0x02,0x9a,0x07,0x00,0x01,0x46,0x00,0x00,0x02,0x9b,0x07,0x00,
+0x01,0x47,0x00,0x00,0x02,0x9c,0x07,0x00,0x01,0x48,0x00,0x00,0x02,0x9d,0x07,0x00,
+0x01,0x49,0x00,0x00,0x02,0xa0,0x07,0x00,0x01,0x4a,0x00,0x00,0x02,0xa1,0x07,0x00,
+0x01,0x4b,0x00,0x00,0x02,0xa2,0x07,0x00,0x01,0x4c,0x00,0x00,0x02,0xa3,0x07,0x00,
+0x01,0x4d,0x00,0x00,0x02,0xa4,0x07,0x00,0x01,0x4e,0x00,0x00,0x02,0xa5,0x07,0x00,
+0x01,0x4f,0x00,0x00,0x02,0xa8,0x07,0x00,0x01,0x50,0x00,0x00,0x02,0xa9,0x07,0x00,
+0x01,0x51,0x00,0x00,0x02,0xaa,0x03,0x00,0x01,0x52,0x00,0x00,0x02,0xab,0x03,0x00,
+0x01,0x53,0x00,0x00,0x02,0xac,0x03,0x00,0x01,0x54,0x00,0x00,0x02,0xad,0x03,0x00,
+0x01,0x55,0x00,0x00,0x02,0xb0,0x03,0x00,0x01,0x56,0x00,0x00,0x02,0xb1,0x03,0x00,
+0x01,0x57,0x00,0x00,0x02,0xb2,0x03,0x00,0x01,0x58,0x00,0x00,0x02,0xb3,0x03,0x00,
+0x01,0x59,0x00,0x00,0x02,0xb4,0x03,0x00,0x01,0x5a,0x00,0x00,0x02,0xb5,0x03,0x00,
+0x01,0x5b,0x00,0x00,0x02,0xb8,0x03,0x00,0x01,0x5c,0x00,0x00,0x02,0xb9,0x03,0x00,
+0x01,0x5d,0x00,0x00,0x02,0xba,0x03,0x00,0x01,0x5e,0x00,0x00,0x02,0xbb,0x03,0x00,
+0x01,0x5f,0x00,0x00,0x02,0xbb,0x03,0x00,0x03,0x80,0x00,0x00,0x05,0x04,0x00,0x00,
+0x00,0xb7,0x00,0x00,0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,
+0x02,0x4d,0x0c,0x00,0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x02,0x4d,0x04,0x00,
+0x00,0xbf,0x02,0x00,0xff,0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x0a,0x00,0x00,0x00,
+0x4f,0x6e,0x41,0x73,0x73,0x6f,0x63,0x52,0x65,0x71,0x00,0x00,0x4f,0x6e,0x41,0x73,
+0x73,0x6f,0x63,0x52,0x73,0x70,0x00,0x00,0x4f,0x6e,0x52,0x65,0x41,0x73,0x73,0x6f,
+0x63,0x52,0x65,0x71,0x00,0x00,0x00,0x00,0x4f,0x6e,0x52,0x65,0x41,0x73,0x73,0x6f,
+0x63,0x52,0x73,0x70,0x00,0x00,0x00,0x00,0x4f,0x6e,0x50,0x72,0x6f,0x62,0x65,0x52,
+0x65,0x71,0x00,0x00,0x4f,0x6e,0x50,0x72,0x6f,0x62,0x65,0x52,0x73,0x70,0x00,0x00,
+0x44,0x6f,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x00,0x00,0x44,0x6f,0x52,0x65,
+0x73,0x65,0x72,0x76,0x65,0x64,0x00,0x00,0x4f,0x6e,0x42,0x65,0x61,0x63,0x6f,0x6e,
+0x00,0x00,0x00,0x00,0x4f,0x6e,0x41,0x54,0x49,0x4d,0x00,0x00,0x4f,0x6e,0x44,0x69,
+0x73,0x61,0x73,0x73,0x6f,0x63,0x00,0x00,0x4f,0x6e,0x41,0x75,0x74,0x68,0x00,0x00,
+0x4f,0x6e,0x44,0x65,0x41,0x75,0x74,0x68,0x00,0x00,0x00,0x00,0x4f,0x6e,0x41,0x63,
+0x74,0x69,0x6f,0x6e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x88,0x7c,0x01,0x80,
+0x2c,0x13,0x01,0x80,0x10,0x00,0x00,0x00,0x94,0x7c,0x01,0x80,0x34,0x13,0x01,0x80,
+0x20,0x00,0x00,0x00,0xa0,0x7c,0x01,0x80,0x2c,0x13,0x01,0x80,0x30,0x00,0x00,0x00,
+0xb0,0x7c,0x01,0x80,0x34,0x13,0x01,0x80,0x40,0x00,0x00,0x00,0xc0,0x7c,0x01,0x80,
+0x3c,0x13,0x01,0x80,0x50,0x00,0x00,0x00,0xcc,0x7c,0x01,0x80,0x44,0x13,0x01,0x80,
+0x00,0x00,0x00,0x00,0xd8,0x7c,0x01,0x80,0xac,0x13,0x01,0x80,0x00,0x00,0x00,0x00,
+0xe4,0x7c,0x01,0x80,0xac,0x13,0x01,0x80,0x80,0x00,0x00,0x00,0xf0,0x7c,0x01,0x80,
+0x4c,0x13,0x01,0x80,0x90,0x00,0x00,0x00,0xfc,0x7c,0x01,0x80,0x54,0x13,0x01,0x80,
+0xa0,0x00,0x00,0x00,0x04,0x7d,0x01,0x80,0x5c,0x13,0x01,0x80,0xb0,0x00,0x00,0x00,
+0x10,0x7d,0x01,0x80,0x94,0x13,0x01,0x80,0xc0,0x00,0x00,0x00,0x18,0x7d,0x01,0x80,
+0x9c,0x13,0x01,0x80,0xd0,0x00,0x00,0x00,0x24,0x7d,0x01,0x80,0xa4,0x13,0x01,0x80,
+0x00,0x00,0x00,0x00,0xdc,0x7d,0x01,0x80,0xdc,0x7d,0x01,0x80,0x31,0x10,0x10,0x00,
+0x00,0x30,0x00,0x00,0x31,0x20,0x10,0x00,0x00,0x30,0x00,0x00,0x31,0x28,0x10,0x00,
+0x00,0x30,0x00,0x00,0x31,0x2c,0x10,0x10,0x00,0x30,0x00,0x00,0x31,0x2f,0x10,0x10,
+0x00,0x30,0x00,0x00,0x31,0x30,0x18,0x00,0x00,0x30,0x00,0x00,0x31,0x30,0x20,0x10,
+0x00,0x30,0x00,0x00,0x22,0x20,0x18,0x08,0x00,0x20,0x00,0x00,0x22,0x21,0x14,0x08,
+0x00,0x20,0x00,0x00,0x22,0x21,0x1c,0x08,0x00,0x20,0x00,0x00,0x22,0x21,0x20,0x08,
+0x00,0x20,0x00,0x00,0x22,0x21,0x20,0x10,0x00,0x20,0x00,0x00,0x22,0x21,0x20,0x18,
+0x00,0x20,0x00,0x00,0x1a,0x19,0x18,0x10,0x00,0x18,0x00,0x00,0x12,0x11,0x10,0x08,
+0x00,0x10,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x08,0x00,0x00,0x0a,0x09,0x08,0x02,
+0x00,0x08,0x00,0x00,0x0a,0x09,0x08,0x04,0x00,0x08,0x00,0x00,0x0a,0x09,0x08,0x06,
+0x00,0x08,0x00,0x00,0x08,0x07,0x06,0x04,0x00,0x06,0x00,0x00,0x06,0x05,0x04,0x02,
+0x00,0x04,0x00,0x00,0x06,0x05,0x04,0x03,0x00,0x04,0x00,0x00,0x05,0x04,0x03,0x02,
+0x00,0x03,0x00,0x00,0x09,0x08,0x07,0x06,0x07,0x06,0x06,0x05,0x05,0x04,0x04,0x03,
+0x06,0x05,0x05,0x04,0x04,0x03,0x03,0x03,0x05,0x04,0x04,0x03,0x03,0x02,0x02,0x02,
+0x00,0x09,0x08,0x07,0x06,0x07,0x06,0x06,0x05,0x05,0x04,0x04,0x03,0x05,0x04,0x04,
+0x03,0x03,0x02,0x02,0x02,0x04,0x03,0x03,0x02,0x02,0x01,0x01,0x01,0x00,0x00,0x00,
+0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x08,0x08,0x08,0x08,
+0x20,0x20,0x20,0x20,0x08,0x08,0x08,0x08,0x08,0x20,0x20,0x20,0x30,0x08,0x08,0x08,
+0x08,0x18,0x18,0x18,0x18,0x18,0x20,0x30,0x30,0x10,0x20,0x20,0x20,0x20,0x20,0x30,
+0x30,0x08,0x10,0x20,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x08,0x08,0x08,0x08,
+0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x08,0x08,0x08,0x08,0x08,0x20,0x20,0x20,
+0x08,0x08,0x08,0x08,0x08,0x20,0x20,0x20,0x20,0x08,0x08,0x08,0x08,0x18,0x18,0x18,
+0x18,0x18,0x20,0x30,0x30,0x10,0x20,0x20,0x20,0x20,0x20,0x30,0x30,0x08,0x10,0x20,
+0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,
+0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x00,
+0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,
+0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x12,0x11,0x10,0x08,0x00,0x22,
+0x21,0x20,0x18,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,
+0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,
+0x18,0x00,0x22,0x21,0x1c,0x08,0x00,0x22,0x20,0x18,0x08,0x00,0x0a,0x09,0x08,0x02,
+0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,
+0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20,0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x22,
+0x21,0x1c,0x08,0x00,0x31,0x30,0x18,0x00,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,
+0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x1a,0x19,0x18,
+0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,
+0x00,0x1a,0x19,0x18,0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x31,0x2c,0x10,0x10,0x00,
+0x31,0x28,0x10,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x22,
+0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x08,0x00,0x22,0x21,0x14,0x08,0x00,0x22,0x20,
+0x18,0x08,0x00,0x31,0x30,0x20,0x10,0x00,0x31,0x2c,0x10,0x10,0x00,0x0a,0x09,0x08,
+0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,
+0x00,0x31,0x30,0x20,0x10,0x00,0x31,0x2f,0x10,0x10,0x00,0x31,0x2f,0x10,0x10,0x00,
+0x31,0x10,0x10,0x00,0x00,0x31,0x2c,0x10,0x10,0x00,0x00,0x00,0x0a,0x09,0x08,0x04,
+0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,
+0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,
+0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x12,0x11,
+0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,
+0x04,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,
+0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x1c,0x08,0x00,0x22,0x21,0x14,0x08,0x00,
+0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,
+0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20,0x10,0x00,0x22,0x21,
+0x20,0x08,0x00,0x22,0x21,0x14,0x08,0x00,0x22,0x21,0x14,0x08,0x00,0x0a,0x09,0x08,
+0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,
+0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,
+0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x31,
+0x2c,0x10,0x10,0x00,0x31,0x28,0x10,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,
+0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x08,0x00,0x22,0x21,0x14,
+0x08,0x00,0x22,0x20,0x18,0x08,0x00,0x31,0x30,0x20,0x10,0x00,0x31,0x2c,0x10,0x10,
+0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,
+0x22,0x21,0x20,0x18,0x00,0x31,0x30,0x20,0x10,0x00,0x31,0x2f,0x10,0x10,0x00,0x31,
+0x2f,0x10,0x10,0x00,0x31,0x10,0x10,0x00,0x00,0x31,0x2c,0x10,0x10,0x00,0x00,0x00,
+0x01,0x02,0x04,0x08,0x02,0x04,0x08,0x0c,0x10,0x18,0x20,0x30,0x02,0x04,0x08,0x0c,
+0x10,0x18,0x20,0x30,0x06,0x0c,0x10,0x18,0x24,0x30,0x3c,0x48,0x48,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x27,0x2c,0x19,0x1b,0x1e,0x20,
+0x23,0x29,0x2a,0x2b,0x00,0x00,0x00,0x00,0x25,0x29,0x2b,0x2e,0x2e,0x00,0x00,0x00,
+0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
+0x18,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
+0x60,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,
+0x50,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
+0x40,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0x30,0x02,0x00,0x00,
+0x2c,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,0xd0,0x02,0x00,0x00,
+0x80,0x0c,0x00,0x00,0x80,0x0c,0x00,0x00,0x80,0x0c,0x00,0x00,0xa0,0x0f,0x00,0x00,
+0xa0,0x0f,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+0x08,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x18,0x00,0x00,0x00,
+0x24,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x60,0x00,0x00,0x00,
+0x6c,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x50,0x00,0x00,0x00,
+0x64,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
+0x18,0x01,0x00,0x00,0x64,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,
+0x68,0x01,0x00,0x00,0x40,0x06,0x00,0x00,0x40,0x06,0x00,0x00,0x40,0x06,0x00,0x00,
+0xd0,0x07,0x00,0x00,0xd0,0x07,0x00,0x00,0x2c,0x05,0x00,0x80,0x20,0x05,0x00,0x80,
+0x14,0x05,0x00,0x80,0x08,0x05,0x00,0x80,0xfc,0x04,0x00,0x80,0xf0,0x04,0x00,0x80,
+0xe4,0x04,0x00,0x80,0xd8,0x04,0x00,0x80,0xcc,0x04,0x00,0x80,0xc0,0x04,0x00,0x80,
+0x78,0x04,0x00,0x80,0xf8,0x60,0x00,0x80,0xc4,0x60,0x00,0x80,0x58,0x62,0x00,0x80,
+0x28,0x62,0x00,0x80,0xf8,0x61,0x00,0x80,0xc8,0x61,0x00,0x80,0x2c,0x61,0x00,0x80,
+0xf0,0x70,0x00,0x80,0xfc,0x70,0x00,0x80,0x08,0x71,0x00,0x80,0x14,0x71,0x00,0x80,
+0xf0,0x70,0x00,0x80,0xf0,0x70,0x00,0x80,0xf0,0x70,0x00,0x80,0xf0,0x70,0x00,0x80,
+0x20,0x71,0x00,0x80,0x2c,0x71,0x00,0x80,0x38,0x71,0x00,0x80,0x44,0x71,0x00,0x80,
+0x38,0x15,0x02,0x80,0x38,0x15,0x02,0x80,0x84,0x0e,0x25,0xb0,0x88,0x0e,0x25,0xb0,
+0x8c,0x0e,0x25,0xb0,0xd0,0x0e,0x25,0xb0,0xd8,0x0e,0x25,0xb0,0x20,0x08,0x25,0xb0,
+0xfe,0x01,0x80,0x7f,0xe2,0x01,0x80,0x78,0xc7,0x01,0xc0,0x71,0xae,0x01,0x80,0x6b,
+0x95,0x01,0x40,0x65,0x7f,0x01,0xc0,0x5f,0x69,0x01,0x40,0x5a,0x55,0x01,0x40,0x55,
+0x42,0x01,0x80,0x50,0x30,0x01,0x00,0x4c,0x1f,0x01,0xc0,0x47,0x0f,0x01,0xc0,0x43,
+0x00,0x01,0x00,0x40,0xf2,0x00,0x80,0x3c,0xe4,0x00,0x00,0x39,0xd7,0x00,0xc0,0x35,
+0xcb,0x00,0xc0,0x32,0xc0,0x00,0x00,0x30,0xb5,0x00,0x40,0x2d,0xab,0x00,0xc0,0x2a,
+0xa2,0x00,0x80,0x28,0x98,0x00,0x00,0x26,0x90,0x00,0x00,0x24,0x88,0x00,0x00,0x22,
+0x80,0x00,0x00,0x20,0x79,0x00,0x40,0x1e,0x72,0x00,0x80,0x1c,0x6c,0x00,0x00,0x1b,
+0x66,0x00,0x80,0x19,0x60,0x00,0x00,0x18,0x5b,0x00,0xc0,0x16,0x56,0x00,0x80,0x15,
+0x51,0x00,0x40,0x14,0x4c,0x00,0x00,0x13,0x48,0x00,0x00,0x12,0x44,0x00,0x00,0x11,
+0x40,0x00,0x00,0x10,0x36,0x35,0x2e,0x25,0x1c,0x12,0x09,0x04,0x33,0x32,0x2b,0x23,
+0x1a,0x11,0x08,0x04,0x30,0x2f,0x29,0x21,0x19,0x10,0x08,0x03,0x2d,0x2d,0x27,0x1f,
+0x18,0x0f,0x08,0x03,0x2b,0x2a,0x25,0x1e,0x16,0x0e,0x07,0x03,0x28,0x28,0x22,0x1c,
+0x15,0x0d,0x07,0x03,0x26,0x25,0x21,0x1b,0x14,0x0d,0x06,0x03,0x24,0x23,0x1f,0x19,
+0x13,0x0c,0x06,0x03,0x22,0x21,0x1d,0x18,0x11,0x0b,0x06,0x02,0x20,0x20,0x1b,0x16,
+0x11,0x08,0x05,0x02,0x1f,0x1e,0x1a,0x15,0x10,0x0a,0x05,0x02,0x1d,0x1c,0x18,0x14,
+0x0f,0x0a,0x05,0x02,0x1b,0x1a,0x17,0x13,0x0e,0x09,0x04,0x02,0x1a,0x19,0x16,0x12,
+0x0d,0x09,0x04,0x02,0x18,0x17,0x15,0x11,0x0c,0x08,0x04,0x02,0x17,0x16,0x13,0x10,
+0x0c,0x08,0x04,0x02,0x16,0x15,0x12,0x0f,0x0b,0x07,0x04,0x01,0x14,0x14,0x11,0x0e,
+0x0b,0x07,0x03,0x02,0x13,0x13,0x10,0x0d,0x0a,0x06,0x03,0x01,0x12,0x12,0x0f,0x0c,
+0x09,0x06,0x03,0x01,0x11,0x11,0x0f,0x0c,0x09,0x06,0x03,0x01,0x10,0x10,0x0e,0x0b,
+0x08,0x05,0x03,0x01,0x0f,0x0f,0x0d,0x0b,0x08,0x05,0x03,0x01,0x0e,0x0e,0x0c,0x0a,
+0x08,0x05,0x02,0x01,0x0d,0x0d,0x0c,0x0a,0x07,0x05,0x02,0x01,0x0d,0x0c,0x0b,0x09,
+0x07,0x04,0x02,0x01,0x0c,0x0c,0x0a,0x09,0x06,0x04,0x02,0x01,0x0b,0x0b,0x0a,0x08,
+0x06,0x04,0x02,0x01,0x0b,0x0a,0x09,0x08,0x06,0x04,0x02,0x01,0x0a,0x0a,0x09,0x07,
+0x05,0x03,0x02,0x01,0x0a,0x09,0x08,0x07,0x05,0x03,0x02,0x01,0x09,0x09,0x08,0x06,
+0x05,0x03,0x01,0x01,0x09,0x08,0x07,0x06,0x04,0x03,0x01,0x01,0x36,0x35,0x2e,0x1b,
+0x00,0x00,0x00,0x00,0x33,0x32,0x2b,0x19,0x00,0x00,0x00,0x00,0x30,0x2f,0x29,0x18,
+0x00,0x00,0x00,0x00,0x2d,0x2d,0x17,0x17,0x00,0x00,0x00,0x00,0x2b,0x2a,0x25,0x15,
+0x00,0x00,0x00,0x00,0x28,0x28,0x24,0x14,0x00,0x00,0x00,0x00,0x26,0x25,0x21,0x13,
+0x00,0x00,0x00,0x00,0x24,0x23,0x1f,0x12,0x00,0x00,0x00,0x00,0x22,0x21,0x1d,0x11,
+0x00,0x00,0x00,0x00,0x20,0x20,0x1b,0x10,0x00,0x00,0x00,0x00,0x1f,0x1e,0x1a,0x0f,
+0x00,0x00,0x00,0x00,0x1d,0x1c,0x18,0x0e,0x00,0x00,0x00,0x00,0x1b,0x1a,0x17,0x0e,
+0x00,0x00,0x00,0x00,0x1a,0x19,0x16,0x0d,0x00,0x00,0x00,0x00,0x18,0x17,0x15,0x0c,
+0x00,0x00,0x00,0x00,0x17,0x16,0x13,0x0b,0x00,0x00,0x00,0x00,0x16,0x15,0x12,0x0b,
+0x00,0x00,0x00,0x00,0x14,0x14,0x11,0x0a,0x00,0x00,0x00,0x00,0x13,0x13,0x10,0x0a,
+0x00,0x00,0x00,0x00,0x12,0x12,0x0f,0x09,0x00,0x00,0x00,0x00,0x11,0x11,0x0f,0x09,
+0x00,0x00,0x00,0x00,0x10,0x10,0x0e,0x08,0x00,0x00,0x00,0x00,0x0f,0x0f,0x0d,0x08,
+0x00,0x00,0x00,0x00,0x0e,0x0e,0x0c,0x07,0x00,0x00,0x00,0x00,0x0d,0x0d,0x0c,0x07,
+0x00,0x00,0x00,0x00,0x0d,0x0c,0x0b,0x06,0x00,0x00,0x00,0x00,0x0c,0x0c,0x0a,0x06,
+0x00,0x00,0x00,0x00,0x0b,0x0b,0x0a,0x06,0x00,0x00,0x00,0x00,0x0b,0x0a,0x09,0x05,
+0x00,0x00,0x00,0x00,0x0a,0x0a,0x09,0x05,0x00,0x00,0x00,0x00,0x0a,0x09,0x08,0x05,
+0x00,0x00,0x00,0x00,0x09,0x09,0x08,0x05,0x00,0x00,0x00,0x00,0x09,0x08,0x07,0x04,
+0x00,0x00,0x00,0x00,0x06,0x00,0x2a,0xb0,0x05,0x00,0x2a,0xb0,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x28,0x28,0x28,0x28,0x28,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xa0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+0x04,0x04,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x41,0x41,0x41,0x41,0x41,0x41,0x01,
+0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x42,0x42,0x42,0x42,0x42,0x42,0x02,
+0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,
+0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,
+0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x7f,0x8d,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x6b,0x34,0xf0,0x00,0x6b,0x34,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x6b,0x25,0x60,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x02,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x05,0x10,0xb8,0xff,0xff,0xff,0xff,
+};
+
+u8 Rtl8192SEFwMainArray[MainArrayLength] = {
+0x0, };
+
+u8 Rtl8192SEFwDataArray[DataArrayLength] = {
+0x0, };
+
+u32 Rtl8192SEPHY_REG_2T2RArray[PHY_REG_2T2RArrayLength] = {
+0x01c,0x07000000,
+0x800,0x00040000,
+0x804,0x00008003,
+0x808,0x0000fc00,
+0x80c,0x0000000a,
+0x810,0x10005088,
+0x814,0x020c3d10,
+0x818,0x00200185,
+0x81c,0x00000000,
+0x820,0x01000000,
+0x824,0x00390004,
+0x828,0x01000000,
+0x82c,0x00390004,
+0x830,0x00000004,
+0x834,0x00690200,
+0x838,0x00000004,
+0x83c,0x00690200,
+0x840,0x00010000,
+0x844,0x00010000,
+0x848,0x00000000,
+0x84c,0x00000000,
+0x850,0x00000000,
+0x854,0x00000000,
+0x858,0x48484848,
+0x85c,0x65a965a9,
+0x860,0x0f7f0130,
+0x864,0x0f7f0130,
+0x868,0x0f7f0130,
+0x86c,0x0f7f0130,
+0x870,0x03000700,
+0x874,0x03000300,
+0x878,0x00020002,
+0x87c,0x004f0201,
+0x880,0xa8300ac1,
+0x884,0x00000058,
+0x888,0x00000008,
+0x88c,0x00000004,
+0x890,0x00000000,
+0x894,0xfffffffe,
+0x898,0x40302010,
+0x89c,0x00706050,
+0x8b0,0x00000000,
+0x8e0,0x00000000,
+0x8e4,0x00000000,
+0xe00,0x30333333,
+0xe04,0x2a2d2e2f,
+0xe08,0x00003232,
+0xe10,0x30333333,
+0xe14,0x2a2d2e2f,
+0xe18,0x30333333,
+0xe1c,0x2a2d2e2f,
+0xe30,0x01007c00,
+0xe34,0x01004800,
+0xe38,0x1000dc1f,
+0xe3c,0x10008c1f,
+0xe40,0x021400a0,
+0xe44,0x281600a0,
+0xe48,0xf8000001,
+0xe4c,0x00002910,
+0xe50,0x01007c00,
+0xe54,0x01004800,
+0xe58,0x1000dc1f,
+0xe5c,0x10008c1f,
+0xe60,0x021400a0,
+0xe64,0x281600a0,
+0xe6c,0x00002910,
+0xe70,0x31ed92fb,
+0xe74,0x361536fb,
+0xe78,0x361536fb,
+0xe7c,0x361536fb,
+0xe80,0x361536fb,
+0xe84,0x000d92fb,
+0xe88,0x000d92fb,
+0xe8c,0x31ed92fb,
+0xed0,0x31ed92fb,
+0xed4,0x31ed92fb,
+0xed8,0x000d92fb,
+0xedc,0x000d92fb,
+0xee0,0x000d92fb,
+0xee4,0x015e5448,
+0xee8,0x21555448,
+0x900,0x00000000,
+0x904,0x00000023,
+0x908,0x00000000,
+0x90c,0x01121313,
+0xa00,0x00d047c8,
+0xa04,0x80ff0008,
+0xa08,0x8ccd8300,
+0xa0c,0x2e62120f,
+0xa10,0x9500bb78,
+0xa14,0x11144028,
+0xa18,0x00881117,
+0xa1c,0x89140f00,
+0xa20,0x1a1b0000,
+0xa24,0x090e1317,
+0xa28,0x00000204,
+0xa2c,0x10d30000,
+0xc00,0x40071d40,
+0xc04,0x00a05633,
+0xc08,0x000000e4,
+0xc0c,0x6c6c6c6c,
+0xc10,0x08800000,
+0xc14,0x40000100,
+0xc18,0x08000000,
+0xc1c,0x40000100,
+0xc20,0x08000000,
+0xc24,0x40000100,
+0xc28,0x08000000,
+0xc2c,0x40000100,
+0xc30,0x6de9ac44,
+0xc34,0x469652cf,
+0xc38,0x49795994,
+0xc3c,0x0a979764,
+0xc40,0x1f7c403f,
+0xc44,0x000100b7,
+0xc48,0xec020000,
+0xc4c,0x007f037f,
+0xc50,0x69543420,
+0xc54,0x433c0094,
+0xc58,0x69543420,
+0xc5c,0x433c0094,
+0xc60,0x69543420,
+0xc64,0x433c0094,
+0xc68,0x69543420,
+0xc6c,0x433c0094,
+0xc70,0x2c7f000d,
+0xc74,0x0186175b,
+0xc78,0x0000001f,
+0xc7c,0x00b91612,
+0xc80,0x40000100,
+0xc84,0x20f60000,
+0xc88,0x20000080,
+0xc8c,0x20200000,
+0xc90,0x40000100,
+0xc94,0x00000000,
+0xc98,0x40000100,
+0xc9c,0x00000000,
+0xca0,0x00492492,
+0xca4,0x00000000,
+0xca8,0x00000000,
+0xcac,0x00000000,
+0xcb0,0x00000000,
+0xcb4,0x00000000,
+0xcb8,0x00000000,
+0xcbc,0x28000000,
+0xcc0,0x00000000,
+0xcc4,0x00000000,
+0xcc8,0x00000000,
+0xccc,0x00000000,
+0xcd0,0x00000000,
+0xcd4,0x00000000,
+0xcd8,0x64b22427,
+0xcdc,0x00766932,
+0xce0,0x00222222,
+0xce4,0x00000000,
+0xce8,0x37644302,
+0xcec,0x2f97d40c,
+0xd00,0x00000750,
+0xd04,0x00000403,
+0xd08,0x0000907f,
+0xd0c,0x00000001,
+0xd10,0xa0633333,
+0xd14,0x33333c63,
+0xd18,0x6a8f5b6b,
+0xd1c,0x00000000,
+0xd20,0x00000000,
+0xd24,0x00000000,
+0xd28,0x00000000,
+0xd2c,0xcc979975,
+0xd30,0x00000000,
+0xd34,0x00000000,
+0xd38,0x00000000,
+0xd3c,0x00027293,
+0xd40,0x00000000,
+0xd44,0x00000000,
+0xd48,0x00000000,
+0xd50,0x6437140a,
+0xd54,0x024dbd02,
+0xd58,0x00000000,
+0xd5c,0x30032064,
+0xd60,0x4653de68,
+0xd64,0x00518a3c,
+0xd68,0x00002101,
+0xf14,0x00000003,
+0xf4c,0x00000000,
+0xf00,0x00000300,
+};
+
+u32 Rtl8192SEPHY_REG_1T2RArray[PHY_REG_1T2RArrayLength] = {
+0x0, };
+
+u32 Rtl8192SEPHY_ChangeTo_1T1RArray[PHY_ChangeTo_1T1RArrayLength] = {
+0x844,0xffffffff,0x00010000,
+0x804,0x0000000f,0x00000001,
+0x824,0x00f0000f,0x00300004,
+0x82c,0x00f0000f,0x00100002,
+0x870,0x04000000,0x00000001,
+0x864,0x00000400,0x00000000,
+0x878,0x000f000f,0x00000002,
+0xe74,0x0f000000,0x00000002,
+0xe78,0x0f000000,0x00000002,
+0xe7c,0x0f000000,0x00000002,
+0xe80,0x0f000000,0x00000002,
+0x90c,0x000000ff,0x00000011,
+0xc04,0x000000ff,0x00000011,
+0xd04,0x0000000f,0x00000001,
+0x1f4,0xffff0000,0x00007777,
+0x234,0xf8000000,0x0000000a,
+};
+
+u32 Rtl8192SEPHY_ChangeTo_1T2RArray[PHY_ChangeTo_1T2RArrayLength] = {
+0x804,0x0000000f,0x00000003,
+0x824,0x00f0000f,0x00300004,
+0x82c,0x00f0000f,0x00300002,
+0x870,0x04000000,0x00000001,
+0x864,0x00000400,0x00000000,
+0x878,0x000f000f,0x00000002,
+0xe74,0x0f000000,0x00000002,
+0xe78,0x0f000000,0x00000002,
+0xe7c,0x0f000000,0x00000002,
+0xe80,0x0f000000,0x00000002,
+0x90c,0x000000ff,0x00000011,
+0xc04,0x000000ff,0x00000033,
+0xd04,0x0000000f,0x00000003,
+0x1f4,0xffff0000,0x00007777,
+0x234,0xf8000000,0x0000000a,
+};
+
+u32 Rtl8192SEPHY_ChangeTo_2T2RArray[PHY_ChangeTo_2T2RArrayLength] = {
+0x804,0x0000000f,0x00000003,
+0x824,0x00f0000f,0x00300004,
+0x82c,0x00f0000f,0x00300004,
+0x870,0x04000000,0x00000001,
+0x864,0x00000400,0x00000001,
+0x878,0x000f000f,0x00020002,
+0xe74,0x0f000000,0x00000006,
+0xe78,0x0f000000,0x00000006,
+0xe7c,0x0f000000,0x00000006,
+0xe80,0x0f000000,0x00000006,
+0x90c,0x000000ff,0x00000033,
+0xc04,0x000000ff,0x00000033,
+0xd04,0x0000000f,0x00000003,
+0x1f4,0xffff0000,0x0000ffff,
+0x234,0xf8000000,0x00000013,
+};
+
+u32 Rtl8192SEPHY_REG_Array_PG[PHY_REG_Array_PGLength] = {
+0xe00,0xffffffff,0x06090909,
+0xe04,0xffffffff,0x00030406,
+0xe08,0x0000ff00,0x00000000,
+0xe10,0xffffffff,0x0a0c0d0e,
+0xe14,0xffffffff,0x04070809,
+0xe18,0xffffffff,0x0a0c0d0e,
+0xe1c,0xffffffff,0x04070809,
+0xe00,0xffffffff,0x04040404,
+0xe04,0xffffffff,0x00020204,
+0xe08,0x0000ff00,0x00000000,
+0xe10,0xffffffff,0x02040404,
+0xe14,0xffffffff,0x00000002,
+0xe18,0xffffffff,0x02040404,
+0xe1c,0xffffffff,0x00000002,
+0xe00,0xffffffff,0x04040404,
+0xe04,0xffffffff,0x00020204,
+0xe08,0x0000ff00,0x00000000,
+0xe10,0xffffffff,0x02040404,
+0xe14,0xffffffff,0x00000002,
+0xe18,0xffffffff,0x02040404,
+0xe1c,0xffffffff,0x00000002,
+0xe00,0xffffffff,0x02020202,
+0xe04,0xffffffff,0x00020202,
+0xe08,0x0000ff00,0x00000000,
+0xe10,0xffffffff,0x02020202,
+0xe14,0xffffffff,0x00000002,
+0xe18,0xffffffff,0x02020202,
+0xe1c,0xffffffff,0x00000002,
+};
+
+u32 Rtl8192SERadioA_1T_Array[RadioA_1T_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00030250,
+0x002,0x00010000,
+0x010,0x0008000f,
+0x011,0x000231fc,
+0x010,0x000c000f,
+0x011,0x0003f9f8,
+0x010,0x0002000f,
+0x011,0x00020101,
+0x014,0x0001093e,
+0x014,0x0009093e,
+0x015,0x0000f8f4,
+0x017,0x000f6500,
+0x01a,0x00013056,
+0x01b,0x00060000,
+0x01c,0x00000300,
+0x01e,0x00031059,
+0x021,0x00054000,
+0x022,0x0000083c,
+0x023,0x00001558,
+0x024,0x00000060,
+0x025,0x00022583,
+0x026,0x0000f200,
+0x027,0x000eacf1,
+0x028,0x0009bd54,
+0x029,0x00004582,
+0x02a,0x00000001,
+0x02b,0x00021334,
+0x02a,0x00000000,
+0x02b,0x0000000a,
+0x02a,0x00000001,
+0x02b,0x00000808,
+0x02b,0x00053333,
+0x02c,0x0000000c,
+0x02a,0x00000002,
+0x02b,0x00000808,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000003,
+0x02b,0x00000808,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000004,
+0x02b,0x00000808,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000005,
+0x02b,0x00000709,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x00000006,
+0x02b,0x00000709,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000007,
+0x02b,0x00000709,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000008,
+0x02b,0x00000709,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000009,
+0x02b,0x0000060a,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000a,
+0x02b,0x0000060a,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x0000000b,
+0x02b,0x0000060a,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x0000000c,
+0x02b,0x0000060a,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x0000000d,
+0x02b,0x0000050b,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000e,
+0x02b,0x0000050b,
+0x02b,0x00066623,
+0x02c,0x0000001a,
+0x02a,0x000e4000,
+0x030,0x00020000,
+0x031,0x000b9631,
+0x032,0x0000130d,
+0x033,0x00000187,
+0x013,0x00019e6c,
+0x013,0x00015e94,
+0x000,0x00010159,
+0x018,0x0000f401,
+0x0fe,0x00000000,
+0x01e,0x0003105b,
+0x0fe,0x00000000,
+0x000,0x00030159,
+0x010,0x0004000f,
+0x011,0x000203f9,
+};
+
+u32 Rtl8192SERadioB_Array[RadioB_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00001041,
+0x002,0x00011000,
+0x005,0x00080fc0,
+0x007,0x000fc803,
+0x013,0x00017cb0,
+0x013,0x00011cc0,
+0x013,0x0000dc60,
+0x013,0x00008c60,
+0x013,0x00004450,
+0x013,0x00000020,
+};
+
+u32 Rtl8192SERadioA_to1T_Array[RadioA_to1T_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00030250,
+0x002,0x00010000,
+0x010,0x0008000f,
+0x011,0x000231fc,
+0x010,0x000c000f,
+0x011,0x0003f9f8,
+0x014,0x0001093e,
+0x014,0x0009093e,
+0x015,0x000198f4,
+0x017,0x000f6500,
+0x01a,0x00013056,
+0x01b,0x00060000,
+0x01c,0x00000300,
+0x01e,0x00031059,
+0x021,0x00054000,
+0x022,0x0000083c,
+0x023,0x00001558,
+0x024,0x00000060,
+0x025,0x00022583,
+0x026,0x0000f200,
+0x027,0x000eacf1,
+0x028,0x000dbd54,
+0x029,0x00004582,
+0x02a,0x00000001,
+0x02b,0x00021334,
+0x02a,0x00000000,
+0x02b,0x0000000a,
+0x02a,0x00000001,
+0x02b,0x00000808,
+0x02b,0x00053333,
+0x02c,0x0000000c,
+0x02a,0x00000002,
+0x02b,0x00000808,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000003,
+0x02b,0x00000808,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000004,
+0x02b,0x00000808,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000005,
+0x02b,0x00000709,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x00000006,
+0x02b,0x00000709,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000007,
+0x02b,0x00000709,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000008,
+0x02b,0x00000709,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000009,
+0x02b,0x0000060a,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000a,
+0x02b,0x0000060a,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x0000000b,
+0x02b,0x0000060a,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x0000000c,
+0x02b,0x0000060a,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x0000000d,
+0x02b,0x0000050b,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000e,
+0x02b,0x0000050b,
+0x02b,0x00066623,
+0x02c,0x0000001a,
+0x02a,0x000e4000,
+0x030,0x00020000,
+0x031,0x000b9631,
+0x033,0x00000187,
+0x013,0x00019e6c,
+0x013,0x00015e94,
+0x000,0x00010159,
+0x018,0x0000f401,
+0x0fe,0x00000000,
+0x01e,0x0003105b,
+0x0fe,0x00000000,
+0x000,0x00030159,
+0x010,0x0004000f,
+0x011,0x000203f9,
+};
+
+u32 Rtl8192SERadioA_to2T_Array[RadioA_to2T_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00030250,
+0x002,0x00010000,
+0x010,0x0008000f,
+0x011,0x000231fc,
+0x010,0x000c000f,
+0x011,0x0003f9f8,
+0x014,0x0001093e,
+0x014,0x0009093e,
+0x015,0x000198f4,
+0x017,0x000f6500,
+0x01a,0x00013056,
+0x01b,0x00060000,
+0x01c,0x00000300,
+0x01e,0x00031059,
+0x021,0x00054000,
+0x022,0x0000083c,
+0x023,0x00001558,
+0x024,0x00000060,
+0x025,0x00022583,
+0x026,0x0000f200,
+0x027,0x000eacf1,
+0x028,0x000dbd54,
+0x029,0x00004582,
+0x02a,0x00000001,
+0x02b,0x00021334,
+0x02a,0x00000000,
+0x02b,0x0000000a,
+0x02a,0x00000001,
+0x02b,0x00000808,
+0x02b,0x00053333,
+0x02c,0x0000000c,
+0x02a,0x00000002,
+0x02b,0x00000808,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000003,
+0x02b,0x00000808,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000004,
+0x02b,0x00000808,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000005,
+0x02b,0x00000709,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x00000006,
+0x02b,0x00000709,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000007,
+0x02b,0x00000709,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000008,
+0x02b,0x00000709,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000009,
+0x02b,0x0000060a,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000a,
+0x02b,0x0000060a,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x0000000b,
+0x02b,0x0000060a,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x0000000c,
+0x02b,0x0000060a,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x0000000d,
+0x02b,0x0000050b,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000e,
+0x02b,0x0000050b,
+0x02b,0x00066623,
+0x02c,0x0000001a,
+0x02a,0x000e4000,
+0x030,0x00020000,
+0x031,0x000b9631,
+0x033,0x00000187,
+0x013,0x00019e6c,
+0x013,0x00015e94,
+0x000,0x00010159,
+0x018,0x0000f401,
+0x0fe,0x00000000,
+0x01e,0x0003105b,
+0x0fe,0x00000000,
+0x000,0x00030159,
+0x010,0x0004000f,
+0x011,0x000203f9,
+};
+
+u32 Rtl8192SERadioB_GM_Array[RadioB_GM_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00001041,
+0x002,0x00011000,
+0x005,0x00080fc0,
+0x007,0x000fc803,
+};
+
+u32 Rtl8192SEMAC_2T_Array[MAC_2T_ArrayLength] = {
+0x020,0x00000035,
+0x048,0x0000000e,
+0x049,0x000000f0,
+0x04a,0x00000077,
+0x04b,0x00000083,
+0x0b5,0x00000021,
+0x0dc,0x000000ff,
+0x0dd,0x000000ff,
+0x0de,0x000000ff,
+0x0df,0x000000ff,
+0x116,0x00000000,
+0x117,0x00000000,
+0x118,0x00000000,
+0x119,0x00000000,
+0x11a,0x00000000,
+0x11b,0x00000000,
+0x11c,0x00000000,
+0x11d,0x00000000,
+0x160,0x0000000b,
+0x161,0x0000000b,
+0x162,0x0000000b,
+0x163,0x0000000b,
+0x164,0x0000000b,
+0x165,0x0000000b,
+0x166,0x0000000b,
+0x167,0x0000000b,
+0x168,0x0000000b,
+0x169,0x0000000b,
+0x16a,0x0000000b,
+0x16b,0x0000000b,
+0x16c,0x0000000b,
+0x16d,0x0000000b,
+0x16e,0x0000000b,
+0x16f,0x0000000b,
+0x170,0x0000000b,
+0x171,0x0000000b,
+0x172,0x0000000b,
+0x173,0x0000000b,
+0x174,0x0000000b,
+0x175,0x0000000b,
+0x176,0x0000000b,
+0x177,0x0000000b,
+0x178,0x0000000b,
+0x179,0x0000000b,
+0x17a,0x0000000b,
+0x17b,0x0000000b,
+0x17c,0x0000000b,
+0x17d,0x0000000b,
+0x17e,0x0000000b,
+0x17f,0x0000000b,
+0x236,0x0000000c,
+0x503,0x00000022,
+0x560,0x00000000,
+};
+
+u32 Rtl8192SEMACPHY_Array_PG[MACPHY_Array_PGLength] = {
+0x0, };
+
+u32 Rtl8192SEAGCTAB_Array[AGCTAB_ArrayLength] = {
+0xc78,0x7f000001,
+0xc78,0x7f010001,
+0xc78,0x7e020001,
+0xc78,0x7d030001,
+0xc78,0x7c040001,
+0xc78,0x7b050001,
+0xc78,0x7a060001,
+0xc78,0x79070001,
+0xc78,0x78080001,
+0xc78,0x77090001,
+0xc78,0x760a0001,
+0xc78,0x750b0001,
+0xc78,0x740c0001,
+0xc78,0x730d0001,
+0xc78,0x720e0001,
+0xc78,0x710f0001,
+0xc78,0x70100001,
+0xc78,0x6f110001,
+0xc78,0x6f120001,
+0xc78,0x6e130001,
+0xc78,0x6d140001,
+0xc78,0x6d150001,
+0xc78,0x6c160001,
+0xc78,0x6b170001,
+0xc78,0x6a180001,
+0xc78,0x6a190001,
+0xc78,0x691a0001,
+0xc78,0x681b0001,
+0xc78,0x671c0001,
+0xc78,0x661d0001,
+0xc78,0x651e0001,
+0xc78,0x641f0001,
+0xc78,0x63200001,
+0xc78,0x4c210001,
+0xc78,0x4b220001,
+0xc78,0x4a230001,
+0xc78,0x49240001,
+0xc78,0x48250001,
+0xc78,0x47260001,
+0xc78,0x46270001,
+0xc78,0x45280001,
+0xc78,0x44290001,
+0xc78,0x2c2a0001,
+0xc78,0x2b2b0001,
+0xc78,0x2a2c0001,
+0xc78,0x292d0001,
+0xc78,0x282e0001,
+0xc78,0x272f0001,
+0xc78,0x26300001,
+0xc78,0x25310001,
+0xc78,0x24320001,
+0xc78,0x23330001,
+0xc78,0x22340001,
+0xc78,0x09350001,
+0xc78,0x08360001,
+0xc78,0x07370001,
+0xc78,0x06380001,
+0xc78,0x05390001,
+0xc78,0x043a0001,
+0xc78,0x033b0001,
+0xc78,0x023c0001,
+0xc78,0x013d0001,
+0xc78,0x003e0001,
+0xc78,0x003f0001,
+0xc78,0x7f400001,
+0xc78,0x7f410001,
+0xc78,0x7e420001,
+0xc78,0x7d430001,
+0xc78,0x7c440001,
+0xc78,0x7b450001,
+0xc78,0x7a460001,
+0xc78,0x79470001,
+0xc78,0x78480001,
+0xc78,0x77490001,
+0xc78,0x764a0001,
+0xc78,0x754b0001,
+0xc78,0x744c0001,
+0xc78,0x734d0001,
+0xc78,0x724e0001,
+0xc78,0x714f0001,
+0xc78,0x70500001,
+0xc78,0x6f510001,
+0xc78,0x6f520001,
+0xc78,0x6e530001,
+0xc78,0x6d540001,
+0xc78,0x6d550001,
+0xc78,0x6c560001,
+0xc78,0x6b570001,
+0xc78,0x6a580001,
+0xc78,0x6a590001,
+0xc78,0x695a0001,
+0xc78,0x685b0001,
+0xc78,0x675c0001,
+0xc78,0x665d0001,
+0xc78,0x655e0001,
+0xc78,0x645f0001,
+0xc78,0x63600001,
+0xc78,0x4c610001,
+0xc78,0x4b620001,
+0xc78,0x4a630001,
+0xc78,0x49640001,
+0xc78,0x48650001,
+0xc78,0x47660001,
+0xc78,0x46670001,
+0xc78,0x45680001,
+0xc78,0x44690001,
+0xc78,0x2c6a0001,
+0xc78,0x2b6b0001,
+0xc78,0x2a6c0001,
+0xc78,0x296d0001,
+0xc78,0x286e0001,
+0xc78,0x276f0001,
+0xc78,0x26700001,
+0xc78,0x25710001,
+0xc78,0x24720001,
+0xc78,0x23730001,
+0xc78,0x22740001,
+0xc78,0x09750001,
+0xc78,0x08760001,
+0xc78,0x07770001,
+0xc78,0x06780001,
+0xc78,0x05790001,
+0xc78,0x047a0001,
+0xc78,0x037b0001,
+0xc78,0x027c0001,
+0xc78,0x017d0001,
+0xc78,0x007e0001,
+0xc78,0x007f0001,
+0xc78,0x3000001e,
+0xc78,0x3001001e,
+0xc78,0x3002001e,
+0xc78,0x3003001e,
+0xc78,0x3004001e,
+0xc78,0x3405001e,
+0xc78,0x3806001e,
+0xc78,0x3e07001e,
+0xc78,0x3e08001e,
+0xc78,0x4409001e,
+0xc78,0x460a001e,
+0xc78,0x480b001e,
+0xc78,0x480c001e,
+0xc78,0x4e0d001e,
+0xc78,0x560e001e,
+0xc78,0x5a0f001e,
+0xc78,0x5e10001e,
+0xc78,0x6211001e,
+0xc78,0x6c12001e,
+0xc78,0x7213001e,
+0xc78,0x7214001e,
+0xc78,0x7215001e,
+0xc78,0x7216001e,
+0xc78,0x7217001e,
+0xc78,0x7218001e,
+0xc78,0x7219001e,
+0xc78,0x721a001e,
+0xc78,0x721b001e,
+0xc78,0x721c001e,
+0xc78,0x721d001e,
+0xc78,0x721e001e,
+0xc78,0x721f001e,
+};
+
+#endif
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg.h b/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg.h
new file mode 100755
index 00000000000..5daecc67b5f
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg.h
@@ -0,0 +1,42 @@
+#ifndef __INC_HAL8192SE_FW_IMG_H
+#define __INC_HAL8192SE_FW_IMG_H
+
+/*Created on 2010/ 2/24, 2:32*/
+
+#include <linux/types.h>
+#define ImgArrayLength 80976
+extern u8 Rtl8192SEFwImgArray[ImgArrayLength];
+#define MainArrayLength 1
+extern u8 Rtl8192SEFwMainArray[MainArrayLength];
+#define DataArrayLength 1
+extern u8 Rtl8192SEFwDataArray[DataArrayLength];
+#define PHY_REG_2T2RArrayLength 372
+extern u32 Rtl8192SEPHY_REG_2T2RArray[PHY_REG_2T2RArrayLength];
+#define PHY_REG_1T2RArrayLength 1
+extern u32 Rtl8192SEPHY_REG_1T2RArray[PHY_REG_1T2RArrayLength];
+#define PHY_ChangeTo_1T1RArrayLength 48
+extern u32 Rtl8192SEPHY_ChangeTo_1T1RArray[PHY_ChangeTo_1T1RArrayLength];
+#define PHY_ChangeTo_1T2RArrayLength 45
+extern u32 Rtl8192SEPHY_ChangeTo_1T2RArray[PHY_ChangeTo_1T2RArrayLength];
+#define PHY_ChangeTo_2T2RArrayLength 45
+extern u32 Rtl8192SEPHY_ChangeTo_2T2RArray[PHY_ChangeTo_2T2RArrayLength];
+#define PHY_REG_Array_PGLength 84
+extern u32 Rtl8192SEPHY_REG_Array_PG[PHY_REG_Array_PGLength];
+#define RadioA_1T_ArrayLength 202
+extern u32 Rtl8192SERadioA_1T_Array[RadioA_1T_ArrayLength];
+#define RadioB_ArrayLength 22
+extern u32 Rtl8192SERadioB_Array[RadioB_ArrayLength];
+#define RadioA_to1T_ArrayLength 196
+extern u32 Rtl8192SERadioA_to1T_Array[RadioA_to1T_ArrayLength];
+#define RadioA_to2T_ArrayLength 196
+extern u32 Rtl8192SERadioA_to2T_Array[RadioA_to2T_ArrayLength];
+#define RadioB_GM_ArrayLength 10
+extern u32 Rtl8192SERadioB_GM_Array[RadioB_GM_ArrayLength];
+#define MAC_2T_ArrayLength 106
+extern u32 Rtl8192SEMAC_2T_Array[MAC_2T_ArrayLength];
+#define MACPHY_Array_PGLength 1
+extern u32 Rtl8192SEMACPHY_Array_PG[MACPHY_Array_PGLength];
+#define AGCTAB_ArrayLength 320
+extern u32 Rtl8192SEAGCTAB_Array[AGCTAB_ArrayLength];
+
+#endif //__INC_HAL8192SE_FW_IMG_H
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg492.c b/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg492.c
new file mode 100755
index 00000000000..e41d3b975be
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg492.c
@@ -0,0 +1,5610 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+/*Created on 2009/ 7/23, 5: 4*/
+
+#ifdef RTL8192SE
+#include "r8192S_hwimg.h"
+
+u8 Rtl8192SEFwImgArray[ImgArrayLength] = {
+0x92,0x81,0x31,0x70,0x30,0x00,0x00,0x00,0x08,0x84,0x00,0x00,0x48,0xa4,0x00,0x00,
+0x30,0x00,0x00,0x00,0xc0,0xa2,0x00,0x00,0x31,0x00,0x02,0x00,0x07,0x20,0x16,0x06,
+0x92,0x81,0x01,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x1f,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x1a,0x3c,0x80,0x03,0x5a,0x37,0x00,0x80,0x1b,0x3c,0x80,0x00,0x7b,0x37,
+0x00,0x00,0x5b,0xaf,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x37,0x00,0x80,0x1b,0x3c,
+0x80,0x00,0x7b,0x37,0x00,0x00,0x5b,0xaf,0x00,0x80,0x1a,0x3c,0x44,0x7c,0x5a,0x27,
+0x08,0x00,0x40,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x04,0x00,0xa1,0xaf,0x08,0x00,0xa2,0xaf,0x0c,0x00,0xa3,0xaf,0x10,0x00,0xa4,0xaf,
+0x14,0x00,0xa5,0xaf,0x18,0x00,0xa6,0xaf,0x1c,0x00,0xa7,0xaf,0x20,0x00,0xa8,0xaf,
+0x24,0x00,0xa9,0xaf,0x28,0x00,0xaa,0xaf,0x2c,0x00,0xab,0xaf,0x30,0x00,0xac,0xaf,
+0x34,0x00,0xad,0xaf,0x38,0x00,0xae,0xaf,0x3c,0x00,0xaf,0xaf,0x12,0x40,0x00,0x00,
+0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40,0x40,0x00,0xb0,0xaf,0x44,0x00,0xb1,0xaf,
+0x48,0x00,0xb2,0xaf,0x4c,0x00,0xb3,0xaf,0x50,0x00,0xb4,0xaf,0x54,0x00,0xb5,0xaf,
+0x58,0x00,0xb6,0xaf,0x5c,0x00,0xb7,0xaf,0x60,0x00,0xb8,0xaf,0x64,0x00,0xb9,0xaf,
+0x68,0x00,0xbc,0xaf,0x6c,0x00,0xbd,0xaf,0x70,0x00,0xbe,0xaf,0x74,0x00,0xbf,0xaf,
+0x78,0x00,0xa8,0xaf,0x7c,0x00,0xa9,0xaf,0x80,0x00,0xaa,0xaf,0xac,0x1e,0x00,0x08,
+0x21,0x20,0xa0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x06,0x3c,0x00,0x80,0x02,0x3c,0xe8,0xff,0xbd,0x27,0x18,0x03,0xc3,0x34,
+0x00,0x03,0x42,0x24,0x14,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x42,0xb0,0x03,0x3c,
+0x03,0x00,0x63,0x34,0x00,0x00,0x62,0x90,0x02,0x80,0x0a,0x3c,0x02,0x80,0x10,0x3c,
+0xff,0x00,0x42,0x30,0x00,0x46,0x02,0x00,0x10,0x00,0x42,0x30,0x13,0x00,0x40,0x10,
+0x03,0x46,0x08,0x00,0x24,0x7e,0x42,0x8d,0x68,0x15,0x05,0x26,0xe0,0x63,0xa4,0x94,
+0x01,0x00,0x47,0x24,0x10,0x00,0x02,0x24,0xb0,0x03,0xc9,0x34,0x00,0x00,0x62,0xa0,
+0x07,0x00,0x80,0x10,0x1c,0x03,0xc6,0x34,0xe4,0x63,0xa2,0x94,0xe0,0x63,0xa0,0xa4,
+0xe4,0x63,0xa0,0xa4,0x00,0x00,0x04,0x24,0x00,0x00,0xc2,0xac,0x00,0x00,0x20,0xad,
+0x01,0x00,0x82,0x24,0x24,0x7e,0x47,0xad,0xe0,0x63,0xa2,0xa4,0x12,0x00,0x00,0x05,
+0x42,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x68,0x15,0x04,0x26,0x0c,0x4b,0x83,0x94,0x08,0x4b,0x85,0x94,
+0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x80,0x00,0x63,0x30,0x41,0xb0,0x02,0x3c,
+0x25,0x18,0x65,0x00,0x08,0x00,0x42,0x34,0x18,0x00,0xbd,0x27,0x00,0x00,0x43,0xa4,
+0x08,0x00,0xe0,0x03,0x08,0x4b,0x83,0xa4,0x80,0xff,0x03,0x24,0x03,0x00,0x42,0x34,
+0x00,0x00,0x43,0xa0,0x64,0x10,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x68,0x15,0x04,0x26,
+0x0c,0x4b,0x83,0x94,0x08,0x4b,0x85,0x94,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,
+0x80,0x00,0x63,0x30,0x41,0xb0,0x02,0x3c,0x25,0x18,0x65,0x00,0x08,0x00,0x42,0x34,
+0x18,0x00,0xbd,0x27,0x00,0x00,0x43,0xa4,0x08,0x00,0xe0,0x03,0x08,0x4b,0x83,0xa4,
+0xff,0x00,0x84,0x30,0x0b,0x00,0x82,0x2c,0xff,0xff,0xe7,0x30,0x10,0x00,0xa8,0x93,
+0x19,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0x02,0x80,0x03,0x3c,0x80,0x10,0x04,0x00,
+0x58,0x9f,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,
+0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x43,0xb0,0x02,0x3c,0x78,0x00,0x44,0x34,
+0x07,0x00,0xe2,0x30,0x00,0x00,0x85,0xac,0x04,0x00,0x86,0xac,0x04,0x00,0x40,0x18,
+0x00,0x00,0x00,0x00,0xf8,0xff,0xe2,0x30,0x08,0x00,0x42,0x24,0xff,0xff,0x47,0x30,
+0x21,0x10,0xe8,0x00,0x00,0x80,0x03,0x3c,0x08,0x00,0x82,0xac,0x25,0x10,0x43,0x00,
+0x08,0x00,0x82,0xac,0x01,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x6c,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,
+0x20,0x01,0x00,0x08,0x60,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,
+0x54,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x48,0x00,0x44,0x34,
+0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x3c,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,
+0x20,0x01,0x00,0x08,0x30,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,
+0x24,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x18,0x00,0x44,0x34,
+0x43,0xb0,0x02,0x3c,0x20,0x01,0x00,0x08,0x0c,0x00,0x44,0x34,0x20,0x01,0x00,0x08,
+0x43,0xb0,0x04,0x3c,0x01,0x00,0x02,0x24,0x25,0xb0,0x03,0x3c,0x04,0x20,0x82,0x00,
+0x18,0x03,0x67,0x34,0x00,0x80,0x02,0x3c,0x43,0xb0,0x03,0x3c,0x34,0x05,0x46,0x24,
+0x88,0x00,0x65,0x34,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0xff,0x42,0x30,
+0x05,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x00,0x00,0xe6,0xac,
+0x00,0x00,0xa2,0x94,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x30,0x24,0x10,0x44,0x00,
+0xf4,0xff,0x40,0x1c,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x08,0x3c,0x00,0x80,0x02,0x3c,0xc8,0xff,0xbd,0x27,0x18,0x03,0x03,0x35,
+0x90,0x05,0x42,0x24,0x00,0x00,0x62,0xac,0x30,0x00,0xb6,0xaf,0x28,0x00,0xb4,0xaf,
+0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf,0x34,0x00,0xbf,0xaf,0x2c,0x00,0xb5,0xaf,
+0x20,0x00,0xb2,0xaf,0x18,0x00,0xb0,0xaf,0x0c,0x00,0xf2,0x84,0x08,0x00,0xf5,0x8c,
+0xff,0x00,0xc6,0x30,0x00,0x01,0x02,0x24,0x23,0x10,0x46,0x00,0xff,0xff,0x51,0x30,
+0xd0,0x03,0x08,0x35,0xff,0x00,0x96,0x30,0x00,0x00,0x12,0xad,0x21,0xa0,0xa0,0x00,
+0x21,0x30,0xc5,0x00,0x00,0x00,0x15,0xad,0x21,0x20,0xc0,0x02,0x21,0x28,0xa0,0x02,
+0x21,0x38,0x20,0x02,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x23,0x18,0x51,0x02,
+0xff,0xff,0x82,0x32,0x00,0x94,0x03,0x00,0x03,0x94,0x12,0x00,0xa6,0x01,0x00,0x08,
+0x02,0x9a,0x02,0x00,0x28,0xb0,0x03,0x3c,0xc0,0x10,0x13,0x00,0x21,0x10,0x43,0x00,
+0x00,0x00,0x44,0x90,0x25,0xb0,0x10,0x3c,0x20,0x10,0x02,0x3c,0xff,0x00,0x93,0x30,
+0x00,0x22,0x13,0x00,0xff,0xff,0x43,0x32,0x01,0x01,0x45,0x2a,0x21,0xa0,0x82,0x00,
+0x21,0xa8,0xb1,0x02,0xd0,0x03,0x02,0x36,0x00,0x01,0x11,0x24,0x0b,0x88,0x65,0x00,
+0x21,0x20,0xc0,0x02,0x00,0x00,0x53,0xac,0x4d,0x01,0x00,0x0c,0xb0,0x03,0x10,0x36,
+0x21,0x30,0x80,0x02,0x21,0x20,0xc0,0x02,0x21,0x28,0xa0,0x02,0x21,0x38,0x20,0x02,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x23,0x18,0x51,0x02,0x00,0x94,0x03,0x00,
+0x03,0x94,0x12,0x00,0x00,0x00,0x12,0xae,0xe2,0xff,0x40,0x1e,0x00,0x00,0x00,0x00,
+0x34,0x00,0xbf,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0xc8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,
+0x25,0xb0,0x04,0x3c,0x20,0x00,0xb2,0xaf,0x68,0x15,0x52,0x24,0x00,0x80,0x02,0x3c,
+0x18,0x03,0x83,0x34,0xc8,0x06,0x42,0x24,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,
+0x30,0x00,0xbf,0xaf,0x2c,0x00,0xb5,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0x00,0x00,0x62,0xac,0xb0,0x03,0x93,0x34,0x21,0xa0,0x40,0x02,0xb4,0x64,0x42,0x8e,
+0x20,0x65,0x50,0x8e,0x21,0x20,0x00,0x00,0x00,0x00,0x62,0xae,0xb8,0x64,0x42,0xae,
+0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,0x20,0x65,0x44,0x8e,
+0x24,0x65,0x43,0x8e,0x20,0x00,0x84,0x24,0x3f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,
+0x0a,0x18,0x82,0x00,0x20,0x65,0x43,0xae,0x20,0x65,0x85,0x8e,0x00,0x00,0x00,0x00,
+0x00,0x00,0x65,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32,0x25,0x80,0x02,0x02,
+0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,0xff,0x00,0x15,0x24,0x21,0x20,0x00,0x00,
+0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0x20,0x10,0x02,0x3c,0x20,0x00,0x07,0x24,
+0x00,0x1a,0x11,0x00,0x21,0x18,0x62,0x00,0x05,0x00,0x35,0x12,0x21,0x30,0x60,0x00,
+0x68,0x64,0x91,0xa2,0xb4,0x64,0x83,0xae,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x00,0x00,0x05,0x96,0x18,0x64,0x83,0x8e,0x2a,0xb0,0x02,0x3c,0x27,0x20,0x05,0x00,
+0x01,0x00,0x46,0x34,0x21,0x10,0x65,0x00,0x2b,0x18,0x64,0x00,0x02,0x00,0x60,0x10,
+0x00,0x00,0x00,0x00,0x18,0x64,0x82,0xae,0x04,0x00,0x04,0x8e,0x08,0x00,0x03,0x8e,
+0xff,0xe0,0x02,0x3c,0xff,0xff,0x42,0x34,0x1f,0x00,0x84,0x30,0x24,0x18,0x62,0x00,
+0x00,0x26,0x04,0x00,0xff,0xdf,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x00,0x40,0x04,0x3c,0xc0,0xff,0x02,0x24,0x25,0x18,0x64,0x00,
+0x24,0x18,0x62,0x00,0x08,0x00,0x03,0xae,0x01,0x00,0x02,0x24,0x02,0x00,0x03,0x24,
+0x00,0x00,0xc2,0xa0,0x00,0x00,0xc3,0xa0,0xbc,0xff,0x35,0x16,0x41,0xb0,0x03,0x3c,
+0xfc,0x4a,0x82,0x8e,0x30,0x00,0xbf,0x8f,0x00,0x38,0x42,0x34,0x00,0x00,0x62,0xac,
+0x2c,0x00,0xb5,0x8f,0xfc,0x4a,0x82,0xae,0x24,0x00,0xb3,0x8f,0x28,0x00,0xb4,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x38,0x00,0xbd,0x27,0x25,0xb0,0x04,0x3c,0x00,0x80,0x02,0x3c,0xc0,0xff,0xbd,0x27,
+0x18,0x03,0x83,0x34,0x54,0x08,0x42,0x24,0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf,
+0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,
+0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x02,0x80,0x02,0x3c,0x68,0x15,0x52,0x24,0xb0,0x03,0x95,0x34,0x39,0x02,0x00,0x08,
+0x21,0xf0,0x40,0x02,0x08,0x00,0x04,0xae,0x76,0x4b,0x82,0x92,0x00,0x00,0x00,0x00,
+0x45,0x00,0x40,0x10,0x2a,0xb0,0x02,0x3c,0x09,0x00,0x42,0x34,0x01,0x00,0x03,0x24,
+0x02,0x00,0x04,0x24,0x00,0x00,0x43,0xa0,0x00,0x00,0x44,0xa0,0x5a,0x00,0x36,0x12,
+0x00,0x00,0x00,0x00,0xcc,0x64,0x42,0x8e,0x38,0x65,0x53,0x8e,0x01,0x00,0x04,0x24,
+0x00,0x00,0xa2,0xae,0xd0,0x64,0x42,0xae,0x00,0x00,0xb3,0xae,0x4d,0x01,0x00,0x0c,
+0x21,0xa0,0xc0,0x03,0x38,0x65,0x44,0x8e,0x3c,0x65,0x43,0x8e,0x20,0x00,0x84,0x24,
+0x3f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x38,0x65,0x43,0xae,
+0x38,0x65,0xc5,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0xa5,0xae,0x02,0x80,0x17,0x3c,
+0xff,0xff,0x62,0x32,0x25,0x80,0x57,0x00,0x00,0x00,0xb0,0xae,0x0c,0x00,0x02,0x92,
+0xff,0x00,0x16,0x24,0x01,0x00,0x04,0x24,0x00,0x00,0xa2,0xae,0x0c,0x00,0x11,0x92,
+0x20,0x10,0x02,0x3c,0x20,0x00,0x07,0x24,0x00,0x1a,0x11,0x00,0x21,0x18,0x62,0x00,
+0x05,0x00,0x36,0x12,0x21,0x30,0x60,0x00,0xcc,0x64,0xc3,0xaf,0x70,0x64,0xd1,0xa3,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x04,0x00,0x04,0x8e,0x08,0x00,0x03,0x8e,
+0xff,0xe0,0x02,0x3c,0xff,0xff,0x42,0x34,0x1f,0x00,0x84,0x30,0x24,0x18,0x62,0x00,
+0x00,0x26,0x04,0x00,0xff,0xdf,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0xc0,0xff,0x05,0x24,
+0x82,0x11,0x03,0x00,0x24,0x20,0x65,0x00,0x01,0x00,0x42,0x30,0xbd,0xff,0x40,0x10,
+0x04,0x00,0x84,0x34,0x08,0x00,0x03,0xae,0x76,0x4b,0x82,0x92,0x00,0x00,0x00,0x00,
+0xbd,0xff,0x40,0x14,0x2a,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x01,0x00,0x03,0x24,0x76,0x4b,0x83,0xa2,
+0x02,0x00,0x02,0x92,0x00,0x00,0x00,0x00,0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30,
+0x25,0x10,0x57,0x00,0x02,0x00,0x43,0x94,0x00,0x00,0x00,0x00,0xff,0xc0,0x64,0x30,
+0x00,0xc0,0x84,0x34,0xe3,0x18,0x00,0x0c,0x77,0x4b,0x83,0xa2,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x2a,0xb0,0x02,0x3c,0x09,0x00,0x42,0x34,
+0x01,0x00,0x03,0x24,0x02,0x00,0x04,0x24,0x00,0x00,0x43,0xa0,0x00,0x00,0x44,0xa0,
+0xa8,0xff,0x36,0x16,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x03,0x3c,0x68,0x15,0x62,0x24,
+0xfc,0x4a,0x43,0x8c,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x38,0x63,0x34,
+0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x83,0xac,0x08,0x00,0xe0,0x03,
+0xfc,0x4a,0x43,0xac,0x25,0xb0,0x04,0x3c,0x00,0x80,0x02,0x3c,0xc0,0xff,0xbd,0x27,
+0x18,0x03,0x83,0x34,0xa4,0x0a,0x42,0x24,0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,
+0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,
+0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x02,0x80,0x16,0x3c,
+0x68,0x15,0xd3,0x26,0xb0,0x03,0x94,0x34,0x02,0x80,0x15,0x3c,0x21,0xb8,0x60,0x02,
+0xc0,0x64,0x62,0x8e,0x2c,0x65,0x70,0x8e,0x01,0x00,0x04,0x24,0x00,0x00,0x82,0xae,
+0xc4,0x64,0x62,0xae,0x00,0x00,0x90,0xae,0x4d,0x01,0x00,0x0c,0x21,0x88,0xe0,0x02,
+0x2c,0x65,0x64,0x8e,0x30,0x65,0x63,0x8e,0x20,0x00,0x84,0x24,0x3f,0x00,0x62,0x24,
+0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x2c,0x65,0x63,0xae,0x2c,0x65,0xe5,0x8e,
+0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32,
+0x25,0x80,0x02,0x02,0x00,0x00,0x90,0xae,0x0c,0x00,0x02,0x92,0x00,0x00,0x00,0x00,
+0x00,0x00,0x82,0xae,0x0c,0x00,0x12,0x92,0xff,0x00,0x02,0x24,0x0a,0x00,0x42,0x12,
+0x00,0x1a,0x12,0x00,0x20,0x10,0x02,0x3c,0x21,0x18,0x62,0x00,0xc0,0x64,0xe3,0xae,
+0x6c,0x64,0xf2,0xa2,0x21,0x30,0x60,0x00,0x01,0x00,0x04,0x24,0x20,0x00,0x07,0x24,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0xf8,0x63,0x22,0x8e,0x04,0x00,0x03,0x8e,
+0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x5d,0x00,0x40,0x14,0x1f,0x00,0x64,0x30,
+0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,
+0x00,0x26,0x04,0x00,0x25,0x28,0x44,0x00,0x08,0x00,0x05,0xae,0xc2,0x11,0x05,0x00,
+0x01,0x00,0x43,0x30,0x47,0x00,0x60,0x14,0x01,0x00,0x02,0x24,0x00,0x00,0x04,0x96,
+0x1c,0x64,0x23,0x8e,0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,0x05,0x00,0x40,0x10,
+0xff,0xdf,0x02,0x3c,0x21,0x10,0x64,0x00,0x1c,0x64,0x22,0xae,0x08,0x00,0x05,0x8e,
+0xff,0xdf,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x28,0xa2,0x00,0x00,0x40,0x03,0x3c,
+0x25,0x28,0xa3,0x00,0x82,0x11,0x05,0x00,0x01,0x00,0x42,0x30,0x03,0x00,0x40,0x14,
+0xc0,0xff,0x02,0x24,0x24,0x10,0xa2,0x00,0x04,0x00,0x45,0x34,0x08,0x00,0x05,0xae,
+0x68,0x15,0xc2,0x26,0x76,0x4b,0x44,0x90,0x01,0x00,0x03,0x24,0x3b,0x00,0x83,0x10,
+0x7f,0xff,0x02,0x24,0x24,0x10,0xa2,0x00,0x08,0x00,0x02,0xae,0x68,0x15,0xc5,0x26,
+0xc4,0x64,0xa2,0x8c,0x20,0x00,0x10,0x8e,0x00,0x80,0x03,0x3c,0x25,0x10,0x43,0x00,
+0x2a,0xb0,0x03,0x3c,0x08,0x00,0x50,0xac,0x05,0x00,0x70,0x34,0x01,0x00,0x02,0x24,
+0x02,0x00,0x03,0x24,0x00,0x00,0x02,0xa2,0x00,0x00,0x03,0xa2,0x2a,0x7e,0xa2,0x96,
+0xff,0x00,0x03,0x24,0x01,0x00,0x42,0x24,0x2a,0x7e,0xa2,0xa6,0x2a,0x7e,0xa4,0x96,
+0x25,0xb0,0x02,0x3c,0x66,0x03,0x42,0x34,0x00,0x00,0x44,0xa4,0x98,0xff,0x43,0x16,
+0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0xfc,0x4a,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x38,0x42,0x34,
+0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x62,0xac,0x08,0x00,0xe0,0x03,
+0xfc,0x4a,0xa2,0xac,0xc3,0xff,0x62,0x14,0xff,0xdf,0x02,0x3c,0x00,0x00,0x04,0x96,
+0x18,0x64,0x23,0x8e,0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,0xbd,0xff,0x40,0x10,
+0xff,0xdf,0x02,0x3c,0x21,0x10,0x64,0x00,0xff,0x02,0x00,0x08,0x18,0x64,0x22,0xae,
+0x08,0x00,0x05,0x8e,0xf4,0x02,0x00,0x08,0xc2,0x11,0x05,0x00,0x80,0x00,0xa5,0x34,
+0x13,0x03,0x00,0x08,0x08,0x00,0x05,0xae,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf,
+0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,
+0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0x02,0x80,0x06,0x3c,0xdc,0x7e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x18,0x03,0x42,0x34,0x38,0x0d,0x63,0x24,0x40,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,
+0x21,0xb0,0x00,0x00,0x03,0x00,0x80,0x10,0x7f,0x00,0xa2,0x30,0xbf,0x00,0xa2,0x30,
+0x01,0x00,0x16,0x24,0xdc,0x7e,0xc2,0xa0,0xdc,0x7e,0xc2,0x90,0x25,0xb0,0x04,0x3c,
+0x88,0x02,0x83,0x34,0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x02,0x80,0x15,0x3c,0x68,0x15,0xb2,0x26,0xb0,0x03,0x93,0x34,
+0x02,0x80,0x14,0x3c,0xc0,0x03,0x00,0x08,0x21,0xb8,0x40,0x02,0x4c,0x64,0xf1,0xa2,
+0x68,0x15,0xa2,0x26,0x84,0x64,0x46,0x8c,0xf0,0x64,0x45,0x8c,0x03,0x00,0x04,0x24,
+0x20,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x68,0x15,0xa5,0x26,
+0xf8,0x63,0xa2,0x8c,0x04,0x00,0x03,0x8e,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,
+0x08,0x00,0x40,0x14,0x1f,0x00,0x64,0x30,0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c,
+0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,0x00,0x26,0x04,0x00,0x25,0x18,0x44,0x00,
+0x08,0x00,0x03,0xae,0x00,0x00,0x04,0x96,0x1c,0x64,0xa3,0x8c,0x27,0x10,0x04,0x00,
+0x2b,0x10,0x62,0x00,0x02,0x00,0x40,0x10,0x21,0x10,0x64,0x00,0x1c,0x64,0xa2,0xac,
+0x10,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0x53,0x00,0x80,0x04,0x00,0x00,0x00,0x00,
+0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,
+0x0c,0x00,0x42,0x28,0x06,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x96,
+0x00,0x00,0x00,0x00,0xfd,0x0f,0x42,0x28,0x44,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x18,0x43,0x00,
+0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0x08,0x00,0x03,0xae,0x82,0x11,0x03,0x00,
+0x01,0x00,0x42,0x30,0x05,0x00,0x40,0x14,0x2a,0xb0,0x07,0x3c,0xc0,0xff,0x02,0x24,
+0x24,0x10,0x62,0x00,0x04,0x00,0x42,0x34,0x08,0x00,0x02,0xae,0x0d,0x00,0xe2,0x34,
+0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24,0x02,0x00,0x03,0x24,
+0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0,0x2a,0x7e,0x84,0x96,0x25,0xb0,0x06,0x3c,
+0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24,0x2a,0x7e,0x84,0xa6,0x2a,0x7e,0x82,0x96,
+0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4,0x33,0x00,0x23,0x12,0x00,0x00,0x00,0x00,
+0x84,0x64,0x42,0x8e,0xf0,0x64,0x50,0x8e,0x03,0x00,0x04,0x24,0x00,0x00,0x62,0xae,
+0x88,0x64,0x42,0xae,0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xf0,0x64,0x44,0x8e,0xf4,0x64,0x43,0x8e,0x20,0x00,0x84,0x24,0x3f,0x00,0x62,0x24,
+0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0xf0,0x64,0x43,0xae,0xf0,0x64,0xe2,0x8e,
+0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32,
+0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,0x00,0x00,0x00,0x00,
+0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,0x9f,0xff,0x22,0x12,
+0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00,0x93,0xff,0xc0,0x16,
+0x84,0x64,0xe2,0xae,0x74,0x03,0x00,0x08,0x48,0x64,0xf1,0xa2,0x08,0x00,0x03,0x8e,
+0xa8,0x03,0x00,0x08,0x82,0x11,0x03,0x00,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,
+0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x14,0x00,0x42,0x28,0xab,0xff,0x40,0x14,
+0x42,0x12,0x03,0x00,0x9f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x10,0x82,0x00,
+0x96,0x03,0x00,0x08,0x10,0x00,0x02,0xae,0x20,0x00,0xc0,0x12,0x68,0x15,0xa2,0x26,
+0x4c,0x64,0x43,0x90,0x41,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0,
+0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x68,0x15,0xa5,0x26,0xfc,0x4a,0xa4,0x8c,0x01,0x00,0x02,0x3c,0x38,0x00,0xbf,0x8f,
+0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x00,0x80,0x42,0x34,0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,
+0x00,0x00,0x64,0xac,0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa4,0xac,0x48,0x64,0x43,0x90,
+0x40,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x68,0x15,0xa5,0x26,
+0xfc,0x4a,0xa4,0x8c,0x01,0x00,0x02,0x3c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x80,0x42,0x34,
+0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x64,0xac,
+0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa4,0xac,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf,
+0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,
+0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0x02,0x80,0x06,0x3c,0xdc,0x7e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x18,0x03,0x42,0x34,0xc8,0x10,0x63,0x24,0x10,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,
+0x21,0xb0,0x00,0x00,0x03,0x00,0x80,0x10,0xdf,0x00,0xa2,0x30,0xef,0x00,0xa2,0x30,
+0x01,0x00,0x16,0x24,0xdc,0x7e,0xc2,0xa0,0xdc,0x7e,0xc3,0x90,0x25,0xb0,0x02,0x3c,
+0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x02,0x80,0x15,0x3c,0x68,0x15,0xb2,0x26,
+0x21,0x98,0x40,0x00,0x02,0x80,0x14,0x3c,0xa5,0x04,0x00,0x08,0x21,0xb8,0x40,0x02,
+0x54,0x64,0xf1,0xa2,0x68,0x15,0xa2,0x26,0x90,0x64,0x46,0x8c,0xfc,0x64,0x45,0x8c,
+0x04,0x00,0x04,0x24,0x20,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x68,0x15,0xa5,0x26,0xf8,0x63,0xa2,0x8c,0x04,0x00,0x03,0x8e,0x42,0x10,0x02,0x00,
+0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14,0x1f,0x00,0x64,0x30,0x08,0x00,0x02,0x8e,
+0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,0x00,0x26,0x04,0x00,
+0x25,0x18,0x44,0x00,0x08,0x00,0x03,0xae,0x00,0x00,0x04,0x96,0x1c,0x64,0xa3,0x8c,
+0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,0x02,0x00,0x40,0x10,0x21,0x10,0x64,0x00,
+0x1c,0x64,0xa2,0xac,0x10,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0x53,0x00,0x80,0x04,
+0x00,0x00,0x00,0x00,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,
+0x3f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,0x06,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x00,0x00,0x02,0x96,0x00,0x00,0x00,0x00,0xfd,0x0f,0x42,0x28,0x44,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c,0xff,0xff,0x63,0x34,
+0x24,0x18,0x43,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0x08,0x00,0x03,0xae,
+0x82,0x11,0x03,0x00,0x01,0x00,0x42,0x30,0x05,0x00,0x40,0x14,0x2a,0xb0,0x07,0x3c,
+0xc0,0xff,0x02,0x24,0x24,0x10,0x62,0x00,0x04,0x00,0x42,0x34,0x08,0x00,0x02,0xae,
+0x15,0x00,0xe2,0x34,0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24,
+0x02,0x00,0x03,0x24,0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0,0x2a,0x7e,0x84,0x96,
+0x25,0xb0,0x06,0x3c,0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24,0x2a,0x7e,0x84,0xa6,
+0x2a,0x7e,0x82,0x96,0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4,0x33,0x00,0x23,0x12,
+0x00,0x00,0x00,0x00,0x90,0x64,0x42,0x8e,0xfc,0x64,0x50,0x8e,0x04,0x00,0x04,0x24,
+0x00,0x00,0x62,0xae,0x94,0x64,0x42,0xae,0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,
+0x00,0x00,0x00,0x00,0xfc,0x64,0x44,0x8e,0x00,0x65,0x43,0x8e,0x20,0x00,0x84,0x24,
+0x3f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0xfc,0x64,0x43,0xae,
+0xfc,0x64,0xe2,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c,
+0xff,0xff,0x10,0x32,0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,
+0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,
+0x9f,0xff,0x22,0x12,0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00,
+0x93,0xff,0xc0,0x16,0x90,0x64,0xe2,0xae,0x59,0x04,0x00,0x08,0x50,0x64,0xf1,0xa2,
+0x08,0x00,0x03,0x8e,0x8d,0x04,0x00,0x08,0x82,0x11,0x03,0x00,0x14,0x00,0x03,0x8e,
+0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x14,0x00,0x42,0x28,
+0xab,0xff,0x40,0x14,0x42,0x12,0x03,0x00,0x9f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x24,0x10,0x82,0x00,0x7b,0x04,0x00,0x08,0x10,0x00,0x02,0xae,0x1f,0x00,0xc0,0x12,
+0x68,0x15,0xa2,0x26,0x54,0x64,0x43,0x90,0x43,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,
+0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x68,0x15,0xa5,0x26,0xfc,0x4a,0xa2,0x8c,0x38,0x00,0xbf,0x8f,
+0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x06,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,
+0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa2,0xac,0x50,0x64,0x43,0x90,
+0x42,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x68,0x15,0xa5,0x26,
+0xfc,0x4a,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,
+0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,
+0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x06,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,
+0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,
+0xfc,0x4a,0xa2,0xac,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf,0x38,0x00,0xbf,0xaf,
+0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,
+0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x02,0x80,0x06,0x3c,
+0xdc,0x7e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,
+0x54,0x14,0x63,0x24,0x01,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,0x21,0xb0,0x00,0x00,
+0x03,0x00,0x80,0x10,0xf7,0x00,0xa2,0x30,0xfe,0x00,0xa2,0x30,0x01,0x00,0x16,0x24,
+0xdc,0x7e,0xc2,0xa0,0xdc,0x7e,0xc3,0x90,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,
+0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x02,0x80,0x15,0x3c,0x68,0x15,0xb2,0x26,0x21,0x98,0x40,0x00,0x02,0x80,0x14,0x3c,
+0x5c,0x05,0x00,0x08,0x21,0xb8,0x40,0x02,0x00,0x00,0x02,0x96,0x00,0x00,0x00,0x00,
+0xfd,0x0f,0x42,0x28,0x67,0x00,0x40,0x10,0x00,0x20,0x02,0x3c,0x08,0x00,0x03,0x8e,
+0x00,0x00,0x00,0x00,0x25,0x18,0x62,0x00,0x82,0x11,0x03,0x00,0x01,0x00,0x42,0x30,
+0x6b,0x00,0x40,0x14,0x2a,0xb0,0x07,0x3c,0xc0,0xff,0x02,0x24,0x24,0x10,0x62,0x00,
+0x04,0x00,0x42,0x34,0x2a,0xb0,0x07,0x3c,0x08,0x00,0x02,0xae,0x1d,0x00,0xe2,0x34,
+0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24,0x02,0x00,0x03,0x24,
+0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0,0x2a,0x7e,0x84,0x96,0x25,0xb0,0x06,0x3c,
+0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24,0x2a,0x7e,0x84,0xa6,0x2a,0x7e,0x82,0x96,
+0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4,0x67,0x00,0x23,0x12,0x00,0x00,0x00,0x00,
+0x9c,0x64,0x42,0x8e,0x08,0x65,0x50,0x8e,0x05,0x00,0x04,0x24,0x00,0x00,0x62,0xae,
+0xa0,0x64,0x42,0xae,0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x08,0x65,0x44,0x8e,0x0c,0x65,0x43,0x8e,0x20,0x00,0x84,0x24,0x3f,0x00,0x62,0x24,
+0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x08,0x65,0x43,0xae,0x08,0x65,0xe2,0x8e,
+0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c,0xff,0xff,0x10,0x32,
+0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,0x00,0x00,0x00,0x00,
+0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,0x0d,0x00,0x22,0x12,
+0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00,0x66,0x00,0xc0,0x12,
+0x9c,0x64,0xe2,0xae,0x64,0x64,0xf1,0xa2,0x68,0x15,0xa2,0x26,0x9c,0x64,0x46,0x8c,
+0x08,0x65,0x45,0x8c,0x05,0x00,0x04,0x24,0x20,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa0,0xaf,0x68,0x15,0xa5,0x26,0xf8,0x63,0xa2,0x8c,0x04,0x00,0x03,0x8e,
+0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14,0x1f,0x00,0x64,0x30,
+0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,
+0x00,0x26,0x04,0x00,0x25,0x10,0x44,0x00,0x08,0x00,0x02,0xae,0x00,0x00,0x04,0x96,
+0x1c,0x64,0xa3,0x8c,0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,0x02,0x00,0x40,0x10,
+0x21,0x10,0x64,0x00,0x1c,0x64,0xa2,0xac,0x10,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,
+0x47,0x00,0x80,0x04,0x00,0x00,0x00,0x00,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,
+0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,0x96,0xff,0x40,0x10,
+0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c,0xff,0xff,0x63,0x34,
+0x24,0x10,0x43,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x44,0x00,0x82,0x11,0x03,0x00,
+0x01,0x00,0x42,0x30,0x99,0xff,0x40,0x10,0xc0,0xff,0x02,0x24,0x2a,0xb0,0x07,0x3c,
+0x1d,0x00,0xe2,0x34,0x08,0x00,0x03,0xae,0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00,
+0x01,0x00,0x04,0x24,0x02,0x00,0x03,0x24,0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0,
+0x2a,0x7e,0x84,0x96,0x25,0xb0,0x06,0x3c,0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24,
+0x2a,0x7e,0x84,0xa6,0x2a,0x7e,0x82,0x96,0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4,
+0x9b,0xff,0x23,0x16,0x00,0x00,0x00,0x00,0x2d,0x00,0xc0,0x12,0x68,0x15,0xa2,0x26,
+0x64,0x64,0x43,0x90,0x45,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0,
+0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x68,0x15,0xa5,0x26,0xfc,0x4a,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x18,0x00,0x03,0x3c,
+0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,
+0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa2,0xac,0x7e,0x05,0x00,0x08,0x58,0x64,0xf1,0xa2,
+0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,
+0x14,0x00,0x42,0x28,0xb7,0xff,0x40,0x14,0x42,0x12,0x03,0x00,0x9f,0xff,0x02,0x3c,
+0xff,0xff,0x42,0x34,0x24,0x10,0x82,0x00,0xa0,0x05,0x00,0x08,0x10,0x00,0x02,0xae,
+0x58,0x64,0x43,0x90,0x44,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,0x00,0x00,0x83,0xa0,
+0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x68,0x15,0xa5,0x26,0xfc,0x4a,0xa2,0x8c,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x18,0x00,0x03,0x3c,
+0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,
+0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa2,0xac,0xc0,0xff,0xbd,0x27,0x30,0x00,0xb6,0xaf,
+0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,
+0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0x02,0x80,0x06,0x3c,0xdc,0x7e,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x18,0x03,0x42,0x34,0x38,0x18,0x63,0x24,0x02,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,
+0x21,0xb0,0x00,0x00,0x03,0x00,0x80,0x10,0xfb,0x00,0xa2,0x30,0xfd,0x00,0xa2,0x30,
+0x01,0x00,0x16,0x24,0xdc,0x7e,0xc2,0xa0,0xdc,0x7e,0xc3,0x90,0x25,0xb0,0x02,0x3c,
+0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x02,0x80,0x15,0x3c,0x68,0x15,0xb2,0x26,0x21,0x98,0x40,0x00,
+0x02,0x80,0x14,0x3c,0x55,0x06,0x00,0x08,0x21,0xb8,0x40,0x02,0x00,0x00,0x02,0x96,
+0x00,0x00,0x00,0x00,0xfd,0x0f,0x42,0x28,0x67,0x00,0x40,0x10,0x00,0x20,0x02,0x3c,
+0x08,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x25,0x18,0x62,0x00,0x82,0x11,0x03,0x00,
+0x01,0x00,0x42,0x30,0x6b,0x00,0x40,0x14,0x2a,0xb0,0x07,0x3c,0xc0,0xff,0x02,0x24,
+0x24,0x10,0x62,0x00,0x04,0x00,0x42,0x34,0x2a,0xb0,0x07,0x3c,0x08,0x00,0x02,0xae,
+0x25,0x00,0xe2,0x34,0x04,0x00,0x43,0x24,0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24,
+0x02,0x00,0x03,0x24,0x00,0x00,0x44,0xa0,0x00,0x00,0x43,0xa0,0x2a,0x7e,0x84,0x96,
+0x25,0xb0,0x06,0x3c,0x66,0x03,0xc5,0x34,0x01,0x00,0x84,0x24,0x2a,0x7e,0x84,0xa6,
+0x2a,0x7e,0x82,0x96,0xff,0x00,0x03,0x24,0x00,0x00,0xa2,0xa4,0x67,0x00,0x23,0x12,
+0x00,0x00,0x00,0x00,0xa8,0x64,0x42,0x8e,0x14,0x65,0x50,0x8e,0x06,0x00,0x04,0x24,
+0x00,0x00,0x62,0xae,0xac,0x64,0x42,0xae,0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x14,0x65,0x44,0x8e,0x18,0x65,0x43,0x8e,0x20,0x00,0x84,0x24,
+0x3f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x14,0x65,0x43,0xae,
+0x14,0x65,0xe2,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x02,0x80,0x02,0x3c,
+0xff,0xff,0x10,0x32,0x25,0x80,0x02,0x02,0x00,0x00,0x70,0xae,0x0c,0x00,0x02,0x92,
+0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xae,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,
+0x0d,0x00,0x22,0x12,0x00,0x12,0x11,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00,
+0x66,0x00,0xc0,0x12,0xa8,0x64,0xe2,0xae,0x60,0x64,0xf1,0xa2,0x68,0x15,0xa2,0x26,
+0xa8,0x64,0x46,0x8c,0x14,0x65,0x45,0x8c,0x06,0x00,0x04,0x24,0x20,0x00,0x07,0x24,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x68,0x15,0xa5,0x26,0xf8,0x63,0xa2,0x8c,
+0x04,0x00,0x03,0x8e,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14,
+0x1f,0x00,0x64,0x30,0x08,0x00,0x02,0x8e,0xff,0xe0,0x03,0x3c,0xff,0xff,0x63,0x34,
+0x24,0x10,0x43,0x00,0x00,0x26,0x04,0x00,0x25,0x10,0x44,0x00,0x08,0x00,0x02,0xae,
+0x00,0x00,0x04,0x96,0x1c,0x64,0xa3,0x8c,0x27,0x10,0x04,0x00,0x2b,0x10,0x62,0x00,
+0x02,0x00,0x40,0x10,0x21,0x10,0x64,0x00,0x1c,0x64,0xa2,0xac,0x10,0x00,0x04,0x8e,
+0x00,0x00,0x00,0x00,0x47,0x00,0x80,0x04,0x00,0x00,0x00,0x00,0x14,0x00,0x03,0x8e,
+0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,0x3f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,
+0x96,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0xff,0xdf,0x03,0x3c,
+0xff,0xff,0x63,0x34,0x24,0x10,0x43,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x44,0x00,
+0x82,0x11,0x03,0x00,0x01,0x00,0x42,0x30,0x99,0xff,0x40,0x10,0xc0,0xff,0x02,0x24,
+0x2a,0xb0,0x07,0x3c,0x25,0x00,0xe2,0x34,0x08,0x00,0x03,0xae,0x04,0x00,0x43,0x24,
+0x0b,0x10,0x76,0x00,0x01,0x00,0x04,0x24,0x02,0x00,0x03,0x24,0x00,0x00,0x44,0xa0,
+0x00,0x00,0x43,0xa0,0x2a,0x7e,0x84,0x96,0x25,0xb0,0x06,0x3c,0x66,0x03,0xc5,0x34,
+0x01,0x00,0x84,0x24,0x2a,0x7e,0x84,0xa6,0x2a,0x7e,0x82,0x96,0xff,0x00,0x03,0x24,
+0x00,0x00,0xa2,0xa4,0x9b,0xff,0x23,0x16,0x00,0x00,0x00,0x00,0x2d,0x00,0xc0,0x12,
+0x68,0x15,0xa2,0x26,0x60,0x64,0x43,0x90,0x47,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,
+0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x68,0x15,0xa5,0x26,0xfc,0x4a,0xa2,0x8c,0x38,0x00,0xbf,0x8f,
+0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x60,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,
+0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa2,0xac,0x77,0x06,0x00,0x08,
+0x5c,0x64,0xf1,0xa2,0x14,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x42,0x12,0x03,0x00,
+0x3f,0x00,0x42,0x30,0x14,0x00,0x42,0x28,0xb7,0xff,0x40,0x14,0x42,0x12,0x03,0x00,
+0x9f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x10,0x82,0x00,0x99,0x06,0x00,0x08,
+0x10,0x00,0x02,0xae,0x5c,0x64,0x43,0x90,0x46,0x00,0xe4,0x34,0xb0,0x03,0xc5,0x34,
+0x00,0x00,0x83,0xa0,0x00,0x00,0xa3,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x68,0x15,0xa5,0x26,0xfc,0x4a,0xa2,0x8c,0x38,0x00,0xbf,0x8f,
+0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x60,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x40,0x00,0xbd,0x27,
+0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa2,0xac,0x00,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x1c,0x1c,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x05,0x3c,
+0x68,0x15,0xa5,0x24,0x04,0x4b,0xa2,0x8c,0xfc,0x4a,0xa4,0x8c,0x00,0x08,0x03,0x3c,
+0x24,0x10,0x43,0x00,0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x00,0x00,0x64,0xac,
+0x08,0x00,0xe0,0x03,0xfc,0x4a,0xa4,0xac,0x25,0xb0,0x04,0x3c,0x00,0x80,0x02,0x3c,
+0xc0,0xff,0xbd,0x27,0x18,0x03,0x83,0x34,0x78,0x1c,0x42,0x24,0x3c,0x00,0xbf,0xaf,
+0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,
+0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,
+0x18,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,0x2a,0xb0,0x03,0x3c,0x68,0x15,0x51,0x24,
+0xb0,0x03,0x93,0x34,0x2c,0x00,0x77,0x34,0x02,0x80,0x15,0x3c,0x02,0x80,0x16,0x3c,
+0x41,0x07,0x00,0x08,0x02,0x80,0x1e,0x3c,0x74,0x64,0x26,0x92,0x44,0x65,0x25,0x8e,
+0x00,0x32,0x06,0x00,0x21,0x30,0xc2,0x00,0xd8,0x64,0x26,0xae,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa0,0xaf,0x44,0x65,0x30,0x8e,0x0a,0x00,0x04,0x24,0x21,0x90,0x00,0x00,
+0x00,0x00,0x70,0xae,0x4d,0x01,0x00,0x0c,0xff,0xff,0x10,0x32,0x02,0x80,0x02,0x3c,
+0x25,0x80,0x02,0x02,0x0c,0x00,0x05,0x92,0x02,0x00,0x04,0x92,0xff,0x00,0x02,0x24,
+0xff,0x00,0xa3,0x30,0x04,0x00,0x62,0x10,0x21,0x80,0x04,0x02,0x00,0x00,0x63,0xae,
+0x01,0x00,0x12,0x24,0x74,0x64,0x25,0xa2,0x48,0xa4,0xb0,0xae,0x21,0x28,0x00,0x02,
+0x02,0x00,0xa2,0x90,0x08,0x00,0x10,0x26,0x21,0x20,0x00,0x02,0xff,0x00,0x42,0x30,
+0x00,0x00,0x62,0xae,0x03,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x7f,0x00,0x63,0x30,
+0x00,0x00,0x63,0xae,0x00,0x00,0x72,0xae,0x03,0x00,0xa2,0x90,0x44,0xa4,0xc3,0x92,
+0x02,0x00,0xa2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x42,0x30,0x2f,0x00,0x42,0x28,
+0x11,0x00,0x40,0x10,0x08,0x00,0x02,0x24,0x03,0x00,0xa2,0x90,0x00,0x00,0x00,0x00,
+0x7f,0x00,0x42,0x30,0x44,0xa4,0xc2,0xa2,0x02,0x00,0xa3,0x90,0x02,0x80,0x02,0x3c,
+0xf4,0x91,0x42,0x24,0xff,0x00,0x63,0x30,0xc0,0x18,0x03,0x00,0x21,0x18,0x62,0x00,
+0x04,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x09,0xf8,0x40,0x00,0x40,0xa4,0xc2,0xaf,
+0x21,0xa0,0x40,0x00,0x08,0x00,0x02,0x24,0x0a,0x00,0x04,0x24,0x05,0x00,0x82,0x12,
+0x00,0x01,0x07,0x24,0x01,0x00,0x02,0x24,0x02,0x00,0x03,0x24,0x01,0x00,0xe2,0xa2,
+0x01,0x00,0xe3,0xa2,0xbc,0xff,0x40,0x16,0x20,0x10,0x02,0x3c,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xfc,0x4a,0x22,0x8e,
+0x00,0x04,0x03,0x3c,0x41,0xb0,0x04,0x3c,0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xac,
+0x3c,0x00,0xbf,0x8f,0xfc,0x4a,0x22,0xae,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x40,0x00,0xbd,0x27,0xc8,0xff,0xbd,0x27,0xff,0xff,0xa8,0x30,0x02,0x80,0x02,0x3c,
+0x25,0x40,0x02,0x01,0x30,0x00,0xb6,0xaf,0x20,0x00,0xb2,0xaf,0x34,0x00,0xbf,0xaf,
+0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf,
+0x18,0x00,0xb0,0xaf,0x00,0x00,0x03,0x8d,0xff,0xff,0xd2,0x30,0x21,0xb0,0xa0,0x00,
+0x00,0xc0,0x02,0x24,0x08,0x00,0x45,0x26,0x04,0x00,0x06,0x8d,0x24,0x18,0x62,0x00,
+0xff,0x3f,0xa5,0x30,0xf0,0xff,0x02,0x3c,0x25,0x18,0x65,0x00,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x00,0x80,0x05,0x3c,0x25,0x18,0x65,0x00,0xff,0x01,0xc6,0x34,
+0x00,0x00,0x03,0xad,0x04,0x00,0x06,0xad,0x21,0x48,0x80,0x00,0xff,0xff,0xe7,0x30,
+0x18,0x00,0x12,0xa5,0x1a,0x00,0x07,0xa1,0x18,0x00,0x03,0x8d,0xff,0x7f,0x02,0x3c,
+0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x02,0x80,0x15,0x3c,0x18,0x00,0x03,0xad,
+0x68,0x15,0xa5,0x26,0xe2,0x63,0xa3,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x62,0x24,
+0xe2,0x63,0xa2,0xa0,0x18,0x00,0x04,0x8d,0xff,0x80,0x02,0x3c,0x20,0x00,0x45,0x26,
+0xff,0xff,0x42,0x34,0x7f,0x00,0x63,0x30,0xff,0xff,0xb2,0x30,0x24,0x20,0x82,0x00,
+0x00,0x1e,0x03,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x00,0x42,0x34,0x25,0x20,0x83,0x00,
+0x07,0x00,0x45,0x32,0x18,0x00,0x04,0xad,0x00,0x00,0x52,0xa4,0x03,0x00,0xa0,0x10,
+0xff,0xff,0x42,0x32,0x08,0x00,0x42,0x26,0xff,0xff,0x42,0x30,0x68,0x15,0xb4,0x26,
+0xb4,0x65,0x86,0x8e,0xb8,0x65,0x90,0x8e,0xf8,0xff,0x52,0x30,0x21,0x10,0xd2,0x00,
+0x2b,0x10,0x02,0x02,0x31,0x00,0x40,0x10,0xff,0x00,0x33,0x31,0x23,0x80,0x06,0x02,
+0x21,0x28,0xc0,0x02,0xff,0xff,0x07,0x32,0x01,0x00,0x11,0x24,0x21,0x20,0x60,0x02,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xb1,0xaf,0x23,0x18,0x50,0x02,0xff,0xff,0x72,0x30,
+0x22,0x10,0x02,0x3c,0x21,0x10,0x42,0x02,0x21,0x20,0x60,0x02,0x4d,0x01,0x00,0x0c,
+0xb4,0x65,0x82,0xae,0x21,0x28,0xd0,0x02,0x21,0x38,0x40,0x02,0x21,0x20,0x60,0x02,
+0x10,0x00,0xb1,0xaf,0x22,0x10,0x06,0x3c,0x10,0x01,0x00,0x0c,0x68,0x15,0xb1,0x26,
+0xb4,0x65,0x23,0x8e,0x25,0xb0,0x10,0x3c,0xb0,0x03,0x02,0x36,0x21,0x20,0x60,0x02,
+0x00,0x00,0x43,0xac,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,0xb4,0x65,0x25,0x8e,
+0xec,0x00,0x02,0x36,0xbd,0x00,0x04,0x36,0x00,0x00,0x45,0xac,0x00,0x00,0x83,0x90,
+0xc2,0x00,0x10,0x36,0x34,0x00,0xbf,0x8f,0x10,0x00,0x63,0x34,0x00,0x00,0x83,0xa0,
+0x30,0x00,0xb6,0x8f,0x00,0x00,0x05,0xa6,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x21,0x28,0xc0,0x02,
+0x21,0x20,0x60,0x02,0x21,0x38,0x40,0x02,0x01,0x00,0x02,0x24,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa2,0xaf,0xb4,0x65,0x83,0x8e,0x68,0x15,0xb1,0x26,0x25,0xb0,0x10,0x3c,
+0x21,0x18,0x72,0x00,0xb4,0x65,0x83,0xae,0xb4,0x65,0x23,0x8e,0xb0,0x03,0x02,0x36,
+0x21,0x20,0x60,0x02,0x00,0x00,0x43,0xac,0x4d,0x01,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xb4,0x65,0x25,0x8e,0xec,0x00,0x02,0x36,0xbd,0x00,0x04,0x36,0x00,0x00,0x45,0xac,
+0x00,0x00,0x83,0x90,0xc2,0x00,0x10,0x36,0x34,0x00,0xbf,0x8f,0x10,0x00,0x63,0x34,
+0x00,0x00,0x83,0xa0,0x30,0x00,0xb6,0x8f,0x00,0x00,0x05,0xa6,0x2c,0x00,0xb5,0x8f,
+0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,
+0x18,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,
+0xe0,0xff,0xbd,0x27,0x25,0xb0,0x02,0x3c,0x14,0x00,0xb1,0xaf,0x18,0x00,0xbf,0xaf,
+0x10,0x00,0xb0,0xaf,0xbf,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x21,0x28,0x00,0x00,
+0x08,0x00,0x06,0x24,0x04,0x00,0x63,0x2c,0x12,0x00,0x60,0x14,0x21,0x88,0x80,0x00,
+0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x02,0x80,0x03,0x3c,0x60,0x7b,0x63,0x24,0x04,0x00,0x64,0x8c,0x00,0x00,0x23,0xae,
+0x04,0x00,0x71,0xac,0x00,0x00,0x91,0xac,0x04,0x00,0x24,0xae,0x00,0x60,0x82,0x40,
+0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x08,0x00,0x82,0x94,0x02,0x80,0x04,0x3c,0x58,0x45,0x00,0x0c,
+0x25,0x20,0x44,0x00,0x00,0x60,0x10,0x40,0x01,0x00,0x01,0x36,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x08,0x00,0x25,0x8e,0x0c,0x00,0x26,0x96,0x14,0x00,0x27,0x96,
+0x95,0x07,0x00,0x0c,0x09,0x00,0x04,0x24,0x04,0x00,0x23,0x8e,0x00,0x00,0x22,0x8e,
+0x21,0x20,0x20,0x02,0x00,0x00,0x62,0xac,0x04,0x00,0x43,0xac,0x00,0x00,0x31,0xae,
+0x70,0x4f,0x00,0x0c,0x04,0x00,0x31,0xae,0x00,0x60,0x90,0x40,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0x02,0x80,0x02,0x3c,0x68,0x15,0x47,0x24,0xec,0x64,0xe3,0x90,0xff,0xff,0xa5,0x30,
+0x09,0x00,0xa3,0x10,0x21,0x20,0xc0,0x00,0x5c,0x65,0xe2,0x8c,0x00,0x00,0x00,0x00,
+0x08,0x00,0xc2,0xac,0x66,0x65,0xe3,0x94,0x0e,0x00,0x02,0x24,0x14,0x00,0xc2,0xac,
+0x30,0x08,0x00,0x08,0x0c,0x00,0xc3,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x2a,0xb0,0x04,0x3c,0x28,0x00,0x85,0x34,0x03,0x00,0x82,0x90,0x04,0x00,0x84,0x24,
+0x05,0x00,0x40,0x14,0x2b,0x18,0xa4,0x00,0xfb,0xff,0x60,0x10,0x01,0x00,0x02,0x24,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x10,0x22,0x63,0x24,0x18,0x03,0x42,0x34,
+0xd0,0xff,0xbd,0x27,0x00,0x00,0x43,0xac,0x24,0x00,0xb3,0xaf,0x28,0x00,0xbf,0xaf,
+0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x78,0x08,0x00,0x0c,0x18,0x00,0xb0,0xaf,
+0x06,0x00,0x40,0x10,0x02,0x80,0x13,0x3c,0x68,0x15,0x63,0x26,0x76,0x4b,0x62,0x90,
+0x00,0x00,0x00,0x00,0x9b,0x00,0x40,0x14,0x00,0xc0,0x04,0x34,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x2a,0xb0,0x02,0x3c,0x36,0x00,0x42,0x34,
+0x00,0x00,0x43,0x90,0x68,0x15,0x66,0x26,0xbc,0x65,0xc5,0x8c,0xc0,0x18,0x03,0x00,
+0x23,0xb0,0x04,0x3c,0xf0,0x07,0x63,0x30,0xff,0x1f,0x02,0x3c,0x21,0x18,0x64,0x00,
+0xff,0xff,0x42,0x34,0x24,0x20,0x62,0x00,0x23,0x88,0x85,0x00,0x2b,0x38,0x85,0x00,
+0x00,0x04,0x22,0x26,0x60,0x65,0xc3,0x8c,0x0b,0x88,0x47,0x00,0x01,0x04,0x25,0x2e,
+0x5c,0x65,0xc3,0xac,0xc0,0x65,0xc4,0xac,0x66,0x65,0xc0,0xa4,0x11,0x00,0xa0,0x14,
+0x65,0x65,0xc0,0xa0,0x00,0xfc,0x83,0x24,0x23,0x10,0x02,0x3c,0x0b,0x18,0x87,0x00,
+0xff,0x03,0x42,0x34,0x2b,0x10,0x43,0x00,0x33,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x23,0x88,0x83,0x00,0x2b,0x10,0x83,0x00,0xbc,0x65,0xc3,0xac,0x03,0x00,0x40,0x10,
+0x01,0x04,0x25,0x2e,0x00,0x04,0x31,0x26,0x01,0x04,0x25,0x2e,0x0e,0x00,0xa0,0x10,
+0x68,0x15,0x70,0x26,0x68,0x15,0x70,0x26,0xc0,0x65,0x03,0x8e,0xbc,0x65,0x04,0x8e,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,0x25,0x00,0x40,0x14,0x2b,0x10,0x64,0x00,
+0x51,0x00,0x40,0x14,0x25,0xb0,0x02,0x3c,0x80,0x00,0x03,0x24,0xd0,0x03,0x42,0x34,
+0x00,0x00,0x43,0xac,0x68,0x15,0x70,0x26,0xbc,0x65,0x03,0x96,0x2a,0xb0,0x02,0x3c,
+0x35,0x00,0x42,0x34,0xc2,0x88,0x03,0x00,0x00,0x00,0x51,0xa0,0x8e,0x12,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x66,0x65,0x03,0x96,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,
+0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0xfc,0x4a,0x02,0x8e,0x80,0x00,0x03,0x3c,0x41,0xb0,0x04,0x3c,
+0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xac,0x28,0x00,0xbf,0x8f,0xfc,0x4a,0x02,0xae,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,0xb8,0x08,0x00,0x08,0x00,0xfc,0x63,0x24,
+0x5c,0x65,0x05,0x8e,0x21,0x30,0x80,0x00,0xff,0xff,0x27,0x32,0x09,0x00,0x04,0x24,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x5c,0x65,0x03,0x8e,0x66,0x65,0x05,0x96,
+0xbc,0x65,0x02,0x8e,0x21,0x18,0x71,0x00,0x21,0x28,0x25,0x02,0x21,0x10,0x51,0x00,
+0x09,0x00,0x04,0x24,0xbc,0x65,0x02,0xae,0x5c,0x65,0x03,0xae,0x4d,0x01,0x00,0x0c,
+0x66,0x65,0x05,0xa6,0x68,0x15,0x70,0x26,0xbc,0x65,0x03,0x96,0x2a,0xb0,0x02,0x3c,
+0x35,0x00,0x42,0x34,0xc2,0x88,0x03,0x00,0x00,0x00,0x51,0xa0,0x8e,0x12,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x66,0x65,0x03,0x96,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,
+0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0xfc,0x4a,0x02,0x8e,0x80,0x00,0x03,0x3c,0x41,0xb0,0x04,0x3c,
+0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xac,0x28,0x00,0xbf,0x8f,0xfc,0x4a,0x02,0xae,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,0xc4,0x65,0x02,0x8e,0x5c,0x65,0x05,0x8e,
+0x21,0x30,0x80,0x00,0x23,0x88,0x44,0x00,0xff,0xff,0x27,0x32,0x09,0x00,0x04,0x24,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x5c,0x65,0x03,0x8e,0x66,0x65,0x02,0x96,
+0xc0,0x65,0x12,0x96,0x21,0x18,0x71,0x00,0x21,0x10,0x22,0x02,0x23,0x10,0x11,0x3c,
+0x5c,0x65,0x03,0xae,0x66,0x65,0x02,0xa6,0x0c,0x00,0x40,0x16,0xbc,0x65,0x11,0xae,
+0x09,0x00,0x04,0x24,0x4d,0x01,0x00,0x0c,0x68,0x15,0x70,0x26,0xfe,0x08,0x00,0x08,
+0x00,0x00,0x00,0x00,0x44,0x67,0x62,0x94,0x76,0x4b,0x60,0xa0,0xe3,0x18,0x00,0x0c,
+0x21,0x20,0x44,0x00,0x97,0x08,0x00,0x08,0x00,0x00,0x00,0x00,0x4d,0x01,0x00,0x0c,
+0x09,0x00,0x04,0x24,0x5c,0x65,0x05,0x8e,0x09,0x00,0x04,0x24,0x23,0x10,0x06,0x3c,
+0x21,0x38,0x40,0x02,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x5c,0x65,0x03,0x8e,
+0x66,0x65,0x02,0x96,0x21,0x20,0x51,0x02,0x21,0x18,0x72,0x00,0x21,0x10,0x42,0x02,
+0xbc,0x65,0x04,0xae,0x09,0x00,0x04,0x24,0x5c,0x65,0x03,0xae,0x2d,0x09,0x00,0x08,
+0x66,0x65,0x02,0xa6,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x05,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x02,0x80,0x09,0x3c,
+0x68,0x15,0x28,0x25,0xe8,0x63,0x06,0x8d,0xff,0xff,0x02,0x34,0x3f,0x00,0xc2,0x10,
+0x21,0x38,0x80,0x00,0x2b,0x10,0xc7,0x00,0x30,0x00,0x40,0x10,0x02,0x19,0x06,0x00,
+0x21,0x10,0xc7,0x00,0x23,0x10,0x43,0x00,0x10,0x00,0x46,0x24,0xe8,0x63,0x06,0xad,
+0x68,0x15,0x26,0x25,0x04,0x40,0xc4,0x8c,0xec,0x63,0x02,0xad,0xff,0xff,0x02,0x34,
+0x2f,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x87,0x00,0x1f,0x00,0x40,0x10,
+0x02,0x19,0x04,0x00,0x21,0x10,0x87,0x00,0x23,0x10,0x43,0x00,0x10,0x00,0x44,0x24,
+0x04,0x40,0xc4,0xac,0xec,0x63,0xc2,0xac,0xc0,0x10,0x05,0x00,0x21,0x10,0x45,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x68,0x15,0x23,0x25,0x80,0x10,0x02,0x00,
+0x21,0x28,0x43,0x00,0x74,0x51,0xa6,0x8c,0x00,0x21,0x07,0x00,0xff,0xff,0xc2,0x38,
+0x0a,0x30,0x82,0x00,0x2b,0x18,0xc7,0x00,0x07,0x00,0x60,0x10,0x21,0x10,0xc7,0x00,
+0x02,0x19,0x06,0x00,0x23,0x10,0x43,0x00,0x10,0x00,0x46,0x24,0x74,0x51,0xa6,0xac,
+0x08,0x00,0xe0,0x03,0x78,0x51,0xa2,0xac,0x02,0x19,0x06,0x00,0x23,0x10,0x43,0x00,
+0x74,0x51,0xa2,0xac,0x08,0x00,0xe0,0x03,0x78,0x51,0xa2,0xac,0x21,0x10,0x87,0x00,
+0x23,0x10,0x43,0x00,0x69,0x09,0x00,0x08,0x04,0x40,0xc2,0xac,0x21,0x10,0xc7,0x00,
+0x68,0x15,0x26,0x25,0x04,0x40,0xc4,0x8c,0x23,0x10,0x43,0x00,0xe8,0x63,0x02,0xad,
+0xec,0x63,0x02,0xad,0xff,0xff,0x02,0x34,0xd4,0xff,0x82,0x14,0x2b,0x10,0x87,0x00,
+0x00,0x21,0x07,0x00,0x62,0x09,0x00,0x08,0x04,0x40,0xc4,0xac,0x00,0x31,0x04,0x00,
+0x55,0x09,0x00,0x08,0xe8,0x63,0x06,0xad,0x63,0x00,0x82,0x24,0x77,0x00,0x42,0x2c,
+0x00,0x00,0x85,0x28,0x04,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0x64,0x00,0x82,0x24,
+0x64,0x00,0x03,0x24,0x0b,0x18,0x45,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0x0c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,0x04,0x00,0x42,0x28,
+0x17,0x00,0x40,0x10,0x25,0xb0,0x02,0x3c,0x24,0x08,0x42,0x34,0x00,0x00,0x43,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x02,0x63,0x30,0x16,0x00,0x60,0x14,0x01,0x00,0x02,0x24,
+0x05,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x82,0x21,0x03,0x00,0x28,0x00,0x82,0x10,
+0xf5,0xff,0x02,0x24,0x02,0x00,0x82,0x28,0x39,0x00,0x40,0x14,0x02,0x00,0x02,0x24,
+0x2e,0x00,0x82,0x10,0xe9,0xff,0x02,0x24,0x03,0x00,0x02,0x24,0x24,0x00,0x82,0x10,
+0x3e,0x00,0x63,0x30,0x05,0x00,0xc4,0x24,0x96,0x09,0x00,0x08,0x00,0x00,0x00,0x00,
+0x04,0x00,0xa4,0x90,0x00,0x00,0x00,0x00,0x42,0x20,0x04,0x00,0x96,0x09,0x00,0x08,
+0x96,0xff,0x84,0x24,0x05,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x60,0x00,0x64,0x30,
+0x42,0x21,0x04,0x00,0x0e,0x00,0x82,0x10,0x1f,0x00,0x62,0x30,0x02,0x00,0x82,0x28,
+0x1d,0x00,0x40,0x14,0x02,0x00,0x02,0x24,0x14,0x00,0x82,0x10,0x1f,0x00,0x62,0x30,
+0x03,0x00,0x02,0x24,0xeb,0xff,0x82,0x14,0x1f,0x00,0x62,0x30,0x40,0x10,0x02,0x00,
+0xdd,0xff,0x03,0x24,0x23,0x30,0x62,0x00,0xba,0x09,0x00,0x08,0x05,0x00,0xc4,0x24,
+0x40,0x10,0x02,0x00,0xf5,0xff,0x03,0x24,0xd2,0x09,0x00,0x08,0x23,0x30,0x62,0x00,
+0x3e,0x00,0x63,0x30,0x23,0x30,0x43,0x00,0xba,0x09,0x00,0x08,0x05,0x00,0xc4,0x24,
+0xdd,0xff,0x02,0x24,0xda,0x09,0x00,0x08,0x23,0x30,0x43,0x00,0x40,0x10,0x02,0x00,
+0xe9,0xff,0x03,0x24,0xd2,0x09,0x00,0x08,0x23,0x30,0x62,0x00,0x3e,0x00,0x63,0x30,
+0xda,0x09,0x00,0x08,0x23,0x30,0x43,0x00,0xd2,0xff,0x80,0x14,0x1f,0x00,0x62,0x30,
+0x40,0x10,0x02,0x00,0xf8,0xff,0x03,0x24,0xd2,0x09,0x00,0x08,0x23,0x30,0x62,0x00,
+0xcc,0xff,0x80,0x14,0x3e,0x00,0x63,0x30,0xf8,0xff,0x02,0x24,0xda,0x09,0x00,0x08,
+0x23,0x30,0x43,0x00,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,
+0x14,0x00,0xb1,0xaf,0x0c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,
+0x04,0x00,0x42,0x28,0x29,0x00,0x40,0x14,0x21,0x80,0xa0,0x00,0x00,0x00,0xa4,0x8c,
+0x02,0x80,0x11,0x3c,0x3f,0x00,0x84,0x30,0x40,0x20,0x04,0x00,0x96,0x09,0x00,0x0c,
+0x96,0xff,0x84,0x24,0x68,0x15,0x25,0x26,0xf0,0x63,0xa4,0x8c,0x21,0x18,0x40,0x00,
+0xff,0xff,0x02,0x34,0x3c,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,
+0x27,0x00,0x40,0x10,0x21,0x10,0x83,0x00,0x21,0x18,0x83,0x00,0x02,0x11,0x04,0x00,
+0x23,0x20,0x62,0x00,0x10,0x00,0x84,0x24,0xf0,0x63,0xa4,0xac,0x00,0x00,0x04,0x8e,
+0x00,0x00,0x00,0x00,0xc2,0x21,0x04,0x00,0x7e,0x00,0x84,0x30,0x96,0x09,0x00,0x0c,
+0x96,0xff,0x84,0x24,0x68,0x15,0x25,0x26,0xf4,0x63,0xa4,0x8c,0x21,0x18,0x40,0x00,
+0xff,0xff,0x02,0x34,0x25,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,
+0x0b,0x00,0x40,0x10,0x21,0x10,0x83,0x00,0x21,0x18,0x83,0x00,0x02,0x11,0x04,0x00,
+0x23,0x20,0x62,0x00,0x10,0x00,0x84,0x24,0xf4,0x63,0xa4,0xac,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x02,0x19,0x04,0x00,
+0x23,0x10,0x43,0x00,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0xf4,0x63,0xa2,0xac,
+0x02,0x19,0x04,0x00,0x23,0x10,0x43,0x00,0xf0,0x63,0xa2,0xac,0x00,0x00,0x04,0x8e,
+0x00,0x00,0x00,0x00,0xc2,0x21,0x04,0x00,0x7e,0x00,0x84,0x30,0x96,0x09,0x00,0x0c,
+0x96,0xff,0x84,0x24,0x68,0x15,0x25,0x26,0xf4,0x63,0xa4,0x8c,0x21,0x18,0x40,0x00,
+0xff,0xff,0x02,0x34,0xde,0xff,0x82,0x14,0x2b,0x10,0x83,0x00,0x00,0x21,0x03,0x00,
+0x1b,0x0a,0x00,0x08,0xf4,0x63,0xa4,0xac,0x00,0x21,0x03,0x00,0x07,0x0a,0x00,0x08,
+0xf0,0x63,0xa4,0xac,0x98,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x58,0x00,0xb6,0xaf,
+0x64,0x00,0xbf,0xaf,0x60,0x00,0xbe,0xaf,0x5c,0x00,0xb7,0xaf,0x54,0x00,0xb5,0xaf,
+0x50,0x00,0xb4,0xaf,0x4c,0x00,0xb3,0xaf,0x48,0x00,0xb2,0xaf,0x44,0x00,0xb1,0xaf,
+0x40,0x00,0xb0,0xaf,0x68,0x15,0x56,0x24,0x25,0xb0,0x03,0x3c,0x04,0x01,0x62,0x34,
+0x00,0x00,0x43,0x8c,0xa4,0x65,0xc7,0x8e,0x00,0x00,0x00,0x00,0x34,0x00,0xe3,0x10,
+0xa8,0x65,0xc3,0xae,0x2b,0x10,0x67,0x00,0xaa,0x00,0x40,0x14,0x2b,0x10,0xe3,0x00,
+0xd4,0x00,0x40,0x14,0x02,0x80,0x02,0x3c,0x68,0x15,0x44,0x24,0x78,0x65,0x83,0x94,
+0x02,0x80,0x02,0x3c,0x21,0x88,0x00,0x00,0x19,0x00,0x40,0x1a,0x25,0x98,0x62,0x00,
+0x21,0xf0,0x80,0x00,0x21,0xb8,0x80,0x00,0x01,0x00,0x15,0x24,0x21,0x20,0x00,0x00,
+0x21,0x80,0x93,0x00,0x00,0x00,0x05,0x8e,0x00,0x00,0x00,0x00,0x07,0x00,0xa0,0x10,
+0x01,0x00,0x22,0x26,0x04,0x00,0x02,0x8e,0x00,0xf0,0x03,0x3c,0x00,0x20,0x04,0x3c,
+0x24,0x10,0x43,0x00,0x1f,0x00,0x44,0x10,0x06,0x00,0x22,0x26,0xff,0xff,0x51,0x30,
+0x82,0x16,0x05,0x00,0x01,0x00,0x42,0x30,0x35,0x00,0x55,0x10,0x00,0x00,0x00,0x00,
+0x80,0x20,0x11,0x00,0x2a,0x10,0x92,0x00,0xed,0xff,0x40,0x14,0x00,0x00,0x00,0x00,
+0x38,0x00,0xa4,0x8f,0x70,0x4f,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,
+0x08,0x04,0x44,0x24,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,0xfe,0x1f,0x00,0x0c,
+0x21,0x38,0x00,0x00,0x25,0xb0,0x03,0x3c,0x04,0x01,0x62,0x34,0x00,0x00,0x43,0x8c,
+0xa4,0x65,0xc7,0x8e,0x00,0x00,0x00,0x00,0xce,0xff,0xe3,0x14,0xa8,0x65,0xc3,0xae,
+0x25,0xb0,0x03,0x3c,0x00,0x01,0x62,0x34,0x00,0x00,0x47,0xac,0x7f,0x0a,0x00,0x08,
+0xa4,0x65,0xc7,0xae,0xbc,0x4c,0xc2,0x8f,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,
+0xbc,0x4c,0xc2,0xaf,0x0c,0x00,0x04,0x8e,0x0c,0x00,0x02,0x24,0x3f,0x00,0x83,0x30,
+0x65,0x00,0x62,0x10,0x21,0x28,0xc0,0x03,0x3f,0x00,0x83,0x30,0x0d,0x00,0x02,0x24,
+0x5a,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x3f,0x00,0x83,0x30,0x0e,0x00,0x02,0x24,
+0x04,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x8e,0x73,0x0a,0x00,0x08,
+0x06,0x00,0x22,0x26,0xc8,0x4c,0xc2,0x8f,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,
+0xc8,0x4c,0xc2,0xaf,0x00,0x00,0x05,0x8e,0x73,0x0a,0x00,0x08,0x06,0x00,0x22,0x26,
+0x00,0x40,0xe2,0x8e,0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0x0f,0x00,0x42,0x30,
+0x05,0x00,0x55,0x10,0xc2,0x13,0x05,0x00,0x1e,0x00,0x42,0x30,0x21,0x10,0x51,0x00,
+0x78,0x0a,0x00,0x08,0xff,0xff,0x51,0x30,0x02,0x40,0xe2,0x92,0x00,0x00,0x00,0x00,
+0x1f,0x00,0x40,0x14,0x02,0x80,0x03,0x3c,0x04,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,
+0x02,0x14,0x03,0x00,0x0f,0x00,0x42,0x30,0x18,0x00,0x40,0x14,0x02,0x17,0x03,0x00,
+0x03,0x00,0x44,0x30,0x08,0x00,0x80,0x10,0x00,0xc0,0x02,0x3c,0x24,0x10,0x62,0x00,
+0x12,0x00,0x40,0x14,0x03,0x00,0x02,0x24,0x11,0x00,0x82,0x10,0x02,0x80,0x03,0x3c,
+0x10,0x00,0x80,0x10,0x68,0x15,0x63,0x24,0x80,0x10,0x11,0x00,0x21,0xa0,0x53,0x00,
+0xec,0xff,0x83,0x8e,0x25,0xb0,0x02,0x3c,0xd4,0x02,0x42,0x34,0x21,0x28,0x80,0x02,
+0x21,0x20,0x00,0x02,0x00,0x00,0x43,0xac,0xa0,0x09,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x21,0x20,0x40,0x00,0x4f,0x09,0x00,0x0c,0x21,0x28,0x00,0x00,0x02,0x80,0x03,0x3c,
+0x68,0x15,0x63,0x24,0x02,0x40,0x62,0x90,0x00,0x00,0x00,0x00,0x88,0x00,0x55,0x10,
+0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c,0x68,0x15,0x84,0x24,0x02,0x40,0x83,0x90,
+0x02,0x00,0x02,0x24,0x6a,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c,
+0x4c,0x00,0x63,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,
+0x08,0x00,0x55,0x10,0x02,0x80,0x04,0x3c,0x00,0x00,0x05,0x8e,0x00,0x00,0x00,0x00,
+0xc2,0x13,0x05,0x00,0x1e,0x00,0x42,0x30,0x21,0x10,0x51,0x00,0x78,0x0a,0x00,0x08,
+0xff,0xff,0x51,0x30,0xd0,0x02,0x02,0x24,0x68,0x15,0x84,0x24,0xe8,0x63,0x82,0xac,
+0x00,0x00,0x05,0x8e,0xed,0x0a,0x00,0x08,0xc2,0x13,0x05,0x00,0xc4,0x4c,0xa2,0x8c,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0xc4,0x4c,0xa2,0xac,0x0c,0x00,0x04,0x8e,
+0x9f,0x0a,0x00,0x08,0x3f,0x00,0x83,0x30,0xc0,0x4c,0xc2,0x8f,0x00,0x00,0x00,0x00,
+0x01,0x00,0x42,0x24,0xc0,0x4c,0xc2,0xaf,0x0c,0x00,0x04,0x8e,0x9b,0x0a,0x00,0x08,
+0x3f,0x00,0x83,0x30,0xac,0x65,0xc2,0x8e,0xff,0xff,0x71,0x30,0x23,0x10,0x47,0x00,
+0xff,0xff,0x50,0x30,0x21,0x18,0x11,0x02,0xff,0xff,0x72,0x30,0x54,0x4f,0x00,0x0c,
+0x21,0x20,0x40,0x02,0x7d,0x00,0x40,0x10,0x38,0x00,0xa2,0xaf,0x38,0x00,0xa3,0x8f,
+0xa4,0x65,0xc6,0x8e,0x21,0x38,0x00,0x02,0x08,0x00,0x62,0x8c,0x08,0x00,0x04,0x24,
+0x10,0x00,0xa0,0xaf,0x21,0x18,0x52,0x00,0x21,0x28,0x40,0x00,0x74,0x65,0xc3,0xae,
+0x10,0x01,0x00,0x0c,0x78,0x65,0xc2,0xae,0x4d,0x01,0x00,0x0c,0x08,0x00,0x04,0x24,
+0x78,0x65,0xc5,0x8e,0x25,0xb0,0x04,0x3c,0x24,0x10,0x02,0x3c,0x21,0x28,0xb0,0x00,
+0x00,0x01,0x90,0x34,0x00,0x00,0x02,0xae,0x21,0x38,0x20,0x02,0x08,0x00,0x04,0x24,
+0x24,0x10,0x06,0x3c,0xa4,0x65,0xc2,0xae,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0xa8,0x65,0xc3,0x8e,0x08,0x00,0x04,0x24,0x4d,0x01,0x00,0x0c,0xa4,0x65,0xc3,0xae,
+0xa4,0x65,0xc2,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xae,0x5e,0x0a,0x00,0x08,
+0x02,0x80,0x02,0x3c,0x23,0x10,0x67,0x00,0xff,0xff,0x52,0x30,0x54,0x4f,0x00,0x0c,
+0x21,0x20,0x40,0x02,0x5c,0x00,0x40,0x10,0x38,0x00,0xa2,0xaf,0x38,0x00,0xa3,0x8f,
+0xa4,0x65,0xc6,0x8e,0x08,0x00,0x04,0x24,0x08,0x00,0x62,0x8c,0x21,0x38,0x40,0x02,
+0x10,0x00,0xa0,0xaf,0x21,0x18,0x52,0x00,0x21,0x28,0x40,0x00,0x74,0x65,0xc3,0xae,
+0x10,0x01,0x00,0x0c,0x78,0x65,0xc2,0xae,0xa8,0x65,0xc3,0x8e,0x08,0x00,0x04,0x24,
+0x4d,0x01,0x00,0x0c,0xa4,0x65,0xc3,0xae,0xa4,0x65,0xc3,0x8e,0x25,0xb0,0x04,0x3c,
+0x00,0x01,0x82,0x34,0x00,0x00,0x43,0xac,0x5e,0x0a,0x00,0x08,0x02,0x80,0x02,0x3c,
+0x04,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x02,0x14,0x03,0x00,0x0f,0x00,0x42,0x30,
+0x08,0x00,0x42,0x28,0x91,0xff,0x40,0x10,0x02,0x17,0x03,0x00,0x03,0x00,0x42,0x30,
+0x8e,0xff,0x40,0x14,0x80,0x10,0x11,0x00,0x21,0xa0,0x53,0x00,0xec,0xff,0x83,0x8e,
+0x25,0xb0,0x02,0x3c,0xd4,0x02,0x42,0x34,0x21,0x28,0x80,0x02,0x21,0x20,0x00,0x02,
+0x00,0x00,0x43,0xac,0xa0,0x09,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x20,0x40,0x00,
+0x4f,0x09,0x00,0x0c,0x21,0x28,0x00,0x00,0xe4,0x0a,0x00,0x08,0x25,0xb0,0x03,0x3c,
+0x04,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x02,0x14,0x03,0x00,0x0f,0x00,0x42,0x30,
+0x08,0x00,0x42,0x28,0x06,0x00,0x40,0x10,0x00,0xc0,0x02,0x3c,0x02,0x17,0x03,0x00,
+0x03,0x00,0x42,0x30,0x0c,0x00,0x40,0x10,0x80,0x10,0x11,0x00,0x00,0xc0,0x02,0x3c,
+0x24,0x10,0x62,0x00,0x6c,0xff,0x40,0x14,0x02,0x80,0x04,0x3c,0x02,0x17,0x03,0x00,
+0x03,0x00,0x42,0x30,0x03,0x00,0x03,0x24,0x68,0xff,0x43,0x10,0x68,0x15,0x84,0x24,
+0x64,0xff,0x40,0x10,0x80,0x10,0x11,0x00,0x21,0xa0,0x53,0x00,0xec,0xff,0x83,0x8e,
+0x25,0xb0,0x02,0x3c,0xd4,0x02,0x42,0x34,0x21,0x20,0x00,0x02,0x21,0x28,0x80,0x02,
+0x00,0x00,0x43,0xac,0xa0,0x09,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x20,0x40,0x00,
+0x4f,0x09,0x00,0x0c,0x21,0x28,0x00,0x00,0x21,0x20,0x00,0x02,0xf1,0x09,0x00,0x0c,
+0x21,0x28,0x80,0x02,0xde,0x0a,0x00,0x08,0x02,0x80,0x04,0x3c,0x25,0xb0,0x04,0x3c,
+0x44,0x44,0x02,0x3c,0xbc,0x02,0x83,0x34,0x44,0x44,0x42,0x34,0x00,0x00,0x62,0xac,
+0x80,0x0a,0x00,0x08,0x02,0x80,0x02,0x3c,0xa8,0x65,0xc5,0x8e,0x25,0xb0,0x02,0x3c,
+0x00,0x01,0x43,0x34,0xbc,0x02,0x44,0x34,0x66,0x66,0x02,0x3c,0x66,0x66,0x42,0x34,
+0x00,0x00,0x65,0xac,0x00,0x00,0x82,0xac,0x7f,0x0a,0x00,0x08,0xa4,0x65,0xc5,0xae,
+0x25,0xb0,0x06,0x3c,0x00,0x80,0x02,0x3c,0x2a,0xb0,0x04,0x3c,0x18,0x03,0xc5,0x34,
+0x70,0x2e,0x42,0x24,0x00,0x00,0xa2,0xac,0x22,0x00,0x83,0x34,0x1a,0x00,0x85,0x34,
+0x00,0x00,0x67,0x94,0x06,0x00,0x84,0x34,0x00,0x00,0xa2,0x94,0x00,0x00,0x83,0x94,
+0xff,0x00,0xed,0x30,0xff,0x00,0x42,0x30,0x21,0x68,0x4d,0x00,0xff,0x00,0x63,0x30,
+0x21,0x68,0x6d,0x00,0x68,0x03,0xc2,0x34,0x02,0x80,0x07,0x3c,0x00,0x00,0x4d,0xa4,
+0x68,0x15,0xe7,0x24,0xc6,0x00,0xc3,0x34,0xca,0x00,0xc4,0x34,0x00,0x00,0x6b,0x90,
+0x60,0x4b,0xe5,0x8c,0x00,0x00,0x82,0x90,0xcc,0x00,0xc3,0x34,0x00,0x00,0x68,0x90,
+0xd4,0x00,0xc4,0x34,0x64,0x4b,0xe3,0x8c,0x00,0x00,0x8a,0x90,0x61,0x4b,0xec,0x90,
+0xff,0x00,0x04,0x3c,0x00,0x4a,0x0d,0x00,0x23,0x48,0x2d,0x01,0x24,0x28,0xa4,0x00,
+0xff,0x00,0x6d,0x31,0xff,0x00,0x42,0x30,0x21,0x10,0xa2,0x01,0x24,0x18,0x64,0x00,
+0x02,0x2c,0x05,0x00,0x69,0x4b,0xe4,0x90,0xff,0x00,0x08,0x31,0x21,0x60,0x85,0x01,
+0x02,0x1c,0x03,0x00,0x21,0x10,0x48,0x00,0xff,0x00,0x4a,0x31,0x21,0x10,0x4a,0x00,
+0x21,0x60,0x83,0x01,0x21,0x60,0x84,0x01,0xff,0xff,0x4d,0x30,0x23,0x18,0x8d,0x01,
+0xff,0xff,0x6c,0x30,0xff,0xff,0x29,0x31,0x6a,0x03,0xc2,0x34,0x6c,0x03,0xc3,0x34,
+0x1f,0x03,0xc5,0x34,0x2b,0x20,0x2c,0x01,0x6e,0x03,0xc6,0x34,0x00,0x00,0x49,0xa4,
+0x00,0x00,0x6d,0xa4,0x00,0x00,0xcc,0xa4,0x05,0x00,0x80,0x10,0x00,0x00,0x00,0x00,
+0x00,0x00,0xa3,0x90,0x80,0xff,0x02,0x24,0x25,0x18,0x62,0x00,0x00,0x00,0xa3,0xa0,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x03,0x3c,0x70,0x9a,0x64,0xac,
+0x00,0x60,0x82,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,
+0x70,0x9a,0x45,0x8c,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,
+0xac,0x2f,0x63,0x24,0x00,0x00,0x43,0xac,0x04,0x00,0x02,0x24,0x1e,0x00,0xa2,0x10,
+0x05,0x00,0xa2,0x2c,0x10,0x00,0x40,0x10,0x05,0x00,0x02,0x24,0x03,0x00,0x02,0x24,
+0x08,0x00,0xa2,0x10,0x00,0x19,0x04,0x00,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,
+0xc0,0x10,0x02,0x00,0x23,0x10,0x44,0x00,0x00,0x11,0x02,0x00,0x21,0x10,0x44,0x00,
+0x40,0x19,0x02,0x00,0xff,0xff,0x63,0x24,0xfe,0xff,0x60,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xf3,0xff,0xa2,0x10,0x06,0x00,0x02,0x24,
+0xf2,0xff,0xa2,0x14,0x80,0x10,0x04,0x00,0x40,0x11,0x04,0x00,0x23,0x10,0x44,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,0x00,0x19,0x02,0x00,0x23,0x18,0x62,0x00,
+0x01,0x0c,0x00,0x08,0x00,0x19,0x03,0x00,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,
+0xc0,0x10,0x02,0x00,0x23,0x10,0x44,0x00,0x00,0x11,0x02,0x00,0x21,0x10,0x44,0x00,
+0x01,0x0c,0x00,0x08,0x00,0x19,0x02,0x00,0x02,0x80,0x02,0x3c,0x70,0x9a,0x45,0x8c,
+0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,0x68,0x30,0x63,0x24,
+0x00,0x00,0x43,0xac,0x05,0x00,0x02,0x24,0x10,0x00,0xa2,0x10,0x06,0x00,0xa2,0x2c,
+0x09,0x00,0x40,0x14,0x04,0x00,0x02,0x24,0x06,0x00,0x02,0x24,0x0f,0x00,0xa2,0x10,
+0x00,0x11,0x04,0x00,0xff,0xff,0x84,0x24,0xfe,0xff,0x80,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xfa,0xff,0xa2,0x14,0x80,0x10,0x04,0x00,
+0x21,0x10,0x44,0x00,0x29,0x0c,0x00,0x08,0x40,0x20,0x02,0x00,0x80,0x10,0x04,0x00,
+0x21,0x10,0x44,0x00,0x29,0x0c,0x00,0x08,0x80,0x20,0x02,0x00,0x23,0x10,0x44,0x00,
+0x29,0x0c,0x00,0x08,0x40,0x20,0x02,0x00,0xff,0xff,0x85,0x30,0x21,0x30,0x00,0x00,
+0x25,0xb0,0x03,0x3c,0x2a,0xb0,0x04,0x3c,0xb4,0x00,0x63,0x34,0x01,0x00,0xa2,0x24,
+0x31,0x00,0x84,0x34,0x00,0x00,0x65,0xa0,0x00,0x00,0x85,0xa0,0xff,0xff,0x45,0x30,
+0x12,0x00,0xa0,0x10,0x01,0x00,0x03,0x24,0x28,0xb0,0x07,0x3c,0x4f,0x0c,0x00,0x08,
+0xff,0xff,0x08,0x24,0x00,0x00,0x83,0xa0,0x01,0x00,0x63,0x24,0xff,0xff,0x63,0x30,
+0x2b,0x10,0xa3,0x00,0x09,0x00,0x40,0x14,0x08,0x00,0xc6,0x24,0xf9,0xff,0x65,0x14,
+0x21,0x20,0xc7,0x00,0x01,0x00,0x63,0x24,0xff,0xff,0x63,0x30,0x2b,0x10,0xa3,0x00,
+0x00,0x00,0x88,0xa0,0xf9,0xff,0x40,0x10,0x08,0x00,0xc6,0x24,0x00,0x01,0xa2,0x2c,
+0x13,0x00,0x40,0x10,0x21,0x18,0xa0,0x00,0xff,0x00,0x08,0x24,0x28,0xb0,0x07,0x3c,
+0x63,0x0c,0x00,0x08,0xff,0xff,0x09,0x24,0xff,0xff,0x43,0x30,0x00,0x00,0xa2,0xa0,
+0x00,0x01,0x62,0x2c,0x0a,0x00,0x40,0x10,0x08,0x00,0xc6,0x24,0x01,0x00,0x62,0x24,
+0xf9,0xff,0x68,0x14,0x21,0x28,0xc7,0x00,0x00,0x01,0x02,0x24,0xff,0xff,0x43,0x30,
+0x00,0x01,0x62,0x2c,0x00,0x00,0xa9,0xa0,0xf8,0xff,0x40,0x14,0x08,0x00,0xc6,0x24,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xd0,0xff,0xbd,0x27,0x28,0x00,0xbf,0xaf,
+0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x12,0x40,0x01,0x00,0x41,0x36,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x10,0x3c,0x42,0x00,0x15,0x36,
+0xff,0xff,0x02,0x24,0x00,0x00,0xa2,0xa2,0xd8,0x00,0x05,0x36,0x40,0x00,0x11,0x36,
+0xa8,0x00,0x14,0x36,0xa0,0x00,0x13,0x36,0x00,0x10,0x03,0x24,0xa4,0x00,0x10,0x36,
+0x00,0x80,0x02,0x3c,0x00,0x00,0x23,0xa6,0x00,0x00,0xa0,0xa0,0x00,0x00,0x60,0xae,
+0x00,0x00,0x00,0xae,0x00,0x00,0x82,0xae,0x00,0x00,0xa3,0x90,0x80,0xff,0x02,0x24,
+0xfd,0x00,0x04,0x24,0x25,0x18,0x62,0x00,0xfc,0x17,0x02,0x24,0x00,0x00,0xa3,0xa0,
+0x00,0x00,0x22,0xa6,0x3a,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,
+0x68,0x15,0x42,0x24,0x68,0x4b,0x45,0x8c,0x60,0x4b,0x43,0x8c,0x64,0x4b,0x44,0x8c,
+0xfc,0x37,0x02,0x24,0x00,0x00,0x63,0xae,0x00,0x00,0x04,0xae,0x00,0x00,0x85,0xae,
+0x00,0x00,0x22,0xa6,0x00,0x00,0xa0,0xa2,0x00,0x60,0x92,0x40,0x28,0x00,0xbf,0x8f,
+0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,
+0xc8,0xff,0xbd,0x27,0x34,0x00,0xbf,0xaf,0x30,0x00,0xbe,0xaf,0x2c,0x00,0xb7,0xaf,
+0x28,0x00,0xb6,0xaf,0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,
+0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x16,0x40,
+0x01,0x00,0xc1,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x11,0x3c,
+0x40,0x00,0x30,0x36,0xff,0xff,0x02,0x24,0x42,0x00,0x3e,0x36,0xfc,0x77,0x13,0x24,
+0x00,0x00,0xc2,0xa3,0xfc,0x57,0x12,0x24,0x00,0x00,0x13,0xa6,0x1a,0x0c,0x00,0x0c,
+0x32,0x00,0x04,0x24,0xfc,0x37,0x17,0x24,0x32,0x00,0x04,0x24,0x00,0x00,0x12,0xa6,
+0x1a,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x24,0x00,0x00,0x17,0xa6,
+0x1a,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0xa6,0x1a,0x0c,0x00,0x0c,
+0x32,0x00,0x04,0x24,0x32,0x00,0x04,0x24,0x00,0x00,0x12,0xa6,0x1a,0x0c,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x96,0x24,0xfa,0x03,0x24,0xd8,0x00,0x25,0x36,
+0x24,0x10,0x43,0x00,0x00,0x00,0x02,0xa6,0x00,0x00,0xa3,0x90,0xa0,0x00,0x34,0x36,
+0xa4,0x00,0x35,0x36,0xa8,0x00,0x33,0x36,0x7f,0x00,0x63,0x30,0x00,0x80,0x02,0x3c,
+0x00,0x00,0xa3,0xa0,0x00,0x00,0x80,0xae,0x00,0x00,0xa0,0xae,0x00,0x00,0x62,0xae,
+0x00,0x00,0xa3,0x90,0x80,0xff,0x02,0x24,0xfd,0x00,0x04,0x24,0x25,0x18,0x62,0x00,
+0x00,0x00,0xa3,0xa0,0x00,0x00,0x12,0xa6,0x3a,0x0c,0x00,0x0c,0x56,0x01,0x31,0x36,
+0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24,0x68,0x4b,0x45,0x8c,0x60,0x4b,0x43,0x8c,
+0x64,0x4b,0x44,0x8c,0xff,0x0f,0x02,0x24,0x00,0x00,0x83,0xae,0x00,0x00,0xa4,0xae,
+0x00,0x00,0x65,0xae,0x00,0x00,0x17,0xa6,0x00,0x00,0x22,0xa6,0x00,0x00,0xc0,0xa3,
+0x00,0x60,0x96,0x40,0x34,0x00,0xbf,0x8f,0x30,0x00,0xbe,0x8f,0x2c,0x00,0xb7,0x8f,
+0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x38,0x00,0xbd,0x27,0xd0,0xff,0xbd,0x27,0x2c,0x00,0xbf,0xaf,0x28,0x00,0xb6,0xaf,
+0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x10,0x3c,0x40,0x00,0x05,0x36,
+0x00,0x00,0xa2,0x94,0xaf,0xff,0x03,0x24,0xa8,0x00,0x13,0x36,0x24,0x10,0x43,0x00,
+0x00,0x00,0xa2,0xa4,0xa0,0x00,0x12,0x36,0xa4,0x00,0x10,0x36,0x00,0x00,0x55,0x8e,
+0x00,0x00,0x16,0x8e,0x00,0x00,0x71,0x8e,0x00,0x80,0x14,0x3c,0xfc,0x37,0x02,0x24,
+0x00,0x00,0x40,0xae,0xfd,0x00,0x04,0x24,0x00,0x00,0x00,0xae,0x21,0x88,0x34,0x02,
+0x00,0x00,0x74,0xae,0x00,0x00,0xa2,0xa4,0x3a,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x55,0xae,0x00,0x00,0x16,0xae,0x00,0x00,0x71,0xae,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb6,0x8f,
+0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x25,0xb0,0x04,0x3c,0x40,0x00,0x84,0x34,0x00,0x00,0x82,0x94,0xd8,0xfd,0x03,0x24,
+0x24,0x10,0x43,0x00,0xfc,0x37,0x03,0x24,0x00,0x00,0x82,0xa4,0x00,0x00,0x83,0xa4,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x8c,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xff,0xff,0xc6,0x30,0x10,0x00,0x02,0x24,0x0c,0x00,0xc2,0x10,0x11,0x00,0xc3,0x28,
+0x06,0x00,0x60,0x10,0x20,0x00,0x02,0x24,0x08,0x00,0x02,0x24,0x0d,0x00,0xc2,0x10,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x06,0x00,0xc2,0x10,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xa4,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x25,0xb0,0x02,0x3c,0x0a,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0xff,0xff,0xa5,0x24,
+0x00,0x2c,0x05,0x00,0xfd,0x00,0x63,0x30,0x03,0x2c,0x05,0x00,0xff,0xff,0x87,0x30,
+0x00,0x00,0x43,0xa0,0x1a,0x00,0xa0,0x04,0x00,0x00,0x00,0x00,0x21,0x30,0x40,0x00,
+0x07,0x10,0xa7,0x00,0x01,0x00,0x42,0x30,0xfd,0x00,0x64,0x30,0x00,0x00,0x42,0x38,
+0x02,0x00,0x63,0x34,0x0a,0x18,0x82,0x00,0x00,0x00,0xc3,0xa0,0x04,0x00,0x63,0x34,
+0x00,0x00,0xc3,0xa0,0x09,0x00,0x02,0x24,0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04,
+0xff,0xff,0x42,0x24,0xfb,0x00,0x63,0x30,0x00,0x00,0xc3,0xa0,0x04,0x00,0x02,0x24,
+0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0xff,0xff,0xa2,0x24,
+0x00,0x2c,0x02,0x00,0x03,0x2c,0x05,0x00,0xea,0xff,0xa1,0x04,0x07,0x10,0xa7,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0x0a,0x00,0x42,0x34,
+0x00,0x00,0x43,0x90,0xff,0xff,0x84,0x24,0x00,0x24,0x04,0x00,0x03,0x24,0x04,0x00,
+0xff,0x00,0x65,0x30,0x1d,0x00,0x80,0x04,0x21,0x38,0x00,0x00,0x21,0x30,0x40,0x00,
+0x01,0x00,0x08,0x24,0x04,0x00,0xa5,0x34,0x00,0x00,0xc5,0xa0,0x00,0x00,0xc2,0x90,
+0x00,0x00,0x00,0x00,0xff,0x00,0x45,0x30,0x01,0x00,0xa3,0x30,0x05,0x00,0x60,0x10,
+0x04,0x00,0x02,0x24,0x04,0x10,0x88,0x00,0x25,0x10,0x47,0x00,0xff,0xff,0x47,0x30,
+0x04,0x00,0x02,0x24,0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,
+0xfb,0x00,0xa5,0x30,0x00,0x00,0xc5,0xa0,0x09,0x00,0x02,0x24,0xff,0xff,0x42,0x24,
+0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0xff,0xff,0x82,0x24,0x00,0x24,0x02,0x00,
+0x03,0x24,0x04,0x00,0xe7,0xff,0x81,0x04,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0xe0,0x00,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x25,0xb0,0x10,0x3c,
+0x0a,0x00,0x10,0x36,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x00,0x00,0x02,0x92,
+0xff,0xff,0x91,0x30,0x03,0x00,0x05,0x24,0xc0,0x00,0x42,0x30,0x80,0x00,0x43,0x34,
+0x00,0x00,0x03,0xa2,0x04,0x00,0x63,0x34,0x00,0x00,0x03,0xa2,0xfb,0x00,0x63,0x30,
+0x00,0x00,0x03,0xa2,0x08,0x00,0x63,0x34,0x00,0x00,0x03,0xa2,0x04,0x00,0x63,0x34,
+0x00,0x00,0x03,0xa2,0xfb,0x00,0x63,0x30,0x00,0x00,0x03,0xa2,0x64,0x0d,0x00,0x0c,
+0x06,0x00,0x04,0x24,0x42,0x20,0x11,0x00,0x64,0x0d,0x00,0x0c,0x06,0x00,0x05,0x24,
+0x8a,0x0d,0x00,0x0c,0x10,0x00,0x04,0x24,0x00,0x00,0x03,0x92,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0xc0,0x00,0x63,0x30,0x00,0x00,0x03,0xa2,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,
+0xff,0xff,0xb1,0x30,0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0xaf,
+0x21,0x90,0xc0,0x00,0x0a,0x00,0x20,0x12,0xff,0xff,0x90,0x30,0xb1,0x0d,0x00,0x0c,
+0x21,0x20,0x00,0x02,0xfe,0xff,0x23,0x26,0x02,0x00,0x04,0x26,0x00,0x00,0x42,0xa6,
+0xff,0xff,0x71,0x30,0xff,0xff,0x90,0x30,0xf8,0xff,0x20,0x16,0x02,0x00,0x52,0x26,
+0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x25,0xb0,0x03,0x3c,0x0a,0x00,0x68,0x34,
+0x00,0x00,0x02,0x91,0xff,0xff,0xa5,0x30,0xff,0x00,0x84,0x30,0x1f,0x00,0xa0,0x10,
+0xff,0x00,0x47,0x30,0x21,0x48,0x00,0x01,0x0c,0x00,0x6c,0x34,0x0b,0x00,0x6b,0x34,
+0xc0,0xff,0x0a,0x24,0x21,0x68,0x00,0x01,0x25,0x10,0xea,0x00,0xff,0x00,0x47,0x30,
+0x00,0x00,0x64,0xa1,0x00,0x00,0x27,0xa1,0x00,0x00,0x22,0x91,0x00,0x00,0x00,0x00,
+0xff,0x00,0x47,0x30,0xc0,0x00,0xe3,0x30,0x08,0x00,0x60,0x10,0x00,0x00,0x00,0x00,
+0x21,0x40,0xa0,0x01,0x00,0x00,0x02,0x91,0x00,0x00,0x00,0x00,0xff,0x00,0x47,0x30,
+0xc0,0x00,0xe3,0x30,0xfb,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x8d,
+0xfc,0xff,0xa3,0x24,0x04,0x00,0x84,0x24,0xff,0xff,0x65,0x30,0x00,0x00,0xc2,0xac,
+0xff,0x00,0x84,0x30,0xe8,0xff,0xa0,0x14,0x04,0x00,0xc6,0x24,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0xff,0x00,0x84,0x30,0x21,0x68,0xe0,0x00,0xff,0xff,0xa5,0x30,
+0xc0,0x50,0x04,0x00,0x00,0x60,0x0c,0x40,0x01,0x00,0x81,0x35,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x00,0x00,0xc2,0x90,0x01,0x00,0xc3,0x90,0x25,0xb0,0x07,0x3c,
+0x00,0x14,0x02,0x00,0x25,0x28,0xa2,0x00,0x00,0x1e,0x03,0x00,0x01,0x80,0x08,0x3c,
+0x25,0x20,0xa3,0x00,0x40,0x02,0xe9,0x34,0x25,0x18,0x48,0x01,0x44,0x02,0xe7,0x34,
+0x00,0x00,0xe4,0xac,0x00,0x00,0x23,0xad,0x03,0x00,0xc2,0x90,0x02,0x00,0xc4,0x90,
+0x04,0x00,0xc3,0x90,0x05,0x00,0xc5,0x90,0x00,0x12,0x02,0x00,0x25,0x20,0x82,0x00,
+0x00,0x1c,0x03,0x00,0x01,0x00,0x4a,0x25,0x25,0x20,0x83,0x00,0x00,0x2e,0x05,0x00,
+0x25,0x40,0x48,0x01,0x25,0x20,0x85,0x00,0x00,0x00,0xe4,0xac,0x01,0x00,0x4a,0x25,
+0x00,0x00,0x28,0xad,0x01,0x80,0x0b,0x3c,0x21,0x40,0x00,0x00,0x21,0x10,0xa8,0x01,
+0x01,0x00,0x43,0x90,0x00,0x00,0x45,0x90,0x02,0x00,0x44,0x90,0x03,0x00,0x46,0x90,
+0x00,0x1a,0x03,0x00,0x25,0x28,0xa3,0x00,0x00,0x24,0x04,0x00,0x25,0x28,0xa4,0x00,
+0x00,0x36,0x06,0x00,0x04,0x00,0x08,0x25,0x25,0x10,0x4b,0x01,0x25,0x20,0xa6,0x00,
+0x10,0x00,0x03,0x2d,0x00,0x00,0xe4,0xac,0x01,0x00,0x4a,0x25,0x00,0x00,0x22,0xad,
+0xee,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x00,0x60,0x8c,0x40,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0xff,0xff,0x84,0x30,0x42,0xb0,0x08,0x3c,0x80,0x10,0x04,0x00,
+0x21,0x10,0x48,0x00,0x04,0x00,0x46,0xac,0x00,0x00,0x07,0x91,0x40,0x18,0x04,0x00,
+0x03,0x00,0x06,0x24,0xff,0x00,0xe7,0x30,0x04,0x30,0x66,0x00,0x01,0x00,0x02,0x24,
+0x04,0x10,0x62,0x00,0x25,0x30,0xc7,0x00,0xff,0xff,0xa5,0x30,0x25,0x10,0x47,0x00,
+0x02,0x00,0xa0,0x14,0xff,0x00,0xc7,0x30,0xff,0x00,0x47,0x30,0x42,0xb0,0x02,0x3c,
+0x00,0x00,0x47,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x42,0xb0,0x02,0x3c,
+0x03,0x00,0x47,0x34,0x00,0x00,0xe3,0x90,0xff,0x00,0x84,0x30,0x04,0x00,0x84,0x24,
+0xff,0x00,0x65,0x30,0x01,0x00,0x02,0x24,0x04,0x30,0x82,0x00,0x07,0x18,0x85,0x00,
+0x25,0xb0,0x02,0x3c,0xe8,0x03,0x42,0x34,0x01,0x00,0x63,0x30,0x21,0x20,0xc0,0x00,
+0x00,0x00,0x45,0xa0,0x02,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0xa0,
+0x08,0x00,0xe0,0x03,0x24,0x10,0x85,0x00,0x00,0x60,0x03,0x40,0x01,0x00,0x61,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,0x74,0x9a,0x42,0x24,
+0x04,0x00,0x45,0x8c,0x00,0x00,0x82,0xac,0x04,0x00,0x44,0xac,0x00,0x00,0xa4,0xac,
+0x04,0x00,0x85,0xac,0x00,0x60,0x83,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x14,0x00,0x83,0x90,0x01,0x00,0x02,0x24,0x08,0x00,0x86,0xac,0x18,0x00,0x85,0xac,
+0x00,0x00,0x84,0xac,0x03,0x00,0x62,0x10,0x04,0x00,0x84,0xac,0x7a,0x0e,0x00,0x08,
+0x0c,0x00,0x80,0xac,0x0c,0x00,0x82,0x8c,0x7a,0x0e,0x00,0x08,0x10,0x00,0x82,0xac,
+0x00,0x60,0x03,0x40,0x01,0x00,0x61,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x04,0x00,0x85,0x8c,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xac,
+0x04,0x00,0x45,0xac,0x00,0x00,0x84,0xac,0x04,0x00,0x84,0xac,0x00,0x60,0x83,0x40,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xd0,0xff,0xbd,0x27,0x28,0x00,0xb6,0xaf,
+0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x14,0x00,0xb1,0xaf,0x2c,0x00,0xbf,0xaf,
+0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x80,0x16,0x3c,
+0x02,0x80,0x14,0x3c,0x02,0x80,0x11,0x3c,0x02,0x80,0x15,0x3c,0x24,0x7e,0x24,0x8e,
+0x25,0xb0,0x02,0x3c,0x88,0x3a,0xc3,0x26,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x74,0x9a,0x90,0x8e,0x18,0x00,0x80,0x10,0x74,0x9a,0x82,0x26,0x15,0x00,0x02,0x12,
+0x00,0x00,0x00,0x00,0x21,0x98,0x40,0x00,0x01,0x00,0x12,0x24,0x14,0x00,0x02,0x92,
+0x00,0x00,0x00,0x00,0x1d,0x00,0x52,0x10,0x00,0x00,0x00,0x00,0x09,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0x0c,0x00,0x03,0x8e,0x24,0x7e,0x22,0x8e,0x00,0x00,0x00,0x00,
+0x23,0x20,0x62,0x00,0x2b,0x10,0x43,0x00,0x0e,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x0c,0x00,0x04,0xae,0x00,0x00,0x10,0x8e,0x00,0x00,0x00,0x00,0xef,0xff,0x13,0x16,
+0x00,0x00,0x00,0x00,0x24,0x7e,0x20,0xae,0x08,0x0c,0xa4,0x26,0x21,0x28,0x00,0x00,
+0x21,0x30,0x00,0x00,0xfe,0x1f,0x00,0x0c,0x21,0x38,0x00,0x00,0xaf,0x0e,0x00,0x08,
+0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0x18,0x00,0x04,0x8e,0x09,0xf8,0x40,0x00,
+0x00,0x00,0x00,0x00,0xc9,0x0e,0x00,0x08,0x0c,0x00,0x02,0xae,0x0c,0x00,0x03,0x8e,
+0x24,0x7e,0x22,0x8e,0x00,0x00,0x00,0x00,0x23,0x20,0x62,0x00,0x2b,0x10,0x43,0x00,
+0xe7,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0x02,0x8e,0x18,0x00,0x04,0x8e,
+0x09,0xf8,0x40,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x03,0x8e,0xc9,0x0e,0x00,0x08,
+0x0c,0x00,0x03,0xae,0x02,0x80,0x02,0x3c,0x60,0x79,0x43,0x8c,0xff,0x00,0xa5,0x30,
+0x25,0xb0,0x02,0x3c,0x42,0x18,0x03,0x00,0x21,0x30,0xa2,0x00,0x01,0x00,0x63,0x30,
+0x01,0x00,0x02,0x24,0x10,0x00,0xa7,0x2c,0x04,0x00,0x62,0x10,0xff,0x00,0x84,0x30,
+0x60,0x01,0xc4,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c,
+0x10,0x00,0xa2,0x34,0xfa,0xff,0xe0,0x10,0x21,0x40,0x43,0x00,0x60,0x01,0xc4,0xa0,
+0x60,0x01,0x04,0xa1,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xff,0x00,0x84,0x30,
+0x01,0x00,0x03,0x24,0x10,0x00,0x02,0x3c,0x04,0x18,0x83,0x00,0xf0,0x70,0x42,0x34,
+0x15,0x00,0x84,0x2c,0x06,0x00,0x80,0x10,0x24,0x28,0x62,0x00,0x0f,0x00,0x63,0x30,
+0x04,0x00,0xa0,0x14,0x01,0x00,0x02,0x24,0x02,0x00,0x60,0x14,0x02,0x00,0x02,0x24,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xff,0x00,0xa5,0x30,
+0x04,0x00,0xa2,0x2c,0x14,0x00,0x40,0x10,0xff,0x00,0x84,0x30,0x02,0x80,0x03,0x3c,
+0xee,0x7d,0x62,0x90,0x00,0x00,0x00,0x00,0xef,0xff,0x42,0x24,0xff,0x00,0x42,0x30,
+0x02,0x00,0x42,0x2c,0x0e,0x00,0x40,0x10,0x02,0x00,0x03,0x24,0x24,0x00,0x83,0x10,
+0x0f,0x10,0x02,0x3c,0x03,0x00,0x82,0x28,0x14,0x00,0x40,0x10,0x03,0x00,0x02,0x24,
+0x01,0x00,0x02,0x24,0x2f,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0xff,0x1f,0x02,0x3c,
+0x08,0x00,0xe0,0x03,0xff,0xff,0x42,0x34,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x35,0x00,0x83,0x10,0x0f,0x1f,0x02,0x3c,0x03,0x00,0x82,0x28,0x16,0x00,0x40,0x10,
+0x03,0x00,0x02,0x24,0x01,0x00,0x02,0x24,0xf4,0xff,0x82,0x14,0x00,0x00,0x00,0x00,
+0x0f,0x1f,0x02,0x3c,0x08,0x00,0xe0,0x03,0x00,0x80,0x42,0x34,0xf0,0xff,0x82,0x14,
+0xff,0x1f,0x02,0x3c,0x01,0x00,0x02,0x24,0x29,0x00,0xa2,0x10,0x0f,0x10,0x02,0x3c,
+0x02,0x00,0xa2,0x28,0x1f,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x28,0x00,0xa3,0x10,
+0x00,0x00,0x00,0x00,0xe5,0xff,0xa4,0x14,0x00,0x00,0x00,0x00,0x0f,0x10,0x02,0x3c,
+0x08,0x00,0xe0,0x03,0x00,0xf0,0x42,0x34,0xe1,0xff,0x82,0x14,0xff,0x1f,0x02,0x3c,
+0x01,0x00,0x02,0x24,0x1c,0x00,0xa2,0x10,0x0f,0x00,0x02,0x3c,0x02,0x00,0xa2,0x28,
+0x0b,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x1c,0x00,0xa3,0x10,0x00,0x00,0x00,0x00,
+0xd6,0xff,0xa4,0x14,0x00,0x00,0x00,0x00,0x0f,0x00,0x02,0x3c,0x08,0x00,0xe0,0x03,
+0x00,0xf0,0x42,0x34,0x0f,0x10,0x02,0x3c,0x08,0x00,0xe0,0x03,0x00,0x80,0x42,0x34,
+0xce,0xff,0xa0,0x14,0x00,0x00,0x00,0x00,0x0f,0x00,0x02,0x3c,0x08,0x00,0xe0,0x03,
+0x15,0xf0,0x42,0x34,0xc9,0xff,0xa0,0x14,0x00,0x00,0x00,0x00,0x0f,0x10,0x02,0x3c,
+0x08,0x00,0xe0,0x03,0x15,0xf0,0x42,0x34,0x08,0x00,0xe0,0x03,0x00,0xf0,0x42,0x34,
+0x08,0x00,0xe0,0x03,0x10,0xf0,0x42,0x34,0x08,0x00,0xe0,0x03,0x10,0xf0,0x42,0x34,
+0x0f,0x10,0x02,0x3c,0x08,0x00,0xe0,0x03,0x05,0xf0,0x42,0x34,0x0f,0x00,0x02,0x3c,
+0x08,0x00,0xe0,0x03,0x05,0xf0,0x42,0x34,0xc0,0x40,0x04,0x00,0x21,0x18,0x04,0x01,
+0x80,0x18,0x03,0x00,0x21,0x18,0x64,0x00,0x02,0x80,0x02,0x3c,0x80,0x18,0x03,0x00,
+0x68,0x15,0x42,0x24,0x21,0x18,0x62,0x00,0x80,0x51,0x66,0x8c,0x21,0x38,0x60,0x00,
+0x86,0x51,0x60,0xa0,0x87,0x51,0x60,0xa0,0x1c,0x00,0x05,0x24,0x7b,0x0f,0x00,0x08,
+0x01,0x00,0x03,0x24,0x08,0x00,0xa0,0x04,0x21,0x10,0x04,0x01,0x04,0x10,0xa3,0x00,
+0x24,0x10,0xc2,0x00,0xfb,0xff,0x40,0x10,0xff,0xff,0xa5,0x24,0x01,0x00,0xa5,0x24,
+0x86,0x51,0xe5,0xa0,0x21,0x10,0x04,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,
+0x02,0x80,0x03,0x3c,0x80,0x10,0x02,0x00,0x68,0x15,0x63,0x24,0x21,0x18,0x43,0x00,
+0x80,0x51,0x66,0x8c,0x21,0x28,0x00,0x00,0x8f,0x0f,0x00,0x08,0x01,0x00,0x07,0x24,
+0x1d,0x00,0xa2,0x28,0x08,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x04,0x10,0xa7,0x00,
+0x24,0x10,0xc2,0x00,0xfa,0xff,0x40,0x10,0x01,0x00,0xa5,0x24,0xff,0xff,0xa5,0x24,
+0x08,0x00,0xe0,0x03,0x87,0x51,0x65,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xc8,0xff,0xbd,0x27,0x28,0x00,0xb6,0xaf,0x02,0x80,0x16,0x3c,0x30,0x00,0xbe,0xaf,
+0x2c,0x00,0xb7,0xaf,0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x18,0x00,0xb2,0xaf,
+0x14,0x00,0xb1,0xaf,0x01,0x00,0x15,0x24,0x21,0x88,0x00,0x00,0x68,0x15,0xde,0x26,
+0x21,0xa0,0x00,0x00,0x21,0x90,0x00,0x00,0x25,0xb0,0x17,0x3c,0x34,0x00,0xbf,0xaf,
+0x1c,0x00,0xb3,0xaf,0xb0,0x0f,0x00,0x08,0x10,0x00,0xb0,0xaf,0x01,0x00,0x31,0x26,
+0x20,0x00,0x22,0x2e,0x94,0x00,0x52,0x26,0x2e,0x00,0x40,0x10,0x94,0x00,0x94,0x26,
+0x68,0x15,0xc2,0x26,0x21,0x30,0x42,0x02,0x84,0x51,0xc5,0x8c,0x00,0x00,0x00,0x00,
+0x02,0x13,0x05,0x00,0x01,0x00,0x42,0x30,0xf4,0xff,0x55,0x14,0x42,0x1a,0x05,0x00,
+0x74,0x51,0xc2,0x8c,0x07,0x00,0x64,0x30,0x02,0x11,0x02,0x00,0x7f,0x00,0x43,0x30,
+0x2d,0x00,0x95,0x10,0x07,0x00,0xb3,0x30,0x02,0x00,0x82,0x28,0x3a,0x00,0x40,0x14,
+0x02,0x00,0x02,0x24,0x30,0x00,0x82,0x10,0x03,0x00,0x02,0x24,0x3c,0x00,0x82,0x10,
+0x1a,0x00,0x62,0x2c,0x21,0x80,0x9e,0x02,0x84,0x51,0x02,0x8e,0x04,0x00,0x63,0x2e,
+0x42,0x12,0x02,0x00,0x0a,0x00,0x60,0x10,0x07,0x00,0x44,0x30,0x0f,0x0f,0x00,0x0c,
+0x21,0x28,0x60,0x02,0x80,0x20,0x13,0x00,0x7c,0x51,0x02,0xae,0x21,0x20,0x97,0x00,
+0x84,0x01,0x83,0x8c,0x00,0x00,0x00,0x00,0x24,0x18,0x62,0x00,0x80,0x51,0x03,0xae,
+0x6a,0x0f,0x00,0x0c,0x21,0x20,0x20,0x02,0x21,0x10,0x37,0x02,0x01,0x00,0x31,0x26,
+0x60,0x01,0x43,0x90,0x20,0x00,0x22,0x2e,0x94,0x00,0x52,0x26,0xd4,0xff,0x40,0x14,
+0x94,0x00,0x94,0x26,0x34,0x00,0xbf,0x8f,0x30,0x00,0xbe,0x8f,0x2c,0x00,0xb7,0x8f,
+0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x32,0x00,0x62,0x2c,0xda,0xff,0x40,0x10,
+0x21,0x80,0x9e,0x02,0xff,0xf1,0x03,0x24,0x24,0x10,0xa3,0x00,0x00,0x04,0x42,0x34,
+0xc5,0x0f,0x00,0x08,0x84,0x51,0xc2,0xac,0x38,0x00,0x62,0x2c,0x12,0x00,0x40,0x14,
+0x14,0x00,0x62,0x2c,0xff,0xf1,0x03,0x24,0x24,0x10,0xa3,0x00,0x00,0x02,0x42,0x34,
+0xc5,0x0f,0x00,0x08,0x84,0x51,0xc2,0xac,0xcb,0xff,0x80,0x14,0x21,0x80,0x9e,0x02,
+0xff,0xf1,0x03,0x24,0x24,0x10,0xa3,0x00,0xc6,0x0f,0x00,0x08,0x84,0x51,0xc2,0xac,
+0xc5,0xff,0x40,0x14,0x21,0x80,0x9e,0x02,0xff,0xf1,0x03,0x24,0x24,0x10,0xa3,0x00,
+0xf0,0x0f,0x00,0x08,0x00,0x04,0x42,0x34,0xbf,0xff,0x40,0x10,0x21,0x80,0x9e,0x02,
+0xff,0xf1,0x03,0x24,0x24,0x10,0xa3,0x00,0x00,0x06,0x42,0x34,0xc6,0x0f,0x00,0x08,
+0x84,0x51,0xc2,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xd8,0xff,0xbd,0x27,
+0x10,0x00,0xb0,0xaf,0xc0,0x80,0x04,0x00,0x21,0x80,0x04,0x02,0x80,0x80,0x10,0x00,
+0x21,0x80,0x04,0x02,0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24,0x80,0x80,0x10,0x00,
+0x20,0x00,0xbf,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x21,0x80,0x02,0x02,
+0x14,0x00,0xb1,0xaf,0x84,0x51,0x03,0x8e,0x25,0xb0,0x02,0x3c,0x80,0x01,0x53,0x34,
+0x07,0x00,0x63,0x30,0x80,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0x00,0x00,0x71,0x92,
+0x7c,0x51,0x05,0x8e,0x84,0x01,0x62,0x8c,0x21,0x90,0x80,0x00,0xff,0x00,0x31,0x32,
+0x24,0x10,0x45,0x00,0x6a,0x0f,0x00,0x0c,0x80,0x51,0x02,0xae,0x86,0x51,0x04,0x92,
+0xe9,0x0e,0x00,0x0c,0xff,0x00,0x45,0x32,0x86,0x51,0x04,0x92,0xff,0x0e,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,0x0a,0x88,0x62,0x00,
+0x00,0x00,0x71,0xa2,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,
+0xff,0xff,0x84,0x30,0x00,0x02,0x82,0x30,0x07,0x00,0x03,0x24,0x0d,0x00,0x40,0x14,
+0x0b,0x00,0x84,0x30,0x0c,0x00,0x82,0x2c,0x0a,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x02,0x80,0x03,0x3c,0x80,0x10,0x04,0x00,0xa0,0x9f,0x63,0x24,0x21,0x10,0x43,0x00,
+0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,
+0x07,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x06,0x00,0x03,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x05,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0x04,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0x03,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x02,0x00,0x03,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x01,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0x21,0x18,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0x90,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x68,0x00,0xbe,0xaf,0x64,0x00,0xb7,0xaf,
+0x60,0x00,0xb6,0xaf,0x5c,0x00,0xb5,0xaf,0x54,0x00,0xb3,0xaf,0x50,0x00,0xb2,0xaf,
+0x6c,0x00,0xbf,0xaf,0x58,0x00,0xb4,0xaf,0x4c,0x00,0xb1,0xaf,0x48,0x00,0xb0,0xaf,
+0xd0,0x9f,0x42,0x24,0x00,0x00,0x54,0x8c,0x08,0x00,0x03,0x24,0x10,0x00,0xa3,0xaf,
+0x21,0x98,0x00,0x00,0x21,0xa8,0x00,0x00,0x21,0xb8,0x00,0x00,0x21,0xf0,0x00,0x00,
+0x14,0x00,0xa0,0xaf,0x18,0x00,0xa0,0xaf,0x1c,0x00,0xa0,0xaf,0x20,0x00,0xa0,0xaf,
+0x21,0xb0,0x00,0x00,0x24,0x00,0xa0,0xaf,0x28,0x00,0xa0,0xaf,0x2c,0x00,0xa0,0xaf,
+0x30,0x00,0xa0,0xaf,0x34,0x00,0xa0,0xaf,0x38,0x00,0xa0,0xaf,0x3c,0x00,0xa0,0xaf,
+0x40,0x00,0xa0,0xaf,0x21,0x90,0x80,0x02,0x84,0x51,0x42,0x8e,0x00,0x00,0x00,0x00,
+0x02,0x13,0x02,0x00,0x01,0x00,0x42,0x30,0x6c,0x00,0x40,0x10,0x25,0xb0,0x02,0x3c,
+0x21,0x10,0x62,0x02,0x60,0x01,0x44,0x90,0x6c,0x51,0x43,0x8e,0x68,0x51,0x46,0x8e,
+0xff,0x00,0x91,0x30,0x02,0x80,0x04,0x3c,0x68,0x15,0x84,0x24,0x21,0x10,0x24,0x02,
+0x73,0x44,0x44,0x90,0x56,0x44,0x45,0x90,0x50,0x51,0x47,0x8e,0x18,0x00,0x64,0x00,
+0x12,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0xc5,0x00,
+0x12,0x30,0x00,0x00,0x21,0x30,0xc3,0x00,0x2b,0x10,0xe6,0x00,0x25,0x01,0x40,0x14,
+0x23,0x10,0xe6,0x00,0x50,0x51,0x42,0xae,0x6c,0x51,0x44,0x8e,0x68,0x51,0x47,0x8e,
+0x54,0x51,0x48,0x8e,0x58,0x51,0x45,0x8e,0x60,0x51,0x46,0x8e,0x64,0x51,0x43,0x8e,
+0x21,0x38,0xe4,0x00,0x02,0x80,0x04,0x3c,0x68,0x15,0x84,0x24,0x21,0x10,0x24,0x02,
+0x21,0x40,0x05,0x01,0x21,0x30,0xc3,0x00,0xca,0x44,0x42,0x90,0x50,0x51,0x4a,0x8e,
+0x0c,0x00,0xe0,0x10,0x21,0x48,0x00,0x00,0x2b,0x48,0x47,0x00,0x0b,0x00,0x20,0x15,
+0x02,0x80,0x02,0x3c,0x07,0x00,0x22,0x2e,0x93,0x01,0x40,0x14,0xc0,0x10,0x07,0x00,
+0x0c,0x00,0x02,0x24,0x8f,0x01,0x22,0x12,0x0d,0x00,0x02,0x24,0x8e,0x01,0x22,0x12,
+0xc0,0x10,0x07,0x00,0x81,0x00,0x20,0x11,0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24,
+0x80,0x18,0x11,0x00,0x21,0x18,0x62,0x00,0x21,0x20,0x51,0x02,0xc2,0x51,0x85,0x90,
+0xec,0x44,0x62,0x8c,0x00,0x00,0x00,0x00,0x04,0x10,0xa2,0x00,0x2b,0x10,0x4a,0x00,
+0x76,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xe0,0x51,0x42,0x8e,0x01,0x00,0x07,0x24,
+0x04,0x18,0x27,0x02,0x24,0x10,0x43,0x00,0x04,0x01,0x40,0x10,0x1c,0x00,0x22,0x2e,
+0x21,0x28,0x51,0x02,0x88,0x51,0xa6,0x90,0xc2,0x51,0xa2,0x90,0x0a,0x00,0x04,0x24,
+0xff,0x00,0xc3,0x30,0x04,0x20,0x44,0x00,0x2a,0x18,0x64,0x00,0xfb,0x00,0x60,0x10,
+0x1c,0x00,0x22,0x2e,0x01,0x00,0xc2,0x24,0xff,0x00,0x43,0x30,0x8c,0x01,0x64,0x10,
+0x88,0x51,0xa2,0xa0,0x02,0x80,0x04,0x3c,0x68,0x15,0x85,0x24,0x80,0x10,0x11,0x00,
+0x21,0x10,0x45,0x00,0x60,0x45,0x44,0x8c,0xec,0x44,0x43,0x8c,0x21,0x30,0xc5,0x02,
+0x40,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x21,0x18,0x62,0x00,0x82,0x50,0x03,0x00,
+0x50,0x51,0xca,0xac,0xec,0x65,0xa3,0x8c,0xff,0xff,0x02,0x34,0x03,0x00,0x62,0x10,
+0x21,0x20,0x20,0x02,0xe9,0x0e,0x00,0x0c,0xff,0x00,0x65,0x32,0xff,0x0e,0x00,0x0c,
+0x21,0x20,0x20,0x02,0x10,0x00,0xa4,0x8f,0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,
+0x0a,0x20,0x62,0x00,0xbc,0x00,0x60,0x12,0x10,0x00,0xa4,0xaf,0x02,0x80,0x03,0x3c,
+0x68,0x15,0x62,0x24,0x21,0x10,0xa2,0x02,0x64,0x51,0x40,0xac,0x68,0x51,0x40,0xac,
+0x6c,0x51,0x40,0xac,0x54,0x51,0x40,0xac,0x58,0x51,0x40,0xac,0x5c,0x51,0x40,0xac,
+0x60,0x51,0x40,0xac,0x40,0x00,0xa4,0x8f,0x3c,0x00,0xa2,0x8f,0x01,0x00,0x73,0x26,
+0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,0x40,0x00,0xa4,0xaf,0x3c,0x00,0xa2,0xaf,
+0x38,0x00,0xa4,0x8f,0x34,0x00,0xa2,0x8f,0x20,0x00,0x63,0x2a,0x94,0x00,0x84,0x24,
+0x94,0x00,0x42,0x24,0x38,0x00,0xa4,0xaf,0x34,0x00,0xa2,0xaf,0x30,0x00,0xa4,0x8f,
+0x2c,0x00,0xa2,0x8f,0x94,0x00,0x52,0x26,0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,
+0x30,0x00,0xa4,0xaf,0x2c,0x00,0xa2,0xaf,0x28,0x00,0xa4,0x8f,0x24,0x00,0xa2,0x8f,
+0x94,0x00,0xd6,0x26,0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,0x28,0x00,0xa4,0xaf,
+0x24,0x00,0xa2,0xaf,0x20,0x00,0xa4,0x8f,0x1c,0x00,0xa2,0x8f,0x94,0x00,0xde,0x27,
+0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,0x20,0x00,0xa4,0xaf,0x1c,0x00,0xa2,0xaf,
+0x18,0x00,0xa4,0x8f,0x14,0x00,0xa2,0x8f,0x94,0x00,0x94,0x26,0x94,0x00,0x84,0x24,
+0x94,0x00,0x42,0x24,0x18,0x00,0xa4,0xaf,0x14,0x00,0xa2,0xaf,0x94,0x00,0xf7,0x26,
+0x59,0xff,0x60,0x14,0x94,0x00,0xb5,0x26,0x10,0x00,0xa3,0x8f,0x6c,0x00,0xbf,0x8f,
+0x68,0x00,0xbe,0x8f,0x64,0x00,0xb7,0x8f,0x60,0x00,0xb6,0x8f,0x5c,0x00,0xb5,0x8f,
+0x58,0x00,0xb4,0x8f,0x54,0x00,0xb3,0x8f,0x50,0x00,0xb2,0x8f,0x4c,0x00,0xb1,0x8f,
+0x48,0x00,0xb0,0x8f,0x25,0xb0,0x02,0x3c,0x80,0x01,0x42,0x34,0x70,0x00,0xbd,0x27,
+0x00,0x00,0x43,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x87,0x00,0xe0,0x10,
+0x00,0x00,0x00,0x00,0x87,0x00,0x20,0x15,0x02,0x80,0x03,0x3c,0x40,0x10,0x07,0x00,
+0x21,0x10,0x47,0x00,0x82,0x10,0x02,0x00,0x2b,0x10,0x46,0x00,0xa7,0xff,0x40,0x10,
+0x00,0x00,0x00,0x00,0x20,0x00,0xa2,0x8f,0x02,0x80,0x04,0x3c,0x68,0x15,0x88,0x24,
+0x21,0x20,0x48,0x00,0x21,0x30,0x91,0x00,0xe0,0x51,0x83,0x8c,0x01,0x00,0x05,0x24,
+0x04,0x10,0x25,0x02,0xa5,0x51,0xc7,0x90,0x27,0x10,0x02,0x00,0x24,0x18,0x62,0x00,
+0xe0,0x51,0x83,0xac,0x09,0x00,0xe5,0x10,0x88,0x51,0xc0,0xa0,0x1c,0x00,0xa3,0x8f,
+0x21,0x38,0x00,0x00,0x21,0x20,0x68,0x00,0x21,0x18,0x87,0x00,0x01,0x00,0xe7,0x24,
+0x1d,0x00,0xe2,0x28,0xfc,0xff,0x40,0x14,0xc2,0x51,0x60,0xa0,0x02,0x80,0x04,0x3c,
+0x68,0x15,0x83,0x24,0x18,0x00,0xa4,0x8f,0x21,0x50,0x60,0x00,0x21,0x38,0x00,0x00,
+0x21,0x10,0x83,0x00,0x21,0x10,0x51,0x00,0xa5,0x51,0x40,0xa0,0x02,0x80,0x03,0x3c,
+0x02,0x80,0x02,0x3c,0xe4,0x9e,0x49,0x24,0x70,0x9e,0x68,0x24,0x80,0x18,0x07,0x00,
+0x21,0x10,0x69,0x00,0x21,0x20,0x68,0x00,0x00,0x00,0x46,0x8c,0x00,0x00,0x85,0x8c,
+0x01,0x00,0xe7,0x24,0x21,0x18,0x6a,0x00,0x1d,0x00,0xe2,0x28,0xec,0x44,0x65,0xac,
+0xf6,0xff,0x40,0x14,0x60,0x45,0x66,0xac,0x15,0x00,0x20,0x12,0x02,0x80,0x05,0x3c,
+0x87,0x51,0x82,0x92,0xff,0xff,0x27,0x26,0x2a,0x10,0xe2,0x00,0x10,0x00,0x40,0x14,
+0x02,0x80,0x03,0x3c,0x14,0x00,0xa4,0x8f,0x68,0x15,0x62,0x24,0x21,0x10,0x82,0x00,
+0x87,0x51,0x45,0x90,0x80,0x51,0x44,0x8c,0x01,0x00,0x06,0x24,0x04,0x18,0xe6,0x00,
+0x24,0x10,0x83,0x00,0x06,0x01,0x43,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0xe7,0x24,
+0x2a,0x10,0xe5,0x00,0xfa,0xff,0x40,0x10,0x04,0x18,0xe6,0x00,0x02,0x80,0x05,0x3c,
+0xee,0x7d,0xa3,0x90,0x22,0x00,0x02,0x24,0xe8,0x00,0x62,0x10,0x02,0x80,0x03,0x3c,
+0x02,0x80,0x04,0x3c,0x68,0x15,0x83,0x24,0x80,0x10,0x11,0x00,0x21,0x10,0x43,0x00,
+0x60,0x45,0x44,0x8c,0xec,0x44,0x43,0x8c,0xee,0x7d,0xa5,0x90,0x40,0x10,0x04,0x00,
+0x21,0x10,0x44,0x00,0x21,0x18,0x62,0x00,0x22,0x00,0x02,0x24,0xd6,0x00,0xa2,0x10,
+0x82,0x50,0x03,0x00,0xe0,0x51,0x83,0x8e,0x01,0x00,0x02,0x24,0x04,0x10,0x22,0x02,
+0x25,0x18,0x62,0x00,0xe0,0x51,0x83,0xae,0x02,0x80,0x02,0x3c,0x68,0x15,0x43,0x24,
+0x21,0x10,0xe3,0x02,0x50,0x51,0x4a,0xac,0xec,0x65,0x64,0x8c,0xff,0xff,0x02,0x34,
+0x44,0xff,0x82,0x14,0x21,0x20,0x20,0x02,0xff,0x0e,0x00,0x0c,0x21,0x20,0x20,0x02,
+0x10,0x00,0xa4,0x8f,0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,0x0a,0x20,0x62,0x00,
+0x46,0xff,0x60,0x16,0x10,0x00,0xa4,0xaf,0x02,0x80,0x02,0x3c,0x68,0x15,0x50,0x24,
+0x58,0x51,0x05,0x96,0x54,0x51,0x02,0x96,0x25,0xb0,0x11,0x3c,0x00,0x2c,0x05,0x00,
+0x21,0x28,0x45,0x00,0x82,0x4f,0x00,0x0c,0x68,0x0c,0x24,0x36,0x64,0x51,0x02,0x8e,
+0x60,0x51,0x05,0x8e,0x5c,0x51,0x03,0x96,0x6c,0x0c,0x24,0x36,0x21,0x28,0xa2,0x00,
+0x00,0x2c,0x05,0x00,0x82,0x4f,0x00,0x0c,0x21,0x28,0x65,0x00,0xf8,0x10,0x00,0x08,
+0x02,0x80,0x03,0x3c,0xa2,0x10,0x00,0x08,0x50,0x51,0x40,0xae,0x27,0xff,0x20,0x11,
+0x02,0x80,0x03,0x3c,0x68,0x15,0x62,0x24,0x80,0x18,0x11,0x00,0x21,0x18,0x62,0x00,
+0x60,0x45,0x64,0x8c,0x00,0x00,0x00,0x00,0x2b,0x20,0x44,0x01,0x1f,0xff,0x80,0x10,
+0x00,0x00,0x00,0x00,0x49,0x11,0x00,0x08,0x00,0x00,0x00,0x00,0x0a,0xff,0x40,0x10,
+0x02,0x80,0x04,0x3c,0x21,0x20,0x51,0x02,0xa5,0x51,0x83,0x90,0x01,0x00,0x02,0x24,
+0x78,0x00,0x62,0x10,0x02,0x80,0x02,0x3c,0x40,0x00,0xa3,0x8f,0x68,0x15,0x42,0x24,
+0x21,0x20,0x62,0x00,0x21,0x38,0x00,0x00,0x21,0x18,0x87,0x00,0x01,0x00,0xe7,0x24,
+0x1d,0x00,0xe2,0x28,0xfc,0xff,0x40,0x14,0xc2,0x51,0x60,0xa0,0x3c,0x00,0xa2,0x8f,
+0x02,0x80,0x04,0x3c,0x68,0x15,0x85,0x24,0x21,0x30,0x45,0x00,0xe0,0x51,0xc2,0x8c,
+0x01,0x00,0x03,0x24,0x04,0x18,0x23,0x02,0x27,0x18,0x03,0x00,0x21,0x20,0xd1,0x00,
+0x24,0x10,0x43,0x00,0xa5,0x51,0x80,0xa0,0xe0,0x51,0xc2,0xac,0x12,0x00,0x20,0x16,
+0x88,0x51,0x80,0xa0,0x86,0x51,0xc2,0x90,0x00,0x00,0x00,0x00,0x0e,0x00,0x40,0x10,
+0x01,0x00,0x07,0x24,0x38,0x00,0xa3,0x8f,0x01,0x00,0x06,0x24,0x21,0x10,0x65,0x00,
+0x86,0x51,0x44,0x90,0x80,0x51,0x45,0x8c,0x04,0x18,0xe6,0x00,0x24,0x10,0xa3,0x00,
+0x8d,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xe7,0x24,0x2a,0x10,0x87,0x00,
+0xfa,0xff,0x40,0x10,0x04,0x18,0xe6,0x00,0x02,0x80,0x02,0x3c,0x68,0x15,0x44,0x24,
+0x34,0x00,0xa2,0x8f,0x01,0x00,0x27,0x26,0x21,0x18,0x44,0x00,0x86,0x51,0x62,0x90,
+0x00,0x00,0x00,0x00,0x2a,0x10,0x47,0x00,0x0f,0x00,0x40,0x14,0x02,0x80,0x05,0x3c,
+0x30,0x00,0xa3,0x8f,0x01,0x00,0x06,0x24,0x21,0x10,0x64,0x00,0x86,0x51,0x45,0x90,
+0x80,0x51,0x44,0x8c,0x04,0x18,0xe6,0x00,0x24,0x10,0x83,0x00,0x73,0x00,0x43,0x10,
+0x00,0x00,0x00,0x00,0x01,0x00,0xe7,0x24,0x2a,0x10,0xa7,0x00,0xfa,0xff,0x40,0x10,
+0x04,0x18,0xe6,0x00,0x02,0x80,0x05,0x3c,0xee,0x7d,0xa3,0x90,0x22,0x00,0x02,0x24,
+0x3e,0x00,0x62,0x10,0xee,0xff,0x22,0x26,0xee,0x7d,0xa3,0x90,0x22,0x00,0x02,0x24,
+0xbd,0xfe,0x62,0x14,0x02,0x80,0x04,0x3c,0x28,0x00,0xa2,0x8f,0x68,0x15,0x86,0x24,
+0x21,0x20,0x46,0x00,0x84,0x51,0x85,0x8c,0x01,0x00,0x03,0x24,0x42,0x13,0x05,0x00,
+0x07,0x00,0x42,0x30,0xb3,0xfe,0x43,0x10,0x14,0x00,0x22,0x2e,0xb1,0xfe,0x40,0x14,
+0x1c,0x00,0x22,0x2e,0xaf,0xfe,0x40,0x10,0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34,
+0x24,0x10,0xa2,0x00,0x00,0x20,0x42,0x34,0x84,0x51,0x82,0xac,0x87,0x51,0x83,0x90,
+0xff,0xff,0x27,0x26,0x2a,0x18,0xe3,0x00,0xa6,0xfe,0x60,0x14,0x00,0x00,0x00,0x00,
+0x24,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00,0x21,0x10,0x66,0x00,0x87,0x51,0x45,0x90,
+0x80,0x51,0x44,0x8c,0x42,0x12,0x00,0x08,0x01,0x00,0x06,0x24,0x2a,0x10,0xe5,0x00,
+0x9c,0xfe,0x40,0x14,0x00,0x00,0x00,0x00,0x04,0x18,0xe6,0x00,0x24,0x10,0x83,0x00,
+0xfa,0xff,0x43,0x14,0xff,0xff,0xe7,0x24,0x01,0x00,0xe7,0x24,0xdd,0x10,0x00,0x08,
+0xff,0x00,0xf1,0x30,0xc0,0x10,0x07,0x00,0x23,0x10,0x47,0x00,0xc2,0x10,0x02,0x00,
+0x2b,0x10,0x48,0x00,0x7c,0xfe,0x40,0x14,0x00,0x00,0x00,0x00,0xbd,0x10,0x00,0x08,
+0x00,0x00,0x00,0x00,0x18,0x00,0x22,0x2e,0x17,0x00,0x40,0x14,0x05,0x00,0x22,0x2e,
+0xc2,0x51,0x83,0x90,0x00,0x00,0x00,0x00,0x05,0x00,0x62,0x2c,0x8b,0xff,0x40,0x10,
+0x01,0x00,0x62,0x24,0xe3,0x11,0x00,0x08,0xc2,0x51,0x82,0xa0,0xff,0x00,0x42,0x30,
+0x02,0x00,0x42,0x2c,0xc0,0xff,0x40,0x10,0x02,0x80,0x04,0x3c,0x2c,0x00,0xa3,0x8f,
+0x68,0x15,0x82,0x24,0x21,0x10,0x62,0x00,0x80,0x51,0x43,0x8c,0x00,0x01,0x04,0x3c,
+0x18,0x00,0x02,0x24,0x24,0x18,0x64,0x00,0x1e,0x12,0x00,0x08,0x0b,0x88,0x43,0x00,
+0xdd,0x10,0x00,0x08,0xa5,0x51,0xa7,0xa0,0x04,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0xc2,0x51,0x83,0x90,0x57,0x12,0x00,0x08,0x03,0x00,0x62,0x2c,0xc2,0x51,0x83,0x90,
+0x57,0x12,0x00,0x08,0x04,0x00,0x62,0x2c,0x13,0x00,0x02,0x24,0x29,0xff,0x22,0x16,
+0x02,0x80,0x02,0x3c,0xa4,0x11,0x00,0x08,0x68,0x15,0x43,0x24,0x68,0x15,0x62,0x24,
+0x21,0x20,0xc2,0x03,0x84,0x51,0x83,0x8c,0x00,0x00,0x00,0x00,0x42,0x13,0x03,0x00,
+0x07,0x00,0x42,0x30,0x12,0xff,0x40,0x10,0x14,0x00,0x22,0x2e,0x10,0xff,0x40,0x10,
+0x0c,0x00,0x22,0x2e,0x0e,0xff,0x40,0x14,0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34,
+0x24,0x10,0x62,0x00,0x90,0x11,0x00,0x08,0x84,0x51,0x82,0xac,0xff,0x00,0xf1,0x30,
+0x1a,0x12,0x00,0x08,0x02,0x80,0x05,0x3c,0x02,0x12,0x00,0x08,0xff,0x00,0xf1,0x30,
+0x8b,0x11,0x00,0x08,0xff,0x00,0xf1,0x30,0xa8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,
+0x38,0x00,0xb2,0xaf,0x54,0x00,0xbf,0xaf,0x50,0x00,0xbe,0xaf,0x4c,0x00,0xb7,0xaf,
+0x48,0x00,0xb6,0xaf,0x44,0x00,0xb5,0xaf,0x40,0x00,0xb4,0xaf,0x3c,0x00,0xb3,0xaf,
+0x34,0x00,0xb1,0xaf,0x30,0x00,0xb0,0xaf,0x68,0x15,0x46,0x24,0x65,0x65,0xc4,0x90,
+0x60,0x65,0xc3,0x8c,0x5c,0x65,0xc2,0x8c,0x21,0x90,0x64,0x00,0x2b,0x10,0x42,0x02,
+0x7e,0x00,0x40,0x10,0x21,0x88,0xc0,0x00,0x02,0x80,0x1e,0x3c,0x02,0x80,0x17,0x3c,
+0x21,0xa8,0xc0,0x00,0x21,0xb0,0xc0,0x00,0xad,0x12,0x00,0x08,0x01,0x00,0x14,0x24,
+0x5c,0x65,0xc2,0x8e,0x10,0x00,0x52,0x26,0x2b,0x10,0x42,0x02,0x73,0x00,0x40,0x10,
+0x21,0x88,0xc0,0x02,0x65,0x65,0x22,0x92,0xff,0xff,0x45,0x32,0x25,0x28,0xb7,0x00,
+0x10,0x00,0x42,0x24,0x65,0x65,0x22,0xa2,0x38,0x79,0xc4,0x27,0x60,0x45,0x00,0x0c,
+0x10,0x00,0x06,0x24,0xf8,0x63,0x23,0x8e,0x00,0x00,0x00,0x00,0x42,0x18,0x03,0x00,
+0x01,0x00,0x63,0x30,0x71,0x00,0x74,0x10,0x02,0x80,0x03,0x3c,0x68,0x15,0x63,0x24,
+0xd4,0x63,0x62,0x8c,0x00,0x00,0x00,0x00,0x42,0x84,0x02,0x00,0x1f,0x00,0x10,0x32,
+0xc0,0x48,0x10,0x00,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x55,0x00,0x84,0x51,0x45,0x8c,0x00,0x00,0x00,0x00,
+0x02,0x1b,0x05,0x00,0x01,0x00,0x63,0x30,0xdd,0xff,0x60,0x10,0x21,0x30,0xa0,0x02,
+0x25,0xb0,0x02,0x3c,0x21,0x40,0x02,0x02,0xd0,0x63,0xa7,0x8e,0xf8,0x63,0xa2,0x8e,
+0x60,0x01,0x03,0x91,0x82,0x25,0x07,0x00,0x01,0x00,0x42,0x30,0xff,0x00,0x6b,0x30,
+0x9a,0x00,0x54,0x10,0x3f,0x00,0x8a,0x30,0x02,0x80,0x04,0x3c,0xd4,0x9f,0x84,0x24,
+0x00,0x00,0x86,0x8c,0x04,0x00,0x04,0x24,0xd0,0x63,0xc3,0x8c,0x00,0x00,0x00,0x00,
+0x82,0x15,0x03,0x00,0x3f,0x00,0x42,0x30,0x05,0x00,0x42,0x28,0x0a,0x00,0x60,0x04,
+0x0a,0x50,0x82,0x00,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x70,0x51,0x43,0x8c,0x04,0x00,0x0a,0x24,
+0x01,0x00,0x63,0x24,0x70,0x51,0x43,0xac,0xd4,0x63,0xc2,0x8c,0x00,0x00,0x00,0x00,
+0x02,0x13,0x02,0x00,0x1f,0x00,0x42,0x30,0x08,0x00,0x42,0x28,0xb8,0xff,0x40,0x10,
+0x00,0x00,0x00,0x00,0xd0,0x63,0xc2,0x8c,0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,
+0xb3,0xff,0x4b,0x14,0x00,0x00,0x00,0x00,0x9f,0x00,0x40,0x11,0x21,0x10,0x30,0x01,
+0xa8,0x00,0x54,0x11,0x80,0x10,0x02,0x00,0x02,0x00,0x02,0x24,0xb0,0x00,0x42,0x11,
+0x21,0x10,0x30,0x01,0x03,0x00,0x02,0x24,0xb8,0x00,0x42,0x11,0x21,0x10,0x30,0x01,
+0xc0,0x00,0x44,0x11,0x21,0x10,0x30,0x01,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,
+0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x28,0x46,0x00,0x74,0x51,0xa3,0x8c,
+0x21,0x10,0x66,0x01,0x90,0x44,0x44,0x90,0x02,0x19,0x03,0x00,0x2b,0x18,0x64,0x00,
+0xc8,0x00,0x60,0x14,0x00,0x00,0x00,0x00,0x68,0x51,0xa3,0x8c,0x80,0x10,0x0b,0x00,
+0x21,0x10,0x4b,0x00,0x01,0x00,0x63,0x24,0x21,0x10,0x46,0x00,0x68,0x51,0xa3,0xac,
+0x21,0x10,0x4a,0x00,0x34,0x43,0x44,0x90,0x50,0x51,0xa3,0x8c,0x00,0x00,0x00,0x00,
+0x21,0x18,0x64,0x00,0x50,0x51,0xa3,0xac,0x5c,0x65,0xc2,0x8e,0x10,0x00,0x52,0x26,
+0x2b,0x10,0x42,0x02,0x8f,0xff,0x40,0x14,0x21,0x88,0xc0,0x02,0x54,0x00,0xbf,0x8f,
+0x50,0x00,0xbe,0x8f,0x4c,0x00,0xb7,0x8f,0x48,0x00,0xb6,0x8f,0x44,0x00,0xb5,0x8f,
+0x40,0x00,0xb4,0x8f,0x3c,0x00,0xb3,0x8f,0x38,0x00,0xb2,0x8f,0x34,0x00,0xb1,0x8f,
+0x30,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x58,0x00,0xbd,0x27,0xd4,0x63,0x22,0x8e,
+0x00,0x00,0x00,0x00,0x42,0x14,0x02,0x00,0x10,0x00,0x43,0x30,0x90,0xff,0x60,0x10,
+0x0f,0x00,0x50,0x30,0x54,0x4f,0x00,0x0c,0x48,0x00,0x04,0x24,0x74,0xff,0x40,0x10,
+0x21,0x98,0x40,0x00,0x14,0x00,0x02,0x24,0x28,0x00,0x04,0x24,0x14,0x00,0x62,0xae,
+0x0c,0x00,0x64,0xae,0x14,0x00,0xa3,0x8f,0xe0,0xff,0x04,0x24,0x08,0x00,0x07,0x24,
+0x80,0x00,0x63,0x34,0x14,0x00,0xa3,0xaf,0xd4,0x63,0x26,0x8e,0x24,0x18,0x64,0x00,
+0xff,0xe0,0x04,0x24,0x42,0x14,0x06,0x00,0x1f,0x00,0x42,0x30,0x25,0x18,0x62,0x00,
+0x14,0x00,0xa3,0xaf,0xd0,0x63,0x25,0x8e,0x24,0x18,0x64,0x00,0x02,0x23,0x06,0x00,
+0x82,0x13,0x05,0x00,0x00,0x1f,0x42,0x30,0x25,0x18,0x62,0x00,0xff,0xff,0x02,0x3c,
+0xff,0x7f,0x42,0x34,0xc2,0x2f,0x05,0x00,0x24,0x18,0x62,0x00,0xc0,0x2b,0x05,0x00,
+0x0f,0x00,0x02,0x3c,0x25,0x18,0x65,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0x00,0x35,0x06,0x00,0xf0,0xff,0x02,0x3c,0x25,0x18,0x66,0x00,0xff,0xff,0x42,0x34,
+0x0f,0x00,0x84,0x30,0x24,0x18,0x62,0x00,0x00,0x24,0x04,0x00,0x25,0x18,0x64,0x00,
+0x02,0x80,0x04,0x3c,0x10,0x00,0xa5,0x27,0x8c,0x79,0x84,0x24,0x02,0x00,0x06,0x24,
+0x04,0x00,0x02,0x24,0x11,0x00,0xa7,0xa3,0x14,0x00,0xa3,0xaf,0x6c,0x45,0x00,0x0c,
+0x10,0x00,0xa2,0xa3,0x08,0x00,0x64,0x96,0x10,0x00,0xa5,0x27,0x02,0x00,0x06,0x24,
+0x25,0x20,0x97,0x00,0x6c,0x45,0x00,0x0c,0x20,0x00,0x84,0x24,0x30,0x08,0x00,0x0c,
+0x21,0x20,0x60,0x02,0xc1,0x12,0x00,0x08,0xc0,0x48,0x10,0x00,0x02,0x12,0x05,0x00,
+0x01,0x00,0x42,0x30,0x14,0x00,0x54,0x10,0xc2,0x10,0x05,0x00,0x01,0x00,0x42,0x30,
+0x76,0x00,0x54,0x10,0x00,0x00,0x00,0x00,0x04,0x64,0xa2,0x96,0x60,0x01,0x03,0x91,
+0xc2,0x27,0x07,0x00,0x21,0x10,0x42,0x01,0x20,0x64,0xa3,0xa2,0x13,0x00,0x80,0x10,
+0x04,0x64,0xa2,0xa6,0x59,0xff,0x94,0x14,0x02,0x80,0x04,0x3c,0x00,0x64,0xa2,0x96,
+0x0a,0x64,0xa3,0x96,0x01,0x00,0x42,0x24,0x01,0x00,0x63,0x24,0x00,0x64,0xa2,0xa6,
+0xd7,0x12,0x00,0x08,0x0a,0x64,0xa3,0xa6,0x5d,0x00,0xe0,0x04,0x00,0x00,0x00,0x00,
+0x02,0x64,0xa3,0x96,0x0e,0x64,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,
+0x0e,0x64,0xa2,0xa6,0xd6,0x12,0x00,0x08,0x02,0x64,0xc3,0xa4,0x02,0x64,0xa3,0x96,
+0x10,0x64,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,0x10,0x64,0xa2,0xa6,
+0xd6,0x12,0x00,0x08,0x02,0x64,0xc3,0xa4,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x54,0x51,0x43,0x8c,0x00,0x00,0x00,0x00,
+0x01,0x00,0x63,0x24,0x5c,0xff,0x54,0x15,0x54,0x51,0x43,0xac,0x21,0x10,0x30,0x01,
+0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,
+0x58,0x51,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x58,0x51,0x43,0xac,
+0x02,0x00,0x02,0x24,0x54,0xff,0x42,0x15,0x03,0x00,0x02,0x24,0x21,0x10,0x30,0x01,
+0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,
+0x5c,0x51,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x5c,0x51,0x43,0xac,
+0x03,0x00,0x02,0x24,0x4a,0xff,0x42,0x15,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,
+0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x60,0x51,0x43,0x8c,
+0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x43,0xff,0x44,0x15,0x60,0x51,0x43,0xac,
+0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,
+0x21,0x10,0x46,0x00,0x64,0x51,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,
+0x64,0x51,0x43,0xac,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,
+0x80,0x10,0x02,0x00,0x21,0x28,0x46,0x00,0x74,0x51,0xa3,0x8c,0x21,0x10,0x66,0x01,
+0x90,0x44,0x44,0x90,0x02,0x19,0x03,0x00,0x2b,0x18,0x64,0x00,0x3a,0xff,0x60,0x10,
+0x00,0x00,0x00,0x00,0x6c,0x51,0xa3,0x8c,0x80,0x10,0x0b,0x00,0x02,0x80,0x04,0x3c,
+0x68,0x15,0x84,0x24,0x21,0x10,0x4b,0x00,0x01,0x00,0x63,0x24,0x21,0x10,0x44,0x00,
+0x6c,0x51,0xa3,0xac,0x21,0x10,0x4a,0x00,0xc5,0x43,0x44,0x90,0x50,0x51,0xa3,0x8c,
+0x00,0x00,0x00,0x00,0x21,0x18,0x64,0x00,0x1a,0x13,0x00,0x08,0x50,0x51,0xa3,0xac,
+0x00,0x64,0xa3,0x96,0x08,0x64,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,
+0x08,0x64,0xa2,0xa6,0xd6,0x12,0x00,0x08,0x00,0x64,0xc3,0xa4,0x08,0x00,0xe0,0x04,
+0x00,0x00,0x00,0x00,0x02,0x64,0xa3,0x96,0x0c,0x64,0xa2,0x96,0x01,0x00,0x63,0x24,
+0x01,0x00,0x42,0x24,0x0c,0x64,0xa2,0xa6,0xd6,0x12,0x00,0x08,0x02,0x64,0xc3,0xa4,
+0x00,0x64,0xa3,0x96,0x06,0x64,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,
+0x06,0x64,0xa2,0xa6,0xd6,0x12,0x00,0x08,0x00,0x64,0xc3,0xa4,0x25,0xb0,0x05,0x3c,
+0x4c,0x00,0xa2,0x34,0x02,0x80,0x07,0x3c,0x00,0x00,0x43,0x90,0x68,0x15,0xe4,0x24,
+0xed,0x4a,0x82,0x90,0x03,0x00,0x66,0x30,0x24,0x00,0x46,0x10,0x00,0x00,0x00,0x00,
+0x18,0x00,0xc0,0x14,0x25,0xb0,0x03,0x3c,0xe6,0x42,0x82,0x90,0x00,0x00,0x00,0x00,
+0x15,0x00,0x40,0x14,0x58,0x00,0x62,0x34,0x1c,0x00,0x02,0x24,0x50,0x0c,0xa3,0x34,
+0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,
+0x58,0x0c,0x42,0x34,0x1c,0x00,0x03,0x24,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,
+0x25,0xb0,0x03,0x3c,0x58,0x00,0x62,0x34,0x00,0x00,0x45,0x8c,0x29,0xb0,0x04,0x3c,
+0x5c,0x00,0x63,0x34,0x00,0x00,0x85,0xac,0x00,0x00,0x65,0x8c,0x68,0x15,0xe2,0x24,
+0x04,0x00,0x84,0x34,0xed,0x4a,0x46,0xa0,0x00,0x00,0x85,0xac,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x25,0xb0,0x02,0x3c,0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf,
+0x2d,0x0a,0x46,0x34,0xa2,0x0d,0x43,0x34,0xa4,0x0d,0x44,0x34,0xa6,0x0d,0x45,0x34,
+0xa8,0x0d,0x42,0x34,0x00,0x00,0x67,0x94,0x00,0x00,0x88,0x94,0x00,0x00,0xa9,0x94,
+0x00,0x00,0x44,0x94,0x00,0x00,0xc3,0x90,0x02,0x80,0x0a,0x3c,0x68,0x15,0x42,0x25,
+0x40,0x00,0x63,0x34,0xff,0x00,0x63,0x30,0xde,0x42,0x44,0xa4,0x00,0x00,0xc3,0xa0,
+0xd8,0x42,0x47,0xa4,0xda,0x42,0x48,0xa4,0xdc,0x42,0x49,0xa4,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x25,0xb0,0x07,0x3c,0x5b,0x0a,0xe2,0x34,0x00,0x00,0x44,0x90,
+0x68,0x15,0x46,0x25,0x5c,0x0a,0xe2,0x34,0x00,0x00,0x45,0x90,0xd8,0x42,0xc3,0x94,
+0xda,0x42,0xc2,0x94,0xdc,0x42,0xc9,0x94,0xde,0x42,0xc8,0x94,0xff,0x00,0x84,0x30,
+0x21,0x18,0x62,0x00,0x00,0x22,0x04,0x00,0xff,0x00,0xa5,0x30,0x21,0x20,0x85,0x00,
+0x21,0x18,0x69,0x00,0xff,0xff,0x82,0x30,0x21,0x18,0x68,0x00,0x21,0x18,0x62,0x00,
+0x64,0x0c,0xe7,0x34,0xff,0xff,0x42,0x30,0xe0,0x42,0xc3,0xac,0x00,0x00,0xe2,0xa4,
+0xe4,0x42,0xc4,0xa4,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x45,0x25,
+0x00,0x40,0xa2,0x8c,0x01,0x00,0x03,0x24,0x0f,0x00,0x44,0x30,0x07,0x00,0x83,0x10,
+0x00,0x00,0x00,0x00,0x88,0x59,0x00,0x0c,0x00,0x00,0x00,0x00,0x10,0x00,0xbf,0x8f,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0xe4,0x42,0xa2,0x8c,
+0x00,0x00,0x00,0x00,0x02,0x17,0x02,0x00,0x01,0x00,0x42,0x30,0xf5,0xff,0x40,0x14,
+0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,
+0x03,0x00,0x63,0x30,0x3f,0x00,0x64,0x10,0x68,0x15,0x44,0x25,0xe6,0x42,0x82,0x90,
+0x00,0x00,0x00,0x00,0x07,0x00,0x40,0x14,0x01,0x00,0x03,0x24,0x00,0x40,0x82,0x8c,
+0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0x0f,0x00,0x42,0x30,0x3c,0x00,0x43,0x10,
+0x25,0xb0,0x02,0x3c,0x68,0x15,0x45,0x25,0xe6,0x42,0xa3,0x90,0xff,0x00,0x02,0x24,
+0xe0,0xff,0x62,0x14,0x25,0xb0,0x03,0x3c,0xc8,0x42,0xa2,0x94,0xe0,0x42,0xa6,0x8c,
+0x50,0x0c,0x63,0x34,0x00,0x00,0x64,0x90,0x2b,0x10,0xc2,0x00,0x85,0x00,0x40,0x10,
+0x7f,0x00,0x84,0x30,0xff,0xff,0x82,0x24,0xff,0x00,0x44,0x30,0x68,0x15,0x45,0x25,
+0xd0,0x42,0xa3,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x64,0x00,0x78,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x21,0x20,0x60,0x00,0x68,0x15,0x43,0x25,0xe0,0x42,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x11,0x27,0x42,0x2c,0x6d,0x00,0x40,0x14,0x3a,0x00,0x82,0x2c,
+0x32,0x00,0x04,0x24,0x44,0x00,0x03,0x24,0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34,
+0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c,0x50,0x0c,0x42,0x34,0x00,0x00,0x44,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,0x58,0x0c,0x42,0x34,
+0x00,0x00,0x44,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x69,0x14,0x00,0x08,
+0x00,0x00,0x00,0x00,0xe6,0x42,0xa2,0x90,0x00,0x00,0x00,0x00,0xbf,0xff,0x40,0x14,
+0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x24,0x7b,0x14,0x00,0x08,0xe6,0x42,0xa2,0xa0,
+0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x63,0x30,
+0xa4,0xff,0x60,0x10,0xff,0xff,0x02,0x34,0xe8,0x63,0x83,0x8c,0x00,0x00,0x00,0x00,
+0xa0,0xff,0x62,0x10,0x00,0x00,0x00,0x00,0xe0,0x42,0x83,0x8c,0x00,0x00,0x00,0x00,
+0x65,0x00,0x62,0x2c,0x59,0x00,0x40,0x14,0x28,0x00,0x62,0x2c,0xd2,0x42,0x83,0x90,
+0x00,0x00,0x00,0x00,0x00,0x16,0x03,0x00,0x03,0x16,0x02,0x00,0xfe,0xff,0x42,0x24,
+0xfc,0xff,0x42,0x28,0x02,0x00,0x40,0x10,0xfe,0xff,0x62,0x24,0xfc,0xff,0x02,0x24,
+0xd2,0x42,0x82,0xa0,0x68,0x15,0x45,0x25,0xe8,0x63,0xa2,0x8c,0xd2,0x42,0xa3,0x90,
+0xce,0x42,0xa6,0x90,0x02,0x11,0x02,0x00,0x7f,0x00,0x42,0x30,0x0a,0x00,0x44,0x24,
+0x23,0x18,0x83,0x00,0x00,0x26,0x03,0x00,0x03,0x26,0x04,0x00,0xff,0x00,0xc2,0x30,
+0x2a,0x10,0x44,0x00,0x4d,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x00,0x26,0x06,0x00,
+0x03,0x26,0x04,0x00,0x68,0x15,0x43,0x25,0xe0,0x42,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x11,0x27,0x42,0x2c,0x33,0x00,0x40,0x14,0x3a,0x00,0x82,0x28,0x32,0x00,0x82,0x28,
+0x30,0x00,0x40,0x10,0x3a,0x00,0x82,0x28,0x32,0x00,0x04,0x24,0x44,0x00,0x03,0x24,
+0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34,0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c,
+0x50,0x0c,0x42,0x34,0xff,0x00,0x84,0x30,0x00,0x00,0x44,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,0x58,0x0c,0x42,0x34,0x00,0x00,0x44,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x69,0x14,0x00,0x08,0x00,0x00,0x00,0x00,
+0x95,0xff,0x40,0x10,0x48,0x00,0x03,0x24,0xa2,0x14,0x00,0x08,0x44,0x00,0x03,0x24,
+0xd1,0x42,0xa3,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,0x9a,0x14,0x00,0x08,
+0x0b,0x20,0x62,0x00,0xca,0x42,0xa2,0x94,0x00,0x00,0x00,0x00,0x2b,0x10,0xc2,0x00,
+0x7a,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0xcc,0x42,0xa2,0x94,0x00,0x00,0x00,0x00,
+0x2b,0x10,0xc2,0x00,0x07,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x92,0x14,0x00,0x08,
+0x01,0x00,0x82,0x24,0xd2,0xff,0x40,0x10,0x48,0x00,0x03,0x24,0xf4,0x14,0x00,0x08,
+0x44,0x00,0x03,0x24,0x92,0x14,0x00,0x08,0x02,0x00,0x82,0x24,0xb2,0xff,0x40,0x10,
+0x68,0x15,0x45,0x25,0xd2,0x42,0x83,0x90,0x00,0x00,0x00,0x00,0x00,0x16,0x03,0x00,
+0x03,0x16,0x02,0x00,0x02,0x00,0x42,0x24,0x0d,0x00,0x42,0x28,0x09,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0xd8,0x14,0x00,0x08,0x0c,0x00,0x02,0x24,0xcf,0x42,0xa3,0x80,
+0x00,0x00,0x00,0x00,0xff,0x00,0x62,0x30,0x2a,0x10,0x82,0x00,0xe9,0x14,0x00,0x08,
+0x0b,0x20,0x62,0x00,0xd8,0x14,0x00,0x08,0x02,0x00,0x62,0x24,0xc0,0xff,0xbd,0x27,
+0x28,0x00,0xb4,0xaf,0x25,0xb0,0x14,0x3c,0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf,
+0x18,0x00,0xb0,0xaf,0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,
+0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x20,0x00,0xb2,0xaf,0xd8,0x00,0x86,0x36,
+0x00,0x00,0xc3,0x90,0x02,0x80,0x02,0x3c,0x68,0x15,0x51,0x24,0x2a,0xb0,0x10,0x3c,
+0xa0,0xff,0x02,0x24,0x25,0x18,0x62,0x00,0x34,0x00,0x05,0x36,0xfe,0xff,0x02,0x24,
+0xbc,0x42,0x32,0x92,0x40,0x00,0x04,0x24,0x00,0x00,0xc3,0xa0,0x00,0x00,0xa2,0xa0,
+0x54,0x4f,0x00,0x0c,0x00,0x96,0x12,0x00,0x21,0x98,0x40,0x00,0x8d,0x00,0x60,0x12,
+0x00,0x40,0x02,0x3c,0x08,0x00,0x63,0x8e,0xb0,0x03,0x82,0x36,0x25,0xb0,0x1e,0x3c,
+0x21,0x20,0x60,0x02,0x00,0x00,0x43,0xac,0xfb,0x44,0x00,0x0c,0x21,0xb8,0x20,0x02,
+0x42,0x00,0xd5,0x37,0x03,0x0c,0xd1,0x37,0x17,0x0e,0xd6,0x37,0x04,0x00,0x14,0x24,
+0x2a,0xb0,0x03,0x3c,0x06,0x00,0x63,0x34,0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,
+0x00,0xff,0x42,0x30,0x0a,0x00,0x40,0x18,0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c,
+0x94,0xa2,0x84,0x24,0x00,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0x94,
+0x00,0x00,0x00,0x00,0x00,0xff,0x42,0x30,0xfc,0xff,0x40,0x1c,0x00,0x00,0x00,0x00,
+0x08,0x00,0x65,0x8e,0x20,0x10,0x06,0x3c,0x01,0x00,0x04,0x24,0x00,0xfe,0xc6,0x34,
+0x40,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa4,0xaf,0x4d,0x01,0x00,0x0c,
+0x01,0x00,0x04,0x24,0x02,0x80,0x02,0x3c,0x98,0xa2,0x42,0x24,0x00,0x00,0x45,0x8c,
+0x01,0x00,0x03,0x24,0x21,0x20,0x00,0x00,0x00,0x00,0xa3,0xa0,0xff,0xff,0x03,0x24,
+0x00,0x00,0xa3,0xa2,0x00,0x00,0x22,0x92,0x00,0x00,0x00,0x00,0xff,0x00,0x42,0x30,
+0x40,0x00,0x42,0x34,0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,
+0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x02,0x00,0x02,0x24,
+0x02,0x80,0x04,0x3c,0x00,0x00,0xa2,0xa0,0x68,0x15,0x83,0x24,0xc1,0x42,0x62,0x90,
+0x00,0x00,0xc4,0x92,0x21,0x28,0x00,0x00,0x00,0x00,0xc2,0xa2,0xff,0x00,0x90,0x30,
+0x01,0x00,0xa2,0x24,0xff,0x00,0x45,0x30,0x06,0x00,0xa3,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0xa2,0x24,0xef,0xff,0x02,0x24,0x64,0x00,0x04,0x24,0x00,0x00,0xa2,0xa2,
+0x1a,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x92,0x21,0x20,0x00,0x00,
+0xbf,0x00,0x42,0x30,0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,
+0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x1a,0x0c,0x00,0x0c,
+0x84,0x03,0x04,0x24,0xf4,0x08,0xc2,0x37,0x00,0x00,0x43,0x8c,0x00,0x80,0x04,0x3c,
+0xdf,0x07,0x84,0x34,0x00,0x00,0xd0,0xa2,0x21,0x10,0x00,0x00,0x24,0x28,0x64,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x00,0x00,0xa0,0xa2,0x00,0x00,0x22,0x92,0x21,0x20,0x00,0x00,
+0xff,0x00,0x42,0x30,0x40,0x00,0x42,0x34,0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24,
+0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,
+0xbe,0x42,0xe2,0x92,0x1f,0x00,0xa3,0x30,0x2b,0x10,0x62,0x00,0x0a,0x00,0x40,0x10,
+0x02,0x80,0x02,0x3c,0xbf,0x42,0xe2,0x92,0x00,0x00,0x00,0x00,0x2b,0x10,0x43,0x00,
+0x05,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x01,0x00,0x02,0x3c,0x25,0x10,0x62,0x00,
+0x21,0x90,0x42,0x02,0x02,0x80,0x02,0x3c,0xee,0x7d,0x43,0x90,0x22,0x00,0x02,0x24,
+0x1c,0x00,0x62,0x10,0x92,0x00,0x02,0x24,0x1b,0x00,0x62,0x10,0x02,0x80,0x03,0x3c,
+0xff,0xff,0x94,0x26,0x1a,0x0c,0x00,0x0c,0xf4,0x01,0x04,0x24,0x89,0xff,0x81,0x06,
+0x2a,0xb0,0x03,0x3c,0x04,0x00,0x60,0x12,0x25,0xb0,0x02,0x3c,0x70,0x4f,0x00,0x0c,
+0x21,0x20,0x60,0x02,0x25,0xb0,0x02,0x3c,0xd8,0x02,0x42,0x34,0x00,0x00,0x52,0xac,
+0x21,0x10,0x40,0x02,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x40,0x00,0xbd,0x27,0x02,0x80,0x03,0x3c,0x68,0x15,0x63,0x24,0xbe,0x42,0x62,0x90,
+0xc0,0x07,0xa3,0x30,0x82,0x19,0x03,0x00,0x2b,0x10,0x62,0x00,0xe0,0xff,0x40,0x10,
+0x02,0x80,0x04,0x3c,0x68,0x15,0x84,0x24,0xbf,0x42,0x82,0x90,0x00,0x00,0x00,0x00,
+0x2b,0x10,0x43,0x00,0xda,0xff,0x40,0x10,0x00,0x12,0x03,0x00,0x10,0x00,0x03,0x3c,
+0x25,0x10,0x43,0x00,0xd8,0x15,0x00,0x08,0x21,0x90,0x42,0x02,0xe0,0xff,0xbd,0x27,
+0x10,0x00,0xb0,0xaf,0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,0xf0,0xf8,0x06,0x34,
+0x15,0x00,0x04,0x24,0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x6a,0x44,0x00,0x0c,
+0x14,0x00,0xb1,0xaf,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x02,0x80,0x12,0x3c,
+0xff,0xff,0x05,0x36,0x56,0x30,0x06,0x24,0x6a,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,
+0x68,0x15,0x51,0x26,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x04,0x43,0x23,0x92,
+0x04,0x00,0x02,0x24,0x20,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c,0x14,0x43,0x25,0x8e,
+0x25,0xb0,0x10,0x3c,0x15,0x5a,0x00,0x0c,0x00,0x0e,0x04,0x36,0x14,0x43,0x25,0x8e,
+0x15,0x5a,0x00,0x0c,0x04,0x0e,0x04,0x36,0x18,0x43,0x25,0x8e,0x15,0x5a,0x00,0x0c,
+0x08,0x0e,0x04,0x36,0x14,0x43,0x25,0x8e,0x15,0x5a,0x00,0x0c,0x10,0x0e,0x04,0x36,
+0x14,0x43,0x25,0x8e,0x15,0x5a,0x00,0x0c,0x14,0x0e,0x04,0x36,0x14,0x43,0x25,0x8e,
+0x15,0x5a,0x00,0x0c,0x18,0x0e,0x04,0x36,0x14,0x43,0x25,0x8e,0x15,0x5a,0x00,0x0c,
+0x1c,0x0e,0x04,0x36,0x68,0x15,0x43,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x04,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,
+0x08,0x00,0xe0,0x03,0x04,0x43,0x62,0xa0,0x00,0x0e,0x42,0x34,0x00,0x00,0x43,0x8c,
+0x14,0x43,0x25,0x8e,0x00,0x00,0x00,0x00,0xde,0xff,0x65,0x14,0x25,0xb0,0x10,0x3c,
+0x32,0x16,0x00,0x08,0x68,0x15,0x43,0x26,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,
+0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,0xf0,0xf8,0x06,0x34,0x15,0x00,0x04,0x24,
+0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x6a,0x44,0x00,0x0c,0x14,0x00,0xb1,0xaf,
+0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0xff,0xff,0x05,0x36,0x56,0x30,0x06,0x24,
+0x6a,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,0x02,0x80,0x10,0x3c,0x1a,0x0c,0x00,0x0c,
+0x64,0x00,0x04,0x24,0x68,0x15,0x02,0x26,0x04,0x43,0x46,0x90,0x25,0xb0,0x11,0x3c,
+0x10,0x10,0x12,0x3c,0x01,0x00,0x03,0x24,0x00,0x0e,0x24,0x36,0x1e,0x00,0xc3,0x10,
+0x10,0x10,0x45,0x36,0x15,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00,0x04,0x0e,0x24,0x36,
+0x15,0x5a,0x00,0x0c,0x10,0x10,0x45,0x36,0x08,0x0e,0x24,0x36,0x15,0x5a,0x00,0x0c,
+0x10,0x10,0x05,0x24,0x10,0x0e,0x24,0x36,0x15,0x5a,0x00,0x0c,0x10,0x10,0x45,0x36,
+0x14,0x0e,0x24,0x36,0x15,0x5a,0x00,0x0c,0x10,0x10,0x45,0x36,0x18,0x0e,0x24,0x36,
+0x15,0x5a,0x00,0x0c,0x10,0x10,0x45,0x36,0x1c,0x0e,0x24,0x36,0x15,0x5a,0x00,0x0c,
+0x10,0x10,0x45,0x36,0x68,0x15,0x03,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,
+0x08,0x00,0xe0,0x03,0x04,0x43,0x62,0xa0,0x00,0x00,0x86,0x8c,0x00,0x00,0x00,0x00,
+0xe0,0xff,0xc5,0x14,0x68,0x15,0x03,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,
+0x08,0x00,0xe0,0x03,0x04,0x43,0x62,0xa0,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,
+0x10,0x00,0xb0,0xaf,0x0f,0x00,0x11,0x3c,0x01,0x00,0x10,0x3c,0xff,0xff,0x25,0x36,
+0xf4,0x98,0x06,0x36,0x15,0x00,0x04,0x24,0x1c,0x00,0xbf,0xaf,0x6a,0x44,0x00,0x0c,
+0x18,0x00,0xb2,0xaf,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x56,0x30,0x06,0x36,
+0xff,0xff,0x25,0x36,0x1a,0x00,0x04,0x24,0x6a,0x44,0x00,0x0c,0x02,0x80,0x11,0x3c,
+0x68,0x15,0x30,0x26,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x04,0x43,0x02,0x92,
+0x25,0xb0,0x12,0x3c,0x08,0x00,0x40,0x14,0x08,0x0e,0x44,0x36,0x25,0xb0,0x02,0x3c,
+0x00,0x0e,0x42,0x34,0x00,0x00,0x45,0x8c,0xec,0x42,0x03,0x8e,0x00,0x00,0x00,0x00,
+0x17,0x00,0xa3,0x10,0x68,0x15,0x22,0x26,0xe8,0x42,0x05,0x8e,0x15,0x5a,0x00,0x0c,
+0x00,0x00,0x00,0x00,0xec,0x42,0x05,0x8e,0x15,0x5a,0x00,0x0c,0x00,0x0e,0x44,0x36,
+0xf0,0x42,0x05,0x8e,0x15,0x5a,0x00,0x0c,0x04,0x0e,0x44,0x36,0xf4,0x42,0x05,0x8e,
+0x15,0x5a,0x00,0x0c,0x10,0x0e,0x44,0x36,0xf8,0x42,0x05,0x8e,0x15,0x5a,0x00,0x0c,
+0x14,0x0e,0x44,0x36,0xfc,0x42,0x05,0x8e,0x15,0x5a,0x00,0x0c,0x18,0x0e,0x44,0x36,
+0x00,0x43,0x05,0x8e,0x15,0x5a,0x00,0x0c,0x1c,0x0e,0x44,0x36,0x68,0x15,0x22,0x26,
+0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x04,0x43,0x40,0xa0,0xe0,0xff,0xbd,0x27,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x0f,0x00,0x11,0x3c,0x01,0x00,0x10,0x3c,
+0xff,0xff,0x25,0x36,0xf4,0x98,0x06,0x36,0x15,0x00,0x04,0x24,0x1c,0x00,0xbf,0xaf,
+0x6a,0x44,0x00,0x0c,0x18,0x00,0xb2,0xaf,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x02,0x80,0x12,0x3c,0xff,0xff,0x25,0x36,0x56,0x30,0x06,0x36,0x6a,0x44,0x00,0x0c,
+0x1a,0x00,0x04,0x24,0x68,0x15,0x51,0x26,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x04,0x43,0x23,0x92,0x03,0x00,0x02,0x24,0x2c,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c,
+0xec,0x42,0x25,0x8e,0x25,0xb0,0x10,0x3c,0x15,0x5a,0x00,0x0c,0x00,0x0e,0x04,0x36,
+0xf0,0x42,0x25,0x8e,0x15,0x5a,0x00,0x0c,0x04,0x0e,0x04,0x36,0xf4,0x42,0x25,0x8e,
+0x15,0x5a,0x00,0x0c,0x10,0x0e,0x04,0x36,0xf8,0x42,0x25,0x8e,0x15,0x5a,0x00,0x0c,
+0x14,0x0e,0x04,0x36,0xfc,0x42,0x25,0x8e,0x15,0x5a,0x00,0x0c,0x18,0x0e,0x04,0x36,
+0x00,0x43,0x25,0x8e,0x15,0x5a,0x00,0x0c,0x1c,0x0e,0x04,0x36,0x08,0x43,0x24,0x8e,
+0xe8,0x42,0x22,0x8e,0x00,0x00,0x00,0x00,0x21,0x28,0x44,0x00,0x00,0xff,0xa3,0x30,
+0xff,0xff,0x02,0x3c,0xff,0x00,0x42,0x34,0x01,0x3f,0x63,0x2c,0x24,0x10,0xa2,0x00,
+0x0c,0x00,0x60,0x10,0x08,0x0e,0x04,0x36,0x15,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x68,0x15,0x43,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x03,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,
+0x04,0x43,0x62,0xa0,0xfa,0x16,0x00,0x08,0x00,0x3f,0x45,0x34,0x00,0x0e,0x42,0x34,
+0x00,0x00,0x43,0x8c,0xec,0x42,0x25,0x8e,0x00,0x00,0x00,0x00,0xd2,0xff,0x65,0x14,
+0x25,0xb0,0x10,0x3c,0xfd,0x16,0x00,0x08,0x68,0x15,0x43,0x26,0xd0,0xff,0xbd,0x27,
+0x18,0x00,0xb2,0xaf,0x02,0x80,0x12,0x3c,0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,
+0x68,0x15,0x42,0x26,0x28,0x00,0xbf,0xaf,0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,
+0x10,0x00,0xb0,0xaf,0xe8,0x63,0x43,0x8c,0x02,0x80,0x15,0x3c,0xee,0x7d,0xa4,0x92,
+0x04,0x43,0x53,0x90,0x25,0xb0,0x02,0x3c,0x0f,0x0c,0x42,0x34,0x02,0x19,0x03,0x00,
+0x00,0x00,0x44,0xa0,0x7f,0x00,0x74,0x30,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,
+0x68,0x15,0x42,0x26,0x00,0x40,0x43,0x8c,0x00,0x10,0x02,0x24,0xf0,0xf0,0x63,0x30,
+0x98,0x00,0x62,0x10,0x01,0x00,0x02,0x24,0x25,0xb0,0x09,0x3c,0x4c,0x00,0x23,0x35,
+0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,0x3f,0x00,0x40,0x10,
+0x68,0x15,0x45,0x26,0x68,0x15,0x4a,0x26,0x00,0x40,0x42,0x8d,0x00,0x00,0x00,0x00,
+0x02,0x13,0x02,0x00,0x0f,0x00,0x42,0x30,0x38,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x00,0x0e,0x25,0x35,0x00,0x00,0xa2,0x8c,0x00,0x00,0x00,0x00,0x8c,0x00,0x40,0x10,
+0x10,0x0e,0x26,0x35,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x08,0x0e,0x22,0x35,0x04,0x0e,0x24,0x35,0x00,0x00,0x43,0x8c,
+0x00,0x00,0xa5,0x8c,0x00,0x00,0x82,0x8c,0xe8,0x42,0x43,0xad,0xec,0x42,0x45,0xad,
+0xf0,0x42,0x42,0xad,0x14,0x0e,0x24,0x35,0x18,0x0e,0x22,0x35,0x1c,0x0e,0x25,0x35,
+0x00,0x00,0xc6,0x8c,0x00,0x00,0x87,0x8c,0x00,0x00,0x48,0x8c,0x00,0x00,0xa4,0x8c,
+0x00,0xff,0x63,0x30,0x9a,0x0c,0x22,0x35,0x02,0x1a,0x03,0x00,0x00,0x43,0x44,0xad,
+0x00,0x00,0x43,0xa0,0xf4,0x42,0x46,0xad,0xf8,0x42,0x47,0xad,0xfc,0x42,0x48,0xad,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0xee,0x7d,0xa3,0x92,0x22,0x00,0x02,0x24,
+0xac,0x00,0x62,0x10,0x92,0x00,0x02,0x24,0xab,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x68,0x15,0x44,0x26,
+0x00,0x40,0x83,0x8c,0xff,0xff,0x02,0x3c,0xff,0x0f,0x42,0x34,0x24,0x18,0x62,0x00,
+0x00,0x10,0x63,0x34,0x00,0x40,0x83,0xac,0x68,0x15,0x45,0x26,0x04,0x43,0xa2,0x8c,
+0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0x0f,0x00,0x40,0x14,0x68,0x15,0x42,0x26,
+0x25,0xb0,0x02,0x3c,0x84,0x01,0x42,0x34,0x00,0x00,0x44,0x8c,0x0d,0x00,0x03,0x24,
+0x8c,0x00,0x83,0x10,0x3e,0x00,0x02,0x24,0x4a,0x00,0x03,0x24,0x1f,0x43,0xa2,0xa0,
+0x45,0x00,0x02,0x24,0x1c,0x43,0xa3,0xa0,0x1d,0x43,0xa2,0xa0,0x43,0x00,0x03,0x24,
+0x1e,0x43,0xa3,0xa0,0x68,0x15,0x42,0x26,0xe8,0x63,0x43,0x8c,0x25,0xb0,0x02,0x3c,
+0x60,0x0c,0x42,0x34,0x02,0x19,0x03,0x00,0xff,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x42,0x26,0x04,0x40,0x43,0x8c,
+0x25,0xb0,0x02,0x3c,0x98,0x0c,0x42,0x34,0x02,0x19,0x03,0x00,0xff,0x00,0x63,0x30,
+0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x42,0x26,
+0x1e,0x43,0x44,0x90,0x25,0xb0,0x03,0x3c,0x66,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x42,0x26,0x1c,0x43,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x67,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x68,0x15,0x44,0x26,0x00,0x40,0x85,0x8c,0x10,0x10,0x02,0x24,
+0xf0,0xf0,0xa3,0x30,0x2b,0x00,0x62,0x10,0xff,0xff,0x02,0x34,0x28,0x00,0xbf,0x8f,
+0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x30,0x00,0xbd,0x27,0x0d,0x00,0x62,0x12,0x04,0x00,0x02,0x24,0x0b,0x00,0x62,0x12,
+0x68,0x15,0x43,0x26,0xff,0xff,0x02,0x24,0x2e,0x17,0x00,0x08,0x04,0x43,0x62,0xa0,
+0x00,0x00,0xc3,0x8c,0x3f,0x3f,0x02,0x3c,0x3f,0x3f,0x42,0x34,0x71,0xff,0x62,0x14,
+0x00,0x00,0x00,0x00,0x73,0x17,0x00,0x08,0x68,0x15,0x45,0x26,0x0f,0x00,0x10,0x3c,
+0x01,0x00,0x11,0x3c,0xff,0xff,0x05,0x36,0xf4,0x98,0x26,0x36,0x6a,0x44,0x00,0x0c,
+0x15,0x00,0x04,0x24,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0xff,0xff,0x05,0x36,
+0x56,0x30,0x26,0x36,0x6a,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,0x1a,0x0c,0x00,0x0c,
+0x64,0x00,0x04,0x24,0x68,0x15,0x43,0x26,0xff,0xff,0x02,0x24,0x2e,0x17,0x00,0x08,
+0x04,0x43,0x62,0xa0,0xe8,0x63,0x83,0x8c,0x00,0x00,0x00,0x00,0xd3,0xff,0x62,0x10,
+0x02,0x12,0x05,0x00,0x0f,0x00,0x45,0x30,0x01,0x00,0x03,0x24,0xcf,0xff,0xa3,0x14,
+0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,
+0x03,0x00,0x63,0x30,0xc9,0xff,0x60,0x10,0x03,0x00,0x02,0x24,0x4d,0x00,0x62,0x12,
+0x04,0x00,0x62,0x2a,0x2f,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x52,0x00,0x60,0x12,
+0x00,0x00,0x00,0x00,0xc1,0xff,0x65,0x16,0x00,0x00,0x00,0x00,0x1c,0x43,0x82,0x90,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0x3e,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x1f,0x43,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00,0x30,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0x86,0x16,0x00,0x0c,0x00,0x00,0x00,0x00,0xbb,0x17,0x00,0x08,
+0x00,0x00,0x00,0x00,0x3b,0x00,0x02,0x24,0x46,0x00,0x03,0x24,0x1f,0x43,0xa2,0xa0,
+0x1c,0x43,0xa3,0xa0,0x41,0x00,0x02,0x24,0x40,0x00,0x03,0x24,0x84,0x17,0x00,0x08,
+0x1d,0x43,0xa2,0xa0,0x25,0xb0,0x02,0x3c,0x0d,0x08,0x42,0x34,0x00,0x00,0x43,0x90,
+0x00,0x00,0x00,0x00,0x0f,0x00,0x63,0x30,0x08,0x00,0x62,0x2c,0x0f,0x00,0x63,0x38,
+0x4f,0xff,0x40,0x14,0x01,0x00,0x65,0x24,0x00,0x1c,0x05,0x00,0x00,0x16,0x05,0x00,
+0x25,0x10,0x43,0x00,0x00,0x22,0x05,0x00,0x25,0x10,0x44,0x00,0x68,0x15,0x43,0x26,
+0x25,0x20,0x85,0x00,0x25,0x10,0x45,0x00,0x18,0x43,0x64,0xac,0x68,0x17,0x00,0x08,
+0x14,0x43,0x62,0xac,0x04,0x00,0x02,0x24,0x11,0x00,0x62,0x12,0xff,0x00,0x02,0x24,
+0x92,0xff,0x62,0x16,0x00,0x00,0x00,0x00,0x1e,0x43,0x82,0x90,0x00,0x00,0x00,0x00,
+0x2b,0x10,0x82,0x02,0x21,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x1c,0x43,0x82,0x90,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0x0a,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x42,0x16,0x00,0x0c,0x00,0x00,0x00,0x00,0xbb,0x17,0x00,0x08,0x00,0x00,0x00,0x00,
+0x1d,0x43,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00,0xf8,0xff,0x40,0x10,
+0x00,0x00,0x00,0x00,0x03,0x16,0x00,0x0c,0x00,0x00,0x00,0x00,0xbb,0x17,0x00,0x08,
+0x00,0x00,0x00,0x00,0x20,0x43,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,
+0xc0,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0xc3,0x16,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xbb,0x17,0x00,0x08,0x00,0x00,0x00,0x00,0x1e,0x43,0x82,0x90,0x00,0x00,0x00,0x00,
+0x2b,0x10,0x82,0x02,0xe6,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x21,0x43,0x82,0x90,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00,0xb2,0xff,0x40,0x14,0x00,0x00,0x00,0x00,
+0xc3,0x16,0x00,0x0c,0x00,0x00,0x00,0x00,0xbb,0x17,0x00,0x08,0x00,0x00,0x00,0x00,
+0x02,0x80,0x08,0x3c,0x68,0x15,0x05,0x25,0xe8,0x63,0xa4,0x8c,0xe6,0x42,0xa3,0x90,
+0x02,0x11,0x04,0x00,0x26,0x00,0x60,0x14,0x7f,0x00,0x46,0x30,0x25,0xb0,0x07,0x3c,
+0x4c,0x00,0xe2,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x20,0x00,0x60,0x10,
+0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x34,0x1d,0x00,0x82,0x10,0x00,0x00,0x00,0x00,
+0x00,0x08,0xe3,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,
+0x19,0x00,0x40,0x10,0x4b,0x00,0xc2,0x2c,0x3e,0x00,0x40,0x10,0x01,0x00,0x04,0x24,
+0xd8,0xff,0xc2,0x24,0x1e,0x00,0x42,0x2c,0x49,0x00,0x40,0x10,0x23,0x00,0xc2,0x2c,
+0x68,0x15,0x04,0x25,0xd3,0x42,0x82,0x90,0x00,0x00,0x00,0x00,0x44,0x00,0x40,0x10,
+0x23,0x00,0xc2,0x2c,0x25,0xb0,0x02,0x3c,0x87,0x0c,0x42,0x34,0x20,0x00,0x03,0x24,
+0x00,0x00,0x43,0xa0,0xd3,0x42,0x80,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x17,0x00,0x40,0x10,0x01,0x00,0x04,0x24,
+0xd8,0xff,0xc2,0x24,0x1e,0x00,0x42,0x2c,0x44,0x00,0x40,0x10,0x23,0x00,0xc2,0x2c,
+0x68,0x15,0x04,0x25,0xd3,0x42,0x82,0x90,0x00,0x00,0x00,0x00,0x3f,0x00,0x40,0x10,
+0x23,0x00,0xc2,0x2c,0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34,0x44,0x00,0x03,0x24,
+0x00,0x00,0x43,0xa0,0xd3,0x42,0x80,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xd3,0x42,0xa2,0x90,0x00,0x00,0x00,0x00,
+0xe7,0xff,0x44,0x10,0x43,0x00,0x02,0x24,0x30,0x0c,0xe3,0x34,0xd3,0x42,0xa4,0xa0,
+0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0xd3,0x42,0xa2,0x90,0x00,0x00,0x00,0x00,0xc0,0xff,0x44,0x10,
+0x10,0x00,0x02,0x24,0x87,0x0c,0xe3,0x34,0xd3,0x42,0xa4,0xa0,0x00,0x00,0x62,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0xc7,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x68,0x15,0x04,0x25,0xd3,0x42,0x82,0x90,
+0x02,0x00,0x03,0x24,0xc2,0xff,0x43,0x10,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,
+0x87,0x0c,0x42,0x34,0xd3,0x42,0x83,0xa0,0x00,0x00,0x40,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xb4,0xff,0x40,0x10,
+0x00,0x00,0x00,0x00,0x68,0x15,0x04,0x25,0xd3,0x42,0x82,0x90,0x02,0x00,0x03,0x24,
+0xaf,0xff,0x43,0x10,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xd3,0x42,0x83,0xa0,
+0x30,0x0c,0x42,0x34,0x42,0x00,0x03,0x24,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xff,0xff,0x8d,0x30,
+0x00,0x60,0x0f,0x40,0x01,0x00,0xe1,0x35,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x02,0x80,0x06,0x3c,0x68,0x15,0xce,0x24,0x76,0x4b,0xc2,0x91,0x00,0x00,0x00,0x00,
+0x1d,0x00,0x40,0x10,0x25,0xb0,0x03,0x3c,0x38,0x02,0x64,0x34,0x80,0xff,0x02,0x24,
+0x00,0x00,0x82,0xa0,0x34,0x02,0x6a,0x34,0xd2,0x01,0x65,0x34,0xd6,0x01,0x66,0x34,
+0xda,0x01,0x67,0x34,0xde,0x01,0x63,0x34,0x00,0x00,0xa8,0x94,0x00,0x00,0xc9,0x94,
+0x00,0x00,0xeb,0x94,0x00,0x00,0x6c,0x94,0x00,0x00,0x44,0x95,0xb0,0xfe,0xa2,0x25,
+0xff,0xff,0x4d,0x30,0x74,0x4b,0xc4,0xa5,0x00,0x00,0xa0,0xa4,0x6c,0x4b,0xc8,0xa5,
+0x00,0x00,0xc0,0xa4,0x6e,0x4b,0xc9,0xa5,0x00,0x00,0xe0,0xa4,0x70,0x4b,0xcb,0xa5,
+0x00,0x00,0x60,0xa4,0x00,0x00,0x4d,0xa5,0x72,0x4b,0xcc,0xa5,0x00,0x60,0x8f,0x40,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x2a,0xb0,0x02,0x3c,0x0a,0x00,0x45,0x34,
+0x63,0x00,0x03,0x24,0xff,0xff,0x04,0x34,0x00,0x00,0xa2,0x90,0x00,0x00,0x00,0x00,
+0x0a,0x00,0x40,0x10,0x68,0x15,0xc2,0x24,0x64,0x00,0x02,0x24,0xff,0xff,0x42,0x24,
+0xff,0xff,0x42,0x30,0xfe,0xff,0x40,0x14,0xff,0xff,0x42,0x24,0xff,0xff,0x62,0x24,
+0xff,0xff,0x43,0x30,0xf4,0xff,0x64,0x14,0x68,0x15,0xc2,0x24,0x74,0x4b,0x48,0x94,
+0x72,0x4b,0x47,0x94,0x6c,0x4b,0x49,0x94,0x6e,0x4b,0x4a,0x94,0x70,0x4b,0x4b,0x94,
+0x25,0xb0,0x03,0x3c,0x38,0x02,0x6c,0x34,0x34,0x02,0x62,0x34,0xd2,0x01,0x64,0x34,
+0xd6,0x01,0x65,0x34,0xda,0x01,0x66,0x34,0xde,0x01,0x63,0x34,0x00,0x00,0x48,0xa4,
+0x00,0x00,0x89,0xa4,0x00,0x00,0xaa,0xa4,0x00,0x00,0xcb,0xa4,0x00,0x00,0x67,0xa4,
+0x00,0x00,0x80,0xa1,0x00,0x60,0x8f,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x02,0x3c,0x08,0x00,0x43,0x34,0x00,0x00,0x64,0x94,0x03,0x00,0x49,0x34,
+0x40,0x00,0x45,0x34,0x00,0x24,0x04,0x00,0x03,0x24,0x04,0x00,0xfc,0x77,0x0a,0x24,
+0x00,0x03,0x46,0x34,0x04,0x03,0x47,0x34,0x0f,0x00,0x80,0x04,0x23,0x00,0x48,0x34,
+0x00,0x00,0x22,0x91,0xfe,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0x00,0x00,0x22,0xa1,
+0x22,0x00,0x02,0x24,0x00,0x00,0xc0,0xac,0x00,0x00,0xe0,0xac,0x00,0x00,0x02,0xa1,
+0xfc,0x37,0x02,0x24,0x00,0x00,0xaa,0xa4,0x00,0x00,0xa2,0xa4,0x00,0x00,0xaa,0xa4,
+0x00,0x00,0xa0,0xa4,0x00,0x00,0xa0,0xa4,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xd0,0xff,0xbd,0x27,0x1c,0x00,0xb1,0xaf,0x28,0x00,0xbf,0xaf,0x24,0x00,0xb3,0xaf,
+0x20,0x00,0xb2,0xaf,0x18,0x00,0xb0,0xaf,0xff,0xff,0x11,0x24,0x02,0x80,0x13,0x3c,
+0x41,0xb0,0x02,0x3c,0x68,0x15,0x66,0x26,0x04,0x00,0x42,0x34,0x00,0x00,0x47,0x8c,
+0x00,0x4b,0xc5,0x8c,0x02,0x80,0x03,0x3c,0xf6,0x7d,0x64,0x90,0xfc,0x4a,0xc8,0x8c,
+0x02,0x80,0x02,0x3c,0x18,0x7e,0x49,0x90,0x25,0xb0,0x0a,0x3c,0x25,0x90,0xa7,0x00,
+0xb0,0x03,0x42,0x35,0x00,0x00,0x52,0xac,0x00,0x24,0x04,0x00,0x00,0x00,0x48,0xac,
+0x84,0x02,0x43,0x35,0x8c,0x02,0x45,0x35,0x01,0x00,0x02,0x24,0x00,0x00,0x72,0xac,
+0x00,0x00,0xa4,0xac,0x88,0x04,0x22,0x11,0x00,0x4b,0xd2,0xac,0x68,0x15,0x64,0x26,
+0xfc,0x4a,0x82,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x52,0x00,0x01,0x00,0x42,0x30,
+0x0e,0x00,0x40,0x10,0x68,0x15,0x66,0x26,0x25,0xb0,0x0b,0x3c,0xb0,0x03,0x63,0x35,
+0x01,0x00,0x06,0x24,0x00,0x00,0x66,0xac,0x04,0x00,0x62,0x35,0x00,0x00,0x4a,0x8c,
+0x00,0x4b,0x83,0x8c,0x40,0x00,0x02,0x3c,0x24,0x10,0x42,0x01,0x01,0x00,0x63,0x38,
+0x47,0x04,0x40,0x10,0x00,0x4b,0x83,0xac,0x68,0x15,0x66,0x26,0xfc,0x4a,0xc2,0x8c,
+0x00,0x00,0x00,0x00,0x24,0x28,0x52,0x00,0x04,0x00,0xa3,0x30,0x09,0x00,0x60,0x10,
+0x08,0x00,0xa2,0x30,0x00,0x4b,0xc2,0x8c,0x25,0xb0,0x03,0x3c,0x04,0x00,0x04,0x24,
+0x04,0x00,0x42,0x38,0xb0,0x03,0x63,0x34,0x00,0x00,0x64,0xac,0x00,0x4b,0xc2,0xac,
+0x08,0x00,0xa2,0x30,0x06,0x00,0x40,0x10,0x10,0x00,0xa2,0x30,0x00,0x4b,0xc2,0x8c,
+0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x38,0x00,0x4b,0xc2,0xac,0x10,0x00,0xa2,0x30,
+0x06,0x00,0x40,0x10,0x20,0x00,0xa2,0x30,0x00,0x4b,0xc2,0x8c,0x00,0x00,0x00,0x00,
+0x10,0x00,0x42,0x38,0x00,0x4b,0xc2,0xac,0x20,0x00,0xa2,0x30,0x06,0x00,0x40,0x10,
+0x40,0x00,0xa2,0x30,0x00,0x4b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x38,
+0x00,0x4b,0xc2,0xac,0x40,0x00,0xa2,0x30,0x06,0x00,0x40,0x10,0x80,0x00,0xa2,0x30,
+0x00,0x4b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x38,0x00,0x4b,0xc2,0xac,
+0x80,0x00,0xa2,0x30,0x06,0x00,0x40,0x10,0x00,0x01,0xa2,0x30,0x00,0x4b,0xc2,0x8c,
+0x00,0x00,0x00,0x00,0x80,0x00,0x42,0x38,0x00,0x4b,0xc2,0xac,0x00,0x01,0xa2,0x30,
+0x06,0x00,0x40,0x10,0x00,0x02,0xa2,0x30,0x00,0x4b,0xc2,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x01,0x42,0x38,0x00,0x4b,0xc2,0xac,0x00,0x02,0xa2,0x30,0x06,0x00,0x40,0x10,
+0x00,0x04,0xa2,0x30,0x00,0x4b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x00,0x02,0x42,0x38,
+0x00,0x4b,0xc2,0xac,0x00,0x04,0xa2,0x30,0x05,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x00,0x4b,0xc2,0x8c,0x00,0x00,0x00,0x00,0x00,0x04,0x42,0x38,0x00,0x4b,0xc2,0xac,
+0x00,0x08,0xa2,0x30,0x36,0x00,0x40,0x10,0x2a,0xb0,0x03,0x3c,0x00,0x00,0x6a,0x8c,
+0xff,0x00,0x02,0x24,0xff,0x00,0x44,0x31,0x2c,0x00,0x82,0x10,0x00,0x80,0x42,0x31,
+0x35,0x04,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,
+0x0b,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x68,0x64,0xc2,0x90,0x20,0xb0,0x03,0x3c,
+0x00,0x12,0x02,0x00,0x21,0x10,0x43,0x00,0x0c,0x00,0x4a,0x8c,0x25,0xb0,0x03,0x3c,
+0xb0,0x03,0x63,0x34,0x00,0x00,0x6a,0xac,0xff,0x00,0x44,0x31,0xff,0x00,0x02,0x24,
+0x1a,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x20,0x65,0x05,0x8e,
+0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,
+0xb4,0x64,0x03,0xae,0x21,0x20,0x00,0x00,0x68,0x64,0x0a,0xa2,0x20,0x00,0x07,0x24,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0xfc,0x4a,0x05,0x8e,0x02,0x80,0x06,0x3c,
+0xcc,0x7e,0xc4,0x8c,0xff,0xc7,0x02,0x24,0x24,0x28,0xa2,0x00,0x25,0xb0,0x02,0x3c,
+0x04,0x00,0x84,0x34,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,
+0x00,0x00,0x65,0xac,0xcc,0x7e,0xc4,0xac,0xfc,0x4a,0x05,0xae,0x68,0x15,0x63,0x26,
+0x00,0x4b,0x62,0x8c,0x00,0x00,0x00,0x00,0x00,0x08,0x42,0x38,0x00,0x4b,0x62,0xac,
+0x68,0x15,0x65,0x26,0xfc,0x4a,0xa2,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x52,0x00,
+0x00,0x10,0x42,0x30,0x38,0x00,0x40,0x10,0x2a,0xb0,0x02,0x3c,0x08,0x00,0x43,0x34,
+0x00,0x00,0x6a,0x8c,0xff,0x00,0x02,0x24,0xff,0x00,0x44,0x31,0x2c,0x00,0x82,0x10,
+0x00,0x80,0x42,0x31,0xfb,0x03,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,
+0x24,0x10,0x42,0x01,0x0b,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x70,0x64,0xa2,0x90,
+0x20,0xb0,0x03,0x3c,0x00,0x12,0x02,0x00,0x21,0x10,0x43,0x00,0x0c,0x00,0x4a,0x8c,
+0x25,0xb0,0x03,0x3c,0xb0,0x03,0x63,0x34,0x00,0x00,0x6a,0xac,0xff,0x00,0x44,0x31,
+0xff,0x00,0x02,0x24,0x1a,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,
+0x38,0x65,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,
+0x21,0x30,0x60,0x00,0xcc,0x64,0x03,0xae,0x01,0x00,0x04,0x24,0x70,0x64,0x0a,0xa2,
+0x20,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0xfc,0x4a,0x05,0x8e,
+0x02,0x80,0x06,0x3c,0xcc,0x7e,0xc4,0x8c,0xff,0xc7,0x02,0x24,0x24,0x28,0xa2,0x00,
+0x25,0xb0,0x02,0x3c,0x10,0x00,0x84,0x34,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,
+0x00,0x00,0x44,0xac,0x00,0x00,0x65,0xac,0xcc,0x7e,0xc4,0xac,0xfc,0x4a,0x05,0xae,
+0x68,0x15,0x63,0x26,0x00,0x4b,0x62,0x8c,0x00,0x00,0x00,0x00,0x00,0x10,0x42,0x38,
+0x00,0x4b,0x62,0xac,0x68,0x15,0x65,0x26,0xfc,0x4a,0xa2,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x10,0x52,0x00,0x00,0x20,0x42,0x30,0x37,0x00,0x40,0x10,0x2a,0xb0,0x02,0x3c,
+0x04,0x00,0x43,0x34,0x00,0x00,0x6a,0x8c,0xff,0x00,0x02,0x24,0xff,0x00,0x44,0x31,
+0xe9,0x03,0x82,0x10,0x00,0x80,0x42,0x31,0xc1,0x03,0x40,0x14,0x00,0x80,0x02,0x3c,
+0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x0b,0x00,0x40,0x10,0xff,0x00,0x02,0x24,
+0x6c,0x64,0xa2,0x90,0x20,0xb0,0x03,0x3c,0x00,0x12,0x02,0x00,0x21,0x10,0x43,0x00,
+0x0c,0x00,0x4a,0x8c,0x25,0xb0,0x03,0x3c,0xb0,0x03,0x63,0x34,0x00,0x00,0x6a,0xac,
+0xff,0x00,0x44,0x31,0xff,0x00,0x02,0x24,0x1a,0x00,0x82,0x10,0x68,0x15,0x70,0x26,
+0xff,0x00,0x43,0x31,0x2c,0x65,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0xc0,0x64,0x03,0xae,0x01,0x00,0x04,0x24,
+0x6c,0x64,0x0a,0xa2,0x20,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0xfc,0x4a,0x05,0x8e,0x02,0x80,0x06,0x3c,0xcc,0x7e,0xc4,0x8c,0xff,0xc7,0x02,0x24,
+0x24,0x28,0xa2,0x00,0x25,0xb0,0x02,0x3c,0x20,0x00,0x84,0x34,0x80,0x03,0x42,0x34,
+0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x65,0xac,0xcc,0x7e,0xc4,0xac,
+0xfc,0x4a,0x05,0xae,0x68,0x15,0x63,0x26,0x00,0x4b,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x20,0x42,0x38,0x00,0x4b,0x62,0xac,0x68,0x15,0x65,0x26,0xfc,0x4a,0xa2,0x8c,
+0x00,0x00,0x00,0x00,0x24,0x10,0x52,0x00,0x00,0x80,0x42,0x30,0x58,0x00,0x40,0x10,
+0x2a,0xb0,0x06,0x3c,0x0c,0x00,0xc3,0x34,0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,
+0xff,0x00,0x44,0x31,0x9d,0x03,0x87,0x10,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,
+0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,
+0xff,0x00,0x02,0x24,0x40,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,
+0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10,0x68,0x15,0x62,0x26,0x48,0x64,0xa4,0xa0,
+0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,
+0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,
+0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,0x48,0x64,0xe3,0xa0,0x68,0x15,0x62,0x26,
+0x48,0x64,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,
+0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,
+0x00,0x00,0x4a,0xac,0xa9,0x1a,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,
+0xff,0x00,0x02,0x24,0x24,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,
+0xf0,0x64,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,
+0x21,0x30,0x60,0x00,0x48,0x64,0x0a,0xa2,0x84,0x64,0x03,0xae,0x03,0x00,0x04,0x24,
+0x20,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x0a,0x3c,
+0xdc,0x7e,0x47,0x91,0x02,0x80,0x09,0x3c,0xcc,0x7e,0x25,0x8d,0xfc,0x4a,0x06,0x8e,
+0x01,0x00,0x08,0x3c,0x80,0xff,0x02,0x24,0x25,0x38,0xe2,0x00,0x00,0x80,0x03,0x35,
+0x80,0x00,0xa5,0x34,0x27,0x18,0x03,0x00,0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c,
+0x24,0x30,0xc3,0x00,0x25,0x20,0x85,0x00,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,
+0x00,0x00,0x44,0xac,0x27,0x88,0x08,0x00,0x00,0x00,0x66,0xac,0xcc,0x7e,0x25,0xad,
+0xdc,0x7e,0x47,0xa1,0xfc,0x4a,0x06,0xae,0x68,0x15,0x63,0x26,0x00,0x4b,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x80,0x42,0x38,0x00,0x4b,0x62,0xac,0x68,0x15,0x65,0x26,
+0xfc,0x4a,0xa2,0x8c,0x01,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00,
+0x24,0x10,0x43,0x00,0x56,0x00,0x40,0x10,0x2a,0xb0,0x06,0x3c,0x10,0x00,0xc3,0x34,
+0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0x49,0x03,0x87,0x10,
+0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,
+0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,
+0x41,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,
+0x0e,0x00,0x87,0x10,0x68,0x15,0x62,0x26,0x4c,0x64,0xa4,0xa0,0x00,0x00,0xc2,0x90,
+0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00,
+0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,
+0xff,0x00,0x44,0x30,0x4c,0x64,0xe3,0xa0,0x68,0x15,0x62,0x26,0x4c,0x64,0x43,0x90,
+0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,
+0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,
+0x08,0x1b,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,
+0x22,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0xf0,0x64,0x05,0x8e,
+0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,
+0x84,0x64,0x03,0xae,0x03,0x00,0x04,0x24,0x20,0x00,0x07,0x24,0x4c,0x64,0x0a,0xa2,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x09,0x3c,0xdc,0x7e,0x27,0x91,
+0x02,0x80,0x08,0x3c,0xcc,0x7e,0x05,0x8d,0xfc,0x4a,0x06,0x8e,0x01,0x00,0x02,0x3c,
+0x00,0x80,0x42,0x34,0x40,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,
+0x80,0x00,0xa5,0x34,0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00,
+0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac,
+0xcc,0x7e,0x05,0xad,0xdc,0x7e,0x27,0xa1,0xfc,0x4a,0x06,0xae,0x68,0x15,0x62,0x26,
+0x00,0x4b,0x43,0x8c,0x01,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x00,0x4b,0x43,0xac,
+0x68,0x15,0x65,0x26,0xfc,0x4a,0xa2,0x8c,0x02,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,
+0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10,0x2a,0xb0,0x06,0x3c,0x14,0x00,0xc3,0x34,
+0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0xcf,0x02,0x87,0x10,
+0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,
+0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,
+0x42,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,
+0x0e,0x00,0x87,0x10,0x68,0x15,0x62,0x26,0x50,0x64,0xa4,0xa0,0x00,0x00,0xc2,0x90,
+0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00,
+0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,
+0xff,0x00,0x44,0x30,0x50,0x64,0xe3,0xa0,0x68,0x15,0x62,0x26,0x50,0x64,0x43,0x90,
+0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,
+0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,
+0x64,0x1b,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,
+0x25,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0xfc,0x64,0x05,0x8e,
+0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,
+0x50,0x64,0x0a,0xa2,0x90,0x64,0x03,0xae,0x04,0x00,0x04,0x24,0x20,0x00,0x07,0x24,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x0a,0x3c,0xdc,0x7e,0x47,0x91,
+0x02,0x80,0x09,0x3c,0xcc,0x7e,0x25,0x8d,0xfc,0x4a,0x06,0x8e,0x06,0x00,0x02,0x3c,
+0x20,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x00,0x01,0xa5,0x34,
+0x25,0xb0,0x03,0x3c,0x04,0x00,0x02,0x3c,0x00,0x26,0x07,0x00,0x26,0x88,0x22,0x02,
+0xb0,0x03,0x68,0x34,0x25,0x20,0x85,0x00,0x80,0x03,0x63,0x34,0x41,0xb0,0x02,0x3c,
+0x00,0x00,0x64,0xac,0x00,0x00,0x46,0xac,0xcc,0x7e,0x25,0xad,0xdc,0x7e,0x47,0xa1,
+0xfc,0x4a,0x06,0xae,0x00,0x00,0x11,0xad,0x68,0x15,0x62,0x26,0x00,0x4b,0x43,0x8c,
+0x02,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x00,0x4b,0x43,0xac,0x68,0x15,0x65,0x26,
+0xfc,0x4a,0xa2,0x8c,0x04,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00,
+0x24,0x10,0x43,0x00,0x58,0x00,0x40,0x10,0x25,0xb0,0x03,0x3c,0xb0,0x03,0x62,0x34,
+0x2a,0xb0,0x08,0x3c,0x00,0x00,0x51,0xac,0x18,0x00,0x06,0x35,0x00,0x00,0xca,0x8c,
+0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0xa1,0x02,0x87,0x10,0x04,0x00,0x02,0x24,
+0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,
+0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x43,0x00,0x06,0x35,
+0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10,
+0x68,0x15,0x62,0x26,0x54,0x64,0xa4,0xa0,0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,
+0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,
+0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,
+0x54,0x64,0xe3,0xa0,0x68,0x15,0x62,0x26,0x54,0x64,0x43,0x90,0x20,0xb0,0x02,0x3c,
+0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,
+0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,0xc7,0x1b,0x00,0x08,
+0xff,0x00,0x02,0x24,0x00,0x00,0xc2,0xac,0xff,0x00,0x02,0x24,0x21,0x00,0x82,0x10,
+0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0xfc,0x64,0x05,0x8e,0x20,0x10,0x02,0x3c,
+0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0x90,0x64,0x03,0xae,
+0x04,0x00,0x04,0x24,0x20,0x00,0x07,0x24,0x54,0x64,0x0a,0xa2,0x10,0x01,0x00,0x0c,
+0x10,0x00,0xa0,0xaf,0x02,0x80,0x09,0x3c,0xdc,0x7e,0x27,0x91,0x02,0x80,0x08,0x3c,
+0xcc,0x7e,0x05,0x8d,0xfc,0x4a,0x06,0x8e,0x06,0x00,0x02,0x3c,0x10,0x00,0xe7,0x34,
+0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x00,0x01,0xa5,0x34,0x00,0x26,0x07,0x00,
+0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00,0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,
+0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac,0xcc,0x7e,0x05,0xad,0xdc,0x7e,0x27,0xa1,
+0xfc,0x4a,0x06,0xae,0x68,0x15,0x62,0x26,0x00,0x4b,0x43,0x8c,0x04,0x00,0x04,0x3c,
+0x26,0x18,0x64,0x00,0x00,0x4b,0x43,0xac,0x68,0x15,0x65,0x26,0xfc,0x4a,0xa2,0x8c,
+0x08,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10,
+0x2a,0xb0,0x06,0x3c,0x1c,0x00,0xc3,0x34,0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,
+0xff,0x00,0x44,0x31,0x3e,0x02,0x87,0x10,0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31,
+0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,
+0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,0x44,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,
+0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10,0x68,0x15,0x62,0x26,
+0x58,0x64,0xa4,0xa0,0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,
+0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,
+0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,0x58,0x64,0xe3,0xa0,
+0x68,0x15,0x62,0x26,0x58,0x64,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,
+0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,0x22,0x1c,0x00,0x08,0xff,0x00,0x02,0x24,
+0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,0x25,0x00,0x82,0x10,0x68,0x15,0x70,0x26,
+0xff,0x00,0x43,0x31,0x08,0x65,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0x58,0x64,0x0a,0xa2,0x9c,0x64,0x03,0xae,
+0x05,0x00,0x04,0x24,0x20,0x00,0x07,0x24,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x02,0x80,0x0a,0x3c,0xdc,0x7e,0x47,0x91,0x02,0x80,0x09,0x3c,0xcc,0x7e,0x25,0x8d,
+0xfc,0x4a,0x06,0x8e,0x18,0x00,0x02,0x3c,0x08,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,
+0x24,0x30,0xc2,0x00,0x00,0x02,0xa5,0x34,0x25,0xb0,0x03,0x3c,0x10,0x00,0x02,0x3c,
+0x00,0x26,0x07,0x00,0x26,0x88,0x22,0x02,0xb0,0x03,0x68,0x34,0x25,0x20,0x85,0x00,
+0x80,0x03,0x63,0x34,0x41,0xb0,0x02,0x3c,0x00,0x00,0x64,0xac,0x00,0x00,0x46,0xac,
+0xcc,0x7e,0x25,0xad,0xdc,0x7e,0x47,0xa1,0xfc,0x4a,0x06,0xae,0x00,0x00,0x11,0xad,
+0x68,0x15,0x62,0x26,0x00,0x4b,0x43,0x8c,0x08,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,
+0x00,0x4b,0x43,0xac,0x68,0x15,0x65,0x26,0xfc,0x4a,0xa2,0x8c,0x10,0x00,0x03,0x3c,
+0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00,0x24,0x10,0x43,0x00,0x58,0x00,0x40,0x10,
+0x25,0xb0,0x06,0x3c,0xb0,0x03,0xc2,0x34,0x2a,0xb0,0x08,0x3c,0x00,0x00,0x51,0xac,
+0x20,0x00,0x03,0x35,0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,
+0xe0,0x01,0x87,0x10,0x90,0x03,0xc2,0x34,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,
+0x00,0x80,0x02,0x3c,0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,
+0xff,0x00,0x02,0x24,0x45,0x00,0x06,0x35,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,
+0xff,0x00,0x44,0x30,0x0e,0x00,0x87,0x10,0x68,0x15,0x62,0x26,0x64,0x64,0xa4,0xa0,
+0x00,0x00,0xc2,0x90,0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,
+0x21,0x38,0xa0,0x00,0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,
+0xfd,0xff,0x62,0x14,0xff,0x00,0x44,0x30,0x64,0x64,0xe3,0xa0,0x68,0x15,0x62,0x26,
+0x64,0x64,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,
+0x0c,0x00,0x6a,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,
+0x00,0x00,0x4a,0xac,0x85,0x1c,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,
+0xff,0x00,0x02,0x24,0x21,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,
+0x08,0x65,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,
+0x21,0x30,0x60,0x00,0x9c,0x64,0x03,0xae,0x05,0x00,0x04,0x24,0x20,0x00,0x07,0x24,
+0x64,0x64,0x0a,0xa2,0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x09,0x3c,
+0xdc,0x7e,0x27,0x91,0x02,0x80,0x08,0x3c,0xcc,0x7e,0x05,0x8d,0xfc,0x4a,0x06,0x8e,
+0x18,0x00,0x02,0x3c,0x01,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,
+0x00,0x02,0xa5,0x34,0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00,
+0x80,0x03,0x42,0x34,0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac,
+0xcc,0x7e,0x05,0xad,0xdc,0x7e,0x27,0xa1,0xfc,0x4a,0x06,0xae,0x68,0x15,0x62,0x26,
+0x00,0x4b,0x43,0x8c,0x10,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x00,0x4b,0x43,0xac,
+0x68,0x15,0x65,0x26,0xfc,0x4a,0xa2,0x8c,0x20,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,
+0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10,0x2a,0xb0,0x06,0x3c,0x24,0x00,0xc3,0x34,
+0x00,0x00,0x6a,0x8c,0xff,0x00,0x07,0x24,0xff,0x00,0x44,0x31,0x58,0x01,0x87,0x10,
+0x25,0xb0,0x02,0x3c,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,
+0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,
+0x46,0x00,0xc6,0x34,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,
+0x0e,0x00,0x87,0x10,0x68,0x15,0x62,0x26,0x5c,0x64,0xa4,0xa0,0x00,0x00,0xc2,0x90,
+0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x38,0xa0,0x00,
+0x21,0x28,0xc0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,
+0xff,0x00,0x44,0x30,0x5c,0x64,0xe3,0xa0,0x68,0x15,0x62,0x26,0x5c,0x64,0x43,0x90,
+0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,
+0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,
+0xe0,0x1c,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,
+0x25,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x14,0x65,0x05,0x8e,
+0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,
+0x5c,0x64,0x0a,0xa2,0xa8,0x64,0x03,0xae,0x06,0x00,0x04,0x24,0x20,0x00,0x07,0x24,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x0a,0x3c,0xdc,0x7e,0x47,0x91,
+0x02,0x80,0x09,0x3c,0xcc,0x7e,0x25,0x8d,0xfc,0x4a,0x06,0x8e,0x60,0x00,0x02,0x3c,
+0x04,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x00,0x04,0xa5,0x34,
+0x25,0xb0,0x03,0x3c,0x40,0x00,0x02,0x3c,0x00,0x26,0x07,0x00,0x26,0x88,0x22,0x02,
+0xb0,0x03,0x68,0x34,0x25,0x20,0x85,0x00,0x80,0x03,0x63,0x34,0x41,0xb0,0x02,0x3c,
+0x00,0x00,0x64,0xac,0x00,0x00,0x46,0xac,0xcc,0x7e,0x25,0xad,0xdc,0x7e,0x47,0xa1,
+0xfc,0x4a,0x06,0xae,0x00,0x00,0x11,0xad,0x68,0x15,0x62,0x26,0x00,0x4b,0x43,0x8c,
+0x20,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x00,0x4b,0x43,0xac,0x68,0x15,0x65,0x26,
+0xfc,0x4a,0xa2,0x8c,0x40,0x00,0x03,0x3c,0x24,0x10,0x52,0x00,0x24,0x10,0x51,0x00,
+0x24,0x10,0x43,0x00,0x5a,0x00,0x40,0x10,0x68,0x15,0x70,0x26,0x25,0xb0,0x02,0x3c,
+0x2a,0xb0,0x07,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x51,0xac,0x28,0x00,0xe3,0x34,
+0x00,0x00,0x6a,0x8c,0xff,0x00,0x06,0x24,0xff,0x00,0x44,0x31,0xfe,0x00,0x86,0x10,
+0x25,0xbd,0x02,0x3c,0x00,0x80,0x42,0x31,0x23,0x00,0x40,0x14,0x00,0x80,0x02,0x3c,
+0x00,0xff,0x02,0x3c,0x24,0x10,0x42,0x01,0x21,0x00,0x40,0x10,0xff,0x00,0x02,0x24,
+0x47,0x00,0xe7,0x34,0x00,0x00,0xe2,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x44,0x30,
+0x0e,0x00,0x86,0x10,0x68,0x15,0x62,0x26,0x60,0x64,0xa4,0xa0,0x00,0x00,0xe2,0x90,
+0xff,0x00,0x83,0x30,0xff,0x00,0x44,0x30,0x07,0x00,0x83,0x10,0x21,0x30,0xa0,0x00,
+0x21,0x28,0xe0,0x00,0x00,0x00,0xa2,0x90,0x21,0x18,0x80,0x00,0xfd,0xff,0x62,0x14,
+0xff,0x00,0x44,0x30,0x60,0x64,0xc3,0xa0,0x68,0x15,0x62,0x26,0x60,0x64,0x43,0x90,
+0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x0c,0x00,0x6a,0x8c,
+0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0xff,0x00,0x44,0x31,0x00,0x00,0x4a,0xac,
+0x44,0x1d,0x00,0x08,0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xff,0x00,0x02,0x24,
+0x21,0x00,0x82,0x10,0x68,0x15,0x70,0x26,0xff,0x00,0x43,0x31,0x14,0x65,0x05,0x8e,
+0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,
+0xa8,0x64,0x03,0xae,0x06,0x00,0x04,0x24,0x20,0x00,0x07,0x24,0x60,0x64,0x0a,0xa2,
+0x10,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x09,0x3c,0xdc,0x7e,0x27,0x91,
+0x02,0x80,0x08,0x3c,0xcc,0x7e,0x05,0x8d,0xfc,0x4a,0x06,0x8e,0x60,0x00,0x02,0x3c,
+0x02,0x00,0xe7,0x34,0x27,0x10,0x02,0x00,0x24,0x30,0xc2,0x00,0x00,0x04,0xa5,0x34,
+0x00,0x26,0x07,0x00,0x25,0xb0,0x02,0x3c,0x25,0x20,0x85,0x00,0x80,0x03,0x42,0x34,
+0x41,0xb0,0x03,0x3c,0x00,0x00,0x44,0xac,0x00,0x00,0x66,0xac,0xcc,0x7e,0x05,0xad,
+0xdc,0x7e,0x27,0xa1,0xfc,0x4a,0x06,0xae,0x68,0x15,0x62,0x26,0x00,0x4b,0x43,0x8c,
+0x40,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,0x00,0x4b,0x43,0xac,0x68,0x15,0x70,0x26,
+0xfc,0x4a,0x06,0x8e,0x00,0x04,0x11,0x3c,0x24,0x10,0xd2,0x00,0x24,0x10,0x51,0x00,
+0x77,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x24,0x28,0xd2,0x00,0x00,0x08,0x04,0x3c,
+0x24,0x10,0xa4,0x00,0x08,0x00,0x40,0x10,0x80,0x00,0x07,0x3c,0x00,0x4b,0x03,0x8e,
+0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x26,0x18,0x64,0x00,0x00,0x00,0x44,0xac,
+0x00,0x4b,0x03,0xae,0x80,0x00,0x07,0x3c,0x24,0x10,0xa7,0x00,0x21,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x00,0x4b,0x03,0x8e,0x25,0xb0,0x08,0x3c,0xb0,0x03,0x09,0x35,
+0x2a,0xb0,0x02,0x3c,0x00,0x00,0x23,0xad,0x36,0x00,0x42,0x34,0x00,0x00,0x43,0x90,
+0x23,0xb0,0x04,0x3c,0xff,0x1f,0x02,0x3c,0xc0,0x18,0x03,0x00,0xf0,0x07,0x63,0x30,
+0xbc,0x65,0x05,0x8e,0x21,0x18,0x64,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0x84,0x00,0x65,0x10,0xc0,0x65,0x03,0xae,0x02,0x80,0x05,0x3c,0xcc,0x7e,0xa3,0x8c,
+0x27,0x20,0x07,0x00,0x24,0x20,0xc4,0x00,0x00,0x08,0x63,0x34,0x41,0xb0,0x02,0x3c,
+0x00,0x00,0x23,0xad,0x00,0x00,0x44,0xac,0xcc,0x7e,0xa3,0xac,0xfc,0x4a,0x04,0xae,
+0x68,0x15,0x62,0x26,0x00,0x4b,0x43,0x8c,0x80,0x00,0x04,0x3c,0x26,0x18,0x64,0x00,
+0x00,0x4b,0x43,0xac,0x68,0x15,0x66,0x26,0xfc,0x4a,0xc3,0x8c,0x00,0x01,0x04,0x3c,
+0x24,0x28,0x72,0x00,0x24,0x10,0xa4,0x00,0x06,0x00,0x40,0x10,0x25,0xb0,0x02,0x3c,
+0x00,0x4b,0xc3,0x8c,0xb0,0x03,0x42,0x34,0x26,0x18,0x64,0x00,0x00,0x00,0x44,0xac,
+0x00,0x4b,0xc3,0xac,0x00,0x02,0x04,0x3c,0x24,0x10,0xa4,0x00,0x08,0x00,0x40,0x10,
+0x02,0x80,0x02,0x3c,0x00,0x4b,0xc2,0x8c,0x25,0xb0,0x03,0x3c,0xb0,0x03,0x63,0x34,
+0x26,0x10,0x44,0x00,0x00,0x4b,0xc2,0xac,0x00,0x00,0x64,0xac,0x02,0x80,0x02,0x3c,
+0xea,0x7d,0x43,0x90,0x01,0x00,0x02,0x24,0x0f,0x00,0x63,0x30,0x3f,0x00,0x62,0x10,
+0x00,0x00,0x00,0x00,0x28,0x00,0xbf,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,
+0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,
+0x20,0xbd,0x02,0x3c,0xec,0x02,0x65,0x35,0x4d,0x00,0x68,0x35,0xf1,0x02,0x69,0x35,
+0x08,0x00,0x07,0x24,0x78,0x02,0x42,0x34,0x00,0x00,0x46,0xa4,0x00,0x00,0x00,0xa1,
+0x00,0x00,0x27,0xa1,0x00,0x00,0xa0,0xac,0x00,0x00,0xa2,0x8c,0xff,0x00,0x03,0x3c,
+0x80,0x00,0x04,0x3c,0xff,0x00,0x4a,0x30,0x25,0x50,0x43,0x01,0x24,0x20,0x44,0x01,
+0xf2,0x02,0x66,0x35,0x0a,0x00,0x6a,0x35,0x80,0xff,0x02,0x24,0x00,0x00,0x00,0xa1,
+0x00,0x00,0x27,0xa1,0x00,0x00,0xa3,0xac,0x00,0x00,0xa3,0xac,0x00,0x00,0xc0,0xa0,
+0x00,0x00,0x42,0xa1,0x04,0x00,0x80,0x10,0x02,0x00,0x62,0x35,0x84,0xff,0x02,0x24,
+0x00,0x00,0x42,0xa1,0x02,0x00,0x62,0x35,0x00,0x00,0x43,0x94,0xff,0xbf,0x04,0x24,
+0x24,0x18,0x64,0x00,0x00,0x00,0x43,0xa4,0x7f,0x19,0x00,0x08,0x68,0x15,0x66,0x26,
+0x0e,0x4f,0x00,0x0c,0x07,0x00,0x04,0x24,0x00,0x4b,0x03,0x8e,0xfc,0x4a,0x06,0x8e,
+0x25,0xb0,0x02,0x3c,0x26,0x18,0x71,0x00,0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x72,0x1d,0x00,0x08,0x00,0x4b,0x03,0xae,0x56,0x01,0x42,0x35,0x00,0x00,0x43,0x94,
+0x00,0x00,0x00,0x00,0x75,0xfb,0x60,0x10,0x00,0x00,0x00,0x00,0x0e,0x4f,0x00,0x0c,
+0x07,0x00,0x04,0x24,0x6c,0x19,0x00,0x08,0x68,0x15,0x64,0x26,0x28,0x00,0xbf,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x30,0x19,0x00,0x08,0x30,0x00,0xbd,0x27,0x00,0x00,0x62,0xac,0xdc,0x19,0x00,0x08,
+0xff,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0x19,0x1a,0x00,0x08,0xff,0x00,0x02,0x24,
+0x00,0x00,0x62,0xac,0x56,0x1a,0x00,0x08,0xff,0x00,0x02,0x24,0x05,0x00,0x03,0x24,
+0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x8b,0x1b,0x00,0x08,0x68,0x15,0x62,0x26,
+0x02,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x07,0x1d,0x00,0x08,
+0x68,0x15,0x62,0x26,0xd0,0x03,0x03,0x35,0x80,0x00,0x02,0x24,0x00,0x00,0x62,0xac,
+0x9d,0x1d,0x00,0x08,0x68,0x15,0x62,0x26,0x01,0x00,0x03,0x24,0x90,0x03,0x42,0x34,
+0x00,0x00,0x43,0xac,0x67,0x1d,0x00,0x08,0x68,0x15,0x62,0x26,0x25,0xb0,0x02,0x3c,
+0x07,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x68,0x15,0x63,0x26,
+0x00,0x4b,0x62,0x8c,0x00,0x00,0x00,0x00,0x00,0x80,0x42,0x38,0xd3,0x1a,0x00,0x08,
+0x00,0x4b,0x62,0xac,0x06,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x2c,0x1b,0x00,0x08,0x68,0x15,0x62,0x26,0x25,0xb0,0x02,0x3c,0x07,0x00,0x03,0x24,
+0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x68,0x15,0x63,0x26,0x00,0x4b,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x20,0x42,0x38,0x76,0x1a,0x00,0x08,0x00,0x4b,0x62,0xac,
+0x03,0x00,0x03,0x24,0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x49,0x1c,0x00,0x08,
+0x68,0x15,0x62,0x26,0x00,0x00,0x40,0xac,0xa8,0x1c,0x00,0x08,0x68,0x15,0x62,0x26,
+0x90,0x03,0x63,0x34,0x00,0x00,0x62,0xac,0xea,0x1b,0x00,0x08,0x68,0x15,0x62,0x26,
+0x25,0xb0,0x0d,0x3c,0x00,0x80,0x02,0x3c,0x18,0x03,0xa4,0x35,0x10,0x79,0x42,0x24,
+0x02,0x80,0x03,0x3c,0x41,0xb0,0x08,0x3c,0x00,0x00,0x82,0xac,0x68,0x15,0x6a,0x24,
+0x0a,0x00,0x02,0x35,0x00,0x00,0x44,0x94,0x0a,0x4b,0x43,0x95,0x08,0x4b,0x4b,0x95,
+0x25,0x18,0x64,0x00,0xff,0xff,0x6c,0x30,0x24,0x10,0x8b,0x01,0x02,0x00,0x42,0x30,
+0x53,0x00,0x40,0x10,0x02,0x00,0x64,0x38,0x02,0x00,0x02,0x24,0xc0,0x03,0xa3,0x35,
+0x00,0x00,0x62,0xac,0x0a,0x4b,0x44,0xa5,0x24,0x38,0x8b,0x01,0x04,0x00,0xe2,0x30,
+0x0a,0x00,0x40,0x10,0x08,0x00,0xe2,0x30,0x0a,0x4b,0x43,0x95,0x0c,0x00,0x04,0x35,
+0xc0,0x03,0xa5,0x35,0x04,0x00,0x63,0x38,0x04,0x00,0x02,0x24,0x00,0x00,0x86,0x8c,
+0x00,0x00,0xa2,0xac,0x0a,0x4b,0x43,0xa5,0x08,0x00,0xe2,0x30,0x08,0x00,0x40,0x10,
+0x10,0x00,0xe2,0x30,0x0a,0x4b,0x42,0x95,0xc0,0x03,0xa4,0x35,0x08,0x00,0x03,0x24,
+0x08,0x00,0x42,0x38,0x00,0x00,0x83,0xac,0x0a,0x4b,0x42,0xa5,0x10,0x00,0xe2,0x30,
+0x08,0x00,0x40,0x10,0x20,0x00,0xe2,0x30,0x0a,0x4b,0x42,0x95,0xc0,0x03,0xa4,0x35,
+0x10,0x00,0x03,0x24,0x10,0x00,0x42,0x38,0x00,0x00,0x83,0xac,0x0a,0x4b,0x42,0xa5,
+0x20,0x00,0xe2,0x30,0x08,0x00,0x40,0x10,0x80,0x00,0xe2,0x30,0x0a,0x4b,0x42,0x95,
+0xc0,0x03,0xa4,0x35,0x20,0x00,0x03,0x24,0x20,0x00,0x42,0x38,0x00,0x00,0x83,0xac,
+0x0a,0x4b,0x42,0xa5,0x80,0x00,0xe2,0x30,0x15,0x00,0x40,0x10,0x24,0x10,0x8b,0x01,
+0x02,0x80,0x09,0x3c,0x0a,0x4b,0x46,0x95,0xcc,0x7e,0x25,0x8d,0x08,0x00,0x02,0x3c,
+0x7f,0xff,0x04,0x24,0x24,0x20,0x64,0x01,0x25,0x28,0xa2,0x00,0x80,0x00,0xc6,0x38,
+0xb0,0x03,0xa7,0x35,0x08,0x00,0x08,0x35,0xc0,0x03,0xa3,0x35,0x80,0x00,0x02,0x24,
+0x00,0x00,0x62,0xac,0x21,0x58,0x80,0x00,0x00,0x00,0xe5,0xac,0x0a,0x4b,0x46,0xa5,
+0xcc,0x7e,0x25,0xad,0x00,0x00,0x04,0xa5,0x08,0x4b,0x44,0xa5,0x24,0x10,0x8b,0x01,
+0x00,0x30,0x42,0x30,0x07,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x0a,0x4b,0x42,0x95,
+0x00,0x00,0x00,0x00,0x00,0x10,0x42,0x38,0x00,0x20,0x42,0x34,0x0a,0x4b,0x42,0xa5,
+0x02,0x80,0x02,0x3c,0xea,0x7d,0x43,0x90,0x01,0x00,0x02,0x24,0x0f,0x00,0x63,0x30,
+0x05,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x5a,0x1e,0x00,0x08,0x0a,0x4b,0x43,0xa5,0x30,0x19,0x00,0x08,0x00,0x00,0x00,0x00,
+0xf8,0xff,0xbd,0x27,0x04,0x00,0xb1,0xaf,0x00,0x00,0xb0,0xaf,0x00,0x40,0x02,0x40,
+0x00,0x68,0x08,0x40,0x00,0x70,0x02,0x40,0x00,0x60,0x09,0x40,0x25,0xb0,0x05,0x3c,
+0x00,0x80,0x02,0x3c,0x18,0x03,0xa3,0x34,0xb0,0x7a,0x42,0x24,0x00,0x00,0x62,0xac,
+0x80,0x00,0x87,0x8c,0x7c,0x02,0xa2,0x34,0x84,0x02,0xa3,0x34,0x88,0x02,0xa6,0x34,
+0x00,0x00,0x47,0xac,0x00,0x00,0x68,0xac,0x00,0x00,0xc9,0xac,0x74,0x00,0x83,0x8c,
+0x8c,0x02,0xa2,0x34,0x90,0x02,0xa7,0x34,0x00,0x00,0x43,0xac,0x08,0x00,0x86,0x8c,
+0x94,0x02,0xa8,0x34,0x98,0x02,0xa9,0x34,0x00,0x00,0xe6,0xac,0x0c,0x00,0x82,0x8c,
+0x9c,0x02,0xa6,0x34,0xa0,0x02,0xa7,0x34,0x00,0x00,0x02,0xad,0x10,0x00,0x83,0x8c,
+0xa4,0x02,0xa8,0x34,0xa8,0x02,0xaa,0x34,0x00,0x00,0x23,0xad,0x14,0x00,0x82,0x8c,
+0xac,0x02,0xa9,0x34,0xb0,0x02,0xab,0x34,0x00,0x00,0xc2,0xac,0x18,0x00,0x83,0x8c,
+0xb4,0x02,0xa6,0x34,0xb8,0x02,0xac,0x34,0x00,0x00,0xe3,0xac,0x1c,0x00,0x82,0x8c,
+0xbc,0x02,0xa7,0x34,0xc0,0x02,0xad,0x34,0x00,0x00,0x02,0xad,0x20,0x00,0x83,0x8c,
+0xc4,0x02,0xa8,0x34,0xc8,0x02,0xae,0x34,0x00,0x00,0x43,0xad,0x24,0x00,0x82,0x8c,
+0xcc,0x02,0xaa,0x34,0xd0,0x02,0xaf,0x34,0x00,0x00,0x22,0xad,0x28,0x00,0x83,0x8c,
+0xd4,0x02,0xa9,0x34,0xd8,0x02,0xb0,0x34,0x00,0x00,0x63,0xad,0x2c,0x00,0x82,0x8c,
+0x70,0x02,0xab,0x34,0x74,0x02,0xb1,0x34,0x00,0x00,0xc2,0xac,0x30,0x00,0x83,0x8c,
+0x78,0x02,0xa5,0x34,0x00,0x00,0x83,0xad,0x34,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0xe2,0xac,0x38,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xad,
+0x3c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xad,0x40,0x00,0x83,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xad,0x44,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x42,0xad,0x48,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xe3,0xad,
+0x4c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x22,0xad,0x50,0x00,0x83,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xae,0x54,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x62,0xad,0x58,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0xae,
+0x5c,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xac,0x0f,0x1f,0x00,0x08,
+0x00,0x00,0x00,0x00,0x00,0x80,0x1b,0x3c,0x44,0x7c,0x7b,0x27,0x25,0xb0,0x1a,0x3c,
+0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00,
+0x80,0xda,0x1b,0x00,0x08,0x00,0x7b,0x27,0x04,0x00,0x61,0xaf,0x08,0x00,0x62,0xaf,
+0x0c,0x00,0x63,0xaf,0x10,0x00,0x64,0xaf,0x14,0x00,0x65,0xaf,0x18,0x00,0x66,0xaf,
+0x1c,0x00,0x67,0xaf,0x20,0x00,0x68,0xaf,0x24,0x00,0x69,0xaf,0x28,0x00,0x6a,0xaf,
+0x2c,0x00,0x6b,0xaf,0x30,0x00,0x6c,0xaf,0x34,0x00,0x6d,0xaf,0x38,0x00,0x6e,0xaf,
+0x3c,0x00,0x6f,0xaf,0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40,
+0x40,0x00,0x70,0xaf,0x44,0x00,0x71,0xaf,0x48,0x00,0x72,0xaf,0x4c,0x00,0x73,0xaf,
+0x50,0x00,0x74,0xaf,0x54,0x00,0x75,0xaf,0x58,0x00,0x76,0xaf,0x5c,0x00,0x77,0xaf,
+0x60,0x00,0x78,0xaf,0x64,0x00,0x79,0xaf,0x68,0x00,0x7c,0xaf,0x6c,0x00,0x7d,0xaf,
+0x70,0x00,0x7e,0xaf,0x74,0x00,0x7f,0xaf,0x78,0x00,0x68,0xaf,0x7c,0x00,0x69,0xaf,
+0x80,0x00,0x6a,0xaf,0x00,0x68,0x1a,0x40,0x25,0xb0,0x1b,0x3c,0x1c,0x03,0x7b,0x37,
+0x00,0x00,0x00,0x00,0x00,0x00,0x7a,0xaf,0x7f,0x00,0x5b,0x33,0x30,0x00,0x60,0x13,
+0x00,0x00,0x00,0x00,0x25,0xb0,0x1b,0x3c,0x30,0x03,0x7b,0x37,0x00,0x00,0x00,0x00,
+0x00,0x00,0x7a,0xaf,0x00,0x00,0x00,0x00,0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00,
+0x80,0xda,0x1b,0x00,0x08,0x00,0x7b,0x27,0x04,0x00,0x61,0xaf,0x08,0x00,0x62,0xaf,
+0x0c,0x00,0x63,0xaf,0x10,0x00,0x64,0xaf,0x14,0x00,0x65,0xaf,0x18,0x00,0x66,0xaf,
+0x1c,0x00,0x67,0xaf,0x20,0x00,0x68,0xaf,0x24,0x00,0x69,0xaf,0x28,0x00,0x6a,0xaf,
+0x2c,0x00,0x6b,0xaf,0x30,0x00,0x6c,0xaf,0x34,0x00,0x6d,0xaf,0x38,0x00,0x6e,0xaf,
+0x3c,0x00,0x6f,0xaf,0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40,
+0x40,0x00,0x70,0xaf,0x44,0x00,0x71,0xaf,0x48,0x00,0x72,0xaf,0x4c,0x00,0x73,0xaf,
+0x50,0x00,0x74,0xaf,0x54,0x00,0x75,0xaf,0x58,0x00,0x76,0xaf,0x5c,0x00,0x77,0xaf,
+0x60,0x00,0x78,0xaf,0x64,0x00,0x79,0xaf,0x68,0x00,0x7c,0xaf,0x6c,0x00,0x7d,0xaf,
+0x70,0x00,0x7e,0xaf,0x74,0x00,0x7f,0xaf,0x78,0x00,0x68,0xaf,0x7c,0x00,0x69,0xaf,
+0x80,0x00,0x6a,0xaf,0xac,0x1e,0x00,0x08,0x21,0x20,0x60,0x03,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x08,0x3c,0x20,0x03,0x08,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0xad,
+0x00,0x04,0x5b,0x33,0x0a,0x00,0x60,0x13,0x00,0x00,0x00,0x00,0x00,0x80,0x08,0x3c,
+0x30,0x65,0x08,0x25,0x00,0x00,0x00,0x00,0x25,0xb0,0x1b,0x3c,0x24,0x03,0x7b,0x37,
+0x00,0x00,0x00,0x00,0x00,0x00,0x68,0xaf,0x09,0xf8,0x00,0x01,0x00,0x00,0x00,0x00,
+0x00,0x08,0x5b,0x33,0x25,0xb0,0x08,0x3c,0x28,0x03,0x08,0x35,0x00,0x00,0x00,0x00,
+0x00,0x00,0x1b,0xad,0x06,0x00,0x60,0x13,0x00,0x00,0x00,0x00,0x00,0x80,0x08,0x3c,
+0x10,0x79,0x08,0x25,0x00,0x00,0x00,0x00,0x09,0xf8,0x00,0x01,0x00,0x00,0x00,0x00,
+0x02,0x80,0x1a,0x3c,0xcc,0x7e,0x5a,0x27,0x04,0x00,0x5b,0x97,0x25,0xb0,0x08,0x3c,
+0x30,0x03,0x08,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xad,0x18,0x00,0x60,0x13,
+0x00,0x00,0x00,0x00,0x08,0xec,0x9b,0x27,0x00,0x00,0x00,0x00,0x04,0x00,0x61,0x8f,
+0xfc,0x03,0x70,0x7b,0x7c,0x00,0x62,0x7b,0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b,
+0x3c,0x01,0x68,0x7b,0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b,
+0xbc,0x01,0x6c,0x7b,0xfc,0x01,0x6e,0x7b,0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b,
+0xbc,0x02,0x74,0x7b,0xfc,0x02,0x76,0x7b,0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b,
+0xbc,0x03,0x7e,0x7b,0x80,0x00,0x7b,0x8f,0xfc,0x1f,0x00,0x08,0x00,0x00,0x00,0x00,
+0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00,0x80,0xda,0x1b,0x00,0x08,0x00,0x7b,0x27,
+0x08,0x00,0x5b,0xaf,0xfc,0xef,0x9d,0x27,0x00,0x00,0x4a,0x8f,0x00,0x00,0x00,0x00,
+0x21,0x00,0x40,0x11,0x00,0x00,0x00,0x00,0x02,0x80,0x08,0x3c,0x2c,0x7e,0x08,0x25,
+0x21,0x48,0x00,0x00,0x21,0x58,0x00,0x00,0x01,0x00,0x6b,0x25,0x1a,0x00,0x40,0x11,
+0x24,0x70,0x4b,0x01,0x14,0x00,0xc0,0x11,0x01,0x00,0x04,0x24,0x00,0x00,0x00,0x00,
+0x04,0x00,0x44,0xa3,0x26,0x50,0x4b,0x01,0x00,0x00,0x4a,0xaf,0x80,0x80,0x09,0x00,
+0x21,0x80,0x08,0x02,0x00,0x00,0x10,0x8e,0x00,0x00,0x00,0x00,0x09,0xf8,0x00,0x02,
+0x00,0x00,0x00,0x00,0x00,0x80,0x1b,0x3c,0x1c,0x7f,0x7b,0x27,0x25,0xb0,0x1a,0x3c,
+0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,0x02,0x80,0x1a,0x3c,0xcc,0x7e,0x5a,0x27,
+0xe1,0xff,0x00,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x29,0x25,0x40,0x58,0x0b,0x00,
+0xbf,0x1f,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x80,0x1b,0x3c,0xcc,0x7e,0x7b,0x27,
+0x21,0x60,0x00,0x00,0x04,0x00,0x6c,0xa7,0x08,0x00,0x7a,0x8f,0x00,0x00,0x00,0x00,
+0xf8,0xff,0x5a,0x27,0x00,0x00,0x5a,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0x5a,0x27,
+0x84,0x00,0x44,0x8f,0x00,0x00,0x00,0x00,0xf9,0xff,0x80,0x10,0x00,0x00,0x00,0x00,
+0x04,0x00,0x41,0x8f,0xfc,0x03,0x50,0x7b,0x7c,0x00,0x42,0x7b,0xbc,0x00,0x44,0x7b,
+0xfc,0x00,0x46,0x7b,0x3c,0x01,0x48,0x7b,0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,
+0x7c,0x01,0x4a,0x7b,0xbc,0x01,0x4c,0x7b,0xfc,0x01,0x4e,0x7b,0x3c,0x02,0x50,0x7b,
+0x7c,0x02,0x52,0x7b,0xbc,0x02,0x54,0x7b,0xfc,0x02,0x56,0x7b,0x3c,0x03,0x58,0x7b,
+0x7c,0x03,0x5c,0x7b,0xbc,0x03,0x5e,0x7b,0x80,0x00,0x5b,0x8f,0x00,0x00,0x00,0x00,
+0x08,0x00,0x60,0x03,0x10,0x00,0x00,0x42,0x00,0x60,0x05,0x40,0x42,0x28,0x05,0x00,
+0x40,0x28,0x05,0x00,0x00,0x60,0x85,0x40,0x04,0x00,0x81,0xac,0x08,0x00,0x82,0xac,
+0x0c,0x00,0x83,0xac,0x20,0x00,0x88,0xac,0x24,0x00,0x89,0xac,0x28,0x00,0x8a,0xac,
+0x2c,0x00,0x8b,0xac,0x30,0x00,0x8c,0xac,0x34,0x00,0x8d,0xac,0x38,0x00,0x8e,0xac,
+0x3c,0x00,0x8f,0xac,0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x40,0x00,0x90,0xac,
+0x44,0x00,0x91,0xac,0x48,0x00,0x92,0xac,0x4c,0x00,0x93,0xac,0x50,0x00,0x94,0xac,
+0x54,0x00,0x95,0xac,0x58,0x00,0x96,0xac,0x5c,0x00,0x97,0xac,0x60,0x00,0x98,0xac,
+0x64,0x00,0x99,0xac,0x68,0x00,0x9c,0xac,0x6c,0x00,0x9d,0xac,0x70,0x00,0x9e,0xac,
+0x74,0x00,0x9f,0xac,0x78,0x00,0x88,0xac,0x7c,0x00,0x89,0xac,0x80,0x00,0x9f,0xac,
+0xf8,0xff,0x84,0x24,0x00,0x00,0x84,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x84,0x24,
+0x84,0x00,0x86,0x8c,0x00,0x00,0x00,0x00,0xf9,0xff,0xc0,0x10,0x00,0x00,0x00,0x00,
+0x21,0xd8,0x80,0x00,0x01,0x00,0xba,0x24,0x04,0x00,0x61,0x8f,0xfc,0x03,0x70,0x7b,
+0x7c,0x00,0x62,0x7b,0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b,0x3c,0x01,0x68,0x7b,
+0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b,0xbc,0x01,0x6c,0x7b,
+0xfc,0x01,0x6e,0x7b,0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b,0xbc,0x02,0x74,0x7b,
+0xfc,0x02,0x76,0x7b,0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b,0xbc,0x03,0x7e,0x7b,
+0x80,0x00,0x7b,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0x60,0x03,0x00,0x60,0x9a,0x40,
+0x00,0x60,0x05,0x40,0x42,0x28,0x05,0x00,0x40,0x28,0x05,0x00,0x00,0x60,0x85,0x40,
+0x04,0x00,0x81,0xac,0x08,0x00,0x82,0xac,0x0c,0x00,0x83,0xac,0x20,0x00,0x88,0xac,
+0x24,0x00,0x89,0xac,0x28,0x00,0x8a,0xac,0x2c,0x00,0x8b,0xac,0x30,0x00,0x8c,0xac,
+0x34,0x00,0x8d,0xac,0x38,0x00,0x8e,0xac,0x3c,0x00,0x8f,0xac,0x12,0x40,0x00,0x00,
+0x10,0x48,0x00,0x00,0x40,0x00,0x90,0xac,0x44,0x00,0x91,0xac,0x48,0x00,0x92,0xac,
+0x4c,0x00,0x93,0xac,0x50,0x00,0x94,0xac,0x54,0x00,0x94,0xac,0x58,0x00,0x96,0xac,
+0x5c,0x00,0x96,0xac,0x60,0x00,0x98,0xac,0x64,0x00,0x99,0xac,0x68,0x00,0x9c,0xac,
+0x6c,0x00,0x9d,0xac,0x70,0x00,0x9e,0xac,0x78,0x00,0x88,0xac,0x7c,0x00,0x89,0xac,
+0x80,0x00,0x9f,0xac,0x84,0x00,0x80,0xac,0xf8,0xff,0x84,0x24,0x00,0x00,0x84,0x8c,
+0x00,0x00,0x00,0x00,0x08,0x00,0x84,0x24,0x84,0x00,0x86,0x8c,0xfa,0xff,0xc0,0x10,
+0x00,0x00,0x00,0x00,0x21,0xd8,0x80,0x00,0x01,0x00,0xba,0x24,0x04,0x00,0x61,0x8f,
+0xfc,0x03,0x70,0x7b,0x7c,0x00,0x62,0x7b,0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b,
+0x3c,0x01,0x68,0x7b,0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b,
+0xbc,0x01,0x6c,0x7b,0xfc,0x01,0x6e,0x7b,0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b,
+0xbc,0x02,0x74,0x7b,0xfc,0x02,0x76,0x7b,0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b,
+0xbc,0x03,0x7e,0x7b,0x80,0x00,0x7b,0x8f,0x08,0x00,0x60,0x03,0x00,0x60,0x9a,0x40,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x60,0xb9,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x1b,0x3c,0x00,0x00,0x7b,0x27,
+0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,0x00,0x00,0x05,0x24,
+0x03,0x00,0xa4,0x24,0x00,0xa0,0x80,0x40,0x00,0xa0,0x84,0x40,0x01,0x80,0x04,0x3c,
+0x98,0x03,0x84,0x24,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x01,0x80,0x1b,0x3c,0x98,0x03,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,
+0x00,0x00,0x5b,0xaf,0x02,0x80,0x1a,0x3c,0x00,0x00,0x5a,0x27,0xfc,0x03,0x5d,0x27,
+0x02,0x80,0x1c,0x3c,0x00,0x14,0x9c,0x27,0x00,0xf0,0x08,0x3c,0x00,0x0c,0x08,0x35,
+0x00,0x60,0x88,0x40,0x02,0x80,0x04,0x3c,0x00,0x00,0x84,0x24,0xff,0x7f,0x05,0x3c,
+0xff,0xff,0xa5,0x34,0x24,0x20,0x85,0x00,0x00,0x20,0x84,0x4c,0xff,0xff,0x05,0x34,
+0x21,0x28,0xa4,0x00,0x00,0x28,0x85,0x4c,0x00,0x80,0x04,0x3c,0x00,0x00,0x84,0x24,
+0xff,0x7f,0x05,0x3c,0xff,0xff,0xa5,0x34,0x24,0x20,0x85,0x00,0x00,0x00,0x84,0x4c,
+0xff,0xff,0x06,0x34,0x21,0x30,0xc4,0x00,0x24,0x30,0xc5,0x00,0x00,0x08,0x86,0x4c,
+0x00,0xa0,0x04,0x40,0x10,0x00,0x84,0x34,0x00,0xa0,0x84,0x40,0x01,0x80,0x1b,0x3c,
+0x24,0x04,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,
+0x00,0x00,0x00,0x00,0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x85,0x84,
+0x20,0x00,0x06,0x24,0x25,0x28,0xa6,0x00,0x00,0x00,0x85,0xa4,0x01,0x80,0x1b,0x3c,
+0x54,0x04,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,
+0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x85,0x8c,0x00,0x00,0x00,0x00,
+0x10,0x00,0xa5,0x30,0xfc,0xff,0xa0,0x10,0x00,0x00,0x00,0x00,0xff,0x1f,0x07,0x3c,
+0xff,0xff,0xe7,0x34,0x02,0x80,0x05,0x3c,0xe8,0x7d,0xa5,0x24,0xff,0xff,0xa5,0x30,
+0x40,0xb0,0x04,0x3c,0x25,0x28,0xa4,0x00,0x24,0x28,0xa7,0x00,0x21,0x30,0x00,0x00,
+0x43,0xb0,0x02,0x3c,0x00,0x80,0x04,0x3c,0x40,0x00,0x84,0x34,0x00,0x00,0x45,0xac,
+0x04,0x00,0x46,0xac,0x08,0x00,0x44,0xac,0x8b,0x5b,0x00,0x08,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x09,0x00,0x02,0x24,0xff,0xff,0x42,0x24,
+0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0x08,0x00,0xe0,0x03,0x01,0x00,0x42,0x24,
+0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x82,0xac,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x21,0x18,0x40,0x00,0x00,0x60,0x83,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x82,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x44,0x05,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x04,0x00,0x85,0x8c,0x00,0x80,0x03,0x3c,0x01,0x00,0x02,0x24,0x25,0x28,0xa3,0x00,
+0x00,0x00,0xa4,0x8c,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x74,0x05,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x04,0x00,0x82,0x8c,0x02,0x00,0x83,0x94,0x00,0x80,0x07,0x3c,0x25,0x28,0x47,0x00,
+0x00,0x00,0xa2,0x8c,0x10,0x00,0x02,0x24,0x13,0x00,0x62,0x10,0x11,0x00,0x66,0x28,
+0x06,0x00,0xc0,0x10,0x20,0x00,0x02,0x24,0x08,0x00,0x02,0x24,0x17,0x00,0x62,0x10,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0xfd,0xff,0x62,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xac,
+0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x25,0x10,0x47,0x00,0x00,0x00,0x42,0x8c,
+0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0xa2,0xa4,0x04,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x25,0x18,0x67,0x00,
+0x00,0x00,0x62,0x94,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0x82,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xa0,0x04,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,
+0x25,0x18,0x67,0x00,0x00,0x00,0x62,0x90,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,
+0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c,0x1c,0x00,0xbf,0xaf,
+0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,0x68,0x15,0x31,0x26,0x44,0x65,0x30,0x96,
+0x02,0x80,0x02,0x3c,0x01,0x80,0x03,0x3c,0x25,0x80,0x02,0x02,0x25,0xb0,0x02,0x3c,
+0x38,0x06,0x63,0x24,0x18,0x03,0x42,0x34,0x60,0x00,0x04,0x26,0x80,0x00,0x05,0x26,
+0x00,0x00,0x43,0xac,0x6c,0x45,0x00,0x0c,0x03,0x00,0x06,0x24,0x21,0x20,0x00,0x02,
+0x21,0x28,0x00,0x00,0x58,0x45,0x00,0x0c,0x08,0x00,0x06,0x24,0x44,0x65,0x22,0x8e,
+0x0c,0x00,0x03,0x24,0x0c,0x00,0x43,0xae,0x08,0x00,0x42,0xae,0x12,0x00,0x02,0x24,
+0x14,0x00,0x42,0xae,0x21,0x20,0x40,0x02,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x30,0x08,0x00,0x08,0x20,0x00,0xbd,0x27,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,
+0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x02,0x80,0x02,0x3c,0x21,0x48,0x80,0x00,
+0x68,0x15,0x48,0x24,0x21,0x38,0x00,0x00,0x21,0x28,0x27,0x01,0x00,0x00,0xa2,0x90,
+0x21,0x20,0xe8,0x00,0x01,0x00,0xe7,0x24,0x44,0x4c,0x82,0xa0,0x1e,0x00,0xa3,0x90,
+0x1e,0x00,0xe6,0x28,0x62,0x4c,0x83,0xa0,0x3c,0x00,0xa2,0x90,0x00,0x00,0x00,0x00,
+0x80,0x4c,0x82,0xa0,0x5a,0x00,0xa3,0x90,0xf3,0xff,0xc0,0x14,0x9e,0x4c,0x83,0xa0,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,
+0x20,0xbd,0x03,0x3c,0x58,0x00,0x63,0x34,0x00,0x00,0x62,0x90,0x0f,0x27,0x07,0x24,
+0x20,0x00,0x42,0x34,0x00,0x00,0x62,0xa0,0xff,0xff,0xe7,0x24,0xff,0xff,0xe1,0x04,
+0xff,0xff,0xe7,0x24,0x62,0xbd,0x04,0x3c,0x24,0x10,0x82,0x34,0x00,0x00,0x40,0xa0,
+0x28,0x10,0x83,0x34,0x0c,0x11,0x86,0x34,0x0e,0x00,0x02,0x24,0x00,0x00,0x60,0xa0,
+0x00,0x11,0x85,0x34,0x00,0x00,0xc2,0xa0,0x00,0x00,0xa7,0x8c,0xdf,0xff,0x02,0x24,
+0x10,0x00,0x86,0x34,0x24,0x38,0xe2,0x00,0x49,0x0c,0x03,0x24,0xcf,0xff,0x02,0x24,
+0x00,0x00,0xc3,0xac,0x04,0x00,0x84,0x34,0x00,0x00,0xa7,0xac,0x24,0x38,0xe2,0x00,
+0x41,0x0c,0x02,0x24,0x00,0x00,0xa7,0xac,0x00,0x00,0x80,0xac,0x00,0x00,0xc2,0xac,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x25,0xb0,0x05,0x3c,0x01,0x80,0x03,0x3c,0x21,0x38,0x80,0x00,0x18,0x03,0xa2,0x34,
+0xa8,0x08,0x63,0x24,0x01,0x00,0x04,0x24,0x00,0x00,0x43,0xac,0x35,0x00,0xe4,0x10,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x10,0x20,0x08,0xa2,0x34,0x02,0x00,0x02,0x24,
+0x83,0x00,0xe2,0x10,0x03,0x00,0x02,0x24,0x5a,0x00,0xe2,0x10,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x00,0x00,0x44,0x8c,
+0x68,0x15,0x66,0x24,0x70,0x08,0x02,0x24,0xe0,0x08,0x03,0x24,0x80,0x4b,0xc2,0xac,
+0x40,0x08,0x02,0x24,0x84,0x4b,0xc3,0xac,0x90,0x4b,0xc2,0xac,0x78,0x08,0x03,0x24,
+0x0c,0x08,0x02,0x24,0x94,0x4b,0xc3,0xac,0x98,0x4b,0xc2,0xac,0x10,0x08,0x03,0x24,
+0x20,0x08,0x02,0x24,0x9c,0x4b,0xc3,0xac,0xa0,0x4b,0xc2,0xac,0x24,0x08,0x03,0x24,
+0x58,0x08,0x02,0x24,0xa4,0x4b,0xc3,0xac,0xa8,0x4b,0xc2,0xac,0x50,0x0c,0x03,0x24,
+0x54,0x0c,0x02,0x24,0xac,0x4b,0xc3,0xac,0xb0,0x4b,0xc2,0xac,0x14,0x0c,0x03,0x24,
+0x10,0x0c,0x02,0x24,0x60,0x08,0x05,0x24,0xb4,0x4b,0xc3,0xac,0xb8,0x4b,0xc2,0xac,
+0x80,0x0c,0x03,0x24,0x84,0x0c,0x02,0x24,0x00,0x01,0x84,0x30,0xc0,0x4b,0xc2,0xac,
+0x8c,0x4b,0xc5,0xac,0xbc,0x4b,0xc3,0xac,0x7d,0x4b,0xc0,0xa0,0x88,0x4b,0xc5,0xac,
+0x02,0x00,0x80,0x10,0xa0,0x08,0x02,0x24,0xb8,0x08,0x02,0x24,0x08,0x00,0xe0,0x03,
+0xc4,0x4b,0xc2,0xac,0x28,0x08,0xa2,0x34,0x02,0x80,0x03,0x3c,0x00,0x00,0x44,0x8c,
+0x68,0x15,0x66,0x24,0x70,0x08,0x02,0x24,0xe0,0x08,0x03,0x24,0x80,0x4b,0xc2,0xac,
+0x44,0x08,0x02,0x24,0x84,0x4b,0xc3,0xac,0x90,0x4b,0xc2,0xac,0x78,0x08,0x03,0x24,
+0x0c,0x08,0x02,0x24,0x94,0x4b,0xc3,0xac,0x98,0x4b,0xc2,0xac,0x14,0x08,0x03,0x24,
+0x28,0x08,0x02,0x24,0x9c,0x4b,0xc3,0xac,0xa0,0x4b,0xc2,0xac,0x2c,0x08,0x03,0x24,
+0x58,0x08,0x02,0x24,0xa4,0x4b,0xc3,0xac,0xa8,0x4b,0xc2,0xac,0x58,0x0c,0x03,0x24,
+0x5c,0x0c,0x02,0x24,0xac,0x4b,0xc3,0xac,0xb0,0x4b,0xc2,0xac,0x1c,0x0c,0x03,0x24,
+0x18,0x0c,0x02,0x24,0x64,0x08,0x05,0x24,0xb4,0x4b,0xc3,0xac,0xb8,0x4b,0xc2,0xac,
+0x88,0x0c,0x03,0x24,0x8c,0x0c,0x02,0x24,0x00,0x01,0x84,0x30,0xc0,0x4b,0xc2,0xac,
+0x7d,0x4b,0xc7,0xa0,0x8c,0x4b,0xc5,0xac,0xbc,0x4b,0xc3,0xac,0x88,0x4b,0xc5,0xac,
+0xd6,0xff,0x80,0x10,0xa4,0x08,0x02,0x24,0xbc,0x08,0x02,0x24,0x08,0x00,0xe0,0x03,
+0xc4,0x4b,0xc2,0xac,0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24,0xac,0x08,0x03,0x24,
+0xc4,0x4b,0x43,0xac,0x74,0x08,0x03,0x24,0xe4,0x08,0x04,0x24,0x80,0x4b,0x43,0xac,
+0x4c,0x08,0x03,0x24,0x84,0x4b,0x44,0xac,0x90,0x4b,0x43,0xac,0x7c,0x08,0x04,0x24,
+0x0c,0x08,0x03,0x24,0x94,0x4b,0x44,0xac,0x98,0x4b,0x43,0xac,0x1c,0x08,0x04,0x24,
+0x38,0x08,0x03,0x24,0x9c,0x4b,0x44,0xac,0xa0,0x4b,0x43,0xac,0x3c,0x08,0x04,0x24,
+0x5c,0x08,0x03,0x24,0xa4,0x4b,0x44,0xac,0xa8,0x4b,0x43,0xac,0x68,0x0c,0x04,0x24,
+0x6c,0x0c,0x03,0x24,0xac,0x4b,0x44,0xac,0xb0,0x4b,0x43,0xac,0x2c,0x0c,0x04,0x24,
+0x28,0x0c,0x03,0x24,0x6c,0x08,0x05,0x24,0xb4,0x4b,0x44,0xac,0xb8,0x4b,0x43,0xac,
+0x98,0x0c,0x04,0x24,0x9c,0x0c,0x03,0x24,0x7d,0x4b,0x47,0xa0,0x8c,0x4b,0x45,0xac,
+0xbc,0x4b,0x44,0xac,0xc0,0x4b,0x43,0xac,0x08,0x00,0xe0,0x03,0x88,0x4b,0x45,0xac,
+0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24,0xa8,0x08,0x03,0x24,0xc4,0x4b,0x43,0xac,
+0x74,0x08,0x03,0x24,0xe4,0x08,0x04,0x24,0x80,0x4b,0x43,0xac,0x48,0x08,0x03,0x24,
+0x84,0x4b,0x44,0xac,0x90,0x4b,0x43,0xac,0x7c,0x08,0x04,0x24,0x0c,0x08,0x03,0x24,
+0x94,0x4b,0x44,0xac,0x98,0x4b,0x43,0xac,0x18,0x08,0x04,0x24,0x30,0x08,0x03,0x24,
+0x9c,0x4b,0x44,0xac,0xa0,0x4b,0x43,0xac,0x34,0x08,0x04,0x24,0x5c,0x08,0x03,0x24,
+0xa4,0x4b,0x44,0xac,0xa8,0x4b,0x43,0xac,0x60,0x0c,0x04,0x24,0x64,0x0c,0x03,0x24,
+0xac,0x4b,0x44,0xac,0xb0,0x4b,0x43,0xac,0x24,0x0c,0x04,0x24,0x20,0x0c,0x03,0x24,
+0x68,0x08,0x05,0x24,0xb4,0x4b,0x44,0xac,0xb8,0x4b,0x43,0xac,0x90,0x0c,0x04,0x24,
+0x94,0x0c,0x03,0x24,0x7d,0x4b,0x47,0xa0,0x8c,0x4b,0x45,0xac,0xbc,0x4b,0x44,0xac,
+0xc0,0x4b,0x43,0xac,0x08,0x00,0xe0,0x03,0x88,0x4b,0x45,0xac,0xe6,0x42,0x00,0x08,
+0x21,0x18,0x00,0x00,0x20,0x00,0x62,0x2c,0x06,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x06,0x10,0x64,0x00,0x01,0x00,0x42,0x30,0xfa,0xff,0x40,0x10,0x01,0x00,0x63,0x24,
+0xff,0xff,0x63,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0xd8,0xff,0xbd,0x27,
+0x25,0xb0,0x02,0x3c,0x18,0x00,0xb2,0xaf,0x21,0x90,0x82,0x00,0xff,0xff,0x02,0x24,
+0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,0x20,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,
+0x21,0x88,0xa0,0x00,0x21,0x20,0xa0,0x00,0x21,0x18,0x40,0x02,0x10,0x00,0xa2,0x10,
+0x21,0x98,0xc0,0x00,0x00,0x00,0x50,0x8e,0xe1,0x42,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x04,0x10,0x53,0x00,0x27,0x18,0x11,0x00,0x25,0x18,0x62,0x00,0x24,0x18,0x70,0x00,
+0x00,0x00,0x43,0xae,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,
+0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x28,0x00,0xbd,0x27,0x00,0x00,0x66,0xac,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x21,0x30,0x80,0x00,0xf8,0x60,0x44,0x8c,
+0xed,0x42,0x00,0x08,0xff,0xff,0x05,0x24,0xe0,0xff,0xbd,0x27,0x25,0xb0,0x02,0x3c,
+0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x21,0x20,0x82,0x00,
+0x00,0x00,0x90,0x8c,0x21,0x88,0xa0,0x00,0xe1,0x42,0x00,0x0c,0x21,0x20,0xa0,0x00,
+0x24,0x80,0x11,0x02,0x06,0x10,0x50,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xd0,0xff,0xbd,0x27,
+0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c,0x28,0x00,0xbf,0xaf,0x20,0x00,0xb4,0xaf,
+0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x24,0x00,0xb5,0xaf,0x10,0x00,0xb0,0xaf,
+0x68,0x15,0x31,0x26,0xa4,0x4b,0x22,0x8e,0x25,0xb0,0x12,0x3c,0x24,0x08,0x53,0x36,
+0x21,0x10,0x52,0x00,0x00,0x00,0x70,0x8e,0x00,0x00,0x55,0x8c,0x7f,0x80,0x03,0x3c,
+0xff,0x7f,0x02,0x3c,0xff,0xff,0x63,0x34,0xff,0xff,0x42,0x34,0x24,0x10,0x02,0x02,
+0x24,0x18,0xa3,0x02,0xc0,0x25,0x04,0x00,0x25,0x18,0x64,0x00,0x00,0x80,0x14,0x3c,
+0x00,0x00,0x62,0xae,0x01,0x00,0x04,0x24,0xeb,0x0b,0x00,0x0c,0x25,0xa8,0x74,0x00,
+0xa4,0x4b,0x22,0x8e,0x25,0x80,0x14,0x02,0x01,0x00,0x04,0x24,0x21,0x10,0x52,0x00,
+0x00,0x00,0x55,0xac,0xeb,0x0b,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0xae,
+0xeb,0x0b,0x00,0x0c,0x01,0x00,0x04,0x24,0xc4,0x4b,0x24,0x8e,0x0f,0x00,0x05,0x3c,
+0x28,0x00,0xbf,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0xff,0xff,0xa5,0x34,
+0x18,0x43,0x00,0x08,0x30,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,
+0x02,0x80,0x11,0x3c,0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,0x68,0x15,0x27,0x26,
+0x7f,0x4b,0xe5,0x90,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x70,0x0d,0x63,0x24,
+0x18,0x03,0x42,0x34,0x02,0x00,0x06,0x24,0x00,0x00,0x43,0xac,0x34,0x00,0xa6,0x10,
+0x21,0x80,0x80,0x00,0x03,0x00,0x03,0x24,0x3a,0x00,0xa3,0x10,0x2e,0x00,0x02,0x2e,
+0x10,0x00,0x02,0x2e,0x07,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xff,0x00,0x04,0x32,
+0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x29,0x43,0x00,0x08,
+0x20,0x00,0xbd,0x27,0xfa,0xff,0xa6,0x14,0xff,0x00,0x04,0x32,0x7d,0x4b,0xe4,0x90,
+0x01,0x00,0x02,0x24,0x33,0x00,0x82,0x10,0x02,0x00,0x82,0x28,0x38,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0x38,0x00,0x85,0x10,0x68,0x15,0x22,0x26,0x2e,0x00,0x83,0x10,
+0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x24,0x18,0x43,0x00,0x0c,0xff,0xff,0x05,0x24,
+0xff,0xfc,0x06,0x3c,0xff,0xff,0xc6,0x34,0x24,0x30,0x46,0x00,0x00,0x08,0x04,0x24,
+0xed,0x42,0x00,0x0c,0xff,0xff,0x05,0x24,0x68,0x15,0x22,0x26,0x7d,0x4b,0x44,0x90,
+0x01,0x00,0x03,0x24,0x07,0x00,0x83,0x10,0x02,0x00,0x82,0x28,0x2c,0x00,0x40,0x14,
+0x02,0x00,0x02,0x24,0x2c,0x00,0x82,0x10,0x03,0x00,0x02,0x24,0xdb,0xff,0x82,0x14,
+0x00,0x00,0x00,0x00,0x68,0x15,0x22,0x26,0x80,0x4b,0x44,0x8c,0x0f,0x00,0x05,0x3c,
+0xed,0x42,0x00,0x0c,0x21,0x30,0x00,0x00,0x72,0x43,0x00,0x08,0xff,0x00,0x04,0x32,
+0x25,0x00,0x82,0x2c,0xcc,0xff,0x40,0x14,0x03,0x00,0x03,0x24,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0xc7,0xff,0x40,0x14,0x10,0x00,0x02,0x2e,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x68,0x15,0x22,0x26,0x80,0x4b,0x44,0x8c,0x0f,0x00,0x05,0x3c,
+0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24,0x84,0x43,0x00,0x08,0x00,0x08,0x04,0x24,
+0xcc,0xff,0x80,0x14,0x68,0x15,0x22,0x26,0x80,0x4b,0x44,0x8c,0x0f,0x00,0x05,0x24,
+0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24,0x84,0x43,0x00,0x08,0x00,0x08,0x04,0x24,
+0xb2,0xff,0x80,0x14,0x00,0x00,0x00,0x00,0x68,0x15,0x22,0x26,0x80,0x4b,0x44,0x8c,
+0x0f,0x00,0x05,0x24,0xed,0x42,0x00,0x0c,0x21,0x30,0x00,0x00,0x72,0x43,0x00,0x08,
+0xff,0x00,0x04,0x32,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c,
+0x68,0x15,0x28,0x26,0x7f,0x4b,0x06,0x91,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x1c,0x0f,0x63,0x24,0x18,0x03,0x42,0x34,0x02,0x00,0x07,0x24,0x18,0x00,0xb2,0xaf,
+0x10,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0xaf,0x00,0x00,0x43,0xac,0x21,0x90,0xa0,0x00,
+0x39,0x00,0xc7,0x10,0xff,0x00,0x90,0x30,0x03,0x00,0x03,0x24,0x3f,0x00,0xc3,0x10,
+0x2e,0x00,0x02,0x2e,0x10,0x00,0x02,0x2e,0x0c,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x0f,0x00,0x04,0x3c,0xff,0xff,0x84,0x34,0x24,0x20,0x44,0x02,0x00,0x15,0x10,0x00,
+0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x25,0x20,0x44,0x00,0x13,0x43,0x00,0x08,0x20,0x00,0xbd,0x27,0xf5,0xff,0xc7,0x14,
+0x0f,0x00,0x04,0x3c,0x7d,0x4b,0x04,0x91,0x01,0x00,0x02,0x24,0x33,0x00,0x82,0x10,
+0x02,0x00,0x82,0x28,0x38,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x38,0x00,0x86,0x10,
+0x68,0x15,0x22,0x26,0x2e,0x00,0x83,0x10,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x24,
+0x18,0x43,0x00,0x0c,0xff,0xff,0x05,0x24,0xff,0xfc,0x06,0x3c,0xff,0xff,0xc6,0x34,
+0x24,0x30,0x46,0x00,0x00,0x08,0x04,0x24,0xed,0x42,0x00,0x0c,0xff,0xff,0x05,0x24,
+0x68,0x15,0x22,0x26,0x7d,0x4b,0x44,0x90,0x01,0x00,0x03,0x24,0x07,0x00,0x83,0x10,
+0x02,0x00,0x82,0x28,0x2c,0x00,0x40,0x14,0x02,0x00,0x02,0x24,0x2c,0x00,0x82,0x10,
+0x03,0x00,0x02,0x24,0xd6,0xff,0x82,0x14,0x00,0x00,0x00,0x00,0x68,0x15,0x22,0x26,
+0x80,0x4b,0x44,0x8c,0x0f,0x00,0x05,0x3c,0xed,0x42,0x00,0x0c,0x21,0x30,0x00,0x00,
+0xdf,0x43,0x00,0x08,0x0f,0x00,0x04,0x3c,0x25,0x00,0x02,0x2e,0xc7,0xff,0x40,0x14,
+0x03,0x00,0x03,0x24,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xc1,0xff,0x40,0x14,
+0x00,0x00,0x00,0x00,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x68,0x15,0x22,0x26,
+0x80,0x4b,0x44,0x8c,0x0f,0x00,0x05,0x3c,0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24,
+0xf6,0x43,0x00,0x08,0x00,0x08,0x04,0x24,0xcc,0xff,0x80,0x14,0x68,0x15,0x22,0x26,
+0x80,0x4b,0x44,0x8c,0x0f,0x00,0x05,0x24,0xed,0x42,0x00,0x0c,0x0f,0x00,0x06,0x24,
+0xf6,0x43,0x00,0x08,0x00,0x08,0x04,0x24,0xad,0xff,0x80,0x14,0x00,0x00,0x00,0x00,
+0x68,0x15,0x22,0x26,0x80,0x4b,0x44,0x8c,0x0f,0x00,0x05,0x24,0xed,0x42,0x00,0x0c,
+0x21,0x30,0x00,0x00,0xdf,0x43,0x00,0x08,0x0f,0x00,0x04,0x3c,0xe8,0xff,0xbd,0x27,
+0x10,0x00,0xb0,0xaf,0x21,0x80,0x80,0x00,0x14,0x00,0xbf,0xaf,0x29,0x43,0x00,0x0c,
+0x21,0x20,0x00,0x00,0x40,0x01,0x44,0x34,0x21,0x18,0x40,0x00,0x1f,0x00,0x02,0x2e,
+0x00,0x23,0x04,0x00,0x10,0x00,0x40,0x10,0x10,0x00,0x05,0x2e,0x00,0x01,0x64,0x34,
+0x06,0x00,0xa0,0x10,0x00,0x23,0x04,0x00,0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x13,0x43,0x00,0x0c,
+0xf1,0xff,0x10,0x26,0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x13,0x43,0x00,0x0c,0xe2,0xff,0x10,0x26,
+0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x18,0x00,0xbd,0x27,0x25,0xb0,0x02,0x3c,0x27,0x38,0x05,0x00,0x21,0x40,0x82,0x00,
+0xff,0xff,0x02,0x24,0x07,0x00,0xa2,0x10,0x25,0x38,0xe6,0x00,0x00,0x00,0x02,0x8d,
+0x00,0x00,0x00,0x00,0x24,0x10,0xe2,0x00,0x00,0x00,0x02,0xad,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x00,0x06,0xad,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c,0xd8,0xff,0xbd,0x27,0xa8,0x11,0x42,0x24,
+0x18,0x03,0x63,0x34,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,
+0x24,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,
+0x21,0x88,0xa0,0x00,0x21,0x98,0xc0,0x00,0x21,0xa0,0x80,0x00,0x00,0x60,0x12,0x40,
+0x01,0x00,0x41,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x0f,0x00,0x02,0x3c,
+0xff,0xff,0x42,0x34,0x0a,0x00,0x22,0x12,0x21,0x28,0xc0,0x00,0x5c,0x43,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x21,0x20,0x20,0x02,0xe1,0x42,0x00,0x0c,0x21,0x80,0x40,0x00,
+0x04,0x10,0x53,0x00,0x27,0x28,0x11,0x00,0x25,0x28,0xa2,0x00,0x24,0x28,0xb0,0x00,
+0xc7,0x43,0x00,0x0c,0xff,0x00,0x84,0x32,0x00,0x60,0x92,0x40,0x24,0x00,0xbf,0x8f,
+0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x01,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0xe0,0xff,0xbd,0x27,0x54,0x12,0x63,0x24,0x18,0x03,0x42,0x34,
+0x18,0x00,0xb2,0xaf,0x1c,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,
+0x00,0x00,0x43,0xac,0x21,0x90,0xa0,0x00,0x00,0x60,0x11,0x40,0x01,0x00,0x21,0x36,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x5c,0x43,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x21,0x80,0x40,0x00,0xe1,0x42,0x00,0x0c,0x21,0x20,0x40,0x02,0x24,0x80,0x12,0x02,
+0x06,0x80,0x50,0x00,0x00,0x60,0x91,0x40,0x21,0x10,0x00,0x02,0x1c,0x00,0xbf,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0xc8,0xff,0xbd,0x27,0x2c,0x00,0xb1,0xaf,0xff,0xff,0x05,0x24,
+0x21,0x88,0x80,0x00,0x02,0x00,0x06,0x24,0x10,0x00,0xa4,0x27,0x34,0x00,0xbf,0xaf,
+0x30,0x00,0xb2,0xaf,0x58,0x45,0x00,0x0c,0x28,0x00,0xb0,0xaf,0x08,0x00,0x30,0x96,
+0x02,0x80,0x02,0x3c,0x21,0x28,0x00,0x00,0x25,0x80,0x02,0x02,0x21,0x20,0x00,0x02,
+0x58,0x45,0x00,0x0c,0x10,0x00,0x06,0x24,0x20,0x00,0x02,0x96,0x24,0x00,0x04,0x26,
+0x10,0x00,0xa5,0x27,0x03,0xff,0x42,0x30,0xc8,0x00,0x42,0x34,0x20,0x00,0x02,0xa6,
+0x60,0x45,0x00,0x0c,0x06,0x00,0x06,0x24,0x25,0xb0,0x03,0x3c,0x50,0x00,0x62,0x34,
+0x00,0x00,0x44,0x8c,0x54,0x00,0x65,0x34,0x58,0x00,0x66,0x34,0x18,0x00,0xa4,0xaf,
+0x00,0x00,0xa2,0x8c,0x5c,0x00,0x63,0x34,0x2a,0x00,0x04,0x26,0x1c,0x00,0xa2,0xaf,
+0x00,0x00,0xc7,0x8c,0x18,0x00,0xa5,0x27,0x06,0x00,0x06,0x24,0x20,0x00,0xa7,0xaf,
+0x00,0x00,0x62,0x8c,0x1a,0x00,0x12,0x24,0x60,0x45,0x00,0x0c,0x24,0x00,0xa2,0xaf,
+0x30,0x00,0x04,0x26,0x20,0x00,0xa5,0x27,0x60,0x45,0x00,0x0c,0x06,0x00,0x06,0x24,
+0x13,0x00,0x03,0x24,0x14,0x00,0x23,0xae,0x0c,0x00,0x32,0xae,0x08,0x00,0x05,0x8e,
+0x04,0x00,0x04,0x8e,0xff,0xdf,0x02,0x3c,0x14,0x00,0x06,0x8e,0xff,0xff,0x42,0x34,
+0x10,0x00,0x07,0x8e,0xff,0xe0,0x03,0x24,0x24,0x28,0xa2,0x00,0x00,0x40,0x02,0x3c,
+0x24,0x20,0x83,0x00,0x25,0x28,0xa2,0x00,0xff,0x81,0x03,0x24,0xfe,0xff,0x02,0x3c,
+0x24,0x30,0xc3,0x00,0xff,0xff,0x42,0x34,0x00,0x12,0x84,0x34,0x00,0x80,0x03,0x3c,
+0x24,0x20,0x82,0x00,0x25,0x38,0xe3,0x00,0x00,0x26,0xc6,0x34,0x80,0x00,0xa5,0x34,
+0x20,0x00,0x02,0x24,0x00,0x00,0x12,0xa6,0x10,0x00,0x07,0xae,0x02,0x00,0x02,0xa2,
+0x14,0x00,0x06,0xae,0x04,0x00,0x04,0xae,0x08,0x00,0x05,0xae,0x34,0x00,0xbf,0x8f,
+0x30,0x00,0xb2,0x8f,0x2c,0x00,0xb1,0x8f,0x28,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x38,0x00,0xbd,0x27,0x54,0x45,0x00,0x08,0xff,0x00,0xa5,0x30,0x00,0x00,0x85,0xa0,
+0xff,0xff,0xc6,0x24,0x01,0x00,0x84,0x24,0xfc,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x05,0x00,0xc0,0x10,0x00,0x00,0x00,0x00,
+0x00,0x00,0x85,0xac,0xff,0xff,0xc6,0x24,0xfd,0xff,0xc0,0x14,0x04,0x00,0x84,0x24,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x21,0x38,0x80,0x00,0x08,0x00,0xc0,0x10,
+0xff,0xff,0xc3,0x24,0xff,0xff,0x06,0x24,0x00,0x00,0xa2,0x90,0xff,0xff,0x63,0x24,
+0x01,0x00,0xa5,0x24,0x00,0x00,0xe2,0xa0,0xfb,0xff,0x66,0x14,0x01,0x00,0xe7,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x21,0x38,0x80,0x00,0x08,0x00,0xc0,0x10,
+0xff,0xff,0xc3,0x24,0xff,0xff,0x06,0x24,0x00,0x00,0xa2,0x8c,0xff,0xff,0x63,0x24,
+0x04,0x00,0xa5,0x24,0x00,0x00,0xe2,0xac,0xfb,0xff,0x66,0x14,0x04,0x00,0xe7,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x2b,0x10,0xa4,0x00,0x0d,0x00,0x40,0x14,
+0xff,0xff,0x02,0x24,0xff,0xff,0xc6,0x24,0x08,0x00,0xc2,0x10,0x21,0x18,0x80,0x00,
+0xff,0xff,0x07,0x24,0x00,0x00,0xa2,0x90,0xff,0xff,0xc6,0x24,0x01,0x00,0xa5,0x24,
+0x00,0x00,0x62,0xa0,0xfb,0xff,0xc7,0x14,0x01,0x00,0x63,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x80,0x00,0x21,0x28,0xa6,0x00,0x21,0x18,0x86,0x00,0xff,0xff,0xc6,0x24,
+0xfa,0xff,0xc2,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0x07,0x24,0xff,0xff,0xa5,0x24,
+0x00,0x00,0xa2,0x90,0xff,0xff,0x63,0x24,0xff,0xff,0xc6,0x24,0xfb,0xff,0xc7,0x14,
+0x00,0x00,0x62,0xa0,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x0c,0x00,0xc0,0x10,
+0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x90,0x00,0x00,0xa3,0x90,0x01,0x00,0x84,0x24,
+0x23,0x10,0x43,0x00,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,0x04,0x00,0x40,0x14,
+0x01,0x00,0xa5,0x24,0xff,0xff,0xc6,0x24,0xf6,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0xc0,0x00,0xab,0x45,0x00,0x08,0x21,0x18,0x86,0x00,
+0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0x04,0x00,0x45,0x10,0x00,0x00,0x00,0x00,
+0x01,0x00,0x84,0x24,0xfa,0xff,0x83,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x80,0x00,0x09,0x00,0xc0,0x10,0xff,0xff,0xc3,0x24,0xff,0x00,0xa5,0x30,
+0xff,0xff,0x06,0x24,0x00,0x00,0x82,0x90,0xff,0xff,0x63,0x24,0x05,0x00,0x45,0x10,
+0x01,0x00,0x84,0x24,0xfb,0xff,0x66,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0xff,0xff,0x82,0x24,0x21,0x38,0x00,0x00,
+0x1f,0x00,0xc0,0x10,0x21,0x18,0x00,0x00,0x02,0x80,0x02,0x3c,0x40,0xa3,0x4b,0x24,
+0x00,0x00,0x87,0x90,0x00,0x00,0xa3,0x90,0xff,0xff,0xc6,0x24,0x01,0x00,0x84,0x24,
+0x21,0x10,0xeb,0x00,0x16,0x00,0xe0,0x10,0x01,0x00,0xa5,0x24,0x14,0x00,0x60,0x10,
+0x21,0x48,0x6b,0x00,0x10,0x00,0xe3,0x10,0x20,0x00,0xe8,0x24,0x00,0x00,0x42,0x90,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x02,0x00,0x40,0x10,0x20,0x00,0x6a,0x24,
+0xff,0x00,0x07,0x31,0x00,0x00,0x22,0x91,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,
+0x02,0x00,0x40,0x10,0xff,0x00,0xe7,0x30,0xff,0x00,0x43,0x31,0xff,0x00,0x63,0x30,
+0x03,0x00,0xe3,0x14,0x00,0x00,0x00,0x00,0xe5,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x23,0x10,0xe3,0x00,0x21,0x18,0x80,0x00,0x00,0x00,0xa2,0x90,
+0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,0xfc,0xff,0x40,0x14,0x01,0x00,0x84,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x21,0x38,0x80,0x00,0xff,0xff,0x03,0x24,
+0xff,0xff,0xc6,0x24,0x06,0x00,0xc3,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,
+0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,0xf9,0xff,0x40,0x14,0x01,0x00,0x84,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0xe0,0x00,0x00,0x00,0x82,0x80,0xfa,0x45,0x00,0x08,
+0x21,0x18,0x80,0x00,0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x80,0x00,0x00,0x00,0x00,
+0xfc,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,0x01,0x00,0xa5,0x24,
+0x00,0x00,0x82,0xa0,0xfc,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0x12,0x00,0xc0,0x10,0x21,0x18,0x80,0x00,0x00,0x00,0x82,0x80,
+0x0b,0x46,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x80,
+0x00,0x00,0x00,0x00,0xfc,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,
+0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,0x05,0x00,0x40,0x10,0x01,0x00,0x84,0x24,
+0xff,0xff,0xc6,0x24,0xf9,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xa0,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x00,0x00,0x83,0x90,0x00,0x00,0xa2,0x90,
+0x01,0x00,0x84,0x24,0x23,0x10,0x62,0x00,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,
+0x03,0x00,0x40,0x14,0x01,0x00,0xa5,0x24,0xf7,0xff,0x60,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x21,0x10,0x00,0x00,0x0b,0x00,0xc0,0x10,
+0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,0x00,0x00,0x83,0x90,0xff,0xff,0xc6,0x24,
+0x23,0x10,0x62,0x00,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,0x03,0x00,0x40,0x14,
+0x01,0x00,0xa5,0x24,0xf5,0xff,0x60,0x14,0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x80,0x00,0x2e,0x05,0x00,0x21,0x10,0x80,0x00,
+0x3c,0x46,0x00,0x08,0x03,0x2e,0x05,0x00,0x07,0x00,0x60,0x10,0x01,0x00,0x42,0x24,
+0x00,0x00,0x43,0x80,0x00,0x00,0x00,0x00,0xfb,0xff,0x65,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x00,0x00,0x82,0x80,0x48,0x46,0x00,0x08,0x21,0x18,0x80,0x00,0x01,0x00,0x63,0x24,
+0x00,0x00,0x62,0x80,0x00,0x00,0x00,0x00,0xfc,0xff,0x40,0x14,0x23,0x10,0x64,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,
+0x21,0x80,0xa0,0x00,0x14,0x00,0xb1,0xaf,0x18,0x00,0xbf,0xaf,0x21,0x88,0x80,0x00,
+0x42,0x46,0x00,0x0c,0x00,0x86,0x10,0x00,0x21,0x18,0x51,0x00,0x03,0x86,0x10,0x00,
+0x00,0x00,0x62,0x80,0x00,0x00,0x00,0x00,0x0a,0x00,0x50,0x10,0x21,0x10,0x60,0x00,
+0xff,0xff,0x63,0x24,0x2b,0x10,0x71,0x00,0xf9,0xff,0x40,0x10,0x21,0x10,0x00,0x00,
+0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x21,0x30,0x80,0x00,0x0d,0x00,0xa0,0x10,
+0xff,0xff,0xa3,0x24,0x00,0x00,0x82,0x80,0x00,0x00,0x00,0x00,0x09,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x24,0xff,0xff,0x63,0x24,0x05,0x00,0x65,0x10,
+0x01,0x00,0xc6,0x24,0x00,0x00,0xc2,0x80,0x00,0x00,0x00,0x00,0xfa,0xff,0x40,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x23,0x10,0xc4,0x00,0x00,0x00,0x82,0x90,
+0x00,0x00,0x00,0x00,0x19,0x00,0x40,0x10,0x21,0x40,0x00,0x00,0x00,0x00,0xa9,0x80,
+0x00,0x00,0x00,0x00,0x17,0x00,0x20,0x11,0x21,0x30,0xa0,0x00,0x00,0x3e,0x02,0x00,
+0x03,0x3e,0x07,0x00,0x21,0x18,0x20,0x01,0x15,0x00,0xe3,0x10,0x00,0x00,0x00,0x00,
+0x01,0x00,0xc6,0x24,0x00,0x00,0xc2,0x90,0x00,0x00,0x00,0x00,0x00,0x1e,0x02,0x00,
+0x03,0x1e,0x03,0x00,0xf8,0xff,0x60,0x14,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,
+0x06,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x90,
+0x00,0x00,0x00,0x00,0xeb,0xff,0x40,0x14,0x01,0x00,0x08,0x25,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x01,0x00,0x00,0xa2,0x90,0x8d,0x46,0x00,0x08,0x00,0x16,0x02,0x00,
+0x00,0x00,0xc2,0x90,0x8d,0x46,0x00,0x08,0x00,0x16,0x02,0x00,0x00,0x00,0x87,0x90,
+0x00,0x00,0x00,0x00,0x14,0x00,0xe0,0x10,0x21,0x10,0x80,0x00,0x00,0x00,0xa4,0x90,
+0x00,0x00,0x00,0x00,0x00,0x1e,0x04,0x00,0x03,0x1e,0x03,0x00,0x09,0x00,0x60,0x10,
+0x21,0x30,0xa0,0x00,0x00,0x3e,0x07,0x00,0x03,0x3e,0x07,0x00,0x0b,0x00,0xe3,0x10,
+0x01,0x00,0xc6,0x24,0x00,0x00,0xc3,0x80,0x00,0x00,0x00,0x00,0xfb,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0x00,0x00,0x47,0x90,0x00,0x00,0x00,0x00,
+0xf0,0xff,0xe0,0x14,0x00,0x00,0x00,0x00,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,
+0x18,0x00,0xbf,0xaf,0x21,0x80,0x80,0x00,0x1d,0x00,0x80,0x10,0x21,0x88,0xa0,0x00,
+0x79,0x46,0x00,0x0c,0x21,0x20,0x00,0x02,0x21,0x80,0x02,0x02,0x00,0x00,0x02,0x82,
+0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02,0x22,0x00,0x40,0x10,0x21,0x18,0x00,0x00,
+0x9d,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x05,0x00,0x40,0x10,0x21,0x18,0x40,0x00,
+0x00,0x00,0x42,0x80,0x00,0x00,0x00,0x00,0x0a,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x02,0x80,0x02,0x3c,0x68,0xa4,0x43,0xac,0x21,0x18,0x00,0x02,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x60,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x00,0x00,0x60,0xa0,0xce,0x46,0x00,0x08,0x01,0x00,0x63,0x24,
+0x02,0x80,0x02,0x3c,0x68,0xa4,0x50,0x8c,0x00,0x00,0x00,0x00,0xf3,0xff,0x00,0x12,
+0x21,0x18,0x00,0x00,0x79,0x46,0x00,0x0c,0x21,0x20,0x00,0x02,0x21,0x80,0x02,0x02,
+0x00,0x00,0x02,0x82,0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02,0xe0,0xff,0x40,0x14,
+0x21,0x18,0x00,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x02,0x80,0x02,0x3c,0x68,0xa4,0x40,0xac,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0xe0,0xff,0xbd,0x27,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,
+0x1c,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x90,0x8c,0x21,0x90,0x80,0x00,
+0x21,0x88,0xa0,0x00,0x21,0x18,0x00,0x00,0x0f,0x00,0x00,0x12,0x21,0x20,0x00,0x02,
+0x79,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x80,0x02,0x02,0x00,0x00,0x02,0x82,
+0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02,0x07,0x00,0x40,0x10,0x21,0x18,0x00,0x00,
+0x9d,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x18,0x40,0x00,0x09,0x00,0x40,0x14,
+0x00,0x00,0x42,0xae,0x21,0x18,0x00,0x02,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x60,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x00,0x00,0x42,0x80,0x00,0x00,0x00,0x00,0xf5,0xff,0x40,0x10,
+0x01,0x00,0x64,0x24,0x00,0x00,0x60,0xa0,0x07,0x47,0x00,0x08,0x00,0x00,0x44,0xae,
+0xd8,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x21,0x88,0x80,0x00,0x21,0x20,0xa0,0x00,
+0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x20,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,
+0x42,0x46,0x00,0x0c,0x21,0x98,0xa0,0x00,0x21,0x90,0x40,0x00,0x08,0x00,0x40,0x16,
+0x21,0x10,0x20,0x02,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,
+0x42,0x46,0x00,0x0c,0x21,0x20,0x20,0x02,0x21,0x80,0x40,0x00,0x2a,0x10,0x52,0x00,
+0x0a,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x21,0x20,0x20,0x02,0x21,0x28,0x60,0x02,
+0x21,0x30,0x40,0x02,0x95,0x45,0x00,0x0c,0xff,0xff,0x10,0x26,0x0b,0x00,0x40,0x10,
+0x2a,0x18,0x12,0x02,0xf8,0xff,0x60,0x10,0x01,0x00,0x31,0x26,0x20,0x00,0xbf,0x8f,
+0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x23,0x47,0x00,0x08,
+0x21,0x10,0x20,0x02,0x01,0x80,0x02,0x3c,0x0c,0x1d,0x43,0x24,0x25,0xb0,0x02,0x3c,
+0xc0,0xff,0xbd,0x27,0x18,0x03,0x42,0x34,0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,
+0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x3c,0x00,0xbf,0xaf,0x28,0x00,0xb4,0xaf,
+0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0x00,0x00,0x43,0xac,0x21,0xf0,0x00,0x00,0x02,0x80,0x15,0x3c,0x02,0x80,0x17,0x3c,
+0x02,0x80,0x16,0x3c,0x25,0xb0,0x05,0x3c,0x01,0x80,0x04,0x3c,0x0c,0x1d,0x82,0x24,
+0x18,0x03,0xa3,0x34,0x00,0x00,0x62,0xac,0xa0,0x02,0xa8,0x34,0x68,0x15,0xae,0x26,
+0x00,0x00,0x04,0x8d,0xe4,0x63,0xc3,0x95,0xff,0x0f,0x02,0x3c,0xff,0xff,0x47,0x34,
+0x24,0x98,0x87,0x00,0x01,0x00,0x06,0x3c,0x01,0x00,0x63,0x24,0x2b,0x10,0xd3,0x00,
+0x07,0x00,0x40,0x10,0xe4,0x63,0xc3,0xa5,0xa4,0x02,0xa2,0x34,0x00,0x00,0x54,0x8c,
+0x00,0xb0,0x03,0x3c,0x25,0x98,0x63,0x02,0x00,0x00,0x74,0xae,0x00,0x00,0x00,0xad,
+0xb0,0x02,0xa4,0x34,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x24,0x98,0x47,0x00,
+0x2b,0x18,0xd3,0x00,0x08,0x00,0x60,0x10,0x25,0xb0,0x02,0x3c,0x00,0xb0,0x02,0x3c,
+0x25,0x98,0x62,0x02,0x00,0x00,0x74,0x8e,0xb4,0x02,0xa2,0x34,0x00,0x00,0x54,0xac,
+0x00,0x00,0x80,0xac,0x25,0xb0,0x02,0x3c,0xc0,0x02,0x4a,0x34,0x00,0x00,0x53,0x8d,
+0xff,0x00,0x05,0x3c,0xff,0xff,0xa2,0x34,0x2b,0x10,0x53,0x00,0x4f,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x25,0xb0,0x11,0x3c,0x00,0x00,0x23,0x8e,0x00,0xff,0x09,0x3c,
+0xff,0x00,0x22,0x35,0x00,0xfd,0x08,0x3c,0x01,0x00,0x66,0x24,0x24,0x38,0x62,0x02,
+0xac,0x02,0x24,0x36,0xbc,0x02,0x23,0x36,0x05,0x00,0x02,0x35,0x00,0x00,0x86,0xac,
+0x2b,0x10,0x47,0x00,0x00,0x00,0x73,0xac,0x00,0x00,0x86,0x8c,0xb7,0x00,0x40,0x14,
+0xa6,0x00,0x02,0x35,0x04,0x00,0x02,0x35,0x2b,0x10,0xe2,0x00,0x39,0x00,0x40,0x10,
+0x25,0xb0,0x02,0x3c,0x00,0xf8,0x03,0x3c,0x15,0x00,0x62,0x34,0x1d,0x04,0xe2,0x10,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x1e,0x01,0x40,0x14,0x00,0xf9,0x04,0x3c,
+0x00,0xf1,0x04,0x3c,0x20,0x04,0xe4,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x87,0x00,
+0x82,0x01,0x40,0x14,0x10,0x00,0x62,0x34,0x00,0xf0,0x03,0x3c,0x01,0x00,0x62,0x34,
+0x5b,0x04,0xe2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x59,0x02,0x40,0x14,
+0x03,0x00,0x62,0x34,0x00,0xd0,0x02,0x3c,0x36,0x04,0xe2,0x10,0x2b,0x10,0x47,0x00,
+0x71,0x03,0x40,0x14,0x00,0xe0,0x02,0x3c,0x00,0xc0,0x02,0x3c,0x4b,0x05,0xe2,0x10,
+0x00,0x00,0x00,0x00,0x00,0xf0,0x02,0x3c,0x24,0x38,0x62,0x02,0x18,0x00,0xe2,0x10,
+0x0f,0x00,0x03,0x3c,0x00,0x70,0x09,0x3c,0x24,0x10,0x69,0x02,0x02,0x25,0x13,0x00,
+0xff,0xff,0x63,0x34,0x00,0x50,0x08,0x3c,0x24,0x28,0x63,0x02,0x02,0x57,0x02,0x00,
+0xff,0x00,0x84,0x30,0xa7,0x01,0xe8,0x10,0xff,0x00,0x66,0x32,0x2b,0x10,0x07,0x01,
+0x9b,0x01,0x40,0x14,0x00,0x80,0x02,0x3c,0x00,0x20,0x02,0x3c,0xb5,0x03,0xe2,0x10,
+0x2b,0x10,0x47,0x00,0xa3,0x02,0x40,0x14,0x00,0x30,0x02,0x3c,0xb2,0x03,0xe0,0x10,
+0x80,0x10,0x04,0x00,0x00,0x10,0x02,0x3c,0xaf,0x03,0xe2,0x10,0x80,0x10,0x04,0x00,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x00,0x00,0x40,0xac,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x07,0x3c,
+0x64,0x03,0xe2,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x28,0x7e,0xe3,0xa2,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x28,0x7e,0xe2,0x92,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x55,0x00,0x40,0x10,0x68,0x15,0xa5,0x26,
+0x68,0x15,0xa6,0x26,0x00,0x40,0xc4,0x8c,0xe4,0x42,0xc5,0x8c,0xf0,0xff,0x02,0x24,
+0x24,0x20,0x82,0x00,0x00,0x50,0x03,0x3c,0x01,0x00,0x84,0x34,0x24,0x28,0xa3,0x00,
+0x00,0x10,0x02,0x3c,0x00,0x40,0xc4,0xac,0x95,0x03,0xa2,0x10,0xd6,0x42,0xc0,0xa0,
+0x28,0x7e,0xe2,0x92,0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x30,0x40,0x00,0x40,0x10,
+0x68,0x15,0xa2,0x26,0x00,0x40,0x43,0x8c,0x0f,0xff,0x04,0x24,0x24,0x18,0x64,0x00,
+0x10,0x00,0x63,0x34,0x00,0x40,0x43,0xac,0x28,0x7e,0xe2,0x92,0x00,0x00,0x00,0x00,
+0x04,0x00,0x42,0x30,0x32,0x00,0x40,0x10,0x68,0x15,0xa2,0x26,0x00,0x40,0x43,0x8c,
+0xff,0xf0,0x04,0x24,0x24,0x18,0x64,0x00,0x00,0x01,0x63,0x34,0x25,0xb0,0x05,0x3c,
+0x00,0x40,0x43,0xac,0x4c,0x00,0xa3,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,
+0x03,0x00,0x42,0x30,0x06,0x00,0x40,0x14,0x68,0x15,0xa4,0x26,0x00,0x40,0x83,0x8c,
+0xff,0xff,0x02,0x3c,0xff,0x0f,0x42,0x34,0x24,0x18,0x62,0x00,0x00,0x40,0x83,0xac,
+0x60,0x7b,0xc4,0x8e,0x01,0x80,0x06,0x3c,0x0c,0x1e,0xc2,0x24,0x18,0x03,0xa3,0x34,
+0x60,0x7b,0xc6,0x26,0x00,0x00,0x62,0xac,0x11,0x00,0x86,0x10,0x02,0x80,0x02,0x3c,
+0xbf,0x00,0xb2,0x34,0x68,0x15,0x51,0x24,0x21,0x80,0xc0,0x00,0x21,0xf0,0x00,0x00,
+0x00,0x00,0x42,0x92,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x2c,0x09,0x00,0x40,0x10,
+0x02,0x80,0x02,0x3c,0xf8,0x65,0x24,0x8e,0x30,0x08,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x60,0x7b,0xc2,0x8e,0x00,0x00,0x00,0x00,0xf5,0xff,0x50,0x14,0x00,0x00,0x00,0x00,
+0x02,0x80,0x02,0x3c,0x08,0x08,0x44,0x24,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,
+0xfe,0x1f,0x00,0x0c,0x21,0x38,0x00,0x00,0x58,0x47,0x00,0x08,0x25,0xb0,0x05,0x3c,
+0x00,0x40,0x43,0x8c,0xff,0xf0,0x04,0x24,0x01,0x48,0x00,0x08,0x24,0x18,0x64,0x00,
+0x00,0x40,0x43,0x8c,0x0f,0xff,0x04,0x24,0xf7,0x47,0x00,0x08,0x24,0x18,0x64,0x00,
+0x00,0x40,0xa4,0x8c,0xe4,0x42,0xa6,0x8c,0xf0,0xff,0x02,0x24,0x00,0x90,0x03,0x3c,
+0x24,0x20,0x82,0x00,0x24,0x18,0xc3,0x00,0x00,0x10,0x02,0x3c,0xb0,0xff,0x62,0x14,
+0x00,0x40,0xa4,0xac,0x50,0x0c,0xe3,0x34,0xff,0xbf,0x02,0x3c,0x00,0x00,0x64,0x90,
+0xff,0xff,0x42,0x34,0x24,0x10,0xc2,0x00,0x00,0x80,0x03,0x3c,0x25,0x10,0x43,0x00,
+0xe4,0x42,0xa2,0xac,0xee,0x47,0x00,0x08,0xd7,0x42,0xa4,0xa0,0x55,0x03,0xe2,0x10,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x18,0x00,0x40,0x14,0x00,0xfe,0x03,0x3c,
+0x20,0x00,0x02,0x35,0x53,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,0x85,0x00,0x40,0x14,
+0xa0,0x00,0x02,0x35,0x15,0x00,0x02,0x35,0x9d,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,
+0x17,0x01,0x40,0x14,0x17,0x00,0x02,0x35,0x08,0x00,0x02,0x35,0x16,0x04,0xe2,0x10,
+0x64,0x03,0x23,0x36,0x2b,0x10,0x47,0x00,0x24,0x02,0x40,0x14,0x09,0x00,0x02,0x35,
+0x07,0x00,0x02,0x35,0x53,0xff,0xe2,0x14,0x00,0x00,0x00,0x00,0xd9,0x58,0x00,0x0c,
+0x21,0x20,0x60,0x02,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x18,0x00,0x62,0x34,
+0x42,0x03,0xe2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x95,0x00,0x40,0x14,
+0x07,0x00,0x22,0x35,0xad,0x00,0x02,0x35,0x8c,0x03,0xe2,0x10,0x00,0x00,0x00,0x00,
+0x2b,0x10,0x47,0x00,0xd2,0x00,0x40,0x14,0x10,0x00,0x62,0x34,0xaa,0x00,0x02,0x35,
+0x75,0x04,0xe2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x6e,0x01,0x40,0x14,
+0xab,0x00,0x02,0x35,0xa7,0x00,0x02,0x35,0x3b,0xff,0xe2,0x14,0x00,0xf0,0x02,0x3c,
+0x00,0xff,0x62,0x32,0x02,0xa2,0x02,0x00,0x02,0x1c,0x13,0x00,0x01,0x00,0x02,0x24,
+0xbd,0x05,0x82,0x12,0xff,0x00,0x65,0x30,0x02,0x00,0x02,0x24,0xae,0x05,0x82,0x12,
+0xc0,0x10,0x05,0x00,0x03,0x00,0x02,0x24,0x9e,0x05,0x82,0x12,0xc0,0x10,0x05,0x00,
+0x04,0x00,0x02,0x24,0xc5,0x05,0x82,0x12,0xc0,0x10,0x05,0x00,0x08,0x00,0x02,0x24,
+0x29,0x06,0x82,0x12,0xc0,0x10,0x05,0x00,0x09,0x00,0x02,0x24,0x19,0x06,0x82,0x12,
+0xc0,0x10,0x05,0x00,0x0a,0x00,0x02,0x24,0x09,0x06,0x82,0x12,0xc0,0x10,0x05,0x00,
+0x0b,0x00,0x02,0x24,0xf9,0x05,0x82,0x12,0xc0,0x10,0x05,0x00,0x0c,0x00,0x02,0x24,
+0xe9,0x05,0x82,0x12,0xc0,0x10,0x05,0x00,0x0d,0x00,0x02,0x24,0xd9,0x05,0x82,0x12,
+0xc0,0x10,0x05,0x00,0x0e,0x00,0x02,0x24,0xc9,0x05,0x82,0x12,0xc0,0x10,0x05,0x00,
+0x0f,0x00,0x02,0x24,0xb9,0x05,0x82,0x12,0xc0,0x10,0x05,0x00,0x10,0x00,0x02,0x24,
+0x2b,0xff,0x82,0x16,0xc0,0x10,0x05,0x00,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,
+0x21,0x10,0x45,0x00,0x68,0x15,0xa3,0x26,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,
+0x58,0x51,0x44,0x94,0x54,0x51,0x45,0x94,0x25,0xb0,0x06,0x3c,0x00,0x24,0x04,0x00,
+0xc4,0x02,0xc3,0x34,0x21,0x28,0xa4,0x00,0x00,0x00,0x65,0xac,0x64,0x51,0x47,0x8c,
+0x60,0x51,0x43,0x8c,0x5c,0x51,0x44,0x94,0xc8,0x02,0xc6,0x34,0x21,0x18,0x67,0x00,
+0x00,0x1c,0x03,0x00,0x21,0x20,0x83,0x00,0x00,0x00,0xc4,0xac,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x06,0x00,0x82,0x34,0xfe,0x02,0xe2,0x10,0x00,0x00,0x00,0x00,
+0x2b,0x10,0x47,0x00,0x52,0x00,0x40,0x14,0x01,0x00,0x82,0x34,0x3b,0x03,0xe2,0x10,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x6a,0x01,0x40,0x14,0x03,0x00,0x82,0x34,
+0x17,0x00,0x62,0x34,0xaa,0x04,0xe2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0xe2,0x00,
+0x7d,0x04,0x40,0x14,0x00,0x00,0x00,0x00,0x18,0x00,0x62,0x34,0x40,0x05,0xe2,0x10,
+0x00,0x00,0x00,0x00,0xe3,0xfe,0xe4,0x14,0x68,0x15,0xa2,0x26,0x64,0x64,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x0b,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,0xf8,0x00,0x40,0x14,
+0xa3,0x00,0x02,0x35,0x22,0x00,0x02,0x35,0x8b,0x03,0xe2,0x10,0x2b,0x10,0xe2,0x00,
+0xbb,0x01,0x40,0x14,0x68,0x15,0xa4,0x26,0x28,0x00,0x02,0x35,0xe7,0x04,0xe2,0x10,
+0x0f,0x00,0x10,0x3c,0x29,0x00,0x02,0x35,0xcf,0xfe,0xe2,0x14,0x00,0xf0,0x02,0x3c,
+0x02,0x1c,0x13,0x00,0x00,0x1f,0x62,0x32,0x68,0x15,0xb0,0x26,0x02,0xa2,0x02,0x00,
+0x3f,0x00,0x66,0x30,0xc1,0x42,0x06,0xa2,0xbc,0x42,0x14,0xa2,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x3b,0x15,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x21,0xa0,0x40,0x00,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0x00,0x54,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x03,0x40,0x02,0x92,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0xce,0x47,0x00,0x08,
+0x03,0x40,0x02,0xa2,0xf5,0x02,0xe2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,
+0x4d,0x00,0x40,0x14,0x0e,0x00,0x22,0x35,0x1a,0x00,0x62,0x34,0x43,0x03,0xe2,0x10,
+0x2b,0x10,0xe2,0x00,0x38,0x01,0x40,0x14,0x00,0x00,0x00,0x00,0xf0,0x04,0xe9,0x10,
+0x00,0x00,0x00,0x00,0x01,0x00,0x22,0x35,0xa6,0xfe,0xe2,0x14,0x00,0x00,0x00,0x00,
+0x0e,0x4f,0x00,0x0c,0x01,0x00,0x04,0x24,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x00,0xfb,0x03,0x3c,0x02,0x00,0x62,0x34,0x14,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,
+0xd6,0x00,0x40,0x14,0x01,0x00,0x02,0x35,0x20,0x00,0x82,0x34,0xd2,0x03,0xe2,0x10,
+0x2b,0x10,0x47,0x00,0x25,0x02,0x40,0x14,0x07,0x00,0x82,0x34,0x95,0xfe,0xe2,0x14,
+0x68,0x15,0xa2,0x26,0x48,0x64,0x44,0x90,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,
+0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xea,0x02,0xe2,0x10,
+0x2b,0x10,0x47,0x00,0xef,0x00,0x40,0x14,0x12,0x00,0x62,0x34,0x02,0x00,0x82,0x34,
+0xa3,0xfe,0xe2,0x10,0x2b,0x10,0xe2,0x00,0xa4,0x01,0x40,0x14,0x00,0xff,0x62,0x32,
+0x03,0x00,0x82,0x34,0xd6,0x04,0xe2,0x10,0x00,0x00,0x00,0x00,0x04,0x00,0x82,0x34,
+0x81,0xfe,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x02,0x14,0x13,0x00,0xff,0x00,0x54,0x30,
+0x00,0xff,0x63,0x32,0x07,0x00,0x82,0x2e,0x95,0xfe,0x40,0x10,0x02,0xf2,0x03,0x00,
+0x02,0x80,0x04,0x3c,0x84,0x9f,0x83,0x24,0x80,0x10,0x14,0x00,0x21,0x10,0x43,0x00,
+0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,
+0xec,0x02,0xe2,0x10,0x2b,0x10,0x47,0x00,0x12,0x01,0x40,0x14,0x11,0x00,0x62,0x34,
+0xae,0x00,0x02,0x35,0x9e,0x04,0xe2,0x10,0x02,0x24,0x13,0x00,0xaf,0x00,0x02,0x35,
+0x68,0xfe,0xe2,0x14,0x00,0x00,0x00,0x00,0x76,0x50,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x0d,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,
+0xfa,0x00,0x40,0x14,0x0f,0x00,0x22,0x35,0x0c,0x00,0x22,0x35,0xf6,0x03,0xe2,0x10,
+0x68,0x15,0xa2,0x26,0x0d,0x00,0x22,0x35,0x5b,0xfe,0xe2,0x14,0x00,0xf0,0x02,0x3c,
+0x68,0x15,0xa3,0x26,0x01,0x00,0x02,0x24,0xce,0x47,0x00,0x08,0x46,0x64,0x62,0xa4,
+0x02,0x03,0xe2,0x10,0x2b,0x10,0x47,0x00,0x15,0x01,0x40,0x14,0x00,0xa0,0x02,0x3c,
+0x00,0x60,0x02,0x3c,0x04,0x00,0xe2,0x10,0x80,0x10,0x04,0x00,0x69,0xfe,0xe9,0x14,
+0x25,0xb0,0x02,0x3c,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x68,0x15,0xa3,0x26,
+0x21,0x10,0x43,0x00,0x21,0x10,0x4a,0x00,0xce,0x47,0x00,0x08,0xc1,0x43,0x46,0xa0,
+0x07,0x03,0xe2,0x10,0x2b,0x10,0xe2,0x00,0x37,0x01,0x40,0x14,0x00,0xff,0x62,0x32,
+0x18,0x00,0x02,0x35,0xe3,0x03,0xe2,0x10,0x19,0x00,0x02,0x35,0x3e,0xfe,0xe2,0x14,
+0x00,0xf0,0x02,0x3c,0x25,0xb0,0x03,0x3c,0xc0,0x02,0x62,0x34,0x00,0x00,0x40,0xac,
+0x94,0x0e,0x64,0x34,0x9c,0x0e,0x62,0x34,0xa4,0x0e,0x65,0x34,0xac,0x0e,0x66,0x34,
+0x00,0x00,0x89,0x8c,0x68,0x15,0xaf,0x26,0x00,0x00,0x4b,0x8c,0x00,0x00,0xac,0x8c,
+0x00,0x00,0xc4,0x8c,0xb4,0x0e,0x62,0x34,0x0c,0x40,0xe5,0x8d,0x10,0x40,0xe6,0x8d,
+0x00,0x00,0x4a,0x8c,0xff,0x03,0x07,0x3c,0x00,0xfc,0x08,0x24,0xbc,0x0e,0x62,0x34,
+0x24,0x48,0x27,0x01,0x24,0x20,0x87,0x00,0x00,0x00,0x4d,0x8c,0x24,0x30,0xc8,0x00,
+0x02,0x4c,0x09,0x00,0x24,0x28,0xa8,0x00,0x02,0x24,0x04,0x00,0xcc,0x0e,0x68,0x34,
+0xf0,0xff,0x02,0x3c,0xc4,0x0e,0x63,0x34,0xff,0x03,0x42,0x34,0x25,0x28,0xa9,0x00,
+0x25,0x30,0xc4,0x00,0x00,0x00,0x69,0x8c,0x08,0x40,0xe4,0x8d,0x00,0x00,0x0e,0x8d,
+0x24,0x58,0x67,0x01,0x24,0x50,0x47,0x01,0x24,0x30,0xc2,0x00,0x24,0x28,0xa2,0x00,
+0x82,0x59,0x0b,0x00,0x82,0x51,0x0a,0x00,0x0f,0xc0,0x03,0x3c,0xff,0x9f,0x02,0x3c,
+0xff,0xff,0x63,0x34,0xff,0xff,0x42,0x34,0x25,0x28,0xab,0x00,0x25,0x30,0xca,0x00,
+0x24,0x60,0x87,0x01,0x24,0x68,0xa7,0x01,0xff,0x00,0x08,0x3c,0x24,0x20,0x82,0x00,
+0x24,0x30,0xc3,0x00,0x24,0x28,0xa3,0x00,0x24,0x70,0xc7,0x01,0x00,0x61,0x0c,0x00,
+0x00,0x69,0x0d,0x00,0x24,0x48,0x27,0x01,0x00,0xff,0x03,0x35,0x00,0x20,0x02,0x3c,
+0x25,0x20,0x82,0x00,0x25,0x28,0xac,0x00,0x25,0x30,0xcd,0x00,0x02,0x4c,0x09,0x00,
+0x02,0x74,0x0e,0x00,0x24,0x18,0x63,0x02,0x08,0x40,0xe4,0xad,0x0c,0x40,0xe5,0xad,
+0x10,0x40,0xe6,0xad,0x14,0x40,0xe9,0xa5,0x4d,0x04,0x60,0x10,0x16,0x40,0xee,0xa5,
+0x24,0x10,0x68,0x02,0x02,0x14,0x02,0x00,0x02,0x1a,0x13,0x00,0xc7,0x42,0xe2,0xa1,
+0xc3,0x42,0xe3,0xa1,0x68,0x15,0xa2,0x26,0xc3,0x42,0x44,0x90,0x25,0xb0,0x03,0x3c,
+0x61,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,
+0xfd,0x55,0x00,0x0c,0x10,0x00,0xa4,0x27,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x92,0x02,0xe2,0x10,0x2b,0x10,0x47,0x00,0xda,0x00,0x40,0x14,0xa4,0x00,0x02,0x35,
+0xa1,0x00,0x02,0x35,0x26,0x03,0xe2,0x10,0x02,0x24,0x13,0x00,0xa2,0x00,0x02,0x35,
+0xd8,0xfd,0xe2,0x14,0xc4,0x02,0x22,0x36,0x00,0xff,0xa3,0x34,0x24,0x18,0x63,0x02,
+0x00,0x00,0x45,0x8c,0x02,0xf2,0x03,0x00,0xb2,0x51,0x00,0x0c,0x21,0x20,0xc0,0x03,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x11,0x04,0xe2,0x10,0x00,0x00,0x00,0x00,
+0xac,0x00,0x02,0x35,0xcb,0xfd,0xe2,0x14,0x00,0x00,0x00,0x00,0x8b,0x4f,0x00,0x0c,
+0x21,0x20,0x60,0x02,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x46,0x03,0xe2,0x10,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x47,0x00,0x3e,0x01,0x40,0x14,0x02,0x00,0x02,0x35,
+0x03,0x00,0x62,0x34,0xfb,0x03,0xe2,0x10,0x68,0x15,0xa3,0x26,0xbe,0xfd,0xe8,0x14,
+0x00,0xf0,0x02,0x3c,0xcc,0x58,0x00,0x0c,0x21,0x20,0x60,0x02,0x00,0xff,0x63,0x32,
+0x00,0xcc,0x02,0x34,0xd3,0xfd,0x62,0x14,0x25,0xb0,0x02,0x3c,0x68,0x15,0xa2,0x26,
+0xe4,0x42,0x43,0x8c,0x00,0x10,0x04,0x3c,0x25,0x18,0x64,0x00,0xce,0x47,0x00,0x08,
+0xe4,0x42,0x43,0xac,0x04,0x03,0xe2,0x10,0x2b,0x10,0xe2,0x00,0x04,0x01,0x40,0x14,
+0x24,0x10,0x65,0x02,0x08,0x00,0x62,0x34,0x7b,0x03,0xe2,0x10,0x20,0x00,0x62,0x34,
+0xa8,0xfd,0xe2,0x14,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x07,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x0c,0x03,0xe2,0x10,0x2b,0x10,0xe2,0x00,0x9e,0x00,0x40,0x14,
+0x00,0xff,0x62,0x32,0x13,0x00,0x62,0x34,0x75,0x03,0xe2,0x10,0x14,0x00,0x62,0x34,
+0x94,0xfd,0xe2,0x14,0x00,0x00,0x00,0x00,0x3a,0x0c,0x00,0x0c,0xfd,0x00,0x04,0x24,
+0x25,0xb0,0x03,0x3c,0x10,0x10,0x02,0x3c,0xa0,0x00,0x64,0x34,0x10,0x10,0x42,0x34,
+0x00,0x00,0x82,0xac,0x00,0xc0,0x02,0x3c,0xa8,0x00,0x65,0x34,0x00,0xa1,0x42,0x34,
+0xa4,0x00,0x63,0x34,0x00,0x00,0x60,0xac,0x00,0x00,0xa2,0xac,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0xd2,0x02,0xe2,0x10,0xc4,0x02,0x23,0x36,0x2b,0x10,0xe2,0x00,
+0x09,0x01,0x40,0x14,0x68,0x15,0xa2,0x26,0x04,0x00,0x82,0x34,0xaa,0x03,0xe2,0x10,
+0x68,0x15,0xa2,0x26,0x05,0x00,0x82,0x34,0x7a,0xfd,0xe2,0x14,0x68,0x15,0xa2,0x26,
+0x50,0x64,0x44,0x90,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x68,0x15,0xa2,0x26,0x76,0x4b,0x44,0x90,
+0xc4,0x02,0x23,0x36,0x00,0x00,0x64,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xf2,0x02,0xe2,0x10,
+0x10,0x00,0x22,0x35,0x64,0xfd,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x00,0xff,0x63,0x32,
+0x00,0xff,0x02,0x34,0xbe,0x03,0x62,0x10,0x68,0x15,0xa2,0x26,0xce,0x47,0x00,0x08,
+0xec,0x65,0x40,0xac,0x5c,0x03,0xe2,0x10,0x00,0x00,0x00,0x00,0x12,0x00,0x62,0x34,
+0x58,0xfd,0xe2,0x14,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xff,0x00,0x02,0x3c,0x00,0xff,0x42,0x34,
+0x24,0x10,0x62,0x02,0x02,0xf2,0x02,0x00,0x68,0x15,0xa3,0x26,0x77,0x4b,0x7e,0xa0,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x0f,0x01,0xe2,0x10,0x00,0x40,0x02,0x3c,0x61,0xfd,0xe2,0x14,
+0x25,0xb0,0x02,0x3c,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x68,0x15,0xa3,0x26,
+0x21,0x10,0x43,0x00,0x21,0x10,0x4a,0x00,0xce,0x47,0x00,0x08,0xc1,0x43,0x46,0xa0,
+0xc4,0x02,0xe2,0x10,0x2b,0x10,0x47,0x00,0xd3,0x00,0x40,0x14,0x00,0xb0,0x02,0x3c,
+0x00,0x90,0x02,0x3c,0x53,0xfd,0xe2,0x14,0x25,0xb0,0x02,0x3c,0x68,0x15,0xa2,0x26,
+0x21,0x10,0x82,0x00,0xce,0x47,0x00,0x08,0x73,0x44,0x46,0xa0,0xe0,0x02,0xe2,0x10,
+0x25,0xb0,0x02,0x3c,0x14,0x00,0x02,0x35,0x2f,0xfd,0xe2,0x14,0x00,0xf0,0x02,0x3c,
+0xff,0x00,0x04,0x3c,0x00,0xff,0x82,0x34,0x24,0x10,0x62,0x02,0x45,0xfd,0x40,0x10,
+0x25,0xb0,0x02,0x3c,0x68,0x15,0xa3,0x26,0x04,0x43,0x66,0x90,0x24,0x20,0x64,0x02,
+0x00,0xff,0x65,0x32,0x02,0x24,0x04,0x00,0x02,0x2a,0x05,0x00,0x00,0x01,0xc6,0x34,
+0xfb,0xff,0x87,0x24,0xfb,0xff,0xa2,0x24,0x1f,0x43,0x62,0xa0,0x04,0x43,0x66,0xac,
+0x1d,0x43,0x67,0xa0,0x1c,0x43,0x64,0xa0,0xce,0x47,0x00,0x08,0x1e,0x43,0x65,0xa0,
+0x08,0x40,0x83,0x8c,0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0x02,0x34,0x13,0x00,0x00,0x1f,0x65,0x32,0x00,0x20,0x02,0x3c,0x25,0x18,0x62,0x00,
+0x02,0xa2,0x05,0x00,0x3f,0x00,0xc6,0x30,0xc1,0x42,0x86,0xa0,0x08,0x40,0x83,0xac,
+0xce,0x47,0x00,0x08,0xbc,0x42,0x94,0xa0,0x02,0x22,0x02,0x00,0x03,0x00,0x83,0x2c,
+0x24,0xfd,0x60,0x10,0x25,0xb0,0x02,0x3c,0x68,0x15,0xa2,0x26,0xce,0x47,0x00,0x08,
+0x02,0x40,0x44,0xa0,0xae,0x02,0xe2,0x10,0xa5,0x00,0x02,0x35,0x01,0xfd,0xe2,0x14,
+0x00,0x00,0x00,0x00,0x02,0x24,0x13,0x00,0xec,0x51,0x00,0x0c,0xff,0x00,0x84,0x30,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x02,0x22,0x02,0x00,0x21,0xa0,0x00,0x00,
+0xbf,0x4a,0x00,0x08,0x27,0xb0,0x07,0x3c,0x00,0x01,0x82,0x2e,0x0b,0x00,0x40,0x10,
+0x08,0x00,0xe7,0x24,0x00,0x00,0xe2,0x94,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x30,
+0xff,0x00,0xc3,0x33,0xf8,0xff,0x64,0x14,0x01,0x00,0x94,0x26,0xff,0xff,0x94,0x26,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x54,0xa4,0xff,0x00,0x82,0x2e,
+0x03,0xfd,0x40,0x14,0x25,0xb0,0x02,0x3c,0x12,0x87,0x03,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0x00,0x43,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x02,0xf2,0x02,0x00,
+0x80,0x00,0xc0,0x13,0x00,0x00,0x00,0x00,0x94,0x00,0x22,0x36,0x00,0x00,0x43,0x94,
+0xb0,0x03,0x25,0x36,0x68,0x15,0xa6,0x26,0xff,0xff,0x74,0x30,0x1b,0x00,0x9e,0x02,
+0x02,0x00,0xc0,0x17,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x00,0x00,0xb4,0xac,
+0xe6,0x4a,0xc7,0x94,0xff,0xff,0xc3,0x27,0x01,0x00,0x02,0x24,0xe3,0x4a,0xc2,0xa0,
+0x80,0xff,0x02,0x24,0x6a,0x03,0x2a,0x36,0x4f,0x00,0x2b,0x36,0x9e,0x00,0x2c,0x36,
+0x44,0x00,0x28,0x36,0xd8,0x00,0x2d,0x36,0x12,0xa0,0x00,0x00,0x80,0x22,0x14,0x00,
+0x00,0xf8,0x84,0x24,0x18,0x00,0xd4,0x03,0xff,0xff,0x7e,0x30,0x00,0x19,0x1e,0x00,
+0x25,0x18,0x62,0x00,0x26,0xb0,0x02,0x3c,0x7c,0x00,0x42,0x34,0x12,0x48,0x00,0x00,
+0x23,0x38,0xe9,0x00,0x00,0x00,0x47,0xa5,0x00,0x00,0xbe,0xac,0x00,0x00,0x63,0xa1,
+0x00,0x00,0xb4,0xac,0x00,0x00,0x94,0xa5,0x42,0xa1,0x04,0x00,0x00,0x00,0xb4,0xac,
+0x00,0x00,0x54,0xa4,0x00,0x00,0x03,0x95,0xff,0xfd,0x02,0x24,0xe8,0x4a,0xc7,0xa4,
+0x24,0x18,0x62,0x00,0x00,0x00,0x03,0xa5,0x00,0x00,0x02,0x95,0x00,0x00,0x00,0x00,
+0x00,0x02,0x42,0x34,0x00,0x00,0x02,0xa5,0x00,0x00,0xa3,0x91,0x00,0x00,0x00,0x00,
+0x40,0x00,0x63,0x34,0x00,0x00,0xa3,0xa1,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0xcc,0x02,0x23,0x36,0x00,0xff,0x64,0x32,0x02,0xf4,0x02,0x00,0x00,0x00,0x73,0xac,
+0x04,0x00,0xc0,0x13,0x02,0x9a,0x04,0x00,0x01,0x00,0x02,0x24,0x02,0x00,0xc2,0x13,
+0x01,0x00,0x04,0x24,0x21,0x20,0x00,0x00,0x2a,0x42,0x00,0x0c,0x0f,0x00,0x10,0x3c,
+0xff,0xff,0x05,0x36,0x95,0x44,0x00,0x0c,0x21,0x20,0x60,0x02,0xff,0xff,0x10,0x36,
+0x24,0xa0,0x50,0x00,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x54,0xac,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xd6,0xfe,0xe2,0x10,0x00,0x00,0x00,0x00,
+0x90,0xfc,0xe3,0x14,0x00,0xff,0xa2,0x34,0x24,0x10,0x62,0x02,0x02,0x9a,0x02,0x00,
+0xcc,0x02,0x23,0x36,0x00,0x00,0x73,0xac,0x21,0x20,0x71,0x02,0x00,0x00,0x94,0x8c,
+0xc4,0x02,0x22,0x36,0x00,0x00,0x54,0xac,0x00,0x00,0x94,0x8c,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x7c,0x02,0xe2,0x10,0x25,0xb0,0x02,0x3c,0x03,0x00,0x02,0x35,
+0x81,0xfc,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x68,0x15,0xa4,0x26,0xe4,0x42,0x83,0x8c,
+0xff,0xef,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0xe4,0x42,0x83,0xac,
+0xce,0x47,0x00,0x08,0xe6,0x42,0x80,0xa0,0x5c,0x64,0x44,0x90,0xc4,0x02,0x23,0x36,
+0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x28,0x02,0xe3,0x10,
+0x01,0x00,0x62,0x34,0x70,0xfc,0xe2,0x14,0x00,0xf0,0x02,0x3c,0x68,0x15,0xa2,0x26,
+0xf8,0x63,0x43,0x8c,0xfd,0xff,0x04,0x24,0x24,0x18,0x64,0x00,0x01,0x00,0x63,0x34,
+0xce,0x47,0x00,0x08,0xf8,0x63,0x43,0xac,0x82,0xfc,0xe2,0x14,0x25,0xb0,0x02,0x3c,
+0x80,0x10,0x04,0x00,0x68,0x15,0xa3,0x26,0x21,0x10,0x43,0x00,0xce,0x47,0x00,0x08,
+0x60,0x45,0x45,0xac,0x25,0xb0,0x05,0x3c,0x4f,0x00,0xa2,0x34,0x9e,0x00,0xa3,0x34,
+0x00,0x00,0x40,0xa0,0x00,0x00,0x60,0xa4,0x94,0x00,0xa2,0x34,0x00,0x00,0x43,0x94,
+0x9a,0x00,0xa4,0x34,0x98,0x00,0xa6,0x34,0xff,0xff,0x74,0x30,0x80,0x12,0x14,0x00,
+0x00,0xf8,0x42,0x24,0x42,0xa1,0x02,0x00,0x00,0x14,0x02,0x24,0x00,0x00,0x82,0xa4,
+0x26,0xb0,0x02,0x3c,0xb0,0x03,0xa7,0x34,0xa0,0x80,0x03,0x24,0x7c,0x00,0x42,0x34,
+0x00,0x00,0xc3,0xa4,0x44,0x00,0xa4,0x34,0x00,0x00,0xf4,0xac,0x00,0x00,0x54,0xa4,
+0x00,0x00,0x83,0x94,0xff,0xfd,0x02,0x24,0xd8,0x00,0xa5,0x34,0x24,0x18,0x62,0x00,
+0x00,0x00,0x83,0xa4,0x00,0x00,0x82,0x94,0x68,0x15,0xa6,0x26,0x00,0x02,0x42,0x34,
+0x00,0x00,0x82,0xa4,0x00,0x00,0xa3,0x90,0xbf,0xff,0x02,0x24,0xe8,0x4a,0xc0,0xa4,
+0x24,0x18,0x62,0x00,0xe3,0x4a,0xc0,0xa0,0x00,0x00,0xa3,0xa0,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x68,0x15,0xa3,0x26,
+0x21,0x10,0x43,0x00,0x21,0x10,0x4a,0x00,0xce,0x47,0x00,0x08,0x34,0x43,0x46,0xa0,
+0xd7,0x42,0xc3,0x90,0x50,0x0c,0xe2,0x34,0x21,0x20,0x00,0x00,0x00,0x00,0x43,0xa0,
+0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x82,0x24,0x68,0x15,0xa2,0x26,0xd7,0x42,0x44,0x90,0x25,0xb0,0x03,0x3c,
+0x58,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,
+0x68,0x15,0xa5,0x26,0xe4,0x42,0xa3,0x8c,0x00,0x40,0x04,0x3c,0xff,0x7f,0x02,0x3c,
+0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0xee,0x47,0x00,0x08,
+0xe4,0x42,0xa3,0xac,0xee,0x51,0x00,0x0c,0x00,0x00,0x00,0x00,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x08,0x40,0xc3,0x8d,0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0xce,0x47,0x00,0x08,0x08,0x40,0xc3,0xad,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x77,0x4b,0xc4,0x91,
+0xc4,0x02,0x23,0x36,0xcc,0x02,0x22,0x36,0x00,0x00,0x53,0xac,0x00,0x00,0x64,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x6e,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x4c,0x64,0xc3,0x91,0xc4,0x02,0x22,0x36,0x00,0x00,0x43,0xac,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0xa5,0x34,0x24,0x28,0x65,0x02,
+0x02,0x2a,0x05,0x00,0x40,0x11,0x05,0x00,0x26,0xb0,0x04,0x3c,0x94,0x00,0x23,0x36,
+0x00,0x00,0x65,0xa4,0xc0,0xff,0x54,0x24,0x7c,0x00,0x8b,0x34,0x04,0x00,0x07,0x24,
+0x7a,0x00,0x84,0x34,0x00,0x04,0x02,0x24,0xa0,0x80,0x03,0x24,0x9a,0x00,0x26,0x36,
+0x98,0x00,0x28,0x36,0x96,0x00,0x29,0x36,0xb0,0x03,0x2a,0x36,0x00,0x00,0xc2,0xa4,
+0x00,0x00,0x03,0xa5,0x00,0x00,0x27,0xa5,0x00,0x00,0x87,0xa0,0x00,0x00,0x54,0xad,
+0x44,0x00,0x24,0x36,0x00,0x00,0x74,0xa5,0x00,0x00,0x83,0x94,0xff,0xfd,0x02,0x24,
+0xe6,0x4a,0xc5,0xa5,0x24,0x18,0x62,0x00,0x00,0x00,0x83,0xa4,0x00,0x00,0x82,0x94,
+0x00,0x00,0x00,0x00,0x00,0x02,0x42,0x34,0x00,0x00,0x82,0xa4,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x00,0x0f,0x62,0x32,0x02,0x22,0x02,0x00,0x01,0x00,0x03,0x24,
+0xda,0x02,0x83,0x10,0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x24,0xdb,0x02,0x82,0x10,
+0x00,0x00,0x00,0x00,0x03,0x00,0x02,0x24,0xf7,0x00,0x82,0x10,0x00,0x00,0x00,0x00,
+0xa6,0x50,0x00,0x0c,0x21,0x20,0x00,0x00,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x04,0x43,0xc2,0x91,0xce,0x47,0x00,0x08,0x04,0x43,0xc2,0xad,0x0e,0x4f,0x00,0x0c,
+0x07,0x00,0x04,0x24,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x9a,0x4f,0x00,0x0c,
+0x21,0x20,0x60,0x02,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x60,0x64,0xc3,0x91,
+0xc4,0x02,0x22,0x36,0x00,0x00,0x43,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x00,0xff,0xa2,0x34,0x24,0x10,0x62,0x02,0x02,0x9a,0x02,0x00,0xcc,0x02,0x23,0x36,
+0x00,0x00,0x73,0xac,0xc4,0x02,0x24,0x36,0x00,0x00,0x94,0x8c,0x21,0x10,0x71,0x02,
+0x00,0x00,0x54,0xac,0x00,0x00,0x54,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x94,0xac,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x21,0xa0,0x00,0x00,0x16,0x4c,0x00,0x08,
+0x27,0xb0,0x04,0x3c,0x00,0x01,0x82,0x2e,0x0c,0x00,0x40,0x10,0x08,0x00,0x84,0x24,
+0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00,0xff,0xff,0x7e,0x30,0xff,0x00,0xc2,0x33,
+0xf0,0x00,0x42,0x28,0xf7,0xff,0x40,0x14,0x01,0x00,0x94,0x26,0xff,0xff,0x94,0x26,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x5e,0xa4,0xff,0x00,0x82,0x2e,
+0xab,0xfb,0x40,0x14,0x25,0xb0,0x02,0x3c,0x12,0x87,0x03,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0x00,0x43,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xf8,0x63,0xc2,0x8d,
+0xfe,0xff,0x03,0x24,0x02,0x00,0x42,0x34,0x24,0x10,0x43,0x00,0xce,0x47,0x00,0x08,
+0xf8,0x63,0xc2,0xad,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x68,0x15,0xae,0x26,0x76,0x4b,0xc2,0x91,0x00,0x00,0x00,0x00,
+0x97,0xfb,0x40,0x14,0x00,0xff,0xa2,0x34,0x24,0x10,0x62,0x02,0x02,0xf2,0x02,0x00,
+0xcc,0x02,0x22,0x36,0x00,0x00,0x5e,0xac,0xc8,0x02,0x25,0x36,0xff,0x00,0xc3,0x33,
+0x01,0x00,0x02,0x24,0x00,0x00,0xa3,0xac,0x21,0x20,0xc0,0x03,0x76,0x4b,0xc2,0xa1,
+0xe3,0x18,0x00,0x0c,0x77,0x4b,0xde,0xa1,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0xa2,0x34,
+0x24,0x10,0x62,0x02,0x25,0xb0,0x05,0x3c,0x02,0xf2,0x02,0x00,0xcc,0x02,0xa3,0x34,
+0x01,0x00,0x02,0x24,0x00,0x00,0x7e,0xac,0x01,0x01,0xc2,0x13,0x68,0x15,0xa2,0x26,
+0x02,0x00,0xc2,0x2b,0x28,0x01,0x40,0x14,0x03,0x00,0x02,0x24,0x20,0x01,0xc2,0x13,
+0xc4,0x02,0xa3,0x34,0x68,0x15,0xa2,0x26,0x70,0x4b,0x44,0x94,0x25,0xb0,0x03,0x3c,
+0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x68,0x15,0xa2,0x26,0xce,0x47,0x00,0x08,0x46,0x64,0x40,0xa4,0x68,0x15,0xa2,0x26,
+0x21,0x10,0x82,0x00,0xce,0x47,0x00,0x08,0x56,0x44,0x46,0xa0,0x68,0x15,0xa2,0x26,
+0xce,0x47,0x00,0x08,0xec,0x65,0x40,0xac,0x00,0x1f,0x63,0x32,0x02,0x14,0x13,0x00,
+0x02,0xa2,0x03,0x00,0x3f,0x00,0x46,0x30,0x68,0x15,0xa3,0x26,0xc1,0x42,0x66,0xa0,
+0xce,0x47,0x00,0x08,0xbc,0x42,0x74,0xa0,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,
+0xfd,0x00,0x42,0x30,0x00,0x00,0x62,0xa0,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x68,0x15,0xae,0x26,0x08,0x40,0xc7,0x8d,0x00,0x00,0x40,0xad,0x42,0x17,0x07,0x00,
+0x03,0x00,0x42,0x30,0x5c,0x00,0x40,0x14,0x68,0x15,0xa2,0x26,0x03,0x0d,0x22,0x36,
+0x00,0x00,0x45,0x90,0x10,0x40,0xc6,0x8d,0xff,0x9f,0x03,0x3c,0xff,0xff,0x63,0x34,
+0xff,0x3f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0xe3,0x00,0x00,0x20,0x04,0x3c,
+0x24,0x60,0xc2,0x00,0x25,0x18,0x64,0x00,0x00,0x40,0x02,0x3c,0x70,0x00,0xa5,0x30,
+0x25,0x60,0x82,0x01,0x93,0x01,0xa0,0x10,0x08,0x40,0xc3,0xad,0x94,0x0e,0x22,0x36,
+0x9c,0x0e,0x23,0x36,0xa4,0x0e,0x24,0x36,0xac,0x0e,0x27,0x36,0x00,0x00,0x45,0x8c,
+0x00,0x00,0x69,0x8c,0x00,0x00,0x8b,0x8c,0x00,0x00,0xe6,0x8c,0x0c,0x40,0xc3,0x8d,
+0xb4,0x0e,0x22,0x36,0x00,0x00,0x4a,0x8c,0xff,0x03,0x07,0x3c,0x00,0xfc,0x08,0x24,
+0xbc,0x0e,0x22,0x36,0x24,0x28,0xa7,0x00,0x24,0x30,0xc7,0x00,0x24,0x20,0x88,0x01,
+0x02,0x2c,0x05,0x00,0x00,0x00,0x4c,0x8c,0x24,0x18,0x68,0x00,0x02,0x34,0x06,0x00,
+0xcc,0x0e,0x2d,0x36,0xc4,0x0e,0x28,0x36,0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34,
+0x25,0x18,0x65,0x00,0x25,0x20,0x86,0x00,0x00,0x00,0x05,0x8d,0x24,0x48,0x27,0x01,
+0x00,0x00,0xa6,0x8d,0x24,0x50,0x47,0x01,0x24,0x20,0x82,0x00,0x24,0x18,0x62,0x00,
+0x82,0x49,0x09,0x00,0x82,0x51,0x0a,0x00,0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x25,0x18,0x69,0x00,0x25,0x20,0x8a,0x00,0x24,0x58,0x67,0x01,0x24,0x60,0x87,0x01,
+0x24,0x20,0x82,0x00,0x24,0x30,0xc7,0x00,0x00,0x59,0x0b,0x00,0x24,0x18,0x62,0x00,
+0x00,0x61,0x0c,0x00,0x24,0x28,0xa7,0x00,0x25,0x18,0x6b,0x00,0x25,0x20,0x8c,0x00,
+0x02,0x2c,0x05,0x00,0x02,0x34,0x06,0x00,0x16,0x40,0xc6,0xa5,0x0c,0x40,0xc3,0xad,
+0x10,0x40,0xc4,0xad,0x14,0x40,0xc5,0xa5,0x68,0x15,0xa3,0x26,0x0c,0x40,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x53,0x01,0x40,0x04,0x00,0x00,0x00,0x00,0x00,0xff,0x62,0x32,
+0x29,0x01,0x40,0x10,0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0xc3,0x42,0x62,0xa0,
+0xfd,0x55,0x00,0x0c,0x10,0x00,0xa4,0x27,0x38,0x55,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x68,0x15,0xa2,0x26,0x0c,0x40,0x43,0x8c,0x00,0x80,0x04,0x3c,0x25,0x18,0x64,0x00,
+0x0c,0x40,0x43,0xac,0x68,0x15,0xa2,0x26,0xc3,0x42,0x44,0x90,0x25,0xb0,0x03,0x3c,
+0x61,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xa6,0x50,0x00,0x0c,0x03,0x00,0x04,0x24,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xd2,0x59,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0xa2,0x34,0x24,0x10,0x62,0x02,
+0x02,0xf2,0x02,0x00,0x07,0x00,0x03,0x24,0x25,0x01,0xc3,0x13,0x02,0x80,0x04,0x3c,
+0x08,0x00,0xc2,0x2b,0x0a,0x01,0x40,0x10,0x20,0x00,0x02,0x24,0xd8,0xfa,0xc0,0x17,
+0x02,0x80,0x02,0x3c,0xe8,0x7d,0x43,0x94,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0x00,0x43,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x02,0x24,0x13,0x00,
+0x0f,0x10,0x00,0x0c,0xff,0x00,0x84,0x30,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x68,0x15,0xa2,0x26,0x58,0x64,0x44,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0xac,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x24,0x10,0x65,0x02,0xcc,0x02,0x23,0x36,
+0x00,0xff,0x64,0x32,0x02,0xf4,0x02,0x00,0x00,0x00,0x73,0xac,0x04,0x00,0xc0,0x13,
+0x02,0x9a,0x04,0x00,0x01,0x00,0x02,0x24,0x02,0x00,0xc2,0x13,0x01,0x00,0x04,0x24,
+0x21,0x20,0x00,0x00,0x25,0xb0,0x10,0x3c,0x2a,0x42,0x00,0x0c,0xc4,0x02,0x12,0x36,
+0x00,0x00,0x54,0x8e,0x0f,0x00,0x11,0x3c,0x21,0x20,0x60,0x02,0x21,0x30,0x80,0x02,
+0x6a,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x21,0x20,0x60,0x02,0x95,0x44,0x00,0x0c,
+0xff,0xff,0x25,0x36,0xc8,0x02,0x10,0x36,0x00,0x00,0x42,0xae,0x00,0x00,0x02,0xae,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x28,0xb0,0x02,0x3c,0x00,0x00,0x43,0x90,
+0xff,0x00,0x02,0x24,0xff,0x00,0x73,0x30,0xa5,0xfa,0x62,0x12,0xff,0x00,0x04,0x24,
+0x28,0xb0,0x05,0x3c,0xc0,0x10,0x13,0x00,0x21,0x10,0x45,0x00,0x00,0x00,0x43,0x90,
+0x00,0x00,0x00,0x00,0xff,0x00,0x73,0x30,0xfa,0xff,0x64,0x16,0x25,0xb0,0x02,0x3c,
+0xd0,0x47,0x00,0x08,0xc0,0x02,0x42,0x34,0x64,0x03,0x23,0x36,0x00,0x00,0x62,0x90,
+0x00,0x00,0x00,0x00,0xfa,0x00,0x42,0x30,0x00,0x00,0x62,0xa0,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x80,0x10,0x04,0x00,0x68,0x15,0xa3,0x26,0x21,0x10,0x43,0x00,
+0xce,0x47,0x00,0x08,0xec,0x44,0x45,0xac,0x25,0xb0,0x03,0x3c,0xff,0x00,0x02,0x24,
+0x56,0x01,0x63,0x34,0x01,0x00,0x04,0x24,0x02,0x80,0x06,0x3c,0x00,0x00,0x62,0xa4,
+0xce,0x47,0x00,0x08,0x18,0x7e,0xc4,0xa0,0xa8,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x44,0x64,0x44,0x94,0x25,0xb0,0x03,0x3c,
+0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xa4,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x6e,0x4b,0x44,0x94,0xc4,0x02,0xa3,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x68,0x15,0xa4,0x26,0x08,0x40,0x83,0x8c,0xff,0x9f,0x02,0x3c,
+0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0xce,0x47,0x00,0x08,0x08,0x40,0x83,0xac,
+0x68,0x15,0xa3,0x26,0xff,0xff,0x02,0x34,0xce,0x47,0x00,0x08,0xec,0x65,0x62,0xac,
+0x64,0x03,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x74,0x30,
+0x02,0x00,0x84,0x36,0x00,0x00,0x44,0xa0,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x68,0x15,0xa5,0x26,0xf8,0x63,0xa2,0x8c,0xfd,0xff,0x03,0x24,0xfe,0xff,0x04,0x24,
+0x24,0x10,0x43,0x00,0x24,0x10,0x44,0x00,0xce,0x47,0x00,0x08,0xf8,0x63,0xa2,0xac,
+0x34,0x0d,0x00,0x0c,0x00,0x00,0x00,0x00,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x68,0x15,0xa2,0x26,0x72,0x4b,0x44,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0xac,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xda,0xfe,0xc0,0x17,0xc4,0x02,0xa3,0x34,
+0x68,0x15,0xa2,0x26,0x6c,0x4b,0x44,0x94,0x00,0x00,0x00,0x00,0x00,0x00,0x64,0xac,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0x63,0x32,0x25,0xb0,0x02,0x3c,
+0x02,0x9a,0x03,0x00,0xcc,0x02,0x42,0x34,0x00,0x00,0x53,0xac,0xbf,0x00,0x60,0x12,
+0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x24,0x59,0x01,0x62,0x12,0x00,0x00,0x00,0x00,
+0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x28,0xb0,0x14,0x3c,0x00,0x00,0x82,0x96,0x02,0x1c,0x13,0x00,0xff,0x00,0x64,0x30,
+0xff,0xff,0x5e,0x30,0xff,0x00,0xc3,0x33,0x0c,0x00,0x83,0x10,0xff,0x7f,0x03,0x3c,
+0x08,0x00,0x94,0x26,0x00,0x00,0x82,0x96,0x00,0x00,0x00,0x00,0xff,0xff,0x5e,0x30,
+0xff,0x00,0xc3,0x33,0x05,0x00,0x83,0x10,0xff,0x7f,0x03,0x3c,0xff,0xff,0x82,0x32,
+0x00,0x08,0x42,0x2c,0xf6,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0xff,0xff,0x63,0x34,
+0x25,0xb0,0x02,0x3c,0x24,0x18,0x83,0x02,0xc4,0x02,0x42,0x34,0x00,0x00,0x43,0xac,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34,0x00,0x00,0x43,0x90,
+0x00,0x00,0x00,0x00,0xff,0x00,0x74,0x30,0x05,0x00,0x84,0x36,0x00,0x00,0x44,0xa0,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xff,0x00,0x02,0x3c,0x00,0xff,0x42,0x34,
+0x24,0x10,0x62,0x02,0x02,0xf2,0x02,0x00,0x25,0xb0,0x02,0x3c,0x68,0x15,0xa3,0x26,
+0xcc,0x02,0x42,0x34,0x76,0x4b,0x60,0xa0,0x21,0x20,0xc0,0x03,0x00,0x00,0x5e,0xac,
+0xe3,0x18,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xff,0xff,0x05,0x36,
+0x60,0x00,0x06,0x24,0x6a,0x44,0x00,0x0c,0x24,0x00,0x04,0x24,0xeb,0x0b,0x00,0x0c,
+0xe8,0x03,0x04,0x24,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x24,0x00,0x04,0x24,0x95,0x44,0x00,0x0c,0xff,0xff,0x05,0x36,
+0x1f,0x00,0x54,0x30,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0xc4,0x02,0x22,0x36,0x00,0x00,0x54,0xa0,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x54,0x64,0x44,0x90,0x25,0xb0,0x03,0x3c,
+0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x00,0xff,0x65,0x32,0xff,0x00,0x84,0x30,0x28,0x50,0x00,0x0c,0x02,0x2a,0x05,0x00,
+0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x62,0xa0,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0xf8,0x63,0x62,0x8c,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x34,
+0xce,0x47,0x00,0x08,0xf8,0x63,0x62,0xac,0xcd,0x4c,0x00,0x08,0x12,0x00,0x02,0x24,
+0xb8,0x59,0x00,0x0c,0x21,0x20,0x60,0x02,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x0e,0x4f,0x00,0x0c,0x21,0x20,0x00,0x00,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0xcf,0xf9,0xc2,0x17,0x02,0x80,0x06,0x3c,0x08,0x7e,0xc3,0x90,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x42,0x34,0x00,0x00,0x43,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x49,0x09,0x00,0x0c,0x21,0x20,0xc0,0x03,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x12,0x00,0x02,0x24,0xc7,0x42,0xe2,0xa1,0xc3,0x49,0x00,0x08,0xc3,0x42,0xe2,0xa1,
+0x01,0x0d,0x00,0x0c,0x00,0x00,0x00,0x00,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x68,0x15,0xa3,0x26,0xff,0xff,0x02,0x34,0xce,0x47,0x00,0x08,0xec,0x65,0x62,0xac,
+0xef,0x7d,0x83,0x90,0xc4,0x02,0x22,0x36,0x00,0x00,0x43,0xac,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0xfd,0x55,0x00,0x0c,0x10,0x00,0xa4,0x27,0xd8,0x4c,0x00,0x08,
+0x68,0x15,0xa2,0x26,0x07,0x52,0x00,0x0c,0x10,0x40,0xcc,0xad,0xc5,0x4c,0x00,0x08,
+0x68,0x15,0xa3,0x26,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,
+0x21,0x10,0x45,0x00,0xec,0x66,0x83,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,
+0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,
+0x21,0x10,0x45,0x00,0x68,0x15,0xa3,0x26,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,
+0x80,0x51,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xc0,0x10,0x05,0x00,0x21,0x10,0x45,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x68,0x15,0xa3,0x26,0x80,0x10,0x02,0x00,
+0x21,0x10,0x43,0x00,0x7c,0x51,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,
+0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x2a,0x42,0x00,0x0c,
+0x21,0x20,0x00,0x00,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x68,0x15,0xa3,0x26,0x80,0x10,0x02,0x00,
+0x21,0x10,0x43,0x00,0xe0,0x51,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,
+0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00,
+0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,0x21,0x10,0x45,0x00,0x0c,0x67,0x83,0x24,
+0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,
+0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x02,0x80,0x06,0x3c,
+0x08,0x67,0xc3,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,
+0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,
+0x21,0x10,0x45,0x00,0x04,0x67,0x83,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,
+0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,
+0x21,0x10,0x45,0x00,0x02,0x80,0x06,0x3c,0x00,0x67,0xc3,0x24,0x80,0x10,0x02,0x00,
+0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,
+0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00,
+0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,0x21,0x10,0x45,0x00,0xfc,0x66,0x83,0x24,
+0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,
+0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x02,0x80,0x06,0x3c,
+0xf8,0x66,0xc3,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,
+0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,
+0x21,0x10,0x45,0x00,0xf4,0x66,0x83,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,
+0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,
+0x21,0x10,0x45,0x00,0x02,0x80,0x06,0x3c,0xf0,0x66,0xc3,0x24,0x80,0x10,0x02,0x00,
+0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,
+0x00,0x00,0x64,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xa6,0x50,0x00,0x0c,
+0x01,0x00,0x04,0x24,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0xa6,0x50,0x00,0x0c,
+0x02,0x00,0x04,0x24,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x68,0x15,0xa2,0x26,
+0x00,0x19,0x1e,0x00,0x21,0x18,0x62,0x00,0x2c,0x43,0x64,0x94,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x00,0x11,0x1e,0x00,0x68,0x15,0xa3,0x26,0x21,0x10,0x43,0x00,0x28,0x43,0x44,0x8c,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x42,0x26,0x04,0x00,0x00,0x00,0x44,0xac,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x11,0x1e,0x00,0x68,0x15,0xa3,0x26,
+0x21,0x10,0x43,0x00,0x2b,0x43,0x44,0x90,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,
+0x01,0x00,0x84,0x30,0x00,0x00,0x44,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x68,0x15,0xa2,0x26,0x00,0x19,0x1e,0x00,0x21,0x18,0x62,0x00,0x32,0x43,0x64,0x94,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac,0xcf,0x47,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x68,0x15,0xa2,0x26,0x00,0x19,0x1e,0x00,0x21,0x18,0x62,0x00,
+0x31,0x43,0x64,0x90,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac,
+0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x68,0x15,0xa2,0x26,0x00,0x19,0x1e,0x00,
+0x21,0x18,0x62,0x00,0x30,0x43,0x64,0x90,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0x00,0x44,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,0x68,0x15,0xa2,0x26,
+0x00,0x19,0x1e,0x00,0x21,0x18,0x62,0x00,0x2e,0x43,0x64,0x94,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac,0xcf,0x47,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x25,0xb0,0x05,0x3c,0x01,0x00,0x06,0x24,0x01,0x80,0x02,0x3c,0x04,0x30,0x86,0x00,
+0xf1,0x02,0xa7,0x34,0xed,0x02,0xa4,0x34,0x38,0x3c,0x42,0x24,0x18,0x03,0xa5,0x34,
+0x08,0x00,0x03,0x24,0x00,0x00,0xa2,0xac,0x00,0x00,0xe3,0xa0,0x00,0x00,0x80,0xa0,
+0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,
+0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,
+0x00,0x00,0xe0,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c,
+0x25,0xb0,0x03,0x3c,0x94,0x3c,0x42,0x24,0x18,0x03,0x63,0x34,0x00,0x00,0x62,0xac,
+0x00,0x00,0x83,0x90,0x30,0x00,0x02,0x24,0x05,0x00,0x62,0x10,0x21,0x20,0x00,0x00,
+0x31,0x00,0x02,0x24,0x02,0x00,0x62,0x10,0x01,0x00,0x04,0x24,0x07,0x00,0x04,0x24,
+0x0e,0x4f,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c,
+0xd0,0x3c,0x42,0x24,0x18,0x03,0x63,0x34,0x02,0x80,0x04,0x3c,0x00,0x00,0x62,0xac,
+0x08,0x00,0xe0,0x03,0x24,0x7e,0x80,0xac,0x02,0x80,0x02,0x3c,0x68,0x7b,0x42,0x24,
+0xc0,0x20,0x04,0x00,0x21,0x20,0x82,0x00,0x21,0x28,0x00,0x00,0x00,0x60,0x06,0x40,
+0x01,0x00,0xc1,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x00,0x00,0x82,0x8c,
+0x00,0x00,0x00,0x00,0x09,0x00,0x44,0x10,0x00,0x00,0x00,0x00,0x04,0x00,0x43,0x8c,
+0x21,0x28,0x40,0x00,0x00,0x00,0x42,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xac,
+0x04,0x00,0x43,0xac,0x00,0x00,0xa5,0xac,0x04,0x00,0xa5,0xac,0x00,0x60,0x86,0x40,
+0x08,0x00,0xe0,0x03,0x21,0x10,0xa0,0x00,0x21,0x18,0x80,0x00,0xe8,0xff,0xbd,0x27,
+0x01,0x01,0x62,0x2c,0x10,0x00,0xbf,0xaf,0x01,0x00,0x04,0x24,0x01,0x02,0x65,0x2c,
+0x0a,0x00,0x40,0x14,0x21,0x30,0x00,0x00,0x02,0x00,0x04,0x24,0x07,0x00,0xa0,0x14,
+0x01,0x08,0x62,0x2c,0x05,0x00,0x40,0x14,0x03,0x00,0x04,0x24,0x10,0x00,0xbf,0x8f,
+0x21,0x10,0xc0,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x3c,0x4f,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x10,0x00,0xbf,0x8f,0x21,0x30,0x40,0x00,0x21,0x10,0xc0,0x00,
+0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x02,0x80,0x03,0x3c,0x80,0x7b,0x62,0x8c,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x60,0x06,0x40,0x01,0x00,0xc1,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x10,0x00,0x83,0x8c,0x02,0x80,0x02,0x3c,
+0x68,0x7b,0x42,0x24,0xc0,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0x00,0x00,0x65,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,0x04,0x00,0xa4,0xac,0x00,0x00,0x64,0xac,
+0x04,0x00,0x83,0xac,0x00,0x60,0x86,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x02,0x24,0x04,0x00,0xff,0x00,0x84,0x30,0xc0,0x18,0x04,0x00,
+0x21,0x18,0x64,0x00,0x80,0x18,0x03,0x00,0x21,0x18,0x64,0x00,0x02,0x80,0x02,0x3c,
+0x68,0x15,0x42,0x24,0x80,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0x84,0x51,0x64,0x8c,
+0xff,0xf1,0x02,0x24,0x24,0x20,0x82,0x00,0x08,0x00,0xe0,0x03,0x84,0x51,0x64,0xac,
+0x02,0x24,0x04,0x00,0xff,0x00,0x84,0x30,0xc0,0x18,0x04,0x00,0x21,0x18,0x64,0x00,
+0x80,0x18,0x03,0x00,0x21,0x18,0x64,0x00,0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24,
+0x80,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0x84,0x51,0x64,0x8c,0xff,0xf1,0x02,0x24,
+0x24,0x20,0x82,0x00,0x00,0x02,0x84,0x34,0x08,0x00,0xe0,0x03,0x84,0x51,0x64,0xac,
+0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0xc0,0x80,0x04,0x00,0x21,0x80,0x04,0x02,
+0x80,0x80,0x10,0x00,0x21,0x80,0x04,0x02,0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24,
+0x80,0x80,0x10,0x00,0x21,0x80,0x02,0x02,0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,
+0x14,0x00,0xb1,0xaf,0x84,0x51,0x05,0x8e,0xff,0x1f,0x02,0x3c,0x25,0xb0,0x12,0x3c,
+0xff,0xff,0x42,0x34,0xf8,0xff,0x03,0x24,0x7c,0x51,0x02,0xae,0x84,0x01,0x46,0x36,
+0x24,0x28,0xa3,0x00,0xff,0xfe,0x02,0x24,0x00,0x00,0xc7,0x8c,0x24,0x28,0xa2,0x00,
+0xff,0xef,0x03,0x24,0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34,0x24,0x28,0xa3,0x00,
+0x24,0x28,0xa2,0x00,0x80,0x51,0x07,0xae,0x84,0x51,0x05,0xae,0x6a,0x0f,0x00,0x0c,
+0x21,0x88,0x80,0x00,0x86,0x51,0x02,0x92,0x21,0x88,0x32,0x02,0x1c,0x00,0xbf,0x8f,
+0x60,0x01,0x22,0xa2,0x18,0x00,0xb2,0x8f,0x70,0x51,0x00,0xae,0x54,0x51,0x00,0xae,
+0x58,0x51,0x00,0xae,0x5c,0x51,0x00,0xae,0x60,0x51,0x00,0xae,0x64,0x51,0x00,0xae,
+0x68,0x51,0x00,0xae,0x6c,0x51,0x00,0xae,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xff,0x00,0xa5,0x30,0xc0,0x10,0x05,0x00,
+0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x02,0x80,0x03,0x3c,
+0x68,0x15,0x63,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x84,0x51,0x43,0x8c,
+0x25,0xb0,0x05,0x3c,0xff,0x00,0xc6,0x30,0x21,0x30,0xc5,0x00,0xaf,0x01,0xc2,0x90,
+0x07,0x00,0x63,0x30,0x80,0x18,0x03,0x00,0x21,0x18,0x65,0x00,0xff,0x00,0x88,0x30,
+0xff,0x00,0x49,0x30,0x84,0x01,0x66,0x8c,0x21,0x50,0x00,0x00,0x21,0x58,0x00,0x00,
+0x2b,0x00,0x20,0x11,0x21,0x20,0x00,0x01,0x2b,0x00,0xc0,0x10,0x2b,0x10,0x09,0x01,
+0x21,0x28,0x00,0x00,0xfd,0x4f,0x00,0x08,0x01,0x00,0x07,0x24,0xff,0x00,0x65,0x30,
+0x1d,0x00,0xa2,0x2c,0x07,0x00,0x40,0x10,0xff,0xff,0x02,0x25,0x04,0x10,0xa7,0x00,
+0x24,0x10,0x46,0x00,0xf9,0xff,0x40,0x10,0x01,0x00,0xa3,0x24,0x21,0x58,0xa0,0x00,
+0xff,0xff,0x02,0x25,0xff,0x00,0x45,0x30,0x2b,0x18,0xab,0x00,0x0f,0x00,0x60,0x14,
+0x2b,0x10,0x49,0x01,0x01,0x00,0x04,0x24,0x04,0x10,0xa4,0x00,0x24,0x10,0x46,0x00,
+0xff,0xff,0xa7,0x24,0x04,0x00,0x40,0x10,0x01,0x00,0x43,0x25,0x17,0x00,0x49,0x11,
+0xff,0x00,0x6a,0x30,0x21,0x40,0xa0,0x00,0xff,0x00,0xe5,0x30,0x2b,0x10,0xab,0x00,
+0xf6,0xff,0x40,0x10,0x04,0x10,0xa4,0x00,0x2b,0x10,0x49,0x01,0x08,0x00,0x40,0x10,
+0x21,0x20,0x00,0x01,0x23,0x10,0x2a,0x01,0x2a,0x10,0x62,0x01,0x04,0x00,0x40,0x14,
+0x21,0x20,0x00,0x00,0x23,0x10,0x69,0x01,0x21,0x10,0x4a,0x00,0xff,0x00,0x44,0x30,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0xfd,0xff,0x40,0x14,0x21,0x20,0x00,0x00,
+0x23,0x10,0x09,0x01,0x1e,0x50,0x00,0x08,0xff,0x00,0x44,0x30,0x21,0x20,0x00,0x01,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0xff,0x00,0x84,0x30,0xc0,0x10,0x04,0x00,
+0x21,0x10,0x44,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,0x02,0x80,0x03,0x3c,
+0x68,0x15,0x63,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x25,0xb0,0x06,0x3c,
+0x84,0x51,0x43,0x8c,0xff,0x00,0xa5,0x30,0x21,0x20,0x86,0x00,0x21,0x28,0xa6,0x00,
+0x60,0x01,0x82,0x90,0xaf,0x01,0xa4,0x90,0x07,0x00,0x63,0x30,0x80,0x18,0x03,0x00,
+0x21,0x18,0x66,0x00,0xff,0x00,0x48,0x30,0xff,0x00,0x89,0x30,0x84,0x01,0x66,0x8c,
+0x21,0x50,0x00,0x00,0x21,0x58,0x00,0x00,0x2b,0x00,0x20,0x11,0x21,0x20,0x00,0x01,
+0x2b,0x00,0xc0,0x10,0x2b,0x10,0x09,0x01,0x21,0x28,0x00,0x00,0x4b,0x50,0x00,0x08,
+0x01,0x00,0x07,0x24,0xff,0x00,0x65,0x30,0x1d,0x00,0xa2,0x2c,0x07,0x00,0x40,0x10,
+0xff,0xff,0x02,0x25,0x04,0x10,0xa7,0x00,0x24,0x10,0x46,0x00,0xf9,0xff,0x40,0x10,
+0x01,0x00,0xa3,0x24,0x21,0x58,0xa0,0x00,0xff,0xff,0x02,0x25,0xff,0x00,0x45,0x30,
+0x2b,0x18,0xab,0x00,0x0f,0x00,0x60,0x14,0x2b,0x10,0x49,0x01,0x01,0x00,0x04,0x24,
+0x04,0x10,0xa4,0x00,0x24,0x10,0x46,0x00,0xff,0xff,0xa7,0x24,0x04,0x00,0x40,0x10,
+0x01,0x00,0x43,0x25,0x17,0x00,0x49,0x11,0xff,0x00,0x6a,0x30,0x21,0x40,0xa0,0x00,
+0xff,0x00,0xe5,0x30,0x2b,0x10,0xab,0x00,0xf6,0xff,0x40,0x10,0x04,0x10,0xa4,0x00,
+0x2b,0x10,0x49,0x01,0x08,0x00,0x40,0x10,0x21,0x20,0x00,0x01,0x23,0x10,0x2a,0x01,
+0x2a,0x10,0x62,0x01,0x04,0x00,0x40,0x14,0x21,0x20,0x00,0x00,0x23,0x10,0x69,0x01,
+0x21,0x10,0x4a,0x00,0xff,0x00,0x44,0x30,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,
+0xfd,0xff,0x40,0x14,0x21,0x20,0x00,0x00,0x23,0x10,0x09,0x01,0x6c,0x50,0x00,0x08,
+0xff,0x00,0x44,0x30,0x21,0x20,0x00,0x01,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,
+0xd8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x18,0x00,0xb2,0xaf,0xff,0xff,0x03,0x3c,
+0x68,0x15,0x52,0x24,0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,
+0x20,0x00,0xbf,0xaf,0xff,0x1f,0x73,0x34,0x21,0x88,0x00,0x00,0x21,0x80,0x40,0x02,
+0xaa,0x4f,0x00,0x0c,0x21,0x20,0x20,0x02,0x84,0x51,0x02,0x8e,0x21,0x28,0x00,0x00,
+0x24,0x10,0x53,0x00,0x00,0x20,0x42,0x34,0x84,0x51,0x02,0xae,0x86,0x51,0x03,0x92,
+0x00,0x00,0x00,0x00,0x80,0x18,0x03,0x00,0x21,0x18,0x72,0x00,0xec,0x44,0x64,0x8c,
+0x60,0x45,0x62,0x8c,0x00,0x00,0x00,0x00,0x21,0x10,0x44,0x00,0x42,0x10,0x02,0x00,
+0x50,0x51,0x02,0xae,0x21,0x10,0x05,0x02,0x01,0x00,0xa5,0x24,0x1d,0x00,0xa3,0x28,
+0xc2,0x51,0x40,0xa0,0x88,0x51,0x40,0xa0,0xfa,0xff,0x60,0x14,0xa5,0x51,0x40,0xa0,
+0x01,0x00,0x31,0x26,0x20,0x00,0x22,0x2a,0xe0,0x51,0x00,0xae,0xe4,0xff,0x40,0x14,
+0x94,0x00,0x10,0x26,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,
+0xc0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x2c,0x00,0xb5,0xaf,0x68,0x15,0x46,0x24,
+0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,
+0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,
+0x18,0x00,0xb0,0xaf,0xec,0x65,0xc2,0x8c,0xff,0x00,0x03,0x24,0xff,0x00,0x8d,0x30,
+0xff,0xff,0x42,0x38,0x0b,0x18,0x02,0x00,0xff,0xff,0x04,0x34,0x10,0x00,0xa3,0xaf,
+0xec,0x65,0xc4,0xac,0xb9,0x00,0xa0,0x11,0x08,0x00,0x15,0x24,0x02,0x80,0x02,0x3c,
+0x50,0x9e,0x45,0x24,0x90,0x44,0xc4,0x24,0xc7,0x50,0x00,0x08,0x21,0x88,0x00,0x00,
+0x01,0x00,0x31,0x26,0x00,0x00,0x82,0xa0,0x1d,0x00,0x22,0x2a,0x0b,0x00,0x40,0x10,
+0x01,0x00,0x84,0x24,0x21,0x10,0x25,0x02,0x00,0x00,0x42,0x90,0x00,0x00,0x00,0x00,
+0xf7,0xff,0x40,0x10,0xfd,0xff,0x43,0x24,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,
+0x00,0x00,0x83,0xa0,0xf7,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x02,0x80,0x02,0x3c,
+0x68,0x15,0x4a,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xe8,0x9b,0x6c,0x24,
+0x70,0x9b,0x4b,0x24,0x21,0x88,0x00,0x00,0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00,
+0x21,0x40,0x2a,0x01,0x21,0x38,0x2c,0x01,0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90,
+0x00,0x00,0x45,0x90,0x21,0x18,0x06,0x01,0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28,
+0xc5,0x43,0x64,0xa0,0xf8,0xff,0x40,0x14,0x34,0x43,0x65,0xa0,0x21,0x10,0x2b,0x02,
+0x1d,0x00,0x44,0x90,0x00,0x00,0x45,0x90,0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26,
+0x1d,0x00,0x22,0x2a,0x73,0x44,0x64,0xa0,0x56,0x44,0x65,0xa0,0xeb,0xff,0x40,0x14,
+0x05,0x00,0x29,0x25,0xaf,0x00,0xa0,0x11,0x02,0x80,0x02,0x3c,0x68,0x15,0x48,0x24,
+0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xe4,0x9e,0x69,0x24,0x70,0x9e,0x47,0x24,
+0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00,0x21,0x10,0x69,0x00,0x21,0x20,0x67,0x00,
+0x00,0x00,0x46,0x8c,0x00,0x00,0x85,0x8c,0x01,0x00,0x31,0x26,0x21,0x18,0x68,0x00,
+0x04,0x00,0x22,0x2a,0xec,0x44,0x65,0xac,0xf6,0xff,0x40,0x14,0x60,0x45,0x66,0xac,
+0x02,0x80,0x02,0x3c,0x68,0x15,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,
+0xe4,0x9e,0x68,0x24,0x70,0x9e,0x47,0x24,0x04,0x00,0x11,0x24,0x80,0x20,0x11,0x00,
+0x21,0x10,0x88,0x00,0x21,0x30,0x87,0x00,0x00,0x00,0x45,0x8c,0x00,0x00,0xc3,0x8c,
+0x01,0x00,0x31,0x26,0x21,0x20,0x89,0x00,0x82,0x28,0x05,0x00,0x82,0x18,0x03,0x00,
+0x1d,0x00,0x22,0x2a,0xec,0x44,0x83,0xac,0xf4,0xff,0x40,0x14,0x60,0x45,0x85,0xac,
+0x02,0x80,0x02,0x3c,0x68,0x15,0x56,0x24,0xff,0xff,0x02,0x3c,0x21,0xf0,0xc0,0x02,
+0xff,0x1f,0x57,0x34,0x21,0x88,0x00,0x00,0x21,0xa0,0x00,0x00,0x24,0x51,0x00,0x08,
+0x21,0x90,0xc0,0x02,0x01,0x00,0x31,0x26,0x20,0x00,0x22,0x2a,0x94,0x00,0x52,0x26,
+0x3d,0x00,0x40,0x10,0x94,0x00,0x94,0x26,0x84,0x51,0x44,0x8e,0x01,0x00,0x03,0x24,
+0x02,0x13,0x04,0x00,0x01,0x00,0x53,0x30,0xf6,0xff,0x63,0x16,0x07,0x00,0x82,0x30,
+0x25,0xb0,0x03,0x3c,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x84,0x01,0x45,0x8c,
+0x7c,0x51,0x43,0x8e,0x21,0x20,0x20,0x02,0x24,0x28,0xa3,0x00,0x6a,0x0f,0x00,0x0c,
+0x80,0x51,0x45,0xae,0x86,0x51,0x44,0x92,0xe9,0x0e,0x00,0x0c,0xff,0x00,0x25,0x32,
+0x84,0x51,0x42,0x8e,0x00,0x00,0x00,0x00,0x24,0x10,0x57,0x00,0x00,0x20,0x42,0x34,
+0x84,0x51,0x42,0xae,0x86,0x51,0x50,0x92,0x00,0x00,0x00,0x00,0x21,0x20,0x00,0x02,
+0xff,0x0e,0x00,0x0c,0x80,0x80,0x10,0x00,0x21,0x80,0x16,0x02,0x54,0x51,0x40,0xae,
+0x58,0x51,0x40,0xae,0x5c,0x51,0x40,0xae,0x60,0x51,0x40,0xae,0x64,0x51,0x40,0xae,
+0x68,0x51,0x40,0xae,0x6c,0x51,0x40,0xae,0x70,0x51,0x40,0xae,0xec,0x44,0x04,0x8e,
+0x60,0x45,0x03,0x8e,0x26,0x10,0x53,0x00,0x21,0x30,0x00,0x00,0x21,0x18,0x64,0x00,
+0x42,0x18,0x03,0x00,0x04,0x00,0x04,0x24,0x0a,0xa8,0x82,0x00,0x50,0x51,0x43,0xae,
+0x21,0x20,0x9e,0x02,0x21,0x10,0x86,0x00,0x01,0x00,0xc6,0x24,0x1d,0x00,0xc3,0x28,
+0xc2,0x51,0x40,0xa0,0x88,0x51,0x40,0xa0,0xfa,0xff,0x60,0x14,0xa5,0x51,0x40,0xa0,
+0x01,0x00,0x31,0x26,0x20,0x00,0x22,0x2a,0xe0,0x51,0x80,0xac,0x94,0x00,0x52,0x26,
+0xc5,0xff,0x40,0x14,0x94,0x00,0x94,0x26,0x25,0xb0,0x02,0x3c,0x80,0x01,0x42,0x34,
+0x00,0x00,0x55,0xa0,0x10,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00,0x03,0x00,0x60,0x14,
+0x02,0x80,0x03,0x3c,0x68,0x15,0x62,0x24,0xec,0x65,0x40,0xac,0x3c,0x00,0xbf,0x8f,
+0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,
+0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,
+0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,
+0x50,0x9e,0x45,0x24,0x90,0x44,0xc4,0x24,0x21,0x88,0x00,0x00,0x21,0x10,0x25,0x02,
+0x00,0x00,0x43,0x90,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x00,0x00,0x83,0xa0,
+0xfa,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x02,0x80,0x02,0x3c,0x68,0x15,0x4a,0x24,
+0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x0c,0x9d,0x6c,0x24,0xac,0x9b,0x4b,0x24,
+0x21,0x88,0x00,0x00,0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00,0x21,0x40,0x2a,0x01,
+0x21,0x38,0x2c,0x01,0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90,0x00,0x00,0x45,0x90,
+0x21,0x18,0x06,0x01,0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28,0xc5,0x43,0x64,0xa0,
+0xf8,0xff,0x40,0x14,0x34,0x43,0x65,0xa0,0x21,0x10,0x2b,0x02,0x1d,0x00,0x44,0x90,
+0x00,0x00,0x45,0x90,0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,
+0x73,0x44,0x64,0xa0,0x56,0x44,0x65,0xa0,0xeb,0xff,0x40,0x14,0x05,0x00,0x29,0x25,
+0x02,0x80,0x02,0x3c,0x68,0x15,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,
+0xe4,0x9e,0x68,0x24,0x70,0x9e,0x47,0x24,0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00,
+0x21,0x10,0x68,0x00,0x21,0x20,0x67,0x00,0x00,0x00,0x46,0x8c,0x00,0x00,0x85,0x8c,
+0x01,0x00,0x31,0x26,0x21,0x18,0x69,0x00,0x1d,0x00,0x22,0x2a,0xec,0x44,0x65,0xac,
+0xf6,0xff,0x40,0x14,0x60,0x45,0x66,0xac,0x17,0x51,0x00,0x08,0x02,0x80,0x02,0x3c,
+0xd8,0xff,0xbd,0x27,0xff,0xff,0x84,0x30,0x18,0x00,0xb2,0xaf,0xf0,0x01,0x92,0x30,
+0x02,0x91,0x12,0x00,0x14,0x00,0xb1,0xaf,0xc0,0x88,0x12,0x00,0x21,0x88,0x32,0x02,
+0x80,0x88,0x11,0x00,0x21,0x88,0x32,0x02,0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24,
+0x80,0x88,0x11,0x00,0x21,0x88,0x22,0x02,0x20,0x00,0xbf,0xaf,0x1c,0x00,0xb3,0xaf,
+0x10,0x00,0xb0,0xaf,0x84,0x51,0x30,0x8e,0x00,0x02,0x83,0x30,0xff,0xfe,0x02,0x24,
+0x2b,0x18,0x03,0x00,0x00,0x10,0x10,0x36,0x24,0x80,0x02,0x02,0x00,0x1a,0x03,0x00,
+0x00,0x04,0x82,0x30,0x25,0x80,0x03,0x02,0x2b,0x10,0x02,0x00,0xf7,0xff,0x03,0x24,
+0x24,0x80,0x03,0x02,0xc0,0x10,0x02,0x00,0x25,0x80,0x02,0x02,0x7c,0x51,0x25,0xae,
+0x84,0x51,0x30,0xae,0x3c,0x10,0x00,0x0c,0x21,0x98,0xa0,0x00,0xf8,0xff,0x03,0x24,
+0x24,0x80,0x03,0x02,0x07,0x00,0x42,0x30,0x25,0x80,0x02,0x02,0x07,0x00,0x03,0x32,
+0x25,0xb0,0x02,0x3c,0x80,0x18,0x03,0x00,0x84,0x51,0x30,0xae,0x21,0x18,0x62,0x00,
+0x84,0x01,0x62,0x8c,0x21,0x20,0x40,0x02,0x24,0x10,0x53,0x00,0x6a,0x0f,0x00,0x0c,
+0x80,0x51,0x22,0xae,0x86,0x51,0x24,0x92,0x21,0x28,0x40,0x02,0x20,0x00,0xbf,0x8f,
+0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0xe9,0x0e,0x00,0x08,0x28,0x00,0xbd,0x27,0xaa,0x4f,0x00,0x08,0xff,0x00,0x84,0x30,
+0x02,0x80,0x02,0x3c,0x68,0x15,0x43,0x24,0x1f,0x00,0x04,0x24,0x84,0x51,0x62,0x8c,
+0xff,0xff,0x84,0x24,0x00,0x10,0x42,0x34,0x84,0x51,0x62,0xac,0xfb,0xff,0x81,0x04,
+0x94,0x00,0x63,0x24,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x23,0x10,0xa4,0x00,0x2b,0x18,0xa4,0x00,0x23,0x20,0x85,0x00,0x08,0x00,0xe0,0x03,
+0x0b,0x10,0x83,0x00,0x20,0xff,0xbd,0x27,0xcc,0x00,0xb5,0xaf,0xdc,0x00,0xbf,0xaf,
+0xd8,0x00,0xbe,0xaf,0xd4,0x00,0xb7,0xaf,0xd0,0x00,0xb6,0xaf,0xc8,0x00,0xb4,0xaf,
+0xc4,0x00,0xb3,0xaf,0xc0,0x00,0xb2,0xaf,0xbc,0x00,0xb1,0xaf,0xb8,0x00,0xb0,0xaf,
+0x21,0xa8,0x00,0x00,0x40,0x11,0x15,0x00,0x10,0x00,0xa3,0x27,0x21,0x10,0x43,0x00,
+0x07,0x00,0x16,0x24,0xff,0xff,0xd6,0x26,0x00,0x00,0x40,0xac,0xfd,0xff,0xc1,0x06,
+0x04,0x00,0x42,0x24,0x01,0x00,0xb5,0x26,0x03,0x00,0xa2,0x2e,0xf6,0xff,0x40,0x14,
+0x40,0x11,0x15,0x00,0x25,0xb0,0x10,0x3c,0xc4,0x02,0x02,0x36,0x00,0x00,0x40,0xac,
+0x04,0x00,0x03,0x36,0x00,0x00,0x62,0x8c,0x04,0x0c,0x03,0x36,0x00,0x00,0x63,0x8c,
+0x08,0x0c,0x04,0x36,0x0f,0x00,0x11,0x3c,0xac,0x00,0xa3,0xaf,0x00,0x00,0x84,0x8c,
+0x24,0x10,0x51,0x00,0x02,0xf4,0x02,0x00,0xb0,0x00,0xa4,0xaf,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x21,0x20,0x00,0x00,
+0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x70,0x00,0xa2,0xaf,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x21,0x20,0x00,0x00,0x95,0x44,0x00,0x0c,
+0xff,0xff,0x25,0x36,0x74,0x00,0xa2,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,
+0x21,0x20,0x00,0x00,0xe0,0x0e,0x02,0x36,0x21,0x20,0x40,0x00,0x00,0x00,0x42,0x8c,
+0xdc,0x0e,0x12,0x36,0x70,0x0e,0x13,0x36,0x78,0x00,0xa2,0xaf,0x00,0x00,0x42,0x8e,
+0x74,0x0e,0x14,0x36,0x78,0x0e,0x15,0x36,0x7c,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8e,
+0x7c,0x0e,0x16,0x36,0x80,0x0e,0x17,0x36,0x80,0x00,0xa3,0xaf,0x00,0x00,0x82,0x8e,
+0xd4,0x0e,0x10,0x36,0xed,0x3f,0x11,0x3c,0x84,0x00,0xa2,0xaf,0x00,0x00,0xa3,0x8e,
+0xfb,0x92,0x25,0x36,0x88,0x00,0xa3,0xaf,0x00,0x00,0xc2,0x8e,0x00,0x00,0x00,0x00,
+0x8c,0x00,0xa2,0xaf,0x00,0x00,0xe3,0x8e,0x25,0xb0,0x02,0x3c,0x84,0x0e,0x42,0x34,
+0x90,0x00,0xa3,0xaf,0x00,0x00,0x42,0x8c,0x25,0xb0,0x03,0x3c,0x88,0x0e,0x63,0x34,
+0x94,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8c,0x25,0xb0,0x02,0x3c,0x8c,0x0e,0x42,0x34,
+0x98,0x00,0xa3,0xaf,0x00,0x00,0x42,0x8c,0x25,0xb0,0x03,0x3c,0xd0,0x0e,0x63,0x34,
+0x9c,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8c,0x00,0x00,0x00,0x00,0xa0,0x00,0xa3,0xaf,
+0x00,0x00,0x02,0x8e,0x25,0xb0,0x03,0x3c,0xd8,0x0e,0x63,0x34,0xa4,0x00,0xa2,0xaf,
+0x00,0x00,0x63,0x8c,0xf9,0x51,0x00,0x0c,0xa8,0x00,0xa3,0xaf,0x21,0x20,0x40,0x02,
+0xf9,0x51,0x00,0x0c,0xfb,0x92,0x25,0x36,0x21,0x20,0x60,0x02,0xf9,0x51,0x00,0x0c,
+0xfb,0x92,0x25,0x36,0x21,0x20,0x80,0x02,0xf9,0x51,0x00,0x0c,0xfb,0x92,0x25,0x36,
+0x21,0x20,0xa0,0x02,0xf9,0x51,0x00,0x0c,0xfb,0x92,0x25,0x36,0x21,0x20,0xc0,0x02,
+0xf9,0x51,0x00,0x0c,0xfb,0x92,0x25,0x36,0x21,0x20,0xe0,0x02,0xf9,0x51,0x00,0x0c,
+0xfb,0x92,0x25,0x36,0x02,0x80,0x02,0x3c,0xd8,0x9f,0x42,0x24,0x00,0x00,0x44,0x8c,
+0xfb,0x92,0x25,0x36,0xf9,0x51,0x00,0x0c,0x25,0xb0,0x13,0x3c,0x02,0x80,0x03,0x3c,
+0xdc,0x9f,0x63,0x24,0x00,0x00,0x64,0x8c,0xfb,0x92,0x25,0x36,0xf9,0x51,0x00,0x0c,
+0x21,0xb0,0x00,0x00,0x02,0x80,0x02,0x3c,0xe0,0x9f,0x42,0x24,0x00,0x00,0x44,0x8c,
+0xfb,0x92,0x25,0x36,0xf9,0x51,0x00,0x0c,0xff,0x03,0x14,0x3c,0x02,0x80,0x03,0x3c,
+0xe4,0x9f,0x63,0x24,0x00,0x00,0x64,0x8c,0xfb,0x92,0x25,0x36,0xf9,0x51,0x00,0x0c,
+0x10,0x00,0xb7,0x27,0x21,0x20,0x00,0x02,0xf9,0x51,0x00,0x0c,0xfb,0x92,0x25,0x36,
+0x02,0x80,0x02,0x3c,0xe8,0x9f,0x42,0x24,0x00,0x00,0x44,0x8c,0xf9,0x51,0x00,0x0c,
+0xfb,0x92,0x25,0x36,0xe5,0x52,0x00,0x08,0x21,0xa8,0x00,0x00,0x6e,0x00,0xc2,0x13,
+0x02,0x80,0x02,0x3c,0xac,0x0e,0x62,0x36,0x94,0x0e,0x63,0x36,0x00,0x00,0x48,0x8c,
+0x00,0x00,0x64,0x8c,0xb4,0x0e,0x62,0x36,0x9c,0x0e,0x63,0x36,0x00,0x00,0x45,0x8c,
+0x00,0x00,0x66,0x8c,0x25,0xb0,0x03,0x3c,0xbc,0x0e,0x63,0x34,0x00,0x00,0x67,0x8c,
+0x24,0x20,0x94,0x00,0x00,0xd8,0x02,0x3c,0x24,0x10,0x02,0x01,0x24,0x28,0xb4,0x00,
+0x24,0x30,0xd4,0x00,0x24,0x38,0xf4,0x00,0x02,0x24,0x04,0x00,0x20,0x01,0x03,0x24,
+0x01,0x00,0x42,0x2c,0x02,0x2c,0x05,0x00,0x02,0x34,0x06,0x00,0xe8,0x00,0x83,0x10,
+0x02,0x3c,0x07,0x00,0xe6,0x00,0xa3,0x10,0x20,0x00,0x03,0x24,0xe4,0x00,0xc3,0x10,
+0x00,0x00,0x00,0x00,0xe2,0x00,0xe3,0x10,0x01,0x00,0x08,0x24,0x80,0x00,0x03,0x24,
+0x08,0x00,0x83,0x10,0x21,0x20,0x00,0x00,0x06,0x00,0xa3,0x10,0x21,0x20,0x00,0x00,
+0xe0,0x03,0x03,0x24,0x03,0x00,0xc3,0x10,0x00,0x00,0x00,0x00,0xdb,0x00,0xe3,0x10,
+0x01,0x00,0x04,0x24,0x05,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x11,
+0x00,0x00,0x00,0x00,0xd7,0x00,0x80,0x14,0x94,0x0e,0x63,0x36,0x01,0x00,0xb5,0x26,
+0x0a,0x00,0xa2,0x2e,0x01,0x01,0x40,0x10,0x00,0x00,0x00,0x00,0xcb,0xff,0xc0,0x17,
+0x01,0x00,0x02,0x24,0xa0,0x00,0x03,0x3c,0x30,0x54,0x65,0x34,0xf9,0x51,0x00,0x0c,
+0x04,0x0c,0x64,0x36,0x08,0x00,0x05,0x3c,0xe4,0x00,0xa5,0x34,0xf9,0x51,0x00,0x0c,
+0x08,0x0c,0x64,0x36,0x28,0x0e,0x64,0x36,0xf9,0x51,0x00,0x0c,0x80,0x80,0x05,0x3c,
+0x14,0x02,0x02,0x3c,0x48,0x01,0x45,0x34,0xf9,0x51,0x00,0x0c,0x40,0x0e,0x64,0x36,
+0x16,0x68,0x05,0x3c,0xa2,0x04,0xa5,0x34,0xf9,0x51,0x00,0x0c,0x44,0x0e,0x64,0x36,
+0x4c,0x0e,0x64,0x36,0xf9,0x51,0x00,0x0c,0xd1,0x28,0x05,0x24,0x14,0x02,0x03,0x3c,
+0x4d,0x01,0x65,0x34,0xf9,0x51,0x00,0x0c,0x60,0x0e,0x64,0x36,0x16,0x28,0x05,0x3c,
+0xba,0x08,0xa5,0x34,0xf9,0x51,0x00,0x0c,0x64,0x0e,0x64,0x36,0x6c,0x0e,0x64,0x36,
+0xf9,0x51,0x00,0x0c,0xd1,0x28,0x05,0x24,0x00,0xfb,0x05,0x3c,0x01,0x00,0xa5,0x34,
+0xf9,0x51,0x00,0x0c,0x48,0x0e,0x64,0x36,0x00,0xf8,0x05,0x3c,0x01,0x00,0xa5,0x34,
+0xf9,0x51,0x00,0x0c,0x48,0x0e,0x64,0x36,0xeb,0x0b,0x00,0x0c,0x03,0x00,0x04,0x24,
+0xa0,0x00,0x02,0x3c,0x33,0x54,0x45,0x34,0xf9,0x51,0x00,0x0c,0x04,0x0c,0x64,0x36,
+0x08,0x0c,0x64,0x36,0xf9,0x51,0x00,0x0c,0xe4,0x00,0x05,0x24,0x28,0x0e,0x64,0x36,
+0xf9,0x51,0x00,0x0c,0x21,0x28,0x00,0x00,0x01,0x00,0x02,0x24,0x96,0xff,0xc2,0x17,
+0xac,0x0e,0x62,0x36,0x02,0x80,0x02,0x3c,0xec,0x9f,0x42,0x24,0x25,0xb0,0x03,0x3c,
+0x00,0x00,0x44,0x8c,0x20,0x08,0x63,0x34,0x00,0x00,0x71,0x8c,0x00,0x01,0x03,0x3c,
+0x00,0x01,0x65,0x34,0xf9,0x51,0x00,0x0c,0x25,0xb0,0x12,0x3c,0x00,0x01,0x02,0x3c,
+0x00,0x01,0x45,0x34,0xf9,0x51,0x00,0x0c,0x28,0x08,0x44,0x36,0xa0,0x00,0x03,0x3c,
+0x30,0x54,0x65,0x34,0xf9,0x51,0x00,0x0c,0x04,0x0c,0x44,0x36,0x08,0x00,0x05,0x3c,
+0xe4,0x00,0xa5,0x34,0xf9,0x51,0x00,0x0c,0x08,0x0c,0x44,0x36,0x28,0x0e,0x44,0x36,
+0xf9,0x51,0x00,0x0c,0x80,0x80,0x05,0x3c,0x00,0x01,0x02,0x3c,0x00,0x7c,0x45,0x34,
+0xf9,0x51,0x00,0x0c,0x30,0x0e,0x44,0x36,0x00,0x01,0x03,0x3c,0x00,0x48,0x65,0x34,
+0xf9,0x51,0x00,0x0c,0x34,0x0e,0x44,0x36,0x00,0x10,0x02,0x3c,0x1f,0xdc,0x45,0x34,
+0xf9,0x51,0x00,0x0c,0x38,0x0e,0x44,0x36,0x00,0x10,0x03,0x3c,0x1f,0x8c,0x65,0x34,
+0xf9,0x51,0x00,0x0c,0x3c,0x0e,0x44,0x36,0x14,0x02,0x02,0x3c,0x02,0x01,0x45,0x34,
+0xf9,0x51,0x00,0x0c,0x40,0x0e,0x44,0x36,0x16,0x68,0x05,0x3c,0xc7,0x04,0xa5,0x34,
+0xf9,0x51,0x00,0x0c,0x44,0x0e,0x44,0x36,0x4c,0x0e,0x44,0x36,0xf9,0x51,0x00,0x0c,
+0xd1,0x28,0x05,0x24,0x6c,0x0e,0x44,0x36,0xf9,0x51,0x00,0x0c,0xd1,0x28,0x05,0x24,
+0x00,0x01,0x03,0x3c,0x00,0x7c,0x65,0x34,0xf9,0x51,0x00,0x0c,0x50,0x0e,0x44,0x36,
+0x00,0x01,0x02,0x3c,0x00,0x48,0x45,0x34,0xf9,0x51,0x00,0x0c,0x54,0x0e,0x44,0x36,
+0x00,0x10,0x03,0x3c,0x23,0xdc,0x65,0x34,0xf9,0x51,0x00,0x0c,0x58,0x0e,0x44,0x36,
+0x00,0x10,0x02,0x3c,0x23,0x8c,0x45,0x34,0xf9,0x51,0x00,0x0c,0x5c,0x0e,0x44,0x36,
+0x14,0x02,0x03,0x3c,0x02,0x01,0x65,0x34,0xf9,0x51,0x00,0x0c,0x60,0x0e,0x44,0x36,
+0x16,0x28,0x05,0x3c,0x07,0x0d,0xa5,0x34,0xf9,0x51,0x00,0x0c,0x64,0x0e,0x44,0x36,
+0x48,0x0e,0x44,0x36,0xf9,0x51,0x00,0x0c,0x00,0xfb,0x05,0x3c,0x00,0xf8,0x05,0x3c,
+0xf9,0x51,0x00,0x0c,0x48,0x0e,0x44,0x36,0x00,0x02,0x10,0x3c,0xeb,0x0b,0x00,0x0c,
+0x03,0x00,0x04,0x24,0x4c,0x0e,0x44,0x36,0xf9,0x51,0x00,0x0c,0xd1,0x28,0x05,0x36,
+0xd1,0x28,0x05,0x36,0xf9,0x51,0x00,0x0c,0x6c,0x0e,0x44,0x36,0x48,0x0e,0x44,0x36,
+0xf9,0x51,0x00,0x0c,0x00,0xfb,0x05,0x3c,0x00,0xf8,0x05,0x3c,0xf9,0x51,0x00,0x0c,
+0x48,0x0e,0x44,0x36,0xeb,0x0b,0x00,0x0c,0x03,0x00,0x04,0x24,0xac,0x00,0xa5,0x8f,
+0x04,0x0c,0x44,0x36,0xf9,0x51,0x00,0x0c,0x00,0x01,0x31,0x32,0xb0,0x00,0xa5,0x8f,
+0x08,0x0c,0x44,0x36,0xf9,0x51,0x00,0x0c,0x2b,0x88,0x11,0x00,0x28,0x0e,0x44,0x36,
+0xf9,0x51,0x00,0x0c,0x21,0x28,0x00,0x00,0x23,0xff,0x20,0x16,0xac,0x0e,0x62,0x36,
+0x02,0x80,0x02,0x3c,0xec,0x9f,0x42,0x24,0x00,0x00,0x44,0x8c,0xf9,0x51,0x00,0x0c,
+0x00,0x01,0x05,0x3c,0x28,0x08,0x44,0x36,0xf9,0x51,0x00,0x0c,0x00,0x01,0x05,0x3c,
+0xac,0x0e,0x62,0x36,0x94,0x0e,0x63,0x36,0x00,0x00,0x48,0x8c,0x00,0x00,0x64,0x8c,
+0xb4,0x0e,0x62,0x36,0x9c,0x0e,0x63,0x36,0x00,0x00,0x45,0x8c,0x00,0x00,0x66,0x8c,
+0x25,0xb0,0x03,0x3c,0xbc,0x0e,0x63,0x34,0x00,0x00,0x67,0x8c,0x24,0x20,0x94,0x00,
+0x00,0xd8,0x02,0x3c,0x24,0x10,0x02,0x01,0x24,0x28,0xb4,0x00,0x24,0x30,0xd4,0x00,
+0x24,0x38,0xf4,0x00,0x02,0x24,0x04,0x00,0x20,0x01,0x03,0x24,0x01,0x00,0x42,0x2c,
+0x02,0x2c,0x05,0x00,0x02,0x34,0x06,0x00,0x1a,0xff,0x83,0x14,0x02,0x3c,0x07,0x00,
+0x80,0x00,0x03,0x24,0x20,0xff,0x83,0x14,0x21,0x40,0x00,0x00,0xdb,0x52,0x00,0x08,
+0x21,0x20,0x00,0x00,0x00,0x00,0x62,0x8c,0x9c,0x0e,0x65,0x36,0xa4,0x0e,0x66,0x36,
+0x24,0x10,0x54,0x00,0x02,0x14,0x02,0x00,0x00,0x00,0xe2,0xae,0x00,0x00,0xa4,0x8c,
+0xac,0x0e,0x67,0x36,0xb4,0x0e,0x65,0x36,0x24,0x20,0x94,0x00,0x02,0x24,0x04,0x00,
+0x04,0x00,0xe4,0xae,0x00,0x00,0xc3,0x8c,0xc4,0x0e,0x64,0x36,0x24,0x18,0x74,0x00,
+0x02,0x1c,0x03,0x00,0x08,0x00,0xe3,0xae,0x00,0x00,0xe2,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x10,0x54,0x00,0x02,0x14,0x02,0x00,0x0c,0x00,0xe2,0xae,0x00,0x00,0xa3,0x8c,
+0x00,0x00,0x00,0x00,0x24,0x18,0x74,0x00,0x02,0x1c,0x03,0x00,0x10,0x00,0xe3,0xae,
+0x25,0xb0,0x03,0x3c,0xbc,0x0e,0x63,0x34,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x10,0x54,0x00,0x02,0x14,0x02,0x00,0x14,0x00,0xe2,0xae,0x00,0x00,0x83,0x8c,
+0x00,0x00,0x00,0x00,0x24,0x18,0x74,0x00,0x02,0x1c,0x03,0x00,0x18,0x00,0xe3,0xae,
+0x25,0xb0,0x03,0x3c,0xcc,0x0e,0x63,0x34,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x10,0x54,0x00,0x02,0x14,0x02,0x00,0x1c,0x00,0xe2,0xae,0x01,0x00,0xd6,0x26,
+0x03,0x00,0xc2,0x2e,0xc7,0xfe,0x40,0x14,0x20,0x00,0xf7,0x26,0x10,0x00,0xb0,0x8f,
+0x00,0x00,0x00,0x00,0x49,0x01,0x00,0x16,0x00,0x00,0x00,0x00,0x30,0x00,0xb1,0x8f,
+0x00,0x00,0x00,0x00,0x06,0x00,0x20,0x16,0x21,0x20,0x00,0x02,0x50,0x00,0xa2,0x8f,
+0x00,0x00,0x00,0x00,0x29,0x00,0x40,0x10,0xff,0x00,0x05,0x24,0x21,0x20,0x00,0x02,
+0x02,0x52,0x00,0x0c,0x21,0x28,0x20,0x02,0x03,0x00,0x42,0x2c,0x08,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x34,0x00,0xa5,0x8f,0x14,0x00,0xa4,0x8f,0x02,0x52,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x2c,0x1c,0x00,0x40,0x14,0x21,0x28,0x00,0x00,
+0x50,0x00,0xb2,0x8f,0x21,0x20,0x00,0x02,0x02,0x52,0x00,0x0c,0x21,0x28,0x40,0x02,
+0x03,0x00,0x42,0x2c,0x09,0x00,0x40,0x10,0x21,0x20,0x20,0x02,0x54,0x00,0xa5,0x8f,
+0x14,0x00,0xa4,0x8f,0x02,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x2c,
+0x0e,0x00,0x40,0x14,0x21,0x28,0x00,0x00,0x21,0x20,0x20,0x02,0x02,0x52,0x00,0x0c,
+0x21,0x28,0x40,0x02,0x03,0x00,0x42,0x2c,0xe0,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x54,0x00,0xa5,0x8f,0x34,0x00,0xa4,0x8f,0x02,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x03,0x00,0x42,0x2c,0xd9,0x00,0x40,0x10,0x01,0x00,0x05,0x24,0xff,0x00,0x02,0x24,
+0xdb,0x00,0xa2,0x10,0x25,0xb0,0x03,0x3c,0x10,0x00,0xa2,0x27,0x40,0x29,0x05,0x00,
+0x02,0x80,0x0f,0x3c,0x21,0x28,0xa2,0x00,0x68,0x15,0xec,0x25,0x00,0x00,0xa6,0x8c,
+0x0c,0x00,0xa7,0x8c,0x0c,0x40,0x83,0x8d,0x10,0x40,0x84,0x8d,0x04,0x00,0xa8,0x8c,
+0x10,0x00,0xa9,0x8c,0x00,0xfc,0x02,0x24,0x08,0x00,0xaa,0x8c,0x14,0x00,0xab,0x8c,
+0x24,0x20,0x82,0x00,0xff,0x03,0xc6,0x30,0x24,0x18,0x62,0x00,0xff,0x03,0xe7,0x30,
+0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34,0x25,0x18,0x66,0x00,0x25,0x20,0x87,0x00,
+0xff,0x03,0x08,0x31,0xff,0x03,0x29,0x31,0x24,0x20,0x82,0x00,0x24,0x18,0x62,0x00,
+0x80,0x42,0x08,0x00,0x80,0x4a,0x09,0x00,0x0f,0xc0,0x02,0x3c,0x1c,0x00,0xa6,0x8c,
+0x18,0x00,0xa7,0x8c,0xff,0xff,0x42,0x34,0x25,0x18,0x68,0x00,0x25,0x20,0x89,0x00,
+0xff,0x03,0x4a,0x31,0xff,0x03,0x6b,0x31,0x24,0x20,0x82,0x00,0x00,0x55,0x0a,0x00,
+0x24,0x18,0x62,0x00,0x00,0x5d,0x0b,0x00,0x25,0x18,0x6a,0x00,0x25,0x20,0x8b,0x00,
+0x16,0x40,0x86,0xa5,0x0c,0x40,0x83,0xad,0x10,0x40,0x84,0xad,0x14,0x40,0x87,0xa5,
+0x68,0x15,0xf1,0x25,0x10,0x40,0x22,0x8e,0x01,0x00,0x03,0x24,0x82,0x17,0x02,0x00,
+0x4d,0x00,0x43,0x10,0x25,0xb0,0x12,0x3c,0x0c,0x40,0x23,0x8e,0x80,0x0c,0x44,0x36,
+0x00,0x00,0x88,0x8c,0x00,0x02,0x62,0x30,0xc0,0xff,0x13,0x3c,0x82,0x6d,0x08,0x00,
+0x03,0x00,0x40,0x10,0xff,0x03,0x65,0x30,0x00,0xfc,0x02,0x24,0x25,0x28,0xa2,0x00,
+0x18,0x00,0xad,0x00,0x82,0x62,0x03,0x00,0xff,0x03,0x8c,0x31,0x00,0x02,0x83,0x31,
+0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x46,0x30,
+0x00,0xfc,0x02,0x24,0x25,0x60,0x82,0x01,0x18,0x00,0x8d,0x01,0x00,0xfc,0x74,0x36,
+0x24,0x28,0x14,0x01,0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,
+0x00,0x14,0x02,0x00,0x25,0x28,0xa2,0x00,0xf9,0x51,0x00,0x0c,0x25,0x28,0xa6,0x00,
+0x94,0x0c,0x44,0x36,0x00,0x00,0x85,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x55,0x34,
+0xc0,0x03,0x10,0x32,0x24,0x28,0xb5,0x00,0x80,0x85,0x10,0x00,0xf9,0x51,0x00,0x0c,
+0x25,0x28,0xb0,0x00,0x10,0x40,0x2c,0x8e,0x88,0x0c,0x44,0x36,0x00,0x00,0x88,0x8c,
+0x82,0x2a,0x0c,0x00,0xff,0x03,0xa5,0x30,0x24,0x10,0x13,0x01,0x00,0x02,0xa3,0x30,
+0x03,0x00,0x60,0x10,0x82,0x6d,0x02,0x00,0x00,0xfc,0x02,0x24,0x25,0x28,0xa2,0x00,
+0x18,0x00,0xad,0x00,0x02,0x65,0x0c,0x00,0xff,0x03,0x8c,0x31,0x00,0x02,0x83,0x31,
+0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x46,0x30,
+0x00,0xfc,0x02,0x24,0x25,0x60,0x82,0x01,0x18,0x00,0x8d,0x01,0x24,0x28,0x14,0x01,
+0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,
+0x25,0x28,0xa2,0x00,0xf9,0x51,0x00,0x0c,0x25,0x28,0xa6,0x00,0x9c,0x0c,0x44,0x36,
+0x00,0x00,0x85,0x8c,0xc0,0x03,0x10,0x32,0x80,0x85,0x10,0x00,0x24,0x28,0xb5,0x00,
+0xf9,0x51,0x00,0x0c,0x25,0x28,0xb0,0x00,0x78,0x00,0xa5,0x8f,0x25,0xb0,0x10,0x3c,
+0xf9,0x51,0x00,0x0c,0xe0,0x0e,0x04,0x36,0x7c,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,
+0xdc,0x0e,0x04,0x36,0x80,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,0x70,0x0e,0x04,0x36,
+0x84,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,0x74,0x0e,0x04,0x36,0x88,0x00,0xa5,0x8f,
+0xf9,0x51,0x00,0x0c,0x78,0x0e,0x04,0x36,0x8c,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,
+0x7c,0x0e,0x04,0x36,0x90,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,0x80,0x0e,0x04,0x36,
+0x94,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,0x84,0x0e,0x04,0x36,0x98,0x00,0xa5,0x8f,
+0xf9,0x51,0x00,0x0c,0x88,0x0e,0x04,0x36,0x9c,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,
+0x8c,0x0e,0x04,0x36,0xa0,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,0xd0,0x0e,0x04,0x36,
+0xa4,0x00,0xa5,0x8f,0xf9,0x51,0x00,0x0c,0xd4,0x0e,0x04,0x36,0xa8,0x00,0xa5,0x8f,
+0x88,0x0e,0x04,0x36,0xf9,0x51,0x00,0x0c,0x0f,0x00,0x10,0x3c,0x70,0x00,0xa6,0x8f,
+0xff,0xff,0x05,0x36,0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0x1a,0x0c,0x00,0x0c,
+0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,0x74,0x00,0xa6,0x8f,
+0xff,0xff,0x05,0x36,0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0x1a,0x0c,0x00,0x0c,
+0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0xff,0xff,0x05,0x36,
+0x95,0x44,0x00,0x0c,0x1e,0x00,0x04,0x24,0x21,0x88,0x40,0x00,0xfd,0xff,0x06,0x24,
+0x01,0x00,0x42,0x34,0x24,0x30,0x46,0x00,0xff,0xff,0x05,0x36,0x6a,0x44,0x00,0x0c,
+0x1e,0x00,0x04,0x24,0xeb,0x0b,0x00,0x0c,0x03,0x00,0x04,0x24,0xff,0xff,0x05,0x36,
+0x03,0x00,0x26,0x36,0x6a,0x44,0x00,0x0c,0x1e,0x00,0x04,0x24,0xdc,0x00,0xbf,0x8f,
+0xd8,0x00,0xbe,0x8f,0xd4,0x00,0xb7,0x8f,0xd0,0x00,0xb6,0x8f,0xcc,0x00,0xb5,0x8f,
+0xc8,0x00,0xb4,0x8f,0xc4,0x00,0xb3,0x8f,0xc0,0x00,0xb2,0x8f,0xbc,0x00,0xb1,0x8f,
+0xb8,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0xe0,0x00,0xbd,0x27,0xff,0x00,0x05,0x24,
+0xff,0x00,0x02,0x24,0x29,0xff,0xa2,0x14,0x10,0x00,0xa2,0x27,0x25,0xb0,0x03,0x3c,
+0x94,0x0e,0x62,0x34,0x9c,0x0e,0x64,0x34,0xa4,0x0e,0x65,0x34,0xac,0x0e,0x66,0x34,
+0x02,0x80,0x0f,0x3c,0x00,0x00,0x49,0x8c,0x68,0x15,0xed,0x25,0x00,0x00,0x8c,0x8c,
+0x00,0x00,0xae,0x8c,0x00,0x00,0xc7,0x8c,0xb4,0x0e,0x62,0x34,0x0c,0x40,0xa4,0x8d,
+0x10,0x40,0xa5,0x8d,0x00,0x00,0x4a,0x8c,0xff,0x03,0x06,0x3c,0x00,0xfc,0x08,0x24,
+0xbc,0x0e,0x62,0x34,0x24,0x48,0x26,0x01,0x24,0x38,0xe6,0x00,0x00,0x00,0x4b,0x8c,
+0x24,0x28,0xa8,0x00,0x24,0x20,0x88,0x00,0x02,0x3c,0x07,0x00,0xcc,0x0e,0x68,0x34,
+0x02,0x4c,0x09,0x00,0xc4,0x0e,0x63,0x34,0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34,
+0x25,0x28,0xa7,0x00,0x25,0x20,0x89,0x00,0x00,0x00,0x67,0x8c,0x24,0x60,0x86,0x01,
+0x00,0x00,0x03,0x8d,0x24,0x50,0x46,0x01,0x24,0x28,0xa2,0x00,0x24,0x20,0x82,0x00,
+0x82,0x61,0x0c,0x00,0x82,0x51,0x0a,0x00,0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x25,0x20,0x8c,0x00,0x25,0x28,0xaa,0x00,0x24,0x70,0xc6,0x01,0x24,0x58,0x66,0x01,
+0x24,0x28,0xa2,0x00,0x24,0x18,0x66,0x00,0x00,0x71,0x0e,0x00,0x24,0x20,0x82,0x00,
+0x00,0x59,0x0b,0x00,0x24,0x38,0xe6,0x00,0x25,0x20,0x8e,0x00,0x25,0x28,0xab,0x00,
+0x02,0x3c,0x07,0x00,0x02,0x1c,0x03,0x00,0x16,0x40,0xa3,0xa5,0x0c,0x40,0xa4,0xad,
+0x10,0x40,0xa5,0xad,0x4e,0x54,0x00,0x08,0x14,0x40,0xa7,0xa5,0x30,0x00,0xb1,0x8f,
+0xf6,0x53,0x00,0x08,0x21,0x20,0x00,0x02,0xe0,0xff,0xbd,0x27,0x44,0x00,0x02,0x24,
+0x10,0x00,0xa2,0xa3,0x49,0x00,0x03,0x24,0x47,0x00,0x02,0x24,0x02,0x80,0x07,0x3c,
+0x68,0xa5,0xe7,0x24,0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3,0x10,0x27,0x03,0x24,
+0x01,0x00,0x02,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,
+0xf4,0x57,0xc6,0x24,0x0c,0x00,0xe3,0xac,0x14,0x00,0xe2,0xa0,0x18,0x00,0xbf,0xaf,
+0x88,0x0e,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xd0,0xff,0xbd,0x27,0x25,0xb0,0x03,0x3c,
+0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x2c,0x00,0xbf,0xaf,0x28,0x00,0xb6,0xaf,
+0x24,0x00,0xb5,0xaf,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,
+0x03,0x0d,0x64,0x34,0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x54,0x30,
+0x70,0x00,0x93,0x32,0x63,0x00,0x60,0x12,0x42,0x00,0x63,0x34,0x8f,0x00,0x82,0x32,
+0x00,0x00,0x82,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x5b,0x00,0x60,0x12,
+0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x0f,0x00,0x11,0x3c,0x21,0x20,0x00,0x00,0x95,0x44,0x00,0x0c,
+0xff,0xff,0x25,0x36,0x21,0xa8,0x40,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,
+0x01,0x00,0x04,0x24,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x21,0x20,0x00,0x00,0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,
+0x21,0xb0,0x40,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x64,0x00,0x04,0x24,0x1a,0x0c,0x00,0x0c,0x08,0x00,0x10,0x3c,0xff,0xff,0x10,0x36,
+0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0x01,0x00,0x12,0x3c,0x24,0x30,0xb0,0x02,
+0x25,0x30,0xd2,0x00,0xff,0xff,0x25,0x36,0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,
+0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x24,0x80,0xd0,0x02,0x2a,0x42,0x00,0x0c,
+0x01,0x00,0x04,0x24,0x25,0x30,0x12,0x02,0xff,0xff,0x25,0x36,0x6a,0x44,0x00,0x0c,
+0x21,0x20,0x00,0x00,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x2a,0x42,0x00,0x0c,
+0x21,0x20,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x0f,0x00,0x11,0x3c,0x18,0x00,0x04,0x24,0x95,0x44,0x00,0x0c,
+0xff,0xff,0x25,0x36,0x21,0x80,0x40,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,0x18,0x00,0x04,0x24,
+0xff,0xff,0x25,0x36,0x6a,0x44,0x00,0x0c,0x00,0x80,0x06,0x36,0xeb,0x0b,0x00,0x0c,
+0x03,0x00,0x04,0x24,0x27,0x00,0x60,0x16,0x25,0xb0,0x02,0x3c,0x2c,0x00,0xbf,0x8f,
+0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x25,0xb0,0x02,0x3c,
+0x42,0x00,0x42,0x34,0x30,0x00,0xbd,0x27,0x00,0x00,0x40,0xa0,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x24,0x00,0x00,0x62,0xa0,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x0f,0x00,0x11,0x3c,
+0x18,0x00,0x04,0x24,0x95,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x21,0x80,0x40,0x00,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x1a,0x0c,0x00,0x0c,
+0x64,0x00,0x04,0x24,0x18,0x00,0x04,0x24,0xff,0xff,0x25,0x36,0x6a,0x44,0x00,0x0c,
+0x00,0x80,0x06,0x36,0xeb,0x0b,0x00,0x0c,0x03,0x00,0x04,0x24,0xdb,0xff,0x60,0x12,
+0x25,0xb0,0x02,0x3c,0x03,0x0d,0x42,0x34,0x00,0x00,0x54,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x0f,0x00,0x10,0x3c,0x21,0x30,0xa0,0x02,0xff,0xff,0x05,0x36,
+0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x2a,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,0xff,0xff,0x05,0x36,0x21,0x30,0xc0,0x02,
+0x6a,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0x1a,0x0c,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,
+0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x21,0x20,0x00,0x00,0x2a,0x42,0x00,0x08,0x30,0x00,0xbd,0x27,0xc0,0xff,0xbd,0x27,
+0x28,0x00,0xb4,0xaf,0x02,0x80,0x14,0x3c,0x30,0x00,0xb6,0xaf,0x38,0x00,0xbf,0xaf,
+0x34,0x00,0xb7,0xaf,0x2c,0x00,0xb5,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,
+0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x68,0x15,0x85,0x26,0x0c,0x40,0xa2,0x8c,
+0x00,0x00,0x00,0x00,0x82,0x17,0x02,0x00,0x01,0x00,0x42,0x30,0x08,0x00,0x40,0x14,
+0x06,0x00,0x16,0x24,0x08,0x40,0xa2,0x8c,0x01,0x00,0x03,0x24,0x42,0x17,0x02,0x00,
+0x03,0x00,0x42,0x30,0x5d,0x01,0x43,0x10,0x25,0xb0,0x02,0x3c,0x68,0x15,0x85,0x26,
+0x0c,0x40,0xa2,0x8c,0x01,0x00,0x03,0x24,0x82,0x17,0x02,0x00,0x01,0x00,0x44,0x30,
+0x0d,0x00,0x83,0x10,0x00,0x00,0x00,0x00,0x38,0x00,0xbf,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x08,0x40,0xa2,0x8c,0x00,0x00,0x00,0x00,
+0x42,0x17,0x02,0x00,0x03,0x00,0x42,0x30,0xef,0xff,0x44,0x14,0x25,0xb0,0x02,0x3c,
+0x0e,0x0c,0x44,0x34,0x00,0x00,0x83,0x90,0x00,0x01,0x02,0x24,0xff,0x00,0x63,0x30,
+0x01,0x00,0x63,0x24,0x59,0x02,0x62,0x10,0xff,0x00,0x62,0x30,0x00,0x00,0x82,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x84,0x26,0x10,0x40,0x82,0x8c,
+0x01,0x00,0x03,0x24,0x82,0x17,0x02,0x00,0x73,0x02,0x43,0x10,0x0f,0x00,0x10,0x3c,
+0xc7,0x42,0x93,0x90,0x25,0xb0,0x02,0x3c,0x62,0x0c,0x42,0x34,0xff,0x00,0x63,0x32,
+0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x90,0x26,
+0xc6,0x42,0x02,0x92,0x00,0x00,0x00,0x00,0x79,0x01,0x40,0x10,0x01,0x00,0x02,0x24,
+0x25,0xb0,0x11,0x3c,0x03,0x0d,0x23,0x36,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,
+0x70,0x00,0x42,0x30,0x9f,0x01,0x40,0x14,0xcc,0x00,0x02,0x24,0xc4,0x42,0x02,0x96,
+0x00,0x00,0x00,0x00,0x23,0x20,0x53,0x00,0x2b,0x18,0x53,0x00,0x23,0x10,0x62,0x02,
+0x0a,0x10,0x83,0x00,0x03,0x00,0x42,0x2c,0x6c,0x01,0x40,0x10,0x00,0x00,0x00,0x00,
+0xc4,0x42,0x03,0x92,0x63,0x0c,0x22,0x36,0x21,0x20,0x00,0x00,0x00,0x00,0x43,0xa0,
+0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x82,0x24,0x68,0x15,0x83,0x26,0xc3,0x42,0x62,0x90,0x08,0x40,0x66,0x8c,
+0xc2,0x42,0x73,0xa0,0x23,0x20,0x53,0x00,0x2b,0x38,0x62,0x02,0x23,0x90,0x62,0x02,
+0x02,0x2c,0x06,0x00,0x0b,0x90,0x87,0x00,0x3f,0x00,0xa5,0x30,0x3f,0x00,0xc4,0x30,
+0x24,0x00,0x02,0x24,0x20,0x00,0x03,0x24,0x23,0x10,0x44,0x00,0x8a,0x01,0x40,0x16,
+0x23,0x18,0x65,0x00,0x21,0x40,0x80,0x00,0x21,0xa8,0xa0,0x00,0x02,0x80,0x17,0x3c,
+0x2b,0x28,0xc8,0x02,0x81,0x01,0xa0,0x10,0x68,0x15,0x82,0x26,0x80,0x10,0x08,0x00,
+0x68,0x15,0x83,0x26,0x21,0x10,0x43,0x00,0x18,0x40,0x44,0x8c,0x00,0x00,0x00,0x00,
+0x82,0x25,0x04,0x00,0x68,0x15,0x86,0x26,0x0c,0x40,0xc3,0x8c,0x00,0x00,0x00,0x00,
+0xff,0x03,0x67,0x30,0xe9,0x01,0xe0,0x10,0x00,0x02,0x62,0x30,0x04,0x00,0x40,0x10,
+0x18,0x00,0xe4,0x00,0x00,0xfc,0x02,0x24,0x25,0x38,0xe2,0x00,0x18,0x00,0xe4,0x00,
+0x82,0x82,0x03,0x00,0xff,0x03,0x10,0x32,0x00,0x02,0x03,0x32,0x12,0x10,0x00,0x00,
+0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x45,0x30,0x00,0xfc,0x02,0x24,
+0x25,0x80,0x02,0x02,0x18,0x00,0x04,0x02,0x80,0x1d,0x04,0x00,0x25,0xb0,0x11,0x3c,
+0x80,0x0c,0x24,0x36,0x94,0x0c,0x31,0x36,0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00,
+0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,0x25,0x18,0x62,0x00,0x25,0x18,0x65,0x00,
+0x21,0x28,0x60,0x00,0xf9,0x51,0x00,0x0c,0x10,0x00,0xa3,0xaf,0x00,0x00,0x23,0x8e,
+0xff,0x0f,0x02,0x3c,0xc0,0x03,0x10,0x32,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0x80,0x85,0x10,0x00,0x25,0x18,0x70,0x00,0x21,0x20,0x20,0x02,0x21,0x28,0x60,0x00,
+0x10,0x00,0xa3,0xaf,0xf9,0x51,0x00,0x0c,0x00,0x00,0x00,0x00,0x68,0x15,0x83,0x26,
+0x08,0x40,0x62,0x8c,0x00,0x00,0x00,0x00,0x5b,0x01,0x40,0x04,0xc0,0x28,0x15,0x00,
+0x21,0x10,0xa3,0x00,0xac,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x22,0x0a,0x63,0x34,
+0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,
+0x21,0x10,0xa2,0x00,0xad,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x23,0x0a,0x63,0x34,
+0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,
+0x21,0x10,0xa2,0x00,0xae,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x24,0x0a,0x63,0x34,
+0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,
+0x21,0x10,0xa2,0x00,0xaf,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x25,0x0a,0x63,0x34,
+0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,
+0x21,0x10,0xa2,0x00,0xb0,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x26,0x0a,0x63,0x34,
+0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,
+0x21,0x10,0xa2,0x00,0xb1,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x27,0x0a,0x63,0x34,
+0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,
+0x21,0x10,0xa2,0x00,0xb2,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x28,0x0a,0x63,0x34,
+0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,
+0x21,0x10,0xa2,0x00,0xb3,0x40,0x44,0x90,0x25,0xb0,0x03,0x3c,0x29,0x0a,0x63,0x34,
+0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0xee,0x7d,0xe3,0x92,
+0x22,0x00,0x02,0x24,0x03,0x00,0x62,0x10,0x92,0x00,0x02,0x24,0xfe,0xfe,0x62,0x14,
+0x00,0x00,0x00,0x00,0x68,0x15,0x82,0x26,0x08,0x40,0x43,0x8c,0x01,0x00,0x44,0x3a,
+0x24,0x00,0x02,0x24,0x02,0x1a,0x03,0x00,0x3f,0x00,0x63,0x30,0x01,0x00,0x84,0x30,
+0x87,0x01,0x80,0x10,0x23,0x28,0x43,0x00,0x42,0x18,0x12,0x00,0x40,0x10,0x03,0x00,
+0x21,0x90,0x43,0x00,0x68,0x15,0x83,0x26,0xc3,0x42,0x62,0x90,0x00,0x00,0x00,0x00,
+0x2b,0x10,0x62,0x02,0x50,0x01,0x40,0x10,0x2b,0x10,0x45,0x02,0x06,0x00,0x40,0x10,
+0x24,0x00,0x06,0x24,0x08,0x40,0x62,0x8c,0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,
+0x3f,0x00,0x42,0x30,0x21,0x30,0x52,0x00,0x2b,0x28,0xc6,0x02,0x50,0x01,0xa0,0x10,
+0x68,0x15,0x82,0x26,0x80,0x10,0x06,0x00,0x68,0x15,0x83,0x26,0x21,0x10,0x43,0x00,
+0x18,0x40,0x44,0x8c,0x00,0x00,0x00,0x00,0x82,0x25,0x04,0x00,0x68,0x15,0x83,0x26,
+0x10,0x40,0x70,0x8c,0x00,0x00,0x00,0x00,0x82,0x3a,0x10,0x00,0xff,0x03,0xe7,0x30,
+0x5a,0x01,0xe0,0x10,0x00,0x02,0xe2,0x30,0x04,0x00,0x40,0x10,0x18,0x00,0xe4,0x00,
+0x00,0xfc,0x02,0x24,0x25,0x38,0xe2,0x00,0x18,0x00,0xe4,0x00,0x02,0x85,0x10,0x00,
+0xff,0x03,0x10,0x32,0x00,0x02,0x03,0x32,0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00,
+0x03,0x00,0x60,0x10,0xff,0x03,0x45,0x30,0x00,0xfc,0x02,0x24,0x25,0x80,0x02,0x02,
+0x18,0x00,0x04,0x02,0x80,0x1d,0x04,0x00,0x25,0xb0,0x11,0x3c,0x88,0x0c,0x24,0x36,
+0x9c,0x0c,0x31,0x36,0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,
+0x00,0x14,0x02,0x00,0x25,0x18,0x62,0x00,0x25,0x18,0x65,0x00,0x21,0x28,0x60,0x00,
+0xf9,0x51,0x00,0x0c,0x10,0x00,0xa3,0xaf,0x00,0x00,0x23,0x8e,0xff,0x0f,0x02,0x3c,
+0xff,0xff,0x42,0x34,0xc0,0x03,0x10,0x32,0x24,0x18,0x62,0x00,0x80,0x85,0x10,0x00,
+0x25,0x18,0x70,0x00,0x21,0x20,0x20,0x02,0x21,0x28,0x60,0x00,0xf9,0x51,0x00,0x0c,
+0x10,0x00,0xa3,0xaf,0x1c,0x56,0x00,0x08,0x00,0x00,0x00,0x00,0x80,0x0c,0x42,0x34,
+0x00,0x00,0x43,0x8c,0x21,0x30,0xa0,0x00,0xc0,0xff,0x02,0x3c,0x24,0x20,0x62,0x00,
+0x21,0x88,0x00,0x00,0xc0,0xff,0x05,0x3c,0x7e,0x57,0x00,0x08,0x18,0x40,0xc3,0x24,
+0x01,0x00,0x31,0x26,0x25,0x00,0x22,0x2e,0x0d,0x00,0x40,0x10,0x02,0x80,0x17,0x3c,
+0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x45,0x00,0xf8,0xff,0x44,0x14,
+0x04,0x00,0x63,0x24,0x08,0x40,0xc2,0x8c,0xc0,0xff,0x03,0x24,0x3f,0x00,0x24,0x32,
+0x24,0x10,0x43,0x00,0x25,0x10,0x44,0x00,0x08,0x40,0xc2,0xac,0x02,0x80,0x17,0x3c,
+0xee,0x7d,0xe3,0x92,0x22,0x00,0x02,0x24,0x44,0x00,0x62,0x10,0x92,0x00,0x02,0x24,
+0x43,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c,0x25,0xb0,0x02,0x3c,0x24,0x0a,0x42,0x34,
+0x00,0x00,0x44,0x8c,0x3f,0x3f,0x03,0x3c,0x3f,0x3f,0x63,0x34,0x24,0x20,0x83,0x00,
+0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x16,0x56,0x53,0x24,0x1e,0x57,0x72,0x24,
+0x21,0x88,0x00,0x00,0xa5,0x57,0x00,0x08,0x10,0x00,0xa4,0xaf,0x95,0x45,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x4d,0x00,0x40,0x10,0x68,0x15,0x85,0x26,0x01,0x00,0x31,0x26,
+0x21,0x00,0x22,0x2e,0x17,0x00,0x40,0x10,0x68,0x15,0x84,0x26,0xc0,0x80,0x11,0x00,
+0x10,0x00,0xa4,0x27,0x21,0x28,0x13,0x02,0x95,0x45,0x00,0x0c,0x04,0x00,0x06,0x24,
+0x21,0x28,0x12,0x02,0x10,0x00,0xa4,0x27,0xf0,0xff,0x40,0x14,0x04,0x00,0x06,0x24,
+0x68,0x15,0x85,0x26,0x08,0x40,0xa3,0x8c,0xc0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x3f,0x00,0x24,0x32,0x24,0x18,0x62,0x00,0x00,0x24,0x04,0x00,0xff,0x7f,0x02,0x3c,
+0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x08,0x40,0xa3,0xac,
+0x68,0x15,0x84,0x26,0x0c,0x40,0x83,0x8c,0x00,0x40,0x02,0x3c,0x25,0x18,0x62,0x00,
+0x25,0xb0,0x02,0x3c,0x0e,0x0c,0x42,0x34,0x0c,0x40,0x83,0xac,0x00,0x00,0x40,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x16,0x56,0x00,0x08,0x68,0x15,0x85,0x26,
+0xc6,0x42,0x02,0xa2,0x52,0x56,0x00,0x08,0xc4,0x42,0x13,0xa6,0x50,0x55,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x62,0x56,0x00,0x08,0xc4,0x42,0x13,0xa6,0x25,0xb0,0x02,0x3c,
+0x88,0x0c,0x42,0x34,0x00,0x00,0x44,0x8c,0x02,0x80,0x03,0x3c,0x68,0x15,0x66,0x24,
+0xc0,0xff,0x02,0x3c,0x24,0x20,0x82,0x00,0x21,0x88,0x00,0x00,0xc0,0xff,0x05,0x3c,
+0xe0,0x57,0x00,0x08,0x18,0x40,0xc3,0x24,0x01,0x00,0x31,0x26,0x25,0x00,0x22,0x2e,
+0xb2,0xff,0x40,0x10,0x25,0xb0,0x02,0x3c,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x10,0x45,0x00,0xf8,0xff,0x44,0x14,0x04,0x00,0x63,0x24,0x08,0x40,0xc2,0x8c,
+0x3f,0x00,0x23,0x32,0xff,0xc0,0x04,0x24,0x24,0x10,0x44,0x00,0x00,0x1a,0x03,0x00,
+0x25,0x10,0x43,0x00,0x90,0x57,0x00,0x08,0x08,0x40,0xc2,0xac,0x08,0x40,0xa3,0x8c,
+0xc0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x3f,0x00,0x24,0x32,0x24,0x18,0x62,0x00,
+0x00,0x24,0x04,0x00,0x25,0x18,0x64,0x00,0x00,0x80,0x02,0x3c,0xb9,0x57,0x00,0x08,
+0x25,0x18,0x62,0x00,0x63,0x0c,0x23,0x36,0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x6c,0x56,0x00,0x08,0x68,0x15,0x83,0x26,0x30,0x40,0x43,0x8c,
+0x87,0x56,0x00,0x08,0x82,0x25,0x03,0x00,0x91,0x00,0xe0,0x10,0x21,0x40,0x00,0x00,
+0x2b,0x10,0x42,0x02,0x21,0x20,0x92,0x00,0x00,0x00,0x42,0x38,0x24,0x00,0x08,0x24,
+0x2b,0x18,0x43,0x02,0x0b,0x40,0x82,0x00,0x70,0xfe,0x60,0x10,0x20,0x00,0x15,0x24,
+0x68,0x15,0x83,0x26,0x0a,0x40,0x62,0x94,0x02,0x80,0x17,0x3c,0x3f,0x00,0x42,0x30,
+0x7e,0x56,0x00,0x08,0x21,0xa8,0x52,0x00,0x21,0x10,0xa3,0x00,0xb4,0x41,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x22,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb5,0x41,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x23,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb6,0x41,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x24,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb7,0x41,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x25,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb8,0x41,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x26,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xb9,0x41,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x27,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xba,0x41,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x28,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x68,0x15,0x82,0x26,0x21,0x10,0xa2,0x00,0xbb,0x41,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x29,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x19,0x57,0x00,0x08,0x00,0x00,0x00,0x00,0x28,0x00,0xa0,0x10,
+0x80,0x10,0x08,0x00,0x21,0x10,0x46,0x00,0x18,0x40,0x45,0x8c,0x25,0xb0,0x04,0x3c,
+0xf9,0x51,0x00,0x0c,0x80,0x0c,0x84,0x34,0x25,0xb0,0x04,0x3c,0x94,0x0c,0x84,0x34,
+0xb3,0x56,0x00,0x08,0x21,0x28,0x00,0x00,0x08,0x40,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x02,0x12,0x02,0x00,0x3f,0x00,0x42,0x30,0x2b,0x18,0x42,0x02,0xb2,0xfe,0x60,0x14,
+0x23,0x30,0x52,0x00,0x21,0x30,0x00,0x00,0x21,0x28,0x00,0x00,0x68,0x15,0x82,0x26,
+0x30,0x40,0x43,0x8c,0x41,0x57,0x00,0x08,0x82,0x25,0x03,0x00,0x00,0x00,0x80,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x3d,0x56,0x00,0x08,0x68,0x15,0x84,0x26,
+0x23,0x10,0x92,0x00,0x2b,0x18,0x44,0x02,0x2b,0x20,0x45,0x02,0x0b,0x40,0x43,0x00,
+0xe2,0xfd,0x80,0x14,0x23,0xa8,0xb2,0x00,0x7d,0x56,0x00,0x08,0x21,0xa8,0x00,0x00,
+0x30,0x40,0xc5,0x8c,0x7a,0x58,0x00,0x08,0x25,0xb0,0x04,0x3c,0x27,0x00,0xa0,0x10,
+0x80,0x10,0x06,0x00,0x21,0x10,0x43,0x00,0x18,0x40,0x45,0x8c,0x25,0xb0,0x04,0x3c,
+0xf9,0x51,0x00,0x0c,0x88,0x0c,0x84,0x34,0x25,0xb0,0x04,0x3c,0x9c,0x0c,0x84,0x34,
+0xf9,0x51,0x00,0x0c,0x21,0x28,0x00,0x00,0x1c,0x56,0x00,0x08,0x00,0x00,0x00,0x00,
+0xff,0xff,0x43,0x26,0x42,0x18,0x03,0x00,0x40,0x10,0x03,0x00,0x21,0x10,0x43,0x00,
+0x2b,0x57,0x00,0x08,0x01,0x00,0x52,0x24,0xff,0xff,0x05,0x36,0x60,0x00,0x06,0x24,
+0x6a,0x44,0x00,0x0c,0x24,0x00,0x04,0x24,0xeb,0x0b,0x00,0x0c,0xe8,0x03,0x04,0x24,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x24,0x00,0x04,0x24,0x95,0x44,0x00,0x0c,0xff,0xff,0x05,0x36,0x1f,0x00,0x53,0x30,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x1a,0x0c,0x00,0x0c,
+0x64,0x00,0x04,0x24,0x44,0x56,0x00,0x08,0x25,0xb0,0x02,0x3c,0x30,0x40,0x65,0x8c,
+0xa6,0x58,0x00,0x08,0x25,0xb0,0x04,0x3c,0x00,0xff,0x84,0x30,0x02,0x22,0x04,0x00,
+0x08,0x00,0x80,0x10,0x02,0x80,0x02,0x3c,0xff,0x00,0x02,0x24,0x04,0x00,0x82,0x10,
+0xcc,0xff,0x03,0x24,0x02,0x80,0x02,0x3c,0x08,0x00,0xe0,0x03,0x4e,0x58,0x43,0xa0,
+0x02,0x80,0x02,0x3c,0x08,0x00,0xe0,0x03,0x4e,0x58,0x44,0xa0,0x02,0x24,0x04,0x00,
+0xff,0x00,0x84,0x30,0xc0,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x80,0x10,0x02,0x00,
+0x21,0x10,0x44,0x00,0x02,0x80,0x03,0x3c,0x80,0x10,0x02,0x00,0x68,0x15,0x63,0x24,
+0x20,0x00,0x84,0x2c,0x09,0x00,0x80,0x10,0x21,0x10,0x43,0x00,0x74,0x51,0x43,0x8c,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x02,0x19,0x03,0x00,0x7f,0x00,0x63,0x30,
+0x00,0x00,0x43,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,
+0x50,0x79,0x43,0x8c,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x02,0x19,0x03,0x00,
+0x7f,0x00,0x63,0x30,0x00,0x00,0x43,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xff,0x00,0x85,0x30,0xd2,0xff,0xa3,0x24,0xfe,0xff,0xa2,0x24,0xda,0xff,0xa4,0x24,
+0x04,0x00,0x63,0x2c,0x08,0x00,0x84,0x2c,0x06,0x00,0x60,0x14,0xff,0x00,0x42,0x30,
+0xf0,0xff,0xa2,0x24,0xfc,0xff,0xa3,0x24,0x16,0x00,0x46,0x2c,0x03,0x00,0x80,0x10,
+0xff,0x00,0x62,0x30,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xfa,0xff,0xa3,0x24,
+0xfc,0xff,0xc0,0x10,0x21,0x10,0xa0,0x00,0x08,0x00,0xe0,0x03,0xff,0x00,0x62,0x30,
+0xe0,0xff,0xbd,0x27,0x44,0x00,0x02,0x24,0x10,0x00,0xa2,0xa3,0x49,0x00,0x03,0x24,
+0x47,0x00,0x02,0x24,0x02,0x80,0x07,0x3c,0x02,0x80,0x08,0x3c,0x30,0xa5,0xe7,0x24,
+0x68,0x15,0x08,0x25,0xff,0xff,0x09,0x34,0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3,
+0xf4,0x01,0x03,0x24,0x01,0x00,0x02,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,
+0x21,0x20,0xe0,0x00,0x9c,0x64,0xc6,0x24,0xf4,0x63,0x09,0xad,0x0c,0x00,0xe3,0xac,
+0x14,0x00,0xe2,0xa0,0xf0,0x63,0x09,0xad,0x18,0x00,0xbf,0xaf,0x88,0x0e,0x00,0x0c,
+0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,
+0x10,0x00,0xb0,0xaf,0x02,0x80,0x02,0x3c,0xee,0x7d,0x44,0x90,0x22,0x00,0x03,0x24,
+0x07,0x00,0x83,0x10,0x25,0xb0,0x04,0x3c,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0x4c,0x00,0x83,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,
+0xf5,0xff,0x40,0x10,0x02,0x80,0x11,0x3c,0x68,0x15,0x22,0x26,0xf0,0x63,0x43,0x8c,
+0x98,0x0c,0x84,0x34,0x21,0x10,0x00,0x00,0x02,0x19,0x03,0x00,0xff,0x00,0x63,0x30,
+0x00,0x00,0x83,0xa0,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x22,0x26,0xf4,0x63,0x43,0x8c,
+0x25,0xb0,0x02,0x3c,0x99,0x0c,0x42,0x34,0x02,0x19,0x03,0x00,0xff,0x00,0x63,0x30,
+0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x68,0x15,0x30,0x26,
+0xf0,0x63,0x04,0x8e,0xff,0xff,0x02,0x34,0xd7,0xff,0x82,0x10,0x00,0x00,0x00,0x00,
+0xe8,0x63,0x02,0x8e,0x00,0x00,0x00,0x00,0x02,0x11,0x02,0x00,0x7f,0x00,0x42,0x30,
+0x3f,0x00,0x43,0x2c,0x12,0x00,0x60,0x14,0x3b,0x00,0x42,0x2c,0xf4,0x63,0x02,0x8e,
+0x02,0x19,0x04,0x00,0x02,0x11,0x02,0x00,0x23,0x18,0x62,0x00,0x1e,0x00,0x60,0x18,
+0x25,0xb0,0x04,0x3c,0x12,0x01,0x05,0x3c,0x0c,0x09,0x84,0x34,0x13,0x13,0xa5,0x34,
+0xf9,0x51,0x00,0x0c,0x00,0x00,0x00,0x00,0x68,0x15,0x22,0x26,0xe4,0x42,0x43,0x8c,
+0x00,0x20,0x04,0x3c,0x25,0x18,0x64,0x00,0x30,0x59,0x00,0x08,0xe4,0x42,0x43,0xac,
+0xbd,0xff,0x40,0x10,0x01,0x00,0x03,0x24,0xe4,0x42,0x02,0x8e,0x00,0x00,0x00,0x00,
+0x42,0x17,0x02,0x00,0x01,0x00,0x42,0x30,0xb7,0xff,0x43,0x14,0x25,0xb0,0x04,0x3c,
+0x32,0x03,0x05,0x3c,0x0c,0x09,0x84,0x34,0xf9,0x51,0x00,0x0c,0x33,0x13,0xa5,0x34,
+0xe4,0x42,0x03,0x8e,0xff,0xdf,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0x30,0x59,0x00,0x08,0xe4,0x42,0x03,0xae,0x22,0x02,0x05,0x3c,0x0c,0x09,0x84,0x34,
+0x6a,0x59,0x00,0x08,0x23,0x13,0xa5,0x34,0x25,0xb0,0x03,0x3c,0x03,0x0d,0x63,0x34,
+0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30,0x08,0x00,0x42,0x34,
+0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,0x03,0x0d,0x63,0x34,
+0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,0xf7,0x00,0x42,0x30,0x00,0x00,0x62,0xa0,
+0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,0x2d,0x0a,0x63,0x34,0x00,0x00,0x62,0x90,
+0x21,0x20,0x00,0x00,0x3f,0x00,0x42,0x30,0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24,
+0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,
+0x25,0xb0,0x03,0x3c,0x2d,0x0a,0x63,0x34,0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,
+0xff,0x00,0x42,0x30,0x80,0x00,0x42,0x34,0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24,
+0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xff,0x00,0x03,0x3c,
+0x82,0x01,0x49,0x34,0x81,0x01,0x48,0x34,0x24,0x10,0x83,0x00,0x02,0x3c,0x02,0x00,
+0x00,0xff,0x63,0x34,0x02,0x80,0x02,0x3c,0x68,0x15,0x45,0x24,0x02,0x32,0x04,0x00,
+0x01,0x00,0x02,0x24,0x24,0x20,0x83,0x00,0xce,0x4c,0xa2,0xa0,0xbc,0x4c,0xa0,0xac,
+0xc0,0x4c,0xa0,0xac,0xc4,0x4c,0xa0,0xac,0x06,0x00,0x80,0x14,0xc8,0x4c,0xa0,0xac,
+0x00,0x00,0x02,0x91,0x00,0x00,0x23,0x91,0xcc,0x4c,0xa2,0xa0,0x08,0x00,0xe0,0x03,
+0xcd,0x4c,0xa3,0xa0,0xcd,0x4c,0xa7,0xa0,0x08,0x00,0xe0,0x03,0xcc,0x4c,0xa6,0xa0,
+0x02,0x80,0x03,0x3c,0x68,0x15,0x63,0x24,0xcd,0x4c,0x66,0x90,0xcc,0x4c,0x65,0x90,
+0x25,0xb0,0x02,0x3c,0x82,0x01,0x44,0x34,0x81,0x01,0x42,0x34,0x00,0x00,0x45,0xa0,
+0x00,0x00,0x86,0xa0,0x08,0x00,0xe0,0x03,0xce,0x4c,0x60,0xa0,0x02,0x80,0x08,0x3c,
+0x68,0x15,0x04,0x25,0xce,0x4c,0x82,0x90,0x00,0x00,0x00,0x00,0x15,0x00,0x40,0x10,
+0x21,0x18,0x00,0x00,0xc0,0x4c,0x82,0x8c,0xbc,0x4c,0x85,0x8c,0x25,0xb0,0x03,0x3c,
+0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00,0x82,0x01,0x67,0x34,0x0f,0x00,0x40,0x10,
+0x81,0x01,0x66,0x34,0xcd,0x4c,0x83,0x90,0xcc,0x4c,0x82,0x90,0xf0,0x00,0x63,0x30,
+0x1f,0x00,0x42,0x30,0x00,0x00,0xc2,0xa0,0x00,0x00,0xe3,0xa0,0x68,0x15,0x02,0x25,
+0x01,0x00,0x03,0x24,0xc8,0x4c,0x40,0xac,0xbc,0x4c,0x40,0xac,0xc0,0x4c,0x40,0xac,
+0xc4,0x4c,0x40,0xac,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0xc4,0x4c,0x82,0x8c,
+0x25,0xb0,0x03,0x3c,0x82,0x01,0x69,0x34,0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00,
+0x0e,0x00,0x40,0x14,0x81,0x01,0x66,0x34,0xc8,0x4c,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00,0x08,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0xcd,0x4c,0x83,0x90,0xcc,0x4c,0x82,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0xc2,0xa0,
+0x00,0x00,0x23,0xa1,0xf2,0x59,0x00,0x08,0x68,0x15,0x02,0x25,0xcd,0x4c,0x83,0x90,
+0xcc,0x4c,0x82,0x90,0xf0,0x00,0x63,0x30,0x7f,0x00,0x42,0x30,0x00,0x00,0xc2,0xa0,
+0x00,0x00,0x23,0xa1,0xf2,0x59,0x00,0x08,0x68,0x15,0x02,0x25,0x00,0x00,0x85,0xac,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x03,0x3c,0x33,0x02,0x65,0x34,0x00,0x11,0x04,0x00,0x00,0x00,0xa2,0xa0,
+0x30,0x02,0x63,0x34,0x00,0x00,0x65,0x8c,0x0f,0x00,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x24,0x28,0xa2,0x00,0x01,0x00,0x03,0x24,0x04,0x18,0x83,0x00,0x02,0x00,0xa0,0x10,
+0x21,0x10,0x00,0x00,0xff,0xff,0x62,0x30,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x25,0xb0,0x11,0x3c,0x18,0x00,0xb2,0xaf,
+0x4c,0x00,0x22,0x36,0x1c,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x44,0x90,
+0x02,0x80,0x03,0x3c,0x02,0x00,0x02,0x24,0xff,0x00,0x84,0x30,0x07,0x00,0x82,0x10,
+0x68,0x15,0x72,0x24,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x46,0x64,0x43,0x96,
+0x01,0x00,0x02,0x24,0xf7,0xff,0x62,0x14,0x21,0x20,0x00,0x00,0x1e,0x5a,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x24,0x1e,0x5a,0x00,0x0c,0x21,0x80,0x40,0x00,
+0x25,0x80,0x02,0x02,0x33,0x02,0x23,0x36,0x08,0x00,0x02,0x24,0xff,0xff,0x10,0x32,
+0x40,0x00,0x25,0x36,0x00,0x00,0x62,0xa0,0xea,0xff,0x00,0x16,0x00,0x00,0x00,0x00,
+0x00,0x00,0xa2,0x94,0x44,0x64,0x43,0x96,0xff,0xdf,0x42,0x30,0x00,0x20,0x44,0x34,
+0x01,0x00,0x63,0x24,0x44,0x64,0x43,0xa6,0x00,0x00,0xa2,0xa4,0x00,0x00,0xa4,0xa4,
+0x3b,0x5a,0x00,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xb8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,
+0x3c,0x00,0xb1,0xaf,0x38,0x00,0xb0,0xaf,0x40,0x00,0xbf,0xaf,0x68,0x15,0x50,0x24,
+0xf8,0x63,0x03,0x8e,0x02,0x80,0x11,0x3c,0x01,0x00,0x02,0x24,0x01,0x00,0x63,0x30,
+0x10,0x00,0xa4,0x27,0x64,0x79,0x25,0x26,0x07,0x00,0x62,0x10,0x0a,0x00,0x06,0x24,
+0x40,0x00,0xbf,0x8f,0x3c,0x00,0xb1,0x8f,0x38,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x48,0x00,0xbd,0x27,0x6c,0x45,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x21,0x28,0x00,0x00,0x64,0x79,0x24,0x26,0x58,0x45,0x00,0x0c,0x0a,0x00,0x06,0x24,
+0x28,0x00,0x03,0x24,0x05,0x00,0x02,0x24,0xfd,0x63,0x03,0xa2,0xfc,0x63,0x02,0xa2,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x54,0x4f,0x00,0x0c,
+0x48,0x00,0x04,0x24,0x21,0x80,0x40,0x00,0x10,0x00,0xa5,0x27,0xe4,0xff,0x40,0x10,
+0x0a,0x00,0x06,0x24,0x08,0x00,0x44,0x94,0x14,0x00,0x02,0x24,0x14,0x00,0x02,0xae,
+0x02,0x80,0x02,0x3c,0x28,0x00,0x03,0x24,0x25,0x20,0x82,0x00,0x0c,0x00,0x03,0xae,
+0x6c,0x45,0x00,0x0c,0x20,0x00,0x84,0x24,0x30,0x08,0x00,0x0c,0x21,0x20,0x00,0x02,
+0x6e,0x5a,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x18,0x03,0x42,0x34,0x60,0x6a,0x63,0x24,0x00,0x00,0x43,0xac,0x63,0x00,0x02,0x24,
+0xff,0xff,0x42,0x24,0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0x02,0x80,0x02,0x3c,
+0xe8,0x7d,0x45,0x94,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xeb,0x7d,0x66,0x90,
+0xf8,0x7d,0x47,0x90,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x03,0x7e,0x69,0x90,
+0x05,0x7e,0x4a,0x90,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x08,0x7e,0x6b,0x90,
+0x0a,0x7e,0x4c,0x90,0x07,0x00,0x03,0x24,0x02,0x80,0x02,0x3c,0x25,0xb0,0x04,0x3c,
+0xf5,0x7d,0x43,0xa0,0xb0,0x03,0x84,0x34,0x02,0x80,0x02,0x3c,0x02,0x80,0x18,0x3c,
+0xea,0x7d,0x08,0x93,0x00,0x00,0x85,0xac,0xf6,0x7d,0x40,0xa0,0x02,0x80,0x02,0x3c,
+0x00,0x00,0x86,0xac,0x02,0x80,0x0f,0x3c,0xf7,0x7d,0x40,0xa0,0x02,0x80,0x02,0x3c,
+0x00,0x00,0x87,0xac,0x68,0x15,0xee,0x25,0x18,0x7e,0x40,0xa0,0xfd,0xff,0x02,0x24,
+0xd5,0x4a,0xc2,0xa1,0x01,0x00,0x03,0x24,0x00,0x78,0x02,0x24,0xd4,0x4a,0xc3,0xa1,
+0xd8,0x4a,0xc2,0xa5,0xff,0x07,0x03,0x24,0x0f,0x00,0x0d,0x31,0x02,0x00,0x02,0x24,
+0xda,0x4a,0xc3,0xa5,0x00,0x00,0x88,0xac,0x00,0x00,0x89,0xac,0x00,0x00,0x8a,0xac,
+0x00,0x00,0x8b,0xac,0x00,0x00,0x8c,0xac,0x17,0x00,0xa2,0x11,0x02,0x80,0x02,0x3c,
+0xea,0x7d,0x02,0x93,0x01,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0x05,0x00,0x43,0x10,
+0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x2a,0x7e,0x40,0xa4,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x80,0x02,0x3c,0x68,0x15,0xe4,0x25,0x02,0xbc,0x42,0x34,
+0x68,0x4b,0x82,0xac,0x15,0x15,0x03,0x3c,0x02,0x02,0x02,0x3c,0x07,0x07,0x63,0x34,
+0x64,0x4b,0x82,0xac,0x02,0x80,0x02,0x3c,0x60,0x4b,0x83,0xac,0x2a,0x7e,0x40,0xa4,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xef,0x7d,0x44,0x90,0x06,0x00,0x03,0x24,
+0x15,0x00,0x83,0x10,0x0b,0x00,0x02,0x24,0x0a,0x00,0x82,0x10,0x00,0xe0,0x02,0x3c,
+0x68,0x15,0xe4,0x25,0x00,0xb2,0x42,0x34,0x00,0x1c,0x03,0x3c,0x68,0x4b,0x82,0xac,
+0x00,0x1c,0x63,0x34,0x00,0x04,0x02,0x24,0x60,0x4b,0x83,0xac,0xd2,0x5a,0x00,0x08,
+0x64,0x4b,0x82,0xac,0x00,0x80,0x02,0x3c,0x00,0xbc,0x42,0x34,0x15,0x15,0x03,0x3c,
+0x68,0x4b,0xc2,0xad,0x07,0x07,0x63,0x34,0x03,0x03,0x02,0x3c,0x60,0x4b,0xc3,0xad,
+0xd2,0x5a,0x00,0x08,0x64,0x4b,0xc2,0xad,0x00,0xc0,0x02,0x3c,0x00,0xb2,0x42,0x34,
+0x1c,0x1c,0x03,0x3c,0x68,0x4b,0xc2,0xad,0x07,0x07,0x63,0x34,0x00,0x04,0x02,0x24,
+0x60,0x4b,0xc3,0xad,0xd2,0x5a,0x00,0x08,0x64,0x4b,0xc2,0xad,0x25,0xb0,0x02,0x3c,
+0x4d,0x00,0x44,0x34,0xff,0x00,0x03,0x3c,0xec,0x02,0x42,0x34,0x00,0x00,0x43,0xac,
+0x00,0x00,0x80,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x44,0x6c,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x7f,0x00,0x02,0x3c,0xfd,0xbf,0x45,0x34,
+0x80,0x04,0x03,0x3c,0x25,0x28,0xa3,0x00,0x00,0x08,0x04,0x3c,0x02,0x80,0x02,0x3c,
+0x68,0x15,0x42,0x24,0x25,0x28,0xa4,0x00,0x41,0xb0,0x03,0x3c,0x00,0x00,0x65,0xac,
+0x04,0x4b,0x45,0xac,0xfc,0x4a,0x45,0xac,0x08,0x00,0x63,0x34,0x86,0x00,0x05,0x24,
+0x00,0x00,0x65,0xa4,0x08,0x4b,0x45,0xa4,0x00,0x4b,0x40,0xac,0x0a,0x4b,0x40,0xa4,
+0x0c,0x4b,0x45,0xa4,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x30,0x5b,0x00,0x08,0x00,0x00,0x00,0x00,
+0x42,0xb0,0x02,0x3c,0xa0,0xff,0x03,0x24,0x01,0x00,0x42,0x34,0xe8,0xff,0xbd,0x27,
+0x21,0x20,0x00,0x00,0x01,0x00,0x05,0x24,0x00,0x01,0x06,0x24,0x00,0x00,0x43,0xa0,
+0x10,0x00,0xbf,0xaf,0x51,0x0e,0x00,0x0c,0x00,0x00,0x00,0x00,0x10,0x00,0xbf,0x8f,
+0x03,0x00,0x04,0x24,0x01,0x00,0x05,0x24,0x40,0x1f,0x06,0x24,0x51,0x0e,0x00,0x08,
+0x18,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x02,0x80,0x10,0x3c,
+0x68,0x15,0x10,0x26,0x76,0x4b,0x00,0xa2,0x14,0x00,0xb1,0xaf,0x18,0x00,0xbf,0xaf,
+0x5e,0x5e,0x00,0x0c,0x21,0x88,0x00,0x02,0x48,0x01,0x02,0x24,0xec,0x63,0x02,0xae,
+0xe8,0x63,0x02,0xae,0x21,0x10,0x00,0x02,0x1f,0x00,0x03,0x24,0xff,0xff,0x63,0x24,
+0xd0,0x4c,0x40,0xa4,0xd2,0x4c,0x40,0xa4,0xd4,0x4c,0x40,0xa4,0xd6,0x4c,0x40,0xa4,
+0xd8,0x4c,0x40,0xa4,0xda,0x4c,0x40,0xa4,0xdc,0x4c,0x40,0xa4,0xde,0x4c,0x40,0xa4,
+0xe0,0x4c,0x40,0xa4,0xf5,0xff,0x61,0x04,0x24,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,
+0x10,0x00,0x03,0x24,0xb0,0x03,0x42,0x34,0x02,0x80,0x04,0x3c,0x8c,0x58,0x84,0x24,
+0x00,0x00,0x43,0xac,0x21,0x28,0x00,0x00,0x58,0x45,0x00,0x0c,0x04,0x00,0x06,0x24,
+0x2c,0x5f,0x00,0x0c,0x00,0x00,0x00,0x00,0xb4,0x5f,0x00,0x0c,0xec,0x65,0x20,0xae,
+0xea,0x60,0x00,0x0c,0x00,0x00,0x00,0x00,0x0a,0x59,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x02,0x80,0x03,0x3c,0xee,0x7d,0x64,0x90,0x92,0x00,0x02,0x24,0x03,0x00,0x82,0x10,
+0x00,0x00,0x00,0x00,0x49,0x61,0x00,0x0c,0x00,0x00,0x00,0x00,0x2f,0x61,0x00,0x0c,
+0x00,0x00,0x00,0x00,0xce,0x5f,0x00,0x0c,0x00,0x00,0x00,0x00,0xb7,0x61,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x44,0x64,0x20,0xa6,0x9d,0x61,0x00,0x0c,0x46,0x64,0x20,0xa6,
+0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x02,0x80,0x04,0x3c,
+0x02,0x80,0x05,0x3c,0x58,0x7b,0x82,0x24,0x60,0x7b,0xa3,0x24,0x20,0x00,0xbd,0x27,
+0x04,0x00,0x42,0xac,0x58,0x7b,0x82,0xac,0x60,0x7b,0xa3,0xac,0x08,0x00,0xe0,0x03,
+0x04,0x00,0x63,0xac,0xe8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x01,0x80,0x02,0x3c,
+0x25,0xb0,0x10,0x3c,0x18,0x03,0x03,0x36,0x2c,0x6e,0x42,0x24,0x00,0x00,0x62,0xac,
+0x14,0x00,0xbf,0xaf,0x98,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00,0x12,0x5c,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x24,0x02,0x80,0x02,0x3c,0x3a,0x5e,0x00,0x0c,
+0xe7,0x60,0x43,0xa0,0x09,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00,0x32,0x41,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x43,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00,0x44,0x00,0x03,0x36,
+0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x34,0x00,0x00,0x62,0xa4,
+0x11,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00,0x32,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x06,0x5e,0x00,0x0c,0x00,0x00,0x00,0x00,0xcb,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x00,0x80,0x04,0x3c,0x14,0x29,0x84,0x24,0x23,0x5e,0x00,0x0c,0x01,0x00,0x05,0x24,
+0x01,0x80,0x04,0x3c,0x0c,0x1d,0x84,0x24,0x23,0x5e,0x00,0x0c,0x02,0x00,0x05,0x24,
+0x34,0x4f,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x80,0x04,0x3c,0x88,0x3a,0x84,0x24,
+0x23,0x5e,0x00,0x0c,0x03,0x00,0x05,0x24,0x02,0x80,0x02,0x3c,0xf8,0x7d,0x43,0x90,
+0x43,0x00,0x04,0x36,0x29,0x00,0x60,0x10,0xd8,0x00,0x10,0x36,0x07,0x00,0x02,0x24,
+0x2b,0x00,0x62,0x10,0x25,0xb0,0x04,0x3c,0x10,0x02,0x86,0x34,0x43,0x00,0x85,0x34,
+0x03,0x00,0x02,0x24,0x10,0x00,0x03,0x24,0x00,0x00,0xa2,0xa0,0xd8,0x00,0x84,0x34,
+0x00,0x00,0xc3,0xa0,0x00,0x00,0x82,0x90,0x80,0xff,0x03,0x24,0x42,0xb0,0x05,0x3c,
+0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xa0,0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,
+0x00,0x00,0x82,0x94,0x00,0x00,0x00,0x00,0xc0,0x00,0x42,0x34,0x00,0x00,0x82,0xa4,
+0x00,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x34,0x00,0x00,0xa3,0xa0,
+0x18,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c,0x08,0x00,0x84,0x24,
+0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,0xfe,0x1f,0x00,0x0c,0x21,0x38,0x00,0x00,
+0x30,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,
+0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x00,0x00,0x80,0xa0,
+0x00,0x00,0x03,0x92,0x80,0xff,0x02,0x24,0x25,0x18,0x62,0x00,0x00,0x00,0x03,0xa2,
+0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x82,0x94,0x42,0xb0,0x05,0x3c,
+0xc0,0x00,0x42,0x34,0x00,0x00,0x82,0xa4,0x00,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,
+0x01,0x00,0x63,0x34,0x00,0x00,0xa3,0xa0,0x18,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x02,0x80,0x04,0x3c,0x08,0x00,0x84,0x24,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,
+0xfe,0x1f,0x00,0x0c,0x21,0x38,0x00,0x00,0x30,0x5b,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,
+0x18,0x00,0xbd,0x27,0x21,0x20,0x00,0x00,0x20,0xb0,0x06,0x3c,0xff,0xff,0x05,0x34,
+0x21,0x18,0x86,0x00,0x04,0x00,0x84,0x24,0x2a,0x10,0xa4,0x00,0x00,0x00,0x60,0xac,
+0xfb,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xb8,0xff,0xbd,0x27,0x25,0xb0,0x04,0x3c,0x44,0x00,0xbf,0xaf,0x40,0x00,0xbe,0xaf,
+0x3c,0x00,0xb7,0xaf,0x38,0x00,0xb6,0xaf,0x34,0x00,0xb5,0xaf,0x30,0x00,0xb4,0xaf,
+0x2c,0x00,0xb3,0xaf,0x28,0x00,0xb2,0xaf,0x24,0x00,0xb1,0xaf,0x20,0x00,0xb0,0xaf,
+0x0a,0x00,0x83,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x30,
+0x0c,0x00,0x40,0x10,0x4c,0x87,0x02,0x3c,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,
+0x10,0x00,0x42,0x30,0x66,0x01,0x40,0x10,0x4c,0x87,0x02,0x3c,0x54,0x00,0x83,0x34,
+0x50,0x00,0x82,0x34,0x00,0x00,0x45,0xac,0x00,0x00,0x65,0xa4,0x36,0x5c,0x00,0x08,
+0x02,0x80,0x03,0x3c,0x54,0x00,0x85,0x34,0x00,0xe0,0x42,0x34,0x50,0x00,0x84,0x34,
+0x12,0x01,0x03,0x24,0x00,0x00,0x82,0xac,0x00,0x00,0xa3,0xac,0x02,0x80,0x03,0x3c,
+0x68,0x15,0x62,0x24,0xd5,0x4a,0x43,0x90,0xda,0x4a,0x45,0x94,0x25,0xb0,0x1e,0x3c,
+0x1c,0x00,0xa3,0xa3,0x60,0x4b,0x43,0x8c,0x58,0x00,0xc6,0x37,0xff,0xff,0x04,0x24,
+0x10,0x00,0xa3,0xaf,0x64,0x4b,0x43,0x8c,0x5c,0x00,0xc7,0x37,0x60,0x00,0xc8,0x37,
+0x14,0x00,0xa3,0xaf,0x68,0x4b,0x42,0x8c,0x64,0x00,0xc9,0x37,0x8a,0x00,0xca,0x37,
+0x18,0x00,0xa2,0xaf,0x24,0x10,0x02,0x3c,0x21,0x28,0xa2,0x00,0x4c,0x81,0x02,0x3c,
+0x00,0xe0,0x42,0x34,0x00,0x00,0xc2,0xac,0x96,0x01,0x03,0x24,0x28,0x28,0x02,0x24,
+0x00,0x00,0xe3,0xac,0x89,0x00,0xcb,0x37,0x00,0x00,0x04,0xad,0x8c,0x00,0xcc,0x37,
+0x00,0x00,0x24,0xad,0x09,0x00,0x03,0x24,0x00,0x00,0x42,0xa5,0x10,0x10,0x02,0x24,
+0x00,0x00,0x63,0xa1,0x8e,0x00,0xcd,0x37,0x00,0x00,0x82,0xa5,0x0a,0x0a,0x03,0x24,
+0x13,0x00,0x02,0x24,0x90,0x00,0xce,0x37,0x00,0x00,0xa3,0xa5,0x00,0x00,0xc2,0xa1,
+0x25,0xb0,0x02,0x3c,0x40,0x00,0x03,0x24,0x91,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,
+0x25,0xb0,0x03,0x3c,0x3a,0x01,0x02,0x24,0x92,0x00,0x63,0x34,0x00,0x00,0x62,0xa4,
+0xb5,0x00,0xd1,0x37,0x21,0x00,0x03,0x24,0x00,0x00,0x23,0xa2,0x10,0x00,0xa2,0x8f,
+0xa0,0x00,0xd2,0x37,0xa4,0x00,0xd3,0x37,0x00,0x00,0x42,0xae,0x14,0x00,0xa3,0x8f,
+0xa8,0x00,0xd4,0x37,0xac,0x00,0xd5,0x37,0x00,0x00,0x63,0xae,0x18,0x00,0xa2,0x8f,
+0x25,0xb0,0x03,0x3c,0xb0,0x00,0x63,0x34,0x00,0x00,0x82,0xae,0x21,0x10,0x02,0x3c,
+0xff,0x77,0x42,0x34,0x00,0x00,0xa2,0xae,0x25,0xb0,0x02,0x3c,0xd8,0x00,0x42,0x34,
+0x00,0x00,0x65,0xac,0x00,0x00,0x40,0xa0,0x1c,0x00,0xa2,0x93,0x25,0xb0,0x03,0x3c,
+0xb4,0x00,0x63,0x34,0x00,0x00,0x62,0xa0,0x25,0xb0,0x03,0x3c,0x04,0x00,0x02,0x24,
+0xb6,0x00,0x63,0x34,0x00,0x00,0x62,0xa0,0x25,0xb0,0x03,0x3c,0x0f,0x00,0x02,0x24,
+0xba,0x00,0x63,0x34,0xb9,0x00,0xdf,0x37,0x00,0x00,0xe4,0xa3,0x00,0x00,0x62,0xa4,
+0x25,0xb0,0x02,0x3c,0x1a,0x01,0x42,0x34,0x16,0x01,0xd0,0x37,0x18,0x01,0xcf,0x37,
+0x00,0x00,0x00,0xa6,0x25,0xb0,0x03,0x3c,0x00,0x00,0xe0,0xa5,0x00,0x00,0x40,0xa4,
+0xff,0xff,0x02,0x3c,0xff,0x0f,0x42,0x34,0xdc,0x00,0x63,0x34,0x00,0x00,0x62,0xac,
+0x2f,0x00,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x32,0x32,0x63,0x34,0xd0,0x01,0x42,0x34,
+0x00,0x00,0x43,0xac,0x5e,0x00,0x02,0x3c,0x25,0xb0,0x03,0x3c,0x32,0x43,0x42,0x34,
+0xd4,0x01,0x63,0x34,0x00,0x00,0x62,0xac,0x08,0x00,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x30,0xa5,0x63,0x34,0xd8,0x01,0x42,0x34,0x00,0x00,0x43,0xac,0xdc,0x01,0xc4,0x37,
+0x02,0x80,0x03,0x3c,0x49,0xa5,0x02,0x34,0xee,0x7d,0x6d,0x90,0x00,0x00,0x82,0xac,
+0xc2,0x00,0x02,0x3c,0x1a,0x06,0x03,0x24,0x51,0x10,0x42,0x34,0xe0,0x01,0xc5,0x37,
+0xf4,0x01,0xc6,0x37,0xf8,0x01,0xc7,0x37,0x07,0x07,0x04,0x24,0x00,0x00,0xa3,0xa4,
+0x00,0x02,0xc8,0x37,0x00,0x00,0xc4,0xa4,0x26,0x00,0x03,0x24,0x00,0x00,0xe2,0xac,
+0x03,0x02,0xc9,0x37,0x04,0x00,0x02,0x24,0x00,0x00,0x03,0xa5,0x36,0x02,0xca,0x37,
+0x00,0x00,0x22,0xa1,0xc0,0x01,0x03,0x24,0x0c,0x00,0x02,0x24,0x34,0x02,0xcb,0x37,
+0x00,0x00,0x42,0xa1,0x37,0x02,0xcc,0x37,0x00,0x00,0x63,0xa5,0x03,0x00,0x02,0x24,
+0x22,0x00,0x03,0x24,0x00,0x00,0x82,0xa1,0xd6,0x00,0xa3,0x11,0x1b,0x1b,0x02,0x3c,
+0x13,0x13,0x02,0x3c,0x13,0x13,0x42,0x34,0x60,0x01,0xc3,0x37,0x64,0x01,0xc4,0x37,
+0x68,0x01,0xc5,0x37,0x7c,0x01,0xca,0x37,0x6c,0x01,0xc6,0x37,0x70,0x01,0xc7,0x37,
+0x74,0x01,0xc8,0x37,0x78,0x01,0xc9,0x37,0x00,0x00,0x62,0xac,0x00,0x00,0x82,0xac,
+0x02,0x80,0x03,0x3c,0x00,0x00,0xa2,0xac,0x00,0x00,0xc2,0xac,0x00,0x00,0xe2,0xac,
+0x00,0x00,0x02,0xad,0x00,0x00,0x22,0xad,0x00,0x00,0x42,0xad,0xee,0x7d,0x65,0x90,
+0x25,0xb0,0x0c,0x3c,0x01,0x70,0x03,0x3c,0x80,0x01,0x82,0x35,0x08,0x5f,0x63,0x34,
+0x22,0x00,0x04,0x24,0x00,0x00,0x43,0xac,0xb5,0x00,0xa4,0x10,0x0f,0x1f,0x02,0x3c,
+0x92,0x00,0x02,0x24,0xb2,0x00,0xa2,0x10,0x0f,0x1f,0x02,0x3c,0x0f,0x10,0x02,0x3c,
+0x00,0xf0,0x51,0x34,0xf7,0x01,0x92,0x35,0x15,0xf0,0x4d,0x34,0x77,0x00,0x0e,0x24,
+0x84,0x01,0x87,0x35,0x88,0x01,0x88,0x35,0x10,0xf0,0x44,0x34,0x8c,0x01,0x85,0x35,
+0x05,0xf0,0x42,0x34,0x00,0x00,0xed,0xac,0x90,0x01,0x83,0x35,0x00,0x00,0x04,0xad,
+0x94,0x01,0x86,0x35,0x00,0x00,0xa2,0xac,0xf5,0x0f,0x02,0x24,0x00,0x00,0x71,0xac,
+0x25,0xb0,0x05,0x3c,0x00,0x00,0xc2,0xac,0x98,0x01,0x89,0x35,0x9c,0x01,0x8a,0x35,
+0xf0,0x0f,0x03,0x24,0x0d,0x00,0x02,0x24,0x00,0x00,0x23,0xad,0xa0,0x01,0x8b,0x35,
+0x00,0x00,0x42,0xad,0xa7,0x01,0xb7,0x34,0xf6,0x01,0x8c,0x35,0xff,0xff,0x02,0x24,
+0x00,0x00,0x6d,0xad,0x00,0x00,0x8e,0xa1,0x00,0x00,0x4e,0xa2,0x00,0x00,0xe2,0xa2,
+0x25,0xb0,0x02,0x3c,0xa8,0x01,0xb6,0x34,0xff,0xff,0x09,0x24,0xac,0x01,0x42,0x34,
+0x00,0x00,0xc9,0xae,0x03,0x04,0x04,0x3c,0x00,0x00,0x49,0xac,0x07,0x08,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x01,0x02,0x84,0x34,0x05,0x06,0x63,0x34,0xb4,0x01,0xb1,0x34,
+0xb8,0x01,0xb2,0x34,0xbc,0x01,0xb3,0x34,0xb0,0x01,0x42,0x34,0x00,0x00,0x44,0xac,
+0x00,0x00,0x23,0xae,0x25,0xb0,0x02,0x3c,0x00,0x00,0x44,0xae,0x00,0x00,0x63,0xae,
+0x25,0xb0,0x03,0x3c,0x0c,0x00,0x06,0x24,0xc0,0x01,0xb4,0x34,0xc1,0x01,0xb5,0x34,
+0x0d,0x00,0x08,0x24,0xc2,0x01,0x63,0x34,0xc3,0x01,0x42,0x34,0x00,0x00,0x86,0xa2,
+0xc4,0x01,0xab,0x34,0x00,0x00,0xa6,0xa2,0xc5,0x01,0xac,0x34,0x00,0x00,0x66,0xa0,
+0x0e,0x00,0x07,0x24,0x00,0x00,0x48,0xa0,0xc6,0x01,0xaa,0x34,0xc7,0x01,0xad,0x34,
+0x0f,0x00,0x02,0x24,0x00,0x00,0x68,0xa1,0x00,0x00,0x87,0xa1,0x00,0x00,0x47,0xa1,
+0x00,0x00,0xa2,0xa1,0x57,0x01,0x02,0x3c,0x48,0x00,0xbf,0x34,0x46,0x00,0xae,0x34,
+0x0e,0xe2,0x42,0x34,0x00,0x00,0xc0,0xa5,0x4c,0x00,0xbe,0x34,0x00,0x00,0xe2,0xaf,
+0x4d,0x00,0xb9,0x34,0x80,0xff,0x02,0x24,0x00,0x00,0xc0,0xa3,0x00,0x00,0x22,0xa3,
+0x25,0xb0,0x02,0x3c,0xbc,0x00,0x03,0x24,0x40,0x00,0x42,0x34,0x00,0x00,0x43,0xa4,
+0x25,0xb0,0x03,0x3c,0x64,0x03,0xb8,0x34,0xfc,0x37,0x02,0x24,0x40,0x00,0x63,0x34,
+0x00,0x00,0x00,0xa3,0xd8,0x00,0xa7,0x34,0x00,0x00,0x62,0xa4,0x00,0x00,0xe3,0x90,
+0x80,0xff,0x02,0x24,0x2a,0xb0,0x04,0x3c,0x25,0x18,0x62,0x00,0x00,0x00,0xe3,0xa0,
+0x26,0xb0,0x06,0x3c,0x30,0x00,0x89,0x34,0x20,0x20,0x02,0x24,0x38,0x00,0x84,0x34,
+0x40,0x00,0x03,0x24,0x00,0x00,0x82,0xa4,0x79,0x00,0xc8,0x34,0x00,0x00,0x23,0xa1,
+0x94,0x00,0xaa,0x34,0x16,0x00,0x02,0x24,0x64,0x00,0x03,0x24,0x00,0x00,0x02,0xa1,
+0x7c,0x00,0xd2,0x34,0x00,0x00,0x43,0xa5,0x98,0x00,0xab,0x34,0x7a,0x00,0xc6,0x34,
+0x22,0x00,0x02,0x24,0x04,0x00,0x03,0x24,0x00,0x00,0x62,0xa5,0x9c,0x00,0xac,0x34,
+0x00,0x00,0xc3,0xa0,0x20,0x0c,0x02,0x24,0x0a,0x00,0x03,0x24,0x00,0x00,0x42,0xa6,
+0x9a,0x00,0xad,0x34,0x00,0x00,0x83,0xa1,0x96,0x00,0xae,0x34,0xff,0x03,0x02,0x24,
+0x02,0x00,0x03,0x24,0x00,0x00,0xa2,0xa5,0x00,0x00,0xc3,0xa5,0x25,0xb0,0x03,0x3c,
+0x20,0x00,0x02,0x24,0xb7,0x00,0x63,0x34,0x00,0x00,0x62,0xa0,0x89,0x00,0xb1,0x34,
+0x09,0x00,0x03,0x24,0x00,0x00,0x23,0xa2,0x44,0x00,0xa5,0x34,0x00,0x00,0xa3,0x94,
+0x02,0x80,0x02,0x3c,0x68,0x15,0x46,0x24,0xff,0xfd,0x02,0x24,0x24,0x18,0x62,0x00,
+0x00,0x00,0xa3,0xa4,0x00,0x00,0xa2,0x94,0xd5,0x4a,0xc4,0x90,0x04,0x02,0x03,0x24,
+0x00,0x02,0x42,0x34,0x00,0x00,0xa2,0xa4,0x29,0xb0,0x02,0x3c,0x40,0x00,0x42,0x34,
+0x00,0x00,0x43,0xa4,0x3a,0x0c,0x00,0x0c,0x00,0x00,0x00,0x00,0x44,0x00,0xbf,0x8f,
+0x40,0x00,0xbe,0x8f,0x3c,0x00,0xb7,0x8f,0x38,0x00,0xb6,0x8f,0x34,0x00,0xb5,0x8f,
+0x30,0x00,0xb4,0x8f,0x2c,0x00,0xb3,0x8f,0x28,0x00,0xb2,0x8f,0x24,0x00,0xb1,0x8f,
+0x20,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x48,0x00,0xbd,0x27,
+0x54,0x00,0x85,0x34,0x00,0xe0,0x42,0x34,0x50,0x00,0x84,0x34,0x12,0x01,0x03,0x24,
+0x00,0x00,0x82,0xac,0x00,0x00,0xa3,0xa4,0x36,0x5c,0x00,0x08,0x02,0x80,0x03,0x3c,
+0x00,0xf0,0x51,0x34,0xf7,0x01,0x92,0x35,0x15,0xf0,0x4d,0x34,0xea,0x5c,0x00,0x08,
+0xff,0xff,0x0e,0x24,0xc8,0x5c,0x00,0x08,0x1b,0x1b,0x42,0x34,0x25,0xb0,0x03,0x3c,
+0x25,0xb0,0x08,0x3c,0xfc,0x37,0x02,0x24,0x40,0x00,0x63,0x34,0x02,0x80,0x04,0x3c,
+0x00,0x00,0x62,0xa4,0x94,0x8d,0x84,0x24,0xff,0x00,0x07,0x24,0xb0,0x03,0x06,0x35,
+0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00,0xff,0x00,0x62,0x30,0x21,0x18,0x68,0x00,
+0x0a,0x00,0x47,0x10,0xff,0x00,0x65,0x30,0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x62,0xac,0x00,0x00,0xc3,0xac,0x04,0x00,0x82,0x8c,0x08,0x00,0x84,0x24,
+0x00,0x00,0xc2,0xac,0xf2,0xff,0xa7,0x14,0x00,0x00,0x00,0x00,0x25,0xb0,0x08,0x3c,
+0x02,0x80,0x02,0x3c,0x8c,0x87,0x44,0x24,0xff,0x00,0x07,0x24,0xb0,0x03,0x06,0x35,
+0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00,0xff,0x00,0x62,0x30,0x21,0x18,0x68,0x00,
+0x0a,0x00,0x47,0x10,0xff,0x00,0x65,0x30,0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x62,0xac,0x00,0x00,0xc3,0xac,0x04,0x00,0x82,0x8c,0x08,0x00,0x84,0x24,
+0x00,0x00,0xc2,0xac,0xf2,0xff,0xa7,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c,0x02,0x80,0x05,0x3c,0x04,0x78,0x42,0x24,
+0x02,0x80,0x03,0x3c,0x2c,0x7e,0xa2,0xac,0x00,0x80,0x02,0x3c,0xcc,0x7e,0x60,0xac,
+0x2c,0x7e,0xa4,0x24,0x02,0x80,0x03,0x3c,0xc8,0x06,0x42,0x24,0xd0,0x7e,0x60,0xa4,
+0x08,0x00,0x82,0xac,0x02,0x80,0x03,0x3c,0x00,0x80,0x02,0x3c,0xd2,0x7e,0x60,0xa4,
+0x02,0x80,0x06,0x3c,0xa4,0x0a,0x42,0x24,0x00,0x80,0x03,0x3c,0xd4,0x7e,0xc7,0x24,
+0x14,0x00,0x82,0xac,0x54,0x08,0x63,0x24,0x02,0x80,0x02,0x3c,0xd4,0x7e,0xc0,0xac,
+0x10,0x00,0x83,0xac,0x04,0x00,0xe0,0xac,0xdc,0x7e,0x40,0xa0,0x00,0x80,0x02,0x3c,
+0x1c,0x1c,0x42,0x24,0x3c,0x00,0x82,0xac,0x00,0x80,0x03,0x3c,0x00,0x80,0x02,0x3c,
+0x38,0x0d,0x63,0x24,0xc8,0x10,0x42,0x24,0x1c,0x00,0x83,0xac,0x20,0x00,0x82,0xac,
+0x00,0x80,0x03,0x3c,0x00,0x80,0x02,0x3c,0x54,0x14,0x63,0x24,0x38,0x18,0x42,0x24,
+0x24,0x00,0x83,0xac,0x28,0x00,0x82,0xac,0x00,0x80,0x03,0x3c,0x01,0x80,0x02,0x3c,
+0x10,0x22,0x63,0x24,0xd0,0x04,0x42,0x24,0x2c,0x00,0x83,0xac,0x30,0x00,0x82,0xac,
+0x00,0x80,0x03,0x3c,0x00,0x80,0x02,0x3c,0x78,0x1c,0x63,0x24,0x00,0x03,0x42,0x24,
+0x38,0x00,0x83,0xac,0x08,0x00,0xe0,0x03,0x4c,0x00,0x82,0xac,0x25,0xb0,0x02,0x3c,
+0x08,0x00,0x42,0x34,0x00,0x00,0x43,0x8c,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x02,0x80,0x0e,0x3c,0x02,0x80,0x08,0x3c,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,
+0xf8,0x03,0x4d,0x24,0x00,0x14,0x6c,0x24,0x01,0x00,0x07,0x24,0x00,0x00,0xcb,0x25,
+0xff,0xff,0x0a,0x24,0x00,0x04,0x09,0x25,0x80,0x1a,0x07,0x00,0x21,0x10,0x6b,0x00,
+0x00,0x00,0x42,0xac,0x90,0x00,0x4a,0xac,0x00,0x04,0x04,0x8d,0x01,0x00,0xe7,0x24,
+0x08,0x00,0x45,0x24,0x21,0x18,0x6d,0x00,0x05,0x00,0xe6,0x28,0x04,0x00,0x82,0xac,
+0x00,0x00,0x44,0xac,0x04,0x00,0x49,0xac,0x00,0x04,0x02,0xad,0x8c,0x00,0x40,0xac,
+0x6c,0x00,0xa3,0xac,0xf0,0xff,0xc0,0x14,0x68,0x00,0xac,0xac,0x08,0x00,0xe0,0x03,
+0x00,0x00,0xc9,0xad,0x05,0x00,0xa2,0x2c,0x13,0x00,0x40,0x10,0xff,0xff,0x07,0x24,
+0x02,0x80,0x02,0x3c,0x80,0x1a,0x05,0x00,0x00,0x00,0x42,0x24,0x0e,0x00,0xa0,0x10,
+0x21,0x30,0x62,0x00,0x90,0x00,0xc3,0x8c,0xff,0xff,0x02,0x24,0x0a,0x00,0x62,0x14,
+0x00,0x00,0x00,0x00,0x8c,0x00,0xc2,0x8c,0x00,0x00,0x00,0x00,0x06,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0x01,0x00,0x02,0x24,0x88,0x00,0xc4,0xac,0x8c,0x00,0xc2,0xac,
+0x90,0x00,0xc5,0xac,0x21,0x38,0xa0,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0xe0,0x00,
+0x25,0xb0,0x04,0x3c,0x01,0x80,0x02,0x3c,0x18,0x03,0x85,0x34,0xe8,0x78,0x42,0x24,
+0xe0,0xff,0xbd,0x27,0x00,0x00,0xa2,0xac,0x1b,0x00,0x86,0x34,0xdb,0xff,0x03,0x24,
+0x27,0x00,0x84,0x34,0x07,0x00,0x02,0x24,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,
+0x00,0x00,0x83,0xa0,0x18,0x00,0xbf,0xaf,0x00,0x00,0xc2,0xa0,0x01,0x00,0x11,0x24,
+0x21,0x80,0x00,0x00,0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x02,0x01,0x00,0x02,0x26,
+0xff,0x00,0x50,0x30,0x2b,0x18,0x30,0x02,0xfa,0xff,0x60,0x10,0x00,0x00,0x00,0x00,
+0x2a,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x02,0x80,0x02,0x3c,0x68,0x15,0x42,0x24,0x40,0x10,0x03,0x3c,0xff,0xff,0x44,0x30,
+0x25,0xc0,0x83,0x00,0xf4,0x64,0x58,0xac,0x40,0x00,0x18,0x27,0x00,0x65,0x58,0xac,
+0x40,0x00,0x18,0x27,0x0c,0x65,0x58,0xac,0x40,0x00,0x18,0x27,0x18,0x65,0x58,0xac,
+0x40,0x00,0x18,0x27,0xe0,0xff,0xbd,0x27,0x24,0x65,0x58,0xac,0x40,0x00,0x18,0x27,
+0x1c,0x00,0xb7,0xaf,0x18,0x00,0xb6,0xaf,0x14,0x00,0xb5,0xaf,0x10,0x00,0xb4,0xaf,
+0x0c,0x00,0xb3,0xaf,0x08,0x00,0xb2,0xaf,0x04,0x00,0xb1,0xaf,0x00,0x00,0xb0,0xaf,
+0x30,0x65,0x58,0xac,0x00,0x65,0x45,0x8c,0x0c,0x65,0x46,0x8c,0x18,0x65,0x47,0x8c,
+0x24,0x65,0x48,0x8c,0x30,0x65,0x49,0x8c,0x40,0x00,0x18,0x27,0x3c,0x65,0x58,0xac,
+0x21,0x50,0x00,0x03,0x25,0x20,0x83,0x00,0x40,0x00,0x18,0x27,0x20,0x10,0x03,0x3c,
+0xf0,0x64,0x44,0xac,0xfc,0x64,0x45,0xac,0x08,0x65,0x46,0xac,0x14,0x65,0x47,0xac,
+0x20,0x65,0x48,0xac,0x2c,0x65,0x49,0xac,0x25,0xb0,0x06,0x3c,0x88,0x64,0x43,0xac,
+0x84,0x64,0x43,0xac,0x94,0x64,0x43,0xac,0x90,0x64,0x43,0xac,0xa0,0x64,0x43,0xac,
+0x9c,0x64,0x43,0xac,0xac,0x64,0x43,0xac,0xa8,0x64,0x43,0xac,0x48,0x65,0x58,0xac,
+0x00,0x02,0x18,0x27,0x38,0x65,0x4a,0xac,0x60,0x65,0x58,0xac,0xb8,0x64,0x43,0xac,
+0xb4,0x64,0x43,0xac,0xc4,0x64,0x43,0xac,0xc0,0x64,0x43,0xac,0xd0,0x64,0x43,0xac,
+0xcc,0x64,0x43,0xac,0xac,0x00,0xc4,0x34,0xb0,0x00,0xc5,0x34,0x00,0x00,0x92,0x8c,
+0x48,0x65,0x50,0x8c,0x00,0x00,0xb3,0x8c,0x21,0x10,0x04,0x3c,0x23,0x10,0x09,0x3c,
+0x22,0x10,0x0c,0x3c,0x02,0x80,0x14,0x3c,0x02,0x80,0x15,0x3c,0x02,0x80,0x16,0x3c,
+0x02,0x80,0x17,0x3c,0x24,0x10,0x05,0x3c,0x21,0x88,0x00,0x03,0x68,0x7b,0x87,0x26,
+0x00,0x04,0x18,0x27,0x70,0x7b,0xa8,0x26,0x78,0x7b,0xca,0x26,0x80,0x7b,0xeb,0x26,
+0x00,0x04,0x2d,0x35,0x00,0x40,0x8e,0x34,0x00,0x80,0x8f,0x35,0x00,0x01,0xc6,0x34,
+0x44,0x65,0x50,0xac,0x5c,0x65,0x51,0xac,0xc4,0x65,0x4d,0xac,0x88,0x65,0x52,0xac,
+0x94,0x65,0x4e,0xac,0xb8,0x65,0x4f,0xac,0xac,0x65,0x53,0xac,0x00,0x00,0xc5,0xac,
+0xa8,0x65,0x45,0xac,0xc8,0x65,0x43,0xac,0xd4,0x65,0x58,0xac,0xdc,0x64,0x43,0xac,
+0xd8,0x64,0x43,0xac,0x66,0x65,0x40,0xa4,0x65,0x65,0x40,0xa0,0x64,0x65,0x40,0xa0,
+0xbc,0x65,0x49,0xac,0xc0,0x65,0x49,0xac,0x80,0x65,0x44,0xac,0x84,0x65,0x44,0xac,
+0x8c,0x65,0x44,0xac,0x90,0x65,0x44,0xac,0xb0,0x65,0x4c,0xac,0xb4,0x65,0x4c,0xac,
+0xa4,0x65,0x45,0xac,0xcc,0x65,0x43,0xac,0xd8,0x65,0x58,0xac,0x04,0x00,0x08,0xad,
+0x68,0x7b,0x87,0xae,0x04,0x00,0x4a,0xad,0x70,0x7b,0xa8,0xae,0x04,0x00,0x6b,0xad,
+0x78,0x7b,0xca,0xae,0x80,0x7b,0xeb,0xae,0x04,0x00,0xe7,0xac,0x02,0x80,0x02,0x3c,
+0x00,0x14,0x43,0x24,0x21,0x20,0xe0,0x00,0x03,0x00,0x06,0x24,0x21,0x10,0x80,0x00,
+0xff,0xff,0xc6,0x24,0x08,0x00,0x78,0xac,0x00,0x00,0x63,0xac,0x10,0x00,0x60,0xac,
+0x00,0x00,0x67,0xac,0x21,0x20,0x60,0x00,0x04,0x00,0x62,0xac,0x00,0x00,0x43,0xac,
+0x00,0x01,0x18,0x27,0xf5,0xff,0xc1,0x04,0x18,0x00,0x63,0x24,0x02,0x80,0x02,0x3c,
+0x70,0x7b,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x04,0x00,0x28,0x8d,
+0x60,0x14,0x4b,0x24,0x04,0x00,0xe4,0xac,0x00,0x14,0x6a,0x24,0x01,0x00,0x07,0x24,
+0x21,0x28,0x00,0x00,0x07,0x00,0x06,0x24,0x21,0x20,0xab,0x00,0x21,0x10,0xaa,0x00,
+0xff,0xff,0xc6,0x24,0x68,0x00,0x58,0xac,0x70,0x00,0x47,0xac,0x18,0x00,0xa5,0x24,
+0x00,0x00,0x89,0xac,0x04,0x00,0x88,0xac,0x00,0x00,0x04,0xad,0x00,0x01,0x18,0x27,
+0xf5,0xff,0xc1,0x04,0x21,0x40,0x80,0x00,0x02,0x80,0x02,0x3c,0x78,0x7b,0x4a,0x24,
+0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x04,0x00,0x45,0x8d,0x20,0x15,0x4b,0x24,
+0x04,0x00,0x24,0xad,0x02,0x00,0x07,0x24,0x00,0x14,0x69,0x24,0x21,0x20,0x00,0x00,
+0x01,0x00,0x06,0x24,0x21,0x40,0x8b,0x00,0x21,0x10,0x89,0x00,0xff,0xff,0xc6,0x24,
+0x28,0x01,0x58,0xac,0x30,0x01,0x47,0xac,0x18,0x00,0x84,0x24,0x00,0x00,0x0a,0xad,
+0x04,0x00,0x05,0xad,0x00,0x00,0xa8,0xac,0x00,0x02,0x18,0x27,0xf5,0xff,0xc1,0x04,
+0x21,0x28,0x00,0x01,0x02,0x80,0x05,0x3c,0x80,0x7b,0xa5,0x24,0x04,0x00,0xa6,0x8c,
+0x1c,0x00,0xb7,0x8f,0x18,0x00,0xb6,0x8f,0x14,0x00,0xb5,0x8f,0x10,0x00,0xb4,0x8f,
+0x0c,0x00,0xb3,0x8f,0x08,0x00,0xb2,0x8f,0x04,0x00,0xb1,0x8f,0x00,0x00,0xb0,0x8f,
+0x02,0x80,0x07,0x3c,0x02,0x80,0x03,0x3c,0x50,0x15,0xe4,0x24,0x00,0x14,0x63,0x24,
+0x03,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x58,0x01,0x78,0xac,0x04,0x00,0x48,0xad,
+0x04,0x00,0xa4,0xac,0x60,0x01,0x62,0xac,0x50,0x15,0xe5,0xac,0x04,0x00,0x86,0xac,
+0x08,0x00,0xe0,0x03,0x00,0x00,0xc4,0xac,0xc8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,
+0x02,0x80,0x03,0x3c,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x70,0x9e,0x74,0x24,
+0xe4,0x9e,0x53,0x24,0x02,0x80,0x03,0x3c,0xff,0xff,0x02,0x3c,0x2c,0x00,0xb5,0xaf,
+0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x30,0x00,0xbf,0xaf,
+0xff,0x1f,0x55,0x34,0x68,0x15,0x70,0x24,0x21,0x88,0x00,0x00,0x02,0x80,0x12,0x3c,
+0xaa,0x4f,0x00,0x0c,0x21,0x20,0x20,0x02,0x84,0x51,0x02,0x8e,0x6c,0x00,0x86,0x8e,
+0x50,0x9e,0x43,0x26,0x6c,0x00,0x64,0x8e,0x1b,0x00,0x65,0x90,0x24,0x10,0x55,0x00,
+0x00,0x20,0x42,0x34,0xff,0xf1,0x03,0x24,0x21,0x20,0x86,0x00,0x24,0x10,0x43,0x00,
+0x00,0x29,0x05,0x00,0x42,0x20,0x04,0x00,0x00,0x02,0x42,0x34,0x50,0x51,0x04,0xae,
+0x74,0x51,0x05,0xae,0x84,0x51,0x02,0xae,0x78,0x51,0x05,0xae,0x21,0x30,0x00,0x00,
+0x21,0x10,0x06,0x02,0x01,0x00,0xc6,0x24,0x1d,0x00,0xc3,0x28,0xa5,0x51,0x40,0xa0,
+0x88,0x51,0x40,0xa0,0xfa,0xff,0x60,0x14,0xc2,0x51,0x40,0xa0,0x01,0x00,0x31,0x26,
+0x20,0x00,0x22,0x2a,0xe0,0x51,0x00,0xae,0xe1,0xff,0x40,0x14,0x94,0x00,0x10,0x26,
+0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x68,0x15,0x4b,0x24,0x02,0x80,0x02,0x3c,
+0xe4,0x9e,0x6f,0x24,0x70,0x9e,0x4d,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,
+0x50,0x9e,0x6e,0x24,0x30,0x9e,0x4c,0x24,0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00,
+0x21,0x20,0x6d,0x00,0x21,0x10,0x6f,0x00,0x21,0x28,0x2e,0x02,0x21,0x30,0x2c,0x02,
+0x00,0x00,0x88,0x8c,0x00,0x00,0xa9,0x90,0x00,0x00,0xc7,0x90,0x00,0x00,0x4a,0x8c,
+0x21,0x10,0x2b,0x02,0x01,0x00,0x31,0x26,0x21,0x18,0x6b,0x00,0x1d,0x00,0x24,0x2a,
+0xec,0x44,0x68,0xac,0xca,0x44,0x47,0xa0,0x60,0x45,0x6a,0xac,0xef,0xff,0x80,0x14,
+0x90,0x44,0x49,0xa0,0x02,0x80,0x02,0x3c,0x68,0x15,0x4a,0x24,0x02,0x80,0x03,0x3c,
+0x02,0x80,0x02,0x3c,0x0c,0x9d,0x6b,0x24,0xac,0x9b,0x4c,0x24,0x21,0x88,0x00,0x00,
+0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00,0x21,0x40,0x2a,0x01,0x21,0x38,0x2b,0x01,
+0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90,0x00,0x00,0x45,0x90,0x21,0x18,0x06,0x01,
+0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28,0xc5,0x43,0x64,0xa0,0xf8,0xff,0x40,0x14,
+0x34,0x43,0x65,0xa0,0x21,0x10,0x2c,0x02,0x1d,0x00,0x44,0x90,0x00,0x00,0x45,0x90,
+0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x73,0x44,0x64,0xa0,
+0x56,0x44,0x65,0xa0,0xeb,0xff,0x40,0x14,0x05,0x00,0x29,0x25,0x52,0x00,0x02,0x24,
+0x10,0x00,0xa2,0xa3,0x41,0x00,0x03,0x24,0x4d,0x00,0x02,0x24,0x02,0x80,0x07,0x3c,
+0xdc,0xa4,0xe7,0x24,0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3,0xe8,0x03,0x03,0x24,
+0x01,0x00,0x02,0x24,0x00,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,
+0x60,0x3e,0xc6,0x24,0x0c,0x00,0xe3,0xac,0x14,0x00,0xe2,0xa0,0x88,0x0e,0x00,0x0c,
+0x13,0x00,0xa0,0xa3,0x30,0x00,0xbf,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,
+0x42,0x00,0x03,0x24,0x10,0x00,0xa3,0xa3,0x55,0x60,0x40,0xa0,0x4e,0x00,0x03,0x24,
+0x43,0x00,0x02,0x24,0x02,0x80,0x07,0x3c,0x14,0xa5,0xe7,0x24,0x11,0x00,0xa2,0xa3,
+0x12,0x00,0xa3,0xa3,0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24,0x00,0x80,0x06,0x3c,
+0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,0xec,0x4f,0xc6,0x24,0x0c,0x00,0xe2,0xac,
+0x14,0x00,0xe3,0xa0,0x18,0x00,0xbf,0xaf,0x88,0x0e,0x00,0x0c,0x13,0x00,0xa0,0xa3,
+0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0x48,0xfd,0xbd,0x27,0xb4,0x02,0xb3,0xaf,0x02,0x80,0x02,0x3c,0x02,0x80,0x13,0x3c,
+0xf0,0x9f,0x46,0x24,0x68,0x15,0x63,0x26,0xb0,0x02,0xb2,0xaf,0xac,0x02,0xb1,0xaf,
+0xa8,0x02,0xb0,0xaf,0x03,0x40,0x60,0xa0,0x21,0x38,0xa0,0x03,0x90,0x00,0xc8,0x24,
+0x00,0x00,0xc2,0x8c,0x04,0x00,0xc3,0x8c,0x08,0x00,0xc4,0x8c,0x0c,0x00,0xc5,0x8c,
+0x10,0x00,0xc6,0x24,0x00,0x00,0xe2,0xac,0x04,0x00,0xe3,0xac,0x08,0x00,0xe4,0xac,
+0x0c,0x00,0xe5,0xac,0xf6,0xff,0xc8,0x14,0x10,0x00,0xe7,0x24,0x00,0x00,0xc3,0x8c,
+0x02,0x80,0x02,0x3c,0x84,0xa0,0x58,0x24,0x00,0x00,0xe3,0xac,0x98,0x00,0xb9,0x27,
+0x00,0x01,0x12,0x27,0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x09,0x00,0x04,0x93,
+0x0d,0x00,0x05,0x93,0x00,0x00,0x11,0x93,0x02,0x00,0x0d,0x93,0x04,0x00,0x10,0x93,
+0x06,0x00,0x0c,0x93,0x08,0x00,0x0f,0x93,0x0a,0x00,0x07,0x93,0x0c,0x00,0x0e,0x93,
+0x0e,0x00,0x06,0x93,0x03,0x00,0x08,0x93,0x07,0x00,0x09,0x93,0x0b,0x00,0x0a,0x93,
+0x0f,0x00,0x0b,0x93,0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,0x22,0x04,0x00,
+0x00,0x2a,0x05,0x00,0x25,0x10,0x51,0x00,0x25,0x18,0x70,0x00,0x25,0x20,0x8f,0x00,
+0x25,0x28,0xae,0x00,0x00,0x6c,0x0d,0x00,0x00,0x64,0x0c,0x00,0x00,0x3c,0x07,0x00,
+0x00,0x34,0x06,0x00,0x25,0x68,0xa2,0x01,0x25,0x60,0x83,0x01,0x25,0x38,0xe4,0x00,
+0x25,0x30,0xc5,0x00,0x00,0x46,0x08,0x00,0x00,0x4e,0x09,0x00,0x00,0x56,0x0a,0x00,
+0x00,0x5e,0x0b,0x00,0x25,0x40,0x0d,0x01,0x25,0x48,0x2c,0x01,0x25,0x50,0x47,0x01,
+0x25,0x58,0x66,0x01,0x10,0x00,0x18,0x27,0x00,0x00,0x28,0xaf,0x04,0x00,0x29,0xaf,
+0x08,0x00,0x2a,0xaf,0x0c,0x00,0x2b,0xaf,0xd2,0xff,0x12,0x17,0x10,0x00,0x39,0x27,
+0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x00,0x00,0x09,0x93,0x02,0x00,0x04,0x93,
+0x04,0x00,0x08,0x93,0x06,0x00,0x05,0x93,0x07,0x00,0x06,0x93,0x03,0x00,0x07,0x93,
+0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x25,0x10,0x49,0x00,0x25,0x18,0x68,0x00,
+0x00,0x24,0x04,0x00,0x00,0x2c,0x05,0x00,0x25,0x20,0x82,0x00,0x25,0x28,0xa3,0x00,
+0x00,0x3e,0x07,0x00,0x00,0x36,0x06,0x00,0x02,0x80,0x02,0x3c,0x25,0x38,0xe4,0x00,
+0x25,0x30,0xc5,0x00,0x8c,0xa1,0x58,0x24,0x04,0x00,0x26,0xaf,0x00,0x00,0x27,0xaf,
+0x00,0x01,0x12,0x27,0xa0,0x01,0xb9,0x27,0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,
+0x09,0x00,0x04,0x93,0x0d,0x00,0x05,0x93,0x00,0x00,0x11,0x93,0x02,0x00,0x0d,0x93,
+0x04,0x00,0x10,0x93,0x06,0x00,0x0c,0x93,0x08,0x00,0x0f,0x93,0x0a,0x00,0x07,0x93,
+0x0c,0x00,0x0e,0x93,0x0e,0x00,0x06,0x93,0x03,0x00,0x08,0x93,0x07,0x00,0x09,0x93,
+0x0b,0x00,0x0a,0x93,0x0f,0x00,0x0b,0x93,0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,
+0x00,0x22,0x04,0x00,0x00,0x2a,0x05,0x00,0x25,0x10,0x51,0x00,0x25,0x18,0x70,0x00,
+0x25,0x20,0x8f,0x00,0x25,0x28,0xae,0x00,0x00,0x6c,0x0d,0x00,0x00,0x64,0x0c,0x00,
+0x00,0x3c,0x07,0x00,0x00,0x34,0x06,0x00,0x25,0x68,0xa2,0x01,0x25,0x60,0x83,0x01,
+0x25,0x38,0xe4,0x00,0x25,0x30,0xc5,0x00,0x00,0x46,0x08,0x00,0x00,0x4e,0x09,0x00,
+0x00,0x56,0x0a,0x00,0x00,0x5e,0x0b,0x00,0x25,0x40,0x0d,0x01,0x25,0x48,0x2c,0x01,
+0x25,0x50,0x47,0x01,0x25,0x58,0x66,0x01,0x10,0x00,0x18,0x27,0x00,0x00,0x28,0xaf,
+0x04,0x00,0x29,0xaf,0x08,0x00,0x2a,0xaf,0x0c,0x00,0x2b,0xaf,0xd2,0xff,0x12,0x17,
+0x10,0x00,0x39,0x27,0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x00,0x00,0x09,0x93,
+0x02,0x00,0x04,0x93,0x04,0x00,0x08,0x93,0x06,0x00,0x05,0x93,0x07,0x00,0x06,0x93,
+0x03,0x00,0x07,0x93,0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x25,0x10,0x49,0x00,
+0x25,0x18,0x68,0x00,0x00,0x24,0x04,0x00,0x00,0x2c,0x05,0x00,0x25,0x20,0x82,0x00,
+0x25,0x28,0xa3,0x00,0x00,0x3e,0x07,0x00,0x00,0x36,0x06,0x00,0x25,0x30,0xc5,0x00,
+0x25,0x38,0xe4,0x00,0x02,0x80,0x02,0x3c,0x04,0x00,0x26,0xaf,0x00,0x00,0x27,0xaf,
+0x68,0x15,0x46,0x24,0x21,0x50,0x00,0x00,0x80,0x20,0x0a,0x00,0x21,0x10,0x9d,0x00,
+0x00,0x00,0x45,0x8c,0x01,0x00,0x43,0x25,0xff,0x00,0x6a,0x30,0x21,0x20,0x86,0x00,
+0x25,0x00,0x42,0x2d,0xf8,0xff,0x40,0x14,0x18,0x40,0x85,0xac,0x02,0x80,0x02,0x3c,
+0x68,0x15,0x4b,0x24,0x21,0x50,0x00,0x00,0xc0,0x10,0x0a,0x00,0x21,0x48,0x5d,0x00,
+0x21,0x38,0x00,0x00,0x21,0x40,0x4b,0x00,0x21,0x10,0x27,0x01,0xa0,0x01,0x46,0x90,
+0x98,0x00,0x45,0x90,0x01,0x00,0xe4,0x24,0x21,0x18,0x07,0x01,0xff,0x00,0x87,0x30,
+0x08,0x00,0xe2,0x2c,0xb4,0x41,0x66,0xa0,0xf7,0xff,0x40,0x14,0xac,0x40,0x65,0xa0,
+0x01,0x00,0x42,0x25,0xff,0x00,0x4a,0x30,0x21,0x00,0x43,0x2d,0xef,0xff,0x60,0x14,
+0xc0,0x10,0x0a,0x00,0x25,0xb0,0x02,0x3c,0x0a,0x00,0x42,0x34,0x00,0x00,0x43,0x90,
+0x00,0x00,0x00,0x00,0x20,0x00,0x63,0x30,0x42,0x00,0x60,0x10,0x68,0x15,0x64,0x26,
+0x33,0x00,0x02,0x24,0xc1,0x42,0x62,0xa1,0x1c,0x00,0x03,0x24,0x0f,0x00,0x02,0x24,
+0xbc,0x42,0x63,0xa1,0xbd,0x42,0x62,0xa1,0x68,0x15,0x65,0x26,0x08,0x40,0xa4,0x8c,
+0xff,0x7f,0x08,0x3c,0xff,0xff,0x08,0x35,0xc0,0xff,0x02,0x24,0x24,0x20,0x88,0x00,
+0x24,0x20,0x82,0x00,0x0c,0x00,0x84,0x34,0xff,0xc0,0x02,0x24,0x24,0x20,0x82,0x00,
+0xc0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x00,0x18,0x84,0x34,0xbf,0xff,0x03,0x3c,
+0x24,0x20,0x82,0x00,0xff,0xff,0x63,0x34,0x7f,0xff,0x02,0x3c,0x24,0x20,0x83,0x00,
+0xff,0xff,0x42,0x34,0x24,0x20,0x82,0x00,0x0c,0x40,0xa6,0x8c,0x7f,0xff,0x03,0x24,
+0x40,0x40,0x84,0x34,0xff,0xff,0x02,0x3c,0x24,0x20,0x83,0x00,0xff,0x7f,0x42,0x34,
+0xff,0xbf,0x03,0x3c,0x10,0x40,0xa7,0x8c,0x24,0x20,0x82,0x00,0xff,0xff,0x63,0x34,
+0xff,0x9f,0x02,0x3c,0x24,0x30,0xc3,0x00,0xff,0xff,0x42,0x34,0xff,0x3f,0x03,0x3c,
+0x24,0x20,0x82,0x00,0xff,0xff,0x63,0x34,0x12,0x00,0x02,0x24,0xb4,0x02,0xb3,0x8f,
+0xb0,0x02,0xb2,0x8f,0xac,0x02,0xb1,0x8f,0xa8,0x02,0xb0,0x8f,0x24,0x38,0xe3,0x00,
+0xc7,0x42,0xa2,0xa0,0x1f,0x00,0x03,0x24,0x01,0x00,0x02,0x24,0x24,0x30,0xc8,0x00,
+0xbe,0x42,0xa3,0xa0,0xc0,0x42,0xa2,0xa0,0xff,0x00,0x03,0x24,0xff,0xff,0x02,0x24,
+0xb8,0x02,0xbd,0x27,0x08,0x40,0xa4,0xac,0x10,0x40,0xa7,0xac,0x0c,0x40,0xa6,0xac,
+0xc2,0x42,0xa2,0xa0,0xc4,0x42,0xa3,0xa4,0xbf,0x42,0xa0,0xa0,0x08,0x00,0xe0,0x03,
+0xc6,0x42,0xa0,0xa0,0x33,0x00,0x02,0x24,0xc1,0x42,0x82,0xa0,0x0d,0x00,0x03,0x24,
+0x03,0x00,0x02,0x24,0xbc,0x42,0x83,0xa0,0xa8,0x60,0x00,0x08,0xbd,0x42,0x82,0xa0,
+0x02,0x80,0x07,0x3c,0x68,0x15,0xe7,0x24,0xe0,0xff,0xbd,0x27,0x18,0x00,0xbf,0xaf,
+0xe6,0x42,0xe0,0xa0,0xe4,0x42,0xe8,0x8c,0xff,0xef,0x02,0x3c,0xff,0xff,0x42,0x34,
+0xff,0xbf,0x03,0x3c,0x00,0x40,0xe9,0x8c,0x24,0x40,0x02,0x01,0xff,0xff,0x63,0x34,
+0xff,0x7f,0x02,0x3c,0x24,0x40,0x03,0x01,0xff,0xff,0x42,0x34,0xf0,0xff,0x04,0x24,
+0x24,0x40,0x02,0x01,0xff,0xdf,0x02,0x3c,0x24,0x48,0x24,0x01,0xff,0xf0,0x03,0x24,
+0xff,0xff,0x42,0x34,0x24,0x48,0x23,0x01,0x24,0x40,0x02,0x01,0x20,0x00,0x03,0x24,
+0x0a,0x00,0x02,0x24,0xd2,0x42,0xe2,0xa0,0xd7,0x42,0xe3,0xa0,0x20,0x00,0x02,0x24,
+0x00,0x01,0x03,0x24,0xc8,0x42,0xe2,0xa4,0xca,0x42,0xe3,0xa4,0x00,0x02,0x02,0x24,
+0x49,0x00,0x03,0x24,0x02,0x80,0x0a,0x3c,0x00,0x40,0xe9,0xac,0xe4,0x42,0xe8,0xac,
+0xf8,0xa4,0x4a,0x25,0xff,0xff,0x0c,0x34,0x3e,0x00,0x0d,0x24,0x1c,0x00,0x0e,0x24,
+0x01,0x00,0x0b,0x24,0x11,0x00,0xa3,0xa3,0xcc,0x42,0xe2,0xa4,0xd0,0x07,0x03,0x24,
+0x44,0x00,0x02,0x24,0x00,0x80,0x06,0x3c,0x10,0x00,0xa2,0xa3,0x10,0x00,0xa5,0x27,
+0x47,0x00,0x02,0x24,0x21,0x20,0x40,0x01,0xa4,0x50,0xc6,0x24,0x04,0x40,0xec,0xac,
+0xd0,0x42,0xed,0xa0,0xd1,0x42,0xee,0xa0,0x02,0x40,0xeb,0xa0,0x0c,0x00,0x43,0xad,
+0x14,0x00,0x4b,0xa1,0xe8,0x63,0xec,0xac,0xce,0x42,0xed,0xa0,0xcf,0x42,0xee,0xa0,
+0xd6,0x42,0xe0,0xa0,0xd4,0x42,0xe0,0xa0,0x12,0x00,0xa2,0xa3,0x88,0x0e,0x00,0x0c,
+0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x50,0x00,0x03,0x24,
+0x10,0x00,0xa3,0xa3,0x36,0x62,0x40,0xa0,0x41,0x00,0x03,0x24,0x52,0x00,0x02,0x24,
+0x02,0x80,0x07,0x3c,0xa0,0xa5,0xe7,0x24,0x11,0x00,0xa2,0xa3,0x12,0x00,0xa3,0xa3,
+0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,
+0x21,0x20,0xe0,0x00,0x74,0x67,0xc6,0x24,0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0,
+0x18,0x00,0xbf,0xaf,0x88,0x0e,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xd8,0xff,0xbd,0x27,
+0x18,0x00,0xb0,0xaf,0x02,0x80,0x10,0x3c,0x68,0x15,0x10,0x26,0x20,0x00,0xbf,0xaf,
+0x1c,0x00,0xb1,0xaf,0x00,0x40,0x09,0x8e,0xff,0xff,0x02,0x24,0xff,0x00,0x4b,0x30,
+0x0f,0xff,0x02,0x24,0x24,0x48,0x22,0x01,0xff,0xff,0x02,0x3c,0xff,0x0f,0x42,0x34,
+0x24,0x48,0x22,0x01,0x01,0x00,0x07,0x3c,0x47,0x00,0x02,0x24,0x3b,0x00,0x03,0x24,
+0x02,0x80,0x08,0x3c,0x10,0x00,0xa2,0xa3,0x11,0x00,0xa3,0xa3,0xbc,0xa5,0x08,0x25,
+0x56,0x30,0xea,0x34,0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24,0xf4,0x98,0xe7,0x34,
+0x00,0x80,0x06,0x3c,0x04,0x43,0x0b,0xae,0x00,0x40,0x09,0xae,0x43,0x00,0x11,0x24,
+0x10,0x00,0xa5,0x27,0x0c,0x43,0x07,0xae,0x10,0x43,0x0a,0xae,0x0c,0x00,0x02,0xad,
+0x14,0x00,0x03,0xa1,0x08,0x43,0x00,0xae,0x14,0x43,0x00,0xae,0x18,0x43,0x00,0xae,
+0x21,0x20,0x00,0x01,0x3c,0x5c,0xc6,0x24,0x12,0x00,0xb1,0xa3,0x88,0x0e,0x00,0x0c,
+0x13,0x00,0xa0,0xa3,0x1e,0x00,0x02,0x24,0x21,0x43,0x02,0xa2,0x4a,0x00,0x03,0x24,
+0x45,0x00,0x02,0x24,0x1c,0x43,0x03,0xa2,0x1d,0x43,0x02,0xa2,0x23,0x00,0x03,0x24,
+0x3e,0x00,0x02,0x24,0x1e,0x43,0x11,0xa2,0x1f,0x43,0x02,0xa2,0x20,0x43,0x03,0xa2,
+0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x28,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x3b,0x00,0x02,0x24,0x43,0x00,0x03,0x24,
+0x10,0x00,0xa2,0xa3,0x11,0x00,0xa3,0xa3,0x36,0x00,0x02,0x24,0x02,0x80,0x03,0x3c,
+0x02,0x80,0x07,0x3c,0xd8,0xa5,0xe7,0x24,0x12,0x00,0xa2,0xa3,0x3b,0x58,0x60,0xa0,
+0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24,0x00,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,
+0x21,0x20,0xe0,0x00,0x60,0x61,0xc6,0x24,0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0,
+0x18,0x00,0xbf,0xaf,0x88,0x0e,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,
+0x02,0x80,0x02,0x3c,0x52,0x00,0x03,0x24,0x10,0x00,0xa3,0xa3,0xac,0x79,0x40,0xa4,
+0x54,0x00,0x03,0x24,0x53,0x00,0x02,0x24,0x02,0x80,0x07,0x3c,0x10,0xa6,0xe7,0x24,
+0x11,0x00,0xa2,0xa3,0x12,0x00,0xa3,0xa3,0xf4,0x01,0x02,0x24,0x01,0x00,0x03,0x24,
+0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,0xb8,0x68,0xc6,0x24,
+0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0,0x18,0x00,0xbf,0xaf,0x88,0x0e,0x00,0x0c,
+0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x02,0x80,0x04,0x3c,0xd8,0xff,0xbd,0x27,0x64,0x79,0x84,0x24,
+0x21,0x28,0x00,0x00,0x20,0x00,0xbf,0xaf,0x58,0x45,0x00,0x0c,0x0a,0x00,0x06,0x24,
+0x02,0x80,0x07,0x3c,0x68,0x15,0xe7,0x24,0xf8,0x63,0xe3,0x8c,0xfd,0xff,0x02,0x24,
+0x02,0x80,0x08,0x3c,0x24,0x18,0x62,0x00,0xfe,0xff,0x02,0x24,0x24,0x18,0x62,0x00,
+0x05,0x00,0x02,0x24,0xf8,0x63,0xe3,0xac,0xfc,0x63,0xe2,0xa0,0x28,0x00,0x03,0x24,
+0x46,0x00,0x02,0x24,0x10,0x00,0xa2,0xa3,0xfd,0x63,0xe3,0xa0,0x4b,0x00,0x02,0x24,
+0x42,0x00,0x03,0x24,0x2c,0xa6,0x08,0x25,0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3,
+0xd0,0x07,0x03,0x24,0x01,0x00,0x02,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,
+0x21,0x20,0x00,0x01,0x80,0x69,0xc6,0x24,0xfa,0x63,0xe0,0xa4,0x0c,0x00,0x03,0xad,
+0x14,0x00,0x02,0xa1,0x88,0x0e,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x20,0x00,0xbf,0x8f,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x78,0x0c,0x00,0x00,0x01,0x00,0x00,0x5e,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x01,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x02,0x5e,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x03,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x04,0x5d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x05,0x5b,0x78,0x0c,0x00,0x00,0x01,0x00,0x06,0x59,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x07,0x57,0x78,0x0c,0x00,0x00,0x01,0x00,0x08,0x55,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x09,0x53,0x78,0x0c,0x00,0x00,0x01,0x00,0x0a,0x51,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x0b,0x4f,0x78,0x0c,0x00,0x00,0x01,0x00,0x0c,0x4d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x0d,0x4b,0x78,0x0c,0x00,0x00,0x01,0x00,0x0e,0x49,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x0f,0x47,0x78,0x0c,0x00,0x00,0x01,0x00,0x10,0x45,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x11,0x43,0x78,0x0c,0x00,0x00,0x01,0x00,0x12,0x41,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x13,0x3f,0x78,0x0c,0x00,0x00,0x01,0x00,0x14,0x3d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x15,0x3b,0x78,0x0c,0x00,0x00,0x01,0x00,0x16,0x39,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x17,0x37,0x78,0x0c,0x00,0x00,0x01,0x00,0x18,0x35,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x19,0x33,0x78,0x0c,0x00,0x00,0x01,0x00,0x1a,0x31,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x1b,0x2f,0x78,0x0c,0x00,0x00,0x01,0x00,0x1c,0x2d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x1d,0x2b,0x78,0x0c,0x00,0x00,0x01,0x00,0x1e,0x29,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x1f,0x27,0x78,0x0c,0x00,0x00,0x01,0x00,0x20,0x25,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x21,0x23,0x78,0x0c,0x00,0x00,0x01,0x00,0x22,0x21,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x23,0x1f,0x78,0x0c,0x00,0x00,0x01,0x00,0x24,0x1d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x25,0x1b,0x78,0x0c,0x00,0x00,0x01,0x00,0x26,0x19,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x27,0x17,0x78,0x0c,0x00,0x00,0x01,0x00,0x28,0x15,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x29,0x13,0x78,0x0c,0x00,0x00,0x01,0x00,0x2a,0x11,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x2b,0x0f,0x78,0x0c,0x00,0x00,0x01,0x00,0x2c,0x0d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x2d,0x0b,0x78,0x0c,0x00,0x00,0x01,0x00,0x2e,0x09,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x2f,0x07,0x78,0x0c,0x00,0x00,0x01,0x00,0x30,0x05,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x31,0x03,0x78,0x0c,0x00,0x00,0x01,0x00,0x32,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x33,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x34,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x35,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x36,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x37,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x38,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x39,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3a,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x3b,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3c,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x3d,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3e,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x3f,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x40,0x5e,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x41,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x42,0x5e,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x43,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x44,0x5d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x45,0x5b,0x78,0x0c,0x00,0x00,0x01,0x00,0x46,0x59,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x47,0x57,0x78,0x0c,0x00,0x00,0x01,0x00,0x48,0x55,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x49,0x53,0x78,0x0c,0x00,0x00,0x01,0x00,0x4a,0x51,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x4b,0x4f,0x78,0x0c,0x00,0x00,0x01,0x00,0x4c,0x4d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x4d,0x4b,0x78,0x0c,0x00,0x00,0x01,0x00,0x4e,0x49,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x4f,0x47,0x78,0x0c,0x00,0x00,0x01,0x00,0x50,0x45,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x51,0x43,0x78,0x0c,0x00,0x00,0x01,0x00,0x52,0x41,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x53,0x3f,0x78,0x0c,0x00,0x00,0x01,0x00,0x54,0x3d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x55,0x3b,0x78,0x0c,0x00,0x00,0x01,0x00,0x56,0x39,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x57,0x37,0x78,0x0c,0x00,0x00,0x01,0x00,0x58,0x35,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x59,0x33,0x78,0x0c,0x00,0x00,0x01,0x00,0x5a,0x31,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x5b,0x2f,0x78,0x0c,0x00,0x00,0x01,0x00,0x5c,0x2d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x5d,0x2b,0x78,0x0c,0x00,0x00,0x01,0x00,0x5e,0x29,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x5f,0x27,0x78,0x0c,0x00,0x00,0x01,0x00,0x60,0x25,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x61,0x23,0x78,0x0c,0x00,0x00,0x01,0x00,0x62,0x21,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x63,0x1f,0x78,0x0c,0x00,0x00,0x01,0x00,0x64,0x1d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x65,0x1b,0x78,0x0c,0x00,0x00,0x01,0x00,0x66,0x19,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x67,0x17,0x78,0x0c,0x00,0x00,0x01,0x00,0x68,0x15,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x69,0x13,0x78,0x0c,0x00,0x00,0x01,0x00,0x6a,0x11,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x6b,0x0f,0x78,0x0c,0x00,0x00,0x01,0x00,0x6c,0x0d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x6d,0x0b,0x78,0x0c,0x00,0x00,0x01,0x00,0x6e,0x09,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x6f,0x07,0x78,0x0c,0x00,0x00,0x01,0x00,0x70,0x05,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x71,0x03,0x78,0x0c,0x00,0x00,0x01,0x00,0x72,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x73,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x74,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x75,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x76,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x77,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x78,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x79,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7a,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x7b,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7c,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x7d,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7e,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x7f,0x01,0x78,0x0c,0x00,0x00,0x1e,0x00,0x00,0x30,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x01,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x02,0x30,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x03,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x04,0x30,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x05,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x06,0x30,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x07,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x08,0x3e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x09,0x40,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0a,0x42,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x0b,0x44,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0c,0x46,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x0d,0x48,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0e,0x48,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x0f,0x4a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x10,0x4a,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x11,0x4c,0x78,0x0c,0x00,0x00,0x1e,0x00,0x12,0x4c,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x13,0x4e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x14,0x50,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x15,0x50,0x78,0x0c,0x00,0x00,0x1e,0x00,0x16,0x50,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x17,0x52,0x78,0x0c,0x00,0x00,0x1e,0x00,0x18,0x52,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x19,0x52,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1a,0x54,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x1b,0x54,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1c,0x54,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x1d,0x56,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1e,0x56,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x1f,0x56,0x78,0x0c,0x00,0x00,0x1e,0x00,0x20,0x56,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x21,0x58,0x78,0x0c,0x00,0x00,0x1e,0x00,0x22,0x58,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x23,0x58,0x78,0x0c,0x00,0x00,0x1e,0x00,0x24,0x58,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x25,0x5a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x26,0x5a,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x27,0x5a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x28,0x5c,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x29,0x5c,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2a,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x2b,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2c,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x2d,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2e,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x2f,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x30,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x31,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x32,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x33,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x34,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x35,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x36,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x37,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x38,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x39,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3a,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x3b,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3c,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x3d,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3e,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x3f,0x5e,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x08,0x00,0x00,
+0x00,0x00,0x04,0x03,0x04,0x08,0x00,0x00,0x03,0x00,0x00,0x00,0x08,0x08,0x00,0x00,
+0x00,0xfc,0x00,0x00,0x0c,0x08,0x00,0x00,0x0a,0x00,0x00,0x04,0x10,0x08,0x00,0x00,
+0xff,0x10,0x10,0x80,0x14,0x08,0x00,0x00,0x10,0x3d,0x0c,0x02,0x18,0x08,0x00,0x00,
+0xc5,0x03,0x00,0x00,0x1c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x00,
+0x04,0x00,0x00,0x00,0x24,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x28,0x08,0x00,0x00,
+0x04,0x00,0x00,0x00,0x2c,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x30,0x08,0x00,0x00,
+0x04,0x00,0x00,0x00,0x34,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x38,0x08,0x00,0x00,
+0x04,0x00,0x00,0x00,0x3c,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x40,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x44,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x4c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x54,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x08,0x00,0x00,
+0x65,0xa9,0x65,0xa9,0x5c,0x08,0x00,0x00,0x65,0xa9,0x65,0xa9,0x60,0x08,0x00,0x00,
+0x30,0x01,0x7f,0x0f,0x64,0x08,0x00,0x00,0x30,0x01,0x7f,0x0f,0x68,0x08,0x00,0x00,
+0x30,0x01,0x7f,0x0f,0x6c,0x08,0x00,0x00,0x30,0x01,0x7f,0x0f,0x70,0x08,0x00,0x00,
+0x00,0x03,0x00,0x03,0x74,0x08,0x00,0x00,0x00,0x03,0x00,0x03,0x78,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x7c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x94,0x08,0x00,0x00,0xfe,0xff,0xff,0xff,0x98,0x08,0x00,0x00,
+0x10,0x20,0x30,0x40,0x9c,0x08,0x00,0x00,0x50,0x60,0x70,0x00,0xb0,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0xe0,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xe4,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x0e,0x00,0x00,
+0x03,0x03,0x03,0x03,0x08,0x0e,0x00,0x00,0x03,0x03,0x00,0x00,0x0c,0x0e,0x00,0x00,
+0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x14,0x0e,0x00,0x00,
+0x03,0x03,0x03,0x03,0x18,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x1c,0x0e,0x00,0x00,
+0x03,0x03,0x03,0x03,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x09,0x00,0x00,
+0x23,0x00,0x00,0x00,0x08,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x09,0x00,0x00,
+0x33,0x13,0x32,0x03,0x08,0x0a,0x00,0x00,0x00,0x86,0x88,0x8f,0x2c,0x0a,0x00,0x00,
+0x00,0x00,0x92,0x00,0x00,0x0c,0x00,0x00,0x80,0x00,0x00,0x00,0x04,0x0c,0x00,0x00,
+0x33,0x54,0x00,0x00,0x08,0x0c,0x00,0x00,0xe4,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00,
+0x6c,0x6c,0x6c,0x6c,0x10,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x14,0x0c,0x00,0x00,
+0x00,0x01,0x00,0x40,0x18,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x1c,0x0c,0x00,0x00,
+0x00,0x01,0x00,0x40,0x20,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x24,0x0c,0x00,0x00,
+0x00,0x01,0x00,0x40,0x28,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x2c,0x0c,0x00,0x00,
+0x00,0x01,0x00,0x40,0x30,0x0c,0x00,0x00,0x44,0x6a,0xe9,0x8d,0x34,0x0c,0x00,0x00,
+0xcd,0x52,0x96,0x46,0x38,0x0c,0x00,0x00,0x90,0x5a,0x01,0x48,0x3c,0x0c,0x00,0x00,
+0x64,0x97,0x97,0x1a,0x40,0x0c,0x00,0x00,0x3f,0x42,0x7c,0x1f,0x44,0x0c,0x00,0x00,
+0xb7,0x00,0x01,0x00,0x48,0x0c,0x00,0x00,0x00,0x00,0x02,0xec,0x4c,0x0c,0x00,0x00,
+0x03,0x03,0xfc,0x00,0x50,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x54,0x0c,0x00,0x00,
+0x94,0x00,0x3c,0x43,0x58,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x5c,0x0c,0x00,0x00,
+0x94,0x00,0x3c,0x43,0x60,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x64,0x0c,0x00,0x00,
+0x94,0x00,0x3c,0x43,0x68,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x6c,0x0c,0x00,0x00,
+0x94,0x00,0x3c,0x43,0x70,0x0c,0x00,0x00,0x0d,0x00,0x5a,0x2c,0x74,0x0c,0x00,0x00,
+0x1b,0x15,0x86,0x01,0x78,0x0c,0x00,0x00,0x1f,0x00,0x00,0x00,0x7c,0x0c,0x00,0x00,
+0x12,0x16,0xb9,0x00,0x80,0x0c,0x00,0x00,0x80,0x00,0x00,0x20,0x84,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0x88,0x0c,0x00,0x00,0x80,0x00,0x00,0x20,0x8c,0x0c,0x00,0x00,
+0x00,0x00,0x20,0x08,0x90,0x0c,0x00,0x00,0x00,0x01,0x00,0x40,0x94,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0x98,0x0c,0x00,0x00,0x00,0x01,0x00,0x40,0x9c,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xa0,0x0c,0x00,0x00,0x92,0x24,0x49,0x00,0xa4,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xa8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xac,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xb0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xb4,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xb8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xbc,0x0c,0x00,0x00,
+0x92,0x24,0x49,0x00,0xc0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xc4,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xc8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xd0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xd4,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xd8,0x0c,0x00,0x00,0x27,0x24,0xb2,0x64,0xdc,0x0c,0x00,0x00,
+0x32,0x69,0x76,0x00,0xe0,0x0c,0x00,0x00,0x22,0x22,0x22,0x00,0xe4,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xe8,0x0c,0x00,0x00,0x02,0x43,0x64,0x07,0x00,0x0d,0x00,0x00,
+0x80,0x07,0x00,0x00,0x04,0x0d,0x00,0x00,0x03,0x04,0x00,0x00,0x08,0x0d,0x00,0x00,
+0x7f,0x90,0x00,0x00,0x0c,0x0d,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x0d,0x00,0x00,
+0x99,0x99,0x69,0xa0,0x14,0x0d,0x00,0x00,0x67,0x3c,0x99,0x99,0x18,0x0d,0x00,0x00,
+0x6b,0x5b,0x8f,0x6a,0x1c,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x24,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x2c,0x0d,0x00,0x00,0x75,0x19,0x97,0xcc,0x30,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x34,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x3c,0x0d,0x00,0x00,0x93,0x72,0x02,0x00,0x40,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x44,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x50,0x0d,0x00,0x00,0x0a,0x14,0x37,0x64,0x54,0x0d,0x00,0x00,
+0x02,0xbd,0x4d,0x02,0x58,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x5c,0x0d,0x00,0x00,
+0x64,0x20,0x03,0x30,0x60,0x0d,0x00,0x00,0x68,0xde,0x53,0x46,0x64,0x0d,0x00,0x00,
+0x3c,0x8a,0x51,0x00,0x68,0x0d,0x00,0x00,0x06,0x01,0x00,0x00,0xff,0x00,0x00,0x00,
+0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
+0x44,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x74,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x14,0x35,0x00,0x80,0x10,0x00,0x00,0x00,0x20,0x35,0x00,0x80,0x10,0x00,0x00,0x00,
+0xa0,0x08,0x01,0x80,0x10,0x00,0x00,0x00,0x2c,0x25,0x00,0x80,0x10,0x00,0x00,0x00,
+0x24,0x25,0x00,0x80,0x10,0x00,0x00,0x00,0x34,0x25,0x00,0x80,0x08,0x00,0x00,0x00,
+0x38,0x06,0x01,0x80,0x00,0xb7,0x00,0x00,0x01,0xe0,0x0e,0x00,0x02,0x4d,0x04,0x00,
+0x03,0x41,0x04,0x00,0x04,0xc3,0x08,0x00,0x05,0x72,0x0c,0x00,0x06,0xe6,0x00,0x00,
+0x07,0x2a,0x08,0x00,0x08,0x3f,0x00,0x00,0x09,0x35,0x03,0x00,0x0a,0xd4,0x09,0x00,
+0x0b,0xbb,0x07,0x00,0x0c,0x50,0x08,0x00,0x0d,0xdf,0x0c,0x00,0x0e,0x2b,0x00,0x00,
+0x0f,0x14,0x01,0x00,0x00,0xb7,0x01,0x00,0x01,0x01,0x00,0x00,0x02,0x00,0x04,0x00,
+0x01,0x02,0x00,0x00,0x02,0x01,0x04,0x00,0x01,0x03,0x00,0x00,0x02,0x02,0x04,0x00,
+0x01,0x04,0x00,0x00,0x02,0x03,0x04,0x00,0x01,0x05,0x00,0x00,0x02,0x04,0x04,0x00,
+0x01,0x06,0x00,0x00,0x02,0x05,0x04,0x00,0x01,0x07,0x00,0x00,0x02,0x08,0x04,0x00,
+0x01,0x08,0x00,0x00,0x02,0x09,0x04,0x00,0x01,0x09,0x00,0x00,0x02,0x0a,0x04,0x00,
+0x01,0x0a,0x00,0x00,0x02,0x0b,0x04,0x00,0x01,0x0b,0x00,0x00,0x02,0x02,0x05,0x00,
+0x01,0x0c,0x00,0x00,0x02,0x03,0x05,0x00,0x01,0x0d,0x00,0x00,0x02,0x04,0x05,0x00,
+0x01,0x0e,0x00,0x00,0x02,0x05,0x05,0x00,0x01,0x0f,0x00,0x00,0x02,0x40,0x05,0x00,
+0x01,0x10,0x00,0x00,0x02,0x41,0x05,0x00,0x01,0x11,0x00,0x00,0x02,0x42,0x05,0x00,
+0x01,0x12,0x00,0x00,0x02,0x43,0x05,0x00,0x01,0x13,0x00,0x00,0x02,0x44,0x05,0x00,
+0x01,0x14,0x00,0x00,0x02,0x45,0x05,0x00,0x01,0x15,0x00,0x00,0x02,0x80,0x05,0x00,
+0x01,0x16,0x00,0x00,0x02,0x81,0x05,0x00,0x01,0x17,0x00,0x00,0x02,0x82,0x05,0x00,
+0x01,0x18,0x00,0x00,0x02,0x83,0x05,0x00,0x01,0x19,0x00,0x00,0x02,0x84,0x05,0x00,
+0x01,0x1a,0x00,0x00,0x02,0x85,0x05,0x00,0x01,0x1b,0x00,0x00,0x02,0x88,0x05,0x00,
+0x01,0x1c,0x00,0x00,0x02,0x89,0x05,0x00,0x01,0x1d,0x00,0x00,0x02,0x8a,0x05,0x00,
+0x01,0x1e,0x00,0x00,0x02,0x8b,0x05,0x00,0x01,0x1f,0x00,0x00,0x02,0x43,0x06,0x00,
+0x01,0x20,0x00,0x00,0x02,0x44,0x06,0x00,0x01,0x21,0x00,0x00,0x02,0x45,0x06,0x00,
+0x01,0x22,0x00,0x00,0x02,0x80,0x06,0x00,0x01,0x23,0x00,0x00,0x02,0x81,0x06,0x00,
+0x01,0x24,0x00,0x00,0x02,0x82,0x06,0x00,0x01,0x25,0x00,0x00,0x02,0x83,0x06,0x00,
+0x01,0x26,0x00,0x00,0x02,0x84,0x06,0x00,0x01,0x27,0x00,0x00,0x02,0x85,0x06,0x00,
+0x01,0x28,0x00,0x00,0x02,0x88,0x06,0x00,0x01,0x29,0x00,0x00,0x02,0x89,0x06,0x00,
+0x01,0x2a,0x00,0x00,0x02,0x8a,0x06,0x00,0x01,0x2b,0x00,0x00,0x02,0x8b,0x06,0x00,
+0x01,0x2c,0x00,0x00,0x02,0x8c,0x06,0x00,0x01,0x2d,0x00,0x00,0x02,0x42,0x07,0x00,
+0x01,0x2e,0x00,0x00,0x02,0x43,0x07,0x00,0x01,0x2f,0x00,0x00,0x02,0x44,0x07,0x00,
+0x01,0x30,0x00,0x00,0x02,0x45,0x07,0x00,0x01,0x31,0x00,0x00,0x02,0x80,0x07,0x00,
+0x01,0x32,0x00,0x00,0x02,0x81,0x07,0x00,0x01,0x33,0x00,0x00,0x02,0x82,0x07,0x00,
+0x01,0x34,0x00,0x00,0x02,0x83,0x07,0x00,0x01,0x35,0x00,0x00,0x02,0x84,0x07,0x00,
+0x01,0x36,0x00,0x00,0x02,0x85,0x07,0x00,0x01,0x37,0x00,0x00,0x02,0x88,0x07,0x00,
+0x01,0x38,0x00,0x00,0x02,0x89,0x07,0x00,0x01,0x39,0x00,0x00,0x02,0x8a,0x07,0x00,
+0x01,0x3a,0x00,0x00,0x02,0x8b,0x07,0x00,0x01,0x3b,0x00,0x00,0x02,0x8c,0x07,0x00,
+0x01,0x3c,0x00,0x00,0x02,0x8d,0x07,0x00,0x01,0x3d,0x00,0x00,0x02,0x90,0x07,0x00,
+0x01,0x3e,0x00,0x00,0x02,0x91,0x07,0x00,0x01,0x3f,0x00,0x00,0x02,0x92,0x07,0x00,
+0x01,0x40,0x00,0x00,0x02,0x93,0x07,0x00,0x01,0x41,0x00,0x00,0x02,0x94,0x07,0x00,
+0x01,0x42,0x00,0x00,0x02,0x95,0x07,0x00,0x01,0x43,0x00,0x00,0x02,0x98,0x07,0x00,
+0x01,0x44,0x00,0x00,0x02,0x99,0x07,0x00,0x01,0x45,0x00,0x00,0x02,0x9a,0x07,0x00,
+0x01,0x46,0x00,0x00,0x02,0x9b,0x07,0x00,0x01,0x47,0x00,0x00,0x02,0x9c,0x07,0x00,
+0x01,0x48,0x00,0x00,0x02,0x9d,0x07,0x00,0x01,0x49,0x00,0x00,0x02,0xa0,0x07,0x00,
+0x01,0x4a,0x00,0x00,0x02,0xa1,0x07,0x00,0x01,0x4b,0x00,0x00,0x02,0xa2,0x07,0x00,
+0x01,0x4c,0x00,0x00,0x02,0xa3,0x07,0x00,0x01,0x4d,0x00,0x00,0x02,0xa4,0x07,0x00,
+0x01,0x4e,0x00,0x00,0x02,0xa5,0x07,0x00,0x01,0x4f,0x00,0x00,0x02,0xa8,0x07,0x00,
+0x01,0x50,0x00,0x00,0x02,0xa9,0x07,0x00,0x01,0x51,0x00,0x00,0x02,0xaa,0x03,0x00,
+0x01,0x52,0x00,0x00,0x02,0xab,0x03,0x00,0x01,0x53,0x00,0x00,0x02,0xac,0x03,0x00,
+0x01,0x54,0x00,0x00,0x02,0xad,0x03,0x00,0x01,0x55,0x00,0x00,0x02,0xb0,0x03,0x00,
+0x01,0x56,0x00,0x00,0x02,0xb1,0x03,0x00,0x01,0x57,0x00,0x00,0x02,0xb2,0x03,0x00,
+0x01,0x58,0x00,0x00,0x02,0xb3,0x03,0x00,0x01,0x59,0x00,0x00,0x02,0xb4,0x03,0x00,
+0x01,0x5a,0x00,0x00,0x02,0xb5,0x03,0x00,0x01,0x5b,0x00,0x00,0x02,0xb8,0x03,0x00,
+0x01,0x5c,0x00,0x00,0x02,0xb9,0x03,0x00,0x01,0x5d,0x00,0x00,0x02,0xba,0x03,0x00,
+0x01,0x5e,0x00,0x00,0x02,0xbb,0x03,0x00,0x01,0x5f,0x00,0x00,0x02,0xbb,0x03,0x00,
+0x03,0x80,0x00,0x00,0x05,0x04,0x00,0x00,0x00,0xb7,0x00,0x00,0xfe,0x00,0x00,0x00,
+0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x02,0x4d,0x0c,0x00,0xfe,0x00,0x00,0x00,
+0xfe,0x00,0x00,0x00,0x02,0x4d,0x04,0x00,0x00,0xbf,0x02,0x00,0xff,0xff,0xff,0x00,
+0xff,0xff,0xff,0x00,0x00,0xb7,0x00,0x00,0x01,0xe0,0x0e,0x00,0x02,0x4d,0x04,0x00,
+0x03,0x41,0x04,0x00,0x04,0xc3,0x08,0x00,0x05,0x72,0x0c,0x00,0x06,0xe6,0x00,0x00,
+0x07,0x2a,0x08,0x00,0x08,0x3f,0x00,0x00,0x09,0x35,0x03,0x00,0x0a,0xd4,0x09,0x00,
+0x0b,0xbb,0x07,0x00,0x0c,0x50,0x08,0x00,0x0d,0xdf,0x0c,0x00,0x0e,0x2b,0x00,0x00,
+0x0f,0x14,0x01,0x00,0x00,0xb7,0x01,0x00,0x01,0x01,0x00,0x00,0x02,0x00,0x04,0x00,
+0x01,0x02,0x00,0x00,0x02,0x01,0x04,0x00,0x01,0x03,0x00,0x00,0x02,0x02,0x04,0x00,
+0x01,0x04,0x00,0x00,0x02,0x03,0x04,0x00,0x01,0x05,0x00,0x00,0x02,0x04,0x04,0x00,
+0x01,0x06,0x00,0x00,0x02,0x05,0x04,0x00,0x01,0x07,0x00,0x00,0x02,0x08,0x04,0x00,
+0x01,0x08,0x00,0x00,0x02,0x09,0x04,0x00,0x01,0x09,0x00,0x00,0x02,0x0a,0x04,0x00,
+0x01,0x0a,0x00,0x00,0x02,0x0b,0x04,0x00,0x01,0x0b,0x00,0x00,0x02,0x02,0x05,0x00,
+0x01,0x0c,0x00,0x00,0x02,0x03,0x05,0x00,0x01,0x0d,0x00,0x00,0x02,0x04,0x05,0x00,
+0x01,0x0e,0x00,0x00,0x02,0x05,0x05,0x00,0x01,0x0f,0x00,0x00,0x02,0x40,0x05,0x00,
+0x01,0x10,0x00,0x00,0x02,0x41,0x05,0x00,0x01,0x11,0x00,0x00,0x02,0x42,0x05,0x00,
+0x01,0x12,0x00,0x00,0x02,0x43,0x05,0x00,0x01,0x13,0x00,0x00,0x02,0x44,0x05,0x00,
+0x01,0x14,0x00,0x00,0x02,0x45,0x05,0x00,0x01,0x15,0x00,0x00,0x02,0x80,0x05,0x00,
+0x01,0x16,0x00,0x00,0x02,0x81,0x05,0x00,0x01,0x17,0x00,0x00,0x02,0x82,0x05,0x00,
+0x01,0x18,0x00,0x00,0x02,0x83,0x05,0x00,0x01,0x19,0x00,0x00,0x02,0x84,0x05,0x00,
+0x01,0x1a,0x00,0x00,0x02,0x85,0x05,0x00,0x01,0x1b,0x00,0x00,0x02,0x88,0x05,0x00,
+0x01,0x1c,0x00,0x00,0x02,0x89,0x05,0x00,0x01,0x1d,0x00,0x00,0x02,0x8a,0x05,0x00,
+0x01,0x1e,0x00,0x00,0x02,0x8b,0x05,0x00,0x01,0x1f,0x00,0x00,0x02,0x43,0x06,0x00,
+0x01,0x20,0x00,0x00,0x02,0x44,0x06,0x00,0x01,0x21,0x00,0x00,0x02,0x45,0x06,0x00,
+0x01,0x22,0x00,0x00,0x02,0x80,0x06,0x00,0x01,0x23,0x00,0x00,0x02,0x81,0x06,0x00,
+0x01,0x24,0x00,0x00,0x02,0x82,0x06,0x00,0x01,0x25,0x00,0x00,0x02,0x83,0x06,0x00,
+0x01,0x26,0x00,0x00,0x02,0x84,0x06,0x00,0x01,0x27,0x00,0x00,0x02,0x85,0x06,0x00,
+0x01,0x28,0x00,0x00,0x02,0x88,0x06,0x00,0x01,0x29,0x00,0x00,0x02,0x89,0x06,0x00,
+0x01,0x2a,0x00,0x00,0x02,0x8a,0x06,0x00,0x01,0x2b,0x00,0x00,0x02,0x8b,0x06,0x00,
+0x01,0x2c,0x00,0x00,0x02,0x8c,0x06,0x00,0x01,0x2d,0x00,0x00,0x02,0x42,0x07,0x00,
+0x01,0x2e,0x00,0x00,0x02,0x43,0x07,0x00,0x01,0x2f,0x00,0x00,0x02,0x44,0x07,0x00,
+0x01,0x30,0x00,0x00,0x02,0x45,0x07,0x00,0x01,0x31,0x00,0x00,0x02,0x80,0x07,0x00,
+0x01,0x32,0x00,0x00,0x02,0x81,0x07,0x00,0x01,0x33,0x00,0x00,0x02,0x82,0x07,0x00,
+0x01,0x34,0x00,0x00,0x02,0x83,0x07,0x00,0x01,0x35,0x00,0x00,0x02,0x84,0x07,0x00,
+0x01,0x36,0x00,0x00,0x02,0x85,0x07,0x00,0x01,0x37,0x00,0x00,0x02,0x88,0x07,0x00,
+0x01,0x38,0x00,0x00,0x02,0x89,0x07,0x00,0x01,0x39,0x00,0x00,0x02,0x8a,0x07,0x00,
+0x01,0x3a,0x00,0x00,0x02,0x8b,0x07,0x00,0x01,0x3b,0x00,0x00,0x02,0x8c,0x07,0x00,
+0x01,0x3c,0x00,0x00,0x02,0x8d,0x07,0x00,0x01,0x3d,0x00,0x00,0x02,0x90,0x07,0x00,
+0x01,0x3e,0x00,0x00,0x02,0x91,0x07,0x00,0x01,0x3f,0x00,0x00,0x02,0x92,0x07,0x00,
+0x01,0x40,0x00,0x00,0x02,0x93,0x07,0x00,0x01,0x41,0x00,0x00,0x02,0x94,0x07,0x00,
+0x01,0x42,0x00,0x00,0x02,0x95,0x07,0x00,0x01,0x43,0x00,0x00,0x02,0x98,0x07,0x00,
+0x01,0x44,0x00,0x00,0x02,0x99,0x07,0x00,0x01,0x45,0x00,0x00,0x02,0x9a,0x07,0x00,
+0x01,0x46,0x00,0x00,0x02,0x9b,0x07,0x00,0x01,0x47,0x00,0x00,0x02,0x9c,0x07,0x00,
+0x01,0x48,0x00,0x00,0x02,0x9d,0x07,0x00,0x01,0x49,0x00,0x00,0x02,0xa0,0x07,0x00,
+0x01,0x4a,0x00,0x00,0x02,0xa1,0x07,0x00,0x01,0x4b,0x00,0x00,0x02,0xa2,0x07,0x00,
+0x01,0x4c,0x00,0x00,0x02,0xa3,0x07,0x00,0x01,0x4d,0x00,0x00,0x02,0xa4,0x07,0x00,
+0x01,0x4e,0x00,0x00,0x02,0xa5,0x07,0x00,0x01,0x4f,0x00,0x00,0x02,0xa8,0x07,0x00,
+0x01,0x50,0x00,0x00,0x02,0xa9,0x07,0x00,0x01,0x51,0x00,0x00,0x02,0xaa,0x03,0x00,
+0x01,0x52,0x00,0x00,0x02,0xab,0x03,0x00,0x01,0x53,0x00,0x00,0x02,0xac,0x03,0x00,
+0x01,0x54,0x00,0x00,0x02,0xad,0x03,0x00,0x01,0x55,0x00,0x00,0x02,0xb0,0x03,0x00,
+0x01,0x56,0x00,0x00,0x02,0xb1,0x03,0x00,0x01,0x57,0x00,0x00,0x02,0xb2,0x03,0x00,
+0x01,0x58,0x00,0x00,0x02,0xb3,0x03,0x00,0x01,0x59,0x00,0x00,0x02,0xb4,0x03,0x00,
+0x01,0x5a,0x00,0x00,0x02,0xb5,0x03,0x00,0x01,0x5b,0x00,0x00,0x02,0xb8,0x03,0x00,
+0x01,0x5c,0x00,0x00,0x02,0xb9,0x03,0x00,0x01,0x5d,0x00,0x00,0x02,0xba,0x03,0x00,
+0x01,0x5e,0x00,0x00,0x02,0xbb,0x03,0x00,0x01,0x5f,0x00,0x00,0x02,0xbb,0x03,0x00,
+0x03,0x80,0x00,0x00,0x05,0x04,0x00,0x00,0x00,0xb7,0x00,0x00,0xfe,0x00,0x00,0x00,
+0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x02,0x4d,0x0c,0x00,0xfe,0x00,0x00,0x00,
+0xfe,0x00,0x00,0x00,0x02,0x4d,0x04,0x00,0x00,0xbf,0x02,0x00,0xff,0xff,0xff,0x00,
+0xff,0xff,0xff,0x00,0x0a,0x00,0x00,0x00,0x4f,0x6e,0x41,0x73,0x73,0x6f,0x63,0x52,
+0x65,0x71,0x00,0x00,0x4f,0x6e,0x41,0x73,0x73,0x6f,0x63,0x52,0x73,0x70,0x00,0x00,
+0x4f,0x6e,0x52,0x65,0x41,0x73,0x73,0x6f,0x63,0x52,0x65,0x71,0x00,0x00,0x00,0x00,
+0x4f,0x6e,0x52,0x65,0x41,0x73,0x73,0x6f,0x63,0x52,0x73,0x70,0x00,0x00,0x00,0x00,
+0x4f,0x6e,0x50,0x72,0x6f,0x62,0x65,0x52,0x65,0x71,0x00,0x00,0x4f,0x6e,0x50,0x72,
+0x6f,0x62,0x65,0x52,0x73,0x70,0x00,0x00,0x44,0x6f,0x52,0x65,0x73,0x65,0x72,0x76,
+0x65,0x64,0x00,0x00,0x44,0x6f,0x52,0x65,0x73,0x65,0x72,0x76,0x65,0x64,0x00,0x00,
+0x4f,0x6e,0x42,0x65,0x61,0x63,0x6f,0x6e,0x00,0x00,0x00,0x00,0x4f,0x6e,0x41,0x54,
+0x49,0x4d,0x00,0x00,0x4f,0x6e,0x44,0x69,0x73,0x61,0x73,0x73,0x6f,0x63,0x00,0x00,
+0x4f,0x6e,0x41,0x75,0x74,0x68,0x00,0x00,0x4f,0x6e,0x44,0x65,0x41,0x75,0x74,0x68,
+0x00,0x00,0x00,0x00,0x4f,0x6e,0x41,0x63,0x74,0x69,0x6f,0x6e,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x20,0x99,0x01,0x80,0x2c,0x13,0x01,0x80,0x10,0x00,0x00,0x00,
+0x2c,0x99,0x01,0x80,0x34,0x13,0x01,0x80,0x20,0x00,0x00,0x00,0x38,0x99,0x01,0x80,
+0x2c,0x13,0x01,0x80,0x30,0x00,0x00,0x00,0x48,0x99,0x01,0x80,0x34,0x13,0x01,0x80,
+0x40,0x00,0x00,0x00,0x58,0x99,0x01,0x80,0x3c,0x13,0x01,0x80,0x50,0x00,0x00,0x00,
+0x64,0x99,0x01,0x80,0x44,0x13,0x01,0x80,0x00,0x00,0x00,0x00,0x70,0x99,0x01,0x80,
+0xac,0x13,0x01,0x80,0x00,0x00,0x00,0x00,0x7c,0x99,0x01,0x80,0xac,0x13,0x01,0x80,
+0x80,0x00,0x00,0x00,0x88,0x99,0x01,0x80,0x4c,0x13,0x01,0x80,0x90,0x00,0x00,0x00,
+0x94,0x99,0x01,0x80,0x54,0x13,0x01,0x80,0xa0,0x00,0x00,0x00,0x9c,0x99,0x01,0x80,
+0x5c,0x13,0x01,0x80,0xb0,0x00,0x00,0x00,0xa8,0x99,0x01,0x80,0x94,0x13,0x01,0x80,
+0xc0,0x00,0x00,0x00,0xb0,0x99,0x01,0x80,0x9c,0x13,0x01,0x80,0xd0,0x00,0x00,0x00,
+0xbc,0x99,0x01,0x80,0xa4,0x13,0x01,0x80,0x00,0x00,0x00,0x00,0x74,0x9a,0x01,0x80,
+0x74,0x9a,0x01,0x80,0x31,0x10,0x10,0x00,0x00,0x30,0x00,0x00,0x31,0x20,0x10,0x00,
+0x00,0x30,0x00,0x00,0x31,0x28,0x10,0x00,0x00,0x30,0x00,0x00,0x31,0x2c,0x10,0x10,
+0x00,0x30,0x00,0x00,0x31,0x2f,0x10,0x10,0x00,0x30,0x00,0x00,0x31,0x30,0x18,0x00,
+0x00,0x30,0x00,0x00,0x31,0x30,0x20,0x10,0x00,0x30,0x00,0x00,0x22,0x20,0x18,0x08,
+0x00,0x20,0x00,0x00,0x22,0x21,0x14,0x08,0x00,0x20,0x00,0x00,0x22,0x21,0x1c,0x08,
+0x00,0x20,0x00,0x00,0x22,0x21,0x20,0x08,0x00,0x20,0x00,0x00,0x22,0x21,0x20,0x10,
+0x00,0x20,0x00,0x00,0x22,0x21,0x20,0x18,0x00,0x20,0x00,0x00,0x1a,0x19,0x18,0x10,
+0x00,0x18,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x10,0x00,0x00,0x0a,0x09,0x08,0x00,
+0x00,0x08,0x00,0x00,0x0a,0x09,0x08,0x02,0x00,0x08,0x00,0x00,0x0a,0x09,0x08,0x04,
+0x00,0x08,0x00,0x00,0x0a,0x09,0x08,0x06,0x00,0x08,0x00,0x00,0x08,0x07,0x06,0x04,
+0x00,0x06,0x00,0x00,0x06,0x05,0x04,0x02,0x00,0x04,0x00,0x00,0x06,0x05,0x04,0x03,
+0x00,0x04,0x00,0x00,0x05,0x04,0x03,0x02,0x00,0x03,0x00,0x00,0x09,0x08,0x07,0x06,
+0x07,0x06,0x06,0x05,0x05,0x04,0x04,0x03,0x06,0x05,0x05,0x04,0x04,0x03,0x03,0x03,
+0x05,0x04,0x04,0x03,0x03,0x02,0x02,0x02,0x00,0x09,0x08,0x07,0x06,0x07,0x06,0x06,
+0x05,0x05,0x04,0x04,0x03,0x05,0x04,0x04,0x03,0x03,0x02,0x02,0x02,0x04,0x03,0x03,
+0x02,0x02,0x01,0x01,0x01,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x10,0x10,0x20,0x08,0x08,0x08,0x08,0x20,0x20,0x20,0x20,0x08,0x08,0x08,0x08,
+0x08,0x20,0x20,0x20,0x30,0x08,0x08,0x08,0x08,0x18,0x18,0x18,0x18,0x18,0x20,0x30,
+0x30,0x10,0x20,0x20,0x20,0x20,0x20,0x30,0x30,0x08,0x10,0x20,0x30,0x30,0x30,0x30,
+0x30,0x30,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,
+0x08,0x08,0x08,0x08,0x08,0x20,0x20,0x20,0x08,0x08,0x08,0x08,0x08,0x20,0x20,0x20,
+0x20,0x08,0x08,0x08,0x08,0x18,0x18,0x18,0x18,0x18,0x20,0x30,0x30,0x10,0x20,0x20,
+0x20,0x20,0x20,0x30,0x30,0x08,0x10,0x20,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,
+0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,
+0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,
+0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,
+0x08,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x0a,0x09,0x08,0x00,
+0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,
+0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x1c,0x08,0x00,0x22,
+0x20,0x18,0x08,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,
+0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20,
+0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x22,0x21,0x1c,0x08,0x00,0x31,0x30,0x18,0x00,
+0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,
+0x0a,0x09,0x08,0x04,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,
+0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x22,0x21,
+0x20,0x08,0x00,0x31,0x2c,0x10,0x10,0x00,0x31,0x28,0x10,0x00,0x00,0x12,0x11,0x10,
+0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x08,
+0x00,0x22,0x21,0x14,0x08,0x00,0x22,0x20,0x18,0x08,0x00,0x31,0x30,0x20,0x10,0x00,
+0x31,0x2c,0x10,0x10,0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22,
+0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x31,0x30,0x20,0x10,0x00,0x31,0x2f,
+0x10,0x10,0x00,0x31,0x2f,0x10,0x10,0x00,0x31,0x10,0x10,0x00,0x00,0x31,0x2c,0x10,
+0x10,0x00,0x00,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,
+0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,
+0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,
+0x00,0x12,0x11,0x10,0x08,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,
+0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,
+0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,
+0x1c,0x08,0x00,0x22,0x21,0x14,0x08,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,
+0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x00,
+0x00,0x22,0x21,0x20,0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x22,0x21,0x14,0x08,0x00,
+0x22,0x21,0x14,0x08,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,
+0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,
+0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,
+0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x31,0x2c,0x10,0x10,0x00,0x31,0x28,0x10,0x00,
+0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,
+0x22,0x21,0x20,0x08,0x00,0x22,0x21,0x14,0x08,0x00,0x22,0x20,0x18,0x08,0x00,0x31,
+0x30,0x20,0x10,0x00,0x31,0x2c,0x10,0x10,0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,
+0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x31,0x30,0x20,
+0x10,0x00,0x31,0x2f,0x10,0x10,0x00,0x31,0x2f,0x10,0x10,0x00,0x31,0x10,0x10,0x00,
+0x00,0x31,0x2c,0x10,0x10,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x02,0x04,0x08,0x0c,
+0x10,0x18,0x20,0x30,0x02,0x04,0x08,0x0c,0x10,0x18,0x20,0x30,0x06,0x0c,0x10,0x18,
+0x24,0x30,0x3c,0x48,0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x25,0x27,0x2c,0x19,0x1b,0x1e,0x20,0x23,0x29,0x2a,0x2b,0x00,0x00,0x00,0x00,
+0x25,0x29,0x2b,0x2e,0x2e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,
+0x08,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x24,0x00,0x00,0x00,
+0x30,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x90,0x00,0x00,0x00,
+0xc0,0x00,0x00,0x00,0xd8,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x78,0x00,0x00,0x00,
+0xa0,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x90,0x01,0x00,0x00,
+0xe0,0x01,0x00,0x00,0x30,0x02,0x00,0x00,0x2c,0x01,0x00,0x00,0x40,0x01,0x00,0x00,
+0xe0,0x01,0x00,0x00,0xd0,0x02,0x00,0x00,0x80,0x0c,0x00,0x00,0x80,0x0c,0x00,0x00,
+0x80,0x0c,0x00,0x00,0xa0,0x0f,0x00,0x00,0xa0,0x0f,0x00,0x00,0x02,0x00,0x00,0x00,
+0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,
+0x12,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
+0x48,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x28,0x00,0x00,0x00,
+0x3c,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
+0xc8,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x64,0x00,0x00,0x00,
+0xa0,0x00,0x00,0x00,0xf0,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x40,0x06,0x00,0x00,
+0x40,0x06,0x00,0x00,0x40,0x06,0x00,0x00,0xd0,0x07,0x00,0x00,0xd0,0x07,0x00,0x00,
+0x2c,0x05,0x00,0x80,0x20,0x05,0x00,0x80,0x14,0x05,0x00,0x80,0x08,0x05,0x00,0x80,
+0xfc,0x04,0x00,0x80,0xf0,0x04,0x00,0x80,0xe4,0x04,0x00,0x80,0xd8,0x04,0x00,0x80,
+0xcc,0x04,0x00,0x80,0xc0,0x04,0x00,0x80,0x78,0x04,0x00,0x80,0x70,0x3b,0x01,0x80,
+0x48,0x3b,0x01,0x80,0x24,0x3b,0x01,0x80,0x14,0x3c,0x01,0x80,0xf0,0x3b,0x01,0x80,
+0xcc,0x3b,0x01,0x80,0xa8,0x3b,0x01,0x80,0x30,0x41,0x00,0x80,0x3c,0x41,0x00,0x80,
+0x48,0x41,0x00,0x80,0x54,0x41,0x00,0x80,0x30,0x41,0x00,0x80,0x30,0x41,0x00,0x80,
+0x30,0x41,0x00,0x80,0x30,0x41,0x00,0x80,0x60,0x41,0x00,0x80,0x6c,0x41,0x00,0x80,
+0x78,0x41,0x00,0x80,0x84,0x41,0x00,0x80,0x68,0x15,0x02,0x80,0x68,0x15,0x02,0x80,
+0x84,0x0e,0x25,0xb0,0x88,0x0e,0x25,0xb0,0x8c,0x0e,0x25,0xb0,0xd0,0x0e,0x25,0xb0,
+0xd8,0x0e,0x25,0xb0,0x20,0x08,0x25,0xb0,0xfe,0x01,0x80,0x7f,0xe2,0x01,0x80,0x78,
+0xc7,0x01,0xc0,0x71,0xae,0x01,0x80,0x6b,0x95,0x01,0x40,0x65,0x7f,0x01,0xc0,0x5f,
+0x69,0x01,0x40,0x5a,0x55,0x01,0x40,0x55,0x42,0x01,0x80,0x50,0x30,0x01,0x00,0x4c,
+0x1f,0x01,0xc0,0x47,0x0f,0x01,0xc0,0x43,0x00,0x01,0x00,0x40,0xf2,0x00,0x80,0x3c,
+0xe4,0x00,0x00,0x39,0xd7,0x00,0xc0,0x35,0xcb,0x00,0xc0,0x32,0xc0,0x00,0x00,0x30,
+0xb5,0x00,0x40,0x2d,0xab,0x00,0xc0,0x2a,0xa2,0x00,0x80,0x28,0x98,0x00,0x00,0x26,
+0x90,0x00,0x00,0x24,0x88,0x00,0x00,0x22,0x80,0x00,0x00,0x20,0x79,0x00,0x40,0x1e,
+0x72,0x00,0x80,0x1c,0x6c,0x00,0x00,0x1b,0x66,0x00,0x80,0x19,0x60,0x00,0x00,0x18,
+0x5b,0x00,0xc0,0x16,0x56,0x00,0x80,0x15,0x51,0x00,0x40,0x14,0x4c,0x00,0x00,0x13,
+0x48,0x00,0x00,0x12,0x44,0x00,0x00,0x11,0x40,0x00,0x00,0x10,0x36,0x35,0x2e,0x25,
+0x1c,0x12,0x09,0x04,0x33,0x32,0x2b,0x23,0x1a,0x11,0x08,0x04,0x30,0x2f,0x29,0x21,
+0x19,0x10,0x08,0x03,0x2d,0x2d,0x27,0x1f,0x18,0x0f,0x08,0x03,0x2b,0x2a,0x25,0x1e,
+0x16,0x0e,0x07,0x03,0x28,0x28,0x22,0x1c,0x15,0x0d,0x07,0x03,0x26,0x25,0x21,0x1b,
+0x14,0x0d,0x06,0x03,0x24,0x23,0x1f,0x19,0x13,0x0c,0x06,0x03,0x22,0x21,0x1d,0x18,
+0x11,0x0b,0x06,0x02,0x20,0x20,0x1b,0x16,0x11,0x08,0x05,0x02,0x1f,0x1e,0x1a,0x15,
+0x10,0x0a,0x05,0x02,0x1d,0x1c,0x18,0x14,0x0f,0x0a,0x05,0x02,0x1b,0x1a,0x17,0x13,
+0x0e,0x09,0x04,0x02,0x1a,0x19,0x16,0x12,0x0d,0x09,0x04,0x02,0x18,0x17,0x15,0x11,
+0x0c,0x08,0x04,0x02,0x17,0x16,0x13,0x10,0x0c,0x08,0x04,0x02,0x16,0x15,0x12,0x0f,
+0x0b,0x07,0x04,0x01,0x14,0x14,0x11,0x0e,0x0b,0x07,0x03,0x02,0x13,0x13,0x10,0x0d,
+0x0a,0x06,0x03,0x01,0x12,0x12,0x0f,0x0c,0x09,0x06,0x03,0x01,0x11,0x11,0x0f,0x0c,
+0x09,0x06,0x03,0x01,0x10,0x10,0x0e,0x0b,0x08,0x05,0x03,0x01,0x0f,0x0f,0x0d,0x0b,
+0x08,0x05,0x03,0x01,0x0e,0x0e,0x0c,0x0a,0x08,0x05,0x02,0x01,0x0d,0x0d,0x0c,0x0a,
+0x07,0x05,0x02,0x01,0x0d,0x0c,0x0b,0x09,0x07,0x04,0x02,0x01,0x0c,0x0c,0x0a,0x09,
+0x06,0x04,0x02,0x01,0x0b,0x0b,0x0a,0x08,0x06,0x04,0x02,0x01,0x0b,0x0a,0x09,0x08,
+0x06,0x04,0x02,0x01,0x0a,0x0a,0x09,0x07,0x05,0x03,0x02,0x01,0x0a,0x09,0x08,0x07,
+0x05,0x03,0x02,0x01,0x09,0x09,0x08,0x06,0x05,0x03,0x01,0x01,0x09,0x08,0x07,0x06,
+0x04,0x03,0x01,0x01,0x36,0x35,0x2e,0x1b,0x00,0x00,0x00,0x00,0x33,0x32,0x2b,0x19,
+0x00,0x00,0x00,0x00,0x30,0x2f,0x29,0x18,0x00,0x00,0x00,0x00,0x2d,0x2d,0x17,0x17,
+0x00,0x00,0x00,0x00,0x2b,0x2a,0x25,0x15,0x00,0x00,0x00,0x00,0x28,0x28,0x24,0x14,
+0x00,0x00,0x00,0x00,0x26,0x25,0x21,0x13,0x00,0x00,0x00,0x00,0x24,0x23,0x1f,0x12,
+0x00,0x00,0x00,0x00,0x22,0x21,0x1d,0x11,0x00,0x00,0x00,0x00,0x20,0x20,0x1b,0x10,
+0x00,0x00,0x00,0x00,0x1f,0x1e,0x1a,0x0f,0x00,0x00,0x00,0x00,0x1d,0x1c,0x18,0x0e,
+0x00,0x00,0x00,0x00,0x1b,0x1a,0x17,0x0e,0x00,0x00,0x00,0x00,0x1a,0x19,0x16,0x0d,
+0x00,0x00,0x00,0x00,0x18,0x17,0x15,0x0c,0x00,0x00,0x00,0x00,0x17,0x16,0x13,0x0b,
+0x00,0x00,0x00,0x00,0x16,0x15,0x12,0x0b,0x00,0x00,0x00,0x00,0x14,0x14,0x11,0x0a,
+0x00,0x00,0x00,0x00,0x13,0x13,0x10,0x0a,0x00,0x00,0x00,0x00,0x12,0x12,0x0f,0x09,
+0x00,0x00,0x00,0x00,0x11,0x11,0x0f,0x09,0x00,0x00,0x00,0x00,0x10,0x10,0x0e,0x08,
+0x00,0x00,0x00,0x00,0x0f,0x0f,0x0d,0x08,0x00,0x00,0x00,0x00,0x0e,0x0e,0x0c,0x07,
+0x00,0x00,0x00,0x00,0x0d,0x0d,0x0c,0x07,0x00,0x00,0x00,0x00,0x0d,0x0c,0x0b,0x06,
+0x00,0x00,0x00,0x00,0x0c,0x0c,0x0a,0x06,0x00,0x00,0x00,0x00,0x0b,0x0b,0x0a,0x06,
+0x00,0x00,0x00,0x00,0x0b,0x0a,0x09,0x05,0x00,0x00,0x00,0x00,0x0a,0x0a,0x09,0x05,
+0x00,0x00,0x00,0x00,0x0a,0x09,0x08,0x05,0x00,0x00,0x00,0x00,0x09,0x09,0x08,0x05,
+0x00,0x00,0x00,0x00,0x09,0x08,0x07,0x04,0x00,0x00,0x00,0x00,0x06,0x00,0x2a,0xb0,
+0x05,0x00,0x2a,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x28,0x28,0x28,0x28,0x28,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xa0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+0x04,0x04,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x41,0x41,0x41,0x41,0x41,0x41,0x01,
+0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x42,0x42,0x42,0x42,0x42,0x42,0x02,
+0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,
+0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,
+0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0xa5,0x76,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x26,0x72,0xb0,0x00,0x26,0x72,0xb0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x26,0x65,0x60,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x02,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x5a,0x00,0xb8,0xff,0xff,0xff,0xff,
+};
+
+u8 Rtl8192SEFwMainArray[MainArrayLength] = {
+0x0, };
+
+u8 Rtl8192SEFwDataArray[DataArrayLength] = {
+0x0, };
+
+u32 Rtl8192SEPHY_REG_2T2RArray[PHY_REG_2T2RArrayLength] = {
+0x01c,0x07000000,
+0x800,0x00040000,
+0x804,0x00008003,
+0x808,0x0000fc00,
+0x80c,0x0000000a,
+0x810,0x10005088,
+0x814,0x020c3d10,
+0x818,0x00200185,
+0x81c,0x00000000,
+0x820,0x01000000,
+0x824,0x00390004,
+0x828,0x01000000,
+0x82c,0x00390004,
+0x830,0x00000004,
+0x834,0x00690200,
+0x838,0x00000004,
+0x83c,0x00690200,
+0x840,0x00010000,
+0x844,0x00010000,
+0x848,0x00000000,
+0x84c,0x00000000,
+0x850,0x00000000,
+0x854,0x00000000,
+0x858,0x48484848,
+0x85c,0x65a965a9,
+0x860,0x0f7f0130,
+0x864,0x0f7f0130,
+0x868,0x0f7f0130,
+0x86c,0x0f7f0130,
+0x870,0x03000700,
+0x874,0x03000300,
+0x878,0x00020002,
+0x87c,0x004f0201,
+0x880,0xa8300ac1,
+0x884,0x00000058,
+0x888,0x00000008,
+0x88c,0x00000004,
+0x890,0x00000000,
+0x894,0xfffffffe,
+0x898,0x40302010,
+0x89c,0x00706050,
+0x8b0,0x00000000,
+0x8e0,0x00000000,
+0x8e4,0x00000000,
+0xe00,0x30333333,
+0xe04,0x2a2d2e2f,
+0xe08,0x00003232,
+0xe10,0x30333333,
+0xe14,0x2a2d2e2f,
+0xe18,0x30333333,
+0xe1c,0x2a2d2e2f,
+0xe30,0x01007c00,
+0xe34,0x01004800,
+0xe38,0x1000dc1f,
+0xe3c,0x10008c1f,
+0xe40,0x021400a0,
+0xe44,0x281600a0,
+0xe48,0xf8000001,
+0xe4c,0x00002910,
+0xe50,0x01007c00,
+0xe54,0x01004800,
+0xe58,0x1000dc1f,
+0xe5c,0x10008c1f,
+0xe60,0x021400a0,
+0xe64,0x281600a0,
+0xe6c,0x00002910,
+0xe70,0x31ed92fb,
+0xe74,0x361536fb,
+0xe78,0x361536fb,
+0xe7c,0x361536fb,
+0xe80,0x361536fb,
+0xe84,0x000d92fb,
+0xe88,0x000d92fb,
+0xe8c,0x31ed92fb,
+0xed0,0x31ed92fb,
+0xed4,0x31ed92fb,
+0xed8,0x000d92fb,
+0xedc,0x000d92fb,
+0xee0,0x000d92fb,
+0xee4,0x015e5448,
+0xee8,0x21555448,
+0x900,0x00000000,
+0x904,0x00000023,
+0x908,0x00000000,
+0x90c,0x01121313,
+0xa00,0x00d047c8,
+0xa04,0x80ff0008,
+0xa08,0x8ccd8300,
+0xa0c,0x2e62120f,
+0xa10,0x9500bb78,
+0xa14,0x11144028,
+0xa18,0x00881117,
+0xa1c,0x89140f00,
+0xa20,0x1a1b0000,
+0xa24,0x090e1317,
+0xa28,0x00000204,
+0xa2c,0x10d30000,
+0xc00,0x40071d40,
+0xc04,0x00a05633,
+0xc08,0x000000e4,
+0xc0c,0x6c6c6c6c,
+0xc10,0x08800000,
+0xc14,0x40000100,
+0xc18,0x08000000,
+0xc1c,0x40000100,
+0xc20,0x08000000,
+0xc24,0x40000100,
+0xc28,0x08000000,
+0xc2c,0x40000100,
+0xc30,0x6de9ac44,
+0xc34,0x469652cf,
+0xc38,0x49795994,
+0xc3c,0x0a979764,
+0xc40,0x1f7c403f,
+0xc44,0x000100b7,
+0xc48,0xec020000,
+0xc4c,0x007f037f,
+0xc50,0x69543420,
+0xc54,0x433c0094,
+0xc58,0x69543420,
+0xc5c,0x433c0094,
+0xc60,0x69543420,
+0xc64,0x433c0094,
+0xc68,0x69543420,
+0xc6c,0x433c0094,
+0xc70,0x2c7f000d,
+0xc74,0x0186155b,
+0xc78,0x0000001f,
+0xc7c,0x00b91612,
+0xc80,0x40000100,
+0xc84,0x20f60000,
+0xc88,0x20000080,
+0xc8c,0x20200000,
+0xc90,0x40000100,
+0xc94,0x00000000,
+0xc98,0x40000100,
+0xc9c,0x00000000,
+0xca0,0x00492492,
+0xca4,0x00000000,
+0xca8,0x00000000,
+0xcac,0x00000000,
+0xcb0,0x00000000,
+0xcb4,0x00000000,
+0xcb8,0x00000000,
+0xcbc,0x28000000,
+0xcc0,0x00000000,
+0xcc4,0x00000000,
+0xcc8,0x00000000,
+0xccc,0x00000000,
+0xcd0,0x00000000,
+0xcd4,0x00000000,
+0xcd8,0x64b22427,
+0xcdc,0x00766932,
+0xce0,0x00222222,
+0xce4,0x00000000,
+0xce8,0x37644302,
+0xcec,0x2f97d40c,
+0xd00,0x00000750,
+0xd04,0x00000403,
+0xd08,0x0000907f,
+0xd0c,0x00000001,
+0xd10,0xa0633333,
+0xd14,0x33333c63,
+0xd18,0x6a8f5b6b,
+0xd1c,0x00000000,
+0xd20,0x00000000,
+0xd24,0x00000000,
+0xd28,0x00000000,
+0xd2c,0xcc979975,
+0xd30,0x00000000,
+0xd34,0x00000000,
+0xd38,0x00000000,
+0xd3c,0x00027293,
+0xd40,0x00000000,
+0xd44,0x00000000,
+0xd48,0x00000000,
+0xd50,0x6437140a,
+0xd54,0x024dbd02,
+0xd58,0x00000000,
+0xd5c,0x30032064,
+0xd60,0x4653de68,
+0xd64,0x00518a3c,
+0xd68,0x00002101,
+0xf14,0x00000003,
+0xf4c,0x00000000,
+0xf00,0x00000300,
+};
+
+u32 Rtl8192SEPHY_REG_1T2RArray[PHY_REG_1T2RArrayLength] = {
+0x0, };
+
+u32 Rtl8192SEPHY_ChangeTo_1T1RArray[PHY_ChangeTo_1T1RArrayLength] = {
+0x844,0xffffffff,0x00010000,
+0x804,0x0000000f,0x00000001,
+0x824,0x00f0000f,0x00300004,
+0x82c,0x00f0000f,0x00100002,
+0x870,0x04000000,0x00000001,
+0x864,0x00000400,0x00000000,
+0x878,0x000f000f,0x00000002,
+0xe74,0x0f000000,0x00000002,
+0xe78,0x0f000000,0x00000002,
+0xe7c,0x0f000000,0x00000002,
+0xe80,0x0f000000,0x00000002,
+0x90c,0x000000ff,0x00000011,
+0xc04,0x000000ff,0x00000011,
+0xd04,0x0000000f,0x00000001,
+0x1f4,0xffff0000,0x00007777,
+0x234,0xf8000000,0x0000000a,
+};
+
+u32 Rtl8192SEPHY_ChangeTo_1T2RArray[PHY_ChangeTo_1T2RArrayLength] = {
+0x804,0x0000000f,0x00000003,
+0x824,0x00f0000f,0x00300004,
+0x82c,0x00f0000f,0x00300002,
+0x870,0x04000000,0x00000001,
+0x864,0x00000400,0x00000000,
+0x878,0x000f000f,0x00000002,
+0xe74,0x0f000000,0x00000002,
+0xe78,0x0f000000,0x00000002,
+0xe7c,0x0f000000,0x00000002,
+0xe80,0x0f000000,0x00000002,
+0x90c,0x000000ff,0x00000011,
+0xc04,0x000000ff,0x00000033,
+0xd04,0x0000000f,0x00000003,
+0x1f4,0xffff0000,0x00007777,
+0x234,0xf8000000,0x0000000a,
+};
+
+u32 Rtl8192SEPHY_ChangeTo_2T2RArray[PHY_ChangeTo_2T2RArrayLength] = {
+0x804,0x0000000f,0x00000003,
+0x824,0x00f0000f,0x00300004,
+0x82c,0x00f0000f,0x00300004,
+0x870,0x04000000,0x00000001,
+0x864,0x00000400,0x00000001,
+0x878,0x000f000f,0x00020002,
+0xe74,0x0f000000,0x00000006,
+0xe78,0x0f000000,0x00000006,
+0xe7c,0x0f000000,0x00000006,
+0xe80,0x0f000000,0x00000006,
+0x90c,0x000000ff,0x00000033,
+0xc04,0x000000ff,0x00000033,
+0xd04,0x0000000f,0x00000003,
+0x1f4,0xffff0000,0x0000ffff,
+0x234,0xf8000000,0x00000013,
+};
+
+u32 Rtl8192SEPHY_REG_Array_PG[PHY_REG_Array_PGLength] = {
+0xe00,0xffffffff,0x06090909,
+0xe04,0xffffffff,0x00030406,
+0xe08,0x0000ff00,0x00000000,
+0xe10,0xffffffff,0x0a0c0d0e,
+0xe14,0xffffffff,0x04070809,
+0xe18,0xffffffff,0x0a0c0d0e,
+0xe1c,0xffffffff,0x04070809,
+0xe00,0xffffffff,0x04040404,
+0xe04,0xffffffff,0x00020204,
+0xe08,0x0000ff00,0x00000000,
+0xe10,0xffffffff,0x02040404,
+0xe14,0xffffffff,0x00000002,
+0xe18,0xffffffff,0x02040404,
+0xe1c,0xffffffff,0x00000002,
+0xe00,0xffffffff,0x04040404,
+0xe04,0xffffffff,0x00020204,
+0xe08,0x0000ff00,0x00000000,
+0xe10,0xffffffff,0x02040404,
+0xe14,0xffffffff,0x00000002,
+0xe18,0xffffffff,0x02040404,
+0xe1c,0xffffffff,0x00000002,
+0xe00,0xffffffff,0x02020202,
+0xe04,0xffffffff,0x00020202,
+0xe08,0x0000ff00,0x00000000,
+0xe10,0xffffffff,0x02020202,
+0xe14,0xffffffff,0x00000002,
+0xe18,0xffffffff,0x02020202,
+0xe1c,0xffffffff,0x00000002,
+};
+
+u32 Rtl8192SERadioA_1T_Array[RadioA_1T_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00030250,
+0x002,0x00010000,
+0x010,0x0008000f,
+0x011,0x000231fc,
+0x010,0x000c000f,
+0x011,0x0003f9f8,
+0x010,0x0002000f,
+0x011,0x00020101,
+0x014,0x0001093e,
+0x014,0x0009093e,
+0x015,0x0000f8f4,
+0x017,0x000f6500,
+0x01a,0x00013056,
+0x01b,0x00060000,
+0x01c,0x00000300,
+0x01e,0x00031059,
+0x021,0x00054000,
+0x022,0x0000083c,
+0x023,0x00001558,
+0x024,0x00000060,
+0x025,0x00022583,
+0x026,0x0000f200,
+0x027,0x000eacf1,
+0x028,0x0009bd54,
+0x029,0x00004582,
+0x02a,0x00000001,
+0x02b,0x00021334,
+0x02a,0x00000000,
+0x02b,0x0000000a,
+0x02a,0x00000001,
+0x02b,0x00000808,
+0x02b,0x00053333,
+0x02c,0x0000000c,
+0x02a,0x00000002,
+0x02b,0x00000808,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000003,
+0x02b,0x00000808,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000004,
+0x02b,0x00000808,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000005,
+0x02b,0x00000709,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x00000006,
+0x02b,0x00000709,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000007,
+0x02b,0x00000709,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000008,
+0x02b,0x00000709,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000009,
+0x02b,0x0000060a,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000a,
+0x02b,0x0000060a,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x0000000b,
+0x02b,0x0000060a,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x0000000c,
+0x02b,0x0000060a,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x0000000d,
+0x02b,0x0000050b,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000e,
+0x02b,0x0000050b,
+0x02b,0x00066623,
+0x02c,0x0000001a,
+0x02a,0x000e4000,
+0x030,0x00020000,
+0x031,0x000b9631,
+0x032,0x0000130d,
+0x033,0x00000187,
+0x013,0x00019e6c,
+0x013,0x00015e94,
+0x000,0x00010159,
+0x018,0x0000f401,
+0x0fe,0x00000000,
+0x01e,0x0003105b,
+0x0fe,0x00000000,
+0x000,0x00030159,
+0x010,0x0004000f,
+0x011,0x000203f9,
+};
+
+u32 Rtl8192SERadioB_Array[RadioB_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00001041,
+0x002,0x00011000,
+0x005,0x00080fc0,
+0x007,0x000fc803,
+0x013,0x00017cb0,
+0x013,0x00011cc0,
+0x013,0x0000dc60,
+0x013,0x00008c60,
+0x013,0x00004450,
+0x013,0x00000020,
+};
+
+u32 Rtl8192SERadioA_to1T_Array[RadioA_to1T_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00030250,
+0x002,0x00010000,
+0x010,0x0008000f,
+0x011,0x000231fc,
+0x010,0x000c000f,
+0x011,0x0003f9f8,
+0x014,0x0001093e,
+0x014,0x0009093e,
+0x015,0x000198f4,
+0x017,0x000f6500,
+0x01a,0x00013056,
+0x01b,0x00060000,
+0x01c,0x00000300,
+0x01e,0x00031059,
+0x021,0x00054000,
+0x022,0x0000083c,
+0x023,0x00001558,
+0x024,0x00000060,
+0x025,0x00022583,
+0x026,0x0000f200,
+0x027,0x000eacf1,
+0x028,0x000dbd54,
+0x029,0x00004582,
+0x02a,0x00000001,
+0x02b,0x00021334,
+0x02a,0x00000000,
+0x02b,0x0000000a,
+0x02a,0x00000001,
+0x02b,0x00000808,
+0x02b,0x00053333,
+0x02c,0x0000000c,
+0x02a,0x00000002,
+0x02b,0x00000808,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000003,
+0x02b,0x00000808,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000004,
+0x02b,0x00000808,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000005,
+0x02b,0x00000709,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x00000006,
+0x02b,0x00000709,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000007,
+0x02b,0x00000709,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000008,
+0x02b,0x00000709,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000009,
+0x02b,0x0000060a,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000a,
+0x02b,0x0000060a,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x0000000b,
+0x02b,0x0000060a,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x0000000c,
+0x02b,0x0000060a,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x0000000d,
+0x02b,0x0000050b,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000e,
+0x02b,0x0000050b,
+0x02b,0x00066623,
+0x02c,0x0000001a,
+0x02a,0x000e4000,
+0x030,0x00020000,
+0x031,0x000b9631,
+0x033,0x00000187,
+0x013,0x00019e6c,
+0x013,0x00015e94,
+0x000,0x00010159,
+0x018,0x0000f401,
+0x0fe,0x00000000,
+0x01e,0x0003105b,
+0x0fe,0x00000000,
+0x000,0x00030159,
+0x010,0x0004000f,
+0x011,0x000203f9,
+};
+
+u32 Rtl8192SERadioA_to2T_Array[RadioA_to2T_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00030250,
+0x002,0x00010000,
+0x010,0x0008000f,
+0x011,0x000231fc,
+0x010,0x000c000f,
+0x011,0x0003f9f8,
+0x014,0x0001093e,
+0x014,0x0009093e,
+0x015,0x000198f4,
+0x017,0x000f6500,
+0x01a,0x00013056,
+0x01b,0x00060000,
+0x01c,0x00000300,
+0x01e,0x00031059,
+0x021,0x00054000,
+0x022,0x0000083c,
+0x023,0x00001558,
+0x024,0x00000060,
+0x025,0x00022583,
+0x026,0x0000f200,
+0x027,0x000eacf1,
+0x028,0x000dbd54,
+0x029,0x00004582,
+0x02a,0x00000001,
+0x02b,0x00021334,
+0x02a,0x00000000,
+0x02b,0x0000000a,
+0x02a,0x00000001,
+0x02b,0x00000808,
+0x02b,0x00053333,
+0x02c,0x0000000c,
+0x02a,0x00000002,
+0x02b,0x00000808,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000003,
+0x02b,0x00000808,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000004,
+0x02b,0x00000808,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000005,
+0x02b,0x00000709,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x00000006,
+0x02b,0x00000709,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000007,
+0x02b,0x00000709,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000008,
+0x02b,0x00000709,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000009,
+0x02b,0x0000060a,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000a,
+0x02b,0x0000060a,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x0000000b,
+0x02b,0x0000060a,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x0000000c,
+0x02b,0x0000060a,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x0000000d,
+0x02b,0x0000050b,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000e,
+0x02b,0x0000050b,
+0x02b,0x00066623,
+0x02c,0x0000001a,
+0x02a,0x000e4000,
+0x030,0x00020000,
+0x031,0x000b9631,
+0x033,0x00000187,
+0x013,0x00019e6c,
+0x013,0x00015e94,
+0x000,0x00010159,
+0x018,0x0000f401,
+0x0fe,0x00000000,
+0x01e,0x0003105b,
+0x0fe,0x00000000,
+0x000,0x00030159,
+0x010,0x0004000f,
+0x011,0x000203f9,
+};
+
+u32 Rtl8192SERadioB_GM_Array[RadioB_GM_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00001041,
+0x002,0x00011000,
+0x005,0x00080fc0,
+0x007,0x000fc803,
+};
+
+u32 Rtl8192SEMAC_2T_Array[MAC_2T_ArrayLength] = {
+0x020,0x00000035,
+0x048,0x0000000e,
+0x049,0x000000f0,
+0x04a,0x00000077,
+0x04b,0x00000083,
+0x0b5,0x00000021,
+0x0dc,0x000000ff,
+0x0dd,0x000000ff,
+0x0de,0x000000ff,
+0x0df,0x000000ff,
+0x116,0x00000000,
+0x117,0x00000000,
+0x118,0x00000000,
+0x119,0x00000000,
+0x11a,0x00000000,
+0x11b,0x00000000,
+0x11c,0x00000000,
+0x11d,0x00000000,
+0x160,0x0000000b,
+0x161,0x0000000b,
+0x162,0x0000000b,
+0x163,0x0000000b,
+0x164,0x0000000b,
+0x165,0x0000000b,
+0x166,0x0000000b,
+0x167,0x0000000b,
+0x168,0x0000000b,
+0x169,0x0000000b,
+0x16a,0x0000000b,
+0x16b,0x0000000b,
+0x16c,0x0000000b,
+0x16d,0x0000000b,
+0x16e,0x0000000b,
+0x16f,0x0000000b,
+0x170,0x0000000b,
+0x171,0x0000000b,
+0x172,0x0000000b,
+0x173,0x0000000b,
+0x174,0x0000000b,
+0x175,0x0000000b,
+0x176,0x0000000b,
+0x177,0x0000000b,
+0x178,0x0000000b,
+0x179,0x0000000b,
+0x17a,0x0000000b,
+0x17b,0x0000000b,
+0x17c,0x0000000b,
+0x17d,0x0000000b,
+0x17e,0x0000000b,
+0x17f,0x0000000b,
+0x236,0x0000000c,
+0x503,0x00000022,
+0x560,0x00000000,
+};
+
+u32 Rtl8192SEMACPHY_Array_PG[MACPHY_Array_PGLength] = {
+0x0, };
+
+u32 Rtl8192SEAGCTAB_Array[AGCTAB_ArrayLength] = {
+0xc78,0x7f000001,
+0xc78,0x7f010001,
+0xc78,0x7e020001,
+0xc78,0x7d030001,
+0xc78,0x7c040001,
+0xc78,0x7b050001,
+0xc78,0x7a060001,
+0xc78,0x79070001,
+0xc78,0x78080001,
+0xc78,0x77090001,
+0xc78,0x760a0001,
+0xc78,0x750b0001,
+0xc78,0x740c0001,
+0xc78,0x730d0001,
+0xc78,0x720e0001,
+0xc78,0x710f0001,
+0xc78,0x70100001,
+0xc78,0x6f110001,
+0xc78,0x6f120001,
+0xc78,0x6e130001,
+0xc78,0x6d140001,
+0xc78,0x6d150001,
+0xc78,0x6c160001,
+0xc78,0x6b170001,
+0xc78,0x6a180001,
+0xc78,0x6a190001,
+0xc78,0x691a0001,
+0xc78,0x681b0001,
+0xc78,0x671c0001,
+0xc78,0x661d0001,
+0xc78,0x651e0001,
+0xc78,0x641f0001,
+0xc78,0x63200001,
+0xc78,0x4c210001,
+0xc78,0x4b220001,
+0xc78,0x4a230001,
+0xc78,0x49240001,
+0xc78,0x48250001,
+0xc78,0x47260001,
+0xc78,0x46270001,
+0xc78,0x45280001,
+0xc78,0x44290001,
+0xc78,0x2c2a0001,
+0xc78,0x2b2b0001,
+0xc78,0x2a2c0001,
+0xc78,0x292d0001,
+0xc78,0x282e0001,
+0xc78,0x272f0001,
+0xc78,0x26300001,
+0xc78,0x25310001,
+0xc78,0x24320001,
+0xc78,0x23330001,
+0xc78,0x22340001,
+0xc78,0x09350001,
+0xc78,0x08360001,
+0xc78,0x07370001,
+0xc78,0x06380001,
+0xc78,0x05390001,
+0xc78,0x043a0001,
+0xc78,0x033b0001,
+0xc78,0x023c0001,
+0xc78,0x013d0001,
+0xc78,0x003e0001,
+0xc78,0x003f0001,
+0xc78,0x7f400001,
+0xc78,0x7f410001,
+0xc78,0x7e420001,
+0xc78,0x7d430001,
+0xc78,0x7c440001,
+0xc78,0x7b450001,
+0xc78,0x7a460001,
+0xc78,0x79470001,
+0xc78,0x78480001,
+0xc78,0x77490001,
+0xc78,0x764a0001,
+0xc78,0x754b0001,
+0xc78,0x744c0001,
+0xc78,0x734d0001,
+0xc78,0x724e0001,
+0xc78,0x714f0001,
+0xc78,0x70500001,
+0xc78,0x6f510001,
+0xc78,0x6f520001,
+0xc78,0x6e530001,
+0xc78,0x6d540001,
+0xc78,0x6d550001,
+0xc78,0x6c560001,
+0xc78,0x6b570001,
+0xc78,0x6a580001,
+0xc78,0x6a590001,
+0xc78,0x695a0001,
+0xc78,0x685b0001,
+0xc78,0x675c0001,
+0xc78,0x665d0001,
+0xc78,0x655e0001,
+0xc78,0x645f0001,
+0xc78,0x63600001,
+0xc78,0x4c610001,
+0xc78,0x4b620001,
+0xc78,0x4a630001,
+0xc78,0x49640001,
+0xc78,0x48650001,
+0xc78,0x47660001,
+0xc78,0x46670001,
+0xc78,0x45680001,
+0xc78,0x44690001,
+0xc78,0x2c6a0001,
+0xc78,0x2b6b0001,
+0xc78,0x2a6c0001,
+0xc78,0x296d0001,
+0xc78,0x286e0001,
+0xc78,0x276f0001,
+0xc78,0x26700001,
+0xc78,0x25710001,
+0xc78,0x24720001,
+0xc78,0x23730001,
+0xc78,0x22740001,
+0xc78,0x09750001,
+0xc78,0x08760001,
+0xc78,0x07770001,
+0xc78,0x06780001,
+0xc78,0x05790001,
+0xc78,0x047a0001,
+0xc78,0x037b0001,
+0xc78,0x027c0001,
+0xc78,0x017d0001,
+0xc78,0x007e0001,
+0xc78,0x007f0001,
+0xc78,0x3000001e,
+0xc78,0x3001001e,
+0xc78,0x3002001e,
+0xc78,0x3003001e,
+0xc78,0x3004001e,
+0xc78,0x3405001e,
+0xc78,0x3806001e,
+0xc78,0x3e07001e,
+0xc78,0x3e08001e,
+0xc78,0x4409001e,
+0xc78,0x460a001e,
+0xc78,0x480b001e,
+0xc78,0x480c001e,
+0xc78,0x4e0d001e,
+0xc78,0x560e001e,
+0xc78,0x5a0f001e,
+0xc78,0x5e10001e,
+0xc78,0x6211001e,
+0xc78,0x6c12001e,
+0xc78,0x7213001e,
+0xc78,0x7214001e,
+0xc78,0x7215001e,
+0xc78,0x7216001e,
+0xc78,0x7217001e,
+0xc78,0x7218001e,
+0xc78,0x7219001e,
+0xc78,0x721a001e,
+0xc78,0x721b001e,
+0xc78,0x721c001e,
+0xc78,0x721d001e,
+0xc78,0x721e001e,
+0xc78,0x721f001e,
+};
+
+#endif
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg492.h b/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg492.h
new file mode 100755
index 00000000000..b8f541b9cdb
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg492.h
@@ -0,0 +1,60 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef __INC_HAL8192SE_FW_IMG_H
+#define __INC_HAL8192SE_FW_IMG_H
+
+/*Created on 2009/ 7/23, 5: 4*/
+
+#include <linux/types.h>
+#define ImgArrayLength 75984
+extern u8 Rtl8192SEFwImgArray[ImgArrayLength];
+#define MainArrayLength 1
+extern u8 Rtl8192SEFwMainArray[MainArrayLength];
+#define DataArrayLength 1
+extern u8 Rtl8192SEFwDataArray[DataArrayLength];
+#define PHY_REG_2T2RArrayLength 372
+extern u32 Rtl8192SEPHY_REG_2T2RArray[PHY_REG_2T2RArrayLength];
+#define PHY_REG_1T2RArrayLength 1
+extern u32 Rtl8192SEPHY_REG_1T2RArray[PHY_REG_1T2RArrayLength];
+#define PHY_ChangeTo_1T1RArrayLength 48
+extern u32 Rtl8192SEPHY_ChangeTo_1T1RArray[PHY_ChangeTo_1T1RArrayLength];
+#define PHY_ChangeTo_1T2RArrayLength 45
+extern u32 Rtl8192SEPHY_ChangeTo_1T2RArray[PHY_ChangeTo_1T2RArrayLength];
+#define PHY_ChangeTo_2T2RArrayLength 45
+extern u32 Rtl8192SEPHY_ChangeTo_2T2RArray[PHY_ChangeTo_2T2RArrayLength];
+#define PHY_REG_Array_PGLength 84
+extern u32 Rtl8192SEPHY_REG_Array_PG[PHY_REG_Array_PGLength];
+#define RadioA_1T_ArrayLength 202
+extern u32 Rtl8192SERadioA_1T_Array[RadioA_1T_ArrayLength];
+#define RadioB_ArrayLength 22
+extern u32 Rtl8192SERadioB_Array[RadioB_ArrayLength];
+#define RadioA_to1T_ArrayLength 196
+extern u32 Rtl8192SERadioA_to1T_Array[RadioA_to1T_ArrayLength];
+#define RadioA_to2T_ArrayLength 196
+extern u32 Rtl8192SERadioA_to2T_Array[RadioA_to2T_ArrayLength];
+#define RadioB_GM_ArrayLength 10
+extern u32 Rtl8192SERadioB_GM_Array[RadioB_GM_ArrayLength];
+#define MAC_2T_ArrayLength 106
+extern u32 Rtl8192SEMAC_2T_Array[MAC_2T_ArrayLength];
+#define MACPHY_Array_PGLength 1
+extern u32 Rtl8192SEMACPHY_Array_PG[MACPHY_Array_PGLength];
+#define AGCTAB_ArrayLength 320
+extern u32 Rtl8192SEAGCTAB_Array[AGCTAB_ArrayLength];
+
+#endif
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg74.c b/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg74.c
new file mode 100755
index 00000000000..c7bab999276
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg74.c
@@ -0,0 +1,6398 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+/*Created on 2009/11/17, 16:15*/
+
+#ifdef RTL8192SE
+#include "r8192S_hwimg.h"
+
+u8 Rtl8192SEFwImgArray[ImgArrayLength] = {
+0x92,0x81,0x4a,0x70,0x30,0x00,0x00,0x00,0x08,0xa4,0x00,0x00,0x88,0xb5,0x00,0x00,
+0x30,0x00,0x00,0x00,0x00,0xb4,0x00,0x00,0x4a,0x00,0x00,0x00,0x11,0x17,0x13,0x29,
+0x92,0x81,0x01,0x01,0x00,0x00,0x22,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x00,0x01,0x01,0x01,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x7f,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x1f,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x1a,0x3c,0x80,0x03,0x5a,0x37,0x00,0x80,0x1b,0x3c,0x80,0x00,0x7b,0x37,
+0x00,0x00,0x5b,0xaf,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x37,0x00,0x80,0x1b,0x3c,
+0x80,0x00,0x7b,0x37,0x00,0x00,0x5b,0xaf,0x01,0x80,0x1a,0x3c,0x10,0x9d,0x5a,0x27,
+0x08,0x00,0x40,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x04,0x00,0xa1,0xaf,0x08,0x00,0xa2,0xaf,0x0c,0x00,0xa3,0xaf,0x10,0x00,0xa4,0xaf,
+0x14,0x00,0xa5,0xaf,0x18,0x00,0xa6,0xaf,0x1c,0x00,0xa7,0xaf,0x20,0x00,0xa8,0xaf,
+0x24,0x00,0xa9,0xaf,0x28,0x00,0xaa,0xaf,0x2c,0x00,0xab,0xaf,0x30,0x00,0xac,0xaf,
+0x34,0x00,0xad,0xaf,0x38,0x00,0xae,0xaf,0x3c,0x00,0xaf,0xaf,0x12,0x40,0x00,0x00,
+0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40,0x40,0x00,0xb0,0xaf,0x44,0x00,0xb1,0xaf,
+0x48,0x00,0xb2,0xaf,0x4c,0x00,0xb3,0xaf,0x50,0x00,0xb4,0xaf,0x54,0x00,0xb5,0xaf,
+0x58,0x00,0xb6,0xaf,0x5c,0x00,0xb7,0xaf,0x60,0x00,0xb8,0xaf,0x64,0x00,0xb9,0xaf,
+0x68,0x00,0xbc,0xaf,0x6c,0x00,0xbd,0xaf,0x70,0x00,0xbe,0xaf,0x74,0x00,0xbf,0xaf,
+0x78,0x00,0xa8,0xaf,0x7c,0x00,0xa9,0xaf,0x80,0x00,0xaa,0xaf,0xda,0x26,0x00,0x08,
+0x21,0x20,0xa0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0xff,0xff,0x88,0x30,0x80,0x28,0x08,0x00,0x2a,0xb0,0x0a,0x3c,0x21,0x38,0xaa,0x00,
+0x0c,0x00,0xe6,0x8c,0x02,0x80,0x03,0x3c,0xcc,0x3f,0x63,0x24,0x25,0xb0,0x02,0x3c,
+0xb0,0x03,0x42,0x34,0x21,0x28,0xa3,0x00,0xff,0x00,0xc4,0x30,0xff,0x00,0x09,0x24,
+0x00,0x00,0x45,0xac,0x00,0x00,0x43,0xac,0x05,0x00,0x89,0x10,0x00,0x00,0x00,0x00,
+0x00,0x80,0xc2,0x30,0x04,0x00,0x40,0x10,0x00,0x80,0x02,0x3c,0x0c,0x00,0xe2,0xac,
+0x08,0x00,0xe0,0x03,0x21,0x10,0xc0,0x00,0x00,0xff,0x02,0x3c,0x24,0x10,0xc2,0x00,
+0xfb,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x21,0x20,0x0a,0x01,0x40,0x00,0x82,0x90,
+0x00,0x00,0x00,0x00,0xff,0x00,0x43,0x30,0x12,0x00,0x69,0x10,0x00,0x00,0x00,0x00,
+0x00,0x00,0xa3,0xa0,0x40,0x00,0x83,0x90,0x00,0x00,0xa6,0x90,0xff,0x00,0x63,0x30,
+0xff,0x00,0xc2,0x30,0xfa,0xff,0x62,0x14,0x00,0x00,0x00,0x00,0x20,0xb0,0x03,0x3c,
+0x00,0x12,0x02,0x00,0x21,0x10,0x43,0x00,0x0c,0x00,0x46,0x8c,0x25,0xb0,0x03,0x3c,
+0xb0,0x03,0x63,0x34,0x21,0x10,0xc0,0x00,0x00,0x00,0x66,0xac,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x00,0xa6,0x90,0xe7,0x00,0x00,0x08,0xff,0x00,0xc2,0x30,
+0xff,0xff,0x84,0x30,0x80,0x20,0x04,0x00,0x2a,0xb0,0x02,0x3c,0x21,0x48,0x82,0x00,
+0x00,0x00,0x25,0x8d,0x02,0x80,0x02,0x3c,0xec,0x3f,0x42,0x24,0x21,0x40,0x82,0x00,
+0x25,0xb0,0x03,0x3c,0x02,0x80,0x02,0x3c,0xb0,0x03,0x67,0x34,0xcc,0x3f,0x42,0x24,
+0xff,0x00,0xa4,0x30,0xff,0x00,0x03,0x24,0x00,0x00,0xe8,0xac,0x00,0x80,0xa6,0x30,
+0x00,0x00,0xe2,0xac,0x06,0x00,0x83,0x10,0x00,0x00,0x00,0x00,0x00,0xff,0x02,0x3c,
+0x05,0x00,0xc0,0x10,0x24,0x10,0xa2,0x00,0x00,0x80,0x02,0x3c,0x00,0x00,0x22,0xad,
+0x08,0x00,0xe0,0x03,0x21,0x10,0xa0,0x00,0xfd,0xff,0x40,0x10,0x00,0x00,0x00,0x00,
+0x00,0x00,0x03,0x91,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,
+0x0c,0x00,0x65,0x8c,0x00,0x00,0x00,0x00,0x21,0x10,0xa0,0x00,0x00,0x00,0xe5,0xac,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x05,0x3c,0x00,0x80,0x02,0x3c,
+0xe0,0xff,0xbd,0x27,0x18,0x03,0xa3,0x34,0x68,0x04,0x42,0x24,0x18,0x00,0xbf,0xaf,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x42,0xb0,0x02,0x3c,0x03,0x00,0x46,0x34,
+0x00,0x00,0xc3,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x70,0x30,0x10,0x00,0x02,0x32,
+0x18,0x00,0x40,0x10,0x02,0x80,0x11,0x3c,0x78,0x1b,0x27,0x26,0xec,0x23,0xe4,0x94,
+0x10,0x00,0x02,0x24,0x00,0x00,0xc2,0xa0,0x08,0x00,0x80,0x10,0x1c,0x03,0xa3,0x34,
+0xf0,0x23,0xe2,0x94,0xb0,0x03,0xa4,0x34,0x00,0x00,0x62,0xa0,0x00,0x00,0x80,0xac,
+0xec,0x23,0xe0,0xa4,0xf0,0x23,0xe0,0xa4,0x00,0x00,0x04,0x24,0x02,0x80,0x05,0x3c,
+0x02,0x80,0x06,0x3c,0x8c,0x43,0xa2,0x8c,0xbc,0x44,0xc3,0x8c,0x01,0x00,0x84,0x24,
+0x01,0x00,0x42,0x24,0x01,0x00,0x63,0x24,0xec,0x23,0xe4,0xa4,0x8c,0x43,0xa2,0xac,
+0xbc,0x44,0xc3,0xac,0x00,0x16,0x10,0x00,0x03,0x16,0x02,0x00,0x71,0x00,0x40,0x04,
+0x42,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x40,0x00,0x02,0x32,0x16,0x00,0x40,0x10,0x78,0x1b,0x24,0x26,
+0x42,0xb0,0x03,0x3c,0x40,0x00,0x02,0x24,0x03,0x00,0x63,0x34,0x00,0x00,0x62,0xa0,
+0x02,0x80,0x03,0x3c,0xb6,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x1a,0x00,0x40,0x10,
+0x02,0x80,0x04,0x3c,0xb6,0x44,0x60,0xa0,0x02,0x80,0x04,0x3c,0xb2,0x44,0x83,0x90,
+0xfd,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0xb2,0x44,0x83,0xa0,0xb2,0x44,0x82,0x90,
+0x00,0x00,0x00,0x00,0x07,0x00,0x42,0x30,0x2c,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,
+0x78,0x1b,0x24,0x26,0x18,0x0b,0x83,0x94,0x14,0x0b,0x85,0x94,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x80,0x00,0x63,0x30,0x41,0xb0,0x02,0x3c,
+0x25,0x18,0x65,0x00,0x08,0x00,0x42,0x34,0x20,0x00,0xbd,0x27,0x00,0x00,0x43,0xa4,
+0x08,0x00,0xe0,0x03,0x14,0x0b,0x83,0xa4,0x9e,0x44,0x82,0x90,0x02,0x80,0x05,0x3c,
+0x01,0x00,0x42,0x24,0x9e,0x44,0x82,0xa0,0xb2,0x44,0xa3,0x90,0xef,0xff,0x02,0x24,
+0x24,0x18,0x62,0x00,0xb2,0x44,0xa3,0xa0,0x9e,0x44,0x82,0x90,0x00,0x00,0x00,0x00,
+0x02,0x00,0x42,0x2c,0x24,0x00,0x40,0x14,0x78,0x1b,0x23,0x26,0xe8,0x0a,0x62,0x90,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x3d,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,
+0x02,0x80,0x03,0x3c,0xb9,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0xdc,0xff,0x40,0x14,
+0x00,0x00,0x00,0x00,0xb9,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,
+0xb9,0x44,0x62,0xa0,0x65,0x01,0x00,0x08,0x78,0x1b,0x24,0x26,0xb0,0x44,0x40,0xa0,
+0x02,0x80,0x03,0x3c,0x99,0x44,0x64,0x90,0xf9,0x1f,0x00,0x0c,0xff,0x00,0x84,0x30,
+0x78,0x1b,0x24,0x26,0x18,0x0b,0x83,0x94,0x14,0x0b,0x85,0x94,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x80,0x00,0x63,0x30,0x41,0xb0,0x02,0x3c,
+0x25,0x18,0x65,0x00,0x08,0x00,0x42,0x34,0x20,0x00,0xbd,0x27,0x00,0x00,0x43,0xa4,
+0x08,0x00,0xe0,0x03,0x14,0x0b,0x83,0xa4,0x02,0x80,0x05,0x3c,0x02,0x80,0x03,0x3c,
+0xac,0x44,0xa2,0x8c,0xa4,0x44,0x64,0x8c,0x02,0x80,0x03,0x3c,0x21,0x10,0x44,0x00,
+0xac,0x44,0xa2,0xac,0xac,0x44,0xa4,0x8c,0x25,0xb0,0x02,0x3c,0xe4,0x02,0x42,0x34,
+0x00,0x00,0x44,0xac,0xa0,0x44,0x62,0x94,0x02,0x80,0x05,0x3c,0x99,0x44,0xa4,0x90,
+0xff,0xff,0x42,0x30,0x40,0x10,0x02,0x00,0xf6,0xff,0x42,0x24,0x02,0x80,0x03,0x3c,
+0xff,0x00,0x84,0x30,0xf9,0x1f,0x00,0x0c,0x88,0x44,0x62,0xac,0x95,0x01,0x00,0x08,
+0x78,0x1b,0x24,0x26,0x80,0xff,0x03,0x24,0x03,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,
+0x1b,0x16,0x00,0x0c,0x00,0x00,0x00,0x00,0x49,0x01,0x00,0x08,0x00,0x00,0x00,0x00,
+0xb9,0x44,0x40,0xa0,0x65,0x01,0x00,0x08,0x78,0x1b,0x24,0x26,0xff,0x00,0x84,0x30,
+0x0b,0x00,0x82,0x2c,0xff,0xff,0xe7,0x30,0x10,0x00,0xa8,0x93,0x19,0x00,0x40,0x10,
+0x21,0x18,0x00,0x00,0x02,0x80,0x03,0x3c,0x80,0x10,0x04,0x00,0x48,0xaf,0x63,0x24,
+0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x00,
+0x00,0x00,0x00,0x00,0x43,0xb0,0x02,0x3c,0x78,0x00,0x44,0x34,0x07,0x00,0xe2,0x30,
+0x00,0x00,0x85,0xac,0x04,0x00,0x86,0xac,0x04,0x00,0x40,0x18,0x00,0x00,0x00,0x00,
+0xf8,0xff,0xe2,0x30,0x08,0x00,0x42,0x24,0xff,0xff,0x47,0x30,0x21,0x10,0xe8,0x00,
+0x00,0x80,0x03,0x3c,0x08,0x00,0x82,0xac,0x25,0x10,0x43,0x00,0x08,0x00,0x82,0xac,
+0x01,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x43,0xb0,0x02,0x3c,
+0xd3,0x01,0x00,0x08,0x6c,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0xd3,0x01,0x00,0x08,
+0x60,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0xd3,0x01,0x00,0x08,0x54,0x00,0x44,0x34,
+0x43,0xb0,0x02,0x3c,0xd3,0x01,0x00,0x08,0x48,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,
+0xd3,0x01,0x00,0x08,0x3c,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0xd3,0x01,0x00,0x08,
+0x30,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,0xd3,0x01,0x00,0x08,0x24,0x00,0x44,0x34,
+0x43,0xb0,0x02,0x3c,0xd3,0x01,0x00,0x08,0x18,0x00,0x44,0x34,0x43,0xb0,0x02,0x3c,
+0xd3,0x01,0x00,0x08,0x0c,0x00,0x44,0x34,0xd3,0x01,0x00,0x08,0x43,0xb0,0x04,0x3c,
+0x01,0x00,0x02,0x24,0x43,0xb0,0x03,0x3c,0x04,0x20,0x82,0x00,0x88,0x00,0x65,0x34,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0xff,0x42,0x30,0x05,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x00,0x00,0xa2,0x94,0x00,0x00,0x00,0x00,
+0xff,0xff,0x42,0x30,0x24,0x10,0x44,0x00,0xf5,0xff,0x40,0x1c,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x08,0x3c,0x00,0x80,0x02,0x3c,
+0xd0,0xff,0xbd,0x27,0x18,0x03,0x03,0x35,0x48,0x08,0x42,0x24,0x00,0x00,0x62,0xac,
+0x28,0x00,0xb4,0xaf,0x20,0x00,0xb2,0xaf,0x18,0x00,0xb0,0xaf,0x2c,0x00,0xbf,0xaf,
+0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf,0x08,0x00,0xf3,0x8c,0xff,0x00,0xc6,0x30,
+0x00,0x01,0x02,0x24,0x0c,0x00,0xf1,0x84,0x23,0x10,0x46,0x00,0xff,0xff,0xa3,0x30,
+0xff,0xff,0x50,0x30,0xff,0x00,0x94,0x30,0xd0,0x03,0x08,0x35,0x21,0x30,0xc5,0x00,
+0x21,0x20,0x80,0x02,0x21,0x28,0x60,0x02,0x21,0x38,0x00,0x02,0x02,0x92,0x03,0x00,
+0x00,0x00,0x11,0xad,0x00,0x00,0x13,0xad,0x42,0x02,0x00,0x08,0x00,0x00,0x00,0x00,
+0x01,0x01,0x23,0x2a,0xff,0xff,0x22,0x32,0x21,0x98,0x70,0x02,0x21,0x20,0x80,0x02,
+0x00,0x01,0x10,0x24,0x00,0x02,0x00,0x0c,0x0b,0x80,0x43,0x00,0xc0,0x10,0x12,0x00,
+0x28,0xb0,0x03,0x3c,0x21,0x10,0x43,0x00,0x00,0x00,0x45,0x90,0x20,0x10,0x06,0x3c,
+0x21,0x20,0x80,0x02,0xff,0x00,0xb2,0x30,0x00,0x12,0x12,0x00,0x21,0x30,0x46,0x00,
+0x21,0x28,0x60,0x02,0x21,0x38,0x00,0x02,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x23,0x18,0x30,0x02,0x00,0x8c,0x03,0x00,0x03,0x8c,0x11,0x00,0xe8,0xff,0x20,0x1e,
+0x00,0x00,0x00,0x00,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x30,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x18,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0xaf,
+0x21,0x38,0x80,0x00,0x02,0x80,0x02,0x3c,0x78,0x1b,0x44,0x24,0x00,0x00,0xe8,0x94,
+0x28,0x24,0x83,0x8c,0x21,0x80,0xa0,0x00,0x27,0x10,0x08,0x00,0x2b,0x10,0x62,0x00,
+0x03,0x00,0x40,0x10,0x21,0x28,0xc0,0x00,0x21,0x10,0x68,0x00,0x28,0x24,0x82,0xac,
+0x04,0x24,0x82,0x8c,0x04,0x00,0xe3,0x8c,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,
+0x20,0x00,0x40,0x14,0x1f,0x00,0x64,0x30,0x08,0x00,0xe2,0x8c,0xff,0xe0,0x03,0x3c,
+0xff,0xff,0x63,0x34,0x00,0x26,0x04,0x00,0x24,0x10,0x43,0x00,0x25,0x18,0x44,0x00,
+0x10,0x00,0xe4,0x8c,0x00,0x00,0x00,0x00,0x1a,0x00,0x80,0x04,0x08,0x00,0xe3,0xac,
+0x82,0x11,0x03,0x00,0x01,0x00,0x42,0x30,0x05,0x00,0x40,0x14,0x02,0x00,0x04,0x24,
+0xc0,0xff,0x02,0x24,0x24,0x10,0x62,0x00,0x0f,0x00,0x42,0x34,0x08,0x00,0xe2,0xac,
+0x21,0x30,0x00,0x02,0x01,0x00,0x02,0x24,0x40,0x00,0x07,0x24,0xc3,0x01,0x00,0x0c,
+0x10,0x00,0xa2,0xaf,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x50,0xac,
+0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb0,0x8f,0x02,0x00,0x04,0x24,0x00,0x02,0x00,0x08,
+0x20,0x00,0xbd,0x27,0x10,0x00,0xe4,0x8c,0x08,0x00,0xe3,0x8c,0xe9,0xff,0x81,0x04,
+0x82,0x11,0x03,0x00,0x14,0x00,0xe2,0x8c,0x00,0x00,0x00,0x00,0x42,0x12,0x02,0x00,
+0x3f,0x00,0x42,0x30,0x14,0x00,0x42,0x28,0xe2,0xff,0x40,0x14,0x82,0x11,0x03,0x00,
+0x9f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x10,0x82,0x00,0x70,0x02,0x00,0x08,
+0x10,0x00,0xe2,0xac,0xff,0xff,0x84,0x30,0x2a,0xb0,0x02,0x3c,0x0d,0x00,0x42,0x34,
+0x80,0x20,0x04,0x00,0x21,0x20,0x82,0x00,0x04,0x00,0x82,0x24,0xff,0xff,0xa5,0x30,
+0x0b,0x20,0x45,0x00,0x01,0x00,0x03,0x24,0x02,0x00,0x02,0x24,0x00,0x00,0x83,0xa0,
+0x00,0x00,0x82,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xc0,0xff,0xbd,0x27,
+0x02,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c,0x24,0x00,0xb3,0xaf,0x78,0x1b,0x53,0x24,
+0x00,0x80,0x02,0x3c,0x38,0x00,0xbe,0xaf,0x8c,0x0a,0x42,0x24,0xb0,0x03,0x7e,0x34,
+0x18,0x03,0x63,0x34,0x2c,0x00,0xb5,0xaf,0x3c,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,
+0x30,0x00,0xb6,0xaf,0x28,0x00,0xb4,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,
+0x18,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,0x21,0xa8,0x60,0x02,0xc0,0x24,0x62,0x8e,
+0x2c,0x25,0x72,0x8e,0x21,0x20,0x00,0x00,0x00,0x00,0xc2,0xaf,0xc4,0x24,0x62,0xae,
+0x00,0x00,0xd2,0xaf,0x00,0x02,0x00,0x0c,0x21,0xa0,0xa0,0x02,0x2c,0x25,0x64,0x8e,
+0x30,0x25,0x63,0x8e,0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,
+0x0a,0x18,0x82,0x00,0x02,0x80,0x02,0x3c,0x2c,0x25,0x63,0xae,0x74,0xaf,0x42,0x24,
+0x2c,0x25,0xa5,0x8e,0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,
+0x02,0x80,0x02,0x3c,0xff,0xff,0x43,0x32,0x25,0x80,0x62,0x00,0x00,0x00,0x90,0xac,
+0x0c,0x00,0x02,0x92,0xff,0x00,0x16,0x24,0x01,0x00,0x17,0x24,0x00,0x00,0x82,0xac,
+0x0c,0x00,0x11,0x92,0x20,0x10,0x02,0x3c,0x21,0x20,0x00,0x00,0x00,0x1a,0x11,0x00,
+0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0x05,0x00,0x36,0x12,0x40,0x00,0x07,0x24,
+0xc0,0x24,0xa3,0xae,0x74,0x24,0xb1,0xa2,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x00,0x00,0x02,0x96,0x24,0x24,0x83,0x8e,0x21,0x28,0x40,0x02,0x27,0x30,0x02,0x00,
+0x21,0x10,0x62,0x00,0x2b,0x18,0x66,0x00,0x21,0x20,0x00,0x00,0x02,0x00,0x60,0x10,
+0x40,0x00,0x07,0x24,0x24,0x24,0x82,0xae,0x04,0x00,0x06,0x8e,0x08,0x00,0x03,0x8e,
+0xff,0xe0,0x02,0x3c,0xff,0xff,0x42,0x34,0x1f,0x00,0xc6,0x30,0x24,0x18,0x62,0x00,
+0x00,0x36,0x06,0x00,0xff,0xdf,0x02,0x3c,0x25,0x18,0x66,0x00,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x00,0x40,0x06,0x3c,0x25,0x18,0x66,0x00,0xc0,0xff,0x02,0x24,
+0x24,0x18,0x62,0x00,0x08,0x00,0x03,0xae,0xc4,0x24,0xa6,0x8e,0xc3,0x01,0x00,0x0c,
+0x10,0x00,0xb7,0xaf,0xc4,0x24,0xa3,0x8e,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,
+0x00,0x00,0x43,0xac,0x00,0x02,0x00,0x0c,0x21,0x20,0x00,0x00,0x2a,0xb0,0x02,0x3c,
+0x01,0x00,0x42,0x34,0x02,0x00,0x03,0x24,0x00,0x00,0x57,0xa0,0x00,0x00,0x43,0xa0,
+0xae,0xff,0x36,0x16,0x41,0xb0,0x03,0x3c,0x08,0x0b,0xa2,0x8e,0x3c,0x00,0xbf,0x8f,
+0x00,0x38,0x42,0x34,0x00,0x00,0x62,0xac,0x38,0x00,0xbe,0x8f,0x08,0x0b,0xa2,0xae,
+0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x25,0xb0,0x04,0x3c,0x00,0x80,0x02,0x3c,
+0xc0,0xff,0xbd,0x27,0x18,0x03,0x83,0x34,0x68,0x0c,0x42,0x24,0x3c,0x00,0xbf,0xaf,
+0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,
+0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,
+0x18,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,0x78,0x1b,0x55,0x24,0xb0,0x03,0x96,0x34,
+0x4e,0x03,0x00,0x08,0x21,0xf0,0xa0,0x02,0x24,0x10,0x62,0x00,0x04,0x00,0x42,0x34,
+0x02,0x80,0x03,0x3c,0x78,0x1b,0x71,0x24,0x08,0x00,0x02,0xae,0xdc,0x24,0x26,0x8e,
+0x01,0x00,0x04,0x24,0x21,0x28,0x80,0x02,0x40,0x00,0x07,0x24,0x01,0x00,0x12,0x24,
+0xc3,0x01,0x00,0x0c,0x10,0x00,0xb2,0xaf,0xdc,0x24,0x23,0x8e,0x25,0xb0,0x02,0x3c,
+0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x02,0x00,0x0c,0x01,0x00,0x04,0x24,
+0x82,0x0b,0x22,0x92,0x00,0x00,0x00,0x00,0x88,0x00,0x40,0x10,0x2a,0xb0,0x02,0x3c,
+0x09,0x00,0x42,0x34,0x02,0x00,0x03,0x24,0x00,0x00,0x52,0xa0,0x00,0x00,0x43,0xa0,
+0x9d,0x00,0x77,0x12,0x00,0x00,0x00,0x00,0xd8,0x24,0xa2,0x8e,0x44,0x25,0xb4,0x8e,
+0x01,0x00,0x04,0x24,0x00,0x00,0xc2,0xae,0xdc,0x24,0xa2,0xae,0x00,0x00,0xd4,0xae,
+0x00,0x02,0x00,0x0c,0x00,0x00,0x00,0x00,0x44,0x25,0xa4,0x8e,0x48,0x25,0xa3,0x8e,
+0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,
+0x44,0x25,0xa3,0xae,0x44,0x25,0xc2,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0xc2,0xae,
+0x02,0x80,0x11,0x3c,0xff,0xff,0x82,0x32,0x25,0x80,0x51,0x00,0x00,0x00,0xd0,0xae,
+0x0c,0x00,0x03,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0xc3,0xae,0x02,0x00,0x02,0x92,
+0x06,0x00,0x03,0x96,0x21,0x10,0x54,0x00,0xff,0xff,0x42,0x30,0x01,0x00,0x63,0x30,
+0x12,0x00,0x60,0x10,0x25,0x30,0x51,0x00,0xec,0x0c,0xc3,0x97,0x00,0x00,0x00,0x00,
+0x01,0x00,0x62,0x24,0xec,0x0c,0xc2,0xa7,0x0c,0x00,0x04,0x8e,0x00,0xf0,0x02,0x3c,
+0xff,0x0f,0x63,0x30,0xff,0xff,0x42,0x34,0x00,0x2c,0x03,0x00,0x24,0x20,0x82,0x00,
+0x25,0x20,0x85,0x00,0x0c,0x00,0x04,0xae,0x16,0x00,0xc2,0x94,0x00,0x19,0x03,0x00,
+0x0f,0x00,0x42,0x30,0x25,0x10,0x43,0x00,0x16,0x00,0xc2,0xa4,0x02,0x80,0x03,0x3c,
+0x98,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x17,0x00,0x40,0x10,0x02,0x80,0x03,0x3c,
+0x56,0x43,0x62,0x90,0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x30,0x77,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x9a,0x44,0x62,0x90,0x00,0x00,0x00,0x00,
+0x0f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,0x0b,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x02,0x00,0x02,0x92,0x00,0x00,0x00,0x00,0x21,0x10,0x54,0x00,0xff,0xff,0x42,0x30,
+0x25,0x28,0x51,0x00,0x00,0x00,0xa4,0x94,0x08,0x00,0x02,0x24,0x0c,0x00,0x83,0x30,
+0x6a,0x00,0x62,0x10,0x02,0x80,0x02,0x3c,0x0c,0x00,0x13,0x92,0xff,0x00,0x17,0x24,
+0x0d,0x00,0x77,0x12,0x02,0x80,0x02,0x3c,0x78,0x1b,0x48,0x24,0x00,0x1a,0x13,0x00,
+0x20,0x10,0x02,0x3c,0x44,0x25,0x05,0x8d,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,
+0x01,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0xd8,0x24,0x03,0xad,0x78,0x24,0x13,0xa1,
+0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x04,0x00,0x04,0x8e,0x08,0x00,0x03,0x8e,
+0xff,0xe0,0x02,0x3c,0xff,0xff,0x42,0x34,0x1f,0x00,0x84,0x30,0x24,0x18,0x62,0x00,
+0x00,0x26,0x04,0x00,0xff,0xdf,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0x82,0x11,0x03,0x00,
+0x01,0x00,0x42,0x30,0x78,0xff,0x40,0x10,0xc0,0xff,0x02,0x24,0x08,0x00,0x03,0xae,
+0x02,0x80,0x03,0x3c,0x78,0x1b,0x71,0x24,0xdc,0x24,0x26,0x8e,0x01,0x00,0x04,0x24,
+0x21,0x28,0x80,0x02,0x40,0x00,0x07,0x24,0x01,0x00,0x12,0x24,0xc3,0x01,0x00,0x0c,
+0x10,0x00,0xb2,0xaf,0xdc,0x24,0x23,0x8e,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,
+0x00,0x00,0x43,0xac,0x00,0x02,0x00,0x0c,0x01,0x00,0x04,0x24,0x82,0x0b,0x22,0x92,
+0x00,0x00,0x00,0x00,0x7a,0xff,0x40,0x14,0x2a,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x82,0x0b,0x32,0xa2,
+0x02,0x00,0x02,0x92,0x02,0x80,0x03,0x3c,0x21,0x10,0x54,0x00,0xff,0xff,0x42,0x30,
+0x25,0x10,0x43,0x00,0x02,0x00,0x45,0x94,0x00,0x00,0x00,0x00,0xff,0x00,0xa4,0x30,
+0x00,0xc0,0x84,0x24,0xff,0xff,0x84,0x30,0x2c,0x22,0x00,0x0c,0x83,0x0b,0x25,0xa2,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x2a,0xb0,0x02,0x3c,
+0x09,0x00,0x42,0x34,0x02,0x00,0x03,0x24,0x00,0x00,0x52,0xa0,0x00,0x00,0x43,0xa0,
+0x65,0xff,0x77,0x16,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x08,0x0b,0x22,0x8e,0x41,0xb0,0x03,0x3c,
+0x3c,0x00,0xbf,0x8f,0x00,0x38,0x42,0x34,0x00,0x00,0x62,0xac,0x38,0x00,0xbe,0x8f,
+0x08,0x0b,0x22,0xae,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,
+0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,
+0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x55,0x1f,0x00,0x0c,
+0x01,0x00,0x04,0x24,0x8a,0x03,0x00,0x08,0x02,0x80,0x03,0x3c,0xb1,0x44,0x43,0x90,
+0x00,0x00,0x00,0x00,0x94,0xff,0x60,0x14,0x00,0x10,0x82,0x34,0x9a,0x03,0x00,0x08,
+0x00,0x00,0xa2,0xa4,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x24,0x10,0x63,0x24,
+0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xc0,0xff,0xbd,0x27,0x2c,0x00,0xb5,0xaf,0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf,
+0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,
+0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x02,0x80,0x06,0x3c,
+0x54,0x44,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,
+0x40,0x10,0x63,0x24,0x40,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,0x21,0xa8,0x00,0x00,
+0x03,0x00,0x80,0x10,0x7f,0x00,0xa2,0x30,0xbf,0x00,0xa2,0x30,0x01,0x00,0x15,0x24,
+0x54,0x44,0xc2,0xa0,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x02,0x80,0x02,0x3c,0x78,0x1b,0x52,0x24,0x02,0x80,0x17,0x3c,0x02,0x80,0x14,0x3c,
+0x21,0xf0,0x40,0x02,0x4c,0x04,0x00,0x08,0x21,0xb0,0x40,0x02,0x58,0x24,0xd0,0xa3,
+0xfc,0x24,0x45,0x8e,0x90,0x24,0x46,0x8e,0x03,0x00,0x04,0x24,0x40,0x00,0x07,0x24,
+0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x94,0x24,0xc5,0x8e,0x21,0x20,0x20,0x02,
+0x51,0x02,0x00,0x0c,0x21,0x30,0x60,0x02,0x21,0x20,0x00,0x00,0x21,0x28,0xa0,0x02,
+0x95,0x02,0x00,0x0c,0x21,0x30,0x00,0x02,0x9c,0x43,0x82,0x96,0x25,0xb0,0x05,0x3c,
+0x66,0x03,0xa4,0x34,0x01,0x00,0x42,0x24,0x9c,0x43,0x82,0xa6,0x9c,0x43,0x83,0x96,
+0xff,0x00,0x02,0x24,0x00,0x00,0x83,0xa4,0x5f,0x00,0x02,0x12,0x00,0x00,0x00,0x00,
+0x90,0x24,0x42,0x8e,0x03,0x00,0x04,0x24,0xfc,0x24,0x53,0x8e,0x00,0x02,0x00,0x0c,
+0x94,0x24,0x42,0xae,0xfc,0x24,0x44,0x8e,0x00,0x25,0x43,0x8e,0x02,0x80,0x10,0x3c,
+0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,
+0xff,0xff,0x65,0x32,0x25,0x88,0xb0,0x00,0xfc,0x24,0x43,0xae,0x02,0x00,0x22,0x92,
+0x06,0x00,0x23,0x96,0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30,0x01,0x00,0x63,0x30,
+0x11,0x00,0x60,0x10,0x25,0x28,0x50,0x00,0xec,0x0c,0x44,0x96,0x00,0xf0,0x06,0x3c,
+0xff,0xff,0xc6,0x34,0x01,0x00,0x82,0x24,0xec,0x0c,0x42,0xa6,0x0c,0x00,0x23,0x8e,
+0xff,0x0f,0x84,0x30,0x00,0x14,0x04,0x00,0x24,0x18,0x66,0x00,0x25,0x18,0x62,0x00,
+0x0c,0x00,0x23,0xae,0x16,0x00,0xa2,0x94,0x00,0x21,0x04,0x00,0x0f,0x00,0x42,0x30,
+0x25,0x10,0x44,0x00,0x16,0x00,0xa2,0xa4,0x98,0x44,0xe2,0x92,0x00,0x00,0x00,0x00,
+0x1c,0x00,0x40,0x10,0x02,0x80,0x03,0x3c,0x56,0x43,0x62,0x90,0x00,0x00,0x00,0x00,
+0x02,0x00,0x42,0x30,0x21,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,
+0x9a,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x0f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,
+0x0b,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x02,0x00,0x22,0x92,0x00,0x00,0x00,0x00,
+0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30,0x25,0x28,0x50,0x00,0x00,0x00,0xa4,0x94,
+0x08,0x00,0x02,0x24,0x0c,0x00,0x83,0x30,0x43,0x00,0x62,0x10,0x02,0x80,0x02,0x3c,
+0x98,0x44,0xe2,0x92,0x05,0x00,0x03,0x24,0xff,0x00,0x42,0x30,0x0f,0x00,0x43,0x10,
+0x02,0x80,0x03,0x3c,0x0c,0x00,0x30,0x92,0xff,0x00,0x02,0x24,0xa6,0xff,0x02,0x12,
+0x00,0x12,0x10,0x00,0x20,0x10,0x03,0x3c,0x21,0x10,0x43,0x00,0x9b,0xff,0xa0,0x16,
+0x90,0x24,0xc2,0xaf,0x34,0x04,0x00,0x08,0x54,0x24,0xd0,0xa3,0x55,0x1f,0x00,0x0c,
+0x01,0x00,0x04,0x24,0x7c,0x04,0x00,0x08,0x02,0x80,0x03,0x3c,0xb3,0x44,0x62,0x90,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0xee,0xff,0x40,0x10,0x02,0x80,0x03,0x3c,
+0xb2,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x34,0xb2,0x44,0x62,0xa0,
+0x91,0x04,0x00,0x08,0x00,0x00,0x00,0x00,0x29,0x00,0xa0,0x12,0x2a,0xb0,0x02,0x3c,
+0x58,0x24,0xc3,0x92,0xb0,0x03,0xa5,0x34,0x21,0x20,0x60,0x00,0x41,0x00,0x42,0x34,
+0x00,0x00,0x43,0xa0,0x00,0x00,0xa4,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,0x78,0x1b,0x45,0x24,0x08,0x0b,0xa4,0x8c,
+0x01,0x00,0x02,0x3c,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x80,0x42,0x34,
+0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x64,0xac,
+0x08,0x00,0xe0,0x03,0x08,0x0b,0xa4,0xac,0xb1,0x44,0x43,0x90,0x00,0x00,0x00,0x00,
+0xbb,0xff,0x60,0x14,0x00,0x10,0x82,0x34,0x8c,0x04,0x00,0x08,0x00,0x00,0xa2,0xa4,
+0x54,0x24,0xc3,0x92,0xb0,0x03,0xa5,0x34,0x21,0x20,0x60,0x00,0x40,0x00,0x42,0x34,
+0x00,0x00,0x43,0xa0,0x00,0x00,0xa4,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,0x78,0x1b,0x45,0x24,0x08,0x0b,0xa4,0x8c,
+0x01,0x00,0x02,0x3c,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,
+0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x00,0x80,0x42,0x34,
+0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x40,0x00,0xbd,0x27,0x00,0x00,0x64,0xac,
+0x08,0x00,0xe0,0x03,0x08,0x0b,0xa4,0xac,0xb8,0xff,0xbd,0x27,0x44,0x00,0xbf,0xaf,
+0x40,0x00,0xbe,0xaf,0x3c,0x00,0xb7,0xaf,0x38,0x00,0xb6,0xaf,0x34,0x00,0xb5,0xaf,
+0x30,0x00,0xb4,0xaf,0x2c,0x00,0xb3,0xaf,0x28,0x00,0xb2,0xaf,0x24,0x00,0xb1,0xaf,
+0x20,0x00,0xb0,0xaf,0x02,0x80,0x06,0x3c,0x54,0x44,0xc5,0x90,0x00,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,0xd8,0x13,0x63,0x24,0x10,0x00,0xa4,0x30,
+0x00,0x00,0x43,0xac,0x18,0x00,0xa0,0xaf,0x04,0x00,0x80,0x10,0xdf,0x00,0xa2,0x30,
+0x01,0x00,0x03,0x24,0xef,0x00,0xa2,0x30,0x18,0x00,0xa3,0xaf,0x54,0x44,0xc2,0xa0,
+0x54,0x44,0xc3,0x90,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x02,0x80,0x17,0x3c,0x78,0x1b,0xf4,0x26,0x21,0xa8,0x40,0x00,0x02,0x80,0x16,0x3c,
+0x39,0x05,0x00,0x08,0x21,0xf0,0x80,0x02,0x60,0x24,0x71,0xa0,0x78,0x1b,0xe2,0x26,
+0x9c,0x24,0x46,0x8c,0x08,0x25,0x45,0x8c,0x04,0x00,0x04,0x24,0x40,0x00,0x07,0x24,
+0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x78,0x1b,0xf2,0x26,0xa0,0x24,0x45,0x8e,
+0x21,0x20,0x00,0x02,0x51,0x02,0x00,0x0c,0x21,0x30,0x60,0x02,0x18,0x00,0xa5,0x8f,
+0x02,0x00,0x04,0x24,0x95,0x02,0x00,0x0c,0x21,0x30,0x20,0x02,0x9c,0x43,0xc2,0x96,
+0x25,0xb0,0x05,0x3c,0x66,0x03,0xa4,0x34,0x01,0x00,0x42,0x24,0x9c,0x43,0xc2,0xa6,
+0x9c,0x43,0xc3,0x96,0xff,0x00,0x02,0x24,0x00,0x00,0x83,0xa4,0x71,0x00,0x22,0x12,
+0x00,0x00,0x00,0x00,0x9c,0x24,0x82,0x8e,0x08,0x25,0x93,0x8e,0x04,0x00,0x04,0x24,
+0x00,0x00,0xa2,0xae,0xa0,0x24,0x82,0xae,0x00,0x00,0xb3,0xae,0x00,0x02,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x08,0x25,0x84,0x8e,0x0c,0x25,0x83,0x8e,0x40,0x00,0x84,0x24,
+0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,0x08,0x25,0x83,0xae,
+0x08,0x25,0xc2,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xae,0x02,0x80,0x11,0x3c,
+0xff,0xff,0x62,0x32,0x25,0x80,0x51,0x00,0x00,0x00,0xb0,0xae,0x0c,0x00,0x03,0x92,
+0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xae,0x02,0x00,0x02,0x92,0x06,0x00,0x03,0x96,
+0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30,0x01,0x00,0x63,0x30,0x12,0x00,0x60,0x10,
+0x25,0x30,0x51,0x00,0xec,0x0c,0xc3,0x97,0x00,0x00,0x00,0x00,0x01,0x00,0x62,0x24,
+0xec,0x0c,0xc2,0xa7,0x0c,0x00,0x04,0x8e,0x00,0xf0,0x02,0x3c,0xff,0x0f,0x63,0x30,
+0xff,0xff,0x42,0x34,0x00,0x2c,0x03,0x00,0x24,0x20,0x82,0x00,0x25,0x20,0x85,0x00,
+0x0c,0x00,0x04,0xae,0x16,0x00,0xc2,0x94,0x00,0x19,0x03,0x00,0x0f,0x00,0x42,0x30,
+0x25,0x10,0x43,0x00,0x16,0x00,0xc2,0xa4,0x02,0x80,0x03,0x3c,0x98,0x44,0x62,0x90,
+0x00,0x00,0x00,0x00,0x19,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,
+0x56,0x43,0x62,0x90,0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x30,0x31,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x9a,0x44,0x62,0x90,0x00,0x00,0x00,0x00,
+0x0f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,0x0c,0x00,0x40,0x10,0x02,0x80,0x03,0x3c,
+0x02,0x00,0x02,0x92,0x00,0x00,0x00,0x00,0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30,
+0x25,0x28,0x51,0x00,0x00,0x00,0xa4,0x94,0x08,0x00,0x02,0x24,0x0c,0x00,0x83,0x30,
+0x48,0x00,0x62,0x10,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x98,0x44,0x62,0x90,
+0x05,0x00,0x03,0x24,0xff,0x00,0x42,0x30,0x0f,0x00,0x43,0x10,0x02,0x80,0x03,0x3c,
+0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,0x97,0xff,0x22,0x12,0x20,0x10,0x03,0x3c,
+0x00,0x12,0x11,0x00,0x21,0x10,0x43,0x00,0x78,0x1b,0xe3,0x26,0x9c,0x24,0x62,0xac,
+0x18,0x00,0xa2,0x8f,0x00,0x00,0x00,0x00,0x87,0xff,0x40,0x14,0x00,0x00,0x00,0x00,
+0x1f,0x05,0x00,0x08,0x5c,0x24,0x71,0xa0,0xb3,0x44,0x62,0x90,0x00,0x00,0x00,0x00,
+0x02,0x00,0x42,0x30,0xee,0xff,0x40,0x10,0x02,0x80,0x03,0x3c,0xb2,0x44,0x62,0x90,
+0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x34,0xb2,0x44,0x62,0xa0,0x8c,0x05,0x00,0x08,
+0x00,0x00,0x00,0x00,0x55,0x1f,0x00,0x0c,0x01,0x00,0x04,0x24,0x76,0x05,0x00,0x08,
+0x02,0x80,0x03,0x3c,0x18,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00,0x28,0x00,0x60,0x10,
+0x2a,0xb0,0x02,0x3c,0x60,0x24,0x43,0x92,0xb0,0x03,0xa5,0x34,0x21,0x20,0x60,0x00,
+0x43,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x00,0x00,0xa4,0xac,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x78,0x1b,0xe5,0x26,0x08,0x0b,0xa2,0x8c,
+0x44,0x00,0xbf,0x8f,0x40,0x00,0xbe,0x8f,0x3c,0x00,0xb7,0x8f,0x38,0x00,0xb6,0x8f,
+0x34,0x00,0xb5,0x8f,0x30,0x00,0xb4,0x8f,0x2c,0x00,0xb3,0x8f,0x28,0x00,0xb2,0x8f,
+0x24,0x00,0xb1,0x8f,0x20,0x00,0xb0,0x8f,0x06,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,
+0x41,0xb0,0x04,0x3c,0x48,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,
+0x08,0x0b,0xa2,0xac,0xb1,0x44,0x43,0x90,0x00,0x00,0x00,0x00,0xb7,0xff,0x60,0x14,
+0x02,0x80,0x03,0x3c,0x00,0x10,0x82,0x34,0x87,0x05,0x00,0x08,0x00,0x00,0xa2,0xa4,
+0x5c,0x24,0x43,0x92,0xb0,0x03,0xa5,0x34,0x21,0x20,0x60,0x00,0x42,0x00,0x42,0x34,
+0x00,0x00,0x43,0xa0,0x00,0x00,0xa4,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x78,0x1b,0xe5,0x26,0x08,0x0b,0xa2,0x8c,0x44,0x00,0xbf,0x8f,
+0x40,0x00,0xbe,0x8f,0x3c,0x00,0xb7,0x8f,0x38,0x00,0xb6,0x8f,0x34,0x00,0xb5,0x8f,
+0x30,0x00,0xb4,0x8f,0x2c,0x00,0xb3,0x8f,0x28,0x00,0xb2,0x8f,0x24,0x00,0xb1,0x8f,
+0x20,0x00,0xb0,0x8f,0x06,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,
+0x48,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,
+0xb8,0xff,0xbd,0x27,0x44,0x00,0xbf,0xaf,0x40,0x00,0xbe,0xaf,0x3c,0x00,0xb7,0xaf,
+0x38,0x00,0xb6,0xaf,0x34,0x00,0xb5,0xaf,0x30,0x00,0xb4,0xaf,0x2c,0x00,0xb3,0xaf,
+0x28,0x00,0xb2,0xaf,0x24,0x00,0xb1,0xaf,0x20,0x00,0xb0,0xaf,0x02,0x80,0x06,0x3c,
+0x54,0x44,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,
+0xd0,0x17,0x63,0x24,0x01,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,0x18,0x00,0xa0,0xaf,
+0x04,0x00,0x80,0x10,0xf7,0x00,0xa2,0x30,0x01,0x00,0x03,0x24,0xfe,0x00,0xa2,0x30,
+0x18,0x00,0xa3,0xaf,0x54,0x44,0xc2,0xa0,0x54,0x44,0xc3,0x90,0x25,0xb0,0x02,0x3c,
+0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x02,0x80,0x17,0x3c,0x78,0x1b,0xf4,0x26,0x21,0xa8,0x40,0x00,
+0x02,0x80,0x16,0x3c,0x36,0x06,0x00,0x08,0x21,0xf0,0x80,0x02,0x68,0x24,0x71,0xa0,
+0x78,0x1b,0xe2,0x26,0xa8,0x24,0x46,0x8c,0x14,0x25,0x45,0x8c,0x05,0x00,0x04,0x24,
+0x40,0x00,0x07,0x24,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x78,0x1b,0xf2,0x26,
+0xac,0x24,0x45,0x8e,0x21,0x20,0x00,0x02,0x51,0x02,0x00,0x0c,0x21,0x30,0x60,0x02,
+0x18,0x00,0xa5,0x8f,0x04,0x00,0x04,0x24,0x95,0x02,0x00,0x0c,0x21,0x30,0x20,0x02,
+0x9c,0x43,0xc2,0x96,0x25,0xb0,0x05,0x3c,0x66,0x03,0xa4,0x34,0x01,0x00,0x42,0x24,
+0x9c,0x43,0xc2,0xa6,0x9c,0x43,0xc3,0x96,0xff,0x00,0x02,0x24,0x00,0x00,0x83,0xa4,
+0x71,0x00,0x22,0x12,0x00,0x00,0x00,0x00,0xa8,0x24,0x82,0x8e,0x14,0x25,0x93,0x8e,
+0x05,0x00,0x04,0x24,0x00,0x00,0xa2,0xae,0xac,0x24,0x82,0xae,0x00,0x00,0xb3,0xae,
+0x00,0x02,0x00,0x0c,0x00,0x00,0x00,0x00,0x14,0x25,0x84,0x8e,0x18,0x25,0x83,0x8e,
+0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,0x0a,0x18,0x82,0x00,
+0x14,0x25,0x83,0xae,0x14,0x25,0xc2,0x8f,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xae,
+0x02,0x80,0x11,0x3c,0xff,0xff,0x62,0x32,0x25,0x80,0x51,0x00,0x00,0x00,0xb0,0xae,
+0x0c,0x00,0x03,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xae,0x02,0x00,0x02,0x92,
+0x06,0x00,0x03,0x96,0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30,0x01,0x00,0x63,0x30,
+0x12,0x00,0x60,0x10,0x25,0x30,0x51,0x00,0xec,0x0c,0xc3,0x97,0x00,0x00,0x00,0x00,
+0x01,0x00,0x62,0x24,0xec,0x0c,0xc2,0xa7,0x0c,0x00,0x04,0x8e,0x00,0xf0,0x02,0x3c,
+0xff,0x0f,0x63,0x30,0xff,0xff,0x42,0x34,0x00,0x2c,0x03,0x00,0x24,0x20,0x82,0x00,
+0x25,0x20,0x85,0x00,0x0c,0x00,0x04,0xae,0x16,0x00,0xc2,0x94,0x00,0x19,0x03,0x00,
+0x0f,0x00,0x42,0x30,0x25,0x10,0x43,0x00,0x16,0x00,0xc2,0xa4,0x02,0x80,0x03,0x3c,
+0x98,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x19,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x02,0x80,0x03,0x3c,0x56,0x43,0x62,0x90,0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x30,
+0x31,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x9a,0x44,0x62,0x90,
+0x00,0x00,0x00,0x00,0x0f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,0x0c,0x00,0x40,0x10,
+0x02,0x80,0x03,0x3c,0x02,0x00,0x02,0x92,0x00,0x00,0x00,0x00,0x21,0x10,0x53,0x00,
+0xff,0xff,0x42,0x30,0x25,0x28,0x51,0x00,0x00,0x00,0xa4,0x94,0x08,0x00,0x02,0x24,
+0x0c,0x00,0x83,0x30,0x48,0x00,0x62,0x10,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,
+0x98,0x44,0x62,0x90,0x05,0x00,0x03,0x24,0xff,0x00,0x42,0x30,0x0f,0x00,0x43,0x10,
+0x02,0x80,0x03,0x3c,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,0x97,0xff,0x22,0x12,
+0x20,0x10,0x03,0x3c,0x00,0x12,0x11,0x00,0x21,0x10,0x43,0x00,0x78,0x1b,0xe3,0x26,
+0xa8,0x24,0x62,0xac,0x18,0x00,0xa2,0x8f,0x00,0x00,0x00,0x00,0x87,0xff,0x40,0x14,
+0x00,0x00,0x00,0x00,0x1c,0x06,0x00,0x08,0x64,0x24,0x71,0xa0,0xb3,0x44,0x62,0x90,
+0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x30,0xee,0xff,0x40,0x10,0x02,0x80,0x03,0x3c,
+0xb2,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x34,0xb2,0x44,0x62,0xa0,
+0x89,0x06,0x00,0x08,0x00,0x00,0x00,0x00,0x55,0x1f,0x00,0x0c,0x01,0x00,0x04,0x24,
+0x73,0x06,0x00,0x08,0x02,0x80,0x03,0x3c,0x18,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00,
+0x28,0x00,0x60,0x10,0x2a,0xb0,0x02,0x3c,0x68,0x24,0x43,0x92,0xb0,0x03,0xa5,0x34,
+0x21,0x20,0x60,0x00,0x45,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x00,0x00,0xa4,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x78,0x1b,0xe5,0x26,
+0x08,0x0b,0xa2,0x8c,0x44,0x00,0xbf,0x8f,0x40,0x00,0xbe,0x8f,0x3c,0x00,0xb7,0x8f,
+0x38,0x00,0xb6,0x8f,0x34,0x00,0xb5,0x8f,0x30,0x00,0xb4,0x8f,0x2c,0x00,0xb3,0x8f,
+0x28,0x00,0xb2,0x8f,0x24,0x00,0xb1,0x8f,0x20,0x00,0xb0,0x8f,0x18,0x00,0x03,0x3c,
+0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x48,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,
+0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,0xb1,0x44,0x43,0x90,0x00,0x00,0x00,0x00,
+0xb7,0xff,0x60,0x14,0x02,0x80,0x03,0x3c,0x00,0x10,0x82,0x34,0x84,0x06,0x00,0x08,
+0x00,0x00,0xa2,0xa4,0x64,0x24,0x43,0x92,0xb0,0x03,0xa5,0x34,0x21,0x20,0x60,0x00,
+0x44,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x00,0x00,0xa4,0xac,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x78,0x1b,0xe5,0x26,0x08,0x0b,0xa2,0x8c,
+0x44,0x00,0xbf,0x8f,0x40,0x00,0xbe,0x8f,0x3c,0x00,0xb7,0x8f,0x38,0x00,0xb6,0x8f,
+0x34,0x00,0xb5,0x8f,0x30,0x00,0xb4,0x8f,0x2c,0x00,0xb3,0x8f,0x28,0x00,0xb2,0x8f,
+0x24,0x00,0xb1,0x8f,0x20,0x00,0xb0,0x8f,0x18,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,
+0x41,0xb0,0x04,0x3c,0x48,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,
+0x08,0x0b,0xa2,0xac,0xb8,0xff,0xbd,0x27,0x44,0x00,0xbf,0xaf,0x40,0x00,0xbe,0xaf,
+0x3c,0x00,0xb7,0xaf,0x38,0x00,0xb6,0xaf,0x34,0x00,0xb5,0xaf,0x30,0x00,0xb4,0xaf,
+0x2c,0x00,0xb3,0xaf,0x28,0x00,0xb2,0xaf,0x24,0x00,0xb1,0xaf,0x20,0x00,0xb0,0xaf,
+0x02,0x80,0x06,0x3c,0x54,0x44,0xc5,0x90,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x18,0x03,0x42,0x34,0xc4,0x1b,0x63,0x24,0x02,0x00,0xa4,0x30,0x00,0x00,0x43,0xac,
+0x18,0x00,0xa0,0xaf,0x04,0x00,0x80,0x10,0xfb,0x00,0xa2,0x30,0x01,0x00,0x03,0x24,
+0xfd,0x00,0xa2,0x30,0x18,0x00,0xa3,0xaf,0x54,0x44,0xc2,0xa0,0x54,0x44,0xc3,0x90,
+0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x02,0x80,0x17,0x3c,0x78,0x1b,0xf4,0x26,
+0x21,0xa8,0x40,0x00,0x02,0x80,0x16,0x3c,0x33,0x07,0x00,0x08,0x21,0xf0,0x80,0x02,
+0x70,0x24,0x71,0xa0,0x78,0x1b,0xe2,0x26,0xb4,0x24,0x46,0x8c,0x20,0x25,0x45,0x8c,
+0x06,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x78,0x1b,0xf2,0x26,0xb8,0x24,0x45,0x8e,0x21,0x20,0x00,0x02,0x51,0x02,0x00,0x0c,
+0x21,0x30,0x60,0x02,0x18,0x00,0xa5,0x8f,0x06,0x00,0x04,0x24,0x95,0x02,0x00,0x0c,
+0x21,0x30,0x20,0x02,0x9c,0x43,0xc2,0x96,0x25,0xb0,0x05,0x3c,0x66,0x03,0xa4,0x34,
+0x01,0x00,0x42,0x24,0x9c,0x43,0xc2,0xa6,0x9c,0x43,0xc3,0x96,0xff,0x00,0x02,0x24,
+0x00,0x00,0x83,0xa4,0x71,0x00,0x22,0x12,0x00,0x00,0x00,0x00,0xb4,0x24,0x82,0x8e,
+0x20,0x25,0x93,0x8e,0x06,0x00,0x04,0x24,0x00,0x00,0xa2,0xae,0xb8,0x24,0x82,0xae,
+0x00,0x00,0xb3,0xae,0x00,0x02,0x00,0x0c,0x00,0x00,0x00,0x00,0x20,0x25,0x84,0x8e,
+0x24,0x25,0x83,0x8e,0x40,0x00,0x84,0x24,0x7f,0x00,0x62,0x24,0x2b,0x10,0x44,0x00,
+0x0a,0x18,0x82,0x00,0x20,0x25,0x83,0xae,0x20,0x25,0xc2,0x8f,0x00,0x00,0x00,0x00,
+0x00,0x00,0xa2,0xae,0x02,0x80,0x11,0x3c,0xff,0xff,0x62,0x32,0x25,0x80,0x51,0x00,
+0x00,0x00,0xb0,0xae,0x0c,0x00,0x03,0x92,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xae,
+0x02,0x00,0x02,0x92,0x06,0x00,0x03,0x96,0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30,
+0x01,0x00,0x63,0x30,0x12,0x00,0x60,0x10,0x25,0x30,0x51,0x00,0xec,0x0c,0xc3,0x97,
+0x00,0x00,0x00,0x00,0x01,0x00,0x62,0x24,0xec,0x0c,0xc2,0xa7,0x0c,0x00,0x04,0x8e,
+0x00,0xf0,0x02,0x3c,0xff,0x0f,0x63,0x30,0xff,0xff,0x42,0x34,0x00,0x2c,0x03,0x00,
+0x24,0x20,0x82,0x00,0x25,0x20,0x85,0x00,0x0c,0x00,0x04,0xae,0x16,0x00,0xc2,0x94,
+0x00,0x19,0x03,0x00,0x0f,0x00,0x42,0x30,0x25,0x10,0x43,0x00,0x16,0x00,0xc2,0xa4,
+0x02,0x80,0x03,0x3c,0x98,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x19,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x56,0x43,0x62,0x90,0x00,0x00,0x00,0x00,
+0x02,0x00,0x42,0x30,0x31,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,
+0x9a,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x0f,0x00,0x42,0x30,0x0c,0x00,0x42,0x28,
+0x0c,0x00,0x40,0x10,0x02,0x80,0x03,0x3c,0x02,0x00,0x02,0x92,0x00,0x00,0x00,0x00,
+0x21,0x10,0x53,0x00,0xff,0xff,0x42,0x30,0x25,0x28,0x51,0x00,0x00,0x00,0xa4,0x94,
+0x08,0x00,0x02,0x24,0x0c,0x00,0x83,0x30,0x48,0x00,0x62,0x10,0x02,0x80,0x02,0x3c,
+0x02,0x80,0x03,0x3c,0x98,0x44,0x62,0x90,0x05,0x00,0x03,0x24,0xff,0x00,0x42,0x30,
+0x0f,0x00,0x43,0x10,0x02,0x80,0x03,0x3c,0x0c,0x00,0x11,0x92,0xff,0x00,0x02,0x24,
+0x97,0xff,0x22,0x12,0x20,0x10,0x03,0x3c,0x00,0x12,0x11,0x00,0x21,0x10,0x43,0x00,
+0x78,0x1b,0xe3,0x26,0xb4,0x24,0x62,0xac,0x18,0x00,0xa2,0x8f,0x00,0x00,0x00,0x00,
+0x87,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x19,0x07,0x00,0x08,0x6c,0x24,0x71,0xa0,
+0xb3,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x30,0xee,0xff,0x40,0x10,
+0x02,0x80,0x03,0x3c,0xb2,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x34,
+0xb2,0x44,0x62,0xa0,0x86,0x07,0x00,0x08,0x00,0x00,0x00,0x00,0x55,0x1f,0x00,0x0c,
+0x01,0x00,0x04,0x24,0x70,0x07,0x00,0x08,0x02,0x80,0x03,0x3c,0x18,0x00,0xa3,0x8f,
+0x00,0x00,0x00,0x00,0x28,0x00,0x60,0x10,0x2a,0xb0,0x02,0x3c,0x70,0x24,0x43,0x92,
+0xb0,0x03,0xa5,0x34,0x21,0x20,0x60,0x00,0x47,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,
+0x00,0x00,0xa4,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x78,0x1b,0xe5,0x26,0x08,0x0b,0xa2,0x8c,0x44,0x00,0xbf,0x8f,0x40,0x00,0xbe,0x8f,
+0x3c,0x00,0xb7,0x8f,0x38,0x00,0xb6,0x8f,0x34,0x00,0xb5,0x8f,0x30,0x00,0xb4,0x8f,
+0x2c,0x00,0xb3,0x8f,0x28,0x00,0xb2,0x8f,0x24,0x00,0xb1,0x8f,0x20,0x00,0xb0,0x8f,
+0x60,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x48,0x00,0xbd,0x27,
+0x00,0x00,0x82,0xac,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,0xb1,0x44,0x43,0x90,
+0x00,0x00,0x00,0x00,0xb7,0xff,0x60,0x14,0x02,0x80,0x03,0x3c,0x00,0x10,0x82,0x34,
+0x81,0x07,0x00,0x08,0x00,0x00,0xa2,0xa4,0x6c,0x24,0x43,0x92,0xb0,0x03,0xa5,0x34,
+0x21,0x20,0x60,0x00,0x46,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x00,0x00,0xa4,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x78,0x1b,0xe5,0x26,
+0x08,0x0b,0xa2,0x8c,0x44,0x00,0xbf,0x8f,0x40,0x00,0xbe,0x8f,0x3c,0x00,0xb7,0x8f,
+0x38,0x00,0xb6,0x8f,0x34,0x00,0xb5,0x8f,0x30,0x00,0xb4,0x8f,0x2c,0x00,0xb3,0x8f,
+0x28,0x00,0xb2,0x8f,0x24,0x00,0xb1,0x8f,0x20,0x00,0xb0,0x8f,0x60,0x00,0x03,0x3c,
+0x25,0x10,0x43,0x00,0x41,0xb0,0x04,0x3c,0x48,0x00,0xbd,0x27,0x00,0x00,0x82,0xac,
+0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0xb8,0x1f,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x05,0x3c,0x78,0x1b,0xa5,0x24,
+0x10,0x0b,0xa2,0x8c,0x08,0x0b,0xa4,0x8c,0x00,0x08,0x03,0x3c,0x24,0x10,0x43,0x00,
+0x25,0x20,0x82,0x00,0x41,0xb0,0x03,0x3c,0x00,0x00,0x64,0xac,0x08,0x00,0xe0,0x03,
+0x08,0x0b,0xa4,0xac,0x25,0xb0,0x04,0x3c,0x00,0x80,0x02,0x3c,0xc8,0xff,0xbd,0x27,
+0x18,0x03,0x83,0x34,0x14,0x20,0x42,0x24,0x30,0x00,0xbf,0xaf,0x2c,0x00,0xb5,0xaf,
+0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,
+0x18,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x02,0x80,0x14,0x3c,0x78,0x1b,0x93,0x26,0xfc,0x00,0x82,0x34,
+0x00,0x00,0x45,0x8c,0xe4,0x0a,0x66,0x96,0x94,0x25,0x63,0x96,0x8c,0x25,0x67,0x8e,
+0x23,0x28,0xa6,0x00,0x21,0x10,0xa3,0x00,0x23,0x88,0x47,0x00,0xb0,0x03,0x84,0x34,
+0x23,0x30,0x23,0x02,0x2b,0x10,0x71,0x00,0x00,0x00,0x83,0xac,0x00,0x00,0x91,0xac,
+0x0b,0x88,0xc2,0x00,0x21,0x20,0x20,0x02,0x39,0x15,0x00,0x0c,0x90,0x25,0x65,0xae,
+0x4b,0x00,0x40,0x10,0x21,0x90,0x40,0x00,0x0c,0x00,0x51,0xac,0x8c,0x25,0x68,0x8e,
+0x90,0x25,0x62,0x8e,0x08,0x00,0x45,0x8e,0x20,0xbd,0x03,0x3c,0x88,0x03,0x63,0x34,
+0x2b,0x10,0x48,0x00,0x40,0x10,0x15,0x3c,0x21,0x20,0x00,0x00,0xff,0xff,0x27,0x32,
+0x00,0x00,0x65,0xac,0x28,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0xe4,0x0a,0x66,0x96,
+0x08,0x00,0x42,0x96,0x40,0x10,0x05,0x3c,0x21,0x20,0x00,0x00,0x21,0x30,0x06,0x01,
+0x25,0x28,0x45,0x00,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x02,0x3c,
+0x68,0x41,0x42,0x24,0x78,0x1b,0x84,0x26,0x90,0x25,0x83,0x8c,0x04,0x00,0x45,0x8c,
+0x8c,0x25,0x83,0xac,0x00,0x00,0x42,0xae,0x04,0x00,0x52,0xac,0x00,0x00,0xb2,0xac,
+0x04,0x00,0x45,0xae,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x78,0x1b,0x85,0x26,0x10,0x0b,0xa2,0x8c,0x08,0x0b,0xa3,0x8c,
+0x30,0x00,0xbf,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,
+0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x04,0x00,0x42,0x30,
+0x25,0x18,0x62,0x00,0x41,0xb0,0x04,0x3c,0x38,0x00,0xbd,0x27,0x00,0x00,0x83,0xac,
+0x08,0x00,0xe0,0x03,0x08,0x0b,0xa3,0xac,0x94,0x25,0x70,0x8e,0x08,0x00,0x45,0x96,
+0xe4,0x0a,0x66,0x96,0x23,0x80,0x08,0x02,0xff,0xff,0x10,0x32,0x21,0x30,0x06,0x01,
+0x25,0x28,0xb5,0x00,0x21,0x38,0x00,0x02,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x00,0x02,0x00,0x0c,0x21,0x20,0x00,0x00,0x08,0x00,0x45,0x96,0xe4,0x0a,0x62,0x96,
+0x23,0x38,0x30,0x02,0x25,0x28,0xb5,0x00,0x21,0xb0,0x06,0x3c,0x21,0x28,0xb0,0x00,
+0x21,0x30,0x46,0x00,0xff,0xff,0xe7,0x30,0x3d,0x08,0x00,0x08,0x21,0x20,0x00,0x00,
+0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x02,0x80,0x04,0x3c,0x58,0x44,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x10,0x63,0x34,
+0x58,0x44,0x83,0xac,0x00,0x60,0x82,0x40,0x49,0x08,0x00,0x08,0x00,0x00,0x00,0x00,
+0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0xc0,0xff,0xbd,0x27,0x00,0x22,0x63,0x24,
+0x18,0x03,0x42,0x34,0x2a,0xb0,0x04,0x3c,0x00,0x00,0x43,0xac,0x3c,0x00,0xbf,0xaf,
+0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,
+0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,
+0x18,0x00,0xb0,0xaf,0x2c,0x00,0x84,0x34,0x00,0x00,0x88,0x8c,0xff,0x00,0x02,0x24,
+0xff,0x00,0x03,0x31,0x9e,0x00,0x62,0x10,0x00,0x80,0x02,0x31,0x33,0x00,0x40,0x10,
+0x00,0xff,0x02,0x3c,0x00,0x80,0x02,0x3c,0x00,0x00,0x82,0xac,0xff,0x00,0x02,0x24,
+0x10,0x00,0x62,0x10,0x02,0x80,0x02,0x3c,0x78,0x1b,0x50,0x24,0xff,0x00,0x03,0x31,
+0x50,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,
+0xe4,0x24,0x03,0xae,0x21,0x30,0x60,0x00,0x80,0x24,0x08,0xa2,0x0a,0x00,0x04,0x24,
+0x40,0x00,0x07,0x24,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x01,0x00,0x03,0x24,
+0x58,0x25,0x03,0xa2,0x02,0x80,0x02,0x3c,0x78,0x1b,0x44,0x24,0x58,0x25,0x83,0x90,
+0x01,0x00,0x02,0x24,0x25,0x00,0x62,0x10,0x02,0x80,0x03,0x3c,0x78,0x1b,0x70,0x24,
+0x59,0x25,0x02,0x92,0x00,0x00,0x00,0x00,0x08,0x00,0x40,0x10,0x00,0x04,0x03,0x3c,
+0x10,0x0b,0x02,0x8e,0x08,0x0b,0x04,0x8e,0x24,0x10,0x43,0x00,0x25,0x20,0x82,0x00,
+0x41,0xb0,0x03,0x3c,0x00,0x00,0x64,0xac,0x08,0x0b,0x04,0xae,0x3c,0x00,0xbf,0x8f,
+0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,
+0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,
+0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x24,0x10,0x02,0x01,
+0xcf,0xff,0x40,0x10,0xff,0x00,0x02,0x24,0x02,0x80,0x03,0x3c,0x78,0x1b,0x62,0x24,
+0x80,0x24,0x43,0x90,0x20,0xb0,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,
+0x0c,0x00,0x68,0x8c,0x9b,0x08,0x00,0x08,0xff,0x00,0x03,0x31,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,0x21,0x88,0x80,0x00,
+0x7c,0x03,0x57,0x34,0x1e,0x03,0x5e,0x34,0x21,0x98,0x80,0x00,0xb0,0x03,0x56,0x34,
+0x01,0x00,0x15,0x24,0x07,0x09,0x00,0x08,0x01,0x00,0x14,0x24,0xf2,0x23,0x22,0x96,
+0x59,0x25,0x35,0xa2,0x01,0x00,0x42,0x34,0x00,0x00,0xc2,0xa7,0xf2,0x23,0x22,0xa6,
+0x30,0x00,0x02,0x24,0x06,0x00,0x42,0x12,0x02,0x80,0x02,0x3c,0x78,0xaf,0x42,0x24,
+0x00,0x00,0x48,0x8c,0x02,0x00,0x02,0x24,0x01,0x00,0x15,0xa1,0x01,0x00,0x02,0xa1,
+0x59,0x25,0x62,0x92,0x00,0x00,0x00,0x00,0x45,0x00,0x54,0x14,0xff,0x00,0x02,0x24,
+0x0c,0x00,0x03,0x92,0x00,0x00,0x00,0x00,0xff,0x00,0x69,0x30,0x40,0x00,0x22,0x11,
+0x20,0x10,0x02,0x3c,0x80,0x24,0x63,0xa2,0x80,0x24,0x28,0x92,0x50,0x25,0x25,0x8e,
+0xff,0x00,0x03,0x31,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x00,0x00,0xc9,0xae,
+0x21,0x30,0x60,0x00,0x00,0x00,0xe8,0xa6,0x0a,0x00,0x04,0x24,0xe4,0x24,0x23,0xae,
+0x40,0x00,0x07,0x24,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x50,0x25,0x30,0x8e,
+0x00,0x02,0x00,0x0c,0x0a,0x00,0x04,0x24,0xff,0xff,0x10,0x32,0x02,0x80,0x02,0x3c,
+0x25,0x80,0x02,0x02,0x02,0x00,0x03,0x92,0x20,0x00,0x02,0x24,0xd3,0xff,0x62,0x14,
+0x21,0x20,0x03,0x02,0x02,0x80,0x02,0x3c,0x88,0xb5,0x44,0xac,0x20,0x00,0x03,0x26,
+0x02,0x00,0x62,0x90,0x59,0x25,0x25,0x92,0x03,0x00,0x64,0x90,0xff,0x00,0x52,0x30,
+0x7f,0x00,0x83,0x30,0x10,0x00,0xb4,0x14,0x28,0x00,0x04,0x26,0x02,0x80,0x05,0x3c,
+0x91,0x43,0xa2,0x90,0x00,0x00,0x00,0x00,0x7f,0x00,0x42,0x30,0x08,0x00,0x62,0x10,
+0x32,0x00,0x42,0x2e,0xf2,0x23,0x22,0x96,0x00,0x00,0x00,0x00,0x10,0x00,0x42,0x34,
+0x00,0x00,0xc2,0xa7,0x91,0x43,0xa3,0xa0,0xf2,0x23,0x22,0xa6,0x32,0x00,0x42,0x2e,
+0xbf,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0xc0,0x18,0x12,0x00,
+0x94,0x9f,0x42,0x24,0x21,0x18,0x62,0x00,0x04,0x00,0x62,0x8c,0x02,0x80,0x03,0x3c,
+0x09,0xf8,0x40,0x00,0x84,0xb5,0x62,0xac,0xe9,0x08,0x00,0x08,0x30,0x00,0x02,0x24,
+0x02,0x80,0x03,0x3c,0x78,0x1b,0x62,0x24,0xad,0x08,0x00,0x08,0x58,0x25,0x40,0xa0,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0xb3,0x08,0x00,0x08,0x02,0x80,0x03,0x3c,0xc8,0xff,0xbd,0x27,0xff,0xff,0xa8,0x30,
+0x02,0x80,0x02,0x3c,0x25,0x40,0x02,0x01,0x30,0x00,0xb6,0xaf,0x20,0x00,0xb2,0xaf,
+0x34,0x00,0xbf,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,
+0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x00,0x00,0x03,0x8d,0xff,0xff,0xd2,0x30,
+0x21,0xb0,0xa0,0x00,0x00,0xc0,0x02,0x24,0x08,0x00,0x45,0x26,0x04,0x00,0x06,0x8d,
+0x24,0x18,0x62,0x00,0xff,0x3f,0xa5,0x30,0xf0,0xff,0x02,0x3c,0x25,0x18,0x65,0x00,
+0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x00,0x80,0x05,0x3c,0x25,0x18,0x65,0x00,
+0xff,0x01,0xc6,0x34,0x00,0x00,0x03,0xad,0x04,0x00,0x06,0xad,0x21,0x48,0x80,0x00,
+0xff,0xff,0xe7,0x30,0x18,0x00,0x12,0xa5,0x1a,0x00,0x07,0xa1,0x18,0x00,0x03,0x8d,
+0xff,0x7f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x02,0x80,0x15,0x3c,
+0x18,0x00,0x03,0xad,0x78,0x1b,0xa5,0x26,0xee,0x23,0xa3,0x90,0x00,0x00,0x00,0x00,
+0x01,0x00,0x62,0x24,0xee,0x23,0xa2,0xa0,0x18,0x00,0x04,0x8d,0xff,0x80,0x02,0x3c,
+0x20,0x00,0x45,0x26,0xff,0xff,0x42,0x34,0x7f,0x00,0x63,0x30,0xff,0xff,0xb2,0x30,
+0x24,0x20,0x82,0x00,0x00,0x1e,0x03,0x00,0x25,0xb0,0x02,0x3c,0xc0,0x00,0x42,0x34,
+0x25,0x20,0x83,0x00,0x07,0x00,0x45,0x32,0x18,0x00,0x04,0xad,0x00,0x00,0x52,0xa4,
+0x03,0x00,0xa0,0x10,0xff,0xff,0x42,0x32,0x08,0x00,0x42,0x26,0xff,0xff,0x42,0x30,
+0x78,0x1b,0xb4,0x26,0xb4,0x25,0x86,0x8e,0xb8,0x25,0x90,0x8e,0xf8,0xff,0x52,0x30,
+0x21,0x10,0xd2,0x00,0x2b,0x10,0x02,0x02,0x31,0x00,0x40,0x10,0xff,0x00,0x33,0x31,
+0x23,0x80,0x06,0x02,0x21,0x28,0xc0,0x02,0xff,0xff,0x07,0x32,0x01,0x00,0x11,0x24,
+0x21,0x20,0x60,0x02,0xc3,0x01,0x00,0x0c,0x10,0x00,0xb1,0xaf,0x23,0x18,0x50,0x02,
+0xff,0xff,0x72,0x30,0x22,0x10,0x02,0x3c,0x21,0x10,0x42,0x02,0x21,0x20,0x60,0x02,
+0x00,0x02,0x00,0x0c,0xb4,0x25,0x82,0xae,0x21,0x28,0xd0,0x02,0x21,0x38,0x40,0x02,
+0x21,0x20,0x60,0x02,0x10,0x00,0xb1,0xaf,0x22,0x10,0x06,0x3c,0xc3,0x01,0x00,0x0c,
+0x78,0x1b,0xb1,0x26,0xb4,0x25,0x23,0x8e,0x25,0xb0,0x10,0x3c,0xb0,0x03,0x02,0x36,
+0x21,0x20,0x60,0x02,0x00,0x00,0x43,0xac,0x00,0x02,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xb4,0x25,0x25,0x8e,0xec,0x00,0x02,0x36,0xbd,0x00,0x04,0x36,0x00,0x00,0x45,0xac,
+0x00,0x00,0x83,0x90,0xc2,0x00,0x10,0x36,0x34,0x00,0xbf,0x8f,0x10,0x00,0x63,0x34,
+0x00,0x00,0x83,0xa0,0x30,0x00,0xb6,0x8f,0x00,0x00,0x05,0xa6,0x2c,0x00,0xb5,0x8f,
+0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,
+0x18,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,
+0x21,0x28,0xc0,0x02,0x21,0x20,0x60,0x02,0x21,0x38,0x40,0x02,0x01,0x00,0x02,0x24,
+0xc3,0x01,0x00,0x0c,0x10,0x00,0xa2,0xaf,0xb4,0x25,0x83,0x8e,0x78,0x1b,0xb1,0x26,
+0x25,0xb0,0x10,0x3c,0x21,0x18,0x72,0x00,0xb4,0x25,0x83,0xae,0xb4,0x25,0x23,0x8e,
+0xb0,0x03,0x02,0x36,0x21,0x20,0x60,0x02,0x00,0x00,0x43,0xac,0x00,0x02,0x00,0x0c,
+0x00,0x00,0x00,0x00,0xb4,0x25,0x25,0x8e,0xec,0x00,0x02,0x36,0xbd,0x00,0x04,0x36,
+0x00,0x00,0x45,0xac,0x00,0x00,0x83,0x90,0xc2,0x00,0x10,0x36,0x34,0x00,0xbf,0x8f,
+0x10,0x00,0x63,0x34,0x00,0x00,0x83,0xa0,0x30,0x00,0xb6,0x8f,0x00,0x00,0x05,0xa6,
+0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,
+0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,
+0x38,0x00,0xbd,0x27,0xc8,0xff,0xbd,0x27,0x1c,0x00,0xb1,0xaf,0x34,0x00,0xbf,0xaf,
+0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x24,0x00,0xb3,0xaf,
+0x20,0x00,0xb2,0xaf,0x18,0x00,0xb0,0xaf,0x21,0x88,0x80,0x00,0x00,0x60,0x14,0x40,
+0x01,0x00,0x81,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x14,0x00,0x83,0x8c,
+0x02,0x80,0x15,0x3c,0x15,0x00,0x02,0x24,0x78,0x1b,0xb3,0x26,0x21,0x28,0x00,0x00,
+0x1d,0x00,0x62,0x10,0x08,0x00,0x06,0x24,0x08,0x00,0x82,0x94,0x02,0x80,0x04,0x3c,
+0x3e,0x46,0x00,0x0c,0x25,0x20,0x44,0x00,0x08,0x00,0x25,0x8e,0x0c,0x00,0x26,0x96,
+0x14,0x00,0x27,0x96,0x3e,0x09,0x00,0x0c,0x09,0x00,0x04,0x24,0x04,0x00,0x22,0x8e,
+0x00,0x00,0x23,0x8e,0x21,0x20,0x20,0x02,0x00,0x00,0x43,0xac,0x04,0x00,0x62,0xac,
+0x00,0x00,0x31,0xae,0x56,0x15,0x00,0x0c,0x04,0x00,0x31,0xae,0x00,0x60,0x94,0x40,
+0x34,0x00,0xbf,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x0c,0x00,0x90,0x8c,0x25,0xb0,0x02,0x3c,
+0xc0,0x00,0x42,0x34,0xb4,0x25,0x68,0x8e,0x07,0x00,0x07,0x32,0x00,0x00,0x50,0xa4,
+0x08,0x00,0x05,0x26,0x0b,0x80,0xa7,0x00,0xb8,0x25,0x63,0x8e,0xf8,0xff,0x10,0x32,
+0x21,0x10,0x10,0x01,0x23,0x90,0x68,0x00,0x2b,0x18,0x62,0x00,0x01,0x00,0x16,0x24,
+0x09,0x00,0x04,0x24,0x21,0x30,0x00,0x01,0x33,0x00,0x60,0x10,0xff,0xff,0x07,0x32,
+0x08,0x00,0x25,0x8e,0xff,0xff,0x47,0x32,0x23,0x80,0x12,0x02,0xc3,0x01,0x00,0x0c,
+0x10,0x00,0xb6,0xaf,0x22,0x10,0x03,0x3c,0x21,0x18,0x03,0x02,0x09,0x00,0x04,0x24,
+0x00,0x02,0x00,0x0c,0xb4,0x25,0x63,0xae,0x08,0x00,0x25,0x8e,0xff,0xff,0x07,0x32,
+0x09,0x00,0x04,0x24,0x21,0x28,0xb2,0x00,0x22,0x10,0x06,0x3c,0xc3,0x01,0x00,0x0c,
+0x10,0x00,0xb6,0xaf,0x00,0x02,0x00,0x0c,0x09,0x00,0x04,0x24,0x78,0x1b,0xa2,0x26,
+0xb4,0x25,0x46,0x8c,0x25,0xb0,0x03,0x3c,0xec,0x00,0x64,0x34,0x00,0x00,0x86,0xac,
+0xbd,0x00,0x65,0x34,0x00,0x00,0xa2,0x90,0xc2,0x00,0x63,0x34,0x21,0x20,0x20,0x02,
+0x10,0x00,0x42,0x34,0x00,0x00,0xa2,0xa0,0x00,0x00,0x66,0xa4,0x04,0x00,0x22,0x8e,
+0x00,0x00,0x23,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0x43,0xac,0x04,0x00,0x62,0xac,
+0x00,0x00,0x31,0xae,0x56,0x15,0x00,0x0c,0x04,0x00,0x31,0xae,0x00,0x60,0x94,0x40,
+0x34,0x00,0xbf,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x08,0x00,0x25,0x8e,0x01,0x00,0x02,0x24,
+0x21,0x30,0x00,0x01,0x09,0x00,0x04,0x24,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa2,0xaf,
+0xb4,0x25,0x63,0x8e,0x00,0x00,0x00,0x00,0x21,0x18,0x70,0x00,0x2d,0x0a,0x00,0x08,
+0xb4,0x25,0x63,0xae,0xe8,0xff,0xbd,0x27,0x14,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,
+0x21,0x28,0x80,0x00,0x00,0x60,0x10,0x40,0x01,0x00,0x01,0x36,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,0xbf,0x00,0x42,0x34,0x00,0x00,0x43,0x90,
+0x00,0x00,0x00,0x00,0x04,0x00,0x63,0x2c,0x05,0x00,0x60,0x10,0x02,0x80,0x06,0x3c,
+0x70,0x41,0xc3,0x8c,0x70,0x41,0xc2,0x24,0x0c,0x00,0x62,0x10,0x00,0x00,0x00,0x00,
+0x70,0x41,0xc2,0x24,0x04,0x00,0x43,0x8c,0x00,0x00,0xa2,0xac,0x04,0x00,0x45,0xac,
+0x00,0x00,0x65,0xac,0x04,0x00,0xa3,0xac,0x00,0x60,0x90,0x40,0x14,0x00,0xbf,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0xd9,0x09,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x00,0x60,0x90,0x40,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0xd0,0xff,0xbd,0x27,0x18,0x03,0x42,0x34,0xf8,0x29,0x63,0x24,0x28,0x00,0xbf,0xaf,
+0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0x00,0x00,0x43,0xac,0x02,0x80,0x04,0x3c,0x98,0x44,0x82,0x90,0x00,0x00,0x00,0x00,
+0x09,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x02,0x80,0x02,0x3c,0xb1,0x44,0x43,0x90,
+0x00,0x00,0x00,0x00,0x61,0x00,0x60,0x10,0x02,0x80,0x02,0x3c,0x9c,0x1e,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x78,0x41,0x43,0x8c,0x78,0x41,0x42,0x24,
+0x66,0x00,0x62,0x10,0x02,0x80,0x13,0x3c,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x2a,0xb0,0x02,0x3c,0x36,0x00,0x42,0x34,0x00,0x00,0x43,0x90,
+0x78,0x1b,0x66,0x26,0xbc,0x25,0xc5,0x8c,0xc0,0x18,0x03,0x00,0x23,0xb0,0x04,0x3c,
+0xf0,0x07,0x63,0x30,0xff,0x1f,0x02,0x3c,0x21,0x18,0x64,0x00,0xff,0xff,0x42,0x34,
+0x24,0x20,0x62,0x00,0x23,0x88,0x85,0x00,0x00,0x04,0x22,0x26,0x2b,0x28,0x85,0x00,
+0x6c,0x25,0xc3,0x8c,0x0b,0x88,0x45,0x00,0xe1,0x01,0x22,0x2e,0x68,0x25,0xc3,0xac,
+0xc0,0x25,0xc4,0xac,0x72,0x25,0xc0,0xa4,0x14,0x00,0x40,0x14,0x71,0x25,0xc0,0xa0,
+0x20,0xfe,0x82,0x24,0x20,0x02,0x83,0x24,0x0a,0x18,0x45,0x00,0x23,0x10,0x02,0x3c,
+0xff,0x03,0x42,0x34,0x2b,0x10,0x43,0x00,0x21,0x28,0x60,0x00,0x34,0x00,0x40,0x14,
+0xbc,0x25,0xc3,0xac,0xc0,0x25,0xc2,0x8c,0x00,0x00,0x00,0x00,0x2b,0x18,0x45,0x00,
+0x23,0x88,0x45,0x00,0x03,0x00,0x60,0x10,0xe1,0x01,0x22,0x2e,0x00,0x04,0x31,0x26,
+0xe1,0x01,0x22,0x2e,0x0e,0x00,0x40,0x10,0x78,0x1b,0x70,0x26,0x78,0x1b,0x70,0x26,
+0xc0,0x25,0x03,0x8e,0xbc,0x25,0x04,0x8e,0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,
+0x41,0x00,0x40,0x14,0x2b,0x10,0x64,0x00,0x6d,0x00,0x40,0x14,0x25,0xb0,0x02,0x3c,
+0x80,0x00,0x03,0x24,0xd0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x78,0x1b,0x70,0x26,
+0xbc,0x25,0x03,0x96,0x2a,0xb0,0x02,0x3c,0x35,0x00,0x42,0x34,0xc2,0x88,0x03,0x00,
+0x00,0x00,0x51,0xa0,0x45,0x18,0x00,0x0c,0x00,0x00,0x00,0x00,0x72,0x25,0x03,0x96,
+0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x08,0x0b,0x02,0x8e,
+0x80,0x00,0x03,0x3c,0x41,0xb0,0x04,0x3c,0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xac,
+0x28,0x00,0xbf,0x8f,0x08,0x0b,0x02,0xae,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,
+0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,
+0x00,0xfc,0xa5,0x24,0xbd,0x0a,0x00,0x08,0xbc,0x25,0xc5,0xac,0x01,0x00,0x04,0x24,
+0xba,0x44,0x44,0xa0,0x02,0x80,0x03,0x3c,0x99,0x44,0x64,0x90,0x02,0x80,0x13,0x3c,
+0xf9,0x1f,0x00,0x0c,0xff,0x00,0x84,0x30,0x02,0x80,0x02,0x3c,0x78,0x41,0x43,0x8c,
+0x78,0x41,0x42,0x24,0x9c,0xff,0x62,0x14,0x00,0x00,0x00,0x00,0x90,0x1e,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x98,0xff,0x40,0x10,0x78,0x1b,0x63,0x26,0x82,0x0b,0x62,0x90,
+0x00,0x00,0x00,0x00,0x94,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x98,0x26,0x64,0x94,
+0x82,0x0b,0x60,0xa0,0x00,0xc0,0x84,0x24,0x2c,0x22,0x00,0x0c,0xff,0xff,0x84,0x30,
+0x9a,0x0a,0x00,0x08,0x00,0x00,0x00,0x00,0x68,0x25,0x05,0x8e,0x21,0x30,0x80,0x00,
+0xff,0xff,0x27,0x32,0x09,0x00,0x04,0x24,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x68,0x25,0x03,0x8e,0x72,0x25,0x05,0x96,0xbc,0x25,0x02,0x8e,0x21,0x18,0x71,0x00,
+0x21,0x28,0x25,0x02,0x21,0x10,0x51,0x00,0x09,0x00,0x04,0x24,0xbc,0x25,0x02,0xae,
+0x68,0x25,0x03,0xae,0x00,0x02,0x00,0x0c,0x72,0x25,0x05,0xa6,0x78,0x1b,0x70,0x26,
+0xbc,0x25,0x03,0x96,0x2a,0xb0,0x02,0x3c,0x35,0x00,0x42,0x34,0xc2,0x88,0x03,0x00,
+0x00,0x00,0x51,0xa0,0x45,0x18,0x00,0x0c,0x00,0x00,0x00,0x00,0x72,0x25,0x03,0x96,
+0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x08,0x0b,0x02,0x8e,
+0x80,0x00,0x03,0x3c,0x41,0xb0,0x04,0x3c,0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xac,
+0x28,0x00,0xbf,0x8f,0x08,0x0b,0x02,0xae,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,
+0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,
+0xc4,0x25,0x02,0x8e,0x68,0x25,0x05,0x8e,0x21,0x30,0x80,0x00,0x23,0x88,0x44,0x00,
+0xff,0xff,0x27,0x32,0x09,0x00,0x04,0x24,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x68,0x25,0x03,0x8e,0x72,0x25,0x02,0x96,0xc0,0x25,0x12,0x96,0x21,0x18,0x71,0x00,
+0x21,0x10,0x22,0x02,0x23,0x10,0x11,0x3c,0x68,0x25,0x03,0xae,0x72,0x25,0x02,0xa6,
+0x06,0x00,0x40,0x16,0xbc,0x25,0x11,0xae,0x09,0x00,0x04,0x24,0x00,0x02,0x00,0x0c,
+0x78,0x1b,0x70,0x26,0x20,0x0b,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x0c,
+0x09,0x00,0x04,0x24,0x68,0x25,0x05,0x8e,0x09,0x00,0x04,0x24,0x23,0x10,0x06,0x3c,
+0x21,0x38,0x40,0x02,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x68,0x25,0x03,0x8e,
+0x72,0x25,0x02,0x96,0x21,0x20,0x51,0x02,0x21,0x18,0x72,0x00,0x21,0x10,0x42,0x02,
+0xbc,0x25,0x04,0xae,0x09,0x00,0x04,0x24,0x68,0x25,0x03,0xae,0x4f,0x0b,0x00,0x08,
+0x72,0x25,0x02,0xa6,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x08,0x00,0x02,0x24,0xfc,0x00,0x84,0x30,
+0x50,0x00,0x02,0x24,0x11,0x00,0x82,0x10,0x05,0x00,0x03,0x24,0x51,0x00,0x82,0x28,
+0x10,0x00,0x40,0x10,0xa0,0x00,0x02,0x24,0x20,0x00,0x02,0x24,0x0b,0x00,0x82,0x10,
+0x02,0x00,0x03,0x24,0x21,0x00,0x82,0x28,0x15,0x00,0x40,0x14,0x30,0x00,0x02,0x24,
+0x06,0x00,0x82,0x10,0x03,0x00,0x03,0x24,0x04,0x00,0x03,0x24,0x40,0x00,0x02,0x24,
+0x02,0x00,0x82,0x10,0x00,0x00,0x00,0x00,0x0c,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0xfd,0xff,0x82,0x10,0x08,0x00,0x03,0x24,0xa1,0x00,0x82,0x28,
+0x0c,0x00,0x40,0x10,0xc0,0x00,0x02,0x24,0x80,0x00,0x02,0x24,0xf7,0xff,0x82,0x10,
+0x06,0x00,0x03,0x24,0x07,0x00,0x03,0x24,0x84,0x0b,0x00,0x08,0x90,0x00,0x02,0x24,
+0xf2,0xff,0x80,0x10,0x21,0x18,0x00,0x00,0x01,0x00,0x03,0x24,0x84,0x0b,0x00,0x08,
+0x10,0x00,0x02,0x24,0xed,0xff,0x82,0x10,0x0a,0x00,0x03,0x24,0xc1,0x00,0x82,0x28,
+0x04,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x09,0x00,0x03,0x24,0x84,0x0b,0x00,0x08,
+0xb0,0x00,0x02,0x24,0x0b,0x00,0x03,0x24,0x84,0x0b,0x00,0x08,0xd0,0x00,0x02,0x24,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x3c,0x25,0xb0,0x04,0x3c,
+0x98,0x2e,0x63,0x24,0x18,0x03,0x84,0x34,0x00,0x00,0x83,0xac,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x00,0x80,0x03,0x3c,
+0x25,0xb0,0x04,0x3c,0xdc,0x2e,0x63,0x24,0x18,0x03,0x84,0x34,0x00,0x00,0x83,0xac,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x80,0x03,0x3c,0x25,0xb0,0x04,0x3c,
+0xf8,0x2e,0x63,0x24,0x18,0x03,0x84,0x34,0x00,0x00,0x83,0xac,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x00,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x7c,0x2f,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x25,0xb0,0x03,0x3c,0x00,0x80,0x02,0x3c,
+0xb0,0x03,0x65,0x34,0x98,0x2f,0x42,0x24,0x18,0x03,0x63,0x34,0x00,0x00,0x62,0xac,
+0x00,0x00,0xa4,0xac,0x00,0x00,0x83,0x8c,0x21,0x10,0x00,0x00,0xff,0x3f,0x63,0x30,
+0x00,0x00,0xa3,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x98,0xff,0xbd,0x27,0x60,0x00,0xbe,0xaf,0x5c,0x00,0xb7,0xaf,
+0x48,0x00,0xb2,0xaf,0x44,0x00,0xb1,0xaf,0x64,0x00,0xbf,0xaf,0x58,0x00,0xb6,0xaf,
+0x54,0x00,0xb5,0xaf,0x50,0x00,0xb4,0xaf,0x4c,0x00,0xb3,0xaf,0x40,0x00,0xb0,0xaf,
+0x21,0x88,0x80,0x00,0x02,0x00,0x84,0x90,0x21,0xf0,0x00,0x00,0x21,0xb8,0x00,0x00,
+0x0f,0x00,0x84,0x30,0xc0,0x20,0x04,0x00,0x21,0x20,0x91,0x00,0x18,0x00,0x92,0x24,
+0x00,0x60,0x13,0x40,0x01,0x00,0x61,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x02,0x80,0x05,0x3c,0x28,0x00,0x84,0x24,0x18,0x42,0xa5,0x24,0x7b,0x46,0x00,0x0c,
+0x06,0x00,0x06,0x24,0xa6,0x00,0x40,0x14,0x02,0x80,0x14,0x3c,0x98,0x44,0x82,0x92,
+0x00,0x00,0x00,0x00,0xb0,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x78,0x1b,0x43,0x24,
+0xe8,0x0a,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0xaa,0x00,0x40,0x10,
+0x02,0x80,0x09,0x3c,0xb9,0x44,0x22,0x91,0x00,0x00,0x00,0x00,0x06,0x00,0x40,0x10,
+0x02,0x80,0x02,0x3c,0xb9,0x44,0x22,0x91,0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x24,
+0xb9,0x44,0x22,0xa1,0x02,0x80,0x02,0x3c,0x9e,0x44,0x40,0xa0,0x02,0x80,0x03,0x3c,
+0xb2,0x44,0x62,0x90,0xfd,0xff,0x03,0x24,0x42,0xb0,0x04,0x3c,0x24,0x10,0x43,0x00,
+0x02,0x80,0x03,0x3c,0xb2,0x44,0x62,0xa0,0x00,0x00,0x83,0x90,0xef,0xff,0x02,0x24,
+0x03,0x00,0x85,0x34,0x24,0x18,0x62,0x00,0x40,0x00,0x02,0x24,0x00,0x00,0x83,0xa0,
+0x02,0x80,0x16,0x3c,0x00,0x00,0xa2,0xa0,0xa0,0x44,0xc2,0x96,0x20,0x00,0x43,0x96,
+0xff,0xff,0x42,0x30,0x0a,0x00,0x43,0x10,0x02,0x80,0x15,0x3c,0x25,0xb0,0x02,0x3c,
+0x94,0x00,0x42,0x34,0xa0,0x44,0xc3,0xa6,0x00,0x00,0x43,0xa4,0xa0,0x44,0xc3,0x96,
+0x00,0x00,0x00,0x00,0xff,0xff,0x63,0x30,0x80,0x1a,0x03,0x00,0xa4,0x44,0xa3,0xae,
+0x25,0xb0,0x10,0x3c,0x84,0x00,0x02,0x36,0x00,0x00,0x44,0x8c,0x80,0x00,0x10,0x36,
+0x00,0x00,0x02,0x8e,0xa4,0x44,0xa6,0x8e,0x21,0x18,0x00,0x00,0x00,0x28,0x04,0x00,
+0x21,0x20,0x00,0x00,0x25,0x28,0xa3,0x00,0x25,0x20,0x82,0x00,0x24,0x22,0x00,0x0c,
+0x38,0x00,0xa9,0xaf,0x02,0x80,0x05,0x3c,0x00,0x00,0x04,0x8e,0xa4,0x44,0xa6,0x8e,
+0xa8,0x44,0xa3,0x94,0x23,0x20,0x82,0x00,0x21,0x20,0x86,0x00,0xff,0xff,0x63,0x30,
+0x80,0x1a,0x03,0x00,0x23,0x20,0x83,0x00,0x02,0x80,0x08,0x3c,0xac,0x44,0x04,0xad,
+0x00,0x00,0x02,0x8e,0x21,0x18,0x00,0x00,0x21,0x38,0x00,0x00,0x00,0x50,0x42,0x24,
+0x00,0x50,0x45,0x2c,0x21,0x18,0x65,0x00,0x2b,0x20,0xe3,0x00,0xac,0x44,0x06,0x8d,
+0x38,0x00,0xa9,0x8f,0x8f,0x00,0x80,0x14,0x00,0x00,0x00,0x00,0x8b,0x00,0x67,0x10,
+0x2b,0x10,0xc2,0x00,0xac,0x44,0x04,0x8d,0x25,0xb0,0x02,0x3c,0xe4,0x02,0x42,0x34,
+0x00,0x00,0x44,0xac,0xa0,0x44,0xc3,0x96,0x02,0x80,0x02,0x3c,0x05,0x00,0x05,0x24,
+0xff,0xff,0x63,0x30,0x40,0x18,0x03,0x00,0xf6,0xff,0x63,0x24,0x88,0x44,0x43,0xac,
+0x00,0x00,0x27,0x8e,0x24,0x00,0x44,0x26,0x30,0x00,0xa6,0x27,0xff,0x3f,0xe7,0x30,
+0x8a,0x11,0x00,0x0c,0xdc,0xff,0xe7,0x24,0x2c,0x00,0x40,0x10,0x21,0x28,0x40,0x00,
+0x98,0x44,0x82,0x92,0x02,0x00,0x03,0x24,0xff,0x00,0x42,0x30,0x7f,0x00,0x43,0x10,
+0x02,0x80,0x04,0x3c,0x02,0x00,0xa2,0x90,0x00,0x00,0x00,0x00,0x08,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0x04,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x62,0x30,
+0x04,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x01,0x00,0x17,0x24,0xb6,0x44,0x57,0xa0,
+0x04,0x00,0xa3,0x90,0x30,0x00,0xa7,0x8f,0x00,0x00,0x00,0x00,0x04,0x00,0xe2,0x28,
+0x16,0x00,0x40,0x14,0xfe,0x00,0x66,0x30,0x02,0x80,0x02,0x3c,0x78,0x1b,0x43,0x24,
+0x98,0x26,0x64,0x94,0xc0,0x10,0x06,0x00,0x2a,0x10,0x82,0x00,0x10,0x00,0x40,0x14,
+0x02,0x80,0x03,0x3c,0x21,0x10,0xc7,0x00,0xfd,0xff,0x42,0x24,0xc0,0x10,0x02,0x00,
+0x2a,0x10,0x44,0x00,0x0a,0x00,0x40,0x14,0xc2,0x10,0x04,0x00,0x23,0x30,0x46,0x00,
+0x21,0x18,0xa6,0x00,0x05,0x00,0x62,0x90,0x07,0x00,0x84,0x30,0x01,0x00,0x03,0x24,
+0x07,0x10,0x82,0x00,0x01,0x00,0x42,0x30,0x0b,0xf0,0x62,0x00,0x02,0x80,0x03,0x3c,
+0xb2,0x44,0x62,0x90,0xef,0xff,0x03,0x24,0x21,0x20,0xe0,0x02,0x24,0x10,0x43,0x00,
+0x02,0x80,0x03,0x3c,0xb2,0x44,0x62,0xa0,0x98,0x44,0x83,0x92,0x02,0x80,0x02,0x3c,
+0x10,0xaf,0x42,0x24,0xff,0x00,0x63,0x30,0x80,0x18,0x03,0x00,0x21,0x18,0x62,0x00,
+0x00,0x00,0x66,0x8c,0x00,0x00,0x00,0x00,0x09,0xf8,0xc0,0x00,0x21,0x28,0xc0,0x03,
+0x00,0x60,0x93,0x40,0x64,0x00,0xbf,0x8f,0x60,0x00,0xbe,0x8f,0x5c,0x00,0xb7,0x8f,
+0x58,0x00,0xb6,0x8f,0x54,0x00,0xb5,0x8f,0x50,0x00,0xb4,0x8f,0x4c,0x00,0xb3,0x8f,
+0x48,0x00,0xb2,0x8f,0x44,0x00,0xb1,0x8f,0x40,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x68,0x00,0xbd,0x27,0x98,0x44,0x82,0x92,0x00,0x00,0x00,0x00,
+0xef,0xff,0x40,0x14,0x02,0x80,0x03,0x3c,0x78,0x1b,0x70,0x24,0xe8,0x0a,0x02,0x92,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0xe9,0xff,0x40,0x10,0x24,0x00,0x44,0x26,
+0x00,0x00,0x27,0x8e,0x05,0x00,0x05,0x24,0xff,0x3f,0xe7,0x30,0xdc,0xff,0xe7,0x24,
+0x8a,0x11,0x00,0x0c,0x30,0x00,0xa6,0x27,0xe1,0xff,0x40,0x10,0x21,0x28,0x40,0x00,
+0x30,0x00,0xa7,0x8f,0x04,0x00,0x42,0x90,0x04,0x00,0xe3,0x28,0xdc,0xff,0x60,0x14,
+0xfe,0x00,0x46,0x30,0x98,0x26,0x04,0x96,0xc0,0x10,0x06,0x00,0x2a,0x10,0x82,0x00,
+0xd7,0xff,0x40,0x14,0x21,0x10,0xc7,0x00,0xfd,0xff,0x42,0x24,0xc0,0x10,0x02,0x00,
+0x2a,0x10,0x44,0x00,0xd2,0xff,0x40,0x14,0xc2,0x10,0x04,0x00,0x23,0x30,0x46,0x00,
+0x21,0x18,0xa6,0x00,0x05,0x00,0x62,0x90,0x07,0x00,0x84,0x30,0x07,0x10,0x82,0x00,
+0x01,0x00,0x42,0x30,0xca,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x0e,0x46,0x00,0x0c,
+0x21,0x20,0x00,0x00,0xc4,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x75,0xff,0x40,0x10,
+0x00,0x00,0x00,0x00,0xb9,0x44,0x22,0x91,0x00,0x00,0x00,0x00,0x71,0xff,0x40,0x14,
+0x00,0x00,0x00,0x00,0xb9,0x44,0x22,0x91,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,
+0xb9,0x44,0x22,0xa1,0x75,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x03,0x00,0xa2,0x90,
+0x02,0x80,0x07,0x3c,0xb4,0x44,0xe2,0xa0,0x02,0x00,0xa3,0x90,0x21,0x30,0x80,0x00,
+0xb5,0x44,0x83,0xa0,0xb5,0x44,0x82,0x90,0x00,0x00,0x00,0x00,0x06,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0xb4,0x44,0xe2,0x90,0x00,0x00,0x00,0x00,0xb5,0x44,0xc2,0xa0,
+0x8d,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0xb5,0x44,0x82,0x90,0x00,0x00,0x00,0x00,
+0xb5,0x44,0xc2,0xa0,0x8d,0x0c,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x80,0x09,0x3c,
+0x78,0x1b,0x28,0x25,0xf4,0x23,0x06,0x8d,0xff,0xff,0x02,0x34,0x44,0x00,0xc2,0x10,
+0x21,0x38,0x80,0x00,0x2b,0x10,0xc7,0x00,0x34,0x00,0x40,0x10,0x02,0x19,0x06,0x00,
+0x21,0x10,0xc7,0x00,0x23,0x10,0x43,0x00,0x10,0x00,0x46,0x24,0xf4,0x23,0x06,0xad,
+0xf8,0x23,0x02,0xad,0x78,0x1b,0x26,0x25,0x06,0x00,0xc4,0x94,0xff,0xff,0x02,0x34,
+0xff,0xff,0x83,0x30,0x33,0x00,0x62,0x10,0x00,0x11,0x07,0x00,0xff,0xff,0x84,0x30,
+0x2b,0x10,0x87,0x00,0x20,0x00,0x40,0x10,0x03,0x19,0x04,0x00,0x03,0x11,0x04,0x00,
+0x21,0x18,0x87,0x00,0x23,0x18,0x62,0x00,0x10,0x00,0x64,0x24,0x06,0x00,0xc4,0xa4,
+0xf8,0x23,0xc3,0xac,0xc0,0x10,0x05,0x00,0x21,0x10,0x45,0x00,0x80,0x10,0x02,0x00,
+0x21,0x10,0x45,0x00,0x78,0x1b,0x23,0x25,0x80,0x10,0x02,0x00,0x21,0x28,0x43,0x00,
+0x80,0x11,0xa6,0x8c,0x00,0x21,0x07,0x00,0xff,0xff,0xc2,0x38,0x0a,0x30,0x82,0x00,
+0x2b,0x18,0xc7,0x00,0x07,0x00,0x60,0x10,0x21,0x10,0xc7,0x00,0x02,0x19,0x06,0x00,
+0x23,0x10,0x43,0x00,0x10,0x00,0x46,0x24,0x80,0x11,0xa6,0xac,0x08,0x00,0xe0,0x03,
+0x84,0x11,0xa2,0xac,0x02,0x19,0x06,0x00,0x23,0x10,0x43,0x00,0x80,0x11,0xa2,0xac,
+0x08,0x00,0xe0,0x03,0x84,0x11,0xa2,0xac,0x21,0x10,0x87,0x00,0x23,0x10,0x43,0x00,
+0x06,0x00,0xc2,0xa4,0x3d,0x0d,0x00,0x08,0xf8,0x23,0xc2,0xac,0x21,0x10,0xc7,0x00,
+0x23,0x10,0x43,0x00,0xf4,0x23,0x02,0xad,0xf8,0x23,0x02,0xad,0x78,0x1b,0x26,0x25,
+0x06,0x00,0xc4,0x94,0xff,0xff,0x02,0x34,0xff,0xff,0x83,0x30,0xcf,0xff,0x62,0x14,
+0x00,0x11,0x07,0x00,0x21,0x20,0x40,0x00,0x33,0x0d,0x00,0x08,0x06,0x00,0xc2,0xa4,
+0x00,0x31,0x04,0x00,0x25,0x0d,0x00,0x08,0xf4,0x23,0x06,0xad,0x63,0x00,0x82,0x24,
+0x77,0x00,0x42,0x2c,0x00,0x00,0x85,0x28,0x04,0x00,0x40,0x10,0x21,0x18,0x00,0x00,
+0x64,0x00,0x82,0x24,0x64,0x00,0x03,0x24,0x0b,0x18,0x45,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf,0x0c,0x00,0x82,0x8c,
+0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,0x04,0x00,0x42,0x28,0x07,0x00,0x40,0x14,
+0x25,0xb0,0x02,0x3c,0x04,0x00,0xa4,0x90,0x10,0x00,0xbf,0x8f,0x18,0x00,0xbd,0x27,
+0x42,0x20,0x04,0x00,0x6b,0x0d,0x00,0x08,0x96,0xff,0x84,0x24,0x24,0x08,0x42,0x34,
+0x00,0x00,0x43,0x8c,0x00,0x00,0x00,0x00,0x00,0x02,0x63,0x30,0x1b,0x00,0x60,0x14,
+0x01,0x00,0x02,0x24,0x05,0x00,0xa3,0x90,0x00,0x00,0x00,0x00,0x82,0x21,0x03,0x00,
+0x3c,0x00,0x82,0x10,0x02,0x00,0x82,0x28,0x57,0x00,0x40,0x14,0x02,0x00,0x02,0x24,
+0x46,0x00,0x82,0x10,0x03,0x00,0x02,0x24,0x2e,0x00,0x82,0x10,0x3e,0x00,0x63,0x30,
+0x6b,0x0d,0x00,0x0c,0x21,0x20,0xc0,0x00,0x06,0x00,0x45,0x24,0x65,0x00,0xa4,0x2c,
+0x64,0x00,0x03,0x24,0x0a,0x28,0x64,0x00,0xdd,0xff,0xa2,0x24,0x08,0x00,0x42,0x2c,
+0x1f,0x00,0x40,0x10,0xe5,0xff,0xa2,0x24,0xfe,0xff,0xa5,0x24,0x10,0x00,0xbf,0x8f,
+0x21,0x10,0xa0,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x05,0x00,0xa3,0x90,
+0x00,0x00,0x00,0x00,0x60,0x00,0x64,0x30,0x42,0x21,0x04,0x00,0x25,0x00,0x82,0x10,
+0x02,0x00,0x82,0x28,0x36,0x00,0x40,0x14,0x02,0x00,0x02,0x24,0x2f,0x00,0x82,0x10,
+0x03,0x00,0x02,0x24,0xe6,0xff,0x82,0x14,0x1f,0x00,0x62,0x30,0x40,0x10,0x02,0x00,
+0xd8,0xff,0x03,0x24,0x23,0x30,0x62,0x00,0x6b,0x0d,0x00,0x0c,0x21,0x20,0xc0,0x00,
+0x06,0x00,0x45,0x24,0x65,0x00,0xa4,0x2c,0x64,0x00,0x03,0x24,0x0a,0x28,0x64,0x00,
+0xdd,0xff,0xa2,0x24,0x08,0x00,0x42,0x2c,0xe3,0xff,0x40,0x14,0xe5,0xff,0xa2,0x24,
+0x08,0x00,0x42,0x2c,0x06,0x00,0x40,0x10,0xf1,0xff,0xa2,0x24,0x9f,0x0d,0x00,0x08,
+0xfa,0xff,0xa5,0x24,0xd8,0xff,0x02,0x24,0x94,0x0d,0x00,0x08,0x23,0x30,0x43,0x00,
+0x0c,0x00,0x42,0x2c,0x0c,0x00,0x40,0x10,0xfb,0xff,0xa2,0x24,0x9f,0x0d,0x00,0x08,
+0xf8,0xff,0xa5,0x24,0x3e,0x00,0x63,0x30,0xfe,0xff,0x02,0x24,0x94,0x0d,0x00,0x08,
+0x23,0x30,0x43,0x00,0x1f,0x00,0x62,0x30,0x40,0x10,0x02,0x00,0xfe,0xff,0x03,0x24,
+0xb2,0x0d,0x00,0x08,0x23,0x30,0x62,0x00,0x0a,0x00,0x42,0x2c,0xcb,0xff,0x40,0x10,
+0x00,0x00,0x00,0x00,0x9f,0x0d,0x00,0x08,0xfc,0xff,0xa5,0x24,0x3e,0x00,0x63,0x30,
+0xec,0xff,0x02,0x24,0x94,0x0d,0x00,0x08,0x23,0x30,0x43,0x00,0x1f,0x00,0x62,0x30,
+0x40,0x10,0x02,0x00,0xec,0xff,0x03,0x24,0xb2,0x0d,0x00,0x08,0x23,0x30,0x62,0x00,
+0xb3,0xff,0x80,0x14,0x1f,0x00,0x62,0x30,0x40,0x10,0x02,0x00,0x0e,0x00,0x03,0x24,
+0xb2,0x0d,0x00,0x08,0x23,0x30,0x62,0x00,0xad,0xff,0x80,0x14,0x3e,0x00,0x63,0x30,
+0x0e,0x00,0x02,0x24,0x94,0x0d,0x00,0x08,0x23,0x30,0x43,0x00,0xa0,0xff,0xbd,0x27,
+0x5c,0x00,0xbf,0xaf,0x58,0x00,0xbe,0xaf,0x54,0x00,0xb7,0xaf,0x50,0x00,0xb6,0xaf,
+0x4c,0x00,0xb5,0xaf,0x48,0x00,0xb4,0xaf,0x44,0x00,0xb3,0xaf,0x40,0x00,0xb2,0xaf,
+0x3c,0x00,0xb1,0xaf,0x38,0x00,0xb0,0xaf,0x02,0x80,0x02,0x3c,0x68,0x41,0x45,0x8c,
+0x00,0x80,0x04,0x3c,0xac,0x37,0x83,0x24,0x68,0x41,0x44,0x24,0x25,0xb0,0x02,0x3c,
+0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0xbb,0x00,0xa4,0x10,0x02,0x80,0x02,0x3c,
+0x02,0x80,0x03,0x3c,0x7c,0xaf,0x42,0x24,0x80,0xaf,0x63,0x24,0x00,0x00,0x5e,0x8c,
+0x00,0x00,0x75,0x8c,0xf0,0x25,0xd6,0x8f,0x21,0x20,0x00,0x00,0x21,0xb8,0x00,0x00,
+0x08,0x00,0xc2,0x8e,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xae,0x08,0x00,0xc3,0x96,
+0x02,0x80,0x02,0x3c,0x00,0x02,0x00,0x0c,0x25,0xa0,0x62,0x00,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xe4,0x0a,0xc3,0x97,
+0x8c,0x25,0xc2,0x8f,0x25,0xb0,0x04,0x3c,0xf8,0x00,0x84,0x34,0x21,0x10,0x43,0x00,
+0x00,0x00,0x82,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0x23,0x0e,0x00,0x08,0x00,0x00,0x00,0x00,0x0c,0x00,0xc2,0x8e,0x00,0x00,0x00,0x00,
+0x2b,0x10,0xe2,0x02,0x86,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x8e,
+0x21,0x98,0x80,0x02,0x42,0x1b,0x02,0x00,0x78,0x00,0x63,0x30,0x02,0x26,0x02,0x00,
+0xff,0x3f,0x42,0x30,0x21,0x10,0x43,0x00,0x03,0x00,0x84,0x30,0x21,0x10,0x44,0x00,
+0x18,0x00,0x42,0x24,0xff,0xff,0x52,0x30,0x7f,0x00,0x43,0x32,0x00,0x00,0xb2,0xae,
+0x03,0x00,0x60,0x10,0x80,0xff,0x42,0x32,0x80,0x00,0x42,0x26,0x80,0xff,0x42,0x30,
+0x00,0x00,0xa2,0xae,0x21,0x90,0x40,0x00,0x02,0x00,0x62,0x96,0x21,0x18,0xf2,0x02,
+0xff,0xff,0x77,0x30,0x0f,0x00,0x42,0x30,0x00,0x00,0xa2,0xae,0x00,0x00,0x63,0x8e,
+0x21,0xa0,0x92,0x02,0x42,0x13,0x03,0x00,0x78,0x00,0x42,0x30,0x02,0x1e,0x03,0x00,
+0x03,0x00,0x63,0x30,0x21,0x10,0x53,0x00,0x21,0x88,0x43,0x00,0x18,0x00,0x25,0x26,
+0x00,0x00,0xa5,0xae,0x01,0x00,0xa4,0x90,0x18,0x00,0x22,0x92,0x00,0x22,0x04,0x00,
+0x73,0x0b,0x00,0x0c,0x25,0x20,0x82,0x00,0x40,0x18,0x02,0x00,0x21,0x18,0x62,0x00,
+0x02,0x80,0x04,0x3c,0x21,0x80,0x40,0x00,0x80,0x18,0x03,0x00,0x98,0xa8,0x82,0x24,
+0x21,0x18,0x62,0x00,0x08,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x09,0xf8,0x40,0x00,
+0x21,0x20,0x60,0x02,0x06,0x00,0x03,0x24,0xc7,0xff,0x03,0x16,0x00,0x00,0x00,0x00,
+0xe8,0x0a,0xc2,0x93,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0xc2,0xff,0x40,0x10,
+0x02,0x80,0x02,0x3c,0x28,0x00,0x24,0x26,0x18,0x42,0x45,0x24,0x7b,0x46,0x00,0x0c,
+0x06,0x00,0x06,0x24,0xbc,0xff,0x40,0x14,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,
+0xbc,0x44,0x64,0x8c,0x9c,0x44,0x43,0x90,0x02,0x80,0x02,0x3c,0x38,0xa9,0x45,0x8c,
+0xff,0x00,0x63,0x30,0x40,0x10,0x03,0x00,0x21,0x10,0x43,0x00,0xc0,0x10,0x02,0x00,
+0x21,0x10,0x43,0x00,0x23,0x20,0x85,0x00,0x80,0x10,0x02,0x00,0x2b,0x20,0x82,0x00,
+0xad,0xff,0x80,0x14,0x02,0x80,0x03,0x3c,0xbc,0x44,0x62,0x8c,0x21,0x20,0x40,0x02,
+0x02,0x80,0x03,0x3c,0x39,0x15,0x00,0x0c,0x38,0xa9,0x62,0xac,0x1d,0x01,0x40,0x10,
+0x21,0x88,0x40,0x00,0x00,0x00,0x65,0x8e,0x08,0x00,0x50,0x94,0x04,0x00,0x64,0x8e,
+0xf0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0xe0,0xff,0x03,0x24,0x24,0x28,0xa2,0x00,
+0xff,0xfb,0x02,0x3c,0x24,0x20,0x83,0x00,0xff,0xff,0x42,0x34,0x02,0x80,0x03,0x3c,
+0x25,0x80,0x03,0x02,0x24,0x28,0xa2,0x00,0x1e,0x00,0x84,0x34,0x04,0x00,0x64,0xae,
+0x00,0x00,0x65,0xae,0x21,0x20,0x00,0x02,0x21,0x28,0x60,0x02,0x52,0x46,0x00,0x0c,
+0x06,0x00,0x06,0x24,0xc8,0xff,0x46,0x26,0xcb,0xff,0x43,0x26,0x00,0x00,0xc2,0x28,
+0x0b,0x30,0x62,0x00,0x18,0x00,0x04,0x26,0x83,0x30,0x06,0x00,0x52,0x46,0x00,0x0c,
+0x38,0x00,0x65,0x26,0x15,0x00,0x03,0x24,0x14,0x00,0x23,0xae,0x00,0x00,0x62,0x8e,
+0x21,0x20,0x20,0x02,0x42,0x1b,0x02,0x00,0x78,0x00,0x63,0x30,0x02,0x2e,0x02,0x00,
+0xff,0x3f,0x42,0x30,0x21,0x10,0x43,0x00,0x03,0x00,0xa5,0x30,0x21,0x10,0x45,0x00,
+0x18,0x00,0x42,0x24,0x59,0x0a,0x00,0x0c,0x0c,0x00,0x22,0xae,0x0c,0x00,0xc2,0x8e,
+0x00,0x00,0x00,0x00,0x2b,0x10,0xe2,0x02,0x7c,0xff,0x40,0x14,0x00,0x00,0x00,0x00,
+0x00,0x60,0x10,0x40,0x01,0x00,0x01,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x04,0x00,0xc3,0x8e,0x00,0x00,0xc2,0x8e,0x21,0x20,0xc0,0x02,0x00,0x00,0x62,0xac,
+0x04,0x00,0x43,0xac,0x00,0x00,0xd6,0xae,0x56,0x15,0x00,0x0c,0x04,0x00,0xd6,0xae,
+0x00,0x60,0x90,0x40,0x02,0x80,0x04,0x3c,0x68,0x41,0x83,0x8c,0x68,0x41,0x82,0x24,
+0x4c,0xff,0x62,0x14,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x7c,0xaf,0x42,0x24,
+0x00,0x00,0x51,0x8c,0x25,0xb0,0x10,0x3c,0x04,0x01,0x02,0x36,0x00,0x00,0x43,0x8c,
+0xa4,0x25,0x27,0x8e,0x00,0x00,0x00,0x00,0xc5,0x00,0xe3,0x10,0xa8,0x25,0x23,0xae,
+0x2b,0x10,0x67,0x00,0xe4,0x00,0x40,0x14,0x2b,0x10,0xe3,0x00,0x0c,0x01,0x40,0x14,
+0x23,0x10,0x67,0x00,0x02,0x80,0x03,0x3c,0x78,0x1b,0x64,0x24,0x78,0x25,0x83,0x94,
+0x02,0x80,0x02,0x3c,0x21,0x90,0x00,0x00,0x22,0x00,0xe0,0x1a,0x25,0x88,0x62,0x00,
+0x21,0xa8,0x80,0x00,0x21,0xf0,0x80,0x00,0x21,0x80,0x00,0x00,0x01,0x00,0x14,0x24,
+0x21,0x98,0x11,0x02,0x04,0x00,0x62,0x8e,0x02,0x00,0x03,0x24,0x02,0x17,0x02,0x00,
+0x03,0x00,0x42,0x30,0x31,0x00,0x43,0x10,0x02,0x80,0x04,0x3c,0x21,0x10,0x11,0x02,
+0x00,0x00,0x43,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x60,0x10,0x01,0x00,0x42,0x26,
+0x04,0x00,0x62,0x8e,0x00,0xf0,0x03,0x3c,0x00,0x20,0x04,0x3c,0x24,0x10,0x43,0x00,
+0x10,0x00,0x44,0x10,0x00,0x00,0x00,0x00,0x06,0x00,0x42,0x26,0x00,0x00,0x65,0x8e,
+0xff,0xff,0x52,0x30,0x82,0x16,0x05,0x00,0x01,0x00,0x42,0x30,0x4a,0x00,0x54,0x10,
+0x02,0x80,0x03,0x3c,0x80,0x80,0x12,0x00,0x2a,0x10,0x17,0x02,0xe4,0xff,0x40,0x14,
+0x00,0x00,0x00,0x00,0x56,0x15,0x00,0x0c,0x21,0x20,0xc0,0x02,0x8e,0x0f,0x00,0x08,
+0x02,0x80,0x02,0x3c,0xc8,0x0c,0xa2,0x8e,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,
+0xc8,0x0c,0xa2,0xae,0x0c,0x00,0x64,0x8e,0x0c,0x00,0x02,0x24,0x3f,0x00,0x83,0x30,
+0xa6,0x00,0x62,0x10,0x21,0x28,0xa0,0x02,0x3f,0x00,0x83,0x30,0x0d,0x00,0x02,0x24,
+0x9b,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x3f,0x00,0x83,0x30,0x0e,0x00,0x02,0x24,
+0xe2,0xff,0x62,0x14,0x06,0x00,0x42,0x26,0xd4,0x0c,0xa2,0x8e,0x00,0x00,0x00,0x00,
+0x01,0x00,0x42,0x24,0xe6,0x0e,0x00,0x08,0xd4,0x0c,0xa2,0xae,0x98,0x44,0x82,0x90,
+0x00,0x00,0x00,0x00,0xce,0xff,0x40,0x10,0x21,0x10,0x11,0x02,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x98,0x44,0x82,0x90,
+0x02,0x80,0x03,0x3c,0xe4,0xae,0x65,0x24,0xff,0x00,0x42,0x30,0x80,0x10,0x02,0x00,
+0x21,0x10,0x45,0x00,0x00,0x00,0x43,0x8c,0x00,0x00,0x64,0x8e,0x04,0x00,0x65,0x8e,
+0x09,0xf8,0x60,0x00,0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c,0x9a,0x44,0x82,0x90,
+0x0c,0x00,0x03,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x10,0x02,0x80,0x03,0x3c,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xdc,0x0e,0x00,0x08,
+0x21,0x10,0x11,0x02,0xb1,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0xf8,0xff,0x40,0x10,
+0x02,0x80,0x04,0x3c,0xb7,0x44,0x82,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,
+0xb7,0x44,0x82,0xa0,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0xdc,0x0e,0x00,0x08,0x21,0x10,0x11,0x02,0x78,0x1b,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x02,0x11,0x02,0x00,0x03,0x00,0x42,0x30,0x05,0x00,0x54,0x10,0xc2,0x13,0x05,0x00,
+0x1e,0x00,0x42,0x30,0x21,0x10,0x52,0x00,0xed,0x0e,0x00,0x08,0xff,0xff,0x52,0x30,
+0x01,0x00,0xc2,0x93,0x00,0x00,0x00,0x00,0x1c,0x00,0x40,0x14,0x02,0x80,0x04,0x3c,
+0x04,0x00,0x64,0x8e,0x00,0x00,0x00,0x00,0x02,0x14,0x04,0x00,0x0f,0x00,0x45,0x30,
+0x08,0x00,0xa3,0x28,0x14,0x00,0x60,0x10,0x02,0x17,0x04,0x00,0x03,0x00,0x43,0x30,
+0x08,0x00,0x60,0x10,0x00,0xc0,0x02,0x3c,0x24,0x10,0x82,0x00,0x0e,0x00,0x40,0x14,
+0x03,0x00,0x02,0x24,0x0d,0x00,0x62,0x10,0x02,0x80,0x04,0x3c,0x0c,0x00,0x60,0x10,
+0x78,0x1b,0x82,0x24,0x21,0x10,0xbe,0x00,0xf0,0x04,0x50,0x90,0x80,0x28,0x12,0x00,
+0x21,0x28,0xb1,0x00,0x75,0x0d,0x00,0x0c,0x21,0x20,0x60,0x02,0x21,0x20,0x40,0x00,
+0x1f,0x0d,0x00,0x0c,0x21,0x28,0x00,0x02,0x02,0x80,0x04,0x3c,0x78,0x1b,0x82,0x24,
+0x01,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x89,0x00,0x74,0x10,0x00,0x00,0x00,0x00,
+0x02,0x80,0x04,0x3c,0x78,0x1b,0x84,0x24,0x01,0x00,0x83,0x90,0x02,0x00,0x02,0x24,
+0x08,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x65,0x8e,0x00,0x00,0x00,0x00,
+0xc2,0x13,0x05,0x00,0x1e,0x00,0x42,0x30,0x21,0x10,0x52,0x00,0xed,0x0e,0x00,0x08,
+0xff,0xff,0x52,0x30,0x04,0x00,0x64,0x8e,0x00,0x00,0x00,0x00,0x02,0x14,0x04,0x00,
+0x0f,0x00,0x45,0x30,0x08,0x00,0xa3,0x28,0xf3,0xff,0x60,0x10,0x02,0x17,0x04,0x00,
+0x03,0x00,0x42,0x30,0xf0,0xff,0x40,0x14,0x02,0x80,0x03,0x3c,0x78,0x1b,0x63,0x24,
+0x21,0x10,0xa3,0x00,0xf0,0x04,0x50,0x90,0x80,0x28,0x12,0x00,0x21,0x28,0xb1,0x00,
+0x75,0x0d,0x00,0x0c,0x21,0x20,0x60,0x02,0x21,0x20,0x40,0x00,0x1f,0x0d,0x00,0x0c,
+0x21,0x28,0x00,0x02,0x00,0x00,0x65,0x8e,0x6d,0x0f,0x00,0x08,0xc2,0x13,0x05,0x00,
+0x02,0x80,0x04,0x3c,0x00,0x01,0x02,0x36,0x78,0x1b,0x84,0x24,0x00,0x00,0x47,0xac,
+0xa4,0x25,0x87,0xac,0x02,0x80,0x02,0x3c,0x08,0x04,0x44,0x24,0x21,0x28,0x00,0x00,
+0x21,0x30,0x00,0x00,0x2d,0x28,0x00,0x0c,0x21,0x38,0x00,0x00,0xf7,0x0d,0x00,0x08,
+0x02,0x80,0x02,0x3c,0x99,0x99,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x96,0x99,0x63,0x34,
+0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x1e,0x0e,0x00,0x08,0x00,0x00,0x00,0x00,
+0xd0,0x0c,0xa2,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0xd0,0x0c,0xa2,0xac,
+0x0c,0x00,0x64,0x8e,0x03,0x0f,0x00,0x08,0x3f,0x00,0x83,0x30,0xcc,0x0c,0xa2,0x8e,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0xcc,0x0c,0xa2,0xae,0x0c,0x00,0x64,0x8e,
+0xff,0x0e,0x00,0x08,0x3f,0x00,0x83,0x30,0xac,0x25,0x22,0x8e,0xff,0xff,0x73,0x30,
+0x23,0x10,0x47,0x00,0xff,0xff,0x52,0x30,0x21,0x18,0x53,0x02,0xff,0xff,0x77,0x30,
+0x39,0x15,0x00,0x0c,0x21,0x20,0xe0,0x02,0xda,0xff,0x40,0x10,0x21,0xb0,0x40,0x00,
+0x08,0x00,0x42,0x8c,0xa4,0x25,0x26,0x8e,0x21,0x38,0x40,0x02,0x21,0x18,0x57,0x00,
+0x74,0x25,0x23,0xae,0x21,0x28,0x40,0x00,0x08,0x00,0x04,0x24,0x78,0x25,0x22,0xae,
+0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x00,0x02,0x00,0x0c,0x08,0x00,0x04,0x24,
+0x78,0x25,0x25,0x8e,0x24,0x10,0x02,0x3c,0x00,0x01,0x10,0x36,0x00,0x00,0x02,0xae,
+0x21,0x38,0x60,0x02,0x21,0x28,0xb2,0x00,0x08,0x00,0x04,0x24,0x24,0x10,0x06,0x3c,
+0xa4,0x25,0x22,0xae,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0xa8,0x25,0x23,0x8e,
+0x08,0x00,0x04,0x24,0x00,0x02,0x00,0x0c,0xa4,0x25,0x23,0xae,0xa4,0x25,0x22,0x8e,
+0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xae,0xca,0x0e,0x00,0x08,0x02,0x80,0x03,0x3c,
+0xff,0xff,0x57,0x30,0x39,0x15,0x00,0x0c,0x21,0x20,0xe0,0x02,0x42,0x00,0x40,0x10,
+0x21,0xb0,0x40,0x00,0x08,0x00,0x42,0x8c,0xa4,0x25,0x26,0x8e,0x08,0x00,0x04,0x24,
+0x21,0x18,0x57,0x00,0x74,0x25,0x23,0xae,0x21,0x28,0x40,0x00,0x21,0x38,0xe0,0x02,
+0x78,0x25,0x22,0xae,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0xa8,0x25,0x23,0x8e,
+0x08,0x00,0x04,0x24,0x00,0x02,0x00,0x0c,0xa4,0x25,0x23,0xae,0xa4,0x25,0x23,0x8e,
+0x00,0x01,0x02,0x36,0x00,0x00,0x43,0xac,0xca,0x0e,0x00,0x08,0x02,0x80,0x03,0x3c,
+0x04,0x00,0x64,0x8e,0x00,0x00,0x00,0x00,0x02,0x14,0x04,0x00,0x0f,0x00,0x42,0x30,
+0x08,0x00,0x42,0x28,0x06,0x00,0x40,0x10,0x00,0xc0,0x02,0x3c,0x02,0x17,0x04,0x00,
+0x03,0x00,0x42,0x30,0x0b,0x00,0x40,0x10,0x02,0x80,0x03,0x3c,0x00,0xc0,0x02,0x3c,
+0x24,0x10,0x82,0x00,0x6a,0xff,0x40,0x14,0x02,0x17,0x04,0x00,0x03,0x00,0x42,0x30,
+0x03,0x00,0x03,0x24,0x66,0xff,0x43,0x10,0x00,0x00,0x00,0x00,0x64,0xff,0x40,0x10,
+0x02,0x80,0x03,0x3c,0x78,0x1b,0x62,0x8c,0x00,0x00,0x00,0x00,0x42,0x10,0x02,0x00,
+0x01,0x00,0x42,0x30,0x06,0x00,0x54,0x14,0x21,0x80,0x00,0x00,0x02,0x14,0x04,0x00,
+0x0f,0x00,0x42,0x30,0x78,0x1b,0x63,0x24,0x21,0x10,0x43,0x00,0xf0,0x04,0x50,0x90,
+0x80,0x28,0x12,0x00,0x21,0x28,0xb1,0x00,0xec,0xff,0xa2,0x8c,0x25,0xb0,0x03,0x3c,
+0xd4,0x02,0x63,0x34,0x21,0x20,0x60,0x02,0x00,0x00,0x62,0xac,0x75,0x0d,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x21,0x20,0x40,0x00,0x1f,0x0d,0x00,0x0c,0x21,0x28,0x00,0x02,
+0x65,0x0f,0x00,0x08,0x02,0x80,0x04,0x3c,0xa8,0x25,0x23,0x8e,0x00,0x01,0x02,0x36,
+0x00,0x00,0x43,0xac,0x8d,0x0f,0x00,0x08,0xa4,0x25,0x23,0xae,0xe0,0xff,0xbd,0x27,
+0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x0c,0x00,0x82,0x8c,
+0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,0x04,0x00,0x42,0x28,0x29,0x00,0x40,0x14,
+0x21,0x80,0xa0,0x00,0x00,0x00,0xa4,0x8c,0x02,0x80,0x11,0x3c,0x3f,0x00,0x84,0x30,
+0x40,0x20,0x04,0x00,0x6b,0x0d,0x00,0x0c,0x96,0xff,0x84,0x24,0x78,0x1b,0x25,0x26,
+0xfc,0x23,0xa4,0x8c,0x21,0x18,0x40,0x00,0xff,0xff,0x02,0x34,0x3c,0x00,0x82,0x10,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,0x27,0x00,0x40,0x10,0x21,0x10,0x83,0x00,
+0x21,0x18,0x83,0x00,0x02,0x11,0x04,0x00,0x23,0x20,0x62,0x00,0x10,0x00,0x84,0x24,
+0xfc,0x23,0xa4,0xac,0x00,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0xc2,0x21,0x04,0x00,
+0x7e,0x00,0x84,0x30,0x6b,0x0d,0x00,0x0c,0x96,0xff,0x84,0x24,0x78,0x1b,0x25,0x26,
+0x00,0x24,0xa4,0x8c,0x21,0x18,0x40,0x00,0xff,0xff,0x02,0x34,0x25,0x00,0x82,0x10,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x83,0x00,0x0b,0x00,0x40,0x10,0x21,0x10,0x83,0x00,
+0x21,0x18,0x83,0x00,0x02,0x11,0x04,0x00,0x23,0x20,0x62,0x00,0x10,0x00,0x84,0x24,
+0x00,0x24,0xa4,0xac,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x02,0x19,0x04,0x00,0x23,0x10,0x43,0x00,0x20,0x00,0xbd,0x27,
+0x08,0x00,0xe0,0x03,0x00,0x24,0xa2,0xac,0x02,0x19,0x04,0x00,0x23,0x10,0x43,0x00,
+0xfc,0x23,0xa2,0xac,0x00,0x00,0x04,0x8e,0x00,0x00,0x00,0x00,0xc2,0x21,0x04,0x00,
+0x7e,0x00,0x84,0x30,0x6b,0x0d,0x00,0x0c,0x96,0xff,0x84,0x24,0x78,0x1b,0x25,0x26,
+0x00,0x24,0xa4,0x8c,0x21,0x18,0x40,0x00,0xff,0xff,0x02,0x34,0xde,0xff,0x82,0x14,
+0x2b,0x10,0x83,0x00,0x00,0x21,0x03,0x00,0x49,0x10,0x00,0x08,0x00,0x24,0xa4,0xac,
+0x00,0x21,0x03,0x00,0x35,0x10,0x00,0x08,0xfc,0x23,0xa4,0xac,0xb8,0xff,0xbd,0x27,
+0x25,0xb0,0x03,0x3c,0x44,0x00,0xbf,0xaf,0x40,0x00,0xbe,0xaf,0x3c,0x00,0xb7,0xaf,
+0x38,0x00,0xb6,0xaf,0x34,0x00,0xb5,0xaf,0x30,0x00,0xb4,0xaf,0x2c,0x00,0xb3,0xaf,
+0x28,0x00,0xb2,0xaf,0x24,0x00,0xb1,0xaf,0x20,0x00,0xb0,0xaf,0x44,0x00,0x63,0x34,
+0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,
+0x0e,0x00,0x40,0x04,0x18,0x00,0xa0,0xaf,0x21,0x20,0x60,0x00,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0xff,0x42,0x30,0x64,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0x00,0x16,0x02,0x00,
+0x03,0x16,0x02,0x00,0xf6,0xff,0x41,0x04,0x21,0x10,0x00,0x00,0x02,0x80,0x02,0x3c,
+0x78,0x41,0x43,0x8c,0x00,0x80,0x06,0x3c,0xcc,0x41,0xc2,0x24,0x25,0xb0,0x05,0x3c,
+0x02,0x80,0x06,0x3c,0x18,0x03,0xa4,0x34,0x78,0x41,0xd1,0x24,0x00,0x00,0x82,0xac,
+0x5d,0x00,0x71,0x10,0x01,0x00,0x15,0x24,0x2a,0xb0,0x02,0x3c,0x02,0x80,0x03,0x3c,
+0x06,0x00,0x56,0x34,0x78,0x1b,0x74,0x24,0xb0,0x03,0xb7,0x34,0x21,0xf0,0x80,0x00,
+0x05,0x00,0x53,0x34,0x01,0x00,0x12,0x24,0x1b,0x00,0xa0,0x12,0x02,0x80,0x03,0x3c,
+0x98,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x17,0x00,0x40,0x10,0x21,0xa8,0x00,0x00,
+0x01,0x00,0x06,0x24,0x18,0x00,0xa6,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x03,0x3c,0x9a,0x44,0x62,0x90,
+0x00,0x00,0x00,0x00,0x0f,0x00,0x42,0x30,0x04,0x00,0x42,0x28,0x57,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0x02,0x80,0x06,0x3c,0x56,0x43,0xc2,0x90,0x00,0x00,0x00,0x00,
+0x02,0x00,0x42,0x30,0x4d,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x00,0xc2,0x96,0x00,0x26,0x90,0x8e,
+0x00,0xff,0x42,0x30,0x00,0x00,0xf0,0xae,0x0d,0x00,0x40,0x18,0x02,0x80,0x02,0x3c,
+0x84,0xaf,0x42,0x24,0x21,0x28,0xc0,0x03,0x00,0x00,0x44,0x8c,0x02,0x80,0x06,0x3c,
+0x88,0xaf,0xc6,0x24,0x00,0x00,0xc3,0x8c,0x00,0x00,0xa4,0xac,0x00,0x00,0x62,0x94,
+0x00,0x00,0x00,0x00,0x00,0xff,0x42,0x30,0xfb,0xff,0x40,0x1c,0x00,0x00,0x00,0x00,
+0x0c,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0x07,0x00,0x62,0x30,0x48,0x00,0x40,0x14,
+0x08,0x00,0x62,0x24,0xc2,0x10,0x03,0x00,0x08,0x00,0x05,0x8e,0xcc,0x24,0x86,0x8e,
+0xc0,0x10,0x02,0x00,0x20,0x00,0x42,0x24,0xff,0xff,0x47,0x30,0x01,0x00,0x04,0x24,
+0xc3,0x01,0x00,0x0c,0x10,0x00,0xb2,0xaf,0x00,0x02,0x00,0x0c,0x01,0x00,0x04,0x24,
+0x02,0x00,0x02,0x24,0x00,0x00,0x72,0xa2,0x00,0x00,0x62,0xa2,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x04,0x00,0x03,0x8e,
+0x00,0x00,0x02,0x8e,0x21,0x20,0x00,0x02,0x00,0x00,0x62,0xac,0x04,0x00,0x43,0xac,
+0x00,0x00,0x10,0xae,0x56,0x15,0x00,0x0c,0x04,0x00,0x10,0xae,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x00,0x00,0x22,0x8e,0x00,0x00,0x00,0x00,
+0xad,0xff,0x51,0x14,0x00,0x00,0x00,0x00,0x18,0x00,0xa2,0x8f,0x00,0x00,0x00,0x00,
+0x07,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x98,0x44,0x62,0x90,
+0x00,0x00,0x00,0x00,0x11,0x00,0x40,0x14,0x18,0x00,0xa0,0xaf,0x02,0x80,0x02,0x3c,
+0x08,0x08,0x44,0x24,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,0x2d,0x28,0x00,0x0c,
+0x21,0x38,0x00,0x00,0x94,0x10,0x00,0x08,0x02,0x80,0x02,0x3c,0x55,0x1f,0x00,0x0c,
+0x01,0x00,0x04,0x24,0xbf,0x10,0x00,0x08,0x00,0x00,0x00,0x00,0xf9,0x1f,0x00,0x0c,
+0x04,0x00,0x04,0x24,0xba,0x10,0x00,0x08,0x02,0x80,0x06,0x3c,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x06,0x3c,
+0x99,0x44,0xc4,0x90,0xf9,0x1f,0x00,0x0c,0xff,0x00,0x84,0x30,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x04,0x11,0x00,0x08,0x02,0x80,0x02,0x3c,
+0xda,0x10,0x00,0x08,0xc2,0x10,0x02,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,
+0x08,0x00,0xe0,0x03,0x08,0x00,0x82,0x24,0xe0,0xff,0xbd,0x27,0x18,0x00,0xbf,0xaf,
+0x24,0x11,0x00,0x0c,0x74,0x00,0x84,0x24,0x21,0x28,0x40,0x00,0x10,0x00,0xa4,0x27,
+0x46,0x46,0x00,0x0c,0x02,0x00,0x06,0x24,0x10,0x00,0xa2,0x97,0x18,0x00,0xbf,0x8f,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,
+0x18,0x00,0xbf,0xaf,0x24,0x11,0x00,0x0c,0x10,0x00,0xa5,0xa7,0x21,0x20,0x40,0x00,
+0x10,0x00,0xa5,0x27,0x46,0x46,0x00,0x0c,0x02,0x00,0x06,0x24,0x18,0x00,0xbf,0x8f,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,
+0x0a,0x00,0x82,0x24,0xe0,0xff,0xbd,0x27,0x18,0x00,0xbf,0xaf,0x3f,0x11,0x00,0x0c,
+0x74,0x00,0x84,0x24,0x21,0x28,0x40,0x00,0x10,0x00,0xa4,0x27,0x46,0x46,0x00,0x0c,
+0x02,0x00,0x06,0x24,0x10,0x00,0xa2,0x97,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,
+0x21,0x80,0x80,0x00,0x00,0x00,0x05,0xa2,0x01,0x00,0x06,0xa2,0x18,0x00,0xb2,0xaf,
+0x14,0x00,0xb1,0xaf,0x1c,0x00,0xbf,0xaf,0x21,0x88,0xc0,0x00,0x02,0x00,0x84,0x24,
+0x30,0x00,0xb2,0x8f,0x0d,0x00,0xc0,0x14,0x21,0x28,0xe0,0x00,0x00,0x00,0x43,0x8e,
+0x21,0x10,0x11,0x02,0x1c,0x00,0xbf,0x8f,0x21,0x18,0x71,0x00,0x02,0x00,0x63,0x24,
+0x00,0x00,0x43,0xae,0x14,0x00,0xb1,0x8f,0x18,0x00,0xb2,0x8f,0x10,0x00,0xb0,0x8f,
+0x02,0x00,0x42,0x24,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x46,0x46,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x00,0x00,0x43,0x8e,0x21,0x10,0x11,0x02,0x1c,0x00,0xbf,0x8f,
+0x21,0x18,0x71,0x00,0x02,0x00,0x63,0x24,0x00,0x00,0x43,0xae,0x14,0x00,0xb1,0x8f,
+0x18,0x00,0xb2,0x8f,0x10,0x00,0xb0,0x8f,0x02,0x00,0x42,0x24,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x21,0x80,0xa0,0x00,
+0x18,0x00,0xb2,0xaf,0x21,0x28,0xc0,0x00,0x21,0x90,0xe0,0x00,0x21,0x30,0x00,0x02,
+0x1c,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x46,0x46,0x00,0x0c,0x21,0x88,0x80,0x00,
+0x00,0x00,0x43,0x8e,0x21,0x10,0x30,0x02,0x1c,0x00,0xbf,0x8f,0x21,0x18,0x70,0x00,
+0x00,0x00,0x43,0xae,0x14,0x00,0xb1,0x8f,0x18,0x00,0xb2,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x10,0x00,0xe0,0x18,0x21,0x18,0x00,0x00,
+0x00,0x00,0xc0,0xac,0x21,0x40,0x00,0x00,0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,
+0x0c,0x00,0x45,0x10,0x21,0x18,0x80,0x00,0x01,0x00,0x82,0x90,0x00,0x00,0x00,0x00,
+0x21,0x18,0x48,0x00,0x02,0x00,0x68,0x24,0x21,0x10,0x82,0x00,0x2b,0x18,0x07,0x01,
+0xf5,0xff,0x60,0x14,0x02,0x00,0x44,0x24,0x21,0x18,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0x01,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0xc2,0xac,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x7f,0x00,0x84,0x30,0x0c,0x00,0x82,0x2c,
+0x0a,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0x02,0x80,0x03,0x3c,0x80,0x10,0x04,0x00,
+0x8c,0xaf,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,
+0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x6c,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0x60,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0x48,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x30,0x00,0x03,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x24,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0x18,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0x12,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x0c,0x00,0x03,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x16,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0x0b,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0x04,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x02,0x00,0x03,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0xc8,0xff,0xbd,0x27,0x24,0x00,0xb5,0xaf,
+0x02,0x80,0x15,0x3c,0x2c,0x00,0xb7,0xaf,0x28,0x00,0xb6,0xaf,0x20,0x00,0xb4,0xaf,
+0x1c,0x00,0xb3,0xaf,0x30,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,
+0x10,0x00,0xb0,0xaf,0x21,0xb8,0x80,0x00,0x21,0xa0,0x00,0x00,0x21,0x98,0x00,0x00,
+0x78,0x1b,0xb6,0x26,0x78,0x1b,0xa2,0x26,0x21,0x10,0x62,0x02,0x44,0x0b,0x51,0x90,
+0xfe,0x00,0x03,0x24,0x1e,0x00,0x23,0x12,0xff,0x00,0x02,0x24,0x21,0x00,0x22,0x12,
+0x21,0x10,0x80,0x02,0xa2,0x11,0x00,0x0c,0x21,0x20,0x20,0x02,0x21,0x88,0x40,0x00,
+0x21,0x80,0x00,0x00,0x21,0x90,0xc0,0x02,0x21,0x10,0x12,0x02,0x26,0x0b,0x44,0x90,
+0x00,0x00,0x00,0x00,0x02,0x00,0x82,0x24,0xff,0x00,0x42,0x30,0x02,0x00,0x42,0x2c,
+0x05,0x00,0x40,0x14,0x01,0x00,0x10,0x26,0xa2,0x11,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x05,0x00,0x51,0x10,0x01,0x00,0x03,0x24,0x1e,0x00,0x02,0x2a,0xf3,0xff,0x40,0x14,
+0x21,0x10,0x12,0x02,0x21,0x18,0x00,0x00,0x01,0x00,0x02,0x24,0x14,0x00,0x62,0x10,
+0xff,0x00,0x22,0x32,0x21,0x10,0xf4,0x02,0x00,0x00,0x51,0xa0,0x01,0x00,0x94,0x26,
+0x01,0x00,0x73,0x26,0x1e,0x00,0x62,0x2a,0xdb,0xff,0x40,0x14,0x78,0x1b,0xa2,0x26,
+0x21,0x10,0x80,0x02,0x30,0x00,0xbf,0x8f,0x2c,0x00,0xb7,0x8f,0x28,0x00,0xb6,0x8f,
+0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,
+0x01,0x12,0x00,0x08,0x80,0x00,0x51,0x34,0xb8,0xff,0xbd,0x27,0x3c,0x00,0xb3,0xaf,
+0x38,0x00,0xb2,0xaf,0x30,0x00,0xb0,0xaf,0x21,0x90,0xc0,0x00,0x21,0x98,0xa0,0x00,
+0x1e,0x00,0x06,0x24,0x21,0x28,0x00,0x00,0x21,0x80,0x80,0x00,0x10,0x00,0xa4,0x27,
+0x40,0x00,0xbf,0xaf,0x35,0x46,0x00,0x0c,0x34,0x00,0xb1,0xaf,0x10,0x00,0xa4,0x27,
+0xd2,0x11,0x00,0x0c,0x00,0x00,0x40,0xae,0x21,0x88,0x40,0x00,0x09,0x00,0x43,0x28,
+0x21,0x38,0x40,0x00,0x08,0x00,0x02,0x24,0x0a,0x88,0x43,0x00,0x01,0x00,0x02,0x24,
+0x21,0x20,0x60,0x02,0x10,0x00,0xa5,0x27,0x0e,0x00,0x02,0x12,0x21,0x30,0x20,0x02,
+0x05,0x00,0x60,0x14,0xf8,0xff,0xf1,0x24,0x21,0x20,0x60,0x02,0x18,0x00,0xa5,0x27,
+0x08,0x00,0x20,0x16,0x21,0x30,0x20,0x02,0x40,0x00,0xbf,0x8f,0x3c,0x00,0xb3,0x8f,
+0x38,0x00,0xb2,0x8f,0x34,0x00,0xb1,0x8f,0x30,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x48,0x00,0xbd,0x27,0x46,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x51,0xae,
+0x40,0x00,0xbf,0x8f,0x3c,0x00,0xb3,0x8f,0x38,0x00,0xb2,0x8f,0x34,0x00,0xb1,0x8f,
+0x30,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x48,0x00,0xbd,0x27,0x00,0x00,0x82,0x94,
+0x21,0x30,0x80,0x00,0x10,0x00,0x85,0x24,0x42,0x1a,0x02,0x00,0xc2,0x11,0x02,0x00,
+0x02,0x00,0x42,0x30,0x01,0x00,0x63,0x30,0x25,0x18,0x43,0x00,0x01,0x00,0x04,0x24,
+0x07,0x00,0x64,0x10,0x00,0x00,0x00,0x00,0x05,0x00,0x60,0x10,0x0a,0x00,0xc5,0x24,
+0x02,0x00,0x02,0x24,0x02,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x18,0x00,0xc5,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0xa0,0x00,0x00,0x00,0x82,0x94,0x21,0x30,0x80,0x00,
+0x04,0x00,0x85,0x24,0x42,0x1a,0x02,0x00,0xc2,0x11,0x02,0x00,0x02,0x00,0x42,0x30,
+0x01,0x00,0x63,0x30,0x25,0x18,0x43,0x00,0x01,0x00,0x04,0x24,0x04,0x00,0x64,0x10,
+0x00,0x00,0x00,0x00,0x02,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0x10,0x00,0xc5,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0xa0,0x00,0x13,0x00,0xa0,0x18,0x21,0x30,0x00,0x00,
+0x02,0x00,0x07,0x24,0x04,0x00,0x08,0x24,0x0b,0x00,0x09,0x24,0x16,0x00,0x0a,0x24,
+0x21,0x10,0x86,0x00,0x00,0x00,0x43,0x90,0x01,0x00,0xc6,0x24,0x7f,0x00,0x63,0x30,
+0x07,0x00,0x67,0x10,0x2a,0x10,0xc5,0x00,0x05,0x00,0x68,0x10,0x00,0x00,0x00,0x00,
+0x03,0x00,0x69,0x10,0x00,0x00,0x00,0x00,0x05,0x00,0x6a,0x14,0x00,0x00,0x00,0x00,
+0xf3,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf,
+0x6a,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,0x10,0x00,0xbf,0x8f,0x01,0x00,0x44,0x38,
+0x03,0x00,0x03,0x24,0x01,0x00,0x02,0x24,0x0b,0x10,0x64,0x00,0x08,0x00,0xe0,0x03,
+0x18,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x60,0x02,0x40,
+0x01,0x00,0x41,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x03,0x3c,
+0xfc,0xa9,0x64,0xac,0x00,0x60,0x82,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x02,0x80,0x02,0x3c,0xfc,0xa9,0x45,0x8c,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x18,0x03,0x42,0x34,0x70,0x4a,0x63,0x24,0x00,0x00,0x43,0xac,0x04,0x00,0x02,0x24,
+0x1e,0x00,0xa2,0x10,0x05,0x00,0xa2,0x2c,0x10,0x00,0x40,0x10,0x05,0x00,0x02,0x24,
+0x03,0x00,0x02,0x24,0x08,0x00,0xa2,0x10,0x00,0x19,0x04,0x00,0x80,0x10,0x04,0x00,
+0x21,0x10,0x44,0x00,0xc0,0x10,0x02,0x00,0x23,0x10,0x44,0x00,0x00,0x11,0x02,0x00,
+0x21,0x10,0x44,0x00,0x40,0x19,0x02,0x00,0xff,0xff,0x63,0x24,0xfe,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xf3,0xff,0xa2,0x10,
+0x06,0x00,0x02,0x24,0xf2,0xff,0xa2,0x14,0x80,0x10,0x04,0x00,0x40,0x11,0x04,0x00,
+0x23,0x10,0x44,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,0x00,0x19,0x02,0x00,
+0x23,0x18,0x62,0x00,0xb2,0x12,0x00,0x08,0x00,0x19,0x03,0x00,0x80,0x10,0x04,0x00,
+0x21,0x10,0x44,0x00,0xc0,0x10,0x02,0x00,0x23,0x10,0x44,0x00,0x00,0x11,0x02,0x00,
+0x21,0x10,0x44,0x00,0xb2,0x12,0x00,0x08,0x00,0x19,0x02,0x00,0x02,0x80,0x02,0x3c,
+0xfc,0xa9,0x45,0x8c,0x00,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,
+0x2c,0x4b,0x63,0x24,0x00,0x00,0x43,0xac,0x05,0x00,0x02,0x24,0x06,0x00,0xa2,0x10,
+0x06,0x00,0xa2,0x2c,0x0c,0x00,0x40,0x10,0x06,0x00,0x02,0x24,0x04,0x00,0x02,0x24,
+0x0e,0x00,0xa2,0x10,0x80,0x10,0x04,0x00,0x80,0x10,0x04,0x00,0x21,0x10,0x44,0x00,
+0x80,0x10,0x02,0x00,0xff,0xff,0x42,0x24,0xfe,0xff,0x40,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xf7,0xff,0xa2,0x14,0x00,0x11,0x04,0x00,
+0x23,0x10,0x44,0x00,0xdd,0x12,0x00,0x08,0x40,0x10,0x02,0x00,0x21,0x10,0x44,0x00,
+0xdd,0x12,0x00,0x08,0x40,0x10,0x02,0x00,0xff,0xff,0x85,0x30,0x21,0x30,0x00,0x00,
+0x25,0xb0,0x03,0x3c,0x2a,0xb0,0x04,0x3c,0xb4,0x00,0x63,0x34,0x01,0x00,0xa2,0x24,
+0x31,0x00,0x84,0x34,0x00,0x00,0x65,0xa0,0x00,0x00,0x85,0xa0,0xff,0xff,0x45,0x30,
+0x12,0x00,0xa0,0x10,0x01,0x00,0x03,0x24,0x28,0xb0,0x07,0x3c,0xff,0x12,0x00,0x08,
+0xff,0xff,0x08,0x24,0x00,0x00,0x83,0xa0,0x01,0x00,0x63,0x24,0xff,0xff,0x63,0x30,
+0x2b,0x10,0xa3,0x00,0x09,0x00,0x40,0x14,0x08,0x00,0xc6,0x24,0xf9,0xff,0x65,0x14,
+0x21,0x20,0xc7,0x00,0x01,0x00,0x63,0x24,0xff,0xff,0x63,0x30,0x2b,0x10,0xa3,0x00,
+0x00,0x00,0x88,0xa0,0xf9,0xff,0x40,0x10,0x08,0x00,0xc6,0x24,0x00,0x01,0xa2,0x2c,
+0x13,0x00,0x40,0x10,0x21,0x18,0xa0,0x00,0xff,0x00,0x08,0x24,0x28,0xb0,0x07,0x3c,
+0x13,0x13,0x00,0x08,0xff,0xff,0x09,0x24,0xff,0xff,0x43,0x30,0x00,0x00,0xa2,0xa0,
+0x00,0x01,0x62,0x2c,0x0a,0x00,0x40,0x10,0x08,0x00,0xc6,0x24,0x01,0x00,0x62,0x24,
+0xf9,0xff,0x68,0x14,0x21,0x28,0xc7,0x00,0x00,0x01,0x02,0x24,0xff,0xff,0x43,0x30,
+0x00,0x01,0x62,0x2c,0x00,0x00,0xa9,0xa0,0xf8,0xff,0x40,0x14,0x08,0x00,0xc6,0x24,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xd0,0xff,0xbd,0x27,0x28,0x00,0xbf,0xaf,
+0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x12,0x40,0x01,0x00,0x41,0x36,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x10,0x3c,0x42,0x00,0x15,0x36,
+0xff,0xff,0x02,0x24,0x00,0x00,0xa2,0xa2,0xd8,0x00,0x05,0x36,0x40,0x00,0x11,0x36,
+0xa8,0x00,0x14,0x36,0xa0,0x00,0x13,0x36,0x00,0x10,0x03,0x24,0xa4,0x00,0x10,0x36,
+0x00,0x80,0x02,0x3c,0x00,0x00,0x23,0xa6,0x00,0x00,0xa0,0xa0,0x00,0x00,0x60,0xae,
+0x00,0x00,0x00,0xae,0x00,0x00,0x82,0xae,0x00,0x00,0xa3,0x90,0x80,0xff,0x02,0x24,
+0xfd,0x00,0x04,0x24,0x25,0x18,0x62,0x00,0xfc,0x17,0x02,0x24,0x00,0x00,0xa3,0xa0,
+0x00,0x00,0x22,0xa6,0xea,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,
+0x78,0x1b,0x42,0x24,0x74,0x0b,0x45,0x8c,0x6c,0x0b,0x43,0x8c,0x70,0x0b,0x44,0x8c,
+0xfc,0x37,0x02,0x24,0x00,0x00,0x63,0xae,0x00,0x00,0x04,0xae,0x00,0x00,0x85,0xae,
+0x00,0x00,0x22,0xa6,0x00,0x00,0xa0,0xa2,0x00,0x60,0x92,0x40,0x28,0x00,0xbf,0x8f,
+0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,
+0xc8,0xff,0xbd,0x27,0x34,0x00,0xbf,0xaf,0x30,0x00,0xbe,0xaf,0x2c,0x00,0xb7,0xaf,
+0x28,0x00,0xb6,0xaf,0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,
+0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x16,0x40,
+0x01,0x00,0xc1,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x11,0x3c,
+0x40,0x00,0x30,0x36,0xff,0xff,0x02,0x24,0x42,0x00,0x3e,0x36,0xfc,0x77,0x13,0x24,
+0x00,0x00,0xc2,0xa3,0xfc,0x57,0x12,0x24,0x00,0x00,0x13,0xa6,0xcb,0x12,0x00,0x0c,
+0x32,0x00,0x04,0x24,0xfc,0x37,0x17,0x24,0x32,0x00,0x04,0x24,0x00,0x00,0x12,0xa6,
+0xcb,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,0x32,0x00,0x04,0x24,0x00,0x00,0x17,0xa6,
+0xcb,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0xa6,0xcb,0x12,0x00,0x0c,
+0x32,0x00,0x04,0x24,0x32,0x00,0x04,0x24,0x00,0x00,0x12,0xa6,0xcb,0x12,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x96,0x24,0xfa,0x03,0x24,0xd8,0x00,0x25,0x36,
+0x24,0x10,0x43,0x00,0x00,0x00,0x02,0xa6,0x00,0x00,0xa3,0x90,0xa0,0x00,0x34,0x36,
+0xa4,0x00,0x35,0x36,0xa8,0x00,0x33,0x36,0x7f,0x00,0x63,0x30,0x00,0x80,0x02,0x3c,
+0x00,0x00,0xa3,0xa0,0x00,0x00,0x80,0xae,0x00,0x00,0xa0,0xae,0x00,0x00,0x62,0xae,
+0x00,0x00,0xa3,0x90,0x80,0xff,0x02,0x24,0xfd,0x00,0x04,0x24,0x25,0x18,0x62,0x00,
+0x00,0x00,0xa3,0xa0,0x00,0x00,0x12,0xa6,0xea,0x12,0x00,0x0c,0x56,0x01,0x31,0x36,
+0x02,0x80,0x02,0x3c,0x78,0x1b,0x42,0x24,0x74,0x0b,0x45,0x8c,0x6c,0x0b,0x43,0x8c,
+0x70,0x0b,0x44,0x8c,0xff,0x0f,0x02,0x24,0x00,0x00,0x83,0xae,0x00,0x00,0xa4,0xae,
+0x00,0x00,0x65,0xae,0x00,0x00,0x17,0xa6,0x00,0x00,0x22,0xa6,0x00,0x00,0xc0,0xa3,
+0x00,0x60,0x96,0x40,0x34,0x00,0xbf,0x8f,0x30,0x00,0xbe,0x8f,0x2c,0x00,0xb7,0x8f,
+0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x38,0x00,0xbd,0x27,0xd0,0xff,0xbd,0x27,0x2c,0x00,0xbf,0xaf,0x28,0x00,0xb6,0xaf,
+0x24,0x00,0xb5,0xaf,0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x10,0x3c,0x40,0x00,0x05,0x36,
+0x00,0x00,0xa2,0x94,0xaf,0xff,0x03,0x24,0xa8,0x00,0x13,0x36,0x24,0x10,0x43,0x00,
+0x00,0x00,0xa2,0xa4,0xa0,0x00,0x12,0x36,0xa4,0x00,0x10,0x36,0x00,0x00,0x55,0x8e,
+0x00,0x00,0x16,0x8e,0x00,0x00,0x71,0x8e,0x00,0x80,0x14,0x3c,0xfc,0x37,0x02,0x24,
+0x00,0x00,0x40,0xae,0xfd,0x00,0x04,0x24,0x00,0x00,0x00,0xae,0x21,0x88,0x34,0x02,
+0x00,0x00,0x74,0xae,0x00,0x00,0xa2,0xa4,0xea,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x55,0xae,0x00,0x00,0x16,0xae,0x00,0x00,0x71,0xae,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb6,0x8f,
+0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x25,0xb0,0x04,0x3c,0x40,0x00,0x84,0x34,0x00,0x00,0x82,0x94,0xd8,0xfd,0x03,0x24,
+0x24,0x10,0x43,0x00,0xfc,0x37,0x03,0x24,0x00,0x00,0x82,0xa4,0x00,0x00,0x83,0xa4,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0xc8,0xff,0xbd,0x27,0x25,0xb0,0x03,0x3c,0x1c,0x00,0xb3,0xaf,
+0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x34,0x00,0xbf,0xaf,
+0x30,0x00,0xbe,0xaf,0x2c,0x00,0xb7,0xaf,0x28,0x00,0xb6,0xaf,0x24,0x00,0xb5,0xaf,
+0x20,0x00,0xb4,0xaf,0x0a,0x00,0x67,0x34,0x00,0x00,0xe2,0x90,0xff,0xff,0xb2,0x30,
+0x21,0x98,0xc0,0x00,0xff,0x00,0x91,0x30,0x20,0x00,0x40,0x12,0xff,0x00,0x50,0x30,
+0x21,0xa0,0xe0,0x00,0x0c,0x00,0x77,0x34,0x0b,0x00,0x76,0x34,0x21,0xf0,0xe0,0x00,
+0xc0,0xff,0x15,0x24,0x25,0x10,0x15,0x02,0xff,0x00,0x50,0x30,0x00,0x00,0xd1,0xa2,
+0x00,0x00,0x90,0xa2,0x00,0x00,0x82,0x92,0x00,0x00,0x00,0x00,0xff,0x00,0x50,0x30,
+0xc0,0x00,0x03,0x32,0x07,0x00,0x60,0x10,0x21,0x20,0xc0,0x03,0x00,0x00,0x82,0x90,
+0x00,0x00,0x00,0x00,0xff,0x00,0x50,0x30,0xc0,0x00,0x03,0x32,0xfb,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x00,0x00,0xe2,0x8e,0x04,0x00,0x23,0x26,0x64,0x00,0x04,0x24,
+0x00,0x00,0x62,0xae,0x9c,0x12,0x00,0x0c,0xff,0x00,0x71,0x30,0xfc,0xff,0x42,0x26,
+0xff,0xff,0x52,0x30,0xe7,0xff,0x40,0x16,0x04,0x00,0x73,0x26,0x34,0x00,0xbf,0x8f,
+0x30,0x00,0xbe,0x8f,0x2c,0x00,0xb7,0x8f,0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,
+0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0xff,0x00,0x84,0x30,
+0xff,0xff,0xac,0x30,0xc0,0x48,0x04,0x00,0x00,0x60,0x0e,0x40,0x01,0x00,0xc1,0x35,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x25,0xb0,0x02,0x3c,0x40,0x02,0x4d,0x34,
+0xf8,0xff,0xe7,0x24,0x21,0x40,0x00,0x00,0x01,0x00,0x0f,0x24,0x44,0x02,0x4b,0x34,
+0x57,0x14,0x00,0x08,0x01,0x80,0x0a,0x3c,0x28,0x00,0x0f,0x11,0x00,0x00,0x00,0x00,
+0x01,0x00,0xe2,0x90,0x00,0x00,0xe4,0x90,0x02,0x00,0xe3,0x90,0x03,0x00,0xe5,0x90,
+0x00,0x12,0x02,0x00,0x25,0x20,0x82,0x00,0x00,0x1c,0x03,0x00,0x25,0x20,0x83,0x00,
+0x21,0x10,0x28,0x01,0x00,0x2e,0x05,0x00,0x01,0x00,0x08,0x25,0x25,0x20,0x85,0x00,
+0x25,0x10,0x4a,0x00,0x06,0x00,0x03,0x2d,0x00,0x00,0x64,0xad,0x04,0x00,0xe7,0x24,
+0x00,0x00,0xa2,0xad,0x12,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0xea,0xff,0x00,0x15,
+0x00,0x00,0x00,0x00,0x00,0x00,0xc2,0x90,0x01,0x00,0xc3,0x90,0x04,0x00,0xe7,0x24,
+0x00,0x14,0x02,0x00,0x25,0x10,0x82,0x01,0x00,0x1e,0x03,0x00,0x25,0x20,0x43,0x00,
+0x21,0x10,0x28,0x01,0x01,0x00,0x08,0x25,0x25,0x10,0x4a,0x00,0x06,0x00,0x03,0x2d,
+0x00,0x00,0x64,0xad,0x00,0x00,0xa2,0xad,0xf0,0xff,0x60,0x14,0x00,0x00,0x00,0x00,
+0x00,0x60,0x8e,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x03,0x00,0xc2,0x90,
+0x02,0x00,0xc4,0x90,0x04,0x00,0xc3,0x90,0x05,0x00,0xc5,0x90,0x49,0x14,0x00,0x08,
+0x00,0x12,0x02,0x00,0xff,0xff,0x84,0x30,0x42,0xb0,0x08,0x3c,0x80,0x10,0x04,0x00,
+0x21,0x10,0x48,0x00,0x04,0x00,0x46,0xac,0x00,0x00,0x07,0x91,0x40,0x18,0x04,0x00,
+0x03,0x00,0x06,0x24,0xff,0x00,0xe7,0x30,0x04,0x30,0x66,0x00,0x01,0x00,0x02,0x24,
+0x04,0x10,0x62,0x00,0x25,0x30,0xc7,0x00,0xff,0xff,0xa5,0x30,0x25,0x10,0x47,0x00,
+0x02,0x00,0xa0,0x14,0xff,0x00,0xc7,0x30,0xff,0x00,0x47,0x30,0x42,0xb0,0x02,0x3c,
+0x00,0x00,0x47,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x42,0xb0,0x02,0x3c,
+0x03,0x00,0x47,0x34,0x00,0x00,0xe3,0x90,0xff,0x00,0x84,0x30,0x04,0x00,0x84,0x24,
+0xff,0x00,0x65,0x30,0x01,0x00,0x02,0x24,0x04,0x30,0x82,0x00,0x07,0x18,0x85,0x00,
+0x25,0xb0,0x02,0x3c,0xe8,0x03,0x42,0x34,0x01,0x00,0x63,0x30,0x21,0x20,0xc0,0x00,
+0x00,0x00,0x45,0xa0,0x02,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0xa0,
+0x08,0x00,0xe0,0x03,0x24,0x10,0x85,0x00,0x00,0x60,0x03,0x40,0x01,0x00,0x61,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,0x00,0xaa,0x42,0x24,
+0x04,0x00,0x45,0x8c,0x00,0x00,0x82,0xac,0x04,0x00,0x44,0xac,0x00,0x00,0xa4,0xac,
+0x04,0x00,0x85,0xac,0x00,0x60,0x83,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x14,0x00,0x83,0x90,0x01,0x00,0x02,0x24,0x08,0x00,0x86,0xac,0x18,0x00,0x85,0xac,
+0x00,0x00,0x84,0xac,0x03,0x00,0x62,0x10,0x04,0x00,0x84,0xac,0x9a,0x14,0x00,0x08,
+0x0c,0x00,0x80,0xac,0x0c,0x00,0x82,0x8c,0x9a,0x14,0x00,0x08,0x10,0x00,0x82,0xac,
+0x00,0x60,0x03,0x40,0x01,0x00,0x61,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x04,0x00,0x85,0x8c,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xac,
+0x04,0x00,0x45,0xac,0x00,0x00,0x84,0xac,0x04,0x00,0x84,0xac,0x00,0x60,0x83,0x40,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xc8,0xff,0xbd,0x27,0x28,0x00,0xb6,0xaf,
+0x25,0xb0,0x02,0x3c,0x02,0x80,0x16,0x3c,0x2c,0x00,0xb7,0xaf,0x24,0x00,0xb5,0xaf,
+0x20,0x00,0xb4,0xaf,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x30,0x00,0xbf,0xaf,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x18,0x03,0x55,0x34,0x00,0x80,0x17,0x3c,
+0x02,0x80,0x13,0x3c,0x02,0x80,0x14,0x3c,0x00,0xaa,0xd2,0x26,0x08,0x53,0xe2,0x26,
+0x00,0x00,0xa2,0xae,0x00,0xaa,0xd0,0x8e,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x8c,0x43,0x71,0x8e,0x00,0x00,0x00,0x00,
+0x25,0x00,0x20,0x12,0x00,0x00,0x00,0x00,0x8c,0x43,0x60,0xae,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x23,0x00,0x12,0x12,0x08,0x0c,0x84,0x26,
+0x14,0x00,0x03,0x92,0x01,0x00,0x02,0x24,0x2b,0x00,0x62,0x10,0x00,0x00,0x00,0x00,
+0x0a,0x00,0x60,0x14,0x02,0x00,0x02,0x24,0x0c,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,
+0x2b,0x10,0x23,0x02,0x1e,0x00,0x40,0x10,0x23,0x10,0x71,0x00,0x0c,0x00,0x02,0xae,
+0x00,0x00,0x10,0x8e,0xe2,0x14,0x00,0x08,0x00,0x00,0x00,0x00,0xfc,0xff,0x62,0x14,
+0x00,0x00,0x00,0x00,0x0c,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,0xf8,0xff,0x60,0x10,
+0x2b,0x10,0x23,0x02,0xf5,0xff,0x40,0x14,0x23,0x10,0x71,0x00,0x08,0x00,0x02,0x8e,
+0x18,0x00,0x04,0x8e,0x09,0xf8,0x40,0x00,0x0c,0x00,0x00,0xae,0x00,0x00,0x10,0x8e,
+0xe2,0x14,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x08,0x0c,0x84,0x26,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,
+0x2d,0x28,0x00,0x0c,0x21,0x38,0x00,0x00,0xd4,0x14,0x00,0x08,0x08,0x53,0xe2,0x26,
+0x08,0x00,0x02,0x8e,0x18,0x00,0x04,0x8e,0x09,0xf8,0x40,0x00,0x00,0x00,0x00,0x00,
+0xf0,0x14,0x00,0x08,0x0c,0x00,0x02,0xae,0x0c,0x00,0x03,0x8e,0x00,0x00,0x00,0x00,
+0x2b,0x10,0x23,0x02,0xd9,0xff,0x40,0x14,0x23,0x10,0x71,0x00,0x08,0x00,0x02,0x8e,
+0x18,0x00,0x04,0x8e,0x09,0xf8,0x40,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x03,0x8e,
+0x00,0x00,0x00,0x00,0x0c,0x00,0x03,0xae,0x00,0x00,0x10,0x8e,0xe2,0x14,0x00,0x08,
+0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x80,0x41,0x42,0x24,0xc0,0x20,0x04,0x00,
+0x21,0x20,0x82,0x00,0x21,0x28,0x00,0x00,0x00,0x60,0x06,0x40,0x01,0x00,0xc1,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x09,0x00,0x44,0x10,0x00,0x00,0x00,0x00,0x04,0x00,0x43,0x8c,0x21,0x28,0x40,0x00,
+0x00,0x00,0x42,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xac,0x04,0x00,0x43,0xac,
+0x00,0x00,0xa5,0xac,0x04,0x00,0xa5,0xac,0x00,0x60,0x86,0x40,0x08,0x00,0xe0,0x03,
+0x21,0x10,0xa0,0x00,0xe8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x21,0x80,0x80,0x00,
+0x01,0x01,0x02,0x2e,0x14,0x00,0xbf,0xaf,0x01,0x00,0x04,0x24,0x01,0x02,0x03,0x2e,
+0x0b,0x00,0x40,0x14,0x21,0x28,0x00,0x00,0x02,0x00,0x04,0x24,0x08,0x00,0x60,0x14,
+0x01,0x08,0x02,0x2e,0x06,0x00,0x40,0x14,0x03,0x00,0x04,0x24,0x14,0x00,0xbf,0x8f,
+0x10,0x00,0xb0,0x8f,0x21,0x10,0xa0,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,
+0x21,0x15,0x00,0x0c,0x00,0x00,0x00,0x00,0xf8,0xff,0x40,0x10,0x21,0x28,0x40,0x00,
+0x0c,0x00,0x50,0xac,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0xa0,0x00,
+0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x00,0x60,0x06,0x40,0x01,0x00,0xc1,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x10,0x00,0x83,0x8c,0x02,0x80,0x02,0x3c,
+0x80,0x41,0x42,0x24,0xc0,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0x00,0x00,0x65,0x8c,
+0x02,0x80,0x07,0x3c,0x02,0x80,0x08,0x3c,0x00,0x00,0x85,0xac,0x04,0x00,0xa4,0xac,
+0x04,0x00,0x83,0xac,0x58,0x44,0xe5,0x8c,0x00,0x00,0x00,0x00,0x05,0x00,0xa0,0x10,
+0x00,0x00,0x64,0xac,0x44,0x44,0x02,0x8d,0x58,0x44,0xe0,0xac,0x25,0x10,0x45,0x00,
+0x44,0x44,0x02,0xad,0x00,0x60,0x86,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x02,0x80,0x02,0x3c,0x7c,0x3f,0x43,0x8c,0xff,0x00,0xa5,0x30,0x25,0xb0,0x02,0x3c,
+0x42,0x18,0x03,0x00,0x21,0x30,0xa2,0x00,0x01,0x00,0x63,0x30,0x01,0x00,0x02,0x24,
+0x10,0x00,0xa7,0x2c,0x04,0x00,0x62,0x10,0xff,0x00,0x84,0x30,0x60,0x01,0xc4,0xa0,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c,0x10,0x00,0xa2,0x34,
+0xfa,0xff,0xe0,0x10,0x21,0x40,0x43,0x00,0x60,0x01,0xc4,0xa0,0x60,0x01,0x04,0xa1,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xff,0x00,0x84,0x30,0x01,0x00,0x03,0x24,
+0x10,0x00,0x02,0x3c,0x04,0x18,0x83,0x00,0xf0,0x70,0x42,0x34,0x15,0x00,0x84,0x2c,
+0x06,0x00,0x80,0x10,0x24,0x28,0x62,0x00,0x0f,0x00,0x63,0x30,0x04,0x00,0xa0,0x14,
+0x01,0x00,0x02,0x24,0x02,0x00,0x60,0x14,0x02,0x00,0x02,0x24,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xc0,0x40,0x04,0x00,0x21,0x18,0x04,0x01,
+0x80,0x18,0x03,0x00,0x21,0x18,0x64,0x00,0x02,0x80,0x02,0x3c,0x80,0x18,0x03,0x00,
+0x78,0x1b,0x42,0x24,0x21,0x18,0x62,0x00,0x8c,0x11,0x66,0x8c,0x21,0x38,0x60,0x00,
+0x92,0x11,0x60,0xa0,0x93,0x11,0x60,0xa0,0x1c,0x00,0x05,0x24,0xa7,0x15,0x00,0x08,
+0x01,0x00,0x03,0x24,0x08,0x00,0xa0,0x04,0x21,0x10,0x04,0x01,0x04,0x10,0xa3,0x00,
+0x24,0x10,0xc2,0x00,0xfb,0xff,0x40,0x10,0xff,0xff,0xa5,0x24,0x01,0x00,0xa5,0x24,
+0x92,0x11,0xe5,0xa0,0x21,0x10,0x04,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,
+0x02,0x80,0x03,0x3c,0x80,0x10,0x02,0x00,0x78,0x1b,0x63,0x24,0x21,0x18,0x43,0x00,
+0x8c,0x11,0x66,0x8c,0x21,0x28,0x00,0x00,0xbb,0x15,0x00,0x08,0x01,0x00,0x07,0x24,
+0x1d,0x00,0xa2,0x28,0x08,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x04,0x10,0xa7,0x00,
+0x24,0x10,0xc2,0x00,0xfa,0xff,0x40,0x10,0x01,0x00,0xa5,0x24,0xff,0xff,0xa5,0x24,
+0x08,0x00,0xe0,0x03,0x93,0x11,0x65,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xd8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,
+0xc0,0x80,0x04,0x00,0x21,0x80,0x04,0x02,0x80,0x80,0x10,0x00,0x21,0x80,0x04,0x02,
+0x02,0x80,0x02,0x3c,0x78,0x1b,0x42,0x24,0x80,0x80,0x10,0x00,0x20,0x00,0xbf,0xaf,
+0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x21,0x80,0x02,0x02,0x14,0x00,0xb1,0xaf,
+0x90,0x11,0x03,0x8e,0x25,0xb0,0x02,0x3c,0x80,0x01,0x53,0x34,0x07,0x00,0x63,0x30,
+0x80,0x18,0x03,0x00,0x21,0x18,0x62,0x00,0x00,0x00,0x71,0x92,0x88,0x11,0x05,0x8e,
+0x84,0x01,0x62,0x8c,0x21,0x90,0x80,0x00,0xff,0x00,0x31,0x32,0x24,0x10,0x45,0x00,
+0x96,0x15,0x00,0x0c,0x8c,0x11,0x02,0xae,0x92,0x11,0x04,0x92,0x70,0x15,0x00,0x0c,
+0xff,0x00,0x45,0x32,0x92,0x11,0x04,0x92,0x86,0x15,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,0x0a,0x88,0x62,0x00,0x00,0x00,0x71,0xa2,
+0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0xff,0xff,0x84,0x30,
+0x00,0x02,0x82,0x30,0x07,0x00,0x03,0x24,0x0d,0x00,0x40,0x14,0x0b,0x00,0x84,0x30,
+0x0c,0x00,0x82,0x2c,0x0a,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,
+0x80,0x10,0x04,0x00,0xe0,0xaf,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,
+0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x03,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x06,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0x05,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0x04,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x03,0x00,0x03,0x24,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x02,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x60,0x00,0x01,0x00,0x03,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0x21,0x18,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x90,0xff,0xbd,0x27,
+0x02,0x80,0x02,0x3c,0x68,0x00,0xbe,0xaf,0x64,0x00,0xb7,0xaf,0x60,0x00,0xb6,0xaf,
+0x5c,0x00,0xb5,0xaf,0x54,0x00,0xb3,0xaf,0x50,0x00,0xb2,0xaf,0x6c,0x00,0xbf,0xaf,
+0x58,0x00,0xb4,0xaf,0x4c,0x00,0xb1,0xaf,0x48,0x00,0xb0,0xaf,0x10,0xb0,0x42,0x24,
+0x00,0x00,0x54,0x8c,0x08,0x00,0x03,0x24,0x10,0x00,0xa3,0xaf,0x21,0x98,0x00,0x00,
+0x21,0xa8,0x00,0x00,0x21,0xb8,0x00,0x00,0x21,0xf0,0x00,0x00,0x14,0x00,0xa0,0xaf,
+0x18,0x00,0xa0,0xaf,0x1c,0x00,0xa0,0xaf,0x20,0x00,0xa0,0xaf,0x21,0xb0,0x00,0x00,
+0x24,0x00,0xa0,0xaf,0x28,0x00,0xa0,0xaf,0x2c,0x00,0xa0,0xaf,0x30,0x00,0xa0,0xaf,
+0x34,0x00,0xa0,0xaf,0x38,0x00,0xa0,0xaf,0x3c,0x00,0xa0,0xaf,0x40,0x00,0xa0,0xaf,
+0x21,0x90,0x80,0x02,0x90,0x11,0x42,0x8e,0x00,0x00,0x00,0x00,0x02,0x13,0x02,0x00,
+0x01,0x00,0x42,0x30,0x6c,0x00,0x40,0x10,0x25,0xb0,0x02,0x3c,0x21,0x10,0x62,0x02,
+0x60,0x01,0x44,0x90,0x78,0x11,0x43,0x8e,0x74,0x11,0x46,0x8e,0xff,0x00,0x91,0x30,
+0x02,0x80,0x04,0x3c,0x78,0x1b,0x84,0x24,0x21,0x10,0x24,0x02,0x77,0x04,0x44,0x90,
+0x5a,0x04,0x45,0x90,0x5c,0x11,0x47,0x8e,0x18,0x00,0x64,0x00,0x12,0x18,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0xc5,0x00,0x12,0x30,0x00,0x00,
+0x21,0x30,0xc3,0x00,0x2b,0x10,0xe6,0x00,0x25,0x01,0x40,0x14,0x23,0x10,0xe6,0x00,
+0x5c,0x11,0x42,0xae,0x78,0x11,0x44,0x8e,0x74,0x11,0x47,0x8e,0x60,0x11,0x48,0x8e,
+0x64,0x11,0x45,0x8e,0x6c,0x11,0x46,0x8e,0x70,0x11,0x43,0x8e,0x21,0x38,0xe4,0x00,
+0x02,0x80,0x04,0x3c,0x78,0x1b,0x84,0x24,0x21,0x10,0x24,0x02,0x21,0x40,0x05,0x01,
+0x21,0x30,0xc3,0x00,0xce,0x04,0x42,0x90,0x5c,0x11,0x4a,0x8e,0x0c,0x00,0xe0,0x10,
+0x21,0x48,0x00,0x00,0x2b,0x48,0x47,0x00,0x0b,0x00,0x20,0x15,0x02,0x80,0x02,0x3c,
+0x07,0x00,0x22,0x2e,0x93,0x01,0x40,0x14,0xc0,0x10,0x07,0x00,0x0c,0x00,0x02,0x24,
+0x8f,0x01,0x22,0x12,0x0d,0x00,0x02,0x24,0x8e,0x01,0x22,0x12,0xc0,0x10,0x07,0x00,
+0x81,0x00,0x20,0x11,0x02,0x80,0x02,0x3c,0x78,0x1b,0x42,0x24,0x80,0x18,0x11,0x00,
+0x21,0x18,0x62,0x00,0x21,0x20,0x51,0x02,0xce,0x11,0x85,0x90,0xf8,0x04,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x04,0x10,0xa2,0x00,0x2b,0x10,0x4a,0x00,0x76,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0xec,0x11,0x42,0x8e,0x01,0x00,0x07,0x24,0x04,0x18,0x27,0x02,
+0x24,0x10,0x43,0x00,0x04,0x01,0x40,0x10,0x1c,0x00,0x22,0x2e,0x21,0x28,0x51,0x02,
+0x94,0x11,0xa6,0x90,0xce,0x11,0xa2,0x90,0x0a,0x00,0x04,0x24,0xff,0x00,0xc3,0x30,
+0x04,0x20,0x44,0x00,0x2a,0x18,0x64,0x00,0xfb,0x00,0x60,0x10,0x1c,0x00,0x22,0x2e,
+0x01,0x00,0xc2,0x24,0xff,0x00,0x43,0x30,0x8c,0x01,0x64,0x10,0x94,0x11,0xa2,0xa0,
+0x02,0x80,0x04,0x3c,0x78,0x1b,0x85,0x24,0x80,0x10,0x11,0x00,0x21,0x10,0x45,0x00,
+0x6c,0x05,0x44,0x8c,0xf8,0x04,0x43,0x8c,0x21,0x30,0xc5,0x02,0x40,0x10,0x04,0x00,
+0x21,0x10,0x44,0x00,0x21,0x18,0x62,0x00,0x82,0x50,0x03,0x00,0x5c,0x11,0xca,0xac,
+0xec,0x25,0xa3,0x8c,0xff,0xff,0x02,0x34,0x03,0x00,0x62,0x10,0x21,0x20,0x20,0x02,
+0x70,0x15,0x00,0x0c,0xff,0x00,0x65,0x32,0x86,0x15,0x00,0x0c,0x21,0x20,0x20,0x02,
+0x10,0x00,0xa4,0x8f,0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,0x0a,0x20,0x62,0x00,
+0xbc,0x00,0x60,0x12,0x10,0x00,0xa4,0xaf,0x02,0x80,0x03,0x3c,0x78,0x1b,0x62,0x24,
+0x21,0x10,0xa2,0x02,0x70,0x11,0x40,0xac,0x74,0x11,0x40,0xac,0x78,0x11,0x40,0xac,
+0x60,0x11,0x40,0xac,0x64,0x11,0x40,0xac,0x68,0x11,0x40,0xac,0x6c,0x11,0x40,0xac,
+0x40,0x00,0xa4,0x8f,0x3c,0x00,0xa2,0x8f,0x01,0x00,0x73,0x26,0x94,0x00,0x84,0x24,
+0x94,0x00,0x42,0x24,0x40,0x00,0xa4,0xaf,0x3c,0x00,0xa2,0xaf,0x38,0x00,0xa4,0x8f,
+0x34,0x00,0xa2,0x8f,0x20,0x00,0x63,0x2a,0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,
+0x38,0x00,0xa4,0xaf,0x34,0x00,0xa2,0xaf,0x30,0x00,0xa4,0x8f,0x2c,0x00,0xa2,0x8f,
+0x94,0x00,0x52,0x26,0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,0x30,0x00,0xa4,0xaf,
+0x2c,0x00,0xa2,0xaf,0x28,0x00,0xa4,0x8f,0x24,0x00,0xa2,0x8f,0x94,0x00,0xd6,0x26,
+0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,0x28,0x00,0xa4,0xaf,0x24,0x00,0xa2,0xaf,
+0x20,0x00,0xa4,0x8f,0x1c,0x00,0xa2,0x8f,0x94,0x00,0xde,0x27,0x94,0x00,0x84,0x24,
+0x94,0x00,0x42,0x24,0x20,0x00,0xa4,0xaf,0x1c,0x00,0xa2,0xaf,0x18,0x00,0xa4,0x8f,
+0x14,0x00,0xa2,0x8f,0x94,0x00,0x94,0x26,0x94,0x00,0x84,0x24,0x94,0x00,0x42,0x24,
+0x18,0x00,0xa4,0xaf,0x14,0x00,0xa2,0xaf,0x94,0x00,0xf7,0x26,0x59,0xff,0x60,0x14,
+0x94,0x00,0xb5,0x26,0x10,0x00,0xa3,0x8f,0x6c,0x00,0xbf,0x8f,0x68,0x00,0xbe,0x8f,
+0x64,0x00,0xb7,0x8f,0x60,0x00,0xb6,0x8f,0x5c,0x00,0xb5,0x8f,0x58,0x00,0xb4,0x8f,
+0x54,0x00,0xb3,0x8f,0x50,0x00,0xb2,0x8f,0x4c,0x00,0xb1,0x8f,0x48,0x00,0xb0,0x8f,
+0x25,0xb0,0x02,0x3c,0x80,0x01,0x42,0x34,0x70,0x00,0xbd,0x27,0x00,0x00,0x43,0xa0,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x87,0x00,0xe0,0x10,0x00,0x00,0x00,0x00,
+0x87,0x00,0x20,0x15,0x02,0x80,0x03,0x3c,0x40,0x10,0x07,0x00,0x21,0x10,0x47,0x00,
+0x82,0x10,0x02,0x00,0x2b,0x10,0x46,0x00,0xa7,0xff,0x40,0x10,0x00,0x00,0x00,0x00,
+0x20,0x00,0xa2,0x8f,0x02,0x80,0x04,0x3c,0x78,0x1b,0x88,0x24,0x21,0x20,0x48,0x00,
+0x21,0x30,0x91,0x00,0xec,0x11,0x83,0x8c,0x01,0x00,0x05,0x24,0x04,0x10,0x25,0x02,
+0xb1,0x11,0xc7,0x90,0x27,0x10,0x02,0x00,0x24,0x18,0x62,0x00,0xec,0x11,0x83,0xac,
+0x09,0x00,0xe5,0x10,0x94,0x11,0xc0,0xa0,0x1c,0x00,0xa3,0x8f,0x21,0x38,0x00,0x00,
+0x21,0x20,0x68,0x00,0x21,0x18,0x87,0x00,0x01,0x00,0xe7,0x24,0x1d,0x00,0xe2,0x28,
+0xfc,0xff,0x40,0x14,0xce,0x11,0x60,0xa0,0x02,0x80,0x04,0x3c,0x78,0x1b,0x83,0x24,
+0x18,0x00,0xa4,0x8f,0x21,0x50,0x60,0x00,0x21,0x38,0x00,0x00,0x21,0x10,0x83,0x00,
+0x21,0x10,0x51,0x00,0xb1,0x11,0x40,0xa0,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,
+0x70,0xae,0x49,0x24,0xfc,0xad,0x68,0x24,0x80,0x18,0x07,0x00,0x21,0x10,0x69,0x00,
+0x21,0x20,0x68,0x00,0x00,0x00,0x46,0x8c,0x00,0x00,0x85,0x8c,0x01,0x00,0xe7,0x24,
+0x21,0x18,0x6a,0x00,0x1d,0x00,0xe2,0x28,0xf8,0x04,0x65,0xac,0xf6,0xff,0x40,0x14,
+0x6c,0x05,0x66,0xac,0x15,0x00,0x20,0x12,0x02,0x80,0x05,0x3c,0x93,0x11,0x82,0x92,
+0xff,0xff,0x27,0x26,0x2a,0x10,0xe2,0x00,0x10,0x00,0x40,0x14,0x02,0x80,0x03,0x3c,
+0x14,0x00,0xa4,0x8f,0x78,0x1b,0x62,0x24,0x21,0x10,0x82,0x00,0x93,0x11,0x45,0x90,
+0x8c,0x11,0x44,0x8c,0x01,0x00,0x06,0x24,0x04,0x18,0xe6,0x00,0x24,0x10,0x83,0x00,
+0x06,0x01,0x43,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0xe7,0x24,0x2a,0x10,0xe5,0x00,
+0xfa,0xff,0x40,0x10,0x04,0x18,0xe6,0x00,0x02,0x80,0x05,0x3c,0x56,0x43,0xa3,0x90,
+0x22,0x00,0x02,0x24,0xe8,0x00,0x62,0x10,0x02,0x80,0x03,0x3c,0x02,0x80,0x04,0x3c,
+0x78,0x1b,0x83,0x24,0x80,0x10,0x11,0x00,0x21,0x10,0x43,0x00,0x6c,0x05,0x44,0x8c,
+0xf8,0x04,0x43,0x8c,0x56,0x43,0xa5,0x90,0x40,0x10,0x04,0x00,0x21,0x10,0x44,0x00,
+0x21,0x18,0x62,0x00,0x22,0x00,0x02,0x24,0xd6,0x00,0xa2,0x10,0x82,0x50,0x03,0x00,
+0xec,0x11,0x83,0x8e,0x01,0x00,0x02,0x24,0x04,0x10,0x22,0x02,0x25,0x18,0x62,0x00,
+0xec,0x11,0x83,0xae,0x02,0x80,0x02,0x3c,0x78,0x1b,0x43,0x24,0x21,0x10,0xe3,0x02,
+0x5c,0x11,0x4a,0xac,0xec,0x25,0x64,0x8c,0xff,0xff,0x02,0x34,0x44,0xff,0x82,0x14,
+0x21,0x20,0x20,0x02,0x86,0x15,0x00,0x0c,0x21,0x20,0x20,0x02,0x10,0x00,0xa4,0x8f,
+0x01,0x00,0x42,0x38,0x04,0x00,0x03,0x24,0x0a,0x20,0x62,0x00,0x46,0xff,0x60,0x16,
+0x10,0x00,0xa4,0xaf,0x02,0x80,0x02,0x3c,0x78,0x1b,0x50,0x24,0x64,0x11,0x05,0x96,
+0x60,0x11,0x02,0x96,0x25,0xb0,0x11,0x3c,0x00,0x2c,0x05,0x00,0x21,0x28,0x45,0x00,
+0x10,0x50,0x00,0x0c,0x68,0x0c,0x24,0x36,0x70,0x11,0x02,0x8e,0x6c,0x11,0x05,0x8e,
+0x68,0x11,0x03,0x96,0x6c,0x0c,0x24,0x36,0x21,0x28,0xa2,0x00,0x00,0x2c,0x05,0x00,
+0x10,0x50,0x00,0x0c,0x21,0x28,0x65,0x00,0xaf,0x16,0x00,0x08,0x02,0x80,0x03,0x3c,
+0x59,0x16,0x00,0x08,0x5c,0x11,0x40,0xae,0x27,0xff,0x20,0x11,0x02,0x80,0x03,0x3c,
+0x78,0x1b,0x62,0x24,0x80,0x18,0x11,0x00,0x21,0x18,0x62,0x00,0x6c,0x05,0x64,0x8c,
+0x00,0x00,0x00,0x00,0x2b,0x20,0x44,0x01,0x1f,0xff,0x80,0x10,0x00,0x00,0x00,0x00,
+0x00,0x17,0x00,0x08,0x00,0x00,0x00,0x00,0x0a,0xff,0x40,0x10,0x02,0x80,0x04,0x3c,
+0x21,0x20,0x51,0x02,0xb1,0x11,0x83,0x90,0x01,0x00,0x02,0x24,0x78,0x00,0x62,0x10,
+0x02,0x80,0x02,0x3c,0x40,0x00,0xa3,0x8f,0x78,0x1b,0x42,0x24,0x21,0x20,0x62,0x00,
+0x21,0x38,0x00,0x00,0x21,0x18,0x87,0x00,0x01,0x00,0xe7,0x24,0x1d,0x00,0xe2,0x28,
+0xfc,0xff,0x40,0x14,0xce,0x11,0x60,0xa0,0x3c,0x00,0xa2,0x8f,0x02,0x80,0x04,0x3c,
+0x78,0x1b,0x85,0x24,0x21,0x30,0x45,0x00,0xec,0x11,0xc2,0x8c,0x01,0x00,0x03,0x24,
+0x04,0x18,0x23,0x02,0x27,0x18,0x03,0x00,0x21,0x20,0xd1,0x00,0x24,0x10,0x43,0x00,
+0xb1,0x11,0x80,0xa0,0xec,0x11,0xc2,0xac,0x12,0x00,0x20,0x16,0x94,0x11,0x80,0xa0,
+0x92,0x11,0xc2,0x90,0x00,0x00,0x00,0x00,0x0e,0x00,0x40,0x10,0x01,0x00,0x07,0x24,
+0x38,0x00,0xa3,0x8f,0x01,0x00,0x06,0x24,0x21,0x10,0x65,0x00,0x92,0x11,0x44,0x90,
+0x8c,0x11,0x45,0x8c,0x04,0x18,0xe6,0x00,0x24,0x10,0xa3,0x00,0x8d,0x00,0x43,0x10,
+0x00,0x00,0x00,0x00,0x01,0x00,0xe7,0x24,0x2a,0x10,0x87,0x00,0xfa,0xff,0x40,0x10,
+0x04,0x18,0xe6,0x00,0x02,0x80,0x02,0x3c,0x78,0x1b,0x44,0x24,0x34,0x00,0xa2,0x8f,
+0x01,0x00,0x27,0x26,0x21,0x18,0x44,0x00,0x92,0x11,0x62,0x90,0x00,0x00,0x00,0x00,
+0x2a,0x10,0x47,0x00,0x0f,0x00,0x40,0x14,0x02,0x80,0x05,0x3c,0x30,0x00,0xa3,0x8f,
+0x01,0x00,0x06,0x24,0x21,0x10,0x64,0x00,0x92,0x11,0x45,0x90,0x8c,0x11,0x44,0x8c,
+0x04,0x18,0xe6,0x00,0x24,0x10,0x83,0x00,0x73,0x00,0x43,0x10,0x00,0x00,0x00,0x00,
+0x01,0x00,0xe7,0x24,0x2a,0x10,0xa7,0x00,0xfa,0xff,0x40,0x10,0x04,0x18,0xe6,0x00,
+0x02,0x80,0x05,0x3c,0x56,0x43,0xa3,0x90,0x22,0x00,0x02,0x24,0x3e,0x00,0x62,0x10,
+0xee,0xff,0x22,0x26,0x56,0x43,0xa3,0x90,0x22,0x00,0x02,0x24,0xbd,0xfe,0x62,0x14,
+0x02,0x80,0x04,0x3c,0x28,0x00,0xa2,0x8f,0x78,0x1b,0x86,0x24,0x21,0x20,0x46,0x00,
+0x90,0x11,0x85,0x8c,0x01,0x00,0x03,0x24,0x42,0x13,0x05,0x00,0x07,0x00,0x42,0x30,
+0xb3,0xfe,0x43,0x10,0x14,0x00,0x22,0x2e,0xb1,0xfe,0x40,0x14,0x1c,0x00,0x22,0x2e,
+0xaf,0xfe,0x40,0x10,0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34,0x24,0x10,0xa2,0x00,
+0x00,0x20,0x42,0x34,0x90,0x11,0x82,0xac,0x93,0x11,0x83,0x90,0xff,0xff,0x27,0x26,
+0x2a,0x18,0xe3,0x00,0xa6,0xfe,0x60,0x14,0x00,0x00,0x00,0x00,0x24,0x00,0xa3,0x8f,
+0x00,0x00,0x00,0x00,0x21,0x10,0x66,0x00,0x93,0x11,0x45,0x90,0x8c,0x11,0x44,0x8c,
+0xf9,0x17,0x00,0x08,0x01,0x00,0x06,0x24,0x2a,0x10,0xe5,0x00,0x9c,0xfe,0x40,0x14,
+0x00,0x00,0x00,0x00,0x04,0x18,0xe6,0x00,0x24,0x10,0x83,0x00,0xfa,0xff,0x43,0x14,
+0xff,0xff,0xe7,0x24,0x01,0x00,0xe7,0x24,0x94,0x16,0x00,0x08,0xff,0x00,0xf1,0x30,
+0xc0,0x10,0x07,0x00,0x23,0x10,0x47,0x00,0xc2,0x10,0x02,0x00,0x2b,0x10,0x48,0x00,
+0x7c,0xfe,0x40,0x14,0x00,0x00,0x00,0x00,0x74,0x16,0x00,0x08,0x00,0x00,0x00,0x00,
+0x18,0x00,0x22,0x2e,0x17,0x00,0x40,0x14,0x05,0x00,0x22,0x2e,0xce,0x11,0x83,0x90,
+0x00,0x00,0x00,0x00,0x05,0x00,0x62,0x2c,0x8b,0xff,0x40,0x10,0x01,0x00,0x62,0x24,
+0x9a,0x17,0x00,0x08,0xce,0x11,0x82,0xa0,0xff,0x00,0x42,0x30,0x02,0x00,0x42,0x2c,
+0xc0,0xff,0x40,0x10,0x02,0x80,0x04,0x3c,0x2c,0x00,0xa3,0x8f,0x78,0x1b,0x82,0x24,
+0x21,0x10,0x62,0x00,0x8c,0x11,0x43,0x8c,0x00,0x01,0x04,0x3c,0x18,0x00,0x02,0x24,
+0x24,0x18,0x64,0x00,0xd5,0x17,0x00,0x08,0x0b,0x88,0x43,0x00,0x94,0x16,0x00,0x08,
+0xb1,0x11,0xa7,0xa0,0x04,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xce,0x11,0x83,0x90,
+0x0e,0x18,0x00,0x08,0x03,0x00,0x62,0x2c,0xce,0x11,0x83,0x90,0x0e,0x18,0x00,0x08,
+0x04,0x00,0x62,0x2c,0x13,0x00,0x02,0x24,0x29,0xff,0x22,0x16,0x02,0x80,0x02,0x3c,
+0x5b,0x17,0x00,0x08,0x78,0x1b,0x43,0x24,0x78,0x1b,0x62,0x24,0x21,0x20,0xc2,0x03,
+0x90,0x11,0x83,0x8c,0x00,0x00,0x00,0x00,0x42,0x13,0x03,0x00,0x07,0x00,0x42,0x30,
+0x12,0xff,0x40,0x10,0x14,0x00,0x22,0x2e,0x10,0xff,0x40,0x10,0x0c,0x00,0x22,0x2e,
+0x0e,0xff,0x40,0x14,0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34,0x24,0x10,0x62,0x00,
+0x47,0x17,0x00,0x08,0x90,0x11,0x82,0xac,0xff,0x00,0xf1,0x30,0xd1,0x17,0x00,0x08,
+0x02,0x80,0x05,0x3c,0xb9,0x17,0x00,0x08,0xff,0x00,0xf1,0x30,0x42,0x17,0x00,0x08,
+0xff,0x00,0xf1,0x30,0xa8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x38,0x00,0xb2,0xaf,
+0x54,0x00,0xbf,0xaf,0x50,0x00,0xbe,0xaf,0x4c,0x00,0xb7,0xaf,0x48,0x00,0xb6,0xaf,
+0x44,0x00,0xb5,0xaf,0x40,0x00,0xb4,0xaf,0x3c,0x00,0xb3,0xaf,0x34,0x00,0xb1,0xaf,
+0x30,0x00,0xb0,0xaf,0x78,0x1b,0x46,0x24,0x71,0x25,0xc4,0x90,0x6c,0x25,0xc3,0x8c,
+0x68,0x25,0xc2,0x8c,0x21,0x90,0x64,0x00,0x2b,0x10,0x42,0x02,0x7e,0x00,0x40,0x10,
+0x21,0x88,0xc0,0x00,0x02,0x80,0x1e,0x3c,0x02,0x80,0x17,0x3c,0x21,0xa8,0xc0,0x00,
+0x21,0xb0,0xc0,0x00,0x64,0x18,0x00,0x08,0x01,0x00,0x14,0x24,0x68,0x25,0xc2,0x8e,
+0x10,0x00,0x52,0x26,0x2b,0x10,0x42,0x02,0x73,0x00,0x40,0x10,0x21,0x88,0xc0,0x02,
+0x71,0x25,0x22,0x92,0xff,0xff,0x45,0x32,0x25,0x28,0xb7,0x00,0x10,0x00,0x42,0x24,
+0x71,0x25,0x22,0xa2,0x54,0x3f,0xc4,0x27,0x46,0x46,0x00,0x0c,0x10,0x00,0x06,0x24,
+0x04,0x24,0x23,0x8e,0x00,0x00,0x00,0x00,0x42,0x18,0x03,0x00,0x01,0x00,0x63,0x30,
+0x71,0x00,0x74,0x10,0x02,0x80,0x03,0x3c,0x78,0x1b,0x63,0x24,0xe0,0x23,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x42,0x84,0x02,0x00,0x1f,0x00,0x10,0x32,0xc0,0x48,0x10,0x00,
+0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,
+0x21,0x10,0x55,0x00,0x90,0x11,0x45,0x8c,0x00,0x00,0x00,0x00,0x02,0x1b,0x05,0x00,
+0x01,0x00,0x63,0x30,0xdd,0xff,0x60,0x10,0x21,0x30,0xa0,0x02,0x25,0xb0,0x02,0x3c,
+0x21,0x40,0x02,0x02,0xdc,0x23,0xa7,0x8e,0x04,0x24,0xa2,0x8e,0x60,0x01,0x03,0x91,
+0x82,0x25,0x07,0x00,0x01,0x00,0x42,0x30,0xff,0x00,0x6b,0x30,0x9a,0x00,0x54,0x10,
+0x3f,0x00,0x8a,0x30,0x02,0x80,0x04,0x3c,0x14,0xb0,0x84,0x24,0x00,0x00,0x86,0x8c,
+0x04,0x00,0x04,0x24,0xdc,0x23,0xc3,0x8c,0x00,0x00,0x00,0x00,0x82,0x15,0x03,0x00,
+0x3f,0x00,0x42,0x30,0x05,0x00,0x42,0x28,0x0a,0x00,0x60,0x04,0x0a,0x50,0x82,0x00,
+0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,
+0x21,0x10,0x46,0x00,0x7c,0x11,0x43,0x8c,0x04,0x00,0x0a,0x24,0x01,0x00,0x63,0x24,
+0x7c,0x11,0x43,0xac,0xe0,0x23,0xc2,0x8c,0x00,0x00,0x00,0x00,0x02,0x13,0x02,0x00,
+0x1f,0x00,0x42,0x30,0x08,0x00,0x42,0x28,0xb8,0xff,0x40,0x10,0x00,0x00,0x00,0x00,
+0xdc,0x23,0xc2,0x8c,0x00,0x00,0x00,0x00,0x3f,0x00,0x42,0x30,0xb3,0xff,0x4b,0x14,
+0x00,0x00,0x00,0x00,0x9f,0x00,0x40,0x11,0x21,0x10,0x30,0x01,0xa8,0x00,0x54,0x11,
+0x80,0x10,0x02,0x00,0x02,0x00,0x02,0x24,0xb0,0x00,0x42,0x11,0x21,0x10,0x30,0x01,
+0x03,0x00,0x02,0x24,0xb8,0x00,0x42,0x11,0x21,0x10,0x30,0x01,0xc0,0x00,0x44,0x11,
+0x21,0x10,0x30,0x01,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,
+0x80,0x10,0x02,0x00,0x21,0x28,0x46,0x00,0x80,0x11,0xa3,0x8c,0x21,0x10,0x66,0x01,
+0x94,0x04,0x44,0x90,0x02,0x19,0x03,0x00,0x2b,0x18,0x64,0x00,0xc8,0x00,0x60,0x14,
+0x00,0x00,0x00,0x00,0x74,0x11,0xa3,0x8c,0x80,0x10,0x0b,0x00,0x21,0x10,0x4b,0x00,
+0x01,0x00,0x63,0x24,0x21,0x10,0x46,0x00,0x74,0x11,0xa3,0xac,0x21,0x10,0x4a,0x00,
+0x38,0x03,0x44,0x90,0x5c,0x11,0xa3,0x8c,0x00,0x00,0x00,0x00,0x21,0x18,0x64,0x00,
+0x5c,0x11,0xa3,0xac,0x68,0x25,0xc2,0x8e,0x10,0x00,0x52,0x26,0x2b,0x10,0x42,0x02,
+0x8f,0xff,0x40,0x14,0x21,0x88,0xc0,0x02,0x54,0x00,0xbf,0x8f,0x50,0x00,0xbe,0x8f,
+0x4c,0x00,0xb7,0x8f,0x48,0x00,0xb6,0x8f,0x44,0x00,0xb5,0x8f,0x40,0x00,0xb4,0x8f,
+0x3c,0x00,0xb3,0x8f,0x38,0x00,0xb2,0x8f,0x34,0x00,0xb1,0x8f,0x30,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x58,0x00,0xbd,0x27,0xe0,0x23,0x22,0x8e,0x00,0x00,0x00,0x00,
+0x42,0x14,0x02,0x00,0x10,0x00,0x43,0x30,0x90,0xff,0x60,0x10,0x0f,0x00,0x50,0x30,
+0x39,0x15,0x00,0x0c,0x48,0x00,0x04,0x24,0x74,0xff,0x40,0x10,0x21,0x98,0x40,0x00,
+0x14,0x00,0x02,0x24,0x28,0x00,0x04,0x24,0x14,0x00,0x62,0xae,0x0c,0x00,0x64,0xae,
+0x14,0x00,0xa3,0x8f,0xe0,0xff,0x04,0x24,0x08,0x00,0x07,0x24,0x80,0x00,0x63,0x34,
+0x14,0x00,0xa3,0xaf,0xe0,0x23,0x26,0x8e,0x24,0x18,0x64,0x00,0xff,0xe0,0x04,0x24,
+0x42,0x14,0x06,0x00,0x1f,0x00,0x42,0x30,0x25,0x18,0x62,0x00,0x14,0x00,0xa3,0xaf,
+0xdc,0x23,0x25,0x8e,0x24,0x18,0x64,0x00,0x02,0x23,0x06,0x00,0x82,0x13,0x05,0x00,
+0x00,0x1f,0x42,0x30,0x25,0x18,0x62,0x00,0xff,0xff,0x02,0x3c,0xff,0x7f,0x42,0x34,
+0xc2,0x2f,0x05,0x00,0x24,0x18,0x62,0x00,0xc0,0x2b,0x05,0x00,0x0f,0x00,0x02,0x3c,
+0x25,0x18,0x65,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x00,0x35,0x06,0x00,
+0xf0,0xff,0x02,0x3c,0x25,0x18,0x66,0x00,0xff,0xff,0x42,0x34,0x0f,0x00,0x84,0x30,
+0x24,0x18,0x62,0x00,0x00,0x24,0x04,0x00,0x25,0x18,0x64,0x00,0x02,0x80,0x04,0x3c,
+0x10,0x00,0xa5,0x27,0xa8,0x3f,0x84,0x24,0x02,0x00,0x06,0x24,0x04,0x00,0x02,0x24,
+0x11,0x00,0xa7,0xa3,0x14,0x00,0xa3,0xaf,0x52,0x46,0x00,0x0c,0x10,0x00,0xa2,0xa3,
+0x08,0x00,0x64,0x96,0x10,0x00,0xa5,0x27,0x02,0x00,0x06,0x24,0x25,0x20,0x97,0x00,
+0x52,0x46,0x00,0x0c,0x20,0x00,0x84,0x24,0x59,0x0a,0x00,0x0c,0x21,0x20,0x60,0x02,
+0x78,0x18,0x00,0x08,0xc0,0x48,0x10,0x00,0x02,0x12,0x05,0x00,0x01,0x00,0x42,0x30,
+0x14,0x00,0x54,0x10,0xc2,0x10,0x05,0x00,0x01,0x00,0x42,0x30,0x76,0x00,0x54,0x10,
+0x00,0x00,0x00,0x00,0x10,0x24,0xa2,0x96,0x60,0x01,0x03,0x91,0xc2,0x27,0x07,0x00,
+0x21,0x10,0x42,0x01,0x2c,0x24,0xa3,0xa2,0x13,0x00,0x80,0x10,0x10,0x24,0xa2,0xa6,
+0x59,0xff,0x94,0x14,0x02,0x80,0x04,0x3c,0x0c,0x24,0xa2,0x96,0x16,0x24,0xa3,0x96,
+0x01,0x00,0x42,0x24,0x01,0x00,0x63,0x24,0x0c,0x24,0xa2,0xa6,0x8e,0x18,0x00,0x08,
+0x16,0x24,0xa3,0xa6,0x5d,0x00,0xe0,0x04,0x00,0x00,0x00,0x00,0x0e,0x24,0xa3,0x96,
+0x1a,0x24,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,0x1a,0x24,0xa2,0xa6,
+0x8d,0x18,0x00,0x08,0x0e,0x24,0xc3,0xa4,0x0e,0x24,0xa3,0x96,0x1c,0x24,0xa2,0x96,
+0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,0x1c,0x24,0xa2,0xa6,0x8d,0x18,0x00,0x08,
+0x0e,0x24,0xc3,0xa4,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,
+0x21,0x10,0x46,0x00,0x60,0x11,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,
+0x5c,0xff,0x54,0x15,0x60,0x11,0x43,0xac,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,
+0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x64,0x11,0x43,0x8c,
+0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x64,0x11,0x43,0xac,0x02,0x00,0x02,0x24,
+0x54,0xff,0x42,0x15,0x03,0x00,0x02,0x24,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,
+0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x68,0x11,0x43,0x8c,
+0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x68,0x11,0x43,0xac,0x03,0x00,0x02,0x24,
+0x4a,0xff,0x42,0x15,0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,0x6c,0x11,0x43,0x8c,0x00,0x00,0x00,0x00,
+0x01,0x00,0x63,0x24,0x43,0xff,0x44,0x15,0x6c,0x11,0x43,0xac,0x21,0x10,0x30,0x01,
+0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x46,0x00,
+0x70,0x11,0x43,0x8c,0x00,0x00,0x00,0x00,0x01,0x00,0x63,0x24,0x70,0x11,0x43,0xac,
+0x21,0x10,0x30,0x01,0x80,0x10,0x02,0x00,0x21,0x10,0x50,0x00,0x80,0x10,0x02,0x00,
+0x21,0x28,0x46,0x00,0x80,0x11,0xa3,0x8c,0x21,0x10,0x66,0x01,0x94,0x04,0x44,0x90,
+0x02,0x19,0x03,0x00,0x2b,0x18,0x64,0x00,0x3a,0xff,0x60,0x10,0x00,0x00,0x00,0x00,
+0x78,0x11,0xa3,0x8c,0x80,0x10,0x0b,0x00,0x02,0x80,0x04,0x3c,0x78,0x1b,0x84,0x24,
+0x21,0x10,0x4b,0x00,0x01,0x00,0x63,0x24,0x21,0x10,0x44,0x00,0x78,0x11,0xa3,0xac,
+0x21,0x10,0x4a,0x00,0xc9,0x03,0x44,0x90,0x5c,0x11,0xa3,0x8c,0x00,0x00,0x00,0x00,
+0x21,0x18,0x64,0x00,0xd1,0x18,0x00,0x08,0x5c,0x11,0xa3,0xac,0x0c,0x24,0xa3,0x96,
+0x14,0x24,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,0x14,0x24,0xa2,0xa6,
+0x8d,0x18,0x00,0x08,0x0c,0x24,0xc3,0xa4,0x08,0x00,0xe0,0x04,0x00,0x00,0x00,0x00,
+0x0e,0x24,0xa3,0x96,0x18,0x24,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,
+0x18,0x24,0xa2,0xa6,0x8d,0x18,0x00,0x08,0x0e,0x24,0xc3,0xa4,0x0c,0x24,0xa3,0x96,
+0x12,0x24,0xa2,0x96,0x01,0x00,0x63,0x24,0x01,0x00,0x42,0x24,0x12,0x24,0xa2,0xa6,
+0x8d,0x18,0x00,0x08,0x0c,0x24,0xc3,0xa4,0x02,0x80,0x0a,0x3c,0x78,0x1b,0x42,0x8d,
+0xe8,0xff,0xbd,0x27,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,0x11,0x00,0x40,0x14,
+0x10,0x00,0xbf,0xaf,0x25,0xb0,0x05,0x3c,0x4c,0x00,0xa2,0x34,0x00,0x00,0x43,0x90,
+0x78,0x1b,0x46,0x25,0xf9,0x0a,0xc2,0x90,0x03,0x00,0x67,0x30,0x09,0x00,0x47,0x10,
+0x58,0x00,0xa2,0x34,0x00,0x00,0x44,0x8c,0x29,0xb0,0x03,0x3c,0x5c,0x00,0xa2,0x34,
+0x00,0x00,0x64,0xac,0x00,0x00,0x44,0x8c,0x04,0x00,0x63,0x34,0xf9,0x0a,0xc7,0xa0,
+0x00,0x00,0x64,0xac,0x78,0x1b,0x42,0x25,0xcb,0x02,0x43,0x90,0x25,0xb0,0x02,0x3c,
+0x90,0x0c,0x42,0x34,0x0f,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x42,0x25,0xc9,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c,
+0x91,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,
+0x78,0x1b,0x42,0x25,0xca,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c,0x92,0x0c,0x63,0x34,
+0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x78,0x1b,0x42,0x25,
+0xc8,0x02,0x43,0x8c,0x25,0xb0,0x02,0x3c,0x93,0x0c,0x42,0x34,0x02,0x1f,0x03,0x00,
+0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x78,0x1b,0x42,0x25,
+0xea,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c,0x98,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,0x2d,0x0a,0x46,0x34,
+0xa2,0x0d,0x43,0x34,0xa4,0x0d,0x44,0x34,0xa6,0x0d,0x45,0x34,0xa8,0x0d,0x42,0x34,
+0x00,0x00,0x67,0x94,0x00,0x00,0x88,0x94,0x00,0x00,0xa9,0x94,0x00,0x00,0x44,0x94,
+0x00,0x00,0xc3,0x90,0x78,0x1b,0x42,0x25,0xe2,0x02,0x44,0xa4,0x40,0x00,0x63,0x34,
+0xff,0x00,0x63,0x30,0x00,0x00,0xc3,0xa0,0xdc,0x02,0x47,0xa4,0xde,0x02,0x48,0xa4,
+0xe0,0x02,0x49,0xa4,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x07,0x3c,
+0x5b,0x0a,0xe2,0x34,0x00,0x00,0x44,0x90,0x78,0x1b,0x46,0x25,0x5c,0x0a,0xe2,0x34,
+0x00,0x00,0x45,0x90,0xdc,0x02,0xc3,0x94,0xde,0x02,0xc2,0x94,0xe0,0x02,0xc9,0x94,
+0xe2,0x02,0xc8,0x94,0xff,0x00,0x84,0x30,0x21,0x18,0x62,0x00,0x00,0x22,0x04,0x00,
+0xff,0x00,0xa5,0x30,0x21,0x20,0x85,0x00,0x21,0x18,0x69,0x00,0xff,0xff,0x82,0x30,
+0x21,0x18,0x68,0x00,0x21,0x18,0x62,0x00,0x64,0x0c,0xe7,0x34,0xff,0xff,0x42,0x30,
+0xe4,0x02,0xc3,0xac,0x00,0x00,0xe2,0xa4,0xe8,0x02,0xc4,0xa4,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x42,0x8d,0x01,0x00,0x03,0x24,0x01,0x00,0x44,0x30,
+0x07,0x00,0x83,0x10,0x78,0x1b,0x45,0x25,0x24,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x10,0x00,0xbf,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,
+0xe8,0x02,0xa2,0x8c,0x00,0x00,0x00,0x00,0x02,0x17,0x02,0x00,0x01,0x00,0x42,0x30,
+0xf5,0xff,0x40,0x14,0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90,
+0x00,0x00,0x00,0x00,0x03,0x00,0x63,0x30,0x4e,0x00,0x64,0x10,0x00,0x00,0x00,0x00,
+0x78,0x1b,0x45,0x25,0xea,0x02,0xa2,0x90,0x00,0x00,0x00,0x00,0x07,0x00,0x40,0x14,
+0x78,0x1b,0x46,0x25,0x78,0x1b,0x42,0x8d,0x01,0x00,0x03,0x24,0x02,0x11,0x02,0x00,
+0x03,0x00,0x42,0x30,0x49,0x00,0x43,0x10,0x3e,0x00,0x02,0x24,0xea,0x02,0xc3,0x90,
+0xff,0x00,0x02,0x24,0xe0,0xff,0x62,0x14,0x25,0xb0,0x02,0x3c,0x50,0x0c,0x42,0x34,
+0x00,0x00,0x45,0x90,0xcc,0x02,0xc4,0x94,0xe4,0x02,0xc7,0x8c,0x32,0x00,0x02,0x24,
+0x20,0x00,0x03,0x24,0x7f,0x00,0xa5,0x30,0x2b,0x20,0xe4,0x00,0xd4,0x02,0xc2,0xa0,
+0xd5,0x02,0xc3,0xa0,0x0c,0x00,0x80,0x14,0xff,0xff,0xa2,0x24,0xce,0x02,0xc2,0x94,
+0x00,0x00,0x00,0x00,0x2b,0x10,0xe2,0x00,0x09,0x00,0x40,0x14,0x78,0x1b,0x44,0x25,
+0xd0,0x02,0xc2,0x94,0x00,0x00,0x00,0x00,0x2b,0x10,0xe2,0x00,0x02,0x00,0x40,0x10,
+0x02,0x00,0xa2,0x24,0x01,0x00,0xa2,0x24,0xff,0x00,0x45,0x30,0x78,0x1b,0x44,0x25,
+0xd4,0x02,0x83,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x65,0x00,0x7e,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x21,0x28,0x60,0x00,0x78,0x1b,0x43,0x25,0xe4,0x02,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x11,0x27,0x42,0x2c,0x73,0x00,0x40,0x14,0x3a,0x00,0xa2,0x2c,
+0x32,0x00,0x05,0x24,0x44,0x00,0x03,0x24,0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34,
+0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c,0x50,0x0c,0x42,0x34,0x00,0x00,0x45,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,0x58,0x0c,0x42,0x34,
+0x00,0x00,0x45,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x3e,0x1a,0x00,0x08,
+0x00,0x00,0x00,0x00,0xea,0x02,0xa2,0x90,0x00,0x00,0x00,0x00,0xb0,0xff,0x40,0x14,
+0xff,0xff,0x02,0x24,0x50,0x1a,0x00,0x08,0xea,0x02,0xa2,0xa0,0x02,0x00,0xa4,0x90,
+0xd4,0x02,0xa2,0xa0,0x1c,0x00,0x03,0x24,0x06,0x00,0x02,0x24,0x57,0x00,0x82,0x10,
+0xd5,0x02,0xa3,0xa0,0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90,
+0x00,0x00,0x00,0x00,0x03,0x00,0x63,0x30,0x8f,0xff,0x60,0x10,0x78,0x1b,0x44,0x25,
+0x80,0x11,0x83,0x8c,0xff,0xff,0x02,0x34,0x8b,0xff,0x62,0x10,0x00,0x00,0x00,0x00,
+0xe4,0x02,0x83,0x8c,0x00,0x00,0x00,0x00,0xe9,0x03,0x62,0x2c,0x5c,0x00,0x40,0x14,
+0x90,0x01,0x62,0x2c,0xd6,0x02,0x83,0x90,0x00,0x00,0x00,0x00,0x00,0x16,0x03,0x00,
+0x03,0x16,0x02,0x00,0xfe,0xff,0x42,0x24,0xfc,0xff,0x42,0x28,0x02,0x00,0x40,0x10,
+0xfe,0xff,0x62,0x24,0xfc,0xff,0x02,0x24,0xd6,0x02,0x82,0xa0,0x78,0x1b,0x44,0x25,
+0x80,0x11,0x82,0x8c,0xd6,0x02,0x83,0x90,0xd2,0x02,0x85,0x90,0x02,0x11,0x02,0x00,
+0x7f,0x00,0x42,0x30,0x0a,0x00,0x47,0x24,0x23,0x18,0xe3,0x00,0x00,0x3e,0x03,0x00,
+0x03,0x3e,0x07,0x00,0xff,0x00,0xa2,0x30,0x2a,0x10,0x47,0x00,0x3e,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x00,0x3e,0x05,0x00,0x03,0x3e,0x07,0x00,0x78,0x1b,0x43,0x25,
+0xe4,0x02,0x62,0x8c,0x00,0x00,0x00,0x00,0x11,0x27,0x42,0x2c,0x32,0x00,0x40,0x14,
+0x3a,0x00,0xe2,0x28,0x32,0x00,0xe2,0x28,0x2f,0x00,0x40,0x10,0x3a,0x00,0xe2,0x28,
+0x32,0x00,0x07,0x24,0x44,0x00,0x03,0x24,0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34,
+0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c,0x50,0x0c,0x42,0x34,0xff,0x00,0xe4,0x30,
+0x00,0x00,0x44,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x25,0xb0,0x02,0x3c,
+0x58,0x0c,0x42,0x34,0x00,0x00,0x44,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,
+0x3e,0x1a,0x00,0x08,0x00,0x00,0x00,0x00,0x8f,0xff,0x40,0x10,0x48,0x00,0x03,0x24,
+0x86,0x1a,0x00,0x08,0x44,0x00,0x03,0x24,0xd5,0x02,0x83,0x90,0x00,0x00,0x00,0x00,
+0x2b,0x10,0xa3,0x00,0x7e,0x1a,0x00,0x08,0x0b,0x28,0x62,0x00,0x25,0xb0,0x02,0x3c,
+0x00,0x08,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x27,0x18,0x03,0x00,
+0x01,0x00,0x63,0x30,0xa4,0xff,0x60,0x10,0x25,0xb0,0x02,0x3c,0x36,0x00,0x02,0x24,
+0xa9,0x1a,0x00,0x08,0xd2,0x02,0xa2,0xa0,0xd3,0xff,0x40,0x10,0x48,0x00,0x03,0x24,
+0xde,0x1a,0x00,0x08,0x44,0x00,0x03,0x24,0xd3,0x02,0x83,0x80,0x00,0x00,0x00,0x00,
+0xff,0x00,0x62,0x30,0x2a,0x10,0xe2,0x00,0xd3,0x1a,0x00,0x08,0x0b,0x38,0x62,0x00,
+0xae,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0xd6,0x02,0x83,0x90,0x00,0x00,0x00,0x00,
+0x00,0x16,0x03,0x00,0x03,0x16,0x02,0x00,0x02,0x00,0x42,0x24,0x0d,0x00,0x42,0x28,
+0x03,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0xc2,0x1a,0x00,0x08,0x0c,0x00,0x02,0x24,
+0xc2,0x1a,0x00,0x08,0x02,0x00,0x62,0x24,0xc0,0xff,0xbd,0x27,0x28,0x00,0xb4,0xaf,
+0x25,0xb0,0x14,0x3c,0x24,0x00,0xb3,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,
+0x2c,0x00,0xb5,0xaf,0x20,0x00,0xb2,0xaf,0xd8,0x00,0x86,0x36,0x00,0x00,0xc3,0x90,
+0x02,0x80,0x02,0x3c,0x78,0x1b,0x51,0x24,0x2a,0xb0,0x10,0x3c,0xa0,0xff,0x02,0x24,
+0x25,0x18,0x62,0x00,0x34,0x00,0x05,0x36,0xfe,0xff,0x02,0x24,0xbc,0x02,0x32,0x92,
+0x40,0x00,0x04,0x24,0x00,0x00,0xc3,0xa0,0x00,0x00,0xa2,0xa0,0x39,0x15,0x00,0x0c,
+0x00,0x96,0x12,0x00,0x21,0x98,0x40,0x00,0x8d,0x00,0x60,0x12,0x00,0x40,0x02,0x3c,
+0x08,0x00,0x63,0x8e,0xb0,0x03,0x82,0x36,0x25,0xb0,0x1e,0x3c,0x21,0x20,0x60,0x02,
+0x00,0x00,0x43,0xac,0x02,0x45,0x00,0x0c,0x21,0xb8,0x20,0x02,0x42,0x00,0xd5,0x37,
+0x03,0x0c,0xd1,0x37,0x17,0x0e,0xd6,0x37,0x04,0x00,0x14,0x24,0x2a,0xb0,0x03,0x3c,
+0x06,0x00,0x63,0x34,0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,0x00,0xff,0x42,0x30,
+0x0a,0x00,0x40,0x18,0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c,0xd4,0xb2,0x84,0x24,
+0x00,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,
+0x00,0xff,0x42,0x30,0xfc,0xff,0x40,0x1c,0x00,0x00,0x00,0x00,0x08,0x00,0x65,0x8e,
+0x20,0x10,0x06,0x3c,0x01,0x00,0x04,0x24,0x00,0xfe,0xc6,0x34,0x40,0x00,0x07,0x24,
+0xc3,0x01,0x00,0x0c,0x10,0x00,0xa4,0xaf,0x00,0x02,0x00,0x0c,0x01,0x00,0x04,0x24,
+0x02,0x80,0x02,0x3c,0xd8,0xb2,0x42,0x24,0x00,0x00,0x45,0x8c,0x01,0x00,0x03,0x24,
+0x21,0x20,0x00,0x00,0x00,0x00,0xa3,0xa0,0xff,0xff,0x03,0x24,0x00,0x00,0xa3,0xa2,
+0x00,0x00,0x22,0x92,0x00,0x00,0x00,0x00,0xff,0x00,0x42,0x30,0x40,0x00,0x42,0x34,
+0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x02,0x00,0x02,0x24,0x02,0x80,0x04,0x3c,
+0x00,0x00,0xa2,0xa0,0x78,0x1b,0x83,0x24,0xc1,0x02,0x62,0x90,0x00,0x00,0xc4,0x92,
+0x21,0x28,0x00,0x00,0x00,0x00,0xc2,0xa2,0xff,0x00,0x90,0x30,0x01,0x00,0xa2,0x24,
+0xff,0x00,0x45,0x30,0x06,0x00,0xa3,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0xa2,0x24,
+0xef,0xff,0x02,0x24,0x64,0x00,0x04,0x24,0x00,0x00,0xa2,0xa2,0xcb,0x12,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x00,0x00,0x22,0x92,0x21,0x20,0x00,0x00,0xbf,0x00,0x42,0x30,
+0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0xcb,0x12,0x00,0x0c,0x84,0x03,0x04,0x24,
+0xf4,0x08,0xc2,0x37,0x00,0x00,0x43,0x8c,0x00,0x80,0x04,0x3c,0xdf,0x07,0x84,0x34,
+0x00,0x00,0xd0,0xa2,0x21,0x10,0x00,0x00,0x24,0x28,0x64,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,
+0x00,0x00,0xa0,0xa2,0x00,0x00,0x22,0x92,0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30,
+0x40,0x00,0x42,0x34,0x00,0x00,0x22,0xa2,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,
+0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0xbe,0x02,0xe2,0x92,
+0x1f,0x00,0xa3,0x30,0x2b,0x10,0x62,0x00,0x0a,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,
+0xbf,0x02,0xe2,0x92,0x00,0x00,0x00,0x00,0x2b,0x10,0x43,0x00,0x05,0x00,0x40,0x10,
+0x02,0x80,0x02,0x3c,0x01,0x00,0x02,0x3c,0x25,0x10,0x62,0x00,0x21,0x90,0x42,0x02,
+0x02,0x80,0x02,0x3c,0x56,0x43,0x43,0x90,0x22,0x00,0x02,0x24,0x1c,0x00,0x62,0x10,
+0x92,0x00,0x02,0x24,0x1b,0x00,0x62,0x10,0x02,0x80,0x03,0x3c,0xff,0xff,0x94,0x26,
+0xcb,0x12,0x00,0x0c,0xf4,0x01,0x04,0x24,0x89,0xff,0x81,0x06,0x2a,0xb0,0x03,0x3c,
+0x04,0x00,0x60,0x12,0x25,0xb0,0x02,0x3c,0x56,0x15,0x00,0x0c,0x21,0x20,0x60,0x02,
+0x25,0xb0,0x02,0x3c,0xd8,0x02,0x42,0x34,0x00,0x00,0x52,0xac,0x21,0x10,0x40,0x02,
+0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,
+0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,
+0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,
+0x02,0x80,0x03,0x3c,0x78,0x1b,0x63,0x24,0xbe,0x02,0x62,0x90,0xc0,0x07,0xa3,0x30,
+0x82,0x19,0x03,0x00,0x2b,0x10,0x62,0x00,0xe0,0xff,0x40,0x10,0x02,0x80,0x04,0x3c,
+0x78,0x1b,0x84,0x24,0xbf,0x02,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x43,0x00,
+0xda,0xff,0x40,0x10,0x00,0x12,0x03,0x00,0x10,0x00,0x03,0x3c,0x25,0x10,0x43,0x00,
+0xbf,0x1b,0x00,0x08,0x21,0x90,0x42,0x02,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,
+0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,0xf0,0xf8,0x06,0x34,0x15,0x00,0x04,0x24,
+0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0xb8,0x44,0x00,0x0c,0x14,0x00,0xb1,0xaf,
+0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x02,0x80,0x12,0x3c,0xff,0xff,0x05,0x36,
+0x56,0x30,0x06,0x24,0xb8,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,0x78,0x1b,0x51,0x26,
+0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x08,0x03,0x23,0x92,0x04,0x00,0x02,0x24,
+0x20,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c,0x18,0x03,0x25,0x8e,0x25,0xb0,0x10,0x3c,
+0xb1,0x5a,0x00,0x0c,0x00,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e,0xb1,0x5a,0x00,0x0c,
+0x04,0x0e,0x04,0x36,0x1c,0x03,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x08,0x0e,0x04,0x36,
+0x18,0x03,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x10,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e,
+0xb1,0x5a,0x00,0x0c,0x14,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e,0xb1,0x5a,0x00,0x0c,
+0x18,0x0e,0x04,0x36,0x18,0x03,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x1c,0x0e,0x04,0x36,
+0x78,0x1b,0x43,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x04,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,
+0x08,0x03,0x62,0xa0,0x00,0x0e,0x42,0x34,0x00,0x00,0x43,0x8c,0x18,0x03,0x25,0x8e,
+0x00,0x00,0x00,0x00,0xde,0xff,0x65,0x14,0x25,0xb0,0x10,0x3c,0x19,0x1c,0x00,0x08,
+0x78,0x1b,0x43,0x26,0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x0f,0x00,0x10,0x3c,
+0xff,0xff,0x05,0x36,0xf0,0xf8,0x06,0x34,0x15,0x00,0x04,0x24,0x1c,0x00,0xbf,0xaf,
+0x18,0x00,0xb2,0xaf,0xb8,0x44,0x00,0x0c,0x14,0x00,0xb1,0xaf,0xcb,0x12,0x00,0x0c,
+0x64,0x00,0x04,0x24,0xff,0xff,0x05,0x36,0x56,0x30,0x06,0x24,0xb8,0x44,0x00,0x0c,
+0x1a,0x00,0x04,0x24,0x02,0x80,0x10,0x3c,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x78,0x1b,0x02,0x26,0x08,0x03,0x46,0x90,0x25,0xb0,0x11,0x3c,0x10,0x10,0x12,0x3c,
+0x01,0x00,0x03,0x24,0x00,0x0e,0x24,0x36,0x1e,0x00,0xc3,0x10,0x10,0x10,0x45,0x36,
+0xb1,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00,0x04,0x0e,0x24,0x36,0xb1,0x5a,0x00,0x0c,
+0x10,0x10,0x45,0x36,0x08,0x0e,0x24,0x36,0xb1,0x5a,0x00,0x0c,0x10,0x10,0x05,0x24,
+0x10,0x0e,0x24,0x36,0xb1,0x5a,0x00,0x0c,0x10,0x10,0x45,0x36,0x14,0x0e,0x24,0x36,
+0xb1,0x5a,0x00,0x0c,0x10,0x10,0x45,0x36,0x18,0x0e,0x24,0x36,0xb1,0x5a,0x00,0x0c,
+0x10,0x10,0x45,0x36,0x1c,0x0e,0x24,0x36,0xb1,0x5a,0x00,0x0c,0x10,0x10,0x45,0x36,
+0x78,0x1b,0x03,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,
+0x08,0x03,0x62,0xa0,0x00,0x00,0x86,0x8c,0x00,0x00,0x00,0x00,0xe0,0xff,0xc5,0x14,
+0x78,0x1b,0x03,0x26,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,
+0x08,0x03,0x62,0xa0,0xd8,0xff,0xbd,0x27,0x1c,0x00,0xb3,0xaf,0x02,0x80,0x13,0x3c,
+0x14,0x00,0xb1,0xaf,0x78,0x1b,0x71,0x26,0x10,0x03,0x26,0x8e,0x10,0x00,0xb0,0xaf,
+0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,0x15,0x00,0x04,0x24,0x20,0x00,0xbf,0xaf,
+0xb8,0x44,0x00,0x0c,0x18,0x00,0xb2,0xaf,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x14,0x03,0x26,0x8e,0xff,0xff,0x05,0x36,0xb8,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,
+0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x08,0x03,0x22,0x92,0x25,0xb0,0x12,0x3c,
+0x08,0x00,0x40,0x14,0x08,0x0e,0x44,0x36,0x25,0xb0,0x02,0x3c,0x00,0x0e,0x42,0x34,
+0x00,0x00,0x45,0x8c,0xf0,0x02,0x23,0x8e,0x00,0x00,0x00,0x00,0x17,0x00,0xa3,0x10,
+0x78,0x1b,0x62,0x26,0xec,0x02,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xf0,0x02,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x00,0x0e,0x44,0x36,0xf4,0x02,0x25,0x8e,
+0xb1,0x5a,0x00,0x0c,0x04,0x0e,0x44,0x36,0xf8,0x02,0x25,0x8e,0xb1,0x5a,0x00,0x0c,
+0x10,0x0e,0x44,0x36,0xfc,0x02,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x14,0x0e,0x44,0x36,
+0x00,0x03,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x18,0x0e,0x44,0x36,0x04,0x03,0x25,0x8e,
+0xb1,0x5a,0x00,0x0c,0x1c,0x0e,0x44,0x36,0x78,0x1b,0x62,0x26,0x20,0x00,0xbf,0x8f,
+0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x28,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x08,0x03,0x40,0xa0,0xe0,0xff,0xbd,0x27,
+0x18,0x00,0xb2,0xaf,0x02,0x80,0x12,0x3c,0x14,0x00,0xb1,0xaf,0x78,0x1b,0x51,0x26,
+0x10,0x03,0x26,0x8e,0x10,0x00,0xb0,0xaf,0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,
+0x1c,0x00,0xbf,0xaf,0xb8,0x44,0x00,0x0c,0x15,0x00,0x04,0x24,0xcb,0x12,0x00,0x0c,
+0x64,0x00,0x04,0x24,0x14,0x03,0x26,0x8e,0xff,0xff,0x05,0x36,0xb8,0x44,0x00,0x0c,
+0x1a,0x00,0x04,0x24,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x08,0x03,0x23,0x92,
+0x03,0x00,0x02,0x24,0x2c,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c,0xf0,0x02,0x25,0x8e,
+0x25,0xb0,0x10,0x3c,0xb1,0x5a,0x00,0x0c,0x00,0x0e,0x04,0x36,0xf4,0x02,0x25,0x8e,
+0xb1,0x5a,0x00,0x0c,0x04,0x0e,0x04,0x36,0xf8,0x02,0x25,0x8e,0xb1,0x5a,0x00,0x0c,
+0x10,0x0e,0x04,0x36,0xfc,0x02,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x14,0x0e,0x04,0x36,
+0x00,0x03,0x25,0x8e,0xb1,0x5a,0x00,0x0c,0x18,0x0e,0x04,0x36,0x04,0x03,0x25,0x8e,
+0xb1,0x5a,0x00,0x0c,0x1c,0x0e,0x04,0x36,0x0c,0x03,0x24,0x8e,0xec,0x02,0x22,0x8e,
+0x00,0x00,0x00,0x00,0x21,0x28,0x44,0x00,0x00,0xff,0xa3,0x30,0xff,0xff,0x02,0x3c,
+0xff,0x00,0x42,0x34,0x01,0x3f,0x63,0x2c,0x24,0x10,0xa2,0x00,0x0c,0x00,0x60,0x10,
+0x08,0x0e,0x04,0x36,0xb1,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00,0x78,0x1b,0x43,0x26,
+0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x03,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x08,0x03,0x62,0xa0,
+0xe1,0x1c,0x00,0x08,0x00,0x3f,0x45,0x34,0x00,0x0e,0x42,0x34,0x00,0x00,0x43,0x8c,
+0xf0,0x02,0x25,0x8e,0x00,0x00,0x00,0x00,0xd2,0xff,0x65,0x14,0x25,0xb0,0x10,0x3c,
+0xe4,0x1c,0x00,0x08,0x78,0x1b,0x43,0x26,0xd8,0xff,0xbd,0x27,0x18,0x00,0xb2,0xaf,
+0x02,0x80,0x12,0x3c,0x20,0x00,0xb4,0xaf,0x24,0x00,0xbf,0xaf,0x1c,0x00,0xb3,0xaf,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x78,0x1b,0x44,0x26,0x80,0x11,0x82,0x8c,
+0x78,0x1b,0x43,0x8e,0x08,0x03,0x93,0x90,0x02,0x11,0x02,0x00,0x7f,0x00,0x54,0x30,
+0xcc,0x00,0x63,0x30,0x40,0x00,0x02,0x24,0x68,0x00,0x62,0x10,0x01,0x00,0x02,0x24,
+0x25,0xb0,0x08,0x3c,0x4c,0x00,0x03,0x35,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,
+0x03,0x00,0x42,0x30,0x07,0x00,0x40,0x10,0x78,0x1b,0x45,0x26,0x78,0x1b,0x42,0x92,
+0x00,0x00,0x00,0x00,0x82,0x11,0x02,0x00,0x2f,0x00,0x40,0x10,0x00,0x0e,0x05,0x35,
+0x78,0x1b,0x45,0x26,0x08,0x03,0xa2,0x8c,0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,
+0x0f,0x00,0x40,0x14,0x78,0x1b,0x42,0x26,0x25,0xb0,0x02,0x3c,0x84,0x01,0x42,0x34,
+0x00,0x00,0x44,0x8c,0x0d,0x00,0x03,0x24,0x7b,0x00,0x83,0x10,0x3e,0x00,0x02,0x24,
+0x4a,0x00,0x03,0x24,0x23,0x03,0xa2,0xa0,0x20,0x03,0xa3,0xa0,0x45,0x00,0x02,0x24,
+0x43,0x00,0x03,0x24,0x21,0x03,0xa2,0xa0,0x22,0x03,0xa3,0xa0,0x78,0x1b,0x42,0x26,
+0x80,0x11,0x43,0x8c,0x25,0xb0,0x02,0x3c,0x60,0x0c,0x42,0x34,0x02,0x19,0x03,0x00,
+0xff,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,
+0x78,0x1b,0x45,0x8e,0x44,0x00,0x02,0x24,0xcc,0x00,0xa3,0x30,0x3e,0x00,0x62,0x10,
+0x78,0x1b,0x44,0x26,0x24,0x00,0xbf,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x00,0x00,0xa2,0x8c,0x00,0x00,0x00,0x00,
+0x5e,0x00,0x40,0x10,0x10,0x0e,0x07,0x35,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x08,0x0e,0x02,0x35,0x04,0x0e,0x03,0x35,
+0x00,0x00,0x44,0x8c,0x00,0x00,0xa5,0x8c,0x00,0x00,0x66,0x8c,0x02,0x80,0x02,0x3c,
+0x78,0x1b,0x49,0x24,0xec,0x02,0x24,0xad,0xf0,0x02,0x25,0xad,0xf4,0x02,0x26,0xad,
+0x14,0x0e,0x04,0x35,0x02,0x80,0x02,0x3c,0x18,0x0e,0x05,0x35,0x00,0x00,0xe7,0x8c,
+0x1c,0x0e,0x06,0x35,0x00,0x00,0x83,0x8c,0x56,0x43,0x4a,0x90,0x00,0x00,0xa2,0x8c,
+0x00,0x00,0xc4,0x8c,0xf8,0x02,0x27,0xad,0x00,0x03,0x22,0xad,0x22,0x00,0x02,0x24,
+0xfc,0x02,0x23,0xad,0x5a,0x00,0x42,0x11,0x04,0x03,0x24,0xad,0x92,0x00,0x02,0x24,
+0x58,0x00,0x42,0x11,0x0d,0x08,0x02,0x35,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x78,0x1b,0x42,0x8e,0x3f,0xff,0x03,0x24,0x24,0x10,0x43,0x00,
+0x40,0x00,0x42,0x34,0x14,0x1d,0x00,0x08,0x78,0x1b,0x42,0xae,0x3a,0x00,0x62,0x12,
+0x04,0x00,0x02,0x24,0x38,0x00,0x62,0x12,0x78,0x1b,0x43,0x26,0xff,0xff,0x02,0x24,
+0x08,0x1d,0x00,0x08,0x08,0x03,0x62,0xa0,0x80,0x11,0x83,0x8c,0xff,0xff,0x02,0x34,
+0xc0,0xff,0x62,0x10,0x02,0x11,0x05,0x00,0x03,0x00,0x45,0x30,0x01,0x00,0x03,0x24,
+0xbc,0xff,0xa3,0x14,0x25,0xb0,0x02,0x3c,0x4c,0x00,0x42,0x34,0x00,0x00,0x43,0x90,
+0x00,0x00,0x00,0x00,0x03,0x00,0x63,0x30,0xb6,0xff,0x60,0x10,0x03,0x00,0x02,0x24,
+0x65,0x00,0x62,0x12,0x04,0x00,0x62,0x2a,0x47,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x6a,0x00,0x60,0x12,0x00,0x00,0x00,0x00,0xae,0xff,0x65,0x16,0x00,0x00,0x00,0x00,
+0x20,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0x56,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x23,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00,
+0x48,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x6d,0x1c,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x39,0x1d,0x00,0x08,0x00,0x00,0x00,0x00,0x3b,0x00,0x02,0x24,0x46,0x00,0x03,0x24,
+0x23,0x03,0xa2,0xa0,0x20,0x03,0xa3,0xa0,0x41,0x00,0x02,0x24,0x40,0x00,0x03,0x24,
+0x21,0x03,0xa2,0xa0,0x27,0x1d,0x00,0x08,0x22,0x03,0xa3,0xa0,0x00,0x00,0xe3,0x8c,
+0x3f,0x3f,0x02,0x3c,0x3f,0x3f,0x42,0x34,0x9f,0xff,0x62,0x14,0x00,0x00,0x00,0x00,
+0x15,0x1d,0x00,0x08,0x78,0x1b,0x45,0x26,0x0f,0x00,0x10,0x3c,0x01,0x00,0x11,0x3c,
+0xff,0xff,0x05,0x36,0xf4,0x98,0x26,0x36,0xb8,0x44,0x00,0x0c,0x15,0x00,0x04,0x24,
+0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0xff,0xff,0x05,0x36,0x56,0x30,0x26,0x36,
+0xb8,0x44,0x00,0x0c,0x1a,0x00,0x04,0x24,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x78,0x1b,0x43,0x26,0xff,0xff,0x02,0x24,0x08,0x1d,0x00,0x08,0x08,0x03,0x62,0xa0,
+0x0d,0x08,0x02,0x35,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,0x0f,0x00,0x63,0x30,
+0x08,0x00,0x62,0x2c,0x0f,0x00,0x63,0x38,0xa3,0xff,0x40,0x14,0x01,0x00,0x65,0x24,
+0x00,0x16,0x05,0x00,0x00,0x24,0x05,0x00,0x00,0x1a,0x05,0x00,0x25,0x10,0x44,0x00,
+0x25,0x10,0x43,0x00,0x25,0x10,0x45,0x00,0x25,0x18,0x65,0x00,0x1c,0x03,0x23,0xad,
+0x66,0x1d,0x00,0x08,0x18,0x03,0x22,0xad,0x04,0x00,0x02,0x24,0x11,0x00,0x62,0x12,
+0xff,0x00,0x02,0x24,0x67,0xff,0x62,0x16,0x00,0x00,0x00,0x00,0x22,0x03,0x82,0x90,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0x21,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x20,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0x0a,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x29,0x1c,0x00,0x0c,0x00,0x00,0x00,0x00,0x39,0x1d,0x00,0x08,
+0x00,0x00,0x00,0x00,0x21,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00,
+0xf8,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0xea,0x1b,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x39,0x1d,0x00,0x08,0x00,0x00,0x00,0x00,0x24,0x03,0x82,0x90,0x00,0x00,0x00,0x00,
+0x2b,0x10,0x82,0x02,0xa8,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0xab,0x1c,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x39,0x1d,0x00,0x08,0x00,0x00,0x00,0x00,0x22,0x03,0x82,0x90,
+0x00,0x00,0x00,0x00,0x2b,0x10,0x82,0x02,0xe6,0xff,0x40,0x10,0x00,0x00,0x00,0x00,
+0x25,0x03,0x82,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x54,0x00,0x9a,0xff,0x40,0x14,
+0x00,0x00,0x00,0x00,0xab,0x1c,0x00,0x0c,0x00,0x00,0x00,0x00,0x39,0x1d,0x00,0x08,
+0x00,0x00,0x00,0x00,0x02,0x80,0x08,0x3c,0x78,0x1b,0x05,0x25,0x80,0x11,0xa4,0x8c,
+0xea,0x02,0xa3,0x90,0x02,0x11,0x04,0x00,0x26,0x00,0x60,0x14,0x7f,0x00,0x46,0x30,
+0x25,0xb0,0x07,0x3c,0x4c,0x00,0xe2,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,
+0x20,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0x02,0x34,0x1d,0x00,0x82,0x10,
+0x00,0x00,0x00,0x00,0x00,0x08,0xe3,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,
+0x01,0x00,0x42,0x30,0x19,0x00,0x40,0x10,0x4b,0x00,0xc2,0x2c,0x3e,0x00,0x40,0x10,
+0x01,0x00,0x04,0x24,0xd8,0xff,0xc2,0x24,0x1e,0x00,0x42,0x2c,0x49,0x00,0x40,0x10,
+0x23,0x00,0xc2,0x2c,0x78,0x1b,0x04,0x25,0xd7,0x02,0x82,0x90,0x00,0x00,0x00,0x00,
+0x44,0x00,0x40,0x10,0x23,0x00,0xc2,0x2c,0x25,0xb0,0x02,0x3c,0x87,0x0c,0x42,0x34,
+0x20,0x00,0x03,0x24,0x00,0x00,0x43,0xa0,0xd7,0x02,0x80,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x17,0x00,0x40,0x10,
+0x01,0x00,0x04,0x24,0xd8,0xff,0xc2,0x24,0x1e,0x00,0x42,0x2c,0x44,0x00,0x40,0x10,
+0x23,0x00,0xc2,0x2c,0x78,0x1b,0x04,0x25,0xd7,0x02,0x82,0x90,0x00,0x00,0x00,0x00,
+0x3f,0x00,0x40,0x10,0x23,0x00,0xc2,0x2c,0x25,0xb0,0x02,0x3c,0x30,0x0c,0x42,0x34,
+0x44,0x00,0x03,0x24,0x00,0x00,0x43,0xa0,0xd7,0x02,0x80,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xd7,0x02,0xa2,0x90,
+0x00,0x00,0x00,0x00,0xe7,0xff,0x44,0x10,0x43,0x00,0x02,0x24,0x30,0x0c,0xe3,0x34,
+0xd7,0x02,0xa4,0xa0,0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0xd7,0x02,0xa2,0x90,0x00,0x00,0x00,0x00,
+0xc0,0xff,0x44,0x10,0x10,0x00,0x02,0x24,0x87,0x0c,0xe3,0x34,0xd7,0x02,0xa4,0xa0,
+0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0xc7,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x78,0x1b,0x04,0x25,
+0xd7,0x02,0x82,0x90,0x02,0x00,0x03,0x24,0xc2,0xff,0x43,0x10,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x02,0x3c,0x87,0x0c,0x42,0x34,0xd7,0x02,0x83,0xa0,0x00,0x00,0x40,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0xb4,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x78,0x1b,0x04,0x25,0xd7,0x02,0x82,0x90,
+0x02,0x00,0x03,0x24,0xaf,0xff,0x43,0x10,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,
+0xd7,0x02,0x83,0xa0,0x30,0x0c,0x42,0x34,0x42,0x00,0x03,0x24,0x00,0x00,0x43,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x2a,0xb0,0x04,0x3c,0x28,0x00,0x85,0x34,0x02,0x00,0x82,0x94,0x04,0x00,0x84,0x24,
+0x05,0x00,0x40,0x14,0x2b,0x18,0xa4,0x00,0xfb,0xff,0x60,0x10,0x01,0x00,0x02,0x24,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf,0x90,0x1e,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x08,0x00,0x40,0x10,0x01,0x00,0x03,0x24,0x02,0x80,0x02,0x3c,0xb8,0x44,0x43,0xa0,
+0x14,0x00,0x04,0x24,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x6c,0x44,0x44,0xac,
+0xb7,0x44,0x60,0xa0,0x10,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x18,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,0x9e,0x44,0x40,0xa0,0xff,0x00,0x85,0x30,
+0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xb0,0x44,0x60,0xa0,0x08,0x00,0xa4,0x2c,
+0xb2,0x44,0x40,0xa0,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xba,0x44,0x60,0xa0,
+0x98,0x44,0x45,0xa0,0x11,0x00,0x80,0x10,0x02,0x80,0x03,0x3c,0x80,0x10,0x05,0x00,
+0xdc,0xb2,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,
+0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x02,0x80,0x05,0x3c,0x78,0x1b,0xa5,0x24,
+0x08,0x0b,0xa4,0x8c,0x00,0x70,0x02,0x3c,0x08,0x00,0x42,0x34,0x25,0x20,0x82,0x00,
+0x41,0xb0,0x03,0x3c,0x00,0x00,0x64,0xac,0x08,0x0b,0xa4,0xac,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x02,0x80,0x05,0x3c,0x78,0x1b,0xa5,0x24,0x08,0x0b,0xa4,0x8c,
+0x00,0x70,0x02,0x3c,0x08,0x00,0x42,0x34,0x27,0x10,0x02,0x00,0x24,0x20,0x82,0x00,
+0x41,0xb0,0x03,0x3c,0x00,0x00,0x64,0xac,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa4,0xac,
+0x02,0x80,0x05,0x3c,0x78,0x1b,0xa5,0x24,0x08,0x0b,0xa2,0x8c,0x14,0x0b,0xa6,0x94,
+0x00,0x70,0x04,0x3c,0x41,0xb0,0x03,0x3c,0x08,0x00,0x42,0x34,0x27,0x20,0x04,0x00,
+0x00,0x00,0x62,0xac,0x24,0x20,0x44,0x00,0x10,0x00,0xc6,0x34,0x08,0x00,0x67,0x34,
+0x02,0x80,0x08,0x3c,0x01,0x00,0x02,0x24,0x00,0x00,0x64,0xac,0x00,0x00,0xe6,0xa4,
+0xb4,0x44,0x02,0xa1,0xb4,0x44,0x03,0x91,0x02,0x80,0x02,0x3c,0x14,0x0b,0xa6,0xa4,
+0xb5,0x44,0x43,0xa0,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa4,0xac,0x02,0x80,0x05,0x3c,
+0x78,0x1b,0xa5,0x24,0x08,0x0b,0xa3,0x8c,0x14,0x0b,0xa6,0x94,0x00,0x70,0x02,0x3c,
+0x41,0xb0,0x04,0x3c,0x08,0x00,0x63,0x34,0x27,0x10,0x02,0x00,0x24,0x10,0x62,0x00,
+0x10,0x00,0xc6,0x34,0x08,0x00,0x87,0x34,0x14,0x0b,0xa6,0xa4,0x00,0x00,0x83,0xac,
+0x00,0x00,0x82,0xac,0x00,0x00,0xe6,0xa4,0x08,0x00,0xe0,0x03,0x08,0x0b,0xa2,0xac,
+0x25,0xb0,0x03,0x3c,0xbe,0x00,0x63,0x34,0x00,0x00,0x62,0x94,0x08,0x00,0xe0,0x03,
+0x01,0x00,0x42,0x2c,0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf,0x90,0x1e,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x15,0x00,0x40,0x10,0x78,0x41,0x64,0x24,
+0x78,0x41,0x62,0x8c,0x00,0x00,0x00,0x00,0x11,0x00,0x44,0x14,0x02,0x80,0x02,0x3c,
+0xb8,0x44,0x43,0x90,0x01,0x00,0x02,0x24,0xff,0x00,0x63,0x30,0x0c,0x00,0x62,0x10,
+0x01,0x00,0x04,0x24,0x02,0x80,0x03,0x3c,0x99,0x44,0x62,0x90,0x00,0x00,0x00,0x00,
+0x0f,0x00,0x42,0x30,0x05,0x00,0x42,0x28,0x05,0x00,0x40,0x10,0x21,0x10,0x80,0x00,
+0x10,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,
+0x10,0x00,0xbf,0x8f,0x21,0x20,0x00,0x00,0x21,0x10,0x80,0x00,0x08,0x00,0xe0,0x03,
+0x18,0x00,0xbd,0x27,0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf,0x90,0x1e,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,0x25,0x00,0x40,0x10,0x78,0x41,0x64,0x24,
+0x78,0x41,0x62,0x8c,0x00,0x00,0x00,0x00,0x21,0x00,0x44,0x14,0x01,0x00,0x05,0x24,
+0x02,0x80,0x03,0x3c,0xb0,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x42,0x30,
+0x1b,0x00,0x45,0x10,0x02,0x80,0x03,0x3c,0x99,0x44,0x62,0x90,0x00,0x00,0x00,0x00,
+0x0f,0x00,0x42,0x30,0x03,0x00,0x42,0x28,0x15,0x00,0x40,0x10,0x02,0x80,0x03,0x3c,
+0xb2,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x30,0x10,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0xb2,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x10,0x00,0x42,0x30,
+0x0b,0x00,0x40,0x14,0x02,0x80,0x03,0x3c,0xb8,0x44,0x62,0x90,0x00,0x00,0x00,0x00,
+0xff,0x00,0x42,0x30,0x06,0x00,0x45,0x10,0x01,0x00,0x04,0x24,0x02,0x80,0x02,0x3c,
+0xb9,0x44,0x43,0x90,0x00,0x00,0x00,0x00,0x02,0x00,0x60,0x10,0x00,0x00,0x00,0x00,
+0x21,0x20,0x00,0x00,0x10,0x00,0xbf,0x8f,0x21,0x10,0x80,0x00,0x08,0x00,0xe0,0x03,
+0x18,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0xff,0x00,0x84,0x30,0x18,0x00,0xbf,0xaf,
+0x14,0x00,0xb1,0xaf,0x29,0x00,0x80,0x10,0x10,0x00,0xb0,0xaf,0x25,0xb0,0x03,0x3c,
+0x04,0x0c,0x62,0x90,0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30,0x02,0x00,0x42,0x34,
+0x04,0x0c,0x62,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,0x04,0x0d,0x62,0x90,
+0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30,0x02,0x00,0x42,0x34,0x04,0x0d,0x62,0xa0,
+0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x82,0x24,0x25,0xb0,0x10,0x3c,0x70,0x0e,0x05,0x8e,0x80,0x01,0x11,0x3c,
+0x70,0x0e,0x04,0x24,0x34,0x5b,0x00,0x0c,0x25,0x28,0xb1,0x00,0x8c,0x0e,0x05,0x8e,
+0x8c,0x0e,0x04,0x24,0x34,0x5b,0x00,0x0c,0x25,0x28,0xb1,0x00,0x03,0x00,0x05,0x3c,
+0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x59,0x01,0xa5,0x34,
+0x44,0x08,0x04,0x24,0x34,0x5b,0x00,0x08,0x20,0x00,0xbd,0x27,0x44,0x08,0x04,0x24,
+0x34,0x5b,0x00,0x0c,0x21,0x28,0x00,0x00,0x25,0xb0,0x03,0x3c,0x04,0x0c,0x62,0x90,
+0x21,0x20,0x00,0x00,0xfd,0x00,0x42,0x30,0x04,0x0c,0x62,0xa0,0x01,0x00,0x82,0x24,
+0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,
+0x25,0xb0,0x03,0x3c,0x04,0x0d,0x62,0x90,0x21,0x20,0x00,0x00,0xfd,0x00,0x42,0x30,
+0x04,0x0d,0x62,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x25,0xb0,0x11,0x3c,0x70,0x0e,0x25,0x8e,
+0x7f,0xfe,0x10,0x3c,0xff,0xff,0x10,0x36,0x24,0x28,0xb0,0x00,0x34,0x5b,0x00,0x0c,
+0x70,0x0e,0x04,0x24,0x8c,0x0e,0x25,0x8e,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,
+0x24,0x28,0xb0,0x00,0x8c,0x0e,0x04,0x24,0x10,0x00,0xb0,0x8f,0x34,0x5b,0x00,0x08,
+0x20,0x00,0xbd,0x27,0x25,0xb0,0x03,0x3c,0xfc,0x37,0x02,0x24,0x40,0x00,0x64,0x34,
+0x00,0x00,0x82,0xa4,0x42,0x00,0x65,0x34,0x03,0x00,0x02,0x24,0x00,0x00,0xa0,0xa0,
+0x03,0x08,0x62,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,
+0x10,0x00,0xb0,0xaf,0x02,0x80,0x02,0x3c,0x98,0x44,0x43,0x90,0x00,0x00,0x00,0x00,
+0x07,0x00,0x60,0x10,0x25,0xb0,0x10,0x3c,0x02,0x80,0x03,0x3c,0x56,0x43,0x62,0x90,
+0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x30,0x2e,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x21,0x00,0x06,0x36,0x00,0x00,0xc2,0x90,0x18,0x00,0x03,0x36,0x42,0x00,0x05,0x36,
+0x01,0x00,0x42,0x34,0x00,0x00,0xc2,0xa0,0x40,0x00,0x11,0x36,0x00,0x00,0x60,0xa0,
+0xff,0xff,0x02,0x24,0xfc,0x57,0x03,0x24,0x00,0x00,0xa2,0xa0,0x64,0x00,0x04,0x24,
+0x00,0x00,0x23,0xa6,0xcb,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,0xfc,0x77,0x02,0x24,
+0x00,0x00,0x22,0xa6,0xcb,0x12,0x00,0x0c,0x0a,0x00,0x04,0x24,0x03,0x08,0x00,0xa2,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x0a,0x00,0x04,0x24,0xcb,0x12,0x00,0x0c,
+0x25,0xb0,0x10,0x3c,0x40,0x00,0x10,0x36,0xfc,0x37,0x02,0x24,0x00,0x00,0x02,0xa6,
+0xcb,0x12,0x00,0x0c,0x0a,0x00,0x04,0x24,0xfc,0x77,0x02,0x24,0x00,0x00,0x02,0xa6,
+0xcb,0x12,0x00,0x0c,0x0a,0x00,0x04,0x24,0xfc,0x57,0x02,0x24,0x00,0x00,0x02,0xa6,
+0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x55,0x1f,0x00,0x0c,0x21,0x20,0x00,0x00,0xc8,0x1f,0x00,0x08,
+0x25,0xb0,0x10,0x3c,0xd8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x20,0x00,0xbf,0xaf,
+0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0xff,0x00,0x90,0x30,
+0x00,0x60,0x13,0x40,0x01,0x00,0x61,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x02,0x80,0x11,0x3c,0x9a,0x44,0x22,0x92,0x0f,0x00,0x12,0x32,0x0f,0x00,0x42,0x30,
+0x0d,0x00,0x52,0x10,0x04,0x00,0x02,0x32,0x13,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x9a,0x44,0x22,0x92,0x0c,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0x2f,0x00,0x43,0x10,
+0x08,0x00,0x02,0x32,0x9a,0x44,0x22,0x92,0x04,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,
+0x5a,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0x00,0x60,0x93,0x40,0x20,0x00,0xbf,0x8f,
+0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x9a,0x44,0x22,0x92,0x00,0x00,0x00,0x00,
+0x04,0x00,0x42,0x30,0x33,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x9a,0x44,0x22,0x92,
+0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x30,0x32,0x00,0x40,0x10,0x08,0x00,0x02,0x32,
+0x30,0x00,0x40,0x14,0x02,0x80,0x03,0x3c,0x60,0x26,0x62,0x90,0x00,0x00,0x00,0x00,
+0x01,0x00,0x42,0x30,0x3d,0x00,0x40,0x14,0x01,0x00,0x04,0x24,0x9a,0x44,0x22,0x92,
+0xf0,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0x9a,0x44,0x22,0xa2,0x9a,0x44,0x23,0x92,
+0x00,0x00,0x00,0x00,0x25,0x18,0x43,0x02,0x9a,0x44,0x23,0xa2,0x00,0x60,0x93,0x40,
+0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0xd1,0xff,0x40,0x14,
+0x00,0x00,0x00,0x00,0x05,0x1f,0x00,0x0c,0x00,0x00,0x00,0x00,0xd2,0xff,0x40,0x10,
+0x00,0x00,0x00,0x00,0x9a,0x44,0x22,0x92,0xf0,0xff,0x03,0x24,0x24,0x10,0x43,0x00,
+0x9a,0x44,0x22,0xa2,0x02,0x80,0x03,0x3c,0x9a,0x44,0x22,0x92,0x60,0x26,0x64,0x90,
+0x04,0x00,0x42,0x34,0x01,0x00,0x84,0x30,0x9a,0x44,0x22,0xa2,0xc1,0xff,0x80,0x10,
+0x00,0x00,0x00,0x00,0x0e,0x46,0x00,0x0c,0x01,0x00,0x04,0x24,0x11,0x20,0x00,0x08,
+0x00,0x00,0x00,0x00,0xa9,0x1f,0x00,0x0c,0x00,0x00,0x00,0x00,0x23,0x20,0x00,0x08,
+0x00,0x00,0x00,0x00,0x9a,0x44,0x22,0x92,0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x30,
+0xd2,0xff,0x40,0x14,0x08,0x00,0x02,0x32,0xd0,0xff,0x40,0x10,0x02,0x80,0x02,0x3c,
+0xb1,0x44,0x43,0x90,0x01,0x00,0x02,0x24,0xff,0x00,0x63,0x30,0x1b,0x00,0x62,0x10,
+0x02,0x80,0x03,0x3c,0x60,0x26,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,
+0xc6,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0x21,0x20,0x00,0x00,0x0e,0x46,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x2f,0x20,0x00,0x08,0x00,0x00,0x00,0x00,0x25,0x1f,0x00,0x0c,
+0x00,0x00,0x00,0x00,0xa4,0xff,0x40,0x10,0x00,0x00,0x00,0x00,0xb9,0x1f,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x9a,0x44,0x22,0x92,0xf0,0xff,0x03,0x24,0x24,0x10,0x43,0x00,
+0x9a,0x44,0x22,0xa2,0x9a,0x44,0x23,0x92,0x00,0x00,0x00,0x00,0x02,0x00,0x63,0x34,
+0x9a,0x44,0x23,0xa2,0x37,0x20,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,
+0x98,0x44,0x43,0x90,0x00,0x00,0x00,0x00,0xac,0xff,0x60,0x14,0x02,0x80,0x03,0x3c,
+0x65,0x20,0x00,0x08,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x98,0x44,0x43,0x90,
+0x00,0x00,0x00,0x00,0x0c,0x00,0x60,0x10,0x02,0x80,0x02,0x3c,0xb1,0x44,0x43,0x90,
+0x00,0x00,0x00,0x00,0x0a,0x00,0x60,0x14,0x0c,0x00,0x04,0x24,0x02,0x80,0x03,0x3c,
+0x9a,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x0f,0x00,0x42,0x30,0x04,0x00,0x42,0x28,
+0x03,0x00,0x40,0x14,0x04,0x00,0x04,0x24,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xf9,0x1f,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0xe8,0xff,0xbd,0x27,0x68,0x82,0x63,0x24,0x18,0x03,0x42,0x34,0x14,0x00,0xbf,0xaf,
+0x10,0x00,0xb0,0xaf,0x00,0x00,0x43,0xac,0x00,0x60,0x10,0x40,0x01,0x00,0x01,0x36,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x02,0x80,0x03,0x3c,0x60,0x26,0x62,0x90,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x17,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,
+0x02,0x80,0x02,0x3c,0x9a,0x44,0x43,0x90,0x00,0x00,0x00,0x00,0x0f,0x00,0x63,0x30,
+0x04,0x00,0x63,0x28,0x17,0x00,0x60,0x14,0x04,0x00,0x04,0x24,0x02,0x80,0x03,0x3c,
+0xb9,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x0c,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0xb9,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0xb9,0x44,0x62,0xa0,
+0x00,0x60,0x90,0x40,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0xb9,0x44,0x40,0xa0,0x00,0x60,0x90,0x40,
+0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x18,0x00,0xbd,0x27,0xf9,0x1f,0x00,0x0c,0x00,0x00,0x00,0x00,0xb4,0x20,0x00,0x08,
+0x02,0x80,0x03,0x3c,0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c,0xe8,0xff,0xbd,0x27,
+0x34,0x83,0x42,0x24,0x18,0x03,0x63,0x34,0x14,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,
+0x00,0x00,0x62,0xac,0x00,0x60,0x10,0x40,0x01,0x00,0x01,0x36,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x02,0x80,0x04,0x3c,0xb7,0x44,0x82,0x90,0x00,0x00,0x00,0x00,
+0x0a,0x00,0x40,0x10,0x14,0x00,0x03,0x24,0x02,0x80,0x02,0x3c,0x6c,0x44,0x43,0xac,
+0xb7,0x44,0x80,0xa0,0x00,0x60,0x90,0x40,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x02,0x80,0x03,0x3c,
+0x01,0x00,0x04,0x24,0x02,0x80,0x02,0x3c,0xba,0x44,0x44,0xa0,0xb8,0x44,0x60,0xa0,
+0x02,0x80,0x02,0x3c,0x99,0x44,0x44,0x90,0xf9,0x1f,0x00,0x0c,0xff,0x00,0x84,0x30,
+0x00,0x60,0x90,0x40,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x42,0x11,0x05,0x00,0x0f,0x00,0x46,0x30,
+0xe8,0xff,0xbd,0x27,0x09,0x00,0xc3,0x28,0x14,0x00,0xbf,0xaf,0x15,0x00,0x60,0x10,
+0x10,0x00,0xb0,0xaf,0x82,0x16,0x05,0x00,0x01,0x00,0x42,0x30,0x15,0x00,0x40,0x10,
+0x00,0xc0,0x02,0x3c,0x24,0x10,0xa2,0x00,0x47,0x00,0x40,0x14,0xc2,0x15,0x04,0x00,
+0x01,0x00,0x42,0x30,0x54,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,
+0x3c,0xaf,0x63,0x24,0x21,0x18,0xc3,0x00,0x02,0x80,0x04,0x3c,0xb3,0x44,0x85,0x90,
+0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x24,0x10,0x45,0x00,0x4a,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x18,0x00,0xbd,0x27,0x24,0x10,0xa2,0x00,0x1f,0x00,0x40,0x14,0xc2,0x15,0x04,0x00,
+0x01,0x00,0x42,0x30,0x0b,0x00,0x40,0x10,0x02,0x80,0x04,0x3c,0x02,0x80,0x03,0x3c,
+0x3c,0xaf,0x63,0x24,0x21,0x18,0xc3,0x00,0x02,0x80,0x04,0x3c,0xb3,0x44,0x85,0x90,
+0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x24,0x10,0x45,0x00,0x3b,0x00,0x40,0x14,
+0x02,0x80,0x04,0x3c,0xb2,0x44,0x82,0x90,0xfe,0xff,0x03,0x24,0x24,0x10,0x43,0x00,
+0xb2,0x44,0x82,0xa0,0xb2,0x44,0x82,0x90,0x00,0x00,0x00,0x00,0x07,0x00,0x42,0x30,
+0xe4,0xff,0x40,0x14,0x02,0x80,0x02,0x3c,0xb0,0x44,0x40,0xa0,0x02,0x80,0x03,0x3c,
+0x99,0x44,0x64,0x90,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0xff,0x00,0x84,0x30,
+0xf9,0x1f,0x00,0x08,0x18,0x00,0xbd,0x27,0x02,0x80,0x04,0x3c,0xb2,0x44,0x82,0x90,
+0xfd,0xff,0x03,0x24,0x14,0x00,0xbf,0x8f,0x24,0x10,0x43,0x00,0x02,0x80,0x03,0x3c,
+0xb2,0x44,0x82,0xa0,0xb6,0x44,0x60,0xa0,0x42,0xb0,0x04,0x3c,0x00,0x00,0x82,0x90,
+0x10,0x00,0xb0,0x8f,0xef,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0x03,0x00,0x85,0x34,
+0x40,0x00,0x03,0x24,0x18,0x00,0xbd,0x27,0x00,0x00,0x82,0xa0,0x00,0x00,0xa3,0xa0,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x42,0xb0,0x07,0x3c,0x00,0x00,0xe3,0x90,
+0xef,0xff,0x02,0x24,0x03,0x00,0xf0,0x34,0x24,0x18,0x62,0x00,0x40,0x00,0x02,0x24,
+0x00,0x00,0xe3,0xa0,0x02,0x00,0x04,0x24,0x00,0x00,0x02,0xa2,0x21,0x28,0x00,0x00,
+0x71,0x14,0x00,0x0c,0x00,0x03,0x06,0x24,0x44,0x00,0x02,0x24,0x00,0x00,0x02,0xa2,
+0x11,0x21,0x00,0x08,0x00,0x00,0x00,0x00,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,
+0x01,0x00,0x04,0x24,0x1c,0x46,0x00,0x08,0x18,0x00,0xbd,0x27,0xb2,0x44,0x82,0x90,
+0x27,0x21,0x00,0x08,0xfb,0xff,0x03,0x24,0x82,0x26,0x05,0x00,0xe8,0xff,0xbd,0x27,
+0x00,0xc0,0x02,0x3c,0x01,0x00,0x84,0x30,0x14,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,
+0x0c,0x00,0x80,0x10,0x24,0x10,0xa2,0x00,0x42,0xb0,0x07,0x3c,0x03,0x00,0xf0,0x34,
+0x02,0x00,0x04,0x24,0x21,0x28,0x00,0x00,0x31,0x00,0x40,0x14,0x00,0x03,0x06,0x24,
+0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x04,0x24,0x1c,0x46,0x00,0x08,
+0x18,0x00,0xbd,0x27,0x42,0xb0,0x04,0x3c,0x02,0x80,0x06,0x3c,0x0f,0x00,0x40,0x14,
+0x03,0x00,0x87,0x34,0x02,0x80,0x06,0x3c,0xb2,0x44,0xc3,0x90,0xfe,0xff,0x02,0x24,
+0x24,0x18,0x62,0x00,0xb2,0x44,0xc3,0xa0,0xb2,0x44,0xc2,0x90,0x00,0x00,0x00,0x00,
+0x07,0x00,0x42,0x30,0x16,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x14,0x00,0xbf,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0xb2,0x44,0xc3,0x90,
+0xfd,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0x02,0x80,0x02,0x3c,0xb2,0x44,0xc3,0xa0,
+0xb6,0x44,0x40,0xa0,0x00,0x00,0x83,0x90,0xef,0xff,0x02,0x24,0x24,0x18,0x62,0x00,
+0x40,0x00,0x02,0x24,0x00,0x00,0x83,0xa0,0x00,0x00,0xe2,0xa0,0xb2,0x44,0xc2,0x90,
+0x00,0x00,0x00,0x00,0x07,0x00,0x42,0x30,0xec,0xff,0x40,0x14,0x02,0x80,0x02,0x3c,
+0xb0,0x44,0x40,0xa0,0x02,0x80,0x03,0x3c,0x99,0x44,0x64,0x90,0x14,0x00,0xbf,0x8f,
+0x10,0x00,0xb0,0x8f,0xff,0x00,0x84,0x30,0xf9,0x1f,0x00,0x08,0x18,0x00,0xbd,0x27,
+0x00,0x00,0xe3,0x90,0xef,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0x40,0x00,0x02,0x24,
+0x00,0x00,0xe3,0xa0,0x00,0x00,0x02,0xa2,0x71,0x14,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x44,0x00,0x02,0x24,0x00,0x00,0x02,0xa2,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0xff,0x00,0xa5,0x30,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,0x02,0x80,0x10,0x3c,
+0x03,0x00,0xa0,0x14,0xff,0x00,0x91,0x30,0x19,0x00,0x20,0x12,0x02,0x80,0x02,0x3c,
+0xb2,0x44,0x03,0x92,0xfb,0xff,0x02,0x24,0x01,0x00,0x04,0x24,0x24,0x18,0x62,0x00,
+0xb2,0x44,0x03,0xa2,0x2e,0x00,0xa0,0x14,0x01,0x00,0x02,0x24,0xb2,0x44,0x02,0x92,
+0xfe,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0xb2,0x44,0x02,0xa2,0x02,0x00,0x04,0x24,
+0x21,0x28,0x00,0x00,0x13,0x00,0x20,0x16,0x00,0x03,0x06,0x24,0xb2,0x44,0x02,0x92,
+0xfd,0xff,0x03,0x24,0x18,0x00,0xbf,0x8f,0x24,0x10,0x43,0x00,0xb2,0x44,0x02,0xa2,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0xb0,0x44,0x40,0xa0,0x02,0x80,0x03,0x3c,0x99,0x44,0x64,0x90,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0xff,0x00,0x84,0x30,0xf9,0x1f,0x00,0x08,
+0x20,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,0x01,0x00,0x07,0x24,0xb0,0x44,0x47,0xa0,
+0xb2,0x44,0x03,0x92,0x00,0x00,0x00,0x00,0x02,0x00,0x63,0x34,0xb2,0x44,0x03,0xa2,
+0x71,0x14,0x00,0x0c,0x00,0x00,0x00,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x42,0xb0,0x02,0x3c,0x44,0x00,0x03,0x24,0x03,0x00,0x42,0x34,
+0x20,0x00,0xbd,0x27,0x00,0x00,0x43,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x02,0x80,0x03,0x3c,0xb0,0x44,0x62,0xa0,0xb2,0x44,0x05,0x92,0x00,0x00,0x00,0x00,
+0x01,0x00,0xa5,0x34,0xb2,0x44,0x05,0xa2,0x1c,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xc4,0x21,0x00,0x08,0x02,0x00,0x04,0x24,0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c,
+0xe8,0xff,0xbd,0x27,0xd8,0x87,0x42,0x24,0x18,0x03,0x63,0x34,0x10,0x00,0xb0,0xaf,
+0x00,0x00,0x62,0xac,0x02,0x80,0x10,0x3c,0x99,0x44,0x02,0x92,0x00,0x00,0x00,0x00,
+0x0f,0x00,0x42,0x30,0x03,0x00,0x42,0x28,0x05,0x00,0x40,0x10,0x14,0x00,0xbf,0xaf,
+0x25,0x1f,0x00,0x0c,0x00,0x00,0x00,0x00,0x04,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x99,0x44,0x04,0x92,0xf9,0x1f,0x00,0x0c,0xff,0x00,0x84,0x30,0x02,0x80,0x04,0x3c,
+0x78,0x1b,0x84,0x24,0x18,0x0b,0x83,0x94,0x14,0x0b,0x85,0x94,0x14,0x00,0xbf,0x8f,
+0x10,0x00,0xb0,0x8f,0x02,0x00,0x63,0x30,0x41,0xb0,0x02,0x3c,0x25,0x18,0x65,0x00,
+0x08,0x00,0x42,0x34,0x18,0x00,0xbd,0x27,0x00,0x00,0x43,0xa4,0x08,0x00,0xe0,0x03,
+0x14,0x0b,0x83,0xa4,0xe8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x14,0x00,0xbf,0xaf,
+0x02,0x80,0x10,0x3c,0x08,0x14,0x04,0x26,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,
+0x2d,0x28,0x00,0x0c,0x21,0x38,0x00,0x00,0x1e,0x22,0x00,0x08,0x08,0x14,0x04,0x26,
+0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf,0x82,0x5b,0x00,0x0c,0x21,0x38,0x00,0x00,
+0x10,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,
+0xff,0xff,0x8d,0x30,0x00,0x60,0x0f,0x40,0x01,0x00,0xe1,0x35,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x02,0x80,0x06,0x3c,0x78,0x1b,0xce,0x24,0x82,0x0b,0xc2,0x91,
+0x00,0x00,0x00,0x00,0x1d,0x00,0x40,0x10,0x25,0xb0,0x03,0x3c,0x38,0x02,0x64,0x34,
+0x80,0xff,0x02,0x24,0x00,0x00,0x82,0xa0,0x34,0x02,0x6a,0x34,0xd2,0x01,0x65,0x34,
+0xd6,0x01,0x66,0x34,0xda,0x01,0x67,0x34,0xde,0x01,0x63,0x34,0x00,0x00,0xa8,0x94,
+0x00,0x00,0xc9,0x94,0x00,0x00,0xeb,0x94,0x00,0x00,0x6c,0x94,0x00,0x00,0x44,0x95,
+0xb0,0xfe,0xa2,0x25,0xff,0xff,0x4d,0x30,0x80,0x0b,0xc4,0xa5,0x00,0x00,0xa0,0xa4,
+0x78,0x0b,0xc8,0xa5,0x00,0x00,0xc0,0xa4,0x7a,0x0b,0xc9,0xa5,0x00,0x00,0xe0,0xa4,
+0x7c,0x0b,0xcb,0xa5,0x00,0x00,0x60,0xa4,0x00,0x00,0x4d,0xa5,0x7e,0x0b,0xcc,0xa5,
+0x00,0x60,0x8f,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x2a,0xb0,0x02,0x3c,
+0x0a,0x00,0x45,0x34,0x63,0x00,0x03,0x24,0xff,0xff,0x04,0x34,0x00,0x00,0xa2,0x90,
+0x00,0x00,0x00,0x00,0x0a,0x00,0x40,0x10,0x78,0x1b,0xc2,0x24,0x64,0x00,0x02,0x24,
+0xff,0xff,0x42,0x24,0xff,0xff,0x42,0x30,0xfe,0xff,0x40,0x14,0xff,0xff,0x42,0x24,
+0xff,0xff,0x62,0x24,0xff,0xff,0x43,0x30,0xf4,0xff,0x64,0x14,0x78,0x1b,0xc2,0x24,
+0x80,0x0b,0x48,0x94,0x7e,0x0b,0x47,0x94,0x78,0x0b,0x49,0x94,0x7a,0x0b,0x4a,0x94,
+0x7c,0x0b,0x4b,0x94,0x25,0xb0,0x03,0x3c,0x38,0x02,0x6c,0x34,0x34,0x02,0x62,0x34,
+0xd2,0x01,0x64,0x34,0xd6,0x01,0x65,0x34,0xda,0x01,0x66,0x34,0xde,0x01,0x63,0x34,
+0x00,0x00,0x48,0xa4,0x00,0x00,0x89,0xa4,0x00,0x00,0xaa,0xa4,0x00,0x00,0xcb,0xa4,
+0x00,0x00,0x67,0xa4,0x00,0x00,0x80,0xa1,0x00,0x60,0x8f,0x40,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x25,0xb0,0x04,0x3c,0x08,0x00,0x83,0x34,0x00,0x00,0x62,0x94,
+0x00,0x00,0x00,0x00,0x00,0x14,0x02,0x00,0x03,0x14,0x02,0x00,0x1a,0x00,0x40,0x04,
+0x60,0x02,0x85,0x34,0x00,0x00,0xa3,0x90,0x05,0x00,0x02,0x24,0x00,0x03,0x8b,0x34,
+0xff,0x00,0x63,0x30,0x04,0x03,0x8c,0x34,0xbd,0x00,0x8a,0x34,0x03,0x00,0x86,0x34,
+0x40,0x00,0x85,0x34,0xfc,0x77,0x09,0x24,0x11,0x00,0x62,0x10,0x23,0x00,0x84,0x34,
+0x00,0x00,0xc2,0x90,0xfe,0xff,0x03,0x24,0x24,0x10,0x43,0x00,0x00,0x00,0xc2,0xa0,
+0x22,0x00,0x02,0x24,0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad,0x00,0x00,0x82,0xa0,
+0xfc,0x37,0x02,0x24,0x00,0x00,0xa9,0xa4,0x00,0x00,0xa2,0xa4,0x00,0x00,0xa9,0xa4,
+0x00,0x00,0xa0,0xa4,0x00,0x00,0xa0,0xa4,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad,0x00,0x00,0x42,0x91,0x00,0x00,0x00,0x00,
+0x08,0x00,0x42,0x34,0x00,0x00,0x42,0xa1,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xd0,0xff,0xbd,0x27,0x28,0x00,0xb4,0xaf,0x2c,0x00,0xbf,0xaf,0x24,0x00,0xb3,0xaf,
+0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0xff,0xff,0x14,0x24,
+0x02,0x80,0x13,0x3c,0x41,0xb0,0x02,0x3c,0x78,0x1b,0x66,0x26,0x04,0x00,0x42,0x34,
+0x00,0x00,0x47,0x8c,0x0c,0x0b,0xc5,0x8c,0x02,0x80,0x03,0x3c,0x5e,0x43,0x64,0x90,
+0x08,0x0b,0xc8,0x8c,0x02,0x80,0x02,0x3c,0x80,0x43,0x49,0x90,0x25,0xb0,0x0a,0x3c,
+0x25,0x88,0xa7,0x00,0xb0,0x03,0x42,0x35,0x00,0x00,0x51,0xac,0x00,0x24,0x04,0x00,
+0x00,0x00,0x48,0xac,0x84,0x02,0x43,0x35,0x8c,0x02,0x45,0x35,0x01,0x00,0x02,0x24,
+0x00,0x00,0x71,0xac,0x00,0x00,0xa4,0xac,0x0a,0x03,0x22,0x11,0x0c,0x0b,0xd1,0xac,
+0x78,0x1b,0x64,0x26,0x08,0x0b,0x82,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x51,0x00,
+0x01,0x00,0x42,0x30,0x0e,0x00,0x40,0x10,0x78,0x1b,0x67,0x26,0x25,0xb0,0x0b,0x3c,
+0xb0,0x03,0x63,0x35,0x01,0x00,0x06,0x24,0x00,0x00,0x66,0xac,0x04,0x00,0x62,0x35,
+0x00,0x00,0x4a,0x8c,0x0c,0x0b,0x83,0x8c,0x40,0x00,0x02,0x3c,0x24,0x10,0x42,0x01,
+0x01,0x00,0x63,0x38,0x18,0x01,0x40,0x10,0x0c,0x0b,0x83,0xac,0x78,0x1b,0x67,0x26,
+0x08,0x0b,0xe8,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x11,0x01,0x04,0x00,0x42,0x30,
+0x18,0x00,0x40,0x10,0x78,0x1b,0x70,0x26,0x25,0xb0,0x03,0x3c,0xb0,0x03,0x64,0x34,
+0x04,0x00,0x02,0x24,0x00,0x00,0x82,0xac,0x0c,0x0b,0xe2,0x8c,0xfc,0x00,0x63,0x34,
+0xe4,0x0a,0xe5,0x94,0x8c,0x25,0xe4,0x8c,0x00,0x00,0x66,0x8c,0x04,0x00,0x42,0x38,
+0x21,0x50,0x85,0x00,0x0a,0x00,0xca,0x10,0x0c,0x0b,0xe2,0xac,0x02,0x80,0x05,0x3c,
+0x44,0x44,0xa2,0x8c,0xfb,0xff,0x04,0x24,0x24,0x20,0x04,0x01,0x00,0x10,0x42,0x34,
+0x41,0xb0,0x03,0x3c,0x44,0x44,0xa2,0xac,0x00,0x00,0x64,0xac,0x08,0x0b,0xe4,0xac,
+0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x24,0x20,0x51,0x00,
+0x08,0x00,0x83,0x30,0x06,0x00,0x60,0x10,0x10,0x00,0x82,0x30,0x0c,0x0b,0x02,0x8e,
+0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x38,0x0c,0x0b,0x02,0xae,0x10,0x00,0x82,0x30,
+0x06,0x00,0x40,0x10,0x20,0x00,0x82,0x30,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,
+0x10,0x00,0x42,0x38,0x0c,0x0b,0x02,0xae,0x20,0x00,0x82,0x30,0x06,0x00,0x40,0x10,
+0x40,0x00,0x82,0x30,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x38,
+0x0c,0x0b,0x02,0xae,0x40,0x00,0x82,0x30,0x06,0x00,0x40,0x10,0x80,0x00,0x82,0x30,
+0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x38,0x0c,0x0b,0x02,0xae,
+0x80,0x00,0x82,0x30,0x06,0x00,0x40,0x10,0x00,0x01,0x82,0x30,0x0c,0x0b,0x02,0x8e,
+0x00,0x00,0x00,0x00,0x80,0x00,0x42,0x38,0x0c,0x0b,0x02,0xae,0x00,0x01,0x82,0x30,
+0x06,0x00,0x40,0x10,0x00,0x02,0x82,0x30,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,
+0x00,0x01,0x42,0x38,0x0c,0x0b,0x02,0xae,0x00,0x02,0x82,0x30,0x06,0x00,0x40,0x10,
+0x00,0x04,0x82,0x30,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x00,0x02,0x42,0x38,
+0x0c,0x0b,0x02,0xae,0x00,0x04,0x82,0x30,0x05,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x00,0x04,0x42,0x38,0x0c,0x0b,0x02,0xae,
+0x00,0x08,0x82,0x30,0x7a,0x02,0x40,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x70,0x26,
+0x08,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x24,0x10,0x51,0x00,0x00,0x10,0x42,0x30,
+0x50,0x02,0x40,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x70,0x26,0x08,0x0b,0x03,0x8e,
+0x00,0x00,0x00,0x00,0x24,0x10,0x71,0x00,0x00,0x20,0x42,0x30,0x42,0x02,0x40,0x14,
+0x00,0x00,0x00,0x00,0x24,0x10,0x71,0x00,0x00,0x80,0x42,0x30,0xf6,0x00,0x40,0x14,
+0x01,0x00,0x12,0x3c,0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,
+0x24,0x10,0x51,0x00,0x24,0x10,0x54,0x00,0x24,0x10,0x52,0x00,0x20,0x01,0x40,0x14,
+0x00,0x00,0x00,0x00,0x08,0x0b,0x02,0x8e,0x02,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,
+0x24,0x10,0x52,0x00,0x48,0x01,0x40,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x70,0x26,
+0x08,0x0b,0x02,0x8e,0x04,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x54,0x00,
+0x24,0x10,0x52,0x00,0x71,0x01,0x40,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x70,0x26,
+0x08,0x0b,0x02,0x8e,0x08,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x52,0x00,
+0x98,0x01,0x40,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e,
+0x10,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x54,0x00,0x24,0x10,0x52,0x00,
+0xc1,0x01,0x40,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e,
+0x20,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x52,0x00,0xe8,0x01,0x40,0x14,
+0x00,0x00,0x00,0x00,0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e,0x40,0x00,0x12,0x3c,
+0x24,0x10,0x51,0x00,0x24,0x10,0x54,0x00,0x24,0x10,0x52,0x00,0x9a,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0x78,0x1b,0x68,0x26,0x08,0x0b,0x07,0x8d,0x00,0x04,0x05,0x3c,
+0x24,0x10,0xf1,0x00,0x24,0x10,0x45,0x00,0x1b,0x00,0x40,0x10,0x78,0x1b,0x66,0x26,
+0x2a,0xb0,0x02,0x3c,0x2c,0x00,0x42,0x34,0x00,0x00,0x4a,0x8c,0xff,0x00,0x02,0x24,
+0xff,0x00,0x43,0x31,0x58,0x02,0x62,0x10,0x02,0x80,0x06,0x3c,0x44,0x44,0xc4,0x8c,
+0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x00,0x80,0x84,0x34,0x27,0x28,0x05,0x00,
+0x00,0x00,0x44,0xac,0x24,0x28,0xe5,0x00,0x41,0xb0,0x03,0x3c,0x02,0x80,0x02,0x3c,
+0x00,0x00,0x65,0xac,0x44,0x44,0xc4,0xac,0x08,0x0b,0x05,0xad,0x9a,0x43,0x40,0xa4,
+0x78,0x1b,0x62,0x26,0x0c,0x0b,0x43,0x8c,0x00,0x04,0x04,0x3c,0x26,0x18,0x64,0x00,
+0x0c,0x0b,0x43,0xac,0x78,0x1b,0x66,0x26,0x08,0x0b,0xc7,0x8c,0x00,0x08,0x04,0x3c,
+0x24,0x28,0xf1,0x00,0x24,0x10,0xa4,0x00,0x08,0x00,0x40,0x10,0x80,0x00,0x08,0x3c,
+0x0c,0x0b,0xc3,0x8c,0x25,0xb0,0x02,0x3c,0xb0,0x03,0x42,0x34,0x26,0x18,0x64,0x00,
+0x00,0x00,0x44,0xac,0x0c,0x0b,0xc3,0xac,0x80,0x00,0x08,0x3c,0x24,0x10,0xa8,0x00,
+0x21,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x0c,0x0b,0xc3,0x8c,0x25,0xb0,0x09,0x3c,
+0xb0,0x03,0x2a,0x35,0x2a,0xb0,0x02,0x3c,0x00,0x00,0x43,0xad,0x36,0x00,0x42,0x34,
+0x00,0x00,0x43,0x90,0x23,0xb0,0x04,0x3c,0xff,0x1f,0x02,0x3c,0xc0,0x18,0x03,0x00,
+0xf0,0x07,0x63,0x30,0xbc,0x25,0xc5,0x8c,0x21,0x18,0x64,0x00,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x2a,0x02,0x65,0x10,0xc0,0x25,0xc3,0xac,0x02,0x80,0x05,0x3c,
+0x44,0x44,0xa3,0x8c,0x27,0x20,0x08,0x00,0x24,0x20,0xe4,0x00,0x00,0x08,0x63,0x34,
+0x41,0xb0,0x02,0x3c,0x00,0x00,0x43,0xad,0x00,0x00,0x44,0xac,0x44,0x44,0xa3,0xac,
+0x08,0x0b,0xc4,0xac,0x78,0x1b,0x62,0x26,0x0c,0x0b,0x43,0x8c,0x80,0x00,0x04,0x3c,
+0x26,0x18,0x64,0x00,0x0c,0x0b,0x43,0xac,0x78,0x1b,0x66,0x26,0x08,0x0b,0xc3,0x8c,
+0x00,0x01,0x04,0x3c,0x24,0x28,0x71,0x00,0x24,0x10,0xa4,0x00,0x06,0x00,0x40,0x10,
+0x25,0xb0,0x02,0x3c,0x0c,0x0b,0xc3,0x8c,0xb0,0x03,0x42,0x34,0x26,0x18,0x64,0x00,
+0x00,0x00,0x44,0xac,0x0c,0x0b,0xc3,0xac,0x00,0x02,0x04,0x3c,0x24,0x10,0xa4,0x00,
+0x08,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,0x0c,0x0b,0xc2,0x8c,0x25,0xb0,0x03,0x3c,
+0xb0,0x03,0x63,0x34,0x26,0x10,0x44,0x00,0x0c,0x0b,0xc2,0xac,0x00,0x00,0x64,0xac,
+0x02,0x80,0x02,0x3c,0x52,0x43,0x43,0x90,0x01,0x00,0x02,0x24,0x0f,0x00,0x63,0x30,
+0xf1,0x01,0x62,0x10,0x00,0x00,0x00,0x00,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x30,0x00,0xbd,0x27,0x20,0xbd,0x02,0x3c,0xec,0x02,0x65,0x35,
+0x4d,0x00,0x68,0x35,0xf1,0x02,0x69,0x35,0x08,0x00,0x07,0x24,0x78,0x02,0x42,0x34,
+0x00,0x00,0x46,0xa4,0x00,0x00,0x00,0xa1,0x00,0x00,0x27,0xa1,0x00,0x00,0xa0,0xac,
+0x00,0x00,0xa2,0x8c,0xff,0x00,0x03,0x3c,0x80,0x00,0x04,0x3c,0xff,0x00,0x4a,0x30,
+0x25,0x50,0x43,0x01,0x24,0x20,0x44,0x01,0xf2,0x02,0x66,0x35,0x0a,0x00,0x6a,0x35,
+0x80,0xff,0x02,0x24,0x00,0x00,0x00,0xa1,0x00,0x00,0x27,0xa1,0x00,0x00,0xa3,0xac,
+0x00,0x00,0xa3,0xac,0x00,0x00,0xc0,0xa0,0x00,0x00,0x42,0xa1,0x04,0x00,0x80,0x10,
+0x02,0x00,0x62,0x35,0x84,0xff,0x02,0x24,0x00,0x00,0x42,0xa1,0x02,0x00,0x62,0x35,
+0x00,0x00,0x43,0x94,0xff,0xbf,0x04,0x24,0x24,0x18,0x64,0x00,0x00,0x00,0x43,0xa4,
+0xd8,0x22,0x00,0x08,0x78,0x1b,0x67,0x26,0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xc0,0x00,0x00,0x0c,0x07,0x00,0x04,0x24,0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30,
+0xff,0x00,0x02,0x24,0x1b,0x00,0x62,0x10,0xff,0x00,0x43,0x31,0x20,0x25,0x05,0x8e,
+0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,
+0xb4,0x24,0x03,0xae,0x06,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x70,0x24,0x0a,0xa2,
+0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x06,0x3c,0x02,0x80,0x07,0x3c,
+0x44,0x44,0xc3,0x8c,0x54,0x44,0xe4,0x90,0x08,0x0b,0x05,0x8e,0x60,0x00,0x02,0x3c,
+0x27,0x10,0x02,0x00,0x24,0x28,0xa2,0x00,0x00,0x04,0x63,0x34,0x02,0x00,0x84,0x34,
+0x41,0xb0,0x02,0x3c,0x44,0x44,0xc3,0xac,0x54,0x44,0xe4,0xa0,0x00,0x00,0x45,0xac,
+0x08,0x0b,0x05,0xae,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x26,0x10,0x52,0x00,
+0x79,0x23,0x00,0x08,0x0c,0x0b,0x02,0xae,0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xc0,0x00,0x00,0x0c,0x21,0x20,0x00,0x00,0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30,
+0xff,0x00,0x02,0x24,0x1e,0x00,0x62,0x10,0xff,0x00,0x43,0x31,0xfc,0x24,0x05,0x8e,
+0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,
+0x90,0x24,0x03,0xae,0x03,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x54,0x24,0x0a,0xa2,
+0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x07,0x3c,0x02,0x80,0x08,0x3c,
+0x44,0x44,0xe5,0x8c,0x54,0x44,0x06,0x91,0x08,0x0b,0x04,0x8e,0x01,0x00,0x09,0x3c,
+0x00,0x80,0x22,0x35,0x27,0x10,0x02,0x00,0x80,0xff,0x03,0x24,0x24,0x20,0x82,0x00,
+0x25,0x30,0xc3,0x00,0x80,0x00,0xa5,0x34,0x41,0xb0,0x02,0x3c,0x44,0x44,0xe5,0xac,
+0x54,0x44,0x06,0xa1,0x27,0xa0,0x09,0x00,0x00,0x00,0x44,0xac,0x08,0x0b,0x04,0xae,
+0x0c,0x0b,0x02,0x8e,0x01,0x00,0x12,0x3c,0x00,0x80,0x42,0x38,0x0c,0x0b,0x02,0xae,
+0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x24,0x10,0x51,0x00,
+0x24,0x10,0x54,0x00,0x24,0x10,0x52,0x00,0xe2,0xfe,0x40,0x10,0x00,0x00,0x00,0x00,
+0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x0c,0x01,0x00,0x04,0x24,
+0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30,0xff,0x00,0x02,0x24,0x1b,0x00,0x62,0x10,
+0xff,0x00,0x43,0x31,0xfc,0x24,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0x90,0x24,0x03,0xae,0x03,0x00,0x04,0x24,
+0x40,0x00,0x07,0x24,0x58,0x24,0x0a,0xa2,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x02,0x80,0x06,0x3c,0x02,0x80,0x07,0x3c,0x44,0x44,0xc3,0x8c,0x54,0x44,0xe4,0x90,
+0x08,0x0b,0x05,0x8e,0x00,0x80,0x42,0x36,0x27,0x10,0x02,0x00,0x24,0x28,0xa2,0x00,
+0x80,0x00,0x63,0x34,0x40,0x00,0x84,0x34,0x41,0xb0,0x02,0x3c,0x44,0x44,0xc3,0xac,
+0x54,0x44,0xe4,0xa0,0x00,0x00,0x45,0xac,0x08,0x0b,0x05,0xae,0x0c,0x0b,0x02,0x8e,
+0x00,0x00,0x00,0x00,0x26,0x10,0x52,0x00,0x0c,0x0b,0x02,0xae,0x78,0x1b,0x70,0x26,
+0x08,0x0b,0x02,0x8e,0x02,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x52,0x00,
+0xbb,0xfe,0x40,0x10,0x00,0x00,0x00,0x00,0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xc0,0x00,0x00,0x0c,0x02,0x00,0x04,0x24,0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30,
+0xff,0x00,0x02,0x24,0x1d,0x00,0x62,0x10,0xff,0x00,0x43,0x31,0x08,0x25,0x05,0x8e,
+0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,
+0x9c,0x24,0x03,0xae,0x04,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x5c,0x24,0x0a,0xa2,
+0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x06,0x3c,0x44,0x44,0xc3,0x8c,
+0x02,0x80,0x07,0x3c,0x54,0x44,0xe4,0x90,0x08,0x0b,0x05,0x8e,0x06,0x00,0x02,0x3c,
+0x27,0x10,0x02,0x00,0x00,0x01,0x63,0x34,0x24,0x28,0xa2,0x00,0x44,0x44,0xc3,0xac,
+0x20,0x00,0x84,0x34,0x41,0xb0,0x02,0x3c,0x04,0x00,0x03,0x3c,0x54,0x44,0xe4,0xa0,
+0x26,0xa0,0x83,0x02,0x00,0x00,0x45,0xac,0x08,0x0b,0x05,0xae,0x0c,0x0b,0x02,0x8e,
+0x00,0x00,0x00,0x00,0x26,0x10,0x52,0x00,0x0c,0x0b,0x02,0xae,0x78,0x1b,0x70,0x26,
+0x08,0x0b,0x02,0x8e,0x04,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x54,0x00,
+0x24,0x10,0x52,0x00,0x92,0xfe,0x40,0x10,0x00,0x00,0x00,0x00,0x86,0x20,0x00,0x0c,
+0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x0c,0x03,0x00,0x04,0x24,0x21,0x50,0x40,0x00,
+0xff,0x00,0x43,0x30,0xff,0x00,0x02,0x24,0x1b,0x00,0x62,0x10,0xff,0x00,0x43,0x31,
+0x08,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,
+0x21,0x30,0x60,0x00,0x9c,0x24,0x03,0xae,0x04,0x00,0x04,0x24,0x40,0x00,0x07,0x24,
+0x60,0x24,0x0a,0xa2,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x06,0x3c,
+0x02,0x80,0x07,0x3c,0x44,0x44,0xc3,0x8c,0x54,0x44,0xe4,0x90,0x08,0x0b,0x05,0x8e,
+0x06,0x00,0x02,0x3c,0x27,0x10,0x02,0x00,0x24,0x28,0xa2,0x00,0x00,0x01,0x63,0x34,
+0x10,0x00,0x84,0x34,0x41,0xb0,0x02,0x3c,0x44,0x44,0xc3,0xac,0x54,0x44,0xe4,0xa0,
+0x00,0x00,0x45,0xac,0x08,0x0b,0x05,0xae,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,
+0x26,0x10,0x52,0x00,0x0c,0x0b,0x02,0xae,0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e,
+0x08,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x52,0x00,0x6b,0xfe,0x40,0x10,
+0x00,0x00,0x00,0x00,0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x0c,
+0x04,0x00,0x04,0x24,0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30,0xff,0x00,0x02,0x24,
+0x1d,0x00,0x62,0x10,0xff,0x00,0x43,0x31,0x14,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,
+0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0xa8,0x24,0x03,0xae,
+0x05,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x64,0x24,0x0a,0xa2,0xc3,0x01,0x00,0x0c,
+0x10,0x00,0xa0,0xaf,0x02,0x80,0x06,0x3c,0x44,0x44,0xc3,0x8c,0x02,0x80,0x07,0x3c,
+0x54,0x44,0xe4,0x90,0x08,0x0b,0x05,0x8e,0x18,0x00,0x02,0x3c,0x27,0x10,0x02,0x00,
+0x00,0x02,0x63,0x34,0x24,0x28,0xa2,0x00,0x44,0x44,0xc3,0xac,0x08,0x00,0x84,0x34,
+0x41,0xb0,0x02,0x3c,0x10,0x00,0x03,0x3c,0x54,0x44,0xe4,0xa0,0x26,0xa0,0x83,0x02,
+0x00,0x00,0x45,0xac,0x08,0x0b,0x05,0xae,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,
+0x26,0x10,0x52,0x00,0x0c,0x0b,0x02,0xae,0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e,
+0x10,0x00,0x12,0x3c,0x24,0x10,0x51,0x00,0x24,0x10,0x54,0x00,0x24,0x10,0x52,0x00,
+0x42,0xfe,0x40,0x10,0x00,0x00,0x00,0x00,0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xc0,0x00,0x00,0x0c,0x05,0x00,0x04,0x24,0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30,
+0xff,0x00,0x02,0x24,0x1b,0x00,0x62,0x10,0xff,0x00,0x43,0x31,0x14,0x25,0x05,0x8e,
+0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,
+0xa8,0x24,0x03,0xae,0x05,0x00,0x04,0x24,0x40,0x00,0x07,0x24,0x68,0x24,0x0a,0xa2,
+0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x06,0x3c,0x02,0x80,0x07,0x3c,
+0x44,0x44,0xc3,0x8c,0x54,0x44,0xe4,0x90,0x08,0x0b,0x05,0x8e,0x18,0x00,0x02,0x3c,
+0x27,0x10,0x02,0x00,0x24,0x28,0xa2,0x00,0x00,0x02,0x63,0x34,0x01,0x00,0x84,0x34,
+0x41,0xb0,0x02,0x3c,0x44,0x44,0xc3,0xac,0x54,0x44,0xe4,0xa0,0x00,0x00,0x45,0xac,
+0x08,0x0b,0x05,0xae,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x26,0x10,0x52,0x00,
+0x0c,0x0b,0x02,0xae,0x78,0x1b,0x70,0x26,0x08,0x0b,0x02,0x8e,0x20,0x00,0x12,0x3c,
+0x24,0x10,0x51,0x00,0x24,0x10,0x52,0x00,0x1b,0xfe,0x40,0x10,0x00,0x00,0x00,0x00,
+0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00,0xc0,0x00,0x00,0x0c,0x06,0x00,0x04,0x24,
+0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30,0xff,0x00,0x02,0x24,0x1d,0x00,0x62,0x10,
+0xff,0x00,0x43,0x31,0x20,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,
+0x21,0x18,0x62,0x00,0x21,0x30,0x60,0x00,0xb4,0x24,0x03,0xae,0x06,0x00,0x04,0x24,
+0x40,0x00,0x07,0x24,0x6c,0x24,0x0a,0xa2,0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,
+0x02,0x80,0x06,0x3c,0x44,0x44,0xc3,0x8c,0x02,0x80,0x07,0x3c,0x54,0x44,0xe4,0x90,
+0x08,0x0b,0x05,0x8e,0x60,0x00,0x02,0x3c,0x27,0x10,0x02,0x00,0x00,0x04,0x63,0x34,
+0x24,0x28,0xa2,0x00,0x44,0x44,0xc3,0xac,0x04,0x00,0x84,0x34,0x41,0xb0,0x02,0x3c,
+0x40,0x00,0x03,0x3c,0x54,0x44,0xe4,0xa0,0x26,0xa0,0x83,0x02,0x00,0x00,0x45,0xac,
+0x08,0x0b,0x05,0xae,0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x26,0x10,0x52,0x00,
+0x71,0x23,0x00,0x08,0x0c,0x0b,0x02,0xae,0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x0c,0x0b,0x02,0x8e,0x08,0x0b,0x03,0x8e,0x00,0x20,0x42,0x38,0x41,0x23,0x00,0x08,
+0x0c,0x0b,0x02,0xae,0x86,0x20,0x00,0x0c,0x00,0x00,0x00,0x00,0xf4,0x00,0x00,0x0c,
+0x01,0x00,0x04,0x24,0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30,0xff,0x00,0x02,0x24,
+0x16,0x00,0x62,0x10,0xff,0x00,0x43,0x31,0x44,0x25,0x05,0x8e,0x20,0x10,0x02,0x3c,
+0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0xd8,0x24,0x03,0xae,0x21,0x30,0x60,0x00,
+0x01,0x00,0x04,0x24,0x78,0x24,0x0a,0xa2,0x40,0x00,0x07,0x24,0xc3,0x01,0x00,0x0c,
+0x10,0x00,0xa0,0xaf,0x02,0x80,0x05,0x3c,0x44,0x44,0xa3,0x8c,0x08,0x0b,0x04,0x8e,
+0xff,0xc7,0x02,0x24,0x10,0x00,0x63,0x34,0x24,0x20,0x82,0x00,0x41,0xb0,0x02,0x3c,
+0x44,0x44,0xa3,0xac,0x00,0x00,0x44,0xac,0x08,0x0b,0x04,0xae,0x0c,0x0b,0x02,0x8e,
+0x00,0x00,0x00,0x00,0x00,0x10,0x42,0x38,0x3a,0x23,0x00,0x08,0x0c,0x0b,0x02,0xae,
+0xf4,0x00,0x00,0x0c,0x21,0x20,0x00,0x00,0x21,0x50,0x40,0x00,0xff,0x00,0x43,0x30,
+0xff,0x00,0x02,0x24,0x16,0x00,0x62,0x10,0xff,0x00,0x43,0x31,0x2c,0x25,0x05,0x8e,
+0x20,0x10,0x02,0x3c,0x00,0x1a,0x03,0x00,0x21,0x18,0x62,0x00,0xc0,0x24,0x03,0xae,
+0x21,0x30,0x60,0x00,0x21,0x20,0x00,0x00,0x74,0x24,0x0a,0xa2,0x40,0x00,0x07,0x24,
+0xc3,0x01,0x00,0x0c,0x10,0x00,0xa0,0xaf,0x02,0x80,0x05,0x3c,0x44,0x44,0xa3,0x8c,
+0x08,0x0b,0x04,0x8e,0xff,0xc7,0x02,0x24,0x04,0x00,0x63,0x34,0x24,0x20,0x82,0x00,
+0x41,0xb0,0x02,0x3c,0x44,0x44,0xa3,0xac,0x00,0x00,0x44,0xac,0x08,0x0b,0x04,0xae,
+0x0c,0x0b,0x02,0x8e,0x00,0x00,0x00,0x00,0x00,0x08,0x42,0x38,0x33,0x23,0x00,0x08,
+0x0c,0x0b,0x02,0xae,0x56,0x01,0x42,0x35,0x00,0x00,0x43,0x94,0x00,0x00,0x00,0x00,
+0xf3,0xfc,0x60,0x10,0x00,0x00,0x00,0x00,0xde,0x4f,0x00,0x0c,0x07,0x00,0x04,0x24,
+0xc5,0x22,0x00,0x08,0x78,0x1b,0x64,0x26,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x79,0x22,0x00,0x08,0x30,0x00,0xbd,0x27,0x25,0xb0,0x02,0x3c,0x01,0x00,0x03,0x24,
+0x90,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x95,0x23,0x00,0x08,0x78,0x1b,0x62,0x26,
+0xd0,0x03,0x23,0x35,0x80,0x00,0x02,0x24,0x00,0x00,0x62,0xac,0xc6,0x23,0x00,0x08,
+0x78,0x1b,0x62,0x26,0xe0,0xff,0xbd,0x27,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,
+0x10,0x00,0xb0,0xaf,0x25,0xb0,0x0c,0x3c,0x01,0x80,0x02,0x3c,0x18,0x03,0x83,0x35,
+0xa4,0x97,0x42,0x24,0x02,0x80,0x11,0x3c,0x41,0xb0,0x0b,0x3c,0x00,0x00,0x62,0xac,
+0x78,0x1b,0x2a,0x26,0x0a,0x00,0x62,0x35,0x00,0x00,0x44,0x94,0x16,0x0b,0x43,0x95,
+0x14,0x0b,0x49,0x95,0x25,0x30,0x64,0x00,0xff,0xff,0xd0,0x30,0x24,0x10,0x09,0x02,
+0x02,0x00,0x42,0x30,0x9e,0x00,0x40,0x10,0xc0,0x03,0x83,0x35,0x02,0x00,0x02,0x24,
+0x00,0x00,0x62,0xac,0x02,0x80,0x08,0x3c,0x44,0x44,0x04,0x8d,0xdc,0x02,0x82,0x35,
+0x00,0x00,0x47,0x90,0xfd,0xff,0x03,0x24,0x00,0x80,0x02,0x3c,0x24,0x18,0x23,0x01,
+0x25,0x20,0x82,0x00,0x02,0x00,0xc6,0x38,0x08,0x00,0x65,0x35,0x02,0x80,0x02,0x3c,
+0x99,0x44,0x47,0xa0,0x44,0x44,0x04,0xad,0x16,0x0b,0x46,0xa5,0x21,0x48,0x60,0x00,
+0x00,0x00,0xa3,0xa4,0x14,0x0b,0x43,0xa5,0x24,0x38,0x09,0x02,0x04,0x00,0xe2,0x30,
+0x0a,0x00,0x40,0x10,0x08,0x00,0xe2,0x30,0x16,0x0b,0x43,0x95,0x0c,0x00,0x64,0x35,
+0xc0,0x03,0x85,0x35,0x04,0x00,0x63,0x38,0x04,0x00,0x02,0x24,0x00,0x00,0x86,0x8c,
+0x00,0x00,0xa2,0xac,0x16,0x0b,0x43,0xa5,0x08,0x00,0xe2,0x30,0x08,0x00,0x40,0x10,
+0x10,0x00,0xe2,0x30,0x16,0x0b,0x42,0x95,0xc0,0x03,0x84,0x35,0x08,0x00,0x03,0x24,
+0x08,0x00,0x42,0x38,0x00,0x00,0x83,0xac,0x16,0x0b,0x42,0xa5,0x10,0x00,0xe2,0x30,
+0x3a,0x00,0x40,0x10,0x78,0x1b,0x29,0x26,0xc0,0x03,0x84,0x35,0x10,0x00,0x02,0x24,
+0x00,0x00,0x82,0xac,0x16,0x0b,0x43,0x95,0x02,0x80,0x05,0x3c,0xba,0x44,0xa4,0x90,
+0x10,0x00,0x63,0x38,0x02,0x80,0x02,0x3c,0x16,0x0b,0x43,0xa5,0x7c,0x44,0x47,0x24,
+0x69,0x00,0x80,0x14,0x21,0x30,0x00,0x00,0xe8,0x0a,0x42,0x91,0x00,0x00,0x00,0x00,
+0x01,0x00,0x42,0x30,0x69,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x02,0x80,0x04,0x3c,
+0x98,0x44,0x82,0x90,0x00,0x00,0x00,0x00,0x64,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x98,0x44,0x82,0x90,0x02,0x00,0x03,0x24,0xff,0x00,0x42,0x30,0x66,0x00,0x43,0x10,
+0x00,0x00,0x00,0x00,0x98,0x44,0x82,0x90,0x03,0x00,0x03,0x24,0xff,0x00,0x42,0x30,
+0x61,0x00,0x43,0x10,0x02,0x80,0x05,0x3c,0xb2,0x44,0xa2,0x90,0x02,0x80,0x03,0x3c,
+0x02,0x00,0x04,0x24,0x10,0x00,0x42,0x34,0xb2,0x44,0xa2,0xa0,0x9d,0x44,0x66,0x90,
+0x21,0x28,0x00,0x00,0x0c,0x00,0xe0,0xac,0xff,0x00,0xc6,0x30,0x71,0x14,0x00,0x0c,
+0x00,0x32,0x06,0x00,0x42,0xb0,0x02,0x3c,0x03,0x00,0x42,0x34,0x44,0x00,0x04,0x24,
+0x00,0x00,0x44,0xa0,0x02,0x80,0x03,0x3c,0x9a,0x44,0x62,0x90,0x00,0x00,0x00,0x00,
+0x0f,0x00,0x42,0x30,0x04,0x00,0x42,0x28,0x04,0x00,0x40,0x10,0x78,0x1b,0x29,0x26,
+0xf9,0x1f,0x00,0x0c,0x04,0x00,0x04,0x24,0x78,0x1b,0x29,0x26,0x14,0x0b,0x27,0x95,
+0x00,0x00,0x00,0x00,0x24,0x28,0x07,0x02,0x20,0x00,0xa2,0x30,0x09,0x00,0x40,0x10,
+0x80,0x00,0xa2,0x30,0x16,0x0b,0x22,0x95,0x25,0xb0,0x03,0x3c,0x20,0x00,0x04,0x24,
+0x20,0x00,0x42,0x38,0xc0,0x03,0x63,0x34,0x00,0x00,0x64,0xac,0x16,0x0b,0x22,0xa5,
+0x80,0x00,0xa2,0x30,0x17,0x00,0x40,0x10,0x24,0x10,0x07,0x02,0x02,0x80,0x08,0x3c,
+0x44,0x44,0x04,0x8d,0x16,0x0b,0x26,0x95,0x25,0xb0,0x03,0x3c,0x10,0x00,0x02,0x3c,
+0x7f,0xff,0x05,0x24,0x24,0x28,0xe5,0x00,0x25,0x20,0x82,0x00,0xb0,0x03,0x67,0x34,
+0x80,0x00,0x02,0x24,0xc0,0x03,0x63,0x34,0x00,0x00,0x62,0xac,0x41,0xb0,0x02,0x3c,
+0x80,0x00,0xc6,0x38,0x08,0x00,0x42,0x34,0x00,0x00,0xe4,0xac,0x16,0x0b,0x26,0xa5,
+0x44,0x44,0x04,0xad,0x21,0x38,0xa0,0x00,0x00,0x00,0x45,0xa4,0x14,0x0b,0x25,0xa5,
+0x24,0x10,0x07,0x02,0x00,0x30,0x42,0x30,0x07,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,
+0x16,0x0b,0x22,0x95,0x00,0x00,0x00,0x00,0x00,0x10,0x42,0x38,0x00,0x20,0x42,0x34,
+0x16,0x0b,0x22,0xa5,0x02,0x80,0x02,0x3c,0x52,0x43,0x43,0x90,0x01,0x00,0x02,0x24,
+0x0f,0x00,0x63,0x30,0x0f,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0x12,0x26,0x00,0x08,0x16,0x0b,0x46,0xa5,0xe8,0x0a,0x42,0x91,0xba,0x44,0xa0,0xa0,
+0x01,0x00,0x42,0x30,0x99,0xff,0x40,0x14,0x01,0x00,0x06,0x24,0x62,0x26,0x00,0x08,
+0x0c,0x00,0xe0,0xac,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x79,0x22,0x00,0x08,0x20,0x00,0xbd,0x27,0x02,0x80,0x04,0x3c,0xb5,0x44,0x82,0x90,
+0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x24,0xb5,0x44,0x82,0xa0,0xb5,0x44,0x83,0x90,
+0x00,0x00,0x00,0x00,0x07,0x00,0x60,0x10,0x02,0x80,0x02,0x3c,0x9e,0x44,0x43,0x90,
+0x00,0x00,0x00,0x00,0x03,0x00,0x60,0x14,0x00,0x00,0x00,0x00,0x12,0x00,0xc0,0x10,
+0x02,0x80,0x02,0x3c,0xb5,0x44,0x82,0x90,0x00,0x00,0x00,0x00,0x05,0x00,0x40,0x14,
+0x0c,0x00,0xe0,0xac,0x02,0x80,0x02,0x3c,0xb4,0x44,0x43,0x90,0x00,0x00,0x00,0x00,
+0xb5,0x44,0x83,0xa0,0x02,0x80,0x05,0x3c,0xb2,0x44,0xa2,0x90,0x02,0x80,0x03,0x3c,
+0x02,0x00,0x04,0x24,0x10,0x00,0x42,0x34,0xb2,0x44,0xa2,0xa0,0x9d,0x44,0x66,0x90,
+0x52,0x26,0x00,0x08,0x21,0x28,0x00,0x00,0x02,0x80,0x04,0x3c,0xac,0x44,0x83,0x8c,
+0xa4,0x44,0x45,0x8c,0xe4,0x02,0x86,0x35,0x21,0x18,0x65,0x00,0xac,0x44,0x83,0xac,
+0xac,0x44,0x82,0x8c,0x02,0x80,0x03,0x3c,0x00,0x00,0xc2,0xac,0xa0,0x44,0x62,0x94,
+0x00,0x00,0x00,0x00,0xff,0xff,0x42,0x30,0x40,0x10,0x02,0x00,0xf6,0xff,0x42,0x24,
+0x62,0x26,0x00,0x08,0x0c,0x00,0xe2,0xac,0xf8,0xff,0xbd,0x27,0x04,0x00,0xb1,0xaf,
+0x00,0x00,0xb0,0xaf,0x00,0x40,0x09,0x40,0x00,0x68,0x0a,0x40,0x00,0x70,0x02,0x40,
+0x00,0x60,0x0b,0x40,0x25,0xb0,0x05,0x3c,0x18,0x03,0xa7,0x34,0x00,0x00,0xe6,0x8c,
+0x01,0x80,0x02,0x3c,0x1c,0x03,0xa3,0x34,0x68,0x9b,0x42,0x24,0x00,0x00,0x66,0xac,
+0x00,0x00,0xe2,0xac,0x80,0x00,0x83,0x8c,0x7c,0x02,0xa2,0x34,0x80,0x02,0xa6,0x34,
+0x84,0x02,0xa7,0x34,0x88,0x02,0xa8,0x34,0x00,0x00,0x43,0xac,0x00,0x00,0xc9,0xac,
+0x00,0x00,0xea,0xac,0x00,0x00,0x0b,0xad,0x74,0x00,0x83,0x8c,0x8c,0x02,0xa2,0x34,
+0x90,0x02,0xa7,0x34,0x00,0x00,0x43,0xac,0x08,0x00,0x86,0x8c,0x94,0x02,0xa8,0x34,
+0x98,0x02,0xa9,0x34,0x00,0x00,0xe6,0xac,0x0c,0x00,0x82,0x8c,0x9c,0x02,0xa6,0x34,
+0xa0,0x02,0xa7,0x34,0x00,0x00,0x02,0xad,0x10,0x00,0x83,0x8c,0xa4,0x02,0xa8,0x34,
+0xa8,0x02,0xaa,0x34,0x00,0x00,0x23,0xad,0x14,0x00,0x82,0x8c,0xac,0x02,0xa9,0x34,
+0xb0,0x02,0xab,0x34,0x00,0x00,0xc2,0xac,0x18,0x00,0x83,0x8c,0xb4,0x02,0xa6,0x34,
+0xb8,0x02,0xac,0x34,0x00,0x00,0xe3,0xac,0x1c,0x00,0x82,0x8c,0xbc,0x02,0xa7,0x34,
+0xc0,0x02,0xad,0x34,0x00,0x00,0x02,0xad,0x20,0x00,0x83,0x8c,0xc4,0x02,0xa8,0x34,
+0xc8,0x02,0xae,0x34,0x00,0x00,0x43,0xad,0x24,0x00,0x82,0x8c,0xcc,0x02,0xaa,0x34,
+0xd0,0x02,0xaf,0x34,0x00,0x00,0x22,0xad,0x28,0x00,0x83,0x8c,0xd4,0x02,0xa9,0x34,
+0xd8,0x02,0xb0,0x34,0x00,0x00,0x63,0xad,0x2c,0x00,0x82,0x8c,0x70,0x02,0xab,0x34,
+0x74,0x02,0xb1,0x34,0x00,0x00,0xc2,0xac,0x30,0x00,0x83,0x8c,0x78,0x02,0xa5,0x34,
+0x00,0x00,0x83,0xad,0x34,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xe2,0xac,
+0x38,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xa3,0xad,0x3c,0x00,0x82,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x00,0x02,0xad,0x40,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0xc3,0xad,0x44,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x42,0xad,
+0x48,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0xe3,0xad,0x4c,0x00,0x82,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x00,0x22,0xad,0x50,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x03,0xae,0x54,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x62,0xad,
+0x58,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x23,0xae,0x5c,0x00,0x82,0x8c,
+0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0xac,0x42,0x27,0x00,0x08,0x00,0x00,0x00,0x00,
+0x01,0x80,0x1b,0x3c,0x10,0x9d,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,
+0x00,0x00,0x5b,0xaf,0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00,0x80,0xda,0x1b,0x00,
+0x08,0x00,0x7b,0x27,0x04,0x00,0x61,0xaf,0x08,0x00,0x62,0xaf,0x0c,0x00,0x63,0xaf,
+0x10,0x00,0x64,0xaf,0x14,0x00,0x65,0xaf,0x18,0x00,0x66,0xaf,0x1c,0x00,0x67,0xaf,
+0x20,0x00,0x68,0xaf,0x24,0x00,0x69,0xaf,0x28,0x00,0x6a,0xaf,0x2c,0x00,0x6b,0xaf,
+0x30,0x00,0x6c,0xaf,0x34,0x00,0x6d,0xaf,0x38,0x00,0x6e,0xaf,0x3c,0x00,0x6f,0xaf,
+0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40,0x40,0x00,0x70,0xaf,
+0x44,0x00,0x71,0xaf,0x48,0x00,0x72,0xaf,0x4c,0x00,0x73,0xaf,0x50,0x00,0x74,0xaf,
+0x54,0x00,0x75,0xaf,0x58,0x00,0x76,0xaf,0x5c,0x00,0x77,0xaf,0x60,0x00,0x78,0xaf,
+0x64,0x00,0x79,0xaf,0x68,0x00,0x7c,0xaf,0x6c,0x00,0x7d,0xaf,0x70,0x00,0x7e,0xaf,
+0x74,0x00,0x7f,0xaf,0x78,0x00,0x68,0xaf,0x7c,0x00,0x69,0xaf,0x80,0x00,0x6a,0xaf,
+0x00,0x68,0x1a,0x40,0x7f,0x00,0x5b,0x33,0x30,0x00,0x60,0x13,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x1b,0x3c,0x30,0x03,0x7b,0x37,0x00,0x00,0x00,0x00,0x00,0x00,0x7a,0xaf,
+0x00,0x00,0x00,0x00,0x21,0xd8,0xa0,0x03,0x82,0xda,0x1b,0x00,0x80,0xda,0x1b,0x00,
+0x08,0x00,0x7b,0x27,0x04,0x00,0x61,0xaf,0x08,0x00,0x62,0xaf,0x0c,0x00,0x63,0xaf,
+0x10,0x00,0x64,0xaf,0x14,0x00,0x65,0xaf,0x18,0x00,0x66,0xaf,0x1c,0x00,0x67,0xaf,
+0x20,0x00,0x68,0xaf,0x24,0x00,0x69,0xaf,0x28,0x00,0x6a,0xaf,0x2c,0x00,0x6b,0xaf,
+0x30,0x00,0x6c,0xaf,0x34,0x00,0x6d,0xaf,0x38,0x00,0x6e,0xaf,0x3c,0x00,0x6f,0xaf,
+0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x00,0x70,0x0a,0x40,0x40,0x00,0x70,0xaf,
+0x44,0x00,0x71,0xaf,0x48,0x00,0x72,0xaf,0x4c,0x00,0x73,0xaf,0x50,0x00,0x74,0xaf,
+0x54,0x00,0x75,0xaf,0x58,0x00,0x76,0xaf,0x5c,0x00,0x77,0xaf,0x60,0x00,0x78,0xaf,
+0x64,0x00,0x79,0xaf,0x68,0x00,0x7c,0xaf,0x6c,0x00,0x7d,0xaf,0x70,0x00,0x7e,0xaf,
+0x74,0x00,0x7f,0xaf,0x78,0x00,0x68,0xaf,0x7c,0x00,0x69,0xaf,0x80,0x00,0x6a,0xaf,
+0xda,0x26,0x00,0x08,0x21,0x20,0x60,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x08,0x3c,
+0x20,0x03,0x08,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x1a,0xad,0x00,0x04,0x5b,0x33,
+0x0a,0x00,0x60,0x13,0x00,0x00,0x00,0x00,0x01,0x80,0x08,0x3c,0x90,0x8a,0x08,0x25,
+0x00,0x00,0x00,0x00,0x25,0xb0,0x1b,0x3c,0x24,0x03,0x7b,0x37,0x00,0x00,0x00,0x00,
+0x00,0x00,0x68,0xaf,0x09,0xf8,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x08,0x5b,0x33,
+0x25,0xb0,0x08,0x3c,0x28,0x03,0x08,0x35,0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xad,
+0x06,0x00,0x60,0x13,0x00,0x00,0x00,0x00,0x01,0x80,0x08,0x3c,0xa4,0x97,0x08,0x25,
+0x00,0x00,0x00,0x00,0x09,0xf8,0x00,0x01,0x00,0x00,0x00,0x00,0x02,0x80,0x1a,0x3c,
+0x44,0x44,0x5a,0x27,0x04,0x00,0x5b,0x97,0x25,0xb0,0x08,0x3c,0x30,0x03,0x08,0x35,
+0x00,0x00,0x00,0x00,0x00,0x00,0x1b,0xad,0x18,0x00,0x60,0x13,0x00,0x00,0x00,0x00,
+0x08,0xe8,0x9b,0x27,0x00,0x00,0x00,0x00,0x04,0x00,0x61,0x8f,0xfc,0x03,0x70,0x7b,
+0x7c,0x00,0x62,0x7b,0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b,0x3c,0x01,0x68,0x7b,
+0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b,0xbc,0x01,0x6c,0x7b,
+0xfc,0x01,0x6e,0x7b,0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b,0xbc,0x02,0x74,0x7b,
+0xfc,0x02,0x76,0x7b,0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b,0xbc,0x03,0x7e,0x7b,
+0x80,0x00,0x7b,0x8f,0x2b,0x28,0x00,0x08,0x00,0x00,0x00,0x00,0x21,0xd8,0xa0,0x03,
+0x82,0xda,0x1b,0x00,0x80,0xda,0x1b,0x00,0x08,0x00,0x7b,0x27,0x08,0x00,0x5b,0xaf,
+0xfc,0xeb,0x9d,0x27,0x00,0x00,0x4a,0x8f,0x00,0x00,0x00,0x00,0x21,0x00,0x40,0x11,
+0x00,0x00,0x00,0x00,0x02,0x80,0x08,0x3c,0xa4,0x43,0x08,0x25,0x21,0x48,0x00,0x00,
+0x21,0x58,0x00,0x00,0x01,0x00,0x6b,0x25,0x1a,0x00,0x40,0x11,0x24,0x70,0x4b,0x01,
+0x14,0x00,0xc0,0x11,0x01,0x00,0x04,0x24,0x00,0x00,0x00,0x00,0x04,0x00,0x44,0xa3,
+0x26,0x50,0x4b,0x01,0x00,0x00,0x4a,0xaf,0x80,0x80,0x09,0x00,0x21,0x80,0x08,0x02,
+0x00,0x00,0x10,0x8e,0x00,0x00,0x00,0x00,0x09,0xf8,0x00,0x02,0x00,0x00,0x00,0x00,
+0x01,0x80,0x1b,0x3c,0xd8,0x9f,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,
+0x00,0x00,0x5b,0xaf,0x02,0x80,0x1a,0x3c,0x44,0x44,0x5a,0x27,0xe1,0xff,0x00,0x10,
+0x00,0x00,0x00,0x00,0x01,0x00,0x29,0x25,0x40,0x58,0x0b,0x00,0xee,0x27,0x00,0x08,
+0x00,0x00,0x00,0x00,0x02,0x80,0x1b,0x3c,0x44,0x44,0x7b,0x27,0x21,0x60,0x00,0x00,
+0x04,0x00,0x6c,0xa7,0x08,0x00,0x7a,0x8f,0x00,0x00,0x00,0x00,0xf8,0xff,0x5a,0x27,
+0x00,0x00,0x5a,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0x5a,0x27,0x84,0x00,0x44,0x8f,
+0x00,0x00,0x00,0x00,0xf9,0xff,0x80,0x10,0x00,0x00,0x00,0x00,0x04,0x00,0x41,0x8f,
+0xfc,0x03,0x50,0x7b,0x7c,0x00,0x42,0x7b,0xbc,0x00,0x44,0x7b,0xfc,0x00,0x46,0x7b,
+0x3c,0x01,0x48,0x7b,0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x4a,0x7b,
+0xbc,0x01,0x4c,0x7b,0xfc,0x01,0x4e,0x7b,0x3c,0x02,0x50,0x7b,0x7c,0x02,0x52,0x7b,
+0xbc,0x02,0x54,0x7b,0xfc,0x02,0x56,0x7b,0x3c,0x03,0x58,0x7b,0x7c,0x03,0x5c,0x7b,
+0xbc,0x03,0x5e,0x7b,0x80,0x00,0x5b,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0x60,0x03,
+0x10,0x00,0x00,0x42,0x00,0x60,0x05,0x40,0x42,0x28,0x05,0x00,0x40,0x28,0x05,0x00,
+0x00,0x60,0x85,0x40,0x04,0x00,0x81,0xac,0x08,0x00,0x82,0xac,0x0c,0x00,0x83,0xac,
+0x20,0x00,0x88,0xac,0x24,0x00,0x89,0xac,0x28,0x00,0x8a,0xac,0x2c,0x00,0x8b,0xac,
+0x30,0x00,0x8c,0xac,0x34,0x00,0x8d,0xac,0x38,0x00,0x8e,0xac,0x3c,0x00,0x8f,0xac,
+0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,0x40,0x00,0x90,0xac,0x44,0x00,0x91,0xac,
+0x48,0x00,0x92,0xac,0x4c,0x00,0x93,0xac,0x50,0x00,0x94,0xac,0x54,0x00,0x95,0xac,
+0x58,0x00,0x96,0xac,0x5c,0x00,0x97,0xac,0x60,0x00,0x98,0xac,0x64,0x00,0x99,0xac,
+0x68,0x00,0x9c,0xac,0x6c,0x00,0x9d,0xac,0x70,0x00,0x9e,0xac,0x74,0x00,0x9f,0xac,
+0x78,0x00,0x88,0xac,0x7c,0x00,0x89,0xac,0x80,0x00,0x9f,0xac,0xf8,0xff,0x84,0x24,
+0x00,0x00,0x84,0x8c,0x00,0x00,0x00,0x00,0x08,0x00,0x84,0x24,0x84,0x00,0x86,0x8c,
+0x00,0x00,0x00,0x00,0xf9,0xff,0xc0,0x10,0x00,0x00,0x00,0x00,0x21,0xd8,0x80,0x00,
+0x01,0x00,0xba,0x24,0x04,0x00,0x61,0x8f,0xfc,0x03,0x70,0x7b,0x7c,0x00,0x62,0x7b,
+0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b,0x3c,0x01,0x68,0x7b,0x13,0x00,0x00,0x02,
+0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b,0xbc,0x01,0x6c,0x7b,0xfc,0x01,0x6e,0x7b,
+0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b,0xbc,0x02,0x74,0x7b,0xfc,0x02,0x76,0x7b,
+0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b,0xbc,0x03,0x7e,0x7b,0x80,0x00,0x7b,0x8f,
+0x00,0x00,0x00,0x00,0x08,0x00,0x60,0x03,0x00,0x60,0x9a,0x40,0x00,0x60,0x05,0x40,
+0x42,0x28,0x05,0x00,0x40,0x28,0x05,0x00,0x00,0x60,0x85,0x40,0x04,0x00,0x81,0xac,
+0x08,0x00,0x82,0xac,0x0c,0x00,0x83,0xac,0x20,0x00,0x88,0xac,0x24,0x00,0x89,0xac,
+0x28,0x00,0x8a,0xac,0x2c,0x00,0x8b,0xac,0x30,0x00,0x8c,0xac,0x34,0x00,0x8d,0xac,
+0x38,0x00,0x8e,0xac,0x3c,0x00,0x8f,0xac,0x12,0x40,0x00,0x00,0x10,0x48,0x00,0x00,
+0x40,0x00,0x90,0xac,0x44,0x00,0x91,0xac,0x48,0x00,0x92,0xac,0x4c,0x00,0x93,0xac,
+0x50,0x00,0x94,0xac,0x54,0x00,0x94,0xac,0x58,0x00,0x96,0xac,0x5c,0x00,0x96,0xac,
+0x60,0x00,0x98,0xac,0x64,0x00,0x99,0xac,0x68,0x00,0x9c,0xac,0x6c,0x00,0x9d,0xac,
+0x70,0x00,0x9e,0xac,0x78,0x00,0x88,0xac,0x7c,0x00,0x89,0xac,0x80,0x00,0x9f,0xac,
+0x84,0x00,0x80,0xac,0xf8,0xff,0x84,0x24,0x00,0x00,0x84,0x8c,0x00,0x00,0x00,0x00,
+0x08,0x00,0x84,0x24,0x84,0x00,0x86,0x8c,0xfa,0xff,0xc0,0x10,0x00,0x00,0x00,0x00,
+0x21,0xd8,0x80,0x00,0x01,0x00,0xba,0x24,0x04,0x00,0x61,0x8f,0xfc,0x03,0x70,0x7b,
+0x7c,0x00,0x62,0x7b,0xbc,0x00,0x64,0x7b,0xfc,0x00,0x66,0x7b,0x3c,0x01,0x68,0x7b,
+0x13,0x00,0x00,0x02,0x11,0x00,0x20,0x02,0x7c,0x01,0x6a,0x7b,0xbc,0x01,0x6c,0x7b,
+0xfc,0x01,0x6e,0x7b,0x3c,0x02,0x70,0x7b,0x7c,0x02,0x72,0x7b,0xbc,0x02,0x74,0x7b,
+0xfc,0x02,0x76,0x7b,0x3c,0x03,0x78,0x7b,0x7c,0x03,0x7c,0x7b,0xbc,0x03,0x7e,0x7b,
+0x80,0x00,0x7b,0x8f,0x08,0x00,0x60,0x03,0x00,0x60,0x9a,0x40,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0xd7,0x41,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x1b,0x3c,0x00,0x00,0x7b,0x27,
+0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,0x00,0x00,0x05,0x24,
+0x03,0x00,0xa4,0x24,0x00,0xa0,0x80,0x40,0x00,0xa0,0x84,0x40,0x01,0x80,0x04,0x3c,
+0x98,0x03,0x84,0x24,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x01,0x80,0x1b,0x3c,0x98,0x03,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,
+0x00,0x00,0x5b,0xaf,0x02,0x80,0x1a,0x3c,0x00,0x00,0x5a,0x27,0xfc,0x03,0x5d,0x27,
+0x02,0x80,0x1c,0x3c,0x00,0x18,0x9c,0x27,0x00,0xf0,0x08,0x3c,0x00,0x0c,0x08,0x35,
+0x00,0x60,0x88,0x40,0x02,0x80,0x04,0x3c,0x00,0x00,0x84,0x24,0xff,0x7f,0x05,0x3c,
+0xff,0xff,0xa5,0x34,0x24,0x20,0x85,0x00,0x00,0x20,0x84,0x4c,0xff,0xff,0x05,0x34,
+0x21,0x28,0xa4,0x00,0x00,0x28,0x85,0x4c,0x02,0x80,0x08,0x3c,0x00,0x00,0x08,0x25,
+0x00,0x00,0x00,0xad,0x03,0x80,0x09,0x3c,0x7c,0xc3,0x29,0x25,0x04,0x00,0x08,0x25,
+0xfe,0xff,0x09,0x15,0x00,0x00,0x00,0xad,0x00,0x80,0x04,0x3c,0x00,0x00,0x84,0x24,
+0xff,0x7f,0x05,0x3c,0xff,0xff,0xa5,0x34,0x24,0x20,0x85,0x00,0x00,0x00,0x84,0x4c,
+0xff,0xff,0x06,0x34,0x21,0x30,0xc4,0x00,0x24,0x30,0xc5,0x00,0x00,0x08,0x86,0x4c,
+0x00,0xa0,0x04,0x40,0x10,0x00,0x84,0x34,0x00,0xa0,0x84,0x40,0x01,0x80,0x1b,0x3c,
+0x44,0x04,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,
+0x00,0x00,0x00,0x00,0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x85,0x84,
+0x20,0x00,0x06,0x24,0x25,0x28,0xa6,0x00,0x00,0x00,0x85,0xa4,0x01,0x80,0x1b,0x3c,
+0x74,0x04,0x7b,0x27,0x25,0xb0,0x1a,0x3c,0x18,0x03,0x5a,0x27,0x00,0x00,0x5b,0xaf,
+0x25,0xb0,0x04,0x3c,0x44,0x00,0x84,0x34,0x00,0x00,0x85,0x8c,0x00,0x00,0x00,0x00,
+0x10,0x00,0xa5,0x30,0xfc,0xff,0xa0,0x10,0x00,0x00,0x00,0x00,0xff,0x1f,0x07,0x3c,
+0xff,0xff,0xe7,0x34,0x02,0x80,0x05,0x3c,0x50,0x43,0xa5,0x24,0xff,0xff,0xa5,0x30,
+0x40,0xb0,0x04,0x3c,0x25,0x28,0xa4,0x00,0x24,0x28,0xa7,0x00,0x21,0x30,0x00,0x00,
+0x43,0xb0,0x02,0x3c,0x00,0x80,0x04,0x3c,0x40,0x00,0x84,0x34,0x00,0x00,0x45,0xac,
+0x04,0x00,0x46,0xac,0x08,0x00,0x44,0xac,0x7e,0x5e,0x00,0x08,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x09,0x00,0x02,0x24,0xff,0xff,0x42,0x24,
+0xff,0xff,0x41,0x04,0xff,0xff,0x42,0x24,0x08,0x00,0xe0,0x03,0x01,0x00,0x42,0x24,
+0x00,0x60,0x02,0x40,0x01,0x00,0x41,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x82,0xac,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x21,0x18,0x40,0x00,0x00,0x60,0x83,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x82,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,
+0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,
+0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x00,0x00,0xe0,0xff,0xbd,0x27,0x18,0x00,0xb2,0xaf,0x1c,0x00,0xbf,0xaf,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x21,0x30,0x80,0x00,0x21,0x90,0x00,0x00,
+0x00,0x60,0x11,0x40,0x01,0x00,0x21,0x36,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x0d,0x00,0x83,0x90,0x00,0x00,0x00,0x00,0x02,0x00,0x60,0x14,0x02,0x80,0x02,0x3c,
+0x01,0x00,0x03,0x24,0x9c,0x44,0x43,0xa0,0x0c,0x00,0xc2,0x90,0x02,0x80,0x05,0x3c,
+0xb1,0x44,0xa2,0xa0,0x00,0x00,0xc4,0x90,0x05,0x00,0x02,0x24,0xff,0x00,0x83,0x30,
+0x4b,0x00,0x62,0x10,0x00,0x00,0x00,0x00,0x03,0x00,0x02,0x24,0x3b,0x00,0x62,0x10,
+0xff,0x00,0x84,0x30,0x09,0x00,0x82,0x2c,0x2f,0x00,0x40,0x10,0x02,0x80,0x10,0x3c,
+0x98,0x44,0x02,0x92,0x00,0x00,0x00,0x00,0xff,0x00,0x42,0x30,0x2b,0x00,0x82,0x10,
+0x00,0x00,0x00,0x00,0xad,0x1e,0x00,0x0c,0x00,0x00,0x00,0x00,0x98,0x44,0x02,0x92,
+0x00,0x00,0x00,0x00,0x3e,0x00,0x40,0x10,0x02,0x80,0x03,0x3c,0x60,0x26,0x62,0x90,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x5a,0x00,0x40,0x10,0x02,0x80,0x02,0x3c,
+0x02,0x80,0x03,0x3c,0xb9,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x0f,0x00,0x40,0x14,
+0x25,0xb0,0x02,0x3c,0xb9,0x44,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,
+0xb9,0x44,0x62,0xa0,0x02,0x80,0x03,0x3c,0x9a,0x44,0x62,0x90,0x00,0x00,0x00,0x00,
+0x0f,0x00,0x42,0x30,0x04,0x00,0x42,0x28,0x04,0x00,0x40,0x10,0x25,0xb0,0x02,0x3c,
+0xf9,0x1f,0x00,0x0c,0x04,0x00,0x04,0x24,0x25,0xb0,0x02,0x3c,0x00,0x01,0x03,0x24,
+0x16,0x01,0x42,0x34,0x00,0x00,0x43,0xa4,0x00,0x60,0x91,0x40,0x21,0x10,0x40,0x02,
+0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x04,0x00,0x12,0x24,0x00,0x60,0x91,0x40,
+0x21,0x10,0x40,0x02,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x0b,0x00,0xc2,0x90,
+0x00,0x00,0x00,0x00,0x03,0x00,0x40,0x14,0x02,0x80,0x03,0x3c,0x02,0x80,0x03,0x3c,
+0x01,0x00,0x02,0x24,0xb4,0x44,0x62,0xa0,0xb4,0x44,0x63,0x90,0x02,0x80,0x02,0x3c,
+0xb5,0x44,0x43,0xa0,0x00,0x00,0xc4,0x90,0xb7,0x41,0x00,0x08,0xff,0x00,0x84,0x30,
+0xb1,0x44,0xa0,0xa0,0x00,0x00,0xc4,0x90,0xb4,0x41,0x00,0x08,0xff,0x00,0x83,0x30,
+0x42,0xb0,0x05,0x3c,0x00,0x00,0xa3,0x90,0xef,0xff,0x02,0x24,0x03,0x00,0xa6,0x34,
+0x24,0x18,0x62,0x00,0x40,0x00,0x02,0x24,0x00,0x00,0xa3,0xa0,0x0c,0x00,0x04,0x24,
+0x00,0x00,0xc2,0xa0,0x02,0x80,0x03,0x3c,0xf9,0x1f,0x00,0x0c,0x88,0x44,0x60,0xac,
+0x02,0x80,0x03,0x3c,0x56,0x43,0x62,0x90,0x00,0x00,0x00,0x00,0x02,0x00,0x42,0x30,
+0x17,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x78,0x1b,0x45,0x24,
+0x82,0x0b,0xa3,0x90,0x25,0xb0,0x02,0x3c,0x16,0x01,0x42,0x34,0x00,0x00,0x40,0xa4,
+0xce,0xff,0x60,0x10,0x00,0x00,0x00,0x00,0x98,0x26,0xa4,0x94,0x82,0x0b,0xa0,0xa0,
+0x00,0xc0,0x84,0x24,0x2c,0x22,0x00,0x0c,0xff,0xff,0x84,0x30,0xe9,0x41,0x00,0x08,
+0x00,0x00,0x00,0x00,0xb9,0x44,0x40,0xa0,0x25,0xb0,0x02,0x3c,0x00,0x01,0x03,0x24,
+0x16,0x01,0x42,0x34,0x00,0x00,0x43,0xa4,0xe0,0x41,0x00,0x08,0x00,0x00,0x00,0x00,
+0x55,0x1f,0x00,0x0c,0x01,0x00,0x04,0x24,0x15,0x42,0x00,0x08,0x02,0x80,0x02,0x3c,
+0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,
+0x14,0x00,0xb1,0xaf,0x21,0x80,0x80,0x00,0x00,0x60,0x11,0x40,0x01,0x00,0x21,0x36,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x00,0x00,0x02,0x92,0x02,0x80,0x04,0x3c,
+0x25,0xb0,0x05,0x3c,0x02,0x80,0x07,0x3c,0x98,0x26,0x84,0x24,0x50,0x00,0xa5,0x34,
+0x06,0x00,0x06,0x24,0x13,0x00,0x40,0x14,0x78,0x1b,0xe3,0x24,0xe8,0x0a,0x62,0x90,
+0x78,0x1b,0xf2,0x24,0x02,0x80,0x04,0x3c,0xfe,0x00,0x42,0x30,0xe8,0x0a,0x62,0xa0,
+0xe8,0x0a,0x42,0x92,0x18,0x42,0x84,0x24,0x01,0x00,0x42,0x30,0x18,0x00,0x40,0x14,
+0x02,0x00,0x05,0x26,0x00,0x60,0x91,0x40,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x46,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x07,0x3c,
+0x78,0x1b,0xe3,0x24,0xe8,0x0a,0x62,0x90,0x78,0x1b,0xf2,0x24,0x02,0x80,0x04,0x3c,
+0x01,0x00,0x42,0x34,0xe8,0x0a,0x62,0xa0,0xe8,0x0a,0x42,0x92,0x18,0x42,0x84,0x24,
+0x02,0x00,0x05,0x26,0x01,0x00,0x42,0x30,0xea,0xff,0x40,0x10,0x06,0x00,0x06,0x24,
+0x01,0x00,0x03,0x92,0x02,0x80,0x02,0x3c,0xb3,0x44,0x43,0xa0,0x46,0x46,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x08,0x00,0x04,0x96,0x02,0x80,0x03,0x3c,0xa0,0x44,0x64,0xa4,
+0xa0,0x44,0x62,0x94,0x02,0x80,0x03,0x3c,0xff,0xff,0x42,0x30,0x80,0x12,0x02,0x00,
+0xa4,0x44,0x62,0xac,0x0a,0x00,0x04,0x96,0x14,0x00,0x03,0x24,0x02,0x80,0x02,0x3c,
+0xb9,0x44,0x43,0xa0,0x98,0x26,0x44,0xa6,0x00,0x60,0x91,0x40,0x1c,0x00,0xbf,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,
+0x25,0xb0,0x02,0x3c,0x21,0x20,0x82,0x00,0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,
+0x25,0xb0,0x06,0x3c,0x78,0x1b,0x45,0x24,0x01,0x80,0x02,0x3c,0x18,0x03,0xc3,0x34,
+0x54,0x0a,0x42,0x24,0x20,0x08,0xc8,0x34,0x21,0x38,0x80,0x00,0x60,0x08,0x09,0x24,
+0x00,0x00,0x62,0xac,0x07,0x00,0x80,0x10,0x70,0x08,0x02,0x24,0x01,0x00,0x02,0x24,
+0x28,0x08,0xc3,0x34,0x2a,0x00,0x82,0x10,0x64,0x08,0x06,0x24,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x8d,0xe0,0x08,0x03,0x24,0x8c,0x0b,0xa2,0xac,
+0x40,0x08,0x02,0x24,0x90,0x0b,0xa3,0xac,0x9c,0x0b,0xa2,0xac,0x78,0x08,0x03,0x24,
+0x0c,0x08,0x02,0x24,0xa0,0x0b,0xa3,0xac,0xa4,0x0b,0xa2,0xac,0x10,0x08,0x03,0x24,
+0x20,0x08,0x02,0x24,0xa8,0x0b,0xa3,0xac,0xac,0x0b,0xa2,0xac,0x24,0x08,0x03,0x24,
+0x58,0x08,0x02,0x24,0xb0,0x0b,0xa3,0xac,0xb4,0x0b,0xa2,0xac,0x50,0x0c,0x03,0x24,
+0x54,0x0c,0x02,0x24,0xb8,0x0b,0xa3,0xac,0xbc,0x0b,0xa2,0xac,0x14,0x0c,0x03,0x24,
+0x10,0x0c,0x02,0x24,0xc0,0x0b,0xa3,0xac,0xc4,0x0b,0xa2,0xac,0x80,0x0c,0x03,0x24,
+0x84,0x0c,0x02,0x24,0x00,0x01,0x84,0x30,0xcc,0x0b,0xa2,0xac,0x98,0x0b,0xa9,0xac,
+0xc8,0x0b,0xa3,0xac,0x89,0x0b,0xa0,0xa0,0x94,0x0b,0xa9,0xac,0x02,0x00,0x80,0x10,
+0xa0,0x08,0x02,0x24,0xb8,0x08,0x02,0x24,0x08,0x00,0xe0,0x03,0xd0,0x0b,0xa2,0xac,
+0x70,0x08,0x02,0x24,0x00,0x00,0x64,0x8c,0xe0,0x08,0x03,0x24,0x8c,0x0b,0xa2,0xac,
+0x44,0x08,0x02,0x24,0x90,0x0b,0xa3,0xac,0x9c,0x0b,0xa2,0xac,0x78,0x08,0x03,0x24,
+0x0c,0x08,0x02,0x24,0xa0,0x0b,0xa3,0xac,0xa4,0x0b,0xa2,0xac,0x14,0x08,0x03,0x24,
+0x28,0x08,0x02,0x24,0xa8,0x0b,0xa3,0xac,0xac,0x0b,0xa2,0xac,0x2c,0x08,0x03,0x24,
+0x58,0x08,0x02,0x24,0xb0,0x0b,0xa3,0xac,0xb4,0x0b,0xa2,0xac,0x58,0x0c,0x03,0x24,
+0x5c,0x0c,0x02,0x24,0xb8,0x0b,0xa3,0xac,0xbc,0x0b,0xa2,0xac,0x1c,0x0c,0x03,0x24,
+0x18,0x0c,0x02,0x24,0xc0,0x0b,0xa3,0xac,0xc4,0x0b,0xa2,0xac,0x88,0x0c,0x03,0x24,
+0x8c,0x0c,0x02,0x24,0x00,0x01,0x84,0x30,0xcc,0x0b,0xa2,0xac,0x89,0x0b,0xa7,0xa0,
+0x98,0x0b,0xa6,0xac,0xc8,0x0b,0xa3,0xac,0x94,0x0b,0xa6,0xac,0xda,0xff,0x80,0x10,
+0xa4,0x08,0x02,0x24,0xbc,0x08,0x02,0x24,0x08,0x00,0xe0,0x03,0xd0,0x0b,0xa2,0xac,
+0xfb,0x42,0x00,0x08,0x21,0x18,0x00,0x00,0x20,0x00,0x62,0x2c,0x06,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0x06,0x10,0x64,0x00,0x01,0x00,0x42,0x30,0xfa,0xff,0x40,0x10,
+0x01,0x00,0x63,0x24,0xff,0xff,0x63,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0xd8,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x25,0xb0,0x02,0x3c,0x21,0x88,0xa0,0x00,
+0xff,0xff,0x03,0x24,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,0x10,0x00,0xb0,0xaf,
+0x20,0x00,0xbf,0xaf,0x21,0x98,0xc0,0x00,0x21,0x28,0xc0,0x00,0x21,0x90,0x80,0x00,
+0x09,0x00,0x23,0x12,0x21,0x80,0x82,0x00,0x00,0x00,0x10,0x8e,0xf6,0x42,0x00,0x0c,
+0x21,0x20,0x20,0x02,0x27,0x28,0x11,0x00,0x24,0x28,0xb0,0x00,0x04,0x10,0x53,0x00,
+0x25,0x28,0xa2,0x00,0x21,0x20,0x40,0x02,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x8a,0x42,0x00,0x08,
+0x28,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,0x21,0x30,0x80,0x00,0x14,0x27,0x44,0x8c,
+0x02,0x43,0x00,0x08,0xff,0xff,0x05,0x24,0xe0,0xff,0xbd,0x27,0x25,0xb0,0x02,0x3c,
+0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x21,0x20,0x82,0x00,
+0x00,0x00,0x90,0x8c,0x21,0x88,0xa0,0x00,0xf6,0x42,0x00,0x0c,0x21,0x20,0xa0,0x00,
+0x24,0x80,0x11,0x02,0x06,0x10,0x50,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xd8,0xff,0xbd,0x27,
+0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c,0x20,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,
+0x1c,0x00,0xb3,0xaf,0x10,0x00,0xb0,0xaf,0x78,0x1b,0x31,0x26,0xb0,0x0b,0x23,0x8e,
+0x25,0xb0,0x02,0x3c,0x24,0x08,0x53,0x8c,0x21,0x18,0x62,0x00,0x00,0x00,0x70,0x8c,
+0x7f,0x80,0x02,0x3c,0xff,0xff,0x42,0x34,0xff,0x7f,0x05,0x3c,0x24,0x80,0x02,0x02,
+0xc0,0x25,0x04,0x00,0xff,0xff,0xa5,0x34,0x24,0x28,0x65,0x02,0x25,0x80,0x04,0x02,
+0x8a,0x42,0x00,0x0c,0x24,0x08,0x04,0x24,0x9c,0x12,0x00,0x0c,0x01,0x00,0x04,0x24,
+0x00,0x80,0x12,0x3c,0xb0,0x0b,0x24,0x8e,0x25,0x80,0x12,0x02,0x8a,0x42,0x00,0x0c,
+0x21,0x28,0x00,0x02,0x9c,0x12,0x00,0x0c,0x01,0x00,0x04,0x24,0x25,0x28,0x72,0x02,
+0x8a,0x42,0x00,0x0c,0x24,0x08,0x04,0x24,0x9c,0x12,0x00,0x0c,0x01,0x00,0x04,0x24,
+0xd0,0x0b,0x24,0x8e,0x0f,0x00,0x05,0x3c,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0xff,0xff,0xa5,0x34,
+0x24,0x43,0x00,0x08,0x28,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,
+0x02,0x80,0x11,0x3c,0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,0x78,0x1b,0x27,0x26,
+0x8b,0x0b,0xe5,0x90,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x90,0x0d,0x63,0x24,
+0x18,0x03,0x42,0x34,0x02,0x00,0x06,0x24,0x00,0x00,0x43,0xac,0x34,0x00,0xa6,0x10,
+0x21,0x80,0x80,0x00,0x03,0x00,0x03,0x24,0x3a,0x00,0xa3,0x10,0x2e,0x00,0x02,0x2e,
+0x10,0x00,0x02,0x2e,0x07,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xff,0x00,0x04,0x32,
+0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x35,0x43,0x00,0x08,
+0x20,0x00,0xbd,0x27,0xfa,0xff,0xa6,0x14,0xff,0x00,0x04,0x32,0x89,0x0b,0xe4,0x90,
+0x01,0x00,0x02,0x24,0x33,0x00,0x82,0x10,0x02,0x00,0x82,0x28,0x38,0x00,0x40,0x14,
+0x00,0x00,0x00,0x00,0x38,0x00,0x85,0x10,0x78,0x1b,0x22,0x26,0x2e,0x00,0x83,0x10,
+0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x24,0x24,0x43,0x00,0x0c,0xff,0xff,0x05,0x24,
+0xff,0xfc,0x06,0x3c,0xff,0xff,0xc6,0x34,0x24,0x30,0x46,0x00,0x00,0x08,0x04,0x24,
+0x02,0x43,0x00,0x0c,0xff,0xff,0x05,0x24,0x78,0x1b,0x22,0x26,0x89,0x0b,0x44,0x90,
+0x01,0x00,0x03,0x24,0x07,0x00,0x83,0x10,0x02,0x00,0x82,0x28,0x2c,0x00,0x40,0x14,
+0x02,0x00,0x02,0x24,0x2c,0x00,0x82,0x10,0x03,0x00,0x02,0x24,0xdb,0xff,0x82,0x14,
+0x00,0x00,0x00,0x00,0x78,0x1b,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c,
+0x02,0x43,0x00,0x0c,0x21,0x30,0x00,0x00,0x7a,0x43,0x00,0x08,0xff,0x00,0x04,0x32,
+0x25,0x00,0x82,0x2c,0xcc,0xff,0x40,0x14,0x03,0x00,0x03,0x24,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0xc7,0xff,0x40,0x14,0x10,0x00,0x02,0x2e,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x78,0x1b,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c,
+0x02,0x43,0x00,0x0c,0x0f,0x00,0x06,0x24,0x8c,0x43,0x00,0x08,0x00,0x08,0x04,0x24,
+0xcc,0xff,0x80,0x14,0x78,0x1b,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x24,
+0x02,0x43,0x00,0x0c,0x0f,0x00,0x06,0x24,0x8c,0x43,0x00,0x08,0x00,0x08,0x04,0x24,
+0xb2,0xff,0x80,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x22,0x26,0x8c,0x0b,0x44,0x8c,
+0x0f,0x00,0x05,0x24,0x02,0x43,0x00,0x0c,0x21,0x30,0x00,0x00,0x7a,0x43,0x00,0x08,
+0xff,0x00,0x04,0x32,0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x02,0x80,0x11,0x3c,
+0x78,0x1b,0x28,0x26,0x8b,0x0b,0x06,0x91,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0x3c,0x0f,0x63,0x24,0x18,0x03,0x42,0x34,0x02,0x00,0x07,0x24,0x18,0x00,0xb2,0xaf,
+0x10,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0xaf,0x00,0x00,0x43,0xac,0x21,0x90,0xa0,0x00,
+0x39,0x00,0xc7,0x10,0xff,0x00,0x90,0x30,0x03,0x00,0x03,0x24,0x3f,0x00,0xc3,0x10,
+0x2e,0x00,0x02,0x2e,0x10,0x00,0x02,0x2e,0x0c,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x0f,0x00,0x04,0x3c,0xff,0xff,0x84,0x34,0x24,0x20,0x44,0x02,0x00,0x15,0x10,0x00,
+0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x25,0x20,0x44,0x00,0x1f,0x43,0x00,0x08,0x20,0x00,0xbd,0x27,0xf5,0xff,0xc7,0x14,
+0x0f,0x00,0x04,0x3c,0x89,0x0b,0x04,0x91,0x01,0x00,0x02,0x24,0x33,0x00,0x82,0x10,
+0x02,0x00,0x82,0x28,0x38,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x38,0x00,0x86,0x10,
+0x78,0x1b,0x22,0x26,0x2e,0x00,0x83,0x10,0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x24,
+0x24,0x43,0x00,0x0c,0xff,0xff,0x05,0x24,0xff,0xfc,0x06,0x3c,0xff,0xff,0xc6,0x34,
+0x24,0x30,0x46,0x00,0x00,0x08,0x04,0x24,0x02,0x43,0x00,0x0c,0xff,0xff,0x05,0x24,
+0x78,0x1b,0x22,0x26,0x89,0x0b,0x44,0x90,0x01,0x00,0x03,0x24,0x07,0x00,0x83,0x10,
+0x02,0x00,0x82,0x28,0x2c,0x00,0x40,0x14,0x02,0x00,0x02,0x24,0x2c,0x00,0x82,0x10,
+0x03,0x00,0x02,0x24,0xd6,0xff,0x82,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x22,0x26,
+0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c,0x02,0x43,0x00,0x0c,0x21,0x30,0x00,0x00,
+0xe7,0x43,0x00,0x08,0x0f,0x00,0x04,0x3c,0x25,0x00,0x02,0x2e,0xc7,0xff,0x40,0x14,
+0x03,0x00,0x03,0x24,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xc1,0xff,0x40,0x14,
+0x00,0x00,0x00,0x00,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x78,0x1b,0x22,0x26,
+0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x3c,0x02,0x43,0x00,0x0c,0x0f,0x00,0x06,0x24,
+0xfe,0x43,0x00,0x08,0x00,0x08,0x04,0x24,0xcc,0xff,0x80,0x14,0x78,0x1b,0x22,0x26,
+0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x24,0x02,0x43,0x00,0x0c,0x0f,0x00,0x06,0x24,
+0xfe,0x43,0x00,0x08,0x00,0x08,0x04,0x24,0xad,0xff,0x80,0x14,0x00,0x00,0x00,0x00,
+0x78,0x1b,0x22,0x26,0x8c,0x0b,0x44,0x8c,0x0f,0x00,0x05,0x24,0x02,0x43,0x00,0x0c,
+0x21,0x30,0x00,0x00,0xe7,0x43,0x00,0x08,0x0f,0x00,0x04,0x3c,0xe8,0xff,0xbd,0x27,
+0x10,0x00,0xb0,0xaf,0x21,0x80,0x80,0x00,0x14,0x00,0xbf,0xaf,0x35,0x43,0x00,0x0c,
+0x21,0x20,0x00,0x00,0x40,0x01,0x44,0x34,0x21,0x18,0x40,0x00,0x1f,0x00,0x02,0x2e,
+0x00,0x23,0x04,0x00,0x10,0x00,0x40,0x10,0x10,0x00,0x05,0x2e,0x00,0x01,0x64,0x34,
+0x06,0x00,0xa0,0x10,0x00,0x23,0x04,0x00,0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x1f,0x43,0x00,0x0c,
+0xf1,0xff,0x10,0x26,0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x1f,0x43,0x00,0x0c,0xe2,0xff,0x10,0x26,
+0x21,0x10,0x00,0x02,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x18,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x25,0xb0,0x02,0x3c,0x18,0x00,0xbf,0xaf,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x21,0x20,0x82,0x00,0x00,0x00,0x90,0x8c,
+0x21,0x88,0xa0,0x00,0xf6,0x42,0x00,0x0c,0x21,0x20,0xa0,0x00,0x24,0x80,0x11,0x02,
+0x06,0x10,0x50,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xd8,0xff,0xbd,0x27,0x25,0xb0,0x02,0x3c,
+0x18,0x00,0xb2,0xaf,0x21,0x90,0x82,0x00,0xff,0xff,0x02,0x24,0x1c,0x00,0xb3,0xaf,
+0x14,0x00,0xb1,0xaf,0x20,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x21,0x88,0xa0,0x00,
+0x21,0x20,0xa0,0x00,0x21,0x18,0x40,0x02,0x10,0x00,0xa2,0x10,0x21,0x98,0xc0,0x00,
+0x00,0x00,0x50,0x8e,0xf6,0x42,0x00,0x0c,0x00,0x00,0x00,0x00,0x27,0x18,0x11,0x00,
+0x24,0x18,0x70,0x00,0x04,0x10,0x53,0x00,0x25,0x18,0x62,0x00,0x00,0x00,0x43,0xae,
+0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x20,0x00,0xbf,0x8f,
+0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x28,0x00,0xbd,0x27,0x00,0x00,0x66,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x02,0x3c,0x21,0x38,0x82,0x00,0xff,0xff,0x02,0x24,0x27,0x40,0x05,0x00,
+0x08,0x00,0xa2,0x10,0x24,0x18,0xc5,0x00,0x00,0x00,0xe2,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x10,0x02,0x01,0x25,0x10,0x43,0x00,0x00,0x00,0xe2,0xac,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x00,0x00,0xe6,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x21,0x38,0xa0,0x00,0x25,0xb0,0x02,0x3c,0xff,0xff,0x03,0x24,0x27,0x48,0x05,0x00,
+0x24,0x40,0xc7,0x00,0x21,0x28,0xc0,0x00,0x05,0x00,0xe3,0x10,0x21,0x30,0x82,0x00,
+0x00,0x00,0xc5,0x8c,0x00,0x00,0x00,0x00,0x24,0x28,0x25,0x01,0x25,0x28,0xa8,0x00,
+0x8a,0x42,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c,
+0xd8,0xff,0xbd,0x27,0xe0,0x12,0x42,0x24,0x18,0x03,0x63,0x34,0x20,0x00,0xb4,0xaf,
+0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,0x24,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,
+0x10,0x00,0xb0,0xaf,0x00,0x00,0x62,0xac,0x21,0x88,0xa0,0x00,0x21,0x98,0xc0,0x00,
+0x21,0xa0,0x80,0x00,0x00,0x60,0x12,0x40,0x01,0x00,0x41,0x36,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x0f,0x00,0x02,0x3c,0xff,0xff,0x42,0x34,0x0a,0x00,0x22,0x12,
+0x21,0x28,0xc0,0x00,0x64,0x43,0x00,0x0c,0x00,0x00,0x00,0x00,0x21,0x20,0x20,0x02,
+0xf6,0x42,0x00,0x0c,0x21,0x80,0x40,0x00,0x27,0x28,0x11,0x00,0x24,0x28,0xb0,0x00,
+0x04,0x10,0x53,0x00,0x25,0x28,0xa2,0x00,0xcf,0x43,0x00,0x0c,0xff,0x00,0x84,0x32,
+0x00,0x60,0x92,0x40,0x24,0x00,0xbf,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x28,0x00,0xbd,0x27,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,0x8c,0x13,0x63,0x24,
+0x18,0x03,0x42,0x34,0xe0,0xff,0xbd,0x27,0x00,0x00,0x43,0xac,0x18,0x00,0xbf,0xaf,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x64,0x43,0x00,0x0c,0x21,0x88,0xa0,0x00,
+0x21,0x80,0x40,0x00,0xf6,0x42,0x00,0x0c,0x21,0x20,0x20,0x02,0x24,0x80,0x11,0x02,
+0x06,0x10,0x50,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe8,0xff,0xbd,0x27,0x10,0x00,0xbf,0xaf,
+0x95,0x42,0x00,0x0c,0xff,0x00,0x84,0x30,0x10,0x00,0xbf,0x8f,0x01,0x00,0x02,0x24,
+0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xc8,0xff,0xbd,0x27,0x2c,0x00,0xb1,0xaf,0xff,0xff,0x05,0x24,0x21,0x88,0x80,0x00,
+0x02,0x00,0x06,0x24,0x10,0x00,0xa4,0x27,0x34,0x00,0xbf,0xaf,0x30,0x00,0xb2,0xaf,
+0x3e,0x46,0x00,0x0c,0x28,0x00,0xb0,0xaf,0x08,0x00,0x30,0x96,0x02,0x80,0x02,0x3c,
+0x21,0x28,0x00,0x00,0x25,0x80,0x02,0x02,0x21,0x20,0x00,0x02,0x3e,0x46,0x00,0x0c,
+0x10,0x00,0x06,0x24,0x20,0x00,0x02,0x96,0x24,0x00,0x04,0x26,0x10,0x00,0xa5,0x27,
+0x03,0xff,0x42,0x30,0xc8,0x00,0x42,0x34,0x20,0x00,0x02,0xa6,0x46,0x46,0x00,0x0c,
+0x06,0x00,0x06,0x24,0x25,0xb0,0x03,0x3c,0x50,0x00,0x62,0x34,0x00,0x00,0x44,0x8c,
+0x54,0x00,0x65,0x34,0x58,0x00,0x66,0x34,0x18,0x00,0xa4,0xaf,0x00,0x00,0xa2,0x8c,
+0x5c,0x00,0x63,0x34,0x2a,0x00,0x04,0x26,0x1c,0x00,0xa2,0xaf,0x00,0x00,0xc7,0x8c,
+0x18,0x00,0xa5,0x27,0x06,0x00,0x06,0x24,0x20,0x00,0xa7,0xaf,0x00,0x00,0x62,0x8c,
+0x1a,0x00,0x12,0x24,0x46,0x46,0x00,0x0c,0x24,0x00,0xa2,0xaf,0x30,0x00,0x04,0x26,
+0x20,0x00,0xa5,0x27,0x46,0x46,0x00,0x0c,0x06,0x00,0x06,0x24,0x13,0x00,0x03,0x24,
+0x14,0x00,0x23,0xae,0x0c,0x00,0x32,0xae,0x08,0x00,0x05,0x8e,0x04,0x00,0x04,0x8e,
+0xff,0xdf,0x02,0x3c,0x14,0x00,0x06,0x8e,0xff,0xff,0x42,0x34,0x10,0x00,0x07,0x8e,
+0xff,0xe0,0x03,0x24,0x24,0x28,0xa2,0x00,0x00,0x40,0x02,0x3c,0x24,0x20,0x83,0x00,
+0x25,0x28,0xa2,0x00,0xff,0x81,0x03,0x24,0xfe,0xff,0x02,0x3c,0x24,0x30,0xc3,0x00,
+0xff,0xff,0x42,0x34,0x00,0x12,0x84,0x34,0x00,0x80,0x03,0x3c,0x24,0x20,0x82,0x00,
+0x25,0x38,0xe3,0x00,0x00,0x26,0xc6,0x34,0x80,0x00,0xa5,0x34,0x20,0x00,0x02,0x24,
+0x00,0x00,0x12,0xa6,0x10,0x00,0x07,0xae,0x02,0x00,0x02,0xa2,0x14,0x00,0x06,0xae,
+0x04,0x00,0x04,0xae,0x08,0x00,0x05,0xae,0x34,0x00,0xbf,0x8f,0x30,0x00,0xb2,0x8f,
+0x2c,0x00,0xb1,0x8f,0x28,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,
+0xc8,0xff,0xbd,0x27,0x28,0x00,0xb4,0xaf,0x18,0x00,0xb0,0xaf,0xff,0xff,0xf4,0x30,
+0x25,0xb0,0x10,0x3c,0x01,0x80,0x02,0x3c,0x1c,0x00,0xb1,0xaf,0x18,0x03,0x03,0x36,
+0x58,0x15,0x42,0x24,0x20,0x00,0x91,0x26,0x30,0x00,0xb6,0xaf,0x24,0x00,0xb3,0xaf,
+0x21,0xb0,0x80,0x00,0x48,0x00,0xb3,0x93,0x21,0x20,0x20,0x02,0x00,0x00,0x62,0xac,
+0x2c,0x00,0xb5,0xaf,0x20,0x00,0xb2,0xaf,0x34,0x00,0xbf,0xaf,0xff,0x00,0xb5,0x30,
+0x39,0x15,0x00,0x0c,0xff,0x00,0xd2,0x30,0x0b,0x00,0x40,0x14,0x10,0x00,0xa2,0xaf,
+0x34,0x00,0xbf,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x08,0x00,0x43,0x8c,0xb0,0x03,0x02,0x36,
+0x02,0x80,0x10,0x3c,0x00,0x00,0x43,0xac,0x10,0x00,0xa2,0x8f,0x21,0x30,0x20,0x02,
+0x21,0x28,0x00,0x00,0x08,0x00,0x44,0x94,0x35,0x46,0x00,0x0c,0x25,0x20,0x90,0x00,
+0x10,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0x62,0x94,0x00,0x00,0x00,0x00,
+0x25,0x88,0x50,0x00,0x50,0x00,0x60,0x16,0x20,0x00,0x30,0x26,0x20,0x00,0x32,0xa6,
+0x48,0x00,0x02,0x24,0x6b,0x00,0x42,0x12,0x00,0x00,0x00,0x00,0x04,0x00,0x02,0x24,
+0x4c,0x00,0xa2,0x16,0x21,0x28,0xc0,0x02,0xa4,0x00,0x02,0x24,0x6a,0x00,0x42,0x12,
+0x02,0x80,0x02,0x3c,0x10,0x00,0xa2,0x8f,0x25,0xb0,0x10,0x3c,0xb0,0x03,0x10,0x36,
+0x0c,0x00,0x54,0xac,0x10,0x00,0xa2,0x8f,0x12,0x00,0x03,0x24,0x21,0x28,0x00,0x00,
+0x14,0x00,0x43,0xac,0x00,0x00,0x14,0xae,0x10,0x00,0xa2,0x8f,0x08,0x00,0x06,0x24,
+0x08,0x00,0x43,0x8c,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xae,0x10,0x00,0xa2,0x8f,
+0x02,0x80,0x03,0x3c,0x08,0x00,0x44,0x94,0x00,0x00,0x00,0x00,0x25,0x88,0x83,0x00,
+0x3e,0x46,0x00,0x0c,0x21,0x20,0x20,0x02,0x04,0x00,0x25,0x8e,0x08,0x00,0x26,0x8e,
+0x14,0x00,0x27,0x8e,0x10,0x00,0x24,0x8e,0xff,0xe0,0x03,0x24,0xff,0xdf,0x02,0x3c,
+0x24,0x28,0xa3,0x00,0xff,0xff,0x42,0x34,0xff,0x81,0x03,0x24,0x24,0x38,0xe3,0x00,
+0x24,0x30,0xc2,0x00,0x00,0x80,0x03,0x3c,0x00,0x40,0x02,0x3c,0x25,0x30,0xc2,0x00,
+0x25,0x20,0x83,0x00,0x00,0x12,0xa5,0x34,0x20,0x00,0x02,0x24,0x10,0x00,0x24,0xae,
+0x00,0x00,0x34,0xa6,0x02,0x00,0x22,0xa2,0x04,0x00,0x25,0xae,0x14,0x00,0x27,0xae,
+0x08,0x00,0x26,0xae,0x00,0x60,0x05,0x40,0x01,0x00,0xa1,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,0x10,0x00,0xa3,0x8f,0x78,0x41,0x42,0x24,
+0x04,0x00,0x44,0x8c,0x00,0x00,0x62,0xac,0x04,0x00,0x43,0xac,0x10,0x00,0xa2,0x27,
+0x00,0x00,0x83,0xac,0x04,0x00,0x64,0xac,0x00,0x00,0x02,0xae,0x00,0x60,0x85,0x40,
+0x34,0x00,0xbf,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x00,0x10,0x42,0x36,0x8a,0x45,0x00,0x08,
+0x20,0x00,0x22,0xa6,0x24,0x00,0x24,0x26,0x46,0x46,0x00,0x0c,0x06,0x00,0x06,0x24,
+0x02,0x80,0x05,0x3c,0x98,0x26,0xa5,0x24,0x2a,0x00,0x24,0x26,0x46,0x46,0x00,0x0c,
+0x06,0x00,0x06,0x24,0x02,0x80,0x05,0x3c,0x30,0x00,0x24,0x26,0x18,0x42,0xa5,0x24,
+0x46,0x46,0x00,0x0c,0x06,0x00,0x06,0x24,0x02,0x80,0x05,0x3c,0x78,0x1b,0xa5,0x24,
+0xec,0x0c,0xa6,0x94,0x00,0x00,0x00,0x00,0x01,0x00,0xc2,0x24,0x00,0x21,0x06,0x00,
+0xff,0xff,0x46,0x30,0xff,0xff,0x84,0x30,0x00,0x10,0xc2,0x2c,0x0a,0x30,0x02,0x00,
+0x02,0x1a,0x04,0x00,0x17,0x00,0x03,0xa2,0x16,0x00,0x04,0xa2,0x93,0x45,0x00,0x08,
+0xec,0x0c,0xa6,0xa4,0x20,0x00,0x22,0x96,0x00,0x00,0x00,0x00,0x00,0x01,0x42,0x34,
+0x8d,0x45,0x00,0x08,0x20,0x00,0x22,0xa6,0x10,0x42,0x43,0x94,0x02,0x80,0x05,0x3c,
+0x24,0x00,0x24,0x26,0x00,0xc0,0x63,0x24,0xff,0xff,0x63,0x30,0x02,0x12,0x03,0x00,
+0x18,0x42,0xa5,0x24,0x03,0x00,0x02,0xa2,0x02,0x00,0x03,0xa2,0x46,0x46,0x00,0x0c,
+0x06,0x00,0x06,0x24,0x02,0x80,0x05,0x3c,0x2a,0x00,0x24,0x26,0x98,0x26,0xa5,0x24,
+0x46,0x46,0x00,0x0c,0x06,0x00,0x06,0x24,0x93,0x45,0x00,0x08,0x00,0x00,0x00,0x00,
+0xff,0x00,0x82,0x30,0x02,0x80,0x04,0x3c,0xe0,0xff,0xbd,0x27,0x18,0x42,0x84,0x24,
+0x08,0x00,0x05,0x24,0x48,0x00,0x06,0x24,0x18,0x00,0x07,0x24,0x18,0x00,0xbf,0xaf,
+0x56,0x45,0x00,0x0c,0x10,0x00,0xa2,0xaf,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x02,0x80,0x05,0x3c,
+0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb0,0xaf,0x78,0x1b,0xa5,0x24,0x98,0x26,0xa2,0x94,
+0x01,0x00,0x03,0x24,0xff,0x00,0x90,0x30,0x00,0xc0,0x42,0x24,0xff,0xff,0x44,0x30,
+0x2c,0x22,0x00,0x0c,0x82,0x0b,0xa3,0xa0,0x02,0x80,0x04,0x3c,0x18,0x42,0x84,0x24,
+0x04,0x00,0x05,0x24,0xa4,0x00,0x06,0x24,0x10,0x00,0x07,0x24,0x56,0x45,0x00,0x0c,
+0x10,0x00,0xb0,0xaf,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x3a,0x46,0x00,0x08,
+0xff,0x00,0xa5,0x30,0x00,0x00,0x85,0xa0,0xff,0xff,0xc6,0x24,0x01,0x00,0x84,0x24,
+0xfc,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x05,0x00,0xc0,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,0xff,0xff,0xc6,0x24,
+0xfd,0xff,0xc0,0x14,0x04,0x00,0x84,0x24,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x21,0x38,0x80,0x00,0x08,0x00,0xc0,0x10,0xff,0xff,0xc3,0x24,0xff,0xff,0x06,0x24,
+0x00,0x00,0xa2,0x90,0xff,0xff,0x63,0x24,0x01,0x00,0xa5,0x24,0x00,0x00,0xe2,0xa0,
+0xfb,0xff,0x66,0x14,0x01,0x00,0xe7,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,
+0x21,0x38,0x80,0x00,0x08,0x00,0xc0,0x10,0xff,0xff,0xc3,0x24,0xff,0xff,0x06,0x24,
+0x00,0x00,0xa2,0x8c,0xff,0xff,0x63,0x24,0x04,0x00,0xa5,0x24,0x00,0x00,0xe2,0xac,
+0xfb,0xff,0x66,0x14,0x04,0x00,0xe7,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,
+0x2b,0x10,0xa4,0x00,0x0d,0x00,0x40,0x14,0xff,0xff,0x02,0x24,0xff,0xff,0xc6,0x24,
+0x08,0x00,0xc2,0x10,0x21,0x18,0x80,0x00,0xff,0xff,0x07,0x24,0x00,0x00,0xa2,0x90,
+0xff,0xff,0xc6,0x24,0x01,0x00,0xa5,0x24,0x00,0x00,0x62,0xa0,0xfb,0xff,0xc7,0x14,
+0x01,0x00,0x63,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x21,0x28,0xa6,0x00,
+0x21,0x18,0x86,0x00,0xff,0xff,0xc6,0x24,0xfa,0xff,0xc2,0x10,0x00,0x00,0x00,0x00,
+0xff,0xff,0x07,0x24,0xff,0xff,0xa5,0x24,0x00,0x00,0xa2,0x90,0xff,0xff,0x63,0x24,
+0xff,0xff,0xc6,0x24,0xfb,0xff,0xc7,0x14,0x00,0x00,0x62,0xa0,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x80,0x00,0x0c,0x00,0xc0,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x82,0x90,
+0x00,0x00,0xa3,0x90,0x01,0x00,0x84,0x24,0x23,0x10,0x43,0x00,0x00,0x16,0x02,0x00,
+0x03,0x16,0x02,0x00,0x04,0x00,0x40,0x14,0x01,0x00,0xa5,0x24,0xff,0xff,0xc6,0x24,
+0xf6,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0xc0,0x00,
+0x91,0x46,0x00,0x08,0x21,0x18,0x86,0x00,0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,
+0x04,0x00,0x45,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0x84,0x24,0xfa,0xff,0x83,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0x09,0x00,0xc0,0x10,
+0xff,0xff,0xc3,0x24,0xff,0x00,0xa5,0x30,0xff,0xff,0x06,0x24,0x00,0x00,0x82,0x90,
+0xff,0xff,0x63,0x24,0x05,0x00,0x45,0x10,0x01,0x00,0x84,0x24,0xfb,0xff,0x66,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0xff,0xff,0x82,0x24,0x21,0x38,0x00,0x00,0x1f,0x00,0xc0,0x10,0x21,0x18,0x00,0x00,
+0x02,0x80,0x02,0x3c,0x80,0xb4,0x4b,0x24,0x00,0x00,0x87,0x90,0x00,0x00,0xa3,0x90,
+0xff,0xff,0xc6,0x24,0x01,0x00,0x84,0x24,0x21,0x10,0xeb,0x00,0x16,0x00,0xe0,0x10,
+0x01,0x00,0xa5,0x24,0x14,0x00,0x60,0x10,0x21,0x48,0x6b,0x00,0x10,0x00,0xe3,0x10,
+0x20,0x00,0xe8,0x24,0x00,0x00,0x42,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,
+0x02,0x00,0x40,0x10,0x20,0x00,0x6a,0x24,0xff,0x00,0x07,0x31,0x00,0x00,0x22,0x91,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0x02,0x00,0x40,0x10,0xff,0x00,0xe7,0x30,
+0xff,0x00,0x43,0x31,0xff,0x00,0x63,0x30,0x03,0x00,0xe3,0x14,0x00,0x00,0x00,0x00,
+0xe5,0xff,0xc0,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x23,0x10,0xe3,0x00,
+0x21,0x18,0x80,0x00,0x00,0x00,0xa2,0x90,0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,
+0xfc,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0x21,0x38,0x80,0x00,0xff,0xff,0x03,0x24,0xff,0xff,0xc6,0x24,0x06,0x00,0xc3,0x10,
+0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,
+0xf9,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0xe0,0x00,
+0x00,0x00,0x82,0x80,0xe0,0x46,0x00,0x08,0x21,0x18,0x80,0x00,0x01,0x00,0x84,0x24,
+0x00,0x00,0x82,0x80,0x00,0x00,0x00,0x00,0xfc,0xff,0x40,0x14,0x00,0x00,0x00,0x00,
+0x00,0x00,0xa2,0x90,0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,0xfc,0xff,0x40,0x14,
+0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0x12,0x00,0xc0,0x10,
+0x21,0x18,0x80,0x00,0x00,0x00,0x82,0x80,0xf1,0x46,0x00,0x08,0x00,0x00,0x00,0x00,
+0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x80,0x00,0x00,0x00,0x00,0xfc,0xff,0x40,0x14,
+0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,0x01,0x00,0xa5,0x24,0x00,0x00,0x82,0xa0,
+0x05,0x00,0x40,0x10,0x01,0x00,0x84,0x24,0xff,0xff,0xc6,0x24,0xf9,0xff,0xc0,0x14,
+0x00,0x00,0x00,0x00,0x00,0x00,0x80,0xa0,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,
+0x00,0x00,0x83,0x90,0x00,0x00,0xa2,0x90,0x01,0x00,0x84,0x24,0x23,0x10,0x62,0x00,
+0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,0x03,0x00,0x40,0x14,0x01,0x00,0xa5,0x24,
+0xf7,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x21,0x10,0x00,0x00,0x0b,0x00,0xc0,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0xa2,0x90,
+0x00,0x00,0x83,0x90,0xff,0xff,0xc6,0x24,0x23,0x10,0x62,0x00,0x00,0x16,0x02,0x00,
+0x03,0x16,0x02,0x00,0x03,0x00,0x40,0x14,0x01,0x00,0xa5,0x24,0xf5,0xff,0x60,0x14,
+0x01,0x00,0x84,0x24,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x83,0x80,
+0x00,0x2e,0x05,0x00,0x21,0x10,0x80,0x00,0x22,0x47,0x00,0x08,0x03,0x2e,0x05,0x00,
+0x07,0x00,0x60,0x10,0x01,0x00,0x42,0x24,0x00,0x00,0x43,0x80,0x00,0x00,0x00,0x00,
+0xfb,0xff,0x65,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x00,0x00,0x00,0x82,0x80,0x2e,0x47,0x00,0x08,
+0x21,0x18,0x80,0x00,0x01,0x00,0x63,0x24,0x00,0x00,0x62,0x80,0x00,0x00,0x00,0x00,
+0xfc,0xff,0x40,0x14,0x23,0x10,0x64,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xe0,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x21,0x80,0xa0,0x00,0x14,0x00,0xb1,0xaf,
+0x18,0x00,0xbf,0xaf,0x21,0x88,0x80,0x00,0x28,0x47,0x00,0x0c,0x00,0x86,0x10,0x00,
+0x21,0x18,0x51,0x00,0x03,0x86,0x10,0x00,0x00,0x00,0x62,0x80,0x00,0x00,0x00,0x00,
+0x0a,0x00,0x50,0x10,0x21,0x10,0x60,0x00,0xff,0xff,0x63,0x24,0x2b,0x10,0x71,0x00,
+0xf9,0xff,0x40,0x10,0x21,0x10,0x00,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0x21,0x30,0x80,0x00,0x0d,0x00,0xa0,0x10,0xff,0xff,0xa3,0x24,0x00,0x00,0x82,0x80,
+0x00,0x00,0x00,0x00,0x09,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0x05,0x24,
+0xff,0xff,0x63,0x24,0x05,0x00,0x65,0x10,0x01,0x00,0xc6,0x24,0x00,0x00,0xc2,0x80,
+0x00,0x00,0x00,0x00,0xfa,0xff,0x40,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x23,0x10,0xc4,0x00,0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0x19,0x00,0x40,0x10,
+0x21,0x40,0x00,0x00,0x00,0x00,0xa9,0x80,0x00,0x00,0x00,0x00,0x17,0x00,0x20,0x11,
+0x21,0x30,0xa0,0x00,0x00,0x3e,0x02,0x00,0x03,0x3e,0x07,0x00,0x21,0x18,0x20,0x01,
+0x15,0x00,0xe3,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xc6,0x24,0x00,0x00,0xc2,0x90,
+0x00,0x00,0x00,0x00,0x00,0x1e,0x02,0x00,0x03,0x1e,0x03,0x00,0xf8,0xff,0x60,0x14,
+0x00,0x16,0x02,0x00,0x03,0x16,0x02,0x00,0x06,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x01,0x00,0x84,0x24,0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0xeb,0xff,0x40,0x14,
+0x01,0x00,0x08,0x25,0x08,0x00,0xe0,0x03,0x21,0x10,0x00,0x01,0x00,0x00,0xa2,0x90,
+0x73,0x47,0x00,0x08,0x00,0x16,0x02,0x00,0x00,0x00,0xc2,0x90,0x73,0x47,0x00,0x08,
+0x00,0x16,0x02,0x00,0x00,0x00,0x87,0x90,0x00,0x00,0x00,0x00,0x14,0x00,0xe0,0x10,
+0x21,0x10,0x80,0x00,0x00,0x00,0xa4,0x90,0x00,0x00,0x00,0x00,0x00,0x1e,0x04,0x00,
+0x03,0x1e,0x03,0x00,0x09,0x00,0x60,0x10,0x21,0x30,0xa0,0x00,0x00,0x3e,0x07,0x00,
+0x03,0x3e,0x07,0x00,0x0b,0x00,0xe3,0x10,0x01,0x00,0xc6,0x24,0x00,0x00,0xc3,0x80,
+0x00,0x00,0x00,0x00,0xfb,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,
+0x00,0x00,0x47,0x90,0x00,0x00,0x00,0x00,0xf0,0xff,0xe0,0x14,0x00,0x00,0x00,0x00,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,
+0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x18,0x00,0xbf,0xaf,0x21,0x80,0x80,0x00,
+0x1d,0x00,0x80,0x10,0x21,0x88,0xa0,0x00,0x5f,0x47,0x00,0x0c,0x21,0x20,0x00,0x02,
+0x21,0x80,0x02,0x02,0x00,0x00,0x02,0x82,0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02,
+0x22,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0x83,0x47,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x05,0x00,0x40,0x10,0x21,0x18,0x40,0x00,0x00,0x00,0x42,0x80,0x00,0x00,0x00,0x00,
+0x0a,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0xa8,0xb5,0x43,0xac,
+0x21,0x18,0x00,0x02,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x21,0x10,0x60,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x00,0x00,0x60,0xa0,
+0xb4,0x47,0x00,0x08,0x01,0x00,0x63,0x24,0x02,0x80,0x02,0x3c,0xa8,0xb5,0x50,0x8c,
+0x00,0x00,0x00,0x00,0xf3,0xff,0x00,0x12,0x21,0x18,0x00,0x00,0x5f,0x47,0x00,0x0c,
+0x21,0x20,0x00,0x02,0x21,0x80,0x02,0x02,0x00,0x00,0x02,0x82,0x21,0x28,0x20,0x02,
+0x21,0x20,0x00,0x02,0xe0,0xff,0x40,0x14,0x21,0x18,0x00,0x00,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x02,0x80,0x02,0x3c,0xa8,0xb5,0x40,0xac,
+0x20,0x00,0xbd,0x27,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0xe0,0xff,0xbd,0x27,
+0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x1c,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,
+0x00,0x00,0x90,0x8c,0x21,0x90,0x80,0x00,0x21,0x88,0xa0,0x00,0x21,0x18,0x00,0x00,
+0x0f,0x00,0x00,0x12,0x21,0x20,0x00,0x02,0x5f,0x47,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x21,0x80,0x02,0x02,0x00,0x00,0x02,0x82,0x21,0x28,0x20,0x02,0x21,0x20,0x00,0x02,
+0x07,0x00,0x40,0x10,0x21,0x18,0x00,0x00,0x83,0x47,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x21,0x18,0x40,0x00,0x09,0x00,0x40,0x14,0x00,0x00,0x42,0xae,0x21,0x18,0x00,0x02,
+0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x21,0x10,0x60,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x00,0x00,0x42,0x80,
+0x00,0x00,0x00,0x00,0xf5,0xff,0x40,0x10,0x01,0x00,0x64,0x24,0x00,0x00,0x60,0xa0,
+0xed,0x47,0x00,0x08,0x00,0x00,0x44,0xae,0xd8,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,
+0x21,0x88,0x80,0x00,0x21,0x20,0xa0,0x00,0x1c,0x00,0xb3,0xaf,0x18,0x00,0xb2,0xaf,
+0x20,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x28,0x47,0x00,0x0c,0x21,0x98,0xa0,0x00,
+0x21,0x90,0x40,0x00,0x08,0x00,0x40,0x16,0x21,0x10,0x20,0x02,0x20,0x00,0xbf,0x8f,
+0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0x28,0x47,0x00,0x0c,0x21,0x20,0x20,0x02,
+0x21,0x80,0x40,0x00,0x2a,0x10,0x52,0x00,0x0a,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x21,0x20,0x20,0x02,0x21,0x28,0x60,0x02,0x21,0x30,0x40,0x02,0x7b,0x46,0x00,0x0c,
+0xff,0xff,0x10,0x26,0x0b,0x00,0x40,0x10,0x2a,0x18,0x12,0x02,0xf8,0xff,0x60,0x10,
+0x01,0x00,0x31,0x26,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x28,0x00,0xbd,0x27,0x09,0x48,0x00,0x08,0x21,0x10,0x20,0x02,0x01,0x80,0x02,0x3c,
+0xa4,0x20,0x43,0x24,0x25,0xb0,0x02,0x3c,0xc0,0xff,0xbd,0x27,0x18,0x03,0x42,0x34,
+0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,
+0x24,0x00,0xb3,0xaf,0x3c,0x00,0xbf,0xaf,0x38,0x00,0xbe,0xaf,0x20,0x00,0xb2,0xaf,
+0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0x00,0x00,0x43,0xac,0x21,0xa0,0x00,0x00,
+0x02,0x80,0x13,0x3c,0x02,0x80,0x15,0x3c,0x02,0x80,0x17,0x3c,0x02,0x80,0x16,0x3c,
+0x78,0x1b,0x67,0x26,0xf0,0x23,0xe3,0x94,0x25,0xb0,0x11,0x3c,0x01,0x80,0x05,0x3c,
+0x18,0x03,0x24,0x36,0x01,0x00,0x63,0x24,0xa4,0x20,0xa2,0x24,0x00,0x00,0x82,0xac,
+0xf0,0x23,0xe3,0xa4,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0xc6,0x00,0x23,0x36,0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,
+0x11,0x00,0x42,0x2c,0x08,0x00,0x40,0x14,0x02,0x80,0x03,0x3c,0x02,0x80,0x04,0x3c,
+0x44,0x44,0x62,0x8c,0x5c,0x44,0x83,0x8c,0x02,0x80,0x05,0x3c,0x5c,0x44,0x80,0xac,
+0x25,0x10,0x43,0x00,0x44,0x44,0xa2,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0xc0,0x02,0x26,0x36,0x00,0x00,0xd2,0x8c,0x00,0x00,0x00,0x00,
+0x03,0x00,0x40,0x12,0xff,0x00,0x03,0x3c,0x01,0x00,0x82,0x26,0xff,0xff,0x54,0x30,
+0xff,0xff,0x62,0x34,0x2b,0x10,0x52,0x00,0x1d,0x02,0x40,0x10,0x00,0x50,0x82,0x2e,
+0x00,0xff,0x02,0x3c,0xff,0x00,0x42,0x34,0x00,0xfd,0x06,0x3c,0x24,0x28,0x42,0x02,
+0x14,0x00,0xc2,0x34,0xf7,0x04,0xa2,0x10,0x2b,0x10,0x45,0x00,0x33,0x02,0x40,0x14,
+0x00,0xfd,0x04,0x3c,0x00,0xf2,0x08,0x3c,0x01,0x00,0x02,0x35,0x0b,0x05,0xa2,0x10,
+0x2b,0x10,0x45,0x00,0xd3,0x02,0x40,0x14,0x00,0xfb,0x04,0x3c,0x00,0xf0,0x04,0x3c,
+0x20,0x00,0x82,0x34,0x59,0x05,0xa2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x45,0x00,
+0xfe,0x02,0x40,0x14,0x01,0x00,0x82,0x34,0x68,0x05,0xa2,0x10,0x00,0x00,0x00,0x00,
+0x2b,0x10,0x45,0x00,0x07,0x04,0x40,0x14,0x03,0x00,0x82,0x34,0x00,0xe0,0x02,0x3c,
+0xb7,0x05,0xa2,0x10,0x00,0xff,0x48,0x32,0xb3,0x04,0xa4,0x10,0xff,0x00,0x02,0x3c,
+0x25,0xb0,0x02,0x3c,0xc0,0x02,0x42,0x34,0x21,0xa0,0x00,0x00,0x00,0x00,0x40,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x25,0xb0,0x08,0x3c,0x64,0x03,0x02,0x35,0x00,0x00,0x43,0x94,0x68,0x03,0x04,0x35,
+0x90,0x43,0xa3,0xa6,0x00,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,0xa0,0x43,0xe2,0xae,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x90,0x43,0xa2,0x96,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x30,0xd2,0x01,0x40,0x10,0x78,0x1b,0x66,0x26,
+0x78,0x1b,0x67,0x26,0x78,0x1b,0x64,0x8e,0xd8,0x02,0xe5,0x8c,0xe8,0x02,0xe6,0x8c,
+0xf0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x00,0x50,0x03,0x3c,0x24,0x28,0xa2,0x00,
+0x01,0x00,0x84,0x34,0x24,0x30,0xc3,0x00,0x00,0x10,0x02,0x3c,0x78,0x1b,0x64,0xae,
+0x9b,0x04,0xc2,0x10,0xd8,0x02,0xe5,0xac,0x90,0x43,0xa2,0x96,0x00,0x00,0x00,0x00,
+0x02,0x00,0x42,0x30,0xbc,0x01,0x40,0x10,0xf3,0xff,0x03,0x24,0x78,0x1b,0x62,0x8e,
+0x00,0x00,0x00,0x00,0x24,0x10,0x43,0x00,0x04,0x00,0x42,0x34,0x78,0x1b,0x62,0xae,
+0x90,0x43,0xa2,0x96,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x30,0x49,0x01,0x40,0x10,
+0xcf,0xff,0x03,0x24,0x78,0x1b,0x62,0x8e,0x00,0x00,0x00,0x00,0x24,0x10,0x43,0x00,
+0x10,0x00,0x42,0x34,0x78,0x1b,0x62,0xae,0x90,0x43,0xa2,0x96,0x00,0x00,0x00,0x00,
+0x08,0x00,0x42,0x30,0x48,0x01,0x40,0x14,0x00,0x00,0x00,0x00,0x90,0x43,0xa2,0x96,
+0x00,0x00,0x00,0x00,0x10,0x00,0x42,0x30,0x26,0x00,0x40,0x10,0x78,0x1b,0x64,0x26,
+0xc9,0x02,0x82,0x90,0xa0,0x43,0xe3,0x8e,0x01,0x00,0x42,0x24,0xc9,0x02,0x82,0xa0,
+0x0f,0x00,0x63,0x30,0x01,0x00,0x02,0x24,0xa6,0x04,0x62,0x10,0x02,0x80,0x04,0x3c,
+0xa0,0x43,0x82,0x8c,0x02,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0xa5,0x04,0x43,0x10,
+0x00,0x00,0x00,0x00,0xa0,0x43,0x82,0x8c,0x03,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,
+0x02,0x00,0x43,0x10,0x03,0x00,0x04,0x24,0x21,0x20,0x00,0x00,0x15,0x51,0x00,0x0c,
+0x00,0x00,0x00,0x00,0xa0,0x43,0xe3,0x8e,0x90,0x43,0xa5,0x96,0x25,0xb0,0x02,0x3c,
+0xf0,0x00,0x63,0x30,0x64,0x03,0x42,0x34,0x02,0x19,0x03,0x00,0xef,0x00,0xa5,0x30,
+0x78,0x1b,0x64,0x26,0x02,0x00,0x83,0xa0,0x00,0x00,0x45,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x90,0x43,0xa2,0x96,0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x30,
+0x26,0x00,0x40,0x10,0x78,0x1b,0x64,0x26,0xca,0x02,0x82,0x90,0xa0,0x43,0xe3,0x8e,
+0x01,0x00,0x42,0x24,0xca,0x02,0x82,0xa0,0x0f,0x00,0x63,0x30,0x01,0x00,0x02,0x24,
+0x7a,0x04,0x62,0x10,0x02,0x80,0x04,0x3c,0xa0,0x43,0x82,0x8c,0x02,0x00,0x03,0x24,
+0x0f,0x00,0x42,0x30,0x79,0x04,0x43,0x10,0x00,0x00,0x00,0x00,0xa0,0x43,0x82,0x8c,
+0x03,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0x02,0x00,0x43,0x10,0x03,0x00,0x04,0x24,
+0x21,0x20,0x00,0x00,0x15,0x51,0x00,0x0c,0x00,0x00,0x00,0x00,0xa0,0x43,0xe3,0x8e,
+0x90,0x43,0xa5,0x96,0x25,0xb0,0x02,0x3c,0xf0,0x00,0x63,0x30,0x64,0x03,0x42,0x34,
+0x02,0x19,0x03,0x00,0xdf,0x00,0xa5,0x30,0x78,0x1b,0x64,0x26,0x02,0x00,0x83,0xa0,
+0x00,0x00,0x45,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x90,0x43,0xa2,0x96,
+0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x30,0xc4,0x00,0x40,0x10,0x78,0x1b,0x64,0x26,
+0x78,0x1b,0x6f,0x26,0x08,0x00,0xe4,0x8d,0x00,0x00,0x00,0x00,0x42,0x17,0x04,0x00,
+0x03,0x00,0x42,0x30,0x71,0x00,0x40,0x14,0x00,0x00,0x00,0x00,0xa0,0x43,0xe2,0x8e,
+0xff,0x9f,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x18,0x83,0x00,0x00,0xff,0x11,0x3c,
+0x00,0x20,0x04,0x3c,0x25,0x18,0x64,0x00,0x24,0x10,0x51,0x00,0x08,0x00,0xe3,0xad,
+0x98,0x01,0x40,0x14,0x02,0x80,0x10,0x3c,0x25,0xb0,0x0e,0x3c,0x03,0x0d,0xc2,0x35,
+0x00,0x00,0x43,0x90,0x10,0x00,0xe4,0x8d,0xff,0x3f,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x24,0x58,0x82,0x00,0x70,0x00,0x63,0x30,0x00,0x40,0x02,0x3c,0x56,0x04,0x60,0x10,
+0x25,0x58,0x62,0x01,0x94,0x0e,0xc2,0x35,0x9c,0x0e,0xc3,0x35,0xa4,0x0e,0xc4,0x35,
+0xac,0x0e,0xc5,0x35,0x00,0x00,0x47,0x8c,0x00,0x00,0x6a,0x8c,0x00,0x00,0x8c,0x8c,
+0x00,0x00,0xa6,0x8c,0x0c,0x00,0xe4,0x8d,0xb4,0x0e,0xc2,0x35,0x00,0x00,0x49,0x8c,
+0xff,0x03,0x05,0x3c,0x00,0xfc,0x08,0x24,0xbc,0x0e,0xc2,0x35,0x24,0x38,0xe5,0x00,
+0x24,0x30,0xc5,0x00,0x24,0x18,0x68,0x01,0x02,0x3c,0x07,0x00,0x00,0x00,0x4b,0x8c,
+0x24,0x20,0x88,0x00,0x02,0x34,0x06,0x00,0xcc,0x0e,0xcd,0x35,0xc4,0x0e,0xc8,0x35,
+0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34,0x25,0x20,0x87,0x00,0x25,0x18,0x66,0x00,
+0x00,0x00,0x07,0x8d,0x24,0x50,0x45,0x01,0x00,0x00,0xa6,0x8d,0x24,0x48,0x25,0x01,
+0x24,0x18,0x62,0x00,0x24,0x20,0x82,0x00,0x82,0x51,0x0a,0x00,0x82,0x49,0x09,0x00,
+0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34,0x25,0x20,0x8a,0x00,0x25,0x18,0x69,0x00,
+0x24,0x60,0x85,0x01,0x24,0x58,0x65,0x01,0x24,0x18,0x62,0x00,0x24,0x30,0xc5,0x00,
+0x00,0x61,0x0c,0x00,0x24,0x20,0x82,0x00,0x00,0x59,0x0b,0x00,0x24,0x38,0xe5,0x00,
+0x25,0x20,0x8c,0x00,0x25,0x18,0x6b,0x00,0x02,0x3c,0x07,0x00,0x02,0x34,0x06,0x00,
+0x16,0x00,0xe6,0xa5,0x0c,0x00,0xe4,0xad,0x10,0x00,0xe3,0xad,0x14,0x00,0xe7,0xa5,
+0x78,0x1b,0x63,0x26,0x0c,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x16,0x04,0x40,0x04,
+0x00,0x00,0x00,0x00,0xa0,0x43,0xe2,0x8e,0xff,0x00,0x04,0x3c,0x24,0x10,0x44,0x00,
+0x05,0x00,0x40,0x10,0x12,0x00,0x02,0x24,0xa0,0x43,0xe2,0x8e,0x00,0x00,0x00,0x00,
+0x24,0x10,0x44,0x00,0x02,0x14,0x02,0x00,0xc3,0x02,0x62,0xa0,0x6c,0x56,0x00,0x0c,
+0x10,0x00,0xa4,0x27,0xa7,0x55,0x00,0x0c,0x00,0x00,0x00,0x00,0x78,0x1b,0x62,0x26,
+0x0c,0x00,0x43,0x8c,0x00,0x80,0x04,0x3c,0x25,0x18,0x64,0x00,0x0c,0x00,0x43,0xac,
+0x78,0x1b,0x62,0x26,0xc3,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c,0x61,0x0c,0x63,0x34,
+0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x90,0x43,0xa2,0x96,
+0x00,0x00,0x00,0x00,0x80,0x00,0x42,0x30,0x52,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x78,0x1b,0x62,0x8e,0x00,0x00,0x00,0x00,0x42,0x10,0x02,0x00,0x01,0x00,0x42,0x30,
+0x08,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x90,0x43,0xa2,0x96,0x00,0x00,0x00,0x00,
+0x00,0x01,0x42,0x30,0xe6,0x00,0x40,0x14,0x02,0x80,0x02,0x3c,0x78,0x1b,0x62,0x26,
+0xea,0x02,0x40,0xa0,0x90,0x43,0xa2,0x96,0x01,0x00,0x03,0x24,0x00,0x02,0x42,0x30,
+0xe7,0x00,0x43,0x10,0x00,0x00,0x00,0x00,0x78,0x1b,0x62,0x8e,0xfd,0xff,0x03,0x24,
+0x24,0x10,0x43,0x00,0x78,0x1b,0x62,0xae,0x25,0xb0,0x04,0x3c,0x4c,0x00,0x83,0x34,
+0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,0x05,0x00,0x40,0x14,
+0x01,0x80,0x05,0x3c,0x78,0x1b,0x62,0x8e,0x3f,0xff,0x03,0x24,0x24,0x10,0x43,0x00,
+0x78,0x1b,0x62,0xae,0x18,0x03,0x82,0x34,0xa4,0x21,0xa3,0x24,0x00,0x00,0x43,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x70,0x41,0xc2,0x8e,0x70,0x41,0xc3,0x26,0x11,0x00,0x43,0x10,0x02,0x80,0x02,0x3c,
+0xbf,0x00,0x92,0x34,0x78,0x1b,0x51,0x24,0x21,0x80,0x60,0x00,0x21,0xf0,0x00,0x00,
+0x00,0x00,0x42,0x92,0x00,0x00,0x00,0x00,0x04,0x00,0x42,0x2c,0x08,0x00,0x40,0x10,
+0x00,0x00,0x00,0x00,0xf8,0x25,0x24,0x8e,0xd9,0x09,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x70,0x41,0xc3,0x8e,0x00,0x00,0x00,0x00,0xf5,0xff,0x70,0x14,0x00,0x00,0x00,0x00,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x02,0x80,0x02,0x3c,
+0x21,0x28,0x00,0x00,0x08,0x10,0x44,0x24,0x21,0x30,0x00,0x00,0x2d,0x28,0x00,0x0c,
+0x21,0x38,0x00,0x00,0x3f,0x48,0x00,0x08,0x78,0x1b,0x67,0x26,0x08,0x00,0x83,0x8c,
+0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x08,0x00,0x83,0xac,
+0x90,0x43,0xa2,0x96,0x00,0x00,0x00,0x00,0x80,0x00,0x42,0x30,0xb0,0xff,0x40,0x10,
+0x00,0x00,0x00,0x00,0x78,0x1b,0x65,0x26,0xc8,0x02,0xa4,0x8c,0xff,0x0f,0x02,0x3c,
+0xff,0xff,0x42,0x34,0x02,0x1f,0x04,0x00,0x01,0x00,0x63,0x24,0x24,0x20,0x82,0x00,
+0x00,0x1f,0x03,0x00,0x25,0x20,0x83,0x00,0x76,0x52,0x00,0x0c,0xc8,0x02,0xa4,0xac,
+0x90,0x43,0xa3,0x96,0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34,0x7f,0x00,0x63,0x30,
+0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x9a,0x49,0x00,0x08,
+0x00,0x00,0x00,0x00,0x78,0x1b,0x62,0x8e,0x00,0x00,0x00,0x00,0x24,0x10,0x43,0x00,
+0x78,0x1b,0x62,0xae,0x90,0x43,0xa2,0x96,0x00,0x00,0x00,0x00,0x08,0x00,0x42,0x30,
+0xba,0xfe,0x40,0x10,0x00,0x00,0x00,0x00,0x78,0x1b,0x65,0x26,0xc8,0x02,0xa4,0x8c,
+0xff,0xf0,0x02,0x3c,0xff,0xff,0x42,0x34,0x02,0x1e,0x04,0x00,0x0f,0x00,0x63,0x30,
+0x01,0x00,0x63,0x24,0x0f,0x00,0x63,0x30,0x24,0x20,0x82,0x00,0x00,0x1e,0x03,0x00,
+0x25,0x20,0x83,0x00,0xe5,0x50,0x00,0x0c,0xc8,0x02,0xa4,0xac,0x5d,0x52,0x00,0x0c,
+0x00,0x00,0x00,0x00,0xa0,0x43,0xe2,0x8e,0x01,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,
+0x86,0x05,0x43,0x10,0x02,0x80,0x04,0x3c,0xa0,0x43,0x82,0x8c,0x02,0x00,0x03,0x24,
+0x0f,0x00,0x42,0x30,0x83,0x05,0x43,0x10,0x00,0x00,0x00,0x00,0xa0,0x43,0x82,0x8c,
+0x03,0x00,0x03,0x24,0x0f,0x00,0x42,0x30,0x02,0x00,0x43,0x10,0x03,0x00,0x04,0x24,
+0x21,0x20,0x00,0x00,0x15,0x51,0x00,0x0c,0x00,0x00,0x00,0x00,0x29,0xb0,0x02,0x3c,
+0x00,0x00,0x40,0xac,0x08,0x00,0x44,0x34,0x0c,0x00,0x45,0x34,0x10,0x00,0x46,0x34,
+0x3c,0x00,0x51,0x34,0x04,0x00,0x43,0x34,0x14,0x00,0x47,0x34,0x18,0x00,0x48,0x34,
+0x1c,0x00,0x49,0x34,0x20,0x00,0x4a,0x34,0x24,0x00,0x4b,0x34,0x28,0x00,0x4c,0x34,
+0x2c,0x00,0x4d,0x34,0x30,0x00,0x4e,0x34,0x34,0x00,0x4f,0x34,0x38,0x00,0x50,0x34,
+0x02,0x80,0x02,0x3c,0x00,0x00,0x60,0xac,0x00,0x00,0x80,0xac,0x00,0x00,0xa0,0xac,
+0xff,0xff,0x04,0x24,0x00,0x00,0xc0,0xac,0x21,0x28,0x00,0x00,0x00,0x00,0xe0,0xac,
+0x78,0x1b,0x46,0x24,0x00,0x00,0x00,0xad,0x00,0x00,0x20,0xad,0x00,0x00,0x40,0xad,
+0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad,0x00,0x00,0xa0,0xad,0x00,0x00,0xc0,0xad,
+0x00,0x00,0xe0,0xad,0x00,0x00,0x00,0xae,0x00,0x00,0x20,0xae,0x21,0x18,0xa6,0x00,
+0x01,0x00,0xa5,0x24,0x08,0x00,0xa2,0x28,0xfc,0xff,0x40,0x14,0xf0,0x04,0x64,0xa0,
+0x02,0x80,0x02,0x3c,0x78,0x1b,0x43,0x24,0x1f,0x00,0x05,0x24,0x90,0x11,0x62,0x8c,
+0xff,0xff,0xa5,0x24,0xf0,0x00,0x42,0x34,0x90,0x11,0x62,0xac,0xfb,0xff,0xa1,0x04,
+0x94,0x00,0x63,0x24,0x90,0x43,0xa3,0x96,0x25,0xb0,0x02,0x3c,0x64,0x03,0x42,0x34,
+0xf7,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,
+0xc5,0x48,0x00,0x08,0x00,0x00,0x00,0x00,0x78,0x1b,0x62,0x8e,0xb5,0x48,0x00,0x08,
+0x24,0x10,0x43,0x00,0x78,0x1b,0x64,0x8e,0xe8,0x02,0xc5,0x8c,0xfe,0xff,0x02,0x24,
+0x00,0x90,0x03,0x3c,0x24,0x20,0x82,0x00,0x24,0x18,0xa3,0x00,0x00,0x10,0x02,0x3c,
+0x35,0xfe,0x62,0x14,0x78,0x1b,0x64,0xae,0x50,0x0c,0x03,0x35,0xff,0xbf,0x02,0x3c,
+0x00,0x00,0x64,0x90,0xff,0xff,0x42,0x34,0x24,0x10,0xa2,0x00,0x00,0x80,0x03,0x3c,
+0x25,0x10,0x43,0x00,0xe8,0x02,0xc2,0xac,0xac,0x48,0x00,0x08,0xdb,0x02,0xc4,0xa0,
+0x07,0xfe,0x40,0x14,0xc4,0x02,0x23,0x36,0xff,0xff,0x02,0x24,0x21,0xa0,0x00,0x00,
+0x00,0x00,0xc0,0xac,0x00,0x00,0x62,0xac,0x8a,0x48,0x00,0x08,0x00,0x00,0x00,0x00,
+0xff,0xff,0x03,0x24,0x78,0x1b,0x42,0x24,0xea,0x02,0x43,0xa0,0x90,0x43,0xa2,0x96,
+0x01,0x00,0x03,0x24,0x00,0x02,0x42,0x30,0x1b,0xff,0x43,0x14,0x00,0x00,0x00,0x00,
+0x78,0x1b,0x62,0x8e,0x25,0xb0,0x03,0x3c,0x77,0x00,0x04,0x24,0x02,0x00,0x42,0x34,
+0x99,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x78,0x1b,0x62,0xae,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0xb1,0x49,0x00,0x08,0x25,0xb0,0x04,0x3c,0xa5,0x00,0x82,0x34,
+0xf1,0x02,0xa2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x45,0x00,0x77,0x00,0x40,0x14,
+0x00,0xfe,0x06,0x3c,0x28,0x00,0x82,0x34,0x0b,0x03,0xa2,0x10,0x0f,0x00,0x10,0x3c,
+0x2b,0x10,0x45,0x00,0xb4,0x00,0x40,0x14,0xa1,0x00,0x82,0x34,0x18,0x00,0x82,0x34,
+0x1c,0x03,0xa2,0x10,0x2b,0x10,0x45,0x00,0x41,0x01,0x40,0x14,0x23,0x00,0x82,0x34,
+0x16,0x00,0x82,0x34,0xf2,0x03,0xa2,0x10,0x02,0x14,0x12,0x00,0x17,0x00,0x82,0x34,
+0xcf,0xfd,0xa2,0x14,0x25,0xb0,0x04,0x3c,0x68,0x03,0x85,0x34,0x00,0x00,0xa3,0x8c,
+0x00,0xff,0x42,0x32,0x00,0x12,0x02,0x00,0xff,0xff,0x74,0x30,0x25,0x10,0x54,0x00,
+0x00,0x00,0xa2,0xac,0x64,0x03,0x84,0x34,0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,
+0xff,0x00,0x54,0x30,0x40,0x00,0x83,0x36,0x00,0x00,0x83,0xa0,0x87,0x48,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x25,0xb0,0x04,0x3c,0x94,0x0e,0x82,0x34,0x9c,0x0e,0x83,0x34,
+0xa4,0x0e,0x85,0x34,0xac,0x0e,0x86,0x34,0x00,0x00,0x49,0x8c,0x00,0x00,0x6c,0x8c,
+0xb4,0x0e,0x82,0x34,0x00,0x00,0xae,0x8c,0x10,0x00,0xe3,0x8d,0x00,0x00,0xc8,0x8c,
+0x0c,0x00,0xe5,0x8d,0x00,0x00,0x4a,0x8c,0xff,0x3f,0x02,0x3c,0xff,0x03,0x06,0x3c,
+0xff,0xff,0x42,0x34,0x00,0xfc,0x07,0x24,0x24,0x18,0x62,0x00,0x24,0x48,0x26,0x01,
+0xbc,0x0e,0x82,0x34,0x24,0x40,0x06,0x01,0x00,0x00,0x4b,0x8c,0x24,0x18,0x67,0x00,
+0x24,0x28,0xa7,0x00,0x02,0x44,0x08,0x00,0xcc,0x0e,0x8d,0x34,0x02,0x4c,0x09,0x00,
+0xc4,0x0e,0x84,0x34,0xf0,0xff,0x02,0x3c,0x00,0x00,0x87,0x8c,0xff,0x03,0x42,0x34,
+0x00,0x00,0xa4,0x8d,0x25,0x18,0x68,0x00,0x25,0x28,0xa9,0x00,0x24,0x60,0x86,0x01,
+0x24,0x50,0x46,0x01,0xa0,0x43,0x08,0x8e,0x24,0x18,0x62,0x00,0x24,0x28,0xa2,0x00,
+0x82,0x61,0x0c,0x00,0x82,0x51,0x0a,0x00,0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x25,0x28,0xac,0x00,0x25,0x18,0x6a,0x00,0x24,0x70,0xc6,0x01,0x24,0x58,0x66,0x01,
+0x24,0x18,0x62,0x00,0x24,0x28,0xa2,0x00,0x24,0x20,0x86,0x00,0x00,0x71,0x0e,0x00,
+0x00,0x59,0x0b,0x00,0x24,0x38,0xe6,0x00,0xff,0xff,0x02,0x3c,0x25,0x28,0xae,0x00,
+0x25,0x18,0x6b,0x00,0x02,0x3c,0x07,0x00,0x02,0x24,0x04,0x00,0x24,0x40,0x02,0x01,
+0x0c,0x00,0xe5,0xad,0x10,0x00,0xe3,0xad,0x14,0x00,0xe7,0xa5,0x56,0x00,0x00,0x11,
+0x16,0x00,0xe4,0xa5,0xa0,0x43,0x03,0x8e,0xa0,0x43,0x02,0x8e,0x02,0x1c,0x03,0x00,
+0x24,0x10,0x51,0x00,0x02,0x16,0x02,0x00,0xc7,0x02,0xe2,0xa1,0xc3,0x02,0xe3,0xa1,
+0x6c,0x56,0x00,0x0c,0x10,0x00,0xa4,0x27,0x90,0x43,0xa3,0x96,0x25,0xb0,0x02,0x3c,
+0x64,0x03,0x42,0x34,0xbf,0x00,0x63,0x30,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x8b,0x49,0x00,0x08,0x78,0x1b,0x62,0x26,0x10,0x00,0xc2,0x34,
+0x7a,0x02,0xa2,0x10,0x2b,0x10,0x45,0x00,0x9a,0x00,0x40,0x14,0x19,0x00,0xc2,0x34,
+0xaa,0x00,0x82,0x34,0x12,0x03,0xa2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x45,0x00,
+0x2d,0x01,0x40,0x14,0xae,0x00,0x82,0x34,0xa6,0x00,0x82,0x34,0xdf,0x03,0xa2,0x10,
+0x00,0x00,0x00,0x00,0xa7,0x00,0x82,0x34,0x5a,0xfd,0xa2,0x14,0x25,0xb0,0x02,0x3c,
+0x00,0xff,0x42,0x32,0x02,0xa2,0x02,0x00,0x02,0x1c,0x12,0x00,0x01,0x00,0x02,0x24,
+0x50,0x04,0x82,0x12,0xff,0x00,0x68,0x30,0x02,0x00,0x02,0x24,0x41,0x04,0x82,0x12,
+0xc0,0x10,0x08,0x00,0x03,0x00,0x02,0x24,0x4d,0xfd,0x82,0x16,0xc0,0x10,0x08,0x00,
+0x21,0x10,0x48,0x00,0x80,0x10,0x02,0x00,0x02,0x80,0x04,0x3c,0x21,0x10,0x48,0x00,
+0x08,0x2d,0x83,0x24,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,
+0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0x87,0x48,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x02,0x00,0x82,0x34,0x65,0x02,0xa2,0x10,0x2b,0x10,0x45,0x00,
+0x8b,0x00,0x40,0x14,0x10,0x00,0xc2,0x34,0x00,0xf8,0x03,0x3c,0x17,0x00,0x62,0x34,
+0x4b,0x03,0xa2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x45,0x00,0x0e,0x01,0x40,0x14,
+0x15,0x00,0x62,0x34,0x3c,0x04,0xa2,0x10,0x00,0x00,0x00,0x00,0x16,0x00,0x62,0x34,
+0x2f,0xfd,0xa2,0x14,0x00,0x00,0x00,0x00,0x58,0x13,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x12,0x00,0x02,0x24,0xc7,0x02,0xe2,0xa1,
+0x0e,0x4b,0x00,0x08,0xc3,0x02,0xe2,0xa1,0xd0,0x02,0xa2,0x10,0x00,0x00,0x00,0x00,
+0x2b,0x10,0x45,0x00,0x7f,0x00,0x40,0x14,0xa3,0x00,0x82,0x34,0x29,0x00,0x82,0x34,
+0xa6,0x03,0xa2,0x10,0xa0,0x00,0x82,0x34,0x1e,0xfd,0xa2,0x14,0x25,0xb0,0x02,0x3c,
+0x00,0x0f,0x42,0x32,0x02,0x22,0x02,0x00,0x01,0x00,0x03,0x24,0x3b,0x04,0x83,0x10,
+0x00,0x00,0x00,0x00,0x02,0x00,0x02,0x24,0x45,0x04,0x82,0x10,0x00,0x00,0x00,0x00,
+0x03,0x00,0x02,0x24,0xff,0x03,0x82,0x10,0x00,0x00,0x00,0x00,0x15,0x51,0x00,0x0c,
+0x21,0x20,0x00,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xf1,0x04,0x3c,
+0x02,0x00,0x82,0x34,0x0a,0xfd,0xa2,0x10,0x2b,0x10,0x45,0x00,0x1c,0x01,0x40,0x14,
+0x04,0x00,0x82,0x34,0x44,0x03,0xa4,0x10,0x26,0xb0,0x06,0x3c,0x01,0x00,0x82,0x34,
+0x04,0xfd,0xa2,0x14,0x25,0xb0,0x02,0x3c,0x00,0xff,0x42,0x32,0x02,0xf2,0x02,0x00,
+0xba,0x03,0xc0,0x13,0x25,0xb0,0x05,0x3c,0x94,0x00,0xa2,0x34,0x00,0x00,0x43,0x94,
+0xb0,0x03,0xa6,0x34,0xff,0xff,0xca,0x27,0xff,0xff,0x74,0x30,0x1b,0x00,0x9e,0x02,
+0x02,0x00,0xc0,0x17,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x00,0x00,0xd4,0xac,
+0x78,0x1b,0x68,0x26,0x01,0x00,0x02,0x24,0xef,0x0a,0x02,0xa1,0x80,0xff,0x02,0x24,
+0x4f,0x00,0xab,0x34,0x9e,0x00,0xac,0x34,0xf2,0x0a,0x09,0x95,0x44,0x00,0xa7,0x34,
+0xd8,0x00,0xa5,0x34,0x12,0xa0,0x00,0x00,0x80,0x22,0x14,0x00,0x00,0xf8,0x84,0x24,
+0x18,0x00,0xd4,0x03,0xff,0xff,0x5e,0x31,0x00,0x19,0x1e,0x00,0x25,0x18,0x62,0x00,
+0x26,0xb0,0x02,0x3c,0x00,0x00,0xde,0xac,0x7c,0x00,0x42,0x34,0x00,0x00,0x63,0xa1,
+0x00,0x00,0xd4,0xac,0x00,0x00,0x94,0xa5,0x42,0xa1,0x04,0x00,0x00,0x00,0xd4,0xac,
+0x00,0x00,0x54,0xa4,0x00,0x00,0xe3,0x94,0xff,0xfd,0x02,0x24,0x24,0x18,0x62,0x00,
+0x00,0x00,0xe3,0xa4,0x00,0x00,0xe4,0x94,0x12,0x68,0x00,0x00,0x23,0x48,0x2d,0x01,
+0x00,0x02,0x84,0x34,0xf4,0x0a,0x09,0xa5,0x00,0x00,0xe4,0xa4,0x00,0x00,0xa2,0x90,
+0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x34,0x00,0x00,0xa2,0xa0,0x87,0x48,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x35,0x02,0xa2,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x45,0x00,
+0xac,0x00,0x40,0x14,0x12,0x00,0xc2,0x34,0xac,0x02,0xa2,0x10,0x00,0x00,0x00,0x00,
+0x2b,0x10,0xa2,0x00,0x2d,0x03,0x40,0x14,0x00,0x00,0x00,0x00,0x18,0x00,0xc2,0x34,
+0xbf,0xfc,0xa2,0x14,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x78,0x1b,0x62,0x26,0x83,0x0b,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x26,0x02,0xa2,0x10,0x2b,0x10,0x45,0x00,0xd7,0x00,0x40,0x14,0x12,0x00,0xc2,0x34,
+0x03,0x00,0x82,0x34,0x23,0x03,0xa2,0x10,0x07,0x00,0xc2,0x34,0xa8,0xfc,0xa2,0x14,
+0x00,0x00,0x00,0x00,0x34,0x59,0x00,0x0c,0x21,0x20,0x40,0x02,0x87,0x48,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x5f,0x01,0xa2,0x10,0x2b,0x10,0x45,0x00,0x01,0x01,0x40,0x14,
+0x78,0x1b,0x63,0x26,0x25,0xb0,0x02,0x3c,0xff,0x00,0x03,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0xff,0x63,0x34,0x24,0x18,0x43,0x02,0x00,0x00,0x45,0x8c,0x02,0xf2,0x03,0x00,
+0x21,0x52,0x00,0x0c,0x21,0x20,0xc0,0x03,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x9e,0x02,0xa2,0x10,0x2b,0x10,0x45,0x00,0xfb,0x00,0x40,0x14,0x24,0x00,0x82,0x34,
+0x19,0x00,0x82,0x34,0x8f,0xfc,0xa2,0x14,0x25,0xb0,0x02,0x3c,0x25,0xb0,0x03,0x3c,
+0xc0,0x02,0x62,0x34,0x00,0x00,0x40,0xac,0x94,0x0e,0x64,0x34,0x9c,0x0e,0x62,0x34,
+0xa4,0x0e,0x65,0x34,0xac,0x0e,0x66,0x34,0x00,0x00,0x89,0x8c,0x78,0x1b,0x6f,0x26,
+0x00,0x00,0x4b,0x8c,0x00,0x00,0xac,0x8c,0x00,0x00,0xc4,0x8c,0xb4,0x0e,0x62,0x34,
+0x0c,0x00,0xe5,0x8d,0x10,0x00,0xe6,0x8d,0x00,0x00,0x4a,0x8c,0xff,0x03,0x07,0x3c,
+0x00,0xfc,0x08,0x24,0xbc,0x0e,0x62,0x34,0x24,0x48,0x27,0x01,0x24,0x20,0x87,0x00,
+0x00,0x00,0x4d,0x8c,0x24,0x30,0xc8,0x00,0x02,0x4c,0x09,0x00,0x24,0x28,0xa8,0x00,
+0x02,0x24,0x04,0x00,0xcc,0x0e,0x68,0x34,0xf0,0xff,0x02,0x3c,0xc4,0x0e,0x63,0x34,
+0xff,0x03,0x42,0x34,0x25,0x28,0xa9,0x00,0x25,0x30,0xc4,0x00,0x00,0x00,0x69,0x8c,
+0x08,0x00,0xe4,0x8d,0x00,0x00,0x0e,0x8d,0x24,0x58,0x67,0x01,0x24,0x50,0x47,0x01,
+0x24,0x30,0xc2,0x00,0x24,0x28,0xa2,0x00,0x82,0x59,0x0b,0x00,0x82,0x51,0x0a,0x00,
+0x0f,0xc0,0x03,0x3c,0xff,0x9f,0x02,0x3c,0xff,0xff,0x63,0x34,0xff,0xff,0x42,0x34,
+0x25,0x28,0xab,0x00,0x25,0x30,0xca,0x00,0x24,0x60,0x87,0x01,0x24,0x68,0xa7,0x01,
+0xff,0x00,0x08,0x3c,0x24,0x20,0x82,0x00,0x24,0x30,0xc3,0x00,0x24,0x28,0xa3,0x00,
+0x24,0x70,0xc7,0x01,0x00,0x61,0x0c,0x00,0x00,0x69,0x0d,0x00,0x24,0x48,0x27,0x01,
+0x00,0xff,0x03,0x35,0x00,0x20,0x02,0x3c,0x25,0x20,0x82,0x00,0x25,0x28,0xac,0x00,
+0x25,0x30,0xcd,0x00,0x02,0x4c,0x09,0x00,0x02,0x74,0x0e,0x00,0x24,0x18,0x43,0x02,
+0x08,0x00,0xe4,0xad,0x0c,0x00,0xe5,0xad,0x10,0x00,0xe6,0xad,0x14,0x00,0xe9,0xa5,
+0x55,0x03,0x60,0x10,0x16,0x00,0xee,0xa5,0x24,0x10,0x48,0x02,0x02,0x14,0x02,0x00,
+0x02,0x1a,0x12,0x00,0xc7,0x02,0xe2,0xa1,0xc3,0x02,0xe3,0xa1,0x78,0x1b,0x62,0x26,
+0xc3,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c,0x61,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x6c,0x56,0x00,0x0c,0x10,0x00,0xa4,0x27,
+0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x92,0x02,0xa2,0x10,0x00,0x00,0x00,0x00,
+0x2b,0x10,0x45,0x00,0x82,0x00,0x40,0x14,0xaf,0x00,0x82,0x34,0xab,0x00,0x82,0x34,
+0x2b,0xfc,0xa2,0x14,0x00,0x00,0x00,0x00,0x54,0x5a,0x00,0x0c,0x21,0x20,0x40,0x02,
+0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x3d,0x02,0xa4,0x10,0x2b,0x10,0x85,0x00,
+0x87,0x00,0x40,0x14,0x78,0x1b,0x62,0x26,0x18,0x00,0x62,0x34,0x20,0xfc,0xa2,0x14,
+0x00,0x00,0x00,0x00,0xb1,0x13,0x00,0x0c,0x00,0x00,0x00,0x00,0x87,0x48,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x00,0xff,0x03,0x3c,0x0f,0x00,0x62,0x34,0x0d,0x02,0xa2,0x10,
+0x2b,0x10,0x45,0x00,0x70,0x00,0x40,0x14,0x10,0x00,0x62,0x34,0x1a,0x00,0xc2,0x34,
+0x14,0xfc,0xa2,0x14,0x25,0xb0,0x02,0x3c,0xff,0x00,0x02,0x3c,0x00,0xff,0x42,0x34,
+0x24,0x10,0x42,0x02,0x02,0xf2,0x02,0x00,0x01,0x00,0x03,0x24,0x28,0x03,0xc3,0x13,
+0x78,0x1b,0x62,0x26,0x02,0x00,0xc2,0x2b,0x1f,0x03,0x40,0x14,0x03,0x00,0x02,0x24,
+0x19,0x03,0xc2,0x13,0x00,0x00,0x00,0x00,0x78,0x1b,0x62,0x26,0x7c,0x0b,0x44,0x94,
+0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0x87,0x48,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0xcd,0x01,0xa2,0x10,0x2b,0x10,0xa2,0x00,0x7b,0x00,0x40,0x14,
+0x02,0x14,0x12,0x00,0x08,0x00,0x82,0x34,0xfa,0xfb,0xa2,0x14,0x25,0xb0,0x02,0x3c,
+0x00,0xff,0x42,0x32,0x02,0x92,0x02,0x00,0x05,0x00,0x40,0x12,0x21,0x20,0x00,0x00,
+0x01,0x00,0x02,0x24,0x02,0x00,0x42,0x12,0x01,0x00,0x04,0x24,0x21,0x20,0x00,0x00,
+0x95,0x42,0x00,0x0c,0x00,0x00,0x00,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0xe8,0x01,0xa2,0x10,0x2b,0x10,0xa2,0x00,0x68,0x02,0x40,0x14,0x00,0x00,0x00,0x00,
+0xe8,0xfb,0xa8,0x14,0x25,0xb0,0x02,0x3c,0x25,0xb0,0x05,0x3c,0xc4,0x02,0xa3,0x34,
+0x00,0x00,0x64,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x90,0x82,0x00,
+0x01,0x00,0x03,0x3c,0x2b,0x18,0x72,0x00,0xdd,0xfb,0x60,0x10,0x00,0xb0,0x02,0x3c,
+0x25,0x90,0x42,0x02,0x00,0x00,0x54,0x8e,0xc8,0x02,0xa2,0x34,0x00,0x00,0x54,0xac,
+0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x75,0x02,0xa2,0x10,0x2b,0x10,0x45,0x00,
+0x66,0x00,0x40,0x14,0x02,0x1c,0x12,0x00,0x1f,0x00,0x68,0x30,0xc0,0x10,0x08,0x00,
+0x21,0x10,0x48,0x00,0x80,0x10,0x02,0x00,0x25,0xb0,0x04,0x3c,0x21,0x10,0x48,0x00,
+0x02,0x80,0x03,0x3c,0xc8,0x02,0x85,0x34,0x78,0x1b,0x63,0x24,0xc4,0x02,0x84,0x34,
+0x80,0x10,0x02,0x00,0x00,0x00,0x94,0x8c,0x21,0x48,0x43,0x00,0x00,0x00,0xa7,0x8c,
+0x21,0x58,0x80,0x00,0x21,0x28,0x00,0x00,0xff,0x00,0x0a,0x24,0x29,0xb0,0x06,0x3c,
+0x21,0x20,0xa3,0x00,0xf0,0x04,0x82,0x90,0x00,0x00,0x00,0x00,0x6a,0x02,0x4a,0x10,
+0x00,0x00,0x00,0x00,0x68,0x02,0x48,0x10,0x00,0x00,0x00,0x00,0x01,0x00,0xa5,0x24,
+0x08,0x00,0xa2,0x28,0xf6,0xff,0x40,0x14,0x08,0x00,0xc6,0x24,0x08,0x00,0x02,0x24,
+0xb3,0xfb,0xa2,0x14,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xff,0xff,0x03,0x24,
+0xc4,0x02,0x42,0x34,0x00,0x00,0x43,0xac,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0xab,0xfb,0xa2,0x14,0x00,0x00,0x00,0x00,0xe5,0x50,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0xa6,0xfb,0xa2,0x14,0x25,0xb0,0x02,0x3c,
+0x00,0xff,0x43,0x32,0x00,0xff,0x02,0x34,0x5f,0x00,0x62,0x14,0x78,0x1b,0x62,0x26,
+0x78,0x1b,0x63,0x26,0xff,0xff,0x02,0x34,0x86,0x48,0x00,0x08,0xec,0x25,0x62,0xac,
+0x04,0x24,0x43,0x8c,0xfd,0xff,0x04,0x24,0x24,0x18,0x64,0x00,0x01,0x00,0x63,0x34,
+0x86,0x48,0x00,0x08,0x04,0x24,0x43,0xac,0x96,0xfb,0xa2,0x14,0x25,0xb0,0x02,0x3c,
+0x78,0x1b,0x65,0x26,0xd8,0x02,0xa3,0x8c,0x0f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x12,0x01,0x04,0x3c,0x25,0xb0,0x02,0x3c,0x0c,0x09,0x42,0x34,
+0x13,0x13,0x84,0x34,0xd8,0x02,0xa3,0xac,0x00,0x00,0x44,0xac,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0x43,0x32,
+0xff,0x00,0x5e,0x30,0x04,0x00,0xc0,0x13,0x02,0x92,0x03,0x00,0x01,0x00,0x02,0x24,
+0x02,0x00,0xc2,0x13,0x01,0x00,0x04,0x24,0x21,0x20,0x00,0x00,0x95,0x42,0x00,0x0c,
+0x0f,0x00,0x10,0x3c,0xff,0xff,0x05,0x36,0xe3,0x44,0x00,0x0c,0x21,0x20,0x40,0x02,
+0xff,0xff,0x10,0x36,0x24,0xa0,0x50,0x00,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,
+0x00,0x00,0x54,0xac,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x1f,0x00,0x68,0x30,
+0xc0,0x10,0x08,0x00,0x21,0x10,0x48,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x48,0x00,
+0x80,0x10,0x02,0x00,0x78,0x1b,0x64,0x26,0x21,0x30,0x44,0x00,0x90,0x11,0xc3,0x90,
+0x0f,0x00,0x02,0x24,0x02,0x29,0x03,0x00,0xaf,0xff,0xa2,0x10,0x21,0x18,0xa4,0x00,
+0xf0,0x04,0x62,0x90,0x00,0x00,0x00,0x00,0xab,0xff,0x48,0x14,0xc0,0x20,0x05,0x00,
+0xff,0xff,0x02,0x24,0xf0,0x04,0x62,0xa0,0x90,0x11,0xc3,0x8c,0x29,0xb0,0x02,0x3c,
+0x21,0x20,0x82,0x00,0x25,0xb0,0x02,0x3c,0xf0,0x00,0x63,0x34,0xc4,0x02,0x42,0x34,
+0x90,0x11,0xc3,0xac,0x00,0x00,0x80,0xac,0x04,0x00,0x80,0xac,0x00,0x00,0x45,0xac,
+0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0x42,0x34,0x24,0x10,0x42,0x02,
+0x25,0xb0,0x03,0x3c,0x02,0x92,0x02,0x00,0x21,0x10,0x43,0x02,0x00,0x00,0x54,0x8c,
+0xc4,0x02,0x63,0x34,0x00,0x00,0x74,0xac,0x00,0x00,0x54,0x8c,0x87,0x48,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x78,0x1b,0x62,0x26,0x86,0x48,0x00,0x08,0xec,0x25,0x40,0xac,
+0xdb,0x02,0xe3,0x90,0x50,0x0c,0x02,0x35,0x21,0x28,0x00,0x00,0x00,0x00,0x43,0xa0,
+0x01,0x00,0xa2,0x24,0xff,0x00,0x45,0x30,0x06,0x00,0xa3,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0xa2,0x24,0x78,0x1b,0x62,0x26,0xdb,0x02,0x44,0x90,0x25,0xb0,0x03,0x3c,
+0x58,0x0c,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,
+0x78,0x1b,0x65,0x26,0xe8,0x02,0xa3,0x8c,0x00,0x40,0x04,0x3c,0xff,0x7f,0x02,0x3c,
+0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0xac,0x48,0x00,0x08,
+0xe8,0x02,0xa3,0xac,0x00,0xff,0x62,0x34,0x24,0x10,0x42,0x02,0x21,0xfb,0x40,0x10,
+0x25,0xb0,0x02,0x3c,0x08,0x03,0xe5,0x90,0x24,0x18,0x43,0x02,0x00,0xff,0x44,0x32,
+0x02,0x1c,0x03,0x00,0x02,0x22,0x04,0x00,0x00,0x01,0xa5,0x34,0xfb,0xff,0x66,0x24,
+0xfb,0xff,0x82,0x24,0x23,0x03,0xe2,0xa0,0x08,0x03,0xe5,0xac,0x21,0x03,0xe6,0xa0,
+0x20,0x03,0xe3,0xa0,0x86,0x48,0x00,0x08,0x22,0x03,0xe4,0xa0,0x07,0x49,0x00,0x08,
+0x01,0x00,0x04,0x24,0xdd,0x48,0x00,0x08,0x01,0x00,0x04,0x24,0x07,0x49,0x00,0x08,
+0x02,0x00,0x04,0x24,0xdd,0x48,0x00,0x08,0x02,0x00,0x04,0x24,0xc4,0x02,0x23,0x36,
+0x00,0x00,0x64,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x90,0x82,0x00,
+0x01,0x00,0x03,0x3c,0x2b,0x18,0x72,0x00,0x01,0xfb,0x60,0x10,0xc8,0x02,0x22,0x36,
+0x00,0x00,0x54,0x8c,0x00,0xb0,0x03,0x3c,0x25,0x90,0x43,0x02,0x00,0x00,0x54,0xae,
+0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x6c,0x56,0x00,0x0c,0x10,0x00,0xa4,0x27,
+0x8b,0x49,0x00,0x08,0x78,0x1b,0x62,0x26,0x76,0x52,0x00,0x0c,0x10,0x00,0xeb,0xad,
+0x73,0x49,0x00,0x08,0x78,0x1b,0x63,0x26,0x24,0x20,0x43,0x02,0x5b,0x52,0x00,0x0c,
+0x02,0x24,0x04,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x82,0x0b,0xe2,0x90,
+0x00,0x00,0x00,0x00,0x31,0xfe,0x40,0x14,0x00,0x00,0x00,0x00,0x00,0xff,0x62,0x34,
+0x24,0x10,0x42,0x02,0x02,0xf2,0x02,0x00,0x01,0x00,0x02,0x24,0x21,0x20,0xc0,0x03,
+0x82,0x0b,0xe2,0xa0,0x2c,0x22,0x00,0x0c,0x83,0x0b,0xfe,0xa0,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x04,0x24,0xe2,0x8c,0xfe,0xff,0x03,0x24,0x02,0x00,0x42,0x34,0x24,0x10,0x43,0x00,
+0x86,0x48,0x00,0x08,0x04,0x24,0xe2,0xac,0xff,0xff,0x05,0x36,0x60,0x00,0x06,0x24,
+0xb8,0x44,0x00,0x0c,0x24,0x00,0x04,0x24,0x9c,0x12,0x00,0x0c,0xe8,0x03,0x04,0x24,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x24,0x00,0x04,0x24,0xe3,0x44,0x00,0x0c,0xff,0xff,0x05,0x36,0x1f,0x00,0x54,0x30,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xcb,0x12,0x00,0x0c,
+0x64,0x00,0x04,0x24,0xc4,0x02,0x22,0x36,0x00,0x00,0x54,0xa0,0x87,0x48,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x08,0x00,0xe3,0x8c,0xff,0x9f,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x86,0x48,0x00,0x08,0x08,0x00,0xe3,0xac,0xc8,0x02,0xe4,0x8c,
+0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0x02,0x1f,0x04,0x00,0x01,0x00,0x63,0x24,
+0x24,0x20,0x82,0x00,0x00,0x1f,0x03,0x00,0x25,0x20,0x83,0x00,0xc8,0x02,0xe4,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x76,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0x62,0x34,
+0xc4,0x02,0x24,0x36,0x00,0x00,0x94,0x8c,0x24,0x10,0x42,0x02,0x02,0x92,0x02,0x00,
+0x21,0x18,0x51,0x02,0x00,0x00,0x74,0xac,0x00,0x00,0x74,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x94,0xac,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x82,0x0b,0xe3,0x90,
+0xc4,0x02,0x22,0x36,0x00,0x00,0x43,0xac,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x29,0xb0,0x02,0x3c,
+0x00,0x00,0x40,0xac,0x04,0x00,0x44,0x34,0x08,0x00,0x45,0x34,0x0c,0x00,0x46,0x34,
+0x3c,0x00,0x43,0x34,0x10,0x00,0x47,0x34,0x14,0x00,0x48,0x34,0x18,0x00,0x49,0x34,
+0x1c,0x00,0x4a,0x34,0x20,0x00,0x4b,0x34,0x24,0x00,0x4c,0x34,0x28,0x00,0x4d,0x34,
+0x2c,0x00,0x4e,0x34,0x30,0x00,0x4f,0x34,0x34,0x00,0x50,0x34,0x38,0x00,0x51,0x34,
+0x02,0x80,0x02,0x3c,0x00,0x00,0x80,0xac,0x00,0x00,0xa0,0xac,0xff,0xff,0x04,0x24,
+0x00,0x00,0xc0,0xac,0x21,0x28,0x00,0x00,0x00,0x00,0xe0,0xac,0x78,0x1b,0x46,0x24,
+0x00,0x00,0x00,0xad,0x00,0x00,0x20,0xad,0x00,0x00,0x40,0xad,0x00,0x00,0x60,0xad,
+0x00,0x00,0x80,0xad,0x00,0x00,0xa0,0xad,0x00,0x00,0xc0,0xad,0x00,0x00,0xe0,0xad,
+0x00,0x00,0x00,0xae,0x00,0x00,0x20,0xae,0x00,0x00,0x60,0xac,0x21,0x18,0xa6,0x00,
+0x01,0x00,0xa5,0x24,0x08,0x00,0xa2,0x28,0xfc,0xff,0x40,0x14,0xf0,0x04,0x64,0xa0,
+0x02,0x80,0x02,0x3c,0x78,0x1b,0x43,0x24,0x1f,0x00,0x05,0x24,0x90,0x11,0x62,0x8c,
+0xff,0xff,0xa5,0x24,0xf0,0x00,0x42,0x34,0x90,0x11,0x62,0xac,0xfb,0xff,0xa1,0x04,
+0x94,0x00,0x63,0x24,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x24,0x20,0x43,0x02,
+0xc6,0x15,0x00,0x0c,0x02,0x24,0x04,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x6e,0x5a,0x00,0x0c,0x00,0x00,0x00,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x02,0x1a,0x08,0x00,0xff,0x00,0x02,0x24,0x2b,0x01,0x62,0x10,0x25,0xb0,0x05,0x3c,
+0x0e,0x00,0x60,0x14,0x00,0xcc,0x02,0x34,0x25,0xb0,0x04,0x3c,0x64,0x03,0x84,0x34,
+0x78,0x1b,0x67,0x26,0x00,0x00,0x85,0x94,0xe8,0x02,0xe6,0x8c,0xff,0xef,0x02,0x3c,
+0xff,0xfe,0x03,0x24,0xff,0xff,0x42,0x34,0x24,0x28,0xa3,0x00,0x24,0x30,0xc2,0x00,
+0x00,0x00,0x85,0xa4,0xe8,0x02,0xe6,0xac,0x00,0xcc,0x02,0x34,0x39,0xfa,0x02,0x15,
+0x25,0xb0,0x02,0x3c,0x78,0x1b,0x62,0x26,0xe8,0x02,0x43,0x8c,0x00,0x10,0x04,0x3c,
+0x25,0x18,0x64,0x00,0x86,0x48,0x00,0x08,0xe8,0x02,0x43,0xac,0x24,0x10,0x43,0x02,
+0x02,0xf4,0x02,0x00,0x00,0xff,0x43,0x32,0x04,0x00,0xc0,0x13,0x02,0x92,0x03,0x00,
+0x01,0x00,0x02,0x24,0x02,0x00,0xc2,0x13,0x01,0x00,0x04,0x24,0x21,0x20,0x00,0x00,
+0x25,0xb0,0x10,0x3c,0x95,0x42,0x00,0x0c,0xc4,0x02,0x10,0x36,0x00,0x00,0x14,0x8e,
+0x0f,0x00,0x11,0x3c,0x21,0x20,0x40,0x02,0x21,0x30,0x80,0x02,0xb8,0x44,0x00,0x0c,
+0xff,0xff,0x25,0x36,0x21,0x20,0x40,0x02,0xe3,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,
+0x00,0x00,0x02,0xae,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x00,0xff,0x62,0x34,
+0x24,0x10,0x42,0x02,0x02,0xf2,0x02,0x00,0x78,0x1b,0x63,0x26,0x83,0x0b,0x7e,0xa0,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x87,0x48,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x25,0xb0,0x03,0x3c,0xff,0x00,0x02,0x24,0x56,0x01,0x63,0x34,
+0x00,0x00,0x62,0xa4,0x01,0x00,0x04,0x24,0x02,0x80,0x02,0x3c,0x86,0x48,0x00,0x08,
+0x80,0x43,0x44,0xa0,0x24,0x10,0x43,0x02,0x02,0xa4,0x02,0x00,0x00,0xff,0x43,0x32,
+0x07,0x00,0x82,0x2e,0xfe,0xf9,0x40,0x10,0x02,0xf2,0x03,0x00,0x02,0x80,0x04,0x3c,
+0xbc,0xaf,0x83,0x24,0x80,0x10,0x14,0x00,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x8c,
+0x00,0x00,0x00,0x00,0x08,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x78,0x1b,0x65,0x26,
+0xd8,0x02,0xa3,0x8c,0x0f,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0x10,0x00,0x04,0x3c,0x25,0x18,0x64,0x00,0x86,0x48,0x00,0x08,0xd8,0x02,0xa3,0xac,
+0xe4,0x13,0x00,0x0c,0x00,0x00,0x00,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x78,0x1b,0x65,0x26,0x04,0x24,0xa2,0x8c,0xfd,0xff,0x03,0x24,0xfe,0xff,0x04,0x24,
+0x24,0x10,0x43,0x00,0x24,0x10,0x44,0x00,0x86,0x48,0x00,0x08,0x04,0x24,0xa2,0xac,
+0x1f,0x00,0x48,0x30,0xc0,0x18,0x08,0x00,0x21,0x18,0x68,0x00,0x00,0x0f,0x45,0x32,
+0x80,0x18,0x03,0x00,0x02,0x2a,0x05,0x00,0x78,0x1b,0x64,0x26,0x25,0xb0,0x02,0x3c,
+0x21,0x18,0x68,0x00,0x21,0x30,0xa4,0x00,0xc8,0x02,0x47,0x34,0x80,0x18,0x03,0x00,
+0xc4,0x02,0x42,0x34,0x00,0x00,0x54,0x8c,0x21,0x18,0x64,0x00,0x00,0x00,0xe7,0x8c,
+0xf0,0x04,0xc8,0xa0,0x90,0x11,0x64,0x8c,0x0f,0xff,0x02,0x24,0xc0,0x30,0x05,0x00,
+0x24,0x20,0x82,0x00,0x00,0x29,0x05,0x00,0x29,0xb0,0x02,0x3c,0x21,0x30,0xc2,0x00,
+0x25,0x20,0x85,0x00,0x90,0x11,0x64,0xac,0x00,0x00,0xd4,0xac,0x04,0x00,0xc7,0xac,
+0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0xff,0x65,0x34,0x24,0x28,0x45,0x02,
+0x25,0xb0,0x04,0x3c,0x02,0x2a,0x05,0x00,0x94,0x00,0x83,0x34,0x40,0x11,0x05,0x00,
+0x00,0x00,0x65,0xa4,0xc0,0xff,0x54,0x24,0x7c,0x00,0xcc,0x34,0x04,0x00,0x07,0x24,
+0x9a,0x00,0x88,0x34,0x98,0x00,0x89,0x34,0x96,0x00,0x8a,0x34,0x7a,0x00,0xc6,0x34,
+0xb0,0x03,0x8b,0x34,0x00,0x04,0x02,0x24,0xa0,0x00,0x03,0x24,0x00,0x00,0x02,0xa5,
+0x44,0x00,0x84,0x34,0x00,0x00,0x23,0xa5,0x00,0x00,0x47,0xa5,0x00,0x00,0xc7,0xa0,
+0x00,0x00,0x74,0xad,0x00,0x00,0x94,0xa5,0x00,0x00,0x83,0x94,0xff,0xfd,0x02,0x24,
+0x78,0x1b,0x66,0x26,0x24,0x18,0x62,0x00,0x00,0x00,0x83,0xa4,0x00,0x00,0x82,0x94,
+0xf2,0x0a,0xc5,0xa4,0x00,0x02,0x42,0x34,0x00,0x00,0x82,0xa4,0x87,0x48,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x24,0x20,0x43,0x02,0x00,0xff,0x45,0x32,0x02,0x24,0x04,0x00,
+0x97,0x50,0x00,0x0c,0x02,0x2a,0x05,0x00,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,
+0x00,0x00,0x62,0xa0,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0xff,0x00,0x02,0x3c,
+0x00,0xff,0x42,0x34,0x24,0x10,0x42,0x02,0x02,0xf2,0x02,0x00,0x78,0x1b,0x63,0x26,
+0x21,0x20,0xc0,0x03,0x2c,0x22,0x00,0x0c,0x82,0x0b,0x60,0xa0,0xa9,0x4d,0x00,0x08,
+0x00,0x00,0x00,0x00,0x78,0x1b,0x63,0x26,0x04,0x24,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x03,0x00,0x42,0x34,0x86,0x48,0x00,0x08,0x04,0x24,0x62,0xac,0x6f,0x0b,0x00,0x0c,
+0x21,0x20,0xc0,0x03,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x5d,0x52,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x02,0x1c,0x12,0x00,
+0x00,0x1f,0x42,0x32,0x78,0x1b,0x70,0x26,0x02,0xa2,0x02,0x00,0x3f,0x00,0x67,0x30,
+0xc1,0x02,0x07,0xa2,0xbc,0x02,0x14,0xa2,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x22,0x1b,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x21,0xa0,0x40,0x00,0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x00,0x00,0x54,0xac,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x03,0x00,0x02,0x92,
+0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x24,0x86,0x48,0x00,0x08,0x03,0x00,0x02,0xa2,
+0x24,0x18,0x43,0x02,0x02,0x44,0x03,0x00,0xc0,0x10,0x08,0x00,0x21,0x10,0x48,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x48,0x00,0x00,0xff,0x44,0x32,0x80,0x10,0x02,0x00,
+0x78,0x1b,0x63,0x26,0x21,0x10,0x43,0x00,0x02,0xa1,0x04,0x00,0x80,0x11,0x54,0xac,
+0x86,0x48,0x00,0x08,0x84,0x11,0x54,0xac,0xf0,0x04,0x88,0xa0,0x90,0x11,0x22,0x8d,
+0x0f,0x00,0xa3,0x30,0x0f,0xff,0x04,0x24,0x00,0x19,0x03,0x00,0x24,0x10,0x44,0x00,
+0x25,0x10,0x43,0x00,0x90,0x11,0x22,0xad,0x00,0x00,0xd4,0xac,0x04,0x00,0xc7,0xac,
+0x00,0x00,0x65,0xad,0xd2,0x4c,0x00,0x08,0x08,0x00,0x02,0x24,0x4f,0x00,0xa2,0x34,
+0x9e,0x00,0xa3,0x34,0x00,0x00,0x40,0xa0,0x00,0x00,0x60,0xa4,0x94,0x00,0xa2,0x34,
+0x00,0x00,0x43,0x94,0x9a,0x00,0xa4,0x34,0x98,0x00,0xa6,0x34,0xff,0xff,0x74,0x30,
+0x80,0x12,0x14,0x00,0x00,0xf8,0x42,0x24,0x42,0xa1,0x02,0x00,0x00,0x14,0x02,0x24,
+0x00,0x00,0x82,0xa4,0x26,0xb0,0x02,0x3c,0xb0,0x03,0xa7,0x34,0xa0,0x80,0x03,0x24,
+0x7c,0x00,0x42,0x34,0x00,0x00,0xc3,0xa4,0x44,0x00,0xa4,0x34,0x00,0x00,0xf4,0xac,
+0x00,0x00,0x54,0xa4,0x00,0x00,0x83,0x94,0xff,0xfd,0x02,0x24,0xd8,0x00,0xa5,0x34,
+0x24,0x18,0x62,0x00,0x00,0x00,0x83,0xa4,0x00,0x00,0x82,0x94,0x78,0x1b,0x66,0x26,
+0x00,0x02,0x42,0x34,0x00,0x00,0x82,0xa4,0x00,0x00,0xa3,0x90,0xbf,0xff,0x02,0x24,
+0xf4,0x0a,0xc0,0xa4,0x24,0x18,0x62,0x00,0xef,0x0a,0xc0,0xa0,0x00,0x00,0xa3,0xa0,
+0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x64,0x03,0xa5,0x34,0x78,0x1b,0x66,0x26,
+0x00,0x00,0xa3,0x94,0xe8,0x02,0xc4,0x8c,0xff,0xef,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x24,0x20,0x82,0x00,0x00,0x01,0x63,0x34,0x00,0x00,0xa3,0xa4,0x4c,0x4e,0x00,0x08,
+0xe8,0x02,0xc4,0xac,0x15,0x51,0x00,0x0c,0x03,0x00,0x04,0x24,0x87,0x48,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0x21,0x10,0x48,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x48,0x00,
+0x78,0x1b,0x63,0x26,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x8c,0x11,0x44,0x8c,
+0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,0x87,0x48,0x00,0x08,
+0x25,0xb0,0x02,0x3c,0xc0,0x10,0x08,0x00,0x21,0x10,0x48,0x00,0x80,0x10,0x02,0x00,
+0x21,0x10,0x48,0x00,0x78,0x1b,0x63,0x26,0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,
+0x88,0x11,0x44,0x8c,0x25,0xb0,0x03,0x3c,0xc4,0x02,0x63,0x34,0x00,0x00,0x64,0xac,
+0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x1e,0x13,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x12,0x00,0x02,0x24,0xc7,0x02,0xe2,0xa1,
+0x45,0x4c,0x00,0x08,0xc3,0x02,0xe2,0xa1,0x78,0x1b,0x62,0x26,0x7e,0x0b,0x44,0x94,
+0x43,0x4b,0x00,0x08,0x25,0xb0,0x03,0x3c,0xe3,0xfc,0xc0,0x17,0x25,0xb0,0x03,0x3c,
+0x78,0x1b,0x62,0x26,0x78,0x0b,0x44,0x94,0x44,0x4b,0x00,0x08,0xc4,0x02,0x63,0x34,
+0x7a,0x0b,0x44,0x94,0x43,0x4b,0x00,0x08,0x25,0xb0,0x03,0x3c,0x2b,0x4a,0x00,0x08,
+0x01,0x00,0x04,0x24,0x2b,0x4a,0x00,0x08,0x02,0x00,0x04,0x24,0x15,0x51,0x00,0x0c,
+0x01,0x00,0x04,0x24,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x19,0x1e,0x00,
+0x78,0x1b,0x62,0x26,0x21,0x18,0x62,0x00,0x36,0x03,0x64,0x94,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x42,0x34,0x00,0x00,0x44,0xac,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x15,0x51,0x00,0x0c,0x02,0x00,0x04,0x24,0x87,0x48,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x00,0x19,0x1e,0x00,0x78,0x1b,0x62,0x26,0x21,0x18,0x62,0x00,0x35,0x03,0x64,0x90,
+0xb2,0x4f,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x19,0x1e,0x00,0x78,0x1b,0x62,0x26,
+0x21,0x18,0x62,0x00,0x34,0x03,0x64,0x90,0xb2,0x4f,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x00,0x19,0x1e,0x00,0x78,0x1b,0x62,0x26,0x21,0x18,0x62,0x00,0x32,0x03,0x64,0x94,
+0xb2,0x4f,0x00,0x08,0x25,0xb0,0x02,0x3c,0x00,0x19,0x1e,0x00,0x78,0x1b,0x62,0x26,
+0x21,0x18,0x62,0x00,0x30,0x03,0x64,0x94,0xb2,0x4f,0x00,0x08,0x25,0xb0,0x02,0x3c,
+0x00,0x11,0x1e,0x00,0x78,0x1b,0x63,0x26,0x21,0x10,0x43,0x00,0x2c,0x03,0x44,0x8c,
+0xb1,0x4f,0x00,0x08,0x42,0x26,0x04,0x00,0x00,0x11,0x1e,0x00,0x78,0x1b,0x63,0x26,
+0x21,0x10,0x43,0x00,0x2f,0x03,0x44,0x90,0xb1,0x4f,0x00,0x08,0x01,0x00,0x84,0x30,
+0x25,0xb0,0x05,0x3c,0x01,0x00,0x06,0x24,0x01,0x80,0x02,0x3c,0x04,0x30,0x86,0x00,
+0xf1,0x02,0xa7,0x34,0xed,0x02,0xa4,0x34,0x78,0x3f,0x42,0x24,0x18,0x03,0xa5,0x34,
+0x08,0x00,0x03,0x24,0x00,0x00,0xa2,0xac,0x00,0x00,0xe3,0xa0,0x00,0x00,0x80,0xa0,
+0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,
+0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,0x00,0x00,0x86,0xa0,0x00,0x00,0x80,0xa0,
+0x00,0x00,0xe0,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c,
+0x25,0xb0,0x03,0x3c,0xd4,0x3f,0x42,0x24,0x18,0x03,0x63,0x34,0x00,0x00,0x62,0xac,
+0x00,0x00,0x83,0x90,0x30,0x00,0x02,0x24,0x05,0x00,0x62,0x10,0x21,0x20,0x00,0x00,
+0x31,0x00,0x02,0x24,0x02,0x00,0x62,0x10,0x01,0x00,0x04,0x24,0x07,0x00,0x04,0x24,
+0xde,0x4f,0x00,0x08,0x00,0x00,0x00,0x00,0x01,0x80,0x02,0x3c,0x25,0xb0,0x03,0x3c,
+0x10,0x40,0x42,0x24,0x18,0x03,0x63,0x34,0x02,0x80,0x04,0x3c,0x00,0x00,0x62,0xac,
+0x08,0x00,0xe0,0x03,0x8c,0x43,0x80,0xac,0x02,0x80,0x03,0x3c,0x98,0x41,0x62,0x8c,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xe0,0xff,0xbd,0x27,
+0x10,0x00,0xb0,0xaf,0xc0,0x80,0x04,0x00,0x21,0x80,0x04,0x02,0x80,0x80,0x10,0x00,
+0x21,0x80,0x04,0x02,0x02,0x80,0x02,0x3c,0x78,0x1b,0x42,0x24,0x80,0x80,0x10,0x00,
+0x21,0x80,0x02,0x02,0x1c,0x00,0xbf,0xaf,0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,
+0x90,0x11,0x05,0x8e,0xff,0x1f,0x02,0x3c,0x25,0xb0,0x12,0x3c,0xff,0xff,0x42,0x34,
+0xf8,0xff,0x03,0x24,0x88,0x11,0x02,0xae,0x84,0x01,0x46,0x36,0x24,0x28,0xa3,0x00,
+0xff,0xfe,0x02,0x24,0x00,0x00,0xc7,0x8c,0x24,0x28,0xa2,0x00,0xff,0xef,0x03,0x24,
+0xff,0xff,0x02,0x3c,0xff,0x1f,0x42,0x34,0x24,0x28,0xa3,0x00,0x24,0x28,0xa2,0x00,
+0x8c,0x11,0x07,0xae,0x90,0x11,0x05,0xae,0x96,0x15,0x00,0x0c,0x21,0x88,0x80,0x00,
+0x92,0x11,0x02,0x92,0x21,0x88,0x32,0x02,0x1c,0x00,0xbf,0x8f,0x60,0x01,0x22,0xa2,
+0x18,0x00,0xb2,0x8f,0x7c,0x11,0x00,0xae,0x60,0x11,0x00,0xae,0x64,0x11,0x00,0xae,
+0x68,0x11,0x00,0xae,0x6c,0x11,0x00,0xae,0x70,0x11,0x00,0xae,0x74,0x11,0x00,0xae,
+0x78,0x11,0x00,0xae,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0xff,0x00,0xa5,0x30,0xc0,0x10,0x05,0x00,0x21,0x10,0x45,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x45,0x00,0x02,0x80,0x03,0x3c,0x78,0x1b,0x63,0x24,
+0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x90,0x11,0x43,0x8c,0x25,0xb0,0x05,0x3c,
+0xff,0x00,0xc6,0x30,0x21,0x30,0xc5,0x00,0xaf,0x01,0xc2,0x90,0x07,0x00,0x63,0x30,
+0x80,0x18,0x03,0x00,0x21,0x18,0x65,0x00,0xff,0x00,0x88,0x30,0xff,0x00,0x49,0x30,
+0x84,0x01,0x66,0x8c,0x21,0x50,0x00,0x00,0x21,0x58,0x00,0x00,0x2b,0x00,0x20,0x11,
+0x21,0x20,0x00,0x01,0x2b,0x00,0xc0,0x10,0x2b,0x10,0x09,0x01,0x21,0x28,0x00,0x00,
+0x6c,0x50,0x00,0x08,0x01,0x00,0x07,0x24,0xff,0x00,0x65,0x30,0x1d,0x00,0xa2,0x2c,
+0x07,0x00,0x40,0x10,0xff,0xff,0x02,0x25,0x04,0x10,0xa7,0x00,0x24,0x10,0x46,0x00,
+0xf9,0xff,0x40,0x10,0x01,0x00,0xa3,0x24,0x21,0x58,0xa0,0x00,0xff,0xff,0x02,0x25,
+0xff,0x00,0x45,0x30,0x2b,0x18,0xab,0x00,0x0f,0x00,0x60,0x14,0x2b,0x10,0x49,0x01,
+0x01,0x00,0x04,0x24,0x04,0x10,0xa4,0x00,0x24,0x10,0x46,0x00,0xff,0xff,0xa7,0x24,
+0x04,0x00,0x40,0x10,0x01,0x00,0x43,0x25,0x17,0x00,0x49,0x11,0xff,0x00,0x6a,0x30,
+0x21,0x40,0xa0,0x00,0xff,0x00,0xe5,0x30,0x2b,0x10,0xab,0x00,0xf6,0xff,0x40,0x10,
+0x04,0x10,0xa4,0x00,0x2b,0x10,0x49,0x01,0x08,0x00,0x40,0x10,0x21,0x20,0x00,0x01,
+0x23,0x10,0x2a,0x01,0x2a,0x10,0x62,0x01,0x04,0x00,0x40,0x14,0x21,0x20,0x00,0x00,
+0x23,0x10,0x69,0x01,0x21,0x10,0x4a,0x00,0xff,0x00,0x44,0x30,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x80,0x00,0xfd,0xff,0x40,0x14,0x21,0x20,0x00,0x00,0x23,0x10,0x09,0x01,
+0x8d,0x50,0x00,0x08,0xff,0x00,0x44,0x30,0x21,0x20,0x00,0x01,0x08,0x00,0xe0,0x03,
+0x21,0x10,0x80,0x00,0xff,0x00,0x84,0x30,0xc0,0x10,0x04,0x00,0x21,0x10,0x44,0x00,
+0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,0x02,0x80,0x03,0x3c,0x78,0x1b,0x63,0x24,
+0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x25,0xb0,0x06,0x3c,0x90,0x11,0x43,0x8c,
+0xff,0x00,0xa5,0x30,0x21,0x20,0x86,0x00,0x21,0x28,0xa6,0x00,0x60,0x01,0x82,0x90,
+0xaf,0x01,0xa4,0x90,0x07,0x00,0x63,0x30,0x80,0x18,0x03,0x00,0x21,0x18,0x66,0x00,
+0xff,0x00,0x48,0x30,0xff,0x00,0x89,0x30,0x84,0x01,0x66,0x8c,0x21,0x50,0x00,0x00,
+0x21,0x58,0x00,0x00,0x2b,0x00,0x20,0x11,0x21,0x20,0x00,0x01,0x2b,0x00,0xc0,0x10,
+0x2b,0x10,0x09,0x01,0x21,0x28,0x00,0x00,0xba,0x50,0x00,0x08,0x01,0x00,0x07,0x24,
+0xff,0x00,0x65,0x30,0x1d,0x00,0xa2,0x2c,0x07,0x00,0x40,0x10,0xff,0xff,0x02,0x25,
+0x04,0x10,0xa7,0x00,0x24,0x10,0x46,0x00,0xf9,0xff,0x40,0x10,0x01,0x00,0xa3,0x24,
+0x21,0x58,0xa0,0x00,0xff,0xff,0x02,0x25,0xff,0x00,0x45,0x30,0x2b,0x18,0xab,0x00,
+0x0f,0x00,0x60,0x14,0x2b,0x10,0x49,0x01,0x01,0x00,0x04,0x24,0x04,0x10,0xa4,0x00,
+0x24,0x10,0x46,0x00,0xff,0xff,0xa7,0x24,0x04,0x00,0x40,0x10,0x01,0x00,0x43,0x25,
+0x17,0x00,0x49,0x11,0xff,0x00,0x6a,0x30,0x21,0x40,0xa0,0x00,0xff,0x00,0xe5,0x30,
+0x2b,0x10,0xab,0x00,0xf6,0xff,0x40,0x10,0x04,0x10,0xa4,0x00,0x2b,0x10,0x49,0x01,
+0x08,0x00,0x40,0x10,0x21,0x20,0x00,0x01,0x23,0x10,0x2a,0x01,0x2a,0x10,0x62,0x01,
+0x04,0x00,0x40,0x14,0x21,0x20,0x00,0x00,0x23,0x10,0x69,0x01,0x21,0x10,0x4a,0x00,
+0xff,0x00,0x44,0x30,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0xfd,0xff,0x40,0x14,
+0x21,0x20,0x00,0x00,0x23,0x10,0x09,0x01,0xdb,0x50,0x00,0x08,0xff,0x00,0x44,0x30,
+0x21,0x20,0x00,0x01,0x08,0x00,0xe0,0x03,0x21,0x10,0x80,0x00,0xd8,0xff,0xbd,0x27,
+0x02,0x80,0x02,0x3c,0x18,0x00,0xb2,0xaf,0xff,0xff,0x03,0x3c,0x78,0x1b,0x52,0x24,
+0x1c,0x00,0xb3,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x20,0x00,0xbf,0xaf,
+0xff,0x1f,0x73,0x34,0x21,0x88,0x00,0x00,0x21,0x80,0x40,0x02,0x19,0x50,0x00,0x0c,
+0x21,0x20,0x20,0x02,0x90,0x11,0x02,0x8e,0x21,0x28,0x00,0x00,0x24,0x10,0x53,0x00,
+0x00,0x20,0x42,0x34,0x90,0x11,0x02,0xae,0x92,0x11,0x03,0x92,0x00,0x00,0x00,0x00,
+0x80,0x18,0x03,0x00,0x21,0x18,0x72,0x00,0xf8,0x04,0x64,0x8c,0x6c,0x05,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x21,0x10,0x44,0x00,0x42,0x10,0x02,0x00,0x5c,0x11,0x02,0xae,
+0x21,0x10,0x05,0x02,0x01,0x00,0xa5,0x24,0x1d,0x00,0xa3,0x28,0xce,0x11,0x40,0xa0,
+0x94,0x11,0x40,0xa0,0xfa,0xff,0x60,0x14,0xb1,0x11,0x40,0xa0,0x01,0x00,0x31,0x26,
+0x20,0x00,0x22,0x2a,0xec,0x11,0x00,0xae,0xe4,0xff,0x40,0x14,0x94,0x00,0x10,0x26,
+0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0xc0,0xff,0xbd,0x27,
+0x02,0x80,0x02,0x3c,0x2c,0x00,0xb5,0xaf,0x78,0x1b,0x46,0x24,0x3c,0x00,0xbf,0xaf,
+0x38,0x00,0xbe,0xaf,0x34,0x00,0xb7,0xaf,0x30,0x00,0xb6,0xaf,0x28,0x00,0xb4,0xaf,
+0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0xec,0x25,0xc2,0x8c,0xff,0x00,0x03,0x24,0xff,0x00,0x8d,0x30,0xff,0xff,0x42,0x38,
+0x0b,0x18,0x02,0x00,0xff,0xff,0x04,0x34,0x10,0x00,0xa3,0xaf,0xec,0x25,0xc4,0xac,
+0xb9,0x00,0xa0,0x11,0x08,0x00,0x15,0x24,0x02,0x80,0x02,0x3c,0xdc,0xad,0x45,0x24,
+0x94,0x04,0xc4,0x24,0x36,0x51,0x00,0x08,0x21,0x88,0x00,0x00,0x01,0x00,0x31,0x26,
+0x00,0x00,0x82,0xa0,0x1d,0x00,0x22,0x2a,0x0b,0x00,0x40,0x10,0x01,0x00,0x84,0x24,
+0x21,0x10,0x25,0x02,0x00,0x00,0x42,0x90,0x00,0x00,0x00,0x00,0xf7,0xff,0x40,0x10,
+0xfd,0xff,0x43,0x24,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x00,0x00,0x83,0xa0,
+0xf7,0xff,0x40,0x14,0x01,0x00,0x84,0x24,0x02,0x80,0x02,0x3c,0x78,0x1b,0x4a,0x24,
+0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x74,0xab,0x6c,0x24,0xfc,0xaa,0x4b,0x24,
+0x21,0x88,0x00,0x00,0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00,0x21,0x40,0x2a,0x01,
+0x21,0x38,0x2c,0x01,0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90,0x00,0x00,0x45,0x90,
+0x21,0x18,0x06,0x01,0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28,0xc9,0x03,0x64,0xa0,
+0xf8,0xff,0x40,0x14,0x38,0x03,0x65,0xa0,0x21,0x10,0x2b,0x02,0x1d,0x00,0x44,0x90,
+0x00,0x00,0x45,0x90,0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,
+0x77,0x04,0x64,0xa0,0x5a,0x04,0x65,0xa0,0xeb,0xff,0x40,0x14,0x05,0x00,0x29,0x25,
+0xaf,0x00,0xa0,0x11,0x02,0x80,0x02,0x3c,0x78,0x1b,0x48,0x24,0x02,0x80,0x03,0x3c,
+0x02,0x80,0x02,0x3c,0x70,0xae,0x69,0x24,0xfc,0xad,0x47,0x24,0x21,0x88,0x00,0x00,
+0x80,0x18,0x11,0x00,0x21,0x10,0x69,0x00,0x21,0x20,0x67,0x00,0x00,0x00,0x46,0x8c,
+0x00,0x00,0x85,0x8c,0x01,0x00,0x31,0x26,0x21,0x18,0x68,0x00,0x04,0x00,0x22,0x2a,
+0xf8,0x04,0x65,0xac,0xf6,0xff,0x40,0x14,0x6c,0x05,0x66,0xac,0x02,0x80,0x02,0x3c,
+0x78,0x1b,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x70,0xae,0x68,0x24,
+0xfc,0xad,0x47,0x24,0x04,0x00,0x11,0x24,0x80,0x20,0x11,0x00,0x21,0x10,0x88,0x00,
+0x21,0x30,0x87,0x00,0x00,0x00,0x45,0x8c,0x00,0x00,0xc3,0x8c,0x01,0x00,0x31,0x26,
+0x21,0x20,0x89,0x00,0x82,0x28,0x05,0x00,0x82,0x18,0x03,0x00,0x1d,0x00,0x22,0x2a,
+0xf8,0x04,0x83,0xac,0xf4,0xff,0x40,0x14,0x6c,0x05,0x85,0xac,0x02,0x80,0x02,0x3c,
+0x78,0x1b,0x56,0x24,0xff,0xff,0x02,0x3c,0x21,0xf0,0xc0,0x02,0xff,0x1f,0x57,0x34,
+0x21,0x88,0x00,0x00,0x21,0xa0,0x00,0x00,0x93,0x51,0x00,0x08,0x21,0x90,0xc0,0x02,
+0x01,0x00,0x31,0x26,0x20,0x00,0x22,0x2a,0x94,0x00,0x52,0x26,0x3d,0x00,0x40,0x10,
+0x94,0x00,0x94,0x26,0x90,0x11,0x44,0x8e,0x01,0x00,0x03,0x24,0x02,0x13,0x04,0x00,
+0x01,0x00,0x53,0x30,0xf6,0xff,0x63,0x16,0x07,0x00,0x82,0x30,0x25,0xb0,0x03,0x3c,
+0x80,0x10,0x02,0x00,0x21,0x10,0x43,0x00,0x84,0x01,0x45,0x8c,0x88,0x11,0x43,0x8e,
+0x21,0x20,0x20,0x02,0x24,0x28,0xa3,0x00,0x96,0x15,0x00,0x0c,0x8c,0x11,0x45,0xae,
+0x92,0x11,0x44,0x92,0x70,0x15,0x00,0x0c,0xff,0x00,0x25,0x32,0x90,0x11,0x42,0x8e,
+0x00,0x00,0x00,0x00,0x24,0x10,0x57,0x00,0x00,0x20,0x42,0x34,0x90,0x11,0x42,0xae,
+0x92,0x11,0x50,0x92,0x00,0x00,0x00,0x00,0x21,0x20,0x00,0x02,0x86,0x15,0x00,0x0c,
+0x80,0x80,0x10,0x00,0x21,0x80,0x16,0x02,0x60,0x11,0x40,0xae,0x64,0x11,0x40,0xae,
+0x68,0x11,0x40,0xae,0x6c,0x11,0x40,0xae,0x70,0x11,0x40,0xae,0x74,0x11,0x40,0xae,
+0x78,0x11,0x40,0xae,0x7c,0x11,0x40,0xae,0xf8,0x04,0x04,0x8e,0x6c,0x05,0x03,0x8e,
+0x26,0x10,0x53,0x00,0x21,0x30,0x00,0x00,0x21,0x18,0x64,0x00,0x42,0x18,0x03,0x00,
+0x04,0x00,0x04,0x24,0x0a,0xa8,0x82,0x00,0x5c,0x11,0x43,0xae,0x21,0x20,0x9e,0x02,
+0x21,0x10,0x86,0x00,0x01,0x00,0xc6,0x24,0x1d,0x00,0xc3,0x28,0xce,0x11,0x40,0xa0,
+0x94,0x11,0x40,0xa0,0xfa,0xff,0x60,0x14,0xb1,0x11,0x40,0xa0,0x01,0x00,0x31,0x26,
+0x20,0x00,0x22,0x2a,0xec,0x11,0x80,0xac,0x94,0x00,0x52,0x26,0xc5,0xff,0x40,0x14,
+0x94,0x00,0x94,0x26,0x25,0xb0,0x02,0x3c,0x80,0x01,0x42,0x34,0x00,0x00,0x55,0xa0,
+0x10,0x00,0xa3,0x8f,0x00,0x00,0x00,0x00,0x03,0x00,0x60,0x14,0x02,0x80,0x03,0x3c,
+0x78,0x1b,0x62,0x24,0xec,0x25,0x40,0xac,0x3c,0x00,0xbf,0x8f,0x38,0x00,0xbe,0x8f,
+0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,0xdc,0xad,0x45,0x24,
+0x94,0x04,0xc4,0x24,0x21,0x88,0x00,0x00,0x21,0x10,0x25,0x02,0x00,0x00,0x43,0x90,
+0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x00,0x00,0x83,0xa0,0xfa,0xff,0x40,0x14,
+0x01,0x00,0x84,0x24,0x02,0x80,0x02,0x3c,0x78,0x1b,0x4a,0x24,0x02,0x80,0x03,0x3c,
+0x02,0x80,0x02,0x3c,0x98,0xac,0x6c,0x24,0x38,0xab,0x4b,0x24,0x21,0x88,0x00,0x00,
+0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00,0x21,0x40,0x2a,0x01,0x21,0x38,0x2c,0x01,
+0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90,0x00,0x00,0x45,0x90,0x21,0x18,0x06,0x01,
+0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28,0xc9,0x03,0x64,0xa0,0xf8,0xff,0x40,0x14,
+0x38,0x03,0x65,0xa0,0x21,0x10,0x2b,0x02,0x1d,0x00,0x44,0x90,0x00,0x00,0x45,0x90,
+0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26,0x1d,0x00,0x22,0x2a,0x77,0x04,0x64,0xa0,
+0x5a,0x04,0x65,0xa0,0xeb,0xff,0x40,0x14,0x05,0x00,0x29,0x25,0x02,0x80,0x02,0x3c,
+0x78,0x1b,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x70,0xae,0x68,0x24,
+0xfc,0xad,0x47,0x24,0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00,0x21,0x10,0x68,0x00,
+0x21,0x20,0x67,0x00,0x00,0x00,0x46,0x8c,0x00,0x00,0x85,0x8c,0x01,0x00,0x31,0x26,
+0x21,0x18,0x69,0x00,0x1d,0x00,0x22,0x2a,0xf8,0x04,0x65,0xac,0xf6,0xff,0x40,0x14,
+0x6c,0x05,0x66,0xac,0x86,0x51,0x00,0x08,0x02,0x80,0x02,0x3c,0xd8,0xff,0xbd,0x27,
+0xff,0xff,0x84,0x30,0x18,0x00,0xb2,0xaf,0xf0,0x01,0x92,0x30,0x02,0x91,0x12,0x00,
+0x14,0x00,0xb1,0xaf,0xc0,0x88,0x12,0x00,0x21,0x88,0x32,0x02,0x80,0x88,0x11,0x00,
+0x21,0x88,0x32,0x02,0x02,0x80,0x02,0x3c,0x78,0x1b,0x42,0x24,0x80,0x88,0x11,0x00,
+0x21,0x88,0x22,0x02,0x20,0x00,0xbf,0xaf,0x1c,0x00,0xb3,0xaf,0x10,0x00,0xb0,0xaf,
+0x90,0x11,0x30,0x8e,0x00,0x02,0x83,0x30,0xff,0xfe,0x02,0x24,0x2b,0x18,0x03,0x00,
+0x00,0x10,0x10,0x36,0x24,0x80,0x02,0x02,0x00,0x1a,0x03,0x00,0x00,0x04,0x82,0x30,
+0x25,0x80,0x03,0x02,0x2b,0x10,0x02,0x00,0xf7,0xff,0x03,0x24,0x24,0x80,0x03,0x02,
+0xc0,0x10,0x02,0x00,0x25,0x80,0x02,0x02,0x88,0x11,0x25,0xae,0x90,0x11,0x30,0xae,
+0xf3,0x15,0x00,0x0c,0x21,0x98,0xa0,0x00,0xf8,0xff,0x03,0x24,0x24,0x80,0x03,0x02,
+0x07,0x00,0x42,0x30,0x25,0x80,0x02,0x02,0x07,0x00,0x03,0x32,0x25,0xb0,0x02,0x3c,
+0x80,0x18,0x03,0x00,0x90,0x11,0x30,0xae,0x21,0x18,0x62,0x00,0x84,0x01,0x62,0x8c,
+0x21,0x20,0x40,0x02,0x24,0x10,0x53,0x00,0x96,0x15,0x00,0x0c,0x8c,0x11,0x22,0xae,
+0x92,0x11,0x24,0x92,0x21,0x28,0x40,0x02,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x70,0x15,0x00,0x08,
+0x28,0x00,0xbd,0x27,0x19,0x50,0x00,0x08,0xff,0x00,0x84,0x30,0x02,0x80,0x02,0x3c,
+0x78,0x1b,0x43,0x24,0x1f,0x00,0x04,0x24,0x90,0x11,0x62,0x8c,0xff,0xff,0x84,0x24,
+0x00,0x10,0x42,0x34,0x90,0x11,0x62,0xac,0xfb,0xff,0x81,0x04,0x94,0x00,0x63,0x24,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x23,0x10,0xa4,0x00,
+0x2b,0x18,0xa4,0x00,0x23,0x20,0x85,0x00,0x08,0x00,0xe0,0x03,0x0b,0x10,0x83,0x00,
+0x20,0xff,0xbd,0x27,0xcc,0x00,0xb5,0xaf,0xdc,0x00,0xbf,0xaf,0xd8,0x00,0xbe,0xaf,
+0xd4,0x00,0xb7,0xaf,0xd0,0x00,0xb6,0xaf,0xc8,0x00,0xb4,0xaf,0xc4,0x00,0xb3,0xaf,
+0xc0,0x00,0xb2,0xaf,0xbc,0x00,0xb1,0xaf,0xb8,0x00,0xb0,0xaf,0x21,0xa8,0x00,0x00,
+0x40,0x11,0x15,0x00,0x10,0x00,0xa3,0x27,0x21,0x10,0x43,0x00,0x07,0x00,0x16,0x24,
+0xff,0xff,0xd6,0x26,0x00,0x00,0x40,0xac,0xfd,0xff,0xc1,0x06,0x04,0x00,0x42,0x24,
+0x01,0x00,0xb5,0x26,0x03,0x00,0xa2,0x2e,0xf6,0xff,0x40,0x14,0x40,0x11,0x15,0x00,
+0x25,0xb0,0x10,0x3c,0xc4,0x02,0x02,0x36,0x00,0x00,0x40,0xac,0x04,0x00,0x03,0x36,
+0x00,0x00,0x62,0x8c,0x04,0x0c,0x03,0x36,0x00,0x00,0x63,0x8c,0x08,0x0c,0x04,0x36,
+0x0f,0x00,0x11,0x3c,0xac,0x00,0xa3,0xaf,0x00,0x00,0x84,0x8c,0x24,0x10,0x51,0x00,
+0x02,0xf4,0x02,0x00,0xb0,0x00,0xa4,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x21,0x20,0x00,0x00,0xe3,0x44,0x00,0x0c,
+0xff,0xff,0x25,0x36,0x70,0x00,0xa2,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x00,0x60,0x81,0x40,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x95,0x42,0x00,0x0c,
+0x01,0x00,0x04,0x24,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,
+0x00,0x60,0x81,0x40,0x21,0x20,0x00,0x00,0xe3,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,
+0x74,0x00,0xa2,0xaf,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x95,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,
+0xe0,0x0e,0x02,0x36,0x21,0x20,0x40,0x00,0x00,0x00,0x42,0x8c,0xdc,0x0e,0x12,0x36,
+0x70,0x0e,0x13,0x36,0x78,0x00,0xa2,0xaf,0x00,0x00,0x42,0x8e,0x74,0x0e,0x14,0x36,
+0x78,0x0e,0x15,0x36,0x7c,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8e,0x7c,0x0e,0x16,0x36,
+0x80,0x0e,0x17,0x36,0x80,0x00,0xa3,0xaf,0x00,0x00,0x82,0x8e,0xd4,0x0e,0x10,0x36,
+0xed,0x3f,0x11,0x3c,0x84,0x00,0xa2,0xaf,0x00,0x00,0xa3,0x8e,0xfb,0x92,0x25,0x36,
+0x88,0x00,0xa3,0xaf,0x00,0x00,0xc2,0x8e,0x00,0x00,0x00,0x00,0x8c,0x00,0xa2,0xaf,
+0x00,0x00,0xe3,0x8e,0x25,0xb0,0x02,0x3c,0x84,0x0e,0x42,0x34,0x90,0x00,0xa3,0xaf,
+0x00,0x00,0x42,0x8c,0x25,0xb0,0x03,0x3c,0x88,0x0e,0x63,0x34,0x94,0x00,0xa2,0xaf,
+0x00,0x00,0x63,0x8c,0x25,0xb0,0x02,0x3c,0x8c,0x0e,0x42,0x34,0x98,0x00,0xa3,0xaf,
+0x00,0x00,0x42,0x8c,0x25,0xb0,0x03,0x3c,0xd0,0x0e,0x63,0x34,0x9c,0x00,0xa2,0xaf,
+0x00,0x00,0x63,0x8c,0x00,0x00,0x00,0x00,0xa0,0x00,0xa3,0xaf,0x00,0x00,0x02,0x8e,
+0x25,0xb0,0x03,0x3c,0xd8,0x0e,0x63,0x34,0xa4,0x00,0xa2,0xaf,0x00,0x00,0x63,0x8c,
+0x68,0x52,0x00,0x0c,0xa8,0x00,0xa3,0xaf,0x21,0x20,0x40,0x02,0x68,0x52,0x00,0x0c,
+0xfb,0x92,0x25,0x36,0x21,0x20,0x60,0x02,0x68,0x52,0x00,0x0c,0xfb,0x92,0x25,0x36,
+0x21,0x20,0x80,0x02,0x68,0x52,0x00,0x0c,0xfb,0x92,0x25,0x36,0x21,0x20,0xa0,0x02,
+0x68,0x52,0x00,0x0c,0xfb,0x92,0x25,0x36,0x21,0x20,0xc0,0x02,0x68,0x52,0x00,0x0c,
+0xfb,0x92,0x25,0x36,0x21,0x20,0xe0,0x02,0x68,0x52,0x00,0x0c,0xfb,0x92,0x25,0x36,
+0x02,0x80,0x02,0x3c,0x18,0xb0,0x42,0x24,0x00,0x00,0x44,0x8c,0xfb,0x92,0x25,0x36,
+0x68,0x52,0x00,0x0c,0x25,0xb0,0x13,0x3c,0x02,0x80,0x03,0x3c,0x1c,0xb0,0x63,0x24,
+0x00,0x00,0x64,0x8c,0xfb,0x92,0x25,0x36,0x68,0x52,0x00,0x0c,0x21,0xb0,0x00,0x00,
+0x02,0x80,0x02,0x3c,0x20,0xb0,0x42,0x24,0x00,0x00,0x44,0x8c,0xfb,0x92,0x25,0x36,
+0x68,0x52,0x00,0x0c,0xff,0x03,0x14,0x3c,0x02,0x80,0x03,0x3c,0x24,0xb0,0x63,0x24,
+0x00,0x00,0x64,0x8c,0xfb,0x92,0x25,0x36,0x68,0x52,0x00,0x0c,0x10,0x00,0xb7,0x27,
+0x21,0x20,0x00,0x02,0x68,0x52,0x00,0x0c,0xfb,0x92,0x25,0x36,0x02,0x80,0x02,0x3c,
+0x28,0xb0,0x42,0x24,0x00,0x00,0x44,0x8c,0x68,0x52,0x00,0x0c,0xfb,0x92,0x25,0x36,
+0x54,0x53,0x00,0x08,0x21,0xa8,0x00,0x00,0x6e,0x00,0xc2,0x13,0x02,0x80,0x02,0x3c,
+0xac,0x0e,0x62,0x36,0x94,0x0e,0x63,0x36,0x00,0x00,0x48,0x8c,0x00,0x00,0x64,0x8c,
+0xb4,0x0e,0x62,0x36,0x9c,0x0e,0x63,0x36,0x00,0x00,0x45,0x8c,0x00,0x00,0x66,0x8c,
+0x25,0xb0,0x03,0x3c,0xbc,0x0e,0x63,0x34,0x00,0x00,0x67,0x8c,0x24,0x20,0x94,0x00,
+0x00,0xd8,0x02,0x3c,0x24,0x10,0x02,0x01,0x24,0x28,0xb4,0x00,0x24,0x30,0xd4,0x00,
+0x24,0x38,0xf4,0x00,0x02,0x24,0x04,0x00,0x20,0x01,0x03,0x24,0x01,0x00,0x42,0x2c,
+0x02,0x2c,0x05,0x00,0x02,0x34,0x06,0x00,0xe8,0x00,0x83,0x10,0x02,0x3c,0x07,0x00,
+0xe6,0x00,0xa3,0x10,0x20,0x00,0x03,0x24,0xe4,0x00,0xc3,0x10,0x00,0x00,0x00,0x00,
+0xe2,0x00,0xe3,0x10,0x01,0x00,0x08,0x24,0x80,0x00,0x03,0x24,0x08,0x00,0x83,0x10,
+0x21,0x20,0x00,0x00,0x06,0x00,0xa3,0x10,0x21,0x20,0x00,0x00,0xe0,0x03,0x03,0x24,
+0x03,0x00,0xc3,0x10,0x00,0x00,0x00,0x00,0xdb,0x00,0xe3,0x10,0x01,0x00,0x04,0x24,
+0x05,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x11,0x00,0x00,0x00,0x00,
+0xd7,0x00,0x80,0x14,0x94,0x0e,0x63,0x36,0x01,0x00,0xb5,0x26,0x0a,0x00,0xa2,0x2e,
+0x01,0x01,0x40,0x10,0x00,0x00,0x00,0x00,0xcb,0xff,0xc0,0x17,0x01,0x00,0x02,0x24,
+0xa0,0x00,0x03,0x3c,0x30,0x54,0x65,0x34,0x68,0x52,0x00,0x0c,0x04,0x0c,0x64,0x36,
+0x08,0x00,0x05,0x3c,0xe4,0x00,0xa5,0x34,0x68,0x52,0x00,0x0c,0x08,0x0c,0x64,0x36,
+0x28,0x0e,0x64,0x36,0x68,0x52,0x00,0x0c,0x80,0x80,0x05,0x3c,0x14,0x02,0x02,0x3c,
+0x48,0x01,0x45,0x34,0x68,0x52,0x00,0x0c,0x40,0x0e,0x64,0x36,0x16,0x68,0x05,0x3c,
+0xa2,0x04,0xa5,0x34,0x68,0x52,0x00,0x0c,0x44,0x0e,0x64,0x36,0x4c,0x0e,0x64,0x36,
+0x68,0x52,0x00,0x0c,0xd1,0x28,0x05,0x24,0x14,0x02,0x03,0x3c,0x4d,0x01,0x65,0x34,
+0x68,0x52,0x00,0x0c,0x60,0x0e,0x64,0x36,0x16,0x28,0x05,0x3c,0xba,0x08,0xa5,0x34,
+0x68,0x52,0x00,0x0c,0x64,0x0e,0x64,0x36,0x6c,0x0e,0x64,0x36,0x68,0x52,0x00,0x0c,
+0xd1,0x28,0x05,0x24,0x00,0xfb,0x05,0x3c,0x01,0x00,0xa5,0x34,0x68,0x52,0x00,0x0c,
+0x48,0x0e,0x64,0x36,0x00,0xf8,0x05,0x3c,0x01,0x00,0xa5,0x34,0x68,0x52,0x00,0x0c,
+0x48,0x0e,0x64,0x36,0x9c,0x12,0x00,0x0c,0x03,0x00,0x04,0x24,0xa0,0x00,0x02,0x3c,
+0x33,0x54,0x45,0x34,0x68,0x52,0x00,0x0c,0x04,0x0c,0x64,0x36,0x08,0x0c,0x64,0x36,
+0x68,0x52,0x00,0x0c,0xe4,0x00,0x05,0x24,0x28,0x0e,0x64,0x36,0x68,0x52,0x00,0x0c,
+0x21,0x28,0x00,0x00,0x01,0x00,0x02,0x24,0x96,0xff,0xc2,0x17,0xac,0x0e,0x62,0x36,
+0x02,0x80,0x02,0x3c,0x2c,0xb0,0x42,0x24,0x25,0xb0,0x03,0x3c,0x00,0x00,0x44,0x8c,
+0x20,0x08,0x63,0x34,0x00,0x00,0x71,0x8c,0x00,0x01,0x03,0x3c,0x00,0x01,0x65,0x34,
+0x68,0x52,0x00,0x0c,0x25,0xb0,0x12,0x3c,0x00,0x01,0x02,0x3c,0x00,0x01,0x45,0x34,
+0x68,0x52,0x00,0x0c,0x28,0x08,0x44,0x36,0xa0,0x00,0x03,0x3c,0x30,0x54,0x65,0x34,
+0x68,0x52,0x00,0x0c,0x04,0x0c,0x44,0x36,0x08,0x00,0x05,0x3c,0xe4,0x00,0xa5,0x34,
+0x68,0x52,0x00,0x0c,0x08,0x0c,0x44,0x36,0x28,0x0e,0x44,0x36,0x68,0x52,0x00,0x0c,
+0x80,0x80,0x05,0x3c,0x00,0x01,0x02,0x3c,0x00,0x7c,0x45,0x34,0x68,0x52,0x00,0x0c,
+0x30,0x0e,0x44,0x36,0x00,0x01,0x03,0x3c,0x00,0x48,0x65,0x34,0x68,0x52,0x00,0x0c,
+0x34,0x0e,0x44,0x36,0x00,0x10,0x02,0x3c,0x1f,0xdc,0x45,0x34,0x68,0x52,0x00,0x0c,
+0x38,0x0e,0x44,0x36,0x00,0x10,0x03,0x3c,0x1f,0x8c,0x65,0x34,0x68,0x52,0x00,0x0c,
+0x3c,0x0e,0x44,0x36,0x14,0x02,0x02,0x3c,0x02,0x01,0x45,0x34,0x68,0x52,0x00,0x0c,
+0x40,0x0e,0x44,0x36,0x16,0x68,0x05,0x3c,0xc7,0x04,0xa5,0x34,0x68,0x52,0x00,0x0c,
+0x44,0x0e,0x44,0x36,0x4c,0x0e,0x44,0x36,0x68,0x52,0x00,0x0c,0xd1,0x28,0x05,0x24,
+0x6c,0x0e,0x44,0x36,0x68,0x52,0x00,0x0c,0xd1,0x28,0x05,0x24,0x00,0x01,0x03,0x3c,
+0x00,0x7c,0x65,0x34,0x68,0x52,0x00,0x0c,0x50,0x0e,0x44,0x36,0x00,0x01,0x02,0x3c,
+0x00,0x48,0x45,0x34,0x68,0x52,0x00,0x0c,0x54,0x0e,0x44,0x36,0x00,0x10,0x03,0x3c,
+0x23,0xdc,0x65,0x34,0x68,0x52,0x00,0x0c,0x58,0x0e,0x44,0x36,0x00,0x10,0x02,0x3c,
+0x23,0x8c,0x45,0x34,0x68,0x52,0x00,0x0c,0x5c,0x0e,0x44,0x36,0x14,0x02,0x03,0x3c,
+0x02,0x01,0x65,0x34,0x68,0x52,0x00,0x0c,0x60,0x0e,0x44,0x36,0x16,0x28,0x05,0x3c,
+0x07,0x0d,0xa5,0x34,0x68,0x52,0x00,0x0c,0x64,0x0e,0x44,0x36,0x48,0x0e,0x44,0x36,
+0x68,0x52,0x00,0x0c,0x00,0xfb,0x05,0x3c,0x00,0xf8,0x05,0x3c,0x68,0x52,0x00,0x0c,
+0x48,0x0e,0x44,0x36,0x00,0x02,0x10,0x3c,0x9c,0x12,0x00,0x0c,0x03,0x00,0x04,0x24,
+0x4c,0x0e,0x44,0x36,0x68,0x52,0x00,0x0c,0xd1,0x28,0x05,0x36,0xd1,0x28,0x05,0x36,
+0x68,0x52,0x00,0x0c,0x6c,0x0e,0x44,0x36,0x48,0x0e,0x44,0x36,0x68,0x52,0x00,0x0c,
+0x00,0xfb,0x05,0x3c,0x00,0xf8,0x05,0x3c,0x68,0x52,0x00,0x0c,0x48,0x0e,0x44,0x36,
+0x9c,0x12,0x00,0x0c,0x03,0x00,0x04,0x24,0xac,0x00,0xa5,0x8f,0x04,0x0c,0x44,0x36,
+0x68,0x52,0x00,0x0c,0x00,0x01,0x31,0x32,0xb0,0x00,0xa5,0x8f,0x08,0x0c,0x44,0x36,
+0x68,0x52,0x00,0x0c,0x2b,0x88,0x11,0x00,0x28,0x0e,0x44,0x36,0x68,0x52,0x00,0x0c,
+0x21,0x28,0x00,0x00,0x23,0xff,0x20,0x16,0xac,0x0e,0x62,0x36,0x02,0x80,0x02,0x3c,
+0x2c,0xb0,0x42,0x24,0x00,0x00,0x44,0x8c,0x68,0x52,0x00,0x0c,0x00,0x01,0x05,0x3c,
+0x28,0x08,0x44,0x36,0x68,0x52,0x00,0x0c,0x00,0x01,0x05,0x3c,0xac,0x0e,0x62,0x36,
+0x94,0x0e,0x63,0x36,0x00,0x00,0x48,0x8c,0x00,0x00,0x64,0x8c,0xb4,0x0e,0x62,0x36,
+0x9c,0x0e,0x63,0x36,0x00,0x00,0x45,0x8c,0x00,0x00,0x66,0x8c,0x25,0xb0,0x03,0x3c,
+0xbc,0x0e,0x63,0x34,0x00,0x00,0x67,0x8c,0x24,0x20,0x94,0x00,0x00,0xd8,0x02,0x3c,
+0x24,0x10,0x02,0x01,0x24,0x28,0xb4,0x00,0x24,0x30,0xd4,0x00,0x24,0x38,0xf4,0x00,
+0x02,0x24,0x04,0x00,0x20,0x01,0x03,0x24,0x01,0x00,0x42,0x2c,0x02,0x2c,0x05,0x00,
+0x02,0x34,0x06,0x00,0x1a,0xff,0x83,0x14,0x02,0x3c,0x07,0x00,0x80,0x00,0x03,0x24,
+0x20,0xff,0x83,0x14,0x21,0x40,0x00,0x00,0x4a,0x53,0x00,0x08,0x21,0x20,0x00,0x00,
+0x00,0x00,0x62,0x8c,0x9c,0x0e,0x65,0x36,0xa4,0x0e,0x66,0x36,0x24,0x10,0x54,0x00,
+0x02,0x14,0x02,0x00,0x00,0x00,0xe2,0xae,0x00,0x00,0xa4,0x8c,0xac,0x0e,0x67,0x36,
+0xb4,0x0e,0x65,0x36,0x24,0x20,0x94,0x00,0x02,0x24,0x04,0x00,0x04,0x00,0xe4,0xae,
+0x00,0x00,0xc3,0x8c,0xc4,0x0e,0x64,0x36,0x24,0x18,0x74,0x00,0x02,0x1c,0x03,0x00,
+0x08,0x00,0xe3,0xae,0x00,0x00,0xe2,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x54,0x00,
+0x02,0x14,0x02,0x00,0x0c,0x00,0xe2,0xae,0x00,0x00,0xa3,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x18,0x74,0x00,0x02,0x1c,0x03,0x00,0x10,0x00,0xe3,0xae,0x25,0xb0,0x03,0x3c,
+0xbc,0x0e,0x63,0x34,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x54,0x00,
+0x02,0x14,0x02,0x00,0x14,0x00,0xe2,0xae,0x00,0x00,0x83,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x18,0x74,0x00,0x02,0x1c,0x03,0x00,0x18,0x00,0xe3,0xae,0x25,0xb0,0x03,0x3c,
+0xcc,0x0e,0x63,0x34,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,0x24,0x10,0x54,0x00,
+0x02,0x14,0x02,0x00,0x1c,0x00,0xe2,0xae,0x01,0x00,0xd6,0x26,0x03,0x00,0xc2,0x2e,
+0xc7,0xfe,0x40,0x14,0x20,0x00,0xf7,0x26,0x10,0x00,0xb0,0x8f,0x00,0x00,0x00,0x00,
+0x49,0x01,0x00,0x16,0x00,0x00,0x00,0x00,0x30,0x00,0xb1,0x8f,0x00,0x00,0x00,0x00,
+0x06,0x00,0x20,0x16,0x21,0x20,0x00,0x02,0x50,0x00,0xa2,0x8f,0x00,0x00,0x00,0x00,
+0x29,0x00,0x40,0x10,0xff,0x00,0x05,0x24,0x21,0x20,0x00,0x02,0x71,0x52,0x00,0x0c,
+0x21,0x28,0x20,0x02,0x03,0x00,0x42,0x2c,0x08,0x00,0x40,0x10,0x00,0x00,0x00,0x00,
+0x34,0x00,0xa5,0x8f,0x14,0x00,0xa4,0x8f,0x71,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x03,0x00,0x42,0x2c,0x1c,0x00,0x40,0x14,0x21,0x28,0x00,0x00,0x50,0x00,0xb2,0x8f,
+0x21,0x20,0x00,0x02,0x71,0x52,0x00,0x0c,0x21,0x28,0x40,0x02,0x03,0x00,0x42,0x2c,
+0x09,0x00,0x40,0x10,0x21,0x20,0x20,0x02,0x54,0x00,0xa5,0x8f,0x14,0x00,0xa4,0x8f,
+0x71,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x2c,0x0e,0x00,0x40,0x14,
+0x21,0x28,0x00,0x00,0x21,0x20,0x20,0x02,0x71,0x52,0x00,0x0c,0x21,0x28,0x40,0x02,
+0x03,0x00,0x42,0x2c,0xe0,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x54,0x00,0xa5,0x8f,
+0x34,0x00,0xa4,0x8f,0x71,0x52,0x00,0x0c,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x2c,
+0xd9,0x00,0x40,0x10,0x01,0x00,0x05,0x24,0xff,0x00,0x02,0x24,0xdb,0x00,0xa2,0x10,
+0x25,0xb0,0x03,0x3c,0x10,0x00,0xa2,0x27,0x40,0x29,0x05,0x00,0x02,0x80,0x0f,0x3c,
+0x21,0x28,0xa2,0x00,0x78,0x1b,0xec,0x25,0x00,0x00,0xa6,0x8c,0x0c,0x00,0xa7,0x8c,
+0x0c,0x00,0x83,0x8d,0x10,0x00,0x84,0x8d,0x04,0x00,0xa8,0x8c,0x10,0x00,0xa9,0x8c,
+0x00,0xfc,0x02,0x24,0x08,0x00,0xaa,0x8c,0x14,0x00,0xab,0x8c,0x24,0x20,0x82,0x00,
+0xff,0x03,0xc6,0x30,0x24,0x18,0x62,0x00,0xff,0x03,0xe7,0x30,0xf0,0xff,0x02,0x3c,
+0xff,0x03,0x42,0x34,0x25,0x18,0x66,0x00,0x25,0x20,0x87,0x00,0xff,0x03,0x08,0x31,
+0xff,0x03,0x29,0x31,0x24,0x20,0x82,0x00,0x24,0x18,0x62,0x00,0x80,0x42,0x08,0x00,
+0x80,0x4a,0x09,0x00,0x0f,0xc0,0x02,0x3c,0x1c,0x00,0xa6,0x8c,0x18,0x00,0xa7,0x8c,
+0xff,0xff,0x42,0x34,0x25,0x18,0x68,0x00,0x25,0x20,0x89,0x00,0xff,0x03,0x4a,0x31,
+0xff,0x03,0x6b,0x31,0x24,0x20,0x82,0x00,0x00,0x55,0x0a,0x00,0x24,0x18,0x62,0x00,
+0x00,0x5d,0x0b,0x00,0x25,0x18,0x6a,0x00,0x25,0x20,0x8b,0x00,0x16,0x00,0x86,0xa5,
+0x0c,0x00,0x83,0xad,0x10,0x00,0x84,0xad,0x14,0x00,0x87,0xa5,0x78,0x1b,0xf1,0x25,
+0x10,0x00,0x22,0x8e,0x01,0x00,0x03,0x24,0x82,0x17,0x02,0x00,0x4d,0x00,0x43,0x10,
+0x25,0xb0,0x12,0x3c,0x0c,0x00,0x23,0x8e,0x80,0x0c,0x44,0x36,0x00,0x00,0x88,0x8c,
+0x00,0x02,0x62,0x30,0xc0,0xff,0x13,0x3c,0x82,0x6d,0x08,0x00,0x03,0x00,0x40,0x10,
+0xff,0x03,0x65,0x30,0x00,0xfc,0x02,0x24,0x25,0x28,0xa2,0x00,0x18,0x00,0xad,0x00,
+0x82,0x62,0x03,0x00,0xff,0x03,0x8c,0x31,0x00,0x02,0x83,0x31,0x12,0x10,0x00,0x00,
+0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x46,0x30,0x00,0xfc,0x02,0x24,
+0x25,0x60,0x82,0x01,0x18,0x00,0x8d,0x01,0x00,0xfc,0x74,0x36,0x24,0x28,0x14,0x01,
+0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,
+0x25,0x28,0xa2,0x00,0x68,0x52,0x00,0x0c,0x25,0x28,0xa6,0x00,0x94,0x0c,0x44,0x36,
+0x00,0x00,0x85,0x8c,0xff,0x0f,0x02,0x3c,0xff,0xff,0x55,0x34,0xc0,0x03,0x10,0x32,
+0x24,0x28,0xb5,0x00,0x80,0x85,0x10,0x00,0x68,0x52,0x00,0x0c,0x25,0x28,0xb0,0x00,
+0x10,0x00,0x2c,0x8e,0x88,0x0c,0x44,0x36,0x00,0x00,0x88,0x8c,0x82,0x2a,0x0c,0x00,
+0xff,0x03,0xa5,0x30,0x24,0x10,0x13,0x01,0x00,0x02,0xa3,0x30,0x03,0x00,0x60,0x10,
+0x82,0x6d,0x02,0x00,0x00,0xfc,0x02,0x24,0x25,0x28,0xa2,0x00,0x18,0x00,0xad,0x00,
+0x02,0x65,0x0c,0x00,0xff,0x03,0x8c,0x31,0x00,0x02,0x83,0x31,0x12,0x10,0x00,0x00,
+0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x46,0x30,0x00,0xfc,0x02,0x24,
+0x25,0x60,0x82,0x01,0x18,0x00,0x8d,0x01,0x24,0x28,0x14,0x01,0x12,0x80,0x00,0x00,
+0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,0x25,0x28,0xa2,0x00,
+0x68,0x52,0x00,0x0c,0x25,0x28,0xa6,0x00,0x9c,0x0c,0x44,0x36,0x00,0x00,0x85,0x8c,
+0xc0,0x03,0x10,0x32,0x80,0x85,0x10,0x00,0x24,0x28,0xb5,0x00,0x68,0x52,0x00,0x0c,
+0x25,0x28,0xb0,0x00,0x78,0x00,0xa5,0x8f,0x25,0xb0,0x10,0x3c,0x68,0x52,0x00,0x0c,
+0xe0,0x0e,0x04,0x36,0x7c,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c,0xdc,0x0e,0x04,0x36,
+0x80,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c,0x70,0x0e,0x04,0x36,0x84,0x00,0xa5,0x8f,
+0x68,0x52,0x00,0x0c,0x74,0x0e,0x04,0x36,0x88,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c,
+0x78,0x0e,0x04,0x36,0x8c,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c,0x7c,0x0e,0x04,0x36,
+0x90,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c,0x80,0x0e,0x04,0x36,0x94,0x00,0xa5,0x8f,
+0x68,0x52,0x00,0x0c,0x84,0x0e,0x04,0x36,0x98,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c,
+0x88,0x0e,0x04,0x36,0x9c,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c,0x8c,0x0e,0x04,0x36,
+0xa0,0x00,0xa5,0x8f,0x68,0x52,0x00,0x0c,0xd0,0x0e,0x04,0x36,0xa4,0x00,0xa5,0x8f,
+0x68,0x52,0x00,0x0c,0xd4,0x0e,0x04,0x36,0xa8,0x00,0xa5,0x8f,0x88,0x0e,0x04,0x36,
+0x68,0x52,0x00,0x0c,0x0f,0x00,0x10,0x3c,0x70,0x00,0xa6,0x8f,0xff,0xff,0x05,0x36,
+0xb8,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x95,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,0x74,0x00,0xa6,0x8f,0xff,0xff,0x05,0x36,
+0xb8,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x95,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,0xff,0xff,0x05,0x36,0xe3,0x44,0x00,0x0c,
+0x1e,0x00,0x04,0x24,0x21,0x88,0x40,0x00,0xfd,0xff,0x06,0x24,0x01,0x00,0x42,0x34,
+0x24,0x30,0x46,0x00,0xff,0xff,0x05,0x36,0xb8,0x44,0x00,0x0c,0x1e,0x00,0x04,0x24,
+0x9c,0x12,0x00,0x0c,0x03,0x00,0x04,0x24,0xff,0xff,0x05,0x36,0x03,0x00,0x26,0x36,
+0xb8,0x44,0x00,0x0c,0x1e,0x00,0x04,0x24,0xdc,0x00,0xbf,0x8f,0xd8,0x00,0xbe,0x8f,
+0xd4,0x00,0xb7,0x8f,0xd0,0x00,0xb6,0x8f,0xcc,0x00,0xb5,0x8f,0xc8,0x00,0xb4,0x8f,
+0xc4,0x00,0xb3,0x8f,0xc0,0x00,0xb2,0x8f,0xbc,0x00,0xb1,0x8f,0xb8,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0xe0,0x00,0xbd,0x27,0xff,0x00,0x05,0x24,0xff,0x00,0x02,0x24,
+0x29,0xff,0xa2,0x14,0x10,0x00,0xa2,0x27,0x25,0xb0,0x03,0x3c,0x94,0x0e,0x62,0x34,
+0x9c,0x0e,0x64,0x34,0xa4,0x0e,0x65,0x34,0xac,0x0e,0x66,0x34,0x02,0x80,0x0f,0x3c,
+0x00,0x00,0x49,0x8c,0x78,0x1b,0xed,0x25,0x00,0x00,0x8c,0x8c,0x00,0x00,0xae,0x8c,
+0x00,0x00,0xc7,0x8c,0xb4,0x0e,0x62,0x34,0x0c,0x00,0xa4,0x8d,0x10,0x00,0xa5,0x8d,
+0x00,0x00,0x4a,0x8c,0xff,0x03,0x06,0x3c,0x00,0xfc,0x08,0x24,0xbc,0x0e,0x62,0x34,
+0x24,0x48,0x26,0x01,0x24,0x38,0xe6,0x00,0x00,0x00,0x4b,0x8c,0x24,0x28,0xa8,0x00,
+0x24,0x20,0x88,0x00,0x02,0x3c,0x07,0x00,0xcc,0x0e,0x68,0x34,0x02,0x4c,0x09,0x00,
+0xc4,0x0e,0x63,0x34,0xf0,0xff,0x02,0x3c,0xff,0x03,0x42,0x34,0x25,0x28,0xa7,0x00,
+0x25,0x20,0x89,0x00,0x00,0x00,0x67,0x8c,0x24,0x60,0x86,0x01,0x00,0x00,0x03,0x8d,
+0x24,0x50,0x46,0x01,0x24,0x28,0xa2,0x00,0x24,0x20,0x82,0x00,0x82,0x61,0x0c,0x00,
+0x82,0x51,0x0a,0x00,0x0f,0xc0,0x02,0x3c,0xff,0xff,0x42,0x34,0x25,0x20,0x8c,0x00,
+0x25,0x28,0xaa,0x00,0x24,0x70,0xc6,0x01,0x24,0x58,0x66,0x01,0x24,0x28,0xa2,0x00,
+0x24,0x18,0x66,0x00,0x00,0x71,0x0e,0x00,0x24,0x20,0x82,0x00,0x00,0x59,0x0b,0x00,
+0x24,0x38,0xe6,0x00,0x25,0x20,0x8e,0x00,0x25,0x28,0xab,0x00,0x02,0x3c,0x07,0x00,
+0x02,0x1c,0x03,0x00,0x16,0x00,0xa3,0xa5,0x0c,0x00,0xa4,0xad,0x10,0x00,0xa5,0xad,
+0xbd,0x54,0x00,0x08,0x14,0x00,0xa7,0xa5,0x30,0x00,0xb1,0x8f,0x65,0x54,0x00,0x08,
+0x21,0x20,0x00,0x02,0xe0,0xff,0xbd,0x27,0x44,0x00,0x02,0x24,0x10,0x00,0xa2,0xa3,
+0x49,0x00,0x03,0x24,0x47,0x00,0x02,0x24,0x02,0x80,0x07,0x3c,0x1c,0xb6,0xe7,0x24,
+0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3,0x10,0x27,0x03,0x24,0x01,0x00,0x02,0x24,
+0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,0xb0,0x59,0xc6,0x24,
+0x0c,0x00,0xe3,0xac,0x14,0x00,0xe2,0xa0,0x18,0x00,0xbf,0xaf,0xa8,0x14,0x00,0x0c,
+0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0xd0,0xff,0xbd,0x27,0x25,0xb0,0x03,0x3c,0x20,0x00,0xb4,0xaf,
+0x1c,0x00,0xb3,0xaf,0x2c,0x00,0xbf,0xaf,0x28,0x00,0xb6,0xaf,0x24,0x00,0xb5,0xaf,
+0x18,0x00,0xb2,0xaf,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,0x03,0x0d,0x64,0x34,
+0x00,0x00,0x82,0x90,0x00,0x00,0x00,0x00,0xff,0x00,0x54,0x30,0x70,0x00,0x93,0x32,
+0x63,0x00,0x60,0x12,0x42,0x00,0x63,0x34,0x8f,0x00,0x82,0x32,0x00,0x00,0x82,0xa0,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x5b,0x00,0x60,0x12,0x00,0x00,0x00,0x00,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x0f,0x00,0x11,0x3c,0x21,0x20,0x00,0x00,0xe3,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,
+0x21,0xa8,0x40,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x95,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x21,0x20,0x00,0x00,0xe3,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x21,0xb0,0x40,0x00,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x64,0x00,0x04,0x24,
+0xcb,0x12,0x00,0x0c,0x08,0x00,0x10,0x3c,0xff,0xff,0x10,0x36,0x95,0x42,0x00,0x0c,
+0x21,0x20,0x00,0x00,0x01,0x00,0x12,0x3c,0x24,0x30,0xb0,0x02,0x25,0x30,0xd2,0x00,
+0xff,0xff,0x25,0x36,0xb8,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,0xcb,0x12,0x00,0x0c,
+0x64,0x00,0x04,0x24,0x24,0x80,0xd0,0x02,0x95,0x42,0x00,0x0c,0x01,0x00,0x04,0x24,
+0x25,0x30,0x12,0x02,0xff,0xff,0x25,0x36,0xb8,0x44,0x00,0x0c,0x21,0x20,0x00,0x00,
+0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x95,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x0f,0x00,0x11,0x3c,0x18,0x00,0x04,0x24,0xe3,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,
+0x21,0x80,0x40,0x00,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,
+0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x18,0x00,0x04,0x24,0xff,0xff,0x25,0x36,
+0xb8,0x44,0x00,0x0c,0x00,0x80,0x06,0x36,0x9c,0x12,0x00,0x0c,0x03,0x00,0x04,0x24,
+0x27,0x00,0x60,0x16,0x25,0xb0,0x02,0x3c,0x2c,0x00,0xbf,0x8f,0x28,0x00,0xb6,0x8f,
+0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,0x18,0x00,0xb2,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x25,0xb0,0x02,0x3c,0x42,0x00,0x42,0x34,
+0x30,0x00,0xbd,0x27,0x00,0x00,0x40,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xff,0xff,0x02,0x24,0x00,0x00,0x62,0xa0,0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,
+0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x0f,0x00,0x11,0x3c,0x18,0x00,0x04,0x24,
+0xe3,0x44,0x00,0x0c,0xff,0xff,0x25,0x36,0x21,0x80,0x40,0x00,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,
+0x18,0x00,0x04,0x24,0xff,0xff,0x25,0x36,0xb8,0x44,0x00,0x0c,0x00,0x80,0x06,0x36,
+0x9c,0x12,0x00,0x0c,0x03,0x00,0x04,0x24,0xdb,0xff,0x60,0x12,0x25,0xb0,0x02,0x3c,
+0x03,0x0d,0x42,0x34,0x00,0x00,0x54,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,
+0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,
+0x0f,0x00,0x10,0x3c,0x21,0x30,0xa0,0x02,0xff,0xff,0x05,0x36,0xb8,0x44,0x00,0x0c,
+0x21,0x20,0x00,0x00,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x95,0x42,0x00,0x0c,
+0x01,0x00,0x04,0x24,0xff,0xff,0x05,0x36,0x21,0x30,0xc0,0x02,0xb8,0x44,0x00,0x0c,
+0x21,0x20,0x00,0x00,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,0x2c,0x00,0xbf,0x8f,
+0x28,0x00,0xb6,0x8f,0x24,0x00,0xb5,0x8f,0x20,0x00,0xb4,0x8f,0x1c,0x00,0xb3,0x8f,
+0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x20,0x00,0x00,
+0x95,0x42,0x00,0x08,0x30,0x00,0xbd,0x27,0xc0,0xff,0xbd,0x27,0x28,0x00,0xb4,0xaf,
+0x02,0x80,0x14,0x3c,0x78,0x1b,0x85,0x26,0x38,0x00,0xbf,0xaf,0x34,0x00,0xb7,0xaf,
+0x30,0x00,0xb6,0xaf,0x2c,0x00,0xb5,0xaf,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,
+0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,0xc8,0x02,0xa3,0x90,0x25,0xb0,0x02,0x3c,
+0x9a,0x0c,0x42,0x34,0x01,0x00,0x63,0x24,0xff,0x00,0x64,0x30,0x00,0x00,0x44,0xa0,
+0xc8,0x02,0xa3,0xa0,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x42,0x24,0x78,0x1b,0x85,0x26,
+0x0c,0x00,0xa2,0x8c,0x00,0x00,0x00,0x00,0x82,0x17,0x02,0x00,0x01,0x00,0x42,0x30,
+0x08,0x00,0x40,0x14,0x06,0x00,0x16,0x24,0x08,0x00,0xa2,0x8c,0x01,0x00,0x03,0x24,
+0x42,0x17,0x02,0x00,0x03,0x00,0x42,0x30,0x4e,0x01,0x43,0x10,0x25,0xb0,0x02,0x3c,
+0x78,0x1b,0x85,0x26,0x0c,0x00,0xa2,0x8c,0x01,0x00,0x03,0x24,0x82,0x17,0x02,0x00,
+0x01,0x00,0x44,0x30,0x0d,0x00,0x83,0x10,0x00,0x00,0x00,0x00,0x38,0x00,0xbf,0x8f,
+0x34,0x00,0xb7,0x8f,0x30,0x00,0xb6,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,0x40,0x00,0xbd,0x27,0x08,0x00,0xa2,0x8c,
+0x00,0x00,0x00,0x00,0x42,0x17,0x02,0x00,0x03,0x00,0x43,0x30,0xef,0xff,0x64,0x14,
+0x00,0x00,0x00,0x00,0x10,0x00,0xa2,0x8c,0x00,0x00,0x00,0x00,0x82,0x17,0x02,0x00,
+0x60,0x02,0x43,0x10,0x0f,0x00,0x10,0x3c,0xc7,0x02,0xb3,0x90,0x25,0xb0,0x02,0x3c,
+0x62,0x0c,0x42,0x34,0xff,0x00,0x63,0x32,0x00,0x00,0x43,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x90,0x26,0xc6,0x02,0x02,0x92,0x00,0x00,0x00,0x00,
+0x6f,0x01,0x40,0x10,0x01,0x00,0x02,0x24,0x25,0xb0,0x11,0x3c,0x03,0x0d,0x23,0x36,
+0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x70,0x00,0x42,0x30,0x95,0x01,0x40,0x14,
+0xcc,0x00,0x02,0x24,0xc4,0x02,0x02,0x96,0x00,0x00,0x00,0x00,0x23,0x20,0x53,0x00,
+0x2b,0x18,0x53,0x00,0x23,0x10,0x62,0x02,0x0a,0x10,0x83,0x00,0x03,0x00,0x42,0x2c,
+0x62,0x01,0x40,0x10,0x00,0x00,0x00,0x00,0xc4,0x02,0x03,0x92,0x63,0x0c,0x22,0x36,
+0x21,0x20,0x00,0x00,0x00,0x00,0x43,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,
+0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x78,0x1b,0x83,0x26,
+0xc3,0x02,0x62,0x90,0x08,0x00,0x66,0x8c,0xc2,0x02,0x73,0xa0,0x23,0x20,0x53,0x00,
+0x2b,0x38,0x62,0x02,0x23,0x90,0x62,0x02,0x02,0x2c,0x06,0x00,0x0b,0x90,0x87,0x00,
+0x3f,0x00,0xa5,0x30,0x3f,0x00,0xc4,0x30,0x24,0x00,0x02,0x24,0x20,0x00,0x03,0x24,
+0x23,0x10,0x44,0x00,0x7d,0x01,0x40,0x16,0x23,0x18,0x65,0x00,0x21,0x40,0x80,0x00,
+0x21,0xa8,0xa0,0x00,0x02,0x80,0x17,0x3c,0x2b,0x28,0xc8,0x02,0xf3,0x01,0xa0,0x10,
+0x78,0x1b,0x82,0x26,0x80,0x10,0x08,0x00,0x78,0x1b,0x83,0x26,0x21,0x10,0x43,0x00,
+0x18,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,0x82,0x25,0x04,0x00,0x78,0x1b,0x86,0x26,
+0x0c,0x00,0xc3,0x8c,0x00,0x00,0x00,0x00,0xff,0x03,0x67,0x30,0x7b,0x01,0xe0,0x10,
+0x00,0x02,0x62,0x30,0x04,0x00,0x40,0x10,0x18,0x00,0xe4,0x00,0x00,0xfc,0x02,0x24,
+0x25,0x38,0xe2,0x00,0x18,0x00,0xe4,0x00,0x82,0x82,0x03,0x00,0xff,0x03,0x10,0x32,
+0x00,0x02,0x03,0x32,0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,
+0xff,0x03,0x45,0x30,0x00,0xfc,0x02,0x24,0x25,0x80,0x02,0x02,0x18,0x00,0x04,0x02,
+0x80,0x1d,0x04,0x00,0x25,0xb0,0x11,0x3c,0x80,0x0c,0x24,0x36,0x94,0x0c,0x31,0x36,
+0x12,0x80,0x00,0x00,0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,
+0x25,0x18,0x62,0x00,0x25,0x18,0x65,0x00,0x21,0x28,0x60,0x00,0x68,0x52,0x00,0x0c,
+0x10,0x00,0xa3,0xaf,0x00,0x00,0x23,0x8e,0xff,0x0f,0x02,0x3c,0xc0,0x03,0x10,0x32,
+0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x80,0x85,0x10,0x00,0x25,0x18,0x70,0x00,
+0x21,0x20,0x20,0x02,0x21,0x28,0x60,0x00,0x10,0x00,0xa3,0xaf,0x68,0x52,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x78,0x1b,0x83,0x26,0x08,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x59,0x01,0x40,0x04,0xc0,0x28,0x15,0x00,0x21,0x10,0xa3,0x00,0xac,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x22,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xad,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x23,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xae,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x24,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xaf,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x25,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb0,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x26,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb1,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x27,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb2,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x28,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb3,0x00,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x29,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x56,0x43,0xe3,0x92,0x22,0x00,0x02,0x24,0x03,0x00,0x62,0x10,
+0x92,0x00,0x02,0x24,0x0d,0xff,0x62,0x14,0x00,0x00,0x00,0x00,0x78,0x1b,0x82,0x26,
+0x08,0x00,0x43,0x8c,0x01,0x00,0x44,0x3a,0x24,0x00,0x02,0x24,0x02,0x1a,0x03,0x00,
+0x3f,0x00,0x63,0x30,0x01,0x00,0x84,0x30,0x71,0x01,0x80,0x10,0x23,0x28,0x43,0x00,
+0x42,0x18,0x12,0x00,0x40,0x10,0x03,0x00,0x21,0x90,0x43,0x00,0x78,0x1b,0x83,0x26,
+0xc3,0x02,0x62,0x90,0x00,0x00,0x00,0x00,0x2b,0x10,0x62,0x02,0x46,0x01,0x40,0x10,
+0x2b,0x10,0x45,0x02,0x06,0x00,0x40,0x10,0x24,0x00,0x06,0x24,0x08,0x00,0x62,0x8c,
+0x00,0x00,0x00,0x00,0x02,0x12,0x02,0x00,0x3f,0x00,0x42,0x30,0x21,0x30,0x52,0x00,
+0x2b,0x28,0xc6,0x02,0x46,0x01,0xa0,0x10,0x78,0x1b,0x82,0x26,0x80,0x10,0x06,0x00,
+0x78,0x1b,0x83,0x26,0x21,0x10,0x43,0x00,0x18,0x00,0x44,0x8c,0x00,0x00,0x00,0x00,
+0x82,0x25,0x04,0x00,0x78,0x1b,0x83,0x26,0x10,0x00,0x70,0x8c,0x00,0x00,0x00,0x00,
+0x82,0x3a,0x10,0x00,0xff,0x03,0xe7,0x30,0x3c,0x01,0xe0,0x10,0x00,0x02,0xe2,0x30,
+0x04,0x00,0x40,0x10,0x18,0x00,0xe4,0x00,0x00,0xfc,0x02,0x24,0x25,0x38,0xe2,0x00,
+0x18,0x00,0xe4,0x00,0x02,0x85,0x10,0x00,0xff,0x03,0x10,0x32,0x00,0x02,0x03,0x32,
+0x12,0x10,0x00,0x00,0x02,0x12,0x02,0x00,0x03,0x00,0x60,0x10,0xff,0x03,0x45,0x30,
+0x00,0xfc,0x02,0x24,0x25,0x80,0x02,0x02,0x18,0x00,0x04,0x02,0x80,0x1d,0x04,0x00,
+0x25,0xb0,0x11,0x3c,0x88,0x0c,0x24,0x36,0x9c,0x0c,0x31,0x36,0x12,0x80,0x00,0x00,
+0x02,0x82,0x10,0x00,0x3f,0x00,0x02,0x32,0x00,0x14,0x02,0x00,0x25,0x18,0x62,0x00,
+0x25,0x18,0x65,0x00,0x21,0x28,0x60,0x00,0x68,0x52,0x00,0x0c,0x10,0x00,0xa3,0xaf,
+0x00,0x00,0x23,0x8e,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0xc0,0x03,0x10,0x32,
+0x24,0x18,0x62,0x00,0x80,0x85,0x10,0x00,0x25,0x18,0x70,0x00,0x21,0x20,0x20,0x02,
+0x21,0x28,0x60,0x00,0x68,0x52,0x00,0x0c,0x10,0x00,0xa3,0xaf,0x99,0x56,0x00,0x08,
+0x00,0x00,0x00,0x00,0x80,0x0c,0x42,0x34,0x00,0x00,0x43,0x8c,0x21,0x30,0xa0,0x00,
+0xc0,0xff,0x02,0x3c,0x24,0x20,0x62,0x00,0x21,0x88,0x00,0x00,0xc0,0xff,0x05,0x3c,
+0xec,0x57,0x00,0x08,0x18,0x00,0xc3,0x24,0x01,0x00,0x31,0x26,0x25,0x00,0x22,0x2e,
+0x0d,0x00,0x40,0x10,0x02,0x80,0x17,0x3c,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x10,0x45,0x00,0xf8,0xff,0x44,0x14,0x04,0x00,0x63,0x24,0x08,0x00,0xc2,0x8c,
+0xc0,0xff,0x03,0x24,0x3f,0x00,0x24,0x32,0x24,0x10,0x43,0x00,0x25,0x10,0x44,0x00,
+0x08,0x00,0xc2,0xac,0x02,0x80,0x17,0x3c,0x56,0x43,0xe3,0x92,0x22,0x00,0x02,0x24,
+0x3a,0x00,0x62,0x10,0x92,0x00,0x02,0x24,0x39,0x00,0x62,0x10,0x25,0xb0,0x02,0x3c,
+0x25,0xb0,0x02,0x3c,0x24,0x0a,0x42,0x34,0x00,0x00,0x44,0x8c,0x3f,0x3f,0x03,0x3c,
+0x3f,0x3f,0x63,0x34,0x24,0x20,0x83,0x00,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,
+0x26,0x1c,0x53,0x24,0x2e,0x1d,0x72,0x24,0x21,0x88,0x00,0x00,0x13,0x58,0x00,0x08,
+0x10,0x00,0xa4,0xaf,0x7b,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0x43,0x00,0x40,0x10,
+0x78,0x1b,0x85,0x26,0x01,0x00,0x31,0x26,0x21,0x00,0x22,0x2e,0x17,0x00,0x40,0x10,
+0x78,0x1b,0x82,0x26,0xc0,0x80,0x11,0x00,0x10,0x00,0xa4,0x27,0x21,0x28,0x13,0x02,
+0x7b,0x46,0x00,0x0c,0x04,0x00,0x06,0x24,0x21,0x28,0x12,0x02,0x10,0x00,0xa4,0x27,
+0xf0,0xff,0x40,0x14,0x04,0x00,0x06,0x24,0x78,0x1b,0x85,0x26,0x08,0x00,0xa3,0x8c,
+0xc0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x3f,0x00,0x24,0x32,0x24,0x18,0x62,0x00,
+0x00,0x24,0x04,0x00,0xff,0x7f,0x02,0x3c,0x25,0x18,0x64,0x00,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x08,0x00,0xa3,0xac,0x78,0x1b,0x82,0x26,0x0c,0x00,0x43,0x8c,
+0x00,0x40,0x04,0x3c,0x25,0x18,0x64,0x00,0x92,0x56,0x00,0x08,0x0c,0x00,0x43,0xac,
+0xc6,0x02,0x02,0xa2,0xc0,0x56,0x00,0x08,0xc4,0x02,0x13,0xa6,0xbf,0x55,0x00,0x0c,
+0x00,0x00,0x00,0x00,0xd0,0x56,0x00,0x08,0xc4,0x02,0x13,0xa6,0x25,0xb0,0x02,0x3c,
+0x88,0x0c,0x42,0x34,0x00,0x00,0x44,0x8c,0x02,0x80,0x03,0x3c,0x78,0x1b,0x66,0x24,
+0xc0,0xff,0x02,0x3c,0x24,0x20,0x82,0x00,0x21,0x88,0x00,0x00,0xc0,0xff,0x05,0x3c,
+0x44,0x58,0x00,0x08,0x18,0x00,0xc3,0x24,0x01,0x00,0x31,0x26,0x25,0x00,0x22,0x2e,
+0xbc,0xff,0x40,0x10,0x25,0xb0,0x02,0x3c,0x00,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x24,0x10,0x45,0x00,0xf8,0xff,0x44,0x14,0x04,0x00,0x63,0x24,0x08,0x00,0xc2,0x8c,
+0x3f,0x00,0x23,0x32,0xff,0xc0,0x04,0x24,0x24,0x10,0x44,0x00,0x00,0x1a,0x03,0x00,
+0x25,0x10,0x43,0x00,0xfe,0x57,0x00,0x08,0x08,0x00,0xc2,0xac,0x08,0x00,0xa3,0x8c,
+0xc0,0xff,0x02,0x3c,0xff,0xff,0x42,0x34,0x3f,0x00,0x24,0x32,0x24,0x18,0x62,0x00,
+0x00,0x24,0x04,0x00,0x25,0x18,0x64,0x00,0x00,0x80,0x02,0x3c,0x27,0x58,0x00,0x08,
+0x25,0x18,0x62,0x00,0x63,0x0c,0x23,0x36,0x00,0x00,0x62,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0xda,0x56,0x00,0x08,0x78,0x1b,0x83,0x26,0x98,0x00,0xe0,0x10,
+0x21,0x40,0x00,0x00,0x2b,0x10,0x42,0x02,0x21,0x20,0x92,0x00,0x00,0x00,0x42,0x38,
+0x24,0x00,0x08,0x24,0x2b,0x18,0x43,0x02,0x0b,0x40,0x82,0x00,0x7d,0xfe,0x60,0x10,
+0x20,0x00,0x15,0x24,0x78,0x1b,0x83,0x26,0x0a,0x00,0x62,0x94,0x02,0x80,0x17,0x3c,
+0x3f,0x00,0x42,0x30,0xec,0x56,0x00,0x08,0x21,0xa8,0x52,0x00,0x96,0x00,0xa0,0x10,
+0x80,0x10,0x08,0x00,0x21,0x10,0x46,0x00,0x18,0x00,0x45,0x8c,0x25,0xb0,0x04,0x3c,
+0x68,0x52,0x00,0x0c,0x80,0x0c,0x84,0x34,0x25,0xb0,0x04,0x3c,0x94,0x0c,0x84,0x34,
+0x21,0x57,0x00,0x08,0x21,0x28,0x00,0x00,0x21,0x10,0xa3,0x00,0xb4,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x22,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb5,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x23,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb6,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x24,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb7,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x25,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb8,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x26,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xb9,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x27,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xba,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x28,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x78,0x1b,0x82,0x26,0x21,0x10,0xa2,0x00,0xbb,0x01,0x44,0x90,
+0x25,0xb0,0x03,0x3c,0x29,0x0a,0x63,0x34,0x00,0x00,0x64,0xa0,0x21,0x10,0x00,0x00,
+0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x42,0x24,0x87,0x57,0x00,0x08,0x00,0x00,0x00,0x00,0x30,0x00,0x43,0x8c,
+0xf5,0x56,0x00,0x08,0x82,0x25,0x03,0x00,0x08,0x00,0x62,0x8c,0x00,0x00,0x00,0x00,
+0x02,0x12,0x02,0x00,0x3f,0x00,0x42,0x30,0x2b,0x18,0x42,0x02,0xbc,0xfe,0x60,0x14,
+0x23,0x30,0x52,0x00,0x21,0x30,0x00,0x00,0x21,0x28,0x00,0x00,0x78,0x1b,0x82,0x26,
+0x30,0x00,0x43,0x8c,0xaf,0x57,0x00,0x08,0x82,0x25,0x03,0x00,0x32,0x00,0xa0,0x10,
+0x80,0x10,0x06,0x00,0x21,0x10,0x43,0x00,0x18,0x00,0x45,0x8c,0x25,0xb0,0x04,0x3c,
+0x68,0x52,0x00,0x0c,0x88,0x0c,0x84,0x34,0x25,0xb0,0x04,0x3c,0x9c,0x0c,0x84,0x34,
+0x68,0x52,0x00,0x0c,0x21,0x28,0x00,0x00,0x99,0x56,0x00,0x08,0x00,0x00,0x00,0x00,
+0x23,0x10,0x92,0x00,0x2b,0x18,0x44,0x02,0x2b,0x20,0x45,0x02,0x0b,0x40,0x43,0x00,
+0xe8,0xfd,0x80,0x14,0x23,0xa8,0xb2,0x00,0xeb,0x56,0x00,0x08,0x21,0xa8,0x00,0x00,
+0xff,0xff,0x43,0x26,0x42,0x18,0x03,0x00,0x40,0x10,0x03,0x00,0x21,0x10,0x43,0x00,
+0x99,0x57,0x00,0x08,0x01,0x00,0x52,0x24,0x30,0x00,0xc5,0x8c,0x7a,0x58,0x00,0x08,
+0x25,0xb0,0x04,0x3c,0xff,0xff,0x05,0x36,0x60,0x00,0x06,0x24,0xb8,0x44,0x00,0x0c,
+0x24,0x00,0x04,0x24,0x9c,0x12,0x00,0x0c,0xe8,0x03,0x04,0x24,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,0x24,0x00,0x04,0x24,
+0xe3,0x44,0x00,0x0c,0xff,0xff,0x05,0x36,0x1f,0x00,0x53,0x30,0x00,0x60,0x01,0x40,
+0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0xcb,0x12,0x00,0x0c,0x64,0x00,0x04,0x24,
+0xb2,0x56,0x00,0x08,0x25,0xb0,0x02,0x3c,0x30,0x00,0x65,0x8c,0xf6,0x58,0x00,0x08,
+0x25,0xb0,0x04,0x3c,0x00,0xff,0x84,0x30,0x02,0x22,0x04,0x00,0x08,0x00,0x80,0x10,
+0x02,0x80,0x02,0x3c,0xff,0x00,0x02,0x24,0x04,0x00,0x82,0x10,0xcc,0xff,0x03,0x24,
+0x02,0x80,0x02,0x3c,0x08,0x00,0xe0,0x03,0x62,0x1e,0x43,0xa0,0x02,0x80,0x02,0x3c,
+0x08,0x00,0xe0,0x03,0x62,0x1e,0x44,0xa0,0x02,0x24,0x04,0x00,0xff,0x00,0x84,0x30,
+0xc0,0x10,0x04,0x00,0x21,0x10,0x44,0x00,0x80,0x10,0x02,0x00,0x21,0x10,0x44,0x00,
+0x02,0x80,0x03,0x3c,0x80,0x10,0x02,0x00,0x78,0x1b,0x63,0x24,0x20,0x00,0x84,0x2c,
+0x09,0x00,0x80,0x10,0x21,0x10,0x43,0x00,0x80,0x11,0x43,0x8c,0x25,0xb0,0x02,0x3c,
+0xc4,0x02,0x42,0x34,0x02,0x19,0x03,0x00,0x7f,0x00,0x63,0x30,0x00,0x00,0x43,0xac,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x6c,0x3f,0x43,0x8c,
+0x25,0xb0,0x02,0x3c,0xc4,0x02,0x42,0x34,0x02,0x19,0x03,0x00,0x7f,0x00,0x63,0x30,
+0x00,0x00,0x43,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xff,0x00,0x85,0x30,
+0xd2,0xff,0xa3,0x24,0xfe,0xff,0xa2,0x24,0xda,0xff,0xa4,0x24,0x04,0x00,0x63,0x2c,
+0x08,0x00,0x84,0x2c,0x06,0x00,0x60,0x14,0xff,0x00,0x42,0x30,0xf0,0xff,0xa2,0x24,
+0xfc,0xff,0xa3,0x24,0x16,0x00,0x46,0x2c,0x03,0x00,0x80,0x10,0xff,0x00,0x62,0x30,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xfa,0xff,0xa3,0x24,0xfc,0xff,0xc0,0x10,
+0x21,0x10,0xa0,0x00,0x08,0x00,0xe0,0x03,0xff,0x00,0x62,0x30,0xe0,0xff,0xbd,0x27,
+0x02,0x80,0x08,0x3c,0x78,0x1b,0x08,0x25,0x18,0x00,0xbf,0xaf,0xe8,0x02,0x07,0x8d,
+0x02,0x80,0x02,0x3c,0x56,0x43,0x49,0x90,0x00,0x03,0x02,0x3c,0x25,0x38,0xe2,0x00,
+0xff,0xf3,0x02,0x3c,0x02,0x80,0x03,0x3c,0xff,0xff,0x42,0x34,0xe4,0xb5,0x6a,0x24,
+0x24,0x38,0xe2,0x00,0xff,0xff,0x03,0x34,0x01,0x80,0x06,0x3c,0x22,0x00,0x02,0x24,
+0x21,0x20,0x40,0x01,0x44,0x66,0xc6,0x24,0x10,0x00,0xa5,0x27,0xe8,0x02,0x07,0xad,
+0x00,0x24,0x03,0xad,0x05,0x00,0x22,0x11,0xfc,0x23,0x03,0xad,0x18,0x00,0xbf,0x8f,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x44,0x00,0x02,0x24,
+0x10,0x00,0xa2,0xa3,0x49,0x00,0x03,0x24,0x47,0x00,0x02,0x24,0x11,0x00,0xa3,0xa3,
+0x12,0x00,0xa2,0xa3,0xd0,0x07,0x03,0x24,0x01,0x00,0x02,0x24,0x13,0x00,0xa0,0xa3,
+0x0c,0x00,0x43,0xad,0xa8,0x14,0x00,0x0c,0x14,0x00,0x42,0xa1,0x18,0x00,0xbf,0x8f,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,
+0x10,0x00,0xb0,0xaf,0x02,0x80,0x10,0x3c,0x18,0x00,0xbf,0xaf,0x14,0x00,0xb1,0xaf,
+0x78,0x1b,0x04,0x26,0xd8,0x02,0x82,0x8c,0x01,0x00,0x03,0x24,0x02,0x15,0x02,0x00,
+0x0f,0x00,0x42,0x30,0x07,0x00,0x43,0x10,0x25,0xb0,0x06,0x3c,0x18,0x00,0xbf,0x8f,
+0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0x4c,0x00,0xc3,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,
+0x03,0x00,0x42,0x30,0x45,0x00,0x40,0x10,0xff,0xf3,0x02,0x3c,0xe8,0x02,0x85,0x8c,
+0x00,0x00,0x00,0x00,0x82,0x16,0x05,0x00,0x03,0x00,0x42,0x30,0x17,0x00,0x40,0x14,
+0x78,0x1b,0x11,0x26,0x0c,0x09,0xc3,0x34,0x00,0x00,0x63,0x8c,0x12,0x01,0x02,0x3c,
+0x13,0x13,0x42,0x34,0x6b,0x00,0x62,0x10,0xff,0xfc,0x02,0x3c,0x22,0x02,0x02,0x3c,
+0x23,0x13,0x42,0x34,0x52,0x00,0x62,0x10,0xff,0xfc,0x02,0x3c,0x00,0x03,0x02,0x3c,
+0x25,0x10,0xa2,0x00,0xe8,0x02,0x82,0xac,0x78,0x1b,0x05,0x26,0xe8,0x02,0xa3,0x8c,
+0xff,0xf3,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x00,0x04,0x04,0x3c,
+0x25,0x18,0x64,0x00,0xe8,0x02,0xa3,0xac,0x78,0x1b,0x11,0x26,0xfc,0x23,0x24,0x8e,
+0xff,0xff,0x02,0x34,0xd5,0xff,0x82,0x10,0x00,0x00,0x00,0x00,0x80,0x11,0x22,0x8e,
+0x00,0x00,0x00,0x00,0x02,0x11,0x02,0x00,0x7f,0x00,0x42,0x30,0x3f,0x00,0x43,0x2c,
+0x28,0x00,0x60,0x14,0x3b,0x00,0x42,0x2c,0x00,0x24,0x22,0x8e,0x02,0x19,0x04,0x00,
+0x02,0x11,0x02,0x00,0x23,0x18,0x62,0x00,0x3a,0x00,0x60,0x18,0x01,0x00,0x03,0x24,
+0xeb,0x02,0x22,0x92,0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,0x0e,0x00,0x43,0x10,
+0x78,0x1b,0x02,0x26,0x25,0xb0,0x04,0x3c,0x12,0x01,0x05,0x3c,0x0c,0x09,0x84,0x34,
+0x68,0x52,0x00,0x0c,0x13,0x13,0xa5,0x34,0xe8,0x02,0x23,0x8e,0xff,0xfc,0x02,0x3c,
+0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0x00,0x01,0x04,0x3c,0x25,0x18,0x64,0x00,
+0xe8,0x02,0x23,0xae,0x78,0x1b,0x02,0x26,0xe8,0x02,0x43,0x8c,0x00,0x20,0x04,0x3c,
+0x25,0x18,0x64,0x00,0x9d,0x59,0x00,0x08,0xe8,0x02,0x43,0xac,0xe8,0x02,0x83,0x8c,
+0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,0xff,0xff,0x42,0x34,
+0x24,0x18,0x62,0x00,0x20,0x00,0xbd,0x27,0x21,0x10,0x00,0x00,0x08,0x00,0xe0,0x03,
+0xe8,0x02,0x83,0xac,0xa5,0xff,0x40,0x10,0x03,0x00,0x03,0x24,0xeb,0x02,0x22,0x92,
+0x00,0x00,0x00,0x00,0x03,0x00,0x42,0x30,0xa0,0xff,0x43,0x10,0x32,0x03,0x05,0x3c,
+0x25,0xb0,0x04,0x3c,0x0c,0x09,0x84,0x34,0x68,0x52,0x00,0x0c,0x33,0x13,0xa5,0x34,
+0xe8,0x02,0x23,0x8e,0xff,0xdf,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,
+0x00,0x03,0x04,0x3c,0x25,0x18,0x64,0x00,0x9d,0x59,0x00,0x08,0xe8,0x02,0x23,0xae,
+0xff,0xff,0x42,0x34,0x24,0x10,0xa2,0x00,0x00,0x02,0x03,0x3c,0xbb,0x59,0x00,0x08,
+0x25,0x10,0x43,0x00,0xeb,0x02,0x22,0x92,0x02,0x00,0x03,0x24,0x03,0x00,0x42,0x30,
+0xd5,0xff,0x43,0x10,0x78,0x1b,0x02,0x26,0x25,0xb0,0x04,0x3c,0x22,0x02,0x05,0x3c,
+0x0c,0x09,0x84,0x34,0x68,0x52,0x00,0x0c,0x23,0x13,0xa5,0x34,0xe8,0x02,0x23,0x8e,
+0xff,0xfc,0x02,0x3c,0xff,0xff,0x42,0x34,0x24,0x18,0x62,0x00,0xe5,0x59,0x00,0x08,
+0x00,0x02,0x04,0x3c,0xff,0xff,0x42,0x34,0x24,0x10,0xa2,0x00,0x00,0x01,0x03,0x3c,
+0xbb,0x59,0x00,0x08,0x25,0x10,0x43,0x00,0x25,0xb0,0x03,0x3c,0x03,0x0d,0x63,0x34,
+0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,0xff,0x00,0x42,0x30,0x08,0x00,0x42,0x34,
+0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,
+0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,0x03,0x0d,0x63,0x34,
+0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,0xf7,0x00,0x42,0x30,0x00,0x00,0x62,0xa0,
+0x01,0x00,0x82,0x24,0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,
+0x01,0x00,0x82,0x24,0x25,0xb0,0x03,0x3c,0x2d,0x0a,0x63,0x34,0x00,0x00,0x62,0x90,
+0x21,0x20,0x00,0x00,0x3f,0x00,0x42,0x30,0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24,
+0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,
+0x25,0xb0,0x03,0x3c,0x2d,0x0a,0x63,0x34,0x00,0x00,0x62,0x90,0x21,0x20,0x00,0x00,
+0xff,0x00,0x42,0x30,0x80,0x00,0x42,0x34,0x00,0x00,0x62,0xa0,0x01,0x00,0x82,0x24,
+0xff,0x00,0x44,0x30,0x06,0x00,0x83,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0xff,0x00,0x03,0x3c,
+0x82,0x01,0x49,0x34,0x81,0x01,0x48,0x34,0x24,0x10,0x83,0x00,0x02,0x3c,0x02,0x00,
+0x00,0xff,0x63,0x34,0x02,0x80,0x02,0x3c,0x78,0x1b,0x45,0x24,0x02,0x32,0x04,0x00,
+0x01,0x00,0x02,0x24,0x24,0x20,0x83,0x00,0xda,0x0c,0xa2,0xa0,0xc8,0x0c,0xa0,0xac,
+0xcc,0x0c,0xa0,0xac,0xd0,0x0c,0xa0,0xac,0x06,0x00,0x80,0x14,0xd4,0x0c,0xa0,0xac,
+0x00,0x00,0x02,0x91,0x00,0x00,0x23,0x91,0xd8,0x0c,0xa2,0xa0,0x08,0x00,0xe0,0x03,
+0xd9,0x0c,0xa3,0xa0,0xd9,0x0c,0xa7,0xa0,0x08,0x00,0xe0,0x03,0xd8,0x0c,0xa6,0xa0,
+0x02,0x80,0x03,0x3c,0x78,0x1b,0x63,0x24,0xd9,0x0c,0x66,0x90,0xd8,0x0c,0x65,0x90,
+0x25,0xb0,0x02,0x3c,0x82,0x01,0x44,0x34,0x81,0x01,0x42,0x34,0x00,0x00,0x45,0xa0,
+0x00,0x00,0x86,0xa0,0x08,0x00,0xe0,0x03,0xda,0x0c,0x60,0xa0,0x02,0x80,0x08,0x3c,
+0x78,0x1b,0x04,0x25,0xda,0x0c,0x82,0x90,0x00,0x00,0x00,0x00,0x15,0x00,0x40,0x10,
+0x21,0x18,0x00,0x00,0xcc,0x0c,0x82,0x8c,0xc8,0x0c,0x85,0x8c,0x25,0xb0,0x03,0x3c,
+0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00,0x82,0x01,0x67,0x34,0x0f,0x00,0x40,0x10,
+0x81,0x01,0x66,0x34,0xd9,0x0c,0x83,0x90,0xd8,0x0c,0x82,0x90,0xf0,0x00,0x63,0x30,
+0x1f,0x00,0x42,0x30,0x00,0x00,0xc2,0xa0,0x00,0x00,0xe3,0xa0,0x78,0x1b,0x02,0x25,
+0x01,0x00,0x03,0x24,0xd4,0x0c,0x40,0xac,0xc8,0x0c,0x40,0xac,0xcc,0x0c,0x40,0xac,
+0xd0,0x0c,0x40,0xac,0x08,0x00,0xe0,0x03,0x21,0x10,0x60,0x00,0xd0,0x0c,0x82,0x8c,
+0x25,0xb0,0x03,0x3c,0x82,0x01,0x69,0x34,0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00,
+0x0e,0x00,0x40,0x14,0x81,0x01,0x66,0x34,0xd4,0x0c,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x40,0x11,0x02,0x00,0x2b,0x10,0xa2,0x00,0x08,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0xd9,0x0c,0x83,0x90,0xd8,0x0c,0x82,0x90,0x00,0x00,0x00,0x00,0x00,0x00,0xc2,0xa0,
+0x00,0x00,0x23,0xa1,0x8e,0x5a,0x00,0x08,0x78,0x1b,0x02,0x25,0xd9,0x0c,0x83,0x90,
+0xd8,0x0c,0x82,0x90,0xf0,0x00,0x63,0x30,0x7f,0x00,0x42,0x30,0x00,0x00,0xc2,0xa0,
+0x00,0x00,0x23,0xa1,0x8e,0x5a,0x00,0x08,0x78,0x1b,0x02,0x25,0x00,0x00,0x85,0xac,
+0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,0x06,0x00,0x43,0x2c,
+0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x25,0xb0,0x03,0x3c,0x33,0x02,0x65,0x34,0x00,0x11,0x04,0x00,0x00,0x00,0xa2,0xa0,
+0x30,0x02,0x63,0x34,0x00,0x00,0x65,0x8c,0x0f,0x00,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x24,0x28,0xa2,0x00,0x01,0x00,0x03,0x24,0x04,0x18,0x83,0x00,0x02,0x00,0xa0,0x10,
+0x21,0x10,0x00,0x00,0xff,0xff,0x62,0x30,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0xe0,0xff,0xbd,0x27,0x14,0x00,0xb1,0xaf,0x25,0xb0,0x11,0x3c,0x18,0x00,0xb2,0xaf,
+0x4c,0x00,0x22,0x36,0x1c,0x00,0xbf,0xaf,0x10,0x00,0xb0,0xaf,0x00,0x00,0x44,0x90,
+0x02,0x80,0x03,0x3c,0x02,0x00,0x02,0x24,0xff,0x00,0x84,0x30,0x07,0x00,0x82,0x10,
+0x78,0x1b,0x72,0x24,0x1c,0x00,0xbf,0x8f,0x18,0x00,0xb2,0x8f,0x14,0x00,0xb1,0x8f,
+0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x52,0x24,0x43,0x96,
+0x01,0x00,0x02,0x24,0xf7,0xff,0x62,0x14,0x21,0x20,0x00,0x00,0xba,0x5a,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x04,0x00,0x04,0x24,0xba,0x5a,0x00,0x0c,0x21,0x80,0x40,0x00,
+0x25,0x80,0x02,0x02,0x33,0x02,0x23,0x36,0x08,0x00,0x02,0x24,0xff,0xff,0x10,0x32,
+0x40,0x00,0x25,0x36,0x00,0x00,0x62,0xa0,0xea,0xff,0x00,0x16,0x00,0x00,0x00,0x00,
+0x00,0x00,0xa2,0x94,0x50,0x24,0x43,0x96,0xff,0xdf,0x42,0x30,0x00,0x20,0x44,0x34,
+0x01,0x00,0x63,0x24,0x50,0x24,0x43,0xa6,0x00,0x00,0xa2,0xa4,0x00,0x00,0xa4,0xa4,
+0xd7,0x5a,0x00,0x08,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0xb8,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,
+0x3c,0x00,0xb1,0xaf,0x38,0x00,0xb0,0xaf,0x40,0x00,0xbf,0xaf,0x78,0x1b,0x50,0x24,
+0x04,0x24,0x03,0x8e,0x02,0x80,0x11,0x3c,0x01,0x00,0x02,0x24,0x01,0x00,0x63,0x30,
+0x10,0x00,0xa4,0x27,0x80,0x3f,0x25,0x26,0x07,0x00,0x62,0x10,0x0a,0x00,0x06,0x24,
+0x40,0x00,0xbf,0x8f,0x3c,0x00,0xb1,0x8f,0x38,0x00,0xb0,0x8f,0x21,0x10,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x48,0x00,0xbd,0x27,0x52,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x01,0x00,0x21,0x38,0x00,0x60,0x81,0x40,
+0x21,0x28,0x00,0x00,0x80,0x3f,0x24,0x26,0x3e,0x46,0x00,0x0c,0x0a,0x00,0x06,0x24,
+0x28,0x00,0x03,0x24,0x05,0x00,0x02,0x24,0x09,0x24,0x03,0xa2,0x08,0x24,0x02,0xa2,
+0x00,0x60,0x01,0x40,0x01,0x00,0x21,0x34,0x00,0x60,0x81,0x40,0x39,0x15,0x00,0x0c,
+0x48,0x00,0x04,0x24,0x21,0x80,0x40,0x00,0x10,0x00,0xa5,0x27,0xe4,0xff,0x40,0x10,
+0x0a,0x00,0x06,0x24,0x08,0x00,0x44,0x94,0x14,0x00,0x02,0x24,0x14,0x00,0x02,0xae,
+0x02,0x80,0x02,0x3c,0x28,0x00,0x03,0x24,0x25,0x20,0x82,0x00,0x0c,0x00,0x03,0xae,
+0x52,0x46,0x00,0x0c,0x20,0x00,0x84,0x24,0x59,0x0a,0x00,0x0c,0x21,0x20,0x00,0x02,
+0x0a,0x5b,0x00,0x08,0x00,0x00,0x00,0x00,0x25,0xb0,0x02,0x3c,0x21,0x20,0x82,0x00,
+0x00,0x00,0x85,0xac,0x21,0x10,0x00,0x00,0x01,0x00,0x42,0x24,0xff,0x00,0x42,0x30,
+0x06,0x00,0x43,0x2c,0xfc,0xff,0x60,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0xe8,0xff,0xbd,0x27,0xff,0x00,0xa5,0x30,0x10,0x00,0xb0,0xaf,
+0x14,0x00,0xbf,0xaf,0x18,0x00,0xa0,0x14,0xff,0x00,0x90,0x30,0x2c,0x00,0x00,0x12,
+0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x01,0x00,0x07,0x24,0xb0,0x44,0x67,0xa0,
+0x02,0x80,0x08,0x3c,0xb2,0x44,0x02,0x91,0x02,0x00,0x04,0x24,0x21,0x28,0x00,0x00,
+0x02,0x00,0x42,0x34,0x00,0x03,0x06,0x24,0xb2,0x44,0x02,0xa1,0x71,0x14,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x42,0xb0,0x02,0x3c,
+0x44,0x00,0x03,0x24,0x03,0x00,0x42,0x34,0x18,0x00,0xbd,0x27,0x00,0x00,0x43,0xa0,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x00,0x03,0x24,0x02,0x80,0x02,0x3c,
+0xb0,0x44,0x43,0xa0,0x02,0x80,0x02,0x3c,0xb3,0x44,0x43,0x90,0x0f,0x00,0x02,0x24,
+0x02,0x80,0x05,0x3c,0x0f,0x00,0x63,0x30,0x07,0x00,0x62,0x10,0x01,0x00,0x04,0x24,
+0xb2,0x44,0xa2,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x34,0xb2,0x44,0xa2,0xa0,
+0x1c,0x46,0x00,0x0c,0x00,0x00,0x00,0x00,0xdb,0xff,0x00,0x16,0x02,0x80,0x03,0x3c,
+0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,
+0xb0,0x44,0x40,0xa0,0x02,0x80,0x03,0x3c,0x99,0x44,0x64,0x90,0x14,0x00,0xbf,0x8f,
+0x10,0x00,0xb0,0x8f,0xff,0x00,0x84,0x30,0xf9,0x1f,0x00,0x08,0x18,0x00,0xbd,0x27,
+0xe8,0xff,0xbd,0x27,0x10,0x00,0xb2,0xaf,0x0c,0x00,0xb1,0xaf,0x08,0x00,0xb0,0xaf,
+0x21,0x40,0xe0,0x00,0x21,0x90,0xa0,0x03,0x21,0x60,0xc0,0x00,0x21,0x78,0x80,0x00,
+0x45,0x00,0xe0,0x14,0x21,0x50,0xa0,0x00,0x2b,0x10,0xa6,0x00,0x78,0x00,0x40,0x10,
+0xff,0xff,0x02,0x34,0x2b,0x10,0x46,0x00,0x8f,0x01,0x40,0x10,0x21,0x28,0xc0,0x00,
+0xff,0x00,0x02,0x3c,0xff,0xff,0x42,0x34,0x10,0x00,0x03,0x24,0x2b,0x10,0x46,0x00,
+0x18,0x00,0x04,0x24,0x21,0x30,0x60,0x00,0x0b,0x30,0x82,0x00,0x02,0x80,0x03,0x3c,
+0x06,0x10,0xc5,0x00,0xfc,0xb2,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x90,
+0x20,0x00,0x02,0x24,0x21,0x20,0x86,0x00,0x23,0x30,0x44,0x00,0x08,0x00,0xc0,0x10,
+0x02,0x4c,0x0c,0x00,0x23,0x10,0x46,0x00,0x06,0x10,0x4f,0x00,0x04,0x18,0xca,0x00,
+0x25,0x50,0x62,0x00,0x04,0x60,0xcc,0x00,0x04,0x78,0xcf,0x00,0x02,0x4c,0x0c,0x00,
+0x1b,0x00,0x49,0x01,0x02,0x00,0x20,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,
+0xff,0xff,0x87,0x31,0x02,0x24,0x0f,0x00,0x12,0x18,0x00,0x00,0x10,0x28,0x00,0x00,
+0x00,0x14,0x05,0x00,0x25,0x28,0x44,0x00,0x18,0x00,0x67,0x00,0x12,0x58,0x00,0x00,
+0x2b,0x18,0xab,0x00,0x00,0x00,0x00,0x00,0x1b,0x00,0x49,0x01,0x02,0x00,0x20,0x15,
+0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x08,0x00,0x60,0x10,0x00,0x00,0x00,0x00,
+0x21,0x28,0xac,0x00,0x2b,0x10,0xac,0x00,0x04,0x00,0x40,0x14,0x2b,0x10,0xab,0x00,
+0x00,0x00,0x42,0x38,0x21,0x18,0xac,0x00,0x0b,0x28,0x62,0x00,0x23,0x28,0xab,0x00,
+0x1b,0x00,0xa9,0x00,0x02,0x00,0x20,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,
+0xff,0xff,0xe4,0x31,0x12,0x18,0x00,0x00,0x10,0x40,0x00,0x00,0x00,0x00,0x00,0x00,
+0x42,0x5c,0x00,0x08,0x18,0x00,0x67,0x00,0x2b,0x10,0xa7,0x00,0x0a,0x00,0x40,0x10,
+0xff,0xff,0x02,0x34,0x10,0x00,0xb2,0x8f,0x0c,0x00,0xb1,0x8f,0x08,0x00,0xb0,0x8f,
+0x21,0x10,0x80,0x00,0x21,0x18,0xa0,0x00,0x00,0x00,0xa4,0xaf,0x04,0x00,0xa5,0xaf,
+0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,0x2b,0x10,0x47,0x00,0xd2,0x00,0x40,0x10,
+0x00,0x01,0xe3,0x2c,0xff,0x00,0x02,0x3c,0x10,0x00,0x03,0x24,0xff,0xff,0x42,0x34,
+0x2b,0x10,0x47,0x00,0x18,0x00,0x04,0x24,0x21,0x28,0x60,0x00,0x0b,0x28,0x82,0x00,
+0x06,0x10,0xa8,0x00,0x02,0x80,0x03,0x3c,0xfc,0xb2,0x63,0x24,0x21,0x10,0x43,0x00,
+0x00,0x00,0x44,0x90,0x20,0x00,0x02,0x24,0x21,0x20,0x85,0x00,0x23,0x30,0x44,0x00,
+0xce,0x00,0xc0,0x14,0x23,0x38,0x46,0x00,0x2b,0x10,0x0a,0x01,0x04,0x00,0x40,0x14,
+0x23,0x20,0xec,0x01,0x2b,0x10,0xec,0x01,0x05,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x2b,0x10,0xe4,0x01,0x23,0x18,0x48,0x01,0x23,0x50,0x62,0x00,0x21,0x78,0x80,0x00,
+0x04,0x00,0x40,0x12,0x21,0xc0,0xe0,0x01,0x21,0xc8,0x40,0x01,0x00,0x00,0x58,0xae,
+0x04,0x00,0x59,0xae,0x00,0x00,0xa2,0x8f,0x04,0x00,0xa3,0x8f,0x10,0x00,0xb2,0x8f,
+0x0c,0x00,0xb1,0x8f,0x08,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,
+0x53,0x00,0xc0,0x10,0x01,0x00,0x02,0x24,0xff,0xff,0x02,0x34,0x2b,0x10,0x4c,0x00,
+0x59,0x00,0x40,0x14,0xff,0x00,0x02,0x3c,0x00,0x01,0x83,0x2d,0x08,0x00,0x02,0x24,
+0x21,0x28,0x00,0x00,0x0a,0x28,0x43,0x00,0x06,0x10,0xac,0x00,0x02,0x80,0x03,0x3c,
+0xfc,0xb2,0x63,0x24,0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x90,0x20,0x00,0x02,0x24,
+0x21,0x20,0x85,0x00,0x23,0x30,0x44,0x00,0x5b,0x00,0xc0,0x14,0x00,0x00,0x00,0x00,
+0x23,0x50,0x4c,0x01,0x02,0x4c,0x0c,0x00,0xff,0xff,0x8d,0x31,0x1b,0x00,0x49,0x01,
+0x02,0x00,0x20,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x02,0x24,0x0f,0x00,
+0x12,0x18,0x00,0x00,0x10,0x28,0x00,0x00,0x00,0x14,0x05,0x00,0x25,0x28,0x44,0x00,
+0x18,0x00,0x6d,0x00,0x12,0x58,0x00,0x00,0x2b,0x18,0xab,0x00,0x00,0x00,0x00,0x00,
+0x1b,0x00,0x49,0x01,0x02,0x00,0x20,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,
+0x08,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0x21,0x28,0xac,0x00,0x2b,0x10,0xac,0x00,
+0x04,0x00,0x40,0x14,0x2b,0x10,0xab,0x00,0x00,0x00,0x42,0x38,0x21,0x18,0xac,0x00,
+0x0b,0x28,0x62,0x00,0x23,0x28,0xab,0x00,0x1b,0x00,0xa9,0x00,0x02,0x00,0x20,0x15,
+0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0xff,0xff,0xe4,0x31,0x12,0x18,0x00,0x00,
+0x10,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x6d,0x00,
+0x00,0x14,0x08,0x00,0x12,0x58,0x00,0x00,0x25,0x40,0x44,0x00,0x2b,0x18,0x0b,0x01,
+0x1b,0x00,0xa9,0x00,0x02,0x00,0x20,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,
+0x08,0x00,0x60,0x10,0x00,0x00,0x00,0x00,0x21,0x40,0x0c,0x01,0x2b,0x10,0x0c,0x01,
+0x04,0x00,0x40,0x14,0x2b,0x10,0x0b,0x01,0x21,0x18,0x0c,0x01,0x00,0x00,0x42,0x38,
+0x0b,0x40,0x62,0x00,0xab,0xff,0x40,0x12,0x23,0x78,0x0b,0x01,0x06,0xc0,0xcf,0x00,
+0x21,0xc8,0x00,0x00,0x00,0x00,0x58,0xae,0xff,0x5b,0x00,0x08,0x04,0x00,0x59,0xae,
+0x1b,0x00,0x47,0x00,0x02,0x00,0xe0,0x14,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,
+0xff,0xff,0x02,0x34,0x12,0x60,0x00,0x00,0x2b,0x10,0x4c,0x00,0xab,0xff,0x40,0x10,
+0x00,0x01,0x83,0x2d,0xff,0x00,0x02,0x3c,0x10,0x00,0x03,0x24,0xff,0xff,0x42,0x34,
+0x2b,0x10,0x4c,0x00,0x18,0x00,0x04,0x24,0x21,0x28,0x60,0x00,0x0b,0x28,0x82,0x00,
+0x02,0x80,0x03,0x3c,0x06,0x10,0xac,0x00,0xfc,0xb2,0x63,0x24,0x21,0x10,0x43,0x00,
+0x00,0x00,0x44,0x90,0x20,0x00,0x02,0x24,0x21,0x20,0x85,0x00,0x23,0x30,0x44,0x00,
+0xa7,0xff,0xc0,0x10,0x00,0x00,0x00,0x00,0x23,0x38,0x46,0x00,0x04,0x60,0xcc,0x00,
+0x06,0x58,0xea,0x00,0x02,0x4c,0x0c,0x00,0x1b,0x00,0x69,0x01,0x02,0x00,0x20,0x15,
+0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0xff,0xff,0x8d,0x31,0x06,0x18,0xef,0x00,
+0x04,0x10,0xca,0x00,0x25,0x50,0x43,0x00,0x02,0x24,0x0a,0x00,0x12,0x28,0x00,0x00,
+0x10,0x40,0x00,0x00,0x00,0x14,0x08,0x00,0x25,0x40,0x44,0x00,0x18,0x00,0xad,0x00,
+0x12,0x28,0x00,0x00,0x2b,0x18,0x05,0x01,0x00,0x00,0x00,0x00,0x1b,0x00,0x69,0x01,
+0x02,0x00,0x20,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x05,0x00,0x60,0x10,
+0x04,0x78,0xcf,0x00,0x21,0x40,0x0c,0x01,0x2b,0x10,0x0c,0x01,0x93,0x00,0x40,0x10,
+0x2b,0x10,0x05,0x01,0x23,0x40,0x05,0x01,0x1b,0x00,0x09,0x01,0x02,0x00,0x20,0x15,
+0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0xff,0xff,0x44,0x31,0x12,0x18,0x00,0x00,
+0x10,0x58,0x00,0x00,0x00,0x14,0x0b,0x00,0x25,0x58,0x44,0x00,0x18,0x00,0x6d,0x00,
+0x12,0x28,0x00,0x00,0x2b,0x18,0x65,0x01,0x00,0x00,0x00,0x00,0x1b,0x00,0x09,0x01,
+0x02,0x00,0x20,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x77,0xff,0x60,0x10,
+0x23,0x50,0x65,0x01,0x21,0x58,0x6c,0x01,0x2b,0x10,0x6c,0x01,0x04,0x00,0x40,0x14,
+0x2b,0x10,0x65,0x01,0x00,0x00,0x42,0x38,0x21,0x18,0x6c,0x01,0x0b,0x58,0x62,0x00,
+0x1d,0x5c,0x00,0x08,0x23,0x50,0x65,0x01,0x08,0x00,0x02,0x24,0x21,0x28,0x00,0x00,
+0x0a,0x28,0x43,0x00,0x02,0x80,0x03,0x3c,0x06,0x10,0xa8,0x00,0xfc,0xb2,0x63,0x24,
+0x21,0x10,0x43,0x00,0x00,0x00,0x44,0x90,0x20,0x00,0x02,0x24,0x21,0x20,0x85,0x00,
+0x23,0x30,0x44,0x00,0x34,0xff,0xc0,0x10,0x23,0x38,0x46,0x00,0x06,0x10,0xec,0x00,
+0x04,0x18,0xc8,0x00,0x25,0x40,0x62,0x00,0x06,0x58,0xea,0x00,0x02,0x6c,0x08,0x00,
+0x1b,0x00,0x6d,0x01,0x02,0x00,0xa0,0x15,0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,
+0xff,0xff,0x11,0x31,0x06,0x10,0xef,0x00,0x04,0x18,0xca,0x00,0x25,0x50,0x62,0x00,
+0x02,0x24,0x0a,0x00,0x04,0x60,0xcc,0x00,0x12,0x80,0x00,0x00,0x10,0x48,0x00,0x00,
+0x00,0x14,0x09,0x00,0x25,0x48,0x44,0x00,0x12,0x28,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x18,0x00,0x11,0x02,0x12,0x70,0x00,0x00,0x2b,0x18,0x2e,0x01,
+0x00,0x00,0x00,0x00,0x1b,0x00,0x6d,0x01,0x02,0x00,0xa0,0x15,0x00,0x00,0x00,0x00,
+0x0d,0x00,0x07,0x00,0x0a,0x00,0x60,0x10,0x04,0x78,0xcf,0x00,0x21,0x48,0x28,0x01,
+0x2b,0x10,0x28,0x01,0x06,0x00,0x40,0x14,0xff,0xff,0xb0,0x24,0x2b,0x10,0x2e,0x01,
+0x03,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0xff,0xff,0x10,0x26,0x21,0x48,0x28,0x01,
+0x23,0x48,0x2e,0x01,0x1b,0x00,0x2d,0x01,0x02,0x00,0xa0,0x15,0x00,0x00,0x00,0x00,
+0x0d,0x00,0x07,0x00,0xff,0xff,0x44,0x31,0x12,0x28,0x00,0x00,0x10,0x58,0x00,0x00,
+0x00,0x14,0x0b,0x00,0x25,0x58,0x44,0x00,0x18,0x00,0xb1,0x00,0x12,0x70,0x00,0x00,
+0x2b,0x18,0x6e,0x01,0x00,0x00,0x00,0x00,0x1b,0x00,0x2d,0x01,0x02,0x00,0xa0,0x15,
+0x00,0x00,0x00,0x00,0x0d,0x00,0x07,0x00,0x0b,0x00,0x60,0x10,0x00,0x14,0x10,0x00,
+0x21,0x58,0x68,0x01,0x2b,0x10,0x68,0x01,0x06,0x00,0x40,0x14,0xff,0xff,0xa5,0x24,
+0x2b,0x10,0x6e,0x01,0x04,0x00,0x40,0x10,0x00,0x14,0x10,0x00,0xff,0xff,0xa5,0x24,
+0x21,0x58,0x68,0x01,0x00,0x14,0x10,0x00,0x25,0x10,0x45,0x00,0x23,0x58,0x6e,0x01,
+0x19,0x00,0x4c,0x00,0x10,0x28,0x00,0x00,0x2b,0x18,0x65,0x01,0x12,0x48,0x00,0x00,
+0x05,0x00,0x60,0x14,0x23,0x20,0x2c,0x01,0x07,0x00,0xab,0x14,0x2b,0x10,0xe9,0x01,
+0x05,0x00,0x40,0x10,0x00,0x00,0x00,0x00,0x2b,0x10,0x24,0x01,0x23,0x18,0xa8,0x00,
+0x23,0x28,0x62,0x00,0x21,0x48,0x80,0x00,0xea,0xfe,0x40,0x12,0x23,0x18,0xe9,0x01,
+0x23,0x20,0x65,0x01,0x2b,0x10,0xe3,0x01,0x23,0x50,0x82,0x00,0x04,0x28,0xea,0x00,
+0x06,0x18,0xc3,0x00,0x25,0xc0,0xa3,0x00,0x06,0xc8,0xca,0x00,0x00,0x00,0x58,0xae,
+0xff,0x5b,0x00,0x08,0x04,0x00,0x59,0xae,0x00,0x01,0xc3,0x2c,0x08,0x00,0x02,0x24,
+0x21,0x30,0x00,0x00,0x99,0x5b,0x00,0x08,0x0a,0x30,0x43,0x00,0x00,0x00,0x42,0x38,
+0x21,0x18,0x0c,0x01,0x93,0x5c,0x00,0x08,0x0b,0x40,0x62,0x00,0x25,0xb0,0x02,0x3c,
+0x4d,0x00,0x44,0x34,0xff,0x00,0x03,0x3c,0xec,0x02,0x42,0x34,0x00,0x00,0x43,0xac,
+0x00,0x00,0x80,0xa0,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0xc4,0x74,0x63,0x24,0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x7f,0x00,0x02,0x3c,0x0d,0xb8,0x46,0x34,
+0x80,0x00,0x03,0x3c,0x25,0x30,0xc3,0x00,0x00,0x04,0x02,0x3c,0x25,0x30,0xc2,0x00,
+0x00,0x08,0x03,0x3c,0x25,0x30,0xc3,0x00,0x02,0x80,0x04,0x3c,0x01,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x78,0x1b,0x84,0x24,0x41,0xb0,0x05,0x3c,0xe0,0x74,0x63,0x24,
+0x18,0x03,0x42,0x34,0x00,0x00,0x43,0xac,0x00,0x00,0xa6,0xac,0x10,0x0b,0x86,0xac,
+0x08,0x0b,0x86,0xac,0x08,0x00,0xa5,0x34,0x86,0x00,0x06,0x24,0x00,0x00,0xa6,0xa4,
+0x14,0x0b,0x86,0xa4,0x0c,0x0b,0x80,0xac,0x16,0x0b,0x80,0xa4,0x08,0x00,0xe0,0x03,
+0x18,0x0b,0x86,0xa4,0x53,0x5d,0x00,0x08,0x00,0x00,0x00,0x00,0x42,0xb0,0x02,0x3c,
+0xa0,0xff,0x03,0x24,0x01,0x00,0x42,0x34,0xe8,0xff,0xbd,0x27,0x21,0x20,0x00,0x00,
+0x01,0x00,0x05,0x24,0x00,0x01,0x06,0x24,0x00,0x00,0x43,0xa0,0x10,0x00,0xbf,0xaf,
+0x71,0x14,0x00,0x0c,0x00,0x00,0x00,0x00,0x10,0x00,0xbf,0x8f,0x03,0x00,0x04,0x24,
+0x01,0x00,0x05,0x24,0x40,0x1f,0x06,0x24,0x71,0x14,0x00,0x08,0x18,0x00,0xbd,0x27,
+0x25,0xb0,0x03,0x3c,0x01,0x80,0x02,0x3c,0xe0,0xff,0xbd,0x27,0x18,0x03,0x64,0x34,
+0x98,0x75,0x42,0x24,0x00,0x00,0x82,0xac,0x14,0x00,0xb1,0xaf,0x10,0x00,0xb0,0xaf,
+0x18,0x00,0xbf,0xaf,0xb6,0x00,0x63,0x34,0x00,0x00,0x62,0x90,0x02,0x80,0x10,0x3c,
+0x78,0x1b,0x10,0x26,0xe3,0x0a,0x02,0xa2,0x34,0x61,0x00,0x0c,0xee,0x23,0x00,0xa2,
+0xff,0xff,0x02,0x34,0x21,0x88,0x00,0x02,0xf8,0x23,0x02,0xae,0xf0,0x23,0x00,0xa6,
+0xf2,0x23,0x00,0xa6,0xf4,0x23,0x02,0xae,0x21,0x28,0x00,0x00,0x21,0x20,0x00,0x02,
+0x04,0x00,0xa2,0x24,0x01,0x00,0xa5,0x24,0x20,0x00,0xa3,0x28,0xee,0x0c,0x82,0xa4,
+0xdc,0x0c,0x80,0xa4,0xde,0x0c,0x80,0xa4,0xe0,0x0c,0x80,0xa4,0xe2,0x0c,0x80,0xa4,
+0xe4,0x0c,0x80,0xa4,0xe6,0x0c,0x80,0xa4,0xe8,0x0c,0x80,0xa4,0xea,0x0c,0x80,0xa4,
+0xec,0x0c,0x80,0xa4,0xf0,0x0c,0x80,0xa0,0xf1,0xff,0x60,0x14,0x24,0x00,0x84,0x24,
+0x25,0xb0,0x02,0x3c,0x10,0x00,0x03,0x24,0xb0,0x03,0x42,0x34,0x02,0x80,0x04,0x3c,
+0xa0,0x1e,0x84,0x24,0x00,0x00,0x43,0xac,0x21,0x28,0x00,0x00,0x3e,0x46,0x00,0x0c,
+0x04,0x00,0x06,0x24,0x11,0x62,0x00,0x0c,0x00,0x00,0x00,0x00,0x84,0x62,0x00,0x0c,
+0xec,0x25,0x20,0xae,0xe6,0x63,0x00,0x0c,0x00,0x00,0x00,0x00,0x02,0x80,0x03,0x3c,
+0x56,0x43,0x64,0x90,0x92,0x00,0x02,0x24,0x03,0x00,0x82,0x10,0x00,0x00,0x00,0x00,
+0x5c,0x64,0x00,0x0c,0x00,0x00,0x00,0x00,0x42,0x64,0x00,0x0c,0x00,0x00,0x00,0x00,
+0xbd,0x62,0x00,0x0c,0x00,0x00,0x00,0x00,0xc9,0x64,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x50,0x24,0x20,0xa6,0xaf,0x64,0x00,0x0c,0x52,0x24,0x20,0xa6,0xf3,0x64,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x18,0x00,0xbf,0x8f,0x14,0x00,0xb1,0x8f,0x10,0x00,0xb0,0x8f,
+0x02,0x80,0x05,0x3c,0x02,0x80,0x06,0x3c,0x02,0x80,0x07,0x3c,0x68,0x41,0xa2,0x24,
+0x70,0x41,0xc3,0x24,0x78,0x41,0xe4,0x24,0x20,0x00,0xbd,0x27,0x04,0x00,0x42,0xac,
+0x68,0x41,0xa2,0xac,0x04,0x00,0x63,0xac,0x70,0x41,0xc3,0xac,0x78,0x41,0xe4,0xac,
+0x08,0x00,0xe0,0x03,0x04,0x00,0x84,0xac,0x01,0x80,0x03,0x3c,0x25,0xb0,0x02,0x3c,
+0xe8,0xff,0xbd,0x27,0x00,0x77,0x63,0x24,0x18,0x03,0x42,0x34,0x14,0x00,0xbf,0xaf,
+0x10,0x00,0xb0,0xaf,0x00,0x00,0x43,0xac,0x21,0x20,0x00,0x00,0x01,0x00,0x82,0x24,
+0xff,0xff,0x44,0x30,0x64,0x00,0x83,0x2c,0xfd,0xff,0x60,0x14,0x01,0x00,0x82,0x24,
+0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x52,0x43,0x48,0x90,0x50,0x43,0x65,0x94,
+0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x53,0x43,0x46,0x90,0x60,0x43,0x67,0x90,
+0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x6b,0x43,0x49,0x90,0x6d,0x43,0x6a,0x90,
+0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x70,0x43,0x4b,0x90,0x72,0x43,0x6c,0x90,
+0x02,0x80,0x02,0x3c,0x07,0x00,0x03,0x24,0x25,0xb0,0x04,0x3c,0x5d,0x43,0x43,0xa0,
+0xb0,0x03,0x84,0x34,0x02,0x80,0x02,0x3c,0x00,0x00,0x85,0xac,0x5e,0x43,0x40,0xa0,
+0x02,0x80,0x02,0x3c,0x00,0x00,0x86,0xac,0x5f,0x43,0x40,0xa0,0x02,0x80,0x02,0x3c,
+0x00,0x00,0x87,0xac,0x02,0x80,0x03,0x3c,0x80,0x43,0x40,0xa0,0x02,0x80,0x10,0x3c,
+0x02,0x80,0x02,0x3c,0x78,0x1b,0x0d,0x26,0x7e,0x43,0x60,0xa4,0x7c,0x43,0x40,0xa4,
+0x01,0x00,0x03,0x24,0xfd,0xff,0x02,0x24,0xe0,0x0a,0xa3,0xa1,0xe2,0x0a,0xa2,0xa1,
+0xff,0x07,0x03,0x24,0x00,0x78,0x02,0x24,0xe6,0x0a,0xa3,0xa5,0xe4,0x0a,0xa2,0xa5,
+0xff,0xff,0x03,0x24,0x02,0x80,0x02,0x3c,0x00,0x00,0x88,0xac,0x0f,0x00,0x0e,0x31,
+0x00,0x00,0x89,0xac,0x00,0x00,0x8a,0xac,0x00,0x00,0x8b,0xac,0x00,0x00,0x8c,0xac,
+0x91,0x43,0x43,0xa0,0x02,0x00,0x02,0x24,0xe8,0x0a,0xa0,0xa1,0x31,0x00,0xc2,0x11,
+0x82,0x0b,0xa0,0xa1,0x00,0x80,0x02,0x3c,0x15,0x15,0x03,0x3c,0x02,0xbc,0x42,0x34,
+0x07,0x07,0x63,0x34,0x74,0x0b,0xa2,0xad,0x6c,0x0b,0xa3,0xad,0x02,0x02,0x02,0x3c,
+0x70,0x0b,0xa2,0xad,0x02,0x80,0x02,0x3c,0x25,0xb0,0x04,0x3c,0x9c,0x43,0x40,0xa4,
+0x0a,0x00,0x83,0x34,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x20,0x00,0x42,0x30,
+0x12,0x00,0x40,0x10,0x4c,0x87,0x02,0x3c,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,
+0x10,0x00,0x42,0x30,0x38,0x00,0x40,0x14,0x21,0x20,0x00,0x00,0x08,0x00,0x82,0x24,
+0xff,0xff,0x44,0x30,0x80,0x00,0x83,0x2c,0xfc,0xff,0x60,0x14,0x78,0x1b,0x03,0x26,
+0x01,0x00,0x02,0x24,0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x05,0x00,0x04,0x24,
+0x8b,0x0b,0x62,0xa0,0x93,0x12,0x00,0x08,0x18,0x00,0xbd,0x27,0x54,0x00,0x85,0x34,
+0x00,0xe0,0x42,0x34,0x50,0x00,0x84,0x34,0x12,0x01,0x03,0x24,0x00,0x00,0x82,0xac,
+0x00,0x00,0xa3,0xac,0x01,0x00,0x02,0x24,0x78,0x1b,0x03,0x26,0x14,0x00,0xbf,0x8f,
+0x10,0x00,0xb0,0x8f,0x05,0x00,0x04,0x24,0x8b,0x0b,0x62,0xa0,0x93,0x12,0x00,0x08,
+0x18,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,0x57,0x43,0x44,0x90,0x06,0x00,0x03,0x24,
+0x25,0x00,0x83,0x10,0x0b,0x00,0x02,0x24,0x10,0x00,0x82,0x10,0x00,0x80,0x02,0x3c,
+0x02,0x80,0x02,0x3c,0x6a,0x43,0x43,0x90,0x00,0x00,0x00,0x00,0x2c,0x00,0x60,0x10,
+0x00,0xe0,0x02,0x3c,0x04,0xe0,0x02,0x3c,0x78,0x1b,0x04,0x26,0x00,0x8e,0x42,0x34,
+0x00,0x15,0x03,0x3c,0x74,0x0b,0x82,0xac,0x00,0x15,0x63,0x34,0x00,0x42,0x02,0x24,
+0x6c,0x0b,0x83,0xac,0x0f,0x5e,0x00,0x08,0x70,0x0b,0x82,0xac,0x00,0xbc,0x42,0x34,
+0x15,0x15,0x03,0x3c,0x74,0x0b,0xa2,0xad,0x07,0x07,0x63,0x34,0x03,0x03,0x02,0x3c,
+0x0e,0x5e,0x00,0x08,0x6c,0x0b,0xa3,0xad,0x02,0x80,0x06,0x3c,0x00,0xb4,0xc6,0x24,
+0xf5,0x13,0x00,0x0c,0x80,0x00,0x05,0x24,0x78,0x1b,0x03,0x26,0x01,0x00,0x02,0x24,
+0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x05,0x00,0x04,0x24,0x8b,0x0b,0x62,0xa0,
+0x93,0x12,0x00,0x08,0x18,0x00,0xbd,0x27,0x02,0x80,0x02,0x3c,0x6a,0x43,0x43,0x90,
+0x00,0x00,0x00,0x00,0x13,0x00,0x60,0x10,0x1c,0x1c,0x03,0x3c,0x04,0xc0,0x02,0x3c,
+0x00,0xb8,0x42,0x34,0x74,0x0b,0xa2,0xad,0x00,0x15,0x03,0x3c,0x02,0x02,0x02,0x3c,
+0x00,0x07,0x63,0x34,0x00,0x22,0x42,0x34,0x0e,0x5e,0x00,0x08,0x6c,0x0b,0xa3,0xad,
+0x78,0x1b,0x04,0x26,0x00,0xb2,0x42,0x34,0x00,0x1c,0x03,0x3c,0x74,0x0b,0x82,0xac,
+0x00,0x1c,0x63,0x34,0x00,0x04,0x02,0x24,0x6c,0x0b,0x83,0xac,0x0f,0x5e,0x00,0x08,
+0x70,0x0b,0x82,0xac,0x00,0xc0,0x02,0x3c,0x00,0xb2,0x42,0x34,0x74,0x0b,0xa2,0xad,
+0x07,0x07,0x63,0x34,0x00,0x04,0x02,0x24,0x0e,0x5e,0x00,0x08,0x6c,0x0b,0xa3,0xad,
+0xe8,0xff,0xbd,0x27,0x10,0x00,0xb0,0xaf,0x01,0x80,0x02,0x3c,0x25,0xb0,0x10,0x3c,
+0x18,0x03,0x03,0x36,0xf8,0x79,0x42,0x24,0x00,0x00,0x62,0xac,0x14,0x00,0xbf,0xaf,
+0xc0,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00,0xff,0x5e,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x25,0x61,0x00,0x0c,0x00,0x00,0x00,0x00,0x29,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x3a,0x41,0x00,0x0c,0x00,0x00,0x00,0x00,0x66,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x44,0x00,0x03,0x36,0x00,0x00,0x62,0x94,0x00,0x00,0x00,0x00,0x40,0x00,0x42,0x34,
+0x00,0x00,0x62,0xa4,0x31,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00,0x55,0x5d,0x00,0x0c,
+0x00,0x00,0x00,0x00,0xf1,0x60,0x00,0x0c,0x00,0x00,0x00,0x00,0xaf,0x60,0x00,0x0c,
+0x00,0x00,0x00,0x00,0x00,0x80,0x04,0x3c,0xac,0x37,0x84,0x24,0x0e,0x61,0x00,0x0c,
+0x01,0x00,0x05,0x24,0x00,0x80,0x04,0x3c,0xcc,0x41,0x84,0x24,0x0e,0x61,0x00,0x0c,
+0x02,0x00,0x05,0x24,0x01,0x80,0x04,0x3c,0xa4,0x20,0x84,0x24,0x0e,0x61,0x00,0x0c,
+0x04,0x00,0x05,0x24,0x04,0x50,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x80,0x04,0x3c,
+0x08,0x53,0x84,0x24,0x0e,0x61,0x00,0x0c,0x03,0x00,0x05,0x24,0x02,0x80,0x02,0x3c,
+0x60,0x43,0x43,0x90,0x43,0x00,0x04,0x36,0x2a,0x00,0x60,0x10,0xd8,0x00,0x10,0x36,
+0x07,0x00,0x02,0x24,0x2c,0x00,0x62,0x10,0x25,0xb0,0x04,0x3c,0x43,0x00,0x85,0x34,
+0x10,0x02,0x86,0x34,0x03,0x00,0x02,0x24,0x10,0x00,0x03,0x24,0x00,0x00,0xa2,0xa0,
+0xd8,0x00,0x84,0x34,0x00,0x00,0xc3,0xa0,0x00,0x00,0x82,0x90,0x80,0xff,0x03,0x24,
+0x25,0x10,0x43,0x00,0x00,0x00,0x82,0xa0,0x32,0x61,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x42,0xb0,0x03,0x3c,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x34,
+0x00,0x00,0x62,0xa0,0x38,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c,
+0x44,0x00,0x63,0x34,0x00,0x00,0x62,0x94,0x02,0x80,0x04,0x3c,0x08,0x00,0x84,0x24,
+0xc0,0x00,0x42,0x34,0x00,0x00,0x62,0xa4,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,
+0x2d,0x28,0x00,0x0c,0x21,0x38,0x00,0x00,0x53,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,
+0x18,0x00,0xbd,0x27,0x00,0x00,0x80,0xa0,0x00,0x00,0x03,0x92,0x80,0xff,0x02,0x24,
+0x25,0x18,0x62,0x00,0x00,0x00,0x03,0xa2,0x32,0x61,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x42,0xb0,0x03,0x3c,0x00,0x00,0x62,0x90,0x00,0x00,0x00,0x00,0x01,0x00,0x42,0x34,
+0x00,0x00,0x62,0xa0,0x38,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00,0x25,0xb0,0x03,0x3c,
+0x44,0x00,0x63,0x34,0x00,0x00,0x62,0x94,0x02,0x80,0x04,0x3c,0x08,0x00,0x84,0x24,
+0xc0,0x00,0x42,0x34,0x00,0x00,0x62,0xa4,0x21,0x28,0x00,0x00,0x21,0x30,0x00,0x00,
+0x2d,0x28,0x00,0x0c,0x21,0x38,0x00,0x00,0x53,0x5d,0x00,0x0c,0x00,0x00,0x00,0x00,
+0x14,0x00,0xbf,0x8f,0x10,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,
+0x18,0x00,0xbd,0x27,0xb0,0xff,0xbd,0x27,0x02,0x80,0x03,0x3c,0x4c,0x00,0xbf,0xaf,
+0x48,0x00,0xbe,0xaf,0x3c,0x00,0xb5,0xaf,0x38,0x00,0xb4,0xaf,0x34,0x00,0xb3,0xaf,
+0x30,0x00,0xb2,0xaf,0x2c,0x00,0xb1,0xaf,0x28,0x00,0xb0,0xaf,0x44,0x00,0xb7,0xaf,
+0x40,0x00,0xb6,0xaf,0x78,0x1b,0x62,0x24,0xe2,0x0a,0x43,0x90,0xe4,0x0a,0x45,0x94,
+0xe6,0x0a,0x46,0x94,0x1c,0x00,0xa3,0xa3,0x6c,0x0b,0x43,0x8c,0x24,0xb0,0x04,0x3c,
+0x21,0xb0,0x07,0x3c,0x10,0x00,0xa3,0xaf,0x70,0x0b,0x43,0x8c,0x25,0xb0,0x1e,0x3c,
+0x01,0x00,0x88,0x34,0x14,0x00,0xa3,0xaf,0x74,0x0b,0x42,0x8c,0x21,0x38,0xa7,0x00,
+0xff,0x1f,0x03,0x3c,0x18,0x00,0xa2,0xaf,0x20,0xb0,0x02,0x3c,0xff,0xff,0x42,0x34,
+0x21,0x28,0xa2,0x00,0x4c,0x81,0x02,0x3c,0xff,0xff,0x63,0x34,0x21,0x40,0xc8,0x00,
+0x58,0x00,0xc9,0x37,0x21,0x30,0xc4,0x00,0x00,0xe0,0x42,0x34,0x00,0x00,0x22,0xad,
+0xff,0xff,0x04,0x24,0x24,0x40,0x03,0x01,0x24,0x28,0xa3,0x00,0x24,0x38,0xe3,0x00,
+0x24,0x30,0xc3,0x00,0x5c,0x00,0xca,0x37,0x60,0x00,0xcb,0x37,0x64,0x00,0xcc,0x37,
+0x8a,0x00,0xcd,0x37,0x96,0x01,0x03,0x24,0x28,0x28,0x02,0x24,0x00,0x00,0x43,0xad,
+0x89,0x00,0xce,0x37,0x00,0x00,0x64,0xad,0x8c,0x00,0xcf,0x37,0x00,0x00,0x84,0xad,
+0x09,0x00,0x03,0x24,0x00,0x00,0xa2,0xa5,0x0a,0x0a,0x02,0x24,0x00,0x00,0xc3,0xa1,
+0x00,0x00,0xe2,0xa5,0x25,0xb0,0x02,0x3c,0x0e,0x0e,0x03,0x24,0x8e,0x00,0x42,0x34,
+0x00,0x00,0x43,0xa4,0x90,0x00,0xd1,0x37,0x13,0x00,0x02,0x24,0x00,0x00,0x22,0xa2,
+0x40,0x00,0x03,0x24,0x3a,0x01,0x02,0x24,0x91,0x00,0xd2,0x37,0x92,0x00,0xd3,0x37,
+0x00,0x00,0x43,0xa2,0x00,0x00,0x62,0xa6,0x25,0xb0,0x02,0x3c,0x21,0x00,0x03,0x24,
+0xb5,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x10,0x00,0xa3,0x8f,0xa0,0x00,0xd5,0x37,
+0x25,0xb0,0x02,0x3c,0x00,0x00,0xa3,0xae,0x14,0x00,0xa3,0x8f,0xa4,0x00,0x42,0x34,
+0xb0,0x00,0xdf,0x37,0x00,0x00,0x43,0xac,0x18,0x00,0xa3,0x8f,0x25,0xb0,0x02,0x3c,
+0xa8,0x00,0x42,0x34,0x00,0x00,0x43,0xac,0x25,0xb0,0x02,0x3c,0x25,0xb0,0x03,0x3c,
+0xac,0x00,0x42,0x34,0xf8,0x00,0x63,0x34,0x00,0x00,0x45,0xac,0x00,0x00,0x67,0xac,
+0x25,0xb0,0x02,0x3c,0x25,0xb0,0x03,0x3c,0x08,0x01,0x42,0x34,0xd8,0x00,0x63,0x34,
+0x00,0x00,0xe6,0xaf,0x00,0x00,0x48,0xac,0x00,0x00,0x60,0xa0,0x1c,0x00,0xa3,0x93,
+0x25,0xb0,0x02,0x3c,0xb4,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c,
+0x04,0x00,0x03,0x24,0xb6,0x00,0x42,0x34,0x00,0x00,0x43,0xa0,0x25,0xb0,0x02,0x3c,
+0xb9,0x00,0x42,0x34,0x25,0xb0,0x03,0x3c,0x00,0x00,0x44,0xa0,0xba,0x00,0x63,0x34,
+0x0f,0x00,0x02,0x24,0x00,0x00,0x62,0xa4,0x25,0xb0,0x02,0x3c,0x1a,0x01,0x42,0x34,
+0x16,0x01,0xd4,0x37,0x18,0x01,0xd0,0x37,0x25,0xb0,0x03,0x3c,0x00,0x00,0x80,0xa6,
+0xdc,0x00,0x63,0x34,0x00,0x00,0x00,0xa6,0x00,0x00,0x40,0xa4,0xff,0xcf,0x02,0x24,
+0x00,0x00,0x62,0xac,0x02,0x80,0x02,0x3c,0x56,0x43,0x42,0x90,0xd0,0x01,0xc4,0x37,
+0x5e,0x00,0x03,0x3c,0x20,0x00,0xa2,0xaf,0x2f,0x00,0x02,0x3c,0x32,0x32,0x42,0x34,
+0x00,0x00,0x82,0xac,0x08,0x00,0x02,0x3c,0x32,0x43,0x63,0x34,0x30,0xa5,0x42,0x34,
+0xd4,0x01,0xc5,0x37,0xd8,0x01,0xc6,0x37,0x00,0x00,0xa3,0xac,0xdc,0x01,0xc7,0x37,
+0x00,0x00,0xc2,0xac,0x49,0xa5,0x03,0x34,0x1a,0x06,0x02,0x24,0xe0,0x01,0xc8,0x37,
+0x00,0x00,0xe3,0xac,0xf4,0x01,0xc9,0x37,0x00,0x00,0x02,0xa5,0x07,0x07,0x03,0x24,
+0xc2,0x00,0x02,0x3c,0x00,0x00,0x23,0xa5,0x51,0x10,0x42,0x34,0x26,0x00,0x03,0x24,
+0xf8,0x01,0xca,0x37,0x00,0x02,0xcb,0x37,0x00,0x00,0x42,0xad,0x03,0x02,0xcc,0x37,
+0x00,0x00,0x63,0xa5,0x0c,0x00,0x02,0x24,0x04,0x00,0x03,0x24,0x36,0x02,0xcd,0x37,
+0x00,0x00,0x83,0xa1,0x34,0x02,0xce,0x37,0x00,0x00,0xa2,0xa1,0xc0,0x01,0x03,0x24,
+0x03,0x00,0x02,0x24,0x37,0x02,0xcf,0x37,0x00,0x00,0xc3,0xa5,0x00,0x00,0xe2,0xa1,
+0x20,0x00,0xa2,0x8f,0x22,0x00,0x03,0x24,0xd2,0x00,0x43,0x10,0x1b,0x1b,0x02,0x3c,
+0x13,0x13,0x02,0x3c,0x13,0x13,0x42,0x34,0x60,0x01,0xc3,0x37,0x64,0x01,0xc4,0x37,
+0x68,0x01,0xc5,0x37,0x7c,0x01,0xca,0x37,0x6c,0x01,0xc6,0x37,0x70,0x01,0xc7,0x37,
+0x74,0x01,0xc8,0x37,0x78,0x01,0xc9,0x37,0x00,0x00,0x62,0xac,0x00,0x00,0x82,0xac,
+0x02,0x80,0x03,0x3c,0x00,0x00,0xa2,0xac,0x00,0x00,0xc2,0xac,0x00,0x00,0xe2,0xac,
+0x00,0x00,0x02,0xad,0x00,0x00,0x22,0xad,0x00,0x00,0x42,0xad,0x56,0x43,0x65,0x90,
+0x25,0xb0,0x0c,0x3c,0x01,0x70,0x03,0x3c,0x80,0x01,0x82,0x35,0x08,0x5f,0x63,0x34,
+0x22,0x00,0x04,0x24,0x00,0x00,0x43,0xac,0xb1,0x00,0xa4,0x10,0x0f,0x1f,0x02,0x3c,
+0x92,0x00,0x02,0x24,0xae,0x00,0xa2,0x10,0x0f,0x1f,0x02,0x3c,0x0f,0x10,0x02,0x3c,
+0x00,0xf0,0x4f,0x34,0xf7,0x01,0x91,0x35,0x15,0xf0,0x4d,0x34,0x77,0x00,0x0e,0x24,
+0x84,0x01,0x87,0x35,0x88,0x01,0x88,0x35,0x10,0xf0,0x44,0x34,0x8c,0x01,0x85,0x35,
+0x05,0xf0,0x42,0x34,0x00,0x00,0xed,0xac,0x90,0x01,0x83,0x35,0x00,0x00,0x04,0xad,
+0x94,0x01,0x86,0x35,0x00,0x00,0xa2,0xac,0xf5,0x0f,0x02,0x24,0x00,0x00,0x6f,0xac,
+0x25,0xb0,0x05,0x3c,0x00,0x00,0xc2,0xac,0x98,0x01,0x89,0x35,0x9c,0x01,0x8a,0x35,
+0xf0,0x0f,0x03,0x24,0x0d,0x00,0x02,0x24,0x00,0x00,0x23,0xad,0xa0,0x01,0x8b,0x35,
+0x00,0x00,0x42,0xad,0xa7,0x01,0xb7,0x34,0xf6,0x01,0x8c,0x35,0xff,0xff,0x02,0x24,
+0x00,0x00,0x6d,0xad,0x03,0x04,0x04,0x3c,0x00,0x00,0x8e,0xa1,0x07,0x08,0x03,0x3c,
+0x00,0x00,0x2e,0xa2,0x00,0x00,0xe2,0xa2,0x25,0xb0,0x02,0x3c,0x01,0x02,0x84,0x34,
+0x05,0x06,0x63,0x34,0xa8,0x01,0xb6,0x34,0xff,0xff,0x09,0x24,0xac,0x01,0xaf,0x34,
+0xb4,0x01,0xb1,0x34,0xb8,0x01,0xb2,0x34,0xbc,0x01,0xb3,0x34,0xb0,0x01,0x42,0x34,
+0x00,0x00,0xc9,0xae,0x00,0x00,0xe9,0xad,0x00,0x00,0x44,0xac,0x00,0x00,0x23,0xae,
+0x00,0x00,0x44,0xae,0x00,0x00,0x63,0xae,0x25,0xb0,0x03,0x3c,0x0c,0x00,0x06,0x24,
+0xc0,0x01,0x63,0x34,0x25,0xb0,0x02,0x3c,0x00,0x00,0x66,0xa0,0xc1,0x01,0xb5,0x34,
+0xc2,0x01,0x42,0x34,0x25,0xb0,0x03,0x3c,0x00,0x00,0xa6,0xa2,0x0d,0x00,0x08,0x24,
+0x00,0x00,0x46,0xa0,0xc4,0x01,0xab,0x34,0xc5,0x01,0xac,0x34,0x0e,0x00,0x07,0x24,
+0xc6,0x01,0xaa,0x34,0xc7,0x01,0xad,0x34,0xc3,0x01,0x63,0x34,0x0f,0x00,0x02,0x24,
+0x00,0x00,0x68,0xa0,0x00,0x00,0x68,0xa1,0x00,0x00,0x87,0xa1,0x00,0x00,0x47,0xa1,
+0x00,0x00,0xa2,0xa1,0x57,0x01,0x02,0x3c,0x48,0x00,0xbf,0x34,0x46,0x00,0xae,0x34,
+0x0e,0xe2,0x42,0x34,0x00,0x00,0xc0,0xa5,0x4c,0x00,0xbe,0x34,0x00,0x00,0xe2,0xaf,
+0x4d,0x00,0xb9,0x34,0x80,0xff,0x02,0x24,0x00,0x00,0xc0,0xa3,0x00,0x00,0x22,0xa3,
+0x25,0xb0,0x02,0x3c,0xbc,0x00,0x03,0x24,0x40,0x00,0x42,0x34,0x00,0x00,0x43,0xa4,
+0x25,0xb0,0x03,0x3c,0x64,0x03,0xb8,0x34,0xfc,0x37,0x02,0x24,0x40,0x00,0x63,0x34,
+0x00,0x00,0x00,0xa3,0x00,0x00,0x62,0xa4,0x02,0x80,0x02,0x3c,0xd8,0x00,0xaa,0x34,
+0x78,0x1b,0x43,0x24,0xe2,0x0a,0x64,0x90,0x00,0x00,0x47,0x91,0x2a,0xb0,0x06,0x3c,
+0xa0,0xff,0x02,0x24,0x25,0x38,0xe2,0x00,0x34,0x00,0xc9,0x34,0x01,0x00,0x83,0x24,
+0x00,0x00,0x47,0xa1,0x26,0xb0,0x08,0x3c,0x00,0x00,0x23,0xa1,0x30,0x00,0xce,0x34,
+0x20,0x20,0x02,0x24,0x38,0x00,0xc6,0x34,0x40,0x00,0x03,0x24,0x00,0x00,0xc2,0xa4,
+0x79,0x00,0x0b,0x35,0x00,0x00,0xc3,0xa1,0x94,0x00,0xac,0x34,0x16,0x00,0x02,0x24,
+0x64,0x00,0x03,0x24,0x00,0x00,0x62,0xa1,0x7c,0x00,0x15,0x35,0x00,0x00,0x83,0xa5,
+0x98,0x00,0xad,0x34,0x7a,0x00,0x08,0x35,0x22,0x00,0x02,0x24,0x04,0x00,0x03,0x24,
+0x00,0x00,0xa2,0xa5,0x9c,0x00,0xaf,0x34,0x00,0x00,0x03,0xa1,0x20,0x0c,0x02,0x24,
+0x0a,0x00,0x03,0x24,0x00,0x00,0xa2,0xa6,0x00,0x00,0xe3,0xa1,0x25,0xb0,0x03,0x3c,
+0xff,0x03,0x02,0x24,0x9a,0x00,0x63,0x34,0x00,0x00,0x62,0xa4,0x96,0x00,0xb1,0x34,
+0x02,0x00,0x03,0x24,0x00,0x00,0x23,0xa6,0xb7,0x00,0xb2,0x34,0x89,0x00,0xb3,0x34,
+0x20,0x00,0x02,0x24,0x09,0x00,0x03,0x24,0x00,0x00,0x42,0xa2,0x44,0x00,0xa5,0x34,
+0x00,0x00,0x63,0xa2,0x00,0x00,0xa2,0x94,0xff,0xfd,0x03,0x24,0x04,0x02,0x06,0x24,
+0x24,0x10,0x43,0x00,0x00,0x00,0xa2,0xa4,0x00,0x00,0xa3,0x94,0x29,0xb0,0x02,0x3c,
+0x40,0x00,0x42,0x34,0x00,0x02,0x63,0x34,0x00,0x00,0xa3,0xa4,0xff,0x00,0x84,0x30,
+0x00,0x00,0x46,0xa4,0xea,0x12,0x00,0x0c,0x00,0x00,0x00,0x00,0x4c,0x00,0xbf,0x8f,
+0x48,0x00,0xbe,0x8f,0x44,0x00,0xb7,0x8f,0x40,0x00,0xb6,0x8f,0x3c,0x00,0xb5,0x8f,
+0x38,0x00,0xb4,0x8f,0x34,0x00,0xb3,0x8f,0x30,0x00,0xb2,0x8f,0x2c,0x00,0xb1,0x8f,
+0x28,0x00,0xb0,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x50,0x00,0xbd,0x27,
+0x00,0xf0,0x4f,0x34,0xf7,0x01,0x91,0x35,0x15,0xf0,0x4d,0x34,0xd2,0x5f,0x00,0x08,
+0xff,0xff,0x0e,0x24,0xb0,0x5f,0x00,0x08,0x1b,0x1b,0x42,0x34,0x25,0xb0,0x03,0x3c,
+0x25,0xb0,0x08,0x3c,0xfc,0x37,0x02,0x24,0x40,0x00,0x63,0x34,0x02,0x80,0x04,0x3c,
+0x00,0x00,0x62,0xa4,0x34,0x9b,0x84,0x24,0xff,0x00,0x07,0x24,0xb0,0x03,0x06,0x35,
+0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00,0xff,0x00,0x62,0x30,0x21,0x18,0x68,0x00,
+0x0a,0x00,0x47,0x10,0xff,0x00,0x65,0x30,0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x62,0xac,0x00,0x00,0xc3,0xac,0x04,0x00,0x82,0x8c,0x08,0x00,0x84,0x24,
+0x00,0x00,0xc2,0xac,0xf2,0xff,0xa7,0x14,0x00,0x00,0x00,0x00,0x25,0xb0,0x08,0x3c,
+0x02,0x80,0x02,0x3c,0x2c,0x95,0x44,0x24,0xff,0x00,0x07,0x24,0xb0,0x03,0x06,0x35,
+0x00,0x00,0x83,0x94,0x00,0x00,0x00,0x00,0xff,0x00,0x62,0x30,0x21,0x18,0x68,0x00,
+0x0a,0x00,0x47,0x10,0xff,0x00,0x65,0x30,0x04,0x00,0x82,0x8c,0x00,0x00,0x00,0x00,
+0x00,0x00,0x62,0xac,0x00,0x00,0xc3,0xac,0x04,0x00,0x82,0x8c,0x08,0x00,0x84,0x24,
+0x00,0x00,0xc2,0xac,0xf2,0xff,0xa7,0x14,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x00,0x00,0x00,0x00,0x02,0x80,0x02,0x3c,0x02,0x80,0x05,0x3c,0xb0,0x83,0x42,0x24,
+0x02,0x80,0x03,0x3c,0xa4,0x43,0xa2,0xac,0x00,0x80,0x02,0x3c,0x44,0x44,0x60,0xac,
+0xa4,0x43,0xa4,0x24,0x02,0x80,0x03,0x3c,0x8c,0x0a,0x42,0x24,0x48,0x44,0x60,0xa4,
+0x08,0x00,0x82,0xac,0x02,0x80,0x03,0x3c,0x00,0x80,0x02,0x3c,0x4a,0x44,0x60,0xa4,
+0x02,0x80,0x06,0x3c,0x24,0x10,0x42,0x24,0x00,0x80,0x03,0x3c,0x4c,0x44,0xc7,0x24,
+0x14,0x00,0x82,0xac,0x68,0x0c,0x63,0x24,0x02,0x80,0x02,0x3c,0x4c,0x44,0xc0,0xac,
+0x10,0x00,0x83,0xac,0x04,0x00,0xe0,0xac,0x02,0x80,0x03,0x3c,0x54,0x44,0x40,0xa0,
+0x02,0x80,0x02,0x3c,0x58,0x44,0x60,0xac,0x5c,0x44,0x40,0xac,0x01,0x80,0x02,0x3c,
+0x00,0x80,0x03,0x3c,0xd8,0x87,0x42,0x24,0x40,0x10,0x63,0x24,0x7c,0x00,0x82,0xac,
+0x1c,0x00,0x83,0xac,0x00,0x80,0x02,0x3c,0x00,0x80,0x03,0x3c,0xd8,0x13,0x42,0x24,
+0xd0,0x17,0x63,0x24,0x20,0x00,0x82,0xac,0x24,0x00,0x83,0xac,0x00,0x80,0x02,0x3c,
+0x00,0x80,0x03,0x3c,0xc4,0x1b,0x42,0x24,0xf8,0x29,0x63,0x24,0x28,0x00,0x82,0xac,
+0x2c,0x00,0x83,0xac,0x00,0x80,0x02,0x3c,0x00,0x80,0x03,0x3c,0x14,0x20,0x42,0x24,
+0x00,0x22,0x63,0x24,0x30,0x00,0x82,0xac,0x3c,0x00,0x83,0xac,0x00,0x80,0x02,0x3c,
+0x00,0x80,0x03,0x3c,0x68,0x04,0x42,0x24,0xb8,0x1f,0x63,0x24,0x50,0x00,0x82,0xac,
+0x08,0x00,0xe0,0x03,0x40,0x00,0x83,0xac,0x25,0xb0,0x02,0x3c,0x08,0x00,0x42,0x34,
+0x00,0x00,0x43,0x8c,0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x02,0x80,0x0e,0x3c,
+0x02,0x80,0x08,0x3c,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0xf8,0x03,0x4d,0x24,
+0x00,0x18,0x6c,0x24,0x01,0x00,0x07,0x24,0x00,0x00,0xcb,0x25,0xff,0xff,0x0a,0x24,
+0x00,0x04,0x09,0x25,0x80,0x1a,0x07,0x00,0x21,0x10,0x6b,0x00,0x00,0x00,0x42,0xac,
+0x90,0x00,0x4a,0xac,0x00,0x04,0x04,0x8d,0x01,0x00,0xe7,0x24,0x08,0x00,0x45,0x24,
+0x21,0x18,0x6d,0x00,0x06,0x00,0xe6,0x28,0x04,0x00,0x82,0xac,0x00,0x00,0x44,0xac,
+0x04,0x00,0x49,0xac,0x00,0x04,0x02,0xad,0x8c,0x00,0x40,0xac,0x6c,0x00,0xa3,0xac,
+0xf0,0xff,0xc0,0x14,0x68,0x00,0xac,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0xc9,0xad,
+0x06,0x00,0xa2,0x2c,0x13,0x00,0x40,0x10,0xff,0xff,0x07,0x24,0x02,0x80,0x02,0x3c,
+0x80,0x1a,0x05,0x00,0x00,0x00,0x42,0x24,0x0e,0x00,0xa0,0x10,0x21,0x30,0x62,0x00,
+0x90,0x00,0xc3,0x8c,0xff,0xff,0x02,0x24,0x0a,0x00,0x62,0x14,0x00,0x00,0x00,0x00,
+0x8c,0x00,0xc2,0x8c,0x00,0x00,0x00,0x00,0x06,0x00,0x40,0x14,0x00,0x00,0x00,0x00,
+0x01,0x00,0x02,0x24,0x88,0x00,0xc4,0xac,0x8c,0x00,0xc2,0xac,0x90,0x00,0xc5,0xac,
+0x21,0x38,0xa0,0x00,0x08,0x00,0xe0,0x03,0x21,0x10,0xe0,0x00,0x02,0x80,0x03,0x3c,
+0x25,0xb0,0x02,0x3c,0x18,0x03,0x42,0x34,0x94,0x84,0x63,0x24,0xe8,0xff,0xbd,0x27,
+0x00,0x00,0x43,0xac,0x10,0x00,0xbf,0xaf,0x95,0x42,0x00,0x0c,0x21,0x20,0x00,0x00,
+0x10,0x00,0xbf,0x8f,0x01,0x00,0x02,0x24,0x08,0x00,0xe0,0x03,0x18,0x00,0xbd,0x27,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x03,0x80,0x05,0x3c,0x00,0x80,0xa5,0x24,
+0x40,0x10,0x0c,0x3c,0xff,0xff,0xa5,0x30,0x02,0x80,0x04,0x3c,0x78,0x1b,0x84,0x24,
+0x25,0xc8,0xac,0x00,0x00,0x25,0x99,0xac,0x80,0x00,0x39,0x27,0xe0,0xff,0xbd,0x27,
+0x0c,0x25,0x99,0xac,0x80,0x00,0x39,0x27,0x1c,0x00,0xb7,0xaf,0x18,0x00,0xb6,0xaf,
+0x14,0x00,0xb5,0xaf,0x10,0x00,0xb4,0xaf,0x0c,0x00,0xb3,0xaf,0x08,0x00,0xb2,0xaf,
+0x04,0x00,0xb1,0xaf,0x00,0x00,0xb0,0xaf,0x18,0x25,0x99,0xac,0x80,0x00,0x39,0x27,
+0x24,0x25,0x99,0xac,0xe2,0x0a,0x86,0x90,0x80,0x00,0x39,0x27,0x30,0x25,0x99,0xac,
+0x80,0x00,0x39,0x27,0x3c,0x25,0x99,0xac,0x20,0xb0,0x02,0x3c,0x0c,0x25,0x87,0x8c,
+0x18,0x25,0x88,0x8c,0x24,0x25,0x89,0x8c,0x30,0x25,0x8a,0x8c,0x3c,0x25,0x8b,0x8c,
+0x00,0x01,0x42,0x34,0x00,0x32,0x06,0x00,0xff,0x1f,0x03,0x3c,0x80,0x00,0x39,0x27,
+0x21,0x30,0xc2,0x00,0xff,0xff,0x63,0x34,0x24,0x30,0xc3,0x00,0x48,0x25,0x99,0xac,
+0x20,0x10,0x03,0x3c,0x21,0x68,0x20,0x03,0x25,0x28,0xac,0x00,0x25,0xb0,0x0e,0x3c,
+0x80,0x00,0x39,0x27,0xfc,0x24,0x85,0xac,0x08,0x25,0x87,0xac,0x14,0x25,0x88,0xac,
+0x20,0x25,0x89,0xac,0x2c,0x25,0x8a,0xac,0xcc,0x24,0x86,0xac,0x38,0x25,0x8b,0xac,
+0xac,0x00,0xc2,0x35,0x94,0x24,0x83,0xac,0x90,0x24,0x83,0xac,0xa0,0x24,0x83,0xac,
+0x9c,0x24,0x83,0xac,0xac,0x24,0x83,0xac,0xa8,0x24,0x83,0xac,0x54,0x25,0x99,0xac,
+0xd0,0x24,0x86,0xac,0x44,0x25,0x8d,0xac,0xb8,0x24,0x83,0xac,0xb4,0x24,0x83,0xac,
+0xc4,0x24,0x83,0xac,0xc0,0x24,0x83,0xac,0xdc,0x24,0x83,0xac,0xd8,0x24,0x83,0xac,
+0x00,0x02,0x39,0x27,0x00,0x00,0x48,0x8c,0xe4,0x0a,0x87,0x94,0x6c,0x25,0x99,0xac,
+0xb0,0x00,0xc2,0x35,0x00,0x00,0x56,0x8c,0x21,0x10,0x06,0x3c,0x54,0x25,0x92,0x8c,
+0x23,0x10,0x0b,0x3c,0x22,0x10,0x0f,0x3c,0x02,0x80,0x14,0x3c,0x02,0x80,0x15,0x3c,
+0x02,0x80,0x17,0x3c,0x02,0x80,0x18,0x3c,0x00,0x80,0xc5,0x34,0x21,0x98,0x20,0x03,
+0x23,0x28,0xa7,0x00,0x00,0x02,0x39,0x27,0x24,0x10,0x07,0x3c,0x80,0x41,0x89,0x26,
+0x88,0x41,0xaa,0x26,0x90,0x41,0xec,0x26,0x98,0x41,0x0d,0x27,0x00,0x04,0x70,0x35,
+0x01,0x00,0x08,0x25,0x00,0x40,0xf1,0x35,0x00,0x01,0xce,0x35,0x01,0x00,0x02,0x24,
+0x50,0x25,0x92,0xac,0x59,0x25,0x82,0xa0,0x68,0x25,0x93,0xac,0xc4,0x25,0x90,0xac,
+0x88,0x25,0x88,0xac,0x94,0x25,0x85,0xac,0xb8,0x25,0x91,0xac,0xac,0x25,0x96,0xac,
+0x00,0x00,0xc7,0xad,0xa8,0x25,0x87,0xac,0xc8,0x25,0x83,0xac,0xe8,0x24,0x83,0xac,
+0xe4,0x24,0x83,0xac,0x72,0x25,0x80,0xa4,0x71,0x25,0x80,0xa0,0x70,0x25,0x80,0xa0,
+0xbc,0x25,0x8b,0xac,0xc0,0x25,0x8b,0xac,0x80,0x25,0x86,0xac,0x84,0x25,0x86,0xac,
+0x8c,0x25,0x86,0xac,0x90,0x25,0x86,0xac,0xb0,0x25,0x8f,0xac,0xb4,0x25,0x8f,0xac,
+0xa4,0x25,0x87,0xac,0xcc,0x25,0x83,0xac,0xd8,0x25,0x99,0xac,0xd4,0x25,0x99,0xac,
+0x04,0x00,0x4a,0xad,0x80,0x41,0x89,0xae,0x04,0x00,0x8c,0xad,0x88,0x41,0xaa,0xae,
+0x04,0x00,0xad,0xad,0x90,0x41,0xec,0xae,0x98,0x41,0x0d,0xaf,0x04,0x00,0x29,0xad,
+0x02,0x80,0x02,0x3c,0x00,0x18,0x43,0x24,0x21,0x20,0x20,0x01,0x03,0x00,0x06,0x24,
+0x21,0x10,0x80,0x00,0xff,0xff,0xc6,0x24,0x08,0x00,0x79,0xac,0x00,0x00,0x63,0xac,
+0x10,0x00,0x60,0xac,0x00,0x00,0x69,0xac,0x21,0x20,0x60,0x00,0x04,0x00,0x62,0xac,
+0x00,0x00,0x43,0xac,0x00,0x01,0x39,0x27,0xf5,0xff,0xc1,0x04,0x18,0x00,0x63,0x24,
+0x02,0x80,0x02,0x3c,0x88,0x41,0x48,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,
+0x04,0x00,0x07,0x8d,0x60,0x18,0x4b,0x24,0x04,0x00,0x24,0xad,0x00,0x18,0x6a,0x24,
+0x01,0x00,0x09,0x24,0x21,0x28,0x00,0x00,0x0f,0x00,0x06,0x24,0x21,0x20,0xab,0x00,
+0x21,0x10,0xaa,0x00,0xff,0xff,0xc6,0x24,0x68,0x00,0x59,0xac,0x70,0x00,0x49,0xac,
+0x18,0x00,0xa5,0x24,0x00,0x00,0x88,0xac,0x04,0x00,0x87,0xac,0x00,0x00,0xe4,0xac,
+0x00,0x01,0x39,0x27,0xf5,0xff,0xc1,0x04,0x21,0x38,0x80,0x00,0x02,0x80,0x02,0x3c,
+0x90,0x41,0x49,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x04,0x00,0x25,0x8d,
+0xe0,0x19,0x4b,0x24,0x04,0x00,0x04,0xad,0x00,0x18,0x6a,0x24,0x02,0x00,0x07,0x24,
+0x21,0x20,0x00,0x00,0x0f,0x00,0x06,0x24,0x21,0x40,0x8b,0x00,0x21,0x10,0x8a,0x00,
+0xff,0xff,0xc6,0x24,0xe8,0x01,0x59,0xac,0xf0,0x01,0x47,0xac,0x18,0x00,0x84,0x24,
+0x00,0x00,0x09,0xad,0x04,0x00,0x05,0xad,0x00,0x00,0xa8,0xac,0x00,0x02,0x39,0x27,
+0xf5,0xff,0xc1,0x04,0x21,0x28,0x00,0x01,0x02,0x80,0x05,0x3c,0x98,0x41,0xa5,0x24,
+0x04,0x00,0xa6,0x8c,0x1c,0x00,0xb7,0x8f,0x18,0x00,0xb6,0x8f,0x14,0x00,0xb5,0x8f,
+0x10,0x00,0xb4,0x8f,0x0c,0x00,0xb3,0x8f,0x08,0x00,0xb2,0x8f,0x04,0x00,0xb1,0x8f,
+0x00,0x00,0xb0,0x8f,0x02,0x80,0x07,0x3c,0x02,0x80,0x03,0x3c,0x60,0x1b,0xe4,0x24,
+0x00,0x18,0x63,0x24,0x03,0x00,0x02,0x24,0x20,0x00,0xbd,0x27,0x68,0x03,0x79,0xac,
+0x04,0x00,0x28,0xad,0x04,0x00,0xa4,0xac,0x70,0x03,0x62,0xac,0x60,0x1b,0xe5,0xac,
+0x04,0x00,0x86,0xac,0x08,0x00,0xe0,0x03,0x00,0x00,0xc4,0xac,0xc8,0xff,0xbd,0x27,
+0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0x24,0x00,0xb3,0xaf,0x20,0x00,0xb2,0xaf,
+0xfc,0xad,0x73,0x24,0x70,0xae,0x52,0x24,0x02,0x80,0x03,0x3c,0xff,0xff,0x02,0x3c,
+0x2c,0x00,0xb5,0xaf,0x28,0x00,0xb4,0xaf,0x1c,0x00,0xb1,0xaf,0x18,0x00,0xb0,0xaf,
+0x30,0x00,0xbf,0xaf,0xff,0x1f,0x54,0x34,0x78,0x1b,0x70,0x24,0x21,0x88,0x00,0x00,
+0x02,0x80,0x15,0x3c,0x19,0x50,0x00,0x0c,0x21,0x20,0x20,0x02,0x90,0x11,0x05,0x8e,
+0x6c,0x00,0x66,0x8e,0x6c,0x00,0x43,0x8e,0xdc,0xad,0xa2,0x26,0x1b,0x00,0x44,0x90,
+0x21,0x18,0x66,0x00,0x24,0x28,0xb4,0x00,0x00,0x21,0x04,0x00,0x42,0x18,0x03,0x00,
+0x00,0x20,0xa5,0x34,0x5c,0x11,0x03,0xae,0x80,0x11,0x04,0xae,0x90,0x11,0x05,0xae,
+0x84,0x11,0x04,0xae,0x21,0x30,0x00,0x00,0x21,0x10,0x06,0x02,0x01,0x00,0xc6,0x24,
+0x1d,0x00,0xc3,0x28,0xb1,0x11,0x40,0xa0,0x94,0x11,0x40,0xa0,0xfa,0xff,0x60,0x14,
+0xce,0x11,0x40,0xa0,0x01,0x00,0x31,0x26,0x20,0x00,0x22,0x2a,0xec,0x11,0x00,0xae,
+0xe4,0xff,0x40,0x14,0x94,0x00,0x10,0x26,0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,
+0x78,0x1b,0x4b,0x24,0x02,0x80,0x02,0x3c,0x70,0xae,0x6f,0x24,0xfc,0xad,0x4d,0x24,
+0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xdc,0xad,0x6e,0x24,0xbc,0xad,0x4c,0x24,
+0x21,0x88,0x00,0x00,0x80,0x18,0x11,0x00,0x21,0x20,0x6d,0x00,0x21,0x10,0x6f,0x00,
+0x21,0x28,0x2e,0x02,0x21,0x30,0x2c,0x02,0x00,0x00,0x88,0x8c,0x00,0x00,0xa9,0x90,
+0x00,0x00,0xc7,0x90,0x00,0x00,0x4a,0x8c,0x21,0x10,0x2b,0x02,0x01,0x00,0x31,0x26,
+0x21,0x18,0x6b,0x00,0x1d,0x00,0x24,0x2a,0xf8,0x04,0x68,0xac,0xce,0x04,0x47,0xa0,
+0x6c,0x05,0x6a,0xac,0xef,0xff,0x80,0x14,0x94,0x04,0x49,0xa0,0x02,0x80,0x02,0x3c,
+0x78,0x1b,0x4a,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x98,0xac,0x6b,0x24,
+0x38,0xab,0x4c,0x24,0x21,0x88,0x00,0x00,0x21,0x48,0x00,0x00,0x21,0x30,0x00,0x00,
+0x21,0x40,0x2a,0x01,0x21,0x38,0x2b,0x01,0x21,0x10,0xe6,0x00,0x91,0x00,0x44,0x90,
+0x00,0x00,0x45,0x90,0x21,0x18,0x06,0x01,0x01,0x00,0xc6,0x24,0x05,0x00,0xc2,0x28,
+0xc9,0x03,0x64,0xa0,0xf8,0xff,0x40,0x14,0x38,0x03,0x65,0xa0,0x21,0x10,0x2c,0x02,
+0x1d,0x00,0x44,0x90,0x00,0x00,0x45,0x90,0x21,0x18,0x2a,0x02,0x01,0x00,0x31,0x26,
+0x1d,0x00,0x22,0x2a,0x77,0x04,0x64,0xa0,0x5a,0x04,0x65,0xa0,0xeb,0xff,0x40,0x14,
+0x05,0x00,0x29,0x25,0x30,0x00,0xbf,0x8f,0x2c,0x00,0xb5,0x8f,0x28,0x00,0xb4,0x8f,
+0x24,0x00,0xb3,0x8f,0x20,0x00,0xb2,0x8f,0x1c,0x00,0xb1,0x8f,0x18,0x00,0xb0,0x8f,
+0x08,0x00,0xe0,0x03,0x38,0x00,0xbd,0x27,0x29,0xb0,0x02,0x3c,0xf8,0xff,0xbd,0x27,
+0x00,0x00,0x40,0xac,0x08,0x00,0x44,0x34,0x0c,0x00,0x45,0x34,0x10,0x00,0x46,0x34,
+0x04,0x00,0x43,0x34,0x14,0x00,0x47,0x34,0x18,0x00,0x48,0x34,0x1c,0x00,0x49,0x34,
+0x20,0x00,0x4a,0x34,0x24,0x00,0x4b,0x34,0x28,0x00,0x4c,0x34,0x2c,0x00,0x4d,0x34,
+0x30,0x00,0x4e,0x34,0x34,0x00,0x4f,0x34,0x04,0x00,0xb1,0xaf,0x00,0x00,0xb0,0xaf,
+0x3c,0x00,0x51,0x34,0x38,0x00,0x50,0x34,0x02,0x80,0x02,0x3c,0x00,0x00,0x60,0xac,
+0x00,0x00,0x80,0xac,0x00,0x00,0xa0,0xac,0x21,0x20,0x00,0x00,0x00,0x00,0xc0,0xac,
+0xff,0xff,0x05,0x24,0x00,0x00,0xe0,0xac,0x78,0x1b,0x46,0x24,0x00,0x00,0x00,0xad,
+0x00,0x00,0x20,0xad,0x00,0x00,0x40,0xad,0x00,0x00,0x60,0xad,0x00,0x00,0x80,0xad,
+0x00,0x00,0xa0,0xad,0x00,0x00,0xc0,0xad,0x00,0x00,0xe0,0xad,0x00,0x00,0x00,0xae,
+0x00,0x00,0x20,0xae,0x21,0x18,0x86,0x00,0x01,0x00,0x84,0x24,0x08,0x00,0x82,0x28,
+0xfc,0xff,0x40,0x14,0xf0,0x04,0x65,0xa0,0x02,0x80,0x02,0x3c,0x78,0x1b,0x43,0x24,
+0x1f,0x00,0x04,0x24,0x90,0x11,0x62,0x8c,0xff,0xff,0x84,0x24,0xf0,0x00,0x42,0x34,
+0x90,0x11,0x62,0xac,0xfb,0xff,0x81,0x04,0x94,0x00,0x63,0x24,0x04,0x00,0xb1,0x8f,
+0x00,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x08,0x00,0xbd,0x27,0x48,0xfd,0xbd,0x27,
+0xb4,0x02,0xb3,0xaf,0x02,0x80,0x02,0x3c,0x02,0x80,0x13,0x3c,0x30,0xb0,0x46,0x24,
+0x78,0x1b,0x63,0x26,0xb0,0x02,0xb2,0xaf,0xac,0x02,0xb1,0xaf,0xa8,0x02,0xb0,0xaf,
+0x03,0x00,0x60,0xa0,0x21,0x38,0xa0,0x03,0x90,0x00,0xc8,0x24,0x00,0x00,0xc2,0x8c,
+0x04,0x00,0xc3,0x8c,0x08,0x00,0xc4,0x8c,0x0c,0x00,0xc5,0x8c,0x10,0x00,0xc6,0x24,
+0x00,0x00,0xe2,0xac,0x04,0x00,0xe3,0xac,0x08,0x00,0xe4,0xac,0x0c,0x00,0xe5,0xac,
+0xf6,0xff,0xc8,0x14,0x10,0x00,0xe7,0x24,0x00,0x00,0xc3,0x8c,0x02,0x80,0x02,0x3c,
+0xc4,0xb0,0x58,0x24,0x00,0x00,0xe3,0xac,0x98,0x00,0xb9,0x27,0x00,0x01,0x12,0x27,
+0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x09,0x00,0x04,0x93,0x0d,0x00,0x05,0x93,
+0x00,0x00,0x11,0x93,0x02,0x00,0x0d,0x93,0x04,0x00,0x10,0x93,0x06,0x00,0x0c,0x93,
+0x08,0x00,0x0f,0x93,0x0a,0x00,0x07,0x93,0x0c,0x00,0x0e,0x93,0x0e,0x00,0x06,0x93,
+0x03,0x00,0x08,0x93,0x07,0x00,0x09,0x93,0x0b,0x00,0x0a,0x93,0x0f,0x00,0x0b,0x93,
+0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,0x22,0x04,0x00,0x00,0x2a,0x05,0x00,
+0x25,0x10,0x51,0x00,0x25,0x18,0x70,0x00,0x25,0x20,0x8f,0x00,0x25,0x28,0xae,0x00,
+0x00,0x6c,0x0d,0x00,0x00,0x64,0x0c,0x00,0x00,0x3c,0x07,0x00,0x00,0x34,0x06,0x00,
+0x25,0x68,0xa2,0x01,0x25,0x60,0x83,0x01,0x25,0x38,0xe4,0x00,0x25,0x30,0xc5,0x00,
+0x00,0x46,0x08,0x00,0x00,0x4e,0x09,0x00,0x00,0x56,0x0a,0x00,0x00,0x5e,0x0b,0x00,
+0x25,0x40,0x0d,0x01,0x25,0x48,0x2c,0x01,0x25,0x50,0x47,0x01,0x25,0x58,0x66,0x01,
+0x10,0x00,0x18,0x27,0x00,0x00,0x28,0xaf,0x04,0x00,0x29,0xaf,0x08,0x00,0x2a,0xaf,
+0x0c,0x00,0x2b,0xaf,0xd2,0xff,0x12,0x17,0x10,0x00,0x39,0x27,0x01,0x00,0x02,0x93,
+0x05,0x00,0x03,0x93,0x00,0x00,0x09,0x93,0x02,0x00,0x04,0x93,0x04,0x00,0x08,0x93,
+0x06,0x00,0x05,0x93,0x07,0x00,0x06,0x93,0x03,0x00,0x07,0x93,0x00,0x12,0x02,0x00,
+0x00,0x1a,0x03,0x00,0x25,0x10,0x49,0x00,0x25,0x18,0x68,0x00,0x00,0x24,0x04,0x00,
+0x00,0x2c,0x05,0x00,0x25,0x20,0x82,0x00,0x25,0x28,0xa3,0x00,0x00,0x3e,0x07,0x00,
+0x00,0x36,0x06,0x00,0x02,0x80,0x02,0x3c,0x25,0x38,0xe4,0x00,0x25,0x30,0xc5,0x00,
+0xcc,0xb1,0x58,0x24,0x04,0x00,0x26,0xaf,0x00,0x00,0x27,0xaf,0x00,0x01,0x12,0x27,
+0xa0,0x01,0xb9,0x27,0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x09,0x00,0x04,0x93,
+0x0d,0x00,0x05,0x93,0x00,0x00,0x11,0x93,0x02,0x00,0x0d,0x93,0x04,0x00,0x10,0x93,
+0x06,0x00,0x0c,0x93,0x08,0x00,0x0f,0x93,0x0a,0x00,0x07,0x93,0x0c,0x00,0x0e,0x93,
+0x0e,0x00,0x06,0x93,0x03,0x00,0x08,0x93,0x07,0x00,0x09,0x93,0x0b,0x00,0x0a,0x93,
+0x0f,0x00,0x0b,0x93,0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x00,0x22,0x04,0x00,
+0x00,0x2a,0x05,0x00,0x25,0x10,0x51,0x00,0x25,0x18,0x70,0x00,0x25,0x20,0x8f,0x00,
+0x25,0x28,0xae,0x00,0x00,0x6c,0x0d,0x00,0x00,0x64,0x0c,0x00,0x00,0x3c,0x07,0x00,
+0x00,0x34,0x06,0x00,0x25,0x68,0xa2,0x01,0x25,0x60,0x83,0x01,0x25,0x38,0xe4,0x00,
+0x25,0x30,0xc5,0x00,0x00,0x46,0x08,0x00,0x00,0x4e,0x09,0x00,0x00,0x56,0x0a,0x00,
+0x00,0x5e,0x0b,0x00,0x25,0x40,0x0d,0x01,0x25,0x48,0x2c,0x01,0x25,0x50,0x47,0x01,
+0x25,0x58,0x66,0x01,0x10,0x00,0x18,0x27,0x00,0x00,0x28,0xaf,0x04,0x00,0x29,0xaf,
+0x08,0x00,0x2a,0xaf,0x0c,0x00,0x2b,0xaf,0xd2,0xff,0x12,0x17,0x10,0x00,0x39,0x27,
+0x01,0x00,0x02,0x93,0x05,0x00,0x03,0x93,0x00,0x00,0x09,0x93,0x02,0x00,0x04,0x93,
+0x04,0x00,0x08,0x93,0x06,0x00,0x05,0x93,0x07,0x00,0x06,0x93,0x03,0x00,0x07,0x93,
+0x00,0x12,0x02,0x00,0x00,0x1a,0x03,0x00,0x25,0x10,0x49,0x00,0x25,0x18,0x68,0x00,
+0x00,0x24,0x04,0x00,0x00,0x2c,0x05,0x00,0x25,0x20,0x82,0x00,0x25,0x28,0xa3,0x00,
+0x00,0x3e,0x07,0x00,0x00,0x36,0x06,0x00,0x25,0x30,0xc5,0x00,0x25,0x38,0xe4,0x00,
+0x02,0x80,0x02,0x3c,0x04,0x00,0x26,0xaf,0x00,0x00,0x27,0xaf,0x78,0x1b,0x46,0x24,
+0x21,0x50,0x00,0x00,0x80,0x20,0x0a,0x00,0x21,0x10,0x9d,0x00,0x00,0x00,0x45,0x8c,
+0x01,0x00,0x43,0x25,0xff,0x00,0x6a,0x30,0x21,0x20,0x86,0x00,0x25,0x00,0x42,0x2d,
+0xf8,0xff,0x40,0x14,0x18,0x00,0x85,0xac,0x02,0x80,0x02,0x3c,0x78,0x1b,0x4b,0x24,
+0x21,0x50,0x00,0x00,0xc0,0x10,0x0a,0x00,0x21,0x48,0x5d,0x00,0x21,0x38,0x00,0x00,
+0x21,0x40,0x4b,0x00,0x21,0x10,0x27,0x01,0xa0,0x01,0x46,0x90,0x98,0x00,0x45,0x90,
+0x01,0x00,0xe4,0x24,0x21,0x18,0x07,0x01,0xff,0x00,0x87,0x30,0x08,0x00,0xe2,0x2c,
+0xb4,0x01,0x66,0xa0,0xf7,0xff,0x40,0x14,0xac,0x00,0x65,0xa0,0x01,0x00,0x42,0x25,
+0xff,0x00,0x4a,0x30,0x21,0x00,0x43,0x2d,0xef,0xff,0x60,0x14,0xc0,0x10,0x0a,0x00,
+0x25,0xb0,0x02,0x3c,0x0a,0x00,0x42,0x34,0x00,0x00,0x43,0x90,0x00,0x00,0x00,0x00,
+0x20,0x00,0x63,0x30,0x4f,0x00,0x60,0x10,0x78,0x1b,0x64,0x26,0x33,0x00,0x02,0x24,
+0xc1,0x02,0x62,0xa1,0x1c,0x00,0x03,0x24,0x0f,0x00,0x02,0x24,0xbc,0x02,0x63,0xa1,
+0xbd,0x02,0x62,0xa1,0x78,0x1b,0x65,0x26,0x08,0x00,0xa4,0x8c,0xff,0x7f,0x09,0x3c,
+0xff,0xff,0x29,0x35,0xc0,0xff,0x02,0x24,0x24,0x20,0x89,0x00,0x24,0x20,0x82,0x00,
+0x0c,0x00,0x84,0x34,0xff,0xc0,0x02,0x24,0xc8,0x02,0xa0,0xa0,0x24,0x20,0x82,0x00,
+0xc0,0xff,0x02,0x3c,0xc8,0x02,0xa6,0x8c,0xff,0xff,0x42,0x34,0x00,0x18,0x84,0x34,
+0x24,0x20,0x82,0x00,0xff,0x0f,0x02,0x3c,0xff,0xff,0x42,0x34,0xbf,0xff,0x03,0x3c,
+0x24,0x30,0xc2,0x00,0xff,0xff,0x63,0x34,0x7f,0xff,0x02,0x3c,0x24,0x20,0x83,0x00,
+0xff,0xff,0x42,0x34,0x24,0x20,0x82,0x00,0x7f,0xff,0x03,0x24,0x40,0x40,0x84,0x34,
+0xff,0xff,0x02,0x3c,0x24,0x20,0x83,0x00,0xff,0x7f,0x42,0x34,0xc8,0x02,0xa6,0xac,
+0x24,0x20,0x82,0x00,0xc9,0x02,0xa0,0xa0,0x0c,0x00,0xa6,0x8c,0xff,0x9f,0x02,0x3c,
+0xc8,0x02,0xa7,0x8c,0xff,0xff,0x42,0x34,0xff,0xbf,0x03,0x3c,0x10,0x00,0xa8,0x8c,
+0xff,0xff,0x63,0x34,0x24,0x20,0x82,0x00,0xff,0xf0,0x02,0x3c,0x24,0x30,0xc3,0x00,
+0xff,0xff,0x42,0x34,0xff,0x3f,0x03,0x3c,0xff,0xff,0x63,0x34,0x24,0x38,0xe2,0x00,
+0xb4,0x02,0xb3,0x8f,0x1f,0x00,0x02,0x24,0xb0,0x02,0xb2,0x8f,0xac,0x02,0xb1,0x8f,
+0xa8,0x02,0xb0,0x8f,0x24,0x40,0x03,0x01,0xbe,0x02,0xa2,0xa0,0x01,0x00,0x03,0x24,
+0xff,0xff,0x02,0x24,0x24,0x30,0xc9,0x00,0xc0,0x02,0xa3,0xa0,0xc2,0x02,0xa2,0xa0,
+0xff,0x00,0x03,0x24,0x12,0x00,0x02,0x24,0xb8,0x02,0xbd,0x27,0xc8,0x02,0xa7,0xac,
+0x08,0x00,0xa4,0xac,0x10,0x00,0xa8,0xac,0x0c,0x00,0xa6,0xac,0xc4,0x02,0xa3,0xa4,
+0xc7,0x02,0xa2,0xa0,0xca,0x02,0xa0,0xa0,0xbf,0x02,0xa0,0xa0,0x08,0x00,0xe0,0x03,
+0xc6,0x02,0xa0,0xa0,0x33,0x00,0x02,0x24,0xc1,0x02,0x82,0xa0,0x0d,0x00,0x03,0x24,
+0x03,0x00,0x02,0x24,0xbc,0x02,0x83,0xa0,0x97,0x63,0x00,0x08,0xbd,0x02,0x82,0xa0,
+0x02,0x80,0x19,0x3c,0x78,0x1b,0x22,0x27,0xe0,0xff,0xbd,0x27,0xff,0xff,0x03,0x34,
+0x18,0x00,0xbf,0xaf,0x21,0xc0,0x40,0x00,0xf4,0x23,0x43,0xac,0xea,0x02,0x40,0xa0,
+0x1f,0x00,0x0f,0x24,0xff,0xff,0xef,0x25,0x80,0x11,0x43,0xac,0x84,0x11,0x43,0xac,
+0xfc,0xff,0xe1,0x05,0x94,0x00,0x42,0x24,0x78,0x1b,0x24,0x8f,0xd8,0x02,0x05,0x8f,
+0xf0,0xff,0x02,0x3c,0xe8,0x02,0x07,0x8f,0xfd,0xff,0x03,0x24,0xff,0xff,0x42,0x34,
+0x24,0x20,0x83,0x00,0x24,0x28,0xa2,0x00,0x20,0x00,0x0f,0x24,0xff,0xff,0x0e,0x24,
+0xff,0xef,0x02,0x3c,0x78,0x1b,0x24,0xaf,0xff,0xff,0x42,0x34,0xd8,0x02,0x05,0xaf,
+0x02,0x00,0x0e,0xa3,0xdb,0x02,0x0f,0xa3,0xd8,0x02,0x00,0xa3,0xff,0xbf,0x03,0x3c,
+0x78,0x1b,0x28,0x8f,0xd8,0x02,0x09,0x8f,0x24,0x38,0xe2,0x00,0xff,0xff,0x63,0x34,
+0x24,0x38,0xe3,0x00,0xff,0x7f,0x02,0x3c,0x0f,0xff,0x03,0x3c,0xfe,0xff,0x04,0x24,
+0xff,0xff,0x42,0x34,0xff,0xff,0x63,0x34,0x24,0x40,0x04,0x01,0x24,0x38,0xe2,0x00,
+0x24,0x48,0x23,0x01,0xff,0xdf,0x02,0x3c,0xcf,0xff,0x03,0x24,0x24,0x40,0x03,0x01,
+0xff,0xff,0x42,0x34,0x10,0x00,0x03,0x3c,0x24,0x38,0xe2,0x00,0x25,0x48,0x23,0x01,
+0x0a,0x00,0x02,0x24,0x00,0x02,0x03,0x24,0x78,0x1b,0x28,0xaf,0x02,0x80,0x0a,0x3c,
+0xd6,0x02,0x02,0xa3,0xd0,0x02,0x03,0xa7,0x00,0x01,0x02,0x24,0x49,0x00,0x03,0x24,
+0xe8,0x02,0x07,0xaf,0xd8,0x02,0x09,0xaf,0xac,0xb5,0x4a,0x25,0x3e,0x00,0x0c,0x24,
+0x1c,0x00,0x0d,0x24,0x01,0x00,0x0b,0x24,0x11,0x00,0xa3,0xa3,0xce,0x02,0x02,0xa7,
+0xd0,0x07,0x03,0x24,0x44,0x00,0x02,0x24,0x00,0x80,0x06,0x3c,0x10,0x00,0xa2,0xa3,
+0x10,0x00,0xa5,0x27,0x47,0x00,0x02,0x24,0x21,0x20,0x40,0x01,0xc8,0x66,0xc6,0x24,
+0xd4,0x02,0x0c,0xa3,0xd5,0x02,0x0d,0xa3,0xcc,0x02,0x0f,0xa7,0x01,0x00,0x0b,0xa3,
+0x0c,0x00,0x43,0xad,0x14,0x00,0x4b,0xa1,0x06,0x00,0x0e,0xa7,0xd2,0x02,0x0c,0xa3,
+0xd3,0x02,0x0d,0xa3,0x12,0x00,0xa2,0xa3,0xa8,0x14,0x00,0x0c,0x13,0x00,0xa0,0xa3,
+0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,
+0xe0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x50,0x00,0x03,0x24,0x10,0x00,0xa3,0xa3,
+0x52,0x28,0x40,0xa0,0x41,0x00,0x03,0x24,0x52,0x00,0x02,0x24,0x02,0x80,0x07,0x3c,
+0x54,0xb6,0xe7,0x24,0x11,0x00,0xa2,0xa3,0x12,0x00,0xa3,0xa3,0xd0,0x07,0x02,0x24,
+0x01,0x00,0x03,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,
+0xe4,0x69,0xc6,0x24,0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0,0x18,0x00,0xbf,0xaf,
+0xa8,0x14,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,
+0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x02,0x80,0x09,0x3c,0x78,0x1b,0x23,0x8d,
+0xff,0xff,0x02,0x24,0xff,0x00,0x4b,0x30,0xf3,0xff,0x02,0x24,0x24,0x18,0x62,0x00,
+0x3f,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0xd8,0xff,0xbd,0x27,0x78,0x1b,0x23,0xad,
+0x47,0x00,0x02,0x24,0x3b,0x00,0x03,0x24,0x02,0x80,0x08,0x3c,0x70,0xb6,0x08,0x25,
+0x18,0x00,0xb0,0xaf,0x10,0x00,0xa2,0xa3,0x78,0x1b,0x30,0x25,0x11,0x00,0xa3,0xa3,
+0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24,0x01,0x00,0x07,0x3c,0x00,0x80,0x06,0x3c,
+0x08,0x03,0x0b,0xae,0x1c,0x00,0xb1,0xaf,0x56,0x30,0xea,0x34,0x43,0x00,0x11,0x24,
+0xf4,0x98,0xe7,0x34,0x10,0x00,0xa5,0x27,0x0c,0x00,0x02,0xad,0x14,0x00,0x03,0xa1,
+0x21,0x20,0x00,0x01,0xd8,0x73,0xc6,0x24,0x20,0x00,0xbf,0xaf,0x12,0x00,0xb1,0xa3,
+0x10,0x03,0x07,0xae,0x14,0x03,0x0a,0xae,0x13,0x00,0xa0,0xa3,0x0c,0x03,0x00,0xae,
+0x18,0x03,0x00,0xae,0xa8,0x14,0x00,0x0c,0x1c,0x03,0x00,0xae,0x1e,0x00,0x02,0x24,
+0x25,0x03,0x02,0xa2,0x4a,0x00,0x03,0x24,0x45,0x00,0x02,0x24,0x20,0x03,0x03,0xa2,
+0x21,0x03,0x02,0xa2,0x23,0x00,0x03,0x24,0x3e,0x00,0x02,0x24,0x22,0x03,0x11,0xa2,
+0x23,0x03,0x02,0xa2,0x24,0x03,0x03,0xa2,0x20,0x00,0xbf,0x8f,0x1c,0x00,0xb1,0x8f,
+0x18,0x00,0xb0,0x8f,0x08,0x00,0xe0,0x03,0x28,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,
+0x3b,0x00,0x02,0x24,0x43,0x00,0x03,0x24,0x10,0x00,0xa2,0xa3,0x11,0x00,0xa3,0xa3,
+0x36,0x00,0x02,0x24,0x02,0x80,0x03,0x3c,0x02,0x80,0x07,0x3c,0x8c,0xb6,0xe7,0x24,
+0x12,0x00,0xa2,0xa3,0x4f,0x1e,0x60,0xa0,0xd0,0x07,0x02,0x24,0x01,0x00,0x03,0x24,
+0x00,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0xe0,0x00,0x04,0x78,0xc6,0x24,
+0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0,0x18,0x00,0xbf,0xaf,0xa8,0x14,0x00,0x0c,
+0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x20,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x02,0x80,0x02,0x3c,0x52,0x00,0x03,0x24,
+0x10,0x00,0xa3,0xa3,0xc8,0x3f,0x40,0xa4,0x54,0x00,0x03,0x24,0x53,0x00,0x02,0x24,
+0x02,0x80,0x07,0x3c,0xc4,0xb6,0xe7,0x24,0x11,0x00,0xa2,0xa3,0x12,0x00,0xa3,0xa3,
+0xf4,0x01,0x02,0x24,0x01,0x00,0x03,0x24,0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,
+0x21,0x20,0xe0,0x00,0x28,0x6b,0xc6,0x24,0x0c,0x00,0xe2,0xac,0x14,0x00,0xe3,0xa0,
+0x18,0x00,0xbf,0xaf,0xa8,0x14,0x00,0x0c,0x13,0x00,0xa0,0xa3,0x18,0x00,0xbf,0x8f,
+0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,0x20,0x00,0xbd,0x27,0x02,0x80,0x04,0x3c,
+0xd8,0xff,0xbd,0x27,0x80,0x3f,0x84,0x24,0x21,0x28,0x00,0x00,0x20,0x00,0xbf,0xaf,
+0x3e,0x46,0x00,0x0c,0x0a,0x00,0x06,0x24,0x02,0x80,0x07,0x3c,0x78,0x1b,0xe7,0x24,
+0x04,0x24,0xe3,0x8c,0xfd,0xff,0x02,0x24,0x02,0x80,0x08,0x3c,0x24,0x18,0x62,0x00,
+0xfe,0xff,0x02,0x24,0x24,0x18,0x62,0x00,0x05,0x00,0x02,0x24,0x04,0x24,0xe3,0xac,
+0x08,0x24,0xe2,0xa0,0x28,0x00,0x03,0x24,0x46,0x00,0x02,0x24,0x10,0x00,0xa2,0xa3,
+0x09,0x24,0xe3,0xa0,0x4b,0x00,0x02,0x24,0x42,0x00,0x03,0x24,0xe0,0xb6,0x08,0x25,
+0x11,0x00,0xa3,0xa3,0x12,0x00,0xa2,0xa3,0xd0,0x07,0x03,0x24,0x01,0x00,0x02,0x24,
+0x01,0x80,0x06,0x3c,0x10,0x00,0xa5,0x27,0x21,0x20,0x00,0x01,0xf0,0x6b,0xc6,0x24,
+0x06,0x24,0xe0,0xa4,0x0c,0x00,0x03,0xad,0x14,0x00,0x02,0xa1,0xa8,0x14,0x00,0x0c,
+0x13,0x00,0xa0,0xa3,0x20,0x00,0xbf,0x8f,0x00,0x00,0x00,0x00,0x08,0x00,0xe0,0x03,
+0x28,0x00,0xbd,0x27,0xe0,0xff,0xbd,0x27,0x02,0x80,0x03,0x3c,0x1c,0x00,0xbf,0xaf,
+0x18,0x00,0xb0,0xaf,0x44,0xaf,0x62,0x24,0x02,0x00,0x48,0x90,0x44,0xaf,0x67,0x94,
+0x02,0x80,0x02,0x3c,0x60,0x44,0x42,0x24,0x02,0x00,0x10,0x24,0x01,0x80,0x06,0x3c,
+0x21,0x20,0x40,0x00,0x10,0x00,0xa5,0x27,0x14,0x00,0x50,0xa0,0x34,0x83,0xc6,0x24,
+0x10,0x00,0xa7,0xa7,0x12,0x00,0xa8,0xa3,0xa8,0x14,0x00,0x0c,0x13,0x00,0xa0,0xa3,
+0x02,0x80,0x02,0x3c,0x7c,0x44,0x42,0x24,0x01,0x80,0x06,0x3c,0x21,0x20,0x40,0x00,
+0x10,0x00,0xa5,0x27,0x14,0x00,0x50,0xa0,0xa8,0x14,0x00,0x0c,0x68,0x82,0xc6,0x24,
+0x02,0x80,0x02,0x3c,0x98,0x44,0x40,0xa0,0x0c,0x00,0x04,0x24,0x02,0x80,0x03,0x3c,
+0x02,0x80,0x02,0x3c,0x99,0x44,0x64,0xa0,0x9a,0x44,0x44,0xa0,0x02,0x80,0x03,0x3c,
+0x02,0x80,0x02,0x3c,0xb1,0x44,0x60,0xa0,0x01,0x00,0x06,0x24,0xb7,0x44,0x40,0xa0,
+0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xb8,0x44,0x60,0xa0,0x9c,0x44,0x46,0xa0,
+0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0xb9,0x44,0x60,0xa0,0x08,0x00,0x04,0x24,
+0x9b,0x44,0x46,0xa0,0x02,0x80,0x02,0x3c,0x9d,0x44,0x44,0xa0,0x01,0x00,0x05,0x24,
+0x02,0x80,0x03,0x3c,0x02,0x80,0x02,0x3c,0x9e,0x44,0x60,0xa0,0x64,0x00,0x04,0x24,
+0xa8,0x44,0x45,0xa4,0x02,0x80,0x03,0x3c,0x01,0x00,0x02,0x3c,0xa0,0x44,0x64,0xa4,
+0x00,0x90,0x42,0x34,0x02,0x80,0x03,0x3c,0xa4,0x44,0x62,0xac,0x02,0x80,0x04,0x3c,
+0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0xac,0x44,0x80,0xac,0x1c,0x00,0xbf,0x8f,
+0xb0,0x44,0x40,0xa0,0x18,0x00,0xb0,0x8f,0xb2,0x44,0x60,0xa0,0x02,0x80,0x02,0x3c,
+0x02,0x80,0x03,0x3c,0xba,0x44,0x40,0xa0,0xb3,0x44,0x60,0xa0,0x02,0x80,0x02,0x3c,
+0x02,0x80,0x03,0x3c,0xb4,0x44,0x45,0xa0,0x20,0x00,0xbd,0x27,0xb5,0x44,0x65,0xa0,
+0x02,0x80,0x02,0x3c,0x02,0x80,0x03,0x3c,0xb6,0x44,0x40,0xa0,0xbc,0x44,0x60,0xac,
+0x08,0x00,0xe0,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x78,0x0c,0x00,0x00,0x01,0x00,0x00,0x5e,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x01,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x02,0x5e,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x03,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x04,0x5d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x05,0x5b,0x78,0x0c,0x00,0x00,0x01,0x00,0x06,0x59,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x07,0x57,0x78,0x0c,0x00,0x00,0x01,0x00,0x08,0x55,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x09,0x53,0x78,0x0c,0x00,0x00,0x01,0x00,0x0a,0x51,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x0b,0x4f,0x78,0x0c,0x00,0x00,0x01,0x00,0x0c,0x4d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x0d,0x4b,0x78,0x0c,0x00,0x00,0x01,0x00,0x0e,0x49,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x0f,0x47,0x78,0x0c,0x00,0x00,0x01,0x00,0x10,0x45,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x11,0x43,0x78,0x0c,0x00,0x00,0x01,0x00,0x12,0x41,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x13,0x3f,0x78,0x0c,0x00,0x00,0x01,0x00,0x14,0x3d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x15,0x3b,0x78,0x0c,0x00,0x00,0x01,0x00,0x16,0x39,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x17,0x37,0x78,0x0c,0x00,0x00,0x01,0x00,0x18,0x35,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x19,0x33,0x78,0x0c,0x00,0x00,0x01,0x00,0x1a,0x31,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x1b,0x2f,0x78,0x0c,0x00,0x00,0x01,0x00,0x1c,0x2d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x1d,0x2b,0x78,0x0c,0x00,0x00,0x01,0x00,0x1e,0x29,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x1f,0x27,0x78,0x0c,0x00,0x00,0x01,0x00,0x20,0x25,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x21,0x23,0x78,0x0c,0x00,0x00,0x01,0x00,0x22,0x21,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x23,0x1f,0x78,0x0c,0x00,0x00,0x01,0x00,0x24,0x1d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x25,0x1b,0x78,0x0c,0x00,0x00,0x01,0x00,0x26,0x19,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x27,0x17,0x78,0x0c,0x00,0x00,0x01,0x00,0x28,0x15,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x29,0x13,0x78,0x0c,0x00,0x00,0x01,0x00,0x2a,0x11,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x2b,0x0f,0x78,0x0c,0x00,0x00,0x01,0x00,0x2c,0x0d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x2d,0x0b,0x78,0x0c,0x00,0x00,0x01,0x00,0x2e,0x09,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x2f,0x07,0x78,0x0c,0x00,0x00,0x01,0x00,0x30,0x05,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x31,0x03,0x78,0x0c,0x00,0x00,0x01,0x00,0x32,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x33,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x34,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x35,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x36,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x37,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x38,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x39,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3a,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x3b,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3c,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x3d,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x3e,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x3f,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x40,0x5e,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x41,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x42,0x5e,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x43,0x5e,0x78,0x0c,0x00,0x00,0x01,0x00,0x44,0x5d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x45,0x5b,0x78,0x0c,0x00,0x00,0x01,0x00,0x46,0x59,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x47,0x57,0x78,0x0c,0x00,0x00,0x01,0x00,0x48,0x55,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x49,0x53,0x78,0x0c,0x00,0x00,0x01,0x00,0x4a,0x51,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x4b,0x4f,0x78,0x0c,0x00,0x00,0x01,0x00,0x4c,0x4d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x4d,0x4b,0x78,0x0c,0x00,0x00,0x01,0x00,0x4e,0x49,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x4f,0x47,0x78,0x0c,0x00,0x00,0x01,0x00,0x50,0x45,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x51,0x43,0x78,0x0c,0x00,0x00,0x01,0x00,0x52,0x41,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x53,0x3f,0x78,0x0c,0x00,0x00,0x01,0x00,0x54,0x3d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x55,0x3b,0x78,0x0c,0x00,0x00,0x01,0x00,0x56,0x39,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x57,0x37,0x78,0x0c,0x00,0x00,0x01,0x00,0x58,0x35,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x59,0x33,0x78,0x0c,0x00,0x00,0x01,0x00,0x5a,0x31,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x5b,0x2f,0x78,0x0c,0x00,0x00,0x01,0x00,0x5c,0x2d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x5d,0x2b,0x78,0x0c,0x00,0x00,0x01,0x00,0x5e,0x29,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x5f,0x27,0x78,0x0c,0x00,0x00,0x01,0x00,0x60,0x25,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x61,0x23,0x78,0x0c,0x00,0x00,0x01,0x00,0x62,0x21,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x63,0x1f,0x78,0x0c,0x00,0x00,0x01,0x00,0x64,0x1d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x65,0x1b,0x78,0x0c,0x00,0x00,0x01,0x00,0x66,0x19,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x67,0x17,0x78,0x0c,0x00,0x00,0x01,0x00,0x68,0x15,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x69,0x13,0x78,0x0c,0x00,0x00,0x01,0x00,0x6a,0x11,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x6b,0x0f,0x78,0x0c,0x00,0x00,0x01,0x00,0x6c,0x0d,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x6d,0x0b,0x78,0x0c,0x00,0x00,0x01,0x00,0x6e,0x09,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x6f,0x07,0x78,0x0c,0x00,0x00,0x01,0x00,0x70,0x05,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x71,0x03,0x78,0x0c,0x00,0x00,0x01,0x00,0x72,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x73,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x74,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x75,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x76,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x77,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x78,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x79,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7a,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x7b,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7c,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x7d,0x01,0x78,0x0c,0x00,0x00,0x01,0x00,0x7e,0x01,0x78,0x0c,0x00,0x00,
+0x01,0x00,0x7f,0x01,0x78,0x0c,0x00,0x00,0x1e,0x00,0x00,0x30,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x01,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x02,0x30,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x03,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x04,0x30,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x05,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x06,0x30,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x07,0x30,0x78,0x0c,0x00,0x00,0x1e,0x00,0x08,0x3e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x09,0x40,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0a,0x42,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x0b,0x44,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0c,0x46,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x0d,0x48,0x78,0x0c,0x00,0x00,0x1e,0x00,0x0e,0x48,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x0f,0x4a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x10,0x4a,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x11,0x4c,0x78,0x0c,0x00,0x00,0x1e,0x00,0x12,0x4c,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x13,0x4e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x14,0x50,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x15,0x50,0x78,0x0c,0x00,0x00,0x1e,0x00,0x16,0x50,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x17,0x52,0x78,0x0c,0x00,0x00,0x1e,0x00,0x18,0x52,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x19,0x52,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1a,0x54,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x1b,0x54,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1c,0x54,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x1d,0x56,0x78,0x0c,0x00,0x00,0x1e,0x00,0x1e,0x56,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x1f,0x56,0x78,0x0c,0x00,0x00,0x1e,0x00,0x20,0x56,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x21,0x58,0x78,0x0c,0x00,0x00,0x1e,0x00,0x22,0x58,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x23,0x58,0x78,0x0c,0x00,0x00,0x1e,0x00,0x24,0x58,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x25,0x5a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x26,0x5a,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x27,0x5a,0x78,0x0c,0x00,0x00,0x1e,0x00,0x28,0x5c,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x29,0x5c,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2a,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x2b,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2c,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x2d,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x2e,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x2f,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x30,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x31,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x32,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x33,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x34,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x35,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x36,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x37,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x38,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x39,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3a,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x3b,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3c,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x3d,0x5e,0x78,0x0c,0x00,0x00,0x1e,0x00,0x3e,0x5e,0x78,0x0c,0x00,0x00,
+0x1e,0x00,0x3f,0x5e,0xff,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x08,0x00,0x00,
+0x00,0x00,0x04,0x03,0x04,0x08,0x00,0x00,0x03,0x00,0x00,0x00,0x08,0x08,0x00,0x00,
+0x00,0xfc,0x00,0x00,0x0c,0x08,0x00,0x00,0x0a,0x00,0x00,0x04,0x10,0x08,0x00,0x00,
+0xff,0x10,0x10,0x80,0x14,0x08,0x00,0x00,0x10,0x3d,0x0c,0x02,0x18,0x08,0x00,0x00,
+0xc5,0x03,0x00,0x00,0x1c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x08,0x00,0x00,
+0x04,0x00,0x00,0x00,0x24,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x28,0x08,0x00,0x00,
+0x04,0x00,0x00,0x00,0x2c,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x30,0x08,0x00,0x00,
+0x04,0x00,0x00,0x00,0x34,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x38,0x08,0x00,0x00,
+0x04,0x00,0x00,0x00,0x3c,0x08,0x00,0x00,0x00,0x02,0x69,0x00,0x40,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x44,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x4c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x50,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x54,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x58,0x08,0x00,0x00,
+0x65,0xa9,0x65,0xa9,0x5c,0x08,0x00,0x00,0x65,0xa9,0x65,0xa9,0x60,0x08,0x00,0x00,
+0x30,0x01,0x7f,0x0f,0x64,0x08,0x00,0x00,0x30,0x01,0x7f,0x0f,0x68,0x08,0x00,0x00,
+0x30,0x01,0x7f,0x0f,0x6c,0x08,0x00,0x00,0x30,0x01,0x7f,0x0f,0x70,0x08,0x00,0x00,
+0x00,0x03,0x00,0x03,0x74,0x08,0x00,0x00,0x00,0x03,0x00,0x03,0x78,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x7c,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x94,0x08,0x00,0x00,0xfe,0xff,0xff,0xff,0x98,0x08,0x00,0x00,
+0x10,0x20,0x30,0x40,0x9c,0x08,0x00,0x00,0x50,0x60,0x70,0x00,0xb0,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0xe0,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0xe4,0x08,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x04,0x0e,0x00,0x00,
+0x03,0x03,0x03,0x03,0x08,0x0e,0x00,0x00,0x03,0x03,0x00,0x00,0x0c,0x0e,0x00,0x00,
+0x00,0x00,0x00,0x00,0x10,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x14,0x0e,0x00,0x00,
+0x03,0x03,0x03,0x03,0x18,0x0e,0x00,0x00,0x03,0x03,0x03,0x03,0x1c,0x0e,0x00,0x00,
+0x03,0x03,0x03,0x03,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x09,0x00,0x00,
+0x23,0x00,0x00,0x00,0x08,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x0c,0x09,0x00,0x00,
+0x33,0x13,0x32,0x03,0x08,0x0a,0x00,0x00,0x00,0x86,0x88,0x8f,0x2c,0x0a,0x00,0x00,
+0x00,0x00,0x92,0x00,0x00,0x0c,0x00,0x00,0x80,0x00,0x00,0x00,0x04,0x0c,0x00,0x00,
+0x33,0x54,0x00,0x00,0x08,0x0c,0x00,0x00,0xe4,0x00,0x00,0x00,0x0c,0x0c,0x00,0x00,
+0x6c,0x6c,0x6c,0x6c,0x10,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x14,0x0c,0x00,0x00,
+0x00,0x01,0x00,0x40,0x18,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x1c,0x0c,0x00,0x00,
+0x00,0x01,0x00,0x40,0x20,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x24,0x0c,0x00,0x00,
+0x00,0x01,0x00,0x40,0x28,0x0c,0x00,0x00,0x00,0x00,0x00,0x08,0x2c,0x0c,0x00,0x00,
+0x00,0x01,0x00,0x40,0x30,0x0c,0x00,0x00,0x44,0x6a,0xe9,0x8d,0x34,0x0c,0x00,0x00,
+0xcd,0x52,0x96,0x46,0x38,0x0c,0x00,0x00,0x90,0x5a,0x01,0x48,0x3c,0x0c,0x00,0x00,
+0x64,0x97,0x97,0x1a,0x40,0x0c,0x00,0x00,0x3f,0x42,0x7c,0x1f,0x44,0x0c,0x00,0x00,
+0xb7,0x00,0x01,0x00,0x48,0x0c,0x00,0x00,0x00,0x00,0x02,0xec,0x4c,0x0c,0x00,0x00,
+0x03,0x03,0xfc,0x00,0x50,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x54,0x0c,0x00,0x00,
+0x94,0x00,0x3c,0x43,0x58,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x5c,0x0c,0x00,0x00,
+0x94,0x00,0x3c,0x43,0x60,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x64,0x0c,0x00,0x00,
+0x94,0x00,0x3c,0x43,0x68,0x0c,0x00,0x00,0x1c,0x34,0x54,0x69,0x6c,0x0c,0x00,0x00,
+0x94,0x00,0x3c,0x43,0x70,0x0c,0x00,0x00,0x0d,0x00,0x5a,0x2c,0x74,0x0c,0x00,0x00,
+0x1b,0x15,0x86,0x01,0x78,0x0c,0x00,0x00,0x1f,0x00,0x00,0x00,0x7c,0x0c,0x00,0x00,
+0x12,0x16,0xb9,0x00,0x80,0x0c,0x00,0x00,0x80,0x00,0x00,0x20,0x84,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0x88,0x0c,0x00,0x00,0x80,0x00,0x00,0x20,0x8c,0x0c,0x00,0x00,
+0x00,0x00,0x20,0x08,0x90,0x0c,0x00,0x00,0x00,0x01,0x00,0x40,0x94,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0x98,0x0c,0x00,0x00,0x00,0x01,0x00,0x40,0x9c,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xa0,0x0c,0x00,0x00,0x92,0x24,0x49,0x00,0xa4,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xa8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xac,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xb0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xb4,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xb8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xbc,0x0c,0x00,0x00,
+0x92,0x24,0x49,0x00,0xc0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xc4,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xc8,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xcc,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xd0,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0xd4,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xd8,0x0c,0x00,0x00,0x27,0x24,0xb2,0x64,0xdc,0x0c,0x00,0x00,
+0x32,0x69,0x76,0x00,0xe0,0x0c,0x00,0x00,0x22,0x22,0x22,0x00,0xe4,0x0c,0x00,0x00,
+0x00,0x00,0x00,0x00,0xe8,0x0c,0x00,0x00,0x02,0x43,0x64,0x07,0x00,0x0d,0x00,0x00,
+0x80,0x07,0x00,0x00,0x04,0x0d,0x00,0x00,0x03,0x04,0x00,0x00,0x08,0x0d,0x00,0x00,
+0x7f,0x90,0x00,0x00,0x0c,0x0d,0x00,0x00,0x01,0x00,0x00,0x00,0x10,0x0d,0x00,0x00,
+0x99,0x99,0x69,0xa0,0x14,0x0d,0x00,0x00,0x67,0x3c,0x99,0x99,0x18,0x0d,0x00,0x00,
+0x6b,0x5b,0x8f,0x6a,0x1c,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x24,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x28,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x2c,0x0d,0x00,0x00,0x75,0x19,0x97,0xcc,0x30,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x34,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x3c,0x0d,0x00,0x00,0x93,0x72,0x02,0x00,0x40,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x44,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x48,0x0d,0x00,0x00,
+0x00,0x00,0x00,0x00,0x50,0x0d,0x00,0x00,0x0a,0x14,0x37,0x64,0x54,0x0d,0x00,0x00,
+0x02,0xbd,0x4d,0x02,0x58,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x5c,0x0d,0x00,0x00,
+0x64,0x20,0x03,0x30,0x60,0x0d,0x00,0x00,0x68,0xde,0x53,0x46,0x64,0x0d,0x00,0x00,
+0x3c,0x8a,0x51,0x00,0x68,0x0d,0x00,0x00,0x06,0x01,0x00,0x00,0xff,0x00,0x00,0x00,
+0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,
+0x64,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x6c,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x74,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x7c,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x84,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x8c,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x94,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0x9c,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0xa4,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0xac,0x05,0x01,0x80,0x10,0x00,0x00,0x00,
+0x9c,0x2d,0x00,0x80,0x10,0x00,0x00,0x00,0x94,0x2d,0x00,0x80,0x10,0x00,0x00,0x00,
+0xb4,0x05,0x01,0x80,0x10,0x00,0x00,0x00,0xbc,0x05,0x01,0x80,0x34,0x01,0x00,0x00,
+0xc4,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0xcc,0x05,0x01,0x80,0x34,0x01,0x00,0x00,
+0xc4,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0xd4,0x05,0x01,0x80,0x30,0x00,0x00,0x00,
+0xdc,0x05,0x01,0x80,0x04,0x00,0x00,0x00,0xe4,0x05,0x01,0x80,0x13,0x00,0x00,0x00,
+0xec,0x05,0x01,0x80,0x17,0x00,0x00,0x00,0xf4,0x05,0x01,0x80,0x06,0x00,0x00,0x00,
+0xfc,0x05,0x01,0x80,0x06,0x00,0x00,0x00,0x04,0x06,0x01,0x80,0x08,0x00,0x00,0x00,
+0x0c,0x06,0x01,0x80,0x0c,0x00,0x00,0x00,0x14,0x06,0x01,0x80,0x04,0x00,0x00,0x00,
+0x1c,0x06,0x01,0x80,0x1f,0x00,0x00,0x00,0x24,0x06,0x01,0x80,0x01,0x00,0x00,0x00,
+0x2c,0x06,0x01,0x80,0x38,0x00,0x00,0x00,0x34,0x06,0x01,0x80,0x04,0x00,0x00,0x00,
+0x3c,0x06,0x01,0x80,0x02,0x00,0x00,0x00,0x44,0x06,0x01,0x80,0x04,0x00,0x00,0x00,
+0x4c,0x06,0x01,0x80,0x01,0x00,0x00,0x00,0x54,0x06,0x01,0x80,0x01,0x00,0x00,0x00,
+0x5c,0x06,0x01,0x80,0x0c,0x00,0x00,0x00,0x64,0x06,0x01,0x80,0x0e,0x00,0x00,0x00,
+0x6c,0x06,0x01,0x80,0x0c,0x00,0x00,0x00,0xb8,0x08,0x01,0x80,0x78,0x00,0x00,0x00,
+0xf0,0x09,0x01,0x80,0x04,0x00,0x00,0x00,0xf8,0x09,0x01,0x80,0x04,0x00,0x00,0x00,
+0xa4,0x2d,0x00,0x80,0x04,0x00,0x00,0x00,0xac,0x2d,0x00,0x80,0x04,0x00,0x00,0x00,
+0xb4,0x2d,0x00,0x80,0x04,0x00,0x00,0x00,0x00,0x0a,0x01,0x80,0x08,0x00,0x00,0x00,
+0x08,0x0a,0x01,0x80,0x10,0x00,0x00,0x00,0x10,0x0a,0x01,0x80,0x01,0x00,0x00,0x00,
+0x18,0x0a,0x01,0x80,0x01,0x00,0x00,0x00,0x20,0x0a,0x01,0x80,0x10,0x00,0x00,0x00,
+0xc4,0x2d,0x00,0x80,0x00,0xb7,0x00,0x00,0x01,0xe0,0x0e,0x00,0x02,0x4d,0x04,0x00,
+0x03,0x41,0x04,0x00,0x04,0xc3,0x08,0x00,0x05,0x72,0x0c,0x00,0x06,0xe6,0x00,0x00,
+0x07,0x2a,0x08,0x00,0x08,0x3f,0x00,0x00,0x09,0x35,0x03,0x00,0x0a,0xd4,0x09,0x00,
+0x0b,0xbb,0x07,0x00,0x0c,0x50,0x08,0x00,0x0d,0xdf,0x0c,0x00,0x0e,0x2b,0x00,0x00,
+0x0f,0x14,0x01,0x00,0x00,0xb7,0x01,0x00,0x01,0x01,0x00,0x00,0x02,0x00,0x04,0x00,
+0x01,0x02,0x00,0x00,0x02,0x01,0x04,0x00,0x01,0x03,0x00,0x00,0x02,0x02,0x04,0x00,
+0x01,0x04,0x00,0x00,0x02,0x03,0x04,0x00,0x01,0x05,0x00,0x00,0x02,0x04,0x04,0x00,
+0x01,0x06,0x00,0x00,0x02,0x05,0x04,0x00,0x01,0x07,0x00,0x00,0x02,0x08,0x04,0x00,
+0x01,0x08,0x00,0x00,0x02,0x09,0x04,0x00,0x01,0x09,0x00,0x00,0x02,0x0a,0x04,0x00,
+0x01,0x0a,0x00,0x00,0x02,0x0b,0x04,0x00,0x01,0x0b,0x00,0x00,0x02,0x02,0x05,0x00,
+0x01,0x0c,0x00,0x00,0x02,0x03,0x05,0x00,0x01,0x0d,0x00,0x00,0x02,0x04,0x05,0x00,
+0x01,0x0e,0x00,0x00,0x02,0x05,0x05,0x00,0x01,0x0f,0x00,0x00,0x02,0x40,0x05,0x00,
+0x01,0x10,0x00,0x00,0x02,0x41,0x05,0x00,0x01,0x11,0x00,0x00,0x02,0x42,0x05,0x00,
+0x01,0x12,0x00,0x00,0x02,0x43,0x05,0x00,0x01,0x13,0x00,0x00,0x02,0x44,0x05,0x00,
+0x01,0x14,0x00,0x00,0x02,0x45,0x05,0x00,0x01,0x15,0x00,0x00,0x02,0x80,0x05,0x00,
+0x01,0x16,0x00,0x00,0x02,0x81,0x05,0x00,0x01,0x17,0x00,0x00,0x02,0x82,0x05,0x00,
+0x01,0x18,0x00,0x00,0x02,0x83,0x05,0x00,0x01,0x19,0x00,0x00,0x02,0x84,0x05,0x00,
+0x01,0x1a,0x00,0x00,0x02,0x85,0x05,0x00,0x01,0x1b,0x00,0x00,0x02,0x88,0x05,0x00,
+0x01,0x1c,0x00,0x00,0x02,0x89,0x05,0x00,0x01,0x1d,0x00,0x00,0x02,0x8a,0x05,0x00,
+0x01,0x1e,0x00,0x00,0x02,0x8b,0x05,0x00,0x01,0x1f,0x00,0x00,0x02,0x43,0x06,0x00,
+0x01,0x20,0x00,0x00,0x02,0x44,0x06,0x00,0x01,0x21,0x00,0x00,0x02,0x45,0x06,0x00,
+0x01,0x22,0x00,0x00,0x02,0x80,0x06,0x00,0x01,0x23,0x00,0x00,0x02,0x81,0x06,0x00,
+0x01,0x24,0x00,0x00,0x02,0x82,0x06,0x00,0x01,0x25,0x00,0x00,0x02,0x83,0x06,0x00,
+0x01,0x26,0x00,0x00,0x02,0x84,0x06,0x00,0x01,0x27,0x00,0x00,0x02,0x85,0x06,0x00,
+0x01,0x28,0x00,0x00,0x02,0x88,0x06,0x00,0x01,0x29,0x00,0x00,0x02,0x89,0x06,0x00,
+0x01,0x2a,0x00,0x00,0x02,0x8a,0x06,0x00,0x01,0x2b,0x00,0x00,0x02,0x8b,0x06,0x00,
+0x01,0x2c,0x00,0x00,0x02,0x8c,0x06,0x00,0x01,0x2d,0x00,0x00,0x02,0x42,0x07,0x00,
+0x01,0x2e,0x00,0x00,0x02,0x43,0x07,0x00,0x01,0x2f,0x00,0x00,0x02,0x44,0x07,0x00,
+0x01,0x30,0x00,0x00,0x02,0x45,0x07,0x00,0x01,0x31,0x00,0x00,0x02,0x80,0x07,0x00,
+0x01,0x32,0x00,0x00,0x02,0x81,0x07,0x00,0x01,0x33,0x00,0x00,0x02,0x82,0x07,0x00,
+0x01,0x34,0x00,0x00,0x02,0x83,0x07,0x00,0x01,0x35,0x00,0x00,0x02,0x84,0x07,0x00,
+0x01,0x36,0x00,0x00,0x02,0x85,0x07,0x00,0x01,0x37,0x00,0x00,0x02,0x88,0x07,0x00,
+0x01,0x38,0x00,0x00,0x02,0x89,0x07,0x00,0x01,0x39,0x00,0x00,0x02,0x8a,0x07,0x00,
+0x01,0x3a,0x00,0x00,0x02,0x8b,0x07,0x00,0x01,0x3b,0x00,0x00,0x02,0x8c,0x07,0x00,
+0x01,0x3c,0x00,0x00,0x02,0x8d,0x07,0x00,0x01,0x3d,0x00,0x00,0x02,0x90,0x07,0x00,
+0x01,0x3e,0x00,0x00,0x02,0x91,0x07,0x00,0x01,0x3f,0x00,0x00,0x02,0x92,0x07,0x00,
+0x01,0x40,0x00,0x00,0x02,0x93,0x07,0x00,0x01,0x41,0x00,0x00,0x02,0x94,0x07,0x00,
+0x01,0x42,0x00,0x00,0x02,0x95,0x07,0x00,0x01,0x43,0x00,0x00,0x02,0x98,0x07,0x00,
+0x01,0x44,0x00,0x00,0x02,0x99,0x07,0x00,0x01,0x45,0x00,0x00,0x02,0x9a,0x07,0x00,
+0x01,0x46,0x00,0x00,0x02,0x9b,0x07,0x00,0x01,0x47,0x00,0x00,0x02,0x9c,0x07,0x00,
+0x01,0x48,0x00,0x00,0x02,0x9d,0x07,0x00,0x01,0x49,0x00,0x00,0x02,0xa0,0x07,0x00,
+0x01,0x4a,0x00,0x00,0x02,0xa1,0x07,0x00,0x01,0x4b,0x00,0x00,0x02,0xa2,0x07,0x00,
+0x01,0x4c,0x00,0x00,0x02,0xa3,0x07,0x00,0x01,0x4d,0x00,0x00,0x02,0xa4,0x07,0x00,
+0x01,0x4e,0x00,0x00,0x02,0xa5,0x07,0x00,0x01,0x4f,0x00,0x00,0x02,0xa8,0x07,0x00,
+0x01,0x50,0x00,0x00,0x02,0xa9,0x07,0x00,0x01,0x51,0x00,0x00,0x02,0xaa,0x03,0x00,
+0x01,0x52,0x00,0x00,0x02,0xab,0x03,0x00,0x01,0x53,0x00,0x00,0x02,0xac,0x03,0x00,
+0x01,0x54,0x00,0x00,0x02,0xad,0x03,0x00,0x01,0x55,0x00,0x00,0x02,0xb0,0x03,0x00,
+0x01,0x56,0x00,0x00,0x02,0xb1,0x03,0x00,0x01,0x57,0x00,0x00,0x02,0xb2,0x03,0x00,
+0x01,0x58,0x00,0x00,0x02,0xb3,0x03,0x00,0x01,0x59,0x00,0x00,0x02,0xb4,0x03,0x00,
+0x01,0x5a,0x00,0x00,0x02,0xb5,0x03,0x00,0x01,0x5b,0x00,0x00,0x02,0xb8,0x03,0x00,
+0x01,0x5c,0x00,0x00,0x02,0xb9,0x03,0x00,0x01,0x5d,0x00,0x00,0x02,0xba,0x03,0x00,
+0x01,0x5e,0x00,0x00,0x02,0xbb,0x03,0x00,0x01,0x5f,0x00,0x00,0x02,0xbb,0x03,0x00,
+0x03,0x80,0x00,0x00,0x05,0x04,0x00,0x00,0x00,0xb7,0x00,0x00,0xfe,0x00,0x00,0x00,
+0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x02,0x4d,0x0c,0x00,0xfe,0x00,0x00,0x00,
+0xfe,0x00,0x00,0x00,0x02,0x4d,0x04,0x00,0x00,0xbf,0x02,0x00,0xff,0xff,0xff,0x00,
+0xff,0xff,0xff,0x00,0x00,0xb7,0x00,0x00,0x01,0xe0,0x0e,0x00,0x02,0x4d,0x04,0x00,
+0x03,0x41,0x04,0x00,0x04,0xc3,0x08,0x00,0x05,0x72,0x0c,0x00,0x06,0xe6,0x00,0x00,
+0x07,0x2a,0x08,0x00,0x08,0x3f,0x00,0x00,0x09,0x35,0x03,0x00,0x0a,0xd4,0x09,0x00,
+0x0b,0xbb,0x07,0x00,0x0c,0x50,0x08,0x00,0x0d,0xdf,0x0c,0x00,0x0e,0x2b,0x00,0x00,
+0x0f,0x14,0x01,0x00,0x00,0xb7,0x01,0x00,0x01,0x01,0x00,0x00,0x02,0x00,0x04,0x00,
+0x01,0x02,0x00,0x00,0x02,0x01,0x04,0x00,0x01,0x03,0x00,0x00,0x02,0x02,0x04,0x00,
+0x01,0x04,0x00,0x00,0x02,0x03,0x04,0x00,0x01,0x05,0x00,0x00,0x02,0x04,0x04,0x00,
+0x01,0x06,0x00,0x00,0x02,0x05,0x04,0x00,0x01,0x07,0x00,0x00,0x02,0x08,0x04,0x00,
+0x01,0x08,0x00,0x00,0x02,0x09,0x04,0x00,0x01,0x09,0x00,0x00,0x02,0x0a,0x04,0x00,
+0x01,0x0a,0x00,0x00,0x02,0x0b,0x04,0x00,0x01,0x0b,0x00,0x00,0x02,0x02,0x05,0x00,
+0x01,0x0c,0x00,0x00,0x02,0x03,0x05,0x00,0x01,0x0d,0x00,0x00,0x02,0x04,0x05,0x00,
+0x01,0x0e,0x00,0x00,0x02,0x05,0x05,0x00,0x01,0x0f,0x00,0x00,0x02,0x40,0x05,0x00,
+0x01,0x10,0x00,0x00,0x02,0x41,0x05,0x00,0x01,0x11,0x00,0x00,0x02,0x42,0x05,0x00,
+0x01,0x12,0x00,0x00,0x02,0x43,0x05,0x00,0x01,0x13,0x00,0x00,0x02,0x44,0x05,0x00,
+0x01,0x14,0x00,0x00,0x02,0x45,0x05,0x00,0x01,0x15,0x00,0x00,0x02,0x80,0x05,0x00,
+0x01,0x16,0x00,0x00,0x02,0x81,0x05,0x00,0x01,0x17,0x00,0x00,0x02,0x82,0x05,0x00,
+0x01,0x18,0x00,0x00,0x02,0x83,0x05,0x00,0x01,0x19,0x00,0x00,0x02,0x84,0x05,0x00,
+0x01,0x1a,0x00,0x00,0x02,0x85,0x05,0x00,0x01,0x1b,0x00,0x00,0x02,0x88,0x05,0x00,
+0x01,0x1c,0x00,0x00,0x02,0x89,0x05,0x00,0x01,0x1d,0x00,0x00,0x02,0x8a,0x05,0x00,
+0x01,0x1e,0x00,0x00,0x02,0x8b,0x05,0x00,0x01,0x1f,0x00,0x00,0x02,0x43,0x06,0x00,
+0x01,0x20,0x00,0x00,0x02,0x44,0x06,0x00,0x01,0x21,0x00,0x00,0x02,0x45,0x06,0x00,
+0x01,0x22,0x00,0x00,0x02,0x80,0x06,0x00,0x01,0x23,0x00,0x00,0x02,0x81,0x06,0x00,
+0x01,0x24,0x00,0x00,0x02,0x82,0x06,0x00,0x01,0x25,0x00,0x00,0x02,0x83,0x06,0x00,
+0x01,0x26,0x00,0x00,0x02,0x84,0x06,0x00,0x01,0x27,0x00,0x00,0x02,0x85,0x06,0x00,
+0x01,0x28,0x00,0x00,0x02,0x88,0x06,0x00,0x01,0x29,0x00,0x00,0x02,0x89,0x06,0x00,
+0x01,0x2a,0x00,0x00,0x02,0x8a,0x06,0x00,0x01,0x2b,0x00,0x00,0x02,0x8b,0x06,0x00,
+0x01,0x2c,0x00,0x00,0x02,0x8c,0x06,0x00,0x01,0x2d,0x00,0x00,0x02,0x42,0x07,0x00,
+0x01,0x2e,0x00,0x00,0x02,0x43,0x07,0x00,0x01,0x2f,0x00,0x00,0x02,0x44,0x07,0x00,
+0x01,0x30,0x00,0x00,0x02,0x45,0x07,0x00,0x01,0x31,0x00,0x00,0x02,0x80,0x07,0x00,
+0x01,0x32,0x00,0x00,0x02,0x81,0x07,0x00,0x01,0x33,0x00,0x00,0x02,0x82,0x07,0x00,
+0x01,0x34,0x00,0x00,0x02,0x83,0x07,0x00,0x01,0x35,0x00,0x00,0x02,0x84,0x07,0x00,
+0x01,0x36,0x00,0x00,0x02,0x85,0x07,0x00,0x01,0x37,0x00,0x00,0x02,0x88,0x07,0x00,
+0x01,0x38,0x00,0x00,0x02,0x89,0x07,0x00,0x01,0x39,0x00,0x00,0x02,0x8a,0x07,0x00,
+0x01,0x3a,0x00,0x00,0x02,0x8b,0x07,0x00,0x01,0x3b,0x00,0x00,0x02,0x8c,0x07,0x00,
+0x01,0x3c,0x00,0x00,0x02,0x8d,0x07,0x00,0x01,0x3d,0x00,0x00,0x02,0x90,0x07,0x00,
+0x01,0x3e,0x00,0x00,0x02,0x91,0x07,0x00,0x01,0x3f,0x00,0x00,0x02,0x92,0x07,0x00,
+0x01,0x40,0x00,0x00,0x02,0x93,0x07,0x00,0x01,0x41,0x00,0x00,0x02,0x94,0x07,0x00,
+0x01,0x42,0x00,0x00,0x02,0x95,0x07,0x00,0x01,0x43,0x00,0x00,0x02,0x98,0x07,0x00,
+0x01,0x44,0x00,0x00,0x02,0x99,0x07,0x00,0x01,0x45,0x00,0x00,0x02,0x9a,0x07,0x00,
+0x01,0x46,0x00,0x00,0x02,0x9b,0x07,0x00,0x01,0x47,0x00,0x00,0x02,0x9c,0x07,0x00,
+0x01,0x48,0x00,0x00,0x02,0x9d,0x07,0x00,0x01,0x49,0x00,0x00,0x02,0xa0,0x07,0x00,
+0x01,0x4a,0x00,0x00,0x02,0xa1,0x07,0x00,0x01,0x4b,0x00,0x00,0x02,0xa2,0x07,0x00,
+0x01,0x4c,0x00,0x00,0x02,0xa3,0x07,0x00,0x01,0x4d,0x00,0x00,0x02,0xa4,0x07,0x00,
+0x01,0x4e,0x00,0x00,0x02,0xa5,0x07,0x00,0x01,0x4f,0x00,0x00,0x02,0xa8,0x07,0x00,
+0x01,0x50,0x00,0x00,0x02,0xa9,0x07,0x00,0x01,0x51,0x00,0x00,0x02,0xaa,0x03,0x00,
+0x01,0x52,0x00,0x00,0x02,0xab,0x03,0x00,0x01,0x53,0x00,0x00,0x02,0xac,0x03,0x00,
+0x01,0x54,0x00,0x00,0x02,0xad,0x03,0x00,0x01,0x55,0x00,0x00,0x02,0xb0,0x03,0x00,
+0x01,0x56,0x00,0x00,0x02,0xb1,0x03,0x00,0x01,0x57,0x00,0x00,0x02,0xb2,0x03,0x00,
+0x01,0x58,0x00,0x00,0x02,0xb3,0x03,0x00,0x01,0x59,0x00,0x00,0x02,0xb4,0x03,0x00,
+0x01,0x5a,0x00,0x00,0x02,0xb5,0x03,0x00,0x01,0x5b,0x00,0x00,0x02,0xb8,0x03,0x00,
+0x01,0x5c,0x00,0x00,0x02,0xb9,0x03,0x00,0x01,0x5d,0x00,0x00,0x02,0xba,0x03,0x00,
+0x01,0x5e,0x00,0x00,0x02,0xbb,0x03,0x00,0x01,0x5f,0x00,0x00,0x02,0xbb,0x03,0x00,
+0x03,0x80,0x00,0x00,0x05,0x04,0x00,0x00,0x00,0xb7,0x00,0x00,0xfe,0x00,0x00,0x00,
+0xfe,0x00,0x00,0x00,0xfe,0x00,0x00,0x00,0x02,0x4d,0x0c,0x00,0xfe,0x00,0x00,0x00,
+0xfe,0x00,0x00,0x00,0x02,0x4d,0x04,0x00,0x00,0xbf,0x02,0x00,0xff,0xff,0xff,0x00,
+0xff,0xff,0xff,0x00,0x4f,0x6e,0x41,0x73,0x73,0x6f,0x63,0x52,0x65,0x71,0x00,0x00,
+0x4f,0x6e,0x41,0x73,0x73,0x6f,0x63,0x52,0x73,0x70,0x00,0x00,0x4f,0x6e,0x52,0x65,
+0x41,0x73,0x73,0x6f,0x63,0x52,0x65,0x71,0x00,0x00,0x00,0x00,0x4f,0x6e,0x52,0x65,
+0x41,0x73,0x73,0x6f,0x63,0x52,0x73,0x70,0x00,0x00,0x00,0x00,0x4f,0x6e,0x50,0x72,
+0x6f,0x62,0x65,0x52,0x65,0x71,0x00,0x00,0x4f,0x6e,0x50,0x72,0x6f,0x62,0x65,0x52,
+0x73,0x70,0x00,0x00,0x4f,0x6e,0x42,0x65,0x61,0x63,0x6f,0x6e,0x00,0x00,0x00,0x00,
+0x4f,0x6e,0x41,0x54,0x49,0x4d,0x00,0x00,0x4f,0x6e,0x44,0x69,0x73,0x61,0x73,0x73,
+0x6f,0x63,0x00,0x00,0x4f,0x6e,0x41,0x75,0x74,0x68,0x00,0x00,0x4f,0x6e,0x44,0x65,
+0x41,0x75,0x74,0x68,0x00,0x00,0x00,0x00,0x4f,0x6e,0x41,0x63,0x74,0x69,0x6f,0x6e,
+0x00,0x00,0x00,0x00,0x4f,0x6e,0x45,0x78,0x63,0x65,0x70,0x74,0x69,0x6f,0x6e,0x00,
+0x00,0x00,0x00,0x00,0xfc,0xa7,0x01,0x80,0x24,0x2f,0x00,0x80,0x10,0x00,0x00,0x00,
+0x08,0xa8,0x01,0x80,0x2c,0x2f,0x00,0x80,0x20,0x00,0x00,0x00,0x14,0xa8,0x01,0x80,
+0x24,0x2f,0x00,0x80,0x30,0x00,0x00,0x00,0x24,0xa8,0x01,0x80,0x2c,0x2f,0x00,0x80,
+0x40,0x00,0x00,0x00,0x34,0xa8,0x01,0x80,0x34,0x2f,0x00,0x80,0x50,0x00,0x00,0x00,
+0x40,0xa8,0x01,0x80,0x54,0x2f,0x00,0x80,0x80,0x00,0x00,0x00,0x4c,0xa8,0x01,0x80,
+0x04,0x30,0x00,0x80,0x90,0x00,0x00,0x00,0x58,0xa8,0x01,0x80,0x5c,0x2f,0x00,0x80,
+0xa0,0x00,0x00,0x00,0x60,0xa8,0x01,0x80,0x6c,0x2f,0x00,0x80,0xb0,0x00,0x00,0x00,
+0x6c,0xa8,0x01,0x80,0x64,0x2f,0x00,0x80,0xc0,0x00,0x00,0x00,0x74,0xa8,0x01,0x80,
+0x74,0x2f,0x00,0x80,0xd0,0x00,0x00,0x00,0x80,0xa8,0x01,0x80,0x7c,0x2f,0x00,0x80,
+0x0c,0x00,0x00,0x00,0x8c,0xa8,0x01,0x80,0x98,0x2f,0x00,0x80,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,
+0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xff,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x04,0x05,0x06,0x07,0x08,0xff,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x01,0x01,0x03,0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xaa,0x01,0x80,0x00,0xaa,0x01,0x80,
+0x31,0x10,0x10,0x00,0x00,0x30,0x00,0x00,0x31,0x20,0x10,0x00,0x00,0x30,0x00,0x00,
+0x31,0x28,0x10,0x00,0x00,0x30,0x00,0x00,0x31,0x2c,0x10,0x10,0x00,0x30,0x00,0x00,
+0x31,0x2f,0x10,0x10,0x00,0x30,0x00,0x00,0x31,0x30,0x18,0x00,0x00,0x30,0x00,0x00,
+0x31,0x30,0x20,0x10,0x00,0x30,0x00,0x00,0x22,0x20,0x18,0x08,0x00,0x20,0x00,0x00,
+0x22,0x21,0x14,0x08,0x00,0x20,0x00,0x00,0x22,0x21,0x1c,0x08,0x00,0x20,0x00,0x00,
+0x22,0x21,0x20,0x08,0x00,0x20,0x00,0x00,0x22,0x21,0x20,0x10,0x00,0x20,0x00,0x00,
+0x22,0x21,0x20,0x18,0x00,0x20,0x00,0x00,0x1a,0x19,0x18,0x10,0x00,0x18,0x00,0x00,
+0x12,0x11,0x10,0x08,0x00,0x10,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x08,0x00,0x00,
+0x0a,0x09,0x08,0x02,0x00,0x08,0x00,0x00,0x0a,0x09,0x08,0x04,0x00,0x08,0x00,0x00,
+0x0a,0x09,0x08,0x06,0x00,0x08,0x00,0x00,0x08,0x07,0x06,0x04,0x00,0x06,0x00,0x00,
+0x06,0x05,0x04,0x02,0x00,0x04,0x00,0x00,0x06,0x05,0x04,0x03,0x00,0x04,0x00,0x00,
+0x05,0x04,0x03,0x02,0x00,0x03,0x00,0x00,0x09,0x08,0x07,0x06,0x07,0x06,0x06,0x05,
+0x05,0x04,0x04,0x03,0x06,0x05,0x05,0x04,0x04,0x03,0x03,0x03,0x05,0x04,0x04,0x03,
+0x03,0x02,0x02,0x02,0x00,0x09,0x08,0x07,0x06,0x07,0x06,0x06,0x05,0x05,0x04,0x04,
+0x03,0x05,0x04,0x04,0x03,0x03,0x02,0x02,0x02,0x04,0x03,0x03,0x02,0x02,0x01,0x01,
+0x01,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,
+0x08,0x08,0x08,0x08,0x20,0x20,0x20,0x20,0x08,0x08,0x08,0x08,0x08,0x20,0x20,0x20,
+0x30,0x08,0x08,0x08,0x08,0x18,0x18,0x18,0x18,0x18,0x20,0x30,0x30,0x10,0x20,0x20,
+0x20,0x20,0x20,0x30,0x30,0x08,0x10,0x20,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,
+0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x20,0x08,0x08,0x08,0x08,
+0x08,0x20,0x20,0x20,0x08,0x08,0x08,0x08,0x08,0x20,0x20,0x20,0x20,0x08,0x08,0x08,
+0x08,0x18,0x18,0x18,0x18,0x18,0x20,0x30,0x30,0x10,0x20,0x20,0x20,0x20,0x20,0x30,
+0x30,0x08,0x10,0x20,0x30,0x30,0x30,0x30,0x30,0x30,0x00,0x00,0x0a,0x09,0x08,0x04,
+0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,
+0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,
+0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x12,0x11,
+0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,
+0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20,0x18,
+0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x1c,0x08,0x00,0x22,0x20,0x18,0x08,0x00,
+0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,
+0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20,0x10,0x00,0x22,0x21,
+0x20,0x08,0x00,0x22,0x21,0x1c,0x08,0x00,0x31,0x30,0x18,0x00,0x00,0x0a,0x09,0x08,
+0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,
+0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,
+0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x31,
+0x2c,0x10,0x10,0x00,0x31,0x28,0x10,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,
+0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x08,0x00,0x22,0x21,0x14,
+0x08,0x00,0x22,0x20,0x18,0x08,0x00,0x31,0x30,0x20,0x10,0x00,0x31,0x2c,0x10,0x10,
+0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,
+0x22,0x21,0x20,0x18,0x00,0x31,0x30,0x20,0x10,0x00,0x31,0x2f,0x10,0x10,0x00,0x31,
+0x2f,0x10,0x10,0x00,0x31,0x10,0x10,0x00,0x00,0x31,0x2c,0x10,0x10,0x00,0x00,0x00,
+0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,
+0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,
+0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,
+0x08,0x00,0x12,0x11,0x10,0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x0a,0x09,0x08,0x04,
+0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x00,0x00,
+0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x1c,0x08,0x00,0x22,
+0x21,0x14,0x08,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,
+0x08,0x02,0x00,0x0a,0x09,0x08,0x02,0x00,0x0a,0x09,0x08,0x00,0x00,0x22,0x21,0x20,
+0x10,0x00,0x22,0x21,0x20,0x08,0x00,0x22,0x21,0x14,0x08,0x00,0x22,0x21,0x14,0x08,
+0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,0x0a,0x09,0x08,0x04,0x00,
+0x0a,0x09,0x08,0x04,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,
+0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x1a,0x19,0x18,0x10,0x00,0x22,0x21,
+0x20,0x08,0x00,0x31,0x2c,0x10,0x10,0x00,0x31,0x28,0x10,0x00,0x00,0x12,0x11,0x10,
+0x08,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x08,
+0x00,0x22,0x21,0x14,0x08,0x00,0x22,0x20,0x18,0x08,0x00,0x31,0x30,0x20,0x10,0x00,
+0x31,0x2c,0x10,0x10,0x00,0x0a,0x09,0x08,0x00,0x00,0x12,0x11,0x10,0x08,0x00,0x22,
+0x21,0x20,0x18,0x00,0x22,0x21,0x20,0x18,0x00,0x31,0x30,0x20,0x10,0x00,0x31,0x2f,
+0x10,0x10,0x00,0x31,0x2f,0x10,0x10,0x00,0x31,0x10,0x10,0x00,0x00,0x31,0x2c,0x10,
+0x10,0x00,0x00,0x00,0x01,0x02,0x04,0x08,0x02,0x04,0x08,0x0c,0x10,0x18,0x20,0x30,
+0x02,0x04,0x08,0x0c,0x10,0x18,0x20,0x30,0x06,0x0c,0x10,0x18,0x24,0x30,0x3c,0x48,
+0x48,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x25,0x27,0x2c,
+0x19,0x1b,0x1e,0x20,0x23,0x29,0x2a,0x2b,0x00,0x00,0x00,0x00,0x25,0x29,0x2b,0x2e,
+0x2e,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,
+0x10,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x30,0x00,0x00,0x00,
+0x48,0x00,0x00,0x00,0x60,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0xc0,0x00,0x00,0x00,
+0xd8,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
+0xc8,0x00,0x00,0x00,0x40,0x01,0x00,0x00,0x90,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,
+0x30,0x02,0x00,0x00,0x2c,0x01,0x00,0x00,0x40,0x01,0x00,0x00,0xe0,0x01,0x00,0x00,
+0xd0,0x02,0x00,0x00,0x80,0x0c,0x00,0x00,0x80,0x0c,0x00,0x00,0x80,0x0c,0x00,0x00,
+0xa0,0x0f,0x00,0x00,0xa0,0x0f,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,
+0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x12,0x00,0x00,0x00,
+0x18,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x48,0x00,0x00,0x00,
+0x60,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,
+0x50,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,0xc8,0x00,0x00,0x00,
+0xf0,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0x64,0x00,0x00,0x00,0xa0,0x00,0x00,0x00,
+0xf0,0x00,0x00,0x00,0x68,0x01,0x00,0x00,0x40,0x06,0x00,0x00,0x40,0x06,0x00,0x00,
+0x40,0x06,0x00,0x00,0xd0,0x07,0x00,0x00,0xd0,0x07,0x00,0x00,0x30,0x7a,0x00,0x80,
+0x88,0x85,0x00,0x80,0x88,0x85,0x00,0x80,0x88,0x85,0x00,0x80,0x88,0x85,0x00,0x80,
+0xd8,0x83,0x00,0x80,0x38,0x7a,0x00,0x80,0x30,0x7a,0x00,0x80,0x30,0x7a,0x00,0x80,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xb8,0x86,0x00,0x80,0xb8,0x86,0x00,0x80,
+0xb8,0x86,0x00,0x80,0xb8,0x86,0x00,0x80,0xfc,0x6c,0x01,0x80,0x1c,0x6d,0x01,0x80,
+0x04,0x6d,0x01,0x80,0x0c,0x6d,0x01,0x80,0x14,0x6d,0x01,0x80,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x08,0x04,0x04,0x08,0x02,0x02,0x01,0x01,0x50,0x53,0x00,0x00,
+0xf8,0x07,0x00,0x80,0xec,0x07,0x00,0x80,0xe0,0x07,0x00,0x80,0xd4,0x07,0x00,0x80,
+0xc8,0x07,0x00,0x80,0xbc,0x07,0x00,0x80,0xb0,0x07,0x00,0x80,0xa4,0x07,0x00,0x80,
+0x98,0x07,0x00,0x80,0x8c,0x07,0x00,0x80,0x44,0x07,0x00,0x80,0xb0,0x03,0x25,0xb0,
+0x2c,0x00,0x2a,0xb0,0x78,0x1b,0x02,0x80,0xb0,0x03,0x25,0xb0,0x44,0x44,0x33,0x33,
+0x06,0x00,0x2a,0xb0,0x3c,0x47,0x00,0x80,0x30,0x47,0x00,0x80,0x24,0x47,0x00,0x80,
+0x18,0x47,0x00,0x80,0x0c,0x47,0x00,0x80,0x00,0x47,0x00,0x80,0xf4,0x46,0x00,0x80,
+0xe8,0x46,0x00,0x80,0xdc,0x46,0x00,0x80,0xd0,0x46,0x00,0x80,0xc4,0x46,0x00,0x80,
+0xb8,0x46,0x00,0x80,0x60,0x3f,0x01,0x80,0x48,0x3f,0x01,0x80,0x30,0x3f,0x01,0x80,
+0x18,0x3f,0x01,0x80,0x00,0x3f,0x01,0x80,0xe8,0x3e,0x01,0x80,0xb4,0x3e,0x01,0x80,
+0x00,0x02,0x00,0x00,0x08,0x09,0x00,0x00,0x0c,0x58,0x00,0x80,0x18,0x58,0x00,0x80,
+0x24,0x58,0x00,0x80,0x30,0x58,0x00,0x80,0x0c,0x58,0x00,0x80,0x0c,0x58,0x00,0x80,
+0x0c,0x58,0x00,0x80,0x0c,0x58,0x00,0x80,0x3c,0x58,0x00,0x80,0x48,0x58,0x00,0x80,
+0x54,0x58,0x00,0x80,0x60,0x58,0x00,0x80,0x78,0x1b,0x02,0x80,0x78,0x1b,0x02,0x80,
+0x84,0x0e,0x25,0xb0,0x88,0x0e,0x25,0xb0,0x8c,0x0e,0x25,0xb0,0xd0,0x0e,0x25,0xb0,
+0xd8,0x0e,0x25,0xb0,0x20,0x08,0x25,0xb0,0xfe,0x01,0x80,0x7f,0xe2,0x01,0x80,0x78,
+0xc7,0x01,0xc0,0x71,0xae,0x01,0x80,0x6b,0x95,0x01,0x40,0x65,0x7f,0x01,0xc0,0x5f,
+0x69,0x01,0x40,0x5a,0x55,0x01,0x40,0x55,0x42,0x01,0x80,0x50,0x30,0x01,0x00,0x4c,
+0x1f,0x01,0xc0,0x47,0x0f,0x01,0xc0,0x43,0x00,0x01,0x00,0x40,0xf2,0x00,0x80,0x3c,
+0xe4,0x00,0x00,0x39,0xd7,0x00,0xc0,0x35,0xcb,0x00,0xc0,0x32,0xc0,0x00,0x00,0x30,
+0xb5,0x00,0x40,0x2d,0xab,0x00,0xc0,0x2a,0xa2,0x00,0x80,0x28,0x98,0x00,0x00,0x26,
+0x90,0x00,0x00,0x24,0x88,0x00,0x00,0x22,0x80,0x00,0x00,0x20,0x79,0x00,0x40,0x1e,
+0x72,0x00,0x80,0x1c,0x6c,0x00,0x00,0x1b,0x66,0x00,0x80,0x19,0x60,0x00,0x00,0x18,
+0x5b,0x00,0xc0,0x16,0x56,0x00,0x80,0x15,0x51,0x00,0x40,0x14,0x4c,0x00,0x00,0x13,
+0x48,0x00,0x00,0x12,0x44,0x00,0x00,0x11,0x40,0x00,0x00,0x10,0x36,0x35,0x2e,0x25,
+0x1c,0x12,0x09,0x04,0x33,0x32,0x2b,0x23,0x1a,0x11,0x08,0x04,0x30,0x2f,0x29,0x21,
+0x19,0x10,0x08,0x03,0x2d,0x2d,0x27,0x1f,0x18,0x0f,0x08,0x03,0x2b,0x2a,0x25,0x1e,
+0x16,0x0e,0x07,0x03,0x28,0x28,0x22,0x1c,0x15,0x0d,0x07,0x03,0x26,0x25,0x21,0x1b,
+0x14,0x0d,0x06,0x03,0x24,0x23,0x1f,0x19,0x13,0x0c,0x06,0x03,0x22,0x21,0x1d,0x18,
+0x11,0x0b,0x06,0x02,0x20,0x20,0x1b,0x16,0x11,0x08,0x05,0x02,0x1f,0x1e,0x1a,0x15,
+0x10,0x0a,0x05,0x02,0x1d,0x1c,0x18,0x14,0x0f,0x0a,0x05,0x02,0x1b,0x1a,0x17,0x13,
+0x0e,0x09,0x04,0x02,0x1a,0x19,0x16,0x12,0x0d,0x09,0x04,0x02,0x18,0x17,0x15,0x11,
+0x0c,0x08,0x04,0x02,0x17,0x16,0x13,0x10,0x0c,0x08,0x04,0x02,0x16,0x15,0x12,0x0f,
+0x0b,0x07,0x04,0x01,0x14,0x14,0x11,0x0e,0x0b,0x07,0x03,0x02,0x13,0x13,0x10,0x0d,
+0x0a,0x06,0x03,0x01,0x12,0x12,0x0f,0x0c,0x09,0x06,0x03,0x01,0x11,0x11,0x0f,0x0c,
+0x09,0x06,0x03,0x01,0x10,0x10,0x0e,0x0b,0x08,0x05,0x03,0x01,0x0f,0x0f,0x0d,0x0b,
+0x08,0x05,0x03,0x01,0x0e,0x0e,0x0c,0x0a,0x08,0x05,0x02,0x01,0x0d,0x0d,0x0c,0x0a,
+0x07,0x05,0x02,0x01,0x0d,0x0c,0x0b,0x09,0x07,0x04,0x02,0x01,0x0c,0x0c,0x0a,0x09,
+0x06,0x04,0x02,0x01,0x0b,0x0b,0x0a,0x08,0x06,0x04,0x02,0x01,0x0b,0x0a,0x09,0x08,
+0x06,0x04,0x02,0x01,0x0a,0x0a,0x09,0x07,0x05,0x03,0x02,0x01,0x0a,0x09,0x08,0x07,
+0x05,0x03,0x02,0x01,0x09,0x09,0x08,0x06,0x05,0x03,0x01,0x01,0x09,0x08,0x07,0x06,
+0x04,0x03,0x01,0x01,0x36,0x35,0x2e,0x1b,0x00,0x00,0x00,0x00,0x33,0x32,0x2b,0x19,
+0x00,0x00,0x00,0x00,0x30,0x2f,0x29,0x18,0x00,0x00,0x00,0x00,0x2d,0x2d,0x17,0x17,
+0x00,0x00,0x00,0x00,0x2b,0x2a,0x25,0x15,0x00,0x00,0x00,0x00,0x28,0x28,0x24,0x14,
+0x00,0x00,0x00,0x00,0x26,0x25,0x21,0x13,0x00,0x00,0x00,0x00,0x24,0x23,0x1f,0x12,
+0x00,0x00,0x00,0x00,0x22,0x21,0x1d,0x11,0x00,0x00,0x00,0x00,0x20,0x20,0x1b,0x10,
+0x00,0x00,0x00,0x00,0x1f,0x1e,0x1a,0x0f,0x00,0x00,0x00,0x00,0x1d,0x1c,0x18,0x0e,
+0x00,0x00,0x00,0x00,0x1b,0x1a,0x17,0x0e,0x00,0x00,0x00,0x00,0x1a,0x19,0x16,0x0d,
+0x00,0x00,0x00,0x00,0x18,0x17,0x15,0x0c,0x00,0x00,0x00,0x00,0x17,0x16,0x13,0x0b,
+0x00,0x00,0x00,0x00,0x16,0x15,0x12,0x0b,0x00,0x00,0x00,0x00,0x14,0x14,0x11,0x0a,
+0x00,0x00,0x00,0x00,0x13,0x13,0x10,0x0a,0x00,0x00,0x00,0x00,0x12,0x12,0x0f,0x09,
+0x00,0x00,0x00,0x00,0x11,0x11,0x0f,0x09,0x00,0x00,0x00,0x00,0x10,0x10,0x0e,0x08,
+0x00,0x00,0x00,0x00,0x0f,0x0f,0x0d,0x08,0x00,0x00,0x00,0x00,0x0e,0x0e,0x0c,0x07,
+0x00,0x00,0x00,0x00,0x0d,0x0d,0x0c,0x07,0x00,0x00,0x00,0x00,0x0d,0x0c,0x0b,0x06,
+0x00,0x00,0x00,0x00,0x0c,0x0c,0x0a,0x06,0x00,0x00,0x00,0x00,0x0b,0x0b,0x0a,0x06,
+0x00,0x00,0x00,0x00,0x0b,0x0a,0x09,0x05,0x00,0x00,0x00,0x00,0x0a,0x0a,0x09,0x05,
+0x00,0x00,0x00,0x00,0x0a,0x09,0x08,0x05,0x00,0x00,0x00,0x00,0x09,0x09,0x08,0x05,
+0x00,0x00,0x00,0x00,0x09,0x08,0x07,0x04,0x00,0x00,0x00,0x00,0x06,0x00,0x2a,0xb0,
+0x05,0x00,0x2a,0xb0,0x34,0x7b,0x00,0x80,0xbc,0x7b,0x00,0x80,0x60,0x7b,0x00,0x80,
+0xbc,0x7b,0x00,0x80,0xbc,0x7b,0x00,0x80,0xbc,0x7b,0x00,0x80,0xbc,0x7b,0x00,0x80,
+0x08,0x7b,0x00,0x80,0x00,0x01,0x02,0x02,0x03,0x03,0x03,0x03,0x04,0x04,0x04,0x04,
+0x04,0x04,0x04,0x04,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
+0x05,0x05,0x05,0x05,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06,
+0x06,0x06,0x06,0x06,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,0x07,
+0x07,0x07,0x07,0x07,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x28,0x28,0x28,0x28,0x28,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,
+0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0xa0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x04,
+0x04,0x04,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x41,0x41,0x41,0x41,0x41,0x41,0x01,
+0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+0x01,0x01,0x01,0x10,0x10,0x10,0x10,0x10,0x10,0x42,0x42,0x42,0x42,0x42,0x42,0x02,
+0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+0x02,0x02,0x02,0x10,0x10,0x10,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xa0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,
+0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x10,
+0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,
+0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x10,
+0x02,0x02,0x02,0x02,0x02,0x02,0x02,0x00,0x36,0xc2,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x45,0xc4,0xf0,0x00,0x45,0xc4,0xf0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+0x00,0x00,0x00,0x00,0x00,0x45,0xb5,0x60,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x02,
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0xc7,0x00,0xb8,0xff,0xff,0xff,0xff,
+};
+
+u8 Rtl8192SEFwMainArray[MainArrayLength] = {
+0x0, };
+
+u8 Rtl8192SEFwDataArray[DataArrayLength] = {
+0x0, };
+
+u32 Rtl8192SEPHY_REG_2T2RArray[PHY_REG_2T2RArrayLength] = {
+0x01c,0x07000000,
+0x800,0x00040000,
+0x804,0x00008003,
+0x808,0x0000fc00,
+0x80c,0x0000000a,
+0x810,0x10005088,
+0x814,0x020c3d10,
+0x818,0x00200185,
+0x81c,0x00000000,
+0x820,0x01000000,
+0x824,0x00390004,
+0x828,0x01000000,
+0x82c,0x00390004,
+0x830,0x00000004,
+0x834,0x00690200,
+0x838,0x00000004,
+0x83c,0x00690200,
+0x840,0x00010000,
+0x844,0x00010000,
+0x848,0x00000000,
+0x84c,0x00000000,
+0x850,0x00000000,
+0x854,0x00000000,
+0x858,0x48484848,
+0x85c,0x65a965a9,
+0x860,0x0f7f0130,
+0x864,0x0f7f0130,
+0x868,0x0f7f0130,
+0x86c,0x0f7f0130,
+0x870,0x03000700,
+0x874,0x03000300,
+0x878,0x00020002,
+0x87c,0x004f0201,
+0x880,0xa8300ac1,
+0x884,0x00000058,
+0x888,0x00000008,
+0x88c,0x00000004,
+0x890,0x00000000,
+0x894,0xfffffffe,
+0x898,0x40302010,
+0x89c,0x00706050,
+0x8b0,0x00000000,
+0x8e0,0x00000000,
+0x8e4,0x00000000,
+0xe00,0x30333333,
+0xe04,0x2a2d2e2f,
+0xe08,0x00003232,
+0xe10,0x30333333,
+0xe14,0x2a2d2e2f,
+0xe18,0x30333333,
+0xe1c,0x2a2d2e2f,
+0xe30,0x01007c00,
+0xe34,0x01004800,
+0xe38,0x1000dc1f,
+0xe3c,0x10008c1f,
+0xe40,0x021400a0,
+0xe44,0x281600a0,
+0xe48,0xf8000001,
+0xe4c,0x00002910,
+0xe50,0x01007c00,
+0xe54,0x01004800,
+0xe58,0x1000dc1f,
+0xe5c,0x10008c1f,
+0xe60,0x021400a0,
+0xe64,0x281600a0,
+0xe6c,0x00002910,
+0xe70,0x31ed92fb,
+0xe74,0x361536fb,
+0xe78,0x361536fb,
+0xe7c,0x361536fb,
+0xe80,0x361536fb,
+0xe84,0x000d92fb,
+0xe88,0x000d92fb,
+0xe8c,0x31ed92fb,
+0xed0,0x31ed92fb,
+0xed4,0x31ed92fb,
+0xed8,0x000d92fb,
+0xedc,0x000d92fb,
+0xee0,0x000d92fb,
+0xee4,0x015e5448,
+0xee8,0x21555448,
+0x900,0x00000000,
+0x904,0x00000023,
+0x908,0x00000000,
+0x90c,0x01121313,
+0xa00,0x00d047c8,
+0xa04,0x80ff0008,
+0xa08,0x88cd8300,
+0xa0c,0x2e62120f,
+0xa10,0x9500bb78,
+0xa14,0x11144028,
+0xa18,0x00881117,
+0xa1c,0x89140f00,
+0xa20,0x1a1b0000,
+0xa24,0x090e1317,
+0xa28,0x00000204,
+0xa2c,0x10d30000,
+0xc00,0x40071d40,
+0xc04,0x00a05633,
+0xc08,0x000000e4,
+0xc0c,0x6c6c6c6c,
+0xc10,0x08800000,
+0xc14,0x40000100,
+0xc18,0x08000000,
+0xc1c,0x40000100,
+0xc20,0x08000000,
+0xc24,0x40000100,
+0xc28,0x08000000,
+0xc2c,0x40000100,
+0xc30,0x6de9ac44,
+0xc34,0x469652cf,
+0xc38,0x49795994,
+0xc3c,0x0a979764,
+0xc40,0x1f7c403f,
+0xc44,0x000100b7,
+0xc48,0xec020000,
+0xc4c,0x007f037f,
+0xc50,0x69543420,
+0xc54,0x433c0094,
+0xc58,0x69543420,
+0xc5c,0x433c0094,
+0xc60,0x69543420,
+0xc64,0x433c0094,
+0xc68,0x69543420,
+0xc6c,0x433c0094,
+0xc70,0x2c7f000d,
+0xc74,0x0186175b,
+0xc78,0x0000001f,
+0xc7c,0x00b91612,
+0xc80,0x40000100,
+0xc84,0x20f60000,
+0xc88,0x20000080,
+0xc8c,0x20200000,
+0xc90,0x40000100,
+0xc94,0x00000000,
+0xc98,0x40000100,
+0xc9c,0x00000000,
+0xca0,0x00492492,
+0xca4,0x00000000,
+0xca8,0x00000000,
+0xcac,0x00000000,
+0xcb0,0x00000000,
+0xcb4,0x00000000,
+0xcb8,0x00000000,
+0xcbc,0x28000000,
+0xcc0,0x00000000,
+0xcc4,0x00000000,
+0xcc8,0x00000000,
+0xccc,0x00000000,
+0xcd0,0x00000000,
+0xcd4,0x00000000,
+0xcd8,0x64b22427,
+0xcdc,0x00766932,
+0xce0,0x00222222,
+0xce4,0x00000000,
+0xce8,0x37644302,
+0xcec,0x2f97d40c,
+0xd00,0x00000750,
+0xd04,0x00000403,
+0xd08,0x0000907f,
+0xd0c,0x00000001,
+0xd10,0xa0633333,
+0xd14,0x33333c63,
+0xd18,0x6a8f5b6b,
+0xd1c,0x00000000,
+0xd20,0x00000000,
+0xd24,0x00000000,
+0xd28,0x00000000,
+0xd2c,0xcc979975,
+0xd30,0x00000000,
+0xd34,0x00000000,
+0xd38,0x00000000,
+0xd3c,0x00027293,
+0xd40,0x00000000,
+0xd44,0x00000000,
+0xd48,0x00000000,
+0xd50,0x6437140a,
+0xd54,0x024dbd02,
+0xd58,0x00000000,
+0xd5c,0x30032064,
+0xd60,0x4653de68,
+0xd64,0x00518a3c,
+0xd68,0x00002101,
+0xf14,0x00000003,
+0xf4c,0x00000000,
+0xf00,0x00000300,
+};
+
+u32 Rtl8192SEPHY_REG_1T2RArray[PHY_REG_1T2RArrayLength] = {
+0x0, };
+
+u32 Rtl8192SEPHY_ChangeTo_1T1RArray[PHY_ChangeTo_1T1RArrayLength] = {
+0x844,0xffffffff,0x00010000,
+0x804,0x0000000f,0x00000001,
+0x824,0x00f0000f,0x00300004,
+0x82c,0x00f0000f,0x00100002,
+0x870,0x04000000,0x00000001,
+0x864,0x00000400,0x00000000,
+0x878,0x000f000f,0x00000002,
+0xe74,0x0f000000,0x00000002,
+0xe78,0x0f000000,0x00000002,
+0xe7c,0x0f000000,0x00000002,
+0xe80,0x0f000000,0x00000002,
+0x90c,0x000000ff,0x00000011,
+0xc04,0x000000ff,0x00000011,
+0xd04,0x0000000f,0x00000001,
+0x1f4,0xffff0000,0x00007777,
+0x234,0xf8000000,0x0000000a,
+};
+
+u32 Rtl8192SEPHY_ChangeTo_1T2RArray[PHY_ChangeTo_1T2RArrayLength] = {
+0x804,0x0000000f,0x00000003,
+0x824,0x00f0000f,0x00300004,
+0x82c,0x00f0000f,0x00300002,
+0x870,0x04000000,0x00000001,
+0x864,0x00000400,0x00000000,
+0x878,0x000f000f,0x00000002,
+0xe74,0x0f000000,0x00000002,
+0xe78,0x0f000000,0x00000002,
+0xe7c,0x0f000000,0x00000002,
+0xe80,0x0f000000,0x00000002,
+0x90c,0x000000ff,0x00000011,
+0xc04,0x000000ff,0x00000033,
+0xd04,0x0000000f,0x00000003,
+0x1f4,0xffff0000,0x00007777,
+0x234,0xf8000000,0x0000000a,
+};
+
+u32 Rtl8192SEPHY_ChangeTo_2T2RArray[PHY_ChangeTo_2T2RArrayLength] = {
+0x804,0x0000000f,0x00000003,
+0x824,0x00f0000f,0x00300004,
+0x82c,0x00f0000f,0x00300004,
+0x870,0x04000000,0x00000001,
+0x864,0x00000400,0x00000001,
+0x878,0x000f000f,0x00020002,
+0xe74,0x0f000000,0x00000006,
+0xe78,0x0f000000,0x00000006,
+0xe7c,0x0f000000,0x00000006,
+0xe80,0x0f000000,0x00000006,
+0x90c,0x000000ff,0x00000033,
+0xc04,0x000000ff,0x00000033,
+0xd04,0x0000000f,0x00000003,
+0x1f4,0xffff0000,0x0000ffff,
+0x234,0xf8000000,0x00000013,
+};
+
+u32 Rtl8192SEPHY_REG_Array_PG[PHY_REG_Array_PGLength] = {
+0xe00,0xffffffff,0x06090909,
+0xe04,0xffffffff,0x00030406,
+0xe08,0x0000ff00,0x00000000,
+0xe10,0xffffffff,0x0a0c0d0e,
+0xe14,0xffffffff,0x03040508,
+0xe18,0xffffffff,0x0a0c0d0e,
+0xe1c,0xffffffff,0x03040508,
+0xe00,0xffffffff,0x04040404,
+0xe04,0xffffffff,0x00020204,
+0xe08,0x0000ff00,0x00000000,
+0xe10,0xffffffff,0x02040404,
+0xe14,0xffffffff,0x00000002,
+0xe18,0xffffffff,0x02040404,
+0xe1c,0xffffffff,0x00000002,
+0xe00,0xffffffff,0x04040404,
+0xe04,0xffffffff,0x00020204,
+0xe08,0x0000ff00,0x00000000,
+0xe10,0xffffffff,0x02040404,
+0xe14,0xffffffff,0x00000002,
+0xe18,0xffffffff,0x02040404,
+0xe1c,0xffffffff,0x00000002,
+0xe00,0xffffffff,0x02020202,
+0xe04,0xffffffff,0x00020202,
+0xe08,0x0000ff00,0x00000000,
+0xe10,0xffffffff,0x02020202,
+0xe14,0xffffffff,0x00000002,
+0xe18,0xffffffff,0x02020202,
+0xe1c,0xffffffff,0x00000002,
+};
+
+u32 Rtl8192SERadioA_1T_Array[RadioA_1T_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00030250,
+0x002,0x00010000,
+0x010,0x0008000f,
+0x011,0x000231fc,
+0x010,0x000c000f,
+0x011,0x0003f9f8,
+0x010,0x0002000f,
+0x011,0x00020101,
+0x014,0x0001093e,
+0x014,0x0009093e,
+0x015,0x0000f8f4,
+0x017,0x000f6500,
+0x01a,0x00013056,
+0x01b,0x00060000,
+0x01c,0x00000300,
+0x01e,0x00031059,
+0x021,0x00054000,
+0x022,0x0000083c,
+0x023,0x00001558,
+0x024,0x00000060,
+0x025,0x00022583,
+0x026,0x0000f200,
+0x027,0x000eacf1,
+0x028,0x0009bd54,
+0x029,0x00004582,
+0x02a,0x00000001,
+0x02b,0x00021334,
+0x02a,0x00000000,
+0x02b,0x0000000a,
+0x02a,0x00000001,
+0x02b,0x00000808,
+0x02b,0x00053333,
+0x02c,0x0000000c,
+0x02a,0x00000002,
+0x02b,0x00000808,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000003,
+0x02b,0x00000808,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000004,
+0x02b,0x00000808,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000005,
+0x02b,0x00000709,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x00000006,
+0x02b,0x00000709,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000007,
+0x02b,0x00000709,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000008,
+0x02b,0x00000709,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000009,
+0x02b,0x0000060a,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000a,
+0x02b,0x0000060a,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x0000000b,
+0x02b,0x0000060a,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x0000000c,
+0x02b,0x0000060a,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x0000000d,
+0x02b,0x0000050b,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000e,
+0x02b,0x0000050b,
+0x02b,0x00066623,
+0x02c,0x0000001a,
+0x02a,0x000e4000,
+0x030,0x00020000,
+0x031,0x000b9631,
+0x032,0x0000130d,
+0x033,0x00000187,
+0x013,0x00019e6c,
+0x013,0x00015e94,
+0x000,0x00010159,
+0x018,0x0000f401,
+0x0fe,0x00000000,
+0x01e,0x0003105b,
+0x0fe,0x00000000,
+0x000,0x00030159,
+0x010,0x0004000f,
+0x011,0x000203f9,
+};
+
+u32 Rtl8192SERadioB_Array[RadioB_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00001041,
+0x002,0x00011000,
+0x005,0x00080fc0,
+0x007,0x000fc803,
+0x013,0x00017cb0,
+0x013,0x00011cc0,
+0x013,0x0000dc60,
+0x013,0x00008c60,
+0x013,0x00004450,
+0x013,0x00000020,
+};
+
+u32 Rtl8192SERadioA_to1T_Array[RadioA_to1T_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00030250,
+0x002,0x00010000,
+0x010,0x0008000f,
+0x011,0x000231fc,
+0x010,0x000c000f,
+0x011,0x0003f9f8,
+0x014,0x0001093e,
+0x014,0x0009093e,
+0x015,0x000198f4,
+0x017,0x000f6500,
+0x01a,0x00013056,
+0x01b,0x00060000,
+0x01c,0x00000300,
+0x01e,0x00031059,
+0x021,0x00054000,
+0x022,0x0000083c,
+0x023,0x00001558,
+0x024,0x00000060,
+0x025,0x00022583,
+0x026,0x0000f200,
+0x027,0x000eacf1,
+0x028,0x000dbd54,
+0x029,0x00004582,
+0x02a,0x00000001,
+0x02b,0x00021334,
+0x02a,0x00000000,
+0x02b,0x0000000a,
+0x02a,0x00000001,
+0x02b,0x00000808,
+0x02b,0x00053333,
+0x02c,0x0000000c,
+0x02a,0x00000002,
+0x02b,0x00000808,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000003,
+0x02b,0x00000808,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000004,
+0x02b,0x00000808,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000005,
+0x02b,0x00000709,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x00000006,
+0x02b,0x00000709,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000007,
+0x02b,0x00000709,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000008,
+0x02b,0x00000709,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000009,
+0x02b,0x0000060a,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000a,
+0x02b,0x0000060a,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x0000000b,
+0x02b,0x0000060a,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x0000000c,
+0x02b,0x0000060a,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x0000000d,
+0x02b,0x0000050b,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000e,
+0x02b,0x0000050b,
+0x02b,0x00066623,
+0x02c,0x0000001a,
+0x02a,0x000e4000,
+0x030,0x00020000,
+0x031,0x000b9631,
+0x033,0x00000187,
+0x013,0x00019e6c,
+0x013,0x00015e94,
+0x000,0x00010159,
+0x018,0x0000f401,
+0x0fe,0x00000000,
+0x01e,0x0003105b,
+0x0fe,0x00000000,
+0x000,0x00030159,
+0x010,0x0004000f,
+0x011,0x000203f9,
+};
+
+u32 Rtl8192SERadioA_to2T_Array[RadioA_to2T_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00030250,
+0x002,0x00010000,
+0x010,0x0008000f,
+0x011,0x000231fc,
+0x010,0x000c000f,
+0x011,0x0003f9f8,
+0x014,0x0001093e,
+0x014,0x0009093e,
+0x015,0x000198f4,
+0x017,0x000f6500,
+0x01a,0x00013056,
+0x01b,0x00060000,
+0x01c,0x00000300,
+0x01e,0x00031059,
+0x021,0x00054000,
+0x022,0x0000083c,
+0x023,0x00001558,
+0x024,0x00000060,
+0x025,0x00022583,
+0x026,0x0000f200,
+0x027,0x000eacf1,
+0x028,0x000dbd54,
+0x029,0x00004582,
+0x02a,0x00000001,
+0x02b,0x00021334,
+0x02a,0x00000000,
+0x02b,0x0000000a,
+0x02a,0x00000001,
+0x02b,0x00000808,
+0x02b,0x00053333,
+0x02c,0x0000000c,
+0x02a,0x00000002,
+0x02b,0x00000808,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000003,
+0x02b,0x00000808,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000004,
+0x02b,0x00000808,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000005,
+0x02b,0x00000709,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x00000006,
+0x02b,0x00000709,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x00000007,
+0x02b,0x00000709,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x00000008,
+0x02b,0x00000709,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x00000009,
+0x02b,0x0000060a,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000a,
+0x02b,0x0000060a,
+0x02b,0x0005b333,
+0x02c,0x0000000d,
+0x02a,0x0000000b,
+0x02b,0x0000060a,
+0x02b,0x00063333,
+0x02c,0x0000000d,
+0x02a,0x0000000c,
+0x02b,0x0000060a,
+0x02b,0x0006b333,
+0x02c,0x0000000d,
+0x02a,0x0000000d,
+0x02b,0x0000050b,
+0x02b,0x00053333,
+0x02c,0x0000000d,
+0x02a,0x0000000e,
+0x02b,0x0000050b,
+0x02b,0x00066623,
+0x02c,0x0000001a,
+0x02a,0x000e4000,
+0x030,0x00020000,
+0x031,0x000b9631,
+0x033,0x00000187,
+0x013,0x00019e6c,
+0x013,0x00015e94,
+0x000,0x00010159,
+0x018,0x0000f401,
+0x0fe,0x00000000,
+0x01e,0x0003105b,
+0x0fe,0x00000000,
+0x000,0x00030159,
+0x010,0x0004000f,
+0x011,0x000203f9,
+};
+
+u32 Rtl8192SERadioB_GM_Array[RadioB_GM_ArrayLength] = {
+0x000,0x00030159,
+0x001,0x00001041,
+0x002,0x00011000,
+0x005,0x00080fc0,
+0x007,0x000fc803,
+};
+
+u32 Rtl8192SEMAC_2T_Array[MAC_2T_ArrayLength] = {
+0x020,0x00000035,
+0x048,0x0000000e,
+0x049,0x000000f0,
+0x04a,0x00000077,
+0x04b,0x00000083,
+0x0b5,0x00000021,
+0x0dc,0x000000ff,
+0x0dd,0x000000ff,
+0x0de,0x000000ff,
+0x0df,0x000000ff,
+0x116,0x00000000,
+0x117,0x00000000,
+0x118,0x00000000,
+0x119,0x00000000,
+0x11a,0x00000000,
+0x11b,0x00000000,
+0x11c,0x00000000,
+0x11d,0x00000000,
+0x160,0x0000000b,
+0x161,0x0000000b,
+0x162,0x0000000b,
+0x163,0x0000000b,
+0x164,0x0000000b,
+0x165,0x0000000b,
+0x166,0x0000000b,
+0x167,0x0000000b,
+0x168,0x0000000b,
+0x169,0x0000000b,
+0x16a,0x0000000b,
+0x16b,0x0000000b,
+0x16c,0x0000000b,
+0x16d,0x0000000b,
+0x16e,0x0000000b,
+0x16f,0x0000000b,
+0x170,0x0000000b,
+0x171,0x0000000b,
+0x172,0x0000000b,
+0x173,0x0000000b,
+0x174,0x0000000b,
+0x175,0x0000000b,
+0x176,0x0000000b,
+0x177,0x0000000b,
+0x178,0x0000000b,
+0x179,0x0000000b,
+0x17a,0x0000000b,
+0x17b,0x0000000b,
+0x17c,0x0000000b,
+0x17d,0x0000000b,
+0x17e,0x0000000b,
+0x17f,0x0000000b,
+0x236,0x0000000c,
+0x503,0x00000022,
+0x560,0x00000000,
+};
+
+u32 Rtl8192SEMACPHY_Array_PG[MACPHY_Array_PGLength] = {
+0x0, };
+
+u32 Rtl8192SEAGCTAB_Array[AGCTAB_ArrayLength] = {
+0xc78,0x7f000001,
+0xc78,0x7f010001,
+0xc78,0x7e020001,
+0xc78,0x7d030001,
+0xc78,0x7c040001,
+0xc78,0x7b050001,
+0xc78,0x7a060001,
+0xc78,0x79070001,
+0xc78,0x78080001,
+0xc78,0x77090001,
+0xc78,0x760a0001,
+0xc78,0x750b0001,
+0xc78,0x740c0001,
+0xc78,0x730d0001,
+0xc78,0x720e0001,
+0xc78,0x710f0001,
+0xc78,0x70100001,
+0xc78,0x6f110001,
+0xc78,0x6f120001,
+0xc78,0x6e130001,
+0xc78,0x6d140001,
+0xc78,0x6d150001,
+0xc78,0x6c160001,
+0xc78,0x6b170001,
+0xc78,0x6a180001,
+0xc78,0x6a190001,
+0xc78,0x691a0001,
+0xc78,0x681b0001,
+0xc78,0x671c0001,
+0xc78,0x661d0001,
+0xc78,0x651e0001,
+0xc78,0x641f0001,
+0xc78,0x63200001,
+0xc78,0x4c210001,
+0xc78,0x4b220001,
+0xc78,0x4a230001,
+0xc78,0x49240001,
+0xc78,0x48250001,
+0xc78,0x47260001,
+0xc78,0x46270001,
+0xc78,0x45280001,
+0xc78,0x44290001,
+0xc78,0x2c2a0001,
+0xc78,0x2b2b0001,
+0xc78,0x2a2c0001,
+0xc78,0x292d0001,
+0xc78,0x282e0001,
+0xc78,0x272f0001,
+0xc78,0x26300001,
+0xc78,0x25310001,
+0xc78,0x24320001,
+0xc78,0x23330001,
+0xc78,0x22340001,
+0xc78,0x09350001,
+0xc78,0x08360001,
+0xc78,0x07370001,
+0xc78,0x06380001,
+0xc78,0x05390001,
+0xc78,0x043a0001,
+0xc78,0x033b0001,
+0xc78,0x023c0001,
+0xc78,0x013d0001,
+0xc78,0x003e0001,
+0xc78,0x003f0001,
+0xc78,0x7f400001,
+0xc78,0x7f410001,
+0xc78,0x7e420001,
+0xc78,0x7d430001,
+0xc78,0x7c440001,
+0xc78,0x7b450001,
+0xc78,0x7a460001,
+0xc78,0x79470001,
+0xc78,0x78480001,
+0xc78,0x77490001,
+0xc78,0x764a0001,
+0xc78,0x754b0001,
+0xc78,0x744c0001,
+0xc78,0x734d0001,
+0xc78,0x724e0001,
+0xc78,0x714f0001,
+0xc78,0x70500001,
+0xc78,0x6f510001,
+0xc78,0x6f520001,
+0xc78,0x6e530001,
+0xc78,0x6d540001,
+0xc78,0x6d550001,
+0xc78,0x6c560001,
+0xc78,0x6b570001,
+0xc78,0x6a580001,
+0xc78,0x6a590001,
+0xc78,0x695a0001,
+0xc78,0x685b0001,
+0xc78,0x675c0001,
+0xc78,0x665d0001,
+0xc78,0x655e0001,
+0xc78,0x645f0001,
+0xc78,0x63600001,
+0xc78,0x4c610001,
+0xc78,0x4b620001,
+0xc78,0x4a630001,
+0xc78,0x49640001,
+0xc78,0x48650001,
+0xc78,0x47660001,
+0xc78,0x46670001,
+0xc78,0x45680001,
+0xc78,0x44690001,
+0xc78,0x2c6a0001,
+0xc78,0x2b6b0001,
+0xc78,0x2a6c0001,
+0xc78,0x296d0001,
+0xc78,0x286e0001,
+0xc78,0x276f0001,
+0xc78,0x26700001,
+0xc78,0x25710001,
+0xc78,0x24720001,
+0xc78,0x23730001,
+0xc78,0x22740001,
+0xc78,0x09750001,
+0xc78,0x08760001,
+0xc78,0x07770001,
+0xc78,0x06780001,
+0xc78,0x05790001,
+0xc78,0x047a0001,
+0xc78,0x037b0001,
+0xc78,0x027c0001,
+0xc78,0x017d0001,
+0xc78,0x007e0001,
+0xc78,0x007f0001,
+0xc78,0x3000001e,
+0xc78,0x3001001e,
+0xc78,0x3002001e,
+0xc78,0x3003001e,
+0xc78,0x3004001e,
+0xc78,0x3405001e,
+0xc78,0x3806001e,
+0xc78,0x3e07001e,
+0xc78,0x3e08001e,
+0xc78,0x4409001e,
+0xc78,0x460a001e,
+0xc78,0x480b001e,
+0xc78,0x480c001e,
+0xc78,0x4e0d001e,
+0xc78,0x560e001e,
+0xc78,0x5a0f001e,
+0xc78,0x5e10001e,
+0xc78,0x6211001e,
+0xc78,0x6c12001e,
+0xc78,0x7213001e,
+0xc78,0x7214001e,
+0xc78,0x7215001e,
+0xc78,0x7216001e,
+0xc78,0x7217001e,
+0xc78,0x7218001e,
+0xc78,0x7219001e,
+0xc78,0x721a001e,
+0xc78,0x721b001e,
+0xc78,0x721c001e,
+0xc78,0x721d001e,
+0xc78,0x721e001e,
+0xc78,0x721f001e,
+};
+
+#endif
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg74.h b/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg74.h
new file mode 100755
index 00000000000..fef006c1521
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_hwimg74.h
@@ -0,0 +1,60 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef __INC_HAL8192SE_FW_IMG_H
+#define __INC_HAL8192SE_FW_IMG_H
+
+/*Created on 2009/11/17, 16:15*/
+
+#include <linux/types.h>
+#define ImgArrayLength 88592
+extern u8 Rtl8192SEFwImgArray[ImgArrayLength];
+#define MainArrayLength 1
+extern u8 Rtl8192SEFwMainArray[MainArrayLength];
+#define DataArrayLength 1
+extern u8 Rtl8192SEFwDataArray[DataArrayLength];
+#define PHY_REG_2T2RArrayLength 372
+extern u32 Rtl8192SEPHY_REG_2T2RArray[PHY_REG_2T2RArrayLength];
+#define PHY_REG_1T2RArrayLength 1
+extern u32 Rtl8192SEPHY_REG_1T2RArray[PHY_REG_1T2RArrayLength];
+#define PHY_ChangeTo_1T1RArrayLength 48
+extern u32 Rtl8192SEPHY_ChangeTo_1T1RArray[PHY_ChangeTo_1T1RArrayLength];
+#define PHY_ChangeTo_1T2RArrayLength 45
+extern u32 Rtl8192SEPHY_ChangeTo_1T2RArray[PHY_ChangeTo_1T2RArrayLength];
+#define PHY_ChangeTo_2T2RArrayLength 45
+extern u32 Rtl8192SEPHY_ChangeTo_2T2RArray[PHY_ChangeTo_2T2RArrayLength];
+#define PHY_REG_Array_PGLength 84
+extern u32 Rtl8192SEPHY_REG_Array_PG[PHY_REG_Array_PGLength];
+#define RadioA_1T_ArrayLength 202
+extern u32 Rtl8192SERadioA_1T_Array[RadioA_1T_ArrayLength];
+#define RadioB_ArrayLength 22
+extern u32 Rtl8192SERadioB_Array[RadioB_ArrayLength];
+#define RadioA_to1T_ArrayLength 196
+extern u32 Rtl8192SERadioA_to1T_Array[RadioA_to1T_ArrayLength];
+#define RadioA_to2T_ArrayLength 196
+extern u32 Rtl8192SERadioA_to2T_Array[RadioA_to2T_ArrayLength];
+#define RadioB_GM_ArrayLength 10
+extern u32 Rtl8192SERadioB_GM_Array[RadioB_GM_ArrayLength];
+#define MAC_2T_ArrayLength 106
+extern u32 Rtl8192SEMAC_2T_Array[MAC_2T_ArrayLength];
+#define MACPHY_Array_PGLength 1
+extern u32 Rtl8192SEMACPHY_Array_PG[MACPHY_Array_PGLength];
+#define AGCTAB_ArrayLength 320
+extern u32 Rtl8192SEAGCTAB_Array[AGCTAB_ArrayLength];
+
+#endif
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_led.c b/ubuntu/rtl8192se/rtl8192s/r8192S_led.c
new file mode 100755
index 00000000000..ad18a15f2a2
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_led.c
@@ -0,0 +1,1356 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#include "../rtl_core.h"
+#ifdef RTL8192SE
+#define LED_BLINK_NORMAL_INTERVAL 100
+#define LED_BLINK_SLOWLY_INTERVAL 200
+
+#define LED_BLINK_NORMAL_INTERVAL_NETTRONIX 100
+#define LED_BLINK_SLOWLY_INTERVAL_NETTRONIX 2000
+
+#define LED_BLINK_SLOWLY_INTERVAL_PORNET 1000
+#define LED_BLINK_NORMAL_INTERVAL_PORNET 100
+
+
+#define LED_CM2_BLINK_ON_INTERVAL 250
+#define LED_CM2_BLINK_OFF_INTERVAL 4750
+
+#define LED_CM8_BLINK_OFF_INTERVAL 3750
+
+#define LED_RunTop_BLINK_INTERVAL 300
+
+#define LED_CM3_BLINK_INTERVAL 1500
+
+
+
+static void BlinkTimerCallback(unsigned long data);
+
+
+void InitLed8190Pci(struct net_device *dev, PLED_8190 pLed,LED_PIN_8190 LedPin)
+{
+ pLed->dev = dev;
+ pLed->LedPin = LedPin;
+
+ pLed->CurrLedState = LED_OFF;
+ pLed->bLedOn = false;
+ pLed->bLedBlinkInProgress = false;
+ pLed->BlinkTimes = 0;
+ pLed->BlinkingLedState = LED_OFF;
+
+ setup_timer(&pLed->BlinkTimer,
+ BlinkTimerCallback,
+ (unsigned long) pLed);
+}
+
+void DeInitLed8190Pci(PLED_8190 pLed)
+{
+ del_timer_sync(&(pLed->BlinkTimer));
+ pLed->bLedBlinkInProgress = false;
+}
+
+void SwLedOn( struct net_device *dev , PLED_8190 pLed)
+{
+ u8 LedCfg;
+
+ LedCfg = read_nic_byte(dev, LEDCFG);
+
+ switch(pLed->LedPin)
+ {
+ case LED_PIN_GPIO0:
+ break;
+
+ case LED_PIN_LED0:
+ write_nic_byte(dev, LEDCFG, LedCfg&0xf0);
+ break;
+
+ case LED_PIN_LED1:
+ write_nic_byte(dev, LEDCFG, LedCfg&0x0f);
+ break;
+
+ default:
+ break;
+ }
+
+ pLed->bLedOn = true;
+}
+
+void SwLedOff(struct net_device *dev, PLED_8190 pLed)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 LedCfg;
+
+ LedCfg = read_nic_byte(dev, LEDCFG);
+
+ switch(pLed->LedPin)
+ {
+ case LED_PIN_GPIO0:
+ break;
+
+ case LED_PIN_LED0:
+ LedCfg &= 0xf0;
+
+ if(priv->bLedOpenDrain == true)
+ write_nic_byte(dev, LEDCFG, (LedCfg|BIT1));
+ else
+ write_nic_byte(dev, LEDCFG, (LedCfg|BIT3));
+ break;
+
+ case LED_PIN_LED1:
+ LedCfg &= 0x0f;
+ write_nic_byte(dev, LEDCFG, (LedCfg|BIT7));
+ break;
+
+ default:
+ break;
+ }
+
+ pLed->bLedOn = false;
+}
+
+
+void InitSwLeds(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ InitLed8190Pci(
+ dev,
+ &(priv->SwLed0),
+ LED_PIN_LED0);
+
+ InitLed8190Pci(
+ dev,
+ &(priv->SwLed1),
+ LED_PIN_LED1);
+}
+
+
+void DeInitSwLeds(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ DeInitLed8190Pci( &(priv->SwLed0) );
+ DeInitLed8190Pci( &(priv->SwLed1) );
+}
+
+void HwLedBlink(struct net_device *dev, PLED_8190 pLed)
+{
+
+
+ switch(pLed->LedPin)
+ {
+ case LED_PIN_GPIO0:
+ break;
+
+ case LED_PIN_LED0:
+ break;
+
+ case LED_PIN_LED1:
+ break;
+
+ default:
+ break;
+ }
+
+ pLed->bLedOn = true;
+}
+
+
+
+void SwLedBlink(PLED_8190 pLed)
+{
+ struct net_device *dev = (struct net_device *)pLed->dev;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool bStopBlinking = false;
+
+ if( pLed->BlinkingLedState == LED_ON )
+ {
+ SwLedOn(dev, pLed);
+ RT_TRACE(COMP_LED, "Blinktimes (%d): turn on\n", pLed->BlinkTimes);
+ }
+ else
+ {
+ SwLedOff(dev, pLed);
+ RT_TRACE(COMP_LED, "Blinktimes (%d): turn off\n", pLed->BlinkTimes);
+ }
+
+ pLed->BlinkTimes--;
+ switch(pLed->CurrLedState)
+ {
+ case LED_BLINK_NORMAL:
+ case LED_BLINK_TXRX:
+ case LED_BLINK_RUNTOP:
+ if(pLed->BlinkTimes == 0)
+ {
+ bStopBlinking = true;
+ }
+ break;
+
+ case LED_SCAN_BLINK:
+ if( (priv->rtllib->state == RTLLIB_LINKED) &&
+ (!rtllib_act_scanning(priv->rtllib,true))&&
+ (pLed->BlinkTimes % 2 == 0))
+ {
+ bStopBlinking = true;
+ }
+ break;
+
+ case LED_NO_LINK_BLINK:
+ case LED_BLINK_StartToBlink:
+ if( (priv->rtllib->state == RTLLIB_LINKED) && (priv->rtllib->iw_mode == IW_MODE_INFRA))
+ {
+ bStopBlinking = true;
+ }
+ else if((priv->rtllib->state == RTLLIB_LINKED) && (priv->rtllib->iw_mode == IW_MODE_ADHOC))
+ {
+ bStopBlinking = true;
+ }
+ else if(pLed->BlinkTimes == 0)
+ {
+ bStopBlinking = true;
+ }
+ break;
+
+ case LED_BLINK_CAMEO:
+ if((priv->rtllib->state == RTLLIB_LINKED) && (priv->rtllib->iw_mode == IW_MODE_INFRA))
+ {
+ bStopBlinking = true;
+ }
+ else if((priv->rtllib->state == RTLLIB_LINKED) && (priv->rtllib->iw_mode == IW_MODE_ADHOC) )
+ {
+ bStopBlinking = true;
+ }
+ break;
+
+ default:
+ bStopBlinking = true;
+ break;
+ }
+
+ if(bStopBlinking)
+ {
+ if( priv->rtllib->eRFPowerState != eRfOn )
+ {
+ SwLedOff(dev, pLed);
+ }
+ else if(pLed->CurrLedState == LED_BLINK_TXRX)
+ {
+ SwLedOff(dev, pLed);
+ }
+ else if(pLed->CurrLedState == LED_BLINK_RUNTOP)
+ {
+ SwLedOff(dev, pLed);
+ }
+ else if( (priv->rtllib->state == RTLLIB_LINKED) && (pLed->bLedOn == false))
+ {
+ SwLedOn(dev, pLed);
+ }
+ else if( (priv->rtllib->state != RTLLIB_LINKED) && pLed->bLedOn == true)
+ {
+ SwLedOff(dev, pLed);
+ }
+
+ pLed->BlinkTimes = 0;
+ pLed->bLedBlinkInProgress = false;
+ }
+ else
+ {
+ if( pLed->BlinkingLedState == LED_ON )
+ pLed->BlinkingLedState = LED_OFF;
+ else
+ pLed->BlinkingLedState = LED_ON;
+
+ switch( pLed->CurrLedState )
+ {
+ case LED_BLINK_NORMAL:
+ case LED_BLINK_TXRX:
+ case LED_BLINK_StartToBlink:
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL));
+ break;
+
+ case LED_BLINK_SLOWLY:
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL));
+ break;
+
+ case LED_SCAN_BLINK:
+ case LED_NO_LINK_BLINK:
+ if( pLed->bLedOn )
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_ON_INTERVAL));
+ else
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_OFF_INTERVAL));
+ break;
+
+ case LED_BLINK_RUNTOP:
+ mod_timer(&(pLed->BlinkTimer),jiffies + MSECS(LED_RunTop_BLINK_INTERVAL));
+ break;
+
+ case LED_BLINK_CAMEO:
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_PORNET));
+ break;
+
+ default:
+ RT_TRACE(COMP_ERR, "SwLedCm2Blink(): unexpected state!\n");
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL));
+ break;
+ }
+ }
+}
+
+void SwLedBlink5(PLED_8190 pLed)
+{
+ struct net_device *dev = (struct net_device *)pLed->dev;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool bStopBlinking = false;
+
+ if( pLed->BlinkingLedState == LED_ON )
+ {
+ SwLedOn(dev, pLed);
+ RT_TRACE(COMP_LED, "Blinktimes (%d): turn on\n", pLed->BlinkTimes);
+ }
+ else
+ {
+ SwLedOff(dev, pLed);
+ RT_TRACE(COMP_LED, "Blinktimes (%d): turn off\n", pLed->BlinkTimes);
+ }
+
+ switch(pLed->CurrLedState)
+ {
+ case LED_OFF:
+ SwLedOff(dev, pLed);
+ break;
+
+ case LED_BLINK_SLOWLY:
+ if( pLed->bLedOn )
+ pLed->BlinkingLedState = LED_OFF;
+ else
+ pLed->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_NETTRONIX));
+ break;
+
+ case LED_BLINK_NORMAL:
+ pLed->BlinkTimes--;
+ if( pLed->BlinkTimes == 0 )
+ {
+ bStopBlinking = true;
+ }
+ if(bStopBlinking)
+ {
+ if( priv->rtllib->eRFPowerState != eRfOn )
+ {
+ SwLedOff(dev, pLed);
+ }
+ else
+ {
+ pLed->bLedSlowBlinkInProgress = true;
+ pLed->CurrLedState = LED_BLINK_SLOWLY;
+ if( pLed->bLedOn )
+ pLed->BlinkingLedState = LED_OFF;
+ else
+ pLed->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_NETTRONIX));
+ }
+ pLed->BlinkTimes = 0;
+ pLed->bLedBlinkInProgress = false;
+ }
+ else
+ {
+ if( priv->rtllib->eRFPowerState != eRfOn )
+ {
+ SwLedOff(dev, pLed);
+ }
+ else
+ {
+ if( pLed->bLedOn )
+ pLed->BlinkingLedState = LED_OFF;
+ else
+ pLed->BlinkingLedState = LED_ON;
+
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL_NETTRONIX));
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+}
+
+
+void SwLedBlink6(PLED_8190 pLed)
+{
+ struct net_device *dev = (struct net_device *)pLed->dev;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool bStopBlinking = false;
+
+ if( pLed->BlinkingLedState == LED_ON )
+ {
+ SwLedOn(dev, pLed);
+ RT_TRACE(COMP_LED, "Blinktimes (%d): turn on\n", pLed->BlinkTimes);
+ }
+ else
+ {
+ SwLedOff(dev, pLed);
+ RT_TRACE(COMP_LED, "Blinktimes (%d): turn off\n", pLed->BlinkTimes);
+ }
+
+ switch(pLed->CurrLedState)
+ {
+ case LED_OFF:
+ SwLedOff(dev, pLed);
+ break;
+
+ case LED_BLINK_SLOWLY:
+ if( pLed->bLedOn )
+ pLed->BlinkingLedState = LED_OFF;
+ else
+ pLed->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_PORNET));
+ break;
+
+ case LED_BLINK_NORMAL:
+ pLed->BlinkTimes--;
+ if( pLed->BlinkTimes == 0 )
+ {
+ bStopBlinking = true;
+ }
+ if(bStopBlinking)
+ {
+ if( priv->rtllib->eRFPowerState != eRfOn )
+ {
+ SwLedOff(dev, pLed);
+ }
+ else
+ {
+ pLed->bLedSlowBlinkInProgress = true;
+ pLed->CurrLedState = LED_BLINK_SLOWLY;
+ if( pLed->bLedOn )
+ pLed->BlinkingLedState = LED_OFF;
+ else
+ pLed->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_PORNET));
+ }
+ pLed->BlinkTimes = 0;
+ pLed->bLedBlinkInProgress = false;
+ }
+ else
+ {
+ if( priv->rtllib->eRFPowerState != eRfOn )
+ {
+ SwLedOff(dev, pLed);
+ }
+ else
+ {
+ if( pLed->bLedOn )
+ pLed->BlinkingLedState = LED_OFF;
+ else
+ pLed->BlinkingLedState = LED_ON;
+
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL_PORNET));
+ }
+ }
+ break;
+
+ default:
+ break;
+ }
+
+}
+
+void SwLedBlink7( PLED_8190 pLed)
+{
+ struct net_device *dev = (struct net_device *)pLed->dev;
+
+ SwLedOn(dev, pLed);
+ RT_TRACE(COMP_LED, "Blinktimes (%d): turn on\n", pLed->BlinkTimes);
+}
+
+void BlinkTimerCallback(unsigned long data)
+{
+ PLED_8190 pLed = (PLED_8190)data;
+ struct net_device *dev = (struct net_device *)pLed->dev;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ switch(priv->LedStrategy)
+ {
+ case SW_LED_MODE1:
+ break;
+ case SW_LED_MODE2:
+ break;
+ case SW_LED_MODE3:
+ break;
+ case SW_LED_MODE5:
+ break;
+ case SW_LED_MODE6:
+ break;
+
+ case SW_LED_MODE7:
+ SwLedBlink7(pLed);
+ break;
+
+ default:
+ break;
+ }
+}
+
+void SwLedControlMode0(struct net_device *dev,LED_CTL_MODE LedAction)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PLED_8190 pLed0 = &(priv->SwLed0);
+ PLED_8190 pLed1 = &(priv->SwLed1);
+
+ switch(LedAction)
+ {
+ case LED_CTL_TX:
+ case LED_CTL_RX:
+ break;
+
+ case LED_CTL_LINK:
+ pLed0->CurrLedState = LED_ON;
+ SwLedOn(dev, pLed0);
+
+ pLed1->CurrLedState = LED_BLINK_NORMAL;
+ HwLedBlink(dev, pLed1);
+ break;
+
+ case LED_CTL_POWER_ON:
+ pLed0->CurrLedState = LED_OFF;
+ SwLedOff(dev, pLed0);
+
+ pLed1->CurrLedState = LED_BLINK_NORMAL;
+ HwLedBlink(dev, pLed1);
+
+ break;
+
+ case LED_CTL_POWER_OFF:
+ pLed0->CurrLedState = LED_OFF;
+ SwLedOff(dev, pLed0);
+
+ pLed1->CurrLedState = LED_OFF;
+ SwLedOff(dev, pLed1);
+ break;
+
+ case LED_CTL_SITE_SURVEY:
+ break;
+
+ case LED_CTL_NO_LINK:
+ pLed0->CurrLedState = LED_OFF;
+ SwLedOff(dev, pLed0);
+
+ pLed1->CurrLedState = LED_BLINK_NORMAL;
+ HwLedBlink(dev, pLed1);
+ break;
+
+ default:
+ break;
+ }
+
+ RT_TRACE(COMP_LED, "Led0 %d Led1 %d\n", pLed0->CurrLedState, pLed1->CurrLedState);
+}
+
+
+void SwLedControlMode1(struct net_device *dev, LED_CTL_MODE LedAction)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PLED_8190 pLed = &(priv->SwLed1);
+
+ switch(LedAction)
+ {
+ case LED_CTL_TX:
+ case LED_CTL_RX:
+ if( pLed->bLedBlinkInProgress == false )
+ {
+ pLed->bLedBlinkInProgress = true;
+
+ pLed->CurrLedState = LED_BLINK_NORMAL;
+ pLed->BlinkTimes = 2;
+
+ if( pLed->bLedOn )
+ pLed->BlinkingLedState = LED_OFF;
+ else
+ pLed->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL));
+ }
+ break;
+
+ case LED_CTL_SITE_SURVEY:
+ if( pLed->bLedBlinkInProgress == false )
+ {
+ pLed->bLedBlinkInProgress = true;
+
+ if(priv->rtllib->state == RTLLIB_LINKED)
+ {
+ pLed->CurrLedState = LED_SCAN_BLINK;
+ pLed->BlinkTimes = 4;
+ }
+ else
+ {
+ pLed->CurrLedState = LED_NO_LINK_BLINK;
+ pLed->BlinkTimes = 24;
+ }
+
+ if( pLed->bLedOn )
+ {
+ pLed->BlinkingLedState = LED_OFF;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_ON_INTERVAL));
+ }
+ else
+ {
+ pLed->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_OFF_INTERVAL));
+ }
+ }
+ else
+ {
+ if(pLed->CurrLedState != LED_NO_LINK_BLINK)
+ {
+ if(priv->rtllib->state == RTLLIB_LINKED)
+ {
+ pLed->CurrLedState = LED_SCAN_BLINK;
+ }
+ else
+ {
+ pLed->CurrLedState = LED_NO_LINK_BLINK;
+ }
+ }
+ }
+ break;
+
+ case LED_CTL_NO_LINK:
+ if( pLed->bLedBlinkInProgress == false )
+ {
+ pLed->bLedBlinkInProgress = true;
+
+ pLed->CurrLedState = LED_NO_LINK_BLINK;
+ pLed->BlinkTimes = 24;
+
+ if( pLed->bLedOn )
+ {
+ pLed->BlinkingLedState = LED_OFF;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_ON_INTERVAL));
+ }
+ else
+ {
+ pLed->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_OFF_INTERVAL));
+ }
+ }
+ else
+ {
+ pLed->CurrLedState = LED_NO_LINK_BLINK;
+ }
+ break;
+
+ case LED_CTL_LINK:
+ pLed->CurrLedState = LED_ON;
+ if( pLed->bLedBlinkInProgress == false )
+ {
+ SwLedOn(dev, pLed);
+ }
+ break;
+
+ case LED_CTL_POWER_OFF:
+ pLed->CurrLedState = LED_OFF;
+ if(pLed->bLedBlinkInProgress)
+ {
+ del_timer_sync(&(pLed->BlinkTimer));
+ pLed->bLedBlinkInProgress = false;
+ }
+ SwLedOff(dev, pLed);
+ break;
+
+ default:
+ break;
+ }
+
+ RT_TRACE(COMP_LED, "Led %d \n", pLed->CurrLedState);
+}
+
+void SwLedControlMode2(struct net_device *dev, LED_CTL_MODE LedAction)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PLED_8190 pLed0 = &(priv->SwLed0);
+ PLED_8190 pLed1 = &(priv->SwLed1);
+
+ switch(LedAction)
+ {
+ case LED_CTL_POWER_ON:
+ pLed0->CurrLedState = LED_OFF;
+ SwLedOff(dev, pLed0);
+
+ pLed1->CurrLedState = LED_BLINK_CAMEO;
+ if( pLed1->bLedBlinkInProgress == false )
+ {
+ pLed1->bLedBlinkInProgress = true;
+
+ pLed1->BlinkTimes = 6;
+
+ if( pLed1->bLedOn )
+ pLed1->BlinkingLedState = LED_OFF;
+ else
+ pLed1->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed1->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_PORNET));
+ }
+ break;
+
+ case LED_CTL_TX:
+ case LED_CTL_RX:
+ if( pLed0->bLedBlinkInProgress == false )
+ {
+ pLed0->bLedBlinkInProgress = true;
+
+ pLed0->CurrLedState = LED_BLINK_TXRX;
+ pLed0->BlinkTimes = 2;
+
+ if( pLed0->bLedOn )
+ pLed0->BlinkingLedState = LED_OFF;
+ else
+ pLed0->BlinkingLedState = LED_ON;
+
+ mod_timer(&(pLed0->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL));
+ }
+ break;
+
+ case LED_CTL_NO_LINK:
+ pLed1->CurrLedState = LED_BLINK_CAMEO;
+ if( pLed1->bLedBlinkInProgress == false )
+ {
+ pLed1->bLedBlinkInProgress = true;
+
+ pLed1->BlinkTimes = 6;
+
+ if( pLed1->bLedOn )
+ pLed1->BlinkingLedState = LED_OFF;
+ else
+ pLed1->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed1->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_PORNET));
+ }
+ break;
+
+ case LED_CTL_LINK:
+ pLed1->CurrLedState = LED_ON;
+ if( pLed1->bLedBlinkInProgress == false )
+ {
+ SwLedOn(dev, pLed1);
+ }
+ break;
+
+ case LED_CTL_POWER_OFF:
+ pLed0->CurrLedState = LED_OFF;
+ pLed1->CurrLedState = LED_OFF;
+ if(pLed0->bLedBlinkInProgress)
+ {
+ del_timer_sync(&(pLed0->BlinkTimer));
+ pLed0->bLedBlinkInProgress = false;
+ }
+ if(pLed1->bLedBlinkInProgress)
+ {
+ del_timer_sync(&(pLed1->BlinkTimer));
+ pLed1->bLedBlinkInProgress = false;
+ }
+ SwLedOff(dev, pLed0);
+ SwLedOff(dev, pLed1);
+ break;
+
+ default:
+ break;
+ }
+
+ RT_TRACE(COMP_LED, "Led0 %d, Led1 %d \n", pLed0->CurrLedState, pLed1->CurrLedState);
+}
+
+
+
+void SwLedControlMode3(struct net_device *dev, LED_CTL_MODE LedAction)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PLED_8190 pLed0 = &(priv->SwLed0);
+ PLED_8190 pLed1 = &(priv->SwLed1);
+
+ switch(LedAction)
+ {
+ case LED_CTL_POWER_ON:
+ pLed0->CurrLedState = LED_ON;
+ SwLedOn(dev, pLed0);
+ pLed1->CurrLedState = LED_OFF;
+ SwLedOff(dev, pLed1);
+ break;
+
+ case LED_CTL_TX:
+ case LED_CTL_RX:
+ if( pLed1->bLedBlinkInProgress == false )
+ {
+ pLed1->bLedBlinkInProgress = true;
+
+ pLed1->CurrLedState = LED_BLINK_RUNTOP;
+ pLed1->BlinkTimes = 2;
+
+ if( pLed1->bLedOn )
+ pLed1->BlinkingLedState = LED_OFF;
+ else
+ pLed1->BlinkingLedState = LED_ON;
+
+ mod_timer(&(pLed1->BlinkTimer), jiffies + MSECS(LED_RunTop_BLINK_INTERVAL));
+ }
+ break;
+
+ case LED_CTL_POWER_OFF:
+ pLed0->CurrLedState = LED_OFF;
+ pLed1->CurrLedState = LED_OFF;
+ if(pLed0->bLedBlinkInProgress)
+ {
+ del_timer_sync(&(pLed0->BlinkTimer));
+ pLed0->bLedBlinkInProgress = false;
+ }
+ if(pLed1->bLedBlinkInProgress)
+ {
+ del_timer_sync(&(pLed1->BlinkTimer));
+ pLed1->bLedBlinkInProgress = false;
+ }
+ SwLedOff(dev, pLed0);
+ SwLedOff(dev, pLed1);
+ break;
+
+ default:
+ break;
+ }
+
+ RT_TRACE(COMP_LED, "Led0 %d, Led1 %d \n", pLed0->CurrLedState, pLed1->CurrLedState);
+}
+
+
+void SwLedControlMode4(struct net_device *dev, LED_CTL_MODE LedAction)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PLED_8190 pLed0 = &(priv->SwLed0);
+ PLED_8190 pLed1 = &(priv->SwLed1);
+
+ switch(LedAction)
+ {
+ case LED_CTL_POWER_ON:
+ pLed1->CurrLedState = LED_ON;
+ SwLedOn(dev, pLed1);
+ pLed0->CurrLedState = LED_OFF;
+ SwLedOff(dev, pLed0);
+ break;
+
+ case LED_CTL_TX:
+ case LED_CTL_RX:
+ if( pLed0->bLedBlinkInProgress == false )
+ {
+ pLed0->bLedBlinkInProgress = true;
+
+ pLed0->CurrLedState = LED_BLINK_RUNTOP;
+ pLed0->BlinkTimes = 2;
+
+ if( pLed0->bLedOn )
+ pLed0->BlinkingLedState = LED_OFF;
+ else
+ pLed0->BlinkingLedState = LED_ON;
+
+ mod_timer(&(pLed0->BlinkTimer), jiffies + MSECS(LED_RunTop_BLINK_INTERVAL));
+ }
+ break;
+
+ case LED_CTL_POWER_OFF:
+ pLed0->CurrLedState = LED_OFF;
+ pLed1->CurrLedState = LED_OFF;
+ if(pLed0->bLedBlinkInProgress)
+ {
+ del_timer_sync(&(pLed0->BlinkTimer));
+ pLed0->bLedBlinkInProgress = false;
+ }
+ if(pLed1->bLedBlinkInProgress)
+ {
+ del_timer_sync(&(pLed1->BlinkTimer));
+ pLed1->bLedBlinkInProgress = false;
+ }
+ SwLedOff(dev, pLed0);
+ SwLedOff(dev, pLed1);
+ break;
+
+ default:
+ break;
+ }
+
+ RT_TRACE(COMP_LED, "Led0 %d, Led1 %d \n", pLed0->CurrLedState, pLed1->CurrLedState);
+}
+
+void SwLedControlMode5(struct net_device *dev, LED_CTL_MODE LedAction)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PLED_8190 pLed0 = &(priv->SwLed0);
+ PLED_8190 pLed1 = &(priv->SwLed1);
+ switch(LedAction)
+ {
+ case LED_CTL_POWER_ON:
+ case LED_CTL_START_TO_LINK:
+ case LED_CTL_NO_LINK:
+ pLed1->CurrLedState = LED_OFF;
+ SwLedOff(dev, pLed1);
+
+
+ if( pLed0->bLedSlowBlinkInProgress == false )
+ {
+ pLed0->bLedSlowBlinkInProgress = true;
+ pLed0->CurrLedState = LED_BLINK_SLOWLY;
+ if( pLed0->bLedOn )
+ pLed0->BlinkingLedState = LED_OFF;
+ else
+ pLed0->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed0->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_NETTRONIX));
+ }
+
+ break;
+
+ case LED_CTL_TX:
+ case LED_CTL_RX:
+ pLed1->CurrLedState = LED_ON;
+ SwLedOn(dev, pLed1);
+
+ if( pLed0->bLedBlinkInProgress == false )
+ {
+ del_timer_sync(&(pLed0->BlinkTimer));
+ pLed0->bLedSlowBlinkInProgress = false;
+ pLed0->bLedBlinkInProgress = true;
+ pLed0->CurrLedState = LED_BLINK_NORMAL;
+ pLed0->BlinkTimes = 2;
+
+ if( pLed0->bLedOn )
+ pLed0->BlinkingLedState = LED_OFF;
+ else
+ pLed0->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed0->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL_NETTRONIX));
+ }
+ break;
+
+ case LED_CTL_LINK:
+ pLed1->CurrLedState = LED_ON;
+ SwLedOn(dev, pLed1);
+
+ if( pLed0->bLedSlowBlinkInProgress == false )
+ {
+ pLed0->bLedSlowBlinkInProgress = true;
+ pLed0->CurrLedState = LED_BLINK_SLOWLY;
+ if( pLed0->bLedOn )
+ pLed0->BlinkingLedState = LED_OFF;
+ else
+ pLed0->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed0->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_NETTRONIX));
+ }
+ break;
+
+
+ case LED_CTL_POWER_OFF:
+ pLed0->CurrLedState = LED_OFF;
+ pLed1->CurrLedState = LED_OFF;
+ if( pLed0->bLedSlowBlinkInProgress == true )
+ {
+ del_timer_sync(&(pLed0->BlinkTimer));
+ pLed0->bLedSlowBlinkInProgress = false;
+ }
+ if(pLed0->bLedBlinkInProgress == true)
+ {
+ del_timer_sync(&(pLed0->BlinkTimer));
+ pLed0->bLedBlinkInProgress = false;
+ }
+ SwLedOff(dev, pLed0);
+ SwLedOff(dev, pLed1);
+ break;
+
+ default:
+ break;
+ }
+
+
+}
+
+void SwLedControlMode6(struct net_device *dev, LED_CTL_MODE LedAction)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PLED_8190 pLed0 = &(priv->SwLed0);
+ PLED_8190 pLed1 = &(priv->SwLed1);
+
+
+ switch(LedAction)
+ {
+ case LED_CTL_POWER_ON:
+ case LED_CTL_START_TO_LINK:
+ case LED_CTL_NO_LINK:
+ case LED_CTL_LINK:
+ case LED_CTL_SITE_SURVEY:
+ pLed1->CurrLedState = LED_OFF;
+ SwLedOff(dev, pLed1);
+
+ if( pLed0->bLedSlowBlinkInProgress == false )
+ {
+ pLed0->bLedSlowBlinkInProgress = true;
+ pLed0->CurrLedState = LED_BLINK_SLOWLY;
+ if( pLed0->bLedOn )
+ pLed0->BlinkingLedState = LED_OFF;
+ else
+ pLed0->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed0->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL_PORNET));
+ }
+ break;
+
+ case LED_CTL_TX:
+ case LED_CTL_RX:
+ pLed1->CurrLedState = LED_OFF;
+ SwLedOff(dev, pLed1);
+ if( pLed0->bLedBlinkInProgress == false )
+ {
+ del_timer_sync(&(pLed0->BlinkTimer));
+ pLed0->bLedSlowBlinkInProgress = false;
+ pLed0->bLedBlinkInProgress = true;
+ pLed0->CurrLedState = LED_BLINK_NORMAL;
+ pLed0->BlinkTimes = 2;
+ if( pLed0->bLedOn )
+ pLed0->BlinkingLedState = LED_OFF;
+ else
+ pLed0->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed0->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL_PORNET));
+ }
+ break;
+
+ case LED_CTL_POWER_OFF:
+ pLed1->CurrLedState = LED_OFF;
+ SwLedOff(dev, pLed1);
+
+ pLed0->CurrLedState = LED_OFF;
+ if( pLed0->bLedSlowBlinkInProgress == true )
+ {
+ del_timer_sync(&(pLed0->BlinkTimer));
+ pLed0->bLedSlowBlinkInProgress = false;
+ }
+ if(pLed0->bLedBlinkInProgress == true)
+ {
+ del_timer_sync(&(pLed0->BlinkTimer));
+ pLed0->bLedBlinkInProgress = false;
+ }
+ SwLedOff(dev, pLed0);
+ break;
+
+ default:
+ break;
+
+ }
+}
+
+
+void SwLedControlMode7(struct net_device *dev, LED_CTL_MODE LedAction)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PLED_8190 pLed0 = &(priv->SwLed0);
+
+ switch(LedAction)
+ {
+ case LED_CTL_POWER_ON:
+ case LED_CTL_LINK:
+ case LED_CTL_NO_LINK:
+ SwLedOn(dev, pLed0);
+ break;
+
+ case LED_CTL_POWER_OFF:
+ SwLedOff(dev, pLed0);
+ break;
+
+ default:
+ break;
+
+ }
+}
+
+void
+SwLedControlMode8(struct net_device *dev, LED_CTL_MODE LedAction)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PLED_8190 pLed = &(priv->SwLed0);
+
+ switch(LedAction)
+ {
+ case LED_CTL_TX:
+ case LED_CTL_RX:
+ if( pLed->bLedBlinkInProgress == false && priv->rtllib->state == RTLLIB_LINKED)
+ {
+ pLed->bLedBlinkInProgress = true;
+
+ pLed->CurrLedState = LED_BLINK_NORMAL;
+ pLed->BlinkTimes = 2;
+
+ if( pLed->bLedOn )
+ pLed->BlinkingLedState = LED_OFF;
+ else
+ pLed->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL));
+ }
+ break;
+
+ case LED_CTL_SITE_SURVEY:
+ if( pLed->bLedBlinkInProgress == false )
+ {
+ pLed->bLedBlinkInProgress = true;
+ pLed->CurrLedState = LED_SCAN_BLINK;
+ pLed->BlinkTimes = 2;
+
+ if( pLed->bLedOn )
+ {
+ pLed->BlinkingLedState = LED_OFF;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_ON_INTERVAL));
+ }
+ else
+ {
+ pLed->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM8_BLINK_OFF_INTERVAL));
+ }
+ }
+ else if(pLed->CurrLedState != LED_SCAN_BLINK)
+ {
+ del_timer_sync(&(pLed->BlinkTimer));
+ pLed->CurrLedState = LED_SCAN_BLINK;
+ pLed->BlinkTimes = 2;
+
+ if( pLed->bLedOn )
+ {
+ pLed->BlinkingLedState = LED_OFF;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_ON_INTERVAL));
+ }
+ else
+ {
+ pLed->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM8_BLINK_OFF_INTERVAL));
+ }
+ }
+ break;
+
+ case LED_CTL_POWER_ON:
+ case LED_CTL_NO_LINK:
+ if( pLed->bLedBlinkInProgress == false )
+ {
+ pLed->bLedBlinkInProgress = true;
+
+ pLed->CurrLedState = LED_NO_LINK_BLINK;
+ pLed->BlinkTimes = 24;
+
+ if( pLed->bLedOn )
+ {
+ pLed->BlinkingLedState = LED_OFF;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_ON_INTERVAL));
+ }
+ else
+ {
+ pLed->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM8_BLINK_OFF_INTERVAL));
+ }
+ }
+ else if(pLed->CurrLedState != LED_SCAN_BLINK && pLed->CurrLedState != LED_NO_LINK_BLINK)
+ {
+ pLed->CurrLedState = LED_NO_LINK_BLINK;
+ pLed->BlinkTimes = 24;
+
+ if( pLed->bLedOn )
+ {
+ pLed->BlinkingLedState = LED_OFF;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM2_BLINK_ON_INTERVAL));
+ }
+ else
+ {
+ pLed->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_CM8_BLINK_OFF_INTERVAL));
+ }
+ }
+ break;
+
+ case LED_CTL_LINK:
+ pLed->CurrLedState = LED_ON;
+ if(pLed->bLedBlinkInProgress)
+ {
+ del_timer_sync(&(pLed->BlinkTimer));
+ pLed->bLedBlinkInProgress = false;
+ }
+ SwLedOn(dev, pLed);
+ break;
+
+ case LED_CTL_POWER_OFF:
+ pLed->CurrLedState = LED_OFF;
+ if(pLed->bLedBlinkInProgress)
+ {
+ del_timer_sync(&(pLed->BlinkTimer));
+ pLed->bLedBlinkInProgress = false;
+ }
+ SwLedOff(dev, pLed);
+ break;
+
+ default:
+ break;
+ }
+}
+
+void
+SwLedControlMode9(struct net_device *dev, LED_CTL_MODE LedAction)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PLED_8190 pLed = &(priv->SwLed0);
+
+ switch(LedAction)
+ {
+ case LED_CTL_TX:
+ case LED_CTL_RX:
+ if( pLed->bLedBlinkInProgress == false )
+ {
+ pLed->bLedBlinkInProgress = true;
+
+ pLed->CurrLedState = LED_BLINK_NORMAL;
+ pLed->BlinkTimes = 2;
+
+ if( pLed->bLedOn )
+ pLed->BlinkingLedState = LED_OFF;
+ else
+ pLed->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_NORMAL_INTERVAL));
+ }
+ break;
+
+ case LED_CTL_SITE_SURVEY:
+ if(priv->rtllib->LinkDetectInfo.bBusyTraffic && priv->rtllib->state == RTLLIB_LINKED)
+ ;
+ else
+ {
+ if( pLed->bLedBlinkInProgress == true )
+ del_timer_sync(&(pLed->BlinkTimer));
+ else
+ pLed->bLedBlinkInProgress = true;
+
+ pLed->CurrLedState = LED_SCAN_BLINK;
+ pLed->BlinkTimes = 24;
+
+ if( pLed->bLedOn )
+ {
+ pLed->BlinkingLedState = LED_OFF;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL));
+ }
+ else
+ {
+ pLed->BlinkingLedState = LED_ON;
+ mod_timer(&(pLed->BlinkTimer), jiffies + MSECS(LED_BLINK_SLOWLY_INTERVAL));
+ }
+ }
+ break;
+
+ case LED_CTL_POWER_ON:
+ case LED_CTL_NO_LINK:
+ case LED_CTL_LINK:
+ if( pLed->bLedBlinkInProgress == false )
+ {
+ pLed->CurrLedState = LED_ON;
+ SwLedOn(dev, pLed);
+ }
+ break;
+
+ case LED_CTL_POWER_OFF:
+ pLed->CurrLedState = LED_OFF;
+ if(pLed->bLedBlinkInProgress)
+ {
+ del_timer_sync(&(pLed->BlinkTimer));
+ pLed->bLedBlinkInProgress = false;
+ }
+ SwLedOff(dev, pLed);
+ break;
+
+ default:
+ break;
+ }
+
+ RT_TRACE(COMP_LED, "LED9 CurrLedState %d\n", pLed->CurrLedState);
+
+}
+
+
+
+void LedControl8192SE(struct net_device *dev, LED_CTL_MODE LedAction)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(IS_NIC_DOWN(priv))
+ return;
+
+#ifdef TO_DO_LIST
+ if(Adapter->bInHctTest)
+ return;
+#endif
+
+ if( priv->rtllib->eRFPowerState != eRfOn &&
+ (LedAction == LED_CTL_TX || LedAction == LED_CTL_RX ||
+ LedAction == LED_CTL_SITE_SURVEY ||
+ LedAction == LED_CTL_LINK ||
+ LedAction == LED_CTL_NO_LINK||
+ LedAction == LED_CTL_START_TO_LINK ||
+ LedAction == LED_CTL_POWER_ON) )
+ {
+ return;
+ }
+
+ RT_TRACE(COMP_LED, "LedAction %d, \n", LedAction);
+
+ switch(priv->LedStrategy)
+ {
+ case SW_LED_MODE0:
+ break;
+ case SW_LED_MODE1:
+ break;
+ case SW_LED_MODE2:
+ break;
+ case SW_LED_MODE3:
+ break;
+ case SW_LED_MODE4:
+ break;
+ case SW_LED_MODE5:
+ break;
+
+ case SW_LED_MODE6:
+ break;
+
+ case SW_LED_MODE7:
+ SwLedControlMode7(dev, LedAction);
+ break;
+ case SW_LED_MODE8:
+ SwLedControlMode8(dev, LedAction);
+ break;
+
+ case SW_LED_MODE9:
+ SwLedControlMode9(dev, LedAction);
+ break;
+
+ default:
+ break;
+ }
+}
+
+#ifdef TO_DO_LIST
+#ifdef NDIS50_MINIPORT
+void LedBlinkTimerStallCheck(struct net_device *dev)
+{
+}
+
+
+void DoLedTimerStallCheck(PLED_8190 pLed)
+{
+}
+#endif
+#endif
+#endif
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_led.h b/ubuntu/rtl8192se/rtl8192s/r8192S_led.h
new file mode 100755
index 00000000000..9467187863f
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_led.h
@@ -0,0 +1,84 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef __INC_HAL8192SELED_H
+#define __INC_HAL8192SELED_H
+
+
+
+typedef enum _LED_STATE_8190{
+ LED_UNKNOWN = 0,
+ LED_ON = 1,
+ LED_OFF = 2,
+ LED_BLINK_NORMAL = 3,
+ LED_BLINK_SLOWLY = 4,
+ LED_POWER_ON_BLINK = 5,
+ LED_SCAN_BLINK = 6,
+ LED_NO_LINK_BLINK = 7,
+ LED_BLINK_StartToBlink = 8,
+ LED_BLINK_TXRX = 9,
+ LED_BLINK_RUNTOP = 10,
+ LED_BLINK_CAMEO = 11,
+}LED_STATE_8190;
+
+typedef enum _LED_PIN_8190{
+ LED_PIN_GPIO0,
+ LED_PIN_LED0,
+ LED_PIN_LED1
+}LED_PIN_8190;
+
+typedef struct _LED_8190{
+ void * dev;
+
+ LED_PIN_8190 LedPin;
+
+ LED_STATE_8190 CurrLedState;
+ bool bLedOn;
+
+ bool bLedBlinkInProgress;
+
+ bool bLedSlowBlinkInProgress;
+ u32 BlinkTimes;
+ LED_STATE_8190 BlinkingLedState;
+
+ struct timer_list BlinkTimer;
+} LED_8190, *PLED_8190;
+
+
+
+
+typedef enum _LED_STRATEGY_8190{
+ SW_LED_MODE0,
+ SW_LED_MODE1,
+ SW_LED_MODE2,
+ SW_LED_MODE3,
+ SW_LED_MODE4,
+ SW_LED_MODE5,
+ SW_LED_MODE6,
+ SW_LED_MODE7,
+ SW_LED_MODE8,
+ SW_LED_MODE9,
+ HW_LED,
+}LED_STRATEGY_8190, *PLED_STRATEGY_8190;
+
+
+void InitSwLeds(struct net_device *dev);
+void DeInitSwLeds(struct net_device *dev);
+void LedControl8192SE(struct net_device *dev, LED_CTL_MODE LedAction);
+
+#endif /*__INC_HAL8190PCILED_H*/
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_mp.c b/ubuntu/rtl8192se/rtl8192s/r8192S_mp.c
new file mode 100755
index 00000000000..8bd53961a77
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_mp.c
@@ -0,0 +1,1256 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+
+#ifdef CONFIG_MP
+#include "../rtl_core.h"
+#include "r8192S_phy.h"
+#include "r8192S_phyreg.h"
+#include "r8192S_mp.h"
+
+void rtl8192_init_mp(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ priv->chan_forced = false;
+
+ priv->bSingleCarrier = false;
+ priv->RegBoard = 0;
+ priv->bCckContTx = false;
+ priv->bOfdmContTx = false;
+ priv->bStartContTx = false;
+ priv->RegPaModel = 0;
+ priv->btMpCckTxPower = 0;
+ priv->btMpOfdmTxPower = 0;
+}
+
+static bool r8192_MgntIsRateValidForWirelessMode(u8 rate, u8 wirelessmode)
+{
+ bool bReturn = false;
+
+ switch(wirelessmode)
+ {
+ case WIRELESS_MODE_A:
+ case WIRELESS_MODE_N_5G:
+ if((rate >= 12) && (rate <= 108) && (rate != 22) && (rate != 44))
+ {
+ bReturn = true;
+ }
+ break;
+
+ case WIRELESS_MODE_B:
+ if( ((rate <= 22) && (rate != 12) && (rate != 18)) ||
+ (rate == 44) )
+ {
+ bReturn = true;
+ }
+ break;
+
+ case WIRELESS_MODE_G:
+ case WIRELESS_MODE_G | WIRELESS_MODE_B:
+ case WIRELESS_MODE_N_24G:
+ if((rate >= 2) && (rate <= 108))
+ {
+ bReturn = true;
+ }
+ break;
+
+ case WIRELESS_MODE_AUTO:
+ printk("MgntIsRateValidForWirelessMode(): wirelessmode should not be WIRELESS_MODE_AUTO\n");
+ break;
+
+ default:
+ printk("MgntIsRateValidForWirelessMode(): Unknown wirelessmode: %d\n", wirelessmode);
+ break;
+ }
+
+ if(!bReturn)
+ {
+ if(wirelessmode&(WIRELESS_MODE_N_24G|WIRELESS_MODE_N_5G))
+ {
+ if((rate>=0x80) && (rate<=MGN_MCS15_SG))
+ bReturn = true;
+ }
+ }
+ return bReturn;
+}
+
+inline u8 r8192_is_wireless_b_mode(u16 rate)
+{
+ if( ((rate <= 110) && (rate != 60) && (rate != 90)) || (rate == 220) )
+ return 1;
+ else return 0;
+}
+
+static void r8192_XmitOnePacket(struct net_device* dev)
+{
+ struct r8192_priv* priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+ struct sk_buff* skb = rtllib_get_beacon(ieee);
+
+ if (unlikely(!skb)){
+ printk("========>error alloc skb\n");
+ return;
+ }
+
+ priv->rtllib->softmac_data_hard_start_xmit(skb, dev, ieee->rate);
+}
+
+int r8192_wx_mp_set_chan(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+ int ret = -1;
+ u8 channel;
+
+ down(&priv->wx_sem);
+
+ channel = *extra;
+
+ rtllib_stop_scan(ieee);
+
+ printk("####RTL819X MP####set channel[1-11] %d\n",channel);
+
+ if((channel > 11) || (channel < 1)) {
+ up(&priv->wx_sem);
+ return ret;
+ }
+
+ priv->rtllib->current_network.channel = channel;
+ priv->MptChannelToSw = channel;
+
+ priv->chan_forced = false;
+ MPT_ProSwChannel(dev);
+ priv->chan_forced = true;
+
+ ret = 0;
+ up(&priv->wx_sem);
+
+ return ret;
+
+}
+
+int r8192_wx_mp_set_txrate(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+ int ret = -1;
+ u32 data_rate_index = 0;
+
+ down(&priv->wx_sem);
+
+ data_rate_index = *extra;
+
+ printk("####RTL819X MP####set tx rate index %d\n",data_rate_index);
+
+ priv->MptRateIndex = data_rate_index;
+
+ if((data_rate_index > 27) || (data_rate_index < 0)) {
+ up(&priv->wx_sem);
+ return ret;
+ } else if(data_rate_index <= 3) {
+ ieee->mode = WIRELESS_MODE_B;
+ } else if (data_rate_index <= 11) {
+ ieee->mode = WIRELESS_MODE_G;
+ } else {
+ ieee->mode = WIRELESS_MODE_N_24G;
+ }
+
+ MPT_ProSetDataRate819x(dev);
+
+ printk("####RTL819X MP####set tx rate %d\n",ieee->rate);
+
+ ret = 0;
+ up(&priv->wx_sem);
+
+ return ret;
+}
+
+int r8192_wx_mp_set_txpower(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int ret = -1;
+ u8 power_index = 0;
+
+ down(&priv->wx_sem);
+
+ power_index = *extra;
+
+ printk("####RTL819X MP####set tx power index %d\n",power_index);
+
+ if((power_index > 0x3F) || (power_index < 0x00)) {
+ up(&priv->wx_sem);
+ return ret;
+ }
+
+ mpt_ProSetTxPower(dev, power_index);
+
+ ret = 0;
+ up(&priv->wx_sem);
+
+ return ret;
+
+}
+
+int r8192_wx_mp_set_bw(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int ret = -1;
+ u8 bw_index = 0;
+
+ down(&priv->wx_sem);
+
+ bw_index = *extra;
+
+ printk("####RTL819X MP####set bandwith index %d [0: 20MHz 1: 40MHz]\n",bw_index);
+
+ priv->MptBandWidth = bw_index;
+
+#if 0
+ if((bw_index > 1) || (bw_index < 0)) {
+ up(&priv->wx_sem);
+ return ret;
+ } else if(bw_index == 1) {
+ HTSetConnectBwMode(priv->rtllib, HT_CHANNEL_WIDTH_20_40,
+ (priv->rtllib->current_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ } else {
+ HTSetConnectBwMode(priv->rtllib, HT_CHANNEL_WIDTH_20,
+ (priv->rtllib->current_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ }
+#else
+ MPT_ProSetBandWidth819x(dev);
+#endif
+
+ ret = 0;
+ up(&priv->wx_sem);
+
+ return ret;
+
+}
+
+
+
+int r8192_wx_mp_set_txstart(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+ int ret = -1;
+ u8 start_flag = 0;
+
+ down(&priv->wx_sem);
+
+ start_flag = *extra;
+
+ if(start_flag == 1) {
+ if (priv->bCckContTx || priv->bOfdmContTx) {
+ printk("####RTL819X MP####continious Tx is undergoing, please close it first\n");
+ ret = -EBUSY;
+ up(&priv->wx_sem);
+ return ret;
+ }
+
+ if(r8192_is_wireless_b_mode(ieee->rate)) {
+ printk("####RTL819X MP####start cck continious TX, rate:%d\n", ieee->rate);
+ mpt_StartCckContTx(dev, true);
+ r8192_XmitOnePacket(dev);
+ } else {
+ printk("####RTL819X MP####start ofdm continious TX, rate:%d\n", ieee->rate);
+ mpt_StartOfdmContTx(dev);
+ r8192_XmitOnePacket(dev);
+ }
+ } else if(start_flag == 2) {
+ bool bCckContTx = priv->bCckContTx;
+ bool bOfdmContTx = priv->bOfdmContTx;
+
+ if(bCckContTx && !bOfdmContTx) {
+ printk("####RTL819X MP####stop cck continious TX\n");
+ mpt_StopCckCoNtTx(dev);
+ } else if (!bCckContTx && bOfdmContTx) {
+ printk("####RTL819X MP####stop ofdm continious TX\n");
+ mpt_StopOfdmContTx(dev);
+ } else if(!bCckContTx && !bOfdmContTx) {
+ ;
+ } else {
+ printk("####RTL819X MP#### Unexpected case! bCckContTx: %d , bOfdmContTx: %d\n",
+ bCckContTx, bOfdmContTx);
+}
+ } else {
+ ret = -1;
+ up(&priv->wx_sem);
+ return ret;
+ }
+
+
+ ret = 0;
+ up(&priv->wx_sem);
+
+ return ret;
+
+}
+
+int r8192_wx_mp_set_singlecarrier(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+ int ret = -1;
+ u8 start_flag = 0;
+
+ if((ieee->rate > 108) || (ieee->rate < 12))
+ printk("####RTL819X MP#### we did not do singlecarrier when rate not in [6M-54M] tmp, see StartTesting_SingleCarrierTx to get more\n");
+
+ down(&priv->wx_sem);
+
+ start_flag = *extra;
+
+ if(start_flag == 1){
+ if (priv->bCckContTx || priv->bOfdmContTx || priv->bSingleCarrier){
+ printk("####RTL819X MP#### single carrier continious Tx is undergoing, please close it first\n");
+ ret = -EBUSY;
+ up(&priv->wx_sem);
+ return ret;
+ }
+
+ printk("####RTL819X MP####start single carrier cck continious TX\n");
+ mpt_StartOfdmContTx(dev);
+ r8192_XmitOnePacket(dev);
+
+ } else if(start_flag == 2) {
+ if (priv->bCckContTx) {
+ printk("####RTL819X MP####stop single cck continious TX\n");
+ mpt_StopCckCoNtTx(dev);
+ }
+ if (priv->bOfdmContTx) {
+ printk("####RTL819X MP####stop single ofdm continious TX\n");
+ mpt_StopOfdmContTx(dev);
+ }
+ if (priv->bSingleCarrier) {
+ printk("####RTL819X MP####stop single carrier mode\n");
+ MPT_ProSetSingleCarrier(dev, false);
+ }
+ } else {
+ ret = -1;
+ up(&priv->wx_sem);
+
+ return ret;
+ }
+
+ ret = 0;
+ up(&priv->wx_sem);
+
+ return ret;
+
+}
+int r8192_wx_mp_write_rf(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 ulIoType, INulRegOffset, INulRegValue;
+ u32 *info_buf = (u32*)(&wrqu->freq.m);
+ u32 ulRegOffset = info_buf[0];
+ u32 ulRegValue = info_buf[1];
+ u32 RF_PATH = info_buf[2];
+
+ down(&priv->wx_sem);
+ printk("####RTL819X MP####%s :ulRegOffset %x, ulRegValue %x, RF_PATH:%x\n",
+ __func__, ulRegOffset, ulRegValue, RF_PATH);
+
+ ulIoType = MPT_WRITE_RF;
+ INulRegOffset = ulRegOffset & bRFRegOffsetMask;
+ INulRegValue = ulRegValue & bRFRegOffsetMask;
+
+
+ priv->MptIoOffset = INulRegOffset;
+ priv->MptIoValue = INulRegValue;
+ priv->MptRfPath = RF_PATH;
+ priv->MptActType = ulIoType;
+
+ mpt_Pro819xIoCallback(dev);
+
+ up(&priv->wx_sem);
+ return 0;
+
+}
+
+int r8192_wx_mp_write_mac(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 *info_buf = (u32*)(&wrqu->freq.m);
+ u32 ulRegOffset = info_buf[0];
+ u32 ulRegValue = info_buf[1];
+ u32 ulRegDataWidth = info_buf[2];
+ u32 ulIoType = 0;
+
+ down(&priv->wx_sem);
+
+ printk("####RTL819X MP####%s :ulRegOffset %x, ulRegValue %x, ulRegDataWidth:%x\n",
+ __func__, ulRegOffset, ulRegValue, ulRegDataWidth);
+
+ switch(ulRegDataWidth)
+ {
+ case 1:
+ ulIoType = MPT_WRITE_MAC_1BYTE;
+ break;
+
+ case 2:
+ ulIoType = MPT_WRITE_MAC_2BYTE;
+ break;
+ case 4:
+ ulIoType = MPT_WRITE_MAC_4BYTE;
+ break;
+ default:
+ printk("####RTL819X MP####%s :error ulRegDataWidth:%x\n", __func__, ulRegDataWidth);
+ break;
+ }
+
+ if(ulIoType != 0){
+ priv->MptIoOffset = ulRegOffset;
+ priv->MptIoValue = ulRegValue;
+ priv->MptActType = ulIoType;
+ mpt_Pro819xIoCallback(dev);
+ }
+
+ up(&priv->wx_sem);
+
+ return 0;
+
+}
+
+/*-----------------------------------------------------------------------------
+ * Function: mpt_StartCckContTx()
+ *
+ * Overview: Start CCK Continuous Tx.
+ *
+ * Input: PADAPTER pAdapter
+ * BOOLEAN bScrambleOn
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 05/16/2007 MHC Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+void mpt_StartCckContTx(struct net_device *dev,bool bScrambleOn)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ u32 cckrate;
+
+ if(!rtl8192_QueryBBReg(dev, rFPGA0_RFMOD, bCCKEn))
+ rtl8192_setBBreg(dev, rFPGA0_RFMOD, bCCKEn, bEnable);
+
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMContinueTx, bDisable);
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleCarrier, bDisable);
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleTone, bDisable);
+ switch(priv->rtllib->rate)
+ {
+ case 2:
+ cckrate = 0;
+ break;
+ case 4:
+ cckrate = 1;
+ break;
+ case 11:
+ cckrate = 2;
+ break;
+ case 22:
+ cckrate = 3;
+ break;
+ default:
+ cckrate = 0;
+ break;
+ }
+ rtl8192_setBBreg(dev, rCCK0_System, bCCKTxRate, cckrate);
+
+ rtl8192_setBBreg(dev, rCCK0_System, bCCKBBMode, 0x2);
+ rtl8192_setBBreg(dev, rCCK0_System, bCCKScramble, 0x1);
+
+ priv->bCckContTx = true;
+ priv->bOfdmContTx = false;
+
+} /* mpt_StartCckContTx */
+
+/*-----------------------------------------------------------------------------
+ * Function: mpt_StartOfdmContTx()
+ *
+ * Overview: Start OFDM Continuous Tx.
+ *
+ * Input: PADAPTER pAdapter
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 05/16/2007 MHC Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+void mpt_StartOfdmContTx(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ if(!rtl8192_QueryBBReg(dev, rFPGA0_RFMOD, bOFDMEn))
+ rtl8192_setBBreg(dev, rFPGA0_RFMOD, bOFDMEn, bEnable);
+
+ rtl8192_setBBreg(dev, rCCK0_System, bCCKBBMode, bDisable);
+
+ rtl8192_setBBreg(dev, rCCK0_System, bCCKScramble, bEnable);
+
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMContinueTx, bEnable);
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleCarrier, bDisable);
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleTone, bDisable);
+
+ priv->bCckContTx = false;
+ priv->bOfdmContTx = true;
+
+} /* mpt_StartOfdmContTx */
+
+/*-----------------------------------------------------------------------------
+ * Function: mpt_StopCckCoNtTx()
+ *
+ * Overview: Stop CCK Continuous Tx.
+ *
+ * Input: PADAPTER pAdapter
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 05/16/2007 MHC Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+void mpt_StopCckCoNtTx(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ priv->bCckContTx = false;
+ priv->bOfdmContTx = false;
+
+ rtl8192_setBBreg(dev, rCCK0_System, bCCKBBMode, 0x0);
+ rtl8192_setBBreg(dev, rCCK0_System, bCCKScramble, 0x1);
+
+ rtl8192_setBBreg(dev, rPMAC_Reset, bBBResetB, 0x0);
+ rtl8192_setBBreg(dev, rPMAC_Reset, bBBResetB, 0x1);
+
+} /* mpt_StopCckCoNtTx */
+
+/*-----------------------------------------------------------------------------
+ * Function: mpt_StopOfdmContTx()
+ *
+ * Overview: Stop 818xB OFDM Continuous Tx.
+ *
+ * Input: PADAPTER pAdapter
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 05/16/2007 MHC Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+void mpt_StopOfdmContTx(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ priv->bCckContTx = false;
+ priv->bOfdmContTx = false;
+
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMContinueTx, bDisable);
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleCarrier, bDisable);
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleTone, bDisable);
+ mdelay(10);
+ rtl8192_setBBreg(dev, rPMAC_Reset, bBBResetB, 0x0);
+ rtl8192_setBBreg(dev, rPMAC_Reset, bBBResetB, 0x1);
+
+} /* mpt_StopOfdmContTx */
+
+/*-----------------------------------------------------------------------------
+ * Function: mpt_SwitchRfSetting92S
+ *
+ * Overview: Change RF Setting when we siwthc channel/rate/BW for 92S series MP.
+ *
+ * Input: IN PADAPTER pAdapter
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 01/08/2009 MHC Suggestion from SD3 Willis for 92S series.
+ * 01/09/2009 MHC Add CCK modification for 40MHZ. Suggestion from SD3.
+ *
+ *---------------------------------------------------------------------------*/
+ void mpt_SwitchRfSetting92S(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ u8 ChannelToSw = priv->MptChannelToSw;
+ u32 ulRateIdx = priv->MptRateIndex;
+ u32 ulbandwidth = priv->MptBandWidth;
+
+ if (ulbandwidth == BAND_20MHZ_MODE)
+ {
+ if (ChannelToSw == 1)
+ {
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_IPA, 0xFFFFF, 0x0A8F4);
+ }
+ else if (ChannelToSw == 11)
+ {
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_IPA, 0xFFFFF, 0x0F8F5);
+ }
+ else
+ {
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_IPA, 0xFFFFF, 0x0F8F4);
+ }
+ }
+ else
+ {
+ if (ChannelToSw == 3)
+ {
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_IPA, 0xFFFFF, 0x0A8F4);
+ }
+ else if (ChannelToSw == 9 || ChannelToSw == 10 || ChannelToSw == 11)
+ {
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_IPA, 0xFFFFF, 0x0F8F5);
+ }
+ else
+ {
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_IPA, 0xFFFFF, 0x0F8F4);
+ }
+ }
+
+
+ if (ulRateIdx < MPT_RATE_6M)
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_SYN_G2, 0xFFFFF, 0x04440);
+ else
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)0, RF_SYN_G2, 0xFFFFF, 0x0F200);
+}
+
+/*-----------------------------------------------------------------------------
+ * Function: mpt_ProSetTxPower()
+ *
+ * Overview: Change Tx Power of current channel for
+ * OID_RT_PRO_SET_TX_POWER_CONTROL.
+ *
+ * Input: NONE
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 05/16/2007 MHC Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+bool mpt_ProSetTxPower( struct net_device *dev, u32 ulTxPower)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ u8 CurrChannel = priv->rtllib->current_network.channel;
+ bool bResult = true;
+
+ CurrChannel = priv->MptChannelToSw;
+
+ if(CurrChannel > 11 || CurrChannel < 1)
+ {
+ printk("mpt_ProSetTxPower(): CurrentChannel:%d is not valid\n", CurrChannel);
+ return false;
+ }
+
+ if(ulTxPower > MAX_TX_PWR_INDEX_N_MODE)
+ {
+ printk("mpt_ProSetTxPower(): TxPWR:%d is invalid\n", ulTxPower);
+ return false;
+ }
+
+ if( priv->MptRateIndex >= MPT_RATE_1M &&
+ priv->MptRateIndex <= MPT_RATE_11M )
+ {
+ priv->TxPowerLevelCCK[CurrChannel-1] = (u8)ulTxPower;
+
+ priv->RfTxPwrLevelCck[0][CurrChannel-1] = (u8)ulTxPower;
+ }
+ else if(priv->MptRateIndex >= MPT_RATE_6M &&
+ priv->MptRateIndex <= MPT_RATE_MCS15 )
+ {
+ priv->TxPowerLevelOFDM24G[CurrChannel-1] = (u8)ulTxPower;
+
+ priv->RfTxPwrLevelOfdm1T[0][CurrChannel-1] = (u8)ulTxPower;
+ priv->RfTxPwrLevelOfdm2T[0][CurrChannel-1] = (u8)ulTxPower;
+ }
+
+ rtl8192_phy_setTxPower(dev,CurrChannel);
+
+ return bResult;
+
+} /* mpt_ProSetTxPower */
+
+/*-----------------------------------------------------------------------------
+ * Function: mpt_ProSetTxAGCOffset()
+ *
+ * Overview: Change Tx AGC Offset
+ * OID_RT_PRO_SET_TX_AGC_OFFSET.
+ *
+ * Input: NONE
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 08/09/2007 Cosa Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+bool mpt_ProSetTxAGCOffset(struct net_device *dev, u32 ulTxAGCOffset)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ bool bResult = true;
+ u32 TxAGCOffset_B, TxAGCOffset_C, TxAGCOffset_D;
+
+ TxAGCOffset_B = (ulTxAGCOffset&0x000000ff);
+ TxAGCOffset_C = ((ulTxAGCOffset&0x0000ff00)>>8);
+ TxAGCOffset_D = ((ulTxAGCOffset&0x00ff0000)>>16);
+
+ if( TxAGCOffset_B > TxAGC_Offset_neg1 ||
+ TxAGCOffset_C > TxAGC_Offset_neg1 ||
+ TxAGCOffset_D > TxAGC_Offset_neg1 )
+ {
+ printk("mpt_ProSetTxAGCOffset(): TxAGCOffset:%d is invalid\n", ulTxAGCOffset);
+ return false;
+ }
+
+ priv->AntennaTxPwDiff[0] = TxAGCOffset_B;
+ priv->AntennaTxPwDiff[1] = TxAGCOffset_C;
+ priv->AntennaTxPwDiff[2] = TxAGCOffset_D;
+
+ MPT_ProSetTxAGCOffset(dev);
+
+ return bResult;
+
+} /* mpt_ProSetTxPower */
+
+/*-----------------------------------------------------------------------------
+ * Function: mpt_ProSetTxAGCOffset()
+ *
+ * Overview: Change Tx AGC Offset
+ * OID_RT_PRO_SET_TX_AGC_OFFSET.
+ *
+ * Input: NONE
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 08/09/2007 Cosa Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+bool mpt_ProSetRxFilter(struct net_device *dev, u32 RCRMode)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ if(RCRMode == 1)
+ {
+ priv->MptRCR &= ~(RCR_AAP|RCR_AM|RCR_AB);
+ priv->MptRCR |= RCR_APM;
+ write_nic_dword(dev, RCR, priv->MptRCR);
+ }
+ else
+ {
+ priv->MptRCR |= (RCR_AAP|RCR_APM|RCR_AM|RCR_AB);
+ write_nic_dword(dev, RCR, priv->MptRCR);
+ }
+
+ return 1;
+} /* mpt_ProSetTxPower */
+
+/*-----------------------------------------------------------------------------
+ * Function: mpt_ProSetModulation()
+ *
+ * Overview: Switch wireless mode for OID_RT_PRO_SET_MODULATION.
+ *
+ * Input: PADAPTER pAdapter
+ * ULONG ulWirelessMode
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 05/16/2007 MHC Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+bool mpt_ProSetModulation(struct net_device *dev, u32 ulWirelessMode)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ WIRELESS_MODE WirelessMode;
+ bool bResult = false;
+
+ switch(ulWirelessMode)
+ {
+ case WIRELESS_MODE_A:
+ WirelessMode = WIRELESS_MODE_A;
+ break;
+
+ case WIRELESS_MODE_B:
+ WirelessMode = WIRELESS_MODE_B;
+ break;
+
+ case WIRELESS_MODE_G:
+ case WIRELESS_MODE_G |WIRELESS_MODE_B:
+ WirelessMode = WIRELESS_MODE_G;
+ break;
+
+ case WIRELESS_MODE_N_24G:
+ WirelessMode = WIRELESS_MODE_N_24G;
+ break;
+
+ case WIRELESS_MODE_N_5G:
+ WirelessMode = WIRELESS_MODE_N_5G;
+ break;
+
+ case WIRELESS_MODE_AUTO:
+ default:
+ bResult = false;
+ return bResult;
+ break;
+ }
+
+ priv->rtllib->mode = WirelessMode;
+ priv->RegWirelessMode = WirelessMode;
+ rtl8192_SetWirelessMode(dev, priv->rtllib->mode);
+ HTUseDefaultSetting(priv->rtllib);
+
+
+ if (IS_HARDWARE_TYPE_8192SE(dev))
+ {
+ mpt_SwitchRfSetting92S(dev);
+ }
+
+ bResult = true;
+
+ return bResult;
+
+}
+
+/*-----------------------------------------------------------------------------
+ * Function: mpt_Pro819xIoCallback()
+ *
+ * Overview: Callback function of a workitem for IO.
+ *
+ * Input: NONE
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 05/16/2007 MHC Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+void mpt_Pro819xIoCallback(struct net_device *dev)
+{
+
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ u32 MptActType = priv->MptActType;
+
+ printk("####RTL819X MP####%s :ulRegOffset %x, ulRegValue %x, MptActType:%x, MptRfPath:%x\n",
+ __func__, priv->MptIoOffset, priv->MptIoValue, MptActType, priv->MptRfPath);
+
+ switch(MptActType)
+ {
+ case MPT_WRITE_MAC_1BYTE:
+ write_nic_byte(dev, priv->MptIoOffset, (u8)(priv->MptIoValue));
+ break;
+
+ case MPT_WRITE_MAC_2BYTE:
+ write_nic_word(dev, priv->MptIoOffset, (u16)(priv->MptIoValue));
+ break;
+
+ case MPT_WRITE_MAC_4BYTE:
+ write_nic_dword(dev, priv->MptIoOffset, (u32)(priv->MptIoValue));
+ break;
+
+ case MPT_WRITE_RF:
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)priv->MptRfPath,
+ priv->MptIoOffset, bRFRegOffsetMask, priv->MptIoValue);
+ break;
+
+ default:
+ break;
+ }
+}
+
+void MPT_ProSetSingleCarrier(struct net_device *dev, bool ulMode)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ if(ulMode == 1) {
+ priv->bSingleCarrier = true;
+ } else {
+ priv->bSingleCarrier = false;
+ }
+
+ if(priv->bSingleCarrier)
+ {
+ if(!rtl8192_QueryBBReg(dev, rFPGA0_RFMOD, bOFDMEn))
+ rtl8192_setBBreg(dev, rFPGA0_RFMOD, bOFDMEn, bEnable);
+
+ rtl8192_setBBreg(dev, rCCK0_System, bCCKBBMode, bDisable);
+
+ rtl8192_setBBreg(dev, rCCK0_System, bCCKScramble, bEnable);
+
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMContinueTx, bDisable);
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleCarrier, bEnable);
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleTone, bDisable);
+ }
+ else
+ {
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMContinueTx, bDisable);
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleCarrier, bDisable);
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, bOFDMSingleTone, bDisable);
+ mdelay(10);
+ rtl8192_setBBreg(dev, rPMAC_Reset, bBBResetB, 0x0);
+ rtl8192_setBBreg(dev, rPMAC_Reset, bBBResetB, 0x1);
+ }
+}
+
+/*-----------------------------------------------------------------------------
+ * Function: MPT_ProSetBandWidth819x()
+ *
+ * Overview: None
+ *
+ * Input: PADAPTER pAdapter
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 01/03/2007 Cosa Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+void MPT_ProSetBandWidth819x(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo;
+ u32 ulbandwidth = priv->MptBandWidth;
+
+ printk("##################MPT_ProSetBandWidth819x() is start. \n");
+ /* 2007/06/07 MH Call normal driver API and set 40MHZ mode. */
+ if (ulbandwidth == BAND_20MHZ_MODE) {
+ /* 20 MHZ sub-carrier mode --> dont care. */
+ pHTInfo->bCurBW40MHz = false;
+ pHTInfo->CurSTAExtChnlOffset = HT_EXTCHNL_OFFSET_NO_EXT;
+ priv->rtllib->SetBWModeHandler(dev, HT_CHANNEL_WIDTH_20, pHTInfo->CurSTAExtChnlOffset);
+ } else if (ulbandwidth == BAND_40MHZ_DUPLICATE_MODE) {
+ /* Sub-Carrier mode is defined in MAC data sheet chapter 12.3. */
+ /* 40MHX sub-carrier mode --> duplicate. */
+ pHTInfo->bCurBW40MHz = true;
+ pHTInfo->bCurTxBW40MHz = true;
+ pHTInfo->CurSTAExtChnlOffset = HT_EXTCHNL_OFFSET_NO_DEF;
+
+ priv->rtllib->SetBWModeHandler(dev, HT_CHANNEL_WIDTH_20_40, pHTInfo->CurSTAExtChnlOffset);
+ } else if (ulbandwidth == BAND_40MHZ_LOWER_MODE) {
+ /* 40MHX sub-carrier mode --> lower mode */
+ pHTInfo->bCurBW40MHz = true;
+ pHTInfo->bCurTxBW40MHz = true;
+ pHTInfo->CurSTAExtChnlOffset = HT_EXTCHNL_OFFSET_LOWER;
+
+ /* Extention channel is lower. Current channel must > 3. */
+ /*if (pMgntInfo->dot11CurrentChannelNumber < 3)
+ DbgPrint("Illegal Current_Chl=%d\r\n", pMgntInfo->dot11CurrentChannelNumber);
+ else
+ pAdapter->HalFunc.SwChnlByTimerHandler(pAdapter, pMgntInfo->dot11CurrentChannelNumber-2);*/
+
+ priv->rtllib->SetBWModeHandler(dev, HT_CHANNEL_WIDTH_20_40, pHTInfo->CurSTAExtChnlOffset);
+ } else if (ulbandwidth == BAND_40MHZ_UPPER_MODE) {
+ /* 40MHX sub-carrier mode --> upper mode */
+ pHTInfo->bCurBW40MHz = true;
+ pHTInfo->bCurTxBW40MHz = true;
+ pHTInfo->CurSTAExtChnlOffset = HT_EXTCHNL_OFFSET_UPPER;
+
+ /* Extention channel is upper. Current channel must < 12. */
+ /*if (pMgntInfo->dot11CurrentChannelNumber > 12)
+ DbgPrint("Illegal Current_Chl=%d", pMgntInfo->dot11CurrentChannelNumber);
+ else
+ pAdapter->HalFunc.SwChnlByTimerHandler(pAdapter, pMgntInfo->dot11CurrentChannelNumber+2);*/
+
+ priv->rtllib->SetBWModeHandler(dev, HT_CHANNEL_WIDTH_20_40, pHTInfo->CurSTAExtChnlOffset);
+ } else if (ulbandwidth == BAND_40MHZ_DONTCARE_MODE) {
+ /* 40MHX sub-carrier mode --> dont care mode */
+ pHTInfo->bCurBW40MHz = true;
+ pHTInfo->bCurTxBW40MHz = true;
+ pHTInfo->CurSTAExtChnlOffset = HT_EXTCHNL_OFFSET_LOWER;
+
+ priv->rtllib->SetBWModeHandler(dev, HT_CHANNEL_WIDTH_20_40, pHTInfo->CurSTAExtChnlOffset);
+ } else {
+ printk("##################MPT_ProSetBandWidth819x() error BW. \n");
+ return;
+ }
+
+{
+ mpt_SwitchRfSetting92S(dev);
+ return;
+ }
+
+ printk("##################MPT_ProSetBandWidth819x() is finished. \n");
+}
+
+/*-----------------------------------------------------------------------------
+ * Function: MPT_ProSwChannel()
+ *
+ * Overview: Callback function of a work item to switch channel for
+ * OID_RT_PRO_SET_CHANNEL_DIRECT_CALL
+ *
+ * Input: PVOID Context
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 05/16/2007 MHC Create Version 0.
+ * 06/07/2007 MHC Normal driver change switch channel handler.
+ * 09/03/2008 MHC RF channel register for 92S.
+ * 01/08/2008 MHC For MP verification for 92S,weneed to change setting according
+ * to SD3 Willis's document.
+ *
+ *---------------------------------------------------------------------------*/
+void MPT_ProSwChannel(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ u8 ChannelToSw = priv->MptChannelToSw;
+ u8 eRFPath;
+
+ priv->rtllib->current_network.channel = ChannelToSw;
+ priv->MptChannelToSw = ChannelToSw;
+
+ if (IS_HARDWARE_TYPE_8192SE(dev))
+ {
+ for(eRFPath = 0; eRFPath <priv->NumTotalRFPath; eRFPath++)
+ {
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, rRfChannel, 0x3FF, ChannelToSw);
+ }
+
+ if (IS_HARDWARE_TYPE_8192SE(dev))
+ {
+ mpt_SwitchRfSetting92S(dev);
+ }
+ }
+
+#ifdef MP_DEVELOP_READY
+ for(eRFPath = 0; eRFPath <priv->NumTotalRFPath; eRFPath++)
+ {
+ if (IS_HARDWARE_TYPE_8192SE(dev))
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, rRfChannel, 0x3FF, ChannelToSw);
+
+ udelay(100);
+ }
+
+
+ for(eRFPath = 0; eRFPath <priv->NumTotalRFPath; eRFPath++)
+ {
+ if (IS_HARDWARE_TYPE_8192SE(dev))
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, rRfChannel, 0x3FF, ChannelToSw);
+
+ udelay(100);
+ }
+#endif
+
+ /* 2007/06/07 MH Normal driver change sw channel handler. It does not
+ support SwChnlByDelayHandler ans replace with SwChnlByTimerHandler. */
+ priv->rtllib->set_chan(dev, ChannelToSw);
+
+#if 0
+ if(pHalData->CurrentChannel == 14 && !pHalData->bCCKinCH14){
+ pHalData->bCCKinCH14 = true;
+ MPT_CCKTxPowerAdjust(pAdapter,pHalData->bCCKinCH14);
+ }
+ else if(pHalData->CurrentChannel != 14 && pHalData->bCCKinCH14){
+ pHalData->bCCKinCH14 = false;
+ MPT_CCKTxPowerAdjust(pAdapter,pHalData->bCCKinCH14);
+ }
+#endif
+} /* MPT_ProSwChannel */
+
+/*-----------------------------------------------------------------------------
+ * Function: MPT_ProSetDataRate819x()
+ *
+ * Overview: None
+ *
+ * Input: PADAPTER pAdapter
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 01/03/2007 Cosa Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+void MPT_ProSetDataRate819x(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ u8 DataRate = 0xFF;
+ u32 ulRateIdx = priv->MptRateIndex;
+
+
+ printk("################MPT_ProSetDataRate819x():Rate=%d\n", ulRateIdx);
+ switch(ulRateIdx)
+ {
+ /* CCK rate. */
+ case MPT_RATE_1M: DataRate = 2; break;
+ case MPT_RATE_2M: DataRate = 4; break;
+ case MPT_RATE_55M: DataRate = 11; break;
+ case MPT_RATE_11M: DataRate = 22; break;
+
+ /* OFDM rate. */
+ case MPT_RATE_6M: DataRate = 12; break;
+ case MPT_RATE_9M: DataRate = 18; break;
+ case MPT_RATE_12M: DataRate = 24; break;
+ case MPT_RATE_18M: DataRate = 36; break;
+ case MPT_RATE_24M: DataRate = 48; break;
+ case MPT_RATE_36M: DataRate = 72; break;
+ case MPT_RATE_48M: DataRate = 96; break;
+ case MPT_RATE_54M: DataRate = 108; break;
+
+ /* HT rate. */
+ case MPT_RATE_MCS0: DataRate = 0x80; break;
+ case MPT_RATE_MCS1: DataRate = 0x81; break;
+ case MPT_RATE_MCS2: DataRate = 0x82; break;
+ case MPT_RATE_MCS3: DataRate = 0x83; break;
+ case MPT_RATE_MCS4: DataRate = 0x84; break;
+ case MPT_RATE_MCS5: DataRate = 0x85; break;
+ case MPT_RATE_MCS6: DataRate = 0x86; break;
+ case MPT_RATE_MCS7: DataRate = 0x87; break;
+ case MPT_RATE_MCS8: DataRate = 0x88; break;
+ case MPT_RATE_MCS9: DataRate = 0x89; break;
+ case MPT_RATE_MCS10: DataRate = 0x8A; break;
+ case MPT_RATE_MCS11: DataRate = 0x8B; break;
+ case MPT_RATE_MCS12: DataRate = 0x8C; break;
+ case MPT_RATE_MCS13: DataRate = 0x8D; break;
+ case MPT_RATE_MCS14: DataRate = 0x8E; break;
+ case MPT_RATE_MCS15: DataRate = 0x8F; break;
+ case MPT_RATE_LAST:
+ break;
+
+ default:
+ break;
+ }
+
+ {
+ mpt_SwitchRfSetting92S(dev);
+ }
+
+#ifdef MP_DEVELOP_READY
+ if (IS_HARDWARE_TYPE_8192SE(dev))
+ {
+ for(eRFPath = 0; eRFPath <priv->NumTotalRFPath; eRFPath++)
+ {
+ if (ulbandwidth == BAND_20MHZ_MODE)
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, rRfChannel, (BIT11|BIT10), 0x01);
+ else
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, rRfChannel, (BIT11|BIT10), 0x00);
+
+ delay_us(100);
+ }
+ }
+#endif
+
+
+ if(!r8192_MgntIsRateValidForWirelessMode(DataRate, priv->rtllib->mode) && DataRate != 0 )
+ {
+ printk("[MPT]: unknow wmode=%d", priv->rtllib->mode);
+ }
+ if (DataRate != 0xFF)
+ {
+ printk("[MPT]: Force rate=0x%02x", DataRate);
+ priv->rtllib->rate = (int)DataRate;
+ }
+
+}
+
+/*-----------------------------------------------------------------------------
+ * Function: MPT_ProSetTxAGCOffset()
+ *
+ * Overview: Set Tx power level for
+ * OID_RT_PRO_SET_TX_AGC_OFFSET
+ *
+ * Input: PVOID Context
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 08/09/2007 Cosa Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+void MPT_ProSetTxAGCOffset(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ u32 u4RegValue, TxAGCOffset_B, TxAGCOffset_C, TxAGCOffset_D;
+
+ TxAGCOffset_B = priv->AntennaTxPwDiff[0];
+ TxAGCOffset_C = priv->AntennaTxPwDiff[1];
+ TxAGCOffset_D = priv->AntennaTxPwDiff[2];
+
+
+ u4RegValue = (TxAGCOffset_D<<8 | TxAGCOffset_C<<4 | TxAGCOffset_B);
+ rtl8192_setBBreg(dev, rFPGA0_TxGainStage, (bXBTxAGC|bXCTxAGC|bXDTxAGC), u4RegValue);
+ printk("##################MPT_ProSetTxAGCOffset() is finished \n");
+}
+
+#endif
+
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_mp.h b/ubuntu/rtl8192se/rtl8192s/r8192S_mp.h
new file mode 100755
index 00000000000..29be7e9d56a
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_mp.h
@@ -0,0 +1,185 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+
+#ifndef __INC_HAL8192S_MP_H
+#define __INC_HAL8192S_MP_H
+
+/*--------------------------Define Parameters-------------------------------*/
+
+#define MPT_NOOP 0
+#define MPT_READ_MAC_1BYTE 1
+#define MPT_READ_MAC_2BYTE 2
+#define MPT_READ_MAC_4BYTE 3
+#define MPT_WRITE_MAC_1BYTE 4
+#define MPT_WRITE_MAC_2BYTE 5
+#define MPT_WRITE_MAC_4BYTE 6
+#define MPT_READ_BB_CCK 7
+#define MPT_WRITE_BB_CCK 8
+#define MPT_READ_BB_OFDM 9
+#define MPT_WRITE_BB_OFDM 10
+#define MPT_READ_RF 11
+#define MPT_WRITE_RF 12
+#define MPT_READ_EEPROM_1BYTE 13
+#define MPT_WRITE_EEPROM_1BYTE 14
+#define MPT_READ_EEPROM_2BYTE 15
+#define MPT_WRITE_EEPROM_2BYTE 16
+#define MPT_SET_CSTHRESHOLD 21
+#define MPT_SET_INITGAIN 22
+#define MPT_SWITCH_BAND 23
+#define MPT_SWITCH_CHANNEL 24
+#define MPT_SET_DATARATE 25
+#define MPT_SWITCH_ANTENNA 26
+#define MPT_SET_TX_POWER 27
+#define MPT_SET_CONT_TX 28
+#define MPT_SET_SINGLE_CARRIER 29
+#define MPT_SET_CARRIER_SUPPRESSION 30
+
+#define MPT_SET_ANTENNA_GAIN_OFFSET 40
+#define MPT_SET_CRYSTAL_CAP 41
+#define MPT_TRIGGER_RF_THERMAL_METER 42
+#define MPT_SET_SINGLE_TONE 43
+#define MPT_READ_RF_THERMAL_METER 44
+#define MPT_SWITCH_BAND_WIDTH 45
+#define MPT_QUERY_TSSI_VALUE 46
+#define MPT_SET_TX_POWER_ADJUST 47
+#define MPT_DO_TX_POWER_TRACK 48
+#define MPT_QUERY_NIC_TYPE 49
+#define MPT_QUERY_WPS_PUSHED 50
+#define MPT_SET_LED_CONTROL 51
+#define MPT_TX_POWER_TRACK_CONTROL 52
+
+#define MPT_WRITE_EFUSE_1BYTE 53
+#define MPT_READ_EFUSE_1BYTE 54
+#define MPT_READ_EFUSE_2BYTE 55
+#define MPT_READ_EFUSE_4BYTE 56
+#define MPT_UPDATE_EFUSE 57
+#define MPT_UPDATE_EFUSE_UTILIZE 58
+#define MPT_UPDATE_AUTOLOAD_STS 59
+
+#define MAX_TX_PWR_INDEX_N_MODE 64
+/*--------------------------Define Parameters-------------------------------*/
+
+/*------------------------------Define structure----------------------------*/
+/* MP set force data rate base on the definition. */
+typedef enum _MPT_RATE_INDEX{
+ /* CCK rate. */
+ MPT_RATE_1M = 1,
+ MPT_RATE_2M,
+ MPT_RATE_55M,
+ MPT_RATE_11M,
+
+ /* OFDM rate. */
+ MPT_RATE_6M,
+ MPT_RATE_9M,
+ MPT_RATE_12M,
+ MPT_RATE_18M,
+ MPT_RATE_24M,
+ MPT_RATE_36M,
+ MPT_RATE_48M,
+ MPT_RATE_54M,
+
+ /* HT rate. */
+ MPT_RATE_MCS0,
+ MPT_RATE_MCS1,
+ MPT_RATE_MCS2,
+ MPT_RATE_MCS3,
+ MPT_RATE_MCS4,
+ MPT_RATE_MCS5,
+ MPT_RATE_MCS6,
+ MPT_RATE_MCS7,
+ MPT_RATE_MCS8,
+ MPT_RATE_MCS9,
+ MPT_RATE_MCS10,
+ MPT_RATE_MCS11,
+ MPT_RATE_MCS12,
+ MPT_RATE_MCS13,
+ MPT_RATE_MCS14,
+ MPT_RATE_MCS15,
+ MPT_RATE_LAST
+
+}MPT_RATE_E, *PMPT_RATE_E;
+
+typedef enum _MPT_Bandwidth_Switch_Mode{
+ BAND_20MHZ_MODE = 0,
+ BAND_40MHZ_DUPLICATE_MODE = 1,
+ BAND_40MHZ_LOWER_MODE = 2,
+ BAND_40MHZ_UPPER_MODE = 3,
+ BAND_40MHZ_DONTCARE_MODE = 4
+}MPT_BANDWIDTH_MODE_E, *PMPT_BANDWIDTH_MODE_E;
+
+typedef enum _TxAGC_Offset{
+ TxAGC_Offset_0 = 0x00,
+ TxAGC_Offset_1,
+ TxAGC_Offset_2,
+ TxAGC_Offset_3,
+ TxAGC_Offset_4,
+ TxAGC_Offset_5,
+ TxAGC_Offset_6,
+ TxAGC_Offset_7,
+ TxAGC_Offset_neg8,
+ TxAGC_Offset_neg7,
+ TxAGC_Offset_neg6,
+ TxAGC_Offset_neg5,
+ TxAGC_Offset_neg4,
+ TxAGC_Offset_neg3,
+ TxAGC_Offset_neg2,
+ TxAGC_Offset_neg1
+} TxAGC_Offset;
+/*------------------------------Define structure----------------------------*/
+void rtl8192_init_mp(struct net_device* dev);
+int r8192_wx_mp_set_chan(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+int r8192_wx_mp_set_txrate(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+int r8192_wx_mp_set_txpower(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+int r8192_wx_mp_set_bw(struct net_device *dev,struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+int r8192_wx_mp_set_txstart(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+int r8192_wx_mp_set_singlecarrier(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+int r8192_wx_mp_write_rf(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+int r8192_wx_mp_write_mac(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+
+void mpt_StartCckContTx(struct net_device *dev,bool bScrambleOn);
+void mpt_StartOfdmContTx(struct net_device *dev);
+void mpt_StopCckCoNtTx(struct net_device *dev);
+void mpt_StopOfdmContTx(struct net_device *dev);
+void mpt_SwitchRfSetting92S(struct net_device *dev);
+bool mpt_ProSetTxPower( struct net_device *dev, u32 ulTxPower);
+bool mpt_ProSetTxAGCOffset(struct net_device *dev, u32 ulTxAGCOffset);
+bool mpt_ProSetRxFilter(struct net_device *dev, u32 RCRMode);
+bool mpt_ProSetRxFilter(struct net_device *dev, u32 RCRMode);
+bool mpt_ProSetModulation(struct net_device *dev, u32 ulWirelessMode);
+void mpt_Pro819xIoCallback(struct net_device *dev);
+void MPT_ProSetSingleCarrier(struct net_device *dev, bool ulMode);
+void MPT_ProSetBandWidth819x(struct net_device *dev);
+void MPT_ProSwChannel(struct net_device *dev);
+void MPT_ProSetDataRate819x(struct net_device *dev);
+void MPT_ProSetTxAGCOffset(struct net_device *dev);
+#endif
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_phy.c b/ubuntu/rtl8192se/rtl8192s/r8192S_phy.c
new file mode 100755
index 00000000000..ef2a79f65b4
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_phy.c
@@ -0,0 +1,3464 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifdef RTL8192SE
+
+#include "../rtl_core.h"
+#include "../rtl_dm.h"
+#include "r8192S_phy.h"
+#include "r8192S_phyreg.h"
+#include "r8192S_rtl6052.h"
+#include "r8192S_hwimg.h"
+
+#ifdef ENABLE_DOT11D
+#include "../rtllib/dot11d.h"
+#endif
+
+/*---------------------------Define Local Constant---------------------------*/
+#define MAX_PRECMD_CNT 16
+#define MAX_RFDEPENDCMD_CNT 16
+#define MAX_POSTCMD_CNT 16
+
+#define MAX_DOZE_WAITING_TIMES_9x 64
+
+#define PHY_STOP_SWITCH_CLKREQ 0
+/*---------------------------Define Local Constant---------------------------*/
+
+/*------------------------Define global variable-----------------------------*/
+
+#define Rtl819XMAC_Array Rtl8192SEMAC_2T_Array
+#define Rtl819XAGCTAB_Array Rtl8192SEAGCTAB_Array
+#define Rtl819XPHY_REG_Array Rtl8192SEPHY_REG_2T2RArray
+#define Rtl819XPHY_REG_to1T1R_Array Rtl8192SEPHY_ChangeTo_1T1RArray
+#define Rtl819XPHY_REG_to1T2R_Array Rtl8192SEPHY_ChangeTo_1T2RArray
+#define Rtl819XPHY_REG_to2T2R_Array Rtl8192SEPHY_ChangeTo_2T2RArray
+#define Rtl819XPHY_REG_Array_PG Rtl8192SEPHY_REG_Array_PG
+#define Rtl819XRadioA_Array Rtl8192SERadioA_1T_Array
+#define Rtl819XRadioB_Array Rtl8192SERadioB_Array
+#define Rtl819XRadioB_GM_Array Rtl8192SERadioB_GM_Array
+#define Rtl819XRadioA_to1T_Array Rtl8192SERadioA_to1T_Array
+#define Rtl819XRadioA_to2T_Array Rtl8192SERadioA_to2T_Array
+
+/*------------------------Define local variable------------------------------*/
+#if 0
+static u32 RF_CHANNEL_TABLE_ZEBRA[]={
+ 0,
+ 0x085c,
+ 0x08dc,
+ 0x095c,
+ 0x09dc,
+ 0x0a5c,
+ 0x0adc,
+ 0x0b5c,
+ 0x0bdc,
+ 0x0c5c,
+ 0x0cdc,
+ 0x0d5c,
+ 0x0ddc,
+ 0x0e5c,
+ 0x0f72,
+};
+#endif
+
+/*------------------------Define local variable------------------------------*/
+
+
+/*--------------------Define export function prototype-----------------------*/
+/*--------------------Define export function prototype-----------------------*/
+
+
+/*---------------------Define local function prototype-----------------------*/
+
+static u32 phy_FwRFSerialRead( struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 Offset);
+static void phy_FwRFSerialWrite( struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 Offset, u32 Data);
+
+static u32 phy_RFSerialRead(struct net_device* dev,RF90_RADIO_PATH_E eRFPath,u32 Offset);
+static void phy_RFSerialWrite( struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 Offset, u32 Data);
+static u32 phy_CalculateBitShift(u32 BitMask);
+static bool phy_BB8190_Config_HardCode(struct net_device* dev);
+static bool phy_BB8192S_Config_ParaFile(struct net_device* dev);
+
+static bool phy_ConfigMACWithHeaderFile(struct net_device* dev);
+
+static bool phy_ConfigBBWithHeaderFile(struct net_device* dev,u8 ConfigType);
+
+static bool phy_ConfigBBWithPgHeaderFile(struct net_device* dev,u8 ConfigType);
+
+static bool phy_SetBBtoDiffRFWithHeaderFile(struct net_device* dev,u8 ConfigType);
+
+static void phy_InitBBRFRegisterDefinition(struct net_device* dev);
+static bool phy_SetSwChnlCmdArray( SwChnlCmd* CmdTable,
+ u32 CmdTableIdx,
+ u32 CmdTableSz,
+ SwChnlCmdID CmdID,
+ u32 Para1,
+ u32 Para2,
+ u32 msDelay );
+
+static bool phy_SwChnlStepByStep(
+ struct net_device* dev,
+ u8 channel,
+ u8 *stage,
+ u8 *step,
+ u32 *delay
+ );
+
+static void phy_FinishSwChnlNow(struct net_device* dev,u8 channel);
+
+static u8 phy_DbmToTxPwrIdx( struct net_device* dev, WIRELESS_MODE WirelessMode, long PowerInDbm);
+static bool phy_SetRFPowerState8192SE(struct net_device* dev,RT_RF_POWER_STATE eRFPowerState);
+static void phy_CheckEphySwitchReady( struct net_device* dev);
+
+static long phy_TxPwrIdxToDbm( struct net_device* dev, WIRELESS_MODE WirelessMode, u8 TxPwrIdx);
+void rtl8192_SetFwCmdIOCallback(struct net_device* dev);
+
+
+/*---------------------Define local function prototype-----------------------*/
+
+
+/*----------------------------Function Body----------------------------------*/
+u32 rtl8192_QueryBBReg(struct net_device* dev, u32 RegAddr, u32 BitMask)
+{
+
+ u32 ReturnValue = 0, OriginalValue, BitShift;
+
+#if (DISABLE_BB_RF == 1)
+ return 0;
+#endif
+
+ RT_TRACE(COMP_RF, "--->PHY_QueryBBReg(): RegAddr(%#x), BitMask(%#x)\n", RegAddr, BitMask);
+
+ OriginalValue = read_nic_dword(dev, RegAddr);
+
+ BitShift = phy_CalculateBitShift(BitMask);
+ ReturnValue = (OriginalValue & BitMask) >> BitShift;
+
+ RT_TRACE(COMP_RF, "<---PHY_QueryBBReg(): RegAddr(%#x), BitMask(%#x), OriginalValue(%#x)\n", RegAddr, BitMask, OriginalValue);
+ return (ReturnValue);
+}
+
+void rtl8192_setBBreg(struct net_device* dev, u32 RegAddr, u32 BitMask, u32 Data)
+{
+ u32 OriginalValue, BitShift, NewValue;
+
+#if (DISABLE_BB_RF == 1)
+ return;
+#endif
+
+
+ {
+ if(BitMask!= bMaskDWord)
+ {
+ OriginalValue = read_nic_dword(dev, RegAddr);
+ BitShift = phy_CalculateBitShift(BitMask);
+ NewValue = (((OriginalValue) & (~BitMask)) | (Data << BitShift));
+ write_nic_dword(dev, RegAddr, NewValue);
+ }else
+ write_nic_dword(dev, RegAddr, Data);
+ }
+
+ return;
+}
+
+
+u32 rtl8192_phy_QueryRFReg(struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask)
+{
+ u32 Original_Value, Readback_Value, BitShift;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ unsigned long flags;
+
+#if (DISABLE_BB_RF == 1)
+ return 0;
+#endif
+
+ RT_TRACE(COMP_RF, "--->PHY_QueryRFReg(): RegAddr(%#x), eRFPath(%#x), BitMask(%#x)\n", RegAddr, eRFPath,BitMask);
+
+ if (!((priv->rf_pathmap >> eRFPath) & 0x1))
+ return 0;
+
+ if (!rtl8192_phy_CheckIsLegalRFPath(dev, eRFPath))
+ return 0;
+
+ spin_lock_irqsave(&priv->rf_lock, flags);
+ if (priv->Rf_Mode == RF_OP_By_FW)
+ {
+ Original_Value = phy_FwRFSerialRead(dev, eRFPath, RegAddr);
+ }
+ else
+ {
+ Original_Value = phy_RFSerialRead(dev, eRFPath, RegAddr);
+ }
+
+ BitShift = phy_CalculateBitShift(BitMask);
+ Readback_Value = (Original_Value & BitMask) >> BitShift;
+ spin_unlock_irqrestore(&priv->rf_lock, flags);
+
+
+ return (Readback_Value);
+}
+
+
+void rtl8192_phy_SetRFReg(struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask, u32 Data)
+{
+
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 Original_Value, BitShift, New_Value;
+ unsigned long flags;
+#if (DISABLE_BB_RF == 1)
+ return;
+#endif
+
+ RT_TRACE(COMP_RF, "--->PHY_SetRFReg(): RegAddr(%#x), BitMask(%#x), Data(%#x), eRFPath(%#x)\n",
+ RegAddr, BitMask, Data, eRFPath);
+
+ if (!((priv->rf_pathmap >> eRFPath) & 0x1))
+ return ;
+ if (!rtl8192_phy_CheckIsLegalRFPath(dev, eRFPath))
+ {
+ return;
+ }
+
+ spin_lock_irqsave(&priv->rf_lock, flags);
+ if (priv->Rf_Mode == RF_OP_By_FW)
+ {
+ if (BitMask != bRFRegOffsetMask)
+ {
+ Original_Value = phy_FwRFSerialRead(dev, eRFPath, RegAddr);
+ BitShift = phy_CalculateBitShift(BitMask);
+ New_Value = (((Original_Value) & (~BitMask)) | (Data<< BitShift));
+
+ phy_FwRFSerialWrite(dev, eRFPath, RegAddr, New_Value);
+ }
+ else
+ phy_FwRFSerialWrite(dev, eRFPath, RegAddr, Data);
+ }
+ else
+ {
+ if (BitMask != bRFRegOffsetMask)
+ {
+ Original_Value = phy_RFSerialRead(dev, eRFPath, RegAddr);
+ BitShift = phy_CalculateBitShift(BitMask);
+ New_Value = (((Original_Value) & (~BitMask)) | (Data<< BitShift));
+
+ phy_RFSerialWrite(dev, eRFPath, RegAddr, New_Value);
+ }
+ else
+ phy_RFSerialWrite(dev, eRFPath, RegAddr, Data);
+
+ }
+ spin_unlock_irqrestore(&priv->rf_lock, flags);
+ RT_TRACE(COMP_RF, "<---PHY_SetRFReg(): RegAddr(%#x), BitMask(%#x), Data(%#x), eRFPath(%#x)\n",
+ RegAddr, BitMask, Data, eRFPath);
+
+}
+
+static u32
+phy_FwRFSerialRead(
+ struct net_device* dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset )
+{
+ u32 retValue = 0;
+#if 0
+ u32 Data = 0;
+ u8 time = 0;
+ Data |= ((Offset&0xFF)<<12);
+ Data |= ((eRFPath&0x3)<<20);
+ Data |= 0x80000000;
+ while (PlatformIORead4Byte(dev, QPNR)&0x80000000)
+ {
+ if (time++ < 100)
+ {
+ delay_us(10);
+ }
+ else
+ break;
+ }
+ PlatformIOWrite4Byte(dev, QPNR, Data);
+ while (PlatformIORead4Byte(dev, QPNR)&0x80000000)
+ {
+ if (time++ < 100)
+ {
+ delay_us(10);
+ }
+ else
+ return (0);
+ }
+ retValue = PlatformIORead4Byte(dev, RF_DATA);
+#endif
+ return (retValue);
+
+} /* phy_FwRFSerialRead */
+
+static void
+phy_FwRFSerialWrite(
+ struct net_device* dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset,
+ u32 Data )
+{
+#if 0
+ u8 time = 0;
+ DbgPrint("N FW RF CTRL RF-%d OF%02x DATA=%03x\n\r", eRFPath, Offset, Data);
+
+ Data |= ((Offset&0xFF)<<12);
+ Data |= ((eRFPath&0x3)<<20);
+ Data |= 0x400000;
+ Data |= 0x80000000;
+
+ while (PlatformIORead4Byte(dev, QPNR)&0x80000000)
+ {
+ if (time++ < 100)
+ {
+ delay_us(10);
+ }
+ else
+ break;
+ }
+ PlatformIOWrite4Byte(dev, QPNR, Data);
+#endif
+} /* phy_FwRFSerialWrite */
+
+#if (RTL92SE_FPGA_VERIFY == 1)
+static u32 phy_RFSerialRead(struct net_device* dev,RF90_RADIO_PATH_E eRFPath,u32 Offset)
+{
+
+ u32 retValue = 0;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ BB_REGISTER_DEFINITION_T *pPhyReg = &priv->PHYRegDef[eRFPath];
+ u32 NewOffset;
+
+ Offset &= 0x3f;
+
+ if( priv->rf_chip == RF_8256 ||
+ priv->rf_chip == RF_8225 ||
+ priv->rf_chip == RF_6052)
+ {
+ rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0xf00, 0x0);
+
+ if(Offset>=31)
+ {
+ priv->RFReadPageCnt[2]++;
+ priv->RfReg0Value[eRFPath] |= 0x140;
+
+ rtl8192_setBBreg(dev,
+ pPhyReg->rf3wireOffset,
+ bMaskDWord,
+ (priv->RfReg0Value[eRFPath] << 16) );
+
+ NewOffset = Offset - 30;
+
+ }else if(Offset>=16)
+ {
+ priv->RFReadPageCnt[1]++;
+ priv->RfReg0Value[eRFPath] |= 0x100;
+ priv->RfReg0Value[eRFPath] &= (~0x40);
+
+ rtl8192_setBBreg(dev,
+ pPhyReg->rf3wireOffset,
+ bMaskDWord,
+ (priv->RfReg0Value[eRFPath] << 16) );
+
+ NewOffset = Offset - 15;
+ }
+ else
+ {
+ priv->RFReadPageCnt[0]++;
+ NewOffset = Offset;
+ }
+ }
+ else
+ NewOffset = Offset;
+
+#if (RTL92SE_FPGA_VERIFY == 1)
+ {
+ u32 temp1, temp2;
+
+ temp1 = rtl8192_QueryBBReg(dev, rFPGA0_XA_HSSIParameter2, 0xffffffff);
+ temp2 = rtl8192_QueryBBReg(dev, pPhyReg->rfHSSIPara2, 0xffffffff);
+ temp2 = temp2 & (~bLSSIReadAddress) | (NewOffset<<24) | bLSSIReadEdge;
+
+ rtl8192_setBBreg(dev, rFPGA0_XA_HSSIParameter2, 0xffffffff, temp1&(~bLSSIReadEdge));
+ msleep(1);
+ rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, 0xffffffff, temp2);
+ msleep(1);
+ rtl8192_setBBreg(dev, rFPGA0_XA_HSSIParameter2, 0xffffffff, temp1|bLSSIReadEdge);
+ msleep(1);
+
+ }
+#else
+ rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, bLSSIReadAddress, NewOffset);
+
+ rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, bLSSIReadEdge, 0x0);
+ rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, bLSSIReadEdge, 0x1);
+#endif
+
+ mdelay(1);
+
+ retValue = rtl8192_QueryBBReg(dev, pPhyReg->rfLSSIReadBack, bLSSIReadBackData);
+
+ if( priv->rf_chip == RF_8256 ||
+ priv->rf_chip == RF_8225 ||
+ priv->rf_chip == RF_6052)
+ {
+ if (Offset >= 0x10)
+ {
+ priv->RfReg0Value[eRFPath] &= 0xebf;
+
+ rtl8192_setBBreg(
+ dev,
+ pPhyReg->rf3wireOffset,
+ bMaskDWord,
+ (priv->RfReg0Value[eRFPath] << 16) );
+ }
+
+ rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0xf00, 0xf);
+ }
+
+ return retValue;
+}
+
+
+static void
+phy_RFSerialWrite(
+ struct net_device* dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset,
+ u32 Data
+ )
+{
+ u32 DataAndAddr = 0;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ BB_REGISTER_DEFINITION_T *pPhyReg = &priv->PHYRegDef[eRFPath];
+ u32 NewOffset;
+
+ Offset &= 0x3f;
+
+ PHY_RFShadowWrite(dev, eRFPath, Offset, Data);
+
+ if( priv->rf_chip == RF_8256 ||
+ priv->rf_chip == RF_8225 ||
+ priv->rf_chip == RF_6052)
+ {
+ rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0xf00, 0x0);
+
+ if(Offset>=31)
+ {
+ priv->RFWritePageCnt[2]++;
+ priv->RfReg0Value[eRFPath] |= 0x140;
+
+ rtl8192_setBBreg(dev,
+ pPhyReg->rf3wireOffset,
+ bMaskDWord,
+ (priv->RfReg0Value[eRFPath] << 16) );
+
+ NewOffset = Offset - 30;
+
+ }else if(Offset>=16)
+ {
+ priv->RFWritePageCnt[1]++;
+ priv->RfReg0Value[eRFPath] |= 0x100;
+ priv->RfReg0Value[eRFPath] &= (~0x40);
+
+
+ rtl8192_setBBreg(dev,
+ pPhyReg->rf3wireOffset,
+ bMaskDWord,
+ (priv->RfReg0Value[eRFPath] << 16) );
+
+ NewOffset = Offset - 15;
+ }
+ else
+ {
+ priv->RFWritePageCnt[0]++;
+ NewOffset = Offset;
+ }
+ }
+ else
+ NewOffset = Offset;
+
+ DataAndAddr = (Data<<16) | (NewOffset&0x3f);
+
+ rtl8192_setBBreg(dev, pPhyReg->rf3wireOffset, bMaskDWord, DataAndAddr);
+
+
+ if(Offset==0x0)
+ priv->RfReg0Value[eRFPath] = Data;
+
+ if( priv->rf_chip == RF_8256 ||
+ priv->rf_chip == RF_8225 ||
+ priv->rf_chip == RF_6052)
+ {
+ if (Offset >= 0x10)
+ {
+ if(Offset != 0)
+ {
+ priv->RfReg0Value[eRFPath] &= 0xebf;
+ rtl8192_setBBreg(
+ dev,
+ pPhyReg->rf3wireOffset,
+ bMaskDWord,
+ (priv->RfReg0Value[eRFPath] << 16) );
+ }
+ }
+ rtl8192_setBBreg(dev, rFPGA0_AnalogParameter4, 0xf00, 0xf);
+ }
+
+}
+#else
+static u32
+phy_RFSerialRead(
+ struct net_device* dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset
+ )
+{
+
+ u32 retValue = 0;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ BB_REGISTER_DEFINITION_T *pPhyReg = &priv->PHYRegDef[eRFPath];
+ u32 NewOffset;
+ u32 tmplong,tmplong2;
+ u8 RfPiEnable=0;
+#if 0
+ if(priv->rf_chip == RF_8225 && Offset > 0x24)
+ return retValue;
+ if(priv->rf_chip == RF_8256 && Offset > 0x2D)
+ return retValue;
+#endif
+ Offset &= 0x3f;
+
+ NewOffset = Offset;
+
+ tmplong = rtl8192_QueryBBReg(dev, rFPGA0_XA_HSSIParameter2, bMaskDWord);
+ if(eRFPath == RF90_PATH_A)
+ tmplong2 = tmplong;
+ else
+ tmplong2 = rtl8192_QueryBBReg(dev, pPhyReg->rfHSSIPara2, bMaskDWord);
+ tmplong2 = (tmplong2 & (~bLSSIReadAddress)) | (NewOffset<<23) | bLSSIReadEdge;
+
+ rtl8192_setBBreg(dev, rFPGA0_XA_HSSIParameter2, bMaskDWord, tmplong&(~bLSSIReadEdge));
+ udelay(1000);
+
+ rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, bMaskDWord, tmplong2);
+ udelay(1000);
+
+ rtl8192_setBBreg(dev, rFPGA0_XA_HSSIParameter2, bMaskDWord, tmplong|bLSSIReadEdge);
+
+ if(eRFPath == RF90_PATH_A)
+ RfPiEnable = (u8)rtl8192_QueryBBReg(dev, rFPGA0_XA_HSSIParameter1, BIT8);
+ else if(eRFPath == RF90_PATH_B)
+ RfPiEnable = (u8)rtl8192_QueryBBReg(dev, rFPGA0_XB_HSSIParameter1, BIT8);
+
+ if(RfPiEnable)
+ {
+ retValue = rtl8192_QueryBBReg(dev, pPhyReg->rfLSSIReadBackPi, bLSSIReadBackData);
+ }
+ else
+ {
+ retValue = rtl8192_QueryBBReg(dev, pPhyReg->rfLSSIReadBack, bLSSIReadBackData);
+ }
+
+ retValue = rtl8192_QueryBBReg(dev, pPhyReg->rfLSSIReadBack, bLSSIReadBackData);
+
+ return retValue;
+
+}
+
+static void
+phy_RFSerialWrite(
+ struct net_device* dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset,
+ u32 Data
+ )
+{
+ u32 DataAndAddr = 0;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ BB_REGISTER_DEFINITION_T *pPhyReg = &priv->PHYRegDef[eRFPath];
+ u32 NewOffset;
+
+#if 0
+ if(priv->rf_chip == RF_8225 && Offset > 0x24)
+ return;
+ if(priv->rf_chip == RF_8256 && Offset > 0x2D)
+ return;
+#endif
+
+ Offset &= 0x3f;
+
+ PHY_RFShadowWrite(dev, eRFPath, Offset, Data);
+
+ NewOffset = Offset;
+
+ DataAndAddr = ((NewOffset<<20) | (Data&0x000fffff)) & 0x0fffffff;
+
+ rtl8192_setBBreg(dev, pPhyReg->rf3wireOffset, bMaskDWord, DataAndAddr);
+
+}
+
+#endif
+
+static u32 phy_CalculateBitShift(u32 BitMask)
+{
+ u32 i;
+
+ for(i=0; i<=31; i++)
+ {
+ if ( ((BitMask>>i) & 0x1 ) == 1)
+ break;
+ }
+
+ return (i);
+}
+
+
+extern bool PHY_MACConfig8192S(struct net_device* dev)
+{
+ bool rtStatus = true;
+
+#if RTL8190_Download_Firmware_From_Header
+ rtStatus = phy_ConfigMACWithHeaderFile(dev);
+#else
+
+ RT_TRACE(COMP_INIT, "Read MACREG.txt\n");
+#endif
+ return (rtStatus == true) ? 1:0;
+
+}
+
+extern bool
+PHY_BBConfig8192S(struct net_device* dev)
+{
+ bool rtStatus = true;
+ u8 PathMap = 0, index = 0, rf_num = 0;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 bRegHwParaFile = 1;
+
+ phy_InitBBRFRegisterDefinition(dev);
+
+ switch(bRegHwParaFile)
+ {
+ case 0:
+ phy_BB8190_Config_HardCode(dev);
+ break;
+
+ case 1:
+ rtStatus = phy_BB8192S_Config_ParaFile(dev);
+ break;
+
+ case 2:
+ phy_BB8190_Config_HardCode(dev);
+ phy_BB8192S_Config_ParaFile(dev);
+ break;
+
+ default:
+ phy_BB8190_Config_HardCode(dev);
+ break;
+ }
+
+ PathMap = (u8)(rtl8192_QueryBBReg(dev, rFPGA0_TxInfo, 0xf) |
+ rtl8192_QueryBBReg(dev, rOFDM0_TRxPathEnable, 0xf));
+ priv->rf_pathmap = PathMap;
+ for(index = 0; index<4; index++)
+ {
+ if((PathMap>>index)&0x1)
+ rf_num++;
+ }
+
+ if((priv->rf_type==RF_1T1R && rf_num!=1) ||
+ (priv->rf_type==RF_1T2R && rf_num!=2) ||
+ (priv->rf_type==RF_2T2R && rf_num!=2) ||
+ (priv->rf_type==RF_2T2R_GREEN && rf_num!=2) ||
+ (priv->rf_type==RF_2T4R && rf_num!=4))
+ {
+ RT_TRACE( COMP_INIT, "PHY_BBConfig8192S: RF_Type(%x) does not match RF_Num(%x)!!\n", priv->rf_type, rf_num);
+ }
+ return rtStatus;
+}
+
+extern bool
+PHY_RFConfig8192S(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool rtStatus = true;
+
+
+ if (IS_HARDWARE_TYPE_8192SE(dev))
+ priv->rf_chip = RF_6052;
+
+ switch(priv->rf_chip)
+ {
+ case RF_8225:
+ case RF_6052:
+ rtStatus = PHY_RF6052_Config(dev);
+ break;
+
+ case RF_8256:
+ break;
+
+ case RF_8258:
+ break;
+
+ case RF_PSEUDO_11N:
+ break;
+ default:
+ break;
+ }
+
+ return rtStatus;
+}
+
+
+static bool
+phy_BB8190_Config_HardCode(struct net_device* dev)
+{
+ return true;
+}
+
+
+static bool
+phy_BB8192S_Config_ParaFile(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool rtStatus = true;
+
+ RT_TRACE(COMP_INIT, "==>phy_BB8192S_Config_ParaFile\n");
+
+#if RTL8190_Download_Firmware_From_Header
+ if (priv->rf_type == RF_1T2R || priv->rf_type == RF_2T2R ||
+ priv->rf_type == RF_1T1R ||priv->rf_type == RF_2T2R_GREEN)
+ {
+ rtStatus = phy_ConfigBBWithHeaderFile(dev,BaseBand_Config_PHY_REG);
+ if(priv->rf_type != RF_2T2R && priv->rf_type != RF_2T2R_GREEN)
+ {
+ rtStatus = phy_SetBBtoDiffRFWithHeaderFile(dev,BaseBand_Config_PHY_REG);
+ }
+ }else
+ rtStatus = false;
+#else
+ RT_TRACE(COMP_INIT, "RF_Type == %d\n", priv->rf_type);
+ if (priv->rf_type == RF_1T2R || priv->rf_type == RF_2T2R ||
+ priv->rf_type == RF_1T1R ||priv->rf_type == RF_2T2R_GREEN)
+ {
+ rtStatus = phy_ConfigBBWithParaFile(dev, (char* )&szBBRegFile);
+ if(priv->rf_type != RF_2T2R && priv->rf_type != RF_2T2R_GREEN)
+ {
+ if(priv->rf_type == RF_1T1R)
+ rtStatus = phy_SetBBtoDiffRFWithParaFile(dev, (char* )&szBBRegto1T1RFile);
+ else if(priv->rf_type == RF_1T2R)
+ rtStatus = phy_SetBBtoDiffRFWithParaFile(dev, (char* )&szBBRegto1T2RFile);
+ }
+
+ }else
+ rtStatus = false;
+#endif
+
+ if(rtStatus != true){
+ RT_TRACE(COMP_INIT, "phy_BB8192S_Config_ParaFile():Write BB Reg Fail!!");
+ goto phy_BB8190_Config_ParaFile_Fail;
+ }
+
+ if (priv->AutoloadFailFlag == false)
+ {
+ priv->pwrGroupCnt = 0;
+
+#if RTL8190_Download_Firmware_From_Header
+ rtStatus = phy_ConfigBBWithPgHeaderFile(dev,BaseBand_Config_PHY_REG);
+#else
+ rtStatus = phy_ConfigBBWithPgParaFile(dev, (char* )&szBBRegPgFile);
+#endif
+ }
+ if(rtStatus != true){
+ RT_TRACE(COMP_INIT, "phy_BB8192S_Config_ParaFile():BB_PG Reg Fail!!");
+ goto phy_BB8190_Config_ParaFile_Fail;
+ }
+
+#if RTL8190_Download_Firmware_From_Header
+ rtStatus = phy_ConfigBBWithHeaderFile(dev,BaseBand_Config_AGC_TAB);
+#else
+ RT_TRACE(COMP_INIT, "phy_BB8192S_Config_ParaFile AGC_TAB.txt\n");
+ rtStatus = phy_ConfigBBWithParaFile(dev, (char* )&szAGCTableFile);
+#endif
+
+ if(rtStatus != true){
+ printk( "phy_BB8192S_Config_ParaFile():AGC Table Fail\n");
+ goto phy_BB8190_Config_ParaFile_Fail;
+ }
+
+
+#if 0
+ if(pHalData->VersionID > VERSION_8190_BD)
+ {
+ u4RegValue = ( pHalData->AntennaTxPwDiff[2]<<8 |
+ pHalData->AntennaTxPwDiff[1]<<4 |
+ pHalData->AntennaTxPwDiff[0]);
+
+ PHY_SetBBReg(dev, rFPGA0_TxGainStage,
+ (bXBTxAGC|bXCTxAGC|bXDTxAGC), u4RegValue);
+
+ u4RegValue = pHalData->CrystalCap;
+ PHY_SetBBReg(dev, rFPGA0_AnalogParameter1, bXtalCap92x, u4RegValue);
+
+ }
+#endif
+
+ priv->bCckHighPower = (bool)(rtl8192_QueryBBReg(dev, rFPGA0_XA_HSSIParameter2, 0x200));
+
+
+phy_BB8190_Config_ParaFile_Fail:
+ return rtStatus;
+}
+
+static bool
+phy_ConfigMACWithHeaderFile(struct net_device* dev)
+{
+ u32 i = 0;
+ u32 ArrayLength = 0;
+ u32* ptrArray;
+
+ /*if(dev->bInHctTest)
+ {
+ RT_TRACE(COMP_INIT, DBG_LOUD, ("Rtl819XMACPHY_ArrayDTM\n"));
+ ArrayLength = MACPHY_ArrayLengthDTM;
+ ptrArray = Rtl819XMACPHY_ArrayDTM;
+ }
+ else if(pHalData->bTXPowerDataReadFromEEPORM)
+ {
+
+ }else*/
+ {
+ RT_TRACE(COMP_INIT, "Read Rtl819XMACPHY_Array\n");
+ ArrayLength = MAC_2T_ArrayLength;
+ ptrArray = Rtl819XMAC_Array;
+ }
+
+ /*for(i = 0 ;i < ArrayLength;i=i+3){
+ RT_TRACE(COMP_SEND, DBG_LOUD, ("The Rtl819XMACPHY_Array[0] is %lx Rtl819XMACPHY_Array[1] is %lx Rtl819XMACPHY_Array[2] is %lx\n",ptrArray[i], ptrArray[i+1], ptrArray[i+2]));
+ if(ptrArray[i] == 0x318)
+ {
+ ptrArray[i+2] = 0x00000800;
+ }
+ PHY_SetBBReg(dev, ptrArray[i], ptrArray[i+1], ptrArray[i+2]);
+ }*/
+ for(i = 0 ;i < ArrayLength;i=i+2){
+ write_nic_byte(dev, ptrArray[i], (u8)ptrArray[i+1]);
+ }
+ return true;
+}
+
+
+static bool
+phy_ConfigBBWithHeaderFile(struct net_device* dev,u8 ConfigType)
+{
+ int i;
+ u32* Rtl819XPHY_REGArray_Table;
+ u32* Rtl819XAGCTAB_Array_Table;
+ u16 PHY_REGArrayLen, AGCTAB_ArrayLen;
+ /*if(dev->bInHctTest)
+ {
+
+ AGCTAB_ArrayLen = AGCTAB_ArrayLengthDTM;
+ Rtl819XAGCTAB_Array_Table = Rtl819XAGCTAB_ArrayDTM;
+
+ if(pHalData->RF_Type == RF_2T4R)
+ {
+ PHY_REGArrayLen = PHY_REGArrayLengthDTM;
+ Rtl819XPHY_REGArray_Table = Rtl819XPHY_REGArrayDTM;
+ }
+ else if (pHalData->RF_Type == RF_1T2R)
+ {
+ PHY_REGArrayLen = PHY_REG_1T2RArrayLengthDTM;
+ Rtl819XPHY_REGArray_Table = Rtl819XPHY_REG_1T2RArrayDTM;
+ }
+
+ }
+ else
+ */
+ AGCTAB_ArrayLen = AGCTAB_ArrayLength;
+ Rtl819XAGCTAB_Array_Table = Rtl819XAGCTAB_Array;
+ PHY_REGArrayLen = PHY_REG_2T2RArrayLength;
+ Rtl819XPHY_REGArray_Table = Rtl819XPHY_REG_Array;
+
+ if(ConfigType == BaseBand_Config_PHY_REG)
+ {
+ for(i=0;i<PHY_REGArrayLen;i=i+2)
+ {
+ if (Rtl819XPHY_REGArray_Table[i] == 0xfe)
+ mdelay(50);
+ else if (Rtl819XPHY_REGArray_Table[i] == 0xfd)
+ mdelay(5);
+ else if (Rtl819XPHY_REGArray_Table[i] == 0xfc)
+ mdelay(1);
+ else if (Rtl819XPHY_REGArray_Table[i] == 0xfb)
+ udelay(50);
+ else if (Rtl819XPHY_REGArray_Table[i] == 0xfa)
+ udelay(5);
+ else if (Rtl819XPHY_REGArray_Table[i] == 0xf9)
+ udelay(1);
+#ifdef ECS_T20_INIT_DELAY
+ udelay(1);
+#endif
+ rtl8192_setBBreg(dev, Rtl819XPHY_REGArray_Table[i], bMaskDWord, Rtl819XPHY_REGArray_Table[i+1]);
+
+ }
+ }
+ else if(ConfigType == BaseBand_Config_AGC_TAB){
+ for(i=0;i<AGCTAB_ArrayLen;i=i+2)
+ {
+ rtl8192_setBBreg(dev, Rtl819XAGCTAB_Array_Table[i], bMaskDWord, Rtl819XAGCTAB_Array_Table[i+1]);
+#ifdef ECS_T20_INIT_DELAY
+ udelay(1);
+#endif
+ }
+ }
+ return true;
+}
+
+
+static bool
+phy_SetBBtoDiffRFWithHeaderFile(struct net_device* dev, u8 ConfigType)
+{
+ int i;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32* Rtl819XPHY_REGArraytoXTXR_Table;
+ u16 PHY_REGArraytoXTXRLen;
+
+ if(priv->rf_type == RF_1T1R)
+ {
+ Rtl819XPHY_REGArraytoXTXR_Table = Rtl819XPHY_REG_to1T1R_Array;
+ PHY_REGArraytoXTXRLen = PHY_ChangeTo_1T1RArrayLength;
+ }
+ else if(priv->rf_type == RF_1T2R)
+ {
+ Rtl819XPHY_REGArraytoXTXR_Table = Rtl819XPHY_REG_to1T2R_Array;
+ PHY_REGArraytoXTXRLen = PHY_ChangeTo_1T2RArrayLength;
+ }
+ else
+ {
+ return false;
+ }
+
+ if(ConfigType == BaseBand_Config_PHY_REG)
+ {
+ for(i=0;i<PHY_REGArraytoXTXRLen;i=i+3)
+ {
+ if (Rtl819XPHY_REGArraytoXTXR_Table[i] == 0xfe)
+ mdelay(50);
+ else if (Rtl819XPHY_REGArraytoXTXR_Table[i] == 0xfd)
+ mdelay(5);
+ else if (Rtl819XPHY_REGArraytoXTXR_Table[i] == 0xfc)
+ mdelay(1);
+ else if (Rtl819XPHY_REGArraytoXTXR_Table[i] == 0xfb)
+ udelay(50);
+ else if (Rtl819XPHY_REGArraytoXTXR_Table[i] == 0xfa)
+ udelay(5);
+ else if (Rtl819XPHY_REGArraytoXTXR_Table[i] == 0xf9)
+ udelay(1);
+ rtl8192_setBBreg(dev, Rtl819XPHY_REGArraytoXTXR_Table[i], Rtl819XPHY_REGArraytoXTXR_Table[i+1], Rtl819XPHY_REGArraytoXTXR_Table[i+2]);
+ }
+ }
+ else {
+ RT_TRACE(COMP_SEND, "phy_SetBBtoDiffRFWithHeaderFile(): ConfigType != BaseBand_Config_PHY_REG\n");
+ }
+ return true;
+}
+
+void
+storePwrIndexDiffRateOffset(
+ struct net_device* dev,
+ u32 RegAddr,
+ u32 BitMask,
+ u32 Data
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(RegAddr == rTxAGC_Rate18_06)
+ {
+ priv->MCSTxPowerLevelOriginalOffset[priv->pwrGroupCnt][0] = Data;
+ }
+ if(RegAddr == rTxAGC_Rate54_24)
+ {
+ priv->MCSTxPowerLevelOriginalOffset[priv->pwrGroupCnt][1] = Data;
+ }
+ if(RegAddr == rTxAGC_CCK_Mcs32)
+ {
+ priv->MCSTxPowerLevelOriginalOffset[priv->pwrGroupCnt][6] = Data;
+ }
+ if(RegAddr == rTxAGC_Mcs03_Mcs00)
+ {
+ priv->MCSTxPowerLevelOriginalOffset[priv->pwrGroupCnt][2] = Data;
+ }
+ if(RegAddr == rTxAGC_Mcs07_Mcs04)
+ {
+ priv->MCSTxPowerLevelOriginalOffset[priv->pwrGroupCnt][3] = Data;
+ }
+ if(RegAddr == rTxAGC_Mcs11_Mcs08)
+ {
+ priv->MCSTxPowerLevelOriginalOffset[priv->pwrGroupCnt][4] = Data;
+ }
+ if(RegAddr == rTxAGC_Mcs15_Mcs12)
+ {
+ priv->MCSTxPowerLevelOriginalOffset[priv->pwrGroupCnt][5] = Data;
+ priv->pwrGroupCnt++;
+ }
+}
+
+static bool
+phy_ConfigBBWithPgHeaderFile(struct net_device* dev,u8 ConfigType)
+{
+ int i;
+ u32* Rtl819XPHY_REGArray_Table_PG;
+ u16 PHY_REGArrayPGLen;
+
+ PHY_REGArrayPGLen = PHY_REG_Array_PGLength;
+ Rtl819XPHY_REGArray_Table_PG = Rtl819XPHY_REG_Array_PG;
+
+ if(ConfigType == BaseBand_Config_PHY_REG)
+ {
+ for(i=0;i<PHY_REGArrayPGLen;i=i+3)
+ {
+ if (Rtl819XPHY_REGArray_Table_PG[i] == 0xfe)
+ mdelay(50);
+ else if (Rtl819XPHY_REGArray_Table_PG[i] == 0xfd)
+ mdelay(5);
+ else if (Rtl819XPHY_REGArray_Table_PG[i] == 0xfc)
+ mdelay(1);
+ else if (Rtl819XPHY_REGArray_Table_PG[i] == 0xfb)
+ udelay(50);
+ else if (Rtl819XPHY_REGArray_Table_PG[i] == 0xfa)
+ udelay(5);
+ else if (Rtl819XPHY_REGArray_Table_PG[i] == 0xf9)
+ udelay(1);
+ storePwrIndexDiffRateOffset(dev, Rtl819XPHY_REGArray_Table_PG[i],
+ Rtl819XPHY_REGArray_Table_PG[i+1],
+ Rtl819XPHY_REGArray_Table_PG[i+2]);
+ rtl8192_setBBreg(dev, Rtl819XPHY_REGArray_Table_PG[i], Rtl819XPHY_REGArray_Table_PG[i+1], Rtl819XPHY_REGArray_Table_PG[i+2]);
+ }
+ }
+ else{
+ RT_TRACE(COMP_SEND, "phy_ConfigBBWithPgHeaderFile(): ConfigType != BaseBand_Config_PHY_REG\n");
+ }
+ return true;
+
+} /* phy_ConfigBBWithPgHeaderFile */
+
+RT_STATUS rtl8192_phy_configRFPABiascurrent(struct net_device *dev, RF90_RADIO_PATH_E eRFPath)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ RT_STATUS rtStatus = RT_STATUS_SUCCESS;
+ u32 tmpval=0;
+
+ if(priv->IC_Class != IC_INFERIORITY_A)
+ {
+ tmpval = rtl8192_phy_QueryRFReg(dev, eRFPath, RF_IPA, 0xf);
+ rtl8192_phy_SetRFReg(dev, eRFPath, RF_IPA, 0xf, tmpval+1);
+ }
+
+ return rtStatus;
+}
+
+u8 rtl8192_phy_ConfigRFWithHeaderFile(struct net_device* dev, RF90_RADIO_PATH_E eRFPath)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int i;
+ bool rtStatus = true;
+ u32 *Rtl819XRadioA_Array_Table;
+ u32 *Rtl819XRadioB_Array_Table;
+ u16 RadioA_ArrayLen,RadioB_ArrayLen;
+
+ RadioA_ArrayLen = RadioA_1T_ArrayLength;
+ Rtl819XRadioA_Array_Table=Rtl819XRadioA_Array;
+
+ if(priv->rf_type == RF_2T2R_GREEN)
+ {
+ Rtl819XRadioB_Array_Table = Rtl819XRadioB_GM_Array;
+ RadioB_ArrayLen = RadioB_GM_ArrayLength;
+ }
+ else
+ {
+ Rtl819XRadioB_Array_Table=Rtl819XRadioB_Array;
+ RadioB_ArrayLen = RadioB_ArrayLength;
+ }
+
+
+ RT_TRACE(COMP_INIT, "PHY_ConfigRFWithHeaderFile: Radio No %x\n", eRFPath);
+ rtStatus = true;
+
+ switch(eRFPath){
+ case RF90_PATH_A:
+ for(i = 0;i<RadioA_ArrayLen; i=i+2)
+ {
+ if(Rtl819XRadioA_Array_Table[i] == 0xfe)
+ {
+ mdelay(50);
+ }
+ else if (Rtl819XRadioA_Array_Table[i] == 0xfd)
+ mdelay(5);
+ else if (Rtl819XRadioA_Array_Table[i] == 0xfc)
+ mdelay(1);
+ else if (Rtl819XRadioA_Array_Table[i] == 0xfb)
+ udelay(50);
+ else if (Rtl819XRadioA_Array_Table[i] == 0xfa)
+ udelay(5);
+ else if (Rtl819XRadioA_Array_Table[i] == 0xf9)
+ udelay(1);
+ else {
+ rtl8192_phy_SetRFReg(dev, eRFPath, Rtl819XRadioA_Array_Table[i],
+ bMask20Bits, Rtl819XRadioA_Array_Table[i+1]);
+ }
+ }
+ rtl8192_phy_configRFPABiascurrent(dev, eRFPath);
+ break;
+ case RF90_PATH_B:
+ for(i = 0;i<RadioB_ArrayLen; i=i+2){
+ if(Rtl819XRadioB_Array_Table[i] == 0xfe)
+ {
+ mdelay(50);
+ }
+ else if (Rtl819XRadioB_Array_Table[i] == 0xfd)
+ mdelay(5);
+ else if (Rtl819XRadioB_Array_Table[i] == 0xfc)
+ mdelay(1);
+ else if (Rtl819XRadioB_Array_Table[i] == 0xfb)
+ udelay(50);
+ else if (Rtl819XRadioB_Array_Table[i] == 0xfa)
+ udelay(5);
+ else if (Rtl819XRadioB_Array_Table[i] == 0xf9)
+ udelay(1);
+ else
+ {
+ rtl8192_phy_SetRFReg(dev, eRFPath, Rtl819XRadioB_Array_Table[i], bMask20Bits, Rtl819XRadioB_Array_Table[i+1]);
+ }
+#ifdef ECS_T20_INIT_DELAY
+ udelay(1);
+#endif
+ }
+ break;
+ case RF90_PATH_C:
+ break;
+ case RF90_PATH_D:
+ break;
+ default:
+ break;
+ }
+ return rtStatus;
+
+}
+
+bool rtl8192_phy_checkBBAndRF(
+ struct net_device* dev,
+ HW90_BLOCK_E CheckBlock,
+ RF90_RADIO_PATH_E eRFPath
+ )
+{
+ bool rtStatus = true;
+ u32 i, CheckTimes = 4,ulRegRead = 0;
+ u32 WriteAddr[4];
+ u32 WriteData[] = {0xfffff027, 0xaa55a02f, 0x00000027, 0x55aa502f};
+
+ WriteAddr[HW90_BLOCK_MAC] = 0x100;
+ WriteAddr[HW90_BLOCK_PHY0] = 0x900;
+ WriteAddr[HW90_BLOCK_PHY1] = 0x800;
+ WriteAddr[HW90_BLOCK_RF] = 0x3;
+
+ for(i=0 ; i < CheckTimes ; i++)
+ {
+
+ switch(CheckBlock)
+ {
+ case HW90_BLOCK_MAC:
+ RT_TRACE(COMP_INIT, "PHY_CheckBBRFOK(): Never Write 0x100 here!\n");
+ break;
+
+ case HW90_BLOCK_PHY0:
+ case HW90_BLOCK_PHY1:
+ write_nic_dword(dev, WriteAddr[CheckBlock], WriteData[i]);
+ ulRegRead = read_nic_dword(dev, WriteAddr[CheckBlock]);
+ break;
+
+ case HW90_BLOCK_RF:
+ WriteData[i] &= 0xfff;
+ rtl8192_phy_SetRFReg(dev, eRFPath, WriteAddr[HW90_BLOCK_RF], bMask20Bits, WriteData[i]);
+ mdelay(10);
+ ulRegRead = rtl8192_phy_QueryRFReg(dev, eRFPath, WriteAddr[HW90_BLOCK_RF], bMaskDWord);
+ mdelay(10);
+ break;
+
+ default:
+ rtStatus = false;
+ break;
+ }
+
+
+ if(ulRegRead != WriteData[i])
+ {
+ RT_TRACE(COMP_ERR, "read back error(read:%x, write:%x)\n", ulRegRead, WriteData[i]);
+ rtStatus = false;
+ break;
+ }
+ }
+
+ return rtStatus;
+}
+
+#ifdef TO_DO_LIST
+void
+PHY_SetRFPowerState8192SUsb(
+ struct net_device* dev,
+ RF_POWER_STATE RFPowerState
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool WaitShutDown = false;
+ u32 DWordContent;
+ u8 eRFPath;
+ BB_REGISTER_DEFINITION_T *pPhyReg;
+
+ if(priv->SetRFPowerStateInProgress == true)
+ return;
+
+ priv->SetRFPowerStateInProgress = true;
+
+
+ if(RFPowerState==RF_SHUT_DOWN)
+ {
+ RFPowerState=RF_OFF;
+ WaitShutDown=true;
+ }
+
+
+ priv->RFPowerState = RFPowerState;
+ switch( priv->rf_chip )
+ {
+ case RF_8225:
+ case RF_6052:
+ switch( RFPowerState )
+ {
+ case RF_ON:
+ break;
+
+ case RF_SLEEP:
+ break;
+
+ case RF_OFF:
+ break;
+ }
+ break;
+
+ case RF_8256:
+ switch( RFPowerState )
+ {
+ case RF_ON:
+ break;
+
+ case RF_SLEEP:
+ break;
+
+ case RF_OFF:
+ for(eRFPath=(RF90_RADIO_PATH_E)RF90_PATH_A; eRFPath < RF90_PATH_MAX; eRFPath++)
+ {
+ if (!rtl8192_phy_CheckIsLegalRFPath(dev, eRFPath))
+ continue;
+
+ pPhyReg = &priv->PHYRegDef[eRFPath];
+ rtl8192_setBBreg(dev, pPhyReg->rfintfs, bRFSI_RFENV, bRFSI_RFENV);
+ rtl8192_setBBreg(dev, pPhyReg->rfintfo, bRFSI_RFENV, 0);
+ }
+ break;
+ }
+ break;
+
+ case RF_8258:
+ break;
+ }
+
+ priv->SetRFPowerStateInProgress = false;
+}
+#endif
+
+void PHY_GetHWRegOriginalValue(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+#if 0
+ priv->MCSTxPowerLevelOriginalOffset[0] =
+ rtl8192_QueryBBReg(dev, rTxAGC_Rate18_06, bMaskDWord);
+ priv->MCSTxPowerLevelOriginalOffset[1] =
+ rtl8192_QueryBBReg(dev, rTxAGC_Rate54_24, bMaskDWord);
+ priv->MCSTxPowerLevelOriginalOffset[2] =
+ rtl8192_QueryBBReg(dev, rTxAGC_Mcs03_Mcs00, bMaskDWord);
+ priv->MCSTxPowerLevelOriginalOffset[3] =
+ rtl8192_QueryBBReg(dev, rTxAGC_Mcs07_Mcs04, bMaskDWord);
+ priv->MCSTxPowerLevelOriginalOffset[4] =
+ rtl8192_QueryBBReg(dev, rTxAGC_Mcs11_Mcs08, bMaskDWord);
+ priv->MCSTxPowerLevelOriginalOffset[5] =
+ rtl8192_QueryBBReg(dev, rTxAGC_Mcs15_Mcs12, bMaskDWord);
+
+ priv->CCKTxPowerLevelOriginalOffset=
+ rtl8192_QueryBBReg(dev, rTxAGC_CCK_Mcs32, bMaskDWord);
+ RT_TRACE(COMP_INIT, "Legacy OFDM =%08x/%08x HT_OFDM=%08x/%08x/%08x/%08x\n",
+ priv->MCSTxPowerLevelOriginalOffset[0], priv->MCSTxPowerLevelOriginalOffset[1] ,
+ priv->MCSTxPowerLevelOriginalOffset[2], priv->MCSTxPowerLevelOriginalOffset[3] ,
+ priv->MCSTxPowerLevelOriginalOffset[4], priv->MCSTxPowerLevelOriginalOffset[5] );
+#endif
+
+ priv->DefaultInitialGain[0] = rtl8192_QueryBBReg(dev, rOFDM0_XAAGCCore1, bMaskByte0);
+ priv->DefaultInitialGain[1] = rtl8192_QueryBBReg(dev, rOFDM0_XBAGCCore1, bMaskByte0);
+ priv->DefaultInitialGain[2] = rtl8192_QueryBBReg(dev, rOFDM0_XCAGCCore1, bMaskByte0);
+ priv->DefaultInitialGain[3] = rtl8192_QueryBBReg(dev, rOFDM0_XDAGCCore1, bMaskByte0);
+ RT_TRACE(COMP_INIT, "Default initial gain (c50=0x%x, c58=0x%x, c60=0x%x, c68=0x%x) \n",
+ priv->DefaultInitialGain[0], priv->DefaultInitialGain[1],
+ priv->DefaultInitialGain[2], priv->DefaultInitialGain[3]);
+
+ priv->framesync = rtl8192_QueryBBReg(dev, rOFDM0_RxDetector3, bMaskByte0);
+ priv->framesyncC34 = rtl8192_QueryBBReg(dev, rOFDM0_RxDetector2, bMaskDWord);
+ RT_TRACE(COMP_INIT, "Default framesync (0x%x) = 0x%x \n",
+ rOFDM0_RxDetector3, priv->framesync);
+
+}
+
+
+
+static void phy_InitBBRFRegisterDefinition( struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ priv->PHYRegDef[RF90_PATH_A].rfintfs = rFPGA0_XAB_RFInterfaceSW;
+ priv->PHYRegDef[RF90_PATH_B].rfintfs = rFPGA0_XAB_RFInterfaceSW;
+ priv->PHYRegDef[RF90_PATH_C].rfintfs = rFPGA0_XCD_RFInterfaceSW;
+ priv->PHYRegDef[RF90_PATH_D].rfintfs = rFPGA0_XCD_RFInterfaceSW;
+
+ priv->PHYRegDef[RF90_PATH_A].rfintfi = rFPGA0_XAB_RFInterfaceRB;
+ priv->PHYRegDef[RF90_PATH_B].rfintfi = rFPGA0_XAB_RFInterfaceRB;
+ priv->PHYRegDef[RF90_PATH_C].rfintfi = rFPGA0_XCD_RFInterfaceRB;
+ priv->PHYRegDef[RF90_PATH_D].rfintfi = rFPGA0_XCD_RFInterfaceRB;
+
+ priv->PHYRegDef[RF90_PATH_A].rfintfo = rFPGA0_XA_RFInterfaceOE;
+ priv->PHYRegDef[RF90_PATH_B].rfintfo = rFPGA0_XB_RFInterfaceOE;
+ priv->PHYRegDef[RF90_PATH_C].rfintfo = rFPGA0_XC_RFInterfaceOE;
+ priv->PHYRegDef[RF90_PATH_D].rfintfo = rFPGA0_XD_RFInterfaceOE;
+
+ priv->PHYRegDef[RF90_PATH_A].rfintfe = rFPGA0_XA_RFInterfaceOE;
+ priv->PHYRegDef[RF90_PATH_B].rfintfe = rFPGA0_XB_RFInterfaceOE;
+ priv->PHYRegDef[RF90_PATH_C].rfintfe = rFPGA0_XC_RFInterfaceOE;
+ priv->PHYRegDef[RF90_PATH_D].rfintfe = rFPGA0_XD_RFInterfaceOE;
+
+ priv->PHYRegDef[RF90_PATH_A].rf3wireOffset = rFPGA0_XA_LSSIParameter;
+ priv->PHYRegDef[RF90_PATH_B].rf3wireOffset = rFPGA0_XB_LSSIParameter;
+ priv->PHYRegDef[RF90_PATH_C].rf3wireOffset = rFPGA0_XC_LSSIParameter;
+ priv->PHYRegDef[RF90_PATH_D].rf3wireOffset = rFPGA0_XD_LSSIParameter;
+
+ priv->PHYRegDef[RF90_PATH_A].rfLSSI_Select = rFPGA0_XAB_RFParameter;
+ priv->PHYRegDef[RF90_PATH_B].rfLSSI_Select = rFPGA0_XAB_RFParameter;
+ priv->PHYRegDef[RF90_PATH_C].rfLSSI_Select = rFPGA0_XCD_RFParameter;
+ priv->PHYRegDef[RF90_PATH_D].rfLSSI_Select = rFPGA0_XCD_RFParameter;
+
+ priv->PHYRegDef[RF90_PATH_A].rfTxGainStage = rFPGA0_TxGainStage;
+ priv->PHYRegDef[RF90_PATH_B].rfTxGainStage = rFPGA0_TxGainStage;
+ priv->PHYRegDef[RF90_PATH_C].rfTxGainStage = rFPGA0_TxGainStage;
+ priv->PHYRegDef[RF90_PATH_D].rfTxGainStage = rFPGA0_TxGainStage;
+
+ priv->PHYRegDef[RF90_PATH_A].rfHSSIPara1 = rFPGA0_XA_HSSIParameter1;
+ priv->PHYRegDef[RF90_PATH_B].rfHSSIPara1 = rFPGA0_XB_HSSIParameter1;
+ priv->PHYRegDef[RF90_PATH_C].rfHSSIPara1 = rFPGA0_XC_HSSIParameter1;
+ priv->PHYRegDef[RF90_PATH_D].rfHSSIPara1 = rFPGA0_XD_HSSIParameter1;
+
+ priv->PHYRegDef[RF90_PATH_A].rfHSSIPara2 = rFPGA0_XA_HSSIParameter2;
+ priv->PHYRegDef[RF90_PATH_B].rfHSSIPara2 = rFPGA0_XB_HSSIParameter2;
+ priv->PHYRegDef[RF90_PATH_C].rfHSSIPara2 = rFPGA0_XC_HSSIParameter2;
+ priv->PHYRegDef[RF90_PATH_D].rfHSSIPara2 = rFPGA0_XD_HSSIParameter2;
+
+ priv->PHYRegDef[RF90_PATH_A].rfSwitchControl = rFPGA0_XAB_SwitchControl;
+ priv->PHYRegDef[RF90_PATH_B].rfSwitchControl = rFPGA0_XAB_SwitchControl;
+ priv->PHYRegDef[RF90_PATH_C].rfSwitchControl = rFPGA0_XCD_SwitchControl;
+ priv->PHYRegDef[RF90_PATH_D].rfSwitchControl = rFPGA0_XCD_SwitchControl;
+
+ priv->PHYRegDef[RF90_PATH_A].rfAGCControl1 = rOFDM0_XAAGCCore1;
+ priv->PHYRegDef[RF90_PATH_B].rfAGCControl1 = rOFDM0_XBAGCCore1;
+ priv->PHYRegDef[RF90_PATH_C].rfAGCControl1 = rOFDM0_XCAGCCore1;
+ priv->PHYRegDef[RF90_PATH_D].rfAGCControl1 = rOFDM0_XDAGCCore1;
+
+ priv->PHYRegDef[RF90_PATH_A].rfAGCControl2 = rOFDM0_XAAGCCore2;
+ priv->PHYRegDef[RF90_PATH_B].rfAGCControl2 = rOFDM0_XBAGCCore2;
+ priv->PHYRegDef[RF90_PATH_C].rfAGCControl2 = rOFDM0_XCAGCCore2;
+ priv->PHYRegDef[RF90_PATH_D].rfAGCControl2 = rOFDM0_XDAGCCore2;
+
+ priv->PHYRegDef[RF90_PATH_A].rfRxIQImbalance = rOFDM0_XARxIQImbalance;
+ priv->PHYRegDef[RF90_PATH_B].rfRxIQImbalance = rOFDM0_XBRxIQImbalance;
+ priv->PHYRegDef[RF90_PATH_C].rfRxIQImbalance = rOFDM0_XCRxIQImbalance;
+ priv->PHYRegDef[RF90_PATH_D].rfRxIQImbalance = rOFDM0_XDRxIQImbalance;
+
+ priv->PHYRegDef[RF90_PATH_A].rfRxAFE = rOFDM0_XARxAFE;
+ priv->PHYRegDef[RF90_PATH_B].rfRxAFE = rOFDM0_XBRxAFE;
+ priv->PHYRegDef[RF90_PATH_C].rfRxAFE = rOFDM0_XCRxAFE;
+ priv->PHYRegDef[RF90_PATH_D].rfRxAFE = rOFDM0_XDRxAFE;
+
+ priv->PHYRegDef[RF90_PATH_A].rfTxIQImbalance = rOFDM0_XATxIQImbalance;
+ priv->PHYRegDef[RF90_PATH_B].rfTxIQImbalance = rOFDM0_XBTxIQImbalance;
+ priv->PHYRegDef[RF90_PATH_C].rfTxIQImbalance = rOFDM0_XCTxIQImbalance;
+ priv->PHYRegDef[RF90_PATH_D].rfTxIQImbalance = rOFDM0_XDTxIQImbalance;
+
+ priv->PHYRegDef[RF90_PATH_A].rfTxAFE = rOFDM0_XATxAFE;
+ priv->PHYRegDef[RF90_PATH_B].rfTxAFE = rOFDM0_XBTxAFE;
+ priv->PHYRegDef[RF90_PATH_C].rfTxAFE = rOFDM0_XCTxAFE;
+ priv->PHYRegDef[RF90_PATH_D].rfTxAFE = rOFDM0_XDTxAFE;
+
+ priv->PHYRegDef[RF90_PATH_A].rfLSSIReadBack = rFPGA0_XA_LSSIReadBack;
+ priv->PHYRegDef[RF90_PATH_B].rfLSSIReadBack = rFPGA0_XB_LSSIReadBack;
+ priv->PHYRegDef[RF90_PATH_C].rfLSSIReadBack = rFPGA0_XC_LSSIReadBack;
+ priv->PHYRegDef[RF90_PATH_D].rfLSSIReadBack = rFPGA0_XD_LSSIReadBack;
+
+ priv->PHYRegDef[RF90_PATH_A].rfLSSIReadBackPi = TransceiverA_HSPI_Readback;
+ priv->PHYRegDef[RF90_PATH_B].rfLSSIReadBackPi = TransceiverB_HSPI_Readback;
+
+}
+
+
+bool PHY_SetRFPowerState(struct net_device* dev, RT_RF_POWER_STATE eRFPowerState)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool bResult = false;
+
+ RT_TRACE((COMP_PS | COMP_RF), "---------> PHY_SetRFPowerState(): eRFPowerState(%d)\n", eRFPowerState);
+
+ if(eRFPowerState == priv->rtllib->eRFPowerState)
+ {
+ ;
+ return bResult;
+ }
+
+ bResult = phy_SetRFPowerState8192SE(dev, eRFPowerState);
+
+ RT_TRACE((COMP_PS | COMP_RF), "<--------- PHY_SetRFPowerState(): bResult(%d)\n", bResult);
+
+ return bResult;
+}
+
+static bool phy_SetRFPowerState8192SE(struct net_device* dev,RT_RF_POWER_STATE eRFPowerState)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+ bool bResult = true;
+ u8 i, QueueID;
+ struct rtl8192_tx_ring *ring = NULL;
+ priv->SetRFPowerStateInProgress = true;
+
+ switch(priv->rf_chip )
+ {
+ default:
+ switch( eRFPowerState )
+ {
+ case eRfOn:
+ RT_TRACE(COMP_PS,"========>%s():eRfOn\n", __func__);
+ {
+ if((priv->rtllib->eRFPowerState == eRfOff) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC))
+ {
+ bool rtstatus = true;
+ u32 InitializeCount = 0;
+ do
+ {
+ InitializeCount++;
+ rtstatus = NicIFEnableNIC(dev);
+ }while( (rtstatus != true) &&(InitializeCount < 10) );
+ if(rtstatus != true)
+ {
+ RT_TRACE(COMP_ERR,"%s():Initialize Adapter fail,return\n",__FUNCTION__);
+ priv->SetRFPowerStateInProgress = false;
+ return false;
+ }
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC);
+ }
+ else
+ {
+ write_nic_word(dev, CMDR, 0x37FC);
+ write_nic_byte(dev, TXPAUSE, 0x00);
+ write_nic_byte(dev, PHY_CCA, 0x3);
+ }
+
+#if 1
+ if(priv->rtllib->state == RTLLIB_LINKED)
+ {
+ LedControl8192SE(dev, LED_CTL_LINK);
+ }
+ else
+ {
+ LedControl8192SE(dev, LED_CTL_NO_LINK);
+ }
+#endif
+ }
+ break;
+ case eRfOff:
+ RT_TRACE(COMP_PS,"========>%s():eRfOff\n", __func__);
+ {
+ for(QueueID = 0, i = 0; QueueID < MAX_TX_QUEUE; )
+ {
+ ring = &priv->tx_ring[QueueID];
+ if(skb_queue_len(&ring->queue) == 0)
+ {
+ QueueID++;
+ continue;
+ }
+ #ifdef TO_DO_LIST
+ #if( DEV_BUS_TYPE==PCI_INTERFACE)
+ else if(IsLowPowerState(Adapter))
+ {
+ RT_TRACE(COMP_PS, DBG_LOUD,
+ ("eRf Off/Sleep: %d times TcbBusyQueue[%d] !=0 but lower power state!\n", (i+1), QueueID));
+ break;
+ }
+ #endif
+ #endif
+ else
+ {
+ RT_TRACE(COMP_PS, "eRf Off/Sleep: %d times TcbBusyQueue[%d] !=0 before doze!\n", (i+1), QueueID);
+ udelay(10);
+ i++;
+ }
+
+ if(i >= MAX_DOZE_WAITING_TIMES_9x)
+ {
+ RT_TRACE(COMP_PS, "\n\n\n %s(): eRfOff: %d times TcbBusyQueue[%d] != 0 !!!\n\n\n", __FUNCTION__,MAX_DOZE_WAITING_TIMES_9x, QueueID);
+ break;
+ }
+ }
+
+ if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_HALT_NIC && !RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC))
+ {
+ NicIFDisableNIC(dev);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC);
+ if(priv->pwrdown && priv->rtllib->RfOffReason>= RF_CHANGE_BY_HW)
+ write_nic_byte(dev,0x03,0x31);
+ }
+ else if(!(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_HALT_NIC))
+ {
+ SET_RTL8192SE_RF_SLEEP(dev);
+
+#if 1
+ if(priv->rtllib->RfOffReason == RF_CHANGE_BY_IPS )
+ {
+ LedControl8192SE(dev,LED_CTL_NO_LINK);
+ }
+ else
+ {
+ LedControl8192SE(dev, LED_CTL_POWER_OFF);
+ }
+#endif
+ }
+ }
+ break;
+
+ case eRfSleep:
+ RT_TRACE(COMP_PS,"========>%s():eRfSleep\n", __func__);
+ {
+ if(priv->rtllib->eRFPowerState == eRfOff)
+ break;
+
+ for(QueueID = 0, i = 0; QueueID < MAX_TX_QUEUE; )
+ {
+ ring = &priv->tx_ring[QueueID];
+ if(skb_queue_len(&ring->queue) == 0)
+ {
+ QueueID++;
+ continue;
+ }
+ #ifdef TO_DO_LIST
+ #if( DEV_BUS_TYPE==PCI_INTERFACE)
+ else if(IsLowPowerState(Adapter))
+ {
+ RT_TRACE(COMP_PS, "eRf Off/Sleep: %d times TcbBusyQueue[%d] !=0 but lower power state!\n", (i+1), QueueID);
+ break;
+ }
+ #endif
+ #endif
+ else
+ {
+ RT_TRACE(COMP_PS, "eRf Off/Sleep: %d times TcbBusyQueue[%d] !=0 before doze!\n", (i+1), QueueID);
+ udelay(10);
+ i++;
+ }
+
+ if(i >= MAX_DOZE_WAITING_TIMES_9x)
+ {
+ RT_TRACE(COMP_PS, "\n\n\n %s(): eRfOff: %d times TcbBusyQueue[%d] != 0 !!!\n\n\n", __FUNCTION__,MAX_DOZE_WAITING_TIMES_9x, QueueID);
+ break;
+ }
+ }
+
+ SET_RTL8192SE_RF_SLEEP(dev);
+ }
+ break;
+
+ default:
+ bResult = false;
+ RT_TRACE(COMP_ERR, "phy_SetRFPowerState8192S(): unknow state to set: 0x%X!!!\n", eRFPowerState);
+ break;
+ }
+ break;
+ }
+
+ if(bResult)
+ {
+ priv->rtllib->eRFPowerState = eRFPowerState;
+ }
+
+ priv->SetRFPowerStateInProgress = false;
+
+ return bResult;
+}
+
+
+void
+PHY_SwitchEphyParameter(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ write_nic_dword(dev, 0x540, 0x73c11);
+ write_nic_dword(dev, 0x548, 0x2407c);
+
+ write_nic_word(dev, 0x550, 0x1000);
+ write_nic_byte(dev, 0x554, 0x20);
+ phy_CheckEphySwitchReady(dev);
+
+ write_nic_word(dev, 0x550, 0xa0eb);
+ write_nic_byte(dev, 0x554, 0x3e);
+ phy_CheckEphySwitchReady(dev);
+
+ write_nic_word(dev, 0x550, 0xff80);
+ write_nic_byte(dev, 0x554, 0x39);
+ phy_CheckEphySwitchReady(dev);
+
+ if (priv->pci_bridge_vendor & (PCI_BRIDGE_VENDOR_INTEL | PCI_BRIDGE_VENDOR_SIS))
+ write_nic_byte(dev, 0x560, 0x40);
+ else
+ write_nic_byte(dev, 0x560, 0x00);
+
+}
+
+
+ void
+PHY_GetTxPowerLevel8192S(
+ struct net_device* dev,
+ long* powerlevel
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 TxPwrLevel = 0;
+ long TxPwrDbm;
+
+ TxPwrLevel = priv->CurrentCckTxPwrIdx;
+ TxPwrDbm = phy_TxPwrIdxToDbm(dev, WIRELESS_MODE_B, TxPwrLevel);
+
+ TxPwrLevel = priv->CurrentOfdm24GTxPwrIdx + priv->LegacyHTTxPowerDiff;
+
+ if(phy_TxPwrIdxToDbm(dev, WIRELESS_MODE_G, TxPwrLevel) > TxPwrDbm)
+ TxPwrDbm = phy_TxPwrIdxToDbm(dev, WIRELESS_MODE_G, TxPwrLevel);
+ TxPwrLevel = priv->CurrentOfdm24GTxPwrIdx;
+
+ if(phy_TxPwrIdxToDbm(dev, WIRELESS_MODE_N_24G, TxPwrLevel) > TxPwrDbm)
+ TxPwrDbm = phy_TxPwrIdxToDbm(dev, WIRELESS_MODE_N_24G, TxPwrLevel);
+ *powerlevel = TxPwrDbm;
+}
+
+#if 1
+void getTxPowerIndex(
+ struct net_device* dev,
+ u8 channel,
+ u8* cckPowerLevel,
+ u8* ofdmPowerLevel
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 index = (channel -1);
+ cckPowerLevel[0] = priv->RfTxPwrLevelCck[0][index];
+ cckPowerLevel[1] = priv->RfTxPwrLevelCck[1][index];
+
+ if (priv->rf_type == RF_1T2R || priv->rf_type == RF_1T1R)
+ {
+ ofdmPowerLevel[0] = priv->RfTxPwrLevelOfdm1T[0][index];
+ ofdmPowerLevel[1] = priv->RfTxPwrLevelOfdm1T[1][index];
+ }
+ else if (priv->rf_type == RF_2T2R)
+ {
+ ofdmPowerLevel[0] = priv->RfTxPwrLevelOfdm2T[0][index];
+ ofdmPowerLevel[1] = priv->RfTxPwrLevelOfdm2T[1][index];
+ }
+ RT_TRACE(COMP_POWER,"Channel-%d, set tx power index !!\n", channel);
+}
+
+void ccxPowerIndexCheck(
+ struct net_device* dev,
+ u8 channel,
+ u8* cckPowerLevel,
+ u8* ofdmPowerLevel
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+#ifdef TODO
+ if( priv->rtllib->iw_mode != IW_MODE_INFRA && priv->bWithCcxCellPwr &&
+ channel == priv->rtllib->current_network.channel)
+ {
+ u8 CckCellPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_B, priv->CcxCellPwr);
+ u8 LegacyOfdmCellPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_G, priv->CcxCellPwr);
+ u8 OfdmCellPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_N_24G, priv->CcxCellPwr);
+
+ RT_TRACE(COMP_TXAGC,
+ "CCX Cell Limit: %d dbm => CCK Tx power index : %d, Legacy OFDM Tx power index : %d, OFDM Tx power index: %d\n",
+ priv->CcxCellPwr, CckCellPwrIdx, LegacyOfdmCellPwrIdx, OfdmCellPwrIdx);
+ RT_TRACE(COMP_TXAGC,
+ "EEPROM channel(%d) => CCK Tx power index: %d, Legacy OFDM Tx power index : %d, OFDM Tx power index: %d\n",
+ channel, cckPowerLevel[0], ofdmPowerLevel[0] + priv->LegacyHTTxPowerDiff, ofdmPowerLevel[0]);
+
+ if(cckPowerLevel[0] > CckCellPwrIdx)
+ cckPowerLevel[0] = CckCellPwrIdx;
+ if(ofdmPowerLevel[0] + priv->LegacyHTTxPowerDiff > LegacyOfdmCellPwrIdx)
+ {
+ if((OfdmCellPwrIdx - priv->LegacyHTTxPowerDiff) > 0)
+ {
+ ofdmPowerLevel[0] = OfdmCellPwrIdx - priv->LegacyHTTxPowerDiff;
+ }
+ else
+ {
+ ofdmPowerLevel[0] = 0;
+ }
+ }
+
+ RT_TRACE(COMP_TXAGC,
+ "Altered CCK Tx power index : %d, Legacy OFDM Tx power index: %d, OFDM Tx power index: %d\n",
+ cckPowerLevel[0], ofdmPowerLevel[0] + priv->LegacyHTTxPowerDiff, ofdmPowerLevel[0]);
+ }
+
+#endif
+ priv->CurrentCckTxPwrIdx = cckPowerLevel[0];
+ priv->CurrentOfdm24GTxPwrIdx = ofdmPowerLevel[0];
+
+ RT_TRACE(COMP_TXAGC,
+ "PHY_SetTxPowerLevel8192S(): CCK Tx power index : %d, Legacy OFDM Tx power index: %d, OFDM Tx power index: %d\n",
+ cckPowerLevel[0], ofdmPowerLevel[0] + priv->LegacyHTTxPowerDiff, ofdmPowerLevel[0]);
+
+}
+/*-----------------------------------------------------------------------------
+ * Function: SetTxPowerLevel8190()
+ *
+ * Overview: This function is export to "HalCommon" moudule
+ * We must consider RF path later!!!!!!!
+ *
+ * Input: PADAPTER Adapter
+ * u1Byte channel
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ * 2008/11/04 MHC We remove EEPROM_93C56.
+ * We need to move CCX relative code to independet file.
+ * 2009/01/21 MHC Support new EEPROM format from SD3 requirement.
+ *
+ *---------------------------------------------------------------------------*/
+void rtl8192_phy_setTxPower(struct net_device* dev, u8 channel)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 cckPowerLevel[2], ofdmPowerLevel[2];
+
+ if(priv->bTXPowerDataReadFromEEPORM == false)
+ return;
+ getTxPowerIndex(dev, channel, &cckPowerLevel[0], &ofdmPowerLevel[0]);
+ RT_TRACE(COMP_POWER, "Channel-%d, cckPowerLevel (A / B) = 0x%x / 0x%x, ofdmPowerLevel (A / B) = 0x%x / 0x%x\n",
+ channel, cckPowerLevel[0], cckPowerLevel[1], ofdmPowerLevel[0], ofdmPowerLevel[1]);
+
+ ccxPowerIndexCheck(dev, channel, &cckPowerLevel[0], &ofdmPowerLevel[0]);
+
+ switch(priv->rf_chip)
+ {
+ case RF_8225:
+ break;
+
+ case RF_8256:
+ ;
+ break;
+
+ case RF_6052:
+ PHY_RF6052SetCckTxPower(dev, cckPowerLevel[0]);
+ PHY_RF6052SetOFDMTxPower(dev, &ofdmPowerLevel[0], channel);
+ break;
+
+ case RF_8258:
+ break;
+ default:
+ break;
+ }
+}
+#else
+void rtl8192_phy_setTxPower(struct net_device* dev, u8 channel)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 powerlevel = (u8)EEPROM_Default_TxPower, powerlevelOFDM24G = 0x10;
+ s8 ant_pwr_diff = 0;
+ u32 u4RegValue;
+ u8 index = (channel -1);
+ u8 pwrdiff[2] = {0};
+ u8 ht20pwr[2] = {0}, ht40pwr[2] = {0};
+ u8 rfpath = 0, rfpathnum = 2;
+
+ if(priv->bTXPowerDataReadFromEEPORM == false)
+ return;
+
+
+ powerlevel = priv->RfTxPwrLevelCck[0][index];
+
+ if (priv->rf_type == RF_1T2R || priv->rf_type == RF_1T1R)
+ {
+ powerlevelOFDM24G = priv->RfTxPwrLevelOfdm1T[0][index];
+
+
+ rfpathnum = 1;
+ ht20pwr[0] = ht40pwr[0] = priv->RfTxPwrLevelOfdm1T[0][index];
+ }
+ else if (priv->rf_type == RF_2T2R)
+ {
+ powerlevelOFDM24G = priv->RfTxPwrLevelOfdm2T[0][index];
+ ant_pwr_diff = priv->RfTxPwrLevelOfdm2T[1][index] -
+ priv->RfTxPwrLevelOfdm2T[0][index];
+
+ RT_TRACE(COMP_POWER, "CH-%d HT40 A/B Pwr index = %x/%x(%d/%d)\n",
+ channel, priv->RfTxPwrLevelOfdm2T[0][index],
+ priv->RfTxPwrLevelOfdm2T[1][index],
+ priv->RfTxPwrLevelOfdm2T[0][index],
+ priv->RfTxPwrLevelOfdm2T[1][index]);
+
+ ht20pwr[0] = ht40pwr[0] = priv->RfTxPwrLevelOfdm2T[0][index];
+ ht20pwr[1] = ht40pwr[1] = priv->RfTxPwrLevelOfdm2T[1][index];
+ }
+ RT_TRACE(COMP_POWER, "Channel-%d, set tx power index\n", channel);
+
+ if (priv->eeprom_version >= 2)
+ {
+ if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20)
+ {
+ for (rfpath = 0; rfpath < rfpathnum; rfpath++)
+ {
+ pwrdiff[rfpath] = priv->TxPwrHt20Diff[rfpath][index];
+
+ if (pwrdiff[rfpath] < 8)
+ {
+ ht20pwr[rfpath] += pwrdiff[rfpath];
+ }
+ else
+ {
+ ht20pwr[rfpath] -= (16-pwrdiff[rfpath]);
+ }
+ }
+
+ if (priv->rf_type == RF_2T2R)
+ ant_pwr_diff = ht20pwr[1] - ht20pwr[0];
+
+ RT_TRACE(COMP_POWER, "HT20 to HT40 pwrdiff[A/B]=%d/%d, ant_pwr_diff=%d(B-A=%d-%d)\n",
+ pwrdiff[0], pwrdiff[1], ant_pwr_diff, ht20pwr[1], ht20pwr[0]);
+ }
+ }
+
+ if(ant_pwr_diff > 7)
+ ant_pwr_diff = 7;
+ if(ant_pwr_diff < -8)
+ ant_pwr_diff = -8;
+
+ RT_TRACE(COMP_POWER, "CCK/HT Power index = %x/%x(%d/%d), ant_pwr_diff=%d\n",
+ powerlevel, powerlevelOFDM24G, powerlevel, powerlevelOFDM24G, ant_pwr_diff);
+
+ ant_pwr_diff &= 0xf;
+
+ priv->AntennaTxPwDiff[2] = 0;
+ priv->AntennaTxPwDiff[1] = 0;
+ priv->AntennaTxPwDiff[0] = (u8)(ant_pwr_diff);
+ RT_TRACE(COMP_POWER, "pHalData->AntennaTxPwDiff[0]/[1]/[2] = 0x%x/0x%x/0x%x\n",
+ priv->AntennaTxPwDiff[0], priv->AntennaTxPwDiff[1], priv->AntennaTxPwDiff[2]);
+ u4RegValue = ( priv->AntennaTxPwDiff[2]<<8 |
+ priv->AntennaTxPwDiff[1]<<4 |
+ priv->AntennaTxPwDiff[0] );
+ RT_TRACE(COMP_POWER, "BCD-Diff=0x%x\n", u4RegValue);
+
+ rtl8192_setBBreg(dev, rFPGA0_TxGainStage, (bXBTxAGC|bXCTxAGC|bXDTxAGC), u4RegValue);
+
+#ifdef TODO
+ if( priv->rtllib->iw_mode != IW_MODE_INFRA && priv->bWithCcxCellPwr &&
+ channel == priv->rtllib->current_network.channel)
+ {
+ u8 CckCellPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_B, priv->CcxCellPwr);
+ u8 LegacyOfdmCellPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_G, priv->CcxCellPwr);
+ u8 OfdmCellPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_N_24G, priv->CcxCellPwr);
+
+ RT_TRACE(COMP_TXAGC,
+ ("CCX Cell Limit: %d dbm => CCK Tx power index : %d, Legacy OFDM Tx power index : %d, OFDM Tx power index: %d\n",
+ priv->CcxCellPwr, CckCellPwrIdx, LegacyOfdmCellPwrIdx, OfdmCellPwrIdx));
+ RT_TRACE(COMP_TXAGC,
+ ("EEPROM channel(%d) => CCK Tx power index: %d, Legacy OFDM Tx power index : %d, OFDM Tx power index: %d\n",
+ channel, powerlevel, powerlevelOFDM24G + priv->LegacyHTTxPowerDiff, powerlevelOFDM24G));
+
+ if(powerlevel > CckCellPwrIdx)
+ powerlevel = CckCellPwrIdx;
+ if(powerlevelOFDM24G + priv->LegacyHTTxPowerDiff > LegacyOfdmCellPwrIdx)
+ {
+ if((OfdmCellPwrIdx - priv->LegacyHTTxPowerDiff) > 0)
+ {
+ powerlevelOFDM24G = OfdmCellPwrIdx - priv->LegacyHTTxPowerDiff;
+ }
+ else
+ {
+ powerlevelOFDM24G = 0;
+ }
+ }
+
+ RT_TRACE(COMP_TXAGC,
+ ("Altered CCK Tx power index : %d, Legacy OFDM Tx power index: %d, OFDM Tx power index: %d\n",
+ powerlevel, powerlevelOFDM24G + priv->LegacyHTTxPowerDiff, powerlevelOFDM24G));
+ }
+#endif
+ priv->CurrentCckTxPwrIdx = powerlevel;
+ priv->CurrentOfdm24GTxPwrIdx = powerlevelOFDM24G;
+
+ RT_TRACE(COMP_POWER, "PHY_SetTxPowerLevel8192S(): CCK Tx power index : %d, Legacy OFDM Tx power index: %d, OFDM Tx power index: %d\n",
+ powerlevel, powerlevelOFDM24G + priv->LegacyHTTxPowerDiff, powerlevelOFDM24G);
+
+ switch(priv->rf_chip)
+ {
+ case RF_8225:
+ break;
+
+ case RF_8256:
+ break;
+
+ case RF_6052:
+ PHY_RF6052SetCckTxPower(dev, powerlevel);
+ PHY_RF6052SetOFDMTxPower(dev, powerlevelOFDM24G, channel);
+ break;
+
+ case RF_8258:
+ break;
+ default:
+ break;
+ }
+
+}
+#endif
+
+bool PHY_UpdateTxPowerDbm8192S(struct net_device* dev, long powerInDbm)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 idx;
+ u8 rf_path;
+
+ u8 CckTxPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_B, powerInDbm);
+ u8 OfdmTxPwrIdx = phy_DbmToTxPwrIdx(dev, WIRELESS_MODE_N_24G, powerInDbm);
+
+ if(OfdmTxPwrIdx - priv->LegacyHTTxPowerDiff > 0)
+ OfdmTxPwrIdx -= priv->LegacyHTTxPowerDiff;
+ else
+ OfdmTxPwrIdx = 0;
+
+ RT_TRACE(COMP_POWER, "PHY_UpdateTxPowerDbm8192S(): %ld dBm , CckTxPwrIdx = %d, OfdmTxPwrIdx = %d\n", powerInDbm, CckTxPwrIdx, OfdmTxPwrIdx);
+
+ for(idx = 0; idx < 14; idx++)
+ {
+ priv->TxPowerLevelCCK[idx] = CckTxPwrIdx;
+ priv->TxPowerLevelCCK_A[idx] = CckTxPwrIdx;
+ priv->TxPowerLevelCCK_C[idx] = CckTxPwrIdx;
+ priv->TxPowerLevelOFDM24G[idx] = OfdmTxPwrIdx;
+ priv->TxPowerLevelOFDM24G_A[idx] = OfdmTxPwrIdx;
+ priv->TxPowerLevelOFDM24G_C[idx] = OfdmTxPwrIdx;
+ for (rf_path = 0; rf_path < 2; rf_path++)
+ {
+ priv->RfTxPwrLevelCck[rf_path][idx] = CckTxPwrIdx;
+ priv->RfTxPwrLevelOfdm1T[rf_path][idx] =
+ priv->RfTxPwrLevelOfdm2T[rf_path][idx] = OfdmTxPwrIdx;
+ }
+ }
+
+ rtl8192_phy_setTxPower(dev, priv->chan);
+
+ return true;
+}
+
+extern void PHY_SetBeaconHwReg( struct net_device* dev, u16 BeaconInterval)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 NewBeaconNum;
+
+ if(priv->pFirmware->FirmwareVersion >= 0x33)
+ {
+ write_nic_dword(dev,WFM5,0xF1000000|(BeaconInterval<<8));
+ }
+ else
+ {
+ NewBeaconNum = BeaconInterval *32 - 64;
+ write_nic_dword(dev, WFM3+4, NewBeaconNum);
+ write_nic_dword(dev, WFM3, 0xB026007C);
+}
+}
+
+static u8 phy_DbmToTxPwrIdx(
+ struct net_device* dev,
+ WIRELESS_MODE WirelessMode,
+ long PowerInDbm
+ )
+{
+ u8 TxPwrIdx = 0;
+ long Offset = 0;
+
+
+ switch(WirelessMode)
+ {
+ case WIRELESS_MODE_B:
+ Offset = -7;
+ break;
+
+ case WIRELESS_MODE_G:
+ Offset = -8;
+ break;
+
+ case WIRELESS_MODE_N_24G:
+ default:
+ Offset = -8;
+ break;
+ }
+
+ if((PowerInDbm - Offset) > 0)
+ {
+ TxPwrIdx = (u8)((PowerInDbm - Offset) * 2);
+ }
+ else
+ {
+ TxPwrIdx = 0;
+ }
+
+ if(TxPwrIdx > MAX_TXPWR_IDX_NMODE_92S)
+ TxPwrIdx = MAX_TXPWR_IDX_NMODE_92S;
+
+ return TxPwrIdx;
+}
+
+static long phy_TxPwrIdxToDbm(
+ struct net_device* dev,
+ WIRELESS_MODE WirelessMode,
+ u8 TxPwrIdx
+ )
+{
+ long Offset = 0;
+ long PwrOutDbm = 0;
+
+ switch(WirelessMode)
+ {
+ case WIRELESS_MODE_B:
+ Offset = -7;
+ break;
+
+ case WIRELESS_MODE_G:
+ case WIRELESS_MODE_N_24G:
+ Offset = -8;
+ break;
+ default:
+ Offset = -8;
+ break;
+ }
+
+ PwrOutDbm = TxPwrIdx / 2 + Offset;
+
+ return PwrOutDbm;
+}
+
+#ifdef TO_DO_LIST
+extern void
+PHY_ScanOperationBackup8192S(
+ struct net_device* dev,
+ u8 Operation
+ )
+{
+#if(RTL8192S_DISABLE_FW_DM == 0)
+
+ if(!Adapter->bDriverStopped)
+ {
+ switch(Operation)
+ {
+ case SCAN_OPT_BACKUP:
+ Adapter->HalFunc.SetFwCmdHandler(Adapter, FW_CMD_PAUSE_DM_BY_SCAN);
+ break;
+
+ case SCAN_OPT_RESTORE:
+ Adapter->HalFunc.SetFwCmdHandler(Adapter, FW_CMD_RESUME_DM_BY_SCAN);
+ break;
+
+ default:
+ RT_TRACE(COMP_SCAN, DBG_LOUD, ("Unknown Scan Backup Operation. \n"));
+ break;
+ }
+ }
+#endif
+}
+#endif
+void PHY_SetBWModeCallback8192S(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 regBwOpMode, regRRSR_RSC;
+
+
+
+ RT_TRACE(COMP_SWBW, "==>SetBWModeCallback8192s() Switch to %s bandwidth\n", \
+ priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20?"20MHz":"40MHz");
+
+ if(priv->rf_chip == RF_PSEUDO_11N)
+ {
+ priv->SetBWModeInProgress= false;
+ return;
+ }
+ if(IS_NIC_DOWN(priv)){
+ priv->SwChnlInProgress = priv->SetBWModeInProgress = false;
+ return;
+ }
+
+ regBwOpMode = read_nic_byte(dev, BW_OPMODE);
+ regRRSR_RSC = read_nic_byte(dev, RRSR+2);
+
+ switch(priv->CurrentChannelBW)
+ {
+ case HT_CHANNEL_WIDTH_20:
+ regBwOpMode |= BW_OPMODE_20MHZ;
+ write_nic_byte(dev, BW_OPMODE, regBwOpMode);
+ break;
+
+ case HT_CHANNEL_WIDTH_20_40:
+ regBwOpMode &= ~BW_OPMODE_20MHZ;
+ write_nic_byte(dev, BW_OPMODE, regBwOpMode);
+
+ break;
+
+ default:
+ RT_TRACE(COMP_DBG, "SetBWModeCallback8192s():\
+ unknown Bandwidth: %#X\n",priv->CurrentChannelBW);
+ break;
+ }
+
+ switch(priv->CurrentChannelBW)
+ {
+ case HT_CHANNEL_WIDTH_20:
+ rtl8192_setBBreg(dev, rFPGA0_RFMOD, bRFMOD, 0x0);
+ rtl8192_setBBreg(dev, rFPGA1_RFMOD, bRFMOD, 0x0);
+
+ if(priv->card_8192_version >= VERSION_8192S_BCUT)
+ write_nic_byte(dev, rFPGA0_AnalogParameter2, 0x58);
+ break;
+
+ case HT_CHANNEL_WIDTH_20_40:
+ rtl8192_setBBreg(dev, rFPGA0_RFMOD, bRFMOD, 0x1);
+ rtl8192_setBBreg(dev, rFPGA1_RFMOD, bRFMOD, 0x1);
+
+
+ rtl8192_setBBreg(dev, rCCK0_System, bCCKSideBand, (priv->nCur40MhzPrimeSC>>1));
+ rtl8192_setBBreg(dev, rOFDM1_LSTF, 0xC00, priv->nCur40MhzPrimeSC);
+
+ if(priv->card_8192_version >= VERSION_8192S_BCUT)
+ write_nic_byte(dev, rFPGA0_AnalogParameter2, 0x18);
+ break;
+
+ default:
+ RT_TRACE(COMP_DBG, "SetBWModeCallback8192s(): unknown Bandwidth: %#X\n"\
+ ,priv->CurrentChannelBW);
+ break;
+
+ }
+
+
+ switch( priv->rf_chip )
+ {
+ case RF_8225:
+ break;
+
+ case RF_8256:
+ break;
+
+ case RF_8258:
+ break;
+
+ case RF_PSEUDO_11N:
+ break;
+
+ case RF_6052:
+ PHY_RF6052SetBandwidth(dev, priv->CurrentChannelBW);
+ break;
+ default:
+ printk("Unknown rf_chip: %d\n", priv->rf_chip);
+ break;
+ }
+
+ priv->SetBWModeInProgress= false;
+
+ RT_TRACE(COMP_SWBW, "<==SetBWModeCallback8192s() \n" );
+}
+
+
+void rtl8192_SetBWMode(struct net_device *dev, HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+
+
+
+
+ if(priv->SetBWModeInProgress)
+ return;
+
+ priv->SetBWModeInProgress= true;
+
+ priv->CurrentChannelBW = Bandwidth;
+
+ if(Offset==HT_EXTCHNL_OFFSET_LOWER)
+ priv->nCur40MhzPrimeSC = HAL_PRIME_CHNL_OFFSET_UPPER;
+ else if(Offset==HT_EXTCHNL_OFFSET_UPPER)
+ priv->nCur40MhzPrimeSC = HAL_PRIME_CHNL_OFFSET_LOWER;
+ else
+ priv->nCur40MhzPrimeSC = HAL_PRIME_CHNL_OFFSET_DONT_CARE;
+
+#if 0
+ if(!priv->bDriverStopped)
+ {
+#ifdef USE_WORKITEM
+ PlatformScheduleWorkItem(&(priv->SetBWModeWorkItem));
+#else
+ PlatformSetTimer(dev, &(priv->SetBWModeTimer), 0);
+#endif
+ }
+#endif
+ if(!IS_NIC_DOWN(priv)){
+ PHY_SetBWModeCallback8192S(dev);
+ } else {
+ priv->SetBWModeInProgress= false;
+ }
+}
+
+void PHY_SwChnlCallback8192S(struct net_device *dev)
+{
+
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 delay;
+
+ RT_TRACE(COMP_CH, "==>SwChnlCallback8190Pci(), switch to channel %d\n", priv->chan);
+
+ if(IS_NIC_DOWN(priv))
+ {
+ printk("%s: driver is not up\n", __FUNCTION__);
+ priv->SwChnlInProgress = priv->SetBWModeInProgress = false;
+ return;
+ }
+ if(priv->rf_chip == RF_PSEUDO_11N)
+ {
+ printk("%s: rt chip is RF_PSEUDO_11N\n", __FUNCTION__);
+ priv->SwChnlInProgress=false;
+ return;
+ }
+
+ do{
+ if(!priv->SwChnlInProgress)
+ break;
+
+ if(!phy_SwChnlStepByStep(dev, priv->chan, &priv->SwChnlStage, &priv->SwChnlStep, &delay))
+ {
+ if(delay>0)
+ {
+ mdelay(delay);
+ }
+ else
+ continue;
+ }
+ else
+ {
+ priv->SwChnlInProgress=false;
+ break;
+ }
+ }while(true);
+}
+
+u8 rtl8192_phy_SwChnl(struct net_device* dev, u8 channel)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(IS_NIC_DOWN(priv))
+ {
+ printk("%s: driver is not up.\n",__FUNCTION__);
+ priv->SwChnlInProgress = priv->SetBWModeInProgress = false;
+ return false;
+ }
+ if(priv->SwChnlInProgress){
+ printk("%s: SwChnl is in progress\n",__FUNCTION__);
+ return false;
+ }
+
+ if(priv->SetBWModeInProgress){
+ printk("%s: Set BWMode is in progress\n",__FUNCTION__);
+ return false;
+ }
+ if (0)
+ {
+ u8 path;
+ for(path=0; path<2; path++){
+ printk("============>to set channel:%x\n", rtl8192_phy_QueryRFReg(dev, path, 0x18, 0x3ff));
+ udelay(10);
+ }
+ }
+ switch(priv->rtllib->mode)
+ {
+ case WIRELESS_MODE_A:
+ case WIRELESS_MODE_N_5G:
+ if (channel<=14){
+ RT_TRACE(COMP_ERR, "WIRELESS_MODE_A but channel<=14");
+ return false;
+ }
+ break;
+
+ case WIRELESS_MODE_B:
+ if (channel>14){
+ RT_TRACE(COMP_ERR, "WIRELESS_MODE_B but channel>14");
+ return false;
+ }
+ break;
+
+ case WIRELESS_MODE_G:
+ case WIRELESS_MODE_N_24G:
+ if (channel>14){
+ RT_TRACE(COMP_ERR, "WIRELESS_MODE_G but channel>14");
+ return false;
+ }
+ break;
+
+ default:
+ break;
+ }
+
+ priv->SwChnlInProgress = true;
+ if( channel == 0)
+ channel = 1;
+
+ priv->chan=channel;
+
+ priv->SwChnlStage=0;
+ priv->SwChnlStep=0;
+
+#if 0
+ if(!dev->bDriverStopped)
+ {
+#ifdef USE_WORKITEM
+ PlatformScheduleWorkItem(&(priv->SwChnlWorkItem));
+#else
+ PlatformSetTimer(dev, &(priv->SwChnlTimer), 0);
+#endif
+ }
+#endif
+
+ if(!IS_NIC_DOWN(priv)){
+ PHY_SwChnlCallback8192S(dev);
+ } else {
+ priv->SwChnlInProgress = false;
+ }
+ return true;
+}
+
+
+void PHY_SwChnlPhy8192S(
+ struct net_device* dev,
+ u8 channel
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ RT_TRACE(COMP_SCAN, "==>PHY_SwChnlPhy8192S(), switch to channel %d.\n", priv->chan);
+
+#ifdef TO_DO_LIST
+ if(RT_CANNOT_IO(dev))
+ return;
+#endif
+
+ if(priv->SwChnlInProgress)
+ return;
+
+ if(priv->rf_chip == RF_PSEUDO_11N)
+ {
+ priv->SwChnlInProgress=false;
+ return;
+ }
+
+ priv->SwChnlInProgress = true;
+ if( channel == 0)
+ channel = 1;
+
+ priv->chan=channel;
+
+ priv->SwChnlStage = 0;
+ priv->SwChnlStep = 0;
+
+ phy_FinishSwChnlNow(dev,channel);
+
+ priv->SwChnlInProgress = false;
+}
+
+static bool
+phy_SwChnlStepByStep(
+ struct net_device* dev,
+ u8 channel,
+ u8 *stage,
+ u8 *step,
+ u32 *delay
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ SwChnlCmd PreCommonCmd[MAX_PRECMD_CNT];
+ u32 PreCommonCmdCnt;
+ SwChnlCmd PostCommonCmd[MAX_POSTCMD_CNT];
+ u32 PostCommonCmdCnt;
+ SwChnlCmd RfDependCmd[MAX_RFDEPENDCMD_CNT];
+ u32 RfDependCmdCnt;
+ SwChnlCmd *CurrentCmd = NULL;
+ u8 eRFPath;
+ u16 u2Channel = 0;
+
+ RT_TRACE(COMP_CH, "===========>%s(), channel:%d, stage:%d, step:%d\n", __FUNCTION__, channel, *stage, *step);
+ if (!IsLegalChannel(priv->rtllib, channel))
+ {
+ RT_TRACE(COMP_ERR, "=============>set to illegal channel:%d\n", channel);
+ return true;
+ }
+
+
+ PreCommonCmdCnt = 0;
+ phy_SetSwChnlCmdArray(PreCommonCmd, PreCommonCmdCnt++, MAX_PRECMD_CNT,
+ CmdID_SetTxPowerLevel, 0, 0, 0);
+ phy_SetSwChnlCmdArray(PreCommonCmd, PreCommonCmdCnt++, MAX_PRECMD_CNT,
+ CmdID_End, 0, 0, 0);
+
+ PostCommonCmdCnt = 0;
+
+ phy_SetSwChnlCmdArray(PostCommonCmd, PostCommonCmdCnt++, MAX_POSTCMD_CNT,
+ CmdID_End, 0, 0, 0);
+
+ RfDependCmdCnt = 0;
+ switch( priv->rf_chip )
+ {
+ case RF_8225:
+ if (channel < 1 || channel > 14)
+ RT_TRACE(COMP_ERR, "illegal channel for zebra:%d\n", channel);
+ phy_SetSwChnlCmdArray(RfDependCmd, RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT,
+ CmdID_RF_WriteReg, rRfChannel, channel, 10);
+ phy_SetSwChnlCmdArray(RfDependCmd, RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT,
+ CmdID_End, 0, 0, 0);
+ break;
+
+ case RF_8256:
+ if (channel < 1 || channel > 14)
+ RT_TRACE(COMP_ERR, "illegal channel for zebra:%d\n", channel);
+ phy_SetSwChnlCmdArray(RfDependCmd, RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT,
+ CmdID_RF_WriteReg, rRfChannel, channel, 10);
+ phy_SetSwChnlCmdArray(RfDependCmd, RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT,
+ CmdID_End, 0, 0, 0);
+ break;
+
+ case RF_6052:
+ if (channel < 1 || channel > 14)
+ RT_TRACE(COMP_ERR, "illegal channel for zebra:%d\n", channel);
+
+ u2Channel = channel;
+
+ switch(priv->CurrentChannelBW)
+ {
+ case HT_CHANNEL_WIDTH_20:
+ u2Channel |= BIT10;
+ break;
+
+ case HT_CHANNEL_WIDTH_20_40:
+ u2Channel &= ~BIT10;
+ break;
+ default:
+ u2Channel |= BIT10;
+ break;
+ }
+ u2Channel |= BIT12|BIT13|BIT14;
+
+ phy_SetSwChnlCmdArray(RfDependCmd, RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT,
+ CmdID_RF_WriteReg, RF_CHNLBW, u2Channel, 10);
+ phy_SetSwChnlCmdArray(RfDependCmd, RfDependCmdCnt++, MAX_RFDEPENDCMD_CNT,
+ CmdID_End, 0, 0, 0);
+ break;
+
+ case RF_8258:
+ break;
+
+ default:
+ return false;
+ break;
+ }
+
+
+ do{
+ switch(*stage)
+ {
+ case 0:
+ CurrentCmd=&PreCommonCmd[*step];
+ break;
+ case 1:
+ CurrentCmd=&RfDependCmd[*step];
+ break;
+ case 2:
+ CurrentCmd=&PostCommonCmd[*step];
+ break;
+ }
+
+ if(CurrentCmd->CmdID==CmdID_End)
+ {
+ if((*stage)==2)
+ {
+ return true;
+ }
+ else
+ {
+ (*stage)++;
+ (*step)=0;
+ continue;
+ }
+ }
+
+ switch(CurrentCmd->CmdID)
+ {
+ case CmdID_SetTxPowerLevel:
+#ifndef CONFIG_MP
+ rtl8192_phy_setTxPower(dev,channel);
+#endif
+ break;
+ case CmdID_WritePortUlong:
+ write_nic_dword(dev, CurrentCmd->Para1, CurrentCmd->Para2);
+ break;
+ case CmdID_WritePortUshort:
+ write_nic_word(dev, CurrentCmd->Para1, (u16)CurrentCmd->Para2);
+ break;
+ case CmdID_WritePortUchar:
+ write_nic_byte(dev, CurrentCmd->Para1, (u8)CurrentCmd->Para2);
+ break;
+ case CmdID_RF_WriteReg:
+ for(eRFPath = 0; eRFPath <priv->NumTotalRFPath; eRFPath++)
+ {
+ if (IS_HARDWARE_TYPE_8192SE(dev)) {
+#ifdef CONFIG_FW_SETCHAN
+ u32 rf_bw = ((priv->RfRegChnlVal[eRFPath] & 0xfffffc00) | (CurrentCmd->Para2 & 0xFF00));
+#endif
+ priv->RfRegChnlVal[eRFPath] = ((priv->RfRegChnlVal[eRFPath] & 0xfffffc00) | CurrentCmd->Para2);
+
+#ifdef CONFIG_FW_SETCHAN
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, CurrentCmd->Para1, bRFRegOffsetMask, rf_bw);
+#else
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, CurrentCmd->Para1, bRFRegOffsetMask, priv->RfRegChnlVal[eRFPath]);
+#endif
+ } else {
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)eRFPath, CurrentCmd->Para1, bRFRegOffsetMask, (CurrentCmd->Para2));
+ }
+ }
+ break;
+ default:
+ break;
+ }
+
+ break;
+ }while(true);
+
+ (*delay)=CurrentCmd->msDelay;
+ (*step)++;
+ RT_TRACE(COMP_CH, "<===========%s(), channel:%d, stage:%d, step:%d\n", __FUNCTION__, channel, *stage, *step);
+ return false;
+}
+
+static bool
+phy_SetSwChnlCmdArray(
+ SwChnlCmd* CmdTable,
+ u32 CmdTableIdx,
+ u32 CmdTableSz,
+ SwChnlCmdID CmdID,
+ u32 Para1,
+ u32 Para2,
+ u32 msDelay
+ )
+{
+ SwChnlCmd* pCmd;
+
+ if(CmdTable == NULL)
+ {
+ return false;
+ }
+ if(CmdTableIdx >= CmdTableSz)
+ {
+ return false;
+ }
+
+ pCmd = CmdTable + CmdTableIdx;
+ pCmd->CmdID = CmdID;
+ pCmd->Para1 = Para1;
+ pCmd->Para2 = Para2;
+ pCmd->msDelay = msDelay;
+
+ return true;
+}
+
+static void
+phy_FinishSwChnlNow(
+ struct net_device* dev,
+ u8 channel
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 delay;
+
+ while(!phy_SwChnlStepByStep(dev,channel,&priv->SwChnlStage,&priv->SwChnlStep,&delay))
+ {
+ if(delay>0)
+ mdelay(delay);
+ if(IS_NIC_DOWN(priv))
+ break;
+ }
+}
+
+
+u8 rtl8192_phy_CheckIsLegalRFPath(struct net_device* dev, u32 eRFPath)
+{
+ bool rtValue = true;
+
+#if 0
+ if (priv->rf_type == RF_1T2R && eRFPath != RF90_PATH_A)
+ {
+ rtValue = false;
+ }
+ if (priv->rf_type == RF_1T2R && eRFPath != RF90_PATH_A)
+ {
+
+ }
+#endif
+ return rtValue;
+
+} /* PHY_CheckIsLegalRfPath8192S */
+
+
+
+void
+PHY_IQCalibrate( struct net_device* dev)
+{
+ u32 i, reg;
+ u32 old_value;
+ long X, Y, TX0[4];
+ u32 TXA[4];
+
+
+ for (i = 0; i < 10; i++)
+ {
+ rtl8192_setBBreg(dev, 0xc04, bMaskDWord, 0x00a05430);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xc08, bMaskDWord, 0x000800e4);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe28, bMaskDWord, 0x80800000);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe40, bMaskDWord, 0x02140148);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe44, bMaskDWord, 0x681604a2);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe4c, bMaskDWord, 0x000028d1);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe60, bMaskDWord, 0x0214014d);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe64, bMaskDWord, 0x281608ba);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe6c, bMaskDWord, 0x000028d1);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe48, bMaskDWord, 0xfb000001);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe48, bMaskDWord, 0xf8000001);
+ udelay(2000);
+ rtl8192_setBBreg(dev, 0xc04, bMaskDWord, 0x00a05433);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xc08, bMaskDWord, 0x000000e4);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe28, bMaskDWord, 0x0);
+
+
+ reg = rtl8192_QueryBBReg(dev, 0xeac, bMaskDWord);
+
+ if (!(reg&(BIT27|BIT28|BIT30|BIT31)))
+ {
+ old_value = (rtl8192_QueryBBReg(dev, 0xc80, bMaskDWord) & 0x3FF);
+
+ X = (rtl8192_QueryBBReg(dev, 0xe94, bMaskDWord) & 0x03FF0000)>>16;
+ TXA[RF90_PATH_A] = (X * old_value)/0x100;
+ reg = rtl8192_QueryBBReg(dev, 0xc80, bMaskDWord);
+ reg = (reg & 0xFFFFFC00) | (u32)TXA[RF90_PATH_A];
+ rtl8192_setBBreg(dev, 0xc80, bMaskDWord, reg);
+ udelay(5);
+
+ Y = ( rtl8192_QueryBBReg(dev, 0xe9C, bMaskDWord) & 0x03FF0000)>>16;
+ TX0[RF90_PATH_C] = ((Y * old_value)/0x100);
+ reg = rtl8192_QueryBBReg(dev, 0xc80, bMaskDWord);
+ reg = (reg & 0xffc0ffff) |((u32) (TX0[RF90_PATH_C]&0x3F)<<16);
+ rtl8192_setBBreg(dev, 0xc80, bMaskDWord, reg);
+ reg = rtl8192_QueryBBReg(dev, 0xc94, bMaskDWord);
+ reg = (reg & 0x0fffffff) |(((Y&0x3c0)>>6)<<28);
+ rtl8192_setBBreg(dev, 0xc94, bMaskDWord, reg);
+ udelay(5);
+
+ reg = rtl8192_QueryBBReg(dev, 0xc14, bMaskDWord);
+ X = (rtl8192_QueryBBReg(dev, 0xea4, bMaskDWord) & 0x03FF0000)>>16;
+ reg = (reg & 0xFFFFFC00) |X;
+ rtl8192_setBBreg(dev, 0xc14, bMaskDWord, reg);
+ Y = (rtl8192_QueryBBReg(dev, 0xeac, bMaskDWord) & 0x003F0000)>>16;
+ reg = (reg & 0xFFFF03FF) |Y<<10;
+ rtl8192_setBBreg(dev, 0xc14, bMaskDWord, reg);
+ udelay(5);
+ old_value = (rtl8192_QueryBBReg(dev, 0xc88, bMaskDWord) & 0x3FF);
+
+ X = (rtl8192_QueryBBReg(dev, 0xeb4, bMaskDWord) & 0x03FF0000)>>16;
+ reg = rtl8192_QueryBBReg(dev, 0xc88, bMaskDWord);
+ TXA[RF90_PATH_A] = (X * old_value) / 0x100;
+ reg = (reg & 0xFFFFFC00) | TXA[RF90_PATH_A];
+ rtl8192_setBBreg(dev, 0xc88, bMaskDWord, reg);
+ udelay(5);
+
+ Y = (rtl8192_QueryBBReg(dev, 0xebc, bMaskDWord)& 0x03FF0000)>>16;
+ TX0[RF90_PATH_C] = ((Y * old_value)/0x100);
+ reg = rtl8192_QueryBBReg(dev, 0xc88, bMaskDWord);
+ reg = (reg & 0xffc0ffff) |( (TX0[RF90_PATH_C]&0x3F)<<16);
+ rtl8192_setBBreg(dev, 0xc88, bMaskDWord, reg);
+ reg = rtl8192_QueryBBReg(dev, 0xc9c, bMaskDWord);
+ reg = (reg & 0x0fffffff) |(((Y&0x3c0)>>6)<<28);
+ rtl8192_setBBreg(dev, 0xc9c, bMaskDWord, reg);
+ udelay(5);
+
+ reg = rtl8192_QueryBBReg(dev, 0xc1c, bMaskDWord);
+ X = (rtl8192_QueryBBReg(dev, 0xec4, bMaskDWord) & 0x03FF0000)>>16;
+ reg = (reg & 0xFFFFFC00) |X;
+ rtl8192_setBBreg(dev, 0xc1c, bMaskDWord, reg);
+
+ Y = (rtl8192_QueryBBReg(dev, 0xecc, bMaskDWord) & 0x003F0000)>>16;
+ reg = (reg & 0xFFFF03FF) |Y<<10;
+ rtl8192_setBBreg(dev, 0xc1c, bMaskDWord, reg);
+ udelay(5);
+
+ RT_TRACE(COMP_INIT, "PHY_IQCalibrate OK\n");
+ break;
+ }
+
+ }
+
+
+
+
+}
+
+extern void PHY_IQCalibrateBcut(struct net_device* dev)
+{
+ u32 i, reg;
+ u32 old_value;
+ long X, Y, TX0[4];
+ u32 TXA[4];
+ u32 calibrate_set[13] = {0};
+ u32 load_value[13];
+ u8 RfPiEnable=0;
+
+ /*
+ 0xee0[31:0]=0x3fed92fb;
+ 0xedc[31:0] =0x3fed92fb;
+ 0xe70[31:0] =0x3fed92fb;
+ 0xe74[31:0] =0x3fed92fb;
+ 0xe78[31:0] =0x3fed92fb;
+ 0xe7c[31:0]= 0x3fed92fb;
+ 0xe80[31:0]= 0x3fed92fb;
+ 0xe84[31:0]= 0x3fed92fb;
+ 0xe88[31:0]= 0x3fed92fb;
+ 0xe8c[31:0]= 0x3fed92fb;
+ 0xed0[31:0]= 0x3fed92fb;
+ 0xed4[31:0]= 0x3fed92fb;
+ 0xed8[31:0]= 0x3fed92fb;
+ */
+ calibrate_set [0] = 0xee0;
+ calibrate_set [1] = 0xedc;
+ calibrate_set [2] = 0xe70;
+ calibrate_set [3] = 0xe74;
+ calibrate_set [4] = 0xe78;
+ calibrate_set [5] = 0xe7c;
+ calibrate_set [6] = 0xe80;
+ calibrate_set [7] = 0xe84;
+ calibrate_set [8] = 0xe88;
+ calibrate_set [9] = 0xe8c;
+ calibrate_set [10] = 0xed0;
+ calibrate_set [11] = 0xed4;
+ calibrate_set [12] = 0xed8;
+ for (i = 0; i < 13; i++)
+ {
+ load_value[i] = rtl8192_QueryBBReg(dev, calibrate_set[i], bMaskDWord);
+ rtl8192_setBBreg(dev, calibrate_set[i], bMaskDWord, 0x3fed92fb);
+
+ }
+
+ RfPiEnable = (u8)rtl8192_QueryBBReg(dev, rFPGA0_XA_HSSIParameter1, BIT8);
+ for (i = 0; i < 10; i++)
+ {
+ RT_TRACE(COMP_INIT, "IQK -%d\n", i);
+ if (!RfPiEnable)
+ {
+ rtl8192_setBBreg(dev, 0x820, bMaskDWord, 0x01000100);
+ rtl8192_setBBreg(dev, 0x828, bMaskDWord, 0x01000100);
+ }
+
+ rtl8192_setBBreg(dev, 0xc04, bMaskDWord, 0x00a05430);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xc08, bMaskDWord, 0x000800e4);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe28, bMaskDWord, 0x80800000);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe40, bMaskDWord, 0x02140102);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe44, bMaskDWord, 0x681604c2);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe4c, bMaskDWord, 0x000028d1);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe60, bMaskDWord, 0x02140102);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe64, bMaskDWord, 0x28160d05);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe48, bMaskDWord, 0xfb000000);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe48, bMaskDWord, 0xf8000000);
+ udelay(5);
+
+ udelay(2000);
+
+ rtl8192_setBBreg(dev, 0xe6c, bMaskDWord, 0x020028d1);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe48, bMaskDWord, 0xfb000000);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe48, bMaskDWord, 0xf8000000);
+
+ udelay(2000);
+
+ rtl8192_setBBreg(dev, 0xc04, bMaskDWord, 0x00a05433);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xc08, bMaskDWord, 0x000000e4);
+ udelay(5);
+ rtl8192_setBBreg(dev, 0xe28, bMaskDWord, 0x0);
+
+ if (!RfPiEnable)
+ {
+ rtl8192_setBBreg(dev, 0x820, bMaskDWord, 0x01000000);
+ rtl8192_setBBreg(dev, 0x828, bMaskDWord, 0x01000000);
+ }
+
+
+ reg = rtl8192_QueryBBReg(dev, 0xeac, bMaskDWord);
+
+ if (!(reg&(BIT27|BIT28|BIT30|BIT31)))
+ {
+ old_value = (rtl8192_QueryBBReg(dev, 0xc80, bMaskDWord) & 0x3FF);
+
+ X = (rtl8192_QueryBBReg(dev, 0xe94, bMaskDWord) & 0x03FF0000)>>16;
+ TXA[RF90_PATH_A] = (X * old_value)/0x100;
+ reg = rtl8192_QueryBBReg(dev, 0xc80, bMaskDWord);
+ reg = (reg & 0xFFFFFC00) | (u32)TXA[RF90_PATH_A];
+ rtl8192_setBBreg(dev, 0xc80, bMaskDWord, reg);
+ udelay(5);
+
+ Y = ( rtl8192_QueryBBReg(dev, 0xe9C, bMaskDWord) & 0x03FF0000)>>16;
+ TX0[RF90_PATH_C] = ((Y * old_value)/0x100);
+ reg = rtl8192_QueryBBReg(dev, 0xc80, bMaskDWord);
+ reg = (reg & 0xffc0ffff) |((u32) (TX0[RF90_PATH_C]&0x3F)<<16);
+ rtl8192_setBBreg(dev, 0xc80, bMaskDWord, reg);
+ reg = rtl8192_QueryBBReg(dev, 0xc94, bMaskDWord);
+ reg = (reg & 0x0fffffff) |(((Y&0x3c0)>>6)<<28);
+ rtl8192_setBBreg(dev, 0xc94, bMaskDWord, reg);
+ udelay(5);
+
+ reg = rtl8192_QueryBBReg(dev, 0xc14, bMaskDWord);
+ X = (rtl8192_QueryBBReg(dev, 0xea4, bMaskDWord) & 0x03FF0000)>>16;
+ reg = (reg & 0xFFFFFC00) |X;
+ rtl8192_setBBreg(dev, 0xc14, bMaskDWord, reg);
+ Y = (rtl8192_QueryBBReg(dev, 0xeac, bMaskDWord) & 0x003F0000)>>16;
+ reg = (reg & 0xFFFF03FF) |Y<<10;
+ rtl8192_setBBreg(dev, 0xc14, bMaskDWord, reg);
+ udelay(5);
+ old_value = (rtl8192_QueryBBReg(dev, 0xc88, bMaskDWord) & 0x3FF);
+
+ X = (rtl8192_QueryBBReg(dev, 0xeb4, bMaskDWord) & 0x03FF0000)>>16;
+ reg = rtl8192_QueryBBReg(dev, 0xc88, bMaskDWord);
+ TXA[RF90_PATH_A] = (X * old_value) / 0x100;
+ reg = (reg & 0xFFFFFC00) | TXA[RF90_PATH_A];
+ rtl8192_setBBreg(dev, 0xc88, bMaskDWord, reg);
+ udelay(5);
+
+ Y = (rtl8192_QueryBBReg(dev, 0xebc, bMaskDWord)& 0x03FF0000)>>16;
+ TX0[RF90_PATH_C] = ((Y * old_value)/0x100);
+ reg = rtl8192_QueryBBReg(dev, 0xc88, bMaskDWord);
+ reg = (reg & 0xffc0ffff) |( (TX0[RF90_PATH_C]&0x3F)<<16);
+ rtl8192_setBBreg(dev, 0xc88, bMaskDWord, reg);
+ reg = rtl8192_QueryBBReg(dev, 0xc9c, bMaskDWord);
+ reg = (reg & 0x0fffffff) |(((Y&0x3c0)>>6)<<28);
+ rtl8192_setBBreg(dev, 0xc9c, bMaskDWord, reg);
+ udelay(5);
+
+ reg = rtl8192_QueryBBReg(dev, 0xc1c, bMaskDWord);
+ X = (rtl8192_QueryBBReg(dev, 0xec4, bMaskDWord) & 0x03FF0000)>>16;
+ reg = (reg & 0xFFFFFC00) |X;
+ rtl8192_setBBreg(dev, 0xc1c, bMaskDWord, reg);
+
+ Y = (rtl8192_QueryBBReg(dev, 0xecc, bMaskDWord) & 0x003F0000)>>16;
+ reg = (reg & 0xFFFF03FF) |Y<<10;
+ rtl8192_setBBreg(dev, 0xc1c, bMaskDWord, reg);
+ udelay(5);
+
+ RT_TRACE(COMP_INIT, "PHY_IQCalibrate OK\n");
+ break;
+ }
+
+ }
+
+ for (i = 0; i < 13; i++)
+ rtl8192_setBBreg(dev, calibrate_set[i], bMaskDWord, load_value[i]);
+
+
+
+
+
+}
+
+#define HalGetFirmwareVerison(priv) (priv->pFirmware->FirmwareVersion )
+bool rtl8192se_set_fw_cmd(struct net_device* dev, FW_CMD_IO_TYPE FwCmdIO)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 FwParam = FW_CMD_IO_PARA_QUERY(priv);
+ u16 FwCmdMap = FW_CMD_IO_QUERY(priv);
+ bool bPostProcessing = false;
+
+ RT_TRACE(COMP_CMD, "-->HalSetFwCmd8192S(): Set FW Cmd(%#x), SetFwCmdInProgress(%d)\n", FwCmdIO, priv->SetFwCmdInProgress);
+
+
+
+
+
+ RT_TRACE(COMP_CMD, "-->HalSetFwCmd8192S(): Set FW Cmd(%#x), SetFwCmdInProgress(%d)\n",
+ FwCmdIO, priv->SetFwCmdInProgress);
+
+ do{
+
+ if(HalGetFirmwareVerison(priv) >= 0x35)
+ {
+ switch(FwCmdIO)
+ {
+ case FW_CMD_RA_REFRESH_N:
+ FwCmdIO = FW_CMD_RA_REFRESH_N_COMB;
+ break;
+ case FW_CMD_RA_REFRESH_BG:
+ FwCmdIO = FW_CMD_RA_REFRESH_BG_COMB;
+ break;
+ default:
+ break;
+ }
+ }
+ else
+ {
+ if((FwCmdIO == FW_CMD_IQK_ENABLE) ||
+ (FwCmdIO == FW_CMD_RA_REFRESH_N) ||
+ (FwCmdIO == FW_CMD_RA_REFRESH_BG))
+ {
+ bPostProcessing = true;
+ break;
+ }
+ }
+
+ if(HalGetFirmwareVerison(priv) >= 0x3E)
+ {
+ if(FwCmdIO == FW_CMD_CTRL_DM_BY_DRIVER)
+ FwCmdIO = FW_CMD_CTRL_DM_BY_DRIVER_NEW;
+ }
+
+
+ switch(FwCmdIO)
+ {
+
+ case FW_CMD_RA_INIT:
+ RT_TRACE(COMP_CMD, "[FW CMD] [New Version] RA init!!\n");
+ FwCmdMap |= FW_RA_INIT_CTL;
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ FW_CMD_IO_CLR(priv, FW_RA_INIT_CTL);
+ break;
+
+ case FW_CMD_DIG_DISABLE:
+ RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set DIG disable!!\n");
+ FwCmdMap &= ~FW_DIG_ENABLE_CTL;
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ break;
+
+ case FW_CMD_DIG_ENABLE:
+ case FW_CMD_DIG_RESUME:
+ if(!(priv->DMFlag & HAL_DM_DIG_DISABLE))
+ {
+ RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set DIG enable or resume!!\n");
+ FwCmdMap |= (FW_DIG_ENABLE_CTL|FW_SS_CTL);
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ }
+ break;
+
+ case FW_CMD_DIG_HALT:
+ RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set DIG halt!!\n");
+ FwCmdMap &= ~(FW_DIG_ENABLE_CTL|FW_SS_CTL);
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ break;
+
+ case FW_CMD_TXPWR_TRACK_THERMAL:
+ {
+ u8 ThermalVal = 0;
+ FwCmdMap |= FW_PWR_TRK_CTL;
+ FwParam &= FW_PWR_TRK_PARAM_CLR;
+ ThermalVal = priv->ThermalValue;
+ FwParam |= ((ThermalVal<<24) |(priv->ThermalMeter[0]<<16));
+ RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set TxPwr tracking!! FwCmdMap(%#x), FwParam(%#x)\n", FwCmdMap, FwParam);
+ FW_CMD_PARA_SET(priv, FwParam);
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ FW_CMD_IO_CLR(priv, FW_PWR_TRK_CTL);
+ }
+ break;
+
+ case FW_CMD_RA_REFRESH_N_COMB:
+ FwCmdMap |= FW_RA_N_CTL;
+ FwCmdMap &= ~(FW_RA_BG_CTL |FW_RA_INIT_CTL);
+ FwParam &= FW_RA_PARAM_CLR;
+ if(!(priv->rtllib->pHTInfo->IOTRaFunc & HT_IOT_RAFUNC_DISABLE_ALL))
+ FwParam |= ((priv->rtllib->pHTInfo->IOTRaFunc)&0xf);
+ FwParam |= ((priv->rtllib->pHTInfo->IOTPeer & 0xf) <<4);
+ RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set RA/IOT Comb in n mode!! FwCmdMap(%#x), FwParam(%#x)\n", FwCmdMap, FwParam);
+ FW_CMD_PARA_SET(priv, FwParam);
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ FW_CMD_IO_CLR(priv, FW_RA_N_CTL);
+ break;
+
+ case FW_CMD_RA_REFRESH_BG_COMB:
+ FwCmdMap |= FW_RA_BG_CTL;
+ FwCmdMap &= ~(FW_RA_N_CTL|FW_RA_INIT_CTL);
+ FwParam &= FW_RA_PARAM_CLR;
+ if(!(priv->rtllib->pHTInfo->IOTRaFunc & HT_IOT_RAFUNC_DISABLE_ALL))
+ FwParam |= ((priv->rtllib->pHTInfo->IOTRaFunc)&0xf);
+ FwParam |= ((priv->rtllib->pHTInfo->IOTPeer & 0xf) <<4);
+ RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set RA/IOT Comb in BG mode!! FwCmdMap(%#x), FwParam(%#x)\n", FwCmdMap, FwParam);
+ FW_CMD_PARA_SET(priv, FwParam);
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ FW_CMD_IO_CLR(priv, FW_RA_BG_CTL);
+ break;
+
+ case FW_CMD_IQK_ENABLE:
+ RT_TRACE(COMP_CMD, "[FW CMD] [New Version] IQK enable.\n");
+ FwCmdMap |= FW_IQK_CTL;
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ FW_CMD_IO_CLR(priv, FW_IQK_CTL);
+ break;
+
+ case FW_CMD_CTRL_DM_BY_DRIVER_NEW:
+ RT_TRACE(COMP_CMD, "[FW CMD][New Version] Inform FW driver control some DM!! FwCmdMap(%#x), FwParam(%#x)\n", FwCmdMap, FwParam);
+ FwCmdMap |= FW_DRIVER_CTRL_DM_CTL;
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ break;
+
+ case FW_CMD_RESUME_DM_BY_SCAN:
+ RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Resume DM after scan.\n");
+ FwCmdMap |= (FW_DIG_ENABLE_CTL|FW_HIGH_PWR_ENABLE_CTL|FW_SS_CTL);
+
+ if(priv->DMFlag & HAL_DM_DIG_DISABLE || !dm_digtable.dig_enable_flag)
+ FwCmdMap &= ~FW_DIG_ENABLE_CTL;
+
+ if((priv->DMFlag & HAL_DM_HIPWR_DISABLE) ||
+ (priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_HIGH_POWER) ||
+ (priv->rtllib->bdynamic_txpower_enable == true))
+ FwCmdMap &= ~FW_HIGH_PWR_ENABLE_CTL;
+
+ if( (dm_digtable.Dig_Ext_Port_Stage == DIG_EXT_PORT_STAGE_0) ||
+ (dm_digtable.Dig_Ext_Port_Stage == DIG_EXT_PORT_STAGE_1))
+ FwCmdMap &= ~FW_DIG_ENABLE_CTL;
+
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ bPostProcessing = true;
+ break;
+
+ case FW_CMD_PAUSE_DM_BY_SCAN:
+ RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Pause DM before scan.\n");
+ FwCmdMap &= ~(FW_DIG_ENABLE_CTL|FW_HIGH_PWR_ENABLE_CTL|FW_SS_CTL);
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ bPostProcessing = true;
+ break;
+
+ case FW_CMD_HIGH_PWR_DISABLE:
+ RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set HighPwr disable!!\n");
+ FwCmdMap &= ~FW_HIGH_PWR_ENABLE_CTL;
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ bPostProcessing = true;
+ break;
+
+ case FW_CMD_HIGH_PWR_ENABLE:
+ if(((priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_HIGH_POWER)==0) &&
+ !(priv->DMFlag & HAL_DM_HIPWR_DISABLE) &&
+ (priv->rtllib->bdynamic_txpower_enable != true))
+ {
+ RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set HighPwr enable!!\n");
+ FwCmdMap |= (FW_HIGH_PWR_ENABLE_CTL|FW_SS_CTL);
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ bPostProcessing = true;
+ }
+ break;
+
+ case FW_CMD_DIG_MODE_FA:
+ RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set DIG Mode to FA.\n");
+ FwCmdMap |= FW_FA_CTL;
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ break;
+
+ case FW_CMD_DIG_MODE_SS:
+ RT_TRACE(COMP_CMD, "[FW CMD] [New Version] Set DIG Mode to SS.\n");
+ FwCmdMap &= ~FW_FA_CTL;
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ break;
+
+ case FW_CMD_PAPE_CONTROL:
+ RT_TRACE(COMP_CMD, "[FW CMD] Set PAPE Control \n");
+#ifdef MERGE_TO_DO
+ if(pHalData->bt_coexist.BT_PapeCtrl)
+ {
+ RTPRINT(FBT, BT_TRACE, ("BT set PAPE Control to SW/HW dynamically. \n"));
+ FwCmdMap |= FW_PAPE_CTL_BY_SW_HW;
+ }
+ else
+#endif
+ {
+ printk("BT set PAPE Control to SW\n");
+ FwCmdMap &= ~FW_PAPE_CTL_BY_SW_HW;
+ }
+ FW_CMD_IO_SET(priv, FwCmdMap);
+ break;
+
+ default:
+ bPostProcessing = true;
+ break;
+ }
+ }while(false);
+
+ RT_TRACE(COMP_CMD, "[FW CMD] Current FwCmdMap(%#x)\n", priv->FwCmdIOMap);
+ RT_TRACE(COMP_CMD, "[FW CMD] Current FwCmdIOParam(%#x)\n", priv->FwCmdIOParam);
+
+ if(bPostProcessing && !priv->SetFwCmdInProgress)
+ {
+ priv->SetFwCmdInProgress = true;
+ priv->CurrentFwCmdIO = FwCmdIO;
+ }
+ else
+ {
+ return false;
+ }
+
+#if 0
+#ifdef USE_WORKITEM
+ PlatformScheduleWorkItem(&(pHalData->FwCmdIOWorkItem));
+#else
+ PlatformSetTimer(Adapter, &(pHalData->SetFwCmdIOTimer), 0);
+#endif
+#endif
+ rtl8192_SetFwCmdIOCallback(dev);
+ return true;
+}
+void ChkFwCmdIoDone(struct net_device* dev)
+{
+ u16 PollingCnt = 10000;
+ u32 tmpValue;
+
+ do
+ {
+
+ udelay(10);
+
+ tmpValue = read_nic_dword(dev, WFM5);
+ if(tmpValue == 0)
+ {
+ RT_TRACE(COMP_CMD, "[FW CMD] Set FW Cmd success!!\n");
+ break;
+ }
+ else
+ {
+ RT_TRACE(COMP_CMD, "[FW CMD] Polling FW Cmd PollingCnt(%d)!!\n", PollingCnt);
+ }
+ }while( --PollingCnt );
+
+ if(PollingCnt == 0)
+ {
+ RT_TRACE(COMP_ERR, "[FW CMD] Set FW Cmd fail!!\n");
+ }
+}
+void rtl8192_SetFwCmdIOCallback(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 input,CurrentAID = 0;
+
+ if(IS_NIC_DOWN(priv)){
+ RT_TRACE(COMP_CMD, "SetFwCmdIOTimerCallback(): driver is going to unload\n");
+ return;
+ }
+
+ RT_TRACE(COMP_CMD, "--->SetFwCmdIOTimerCallback(): Cmd(%#x), SetFwCmdInProgress(%d)\n", priv->CurrentFwCmdIO, priv->SetFwCmdInProgress);
+
+ if(HalGetFirmwareVerison(priv) >= 0x34)
+ {
+ switch(priv->CurrentFwCmdIO)
+ {
+ case FW_CMD_RA_REFRESH_N:
+ priv->CurrentFwCmdIO = FW_CMD_RA_REFRESH_N_COMB;
+ break;
+ case FW_CMD_RA_REFRESH_BG:
+ priv->CurrentFwCmdIO = FW_CMD_RA_REFRESH_BG_COMB;
+ break;
+ default:
+ break;
+ }
+ }
+
+ switch(priv->CurrentFwCmdIO)
+ {
+
+ case FW_CMD_RA_RESET:
+ RT_TRACE(COMP_CMD, "[FW CMD] Set RA Reset!!\n");
+ write_nic_dword(dev, WFM5, FW_RA_RESET);
+ ChkFwCmdIoDone(dev);
+ break;
+
+ case FW_CMD_RA_ACTIVE:
+ RT_TRACE(COMP_CMD, "[FW CMD] Set RA Active!!\n");
+ write_nic_dword(dev, WFM5, FW_RA_ACTIVE);
+ ChkFwCmdIoDone(dev);
+ break;
+
+ case FW_CMD_RA_REFRESH_N:
+ RT_TRACE(COMP_CMD, "[FW CMD] Set RA n refresh!!\n");
+ if(priv->rtllib->pHTInfo->IOTRaFunc & HT_IOT_RAFUNC_DISABLE_ALL)
+ input = FW_RA_REFRESH;
+ else
+ input = FW_RA_REFRESH | (priv->rtllib->pHTInfo->IOTRaFunc << 8);
+ write_nic_dword(dev, WFM5, input);
+ ChkFwCmdIoDone(dev);
+ write_nic_dword(dev, WFM5, FW_RA_ENABLE_RSSI_MASK);
+ ChkFwCmdIoDone(dev);
+ break;
+
+ case FW_CMD_RA_REFRESH_BG:
+ RT_TRACE(COMP_CMD, "[FW CMD] Set RA BG refresh!!\n");
+ write_nic_dword(dev, WFM5, FW_RA_REFRESH);
+ ChkFwCmdIoDone(dev);
+ write_nic_dword(dev, WFM5, FW_RA_DISABLE_RSSI_MASK);
+ ChkFwCmdIoDone(dev);
+ break;
+
+ case FW_CMD_RA_REFRESH_N_COMB:
+ RT_TRACE(COMP_CMD, "[FW CMD] Set RA n Combo refresh!!\n");
+ if(priv->rtllib->pHTInfo->IOTRaFunc & HT_IOT_RAFUNC_DISABLE_ALL)
+ input = FW_RA_IOT_N_COMB;
+ else
+ input = FW_RA_IOT_N_COMB | (((priv->rtllib->pHTInfo->IOTRaFunc)&0x0f) << 8);
+ input = input |((priv->rtllib->pHTInfo->IOTPeer & 0xf) <<12);
+ RT_TRACE(COMP_CMD, "[FW CMD] Set RA/IOT Comb in n mode!! input(%#x)\n", input);
+ write_nic_dword(dev, WFM5, input);
+ ChkFwCmdIoDone(dev);
+ break;
+
+ case FW_CMD_RA_REFRESH_BG_COMB:
+ RT_TRACE(COMP_CMD, "[FW CMD] Set RA B/G Combo refresh!!\n");
+ if(priv->rtllib->pHTInfo->IOTRaFunc & HT_IOT_RAFUNC_DISABLE_ALL)
+ input = FW_RA_IOT_BG_COMB;
+ else
+ input = FW_RA_IOT_BG_COMB | (((priv->rtllib->pHTInfo->IOTRaFunc)&0x0f) << 8);
+ input = input |((priv->rtllib->pHTInfo->IOTPeer & 0xf) <<12);
+ RT_TRACE(COMP_CMD, "[FW CMD] Set RA/IOT Comb in B/G mode!! input(%#x)\n", input);
+ write_nic_dword(dev, WFM5, input);
+ ChkFwCmdIoDone(dev);
+ break;
+
+ case FW_CMD_IQK_ENABLE:
+ RT_TRACE(COMP_CMD, "[FW CMD] IQK Enable!!\n");
+ write_nic_dword(dev, WFM5, FW_IQK_ENABLE);
+ ChkFwCmdIoDone(dev);
+ break;
+
+ case FW_CMD_PAUSE_DM_BY_SCAN:
+ RT_TRACE(COMP_CMD, "[FW CMD] Pause DM by Scan!!\n");
+ rtl8192_setBBreg(dev, rOFDM0_XAAGCCore1, bMaskByte0, 0x17);
+ rtl8192_setBBreg(dev, rOFDM0_XBAGCCore1, bMaskByte0, 0x17);
+ rtl8192_setBBreg(dev, rCCK0_CCA, bMaskByte2, 0x40);
+ break;
+
+ case FW_CMD_RESUME_DM_BY_SCAN:
+ RT_TRACE(COMP_CMD, "[FW CMD] Resume DM by Scan!!\n");
+ rtl8192_setBBreg(dev, rCCK0_CCA, bMaskByte2, 0x83);
+ rtl8192_phy_setTxPower(dev, priv->rtllib->current_network.channel);
+ break;
+
+ case FW_CMD_HIGH_PWR_DISABLE:
+ RT_TRACE(COMP_CMD, "[FW CMD] High Pwr Disable!!\n");
+ if(priv->DMFlag & HAL_DM_HIPWR_DISABLE)
+ break;
+ rtl8192_setBBreg(dev, rOFDM0_XAAGCCore1, bMaskByte0, 0x17);
+ rtl8192_setBBreg(dev, rOFDM0_XBAGCCore1, bMaskByte0, 0x17);
+ rtl8192_setBBreg(dev, rCCK0_CCA, bMaskByte2, 0x40);
+ break;
+
+ case FW_CMD_HIGH_PWR_ENABLE:
+ RT_TRACE(COMP_CMD, "[FW CMD] High Pwr Enable!!\n");
+ if((priv->DMFlag & HAL_DM_HIPWR_DISABLE) ||
+ (priv->rtllib->bdynamic_txpower_enable == true))
+ break;
+ rtl8192_setBBreg(dev, rCCK0_CCA, bMaskByte2, 0x83);
+ break;
+
+ case FW_CMD_LPS_ENTER:
+ RT_TRACE(COMP_CMD, "[FW CMD] Enter LPS mode!!\n");
+ CurrentAID = priv->rtllib->assoc_id;
+ write_nic_dword(dev, WFM5, (FW_LPS_ENTER| ((CurrentAID|0xc000)<<8)) );
+ ChkFwCmdIoDone(dev);
+ priv->rtllib->pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_EDCA_TURBO;
+ break;
+
+ case FW_CMD_LPS_LEAVE:
+ RT_TRACE(COMP_CMD, "[FW CMD] Leave LPS mode!!\n");
+ write_nic_dword(dev, WFM5, FW_LPS_LEAVE );
+ ChkFwCmdIoDone(dev);
+ priv->rtllib->pHTInfo->IOTAction &= (~HT_IOT_ACT_DISABLE_EDCA_TURBO);
+ break;
+
+ case FW_CMD_ADD_A2_ENTRY:
+ RT_TRACE(COMP_CMD, "[FW CMD] ADD A2 entry!!\n");
+ write_nic_dword(dev, WFM5, FW_ADD_A2_ENTRY);
+ ChkFwCmdIoDone(dev);
+ break;
+
+ case FW_CMD_CTRL_DM_BY_DRIVER:
+ RT_TRACE(COMP_CMD, "[FW CMD] Inform fw driver will do some dm at driver\n");
+ write_nic_dword(dev, WFM5, FW_CTRL_DM_BY_DRIVER);
+ ChkFwCmdIoDone(dev);
+ break;
+ case FW_CMD_CHAN_SET:
+ input = FW_CHAN_SET | (((priv->chan)&0xff) << 8);
+ RT_TRACE(COMP_CMD, "[FW CMD] Inform fw to set channel to %x!!, input(%#x):\n", priv->chan,input);
+ write_nic_dword(dev, WFM5, input);
+ ChkFwCmdIoDone(dev);
+ break;
+
+ default:
+ break;
+ }
+
+
+ ChkFwCmdIoDone(dev);
+
+
+ priv->SetFwCmdInProgress = false;
+ RT_TRACE(COMP_CMD, "<---SetFwCmdIOWorkItemCallback()\n");
+}
+
+static void
+phy_CheckEphySwitchReady(struct net_device* dev)
+{
+ u32 delay = 100;
+ u8 regu1;
+
+ regu1 = read_nic_byte(dev, 0x554);
+ while ((regu1 & BIT5) && (delay > 0))
+ {
+ regu1 = read_nic_byte(dev, 0x554);
+ delay--;
+ udelay(50);
+ }
+ RT_TRACE(COMP_INIT, "regu1=%02x delay = %d\n", regu1, delay);
+
+}
+
+#ifdef TO_DO_LIST
+void
+HW_RadioGpioChk92SE(
+ IN PADAPTER pAdapter
+ )
+{
+ PMGNT_INFO pMgntInfo = &(pAdapter->MgntInfo);
+ u1Byte u1Tmp = 0;
+ HAL_DATA_TYPE *pHalData = GET_HAL_DATA(pAdapter);
+ RT_RF_POWER_STATE eRfPowerStateToSet;
+ BOOLEAN bActuallySet = false;
+
+#if 0
+ if (!RT_IN_PS_LEVEL(pAdapter, RT_RF_OFF_LEVL_PCI_D3) &&
+ pMgntInfo->RfOffReason != RF_CHANGE_BY_HW)
+ {
+ return;
+ }
+
+ PlatformSwitchClkReq(pAdapter, 0x00);
+
+ if (RT_IN_PS_LEVEL(pAdapter, RT_RF_OFF_LEVL_PCI_D3))
+ {
+ RT_LEAVE_D3(pAdapter, false);
+ RT_CLEAR_PS_LEVEL(pAdapter, RT_RF_OFF_LEVL_PCI_D3);
+ Power_DomainInit92SE(pAdapter);
+ }
+
+ PlatformEFIOWrite1Byte(pAdapter, MAC_PINMUX_CFG, (GPIOMUX_EN | GPIOSEL_GPIO));
+
+ u1Tmp = PlatformEFIORead1Byte(pAdapter, GPIO_IO_SEL);
+ u1Tmp &= HAL_8192S_HW_GPIO_OFF_MASK;
+ PlatformEFIOWrite1Byte(pAdapter, GPIO_IO_SEL, u1Tmp);
+
+ RT_TRACE(COMP_CMD, DBG_LOUD,
+ ("HW_RadioGpioChk92SE HW_RadioGpioChk92SE=%02x\n", HW_RadioGpioChk92SE));
+
+ u1Tmp = PlatformEFIORead1Byte(pAdapter, GPIO_IN);
+
+ eRfPowerStateToSet = (u1Tmp & HAL_8192S_HW_GPIO_OFF_BIT) ? eRfOn : eRfOff;
+
+ if( (pHalData->bHwRadioOff == true) && (eRfPowerStateToSet == eRfOn))
+ {
+ RT_TRACE(COMP_RF, DBG_LOUD, ("HW_RadioGpioChk92SE - HW Radio ON\n"));
+ pHalData->bHwRadioOff = false;
+ bActuallySet = true;
+ }
+ else if ( (pHalData->bHwRadioOff == false) && (eRfPowerStateToSet == eRfOff))
+ {
+ RT_TRACE(COMP_RF, DBG_LOUD, ("HW_RadioGpioChk92SE - HW Radio OFF\n"));
+ pHalData->bHwRadioOff = true;
+ bActuallySet = true;
+ }
+
+ if(bActuallySet)
+ {
+ pHalData->bHwRfOffAction = 1;
+ MgntActSet_RF_State(pAdapter, eRfPowerStateToSet, RF_CHANGE_BY_HW);
+ DrvIFIndicateCurrentPhyStatus(pAdapter);
+
+
+ {
+ PMP_ADAPTER pDevice = &(pAdapter->NdisAdapter);
+ if(pDevice->RegHwSwRfOffD3 == 1 || pDevice->RegHwSwRfOffD3 == 2)
+ (eRfPowerStateToSet == eRfOff) ? RT_ENABLE_ASPM(pAdapter) : RT_DISABLE_ASPM(pAdapter);
+ }
+ }
+ RT_TRACE(COMP_RF, DBG_TRACE, ("HW_RadioGpioChk92SE() <--------- \n"));
+#endif
+}/* HW_RadioGpioChk92SE */
+#endif
+#endif
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_phy.h b/ubuntu/rtl8192se/rtl8192s/r8192S_phy.h
new file mode 100755
index 00000000000..37ea750fd2c
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_phy.h
@@ -0,0 +1,202 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+/* Check to see if the file has been included already. */
+#ifndef _R8192S_PHY_H
+#define _R8192S_PHY_H
+
+
+/*--------------------------Define Parameters-------------------------------*/
+#define LOOP_LIMIT 5
+#define MAX_STALL_TIME 50
+#define AntennaDiversityValue 0x80
+#define MAX_TXPWR_IDX_NMODE_92S 63
+#define Reset_Cnt_Limit 3
+
+
+#define MAX_PRECMD_CNT 16
+#define MAX_RFDEPENDCMD_CNT 16
+#define MAX_POSTCMD_CNT 16
+#ifdef RTL8192SE
+#define SET_RTL8192SE_RF_SLEEP(dev) \
+{ \
+ u8 u1bTmp; \
+ u1bTmp = read_nic_byte (dev, LDOV12D_CTRL); \
+ u1bTmp |= BIT0; \
+ write_nic_byte(dev, LDOV12D_CTRL, u1bTmp); \
+ write_nic_byte(dev, SPS1_CTRL, 0x0); \
+ write_nic_byte(dev, TXPAUSE, 0xFF); \
+ write_nic_word(dev, CMDR, 0x57FC); \
+ udelay(100); \
+ write_nic_word(dev, CMDR, 0x77FC); \
+ write_nic_byte(dev, PHY_CCA, 0x0); \
+ udelay(10); \
+ write_nic_word(dev, CMDR, 0x37FC); \
+ udelay(10); \
+ write_nic_word(dev, CMDR, 0x77FC); \
+ udelay(10); \
+ write_nic_word(dev, CMDR, 0x57FC); \
+}
+
+
+#endif
+
+/*--------------------------Define Parameters-------------------------------*/
+
+
+/*------------------------------Define structure----------------------------*/
+typedef enum _SwChnlCmdID{
+ CmdID_End,
+ CmdID_SetTxPowerLevel,
+ CmdID_BBRegWrite10,
+ CmdID_WritePortUlong,
+ CmdID_WritePortUshort,
+ CmdID_WritePortUchar,
+ CmdID_RF_WriteReg,
+}SwChnlCmdID;
+
+
+typedef struct _SwChnlCmd{
+ SwChnlCmdID CmdID;
+ u32 Para1;
+ u32 Para2;
+ u32 msDelay;
+}__attribute__ ((packed)) SwChnlCmd;
+
+extern u32 rtl819XMACPHY_Array_PG[];
+extern u32 rtl819XPHY_REG_1T2RArray[];
+extern u32 rtl819XAGCTAB_Array[];
+extern u32 rtl819XRadioA_Array[];
+extern u32 rtl819XRadioB_Array[];
+extern u32 rtl819XRadioC_Array[];
+extern u32 rtl819XRadioD_Array[];
+
+typedef enum _HW90_BLOCK{
+ HW90_BLOCK_MAC = 0,
+ HW90_BLOCK_PHY0 = 1,
+ HW90_BLOCK_PHY1 = 2,
+ HW90_BLOCK_RF = 3,
+ HW90_BLOCK_MAXIMUM = 4,
+}HW90_BLOCK_E, *PHW90_BLOCK_E;
+
+typedef enum _RF90_RADIO_PATH{
+ RF90_PATH_A = 0,
+ RF90_PATH_B = 1,
+ RF90_PATH_C = 2,
+ RF90_PATH_D = 3,
+#ifndef _RTL8192_EXT_PATCH_
+ RF90_PATH_MAX = 4,
+#endif
+}RF90_RADIO_PATH_E, *PRF90_RADIO_PATH_E;
+#ifdef _RTL8192_EXT_PATCH_
+#define RF90_PATH_MAX 2
+#endif
+
+#define bMaskByte0 0xff
+#define bMaskByte1 0xff00
+#define bMaskByte2 0xff0000
+#define bMaskByte3 0xff000000
+#define bMaskHWord 0xffff0000
+#define bMaskLWord 0x0000ffff
+#define bMaskDWord 0xffffffff
+
+typedef enum _BaseBand_Config_Type{
+ BaseBand_Config_PHY_REG = 0,
+ BaseBand_Config_AGC_TAB = 1,
+}BaseBand_Config_Type, *PBaseBand_Config_Type;
+
+typedef enum _VERSION_8190{
+ VERSION_8190_BD=0x3,
+ VERSION_8190_BE
+}VERSION_8190,*PVERSION_8190;
+
+
+typedef enum _VERSION_8192S{
+ VERSION_8192S_ACUT,
+ VERSION_8192S_BCUT,
+ VERSION_8192S_CCUT
+}VERSION_8192S,*PVERSION_8192S;
+
+typedef enum _PHY_Rate_Tx_Power_Offset_Area{
+ RA_OFFSET_LEGACY_OFDM1,
+ RA_OFFSET_LEGACY_OFDM2,
+ RA_OFFSET_HT_OFDM1,
+ RA_OFFSET_HT_OFDM2,
+ RA_OFFSET_HT_OFDM3,
+ RA_OFFSET_HT_OFDM4,
+ RA_OFFSET_HT_CCK,
+}RA_OFFSET_AREA,*PRA_OFFSET_AREA;
+#if 0
+typedef enum _RATR_TABLE_MODE_8192S{
+ RATR_INX_WIRELESS_NGB = 0,
+ RATR_INX_WIRELESS_NG = 1,
+ RATR_INX_WIRELESS_NB = 2,
+ RATR_INX_WIRELESS_N = 3,
+ RATR_INX_WIRELESS_GB = 4,
+ RATR_INX_WIRELESS_G = 5,
+ RATR_INX_WIRELESS_B = 6,
+ RATR_INX_WIRELESS_MC = 7,
+ RATR_INX_WIRELESS_A = 8,
+}RATR_TABLE_MODE_8192S, *PRATR_TABLE_MODE_8192S;
+#endif
+/*------------------------------Define structure----------------------------*/
+
+
+/*------------------------Export global variable----------------------------*/
+/*------------------------Export global variable----------------------------*/
+
+
+/*------------------------Export Marco Definition---------------------------*/
+/*------------------------Export Marco Definition---------------------------*/
+
+
+/*--------------------------Exported Function prototype---------------------*/
+
+extern u32 rtl8192_QueryBBReg(struct net_device* dev,u32 RegAddr, u32 BitMask);
+extern void rtl8192_setBBreg(struct net_device* dev,u32 RegAddr, u32 BitMask,u32 Data);
+extern u32 rtl8192_phy_QueryRFReg(struct net_device* dev,RF90_RADIO_PATH_E eRFPath, u32 RegAddr, u32 BitMask);
+extern void rtl8192_phy_SetRFReg(struct net_device* dev,RF90_RADIO_PATH_E eRFPath, u32 RegAddr,u32 BitMask,u32 Data);
+
+bool rtl8192_phy_checkBBAndRF(struct net_device* dev, HW90_BLOCK_E CheckBlock, RF90_RADIO_PATH_E eRFPath);
+
+
+extern bool PHY_MACConfig8192S(struct net_device* dev);
+extern bool PHY_BBConfig8192S(struct net_device* dev);
+extern bool PHY_RFConfig8192S(struct net_device* dev);
+
+extern u8 rtl8192_phy_ConfigRFWithHeaderFile(struct net_device* dev,RF90_RADIO_PATH_E eRFPath);
+extern void rtl8192_SetBWMode(struct net_device* dev,HT_CHANNEL_WIDTH ChnlWidth,HT_EXTCHNL_OFFSET Offset );
+extern u8 rtl8192_phy_SwChnl(struct net_device* dev,u8 channel);
+extern u8 rtl8192_phy_CheckIsLegalRFPath(struct net_device* dev,u32 eRFPath );
+extern void rtl8192_BBConfig(struct net_device* dev);
+extern void PHY_IQCalibrateBcut(struct net_device* dev);
+extern void PHY_IQCalibrate(struct net_device* dev);
+extern void PHY_GetHWRegOriginalValue(struct net_device* dev);
+
+extern void InitialGainOperateWorkItemCallBack(void *data);
+void rtl8192_phy_setTxPower(struct net_device* dev, u8 channel);
+
+/*--------------------------Exported Function prototype---------------------*/
+bool rtl8192se_set_fw_cmd(struct net_device* dev, FW_CMD_IO_TYPE FwCmdIO);
+extern void PHY_SetBeaconHwReg( struct net_device* dev, u16 BeaconInterval);
+void ChkFwCmdIoDone(struct net_device* dev);
+void PHY_SwitchEphyParameter(struct net_device* dev);
+bool PHY_SetRFPowerState(struct net_device* dev, RT_RF_POWER_STATE eRFPowerState);
+
+#endif
+
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_phyreg.h b/ubuntu/rtl8192se/rtl8192s/r8192S_phyreg.h
new file mode 100755
index 00000000000..28e82f23ebb
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_phyreg.h
@@ -0,0 +1,954 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef __INC_HAL8192SPHYREG_H
+#define __INC_HAL8192SPHYREG_H
+
+
+/*--------------------------Define Parameters-------------------------------*/
+
+
+
+
+#define rPMAC_Reset 0x100
+#define rPMAC_TxStart 0x104
+#define rPMAC_TxLegacySIG 0x108
+#define rPMAC_TxHTSIG1 0x10c
+#define rPMAC_TxHTSIG2 0x110
+#define rPMAC_PHYDebug 0x114
+#define rPMAC_TxPacketNum 0x118
+#define rPMAC_TxIdle 0x11c
+#define rPMAC_TxMACHeader0 0x120
+#define rPMAC_TxMACHeader1 0x124
+#define rPMAC_TxMACHeader2 0x128
+#define rPMAC_TxMACHeader3 0x12c
+#define rPMAC_TxMACHeader4 0x130
+#define rPMAC_TxMACHeader5 0x134
+#define rPMAC_TxDataType 0x138
+#define rPMAC_TxRandomSeed 0x13c
+#define rPMAC_CCKPLCPPreamble 0x140
+#define rPMAC_CCKPLCPHeader 0x144
+#define rPMAC_CCKCRC16 0x148
+#define rPMAC_OFDMRxCRC32OK 0x170
+#define rPMAC_OFDMRxCRC32Er 0x174
+#define rPMAC_OFDMRxParityEr 0x178
+#define rPMAC_OFDMRxCRC8Er 0x17c
+#define rPMAC_CCKCRxRC16Er 0x180
+#define rPMAC_CCKCRxRC32Er 0x184
+#define rPMAC_CCKCRxRC32OK 0x188
+#define rPMAC_TxStatus 0x18c
+
+#define RF_BB_CMD_ADDR 0x02c0
+#define RF_BB_CMD_DATA 0x02c4
+
+#define rFPGA0_RFMOD 0x800
+
+#define rFPGA0_TxInfo 0x804
+#define rFPGA0_PSDFunction 0x808
+
+#define rFPGA0_TxGainStage 0x80c
+
+#define rFPGA0_RFTiming1 0x810
+#define rFPGA0_RFTiming2 0x814
+
+#define rFPGA0_XA_HSSIParameter1 0x820
+#define rFPGA0_XA_HSSIParameter2 0x824
+#define rFPGA0_XB_HSSIParameter1 0x828
+#define rFPGA0_XB_HSSIParameter2 0x82c
+#define rFPGA0_XC_HSSIParameter1 0x830
+#define rFPGA0_XC_HSSIParameter2 0x834
+#define rFPGA0_XD_HSSIParameter1 0x838
+#define rFPGA0_XD_HSSIParameter2 0x83c
+#define rFPGA0_XA_LSSIParameter 0x840
+#define rFPGA0_XB_LSSIParameter 0x844
+#define rFPGA0_XC_LSSIParameter 0x848
+#define rFPGA0_XD_LSSIParameter 0x84c
+
+#define rFPGA0_RFWakeUpParameter 0x850
+#define rFPGA0_RFSleepUpParameter 0x854
+
+#define rFPGA0_XAB_SwitchControl 0x858
+#define rFPGA0_XCD_SwitchControl 0x85c
+
+#define rFPGA0_XA_RFInterfaceOE 0x860
+#define rFPGA0_XB_RFInterfaceOE 0x864
+#define rFPGA0_XC_RFInterfaceOE 0x868
+#define rFPGA0_XD_RFInterfaceOE 0x86c
+
+#define rFPGA0_XAB_RFInterfaceSW 0x870
+#define rFPGA0_XCD_RFInterfaceSW 0x874
+
+#define rFPGA0_XAB_RFParameter 0x878
+#define rFPGA0_XCD_RFParameter 0x87c
+
+#define rFPGA0_AnalogParameter1 0x880
+#define rFPGA0_AnalogParameter2 0x884
+#define rFPGA0_AnalogParameter3 0x888
+#define rFPGA0_AnalogParameter4 0x88c
+
+#define rFPGA0_XA_LSSIReadBack 0x8a0
+#define rFPGA0_XB_LSSIReadBack 0x8a4
+#define rFPGA0_XC_LSSIReadBack 0x8a8
+#define rFPGA0_XD_LSSIReadBack 0x8ac
+
+#define rFPGA0_PSDReport 0x8b4
+#define TransceiverA_HSPI_Readback 0x8b8
+#define TransceiverB_HSPI_Readback 0x8bc
+#define rFPGA0_XAB_RFInterfaceRB 0x8e0
+#define rFPGA0_XCD_RFInterfaceRB 0x8e4
+
+#define rFPGA1_RFMOD 0x900
+
+#define rFPGA1_TxBlock 0x904
+#define rFPGA1_DebugSelect 0x908
+#define rFPGA1_TxInfo 0x90c
+
+#define rCCK0_System 0xa00
+
+#define rCCK0_AFESetting 0xa04
+#define rCCK0_CCA 0xa08
+
+#define rCCK0_RxAGC1 0xa0c
+#define rCCK0_RxAGC2 0xa10
+
+#define rCCK0_RxHP 0xa14
+
+#define rCCK0_DSPParameter1 0xa18
+#define rCCK0_DSPParameter2 0xa1c
+
+#define rCCK0_TxFilter1 0xa20
+#define rCCK0_TxFilter2 0xa24
+#define rCCK0_DebugPort 0xa28
+#define rCCK0_FalseAlarmReport 0xa2c
+#define rCCK0_TRSSIReport 0xa50
+#define rCCK0_RxReport 0xa54
+#define rCCK0_FACounterLower 0xa5c
+#define rCCK0_FACounterUpper 0xa58
+
+#define rOFDM0_LSTF 0xc00
+
+#define rOFDM0_TRxPathEnable 0xc04
+#define rOFDM0_TRMuxPar 0xc08
+#define rOFDM0_TRSWIsolation 0xc0c
+
+#define rOFDM0_XARxAFE 0xc10
+#define rOFDM0_XARxIQImbalance 0xc14
+#define rOFDM0_XBRxAFE 0xc18
+#define rOFDM0_XBRxIQImbalance 0xc1c
+#define rOFDM0_XCRxAFE 0xc20
+#define rOFDM0_XCRxIQImbalance 0xc24
+#define rOFDM0_XDRxAFE 0xc28
+#define rOFDM0_XDRxIQImbalance 0xc2c
+
+#define rOFDM0_RxDetector1 0xc30
+#define rOFDM0_RxDetector2 0xc34
+#define rOFDM0_RxDetector3 0xc38
+#define rOFDM0_RxDetector4 0xc3c
+
+#define rOFDM0_RxDSP 0xc40
+#define rOFDM0_CFOandDAGC 0xc44
+#define rOFDM0_CCADropThreshold 0xc48
+#define rOFDM0_ECCAThreshold 0xc4c
+
+#define rOFDM0_XAAGCCore1 0xc50
+#define rOFDM0_XAAGCCore2 0xc54
+#define rOFDM0_XBAGCCore1 0xc58
+#define rOFDM0_XBAGCCore2 0xc5c
+#define rOFDM0_XCAGCCore1 0xc60
+#define rOFDM0_XCAGCCore2 0xc64
+#define rOFDM0_XDAGCCore1 0xc68
+#define rOFDM0_XDAGCCore2 0xc6c
+
+#define rOFDM0_AGCParameter1 0xc70
+#define rOFDM0_AGCParameter2 0xc74
+#define rOFDM0_AGCRSSITable 0xc78
+#define rOFDM0_HTSTFAGC 0xc7c
+
+#define rOFDM0_XATxIQImbalance 0xc80
+#define rOFDM0_XATxAFE 0xc84
+#define rOFDM0_XBTxIQImbalance 0xc88
+#define rOFDM0_XBTxAFE 0xc8c
+#define rOFDM0_XCTxIQImbalance 0xc90
+#define rOFDM0_XCTxAFE 0xc94
+#define rOFDM0_XDTxIQImbalance 0xc98
+#define rOFDM0_XDTxAFE 0xc9c
+
+#define rOFDM0_RxHPParameter 0xce0
+#define rOFDM0_TxPseudoNoiseWgt 0xce4
+#define rOFDM0_FrameSync 0xcf0
+#define rOFDM0_DFSReport 0xcf4
+#define rOFDM0_TxCoeff1 0xca4
+#define rOFDM0_TxCoeff2 0xca8
+#define rOFDM0_TxCoeff3 0xcac
+#define rOFDM0_TxCoeff4 0xcb0
+#define rOFDM0_TxCoeff5 0xcb4
+#define rOFDM0_TxCoeff6 0xcb8
+
+
+#define rOFDM1_LSTF 0xd00
+#define rOFDM1_TRxPathEnable 0xd04
+
+#define rOFDM1_CFO 0xd08
+#define rOFDM1_CSI1 0xd10
+#define rOFDM1_SBD 0xd14
+#define rOFDM1_CSI2 0xd18
+#define rOFDM1_CFOTracking 0xd2c
+#define rOFDM1_TRxMesaure1 0xd34
+#define rOFDM1_IntfDet 0xd3c
+#define rOFDM1_PseudoNoiseStateAB 0xd50
+#define rOFDM1_PseudoNoiseStateCD 0xd54
+#define rOFDM1_RxPseudoNoiseWgt 0xd58
+
+#define rOFDM_PHYCounter1 0xda0
+#define rOFDM_PHYCounter2 0xda4
+#define rOFDM_PHYCounter3 0xda8
+
+#define rOFDM_ShortCFOAB 0xdac
+#define rOFDM_ShortCFOCD 0xdb0
+#define rOFDM_LongCFOAB 0xdb4
+#define rOFDM_LongCFOCD 0xdb8
+#define rOFDM_TailCFOAB 0xdbc
+#define rOFDM_TailCFOCD 0xdc0
+#define rOFDM_PWMeasure1 0xdc4
+#define rOFDM_PWMeasure2 0xdc8
+#define rOFDM_BWReport 0xdcc
+#define rOFDM_AGCReport 0xdd0
+#define rOFDM_RxSNR 0xdd4
+#define rOFDM_RxEVMCSI 0xdd8
+#define rOFDM_SIGReport 0xddc
+
+
+#define rTxAGC_Rate18_06 0xe00
+#define rTxAGC_Rate54_24 0xe04
+#define rTxAGC_CCK_Mcs32 0xe08
+#define rTxAGC_Mcs03_Mcs00 0xe10
+#define rTxAGC_Mcs07_Mcs04 0xe14
+#define rTxAGC_Mcs11_Mcs08 0xe18
+#define rTxAGC_Mcs15_Mcs12 0xe1c
+
+#define rZebra1_HSSIEnable 0x0
+#define rZebra1_TRxEnable1 0x1
+#define rZebra1_TRxEnable2 0x2
+#define rZebra1_AGC 0x4
+#define rZebra1_ChargePump 0x5
+#define rZebra1_Channel 0x7
+
+#define rZebra1_TxGain 0x8
+#define rZebra1_TxLPF 0x9
+#define rZebra1_RxLPF 0xb
+#define rZebra1_RxHPFCorner 0xc
+
+#define rGlobalCtrl 0
+#define rRTL8256_TxLPF 19
+#define rRTL8256_RxLPF 11
+
+#define rRTL8258_TxLPF 0x11
+#define rRTL8258_RxLPF 0x13
+#define rRTL8258_RSSILPF 0xa
+
+#define RF_AC 0x00
+
+#define RF_IQADJ_G1 0x01
+#define RF_IQADJ_G2 0x02
+#define RF_POW_TRSW 0x05
+
+#define RF_GAIN_RX 0x06
+#define RF_GAIN_TX 0x07
+
+#define RF_TXM_IDAC 0x08
+#define RF_BS_IQGEN 0x0F
+
+#define RF_MODE1 0x10
+#define RF_MODE2 0x11
+
+#define RF_RX_AGC_HP 0x12
+#define RF_TX_AGC 0x13
+#define RF_BIAS 0x14
+#define RF_IPA 0x15
+#define RF_POW_ABILITY 0x17
+#define RF_MODE_AG 0x18
+#define rRfChannel 0x18
+#define RF_CHNLBW 0x18
+#define RF_TOP 0x19
+
+#define RF_RX_G1 0x1A
+#define RF_RX_G2 0x1B
+
+#define RF_RX_BB2 0x1C
+#define RF_RX_BB1 0x1D
+
+#define RF_RCK1 0x1E
+#define RF_RCK2 0x1F
+
+#define RF_TX_G1 0x20
+#define RF_TX_G2 0x21
+#define RF_TX_G3 0x22
+
+#define RF_TX_BB1 0x23
+
+#define RF_T_METER 0x24
+
+#define RF_SYN_G1 0x25
+#define RF_SYN_G2 0x26
+#define RF_SYN_G3 0x27
+#define RF_SYN_G4 0x28
+#define RF_SYN_G5 0x29
+#define RF_SYN_G6 0x2A
+#define RF_SYN_G7 0x2B
+#define RF_SYN_G8 0x2C
+
+#define RF_RCK_OS 0x30
+
+#define RF_TXPA_G1 0x31
+#define RF_TXPA_G2 0x32
+#define RF_TXPA_G3 0x33
+
+#define bBBResetB 0x100
+#define bGlobalResetB 0x200
+#define bOFDMTxStart 0x4
+#define bCCKTxStart 0x8
+#define bCRC32Debug 0x100
+#define bPMACLoopback 0x10
+#define bTxLSIG 0xffffff
+#define bOFDMTxRate 0xf
+#define bOFDMTxReserved 0x10
+#define bOFDMTxLength 0x1ffe0
+#define bOFDMTxParity 0x20000
+#define bTxHTSIG1 0xffffff
+#define bTxHTMCSRate 0x7f
+#define bTxHTBW 0x80
+#define bTxHTLength 0xffff00
+#define bTxHTSIG2 0xffffff
+#define bTxHTSmoothing 0x1
+#define bTxHTSounding 0x2
+#define bTxHTReserved 0x4
+#define bTxHTAggreation 0x8
+#define bTxHTSTBC 0x30
+#define bTxHTAdvanceCoding 0x40
+#define bTxHTShortGI 0x80
+#define bTxHTNumberHT_LTF 0x300
+#define bTxHTCRC8 0x3fc00
+#define bCounterReset 0x10000
+#define bNumOfOFDMTx 0xffff
+#define bNumOfCCKTx 0xffff0000
+#define bTxIdleInterval 0xffff
+#define bOFDMService 0xffff0000
+#define bTxMACHeader 0xffffffff
+#define bTxDataInit 0xff
+#define bTxHTMode 0x100
+#define bTxDataType 0x30000
+#define bTxRandomSeed 0xffffffff
+#define bCCKTxPreamble 0x1
+#define bCCKTxSFD 0xffff0000
+#define bCCKTxSIG 0xff
+#define bCCKTxService 0xff00
+#define bCCKLengthExt 0x8000
+#define bCCKTxLength 0xffff0000
+#define bCCKTxCRC16 0xffff
+#define bCCKTxStatus 0x1
+#define bOFDMTxStatus 0x2
+
+#define IS_BB_REG_OFFSET_92S(_Offset) ((_Offset >= 0x800) && (_Offset <= 0xfff))
+
+#define bRFMOD 0x1
+#define bJapanMode 0x2
+#define bCCKTxSC 0x30
+#define bCCKEn 0x1000000
+#define bOFDMEn 0x2000000
+
+#define bOFDMRxADCPhase 0x10000
+#define bOFDMTxDACPhase 0x40000
+#define bXATxAGC 0x3f
+
+#define bXBTxAGC 0xf00
+#define bXCTxAGC 0xf000
+#define bXDTxAGC 0xf0000
+
+#define bPAStart 0xf0000000
+#define bTRStart 0x00f00000
+#define bRFStart 0x0000f000
+#define bBBStart 0x000000f0
+#define bBBCCKStart 0x0000000f
+#define bPAEnd 0xf
+#define bTREnd 0x0f000000
+#define bRFEnd 0x000f0000
+#define bCCAMask 0x000000f0
+#define bR2RCCAMask 0x00000f00
+#define bHSSI_R2TDelay 0xf8000000
+#define bHSSI_T2RDelay 0xf80000
+#define bContTxHSSI 0x400
+#define bIGFromCCK 0x200
+#define bAGCAddress 0x3f
+#define bRxHPTx 0x7000
+#define bRxHPT2R 0x38000
+#define bRxHPCCKIni 0xc0000
+#define bAGCTxCode 0xc00000
+#define bAGCRxCode 0x300000
+
+#define b3WireDataLength 0x800
+#define b3WireAddressLength 0x400
+
+#define b3WireRFPowerDown 0x1
+#define b5GPAPEPolarity 0x40000000
+#define b2GPAPEPolarity 0x80000000
+#define bRFSW_TxDefaultAnt 0x3
+#define bRFSW_TxOptionAnt 0x30
+#define bRFSW_RxDefaultAnt 0x300
+#define bRFSW_RxOptionAnt 0x3000
+#define bRFSI_3WireData 0x1
+#define bRFSI_3WireClock 0x2
+#define bRFSI_3WireLoad 0x4
+#define bRFSI_3WireRW 0x8
+#define bRFSI_3Wire 0xf
+
+#define bRFSI_RFENV 0x10
+
+#define bRFSI_TRSW 0x20
+#define bRFSI_TRSWB 0x40
+#define bRFSI_ANTSW 0x100
+#define bRFSI_ANTSWB 0x200
+#define bRFSI_PAPE 0x400
+#define bRFSI_PAPE5G 0x800
+#define bBandSelect 0x1
+#define bHTSIG2_GI 0x80
+#define bHTSIG2_Smoothing 0x01
+#define bHTSIG2_Sounding 0x02
+#define bHTSIG2_Aggreaton 0x08
+#define bHTSIG2_STBC 0x30
+#define bHTSIG2_AdvCoding 0x40
+#define bHTSIG2_NumOfHTLTF 0x300
+#define bHTSIG2_CRC8 0x3fc
+#define bHTSIG1_MCS 0x7f
+#define bHTSIG1_BandWidth 0x80
+#define bHTSIG1_HTLength 0xffff
+#define bLSIG_Rate 0xf
+#define bLSIG_Reserved 0x10
+#define bLSIG_Length 0x1fffe
+#define bLSIG_Parity 0x20
+#define bCCKRxPhase 0x4
+#if (RTL92SE_FPGA_VERIFY == 1)
+#define bLSSIReadAddress 0x3f000000
+#else
+#define bLSSIReadAddress 0x7f800000
+#endif
+#define bLSSIReadEdge 0x80000000
+#if (RTL92SE_FPGA_VERIFY == 1)
+#define bLSSIReadBackData 0xfff
+#else
+#define bLSSIReadBackData 0xfffff
+#endif
+#define bLSSIReadOKFlag 0x1000
+#define bCCKSampleRate 0x8
+#define bRegulator0Standby 0x1
+#define bRegulatorPLLStandby 0x2
+#define bRegulator1Standby 0x4
+#define bPLLPowerUp 0x8
+#define bDPLLPowerUp 0x10
+#define bDA10PowerUp 0x20
+#define bAD7PowerUp 0x200
+#define bDA6PowerUp 0x2000
+#define bXtalPowerUp 0x4000
+#define b40MDClkPowerUP 0x8000
+#define bDA6DebugMode 0x20000
+#define bDA6Swing 0x380000
+
+#define bADClkPhase 0x4000000
+
+#define b80MClkDelay 0x18000000
+#define bAFEWatchDogEnable 0x20000000
+
+#define bXtalCap01 0xc0000000
+#define bXtalCap23 0x3
+#define bXtalCap92x 0x0f000000
+#define bXtalCap 0x0f000000
+
+#define bIntDifClkEnable 0x400
+#define bExtSigClkEnable 0x800
+#define bBandgapMbiasPowerUp 0x10000
+#define bAD11SHGain 0xc0000
+#define bAD11InputRange 0x700000
+#define bAD11OPCurrent 0x3800000
+#define bIPathLoopback 0x4000000
+#define bQPathLoopback 0x8000000
+#define bAFELoopback 0x10000000
+#define bDA10Swing 0x7e0
+#define bDA10Reverse 0x800
+#define bDAClkSource 0x1000
+#define bAD7InputRange 0x6000
+#define bAD7Gain 0x38000
+#define bAD7OutputCMMode 0x40000
+#define bAD7InputCMMode 0x380000
+#define bAD7Current 0xc00000
+#define bRegulatorAdjust 0x7000000
+#define bAD11PowerUpAtTx 0x1
+#define bDA10PSAtTx 0x10
+#define bAD11PowerUpAtRx 0x100
+#define bDA10PSAtRx 0x1000
+#define bCCKRxAGCFormat 0x200
+#define bPSDFFTSamplepPoint 0xc000
+#define bPSDAverageNum 0x3000
+#define bIQPathControl 0xc00
+#define bPSDFreq 0x3ff
+#define bPSDAntennaPath 0x30
+#define bPSDIQSwitch 0x40
+#define bPSDRxTrigger 0x400000
+#define bPSDTxTrigger 0x80000000
+#define bPSDSineToneScale 0x7f000000
+#define bPSDReport 0xffff
+
+#define bOFDMTxSC 0x30000000
+#define bCCKTxOn 0x1
+#define bOFDMTxOn 0x2
+#define bDebugPage 0xfff
+#define bDebugItem 0xff
+#define bAntL 0x10
+#define bAntNonHT 0x100
+#define bAntHT1 0x1000
+#define bAntHT2 0x10000
+#define bAntHT1S1 0x100000
+#define bAntNonHTS1 0x1000000
+
+#define bCCKBBMode 0x3
+#define bCCKTxPowerSaving 0x80
+#define bCCKRxPowerSaving 0x40
+
+#define bCCKSideBand 0x10
+
+#define bCCKScramble 0x8
+#define bCCKAntDiversity 0x8000
+#define bCCKCarrierRecovery 0x4000
+#define bCCKTxRate 0x3000
+#define bCCKDCCancel 0x0800
+#define bCCKISICancel 0x0400
+#define bCCKMatchFilter 0x0200
+#define bCCKEqualizer 0x0100
+#define bCCKPreambleDetect 0x800000
+#define bCCKFastFalseCCA 0x400000
+#define bCCKChEstStart 0x300000
+#define bCCKCCACount 0x080000
+#define bCCKcs_lim 0x070000
+#define bCCKBistMode 0x80000000
+#define bCCKCCAMask 0x40000000
+#define bCCKTxDACPhase 0x4
+#define bCCKRxADCPhase 0x20000000
+#define bCCKr_cp_mode0 0x0100
+#define bCCKTxDCOffset 0xf0
+#define bCCKRxDCOffset 0xf
+#define bCCKCCAMode 0xc000
+#define bCCKFalseCS_lim 0x3f00
+#define bCCKCS_ratio 0xc00000
+#define bCCKCorgBit_sel 0x300000
+#define bCCKPD_lim 0x0f0000
+#define bCCKNewCCA 0x80000000
+#define bCCKRxHPofIG 0x8000
+#define bCCKRxIG 0x7f00
+#define bCCKLNAPolarity 0x800000
+#define bCCKRx1stGain 0x7f0000
+#define bCCKRFExtend 0x20000000
+#define bCCKRxAGCSatLevel 0x1f000000
+#define bCCKRxAGCSatCount 0xe0
+#define bCCKRxRFSettle 0x1f
+#define bCCKFixedRxAGC 0x8000
+#define bCCKAntennaPolarity 0x2000
+#define bCCKTxFilterType 0x0c00
+#define bCCKRxAGCReportType 0x0300
+#define bCCKRxDAGCEn 0x80000000
+#define bCCKRxDAGCPeriod 0x20000000
+#define bCCKRxDAGCSatLevel 0x1f000000
+#define bCCKTimingRecovery 0x800000
+#define bCCKTxC0 0x3f0000
+#define bCCKTxC1 0x3f000000
+#define bCCKTxC2 0x3f
+#define bCCKTxC3 0x3f00
+#define bCCKTxC4 0x3f0000
+#define bCCKTxC5 0x3f000000
+#define bCCKTxC6 0x3f
+#define bCCKTxC7 0x3f00
+#define bCCKDebugPort 0xff0000
+#define bCCKDACDebug 0x0f000000
+#define bCCKFalseAlarmEnable 0x8000
+#define bCCKFalseAlarmRead 0x4000
+#define bCCKTRSSI 0x7f
+#define bCCKRxAGCReport 0xfe
+#define bCCKRxReport_AntSel 0x80000000
+#define bCCKRxReport_MFOff 0x40000000
+#define bCCKRxRxReport_SQLoss 0x20000000
+#define bCCKRxReport_Pktloss 0x10000000
+#define bCCKRxReport_Lockedbit 0x08000000
+#define bCCKRxReport_RateError 0x04000000
+#define bCCKRxReport_RxRate 0x03000000
+#define bCCKRxFACounterLower 0xff
+#define bCCKRxFACounterUpper 0xff000000
+#define bCCKRxHPAGCStart 0xe000
+#define bCCKRxHPAGCFinal 0x1c00
+#define bCCKRxFalseAlarmEnable 0x8000
+#define bCCKFACounterFreeze 0x4000
+#define bCCKTxPathSel 0x10000000
+#define bCCKDefaultRxPath 0xc000000
+#define bCCKOptionRxPath 0x3000000
+
+#define bNumOfSTF 0x3
+#define bShift_L 0xc0
+#define bGI_TH 0xc
+#define bRxPathA 0x1
+#define bRxPathB 0x2
+#define bRxPathC 0x4
+#define bRxPathD 0x8
+#define bTxPathA 0x1
+#define bTxPathB 0x2
+#define bTxPathC 0x4
+#define bTxPathD 0x8
+#define bTRSSIFreq 0x200
+#define bADCBackoff 0x3000
+#define bDFIRBackoff 0xc000
+#define bTRSSILatchPhase 0x10000
+#define bRxIDCOffset 0xff
+#define bRxQDCOffset 0xff00
+#define bRxDFIRMode 0x1800000
+#define bRxDCNFType 0xe000000
+#define bRXIQImb_A 0x3ff
+#define bRXIQImb_B 0xfc00
+#define bRXIQImb_C 0x3f0000
+#define bRXIQImb_D 0xffc00000
+#define bDC_dc_Notch 0x60000
+#define bRxNBINotch 0x1f000000
+#define bPD_TH 0xf
+#define bPD_TH_Opt2 0xc000
+#define bPWED_TH 0x700
+#define bIfMF_Win_L 0x800
+#define bPD_Option 0x1000
+#define bMF_Win_L 0xe000
+#define bBW_Search_L 0x30000
+#define bwin_enh_L 0xc0000
+#define bBW_TH 0x700000
+#define bED_TH2 0x3800000
+#define bBW_option 0x4000000
+#define bRatio_TH 0x18000000
+#define bWindow_L 0xe0000000
+#define bSBD_Option 0x1
+#define bFrame_TH 0x1c
+#define bFS_Option 0x60
+#define bDC_Slope_check 0x80
+#define bFGuard_Counter_DC_L 0xe00
+#define bFrame_Weight_Short 0x7000
+#define bSub_Tune 0xe00000
+#define bFrame_DC_Length 0xe000000
+#define bSBD_start_offset 0x30000000
+#define bFrame_TH_2 0x7
+#define bFrame_GI2_TH 0x38
+#define bGI2_Sync_en 0x40
+#define bSarch_Short_Early 0x300
+#define bSarch_Short_Late 0xc00
+#define bSarch_GI2_Late 0x70000
+#define bCFOAntSum 0x1
+#define bCFOAcc 0x2
+#define bCFOStartOffset 0xc
+#define bCFOLookBack 0x70
+#define bCFOSumWeight 0x80
+#define bDAGCEnable 0x10000
+#define bTXIQImb_A 0x3ff
+#define bTXIQImb_B 0xfc00
+#define bTXIQImb_C 0x3f0000
+#define bTXIQImb_D 0xffc00000
+#define bTxIDCOffset 0xff
+#define bTxQDCOffset 0xff00
+#define bTxDFIRMode 0x10000
+#define bTxPesudoNoiseOn 0x4000000
+#define bTxPesudoNoise_A 0xff
+#define bTxPesudoNoise_B 0xff00
+#define bTxPesudoNoise_C 0xff0000
+#define bTxPesudoNoise_D 0xff000000
+#define bCCADropOption 0x20000
+#define bCCADropThres 0xfff00000
+#define bEDCCA_H 0xf
+#define bEDCCA_L 0xf0
+#define bLambda_ED 0x300
+#define bRxInitialGain 0x7f
+#define bRxAntDivEn 0x80
+#define bRxAGCAddressForLNA 0x7f00
+#define bRxHighPowerFlow 0x8000
+#define bRxAGCFreezeThres 0xc0000
+#define bRxFreezeStep_AGC1 0x300000
+#define bRxFreezeStep_AGC2 0xc00000
+#define bRxFreezeStep_AGC3 0x3000000
+#define bRxFreezeStep_AGC0 0xc000000
+#define bRxRssi_Cmp_En 0x10000000
+#define bRxQuickAGCEn 0x20000000
+#define bRxAGCFreezeThresMode 0x40000000
+#define bRxOverFlowCheckType 0x80000000
+#define bRxAGCShift 0x7f
+#define bTRSW_Tri_Only 0x80
+#define bPowerThres 0x300
+#define bRxAGCEn 0x1
+#define bRxAGCTogetherEn 0x2
+#define bRxAGCMin 0x4
+#define bRxHP_Ini 0x7
+#define bRxHP_TRLNA 0x70
+#define bRxHP_RSSI 0x700
+#define bRxHP_BBP1 0x7000
+#define bRxHP_BBP2 0x70000
+#define bRxHP_BBP3 0x700000
+#define bRSSI_H 0x7f0000
+#define bRSSI_Gen 0x7f000000
+#define bRxSettle_TRSW 0x7
+#define bRxSettle_LNA 0x38
+#define bRxSettle_RSSI 0x1c0
+#define bRxSettle_BBP 0xe00
+#define bRxSettle_RxHP 0x7000
+#define bRxSettle_AntSW_RSSI 0x38000
+#define bRxSettle_AntSW 0xc0000
+#define bRxProcessTime_DAGC 0x300000
+#define bRxSettle_HSSI 0x400000
+#define bRxProcessTime_BBPPW 0x800000
+#define bRxAntennaPowerShift 0x3000000
+#define bRSSITableSelect 0xc000000
+#define bRxHP_Final 0x7000000
+#define bRxHTSettle_BBP 0x7
+#define bRxHTSettle_HSSI 0x8
+#define bRxHTSettle_RxHP 0x70
+#define bRxHTSettle_BBPPW 0x80
+#define bRxHTSettle_Idle 0x300
+#define bRxHTSettle_Reserved 0x1c00
+#define bRxHTRxHPEn 0x8000
+#define bRxHTAGCFreezeThres 0x30000
+#define bRxHTAGCTogetherEn 0x40000
+#define bRxHTAGCMin 0x80000
+#define bRxHTAGCEn 0x100000
+#define bRxHTDAGCEn 0x200000
+#define bRxHTRxHP_BBP 0x1c00000
+#define bRxHTRxHP_Final 0xe0000000
+#define bRxPWRatioTH 0x3
+#define bRxPWRatioEn 0x4
+#define bRxMFHold 0x3800
+#define bRxPD_Delay_TH1 0x38
+#define bRxPD_Delay_TH2 0x1c0
+#define bRxPD_DC_COUNT_MAX 0x600
+#define bRxPD_Delay_TH 0x8000
+#define bRxProcess_Delay 0xf0000
+#define bRxSearchrange_GI2_Early 0x700000
+#define bRxFrame_Guard_Counter_L 0x3800000
+#define bRxSGI_Guard_L 0xc000000
+#define bRxSGI_Search_L 0x30000000
+#define bRxSGI_TH 0xc0000000
+#define bDFSCnt0 0xff
+#define bDFSCnt1 0xff00
+#define bDFSFlag 0xf0000
+#define bMFWeightSum 0x300000
+#define bMinIdxTH 0x7f000000
+#define bDAFormat 0x40000
+#define bTxChEmuEnable 0x01000000
+#define bTRSWIsolation_A 0x7f
+#define bTRSWIsolation_B 0x7f00
+#define bTRSWIsolation_C 0x7f0000
+#define bTRSWIsolation_D 0x7f000000
+#define bExtLNAGain 0x7c00
+
+#define bSTBCEn 0x4
+#define bAntennaMapping 0x10
+#define bNss 0x20
+#define bCFOAntSumD 0x200
+#define bPHYCounterReset 0x8000000
+#define bCFOReportGet 0x4000000
+#define bOFDMContinueTx 0x10000000
+#define bOFDMSingleCarrier 0x20000000
+#define bOFDMSingleTone 0x40000000
+#define bHTDetect 0x100
+#define bCFOEn 0x10000
+#define bCFOValue 0xfff00000
+#define bSigTone_Re 0x3f
+#define bSigTone_Im 0x7f00
+#define bCounter_CCA 0xffff
+#define bCounter_ParityFail 0xffff0000
+#define bCounter_RateIllegal 0xffff
+#define bCounter_CRC8Fail 0xffff0000
+#define bCounter_MCSNoSupport 0xffff
+#define bCounter_FastSync 0xffff
+#define bShortCFO 0xfff
+#define bShortCFOTLength 12
+#define bShortCFOFLength 11
+#define bLongCFO 0x7ff
+#define bLongCFOTLength 11
+#define bLongCFOFLength 11
+#define bTailCFO 0x1fff
+#define bTailCFOTLength 13
+#define bTailCFOFLength 12
+#define bmax_en_pwdB 0xffff
+#define bCC_power_dB 0xffff0000
+#define bnoise_pwdB 0xffff
+#define bPowerMeasTLength 10
+#define bPowerMeasFLength 3
+#define bRx_HT_BW 0x1
+#define bRxSC 0x6
+#define bRx_HT 0x8
+#define bNB_intf_det_on 0x1
+#define bIntf_win_len_cfg 0x30
+#define bNB_Intf_TH_cfg 0x1c0
+#define bRFGain 0x3f
+#define bTableSel 0x40
+#define bTRSW 0x80
+#define bRxSNR_A 0xff
+#define bRxSNR_B 0xff00
+#define bRxSNR_C 0xff0000
+#define bRxSNR_D 0xff000000
+#define bSNREVMTLength 8
+#define bSNREVMFLength 1
+#define bCSI1st 0xff
+#define bCSI2nd 0xff00
+#define bRxEVM1st 0xff0000
+#define bRxEVM2nd 0xff000000
+#define bSIGEVM 0xff
+#define bPWDB 0xff00
+#define bSGIEN 0x10000
+
+#define bSFactorQAM1 0xf
+#define bSFactorQAM2 0xf0
+#define bSFactorQAM3 0xf00
+#define bSFactorQAM4 0xf000
+#define bSFactorQAM5 0xf0000
+#define bSFactorQAM6 0xf0000
+#define bSFactorQAM7 0xf00000
+#define bSFactorQAM8 0xf000000
+#define bSFactorQAM9 0xf0000000
+#define bCSIScheme 0x100000
+
+#define bNoiseLvlTopSet 0x3
+#define bChSmooth 0x4
+#define bChSmoothCfg1 0x38
+#define bChSmoothCfg2 0x1c0
+#define bChSmoothCfg3 0xe00
+#define bChSmoothCfg4 0x7000
+#define bMRCMode 0x800000
+#define bTHEVMCfg 0x7000000
+
+#define bLoopFitType 0x1
+#define bUpdCFO 0x40
+#define bUpdCFOOffData 0x80
+#define bAdvUpdCFO 0x100
+#define bAdvTimeCtrl 0x800
+#define bUpdClko 0x1000
+#define bFC 0x6000
+#define bTrackingMode 0x8000
+#define bPhCmpEnable 0x10000
+#define bUpdClkoLTF 0x20000
+#define bComChCFO 0x40000
+#define bCSIEstiMode 0x80000
+#define bAdvUpdEqz 0x100000
+#define bUChCfg 0x7000000
+#define bUpdEqz 0x8000000
+
+#define bTxAGCRate18_06 0x7f7f7f7f
+#define bTxAGCRate54_24 0x7f7f7f7f
+#define bTxAGCRateMCS32 0x7f
+#define bTxAGCRateCCK 0x7f00
+#define bTxAGCRateMCS3_MCS0 0x7f7f7f7f
+#define bTxAGCRateMCS7_MCS4 0x7f7f7f7f
+#define bTxAGCRateMCS11_MCS8 0x7f7f7f7f
+#define bTxAGCRateMCS15_MCS12 0x7f7f7f7f
+
+#define bRxPesudoNoiseOn 0x20000000
+#define bRxPesudoNoise_A 0xff
+#define bRxPesudoNoise_B 0xff00
+#define bRxPesudoNoise_C 0xff0000
+#define bRxPesudoNoise_D 0xff000000
+#define bPesudoNoiseState_A 0xffff
+#define bPesudoNoiseState_B 0xffff0000
+#define bPesudoNoiseState_C 0xffff
+#define bPesudoNoiseState_D 0xffff0000
+
+#define bZebra1_HSSIEnable 0x8
+#define bZebra1_TRxControl 0xc00
+#define bZebra1_TRxGainSetting 0x07f
+#define bZebra1_RxCorner 0xc00
+#define bZebra1_TxChargePump 0x38
+#define bZebra1_RxChargePump 0x7
+#define bZebra1_ChannelNum 0xf80
+#define bZebra1_TxLPFBW 0x400
+#define bZebra1_RxLPFBW 0x600
+
+#define bRTL8256RegModeCtrl1 0x100
+#define bRTL8256RegModeCtrl0 0x40
+#define bRTL8256_TxLPFBW 0x18
+#define bRTL8256_RxLPFBW 0x600
+
+#define bRTL8258_TxLPFBW 0xc
+#define bRTL8258_RxLPFBW 0xc00
+#define bRTL8258_RSSILPFBW 0xc0
+
+
+
+#define bByte0 0x1
+#define bByte1 0x2
+#define bByte2 0x4
+#define bByte3 0x8
+#define bWord0 0x3
+#define bWord1 0xc
+#define bDWord 0xf
+
+#define bMaskByte0 0xff
+#define bMaskByte1 0xff00
+#define bMaskByte2 0xff0000
+#define bMaskByte3 0xff000000
+#define bMaskHWord 0xffff0000
+#define bMaskLWord 0x0000ffff
+#define bMaskDWord 0xffffffff
+
+#if (RTL92SE_FPGA_VERIFY == 1)
+#define bMask12Bits 0xfff
+#define bMask20Bits 0xfff
+#define bRFRegOffsetMask 0xfff
+#else
+#define bMask12Bits 0xfffff
+#define bMask20Bits 0xfffff
+#define bRFRegOffsetMask 0xfffff
+#endif
+#define bEnable 0x1
+#define bDisable 0x0
+
+#define LeftAntenna 0x0
+#define RightAntenna 0x1
+
+#define tCheckTxStatus 500
+#define tUpdateRxCounter 100
+
+#define rateCCK 0
+#define rateOFDM 1
+#define rateHT 2
+
+#define bPMAC_End 0x1ff
+#define bFPGAPHY0_End 0x8ff
+#define bFPGAPHY1_End 0x9ff
+#define bCCKPHY0_End 0xaff
+#define bOFDMPHY0_End 0xcff
+#define bOFDMPHY1_End 0xdff
+
+
+#define bPMACControl 0x0
+#define bWMACControl 0x1
+#define bWNICControl 0x2
+
+#define PathA 0x0
+#define PathB 0x1
+#define PathC 0x2
+#define PathD 0x3
+
+/*--------------------------Define Parameters-------------------------------*/
+
+
+#endif
+
+
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_rtl6052.c b/ubuntu/rtl8192se/rtl8192s/r8192S_rtl6052.c
new file mode 100755
index 00000000000..369648d1968
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_rtl6052.c
@@ -0,0 +1,974 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+
+#ifdef RTL8192SE
+#include "../rtl_core.h"
+#include "../rtl_dm.h"
+#include "r8192S_phyreg.h"
+#include "r8192S_phy.h"
+#include "r8192S_rtl6052.h"
+
+/*---------------------------Define Local Constant---------------------------*/
+typedef struct RF_Shadow_Compare_Map {
+ u32 Value;
+ u8 Compare;
+ u8 ErrorOrNot;
+ u8 Recorver;
+ u8 Driver_Write;
+}RF_SHADOW_T;
+/*---------------------------Define Local Constant---------------------------*/
+
+
+/*------------------------Define global variable-----------------------------*/
+/*------------------------Define global variable-----------------------------*/
+
+
+
+
+/*---------------------Define local function prototype-----------------------*/
+void phy_RF6052_Config_HardCode(struct net_device* dev);
+
+bool phy_RF6052_Config_ParaFile(struct net_device* dev);
+/*---------------------Define local function prototype-----------------------*/
+
+/*------------------------Define function prototype--------------------------*/
+extern void RF_ChangeTxPath(struct net_device* dev, u16 DataRate);
+
+/*------------------------Define function prototype--------------------------*/
+
+/*------------------------Define local variable------------------------------*/
+static RF_SHADOW_T RF_Shadow[RF6052_MAX_PATH][RF6052_MAX_REG];
+/*------------------------Define local variable------------------------------*/
+
+/*------------------------Define function prototype--------------------------*/
+extern void RF_ChangeTxPath(struct net_device* dev, u16 DataRate)
+{
+#if 0
+ static u1Byte RF_Path_Type = 2;
+ static u4Byte tx_gain_tbl1[6]
+ = {0x17f50, 0x11f40, 0x0cf30, 0x08720, 0x04310, 0x00100};
+ static u4Byte tx_gain_tbl2[6]
+ = {0x15ea0, 0x10e90, 0x0c680, 0x08250, 0x04040, 0x00030};
+ u1Byte i;
+
+ if (RF_Path_Type == 2 && (DataRate&0xF) <= 0x7)
+ {
+ PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A,
+ RF_TXPA_G2, bMask20Bits, 0x0f000);
+ PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A,
+ RF_TXPA_G3, bMask20Bits, 0xeacf1);
+
+ for (i = 0; i < 6; i++)
+ PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A,
+ RF_TX_AGC, bMask20Bits, tx_gain_tbl1[i]);
+
+ PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A,
+ RF_TXPA_G2, bMask20Bits, 0x01e39);
+ }
+ else if (RF_Path_Type == 1 && (DataRate&0xF) >= 0x8)
+ {
+ PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A,
+ RF_TXPA_G2, bMask20Bits, 0x04440);
+ PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A,
+ RF_TXPA_G3, bMask20Bits, 0xea4f1);
+
+ for (i = 0; i < 6; i++)
+ PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A,
+ RF_TX_AGC, bMask20Bits, tx_gain_tbl2[i]);
+
+ PHY_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A,
+ RF_TXPA_G2, bMask20Bits, 0x01e19);
+ }
+#endif
+
+} /* RF_ChangeTxPath */
+
+
+void PHY_RF6052SetBandwidth(struct net_device* dev, HT_CHANNEL_WIDTH Bandwidth)
+{
+ u8 eRFPath;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+
+ if (IS_HARDWARE_TYPE_8192SE(dev))
+ {
+#if (RTL92SE_FPGA_VERIFY == 0)
+ switch(Bandwidth)
+ {
+ case HT_CHANNEL_WIDTH_20:
+#if 1
+ priv->RfRegChnlVal[0] = ((priv->RfRegChnlVal[0] & 0xfffff3ff) | 0x0400);
+ rtl8192_phy_SetRFReg(dev, RF90_PATH_A, RF_CHNLBW, bRFRegOffsetMask, priv->RfRegChnlVal[0]);
+#else
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A, RF_CHNLBW, BIT10|BIT11, 0x01);
+#endif
+ break;
+ case HT_CHANNEL_WIDTH_20_40:
+#if 1
+ priv->RfRegChnlVal[0] = ((priv->RfRegChnlVal[0] & 0xfffff3ff));
+ rtl8192_phy_SetRFReg(dev, RF90_PATH_A, RF_CHNLBW, bRFRegOffsetMask, priv->RfRegChnlVal[0]);
+#else
+ rtl8192_phy_SetRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A, RF_CHNLBW, BIT10|BIT11, 0x00);
+#endif
+ break;
+ default:
+ RT_TRACE(COMP_DBG, "PHY_SetRF6052Bandwidth(): unknown Bandwidth: %#X\n",Bandwidth);
+ break;
+ }
+#endif
+ }
+ else
+ {
+ for(eRFPath = 0; eRFPath <priv->NumTotalRFPath; eRFPath++)
+ {
+ switch(Bandwidth)
+ {
+ case HT_CHANNEL_WIDTH_20:
+ break;
+ case HT_CHANNEL_WIDTH_20_40:
+ break;
+ default:
+ RT_TRACE(COMP_DBG, "PHY_SetRF8225Bandwidth(): unknown Bandwidth: %#X\n",Bandwidth );
+ break;
+
+ }
+ }
+ }
+}
+
+
+extern void PHY_RF6052SetCckTxPower(struct net_device* dev, u8 powerlevel)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 TxAGC=0;
+ bool dontIncCCKOrTurboScanOff=false;
+
+ if (((priv->eeprom_version >= 2) && (priv->TxPwrSafetyFlag == 1)) ||
+ ((priv->eeprom_version >= 2) && (priv->EEPROMRegulatory != 0))) {
+ dontIncCCKOrTurboScanOff = true;
+ }
+
+ if(rtllib_act_scanning(priv->rtllib,true) == true){
+ TxAGC = 0x3f;
+
+ if(dontIncCCKOrTurboScanOff )
+ TxAGC = powerlevel;
+ } else {
+ TxAGC = powerlevel;
+
+ if(priv->DynamicTxHighPowerLvl == TxHighPwrLevel_Level1)
+ TxAGC = 0x10;
+ else if(priv->DynamicTxHighPowerLvl == TxHighPwrLevel_Level2)
+ TxAGC = 0x0;
+ }
+
+ if(TxAGC > RF6052_MAX_TX_PWR)
+ TxAGC = RF6052_MAX_TX_PWR;
+
+ rtl8192_setBBreg(dev, rTxAGC_CCK_Mcs32, bTxAGCRateCCK, TxAGC);
+
+} /* PHY_RF6052SetCckTxPower */
+
+
+#if 0
+extern void PHY_RF6052SetOFDMTxPower(struct net_device* dev, u8 powerlevel, u8 Channel)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 writeVal, powerBase0, powerBase1;
+ u8 index = 0;
+ u16 RegOffset[6] = {0xe00, 0xe04, 0xe10, 0xe14, 0xe18, 0xe1c};
+ u8 rfa_pwr[4];
+ u8 rfa_lower_bound = 0, rfa_upper_bound = 0;
+ u8 i;
+ u8 rf_pwr_diff = 0, chnlGroup = 0;
+ u8 Legacy_pwrdiff=0, HT20_pwrdiff=0;
+
+ if (priv->eeprom_version < 2)
+ powerBase0 = powerlevel + (priv->LegacyHTTxPowerDiff & 0xf);
+ else if (priv->eeprom_version >= 2)
+ {
+ Legacy_pwrdiff = priv->TxPwrLegacyHtDiff[RF90_PATH_A][Channel-1];
+ powerBase0 = powerlevel + Legacy_pwrdiff;
+ RT_TRACE(COMP_POWER, " [LagacyToHT40 pwr diff = %d]\n", Legacy_pwrdiff);
+ RT_TRACE(COMP_POWER, " [OFDM power base index = 0x%x]\n", powerBase0);
+ }
+ powerBase0 = (powerBase0<<24) | (powerBase0<<16) |(powerBase0<<8) |powerBase0;
+
+ if(priv->eeprom_version >= 2)
+ {
+
+ if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20)
+ {
+ HT20_pwrdiff = priv->TxPwrHt20Diff[RF90_PATH_A][Channel-1];
+
+ if (HT20_pwrdiff < 8)
+ powerlevel += HT20_pwrdiff;
+ else
+ powerlevel -= (16-HT20_pwrdiff);
+
+ RT_TRACE(COMP_POWER, " [HT20 to HT40 pwrdiff = %d]\n", HT20_pwrdiff);
+ RT_TRACE(COMP_POWER, " [MCS power base index = 0x%x]\n", powerlevel);
+ }
+ }
+ powerBase1 = powerlevel;
+ powerBase1 = (powerBase1<<24) | (powerBase1<<16) |(powerBase1<<8) |powerBase1;
+
+ RT_TRACE(COMP_POWER, " [Legacy/HT power index= %x/%x]\n", powerBase0, powerBase1);
+
+ for(index=0; index<6; index++)
+ {
+
+ if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40)
+ {
+ writeVal = ((index<2)?powerBase0:powerBase1);
+ }
+ else
+ {
+ if(priv->pwrGroupCnt == 0)
+ chnlGroup = 0;
+ if(priv->pwrGroupCnt >= 3)
+ {
+ if(Channel <= 3)
+ chnlGroup = 0;
+ else if(Channel >= 4 && Channel <= 9)
+ chnlGroup = 1;
+ else if(Channel >= 10)
+ chnlGroup = 2;
+ if(priv->pwrGroupCnt == 4)
+ chnlGroup ++;
+ }
+ else
+ chnlGroup = 0;
+ writeVal = priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index] +
+ ((index<2)?powerBase0:powerBase1);
+ }
+ RT_TRACE(COMP_POWER, "Reg 0x%x, chnlGroup = %d, Original=%x writeVal=%x\n",
+ RegOffset[index], chnlGroup, priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index],
+ writeVal);
+
+ if (priv->rf_type == RF_2T2R)
+ {
+ rf_pwr_diff = priv->AntennaTxPwDiff[0];
+ RT_TRACE(COMP_POWER, "2T2R RF-B to RF-A PWR DIFF=%d\n", rf_pwr_diff);
+
+ if (rf_pwr_diff >= 8)
+ {
+ rfa_lower_bound = 0x10-rf_pwr_diff;
+ RT_TRACE(COMP_POWER, "rfa_lower_bound= %d\n", rfa_lower_bound);
+ }
+ else if (rf_pwr_diff >= 0)
+ {
+ rfa_upper_bound = RF6052_MAX_TX_PWR-rf_pwr_diff;
+ RT_TRACE(COMP_POWER, "rfa_upper_bound= %d\n", rfa_upper_bound);
+ }
+ }
+
+ for (i= 0; i <4; i++)
+ {
+ rfa_pwr[i] = (u8)((writeVal & (0x7f<<(i*8)))>>(i*8));
+ if (rfa_pwr[i] > RF6052_MAX_TX_PWR)
+ rfa_pwr[i] = RF6052_MAX_TX_PWR;
+
+ if (priv->rf_type == RF_2T2R)
+ {
+ if (rf_pwr_diff >= 8)
+ {
+ if (rfa_pwr[i] <rfa_lower_bound)
+ {
+ RT_TRACE(COMP_POWER, "Underflow");
+ rfa_pwr[i] = rfa_lower_bound;
+ }
+ }
+ else if (rf_pwr_diff >= 1)
+ {
+ if (rfa_pwr[i] > rfa_upper_bound)
+ {
+ RT_TRACE(COMP_POWER, "Overflow");
+ rfa_pwr[i] = rfa_upper_bound;
+ }
+ }
+ RT_TRACE(COMP_POWER, "rfa_pwr[%d]=%x\n", i, rfa_pwr[i]);
+ }
+
+ }
+
+#if 1
+ writeVal = (rfa_pwr[3]<<24) | (rfa_pwr[2]<<16) |(rfa_pwr[1]<<8) |rfa_pwr[0];
+ RT_TRACE(COMP_POWER, "WritePower=%08x\n", writeVal);
+#else
+ if(priv->bDynamicTxHighPower == true)
+ {
+ if(index > 1)
+ {
+ writeVal = 0x03030303;
+ }
+ else
+ {
+ writeVal = (rfa_pwr[3]<<24) | (rfa_pwr[2]<<16) |(rfa_pwr[1]<<8) |rfa_pwr[0];
+ }
+ RT_TRACE(COMP_POWER, "HighPower=%08x\n", writeVal);
+ }
+ else
+ {
+ writeVal = (rfa_pwr[3]<<24) | (rfa_pwr[2]<<16) |(rfa_pwr[1]<<8) |rfa_pwr[0];
+ RT_TRACE(COMP_POWER, "NormalPower=%08x\n", writeVal);
+ }
+#endif
+ rtl8192_setBBreg(dev, RegOffset[index], 0x7f7f7f7f, writeVal);
+ }
+
+} /* PHY_RF6052SetOFDMTxPower */
+#endif
+
+void getPowerBase(
+ struct net_device* dev,
+ u8* pPowerLevel,
+ u8 Channel,
+ u32* OfdmBase,
+ u32* MCSBase,
+ u8* pFinalPowerIndex
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 powerBase0, powerBase1;
+ u8 Legacy_pwrdiff=0, HT20_pwrdiff=0;
+ u8 i, powerlevel[4];
+
+ for(i=0; i<2; i++)
+ powerlevel[i] = pPowerLevel[i];
+ if (priv->eeprom_version < 2)
+ powerBase0 = powerlevel[0] + (priv->LegacyHTTxPowerDiff & 0xf);
+ else if (priv->eeprom_version >= 2)
+ {
+ Legacy_pwrdiff = priv->TxPwrLegacyHtDiff[RF90_PATH_A][Channel-1];
+ powerBase0 = powerlevel[0] + Legacy_pwrdiff;
+ }
+ powerBase0 = (powerBase0<<24) | (powerBase0<<16) |(powerBase0<<8) |powerBase0;
+ *OfdmBase = powerBase0;
+ RT_TRACE(COMP_POWER, " [OFDM power base index = 0x%x]\n", powerBase0);
+
+ if(priv->eeprom_version >= 2)
+ {
+ if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20)
+ {
+ for(i=0; i<2; i++)
+ {
+ HT20_pwrdiff = priv->TxPwrHt20Diff[i][Channel-1];
+ if (HT20_pwrdiff < 8)
+ powerlevel[i] += HT20_pwrdiff;
+ else
+ powerlevel[i] -= (16-HT20_pwrdiff);
+ }
+ }
+ }
+ powerBase1 = powerlevel[0];
+ powerBase1 = (powerBase1<<24) | (powerBase1<<16) |(powerBase1<<8) |powerBase1;
+ *MCSBase = powerBase1;
+
+ RT_TRACE(COMP_POWER, " [MCS power base index = 0x%x]\n", powerBase1);
+
+ pFinalPowerIndex[0] = powerlevel[0];
+ pFinalPowerIndex[1] = powerlevel[1];
+ switch(priv->EEPROMRegulatory)
+ {
+ case 3:
+ if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40)
+ {
+ pFinalPowerIndex[0] += priv->PwrGroupHT40[RF90_PATH_A][Channel-1];
+ pFinalPowerIndex[1] += priv->PwrGroupHT40[RF90_PATH_B][Channel-1];
+ }
+ else
+ {
+ pFinalPowerIndex[0] += priv->PwrGroupHT20[RF90_PATH_A][Channel-1];
+ pFinalPowerIndex[1] += priv->PwrGroupHT20[RF90_PATH_B][Channel-1];
+ }
+ break;
+ default:
+ break;
+ }
+ if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40)
+ {
+ RT_TRACE(COMP_POWER, "40MHz finalPowerIndex (A / B) = 0x%x / 0x%x\n",
+ pFinalPowerIndex[0], pFinalPowerIndex[1]);
+ }
+ else
+ {
+ RT_TRACE(COMP_POWER, "20MHz finalPowerIndex (A / B) = 0x%x / 0x%x\n",
+ pFinalPowerIndex[0], pFinalPowerIndex[1]);
+ }
+}
+
+void getTxPowerWriteValByRegulatory(
+ struct net_device* dev,
+ u8 Channel,
+ u8 index,
+ u32 powerBase0,
+ u32 powerBase1,
+ u32* pOutWriteVal
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 i, chnlGroup, pwr_diff_limit[4];
+ u32 writeVal, customer_limit;
+
+ switch(priv->EEPROMRegulatory)
+ {
+ case 0:
+ chnlGroup = 0;
+ RT_TRACE(COMP_POWER,"MCSTxPowerLevelOriginalOffset[%d][%d] = 0x%x\n",
+ chnlGroup, index, priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index]);
+ writeVal = priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index] +
+ ((index<2)?powerBase0:powerBase1);
+ RT_TRACE(COMP_POWER,"RTK better performance, writeVal = 0x%x\n", writeVal);
+ break;
+ case 1:
+ if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40)
+ {
+ writeVal = ((index<2)?powerBase0:powerBase1);
+ RT_TRACE(COMP_POWER,"Realtek regulatory, 40MHz, writeVal = 0x%x\n", writeVal);
+ }
+ else
+ {
+ if(priv->pwrGroupCnt == 1)
+ chnlGroup = 0;
+ if(priv->pwrGroupCnt >= 3)
+ {
+ if(Channel <= 3)
+ chnlGroup = 0;
+ else if(Channel >= 4 && Channel <= 8)
+ chnlGroup = 1;
+ else if(Channel > 8)
+ chnlGroup = 2;
+ if(priv->pwrGroupCnt == 4)
+ chnlGroup++;
+ }
+ RT_TRACE(COMP_POWER,"MCSTxPowerLevelOriginalOffset[%d][%d] = 0x%x\n",
+ chnlGroup, index, priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index]);
+ writeVal = priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index] +
+ ((index<2)?powerBase0:powerBase1);
+ RT_TRACE(COMP_POWER,"Realtek regulatory, 20MHz, writeVal = 0x%x\n", writeVal);
+ }
+ break;
+ case 2:
+ writeVal = ((index<2)?powerBase0:powerBase1);
+ RT_TRACE(COMP_POWER,"Better regulatory, writeVal = 0x%x\n", writeVal);
+ break;
+ case 3:
+ chnlGroup = 0;
+ RT_TRACE(COMP_POWER,"MCSTxPowerLevelOriginalOffset[%d][%d] = 0x%x\n",
+ chnlGroup, index, priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index]);
+
+ if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40)
+ {
+ RT_TRACE(COMP_POWER,"customer's limit, 40MHz = 0x%x\n",
+ priv->PwrGroupHT40[RF90_PATH_A][Channel-1]);
+ }
+ else
+ {
+ RT_TRACE(COMP_POWER,"customer's limit, 20MHz = 0x%x\n",
+ priv->PwrGroupHT20[RF90_PATH_A][Channel-1]);
+ }
+ for (i=0; i<4; i++)
+ {
+ pwr_diff_limit[i] = (u8)((priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index]&(0x7f<<(i*8)))>>(i*8));
+ if (priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20_40)
+ {
+ if(pwr_diff_limit[i] > priv->PwrGroupHT40[RF90_PATH_A][Channel-1])
+ {
+ pwr_diff_limit[i] = priv->PwrGroupHT40[RF90_PATH_A][Channel-1];
+ }
+ }
+ else
+ {
+ if(pwr_diff_limit[i] > priv->PwrGroupHT20[RF90_PATH_A][Channel-1])
+ {
+ pwr_diff_limit[i] = priv->PwrGroupHT20[RF90_PATH_A][Channel-1];
+ }
+ }
+ }
+ customer_limit = (pwr_diff_limit[3]<<24) | (pwr_diff_limit[2]<<16) |
+ (pwr_diff_limit[1]<<8) | (pwr_diff_limit[0]);
+ RT_TRACE(COMP_POWER,"Customer's limit = 0x%x\n", customer_limit);
+
+ writeVal = customer_limit + ((index<2)?powerBase0:powerBase1);
+ RT_TRACE(COMP_POWER,"Customer, writeVal = 0x%x\n", writeVal);
+ break;
+ default:
+ chnlGroup = 0;
+ writeVal = priv->MCSTxPowerLevelOriginalOffset[chnlGroup][index] +
+ ((index<2)?powerBase0:powerBase1);
+ RT_TRACE(COMP_POWER,"RTK better performance, writeVal = 0x%x\n", writeVal);
+ break;
+ }
+
+ if(priv->DynamicTxHighPowerLvl == TxHighPwrLevel_Level1)
+ writeVal = 0x10101010;
+ else if(priv->DynamicTxHighPowerLvl == TxHighPwrLevel_Level2)
+ writeVal = 0x0;
+
+ *pOutWriteVal = writeVal;
+
+}
+
+void setAntennaDiff(
+ struct net_device* dev,
+ u8* pFinalPowerIndex
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ char ant_pwr_diff=0;
+ u32 u4RegValue=0;
+
+ if (priv->rf_type == RF_2T2R)
+ {
+ ant_pwr_diff = pFinalPowerIndex[1] - pFinalPowerIndex[0];
+
+ if(ant_pwr_diff > 7)
+ ant_pwr_diff = 7;
+ if(ant_pwr_diff < -8)
+ ant_pwr_diff = -8;
+ RT_TRACE(COMP_POWER,"Antenna Diff from RF-B to RF-A = %d (0x%x)\n",
+ ant_pwr_diff, ant_pwr_diff&0xf);
+ ant_pwr_diff &= 0xf;
+ }
+ priv->AntennaTxPwDiff[2] = 0;
+ priv->AntennaTxPwDiff[1] = 0;
+ priv->AntennaTxPwDiff[0] = (u8)(ant_pwr_diff);
+
+ u4RegValue = (priv->AntennaTxPwDiff[2]<<8 |
+ priv->AntennaTxPwDiff[1]<<4 |
+ priv->AntennaTxPwDiff[0] );
+
+ rtl8192_setBBreg(dev, rFPGA0_TxGainStage,
+ (bXBTxAGC|bXCTxAGC|bXDTxAGC), u4RegValue);
+
+ RT_TRACE(COMP_POWER,"Write BCD-Diff(0x%x) = 0x%x\n",
+ rFPGA0_TxGainStage, u4RegValue);
+}
+
+void writeOFDMPowerReg(
+ struct net_device* dev,
+ u8 index,
+ u32 Value
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u16 RegOffset[6] = {0xe00, 0xe04, 0xe10, 0xe14, 0xe18, 0xe1c};
+ u8 i, rfa_pwr[4];
+ u8 rfa_lower_bound = 0, rfa_upper_bound = 0, rf_pwr_diff = 0;
+ u32 writeVal=Value;
+ if (priv->rf_type == RF_2T2R)
+ {
+ rf_pwr_diff = priv->AntennaTxPwDiff[0];
+
+ if (rf_pwr_diff >= 8)
+ {
+ rfa_lower_bound = 0x10-rf_pwr_diff;
+ RT_TRACE(COMP_POWER,"rfa_lower_bound= %d\n", rfa_lower_bound);
+ }
+ else
+ {
+ rfa_upper_bound = RF6052_MAX_TX_PWR-rf_pwr_diff;
+ RT_TRACE(COMP_POWER,"rfa_upper_bound= %d\n", rfa_upper_bound);
+ }
+ }
+
+ for (i=0; i<4; i++)
+ {
+ rfa_pwr[i] = (u8)((writeVal & (0x7f<<(i*8)))>>(i*8));
+ if (rfa_pwr[i] > RF6052_MAX_TX_PWR)
+ rfa_pwr[i] = RF6052_MAX_TX_PWR;
+
+ if (priv->rf_type == RF_2T2R)
+ {
+ if (rf_pwr_diff >= 8)
+ {
+ if (rfa_pwr[i] <rfa_lower_bound)
+ {
+ RT_TRACE(COMP_POWER,"Underflow");
+ rfa_pwr[i] = rfa_lower_bound;
+ }
+ }
+ else if (rf_pwr_diff >= 1)
+ {
+ if (rfa_pwr[i] > rfa_upper_bound)
+ {
+ RT_TRACE(COMP_POWER,"Overflow");
+ rfa_pwr[i] = rfa_upper_bound;
+ }
+ }
+ RT_TRACE(COMP_POWER,"rfa_pwr[%d]=%x\n", i, rfa_pwr[i]);
+ }
+
+ }
+
+ writeVal = (rfa_pwr[3]<<24) | (rfa_pwr[2]<<16) |(rfa_pwr[1]<<8) |rfa_pwr[0];
+
+ rtl8192_setBBreg(dev, RegOffset[index], 0x7f7f7f7f, writeVal);
+ RT_TRACE(COMP_POWER,"Set 0x%x = %08x\n",RegOffset[index], writeVal);
+}
+
+/*-----------------------------------------------------------------------------
+ * Function: PHY_RF6052SetOFDMTxPower
+ *
+ * Overview: For legacy and HY OFDM, we must read EEPROM TX power index for
+ * different channel and read original value in TX power register area from
+ * 0xe00. We increase offset and original value to be correct tx pwr.
+ *
+ * Input: NONE
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 11/05/2008 MHC Simulate 8192 series method.
+ * 01/06/2009 MHC 1. Prevent Path B tx power overflow or underflow dure to
+ * A/B pwr difference or legacy/HT pwr diff.
+ * 2. We concern with path B legacy/HT OFDM difference.
+ * 01/22/2009 MHC Support new EPRO format from SD3.
+ *
+ *---------------------------------------------------------------------------*/
+extern void
+PHY_RF6052SetOFDMTxPower(struct net_device* dev, u8* pPowerLevel, u8 Channel)
+{
+ u32 writeVal, powerBase0, powerBase1;
+ u8 index = 0;
+ u8 finalPowerIndex[4];
+
+ getPowerBase(dev, pPowerLevel, Channel, &powerBase0, &powerBase1, &finalPowerIndex[0]);
+ setAntennaDiff(dev, &finalPowerIndex[0] );
+
+ for(index=0; index<6; index++)
+ {
+ getTxPowerWriteValByRegulatory(dev, Channel, index,
+ powerBase0, powerBase1, &writeVal);
+
+ writeOFDMPowerReg(dev, index, writeVal);
+ }
+}
+
+bool PHY_RF6052_Config(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool rtStatus = true;
+ u8 bRegHwParaFile = 1;
+
+ if(priv->rf_type == RF_1T1R)
+ priv->NumTotalRFPath = 1;
+ else
+ priv->NumTotalRFPath = 2;
+
+ switch(bRegHwParaFile)
+ {
+ case 0:
+ phy_RF6052_Config_HardCode(dev);
+ break;
+
+ case 1:
+ rtStatus = phy_RF6052_Config_ParaFile(dev);
+ break;
+
+ case 2:
+ phy_RF6052_Config_HardCode(dev);
+ phy_RF6052_Config_ParaFile(dev);
+ break;
+
+ default:
+ phy_RF6052_Config_HardCode(dev);
+ break;
+ }
+ return rtStatus;
+
+}
+
+void phy_RF6052_Config_HardCode(struct net_device* dev)
+{
+
+
+
+}
+
+bool phy_RF6052_Config_ParaFile(struct net_device* dev)
+{
+ u32 u4RegValue = 0;
+ u8 eRFPath;
+ bool rtStatus = true;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ BB_REGISTER_DEFINITION_T *pPhyReg;
+
+
+ for(eRFPath = 0; eRFPath <priv->NumTotalRFPath; eRFPath++)
+ {
+
+ pPhyReg = &priv->PHYRegDef[eRFPath];
+
+ switch(eRFPath)
+ {
+ case RF90_PATH_A:
+ case RF90_PATH_C:
+ u4RegValue = rtl8192_QueryBBReg(dev, pPhyReg->rfintfs, bRFSI_RFENV);
+ break;
+ case RF90_PATH_B :
+ case RF90_PATH_D:
+ u4RegValue = rtl8192_QueryBBReg(dev, pPhyReg->rfintfs, bRFSI_RFENV<<16);
+ break;
+ }
+
+ rtl8192_setBBreg(dev, pPhyReg->rfintfe, bRFSI_RFENV<<16, 0x1);
+
+ rtl8192_setBBreg(dev, pPhyReg->rfintfo, bRFSI_RFENV, 0x1);
+
+ rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, b3WireAddressLength, 0x0);
+ rtl8192_setBBreg(dev, pPhyReg->rfHSSIPara2, b3WireDataLength, 0x0);
+
+
+ switch(eRFPath)
+ {
+ case RF90_PATH_A:
+#if RTL8190_Download_Firmware_From_Header
+ rtStatus= rtl8192_phy_ConfigRFWithHeaderFile(dev,(RF90_RADIO_PATH_E)eRFPath);
+#else
+ rtStatus = PHY_ConfigRFWithParaFile(dev, (char* )&szRadioAFile, (RF90_RADIO_PATH_E)eRFPath);
+#endif
+ break;
+ case RF90_PATH_B:
+#if RTL8190_Download_Firmware_From_Header
+ rtStatus= rtl8192_phy_ConfigRFWithHeaderFile(dev,(RF90_RADIO_PATH_E)eRFPath);
+#else
+ if(priv->rf_type == RF_2T2R_GREEN)
+ rtStatus = PHY_ConfigRFWithParaFile(dev, (char *)&szRadioBGMFile, (RF90_RADIO_PATH_E)eRFPath);
+ else
+ rtStatus = PHY_ConfigRFWithParaFile(dev, (char* )&szRadioBFile, (RF90_RADIO_PATH_E)eRFPath);
+#endif
+ break;
+ case RF90_PATH_C:
+ break;
+ case RF90_PATH_D:
+ break;
+ }
+
+ switch(eRFPath)
+ {
+ case RF90_PATH_A:
+ case RF90_PATH_C:
+ rtl8192_setBBreg(dev, pPhyReg->rfintfs, bRFSI_RFENV, u4RegValue);
+ break;
+ case RF90_PATH_B :
+ case RF90_PATH_D:
+ rtl8192_setBBreg(dev, pPhyReg->rfintfs, bRFSI_RFENV<<16, u4RegValue);
+ break;
+ }
+
+ if(rtStatus != true){
+ printk("phy_RF6052_Config_ParaFile():Radio[%d] Fail!!", eRFPath);
+ goto phy_RF6052_Config_ParaFile_Fail;
+ }
+
+ }
+
+ RT_TRACE(COMP_INIT, "<---phy_RF6052_Config_ParaFile()\n");
+ return rtStatus;
+
+phy_RF6052_Config_ParaFile_Fail:
+ return rtStatus;
+}
+
+
+extern u32 PHY_RFShadowRead(
+ struct net_device * dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset)
+{
+ return RF_Shadow[eRFPath][Offset].Value;
+
+} /* PHY_RFShadowRead */
+
+
+extern void PHY_RFShadowWrite(
+ struct net_device * dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset,
+ u32 Data)
+{
+ RF_Shadow[eRFPath][Offset].Value = (Data & bMask20Bits);
+ RF_Shadow[eRFPath][Offset].Driver_Write = true;
+
+} /* PHY_RFShadowWrite */
+
+
+extern bool PHY_RFShadowCompare(
+ struct net_device * dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset)
+{
+ u32 reg;
+
+ if (RF_Shadow[eRFPath][Offset].Compare == true)
+ {
+ reg = rtl8192_phy_QueryRFReg(dev, eRFPath, Offset, bMask20Bits);
+ if (RF_Shadow[eRFPath][Offset].Value != reg)
+ {
+ RF_Shadow[eRFPath][Offset].ErrorOrNot = true;
+ RT_TRACE(COMP_INIT, "PHY_RFShadowCompare RF-%d Addr%02xErr = %05x", eRFPath, Offset, reg);
+ }
+ else
+ {
+ RT_TRACE(COMP_INIT, "PHY_RFShadowCompare RF-%d Addr%02x Err = %05x return false\n", eRFPath, Offset, reg);
+ RF_Shadow[eRFPath][Offset].ErrorOrNot = false;
+ }
+ return RF_Shadow[eRFPath][Offset].ErrorOrNot;
+ }
+ return false;
+} /* PHY_RFShadowCompare */
+
+extern void PHY_RFShadowRecorver(
+ struct net_device * dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset)
+{
+ if (RF_Shadow[eRFPath][Offset].ErrorOrNot == true)
+ {
+ if (RF_Shadow[eRFPath][Offset].Recorver == true)
+ {
+ rtl8192_phy_SetRFReg(dev, eRFPath, Offset, bMask20Bits, RF_Shadow[eRFPath][Offset].Value);
+ RT_TRACE(COMP_INIT, "PHY_RFShadowRecorver RF-%d Addr%02x=%05x",
+ eRFPath, Offset, RF_Shadow[eRFPath][Offset].Value);
+ }
+ }
+
+} /* PHY_RFShadowRecorver */
+
+
+extern void PHY_RFShadowCompareAll(struct net_device * dev)
+{
+ u32 eRFPath;
+ u32 Offset;
+
+ for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++)
+ {
+ for (Offset = 0; Offset <= RF6052_MAX_REG; Offset++)
+ {
+ PHY_RFShadowCompare(dev, (RF90_RADIO_PATH_E)eRFPath, Offset);
+ }
+ }
+
+} /* PHY_RFShadowCompareAll */
+
+
+extern void PHY_RFShadowRecorverAll(struct net_device * dev)
+{
+ u32 eRFPath;
+ u32 Offset;
+
+ for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++)
+ {
+ for (Offset = 0; Offset <= RF6052_MAX_REG; Offset++)
+ {
+ PHY_RFShadowRecorver(dev, (RF90_RADIO_PATH_E)eRFPath, Offset);
+ }
+ }
+
+} /* PHY_RFShadowRecorverAll */
+
+
+extern void PHY_RFShadowCompareFlagSet(
+ struct net_device * dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset,
+ u8 Type)
+{
+ RF_Shadow[eRFPath][Offset].Compare = Type;
+
+} /* PHY_RFShadowCompareFlagSet */
+
+
+extern void PHY_RFShadowRecorverFlagSet(
+ struct net_device * dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset,
+ u8 Type)
+{
+ RF_Shadow[eRFPath][Offset].Recorver= Type;
+
+} /* PHY_RFShadowRecorverFlagSet */
+
+
+extern void PHY_RFShadowCompareFlagSetAll(struct net_device * dev)
+{
+ u32 eRFPath;
+ u32 Offset;
+
+ for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++)
+ {
+ for (Offset = 0; Offset <= RF6052_MAX_REG; Offset++)
+ {
+ if (Offset != 0x26 && Offset != 0x27)
+ PHY_RFShadowCompareFlagSet(dev, (RF90_RADIO_PATH_E)eRFPath, Offset, false);
+ else
+ PHY_RFShadowCompareFlagSet(dev, (RF90_RADIO_PATH_E)eRFPath, Offset, true);
+ }
+ }
+
+} /* PHY_RFShadowCompareFlagSetAll */
+
+
+extern void PHY_RFShadowRecorverFlagSetAll(struct net_device * dev)
+{
+ u32 eRFPath;
+ u32 Offset;
+
+ for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++)
+ {
+ for (Offset = 0; Offset <= RF6052_MAX_REG; Offset++)
+ {
+ if (Offset != 0x26 && Offset != 0x27)
+ PHY_RFShadowRecorverFlagSet(dev, (RF90_RADIO_PATH_E)eRFPath, Offset, false);
+ else
+ PHY_RFShadowRecorverFlagSet(dev, (RF90_RADIO_PATH_E)eRFPath, Offset, true);
+ }
+ }
+
+} /* PHY_RFShadowCompareFlagSetAll */
+
+
+
+extern void PHY_RFShadowRefresh(struct net_device * dev)
+{
+ u32 eRFPath;
+ u32 Offset;
+
+ for (eRFPath = 0; eRFPath < RF6052_MAX_PATH; eRFPath++)
+ {
+ for (Offset = 0; Offset <= RF6052_MAX_REG; Offset++)
+ {
+ RF_Shadow[eRFPath][Offset].Value = 0;
+ RF_Shadow[eRFPath][Offset].Compare = false;
+ RF_Shadow[eRFPath][Offset].Recorver = false;
+ RF_Shadow[eRFPath][Offset].ErrorOrNot = false;
+ RF_Shadow[eRFPath][Offset].Driver_Write = false;
+ }
+ }
+
+} /* PHY_RFShadowRead */
+
+/* End of HalRf6052.c */
+
+#endif
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_rtl6052.h b/ubuntu/rtl8192se/rtl8192s/r8192S_rtl6052.h
new file mode 100755
index 00000000000..78614bae5cf
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_rtl6052.h
@@ -0,0 +1,116 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+
+
+/*--------------------------Define Parameters-------------------------------*/
+
+#define RF6052_MAX_TX_PWR 0x3F
+#define RF6052_MAX_REG 0x3F
+#define RF6052_MAX_PATH 4
+/*--------------------------Define Parameters-------------------------------*/
+
+
+/*------------------------------Define structure----------------------------*/
+
+/*------------------------------Define structure----------------------------*/
+
+
+/*------------------------Export global variable----------------------------*/
+/*------------------------Export global variable----------------------------*/
+
+/*------------------------Export Marco Definition---------------------------*/
+
+/*------------------------Export Marco Definition---------------------------*/
+
+
+/*--------------------------Exported Function prototype---------------------*/
+#if 1
+extern void PHY_SetRF0222DBandwidth(struct net_device* dev , HT_CHANNEL_WIDTH Bandwidth);
+extern void PHY_SetRF8225Bandwidth( struct net_device* dev , HT_CHANNEL_WIDTH Bandwidth);
+extern bool PHY_RF8225_Config(struct net_device* dev );
+extern void phy_RF8225_Config_HardCode(struct net_device* dev);
+extern bool phy_RF8225_Config_ParaFile(struct net_device* dev);
+extern void PHY_SetRF8225CckTxPower(struct net_device* dev ,u8 powerlevel);
+extern void PHY_SetRF8225OfdmTxPower(struct net_device* dev ,u8 powerlevel);
+extern void PHY_SetRF0222DOfdmTxPower(struct net_device* dev ,u8 powerlevel);
+extern void PHY_SetRF0222DCckTxPower(struct net_device* dev ,u8 powerlevel);
+
+extern void PHY_SetRF8256Bandwidth(struct net_device* dev , HT_CHANNEL_WIDTH Bandwidth);
+extern void PHY_RF8256_Config(struct net_device* dev);
+extern void phy_RF8256_Config_ParaFile(struct net_device* dev);
+extern void PHY_SetRF8256CCKTxPower(struct net_device* dev, u8 powerlevel);
+extern void PHY_SetRF8256OFDMTxPower(struct net_device* dev, u8 powerlevel);
+#endif
+
+extern void RF_ChangeTxPath(struct net_device * dev, u16 DataRate);
+extern void PHY_RF6052SetBandwidth(struct net_device * dev,HT_CHANNEL_WIDTH Bandwidth);
+extern void PHY_RF6052SetCckTxPower(struct net_device * dev, u8 powerlevel);
+extern void PHY_RF6052SetOFDMTxPower(struct net_device * dev, u8* pPowerLevel, u8 Channel);
+extern bool PHY_RF6052_Config(struct net_device * dev);
+extern void PHY_RFShadowRefresh( struct net_device * dev);
+extern void PHY_RFShadowWrite( struct net_device* dev, RF90_RADIO_PATH_E eRFPath, u32 Offset, u32 Data);
+
+extern bool
+PHY_RFShadowCompare(
+ struct net_device * dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset);
+extern void
+PHY_RFShadowRecorver(
+ struct net_device * dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset);
+extern void
+PHY_RFShadowCompareFlagSet(
+ struct net_device * dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset,
+ u8 Type);
+extern void
+PHY_RFShadowRecorverFlagSet(
+ struct net_device * dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset,
+ u8 Type);
+#if 0
+extern u32
+PHY_RFShadowRead(
+ struct net_device * dev,
+ RF90_RADIO_PATH_E eRFPath,
+ u32 Offset);
+extern void
+PHY_RFShadowCompareAll(
+ struct net_device * dev);
+extern void
+PHY_RFShadowRecorverAll(
+ struct net_device * dev);
+extern void
+PHY_RFShadowCompareFlagSetAll(
+ struct net_device * dev);
+extern void
+PHY_RFShadowRecorverFlagSetAll(
+ struct net_device * dev);
+extern void
+PHY_RFShadowRefresh(
+ struct net_device * dev);
+#endif
+/*--------------------------Exported Function prototype---------------------*/
+
+
+/* End of HalRf.h */
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_scan.c b/ubuntu/rtl8192se/rtl8192s/r8192S_scan.c
new file mode 100755
index 00000000000..0c6f58723f6
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_scan.c
@@ -0,0 +1,413 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#include "../rtl_core.h"
+
+#define IWL_SCAN_CHECK_WATCHDOG (7 * HZ)
+
+void rtl8192se_hw_scan_simu(void *data)
+{
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20))
+ struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,hw_scan_simu_wq);
+ struct net_device *dev = priv->rtllib->dev;
+#else
+ struct net_device *dev = (struct net_device *)data;
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+
+ rtllib_update_active_chan_map(priv->rtllib);
+
+ priv->rtllib->current_network.channel = (priv->rtllib->current_network.channel + 1) % 12;
+ if (priv->rtllib->scan_watch_dog++ > 12)
+ {
+ goto out; /* no good chans */
+ }
+
+ if ((!test_bit(STATUS_SCANNING, &priv->rtllib->status)) ||
+ (test_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status))){
+ goto out;
+ }
+
+ if(priv->rtllib->current_network.channel != 0){
+ priv->rtllib->set_chan(dev,priv->rtllib->current_network.channel);
+#ifdef _RTL8192_EXT_PATCH_
+ rtllib_send_probe_requests(priv->rtllib, 1);
+#else
+ rtllib_send_probe_requests(priv->rtllib);
+#endif
+ }
+
+ queue_delayed_work_rsl(priv->priv_wq, &priv->hw_scan_simu_wq, MSECS(RTLLIB_SOFTMAC_SCAN_TIME));
+
+ return;
+out:
+ priv->rtllib->scan_watch_dog =0;
+ rtl8192se_rx_surveydone_cmd(dev);
+
+ if(priv->rtllib->state == RTLLIB_LINKED_SCANNING){
+ priv->rtllib->current_network.channel = priv->rtllib->hwscan_ch_bk;
+ printk("%s():back to linked chan:%d\n", __func__,priv->rtllib->current_network.channel);
+ priv->rtllib->set_chan(dev,priv->rtllib->current_network.channel);
+ }
+}
+
+void rtl8192se_before_hw_scan(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ HT_EXTCHNL_OFFSET chan_offset=0;
+ HT_CHANNEL_WIDTH bandwidth=0;
+ struct rtllib_device *ieee = priv->rtllib;
+
+ if(priv->rtllib->state != RTLLIB_LINKED)
+ return;
+
+
+#ifdef ENABLE_LPS
+ if (ieee->LeisurePSLeave) {
+ ieee->LeisurePSLeave(ieee->dev);
+ }
+ /* notify AP to be in PS mode */
+ rtllib_sta_ps_send_null_frame(ieee, 1);
+ rtllib_sta_ps_send_null_frame(ieee, 1);
+#endif
+
+ rtllib_stop_all_queues(ieee);
+
+ if (ieee->data_hard_stop)
+ ieee->data_hard_stop(ieee->dev);
+ rtllib_stop_send_beacons(ieee);
+ ieee->state = RTLLIB_LINKED_SCANNING;
+ ieee->link_change(ieee->dev);
+ /* wait for ps packet to be kicked out successfully */
+ mdelay(50);
+
+#if(RTL8192S_DISABLE_FW_DM == 0)
+ if (ieee->SetFwCmdHandler) {
+ ieee->SetFwCmdHandler(ieee->dev, FW_CMD_PAUSE_DM_BY_SCAN);
+ }
+#endif
+
+ if (ieee->pHTInfo->bCurrentHTSupport && ieee->pHTInfo->bEnableHT && ieee->pHTInfo->bCurBW40MHz) {
+ priv->hwscan_bw_40 = 1;
+ priv->rtllib->chan_offset_bk = chan_offset = ieee->pHTInfo->CurSTAExtChnlOffset;
+ priv->rtllib->bandwidth_bk = bandwidth = (HT_CHANNEL_WIDTH)ieee->pHTInfo->bCurBW40MHz;
+ printk("before scan force BW to 20M:%d, %d\n", chan_offset, bandwidth);
+ ieee->SetBWModeHandler(ieee->dev, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT);
+ }
+}
+void rtl8192se_after_hw_scan(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ HT_EXTCHNL_OFFSET chan_offset = priv->rtllib->chan_offset_bk;
+ HT_CHANNEL_WIDTH bandwidth = priv->rtllib->bandwidth_bk;
+ struct rtllib_device *ieee = priv->rtllib;
+
+ if(priv->rtllib->state != RTLLIB_LINKED_SCANNING){
+ goto out;
+ }
+
+ if (ieee->LinkDetectInfo.NumRecvBcnInPeriod == 0 ||
+ ieee->LinkDetectInfo.NumRecvDataInPeriod == 0 ) {
+ ieee->LinkDetectInfo.NumRecvBcnInPeriod = 1;
+ ieee->LinkDetectInfo.NumRecvDataInPeriod= 1;
+ }
+
+ if (priv->hwscan_bw_40) {
+ priv->hwscan_bw_40 = 0;
+ printk("after scan back BW to 40M:%d, %d\n", chan_offset, bandwidth);
+#if 1
+ if (chan_offset == HT_EXTCHNL_OFFSET_UPPER){
+ ieee->set_chan(ieee->dev, priv->rtllib->hwscan_ch_bk + 2);
+ }else if (chan_offset == HT_EXTCHNL_OFFSET_LOWER){
+ ieee->set_chan(ieee->dev, priv->rtllib->hwscan_ch_bk - 2);
+ }else{
+ priv->rtllib->current_network.channel = priv->rtllib->hwscan_ch_bk;
+ ieee->set_chan(ieee->dev, priv->rtllib->hwscan_ch_bk);
+ }
+#endif
+ ieee->SetBWModeHandler(ieee->dev, bandwidth, chan_offset);
+ } else {
+ ieee->set_chan(ieee->dev, priv->rtllib->hwscan_ch_bk);
+ }
+
+#if(RTL8192S_DISABLE_FW_DM == 0)
+ if (ieee->SetFwCmdHandler) {
+ ieee->SetFwCmdHandler(ieee->dev, FW_CMD_RESUME_DM_BY_SCAN);
+ }
+#endif
+ ieee->state = RTLLIB_LINKED;
+ ieee->link_change(ieee->dev);
+
+#ifdef ENABLE_LPS
+ /* Notify AP that I wake up again */
+ rtllib_sta_ps_send_null_frame(ieee, 0);
+#endif
+
+ if (ieee->data_hard_resume)
+ ieee->data_hard_resume(ieee->dev);
+
+ if(ieee->iw_mode == IW_MODE_ADHOC || ieee->iw_mode == IW_MODE_MASTER)
+ rtllib_start_send_beacons(ieee);
+
+ rtllib_wake_all_queues(ieee);
+
+out:
+ return;
+}
+/* Service HAL_FW_C2H_CMD_SurveyDone (0x9) */
+void rtl8192se_rx_surveydone_cmd(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+
+
+ cancel_delayed_work(&priv->check_hw_scan_wq);
+
+ /* If a request to abort was given, or the scan did not succeed
+ * then we reset the scan state machine and terminate,
+ * re-queuing another scan if one has been requested */
+ if (test_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status)) {
+ RT_TRACE(COMP_ERR, "Aborted scan completed.\n");
+ clear_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status);
+ }
+
+ rtl8192se_after_hw_scan(dev);
+
+#ifdef CONFIG_FW_PARSEBEACON
+ if(priv->rtllib->state < RTLLIB_LINKED)
+ write_nic_dword(dev, RXFILTERMAP, 0x0100);
+#endif
+
+ mdelay(1);
+
+ clear_bit(STATUS_SCANNING, &priv->rtllib->status);
+
+ {
+ union iwreq_data wrqu;
+ memset(&wrqu, 0, sizeof(wrqu));
+ wireless_send_event(priv->rtllib->dev,SIOCGIWSCAN,&wrqu,NULL);
+ }
+
+ if(priv->rtllib->hwscan_sem_up == 0){
+ up(&priv->wx_sem);
+ priv->rtllib->hwscan_sem_up = 1;
+ }
+
+
+ return;
+}
+
+
+void rtl8192se_check_hw_scan(void *data)
+{
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20))
+ struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,check_hw_scan_wq);
+ struct net_device *dev = priv->rtllib->dev;
+#else
+ struct net_device *dev = (struct net_device *)data;
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+ unsigned long flags;
+
+
+ spin_lock_irqsave(&priv->fw_scan_lock,flags);
+ printk("----------->%s()\n", __func__);
+
+ if (test_bit(STATUS_SCANNING, &priv->rtllib->status) ||
+ test_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status)) {
+ printk("FW Scan long time without stop, stop hw scan\n");
+ rtl8192se_send_scan_abort(dev);
+ }
+
+
+ if(priv->rtllib->hwscan_sem_up == 0){
+ up(&priv->wx_sem);
+ priv->rtllib->hwscan_sem_up = 1;
+ }
+
+ printk("<-----------%s()\n", __func__);
+ spin_unlock_irqrestore(&priv->fw_scan_lock,flags);
+}
+
+void rtl8192se_start_hw_scan(void *data)
+{
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20))
+ struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,start_hw_scan_wq);
+ struct net_device *dev = priv->rtllib->dev;
+#else
+ struct net_device *dev = (struct net_device *)data;
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+ bool start_flag =true;
+ unsigned long flags;
+
+ down(&priv->wx_sem);
+ priv->rtllib->hwscan_sem_up = 0;
+
+ spin_lock_irqsave(&priv->fw_scan_lock,flags);
+
+
+ cancel_delayed_work(&priv->check_hw_scan_wq);
+
+ /* Make sure the scan wasn't canceled before this queued work
+ * was given the chance to run... */
+ if (!test_bit(STATUS_SCANNING, &priv->rtllib->status)){
+ RT_TRACE(COMP_ERR,"scan was canceled.");
+ goto done;
+ }
+
+ if (test_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status)) {
+ RT_TRACE(COMP_ERR, "Scan request while abort pending. Queuing.");
+ goto done;
+ }
+
+
+#ifdef CONFIG_FW_PARSEBEACON
+ if(priv->rtllib->state < RTLLIB_LINKED)
+ write_nic_dword(dev, RXFILTERMAP, 0x0000);
+#endif
+
+ rtl8192se_before_hw_scan(dev);
+ rtl8192se_send_scan_cmd(dev,start_flag);
+
+ queue_delayed_work_rsl(priv->priv_wq,&priv->check_hw_scan_wq,MSECS(7000));
+
+
+ spin_unlock_irqrestore(&priv->fw_scan_lock,flags);
+
+ return;
+
+ done:
+ up(&priv->wx_sem);
+ priv->rtllib->hwscan_sem_up = 1;
+ /* Cannot perform scan. Make sure we clear scanning
+ * bits from status so next scan request can be performed.
+ * If we don't clear scanning status bit here all next scan
+ * will fail
+ */
+ clear_bit(STATUS_SCANNING, &priv->rtllib->status);
+
+ /* inform mac80211 scan aborted */
+
+ spin_unlock_irqrestore(&priv->fw_scan_lock,flags);
+
+ return;
+}
+
+void rtl8192se_hw_scan_initiate(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ unsigned long flags;
+
+ spin_lock_irqsave(&priv->fw_scan_lock,flags);
+
+
+ if (test_bit(STATUS_SCANNING, &priv->rtllib->status)) {
+ printk("Scan already in progress.\n");
+ goto done;
+ }
+
+ if (test_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status)) {
+ printk("Scan request while abort pending\n");
+ goto done;
+ }
+
+
+ set_bit(STATUS_SCANNING, &priv->rtllib->status);
+
+ queue_delayed_work_rsl(priv->priv_wq,&priv->start_hw_scan_wq,0);
+
+done:
+ spin_unlock_irqrestore(&priv->fw_scan_lock,flags);
+
+ return;
+}
+
+void rtl8192se_send_scan_abort(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int ret = true;
+ bool start_flag =false;
+
+
+ /* If there isn't a scan actively going on in the hardware
+ * then we are in between scan bands and not actually
+ * actively scanning, so don't send the abort command */
+ if (!test_bit(STATUS_SCANNING, &priv->rtllib->status)) {
+ goto done;
+ }
+
+ ret = rtl8192se_send_scan_cmd(dev, start_flag);
+ mdelay(1);
+
+#ifdef CONFIG_FW_PARSEBEACON
+ if(priv->rtllib->state < RTLLIB_LINKED)
+ write_nic_dword(dev, RXFILTERMAP, 0x0100);
+#endif
+
+ if (ret) {
+ goto done;
+ }
+
+
+done:
+ clear_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status);
+ clear_bit(STATUS_SCANNING, &priv->rtllib->status);
+
+ return;
+}
+
+/**
+ * rtl8192se_cancel_hw_scan - Cancel any currently executing HW scan
+ *
+ * NOTE: priv->mutex is not required before calling this function
+ */
+void rtl8192se_cancel_hw_scan(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ unsigned long flags;
+
+ spin_lock_irqsave(&priv->fw_scan_lock,flags);
+
+ if (test_bit(STATUS_SCANNING, &priv->rtllib->status)) {
+ if (!test_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status)) {
+ printk("====>%s stop HW scan\n", __func__);
+ cancel_delayed_work(&priv->check_hw_scan_wq);
+
+ set_bit(STATUS_SCAN_ABORTING, &priv->rtllib->status);
+ rtl8192se_send_scan_abort(dev);
+ } else {
+ printk("-------------->%s()Scan abort already in progress.\n", __func__);
+ }
+ }
+
+ if(priv->rtllib->hwscan_sem_up == 0){
+ up(&priv->wx_sem);
+ priv->rtllib->hwscan_sem_up = 1;
+ }
+
+ spin_unlock_irqrestore(&priv->fw_scan_lock,flags);
+ return;
+}
+
diff --git a/ubuntu/rtl8192se/rtl8192s/r8192S_scan.h b/ubuntu/rtl8192se/rtl8192s/r8192S_scan.h
new file mode 100755
index 00000000000..35ddc1ca9fe
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl8192s/r8192S_scan.h
@@ -0,0 +1,38 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef _RTL8192SE_SCAN
+#define _RTL8192SE_SCAN
+
+void rtl8192se_hw_scan_simu(void *data);
+void rtl8192se_rx_surveydone_cmd(struct net_device *dev);
+void rtl8192se_check_hw_scan(void *data);
+void rtl8192se_start_hw_scan(void *data);
+void rtl8192se_abort_hw_scan(struct net_device *dev);
+void rtl8192se_hw_scan_initiate(struct net_device *dev);
+void rtl8192se_send_scan_abort(struct net_device *dev);
+void rtl8192se_cancel_hw_scan(struct net_device *dev);
+
+#endif
+
diff --git a/ubuntu/rtl8192se/rtl_cam.c b/ubuntu/rtl8192se/rtl_cam.c
new file mode 100755
index 00000000000..ee024883ae5
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_cam.c
@@ -0,0 +1,569 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#include "rtl_core.h"
+#if defined RTL8192CE
+#include "rtl8192c/r8192C_phy.h"
+#include "rtl8192c/r8192C_phyreg.h"
+#include "rtl8192c/r8192C_rtl6052.h"
+#include "rtl8192c/r8192C_Efuse.h"
+#elif defined RTL8192SE
+#include "rtl8192s/r8192S_phy.h"
+#include "rtl8192s/r8192S_phyreg.h"
+#include "rtl8192s/r8192S_rtl6052.h"
+#include "rtl8192s/r8192S_Efuse.h"
+#else
+#include "rtl8192e/r8192E_phy.h"
+#include "rtl8192e/r8192E_phyreg.h"
+#include "rtl8192e/r8190P_rtl8256.h" /* RTL8225 Radio frontend */
+#include "rtl8192e/r8192E_cmdpkt.h"
+#endif
+
+extern int hwwep;
+void CamResetAllEntry(struct net_device *dev)
+{
+ u32 ulcommand = 0;
+
+ ulcommand |= BIT31|BIT30;
+ write_nic_dword(dev, RWCAM, ulcommand);
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+void CamDeleteOneEntry(struct net_device *dev, u8 EntryNo)
+{
+ u32 ulCommand = EntryNo * CAM_CONTENT_COUNT;
+ u32 ulContent = 0;
+
+ ulCommand = ulCommand | BIT31 | BIT16;
+
+ write_nic_dword(dev,WCAMI,ulContent);
+ write_nic_dword(dev,RWCAM,ulCommand);
+}
+
+void CamRestoreEachIFEntry(struct net_device* dev,u8 is_mesh)
+{
+ u32 i;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+ for( i = 0 ; i< TOTAL_CAM_ENTRY; i++) {
+
+ if (is_mesh) {
+ if(ieee->swmeshcamtable[i].bused )
+ {
+ setKey(dev,
+ i,
+ ieee->swmeshcamtable[i].key_index,
+ ieee->swmeshcamtable[i].key_type,
+ ieee->swmeshcamtable[i].macaddr,
+ ieee->swmeshcamtable[i].useDK,
+ (u32*)(&ieee->swmeshcamtable[i].key_buf[0])
+ );
+ }
+ } else {
+ if(ieee->swcamtable[i].bused )
+ {
+ setKey(dev,
+ i,
+ ieee->swcamtable[i].key_index,
+ ieee->swcamtable[i].key_type,
+ ieee->swcamtable[i].macaddr,
+ ieee->swcamtable[i].useDK,
+ (u32*)(&ieee->swcamtable[i].key_buf[0]));
+ }
+ }
+ }
+}
+#endif
+
+void write_cam(struct net_device *dev, u8 addr, u32 data)
+{
+ write_nic_dword(dev, WCAMI, data);
+ write_nic_dword(dev, RWCAM, BIT31|BIT16|(addr&0xff) );
+}
+
+u32 read_cam(struct net_device *dev, u8 addr)
+{
+ write_nic_dword(dev, RWCAM, 0x80000000|(addr&0xff) );
+ return read_nic_dword(dev, 0xa8);
+}
+
+void EnableHWSecurityConfig8192(struct net_device *dev)
+{
+ u8 SECR_value = 0x0;
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+ SECR_value = SCR_TxEncEnable | SCR_RxDecEnable;
+#ifdef _RTL8192_EXT_PATCH_
+ if ((((KEY_TYPE_WEP40 == ieee->pairwise_key_type) || (KEY_TYPE_WEP104 == ieee->pairwise_key_type)) && (priv->rtllib->auth_mode != 2))
+ &&(ieee->iw_mode != IW_MODE_MESH))
+#else
+ if (((KEY_TYPE_WEP40 == ieee->pairwise_key_type) || (KEY_TYPE_WEP104 == ieee->pairwise_key_type)) && (priv->rtllib->auth_mode != 2))
+#endif
+ {
+ SECR_value |= SCR_RxUseDK;
+ SECR_value |= SCR_TxUseDK;
+ }
+ else if ((ieee->iw_mode == IW_MODE_ADHOC) && (ieee->pairwise_key_type & (KEY_TYPE_CCMP | KEY_TYPE_TKIP)))
+ {
+ SECR_value |= SCR_RxUseDK;
+ SECR_value |= SCR_TxUseDK;
+ }
+
+
+ ieee->hwsec_active = 1;
+#ifdef _RTL8192_EXT_PATCH_
+ if ((ieee->pHTInfo->IOTAction&HT_IOT_ACT_PURE_N_MODE) || !hwwep )
+ {
+ ieee->hwsec_active = 0;
+ SECR_value &= ~SCR_RxDecEnable;
+ SECR_value &= ~SCR_TxUseDK;
+ SECR_value &= ~SCR_RxUseDK;
+ SECR_value &= ~SCR_TxEncEnable;
+ }
+#else
+ if ((ieee->pHTInfo->IOTAction&HT_IOT_ACT_PURE_N_MODE) || !hwwep)
+ {
+ ieee->hwsec_active = 0;
+ SECR_value &= ~SCR_RxDecEnable;
+ }
+#endif
+
+#ifdef RTL8192CE
+ write_nic_byte(dev, REG_CR+1,0x02);
+#endif
+ RT_TRACE(COMP_SEC,"%s:, hwsec:%d, pairwise_key:%d, SECR_value:%x\n", __FUNCTION__, \
+ ieee->hwsec_active, ieee->pairwise_key_type, SECR_value);
+ {
+ write_nic_byte(dev, SECR, SECR_value);
+ }
+
+}
+
+void set_swcam(struct net_device *dev,
+ u8 EntryNo,
+ u8 KeyIndex,
+ u16 KeyType,
+ u8 *MacAddr,
+ u8 DefaultKey,
+ u32 *KeyContent,
+ u8 is_mesh)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+ printk("===========>%s():EntryNo is %d,KeyIndex is %d,KeyType is %d,is_mesh is %d\n",__FUNCTION__,EntryNo,KeyIndex,KeyType,is_mesh);
+ if(is_mesh){
+#ifdef _RTL8192_EXT_PATCH_
+ ieee->swmeshcamtable[EntryNo].bused=true;
+ ieee->swmeshcamtable[EntryNo].key_index=KeyIndex;
+ ieee->swmeshcamtable[EntryNo].key_type=KeyType;
+ memcpy(ieee->swmeshcamtable[EntryNo].macaddr,MacAddr,6);
+ ieee->swmeshcamtable[EntryNo].useDK=DefaultKey;
+ memcpy(ieee->swmeshcamtable[EntryNo].key_buf,(u8*)KeyContent,16);
+#endif
+ }
+ else
+ {
+ ieee->swcamtable[EntryNo].bused=true;
+ ieee->swcamtable[EntryNo].key_index=KeyIndex;
+ ieee->swcamtable[EntryNo].key_type=KeyType;
+ memcpy(ieee->swcamtable[EntryNo].macaddr,MacAddr,6);
+ ieee->swcamtable[EntryNo].useDK=DefaultKey;
+ memcpy(ieee->swcamtable[EntryNo].key_buf,(u8*)KeyContent,16);
+ }
+}
+#ifdef _RTL8192_EXT_PATCH_
+void reset_IFswcam(struct net_device *dev, u8 is_mesh)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+ if(is_mesh){
+ memset(ieee->swmeshcamtable,0,sizeof(SW_CAM_TABLE)*32);
+ }
+ else{
+ memset(ieee->swcamtable,0,sizeof(SW_CAM_TABLE)*32);
+ }
+}
+#endif
+void setKey(struct net_device *dev,
+ u8 EntryNo,
+ u8 KeyIndex,
+ u16 KeyType,
+ u8 *MacAddr,
+ u8 DefaultKey,
+ u32 *KeyContent )
+{
+ u32 TargetCommand = 0;
+ u32 TargetContent = 0;
+ u16 usConfig = 0;
+ u8 i;
+#ifdef ENABLE_IPS
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ RT_RF_POWER_STATE rtState;
+ rtState = priv->rtllib->eRFPowerState;
+ if(priv->rtllib->PowerSaveControl.bInactivePs){
+ if(rtState == eRfOff){
+ if(priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS)
+ {
+ RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__);
+ return ;
+ }
+ else{
+ down(&priv->rtllib->ips_sem);
+ IPSLeave(dev);
+ up(&priv->rtllib->ips_sem); }
+ }
+ }
+ priv->rtllib->is_set_key = true;
+#endif
+ if (EntryNo >= TOTAL_CAM_ENTRY)
+ RT_TRACE(COMP_ERR, "cam entry exceeds in setKey()\n");
+
+ RT_TRACE(COMP_SEC, "====>to setKey(), dev:%p, EntryNo:%d, KeyIndex:%d, KeyType:%d, MacAddr"MAC_FMT"\n", dev,EntryNo, KeyIndex, KeyType, MAC_ARG(MacAddr));
+
+ if (DefaultKey)
+ usConfig |= BIT15 | (KeyType<<2);
+ else
+ usConfig |= BIT15 | (KeyType<<2) | KeyIndex;
+
+
+ for(i=0 ; i<CAM_CONTENT_COUNT; i++){
+ TargetCommand = i+CAM_CONTENT_COUNT*EntryNo;
+ TargetCommand |= BIT31|BIT16;
+
+ if(i==0){
+ TargetContent = (u32)(*(MacAddr+0)) << 16|
+ (u32)(*(MacAddr+1)) << 24|
+ (u32)usConfig;
+
+ write_nic_dword(dev, WCAMI, TargetContent);
+ write_nic_dword(dev, RWCAM, TargetCommand);
+ }
+ else if(i==1){
+ TargetContent = (u32)(*(MacAddr+2)) |
+ (u32)(*(MacAddr+3)) << 8|
+ (u32)(*(MacAddr+4)) << 16|
+ (u32)(*(MacAddr+5)) << 24;
+ write_nic_dword(dev, WCAMI, TargetContent);
+ write_nic_dword(dev, RWCAM, TargetCommand);
+ }
+ else {
+ if(KeyContent != NULL)
+ {
+ write_nic_dword(dev, WCAMI, (u32)(*(KeyContent+i-2)) );
+ write_nic_dword(dev, RWCAM, TargetCommand);
+ }
+ }
+ }
+ RT_TRACE(COMP_SEC,"=========>after set key, usconfig:%x\n", usConfig);
+}
+#if 0
+void CamPrintDbgReg(struct net_device* dev)
+{
+ unsigned long rvalue;
+ unsigned char ucValue;
+ write_nic_dword(dev, DCAM, 0x80000000);
+ msleep(40);
+ rvalue = read_nic_dword(dev, DCAM);
+ RT_TRACE(COMP_SEC, " TX CAM=%8lX ",rvalue);
+ if((rvalue & 0x40000000) != 0x4000000)
+ RT_TRACE(COMP_SEC, "-->TX Key Not Found ");
+ msleep(20);
+ write_nic_dword(dev, DCAM, 0x00000000);
+ rvalue = read_nic_dword(dev, DCAM);
+ RT_TRACE(COMP_SEC, "RX CAM=%8lX ",rvalue);
+ if((rvalue & 0x40000000) != 0x4000000)
+ RT_TRACE(COMP_SEC, "-->CAM Key Not Found ");
+ ucValue = read_nic_byte(dev, SECR);
+ RT_TRACE(COMP_SEC, "WPA_Config=%x \n",ucValue);
+}
+#endif
+void CAM_read_entry(struct net_device *dev, u32 iIndex)
+{
+ u32 target_command=0;
+ u32 target_content=0;
+ u8 entry_i=0;
+ u32 ulStatus;
+ s32 i=100;
+ for(entry_i=0;entry_i<CAM_CONTENT_COUNT;entry_i++)
+ {
+ target_command= entry_i+CAM_CONTENT_COUNT*iIndex;
+ target_command= target_command | BIT31;
+
+#if 1
+ while((i--)>=0)
+ {
+ ulStatus = read_nic_dword(dev, RWCAM);
+ if(ulStatus & BIT31){
+ continue;
+ }
+ else{
+ break;
+ }
+ }
+#endif
+ write_nic_dword(dev, RWCAM, target_command);
+ RT_TRACE(COMP_SEC,"CAM_read_entry(): WRITE A0: %x \n",target_command);
+ target_content = read_nic_dword(dev, RCAMO);
+ RT_TRACE(COMP_SEC, "CAM_read_entry(): WRITE A8: %x \n",target_content);
+ }
+ printk("\n");
+}
+
+void CamRestoreAllEntry( struct net_device *dev)
+{
+ u8 EntryId = 0;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8* MacAddr = priv->rtllib->current_network.bssid;
+
+ static u8 CAM_CONST_ADDR[4][6] = {
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x02},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x03}};
+ static u8 CAM_CONST_BROAD[] =
+ {0xff, 0xff, 0xff, 0xff, 0xff, 0xff};
+
+ RT_TRACE(COMP_SEC, "CamRestoreAllEntry: \n");
+
+
+ if ((priv->rtllib->pairwise_key_type == KEY_TYPE_WEP40)||
+ (priv->rtllib->pairwise_key_type == KEY_TYPE_WEP104))
+ {
+
+ for(EntryId=0; EntryId<4; EntryId++)
+ {
+ {
+ MacAddr = CAM_CONST_ADDR[EntryId];
+ if(priv->rtllib->swcamtable[EntryId].bused )
+ {
+ setKey(dev,
+ EntryId ,
+ EntryId,
+ priv->rtllib->pairwise_key_type,
+ MacAddr,
+ 0,
+ (u32*)(&priv->rtllib->swcamtable[EntryId].key_buf[0])
+ );
+ }
+ }
+ }
+
+ }
+ else if(priv->rtllib->pairwise_key_type == KEY_TYPE_TKIP)
+ {
+
+ {
+ if(priv->rtllib->iw_mode == IW_MODE_ADHOC)
+ {
+ setKey(dev,
+ 4,
+ 0,
+ priv->rtllib->pairwise_key_type,
+ (u8*)dev->dev_addr,
+ 0,
+ (u32*)(&priv->rtllib->swcamtable[4].key_buf[0])
+ );
+ }
+ else
+ {
+ setKey(dev,
+ 4,
+ 0,
+ priv->rtllib->pairwise_key_type,
+ MacAddr,
+ 0,
+ (u32*)(&priv->rtllib->swcamtable[4].key_buf[0])
+ );
+ }
+
+ }
+ }
+ else if(priv->rtllib->pairwise_key_type == KEY_TYPE_CCMP)
+ {
+
+ {
+ if(priv->rtllib->iw_mode == IW_MODE_ADHOC)
+ {
+ setKey(dev,
+ 4,
+ 0,
+ priv->rtllib->pairwise_key_type,
+ (u8*)dev->dev_addr,
+ 0,
+ (u32*)(&priv->rtllib->swcamtable[4].key_buf[0])
+ );
+ }
+ else
+ {
+ setKey(dev,
+ 4,
+ 0,
+ priv->rtllib->pairwise_key_type,
+ MacAddr,
+ 0,
+ (u32*)(&priv->rtllib->swcamtable[4].key_buf[0])
+ );
+ }
+ }
+ }
+
+
+
+ if(priv->rtllib->group_key_type == KEY_TYPE_TKIP)
+ {
+ MacAddr = CAM_CONST_BROAD;
+ for(EntryId=1 ; EntryId<4 ; EntryId++)
+ {
+ if(priv->rtllib->swcamtable[EntryId].bused )
+ {
+ setKey(dev,
+ EntryId,
+ EntryId,
+ priv->rtllib->group_key_type,
+ MacAddr,
+ 0,
+ (u32*)(&priv->rtllib->swcamtable[EntryId].key_buf[0])
+ );
+ }
+ }
+ if(priv->rtllib->iw_mode == IW_MODE_ADHOC)
+ {
+ if(priv->rtllib->swcamtable[0].bused ){
+ setKey(dev,
+ 0,
+ 0,
+ priv->rtllib->group_key_type,
+ CAM_CONST_ADDR[0],
+ 0,
+ (u32*)(&priv->rtllib->swcamtable[0].key_buf[0])
+ );
+ }
+ else
+ {
+ RT_TRACE(COMP_ERR,"===>%s():ERR!! ADHOC TKIP ,but 0 entry is have no data\n",__FUNCTION__);
+ return;
+ }
+ }
+ } else if(priv->rtllib->group_key_type == KEY_TYPE_CCMP) {
+ MacAddr = CAM_CONST_BROAD;
+ for(EntryId=1; EntryId<4 ; EntryId++)
+ {
+ if(priv->rtllib->swcamtable[EntryId].bused )
+ {
+ setKey(dev,
+ EntryId ,
+ EntryId,
+ priv->rtllib->group_key_type,
+ MacAddr,
+ 0,
+ (u32*)(&priv->rtllib->swcamtable[EntryId].key_buf[0]));
+ }
+ }
+
+ if (priv->rtllib->iw_mode == IW_MODE_ADHOC) {
+ if (priv->rtllib->swcamtable[0].bused) {
+ setKey(dev,
+ 0 ,
+ 0,
+ priv->rtllib->group_key_type,
+ CAM_CONST_ADDR[0],
+ 0,
+ (u32*)(&priv->rtllib->swcamtable[0].key_buf[0]));
+ } else {
+ RT_TRACE(COMP_ERR,"===>%s():ERR!! ADHOC CCMP ,but 0 entry is have no data\n",
+ __FUNCTION__);
+ return;
+ }
+ }
+ }
+}
+
+
+#ifdef _RTL8192_EXT_PATCH_
+u8 rtl8192_get_free_hwsec_cam_entry(struct rtllib_device *ieee, u8 *sta_addr)
+{
+ u32 bitmap = (ieee->HwSecCamBitMap)>>4;
+ u8 entry_idx = 0;
+ u8 i, *addr;
+
+ if ((NULL == ieee) || (NULL == sta_addr)) {
+ printk("%s: ieee or sta_addr is NULL.\n", __FUNCTION__);
+ return TOTAL_CAM_ENTRY;
+ }
+
+ /* Does STA already exist? */
+ /* CAM Index 31 is for AP */
+ for (i = 4; i < TOTAL_CAM_ENTRY-1; i++) {
+ addr = ieee->HwSecCamStaAddr[i];
+ if(memcmp(addr, sta_addr, ETH_ALEN) == 0)
+ return i;
+ }
+
+ /* Get a free CAM entry. */
+ for (entry_idx = 4; entry_idx < TOTAL_CAM_ENTRY - 1; entry_idx++) {
+ if ((bitmap & BIT0) == 0) {
+ ieee->HwSecCamBitMap |= BIT0<<entry_idx;
+ memcpy(ieee->HwSecCamStaAddr[entry_idx], sta_addr, ETH_ALEN);
+ return entry_idx;
+ }
+ bitmap = bitmap >>1;
+ }
+
+ return TOTAL_CAM_ENTRY;
+}
+
+void rtl8192_del_hwsec_cam_entry(struct rtllib_device *ieee, u8 *sta_addr)
+{
+ u32 bitmap;
+ u8 i, *addr;
+
+ if ((NULL == ieee) || (NULL == sta_addr)) {
+ printk("%s: ieee or sta_addr is NULL.\n", __FUNCTION__);
+ return;
+ }
+
+ if ((sta_addr[0]|sta_addr[1]|sta_addr[2]|sta_addr[3]|\
+ sta_addr[4]|sta_addr[5]) == 0) {
+ printk("%s: sta_addr is 00:00:00:00:00:00.\n", __FUNCTION__);
+ return;
+ }
+
+ /* Does STA already exist? */
+ for (i = 4; i < TOTAL_CAM_ENTRY; i++) {
+ addr = ieee->HwSecCamStaAddr[i];
+ bitmap = (ieee->HwSecCamBitMap)>>i;
+ if (((bitmap & BIT0) == BIT0) && (memcmp(addr, sta_addr, ETH_ALEN) == 0)) {
+ /* Remove from HW Security CAM */
+ CamDeleteOneEntry(ieee->dev, i);
+ memset(ieee->HwSecCamStaAddr[i], 0, ETH_ALEN);
+ ieee->HwSecCamBitMap &= ~(BIT0<<i);
+ memset(&(ieee->swmeshcamtable[i]), 0, sizeof(SW_CAM_TABLE));
+ RT_TRACE(COMP_SEC, "====>del sw entry, EntryNo:%d, MacAddr:"MAC_FMT"\n",
+ i, MAC_ARG(sta_addr));
+ }
+ }
+ return;
+}
+#endif
+
diff --git a/ubuntu/rtl8192se/rtl_cam.h b/ubuntu/rtl8192se/rtl_cam.h
new file mode 100755
index 00000000000..ad4249fd734
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_cam.h
@@ -0,0 +1,60 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef _RTL_CAM_H
+#define _RTL_CAM_H
+
+#include <linux/types.h>
+struct net_device;
+
+void CamResetAllEntry(struct net_device* dev);
+void EnableHWSecurityConfig8192(struct net_device *dev);
+void setKey(struct net_device *dev, u8 EntryNo, u8 KeyIndex, u16 KeyType, u8 *MacAddr, u8 DefaultKey, u32 *KeyContent );
+void set_swcam(struct net_device *dev, u8 EntryNo, u8 KeyIndex, u16 KeyType, u8 *MacAddr, u8 DefaultKey, u32 *KeyContent, u8 is_mesh);
+void CamPrintDbgReg(struct net_device* dev);
+
+#ifdef _RTL8192_EXT_PATCH_
+void CamDeleteOneEntry(struct net_device *dev, u8 EntryNo);
+void CamRestoreEachIFEntry(struct net_device* dev,u8 is_mesh);
+#endif
+
+u32 read_cam(struct net_device *dev, u8 addr);
+void write_cam(struct net_device *dev, u8 addr, u32 data);
+
+void CamRestoreAllEntry(struct net_device *dev);
+#ifdef _RTL8192_EXT_PATCH_
+void reset_IFswcam(struct net_device *dev, u8 is_mesh);
+void CamRestoreEachIFEntry(struct net_device* dev,u8 is_mesh);
+int rtl8192_set_key_for_AP(struct rtllib_device *ieee);
+#endif
+
+void CAM_read_entry(struct net_device *dev, u32 iIndex);
+
+#ifdef _RTL8192_EXT_PATCH_
+u8 rtl8192_get_free_hwsec_cam_entry(struct rtllib_device *ieee, u8 *sta_addr);
+void rtl8192_del_hwsec_cam_entry(struct rtllib_device *ieee, u8 *sta_addr);
+int meshdev_set_key_for_peer(struct net_device *dev, u8 *Addr, u8 KeyIndex, u16 KeyType, u32 *KeyContent);
+#endif
+
+#endif
diff --git a/ubuntu/rtl8192se/rtl_core.c b/ubuntu/rtl8192se/rtl_core.c
new file mode 100755
index 00000000000..2a8c7c3dcb4
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_core.c
@@ -0,0 +1,5975 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#undef LOOP_TEST
+#undef RX_DONT_PASS_UL
+#undef DEBUG_EPROM
+#undef DEBUG_RX_VERBOSE
+#undef DUMMY_RX
+#undef DEBUG_ZERO_RX
+#undef DEBUG_RX_SKB
+#undef DEBUG_TX_FRAG
+#undef DEBUG_RX_FRAG
+#undef DEBUG_TX_FILLDESC
+#undef DEBUG_TX
+#undef DEBUG_IRQ
+#undef DEBUG_RX
+#undef DEBUG_RXALLOC
+#undef DEBUG_REGISTERS
+#undef DEBUG_RING
+#undef DEBUG_IRQ_TASKLET
+#undef DEBUG_TX_ALLOC
+#undef DEBUG_TX_DESC
+
+#include <asm/uaccess.h>
+#include <linux/pci.h>
+#include "rtl_core.h"
+#if defined RTL8192CE
+#include "rtl8192c/r8192C_phy.h"
+#include "rtl8192c/r8192C_phyreg.h"
+#include "rtl8192c/r8192C_rtl6052.h"
+#include "rtl8192c/r8192C_Efuse.h"
+#include "rtl8192c/r8192C_dm.h"
+#elif defined RTL8192SE
+#include "rtl8192s/r8192S_phy.h"
+#include "rtl8192s/r8192S_phyreg.h"
+#include "rtl8192s/r8192S_rtl6052.h"
+#include "rtl8192s/r8192S_Efuse.h"
+#else
+#include "rtl8192e/r8192E_phy.h"
+#include "rtl8192e/r8192E_phyreg.h"
+#include "rtl8192e/r8190P_rtl8256.h"
+#include "rtl8192e/r8192E_cmdpkt.h"
+#endif
+
+#include "rtl_wx.h"
+#ifndef RTL8192CE
+#include "rtl_dm.h"
+#endif
+
+#ifdef CONFIG_PM_RTL
+#include "rtl_pm.h"
+#endif
+
+#ifdef _RTL8192_EXT_PATCH_
+#include "../../mshclass/msh_class.h"
+#include "rtl_mesh.h"
+#endif
+
+#ifdef RTL8192S_WAPI_SUPPORT
+#include "../../rtllib/wapi.h"
+#include "../../rtllib/wapi_interface.h"
+#endif
+
+int hwwep = 1;
+static int channels = 0x3fff;
+#ifdef _RTL8192_EXT_PATCH_
+char* ifname = "ra%d";
+#else
+char* ifname = "wlan%d";
+#endif
+
+u32 rt_global_debug_component = \
+ COMP_ERR ;
+
+#ifdef RTL8192SE
+struct rtl819x_ops rtl8192se_ops = {
+ .nic_type = NIC_8192SE,
+ .get_eeprom_size = rtl8192se_get_eeprom_size,
+ .init_adapter_variable = rtl8192se_InitializeVariables,
+ .init_before_adapter_start = MacConfigBeforeFwDownload,
+ .initialize_adapter = rtl8192se_adapter_start,
+ .link_change = rtl8192se_link_change,
+ .tx_fill_descriptor = rtl8192se_tx_fill_desc,
+ .tx_fill_cmd_descriptor = rtl8192se_tx_fill_cmd_desc,
+ .rx_query_status_descriptor = rtl8192se_rx_query_status_desc,
+ .rx_command_packet_handler = rtl8192se_RxCommandPacketHandle,
+ .stop_adapter = rtl8192se_halt_adapter,
+ .update_ratr_table = rtl8192se_update_ratr_table,
+ .irq_enable = rtl8192se_EnableInterrupt,
+ .irq_disable = rtl8192se_DisableInterrupt,
+ .irq_clear = rtl8192se_ClearInterrupt,
+ .rx_enable = rtl8192se_enable_rx,
+ .tx_enable = rtl8192se_enable_tx,
+ .interrupt_recognized = rtl8192se_interrupt_recognized,
+ .TxCheckStuckHandler = rtl8192se_HalTxCheckStuck,
+ .RxCheckStuckHandler = rtl8192se_HalRxCheckStuck,
+};
+#elif defined RTL8192CE
+struct rtl819x_ops rtl8192ce_ops = {
+ .nic_type = NIC_8192CE,
+ .get_eeprom_size = rtl8192ce_get_eeprom_size,
+ .init_adapter_variable = rtl8192ce_InitializeVariables,
+ .initialize_adapter = rtl8192ce_adapter_start,
+ .link_change = rtl8192ce_link_change,
+ .tx_fill_descriptor = rtl8192ce_tx_fill_desc,
+ .tx_fill_cmd_descriptor = rtl8192ce_tx_fill_cmd_desc,
+ .rx_query_status_descriptor = rtl8192ce_rx_query_status_desc,
+ .rx_command_packet_handler = NULL,
+ .stop_adapter = rtl8192ce_halt_adapter,
+ .update_ratr_table = rtl8192ce_UpdateHalRATRTable,
+ .irq_enable = rtl8192ce_EnableInterrupt,
+ .irq_disable = rtl8192ce_DisableInterrupt,
+ .irq_clear = rtl8192ce_ClearInterrupt,
+ .rx_enable = rtl8192ce_enable_rx,
+ .tx_enable = rtl8192ce_enable_tx,
+ .interrupt_recognized = rtl8192ce_interrupt_recognized,
+ .TxCheckStuckHandler = rtl8192ce_HalTxCheckStuck,
+ .RxCheckStuckHandler = rtl8192ce_HalRxCheckStuck,
+};
+#else
+struct rtl819x_ops rtl819xp_ops = {
+ .nic_type = NIC_UNKNOWN,
+ .get_eeprom_size = rtl8192_get_eeprom_size,
+ .init_adapter_variable = rtl8192_InitializeVariables,
+ .initialize_adapter = rtl8192_adapter_start,
+ .link_change = rtl8192_link_change,
+ .tx_fill_descriptor = rtl8192_tx_fill_desc,
+ .tx_fill_cmd_descriptor = rtl8192_tx_fill_cmd_desc,
+ .rx_query_status_descriptor = rtl8192_rx_query_status_desc,
+ .rx_command_packet_handler = NULL,
+ .stop_adapter = rtl8192_halt_adapter,
+ .update_ratr_table = rtl8192_update_ratr_table,
+ .irq_enable = rtl8192_EnableInterrupt,
+ .irq_disable = rtl8192_DisableInterrupt,
+ .irq_clear = rtl8192_ClearInterrupt,
+ .rx_enable = rtl8192_enable_rx,
+ .tx_enable = rtl8192_enable_tx,
+ .interrupt_recognized = rtl8192_interrupt_recognized,
+ .TxCheckStuckHandler = rtl8192_HalTxCheckStuck,
+ .RxCheckStuckHandler = rtl8192_HalRxCheckStuck,
+};
+#endif
+
+static struct pci_device_id rtl8192_pci_id_tbl[] __devinitdata = {
+#ifdef RTL8190P
+ /* Realtek */
+ /* Dlink */
+ {RTL_PCI_DEVICE(0x10ec, 0x8190, rtl819xp_ops)},
+ /* Corega */
+ {RTL_PCI_DEVICE(0x07aa, 0x0045, rtl819xp_ops)},
+ {RTL_PCI_DEVICE(0x07aa, 0x0046, rtl819xp_ops)},
+#elif defined(RTL8192E)
+ /* Realtek */
+ {RTL_PCI_DEVICE(0x10ec, 0x8192, rtl819xp_ops)},
+ /* Corega */
+ {RTL_PCI_DEVICE(0x07aa, 0x0044, rtl819xp_ops)},
+ {RTL_PCI_DEVICE(0x07aa, 0x0047, rtl819xp_ops)},
+#elif defined(RTL8192SE) /*8192SE*/
+ {RTL_PCI_DEVICE(0x10ec, 0x8171, rtl8192se_ops)},
+ {RTL_PCI_DEVICE(0x10ec, 0x8172, rtl8192se_ops)},
+ {RTL_PCI_DEVICE(0x10ec, 0x8173, rtl8192se_ops)},
+ {RTL_PCI_DEVICE(0x10ec, 0x8174, rtl8192se_ops)},
+#elif defined(RTL8192CE) /*8192CE*/
+ {RTL_PCI_DEVICE(0x10ec, 0x8191, rtl8192ce_ops)},
+ {RTL_PCI_DEVICE(0x10ec, 0x8178, rtl8192ce_ops)},
+ {RTL_PCI_DEVICE(0x10ec, 0x8177, rtl8192ce_ops)},
+ {RTL_PCI_DEVICE(0x10ec, 0x8176, rtl8192ce_ops)},
+ {RTL_PCI_DEVICE(0x10ec, 0x092D, rtl8192ce_ops)},
+#endif
+ {}
+};
+MODULE_DEVICE_TABLE(pci, rtl8192_pci_id_tbl);
+
+static int __devinit rtl8192_pci_probe(struct pci_dev *pdev,
+ const struct pci_device_id *id);
+static void __devexit rtl8192_pci_disconnect(struct pci_dev *pdev);
+
+static struct pci_driver rtl8192_pci_driver = {
+ .name = DRV_NAME, /* Driver name */
+ .id_table = rtl8192_pci_id_tbl, /* PCI_ID table */
+ .probe = rtl8192_pci_probe, /* probe fn */
+ .remove = __devexit_p(rtl8192_pci_disconnect), /* remove fn */
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 5, 0)
+#ifdef CONFIG_PM_RTL
+ .suspend = rtl8192E_suspend, /* PM suspend fn */
+ .resume = rtl8192E_resume, /* PM resume fn */
+#else
+ .suspend = NULL, /* PM suspend fn */
+ .resume = NULL, /* PM resume fn */
+#endif
+#endif
+};
+
+/****************************************************************************
+ -----------------------------IO STUFF-------------------------
+*****************************************************************************/
+bool
+PlatformIOCheckPageLegalAndGetRegMask(
+ u32 u4bPage,
+ u8* pu1bPageMask
+)
+{
+ bool bReturn = false;
+ *pu1bPageMask = 0xfe;
+
+ switch(u4bPage)
+ {
+ case 1: case 2: case 3: case 4:
+ case 8: case 9: case 10: case 12: case 13:
+ bReturn = true;
+ *pu1bPageMask = 0xf0;
+ break;
+
+ default:
+ bReturn = false;
+ break;
+ }
+
+ return bReturn;
+}
+
+void write_nic_io_byte(struct net_device *dev, int x,u8 y)
+{
+ u32 u4bPage = (x >> 8);
+ u8 u1PageMask = 0;
+ bool bIsLegalPage = false;
+
+ if(u4bPage == 0)
+ {
+ outb(y&0xff,dev->base_addr +x);
+ }else
+ {
+ bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage, &u1PageMask);
+ if(bIsLegalPage)
+ {
+ u8 u1bPsr = read_nic_io_byte(dev, PSR);
+
+ write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) | (u8)u4bPage));
+ write_nic_io_byte(dev, (x & 0xff), y);
+ write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask));
+
+ }else
+ {
+ ;
+ }
+ }
+
+
+}
+
+void write_nic_io_word(struct net_device *dev, int x,u16 y)
+{
+ u32 u4bPage = (x >> 8);
+ u8 u1PageMask = 0;
+ bool bIsLegalPage = false;
+
+ if(u4bPage == 0)
+ {
+ outw(y,dev->base_addr +x);
+ }else
+ {
+ bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage, &u1PageMask);
+ if(bIsLegalPage)
+ {
+ u8 u1bPsr = read_nic_io_byte(dev, PSR);
+
+ write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) | (u8)u4bPage));
+ write_nic_io_word(dev, (x & 0xff), y);
+ write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask));
+
+ }else
+ {
+ ;
+ }
+ }
+
+}
+
+void write_nic_io_dword(struct net_device *dev, int x,u32 y)
+{
+ u32 u4bPage = (x >> 8);
+ u8 u1PageMask = 0;
+ bool bIsLegalPage = false;
+
+ if(u4bPage == 0)
+ {
+ outl(y,dev->base_addr +x);
+ }else
+ {
+ bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage, &u1PageMask);
+ if(bIsLegalPage)
+ {
+ u8 u1bPsr = read_nic_io_byte(dev, PSR);
+
+ write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) | (u8)u4bPage));
+ write_nic_io_dword(dev, (x & 0xff), y);
+ write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask));
+
+ }else
+ {
+ ;
+ }
+ }
+
+}
+u8 read_nic_io_byte(struct net_device *dev, int x)
+{
+ u32 u4bPage = (x >> 8);
+ u8 u1PageMask = 0;
+ bool bIsLegalPage = false;
+ u8 Data = 0;
+
+ if(u4bPage == 0)
+ {
+ return 0xff&inb(dev->base_addr +x);
+ }else
+ {
+ bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage, &u1PageMask);
+ if(bIsLegalPage)
+ {
+ u8 u1bPsr = read_nic_io_byte(dev, PSR);
+
+ write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) | (u8)u4bPage));
+ Data = read_nic_io_byte(dev, (x & 0xff));
+ write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask));
+
+ }else
+ {
+ ;
+ }
+ }
+
+ return Data;
+}
+
+u16 read_nic_io_word(struct net_device *dev, int x)
+{
+ u32 u4bPage = (x >> 8);
+ u8 u1PageMask = 0;
+ bool bIsLegalPage = false;
+ u16 Data = 0;
+
+ if(u4bPage == 0)
+ {
+ return inw(dev->base_addr +x);
+ }else
+ {
+ bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage, &u1PageMask);
+ if(bIsLegalPage)
+ {
+ u8 u1bPsr = read_nic_io_byte(dev, PSR);
+
+ write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) | (u8)u4bPage));
+ Data = read_nic_io_word(dev, (x & 0xff));
+ write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask));
+
+ }else
+ {
+ ;
+ }
+ }
+
+ return Data;
+}
+
+u32 read_nic_io_dword(struct net_device *dev, int x)
+{
+ u32 u4bPage = (x >> 8);
+ u8 u1PageMask = 0;
+ bool bIsLegalPage = false;
+ u32 Data = 0;
+
+ if(u4bPage == 0)
+ {
+ return inl(dev->base_addr +x);
+ }else
+ {
+ bIsLegalPage = PlatformIOCheckPageLegalAndGetRegMask(u4bPage, &u1PageMask);
+ if(bIsLegalPage)
+ {
+ u8 u1bPsr = read_nic_io_byte(dev, PSR);
+
+ write_nic_io_byte(dev, PSR, ((u1bPsr & u1PageMask) | (u8)u4bPage));
+ Data = read_nic_io_dword(dev, (x & 0xff));
+ write_nic_io_byte(dev, PSR, (u1bPsr & u1PageMask));
+
+ }else
+ {
+ ;
+ }
+ }
+
+ return Data;
+}
+
+u8 read_nic_byte(struct net_device *dev, int x)
+{
+#ifdef CONFIG_RTL8192_IO_MAP
+ return read_nic_io_byte(dev, x);
+#else
+ return 0xff&readb((u8*)dev->mem_start +x);
+#endif
+}
+
+u32 read_nic_dword(struct net_device *dev, int x)
+{
+#ifdef CONFIG_RTL8192_IO_MAP
+ return read_nic_io_dword(dev, x);
+#else
+ return readl((u8*)dev->mem_start +x);
+#endif
+}
+
+u16 read_nic_word(struct net_device *dev, int x)
+{
+#ifdef CONFIG_RTL8192_IO_MAP
+ return read_nic_io_word(dev, x);
+#else
+ return readw((u8*)dev->mem_start +x);
+#endif
+}
+
+void write_nic_byte(struct net_device *dev, int x,u8 y)
+{
+#ifdef CONFIG_RTL8192_IO_MAP
+ write_nic_io_byte(dev, x, y);
+#else
+ writeb(y,(u8*)dev->mem_start +x);
+#if !(defined RTL8192SE || defined RTL8192CE)
+ udelay(20);
+#endif
+#endif
+}
+
+void write_nic_dword(struct net_device *dev, int x,u32 y)
+{
+#ifdef CONFIG_RTL8192_IO_MAP
+ write_nic_io_dword(dev, x, y);
+#else
+ writel(y,(u8*)dev->mem_start +x);
+#if !(defined RTL8192SE || defined RTL8192CE)
+ udelay(20);
+#endif
+#endif
+}
+
+void write_nic_word(struct net_device *dev, int x,u16 y)
+{
+#ifdef CONFIG_RTL8192_IO_MAP
+ write_nic_io_word(dev, x, y);
+#else
+ writew(y,(u8*)dev->mem_start +x);
+#if !(defined RTL8192SE || defined RTL8192CE)
+ udelay(20);
+#endif
+#endif
+}
+
+/****************************************************************************
+ -----------------------------GENERAL FUNCTION-------------------------
+*****************************************************************************/
+
+void
+MgntDisconnectIBSS(
+ struct net_device* dev
+)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 OpMode;
+ u8 i;
+ bool bFilterOutNonAssociatedBSSID = false;
+
+
+ priv->rtllib->state = RTLLIB_NOLINK;
+
+ for(i=0;i<6;i++) priv->rtllib->current_network.bssid[i]= 0x55;
+
+ priv->OpMode = RT_OP_MODE_NO_LINK;
+ priv->rtllib->SetHwRegHandler(dev, HW_VAR_BSSID, priv->rtllib->current_network.bssid);
+ OpMode = RT_OP_MODE_NO_LINK;
+ priv->rtllib->SetHwRegHandler(dev, HW_VAR_MEDIA_STATUS, &OpMode);
+ rtllib_stop_send_beacons(priv->rtllib);
+
+ bFilterOutNonAssociatedBSSID = false;
+ priv->rtllib->SetHwRegHandler(dev, HW_VAR_CECHK_BSSID, (u8*)(&bFilterOutNonAssociatedBSSID));
+ notify_wx_assoc_event(priv->rtllib);
+
+}
+
+void
+MlmeDisassociateRequest(
+ struct net_device* dev,
+ u8* asSta,
+ u8 asRsn
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 i;
+ u8 OpMode;
+
+ RemovePeerTS(priv->rtllib, asSta);
+
+
+ if(memcpy(priv->rtllib->current_network.bssid,asSta,6) == 0)
+ {
+ priv->rtllib->state = RTLLIB_NOLINK;
+
+ for(i=0;i<6;i++) priv->rtllib->current_network.bssid[i] = 0x22;
+ OpMode = RT_OP_MODE_NO_LINK;
+ priv->OpMode = RT_OP_MODE_NO_LINK;
+ priv->rtllib->SetHwRegHandler(dev, HW_VAR_MEDIA_STATUS, (u8 *)(&OpMode) );
+ rtllib_disassociate(priv->rtllib);
+
+ priv->rtllib->SetHwRegHandler(dev, HW_VAR_BSSID, priv->rtllib->current_network.bssid);
+
+ }
+
+}
+
+void
+MgntDisconnectAP(
+ struct net_device* dev,
+ u8 asRsn
+)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool bFilterOutNonAssociatedBSSID = false;
+
+
+#ifdef TO_DO
+ if( pMgntInfo->SecurityInfo.AuthMode > RT_802_11AuthModeAutoSwitch ||
+ (pMgntInfo->bAPSuportCCKM && pMgntInfo->bCCX8021xenable) )
+ {
+ SecClearAllKeys(dev);
+ RT_TRACE(COMP_SEC, DBG_LOUD,("======>CCKM clear key..."))
+ }
+#endif
+ bFilterOutNonAssociatedBSSID = false;
+ priv->rtllib->SetHwRegHandler(dev, HW_VAR_CECHK_BSSID, (u8*)(&bFilterOutNonAssociatedBSSID));
+ MlmeDisassociateRequest( dev, priv->rtllib->current_network.bssid, asRsn );
+
+ priv->rtllib->state = RTLLIB_NOLINK;
+}
+
+bool
+MgntDisconnect(
+ struct net_device* dev,
+ u8 asRsn
+)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+#if 1
+ if(priv->rtllib->ps != RTLLIB_PS_DISABLED)
+ {
+#ifndef RTL8190P
+ rtl8192_hw_wakeup(dev);
+#endif
+ }
+#endif
+#ifdef TO_DO
+ if(pMgntInfo->mActingAsAp)
+ {
+ RT_TRACE(COMP_MLME, DBG_LOUD, ("MgntDisconnect() ===> AP_DisassociateAllStation\n"));
+ AP_DisassociateAllStation(dev, unspec_reason);
+ return true;
+ }
+#endif
+
+ if( priv->rtllib->state == RTLLIB_LINKED )
+ {
+ if( priv->rtllib->iw_mode == IW_MODE_ADHOC )
+ {
+ MgntDisconnectIBSS(dev);
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if((priv->rtllib->iw_mode == IW_MODE_INFRA ) || ((priv->rtllib->iw_mode == IW_MODE_MESH) && (priv->rtllib->only_mesh == 0)))
+#else
+ if( priv->rtllib->iw_mode == IW_MODE_INFRA )
+#endif
+ {
+#ifdef TO_DO_LIST
+ SecClearAllKeys(Adapter);
+#endif
+ MgntDisconnectAP(dev, asRsn);
+ }
+
+ }
+
+ return true;
+}
+bool
+MgntActSet_RF_State(
+ struct net_device* dev,
+ RT_RF_POWER_STATE StateToSet,
+ RT_RF_CHANGE_SOURCE ChangeSource
+ )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device * ieee = priv->rtllib;
+ bool bActionAllowed = false;
+ bool bConnectBySSID = false;
+ RT_RF_POWER_STATE rtState;
+ u16 RFWaitCounter = 0;
+ unsigned long flag;
+ RT_TRACE((COMP_PS | COMP_RF), "===>MgntActSet_RF_State(): StateToSet(%d)\n",StateToSet);
+
+
+ while(true)
+ {
+ spin_lock_irqsave(&priv->rf_ps_lock,flag);
+ if(priv->RFChangeInProgress)
+ {
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flag);
+ RT_TRACE((COMP_PS | COMP_RF), "MgntActSet_RF_State(): RF Change in progress! Wait to set..StateToSet(%d).\n", StateToSet);
+ printk("MgntActSet_RF_State(): RF Change in progress! Wait to set..StateToSet(%d).\n", StateToSet);
+ #if 1
+ while(priv->RFChangeInProgress)
+ {
+ RFWaitCounter ++;
+ RT_TRACE((COMP_PS | COMP_RF), "MgntActSet_RF_State(): Wait 1 ms (%d times)...\n", RFWaitCounter);
+ mdelay(1);
+
+ if(RFWaitCounter > 100)
+ {
+ RT_TRACE(COMP_ERR, "MgntActSet_RF_State(): Wait too logn to set RF\n");
+ return false;
+ }
+ }
+ #endif
+ }
+ else
+ {
+ priv->RFChangeInProgress = true;
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flag);
+ break;
+ }
+ }
+
+ rtState = priv->rtllib->eRFPowerState;
+
+ switch(StateToSet)
+ {
+ case eRfOn:
+
+ priv->rtllib->RfOffReason &= (~ChangeSource);
+
+ if((ChangeSource == RF_CHANGE_BY_HW) && (priv->bHwRadioOff == true)){
+ priv->bHwRadioOff = false;
+ }
+
+ if(! priv->rtllib->RfOffReason)
+ {
+ priv->rtllib->RfOffReason = 0;
+ bActionAllowed = true;
+
+
+ if(rtState == eRfOff && ChangeSource >=RF_CHANGE_BY_HW )
+ {
+ bConnectBySSID = true;
+ }
+ }
+ else{
+ RT_TRACE((COMP_PS | COMP_RF), "MgntActSet_RF_State - eRfon reject pMgntInfo->RfOffReason= 0x%x, ChangeSource=0x%X\n", priv->rtllib->RfOffReason, ChangeSource);
+ }
+
+ break;
+
+ case eRfOff:
+
+ if((priv->rtllib->iw_mode == IW_MODE_INFRA) || (priv->rtllib->iw_mode == IW_MODE_ADHOC))
+ {
+ if ((priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS) || (ChangeSource > RF_CHANGE_BY_IPS))
+ {
+ if(ieee->state == RTLLIB_LINKED)
+ priv->blinked_ingpio = true;
+ else
+ priv->blinked_ingpio = false;
+ MgntDisconnect(dev, disas_lv_ss);
+
+
+
+ }
+ }
+ if((ChangeSource == RF_CHANGE_BY_HW) && (priv->bHwRadioOff == false)){
+ priv->bHwRadioOff = true;
+ }
+ priv->rtllib->RfOffReason |= ChangeSource;
+ bActionAllowed = true;
+ break;
+
+ case eRfSleep:
+ priv->rtllib->RfOffReason |= ChangeSource;
+ bActionAllowed = true;
+ break;
+
+ default:
+ break;
+ }
+
+ if(bActionAllowed)
+ {
+ RT_TRACE((COMP_PS | COMP_RF), "MgntActSet_RF_State(): Action is allowed.... StateToSet(%d), RfOffReason(%#X)\n", StateToSet, priv->rtllib->RfOffReason);
+ PHY_SetRFPowerState(dev, StateToSet);
+ if(StateToSet == eRfOn)
+ {
+
+ if(bConnectBySSID && (priv->blinked_ingpio == true))
+ {
+ queue_delayed_work_rsl(ieee->wq, &ieee->associate_procedure_wq, 0);
+ priv->blinked_ingpio = false;
+
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if(priv->rtllib->iw_mode == IW_MODE_MESH){
+ queue_work_rsl(ieee->wq, &ieee->ext_start_mesh_protocol_wq);
+
+ }
+#endif
+ }
+ else if(StateToSet == eRfOff)
+ {
+ }
+ }
+ else
+ {
+ RT_TRACE((COMP_PS | COMP_RF), "MgntActSet_RF_State(): Action is rejected.... StateToSet(%d), ChangeSource(%#X), RfOffReason(%#X)\n", StateToSet, ChangeSource, priv->rtllib->RfOffReason);
+ }
+
+ spin_lock_irqsave(&priv->rf_ps_lock,flag);
+ priv->RFChangeInProgress = false;
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flag);
+
+ RT_TRACE((COMP_PS && COMP_RF), "<===MgntActSet_RF_State()\n");
+ return bActionAllowed;
+}
+
+
+short rtl8192_get_nic_desc_num(struct net_device *dev, int prio)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtl8192_tx_ring *ring = &priv->tx_ring[prio];
+
+ /* For now, we reserved two free descriptor as a safety boundary
+ * between the tail and the head
+ */
+ if((prio == MGNT_QUEUE) &&(skb_queue_len(&ring->queue)>10))
+ printk("-----[%d]---------ring->idx=%d queue_len=%d---------\n",
+ prio,ring->idx, skb_queue_len(&ring->queue));
+ return skb_queue_len(&ring->queue);
+}
+
+short rtl8192_check_nic_enough_desc(struct net_device *dev, int prio)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtl8192_tx_ring *ring = &priv->tx_ring[prio];
+
+ if (ring->entries - skb_queue_len(&ring->queue) >= 2) {
+ return 1;
+ } else {
+ return 0;
+ }
+}
+
+void rtl8192_tx_timeout(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+ schedule_work(&priv->reset_wq);
+#else
+ schedule_task(&priv->reset_wq);
+#endif
+ printk("TXTIMEOUT");
+}
+
+void rtl8192_irq_enable(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ priv->irq_enabled = 1;
+
+ priv->ops->irq_enable(dev);
+}
+
+void rtl8192_irq_disable(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ priv->ops->irq_disable(dev);
+
+ priv->irq_enabled = 0;
+}
+
+void rtl8192_irq_clear(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ priv->ops->irq_clear(dev);
+}
+
+
+void rtl8192_set_chan(struct net_device *dev,short ch)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ RT_TRACE(COMP_CH, "=====>%s()====ch:%d\n", __FUNCTION__, ch);
+ if (priv->chan_forced)
+ return;
+
+ priv->chan = ch;
+
+
+#ifndef LOOP_TEST
+
+
+ if (priv->rf_set_chan)
+ priv->rf_set_chan(dev,priv->chan);
+
+#ifdef CONFIG_FW_SETCHAN
+ priv->rtllib->SetFwCmdHandler(dev, FW_CMD_CHAN_SET);
+#endif
+
+#endif
+}
+
+void rtl8192_update_cap(struct net_device* dev, u16 cap)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_network *net = &priv->rtllib->current_network;
+
+ priv->short_preamble = cap & WLAN_CAPABILITY_SHORT_PREAMBLE;
+
+ {
+ bool ShortPreamble;
+
+ if(cap & WLAN_CAPABILITY_SHORT_PREAMBLE)
+ {
+ {
+ ShortPreamble = true;
+ priv->rtllib->SetHwRegHandler( dev, HW_VAR_ACK_PREAMBLE, (unsigned char *)&ShortPreamble );
+ }
+ }
+ else
+ {
+ {
+ ShortPreamble = false;
+ priv->rtllib->SetHwRegHandler( dev, HW_VAR_ACK_PREAMBLE, (unsigned char *)&ShortPreamble );
+ }
+ }
+ }
+
+#ifdef RTL8192CE
+ if( net->mode & IEEE_G)
+#elif defined RTL8192SE || defined RTL8192E || defined RTL8190P
+ if (net->mode & (IEEE_G|IEEE_N_24G))
+#endif
+ {
+ u8 slot_time_val;
+ u8 CurSlotTime = priv->slot_time;
+
+#ifdef RTL8192CE
+ if( (cap & WLAN_CAPABILITY_SHORT_SLOT_TIME) && (!(priv->rtllib->pHTInfo->RT2RT_HT_Mode & RT_HT_CAP_USE_LONG_PREAMBLE)))
+#elif defined RTL8192SE || defined RTL8192E || defined RTL8190P
+ if ((cap & WLAN_CAPABILITY_SHORT_SLOT_TIME) && (!priv->rtllib->pHTInfo->bCurrentRT2RTLongSlotTime))
+#endif
+ {
+ if(CurSlotTime != SHORT_SLOT_TIME)
+ {
+ slot_time_val = SHORT_SLOT_TIME;
+ priv->rtllib->SetHwRegHandler( dev, HW_VAR_SLOT_TIME, &slot_time_val );
+ }
+ }
+ else
+ {
+ if(CurSlotTime != NON_SHORT_SLOT_TIME)
+ {
+ slot_time_val = NON_SHORT_SLOT_TIME;
+ priv->rtllib->SetHwRegHandler( dev, HW_VAR_SLOT_TIME, &slot_time_val );
+ }
+ }
+ }
+}
+
+static struct rtllib_qos_parameters def_qos_parameters = {
+ {3,3,3,3},
+ {7,7,7,7},
+ {2,2,2,2},
+ {0,0,0,0},
+ {0,0,0,0}
+};
+
+void rtl8192_update_beacon(void *data)
+{
+#if LINUX_VERSION_CODE >=KERNEL_VERSION(2,6,20)
+ struct r8192_priv *priv = container_of_work_rsl(data, struct r8192_priv, update_beacon_wq.work);
+ struct net_device *dev = priv->rtllib->dev;
+#else
+ struct net_device *dev = (struct net_device *)data;
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+ struct rtllib_device* ieee = priv->rtllib;
+ struct rtllib_network* net = &ieee->current_network;
+
+ if (ieee->pHTInfo->bCurrentHTSupport)
+ HTUpdateSelfAndPeerSetting(ieee, net);
+ ieee->pHTInfo->bCurrentRT2RTLongSlotTime = net->bssht.bdRT2RTLongSlotTime;
+ ieee->pHTInfo->RT2RT_HT_Mode = net->bssht.RT2RT_HT_Mode;
+ rtl8192_update_cap(dev, net->capability);
+}
+
+#ifdef RTL8192CE
+int WDCAPARA_ADD[] = {REG_EDCA_BE_PARAM,REG_EDCA_BK_PARAM,REG_EDCA_VI_PARAM,REG_EDCA_VO_PARAM};
+#else
+int WDCAPARA_ADD[] = {EDCAPARA_BE,EDCAPARA_BK,EDCAPARA_VI,EDCAPARA_VO};
+#endif
+void rtl8192_qos_activate(void *data)
+{
+#if LINUX_VERSION_CODE >=KERNEL_VERSION(2,6,20)
+ struct r8192_priv *priv = container_of_work_rsl(data, struct r8192_priv, qos_activate);
+ struct net_device *dev = priv->rtllib->dev;
+#else
+ struct net_device *dev = (struct net_device *)data;
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+#ifndef RTL8192CE
+ struct rtllib_qos_parameters *qos_parameters = &priv->rtllib->current_network.qos_data.parameters;
+ u8 mode = priv->rtllib->current_network.mode;
+ u8 u1bAIFS;
+ u32 u4bAcParam;
+#endif
+ int i;
+
+ if (priv == NULL)
+ return;
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16))
+ down(&priv->mutex);
+#else
+ mutex_lock(&priv->mutex);
+#endif
+ if(priv->rtllib->state != RTLLIB_LINKED)
+ goto success;
+ RT_TRACE(COMP_QOS,"qos active process with associate response received\n");
+
+ for (i = 0; i < QOS_QUEUE_NUM; i++) {
+#ifdef RTL8192CE
+ priv->rtllib->SetHwRegHandler(dev, HW_VAR_AC_PARAM, (u8*)(&i));
+#else
+ u1bAIFS = qos_parameters->aifs[i] * ((mode&(IEEE_G|IEEE_N_24G)) ?9:20) + aSifsTime;
+ u4bAcParam = ((((u32)(qos_parameters->tx_op_limit[i]))<< AC_PARAM_TXOP_LIMIT_OFFSET)|
+ (((u32)(qos_parameters->cw_max[i]))<< AC_PARAM_ECW_MAX_OFFSET)|
+ (((u32)(qos_parameters->cw_min[i]))<< AC_PARAM_ECW_MIN_OFFSET)|
+ ((u32)u1bAIFS << AC_PARAM_AIFS_OFFSET));
+ write_nic_dword(dev, WDCAPARA_ADD[i], u4bAcParam);
+#endif
+ }
+
+success:
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16))
+ up(&priv->mutex);
+#else
+ mutex_unlock(&priv->mutex);
+#endif
+}
+
+static int rtl8192_qos_handle_probe_response(struct r8192_priv *priv,
+ int active_network,
+ struct rtllib_network *network)
+{
+ int ret = 0;
+ u32 size = sizeof(struct rtllib_qos_parameters);
+
+ if(priv->rtllib->state !=RTLLIB_LINKED)
+ return ret;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if (!((priv->rtllib->iw_mode == IW_MODE_INFRA ) ||
+ ((priv->rtllib->iw_mode == IW_MODE_MESH) && (priv->rtllib->only_mesh == 0))))
+#else
+ if ((priv->rtllib->iw_mode != IW_MODE_INFRA))
+#endif
+ return ret;
+
+ if (network->flags & NETWORK_HAS_QOS_MASK) {
+ if (active_network &&
+ (network->flags & NETWORK_HAS_QOS_PARAMETERS))
+ network->qos_data.active = network->qos_data.supported;
+
+ if ((network->qos_data.active == 1) && (active_network == 1) &&
+ (network->flags & NETWORK_HAS_QOS_PARAMETERS) &&
+ (network->qos_data.old_param_count !=
+ network->qos_data.param_count)) {
+ network->qos_data.old_param_count =
+ network->qos_data.param_count;
+ priv->rtllib->wmm_acm = network->qos_data.wmm_acm;
+ queue_work_rsl(priv->priv_wq, &priv->qos_activate);
+ RT_TRACE (COMP_QOS, "QoS parameters change call "
+ "qos_activate\n");
+ }
+ } else {
+ memcpy(&priv->rtllib->current_network.qos_data.parameters,\
+ &def_qos_parameters, size);
+
+ if ((network->qos_data.active == 1) && (active_network == 1)) {
+ queue_work_rsl(priv->priv_wq, &priv->qos_activate);
+ RT_TRACE(COMP_QOS, "QoS was disabled call qos_activate \n");
+ }
+ network->qos_data.active = 0;
+ network->qos_data.supported = 0;
+ }
+
+ return 0;
+}
+
+static int rtl8192_handle_beacon(struct net_device * dev,
+ struct rtllib_beacon * beacon,
+ struct rtllib_network * network)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ rtl8192_qos_handle_probe_response(priv,1,network);
+
+ queue_delayed_work_rsl(priv->priv_wq, &priv->update_beacon_wq, 0);
+ return 0;
+
+}
+
+static int rtl8192_qos_association_resp(struct r8192_priv *priv,
+ struct rtllib_network *network)
+{
+ int ret = 0;
+ unsigned long flags;
+ u32 size = sizeof(struct rtllib_qos_parameters);
+ int set_qos_param = 0;
+
+ if ((priv == NULL) || (network == NULL))
+ return ret;
+
+ if(priv->rtllib->state !=RTLLIB_LINKED)
+ return ret;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if (!((priv->rtllib->iw_mode == IW_MODE_INFRA ) ||
+ ((priv->rtllib->iw_mode == IW_MODE_MESH) && (priv->rtllib->only_mesh == 0))))
+#else
+ if ((priv->rtllib->iw_mode != IW_MODE_INFRA))
+#endif
+ return ret;
+
+ spin_lock_irqsave(&priv->rtllib->lock, flags);
+ if (network->flags & NETWORK_HAS_QOS_PARAMETERS) {
+ memcpy(&priv->rtllib->current_network.qos_data.parameters,\
+ &network->qos_data.parameters,\
+ sizeof(struct rtllib_qos_parameters));
+ priv->rtllib->current_network.qos_data.active = 1;
+ priv->rtllib->wmm_acm = network->qos_data.wmm_acm;
+#if 0
+ if((priv->rtllib->current_network.qos_data.param_count != \
+ network->qos_data.param_count))
+#endif
+ {
+ set_qos_param = 1;
+ priv->rtllib->current_network.qos_data.old_param_count = \
+ priv->rtllib->current_network.qos_data.param_count;
+ priv->rtllib->current_network.qos_data.param_count = \
+ network->qos_data.param_count;
+ }
+ } else {
+ memcpy(&priv->rtllib->current_network.qos_data.parameters,\
+ &def_qos_parameters, size);
+ priv->rtllib->current_network.qos_data.active = 0;
+ priv->rtllib->current_network.qos_data.supported = 0;
+ set_qos_param = 1;
+ }
+
+ spin_unlock_irqrestore(&priv->rtllib->lock, flags);
+
+ RT_TRACE(COMP_QOS, "%s: network->flags = %d,%d\n", __FUNCTION__,
+ network->flags ,priv->rtllib->current_network.qos_data.active);
+ if (set_qos_param == 1) {
+ dm_init_edca_turbo(priv->rtllib->dev);
+ queue_work_rsl(priv->priv_wq, &priv->qos_activate);
+ }
+ return ret;
+}
+
+static int rtl8192_handle_assoc_response(struct net_device *dev,
+ struct rtllib_assoc_response_frame *resp,
+ struct rtllib_network *network)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ rtl8192_qos_association_resp(priv, network);
+ return 0;
+}
+
+void rtl8192_prepare_beacon(struct r8192_priv *priv)
+{
+#ifdef _RTL8192_EXT_PATCH_
+ struct net_device *dev = priv->rtllib->dev;
+#endif
+ struct sk_buff *skb;
+ cb_desc *tcb_desc;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if((priv->rtllib->iw_mode == IW_MODE_MESH) && (priv->rtllib->mesh_state == RTLLIB_NOLINK))
+ return;
+#endif
+ skb = rtllib_get_beacon(priv->rtllib);
+ tcb_desc = (cb_desc *)(skb->cb + 8);
+#ifdef _RTL8192_EXT_PATCH_
+ memset(skb->cb, 0, sizeof(skb->cb));
+#endif
+ tcb_desc->queue_index = BEACON_QUEUE;
+ tcb_desc->data_rate = 2;
+ tcb_desc->RATRIndex = 7;
+ tcb_desc->bTxDisableRateFallBack = 1;
+ tcb_desc->bTxUseDriverAssingedRate = 1;
+#ifdef _RTL8192_EXT_PATCH_
+ tcb_desc->bTxEnableFwCalcDur = 0;
+ memcpy((unsigned char *)(skb->cb),&dev,sizeof(dev));
+#endif
+ skb_push(skb, priv->rtllib->tx_headroom);
+ if(skb){
+ rtl8192_tx(priv->rtllib->dev,skb);
+ }
+}
+
+void rtl8192_stop_beacon(struct net_device *dev)
+{
+}
+
+void rtl8192_config_rate(struct net_device* dev, u16* rate_config)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_network *net;
+ u8 i=0, basic_rate = 0;
+#ifdef _RTL8192_EXT_PATCH_
+ if(priv->rtllib->iw_mode == IW_MODE_MESH)
+ net = & priv->rtllib->current_mesh_network;
+ else
+ net = & priv->rtllib->current_network;
+#else
+ net = & priv->rtllib->current_network;
+#endif
+
+ for (i = 0; i < net->rates_len; i++) {
+ basic_rate = net->rates[i] & 0x7f;
+ switch (basic_rate) {
+ case MGN_1M:
+ *rate_config |= RRSR_1M;
+ break;
+ case MGN_2M:
+ *rate_config |= RRSR_2M;
+ break;
+ case MGN_5_5M:
+ *rate_config |= RRSR_5_5M;
+ break;
+ case MGN_11M:
+ *rate_config |= RRSR_11M;
+ break;
+ case MGN_6M:
+ *rate_config |= RRSR_6M;
+ break;
+ case MGN_9M:
+ *rate_config |= RRSR_9M;
+ break;
+ case MGN_12M:
+ *rate_config |= RRSR_12M;
+ break;
+ case MGN_18M:
+ *rate_config |= RRSR_18M;
+ break;
+ case MGN_24M:
+ *rate_config |= RRSR_24M;
+ break;
+ case MGN_36M:
+ *rate_config |= RRSR_36M;
+ break;
+ case MGN_48M:
+ *rate_config |= RRSR_48M;
+ break;
+ case MGN_54M:
+ *rate_config |= RRSR_54M;
+ break;
+ }
+ }
+
+ for (i = 0; i < net->rates_ex_len; i++) {
+ basic_rate = net->rates_ex[i] & 0x7f;
+ switch (basic_rate) {
+ case MGN_1M:
+ *rate_config |= RRSR_1M;
+ break;
+ case MGN_2M:
+ *rate_config |= RRSR_2M;
+ break;
+ case MGN_5_5M:
+ *rate_config |= RRSR_5_5M;
+ break;
+ case MGN_11M:
+ *rate_config |= RRSR_11M;
+ break;
+ case MGN_6M:
+ *rate_config |= RRSR_6M;
+ break;
+ case MGN_9M:
+ *rate_config |= RRSR_9M;
+ break;
+ case MGN_12M:
+ *rate_config |= RRSR_12M;
+ break;
+ case MGN_18M:
+ *rate_config |= RRSR_18M;
+ break;
+ case MGN_24M:
+ *rate_config |= RRSR_24M;
+ break;
+ case MGN_36M:
+ *rate_config |= RRSR_36M;
+ break;
+ case MGN_48M:
+ *rate_config |= RRSR_48M;
+ break;
+ case MGN_54M:
+ *rate_config |= RRSR_54M;
+ break;
+ }
+ }
+}
+
+void rtl8192_refresh_supportrate(struct r8192_priv* priv)
+{
+ struct rtllib_device* ieee = priv->rtllib;
+ if (ieee->mode == WIRELESS_MODE_N_24G || ieee->mode == WIRELESS_MODE_N_5G) {
+ memcpy(ieee->Regdot11HTOperationalRateSet, ieee->RegHTSuppRateSet, 16);
+ memcpy(ieee->Regdot11TxHTOperationalRateSet, ieee->RegHTSuppRateSet, 16);
+
+#ifdef RTL8192CE
+ if(priv->rf_type == RF_1T1R) {
+ ieee->Regdot11HTOperationalRateSet[1] = 0;
+ }
+#endif
+
+#ifdef RTL8192SE
+ if(priv->rf_type == RF_1T1R) {
+ ieee->Regdot11HTOperationalRateSet[1] = 0;
+ }
+ if(priv->rf_type == RF_1T1R || priv->rf_type == RF_1T2R)
+ {
+ ieee->Regdot11TxHTOperationalRateSet[1] = 0;
+ }
+
+ if(priv->rtllib->b1SSSupport == true) {
+ ieee->Regdot11HTOperationalRateSet[1] = 0;
+ }
+#endif
+ } else {
+ memset(ieee->Regdot11HTOperationalRateSet, 0, 16);
+ }
+ return;
+}
+
+u8 rtl8192_getSupportedWireleeMode(struct net_device*dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 ret = 0;
+
+ switch(priv->rf_chip) {
+ case RF_8225:
+ case RF_8256:
+ case RF_6052:
+ case RF_PSEUDO_11N:
+ ret = (WIRELESS_MODE_N_24G|WIRELESS_MODE_G | WIRELESS_MODE_B);
+ break;
+ case RF_8258:
+ ret = (WIRELESS_MODE_A | WIRELESS_MODE_N_5G);
+ break;
+ default:
+ ret = WIRELESS_MODE_B;
+ break;
+ }
+ return ret;
+}
+
+void rtl8192_SetWirelessMode(struct net_device* dev, u8 wireless_mode)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 bSupportMode = rtl8192_getSupportedWireleeMode(dev);
+
+#if 0
+ if( (wireless_mode != WIRELESS_MODE_B) &&
+ (wireless_mode != WIRELESS_MODE_G) &&
+ (wireless_mode != WIRELESS_MODE_A) &&
+ (wireless_mode != WIRELESS_MODE_AUTO) &&
+ (wireless_mode != WIRELESS_MODE_N_24G) &&
+ (wireless_mode != WIRELESS_MODE_N_5G) )
+ {
+ wireless_mode = WIRELESS_MODE_AUTO;
+ }
+#endif
+ if ((wireless_mode == WIRELESS_MODE_AUTO) || ((wireless_mode & bSupportMode) == 0)) {
+ if (bSupportMode & WIRELESS_MODE_N_24G) {
+ wireless_mode = WIRELESS_MODE_N_24G;
+ } else if (bSupportMode & WIRELESS_MODE_N_5G) {
+ wireless_mode = WIRELESS_MODE_N_5G;
+ } else if((bSupportMode & WIRELESS_MODE_A)) {
+ wireless_mode = WIRELESS_MODE_A;
+ } else if((bSupportMode & WIRELESS_MODE_G)) {
+ wireless_mode = WIRELESS_MODE_G;
+ } else if((bSupportMode & WIRELESS_MODE_B)) {
+ wireless_mode = WIRELESS_MODE_B;
+ } else {
+ RT_TRACE(COMP_ERR, "%s(), No valid wireless mode supported (%x)!!!\n",
+ __FUNCTION__, bSupportMode);
+ wireless_mode = WIRELESS_MODE_B;
+ }
+ }
+
+#ifdef _RTL8192_EXT_PATCH_
+ if ((wireless_mode & WIRELESS_MODE_N_24G) == WIRELESS_MODE_N_24G)
+ wireless_mode = WIRELESS_MODE_N_24G;
+ else if((wireless_mode & WIRELESS_MODE_N_5G) == WIRELESS_MODE_N_5G)
+ wireless_mode = WIRELESS_MODE_N_5G;
+ else if ((wireless_mode & WIRELESS_MODE_A) == WIRELESS_MODE_A)
+ wireless_mode = WIRELESS_MODE_A;
+ else if ((wireless_mode & WIRELESS_MODE_G) == WIRELESS_MODE_G)
+ wireless_mode = WIRELESS_MODE_G;
+ else
+ wireless_mode = WIRELESS_MODE_B;
+#else
+ if ((wireless_mode & (WIRELESS_MODE_B | WIRELESS_MODE_G)) == (WIRELESS_MODE_G | WIRELESS_MODE_B))
+ wireless_mode = WIRELESS_MODE_G;
+#endif
+
+#ifdef RTL8192SE
+ write_nic_word(dev, SIFS_OFDM, 0x0e0e);
+#endif
+#ifdef RTL8192CE
+ {
+ u16 SIFS_Timer = 0x0a0a;
+
+ if(wireless_mode == WIRELESS_MODE_G)
+ SIFS_Timer = 0x0a0a;
+ else
+ SIFS_Timer = 0x1010;
+
+ priv->rtllib->SetHwRegHandler( dev, HW_VAR_SIFS, (u8*)&SIFS_Timer);
+ }
+#endif
+ priv->rtllib->mode = wireless_mode;
+
+ if ((wireless_mode == WIRELESS_MODE_N_24G) || (wireless_mode == WIRELESS_MODE_N_5G)){
+ priv->rtllib->pHTInfo->bEnableHT = 1;
+ printk("%s(), wireless_mode:%x, bEnableHT = 1\n", __FUNCTION__,wireless_mode);
+ }else{
+ priv->rtllib->pHTInfo->bEnableHT = 0;
+ printk("%s(), wireless_mode:%x, bEnableHT = 0\n", __FUNCTION__,wireless_mode);
+ }
+ RT_TRACE(COMP_INIT, "Current Wireless Mode is %x\n", wireless_mode);
+ rtl8192_refresh_supportrate(priv);
+}
+
+
+#ifdef _RTL8192_EXT_PATCH_
+#define KEEP_ALIVE_INTERVAL 20
+#define DEFAULT_KEEP_ALIVE_LEVEL 1
+
+static void MgntLinkKeepAlive(struct r8192_priv *priv )
+{
+ if (priv->keepAliveLevel == 0)
+ return;
+
+ if((priv->rtllib->state == RTLLIB_LINKED) && (!priv->rtllib->is_roaming))
+ {
+
+ if ( (priv->keepAliveLevel== 2) ||
+ (priv->rtllib->LinkDetectInfo.LastNumTxUnicast == priv->NumTxUnicast &&
+ priv->rtllib->LinkDetectInfo.NumRxUnicastOkInPeriod == 0)
+ )
+ {
+ priv->rtllib->LinkDetectInfo.IdleCount++;
+
+ if(priv->rtllib->LinkDetectInfo.IdleCount >= ((KEEP_ALIVE_INTERVAL / RT_CHECK_FOR_HANG_PERIOD)-1) )
+ {
+ priv->rtllib->LinkDetectInfo.IdleCount = 0;
+ rtllib_sta_ps_send_null_frame(priv->rtllib, false);
+ }
+ }
+ else
+ {
+ priv->rtllib->LinkDetectInfo.IdleCount = 0;
+ }
+ priv->rtllib->LinkDetectInfo.LastNumTxUnicast = priv->NumTxUnicast;
+ priv->rtllib->LinkDetectInfo.LastNumRxUnicast = priv->rtllib->LinkDetectInfo.NumRxUnicastOkInPeriod;
+ }
+}
+
+static void rtl8192_init_mesh_variable(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 i;
+
+ priv->rtllib->mesh_security_setting = 0;
+ memset(priv->rtllib->swmeshcamtable,0,sizeof(SW_CAM_TABLE)*32);
+ priv->rtllib->mesh_sec_type = 0;
+
+ priv->NumTxUnicast = 0;
+ priv->keepAliveLevel = DEFAULT_KEEP_ALIVE_LEVEL;
+
+ priv->FwCmdIOMap = 0;
+ priv->FwCmdIOParam = 0;
+ priv->ThermalValue = 0;
+ priv->DMFlag = 0;
+ priv->rssi_level = 0;
+ priv->rtllib->bUseRAMask = 0;
+
+ priv->rtllib->set_key_for_AP = rtl8192_set_key_for_AP;
+ memset(priv->rtllib->swmeshratrtable,0,8*(sizeof(SW_RATR_TABLE)));
+ priv->rtllib->mesh_amsdu_in_process = 0;
+ priv->rtllib->HwSecCamBitMap = 0;
+ memset(priv->rtllib->HwSecCamStaAddr,0,TOTAL_CAM_ENTRY * ETH_ALEN);
+ priv->rtllib->LinkingPeerBitMap = 0;
+ memset(priv->rtllib->LinkingPeerAddr,0,(MAX_MP-1) * ETH_ALEN);
+ memset(priv->rtllib->LinkingPeerSecState, 0, (MAX_MP-1));
+ memset(priv->rtllib->peer_AID_Addr,0,30 * ETH_ALEN);
+ priv->rtllib->peer_AID_bitmap = 0;
+ priv->rtllib->backup_channel = 1;
+ priv->rtllib->del_hwsec_cam_entry = rtl8192_del_hwsec_cam_entry;
+ priv->rtllib->set_key_for_peer = meshdev_set_key_for_peer;
+ priv->rtllib->hostname_len = 0;
+ memset(priv->rtllib->hostname, 0, sizeof(priv->rtllib->hostname));
+ strcpy(priv->rtllib->hostname, "Crab");
+ priv->rtllib->hostname_len = strlen(priv->rtllib->hostname);
+ priv->rtllib->meshScanMode = 0;
+ priv->rtllib->currentRate = 0xffffffff;
+ priv->mshobj = alloc_mshobj(priv);
+ printk("priv is %p,mshobj is %p\n",priv,priv->mshobj);
+
+ if (priv->mshobj) {
+ priv->rtllib->ext_patch_rtllib_start_protocol =
+ priv->mshobj->ext_patch_rtllib_start_protocol;
+ priv->rtllib->ext_patch_rtllib_stop_protocol =
+ priv->mshobj->ext_patch_rtllib_stop_protocol;
+ priv->rtllib->ext_patch_rtllib_start_mesh =
+ priv->mshobj->ext_patch_rtllib_start_mesh;
+ priv->rtllib->ext_patch_rtllib_probe_req_1 =
+ priv->mshobj->ext_patch_rtllib_probe_req_1;
+ priv->rtllib->ext_patch_rtllib_probe_req_2 =
+ priv->mshobj->ext_patch_rtllib_probe_req_2;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_auth =
+ priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_auth;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_deauth =
+ priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_deauth;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_peerlink_open =
+ priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_peerlink_open;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_peerlink_confirm =
+ priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_peerlink_confirm;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_peerlink_close =
+ priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_peerlink_close;
+ priv->rtllib->ext_patch_rtllib_close_all_peerlink =
+ priv->mshobj->ext_patch_rtllib_close_all_peerlink;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_report =
+ priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_report;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_req =
+ priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_req;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_preq =
+ priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_pathselect_preq;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_prep =
+ priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_pathselect_prep;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_perr =
+ priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_pathselect_perr;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_rann =
+ priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_pathselect_rann;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_pann =
+ priv->mshobj->ext_patch_rtllib_rx_frame_softmac_on_pathselect_pann;
+ priv->rtllib->ext_patch_rtllib_ext_stop_scan_wq_set_channel =
+ priv->mshobj->ext_patch_rtllib_ext_stop_scan_wq_set_channel;
+ priv->rtllib->ext_patch_r819x_wx_set_mesh_chan =
+ priv->mshobj->ext_patch_r819x_wx_set_mesh_chan;
+ priv->rtllib->ext_patch_r819x_wx_set_channel =
+ priv->mshobj->ext_patch_r819x_wx_set_channel;
+ priv->rtllib->ext_patch_rtllib_process_probe_response_1 =
+ priv->mshobj->ext_patch_rtllib_process_probe_response_1;
+ priv->rtllib->ext_patch_rtllib_rx_mgt_on_probe_req =
+ priv->mshobj->ext_patch_rtllib_rx_mgt_on_probe_req;
+ priv->rtllib->ext_patch_rtllib_rx_mgt_update_expire =
+ priv->mshobj->ext_patch_rtllib_rx_mgt_update_expire;
+ priv->rtllib->ext_patch_get_beacon_get_probersp =
+ priv->mshobj->ext_patch_get_beacon_get_probersp;
+ priv->rtllib->ext_patch_rtllib_rx_on_rx =
+ priv->mshobj->ext_patch_rtllib_rx_on_rx;
+ priv->rtllib->ext_patch_rtllib_rx_frame_get_hdrlen =
+ priv->mshobj->ext_patch_rtllib_rx_frame_get_hdrlen;
+ priv->rtllib->ext_patch_rtllib_rx_frame_get_mac_hdrlen =
+ priv->mshobj->ext_patch_rtllib_rx_frame_get_mac_hdrlen;
+ priv->rtllib->ext_patch_rtllib_rx_frame_get_mesh_hdrlen_llc =
+ priv->mshobj->ext_patch_rtllib_rx_frame_get_mesh_hdrlen_llc;
+ priv->rtllib->ext_patch_rtllib_rx_is_valid_framectl =
+ priv->mshobj->ext_patch_rtllib_rx_is_valid_framectl;
+ priv->rtllib->ext_patch_rtllib_softmac_xmit_get_rate =
+ priv->mshobj->ext_patch_rtllib_softmac_xmit_get_rate;
+ /* added by david for setting acl dynamically */
+ priv->rtllib->ext_patch_rtllib_acl_query =
+ priv->mshobj->ext_patch_rtllib_acl_query;
+ priv->rtllib->ext_patch_rtllib_is_mesh =
+ priv->mshobj->ext_patch_rtllib_is_mesh;
+ priv->rtllib->ext_patch_rtllib_create_crypt_for_peer =
+ priv->mshobj->ext_patch_rtllib_create_crypt_for_peer;
+ priv->rtllib->ext_patch_rtllib_get_peermp_htinfo =
+ priv->mshobj->ext_patch_rtllib_get_peermp_htinfo;
+ priv->rtllib->ext_patch_rtllib_send_ath_commit =
+ priv->mshobj->ext_patch_rtllib_send_ath_commit;
+ priv->rtllib->ext_patch_rtllib_send_ath_confirm =
+ priv->mshobj->ext_patch_rtllib_send_ath_confirm;
+ priv->rtllib->ext_patch_rtllib_rx_ath_commit =
+ priv->mshobj->ext_patch_rtllib_rx_ath_commit;
+ priv->rtllib->ext_patch_rtllib_rx_ath_confirm =
+ priv->mshobj->ext_patch_rtllib_rx_ath_confirm;
+ }
+ for (i = 0; i < MAX_QUEUE_SIZE; i++) {
+ skb_queue_head_init(&priv->rtllib->skb_meshaggQ[i]);
+ }
+}
+
+int _rtl8192_mesh_up(struct net_device *dev,bool is_silent_reset)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+ bool init_status = true;
+ priv->bDriverIsGoingToUnload = false;
+ priv->bdisable_nic = false;
+
+ if(priv->mesh_up){
+ RT_TRACE(COMP_ERR,"%s(): since mesh0 is already up, ra0 is forbidden to open.\n",__FUNCTION__);
+ return -1;
+ }
+ RT_TRACE(COMP_DOWN, "==========>%s()\n", __FUNCTION__);
+ if(!is_silent_reset)
+ priv->rtllib->iw_mode = IW_MODE_INFRA;
+ if(priv->up){
+ RT_TRACE(COMP_ERR,"%s():%s is up,return\n",__FUNCTION__,DRV_NAME);
+ return -1;
+ }
+#ifdef RTL8192SE
+ priv->ReceiveConfig =
+ RCR_APPFCS | RCR_APWRMGT | /*RCR_ADD3 |*/
+ RCR_AMF | RCR_ADF | RCR_APP_MIC | RCR_APP_ICV |
+ RCR_AICV | RCR_ACRC32 |
+ RCR_AB | RCR_AM |
+ RCR_APM |
+ /*RCR_AAP |*/
+ RCR_APP_PHYST_STAFF | RCR_APP_PHYST_RXFF |
+ (priv->EarlyRxThreshold<<RCR_FIFO_OFFSET) ;
+#endif
+
+ if(!priv->mesh_up)
+ {
+ RT_TRACE(COMP_INIT, "Bringing up iface");
+ priv->bfirst_init = true;
+ init_status = priv->ops->initialize_adapter(dev);
+ if(init_status != true)
+ {
+ RT_TRACE(COMP_ERR,"ERR!!! %s(): initialization is failed!\n",__FUNCTION__);
+ return -1;
+ }
+ RT_TRACE(COMP_INIT, "start adapter finished\n");
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC);
+ priv->rtllib->ieee_up=1;
+ priv->bfirst_init = false;
+#ifdef ENABLE_GPIO_RADIO_CTL
+ if(priv->polling_timer_on == 0){
+ check_rfctrl_gpio_timer((unsigned long)dev);
+ }
+#endif
+ priv->rtllib->current_network.channel = INIT_DEFAULT_CHAN;
+ priv->rtllib->current_mesh_network.channel = INIT_DEFAULT_CHAN;
+ if((priv->mshobj->ext_patch_r819x_wx_set_mesh_chan) && (!is_silent_reset))
+ priv->mshobj->ext_patch_r819x_wx_set_mesh_chan(dev,INIT_DEFAULT_CHAN);
+ if((priv->mshobj->ext_patch_r819x_wx_set_channel) && (!is_silent_reset))
+ {
+ priv->mshobj->ext_patch_r819x_wx_set_channel(priv->rtllib, INIT_DEFAULT_CHAN);
+ }
+ dm_InitRateAdaptiveMask(dev);
+ }
+ else
+ {
+ rtllib_stop_scan_syncro(priv->rtllib);
+ }
+ priv->up=1;
+ printk("%s():set chan %d\n",__FUNCTION__,INIT_DEFAULT_CHAN);
+ priv->rtllib->set_chan(dev, INIT_DEFAULT_CHAN);
+ priv->up_first_time = 0;
+ if(!priv->rtllib->proto_started)
+ {
+#ifdef RTL8192E
+ if(priv->rtllib->eRFPowerState!=eRfOn)
+ MgntActSet_RF_State(dev, eRfOn, priv->rtllib->RfOffReason);
+#endif
+ if(priv->rtllib->state != RTLLIB_LINKED)
+ rtllib_softmac_start_protocol(priv->rtllib, 0);
+ }
+ if(!priv->mesh_up)
+ watch_dog_timer_callback((unsigned long) dev);
+ rtllib_reset_queue(priv->rtllib);
+ if(!netif_queue_stopped(dev))
+ netif_start_queue(dev);
+ else
+ netif_wake_queue(dev);
+ RT_TRACE(COMP_DOWN, "<==========%s()\n", __FUNCTION__);
+
+ return 0;
+}
+
+int rtl8192_mesh_down(struct net_device *dev, bool shutdownrf)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ unsigned long flags = 0;
+ u8 RFInProgressTimeOut = 0;
+
+ if (priv->up == 0)
+ return -1;
+
+ RT_TRACE(COMP_DOWN, "==========>%s()\n", __FUNCTION__);
+#ifdef ENABLE_LPS
+ if(priv->rtllib->state == RTLLIB_LINKED)
+ LeisurePSLeave(dev);
+#endif
+ priv->up=0;
+
+ /* FIXME */
+ if (!netif_queue_stopped(dev))
+ netif_stop_queue(dev);
+ if(!priv->mesh_up)
+ {
+ priv->bDriverIsGoingToUnload = true;
+ priv->rtllib->ieee_up = 0;
+ /* mesh stack has also be closed, then disalbe the hardware function at
+ * the same time */
+ priv->rtllib->wpa_ie_len = 0;
+ if(priv->rtllib->wpa_ie)
+ kfree(priv->rtllib->wpa_ie);
+ priv->rtllib->wpa_ie = NULL;
+#ifdef RTL8192S_WAPI_SUPPORT
+ priv->rtllib->wapiInfo.wapiTxMsk.bTxEnable = false;
+ priv->rtllib->wapiInfo.wapiTxMsk.bSet = false;
+#endif
+ CamResetAllEntry(dev);
+ memset(priv->rtllib->swcamtable,0,sizeof(SW_CAM_TABLE)*32);
+ rtl8192_irq_disable(dev);
+ rtl8192_cancel_deferred_work(priv);
+#ifndef RTL8190P
+ cancel_delayed_work(&priv->rtllib->hw_wakeup_wq);
+#endif
+ deinit_hal_dm(dev);
+ del_timer_sync(&priv->watch_dog_timer);
+
+ rtllib_softmac_stop_protocol(priv->rtllib, 0, true);
+ SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock);
+ while(priv->RFChangeInProgress)
+ {
+ SPIN_UNLOCK_PRIV_RFPS(&priv->rf_ps_lock);
+ if(RFInProgressTimeOut > 100)
+ {
+ SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock);
+ break;
+ }
+ printk("===>%s():RF is in progress, need to wait until rf chang is done.\n",__FUNCTION__);
+ mdelay(1);
+ RFInProgressTimeOut ++;
+ SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock);
+ }
+ priv->RFChangeInProgress = true;
+ SPIN_UNLOCK_PRIV_RFPS(&priv->rf_ps_lock);
+ priv->ops->stop_adapter(dev, false);
+ SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock);
+ priv->RFChangeInProgress = false;
+ SPIN_UNLOCK_PRIV_RFPS(&priv->rf_ps_lock);
+ udelay(100);
+ memset(&priv->rtllib->current_network, 0 , offsetof(struct rtllib_network, list));
+ priv->rtllib->wap_set = 0;
+ priv->rtllib->current_network.channel = INIT_DEFAULT_CHAN;
+#ifdef CONFIG_ASPM_OR_D3
+ RT_ENABLE_ASPM(dev);
+#endif
+ } else {
+ priv->rtllib->wpa_ie_len = 0;
+ if(priv->rtllib->wpa_ie)
+ kfree(priv->rtllib->wpa_ie);
+ priv->rtllib->wpa_ie = NULL;
+#ifdef RTL8192S_WAPI_SUPPORT
+ priv->rtllib->wapiInfo.wapiTxMsk.bTxEnable = false;
+ priv->rtllib->wapiInfo.wapiTxMsk.bSet = false;
+#endif
+ CamResetAllEntry(dev);
+ CamRestoreEachIFEntry(dev,1);
+ memset(priv->rtllib->swcamtable,0,sizeof(SW_CAM_TABLE)*32);
+
+ rtllib_softmac_stop_protocol(priv->rtllib, 0, true);
+ memset(&priv->rtllib->current_network, 0 , offsetof(struct rtllib_network, list));
+ priv->rtllib->current_network.channel = INIT_DEFAULT_CHAN;
+ priv->rtllib->wap_set = 0;
+ }
+
+ RT_TRACE(COMP_DOWN, "<==========%s()\n", __FUNCTION__);
+
+ return 0;
+}
+
+void rtl8192_dinit_mshobj(struct r8192_priv *priv)
+{
+
+ if(priv && priv->mshobj)
+ {
+ if(priv->mshobj->ext_patch_remove_proc)
+ priv->mshobj->ext_patch_remove_proc(priv);
+ priv->rtllib->ext_patch_rtllib_start_protocol = 0;
+ priv->rtllib->ext_patch_rtllib_stop_protocol = 0;
+ priv->rtllib->ext_patch_rtllib_probe_req_1 = 0;
+ priv->rtllib->ext_patch_rtllib_probe_req_2 = 0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_auth =0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_deauth =0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_peerlink_open = 0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_peerlink_confirm = 0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_peerlink_close = 0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_report= 0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_req= 0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_preq = 0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_prep=0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_perr = 0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_rann=0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_softmac_on_pathselect_pann=0;
+ priv->rtllib->ext_patch_rtllib_ext_stop_scan_wq_set_channel = 0;
+ priv->rtllib->ext_patch_rtllib_process_probe_response_1 = 0;
+ priv->rtllib->ext_patch_rtllib_rx_mgt_on_probe_req = 0;
+ priv->rtllib->ext_patch_rtllib_rx_mgt_update_expire = 0;
+ priv->rtllib->ext_patch_rtllib_rx_on_rx = 0;
+ priv->rtllib->ext_patch_get_beacon_get_probersp = 0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_get_hdrlen = 0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_get_mac_hdrlen = 0;
+ priv->rtllib->ext_patch_rtllib_rx_frame_get_mesh_hdrlen_llc = 0;
+ priv->rtllib->ext_patch_rtllib_rx_is_valid_framectl = 0;
+ priv->rtllib->ext_patch_rtllib_softmac_xmit_get_rate = 0;
+ priv->rtllib->ext_patch_rtllib_is_mesh = 0;
+ priv->rtllib->ext_patch_rtllib_create_crypt_for_peer = 0;
+ priv->rtllib->ext_patch_rtllib_get_peermp_htinfo = 0;
+ priv->rtllib->ext_patch_rtllib_send_ath_commit = 0;
+ priv->rtllib->ext_patch_rtllib_send_ath_confirm = 0;
+ priv->rtllib->ext_patch_rtllib_rx_ath_commit = 0;
+ priv->rtllib->ext_patch_rtllib_rx_ath_confirm = 0;
+ free_mshobj(&priv->mshobj);
+ }
+
+}
+#else
+int _rtl8192_sta_up(struct net_device *dev,bool is_silent_reset)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+ bool init_status = true;
+ priv->bDriverIsGoingToUnload = false;
+ priv->bdisable_nic = false;
+
+ priv->up=1;
+ priv->rtllib->ieee_up=1;
+
+ priv->up_first_time = 0;
+ RT_TRACE(COMP_INIT, "Bringing up iface");
+ priv->bfirst_init = true;
+ init_status = priv->ops->initialize_adapter(dev);
+ if(init_status != true)
+ {
+ RT_TRACE(COMP_ERR,"ERR!!! %s(): initialization is failed!\n",__FUNCTION__);
+ priv->bfirst_init = false;
+ return -1;
+ }
+
+ RT_TRACE(COMP_INIT, "start adapter finished\n");
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC);
+ priv->bfirst_init = false;
+#if defined RTL8192SE || defined RTL8192CE
+ if(priv->rtllib->eRFPowerState!=eRfOn)
+ MgntActSet_RF_State(dev, eRfOn, priv->rtllib->RfOffReason);
+#endif
+
+#ifdef ENABLE_GPIO_RADIO_CTL
+ if(priv->polling_timer_on == 0){
+ check_rfctrl_gpio_timer((unsigned long)dev);
+ }
+#endif
+
+ if(priv->rtllib->state != RTLLIB_LINKED)
+#ifndef CONFIG_MP
+ rtllib_softmac_start_protocol(priv->rtllib);
+#endif
+ rtllib_reset_queue(priv->rtllib);
+#ifndef CONFIG_MP
+ watch_dog_timer_callback((unsigned long) dev);
+#endif
+
+
+ if(!netif_queue_stopped(dev))
+ netif_start_queue(dev);
+ else
+ netif_wake_queue(dev);
+
+ return 0;
+}
+
+int rtl8192_sta_down(struct net_device *dev, bool shutdownrf)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ unsigned long flags = 0;
+ u8 RFInProgressTimeOut = 0;
+
+ if (priv->up == 0) return -1;
+
+#ifdef ENABLE_LPS
+ if(priv->rtllib->state == RTLLIB_LINKED)
+ LeisurePSLeave(dev);
+#endif
+
+ priv->bDriverIsGoingToUnload = true;
+ priv->up=0;
+ priv->rtllib->ieee_up = 0;
+ priv->bfirst_after_down = 1;
+ RT_TRACE(COMP_DOWN, "==========>%s()\n", __FUNCTION__);
+ if (!netif_queue_stopped(dev))
+ netif_stop_queue(dev);
+
+ priv->rtllib->wpa_ie_len = 0;
+ if(priv->rtllib->wpa_ie)
+ kfree(priv->rtllib->wpa_ie);
+ priv->rtllib->wpa_ie = NULL;
+#ifdef RTL8192S_WAPI_SUPPORT
+ priv->rtllib->wapiInfo.wapiTxMsk.bTxEnable = false;
+ priv->rtllib->wapiInfo.wapiTxMsk.bSet = false;
+#endif
+ CamResetAllEntry(dev);
+ memset(priv->rtllib->swcamtable,0,sizeof(SW_CAM_TABLE)*32);
+ rtl8192_irq_disable(dev);
+
+ del_timer_sync(&priv->watch_dog_timer);
+ rtl8192_cancel_deferred_work(priv);
+#ifndef RTL8190P
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ cancel_delayed_work(&priv->rtllib->hw_wakeup_wq);
+#endif
+#endif
+
+ rtllib_softmac_stop_protocol(priv->rtllib,true);
+ spin_lock_irqsave(&priv->rf_ps_lock,flags);
+ while(priv->RFChangeInProgress)
+ {
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flags);
+ if(RFInProgressTimeOut > 100)
+ {
+ spin_lock_irqsave(&priv->rf_ps_lock,flags);
+ break;
+ }
+ printk("===>%s():RF is in progress, need to wait until rf chang is done.\n",__FUNCTION__);
+ mdelay(1);
+ RFInProgressTimeOut ++;
+ spin_lock_irqsave(&priv->rf_ps_lock,flags);
+ }
+ priv->RFChangeInProgress = true;
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flags);
+ priv->ops->stop_adapter(dev, false);
+ spin_lock_irqsave(&priv->rf_ps_lock,flags);
+ priv->RFChangeInProgress = false;
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flags);
+ udelay(100);
+ memset(&priv->rtllib->current_network, 0 , offsetof(struct rtllib_network, list));
+#ifdef CONFIG_ASPM_OR_D3
+ RT_ENABLE_ASPM(dev);
+#endif
+ RT_TRACE(COMP_DOWN, "<==========%s()\n", __FUNCTION__);
+
+ return 0;
+}
+
+#endif
+
+static void rtl8192_init_priv_handler(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ priv->rtllib->softmac_hard_start_xmit = rtl8192_hard_start_xmit;
+ priv->rtllib->set_chan = rtl8192_set_chan;
+ priv->rtllib->link_change = priv->ops->link_change;
+ priv->rtllib->softmac_data_hard_start_xmit = rtl8192_hard_data_xmit;
+ priv->rtllib->data_hard_stop = rtl8192_data_hard_stop;
+ priv->rtllib->data_hard_resume = rtl8192_data_hard_resume;
+ priv->rtllib->check_nic_enough_desc = rtl8192_check_nic_enough_desc;
+ priv->rtllib->get_nic_desc_num = rtl8192_get_nic_desc_num;
+#ifdef _RTL8192_EXT_PATCH_
+ priv->rtllib->set_mesh_key = r8192_mesh_set_enc_ext;
+#endif
+ priv->rtllib->handle_assoc_response = rtl8192_handle_assoc_response;
+ priv->rtllib->handle_beacon = rtl8192_handle_beacon;
+ priv->rtllib->SetWirelessMode = rtl8192_SetWirelessMode;
+
+#ifdef ENABLE_LPS
+ priv->rtllib->LeisurePSLeave = LeisurePSLeave;
+#endif
+
+#ifdef RTL8192CE
+ priv->rtllib->SetBWModeHandler = PHY_SetBWMode8192C;
+ priv->rf_set_chan = PHY_SwChnl8192C;
+
+#ifdef _ENABLE_SW_BEACON
+ priv->rtllib->start_send_beacons = NULL;
+ priv->rtllib->stop_send_beacons = NULL;
+#else
+ priv->rtllib->start_send_beacons = rtl8192ce_SetBeaconRelatedRegisters;
+ priv->rtllib->stop_send_beacons = rtl8192_stop_beacon;
+#endif
+
+ priv->rtllib->sta_wake_up = rtl8192_hw_wakeup;
+ priv->rtllib->enter_sleep_state = rtl8192_hw_to_sleep;
+ priv->rtllib->ps_is_queue_empty = rtl8192_is_tx_queue_empty;
+
+ priv->rtllib->GetNmodeSupportBySecCfg = rtl8192ce_GetNmodeSupportBySecCfg;
+ priv->rtllib->GetHalfNmodeSupportByAPsHandler = rtl8192ce_GetHalfNmodeSupportByAPs;
+
+ priv->rtllib->SetHwRegHandler = rtl8192ce_SetHwReg;
+ priv->rtllib->GetHwRegHandler = rtl8192ce_GetHwReg;
+ priv->rtllib->AllowAllDestAddrHandler = rtl8192ce_AllowAllDestAddr;
+ priv->rtllib->SetFwCmdHandler = rtl8192ce_phy_SetFwCmdIO;
+ priv->rtllib->UpdateHalRAMaskHandler = rtl8192ce_UpdateHalRAMask;
+ priv->rtllib->UpdateBeaconInterruptHandler = rtl8192ce_UpdateInterruptMask;
+ priv->rtllib->rtl_11n_user_show_rates = rtl8192_11n_user_show_rates;
+#ifdef ENABLE_IPS
+ priv->rtllib->rtllib_ips_leave_wq = rtllib_ips_leave_wq;
+ priv->rtllib->rtllib_ips_leave = rtllib_ips_leave;
+#endif
+
+ priv->rtllib->LedControlHandler = LedControl8192CE;
+ priv->rtllib->ScanOperationBackupHandler = PHY_ScanOperationBackup8192C;
+#endif
+
+#ifdef RTL8192SE
+ priv->rtllib->SetBWModeHandler = rtl8192_SetBWMode;
+ priv->rf_set_chan = rtl8192_phy_SwChnl;
+
+#ifdef _RTL8192_EXT_PATCH_
+ priv->rtllib->start_send_beacons = NULL;
+ priv->rtllib->stop_send_beacons = NULL;
+#else
+#ifdef _ENABLE_SW_BEACON
+ priv->rtllib->start_send_beacons = NULL;
+ priv->rtllib->stop_send_beacons = NULL;
+#else
+ priv->rtllib->start_send_beacons = rtl8192se_start_beacon;
+ priv->rtllib->stop_send_beacons = rtl8192_stop_beacon;
+#endif
+#endif
+ priv->rtllib->sta_wake_up = rtl8192_hw_wakeup;
+ priv->rtllib->enter_sleep_state = rtl8192_hw_to_sleep;
+ priv->rtllib->ps_is_queue_empty = rtl8192_is_tx_queue_empty;
+
+ priv->rtllib->GetNmodeSupportBySecCfg = rtl8192se_GetNmodeSupportBySecCfg;
+ priv->rtllib->GetHalfNmodeSupportByAPsHandler = rtl8192se_GetHalfNmodeSupportByAPs;
+
+ priv->rtllib->SetBeaconRelatedRegistersHandler = SetBeaconRelatedRegisters8192SE;
+ priv->rtllib->Adhoc_InitRateAdaptive = Adhoc_InitRateAdaptive;
+ priv->rtllib->check_ht_cap = rtl8192se_check_ht_cap;
+ priv->rtllib->SetHwRegHandler = SetHwReg8192SE;
+ priv->rtllib->GetHwRegHandler = GetHwReg8192SE;
+ priv->rtllib->AllowAllDestAddrHandler = rtl8192se_AllowAllDestAddr;
+ priv->rtllib->SetFwCmdHandler = rtl8192se_set_fw_cmd;
+ priv->rtllib->UpdateHalRAMaskHandler = UpdateHalRAMask8192SE;
+ priv->rtllib->UpdateBeaconInterruptHandler = NULL;
+ priv->rtllib->rtl_11n_user_show_rates = rtl8192_11n_user_show_rates;
+#ifdef ENABLE_IPS
+ priv->rtllib->rtllib_ips_leave_wq = rtllib_ips_leave_wq;
+ priv->rtllib->rtllib_ips_leave = rtllib_ips_leave;
+#endif
+
+ priv->rtllib->LedControlHandler = LedControl8192SE;
+ priv->rtllib->rtllib_start_hw_scan = rtl8192se_hw_scan_initiate;
+ priv->rtllib->rtllib_stop_hw_scan = rtl8192se_cancel_hw_scan;
+#endif
+
+#ifdef RTL8192E
+ priv->rtllib->SetBWModeHandler = rtl8192_SetBWMode;
+ priv->rf_set_chan = rtl8192_phy_SwChnl;
+
+#ifdef _ENABLE_SW_BEACON
+ priv->rtllib->start_send_beacons = NULL;
+ priv->rtllib->stop_send_beacons = NULL;
+#else
+ priv->rtllib->start_send_beacons = rtl8192e_start_beacon;
+ priv->rtllib->stop_send_beacons = rtl8192_stop_beacon;
+#endif
+
+ priv->rtllib->sta_wake_up = rtl8192_hw_wakeup;
+ priv->rtllib->enter_sleep_state = rtl8192_hw_to_sleep;
+ priv->rtllib->ps_is_queue_empty = rtl8192_is_tx_queue_empty;
+
+ priv->rtllib->GetNmodeSupportBySecCfg = rtl8192_GetNmodeSupportBySecCfg;
+ priv->rtllib->GetHalfNmodeSupportByAPsHandler = rtl8192_GetHalfNmodeSupportByAPs;
+
+ priv->rtllib->SetHwRegHandler = rtl8192e_SetHwReg;
+ priv->rtllib->AllowAllDestAddrHandler = rtl8192_AllowAllDestAddr;
+ priv->rtllib->SetFwCmdHandler = NULL;
+ priv->rtllib->InitialGainHandler = InitialGain819xPci;
+#ifdef ENABLE_IPS
+ priv->rtllib->rtllib_ips_leave_wq = rtllib_ips_leave_wq;
+ priv->rtllib->rtllib_ips_leave = rtllib_ips_leave;
+#endif
+
+ priv->rtllib->LedControlHandler = NULL;
+ priv->rtllib->UpdateBeaconInterruptHandler = NULL;
+#endif
+
+#ifdef RTL8190P
+ priv->rtllib->SetBWModeHandler = rtl8192_SetBWMode;
+ priv->rf_set_chan = rtl8192_phy_SwChnl;
+
+#ifdef _ENABLE_SW_BEACON
+ priv->rtllib->start_send_beacons = NULL;
+ priv->rtllib->stop_send_beacons = NULL;
+#else
+ priv->rtllib->start_send_beacons = rtl8192e_start_beacon;
+ priv->rtllib->stop_send_beacons = rtl8192_stop_beacon;
+#endif
+
+ priv->rtllib->GetNmodeSupportBySecCfg = rtl8192_GetNmodeSupportBySecCfg;
+ priv->rtllib->GetHalfNmodeSupportByAPsHandler = rtl8192_GetHalfNmodeSupportByAPs;
+
+ priv->rtllib->SetHwRegHandler = rtl8192e_SetHwReg;
+ priv->rtllib->SetFwCmdHandler = NULL;
+ priv->rtllib->InitialGainHandler = InitialGain819xPci;
+#ifdef ENABLE_IPS
+ priv->rtllib->rtllib_ips_leave_wq = rtllib_ips_leave_wq;
+ priv->rtllib->rtllib_ips_leave = rtllib_ips_leave;
+#endif
+
+ priv->rtllib->LedControlHandler = NULL;
+ priv->rtllib->UpdateBeaconInterruptHandler = NULL;
+#endif
+
+#ifdef CONFIG_RTL_RFKILL
+ priv->rtllib->rtllib_rfkill_poll = rtl8192_rfkill_poll;
+#else
+ priv->rtllib->rtllib_rfkill_poll = NULL;
+#endif
+}
+
+static void rtl8192_init_aspm(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+#ifdef CONFIG_ASPM_OR_D3
+ int pos;
+ u8 value;
+#endif
+
+ priv->bridge_pdev = priv->pdev->bus->self;
+ switch (priv->bridge_pdev->vendor) {
+ case PCI_VENDOR_ID_INTEL:
+ priv->pci_bridge_vendor = PCI_BRIDGE_VENDOR_INTEL;
+ break;
+ case PCI_VENDOR_ID_SI:
+ priv->pci_bridge_vendor = PCI_BRIDGE_VENDOR_SIS;
+ break;
+ default:
+ priv->pci_bridge_vendor = 0;
+ break;
+ }
+
+#ifdef CONFIG_ASPM_OR_D3
+ if (priv->pci_bridge_vendor & (PCI_BRIDGE_VENDOR_INTEL | PCI_BRIDGE_VENDOR_SIS)) {
+ priv->aspm_clkreq_enable = true;
+ priv->RegHostPciASPMSetting = 0x02;
+ pos = pci_find_capability(priv->bridge_pdev, PCI_CAP_ID_EXP);
+ priv->PciBridgeASPMRegOffset = pos + PCI_EXP_LNKCTL;
+ pci_read_config_byte(priv->bridge_pdev, pos + PCI_EXP_LNKCTL, &value);
+ priv->PciBridgeLinkCtrlReg = value;
+
+ priv->RegDevicePciASPMSetting = 0x03;
+ pos = pci_find_capability(priv->pdev, PCI_CAP_ID_EXP);
+ priv->ASPMRegOffset = pos + PCI_EXP_LNKCTL;
+ priv->ClkReqOffset = pos + PCI_EXP_LNKCTL + 1;
+ pci_read_config_byte(priv->pdev, pos + PCI_EXP_LNKCTL, &value);
+ priv->LinkCtrlReg = value;
+ } else {
+ priv->aspm_clkreq_enable = false;
+ }
+#endif
+}
+
+static void rtl8192_init_priv_variable(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+#if defined RTL8192SE || defined RTL8192CE || defined RTL8192E
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+#endif
+ u8 i;
+
+ priv->rtllib->hwscan_sem_up = 1;
+ priv->rtllib->status = 0;
+ priv->H2CTxCmdSeq = 0;
+ priv->bDisableFrameBursting = 0;
+ priv->bDMInitialGainEnable = 1;
+ priv->polling_timer_on = 0;
+ priv->up_first_time = 1;
+ priv->blinked_ingpio = false;
+ priv->bDriverIsGoingToUnload = false;
+ priv->being_init_adapter = false;
+ priv->initialized_at_probe = false;
+ priv->sw_radio_on = true;
+ priv->bdisable_nic = false;
+ priv->bfirst_init = false;
+ priv->txringcount = 64;
+ priv->rxbuffersize = 9100;
+ priv->rxringcount = MAX_RX_COUNT;
+ priv->irq_enabled=0;
+ priv->chan = 1;
+ priv->RegWirelessMode = WIRELESS_MODE_AUTO;
+ priv->RegChannelPlan = 0xf;
+ priv->nrxAMPDU_size = 0;
+ priv->nrxAMPDU_aggr_num = 0;
+ priv->last_rxdesc_tsf_high = 0;
+ priv->last_rxdesc_tsf_low = 0;
+ priv->rtllib->mode = WIRELESS_MODE_AUTO;
+ priv->rtllib->iw_mode = IW_MODE_INFRA;
+ priv->rtllib->bNetPromiscuousMode = false;
+ priv->rtllib->IntelPromiscuousModeInfo.bPromiscuousOn = false;
+ priv->rtllib->IntelPromiscuousModeInfo.bFilterSourceStationFrame = false;
+ priv->rtllib->ieee_up=0;
+ priv->retry_rts = DEFAULT_RETRY_RTS;
+ priv->retry_data = DEFAULT_RETRY_DATA;
+ priv->rtllib->rts = DEFAULT_RTS_THRESHOLD;
+ priv->rtllib->rate = 110;
+ priv->rtllib->short_slot = 1;
+ priv->promisc = (dev->flags & IFF_PROMISC) ? 1:0;
+ priv->bcck_in_ch14 = false;
+ priv->bfsync_processing = false;
+ priv->CCKPresentAttentuation = 0;
+ priv->rfa_txpowertrackingindex = 0;
+ priv->rfc_txpowertrackingindex = 0;
+ priv->CckPwEnl = 6;
+ priv->ScanDelay = 50;
+ priv->ResetProgress = RESET_TYPE_NORESET;
+ priv->bForcedSilentReset = 0;
+ priv->bDisableNormalResetCheck = false;
+ priv->force_reset = false;
+ memset(priv->rtllib->swcamtable,0,sizeof(SW_CAM_TABLE)*32);
+
+ memset(&priv->InterruptLog,0,sizeof(LOG_INTERRUPT_8190_T));
+ priv->RxCounter = 0;
+ priv->rtllib->wx_set_enc = 0;
+ priv->bHwRadioOff = false;
+ priv->RegRfOff = 0;
+ priv->isRFOff = false;
+ priv->bInPowerSaveMode = false;
+ priv->rtllib->RfOffReason = 0;
+ priv->RFChangeInProgress = false;
+ priv->bHwRfOffAction = 0;
+ priv->SetRFPowerStateInProgress = false;
+ priv->rtllib->PowerSaveControl.bInactivePs = true;
+ priv->rtllib->PowerSaveControl.bIPSModeBackup = false;
+ priv->rtllib->PowerSaveControl.bLeisurePs = true;
+ priv->rtllib->PowerSaveControl.bFwCtrlLPS = false;
+ priv->rtllib->LPSDelayCnt = 0;
+ priv->rtllib->sta_sleep = 0;
+ priv->rtllib->eRFPowerState = eRfOn;
+
+ priv->txpower_checkcnt = 0;
+ priv->thermal_readback_index =0;
+ priv->txpower_tracking_callback_cnt = 0;
+ priv->ccktxpower_adjustcnt_ch14 = 0;
+ priv->ccktxpower_adjustcnt_not_ch14 = 0;
+
+#if defined RTL8192SE
+ for(i = 0; i<PEER_MAX_ASSOC; i++){
+ priv->rtllib->peer_assoc_list[i]=NULL;
+ priv->rtllib->AvailableAIDTable[i] = 99;
+ }
+ priv->RATRTableBitmap = 0;
+ priv->rtllib->amsdu_in_process = 0;
+#endif
+
+ rtl8192_init_aspm(dev);
+
+ priv->rtllib->current_network.beacon_interval = DEFAULT_BEACONINTERVAL;
+ priv->rtllib->iw_mode = IW_MODE_INFRA;
+ priv->rtllib->active_scan = 1;
+ priv->rtllib->be_scan_inprogress = false;
+ priv->rtllib->modulation = RTLLIB_CCK_MODULATION | RTLLIB_OFDM_MODULATION;
+ priv->rtllib->host_encrypt = 1;
+ priv->rtllib->host_decrypt = 1;
+
+ priv->rtllib->dot11PowerSaveMode = eActive;
+#if defined (RTL8192S_WAPI_SUPPORT)
+ priv->rtllib->wapiInfo.bWapiPSK = false;
+#endif
+ priv->rtllib->fts = DEFAULT_FRAG_THRESHOLD;
+ priv->rtllib->MaxMssDensity = 0;
+ priv->rtllib->MinSpaceCfg = 0;
+
+ priv->card_type = PCI;
+
+#if defined RTL8192SE || defined RTL8192CE || defined RTL8192E
+ pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_HALT_NIC;
+ pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_CLK_REQ;
+ pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_ASPM;
+ pPSC->RegRfPsLevel |= RT_RF_LPS_LEVEL_ASPM;
+
+ pPSC->RegMaxLPSAwakeIntvl = 5;
+#endif
+
+ priv->AcmControl = 0;
+ priv->pFirmware = (rt_firmware*)vmalloc(sizeof(rt_firmware));
+ if (priv->pFirmware)
+ memset(priv->pFirmware, 0, sizeof(rt_firmware));
+
+ skb_queue_head_init(&priv->rx_queue);
+ skb_queue_head_init(&priv->skb_queue);
+
+ for(i = 0; i < MAX_QUEUE_SIZE; i++) {
+ skb_queue_head_init(&priv->rtllib->skb_waitQ [i]);
+ }
+ for(i = 0; i < MAX_QUEUE_SIZE; i++) {
+ skb_queue_head_init(&priv->rtllib->skb_aggQ [i]);
+ }
+
+}
+
+static void rtl8192_init_priv_lock(struct r8192_priv* priv)
+{
+ spin_lock_init(&priv->fw_scan_lock);
+ spin_lock_init(&priv->tx_lock);
+ spin_lock_init(&priv->irq_lock);
+ spin_lock_init(&priv->irq_th_lock);
+ spin_lock_init(&priv->rf_ps_lock);
+ spin_lock_init(&priv->ps_lock);
+ spin_lock_init(&priv->rf_lock);
+ spin_lock_init(&priv->rt_h2c_lock);
+#ifdef CONFIG_ASPM_OR_D3
+ spin_lock_init(&priv->D3_lock);
+#endif
+ sema_init(&priv->wx_sem,1);
+ sema_init(&priv->rf_sem,1);
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16))
+ sema_init(&priv->mutex, 1);
+#else
+ mutex_init(&priv->mutex);
+#endif
+}
+
+static void rtl8192_init_priv_task(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+#ifdef PF_SYNCTHREAD
+ priv->priv_wq = create_workqueue(DRV_NAME,0);
+#else
+ priv->priv_wq = create_workqueue(DRV_NAME);
+#endif
+#endif
+ INIT_WORK_RSL(&priv->reset_wq, (void*)rtl8192_restart, dev);
+#ifdef ENABLE_IPS
+ INIT_WORK_RSL(&priv->rtllib->ips_leave_wq, (void*)IPSLeave_wq, dev);
+#endif
+ INIT_DELAYED_WORK_RSL(&priv->watch_dog_wq, (void*)rtl819x_watchdog_wqcallback, dev);
+ INIT_DELAYED_WORK_RSL(&priv->txpower_tracking_wq, (void*)dm_txpower_trackingcallback, dev);
+ INIT_DELAYED_WORK_RSL(&priv->rfpath_check_wq, (void*)dm_rf_pathcheck_workitemcallback, dev);
+ INIT_DELAYED_WORK_RSL(&priv->update_beacon_wq, (void*)rtl8192_update_beacon, dev);
+ INIT_WORK_RSL(&priv->qos_activate, (void*)rtl8192_qos_activate, dev);
+#ifndef RTL8190P
+ INIT_DELAYED_WORK_RSL(&priv->rtllib->hw_wakeup_wq,(void*) rtl8192_hw_wakeup_wq, dev);
+ INIT_DELAYED_WORK_RSL(&priv->rtllib->hw_sleep_wq,(void*) rtl8192_hw_sleep_wq, dev);
+#endif
+#if defined RTL8192SE
+ INIT_DELAYED_WORK_RSL(&priv->check_hw_scan_wq, (void*)rtl8192se_check_hw_scan, dev);
+ INIT_DELAYED_WORK_RSL(&priv->hw_scan_simu_wq, (void*)rtl8192se_hw_scan_simu, dev);
+ INIT_DELAYED_WORK_RSL(&priv->start_hw_scan_wq, (void*)rtl8192se_start_hw_scan, dev);
+ INIT_DELAYED_WORK_RSL(&priv->rtllib->check_tsf_wq,(void*)rtl8192se_check_tsf_wq, dev);
+ INIT_DELAYED_WORK_RSL(&priv->rtllib->update_assoc_sta_info_wq,
+ (void*)rtl8192se_update_assoc_sta_info_wq, dev);
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ INIT_WORK_RSL(&priv->rtllib->ext_create_crypt_for_peers_wq, (void*)msh_create_crypt_for_peers_wq, dev);
+ INIT_WORK_RSL(&priv->rtllib->ext_path_sel_ops_wq,(void*) path_sel_ops_wq, dev);
+ INIT_WORK_RSL(&priv->rtllib->ext_update_extchnloffset_wq,
+ (void*) meshdev_update_ext_chnl_offset_as_client, dev);
+ INIT_DELAYED_WORK_RSL(&priv->rtllib->ext_wx_set_key_wq, (void*)ext_mesh_set_key_wq,priv->rtllib);
+ INIT_WORK_RSL(&priv->rtllib->ext_start_mesh_protocol_wq,
+ (void*) meshdev_start_mesh_protocol_wq, dev);
+#endif
+ tasklet_init(&priv->irq_rx_tasklet,
+ (void(*)(unsigned long))rtl8192_irq_rx_tasklet,
+ (unsigned long)priv);
+ tasklet_init(&priv->irq_tx_tasklet,
+ (void(*)(unsigned long))rtl8192_irq_tx_tasklet,
+ (unsigned long)priv);
+ tasklet_init(&priv->irq_prepare_beacon_tasklet,
+ (void(*)(unsigned long))rtl8192_prepare_beacon,
+ (unsigned long)priv);
+}
+
+short rtl8192_get_channel_map(struct net_device * dev)
+{
+ int i;
+
+#ifdef ENABLE_DOT11D
+ struct r8192_priv *priv = rtllib_priv(dev);
+ if ((priv->rf_chip != RF_8225) && (priv->rf_chip != RF_8256)
+ && (priv->rf_chip != RF_6052)) {
+ RT_TRACE(COMP_ERR, "%s: unknown rf chip, can't set channel map\n", __FUNCTION__);
+ return -1;
+ }
+
+ if (priv->ChannelPlan > COUNTRY_CODE_MAX) {
+ printk("rtl819x_init:Error channel plan! Set to default.\n");
+ priv->ChannelPlan= COUNTRY_CODE_FCC;
+ }
+ RT_TRACE(COMP_INIT, "Channel plan is %d\n",priv->ChannelPlan);
+ Dot11d_Init(priv->rtllib);
+#ifndef CONFIG_CRDA
+ Dot11d_Channelmap(priv->ChannelPlan, priv->rtllib);
+#endif
+#else
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int ch;
+ if(!channels){
+ DMESG("No channels, aborting");
+ return -1;
+ }
+
+ ch = channels;
+ priv->ChannelPlan = 0;
+ for (i = 1; i <= 14; i++) {
+ (priv->rtllib->channel_map)[i] = (u8)(ch & 0x01);
+ ch >>= 1;
+ }
+ priv->rtllib->IbssStartChnl= 10;
+ priv->rtllib->ibss_maxjoin_chal = 11;
+#endif
+ for (i = 1; i <= 11; i++) {
+ (priv->rtllib->active_channel_map)[i] = 1;
+ }
+ (priv->rtllib->active_channel_map)[12] = 2;
+ (priv->rtllib->active_channel_map)[13] = 2;
+
+ return 0;
+}
+
+short rtl8192_init(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ memset(&(priv->stats),0,sizeof(struct Stats));
+#ifdef CONFIG_MP
+ rtl8192_init_mp(dev);
+#endif
+
+ rtl8192_init_priv_handler(dev);
+ rtl8192_init_priv_variable(dev);
+#ifdef _RTL8192_EXT_PATCH_
+ rtl8192_init_mesh_variable(dev);
+#endif
+ rtl8192_init_priv_lock(priv);
+ rtl8192_init_priv_task(dev);
+ priv->ops->get_eeprom_size(dev);
+ priv->ops->init_adapter_variable(dev);
+ rtl8192_get_channel_map(dev);
+
+#ifdef CONFIG_CFG_80211
+ /* channel map setting for the cfg80211 style */
+ {
+ struct r8192_priv* priv = rtllib_priv(dev);
+ rtllib_set_geo(priv);
+ }
+#endif
+
+ init_hal_dm(dev);
+
+#if defined RTL8192SE || defined RTL8192CE
+ InitSwLeds(dev);
+#endif
+ setup_timer(&priv->watch_dog_timer,
+ watch_dog_timer_callback,
+ (unsigned long) dev);
+
+ setup_timer(&priv->gpio_polling_timer,
+ check_rfctrl_gpio_timer,
+ (unsigned long)dev);
+
+ rtl8192_irq_disable(dev);
+#if defined(IRQF_SHARED)
+ if (request_irq(dev->irq, (void*)rtl8192_interrupt_rsl, IRQF_SHARED, dev->name, dev))
+#else
+ if (request_irq(dev->irq, (void *)rtl8192_interrupt_rsl, SA_SHIRQ, dev->name, dev))
+#endif
+ {
+ printk("Error allocating IRQ %d",dev->irq);
+ return -1;
+ } else {
+ priv->irq=dev->irq;
+ RT_TRACE(COMP_INIT, "IRQ %d\n",dev->irq);
+ }
+
+ if (rtl8192_pci_initdescring(dev) != 0) {
+ printk("Endopoints initialization failed");
+ return -1;
+ }
+
+ return 0;
+}
+
+#ifdef RTL8192CE
+static void
+rtl8192_update_default_setting(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+#ifdef CONFIG_ASPM_OR_D3
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+#endif
+
+ priv->RegPciASPM = 3;
+
+ priv->RegHwSwRfOffD3 = 0;
+
+ priv->RegSupportPciASPM = true;
+
+ pPSC->RegRfPsLevel = 0;
+ priv->bSupportASPM = 0;
+
+
+ switch(priv->RegPciASPM)
+ {
+ case 0:
+ break;
+
+ case 1:
+ pPSC->RegRfPsLevel |= RT_RF_LPS_LEVEL_ASPM;
+ break;
+
+ case 2:
+ pPSC->RegRfPsLevel |= (RT_RF_LPS_LEVEL_ASPM | RT_RF_OFF_LEVL_CLK_REQ);
+ break;
+
+ case 3:
+ pPSC->RegRfPsLevel &= ~(RT_RF_LPS_LEVEL_ASPM);
+ pPSC->RegRfPsLevel |= (RT_RF_PS_LEVEL_ALWAYS_ASPM | RT_RF_OFF_LEVL_CLK_REQ);
+ break;
+
+ case 4:
+ pPSC->RegRfPsLevel &= ~(RT_RF_LPS_LEVEL_ASPM | RT_RF_OFF_LEVL_CLK_REQ);
+ pPSC->RegRfPsLevel |= RT_RF_PS_LEVEL_ALWAYS_ASPM;
+ break;
+ }
+
+ pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_HALT_NIC;
+
+ switch(priv->RegHwSwRfOffD3)
+ {
+ case 1:
+ if(pPSC->RegRfPsLevel & RT_RF_LPS_LEVEL_ASPM)
+ pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_ASPM;
+ break;
+
+ case 2:
+ if(pPSC->RegRfPsLevel & RT_RF_LPS_LEVEL_ASPM)
+ pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_ASPM;
+ pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_HALT_NIC;
+ break;
+
+ case 3:
+ pPSC->RegRfPsLevel |= RT_RF_OFF_LEVL_PCI_D3;
+ break;
+ }
+
+
+ switch(priv->RegSupportPciASPM)
+ {
+ case 0:
+ {
+ bool bSupportASPM = false;
+ priv->bSupportASPM = bSupportASPM;
+ }
+ break;
+
+ case 1:
+ {
+ bool bSupportASPM = true;
+ priv->bSupportASPM = bSupportASPM;
+ }
+ break;
+
+ case 2:
+ if(priv->pci_bridge_vendor == PCI_BRIDGE_VENDOR_INTEL)
+ {
+ bool bSupportASPM = true;
+ priv->bSupportASPM = bSupportASPM;
+ }
+ break;
+
+ default:
+ break;
+ }
+}
+#endif
+
+#if defined CONFIG_ASPM_OR_D3
+static void
+rtl8192_initialize_adapter_common(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+#ifdef CONFIG_ASPM_OR_D3
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+#endif
+
+#ifdef RTL8192CE
+ rtl8192_update_default_setting(dev);
+#endif
+
+#ifdef CONFIG_ASPM_OR_D3
+ if(pPSC->RegRfPsLevel & RT_RF_PS_LEVEL_ALWAYS_ASPM)
+ {
+ RT_ENABLE_ASPM(dev);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_PS_LEVEL_ALWAYS_ASPM);
+ }
+#endif
+}
+#endif
+
+/***************************************************************************
+ -------------------------------WATCHDOG STUFF---------------------------
+***************************************************************************/
+short rtl8192_is_tx_queue_empty(struct net_device *dev)
+{
+ int i=0;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ for (i=0; i<=MGNT_QUEUE; i++)
+ {
+ if ((i== TXCMD_QUEUE) || (i == HCCA_QUEUE) )
+ continue;
+ if (skb_queue_len(&(&priv->tx_ring[i])->queue) > 0){
+ printk("===>tx queue is not empty:%d, %d\n", i, skb_queue_len(&(&priv->tx_ring[i])->queue));
+ return 0;
+ }
+ }
+ return 1;
+}
+
+RESET_TYPE
+rtl819x_TxCheckStuck(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 QueueID;
+ u8 ResetThreshold = NIC_SEND_HANG_THRESHOLD_POWERSAVE;
+ bool bCheckFwTxCnt = false;
+ struct rtl8192_tx_ring *ring = NULL;
+ struct sk_buff* skb = NULL;
+ cb_desc * tcb_desc = NULL;
+ unsigned long flags = 0;
+
+#if 0
+ switch (priv->rtllib->dot11PowerSaveMode)
+ {
+ case eActive:
+ ResetThreshold = NIC_SEND_HANG_THRESHOLD_NORMAL;
+ break;
+ case eMaxPs:
+ ResetThreshold = NIC_SEND_HANG_THRESHOLD_POWERSAVE;
+ break;
+ case eFastPs:
+ ResetThreshold = NIC_SEND_HANG_THRESHOLD_POWERSAVE;
+ break;
+ default:
+ break;
+ }
+#else
+ switch (priv->rtllib->ps)
+ {
+ case RTLLIB_PS_DISABLED:
+ ResetThreshold = NIC_SEND_HANG_THRESHOLD_NORMAL;
+ break;
+ case (RTLLIB_PS_MBCAST|RTLLIB_PS_UNICAST):
+ ResetThreshold = NIC_SEND_HANG_THRESHOLD_POWERSAVE;
+ break;
+ default:
+ ResetThreshold = NIC_SEND_HANG_THRESHOLD_POWERSAVE;
+ break;
+ }
+#endif
+ spin_lock_irqsave(&priv->irq_th_lock,flags);
+ for(QueueID = 0; QueueID < MAX_TX_QUEUE; QueueID++)
+ {
+
+
+ if(QueueID == TXCMD_QUEUE)
+ continue;
+#ifdef RTL8192CE
+ if((QueueID == 8) || (QueueID == 5))
+ continue;
+#endif
+
+ ring = &priv->tx_ring[QueueID];
+
+ if(skb_queue_len(&ring->queue) == 0)
+ continue;
+ else
+ {
+ skb = (&ring->queue)->next;
+ tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
+ tcb_desc->nStuckCount++;
+ bCheckFwTxCnt = true;
+#if defined RTL8192SE || defined RTL8192CE
+ if(tcb_desc->nStuckCount > ResetThreshold)
+ {
+ RT_TRACE( COMP_RESET, "TxCheckStuck(): Need silent reset because nStuckCount > ResetThreshold.\n" );
+ spin_unlock_irqrestore(&priv->irq_th_lock,flags);
+ return RESET_TYPE_SILENT;
+ }
+ bCheckFwTxCnt = false;
+ #endif
+ }
+ }
+ spin_unlock_irqrestore(&priv->irq_th_lock,flags);
+
+ if(bCheckFwTxCnt) {
+ if (priv->ops->TxCheckStuckHandler(dev))
+ {
+ RT_TRACE(COMP_RESET, "TxCheckStuck(): Fw indicates no Tx condition! \n");
+ return RESET_TYPE_SILENT;
+ }
+ }
+
+ return RESET_TYPE_NORESET;
+}
+
+RESET_TYPE rtl819x_RxCheckStuck(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(priv->ops->RxCheckStuckHandler(dev))
+ {
+ RT_TRACE(COMP_RESET, "RxStuck Condition\n");
+ return RESET_TYPE_SILENT;
+ }
+
+ return RESET_TYPE_NORESET;
+}
+
+RESET_TYPE
+rtl819x_ifcheck_resetornot(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ RESET_TYPE TxResetType = RESET_TYPE_NORESET;
+ RESET_TYPE RxResetType = RESET_TYPE_NORESET;
+ RT_RF_POWER_STATE rfState;
+
+ rfState = priv->rtllib->eRFPowerState;
+
+ if(rfState == eRfOn)
+ TxResetType = rtl819x_TxCheckStuck(dev);
+
+ if( rfState == eRfOn &&
+ (priv->rtllib->iw_mode == IW_MODE_INFRA) &&
+ (priv->rtllib->state == RTLLIB_LINKED)) {
+
+ RxResetType = rtl819x_RxCheckStuck(dev);
+ }
+
+ RT_TRACE(COMP_RESET,"%s(): TxResetType is %d, RxResetType is %d\n",__FUNCTION__,TxResetType,RxResetType);
+ if(TxResetType==RESET_TYPE_NORMAL || RxResetType==RESET_TYPE_NORMAL){
+ printk("%s(): TxResetType is %d, RxResetType is %d\n",__FUNCTION__,TxResetType,RxResetType);
+ return RESET_TYPE_NORMAL;
+ } else if(TxResetType==RESET_TYPE_SILENT || RxResetType==RESET_TYPE_SILENT){
+ printk("%s(): TxResetType is %d, RxResetType is %d\n",__FUNCTION__,TxResetType,RxResetType);
+ return RESET_TYPE_SILENT;
+ } else {
+ return RESET_TYPE_NORESET;
+ }
+
+}
+
+void rtl819x_ifsilentreset(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 reset_times = 0;
+ int reset_status = 0;
+ struct rtllib_device *ieee = priv->rtllib;
+ unsigned long flag;
+#ifdef _RTL8192_EXT_PATCH_
+ bool wlansilentreset = false,meshsilentreset = false;
+ u8 backup_channel_wlan = 1,backup_channel_mesh = 1;
+ u8 updateBW = 0;
+ u8 bserverHT = 0;
+ int i=0;
+ u8 IsPortal = 0;
+#endif
+
+ if(priv->ResetProgress==RESET_TYPE_NORESET) {
+
+ RT_TRACE(COMP_RESET,"=========>Reset progress!! \n");
+
+ priv->ResetProgress = RESET_TYPE_SILENT;
+ spin_lock_irqsave(&priv->rf_ps_lock,flag);
+ if(priv->RFChangeInProgress)
+ {
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flag);
+ goto END;
+ }
+ priv->RFChangeInProgress = true;
+ priv->bResetInProgress = true;
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flag);
+RESET_START:
+ down(&priv->wx_sem);
+#ifdef ENABLE_LPS
+ if(priv->rtllib->state == RTLLIB_LINKED)
+ LeisurePSLeave(dev);
+#endif
+ if(IS_NIC_DOWN(priv))
+ {
+ RT_TRACE(COMP_ERR,"%s():the driver is not up! return\n",__FUNCTION__);
+ up(&priv->wx_sem);
+ return ;
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if(priv->up == 1)
+ {
+ printk("================>wlansilentreset is true\n");
+ wlansilentreset = true;
+ priv->up = 0;
+ }
+ if(priv->mesh_up == 1)
+ {
+ printk("================>meshsilentreset is true\n");
+ meshsilentreset = true;
+ priv->mesh_up = 0;
+ }
+#else
+ priv->up = 0;
+#endif
+ RT_TRACE(COMP_RESET,"%s():======>start to down the driver\n",__FUNCTION__);
+ mdelay(1000);
+ RT_TRACE(COMP_RESET,"%s():111111111111111111111111======>start to down the driver\n",__FUNCTION__);
+ if(!netif_queue_stopped(dev))
+ netif_stop_queue(dev);
+#if !(defined RTL8192SE || defined RTL8192CE)
+ dm_backup_dynamic_mechanism_state(dev);
+#endif
+ rtl8192_irq_disable(dev);
+ del_timer_sync(&priv->watch_dog_timer);
+ rtl8192_cancel_deferred_work(priv);
+ deinit_hal_dm(dev);
+ rtllib_stop_scan_syncro(ieee);
+#ifdef _RTL8192_EXT_PATCH_
+ backup_channel_wlan = ieee->current_network.channel;
+ backup_channel_mesh = ieee->current_mesh_network.channel;
+ if((ieee->state == RTLLIB_LINKED) && ((ieee->iw_mode == IW_MODE_INFRA) || (ieee->iw_mode == IW_MODE_ADHOC)))
+ {
+ printk("====>down, infra or adhoc\n");
+ SEM_DOWN_IEEE_WX(&ieee->wx_sem);
+ printk("ieee->state is RTLLIB_LINKED\n");
+ rtllib_stop_send_beacons(priv->rtllib);
+ del_timer_sync(&ieee->associate_timer);
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ cancel_delayed_work(&ieee->associate_retry_wq);
+#endif
+ rtllib_stop_scan(ieee);
+ netif_carrier_off(dev);
+ SEM_UP_IEEE_WX(&ieee->wx_sem);
+ }
+ else if((ieee->iw_mode == IW_MODE_MESH) && (ieee->mesh_state == RTLLIB_MESH_LINKED))
+ {
+ if(priv->mshobj->ext_patch_r819x_wx_get_AsPortal)
+ priv->mshobj->ext_patch_r819x_wx_get_AsPortal(priv, &IsPortal);
+ if((!ieee->only_mesh) && (ieee->state == RTLLIB_LINKED)){
+ printk("====>down, wlan server\n");
+ SEM_DOWN_IEEE_WX(&ieee->wx_sem);
+ printk("ieee->state is RTLLIB_LINKED\n");
+ rtllib_stop_send_beacons(priv->rtllib);
+ del_timer_sync(&ieee->associate_timer);
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ cancel_delayed_work(&ieee->associate_retry_wq);
+#endif
+ rtllib_stop_scan(ieee);
+ netif_carrier_off(dev);
+ SEM_UP_IEEE_WX(&ieee->wx_sem);
+ if(priv->mshobj->ext_patch_rtllib_stop_protocol)
+ priv->mshobj->ext_patch_rtllib_stop_protocol(ieee,1);
+ }
+ else if((!ieee->only_mesh) && (ieee->state != RTLLIB_LINKED)){
+ printk("====>down, wlan server\n");
+ SEM_DOWN_IEEE_WX(&ieee->wx_sem);
+ printk("ieee->state is Not RTLLIB_LINKED\n");
+ rtllib_stop_send_beacons(priv->rtllib);
+ rtllib_stop_scan(ieee);
+ netif_carrier_off(dev);
+ SEM_UP_IEEE_WX(&ieee->wx_sem);
+ if(priv->mshobj->ext_patch_rtllib_stop_protocol)
+ priv->mshobj->ext_patch_rtllib_stop_protocol(ieee,1);
+ }
+ else if(ieee->only_mesh && IsPortal)
+ {
+ printk("====>down, eth0 server\n");
+ if(priv->mshobj->ext_patch_rtllib_stop_protocol)
+ priv->mshobj->ext_patch_rtllib_stop_protocol(ieee,1);
+ }
+ else if(ieee->only_mesh && !IsPortal)
+ {
+ printk("====>down, p2p or client\n");
+ if(priv->mshobj->ext_patch_rtllib_stop_protocol)
+ priv->mshobj->ext_patch_rtllib_stop_protocol(ieee,1);
+ }
+ else{
+ printk("====>down, no link\n");
+ if(priv->mshobj->ext_patch_rtllib_stop_protocol)
+ priv->mshobj->ext_patch_rtllib_stop_protocol(ieee,1);
+ }
+ }
+ else{
+ printk("====>down, no link\n");
+ printk("ieee->state is NOT LINKED\n");
+ rtllib_softmac_stop_protocol(priv->rtllib,0,true);
+ }
+#else
+ if(ieee->state == RTLLIB_LINKED)
+ {
+ SEM_DOWN_IEEE_WX(&ieee->wx_sem);
+ printk("ieee->state is RTLLIB_LINKED\n");
+ rtllib_stop_send_beacons(priv->rtllib);
+ del_timer_sync(&ieee->associate_timer);
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ cancel_delayed_work(&ieee->associate_retry_wq);
+#endif
+ rtllib_stop_scan(ieee);
+ netif_carrier_off(dev);
+ SEM_UP_IEEE_WX(&ieee->wx_sem);
+ }
+ else{
+ printk("ieee->state is NOT LINKED\n");
+ rtllib_softmac_stop_protocol(priv->rtllib,true);
+ }
+#endif
+#ifdef RTL8190P
+ priv->ops->stop_adapter(dev, true);
+#endif
+ up(&priv->wx_sem);
+ RT_TRACE(COMP_RESET,"%s():<==========down process is finished\n",__FUNCTION__);
+ RT_TRACE(COMP_RESET,"%s():===========>start to up the driver\n",__FUNCTION__);
+#ifdef _RTL8192_EXT_PATCH_
+ if(wlansilentreset == true){
+ reset_status = _rtl8192_up(dev,true);
+ }
+ if(meshsilentreset == true)
+ reset_status = meshdev_up(ieee->meshdev,true);
+#else
+ reset_status = _rtl8192_up(dev,true);
+#endif
+ RT_TRACE(COMP_RESET,"%s():<===========up process is finished\n",__FUNCTION__);
+ if(reset_status == -1)
+ {
+ if(reset_times < 3)
+ {
+ reset_times++;
+ goto RESET_START;
+ }
+ else
+ {
+ RT_TRACE(COMP_ERR," ERR!!! %s(): Reset Failed!!\n",__FUNCTION__);
+ }
+ }
+ ieee->is_silent_reset = 1;
+ spin_lock_irqsave(&priv->rf_ps_lock,flag);
+ priv->RFChangeInProgress = false;
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flag);
+ EnableHWSecurityConfig8192(dev);
+#ifdef _RTL8192_EXT_PATCH_
+ ieee->current_network.channel = backup_channel_wlan;
+ ieee->current_mesh_network.channel = backup_channel_mesh;
+#endif
+ if(ieee->state == RTLLIB_LINKED && ieee->iw_mode == IW_MODE_INFRA)
+ {
+ ieee->set_chan(ieee->dev, ieee->current_network.channel);
+
+ queue_work_rsl(ieee->wq, &ieee->associate_complete_wq);
+
+ }
+ else if(ieee->state == RTLLIB_LINKED && ieee->iw_mode == IW_MODE_ADHOC)
+ {
+ ieee->set_chan(ieee->dev, ieee->current_network.channel);
+ ieee->link_change(ieee->dev);
+
+ notify_wx_assoc_event(ieee);
+
+ rtllib_start_send_beacons(ieee);
+
+ if (ieee->data_hard_resume)
+ ieee->data_hard_resume(ieee->dev);
+ netif_carrier_on(ieee->dev);
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ else if (ieee->iw_mode == IW_MODE_MESH)
+ {
+ if(!ieee->only_mesh)
+ {
+ printk("===>up, wlan0 server\n");
+ ieee->set_chan(ieee->dev, ieee->current_network.channel);
+
+ queue_work_rsl(ieee->wq, &ieee->associate_complete_wq);
+ if (ieee->current_mesh_network.beacon_interval == 0)
+ ieee->current_mesh_network.beacon_interval = 100;
+ ieee->mesh_state = RTLLIB_MESH_LINKED;
+ ieee->link_change(ieee->dev);
+ if(priv->mshobj->ext_patch_rtllib_start_protocol)
+ priv->mshobj->ext_patch_rtllib_start_protocol(ieee);
+ }
+ else if(ieee->only_mesh && IsPortal)
+ {
+ printk("===>up, eth0 server\n");
+ if (ieee->current_mesh_network.beacon_interval == 0)
+ ieee->current_mesh_network.beacon_interval = 100;
+ ieee->mesh_state = RTLLIB_MESH_LINKED;
+ ieee->link_change(ieee->dev);
+ if(priv->mshobj->ext_patch_rtllib_start_protocol)
+ priv->mshobj->ext_patch_rtllib_start_protocol(ieee);
+ ieee->current_network.channel = ieee->current_mesh_network.channel;
+ if(ieee->pHTInfo->bCurBW40MHz)
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ else
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ }
+ else if(ieee->only_mesh && !IsPortal)
+ {
+ printk("===>up, p2p or client\n");
+ if (ieee->current_mesh_network.beacon_interval == 0)
+ ieee->current_mesh_network.beacon_interval = 100;
+ ieee->mesh_state = RTLLIB_MESH_LINKED;
+ ieee->link_change(ieee->dev);
+ if(priv->mshobj->ext_patch_rtllib_start_protocol)
+ priv->mshobj->ext_patch_rtllib_start_protocol(ieee);
+ if(ieee->p2pmode){
+ printk("===>up, p2p\n");
+ ieee->current_network.channel = ieee->current_mesh_network.channel;
+ if(ieee->pHTInfo->bCurBW40MHz)
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ else
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ }else{
+ printk("===>up, client\n");
+ updateBW = priv->mshobj->ext_patch_r819x_wx_update_beacon(ieee->dev,&bserverHT);
+ printk("$$$$$$ Cur_networ.chan=%d, cur_mesh_net.chan=%d,bserverHT=%d\n",
+ ieee->current_network.channel,ieee->current_mesh_network.channel,bserverHT);
+ if (updateBW == 1) {
+ if (bserverHT == 0) {
+ printk("===>server is not HT supported,set 20M\n");
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT);
+ } else {
+ printk("===>updateBW is 1,bCurBW40MHz is %d,ieee->serverExtChlOffset is %d\n",
+ ieee->pHTInfo->bCurBW40MHz,ieee->serverExtChlOffset);
+ if (ieee->pHTInfo->bCurBW40MHz)
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, ieee->serverExtChlOffset);
+ else
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, ieee->serverExtChlOffset);
+ }
+ } else {
+ printk("===>there is no same hostname server, ERR!!!\n");
+ }
+ }
+ }
+
+ }
+#endif
+#ifdef TO_DO_LIST
+ else if(Adapter->MgntInfo.mActingAsAp)
+ {
+ AP_StartApRequest((PVOID)Adapter);
+ Adapter->HalFunc.ResetHalRATRTableHandler(Adapter);
+ }
+#endif
+
+#ifdef TO_DO_LIST
+ if(Adapter->MgntInfo.mActingAsAp)
+ AP_CamRestoreAllEntry(Adapter);
+ else
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ if(wlansilentreset){
+ printk("==========>wlansilentreset\n");
+ CamRestoreEachIFEntry(dev,0);
+ }
+ if(meshsilentreset){
+ printk("==========>meshsilentreset\n");
+ CamRestoreEachIFEntry(dev,1);
+ for(i=0;i<8;i++)
+ {
+ if(ieee->swmeshratrtable[i].bused == true)
+ {
+ printk("====>restore ratr table: index=%d,value=%x\n",i,ieee->swmeshratrtable[i].ratr_value);
+ write_nic_dword(dev,ARFR0+i*4,ieee->swmeshratrtable[i].ratr_value);
+ }
+ }
+ }
+#else
+ CamRestoreAllEntry(dev);
+#endif
+#if !(defined RTL8192SE || defined RTL8192CE)
+ dm_restore_dynamic_mechanism_state(dev);
+#endif
+END:
+ priv->ResetProgress = RESET_TYPE_NORESET;
+ priv->reset_count++;
+
+ priv->bForcedSilentReset =false;
+ priv->bResetInProgress = false;
+
+#ifdef RTL8190P
+ write_nic_byte(dev, UFWP, 1);
+#endif
+ RT_TRACE(COMP_RESET, "Reset finished!! ====>[%d]\n", priv->reset_count);
+ }
+}
+
+void rtl819x_update_rxcounts(struct r8192_priv *priv,
+ u32 *TotalRxBcnNum,
+ u32 *TotalRxDataNum)
+{
+ u16 SlotIndex;
+ u8 i;
+
+ *TotalRxBcnNum = 0;
+ *TotalRxDataNum = 0;
+
+ SlotIndex = (priv->rtllib->LinkDetectInfo.SlotIndex++)%(priv->rtllib->LinkDetectInfo.SlotNum);
+ priv->rtllib->LinkDetectInfo.RxBcnNum[SlotIndex] = priv->rtllib->LinkDetectInfo.NumRecvBcnInPeriod;
+ priv->rtllib->LinkDetectInfo.RxDataNum[SlotIndex] = priv->rtllib->LinkDetectInfo.NumRecvDataInPeriod;
+ for (i = 0; i < priv->rtllib->LinkDetectInfo.SlotNum; i++) {
+ *TotalRxBcnNum += priv->rtllib->LinkDetectInfo.RxBcnNum[i];
+ *TotalRxDataNum += priv->rtllib->LinkDetectInfo.RxDataNum[i];
+ }
+}
+
+
+void rtl819x_watchdog_wqcallback(void *data)
+{
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20))
+ struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,watch_dog_wq);
+ struct net_device *dev = priv->rtllib->dev;
+#else
+ struct net_device *dev = (struct net_device *)data;
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+ struct rtllib_device* ieee = priv->rtllib;
+ RESET_TYPE ResetType = RESET_TYPE_NORESET;
+ static u8 check_reset_cnt = 0;
+#ifdef _RTL8192_EXT_PATCH_
+ static u8 last_reset_count = 0;
+#endif
+ unsigned long flags;
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+ bool bBusyTraffic = false;
+#ifdef ENABLE_LPS
+ bool bEnterPS = false;
+#endif
+ if(IS_NIC_DOWN(priv) || (priv->bHwRadioOff == true))
+ return;
+
+ if(priv->rtllib->state >= RTLLIB_LINKED)
+ {
+ if(priv->rtllib->CntAfterLink<2)
+ priv->rtllib->CntAfterLink++;
+ }
+ else
+ {
+ priv->rtllib->CntAfterLink = 0;
+ }
+
+ hal_dm_watchdog(dev);
+
+#ifdef ENABLE_IPS
+ if(rtllib_act_scanning(priv->rtllib,false) == false){
+ if((ieee->iw_mode == IW_MODE_INFRA) && (ieee->state == RTLLIB_NOLINK) &&\
+ (ieee->eRFPowerState == eRfOn)&&!ieee->is_set_key &&\
+ (!ieee->proto_stoppping) && !ieee->wx_set_enc
+#ifdef CONFIG_RTLWIFI_DEBUGFS
+ && (!priv->debug->hw_holding)
+#endif
+ ){
+ if((ieee->PowerSaveControl.ReturnPoint == IPS_CALLBACK_NONE)&&
+ (!ieee->bNetPromiscuousMode))
+ {
+ RT_TRACE(COMP_PS, "====================>haha:IPSEnter()\n");
+ IPSEnter(dev);
+ }
+ }
+ }
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ MgntLinkKeepAlive(priv);
+#endif
+ {
+ if((ieee->state == RTLLIB_LINKED) && (ieee->iw_mode == IW_MODE_INFRA) && (!ieee->bNetPromiscuousMode))
+ {
+ if( ieee->LinkDetectInfo.NumRxOkInPeriod> 100 ||
+ ieee->LinkDetectInfo.NumTxOkInPeriod> 100 ) {
+ bBusyTraffic = true;
+ }
+
+#ifdef ENABLE_LPS
+ if( ((ieee->LinkDetectInfo.NumRxUnicastOkInPeriod + ieee->LinkDetectInfo.NumTxOkInPeriod) > 8 ) ||
+ (ieee->LinkDetectInfo.NumRxUnicastOkInPeriod > 2) )
+ {
+ bEnterPS= false;
+ }
+ else
+ {
+ bEnterPS= true;
+ }
+
+ if (ieee->current_network.beacon_interval < 95)
+ bEnterPS= false;
+
+ if(bEnterPS)
+ {
+ LeisurePSEnter(dev);
+ }
+ else
+ {
+ LeisurePSLeave(dev);
+ }
+#endif
+
+ }
+ else
+ {
+#ifdef ENABLE_LPS
+ RT_TRACE(COMP_LPS,"====>no link LPS leave\n");
+ LeisurePSLeave(dev);
+#endif
+ }
+
+ ieee->LinkDetectInfo.NumRxOkInPeriod = 0;
+ ieee->LinkDetectInfo.NumTxOkInPeriod = 0;
+ ieee->LinkDetectInfo.NumRxUnicastOkInPeriod = 0;
+ ieee->LinkDetectInfo.bBusyTraffic = bBusyTraffic;
+ }
+
+ {
+#if defined RTL8192SE
+ if(priv->rtllib->iw_mode == IW_MODE_ADHOC)
+ IbssAgeFunction(ieee);
+#endif
+
+ if(ieee->state == RTLLIB_LINKED && ieee->iw_mode == IW_MODE_INFRA)
+ {
+ u32 TotalRxBcnNum = 0;
+ u32 TotalRxDataNum = 0;
+
+ rtl819x_update_rxcounts(priv, &TotalRxBcnNum, &TotalRxDataNum);
+
+ if((TotalRxBcnNum+TotalRxDataNum) == 0)
+ priv->check_roaming_cnt ++;
+ else
+ priv->check_roaming_cnt = 0;
+
+
+ if(priv->check_roaming_cnt > 0)
+ {
+ if( ieee->eRFPowerState == eRfOff)
+ RT_TRACE(COMP_ERR,"========>%s()\n",__FUNCTION__);
+
+ printk("===>%s(): AP is power off,chan:%d, connect another one\n",__FUNCTION__, priv->chan);
+
+ ieee->state = RTLLIB_ASSOCIATING;
+
+#if defined(RTL8192S_WAPI_SUPPORT)
+ if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable))
+ WapiReturnOneStaInfo(ieee,priv->rtllib->current_network.bssid,0);
+#endif
+ RemovePeerTS(priv->rtllib,priv->rtllib->current_network.bssid);
+ ieee->is_roaming = true;
+ ieee->is_set_key = false;
+ ieee->link_change(dev);
+ if(ieee->LedControlHandler)
+ ieee->LedControlHandler(ieee->dev, LED_CTL_START_TO_LINK);
+
+ notify_wx_assoc_event(ieee);
+
+ queue_delayed_work_rsl(ieee->wq, &ieee->associate_procedure_wq, 0);
+
+ priv->check_roaming_cnt = 0;
+ }
+ }
+ ieee->LinkDetectInfo.NumRecvBcnInPeriod=0;
+ ieee->LinkDetectInfo.NumRecvDataInPeriod=0;
+
+ }
+
+ spin_lock_irqsave(&priv->tx_lock,flags);
+ if((check_reset_cnt++ >= 3) && (!ieee->is_roaming) &&
+ (!priv->RFChangeInProgress) && (!pPSC->bSwRfProcessing))
+ {
+ ResetType = rtl819x_ifcheck_resetornot(dev);
+#ifdef _RTL8192_EXT_PATCH_
+ if(check_reset_cnt == 0xFF)
+#endif
+ check_reset_cnt = 3;
+ }
+ spin_unlock_irqrestore(&priv->tx_lock,flags);
+
+ if(!priv->bDisableNormalResetCheck && ResetType == RESET_TYPE_NORMAL)
+ {
+ priv->ResetProgress = RESET_TYPE_NORMAL;
+ RT_TRACE(COMP_RESET,"%s(): NOMAL RESET\n",__FUNCTION__);
+ return;
+ }
+
+#ifdef _RTL8192_EXT_PATCH_
+ if( ((priv->force_reset) || (!priv->bDisableNormalResetCheck && ResetType==RESET_TYPE_SILENT)))
+ {
+ if((check_reset_cnt != (last_reset_count + 1)) && !priv->force_reset){
+ printk("=======================>%s: Resume firmware\n", __FUNCTION__);
+ r8192se_resume_firm(dev);
+ last_reset_count = check_reset_cnt;
+ }else{
+ printk("=======================>%s: Silent Reset\n", __FUNCTION__);
+ rtl819x_ifsilentreset(dev);
+ }
+ }
+#else
+ if( ((priv->force_reset) || (!priv->bDisableNormalResetCheck && ResetType==RESET_TYPE_SILENT)))
+ {
+ rtl819x_ifsilentreset(dev);
+ }
+#endif
+ priv->force_reset = false;
+ priv->bForcedSilentReset = false;
+ priv->bResetInProgress = false;
+ RT_TRACE(COMP_TRACE, " <==RtUsbCheckForHangWorkItemCallback()\n");
+
+}
+
+void watch_dog_timer_callback(unsigned long data)
+{
+ struct r8192_priv *priv = rtllib_priv((struct net_device *) data);
+ queue_delayed_work_rsl(priv->priv_wq,&priv->watch_dog_wq,0);
+ mod_timer(&priv->watch_dog_timer, jiffies + MSECS(RTLLIB_WATCH_DOG_TIME));
+}
+
+/****************************************************************************
+ ---------------------------- NIC TX/RX STUFF---------------------------
+*****************************************************************************/
+void rtl8192_rx_enable(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ priv->ops->rx_enable(dev);
+}
+
+void rtl8192_tx_enable(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ priv->ops->tx_enable(dev);
+
+ rtllib_reset_queue(priv->rtllib);
+}
+
+
+static void rtl8192_free_rx_ring(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int i,rx_queue_idx;
+
+ for(rx_queue_idx = 0; rx_queue_idx < MAX_RX_QUEUE; rx_queue_idx ++){
+ for (i = 0; i < priv->rxringcount; i++) {
+ struct sk_buff *skb = priv->rx_buf[rx_queue_idx][i];
+ if (!skb)
+ continue;
+
+ pci_unmap_single(priv->pdev,
+ *((dma_addr_t *)skb->cb),
+ priv->rxbuffersize, PCI_DMA_FROMDEVICE);
+ kfree_skb(skb);
+ }
+
+ pci_free_consistent(priv->pdev, sizeof(*priv->rx_ring[rx_queue_idx]) * priv->rxringcount,
+ priv->rx_ring[rx_queue_idx], priv->rx_ring_dma[rx_queue_idx]);
+ priv->rx_ring[rx_queue_idx] = NULL;
+ }
+}
+
+static void rtl8192_free_tx_ring(struct net_device *dev, unsigned int prio)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtl8192_tx_ring *ring = &priv->tx_ring[prio];
+
+ while (skb_queue_len(&ring->queue)) {
+ tx_desc *entry = &ring->desc[ring->idx];
+ struct sk_buff *skb = __skb_dequeue(&ring->queue);
+
+ pci_unmap_single(priv->pdev, le32_to_cpu(entry->TxBuffAddr),
+ skb->len, PCI_DMA_TODEVICE);
+ kfree_skb(skb);
+ ring->idx = (ring->idx + 1) % ring->entries;
+ }
+
+ pci_free_consistent(priv->pdev, sizeof(*ring->desc)*ring->entries,
+ ring->desc, ring->dma);
+ ring->desc = NULL;
+}
+
+void rtl8192_data_hard_stop(struct net_device *dev)
+{
+ #if 0
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ priv->dma_poll_mask |= (1<<TX_DMA_STOP_LOWPRIORITY_SHIFT);
+ rtl8192_set_mode(dev,EPROM_CMD_CONFIG);
+ write_nic_byte(dev,TX_DMA_POLLING,priv->dma_poll_mask);
+ rtl8192_set_mode(dev,EPROM_CMD_NORMAL);
+ #endif
+}
+
+
+void rtl8192_data_hard_resume(struct net_device *dev)
+{
+ #if 0
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ priv->dma_poll_mask &= ~(1<<TX_DMA_STOP_LOWPRIORITY_SHIFT);
+ rtl8192_set_mode(dev,EPROM_CMD_CONFIG);
+ write_nic_byte(dev,TX_DMA_POLLING,priv->dma_poll_mask);
+ rtl8192_set_mode(dev,EPROM_CMD_NORMAL);
+ #endif
+}
+
+void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, int rate)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ int ret;
+ cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
+ u8 queue_index = tcb_desc->queue_index;
+
+ if((priv->rtllib->eRFPowerState == eRfOff) || IS_NIC_DOWN(priv) || priv->bResetInProgress){
+ kfree_skb(skb);
+ return;
+ }
+
+ assert(queue_index != TXCMD_QUEUE);
+
+
+ memcpy((unsigned char *)(skb->cb),&dev,sizeof(dev));
+#if 0
+ tcb_desc->RATRIndex = 7;
+ tcb_desc->bTxDisableRateFallBack = 1;
+ tcb_desc->bTxUseDriverAssingedRate = 1;
+ tcb_desc->bTxEnableFwCalcDur = 1;
+#endif
+ skb_push(skb, priv->rtllib->tx_headroom);
+ ret = rtl8192_tx(dev, skb);
+ if(ret != 0) {
+ kfree_skb(skb);
+ };
+
+ if(queue_index!=MGNT_QUEUE) {
+ priv->rtllib->stats.tx_bytes+=(skb->len - priv->rtllib->tx_headroom);
+ priv->rtllib->stats.tx_packets++;
+ }
+
+
+ return;
+}
+
+int rtl8192_hard_start_xmit(struct sk_buff *skb,struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ int ret;
+ cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
+ u8 queue_index = tcb_desc->queue_index;
+
+ if(queue_index != TXCMD_QUEUE){
+ if((priv->rtllib->eRFPowerState == eRfOff) ||IS_NIC_DOWN(priv) || priv->bResetInProgress){
+ kfree_skb(skb);
+ return 0;
+ }
+ }
+
+ memcpy((unsigned char *)(skb->cb),&dev,sizeof(dev));
+ if(queue_index == TXCMD_QUEUE) {
+ rtl8192_tx_cmd(dev, skb);
+ ret = 0;
+ return ret;
+ } else {
+ tcb_desc->RATRIndex = 7;
+ tcb_desc->bTxDisableRateFallBack = 1;
+ tcb_desc->bTxUseDriverAssingedRate = 1;
+ tcb_desc->bTxEnableFwCalcDur = 1;
+ skb_push(skb, priv->rtllib->tx_headroom);
+ ret = rtl8192_tx(dev, skb);
+ if(ret != 0) {
+ kfree_skb(skb);
+ };
+ }
+
+
+
+ return ret;
+
+}
+
+void rtl8192_tx_isr(struct net_device *dev, int prio)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ struct rtl8192_tx_ring *ring = &priv->tx_ring[prio];
+
+ while (skb_queue_len(&ring->queue)) {
+ tx_desc *entry = &ring->desc[ring->idx];
+ struct sk_buff *skb;
+
+ if(prio != BEACON_QUEUE) {
+ if(entry->OWN)
+ return;
+ ring->idx = (ring->idx + 1) % ring->entries;
+ }
+
+ skb = __skb_dequeue(&ring->queue);
+ pci_unmap_single(priv->pdev, le32_to_cpu(entry->TxBuffAddr),
+ skb->len, PCI_DMA_TODEVICE);
+
+ kfree_skb(skb);
+ }
+ if(prio == MGNT_QUEUE)
+ ;
+ if(prio != BEACON_QUEUE) {
+ tasklet_schedule(&priv->irq_tx_tasklet);
+ }
+
+}
+
+void rtl8192_tx_cmd(struct net_device *dev, struct sk_buff *skb)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtl8192_tx_ring *ring;
+ tx_desc_cmd* entry;
+ unsigned int idx;
+ cb_desc *tcb_desc;
+ unsigned long flags;
+
+ spin_lock_irqsave(&priv->irq_th_lock,flags);
+ ring = &priv->tx_ring[TXCMD_QUEUE];
+
+ idx = (ring->idx + skb_queue_len(&ring->queue)) % ring->entries;
+ entry = (tx_desc_cmd*) &ring->desc[idx];
+
+ tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
+
+ priv->ops->tx_fill_cmd_descriptor(dev, entry, tcb_desc, skb);
+
+ __skb_queue_tail(&ring->queue, skb);
+ spin_unlock_irqrestore(&priv->irq_th_lock,flags);
+
+ return;
+}
+
+short rtl8192_tx(struct net_device *dev, struct sk_buff* skb)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtl8192_tx_ring *ring;
+ unsigned long flags;
+ cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
+ tx_desc *pdesc = NULL;
+ struct rtllib_hdr_1addr * header = NULL;
+ u16 fc=0, type=0,stype=0;
+ bool multi_addr=false,broad_addr=false,uni_addr=false;
+ u8* pda_addr = NULL;
+ int idx;
+ u32 fwinfo_size = 0;
+
+ if(priv->bdisable_nic){
+ RT_TRACE(COMP_ERR,"%s: ERR!! Nic is disabled! Can't tx packet len=%d qidx=%d!!!\n", __FUNCTION__, skb->len, tcb_desc->queue_index);
+ return skb->len;
+ }
+
+ priv->rtllib->bAwakePktSent = true;
+
+#if defined RTL8192SE || defined RTL8192CE
+ fwinfo_size = 0;
+#else
+ fwinfo_size = sizeof(TX_FWINFO_8190PCI);
+#endif
+
+ header = (struct rtllib_hdr_1addr *)(((u8*)skb->data) + fwinfo_size);
+ fc = header->frame_ctl;
+ type = WLAN_FC_GET_TYPE(fc);
+ stype = WLAN_FC_GET_STYPE(fc);
+ pda_addr = header->addr1;
+
+ if(is_multicast_ether_addr(pda_addr))
+ multi_addr = true;
+ else if(is_broadcast_ether_addr(pda_addr))
+ broad_addr = true;
+ else {
+#ifdef _RTL8192_EXT_PATCH_
+ priv->NumTxUnicast++;
+#endif
+ uni_addr = true;
+ }
+
+ if(uni_addr)
+ priv->stats.txbytesunicast += skb->len - fwinfo_size;
+ else if(multi_addr)
+ priv->stats.txbytesmulticast += skb->len - fwinfo_size;
+ else
+ priv->stats.txbytesbroadcast += skb->len - fwinfo_size;
+
+ spin_lock_irqsave(&priv->irq_th_lock,flags);
+ ring = &priv->tx_ring[tcb_desc->queue_index];
+ if (tcb_desc->queue_index != BEACON_QUEUE) {
+ idx = (ring->idx + skb_queue_len(&ring->queue)) % ring->entries;
+ } else {
+ idx = 0;
+ }
+
+ pdesc = &ring->desc[idx];
+ if((pdesc->OWN == 1) && (tcb_desc->queue_index != BEACON_QUEUE)) {
+ RT_TRACE(COMP_ERR,"No more TX desc@%d, ring->idx = %d,idx = %d, skblen = 0x%x", \
+ tcb_desc->queue_index,ring->idx, idx,skb->len);
+ spin_unlock_irqrestore(&priv->irq_th_lock,flags);
+ return skb->len;
+ }
+
+ if(tcb_desc->queue_index == MGNT_QUEUE)
+ {
+ }
+
+ if(type == RTLLIB_FTYPE_DATA){
+ if(priv->rtllib->LedControlHandler)
+ priv->rtllib->LedControlHandler(dev, LED_CTL_TX);
+ }
+ priv->ops->tx_fill_descriptor(dev, pdesc, tcb_desc, skb);
+ __skb_queue_tail(&ring->queue, skb);
+ pdesc->OWN = 1;
+ spin_unlock_irqrestore(&priv->irq_th_lock,flags);
+ dev->trans_start = jiffies;
+
+#ifdef RTL8192CE
+ if(tcb_desc->queue_index == BEACON_QUEUE){
+ write_nic_word(dev, REG_PCIE_CTRL_REG, BIT4);
+ }else{
+ write_nic_word(dev, REG_PCIE_CTRL_REG, BIT0<<(tcb_desc->queue_index));
+ }
+#else
+ write_nic_word(dev,TPPoll,0x01<<tcb_desc->queue_index);
+#endif
+ return 0;
+}
+
+short rtl8192_alloc_rx_desc_ring(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ rx_desc *entry = NULL;
+ int i, rx_queue_idx;
+
+ for(rx_queue_idx = 0; rx_queue_idx < MAX_RX_QUEUE; rx_queue_idx ++){
+ priv->rx_ring[rx_queue_idx] = pci_alloc_consistent(priv->pdev,
+ sizeof(*priv->rx_ring[rx_queue_idx]) * priv->rxringcount, &priv->rx_ring_dma[rx_queue_idx]);
+
+ if (!priv->rx_ring[rx_queue_idx] || (unsigned long)priv->rx_ring[rx_queue_idx] & 0xFF) {
+ RT_TRACE(COMP_ERR,"Cannot allocate RX ring\n");
+ return -ENOMEM;
+ }
+
+ memset(priv->rx_ring[rx_queue_idx], 0, sizeof(*priv->rx_ring[rx_queue_idx]) * priv->rxringcount);
+ priv->rx_idx[rx_queue_idx] = 0;
+
+ for (i = 0; i < priv->rxringcount; i++) {
+ struct sk_buff *skb = dev_alloc_skb(priv->rxbuffersize);
+ dma_addr_t *mapping;
+ entry = &priv->rx_ring[rx_queue_idx][i];
+ if (!skb)
+ return 0;
+ skb->dev = dev;
+ priv->rx_buf[rx_queue_idx][i] = skb;
+ mapping = (dma_addr_t *)skb->cb;
+ *mapping = pci_map_single(priv->pdev, skb_tail_pointer_rsl(skb),
+ priv->rxbuffersize, PCI_DMA_FROMDEVICE);
+
+ entry->BufferAddress = cpu_to_le32(*mapping);
+
+ entry->Length = priv->rxbuffersize;
+ entry->OWN = 1;
+ }
+
+ entry->EOR = 1;
+ }
+ return 0;
+}
+
+static int rtl8192_alloc_tx_desc_ring(struct net_device *dev,
+ unsigned int prio, unsigned int entries)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ tx_desc *ring;
+ dma_addr_t dma;
+ int i;
+
+ ring = pci_alloc_consistent(priv->pdev, sizeof(*ring) * entries, &dma);
+ if (!ring || (unsigned long)ring & 0xFF) {
+ RT_TRACE(COMP_ERR, "Cannot allocate TX ring (prio = %d)\n", prio);
+ return -ENOMEM;
+ }
+
+ memset(ring, 0, sizeof(*ring)*entries);
+ priv->tx_ring[prio].desc = ring;
+ priv->tx_ring[prio].dma = dma;
+ priv->tx_ring[prio].idx = 0;
+ priv->tx_ring[prio].entries = entries;
+ skb_queue_head_init(&priv->tx_ring[prio].queue);
+
+ for (i = 0; i < entries; i++)
+ ring[i].NextDescAddress =
+ cpu_to_le32((u32)dma + ((i + 1) % entries) * sizeof(*ring));
+
+ return 0;
+}
+
+
+short rtl8192_pci_initdescring(struct net_device *dev)
+{
+ u32 ret;
+ int i;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ ret = rtl8192_alloc_rx_desc_ring(dev);
+ if (ret) {
+ return ret;
+ }
+
+
+ for (i = 0; i < MAX_TX_QUEUE_COUNT; i++) {
+ if ((ret = rtl8192_alloc_tx_desc_ring(dev, i, priv->txringcount)))
+ goto err_free_rings;
+ }
+
+#if 0
+ if ((ret = rtl8192_alloc_tx_desc_ring(dev, MAX_TX_QUEUE_COUNT - 1, 2)))
+ goto err_free_rings;
+#endif
+
+ return 0;
+
+err_free_rings:
+ rtl8192_free_rx_ring(dev);
+ for (i = 0; i < MAX_TX_QUEUE_COUNT; i++)
+ if (priv->tx_ring[i].desc)
+ rtl8192_free_tx_ring(dev, i);
+ return 1;
+}
+
+void rtl8192_pci_resetdescring(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int i,rx_queue_idx;
+ unsigned long flags = 0;
+
+ for(rx_queue_idx = 0; rx_queue_idx < MAX_RX_QUEUE; rx_queue_idx ++){
+ if(priv->rx_ring[rx_queue_idx]) {
+ rx_desc *entry = NULL;
+ for (i = 0; i < priv->rxringcount; i++) {
+ entry = &priv->rx_ring[rx_queue_idx][i];
+ entry->OWN = 1;
+ }
+ priv->rx_idx[rx_queue_idx] = 0;
+ }
+ }
+
+ spin_lock_irqsave(&priv->irq_th_lock,flags);
+ for (i = 0; i < MAX_TX_QUEUE_COUNT; i++) {
+ if (priv->tx_ring[i].desc) {
+ struct rtl8192_tx_ring *ring = &priv->tx_ring[i];
+
+ while (skb_queue_len(&ring->queue)) {
+ tx_desc *entry = &ring->desc[ring->idx];
+ struct sk_buff *skb = __skb_dequeue(&ring->queue);
+
+ pci_unmap_single(priv->pdev, le32_to_cpu(entry->TxBuffAddr),
+ skb->len, PCI_DMA_TODEVICE);
+ kfree_skb(skb);
+ ring->idx = (ring->idx + 1) % ring->entries;
+ }
+ ring->idx = 0;
+ }
+ }
+ spin_unlock_irqrestore(&priv->irq_th_lock,flags);
+}
+
+void rtl819x_UpdateRxPktTimeStamp (struct net_device *dev, struct rtllib_rx_stats *stats)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ if(stats->bIsAMPDU && !stats->bFirstMPDU) {
+ stats->mac_time[0] = priv->LastRxDescTSFLow;
+ stats->mac_time[1] = priv->LastRxDescTSFHigh;
+ } else {
+ priv->LastRxDescTSFLow = stats->mac_time[0];
+ priv->LastRxDescTSFHigh = stats->mac_time[1];
+ }
+}
+
+long rtl819x_translate_todbm(struct r8192_priv * priv, u8 signal_strength_index )
+{
+ long signal_power;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if(priv->CustomerID == RT_CID_819x_Lenovo)
+ {
+ signal_power = (long)signal_strength_index;
+ if(signal_power >= 45)
+ signal_power -= 110;
+ else
+ {
+ signal_power = ((signal_power*6)/10);
+ signal_power -= 93;
+ }
+ return signal_power;
+ }
+#endif
+ signal_power = (long)((signal_strength_index + 1) >> 1);
+ signal_power -= 95;
+
+ return signal_power;
+}
+
+
+void
+rtl819x_update_rxsignalstatistics8190pci(
+ struct r8192_priv * priv,
+ struct rtllib_rx_stats * pprevious_stats
+ )
+{
+ int weighting = 0;
+
+
+ if(priv->stats.recv_signal_power == 0)
+ priv->stats.recv_signal_power = pprevious_stats->RecvSignalPower;
+
+ if(pprevious_stats->RecvSignalPower > priv->stats.recv_signal_power)
+ weighting = 5;
+ else if(pprevious_stats->RecvSignalPower < priv->stats.recv_signal_power)
+ weighting = (-5);
+ priv->stats.recv_signal_power = (priv->stats.recv_signal_power * 5 + pprevious_stats->RecvSignalPower + weighting) / 6;
+}
+
+void
+rtl819x_process_cck_rxpathsel(
+ struct r8192_priv * priv,
+ struct rtllib_rx_stats * pprevious_stats
+ )
+{
+#ifdef RTL8190P
+ char last_cck_adc_pwdb[4]={0,0,0,0};
+ u8 i;
+ if(priv->rf_type == RF_2T4R && DM_RxPathSelTable.Enable)
+ {
+ if(pprevious_stats->bIsCCK &&
+ (pprevious_stats->bPacketToSelf ||pprevious_stats->bPacketBeacon))
+ {
+ if(priv->stats.cck_adc_pwdb.TotalNum++ >= PHY_RSSI_SLID_WIN_MAX)
+ {
+ priv->stats.cck_adc_pwdb.TotalNum = PHY_RSSI_SLID_WIN_MAX;
+ for(i=RF90_PATH_A; i<RF90_PATH_MAX; i++)
+ {
+ last_cck_adc_pwdb[i] = priv->stats.cck_adc_pwdb.elements[i][priv->stats.cck_adc_pwdb.index];
+ priv->stats.cck_adc_pwdb.TotalVal[i] -= last_cck_adc_pwdb[i];
+ }
+ }
+ for(i=RF90_PATH_A; i<RF90_PATH_MAX; i++)
+ {
+ priv->stats.cck_adc_pwdb.TotalVal[i] += pprevious_stats->cck_adc_pwdb[i];
+ priv->stats.cck_adc_pwdb.elements[i][priv->stats.cck_adc_pwdb.index] = pprevious_stats->cck_adc_pwdb[i];
+ }
+ priv->stats.cck_adc_pwdb.index++;
+ if(priv->stats.cck_adc_pwdb.index >= PHY_RSSI_SLID_WIN_MAX)
+ priv->stats.cck_adc_pwdb.index = 0;
+
+ for(i=RF90_PATH_A; i<RF90_PATH_MAX; i++)
+ {
+ DM_RxPathSelTable.cck_pwdb_sta[i] = priv->stats.cck_adc_pwdb.TotalVal[i]/priv->stats.cck_adc_pwdb.TotalNum;
+ }
+
+ for(i=RF90_PATH_A; i<RF90_PATH_MAX; i++)
+ {
+ if(pprevious_stats->cck_adc_pwdb[i] > (char)priv->undecorated_smoothed_cck_adc_pwdb[i])
+ {
+ priv->undecorated_smoothed_cck_adc_pwdb[i] =
+ ( (priv->undecorated_smoothed_cck_adc_pwdb[i]*(Rx_Smooth_Factor-1)) +
+ (pprevious_stats->cck_adc_pwdb[i])) /(Rx_Smooth_Factor);
+ priv->undecorated_smoothed_cck_adc_pwdb[i] = priv->undecorated_smoothed_cck_adc_pwdb[i] + 1;
+ }
+ else
+ {
+ priv->undecorated_smoothed_cck_adc_pwdb[i] =
+ ( (priv->undecorated_smoothed_cck_adc_pwdb[i]*(Rx_Smooth_Factor-1)) +
+ (pprevious_stats->cck_adc_pwdb[i])) /(Rx_Smooth_Factor);
+ }
+ }
+ }
+ }
+#endif
+}
+
+
+u8 rtl819x_query_rxpwrpercentage(
+ char antpower
+ )
+{
+ if ((antpower <= -100) || (antpower >= 20))
+ {
+ return 0;
+ }
+ else if (antpower >= 0)
+ {
+ return 100;
+ }
+ else
+ {
+ return (100+antpower);
+ }
+
+} /* QueryRxPwrPercentage */
+
+u8
+rtl819x_evm_dbtopercentage(
+ char value
+ )
+{
+ char ret_val;
+
+ ret_val = value;
+
+ if(ret_val >= 0)
+ ret_val = 0;
+ if(ret_val <= -33)
+ ret_val = -33;
+ ret_val = 0 - ret_val;
+ ret_val*=3;
+ if(ret_val == 99)
+ ret_val = 100;
+ return(ret_val);
+}
+
+void
+rtl8192_record_rxdesc_forlateruse(
+ struct rtllib_rx_stats * psrc_stats,
+ struct rtllib_rx_stats * ptarget_stats
+)
+{
+ ptarget_stats->bIsAMPDU = psrc_stats->bIsAMPDU;
+ ptarget_stats->bFirstMPDU = psrc_stats->bFirstMPDU;
+}
+
+
+
+void rtl8192_rx_normal(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ struct rtllib_hdr_1addr *rtllib_hdr = NULL;
+ bool unicast_packet = false;
+ bool bLedBlinking=true;
+ u16 fc=0, type=0;
+ u32 skb_len = 0;
+ int rx_queue_idx = RX_MPDU_QUEUE;
+
+ struct rtllib_rx_stats stats = {
+ .signal = 0,
+ .noise = -98,
+ .rate = 0,
+ .freq = RTLLIB_24GHZ_BAND,
+ };
+ unsigned int count = priv->rxringcount;
+
+ stats.nic_type = NIC_8192E;
+
+ while (count--) {
+ rx_desc *pdesc = &priv->rx_ring[rx_queue_idx][priv->rx_idx[rx_queue_idx]];
+ struct sk_buff *skb = priv->rx_buf[rx_queue_idx][priv->rx_idx[rx_queue_idx]];
+
+ if (pdesc->OWN){
+ return;
+ } else {
+
+ struct sk_buff *new_skb = NULL;
+ if (!priv->ops->rx_query_status_descriptor(dev, &stats, pdesc, skb))
+ goto done;
+
+ pci_unmap_single(priv->pdev,
+ *((dma_addr_t *)skb->cb),
+ priv->rxbuffersize,
+ PCI_DMA_FROMDEVICE);
+
+ skb_put(skb, pdesc->Length);
+ skb_reserve(skb, stats.RxDrvInfoSize + stats.RxBufShift);
+ skb_trim(skb, skb->len - 4/*sCrcLng*/);
+ rtllib_hdr = (struct rtllib_hdr_1addr *)skb->data;
+ if(is_broadcast_ether_addr(rtllib_hdr->addr1)) {
+ }else if(is_multicast_ether_addr(rtllib_hdr->addr1)){
+ }else {
+ /* unicast packet */
+ unicast_packet = true;
+ }
+ fc = le16_to_cpu(rtllib_hdr->frame_ctl);
+ type = WLAN_FC_GET_TYPE(fc);
+ if(type == RTLLIB_FTYPE_MGMT)
+ {
+ bLedBlinking = false;
+ }
+ if(bLedBlinking)
+ if(priv->rtllib->LedControlHandler)
+ priv->rtllib->LedControlHandler(dev, LED_CTL_RX);
+
+ if(stats.bCRC) {
+ if(type != RTLLIB_FTYPE_MGMT)
+ priv->stats.rxdatacrcerr ++;
+ else
+ priv->stats.rxmgmtcrcerr ++;
+ }
+
+ skb_len = skb->len;
+
+#ifdef RTL8192CE
+ if (!stats.bCRC)
+#else
+ if (1)
+#endif
+ {
+ if(!rtllib_rx(priv->rtllib, skb, &stats)){
+ dev_kfree_skb_any(skb);
+ } else {
+ priv->stats.rxok++;
+ if(unicast_packet) {
+ priv->stats.rxbytesunicast += skb_len;
+ }
+ }
+ }else{
+ dev_kfree_skb_any(skb);
+ }
+#if 1
+ new_skb = dev_alloc_skb(priv->rxbuffersize);
+ if (unlikely(!new_skb))
+ {
+ printk("==========>can't alloc skb for rx\n");
+ goto done;
+ }
+ skb=new_skb;
+ skb->dev = dev;
+#endif
+ priv->rx_buf[rx_queue_idx][priv->rx_idx[rx_queue_idx]] = skb;
+ *((dma_addr_t *) skb->cb) = pci_map_single(priv->pdev, skb_tail_pointer_rsl(skb), priv->rxbuffersize, PCI_DMA_FROMDEVICE);
+
+ }
+done:
+ pdesc->BufferAddress = cpu_to_le32(*((dma_addr_t *)skb->cb));
+ pdesc->OWN = 1;
+ pdesc->Length = priv->rxbuffersize;
+ if (priv->rx_idx[rx_queue_idx] == priv->rxringcount-1)
+ pdesc->EOR = 1;
+ priv->rx_idx[rx_queue_idx] = (priv->rx_idx[rx_queue_idx] + 1) % priv->rxringcount;
+ }
+
+}
+
+void rtl8192_rx_cmd(struct net_device *dev)
+{
+#ifdef RTL8192SE
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ unsigned int count = priv->rxringcount;
+ int rx_queue_idx = RX_CMD_QUEUE;
+
+ struct rtllib_rx_stats stats = {
+ .signal = 0,
+ .noise = -98,
+ .rate = 0,
+ .freq = RTLLIB_24GHZ_BAND,
+ };
+ stats.nic_type = NIC_8192E;
+
+ while (count--) {
+ rx_desc *pdesc = &priv->rx_ring[rx_queue_idx][priv->rx_idx[rx_queue_idx]];
+ struct sk_buff *skb = priv->rx_buf[rx_queue_idx][priv->rx_idx[rx_queue_idx]];
+
+ if (pdesc->OWN){
+ return;
+ } else {
+ struct sk_buff *new_skb = NULL;
+
+ pci_unmap_single(priv->pdev,
+ *((dma_addr_t *)skb->cb),
+ priv->rxbuffersize,
+ PCI_DMA_FROMDEVICE);
+
+ skb_put(skb, pdesc->Length);
+
+ if(pdesc->MACID == 0x1e){
+
+ pdesc->Length = pdesc->Length - 32;
+ pdesc->DrvInfoSize = 4;
+ printk(">>>>%s()CMD PKT RX, beacon_len:%d payload_len:%d\n",__func__, pdesc->Length,skb->len);
+
+
+ priv->ops->rx_query_status_descriptor(dev, &stats, pdesc, skb);
+ skb_reserve(skb, stats.RxDrvInfoSize + stats.RxBufShift);
+ if(0)
+ {
+ u8 i = 0;
+ u8 *arry = (u8*) skb->data;
+
+ printk("\n==============>\n");
+ for(i = 0; i < 32; i ++){
+ if((i % 4 == 0)&&(i != 0))
+ printk("\n");
+ printk("%2.2x ", arry[i]);
+ }
+ printk("\n<==============\n");
+ }
+ }
+
+ skb_trim(skb, skb->len - 4/*sCrcLng*/);
+
+ if(pdesc->MACID == 0x1e){
+ if(!rtllib_rx(priv->rtllib, skb, &stats)){
+ dev_kfree_skb_any(skb);
+ }
+ }else{
+ if(priv->ops->rx_command_packet_handler != NULL)
+ priv->ops->rx_command_packet_handler(dev, skb, pdesc);
+ dev_kfree_skb_any(skb);
+ }
+
+
+ new_skb = dev_alloc_skb(priv->rxbuffersize);
+ if (unlikely(!new_skb))
+ {
+ printk("==========>can't alloc skb for rx\n");
+ goto done;
+ }
+ skb=new_skb;
+ skb->dev = dev;
+
+ priv->rx_buf[rx_queue_idx][priv->rx_idx[rx_queue_idx]] = skb;
+ *((dma_addr_t *) skb->cb) = pci_map_single(priv->pdev, skb_tail_pointer_rsl(skb), priv->rxbuffersize, PCI_DMA_FROMDEVICE);
+
+ }
+done:
+ pdesc->BufferAddress = cpu_to_le32(*((dma_addr_t *)skb->cb));
+ pdesc->OWN = 1;
+ pdesc->Length = priv->rxbuffersize;
+ if (priv->rx_idx[rx_queue_idx] == priv->rxringcount-1)
+ pdesc->EOR = 1;
+ priv->rx_idx[rx_queue_idx] = (priv->rx_idx[rx_queue_idx] + 1) % priv->rxringcount;
+ }
+#endif
+}
+
+
+void rtl8192_tx_resume(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+ struct sk_buff *skb;
+ int queue_index;
+
+ for(queue_index = BK_QUEUE; queue_index < TXCMD_QUEUE;queue_index++) {
+ while((!skb_queue_empty(&ieee->skb_waitQ[queue_index]))&&
+ (priv->rtllib->check_nic_enough_desc(dev,queue_index) > 0)) {
+ skb = skb_dequeue(&ieee->skb_waitQ[queue_index]);
+ ieee->softmac_data_hard_start_xmit(skb,dev,0/* rate useless now*/);
+ #if 0
+ if(queue_index!=MGNT_QUEUE) {
+ ieee->stats.tx_packets++;
+ ieee->stats.tx_bytes += skb->len;
+ }
+ #endif
+ }
+#ifdef ENABLE_AMSDU
+ while((skb_queue_len(&priv->rtllib->skb_aggQ[queue_index]) > 0)&&\
+ (!(priv->rtllib->queue_stop)) && \
+ (priv->rtllib->check_nic_enough_desc(dev,queue_index) > 0)){
+
+ struct sk_buff_head pSendList;
+ u8 dst[ETH_ALEN];
+ cb_desc *tcb_desc = NULL;
+ int qos_actived = priv->rtllib->current_network.qos_data.active;
+ struct sta_info *psta = NULL;
+ u8 bIsSptAmsdu = false;
+
+#ifdef WIFI_TEST
+ if (queue_index <= VO_QUEUE)
+ queue_index = wmm_queue_select(priv, queue_index, priv->rtllib->skb_aggQ);
+#endif
+ priv->rtllib->amsdu_in_process = true;
+
+ skb = skb_dequeue(&(priv->rtllib->skb_aggQ[queue_index]));
+ if(skb == NULL)
+ {
+ printk("In %s:Skb is NULL\n",__FUNCTION__);
+ return;
+ }
+ tcb_desc = (pcb_desc)(skb->cb + MAX_DEV_ADDR_SIZE);
+ if(tcb_desc->bFromAggrQ)
+ {
+ rtllib_xmit_inter(skb, dev);
+ return;
+ }
+
+ memcpy(dst, skb->data, ETH_ALEN);
+ if(priv->rtllib->iw_mode == IW_MODE_ADHOC)
+ {
+ psta = GetStaInfo(priv->rtllib, dst);
+ if(psta) {
+ if(psta->htinfo.bEnableHT)
+ bIsSptAmsdu = true;
+ }
+ }
+ else if(priv->rtllib->iw_mode == IW_MODE_INFRA)
+ bIsSptAmsdu = true;
+ else
+ bIsSptAmsdu = true;
+ bIsSptAmsdu = true;
+
+ bIsSptAmsdu = bIsSptAmsdu && priv->rtllib->pHTInfo->bCurrent_AMSDU_Support && qos_actived;
+
+ if(qos_actived && !is_broadcast_ether_addr(dst) &&
+ !is_multicast_ether_addr(dst) &&
+ bIsSptAmsdu)
+ {
+ skb_queue_head_init(&pSendList);
+ if(AMSDU_GetAggregatibleList(priv->rtllib, skb, &pSendList,queue_index))
+ {
+ struct sk_buff * pAggrSkb = AMSDU_Aggregation(priv->rtllib, &pSendList);
+ if(NULL != pAggrSkb)
+ rtllib_xmit_inter(pAggrSkb, dev);
+ }
+ }
+ else
+ {
+ memset(skb->cb,0,sizeof(skb->cb));
+ tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
+ tcb_desc->bFromAggrQ = true;
+ rtllib_xmit_inter(skb, dev);
+ }
+ }
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ while((!skb_queue_empty(&priv->rtllib->skb_meshaggQ[queue_index]) )&&\
+ (priv->rtllib->check_nic_enough_desc(dev,queue_index)> 0))
+ {
+ struct sk_buff_head pSendList;
+ u8 dst[ETH_ALEN];
+ cb_desc *tcb_desc = NULL;
+ u8 IsHTEnable = false;
+ int qos_actived = 1;
+ priv->rtllib->mesh_amsdu_in_process = true;
+ skb = skb_dequeue(&(priv->rtllib->skb_meshaggQ[queue_index]));
+ if(skb == NULL)
+ {
+ priv->rtllib->mesh_amsdu_in_process = false;
+ printk("In %s:Skb is NULL\n",__FUNCTION__);
+ return;
+ }
+ tcb_desc = (pcb_desc)(skb->cb + MAX_DEV_ADDR_SIZE);
+ if(tcb_desc->bFromAggrQ)
+ {
+ rtllib_mesh_xmit(skb, dev);
+ continue;
+ }
+ memcpy(dst, skb->data, ETH_ALEN);
+
+#if 0
+ ppeerMP_htinfo phtinfo = NULL;
+ bool is_mesh = false;
+ if(priv->mshobj->ext_patch_rtllib_is_mesh)
+ is_mesh = priv->mshobj->ext_patch_rtllib_is_mesh(priv->rtllib,dst);
+ if(is_mesh){
+ if(priv->rtllib->ext_patch_rtllib_get_peermp_htinfo)
+ {
+ phtinfo = priv->rtllib->ext_patch_rtllib_get_peermp_htinfo(ieee,dst);
+ if(phtinfo == NULL)
+ {
+ RT_TRACE(COMP_ERR,"%s(): No htinfo\n",__FUNCTION__);
+ }
+ else
+ {
+ if(phtinfo->bEnableHT)
+ IsHTEnable = true;
+ }
+ }
+ }
+ else
+ {
+ printk("===>%s():tx AMSDU data has not entry,dst: "MAC_FMT"\n",__FUNCTION__,MAC_ARG(dst));
+ IsHTEnable = true;
+ }
+#else
+ IsHTEnable = true;
+#endif
+ IsHTEnable = (IsHTEnable && ieee->pHTInfo->bCurrent_Mesh_AMSDU_Support && qos_actived);
+ if( !is_broadcast_ether_addr(dst) &&
+ !is_multicast_ether_addr(dst) &&
+ IsHTEnable)
+ {
+ skb_queue_head_init(&pSendList);
+ if(msh_AMSDU_GetAggregatibleList(priv->rtllib, skb, &pSendList,queue_index))
+ {
+ struct sk_buff * pAggrSkb = msh_AMSDU_Aggregation(priv->rtllib, &pSendList);
+ if(NULL != pAggrSkb)
+ rtllib_mesh_xmit(pAggrSkb, dev);
+ }else{
+ priv->rtllib->mesh_amsdu_in_process = false;
+ return;
+ }
+ }
+ else
+ {
+ memset(skb->cb,0,sizeof(skb->cb));
+ tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
+ tcb_desc->bFromAggrQ = true;
+ rtllib_mesh_xmit(skb, dev);
+ }
+ }
+#endif
+ }
+}
+
+void rtl8192_irq_tx_tasklet(struct r8192_priv *priv)
+{
+ rtl8192_tx_resume(priv->rtllib->dev);
+}
+
+void rtl8192_irq_rx_tasklet(struct r8192_priv *priv)
+{
+ rtl8192_rx_normal(priv->rtllib->dev);
+
+ if(MAX_RX_QUEUE > 1)
+ rtl8192_rx_cmd(priv->rtllib->dev);
+
+#ifndef RTL8192CE
+ write_nic_dword(priv->rtllib->dev, INTA_MASK,read_nic_dword(priv->rtllib->dev, INTA_MASK) | IMR_RDU);
+#endif
+}
+
+/****************************************************************************
+ ---------------------------- NIC START/CLOSE STUFF---------------------------
+*****************************************************************************/
+void rtl8192_cancel_deferred_work(struct r8192_priv* priv)
+{
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ cancel_delayed_work(&priv->watch_dog_wq);
+ cancel_delayed_work(&priv->update_beacon_wq);
+#ifndef RTL8190P
+ cancel_delayed_work(&priv->rtllib->hw_sleep_wq);
+#endif
+#if defined RTL8192SE
+ cancel_delayed_work(&priv->check_hw_scan_wq);
+ cancel_delayed_work(&priv->hw_scan_simu_wq);
+ cancel_delayed_work(&priv->start_hw_scan_wq);
+ cancel_delayed_work(&priv->rtllib->update_assoc_sta_info_wq);
+ cancel_delayed_work(&priv->rtllib->check_tsf_wq);
+#endif
+#endif
+
+#if LINUX_VERSION_CODE >=KERNEL_VERSION(2,6,22)
+ cancel_work_sync(&priv->reset_wq);
+ cancel_work_sync(&priv->qos_activate);
+#elif ((LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)))
+ cancel_delayed_work(&priv->reset_wq);
+ cancel_delayed_work(&priv->qos_activate);
+#if defined RTL8192SE
+ cancel_delayed_work(&priv->rtllib->update_assoc_sta_info_wq);
+ cancel_delayed_work(&priv->rtllib->check_tsf_wq);
+#endif
+#endif
+
+}
+
+int _rtl8192_up(struct net_device *dev,bool is_silent_reset)
+{
+#ifdef _RTL8192_EXT_PATCH_
+ if(_rtl8192_mesh_up(dev, is_silent_reset) == -1)
+ return -1;
+#else
+ if(_rtl8192_sta_up(dev, is_silent_reset) == -1)
+ return -1;
+#endif
+
+ return 0;
+}
+
+
+int rtl8192_open(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int ret;
+
+ down(&priv->wx_sem);
+ ret = rtl8192_up(dev);
+ up(&priv->wx_sem);
+ return ret;
+
+}
+
+
+int rtl8192_up(struct net_device *dev)
+{
+#ifndef _RTL8192_EXT_PATCH_
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if (priv->up == 1) return -1;
+ return _rtl8192_up(dev,false);
+#else
+ return _rtl8192_up(dev,false);
+#endif
+}
+
+
+int rtl8192_close(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int ret;
+
+ if ((rtllib_act_scanning(priv->rtllib, false)) &&
+ !(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){
+ rtllib_stop_scan(priv->rtllib);
+ }
+
+ down(&priv->wx_sem);
+
+ ret = rtl8192_down(dev,true);
+
+ up(&priv->wx_sem);
+
+ return ret;
+
+}
+
+int rtl8192_down(struct net_device *dev, bool shutdownrf)
+{
+#ifdef CONFIG_MP
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+
+#ifdef _RTL8192_EXT_PATCH_
+ if(rtl8192_mesh_down(dev, shutdownrf) == -1)
+ return -1;
+#else
+ if(rtl8192_sta_down(dev, shutdownrf) == -1)
+ return -1;
+#endif
+
+#ifdef CONFIG_MP
+ if (priv->bCckContTx) {
+ printk("####RTL819X MP####stop single cck continious TX\n");
+ mpt_StopCckCoNtTx(dev);
+ }
+ if (priv->bOfdmContTx) {
+ printk("####RTL819X MP####stop single ofdm continious TX\n");
+ mpt_StopOfdmContTx(dev);
+ }
+ if (priv->bSingleCarrier) {
+ printk("####RTL819X MP####stop single carrier mode\n");
+ MPT_ProSetSingleCarrier(dev, false);
+ }
+#endif
+ return 0;
+}
+
+void rtl8192_commit(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+#ifdef _RTL8192_EXT_PATCH_
+ if (IS_NIC_DOWN(priv))
+ return ;
+ rtllib_softmac_stop_protocol(priv->rtllib,0,true);
+ rtl8192_irq_disable(dev);
+ priv->ops->stop_adapter(dev, true);
+ priv->up = 0;
+ _rtl8192_up(dev,false);
+#else
+ if (priv->up == 0) return ;
+ rtllib_softmac_stop_protocol(priv->rtllib,true);
+ rtl8192_irq_disable(dev);
+ priv->ops->stop_adapter(dev, true);
+ _rtl8192_up(dev,false);
+#endif
+
+}
+
+void rtl8192_restart(void *data)
+{
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20))
+ struct r8192_priv *priv = container_of_work_rsl(data, struct r8192_priv, reset_wq);
+ struct net_device *dev = priv->rtllib->dev;
+#else
+ struct net_device *dev = (struct net_device *)data;
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+
+ down(&priv->wx_sem);
+
+ rtl8192_commit(dev);
+
+ up(&priv->wx_sem);
+}
+
+static void r8192_set_multicast(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ short promisc;
+
+
+
+ promisc = (dev->flags & IFF_PROMISC) ? 1:0;
+
+ if (promisc != priv->promisc) {
+ ;
+ }
+
+ priv->promisc = promisc;
+
+}
+
+
+int r8192_set_mac_adr(struct net_device *dev, void *mac)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct sockaddr *addr = mac;
+
+ down(&priv->wx_sem);
+
+ memcpy(dev->dev_addr, addr->sa_data, ETH_ALEN);
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+ schedule_work(&priv->reset_wq);
+#else
+ schedule_task(&priv->reset_wq);
+#endif
+ up(&priv->wx_sem);
+
+ return 0;
+}
+
+#if defined (RTL8192S_WAPI_SUPPORT)
+extern int wapi_ioctl_set_mode(struct net_device *dev, struct iw_request_info *a,union iwreq_data *wrqu, char *b);
+int WAPI_Ioctl(struct net_device *dev, struct iwreq *wrq, int cmd)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+ static u8 QueueData[WAPI_MAX_BUFF_LEN];
+#define DATAQUEUE_EMPTY "Queue is empty"
+ int ret = 0;
+
+ switch(cmd){
+ case WAPI_CMD_GET_WAPI_SUPPORT:
+ WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_GET_WAPI_SUPPORT!\n",__FUNCTION__);
+ if(copy_to_user((u8 *)(wrq->u.data.pointer), &ieee->WapiSupport, sizeof(u8))==0)
+ wrq->u.data.length = sizeof(u8);
+ break;
+ case WAPI_CMD_SET_WAPI_ENABLE:
+ {
+ u8 wapi_enable = *(u8 *)wrq->u.data.pointer;
+ WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SET_WAPI_ENABLE!\n",__FUNCTION__);
+ if((ieee->WapiSupport) && (wapi_enable == 1)){
+ ieee->wapiInfo.bWapiEnable = true;
+ ieee->pairwise_key_type = KEY_TYPE_SMS4;
+ ieee->group_key_type = KEY_TYPE_SMS4;
+ ieee->wapiInfo.extra_prefix_len = WAPI_EXT_LEN;
+ ieee->wapiInfo.extra_postfix_len = SMS4_MIC_LEN;
+ }
+ else if (wapi_enable == 0) {
+ ieee->wapiInfo.bWapiEnable = false;
+ ieee->pairwise_key_type = KEY_TYPE_NA;
+ ieee->group_key_type = KEY_TYPE_NA;
+ }
+ break;
+ }
+ case WAPI_CMD_SET_WAPI_PSK:
+ {
+ u8 wapi_psk = *(u8 *)wrq->u.data.pointer;
+ WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SET_WAPI_PSK!\n",__FUNCTION__);
+ if(ieee->wapiInfo.bWapiEnable){
+ ieee->wapiInfo.bWapiPSK = (wapi_psk > 0)?1:0;
+ WAPI_TRACE(WAPI_API, "%s(): bWapiPSK=%d!\n",__FUNCTION__, ieee->wapiInfo.bWapiPSK);
+ }
+ break;
+ }
+ case WAPI_CMD_SET_KEY:
+ { /*Data: keyType(1) + bTxEnable(1) + bAuthenticator(1) + bUpdate(1) + PeerAddr(6) + DataKey(16) + MicKey(16) + KeyId(1)*/
+ PRT_WAPI_T pWapiInfo = &ieee->wapiInfo;
+ PRT_WAPI_BKID pWapiBkid;
+ PRT_WAPI_STA_INFO pWapiSta;
+ u8 data[43];
+ bool bTxEnable;
+ bool bUpdate;
+ bool bAuthenticator;
+ u8 PeerAddr[6];
+ u8 WapiAEPNInitialValueSrc[16] = {0x37,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
+ u8 WapiASUEPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
+ u8 WapiAEMultiCastPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
+
+ WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SET_KEY!\n",__FUNCTION__);
+ if (!ieee->WapiSupport){
+ ret = -1;
+ break;
+ }
+ if(wrq->u.data.length < 26){
+ ret = -1;
+ break;
+ }
+
+ copy_from_user(data, (u8 *)wrq->u.data.pointer, wrq->u.data.length);
+ bTxEnable = data[1];
+ bAuthenticator = data[2];
+ bUpdate = data[3];
+ memcpy(PeerAddr,data+4,6);
+
+ if(data[0] == 0x3){
+ if(!list_empty(&(pWapiInfo->wapiBKIDIdleList))){
+ pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDIdleList.next, RT_WAPI_BKID,list);
+ list_del_init(&pWapiBkid->list);
+ memcpy(pWapiBkid->bkid, data+10, 16);
+ list_add_tail(&pWapiBkid->list, &pWapiInfo->wapiBKIDStoreList);
+ WAPI_DATA(WAPI_API, "SetKey - BKID", pWapiBkid->bkid, 16);
+ }
+ } else if (data[0] == 0x04){
+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
+ if(!memcmp(pWapiSta->PeerMacAddr,PeerAddr,6)){
+ if(bUpdate){
+ if(bAuthenticator) {
+ memcpy(pWapiSta->lastTxUnicastPN,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiAEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiAEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiAEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiAEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPN,WapiAEPNInitialValueSrc,16);
+ } else {
+ memcpy(pWapiSta->lastTxUnicastPN,WapiAEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPN,WapiASUEPNInitialValueSrc,16);
+ }
+ }
+ }
+ }
+ }
+ else{
+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
+ if(!memcmp(pWapiSta->PeerMacAddr,PeerAddr,6)){
+ pWapiSta->bAuthenticatorInUpdata = false;
+ switch(data[0]){
+ case 1:
+ if(bAuthenticator){
+ memcpy(pWapiSta->lastTxUnicastPN,WapiAEPNInitialValueSrc,16);
+ if(!bUpdate) {
+ WAPI_TRACE(WAPI_API, "%s(): AE fisrt set usk!\n",__FUNCTION__);
+ pWapiSta->wapiUsk.bSet = true;
+ memcpy(pWapiSta->wapiUsk.dataKey,data+10,16);
+ memcpy(pWapiSta->wapiUsk.micKey,data+26,16);
+ pWapiSta->wapiUsk.keyId = *(data+42);
+ pWapiSta->wapiUsk.bTxEnable = true;
+ WAPI_DATA(WAPI_API, "SetKey - AE Usk Data Key", pWapiSta->wapiUsk.dataKey, 16);
+ WAPI_DATA(WAPI_API, "SetKey - AE Usk Mic Key", pWapiSta->wapiUsk.micKey, 16);
+ }
+ else
+ {
+ WAPI_TRACE(WAPI_API, "%s(): AE update usk!\n",__FUNCTION__);
+ pWapiSta->wapiUskUpdate.bSet = true;
+ pWapiSta->bAuthenticatorInUpdata = true;
+ memcpy(pWapiSta->wapiUskUpdate.dataKey,data+10,16);
+ memcpy(pWapiSta->wapiUskUpdate.micKey,data+26,16);
+ memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPN,WapiASUEPNInitialValueSrc,16);
+ pWapiSta->wapiUskUpdate.keyId = *(data+42);
+ pWapiSta->wapiUskUpdate.bTxEnable = true;
+ WAPI_TRACE(WAPI_API, "%s(): keyid=%d\n",__FUNCTION__, pWapiSta->wapiUskUpdate.keyId);
+ WAPI_DATA(WAPI_API, "SetKey - AE Usk Data Key", pWapiSta->wapiUskUpdate.dataKey, 16);
+ WAPI_DATA(WAPI_API, "SetKey - AE Usk Mic Key", pWapiSta->wapiUskUpdate.micKey, 16);
+ }
+ }
+ else{
+ if(!bUpdate){
+ WAPI_TRACE(WAPI_API, "%s(): ASUE fisrt set usk!\n",__FUNCTION__);
+ if(bTxEnable){
+ pWapiSta->wapiUsk.bTxEnable = true;
+ memcpy(pWapiSta->lastTxUnicastPN,WapiASUEPNInitialValueSrc,16);
+ WAPI_TRACE(WAPI_API, "%s(): Tx enable!\n",__FUNCTION__);
+ }else{
+ pWapiSta->wapiUsk.bSet = true;
+ memcpy(pWapiSta->wapiUsk.dataKey,data+10,16);
+ memcpy(pWapiSta->wapiUsk.micKey,data+26,16);
+ pWapiSta->wapiUsk.keyId = *(data+42);
+ pWapiSta->wapiUsk.bTxEnable = false;
+ WAPI_TRACE(WAPI_API, "%s(): Tx disable!\n",__FUNCTION__);
+ WAPI_DATA(WAPI_API, "SetKey - AE Usk Data Key", pWapiSta->wapiUsk.dataKey, 16);
+ WAPI_DATA(WAPI_API, "SetKey - AE Usk Mic Key", pWapiSta->wapiUsk.micKey, 16);
+ }
+ }else{
+ WAPI_TRACE(WAPI_API, "%s(): ASUE update usk!\n",__FUNCTION__);
+ if(bTxEnable){
+ pWapiSta->wapiUskUpdate.bTxEnable = true;
+ if(pWapiSta->wapiUskUpdate.bSet){
+ WAPI_TRACE(WAPI_API, "%s(): ASUE set usk!\n",__FUNCTION__);
+ memcpy(pWapiSta->wapiUsk.dataKey,pWapiSta->wapiUskUpdate.dataKey,16);
+ memcpy(pWapiSta->wapiUsk.micKey,pWapiSta->wapiUskUpdate.micKey,16);
+ pWapiSta->wapiUsk.keyId=pWapiSta->wapiUskUpdate.keyId;
+ memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiAEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiAEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiAEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiAEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPN,WapiAEPNInitialValueSrc,16);
+ pWapiSta->wapiUskUpdate.bTxEnable = false;
+ pWapiSta->wapiUskUpdate.bSet = false;
+ }
+ memcpy(pWapiSta->lastTxUnicastPN,WapiASUEPNInitialValueSrc,16);
+ }else{
+ WAPI_TRACE(WAPI_API, "%s(): ASUE set update usk!\n",__FUNCTION__);
+ pWapiSta->wapiUskUpdate.bSet = true;
+ memcpy(pWapiSta->wapiUskUpdate.dataKey,data+10,16);
+ memcpy(pWapiSta->wapiUskUpdate.micKey,data+26,16);
+ pWapiSta->wapiUskUpdate.keyId = *(data+42);
+ pWapiSta->wapiUskUpdate.bTxEnable = false;
+ WAPI_TRACE(WAPI_API, "%s(): keyid=%d\n",__FUNCTION__, pWapiSta->wapiUskUpdate.keyId);
+ WAPI_DATA(WAPI_API, "SetKey - AE Usk Data Key", pWapiSta->wapiUskUpdate.dataKey, 16);
+ WAPI_DATA(WAPI_API, "SetKey - AE Usk Mic Key", pWapiSta->wapiUskUpdate.micKey, 16);
+ }
+ }
+ }
+ break;
+ case 2:
+ if(bAuthenticator){
+ pWapiInfo->wapiTxMsk.bSet = true;
+ memcpy(pWapiInfo->wapiTxMsk.dataKey,data+10,16);
+ memcpy(pWapiInfo->wapiTxMsk.micKey,data+26,16);
+ pWapiInfo->wapiTxMsk.keyId = *(data+42);
+ pWapiInfo->wapiTxMsk.bTxEnable = true;
+ memcpy(pWapiInfo->lastTxMulticastPN,WapiAEMultiCastPNInitialValueSrc,16);
+ if(!bUpdate){
+ WAPI_TRACE(WAPI_API, "%s(): AE fisrt set msk!\n",__FUNCTION__);
+ if(!pWapiSta->bSetkeyOk)
+ pWapiSta->bSetkeyOk = true;
+ pWapiInfo->bFirstAuthentiateInProgress= false;
+ }else{
+ WAPI_TRACE(WAPI_API, "%s():AE update msk!\n",__FUNCTION__);
+ }
+ WAPI_TRACE(WAPI_API, "%s(): keyid=%d\n",__FUNCTION__, pWapiInfo->wapiTxMsk.keyId);
+ WAPI_DATA(WAPI_API, "SetKey - AE Msk Data Key", pWapiInfo->wapiTxMsk.dataKey, 16);
+ WAPI_DATA(WAPI_API, "SetKey - AE Msk Mic Key", pWapiInfo->wapiTxMsk.micKey, 16);
+ }
+ else{
+ if(!bUpdate){
+ WAPI_TRACE(WAPI_API, "%s(): ASUE fisrt set msk!\n",__FUNCTION__);
+ pWapiSta->wapiMsk.bSet = true;
+ memcpy(pWapiSta->wapiMsk.dataKey,data+10,16);
+ memcpy(pWapiSta->wapiMsk.micKey,data+26,16);
+ pWapiSta->wapiMsk.keyId = *(data+42);
+ pWapiSta->wapiMsk.bTxEnable = false;
+ if(!pWapiSta->bSetkeyOk)
+ pWapiSta->bSetkeyOk = true;
+ pWapiInfo->bFirstAuthentiateInProgress= false;
+ WAPI_DATA(WAPI_API, "SetKey - ASUE Msk Data Key", pWapiSta->wapiMsk.dataKey, 16);
+ WAPI_DATA(WAPI_API, "SetKey - ASUE Msk Mic Key", pWapiSta->wapiMsk.micKey, 16);
+ }else{
+ WAPI_TRACE(WAPI_API, "%s(): ASUE update msk!\n",__FUNCTION__);
+ pWapiSta->wapiMskUpdate.bSet = true;
+ memcpy(pWapiSta->wapiMskUpdate.dataKey,data+10,16);
+ memcpy(pWapiSta->wapiMskUpdate.micKey,data+26,16);
+ pWapiSta->wapiMskUpdate.keyId = *(data+42);
+ pWapiSta->wapiMskUpdate.bTxEnable = false;
+ WAPI_TRACE(WAPI_API, "%s(): keyid=%d\n",__FUNCTION__, pWapiSta->wapiMskUpdate.keyId);
+ WAPI_DATA(WAPI_API, "SetKey - ASUE Msk Data Key", pWapiSta->wapiMskUpdate.dataKey, 16);
+ WAPI_DATA(WAPI_API, "SetKey - ASUE Msk Mic Key", pWapiSta->wapiMskUpdate.micKey, 16);
+ }
+ }
+ break;
+ default:
+ WAPI_TRACE(WAPI_ERR, "%s(): Unknown Flag!\n",__FUNCTION__);
+ break;
+ }
+ }
+ }
+ }
+ break;
+ }
+ case WAPI_CMD_SET_MULTICAST_PN:
+ {
+ PRT_WAPI_T pWapiInfo = &ieee->wapiInfo;
+ PRT_WAPI_STA_INFO pWapiSta;
+ u8 data[22];
+ u8 k;
+
+ WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SET_MULTICAST_PN!\n",__FUNCTION__);
+ if (!ieee->WapiSupport)
+ {
+ ret = -1;
+ break;
+ }
+ if(wrq->u.data.length < 22){
+ ret = -1;
+ break;
+ }
+
+ memcpy(data, (u8 *)wrq->u.data.pointer, 22);
+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
+ if(!memcmp(pWapiSta->PeerMacAddr,data,6))
+ {
+ for(k=0;k<16;k++)
+ pWapiSta->lastRxMulticastPN[k] = data[21-k];
+ break;
+ }
+ }
+ WAPI_DATA(WAPI_API, "Multicast Rx PN:", pWapiSta->lastRxMulticastPN, 16);
+ break;
+ }
+ case WAPI_CMD_GET_PN:
+ {
+ PRT_WAPI_T pWapiInfo = &ieee->wapiInfo;
+
+ WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_GET_PN!\n",__FUNCTION__);
+ if (!ieee->WapiSupport){
+ ret = -1;
+ break;
+ }
+ if(wrq->u.data.length<16){
+ ret = -1;
+ break;
+ }
+ if(copy_to_user((void *)(wrq->u.data.pointer), pWapiInfo->lastTxMulticastPN, 16)==0)
+ wrq->u.data.length = 16;
+ break;
+ }
+ case WAPI_CMD_GET_WAPIIE:
+ {
+ PRT_WAPI_T pWapiInfo = &ieee->wapiInfo;
+ u8 data[512];
+ u8 Length = 0;
+
+ WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_GET_WAPIIE!\n",__FUNCTION__);
+ if (!ieee->WapiSupport){
+ ret = -1;
+ break;
+ }
+ if(wrq->u.data.length<257){
+ ret = -1;
+ break;
+ }
+
+ if(ieee->iw_mode == IW_MODE_INFRA){
+ data[0]= pWapiInfo->assoReqWapiIELength;
+ Length ++;
+ memcpy(data+Length,pWapiInfo->assoReqWapiIE,pWapiInfo->assoReqWapiIELength);
+ Length += pWapiInfo->assoReqWapiIELength;
+ }
+ else if(ieee->iw_mode == IW_MODE_ADHOC){
+ WAPI_DATA(WAPI_API, "GetWapiIE - ADHOC", pWapiInfo->sendbeaconWapiIE, pWapiInfo->sendbeaconWapiIELength);
+ data[0] = pWapiInfo->sendbeaconWapiIELength;
+ Length++;
+ memcpy(data+Length,pWapiInfo->sendbeaconWapiIE,pWapiInfo->sendbeaconWapiIELength);
+ Length += pWapiInfo->sendbeaconWapiIELength;
+ }
+
+ if(copy_to_user((void *)(wrq->u.data.pointer), data, Length)==0)
+ wrq->u.data.length = Length;
+ break;
+ }
+ case WAPI_CMD_SET_SSID:
+ {
+ u8 ssid[IW_ESSID_MAX_SIZE + 1];
+
+ WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SET_SSID!\n",__FUNCTION__);
+ if (!ieee->WapiSupport){
+ ret = -1;
+ break;
+ }
+ if((wrq->u.data.length == 0) || (NULL == wrq->u.data.pointer)){
+ ret = -1;
+ break;
+ }
+ if(wrq->u.data.length > IW_ESSID_MAX_SIZE){
+ ret = -1;
+ break;
+ }
+ printk("===>%s(): wrq->u.essid.flags is %d\n",__FUNCTION__,wrq->u.essid.flags);
+ copy_from_user(ssid, (u8 *)wrq->u.essid.pointer, wrq->u.essid.length);
+
+#ifdef TO_DO_LIST
+ if(!ieee->wapiInfo.bWapiEnable)
+ SetEncryptState(dev);
+#endif
+ if((priv->bHwRadioOff == true) || (!priv->up)){
+ ret = -1;
+ break;
+ }
+ ret = rtllib_wx_set_essid(ieee,NULL,(union iwreq_data *)&(wrq->u),ssid);
+
+ break;
+ }
+ case WAPI_CMD_GET_BSSID:
+ WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_GET_BSSID!\n",__FUNCTION__);
+ if (!ieee->WapiSupport){
+ ret = -1;
+ break;
+ }
+ if((ieee->iw_mode == IW_MODE_INFRA) || (ieee->iw_mode == IW_MODE_ADHOC) ){
+ if(copy_to_user((void *)(wrq->u.data.pointer), ieee->current_network.bssid, ETH_ALEN)==0)
+ wrq->u.data.length = ETH_ALEN;
+ }else{
+ ret = -1;
+ }
+ break;
+#if 0
+ case WAPI_CMD_GET_LINK_STATUS:
+ {
+ u8 connect_status = 0;
+
+ WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_GET_LINK_STATUS!\n",__FUNCTION__);
+ if(ieee->state == IEEE80211_LINKED)
+ connect_status = 1;
+ if(copy_to_user((void *)(wrq->u.data.pointer), &connect_status, sizeof(u8))==0)
+ wrq->u.data.length = sizeof(u8);
+ break;
+ }
+#endif
+ case WAPI_CMD_SET_IW_MODE:
+ {
+ union iwreq_data *wrqu = (union iwreq_data *)&(wrq->u);
+ WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SET_IW_MODE!\n",__FUNCTION__);
+ if (!ieee->WapiSupport){
+ ret = -1;
+ break;
+ }
+ WAPI_TRACE(WAPI_API, "%s(): Set iw_mode %d!\n",__FUNCTION__, wrqu->mode);
+ wapi_ioctl_set_mode(dev, NULL, wrqu, NULL);
+ if(wrqu->mode == IW_MODE_ADHOC)
+ ConstructWapiIEForInit(ieee);
+ break;
+ }
+ case WAPI_CMD_SET_DISASSOCIATE:
+ {
+ u8 destAddr[6];
+
+ WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SET_DISASSOCIATE!\n",__FUNCTION__);
+ if (!ieee->WapiSupport){
+ ret = -1;
+ break;
+ }
+ if(wrq->u.data.length != 6){
+ ret = -1;
+ break;
+ }
+ copy_from_user(destAddr, (u8 *)(wrq->u.data.pointer), wrq->u.data.length);
+
+ if(ieee->iw_mode == IW_MODE_INFRA){
+ SendDisassociation(ieee,1,deauth_lv_ss);
+ ieee80211_disassociate_from_app(ieee);
+ }else if(ieee->iw_mode == IW_MODE_ADHOC){
+ WAPI_TRACE(WAPI_API, "%s(): Disassociate "MAC_FMT"!\n",__FUNCTION__, MAC_ARG(destAddr));
+ WapiReturnOneStaInfo(ieee, destAddr, 1);
+ DelStaInfo(ieee, destAddr);
+ }
+ break;
+ }
+ case WAPI_CMD_SAVE_PID:
+ {
+ u8 strPID[10];
+ u32 len = 0;
+ int i = 0;
+
+ WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_SAVE_PID!\n",__FUNCTION__);
+ if (!ieee->WapiSupport){
+ ret = -1;
+ break;
+ }
+ if ( !wrq->u.data.pointer ){
+ ret = -1;
+ break;
+ }
+
+ len = wrq->u.data.length;
+ memset(strPID, 0, sizeof(strPID));
+ if(copy_from_user(strPID, (void *)wrq->u.data.pointer, len)){
+ ret = -1;
+ break;
+ }
+
+ pid_wapi = 0;
+ for(i = 0; i < len; i++) {
+ pid_wapi = pid_wapi * 10 + (strPID[i] - 48);
+ }
+ WAPI_TRACE(WAPI_API, "%s(): strPID=%s pid_wapi=%d!\n",__FUNCTION__, strPID, pid_wapi);
+ break;
+ }
+ case WAPI_CMD_DEQUEUE:
+ {
+ int QueueDataLen = 0;
+
+ WAPI_TRACE(WAPI_API, "%s(): WAPI_CMD_DEQUEUE!\n",__FUNCTION__);
+ if((ret = WAPI_DeQueue(&ieee->wapi_queue_lock, ieee->wapi_queue, QueueData, &QueueDataLen)) != 0){
+ if(copy_to_user((void *)(wrq->u.data.pointer), DATAQUEUE_EMPTY, sizeof(DATAQUEUE_EMPTY))==0)
+ wrq->u.data.length = sizeof(DATAQUEUE_EMPTY);
+ }else{
+ if(copy_to_user((void *)wrq->u.data.pointer, (void *)QueueData, QueueDataLen)==0)
+ wrq->u.data.length = QueueDataLen;
+ }
+ break;
+ }
+ default:
+ WAPI_TRACE(WAPI_ERR, "%s(): Error CMD!\n",__FUNCTION__);
+ break;
+ }
+
+ return ret;
+}
+#endif
+
+/* based on ipw2200 driver */
+int rtl8192_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ struct iwreq *wrq = (struct iwreq *)rq;
+ int ret=-1;
+ struct rtllib_device *ieee = priv->rtllib;
+ u32 key[4];
+ u8 broadcast_addr[6] = {0xff,0xff,0xff,0xff,0xff,0xff};
+ u8 zero_addr[6] = {0};
+ struct iw_point *p = &wrq->u.data;
+
+ down(&priv->wx_sem);
+
+ switch (cmd) {
+ case RTL_IOCTL_WPA_SUPPLICANT:
+ {
+ struct ieee_param *ipw = NULL;
+ if (p->length < sizeof(struct ieee_param) || !p->pointer){
+ ret = -EINVAL;
+ goto out;
+ }
+
+ ipw = (struct ieee_param *)kmalloc(p->length, GFP_KERNEL);
+ if (ipw == NULL){
+ ret = -ENOMEM;
+ goto out;
+ }
+ if (copy_from_user(ipw, p->pointer, p->length)) {
+ kfree(ipw);
+ ret = -EFAULT;
+ goto out;
+ }
+
+ if (ipw->cmd == IEEE_CMD_SET_ENCRYPTION)
+ {
+ if (ipw->u.crypt.set_tx)
+ {
+ if (strcmp(ipw->u.crypt.alg, "CCMP") == 0)
+ ieee->pairwise_key_type = KEY_TYPE_CCMP;
+ else if (strcmp(ipw->u.crypt.alg, "TKIP") == 0)
+ ieee->pairwise_key_type = KEY_TYPE_TKIP;
+ else if (strcmp(ipw->u.crypt.alg, "WEP") == 0)
+ {
+ if (ipw->u.crypt.key_len == 13)
+ ieee->pairwise_key_type = KEY_TYPE_WEP104;
+ else if (ipw->u.crypt.key_len == 5)
+ ieee->pairwise_key_type = KEY_TYPE_WEP40;
+ }
+ else
+ ieee->pairwise_key_type = KEY_TYPE_NA;
+
+ if (ieee->pairwise_key_type)
+ {
+ if (memcmp(ieee->ap_mac_addr, zero_addr, 6) == 0)
+ ieee->iw_mode = IW_MODE_ADHOC;
+
+ memcpy((u8*)key, ipw->u.crypt.key, 16);
+ EnableHWSecurityConfig8192(dev);
+ set_swcam(dev, 4, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8*)ieee->ap_mac_addr, 0, key,0);
+ setKey(dev, 4, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8*)ieee->ap_mac_addr, 0, key);
+ if (ieee->iw_mode == IW_MODE_ADHOC){
+ set_swcam(dev, ipw->u.crypt.idx, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8*)ieee->ap_mac_addr, 0, key,0);
+ setKey(dev, ipw->u.crypt.idx, ipw->u.crypt.idx, ieee->pairwise_key_type, (u8*)ieee->ap_mac_addr, 0, key);
+ }
+ }
+#ifdef RTL8192E
+ if ((ieee->pairwise_key_type == KEY_TYPE_CCMP) && ieee->pHTInfo->bCurrentHTSupport){
+ write_nic_byte(dev, 0x173, 1);
+ }
+#endif
+
+ }
+ else
+ {
+ memcpy((u8*)key, ipw->u.crypt.key, 16);
+ if (strcmp(ipw->u.crypt.alg, "CCMP") == 0)
+ ieee->group_key_type= KEY_TYPE_CCMP;
+ else if (strcmp(ipw->u.crypt.alg, "TKIP") == 0)
+ ieee->group_key_type = KEY_TYPE_TKIP;
+ else if (strcmp(ipw->u.crypt.alg, "WEP") == 0)
+ {
+ if (ipw->u.crypt.key_len == 13)
+ ieee->group_key_type = KEY_TYPE_WEP104;
+ else if (ipw->u.crypt.key_len == 5)
+ ieee->group_key_type = KEY_TYPE_WEP40;
+ }
+ else
+ ieee->group_key_type = KEY_TYPE_NA;
+
+ if (ieee->group_key_type)
+ {
+ set_swcam( dev,
+ ipw->u.crypt.idx,
+ ipw->u.crypt.idx,
+ ieee->group_key_type,
+ broadcast_addr,
+ 0,
+ key,
+ 0);
+ setKey( dev,
+ ipw->u.crypt.idx,
+ ipw->u.crypt.idx,
+ ieee->group_key_type,
+ broadcast_addr,
+ 0,
+ key);
+ }
+ }
+ }
+#ifdef JOHN_DEBUG
+ {
+ int i;
+ printk("@@ wrq->u pointer = ");
+ for(i=0;i<wrq->u.data.length;i++){
+ if(i%10==0) printk("\n");
+ printk( "%8x|", ((u32*)wrq->u.data.pointer)[i] );
+ }
+ printk("\n");
+ }
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ ret = rtllib_wpa_supplicant_ioctl(priv->rtllib, &wrq->u.data,0);
+#else
+ ret = rtllib_wpa_supplicant_ioctl(priv->rtllib, &wrq->u.data);
+#endif
+ kfree(ipw);
+ break;
+ }
+#if defined (RTL8192S_WAPI_SUPPORT)
+ case WAPI_CMD_GET_WAPI_SUPPORT:
+ case WAPI_CMD_SET_WAPI_ENABLE:
+ case WAPI_CMD_SET_WAPI_PSK:
+ case WAPI_CMD_SET_KEY:
+ case WAPI_CMD_SET_MULTICAST_PN:
+ case WAPI_CMD_GET_PN:
+ case WAPI_CMD_GET_WAPIIE:
+ case WAPI_CMD_SET_SSID:
+ case WAPI_CMD_GET_BSSID:
+ case WAPI_CMD_SET_IW_MODE:
+ case WAPI_CMD_SET_DISASSOCIATE:
+ case WAPI_CMD_SAVE_PID:
+ case WAPI_CMD_DEQUEUE:
+ ret = WAPI_Ioctl(dev, wrq, cmd);
+ break;
+#endif
+ default:
+ ret = -EOPNOTSUPP;
+ break;
+ }
+
+out:
+ up(&priv->wx_sem);
+
+ return ret;
+}
+
+irqreturn_type rtl8192_interrupt(int irq, void *netdev, struct pt_regs *regs)
+{
+ struct net_device *dev = (struct net_device *) netdev;
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+#ifdef _RTL8192_EXT_PATCH_
+ struct net_device *meshdev = ((struct rtllib_device *)netdev_priv_rsl(dev))->meshdev;
+#endif
+ unsigned long flags;
+ u32 inta;
+ u32 intb;
+ intb = 0;
+
+ if(priv->irq_enabled == 0){
+ goto done;
+ }
+
+ spin_lock_irqsave(&priv->irq_th_lock,flags);
+
+ priv->ops->interrupt_recognized(dev, &inta, &intb);
+ priv->stats.shints++;
+
+ if (!inta) {
+ spin_unlock_irqrestore(&priv->irq_th_lock,flags);
+ goto done;
+ }
+
+ if (inta == 0xffff) {
+ spin_unlock_irqrestore(&priv->irq_th_lock,flags);
+ goto done;
+ }
+
+ priv->stats.ints++;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if (!netif_running(dev) && !netif_running(meshdev))
+#else
+ if (!netif_running(dev))
+#endif
+ {
+ spin_unlock_irqrestore(&priv->irq_th_lock,flags);
+ goto done;
+ }
+
+#if defined RTL8192SE
+ if(intb & IMR_TBDOK){
+ RT_TRACE(COMP_INTR, "beacon ok interrupt!\n");
+ priv->stats.txbeaconokint++;
+ }
+
+ if(intb & IMR_TBDER){
+ RT_TRACE(COMP_INTR, "beacon ok interrupt!\n");
+ priv->stats.txbeaconerr++;
+ }
+#else
+ if(inta & IMR_TBDOK){
+ RT_TRACE(COMP_INTR, "beacon ok interrupt!\n");
+ priv->stats.txbeaconokint++;
+ }
+
+ if(inta & IMR_TBDER){
+ RT_TRACE(COMP_INTR, "beacon ok interrupt!\n");
+ priv->stats.txbeaconerr++;
+ }
+#endif
+
+ if(inta & IMR_BDOK) {
+ RT_TRACE(COMP_INTR, "beacon interrupt!\n");
+ rtl8192_tx_isr(dev, BEACON_QUEUE);
+ }
+
+ if(inta & IMR_MGNTDOK ) {
+ RT_TRACE(COMP_INTR, "Manage ok interrupt!\n");
+ priv->stats.txmanageokint++;
+ rtl8192_tx_isr(dev,MGNT_QUEUE);
+ spin_unlock_irqrestore(&priv->irq_th_lock,flags);
+ if (priv->rtllib->ack_tx_to_ieee){
+ if (rtl8192_is_tx_queue_empty(dev)){
+ priv->rtllib->ack_tx_to_ieee = 0;
+ rtllib_ps_tx_ack(priv->rtllib, 1);
+ }
+ }
+ spin_lock_irqsave(&priv->irq_th_lock,flags);
+ }
+
+#ifndef RTL8192CE
+ if (inta & IMR_COMDOK) {
+ priv->stats.txcmdpktokint++;
+ rtl8192_tx_isr(dev,TXCMD_QUEUE);
+ }
+#endif
+
+ if (inta & IMR_HIGHDOK) {
+ rtl8192_tx_isr(dev,HIGH_QUEUE);
+ }
+
+#ifdef RTL8192SE
+ if ((inta & IMR_ROK) || (inta & IMR_RXCMDOK))
+#else
+ if (inta & IMR_ROK)
+#endif
+ {
+ priv->stats.rxint++;
+ priv->InterruptLog.nIMR_ROK++;
+ tasklet_schedule(&priv->irq_rx_tasklet);
+ }
+
+ if (inta & IMR_BcnInt) {
+ RT_TRACE(COMP_INTR, "prepare beacon for interrupt!\n");
+ tasklet_schedule(&priv->irq_prepare_beacon_tasklet);
+ }
+
+ if (inta & IMR_RDU) {
+ RT_TRACE(COMP_INTR, "rx descriptor unavailable!\n");
+ priv->stats.rxrdu++;
+#ifndef RTL8192CE
+ write_nic_dword(dev,INTA_MASK,read_nic_dword(dev, INTA_MASK) & ~IMR_RDU);
+#endif
+ tasklet_schedule(&priv->irq_rx_tasklet);
+ }
+
+ if (inta & IMR_RXFOVW) {
+ RT_TRACE(COMP_INTR, "rx overflow !\n");
+ priv->stats.rxoverflow++;
+ tasklet_schedule(&priv->irq_rx_tasklet);
+ }
+
+ if (inta & IMR_TXFOVW) priv->stats.txoverflow++;
+
+ if (inta & IMR_BKDOK) {
+ RT_TRACE(COMP_INTR, "BK Tx OK interrupt!\n");
+ priv->stats.txbkokint++;
+ priv->rtllib->LinkDetectInfo.NumTxOkInPeriod++;
+ rtl8192_tx_isr(dev,BK_QUEUE);
+ }
+
+ if (inta & IMR_BEDOK) {
+ RT_TRACE(COMP_INTR, "BE TX OK interrupt!\n");
+ priv->stats.txbeokint++;
+ priv->rtllib->LinkDetectInfo.NumTxOkInPeriod++;
+ rtl8192_tx_isr(dev,BE_QUEUE);
+ }
+
+ if (inta & IMR_VIDOK) {
+ RT_TRACE(COMP_INTR, "VI TX OK interrupt!\n");
+ priv->stats.txviokint++;
+ priv->rtllib->LinkDetectInfo.NumTxOkInPeriod++;
+ rtl8192_tx_isr(dev,VI_QUEUE);
+ }
+
+ if (inta & IMR_VODOK) {
+ priv->stats.txvookint++;
+ RT_TRACE(COMP_INTR, "Vo TX OK interrupt!\n");
+ priv->rtllib->LinkDetectInfo.NumTxOkInPeriod++;
+ rtl8192_tx_isr(dev,VO_QUEUE);
+ }
+
+ spin_unlock_irqrestore(&priv->irq_th_lock,flags);
+
+done:
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+ return;
+#else
+ return IRQ_HANDLED;
+#endif
+}
+
+#ifdef RTL8192CE
+static void rtl8192_parse_pci_configuration(struct pci_dev *pdev, struct net_device *dev)
+{
+ u8 tmp;
+
+ pci_read_config_byte(pdev, 0x98, &tmp);
+ tmp |=BIT4;
+ pci_write_config_byte(pdev, 0x98, tmp);
+
+ tmp = 0x17;
+ pci_write_config_byte(pdev, 0x70f, tmp);
+}
+#endif
+
+bool rtl8192_pci_findadapter(struct pci_dev *pdev, struct net_device *dev)
+{
+ u16 DeviceID;
+ u8 RevisionID = 0;
+
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ pci_read_config_word(pdev, 0x2, &DeviceID);
+ pci_read_config_byte(pdev, 0x8, &RevisionID);
+ if (DeviceID == HAL_HW_PCI_8190_DEVICE_ID ||DeviceID == HAL_HW_PCI_0045_DEVICE_ID ||
+ DeviceID == HAL_HW_PCI_0046_DEVICE_ID ||DeviceID == HAL_HW_PCI_DLINK_DEVICE_ID){
+ printk("Adapter(8190 PCI) is found - DeviceID=%x\n", DeviceID);
+ priv->ops->nic_type = priv->card_8192 = NIC_8190P;
+ } else if (DeviceID == HAL_HW_PCI_8192_DEVICE_ID ||DeviceID == HAL_HW_PCI_0044_DEVICE_ID ||
+ DeviceID == HAL_HW_PCI_0047_DEVICE_ID || DeviceID == HAL_HW_PCI_8192SE_DEVICE_ID ||
+ DeviceID == HAL_HW_PCI_8174_DEVICE_ID || DeviceID == HAL_HW_PCI_8173_DEVICE_ID ||
+ DeviceID == HAL_HW_PCI_8172_DEVICE_ID || DeviceID == HAL_HW_PCI_8171_DEVICE_ID) {
+
+ switch(RevisionID)
+ {
+ case HAL_HW_PCI_REVISION_ID_8192PCIE:
+ printk("Adapter(8192 PCI-E) is found - DeviceID=%x\n", DeviceID);
+ priv->ops->nic_type = priv->card_8192 = NIC_8192E;
+ break;
+ case HAL_HW_PCI_REVISION_ID_8192SE:
+ printk("Adapter(8192SE) is found - DeviceID=%x\n", DeviceID);
+ priv->card_8192 = NIC_8192SE;
+ break;
+ default:
+ printk("UNKNOWN nic type(%4x:%4x)\n", pdev->vendor, pdev->device);
+ priv->card_8192 = NIC_UNKNOWN;
+
+ return false;
+ break;
+
+ }
+ } else
+ if (DeviceID == HAL_HW_PCI_8192CET_DEVICE_ID ||DeviceID == HAL_HW_PCI_8192CE_DEVICE_ID ||
+ DeviceID == HAL_HW_PCI_8191CE_DEVICE_ID ||DeviceID == HAL_HW_PCI_8188CE_DEVICE_ID) {
+ printk("Adapter(8192CE) is found - DeviceID=%x\n", DeviceID);
+ priv->ops->nic_type = priv->card_8192 = NIC_8192CE;
+ } else {
+ printk("Unknown device - DeviceID=%x\n", DeviceID);
+ priv->ops->nic_type = priv->card_8192 = NIC_8192DE;
+ }
+
+#ifdef RTL8192CE
+ rtl8192_parse_pci_configuration(pdev, dev);
+#endif
+
+ return true;
+}
+
+/****************************************************************************
+ ---------------------------- PCI_STUFF---------------------------
+*****************************************************************************/
+#ifdef HAVE_NET_DEVICE_OPS
+static const struct net_device_ops rtl8192_netdev_ops = {
+ .ndo_open = rtl8192_open,
+ .ndo_stop = rtl8192_close,
+ .ndo_tx_timeout = rtl8192_tx_timeout,
+ .ndo_do_ioctl = rtl8192_ioctl,
+ .ndo_set_multicast_list = r8192_set_multicast,
+ .ndo_set_mac_address = r8192_set_mac_adr,
+ .ndo_validate_addr = eth_validate_addr,
+ .ndo_change_mtu = eth_change_mtu,
+ .ndo_start_xmit = rtllib_xmit,
+};
+#endif
+
+static int __devinit rtl8192_pci_probe(struct pci_dev *pdev,
+ const struct pci_device_id *id)
+{
+ unsigned long ioaddr = 0;
+ struct net_device *dev = NULL;
+ struct r8192_priv *priv= NULL;
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ struct rtl819x_ops *ops = (struct rtl819x_ops *)(id->driver_data);
+#endif
+
+#ifdef CONFIG_RTL8192_IO_MAP
+ unsigned long pio_start, pio_len, pio_flags;
+#else
+ unsigned long pmem_start, pmem_len, pmem_flags;
+#endif
+ int err = 0;
+#ifdef _RTL8192_EXT_PATCH_
+ int result;
+ struct net_device *meshdev = NULL;
+ struct meshdev_priv *mpriv;
+ char meshifname[]="mesh0";
+#endif
+ bool bdma64 = false;
+
+ RT_TRACE(COMP_INIT,"Configuring chip resources");
+
+ if( pci_enable_device (pdev) ){
+ RT_TRACE(COMP_ERR,"Failed to enable PCI device");
+ return -EIO;
+ }
+
+ pci_set_master(pdev);
+
+#ifdef CONFIG_64BIT_DMA
+ if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(64))) {
+ printk("RTL819xCE: Using 64bit DMA\n");
+ if (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(64))) {
+ printk( "Unable to obtain 64bit DMA for consistent allocations\n");
+ pci_disable_device(pdev);
+ return -ENOMEM;
+ }
+ bdma64 = true;
+ } else
+#endif
+ {
+ if (!pci_set_dma_mask(pdev, DMA_BIT_MASK(32))) {
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ if (pci_set_consistent_dma_mask(pdev, DMA_BIT_MASK(32))) {
+ printk( "Unable to obtain 32bit DMA for consistent allocations\n");
+ pci_disable_device(pdev);
+ return -ENOMEM;
+ }
+#endif
+ }
+ }
+ dev = alloc_rtllib(sizeof(struct r8192_priv));
+ if (!dev)
+ return -ENOMEM;
+
+ if(bdma64){
+ dev->features |= NETIF_F_HIGHDMA;
+ }
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
+ SET_MODULE_OWNER(dev);
+#endif
+
+ pci_set_drvdata(pdev, dev);
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ SET_NETDEV_DEV(dev, &pdev->dev);
+#endif
+ priv = rtllib_priv(dev);
+ priv->rtllib = (struct rtllib_device *)netdev_priv_rsl(dev);
+ priv->pdev=pdev;
+ priv->rtllib->pdev=pdev;
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ if((pdev->subsystem_vendor == PCI_VENDOR_ID_DLINK)&&(pdev->subsystem_device == 0x3304)){
+ priv->rtllib->bSupportRemoteWakeUp = 1;
+ } else
+#endif
+ {
+ priv->rtllib->bSupportRemoteWakeUp = 0;
+ }
+
+#ifdef CONFIG_RTL8192_IO_MAP
+ pio_start = (unsigned long)pci_resource_start (pdev, 0);
+ pio_len = (unsigned long)pci_resource_len (pdev, 0);
+ pio_flags = (unsigned long)pci_resource_flags (pdev, 0);
+
+ if (!(pio_flags & IORESOURCE_IO)) {
+ RT_TRACE(COMP_ERR,"region #0 not a PIO resource, aborting");
+ goto fail;
+ }
+
+ printk("Io mapped space start: 0x%08lx \n", pio_start );
+ if( ! request_region( pio_start, pio_len, DRV_NAME ) ){
+ RT_TRACE(COMP_ERR,"request_region failed!");
+ goto fail;
+ }
+
+ ioaddr = pio_start;
+ dev->base_addr = ioaddr;
+#else
+#ifdef RTL8192CE
+ pmem_start = pci_resource_start(pdev, 2);
+ pmem_len = pci_resource_len(pdev, 2);
+ pmem_flags = pci_resource_flags (pdev, 2);
+#else
+ pmem_start = pci_resource_start(pdev, 1);
+ pmem_len = pci_resource_len(pdev, 1);
+ pmem_flags = pci_resource_flags (pdev, 1);
+#endif
+
+ if (!(pmem_flags & IORESOURCE_MEM)) {
+ RT_TRACE(COMP_ERR,"region #1 not a MMIO resource, aborting");
+ goto fail;
+ }
+
+ printk("Memory mapped space start: 0x%08lx \n", pmem_start);
+ if (!request_mem_region(pmem_start, pmem_len, DRV_NAME)) {
+ RT_TRACE(COMP_ERR,"request_mem_region failed!");
+ goto fail;
+ }
+
+
+ ioaddr = (unsigned long)ioremap_nocache( pmem_start, pmem_len);
+ if( ioaddr == (unsigned long)NULL ){
+ RT_TRACE(COMP_ERR,"ioremap failed!");
+ goto fail1;
+ }
+
+ dev->mem_start = ioaddr;
+ dev->mem_end = ioaddr + pci_resource_len(pdev, 0);
+
+#endif
+#if defined RTL8192SE || defined RTL8192CE
+ pci_write_config_byte(pdev, 0x81,0);
+ pci_write_config_byte(pdev,0x44,0);
+ pci_write_config_byte(pdev,0x04,0x06);
+ pci_write_config_byte(pdev,0x04,0x07);
+#endif
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ priv->ops = ops;
+#else
+#if defined RTL8190P || defined RTL8192E
+ priv->ops = &rtl819xp_ops;
+#else
+ priv->ops = &rtl8192se_ops;
+#endif
+#endif
+
+ if(rtl8192_pci_findadapter(pdev, dev) == false)
+ goto fail1;
+
+ dev->irq = pdev->irq;
+ priv->irq = 0;
+
+#ifdef HAVE_NET_DEVICE_OPS
+ dev->netdev_ops = &rtl8192_netdev_ops;
+#else
+ dev->open = rtl8192_open;
+ dev->stop = rtl8192_close;
+ dev->tx_timeout = rtl8192_tx_timeout;
+ dev->do_ioctl = rtl8192_ioctl;
+ dev->set_multicast_list = r8192_set_multicast;
+ dev->set_mac_address = r8192_set_mac_adr;
+ dev->hard_start_xmit = rtllib_xmit;
+#endif
+
+#if WIRELESS_EXT >= 12
+#if WIRELESS_EXT < 17
+ dev->get_wireless_stats = r8192_get_wireless_stats;
+#endif
+ dev->wireless_handlers = (struct iw_handler_def *) &r8192_wx_handlers_def;
+#endif
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ dev->ethtool_ops = &rtl819x_ethtool_ops;
+#endif
+
+ dev->type = ARPHRD_ETHER;
+ dev->watchdog_timeo = HZ*3;
+
+ if (dev_alloc_name(dev, ifname) < 0){
+ RT_TRACE(COMP_INIT, "Oops: devname already taken! Trying wlan%%d...\n");
+ dev_alloc_name(dev, ifname);
+ }
+
+ RT_TRACE(COMP_INIT, "Driver probe completed1\n");
+ if(rtl8192_init(dev)!=0){
+ RT_TRACE(COMP_ERR, "Initialization failed");
+ goto fail1;
+ }
+
+#ifdef CONFIG_CFG_80211
+ if(!rtl8192_register_wiphy_dev(dev))
+ goto fail1;
+#endif
+
+ netif_carrier_off(dev);
+ netif_stop_queue(dev);
+
+ register_netdev(dev);
+ RT_TRACE(COMP_INIT, "dev name: %s\n",dev->name);
+ err = rtl_debug_module_init(priv, dev->name);
+ if (err) {
+ RT_TRACE(COMP_DBG, "failed to create debugfs files. Ignoring error: %d\n", err);
+ }
+ rtl8192_proc_init_one(dev);
+
+#ifdef ENABLE_GPIO_RADIO_CTL
+ if(priv->polling_timer_on == 0){
+ check_rfctrl_gpio_timer((unsigned long)dev);
+ }
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ meshdev = alloc_netdev(sizeof(struct meshdev_priv),meshifname,meshdev_init);
+ netif_stop_queue(meshdev);
+ memcpy(meshdev->dev_addr, dev->dev_addr, ETH_ALEN);
+ DMESG("Card MAC address for meshdev is "MAC_FMT, MAC_ARG(meshdev->dev_addr));
+
+ meshdev->base_addr = dev->base_addr;
+ meshdev->irq = dev->irq;
+ meshdev->mem_start = dev->mem_start;
+ meshdev->mem_end = dev->mem_end;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
+ SET_NETDEV_DEV(meshdev, dev->dev.parent);
+#endif
+
+ if ((result = register_netdev(meshdev)))
+ {
+ printk("Error %i registering device %s",result, meshdev->name);
+ goto fail;
+ }
+ else
+ {
+ mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ priv->rtllib->meshdev=meshdev;
+ priv->rtllib->meshstats=meshdev_stats(meshdev);
+ priv->rtllib->only_mesh = 1;
+ priv->rtllib->p2pmode = 0;
+ priv->rtllib->serverExtChlOffset = 0;
+ priv->rtllib->APExtChlOffset = 0;
+ mpriv->rtllib = priv->rtllib;
+ mpriv->priv = priv;
+ }
+#endif
+
+#ifdef RTL8192CE
+ mdelay(1000);
+#endif
+
+#ifdef CONFIG_RTL_RFKILL
+ if (priv->ops->init_before_adapter_start) {
+ priv->ops->init_before_adapter_start(dev);
+ priv->initialized_at_probe = true;
+ }
+ if (!rtl8192_rfkill_init(dev)) {
+ goto fail1;
+ }
+#endif
+
+#if defined CONFIG_ASPM_OR_D3
+ rtl8192_initialize_adapter_common(dev);
+#endif
+
+ RT_TRACE(COMP_INIT, "Driver probe completed\n");
+ return 0;
+
+fail1:
+#ifdef CONFIG_RTL8192_IO_MAP
+
+ if( dev->base_addr != 0 ){
+
+ release_region(dev->base_addr,
+ pci_resource_len(pdev, 0) );
+ }
+#else
+ if( dev->mem_start != (unsigned long)NULL ){
+ iounmap( (void *)dev->mem_start );
+#ifdef RTL8192CE
+ release_mem_region( pci_resource_start(pdev, 2),
+ pci_resource_len(pdev, 2) );
+#else
+ release_mem_region( pci_resource_start(pdev, 1),
+ pci_resource_len(pdev, 1) );
+#endif
+ }
+#endif
+
+fail:
+ if(dev){
+
+ if (priv->irq) {
+ free_irq(dev->irq, dev);
+ dev->irq=0;
+ }
+ free_rtllib(dev);
+ }
+
+ pci_disable_device(pdev);
+
+ DMESG("wlan driver load failed\n");
+ pci_set_drvdata(pdev, NULL);
+ return -ENODEV;
+
+}
+
+static void __devexit rtl8192_pci_disconnect(struct pci_dev *pdev)
+{
+ struct net_device *dev = pci_get_drvdata(pdev);
+ struct r8192_priv *priv ;
+#ifdef _RTL8192_EXT_PATCH_
+ struct net_device *meshdev;
+#endif
+ if(dev){
+#ifdef CONFIG_RTL_RFKILL
+ rtl8192_rfkill_exit(dev);
+#endif
+ unregister_netdev(dev);
+
+ priv = rtllib_priv(dev);
+
+#ifdef _RTL8192_EXT_PATCH_
+ rtl8192_dinit_mshobj(priv);
+#endif
+
+#ifdef ENABLE_GPIO_RADIO_CTL
+ del_timer_sync(&priv->gpio_polling_timer);
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ cancel_delayed_work(&priv->gpio_change_rf_wq);
+#endif
+ priv->polling_timer_on = 0;
+#endif
+ rtl_debug_module_remove(priv);
+ rtl8192_proc_remove_one(dev);
+#ifdef _RTL8192_EXT_PATCH_
+ rtl8192_down(dev,true);
+ if(priv && priv->rtllib->meshdev)
+ {
+ meshdev = priv->rtllib->meshdev;
+ priv->rtllib->meshdev = NULL;
+
+ if(meshdev){
+ meshdev_down(meshdev);
+ unregister_netdev(meshdev);
+ }
+ }
+#else
+ rtl8192_down(dev,true);
+#endif
+ deinit_hal_dm(dev);
+#ifdef CONFIG_ASPM_OR_D3
+ ;
+#endif
+#ifdef RTL8192SE
+ DeInitSwLeds(dev);
+#endif
+ if (priv->pFirmware)
+ {
+ vfree(priv->pFirmware);
+ priv->pFirmware = NULL;
+ }
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ destroy_workqueue(priv->priv_wq);
+#endif
+ {
+ u32 i;
+ rtl8192_free_rx_ring(dev);
+ for (i = 0; i < MAX_TX_QUEUE_COUNT; i++) {
+ rtl8192_free_tx_ring(dev, i);
+ }
+ }
+
+ if(priv->irq){
+
+ printk("Freeing irq %d\n",dev->irq);
+ free_irq(dev->irq, dev);
+ priv->irq=0;
+
+ }
+#ifdef CONFIG_RTL8192_IO_MAP
+ if( dev->base_addr != 0 ){
+
+ release_region(dev->base_addr,
+ pci_resource_len(pdev, 0) );
+ }
+#else
+ if( dev->mem_start != (unsigned long)NULL ){
+ iounmap( (void *)dev->mem_start );
+#ifdef RTL8192CE
+ release_mem_region( pci_resource_start(pdev, 2),
+ pci_resource_len(pdev, 2) );
+#else
+ release_mem_region( pci_resource_start(pdev, 1),
+ pci_resource_len(pdev, 1) );
+#endif
+ }
+#endif /*end #ifdef RTL_IO_MAP*/
+ free_rtllib(dev);
+
+ if(priv->scan_cmd)
+ kfree(priv->scan_cmd);
+
+ } else{
+ priv=rtllib_priv(dev);
+ }
+
+ pci_disable_device(pdev);
+#ifdef RTL8192SE
+ pci_write_config_byte(pdev, 0x81,1);
+ pci_write_config_byte(pdev,0x44,3);
+#endif
+ RT_TRACE(COMP_DOWN, "wlan driver removed\n");
+}
+
+bool NicIFEnableNIC(struct net_device* dev)
+{
+ bool init_status = true;
+ struct r8192_priv* priv = rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+
+ if(IS_NIC_DOWN(priv)){
+ RT_TRACE(COMP_ERR, "ERR!!! %s(): Driver is already down!\n",__FUNCTION__);
+ priv->bdisable_nic = false;
+ return RT_STATUS_FAILURE;
+ }
+
+ RT_TRACE(COMP_PS, "===========>%s()\n",__FUNCTION__);
+ priv->bfirst_init = true;
+ init_status = priv->ops->initialize_adapter(dev);
+ if (init_status != true) {
+ RT_TRACE(COMP_ERR,"ERR!!! %s(): initialization is failed!\n",__FUNCTION__);
+ priv->bdisable_nic = false;
+ return -1;
+ }
+ RT_TRACE(COMP_INIT, "start adapter finished\n");
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC);
+ priv->bfirst_init = false;
+
+ rtl8192_irq_enable(dev);
+ priv->bdisable_nic = false;
+ RT_TRACE(COMP_PS,"<===========%s()\n",__FUNCTION__);
+ return init_status;
+}
+bool NicIFDisableNIC(struct net_device* dev)
+{
+ bool status = true;
+ struct r8192_priv* priv = rtllib_priv(dev);
+ u8 tmp_state = 0;
+ RT_TRACE(COMP_PS, "=========>%s()\n",__FUNCTION__);
+ priv->bdisable_nic = true;
+ tmp_state = priv->rtllib->state;
+#ifdef _RTL8192_EXT_PATCH_
+ if((priv->rtllib->iw_mode == IW_MODE_MESH) && (priv->rtllib->only_mesh))
+ rtllib_softmac_stop_protocol(priv->rtllib, 1, false);
+ else
+ rtllib_softmac_stop_protocol(priv->rtllib, 0, false);
+#else
+ rtllib_softmac_stop_protocol(priv->rtllib,false);
+#endif
+ priv->rtllib->state = tmp_state;
+ rtl8192_cancel_deferred_work(priv);
+ rtl8192_irq_disable(dev);
+
+ priv->ops->stop_adapter(dev, false);
+ RT_TRACE(COMP_PS, "<=========%s()\n",__FUNCTION__);
+
+ return status;
+}
+
+static int __init rtl8192_pci_module_init(void)
+{
+ int ret;
+ int error;
+
+#ifdef BUILT_IN_CRYPTO
+ ret = arc4_init();
+ if (ret) {
+ printk(KERN_ERR "arc4_init() failed %d\n", ret);
+ return ret;
+ }
+
+
+ ret = michael_mic_init();
+ if (ret) {
+ printk(KERN_ERR "michael_mic_init() failed %d\n", ret);
+ return ret;
+ }
+
+ ret = aes_init();
+ if (ret) {
+ printk(KERN_ERR "aes_init() failed %d\n", ret);
+ return ret;
+ }
+#endif
+#ifdef BUILT_IN_RTLLIB
+ ret = rtllib_init();
+ if (ret) {
+ printk(KERN_ERR "rtllib_init() failed %d\n", ret);
+ return ret;
+ }
+ ret = rtllib_crypto_init();
+ if (ret) {
+ printk(KERN_ERR "rtllib_crypto_init() failed %d\n", ret);
+ return ret;
+ }
+ ret = rtllib_crypto_tkip_init();
+ if (ret) {
+ printk(KERN_ERR "rtllib_crypto_tkip_init() failed %d\n", ret);
+ return ret;
+ }
+ ret = rtllib_crypto_ccmp_init();
+ if (ret) {
+ printk(KERN_ERR "rtllib_crypto_ccmp_init() failed %d\n", ret);
+ return ret;
+ }
+ ret = rtllib_crypto_wep_init();
+ if (ret) {
+ printk(KERN_ERR "rtllib_crypto_wep_init() failed %d\n", ret);
+ return ret;
+ }
+#endif
+#ifdef BUILT_IN_MSHCLASS
+ ret = msh_init();
+ if (ret) {
+ printk(KERN_ERR "msh_init() failed %d\n", ret);
+ return ret;
+ }
+#endif
+ printk(KERN_INFO "\nLinux kernel driver for RTL8192 based WLAN cards\n");
+ printk(KERN_INFO "Copyright (c) 2007-2008, Realsil Wlan Driver\n");
+ RT_TRACE(COMP_INIT, "Initializing module");
+ RT_TRACE(COMP_INIT, "Wireless extensions version %d", WIRELESS_EXT);
+
+ error = rtl_create_debugfs_root();
+ if (error) {
+ RT_TRACE(COMP_DBG, "Create debugfs root fail: %d\n", error);
+ goto err_out;
+ }
+
+ rtl8192_proc_module_init();
+#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22))
+ if(0!=pci_module_init(&rtl8192_pci_driver))
+#else
+ if(0!=pci_register_driver(&rtl8192_pci_driver))
+#endif
+ {
+ DMESG("No device found");
+ /*pci_unregister_driver (&rtl8192_pci_driver);*/
+ return -ENODEV;
+ }
+ return 0;
+err_out:
+ return error;
+
+}
+
+static void __exit rtl8192_pci_module_exit(void)
+{
+ pci_unregister_driver(&rtl8192_pci_driver);
+
+ RT_TRACE(COMP_DOWN, "Exiting");
+ rtl8192_proc_module_remove();
+ rtl_remove_debugfs_root();
+#ifdef BUILT_IN_RTLLIB
+ rtllib_crypto_tkip_exit();
+ rtllib_crypto_ccmp_exit();
+ rtllib_crypto_wep_exit();
+ rtllib_crypto_deinit();
+ rtllib_exit();
+#endif
+#ifdef BUILT_IN_CRYPTO
+ arc4_exit();
+ michael_mic_exit();
+ aes_fini();
+#endif
+#ifdef BUILT_IN_MSHCLASS
+ msh_exit();
+#endif
+
+}
+
+void check_rfctrl_gpio_timer(unsigned long data)
+{
+ struct r8192_priv* priv = rtllib_priv((struct net_device *)data);
+
+ priv->polling_timer_on = 1;
+
+ queue_delayed_work_rsl(priv->priv_wq,&priv->gpio_change_rf_wq,0);
+
+ mod_timer(&priv->gpio_polling_timer, jiffies + MSECS(RTLLIB_WATCH_DOG_TIME));
+}
+
+/***************************************************************************
+ ------------------- module init / exit stubs ----------------
+****************************************************************************/
+module_init(rtl8192_pci_module_init);
+module_exit(rtl8192_pci_module_exit);
+
+MODULE_DESCRIPTION("Linux driver for Realtek RTL819x WiFi cards");
+MODULE_AUTHOR(DRV_COPYRIGHT " " DRV_AUTHOR);
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+MODULE_VERSION(DRV_VERSION);
+#endif
+MODULE_LICENSE("GPL");
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 9)
+module_param(ifname, charp, S_IRUGO|S_IWUSR );
+module_param(hwwep,int, S_IRUGO|S_IWUSR);
+module_param(channels,int, S_IRUGO|S_IWUSR);
+#else
+MODULE_PARM(ifname, "s");
+MODULE_PARM(hwwep,"i");
+MODULE_PARM(channels,"i");
+#endif
+
+MODULE_PARM_DESC(ifname," Net interface name, wlan%d=default");
+MODULE_PARM_DESC(hwwep," Try to use hardware WEP support(default use hw. set 0 to use software security)");
+MODULE_PARM_DESC(channels," Channel bitmask for specific locales. NYI");
diff --git a/ubuntu/rtl8192se/rtl_core.h b/ubuntu/rtl8192se/rtl_core.h
new file mode 100755
index 00000000000..d79bfd5de64
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_core.h
@@ -0,0 +1,1449 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+
+#ifndef _RTL_CORE_H
+#define _RTL_CORE_H
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/ioport.h>
+#include <linux/sched.h>
+#include <linux/types.h>
+#include <linux/slab.h>
+#include <linux/netdevice.h>
+#include <linux/pci.h>
+#include <linux/etherdevice.h>
+#include <linux/delay.h>
+#include <linux/rtnetlink.h>
+#include <linux/wireless.h>
+#include <linux/timer.h>
+#include <linux/proc_fs.h>
+#include <linux/if_arp.h>
+#include <linux/random.h>
+#include <linux/version.h>
+#include <asm/io.h>
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27))
+#include <asm/semaphore.h>
+#endif
+#include "rtllib/rtllib.h"
+
+#ifdef ENABLE_DOT11D
+#include "rtllib/dot11d.h"
+#endif
+
+#ifdef RTL8192SE
+#include "rtl8192s/r8192S_phy.h"
+#include "rtl8192s/r8192S_phyreg.h"
+#include "rtl8192s/r8192S_firmware.h"
+#include "rtl8192s/r8192S_hw.h"
+#elif defined RTL8190P || defined RTL8192E
+#include "rtl8192e/r8192E_firmware.h"
+#include "rtl8192e/r8192E_hw.h"
+#endif
+
+#ifdef RTL8192SE
+#include "rtl8192s/r8192S_scan.h"
+#include "rtl8192s/r8192S_dev.h"
+#include "rtl8192s/r8192S_led.h"
+#include "rtl8192s/r8192S_def.h"
+#include "rtl8192s/r8192S_mp.h"
+#elif defined RTL8190P || defined RTL8192E
+#include "rtl8192e/r8190P_def.h"
+#include "rtl8192e/r8192E_dev.h"
+#elif defined RTL8192CE
+#include "rtl8192c/r8192C_dev.h"
+#include "rtl8192c/r8192C_led.h"
+#include "rtl8192c/r8192C_def.h"
+#include "rtl8192c/r8192C_phy.h"
+#include "rtl8192c/r8192C_phyreg.h"
+#include "rtl8192c/r8192C_firmware.h"
+#include "rtl8192c/r8192C_hw.h"
+#include "rtl8192c/r8192C_rtl6052.h"
+#include "rtl8192c/r8192C_Efuse.h"
+#include "rtl8192c/r8192C_com.h"
+#endif
+
+#ifdef CONFIG_CFG_80211
+#include "rtl_regd.h"
+#endif
+
+#ifdef CONFIG_RTL_RFKILL
+#include "rtl_rfkill.h"
+#endif
+
+#include "rtl_debug.h"
+#include "rtl_eeprom.h"
+#include "rtl_ps.h"
+#include "rtl_cam.h"
+
+#define DRV_COPYRIGHT "Copyright(c) 2008 - 2010 Realsil Semiconductor Corporation"
+#define DRV_AUTHOR "<wlanfae@realtek.com>"
+#define DRV_VERSION "0015.0127.2010"
+
+#ifdef RTL8190P
+#define DRV_NAME "rtl819xP"
+#elif defined RTL8192E
+#define DRV_NAME "rtl819xE"
+#elif defined RTL8192SE
+#define DRV_NAME "rtl819xSE"
+#elif defined RTL8192CE
+#define DRV_NAME "rtl8192CE"
+#endif
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+#define RTL_PCI_DEVICE(vend, dev, cfg) \
+ .vendor = (vend), .device = (dev), \
+ .subvendor = PCI_ANY_ID, .subdevice =PCI_ANY_ID , \
+ .driver_data = (kernel_ulong_t)&(cfg)
+#else
+#define RTL_PCI_DEVICE(vend, dev, cfg) \
+ .vendor = (vend), .device = (dev), \
+ .subvendor = PCI_ANY_ID, .subdevice =PCI_ANY_ID
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+ typedef void irqreturn_type;
+#else
+ typedef irqreturn_t irqreturn_type;
+#endif
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10))
+
+#if !defined(PCI_CAP_ID_EXP)
+#define PCI_CAP_ID_EXP 0x10
+#endif
+#if !defined(PCI_EXP_LNKCTL)
+#define PCI_EXP_LNKCTL 0x10
+#endif
+
+typedef int __bitwise pci_power_t;
+#define PCI_D0 ((pci_power_t __force) 0)
+#define PCI_D1 ((pci_power_t __force) 1)
+#define PCI_D2 ((pci_power_t __force) 2)
+#define PCI_D3hot ((pci_power_t __force) 3)
+#define PCI_D3cold ((pci_power_t __force) 4)
+#define PCI_UNKNOWN ((pci_power_t __force) 5)
+#define PCI_POWER_ERROR ((pci_power_t __force) -1)
+
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)
+ #define rtl8192_interrupt(x,y,z) rtl8192_interrupt_rsl(x,y,z)
+#else
+ #define rtl8192_interrupt(x,y,z) rtl8192_interrupt_rsl(x,y)
+#endif
+
+#define RTL_MAX_SCAN_SIZE 128
+
+#define RTL_RATE_MAX 30
+
+#define TOTAL_CAM_ENTRY 32
+#define CAM_CONTENT_COUNT 8
+
+#ifndef BIT
+#define BIT(_i) (1<<(_i))
+#endif
+
+#define DMESG(x,a...)
+#define DMESGW(x,a...)
+#define DMESGE(x,a...)
+extern u32 rt_global_debug_component;
+#define RT_TRACE(component, x, args...) \
+do { if(rt_global_debug_component & component) \
+ printk(KERN_DEBUG DRV_NAME ":" x "\n" , \
+ ##args);\
+}while(0);
+
+#ifdef _RTL8192_EXT_PATCH_
+#define IS_NIC_DOWN(priv) ((!(priv)->up) && (!(priv)->mesh_up))
+#else
+#define IS_NIC_DOWN(priv) (!(priv)->up)
+#endif
+
+#ifdef RTL8192CE
+#define RT_ASSERT(_Exp,Fmt) \
+ if(!(_Exp)) \
+ { \
+ printk("Rtl819x: "); \
+ printk Fmt; \
+ }
+#define PHY_BBR BIT0
+#define PHY_BBW BIT1
+#define PHY_RFR BIT2
+#define PHY_RFW BIT3
+#define PHY_MACR BIT4
+#define PHY_MACW BIT5
+#define PHY_ALLR BIT6
+#define PHY_ALLW BIT7
+#define PHY_TXPWR BIT8
+#define PHY_PWRDIFF BIT9
+/* Define different debug flag for dedicated service modules in debug flag array. */
+typedef enum tag_DBGP_Flag_Type_Definition
+{
+ FQoS = 0,
+ FTX = 1,
+ FRX = 2,
+ FSEC = 3,
+ FMGNT = 4,
+ FMLME = 5,
+ FRESOURCE = 6,
+ FBEACON = 7,
+ FISR = 8,
+ FPHY = 9,
+ FMP = 10,
+ FEEPROM = 11,
+ FPWR = 12,
+ FDM = 13,
+ FDBGCtrl = 14,
+ FC2H = 15,
+ FBT = 16,
+ FINIT = 17,
+ DBGP_TYPE_MAX
+}DBGP_FLAG_E;
+#define INIT_EEPROM BIT0
+#define INIT_TxPower BIT1
+#define INIT_IQK BIT2
+#define EFUSE_READ_ALL BIT2
+#define EFUSE_PG BIT1
+#define DM_Monitor BIT2
+#define TX_DESC BIT3
+#define RTPRINT(dbgtype, dbgflag, printstr) \
+ { \
+ if(dbgflag == TX_DESC) \
+ { \
+ printk printstr; \
+ } \
+ }
+
+#define RT_PRINT_DATA(_Comp, _TitleString, _HexData, _HexDataLen) \
+ do {\
+ if((_Comp) & rt_global_debug_component ) \
+ { \
+ int __i; \
+ u8* ptr = (u8*)_HexData; \
+ printk("Rtl819x: "); \
+ printk(_TitleString); \
+ for( __i=0; __i<(int)_HexDataLen; __i++ ) \
+ { \
+ printk("%02X%s", ptr[__i], (((__i + 1) % 4) == 0)?" ":" "); \
+ if (((__i + 1) % 16) == 0) printk("\n"); \
+ } \
+ printk("\n"); \
+ } \
+ }while(0);
+#endif
+
+#define RTL819x_DEBUG
+#ifdef RTL819x_DEBUG
+#define assert(expr) \
+ if (!(expr)) { \
+ printk( "Assertion failed! %s,%s,%s,line=%d\n", \
+ #expr,__FILE__,__FUNCTION__,__LINE__); \
+ }
+#define RT_DEBUG_DATA(level, data, datalen) \
+ do{ if ((rt_global_debug_component & (level)) == (level)) \
+ { \
+ int _i; \
+ u8* _pdata = (u8*) data; \
+ printk(KERN_DEBUG DRV_NAME ": %s()\n", __FUNCTION__); \
+ for(_i=0; _i<(int)(datalen); _i++) \
+ { \
+ printk("%2x ", _pdata[_i]); \
+ if ((_i+1)%16 == 0) printk("\n"); \
+ } \
+ printk("\n"); \
+ } \
+ } while (0)
+#else
+#define assert(expr) do {} while (0)
+#define RT_DEBUG_DATA(level, data, datalen) do {} while(0)
+#endif
+
+#ifdef _RTL8192_EXT_PATCH_
+#define IS_UNDER_11N_AES_MODE(_rtllib) ((_rtllib->pHTInfo->bCurrentHTSupport == true) &&\
+ ((_rtllib->pairwise_key_type == KEY_TYPE_CCMP) || \
+ (_rtllib->mesh_pairwise_key_type == KEY_TYPE_CCMP)))
+#else
+#define IS_UNDER_11N_AES_MODE(_rtllib) ((_rtllib->pHTInfo->bCurrentHTSupport == true) &&\
+ (_rtllib->pairwise_key_type == KEY_TYPE_CCMP))
+#endif
+
+#define HAL_MEMORY_MAPPED_IO_RANGE_8190PCI 0x1000
+#define HAL_HW_PCI_REVISION_ID_8190PCI 0x00
+#define HAL_MEMORY_MAPPED_IO_RANGE_8192PCIE 0x4000
+#define HAL_HW_PCI_REVISION_ID_8192PCIE 0x01
+#define HAL_MEMORY_MAPPED_IO_RANGE_8192SE 0x4000
+#define HAL_HW_PCI_REVISION_ID_8192SE 0x10
+#define HAL_HW_PCI_REVISION_ID_8192CE 0x1
+#define HAL_MEMORY_MAPPED_IO_RANGE_8192CE 0x4000
+#define HAL_HW_PCI_REVISION_ID_8192DE 0x0
+#define HAL_MEMORY_MAPPED_IO_RANGE_8192DE 0x4000
+
+#define HAL_HW_PCI_8180_DEVICE_ID 0x8180
+#define HAL_HW_PCI_8185_DEVICE_ID 0x8185
+#define HAL_HW_PCI_8188_DEVICE_ID 0x8188
+#define HAL_HW_PCI_8198_DEVICE_ID 0x8198
+#define HAL_HW_PCI_8190_DEVICE_ID 0x8190
+#define HAL_HW_PCI_8192_DEVICE_ID 0x8192
+#define HAL_HW_PCI_8192SE_DEVICE_ID 0x8192
+#define HAL_HW_PCI_8174_DEVICE_ID 0x8174
+#define HAL_HW_PCI_8173_DEVICE_ID 0x8173
+#define HAL_HW_PCI_8172_DEVICE_ID 0x8172
+#define HAL_HW_PCI_8171_DEVICE_ID 0x8171
+#define HAL_HW_PCI_0045_DEVICE_ID 0x0045
+#define HAL_HW_PCI_0046_DEVICE_ID 0x0046
+#define HAL_HW_PCI_0044_DEVICE_ID 0x0044
+#define HAL_HW_PCI_0047_DEVICE_ID 0x0047
+#define HAL_HW_PCI_700F_DEVICE_ID 0x700F
+#define HAL_HW_PCI_701F_DEVICE_ID 0x701F
+#define HAL_HW_PCI_DLINK_DEVICE_ID 0x3304
+#define HAL_HW_PCI_8192CET_DEVICE_ID 0x8191
+#define HAL_HW_PCI_8192CE_DEVICE_ID 0x8178
+#define HAL_HW_PCI_8191CE_DEVICE_ID 0x8177
+#define HAL_HW_PCI_8188CE_DEVICE_ID 0x8176
+#define HAL_HW_PCI_8192CU_DEVICE_ID 0x8191
+#define HAL_HW_PCI_8192DE_DEVICE_ID 0x092D
+#define HAL_HW_PCI_8192DU_DEVICE_ID 0x092D
+
+#ifdef RTL8192CE
+#define RTL819X_DEFAULT_RF_TYPE RF_2T2R
+#else
+#define RTL819X_DEFAULT_RF_TYPE RF_1T2R
+#endif
+
+#define RTLLIB_WATCH_DOG_TIME 2000
+
+#define MAX_DEV_ADDR_SIZE 8 /* support till 64 bit bus width OS */
+#define MAX_FIRMWARE_INFORMATION_SIZE 32
+#define MAX_802_11_HEADER_LENGTH (40 + MAX_FIRMWARE_INFORMATION_SIZE)
+#define ENCRYPTION_MAX_OVERHEAD 128
+#define MAX_FRAGMENT_COUNT 8
+#define MAX_TRANSMIT_BUFFER_SIZE (1600+(MAX_802_11_HEADER_LENGTH+ENCRYPTION_MAX_OVERHEAD)*MAX_FRAGMENT_COUNT)
+
+#define scrclng 4
+
+#define DEFAULT_FRAG_THRESHOLD 2342U
+#define MIN_FRAG_THRESHOLD 256U
+#define DEFAULT_BEACONINTERVAL 0x64U
+
+#define DEFAULT_SSID ""
+#define DEFAULT_RETRY_RTS 7
+#define DEFAULT_RETRY_DATA 7
+#define PRISM_HDR_SIZE 64
+
+#define PHY_RSSI_SLID_WIN_MAX 100
+
+#define RTL_IOCTL_WPA_SUPPLICANT SIOCIWFIRSTPRIV+30
+
+#define TxBBGainTableLength 37
+#define CCKTxBBGainTableLength 23
+
+#define CHANNEL_PLAN_LEN 10
+#define sCrcLng 4
+
+#define NIC_SEND_HANG_THRESHOLD_NORMAL 4
+#define NIC_SEND_HANG_THRESHOLD_POWERSAVE 8
+
+#define MAX_TX_QUEUE 9
+
+#if defined RTL8192SE || defined RTL8192CE
+#define MAX_RX_QUEUE 2
+#else
+#define MAX_RX_QUEUE 1
+#endif
+
+#define MAX_RX_COUNT 64
+#define MAX_TX_QUEUE_COUNT 9
+
+enum RTL819x_PHY_PARAM {
+ RTL819X_PHY_MACPHY_REG = 0,
+ RTL819X_PHY_MACPHY_REG_PG = 1,
+ RTL8188C_PHY_MACREG =2,
+ RTL8192C_PHY_MACREG =3,
+ RTL819X_PHY_REG = 4,
+ RTL819X_PHY_REG_1T2R = 5,
+ RTL819X_PHY_REG_to1T1R = 6,
+ RTL819X_PHY_REG_to1T2R = 7,
+ RTL819X_PHY_REG_to2T2R = 8,
+ RTL819X_PHY_REG_PG = 9,
+ RTL819X_AGC_TAB = 10,
+ RTL819X_PHY_RADIO_A =11,
+ RTL819X_PHY_RADIO_A_1T =12,
+ RTL819X_PHY_RADIO_A_2T =13,
+ RTL819X_PHY_RADIO_B =14,
+ RTL819X_PHY_RADIO_B_GM =15,
+ RTL819X_PHY_RADIO_C =16,
+ RTL819X_PHY_RADIO_D =17,
+ RTL819X_EEPROM_MAP =18,
+ RTL819X_EFUSE_MAP =19,
+};
+
+enum RTL_DEBUG {
+ COMP_TRACE = BIT0,
+ COMP_DBG = BIT1,
+ COMP_INIT = BIT2,
+ COMP_RECV = BIT3,
+ COMP_SEND = BIT4,
+ COMP_CMD = BIT5,
+ COMP_POWER = BIT6,
+ COMP_EPROM = BIT7,
+ COMP_SWBW = BIT8,
+ COMP_SEC = BIT9,
+ COMP_LPS = BIT10,
+ COMP_QOS = BIT11,
+ COMP_RATE = BIT12,
+ COMP_RXDESC = BIT13,
+ COMP_PHY = BIT14,
+ COMP_DIG = BIT15,
+ COMP_TXAGC = BIT16,
+ COMP_HALDM = BIT17,
+ COMP_POWER_TRACKING = BIT18,
+ COMP_CH = BIT19,
+ COMP_RF = BIT20,
+ COMP_FIRMWARE = BIT21,
+ COMP_HT = BIT22,
+ COMP_RESET = BIT23,
+ COMP_CMDPKT = BIT24,
+ COMP_SCAN = BIT25,
+ COMP_PS = BIT26,
+ COMP_DOWN = BIT27,
+ COMP_INTR = BIT28,
+ COMP_LED = BIT29,
+ COMP_MLME = BIT30,
+ COMP_ERR = BIT31
+};
+
+typedef enum{
+ NIC_UNKNOWN = 0,
+ NIC_8192E = 1,
+ NIC_8190P = 2,
+ NIC_8192SE = 4,
+ NIC_8192CE = 5,
+ NIC_8192CU = 6,
+ NIC_8192DE = 7,
+ NIC_8192DU = 8,
+ } nic_t;
+
+typedef enum _RT_EEPROM_TYPE{
+ EEPROM_93C46,
+ EEPROM_93C56,
+ EEPROM_BOOT_EFUSE,
+}RT_EEPROM_TYPE,*PRT_EEPROM_TYPE;
+
+typedef enum _tag_TxCmd_Config_Index{
+ TXCMD_TXRA_HISTORY_CTRL = 0xFF900000,
+ TXCMD_RESET_TX_PKT_BUFF = 0xFF900001,
+ TXCMD_RESET_RX_PKT_BUFF = 0xFF900002,
+ TXCMD_SET_TX_DURATION = 0xFF900003,
+ TXCMD_SET_RX_RSSI = 0xFF900004,
+ TXCMD_SET_TX_PWR_TRACKING = 0xFF900005,
+ TXCMD_XXXX_CTRL,
+}DCMD_TXCMD_OP;
+
+typedef enum _RT_RF_TYPE_819xU{
+ RF_TYPE_MIN = 0,
+ RF_8225,
+ RF_8256,
+ RF_8258,
+ RF_6052=4,
+ RF_PSEUDO_11N = 5,
+}RT_RF_TYPE_819xU, *PRT_RF_TYPE_819xU;
+
+typedef enum tag_Rf_Operatetion_State
+{
+ RF_STEP_INIT = 0,
+ RF_STEP_NORMAL,
+ RF_STEP_MAX
+}RF_STEP_E;
+
+typedef enum _RT_STATUS{
+ RT_STATUS_SUCCESS,
+ RT_STATUS_FAILURE,
+ RT_STATUS_PENDING,
+ RT_STATUS_RESOURCE
+}RT_STATUS,*PRT_STATUS;
+
+typedef enum _RT_CUSTOMER_ID
+{
+ RT_CID_DEFAULT = 0,
+ RT_CID_8187_ALPHA0 = 1,
+ RT_CID_8187_SERCOMM_PS = 2,
+ RT_CID_8187_HW_LED = 3,
+ RT_CID_8187_NETGEAR = 4,
+ RT_CID_WHQL = 5,
+ RT_CID_819x_CAMEO = 6,
+ RT_CID_819x_RUNTOP = 7,
+ RT_CID_819x_Senao = 8,
+ RT_CID_TOSHIBA = 9,
+ RT_CID_819x_Netcore = 10,
+ RT_CID_Nettronix = 11,
+ RT_CID_DLINK = 12,
+ RT_CID_PRONET = 13,
+ RT_CID_COREGA = 14,
+ RT_CID_819x_ALPHA = 15,
+ RT_CID_819x_Sitecom = 16,
+ RT_CID_CCX = 17,
+ RT_CID_819x_Lenovo = 18,
+ RT_CID_819x_QMI = 19,
+ RT_CID_819x_Edimax_Belkin = 20,
+ RT_CID_819x_Sercomm_Belkin = 21,
+ RT_CID_819x_CAMEO1 = 22,
+ RT_CID_819x_MSI = 23,
+ RT_CID_819x_Acer = 24,
+ RT_CID_819x_HP =27,
+}RT_CUSTOMER_ID, *PRT_CUSTOMER_ID;
+
+typedef enum _RT_OP_MODE{
+ RT_OP_MODE_AP,
+ RT_OP_MODE_INFRASTRUCTURE,
+ RT_OP_MODE_IBSS,
+ RT_OP_MODE_NO_LINK,
+}RT_OP_MODE, *PRT_OP_MODE;
+
+typedef enum _RESET_TYPE {
+ RESET_TYPE_NORESET = 0x00,
+ RESET_TYPE_NORMAL = 0x01,
+ RESET_TYPE_SILENT = 0x02
+} RESET_TYPE;
+
+typedef enum _IC_INFERIORITY_8192S{
+ IC_INFERIORITY_A = 0,
+ IC_INFERIORITY_B = 1,
+}IC_INFERIORITY_8192S, *PIC_INFERIORITY_8192S;
+
+typedef enum _PCI_BRIDGE_VENDOR {
+ PCI_BRIDGE_VENDOR_INTEL = 0x01,
+ PCI_BRIDGE_VENDOR_ATI = 0x02,
+ PCI_BRIDGE_VENDOR_AMD = 0x04,
+ PCI_BRIDGE_VENDOR_SIS = 0x08,
+ PCI_BRIDGE_VENDOR_UNKNOWN = 0x40,
+ PCI_BRIDGE_VENDOR_MAX = 0x80
+} PCI_BRIDGE_VENDOR;
+
+typedef struct buffer
+{
+ struct buffer *next;
+ u32 *buf;
+ dma_addr_t dma;
+
+} buffer;
+
+typedef struct rtl_reg_debug{
+ unsigned int cmd;
+ struct {
+ unsigned char type;
+ unsigned char addr;
+ unsigned char page;
+ unsigned char length;
+ } head;
+ unsigned char buf[0xff];
+}rtl_reg_debug;
+
+typedef struct _rt_9x_tx_rate_history {
+ u32 cck[4];
+ u32 ofdm[8];
+ u32 ht_mcs[4][16];
+}rt_tx_rahis_t, *prt_tx_rahis_t;
+
+typedef struct _RT_SMOOTH_DATA_4RF {
+ char elements[4][100];
+ u32 index;
+ u32 TotalNum;
+ u32 TotalVal[4];
+}RT_SMOOTH_DATA_4RF, *PRT_SMOOTH_DATA_4RF;
+
+#ifdef _RTL8192_EXT_PATCH_
+typedef struct _RT_SMOOTH_DATA {
+ u32 elements[100];
+ u32 index;
+ u32 TotalNum;
+ u32 TotalVal;
+}RT_SMOOTH_DATA, *PRT_SMOOTH_DATA;
+#endif
+typedef struct Stats
+{
+ unsigned long txrdu;
+ unsigned long rxrdu;
+ unsigned long rxok;
+ unsigned long rxframgment;
+ unsigned long rxcmdpkt[4];
+ unsigned long rxurberr;
+ unsigned long rxstaterr;
+ unsigned long rxdatacrcerr;
+ unsigned long rxmgmtcrcerr;
+ unsigned long rxcrcerrmin;
+ unsigned long rxcrcerrmid;
+ unsigned long rxcrcerrmax;
+ unsigned long received_rate_histogram[4][32];
+ unsigned long received_preamble_GI[2][32];
+ unsigned long rx_AMPDUsize_histogram[5];
+ unsigned long rx_AMPDUnum_histogram[5];
+ unsigned long numpacket_matchbssid;
+ unsigned long numpacket_toself;
+ unsigned long num_process_phyinfo;
+ unsigned long numqry_phystatus;
+ unsigned long numqry_phystatusCCK;
+ unsigned long numqry_phystatusHT;
+ unsigned long received_bwtype[5];
+ unsigned long txnperr;
+ unsigned long txnpdrop;
+ unsigned long txresumed;
+ unsigned long rxoverflow;
+ unsigned long rxint;
+ unsigned long txnpokint;
+ unsigned long ints;
+ unsigned long shints;
+ unsigned long txoverflow;
+ unsigned long txlpokint;
+ unsigned long txlpdrop;
+ unsigned long txlperr;
+ unsigned long txbeokint;
+ unsigned long txbedrop;
+ unsigned long txbeerr;
+ unsigned long txbkokint;
+ unsigned long txbkdrop;
+ unsigned long txbkerr;
+ unsigned long txviokint;
+ unsigned long txvidrop;
+ unsigned long txvierr;
+ unsigned long txvookint;
+ unsigned long txvodrop;
+ unsigned long txvoerr;
+ unsigned long txbeaconokint;
+ unsigned long txbeacondrop;
+ unsigned long txbeaconerr;
+ unsigned long txmanageokint;
+ unsigned long txmanagedrop;
+ unsigned long txmanageerr;
+ unsigned long txcmdpktokint;
+ unsigned long txdatapkt;
+ unsigned long txfeedback;
+ unsigned long txfeedbackok;
+ unsigned long txoktotal;
+ unsigned long txokbytestotal;
+ unsigned long txokinperiod;
+ unsigned long txmulticast;
+ unsigned long txbytesmulticast;
+ unsigned long txbroadcast;
+ unsigned long txbytesbroadcast;
+ unsigned long txunicast;
+ unsigned long txbytesunicast;
+ unsigned long rxbytesunicast;
+ unsigned long txfeedbackfail;
+ unsigned long txerrtotal;
+ unsigned long txerrbytestotal;
+ unsigned long txerrmulticast;
+ unsigned long txerrbroadcast;
+ unsigned long txerrunicast;
+ unsigned long txretrycount;
+ unsigned long txfeedbackretry;
+ u8 last_packet_rate;
+ unsigned long slide_signal_strength[100];
+ unsigned long slide_evm[100];
+ unsigned long slide_rssi_total;
+ unsigned long slide_evm_total;
+ long signal_strength;
+ long signal_quality;
+ long last_signal_strength_inpercent;
+ long recv_signal_power;
+ u8 rx_rssi_percentage[4];
+ u8 rx_evm_percentage[2];
+ long rxSNRdB[4];
+ rt_tx_rahis_t txrate;
+ u32 Slide_Beacon_pwdb[100];
+ u32 Slide_Beacon_Total;
+ RT_SMOOTH_DATA_4RF cck_adc_pwdb;
+ u32 CurrentShowTxate;
+#ifdef _RTL8192_EXT_PATCH_
+ u32 RssiCalculateCnt;
+ RT_SMOOTH_DATA ui_rssi;
+ RT_SMOOTH_DATA ui_link_quality;
+#endif
+} Stats;
+
+typedef struct ChnlAccessSetting {
+ u16 SIFS_Timer;
+ u16 DIFS_Timer;
+ u16 SlotTimeTimer;
+ u16 EIFS_Timer;
+ u16 CWminIndex;
+ u16 CWmaxIndex;
+}*PCHANNEL_ACCESS_SETTING,CHANNEL_ACCESS_SETTING;
+
+typedef enum _TWO_PORT_STATUS
+{
+ TWO_PORT_STATUS__DEFAULT_ONLY,
+ TWO_PORT_STATUS__EXTENSION_ONLY,
+ TWO_PORT_STATUS__EXTENSION_FOLLOW_DEFAULT,
+ TWO_PORT_STATUS__DEFAULT_G_EXTENSION_N20,
+ TWO_PORT_STATUS__ADHOC,
+ TWO_PORT_STATUS__WITHOUT_ANY_ASSOCIATE
+}TWO_PORT_STATUS;
+
+typedef struct _txbbgain_struct
+{
+ long txbb_iq_amplifygain;
+ u32 txbbgain_value;
+} txbbgain_struct, *ptxbbgain_struct;
+
+typedef struct _ccktxbbgain_struct
+{
+ u8 ccktxbb_valuearray[8];
+} ccktxbbgain_struct,*pccktxbbgain_struct;
+
+typedef struct _init_gain
+{
+ u8 xaagccore1;
+ u8 xbagccore1;
+ u8 xcagccore1;
+ u8 xdagccore1;
+ u8 cca;
+
+} init_gain, *pinit_gain;
+
+typedef struct _tx_ring{
+ u32 * desc;
+ u8 nStuckCount;
+ struct _tx_ring * next;
+}__attribute__ ((packed)) tx_ring, * ptx_ring;
+
+struct rtl8192_tx_ring {
+ tx_desc *desc;
+ dma_addr_t dma;
+ unsigned int idx;
+ unsigned int entries;
+ struct sk_buff_head queue;
+};
+
+
+
+struct rtl819x_ops{
+ nic_t nic_type;
+ void (* get_eeprom_size)(struct net_device* dev);
+ void (* init_adapter_variable)(struct net_device* dev);
+ void (* init_before_adapter_start)(struct net_device* dev);
+ bool (* initialize_adapter)(struct net_device* dev);
+ void (*link_change)(struct net_device* dev);
+ void (* tx_fill_descriptor)(struct net_device* dev, tx_desc * tx_desc, cb_desc * cb_desc, struct sk_buff *skb);
+ void (* tx_fill_cmd_descriptor)(struct net_device* dev, tx_desc_cmd * entry, cb_desc * cb_desc, struct sk_buff *skb);
+ bool (* rx_query_status_descriptor)(struct net_device* dev, struct rtllib_rx_stats* stats, rx_desc *pdesc, struct sk_buff* skb);
+ bool (* rx_command_packet_handler)(struct net_device *dev, struct sk_buff* skb, rx_desc *pdesc);
+ void (* stop_adapter)(struct net_device *dev, bool reset);
+#if defined RTL8192SE || defined RTL8192CE
+ void (* update_ratr_table)(struct net_device* dev,u8* pMcsRate,struct sta_info* pEntry);
+#else
+ void (* update_ratr_table)(struct net_device* dev);
+#endif
+ void (* irq_enable)(struct net_device* dev);
+ void (* irq_disable)(struct net_device* dev);
+ void (* irq_clear)(struct net_device* dev);
+ void (* rx_enable)(struct net_device* dev);
+ void (* tx_enable)(struct net_device* dev);
+ void (* interrupt_recognized)(struct net_device *dev, u32 *p_inta, u32 *p_intb);
+ bool (* TxCheckStuckHandler)(struct net_device* dev);
+ bool (* RxCheckStuckHandler)(struct net_device* dev);
+};
+
+typedef struct r8192_priv
+{
+ struct pci_dev *pdev;
+ struct pci_dev *bridge_pdev;
+
+ u8 RegPciASPM;
+ u8 RegHwSwRfOffD3;
+ u8 RegSupportPciASPM;
+
+ u8 rssi_level;
+ void *scan_cmd;
+
+ u8 check_roaming_cnt;
+ struct rtl819x_ops* ops;
+ bool bfirst_init;
+ bool bfirst_after_down;
+ bool initialized_at_probe;
+ LOG_INTERRUPT_8190_T InterruptLog;
+ bool bIgnoreSilentReset;
+ u32 SilentResetRxSoltNum;
+ u32 SilentResetRxSlotIndex;
+ u32 SilentResetRxStuckEvent[MAX_SILENT_RESET_RX_SLOT_NUM];
+ RT_CUSTOMER_ID CustomerID;
+ bool being_init_adapter;
+ bool sw_radio_on;
+ u8 IC_Cut;
+ int irq;
+ short irq_enabled;
+ struct rtllib_device *rtllib;
+ u8 Rf_Mode;
+ nic_t card_8192;
+ u8 card_8192_version;
+ short enable_gpio0;
+ enum card_type {PCI,MINIPCI,CARDBUS,USB}card_type;
+ short hw_plcp_len;
+ short plcp_preamble_mode;
+ u8 ScanDelay;
+
+ spinlock_t fw_scan_lock;
+ spinlock_t irq_lock;
+ spinlock_t irq_th_lock;
+ spinlock_t tx_lock;
+ spinlock_t rf_ps_lock;
+ spinlock_t rw_lock;
+ spinlock_t rt_h2c_lock;
+#ifdef CONFIG_ASPM_OR_D3
+ spinlock_t D3_lock;
+#endif
+
+#ifdef CONFIG_CFG_80211
+ struct ieee80211_rate rates[IEEE80211_NUM_BANDS][RTL_RATE_MAX];
+ struct ieee80211_supported_band bands[IEEE80211_NUM_BANDS];
+#endif
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,16))
+ struct semaphore mutex;
+#else
+ struct mutex mutex;
+#endif
+ bool ps_force;
+ spinlock_t rf_lock;
+ spinlock_t ps_lock;
+
+ u32 irq_mask[2];
+ short chan;
+ u8 hwscan_bw_40;
+ short sens;
+ short max_sens;
+ u32 rx_prevlen;
+
+ rx_desc *rx_ring[MAX_RX_QUEUE];
+ dma_addr_t rx_ring_dma[MAX_RX_QUEUE];
+ unsigned int rx_idx[MAX_RX_QUEUE];
+ struct sk_buff *rx_buf[MAX_RX_QUEUE][MAX_RX_COUNT];
+ int rxringcount;
+ u16 rxbuffersize;
+
+ struct sk_buff *rx_skb;
+ u32 *rxring;
+ u32 *rxringtail;
+ dma_addr_t rxringdma;
+ struct buffer *rxbuffer;
+ struct buffer *rxbufferhead;
+ short rx_skb_complete;
+ struct rtl8192_tx_ring tx_ring[MAX_TX_QUEUE_COUNT];
+ int txringcount;
+ int txbuffsize;
+ int txfwbuffersize;
+ struct tasklet_struct irq_rx_tasklet;
+ struct tasklet_struct irq_tx_tasklet;
+ struct tasklet_struct irq_prepare_beacon_tasklet;
+
+ struct buffer *txmapbufs;
+ struct buffer *txbkpbufs;
+ struct buffer *txbepbufs;
+ struct buffer *txvipbufs;
+ struct buffer *txvopbufs;
+ struct buffer *txcmdbufs;
+ struct buffer *txmapbufstail;
+ struct buffer *txbkpbufstail;
+ struct buffer *txbepbufstail;
+ struct buffer *txvipbufstail;
+ struct buffer *txvopbufstail;
+ struct buffer *txcmdbufstail;
+ ptx_ring txbeaconringtail;
+ dma_addr_t txbeaconringdma;
+ ptx_ring txbeaconring;
+ int txbeaconcount;
+ struct buffer *txbeaconbufs;
+ struct buffer *txbeaconbufstail;
+ ptx_ring txmapring;
+ ptx_ring txbkpring;
+ ptx_ring txbepring;
+ ptx_ring txvipring;
+ ptx_ring txvopring;
+ ptx_ring txcmdring;
+ ptx_ring txmapringtail;
+ ptx_ring txbkpringtail;
+ ptx_ring txbepringtail;
+ ptx_ring txvipringtail;
+ ptx_ring txvopringtail;
+ ptx_ring txcmdringtail;
+ ptx_ring txmapringhead;
+ ptx_ring txbkpringhead;
+ ptx_ring txbepringhead;
+ ptx_ring txvipringhead;
+ ptx_ring txvopringhead;
+ ptx_ring txcmdringhead;
+ dma_addr_t txmapringdma;
+ dma_addr_t txbkpringdma;
+ dma_addr_t txbepringdma;
+ dma_addr_t txvipringdma;
+ dma_addr_t txvopringdma;
+ dma_addr_t txcmdringdma;
+
+ short up;
+ short up_first_time;
+#ifdef _RTL8192_EXT_PATCH_
+ short mesh_up;
+#endif
+ short crcmon;
+ struct semaphore wx_sem;
+ struct semaphore rf_sem;
+ u8 rf_type;
+ RT_RF_TYPE_819xU rf_chip;
+ char nick[IW_ESSID_MAX_SIZE + 1];
+
+ short (*rf_set_sens)(struct net_device *dev,short sens);
+ u8 (*rf_set_chan)(struct net_device *dev,u8 ch);
+ void (*rf_close)(struct net_device *dev);
+ void (*rf_init)(struct net_device *dev);
+ short promisc;
+ /*stats*/
+ struct Stats stats;
+ struct iw_statistics wstats;
+ struct proc_dir_entry *dir_dev;
+
+ struct sk_buff_head rx_queue;
+ struct sk_buff_head skb_queue;
+ work_struct_rsl qos_activate;
+ atomic_t tx_pending[0x10];
+
+ u16 ShortRetryLimit;
+ u16 LongRetryLimit;
+ u32 TransmitConfig;
+ u8 RegCWinMin;
+#ifdef _RTL8192_EXT_PATCH_
+ u32 NumTxUnicast;
+ u8 keepAliveLevel;
+#endif
+
+ u32 LastRxDescTSFHigh;
+ u32 LastRxDescTSFLow;
+
+
+ u16 EarlyRxThreshold;
+ u32 ReceiveConfig;
+ u8 AcmControl;
+
+ u8 RFProgType;
+
+ u8 retry_data;
+ u8 retry_rts;
+ u16 rts;
+
+ struct ChnlAccessSetting ChannelAccessSetting;
+
+ work_struct_rsl reset_wq;
+
+#ifdef CONFIG_RTLWIFI_DEBUGFS
+ rtl_fs_debug *debug;
+#endif /* CONFIG_IWLWIFI_DEBUGFS */
+#ifdef CONFIG_RTL_RFKILL
+ bool rfkill_off;
+#endif
+ /**********************************************************/
+ u16 basic_rate;
+ u8 short_preamble;
+ u8 slot_time;
+ u16 SifsTime;
+ u8 RegWirelessMode;
+ prt_firmware pFirmware;
+ rtl819x_loopback_e LoopbackMode;
+ firmware_source_e firmware_source;
+ u8 firmware_version;
+ u16 rf_pathmap;
+ bool AutoloadFailFlag;
+ short epromtype;
+ u16 eeprom_vid;
+ u16 eeprom_did;
+ u16 eeprom_svid;
+ u16 eeprom_smid;
+ u8 eeprom_CustomerID;
+ u16 eeprom_ChannelPlan;
+ u8 eeprom_version;
+ u8 EfuseMap[2][HWSET_MAX_SIZE_92S];
+ u16 EfuseUsedBytes;
+ u8 EfuseUsedPercentage;
+
+#ifdef EFUSE_REPG_WORKAROUND
+ bool efuse_RePGSec1Flag;
+ u8 efuse_RePGData[8];
+#endif
+ u8 EEPROMRegulatory;
+ u8 EEPROMPwrGroup[2][3];
+ u8 EEPROMOptional;
+ u8 ThermalValue;
+ long EntryMinUndecoratedSmoothedPWDB;
+ long EntryMaxUndecoratedSmoothedPWDB;
+ u8 DynamicTxHighPowerLvl;
+ u8 LastDTPLvl;
+ u32 CurrentRATR0;
+ FALSE_ALARM_STATISTICS FalseAlmCnt;
+
+ bool bInformFWDriverControlDM;
+ u8 PwrGroupHT20[2][14];
+ u8 PwrGroupHT40[2][14];
+ u16 FwCmdIOMap;
+ u32 FwCmdIOParam;
+ bool bSupportASPM;
+ u32 RfRegChnlVal[2];
+ u8 DMFlag;
+ u8 DM_Type;
+ u8 ShowRateMode;
+ u8 RATRTableBitmap;
+
+#if (EEPROM_OLD_FORMAT_SUPPORT == 1)
+ u8 EEPROMTxPowerLevelCCK[14];
+ u8 EEPROMTxPowerLevelOFDM24G[14];
+ u8 EEPROMTxPowerLevelOFDM5G[24];
+#else
+ u8 RfCckChnlAreaTxPwr[2][3];
+ u8 RfOfdmChnlAreaTxPwr1T[2][3];
+ u8 RfOfdmChnlAreaTxPwr2T[2][3];
+#endif
+ u8 EEPROMRfACCKChnl1TxPwLevel[3];
+ u8 EEPROMRfAOfdmChnlTxPwLevel[3];
+ u8 EEPROMRfCCCKChnl1TxPwLevel[3];
+ u8 EEPROMRfCOfdmChnlTxPwLevel[3];
+#if defined (RTL8192S_WAPI_SUPPORT)
+ u8 EEPROMWapiSupport;
+ u8 WapiSupport;
+#endif
+ u16 EEPROMTxPowerDiff;
+ u16 EEPROMAntPwDiff;
+ u8 EEPROMThermalMeter;
+ u8 EEPROMPwDiff;
+ u8 EEPROMCrystalCap;
+
+ u8 EEPROMBluetoothCoexist;
+ u8 EEPROMBluetoothType;
+ u8 EEPROMBluetoothAntNum;
+ u8 EEPROMBluetoothAntIsolation;
+ u8 EEPROMBluetoothRadioShared;
+
+
+ u8 EEPROMSupportWoWLAN;
+ u8 EEPROMBoardType;
+ u8 EEPROM_Def_Ver;
+ u8 EEPROMHT2T_TxPwr[6];
+ u8 EEPROMTSSI_A;
+ u8 EEPROMTSSI_B;
+ u8 EEPROMTxPowerLevelCCK_V1[3];
+ u8 EEPROMLegacyHTTxPowerDiff;
+ bool bTXPowerDataReadFromEEPORM;
+ u16 RegChannelPlan;
+ u16 ChannelPlan;
+ bool bChnlPlanFromHW;
+ bool RegRfOff;
+ bool isRFOff;
+ bool bInPowerSaveMode;
+ u8 bHwRfOffAction;
+ BB_REGISTER_DEFINITION_T PHYRegDef[4];
+ u8 pwrGroupCnt;
+#if defined RTL8192CE
+ u32 MCSTxPowerLevelOriginalOffset[4][16];
+#elif defined RTL8192SE
+ u32 MCSTxPowerLevelOriginalOffset[4][7];
+#else
+ u32 MCSTxPowerLevelOriginalOffset[6];
+#endif
+ u32 CCKTxPowerLevelOriginalOffset;
+ u8 TxPowerLevelCCK[14];
+ u8 TxPowerLevelCCK_A[14];
+ u8 TxPowerLevelCCK_C[14];
+ u8 TxPowerLevelOFDM24G[14];
+ u8 TxPowerLevelOFDM5G[14];
+ u8 TxPowerLevelOFDM24G_A[14];
+ u8 TxPowerLevelOFDM24G_C[14];
+ u8 LegacyHTTxPowerDiff;
+ u8 TxPowerDiff;
+ s8 RF_C_TxPwDiff;
+ s8 RF_B_TxPwDiff;
+ u8 RfTxPwrLevelCck[2][14];
+ u8 RfTxPwrLevelOfdm1T[2][14];
+ u8 RfTxPwrLevelOfdm2T[2][14];
+ u8 AntennaTxPwDiff[3];
+ u8 TxPwrHt20Diff[2][14];
+ u8 TxPwrLegacyHtDiff[2][14];
+#if 0
+ u8 TxPwrbandEdgeHt40[2][2];
+ u8 TxPwrbandEdgeHt20[2][2];
+ u8 TxPwrbandEdgeLegacyOfdm[2][2];
+#endif
+ u8 TxPwrSafetyFlag;
+ u8 HT2T_TxPwr_A[14];
+ u8 HT2T_TxPwr_B[14];
+ u8 CurrentCckTxPwrIdx;
+ u8 CurrentOfdm24GTxPwrIdx;
+
+ u8 CrystalCap;
+ u8 ThermalMeter[2];
+ u8 BluetoothCoexist;
+ IC_INFERIORITY_8192S IC_Class;
+
+ u8 CckPwEnl;
+ u16 TSSI_13dBm;
+ u32 Pwr_Track;
+ u8 CCKPresentAttentuation_20Mdefault;
+ u8 CCKPresentAttentuation_40Mdefault;
+ char CCKPresentAttentuation_difference;
+ char CCKPresentAttentuation;
+ u8 bCckHighPower;
+ long undecorated_smoothed_pwdb;
+ long undecorated_smoothed_cck_adc_pwdb[4];
+ u8 SwChnlInProgress;
+ u8 SwChnlStage;
+ u8 SwChnlStep;
+ u8 SetBWModeInProgress;
+ HT_CHANNEL_WIDTH CurrentChannelBW;
+
+ u8 nCur40MhzPrimeSC;
+ u32 RfReg0Value[4];
+ u8 NumTotalRFPath;
+ bool brfpath_rxenable[4];
+ struct timer_list watch_dog_timer;
+
+ bool bdynamic_txpower;
+ bool bDynamicTxHighPower;
+ bool bDynamicTxLowPower;
+ bool bLastDTPFlag_High;
+ bool bLastDTPFlag_Low;
+
+ bool bstore_last_dtpflag;
+ bool bstart_txctrl_bydtp;
+ rate_adaptive rate_adaptive;
+ txbbgain_struct txbbgain_table[TxBBGainTableLength];
+ u8 txpower_count;
+ bool btxpower_trackingInit;
+ u8 OFDM_index;
+ u8 CCK_index;
+ u8 Record_CCK_20Mindex;
+ u8 Record_CCK_40Mindex;
+ ccktxbbgain_struct cck_txbbgain_table[CCKTxBBGainTableLength];
+ ccktxbbgain_struct cck_txbbgain_ch14_table[CCKTxBBGainTableLength];
+ u8 rfa_txpowertrackingindex;
+ u8 rfa_txpowertrackingindex_real;
+ u8 rfa_txpowertracking_default;
+ u8 rfc_txpowertrackingindex;
+ u8 rfc_txpowertrackingindex_real;
+ u8 rfc_txpowertracking_default;
+ bool btxpower_tracking;
+ bool bcck_in_ch14;
+
+ init_gain initgain_backup;
+ u8 DefaultInitialGain[4];
+ bool bis_any_nonbepkts;
+ bool bcurrent_turbo_EDCA;
+
+ bool SetFwCmdInProgress;
+ u8 CurrentFwCmdIO;
+
+ u8 MidHighPwrTHR_L1;
+ u8 MidHighPwrTHR_L2;
+
+
+ bool bis_cur_rdlstate;
+ struct timer_list fsync_timer;
+ bool bfsync_processing;
+ u32 rate_record;
+ u32 rateCountDiffRecord;
+ u32 ContiuneDiffCount;
+ bool bswitch_fsync;
+
+ u8 framesync;
+ u32 framesyncC34;
+ u8 framesyncMonitor;
+ u16 nrxAMPDU_size;
+ u8 nrxAMPDU_aggr_num;
+
+ u32 last_rxdesc_tsf_high;
+ u32 last_rxdesc_tsf_low;
+
+ bool bHwRadioOff;
+ bool pwrdown;
+ bool blinked_ingpio;
+ bool aspm_clkreq_enable;
+ u32 pci_bridge_vendor;
+ u8 RegHostPciASPMSetting;
+ int PciBridgeASPMRegOffset;
+ u8 PciBridgeLinkCtrlReg;
+ u8 RegDevicePciASPMSetting;
+ int ASPMRegOffset;
+ int ClkReqOffset;
+ u8 LinkCtrlReg;
+
+ bool RFChangeInProgress;
+ bool SetRFPowerStateInProgress;
+ bool bdisable_nic;
+ RT_OP_MODE OpMode;
+ u32 reset_count;
+ bool bpbc_pressed;
+ u32 txpower_checkcnt;
+ u32 txpower_tracking_callback_cnt;
+ u8 thermal_read_val[40];
+ u8 thermal_readback_index;
+ u32 ccktxpower_adjustcnt_not_ch14;
+ u32 ccktxpower_adjustcnt_ch14;
+ u8 tx_fwinfo_force_subcarriermode;
+ u8 tx_fwinfo_force_subcarrierval;
+
+ RESET_TYPE ResetProgress;
+ bool bForcedSilentReset;
+ bool bDisableNormalResetCheck;
+ u16 TxCounter;
+ u16 RxCounter;
+ int IrpPendingCount;
+ bool bResetInProgress;
+ bool force_reset;
+ bool force_lps;
+ u8 InitialGainOperateType;
+#if defined RTL8192SE || defined RTL8192CE
+ LED_STRATEGY_8190 LedStrategy;
+ LED_8190 SwLed0;
+ LED_8190 SwLed1;
+#endif
+ delayed_work_struct_rsl update_beacon_wq;
+ delayed_work_struct_rsl watch_dog_wq;
+ delayed_work_struct_rsl txpower_tracking_wq;
+ delayed_work_struct_rsl rfpath_check_wq;
+ delayed_work_struct_rsl gpio_change_rf_wq;
+ delayed_work_struct_rsl initialgain_operate_wq;
+ delayed_work_struct_rsl check_hw_scan_wq;
+ delayed_work_struct_rsl hw_scan_simu_wq;
+ delayed_work_struct_rsl start_hw_scan_wq;
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ struct workqueue_struct *priv_wq;
+#else
+ u32 *priv_wq;
+#endif
+ struct timer_list gpio_polling_timer;
+ u8 polling_timer_on;
+ bool bDriverIsGoingToUnload;
+#ifdef _RTL8192_EXT_PATCH_
+ struct mshclass *mshobj;
+#endif
+
+ bool chan_forced;
+ bool bSingleCarrier;
+ bool RegBoard;
+ bool bCckContTx;
+ bool bOfdmContTx;
+ bool bStartContTx;
+ u8 RegPaModel;
+ u8 btMpCckTxPower;
+ u8 btMpOfdmTxPower;
+
+ u32 MptActType;
+ u32 MptIoOffset;
+ u32 MptIoValue;
+ u32 MptRfPath;
+
+ u32 MptBandWidth;
+ u32 MptRateIndex;
+ u8 MptChannelToSw;
+ u32 MptRCR;
+
+ u8 PwrDomainProtect;
+ u8 H2CTxCmdSeq;
+
+#ifdef RTL8192CE
+ u8 EEPROMTSSI[2];
+ u8 EEPROMPwrLimitHT20[3];
+ u8 EEPROMPwrLimitHT40[3];
+ u8 EEPROMChnlAreaTxPwrCCK[2][3];
+ u8 EEPROMChnlAreaTxPwrHT40_1S[2][3];
+ u8 EEPROMChnlAreaTxPwrHT40_2SDiff[2][3];
+ u8 TxPwrLevelCck[2][14];
+ u8 TxPwrLevelHT40_1S[2][14];
+ u8 TxPwrLevelHT40_2S[2][14];
+ bool bRPDownloadFinished;
+ bool bH2CSetInProgress;
+ u8 SetIOInProgress;
+ IO_TYPE CurrentIOType;
+ BT_COEXIST_STR bt_coexist;
+
+ u8 CurFwCmdRegSet;
+ u8 LastHMEBoxNum;
+#endif
+ bool bDMInitialGainEnable;
+ bool MutualAuthenticationFail;
+ bool bDisableFrameBursting;
+ bool bLedOpenDrain;
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10))
+ u32 pci_state;
+#endif
+}r8192_priv;
+
+
+#ifdef _RTL8192_EXT_PATCH_
+struct meshdev_priv {
+ struct net_device_stats stats;
+ struct rtllib_device *rtllib;
+ struct r8192_priv * priv;
+};
+#endif
+
+extern const struct ethtool_ops rtl819x_ethtool_ops;
+
+#ifdef RTL8192CE
+#define Rtl819XFwImageArray Rtl8192CEFwImgArray
+#define Rtl819XMAC_Array Rtl8192CEMAC_2T_Array
+#define Rtl819XAGCTAB_2TArray Rtl8192CEAGCTAB_2TArray
+#define Rtl819XAGCTAB_1TArray Rtl8192CEAGCTAB_1TArray
+#define Rtl819XPHY_REG_2TArray Rtl8192CEPHY_REG_2TArray
+#define Rtl819XPHY_REG_1TArray Rtl8192CEPHY_REG_1TArray
+#define Rtl819XRadioA_2TArray Rtl8192CERadioA_2TArray
+#define Rtl819XRadioA_1TArray Rtl8192CERadioA_1TArray
+#define Rtl819XRadioB_2TArray Rtl8192CERadioB_2TArray
+#define Rtl819XRadioB_1TArray Rtl8192CERadioB_1TArray
+#define Rtl819XMAC_Array Rtl8192CEMAC_2T_Array
+#define Rtl819XPHY_REG_Array_PG Rtl8192CEPHY_REG_Array_PG
+#endif
+
+bool init_firmware(struct net_device *dev);
+void rtl8192_tx_cmd(struct net_device *dev, struct sk_buff *skb);
+short rtl8192_tx(struct net_device *dev, struct sk_buff* skb);
+
+u8 read_nic_io_byte(struct net_device *dev, int x);
+u32 read_nic_io_dword(struct net_device *dev, int x);
+u16 read_nic_io_word(struct net_device *dev, int x) ;
+void write_nic_io_byte(struct net_device *dev, int x,u8 y);
+void write_nic_io_word(struct net_device *dev, int x,u16 y);
+void write_nic_io_dword(struct net_device *dev, int x,u32 y);
+
+u8 read_nic_byte(struct net_device *dev, int x);
+u32 read_nic_dword(struct net_device *dev, int x);
+u16 read_nic_word(struct net_device *dev, int x) ;
+void write_nic_byte(struct net_device *dev, int x,u8 y);
+void write_nic_word(struct net_device *dev, int x,u16 y);
+void write_nic_dword(struct net_device *dev, int x,u32 y);
+
+void force_pci_posting(struct net_device *dev);
+
+void rtl8192_rx_enable(struct net_device *);
+void rtl8192_tx_enable(struct net_device *);
+
+void rtl8192_disassociate(struct net_device *dev);
+void rtl8185_set_rf_pins_enable(struct net_device *dev,u32 a);
+
+int rtl8192_hard_start_xmit(struct sk_buff *skb,struct net_device *dev);
+void rtl8192_hard_data_xmit(struct sk_buff *skb, struct net_device *dev, int rate);
+void rtl8192_data_hard_stop(struct net_device *dev);
+void rtl8192_data_hard_resume(struct net_device *dev);
+void rtl8192_restart(void *data);
+void rtl819x_watchdog_wqcallback(void *data);
+void rtl8192_hw_sleep_wq (void *data);
+void watch_dog_timer_callback(unsigned long data);
+void rtl8192_irq_rx_tasklet(struct r8192_priv *priv);
+void rtl8192_irq_tx_tasklet(struct r8192_priv *priv);
+int rtl8192_down(struct net_device *dev,bool shutdownrf);
+int rtl8192_up(struct net_device *dev);
+void rtl8192_commit(struct net_device *dev);
+void rtl8192_set_chan(struct net_device *dev,short ch);
+
+void check_rfctrl_gpio_timer(unsigned long data);
+
+
+extern void firmware_init_param(struct net_device *dev);
+extern bool cmpk_message_handle_tx(struct net_device *dev, u8* codevirtualaddress, u32 packettype, u32 buffer_len);
+void rtl8192_hw_wakeup_wq(void *data);
+
+irqreturn_type rtl8192_interrupt(int irq, void *netdev, struct pt_regs *regs);
+
+short rtl8192_pci_initdescring(struct net_device *dev);
+
+void rtl8192_cancel_deferred_work(struct r8192_priv* priv);
+
+int _rtl8192_up(struct net_device *dev,bool is_silent_reset);
+
+short rtl8192_is_tx_queue_empty(struct net_device *dev);
+#ifdef RTL8192SE
+void rtl8192_irq_disable(struct net_device *dev);
+void GetHwReg8192SE(struct net_device *dev,u8 variable,u8* val);
+void SetHwReg8192SE(struct net_device *dev,u8 variable,u8* val);
+void SwLedOn(struct net_device *dev , PLED_8190 pLed);
+void SwLedOff(struct net_device *dev, PLED_8190 pLed);
+void Adhoc_InitRateAdaptive(struct net_device *dev,struct sta_info *pEntry);
+void SetBeaconRelatedRegisters8192SE(struct net_device *dev);
+
+#if LINUX_VERSION_CODE >=KERNEL_VERSION(2,6,20)
+void rtl8192se_check_tsf_wq(struct work_struct * work);
+void rtl8192se_update_assoc_sta_info_wq(struct work_struct * work);
+#else
+void rtl8192se_check_tsf_wq(struct net_device *dev);
+void rtl8192se_update_assoc_sta_info_wq(struct net_device *dev);
+#endif
+#endif
+
+void check_rfctrl_gpio_timer(unsigned long data);
+u8 HalSetSysClk8192SE(struct net_device *dev, u8 Data);
+void gen_RefreshLedState(struct net_device *dev);
+#ifdef _RTL8192_EXT_PATCH_
+extern int r8192_mesh_set_enc_ext(struct net_device *dev, struct iw_point *encoding, struct iw_encode_ext *ext, u8 *addr);
+#ifdef BUILT_IN_MSHCLASS
+extern int msh_init(void);
+extern void msh_exit(void);
+#endif
+#endif
+#define IS_HARDWARE_TYPE_819xP(_priv) ((((struct r8192_priv*)rtllib_priv(dev))->card_8192==NIC_8190P)||\
+ (((struct r8192_priv*)rtllib_priv(dev))->card_8192==NIC_8192E))
+#define IS_HARDWARE_TYPE_8192SE(_priv) (((struct r8192_priv*)rtllib_priv(dev))->card_8192==NIC_8192SE)
+#define IS_HARDWARE_TYPE_8192CE(_priv) (((struct r8192_priv*)rtllib_priv(dev))->card_8192==NIC_8192CE)
+#define IS_HARDWARE_TYPE_8192CU(_priv) (((struct r8192_priv*)rtllib_priv(dev))->card_8192==NIC_8192CU)
+#define IS_HARDWARE_TYPE_8192DE(_priv) (((struct r8192_priv*)rtllib_priv(dev))->card_8192==NIC_8192DE)
+#define IS_HARDWARE_TYPE_8192DU(_priv) (((struct r8192_priv*)rtllib_priv(dev))->card_8192==NIC_8192DU)
+extern void dm_InitRateAdaptiveMask(struct net_device * dev);
+
+void rtl8192_tx_timeout(struct net_device *dev);
+void rtl8192_pci_resetdescring(struct net_device *dev);
+void rtl8192_SetWirelessMode(struct net_device* dev, u8 wireless_mode);
+void rtl8192_irq_enable(struct net_device *dev);
+void rtl8192_config_rate(struct net_device* dev, u16* rate_config);
+void rtl8192_update_cap(struct net_device* dev, u16 cap);
+void rtl8192_irq_disable(struct net_device *dev);
+
+void rtl819x_UpdateRxPktTimeStamp (struct net_device *dev, struct rtllib_rx_stats *stats);
+long rtl819x_translate_todbm(struct r8192_priv * priv, u8 signal_strength_index );
+void rtl819x_update_rxsignalstatistics8190pci(struct r8192_priv * priv,struct rtllib_rx_stats * pprevious_stats);
+u8 rtl819x_evm_dbtopercentage(char value);
+void rtl819x_process_cck_rxpathsel(struct r8192_priv * priv,struct rtllib_rx_stats * pprevious_stats);
+u8 rtl819x_query_rxpwrpercentage( char antpower );
+void rtl8192_record_rxdesc_forlateruse(struct rtllib_rx_stats * psrc_stats,struct rtllib_rx_stats * ptarget_stats);
+
+bool NicIFEnableNIC(struct net_device* dev);
+bool NicIFDisableNIC(struct net_device* dev);
+
+bool
+MgntActSet_RF_State(
+ struct net_device* dev,
+ RT_RF_POWER_STATE StateToSet,
+ RT_RF_CHANGE_SOURCE ChangeSource
+ );
+#ifdef CONFIG_CFG_80211
+struct net_device *wiphy_to_net_device(struct wiphy *wiphy);
+#endif
+
+#endif
+
+
diff --git a/ubuntu/rtl8192se/rtl_debug.c b/ubuntu/rtl8192se/rtl_debug.c
new file mode 100755
index 00000000000..9d78aac18c9
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_debug.c
@@ -0,0 +1,1384 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#include "rtl_debug.h"
+#include "rtl_core.h"
+#ifdef RTL8192CE
+#include "rtl8192c/r8192C_phy.h"
+#include "rtl8192c/r8192C_phyreg.h"
+#include "rtl8192c/r8192C_rtl6052.h"
+#include "rtl8192c/r8192C_Efuse.h"
+#elif defined RTL8192SE
+#include "rtl8192s/r8192S_phy.h"
+#include "rtl8192s/r8192S_phyreg.h"
+#include "rtl8192s/r8192S_rtl6052.h"
+#include "rtl8192s/r8192S_Efuse.h"
+#else
+#include "rtl8192e/r8192E_phy.h"
+#include "rtl8192e/r8192E_phyreg.h"
+#include "rtl8192e/r8190P_rtl8256.h" /* RTL8225 Radio frontend */
+#include "rtl8192e/r8192E_cmdpkt.h"
+#endif
+
+#ifdef _RTL8192_EXT_PATCH_
+#include "../../mshclass/msh_class.h"
+#endif
+/* this is only for debugging */
+void print_buffer(u32 *buffer, int len)
+{
+ int i;
+ u8 *buf =(u8*)buffer;
+
+ printk("ASCII BUFFER DUMP (len: %x):\n",len);
+
+ for(i=0;i<len;i++)
+ printk("%c",buf[i]);
+
+ printk("\nBINARY BUFFER DUMP (len: %x):\n",len);
+
+ for(i=0;i<len;i++)
+ printk("%x",buf[i]);
+
+ printk("\n");
+}
+
+/* this is only for debug */
+void dump_eprom(struct net_device *dev)
+{
+ int i;
+
+ for (i = 0; i < 0xff; i++) {
+ RT_TRACE(COMP_INIT, "EEPROM addr %x : %x", i, eprom_read(dev,i));
+ }
+}
+
+/* this is only for debug */
+void rtl8192_dump_reg(struct net_device *dev)
+{
+ int i;
+ int n;
+ int max = 0x5ff;
+
+ RT_TRACE(COMP_INIT, "Dumping NIC register map");
+
+ for (n = 0; n <= max; ) {
+ printk( "\nD: %2x> ", n);
+ for (i = 0; i < 16 && n <= max; i++, n++)
+ printk("%2x ", read_nic_byte(dev, n));
+ }
+ printk("\n");
+}
+
+#ifdef RTL8192CE
+void rtl8192ce_dump_tx_desc(tx_desc *pDesc)
+{
+#if 0
+ RTPRINT(FTX, TX_DESC, ("DW 0 =========\r\n"));
+ RTPRINT(FTX, TX_DESC, ("Own = %d\n", pDesc->OWN));
+ RTPRINT(FTX, TX_DESC, ("GF = %d\n", pDesc->GF));
+ RTPRINT(FTX, TX_DESC, ("LINIP = %d\n", pDesc->LINIP));
+ RTPRINT(FTX, TX_DESC, ("FS = %d\n", pDesc->FirstSeg));
+ RTPRINT(FTX, TX_DESC, ("LS = %d\n", pDesc->LastSeg));
+ RTPRINT(FTX, TX_DESC, ("Offset = %d\n", pDesc->Offset));
+ RTPRINT(FTX, TX_DESC, ("PktSize = %d\r\n", pDesc->PktSize));
+
+ RTPRINT(FTX, TX_DESC, ("DW 1 ==========\r\n"));
+ RTPRINT(FTX, TX_DESC, ("PKTOFFSET = %d\n", pDesc->PktOffset));
+ RTPRINT(FTX, TX_DESC, ("HTC = %d\n", pDesc->HTC));
+ RTPRINT(FTX, TX_DESC, ("SecType = %d\n", pDesc->SecType));
+ RTPRINT(FTX, TX_DESC, ("EnDescID = %d\n", pDesc->EnDescID));
+ RTPRINT(FTX, TX_DESC, ("NoACM = %d\n", pDesc->NOACM));
+ RTPRINT(FTX, TX_DESC, ("QueueSelect = %d\n", pDesc->QueueSel));
+ RTPRINT(FTX, TX_DESC, ("PIFS = %d\n", pDesc->PIFS));
+ RTPRINT(FTX, TX_DESC, ("MoreFrag = %d\n", pDesc->MoreFrag));
+ RTPRINT(FTX, TX_DESC, ("MacID = %d\r\n", pDesc->MacID));
+
+ RTPRINT(FTX, TX_DESC, ("DW 2 ==========\r\n"));
+ RTPRINT(FTX, TX_DESC, ("BK = %d\n", pDesc->Bk));
+ RTPRINT(FTX, TX_DESC, ("AGG_EN = %d\n", pDesc->AggEn));
+ RTPRINT(FTX, TX_DESC, ("Data Retry CNT = %d\n", pDesc->DATARC));
+ RTPRINT(FTX, TX_DESC, ("RTS Retry CNT = %d\n", pDesc->RTSRC));
+ RTPRINT(FTX, TX_DESC, ("TSFL = %d\n", pDesc->TSFL));
+ RTPRINT(FTX, TX_DESC, ("RetryLmtEn = %d\n", pDesc->RetryLmtEn));
+ RTPRINT(FTX, TX_DESC, ("DataRetryLmt = %d\r\n", pDesc->TxRetryLmt));
+
+ RTPRINT(FTX, TX_DESC, ("DW 3 ==========\r\n"));
+ RTPRINT(FTX, TX_DESC, ("Seq = %d\n", pDesc->Seq));
+ RTPRINT(FTX, TX_DESC, ("TailPage = %d\n", pDesc->TailPage));
+ RTPRINT(FTX, TX_DESC, ("NextHeadPage = %d\r\n", pDesc->NextHeadPage));
+
+ RTPRINT(FTX, TX_DESC, ("DW 4 ==========\r\n"));
+ RTPRINT(FTX, TX_DESC, ("UserRate = %d\n", pDesc->UserRate));
+ RTPRINT(FTX, TX_DESC, ("RTS STBC = %d\n", pDesc->RTSSTBC));
+ RTPRINT(FTX, TX_DESC, ("RTSSC = %d\n", pDesc->RTSSC));
+ RTPRINT(FTX, TX_DESC, ("STBC = %d\n", pDesc->STBC));
+ RTPRINT(FTX, TX_DESC, ("TXSC = %d\n", pDesc->TxSc));
+ RTPRINT(FTX, TX_DESC, ("TxBw = %d\n", pDesc->TxBW));
+ RTPRINT(FTX, TX_DESC, ("TxShort = %d\n", pDesc->TxShort));
+ RTPRINT(FTX, TX_DESC, ("RTSEn = %d\n", pDesc->RTSEn));
+ RTPRINT(FTX, TX_DESC, ("CTS2Self = %d\n", pDesc->CTS2Self));
+ RTPRINT(FTX, TX_DESC, ("RTSRateFBLmt = %d\n", pDesc->RTSRateFBLmt));
+ RTPRINT(FTX, TX_DESC, ("DisRTSFB = %d\n", pDesc->DisRTSFB));
+ RTPRINT(FTX, TX_DESC, ("RTSRate = %d\r\n", pDesc->RTSRate));
+
+ RTPRINT(FTX, TX_DESC, ("DW 5 ==========\r\n"));
+ RTPRINT(FTX, TX_DESC, ("TxAGC = %d\n", pDesc->TXAGCA));
+ RTPRINT(FTX, TX_DESC, ("TxAGC = %d\n", pDesc->TXAGCB));
+ RTPRINT(FTX, TX_DESC, ("DataRateFBLmt = %d\n", pDesc->TxRateFBLmt));
+ RTPRINT(FTX, TX_DESC, ("Disable Feedback = %d\n", pDesc->DisDataFB));
+ RTPRINT(FTX, TX_DESC, ("TX_Rate = %d\n", pDesc->TxRate));
+ RTPRINT(FTX, TX_DESC, ("PktID = %d\r\n", pDesc->PktID));
+
+ RTPRINT(FTX, TX_DESC, ("DW 6 ==========\r\n"));
+
+ RTPRINT(FTX, TX_DESC, ("DW 7-9 ==========\r\n"));
+ RTPRINT(FTX, TX_DESC, ("TxBufferSize = %d\r\n", pDesc->TxBufferSize));
+
+ RTPRINT(FTX, TX_DESC, ("PhyAddressLow = %08x\n", pDesc->TxBuffAddr));
+
+ RTPRINT(FTX, TX_DESC, ("NextDescAddress= %08X\n", pDesc->NextDescAddress));
+#else
+ u32* desc = (u32*)pDesc;
+ u8 i=0;
+ printk("#########################\n");
+ for(i=0;i<=9;i++){
+ printk("#########>%x\n", desc[i]);
+ }
+ printk("#########################\n\n");
+#endif
+}
+#endif
+
+#ifdef RTL8192SE
+void rtl8192se_dump_tx_desc(tx_desc* pDesc)
+{
+ printk("DW 0 =========\r\n");
+ printk("Own = %d\n", pDesc->OWN);
+ printk("GF = %d\n", pDesc->GF);
+ printk("LINIP = %d\n", pDesc->LINIP);
+ printk("FS = %d\n", pDesc->FirstSeg);
+ printk("LS = %d\n", pDesc->LastSeg);
+ printk("Offset = %d\n", pDesc->Offset);
+ printk("PktSize = %d\r\n", pDesc->PktSize);
+
+ printk("DW 1 ==========\r\n");
+ printk("HWPC = %d\n", pDesc->HWPC);
+ printk("PKTOFFSET = %d\n", pDesc->PktOffset);
+ printk("WDS = %d\n", pDesc->WDS);
+ printk("HTC = %d\n", pDesc->HTC);
+ printk("SecType = %d\n", pDesc->SecType);
+ printk("EnDescID = %d\n", pDesc->EnDescID);
+ printk("PktType = %d\n", pDesc->PktType);
+ printk("OUI = %d\n", pDesc->OUI);
+ printk("SecKeyId = %d\n", pDesc->KeyID);
+ printk("NonQos = %d\n", pDesc->NonQos);
+ printk("NoACM = %d\n", pDesc->NoACM);
+ printk("AckPolicy = %d\n", pDesc->AckPolicy);
+ printk("QueueSelect = %d\n", pDesc->QueueSel);
+ printk("PIFS = %d\n", pDesc->PIFS);
+ printk("MoreFrag = %d\n", pDesc->MoreFrag);
+ printk("MoreData = %d\n", pDesc->MoreData);
+ printk("MacID = %d\r\n", pDesc->MacID);
+
+ printk("DW 2 ==========\r\n");
+ printk("OwnMAC = %d\n", pDesc->OwnMAC);
+ printk("BK = %d\n", pDesc->BK);
+ printk("AGG_EN = %d\n", pDesc->AggEn);
+ printk("Data Retry CNT = %d\n", pDesc->DATARC);
+ printk("RTS Retry CNT = %d\n", pDesc->RTSRC);
+ printk("TSFL = %d\n", pDesc->TSFL);
+ printk("RetryLmtEn = %d\n", pDesc->RetryLmtEn);
+ printk("DataRetryLmt = %d\r\n", pDesc->DataRetryLmt);
+
+ printk("DW 3 ==========\r\n");
+ printk("Frag = %d\n", pDesc->Frag);
+ printk("Seq = %d\n", pDesc->Seq);
+ printk("TailPage = %d\n", pDesc->TailPage);
+ printk("NextHeadPage = %d\r\n", pDesc->NextHeadPage);
+
+ printk("DW 4 ==========\r\n");
+ printk("UserRate = %d\n", pDesc->UserRate);
+ printk("RTS STBC = %d\n", pDesc->RTSSTBC);
+ printk("RTSSC = %d\n", pDesc->RTSSC);
+ printk("RTSBW = %d\n", pDesc->RTSBW);
+ printk("RTSShort = %d\n", pDesc->RTSShort);
+ printk("RTSHT = %d\n", pDesc->RTSHT);
+ printk("RD = %d\n", pDesc->RD);
+ printk("STBC = %d\n", pDesc->STBC);
+ printk("TXSC = %d\n", pDesc->TXSC);
+ printk("TxBw = %d\n", pDesc->TxBw);
+ printk("TxShort = %d\n", pDesc->TxShort);
+ printk("TXHT = %d\n", pDesc->TXHT);
+ printk("RaBRSRID = %d\n", pDesc->RaBRSRID);
+ printk("RTSEn = %d\n", pDesc->RTSEn);
+ printk("CTS2Self = %d\n", pDesc->CTS2Self);
+ printk("RTSRateFBLmt = %d\n", pDesc->RTSRateFBLmt);
+ printk("DisRTSFB = %d\n", pDesc->DisRTSFB);
+ printk("RTSRate = %d\r\n", pDesc->RTSRate);
+
+ printk("DW 5 ==========\r\n");
+ printk("TxAGC = %d\n", pDesc->TxAGC);
+ printk("DataRateFBLmt = %d\n", pDesc->DataRateFBLmt);
+ printk("Disable Feedback = %d\n", pDesc->DISFB);
+ printk("TX_Rate = %d\n", pDesc->TxRate);
+ printk("PktID = %d\r\n", pDesc->PktID);
+
+ printk("DW 6 ==========\r\n");
+ printk("TCPChkSum = %d\n", pDesc->TCPChkSum);
+ printk("IPChkSum = %d\r\n", pDesc->IPChkSum);
+
+ printk("DW 7-9 ==========\r\n");
+ printk("TCPEn = %d\n", pDesc->TCPEn);
+ printk("IPHdrOffset = %d\n", pDesc->IPHdrOffset);
+ printk("TxBufferSize = %d\r\n", pDesc->TxBufferSize);
+
+ printk("PhyAddressLow = %08x\n", pDesc->TxBuffAddr);
+
+ printk("NextDescAddress= %08X\n", pDesc->NextDescAddress);
+}
+#endif
+
+#ifdef CONFIG_RTLWIFI_DEBUGFS
+/* debugfs related stuff */
+static struct dentry *rtl_debugfs_root;
+static int rtl_dbgfs_open(struct inode *inode, struct file *file)
+{
+ file->private_data = inode->i_private;
+ return 0;
+}
+
+static ssize_t rtl_dbgfs_register_write(struct file *file,
+ const char __user *user_buf,
+ size_t count,
+ loff_t *ppos)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)file->private_data;
+ char buf[32];
+ int buf_size;
+ u32 type, offset;
+
+ memset(buf, 0, sizeof(buf));
+ buf_size = min(count, sizeof(buf) - 1);
+ if (copy_from_user(buf, user_buf, buf_size))
+ return -EFAULT;
+
+ if (sscanf(buf, "%x,%x", &type, &offset ) == 2) {
+ priv->debug->hw_type = type;
+ priv->debug->hw_offset = offset;
+ } else {
+ priv->debug->hw_type = 0;
+ priv->debug->hw_offset = 0;
+ }
+
+ return count;
+}
+
+void rtl_hardware_grab(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int t = 0;
+ int timeout = 20;
+ u32 mask = RF_CHANGE_BY_HW|RF_CHANGE_BY_PS|RF_CHANGE_BY_IPS;
+
+ priv->debug->hw_holding = true;
+#ifdef ENABLE_IPS
+ rtllib_ips_leave_wq(dev);
+#endif
+ do {
+ if ((priv->rtllib->RfOffReason & mask)) {
+ msleep(100);
+ t++;
+ } else {
+ return;
+ }
+ } while (t < timeout);
+
+ return;
+}
+
+static ssize_t rtl_dbgfs_register_read(struct file *file,
+ char __user *user_buf,
+ size_t count,
+ loff_t *ppos)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)file->private_data;
+ struct net_device *dev = priv->rtllib->dev;
+ ssize_t ret = 0;
+ char buf[2048];
+ int n,i;
+ u32 len = 0;
+ u32 max = 0xff;
+ u32 page_no, path;
+
+ rtl_hardware_grab(dev);
+
+ if(!priv->debug->hw_type) {
+ page_no = (priv->debug->hw_offset > 0x0f)? 0x0f: priv->debug->hw_offset;
+#ifdef RTL8192SE
+ if(page_no >= 0x08 ) {
+ len += snprintf(buf + len, count - len,
+ "\n#################### BB page- %x##################\n ", page_no);
+ for(n=0;n<=max;)
+ {
+ len += snprintf(buf + len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<4 && n<=max;n+=4,i++)
+ len += snprintf(buf + len, count - len,
+ "%8.8x ",rtl8192_QueryBBReg(dev,(page_no << 8|n),
+ bMaskDWord));
+ }
+
+ } else
+#endif
+ {
+ len += snprintf(buf + len,count - len,
+ "\n#################### MAC page- %x##################\n ", page_no);
+ for(n=0;n<=max;) {
+ len += snprintf(buf + len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<16 && n<=max;i++,n++)
+ len += snprintf(buf + len, count - len,
+ "%2.2x ",read_nic_byte(dev,((page_no<<8)|n)));
+ }
+ }
+ } else {
+ path = (priv->debug->hw_offset < RF90_PATH_MAX)? priv->debug->hw_offset:(RF90_PATH_MAX - 1);
+ len += snprintf(buf + len, count - len,
+ "\n#################### RF-PATH-%x ##################\n ", 0x0a+path);
+ for(n=0;n<=max;) {
+ len += snprintf(buf+ len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<4 && n<=max;n+=4,i++)
+ len += snprintf(buf + len, count - len,
+ "%8.8x ",rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)path,\
+ n, bMaskDWord));
+ }
+ }
+
+ priv->debug->hw_holding = false;
+
+ len += snprintf(buf + len, count - len, "\n");
+ ret = simple_read_from_buffer(user_buf, count, ppos, buf, len);
+ return ret;
+}
+
+static const struct file_operations rtl_register_debug = {
+ .read = rtl_dbgfs_register_read,
+ .write = rtl_dbgfs_register_write,
+ .open = rtl_dbgfs_open,
+ .owner = THIS_MODULE
+};
+
+int rtl_debug_module_init(struct r8192_priv *priv, const char *name)
+{
+ rtl_fs_debug *debug;
+ int ret = 0;
+
+ if (!rtl_debugfs_root)
+ return -ENOENT;
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
+ debug = kzalloc(sizeof(rtl_fs_debug), GFP_KERNEL);
+#else
+ rtl_fs_debug = kmalloc(sizeof(*rtl_fs_debug), GFP_KERNEL);
+ memset(rtl_fs_debug,0,sizeof(*rtl_fs_debug));
+#endif
+ if (!debug) {
+ ret = -ENOMEM;
+ goto err;
+ }
+ priv->debug = debug;
+
+ debug->name = name;
+ debug->dir_drv = debugfs_create_dir(name, rtl_debugfs_root);
+ if (!debug->dir_drv ) {
+ ret = -ENOENT;
+ goto err;
+ }
+
+ debug->debug_register = debugfs_create_file("debug_register", S_IRUGO,
+ debug->dir_drv, priv, &rtl_register_debug);
+ if(!debug->debug_register) {
+ ret = -ENOENT;
+ goto err;
+ }
+
+ return 0;
+err:
+ RT_TRACE(COMP_DBG, "Can't open the debugfs directory\n");
+ rtl_debug_module_remove(priv);
+ return ret;
+
+}
+
+void rtl_debug_module_remove(struct r8192_priv *priv)
+{
+ if (!priv->debug)
+ return;
+ debugfs_remove(priv->debug->debug_register);
+ debugfs_remove(priv->debug->dir_drv);
+ kfree(priv->debug);
+ priv->debug = NULL;
+}
+
+int rtl_create_debugfs_root(void)
+{
+ rtl_debugfs_root = debugfs_create_dir(DRV_NAME, NULL);
+ if (!rtl_debugfs_root)
+ return -ENOENT;
+
+ return 0;
+}
+
+void rtl_remove_debugfs_root(void)
+{
+ debugfs_remove(rtl_debugfs_root);
+ rtl_debugfs_root = NULL;
+}
+#endif
+
+/****************************************************************************
+ -----------------------------PROCFS STUFF-------------------------
+*****************************************************************************/
+/*This part is related to PROC, which will record some statistics. */
+static struct proc_dir_entry *rtl8192_proc = NULL;
+
+static int proc_get_stats_ap(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+ struct rtllib_network *target;
+
+ int len = 0;
+
+ list_for_each_entry(target, &ieee->network_list, list) {
+
+ len += snprintf(page + len, count - len,
+ "%s ", target->ssid);
+
+ if(target->wpa_ie_len>0 || target->rsn_ie_len>0){
+ len += snprintf(page + len, count - len,
+ "WPA\n");
+ }
+ else{
+ len += snprintf(page + len, count - len,
+ "non_WPA\n");
+ }
+
+ }
+
+ *eof = 1;
+ return len;
+}
+
+static int proc_get_registers_0(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0x000;
+
+#ifdef RTL8192SE
+ /* This dump the current register page */
+ if(!IS_BB_REG_OFFSET_92S(page0)){
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len,
+ "\nD: %2x > ",n);
+ for(i=0;i<16 && n<=max;i++,n++)
+ len += snprintf(page + len, count - len,
+ "%2.2x ",read_nic_byte(dev,(page0|n)));
+ }
+ }else
+#endif
+ {
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<16 && n<=max;n++,i++)
+ len += snprintf(page + len, count - len,
+ "%2.2x ",read_nic_byte(dev,(page0|n)));
+ }
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+
+}
+static int proc_get_registers_1(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0x100;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len,
+ "\nD: %2x > ",n);
+ for(i=0;i<16 && n<=max;i++,n++)
+ len += snprintf(page + len, count - len,
+ "%2.2x ",read_nic_byte(dev,(page0|n)));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+
+}
+static int proc_get_registers_2(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0x200;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len,
+ "\nD: %2x > ",n);
+ for(i=0;i<16 && n<=max;i++,n++)
+ len += snprintf(page + len, count - len,
+ "%2.2x ",read_nic_byte(dev,(page0|n)));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+
+}
+static int proc_get_registers_3(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0x300;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len,
+ "\nD: %2x > ",n);
+ for(i=0;i<16 && n<=max;i++,n++)
+ len += snprintf(page + len, count - len,
+ "%2.2x ",read_nic_byte(dev,(page0|n)));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+
+}
+static int proc_get_registers_4(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0x400;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len,
+ "\nD: %2x > ",n);
+ for(i=0;i<16 && n<=max;i++,n++)
+ len += snprintf(page + len, count - len,
+ "%2.2x ",read_nic_byte(dev,(page0|n)));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+
+}
+static int proc_get_registers_5(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0x500;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len,
+ "\nD: %2x > ",n);
+ for(i=0;i<16 && n<=max;i++,n++)
+ len += snprintf(page + len, count - len,
+ "%2.2x ",read_nic_byte(dev,(page0|n)));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+
+}
+static int proc_get_registers_6(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0x600;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len,
+ "\nD: %2x > ",n);
+ for(i=0;i<16 && n<=max;i++,n++)
+ len += snprintf(page + len, count - len,
+ "%2.2x ",read_nic_byte(dev,(page0|n)));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+
+}
+static int proc_get_registers_7(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0x700;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len,
+ "\nD: %2x > ",n);
+ for(i=0;i<16 && n<=max;i++,n++)
+ len += snprintf(page + len, count - len,
+ "%2.2x ",read_nic_byte(dev,(page0|n)));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+
+}
+static int proc_get_registers_8(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0x800;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<4 && n<=max;n+=4,i++)
+ len += snprintf(page + len, count - len,
+ "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+
+}
+static int proc_get_registers_9(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0x900;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<4 && n<=max;n+=4,i++)
+ len += snprintf(page + len, count - len,
+ "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+}
+static int proc_get_registers_a(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0xa00;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<4 && n<=max;n+=4,i++)
+ len += snprintf(page + len, count - len,
+ "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+}
+static int proc_get_registers_b(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0xb00;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<4 && n<=max;n+=4,i++)
+ len += snprintf(page + len, count - len,
+ "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+}
+static int proc_get_registers_c(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0xc00;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<4 && n<=max;n+=4,i++)
+ len += snprintf(page + len, count - len,
+ "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+}
+static int proc_get_registers_d(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0xd00;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<4 && n<=max;n+=4,i++)
+ len += snprintf(page + len, count - len,
+ "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+}
+static int proc_get_registers_e(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n,page0;
+
+ int max=0xff;
+ page0 = 0xe00;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n####################page %x##################\n ", (page0>>8));
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<4 && n<=max;n+=4,i++)
+ len += snprintf(page + len, count - len,
+ "%8.8x ",rtl8192_QueryBBReg(dev,(page0|n), bMaskDWord));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+}
+
+static int proc_get_reg_rf_a(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n;
+
+ int max=0xff;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n#################### RF-A ##################\n ");
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<4 && n<=max;n+=4,i++)
+ len += snprintf(page + len, count - len,
+ "%8.8x ",rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_A,n, bMaskDWord));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+}
+
+static int proc_get_reg_rf_b(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n;
+
+ int max=0xff;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n#################### RF-B ##################\n ");
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<4 && n<=max;n+=4,i++)
+ len += snprintf(page + len, count - len,
+ "%8.8x ",rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_B, n, bMaskDWord));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+}
+
+static int proc_get_reg_rf_c(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n;
+
+ int max=0xff;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n#################### RF-C ##################\n ");
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<4 && n<=max;n+=4,i++)
+ len += snprintf(page + len, count - len,
+ "%8.8x ",rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_C, n, bMaskDWord));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+}
+
+static int proc_get_reg_rf_d(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+
+ int len = 0;
+ int i,n;
+
+ int max=0xff;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n#################### RF-D ##################\n ");
+ for(n=0;n<=max;)
+ {
+ len += snprintf(page + len, count - len, "\nD: %2x > ",n);
+ for(i=0;i<4 && n<=max;n+=4,i++)
+ len += snprintf(page + len, count - len,
+ "%8.8x ",rtl8192_phy_QueryRFReg(dev, (RF90_RADIO_PATH_E)RF90_PATH_D, n, bMaskDWord));
+ }
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+}
+
+static int proc_get_cam_register(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+ u32 target_command=0;
+ u32 target_content=0;
+ u8 entry_i=0;
+ u32 ulStatus;
+ int len = 0;
+ int i=100, j = 0;
+
+ /* This dump the current register page */
+ len += snprintf(page + len, count - len,
+ "\n#################### SECURITY CAM ##################\n ");
+ for(j=0; j<TOTAL_CAM_ENTRY; j++)
+ {
+ if((j>6) && (j<31))
+ continue;
+ len += snprintf(page + len, count - len, "\nD: %2x > ",j);
+ for(entry_i=0;entry_i<CAM_CONTENT_COUNT;entry_i++)
+ {
+ target_command= entry_i+CAM_CONTENT_COUNT*j;
+ target_command= target_command | BIT31;
+
+ while((i--)>=0)
+ {
+ ulStatus = read_nic_dword(dev, RWCAM);
+ if(ulStatus & BIT31){
+ continue;
+ }
+ else{
+ break;
+ }
+ }
+ write_nic_dword(dev, RWCAM, target_command);
+ target_content = read_nic_dword(dev, RCAMO);
+ len += snprintf(page + len, count - len,"%8.8x ",target_content);
+ }
+ }
+
+ len += snprintf(page + len, count - len,"\n");
+ *eof = 1;
+ return len;
+}
+
+static int proc_get_stats_tx(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ int len = 0;
+
+ len += snprintf(page + len, count - len,
+ "TX VI priority ok int: %lu\n"
+ "TX VO priority ok int: %lu\n"
+ "TX BE priority ok int: %lu\n"
+ "TX BK priority ok int: %lu\n"
+ "TX MANAGE priority ok int: %lu\n"
+ "TX BEACON priority ok int: %lu\n"
+ "TX BEACON priority error int: %lu\n"
+ "TX CMDPKT priority ok int: %lu\n"
+ "TX queue stopped?: %d\n"
+ "TX fifo overflow: %lu\n"
+ "TX total data packets %lu\n"
+ "TX total data bytes :%lu\n",
+ priv->stats.txviokint,
+ priv->stats.txvookint,
+ priv->stats.txbeokint,
+ priv->stats.txbkokint,
+ priv->stats.txmanageokint,
+ priv->stats.txbeaconokint,
+ priv->stats.txbeaconerr,
+ priv->stats.txcmdpktokint,
+ netif_queue_stopped(dev),
+ priv->stats.txoverflow,
+ priv->rtllib->stats.tx_packets,
+ priv->rtllib->stats.tx_bytes
+
+
+ );
+
+ *eof = 1;
+ return len;
+}
+
+
+
+static int proc_get_stats_rx(char *page, char **start,
+ off_t offset, int count,
+ int *eof, void *data)
+{
+ struct net_device *dev = data;
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ int len = 0;
+
+ len += snprintf(page + len, count - len,
+ "RX packets: %lu\n"
+ "RX data crc err: %lu\n"
+ "RX mgmt crc err: %lu\n"
+ "RX desc err: %lu\n"
+ "RX rx overflow error: %lu\n",
+ priv->stats.rxint,
+ priv->stats.rxdatacrcerr,
+ priv->stats.rxmgmtcrcerr,
+ priv->stats.rxrdu,
+ priv->stats.rxoverflow);
+
+ *eof = 1;
+ return len;
+}
+
+void rtl8192_proc_module_init(void)
+{
+ RT_TRACE(COMP_INIT, "Initializing proc filesystem");
+#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+ rtl8192_proc=create_proc_entry(DRV_NAME, S_IFDIR, proc_net);
+#else
+ rtl8192_proc=create_proc_entry(DRV_NAME, S_IFDIR, init_net.proc_net);
+#endif
+}
+
+
+void rtl8192_proc_module_remove(void)
+{
+#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+ remove_proc_entry(DRV_NAME, proc_net);
+#else
+ remove_proc_entry(DRV_NAME, init_net.proc_net);
+#endif
+}
+
+
+void rtl8192_proc_remove_one(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ printk("dev name %s\n",dev->name);
+
+ if (priv->dir_dev) {
+ remove_proc_entry("stats-tx", priv->dir_dev);
+ remove_proc_entry("stats-rx", priv->dir_dev);
+ remove_proc_entry("stats-ap", priv->dir_dev);
+ remove_proc_entry("registers-0", priv->dir_dev);
+ remove_proc_entry("registers-1", priv->dir_dev);
+ remove_proc_entry("registers-2", priv->dir_dev);
+ remove_proc_entry("registers-3", priv->dir_dev);
+ remove_proc_entry("registers-4", priv->dir_dev);
+ remove_proc_entry("registers-5", priv->dir_dev);
+ remove_proc_entry("registers-6", priv->dir_dev);
+ remove_proc_entry("registers-7", priv->dir_dev);
+ remove_proc_entry("registers-8", priv->dir_dev);
+ remove_proc_entry("registers-9", priv->dir_dev);
+ remove_proc_entry("registers-a", priv->dir_dev);
+ remove_proc_entry("registers-b", priv->dir_dev);
+ remove_proc_entry("registers-c", priv->dir_dev);
+ remove_proc_entry("registers-d", priv->dir_dev);
+ remove_proc_entry("registers-e", priv->dir_dev);
+ remove_proc_entry("RF-A", priv->dir_dev);
+ remove_proc_entry("RF-B", priv->dir_dev);
+ remove_proc_entry("RF-C", priv->dir_dev);
+ remove_proc_entry("RF-D", priv->dir_dev);
+ remove_proc_entry("SEC-CAM", priv->dir_dev);
+#ifdef _RTL8192_EXT_PATCH_
+ remove_proc_entry("ra0", rtl8192_proc);
+#else
+ remove_proc_entry("wlan0", rtl8192_proc);
+#endif
+ priv->dir_dev = NULL;
+ }
+}
+
+
+void rtl8192_proc_init_one(struct net_device *dev)
+{
+ struct proc_dir_entry *e;
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ priv->dir_dev = create_proc_entry(dev->name,
+ S_IFDIR | S_IRUGO | S_IXUGO,
+ rtl8192_proc);
+ if (!priv->dir_dev) {
+ RT_TRACE(COMP_ERR, "Unable to initialize /proc/net/rtl8192/%s\n",
+ dev->name);
+ return;
+ }
+ e = create_proc_read_entry("stats-rx", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_stats_rx, dev);
+
+ if (!e) {
+ RT_TRACE(COMP_ERR,"Unable to initialize "
+ "/proc/net/rtl8192/%s/stats-rx\n",
+ dev->name);
+ }
+
+
+ e = create_proc_read_entry("stats-tx", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_stats_tx, dev);
+
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/stats-tx\n",
+ dev->name);
+ }
+
+ e = create_proc_read_entry("stats-ap", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_stats_ap, dev);
+
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/stats-ap\n",
+ dev->name);
+ }
+
+ e = create_proc_read_entry("registers-0", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_0, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-0\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("registers-1", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_1, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-1\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("registers-2", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_2, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-2\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("registers-3", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_3, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-3\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("registers-4", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_4, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-4\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("registers-5", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_5, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-5\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("registers-6", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_6, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-6\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("registers-7", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_7, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-7\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("registers-8", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_8, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-8\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("registers-9", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_9, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-9\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("registers-a", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_a, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-a\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("registers-b", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_b, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-b\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("registers-c", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_c, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-c\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("registers-d", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_d, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-d\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("registers-e", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_registers_e, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/registers-e\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("RF-A", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_reg_rf_a, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/RF-A\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("RF-B", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_reg_rf_b, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/RF-B\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("RF-C", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_reg_rf_c, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/RF-C\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("RF-D", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_reg_rf_d, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/RF-D\n",
+ dev->name);
+ }
+ e = create_proc_read_entry("SEC-CAM", S_IFREG | S_IRUGO,
+ priv->dir_dev, proc_get_cam_register, dev);
+ if (!e) {
+ RT_TRACE(COMP_ERR, "Unable to initialize "
+ "/proc/net/rtl8192/%s/SEC-CAM\n",
+ dev->name);
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if( priv->mshobj && priv->mshobj->ext_patch_create_proc )
+ priv->mshobj->ext_patch_create_proc(priv);
+#endif
+
+}
+
diff --git a/ubuntu/rtl8192se/rtl_debug.h b/ubuntu/rtl8192se/rtl_debug.h
new file mode 100755
index 00000000000..fa50836e7f2
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_debug.h
@@ -0,0 +1,89 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef _RTL_DEBUG_H
+#define _RTL_DEBUG_H
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/version.h>
+#if(LINUX_VERSION_CODE > KERNEL_VERSION(2,6,9))
+#include <linux/debugfs.h>
+#endif
+
+struct r8192_priv;
+struct _tx_desc_8192se;
+struct _TX_DESC_8192CE;
+struct net_device;
+
+typedef struct _rtl_fs_debug
+{
+ const char *name;
+ struct dentry *dir_drv;
+ struct dentry *debug_register;
+ u32 hw_type;
+ u32 hw_offset;
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,20))
+ bool hw_holding;
+#else
+ u8 hw_holding;
+#endif
+} rtl_fs_debug;
+
+void print_buffer(u32 *buffer, int len);
+void dump_eprom(struct net_device *dev);
+void rtl8192_dump_reg(struct net_device *dev);
+
+#ifdef RTL8192SE
+void rtl8192se_dump_tx_desc(struct _tx_desc_8192se *pDesc);
+#endif
+#ifdef RTL8192CE
+void rtl8192ce_dump_tx_desc(struct _TX_DESC_8192CE *pDesc);
+#endif
+
+/* debugfs stuff */
+#ifdef CONFIG_RTLWIFI_DEBUGFS
+int rtl_debug_module_init(struct r8192_priv *priv, const char *name);
+void rtl_debug_module_remove(struct r8192_priv *priv);
+int rtl_create_debugfs_root(void);
+void rtl_remove_debugfs_root(void);
+#else
+static inline int rtl_debug_module_init(struct r8192_priv *priv, const char *name) {
+ return 0;
+}
+static inline void rtl_debug_module_remove(struct r8192_priv *priv) {
+
+}
+static inline int rtl_create_debugfs_root(void) {
+ return 0;
+}
+static inline void rtl_remove_debugfs_root(void) {
+}
+#endif
+
+/* proc stuff */
+void rtl8192_proc_init_one(struct net_device *dev);
+void rtl8192_proc_remove_one(struct net_device *dev);
+void rtl8192_proc_module_init(void);
+void rtl8192_proc_module_remove(void);
+#endif
diff --git a/ubuntu/rtl8192se/rtl_dm.c b/ubuntu/rtl8192se/rtl_dm.c
new file mode 100755
index 00000000000..7d4260463d2
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_dm.c
@@ -0,0 +1,5294 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifdef RTL8192SE
+#include "rtl_core.h"
+#include "rtl_dm.h"
+#include "rtl8192s/r8192S_phy.h"
+#include "rtl8192s/r8192S_phyreg.h"
+#else
+#include "rtl_core.h"
+#include "rtl_dm.h"
+#include "rtl8192e/r8192E_hw.h"
+#include "rtl8192e/r8192E_phy.h"
+#include "rtl8192e/r8192E_phyreg.h"
+#include "rtl8192e/r8190P_rtl8256.h"
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+#include "../../mshclass/msh_class.h"
+#endif
+
+/*---------------------------Define Local Constant---------------------------*/
+#ifdef RTL8190P
+static u32 edca_setting_DL[HT_IOT_PEER_MAX] =
+{ 0x5e4322,
+ 0x5e4322,
+ 0x5ea44f,
+ 0x5e4322,
+ 0x604322,
+ 0xa44f,
+ 0x5e4322,
+ 0x5e4322
+ };
+
+static u32 edca_setting_DL_GMode[HT_IOT_PEER_MAX] =
+{ 0x5e4322,
+ 0x5e4322,
+ 0x5e4322,
+ 0x5e4322,
+ 0x604322,
+ 0xa44f,
+ 0x5e4322,
+ 0x5e4322
+};
+
+static u32 edca_setting_UL[HT_IOT_PEER_MAX] =
+{ 0x5e4322,
+ 0xa44f,
+ 0x5ea44f,
+ 0x5e4322,
+ 0x604322,
+ 0x5e4322,
+ 0x5e4322,
+ 0x5e4322
+};
+
+#elif defined RTL8192E
+static u32 edca_setting_DL[HT_IOT_PEER_MAX] =
+{ 0x5e4322,
+ 0x5e4322,
+ 0x5ea44f,
+ 0x5e4322,
+ 0x604322,
+ 0xa44f,
+ 0x5e4322,
+ 0x5e4332
+ };
+
+static u32 edca_setting_DL_GMode[HT_IOT_PEER_MAX] =
+{ 0x5e4322,
+ 0x5e4322,
+ 0x5e4322,
+ 0x5e4322,
+ 0x604322,
+ 0xa44f,
+ 0x5e4322,
+ 0x5e4322
+};
+
+static u32 edca_setting_UL[HT_IOT_PEER_MAX] =
+{ 0x5e4322,
+ 0xa44f,
+ 0x5ea44f,
+ 0x5e4322,
+ 0x604322,
+ 0x5e4322,
+ 0x5e4322,
+ 0x5e4332
+};
+
+#elif defined(RTL8192SE)
+static u32 edca_setting_DL[HT_IOT_PEER_MAX] =
+{ 0xa44f,
+ 0x5ea44f,
+ 0x5ea44f,
+ 0xa630,
+ 0xa44f,
+ 0xa630,
+ 0xa630,
+ 0xa42b,
+ 0x5e4322,
+ 0x5e4322
+ };
+
+static u32 edca_setting_DL_GMode[HT_IOT_PEER_MAX] =
+
+{ 0x4322,
+ 0xa44f,
+ 0x5ea44f,
+ 0xa42b,
+ 0x5e4322,
+ 0x4322,
+ 0xa430,
+ 0x5ea44f,
+ 0x5e4322,
+ 0x5e4322
+};
+
+static u32 edca_setting_UL[HT_IOT_PEER_MAX] =
+{ 0x5e4322,
+ 0xa44f,
+ 0x5ea44f,
+ 0x5ea322,
+ 0x5ea422,
+ 0x5ea322,
+ 0x3ea44f,
+ 0x5ea44f,
+ 0x5e4322,
+ 0x5e4322
+ };
+#endif
+
+#define RTK_UL_EDCA 0xa44f
+#define RTK_DL_EDCA 0x5e4322
+/*---------------------------Define Local Constant---------------------------*/
+
+
+/*------------------------Define global variable-----------------------------*/
+dig_t dm_digtable;
+u8 dm_shadow[16][256] = {{0}};
+DRxPathSel DM_RxPathSelTable;
+/*------------------------Define global variable-----------------------------*/
+
+
+/*------------------------Define local variable------------------------------*/
+/*------------------------Define local variable------------------------------*/
+
+
+/*--------------------Define export function prototype-----------------------*/
+extern void init_hal_dm(struct net_device *dev);
+extern void deinit_hal_dm(struct net_device *dev);
+
+extern void hal_dm_watchdog(struct net_device *dev);
+
+
+extern void init_rate_adaptive(struct net_device *dev);
+extern void dm_txpower_trackingcallback(void *data);
+
+extern void dm_restore_dynamic_mechanism_state(struct net_device *dev);
+extern void dm_backup_dynamic_mechanism_state(struct net_device *dev);
+extern void dm_change_dynamic_initgain_thresh(struct net_device *dev,
+ u32 dm_type,
+ u32 dm_value);
+extern void DM_ChangeFsyncSetting(struct net_device *dev,
+ s32 DM_Type,
+ s32 DM_Value);
+extern void dm_force_tx_fw_info(struct net_device *dev,
+ u32 force_type,
+ u32 force_value);
+extern void dm_init_edca_turbo(struct net_device *dev);
+extern void dm_rf_operation_test_callback(unsigned long data);
+extern void dm_rf_pathcheck_workitemcallback(void *data);
+extern void dm_fsync_timer_callback(unsigned long data);
+#if 0
+extern bool dm_check_lbus_status(struct net_device *dev);
+#endif
+extern void dm_check_fsync(struct net_device *dev);
+extern void dm_shadow_init(struct net_device *dev);
+extern void dm_initialize_txpower_tracking(struct net_device *dev);
+
+#if (defined RTL8192E || defined RTL8192SE)
+extern void dm_CheckRfCtrlGPIO(void *data);
+#endif
+
+#ifdef RTL8192SE
+extern void DM_TXPowerTracking92SDirectCall(struct net_device *dev);
+static void dm_CtrlInitGainByTwoPort(struct net_device *dev);
+static void dm_CtrlInitGainBeforeConnectByRssiAndFalseAlarm(struct net_device *dev);
+static void dm_initial_gain_STABeforeConnect(struct net_device *dev);
+
+void dm_InitRateAdaptiveMask(struct net_device *dev);
+#if 0
+static void Adhoc_dm_CheckRateAdaptive(struct net_device * dev);
+#endif
+void Adhoc_InitRateAdaptive(struct net_device *dev,struct sta_info *pEntry);
+#endif
+
+/*--------------------Define export function prototype-----------------------*/
+
+
+/*---------------------Define local function prototype-----------------------*/
+static void dm_check_rate_adaptive(struct net_device *dev);
+
+static void dm_init_bandwidth_autoswitch(struct net_device *dev);
+static void dm_bandwidth_autoswitch( struct net_device *dev);
+
+
+static void dm_check_txpower_tracking(struct net_device *dev);
+
+
+
+
+
+#if defined(RTL8192E)||defined(RTL8190P)
+static void dm_bb_initialgain_restore(struct net_device *dev);
+
+
+static void dm_bb_initialgain_backup(struct net_device *dev);
+#endif
+
+static void dm_dig_init(struct net_device *dev);
+static void dm_ctrl_initgain_byrssi(struct net_device *dev);
+static void dm_ctrl_initgain_byrssi_highpwr(struct net_device *dev);
+static void dm_ctrl_initgain_byrssi_by_driverrssi( struct net_device *dev);
+static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm(struct net_device *dev);
+static void dm_initial_gain(struct net_device *dev);
+static void dm_pd_th(struct net_device *dev);
+static void dm_cs_ratio(struct net_device *dev);
+
+static void dm_init_ctstoself(struct net_device *dev);
+static void dm_Init_WA_Broadcom_IOT(struct net_device *dev);
+#ifdef RTL8192SE
+static void dm_WA_Broadcom_IOT(struct net_device *dev);
+#endif
+
+static void dm_check_edca_turbo(struct net_device *dev);
+
+#if 0
+static void dm_check_rfctrl_gpio(struct net_device *dev);
+#endif
+
+#ifndef RTL8190P
+#endif
+static void dm_check_pbc_gpio(struct net_device *dev);
+
+
+static void dm_check_rx_path_selection(struct net_device *dev);
+static void dm_init_rxpath_selection(struct net_device *dev);
+static void dm_rxpath_sel_byrssi(struct net_device *dev);
+
+
+static void dm_init_fsync(struct net_device *dev);
+static void dm_deInit_fsync(struct net_device *dev);
+
+static void dm_check_txrateandretrycount(struct net_device *dev);
+static void dm_check_ac_dc_power(struct net_device *dev);
+
+/*---------------------Define local function prototype-----------------------*/
+
+static void dm_init_dynamic_txpower(struct net_device *dev);
+static void dm_dynamic_txpower(struct net_device *dev);
+
+
+static void dm_send_rssi_tofw(struct net_device *dev);
+static void dm_ctstoself(struct net_device *dev);
+#if defined RTL8192SE
+static void dm_RefreshRateAdaptiveMask(struct net_device *dev);
+#endif
+/*---------------------------Define function prototype------------------------*/
+
+extern void
+init_hal_dm(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ priv->DM_Type = DM_Type_ByDriver;
+
+ priv->undecorated_smoothed_pwdb = -1;
+
+ dm_init_dynamic_txpower(dev);
+
+#ifdef RTL8192SE
+ if (IS_HARDWARE_TYPE_8192SE(dev))
+ dm_InitRateAdaptiveMask(dev);
+ else
+#endif
+ init_rate_adaptive(dev);
+
+ dm_dig_init(dev);
+ dm_init_edca_turbo(dev);
+ dm_init_bandwidth_autoswitch(dev);
+ dm_init_fsync(dev);
+ dm_init_rxpath_selection(dev);
+ dm_init_ctstoself(dev);
+ if (IS_HARDWARE_TYPE_8192SE(dev))
+ dm_Init_WA_Broadcom_IOT(dev);
+
+#if (defined RTL8192E || defined RTL8192SE)
+ INIT_DELAYED_WORK_RSL(&priv->gpio_change_rf_wq, (void *)dm_CheckRfCtrlGPIO,dev);
+#endif
+
+}
+
+extern void deinit_hal_dm(struct net_device *dev)
+{
+
+ dm_deInit_fsync(dev);
+
+}
+
+
+#ifdef USB_RX_AGGREGATION_SUPPORT
+void dm_CheckRxAggregation(struct net_device *dev) {
+ struct r8192_priv *priv = rtllib_priv((struct net_device *)dev);
+ PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo;
+ static unsigned long lastTxOkCnt = 0;
+ static unsigned long lastRxOkCnt = 0;
+ unsigned long curTxOkCnt = 0;
+ unsigned long curRxOkCnt = 0;
+
+ curTxOkCnt = priv->stats.txbytesunicast - lastTxOkCnt;
+ curRxOkCnt = priv->stats.rxbytesunicast - lastRxOkCnt;
+
+ if((curTxOkCnt + curRxOkCnt) < 15000000) {
+ return;
+ }
+
+ if(curTxOkCnt > 4*curRxOkCnt) {
+ if (priv->bCurrentRxAggrEnable) {
+ write_nic_dword(dev, 0x1a8, 0);
+ priv->bCurrentRxAggrEnable = false;
+ }
+ }else{
+ if (!priv->bCurrentRxAggrEnable && !pHTInfo->bCurrentRT2RTAggregation) {
+ u32 ulValue;
+ ulValue = (pHTInfo->UsbRxFwAggrEn<<24) | (pHTInfo->UsbRxFwAggrPageNum<<16) |
+ (pHTInfo->UsbRxFwAggrPacketNum<<8) | (pHTInfo->UsbRxFwAggrTimeout);
+ write_nic_dword(dev, 0x1a8, ulValue);
+ priv->bCurrentRxAggrEnable = true;
+ }
+ }
+
+ lastTxOkCnt = priv->stats.txbytesunicast;
+ lastRxOkCnt = priv->stats.rxbytesunicast;
+}
+#endif
+
+
+
+extern void hal_dm_watchdog(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ if(priv->being_init_adapter)
+ return;
+
+ dm_check_ac_dc_power(dev);
+
+ dm_check_pbc_gpio(dev);
+ dm_check_txrateandretrycount(dev);
+ dm_check_edca_turbo(dev);
+
+ if (IS_HARDWARE_TYPE_8192SE(dev)){
+#ifdef RTL8192SE
+ dm_RefreshRateAdaptiveMask(dev);
+ dm_WA_Broadcom_IOT(dev);
+ return;
+#if 0
+ dm_check_txpower_tracking(dev);
+ dm_ctrl_initgain_byrssi(dev);
+ dm_dynamic_txpower(dev);
+ dm_RefreshRateAdaptiveMask(dev);
+ dm_check_fsync(dev);
+ if(priv->rtllib->iw_mode == IW_MODE_ADHOC)
+ Adhoc_dm_CheckRateAdaptive(dev);
+ else
+ dm_check_rate_adaptive(dev);
+#endif
+#endif
+ }
+ dm_check_rate_adaptive(dev);
+ dm_dynamic_txpower(dev);
+ dm_check_txpower_tracking(dev);
+
+ dm_ctrl_initgain_byrssi(dev);
+ dm_bandwidth_autoswitch(dev);
+
+ dm_check_rx_path_selection(dev);
+ dm_check_fsync(dev);
+
+ dm_send_rssi_tofw(dev);
+ dm_ctstoself(dev);
+
+#ifdef USB_RX_AGGREGATION_SUPPORT
+ dm_CheckRxAggregation(dev);
+#endif
+}
+
+void dm_check_ac_dc_power(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ static char *ac_dc_check_script_path = "/etc/acpi/wireless-rtl-ac-dc-power.sh";
+ char *argv[] = {ac_dc_check_script_path,DRV_NAME,NULL};
+ static char *envp[] = {"HOME=/",
+ "TERM=linux",
+ "PATH=/usr/bin:/bin",
+ NULL};
+
+ if(priv->ResetProgress == RESET_TYPE_SILENT)
+ {
+ RT_TRACE((COMP_INIT | COMP_POWER | COMP_RF), "GPIOChangeRFWorkItemCallBack(): Silent Reseting!!!!!!!\n");
+ return;
+ }
+
+ if(priv->rtllib->state != RTLLIB_LINKED) {
+ return;
+ }
+ call_usermodehelper(ac_dc_check_script_path,argv,envp,1);
+
+ return;
+};
+
+
+extern void init_rate_adaptive(struct net_device * dev)
+{
+
+ struct r8192_priv *priv = rtllib_priv(dev);
+ prate_adaptive pra = (prate_adaptive)&priv->rate_adaptive;
+
+ pra->ratr_state = DM_RATR_STA_MAX;
+ pra->high2low_rssi_thresh_for_ra = RateAdaptiveTH_High;
+ pra->low2high_rssi_thresh_for_ra20M = RateAdaptiveTH_Low_20M+5;
+ pra->low2high_rssi_thresh_for_ra40M = RateAdaptiveTH_Low_40M+5;
+
+ pra->high_rssi_thresh_for_ra = RateAdaptiveTH_High+5;
+ pra->low_rssi_thresh_for_ra20M = RateAdaptiveTH_Low_20M;
+ pra->low_rssi_thresh_for_ra40M = RateAdaptiveTH_Low_40M;
+
+ if(priv->CustomerID == RT_CID_819x_Netcore)
+ pra->ping_rssi_enable = 1;
+ else
+ pra->ping_rssi_enable = 0;
+ pra->ping_rssi_thresh_for_ra = 15;
+
+
+ if (priv->rf_type == RF_2T4R)
+ {
+ pra->upper_rssi_threshold_ratr = 0x8f0f0000;
+ pra->middle_rssi_threshold_ratr = 0x8f0ff000;
+ pra->low_rssi_threshold_ratr = 0x8f0ff001;
+ pra->low_rssi_threshold_ratr_40M = 0x8f0ff005;
+ pra->low_rssi_threshold_ratr_20M = 0x8f0ff001;
+ pra->ping_rssi_ratr = 0x0000000d;
+ }
+ else if (priv->rf_type == RF_1T2R)
+ {
+ pra->upper_rssi_threshold_ratr = 0x000f0000;
+ pra->middle_rssi_threshold_ratr = 0x000ff000;
+ pra->low_rssi_threshold_ratr = 0x000ff001;
+ pra->low_rssi_threshold_ratr_40M = 0x000ff005;
+ pra->low_rssi_threshold_ratr_20M = 0x000ff001;
+ pra->ping_rssi_ratr = 0x0000000d;
+ }
+
+}
+
+
+static void dm_check_rate_adaptive(struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo;
+ prate_adaptive pra = (prate_adaptive)&priv->rate_adaptive;
+ u32 currentRATR, targetRATR = 0;
+ u32 LowRSSIThreshForRA = 0, HighRSSIThreshForRA = 0;
+ bool bshort_gi_enabled = false;
+ static u8 ping_rssi_state=0;
+
+ if(IS_NIC_DOWN(priv)){
+ RT_TRACE(COMP_RATE, "<---- dm_check_rate_adaptive(): driver is going to unload\n");
+ return;
+ }
+
+ if(pra->rate_adaptive_disabled)
+ return;
+
+ if( !(priv->rtllib->mode == WIRELESS_MODE_N_24G ||
+ priv->rtllib->mode == WIRELESS_MODE_N_5G))
+ return;
+
+ if( priv->rtllib->state == RTLLIB_LINKED )
+ {
+
+ bshort_gi_enabled = (pHTInfo->bCurTxBW40MHz && pHTInfo->bCurShortGI40MHz) ||
+ (!pHTInfo->bCurTxBW40MHz && pHTInfo->bCurShortGI20MHz);
+
+
+ pra->upper_rssi_threshold_ratr =
+ (pra->upper_rssi_threshold_ratr & (~BIT31)) | ((bshort_gi_enabled)? BIT31:0) ;
+
+ pra->middle_rssi_threshold_ratr =
+ (pra->middle_rssi_threshold_ratr & (~BIT31)) | ((bshort_gi_enabled)? BIT31:0) ;
+
+ if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)
+ {
+ pra->low_rssi_threshold_ratr =
+ (pra->low_rssi_threshold_ratr_40M & (~BIT31)) | ((bshort_gi_enabled)? BIT31:0) ;
+ }
+ else
+ {
+ pra->low_rssi_threshold_ratr =
+ (pra->low_rssi_threshold_ratr_20M & (~BIT31)) | ((bshort_gi_enabled)? BIT31:0) ;
+ }
+ pra->ping_rssi_ratr =
+ (pra->ping_rssi_ratr & (~BIT31)) | ((bshort_gi_enabled)? BIT31:0) ;
+
+ if (pra->ratr_state == DM_RATR_STA_HIGH)
+ {
+ HighRSSIThreshForRA = pra->high2low_rssi_thresh_for_ra;
+ LowRSSIThreshForRA = (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)?
+ (pra->low_rssi_thresh_for_ra40M):(pra->low_rssi_thresh_for_ra20M);
+ }
+ else if (pra->ratr_state == DM_RATR_STA_LOW)
+ {
+ HighRSSIThreshForRA = pra->high_rssi_thresh_for_ra;
+ LowRSSIThreshForRA = (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)?
+ (pra->low2high_rssi_thresh_for_ra40M):(pra->low2high_rssi_thresh_for_ra20M);
+ }
+ else
+ {
+ HighRSSIThreshForRA = pra->high_rssi_thresh_for_ra;
+ LowRSSIThreshForRA = (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)?
+ (pra->low_rssi_thresh_for_ra40M):(pra->low_rssi_thresh_for_ra20M);
+ }
+
+ if(priv->undecorated_smoothed_pwdb >= (long)HighRSSIThreshForRA)
+ {
+ pra->ratr_state = DM_RATR_STA_HIGH;
+ targetRATR = pra->upper_rssi_threshold_ratr;
+ }else if(priv->undecorated_smoothed_pwdb >= (long)LowRSSIThreshForRA)
+ {
+ pra->ratr_state = DM_RATR_STA_MIDDLE;
+ targetRATR = pra->middle_rssi_threshold_ratr;
+ }else
+ {
+ pra->ratr_state = DM_RATR_STA_LOW;
+ targetRATR = pra->low_rssi_threshold_ratr;
+ }
+
+ if(pra->ping_rssi_enable)
+ {
+ if(priv->undecorated_smoothed_pwdb < (long)(pra->ping_rssi_thresh_for_ra+5))
+ {
+ if( (priv->undecorated_smoothed_pwdb < (long)pra->ping_rssi_thresh_for_ra) ||
+ ping_rssi_state )
+ {
+ pra->ratr_state = DM_RATR_STA_LOW;
+ targetRATR = pra->ping_rssi_ratr;
+ ping_rssi_state = 1;
+ }
+ }
+ else
+ {
+ ping_rssi_state = 0;
+ }
+ }
+
+#if 1
+ if(priv->rtllib->GetHalfNmodeSupportByAPsHandler(dev))
+ targetRATR &= 0xf00fffff;
+#endif
+
+ currentRATR = read_nic_dword(dev, RATR0);
+ if( targetRATR != currentRATR )
+ {
+ u32 ratr_value;
+ ratr_value = targetRATR;
+ RT_TRACE(COMP_RATE,"currentRATR = %x, targetRATR = %x\n", currentRATR, targetRATR);
+ if(priv->rf_type == RF_1T2R)
+ {
+ ratr_value &= ~(RATE_ALL_OFDM_2SS);
+ }
+ write_nic_dword(dev, RATR0, ratr_value);
+ write_nic_byte(dev, UFWP, 1);
+
+ pra->last_ratr = targetRATR;
+ }
+
+ }
+ else
+ {
+ pra->ratr_state = DM_RATR_STA_MAX;
+ }
+
+}
+
+#ifdef RTL8192SE
+void dm_InitRateAdaptiveMask(struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ prate_adaptive pRA = (prate_adaptive)&priv->rate_adaptive;
+
+ pRA->ratr_state = DM_RATR_STA_MAX;
+ pRA->PreRATRState = DM_RATR_STA_MAX;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if (priv->DM_Type == DM_Type_ByDriver && priv->pFirmware->FirmwareVersion >= 60)
+ priv->rtllib->bUseRAMask = true;
+ else
+#endif
+ priv->rtllib->bUseRAMask = false;
+
+ printk("=========>%s: bUseRAMask=%d\n", __func__, priv->rtllib->bUseRAMask);
+ priv->bInformFWDriverControlDM = false;
+
+}
+#endif
+
+static void dm_init_bandwidth_autoswitch(struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ priv->rtllib->bandwidth_auto_switch.threshold_20Mhzto40Mhz = BW_AUTO_SWITCH_LOW_HIGH;
+ priv->rtllib->bandwidth_auto_switch.threshold_40Mhzto20Mhz = BW_AUTO_SWITCH_HIGH_LOW;
+ priv->rtllib->bandwidth_auto_switch.bforced_tx20Mhz = false;
+ priv->rtllib->bandwidth_auto_switch.bautoswitch_enable = false;
+
+}
+
+
+static void dm_bandwidth_autoswitch(struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20 ||!priv->rtllib->bandwidth_auto_switch.bautoswitch_enable){
+ return;
+ }else{
+ if(priv->rtllib->bandwidth_auto_switch.bforced_tx20Mhz == false){
+ if(priv->undecorated_smoothed_pwdb <= priv->rtllib->bandwidth_auto_switch.threshold_40Mhzto20Mhz)
+ priv->rtllib->bandwidth_auto_switch.bforced_tx20Mhz = true;
+ }else{
+ if(priv->undecorated_smoothed_pwdb >= priv->rtllib->bandwidth_auto_switch.threshold_20Mhzto40Mhz)
+ priv->rtllib->bandwidth_auto_switch.bforced_tx20Mhz = false;
+
+ }
+ }
+}
+
+#ifdef Rtl8192SE
+u32 OFDMSwingTable[OFDM_Table_Length] = {
+ 0x7f8001fe,
+ 0x788001e2,
+ 0x71c001c7,
+ 0x6b8001ae,
+ 0x65400195,
+ 0x5fc0017f,
+ 0x5a400169,
+ 0x55400155,
+ 0x50800142,
+ 0x4c000130,
+ 0x47c0011f,
+ 0x43c0010f,
+ 0x40000100,
+ 0x3c8000f2,
+ 0x390000e4,
+ 0x35c000d7,
+ 0x32c000cb,
+ 0x300000c0,
+ 0x2d4000b5,
+ 0x2ac000ab,
+ 0x288000a2,
+ 0x26000098,
+ 0x24000090,
+ 0x22000088,
+ 0x20000080,
+ 0x1e400079,
+ 0x1c800072,
+ 0x1b00006c,
+ 0x19800066,
+ 0x18000060,
+ 0x16c0005b,
+ 0x15800056,
+ 0x14400051,
+ 0x1300004c,
+ 0x12000048,
+ 0x11000044,
+ 0x10000040,
+};
+
+u8 CCKSwingTable_Ch1_Ch13[CCK_Table_length][8] = {
+ {0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04},
+ {0x33, 0x32, 0x2b, 0x23, 0x1a, 0x11, 0x08, 0x04},
+ {0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x03},
+ {0x2d, 0x2d, 0x27, 0x1f, 0x18, 0x0f, 0x08, 0x03},
+ {0x2b, 0x2a, 0x25, 0x1e, 0x16, 0x0e, 0x07, 0x03},
+ {0x28, 0x28, 0x22, 0x1c, 0x15, 0x0d, 0x07, 0x03},
+ {0x26, 0x25, 0x21, 0x1b, 0x14, 0x0d, 0x06, 0x03},
+ {0x24, 0x23, 0x1f, 0x19, 0x13, 0x0c, 0x06, 0x03},
+ {0x22, 0x21, 0x1d, 0x18, 0x11, 0x0b, 0x06, 0x02},
+ {0x20, 0x20, 0x1b, 0x16, 0x11, 0x08, 0x05, 0x02},
+ {0x1f, 0x1e, 0x1a, 0x15, 0x10, 0x0a, 0x05, 0x02},
+ {0x1d, 0x1c, 0x18, 0x14, 0x0f, 0x0a, 0x05, 0x02},
+ {0x1b, 0x1a, 0x17, 0x13, 0x0e, 0x09, 0x04, 0x02},
+ {0x1a, 0x19, 0x16, 0x12, 0x0d, 0x09, 0x04, 0x02},
+ {0x18, 0x17, 0x15, 0x11, 0x0c, 0x08, 0x04, 0x02},
+ {0x17, 0x16, 0x13, 0x10, 0x0c, 0x08, 0x04, 0x02},
+ {0x16, 0x15, 0x12, 0x0f, 0x0b, 0x07, 0x04, 0x01},
+ {0x14, 0x14, 0x11, 0x0e, 0x0b, 0x07, 0x03, 0x02},
+ {0x13, 0x13, 0x10, 0x0d, 0x0a, 0x06, 0x03, 0x01},
+ {0x12, 0x12, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01},
+ {0x11, 0x11, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01},
+ {0x10, 0x10, 0x0e, 0x0b, 0x08, 0x05, 0x03, 0x01},
+ {0x0f, 0x0f, 0x0d, 0x0b, 0x08, 0x05, 0x03, 0x01},
+ {0x0e, 0x0e, 0x0c, 0x0a, 0x08, 0x05, 0x02, 0x01},
+ {0x0d, 0x0d, 0x0c, 0x0a, 0x07, 0x05, 0x02, 0x01},
+ {0x0d, 0x0c, 0x0b, 0x09, 0x07, 0x04, 0x02, 0x01},
+ {0x0c, 0x0c, 0x0a, 0x09, 0x06, 0x04, 0x02, 0x01},
+ {0x0b, 0x0b, 0x0a, 0x08, 0x06, 0x04, 0x02, 0x01},
+ {0x0b, 0x0a, 0x09, 0x08, 0x06, 0x04, 0x02, 0x01},
+ {0x0a, 0x0a, 0x09, 0x07, 0x05, 0x03, 0x02, 0x01},
+ {0x0a, 0x09, 0x08, 0x07, 0x05, 0x03, 0x02, 0x01},
+ {0x09, 0x09, 0x08, 0x06, 0x05, 0x03, 0x01, 0x01},
+ {0x09, 0x08, 0x07, 0x06, 0x04, 0x03, 0x01, 0x01}
+};
+
+
+u8 CCKSwingTable_Ch14[CCK_Table_length][8] = {
+ {0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00},
+ {0x33, 0x32, 0x2b, 0x19, 0x00, 0x00, 0x00, 0x00},
+ {0x30, 0x2f, 0x29, 0x18, 0x00, 0x00, 0x00, 0x00},
+ {0x2d, 0x2d, 0x17, 0x17, 0x00, 0x00, 0x00, 0x00},
+ {0x2b, 0x2a, 0x25, 0x15, 0x00, 0x00, 0x00, 0x00},
+ {0x28, 0x28, 0x24, 0x14, 0x00, 0x00, 0x00, 0x00},
+ {0x26, 0x25, 0x21, 0x13, 0x00, 0x00, 0x00, 0x00},
+ {0x24, 0x23, 0x1f, 0x12, 0x00, 0x00, 0x00, 0x00},
+ {0x22, 0x21, 0x1d, 0x11, 0x00, 0x00, 0x00, 0x00},
+ {0x20, 0x20, 0x1b, 0x10, 0x00, 0x00, 0x00, 0x00},
+ {0x1f, 0x1e, 0x1a, 0x0f, 0x00, 0x00, 0x00, 0x00},
+ {0x1d, 0x1c, 0x18, 0x0e, 0x00, 0x00, 0x00, 0x00},
+ {0x1b, 0x1a, 0x17, 0x0e, 0x00, 0x00, 0x00, 0x00},
+ {0x1a, 0x19, 0x16, 0x0d, 0x00, 0x00, 0x00, 0x00},
+ {0x18, 0x17, 0x15, 0x0c, 0x00, 0x00, 0x00, 0x00},
+ {0x17, 0x16, 0x13, 0x0b, 0x00, 0x00, 0x00, 0x00},
+ {0x16, 0x15, 0x12, 0x0b, 0x00, 0x00, 0x00, 0x00},
+ {0x14, 0x14, 0x11, 0x0a, 0x00, 0x00, 0x00, 0x00},
+ {0x13, 0x13, 0x10, 0x0a, 0x00, 0x00, 0x00, 0x00},
+ {0x12, 0x12, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00},
+ {0x11, 0x11, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00},
+ {0x10, 0x10, 0x0e, 0x08, 0x00, 0x00, 0x00, 0x00},
+ {0x0f, 0x0f, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00},
+ {0x0e, 0x0e, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00},
+ {0x0d, 0x0d, 0x0c, 0x07, 0x00, 0x00, 0x00, 0x00},
+ {0x0d, 0x0c, 0x0b, 0x06, 0x00, 0x00, 0x00, 0x00},
+ {0x0c, 0x0c, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00},
+ {0x0b, 0x0b, 0x0a, 0x06, 0x00, 0x00, 0x00, 0x00},
+ {0x0b, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00},
+ {0x0a, 0x0a, 0x09, 0x05, 0x00, 0x00, 0x00, 0x00},
+ {0x0a, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00},
+ {0x09, 0x09, 0x08, 0x05, 0x00, 0x00, 0x00, 0x00},
+ {0x09, 0x08, 0x07, 0x04, 0x00, 0x00, 0x00, 0x00}
+};
+#elif defined RTL8192E
+static u32 OFDMSwingTable[OFDM_Table_Length] = {
+ 0x7f8001fe,
+ 0x71c001c7,
+ 0x65400195,
+ 0x5a400169,
+ 0x50800142,
+ 0x47c0011f,
+ 0x40000100,
+ 0x390000e4,
+ 0x32c000cb,
+ 0x2d4000b5,
+ 0x288000a2,
+ 0x24000090,
+ 0x20000080,
+ 0x1c800072,
+ 0x19800066,
+ 0x26c0005b,
+ 0x24400051,
+ 0x12000048,
+ 0x10000040
+};
+static u8 CCKSwingTable_Ch1_Ch13[CCK_Table_length][8] = {
+ {0x36, 0x35, 0x2e, 0x25, 0x1c, 0x12, 0x09, 0x04},
+ {0x30, 0x2f, 0x29, 0x21, 0x19, 0x10, 0x08, 0x03},
+ {0x2b, 0x2a, 0x25, 0x1e, 0x16, 0x0e, 0x07, 0x03},
+ {0x26, 0x25, 0x21, 0x1b, 0x14, 0x0d, 0x06, 0x03},
+ {0x22, 0x21, 0x1d, 0x18, 0x11, 0x0b, 0x06, 0x02},
+ {0x1f, 0x1e, 0x1a, 0x15, 0x10, 0x0a, 0x05, 0x02},
+ {0x1b, 0x1a, 0x17, 0x13, 0x0e, 0x09, 0x04, 0x02},
+ {0x18, 0x17, 0x15, 0x11, 0x0c, 0x08, 0x04, 0x02},
+ {0x16, 0x15, 0x12, 0x0f, 0x0b, 0x07, 0x04, 0x01},
+ {0x13, 0x13, 0x10, 0x0d, 0x0a, 0x06, 0x03, 0x01},
+ {0x11, 0x11, 0x0f, 0x0c, 0x09, 0x06, 0x03, 0x01},
+ {0x0f, 0x0f, 0x0d, 0x0b, 0x08, 0x05, 0x03, 0x01}
+};
+
+static u8 CCKSwingTable_Ch14[CCK_Table_length][8] = {
+ {0x36, 0x35, 0x2e, 0x1b, 0x00, 0x00, 0x00, 0x00},
+ {0x30, 0x2f, 0x29, 0x18, 0x00, 0x00, 0x00, 0x00},
+ {0x2b, 0x2a, 0x25, 0x15, 0x00, 0x00, 0x00, 0x00},
+ {0x26, 0x25, 0x21, 0x13, 0x00, 0x00, 0x00, 0x00},
+ {0x22, 0x21, 0x1d, 0x11, 0x00, 0x00, 0x00, 0x00},
+ {0x1f, 0x1e, 0x1a, 0x0f, 0x00, 0x00, 0x00, 0x00},
+ {0x1b, 0x1a, 0x17, 0x0e, 0x00, 0x00, 0x00, 0x00},
+ {0x18, 0x17, 0x15, 0x0c, 0x00, 0x00, 0x00, 0x00},
+ {0x16, 0x15, 0x12, 0x0b, 0x00, 0x00, 0x00, 0x00},
+ {0x13, 0x13, 0x10, 0x0a, 0x00, 0x00, 0x00, 0x00},
+ {0x11, 0x11, 0x0f, 0x09, 0x00, 0x00, 0x00, 0x00},
+ {0x0f, 0x0f, 0x0d, 0x08, 0x00, 0x00, 0x00, 0x00}
+};
+#endif
+#define Pw_Track_Flag 0x11d
+#define Tssi_Mea_Value 0x13c
+#define Tssi_Report_Value1 0x134
+#define Tssi_Report_Value2 0x13e
+#define FW_Busy_Flag 0x13f
+
+#ifndef RTL8192SE
+static void dm_TXPowerTrackingCallback_TSSI(struct net_device * dev)
+ {
+ struct r8192_priv *priv = rtllib_priv(dev);
+ bool bHighpowerstate, viviflag = false;
+ DCMD_TXCMD_T tx_cmd;
+ u8 powerlevelOFDM24G;
+ int i =0, j = 0, k = 0;
+ u8 RF_Type, tmp_report[5]={0, 0, 0, 0, 0};
+ u32 Value;
+ u8 Pwr_Flag;
+ u16 Avg_TSSI_Meas, TSSI_13dBm, Avg_TSSI_Meas_from_driver=0;
+#ifdef RTL8192U
+ RT_STATUS rtStatus = RT_STATUS_SUCCESS;
+#endif
+ u32 delta=0;
+ RT_TRACE(COMP_POWER_TRACKING,"%s()\n",__FUNCTION__);
+ write_nic_byte(dev, Pw_Track_Flag, 0);
+ write_nic_byte(dev, FW_Busy_Flag, 0);
+ priv->rtllib->bdynamic_txpower_enable = false;
+ bHighpowerstate = priv->bDynamicTxHighPower;
+
+ powerlevelOFDM24G = (u8)(priv->Pwr_Track>>24);
+ RF_Type = priv->rf_type;
+ Value = (RF_Type<<8) | powerlevelOFDM24G;
+
+ RT_TRACE(COMP_POWER_TRACKING, "powerlevelOFDM24G = %x\n", powerlevelOFDM24G);
+
+
+#ifdef RTL8190P
+ for(j = 0; j<1; j++)
+#else
+ for(j = 0; j<=30; j++)
+#endif
+{
+
+ tx_cmd.Op = TXCMD_SET_TX_PWR_TRACKING;
+ tx_cmd.Length = 4;
+ tx_cmd.Value = Value;
+#ifdef RTL8192U
+ rtStatus = SendTxCommandPacket(dev, &tx_cmd, 12);
+ if (rtStatus == RT_STATUS_FAILURE)
+ {
+ RT_TRACE(COMP_POWER_TRACKING, "Set configuration with tx cmd queue fail!\n");
+ }
+#else
+ cmpk_message_handle_tx(dev, (u8*)&tx_cmd, DESC_PACKET_TYPE_INIT, sizeof(DCMD_TXCMD_T));
+#endif
+ mdelay(1);
+ for(i = 0;i <= 30; i++)
+ {
+ Pwr_Flag = read_nic_byte(dev, Pw_Track_Flag);
+
+ if (Pwr_Flag == 0)
+ {
+ mdelay(1);
+
+ if(priv->bResetInProgress)
+ {
+ RT_TRACE(COMP_POWER_TRACKING, "we are in slient reset progress, so return\n");
+ write_nic_byte(dev, Pw_Track_Flag, 0);
+ write_nic_byte(dev, FW_Busy_Flag, 0);
+ return;
+ }
+#ifdef RTL8192E
+ if((priv->rtllib->eRFPowerState != eRfOn))
+ {
+ RT_TRACE(COMP_POWER_TRACKING, "we are in power save, so return\n");
+ write_nic_byte(dev, Pw_Track_Flag, 0);
+ write_nic_byte(dev, FW_Busy_Flag, 0);
+ return;
+ }
+
+#endif
+ continue;
+ }
+
+ Avg_TSSI_Meas = read_nic_word(dev, Tssi_Mea_Value);
+
+ if(Avg_TSSI_Meas == 0)
+ {
+ write_nic_byte(dev, Pw_Track_Flag, 0);
+ write_nic_byte(dev, FW_Busy_Flag, 0);
+ return;
+ }
+
+ for(k = 0;k < 5; k++)
+ {
+ if(k !=4)
+ tmp_report[k] = read_nic_byte(dev, Tssi_Report_Value1+k);
+ else
+ tmp_report[k] = read_nic_byte(dev, Tssi_Report_Value2);
+
+ RT_TRACE(COMP_POWER_TRACKING, "TSSI_report_value = %d\n", tmp_report[k]);
+
+ {
+ if(tmp_report[k] <= 20)
+ {
+ viviflag =true;
+ break;
+ }
+ }
+ }
+
+ if(viviflag ==true)
+ {
+ write_nic_byte(dev, Pw_Track_Flag, 0);
+ viviflag = false;
+ RT_TRACE(COMP_POWER_TRACKING, "we filted this data\n");
+ for(k = 0;k < 5; k++)
+ tmp_report[k] = 0;
+ break;
+ }
+
+ for(k = 0;k < 5; k++)
+ {
+ Avg_TSSI_Meas_from_driver += tmp_report[k];
+ }
+
+ Avg_TSSI_Meas_from_driver = Avg_TSSI_Meas_from_driver*100/5;
+ RT_TRACE(COMP_POWER_TRACKING, "Avg_TSSI_Meas_from_driver = %d\n", Avg_TSSI_Meas_from_driver);
+ TSSI_13dBm = priv->TSSI_13dBm;
+ RT_TRACE(COMP_POWER_TRACKING, "TSSI_13dBm = %d\n", TSSI_13dBm);
+
+ if(Avg_TSSI_Meas_from_driver > TSSI_13dBm)
+ delta = Avg_TSSI_Meas_from_driver - TSSI_13dBm;
+ else
+ delta = TSSI_13dBm - Avg_TSSI_Meas_from_driver;
+
+ if(delta <= E_FOR_TX_POWER_TRACK)
+ {
+ priv->rtllib->bdynamic_txpower_enable = true;
+ write_nic_byte(dev, Pw_Track_Flag, 0);
+ write_nic_byte(dev, FW_Busy_Flag, 0);
+ RT_TRACE(COMP_POWER_TRACKING, "tx power track is done\n");
+ RT_TRACE(COMP_POWER_TRACKING, "priv->rfa_txpowertrackingindex = %d\n", priv->rfa_txpowertrackingindex);
+ RT_TRACE(COMP_POWER_TRACKING, "priv->rfa_txpowertrackingindex_real = %d\n", priv->rfa_txpowertrackingindex_real);
+#ifdef RTL8190P
+ RT_TRACE(COMP_POWER_TRACKING, "priv->rfc_txpowertrackingindex = %d\n", priv->rfc_txpowertrackingindex);
+ RT_TRACE(COMP_POWER_TRACKING, "priv->rfc_txpowertrackingindex_real = %d\n", priv->rfc_txpowertrackingindex_real);
+#endif
+ RT_TRACE(COMP_POWER_TRACKING, "priv->CCKPresentAttentuation_difference = %d\n", priv->CCKPresentAttentuation_difference);
+ RT_TRACE(COMP_POWER_TRACKING, "priv->CCKPresentAttentuation = %d\n", priv->CCKPresentAttentuation);
+ return;
+ }
+ else
+ {
+ if(Avg_TSSI_Meas_from_driver < TSSI_13dBm - E_FOR_TX_POWER_TRACK)
+ {
+ if (RF_Type == RF_2T4R)
+ {
+
+ if((priv->rfa_txpowertrackingindex > 0) &&(priv->rfc_txpowertrackingindex > 0))
+ {
+ priv->rfa_txpowertrackingindex--;
+ if(priv->rfa_txpowertrackingindex_real > 4)
+ {
+ priv->rfa_txpowertrackingindex_real--;
+ rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value);
+ }
+
+ priv->rfc_txpowertrackingindex--;
+ if(priv->rfc_txpowertrackingindex_real > 4)
+ {
+ priv->rfc_txpowertrackingindex_real--;
+ rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value);
+ }
+ }
+ else
+ {
+ rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[4].txbbgain_value);
+ rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[4].txbbgain_value);
+ }
+ }
+ else
+ {
+ {
+#ifdef RTL8190P
+ {
+ if(priv->rfc_txpowertrackingindex > 0)
+ {
+ priv->rfc_txpowertrackingindex--;
+ if(priv->rfc_txpowertrackingindex_real > 4)
+ {
+ priv->rfc_txpowertrackingindex_real--;
+ rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value);
+ }
+ }
+ else
+ rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[4].txbbgain_value);
+ }
+#endif
+#ifdef RTL8192E
+ {
+ if(priv->rfa_txpowertrackingindex > 0)
+ {
+ priv->rfa_txpowertrackingindex--;
+ if(priv->rfa_txpowertrackingindex_real > 4)
+ {
+ priv->rfa_txpowertrackingindex_real--;
+ rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value);
+ }
+ }
+ else
+ rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[4].txbbgain_value);
+ }
+#endif
+ }
+
+ }
+ }
+ else
+ {
+ if (RF_Type == RF_2T4R)
+ {
+ if((priv->rfa_txpowertrackingindex < TxBBGainTableLength - 1) &&(priv->rfc_txpowertrackingindex < TxBBGainTableLength - 1))
+ {
+ priv->rfa_txpowertrackingindex++;
+ priv->rfa_txpowertrackingindex_real++;
+ rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value);
+ priv->rfc_txpowertrackingindex++;
+ priv->rfc_txpowertrackingindex_real++;
+ rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value);
+ }
+ else
+ {
+ rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value);
+ rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value);
+ }
+ }
+ else
+ {
+ {
+#ifdef RTL8190P
+ {
+ if(priv->rfc_txpowertrackingindex < (TxBBGainTableLength - 1))
+ {
+ priv->rfc_txpowertrackingindex++;
+ priv->rfc_txpowertrackingindex_real++;
+ rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex_real].txbbgain_value);
+ }
+ else
+ rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value);
+ }
+#endif
+#ifdef RTL8192E
+ {
+ if(priv->rfa_txpowertrackingindex < (TxBBGainTableLength - 1))
+ {
+ priv->rfa_txpowertrackingindex++;
+ priv->rfa_txpowertrackingindex_real++;
+ rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfa_txpowertrackingindex_real].txbbgain_value);
+ }
+ else
+ rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[TxBBGainTableLength - 1].txbbgain_value);
+ }
+#endif
+ }
+ }
+ }
+ if (RF_Type == RF_2T4R){
+ priv->CCKPresentAttentuation_difference
+ = priv->rfa_txpowertrackingindex - priv->rfa_txpowertracking_default;
+ }else{
+ {
+#ifdef RTL8190P
+ priv->CCKPresentAttentuation_difference
+ = priv->rfc_txpowertrackingindex - priv->rfc_txpowertracking_default;
+#endif
+#ifdef RTL8192E
+ priv->CCKPresentAttentuation_difference
+ = priv->rfa_txpowertrackingindex_real - priv->rfa_txpowertracking_default;
+#endif
+ }
+ }
+
+ if(priv->CurrentChannelBW == HT_CHANNEL_WIDTH_20)
+ priv->CCKPresentAttentuation
+ = priv->CCKPresentAttentuation_20Mdefault + priv->CCKPresentAttentuation_difference;
+ else
+ priv->CCKPresentAttentuation
+ = priv->CCKPresentAttentuation_40Mdefault + priv->CCKPresentAttentuation_difference;
+
+ if(priv->CCKPresentAttentuation > (CCKTxBBGainTableLength-1))
+ priv->CCKPresentAttentuation = CCKTxBBGainTableLength-1;
+ if(priv->CCKPresentAttentuation < 0)
+ priv->CCKPresentAttentuation = 0;
+
+ if(priv->CCKPresentAttentuation > -1&&priv->CCKPresentAttentuation < CCKTxBBGainTableLength)
+ {
+ if(priv->rtllib->current_network.channel == 14 && !priv->bcck_in_ch14)
+ {
+ priv->bcck_in_ch14 = true;
+ dm_cck_txpower_adjust(dev,priv->bcck_in_ch14);
+ }
+ else if(priv->rtllib->current_network.channel != 14 && priv->bcck_in_ch14)
+ {
+ priv->bcck_in_ch14 = false;
+ dm_cck_txpower_adjust(dev,priv->bcck_in_ch14);
+ }
+ else
+ dm_cck_txpower_adjust(dev,priv->bcck_in_ch14);
+ }
+ RT_TRACE(COMP_POWER_TRACKING, "priv->rfa_txpowertrackingindex = %d\n", priv->rfa_txpowertrackingindex);
+ RT_TRACE(COMP_POWER_TRACKING, "priv->rfa_txpowertrackingindex_real = %d\n", priv->rfa_txpowertrackingindex_real);
+#ifdef RTL8190P
+ RT_TRACE(COMP_POWER_TRACKING, "priv->rfc_txpowertrackingindex = %d\n", priv->rfc_txpowertrackingindex);
+ RT_TRACE(COMP_POWER_TRACKING, "priv->rfc_txpowertrackingindex_real = %d\n", priv->rfc_txpowertrackingindex_real);
+#endif
+ RT_TRACE(COMP_POWER_TRACKING, "priv->CCKPresentAttentuation_difference = %d\n", priv->CCKPresentAttentuation_difference);
+ RT_TRACE(COMP_POWER_TRACKING, "priv->CCKPresentAttentuation = %d\n", priv->CCKPresentAttentuation);
+
+ if (priv->CCKPresentAttentuation_difference <= -12||priv->CCKPresentAttentuation_difference >= 24)
+ {
+ priv->rtllib->bdynamic_txpower_enable = true;
+ write_nic_byte(dev, Pw_Track_Flag, 0);
+ write_nic_byte(dev, FW_Busy_Flag, 0);
+ RT_TRACE(COMP_POWER_TRACKING, "tx power track--->limited\n");
+ return;
+ }
+
+
+ }
+ write_nic_byte(dev, Pw_Track_Flag, 0);
+ Avg_TSSI_Meas_from_driver = 0;
+ for(k = 0;k < 5; k++)
+ tmp_report[k] = 0;
+ break;
+ }
+ write_nic_byte(dev, FW_Busy_Flag, 0);
+}
+ priv->rtllib->bdynamic_txpower_enable = true;
+ write_nic_byte(dev, Pw_Track_Flag, 0);
+}
+#endif
+
+#ifdef RTL8192E
+static void dm_TXPowerTrackingCallback_ThermalMeter(struct net_device * dev)
+{
+#define ThermalMeterVal 9
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 tmpRegA, TempCCk;
+ u8 tmpOFDMindex, tmpCCKindex, tmpCCK20Mindex, tmpCCK40Mindex, tmpval;
+ int i =0, CCKSwingNeedUpdate=0;
+
+ if(!priv->btxpower_trackingInit)
+ {
+ tmpRegA= rtl8192_QueryBBReg(dev, rOFDM0_XATxIQImbalance, bMaskDWord);
+ for(i=0; i<OFDM_Table_Length; i++)
+ {
+ if(tmpRegA == OFDMSwingTable[i])
+ {
+ priv->OFDM_index= (u8)i;
+ RT_TRACE(COMP_POWER_TRACKING, "Initial reg0x%x = 0x%x, OFDM_index=0x%x\n",
+ rOFDM0_XATxIQImbalance, tmpRegA, priv->OFDM_index);
+ }
+ }
+
+ TempCCk = rtl8192_QueryBBReg(dev, rCCK0_TxFilter1, bMaskByte2);
+ for(i=0 ; i<CCK_Table_length ; i++)
+ {
+ if(TempCCk == (u32)CCKSwingTable_Ch1_Ch13[i][0])
+ {
+ priv->CCK_index =(u8) i;
+ RT_TRACE(COMP_POWER_TRACKING, "Initial reg0x%x = 0x%x, CCK_index=0x%x\n",
+ rCCK0_TxFilter1, TempCCk, priv->CCK_index);
+ break;
+ }
+}
+ priv->btxpower_trackingInit = true;
+ return;
+ }
+
+#if 0
+{
+ UINT32 curr_addr;
+ UINT32 reg_value;
+
+ for (curr_addr = 0; curr_addr < 0x2d; curr_addr++)
+ {
+ reg_value = PHY_QueryRFReg( dev, (RF90_RADIO_PATH_E)RF90_PATH_A,
+ curr_addr, bMaskDWord);
+ }
+
+ pHalData->TXPowercount = 0;
+ return;
+}
+#endif
+
+ tmpRegA = rtl8192_phy_QueryRFReg(dev, RF90_PATH_A, 0x12, 0x078);
+ RT_TRACE(COMP_POWER_TRACKING, "Readback ThermalMeterA = %d \n", tmpRegA);
+ if(tmpRegA < 3 || tmpRegA > 13)
+ return;
+ if(tmpRegA >= 12)
+ tmpRegA = 12;
+ RT_TRACE(COMP_POWER_TRACKING, "Valid ThermalMeterA = %d \n", tmpRegA);
+ priv->ThermalMeter[0] = ThermalMeterVal;
+ priv->ThermalMeter[1] = ThermalMeterVal;
+
+ if(priv->ThermalMeter[0] >= (u8)tmpRegA)
+ {
+ tmpOFDMindex = tmpCCK20Mindex = 6+(priv->ThermalMeter[0]-(u8)tmpRegA);
+ tmpCCK40Mindex = tmpCCK20Mindex - 6;
+ if(tmpOFDMindex >= OFDM_Table_Length)
+ tmpOFDMindex = OFDM_Table_Length-1;
+ if(tmpCCK20Mindex >= CCK_Table_length)
+ tmpCCK20Mindex = CCK_Table_length-1;
+ if(tmpCCK40Mindex >= CCK_Table_length)
+ tmpCCK40Mindex = CCK_Table_length-1;
+ }
+ else
+ {
+ tmpval = ((u8)tmpRegA - priv->ThermalMeter[0]);
+ if(tmpval >= 6)
+ tmpOFDMindex = tmpCCK20Mindex = 0;
+ else
+ tmpOFDMindex = tmpCCK20Mindex = 6 - tmpval;
+ tmpCCK40Mindex = 0;
+ }
+ if(priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)
+ tmpCCKindex = tmpCCK40Mindex;
+ else
+ tmpCCKindex = tmpCCK20Mindex;
+
+ priv->Record_CCK_20Mindex = tmpCCK20Mindex;
+ priv->Record_CCK_40Mindex = tmpCCK40Mindex;
+ RT_TRACE(COMP_POWER_TRACKING, "Record_CCK_20Mindex / Record_CCK_40Mindex = %d / %d.\n",
+ priv->Record_CCK_20Mindex, priv->Record_CCK_40Mindex);
+
+ if(priv->rtllib->current_network.channel == 14 && !priv->bcck_in_ch14)
+ {
+ priv->bcck_in_ch14 = true;
+ CCKSwingNeedUpdate = 1;
+ }
+ else if(priv->rtllib->current_network.channel != 14 && priv->bcck_in_ch14)
+ {
+ priv->bcck_in_ch14 = false;
+ CCKSwingNeedUpdate = 1;
+ }
+
+ if(priv->CCK_index != tmpCCKindex)
+{
+ priv->CCK_index = tmpCCKindex;
+ CCKSwingNeedUpdate = 1;
+ }
+
+ if(CCKSwingNeedUpdate)
+ {
+ dm_cck_txpower_adjust(dev, priv->bcck_in_ch14);
+ }
+ if(priv->OFDM_index != tmpOFDMindex)
+ {
+ priv->OFDM_index = tmpOFDMindex;
+ rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, OFDMSwingTable[priv->OFDM_index]);
+ RT_TRACE(COMP_POWER_TRACKING, "Update OFDMSwing[%d] = 0x%x\n",
+ priv->OFDM_index, OFDMSwingTable[priv->OFDM_index]);
+ }
+ priv->txpower_count = 0;
+}
+#elif defined (RTL8192SE)
+static void dm_TXPowerTrackingCallback_ThermalMeter(struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 ThermalValue=0;
+ u32 FwCmdVal=0;
+
+ priv->btxpower_trackingInit = true;
+
+
+ ThermalValue = (u8)rtl8192_phy_QueryRFReg(dev, RF90_PATH_A, RF_T_METER, 0x1f);
+ RT_TRACE(COMP_POWER_TRACKING, "Readback Thermal Meter = 0x%x\n", ThermalValue);
+ printk("%s()Readback Thermal Meter = 0x%x\n", __func__,ThermalValue);
+ if(ThermalValue)
+ {
+ priv->ThermalValue = ThermalValue;
+ if(priv->pFirmware->FirmwareVersion >= 0x35)
+ {
+ priv->rtllib->SetFwCmdHandler(dev, FW_CMD_TXPWR_TRACK_THERMAL);
+ }
+ else
+ {
+ FwCmdVal = (FW_TXPWR_TRACK_THERMAL|
+ (priv->ThermalMeter[0]<<8)|(ThermalValue<<16));
+ RT_TRACE(COMP_POWER_TRACKING, "Write to FW Thermal Val = 0x%x\n", FwCmdVal);
+ write_nic_dword(dev, WFM5, FwCmdVal);
+ ChkFwCmdIoDone(dev);
+ }
+ }
+
+ priv->txpower_count = 0;
+}
+#endif
+
+void dm_txpower_trackingcallback(void *data)
+{
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20))
+ struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,txpower_tracking_wq);
+ struct net_device *dev = priv->rtllib->dev;
+#else
+ struct net_device *dev = (struct net_device *)data;
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+
+#ifdef RTL8190P
+ dm_TXPowerTrackingCallback_TSSI(dev);
+#elif defined(RTL8192E)
+ if(priv->IC_Cut >= IC_VersionCut_D)
+ dm_TXPowerTrackingCallback_TSSI(dev);
+ else
+ dm_TXPowerTrackingCallback_ThermalMeter(dev);
+#elif defined(RTL8192SE)
+ dm_TXPowerTrackingCallback_ThermalMeter(dev);
+#endif
+}
+
+#ifndef RTL8192SE
+static void dm_InitializeTXPowerTracking_TSSI(struct net_device *dev)
+{
+
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ priv->txbbgain_table[0].txbb_iq_amplifygain = 12;
+ priv->txbbgain_table[0].txbbgain_value=0x7f8001fe;
+ priv->txbbgain_table[1].txbb_iq_amplifygain = 11;
+ priv->txbbgain_table[1].txbbgain_value=0x788001e2;
+ priv->txbbgain_table[2].txbb_iq_amplifygain = 10;
+ priv->txbbgain_table[2].txbbgain_value=0x71c001c7;
+ priv->txbbgain_table[3].txbb_iq_amplifygain = 9;
+ priv->txbbgain_table[3].txbbgain_value=0x6b8001ae;
+ priv->txbbgain_table[4].txbb_iq_amplifygain = 8;
+ priv->txbbgain_table[4].txbbgain_value=0x65400195;
+ priv->txbbgain_table[5].txbb_iq_amplifygain = 7;
+ priv->txbbgain_table[5].txbbgain_value=0x5fc0017f;
+ priv->txbbgain_table[6].txbb_iq_amplifygain = 6;
+ priv->txbbgain_table[6].txbbgain_value=0x5a400169;
+ priv->txbbgain_table[7].txbb_iq_amplifygain = 5;
+ priv->txbbgain_table[7].txbbgain_value=0x55400155;
+ priv->txbbgain_table[8].txbb_iq_amplifygain = 4;
+ priv->txbbgain_table[8].txbbgain_value=0x50800142;
+ priv->txbbgain_table[9].txbb_iq_amplifygain = 3;
+ priv->txbbgain_table[9].txbbgain_value=0x4c000130;
+ priv->txbbgain_table[10].txbb_iq_amplifygain = 2;
+ priv->txbbgain_table[10].txbbgain_value=0x47c0011f;
+ priv->txbbgain_table[11].txbb_iq_amplifygain = 1;
+ priv->txbbgain_table[11].txbbgain_value=0x43c0010f;
+ priv->txbbgain_table[12].txbb_iq_amplifygain = 0;
+ priv->txbbgain_table[12].txbbgain_value=0x40000100;
+ priv->txbbgain_table[13].txbb_iq_amplifygain = -1;
+ priv->txbbgain_table[13].txbbgain_value=0x3c8000f2;
+ priv->txbbgain_table[14].txbb_iq_amplifygain = -2;
+ priv->txbbgain_table[14].txbbgain_value=0x390000e4;
+ priv->txbbgain_table[15].txbb_iq_amplifygain = -3;
+ priv->txbbgain_table[15].txbbgain_value=0x35c000d7;
+ priv->txbbgain_table[16].txbb_iq_amplifygain = -4;
+ priv->txbbgain_table[16].txbbgain_value=0x32c000cb;
+ priv->txbbgain_table[17].txbb_iq_amplifygain = -5;
+ priv->txbbgain_table[17].txbbgain_value=0x300000c0;
+ priv->txbbgain_table[18].txbb_iq_amplifygain = -6;
+ priv->txbbgain_table[18].txbbgain_value=0x2d4000b5;
+ priv->txbbgain_table[19].txbb_iq_amplifygain = -7;
+ priv->txbbgain_table[19].txbbgain_value=0x2ac000ab;
+ priv->txbbgain_table[20].txbb_iq_amplifygain = -8;
+ priv->txbbgain_table[20].txbbgain_value=0x288000a2;
+ priv->txbbgain_table[21].txbb_iq_amplifygain = -9;
+ priv->txbbgain_table[21].txbbgain_value=0x26000098;
+ priv->txbbgain_table[22].txbb_iq_amplifygain = -10;
+ priv->txbbgain_table[22].txbbgain_value=0x24000090;
+ priv->txbbgain_table[23].txbb_iq_amplifygain = -11;
+ priv->txbbgain_table[23].txbbgain_value=0x22000088;
+ priv->txbbgain_table[24].txbb_iq_amplifygain = -12;
+ priv->txbbgain_table[24].txbbgain_value=0x20000080;
+ priv->txbbgain_table[25].txbb_iq_amplifygain = -13;
+ priv->txbbgain_table[25].txbbgain_value=0x1a00006c;
+ priv->txbbgain_table[26].txbb_iq_amplifygain = -14;
+ priv->txbbgain_table[26].txbbgain_value=0x1c800072;
+ priv->txbbgain_table[27].txbb_iq_amplifygain = -15;
+ priv->txbbgain_table[27].txbbgain_value=0x18000060;
+ priv->txbbgain_table[28].txbb_iq_amplifygain = -16;
+ priv->txbbgain_table[28].txbbgain_value=0x19800066;
+ priv->txbbgain_table[29].txbb_iq_amplifygain = -17;
+ priv->txbbgain_table[29].txbbgain_value=0x15800056;
+ priv->txbbgain_table[30].txbb_iq_amplifygain = -18;
+ priv->txbbgain_table[30].txbbgain_value=0x26c0005b;
+ priv->txbbgain_table[31].txbb_iq_amplifygain = -19;
+ priv->txbbgain_table[31].txbbgain_value=0x14400051;
+ priv->txbbgain_table[32].txbb_iq_amplifygain = -20;
+ priv->txbbgain_table[32].txbbgain_value=0x24400051;
+ priv->txbbgain_table[33].txbb_iq_amplifygain = -21;
+ priv->txbbgain_table[33].txbbgain_value=0x1300004c;
+ priv->txbbgain_table[34].txbb_iq_amplifygain = -22;
+ priv->txbbgain_table[34].txbbgain_value=0x12000048;
+ priv->txbbgain_table[35].txbb_iq_amplifygain = -23;
+ priv->txbbgain_table[35].txbbgain_value=0x11000044;
+ priv->txbbgain_table[36].txbb_iq_amplifygain = -24;
+ priv->txbbgain_table[36].txbbgain_value=0x10000040;
+
+ priv->cck_txbbgain_table[0].ccktxbb_valuearray[0] = 0x36;
+ priv->cck_txbbgain_table[0].ccktxbb_valuearray[1] = 0x35;
+ priv->cck_txbbgain_table[0].ccktxbb_valuearray[2] = 0x2e;
+ priv->cck_txbbgain_table[0].ccktxbb_valuearray[3] = 0x25;
+ priv->cck_txbbgain_table[0].ccktxbb_valuearray[4] = 0x1c;
+ priv->cck_txbbgain_table[0].ccktxbb_valuearray[5] = 0x12;
+ priv->cck_txbbgain_table[0].ccktxbb_valuearray[6] = 0x09;
+ priv->cck_txbbgain_table[0].ccktxbb_valuearray[7] = 0x04;
+
+ priv->cck_txbbgain_table[1].ccktxbb_valuearray[0] = 0x33;
+ priv->cck_txbbgain_table[1].ccktxbb_valuearray[1] = 0x32;
+ priv->cck_txbbgain_table[1].ccktxbb_valuearray[2] = 0x2b;
+ priv->cck_txbbgain_table[1].ccktxbb_valuearray[3] = 0x23;
+ priv->cck_txbbgain_table[1].ccktxbb_valuearray[4] = 0x1a;
+ priv->cck_txbbgain_table[1].ccktxbb_valuearray[5] = 0x11;
+ priv->cck_txbbgain_table[1].ccktxbb_valuearray[6] = 0x08;
+ priv->cck_txbbgain_table[1].ccktxbb_valuearray[7] = 0x04;
+
+ priv->cck_txbbgain_table[2].ccktxbb_valuearray[0] = 0x30;
+ priv->cck_txbbgain_table[2].ccktxbb_valuearray[1] = 0x2f;
+ priv->cck_txbbgain_table[2].ccktxbb_valuearray[2] = 0x29;
+ priv->cck_txbbgain_table[2].ccktxbb_valuearray[3] = 0x21;
+ priv->cck_txbbgain_table[2].ccktxbb_valuearray[4] = 0x19;
+ priv->cck_txbbgain_table[2].ccktxbb_valuearray[5] = 0x10;
+ priv->cck_txbbgain_table[2].ccktxbb_valuearray[6] = 0x08;
+ priv->cck_txbbgain_table[2].ccktxbb_valuearray[7] = 0x03;
+
+ priv->cck_txbbgain_table[3].ccktxbb_valuearray[0] = 0x2d;
+ priv->cck_txbbgain_table[3].ccktxbb_valuearray[1] = 0x2d;
+ priv->cck_txbbgain_table[3].ccktxbb_valuearray[2] = 0x27;
+ priv->cck_txbbgain_table[3].ccktxbb_valuearray[3] = 0x1f;
+ priv->cck_txbbgain_table[3].ccktxbb_valuearray[4] = 0x18;
+ priv->cck_txbbgain_table[3].ccktxbb_valuearray[5] = 0x0f;
+ priv->cck_txbbgain_table[3].ccktxbb_valuearray[6] = 0x08;
+ priv->cck_txbbgain_table[3].ccktxbb_valuearray[7] = 0x03;
+
+ priv->cck_txbbgain_table[4].ccktxbb_valuearray[0] = 0x2b;
+ priv->cck_txbbgain_table[4].ccktxbb_valuearray[1] = 0x2a;
+ priv->cck_txbbgain_table[4].ccktxbb_valuearray[2] = 0x25;
+ priv->cck_txbbgain_table[4].ccktxbb_valuearray[3] = 0x1e;
+ priv->cck_txbbgain_table[4].ccktxbb_valuearray[4] = 0x16;
+ priv->cck_txbbgain_table[4].ccktxbb_valuearray[5] = 0x0e;
+ priv->cck_txbbgain_table[4].ccktxbb_valuearray[6] = 0x07;
+ priv->cck_txbbgain_table[4].ccktxbb_valuearray[7] = 0x03;
+
+ priv->cck_txbbgain_table[5].ccktxbb_valuearray[0] = 0x28;
+ priv->cck_txbbgain_table[5].ccktxbb_valuearray[1] = 0x28;
+ priv->cck_txbbgain_table[5].ccktxbb_valuearray[2] = 0x22;
+ priv->cck_txbbgain_table[5].ccktxbb_valuearray[3] = 0x1c;
+ priv->cck_txbbgain_table[5].ccktxbb_valuearray[4] = 0x15;
+ priv->cck_txbbgain_table[5].ccktxbb_valuearray[5] = 0x0d;
+ priv->cck_txbbgain_table[5].ccktxbb_valuearray[6] = 0x07;
+ priv->cck_txbbgain_table[5].ccktxbb_valuearray[7] = 0x03;
+
+ priv->cck_txbbgain_table[6].ccktxbb_valuearray[0] = 0x26;
+ priv->cck_txbbgain_table[6].ccktxbb_valuearray[1] = 0x25;
+ priv->cck_txbbgain_table[6].ccktxbb_valuearray[2] = 0x21;
+ priv->cck_txbbgain_table[6].ccktxbb_valuearray[3] = 0x1b;
+ priv->cck_txbbgain_table[6].ccktxbb_valuearray[4] = 0x14;
+ priv->cck_txbbgain_table[6].ccktxbb_valuearray[5] = 0x0d;
+ priv->cck_txbbgain_table[6].ccktxbb_valuearray[6] = 0x06;
+ priv->cck_txbbgain_table[6].ccktxbb_valuearray[7] = 0x03;
+
+ priv->cck_txbbgain_table[7].ccktxbb_valuearray[0] = 0x24;
+ priv->cck_txbbgain_table[7].ccktxbb_valuearray[1] = 0x23;
+ priv->cck_txbbgain_table[7].ccktxbb_valuearray[2] = 0x1f;
+ priv->cck_txbbgain_table[7].ccktxbb_valuearray[3] = 0x19;
+ priv->cck_txbbgain_table[7].ccktxbb_valuearray[4] = 0x13;
+ priv->cck_txbbgain_table[7].ccktxbb_valuearray[5] = 0x0c;
+ priv->cck_txbbgain_table[7].ccktxbb_valuearray[6] = 0x06;
+ priv->cck_txbbgain_table[7].ccktxbb_valuearray[7] = 0x03;
+
+ priv->cck_txbbgain_table[8].ccktxbb_valuearray[0] = 0x22;
+ priv->cck_txbbgain_table[8].ccktxbb_valuearray[1] = 0x21;
+ priv->cck_txbbgain_table[8].ccktxbb_valuearray[2] = 0x1d;
+ priv->cck_txbbgain_table[8].ccktxbb_valuearray[3] = 0x18;
+ priv->cck_txbbgain_table[8].ccktxbb_valuearray[4] = 0x11;
+ priv->cck_txbbgain_table[8].ccktxbb_valuearray[5] = 0x0b;
+ priv->cck_txbbgain_table[8].ccktxbb_valuearray[6] = 0x06;
+ priv->cck_txbbgain_table[8].ccktxbb_valuearray[7] = 0x02;
+
+ priv->cck_txbbgain_table[9].ccktxbb_valuearray[0] = 0x20;
+ priv->cck_txbbgain_table[9].ccktxbb_valuearray[1] = 0x20;
+ priv->cck_txbbgain_table[9].ccktxbb_valuearray[2] = 0x1b;
+ priv->cck_txbbgain_table[9].ccktxbb_valuearray[3] = 0x16;
+ priv->cck_txbbgain_table[9].ccktxbb_valuearray[4] = 0x11;
+ priv->cck_txbbgain_table[9].ccktxbb_valuearray[5] = 0x08;
+ priv->cck_txbbgain_table[9].ccktxbb_valuearray[6] = 0x05;
+ priv->cck_txbbgain_table[9].ccktxbb_valuearray[7] = 0x02;
+
+ priv->cck_txbbgain_table[10].ccktxbb_valuearray[0] = 0x1f;
+ priv->cck_txbbgain_table[10].ccktxbb_valuearray[1] = 0x1e;
+ priv->cck_txbbgain_table[10].ccktxbb_valuearray[2] = 0x1a;
+ priv->cck_txbbgain_table[10].ccktxbb_valuearray[3] = 0x15;
+ priv->cck_txbbgain_table[10].ccktxbb_valuearray[4] = 0x10;
+ priv->cck_txbbgain_table[10].ccktxbb_valuearray[5] = 0x0a;
+ priv->cck_txbbgain_table[10].ccktxbb_valuearray[6] = 0x05;
+ priv->cck_txbbgain_table[10].ccktxbb_valuearray[7] = 0x02;
+
+ priv->cck_txbbgain_table[11].ccktxbb_valuearray[0] = 0x1d;
+ priv->cck_txbbgain_table[11].ccktxbb_valuearray[1] = 0x1c;
+ priv->cck_txbbgain_table[11].ccktxbb_valuearray[2] = 0x18;
+ priv->cck_txbbgain_table[11].ccktxbb_valuearray[3] = 0x14;
+ priv->cck_txbbgain_table[11].ccktxbb_valuearray[4] = 0x0f;
+ priv->cck_txbbgain_table[11].ccktxbb_valuearray[5] = 0x0a;
+ priv->cck_txbbgain_table[11].ccktxbb_valuearray[6] = 0x05;
+ priv->cck_txbbgain_table[11].ccktxbb_valuearray[7] = 0x02;
+
+ priv->cck_txbbgain_table[12].ccktxbb_valuearray[0] = 0x1b;
+ priv->cck_txbbgain_table[12].ccktxbb_valuearray[1] = 0x1a;
+ priv->cck_txbbgain_table[12].ccktxbb_valuearray[2] = 0x17;
+ priv->cck_txbbgain_table[12].ccktxbb_valuearray[3] = 0x13;
+ priv->cck_txbbgain_table[12].ccktxbb_valuearray[4] = 0x0e;
+ priv->cck_txbbgain_table[12].ccktxbb_valuearray[5] = 0x09;
+ priv->cck_txbbgain_table[12].ccktxbb_valuearray[6] = 0x04;
+ priv->cck_txbbgain_table[12].ccktxbb_valuearray[7] = 0x02;
+
+ priv->cck_txbbgain_table[13].ccktxbb_valuearray[0] = 0x1a;
+ priv->cck_txbbgain_table[13].ccktxbb_valuearray[1] = 0x19;
+ priv->cck_txbbgain_table[13].ccktxbb_valuearray[2] = 0x16;
+ priv->cck_txbbgain_table[13].ccktxbb_valuearray[3] = 0x12;
+ priv->cck_txbbgain_table[13].ccktxbb_valuearray[4] = 0x0d;
+ priv->cck_txbbgain_table[13].ccktxbb_valuearray[5] = 0x09;
+ priv->cck_txbbgain_table[13].ccktxbb_valuearray[6] = 0x04;
+ priv->cck_txbbgain_table[13].ccktxbb_valuearray[7] = 0x02;
+
+ priv->cck_txbbgain_table[14].ccktxbb_valuearray[0] = 0x18;
+ priv->cck_txbbgain_table[14].ccktxbb_valuearray[1] = 0x17;
+ priv->cck_txbbgain_table[14].ccktxbb_valuearray[2] = 0x15;
+ priv->cck_txbbgain_table[14].ccktxbb_valuearray[3] = 0x11;
+ priv->cck_txbbgain_table[14].ccktxbb_valuearray[4] = 0x0c;
+ priv->cck_txbbgain_table[14].ccktxbb_valuearray[5] = 0x08;
+ priv->cck_txbbgain_table[14].ccktxbb_valuearray[6] = 0x04;
+ priv->cck_txbbgain_table[14].ccktxbb_valuearray[7] = 0x02;
+
+ priv->cck_txbbgain_table[15].ccktxbb_valuearray[0] = 0x17;
+ priv->cck_txbbgain_table[15].ccktxbb_valuearray[1] = 0x16;
+ priv->cck_txbbgain_table[15].ccktxbb_valuearray[2] = 0x13;
+ priv->cck_txbbgain_table[15].ccktxbb_valuearray[3] = 0x10;
+ priv->cck_txbbgain_table[15].ccktxbb_valuearray[4] = 0x0c;
+ priv->cck_txbbgain_table[15].ccktxbb_valuearray[5] = 0x08;
+ priv->cck_txbbgain_table[15].ccktxbb_valuearray[6] = 0x04;
+ priv->cck_txbbgain_table[15].ccktxbb_valuearray[7] = 0x02;
+
+ priv->cck_txbbgain_table[16].ccktxbb_valuearray[0] = 0x16;
+ priv->cck_txbbgain_table[16].ccktxbb_valuearray[1] = 0x15;
+ priv->cck_txbbgain_table[16].ccktxbb_valuearray[2] = 0x12;
+ priv->cck_txbbgain_table[16].ccktxbb_valuearray[3] = 0x0f;
+ priv->cck_txbbgain_table[16].ccktxbb_valuearray[4] = 0x0b;
+ priv->cck_txbbgain_table[16].ccktxbb_valuearray[5] = 0x07;
+ priv->cck_txbbgain_table[16].ccktxbb_valuearray[6] = 0x04;
+ priv->cck_txbbgain_table[16].ccktxbb_valuearray[7] = 0x01;
+
+ priv->cck_txbbgain_table[17].ccktxbb_valuearray[0] = 0x14;
+ priv->cck_txbbgain_table[17].ccktxbb_valuearray[1] = 0x14;
+ priv->cck_txbbgain_table[17].ccktxbb_valuearray[2] = 0x11;
+ priv->cck_txbbgain_table[17].ccktxbb_valuearray[3] = 0x0e;
+ priv->cck_txbbgain_table[17].ccktxbb_valuearray[4] = 0x0b;
+ priv->cck_txbbgain_table[17].ccktxbb_valuearray[5] = 0x07;
+ priv->cck_txbbgain_table[17].ccktxbb_valuearray[6] = 0x03;
+ priv->cck_txbbgain_table[17].ccktxbb_valuearray[7] = 0x02;
+
+ priv->cck_txbbgain_table[18].ccktxbb_valuearray[0] = 0x13;
+ priv->cck_txbbgain_table[18].ccktxbb_valuearray[1] = 0x13;
+ priv->cck_txbbgain_table[18].ccktxbb_valuearray[2] = 0x10;
+ priv->cck_txbbgain_table[18].ccktxbb_valuearray[3] = 0x0d;
+ priv->cck_txbbgain_table[18].ccktxbb_valuearray[4] = 0x0a;
+ priv->cck_txbbgain_table[18].ccktxbb_valuearray[5] = 0x06;
+ priv->cck_txbbgain_table[18].ccktxbb_valuearray[6] = 0x03;
+ priv->cck_txbbgain_table[18].ccktxbb_valuearray[7] = 0x01;
+
+ priv->cck_txbbgain_table[19].ccktxbb_valuearray[0] = 0x12;
+ priv->cck_txbbgain_table[19].ccktxbb_valuearray[1] = 0x12;
+ priv->cck_txbbgain_table[19].ccktxbb_valuearray[2] = 0x0f;
+ priv->cck_txbbgain_table[19].ccktxbb_valuearray[3] = 0x0c;
+ priv->cck_txbbgain_table[19].ccktxbb_valuearray[4] = 0x09;
+ priv->cck_txbbgain_table[19].ccktxbb_valuearray[5] = 0x06;
+ priv->cck_txbbgain_table[19].ccktxbb_valuearray[6] = 0x03;
+ priv->cck_txbbgain_table[19].ccktxbb_valuearray[7] = 0x01;
+
+ priv->cck_txbbgain_table[20].ccktxbb_valuearray[0] = 0x11;
+ priv->cck_txbbgain_table[20].ccktxbb_valuearray[1] = 0x11;
+ priv->cck_txbbgain_table[20].ccktxbb_valuearray[2] = 0x0f;
+ priv->cck_txbbgain_table[20].ccktxbb_valuearray[3] = 0x0c;
+ priv->cck_txbbgain_table[20].ccktxbb_valuearray[4] = 0x09;
+ priv->cck_txbbgain_table[20].ccktxbb_valuearray[5] = 0x06;
+ priv->cck_txbbgain_table[20].ccktxbb_valuearray[6] = 0x03;
+ priv->cck_txbbgain_table[20].ccktxbb_valuearray[7] = 0x01;
+
+ priv->cck_txbbgain_table[21].ccktxbb_valuearray[0] = 0x10;
+ priv->cck_txbbgain_table[21].ccktxbb_valuearray[1] = 0x10;
+ priv->cck_txbbgain_table[21].ccktxbb_valuearray[2] = 0x0e;
+ priv->cck_txbbgain_table[21].ccktxbb_valuearray[3] = 0x0b;
+ priv->cck_txbbgain_table[21].ccktxbb_valuearray[4] = 0x08;
+ priv->cck_txbbgain_table[21].ccktxbb_valuearray[5] = 0x05;
+ priv->cck_txbbgain_table[21].ccktxbb_valuearray[6] = 0x03;
+ priv->cck_txbbgain_table[21].ccktxbb_valuearray[7] = 0x01;
+
+ priv->cck_txbbgain_table[22].ccktxbb_valuearray[0] = 0x0f;
+ priv->cck_txbbgain_table[22].ccktxbb_valuearray[1] = 0x0f;
+ priv->cck_txbbgain_table[22].ccktxbb_valuearray[2] = 0x0d;
+ priv->cck_txbbgain_table[22].ccktxbb_valuearray[3] = 0x0b;
+ priv->cck_txbbgain_table[22].ccktxbb_valuearray[4] = 0x08;
+ priv->cck_txbbgain_table[22].ccktxbb_valuearray[5] = 0x05;
+ priv->cck_txbbgain_table[22].ccktxbb_valuearray[6] = 0x03;
+ priv->cck_txbbgain_table[22].ccktxbb_valuearray[7] = 0x01;
+
+ priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[0] = 0x36;
+ priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[1] = 0x35;
+ priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[2] = 0x2e;
+ priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[3] = 0x1b;
+ priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[0].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[0] = 0x33;
+ priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[1] = 0x32;
+ priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[2] = 0x2b;
+ priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[3] = 0x19;
+ priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[1].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[0] = 0x30;
+ priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[1] = 0x2f;
+ priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[2] = 0x29;
+ priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[3] = 0x18;
+ priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[2].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[0] = 0x2d;
+ priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[1] = 0x2d;
+ priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[2] = 0x27;
+ priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[3] = 0x17;
+ priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[3].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[0] = 0x2b;
+ priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[1] = 0x2a;
+ priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[2] = 0x25;
+ priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[3] = 0x15;
+ priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[4].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[0] = 0x28;
+ priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[1] = 0x28;
+ priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[2] = 0x22;
+ priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[3] = 0x14;
+ priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[5].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[0] = 0x26;
+ priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[1] = 0x25;
+ priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[2] = 0x21;
+ priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[3] = 0x13;
+ priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[6].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[0] = 0x24;
+ priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[1] = 0x23;
+ priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[2] = 0x1f;
+ priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[3] = 0x12;
+ priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[7].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[0] = 0x22;
+ priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[1] = 0x21;
+ priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[2] = 0x1d;
+ priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[3] = 0x11;
+ priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[8].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[0] = 0x20;
+ priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[1] = 0x20;
+ priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[2] = 0x1b;
+ priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[3] = 0x10;
+ priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[9].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[0] = 0x1f;
+ priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[1] = 0x1e;
+ priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[2] = 0x1a;
+ priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[3] = 0x0f;
+ priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[10].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[0] = 0x1d;
+ priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[1] = 0x1c;
+ priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[2] = 0x18;
+ priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[3] = 0x0e;
+ priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[11].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[0] = 0x1b;
+ priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[1] = 0x1a;
+ priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[2] = 0x17;
+ priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[3] = 0x0e;
+ priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[12].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[0] = 0x1a;
+ priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[1] = 0x19;
+ priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[2] = 0x16;
+ priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[3] = 0x0d;
+ priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[13].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[0] = 0x18;
+ priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[1] = 0x17;
+ priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[2] = 0x15;
+ priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[3] = 0x0c;
+ priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[14].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[0] = 0x17;
+ priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[1] = 0x16;
+ priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[2] = 0x13;
+ priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[3] = 0x0b;
+ priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[15].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[0] = 0x16;
+ priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[1] = 0x15;
+ priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[2] = 0x12;
+ priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[3] = 0x0b;
+ priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[16].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[0] = 0x14;
+ priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[1] = 0x14;
+ priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[2] = 0x11;
+ priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[3] = 0x0a;
+ priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[17].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[0] = 0x13;
+ priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[1] = 0x13;
+ priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[2] = 0x10;
+ priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[3] = 0x0a;
+ priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[18].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[0] = 0x12;
+ priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[1] = 0x12;
+ priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[2] = 0x0f;
+ priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[3] = 0x09;
+ priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[19].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[0] = 0x11;
+ priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[1] = 0x11;
+ priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[2] = 0x0f;
+ priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[3] = 0x09;
+ priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[20].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[0] = 0x10;
+ priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[1] = 0x10;
+ priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[2] = 0x0e;
+ priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[3] = 0x08;
+ priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[21].ccktxbb_valuearray[7] = 0x00;
+
+ priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[0] = 0x0f;
+ priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[1] = 0x0f;
+ priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[2] = 0x0d;
+ priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[3] = 0x08;
+ priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[4] = 0x00;
+ priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[5] = 0x00;
+ priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[6] = 0x00;
+ priv->cck_txbbgain_ch14_table[22].ccktxbb_valuearray[7] = 0x00;
+
+ priv->btxpower_tracking = true;
+ priv->txpower_count = 0;
+ priv->btxpower_trackingInit = false;
+
+}
+#endif
+#ifndef RTL8190P
+static void dm_InitializeTXPowerTracking_ThermalMeter(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+#ifdef RTL8192SE
+ priv->btxpower_tracking = false;
+ priv->txpower_count = 0;
+ priv->btxpower_trackingInit = false;
+#else
+
+ if(priv->rtllib->FwRWRF)
+ priv->btxpower_tracking = true;
+ else
+ priv->btxpower_tracking = false;
+ priv->txpower_count = 0;
+ priv->btxpower_trackingInit = false;
+#endif
+ RT_TRACE(COMP_POWER_TRACKING, "pMgntInfo->bTXPowerTracking = %d\n", priv->btxpower_tracking);
+}
+#endif
+
+void dm_initialize_txpower_tracking(struct net_device *dev)
+{
+#ifdef RTL8192E
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+#ifdef RTL8190P
+ dm_InitializeTXPowerTracking_TSSI(dev);
+#elif defined RTL8192E
+ if(priv->IC_Cut >= IC_VersionCut_D)
+ dm_InitializeTXPowerTracking_TSSI(dev);
+ else
+ dm_InitializeTXPowerTracking_ThermalMeter(dev);
+#elif defined RTL8192SE
+ dm_InitializeTXPowerTracking_ThermalMeter(dev);
+#endif
+}
+
+#if (defined RTL8192E || defined RTL8190P)
+static void dm_CheckTXPowerTracking_TSSI(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ static u32 tx_power_track_counter = 0;
+ RT_TRACE(COMP_POWER_TRACKING,"%s()\n",__FUNCTION__);
+ if(read_nic_byte(dev, 0x11e) ==1)
+ return;
+ if(!priv->btxpower_tracking)
+ return;
+ tx_power_track_counter++;
+
+
+ if(tx_power_track_counter >= 180)
+ {
+ queue_delayed_work_rsl(priv->priv_wq,&priv->txpower_tracking_wq,0);
+ tx_power_track_counter =0;
+ }
+
+}
+#endif
+#ifndef RTL8190P
+static void dm_CheckTXPowerTracking_ThermalMeter(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ static u8 TM_Trigger=0;
+ u8 TxPowerCheckCnt = 0;
+
+ if(IS_HARDWARE_TYPE_8192SE(dev))
+ TxPowerCheckCnt = 5;
+ else
+ TxPowerCheckCnt = 2;
+ if(!priv->btxpower_tracking){
+ return;
+ } else {
+ if(priv->txpower_count <= TxPowerCheckCnt) {
+ priv->txpower_count++;
+ return;
+ }
+ }
+
+ if(!TM_Trigger)
+ {
+#ifdef RTL8192SE
+ if(IS_HARDWARE_TYPE_8192SE(dev))
+ {
+ rtl8192_phy_SetRFReg(dev, RF90_PATH_A, RF_T_METER, bRFRegOffsetMask, 0x60);
+ RT_TRACE(COMP_POWER_TRACKING, "Trigger 92S Thermal Meter!!\n");
+ }
+ else
+#endif
+ {
+ rtl8192_phy_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4d);
+ rtl8192_phy_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4f);
+ rtl8192_phy_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4d);
+ rtl8192_phy_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4f);
+ }
+ TM_Trigger = 1;
+ return;
+ } else {
+ printk("===============>Schedule TxPowerTrackingWorkItem\n");
+#ifdef RTL8192SE
+ DM_TXPowerTracking92SDirectCall(dev);
+#else
+
+ queue_delayed_work_rsl(priv->priv_wq,&priv->txpower_tracking_wq,0);
+#endif
+ TM_Trigger = 0;
+ }
+
+ }
+#endif
+
+#ifdef RTL8192SE
+void DM_TXPowerTracking92SDirectCall(struct net_device *dev)
+{
+ dm_TXPowerTrackingCallback_ThermalMeter(dev);
+ }
+#endif
+
+static void dm_check_txpower_tracking(struct net_device *dev)
+{
+#ifdef RTL8192E
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+#ifdef RTL8190P
+ dm_CheckTXPowerTracking_TSSI(dev);
+#elif defined RTL8192E
+ if(priv->IC_Cut >= IC_VersionCut_D)
+ dm_CheckTXPowerTracking_TSSI(dev);
+ else
+ dm_CheckTXPowerTracking_ThermalMeter(dev);
+#elif defined RTL8192SE
+ dm_CheckTXPowerTracking_ThermalMeter(dev);
+#endif
+
+}
+
+#ifndef RTL8192SE
+static void dm_CCKTxPowerAdjust_TSSI(struct net_device *dev, bool bInCH14)
+{
+ u32 TempVal;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ TempVal = 0;
+ if(!bInCH14){
+ TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[0] +
+ (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[1]<<8)) ;
+
+ rtl8192_setBBreg(dev, rCCK0_TxFilter1,bMaskHWord, TempVal);
+ TempVal = 0;
+ TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[2] +
+ (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[3]<<8) +
+ (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[4]<<16 )+
+ (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[5]<<24));
+ rtl8192_setBBreg(dev, rCCK0_TxFilter2,bMaskDWord, TempVal);
+ TempVal = 0;
+ TempVal = (u32)(priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[6] +
+ (priv->cck_txbbgain_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[7]<<8)) ;
+
+ rtl8192_setBBreg(dev, rCCK0_DebugPort,bMaskLWord, TempVal);
+ }
+ else
+ {
+ TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[0] +
+ (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[1]<<8)) ;
+
+ rtl8192_setBBreg(dev, rCCK0_TxFilter1,bMaskHWord, TempVal);
+ TempVal = 0;
+ TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[2] +
+ (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[3]<<8) +
+ (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[4]<<16 )+
+ (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[5]<<24));
+ rtl8192_setBBreg(dev, rCCK0_TxFilter2,bMaskDWord, TempVal);
+ TempVal = 0;
+ TempVal = (u32)(priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[6] +
+ (priv->cck_txbbgain_ch14_table[(u8)(priv->CCKPresentAttentuation)].ccktxbb_valuearray[7]<<8)) ;
+
+ rtl8192_setBBreg(dev, rCCK0_DebugPort,bMaskLWord, TempVal);
+ }
+
+
+}
+#endif
+#ifdef RTL8192E
+static void dm_CCKTxPowerAdjust_ThermalMeter(struct net_device *dev, bool bInCH14)
+{
+ u32 TempVal;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ TempVal = 0;
+ if(!bInCH14)
+ {
+ TempVal = CCKSwingTable_Ch1_Ch13[priv->CCK_index][0] +
+ (CCKSwingTable_Ch1_Ch13[priv->CCK_index][1]<<8) ;
+ rtl8192_setBBreg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal);
+ RT_TRACE(COMP_POWER_TRACKING, "CCK not chnl 14, reg 0x%x = 0x%x\n",
+ rCCK0_TxFilter1, TempVal);
+ TempVal = 0;
+ TempVal = CCKSwingTable_Ch1_Ch13[priv->CCK_index][2] +
+ (CCKSwingTable_Ch1_Ch13[priv->CCK_index][3]<<8) +
+ (CCKSwingTable_Ch1_Ch13[priv->CCK_index][4]<<16 )+
+ (CCKSwingTable_Ch1_Ch13[priv->CCK_index][5]<<24);
+ rtl8192_setBBreg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal);
+ RT_TRACE(COMP_POWER_TRACKING, "CCK not chnl 14, reg 0x%x = 0x%x\n",
+ rCCK0_TxFilter2, TempVal);
+ TempVal = 0;
+ TempVal = CCKSwingTable_Ch1_Ch13[priv->CCK_index][6] +
+ (CCKSwingTable_Ch1_Ch13[priv->CCK_index][7]<<8) ;
+
+ rtl8192_setBBreg(dev, rCCK0_DebugPort, bMaskLWord, TempVal);
+ RT_TRACE(COMP_POWER_TRACKING, "CCK not chnl 14, reg 0x%x = 0x%x\n",
+ rCCK0_DebugPort, TempVal);
+ }
+ else
+ {
+ TempVal = CCKSwingTable_Ch14[priv->CCK_index][0] +
+ (CCKSwingTable_Ch14[priv->CCK_index][1]<<8) ;
+
+ rtl8192_setBBreg(dev, rCCK0_TxFilter1, bMaskHWord, TempVal);
+ RT_TRACE(COMP_POWER_TRACKING, "CCK chnl 14, reg 0x%x = 0x%x\n",
+ rCCK0_TxFilter1, TempVal);
+ TempVal = 0;
+ TempVal = CCKSwingTable_Ch14[priv->CCK_index][2] +
+ (CCKSwingTable_Ch14[priv->CCK_index][3]<<8) +
+ (CCKSwingTable_Ch14[priv->CCK_index][4]<<16 )+
+ (CCKSwingTable_Ch14[priv->CCK_index][5]<<24);
+ rtl8192_setBBreg(dev, rCCK0_TxFilter2, bMaskDWord, TempVal);
+ RT_TRACE(COMP_POWER_TRACKING, "CCK chnl 14, reg 0x%x = 0x%x\n",
+ rCCK0_TxFilter2, TempVal);
+ TempVal = 0;
+ TempVal = CCKSwingTable_Ch14[priv->CCK_index][6] +
+ (CCKSwingTable_Ch14[priv->CCK_index][7]<<8) ;
+
+ rtl8192_setBBreg(dev, rCCK0_DebugPort, bMaskLWord, TempVal);
+ RT_TRACE(COMP_POWER_TRACKING,"CCK chnl 14, reg 0x%x = 0x%x\n",
+ rCCK0_DebugPort, TempVal);
+ }
+ }
+#endif
+
+#ifndef RTL8192SE
+extern void dm_cck_txpower_adjust(
+ struct net_device *dev,
+ bool binch14
+)
+{
+#ifndef RTL8190P
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+#ifdef RTL8190P
+ dm_CCKTxPowerAdjust_TSSI(dev, binch14);
+#else
+ if(priv->IC_Cut >= IC_VersionCut_D)
+ dm_CCKTxPowerAdjust_TSSI(dev, binch14);
+ else
+ dm_CCKTxPowerAdjust_ThermalMeter(dev, binch14);
+#endif
+}
+#endif
+
+
+#if defined(RTL8192E)||defined(RTL8190P)
+static void dm_txpower_reset_recovery(
+ struct net_device *dev
+)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ RT_TRACE(COMP_POWER_TRACKING, "Start Reset Recovery ==>\n");
+ rtl8192_setBBreg(dev, rOFDM0_XATxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfa_txpowertrackingindex].txbbgain_value);
+ RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: Fill in 0xc80 is %08x\n",priv->txbbgain_table[priv->rfa_txpowertrackingindex].txbbgain_value);
+ RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: Fill in RFA_txPowerTrackingIndex is %x\n",priv->rfa_txpowertrackingindex);
+ RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery : RF A I/Q Amplify Gain is %ld\n",priv->txbbgain_table[priv->rfa_txpowertrackingindex].txbb_iq_amplifygain);
+ RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: CCK Attenuation is %d dB\n",priv->CCKPresentAttentuation);
+ dm_cck_txpower_adjust(dev,priv->bcck_in_ch14);
+
+ rtl8192_setBBreg(dev, rOFDM0_XCTxIQImbalance, bMaskDWord, priv->txbbgain_table[priv->rfc_txpowertrackingindex].txbbgain_value);
+ RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: Fill in 0xc90 is %08x\n",priv->txbbgain_table[priv->rfc_txpowertrackingindex].txbbgain_value);
+ RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery: Fill in RFC_txPowerTrackingIndex is %x\n",priv->rfc_txpowertrackingindex);
+ RT_TRACE(COMP_POWER_TRACKING, "Reset Recovery : RF C I/Q Amplify Gain is %ld\n",priv->txbbgain_table[priv->rfc_txpowertrackingindex].txbb_iq_amplifygain);
+
+}
+
+extern void dm_restore_dynamic_mechanism_state(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 reg_ratr = priv->rate_adaptive.last_ratr;
+
+ if(IS_NIC_DOWN(priv)){
+ RT_TRACE(COMP_RATE, "<---- dm_restore_dynamic_mechanism_state(): driver is going to unload\n");
+ return;
+ }
+
+ if(priv->rate_adaptive.rate_adaptive_disabled)
+ return;
+ if( !(priv->rtllib->mode==WIRELESS_MODE_N_24G ||
+ priv->rtllib->mode==WIRELESS_MODE_N_5G))
+ return;
+ {
+ u32 ratr_value;
+ ratr_value = reg_ratr;
+ if(priv->rf_type == RF_1T2R)
+ {
+ ratr_value &=~ (RATE_ALL_OFDM_2SS);
+ }
+ write_nic_dword(dev, RATR0, ratr_value);
+ write_nic_byte(dev, UFWP, 1);
+#if 0
+ u1Byte index;
+ u4Byte input_value;
+ index = (u1Byte)((((pu4Byte)(val))[0]) >> 28);
+ input_value = (((pu4Byte)(val))[0]) & 0x0fffffff;
+ PlatformEFIOWrite4Byte(dev, RATR0+index*4, input_value);
+#endif
+ }
+ if(priv->btxpower_trackingInit && priv->btxpower_tracking){
+ dm_txpower_reset_recovery(dev);
+ }
+
+ dm_bb_initialgain_restore(dev);
+
+}
+
+static void dm_bb_initialgain_restore(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 bit_mask = 0x7f;
+
+ if(dm_digtable.dig_algorithm == DIG_ALGO_BY_RSSI)
+ return;
+
+ rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x8);
+ rtl8192_setBBreg(dev, rOFDM0_XAAGCCore1, bit_mask, (u32)priv->initgain_backup.xaagccore1);
+ rtl8192_setBBreg(dev, rOFDM0_XBAGCCore1, bit_mask, (u32)priv->initgain_backup.xbagccore1);
+ rtl8192_setBBreg(dev, rOFDM0_XCAGCCore1, bit_mask, (u32)priv->initgain_backup.xcagccore1);
+ rtl8192_setBBreg(dev, rOFDM0_XDAGCCore1, bit_mask, (u32)priv->initgain_backup.xdagccore1);
+ bit_mask = bMaskByte2;
+ rtl8192_setBBreg(dev, rCCK0_CCA, bit_mask, (u32)priv->initgain_backup.cca);
+
+ RT_TRACE(COMP_DIG, "dm_BBInitialGainRestore 0xc50 is %x\n",priv->initgain_backup.xaagccore1);
+ RT_TRACE(COMP_DIG, "dm_BBInitialGainRestore 0xc58 is %x\n",priv->initgain_backup.xbagccore1);
+ RT_TRACE(COMP_DIG, "dm_BBInitialGainRestore 0xc60 is %x\n",priv->initgain_backup.xcagccore1);
+ RT_TRACE(COMP_DIG, "dm_BBInitialGainRestore 0xc68 is %x\n",priv->initgain_backup.xdagccore1);
+ RT_TRACE(COMP_DIG, "dm_BBInitialGainRestore 0xa0a is %x\n",priv->initgain_backup.cca);
+ rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x1);
+
+}
+
+
+extern void dm_backup_dynamic_mechanism_state(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ priv->bswitch_fsync = false;
+ priv->bfsync_processing = false;
+ dm_bb_initialgain_backup(dev);
+
+}
+
+
+static void dm_bb_initialgain_backup(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 bit_mask = bMaskByte0;
+
+ if(dm_digtable.dig_algorithm == DIG_ALGO_BY_RSSI)
+ return;
+
+ rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x8);
+ priv->initgain_backup.xaagccore1 = (u8)rtl8192_QueryBBReg(dev, rOFDM0_XAAGCCore1, bit_mask);
+ priv->initgain_backup.xbagccore1 = (u8)rtl8192_QueryBBReg(dev, rOFDM0_XBAGCCore1, bit_mask);
+ priv->initgain_backup.xcagccore1 = (u8)rtl8192_QueryBBReg(dev, rOFDM0_XCAGCCore1, bit_mask);
+ priv->initgain_backup.xdagccore1 = (u8)rtl8192_QueryBBReg(dev, rOFDM0_XDAGCCore1, bit_mask);
+ bit_mask = bMaskByte2;
+ priv->initgain_backup.cca = (u8)rtl8192_QueryBBReg(dev, rCCK0_CCA, bit_mask);
+
+ RT_TRACE(COMP_DIG, "BBInitialGainBackup 0xc50 is %x\n",priv->initgain_backup.xaagccore1);
+ RT_TRACE(COMP_DIG, "BBInitialGainBackup 0xc58 is %x\n",priv->initgain_backup.xbagccore1);
+ RT_TRACE(COMP_DIG, "BBInitialGainBackup 0xc60 is %x\n",priv->initgain_backup.xcagccore1);
+ RT_TRACE(COMP_DIG, "BBInitialGainBackup 0xc68 is %x\n",priv->initgain_backup.xdagccore1);
+ RT_TRACE(COMP_DIG, "BBInitialGainBackup 0xa0a is %x\n",priv->initgain_backup.cca);
+
+}
+
+#endif
+extern void dm_change_dynamic_initgain_thresh(struct net_device *dev,
+ u32 dm_type,
+ u32 dm_value)
+{
+#ifdef RTL8192SE
+ struct r8192_priv *priv = rtllib_priv(dev);
+ if(dm_type == DIG_TYPE_THRESH_HIGHPWR_HIGH)
+ priv->MidHighPwrTHR_L2 = (u8)dm_value;
+ else if(dm_type == DIG_TYPE_THRESH_HIGHPWR_LOW)
+ priv->MidHighPwrTHR_L1 = (u8)dm_value;
+ return;
+#endif
+ if (dm_type == DIG_TYPE_THRESH_HIGH)
+ {
+ dm_digtable.rssi_high_thresh = dm_value;
+ }
+ else if (dm_type == DIG_TYPE_THRESH_LOW)
+ {
+ dm_digtable.rssi_low_thresh = dm_value;
+ }
+ else if (dm_type == DIG_TYPE_THRESH_HIGHPWR_HIGH)
+ {
+ dm_digtable.rssi_high_power_highthresh = dm_value;
+ }
+ else if (dm_type == DIG_TYPE_THRESH_HIGHPWR_HIGH)
+ {
+ dm_digtable.rssi_high_power_highthresh = dm_value;
+ }
+ else if (dm_type == DIG_TYPE_ENABLE)
+ {
+ dm_digtable.dig_state = DM_STA_DIG_MAX;
+ dm_digtable.dig_enable_flag = true;
+ }
+ else if (dm_type == DIG_TYPE_DISABLE)
+ {
+ dm_digtable.dig_state = DM_STA_DIG_MAX;
+ dm_digtable.dig_enable_flag = false;
+ }
+ else if (dm_type == DIG_TYPE_DBG_MODE)
+ {
+ if(dm_value >= DM_DBG_MAX)
+ dm_value = DM_DBG_OFF;
+ dm_digtable.dbg_mode = (u8)dm_value;
+ }
+ else if (dm_type == DIG_TYPE_RSSI)
+ {
+ if(dm_value > 100)
+ dm_value = 30;
+ dm_digtable.rssi_val = (long)dm_value;
+ }
+ else if (dm_type == DIG_TYPE_ALGORITHM)
+ {
+ if (dm_value >= DIG_ALGO_MAX)
+ dm_value = DIG_ALGO_BY_FALSE_ALARM;
+ if(dm_digtable.dig_algorithm != (u8)dm_value)
+ dm_digtable.dig_algorithm_switch = 1;
+ dm_digtable.dig_algorithm = (u8)dm_value;
+ }
+ else if (dm_type == DIG_TYPE_BACKOFF)
+ {
+ if(dm_value > 30)
+ dm_value = 30;
+ dm_digtable.backoff_val = (u8)dm_value;
+ }
+ else if(dm_type == DIG_TYPE_RX_GAIN_MIN)
+ {
+ if(dm_value == 0)
+ dm_value = 0x1;
+ dm_digtable.rx_gain_range_min = (u8)dm_value;
+ }
+ else if(dm_type == DIG_TYPE_RX_GAIN_MAX)
+ {
+ if(dm_value > 0x50)
+ dm_value = 0x50;
+ dm_digtable.rx_gain_range_max = (u8)dm_value;
+ }
+}
+extern void
+dm_change_fsync_setting(
+ struct net_device *dev,
+ s32 DM_Type,
+ s32 DM_Value)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if (DM_Type == 0)
+ {
+ if(DM_Value > 1)
+ DM_Value = 1;
+ priv->framesyncMonitor = (u8)DM_Value;
+ }
+}
+
+extern void
+dm_change_rxpath_selection_setting(
+ struct net_device *dev,
+ s32 DM_Type,
+ s32 DM_Value)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ prate_adaptive pRA = (prate_adaptive)&(priv->rate_adaptive);
+
+
+ if(DM_Type == 0)
+ {
+ if(DM_Value > 1)
+ DM_Value = 1;
+ DM_RxPathSelTable.Enable = (u8)DM_Value;
+ }
+ else if(DM_Type == 1)
+ {
+ if(DM_Value > 1)
+ DM_Value = 1;
+ DM_RxPathSelTable.DbgMode = (u8)DM_Value;
+ }
+ else if(DM_Type == 2)
+ {
+ if(DM_Value > 40)
+ DM_Value = 40;
+ DM_RxPathSelTable.SS_TH_low = (u8)DM_Value;
+ }
+ else if(DM_Type == 3)
+ {
+ if(DM_Value > 25)
+ DM_Value = 25;
+ DM_RxPathSelTable.diff_TH = (u8)DM_Value;
+ }
+ else if(DM_Type == 4)
+ {
+ if(DM_Value >= CCK_Rx_Version_MAX)
+ DM_Value = CCK_Rx_Version_1;
+ DM_RxPathSelTable.cck_method= (u8)DM_Value;
+ }
+ else if(DM_Type == 10)
+ {
+ if(DM_Value > 100)
+ DM_Value = 50;
+ DM_RxPathSelTable.rf_rssi[0] = (u8)DM_Value;
+ }
+ else if(DM_Type == 11)
+ {
+ if(DM_Value > 100)
+ DM_Value = 50;
+ DM_RxPathSelTable.rf_rssi[1] = (u8)DM_Value;
+ }
+ else if(DM_Type == 12)
+ {
+ if(DM_Value > 100)
+ DM_Value = 50;
+ DM_RxPathSelTable.rf_rssi[2] = (u8)DM_Value;
+ }
+ else if(DM_Type == 13)
+ {
+ if(DM_Value > 100)
+ DM_Value = 50;
+ DM_RxPathSelTable.rf_rssi[3] = (u8)DM_Value;
+ }
+ else if(DM_Type == 20)
+ {
+ if(DM_Value > 1)
+ DM_Value = 1;
+ pRA->ping_rssi_enable = (u8)DM_Value;
+ }
+ else if(DM_Type == 21)
+ {
+ if(DM_Value > 30)
+ DM_Value = 30;
+ pRA->ping_rssi_thresh_for_ra = DM_Value;
+ }
+}
+
+#if 0
+extern void dm_force_tx_fw_info(struct net_device *dev,
+ u32 force_type,
+ u32 force_value)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if (force_type == 0)
+ {
+ priv->tx_fwinfo_force_subcarriermode = 0;
+ }
+ else if(force_type == 1)
+ {
+ priv->tx_fwinfo_force_subcarriermode = 1;
+ if(force_value > 3)
+ force_value = 3;
+ priv->tx_fwinfo_force_subcarrierval = (u8)force_value;
+ }
+}
+#endif
+
+static void dm_dig_init(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ dm_digtable.dig_enable_flag = true;
+ dm_digtable.Backoff_Enable_Flag = true;
+
+#ifdef RTL8192SE
+ if((priv->DM_Type == DM_Type_ByDriver) && (priv->pFirmware->FirmwareVersion >= 0x3c))
+ dm_digtable.dig_algorithm = DIG_ALGO_BY_TOW_PORT;
+ else
+ dm_digtable.dig_algorithm = DIG_ALGO_BEFORE_CONNECT_BY_RSSI_AND_ALARM;
+#else
+ dm_digtable.dig_algorithm = DIG_ALGO_BY_RSSI;
+#endif
+
+ dm_digtable.Dig_TwoPort_Algorithm = DIG_TWO_PORT_ALGO_RSSI;
+ dm_digtable.Dig_Ext_Port_Stage = DIG_EXT_PORT_STAGE_MAX;
+ dm_digtable.dbg_mode = DM_DBG_OFF;
+ dm_digtable.dig_algorithm_switch = 0;
+
+ dm_digtable.dig_state = DM_STA_DIG_MAX;
+ dm_digtable.dig_highpwr_state = DM_STA_DIG_MAX;
+ dm_digtable.CurSTAConnectState = dm_digtable.PreSTAConnectState = DIG_STA_DISCONNECT;
+ dm_digtable.CurAPConnectState = dm_digtable.PreAPConnectState = DIG_AP_DISCONNECT;
+ dm_digtable.initialgain_lowerbound_state = false;
+
+ dm_digtable.rssi_low_thresh = DM_DIG_THRESH_LOW;
+ dm_digtable.rssi_high_thresh = DM_DIG_THRESH_HIGH;
+
+ dm_digtable.FALowThresh = DM_FALSEALARM_THRESH_LOW;
+ dm_digtable.FAHighThresh = DM_FALSEALARM_THRESH_HIGH;
+
+ dm_digtable.rssi_high_power_lowthresh = DM_DIG_HIGH_PWR_THRESH_LOW;
+ dm_digtable.rssi_high_power_highthresh = DM_DIG_HIGH_PWR_THRESH_HIGH;
+
+ dm_digtable.rssi_val = 50;
+ dm_digtable.backoff_val = DM_DIG_BACKOFF;
+ dm_digtable.rx_gain_range_max = DM_DIG_MAX;
+ if(priv->CustomerID == RT_CID_819x_Netcore)
+ dm_digtable.rx_gain_range_min = DM_DIG_MIN_Netcore;
+ else
+ dm_digtable.rx_gain_range_min = DM_DIG_MIN;
+
+ dm_digtable.BackoffVal_range_max = DM_DIG_BACKOFF_MAX;
+ dm_digtable.BackoffVal_range_min = DM_DIG_BACKOFF_MIN;
+}
+
+void dm_FalseAlarmCounterStatistics(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 ret_value;
+ PFALSE_ALARM_STATISTICS FalseAlmCnt = &(priv->FalseAlmCnt);
+
+ ret_value = rtl8192_QueryBBReg(dev, rOFDM_PHYCounter1, bMaskDWord);
+ FalseAlmCnt->Cnt_Parity_Fail = ((ret_value&0xffff0000)>>16);
+
+ ret_value = rtl8192_QueryBBReg(dev, rOFDM_PHYCounter2, bMaskDWord);
+ FalseAlmCnt->Cnt_Rate_Illegal = (ret_value&0xffff);
+ FalseAlmCnt->Cnt_Crc8_fail = ((ret_value&0xffff0000)>>16);
+ ret_value = rtl8192_QueryBBReg(dev, rOFDM_PHYCounter3, bMaskDWord);
+ FalseAlmCnt->Cnt_Mcs_fail = (ret_value&0xffff);
+
+ FalseAlmCnt->Cnt_Ofdm_fail = FalseAlmCnt->Cnt_Parity_Fail + FalseAlmCnt->Cnt_Rate_Illegal +
+ FalseAlmCnt->Cnt_Crc8_fail + FalseAlmCnt->Cnt_Mcs_fail;
+
+ ret_value = rtl8192_QueryBBReg(dev, 0xc64, bMaskDWord);
+ FalseAlmCnt->Cnt_Cck_fail = (ret_value&0xffff);
+ FalseAlmCnt->Cnt_all = (FalseAlmCnt->Cnt_Parity_Fail +
+ FalseAlmCnt->Cnt_Rate_Illegal +
+ FalseAlmCnt->Cnt_Crc8_fail +
+ FalseAlmCnt->Cnt_Mcs_fail +
+ FalseAlmCnt->Cnt_Cck_fail);
+
+ RT_TRACE(COMP_DIG, "Cnt_Ofdm_fail = %d, Cnt_Cck_fail = %d, Cnt_all = %d\n",
+ FalseAlmCnt->Cnt_Ofdm_fail, FalseAlmCnt->Cnt_Cck_fail , FalseAlmCnt->Cnt_all);
+}
+
+#ifdef RTL8192SE
+static void dm_CtrlInitGainAPByFalseAlarm(struct net_device *dev)
+{
+ static u8 binitialized = false;
+
+ {
+ binitialized = false;
+ dm_digtable.Dig_Ext_Port_Stage = DIG_EXT_PORT_STAGE_MAX;
+ return;
+ }
+}
+#endif
+
+static void dm_ctrl_initgain_byrssi(struct net_device *dev)
+{
+
+ if (dm_digtable.dig_enable_flag == false)
+ return;
+
+ if(dm_digtable.dig_algorithm == DIG_ALGO_BY_FALSE_ALARM)
+ dm_ctrl_initgain_byrssi_by_fwfalse_alarm(dev);
+ else if(dm_digtable.dig_algorithm == DIG_ALGO_BY_RSSI)
+ dm_ctrl_initgain_byrssi_by_driverrssi(dev);
+#ifdef RTL8192SE
+ else if(dm_digtable.dig_algorithm == DIG_ALGO_BEFORE_CONNECT_BY_RSSI_AND_ALARM)
+ dm_CtrlInitGainBeforeConnectByRssiAndFalseAlarm(dev);
+ else if(dm_digtable.dig_algorithm == DIG_ALGO_BY_TOW_PORT)
+ dm_CtrlInitGainByTwoPort(dev);
+#endif
+ else
+ return;
+}
+
+#ifdef RTL8192SE
+static void dm_CtrlInitGainByTwoPort(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(rtllib_act_scanning(priv->rtllib,true) == true)
+ return;
+
+ if((priv->rtllib->state > RTLLIB_NOLINK) && (priv->rtllib->state < RTLLIB_LINKED))
+ dm_digtable.CurSTAConnectState = DIG_STA_BEFORE_CONNECT;
+ else if((priv->rtllib->state == RTLLIB_LINKED) ||(priv->rtllib->state == RTLLIB_LINKED_SCANNING))
+ dm_digtable.CurSTAConnectState = DIG_STA_CONNECT;
+ else
+ dm_digtable.CurSTAConnectState = DIG_STA_DISCONNECT;
+
+ dm_digtable.rssi_val = priv->undecorated_smoothed_pwdb;
+
+ if(dm_digtable.CurSTAConnectState != DIG_STA_DISCONNECT)
+ {
+ if(dm_digtable.Dig_TwoPort_Algorithm == DIG_TWO_PORT_ALGO_FALSE_ALARM)
+ {
+ dm_digtable.Dig_TwoPort_Algorithm = DIG_TWO_PORT_ALGO_RSSI;
+ priv->rtllib->SetFwCmdHandler(dev, FW_CMD_DIG_MODE_SS);
+ }
+ }
+
+ dm_FalseAlarmCounterStatistics(dev);
+ dm_initial_gain_STABeforeConnect(dev);
+ dm_CtrlInitGainAPByFalseAlarm(dev);
+
+ dm_digtable.PreSTAConnectState = dm_digtable.CurSTAConnectState;
+}
+#endif
+
+/*-----------------------------------------------------------------------------
+ * Function: dm_CtrlInitGainBeforeConnectByRssiAndFalseAlarm()
+ *
+ * Overview: Driver monitor RSSI and False Alarm to change initial gain.
+ Only change initial gain during link in progress.
+ *
+ * Input: IN PADAPTER pAdapter
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 03/04/2009 hpfan Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+
+#ifdef RTL8192SE
+static void dm_CtrlInitGainBeforeConnectByRssiAndFalseAlarm(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(rtllib_act_scanning(priv->rtllib,true) == true)
+ return;
+
+ if((priv->rtllib->state > RTLLIB_NOLINK) && (priv->rtllib->state < RTLLIB_LINKED))
+ dm_digtable.CurSTAConnectState = DIG_STA_BEFORE_CONNECT;
+ else if((priv->rtllib->state == RTLLIB_LINKED) ||(priv->rtllib->state == RTLLIB_LINKED_SCANNING))
+ dm_digtable.CurSTAConnectState = DIG_STA_CONNECT;
+ else
+ dm_digtable.CurSTAConnectState = DIG_STA_DISCONNECT;
+
+ if(dm_digtable.dbg_mode == DM_DBG_OFF)
+ dm_digtable.rssi_val = priv->undecorated_smoothed_pwdb;
+
+ dm_FalseAlarmCounterStatistics(dev);
+ dm_initial_gain_STABeforeConnect(dev);
+ dm_digtable.PreSTAConnectState = dm_digtable.CurSTAConnectState;
+
+}
+#endif
+static void dm_ctrl_initgain_byrssi_by_driverrssi(
+ struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 i;
+ static u8 fw_dig=0;
+
+ if (dm_digtable.dig_enable_flag == false)
+ return;
+
+ if(dm_digtable.dig_algorithm_switch)
+ fw_dig = 0;
+ if(fw_dig <= 3)
+ {
+ for(i=0; i<3; i++)
+ rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x8);
+ fw_dig++;
+ dm_digtable.dig_state = DM_STA_DIG_OFF;
+ }
+
+ if(priv->rtllib->state == RTLLIB_LINKED)
+ dm_digtable.CurSTAConnectState = DIG_STA_CONNECT;
+ else
+ dm_digtable.CurSTAConnectState = DIG_STA_DISCONNECT;
+
+
+ if(dm_digtable.dbg_mode == DM_DBG_OFF)
+ dm_digtable.rssi_val = priv->undecorated_smoothed_pwdb;
+ dm_initial_gain(dev);
+ dm_pd_th(dev);
+ dm_cs_ratio(dev);
+ if(dm_digtable.dig_algorithm_switch)
+ dm_digtable.dig_algorithm_switch = 0;
+ dm_digtable.PreSTAConnectState = dm_digtable.CurSTAConnectState;
+
+}
+
+static void dm_ctrl_initgain_byrssi_by_fwfalse_alarm(
+ struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ static u32 reset_cnt = 0;
+ u8 i;
+
+ if (dm_digtable.dig_enable_flag == false)
+ return;
+
+ if(dm_digtable.dig_algorithm_switch)
+ {
+ dm_digtable.dig_state = DM_STA_DIG_MAX;
+ for(i=0; i<3; i++)
+ rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x1);
+ dm_digtable.dig_algorithm_switch = 0;
+ }
+
+ if (priv->rtllib->state != RTLLIB_LINKED)
+ return;
+
+ if ((priv->undecorated_smoothed_pwdb > dm_digtable.rssi_low_thresh) &&
+ (priv->undecorated_smoothed_pwdb < dm_digtable.rssi_high_thresh))
+ {
+ return;
+ }
+ if ((priv->undecorated_smoothed_pwdb <= dm_digtable.rssi_low_thresh))
+ {
+ if (dm_digtable.dig_state == DM_STA_DIG_OFF &&
+ (priv->reset_count == reset_cnt))
+ {
+ return;
+ }
+ else
+ {
+ reset_cnt = priv->reset_count;
+ }
+
+ dm_digtable.dig_highpwr_state = DM_STA_DIG_MAX;
+ dm_digtable.dig_state = DM_STA_DIG_OFF;
+
+ rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x8);
+
+ write_nic_byte(dev, rOFDM0_XAAGCCore1, 0x17);
+ write_nic_byte(dev, rOFDM0_XBAGCCore1, 0x17);
+ write_nic_byte(dev, rOFDM0_XCAGCCore1, 0x17);
+ write_nic_byte(dev, rOFDM0_XDAGCCore1, 0x17);
+
+ if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)
+ {
+ #ifdef RTL8190P
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x40);
+ #else
+ write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x00);
+ #endif
+ /*else if (priv->card_8192 == HARDWARE_TYPE_RTL8190P)
+ write_nic_byte(pAdapter, rOFDM0_RxDetector1, 0x40);
+ */
+
+
+ }
+ else
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x42);
+
+ write_nic_byte(dev, 0xa0a, 0x08);
+
+ return;
+
+ }
+
+ if ((priv->undecorated_smoothed_pwdb >= dm_digtable.rssi_high_thresh) )
+ {
+ u8 reset_flag = 0;
+
+ if (dm_digtable.dig_state == DM_STA_DIG_ON &&
+ (priv->reset_count == reset_cnt))
+ {
+ dm_ctrl_initgain_byrssi_highpwr(dev);
+ return;
+ }
+ else
+ {
+ if (priv->reset_count != reset_cnt)
+ reset_flag = 1;
+
+ reset_cnt = priv->reset_count;
+ }
+
+ dm_digtable.dig_state = DM_STA_DIG_ON;
+
+ if (reset_flag == 1)
+ {
+ write_nic_byte(dev, rOFDM0_XAAGCCore1, 0x2c);
+ write_nic_byte(dev, rOFDM0_XBAGCCore1, 0x2c);
+ write_nic_byte(dev, rOFDM0_XCAGCCore1, 0x2c);
+ write_nic_byte(dev, rOFDM0_XDAGCCore1, 0x2c);
+ }
+ else
+ {
+ write_nic_byte(dev, rOFDM0_XAAGCCore1, 0x20);
+ write_nic_byte(dev, rOFDM0_XBAGCCore1, 0x20);
+ write_nic_byte(dev, rOFDM0_XCAGCCore1, 0x20);
+ write_nic_byte(dev, rOFDM0_XDAGCCore1, 0x20);
+ }
+
+ if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)
+ {
+ #ifdef RTL8190P
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x42);
+ #else
+ write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x20);
+ #endif
+ /*
+ else if (priv->card_8192 == HARDWARE_TYPE_RTL8190P)
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x42);
+ */
+
+ }
+ else
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x44);
+
+ write_nic_byte(dev, 0xa0a, 0xcd);
+
+
+ rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x1);
+
+ }
+
+ dm_ctrl_initgain_byrssi_highpwr(dev);
+
+}
+
+
+static void dm_ctrl_initgain_byrssi_highpwr(
+ struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ static u32 reset_cnt_highpwr = 0;
+
+ if ((priv->undecorated_smoothed_pwdb > dm_digtable.rssi_high_power_lowthresh) &&
+ (priv->undecorated_smoothed_pwdb < dm_digtable.rssi_high_power_highthresh))
+ {
+ return;
+ }
+
+ if (priv->undecorated_smoothed_pwdb >= dm_digtable.rssi_high_power_highthresh)
+ {
+ if (dm_digtable.dig_highpwr_state == DM_STA_DIG_ON &&
+ (priv->reset_count == reset_cnt_highpwr))
+ return;
+ else
+ dm_digtable.dig_highpwr_state = DM_STA_DIG_ON;
+
+ if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)
+ {
+ #ifdef RTL8190P
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x41);
+ #else
+ write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x10);
+ #endif
+
+ /*else if (priv->card_8192 == HARDWARE_TYPE_RTL8190P)
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x41);
+ */
+
+ }
+ else
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x43);
+ }
+ else
+ {
+ if (dm_digtable.dig_highpwr_state == DM_STA_DIG_OFF&&
+ (priv->reset_count == reset_cnt_highpwr))
+ return;
+ else
+ dm_digtable.dig_highpwr_state = DM_STA_DIG_OFF;
+
+ if (priv->undecorated_smoothed_pwdb < dm_digtable.rssi_high_power_lowthresh &&
+ priv->undecorated_smoothed_pwdb >= dm_digtable.rssi_high_thresh)
+ {
+ if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)
+ {
+ #ifdef RTL8190P
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x42);
+ #else
+ write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x20);
+ #endif
+ /*else if (priv->card_8192 == HARDWARE_TYPE_RTL8190P)
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x42);
+ */
+
+ }
+ else
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x44);
+ }
+ }
+
+ reset_cnt_highpwr = priv->reset_count;
+
+}
+
+
+static void dm_initial_gain(
+ struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 initial_gain=0;
+ static u8 initialized=0, force_write=0;
+ static u32 reset_cnt=0;
+
+ if(dm_digtable.dig_algorithm_switch)
+ {
+ initialized = 0;
+ reset_cnt = 0;
+ }
+
+ if(rtllib_act_scanning(priv->rtllib,true) == true)
+ {
+ force_write = 1;
+ return;
+ }
+
+ if(dm_digtable.PreSTAConnectState == dm_digtable.CurSTAConnectState)
+ {
+ if(dm_digtable.CurSTAConnectState == DIG_STA_CONNECT)
+ {
+ if((dm_digtable.rssi_val+10-dm_digtable.backoff_val) > dm_digtable.rx_gain_range_max)
+ dm_digtable.cur_ig_value = dm_digtable.rx_gain_range_max;
+ else if((dm_digtable.rssi_val+10-dm_digtable.backoff_val) < dm_digtable.rx_gain_range_min)
+ dm_digtable.cur_ig_value = dm_digtable.rx_gain_range_min;
+ else
+ dm_digtable.cur_ig_value = dm_digtable.rssi_val+10-dm_digtable.backoff_val;
+ }
+ else
+ {
+ if(dm_digtable.cur_ig_value == 0)
+ dm_digtable.cur_ig_value = priv->DefaultInitialGain[0];
+ else
+ dm_digtable.cur_ig_value = dm_digtable.pre_ig_value;
+ }
+ }
+ else
+ {
+ dm_digtable.cur_ig_value = priv->DefaultInitialGain[0];
+ dm_digtable.pre_ig_value = 0;
+ }
+
+ if(priv->reset_count != reset_cnt)
+ {
+ force_write = 1;
+ reset_cnt = priv->reset_count;
+ }
+
+ if(dm_digtable.pre_ig_value != read_nic_byte(dev, rOFDM0_XAAGCCore1))
+ force_write = 1;
+
+ {
+ if((dm_digtable.pre_ig_value != dm_digtable.cur_ig_value)
+ || !initialized || force_write)
+ {
+ initial_gain = (u8)dm_digtable.cur_ig_value;
+ write_nic_byte(dev, rOFDM0_XAAGCCore1, initial_gain);
+ write_nic_byte(dev, rOFDM0_XBAGCCore1, initial_gain);
+ write_nic_byte(dev, rOFDM0_XCAGCCore1, initial_gain);
+ write_nic_byte(dev, rOFDM0_XDAGCCore1, initial_gain);
+ dm_digtable.pre_ig_value = dm_digtable.cur_ig_value;
+ initialized = 1;
+ force_write = 0;
+ }
+ }
+}
+
+void dm_initial_gain_STABeforeConnect(
+ struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 initial_gain=0;
+ static u8 initialized=0, force_write=0;
+
+ RT_TRACE(COMP_DIG, "PreSTAConnectState = %x, CurSTAConnectState = %x\n",
+ dm_digtable.PreSTAConnectState, dm_digtable.CurSTAConnectState);
+
+
+ if((dm_digtable.PreSTAConnectState == dm_digtable.CurSTAConnectState) ||
+ (dm_digtable.CurSTAConnectState == DIG_STA_BEFORE_CONNECT))
+ {
+ if(dm_digtable.CurSTAConnectState == DIG_STA_BEFORE_CONNECT)
+ {
+ if(priv->rtllib->eRFPowerState != eRfOn)
+ return;
+
+ if(dm_digtable.Backoff_Enable_Flag == true)
+ {
+ if(priv->FalseAlmCnt.Cnt_all > dm_digtable.FAHighThresh)
+ {
+ if((dm_digtable.backoff_val -6) < dm_digtable.BackoffVal_range_min)
+ dm_digtable.backoff_val = dm_digtable.BackoffVal_range_min;
+ else
+ dm_digtable.backoff_val -= 6;
+ }
+ else if(priv->FalseAlmCnt.Cnt_all < dm_digtable.FALowThresh)
+ {
+ if((dm_digtable.backoff_val+6) > dm_digtable.BackoffVal_range_max)
+ dm_digtable.backoff_val = dm_digtable.BackoffVal_range_max;
+ else
+ dm_digtable.backoff_val +=6;
+ }
+ }
+ else
+ dm_digtable.backoff_val =DM_DIG_BACKOFF;
+
+ if((dm_digtable.rssi_val+10-dm_digtable.backoff_val) > dm_digtable.rx_gain_range_max)
+ dm_digtable.cur_ig_value = dm_digtable.rx_gain_range_max;
+ else if((dm_digtable.rssi_val+10-dm_digtable.backoff_val) < dm_digtable.rx_gain_range_min)
+ dm_digtable.cur_ig_value = dm_digtable.rx_gain_range_min;
+ else
+ dm_digtable.cur_ig_value = dm_digtable.rssi_val+10-dm_digtable.backoff_val;
+
+ if(priv->FalseAlmCnt.Cnt_all > 10000)
+ dm_digtable.cur_ig_value = (dm_digtable.cur_ig_value>0x33)?dm_digtable.cur_ig_value:0x33;
+
+ if(priv->FalseAlmCnt.Cnt_all > 16000)
+ dm_digtable.cur_ig_value = dm_digtable.rx_gain_range_max;
+
+ }
+ else
+ {
+ return;
+ }
+ }
+ else
+ {
+ dm_digtable.Dig_Ext_Port_Stage = DIG_EXT_PORT_STAGE_MAX;
+ priv->rtllib->SetFwCmdHandler(dev, FW_CMD_DIG_ENABLE);
+
+ dm_digtable.backoff_val = DM_DIG_BACKOFF;
+ dm_digtable.cur_ig_value = priv->DefaultInitialGain[0];
+ dm_digtable.pre_ig_value = 0;
+ return;
+ }
+
+ if(dm_digtable.pre_ig_value != rtl8192_QueryBBReg(dev, rOFDM0_XAAGCCore1, bMaskByte0))
+ force_write = 1;
+
+ if((dm_digtable.pre_ig_value != dm_digtable.cur_ig_value) || !initialized || force_write)
+ {
+ priv->rtllib->SetFwCmdHandler(dev, FW_CMD_DIG_DISABLE);
+
+ initial_gain = (u8)dm_digtable.cur_ig_value;
+
+ rtl8192_setBBreg(dev, rOFDM0_XAAGCCore1, bMaskByte0, initial_gain);
+ rtl8192_setBBreg(dev, rOFDM0_XBAGCCore1, bMaskByte0, initial_gain);
+ dm_digtable.pre_ig_value = dm_digtable.cur_ig_value;
+ initialized = 1;
+ force_write = 0;
+ }
+
+ RT_TRACE(COMP_DIG, "CurIGValue = 0x%x, pre_ig_value = 0x%x, backoff_val = %d\n",
+ dm_digtable.cur_ig_value, dm_digtable.pre_ig_value, dm_digtable.backoff_val);
+
+}
+
+static void dm_pd_th(
+ struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ static u8 initialized=0, force_write=0;
+ static u32 reset_cnt = 0;
+
+ if(dm_digtable.dig_algorithm_switch)
+ {
+ initialized = 0;
+ reset_cnt = 0;
+ }
+
+ if(dm_digtable.PreSTAConnectState == dm_digtable.CurSTAConnectState)
+ {
+ if(dm_digtable.CurSTAConnectState == DIG_STA_CONNECT)
+ {
+ if (dm_digtable.rssi_val >= dm_digtable.rssi_high_power_highthresh)
+ dm_digtable.curpd_thstate = DIG_PD_AT_HIGH_POWER;
+ else if ((dm_digtable.rssi_val <= dm_digtable.rssi_low_thresh))
+ dm_digtable.curpd_thstate = DIG_PD_AT_LOW_POWER;
+ else if ((dm_digtable.rssi_val >= dm_digtable.rssi_high_thresh) &&
+ (dm_digtable.rssi_val < dm_digtable.rssi_high_power_lowthresh))
+ dm_digtable.curpd_thstate = DIG_PD_AT_NORMAL_POWER;
+ else
+ dm_digtable.curpd_thstate = dm_digtable.prepd_thstate;
+ }
+ else
+ {
+ dm_digtable.curpd_thstate = DIG_PD_AT_LOW_POWER;
+ }
+ }
+ else
+ {
+ dm_digtable.curpd_thstate = DIG_PD_AT_LOW_POWER;
+ }
+
+ if(priv->reset_count != reset_cnt)
+ {
+ force_write = 1;
+ reset_cnt = priv->reset_count;
+ }
+
+ {
+ if((dm_digtable.prepd_thstate != dm_digtable.curpd_thstate) ||
+ (initialized<=3) || force_write)
+ {
+ if(dm_digtable.curpd_thstate == DIG_PD_AT_LOW_POWER)
+ {
+ if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)
+ {
+ #ifdef RTL8190P
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x40);
+ #else
+ write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x00);
+ #endif
+ /*else if (priv->card_8192 == HARDWARE_TYPE_RTL8190P)
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x40);
+ */
+ }
+ else
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x42);
+ }
+ else if(dm_digtable.curpd_thstate == DIG_PD_AT_NORMAL_POWER)
+ {
+ if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)
+ {
+ #ifdef RTL8190P
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x42);
+ #else
+ write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x20);
+ #endif
+ /*else if (priv->card_8192 == HARDWARE_TYPE_RTL8190P)
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x42);
+ */
+ }
+ else
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x44);
+ }
+ else if(dm_digtable.curpd_thstate == DIG_PD_AT_HIGH_POWER)
+ {
+ if (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)
+ {
+ #ifdef RTL8190P
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x41);
+ #else
+ write_nic_byte(dev, (rOFDM0_XATxAFE+3), 0x10);
+ #endif
+ /*else if (priv->card_8192 == HARDWARE_TYPE_RTL8190P)
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x41);
+ */
+ }
+ else
+ write_nic_byte(dev, rOFDM0_RxDetector1, 0x43);
+ }
+ dm_digtable.prepd_thstate = dm_digtable.curpd_thstate;
+ if(initialized <= 3)
+ initialized++;
+ force_write = 0;
+ }
+ }
+}
+
+static void dm_cs_ratio(
+ struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ static u8 initialized=0,force_write=0;
+ static u32 reset_cnt = 0;
+
+ if(dm_digtable.dig_algorithm_switch)
+ {
+ initialized = 0;
+ reset_cnt = 0;
+ }
+
+ if(dm_digtable.PreSTAConnectState == dm_digtable.CurSTAConnectState)
+ {
+ if(dm_digtable.CurSTAConnectState == DIG_STA_CONNECT)
+ {
+ if ((dm_digtable.rssi_val <= dm_digtable.rssi_low_thresh))
+ dm_digtable.curcs_ratio_state = DIG_CS_RATIO_LOWER;
+ else if ((dm_digtable.rssi_val >= dm_digtable.rssi_high_thresh) )
+ dm_digtable.curcs_ratio_state = DIG_CS_RATIO_HIGHER;
+ else
+ dm_digtable.curcs_ratio_state = dm_digtable.precs_ratio_state;
+ }
+ else
+ {
+ dm_digtable.curcs_ratio_state = DIG_CS_RATIO_LOWER;
+ }
+ }
+ else
+ {
+ dm_digtable.curcs_ratio_state = DIG_CS_RATIO_LOWER;
+ }
+
+ if(priv->reset_count != reset_cnt)
+ {
+ force_write = 1;
+ reset_cnt = priv->reset_count;
+ }
+
+
+ {
+ if((dm_digtable.precs_ratio_state != dm_digtable.curcs_ratio_state) ||
+ !initialized || force_write)
+ {
+ if(dm_digtable.curcs_ratio_state == DIG_CS_RATIO_LOWER)
+ {
+ write_nic_byte(dev, 0xa0a, 0x08);
+ }
+ else if(dm_digtable.curcs_ratio_state == DIG_CS_RATIO_HIGHER)
+ {
+ write_nic_byte(dev, 0xa0a, 0xcd);
+ }
+ dm_digtable.precs_ratio_state = dm_digtable.curcs_ratio_state;
+ initialized = 1;
+ force_write = 0;
+ }
+ }
+}
+
+extern void dm_init_edca_turbo(struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ priv->bcurrent_turbo_EDCA = false;
+ priv->rtllib->bis_any_nonbepkts = false;
+ priv->bis_cur_rdlstate = false;
+}
+
+#if 1
+static void dm_check_edca_turbo(
+ struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo;
+
+ static unsigned long lastTxOkCnt = 0;
+ static unsigned long lastRxOkCnt = 0;
+ unsigned long curTxOkCnt = 0;
+ unsigned long curRxOkCnt = 0;
+
+ if(priv->rtllib->iw_mode == IW_MODE_ADHOC)
+ {
+ goto dm_CheckEdcaTurbo_EXIT;
+ }
+ if(priv->rtllib->state != RTLLIB_LINKED)
+ {
+ goto dm_CheckEdcaTurbo_EXIT;
+ }
+ if(priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_EDCA_TURBO)
+ {
+ goto dm_CheckEdcaTurbo_EXIT;
+ }
+
+ {
+ u8* peername[11] = {"unknown", "realtek_90", "realtek_92se","broadcom", "ralink", "atheros", "cisco", "marvell", "92u_softap", "self_softap"};
+ static int wb_tmp = 0;
+ if (wb_tmp == 0){
+ printk("%s():iot peer is %s, bssid:"MAC_FMT"\n",__FUNCTION__,peername[pHTInfo->IOTPeer], MAC_ARG(priv->rtllib->current_network.bssid));
+ wb_tmp = 1;
+ }
+ }
+ if(!priv->rtllib->bis_any_nonbepkts)
+ {
+ curTxOkCnt = priv->stats.txbytesunicast - lastTxOkCnt;
+ curRxOkCnt = priv->stats.rxbytesunicast - lastRxOkCnt;
+ if(pHTInfo->IOTAction & HT_IOT_ACT_EDCA_BIAS_ON_RX)
+ {
+ if(curTxOkCnt > 4*curRxOkCnt)
+ {
+ if(priv->bis_cur_rdlstate || !priv->bcurrent_turbo_EDCA)
+ {
+ write_nic_dword(dev, EDCAPARA_BE, edca_setting_UL[pHTInfo->IOTPeer]);
+ priv->bis_cur_rdlstate = false;
+ }
+ }
+ else
+ {
+ if(!priv->bis_cur_rdlstate || !priv->bcurrent_turbo_EDCA)
+ {
+ if(priv->rtllib->mode == WIRELESS_MODE_G)
+ write_nic_dword(dev, EDCAPARA_BE, edca_setting_DL_GMode[pHTInfo->IOTPeer]);
+ else
+ write_nic_dword(dev, EDCAPARA_BE, edca_setting_DL[pHTInfo->IOTPeer]);
+ priv->bis_cur_rdlstate = true;
+ }
+ }
+ priv->bcurrent_turbo_EDCA = true;
+ }
+ else
+ {
+ if(curRxOkCnt > 4*curTxOkCnt)
+ {
+ if(!priv->bis_cur_rdlstate || !priv->bcurrent_turbo_EDCA)
+ {
+ if(priv->rtllib->mode == WIRELESS_MODE_G)
+ write_nic_dword(dev, EDCAPARA_BE, edca_setting_DL_GMode[pHTInfo->IOTPeer]);
+ else
+ write_nic_dword(dev, EDCAPARA_BE, edca_setting_DL[pHTInfo->IOTPeer]);
+ priv->bis_cur_rdlstate = true;
+ }
+ }
+ else
+ {
+ if(priv->bis_cur_rdlstate || !priv->bcurrent_turbo_EDCA)
+ {
+ write_nic_dword(dev, EDCAPARA_BE, edca_setting_UL[pHTInfo->IOTPeer]);
+ priv->bis_cur_rdlstate = false;
+ }
+
+ }
+
+ priv->bcurrent_turbo_EDCA = true;
+ }
+ }
+ else
+ {
+ if(priv->bcurrent_turbo_EDCA)
+ {
+
+ {
+ u8 u1bAIFS;
+ u32 u4bAcParam;
+ struct rtllib_qos_parameters *qos_parameters = &priv->rtllib->current_network.qos_data.parameters;
+ u8 mode = priv->rtllib->mode;
+
+ dm_init_edca_turbo(dev);
+ u1bAIFS = qos_parameters->aifs[0] * ((mode&(IEEE_G|IEEE_N_24G)) ?9:20) + aSifsTime;
+ u4bAcParam = ((((u32)(qos_parameters->tx_op_limit[0]))<< AC_PARAM_TXOP_LIMIT_OFFSET)|
+ (((u32)(qos_parameters->cw_max[0]))<< AC_PARAM_ECW_MAX_OFFSET)|
+ (((u32)(qos_parameters->cw_min[0]))<< AC_PARAM_ECW_MIN_OFFSET)|
+ ((u32)u1bAIFS << AC_PARAM_AIFS_OFFSET));
+ write_nic_dword(dev, EDCAPARA_BE, u4bAcParam);
+
+ {
+
+ PACI_AIFSN pAciAifsn = (PACI_AIFSN)&(qos_parameters->aifs[0]);
+ u8 AcmCtrl = read_nic_byte( dev, AcmHwCtrl );
+ if( pAciAifsn->f.ACM )
+ {
+ AcmCtrl |= AcmHw_BeqEn;
+ }
+ else
+ {
+ AcmCtrl &= (~AcmHw_BeqEn);
+ }
+
+ RT_TRACE( COMP_QOS,"SetHwReg8190pci(): [HW_VAR_ACM_CTRL] Write 0x%X\n", AcmCtrl ) ;
+ write_nic_byte(dev, AcmHwCtrl, AcmCtrl );
+ }
+ }
+ priv->bcurrent_turbo_EDCA = false;
+ }
+ }
+
+
+dm_CheckEdcaTurbo_EXIT:
+ priv->rtllib->bis_any_nonbepkts = false;
+ lastTxOkCnt = priv->stats.txbytesunicast;
+ lastRxOkCnt = priv->stats.rxbytesunicast;
+}
+#endif
+
+extern void DM_CTSToSelfSetting(struct net_device * dev,u32 DM_Type, u32 DM_Value)
+{
+ struct r8192_priv *priv = rtllib_priv((struct net_device *)dev);
+
+ if (DM_Type == 0)
+ {
+ if(DM_Value > 1)
+ DM_Value = 1;
+ priv->rtllib->bCTSToSelfEnable = (bool)DM_Value;
+ }
+ else if(DM_Type == 1)
+ {
+ if(DM_Value >= 50)
+ DM_Value = 50;
+ priv->rtllib->CTSToSelfTH = (u8)DM_Value;
+ }
+}
+
+static void dm_init_ctstoself(struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv((struct net_device *)dev);
+
+ priv->rtllib->bCTSToSelfEnable = true;
+ priv->rtllib->CTSToSelfTH = CTSToSelfTHVal;
+}
+
+static void dm_ctstoself(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv((struct net_device *)dev);
+ PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo;
+ static unsigned long lastTxOkCnt = 0;
+ static unsigned long lastRxOkCnt = 0;
+ unsigned long curTxOkCnt = 0;
+ unsigned long curRxOkCnt = 0;
+
+ if(priv->rtllib->bCTSToSelfEnable != true)
+ {
+ pHTInfo->IOTAction &= ~HT_IOT_ACT_FORCED_CTS2SELF;
+ return;
+ }
+ if(pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM)
+ {
+ curTxOkCnt = priv->stats.txbytesunicast - lastTxOkCnt;
+ curRxOkCnt = priv->stats.rxbytesunicast - lastRxOkCnt;
+ if(curRxOkCnt > 4*curTxOkCnt)
+ {
+ pHTInfo->IOTAction &= ~HT_IOT_ACT_FORCED_CTS2SELF;
+ }
+ else
+ {
+ #if 1
+ pHTInfo->IOTAction |= HT_IOT_ACT_FORCED_CTS2SELF;
+ #else
+ if(priv->undecorated_smoothed_pwdb < priv->rtllib->CTSToSelfTH)
+ {
+ pHTInfo->IOTAction &= ~HT_IOT_ACT_FORCED_CTS2SELF;
+ }
+ else if(priv->undecorated_smoothed_pwdb >= (priv->rtllib->CTSToSelfTH+5))
+ {
+ pHTInfo->IOTAction |= HT_IOT_ACT_FORCED_CTS2SELF;
+ }
+ #endif
+ }
+
+ lastTxOkCnt = priv->stats.txbytesunicast;
+ lastRxOkCnt = priv->stats.rxbytesunicast;
+ }
+}
+
+
+static void
+dm_Init_WA_Broadcom_IOT(struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv((struct net_device *)dev);
+ PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo;
+
+ pHTInfo->bWAIotBroadcom = false;
+ pHTInfo->WAIotTH = WAIotTHVal;
+}
+
+#ifdef RTL8192SE
+static void
+dm_WA_Broadcom_IOT(struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv((struct net_device *)dev);
+ PRT_HIGH_THROUGHPUT pHTInfo = priv->rtllib->pHTInfo;
+ u8 update=0;
+ static enum rtllib_state connectState = RTLLIB_NOLINK;
+
+ if( (pHTInfo->bWAIotBroadcom != true) ||
+ (priv->rtllib->mode == WIRELESS_MODE_B) ||
+ (pHTInfo->bCurBW40MHz))
+ {
+ if(pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom)
+ {
+ pHTInfo->IOTAction &= ~HT_IOT_ACT_WA_IOT_Broadcom;
+ update = 1;
+ printk(" dm_WA_Broadcom_IOT(), disable HT_IOT_ACT_WA_IOT_Broadcom\n");
+ }
+ else
+ return;
+ }
+
+ if(connectState == RTLLIB_LINKED && priv->rtllib->state == RTLLIB_LINKED)
+ {
+ if(pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom)
+ {
+ pHTInfo->IOTAction &= ~HT_IOT_ACT_WA_IOT_Broadcom;
+ update = 1;
+ pHTInfo->bWAIotBroadcom = false;
+ printk("dm_WA_Broadcom_IOT(), from connect to disconnected, disable HT_IOT_ACT_WA_IOT_Broadcom\n");
+ }
+ }
+ connectState = priv->rtllib->state;
+
+ if(!update && pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM)
+ {
+ if(priv->undecorated_smoothed_pwdb < pHTInfo->WAIotTH)
+ {
+ if(pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom)
+ {
+ pHTInfo->IOTAction &= ~HT_IOT_ACT_WA_IOT_Broadcom;
+ update = 1;
+ printk("dm_WA_Broadcom_IOT() ==> WA_IOT enable cck rates\n");
+ }
+ }
+ else if(priv->undecorated_smoothed_pwdb >= (priv->rtllib->CTSToSelfTH+5))
+ {
+ if((pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom) == 0)
+ {
+ pHTInfo->IOTAction |= HT_IOT_ACT_WA_IOT_Broadcom;
+ update = 1;
+ printk("dm_WA_Broadcom_IOT() ==> WA_IOT disable cck rates\n");
+ }
+ }
+ }
+
+ if(update){
+ if(priv->rtllib->bUseRAMask){
+ priv->rtllib->UpdateHalRAMaskHandler(
+ dev,
+ false,
+ 0,
+ priv->rtllib->pHTInfo->PeerMimoPs,
+ priv->rtllib->mode,
+ priv->rtllib->pHTInfo->bCurTxBW40MHz,
+ 0);
+ }else{
+ priv->ops->update_ratr_table(dev, priv->rtllib->dot11HTOperationalRateSet, NULL);
+ }
+ priv->rtllib->SetHwRegHandler( dev, HW_VAR_BASIC_RATE, (u8*)(&priv->basic_rate));
+ }
+}
+#endif
+
+
+#if 0
+extern void dm_rf_operation_test_callback(unsigned long dev)
+{
+ u8 erfpath;
+
+
+ for(erfpath=0; erfpath<4; erfpath++)
+ {
+ udelay(100);
+ }
+
+ {
+ }
+
+ {
+#if 0
+ for(i=0; i<50; i++)
+ {
+ PHY_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4d);
+ PHY_SetRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits, 0x4f);
+ PHY_SetRFReg(dev, RF90_PATH_C, 0x02, bMask12Bits, 0x4d);
+ PHY_SetRFReg(dev, RF90_PATH_C, 0x02, bMask12Bits, 0x4f);
+
+#if 0
+ PHY_QueryRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits);
+ PHY_QueryRFReg(dev, RF90_PATH_A, 0x02, bMask12Bits);
+ PHY_QueryRFReg(dev, RF90_PATH_A, 0x12, bMask12Bits);
+ PHY_QueryRFReg(dev, RF90_PATH_A, 0x12, bMask12Bits);
+ PHY_QueryRFReg(dev, RF90_PATH_A, 0x21, bMask12Bits);
+ PHY_QueryRFReg(dev, RF90_PATH_A, 0x21, bMask12Bits);
+#endif
+ }
+#endif
+ }
+
+}
+#endif
+
+#if 0
+static void dm_check_rfctrl_gpio(struct net_device * dev)
+{
+#ifdef RTL8192E
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+
+
+#ifdef RTL8190P
+ return;
+#endif
+#ifdef RTL8192U
+ return;
+#endif
+#ifdef RTL8192E
+ queue_delayed_work_rsl(priv->priv_wq,&priv->gpio_change_rf_wq,0);
+#endif
+
+}
+
+#endif
+static void dm_check_pbc_gpio(struct net_device *dev)
+{
+#ifdef RTL8192U
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 tmp1byte;
+
+
+ tmp1byte = read_nic_byte(dev,GPI);
+ if(tmp1byte == 0xff)
+ return;
+
+ if (tmp1byte&BIT6 || tmp1byte&BIT0)
+ {
+ RT_TRACE(COMP_IO, "CheckPbcGPIO - PBC is pressed\n");
+ priv->bpbc_pressed = true;
+ }
+#endif
+
+}
+
+#ifdef RTL8192E
+
+extern void dm_CheckRfCtrlGPIO(void *data)
+{
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20))
+ struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,gpio_change_rf_wq);
+ struct net_device *dev = priv->rtllib->dev;
+#else
+ struct r8192_priv *priv = rtllib_priv((struct net_device *)data);
+ struct net_device *dev = priv->rtllib->dev;
+#endif
+ u8 tmp1byte;
+ RT_RF_POWER_STATE eRfPowerStateToSet;
+ bool bActuallySet = false;
+
+ char *argv[3];
+ static char *RadioPowerPath = "/etc/acpi/events/RadioPower.sh";
+ static char *envp[] = {"HOME=/", "TERM=linux", "PATH=/usr/bin:/bin", NULL};
+
+ bActuallySet=false;
+
+ if((priv->up_first_time == 1) || (priv->being_init_adapter))
+ {
+ return;
+ }
+
+ if(priv->bfirst_after_down){
+ priv->bfirst_after_down = 1;
+ return;
+ }
+
+
+
+ {
+ tmp1byte = read_nic_byte(dev,GPI);
+
+ eRfPowerStateToSet = (tmp1byte&BIT1) ? eRfOn : eRfOff;
+
+ if( (priv->bHwRadioOff == true) && (eRfPowerStateToSet == eRfOn))
+ {
+ RT_TRACE(COMP_RF, "gpiochangeRF - HW Radio ON\n");
+ printk("gpiochangeRF - HW Radio ON\n");
+ priv->bHwRadioOff = false;
+ bActuallySet = true;
+ }
+ else if ( (priv->bHwRadioOff == false) && (eRfPowerStateToSet == eRfOff))
+ {
+ RT_TRACE(COMP_RF, "gpiochangeRF - HW Radio OFF\n");
+ printk("gpiochangeRF - HW Radio OFF\n");
+ priv->bHwRadioOff = true;
+ bActuallySet = true;
+ }
+
+ if(bActuallySet)
+ {
+ mdelay(1000);
+ priv->bHwRfOffAction = 1;
+ MgntActSet_RF_State(dev, eRfPowerStateToSet, RF_CHANGE_BY_HW);
+ {
+ if(priv->bHwRadioOff == true)
+ argv[1] = "RFOFF";
+ else
+ argv[1] = "RFON";
+
+ argv[0] = RadioPowerPath;
+ argv[2] = NULL;
+ call_usermodehelper(RadioPowerPath,argv,envp,1);
+ }
+
+ }
+#if 0
+ else
+ {
+ msleep(2000);
+ }
+#endif
+
+ }
+
+}
+#elif defined RTL8192SE
+extern void Power_DomainInit92SE(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 tmpU1b;
+ u16 tmpU2b;
+
+
+
+ priv->PwrDomainProtect = true;
+
+ tmpU1b = read_nic_byte(dev, (SYS_CLKR + 1));
+ if(tmpU1b & BIT7)
+ {
+ tmpU1b &= ~(BIT6 | BIT7);
+ if(!HalSetSysClk8192SE(dev, tmpU1b)){
+ priv->PwrDomainProtect = false;
+ return;
+ }
+ }
+
+ write_nic_byte(dev, AFE_PLL_CTRL, 0x0);
+ write_nic_byte(dev, LDOA15_CTRL, 0x34);
+
+#if 0
+ tmpU2b = read_nic_word(dev, SYS_CLKR);
+ if (tmpU2b & BIT15)
+ {
+ tmpU2b &= ~(BIT14|BIT15);
+ RT_TRACE(COMP_INIT, DBG_LOUD, ("Return to HW CTRL\n"));
+ write_nic_word(dev, SYS_CLKR, tmpU2b);
+ }
+ udelay(200);
+#endif
+
+ tmpU1b = read_nic_byte(dev, SYS_FUNC_EN+1);
+ if (priv->rtllib->RfOffReason & (RF_CHANGE_BY_IPS | RF_CHANGE_BY_HW)) {
+ tmpU1b &= 0xFB;
+ } else {
+ tmpU1b &= 0x73;
+ }
+
+ write_nic_byte(dev, SYS_FUNC_EN+1, tmpU1b);
+ udelay(1000);
+
+ write_nic_byte(dev, CMDR, 0);
+ write_nic_byte(dev, TCR, 0);
+
+ tmpU1b = read_nic_byte(dev, 0x562);
+ tmpU1b |= 0x08;
+ write_nic_byte(dev, 0x562, tmpU1b);
+ tmpU1b &= ~(BIT3);
+ write_nic_byte(dev, 0x562, tmpU1b);
+
+ tmpU1b = read_nic_byte(dev, AFE_XTAL_CTRL);
+ write_nic_byte(dev, AFE_XTAL_CTRL, (tmpU1b|0x01));
+ udelay(1500);
+ tmpU1b = read_nic_byte(dev, AFE_XTAL_CTRL+1);
+ write_nic_byte(dev, AFE_XTAL_CTRL+1, (tmpU1b&0xfb));
+
+
+ tmpU1b = read_nic_byte(dev, AFE_MISC);
+ write_nic_byte(dev, AFE_MISC, (tmpU1b|BIT0));
+ udelay(1000);
+
+ tmpU1b = read_nic_byte(dev, AFE_MISC);
+ write_nic_byte(dev, AFE_MISC, (tmpU1b|0x02));
+ udelay(1000);
+
+ tmpU1b = read_nic_byte(dev, LDOA15_CTRL);
+ write_nic_byte(dev, LDOA15_CTRL, (tmpU1b|BIT0));
+
+ tmpU2b = read_nic_word(dev, SYS_ISO_CTRL);
+ write_nic_word(dev, SYS_ISO_CTRL, (tmpU2b|BIT11));
+
+
+ tmpU2b = read_nic_word(dev, SYS_FUNC_EN);
+ write_nic_word(dev, SYS_FUNC_EN, (tmpU2b |BIT13));
+
+ write_nic_byte(dev, SYS_ISO_CTRL+1, 0x68);
+
+ tmpU1b = read_nic_byte(dev, AFE_PLL_CTRL);
+ write_nic_byte(dev, AFE_PLL_CTRL, (tmpU1b|BIT0|BIT4));
+ tmpU1b = read_nic_byte(dev, AFE_PLL_CTRL+1);
+ write_nic_byte(dev, AFE_PLL_CTRL+1, (tmpU1b|BIT0));
+ udelay(1000);
+
+ write_nic_byte(dev, SYS_ISO_CTRL, 0xA6);
+
+ tmpU2b = read_nic_word(dev, SYS_CLKR);
+ write_nic_word(dev, SYS_CLKR, (tmpU2b|BIT12|BIT11));
+
+ tmpU2b = read_nic_word(dev, SYS_FUNC_EN);
+ write_nic_word(dev, SYS_FUNC_EN, (tmpU2b|BIT11));
+ write_nic_word(dev, SYS_FUNC_EN, (tmpU2b|BIT11|BIT15));
+
+ tmpU2b = read_nic_word(dev, SYS_CLKR);
+ write_nic_word(dev, SYS_CLKR, (tmpU2b&(~BIT2)));
+
+ tmpU1b = read_nic_byte(dev, (SYS_CLKR + 1));
+ tmpU1b = ((tmpU1b | BIT7) & (~BIT6));
+ if(!HalSetSysClk8192SE(dev, tmpU1b))
+ {
+ priv->PwrDomainProtect = false;
+ return;
+ }
+#if 0
+ tmpU2b = read_nic_word(dev, SYS_CLKR);
+ write_nic_word(dev, SYS_CLKR, ((tmpU2b|BIT15)&(~BIT14)));
+#endif
+
+ write_nic_word(dev, CMDR, 0x37FC);
+
+ gen_RefreshLedState(dev);
+
+ priv->PwrDomainProtect = false;
+
+}
+
+void SET_RTL8192SE_RF_HALT(struct net_device *dev)
+{
+ u8 u1bTmp;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(priv->rtllib->RfOffReason == RF_CHANGE_BY_IPS && priv->LedStrategy == SW_LED_MODE8)
+ {
+ SET_RTL8192SE_RF_SLEEP(dev);
+ return;
+ }
+
+ u1bTmp = read_nic_byte(dev, LDOV12D_CTRL);
+ u1bTmp |= BIT0;
+ write_nic_byte(dev, LDOV12D_CTRL, u1bTmp);
+ write_nic_byte(dev, SPS1_CTRL, 0x0);
+ write_nic_byte(dev, TXPAUSE, 0xFF);
+ write_nic_word(dev, CMDR, 0x57FC);
+ udelay(100);
+ write_nic_word(dev, CMDR, 0x77FC);
+ write_nic_byte(dev, PHY_CCA, 0x0);
+ udelay(10);
+ write_nic_word(dev, CMDR, 0x37FC);
+ udelay(10);
+ write_nic_word(dev, CMDR, 0x77FC);
+ udelay(10);
+ write_nic_word(dev, CMDR, 0x57FC);
+ write_nic_word(dev, CMDR, 0x0000);
+ u1bTmp = read_nic_byte(dev, (SYS_CLKR + 1));
+ if(u1bTmp & BIT7)
+ {
+ u1bTmp &= ~(BIT6 | BIT7);
+ if(!HalSetSysClk8192SE(dev, u1bTmp))
+ return;
+ }
+ if(priv->rtllib->RfOffReason==RF_CHANGE_BY_IPS )
+ {
+ write_nic_byte(dev, 0x03, 0xF9);
+ }
+ else
+ {
+ write_nic_byte(dev, 0x03, 0x71);
+ }
+ write_nic_byte(dev, SYS_CLKR+1, 0x70);
+ write_nic_byte(dev, AFE_PLL_CTRL+1, 0x68);
+ write_nic_byte(dev, AFE_PLL_CTRL, 0x00);
+ write_nic_byte(dev, LDOA15_CTRL, 0x34);
+ write_nic_byte(dev, AFE_XTAL_CTRL, 0x0E);
+
+}
+
+u8 RfOnOffDetect(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 u1Tmp;
+ u8 retval=eRfOn;
+
+ if(priv->pwrdown)
+ {
+ u1Tmp = read_nic_byte(dev, 0x06);
+ printk("pwrdown, 0x6(BIT6)=%02x\n", u1Tmp);
+ retval = (u1Tmp & BIT6) ? eRfOn: eRfOff;
+ }
+ else
+ {
+#ifdef CONFIG_BT_COEXIST
+ if(pHalData->bt_coexist.BluetoothCoexist)
+ {
+ if(pHalData->bt_coexist.BT_CoexistType == BT_2Wire)
+ {
+ PlatformEFIOWrite1Byte(pAdapter, MAC_PINMUX_CFG, 0xa);
+ u1Tmp = PlatformEFIORead1Byte(pAdapter, GPIO_IO_SEL);
+ delay_us(100);
+ u1Tmp = PlatformEFIORead1Byte(pAdapter, GPIO_IN);
+ RTPRINT(FPWR, PWRHW, ("GPIO_IN=%02x\n", u1Tmp));
+ retval = (u1Tmp & HAL_8192S_HW_GPIO_OFF_BIT) ? eRfOn : eRfOff;
+ }
+ else if( (pHalData->bt_coexist.BT_CoexistType == BT_ISSC_3Wire) ||
+ (pHalData->bt_coexist.BT_CoexistType == BT_Accel) ||
+ (pHalData->bt_coexist.BT_CoexistType == BT_CSR) )
+ {
+ u4tmp = PHY_QueryBBReg(pAdapter, 0x87c, bMaskDWord);
+ if((u4tmp & BIT17) != 0)
+ {
+ PHY_SetBBReg(pAdapter, 0x87c, bMaskDWord, u4tmp & ~BIT17);
+ delay_us(50);
+ RTPRINT(FBT, BT_RFPoll, ("BT write 0x87c (~BIT17) = 0x%x\n", u4tmp &~BIT17));
+ }
+ u4tmp = PHY_QueryBBReg(pAdapter, 0x8e0, bMaskDWord);
+ RTPRINT(FBT, BT_RFPoll, ("BT read 0x8e0 (BIT24)= 0x%x\n", u4tmp));
+ retval = (u4tmp & BIT24) ? eRfOn : eRfOff;
+ RTPRINT(FBT, BT_RFPoll, ("BT check RF state to %s\n", (retval==eRfOn)? "ON":"OFF"));
+ }
+ }
+ else
+#endif
+ {
+ write_nic_byte(dev, MAC_PINMUX_CFG, (GPIOMUX_EN | GPIOSEL_GPIO));
+ u1Tmp = read_nic_byte(dev, GPIO_IO_SEL);
+
+ u1Tmp &= HAL_8192S_HW_GPIO_OFF_MASK;
+ write_nic_byte(dev, GPIO_IO_SEL, u1Tmp);
+
+ mdelay(10);
+
+ u1Tmp = read_nic_byte(dev, GPIO_IN);
+ retval = (u1Tmp & HAL_8192S_HW_GPIO_OFF_BIT) ? eRfOn : eRfOff;
+ }
+ }
+
+ return retval;
+}
+
+extern void dm_CheckRfCtrlGPIO(void *data)
+{
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20))
+ struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,gpio_change_rf_wq);
+ struct net_device *dev = priv->rtllib->dev;
+#else
+ struct net_device *dev = (struct net_device *)data;
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+
+ RT_RF_POWER_STATE eRfPowerStateToSet, CurRfState;
+ bool bActuallySet = false;
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+ unsigned long flag = 0;
+ bool turnonbypowerdomain = false;
+
+
+#ifdef CONFIG_RTL_RFKILL
+ return;
+#endif
+ if((priv->up_first_time == 1) || (priv->being_init_adapter))
+ {
+ ;
+ return;
+ }
+
+ if(priv->ResetProgress == RESET_TYPE_SILENT)
+ {
+ RT_TRACE((COMP_INIT | COMP_POWER | COMP_RF), "GPIOChangeRFWorkItemCallBack(): Silent Reseting!!!!!!!\n");
+ return;
+ }
+
+
+ if (pPSC->bSwRfProcessing)
+ {
+ RT_TRACE(COMP_SCAN, "GPIOChangeRFWorkItemCallBack(): Rf is in switching state.\n");
+ return;
+ }
+
+ RT_TRACE(COMP_RF, "GPIOChangeRFWorkItemCallBack() ---------> \n");
+
+ spin_lock_irqsave(&priv->rf_ps_lock,flag);
+ if (priv->RFChangeInProgress) {
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flag);
+ RT_TRACE(COMP_RF, "GPIOChangeRFWorkItemCallBack(): RF Change in progress! \n");
+ return;
+ } else {
+ priv->RFChangeInProgress = true;
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flag);
+ }
+ CurRfState = priv->rtllib->eRFPowerState;
+#ifdef CONFIG_ASPM_OR_D3
+ if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM))
+ {
+ RT_DISABLE_ASPM(dev);
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM);
+ }
+ else if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3))
+ {
+#ifdef TODO
+ RT_LEAVE_D3(dev, false);
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3);
+#endif
+ }
+
+#endif
+ if(RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC))
+ {
+ Power_DomainInit92SE(dev);
+ turnonbypowerdomain = true;
+ }
+
+ eRfPowerStateToSet = RfOnOffDetect(dev);
+ if (priv->bResetInProgress) {
+ spin_lock_irqsave(&priv->rf_ps_lock,flag);
+ priv->RFChangeInProgress = false;
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flag);
+ return;
+ }
+
+ if( (priv->bHwRadioOff == true) && \
+ (((eRfPowerStateToSet == eRfOn)&&(priv->sw_radio_on == true))
+#ifdef CONFIG_RTLWIFI_DEBUGFS
+ ||priv->debug->hw_holding
+#endif
+ ))
+ {
+ RT_TRACE(COMP_RF, "GPIOChangeRF - HW Radio ON, RF ON\n");
+ printk("GPIOChangeRF - HW Radio ON, RF ON\n");
+ eRfPowerStateToSet = eRfOn;
+ bActuallySet = true;
+ } else if ((priv->bHwRadioOff == false) &&
+ ((eRfPowerStateToSet == eRfOff) || (priv->sw_radio_on == false)))
+ {
+ RT_TRACE(COMP_RF, "GPIOChangeRF - HW Radio OFF\n");
+ printk("GPIOChangeRF - HW Radio OFF\n");
+ eRfPowerStateToSet = eRfOff;
+ bActuallySet = true;
+ }
+
+ if (bActuallySet) {
+ priv->bHwRfOffAction = 1;
+#ifdef CONFIG_ASPM_OR_D3
+ if(eRfPowerStateToSet == eRfOn)
+ {
+ if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM))
+ {
+ RT_DISABLE_ASPM(dev);
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM);
+ }
+#ifdef TODO
+ else if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3))
+ {
+ RT_LEAVE_D3(dev, false);
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3);
+ }
+#endif
+ }
+#endif
+ spin_lock_irqsave(&priv->rf_ps_lock,flag);
+ priv->RFChangeInProgress = false;
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flag);
+ MgntActSet_RF_State(dev, eRfPowerStateToSet, RF_CHANGE_BY_HW);
+
+ {
+#ifdef CONFIG_CFG_80211
+ struct wireless_dev *wdev = &priv->rtllib->wdev;
+ wiphy_rfkill_set_hw_state(wdev->wiphy, priv->bHwRadioOff);
+#else
+ char *argv[3];
+ static char *RadioPowerPath = "/etc/acpi/events/RadioPower.sh";
+ static char *envp[] = {"HOME=/", "TERM=linux", "PATH=/usr/bin:/bin", NULL};
+
+ if(priv->bHwRadioOff == true)
+ argv[1] = "RFOFF";
+ else
+ argv[1] = "RFON";
+
+ argv[0] = RadioPowerPath;
+ argv[2] = NULL;
+ call_usermodehelper(RadioPowerPath,argv,envp,1);
+
+#endif
+ }
+
+ if(eRfPowerStateToSet == eRfOff)
+ {
+ if(priv->pwrdown){
+
+ write_nic_byte(dev, SYS_FUNC_EN+1, 0x31);
+ }
+#ifdef CONFIG_ASPM_OR_D3
+ if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM)
+ {
+ RT_ENABLE_ASPM(dev);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM);
+ }
+#ifdef TODO
+ else if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3)
+ {
+ RT_ENTER_D3(dev, false);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3);
+ }
+#endif
+#endif
+ }
+ }
+ else if(eRfPowerStateToSet == eRfOff || CurRfState == eRfOff || priv->bDriverIsGoingToUnload)
+ {
+
+ if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_HALT_NIC && turnonbypowerdomain)
+ {
+ PHY_SetRtl8192seRfHalt(dev);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC);
+ }
+#ifdef CONFIG_ASPM_OR_D3
+ if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM)
+ {
+ RT_ENABLE_ASPM(dev);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM);
+ }
+#ifdef TODO
+ else if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3)
+ {
+ RT_ENTER_D3(dev, false);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3);
+ }
+#endif
+#endif
+ spin_lock_irqsave(&priv->rf_ps_lock,flag);
+ priv->RFChangeInProgress = false;
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flag);
+ }
+ else
+ {
+ spin_lock_irqsave(&priv->rf_ps_lock,flag);
+ priv->RFChangeInProgress = false;
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flag);
+ }
+ RT_TRACE(COMP_RF, "GPIOChangeRFWorkItemCallBack() <--------- \n");
+}
+#endif
+void dm_rf_pathcheck_workitemcallback(void *data)
+{
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20))
+ struct r8192_priv *priv = container_of_dwork_rsl(data,struct r8192_priv,rfpath_check_wq);
+ struct net_device *dev =priv->rtllib->dev;
+#else
+ struct net_device *dev = (struct net_device *)data;
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+ u8 rfpath = 0, i;
+
+
+ rfpath = read_nic_byte(dev, 0xc04);
+
+ for (i = 0; i < RF90_PATH_MAX; i++)
+ {
+ if (rfpath & (0x01<<i))
+ priv->brfpath_rxenable[i] = 1;
+ else
+ priv->brfpath_rxenable[i] = 0;
+ }
+ if(!DM_RxPathSelTable.Enable)
+ return;
+
+ dm_rxpath_sel_byrssi(dev);
+}
+
+static void dm_init_rxpath_selection(struct net_device * dev)
+{
+ u8 i;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ DM_RxPathSelTable.Enable = 1;
+ DM_RxPathSelTable.SS_TH_low = RxPathSelection_SS_TH_low;
+ DM_RxPathSelTable.diff_TH = RxPathSelection_diff_TH;
+ if(priv->CustomerID == RT_CID_819x_Netcore)
+ DM_RxPathSelTable.cck_method = CCK_Rx_Version_2;
+ else
+ DM_RxPathSelTable.cck_method = CCK_Rx_Version_1;
+ DM_RxPathSelTable.DbgMode = DM_DBG_OFF;
+ DM_RxPathSelTable.disabledRF = 0;
+ for(i=0; i<4; i++)
+ {
+ DM_RxPathSelTable.rf_rssi[i] = 50;
+ DM_RxPathSelTable.cck_pwdb_sta[i] = -64;
+ DM_RxPathSelTable.rf_enable_rssi_th[i] = 100;
+ }
+}
+
+static void dm_rxpath_sel_byrssi(struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 i, max_rssi_index=0, min_rssi_index=0, sec_rssi_index=0, rf_num=0;
+ u8 tmp_max_rssi=0, tmp_min_rssi=0, tmp_sec_rssi=0;
+ u8 cck_default_Rx=0x2;
+ u8 cck_optional_Rx=0x3;
+ long tmp_cck_max_pwdb=0, tmp_cck_min_pwdb=0, tmp_cck_sec_pwdb=0;
+ u8 cck_rx_ver2_max_index=0, cck_rx_ver2_min_index=0, cck_rx_ver2_sec_index=0;
+ u8 cur_rf_rssi;
+ long cur_cck_pwdb;
+ static u8 disabled_rf_cnt=0, cck_Rx_Path_initialized=0;
+ u8 update_cck_rx_path;
+
+ if(priv->rf_type != RF_2T4R)
+ return;
+
+ if(!cck_Rx_Path_initialized)
+ {
+ DM_RxPathSelTable.cck_Rx_path = (read_nic_byte(dev, 0xa07)&0xf);
+ cck_Rx_Path_initialized = 1;
+ }
+
+ DM_RxPathSelTable.disabledRF = 0xf;
+ DM_RxPathSelTable.disabledRF &=~ (read_nic_byte(dev, 0xc04));
+
+ if(priv->rtllib->mode == WIRELESS_MODE_B)
+ {
+ DM_RxPathSelTable.cck_method = CCK_Rx_Version_2;
+ }
+
+ for (i=0; i<RF90_PATH_MAX; i++)
+ {
+ if(!DM_RxPathSelTable.DbgMode)
+ DM_RxPathSelTable.rf_rssi[i] = priv->stats.rx_rssi_percentage[i];
+
+ if(priv->brfpath_rxenable[i])
+ {
+ rf_num++;
+ cur_rf_rssi = DM_RxPathSelTable.rf_rssi[i];
+
+ if(rf_num == 1)
+ {
+ max_rssi_index = min_rssi_index = sec_rssi_index = i;
+ tmp_max_rssi = tmp_min_rssi = tmp_sec_rssi = cur_rf_rssi;
+ }
+ else if(rf_num == 2)
+ {
+ if(cur_rf_rssi >= tmp_max_rssi)
+ {
+ tmp_max_rssi = cur_rf_rssi;
+ max_rssi_index = i;
+ }
+ else
+ {
+ tmp_sec_rssi = tmp_min_rssi = cur_rf_rssi;
+ sec_rssi_index = min_rssi_index = i;
+ }
+ }
+ else
+ {
+ if(cur_rf_rssi > tmp_max_rssi)
+ {
+ tmp_sec_rssi = tmp_max_rssi;
+ sec_rssi_index = max_rssi_index;
+ tmp_max_rssi = cur_rf_rssi;
+ max_rssi_index = i;
+ }
+ else if(cur_rf_rssi == tmp_max_rssi)
+ {
+ tmp_sec_rssi = cur_rf_rssi;
+ sec_rssi_index = i;
+ }
+ else if((cur_rf_rssi < tmp_max_rssi) &&(cur_rf_rssi > tmp_sec_rssi))
+ {
+ tmp_sec_rssi = cur_rf_rssi;
+ sec_rssi_index = i;
+ }
+ else if(cur_rf_rssi == tmp_sec_rssi)
+ {
+ if(tmp_sec_rssi == tmp_min_rssi)
+ {
+ tmp_sec_rssi = cur_rf_rssi;
+ sec_rssi_index = i;
+ }
+ else
+ {
+ }
+ }
+ else if((cur_rf_rssi < tmp_sec_rssi) && (cur_rf_rssi > tmp_min_rssi))
+ {
+ }
+ else if(cur_rf_rssi == tmp_min_rssi)
+ {
+ if(tmp_sec_rssi == tmp_min_rssi)
+ {
+ tmp_min_rssi = cur_rf_rssi;
+ min_rssi_index = i;
+ }
+ else
+ {
+ }
+ }
+ else if(cur_rf_rssi < tmp_min_rssi)
+ {
+ tmp_min_rssi = cur_rf_rssi;
+ min_rssi_index = i;
+ }
+ }
+ }
+ }
+
+ rf_num = 0;
+ if(DM_RxPathSelTable.cck_method == CCK_Rx_Version_2)
+ {
+ for (i=0; i<RF90_PATH_MAX; i++)
+ {
+ if(priv->brfpath_rxenable[i])
+ {
+ rf_num++;
+ cur_cck_pwdb = DM_RxPathSelTable.cck_pwdb_sta[i];
+
+ if(rf_num == 1)
+ {
+ cck_rx_ver2_max_index = cck_rx_ver2_min_index = cck_rx_ver2_sec_index = i;
+ tmp_cck_max_pwdb = tmp_cck_min_pwdb = tmp_cck_sec_pwdb = cur_cck_pwdb;
+ }
+ else if(rf_num == 2)
+ {
+ if(cur_cck_pwdb >= tmp_cck_max_pwdb)
+ {
+ tmp_cck_max_pwdb = cur_cck_pwdb;
+ cck_rx_ver2_max_index = i;
+ }
+ else
+ {
+ tmp_cck_sec_pwdb = tmp_cck_min_pwdb = cur_cck_pwdb;
+ cck_rx_ver2_sec_index = cck_rx_ver2_min_index = i;
+ }
+ }
+ else
+ {
+ if(cur_cck_pwdb > tmp_cck_max_pwdb)
+ {
+ tmp_cck_sec_pwdb = tmp_cck_max_pwdb;
+ cck_rx_ver2_sec_index = cck_rx_ver2_max_index;
+ tmp_cck_max_pwdb = cur_cck_pwdb;
+ cck_rx_ver2_max_index = i;
+ }
+ else if(cur_cck_pwdb == tmp_cck_max_pwdb)
+ {
+ tmp_cck_sec_pwdb = cur_cck_pwdb;
+ cck_rx_ver2_sec_index = i;
+ }
+ else if((cur_cck_pwdb < tmp_cck_max_pwdb) &&(cur_cck_pwdb > tmp_cck_sec_pwdb))
+ {
+ tmp_cck_sec_pwdb = cur_cck_pwdb;
+ cck_rx_ver2_sec_index = i;
+ }
+ else if(cur_cck_pwdb == tmp_cck_sec_pwdb)
+ {
+ if(tmp_cck_sec_pwdb == tmp_cck_min_pwdb)
+ {
+ tmp_cck_sec_pwdb = cur_cck_pwdb;
+ cck_rx_ver2_sec_index = i;
+ }
+ else
+ {
+ }
+ }
+ else if((cur_cck_pwdb < tmp_cck_sec_pwdb) && (cur_cck_pwdb > tmp_cck_min_pwdb))
+ {
+ }
+ else if(cur_cck_pwdb == tmp_cck_min_pwdb)
+ {
+ if(tmp_cck_sec_pwdb == tmp_cck_min_pwdb)
+ {
+ tmp_cck_min_pwdb = cur_cck_pwdb;
+ cck_rx_ver2_min_index = i;
+ }
+ else
+ {
+ }
+ }
+ else if(cur_cck_pwdb < tmp_cck_min_pwdb)
+ {
+ tmp_cck_min_pwdb = cur_cck_pwdb;
+ cck_rx_ver2_min_index = i;
+ }
+ }
+
+ }
+ }
+ }
+
+
+ update_cck_rx_path = 0;
+ if(DM_RxPathSelTable.cck_method == CCK_Rx_Version_2)
+ {
+ cck_default_Rx = cck_rx_ver2_max_index;
+ cck_optional_Rx = cck_rx_ver2_sec_index;
+ if(tmp_cck_max_pwdb != -64)
+ update_cck_rx_path = 1;
+ }
+
+ if(tmp_min_rssi < DM_RxPathSelTable.SS_TH_low && disabled_rf_cnt < 2)
+ {
+ if((tmp_max_rssi - tmp_min_rssi) >= DM_RxPathSelTable.diff_TH)
+ {
+ DM_RxPathSelTable.rf_enable_rssi_th[min_rssi_index] = tmp_max_rssi+5;
+ rtl8192_setBBreg(dev, rOFDM0_TRxPathEnable, 0x1<<min_rssi_index, 0x0);
+ rtl8192_setBBreg(dev, rOFDM1_TRxPathEnable, 0x1<<min_rssi_index, 0x0);
+ disabled_rf_cnt++;
+ }
+ if(DM_RxPathSelTable.cck_method == CCK_Rx_Version_1)
+ {
+ cck_default_Rx = max_rssi_index;
+ cck_optional_Rx = sec_rssi_index;
+ if(tmp_max_rssi)
+ update_cck_rx_path = 1;
+ }
+ }
+
+ if(update_cck_rx_path)
+ {
+ DM_RxPathSelTable.cck_Rx_path = (cck_default_Rx<<2)|(cck_optional_Rx);
+ rtl8192_setBBreg(dev, rCCK0_AFESetting, 0x0f000000, DM_RxPathSelTable.cck_Rx_path);
+ }
+
+ if(DM_RxPathSelTable.disabledRF)
+ {
+ for(i=0; i<4; i++)
+ {
+ if((DM_RxPathSelTable.disabledRF>>i) & 0x1)
+ {
+ if(tmp_max_rssi >= DM_RxPathSelTable.rf_enable_rssi_th[i])
+ {
+ rtl8192_setBBreg(dev, rOFDM0_TRxPathEnable, 0x1<<i, 0x1);
+ rtl8192_setBBreg(dev, rOFDM1_TRxPathEnable, 0x1<<i, 0x1);
+ DM_RxPathSelTable.rf_enable_rssi_th[i] = 100;
+ disabled_rf_cnt--;
+ }
+ }
+ }
+ }
+}
+
+static void dm_check_rx_path_selection(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ queue_delayed_work_rsl(priv->priv_wq,&priv->rfpath_check_wq,0);
+}
+
+
+static void dm_init_fsync (struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ priv->rtllib->fsync_time_interval = 500;
+ priv->rtllib->fsync_rate_bitmap = 0x0f000800;
+ priv->rtllib->fsync_rssi_threshold = 30;
+#ifdef RTL8190P
+ priv->rtllib->bfsync_enable = true;
+#elif defined RTL8192E || defined RTL8192SE
+ priv->rtllib->bfsync_enable = false;
+#endif
+ priv->rtllib->fsync_multiple_timeinterval = 3;
+ priv->rtllib->fsync_firstdiff_ratethreshold= 100;
+ priv->rtllib->fsync_seconddiff_ratethreshold= 200;
+ priv->rtllib->fsync_state = Default_Fsync;
+
+#ifdef RTL8192SE
+ priv->framesyncMonitor = 0;
+#elif defined RTL8192E || defined RTL8190P
+ priv->framesyncMonitor = 1;
+#endif
+
+ setup_timer(&priv->fsync_timer, dm_fsync_timer_callback,(unsigned long) dev);
+}
+
+
+static void dm_deInit_fsync(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ del_timer_sync(&priv->fsync_timer);
+}
+
+extern void dm_fsync_timer_callback(unsigned long data)
+{
+ struct net_device *dev = (struct net_device *)data;
+ struct r8192_priv *priv = rtllib_priv((struct net_device *)data);
+ u32 rate_index, rate_count = 0, rate_count_diff=0;
+ bool bSwitchFromCountDiff = false;
+ bool bDoubleTimeInterval = false;
+
+ if( priv->rtllib->state == RTLLIB_LINKED &&
+ priv->rtllib->bfsync_enable &&
+ (priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_CDD_FSYNC))
+ {
+ u32 rate_bitmap;
+ for(rate_index = 0; rate_index <= 27; rate_index++)
+ {
+ rate_bitmap = 1 << rate_index;
+ if(priv->rtllib->fsync_rate_bitmap & rate_bitmap)
+ rate_count+= priv->stats.received_rate_histogram[1][rate_index];
+ }
+
+ if(rate_count < priv->rate_record)
+ rate_count_diff = 0xffffffff - rate_count + priv->rate_record;
+ else
+ rate_count_diff = rate_count - priv->rate_record;
+ if(rate_count_diff < priv->rateCountDiffRecord)
+ {
+
+ u32 DiffNum = priv->rateCountDiffRecord - rate_count_diff;
+ if(DiffNum >= priv->rtllib->fsync_seconddiff_ratethreshold)
+ priv->ContiuneDiffCount++;
+ else
+ priv->ContiuneDiffCount = 0;
+
+ if(priv->ContiuneDiffCount >=2)
+ {
+ bSwitchFromCountDiff = true;
+ priv->ContiuneDiffCount = 0;
+ }
+ }
+ else
+ {
+ priv->ContiuneDiffCount = 0;
+ }
+
+ if(rate_count_diff <= priv->rtllib->fsync_firstdiff_ratethreshold)
+ {
+ bSwitchFromCountDiff = true;
+ priv->ContiuneDiffCount = 0;
+ }
+ priv->rate_record = rate_count;
+ priv->rateCountDiffRecord = rate_count_diff;
+ RT_TRACE(COMP_HALDM, "rateRecord %d rateCount %d, rateCountdiff %d bSwitchFsync %d\n", priv->rate_record, rate_count, rate_count_diff , priv->bswitch_fsync);
+ if(priv->undecorated_smoothed_pwdb > priv->rtllib->fsync_rssi_threshold && bSwitchFromCountDiff)
+ {
+ bDoubleTimeInterval = true;
+ priv->bswitch_fsync = !priv->bswitch_fsync;
+ if(priv->bswitch_fsync)
+ {
+ #ifdef RTL8190P
+ write_nic_byte(dev,0xC36, 0x00);
+#elif defined RTL8192E
+ write_nic_byte(dev,0xC36, 0x1c);
+ #endif
+ write_nic_byte(dev, 0xC3e, 0x90);
+ }
+ else
+ {
+ #ifdef RTL8190P
+ write_nic_byte(dev, 0xC36, 0x40);
+ #else
+ write_nic_byte(dev, 0xC36, 0x5c);
+ #endif
+ write_nic_byte(dev, 0xC3e, 0x96);
+ }
+ }
+ else if(priv->undecorated_smoothed_pwdb <= priv->rtllib->fsync_rssi_threshold)
+ {
+ if(priv->bswitch_fsync)
+ {
+ priv->bswitch_fsync = false;
+ #ifdef RTL8190P
+ write_nic_byte(dev, 0xC36, 0x40);
+#elif defined RTL8192E
+ write_nic_byte(dev, 0xC36, 0x5c);
+ #endif
+ write_nic_byte(dev, 0xC3e, 0x96);
+ }
+ }
+ if(bDoubleTimeInterval){
+ if(timer_pending(&priv->fsync_timer))
+ del_timer_sync(&priv->fsync_timer);
+ priv->fsync_timer.expires = jiffies + MSECS(priv->rtllib->fsync_time_interval*priv->rtllib->fsync_multiple_timeinterval);
+ add_timer(&priv->fsync_timer);
+ }
+ else{
+ if(timer_pending(&priv->fsync_timer))
+ del_timer_sync(&priv->fsync_timer);
+ priv->fsync_timer.expires = jiffies + MSECS(priv->rtllib->fsync_time_interval);
+ add_timer(&priv->fsync_timer);
+ }
+ }
+ else
+ {
+ if(priv->bswitch_fsync)
+ {
+ priv->bswitch_fsync = false;
+ #ifdef RTL8190P
+ write_nic_byte(dev, 0xC36, 0x40);
+#elif defined RTL8192E
+ write_nic_byte(dev, 0xC36, 0x5c);
+ #endif
+ write_nic_byte(dev, 0xC3e, 0x96);
+ }
+ priv->ContiuneDiffCount = 0;
+ #ifdef RTL8190P
+ write_nic_dword(dev, rOFDM0_RxDetector2, 0x164052cd);
+#elif defined RTL8192E
+ write_nic_dword(dev, rOFDM0_RxDetector2, 0x465c52cd);
+ #endif
+ }
+ RT_TRACE(COMP_HALDM, "ContiuneDiffCount %d\n", priv->ContiuneDiffCount);
+ RT_TRACE(COMP_HALDM, "rateRecord %d rateCount %d, rateCountdiff %d bSwitchFsync %d\n", priv->rate_record, rate_count, rate_count_diff , priv->bswitch_fsync);
+}
+
+static void dm_StartHWFsync(struct net_device *dev)
+{
+ RT_TRACE(COMP_HALDM, "%s\n", __FUNCTION__);
+#if defined RTL8192E
+ write_nic_dword(dev, rOFDM0_RxDetector2, 0x465c12cf);
+ write_nic_byte(dev, 0xc3b, 0x41);
+#elif defined RTL8192SE
+ write_nic_byte(dev, rOFDM0_RxDetector3, 0x96);
+#endif
+}
+
+static void dm_EndHWFsync(struct net_device *dev)
+{
+ RT_TRACE(COMP_HALDM,"%s\n", __FUNCTION__);
+#if defined RTL8192E
+ write_nic_dword(dev, rOFDM0_RxDetector2, 0x465c52cd);
+ write_nic_byte(dev, 0xc3b, 0x49);
+#elif defined RTL8192SE
+ write_nic_byte(dev, rOFDM0_RxDetector3, 0x94);
+#endif
+
+}
+
+static void dm_EndSWFsync(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ RT_TRACE(COMP_HALDM, "%s\n", __FUNCTION__);
+ del_timer_sync(&(priv->fsync_timer));
+
+ if(priv->bswitch_fsync)
+ {
+ priv->bswitch_fsync = false;
+
+ #ifdef RTL8190P
+ write_nic_byte(dev, 0xC36, 0x40);
+#elif defined RTL8192E
+ write_nic_byte(dev, 0xC36, 0x5c);
+#endif
+
+ write_nic_byte(dev, 0xC3e, 0x96);
+ }
+
+ priv->ContiuneDiffCount = 0;
+#ifdef RTL8192E
+ write_nic_dword(dev, rOFDM0_RxDetector2, 0x465c52cd);
+#endif
+
+}
+
+static void dm_StartSWFsync(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 rateIndex;
+ u32 rateBitmap;
+
+ RT_TRACE(COMP_HALDM,"%s\n", __FUNCTION__);
+ priv->rate_record = 0;
+ priv->ContiuneDiffCount = 0;
+ priv->rateCountDiffRecord = 0;
+ priv->bswitch_fsync = false;
+
+ if(priv->rtllib->mode == WIRELESS_MODE_N_24G)
+ {
+ priv->rtllib->fsync_firstdiff_ratethreshold= 600;
+ priv->rtllib->fsync_seconddiff_ratethreshold = 0xffff;
+ }
+ else
+ {
+ priv->rtllib->fsync_firstdiff_ratethreshold= 200;
+ priv->rtllib->fsync_seconddiff_ratethreshold = 200;
+ }
+ for(rateIndex = 0; rateIndex <= 27; rateIndex++)
+ {
+ rateBitmap = 1 << rateIndex;
+ if(priv->rtllib->fsync_rate_bitmap & rateBitmap)
+ priv->rate_record += priv->stats.received_rate_histogram[1][rateIndex];
+ }
+ if(timer_pending(&priv->fsync_timer))
+ del_timer_sync(&priv->fsync_timer);
+ priv->fsync_timer.expires = jiffies + MSECS(priv->rtllib->fsync_time_interval);
+ add_timer(&priv->fsync_timer);
+
+#ifdef RTL8192E
+ write_nic_dword(dev, rOFDM0_RxDetector2, 0x465c12cd);
+#endif
+
+}
+
+void dm_check_fsync(struct net_device *dev)
+{
+#define RegC38_Default 0
+#define RegC38_NonFsync_Other_AP 1
+#define RegC38_Fsync_AP_BCM 2
+ struct r8192_priv *priv = rtllib_priv(dev);
+ static u8 reg_c38_State=RegC38_Default;
+ static u32 reset_cnt=0;
+
+ RT_TRACE(COMP_HALDM, "RSSI %d TimeInterval %d MultipleTimeInterval %d\n", priv->rtllib->fsync_rssi_threshold, priv->rtllib->fsync_time_interval, priv->rtllib->fsync_multiple_timeinterval);
+ RT_TRACE(COMP_HALDM, "RateBitmap 0x%x FirstDiffRateThreshold %d SecondDiffRateThreshold %d\n", priv->rtllib->fsync_rate_bitmap, priv->rtllib->fsync_firstdiff_ratethreshold, priv->rtllib->fsync_seconddiff_ratethreshold);
+
+ if( priv->rtllib->state == RTLLIB_LINKED &&
+ (priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_CDD_FSYNC))
+ {
+ if(priv->rtllib->bfsync_enable == 0)
+ {
+ switch(priv->rtllib->fsync_state)
+ {
+ case Default_Fsync:
+ dm_StartHWFsync(dev);
+ priv->rtllib->fsync_state = HW_Fsync;
+ break;
+ case SW_Fsync:
+ dm_EndSWFsync(dev);
+ dm_StartHWFsync(dev);
+ priv->rtllib->fsync_state = HW_Fsync;
+ break;
+ case HW_Fsync:
+ default:
+ break;
+ }
+ }
+ else
+ {
+ switch(priv->rtllib->fsync_state)
+ {
+ case Default_Fsync:
+ dm_StartSWFsync(dev);
+ priv->rtllib->fsync_state = SW_Fsync;
+ break;
+ case HW_Fsync:
+ dm_EndHWFsync(dev);
+ dm_StartSWFsync(dev);
+ priv->rtllib->fsync_state = SW_Fsync;
+ break;
+ case SW_Fsync:
+ default:
+ break;
+
+ }
+ }
+ if(priv->framesyncMonitor)
+ {
+ if(reg_c38_State != RegC38_Fsync_AP_BCM)
+ {
+ #ifdef RTL8190P
+ write_nic_byte(dev, rOFDM0_RxDetector3, 0x15);
+ #else
+ write_nic_byte(dev, rOFDM0_RxDetector3, 0x95);
+ #endif
+
+ reg_c38_State = RegC38_Fsync_AP_BCM;
+ }
+ }
+ }
+ else
+ {
+ switch(priv->rtllib->fsync_state)
+ {
+ case HW_Fsync:
+ dm_EndHWFsync(dev);
+ priv->rtllib->fsync_state = Default_Fsync;
+ break;
+ case SW_Fsync:
+ dm_EndSWFsync(dev);
+ priv->rtllib->fsync_state = Default_Fsync;
+ break;
+ case Default_Fsync:
+ default:
+ break;
+ }
+
+ if(priv->framesyncMonitor)
+ {
+ if(priv->rtllib->state == RTLLIB_LINKED)
+ {
+ if(priv->undecorated_smoothed_pwdb <= RegC38_TH)
+ {
+ if(reg_c38_State != RegC38_NonFsync_Other_AP)
+ {
+ #ifdef RTL8190P
+ write_nic_byte(dev, rOFDM0_RxDetector3, 0x10);
+ #else
+ write_nic_byte(dev, rOFDM0_RxDetector3, 0x90);
+ #endif
+
+ reg_c38_State = RegC38_NonFsync_Other_AP;
+ #if 0
+ if (dev->HardwareType == HARDWARE_TYPE_RTL8190P)
+ DbgPrint("Fsync is idle, rssi<=35, write 0xc38 = 0x%x \n", 0x10);
+ else
+ DbgPrint("Fsync is idle, rssi<=35, write 0xc38 = 0x%x \n", 0x90);
+ #endif
+ }
+ }
+ else if(priv->undecorated_smoothed_pwdb >= (RegC38_TH+5))
+ {
+ if(reg_c38_State)
+ {
+ write_nic_byte(dev, rOFDM0_RxDetector3, priv->framesync);
+ reg_c38_State = RegC38_Default;
+ }
+ }
+ }
+ else
+ {
+ if(reg_c38_State)
+ {
+ write_nic_byte(dev, rOFDM0_RxDetector3, priv->framesync);
+ reg_c38_State = RegC38_Default;
+ }
+ }
+ }
+ }
+ if(priv->framesyncMonitor)
+ {
+ if(priv->reset_count != reset_cnt)
+ {
+ write_nic_byte(dev, rOFDM0_RxDetector3, priv->framesync);
+ reg_c38_State = RegC38_Default;
+ reset_cnt = priv->reset_count;
+ }
+ }
+ else
+ {
+ if(reg_c38_State)
+ {
+ write_nic_byte(dev, rOFDM0_RxDetector3, priv->framesync);
+ reg_c38_State = RegC38_Default;
+ }
+ }
+}
+
+#if 0
+extern s1Byte DM_CheckLBusStatus(IN PADAPTER dev)
+{
+ PMGNT_INFO pMgntInfo=&dev->MgntInfo;
+
+#if (HAL_CODE_BASE & RTL819X)
+
+#if (HAL_CODE_BASE == RTL8192)
+
+#if( DEV_BUS_TYPE==PCI_INTERFACE)
+ return true;
+#endif
+
+#if( DEV_BUS_TYPE==USB_INTERFACE)
+ return true;
+#endif
+
+#endif
+
+#if (HAL_CODE_BASE == RTL8190)
+ return true;
+#endif
+
+#endif
+}
+
+#endif
+
+extern void dm_shadow_init(struct net_device *dev)
+{
+ u8 page;
+ u16 offset;
+
+ for (page = 0; page < 5; page++)
+ for (offset = 0; offset < 256; offset++)
+ {
+ dm_shadow[page][offset] = read_nic_byte(dev, offset+page*256);
+ }
+
+ for (page = 8; page < 11; page++)
+ for (offset = 0; offset < 256; offset++)
+ dm_shadow[page][offset] = read_nic_byte(dev, offset+page*256);
+
+ for (page = 12; page < 15; page++)
+ for (offset = 0; offset < 256; offset++)
+ dm_shadow[page][offset] = read_nic_byte(dev, offset+page*256);
+
+}
+
+/*---------------------------Define function prototype------------------------*/
+static void dm_init_dynamic_txpower(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+#ifdef RTL8192SE
+ if(((priv->pFirmware->FirmwareVersion) >= 60) &&
+ (priv->DM_Type == DM_Type_ByDriver)){
+ priv->rtllib->bdynamic_txpower_enable = true;
+ RT_TRACE(COMP_INIT, "Dynamic Tx Power is enabled by Driver \n");
+ } else {
+ priv->rtllib->bdynamic_txpower_enable = false;
+ RT_TRACE(COMP_INIT, "Dynamic Tx Power is enabled by FW \n");
+ }
+
+ priv->LastDTPLvl = TxHighPwrLevel_Normal;
+ priv->DynamicTxHighPowerLvl = TxHighPwrLevel_Normal;
+
+#elif defined RTL8190P || defined RTL8192E
+ priv->rtllib->bdynamic_txpower_enable = true;
+ priv->bLastDTPFlag_High = false;
+ priv->bLastDTPFlag_Low = false;
+ priv->bDynamicTxHighPower = false;
+ priv->bDynamicTxLowPower = false;
+#endif
+}
+
+#if defined RTL8190P || defined RTL8192E
+static void dm_dynamic_txpower(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ unsigned int txhipower_threshhold=0;
+ unsigned int txlowpower_threshold=0;
+ if(priv->rtllib->bdynamic_txpower_enable != true)
+ {
+ priv->bDynamicTxHighPower = false;
+ priv->bDynamicTxLowPower = false;
+ return;
+ }
+ if((priv->rtllib->pHTInfo->IOTPeer == HT_IOT_PEER_ATHEROS) && (priv->rtllib->mode == IEEE_G)){
+ txhipower_threshhold = TX_POWER_ATHEROAP_THRESH_HIGH;
+ txlowpower_threshold = TX_POWER_ATHEROAP_THRESH_LOW;
+ }
+ else
+ {
+ txhipower_threshhold = TX_POWER_NEAR_FIELD_THRESH_HIGH;
+ txlowpower_threshold = TX_POWER_NEAR_FIELD_THRESH_LOW;
+ }
+
+
+ RT_TRACE(COMP_TXAGC,"priv->undecorated_smoothed_pwdb = %ld \n" , priv->undecorated_smoothed_pwdb);
+
+ if(priv->rtllib->state == RTLLIB_LINKED)
+ {
+ if(priv->undecorated_smoothed_pwdb >= txhipower_threshhold)
+ {
+ priv->bDynamicTxHighPower = true;
+ priv->bDynamicTxLowPower = false;
+ }
+ else
+ {
+ if(priv->undecorated_smoothed_pwdb < txlowpower_threshold && priv->bDynamicTxHighPower == true)
+ {
+ priv->bDynamicTxHighPower = false;
+ }
+ if(priv->undecorated_smoothed_pwdb < 35)
+ {
+ priv->bDynamicTxLowPower = true;
+ }
+ else if(priv->undecorated_smoothed_pwdb >= 40)
+ {
+ priv->bDynamicTxLowPower = false;
+ }
+ }
+ }
+ else
+ {
+ priv->bDynamicTxHighPower = false;
+ priv->bDynamicTxLowPower = false;
+ }
+
+ if( (priv->bDynamicTxHighPower != priv->bLastDTPFlag_High ) ||
+ (priv->bDynamicTxLowPower != priv->bLastDTPFlag_Low ) )
+ {
+ RT_TRACE(COMP_TXAGC,"SetTxPowerLevel8190() channel = %d \n" , priv->rtllib->current_network.channel);
+
+ rtl8192_phy_setTxPower(dev,priv->rtllib->current_network.channel);
+ }
+ priv->bLastDTPFlag_High = priv->bDynamicTxHighPower;
+ priv->bLastDTPFlag_Low = priv->bDynamicTxLowPower;
+
+}
+#elif defined RTL8192SE
+static void dm_dynamic_txpower(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ long UndecoratedSmoothedPWDB;
+
+ if( (priv->rtllib->bdynamic_txpower_enable != true) ||
+ (priv->DMFlag & HAL_DM_HIPWR_DISABLE) ||
+ priv->rtllib->pHTInfo->IOTAction & HT_IOT_ACT_DISABLE_HIGH_POWER) {
+ priv->DynamicTxHighPowerLvl = TxHighPwrLevel_Normal;
+ return;
+ }
+
+ if((!priv->rtllib->state != RTLLIB_LINKED) &&
+ (priv->EntryMinUndecoratedSmoothedPWDB == 0)) {
+ RT_TRACE(COMP_POWER, "Not connected to any \n");
+ priv->DynamicTxHighPowerLvl = TxHighPwrLevel_Normal;
+ return;
+ }
+
+ if(priv->rtllib->state == RTLLIB_LINKED) {
+ if(priv->OpMode == RT_OP_MODE_IBSS) {
+ UndecoratedSmoothedPWDB = priv->EntryMinUndecoratedSmoothedPWDB;
+ RT_TRACE(COMP_POWER, "AP Client PWDB = %ld \n", UndecoratedSmoothedPWDB);
+ } else {
+ UndecoratedSmoothedPWDB = priv->undecorated_smoothed_pwdb;
+ RT_TRACE(COMP_POWER, "STA Default Port PWDB = %ld \n", UndecoratedSmoothedPWDB);
+ }
+ } else {
+ UndecoratedSmoothedPWDB = priv->EntryMinUndecoratedSmoothedPWDB;
+ RT_TRACE(COMP_POWER, "AP Ext Port PWDB = %ld \n", UndecoratedSmoothedPWDB);
+ }
+
+ if(UndecoratedSmoothedPWDB >= TX_POWER_NEAR_FIELD_THRESH_LVL2) {
+ priv->DynamicTxHighPowerLvl = TxHighPwrLevel_Level2;
+ RT_TRACE(COMP_POWER, "TxHighPwrLevel_Level2 (TxPwr=0x0)\n");
+ } else if((UndecoratedSmoothedPWDB < (TX_POWER_NEAR_FIELD_THRESH_LVL2-3)) &&
+ (UndecoratedSmoothedPWDB >= TX_POWER_NEAR_FIELD_THRESH_LVL1) ) {
+ priv->DynamicTxHighPowerLvl = TxHighPwrLevel_Level1;
+ RT_TRACE(COMP_POWER, "TxHighPwrLevel_Level1 (TxPwr=0x10)\n");
+ } else if(UndecoratedSmoothedPWDB < (TX_POWER_NEAR_FIELD_THRESH_LVL1-3)) {
+ priv->DynamicTxHighPowerLvl = TxHighPwrLevel_Normal;
+ RT_TRACE(COMP_POWER, "TxHighPwrLevel_Normal\n");
+ }
+
+ if( (priv->DynamicTxHighPowerLvl != priv->LastDTPLvl) ) {
+ RT_TRACE(COMP_POWER, "PHY_SetTxPowerLevel8192S() Channel = %d \n" , priv->rtllib->current_network.channel);
+ rtl8192_phy_setTxPower(dev, priv->rtllib->current_network.channel);
+ }
+ priv->LastDTPLvl = priv->DynamicTxHighPowerLvl;
+}
+#endif
+
+static void dm_check_txrateandretrycount(struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+
+#ifdef RTL8192SE
+ static u8 LegacyRateSet[12] = {0x02 , 0x04 , 0x0b , 0x16 , 0x0c , 0x12 , 0x18 , 0x24 , 0x30 , 0x48 , 0x60 , 0x6c};
+ u8 RateIdx = 0;
+ RateIdx = read_nic_byte(dev, TX_RATE_REG);
+
+ if(ieee->softmac_stats.CurrentShowTxate < 76)
+ ieee->softmac_stats.CurrentShowTxate = (RateIdx<12)?(LegacyRateSet[RateIdx]):((RateIdx-12)|0x80);
+ else
+ ieee->softmac_stats.CurrentShowTxate = 0;
+#else
+ ieee->softmac_stats.CurrentShowTxate = read_nic_byte(dev, Current_Tx_Rate_Reg);
+#endif
+
+ ieee->softmac_stats.last_packet_rate = read_nic_byte(dev ,Initial_Tx_Rate_Reg);
+
+ ieee->softmac_stats.txretrycount = read_nic_dword(dev, Tx_Retry_Count_Reg);
+}
+
+static void dm_send_rssi_tofw(struct net_device *dev)
+{
+#ifndef RTL8192SE
+ DCMD_TXCMD_T tx_cmd;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ write_nic_byte(dev, DRIVER_RSSI, (u8)priv->undecorated_smoothed_pwdb);
+ return;
+ tx_cmd.Op = TXCMD_SET_RX_RSSI;
+ tx_cmd.Length = 4;
+ tx_cmd.Value = priv->undecorated_smoothed_pwdb;
+
+ cmpk_message_handle_tx(dev, (u8*)&tx_cmd,
+ DESC_PACKET_TYPE_INIT, sizeof(DCMD_TXCMD_T));
+#endif
+}
+
+#if defined RTL8192SE
+/*-----------------------------------------------------------------------------
+ * Function: dm_RefreshRateAdaptiveMask()
+ *
+ * Overview: Update rate table mask according to rssi
+ *
+ * Input: NONE
+ *
+ * Output: NONE
+ *
+ * Return: NONE
+ *
+ * Revised History:
+ * When Who Remark
+ * 05/27/2009 hpfan Create Version 0.
+ *
+ *---------------------------------------------------------------------------*/
+static void dm_RefreshRateAdaptiveMask(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ prate_adaptive pRA = (prate_adaptive)&priv->rate_adaptive;
+ u32 LowRSSIThreshForRA = 0, HighRSSIThreshForRA = 0;
+ u8 rssi_level;
+
+ if(IS_NIC_DOWN(priv)){
+ RT_TRACE(COMP_RATE,"<---- dm_RefreshRateAdaptiveMask(): driver is going to unload\n");
+ return;
+ }
+
+ if(!priv->rtllib->bUseRAMask){
+ return;
+ }
+
+ if(priv->pFirmware->FirmwareVersion >= 61 && !priv->bInformFWDriverControlDM){
+ RT_TRACE(COMP_RATE, "<---- dm_RefreshRateAdaptiveMask(): inform fw driver control dm\n");
+ priv->rtllib->SetFwCmdHandler(dev, FW_CMD_CTRL_DM_BY_DRIVER);
+ priv->bInformFWDriverControlDM = true;
+ }
+
+ if((priv->rtllib->state == RTLLIB_LINKED && (priv->rtllib->iw_mode == IW_MODE_INFRA))
+#ifdef _RTL8192_EXT_PATCH_
+ || ((priv->rtllib->state == RTLLIB_LINKED) && (priv->rtllib->iw_mode == IW_MODE_MESH) && (priv->rtllib->only_mesh == 0))
+#endif
+ )
+ {
+
+ switch (pRA->PreRATRState){
+ case DM_RATR_STA_HIGH:
+ HighRSSIThreshForRA = 50;
+ LowRSSIThreshForRA = 20;
+ break;
+ case DM_RATR_STA_MIDDLE:
+ HighRSSIThreshForRA = 55;
+ LowRSSIThreshForRA = 20;
+ break;
+ case DM_RATR_STA_LOW:
+ HighRSSIThreshForRA = 50;
+ LowRSSIThreshForRA = 25;
+ break;
+ default:
+ HighRSSIThreshForRA = 50;
+ LowRSSIThreshForRA = 20;
+ break;
+ }
+
+ if(priv->undecorated_smoothed_pwdb > (long)HighRSSIThreshForRA){
+ pRA->ratr_state = DM_RATR_STA_HIGH;
+ rssi_level = 1;
+ }
+ else if(priv->undecorated_smoothed_pwdb > (long)LowRSSIThreshForRA){
+ pRA->ratr_state = DM_RATR_STA_MIDDLE;
+ rssi_level = 2;
+ }else{
+ pRA->ratr_state = DM_RATR_STA_LOW;
+ rssi_level = 3;
+ }
+ if((pRA->PreRATRState != pRA->ratr_state) || ((pRA->PreRATRState == pRA->ratr_state) && (rssi_level != priv->rssi_level)))
+ {
+ RT_TRACE(COMP_RATE, "Target AP addr : "MAC_FMT"\n", MAC_ARG(priv->rtllib->current_network.bssid));
+ RT_TRACE(COMP_RATE, "RSSI = %ld\n", priv->undecorated_smoothed_pwdb);
+ RT_TRACE(COMP_RATE, "RSSI_LEVEL = %d\n", rssi_level);
+ RT_TRACE(COMP_RATE, "PreState = %d, CurState = %d\n", pRA->PreRATRState, pRA->ratr_state);
+ priv->rtllib->UpdateHalRAMaskHandler(
+ dev,
+ false,
+ 0,
+ priv->rtllib->pHTInfo->PeerMimoPs,
+ priv->rtllib->mode,
+ priv->rtllib->pHTInfo->bCurTxBW40MHz,
+ rssi_level);
+ priv->rssi_level = rssi_level;
+ pRA->PreRATRState = pRA->ratr_state;
+ }
+ }
+ if((priv->rtllib->state == RTLLIB_LINKED) && (priv->rtllib->iw_mode == IW_MODE_ADHOC)){
+ int i;
+ struct sta_info *pEntry;
+
+ for(i = 0; i < PEER_MAX_ASSOC; i++){
+ pEntry = priv->rtllib->peer_assoc_list[i];
+ if(NULL != pEntry){
+ pRA = &pEntry->rate_adaptive;
+ switch (pRA->PreRATRState){
+ case DM_RATR_STA_HIGH:
+ HighRSSIThreshForRA = 50;
+ LowRSSIThreshForRA = 20;
+ break;
+ case DM_RATR_STA_MIDDLE:
+ HighRSSIThreshForRA = 55;
+ LowRSSIThreshForRA = 20;
+ break;
+ case DM_RATR_STA_LOW:
+ HighRSSIThreshForRA = 50;
+ LowRSSIThreshForRA = 25;
+ break;
+ default:
+ HighRSSIThreshForRA = 50;
+ LowRSSIThreshForRA = 20;
+ break;
+ }
+
+ if(pEntry->rssi_stat.UndecoratedSmoothedPWDB > HighRSSIThreshForRA){
+ pRA->ratr_state = DM_RATR_STA_HIGH;
+ rssi_level = 1;
+ }else if(pEntry->rssi_stat.UndecoratedSmoothedPWDB > LowRSSIThreshForRA){
+ pRA->ratr_state = DM_RATR_STA_MIDDLE;
+ rssi_level = 2;
+ }else{
+ pRA->ratr_state = DM_RATR_STA_LOW;
+ rssi_level = 3;
+ }
+
+ if(pRA->PreRATRState != pRA->ratr_state){
+ RT_TRACE(COMP_RATE, "AsocEntry addr : "MAC_FMT"\n", MAC_ARG(pEntry->macaddr));
+ RT_TRACE(COMP_RATE, "RSSI = %ld\n", pEntry->rssi_stat.UndecoratedSmoothedPWDB);
+ RT_TRACE(COMP_RATE, "RSSI_LEVEL = %d\n", rssi_level);
+ RT_TRACE(COMP_RATE, "PreState = %d, CurState = %d\n", pRA->PreRATRState, pRA->ratr_state);
+ priv->rtllib->UpdateHalRAMaskHandler(
+ dev,
+ false,
+ pEntry->aid+1,
+ pEntry->htinfo.MimoPs,
+ pEntry->wireless_mode,
+ pEntry->htinfo.bCurTxBW40MHz,
+ rssi_level);
+ pRA->PreRATRState = pRA->ratr_state;
+ }
+
+ }
+ }
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if(priv->rtllib->iw_mode == IW_MODE_MESH)
+ {
+ if(priv->mshobj->ext_refresh_rate_adaptive_mask)
+ priv->mshobj->ext_refresh_rate_adaptive_mask(priv);
+ }
+#endif
+}
+
+void Adhoc_InitRateAdaptive(struct net_device *dev,struct sta_info *pEntry)
+{
+ prate_adaptive pRA = (prate_adaptive)&pEntry->rate_adaptive;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ pRA->ratr_state = DM_RATR_STA_MAX;
+ pRA->high2low_rssi_thresh_for_ra = RateAdaptiveTH_High;
+ pRA->low2high_rssi_thresh_for_ra20M = RateAdaptiveTH_Low_20M+5;
+ pRA->low2high_rssi_thresh_for_ra40M = RateAdaptiveTH_Low_40M+5;
+
+ pRA->high_rssi_thresh_for_ra = RateAdaptiveTH_High+5;
+ pRA->low_rssi_thresh_for_ra20M = RateAdaptiveTH_Low_20M;
+ pRA->low_rssi_thresh_for_ra40M = RateAdaptiveTH_Low_40M;
+
+ if (priv->rf_type == RF_2T4R)
+ {
+ /* 2008/01/11 MH Modify 2T RATR table for different RSSI. */
+ pRA->upper_rssi_threshold_ratr = 0x8f0f0000;
+ pRA->middle_rssi_threshold_ratr = 0x8d0ff000;
+ pRA->low_rssi_threshold_ratr = 0x8f0ff003;
+ pRA->low_rssi_threshold_ratr_40M = 0x8f0ff007;
+ pRA->low_rssi_threshold_ratr_20M = 0x8f0ff003;
+ }
+ else if (priv->rf_type == RF_1T2R)
+ {
+ pRA->upper_rssi_threshold_ratr = 0x000f0000;
+ pRA->middle_rssi_threshold_ratr = 0x000ff000;
+ pRA->low_rssi_threshold_ratr = 0x000ff003;
+ pRA->low_rssi_threshold_ratr_40M = 0x000ff007;
+ pRA->low_rssi_threshold_ratr_20M = 0x000ff003;
+ }
+
+}
+
+
+void Adhoc_InitRateAdaptiveState(struct net_device *dev,struct sta_info *pEntry)
+{
+ prate_adaptive pRA = (prate_adaptive)&pEntry->rate_adaptive;
+
+ pRA->ratr_state = DM_RATR_STA_MAX;
+ pRA->PreRATRState = DM_RATR_STA_MAX;
+}
+
+#if 0
+static void Adhoc_dm_CheckRateAdaptive(struct net_device * dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+ prate_adaptive pRA;
+ u32 currentRATR, targetRATR = 0;
+ u32 LowRSSIThreshForRA = 0, HighRSSIThreshForRA = 0;
+ bool bShortGIEnabled = false;
+ u8 i = 0;
+ struct sta_info *pEntry = NULL;
+
+ if(!priv->up)
+ {
+ RT_TRACE(COMP_RATE, "<---- AP_dm_CheckRateAdaptive(): driver is going to unload\n");
+ return;
+ }
+
+ for(i=0;i<PEER_MAX_ASSOC; i++)
+ {
+ pEntry = ieee->peer_assoc_list[i];
+ if(NULL != pEntry)
+ {
+ pRA = (prate_adaptive)&pEntry->rate_adaptive;
+ if(pRA->rate_adaptive_disabled)
+ continue;
+ if((pEntry->wireless_mode!=WIRELESS_MODE_N_24G) && (pEntry->wireless_mode != WIRELESS_MODE_N_5G))
+ continue;
+ bShortGIEnabled = (pEntry->htinfo.bCurTxBW40MHz && priv->rtllib->pHTInfo->bCurShortGI40MHz && pEntry->htinfo.bCurShortGI40MHz) |
+ (!pEntry->htinfo.bCurTxBW40MHz && priv->rtllib->pHTInfo->bCurShortGI20MHz && pEntry->htinfo.bCurShortGI20MHz);
+ pRA->upper_rssi_threshold_ratr =
+ (pRA->upper_rssi_threshold_ratr & (~BIT31)) | ((bShortGIEnabled)? BIT31:0) ;
+
+ pRA->middle_rssi_threshold_ratr =
+ (pRA->middle_rssi_threshold_ratr & (~BIT31)) | ((bShortGIEnabled)? BIT31:0) ;
+
+
+ if (pEntry->htinfo.bBw40MHz)
+ {
+ pRA->low_rssi_threshold_ratr =
+ (pRA->low_rssi_threshold_ratr_40M & (~BIT31)) | ((bShortGIEnabled)? BIT31:0) ;
+ }
+ else
+ {
+ pRA->low_rssi_threshold_ratr =
+ (pRA->low_rssi_threshold_ratr_20M & (~BIT31)) | ((bShortGIEnabled)? BIT31:0) ;
+ }
+ if (pRA->ratr_state == DM_RATR_STA_HIGH)
+ {
+ HighRSSIThreshForRA = pRA->high2low_rssi_thresh_for_ra;
+ LowRSSIThreshForRA =
+ (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)?
+ (pRA->low_rssi_thresh_for_ra40M):(pRA->low_rssi_thresh_for_ra20M);
+ }
+ else if (pRA->ratr_state == DM_RATR_STA_LOW)
+ {
+ HighRSSIThreshForRA = pRA->high_rssi_thresh_for_ra;
+ LowRSSIThreshForRA =
+ (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)?
+ (pRA->low2high_rssi_thresh_for_ra40M):(pRA->low2high_rssi_thresh_for_ra20M);
+ }
+ else
+ {
+ HighRSSIThreshForRA = pRA->high_rssi_thresh_for_ra;
+ LowRSSIThreshForRA =
+ (priv->CurrentChannelBW != HT_CHANNEL_WIDTH_20)?
+ (pRA->low_rssi_thresh_for_ra40M):(pRA->low_rssi_thresh_for_ra20M);
+ }
+ if(priv->undecorated_smoothed_pwdb >= (int)HighRSSIThreshForRA)
+ {
+ pRA->ratr_state = DM_RATR_STA_HIGH;
+ targetRATR = pRA->upper_rssi_threshold_ratr;
+ }
+ else if(priv->undecorated_smoothed_pwdb >= (int)LowRSSIThreshForRA)
+ {
+ pRA->ratr_state = DM_RATR_STA_MIDDLE;
+ targetRATR = pRA->middle_rssi_threshold_ratr;
+ }
+ else
+ {
+ pRA->ratr_state = DM_RATR_STA_LOW;
+ targetRATR = pRA->low_rssi_threshold_ratr;
+ }
+ currentRATR = read_nic_dword(dev, pEntry->ratr_index*4 + RATR0);
+ if( targetRATR != currentRATR )
+ {
+ if(priv->rf_type == RF_1T2R)
+ {
+ targetRATR &=~ (RATE_ALL_OFDM_2SS);
+ }
+ printk("<<<<<<<<<<<currentRATR = %x, targetRATR = %x\n", currentRATR, targetRATR);
+ write_nic_dword(dev, RATR0+pEntry->ratr_index*4, targetRATR);
+ write_nic_byte(dev, UFWP, 1);
+ pRA->last_ratr = targetRATR;
+ }
+ }
+ }
+
+}
+#endif
+
+#endif
+/*---------------------------Define function prototype------------------------*/
+
diff --git a/ubuntu/rtl8192se/rtl_dm.h b/ubuntu/rtl8192se/rtl_dm.h
new file mode 100755
index 00000000000..ca6cb57065f
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_dm.h
@@ -0,0 +1,332 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef __R8192UDM_H__
+#define __R8192UDM_H__
+
+
+/*--------------------------Define Parameters-------------------------------*/
+#define OFDM_Table_Length 19
+#define CCK_Table_length 12
+
+#define DM_DIG_THRESH_HIGH 40
+#define DM_DIG_THRESH_LOW 35
+
+#define DM_FALSEALARM_THRESH_LOW 40
+#define DM_FALSEALARM_THRESH_HIGH 1000
+
+#define DM_DIG_HIGH_PWR_THRESH_HIGH 75
+#define DM_DIG_HIGH_PWR_THRESH_LOW 70
+
+#define BW_AUTO_SWITCH_HIGH_LOW 25
+#define BW_AUTO_SWITCH_LOW_HIGH 30
+
+#define DM_check_fsync_time_interval 500
+
+
+#define DM_DIG_BACKOFF 12
+#ifdef RTL8192SE
+#define DM_DIG_MAX 0x3e
+#elif defined RTL8190P || defined RTL8192E
+#define DM_DIG_MAX 0x36
+#endif
+#define DM_DIG_MIN 0x1c
+#define DM_DIG_MIN_Netcore 0x12
+
+#define DM_DIG_BACKOFF_MAX 12
+#define DM_DIG_BACKOFF_MIN -4
+
+#define RxPathSelection_SS_TH_low 30
+#define RxPathSelection_diff_TH 18
+
+#define RateAdaptiveTH_High 50
+#define RateAdaptiveTH_Low_20M 30
+#define RateAdaptiveTH_Low_40M 10
+#define VeryLowRSSI 15
+
+#ifdef RTL8192SE
+#define CTSToSelfTHVal 30
+#elif defined RTL8190P || defined RTL8192E
+#define CTSToSelfTHVal 35
+#endif
+
+#define WAIotTHVal 25
+
+#define E_FOR_TX_POWER_TRACK 300
+#define TX_POWER_NEAR_FIELD_THRESH_HIGH 68
+#define TX_POWER_NEAR_FIELD_THRESH_LOW 62
+#define TX_POWER_ATHEROAP_THRESH_HIGH 78
+#define TX_POWER_ATHEROAP_THRESH_LOW 72
+
+#define Current_Tx_Rate_Reg 0x1e0
+#define Initial_Tx_Rate_Reg 0x1e1
+#define Tx_Retry_Count_Reg 0x1ac
+#define RegC38_TH 20
+
+#define TX_POWER_NEAR_FIELD_THRESH_LVL2 74
+#define TX_POWER_NEAR_FIELD_THRESH_LVL1 67
+
+#define TxHighPwrLevel_Normal 0
+#define TxHighPwrLevel_Level1 1
+#define TxHighPwrLevel_Level2 2
+
+#define DM_Type_ByFW 0
+#define DM_Type_ByDriver 1
+
+/*--------------------------Define Parameters-------------------------------*/
+
+
+/*------------------------------Define structure----------------------------*/
+typedef struct _dynamic_initial_gain_threshold_
+{
+ u8 dig_enable_flag;
+ u8 dig_algorithm;
+ u8 Dig_TwoPort_Algorithm;
+ u8 Dig_Ext_Port_Stage;
+ u8 dbg_mode;
+ u8 dig_algorithm_switch;
+
+ long rssi_low_thresh;
+ long rssi_high_thresh;
+
+ u32 FALowThresh;
+ u32 FAHighThresh;
+
+ long rssi_high_power_lowthresh;
+ long rssi_high_power_highthresh;
+
+ u8 dig_state;
+ u8 dig_highpwr_state;
+ u8 CurSTAConnectState;
+ u8 PreSTAConnectState;
+ u8 CurAPConnectState;
+ u8 PreAPConnectState;
+
+ u8 curpd_thstate;
+ u8 prepd_thstate;
+ u8 curcs_ratio_state;
+ u8 precs_ratio_state;
+
+ u32 pre_ig_value;
+ u32 cur_ig_value;
+
+ u8 Backoff_Enable_Flag;
+ u8 backoff_val;
+ char BackoffVal_range_max;
+ char BackoffVal_range_min;
+ u8 rx_gain_range_max;
+ u8 rx_gain_range_min;
+ bool initialgain_lowerbound_state;
+
+ long rssi_val;
+}dig_t;
+
+typedef enum tag_dynamic_init_gain_state_definition
+{
+ DM_STA_DIG_OFF = 0,
+ DM_STA_DIG_ON,
+ DM_STA_DIG_MAX
+}dm_dig_sta_e;
+
+
+typedef enum tag_dynamic_ratr_state_definition
+{
+ DM_RATR_STA_HIGH = 0,
+ DM_RATR_STA_MIDDLE = 1,
+ DM_RATR_STA_LOW = 2,
+ DM_RATR_STA_MAX
+}dm_ratr_sta_e;
+
+typedef enum tag_dynamic_init_gain_operation_type_definition
+{
+ DIG_TYPE_THRESH_HIGH = 0,
+ DIG_TYPE_THRESH_LOW = 1,
+ DIG_TYPE_THRESH_HIGHPWR_HIGH = 2,
+ DIG_TYPE_THRESH_HIGHPWR_LOW = 3,
+ DIG_TYPE_DBG_MODE = 4,
+ DIG_TYPE_RSSI = 5,
+ DIG_TYPE_ALGORITHM = 6,
+ DIG_TYPE_BACKOFF = 7,
+ DIG_TYPE_PWDB_FACTOR = 8,
+ DIG_TYPE_RX_GAIN_MIN = 9,
+ DIG_TYPE_RX_GAIN_MAX = 10,
+ DIG_TYPE_ENABLE = 20,
+ DIG_TYPE_DISABLE = 30,
+ DIG_OP_TYPE_MAX
+}dm_dig_op_e;
+
+typedef enum tag_dig_algorithm_definition
+{
+ DIG_ALGO_BY_FALSE_ALARM = 0,
+ DIG_ALGO_BY_RSSI = 1,
+ DIG_ALGO_BEFORE_CONNECT_BY_RSSI_AND_ALARM = 2,
+ DIG_ALGO_BY_TOW_PORT = 3,
+ DIG_ALGO_MAX
+}dm_dig_alg_e;
+
+typedef enum tag_DIG_TWO_PORT_ALGO_Definition
+{
+ DIG_TWO_PORT_ALGO_RSSI = 0,
+ DIG_TWO_PORT_ALGO_FALSE_ALARM = 1,
+}DM_DIG_TWO_PORT_ALG_E;
+
+
+typedef enum tag_DIG_EXT_PORT_ALGO_Definition
+{
+ DIG_EXT_PORT_STAGE_0 = 0,
+ DIG_EXT_PORT_STAGE_1 = 1,
+ DIG_EXT_PORT_STAGE_2 = 2,
+ DIG_EXT_PORT_STAGE_3 = 3,
+ DIG_EXT_PORT_STAGE_MAX = 4,
+}DM_DIG_EXT_PORT_ALG_E;
+
+typedef enum tag_dig_dbgmode_definition
+{
+ DIG_DBG_OFF = 0,
+ DIG_DBG_ON = 1,
+ DIG_DBG_MAX
+}dm_dig_dbg_e;
+
+typedef enum tag_dig_connect_definition
+{
+ DIG_STA_DISCONNECT = 0,
+ DIG_STA_CONNECT = 1,
+ DIG_STA_BEFORE_CONNECT = 2,
+ DIG_AP_DISCONNECT = 3,
+ DIG_AP_CONNECT = 4,
+ DIG_AP_ADD_STATION = 5,
+ DIG_CONNECT_MAX
+}dm_dig_connect_e;
+
+typedef enum tag_dig_packetdetection_threshold_definition
+{
+ DIG_PD_AT_LOW_POWER = 0,
+ DIG_PD_AT_NORMAL_POWER = 1,
+ DIG_PD_AT_HIGH_POWER = 2,
+ DIG_PD_MAX
+}dm_dig_pd_th_e;
+
+typedef enum tag_dig_cck_cs_ratio_state_definition
+{
+ DIG_CS_RATIO_LOWER = 0,
+ DIG_CS_RATIO_HIGHER = 1,
+ DIG_CS_MAX
+}dm_dig_cs_ratio_e;
+typedef struct _Dynamic_Rx_Path_Selection_
+{
+ u8 Enable;
+ u8 DbgMode;
+ u8 cck_method;
+ u8 cck_Rx_path;
+
+ u8 SS_TH_low;
+ u8 diff_TH;
+ u8 disabledRF;
+ u8 reserved;
+
+ u8 rf_rssi[4];
+ u8 rf_enable_rssi_th[4];
+ long cck_pwdb_sta[4];
+}DRxPathSel;
+
+typedef enum tag_CCK_Rx_Path_Method_Definition
+{
+ CCK_Rx_Version_1 = 0,
+ CCK_Rx_Version_2= 1,
+ CCK_Rx_Version_MAX
+}DM_CCK_Rx_Path_Method;
+
+
+typedef enum tag_DM_DbgMode_Definition
+{
+ DM_DBG_OFF = 0,
+ DM_DBG_ON = 1,
+ DM_DBG_MAX
+}DM_DBG_E;
+
+typedef struct tag_Tx_Config_Cmd_Format
+{
+ u32 Op;
+ u32 Length;
+ u32 Value;
+}DCMD_TXCMD_T, *PDCMD_TXCMD_T;
+/*------------------------------Define structure----------------------------*/
+
+
+/*------------------------Export global variable----------------------------*/
+extern dig_t dm_digtable;
+extern u8 dm_shadow[16][256];
+extern DRxPathSel DM_RxPathSelTable;
+
+extern u8 test_flag;
+/*------------------------Export global variable----------------------------*/
+
+
+/*------------------------Export Marco Definition---------------------------*/
+#define DM_APInitGainChangeNotify(Event) {dm_digtable.CurAPConnectState = Event;}
+/*------------------------Export Marco Definition---------------------------*/
+
+
+/*--------------------------Exported Function prototype---------------------*/
+/*--------------------------Exported Function prototype---------------------*/
+extern void init_hal_dm(struct net_device *dev);
+extern void deinit_hal_dm(struct net_device *dev);
+
+extern void hal_dm_watchdog(struct net_device *dev);
+
+
+extern void init_rate_adaptive(struct net_device *dev);
+extern void dm_txpower_trackingcallback(void *data);
+
+#ifndef RTL8192SE
+extern void dm_cck_txpower_adjust(struct net_device *dev,bool binch14);
+#endif
+
+extern void dm_restore_dynamic_mechanism_state(struct net_device *dev);
+extern void dm_backup_dynamic_mechanism_state(struct net_device *dev);
+extern void dm_change_dynamic_initgain_thresh(struct net_device *dev,
+ u32 dm_type,
+ u32 dm_value);
+extern void DM_ChangeFsyncSetting(struct net_device *dev,
+ s32 DM_Type,
+ s32 DM_Value);
+extern void dm_force_tx_fw_info(struct net_device *dev,
+ u32 force_type,
+ u32 force_value);
+extern void dm_init_edca_turbo(struct net_device *dev);
+extern void dm_rf_operation_test_callback(unsigned long data);
+extern void dm_rf_pathcheck_workitemcallback(void *data);
+extern void dm_fsync_timer_callback(unsigned long data);
+#if 0
+extern bool dm_check_lbus_status(struct net_device *dev);
+#endif
+extern void dm_check_fsync(struct net_device *dev);
+extern void dm_shadow_init(struct net_device *dev);
+extern void dm_initialize_txpower_tracking(struct net_device *dev);
+
+#if (defined RTL8192E || defined RTL8192SE)
+extern void dm_CheckRfCtrlGPIO(void *data);
+#endif
+
+#ifdef RTL8192SE
+extern void Power_DomainInit92SE(struct net_device *dev);
+#endif
+#endif /*__R8192UDM_H__ */
+
+
+/* End of r8192U_dm.h */
diff --git a/ubuntu/rtl8192se/rtl_eeprom.c b/ubuntu/rtl8192se/rtl_eeprom.c
new file mode 100755
index 00000000000..d3af0af975b
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_eeprom.c
@@ -0,0 +1,140 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#include "rtl_core.h"
+#include "rtl_eeprom.h"
+
+void eprom_cs(struct net_device *dev, short bit)
+{
+ if(bit)
+ write_nic_byte(dev, EPROM_CMD,
+ (1<<EPROM_CS_SHIFT) | \
+ read_nic_byte(dev, EPROM_CMD));
+ else
+ write_nic_byte(dev, EPROM_CMD, read_nic_byte(dev, EPROM_CMD)\
+ &~(1<<EPROM_CS_SHIFT));
+
+ udelay(EPROM_DELAY);
+}
+
+
+void eprom_ck_cycle(struct net_device *dev)
+{
+ write_nic_byte(dev, EPROM_CMD,
+ (1<<EPROM_CK_SHIFT) | read_nic_byte(dev,EPROM_CMD));
+ udelay(EPROM_DELAY);
+ write_nic_byte(dev, EPROM_CMD,
+ read_nic_byte(dev, EPROM_CMD) &~ (1<<EPROM_CK_SHIFT));
+ udelay(EPROM_DELAY);
+}
+
+
+void eprom_w(struct net_device *dev,short bit)
+{
+ if(bit)
+ write_nic_byte(dev, EPROM_CMD, (1<<EPROM_W_SHIFT) | \
+ read_nic_byte(dev,EPROM_CMD));
+ else
+ write_nic_byte(dev, EPROM_CMD, read_nic_byte(dev,EPROM_CMD)\
+ &~(1<<EPROM_W_SHIFT));
+
+ udelay(EPROM_DELAY);
+}
+
+
+short eprom_r(struct net_device *dev)
+{
+ short bit;
+
+ bit=(read_nic_byte(dev, EPROM_CMD) & (1<<EPROM_R_SHIFT) );
+ udelay(EPROM_DELAY);
+
+ if(bit) return 1;
+ return 0;
+}
+
+
+void eprom_send_bits_string(struct net_device *dev, short b[], int len)
+{
+ int i;
+
+ for(i=0; i<len; i++){
+ eprom_w(dev, b[i]);
+ eprom_ck_cycle(dev);
+ }
+}
+
+
+u32 eprom_read(struct net_device *dev, u32 addr)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ short read_cmd[]={1,1,0};
+ short addr_str[8];
+ int i;
+ int addr_len;
+ u32 ret;
+
+ ret=0;
+ write_nic_byte(dev, EPROM_CMD,
+ (EPROM_CMD_PROGRAM<<EPROM_CMD_OPERATING_MODE_SHIFT));
+ udelay(EPROM_DELAY);
+
+ if (priv->epromtype==EEPROM_93C56){
+ addr_str[7]=addr & 1;
+ addr_str[6]=addr & (1<<1);
+ addr_str[5]=addr & (1<<2);
+ addr_str[4]=addr & (1<<3);
+ addr_str[3]=addr & (1<<4);
+ addr_str[2]=addr & (1<<5);
+ addr_str[1]=addr & (1<<6);
+ addr_str[0]=addr & (1<<7);
+ addr_len=8;
+ }else{
+ addr_str[5]=addr & 1;
+ addr_str[4]=addr & (1<<1);
+ addr_str[3]=addr & (1<<2);
+ addr_str[2]=addr & (1<<3);
+ addr_str[1]=addr & (1<<4);
+ addr_str[0]=addr & (1<<5);
+ addr_len=6;
+ }
+ eprom_cs(dev, 1);
+ eprom_ck_cycle(dev);
+ eprom_send_bits_string(dev, read_cmd, 3);
+ eprom_send_bits_string(dev, addr_str, addr_len);
+
+ eprom_w(dev, 0);
+
+ for(i=0;i<16;i++){
+ eprom_ck_cycle(dev);
+ ret |= (eprom_r(dev)<<(15-i));
+ }
+
+ eprom_cs(dev, 0);
+ eprom_ck_cycle(dev);
+
+ write_nic_byte(dev, EPROM_CMD,
+ (EPROM_CMD_NORMAL<<EPROM_CMD_OPERATING_MODE_SHIFT));
+ return ret;
+}
diff --git a/ubuntu/rtl8192se/rtl_eeprom.h b/ubuntu/rtl8192se/rtl_eeprom.h
new file mode 100755
index 00000000000..347749ee5b5
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_eeprom.h
@@ -0,0 +1,48 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+
+
+#define EPROM_DELAY 10
+#if 0
+#define EPROM_ANAPARAM_ADDRLWORD 0xd
+#define EPROM_ANAPARAM_ADDRHWORD 0xe
+
+#define EPROM_RFCHIPID 0x6
+#define EPROM_TXPW_BASE 0x05
+#define EPROM_RFCHIPID_RTL8225U 5
+#define EPROM_RF_PARAM 0x4
+#define EPROM_CONFIG2 0xc
+
+#define EPROM_VERSION 0x1E
+#define MAC_ADR 0x7
+
+#define CIS 0x18
+
+#define EPROM_TXPW0 0x16
+#define EPROM_TXPW2 0x1b
+#define EPROM_TXPW1 0x3d
+#endif
+
+u32 eprom_read(struct net_device *dev,u32 addr);
diff --git a/ubuntu/rtl8192se/rtl_endianfree.h b/ubuntu/rtl8192se/rtl_endianfree.h
new file mode 100755
index 00000000000..a697372d664
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_endianfree.h
@@ -0,0 +1,156 @@
+#ifndef __INC_ENDIANFREE_H
+#define __INC_ENDIANFREE_H
+
+/*
+ * Call endian free function when
+ * 1. Read/write packet content.
+ * 2. Before write integer to IO.
+ * 3. After read integer from IO.
+ */
+
+#define __MACHINE_LITTLE_ENDIAN 1234 /* LSB first: i386, vax */
+#define __MACHINE_BIG_ENDIAN 4321 /* MSB first: 68000, ibm, net, ppc */
+
+#define BYTE_ORDER __MACHINE_LITTLE_ENDIAN
+
+#if BYTE_ORDER == __MACHINE_LITTLE_ENDIAN
+#define EF1Byte(_val) ((u8)(_val))
+#define EF2Byte(_val) ((u16)(_val))
+#define EF4Byte(_val) ((u32)(_val))
+
+#else
+#define EF1Byte(_val) ((u8)(_val))
+#define EF2Byte(_val) (((((u16)(_val))&0x00ff)<<8)|((((u16)(_val))&0xff00)>>8))
+#define EF4Byte(_val) (((((u32)(_val))&0x000000ff)<<24)|\
+ ((((u32)(_val))&0x0000ff00)<<8)|\
+ ((((u32)(_val))&0x00ff0000)>>8)|\
+ ((((u32)(_val))&0xff000000)>>24))
+#endif
+
+#define ReadEF1Byte(_ptr) EF1Byte(*((u8 *)(_ptr)))
+#define ReadEF2Byte(_ptr) EF2Byte(*((u16 *)(_ptr)))
+#define ReadEF4Byte(_ptr) EF4Byte(*((u32 *)(_ptr)))
+
+#define WriteEF1Byte(_ptr, _val) (*((u8 *)(_ptr)))=EF1Byte(_val)
+#define WriteEF2Byte(_ptr, _val) (*((u16 *)(_ptr)))=EF2Byte(_val)
+#define WriteEF4Byte(_ptr, _val) (*((u32 *)(_ptr)))=EF4Byte(_val)
+#if BYTE_ORDER == __MACHINE_LITTLE_ENDIAN
+#define H2N1BYTE(_val) ((u8)(_val))
+#define H2N2BYTE(_val) (((((u16)(_val))&0x00ff)<<8)|\
+ ((((u16)(_val))&0xff00)>>8))
+#define H2N4BYTE(_val) (((((u32)(_val))&0x000000ff)<<24)|\
+ ((((u32)(_val))&0x0000ff00)<<8) |\
+ ((((u32)(_val))&0x00ff0000)>>8) |\
+ ((((u32)(_val))&0xff000000)>>24))
+#else
+#define H2N1BYTE(_val) ((u8)(_val))
+#define H2N2BYTE(_val) ((u16)(_val))
+#define H2N4BYTE(_val) ((u32)(_val))
+#endif
+
+#if BYTE_ORDER == __MACHINE_LITTLE_ENDIAN
+#define N2H1BYTE(_val) ((u8)(_val))
+#define N2H2BYTE(_val) (((((u16)(_val))&0x00ff)<<8)|\
+ ((((u16)(_val))&0xff00)>>8))
+#define N2H4BYTE(_val) (((((u32)(_val))&0x000000ff)<<24)|\
+ ((((u32)(_val))&0x0000ff00)<<8) |\
+ ((((u32)(_val))&0x00ff0000)>>8) |\
+ ((((u32)(_val))&0xff000000)>>24))
+#else
+#define N2H1BYTE(_val) ((u8)(_val))
+#define N2H2BYTE(_val) ((u16)(_val))
+#define N2H4BYTE(_val) ((u32)(_val))
+#endif
+
+#define BIT_LEN_MASK_32(__BitLen) (0xFFFFFFFF >> (32 - (__BitLen)))
+#define BIT_OFFSET_LEN_MASK_32(__BitOffset, __BitLen) (BIT_LEN_MASK_32(__BitLen) << (__BitOffset))
+
+#define LE_P4BYTE_TO_HOST_4BYTE(__pStart) (EF4Byte(*((u32 *)(__pStart))))
+
+#define LE_BITS_TO_4BYTE(__pStart, __BitOffset, __BitLen) \
+ ( \
+ ( LE_P4BYTE_TO_HOST_4BYTE(__pStart) >> (__BitOffset) ) \
+ & \
+ BIT_LEN_MASK_32(__BitLen) \
+ )
+
+#define LE_BITS_CLEARED_TO_4BYTE(__pStart, __BitOffset, __BitLen) \
+ ( \
+ LE_P4BYTE_TO_HOST_4BYTE(__pStart) \
+ & \
+ ( ~BIT_OFFSET_LEN_MASK_32(__BitOffset, __BitLen) ) \
+ )
+
+#define SET_BITS_TO_LE_4BYTE(__pStart, __BitOffset, __BitLen, __Value) \
+ *((u32 *)(__pStart)) = \
+ EF4Byte( \
+ LE_BITS_CLEARED_TO_4BYTE(__pStart, __BitOffset, __BitLen) \
+ | \
+ ( (((u32)__Value) & BIT_LEN_MASK_32(__BitLen)) << (__BitOffset) ) \
+ );
+
+
+#define BIT_LEN_MASK_16(__BitLen) \
+ (0xFFFF >> (16 - (__BitLen)))
+
+#define BIT_OFFSET_LEN_MASK_16(__BitOffset, __BitLen) \
+ (BIT_LEN_MASK_16(__BitLen) << (__BitOffset))
+
+#define LE_P2BYTE_TO_HOST_2BYTE(__pStart) \
+ (EF2Byte(*((u16 *)(__pStart))))
+
+#define LE_BITS_TO_2BYTE(__pStart, __BitOffset, __BitLen) \
+ ( \
+ ( LE_P2BYTE_TO_HOST_2BYTE(__pStart) >> (__BitOffset) ) \
+ & \
+ BIT_LEN_MASK_16(__BitLen) \
+ )
+
+#define LE_BITS_CLEARED_TO_2BYTE(__pStart, __BitOffset, __BitLen) \
+ ( \
+ LE_P2BYTE_TO_HOST_2BYTE(__pStart) \
+ & \
+ ( ~BIT_OFFSET_LEN_MASK_16(__BitOffset, __BitLen) ) \
+ )
+
+#define SET_BITS_TO_LE_2BYTE(__pStart, __BitOffset, __BitLen, __Value) \
+ *((u16 *)(__pStart)) = \
+ EF2Byte( \
+ LE_BITS_CLEARED_TO_2BYTE(__pStart, __BitOffset, __BitLen) \
+ | \
+ ( (((u16)__Value) & BIT_LEN_MASK_16(__BitLen)) << (__BitOffset) ) \
+ );
+
+#define BIT_LEN_MASK_8(__BitLen) \
+ (0xFF >> (8 - (__BitLen)))
+
+#define BIT_OFFSET_LEN_MASK_8(__BitOffset, __BitLen) \
+ (BIT_LEN_MASK_8(__BitLen) << (__BitOffset))
+
+#define LE_P1BYTE_TO_HOST_1BYTE(__pStart) \
+ (EF1Byte(*((u8 *)(__pStart))))
+
+#define LE_BITS_TO_1BYTE(__pStart, __BitOffset, __BitLen) \
+ ( \
+ ( LE_P1BYTE_TO_HOST_1BYTE(__pStart) >> (__BitOffset) ) \
+ & \
+ BIT_LEN_MASK_8(__BitLen) \
+ )
+
+#define LE_BITS_CLEARED_TO_1BYTE(__pStart, __BitOffset, __BitLen) \
+ ( \
+ LE_P1BYTE_TO_HOST_1BYTE(__pStart) \
+ & \
+ ( ~BIT_OFFSET_LEN_MASK_8(__BitOffset, __BitLen) ) \
+ )
+
+#define SET_BITS_TO_LE_1BYTE(__pStart, __BitOffset, __BitLen, __Value) \
+ *((u8 *)(__pStart)) = \
+ EF1Byte( \
+ LE_BITS_CLEARED_TO_1BYTE(__pStart, __BitOffset, __BitLen) \
+ | \
+ ( (((u8)__Value) & BIT_LEN_MASK_8(__BitLen)) << (__BitOffset) ) \
+ );
+
+#define N_BYTE_ALIGMENT(__Value, __Aligment) ((__Aligment == 1) ? (__Value) : (((__Value + __Aligment - 1) / __Aligment) * __Aligment))
+#endif
diff --git a/ubuntu/rtl8192se/rtl_ethtool.c b/ubuntu/rtl8192se/rtl_ethtool.c
new file mode 100755
index 00000000000..f16fdfcb0b5
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_ethtool.c
@@ -0,0 +1,59 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+ *****************************************************************************
+ */
+#include <linux/netdevice.h>
+#include <linux/ethtool.h>
+#include <linux/delay.h>
+
+#include "rtl_core.h"
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+static void rtl819x_ethtool_get_drvinfo(struct net_device *dev,
+ struct ethtool_drvinfo *info)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ strcpy(info->driver, DRV_NAME);
+ strcpy(info->version, DRV_VERSION);
+#if defined RTL8192SE
+ snprintf(info->fw_version, sizeof(info->fw_version), "%d",
+ priv->pFirmware->FirmwareVersion);
+#endif
+ strcpy(info->bus_info, pci_name(priv->pdev));
+}
+
+static u32 rtl819x_ethtool_get_link(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ return ((priv->rtllib->state == RTLLIB_LINKED) ||
+ (priv->rtllib->state == RTLLIB_LINKED_SCANNING));
+}
+
+const struct ethtool_ops rtl819x_ethtool_ops = {
+ .get_drvinfo = rtl819x_ethtool_get_drvinfo,
+ .get_link = rtl819x_ethtool_get_link,
+};
+#endif
diff --git a/ubuntu/rtl8192se/rtl_mesh.c b/ubuntu/rtl8192se/rtl_mesh.c
new file mode 100755
index 00000000000..e0da2fc59a9
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_mesh.c
@@ -0,0 +1,371 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifdef _RTL8192_EXT_PATCH_
+
+#include <asm/uaccess.h>
+#include <linux/pci.h>
+
+#include "rtl_wx.h"
+#include "rtl_core.h"
+#include "rtl_dm.h"
+#include "rtl8192s/r8192S_phy.h"
+#include "rtl8192s/r8192S_phyreg.h"
+#include "rtl8192s/r8192S_rtl6052.h"
+#include "rtl8192s/r8192S_Efuse.h"
+#include "../../mshclass/msh_class.h"
+
+int meshdev_up(struct net_device *meshdev,bool is_silent_reset)
+{
+ struct meshdev_priv * mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(mpriv->priv->rtllib->PowerSaveControl));
+ bool init_status;
+ struct net_device *dev = ieee->dev;
+ RT_TRACE(COMP_DOWN, "==========>%s()\n", __FUNCTION__);
+
+ mpriv->priv->up_first_time = 0;
+ mpriv->rtllib->iw_mode = IW_MODE_MESH;
+ if(mpriv->priv->mesh_up){
+ RT_TRACE(COMP_INIT,"%s():mesh is up,return\n",__FUNCTION__);
+ return -1;
+ }
+#ifdef RTL8192SE
+ mpriv->priv->ReceiveConfig =
+ RCR_APPFCS | RCR_APWRMGT | /*RCR_ADD3 |*/
+ RCR_AMF | RCR_ADF | RCR_APP_MIC | RCR_APP_ICV |
+ RCR_AICV | RCR_ACRC32 |
+ RCR_AB | RCR_AM |
+ RCR_APM |
+ /*RCR_AAP |*/
+ RCR_APP_PHYST_STAFF | RCR_APP_PHYST_RXFF |
+ (mpriv->priv->EarlyRxThreshold<<RCR_FIFO_OFFSET) ;
+
+#else
+ mpriv->priv->ReceiveConfig = RCR_ADD3 |
+ RCR_AMF | RCR_ADF |
+ RCR_AICV |
+ RCR_AB | RCR_AM | RCR_APM |
+ RCR_AAP | ((u32)7<<RCR_MXDMA_OFFSET) |
+ ((u32)7 << RCR_FIFO_OFFSET) | RCR_ONLYERLPKT;
+
+#endif
+
+ if(!mpriv->priv->up) {
+ RT_TRACE(COMP_INIT, "Bringing up iface");
+ mpriv->priv->bfirst_init = true;
+ init_status = mpriv->priv->ops->initialize_adapter(dev);
+ if(init_status != true) {
+ RT_TRACE(COMP_ERR,"ERR!!! %s(): initialization is failed!\n",__FUNCTION__);
+ return -1;
+ }
+ RT_TRACE(COMP_INIT, "start adapter finished\n");
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC);
+ printk("==>%s():priv->up is 0\n",__FUNCTION__);
+ mpriv->rtllib->ieee_up=1;
+ mpriv->priv->bfirst_init = false;
+#ifdef ENABLE_GPIO_RADIO_CTL
+ if(mpriv->priv->polling_timer_on == 0){
+ check_rfctrl_gpio_timer((unsigned long)dev);
+ }
+#endif
+ if(!is_silent_reset){
+ mpriv->rtllib->current_network.channel = INIT_DEFAULT_CHAN;
+ mpriv->rtllib->current_mesh_network.channel = INIT_DEFAULT_CHAN;
+ if(mpriv->priv->mshobj->ext_patch_r819x_wx_set_mesh_chan)
+ mpriv->priv->mshobj->ext_patch_r819x_wx_set_mesh_chan(dev,INIT_DEFAULT_CHAN);
+ if(mpriv->priv->mshobj->ext_patch_r819x_wx_set_channel)
+ {
+ mpriv->priv->mshobj->ext_patch_r819x_wx_set_channel(mpriv->rtllib, INIT_DEFAULT_CHAN);
+ }
+ printk("%s():set chan %d\n",__FUNCTION__,INIT_DEFAULT_CHAN);
+ mpriv->rtllib->set_chan(dev, INIT_DEFAULT_CHAN);
+ }
+ dm_InitRateAdaptiveMask(dev);
+ watch_dog_timer_callback((unsigned long) dev);
+
+ } else {
+ rtllib_stop_scan(ieee);
+ msleep(1000);
+ }
+ if(!ieee->mesh_started) {
+#ifdef RTL8192E
+ if(ieee->eRFPowerState!=eRfOn)
+ MgntActSet_RF_State(dev, eRfOn, ieee->RfOffReason);
+#endif
+ if(mpriv->priv->mshobj && mpriv->priv->mshobj->ext_patch_rtl819x_up )
+ mpriv->priv->mshobj->ext_patch_rtl819x_up(mpriv->priv->mshobj);
+
+
+ if(!netif_queue_stopped(meshdev))
+ netif_start_queue(meshdev);
+ else
+ netif_wake_queue(meshdev);
+
+ rtllib_reset_queue(ieee);
+ }
+
+ mpriv->priv->mesh_up = 1;
+
+ RT_TRACE(COMP_DOWN, "<==========%s()\n", __FUNCTION__);
+ return 0;
+}
+
+int meshdev_down(struct net_device *meshdev)
+{
+ struct meshdev_priv * mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct r8192_priv *priv = (void*)ieee->priv;
+ struct net_device *dev = ieee->dev;
+ unsigned long flags = 0;
+ u8 RFInProgressTimeOut = 0;
+ if(priv->mesh_up == 0) {
+ RT_TRACE(COMP_ERR,"%s():ERR!!! mesh is already down\n",__FUNCTION__)
+ return -1;
+ }
+
+ RT_TRACE(COMP_DOWN, "==========>%s()\n", __FUNCTION__);
+
+ if (netif_running(meshdev)) {
+ netif_stop_queue(meshdev);
+ }
+
+ if(!priv->up)
+ {
+ priv->bDriverIsGoingToUnload = true;
+ ieee->ieee_up = 0;
+ rtl8192_irq_disable(dev);
+ rtl8192_cancel_deferred_work(priv);
+#ifndef RTL8190P
+ cancel_delayed_work(&priv->rtllib->hw_wakeup_wq);
+#endif
+ deinit_hal_dm(dev);
+ del_timer_sync(&priv->watch_dog_timer);
+ rtllib_softmac_stop_protocol(ieee, 1, true);
+
+ SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock);
+ while(priv->RFChangeInProgress)
+ {
+ SPIN_UNLOCK_PRIV_RFPS(&priv->rf_ps_lock);
+ if(RFInProgressTimeOut > 100)
+ {
+ SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock);
+ break;
+ }
+ printk("===>%s():RF is in progress, need to wait until rf chang is done.\n",__FUNCTION__);
+ mdelay(1);
+ RFInProgressTimeOut ++;
+ SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock);
+ }
+ priv->RFChangeInProgress = true;
+ SPIN_UNLOCK_PRIV_RFPS(&priv->rf_ps_lock);
+ priv->ops->stop_adapter(dev, false);
+ SPIN_LOCK_PRIV_RFPS(&priv->rf_ps_lock);
+ priv->RFChangeInProgress = false;
+ SPIN_UNLOCK_PRIV_RFPS(&priv->rf_ps_lock);
+ udelay(100);
+ memset(&priv->rtllib->current_network, 0 , offsetof(struct rtllib_network, list));
+ priv->rtllib->current_network.channel = INIT_DEFAULT_CHAN;
+#ifdef CONFIG_ASPM_OR_D3
+ RT_ENABLE_ASPM(dev);
+#endif
+ memset(&ieee->current_mesh_network, 0 , offsetof(struct rtllib_network, list));
+ priv->rtllib->current_mesh_network.channel = INIT_DEFAULT_CHAN;
+ ieee->mesh_state = RTLLIB_NOLINK;
+ } else {
+ rtllib_softmac_stop_protocol(ieee, 1, true);
+ memset(&ieee->current_mesh_network, 0 , offsetof(struct rtllib_network, list));
+ if((ieee->current_network.channel > 0) && (ieee->current_network.channel < 15))
+ priv->rtllib->current_mesh_network.channel = ieee->current_network.channel;
+ else
+ priv->rtllib->current_mesh_network.channel = INIT_DEFAULT_CHAN;
+
+ ieee->mesh_state = RTLLIB_NOLINK;
+ ieee->iw_mode = IW_MODE_INFRA;
+ }
+ priv->mesh_up = 0;
+ RT_TRACE(COMP_DOWN, "<==========%s()\n", __FUNCTION__);
+
+ return 0;
+}
+
+static int meshdev_open(struct net_device *meshdev)
+{
+ struct meshdev_priv * mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct r8192_priv *priv = (void*)ieee->priv;
+ int ret;
+
+ SEM_DOWN_PRIV_WX(&priv->wx_sem);
+ ret = meshdev_up(meshdev,false);
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+
+ return ret;
+}
+
+static int meshdev_close(struct net_device *meshdev)
+{
+ struct meshdev_priv * mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct r8192_priv *priv = (void *)ieee->priv;
+ int ret;
+
+ SEM_DOWN_PRIV_WX(&priv->wx_sem);
+ ret = meshdev_down(meshdev);
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+
+ return ret;
+}
+
+extern int meshdev_wx_mesh(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+static int meshdev_ioctl(struct net_device *meshdev, struct ifreq *rq, int cmd)
+{
+ struct iwreq *wrq = (struct iwreq *)rq;
+ int ret = -1;
+ if(cmd == 0x8BEE)
+ {
+ ret = meshdev_wx_mesh(meshdev, NULL, &(wrq->u), wrq->u.data.pointer);
+ }
+ return ret;
+}
+
+struct net_device_stats *meshdev_stats(struct net_device *meshdev)
+{
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ return &((struct meshdev_priv*)netdev_priv(meshdev))->stats;
+#else
+ return &((struct meshdev_priv*)meshdev->priv)->stats;
+#endif
+}
+
+static int meshdev_tx(struct sk_buff *skb, struct net_device *meshdev)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device * ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ memset(skb->cb,0,sizeof(skb->cb));
+
+ return rtllib_mesh_xmit(skb, dev);
+}
+
+static void meshdev_tx_timeout(struct net_device *meshdev)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device * ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ rtl8192_tx_timeout(dev);
+}
+
+#ifdef HAVE_NET_DEVICE_OPS
+static const struct net_device_ops mesh_netdev_ops = {
+ .ndo_open = meshdev_open,
+ .ndo_stop = meshdev_close,
+ .ndo_get_stats = meshdev_stats,
+ .ndo_tx_timeout = meshdev_tx_timeout,
+ .ndo_do_ioctl = meshdev_ioctl,
+ .ndo_start_xmit = meshdev_tx,
+};
+#endif
+
+void meshdev_init(struct net_device* meshdev)
+{
+ struct meshdev_priv *mpriv;
+ ether_setup(meshdev);
+
+#ifdef HAVE_NET_DEVICE_OPS
+ meshdev->netdev_ops = &mesh_netdev_ops;
+#else
+ meshdev->open = meshdev_open;
+ meshdev->stop = meshdev_close;
+ meshdev->tx_timeout = meshdev_tx_timeout;
+ meshdev->do_ioctl = meshdev_ioctl;
+ meshdev->get_stats = meshdev_stats;
+ meshdev->hard_start_xmit = meshdev_tx;
+#endif
+ meshdev->wireless_handlers = &meshdev_wx_handlers_def;
+ meshdev->destructor = free_netdev;
+ meshdev->watchdog_timeo = HZ*3;
+ meshdev->type = ARPHRD_ETHER;
+ memset(meshdev->broadcast,0xFF, ETH_ALEN);
+
+ meshdev->watchdog_timeo = 3 * HZ;
+
+ mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ memset(mpriv, 0, sizeof(struct meshdev_priv));
+
+ return;
+}
+
+int meshdev_update_ext_chnl_offset_as_client(void *data)
+{
+ struct rtllib_device *ieee = container_of_work_rsl(data, struct rtllib_device,
+ ext_update_extchnloffset_wq);
+ struct r8192_priv *priv = (void *)ieee->priv;
+ struct net_device *dev = ieee->dev;
+ struct mshclass *mshobj= priv->mshobj;
+ u8 updateBW = 0;
+ u8 bserverHT = 0;
+
+ updateBW=mshobj->ext_patch_r819x_wx_update_beacon(dev,&bserverHT);
+ printk("$$$$$$%s(): Cur_networ.chan=%d, cur_mesh_net.chan=%d,bserverHT=%d\n",
+ __FUNCTION__,ieee->current_network.channel,ieee->current_mesh_network.channel,bserverHT);
+ if (updateBW == 1) {
+ if (bserverHT == 0) {
+ printk("===>server is not HT supported,set 20M\n");
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT);
+ } else {
+ printk("===>updateBW is 1,bCurBW40MHz is %d,ieee->serverExtChlOffset is %d\n",
+ ieee->pHTInfo->bCurBW40MHz,ieee->serverExtChlOffset);
+ if (ieee->pHTInfo->bCurBW40MHz)
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, ieee->serverExtChlOffset);
+ else
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, ieee->serverExtChlOffset);
+ }
+ } else {
+ printk("===>there is no same hostname server, ERR!!!\n");
+ return -1;
+ }
+ return 0;
+}
+
+int meshdev_start_mesh_protocol_wq(void *data)
+{
+ struct rtllib_device *ieee = container_of_work_rsl(data, struct rtllib_device,
+ ext_start_mesh_protocol_wq);
+
+ ieee->set_chan(ieee->dev, ieee->current_mesh_network.channel);
+ if(ieee->pHTInfo->bCurBW40MHz)
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ else
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+
+ rtllib_start_mesh_protocol(ieee);
+
+ return 0;
+}
+#endif
diff --git a/ubuntu/rtl8192se/rtl_mesh.h b/ubuntu/rtl8192se/rtl_mesh.h
new file mode 100755
index 00000000000..f018639d5f6
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_mesh.h
@@ -0,0 +1,40 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifdef _RTL8192_EXT_PATCH_
+#ifndef _RTL_MESH_H
+#define _RTL_MESH_H
+
+struct net_device;
+struct net_device_stats;
+
+int meshdev_up(struct net_device *meshdev,bool is_silent_reset);
+int meshdev_down(struct net_device *meshdev);
+struct net_device_stats *meshdev_stats(struct net_device *meshdev);
+void meshdev_init(struct net_device* meshdev);
+
+int meshdev_update_ext_chnl_offset_as_client(void *data);
+int meshdev_start_mesh_protocol_wq(void *data);
+#endif
+#endif
diff --git a/ubuntu/rtl8192se/rtl_pm.c b/ubuntu/rtl8192se/rtl_pm.c
new file mode 100755
index 00000000000..04567ad9e4a
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_pm.c
@@ -0,0 +1,193 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+
+#ifdef CONFIG_PM_RTL
+#ifdef RTL8192CE
+#include "rtl_core.h"
+#include "rtl8192c/r8192C_hw.h"
+#include "rtl8192c/r8192C_phy.h"
+#include "rtl8192c/r8192C_phyreg.h"
+#include "rtl8192c/r8192C_rtl6052.h"
+#elif defined RTL8192SE
+#include "rtl_core.h"
+#include "rtl8192s/r8192S_hw.h"
+#include "rtl8192s/r8192S_phy.h"
+#include "rtl8192s/r8192S_phyreg.h"
+#include "rtl8192s/r8192S_rtl6052.h"
+#else
+#include "rtl_core.h"
+#include "rtl8192e/r8192E_hw.h"
+#include "rtl8192e/r8190P_rtl8256.h"
+#endif
+#include "rtl_pm.h"
+
+int rtl8192E_save_state (struct pci_dev *dev, pm_message_t state)
+{
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10))
+ printk(KERN_NOTICE "r8192E save state call (state %u).\n", state);
+#else
+ printk(KERN_NOTICE "r8192E save state call (state %u).\n", state.event);
+#endif
+ return(-EAGAIN);
+}
+
+
+int rtl8192E_suspend (struct pci_dev *pdev, pm_message_t state)
+{
+ struct net_device *dev = pci_get_drvdata(pdev);
+ struct r8192_priv *priv = rtllib_priv(dev);
+#if !(defined RTL8192SE || defined RTL8192CE)
+ u32 ulRegRead;
+#endif
+
+ RT_TRACE(COMP_POWER, "============> r8192E suspend call.\n");
+ printk("============> r8192E suspend call.\n");
+#ifdef ENABLE_GPIO_RADIO_CTL
+ del_timer_sync(&priv->gpio_polling_timer);
+ cancel_delayed_work(&priv->gpio_change_rf_wq);
+ priv->polling_timer_on = 0;
+#endif
+
+ if (!netif_running(dev)){
+ printk("RTL819XE:UI is open out of suspend function\n");
+ goto out_pci_suspend;
+ }
+
+#ifdef HAVE_NET_DEVICE_OPS
+ if (dev->netdev_ops->ndo_stop)
+ dev->netdev_ops->ndo_stop(dev);
+#else
+ dev->stop(dev);
+#endif
+ netif_device_detach(dev);
+
+#if !(defined RTL8192SE || defined RTL8192CE)
+ if(!priv->rtllib->bSupportRemoteWakeUp) {
+ MgntActSet_RF_State(dev, eRfOff, RF_CHANGE_BY_INIT);
+ ulRegRead = read_nic_dword(dev, CPU_GEN);
+ ulRegRead|=CPU_GEN_SYSTEM_RESET;
+ write_nic_dword(dev, CPU_GEN, ulRegRead);
+ } else {
+ write_nic_dword(dev, WFCRC0, 0xffffffff);
+ write_nic_dword(dev, WFCRC1, 0xffffffff);
+ write_nic_dword(dev, WFCRC2, 0xffffffff);
+#ifdef RTL8190P
+ ucRegRead = read_nic_byte(dev, GPO);
+ ucRegRead |= BIT0;
+ write_nic_byte(dev, GPO, ucRegRead);
+#endif
+ write_nic_byte(dev, PMR, 0x5);
+ write_nic_byte(dev, MacBlkCtrl, 0xa);
+ }
+#endif
+out_pci_suspend:
+ RT_TRACE(COMP_POWER, "r8192E support WOL call??????????????????????\n");
+ printk("r8192E support WOL call??????????????????????\n");
+ if(priv->rtllib->bSupportRemoteWakeUp) {
+ RT_TRACE(COMP_POWER, "r8192E support WOL call!!!!!!!!!!!!!!!!!!.\n");
+ }
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10))
+ pci_save_state(pdev,&(priv->pci_state));
+ pci_disable_device(pdev);
+ pci_enable_wake(pdev, state,\
+ priv->rtllib->bSupportRemoteWakeUp?1:0);
+ pci_set_power_state(pdev,state);
+#else
+ pci_save_state(pdev);
+ pci_disable_device(pdev);
+ pci_enable_wake(pdev, pci_choose_state(pdev,state),\
+ priv->rtllib->bSupportRemoteWakeUp?1:0);
+ pci_set_power_state(pdev,pci_choose_state(pdev,state));
+#endif
+
+ mdelay(20);
+
+ return 0;
+}
+
+int rtl8192E_resume (struct pci_dev *pdev)
+{
+ struct net_device *dev = pci_get_drvdata(pdev);
+#ifdef ENABLE_GPIO_RADIO_CTL
+ struct r8192_priv *priv = rtllib_priv(dev);
+#endif
+ int err;
+ u32 val;
+
+ RT_TRACE(COMP_POWER, "================>r8192E resume call.");
+ printk("================>r8192E resume call.\n");
+
+ pci_set_power_state(pdev, PCI_D0);
+
+ err = pci_enable_device(pdev);
+ if(err) {
+ printk(KERN_ERR "%s: pci_enable_device failed on resume\n",
+ dev->name);
+ return err;
+ }
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10))
+ pci_restore_state(pdev,&(priv->pci_state));
+#else
+ pci_restore_state(pdev);
+#endif
+
+ pci_read_config_dword(pdev, 0x40, &val);
+ if ((val & 0x0000ff00) != 0) {
+ pci_write_config_dword(pdev, 0x40, val & 0xffff00ff);
+ }
+
+ pci_enable_wake(pdev, PCI_D0, 0);
+
+#ifdef ENABLE_GPIO_RADIO_CTL
+ if(priv->polling_timer_on == 0){
+ check_rfctrl_gpio_timer((unsigned long)dev);
+ }
+#endif
+
+ if(!netif_running(dev)){
+ printk("RTL819XE:UI is open out of resume function\n");
+ goto out;
+ }
+
+ netif_device_attach(dev);
+#ifdef HAVE_NET_DEVICE_OPS
+ if (dev->netdev_ops->ndo_open)
+ dev->netdev_ops->ndo_open(dev);
+#else
+ dev->open(dev);
+#endif
+out:
+ RT_TRACE(COMP_POWER, "<================r8192E resume call.\n");
+ return 0;
+}
+
+
+int rtl8192E_enable_wake (struct pci_dev *dev, pm_message_t state, int enable)
+{
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10))
+ printk(KERN_NOTICE "r8192E enable wake call (state %u, enable %d).\n",
+ state, enable);
+#else
+ printk(KERN_NOTICE "r8192E enable wake call (state %u, enable %d).\n",
+ state.event, enable);
+#endif
+ return(-EAGAIN);
+}
+
+#endif
diff --git a/ubuntu/rtl8192se/rtl_pm.h b/ubuntu/rtl8192se/rtl_pm.h
new file mode 100755
index 00000000000..680e2bc8995
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_pm.h
@@ -0,0 +1,39 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+
+#ifdef CONFIG_PM_RTL
+
+#ifndef R8192E_PM_H
+#define R8192E_PM_H
+
+#include <linux/types.h>
+#include <linux/pci.h>
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10))
+#define pm_message_t u32
+#endif
+
+int rtl8192E_save_state (struct pci_dev *dev, pm_message_t state);
+int rtl8192E_suspend (struct pci_dev *dev, pm_message_t state);
+int rtl8192E_resume (struct pci_dev *dev);
+int rtl8192E_enable_wake (struct pci_dev *dev, pm_message_t state, int enable);
+
+#endif
+
+#endif
diff --git a/ubuntu/rtl8192se/rtl_ps.c b/ubuntu/rtl8192se/rtl_ps.c
new file mode 100755
index 00000000000..019123da4d8
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_ps.c
@@ -0,0 +1,732 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+ *****************************************************************************/
+#include "rtl_ps.h"
+#include "rtl_core.h"
+#ifdef RTL8192CE
+#include "rtl8192c/r8192C_phy.h"
+#include "rtl8192c/r8192C_phyreg.h"
+#include "rtl8192c/r8192C_rtl6052.h"
+#include "rtl8192c/r8192C_Efuse.h"
+#elif defined RTL8192SE
+#include "rtl8192s/r8192S_phy.h"
+#include "rtl8192s/r8192S_phyreg.h"
+#include "rtl8192s/r8192S_rtl6052.h"
+#include "rtl8192s/r8192S_Efuse.h"
+#else
+#include "rtl8192e/r8192E_phy.h"
+#include "rtl8192e/r8192E_phyreg.h"
+#include "rtl8192e/r8190P_rtl8256.h" /* RTL8225 Radio frontend */
+#include "rtl8192e/r8192E_cmdpkt.h"
+#endif
+
+#if defined(RTL8192E) || defined(RTL8192SE) || defined RTL8192CE
+void rtl8192_hw_sleep_down(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ unsigned long flags = 0;
+#ifdef CONFIG_ASPM_OR_D3
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+#endif
+ spin_lock_irqsave(&priv->rf_ps_lock,flags);
+ if (priv->RFChangeInProgress) {
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flags);
+ RT_TRACE(COMP_RF, "rtl8192_hw_sleep_down(): RF Change in progress! \n");
+ printk("rtl8192_hw_sleep_down(): RF Change in progress!\n");
+ return;
+ }
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flags);
+ RT_TRACE(COMP_PS, "%s()============>come to sleep down\n", __FUNCTION__);
+
+#ifdef CONFIG_RTLWIFI_DEBUGFS
+ if(priv->debug->hw_holding) {
+ return;
+ }
+#endif
+ MgntActSet_RF_State(dev, eRfSleep, RF_CHANGE_BY_PS);
+#ifdef CONFIG_ASPM_OR_D3
+ if(pPSC->RegRfPsLevel & RT_RF_LPS_LEVEL_ASPM)
+ {
+ RT_ENABLE_ASPM(dev);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_LPS_LEVEL_ASPM);
+ }
+#endif
+}
+
+void rtl8192_hw_sleep_wq(void *data)
+{
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20))
+ struct rtllib_device *ieee = container_of_dwork_rsl(data,struct rtllib_device,hw_sleep_wq);
+ struct net_device *dev = ieee->dev;
+#else
+ struct net_device *dev = (struct net_device *)data;
+#endif
+ rtl8192_hw_sleep_down(dev);
+}
+
+void rtl8192_hw_wakeup(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ unsigned long flags = 0;
+#ifdef CONFIG_ASPM_OR_D3
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+#endif
+ spin_lock_irqsave(&priv->rf_ps_lock,flags);
+ if (priv->RFChangeInProgress) {
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flags);
+ RT_TRACE(COMP_RF, "rtl8192_hw_wakeup(): RF Change in progress! \n");
+ printk("rtl8192_hw_wakeup(): RF Change in progress! schedule wake up task again\n");
+ queue_delayed_work_rsl(priv->rtllib->wq,&priv->rtllib->hw_wakeup_wq,MSECS(10));
+ return;
+ }
+ spin_unlock_irqrestore(&priv->rf_ps_lock,flags);
+#ifdef CONFIG_ASPM_OR_D3
+ if (pPSC->RegRfPsLevel & RT_RF_LPS_LEVEL_ASPM) {
+ RT_DISABLE_ASPM(dev);
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_LPS_LEVEL_ASPM);
+ }
+#endif
+ RT_TRACE(COMP_PS, "%s()============>come to wake up\n", __FUNCTION__);
+ MgntActSet_RF_State(dev, eRfOn, RF_CHANGE_BY_PS);
+}
+
+void rtl8192_hw_wakeup_wq(void *data)
+{
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20))
+ struct rtllib_device *ieee = container_of_dwork_rsl(data,struct rtllib_device,hw_wakeup_wq);
+ struct net_device *dev = ieee->dev;
+#else
+ struct net_device *dev = (struct net_device *)data;
+#endif
+ rtl8192_hw_wakeup(dev);
+
+}
+
+#define MIN_SLEEP_TIME 50
+#define MAX_SLEEP_TIME 10000
+void rtl8192_hw_to_sleep(struct net_device *dev, u32 th, u32 tl)
+{
+#ifdef _RTL8192_EXT_PATCH_
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u32 rb = jiffies, sleep_cost = MSECS(8+16+7), delta = 0;
+ unsigned long flags;
+
+ if((tl > rb) && (th > 0))
+ return;
+
+ spin_lock_irqsave(&priv->ps_lock,flags);
+
+ if (tl >= sleep_cost)
+ tl -= sleep_cost;
+ else if (th > 0) {
+ tl = 0xffffffff - sleep_cost + tl;
+ th--;
+ } else {
+ spin_unlock_irqrestore(&priv->ps_lock,flags);
+ return;
+ }
+
+ if (tl > rb) {
+ delta = tl - rb;
+ } else if (th > 0) {
+ delta = 0xffffffff - rb + tl;
+ th --;
+ } else {
+ spin_unlock_irqrestore(&priv->ps_lock,flags);
+ return;
+ }
+
+ if (delta <= MSECS(MIN_SLEEP_TIME)) {
+ spin_unlock_irqrestore(&priv->ps_lock,flags);
+ printk("too short to sleep::%x, %x, %lx\n",tl, rb, MSECS(MIN_SLEEP_TIME));
+ return;
+ }
+
+ if(delta > MSECS(MAX_SLEEP_TIME)) {
+ spin_unlock_irqrestore(&priv->ps_lock,flags);
+ printk("========>too long to sleep:%x, %x, %lx\n", tl, rb, MSECS(MAX_SLEEP_TIME));
+ return;
+ }
+
+ RT_TRACE(COMP_LPS, "==============>%s(): wake up time is %d,%d\n",__FUNCTION__,delta,jiffies_to_msecs(delta));
+ queue_delayed_work_rsl(priv->rtllib->wq,&priv->rtllib->hw_wakeup_wq,delta);
+ queue_delayed_work_rsl(priv->rtllib->wq, (void *)&priv->rtllib->hw_sleep_wq,0);
+
+ spin_unlock_irqrestore(&priv->ps_lock,flags);
+#else
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ u32 rb = jiffies;
+ unsigned long flags;
+
+ spin_lock_irqsave(&priv->ps_lock,flags);
+
+ tl -= MSECS(8+16+7);
+
+ if(((tl>=rb)&& (tl-rb) <= MSECS(MIN_SLEEP_TIME))
+ ||((rb>tl)&& (rb-tl) < MSECS(MIN_SLEEP_TIME))) {
+ spin_unlock_irqrestore(&priv->ps_lock,flags);
+ printk("too short to sleep::%x, %x, %lx\n",tl, rb, MSECS(MIN_SLEEP_TIME));
+ return;
+ }
+
+ if(((tl > rb) && ((tl-rb) > MSECS(MAX_SLEEP_TIME)))||
+ ((tl < rb) && (tl>MSECS(69)) && ((rb-tl) > MSECS(MAX_SLEEP_TIME)))||
+ ((tl<rb)&&(tl<MSECS(69))&&((tl+0xffffffff-rb)>MSECS(MAX_SLEEP_TIME)))) {
+ printk("========>too long to sleep:%x, %x, %lx\n", tl, rb, MSECS(MAX_SLEEP_TIME));
+ spin_unlock_irqrestore(&priv->ps_lock,flags);
+ return;
+ }
+ {
+ u32 tmp = (tl>rb)?(tl-rb):(rb-tl);
+ queue_delayed_work_rsl(priv->rtllib->wq,
+ &priv->rtllib->hw_wakeup_wq,tmp);
+ }
+ queue_delayed_work_rsl(priv->rtllib->wq,
+ (void *)&priv->rtllib->hw_sleep_wq,0);
+ spin_unlock_irqrestore(&priv->ps_lock,flags);
+#endif
+}
+#endif
+
+#ifdef ENABLE_IPS
+void InactivePsWorkItemCallback(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+
+ RT_TRACE(COMP_PS, "InactivePsWorkItemCallback() ---------> \n");
+ pPSC->bSwRfProcessing = true;
+
+ RT_TRACE(COMP_PS, "InactivePsWorkItemCallback(): Set RF to %s.\n", \
+ pPSC->eInactivePowerState == eRfOff?"OFF":"ON");
+#ifdef CONFIG_ASPM_OR_D3
+ if(pPSC->eInactivePowerState == eRfOn)
+ {
+
+ if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM))
+ {
+ RT_DISABLE_ASPM(dev);
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM);
+ }
+#ifdef TODO
+ else if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3))
+ {
+ RT_LEAVE_D3(dev, false);
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3);
+ }
+#endif
+ }
+#endif
+ MgntActSet_RF_State(dev, pPSC->eInactivePowerState, RF_CHANGE_BY_IPS);
+
+#ifdef CONFIG_ASPM_OR_D3
+ if(pPSC->eInactivePowerState == eRfOff)
+ {
+ if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM)
+ {
+ RT_ENABLE_ASPM(dev);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM);
+ }
+#ifdef TODO
+ else if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3)
+ {
+ RT_ENTER_D3(dev, false);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3);
+ }
+#endif
+ }
+#endif
+
+#if 0
+ if(pPSC->eInactivePowerState == eRfOn)
+ {
+ while( index < 4 )
+ {
+ if( ( pMgntInfo->SecurityInfo.PairwiseEncAlgorithm == WEP104_Encryption ) ||
+ (pMgntInfo->SecurityInfo.PairwiseEncAlgorithm == WEP40_Encryption) )
+ {
+ if( pMgntInfo->SecurityInfo.KeyLen[index] != 0)
+ pAdapter->HalFunc.SetKeyHandler(pAdapter, index, 0, false, pMgntInfo->SecurityInfo.PairwiseEncAlgorithm, true, false);
+
+ }
+ index++;
+ }
+ }
+#endif
+ pPSC->bSwRfProcessing = false;
+ RT_TRACE(COMP_PS, "InactivePsWorkItemCallback() <--------- \n");
+}
+
+void
+IPSEnter(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+ RT_RF_POWER_STATE rtState;
+
+ if (pPSC->bInactivePs)
+ {
+ rtState = priv->rtllib->eRFPowerState;
+ if (rtState == eRfOn && !pPSC->bSwRfProcessing &&\
+ (priv->rtllib->state != RTLLIB_LINKED)&&\
+ (priv->rtllib->iw_mode != IW_MODE_MASTER))
+ {
+ RT_TRACE(COMP_PS,"IPSEnter(): Turn off RF.\n");
+ pPSC->eInactivePowerState = eRfOff;
+ priv->isRFOff = true;
+ priv->bInPowerSaveMode = true;
+ InactivePsWorkItemCallback(dev);
+ }
+ }
+}
+
+void
+IPSLeave(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+ RT_RF_POWER_STATE rtState;
+
+ if (pPSC->bInactivePs)
+ {
+ rtState = priv->rtllib->eRFPowerState;
+ if (rtState != eRfOn && !pPSC->bSwRfProcessing && priv->rtllib->RfOffReason <= RF_CHANGE_BY_IPS)
+ {
+ RT_TRACE(COMP_PS, "IPSLeave(): Turn on RF.\n");
+ pPSC->eInactivePowerState = eRfOn;
+ priv->bInPowerSaveMode = false;
+ InactivePsWorkItemCallback(dev);
+ }
+ }
+}
+void IPSLeave_wq(void *data)
+{
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20))
+ struct rtllib_device *ieee = container_of_work_rsl(data,struct rtllib_device,ips_leave_wq);
+ struct net_device *dev = ieee->dev;
+#else
+ struct net_device *dev = (struct net_device *)data;
+#endif
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ down(&priv->rtllib->ips_sem);
+ IPSLeave(dev);
+ up(&priv->rtllib->ips_sem);
+}
+void rtllib_ips_leave_wq(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ RT_RF_POWER_STATE rtState;
+ rtState = priv->rtllib->eRFPowerState;
+
+ if(priv->rtllib->PowerSaveControl.bInactivePs){
+ if(rtState == eRfOff){
+ if(priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS)
+ {
+ RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__);
+ return;
+ }
+ else{
+ printk("=========>%s(): IPSLeave\n",__FUNCTION__);
+ queue_work_rsl(priv->rtllib->wq,&priv->rtllib->ips_leave_wq);
+ }
+ }
+ }
+}
+void rtllib_ips_leave(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ down(&priv->rtllib->ips_sem);
+ IPSLeave(dev);
+ up(&priv->rtllib->ips_sem);
+}
+#endif
+
+#ifdef ENABLE_LPS
+bool MgntActSet_802_11_PowerSaveMode(struct net_device *dev, u8 rtPsMode)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+#ifdef _RTL8192_EXT_PATCH_
+ if((priv->rtllib->iw_mode == IW_MODE_ADHOC) || (priv->rtllib->iw_mode == IW_MODE_MASTER)
+ || (priv->rtllib->iw_mode == IW_MODE_MESH))
+#else
+ if(priv->rtllib->iw_mode == IW_MODE_ADHOC)
+#endif
+ {
+ return false;
+ }
+
+
+ RT_TRACE(COMP_LPS,"%s(): set ieee->ps = %x\n",__FUNCTION__,rtPsMode);
+ if(!priv->ps_force) {
+ priv->rtllib->ps = rtPsMode;
+ }
+#if 0
+ priv->rtllib->dot11PowerSaveMode = rtPsMode;
+
+ if(priv->rtllib->dot11PowerSaveMode == eMaxPs)
+ {
+ }
+ else
+ {
+ }
+#endif
+ if(priv->rtllib->sta_sleep != 0 && rtPsMode == RTLLIB_PS_DISABLED)
+ {
+ unsigned long flags;
+
+ rtl8192_hw_wakeup(dev);
+ priv->rtllib->sta_sleep = 0;
+
+ spin_lock_irqsave(&(priv->rtllib->mgmt_tx_lock), flags);
+ printk("LPS leave: notify AP we are awaked ++++++++++ SendNullFunctionData\n");
+ rtllib_sta_ps_send_null_frame(priv->rtllib, 0);
+ spin_unlock_irqrestore(&(priv->rtllib->mgmt_tx_lock), flags);
+ }
+
+#if 0
+ if((pPSC->bFwCtrlLPS) && (pPSC->bLeisurePs))
+ {
+ if(priv->rtllib->dot11PowerSaveMode == eActive)
+ {
+ RpwmVal = 0x0C;
+ FwPwrMode = FW_PS_ACTIVE_MODE;
+ Adapter->HalFunc.SetHwRegHandler(Adapter, HW_VAR_SET_RPWM, (pu1Byte)(&RpwmVal));
+ Adapter->HalFunc.SetHwRegHandler(Adapter, HW_VAR_H2C_FW_PWRMODE, (pu1Byte)(&FwPwrMode));
+ }
+ else
+ {
+ if(GetFwLPS_Doze(Adapter))
+ {
+ RpwmVal = 0x02;
+ Adapter->HalFunc.SetHwRegHandler(Adapter, HW_VAR_H2C_FW_PWRMODE, (pu1Byte)(&pPSC->FWCtrlPSMode));
+ Adapter->HalFunc.SetHwRegHandler(Adapter, HW_VAR_SET_RPWM, (pu1Byte)(&RpwmVal));
+ }
+ else
+ {
+ pMgntInfo->dot11PowerSaveMode = eActive;
+ Adapter->bInPowerSaveMode = false;
+ }
+ }
+ }
+#endif
+ return true;
+}
+
+
+void LeisurePSEnter(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+
+ RT_TRACE(COMP_PS, "LeisurePSEnter()...\n");
+ RT_TRACE(COMP_PS, "pPSC->bLeisurePs = %d, ieee->ps = %d,pPSC->LpsIdleCount is %d,RT_CHECK_FOR_HANG_PERIOD is %d\n",
+ pPSC->bLeisurePs, priv->rtllib->ps,pPSC->LpsIdleCount,RT_CHECK_FOR_HANG_PERIOD);
+
+#ifdef _RTL8192_EXT_PATCH_
+ if(!((priv->rtllib->iw_mode == IW_MODE_INFRA) && (priv->rtllib->state == RTLLIB_LINKED))
+ || (priv->rtllib->iw_mode == IW_MODE_ADHOC) || (priv->rtllib->iw_mode == IW_MODE_MASTER)
+ || (priv->rtllib->iw_mode == IW_MODE_MESH))
+#else
+ if(!((priv->rtllib->iw_mode == IW_MODE_INFRA) && (priv->rtllib->state == RTLLIB_LINKED))
+ || (priv->rtllib->iw_mode == IW_MODE_ADHOC) || (priv->rtllib->iw_mode == IW_MODE_MASTER))
+#endif
+ return;
+
+ if (pPSC->bLeisurePs)
+ {
+ if(pPSC->LpsIdleCount >= RT_CHECK_FOR_HANG_PERIOD)
+ {
+
+ if(priv->rtllib->ps == RTLLIB_PS_DISABLED)
+ {
+
+ RT_TRACE(COMP_LPS, "LeisurePSEnter(): Enter 802.11 power save mode...\n");
+
+ if(!pPSC->bFwCtrlLPS)
+ {
+ if (priv->rtllib->SetFwCmdHandler)
+ {
+ priv->rtllib->SetFwCmdHandler(dev, FW_CMD_LPS_ENTER);
+ }
+ }
+ MgntActSet_802_11_PowerSaveMode(dev, RTLLIB_PS_MBCAST|RTLLIB_PS_UNICAST);
+
+ /*if(pPSC->RegRfPsLevel & RT_RF_LPS_LEVEL_ASPM)
+ {
+ RT_ENABLE_ASPM(pAdapter);
+ RT_SET_PS_LEVEL(pAdapter, RT_RF_LPS_LEVEL_ASPM);
+ }*/
+
+ }
+ }
+ else
+ pPSC->LpsIdleCount++;
+ }
+}
+
+
+void LeisurePSLeave(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+
+
+ RT_TRACE(COMP_PS, "LeisurePSLeave()...\n");
+ RT_TRACE(COMP_PS, "pPSC->bLeisurePs = %d, ieee->ps = %d\n",
+ pPSC->bLeisurePs, priv->rtllib->ps);
+
+ if (pPSC->bLeisurePs)
+ {
+ if(priv->rtllib->ps != RTLLIB_PS_DISABLED)
+ {
+#ifdef CONFIG_ASPM_OR_D3
+ if(pPSC->RegRfPsLevel & RT_RF_LPS_LEVEL_ASPM && RT_IN_PS_LEVEL(pPSC, RT_RF_LPS_LEVEL_ASPM))
+ {
+ RT_DISABLE_ASPM(dev);
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_LPS_LEVEL_ASPM);
+ }
+#endif
+ RT_TRACE(COMP_LPS, "LeisurePSLeave(): Busy Traffic , Leave 802.11 power save..\n");
+ MgntActSet_802_11_PowerSaveMode(dev, RTLLIB_PS_DISABLED);
+
+ if(!pPSC->bFwCtrlLPS)
+ {
+ if (priv->rtllib->SetFwCmdHandler)
+ {
+ priv->rtllib->SetFwCmdHandler(dev, FW_CMD_LPS_LEAVE);
+ }
+ }
+ }
+ }
+}
+#endif
+
+#ifdef CONFIG_ASPM_OR_D3
+bool
+PlatformEnable92CEBackDoor(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ bool bResult = true;
+ u8 value;
+
+ pci_read_config_byte(priv->pdev, 0x70f, &value);
+ value |= BIT7;
+ pci_write_config_byte(priv->pdev, 0x70f, value);
+
+
+ pci_read_config_byte(priv->pdev, 0x719, &value);
+ value |= (BIT3|BIT4);
+ pci_write_config_byte(priv->pdev, 0x719, value);
+
+
+ return bResult;
+}
+
+bool PlatformSwitchDevicePciASPM(struct net_device *dev, u8 value)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ bool bResult = false;
+
+#ifdef RTL8192CE
+ value |= 0x40;
+#endif
+
+ pci_write_config_byte(priv->pdev, priv->ASPMRegOffset, value);
+ udelay(100);
+
+ return bResult;
+}
+
+bool PlatformSwitchClkReq(struct net_device *dev, u8 value)
+{
+ bool bResult = false;
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ u8 Buffer;
+
+ Buffer= value;
+
+ pci_write_config_byte(priv->pdev,priv->ClkReqOffset,value);
+ bResult = true;
+#ifdef TODO
+ if(Buffer) {
+ priv->ClkReqState = true;
+ } else {
+ priv->ClkReqState = false;
+ }
+#endif
+ udelay(100);
+ return bResult;
+}
+
+void
+PlatformDisableASPM(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+
+ u8 LinkCtrlReg;
+ u16 PciBridgeLinkCtrlReg, ASPMLevel=0;
+
+#ifdef RTL8192CE
+ if (!priv->aspm_clkreq_enable) {
+ RT_TRACE(COMP_INIT, "%s: Fail to enable ASPM. Cannot find the Bus of PCI(Bridge).\n",\
+ __FUNCTION__);
+ return;
+ }
+#endif
+
+ LinkCtrlReg = priv->LinkCtrlReg;
+ ASPMLevel |= BIT0|BIT1;
+ LinkCtrlReg &=~ASPMLevel;
+
+ PciBridgeLinkCtrlReg = priv->PciBridgeLinkCtrlReg;
+ PciBridgeLinkCtrlReg &=~(BIT0|BIT1);
+
+ if (priv->aspm_clkreq_enable) {
+
+ pci_write_config_byte(priv->bridge_pdev,priv->PciBridgeASPMRegOffset,PciBridgeLinkCtrlReg);
+ RT_TRACE(COMP_POWER, "Write reg[%x]=%x\n", (priv->PciBridgeASPMRegOffset), PciBridgeLinkCtrlReg);
+ udelay(100);
+ }
+
+ PlatformSwitchDevicePciASPM(dev, priv->LinkCtrlReg);
+
+ PlatformSwitchClkReq(dev, 0x0);
+ if (pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_CLK_REQ)
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_CLK_REQ);
+ udelay(100);
+}
+
+void PlatformEnableASPM(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+ u16 ASPMLevel = 0;
+
+ if (!priv->aspm_clkreq_enable) {
+ RT_TRACE(COMP_INIT, "%s: Fail to enable ASPM. Cannot find the Bus of PCI(Bridge).\n",\
+ __FUNCTION__);
+ return;
+ }
+
+ ASPMLevel |= priv->RegDevicePciASPMSetting;
+ PlatformSwitchDevicePciASPM(dev, (priv->LinkCtrlReg | ASPMLevel));
+
+ if (pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_CLK_REQ) {
+ PlatformSwitchClkReq(dev,(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_CLK_REQ) ? 1 : 0);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_CLK_REQ);
+ }
+ udelay(100);
+
+ pci_write_config_byte(priv->bridge_pdev,priv->PciBridgeASPMRegOffset,\
+ ((priv->PciBridgeLinkCtrlReg | priv->RegHostPciASPMSetting)&~BIT0)&0xff);
+ RT_TRACE(COMP_INIT, "Write reg[%x] = %x\n",
+ priv->PciBridgeASPMRegOffset,
+ (priv->PciBridgeLinkCtrlReg|priv->RegHostPciASPMSetting));
+ udelay(100);
+}
+
+u32 PlatformResetPciSpace(struct net_device *dev,u8 Value)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+
+ pci_write_config_byte(priv->pdev,0x04,Value);
+
+ return 1;
+
+}
+bool PlatformSetPMCSR(struct net_device *dev,u8 value,bool bTempSetting)
+{
+ bool bResult = false;
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ u8 Buffer;
+ bool bActuallySet=false, bSetFunc=false;
+ unsigned long flag;
+
+ Buffer= value;
+ spin_lock_irqsave(&priv->D3_lock,flag);
+#ifdef TODO
+ if(bTempSetting)
+ {
+ if(Buffer==0x00)
+ {
+ priv->LeaveD3Cnt++;
+
+ {
+ bActuallySet =true;
+ }
+ }
+ else
+ {
+ priv->LeaveD3Cnt--;
+
+ if(priv->LeaveD3Cnt == 0)
+ {
+ bActuallySet=true;
+ }
+ }
+ }
+ else
+ {
+ priv->LeaveD3Cnt=0;
+ bActuallySet=true;
+ bSetFunc=true;
+ }
+#endif
+ if (bActuallySet) {
+ if (Buffer) {
+ PlatformSwitchClkReq(dev, 0x01);
+ } else {
+ PlatformSwitchClkReq(dev, 0x00);
+ }
+
+ pci_write_config_byte(priv->pdev,0x44,Buffer);
+ RT_TRACE(COMP_POWER, "PlatformSetPMCSR(): D3(value: %d)\n", Buffer);
+
+ bResult = true;
+ if (!Buffer) {
+ PlatformResetPciSpace(dev, 0x06);
+ PlatformResetPciSpace(dev, 0x07);
+ }
+
+ if (bSetFunc) {
+ if(Buffer)
+ {
+#ifdef TO_DO_LIST
+ RT_DISABLE_FUNC(Adapter, DF_IO_D3_BIT);
+#endif
+ } else {
+#ifdef TO_DO_LIST
+ RT_ENABLE_FUNC(Adapter, DF_IO_D3_BIT);
+#endif
+ }
+ }
+
+ }
+ spin_unlock_irqrestore(&priv->D3_lock,flag);
+ return bResult;
+}
+#endif
diff --git a/ubuntu/rtl8192se/rtl_ps.h b/ubuntu/rtl8192se/rtl_ps.h
new file mode 100755
index 00000000000..37f5f01ab85
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_ps.h
@@ -0,0 +1,62 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the r8180 driver, which is:
+ * Copyright 2004-2005 Andrea Merello <andreamrl@tiscali.it>, et al.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+ ******************************************************************************/
+#ifndef _RTL_PS_H
+#define _RTL_PS_H
+
+#include <linux/types.h>
+struct net_device;
+
+#define RT_CHECK_FOR_HANG_PERIOD 2
+#define INIT_DEFAULT_CHAN 1
+
+#if defined CONFIG_ASPM_OR_D3
+#define RT_DISABLE_ASPM(dev) PlatformDisableASPM(dev)
+#define RT_ENABLE_ASPM(dev) PlatformEnableASPM(dev)
+#define RT_ENTER_D3(dev, _bTempSetting) PlatformSetPMCSR(dev, 0x03, _bTempSetting)
+#define RT_LEAVE_D3(dev, _bTempSetting) PlatformSetPMCSR(dev, 0, _bTempSetting)
+bool PlatformEnable92CEBackDoor(struct net_device *dev);
+void PlatformDisableASPM(struct net_device *dev);
+void PlatformEnableASPM(struct net_device *dev);
+u32 PlatformResetPciSpace(struct net_device *dev,u8 Value);
+#endif
+
+#if defined(RTL8192E) || defined(RTL8192SE) || defined RTL8192CE
+void rtl8192_hw_wakeup(struct net_device *dev);
+void rtl8192_hw_to_sleep(struct net_device *dev, u32 th, u32 tl);
+void rtllib_ips_leave_wq(struct net_device *dev);
+void rtllib_ips_leave(struct net_device *dev);
+void IPSLeave_wq (void *data);
+#endif
+
+#ifdef ENABLE_IPS
+void IPSEnter(struct net_device *dev);
+void IPSLeave(struct net_device *dev);
+#endif
+
+#ifdef ENABLE_LPS
+void LeisurePSEnter(struct net_device *dev);
+void LeisurePSLeave(struct net_device *dev);
+#endif
+#endif
diff --git a/ubuntu/rtl8192se/rtl_regd.c b/ubuntu/rtl8192se/rtl_regd.c
new file mode 100755
index 00000000000..f9ce4430a59
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_regd.c
@@ -0,0 +1,390 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the ath driver, which is:
+ * Copyright (c) 2008-2009 Atheros Communications Inc.
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+ ******************************************************************************/
+#ifdef CONFIG_CFG_80211
+#include "rtl_core.h"
+#include <linux/kernel.h>
+#include <linux/slab.h>
+#include <net/cfg80211.h>
+
+#ifdef CONFIG_CRDA
+static struct country_code_to_enum_rd allCountries[] = {
+ {COUNTRY_CODE_FCC, "US"},
+ {COUNTRY_CODE_IC, "US"},
+ {COUNTRY_CODE_ETSI, "EC"},
+ {COUNTRY_CODE_SPAIN, "EC"},
+ {COUNTRY_CODE_FRANCE, "EC"},
+ {COUNTRY_CODE_MKK, "JP"},
+ {COUNTRY_CODE_MKK1, "JP"},
+ {COUNTRY_CODE_ISRAEL, "EC"},
+ {COUNTRY_CODE_TELEC, "JP"},
+ {COUNTRY_CODE_MIC, "JP"},
+ {COUNTRY_CODE_GLOBAL_DOMAIN, "JP"},
+ {COUNTRY_CODE_WORLD_WIDE_13, "EC"},
+ {COUNTRY_CODE_TELEC_NETGEAR, "EC"},
+};
+
+/* Only these channels all allow active scan on all world regulatory domains */
+#define RTL819x_2GHZ_CH01_11 REG_RULE(2412-10, 2462+10, 40, 0, 20, 0)
+
+/* We enable active scan on these a case by case basis by regulatory domain */
+#define RTL819x_2GHZ_CH12_13 REG_RULE(2467-10, 2472+10, 40, 0, 20, NL80211_RRF_PASSIVE_SCAN)
+#define RTL819x_2GHZ_CH14 REG_RULE(2484-10, 2484+10, 40, 0, 20, NL80211_RRF_PASSIVE_SCAN | \
+ NL80211_RRF_NO_OFDM)
+
+static const struct ieee80211_regdomain rtl_regdom_11 = {
+ .n_reg_rules = 1,
+ .alpha2 = "99",
+ .reg_rules = {
+ RTL819x_2GHZ_CH01_11,
+ }
+};
+
+static const struct ieee80211_regdomain rtl_regdom_global = {
+ .n_reg_rules = 3,
+ .alpha2 = "99",
+ .reg_rules = {
+ RTL819x_2GHZ_CH01_11,
+ RTL819x_2GHZ_CH12_13,
+ RTL819x_2GHZ_CH14,
+ }
+};
+
+static const struct ieee80211_regdomain rtl_regdom_world = {
+ .n_reg_rules = 2,
+ .alpha2 = "99",
+ .reg_rules = {
+ RTL819x_2GHZ_CH01_11,
+ RTL819x_2GHZ_CH12_13,
+ }
+};
+
+static void rtl_reg_apply_chan_plan(struct wiphy *wiphy)
+{
+ struct net_device *dev = wiphy_to_net_device(wiphy);
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ struct rtllib_device *rtllib = priv->rtllib;
+ struct ieee80211_supported_band *sband;
+ struct ieee80211_channel *ch;
+ int i;
+
+ sband = wiphy->bands[IEEE80211_BAND_2GHZ];
+
+ for (i = 0; i < sband->n_channels; i++) {
+ ch = &sband->channels[i];
+ if (ch->flags & IEEE80211_CHAN_DISABLED) {
+ GET_DOT11D_INFO(rtllib)->channel_map[ch->hw_value] = 0;
+ } else {
+ if (ch->flags & IEEE80211_CHAN_PASSIVE_SCAN) {
+ GET_DOT11D_INFO(rtllib)->channel_map[ch->hw_value] = 2;
+ } else {
+ GET_DOT11D_INFO(rtllib)->channel_map[ch->hw_value] = 1;
+ }
+ }
+
+ }
+
+ for (i = sband->n_channels - 1; i >= 0; i--) {
+ ch = &sband->channels[i];
+ if (!(ch->flags & IEEE80211_CHAN_NO_IBSS)) {
+ rtllib->ibss_maxjoin_chal = ch->hw_value;
+ break;
+ }
+ }
+
+ rtllib->IbssStartChnl = 10;
+
+ return;
+}
+
+void rtl_dump_channel_map(struct wiphy *wiphy)
+{
+ enum ieee80211_band band;
+ struct ieee80211_supported_band *sband;
+ struct ieee80211_channel *ch;
+ unsigned int i;
+
+ for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
+
+ if (!wiphy->bands[band])
+ continue;
+
+ sband = wiphy->bands[band];
+
+ for (i = 0; i < sband->n_channels; i++) {
+ ch = &sband->channels[i];
+ printk("chan:%d, NO_IBSS:%d,"
+ " PASSIVE_SCAN:%d, RADAR:%d, DISABLED:%d\n", i+1,
+ (ch->flags&IEEE80211_CHAN_NO_IBSS) ? 1:0,
+ (ch->flags&IEEE80211_CHAN_PASSIVE_SCAN) ? 1:0,
+ (ch->flags&IEEE80211_CHAN_RADAR) ? 1:0,
+ (ch->flags&IEEE80211_CHAN_DISABLED) ? 1:0
+ );
+ }
+
+ }
+}
+
+static void rtl_reg_apply_world_flags(struct wiphy *wiphy,
+ enum nl80211_reg_initiator initiator,
+ struct rtl_regulatory *reg)
+{
+ rtl_reg_apply_chan_plan(wiphy);
+ return;
+}
+
+int rtl_reg_notifier_apply(struct wiphy *wiphy,
+ struct regulatory_request *request,
+ struct rtl_regulatory *reg)
+{
+ switch (request->initiator) {
+ case NL80211_REGDOM_SET_BY_CORE:
+ break;
+ case NL80211_REGDOM_SET_BY_DRIVER:
+ case NL80211_REGDOM_SET_BY_USER:
+ rtl_reg_apply_world_flags(wiphy, request->initiator, reg);
+ rtl_dump_channel_map(wiphy);
+ break;
+ case NL80211_REGDOM_SET_BY_COUNTRY_IE:
+ rtl_reg_apply_world_flags(wiphy, request->initiator, reg);
+ rtl_dump_channel_map(wiphy);
+ break;
+ }
+
+ return 0;
+}
+
+static const struct
+ieee80211_regdomain *rtl_regdomain_select(struct rtl_regulatory *reg)
+{
+ switch (reg->country_code) {
+ case COUNTRY_CODE_FCC:
+ case COUNTRY_CODE_IC:
+ return &rtl_regdom_11;
+ case COUNTRY_CODE_ETSI:
+ case COUNTRY_CODE_SPAIN:
+ case COUNTRY_CODE_FRANCE:
+ case COUNTRY_CODE_ISRAEL:
+ case COUNTRY_CODE_TELEC_NETGEAR:
+ return &rtl_regdom_world;
+ case COUNTRY_CODE_MKK:
+ case COUNTRY_CODE_MKK1:
+ case COUNTRY_CODE_TELEC:
+ case COUNTRY_CODE_MIC:
+ return &rtl_regdom_global;
+ case COUNTRY_CODE_GLOBAL_DOMAIN:
+ return &rtl_regdom_global;
+ case COUNTRY_CODE_WORLD_WIDE_13:
+ return &rtl_regdom_world;
+ default:
+ WARN_ON(1);
+ return &rtl_regdom_world;
+ }
+}
+
+static int
+rtl_regd_init_wiphy(struct rtl_regulatory *reg,
+ struct wiphy *wiphy,
+ int (*reg_notifier)(struct wiphy *wiphy,
+ struct regulatory_request *request))
+{
+ const struct ieee80211_regdomain *regd;
+
+ wiphy->reg_notifier = reg_notifier;
+
+ wiphy->custom_regulatory = true;
+ wiphy->strict_regulatory = false;
+
+ regd = rtl_regdomain_select(reg);
+
+ wiphy->disable_beacon_hints = true;
+ wiphy_apply_custom_regulatory(wiphy, regd);
+
+ rtl_reg_apply_world_flags(wiphy, NL80211_REGDOM_SET_BY_DRIVER, reg);
+ return 0;
+}
+
+static struct
+country_code_to_enum_rd *rtl_regd_find_country(u16 countryCode)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(allCountries); i++) {
+ if (allCountries[i].countryCode == countryCode)
+ return &allCountries[i];
+ }
+ return NULL;
+}
+
+int rtl_regd_init(struct net_device *dev,
+ int (*reg_notifier)(struct wiphy *wiphy,
+ struct regulatory_request *request))
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ struct rtl_regulatory *reg = &priv->rtllib->regulatory;
+ struct wiphy *wiphy = priv->rtllib->wdev.wiphy;
+ struct country_code_to_enum_rd *country = NULL;
+
+ if (wiphy == NULL || reg == NULL){
+ return -EINVAL;
+ }
+
+ printk(KERN_DEBUG "rtl: EEPROM regdomain: 0x%0x\n", priv->ChannelPlan);
+
+ reg->country_code = priv->ChannelPlan;
+
+ if (reg->country_code >= COUNTRY_CODE_MAX) {
+ printk(KERN_DEBUG "rtl: EEPROM indicates invalid contry code"
+ "world wide 13 should be used\n");
+ reg->country_code = COUNTRY_CODE_WORLD_WIDE_13;
+ }
+
+ country = rtl_regd_find_country(reg->country_code);
+
+ if (country) {
+ reg->alpha2[0] = country->isoName[0];
+ reg->alpha2[1] = country->isoName[1];
+ } else {
+ reg->alpha2[0] = '0';
+ reg->alpha2[1] = '0';
+ }
+
+ printk(KERN_DEBUG "rtl: Country alpha2 being used: %c%c\n",
+ reg->alpha2[0], reg->alpha2[1]);
+ rtl_regd_init_wiphy(reg, wiphy, reg_notifier);
+ rtl_dump_channel_map(wiphy);
+ return 0;
+}
+
+int rtl_reg_notifier(struct wiphy *wiphy,
+ struct regulatory_request *request)
+{
+ struct net_device *dev = wiphy_to_net_device(wiphy);
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ struct rtl_regulatory *reg = &priv->rtllib->regulatory;
+
+ printk("rtl_regd: %s\n", __func__);
+ return rtl_reg_notifier_apply(wiphy, request, reg);
+}
+#endif
+
+struct net_device *wiphy_to_net_device(struct wiphy *wiphy)
+{
+ struct rtllib_device *rtllib;
+
+ rtllib = wiphy_priv(wiphy);
+ return rtllib->dev;
+}
+
+static const struct ieee80211_rate rtl819x_rates[] = {
+ { .bitrate = 10, .hw_value = 0, },
+ { .bitrate = 20, .hw_value = 1, },
+ { .bitrate = 55, .hw_value = 2, },
+ { .bitrate = 110, .hw_value = 3, },
+ { .bitrate = 60, .hw_value = 4, },
+ { .bitrate = 90, .hw_value = 5, },
+ { .bitrate = 120, .hw_value = 6, },
+ { .bitrate = 180, .hw_value = 7, },
+ { .bitrate = 240, .hw_value = 8, },
+ { .bitrate = 360, .hw_value = 9, },
+ { .bitrate = 480, .hw_value = 10, },
+ { .bitrate = 540, .hw_value = 11, },
+};
+
+#define CHAN2G(_freq, _flags, _idx) { \
+ .band = IEEE80211_BAND_2GHZ, \
+ .center_freq = (_freq), \
+ .flags = (_flags), \
+ .hw_value = (_idx), \
+ .max_power = 20, \
+}
+
+static struct ieee80211_channel rtl819x_2ghz_chantable[] = {
+ CHAN2G(2412, 0, 1), /* Channel 1 */
+ CHAN2G(2417, 0, 2), /* Channel 2 */
+ CHAN2G(2422, 0, 3), /* Channel 3 */
+ CHAN2G(2427, 0, 4), /* Channel 4 */
+ CHAN2G(2432, 0, 5), /* Channel 5 */
+ CHAN2G(2437, 0, 6), /* Channel 6 */
+ CHAN2G(2442, 0, 7), /* Channel 7 */
+ CHAN2G(2447, 0, 8), /* Channel 8 */
+ CHAN2G(2452, 0, 9), /* Channel 9 */
+ CHAN2G(2457, 0, 10), /* Channel 10 */
+ CHAN2G(2462, 0, 11), /* Channel 11 */
+ CHAN2G(2467, IEEE80211_CHAN_NO_IBSS|IEEE80211_CHAN_PASSIVE_SCAN, 12), /* Channel 12 */
+ CHAN2G(2472, IEEE80211_CHAN_NO_IBSS|IEEE80211_CHAN_PASSIVE_SCAN, 13), /* Channel 13 */
+ CHAN2G(2484, IEEE80211_CHAN_NO_IBSS|IEEE80211_CHAN_PASSIVE_SCAN, 14), /* Channel 14 */
+};
+
+int rtllib_set_geo(struct r8192_priv *priv)
+{
+ priv->bands[IEEE80211_BAND_2GHZ].band = IEEE80211_BAND_2GHZ;
+ priv->bands[IEEE80211_BAND_2GHZ].channels = rtl819x_2ghz_chantable;
+ priv->bands[IEEE80211_BAND_2GHZ].n_channels = ARRAY_SIZE(rtl819x_2ghz_chantable);
+
+ memcpy(&priv->rates[IEEE80211_BAND_2GHZ], rtl819x_rates, sizeof(rtl819x_rates));
+
+ priv->bands[IEEE80211_BAND_2GHZ].n_bitrates = ARRAY_SIZE(rtl819x_rates);
+ priv->bands[IEEE80211_BAND_2GHZ].bitrates = priv->rates[IEEE80211_BAND_2GHZ];
+
+ return 0;
+}
+
+bool rtl8192_register_wiphy_dev(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct wireless_dev *wdev = &priv->rtllib->wdev;
+#ifdef CONFIG_CRDA
+ struct rtl_regulatory *reg;
+#endif
+ memcpy(wdev->wiphy->perm_addr, dev->dev_addr, ETH_ALEN);
+ wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = &(priv->bands[IEEE80211_BAND_2GHZ]);
+ set_wiphy_dev(wdev->wiphy, &priv->pdev->dev);
+
+#ifdef CONFIG_CRDA
+ if (rtl_regd_init(dev, rtl_reg_notifier)) {
+ return false;
+ }
+#endif
+
+ if (wiphy_register(wdev->wiphy)) {
+ return false;
+ }
+
+#ifdef CONFIG_CRDA
+ reg = &priv->rtllib->regulatory;
+ if (reg != NULL) {
+ if (regulatory_hint(wdev->wiphy, reg->alpha2)) {
+ printk("########>%s() regulatory_hint fail\n", __func__);
+ ;
+ } else {
+ printk("########>#%s() regulatory_hint success\n", __func__);
+ }
+ } else {
+ printk("#########%s() regulator null\n", __func__);
+ }
+#endif
+ return true;
+}
+#endif
diff --git a/ubuntu/rtl8192se/rtl_regd.h b/ubuntu/rtl8192se/rtl_regd.h
new file mode 100755
index 00000000000..b0729d17d56
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_regd.h
@@ -0,0 +1,53 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * Based on the ath driver, which is:
+ * Copyright (c) 2008-2009 Atheros Communications Inc.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+ ******************************************************************************/
+#ifndef RTL_REGD_H
+#define RTL_REGD_H
+
+#ifdef CONFIG_CFG_80211
+
+#include <linux/nl80211.h>
+#include <net/cfg80211.h>
+#include "rtl_core.h"
+
+struct r8192_priv;
+
+struct country_code_to_enum_rd {
+ u16 countryCode;
+ const char *isoName;
+};
+
+
+int rtl_regd_init(struct net_device *dev,
+ int (*reg_notifier)(struct wiphy *wiphy,
+ struct regulatory_request *request));
+int rtl_reg_notifier(struct wiphy *wiphy,
+ struct regulatory_request *request);
+void rtl_dump_channel_map(struct wiphy *wiphy);
+int rtllib_set_geo(struct r8192_priv *priv);
+bool rtl8192_register_wiphy_dev(struct net_device *dev);
+
+#endif
+#endif
diff --git a/ubuntu/rtl8192se/rtl_rfkill.c b/ubuntu/rtl8192se/rtl_rfkill.c
new file mode 100755
index 00000000000..d5d3514cff7
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_rfkill.c
@@ -0,0 +1,221 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of version 2 of the GNU General Public License as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+ ******************************************************************************/
+#include "rtl_core.h"
+#include "rtl_dm.h"
+#include "rtl_rfkill.h"
+
+#ifdef CONFIG_RTL_RFKILL
+static void rtl8192_before_radio_check(struct net_device *dev,
+ bool *rf_state,
+ bool *turnonbypowerdomain)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+
+ *rf_state = (priv->rtllib->eRFPowerState != eRfOn);
+#ifdef CONFIG_ASPM_OR_D3
+ if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM))
+ {
+ RT_DISABLE_ASPM(dev);
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM);
+ }
+ else if((pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3) && RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3))
+ {
+#ifdef TODO
+ RT_LEAVE_D3(dev, false);
+ RT_CLEAR_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3);
+#endif
+ }
+#endif
+ if (RT_IN_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC)) {
+ Power_DomainInit92SE(dev);
+ *turnonbypowerdomain = true;
+ }
+
+}
+
+static bool rtl8192_radio_on_off_checking(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ u8 u1Tmp = 0;
+ u8 gpio;
+
+ if (priv->pwrdown) {
+ u1Tmp = read_nic_byte(dev, 0x06);
+ gpio = u1Tmp & BIT6;
+ } else
+#ifdef CONFIG_BT_COEXIST
+ if (pHalData->bt_coexist.BluetoothCoexist) {
+ if (pHalData->bt_coexist.BT_CoexistType == BT_2Wire) {
+ PlatformEFIOWrite1Byte(pAdapter, MAC_PINMUX_CFG, 0xa);
+ u1Tmp = PlatformEFIORead1Byte(pAdapter, GPIO_IO_SEL);
+ delay_us(100);
+ u1Tmp = PlatformEFIORead1Byte(pAdapter, GPIO_IN);
+ RTPRINT(FPWR, PWRHW, ("GPIO_IN=%02x\n", u1Tmp));
+ retval = (u1Tmp & HAL_8192S_HW_GPIO_OFF_BIT) ? eRfOn : eRfOff;
+ } else if ((pHalData->bt_coexist.BT_CoexistType == BT_ISSC_3Wire) ||
+ (pHalData->bt_coexist.BT_CoexistType == BT_Accel) ||
+ (pHalData->bt_coexist.BT_CoexistType == BT_CSR)) {
+ u4tmp = PHY_QueryBBReg(pAdapter, 0x87c, bMaskDWord);
+ if ((u4tmp & BIT17) != 0) {
+ PHY_SetBBReg(pAdapter, 0x87c, bMaskDWord, u4tmp & ~BIT17);
+ delay_us(50);
+ RTPRINT(FBT, BT_RFPoll, ("BT write 0x87c (~BIT17) = 0x%x\n", u4tmp &~BIT17));
+ }
+ u4tmp = PHY_QueryBBReg(pAdapter, 0x8e0, bMaskDWord);
+ RTPRINT(FBT, BT_RFPoll, ("BT read 0x8e0 (BIT24)= 0x%x\n", u4tmp));
+ retval = (u4tmp & BIT24) ? eRfOn : eRfOff;
+ RTPRINT(FBT, BT_RFPoll, ("BT check RF state to %s\n", (retval==eRfOn)? "ON":"OFF"));
+ }
+ } else
+#endif
+ {
+ write_nic_byte(dev, MAC_PINMUX_CFG, (GPIOMUX_EN | GPIOSEL_GPIO));
+ u1Tmp = read_nic_byte(dev, GPIO_IO_SEL);
+
+ u1Tmp &= HAL_8192S_HW_GPIO_OFF_MASK;
+ write_nic_byte(dev, GPIO_IO_SEL, u1Tmp);
+
+ mdelay(10);
+
+ u1Tmp = read_nic_byte(dev, GPIO_IN);
+ gpio = u1Tmp & HAL_8192S_HW_GPIO_OFF_BIT;
+ }
+#ifdef DEBUG_RFKILL
+ {
+ static u8 gpio_test;
+ printk("%s: gpio = %x\n", __FUNCTION__, gpio);
+ if(gpio_test % 5 == 0) {
+ gpio = 0;
+ } else {
+ gpio = 1;
+ }
+ printk("%s: gpio_test = %d, gpio = %x\n", __FUNCTION__, gpio_test++ % 20, gpio);
+ }
+#endif
+
+ return gpio;
+}
+
+static void rtl8192_after_radio_check(struct net_device *dev, bool rf_state, bool turnonbypowerdomain)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+
+ if (turnonbypowerdomain) {
+ PHY_SetRtl8192seRfHalt(dev);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_HALT_NIC);
+ }
+#ifdef CONFIG_ASPM_OR_D3
+ if (!rf_state) {
+ if (pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_ASPM) {
+ RT_ENABLE_ASPM(dev);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_ASPM);
+ }
+#ifdef TODO
+ else if(pPSC->RegRfPsLevel & RT_RF_OFF_LEVL_PCI_D3) {
+ RT_ENTER_D3(dev, false);
+ RT_SET_PS_LEVEL(pPSC, RT_RF_OFF_LEVL_PCI_D3);
+ }
+#endif
+ }
+#endif
+ return;
+}
+
+static bool rtl8192_is_radio_enabled(struct net_device *dev, bool *radio_enabled)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ bool rf_state = false;
+ bool turnonbypowerdomain = false;
+ bool valid;
+
+ rtl8192_before_radio_check(dev, &rf_state, &turnonbypowerdomain);
+ *radio_enabled = rtl8192_radio_on_off_checking(dev);
+ rtl8192_after_radio_check(dev, rf_state, turnonbypowerdomain);
+ if (priv->bResetInProgress) {
+ priv->RFChangeInProgress = false;
+ valid = false;
+ } else {
+ valid = true;
+ }
+
+ return valid;
+}
+
+bool rtl8192_rfkill_init(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ struct wireless_dev *wdev = &priv->rtllib->wdev;
+ bool radio_enabled;
+ bool valid = rtl8192_is_radio_enabled(dev, &radio_enabled);
+
+ if (valid) {
+ priv->rfkill_off = radio_enabled;
+ printk(KERN_INFO "rtl8192: wireless switch is %s\n",
+ priv->rfkill_off ? "on" : "off");
+ wiphy_rfkill_set_hw_state(wdev->wiphy, !priv->rfkill_off);
+ wiphy_rfkill_start_polling(wdev->wiphy);
+ return true;
+ } else {
+ return false;
+ }
+}
+
+void rtl8192_rfkill_poll(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ struct wireless_dev *wdev = &priv->rtllib->wdev;
+ bool radio_enabled;
+ bool valid;
+
+ if (priv->being_init_adapter) {
+ return;
+ }
+
+ if (priv->ResetProgress == RESET_TYPE_SILENT) {
+ RT_TRACE((COMP_INIT | COMP_POWER | COMP_RF),
+ "%s(): silent Reseting, ignore rf polling!\n", __FUNCTION__);
+ return;
+ }
+
+ valid = rtl8192_is_radio_enabled(dev, &radio_enabled);
+ if (valid) {
+ if (unlikely(radio_enabled != priv->rfkill_off)) {
+ priv->rfkill_off = radio_enabled;
+ printk(KERN_INFO "rtl8192: wireless radio switch turned %s\n",
+ radio_enabled ? "on" : "off");
+ wiphy_rfkill_set_hw_state(wdev->wiphy, !radio_enabled);
+ }
+ }
+}
+
+void rtl8192_rfkill_exit(struct net_device *dev)
+{
+ struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
+ struct wireless_dev *wdev = &priv->rtllib->wdev;
+
+ wiphy_rfkill_stop_polling(wdev->wiphy);
+}
+
+#endif
diff --git a/ubuntu/rtl8192se/rtl_rfkill.h b/ubuntu/rtl8192se/rtl_rfkill.h
new file mode 100755
index 00000000000..eaf098ad857
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_rfkill.h
@@ -0,0 +1,12 @@
+#ifndef RTL_RFKILL_H
+#define RTL_RFKILL_H
+
+#ifdef CONFIG_RTL_RFKILL
+struct net_device;
+
+bool rtl8192_rfkill_init(struct net_device *dev);
+void rtl8192_rfkill_poll(struct net_device *dev);
+void rtl8192_rfkill_exit(struct net_device *dev);
+#endif
+
+#endif /* RTL_RFKILL_H */
diff --git a/ubuntu/rtl8192se/rtl_wx.c b/ubuntu/rtl8192se/rtl_wx.c
new file mode 100755
index 00000000000..78c62882ac1
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_wx.c
@@ -0,0 +1,4231 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+
+#include <linux/string.h>
+#include "rtl_core.h"
+#ifdef ENABLE_DOT11D
+#include "rtllib/dot11d.h"
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+#include "../../mshclass/msh_class.h"
+#endif
+
+#ifdef CONFIG_MP
+#include "r8192S_mp.h"
+#endif
+
+#define RATE_COUNT 12
+u32 rtl8192_rates[] = {1000000,2000000,5500000,11000000,
+ 6000000,9000000,12000000,18000000,24000000,36000000,48000000,54000000};
+
+
+#ifndef ENETDOWN
+#define ENETDOWN 1
+#endif
+extern int hwwep;
+#ifdef _RTL8192_EXT_PATCH_
+int r8192_wx_set_channel(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra);
+static int r8192_wx_mesh_scan(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra);
+static int r8192_wx_get_mesh_list(struct net_device *dev, struct iw_request_info *info, union iwreq_data *wrqu, char *extra);
+#endif
+
+static int r8192_wx_get_freq(struct net_device *dev,
+ struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+#ifdef _RTL8192_EXT_PATCH_
+ return rtllib_wx_get_freq(priv->rtllib,a,wrqu,b,0);
+#else
+ return rtllib_wx_get_freq(priv->rtllib,a,wrqu,b);
+#endif
+}
+
+
+#if 0
+
+static int r8192_wx_set_beaconinterval(struct net_device *dev, struct iw_request_info *aa,
+ union iwreq_data *wrqu, char *b)
+{
+ int *parms = (int *)b;
+ int bi = parms[0];
+
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ down(&priv->wx_sem);
+ DMESG("setting beacon interval to %x",bi);
+
+ priv->rtllib->beacon_interval=bi;
+ rtl8192_commit(dev);
+ up(&priv->wx_sem);
+
+ return 0;
+}
+
+
+static int r8192_wx_set_forceassociate(struct net_device *dev, struct iw_request_info *aa,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv=rtllib_priv(dev);
+ int *parms = (int *)extra;
+
+ priv->rtllib->force_associate = (parms[0] > 0);
+
+
+ return 0;
+}
+
+#endif
+static int r8192_wx_get_mode(struct net_device *dev, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b)
+{
+ struct r8192_priv *priv=rtllib_priv(dev);
+
+ return rtllib_wx_get_mode(priv->rtllib,a,wrqu,b);
+}
+
+static int r8192_wx_get_rate(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ return rtllib_wx_get_rate(priv->rtllib,info,wrqu,extra);
+}
+
+
+
+static int r8192_wx_set_rate(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ int ret;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ down(&priv->wx_sem);
+
+ ret = rtllib_wx_set_rate(priv->rtllib,info,wrqu,extra);
+
+ up(&priv->wx_sem);
+
+ return ret;
+}
+
+
+static int r8192_wx_set_rts(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ int ret;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ down(&priv->wx_sem);
+
+ ret = rtllib_wx_set_rts(priv->rtllib,info,wrqu,extra);
+
+ up(&priv->wx_sem);
+
+ return ret;
+}
+
+static int r8192_wx_get_rts(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ return rtllib_wx_get_rts(priv->rtllib,info,wrqu,extra);
+}
+
+static int r8192_wx_set_power(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ int ret;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(priv->bHwRadioOff == true){
+ RT_TRACE(COMP_ERR,"%s():Hw is Radio Off, we can't set Power,return\n",__FUNCTION__);
+ return 0;
+ }
+ down(&priv->wx_sem);
+
+ ret = rtllib_wx_set_power(priv->rtllib,info,wrqu,extra);
+
+ up(&priv->wx_sem);
+
+ return ret;
+}
+
+static int r8192_wx_get_power(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ return rtllib_wx_get_power(priv->rtllib,info,wrqu,extra);
+}
+
+static int r8192_wx_set_rawtx(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int ret;
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ down(&priv->wx_sem);
+
+ ret = rtllib_wx_set_rawtx(priv->rtllib, info, wrqu, extra);
+
+ up(&priv->wx_sem);
+
+ return ret;
+
+}
+
+static int r8192_wx_force_reset(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ down(&priv->wx_sem);
+
+ printk("%s(): force reset ! extra is %d\n",__FUNCTION__, *extra);
+ priv->force_reset = *extra;
+ up(&priv->wx_sem);
+ return 0;
+
+}
+
+static int r8192_wx_force_mic_error(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+
+ down(&priv->wx_sem);
+
+ printk("%s(): force mic error ! \n",__FUNCTION__);
+ ieee->force_mic_error = true;
+ up(&priv->wx_sem);
+ return 0;
+
+}
+
+#define MAX_ADHOC_PEER_NUM 64
+typedef struct
+{
+ unsigned char MacAddr[ETH_ALEN];
+ unsigned char WirelessMode;
+ unsigned char bCurTxBW40MHz;
+} adhoc_peer_entry_t, *p_adhoc_peer_entry_t;
+typedef struct
+{
+ adhoc_peer_entry_t Entry[MAX_ADHOC_PEER_NUM];
+ unsigned char num;
+} adhoc_peers_info_t, *p_adhoc_peers_info_t;
+int r8192_wx_get_adhoc_peers(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+#ifndef RTL8192SE
+ return 0;
+#else
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct sta_info * psta = NULL;
+ adhoc_peers_info_t adhoc_peers_info;
+ p_adhoc_peers_info_t padhoc_peers_info = &adhoc_peers_info;
+ p_adhoc_peer_entry_t padhoc_peer_entry = NULL;
+ int k=0;
+
+
+ memset(extra, 0, 2047);
+ padhoc_peers_info->num = 0;
+
+ down(&priv->wx_sem);
+
+ for(k=0; k<PEER_MAX_ASSOC; k++)
+ {
+ psta = priv->rtllib->peer_assoc_list[k];
+ if(NULL != psta)
+ {
+ padhoc_peer_entry = &padhoc_peers_info->Entry[padhoc_peers_info->num];
+ memset(padhoc_peer_entry,0, sizeof(adhoc_peer_entry_t));
+ memcpy(padhoc_peer_entry->MacAddr, psta->macaddr, ETH_ALEN);
+ padhoc_peer_entry->WirelessMode = psta->wireless_mode;
+ padhoc_peer_entry->bCurTxBW40MHz = psta->htinfo.bCurTxBW40MHz;
+ padhoc_peers_info->num ++;
+ printk("[%d] MacAddr:"MAC_FMT" \tWirelessMode:%d \tBW40MHz:%d \n", \
+ k, MAC_ARG(padhoc_peer_entry->MacAddr), padhoc_peer_entry->WirelessMode, padhoc_peer_entry->bCurTxBW40MHz);
+ sprintf(extra, "[%d] MacAddr:"MAC_FMT" \tWirelessMode:%d \tBW40MHz:%d \n", \
+ k, MAC_ARG(padhoc_peer_entry->MacAddr), padhoc_peer_entry->WirelessMode, padhoc_peer_entry->bCurTxBW40MHz);
+ }
+ }
+
+ up(&priv->wx_sem);
+
+ wrqu->data.length = strlen(extra);
+ wrqu->data.flags = 0;
+ return 0;
+
+#endif
+}
+
+
+static int r8191se_wx_get_firm_version(struct net_device *dev,
+ struct iw_request_info *info,
+ struct iw_param *wrqu, char *extra)
+{
+#if defined RTL8192SE || defined RTL8192CE
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u16 firmware_version;
+
+ down(&priv->wx_sem);
+ printk("%s(): Just Support 92SE tmp\n", __FUNCTION__);
+#ifdef RTL8192CE
+ firmware_version = priv->firmware_version;
+#else
+ firmware_version = priv->pFirmware->FirmwareVersion;
+#endif
+ wrqu->value = firmware_version;
+ wrqu->fixed = 1;
+
+ up(&priv->wx_sem);
+#endif
+ return 0;
+}
+
+static int r8192_wx_adapter_power_status(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+#ifdef ENABLE_LPS
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+ struct rtllib_device* ieee = priv->rtllib;
+
+ down(&priv->wx_sem);
+
+ RT_TRACE(COMP_POWER, "%s(): %s\n",__FUNCTION__, (*extra == 6)?"DC power":"AC power");
+ if(*extra || priv->force_lps) {
+ priv->ps_force = false;
+ pPSC->bLeisurePs = true;
+ } else {
+ if(priv->rtllib->state == RTLLIB_LINKED)
+ LeisurePSLeave(dev);
+
+ priv->ps_force = true;
+ pPSC->bLeisurePs = false;
+ ieee->ps = *extra;
+ }
+
+ up(&priv->wx_sem);
+#endif
+
+ return 0;
+
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+static int r8192_wx_print_reg(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ u8 reg1=0,reg2=0,reg3=0,reg4=0;
+ u32 reg5 = 0, len = 0;
+
+ memset(extra, 0, 512);
+ sprintf(extra,"\nStart Log: Set 0x08000000 to 0x230\n");
+ write_nic_dword(dev, 0x230 , 0x08000000);
+ reg1 = read_nic_byte(dev, 0xf0);
+ reg2 = read_nic_byte(dev, 0xf4);
+ reg3 = read_nic_byte(dev, 0x140);
+ reg4 = read_nic_byte(dev, 0x124);
+ mdelay(10);
+ reg5 = read_nic_dword(dev, 0x230);
+ len = strlen(extra);
+ sprintf(extra+len, "0xf0: %2.2x\n0xf4: %2.2x\n0x140: %2.2x\n0x124: %2.2x\n", reg1,reg2,reg3,reg4);
+ len = strlen(extra);
+ sprintf(extra+len,"After delay 10ms, read 0x230: %8.8x\n", reg5);
+
+ write_nic_dword(dev, 0x230 , 0x40000000);
+ reg5 = read_nic_dword(dev, 0x230);
+ len = strlen(extra);
+ sprintf(extra+len,"Set 0x40000000 to 0x230. Read 0x230: %8.8x\n", reg5);
+
+ write_nic_dword(dev, 0x230 , 0x80000000);
+ reg5 = read_nic_dword(dev, 0x230);
+ len = strlen(extra);
+ sprintf(extra+len,"Set 0x80000000 to 0x230. Read 0x230: %8.8x\n", reg5);
+
+ wrqu->data.length = strlen(extra);
+ return 0;
+}
+
+static int r8192_wx_resume_firm(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+
+ write_nic_byte(dev, 0x42, 0xFF);
+ write_nic_word(dev, 0x40, 0x77FC);
+ write_nic_word(dev, 0x40, 0x57FC);
+ write_nic_word(dev, 0x40, 0x37FC);
+ write_nic_word(dev, 0x40, 0x77FC);
+
+ udelay(100);
+
+ write_nic_word(dev, 0x40, 0x57FC);
+ write_nic_word(dev, 0x40, 0x37FC);
+ write_nic_byte(dev, 0x42, 0x00);
+
+ return 0;
+}
+#endif
+static int r8192se_wx_set_radio(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ down(&priv->wx_sem);
+
+ printk("%s(): set radio ! extra is %d\n",__FUNCTION__, *extra);
+ if((*extra != 0) && (*extra != 1))
+ {
+ RT_TRACE(COMP_ERR, "%s(): set radio an err value,must 0(radio off) or 1(radio on)\n",__FUNCTION__);
+ return -1;
+ }
+ priv->sw_radio_on = *extra;
+ up(&priv->wx_sem);
+ return 0;
+
+}
+
+static int r8192se_wx_set_lps_awake_interval(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(priv->rtllib->PowerSaveControl));
+
+ down(&priv->wx_sem);
+
+ printk("%s(): set lps awake interval ! extra is %d\n",__FUNCTION__, *extra);
+
+ pPSC->RegMaxLPSAwakeIntvl = *extra;
+ up(&priv->wx_sem);
+ return 0;
+
+}
+
+static int r8192se_wx_set_force_lps(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ down(&priv->wx_sem);
+
+ printk("%s(): force LPS ! extra is %d (1 is open 0 is close)\n",__FUNCTION__, *extra);
+ priv->force_lps = *extra;
+ up(&priv->wx_sem);
+ return 0;
+
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+static int r8192_wx_get_drv_version(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ memset(extra, 0, 64);
+ sprintf(extra, "Support Mesh");
+
+ ((struct iw_point *)wrqu)->length = strlen(extra);
+ return 0;
+}
+#endif
+
+static int r8192_wx_set_debugflag(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u8 c = *extra;
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ printk("=====>%s(), *extra:%x, debugflag:%x\n", __FUNCTION__, *extra, rt_global_debug_component);
+ if (c > 0) {
+ rt_global_debug_component |= (1<<c);
+ } else {
+ rt_global_debug_component &= BIT31;
+ }
+ return 0;
+}
+
+static int r8192_wx_set_mode(struct net_device *dev, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = netdev_priv_rsl(dev);
+
+ RT_RF_POWER_STATE rtState;
+ int ret;
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+#ifdef _RTL8192_EXT_PATCH_
+ if (priv->mshobj && (priv->rtllib->iw_mode==IW_MODE_MESH)) {
+ return 0;
+ }
+#endif
+ rtState = priv->rtllib->eRFPowerState;
+ down(&priv->wx_sem);
+#ifdef ENABLE_IPS
+ if(wrqu->mode == IW_MODE_ADHOC || wrqu->mode == IW_MODE_MONITOR
+ || ieee->bNetPromiscuousMode )
+ {
+ if(priv->rtllib->PowerSaveControl.bInactivePs){
+ if(rtState == eRfOff){
+ if(priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS)
+ {
+ RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__);
+ up(&priv->wx_sem);
+ return -1;
+ } else {
+ printk("=========>%s(): IPSLeave\n",__FUNCTION__);
+ down(&priv->rtllib->ips_sem);
+ IPSLeave(dev);
+ up(&priv->rtllib->ips_sem);
+ }
+ }
+ }
+ }
+#endif
+ ret = rtllib_wx_set_mode(priv->rtllib,a,wrqu,b);
+
+ up(&priv->wx_sem);
+ return ret;
+}
+#if defined (RTL8192S_WAPI_SUPPORT)
+int wapi_ioctl_set_mode(struct net_device *dev, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ RT_RF_POWER_STATE rtState;
+ int ret;
+
+ printk("===============================>%s\n", __FUNCTION__);
+ if(priv->bHwRadioOff == true)
+ return 0;
+#ifdef _RTL8192_EXT_PATCH_
+ if (priv->mshobj && (priv->rtllib->iw_mode==IW_MODE_MESH)) {
+ return 0;
+ }
+#endif
+ rtState = priv->rtllib->eRFPowerState;
+#ifdef ENABLE_IPS
+ if(wrqu->mode == IW_MODE_ADHOC){
+ if(priv->rtllib->PowerSaveControl.bInactivePs){
+ if(rtState == eRfOff){
+ if(priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS)
+ {
+ RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__);
+ up(&priv->wx_sem);
+ return -1;
+ } else {
+ printk("=========>%s(): IPSLeave\n",__FUNCTION__);
+ down(&priv->rtllib->ips_sem);
+ IPSLeave(dev);
+ up(&priv->rtllib->ips_sem);
+ }
+ }
+ }
+ }
+#endif
+ ret = rtllib_wx_set_mode(priv->rtllib,a,wrqu,b);
+
+ return ret;
+}
+#endif
+struct iw_range_with_scan_capa
+{
+ /* Informative stuff (to choose between different interface) */
+ __u32 throughput; /* To give an idea... */
+ /* In theory this value should be the maximum benchmarked
+ * TCP/IP throughput, because with most of these devices the
+ * bit rate is meaningless (overhead an co) to estimate how
+ * fast the connection will go and pick the fastest one.
+ * I suggest people to play with Netperf or any benchmark...
+ */
+
+ /* NWID (or domain id) */
+ __u32 min_nwid; /* Minimal NWID we are able to set */
+ __u32 max_nwid; /* Maximal NWID we are able to set */
+
+ /* Old Frequency (backward compat - moved lower ) */
+ __u16 old_num_channels;
+ __u8 old_num_frequency;
+
+ /* Scan capabilities */
+ __u8 scan_capa;
+};
+
+static int rtl8192_wx_get_range(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct iw_range *range = (struct iw_range *)extra;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ u16 val;
+ int i;
+
+ wrqu->data.length = sizeof(*range);
+ memset(range, 0, sizeof(*range));
+
+ /* ~130 Mb/s real (802.11n) */
+ range->throughput = 130 * 1000 * 1000;
+
+ if(priv->rf_set_sens != NULL)
+ range->sensitivity = priv->max_sens; /* signal level threshold range */
+
+ range->max_qual.qual = 100;
+ range->max_qual.level = 0;
+ range->max_qual.noise = 0;
+ range->max_qual.updated = 7; /* Updated all three */
+
+ range->avg_qual.qual = 70; /* > 8% missed beacons is 'bad' */
+ range->avg_qual.level = 0;
+ range->avg_qual.noise = 0;
+ range->avg_qual.updated = 7; /* Updated all three */
+
+ range->num_bitrates = min(RATE_COUNT, IW_MAX_BITRATES);
+
+ for (i = 0; i < range->num_bitrates; i++) {
+ range->bitrate[i] = rtl8192_rates[i];
+ }
+
+ range->max_rts = DEFAULT_RTS_THRESHOLD;
+ range->min_frag = MIN_FRAG_THRESHOLD;
+ range->max_frag = MAX_FRAG_THRESHOLD;
+
+ range->min_pmp = 0;
+ range->max_pmp = 5000000;
+ range->min_pmt = 0;
+ range->max_pmt = 65535*1000;
+ range->pmp_flags = IW_POWER_PERIOD;
+ range->pmt_flags = IW_POWER_TIMEOUT;
+ range->pm_capa = IW_POWER_PERIOD | IW_POWER_TIMEOUT | IW_POWER_ALL_R;
+ range->we_version_compiled = WIRELESS_EXT;
+ range->we_version_source = 18;
+
+ for (i = 0, val = 0; i < 14; i++) {
+ if ((priv->rtllib->active_channel_map)[i+1]) {
+ range->freq[val].i = i + 1;
+ range->freq[val].m = rtllib_wlan_frequencies[i] * 100000;
+ range->freq[val].e = 1;
+ val++;
+ } else {
+ }
+
+ if (val == IW_MAX_FREQUENCIES)
+ break;
+ }
+ range->num_frequency = val;
+ range->num_channels = val;
+#if WIRELESS_EXT > 17
+ range->enc_capa = IW_ENC_CAPA_WPA|IW_ENC_CAPA_WPA2|
+ IW_ENC_CAPA_CIPHER_TKIP|IW_ENC_CAPA_CIPHER_CCMP;
+#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,25)
+ {
+ struct iw_range_with_scan_capa* tmp = (struct iw_range_with_scan_capa*)range;
+ tmp->scan_capa = 0x01;
+ }
+#else
+ range->scan_capa = IW_SCAN_CAPA_ESSID | IW_SCAN_CAPA_TYPE;
+#endif
+
+ /* Event capability (kernel + driver) */
+
+ return 0;
+}
+
+static int r8192_wx_set_scan(struct net_device *dev, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+ RT_RF_POWER_STATE rtState;
+ int ret;
+
+#ifdef CONFIG_MP
+ printk("######################%s(): In MP Test Can not Scan\n",__FUNCTION__);
+ return 0;
+#endif
+ if (!(ieee->softmac_features & IEEE_SOFTMAC_SCAN)){
+ if((ieee->state >= RTLLIB_ASSOCIATING) && (ieee->state <= RTLLIB_ASSOCIATING_AUTHENTICATED)){
+ return 0;
+ }
+ if((priv->rtllib->state == RTLLIB_LINKED) && (priv->rtllib->CntAfterLink<2)){
+ return 0;
+ }
+ }
+
+ if(priv->bHwRadioOff == true){
+ printk("================>%s(): hwradio off\n",__FUNCTION__);
+ return 0;
+ }
+ rtState = priv->rtllib->eRFPowerState;
+ if(!priv->up) return -ENETDOWN;
+ if (priv->rtllib->LinkDetectInfo.bBusyTraffic == true)
+ return -EAGAIN;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if((ieee->iw_mode == IW_MODE_MESH)&&(ieee->mesh_state == RTLLIB_MESH_LINKED))
+ {
+ return 0;
+ }
+#endif
+#if WIRELESS_EXT > 17
+ if (wrqu->data.flags & IW_SCAN_THIS_ESSID)
+ {
+ struct iw_scan_req* req = (struct iw_scan_req*)b;
+ if (req->essid_len)
+ {
+ ieee->current_network.ssid_len = req->essid_len;
+ memcpy(ieee->current_network.ssid, req->essid, req->essid_len);
+ }
+ }
+#endif
+
+ down(&priv->wx_sem);
+
+ priv->rtllib->FirstIe_InScan = true;
+
+ if(priv->rtllib->state != RTLLIB_LINKED){
+#ifdef ENABLE_IPS
+ if(priv->rtllib->PowerSaveControl.bInactivePs){
+ if(rtState == eRfOff){
+ if(priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS){
+ RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__);
+ up(&priv->wx_sem);
+ return -1;
+ }else{
+ RT_TRACE(COMP_PS, "=========>%s(): IPSLeave\n",__FUNCTION__);
+ down(&priv->rtllib->ips_sem);
+ IPSLeave(dev);
+ up(&priv->rtllib->ips_sem);
+ }
+ }
+ }
+#endif
+ rtllib_stop_scan(priv->rtllib);
+ if(priv->rtllib->LedControlHandler)
+ priv->rtllib->LedControlHandler(dev, LED_CTL_SITE_SURVEY);
+
+ if(priv->rtllib->eRFPowerState != eRfOff){
+ priv->rtllib->actscanning = true;
+ rtllib_start_scan_syncro(priv->rtllib, 0);
+ }
+ ret = 0;
+ } else {
+ priv->rtllib->actscanning = true;
+ ret = rtllib_wx_set_scan(priv->rtllib,a,wrqu,b);
+ }
+
+ up(&priv->wx_sem);
+ return ret;
+}
+
+
+static int r8192_wx_get_scan(struct net_device *dev, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b)
+{
+
+ int ret;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(!priv->up) return -ENETDOWN;
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+
+ down(&priv->wx_sem);
+
+ ret = rtllib_wx_get_scan(priv->rtllib,a,wrqu,b);
+
+ up(&priv->wx_sem);
+
+ return ret;
+}
+
+static int r8192_wx_set_essid(struct net_device *dev,
+ struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int ret;
+
+ if ((rtllib_act_scanning(priv->rtllib, false)) && !(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){
+ ;
+ }
+#ifdef CONFIG_MP
+ printk("######################%s(): In MP Test Can not Set Essid\n",__FUNCTION__);
+ return 0;
+#endif
+ if(priv->bHwRadioOff == true){
+ printk("=========>%s():hw radio off,or Rf state is eRfOff, return\n",__FUNCTION__);
+ return 0;
+ }
+ down(&priv->wx_sem);
+ ret = rtllib_wx_set_essid(priv->rtllib,a,wrqu,b);
+
+ up(&priv->wx_sem);
+
+ return ret;
+}
+
+static int r8192_wx_get_essid(struct net_device *dev,
+ struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b)
+{
+ int ret;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ down(&priv->wx_sem);
+
+ ret = rtllib_wx_get_essid(priv->rtllib, a, wrqu, b);
+
+ up(&priv->wx_sem);
+
+ return ret;
+}
+
+static int r8192_wx_set_nick(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if (wrqu->data.length > IW_ESSID_MAX_SIZE)
+ return -E2BIG;
+ down(&priv->wx_sem);
+ wrqu->data.length = min((size_t) wrqu->data.length, sizeof(priv->nick));
+ memset(priv->nick, 0, sizeof(priv->nick));
+ memcpy(priv->nick, extra, wrqu->data.length);
+ up(&priv->wx_sem);
+ return 0;
+
+}
+
+static int r8192_wx_get_nick(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ down(&priv->wx_sem);
+ wrqu->data.length = strlen(priv->nick);
+ memcpy(extra, priv->nick, wrqu->data.length);
+ wrqu->data.flags = 1; /* active */
+ up(&priv->wx_sem);
+ return 0;
+}
+
+static int r8192_wx_set_freq(struct net_device *dev, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b)
+{
+ int ret;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ down(&priv->wx_sem);
+
+ ret = rtllib_wx_set_freq(priv->rtllib, a, wrqu, b);
+
+ up(&priv->wx_sem);
+ return ret;
+}
+
+static int r8192_wx_get_name(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ return rtllib_wx_get_name(priv->rtllib, info, wrqu, extra);
+}
+
+
+static int r8192_wx_set_frag(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ if (wrqu->frag.disabled)
+ priv->rtllib->fts = DEFAULT_FRAG_THRESHOLD;
+ else {
+ if (wrqu->frag.value < MIN_FRAG_THRESHOLD ||
+ wrqu->frag.value > MAX_FRAG_THRESHOLD)
+ return -EINVAL;
+
+ priv->rtllib->fts = wrqu->frag.value & ~0x1;
+ }
+
+ return 0;
+}
+
+
+static int r8192_wx_get_frag(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ wrqu->frag.value = priv->rtllib->fts;
+ wrqu->frag.fixed = 0; /* no auto select */
+ wrqu->frag.disabled = (wrqu->frag.value == DEFAULT_FRAG_THRESHOLD);
+
+ return 0;
+}
+
+
+static int r8192_wx_set_wap(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *awrq,
+ char *extra)
+{
+
+ int ret;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if ((rtllib_act_scanning(priv->rtllib, false)) && !(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){
+ ;
+ }
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if (priv->mshobj && (priv->rtllib->iw_mode==IW_MODE_MESH)){
+ return 0;
+ }
+#endif
+ down(&priv->wx_sem);
+
+ ret = rtllib_wx_set_wap(priv->rtllib,info,awrq,extra);
+
+ up(&priv->wx_sem);
+
+ return ret;
+
+}
+
+
+static int r8192_wx_get_wap(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ return rtllib_wx_get_wap(priv->rtllib,info,wrqu,extra);
+}
+
+
+static int r8192_wx_get_enc(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *key)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+#ifdef _RTL8192_EXT_PATCH_
+ return rtllib_wx_get_encode(priv->rtllib, info, wrqu, key,0);
+#else
+ return rtllib_wx_get_encode(priv->rtllib, info, wrqu, key);
+#endif
+}
+
+static int r8192_wx_set_enc(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *key)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int ret;
+
+ struct rtllib_device *ieee = priv->rtllib;
+ u32 hwkey[4]={0,0,0,0};
+ u8 mask=0xff;
+ u32 key_idx=0;
+ u8 zero_addr[4][6] ={ {0x00,0x00,0x00,0x00,0x00,0x00},
+ {0x00,0x00,0x00,0x00,0x00,0x01},
+ {0x00,0x00,0x00,0x00,0x00,0x02},
+ {0x00,0x00,0x00,0x00,0x00,0x03} };
+ int i;
+
+ if ((rtllib_act_scanning(priv->rtllib, false)) && !(priv->rtllib->softmac_features & IEEE_SOFTMAC_SCAN)){
+ ;
+ }
+#ifdef CONFIG_MP
+ printk("######################%s(): In MP Test Can not Set Enc\n",__FUNCTION__);
+ return 0;
+#endif
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ if(!priv->up) return -ENETDOWN;
+
+ priv->rtllib->wx_set_enc = 1;
+#ifdef ENABLE_IPS
+ down(&priv->rtllib->ips_sem);
+ IPSLeave(dev);
+ up(&priv->rtllib->ips_sem);
+#endif
+ down(&priv->wx_sem);
+
+ RT_TRACE(COMP_SEC, "Setting SW wep key");
+#ifdef _RTL8192_EXT_PATCH_
+ ret = rtllib_wx_set_encode(priv->rtllib,info,wrqu,key,0);
+#else
+ ret = rtllib_wx_set_encode(priv->rtllib,info,wrqu,key);
+#endif
+ up(&priv->wx_sem);
+
+
+ if (wrqu->encoding.flags & IW_ENCODE_DISABLED) {
+ ieee->pairwise_key_type = ieee->group_key_type = KEY_TYPE_NA;
+ CamResetAllEntry(dev);
+#ifdef _RTL8192_EXT_PATCH_
+ CamRestoreEachIFEntry(dev,1);
+ reset_IFswcam(dev,0);
+ priv->rtllib->wx_set_enc = 0;
+#else
+ memset(priv->rtllib->swcamtable,0,sizeof(SW_CAM_TABLE)*32);
+#endif
+ goto end_hw_sec;
+ }
+ if(wrqu->encoding.length!=0){
+
+ for(i=0 ; i<4 ; i++){
+ hwkey[i] |= key[4*i+0]&mask;
+ if(i==1&&(4*i+1)==wrqu->encoding.length) mask=0x00;
+ if(i==3&&(4*i+1)==wrqu->encoding.length) mask=0x00;
+ hwkey[i] |= (key[4*i+1]&mask)<<8;
+ hwkey[i] |= (key[4*i+2]&mask)<<16;
+ hwkey[i] |= (key[4*i+3]&mask)<<24;
+ }
+
+ #define CONF_WEP40 0x4
+ #define CONF_WEP104 0x14
+
+ switch(wrqu->encoding.flags & IW_ENCODE_INDEX){
+ case 0: key_idx = ieee->tx_keyidx; break;
+ case 1: key_idx = 0; break;
+ case 2: key_idx = 1; break;
+ case 3: key_idx = 2; break;
+ case 4: key_idx = 3; break;
+ default: break;
+ }
+ if(wrqu->encoding.length==0x5){
+ ieee->pairwise_key_type = KEY_TYPE_WEP40;
+ EnableHWSecurityConfig8192(dev);
+#ifndef _RTL8192_EXT_PATCH_
+ setKey( dev,
+ key_idx,
+ key_idx,
+ KEY_TYPE_WEP40,
+ zero_addr[key_idx],
+ 0,
+ hwkey);
+
+ set_swcam( dev,
+ key_idx,
+ key_idx,
+ KEY_TYPE_WEP40,
+ zero_addr[key_idx],
+ 0,
+ hwkey,
+ 0);
+
+#endif
+ }
+
+ else if(wrqu->encoding.length==0xd){
+ ieee->pairwise_key_type = KEY_TYPE_WEP104;
+ EnableHWSecurityConfig8192(dev);
+#ifndef _RTL8192_EXT_PATCH_
+ setKey( dev,
+ key_idx,
+ key_idx,
+ KEY_TYPE_WEP104,
+ zero_addr[key_idx],
+ 0,
+ hwkey);
+ set_swcam( dev,
+ key_idx,
+ key_idx,
+ KEY_TYPE_WEP104,
+ zero_addr[key_idx],
+ 0,
+ hwkey,
+ 0);
+#endif
+ }
+ else printk("wrong type in WEP, not WEP40 and WEP104\n");
+#ifdef _RTL8192_EXT_PATCH_
+ if(ieee->state == RTLLIB_LINKED){
+ if(ieee->iw_mode == IW_MODE_ADHOC)
+ {
+
+ setKey( dev,
+ key_idx,
+ key_idx,
+ ieee->pairwise_key_type,
+ zero_addr[key_idx],
+ 0,
+ hwkey);
+ set_swcam( dev,
+ key_idx,
+ key_idx,
+ ieee->pairwise_key_type,
+ zero_addr[key_idx],
+ 0,
+ hwkey,
+ 0);
+ }
+ else{
+ setKey( dev,
+ 31,
+ key_idx,
+ ieee->pairwise_key_type,
+ ieee->ap_mac_addr,
+ 0,
+ hwkey);
+ set_swcam( dev,
+ 31,
+ key_idx,
+ ieee->pairwise_key_type,
+ ieee->ap_mac_addr,
+ 0,
+ hwkey,
+ 0);
+ }
+ }
+#endif
+ }
+
+#if 0
+ if(wrqu->encoding.length==0 && (wrqu->encoding.flags >>8) == 0x8 ){
+ printk("===>1\n");
+ EnableHWSecurityConfig8192(dev);
+ key_idx = (wrqu->encoding.flags & 0xf)-1 ;
+ write_cam(dev, (4*6), 0xffff0000|read_cam(dev, key_idx*6) );
+ write_cam(dev, (4*6)+1, 0xffffffff);
+ write_cam(dev, (4*6)+2, read_cam(dev, (key_idx*6)+2) );
+ write_cam(dev, (4*6)+3, read_cam(dev, (key_idx*6)+3) );
+ write_cam(dev, (4*6)+4, read_cam(dev, (key_idx*6)+4) );
+ write_cam(dev, (4*6)+5, read_cam(dev, (key_idx*6)+5) );
+ }
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ priv->rtllib->wx_set_enc = 0;
+ printk("===================>%s():set ieee->wx_set_enc 0\n",__FUNCTION__);
+end_hw_sec:
+#else
+end_hw_sec:
+ priv->rtllib->wx_set_enc = 0;
+#endif
+ return ret;
+}
+
+
+static int r8192_wx_set_scan_type(struct net_device *dev, struct iw_request_info *aa, union
+ iwreq_data *wrqu, char *p){
+
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int *parms=(int*)p;
+ int mode=parms[0];
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ priv->rtllib->active_scan = mode;
+
+ return 1;
+}
+
+
+
+#define R8192_MAX_RETRY 255
+static int r8192_wx_set_retry(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int err = 0;
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ down(&priv->wx_sem);
+
+ if (wrqu->retry.flags & IW_RETRY_LIFETIME ||
+ wrqu->retry.disabled){
+ err = -EINVAL;
+ goto exit;
+ }
+ if (!(wrqu->retry.flags & IW_RETRY_LIMIT)){
+ err = -EINVAL;
+ goto exit;
+ }
+
+ if(wrqu->retry.value > R8192_MAX_RETRY){
+ err= -EINVAL;
+ goto exit;
+ }
+ if (wrqu->retry.flags & IW_RETRY_MAX) {
+ priv->retry_rts = wrqu->retry.value;
+ DMESG("Setting retry for RTS/CTS data to %d", wrqu->retry.value);
+
+ }else {
+ priv->retry_data = wrqu->retry.value;
+ DMESG("Setting retry for non RTS/CTS data to %d", wrqu->retry.value);
+ }
+
+
+ rtl8192_commit(dev);
+ /*
+ if(priv->up){
+ rtl8180_halt_adapter(dev);
+ rtl8180_rx_enable(dev);
+ rtl8180_tx_enable(dev);
+
+ }
+ */
+exit:
+ up(&priv->wx_sem);
+
+ return err;
+}
+
+static int r8192_wx_get_retry(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+
+ wrqu->retry.disabled = 0; /* can't be disabled */
+
+ if ((wrqu->retry.flags & IW_RETRY_TYPE) ==
+ IW_RETRY_LIFETIME)
+ return -EINVAL;
+
+ if (wrqu->retry.flags & IW_RETRY_MAX) {
+ wrqu->retry.flags = IW_RETRY_LIMIT & IW_RETRY_MAX;
+ wrqu->retry.value = priv->retry_rts;
+ } else {
+ wrqu->retry.flags = IW_RETRY_LIMIT & IW_RETRY_MIN;
+ wrqu->retry.value = priv->retry_data;
+ }
+
+
+ return 0;
+}
+
+static int r8192_wx_get_sens(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ if(priv->rf_set_sens == NULL)
+ return -1; /* we have not this support for this radio */
+ wrqu->sens.value = priv->sens;
+ return 0;
+}
+
+
+static int r8192_wx_set_sens(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ short err = 0;
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ down(&priv->wx_sem);
+ if(priv->rf_set_sens == NULL) {
+ err= -1; /* we have not this support for this radio */
+ goto exit;
+ }
+ if(priv->rf_set_sens(dev, wrqu->sens.value) == 0)
+ priv->sens = wrqu->sens.value;
+ else
+ err= -EINVAL;
+
+exit:
+ up(&priv->wx_sem);
+
+ return err;
+}
+
+#if (WIRELESS_EXT >= 18)
+#if 0
+static int r8192_wx_get_enc_ext(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int ret = 0;
+#ifdef _RTL8192_EXT_PATCH_
+ ret = rtllib_wx_get_encode_ext(priv->rtllib, info, wrqu, extra,0);
+#else
+ ret = rtllib_wx_get_encode_ext(priv->rtllib, info, wrqu, extra);
+#endif
+ return ret;
+}
+#endif
+
+#ifdef _RTL8192_EXT_PATCH_
+static int meshdev_set_key_for_linked_peers(struct net_device *dev, u8 KeyIndex,u16 KeyType, u32 *KeyContent );
+static int r8192_set_hw_enc(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra, u8 is_mesh)
+{
+ int ret=0;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+ u32 key[4] = {0};
+ struct iw_encode_ext *ext = (struct iw_encode_ext *)extra;
+ struct iw_point *encoding = &wrqu->encoding;
+ u8 idx = 0, alg = 0, group = 0;
+ u8 broadcast_addr[6] = {0xff,0xff,0xff,0xff,0xff,0xff};
+ u8 zero[6] = {0};
+ priv->rtllib->wx_set_enc = 1;
+#ifdef ENABLE_IPS
+ down(&priv->rtllib->ips_sem);
+ IPSLeave(dev);
+ up(&priv->rtllib->ips_sem);
+#endif
+#if 0
+ static u8 CAM_CONST_ADDR[4][6] = {
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x02},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x03}};
+#endif
+ if ((encoding->flags & IW_ENCODE_DISABLED) ||
+ ext->alg == IW_ENCODE_ALG_NONE)
+ {
+ if(is_mesh)
+ ieee->mesh_pairwise_key_type = ieee->mesh_pairwise_key_type = KEY_TYPE_NA;
+ else
+ ieee->pairwise_key_type = ieee->group_key_type = KEY_TYPE_NA;
+ CamResetAllEntry(dev);
+ if(is_mesh)
+ CamRestoreEachIFEntry(dev,0);
+ else
+ CamRestoreEachIFEntry(dev,1);
+ reset_IFswcam(dev,is_mesh);
+ goto end_hw_sec;
+ }
+ alg = (ext->alg == IW_ENCODE_ALG_CCMP)?KEY_TYPE_CCMP:ext->alg;
+ idx = encoding->flags & IW_ENCODE_INDEX;
+ if (idx)
+ idx --;
+ group = ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY;
+ printk("====>group is %x\n",group);
+ if ((!group) || (IW_MODE_ADHOC == ieee->iw_mode) || (alg == KEY_TYPE_WEP40) || (IW_MODE_MESH == ieee->iw_mode))
+ {
+ if ((ext->key_len == 13) && (alg == KEY_TYPE_WEP40) )
+ alg = KEY_TYPE_WEP104;
+ if(is_mesh)
+ ieee->mesh_pairwise_key_type = alg;
+ else
+ ieee->pairwise_key_type = alg;
+ EnableHWSecurityConfig8192(dev);
+ }
+ memcpy((u8*)key, ext->key, 16);
+ if ((alg & KEY_TYPE_WEP40) && (ieee->auth_mode !=2) )
+ {
+ printk("=====>set WEP key\n");
+ if (ext->key_len == 13){
+ if(is_mesh)
+ ieee->mesh_pairwise_key_type = alg = KEY_TYPE_WEP104;
+ else
+ ieee->pairwise_key_type = alg = KEY_TYPE_WEP104;
+ }
+ if(ieee->iw_mode == IW_MODE_ADHOC){
+ set_swcam( dev,
+ idx,
+ idx,
+ alg,
+ zero,
+ 0,
+ key,
+ is_mesh);
+ setKey( dev,
+ idx,
+ idx,
+ alg,
+ zero,
+ 0,
+ key);
+ }
+
+ if(!is_mesh){
+ if(ieee->state == RTLLIB_LINKED){
+ setKey( dev,
+ 31,
+ idx,
+ ieee->pairwise_key_type,
+ ieee->ap_mac_addr,
+ 0,
+ key);
+ set_swcam( dev,
+ 31,
+ idx,
+ ieee->pairwise_key_type,
+ ieee->ap_mac_addr,
+ 0,
+ key,
+ 0);
+ }
+ }
+ }
+ else if (group)
+ {
+ printk("set group key\n");
+ if(is_mesh)
+ ieee->mesh_group_key_type = alg;
+ else
+ ieee->group_key_type = alg;
+ if(ieee->iw_mode == IW_MODE_ADHOC){
+ set_swcam( dev,
+ idx,
+ idx,
+ alg,
+ broadcast_addr,
+ 0,
+ key,
+ is_mesh);
+ setKey( dev,
+ idx,
+ idx,
+ alg,
+ broadcast_addr,
+ 0,
+ key);
+ }
+
+ if(is_mesh)
+ meshdev_set_key_for_linked_peers(dev,
+ idx,
+ alg,
+ key);
+ }
+ else
+ {
+ printk("=============>set pairwise key\n");
+#ifdef RTL8192E
+ if ((ieee->pairwise_key_type == KEY_TYPE_CCMP) && ieee->pHTInfo->bCurrentHTSupport){
+ write_nic_byte(dev, 0x173, 1);
+ }
+#endif
+ set_swcam( dev,
+ 31,
+ idx,
+ alg,
+ (u8*)ieee->ap_mac_addr,
+ 0,
+ key,
+ is_mesh);
+ setKey( dev,
+ 31,
+ idx,
+ alg,
+ (u8*)ieee->ap_mac_addr,
+ 0,
+ key);
+ }
+
+end_hw_sec:
+ priv->rtllib->wx_set_enc = 0;
+ return ret;
+}
+
+int rtl8192_set_key_for_AP(struct rtllib_device *ieee)
+{
+ struct rtllib_crypt_data **crypt;
+ int key_len=0;
+ char key[32];
+ u16 keytype = IW_ENCODE_ALG_NONE;
+#ifdef _RTL8192_EXT_PATCH_
+ crypt = &ieee->sta_crypt[ieee->tx_keyidx];
+#else
+ crypt = &ieee->crypt[ieee->tx_keyidx];
+#endif
+ if (*crypt == NULL || (*crypt)->ops == NULL)
+ {
+ printk("%s():no encrypt now\n",__FUNCTION__);
+ return 0;
+ }
+ if (!((*crypt)->ops->set_key && (*crypt)->ops->get_key))
+ return -1;
+
+ key_len = (*crypt)->ops->get_key(key, 32, NULL, (*crypt)->priv);
+ if (strcmp((*crypt)->ops->name, "WEP") == 0 )
+ {
+ if(key_len == 5)
+ keytype = KEY_TYPE_WEP40;
+ else
+ keytype = KEY_TYPE_WEP104;
+ }
+ else if (strcmp((*crypt)->ops->name, "TKIP") == 0)
+ return 0;
+ else if (strcmp((*crypt)->ops->name, "CCMP") == 0)
+ return 0;
+
+ set_swcam( ieee->dev,
+ 31,
+ ieee->tx_keyidx,
+ keytype,
+ ieee->ap_mac_addr,
+ 0,
+ (u32 *)key ,
+ 0);
+ setKey( ieee->dev,
+ 31,
+ ieee->tx_keyidx,
+ keytype,
+ ieee->ap_mac_addr,
+ 0,
+ (u32 *)key);
+
+
+ return 0;
+}
+
+static int r8192_wx_set_enc_ext(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ int ret=0;
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ SEM_DOWN_PRIV_WX(&priv->wx_sem);
+ ret = rtllib_wx_set_encode_ext(ieee, info, wrqu, extra, 0);
+
+ ret |= r8192_set_hw_enc(dev,info,wrqu,extra, 0);
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+#endif
+
+ return ret;
+}
+/*
+ * set key for mesh, not a wireless extension handler.
+ * place it here because of porting from r8192_wx_set_enc_ext().
+ */
+int r8192_mesh_set_enc_ext(struct net_device *dev,
+ struct iw_point *encoding, struct iw_encode_ext *ext, u8 *addr)
+{
+ int ret=0;
+ int i=0;
+ u8 broadcast_addr[6] = {0xff,0xff,0xff,0xff,0xff,0xff};
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+ u8 entry_idx = 0;
+ down(&priv->wx_sem);
+ if(memcmp(addr,broadcast_addr,6))
+ {
+ if ((i=rtllib_find_MP(ieee, addr, 0)) < 0)
+ {
+ i = rtllib_find_MP(ieee, addr, 1);
+ if (i<0)
+ return -1;
+ }
+ }
+ ret = rtllib_mesh_set_encode_ext(ieee, encoding, ext, i);
+ if ((-EINVAL == ret) || (-ENOMEM == ret)) {
+ goto end_hw_sec;
+ }
+ {
+#if 0
+ u8 zero[6] = {0};
+#endif
+ u32 key[4] = {0};
+ u8 idx = 0, alg = 0, group = 0;
+ if ((encoding->flags & IW_ENCODE_DISABLED) ||
+ ext->alg == IW_ENCODE_ALG_NONE)
+ {
+ CamResetAllEntry(dev);
+ CamRestoreEachIFEntry(dev,0);
+ reset_IFswcam(dev,1);
+ goto end_hw_sec;
+ }
+ alg = (ext->alg == IW_ENCODE_ALG_CCMP)?KEY_TYPE_CCMP:ext->alg;
+ idx = encoding->flags & IW_ENCODE_INDEX;
+ if (idx)
+ idx --;
+ group = ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY;
+
+ if (!group)
+ {
+ ieee->mesh_pairwise_key_type = alg;
+ EnableHWSecurityConfig8192(dev);
+ }
+
+ memcpy((u8*)key, ext->key, 16);
+
+ if(group)
+ {
+ ieee->mesh_group_key_type = alg;
+#if 0
+ setKey( dev,
+ idx,
+ idx,
+ alg,
+ broadcast_addr,
+ 0,
+ key);
+#endif
+ }
+ else
+ {
+#if 0
+ if ((ieee->mesh_pairwise_key_type == KEY_TYPE_CCMP) && ieee->pHTInfo->bCurrentHTSupport){
+ write_nic_byte(dev, 0x173, 1);
+ }
+#endif
+ entry_idx = rtl8192_get_free_hwsec_cam_entry(ieee,addr);
+#if 0
+ printk("%s(): Can't find free hw security cam entry\n",__FUNCTION__);
+ ret = -1;
+#else
+ if (entry_idx >= TOTAL_CAM_ENTRY-1) {
+ printk("%s(): Can't find free hw security cam entry\n",__FUNCTION__);
+ ret = -1;
+ } else {
+ set_swcam( dev,
+ entry_idx,
+ idx,
+ alg,
+ (u8*)addr,
+ 0,
+ key,
+ 1);
+ setKey( dev,
+ entry_idx,
+ idx,
+ alg,
+ (u8*)addr,
+ 0,
+ key);
+ ret = 0;
+ }
+#endif
+ }
+
+
+ }
+
+end_hw_sec:
+ up(&priv->wx_sem);
+#endif
+ return ret;
+
+}
+#else
+static int r8192_wx_set_enc_ext(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ int ret=0;
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ down(&priv->wx_sem);
+
+ priv->rtllib->wx_set_enc = 1;
+#ifdef ENABLE_IPS
+ down(&priv->rtllib->ips_sem);
+ IPSLeave(dev);
+ up(&priv->rtllib->ips_sem);
+#endif
+
+ ret = rtllib_wx_set_encode_ext(ieee, info, wrqu, extra);
+
+ {
+ u8 broadcast_addr[6] = {0xff,0xff,0xff,0xff,0xff,0xff};
+ u8 zero[6] = {0};
+ u32 key[4] = {0};
+ struct iw_encode_ext *ext = (struct iw_encode_ext *)extra;
+ struct iw_point *encoding = &wrqu->encoding;
+#if 0
+ static u8 CAM_CONST_ADDR[4][6] = {
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x01},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x02},
+ {0x00, 0x00, 0x00, 0x00, 0x00, 0x03}};
+#endif
+ u8 idx = 0, alg = 0, group = 0;
+ if ((encoding->flags & IW_ENCODE_DISABLED) ||
+ ext->alg == IW_ENCODE_ALG_NONE)
+ {
+ ieee->pairwise_key_type = ieee->group_key_type = KEY_TYPE_NA;
+ CamResetAllEntry(dev);
+ memset(priv->rtllib->swcamtable,0,sizeof(SW_CAM_TABLE)*32);
+ goto end_hw_sec;
+ }
+ alg = (ext->alg == IW_ENCODE_ALG_CCMP)?KEY_TYPE_CCMP:ext->alg;
+ idx = encoding->flags & IW_ENCODE_INDEX;
+ if (idx)
+ idx --;
+ group = ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY;
+
+ if ((!group) || (IW_MODE_ADHOC == ieee->iw_mode) || (alg == KEY_TYPE_WEP40))
+ {
+ if ((ext->key_len == 13) && (alg == KEY_TYPE_WEP40) )
+ alg = KEY_TYPE_WEP104;
+ ieee->pairwise_key_type = alg;
+ EnableHWSecurityConfig8192(dev);
+ }
+ memcpy((u8*)key, ext->key, 16);
+
+ if ((alg & KEY_TYPE_WEP40) && (ieee->auth_mode !=2) )
+ {
+ if (ext->key_len == 13)
+ ieee->pairwise_key_type = alg = KEY_TYPE_WEP104;
+ setKey( dev,
+ idx,
+ idx,
+ alg,
+ zero,
+ 0,
+ key);
+ set_swcam( dev,
+ idx,
+ idx,
+ alg,
+ zero,
+ 0,
+ key,
+ 0);
+ }
+ else if (group)
+ {
+ ieee->group_key_type = alg;
+ setKey( dev,
+ idx,
+ idx,
+ alg,
+ broadcast_addr,
+ 0,
+ key);
+ set_swcam( dev,
+ idx,
+ idx,
+ alg,
+ broadcast_addr,
+ 0,
+ key,
+ 0);
+ }
+ else
+ {
+ #ifdef RTL8192E
+ if ((ieee->pairwise_key_type == KEY_TYPE_CCMP) && ieee->pHTInfo->bCurrentHTSupport){
+ write_nic_byte(dev, 0x173, 1);
+ }
+ #endif
+ setKey( dev,
+ 4,
+ idx,
+ alg,
+ (u8*)ieee->ap_mac_addr,
+ 0,
+ key);
+ set_swcam( dev,
+ 4,
+ idx,
+ alg,
+ (u8*)ieee->ap_mac_addr,
+ 0,
+ key,
+ 0);
+ }
+
+
+ }
+
+end_hw_sec:
+ priv->rtllib->wx_set_enc = 0;
+ up(&priv->wx_sem);
+#endif
+ return ret;
+
+}
+#endif
+static int r8192_wx_set_auth(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *data, char *extra)
+{
+ int ret=0;
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ down(&priv->wx_sem);
+ ret = rtllib_wx_set_auth(priv->rtllib, info, &(data->param), extra);
+ up(&priv->wx_sem);
+#endif
+ return ret;
+}
+
+static int r8192_wx_set_mlme(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+
+ int ret=0;
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ down(&priv->wx_sem);
+ ret = rtllib_wx_set_mlme(priv->rtllib, info, wrqu, extra);
+ up(&priv->wx_sem);
+#endif
+ return ret;
+}
+#endif
+
+static int r8192_wx_set_gen_ie(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *data, char *extra)
+{
+ int ret = 0;
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if(priv->bHwRadioOff == true)
+ return 0;
+
+ down(&priv->wx_sem);
+ ret = rtllib_wx_set_gen_ie(priv->rtllib, extra, data->data.length);
+ up(&priv->wx_sem);
+#endif
+ return ret;
+}
+
+static int r8192_wx_get_gen_ie(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *data, char *extra)
+{
+ int ret = 0;
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+
+ if (ieee->wpa_ie_len == 0 || ieee->wpa_ie == NULL) {
+ data->data.length = 0;
+ return 0;
+ }
+
+ if (data->data.length < ieee->wpa_ie_len) {
+ return -E2BIG;
+ }
+
+ data->data.length = ieee->wpa_ie_len;
+ memcpy(extra, ieee->wpa_ie, ieee->wpa_ie_len);
+#endif
+ return ret;
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+/*
+ Output:
+ (case 1) Mesh: Enable. MESHID=[%s] (max length of %s is 32 bytes).
+ (case 2) Mesh: Disable.
+*/
+static int r8192_wx_get_meshinfo(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_get_meshinfo )
+ return 0;
+ return priv->mshobj->ext_patch_r819x_wx_get_meshinfo(dev, info, wrqu, extra);
+}
+
+
+static int r8192_wx_enable_mesh(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+ RT_RF_POWER_STATE rtState;
+ int ret = 0;
+ rtState = priv->rtllib->eRFPowerState;
+
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_enable_mesh )
+ return 0;
+
+ SEM_DOWN_PRIV_WX(&priv->wx_sem);
+ if(priv->mshobj->ext_patch_r819x_wx_enable_mesh(dev))
+ {
+ union iwreq_data tmprqu;
+#ifdef ENABLE_IPS
+ if(priv->rtllib->PowerSaveControl.bInactivePs){
+ if(rtState == eRfOff){
+ if(priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS)
+ {
+ RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__);
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+ return -1;
+ }
+ else{
+ printk("=========>%s(): IPSLeave\n",__FUNCTION__);
+ IPSLeave(dev);
+ }
+ }
+ }
+#endif
+ if(ieee->only_mesh == 0)
+ {
+ tmprqu.mode = ieee->iw_mode;
+ ieee->iw_mode = 0;
+ ret = rtllib_wx_set_mode(ieee, info, &tmprqu, extra);
+ }
+ }
+
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+
+ return ret;
+
+}
+
+static int r8192_wx_disable_mesh(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+
+ int ret = 0;
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_disable_mesh )
+ return 0;
+
+ SEM_DOWN_PRIV_WX(&priv->wx_sem);
+ if(priv->mshobj->ext_patch_r819x_wx_disable_mesh(dev))
+ {
+ union iwreq_data tmprqu;
+ tmprqu.mode = ieee->iw_mode;
+ ieee->iw_mode = 999;
+ ret = rtllib_wx_set_mode(ieee, info, &tmprqu, extra);
+ }
+
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+
+ return ret;
+}
+
+
+int r8192_wx_set_channel(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ int ch = *extra;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device *ieee = priv->rtllib;
+
+ if (!priv->mshobj || (ieee->iw_mode != IW_MODE_MESH) || !priv->mshobj->ext_patch_r819x_wx_set_channel || !ieee->only_mesh)
+ return 0;
+
+ if ( ch < 0 )
+ {
+ rtllib_start_scan(ieee);
+ ieee->meshScanMode =2;
+ }
+ else
+ {
+ ieee->meshScanMode =0;
+ if(priv->mshobj->ext_patch_r819x_wx_set_channel)
+ {
+ priv->mshobj->ext_patch_r819x_wx_set_channel(ieee, ch);
+ priv->mshobj->ext_patch_r819x_wx_set_mesh_chan(dev,ch);
+ }
+ queue_work_rsl(ieee->wq, &ieee->ext_stop_scan_wq);
+ ieee->set_chan(ieee->dev, ch);
+printk("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!set current mesh network channel %d\n", ch);
+ ieee->current_mesh_network.channel = ch;
+ if(ieee->only_mesh)
+ ieee->current_network.channel = ch;
+
+ ieee->current_network.channel = ieee->current_mesh_network.channel;
+ if(ieee->pHTInfo->bCurBW40MHz)
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ else
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ if(rtllib_act_scanning(ieee,true) == true)
+ rtllib_stop_scan_syncro(ieee);
+ }
+
+ return 0;
+}
+
+static int r8192_wx_set_meshID(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_meshID )
+ return 0;
+
+ return priv->mshobj->ext_patch_r819x_wx_set_meshID(dev, wrqu->data.pointer);
+}
+
+
+/* reserved for future
+static int r8192_wx_add_mac_deny(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_add_mac_deny )
+ return 0;
+
+ return priv->mshobj->ext_patch_r819x_wx_set_add_mac_deny(dev, info, wrqu, extra);
+}
+
+static int r8192_wx_del_mac_deny(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_del_mac_deny )
+ return 0;
+
+ return priv->mshobj->ext_patch_r819x_wx_set_del_mac_deny(dev, info, wrqu, extra);
+}
+*/
+/* reserved for future
+static int r8192_wx_get_mac_deny(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_get_mac_deny )
+ return 0;
+
+ return priv->mshobj->ext_patch_r819x_wx_get_mac_deny(dev, info, wrqu, extra);
+}
+static int r8192_wx_join_mesh(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int ret=0;
+ char ch;
+ if(priv->rtllib->iw_mode == IW_MODE_MESH) {
+ printk("join mesh %s\n",extra);
+ if (wrqu->essid.length > IW_ESSID_MAX_SIZE){
+ ret= -E2BIG;
+ goto out;
+ }
+ if((wrqu->essid.length == 1) && (wrqu->essid.flags == 1)){
+ ret = 0;
+ goto out;
+ }
+ if (wrqu->essid.flags && wrqu->essid.length) {
+ if(priv->mshobj->ext_patch_r819x_wx_get_selected_mesh_channel(dev, extra, &ch))
+ {
+ priv->mshobj->ext_patch_r819x_wx_set_meshID(dev, extra);
+ priv->mshobj->ext_patch_r819x_wx_set_mesh_chan(dev,ch);
+ r8192_wx_set_channel(dev, NULL, NULL, &ch);
+ }
+ else
+ printk("invalid mesh #\n");
+ }
+ }
+out:
+ return ret;
+}
+*/
+
+static int r8192_wx_get_mesh_list(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_get_mesh_list )
+ return 0;
+ return priv->mshobj->ext_patch_r819x_wx_get_mesh_list(dev, info, wrqu, extra);
+}
+
+static int r8192_wx_mesh_scan(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_mesh_scan )
+ return 0;
+ return priv->mshobj->ext_patch_r819x_wx_mesh_scan(dev, info, wrqu, extra);
+}
+
+static int r8192_wx_set_meshmode(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ SEM_DOWN_PRIV_WX(&priv->wx_sem);
+
+ printk("%s(): set mesh mode ! extra is %d\n",__FUNCTION__, *extra);
+ if((*extra != WIRELESS_MODE_A) && (*extra != WIRELESS_MODE_B) &&
+ (*extra != WIRELESS_MODE_G) && (*extra != WIRELESS_MODE_AUTO) &&
+ (*extra != WIRELESS_MODE_N_24G) && (*extra != WIRELESS_MODE_N_5G))
+ {
+ printk("ERR!! you should input 1 | 2 | 4 | 8 | 16 | 32\n");
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+ return -1;
+ }
+ if(priv->rtllib->state == RTLLIB_LINKED)
+ {
+ if((priv->rtllib->mode != WIRELESS_MODE_N_5G) && (priv->rtllib->mode != WIRELESS_MODE_N_24G)){
+ printk("===>wlan0 is linked,and ieee->mode is not N mode ,do not need to set mode,return\n");
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+ return 0;
+ }
+ }
+ priv->rtllib->mode = *extra;
+ if(priv->ResetProgress == RESET_TYPE_NORESET)
+ rtl8192_SetWirelessMode(dev, priv->rtllib->mode);
+ HTUseDefaultSetting(priv->rtllib);
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+ return 0;
+
+}
+
+static int r8192_wx_set_meshBW(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ SEM_DOWN_PRIV_WX(&priv->wx_sem);
+
+ printk("%s(): set mesh BW ! extra is %d\n",__FUNCTION__, *extra);
+ priv->rtllib->pHTInfo->bRegBW40MHz = *extra;
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+ return 0;
+}
+static int r8192_wx_set_mesh_security(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+
+ down(&priv->wx_sem);
+
+ printk("%s(): set mesh security! extra is %d\n",__FUNCTION__, *extra);
+ ieee->mesh_security_setting = *extra;
+
+ if (0 == ieee->mesh_security_setting)
+ {
+ ieee->mesh_pairwise_key_type = ieee->mesh_group_key_type = KEY_TYPE_NA;
+ CamResetAllEntry(dev);
+ CamRestoreEachIFEntry(dev,0);
+ reset_IFswcam(dev,1);
+ }
+ else
+ {
+ ieee->mesh_pairwise_key_type = KEY_TYPE_CCMP;
+ ieee->mesh_group_key_type = KEY_TYPE_CCMP;
+ }
+ up(&priv->wx_sem);
+ return 0;
+
+}
+
+static int r8192_wx_set_mkdd_id(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ printk("===>%s()\n",__FUNCTION__);
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_mkdd_id)
+ return 0;
+
+ return priv->mshobj->ext_patch_r819x_wx_set_mkdd_id(dev, wrqu->data.pointer);
+}
+
+static int r8192_wx_set_mesh_key(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ printk("===>%s()\n",__FUNCTION__);
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_mesh_key)
+ return 0;
+ return priv->mshobj->ext_patch_r819x_wx_set_mesh_key(dev, wrqu->data.pointer);
+}
+
+static int r8192_wx_set_mesh_sec_type(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+
+ printk("%s(): set mesh security type! extra is %d\n",__FUNCTION__, *extra);
+ if (ieee->mesh_sec_type == 1 && *extra != 1 && ieee->mesh_security_setting == 3) {
+ rtl8192_abbr_handshk_disable_key(ieee);
+
+ if(priv->mshobj->ext_patch_r819x_wx_release_sae_info)
+ priv->mshobj->ext_patch_r819x_wx_release_sae_info(ieee);
+ }
+ down(&priv->wx_sem);
+
+ ieee->mesh_sec_type = *extra;
+
+ if(ieee->mesh_sec_type == 0)
+ ieee->mesh_pairwise_key_type = ieee->mesh_group_key_type = KEY_TYPE_NA;
+
+ up(&priv->wx_sem);
+ return 0;
+}
+
+#endif
+
+#define OID_RT_INTEL_PROMISCUOUS_MODE 0xFF0101F6
+
+static int r8192_wx_set_PromiscuousMode(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+
+ u32 *info_buf = (u32*)(wrqu->data.pointer);
+
+ u32 oid = info_buf[0];
+ u32 bPromiscuousOn = info_buf[1];
+ u32 bFilterSourceStationFrame = info_buf[2];
+
+ if (OID_RT_INTEL_PROMISCUOUS_MODE == oid)
+ {
+ ieee->IntelPromiscuousModeInfo.bPromiscuousOn =
+ (bPromiscuousOn)? (true) : (false);
+ ieee->IntelPromiscuousModeInfo.bFilterSourceStationFrame =
+ (bFilterSourceStationFrame)? (true) : (false);
+
+ (bPromiscuousOn) ? (rtllib_EnableIntelPromiscuousMode(dev, false)) :
+ (rtllib_DisableIntelPromiscuousMode(dev, false));
+
+ printk("=======>%s(), on = %d, filter src sta = %d\n", __FUNCTION__,
+ bPromiscuousOn, bFilterSourceStationFrame);
+ } else {
+ return -1;
+ }
+
+ return 0;
+}
+
+
+static int r8192_wx_get_PromiscuousMode(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+
+ down(&priv->wx_sem);
+
+ snprintf(extra, 45, "PromiscuousMode:%d, FilterSrcSTAFrame:%d",\
+ ieee->IntelPromiscuousModeInfo.bPromiscuousOn,\
+ ieee->IntelPromiscuousModeInfo.bFilterSourceStationFrame);
+ wrqu->data.length = strlen(extra) + 1;
+
+ up(&priv->wx_sem);
+
+ return 0;
+}
+
+
+#define IW_IOCTL(x) [(x)-SIOCSIWCOMMIT]
+static iw_handler r8192_wx_handlers[] =
+{
+ IW_IOCTL(SIOCGIWNAME) = r8192_wx_get_name,
+ IW_IOCTL(SIOCSIWFREQ) = r8192_wx_set_freq,
+ IW_IOCTL(SIOCGIWFREQ) = r8192_wx_get_freq,
+ IW_IOCTL(SIOCSIWMODE) = r8192_wx_set_mode,
+ IW_IOCTL(SIOCGIWMODE) = r8192_wx_get_mode,
+ IW_IOCTL(SIOCSIWSENS) = r8192_wx_set_sens,
+ IW_IOCTL(SIOCGIWSENS) = r8192_wx_get_sens,
+ IW_IOCTL(SIOCGIWRANGE) = rtl8192_wx_get_range,
+ IW_IOCTL(SIOCSIWAP) = r8192_wx_set_wap,
+ IW_IOCTL(SIOCGIWAP) = r8192_wx_get_wap,
+ IW_IOCTL(SIOCSIWSCAN) = r8192_wx_set_scan,
+ IW_IOCTL(SIOCGIWSCAN) = r8192_wx_get_scan,
+ IW_IOCTL(SIOCSIWESSID) = r8192_wx_set_essid,
+ IW_IOCTL(SIOCGIWESSID) = r8192_wx_get_essid,
+ IW_IOCTL(SIOCSIWNICKN) = r8192_wx_set_nick,
+ IW_IOCTL(SIOCGIWNICKN) = r8192_wx_get_nick,
+ IW_IOCTL(SIOCSIWRATE) = r8192_wx_set_rate,
+ IW_IOCTL(SIOCGIWRATE) = r8192_wx_get_rate,
+ IW_IOCTL(SIOCSIWRTS) = r8192_wx_set_rts,
+ IW_IOCTL(SIOCGIWRTS) = r8192_wx_get_rts,
+ IW_IOCTL(SIOCSIWFRAG) = r8192_wx_set_frag,
+ IW_IOCTL(SIOCGIWFRAG) = r8192_wx_get_frag,
+ IW_IOCTL(SIOCSIWRETRY) = r8192_wx_set_retry,
+ IW_IOCTL(SIOCGIWRETRY) = r8192_wx_get_retry,
+ IW_IOCTL(SIOCSIWENCODE) = r8192_wx_set_enc,
+ IW_IOCTL(SIOCGIWENCODE) = r8192_wx_get_enc,
+ IW_IOCTL(SIOCSIWPOWER) = r8192_wx_set_power,
+ IW_IOCTL(SIOCGIWPOWER) = r8192_wx_get_power,
+#if (WIRELESS_EXT >= 18)
+ IW_IOCTL(SIOCSIWGENIE) = r8192_wx_set_gen_ie,
+ IW_IOCTL(SIOCGIWGENIE) = r8192_wx_get_gen_ie,
+ IW_IOCTL(SIOCSIWMLME) = r8192_wx_set_mlme,
+ IW_IOCTL(SIOCSIWAUTH) = r8192_wx_set_auth,
+ IW_IOCTL(SIOCSIWENCODEEXT) = r8192_wx_set_enc_ext,
+#endif
+};
+
+/*
+ * the following rule need to be follwing,
+ * Odd : get (world access),
+ * even : set (root access)
+ * */
+static const struct iw_priv_args r8192_private_args[] = {
+ {
+ SIOCIWFIRSTPRIV + 0x0,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "set_debugflag"
+ },
+ {
+ SIOCIWFIRSTPRIV + 0x1,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "activescan"
+ },
+ {
+ SIOCIWFIRSTPRIV + 0x2,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "rawtx"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x3,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "forcereset"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x4,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "force_mic_error"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x5,
+ IW_PRIV_TYPE_NONE, IW_PRIV_TYPE_INT|IW_PRIV_SIZE_FIXED|1,
+ "firm_ver"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x6,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED|1, IW_PRIV_TYPE_NONE,
+ "set_power"
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x7,
+ IW_PRIV_TYPE_NONE, IW_PRIV_TYPE_CHAR|512,
+ "print_reg"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x8,
+ IW_PRIV_TYPE_NONE, IW_PRIV_TYPE_CHAR|64,
+ "resume_firm"
+ }
+#endif
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x9,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED|1, IW_PRIV_TYPE_NONE,
+ "radio"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0xa,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED|1, IW_PRIV_TYPE_NONE,
+ "lps_interv"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0xb,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED|1, IW_PRIV_TYPE_NONE,
+ "lps_force"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0xc,
+ 0, IW_PRIV_TYPE_CHAR|2047, "adhoc_peer_list"
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0xd,
+ IW_PRIV_TYPE_NONE, IW_PRIV_TYPE_CHAR|64,
+ "driverVer"
+ }
+#endif
+#ifdef CONFIG_MP
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0xe,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "SetChan"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0xf,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "SetRate"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x10,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "SetTxPower"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x11,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "SetBW"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x12,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "TxStart"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x13,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,0, "SetSingleCarrier"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x14,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 3, 0, "WriteRF"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x15,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 3, 0, "WriteMAC"
+ }
+#endif
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x16,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 3, 0, "setpromisc"
+ }
+ ,
+ {
+ SIOCIWFIRSTPRIV + 0x17,
+ 0,IW_PRIV_TYPE_CHAR | IW_PRIV_SIZE_FIXED | 45, "getpromisc"
+ }
+
+};
+
+static iw_handler r8192_private_handler[] = {
+ (iw_handler)r8192_wx_set_debugflag, /*SIOCIWSECONDPRIV*/
+ (iw_handler)r8192_wx_set_scan_type,
+ (iw_handler)r8192_wx_set_rawtx,
+ (iw_handler)r8192_wx_force_reset,
+ (iw_handler)r8192_wx_force_mic_error,
+ (iw_handler)r8191se_wx_get_firm_version,
+ (iw_handler)r8192_wx_adapter_power_status,
+#ifdef _RTL8192_EXT_PATCH_
+ (iw_handler)r8192_wx_print_reg,
+ (iw_handler)r8192_wx_resume_firm,
+#else
+ (iw_handler)NULL,
+ (iw_handler)NULL,
+#endif
+ (iw_handler)r8192se_wx_set_radio,
+ (iw_handler)r8192se_wx_set_lps_awake_interval,
+ (iw_handler)r8192se_wx_set_force_lps,
+ (iw_handler)r8192_wx_get_adhoc_peers,
+#ifdef _RTL8192_EXT_PATCH_
+ (iw_handler)r8192_wx_get_drv_version,
+#else
+ (iw_handler)NULL,
+#endif
+#ifdef CONFIG_MP
+ (iw_handler)r8192_wx_mp_set_chan,
+ (iw_handler)r8192_wx_mp_set_txrate,
+ (iw_handler)r8192_wx_mp_set_txpower,
+ (iw_handler)r8192_wx_mp_set_bw,
+ (iw_handler)r8192_wx_mp_set_txstart,
+ (iw_handler)r8192_wx_mp_set_singlecarrier,
+ (iw_handler)r8192_wx_mp_write_rf,
+ (iw_handler)r8192_wx_mp_write_mac,
+#else
+ (iw_handler)NULL,
+ (iw_handler)NULL,
+ (iw_handler)NULL,
+ (iw_handler)NULL,
+ (iw_handler)NULL,
+ (iw_handler)NULL,
+ (iw_handler)NULL,
+ (iw_handler)NULL,
+#endif
+ (iw_handler)r8192_wx_set_PromiscuousMode,
+ (iw_handler)r8192_wx_get_PromiscuousMode,
+};
+
+struct iw_statistics *r8192_get_wireless_stats(struct net_device *dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+ struct iw_statistics* wstats = &priv->wstats;
+ int tmp_level = 0;
+ int tmp_qual = 0;
+ int tmp_noise = 0;
+ if(ieee->state < RTLLIB_LINKED)
+ {
+ wstats->qual.qual = 10;
+ wstats->qual.level = 0;
+ wstats->qual.noise = -100;
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14))
+ wstats->qual.updated = IW_QUAL_ALL_UPDATED | IW_QUAL_DBM;
+#else
+ wstats->qual.updated = 0x0f;
+#endif
+ return wstats;
+ }
+
+ tmp_level = (&ieee->current_network)->stats.rssi;
+ tmp_qual = (&ieee->current_network)->stats.signal;
+ tmp_noise = (&ieee->current_network)->stats.noise;
+
+ wstats->qual.level = tmp_level;
+ wstats->qual.qual = tmp_qual;
+ wstats->qual.noise = tmp_noise;
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14))
+ wstats->qual.updated = IW_QUAL_ALL_UPDATED | IW_QUAL_DBM;
+#else
+ wstats->qual.updated = 0x0f;
+#endif
+ return wstats;
+}
+
+#if defined RTL8192SE || defined RTL8192CE
+u8 SS_Rate_Map_G[6][2] = {{40, MGN_54M}, {30, MGN_48M}, {20, MGN_36M},
+ {12, MGN_24M}, {7, MGN_18M}, {0, MGN_12M}};
+u8 MSI_SS_Rate_Map_G[6][2] = {{40, MGN_54M}, {30, MGN_54M}, {20, MGN_54M},
+ {12, MGN_48M}, {7, MGN_36M}, {0, MGN_24M}};
+u8 SS_Rate_Map_B[2][2] = {{7, MGN_11M}, {0, MGN_5_5M}};
+u8 SS_Rate_Map_N_MCS7[7][2] = {{40, MGN_MCS7}, {30, MGN_MCS5}, {25, MGN_MCS4},
+ {23, MGN_MCS3}, {19, MGN_MCS2}, {8, MGN_MCS1}, {0, MGN_MCS0}};
+u8 SS_Rate_Map_N_MCS15[7][2] = {{40, MGN_MCS15}, {35, MGN_MCS14}, {31, MGN_MCS12},
+ {28, MGN_MCS7}, {25, MGN_MCS5}, {23, MGN_MCS3}, {20, MGN_MCS0}};
+#define TxRateTypeNormal 0
+#define TxRateTypeCurrent 1
+#define TxRateTypeStartRate 2
+
+u8 rtl8192_decorate_txrate_by_singalstrength(u32 SignalStrength, u8 *SS_Rate_Map, u8 MapSize)
+{
+ u8 index = 0;
+
+ for (index = 0; index < (MapSize * 2); index += 2) {
+ if (SignalStrength > SS_Rate_Map[index])
+ return SS_Rate_Map[index+1];
+ }
+
+ return MGN_1M;
+}
+
+u16 rtl8192_11n_user_show_rates(struct net_device* dev)
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ static u8 TimesForReportingFullRxSpeedAfterConnected = 100;
+ u8 rate = MGN_1M;
+ u32 Sgstrength;
+ bool TxorRx = priv->rtllib->bForcedShowRxRate;
+
+
+ if (!TxorRx) {
+ {
+ return CONVERT_RATE(priv->rtllib, priv->rtllib->softmac_stats.CurrentShowTxate);
+ }
+ }
+
+ if(priv->rtllib->bForcedShowRateStill) {
+ Sgstrength = 100;
+ } else {
+ Sgstrength = priv->undecorated_smoothed_pwdb;
+ }
+
+ if (priv->rtllib->mode == WIRELESS_MODE_A ||
+ priv->rtllib->mode == WIRELESS_MODE_G ||
+ priv->rtllib->mode == (WIRELESS_MODE_G | WIRELESS_MODE_B )) {
+ if (priv->CustomerID == RT_CID_819x_MSI) {
+ rate = rtl8192_decorate_txrate_by_singalstrength(Sgstrength,
+ (u8*)MSI_SS_Rate_Map_G, sizeof(MSI_SS_Rate_Map_G)/2);
+ } else {
+ rate = rtl8192_decorate_txrate_by_singalstrength(Sgstrength,
+ (u8*)SS_Rate_Map_G, sizeof(SS_Rate_Map_G)/2);
+ }
+ } else if (priv->rtllib->mode == WIRELESS_MODE_B) {
+ rate = rtl8192_decorate_txrate_by_singalstrength(Sgstrength, (u8*)SS_Rate_Map_B,
+ sizeof(SS_Rate_Map_B)/2);
+ } else if(priv->rtllib->mode == WIRELESS_MODE_N_24G) {
+ bool bMaxRateMcs15;
+ bool b1SSSupport = priv->rtllib->b1x1RecvCombine;
+ u8 rftype = priv->rf_type;
+ if (((!TxorRx) && (rftype==RF_1T1R || rftype==RF_1T2R)) ||
+ (TxorRx && (rftype==RF_1T1R || (rftype==RF_1T2R && b1SSSupport))) ||
+ (rftype==RF_2T2R && priv->rtllib->HTHighestOperaRate<=MGN_MCS7))
+ bMaxRateMcs15 = false;
+ else
+ bMaxRateMcs15 = true;
+
+ if((priv->rtllib->state == RTLLIB_LINKED) && !(priv->rtllib->pHTInfo->bCurBW40MHz))
+ bMaxRateMcs15 = false;
+
+ if(priv->rtllib->state != RTLLIB_LINKED)
+ priv->rtllib->SystemQueryDataRateCount = 0;
+ if (TimesForReportingFullRxSpeedAfterConnected > priv->rtllib->SystemQueryDataRateCount) {
+ priv->rtllib->SystemQueryDataRateCount++;
+ if(bMaxRateMcs15)
+ return 600;
+ else
+ return 270;
+ }
+
+ if (bMaxRateMcs15)
+ rate = rtl8192_decorate_txrate_by_singalstrength(Sgstrength, (u8*)SS_Rate_Map_N_MCS15,
+ sizeof(SS_Rate_Map_N_MCS15)/2);
+ else
+ rate = rtl8192_decorate_txrate_by_singalstrength(Sgstrength, (u8*)SS_Rate_Map_N_MCS7,
+ sizeof(SS_Rate_Map_N_MCS7)/2);
+ } else if (priv->rtllib->mode == WIRELESS_MODE_N_5G) {
+ return 580;
+ } else {
+ return 2;
+ }
+
+ if (priv->rtllib->GetHalfNmodeSupportByAPsHandler(dev)) {
+ if (rate < 0x80)
+ return rate;
+ else
+ return HTHalfMcsToDataRate(priv->rtllib, rate);
+ } else {
+ return CONVERT_RATE(priv->rtllib, rate);
+ }
+}
+#endif
+
+struct iw_handler_def r8192_wx_handlers_def={
+ .standard = r8192_wx_handlers,
+ .num_standard = sizeof(r8192_wx_handlers) / sizeof(iw_handler),
+ .private = r8192_private_handler,
+ .num_private = sizeof(r8192_private_handler) / sizeof(iw_handler),
+ .num_private_args = sizeof(r8192_private_args) / sizeof(struct iw_priv_args),
+#if WIRELESS_EXT >= 17
+ .get_wireless_stats = r8192_get_wireless_stats,
+#endif
+ .private_args = (struct iw_priv_args *)r8192_private_args,
+};
+
+#ifdef _RTL8192_EXT_PATCH_
+#define OID_802_11_MESH_SECURITY_INFO 0x0651
+#define OID_802_11_MESH_ID 0x0652
+#define OID_802_11_MESH_AUTO_LINK 0x0653
+#define OID_802_11_MESH_LINK_STATUS 0x0654
+#define OID_802_11_MESH_LIST 0x0655
+#define OID_802_11_MESH_ROUTE_LIST 0x0656
+#define OID_802_11_MESH_ADD_LINK 0x0657
+#define OID_802_11_MESH_DEL_LINK 0x0658
+#define OID_802_11_MESH_MAX_TX_RATE 0x0659
+#define OID_802_11_MESH_CHANNEL 0x065A
+#define OID_802_11_MESH_HOSTNAME 0x065B
+#define OID_802_11_MESH_ONLY_MODE 0x065C
+
+#define OID_GET_SET_TOGGLE 0x8000
+#define RTL_OID_802_11_MESH_SECURITY_INFO (OID_GET_SET_TOGGLE + OID_802_11_MESH_SECURITY_INFO)
+#define RTL_OID_802_11_MESH_ID (OID_GET_SET_TOGGLE + OID_802_11_MESH_ID)
+#define RTL_OID_802_11_MESH_AUTO_LINK (OID_GET_SET_TOGGLE + OID_802_11_MESH_AUTO_LINK)
+#define RTL_OID_802_11_MESH_ADD_LINK (OID_GET_SET_TOGGLE + OID_802_11_MESH_ADD_LINK)
+#define RTL_OID_802_11_MESH_DEL_LINK (OID_GET_SET_TOGGLE + OID_802_11_MESH_DEL_LINK)
+#define RTL_OID_802_11_MESH_MAX_TX_RATE (OID_GET_SET_TOGGLE + OID_802_11_MESH_MAX_TX_RATE)
+#define RTL_OID_802_11_MESH_CHANNEL (OID_GET_SET_TOGGLE + OID_802_11_MESH_CHANNEL)
+#define RTL_OID_802_11_MESH_HOSTNAME (OID_GET_SET_TOGGLE + OID_802_11_MESH_HOSTNAME)
+#define RTL_OID_802_11_MESH_ONLY_MODE (OID_GET_SET_TOGGLE + OID_802_11_MESH_ONLY_MODE)
+
+#define MAX_NEIGHBOR_NUM 64
+typedef struct _MESH_NEIGHBOR_ENTRY
+{
+ char Rssi;
+ unsigned char HostName[MAX_HOST_NAME_LENGTH];
+ unsigned char MacAddr[ETH_ALEN];
+ unsigned char MeshId[MAX_MESH_ID_LEN];
+ unsigned char Channel;
+ unsigned char Status;
+ unsigned char MeshEncrypType;
+} MESH_NEIGHBOR_ENTRY, *PMESH_NEIGHBOR_ENTRY;
+typedef struct _MESH_NEIGHBOR_INFO
+{
+ MESH_NEIGHBOR_ENTRY Entry[MAX_NEIGHBOR_NUM];
+ unsigned char num;
+} MESH_NEIGHBOR_INFO, *PMESH_NEIGHBOR_INFO;
+
+static int meshdev_set_key_for_linked_peers(struct net_device *dev, u8 KeyIndex,
+ u16 KeyType, u32 *KeyContent )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+ struct mshclass *mshobj = priv->mshobj;
+ PMESH_NEIGHBOR_INFO pmesh_neighbor = NULL;
+ PMESH_NEIGHBOR_ENTRY pneighbor_entry = NULL;
+ u8 entry_idx = 0;
+ int i = 0;
+ int found_idx = MAX_MP-1;
+ pmesh_neighbor = (PMESH_NEIGHBOR_INFO)kmalloc(sizeof(MESH_NEIGHBOR_INFO), GFP_KERNEL);
+ if(NULL == pmesh_neighbor)
+ return -1;
+
+ if(mshobj->ext_patch_r819x_get_peers)
+ mshobj->ext_patch_r819x_get_peers(dev, (void*)pmesh_neighbor);
+
+ for (i=0; i<pmesh_neighbor->num; i++) {
+ pneighbor_entry = (PMESH_NEIGHBOR_ENTRY)&pmesh_neighbor->Entry[i];
+ if (mshobj->ext_patch_r819x_insert_linking_crypt_peer_queue)
+ found_idx = mshobj->ext_patch_r819x_insert_linking_crypt_peer_queue(ieee,pneighbor_entry->MacAddr);
+ if (found_idx == -1) {
+ printk("%s(): found_idx is -1 , something is wrong, return\n",__FUNCTION__);
+ return -1;
+ } else if (found_idx == (MAX_MP - 1)) {
+ printk("%s(): found_idx is MAX_MP-1, peer entry is full, return\n",__FUNCTION__);
+ return -1;
+ }
+ if ((((ieee->LinkingPeerBitMap>>found_idx) & (BIT0)) == BIT0) && ((ieee->LinkingPeerSecState[found_idx] == USED) )) {
+ entry_idx = rtl8192_get_free_hwsec_cam_entry(ieee, pneighbor_entry->MacAddr);
+#if 0
+ printk("%s: Can not find free hw security cam entry, use software encryption entry(%d)\n", __FUNCTION__,entry_idx);
+ if (mshobj->ext_patch_r819x_set_msh_peer_entry_sec_info)
+ mshobj->ext_patch_r819x_set_msh_peer_entry_sec_info(ieee,pneighbor_entry->MacAddr,SW_SEC);
+ ieee->LinkingPeerSecState[found_idx] = SW_SEC;
+#else
+ if (entry_idx >= TOTAL_CAM_ENTRY-1) {
+ printk("%s: Can not find free hw security cam entry, use software encryption entry(%d)\n", __FUNCTION__,entry_idx);
+ if (mshobj->ext_patch_r819x_set_msh_peer_entry_sec_info)
+ mshobj->ext_patch_r819x_set_msh_peer_entry_sec_info(ieee,pneighbor_entry->MacAddr,SW_SEC);
+ ieee->LinkingPeerSecState[found_idx] = SW_SEC;
+ } else {
+ printk("==========>%s():entry_idx is %d,set HW CAM\n",__FUNCTION__,entry_idx);
+ set_swcam( dev,
+ entry_idx,
+ KeyIndex,
+ KeyType,
+ pneighbor_entry->MacAddr,
+ 0,
+ KeyContent,
+ 1);
+ setKey( dev,
+ entry_idx,
+ KeyIndex,
+ KeyType,
+ pneighbor_entry->MacAddr,
+ 0,
+ KeyContent);
+ if (mshobj->ext_patch_r819x_set_msh_peer_entry_sec_info)
+ mshobj->ext_patch_r819x_set_msh_peer_entry_sec_info(ieee,pneighbor_entry->MacAddr,HW_SEC);
+ ieee->LinkingPeerSecState[found_idx] = HW_SEC;
+ }
+#endif
+ }
+ }
+ if(pmesh_neighbor)
+ kfree(pmesh_neighbor);
+ return 0;
+}
+
+int meshdev_set_key_for_peer(struct net_device *dev,
+ u8 *Addr,
+ u8 KeyIndex,
+ u16 KeyType,
+ u32 *KeyContent )
+{
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct rtllib_device* ieee = priv->rtllib;
+ u8 entry_idx = 0;
+
+ entry_idx = rtl8192_get_free_hwsec_cam_entry(ieee, Addr);
+#if 0
+ printk("%s: Can not find free hw security cam entry\n", __FUNCTION__);
+ return -1;
+#else
+ if (entry_idx >= TOTAL_CAM_ENTRY-1) {
+ printk("%s: Can not find free hw security cam entry\n", __FUNCTION__);
+ return -1;
+ } else {
+ set_swcam(dev,
+ entry_idx,
+ KeyIndex,
+ KeyType,
+ Addr,
+ 0,
+ KeyContent,
+ 1);
+ setKey(dev,
+ entry_idx,
+ KeyIndex,
+ KeyType,
+ Addr,
+ 0,
+ KeyContent);
+ }
+ return 0;
+#endif
+}
+
+static struct net_device_stats *meshdev_stats(struct net_device *meshdev)
+{
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ return &((struct meshdev_priv*)netdev_priv(meshdev))->stats;
+#else
+ return &((struct meshdev_priv*)meshdev->priv)->stats;
+#endif
+}
+
+static int meshdev_wx_get_name(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_get_name(dev, info, wrqu, extra);
+}
+static int meshdev_wx_get_freq(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ return rtllib_wx_get_freq(priv->rtllib,info,wrqu,extra,1);
+}
+static int meshdev_wx_get_mode(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ if(0)
+ return r8192_wx_get_mode(dev, info, wrqu, extra);
+ else
+ return -1;
+}
+static int meshdev_wx_get_sens(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_get_sens(dev, info, wrqu, extra);
+}
+static int meshdev_wx_get_range(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return rtl8192_wx_get_range(dev, info, wrqu, extra);
+}
+static int meshdev_wx_get_wap(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_get_wap(dev, info, wrqu, extra);
+}
+static int meshdev_wx_get_essid(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct mshclass *mshobj = priv->mshobj;
+ int ret = 0;
+
+ if(mshobj->ext_patch_r819x_wx_get_meshid)
+ ret = mshobj->ext_patch_r819x_wx_get_meshid(dev, info, wrqu, extra);
+
+ return ret;
+}
+static int meshdev_wx_get_rate(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_get_rate(dev, info, wrqu, extra);
+}
+#if 0
+static int meshdev_wx_set_freq(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_set_freq(dev, info, wrqu, extra);
+}
+static int meshdev_wx_set_rate(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_set_rate(dev, info, wrqu, extra);
+}
+static int meshdev_wx_set_sens(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_set_sens(dev, info, wrqu, extra);
+}
+static int meshdev_wx_set_scan(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_set_scan(dev, info, wrqu, extra);
+}
+static int meshdev_wx_get_scan(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_get_scan(dev, info, wrqu, extra);
+}
+#endif
+static int meshdev_wx_set_enc(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *key)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+ struct r8192_priv *priv = (struct r8192_priv *)ieee->priv;
+ int ret;
+ u32 hwkey[4]={0,0,0,0};
+ u8 mask=0xff;
+ u32 key_idx=0;
+#if 0
+ u8 zero_addr[4][6] ={ {0x00,0x00,0x00,0x00,0x00,0x00},
+ {0x00,0x00,0x00,0x00,0x00,0x01},
+ {0x00,0x00,0x00,0x00,0x00,0x02},
+ {0x00,0x00,0x00,0x00,0x00,0x03} };
+#endif
+ int i;
+
+ if(!priv->mesh_up) return -ENETDOWN;
+
+ SEM_DOWN_PRIV_WX(&priv->wx_sem);
+
+ RT_TRACE(COMP_SEC, "Setting SW wep key");
+ ret = rtllib_wx_set_encode(priv->rtllib,info,wrqu,key,1);
+
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+
+
+ if(wrqu->encoding.length!=0){
+
+ for(i=0 ; i<4 ; i++){
+ hwkey[i] |= key[4*i+0]&mask;
+ if(i==1&&(4*i+1)==wrqu->encoding.length) mask=0x00;
+ if(i==3&&(4*i+1)==wrqu->encoding.length) mask=0x00;
+ hwkey[i] |= (key[4*i+1]&mask)<<8;
+ hwkey[i] |= (key[4*i+2]&mask)<<16;
+ hwkey[i] |= (key[4*i+3]&mask)<<24;
+ }
+
+ #define CONF_WEP40 0x4
+ #define CONF_WEP104 0x14
+
+ switch(wrqu->encoding.flags & IW_ENCODE_INDEX){
+ case 0: key_idx = ieee->mesh_txkeyidx; break;
+ case 1: key_idx = 0; break;
+ case 2: key_idx = 1; break;
+ case 3: key_idx = 2; break;
+ case 4: key_idx = 3; break;
+ default: break;
+ }
+
+ if(wrqu->encoding.length==0x5){
+ ieee->mesh_pairwise_key_type = KEY_TYPE_WEP40;
+ EnableHWSecurityConfig8192(dev);
+ }
+
+ else if(wrqu->encoding.length==0xd){
+ ieee->mesh_pairwise_key_type = KEY_TYPE_WEP104;
+ EnableHWSecurityConfig8192(dev);
+ }
+ else
+ printk("wrong type in WEP, not WEP40 and WEP104\n");
+
+ meshdev_set_key_for_linked_peers(dev,
+ key_idx,
+ ieee->mesh_pairwise_key_type,
+ hwkey);
+
+ }
+
+#if 0
+ if(wrqu->encoding.length==0 && (wrqu->encoding.flags >>8) == 0x8 ){
+ printk("===>1\n");
+ EnableHWSecurityConfig8192(dev);
+ key_idx = (wrqu->encoding.flags & 0xf)-1 ;
+ write_cam(dev, (4*6), 0xffff0000|read_cam(dev, key_idx*6) );
+ write_cam(dev, (4*6)+1, 0xffffffff);
+ write_cam(dev, (4*6)+2, read_cam(dev, (key_idx*6)+2) );
+ write_cam(dev, (4*6)+3, read_cam(dev, (key_idx*6)+3) );
+ write_cam(dev, (4*6)+4, read_cam(dev, (key_idx*6)+4) );
+ write_cam(dev, (4*6)+5, read_cam(dev, (key_idx*6)+5) );
+ }
+#endif
+
+ return ret;
+}
+static int meshdev_wx_get_enc(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device * dev = ieee->dev;
+ struct r8192_priv* priv = rtllib_priv(dev);
+
+ if(!priv->mesh_up){
+ return -ENETDOWN;
+ }
+ return rtllib_wx_get_encode(ieee, info, wrqu, extra,1);
+}
+#if 0
+static int meshdev_wx_set_frag(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_set_frag(dev, info, wrqu, extra);
+}
+static int meshdev_wx_get_frag(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_get_frag(dev, info, wrqu, extra);
+}
+static int meshdev_wx_set_retry(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_set_retry(dev, info, wrqu, extra);
+}
+static int meshdev_wx_get_retry(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_get_retry(dev, info, wrqu, extra);
+}
+#endif
+static int meshdev_wx_set_mode(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+#if 0
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_set_mode(dev, info, wrqu, extra);
+#endif
+ return 0;
+}
+static int meshdev_wx_set_wap(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+#if 0
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_set_wap(dev, info, wrqu, extra);
+#endif
+ return 0;
+}
+static int meshdev_wx_set_mlme(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+#if 0
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_set_mlme(dev, info, wrqu, extra);
+#endif
+ return 0;
+}
+static int meshdev_wx_set_essid(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+#if 0
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_set_essid(dev, info, wrqu, extra);
+#endif
+ return 0;
+}
+static int meshdev_wx_set_gen_ie(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+#if 0
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_set_gen_ie(dev, info, wrqu, extra);
+#endif
+ return 0;
+}
+static int meshdev_wx_set_auth(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+#if 0
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ return r8192_wx_set_auth(dev, info, wrqu, extra);
+#endif
+ return 0;
+}
+static int meshdev_wx_set_enc_ext(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ int ret=0;
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+ struct r8192_priv *priv = (struct r8192_priv *)ieee->priv;
+
+ printk("============================================================>%s\n", __FUNCTION__);
+ SEM_DOWN_PRIV_WX(&priv->wx_sem);
+ ret = rtllib_wx_set_encode_ext(ieee, info, wrqu, extra, 1);
+
+ ret |= r8192_set_hw_enc(dev,info,wrqu,extra, 1);
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+#endif
+
+ return ret;
+}
+
+static int dummy(struct net_device *dev, struct iw_request_info *a,
+ union iwreq_data *wrqu,char *b)
+{
+ return -1;
+}
+
+int rt_ioctl_siwpmksa(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu,
+ char *extra)
+{
+ return 0;
+}
+
+static iw_handler meshdev_wx_handlers[] =
+{
+ NULL, /* SIOCSIWCOMMIT */
+ meshdev_wx_get_name, /* SIOCGIWNAME */
+ dummy, /* SIOCSIWNWID */
+ dummy, /* SIOCGIWNWID */
+ NULL,
+ meshdev_wx_get_freq, /* SIOCGIWFREQ */
+ meshdev_wx_set_mode, /* SIOCSIWMODE */
+ meshdev_wx_get_mode, /* SIOCGIWMODE */
+ NULL,
+ meshdev_wx_get_sens, /* SIOCGIWSENS */
+ NULL, /* SIOCSIWRANGE */
+ meshdev_wx_get_range, /* SIOCGIWRANGE */
+ NULL, /* SIOCSIWPRIV */
+ NULL, /* SIOCGIWPRIV */
+ NULL, /* SIOCSIWSTATS */
+ NULL, /* SIOCGIWSTATS */
+ dummy, /* SIOCSIWSPY */
+ dummy, /* SIOCGIWSPY */
+ NULL, /* SIOCGIWTHRSPY */
+ NULL, /* SIOCWIWTHRSPY */
+ meshdev_wx_set_wap, /* SIOCSIWAP */
+ meshdev_wx_get_wap, /* SIOCGIWAP */
+ meshdev_wx_set_mlme,
+ dummy, /* SIOCGIWAPLIST -- depricated */
+ NULL,
+ NULL,
+ meshdev_wx_set_essid, /* SIOCSIWESSID */
+ meshdev_wx_get_essid, /* SIOCGIWESSID */
+ dummy, /* SIOCSIWNICKN */
+ dummy, /* SIOCGIWNICKN */
+ NULL, /* -- hole -- */
+ NULL, /* -- hole -- */
+ NULL,
+ meshdev_wx_get_rate, /* SIOCGIWRATE */
+ dummy, /* SIOCSIWRTS */
+ dummy, /* SIOCGIWRTS */
+ NULL,
+ NULL,
+ dummy, /* SIOCSIWTXPOW */
+ dummy, /* SIOCGIWTXPOW */
+ NULL,
+ NULL,
+ meshdev_wx_set_enc, /* SIOCSIWENCODE */
+ meshdev_wx_get_enc, /* SIOCGIWENCODE */
+ dummy, /* SIOCSIWPOWER */
+ dummy, /* SIOCGIWPOWER */
+ NULL, /*---hole---*/
+ NULL, /*---hole---*/
+ meshdev_wx_set_gen_ie,
+ NULL, /* SIOCSIWGENIE */
+ meshdev_wx_set_auth,
+ NULL,
+ meshdev_wx_set_enc_ext, /* SIOCSIWENCODEEXT */
+ NULL,
+ (iw_handler) rt_ioctl_siwpmksa,
+ NULL, /*---hole---*/
+};
+
+static struct iw_priv_args meshdev_private_args[] = {
+ {
+ SIOCIWFIRSTPRIV + 0x0,
+ 0, 0, "enablemesh"
+ },
+ {
+ SIOCIWFIRSTPRIV + 0x1,
+ 0, IW_PRIV_TYPE_CHAR | 64, "getmeshinfo"
+ },
+ {
+ SIOCIWFIRSTPRIV + 0x2,
+ 0, 0, "disablemesh"
+ },
+ {
+ SIOCIWFIRSTPRIV + 0x3,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setch"
+ },
+ {
+ SIOCIWFIRSTPRIV + 0x4,
+ IW_PRIV_TYPE_CHAR | 64 , 0, "setmeshid"
+ },
+ { SIOCIWFIRSTPRIV + 0x5,
+ 0,IW_PRIV_TYPE_CHAR | 64 , "getmeshlist"
+ },
+ { SIOCIWFIRSTPRIV + 0x6,
+ IW_PRIV_TYPE_CHAR | 64,0 , "meshscan"
+ },
+ {
+ SIOCIWFIRSTPRIV + 0x7,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setmode"
+
+ },
+ {
+ SIOCIWFIRSTPRIV + 0x8,
+ IW_PRIV_TYPE_CHAR | 64, 0, "sethostname"
+ },
+ {
+ SIOCIWFIRSTPRIV + 0x9,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setBW"
+
+ },
+ {
+ SIOCIWFIRSTPRIV + 0xa,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "updateBW"
+ },
+ { SIOCIWFIRSTPRIV + 0xb,
+ 0,IW_PRIV_TYPE_CHAR | 256 , "macdenyget"
+ },
+ { SIOCIWFIRSTPRIV + 0xc,
+ IW_PRIV_TYPE_CHAR | 64,0 , "macdenyadd"
+ },
+ /*
+ {
+ SIOCIWFIRSTPRIV + 0xe,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_MASK, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_MASK, ""
+ },*/
+ { SIOCIWFIRSTPRIV + 0xf,
+ 0, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_MASK , "getneighborlist"
+ },
+ /* Sub-ioctls definitions*/
+ /*
+ {
+ OID_802_11_MESH_ID,
+ IW_PRIV_TYPE_INT | 2047, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_MASK, "meshid"
+ },
+ {
+ OID_802_11_MESH_LIST,
+ IW_PRIV_TYPE_INT | 2047, IW_PRIV_TYPE_INT | IW_PRIV_SIZE_MASK, "meshlist"
+ },*/
+ { SIOCIWFIRSTPRIV + 0x10,
+ IW_PRIV_TYPE_CHAR | 64, 0, "set"
+ },
+ { SIOCIWFIRSTPRIV + 0x12,
+ IW_PRIV_TYPE_CHAR | 64,0 , "macdenydel"
+ },
+ {
+ SIOCIWFIRSTPRIV + 0x14,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setmeshsec"
+ },
+ {
+ SIOCIWFIRSTPRIV + 0x15,
+ IW_PRIV_TYPE_CHAR | 6, 0, "setmkddid"
+ },
+ {
+ SIOCIWFIRSTPRIV + 0x16,
+ IW_PRIV_TYPE_CHAR | 64, 0, "setkey"
+ },
+ {
+ SIOCIWFIRSTPRIV + 0x17,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, 0, "setsectype"
+ },
+};
+
+int meshdev_wx_mesh(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *meshpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device * ieee = meshpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct mshclass *mshobj = priv->mshobj;
+ int ret = 0;
+
+ printk("@@@@@%s: ", __FUNCTION__);
+ if(mshobj)
+ {
+ switch(wrqu->data.flags)
+ {
+ case OID_802_11_MESH_SECURITY_INFO:
+ {
+ printk("OID_802_11_MESH_SECURITY_INFO \n");
+ if(mshobj->ext_patch_r819x_wx_get_security_info)
+ ret = mshobj->ext_patch_r819x_wx_get_security_info(dev, info, wrqu, extra);
+ break;
+ }
+ case OID_802_11_MESH_ID:
+ {
+ printk("OID_802_11_MESH_ID \n");
+ if(mshobj->ext_patch_r819x_wx_get_meshid)
+ ret = mshobj->ext_patch_r819x_wx_get_meshid(dev, info, wrqu, extra);
+ break;
+ }
+ case OID_802_11_MESH_AUTO_LINK:
+ {
+ printk("OID_802_11_MESH_AUTO_LINK \n");
+ if(mshobj->ext_patch_r819x_wx_get_auto_link)
+ ret = mshobj->ext_patch_r819x_wx_get_auto_link(dev, info, wrqu, extra);
+ break;
+ }
+ case OID_802_11_MESH_LINK_STATUS:
+ {
+ printk("OID_802_11_MESH_LINK_STATUS \n");
+ if(mshobj->ext_patch_r819x_wx_get_link_status)
+ ret = mshobj->ext_patch_r819x_wx_get_link_status(dev, info, wrqu, extra);
+ break;
+ }
+ case OID_802_11_MESH_LIST:
+ {
+ printk("OID_802_11_MESH_LIST \n");
+ if(mshobj->ext_patch_r819x_wx_get_neighbor_list)
+ ret = mshobj->ext_patch_r819x_wx_get_neighbor_list(dev, info, wrqu, extra);
+ break;
+ }
+ case OID_802_11_MESH_ROUTE_LIST:
+ {
+ printk("OID_802_11_MESH_ROUTE_LIST \n");
+ if(mshobj->ext_patch_r819x_wx_get_route_list)
+ ret = mshobj->ext_patch_r819x_wx_get_route_list(dev, info, wrqu, extra);
+ break;
+ }
+ case OID_802_11_MESH_MAX_TX_RATE:
+ {
+ printk("OID_802_11_MESH_MAX_TX_RATE \n");
+ if(mshobj->ext_patch_r819x_wx_get_maxrate)
+ ret = mshobj->ext_patch_r819x_wx_get_maxrate(dev, info, wrqu, extra);
+ break;
+ }
+ case OID_802_11_MESH_CHANNEL:
+ {
+ printk("OID_802_11_MESH_CHANNEL \n");
+ if(mshobj->ext_patch_r819x_wx_get_channel)
+ ret = mshobj->ext_patch_r819x_wx_get_channel(dev, info, wrqu, extra);
+ break;
+ }
+ case OID_802_11_MESH_HOSTNAME:
+ {
+ printk("OID_802_11_MESH_HOSTNAME \n");
+ if(mshobj->ext_patch_r819x_wx_get_host_name)
+ ret = mshobj->ext_patch_r819x_wx_get_host_name(dev, info, wrqu, extra);
+ break;
+ }
+ case OID_802_11_MESH_ONLY_MODE:
+ {
+ printk("OID_802_11_MESH_ONLY_MODE \n");
+ if(mshobj->ext_patch_r819x_wx_get_mesh_only_mode)
+ ret = mshobj->ext_patch_r819x_wx_get_mesh_only_mode(dev, info, wrqu, extra);
+ break;
+ }
+ case RTL_OID_802_11_MESH_SECURITY_INFO:
+ {
+ printk("RTL_OID_802_11_MESH_SECURITY_INFO \n");
+ if(mshobj->ext_patch_r819x_wx_set_security_info)
+ ret = mshobj->ext_patch_r819x_wx_set_security_info(dev, info, wrqu, extra);
+ break;
+ }
+ case RTL_OID_802_11_MESH_ID:
+ {
+ printk("RTL_OID_802_11_MESH_ID \n");
+ if(mshobj->ext_patch_r819x_wx_set_meshID)
+ ret = mshobj->ext_patch_r819x_wx_set_meshID(dev, (u8*)wrqu->data.pointer);
+ break;
+ }
+ case RTL_OID_802_11_MESH_AUTO_LINK:
+ {
+ printk("RTL_OID_802_11_MESH_AUTO_LINK \n");
+ if(mshobj->ext_patch_r819x_wx_set_auto_link)
+ ret = mshobj->ext_patch_r819x_wx_set_auto_link(dev, info, wrqu, extra);
+ break;
+ }
+ case RTL_OID_802_11_MESH_ADD_LINK:
+ {
+ printk("RTL_OID_802_11_MESH_ADD_LINK \n");
+ if(mshobj->ext_patch_r819x_wx_set_add_link)
+ ret = mshobj->ext_patch_r819x_wx_set_add_link(dev, info, wrqu, extra);
+ break;
+ }
+ case RTL_OID_802_11_MESH_DEL_LINK:
+ {
+ printk("RTL_OID_802_11_MESH_DEL_LINK \n");
+ if(mshobj->ext_patch_r819x_wx_set_del_link)
+ ret = mshobj->ext_patch_r819x_wx_set_del_link(dev, info, wrqu, extra);
+ break;
+ }
+ case RTL_OID_802_11_MESH_MAX_TX_RATE:
+ {
+ printk("RTL_OID_802_11_MESH_MAX_TX_RATE \n");
+ if(mshobj->ext_patch_r819x_wx_set_maxrate)
+ ret = mshobj->ext_patch_r819x_wx_set_maxrate(dev, info, wrqu, extra);
+ break;
+ }
+ case RTL_OID_802_11_MESH_CHANNEL:
+ {
+ printk("RTL_OID_802_11_MESH_CHANNEL \n");
+ printk("channel = %d\n",*(u8*)wrqu->data.pointer);
+ r8192_wx_set_channel(dev, info, wrqu, wrqu->data.pointer);
+ break;
+ }
+ case RTL_OID_802_11_MESH_HOSTNAME:
+ {
+ printk("RTL_OID_802_11_MESH_HOSTNAME \n");
+ if(mshobj->ext_patch_r819x_wx_set_host_name)
+ ret = mshobj->ext_patch_r819x_wx_set_host_name(dev, info, wrqu, extra);
+ break;
+ }
+ case RTL_OID_802_11_MESH_ONLY_MODE:
+ {
+ printk("RTL_OID_802_11_MESH_ONLY_MODE \n");
+ if(mshobj->ext_patch_r819x_wx_set_mesh_only_mode)
+ ret = mshobj->ext_patch_r819x_wx_set_mesh_only_mode(dev, info, wrqu, extra);
+ break;
+ }
+ default:
+ printk("Default \n");
+ break;
+ }
+ }
+ return ret;
+}
+
+static int meshdev_wx_get_meshinfo(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct net_device *dev = mpriv->rtllib->dev;
+
+printk("++++++======%s: dev=%p length=%d extra=%p\n", __FUNCTION__, dev, wrqu->data.length,extra);
+ return r8192_wx_get_meshinfo(dev, info, wrqu, extra);
+}
+
+static int meshdev_wx_enable_mesh(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+printk("++++++======%s\n", __FUNCTION__);
+ return r8192_wx_enable_mesh(dev, info, wrqu, extra);
+
+}
+
+static int meshdev_wx_disable_mesh(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+printk("++++++======%s\n", __FUNCTION__);
+ return r8192_wx_disable_mesh(dev, info, wrqu, extra);
+}
+
+
+int meshdev_wx_set_channel(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+printk("++++++======%s\n", __FUNCTION__);
+
+ return r8192_wx_set_channel(dev, info, wrqu, extra);
+}
+
+static int meshdev_wx_set_meshid(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+printk("++++++======%s\n", __FUNCTION__);
+
+ return r8192_wx_set_meshID(dev, info, wrqu, extra);
+}
+
+static int meshdev_wx_mesh_scan(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+printk("++++++======%s\n", __FUNCTION__);
+ return r8192_wx_mesh_scan(dev, info, wrqu, extra);
+}
+static int meshdev_wx_get_mesh_list(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+printk("++++++======%s\n", __FUNCTION__);
+
+ return r8192_wx_get_mesh_list(dev, info, wrqu, extra);
+}
+static int meshdev_wx_set_meshmode(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+printk("++++++======%s\n", __FUNCTION__);
+ return r8192_wx_set_meshmode(dev, info, wrqu, extra);
+}
+static int meshdev_wx_set_meshbw(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+printk("++++++======%s\n", __FUNCTION__);
+ return r8192_wx_set_meshBW(dev, info, wrqu, extra);
+}
+static int meshdev_wx_update_beacon(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ struct mshclass *mshobj= (priv)->mshobj;
+ u8 updateBW = 0;
+ u8 bserverHT = 0;
+
+ printk("++++++======%s\n", __FUNCTION__);
+ if(*extra == 0)
+ {
+ ieee->p2pmode = 1;
+ ieee->current_network.channel = ieee->current_mesh_network.channel;
+ if(ieee->state!=RTLLIB_LINKED){
+ if(ieee->pHTInfo->bCurBW40MHz)
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ else
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ }
+ }
+ else
+ {
+ ieee->p2pmode = 0;
+ updateBW=mshobj->ext_patch_r819x_wx_update_beacon(dev,&bserverHT);
+ printk("$$$$$$ Cur_networ.chan=%d, cur_mesh_net.chan=%d,bserverHT=%d\n", ieee->current_network.channel,ieee->current_mesh_network.channel,bserverHT);
+ if(updateBW == 1)
+ {
+ if(bserverHT == 0)
+ {
+ printk("===>server is not HT supported,set 20M\n");
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT);
+ }
+ else
+ {
+ printk("===>updateBW is 1,bCurBW40MHz is %d,ieee->serverExtChlOffset is %d\n",ieee->pHTInfo->bCurBW40MHz,ieee->serverExtChlOffset);
+ if(ieee->pHTInfo->bCurBW40MHz)
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, ieee->serverExtChlOffset);
+ else
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, ieee->serverExtChlOffset);
+ }
+ }
+ else
+ {
+ printk("===>there is no same hostname server, ERR!!!\n");
+ return -1;
+ }
+ }
+ write_nic_dword(dev,BSSIDR,((u32*)priv->rtllib->current_mesh_network.bssid)[0]);
+ write_nic_word(dev,BSSIDR+4,((u16*)priv->rtllib->current_mesh_network.bssid)[2]);
+ return 0;
+}
+static int meshdev_wx_add_mac_deny(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_add_mac_deny )
+ return 0;
+
+ return priv->mshobj->ext_patch_r819x_wx_set_add_mac_deny(dev, info, wrqu, extra);
+}
+
+static int meshdev_wx_del_mac_deny(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_del_mac_deny )
+ return 0;
+
+ return priv->mshobj->ext_patch_r819x_wx_set_del_mac_deny(dev, info, wrqu, extra);
+}
+
+static int meshdev_wx_get_neighbor_list(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ int ret = 0;
+
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_get_neighbor_list )
+ return 0;
+ ret = priv->mshobj->ext_patch_r819x_wx_get_neighbor_list(dev, info, wrqu, extra);
+#ifdef MESH_AUTO_TEST
+ ret |= r8192_wx_set_channel(dev, info, wrqu, &ieee->current_network.channel);
+#endif
+ return ret;
+}
+
+/* reserved for future
+static int r819x_wx_get_mac_allow(struct net_device *dev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ return 0;
+
+ return priv->mshobj->ext_patch_r819x_wx_get_mac_allow(dev, info, wrqu, extra);
+}
+*/
+
+static int meshdev_wx_get_mac_deny(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+ struct r8192_priv *priv = rtllib_priv(dev);
+
+ if( ! priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_get_mac_deny )
+ return 0;
+
+ return priv->mshobj->ext_patch_r819x_wx_get_mac_deny(dev, info, wrqu, extra);
+}
+
+
+static int meshdev_wx_set_hostname(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+
+ if(wrqu->data.length > MAX_HOST_NAME_LENGTH)
+ {
+ printk("%s: Host name is too long. len=%d\n", __FUNCTION__, wrqu->data.length);
+ return -1;
+ }
+
+ ieee->hostname_len = wrqu->data.length;
+ memcpy(ieee->hostname, extra, wrqu->data.length);
+
+printk("++++++======%s: %s\n", __FUNCTION__, ieee->hostname);
+
+ return 0;
+}
+static int meshdev_wx_set_mesh_security(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = netdev_priv(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ printk("++++++======%s\n", __FUNCTION__);
+ return r8192_wx_set_mesh_security(dev, info, wrqu, extra);
+}
+static int meshdev_wx_set_mkdd_id(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = netdev_priv(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+
+ printk("++++++======%s\n", __FUNCTION__);
+ return r8192_wx_set_mkdd_id(dev, info, wrqu, extra);
+}
+static int meshdev_wx_set_mesh_key(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = netdev_priv(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ printk("++++++======%s\n", __FUNCTION__);
+ return r8192_wx_set_mesh_key(dev, info, wrqu, extra);
+}
+static int meshdev_wx_set_sec_type(struct net_device *meshdev,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct meshdev_priv *mpriv = netdev_priv(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+
+ printk("++++++======%s\n", __FUNCTION__);
+ return r8192_wx_set_mesh_sec_type(dev, info, wrqu, extra);
+}
+static u8 my_atoi(const char *arg)
+{
+ u8 val = 0;
+ for(; ; arg++){
+ switch (*arg){
+ case '0'...'9':
+ val = 10*val + (*arg-'0');
+ break;
+ default:
+ return val;
+ }
+ }
+ return val;
+}
+
+static int Set_Channel_Proc(struct net_device *meshdev, char *arg)
+{
+ int ch = my_atoi(arg);
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct r8192_priv *priv = (void *)ieee->priv;
+ struct net_device *dev = ieee->dev;
+
+ if (!priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_set_channel || !ieee->only_mesh)
+ return 0;
+
+printk("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!set current mesh network channel %d\n", ch);
+ if ( ch < 0 )
+ {
+ rtllib_start_scan(ieee);
+ ieee->meshScanMode =2;
+ }
+ else
+ {
+ ieee->meshScanMode =0;
+ if(priv->mshobj->ext_patch_r819x_wx_set_channel)
+ {
+ priv->mshobj->ext_patch_r819x_wx_set_channel(ieee, ch);
+ priv->mshobj->ext_patch_r819x_wx_set_mesh_chan(dev,ch);
+ }
+ queue_work_rsl(ieee->wq, &ieee->ext_stop_scan_wq);
+ ieee->set_chan(ieee->dev, ch);
+ ieee->current_mesh_network.channel = ch;
+ if(ieee->only_mesh)
+ ieee->current_network.channel = ch;
+ ieee->current_network.channel = ieee->current_mesh_network.channel;
+ if(ieee->pHTInfo->bCurBW40MHz)
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ else
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_mesh_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ if(rtllib_act_scanning(ieee,true) == true)
+ rtllib_stop_scan_syncro(ieee);
+ }
+ return 0;
+}
+static int Set_MeshID_Proc(struct net_device *meshdev, char *arg)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+ struct r8192_priv *priv = rtllib_priv(dev);
+ RT_RF_POWER_STATE rtState;
+ int ret = 0;
+ rtState = priv->rtllib->eRFPowerState;
+
+ if(!priv->mshobj || !priv->mshobj->ext_patch_r819x_wx_enable_mesh || !priv->mshobj->ext_patch_r819x_wx_set_meshID)
+ return 0;
+
+ if(rtllib_act_scanning(ieee,true) == true)
+ rtllib_stop_scan_syncro(ieee);
+
+ /* Set Mesh ID */
+ ret = priv->mshobj->ext_patch_r819x_wx_set_meshID(dev, arg);
+ if(ret)
+ goto End;
+
+ /* Enable Mesh */
+ SEM_DOWN_PRIV_WX(&priv->wx_sem);
+ ret = priv->mshobj->ext_patch_r819x_wx_enable_mesh(dev);
+ if(!ret)
+ {
+#ifdef ENABLE_IPS
+ if(priv->rtllib->PowerSaveControl.bInactivePs){
+ if(rtState == eRfOff){
+ if(priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS)
+ {
+ RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",__FUNCTION__);
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+ return -1;
+ }
+ else{
+ printk("=========>%s(): IPSLeave\n",__FUNCTION__);
+ IPSLeave(dev);
+ }
+ }
+ }
+#endif
+ }
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+#if 1
+ if (ieee->mesh_sec_type == 1) {
+ rtl8192_abbr_handshk_set_GTK(ieee,1);
+ }
+#else
+ if (ieee->mesh_sec_type == 1)
+ rtl8192_abbr_handshk_set_key(ieee);
+#endif
+End:
+ return ret;
+}
+static int Set_Bw40MHz_Proc(struct net_device *meshdev, char *arg)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct r8192_priv *priv = (void *)ieee->priv;
+ u8 bBw40MHz = my_atoi(arg);
+
+ SEM_DOWN_PRIV_WX(&priv->wx_sem);
+ printk("%s(): set mesh BW ! extra is %d\n",__FUNCTION__, bBw40MHz);
+ priv->rtllib->pHTInfo->bRegBW40MHz = bBw40MHz;
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+
+ return 0;
+}
+static int Set_WirelessMode_Proc(struct net_device *meshdev, char *arg)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct r8192_priv *priv = (void *)ieee->priv;
+ struct net_device *dev = ieee->dev;
+ u8 wirelessmode = my_atoi(arg);
+
+ SEM_DOWN_PRIV_WX(&priv->wx_sem);
+
+ printk("%s(): set mesh mode ! extra is %d\n",__FUNCTION__, wirelessmode);
+ if((wirelessmode != WIRELESS_MODE_A) && (wirelessmode != WIRELESS_MODE_B) &&
+ (wirelessmode != WIRELESS_MODE_G) && (wirelessmode != WIRELESS_MODE_AUTO) &&
+ (wirelessmode != WIRELESS_MODE_N_24G) && (wirelessmode != WIRELESS_MODE_N_5G))
+ {
+ printk("ERR!! you should input 1 | 2 | 4 | 8 | 16 | 32\n");
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+ return -1;
+ }
+ if(priv->rtllib->state == RTLLIB_LINKED)
+ {
+ if((priv->rtllib->mode != WIRELESS_MODE_N_5G) && (priv->rtllib->mode != WIRELESS_MODE_N_24G)){
+ printk("===>wlan0 is linked,and ieee->mode is not N mode ,do not need to set mode,return\n");
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+ return 0;
+ }
+ }
+ priv->rtllib->mode = wirelessmode;
+ if(priv->ResetProgress == RESET_TYPE_NORESET)
+ rtl8192_SetWirelessMode(dev, priv->rtllib->mode);
+ HTUseDefaultSetting(priv->rtllib);
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+ return 0;
+}
+static int Set_ExtChnOffset_Proc(struct net_device *meshdev, char *arg)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+#if 0
+ struct r8192_priv *priv = (void *)ieee->priv;
+ struct net_device *dev = ieee->dev;
+ struct mshclass *mshobj= priv->mshobj;
+ u8 updateBW = 0;
+ u8 bserverHT = 0;
+#endif
+ ieee->p2pmode = 0;
+#if 0
+ updateBW=mshobj->ext_patch_r819x_wx_update_beacon(dev,&bserverHT);
+ printk("$$$$$$ Cur_networ.chan=%d, cur_mesh_net.chan=%d,bserverHT=%d\n", ieee->current_network.channel,ieee->current_mesh_network.channel,bserverHT);
+ if(updateBW == 1)
+ {
+ if(bserverHT == 0)
+ {
+ printk("===>server is not HT supported,set 20M\n");
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT);
+ }
+ else
+ {
+ printk("===>updateBW is 1,bCurBW40MHz is %d,ieee->serverExtChlOffset is %d\n",ieee->pHTInfo->bCurBW40MHz,ieee->serverExtChlOffset);
+ if(ieee->pHTInfo->bCurBW40MHz)
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, ieee->serverExtChlOffset);
+ else
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, ieee->serverExtChlOffset);
+ }
+ }
+ else
+ {
+ printk("===>there is no same hostname server, ERR!!!\n");
+ return -1;
+ }
+#endif
+ return 0;
+}
+static int Set_OnlyMesh_Proc(struct net_device *meshdev, char *arg)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ union iwreq_data tmprqu;
+ int ret = 0;
+
+ ieee->p2pmode = 1;
+ ieee->only_mesh = my_atoi(arg);
+printk("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!mesh only = %d, p2pmode = %d\n", ieee->only_mesh, ieee->p2pmode);
+ if(ieee->only_mesh)
+ ieee->current_network.channel = ieee->current_mesh_network.channel;
+ if(ieee->only_mesh == 0)
+ {
+ tmprqu.mode = ieee->iw_mode;
+ ieee->iw_mode = IW_MODE_INFRA;
+ ret = rtllib_wx_set_mode(ieee, NULL, &tmprqu, NULL);
+ }
+ return ret;
+}
+static int Set_AsPortal_Proc(struct net_device *meshdev, char *arg)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+ struct r8192_priv *priv = (void *)ieee->priv;
+ u8 val = my_atoi(arg);
+ int ret = 0;
+
+ SEM_DOWN_PRIV_WX(&priv->wx_sem);
+ ret = priv->mshobj->ext_patch_r819x_wx_set_AsPortal(dev, val);
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+
+ return ret;
+}
+static int Set_AsRoot_Proc(struct net_device *meshdev, char *arg)
+{
+ struct meshdev_priv *mpriv = (struct meshdev_priv *)netdev_priv_rsl(meshdev);
+ struct rtllib_device *ieee = mpriv->rtllib;
+ struct net_device *dev = ieee->dev;
+ struct r8192_priv *priv = (void *)ieee->priv;
+ u8 val = my_atoi(arg);
+ int ret = 0;
+
+ SEM_DOWN_PRIV_WX(&priv->wx_sem);
+ ret = priv->mshobj->ext_patch_r819x_wx_set_AsRoot(dev, val);
+ SEM_UP_PRIV_WX(&priv->wx_sem);
+
+ return ret;
+}
+
+static struct {
+ char* name;
+ int (*set_proc)(struct net_device *dev, char *arg);
+} *private_set_proc, private_support_proc[] = {
+ {"Debug", NULL},
+ {"Channel", Set_Channel_Proc},
+ {"MeshId", Set_MeshID_Proc},
+ {"Bw40MHz", Set_Bw40MHz_Proc},
+ {"WirelessMode", Set_WirelessMode_Proc},
+ {"ExtChnOffset", Set_ExtChnOffset_Proc},
+ {"OnlyMesh", Set_OnlyMesh_Proc},
+ {"AsPortal", Set_AsPortal_Proc},
+ {"AsRoot", Set_AsRoot_Proc},
+ {"MeshAuthMode", NULL},
+ {"MeshEncrypType", NULL},
+ {"<NULL>", NULL},
+};
+
+static char *rtlstrchr(const char *s, int c)
+{
+ for(; *s!=(char)c; ++s)
+ if(*s == '\0')
+ return NULL;
+ return (char *)s;
+}
+
+static int meshdev_wx_set_param(struct net_device *dev, struct iw_request_info *info,
+ union iwreq_data *w, char *extra)
+{
+ char * this_char = extra;
+ char *value = NULL;
+ int Status=0;
+
+ printk("=======>%s: extra=%s\n", __FUNCTION__,extra);
+ if (!*this_char)
+ return -EINVAL;
+
+ if ((value = rtlstrchr(this_char, '=')) != NULL)
+ *value++ = 0;
+
+ for (private_set_proc = private_support_proc; strcmp(private_set_proc->name, "<NULL>"); private_set_proc++)
+ {
+ if (strcmp(this_char, private_set_proc->name) == 0)
+ {
+ if(private_set_proc->set_proc)
+ {
+ if(private_set_proc->set_proc(dev, value))
+ {
+ Status = -EINVAL;
+ }
+ }
+ break;
+ }
+ }
+
+ if(strcmp(private_set_proc->name, "<NULL>") == 0)
+ {
+ Status = -EINVAL;
+ printk("===>%s: (iwpriv) Not Support Set Command [%s]", __FUNCTION__, this_char);
+ if(value != NULL)
+ printk(" value=%s\n", value);
+ else
+ printk("\n");
+ }
+
+ return Status;
+}
+
+
+static iw_handler meshdev_private_handler[] = {
+ meshdev_wx_enable_mesh,
+ meshdev_wx_get_meshinfo,
+ meshdev_wx_disable_mesh,
+ meshdev_wx_set_channel,
+ meshdev_wx_set_meshid,
+ meshdev_wx_get_mesh_list,
+ meshdev_wx_mesh_scan,
+ meshdev_wx_set_meshmode,
+ meshdev_wx_set_hostname,
+ meshdev_wx_set_meshbw,
+ meshdev_wx_update_beacon,
+ meshdev_wx_get_mac_deny,
+ meshdev_wx_add_mac_deny,
+ NULL,
+ NULL,
+ meshdev_wx_get_neighbor_list,
+ meshdev_wx_set_param,
+ NULL,
+ meshdev_wx_del_mac_deny,
+ NULL,
+ meshdev_wx_set_mesh_security,
+ meshdev_wx_set_mkdd_id,
+ meshdev_wx_set_mesh_key,
+ meshdev_wx_set_sec_type,
+};
+
+struct iw_handler_def meshdev_wx_handlers_def={
+ .standard = meshdev_wx_handlers,
+ .num_standard = sizeof(meshdev_wx_handlers) / sizeof(iw_handler),
+ .private = meshdev_private_handler,
+ .num_private = sizeof(meshdev_private_handler) / sizeof(iw_handler),
+ .num_private_args = sizeof(meshdev_private_args) / sizeof(struct iw_priv_args),
+#if WIRELESS_EXT >= 17
+ .get_wireless_stats = (void*)meshdev_stats,
+#endif
+ .private_args = (struct iw_priv_args *)meshdev_private_args,
+};
+#endif
+
diff --git a/ubuntu/rtl8192se/rtl_wx.h b/ubuntu/rtl8192se/rtl_wx.h
new file mode 100755
index 00000000000..aff1cca87be
--- /dev/null
+++ b/ubuntu/rtl8192se/rtl_wx.h
@@ -0,0 +1,34 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+
+#ifndef R819x_WX_H
+#define R819x_WX_H
+
+struct net_device;
+struct iw_handler_def;
+struct iw_statistics;
+
+extern struct iw_handler_def r8192_wx_handlers_def;
+struct iw_statistics *r8192_get_wireless_stats(struct net_device *dev);
+u16 rtl8192_11n_user_show_rates(struct net_device* dev);
+
+#ifdef _RTL8192_EXT_PATCH_
+extern struct iw_handler_def meshdev_wx_handlers_def;
+#endif
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/EndianFree.h b/ubuntu/rtl8192se/rtllib/EndianFree.h
new file mode 100755
index 00000000000..7433d4f0923
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/EndianFree.h
@@ -0,0 +1,160 @@
+#ifndef __INC_ENDIANFREE_H
+#define __INC_ENDIANFREE_H
+
+/*
+ * Call endian free function when
+ * 1. Read/write packet content.
+ * 2. Before write integer to IO.
+ * 3. After read integer from IO.
+ */
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20))
+#ifndef bool
+typedef enum{false = 0, true} bool;
+#endif
+#endif
+
+#define __MACHINE_LITTLE_ENDIAN 1234 /* LSB first: i386, vax */
+#define __MACHINE_BIG_ENDIAN 4321 /* MSB first: 68000, ibm, net, ppc */
+
+#define BYTE_ORDER __MACHINE_LITTLE_ENDIAN
+
+#if BYTE_ORDER == __MACHINE_LITTLE_ENDIAN
+#define EF1Byte(_val) ((u8)(_val))
+#define EF2Byte(_val) ((u16)(_val))
+#define EF4Byte(_val) ((u32)(_val))
+
+#else
+#define EF1Byte(_val) ((u8)(_val))
+#define EF2Byte(_val) (((((u16)(_val))&0x00ff)<<8)|((((u16)(_val))&0xff00)>>8))
+#define EF4Byte(_val) (((((u32)(_val))&0x000000ff)<<24)|\
+ ((((u32)(_val))&0x0000ff00)<<8)|\
+ ((((u32)(_val))&0x00ff0000)>>8)|\
+ ((((u32)(_val))&0xff000000)>>24))
+#endif
+
+#define ReadEF1Byte(_ptr) EF1Byte(*((u8 *)(_ptr)))
+#define ReadEF2Byte(_ptr) EF2Byte(*((u16 *)(_ptr)))
+#define ReadEF4Byte(_ptr) EF4Byte(*((u32 *)(_ptr)))
+
+#define WriteEF1Byte(_ptr, _val) (*((u8 *)(_ptr)))=EF1Byte(_val)
+#define WriteEF2Byte(_ptr, _val) (*((u16 *)(_ptr)))=EF2Byte(_val)
+#define WriteEF4Byte(_ptr, _val) (*((u32 *)(_ptr)))=EF4Byte(_val)
+#if BYTE_ORDER == __MACHINE_LITTLE_ENDIAN
+#define H2N1BYTE(_val) ((u8)(_val))
+#define H2N2BYTE(_val) (((((u16)(_val))&0x00ff)<<8)|\
+ ((((u16)(_val))&0xff00)>>8))
+#define H2N4BYTE(_val) (((((u32)(_val))&0x000000ff)<<24)|\
+ ((((u32)(_val))&0x0000ff00)<<8) |\
+ ((((u32)(_val))&0x00ff0000)>>8) |\
+ ((((u32)(_val))&0xff000000)>>24))
+#else
+#define H2N1BYTE(_val) ((u8)(_val))
+#define H2N2BYTE(_val) ((u16)(_val))
+#define H2N4BYTE(_val) ((u32)(_val))
+#endif
+
+#if BYTE_ORDER == __MACHINE_LITTLE_ENDIAN
+#define N2H1BYTE(_val) ((u8)(_val))
+#define N2H2BYTE(_val) (((((u16)(_val))&0x00ff)<<8)|\
+ ((((u16)(_val))&0xff00)>>8))
+#define N2H4BYTE(_val) (((((u32)(_val))&0x000000ff)<<24)|\
+ ((((u32)(_val))&0x0000ff00)<<8) |\
+ ((((u32)(_val))&0x00ff0000)>>8) |\
+ ((((u32)(_val))&0xff000000)>>24))
+#else
+#define N2H1BYTE(_val) ((u8)(_val))
+#define N2H2BYTE(_val) ((u16)(_val))
+#define N2H4BYTE(_val) ((u32)(_val))
+#endif
+
+#define BIT_LEN_MASK_32(__BitLen) (0xFFFFFFFF >> (32 - (__BitLen)))
+#define BIT_OFFSET_LEN_MASK_32(__BitOffset, __BitLen) (BIT_LEN_MASK_32(__BitLen) << (__BitOffset))
+
+#define LE_P4BYTE_TO_HOST_4BYTE(__pStart) (EF4Byte(*((u32 *)(__pStart))))
+
+#define LE_BITS_TO_4BYTE(__pStart, __BitOffset, __BitLen) \
+ ( \
+ ( LE_P4BYTE_TO_HOST_4BYTE(__pStart) >> (__BitOffset) ) \
+ & \
+ BIT_LEN_MASK_32(__BitLen) \
+ )
+
+#define LE_BITS_CLEARED_TO_4BYTE(__pStart, __BitOffset, __BitLen) \
+ ( \
+ LE_P4BYTE_TO_HOST_4BYTE(__pStart) \
+ & \
+ ( ~BIT_OFFSET_LEN_MASK_32(__BitOffset, __BitLen) ) \
+ )
+
+#define SET_BITS_TO_LE_4BYTE(__pStart, __BitOffset, __BitLen, __Value) \
+ *((u32 *)(__pStart)) = \
+ EF4Byte( \
+ LE_BITS_CLEARED_TO_4BYTE(__pStart, __BitOffset, __BitLen) \
+ | \
+ ( (((u32)__Value) & BIT_LEN_MASK_32(__BitLen)) << (__BitOffset) ) \
+ );
+
+
+#define BIT_LEN_MASK_16(__BitLen) \
+ (0xFFFF >> (16 - (__BitLen)))
+
+#define BIT_OFFSET_LEN_MASK_16(__BitOffset, __BitLen) \
+ (BIT_LEN_MASK_16(__BitLen) << (__BitOffset))
+
+#define LE_P2BYTE_TO_HOST_2BYTE(__pStart) \
+ (EF2Byte(*((u16 *)(__pStart))))
+
+#define LE_BITS_TO_2BYTE(__pStart, __BitOffset, __BitLen) \
+ ( \
+ ( LE_P2BYTE_TO_HOST_2BYTE(__pStart) >> (__BitOffset) ) \
+ & \
+ BIT_LEN_MASK_16(__BitLen) \
+ )
+
+#define LE_BITS_CLEARED_TO_2BYTE(__pStart, __BitOffset, __BitLen) \
+ ( \
+ LE_P2BYTE_TO_HOST_2BYTE(__pStart) \
+ & \
+ ( ~BIT_OFFSET_LEN_MASK_16(__BitOffset, __BitLen) ) \
+ )
+
+#define SET_BITS_TO_LE_2BYTE(__pStart, __BitOffset, __BitLen, __Value) \
+ *((u16 *)(__pStart)) = \
+ EF2Byte( \
+ LE_BITS_CLEARED_TO_2BYTE(__pStart, __BitOffset, __BitLen) \
+ | \
+ ( (((u16)__Value) & BIT_LEN_MASK_16(__BitLen)) << (__BitOffset) ) \
+ );
+
+#define BIT_LEN_MASK_8(__BitLen) \
+ (0xFF >> (8 - (__BitLen)))
+
+#define BIT_OFFSET_LEN_MASK_8(__BitOffset, __BitLen) \
+ (BIT_LEN_MASK_8(__BitLen) << (__BitOffset))
+
+#define LE_P1BYTE_TO_HOST_1BYTE(__pStart) \
+ (EF1Byte(*((u8 *)(__pStart))))
+
+#define LE_BITS_TO_1BYTE(__pStart, __BitOffset, __BitLen) \
+ ( \
+ ( LE_P1BYTE_TO_HOST_1BYTE(__pStart) >> (__BitOffset) ) \
+ & \
+ BIT_LEN_MASK_8(__BitLen) \
+ )
+
+#define LE_BITS_CLEARED_TO_1BYTE(__pStart, __BitOffset, __BitLen) \
+ ( \
+ LE_P1BYTE_TO_HOST_1BYTE(__pStart) \
+ & \
+ ( ~BIT_OFFSET_LEN_MASK_8(__BitOffset, __BitLen) ) \
+ )
+
+#define SET_BITS_TO_LE_1BYTE(__pStart, __BitOffset, __BitLen, __Value) \
+ *((u8 *)(__pStart)) = \
+ EF1Byte( \
+ LE_BITS_CLEARED_TO_1BYTE(__pStart, __BitOffset, __BitLen) \
+ | \
+ ( (((u8)__Value) & BIT_LEN_MASK_8(__BitLen)) << (__BitOffset) ) \
+ );
+
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/Makefile b/ubuntu/rtl8192se/rtllib/Makefile
new file mode 100755
index 00000000000..33128edfada
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/Makefile
@@ -0,0 +1,214 @@
+NIC_SELECT = RTL8192SE
+
+KVER := $(shell uname -r)
+MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/$(NIC_SELECT)
+
+CC = gcc
+ifneq ($(shell uname -r|cut -d. -f1,2), 2.4)
+EXTRA_CFLAGS += -I$(TOPDIR)/drivers/net/wireless
+EXTRA_CFLAGS += -O2
+
+#it will fail to compile in suse linux enterprise 10 sp2. This flag is to solve this problem.
+ifeq ($(shell uname -r | cut -d. -f1,2,3,4), 2.6.16.60-0)
+EXTRA_CFLAGS += -DOPENSUSE_SLED
+endif
+ifeq ($(NIC_SELECT), RTL8192SE)
+ EXTRA_CFLAGS += -DRTL8192S_DISABLE_FW_DM=0
+ EXTRA_CFLAGS += -DRTL8192SE
+ EXTRA_CFLAGS += -DENABLE_IPS
+ EXTRA_CFLAGS += -DENABLE_LPS
+endif
+ifeq ($(NIC_SELECT), RTL8192SU)
+ EXTRA_CFLAGS += -DRTL8192S_DISABLE_FW_DM=0
+ EXTRA_CFLAGS += -DRTL8192SU
+ EXTRA_CFLAGS += -DENABLE_IPS
+ EXTRA_CFLAGS += -DENABLE_LPS
+ EXTRA_CFLAGS += -DUSB_RX_AGGREGATION_SUPPORT
+ EXTRA_CFLAGS += -DTCP_CSUM_OFFLOAD_RX
+endif
+ifeq ($(NIC_SELECT), RTL8190P)
+ EXTRA_CFLAGS += -DRTL8190P
+endif
+ifeq ($(NIC_SELECT), RTL8192E)
+ EXTRA_CFLAGS += -DRTL8192E
+ EXTRA_CFLAGS += -DENABLE_IPS
+ EXTRA_CFLAGS += -DENABLE_LPS
+endif
+ifeq ($(NIC_SELECT),RTL8192U)
+EXTRA_CFLAGS += -DRTL8192U
+#EXTRA_CFLAGS += -DENABLE_AMSDU
+EXTRA_CFLAGS += -DUSB_TX_DRIVER_AGGREGATION_ENABLE
+EXTRA_CFLAGS += -DUSB_RX_AGGREGATION_SUPPORT
+
+# For RTK DMP platform
+#EXTRA_CFLAGS += -DRTK_DMP_PLATFORM
+#EXTRA_CFLAGS += -DWIFI_TEST
+
+endif
+ifeq ($(NIC_SELECT), RTL8191SE_MESH)
+AUTHTYPE=SAE
+#AUTHTYPE=OPEN
+EXTRA_CFLAGS += -DRTL8192SE \
+ -DRTL8192S_DISABLE_FW_DM=0 \
+ -D_RTL8192_EXT_PATCH_\
+ -DENABLE_IPS \
+ -DENABLE_LPS \
+ -DCUSTOMER_ID_INTEL_CMPC
+ifeq ($(AUTHTYPE),SAE)
+EXTRA_CFLAGS += -DMESH_ABBR_HANDSHK_SUPPORT\
+ -DMESH_ATH_2
+endif
+endif
+#EXTRA_CFLAGS += -DJOHN_NOCPY
+EXTRA_CFLAGS += -DTHOMAS_TURBO
+#flags to enable or disble 80211D feature
+EXTRA_CFLAGS += -DENABLE_DOT11D
+rtllib-rsl-objs := rtllib_rx.o \
+ rtllib_softmac.o \
+ rtllib_tx.o \
+ rtllib_wx.o \
+ rtllib_module.o \
+ rtllib_softmac_wx.o\
+ rtl819x_HTProc.o\
+ rtl819x_TSProc.o\
+ rtl819x_BAProc.o\
+ dot11d.o
+
+rtllib_crypt-rsl-objs := rtllib_crypt.o
+rtllib_crypt_tkip-rsl-objs := rtllib_crypt_tkip.o
+rtllib_crypt_ccmp-rsl-objs := rtllib_crypt_ccmp.o
+rtllib_crypt_wep-rsl-objs := rtllib_crypt_wep.o
+
+obj-m +=rtllib-rsl.o
+obj-m +=rtllib_crypt-rsl.o
+obj-m +=rtllib_crypt_wep-rsl.o
+obj-m +=rtllib_crypt_tkip-rsl.o
+obj-m +=rtllib_crypt_ccmp-rsl.o
+
+KSRC := /lib/modules/$(KVER)/build
+INSTALL_PREFIX :=
+
+all: modules
+
+modules:
+ $(MAKE) -C $(KSRC) M=$(PWD) CC=$(CC) modules
+
+install: modules
+ rm -fr $(MODDESTDIR)
+ mkdir -p $(MODDESTDIR)
+ @install -p -m 644 rtllib_crypt-rsl.ko $(MODDESTDIR)
+ @install -p -m 644 rtllib_crypt_wep-rsl.ko $(MODDESTDIR)
+ @install -p -m 644 rtllib_crypt_tkip-rsl.ko $(MODDESTDIR)
+ @install -p -m 644 rtllib_crypt_ccmp-rsl.ko $(MODDESTDIR)
+ @install -p -m 644 rtllib-rsl.ko $(MODDESTDIR)
+ depmod -a
+uninstall:
+ rm -fr $(MODDESTDIR)
+ depmod -a
+
+else
+LD := ld
+KSRC := /lib/modules/$(KVER)/build
+CONFIG_FILE := $(KSRC)/include/linux/autoconf.h
+
+CFLAGS += -DLINUX -D__KERNEL__ -DMODULE -O2 -pipe -Wall
+CFLAGS += -I$(KSRC)/include -I.
+#Kernel 2.4.31
+CFLAGS += -DMODVERSIONS -DEXPORT_SYMTAB -include $(KSRC)/include/linux/modversions.h
+#Kernel 2.4.20
+#CFLAGS += -D__NO_VERSION__ -DEXPORT_SYMTAB
+CFLAGS += -DENABLE_DOT11D
+CFLAGS += -DTHOMAS_TURBO
+
+ifeq ($(NIC_SELECT),RTL8192U)
+CFLAGS += -DRTL8192U
+#EXTRA_CFLAGS += -DENABLE_AMSDU
+EXTRA_CFLAGS += -DUSB_TX_DRIVER_AGGREGATION_ENABLE
+EXTRA_CFLAGS += -DUSB_RX_AGGREGATION_SUPPORT
+endif
+ifeq ($(NIC_SELECT),RTL8192E)
+CFLAGS += -DRTL8192E
+endif
+ifeq ($(NIC_SELECT),RTL8190P)
+CFLAGS += -DRTL8190P
+endif
+ifeq ($(NIC_SELECT),RTL8192SE)
+CFLAGS += -DRTL8192SE
+CFLAGS += -DRTL8192S_DISABLE_FW_DM=0
+endif
+ifeq ($(NIC_SELECT), RTL8191SE_MESH)
+AUTHTYPE=SAE
+#AUTHTYPE=OPEN
+CFLAGS += -DRTL8192SE
+CFLAGS += -DRTL8192S_DISABLE_FW_DM=0
+CFLAGS += -D_RTL8192_EXT_PATCH_
+ifeq ($(AUTHTYPE),SAE)
+CFLAGS += -DMESH_ABBR_HANDSHK_SUPPORT\
+CFLAGS += -DMESH_ATH_2
+endif
+endif
+
+SMP := $(shell $(CC) $(MODCFLAGS) -E -dM $(CONFIG_FILE) | \
+ grep CONFIG_SMP | awk '{print $$3}')
+ifneq ($(SMP),1)
+ SMP := 0
+endif
+ifeq ($(SMP),1)
+ CFLAGS += -D__SMP__
+endif
+
+#CFLAGS += -DJOHN_NOCPY
+
+OBJS := ${patsubst %.c, %.o, ${wildcard *.c}}
+all:${OBJS} rtllib_crypt-rsl.o michael_mic-rsl.o aes-rsl.o rtllib_crypt_wep-rsl.o rtllib_crypt_tkip-rsl.o rtllib_crypt_ccmp-rsl.o crypto-rsl.o rtllib-rsl.o
+
+rtllib_crypt-rsl.o: rtllib_crypt.o
+ mv $^ $@
+
+michael_mic-rsl.o: michael_mic.o
+ mv $^ $@
+
+aes-rsl.o: aes.o
+ mv $^ $@
+
+rtllib_crypt_wep-rsl.o: rtllib_crypt_wep.o
+ mv $^ $@
+
+rtllib_crypt_tkip-rsl.o: rtllib_crypt_tkip.o
+ mv $^ $@
+
+rtllib_crypt_ccmp-rsl.o: rtllib_crypt_ccmp.o
+ mv $^ $@
+
+crypto-rsl.o: arc4.o api.o autoload.o cipher.o compress.o digest.o scatterwalk.o proc.o
+ $(LD) -r $^ -o $@
+
+rtllib-rsl.o: rtllib_rx.o rtllib_tx.o rtllib_wx.o rtllib_module.o rtllib_softmac_wx.o rtllib_softmac.o rtl819x_HTProc.o rtl819x_TSProc.o rtl819x_BAProc.o dot11d.o
+ $(LD) -r $^ -o $@
+install:
+ rm -fr $(MODDESTDIR)
+ mkdir -p $(MODDESTDIR)
+ @install -p -m 644 rtllib_crypt-rsl.o $(MODDESTDIR)
+ @install -p -m 644 crypto-rsl.o $(MODDESTDIR)
+ @install -p -m 644 michael_mic-rsl.o $(MODDESTDIR)
+ @install -p -m 644 aes-rsl.o $(MODDESTDIR)
+ @install -p -m 644 rtllib_crypt_wep-rsl.o $(MODDESTDIR)
+ @install -p -m 644 rtllib_crypt_tkip-rsl.o $(MODDESTDIR)
+ @install -p -m 644 rtllib_crypt_ccmp-rsl.o $(MODDESTDIR)
+ @install -p -m 644 rtllib-rsl.o $(MODDESTDIR)
+ /sbin/depmod -a ${shell uname -r}
+
+uninstall:
+ rm -fr $(MODDESTDIR)
+ /sbin/depmod -a ${shell uname -r}
+
+endif
+
+.PHONY: clean
+clean:
+ rm -fr *.mod.c *.mod *.o .*.cmd *.mod.* *.ko *.o *~
+ rm -rf .tmp_versions
+ rm -rf Module.symvers
+ rm -fr Module.markers
+ rm -fr modules.order
+ rm -fr tags
diff --git a/ubuntu/rtl8192se/rtllib/aes.c b/ubuntu/rtl8192se/rtllib/aes.c
new file mode 100755
index 00000000000..625fd62d11c
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/aes.c
@@ -0,0 +1,468 @@
+/*
+ * Cryptographic API.
+ *
+ * AES Cipher Algorithm.
+ *
+ * Based on Brian Gladman's code.
+ *
+ * Linux developers:
+ * Alexander Kjeldaas <astor@fast.no>
+ * Herbert Valerio Riedel <hvr@hvrlab.org>
+ * Kyle McMartin <kyle@debian.org>
+ * Adam J. Richter <adam@yggdrasil.com> (conversion to 2.5 API).
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * ---------------------------------------------------------------------------
+ * Copyright (c) 2002, Dr Brian Gladman <brg@gladman.me.uk>, Worcester, UK.
+ * All rights reserved.
+ *
+ * LICENSE TERMS
+ *
+ * The free distribution and use of this software in both source and binary
+ * form is allowed (with or without changes) provided that:
+ *
+ * 1. distributions of this source code include the above copyright
+ * notice, this list of conditions and the following disclaimer;
+ *
+ * 2. distributions in binary form include the above copyright
+ * notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other associated materials;
+ *
+ * 3. the copyright holder's name is not used to endorse products
+ * built using this software without specific written permission.
+ *
+ * ALTERNATIVELY, provided that this notice is retained in full, this product
+ * may be distributed under the terms of the GNU General Public License (GPL),
+ * in which case the provisions of the GPL apply INSTEAD OF those given above.
+ *
+ * DISCLAIMER
+ *
+ * This software is provided 'as is' with no explicit or implied warranties
+ * in respect of its properties, including, but not limited to, correctness
+ * and/or fitness for purpose.
+ * ---------------------------------------------------------------------------
+ */
+
+/* Some changes from the Gladman version:
+ s/RIJNDAEL(e_key)/E_KEY/g
+ s/RIJNDAEL(d_key)/D_KEY/g
+*/
+
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/types.h>
+#include <linux/errno.h>
+#include "rtl_crypto.h"
+#include <asm/byteorder.h>
+
+#define AES_MIN_KEY_SIZE 16
+#define AES_MAX_KEY_SIZE 32
+
+#define AES_BLOCK_SIZE 16
+
+static inline
+u32 generic_rotr32 (const u32 x, const unsigned bits)
+{
+ const unsigned n = bits % 32;
+ return (x >> n) | (x << (32 - n));
+}
+
+static inline
+u32 generic_rotl32 (const u32 x, const unsigned bits)
+{
+ const unsigned n = bits % 32;
+ return (x << n) | (x >> (32 - n));
+}
+
+#define rotl generic_rotl32
+#define rotr generic_rotr32
+
+/*
+ * #define byte(x, nr) ((unsigned char)((x) >> (nr*8)))
+ */
+inline static u8
+byte(const u32 x, const unsigned n)
+{
+ return x >> (n << 3);
+}
+
+#define u32_in(x) le32_to_cpu(*(const u32 *)(x))
+#define u32_out(to, from) (*(u32 *)(to) = cpu_to_le32(from))
+
+struct aes_ctx {
+ int key_length;
+ u32 E[60];
+ u32 D[60];
+};
+
+#define E_KEY ctx->E
+#define D_KEY ctx->D
+
+static u8 pow_tab[256] __initdata;
+static u8 log_tab[256] __initdata;
+static u8 sbx_tab[256] __initdata;
+static u8 isb_tab[256] __initdata;
+static u32 rco_tab[10];
+static u32 ft_tab[4][256];
+static u32 it_tab[4][256];
+
+static u32 fl_tab[4][256];
+static u32 il_tab[4][256];
+
+static inline u8 __init
+f_mult (u8 a, u8 b)
+{
+ u8 aa = log_tab[a], cc = aa + log_tab[b];
+
+ return pow_tab[cc + (cc < aa ? 1 : 0)];
+}
+
+#define ff_mult(a,b) (a && b ? f_mult(a, b) : 0)
+
+#define f_rn(bo, bi, n, k) \
+ bo[n] = ft_tab[0][byte(bi[n],0)] ^ \
+ ft_tab[1][byte(bi[(n + 1) & 3],1)] ^ \
+ ft_tab[2][byte(bi[(n + 2) & 3],2)] ^ \
+ ft_tab[3][byte(bi[(n + 3) & 3],3)] ^ *(k + n)
+
+#define i_rn(bo, bi, n, k) \
+ bo[n] = it_tab[0][byte(bi[n],0)] ^ \
+ it_tab[1][byte(bi[(n + 3) & 3],1)] ^ \
+ it_tab[2][byte(bi[(n + 2) & 3],2)] ^ \
+ it_tab[3][byte(bi[(n + 1) & 3],3)] ^ *(k + n)
+
+#define ls_box(x) \
+ ( fl_tab[0][byte(x, 0)] ^ \
+ fl_tab[1][byte(x, 1)] ^ \
+ fl_tab[2][byte(x, 2)] ^ \
+ fl_tab[3][byte(x, 3)] )
+
+#define f_rl(bo, bi, n, k) \
+ bo[n] = fl_tab[0][byte(bi[n],0)] ^ \
+ fl_tab[1][byte(bi[(n + 1) & 3],1)] ^ \
+ fl_tab[2][byte(bi[(n + 2) & 3],2)] ^ \
+ fl_tab[3][byte(bi[(n + 3) & 3],3)] ^ *(k + n)
+
+#define i_rl(bo, bi, n, k) \
+ bo[n] = il_tab[0][byte(bi[n],0)] ^ \
+ il_tab[1][byte(bi[(n + 3) & 3],1)] ^ \
+ il_tab[2][byte(bi[(n + 2) & 3],2)] ^ \
+ il_tab[3][byte(bi[(n + 1) & 3],3)] ^ *(k + n)
+
+static void __init
+gen_tabs (void)
+{
+ u32 i, t;
+ u8 p, q;
+
+ /* log and power tables for GF(2**8) finite field with
+ 0x011b as modular polynomial - the simplest primitive
+ root is 0x03, used here to generate the tables */
+
+ for (i = 0, p = 1; i < 256; ++i) {
+ pow_tab[i] = (u8) p;
+ log_tab[p] = (u8) i;
+
+ p ^= (p << 1) ^ (p & 0x80 ? 0x01b : 0);
+ }
+
+ log_tab[1] = 0;
+
+ for (i = 0, p = 1; i < 10; ++i) {
+ rco_tab[i] = p;
+
+ p = (p << 1) ^ (p & 0x80 ? 0x01b : 0);
+ }
+
+ for (i = 0; i < 256; ++i) {
+ p = (i ? pow_tab[255 - log_tab[i]] : 0);
+ q = ((p >> 7) | (p << 1)) ^ ((p >> 6) | (p << 2));
+ p ^= 0x63 ^ q ^ ((q >> 6) | (q << 2));
+ sbx_tab[i] = p;
+ isb_tab[p] = (u8) i;
+ }
+
+ for (i = 0; i < 256; ++i) {
+ p = sbx_tab[i];
+
+ t = p;
+ fl_tab[0][i] = t;
+ fl_tab[1][i] = rotl (t, 8);
+ fl_tab[2][i] = rotl (t, 16);
+ fl_tab[3][i] = rotl (t, 24);
+
+ t = ((u32) ff_mult (2, p)) |
+ ((u32) p << 8) |
+ ((u32) p << 16) | ((u32) ff_mult (3, p) << 24);
+
+ ft_tab[0][i] = t;
+ ft_tab[1][i] = rotl (t, 8);
+ ft_tab[2][i] = rotl (t, 16);
+ ft_tab[3][i] = rotl (t, 24);
+
+ p = isb_tab[i];
+
+ t = p;
+ il_tab[0][i] = t;
+ il_tab[1][i] = rotl (t, 8);
+ il_tab[2][i] = rotl (t, 16);
+ il_tab[3][i] = rotl (t, 24);
+
+ t = ((u32) ff_mult (14, p)) |
+ ((u32) ff_mult (9, p) << 8) |
+ ((u32) ff_mult (13, p) << 16) |
+ ((u32) ff_mult (11, p) << 24);
+
+ it_tab[0][i] = t;
+ it_tab[1][i] = rotl (t, 8);
+ it_tab[2][i] = rotl (t, 16);
+ it_tab[3][i] = rotl (t, 24);
+ }
+}
+
+#define star_x(x) (((x) & 0x7f7f7f7f) << 1) ^ ((((x) & 0x80808080) >> 7) * 0x1b)
+
+#define imix_col(y,x) \
+ u = star_x(x); \
+ v = star_x(u); \
+ w = star_x(v); \
+ t = w ^ (x); \
+ (y) = u ^ v ^ w; \
+ (y) ^= rotr(u ^ t, 8) ^ \
+ rotr(v ^ t, 16) ^ \
+ rotr(t,24)
+
+/* initialise the key schedule from the user supplied key */
+
+#define loop4(i) \
+{ t = rotr(t, 8); t = ls_box(t) ^ rco_tab[i]; \
+ t ^= E_KEY[4 * i]; E_KEY[4 * i + 4] = t; \
+ t ^= E_KEY[4 * i + 1]; E_KEY[4 * i + 5] = t; \
+ t ^= E_KEY[4 * i + 2]; E_KEY[4 * i + 6] = t; \
+ t ^= E_KEY[4 * i + 3]; E_KEY[4 * i + 7] = t; \
+}
+
+#define loop6(i) \
+{ t = rotr(t, 8); t = ls_box(t) ^ rco_tab[i]; \
+ t ^= E_KEY[6 * i]; E_KEY[6 * i + 6] = t; \
+ t ^= E_KEY[6 * i + 1]; E_KEY[6 * i + 7] = t; \
+ t ^= E_KEY[6 * i + 2]; E_KEY[6 * i + 8] = t; \
+ t ^= E_KEY[6 * i + 3]; E_KEY[6 * i + 9] = t; \
+ t ^= E_KEY[6 * i + 4]; E_KEY[6 * i + 10] = t; \
+ t ^= E_KEY[6 * i + 5]; E_KEY[6 * i + 11] = t; \
+}
+
+#define loop8(i) \
+{ t = rotr(t, 8); ; t = ls_box(t) ^ rco_tab[i]; \
+ t ^= E_KEY[8 * i]; E_KEY[8 * i + 8] = t; \
+ t ^= E_KEY[8 * i + 1]; E_KEY[8 * i + 9] = t; \
+ t ^= E_KEY[8 * i + 2]; E_KEY[8 * i + 10] = t; \
+ t ^= E_KEY[8 * i + 3]; E_KEY[8 * i + 11] = t; \
+ t = E_KEY[8 * i + 4] ^ ls_box(t); \
+ E_KEY[8 * i + 12] = t; \
+ t ^= E_KEY[8 * i + 5]; E_KEY[8 * i + 13] = t; \
+ t ^= E_KEY[8 * i + 6]; E_KEY[8 * i + 14] = t; \
+ t ^= E_KEY[8 * i + 7]; E_KEY[8 * i + 15] = t; \
+}
+
+static int
+aes_set_key(void *ctx_arg, const u8 *in_key, unsigned int key_len, u32 *flags)
+{
+ struct aes_ctx *ctx = ctx_arg;
+ u32 i, t, u, v, w;
+
+ if (key_len != 16 && key_len != 24 && key_len != 32) {
+ *flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
+ return -EINVAL;
+ }
+
+ ctx->key_length = key_len;
+
+ E_KEY[0] = u32_in (in_key);
+ E_KEY[1] = u32_in (in_key + 4);
+ E_KEY[2] = u32_in (in_key + 8);
+ E_KEY[3] = u32_in (in_key + 12);
+
+ switch (key_len) {
+ case 16:
+ t = E_KEY[3];
+ for (i = 0; i < 10; ++i)
+ loop4 (i);
+ break;
+
+ case 24:
+ E_KEY[4] = u32_in (in_key + 16);
+ t = E_KEY[5] = u32_in (in_key + 20);
+ for (i = 0; i < 8; ++i)
+ loop6 (i);
+ break;
+
+ case 32:
+ E_KEY[4] = u32_in (in_key + 16);
+ E_KEY[5] = u32_in (in_key + 20);
+ E_KEY[6] = u32_in (in_key + 24);
+ t = E_KEY[7] = u32_in (in_key + 28);
+ for (i = 0; i < 7; ++i)
+ loop8 (i);
+ break;
+ }
+
+ D_KEY[0] = E_KEY[0];
+ D_KEY[1] = E_KEY[1];
+ D_KEY[2] = E_KEY[2];
+ D_KEY[3] = E_KEY[3];
+
+ for (i = 4; i < key_len + 24; ++i) {
+ imix_col (D_KEY[i], E_KEY[i]);
+ }
+
+ return 0;
+}
+
+/* encrypt a block of text */
+
+#define f_nround(bo, bi, k) \
+ f_rn(bo, bi, 0, k); \
+ f_rn(bo, bi, 1, k); \
+ f_rn(bo, bi, 2, k); \
+ f_rn(bo, bi, 3, k); \
+ k += 4
+
+#define f_lround(bo, bi, k) \
+ f_rl(bo, bi, 0, k); \
+ f_rl(bo, bi, 1, k); \
+ f_rl(bo, bi, 2, k); \
+ f_rl(bo, bi, 3, k)
+
+static void aes_encrypt(void *ctx_arg, u8 *out, const u8 *in)
+{
+ const struct aes_ctx *ctx = ctx_arg;
+ u32 b0[4], b1[4];
+ const u32 *kp = E_KEY + 4;
+ b0[0] = u32_in (in) ^ E_KEY[0];
+ b0[1] = u32_in (in + 4) ^ E_KEY[1];
+ b0[2] = u32_in (in + 8) ^ E_KEY[2];
+ b0[3] = u32_in (in + 12) ^ E_KEY[3];
+
+ if (ctx->key_length > 24) {
+ f_nround (b1, b0, kp);
+ f_nround (b0, b1, kp);
+ }
+
+ if (ctx->key_length > 16) {
+ f_nround (b1, b0, kp);
+ f_nround (b0, b1, kp);
+ }
+
+ f_nround (b1, b0, kp);
+ f_nround (b0, b1, kp);
+ f_nround (b1, b0, kp);
+ f_nround (b0, b1, kp);
+ f_nround (b1, b0, kp);
+ f_nround (b0, b1, kp);
+ f_nround (b1, b0, kp);
+ f_nround (b0, b1, kp);
+ f_nround (b1, b0, kp);
+ f_lround (b0, b1, kp);
+
+ u32_out (out, b0[0]);
+ u32_out (out + 4, b0[1]);
+ u32_out (out + 8, b0[2]);
+ u32_out (out + 12, b0[3]);
+}
+
+/* decrypt a block of text */
+
+#define i_nround(bo, bi, k) \
+ i_rn(bo, bi, 0, k); \
+ i_rn(bo, bi, 1, k); \
+ i_rn(bo, bi, 2, k); \
+ i_rn(bo, bi, 3, k); \
+ k -= 4
+
+#define i_lround(bo, bi, k) \
+ i_rl(bo, bi, 0, k); \
+ i_rl(bo, bi, 1, k); \
+ i_rl(bo, bi, 2, k); \
+ i_rl(bo, bi, 3, k)
+
+static void aes_decrypt(void *ctx_arg, u8 *out, const u8 *in)
+{
+ const struct aes_ctx *ctx = ctx_arg;
+ u32 b0[4], b1[4];
+ const int key_len = ctx->key_length;
+ const u32 *kp = D_KEY + key_len + 20;
+
+ b0[0] = u32_in (in) ^ E_KEY[key_len + 24];
+ b0[1] = u32_in (in + 4) ^ E_KEY[key_len + 25];
+ b0[2] = u32_in (in + 8) ^ E_KEY[key_len + 26];
+ b0[3] = u32_in (in + 12) ^ E_KEY[key_len + 27];
+
+ if (key_len > 24) {
+ i_nround (b1, b0, kp);
+ i_nround (b0, b1, kp);
+ }
+
+ if (key_len > 16) {
+ i_nround (b1, b0, kp);
+ i_nround (b0, b1, kp);
+ }
+
+ i_nround (b1, b0, kp);
+ i_nround (b0, b1, kp);
+ i_nround (b1, b0, kp);
+ i_nround (b0, b1, kp);
+ i_nround (b1, b0, kp);
+ i_nround (b0, b1, kp);
+ i_nround (b1, b0, kp);
+ i_nround (b0, b1, kp);
+ i_nround (b1, b0, kp);
+ i_lround (b0, b1, kp);
+
+ u32_out (out, b0[0]);
+ u32_out (out + 4, b0[1]);
+ u32_out (out + 8, b0[2]);
+ u32_out (out + 12, b0[3]);
+}
+
+
+static struct crypto_alg aes_alg = {
+ .cra_name = "aes",
+ .cra_flags = CRYPTO_ALG_TYPE_CIPHER,
+ .cra_blocksize = AES_BLOCK_SIZE,
+ .cra_ctxsize = sizeof(struct aes_ctx),
+ .cra_module = THIS_MODULE,
+ .cra_list = LIST_HEAD_INIT(aes_alg.cra_list),
+ .cra_u = {
+ .cipher = {
+ .cia_min_keysize = AES_MIN_KEY_SIZE,
+ .cia_max_keysize = AES_MAX_KEY_SIZE,
+ .cia_setkey = aes_set_key,
+ .cia_encrypt = aes_encrypt,
+ .cia_decrypt = aes_decrypt
+ }
+ }
+};
+
+int __init aes_init(void)
+{
+ gen_tabs();
+ return crypto_register_alg(&aes_alg);
+}
+
+void __exit aes_fini(void)
+{
+ crypto_unregister_alg(&aes_alg);
+}
+
+#ifndef BUILT_IN_CRYPTO
+module_init(aes_init);
+module_exit(aes_fini);
+
+MODULE_DESCRIPTION("Rijndael (AES) Cipher Algorithm");
+MODULE_LICENSE("Dual BSD/GPL");
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/api.c b/ubuntu/rtl8192se/rtllib/api.c
new file mode 100755
index 00000000000..32fe6029c96
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/api.c
@@ -0,0 +1,261 @@
+/*
+ * Scatterlist Cryptographic API.
+ *
+ * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
+ * Copyright (c) 2002 David S. Miller (davem@redhat.com)
+ *
+ * Portions derived from Cryptoapi, by Alexander Kjeldaas <astor@fast.no>
+ * and Nettle, by Niels Mé°ˆler.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ */
+
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include "rtl_crypto.h"
+#include <linux/errno.h>
+#include <linux/rwsem.h>
+#include <linux/slab.h>
+#include "internal.h"
+
+LIST_HEAD(crypto_alg_list);
+DECLARE_RWSEM(crypto_alg_sem);
+
+static inline int crypto_alg_get(struct crypto_alg *alg)
+{
+#ifdef BUILT_IN_CRYPTO
+ return 1;
+#else
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+ return try_module_get(alg->cra_module);
+#else
+ return try_inc_mod_count(alg->cra_module);
+#endif
+#endif
+}
+
+static inline void crypto_alg_put(struct crypto_alg *alg)
+{
+#ifndef BUILT_IN_CRYPTO
+ if (alg->cra_module)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+ module_put(alg->cra_module);
+#else
+ __MOD_DEC_USE_COUNT(alg->cra_module);
+#endif
+#endif
+}
+
+struct crypto_alg *crypto_alg_lookup(const char *name)
+{
+ struct crypto_alg *q, *alg = NULL;
+
+ if (!name)
+ return NULL;
+
+ down_read(&crypto_alg_sem);
+
+ list_for_each_entry(q, &crypto_alg_list, cra_list) {
+ if (!(strcmp(q->cra_name, name))) {
+ if (crypto_alg_get(q))
+ alg = q;
+ break;
+ }
+ }
+
+ up_read(&crypto_alg_sem);
+ return alg;
+}
+
+static int crypto_init_flags(struct crypto_tfm *tfm, u32 flags)
+{
+ tfm->crt_flags = 0;
+
+ switch (crypto_tfm_alg_type(tfm)) {
+ case CRYPTO_ALG_TYPE_CIPHER:
+ return crypto_init_cipher_flags(tfm, flags);
+
+ case CRYPTO_ALG_TYPE_DIGEST:
+ return crypto_init_digest_flags(tfm, flags);
+
+ case CRYPTO_ALG_TYPE_COMPRESS:
+ return crypto_init_compress_flags(tfm, flags);
+
+ default:
+ break;
+ }
+
+ BUG();
+ return -EINVAL;
+}
+
+static int crypto_init_ops(struct crypto_tfm *tfm)
+{
+ switch (crypto_tfm_alg_type(tfm)) {
+ case CRYPTO_ALG_TYPE_CIPHER:
+ return crypto_init_cipher_ops(tfm);
+
+ case CRYPTO_ALG_TYPE_DIGEST:
+ return crypto_init_digest_ops(tfm);
+
+ case CRYPTO_ALG_TYPE_COMPRESS:
+ return crypto_init_compress_ops(tfm);
+
+ default:
+ break;
+ }
+
+ BUG();
+ return -EINVAL;
+}
+
+static void crypto_exit_ops(struct crypto_tfm *tfm)
+{
+ switch (crypto_tfm_alg_type(tfm)) {
+ case CRYPTO_ALG_TYPE_CIPHER:
+ crypto_exit_cipher_ops(tfm);
+ break;
+
+ case CRYPTO_ALG_TYPE_DIGEST:
+ crypto_exit_digest_ops(tfm);
+ break;
+
+ case CRYPTO_ALG_TYPE_COMPRESS:
+ crypto_exit_compress_ops(tfm);
+ break;
+
+ default:
+ BUG();
+
+ }
+}
+
+struct crypto_tfm *crypto_alloc_tfm(const char *name, u32 flags)
+{
+ struct crypto_tfm *tfm = NULL;
+ struct crypto_alg *alg;
+
+ alg = crypto_alg_mod_lookup(name);
+ if (alg == NULL)
+ goto out;
+
+ tfm = kmalloc(sizeof(*tfm) + alg->cra_ctxsize, GFP_KERNEL);
+ if (tfm == NULL)
+ goto out_put;
+
+ memset(tfm, 0, sizeof(*tfm) + alg->cra_ctxsize);
+
+ tfm->__crt_alg = alg;
+
+ if (crypto_init_flags(tfm, flags))
+ goto out_free_tfm;
+
+ if (crypto_init_ops(tfm)) {
+ crypto_exit_ops(tfm);
+ goto out_free_tfm;
+ }
+
+ goto out;
+
+out_free_tfm:
+ kfree(tfm);
+ tfm = NULL;
+out_put:
+ crypto_alg_put(alg);
+out:
+ return tfm;
+}
+
+void crypto_free_tfm(struct crypto_tfm *tfm)
+{
+ struct crypto_alg *alg = tfm->__crt_alg;
+ int size = sizeof(*tfm) + alg->cra_ctxsize;
+
+ crypto_exit_ops(tfm);
+ crypto_alg_put(alg);
+ memset(tfm, 0, size);
+ kfree(tfm);
+}
+
+int crypto_register_alg(struct crypto_alg *alg)
+{
+ int ret = 0;
+ struct crypto_alg *q;
+
+ down_write(&crypto_alg_sem);
+
+ list_for_each_entry(q, &crypto_alg_list, cra_list) {
+ if (!(strcmp(q->cra_name, alg->cra_name))) {
+ ret = -EEXIST;
+ goto out;
+ }
+ }
+
+ list_add_tail(&alg->cra_list, &crypto_alg_list);
+out:
+ up_write(&crypto_alg_sem);
+ return ret;
+}
+
+int crypto_unregister_alg(struct crypto_alg *alg)
+{
+ int ret = -ENOENT;
+ struct crypto_alg *q;
+
+ BUG_ON(!alg->cra_module);
+
+ down_write(&crypto_alg_sem);
+ list_for_each_entry(q, &crypto_alg_list, cra_list) {
+ if (alg == q) {
+ list_del(&alg->cra_list);
+ ret = 0;
+ goto out;
+ }
+ }
+out:
+ up_write(&crypto_alg_sem);
+ return ret;
+}
+
+int crypto_alg_available(const char *name, u32 flags)
+{
+ int ret = 0;
+ struct crypto_alg *alg = crypto_alg_mod_lookup(name);
+
+ if (alg) {
+ crypto_alg_put(alg);
+ ret = 1;
+ }
+
+ return ret;
+}
+
+#ifndef BUILT_IN_CRYPTO
+static int __init init_crypto(void)
+{
+ printk(KERN_INFO "Initializing Cryptographic API\n");
+ crypto_init_proc();
+ return 0;
+}
+
+__initcall(init_crypto);
+
+
+/*
+EXPORT_SYMBOL_GPL(crypto_register_alg);
+EXPORT_SYMBOL_GPL(crypto_unregister_alg);
+EXPORT_SYMBOL_GPL(crypto_alloc_tfm);
+EXPORT_SYMBOL_GPL(crypto_free_tfm);
+EXPORT_SYMBOL_GPL(crypto_alg_available);
+*/
+EXPORT_SYMBOL_RSL(crypto_register_alg);
+EXPORT_SYMBOL_RSL(crypto_unregister_alg);
+EXPORT_SYMBOL_RSL(crypto_alloc_tfm);
+EXPORT_SYMBOL_RSL(crypto_free_tfm);
+EXPORT_SYMBOL_RSL(crypto_alg_available);
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/arc4.c b/ubuntu/rtl8192se/rtllib/arc4.c
new file mode 100755
index 00000000000..493c49f3833
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/arc4.c
@@ -0,0 +1,105 @@
+/*
+ * Cryptographic API
+ *
+ * ARC4 Cipher Algorithm
+ *
+ * Jon Oberheide <jon@oberheide.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ */
+#include <linux/module.h>
+#include <linux/init.h>
+#include "rtl_crypto.h"
+
+#define ARC4_MIN_KEY_SIZE 1
+#define ARC4_MAX_KEY_SIZE 256
+#define ARC4_BLOCK_SIZE 1
+
+struct arc4_ctx {
+ u8 S[256];
+ u8 x, y;
+};
+
+static int arc4_set_key(void *ctx_arg, const u8 *in_key, unsigned int key_len, u32 *flags)
+{
+ struct arc4_ctx *ctx = ctx_arg;
+ int i, j = 0, k = 0;
+
+ ctx->x = 1;
+ ctx->y = 0;
+
+ for(i = 0; i < 256; i++)
+ ctx->S[i] = i;
+
+ for(i = 0; i < 256; i++)
+ {
+ u8 a = ctx->S[i];
+ j = (j + in_key[k] + a) & 0xff;
+ ctx->S[i] = ctx->S[j];
+ ctx->S[j] = a;
+ if((unsigned int)++k >= key_len)
+ k = 0;
+ }
+
+ return 0;
+}
+
+static void arc4_crypt(void *ctx_arg, u8 *out, const u8 *in)
+{
+ struct arc4_ctx *ctx = ctx_arg;
+
+ u8 *const S = ctx->S;
+ u8 x = ctx->x;
+ u8 y = ctx->y;
+ u8 a, b;
+
+ a = S[x];
+ y = (y + a) & 0xff;
+ b = S[y];
+ S[x] = b;
+ S[y] = a;
+ x = (x + 1) & 0xff;
+ *out++ = *in ^ S[(a + b) & 0xff];
+
+ ctx->x = x;
+ ctx->y = y;
+}
+
+static struct crypto_alg arc4_alg = {
+ .cra_name = "arc4",
+ .cra_flags = CRYPTO_ALG_TYPE_CIPHER,
+ .cra_blocksize = ARC4_BLOCK_SIZE,
+ .cra_ctxsize = sizeof(struct arc4_ctx),
+ .cra_module = THIS_MODULE,
+ .cra_list = LIST_HEAD_INIT(arc4_alg.cra_list),
+ .cra_u = { .cipher = {
+ .cia_min_keysize = ARC4_MIN_KEY_SIZE,
+ .cia_max_keysize = ARC4_MAX_KEY_SIZE,
+ .cia_setkey = arc4_set_key,
+ .cia_encrypt = arc4_crypt,
+ .cia_decrypt = arc4_crypt } }
+};
+
+int __init arc4_init(void)
+{
+ return crypto_register_alg(&arc4_alg);
+}
+
+
+void __exit arc4_exit(void)
+{
+ crypto_unregister_alg(&arc4_alg);
+}
+
+#ifndef BUILT_IN_CRYPTO
+module_init(arc4_init);
+module_exit(arc4_exit);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("ARC4 Cipher Algorithm");
+MODULE_AUTHOR("Jon Oberheide <jon@oberheide.org>");
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/autoload.c b/ubuntu/rtl8192se/rtllib/autoload.c
new file mode 100755
index 00000000000..f583cd165c1
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/autoload.c
@@ -0,0 +1,41 @@
+/*
+ * Cryptographic API.
+ *
+ * Algorithm autoloader.
+ *
+ * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ */
+#include "kmap_types.h"
+
+#include <linux/kernel.h>
+#include "rtl_crypto.h"
+#include <linux/string.h>
+#include <linux/kmod.h>
+#include "internal.h"
+
+#ifdef CONFIG_KMOD
+/*
+ * A far more intelligent version of this is planned. For now, just
+ * try an exact match on the name of the algorithm.
+ */
+void crypto_alg_autoload(const char *name)
+{
+ request_module(name);
+}
+
+struct crypto_alg *crypto_alg_mod_lookup(const char *name)
+{
+ struct crypto_alg *alg = crypto_alg_lookup(name);
+ if (alg == NULL) {
+ crypto_alg_autoload(name);
+ alg = crypto_alg_lookup(name);
+ }
+ return alg;
+}
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/cipher.c b/ubuntu/rtl8192se/rtllib/cipher.c
new file mode 100755
index 00000000000..c8aae3e65fc
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/cipher.c
@@ -0,0 +1,298 @@
+/*
+ * Cryptographic API.
+ *
+ * Cipher operations.
+ *
+ * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ */
+#include <linux/kernel.h>
+#include "rtl_crypto.h"
+#include <linux/errno.h>
+#include <linux/mm.h>
+#include <linux/slab.h>
+#include <asm/scatterlist.h>
+#include "internal.h"
+#include "scatterwalk.h"
+
+typedef void (cryptfn_t)(void *, u8 *, const u8 *);
+typedef void (procfn_t)(struct crypto_tfm *, u8 *,
+ u8*, cryptfn_t, int enc, void *, int);
+
+static inline void xor_64(u8 *a, const u8 *b)
+{
+ ((u32 *)a)[0] ^= ((u32 *)b)[0];
+ ((u32 *)a)[1] ^= ((u32 *)b)[1];
+}
+
+static inline void xor_128(u8 *a, const u8 *b)
+{
+ ((u32 *)a)[0] ^= ((u32 *)b)[0];
+ ((u32 *)a)[1] ^= ((u32 *)b)[1];
+ ((u32 *)a)[2] ^= ((u32 *)b)[2];
+ ((u32 *)a)[3] ^= ((u32 *)b)[3];
+}
+
+
+/*
+ * Generic encrypt/decrypt wrapper for ciphers, handles operations across
+ * multiple page boundaries by using temporary blocks. In user context,
+ * the kernel is given a chance to schedule us once per block.
+ */
+static int crypt(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes, cryptfn_t crfn,
+ procfn_t prfn, int enc, void *info)
+{
+ struct scatter_walk walk_in, walk_out;
+ const unsigned int bsize = crypto_tfm_alg_blocksize(tfm);
+ u8 tmp_src[bsize];
+ u8 tmp_dst[bsize];
+
+ if (!nbytes)
+ return 0;
+
+ if (nbytes % bsize) {
+ tfm->crt_flags |= CRYPTO_TFM_RES_BAD_BLOCK_LEN;
+ return -EINVAL;
+ }
+
+ scatterwalk_start(&walk_in, src);
+ scatterwalk_start(&walk_out, dst);
+
+ for(;;) {
+ u8 *src_p, *dst_p;
+ int in_place;
+
+ scatterwalk_map(&walk_in, 0);
+ scatterwalk_map(&walk_out, 1);
+ src_p = scatterwalk_whichbuf(&walk_in, bsize, tmp_src);
+ dst_p = scatterwalk_whichbuf(&walk_out, bsize, tmp_dst);
+ in_place = scatterwalk_samebuf(&walk_in, &walk_out,
+ src_p, dst_p);
+
+ nbytes -= bsize;
+
+ scatterwalk_copychunks(src_p, &walk_in, bsize, 0);
+
+ prfn(tfm, dst_p, src_p, crfn, enc, info, in_place);
+
+ scatterwalk_done(&walk_in, 0, nbytes);
+
+ scatterwalk_copychunks(dst_p, &walk_out, bsize, 1);
+ scatterwalk_done(&walk_out, 1, nbytes);
+
+ if (!nbytes)
+ return 0;
+
+ crypto_yield(tfm);
+ }
+}
+
+static void cbc_process(struct crypto_tfm *tfm, u8 *dst, u8 *src,
+ cryptfn_t fn, int enc, void *info, int in_place)
+{
+ u8 *iv = info;
+
+ /* Null encryption */
+ if (!iv)
+ return;
+
+ if (enc) {
+ tfm->crt_u.cipher.cit_xor_block(iv, src);
+ fn(crypto_tfm_ctx(tfm), dst, iv);
+ memcpy(iv, dst, crypto_tfm_alg_blocksize(tfm));
+ } else {
+ u8 stack[in_place ? crypto_tfm_alg_blocksize(tfm) : 0];
+ u8 *buf = in_place ? stack : dst;
+
+ fn(crypto_tfm_ctx(tfm), buf, src);
+ tfm->crt_u.cipher.cit_xor_block(buf, iv);
+ memcpy(iv, src, crypto_tfm_alg_blocksize(tfm));
+ if (buf != dst)
+ memcpy(dst, buf, crypto_tfm_alg_blocksize(tfm));
+ }
+}
+
+static void ecb_process(struct crypto_tfm *tfm, u8 *dst, u8 *src,
+ cryptfn_t fn, int enc, void *info, int in_place)
+{
+ fn(crypto_tfm_ctx(tfm), dst, src);
+}
+
+static int setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen)
+{
+ struct cipher_alg *cia = &tfm->__crt_alg->cra_cipher;
+
+ if (keylen < cia->cia_min_keysize || keylen > cia->cia_max_keysize) {
+ tfm->crt_flags |= CRYPTO_TFM_RES_BAD_KEY_LEN;
+ return -EINVAL;
+ } else
+ return cia->cia_setkey(crypto_tfm_ctx(tfm), key, keylen,
+ &tfm->crt_flags);
+}
+
+static int ecb_encrypt(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src, unsigned int nbytes)
+{
+ return crypt(tfm, dst, src, nbytes,
+ tfm->__crt_alg->cra_cipher.cia_encrypt,
+ ecb_process, 1, NULL);
+}
+
+static int ecb_decrypt(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes)
+{
+ return crypt(tfm, dst, src, nbytes,
+ tfm->__crt_alg->cra_cipher.cia_decrypt,
+ ecb_process, 1, NULL);
+}
+
+static int cbc_encrypt(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes)
+{
+ return crypt(tfm, dst, src, nbytes,
+ tfm->__crt_alg->cra_cipher.cia_encrypt,
+ cbc_process, 1, tfm->crt_cipher.cit_iv);
+}
+
+static int cbc_encrypt_iv(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes, u8 *iv)
+{
+ return crypt(tfm, dst, src, nbytes,
+ tfm->__crt_alg->cra_cipher.cia_encrypt,
+ cbc_process, 1, iv);
+}
+
+static int cbc_decrypt(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes)
+{
+ return crypt(tfm, dst, src, nbytes,
+ tfm->__crt_alg->cra_cipher.cia_decrypt,
+ cbc_process, 0, tfm->crt_cipher.cit_iv);
+}
+
+static int cbc_decrypt_iv(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes, u8 *iv)
+{
+ return crypt(tfm, dst, src, nbytes,
+ tfm->__crt_alg->cra_cipher.cia_decrypt,
+ cbc_process, 0, iv);
+}
+
+static int nocrypt(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes)
+{
+ return -ENOSYS;
+}
+
+static int nocrypt_iv(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes, u8 *iv)
+{
+ return -ENOSYS;
+}
+
+int crypto_init_cipher_flags(struct crypto_tfm *tfm, u32 flags)
+{
+ u32 mode = flags & CRYPTO_TFM_MODE_MASK;
+
+ tfm->crt_cipher.cit_mode = mode ? mode : CRYPTO_TFM_MODE_ECB;
+ if (flags & CRYPTO_TFM_REQ_WEAK_KEY)
+ tfm->crt_flags = CRYPTO_TFM_REQ_WEAK_KEY;
+
+ return 0;
+}
+
+int crypto_init_cipher_ops(struct crypto_tfm *tfm)
+{
+ int ret = 0;
+ struct cipher_tfm *ops = &tfm->crt_cipher;
+
+ ops->cit_setkey = setkey;
+
+ switch (tfm->crt_cipher.cit_mode) {
+ case CRYPTO_TFM_MODE_ECB:
+ ops->cit_encrypt = ecb_encrypt;
+ ops->cit_decrypt = ecb_decrypt;
+ break;
+
+ case CRYPTO_TFM_MODE_CBC:
+ ops->cit_encrypt = cbc_encrypt;
+ ops->cit_decrypt = cbc_decrypt;
+ ops->cit_encrypt_iv = cbc_encrypt_iv;
+ ops->cit_decrypt_iv = cbc_decrypt_iv;
+ break;
+
+ case CRYPTO_TFM_MODE_CFB:
+ ops->cit_encrypt = nocrypt;
+ ops->cit_decrypt = nocrypt;
+ ops->cit_encrypt_iv = nocrypt_iv;
+ ops->cit_decrypt_iv = nocrypt_iv;
+ break;
+
+ case CRYPTO_TFM_MODE_CTR:
+ ops->cit_encrypt = nocrypt;
+ ops->cit_decrypt = nocrypt;
+ ops->cit_encrypt_iv = nocrypt_iv;
+ ops->cit_decrypt_iv = nocrypt_iv;
+ break;
+
+ default:
+ BUG();
+ }
+
+ if (ops->cit_mode == CRYPTO_TFM_MODE_CBC) {
+
+ switch (crypto_tfm_alg_blocksize(tfm)) {
+ case 8:
+ ops->cit_xor_block = xor_64;
+ break;
+
+ case 16:
+ ops->cit_xor_block = xor_128;
+ break;
+
+ default:
+ printk(KERN_WARNING "%s: block size %u not supported\n",
+ crypto_tfm_alg_name(tfm),
+ crypto_tfm_alg_blocksize(tfm));
+ ret = -EINVAL;
+ goto out;
+ }
+
+ ops->cit_ivsize = crypto_tfm_alg_blocksize(tfm);
+ ops->cit_iv = kmalloc(ops->cit_ivsize, GFP_KERNEL);
+ if (ops->cit_iv == NULL)
+ ret = -ENOMEM;
+ }
+
+out:
+ return ret;
+}
+
+void crypto_exit_cipher_ops(struct crypto_tfm *tfm)
+{
+ if (tfm->crt_cipher.cit_iv)
+ kfree(tfm->crt_cipher.cit_iv);
+}
diff --git a/ubuntu/rtl8192se/rtllib/compress.c b/ubuntu/rtl8192se/rtllib/compress.c
new file mode 100755
index 00000000000..844adea20d9
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/compress.c
@@ -0,0 +1,63 @@
+/*
+ * Cryptographic API.
+ *
+ * Compression operations.
+ *
+ * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ */
+#include <linux/types.h>
+#include "rtl_crypto.h"
+#include <linux/errno.h>
+#include <asm/scatterlist.h>
+#include <linux/string.h>
+#include "internal.h"
+
+static int crypto_compress(struct crypto_tfm *tfm,
+ const u8 *src, unsigned int slen,
+ u8 *dst, unsigned int *dlen)
+{
+ return tfm->__crt_alg->cra_compress.coa_compress(crypto_tfm_ctx(tfm),
+ src, slen, dst,
+ dlen);
+}
+
+static int crypto_decompress(struct crypto_tfm *tfm,
+ const u8 *src, unsigned int slen,
+ u8 *dst, unsigned int *dlen)
+{
+ return tfm->__crt_alg->cra_compress.coa_decompress(crypto_tfm_ctx(tfm),
+ src, slen, dst,
+ dlen);
+}
+
+int crypto_init_compress_flags(struct crypto_tfm *tfm, u32 flags)
+{
+ return flags ? -EINVAL : 0;
+}
+
+int crypto_init_compress_ops(struct crypto_tfm *tfm)
+{
+ int ret = 0;
+ struct compress_tfm *ops = &tfm->crt_compress;
+
+ ret = tfm->__crt_alg->cra_compress.coa_init(crypto_tfm_ctx(tfm));
+ if (ret)
+ goto out;
+
+ ops->cot_compress = crypto_compress;
+ ops->cot_decompress = crypto_decompress;
+
+out:
+ return ret;
+}
+
+void crypto_exit_compress_ops(struct crypto_tfm *tfm)
+{
+ tfm->__crt_alg->cra_compress.coa_exit(crypto_tfm_ctx(tfm));
+}
diff --git a/ubuntu/rtl8192se/rtllib/crypto_compat.h b/ubuntu/rtl8192se/rtllib/crypto_compat.h
new file mode 100755
index 00000000000..2f09d0fba9c
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/crypto_compat.h
@@ -0,0 +1,88 @@
+/*
+ * Header file to maintain compatibility among different kernel versions.
+ *
+ * Copyright (c) 2004-2006 <lawrence_wang@realsil.com.cn>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation. See README and COPYING for
+ * more details.
+ */
+
+#include <linux/crypto.h>
+
+static inline int crypto_cipher_encrypt(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ return tfm->crt_cipher.cit_encrypt(tfm, dst, src, nbytes);
+}
+
+
+static inline int crypto_cipher_decrypt(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ return tfm->crt_cipher.cit_decrypt(tfm, dst, src, nbytes);
+}
+
+#if 0
+/*
+ * crypto_free_tfm - Free crypto transform
+ * @tfm: Transform to free
+ *
+ * crypto_free_tfm() frees up the transform and any associated resources,
+ * then drops the refcount on the associated algorithm.
+ */
+void crypto_free_tfm(struct crypto_tfm *tfm)
+{
+ struct crypto_alg *alg;
+ int size;
+
+ if (unlikely(!tfm))
+ return;
+
+ alg = tfm->__crt_alg;
+ size = sizeof(*tfm) + alg->cra_ctxsize;
+
+ if (alg->cra_exit)
+ alg->cra_exit(tfm);
+ crypto_exit_ops(tfm);
+ crypto_mod_put(alg);
+ memset(tfm, 0, size);
+ kfree(tfm);
+}
+
+#endif
+#if 1
+ struct crypto_tfm *crypto_alloc_tfm(const char *name, u32 flags)
+{
+ struct crypto_tfm *tfm = NULL;
+ int err;
+ printk("call crypto_alloc_tfm!!!\n");
+ do {
+ struct crypto_alg *alg;
+
+ alg = crypto_alg_mod_lookup(name, 0, CRYPTO_ALG_ASYNC);
+ err = PTR_ERR(alg);
+ if (IS_ERR(alg))
+ continue;
+
+ tfm = __crypto_alloc_tfm(alg, flags);
+ err = 0;
+ if (IS_ERR(tfm)) {
+ crypto_mod_put(alg);
+ err = PTR_ERR(tfm);
+ tfm = NULL;
+ }
+ } while (err == -EAGAIN && !signal_pending(current));
+
+ return tfm;
+}
+#endif
+
+
diff --git a/ubuntu/rtl8192se/rtllib/digest.c b/ubuntu/rtl8192se/rtllib/digest.c
new file mode 100755
index 00000000000..603398fe704
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/digest.c
@@ -0,0 +1,120 @@
+/*
+ * Cryptographic API.
+ *
+ * Digest operations.
+ *
+ * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ */
+#include <linux/version.h>
+#include "rtl_crypto.h"
+#include <linux/mm.h>
+#include <linux/errno.h>
+#include <linux/highmem.h>
+#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+#include <asm/scatterlist.h>
+#else
+#include <linux/scatterlist.h>
+#endif
+#include "internal.h"
+
+static void init(struct crypto_tfm *tfm)
+{
+ tfm->__crt_alg->cra_digest.dia_init(crypto_tfm_ctx(tfm));
+}
+
+static void update(struct crypto_tfm *tfm,
+ struct scatterlist *sg, unsigned int nsg)
+{
+ unsigned int i;
+
+ for (i = 0; i < nsg; i++) {
+
+ #if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+ struct page *pg = sg[i].page;
+ #else
+ struct page *pg = sg_page(&sg[i]);
+ #endif
+ unsigned int offset = sg[i].offset;
+ unsigned int l = sg[i].length;
+
+ do {
+ unsigned int bytes_from_page = min(l, ((unsigned int)
+ (PAGE_SIZE)) -
+ offset);
+ char *p = crypto_kmap(pg, 0) + offset;
+
+ tfm->__crt_alg->cra_digest.dia_update
+ (crypto_tfm_ctx(tfm), p,
+ bytes_from_page);
+ crypto_kunmap(p, 0);
+ crypto_yield(tfm);
+ offset = 0;
+ pg++;
+ l -= bytes_from_page;
+ } while (l > 0);
+ }
+}
+
+static void final(struct crypto_tfm *tfm, u8 *out)
+{
+ tfm->__crt_alg->cra_digest.dia_final(crypto_tfm_ctx(tfm), out);
+}
+
+static int setkey(struct crypto_tfm *tfm, const u8 *key, unsigned int keylen)
+{
+ u32 flags;
+ if (tfm->__crt_alg->cra_digest.dia_setkey == NULL)
+ return -ENOSYS;
+ return tfm->__crt_alg->cra_digest.dia_setkey(crypto_tfm_ctx(tfm),
+ key, keylen, &flags);
+}
+
+static void digest(struct crypto_tfm *tfm,
+ struct scatterlist *sg, unsigned int nsg, u8 *out)
+{
+ unsigned int i;
+
+ tfm->crt_digest.dit_init(tfm);
+
+ for (i = 0; i < nsg; i++) {
+ #if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+ char *p = crypto_kmap(sg[i].page, 0) + sg[i].offset;
+ #else
+ char *p = crypto_kmap(sg_page(&sg[i]), 0) + sg[i].offset;
+ #endif
+ tfm->__crt_alg->cra_digest.dia_update(crypto_tfm_ctx(tfm),
+ p, sg[i].length);
+ crypto_kunmap(p, 0);
+ crypto_yield(tfm);
+ }
+ crypto_digest_final(tfm, out);
+}
+
+int crypto_init_digest_flags(struct crypto_tfm *tfm, u32 flags)
+{
+ return flags ? -EINVAL : 0;
+}
+
+int crypto_init_digest_ops(struct crypto_tfm *tfm)
+{
+ struct digest_tfm *ops = &tfm->crt_digest;
+
+ ops->dit_init = init;
+ ops->dit_update = update;
+ ops->dit_final = final;
+ ops->dit_digest = digest;
+ ops->dit_setkey = setkey;
+
+ return crypto_alloc_hmac_block(tfm);
+}
+
+void crypto_exit_digest_ops(struct crypto_tfm *tfm)
+{
+ crypto_free_hmac_block(tfm);
+}
diff --git a/ubuntu/rtl8192se/rtllib/dot11d.c b/ubuntu/rtl8192se/rtllib/dot11d.c
new file mode 100755
index 00000000000..d96e856130b
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/dot11d.c
@@ -0,0 +1,261 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifdef ENABLE_DOT11D
+#include "dot11d.h"
+
+typedef struct _CHANNEL_LIST
+{
+ u8 Channel[32];
+ u8 Len;
+}CHANNEL_LIST, *PCHANNEL_LIST;
+
+static CHANNEL_LIST ChannelPlan[] = {
+ {{1,2,3,4,5,6,7,8,9,10,11,36,40,44,48,52,56,60,64,149,153,157,161,165},24},
+ {{1,2,3,4,5,6,7,8,9,10,11},11},
+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,36,40,44,48,52,56,60,64},21},
+ {{1,2,3,4,5,6,7,8,9,10,11,12,13},13},
+ {{1,2,3,4,5,6,7,8,9,10,11,12,13},13},
+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,14,36,40,44,48,52,56,60,64},22},
+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,14,36,40,44,48,52,56,60,64},22},
+ {{1,2,3,4,5,6,7,8,9,10,11,12,13},13},
+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,14,36,40,44,48,52,56,60,64},22},
+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,14,36,40,44,48,52,56,60,64},22},
+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,14},14},
+ {{1,2,3,4,5,6,7,8,9,10,11,12,13},13},
+ {{1,2,3,4,5,6,7,8,9,10,11,12,13,36,40,44,48,52,56,60,64},21}
+};
+
+void Dot11d_Init(struct rtllib_device *ieee)
+{
+ PRT_DOT11D_INFO pDot11dInfo = GET_DOT11D_INFO(ieee);
+#ifdef CONFIG_CRDA
+ ieee->bGlobalDomain = true;
+ pDot11dInfo->bEnabled = true;
+#else
+ pDot11dInfo->bEnabled = false;
+#endif
+
+ pDot11dInfo->State = DOT11D_STATE_NONE;
+ pDot11dInfo->CountryIeLen = 0;
+ memset(pDot11dInfo->channel_map, 0, MAX_CHANNEL_NUMBER+1);
+ memset(pDot11dInfo->MaxTxPwrDbmList, 0xFF, MAX_CHANNEL_NUMBER+1);
+ RESET_CIE_WATCHDOG(ieee);
+
+}
+
+void Dot11d_Channelmap(u8 channel_plan, struct rtllib_device* ieee)
+{
+ int i, max_chan = 14, min_chan = 1;
+
+ ieee->bGlobalDomain = false;
+
+ if (ChannelPlan[channel_plan].Len != 0) {
+ memset(GET_DOT11D_INFO(ieee)->channel_map, 0, sizeof(GET_DOT11D_INFO(ieee)->channel_map));
+ for (i = 0; i < ChannelPlan[channel_plan].Len; i++) {
+ if (ChannelPlan[channel_plan].Channel[i] < min_chan ||
+ ChannelPlan[channel_plan].Channel[i] > max_chan)
+ break;
+ GET_DOT11D_INFO(ieee)->channel_map[ChannelPlan[channel_plan].Channel[i]] = 1;
+ }
+ }
+
+ switch (channel_plan) {
+ case COUNTRY_CODE_GLOBAL_DOMAIN:
+ ieee->bGlobalDomain = true;
+ for (i = 12; i <= 14; i++) {
+ GET_DOT11D_INFO(ieee)->channel_map[i] = 2;
+ }
+ ieee->IbssStartChnl= 10;
+ ieee->ibss_maxjoin_chal = 11;
+ break;
+
+ case COUNTRY_CODE_WORLD_WIDE_13:
+ for (i = 12; i <= 13; i++) {
+ GET_DOT11D_INFO(ieee)->channel_map[i] = 2;
+ }
+ ieee->IbssStartChnl = 10;
+ ieee->ibss_maxjoin_chal = 11;
+ break;
+
+ default:
+ ieee->IbssStartChnl = 1;
+ ieee->ibss_maxjoin_chal = 14;
+ break;
+ }
+}
+
+
+void Dot11d_Reset(struct rtllib_device *ieee)
+{
+ PRT_DOT11D_INFO pDot11dInfo = GET_DOT11D_INFO(ieee);
+#if 0
+ if(!pDot11dInfo->bEnabled)
+ return;
+#endif
+
+#ifndef CONFIG_CRDA
+ u32 i;
+ memset(pDot11dInfo->channel_map, 0, MAX_CHANNEL_NUMBER+1);
+ memset(pDot11dInfo->MaxTxPwrDbmList, 0xFF, MAX_CHANNEL_NUMBER+1);
+ for (i=1; i<=11; i++) {
+ (pDot11dInfo->channel_map)[i] = 1;
+ }
+ for (i=12; i<=14; i++) {
+ (pDot11dInfo->channel_map)[i] = 2;
+ }
+#endif
+ pDot11dInfo->State = DOT11D_STATE_NONE;
+ pDot11dInfo->CountryIeLen = 0;
+ RESET_CIE_WATCHDOG(ieee);
+
+}
+
+void Dot11d_UpdateCountryIe(struct rtllib_device *dev, u8 *pTaddr,
+ u16 CoutryIeLen, u8* pCoutryIe)
+{
+ PRT_DOT11D_INFO pDot11dInfo = GET_DOT11D_INFO(dev);
+#ifdef CONFIG_CRDA
+
+#else
+ u8 i, j, NumTriples, MaxChnlNum;
+ PCHNL_TXPOWER_TRIPLE pTriple;
+
+ memset(pDot11dInfo->channel_map, 0, MAX_CHANNEL_NUMBER+1);
+ memset(pDot11dInfo->MaxTxPwrDbmList, 0xFF, MAX_CHANNEL_NUMBER+1);
+ MaxChnlNum = 0;
+ NumTriples = (CoutryIeLen - 3) / 3;
+ pTriple = (PCHNL_TXPOWER_TRIPLE)(pCoutryIe + 3);
+ for(i = 0; i < NumTriples; i++)
+ {
+ if(MaxChnlNum >= pTriple->FirstChnl)
+ {
+ printk("Dot11d_UpdateCountryIe(): Invalid country IE, skip it........1\n");
+ return;
+ }
+ if(MAX_CHANNEL_NUMBER < (pTriple->FirstChnl + pTriple->NumChnls))
+ {
+ printk("Dot11d_UpdateCountryIe(): Invalid country IE, skip it........2\n");
+ return;
+ }
+
+ for(j = 0 ; j < pTriple->NumChnls; j++)
+ {
+ pDot11dInfo->channel_map[pTriple->FirstChnl + j] = 1;
+ pDot11dInfo->MaxTxPwrDbmList[pTriple->FirstChnl + j] = pTriple->MaxTxPowerInDbm;
+ MaxChnlNum = pTriple->FirstChnl + j;
+ }
+
+ pTriple = (PCHNL_TXPOWER_TRIPLE)((u8*)pTriple + 3);
+ }
+#if 0
+ printk("Channel List:");
+ for(i=1; i<= MAX_CHANNEL_NUMBER; i++)
+ if(pDot11dInfo->channel_map[i] > 0)
+ printk(" %d", i);
+ printk("\n");
+#endif
+#endif
+
+ UPDATE_CIE_SRC(dev, pTaddr);
+
+ pDot11dInfo->CountryIeLen = CoutryIeLen;
+ memcpy(pDot11dInfo->CountryIeBuf, pCoutryIe,CoutryIeLen);
+ pDot11dInfo->State = DOT11D_STATE_LEARNED;
+
+#ifdef CONFIG_CRDA
+ queue_delayed_work_rsl(dev->wq, &dev->softmac_hint11d_wq, 0);
+#endif
+}
+
+u8 DOT11D_GetMaxTxPwrInDbm( struct rtllib_device *dev, u8 Channel)
+{
+ PRT_DOT11D_INFO pDot11dInfo = GET_DOT11D_INFO(dev);
+ u8 MaxTxPwrInDbm = 255;
+
+ if(MAX_CHANNEL_NUMBER < Channel)
+ {
+ printk("DOT11D_GetMaxTxPwrInDbm(): Invalid Channel\n");
+ return MaxTxPwrInDbm;
+ }
+ if(pDot11dInfo->channel_map[Channel])
+ {
+ MaxTxPwrInDbm = pDot11dInfo->MaxTxPwrDbmList[Channel];
+ }
+
+ return MaxTxPwrInDbm;
+}
+
+void DOT11D_ScanComplete( struct rtllib_device * dev)
+{
+ PRT_DOT11D_INFO pDot11dInfo = GET_DOT11D_INFO(dev);
+
+ switch(pDot11dInfo->State)
+ {
+ case DOT11D_STATE_LEARNED:
+ pDot11dInfo->State = DOT11D_STATE_DONE;
+ break;
+
+ case DOT11D_STATE_DONE:
+ {
+ Dot11d_Reset(dev);
+ }
+ break;
+ case DOT11D_STATE_NONE:
+ break;
+ }
+}
+
+int ToLegalChannel( struct rtllib_device * dev, u8 channel)
+{
+ PRT_DOT11D_INFO pDot11dInfo = GET_DOT11D_INFO(dev);
+ u8 default_chn = 0;
+ u32 i = 0;
+
+ for (i=1; i<= MAX_CHANNEL_NUMBER; i++)
+ {
+ if(pDot11dInfo->channel_map[i] > 0)
+ {
+ default_chn = i;
+ break;
+ }
+ }
+
+ if(MAX_CHANNEL_NUMBER < channel)
+ {
+ printk("%s(): Invalid Channel\n", __FUNCTION__);
+ return default_chn;
+ }
+
+ if(pDot11dInfo->channel_map[channel] > 0)
+ return channel;
+
+ return default_chn;
+}
+
+#ifndef BUILT_IN_RTLLIB
+EXPORT_SYMBOL_RSL(Dot11d_Init);
+EXPORT_SYMBOL_RSL(Dot11d_Channelmap);
+EXPORT_SYMBOL_RSL(Dot11d_Reset);
+EXPORT_SYMBOL_RSL(Dot11d_UpdateCountryIe);
+EXPORT_SYMBOL_RSL(DOT11D_GetMaxTxPwrInDbm);
+EXPORT_SYMBOL_RSL(DOT11D_ScanComplete);
+EXPORT_SYMBOL_RSL(ToLegalChannel);
+#endif
+
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/dot11d.h b/ubuntu/rtl8192se/rtllib/dot11d.h
new file mode 100755
index 00000000000..6bf25c0c696
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/dot11d.h
@@ -0,0 +1,83 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef __INC_DOT11D_H
+#define __INC_DOT11D_H
+
+#ifdef ENABLE_DOT11D
+#include "rtllib.h"
+
+
+
+typedef struct _CHNL_TXPOWER_TRIPLE {
+ u8 FirstChnl;
+ u8 NumChnls;
+ u8 MaxTxPowerInDbm;
+}CHNL_TXPOWER_TRIPLE, *PCHNL_TXPOWER_TRIPLE;
+
+typedef enum _DOT11D_STATE {
+ DOT11D_STATE_NONE = 0,
+ DOT11D_STATE_LEARNED,
+ DOT11D_STATE_DONE,
+}DOT11D_STATE;
+
+typedef struct _RT_DOT11D_INFO {
+
+ bool bEnabled;
+
+ u16 CountryIeLen;
+ u8 CountryIeBuf[MAX_IE_LEN];
+ u8 CountryIeSrcAddr[6];
+ u8 CountryIeWatchdog;
+
+ u8 channel_map[MAX_CHANNEL_NUMBER+1];
+ u8 MaxTxPwrDbmList[MAX_CHANNEL_NUMBER+1];
+
+ DOT11D_STATE State;
+}RT_DOT11D_INFO, *PRT_DOT11D_INFO;
+#define eqMacAddr(a,b) ( ((a)[0]==(b)[0] && (a)[1]==(b)[1] && (a)[2]==(b)[2] && (a)[3]==(b)[3] && (a)[4]==(b)[4] && (a)[5]==(b)[5]) ? 1:0 )
+#define cpMacAddr(des,src) ((des)[0]=(src)[0],(des)[1]=(src)[1],(des)[2]=(src)[2],(des)[3]=(src)[3],(des)[4]=(src)[4],(des)[5]=(src)[5])
+#define GET_DOT11D_INFO(__pIeeeDev) ((PRT_DOT11D_INFO)((__pIeeeDev)->pDot11dInfo))
+
+#define IS_DOT11D_ENABLE(__pIeeeDev) GET_DOT11D_INFO(__pIeeeDev)->bEnabled
+#define IS_COUNTRY_IE_VALID(__pIeeeDev) (GET_DOT11D_INFO(__pIeeeDev)->CountryIeLen > 0)
+
+#define IS_EQUAL_CIE_SRC(__pIeeeDev, __pTa) eqMacAddr(GET_DOT11D_INFO(__pIeeeDev)->CountryIeSrcAddr, __pTa)
+#define UPDATE_CIE_SRC(__pIeeeDev, __pTa) cpMacAddr(GET_DOT11D_INFO(__pIeeeDev)->CountryIeSrcAddr, __pTa)
+
+#define IS_COUNTRY_IE_CHANGED(__pIeeeDev, __Ie) \
+ (((__Ie).Length == 0 || (__Ie).Length != GET_DOT11D_INFO(__pIeeeDev)->CountryIeLen) ? \
+ false : \
+ (!memcmp(GET_DOT11D_INFO(__pIeeeDev)->CountryIeBuf, (__Ie).Octet, (__Ie).Length)))
+
+#define CIE_WATCHDOG_TH 1
+#define GET_CIE_WATCHDOG(__pIeeeDev) GET_DOT11D_INFO(__pIeeeDev)->CountryIeWatchdog
+#define RESET_CIE_WATCHDOG(__pIeeeDev) GET_CIE_WATCHDOG(__pIeeeDev) = 0
+#define UPDATE_CIE_WATCHDOG(__pIeeeDev) ++GET_CIE_WATCHDOG(__pIeeeDev)
+
+#define IS_DOT11D_STATE_DONE(__pIeeeDev) (GET_DOT11D_INFO(__pIeeeDev)->State == DOT11D_STATE_DONE)
+
+void Dot11d_Init( struct rtllib_device *dev);
+void Dot11d_Channelmap(u8 channel_plan, struct rtllib_device* ieee);
+void Dot11d_Reset(struct rtllib_device *dev);
+void Dot11d_UpdateCountryIe(struct rtllib_device *dev, u8 *pTaddr, u16 CoutryIeLen, u8 *pCoutryIe);
+u8 DOT11D_GetMaxTxPwrInDbm(struct rtllib_device *dev, u8 Channel);
+void DOT11D_ScanComplete(struct rtllib_device *dev);
+int ToLegalChannel(struct rtllib_device *dev, u8 channel);
+#endif
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/internal.h b/ubuntu/rtl8192se/rtllib/internal.h
new file mode 100755
index 00000000000..57d0813c74e
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/internal.h
@@ -0,0 +1,130 @@
+/*
+ * Cryptographic API.
+ *
+ * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ */
+#ifndef _CRYPTO_INTERNAL_H
+#define _CRYPTO_INTERNAL_H
+
+
+#include <linux/version.h>
+#include "rtl_crypto.h"
+#include <linux/mm.h>
+#include <linux/highmem.h>
+#include <linux/init.h>
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12))
+#include <asm/hardirq.h>
+#else
+#include <linux/hardirq.h>
+#include <linux/sched.h>
+#endif
+#include <asm/kmap_types.h>
+
+#ifdef BUILT_IN_CRYPTO
+#ifdef CONFIG_CRYPTO_HMAC
+#undef CONFIG_CRYPTO_HMAC
+#endif
+
+#ifdef CONFIG_KMOD
+#undef CONFIG_KMOD
+#endif
+#endif /* BUILT_IN_CRYPTO */
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,20))
+#define list_for_each_entry(pos, head, member) \
+ for (pos = list_entry((head)->next, typeof(*pos), member), \
+ prefetch(pos->member.next); \
+ &pos->member != (head); \
+ pos = list_entry(pos->member.next, typeof(*pos), member), \
+ prefetch(pos->member.next))
+
+static inline void cond_resched(void)
+{
+ if (need_resched()) {
+ set_current_state(TASK_RUNNING);
+ schedule();
+ }
+}
+#endif
+
+extern enum km_type crypto_km_types[];
+
+static inline enum km_type crypto_kmap_type(int out)
+{
+ return crypto_km_types[(in_softirq() ? 2 : 0) + out];
+}
+
+static inline void *crypto_kmap(struct page *page, int out)
+{
+ return kmap_atomic(page, crypto_kmap_type(out));
+}
+
+static inline void crypto_kunmap(void *vaddr, int out)
+{
+ kunmap_atomic(vaddr, crypto_kmap_type(out));
+}
+
+static inline void crypto_yield(struct crypto_tfm *tfm)
+{
+ if (!in_softirq())
+ cond_resched();
+}
+
+static inline void *crypto_tfm_ctx(struct crypto_tfm *tfm)
+{
+ return (void *)&tfm[1];
+}
+
+struct crypto_alg *crypto_alg_lookup(const char *name);
+
+#ifdef CONFIG_KMOD
+void crypto_alg_autoload(const char *name);
+struct crypto_alg *crypto_alg_mod_lookup(const char *name);
+#else
+static inline struct crypto_alg *crypto_alg_mod_lookup(const char *name)
+{
+ return crypto_alg_lookup(name);
+}
+#endif
+
+#ifdef CONFIG_CRYPTO_HMAC
+int crypto_alloc_hmac_block(struct crypto_tfm *tfm);
+void crypto_free_hmac_block(struct crypto_tfm *tfm);
+#else
+static inline int crypto_alloc_hmac_block(struct crypto_tfm *tfm)
+{
+ return 0;
+}
+
+static inline void crypto_free_hmac_block(struct crypto_tfm *tfm)
+{ }
+#endif
+
+#ifdef CONFIG_PROC_FS
+void __init crypto_init_proc(void);
+#else
+static inline void crypto_init_proc(void)
+{ }
+#endif
+
+int crypto_init_digest_flags(struct crypto_tfm *tfm, u32 flags);
+int crypto_init_cipher_flags(struct crypto_tfm *tfm, u32 flags);
+int crypto_init_compress_flags(struct crypto_tfm *tfm, u32 flags);
+
+int crypto_init_digest_ops(struct crypto_tfm *tfm);
+int crypto_init_cipher_ops(struct crypto_tfm *tfm);
+int crypto_init_compress_ops(struct crypto_tfm *tfm);
+
+void crypto_exit_digest_ops(struct crypto_tfm *tfm);
+void crypto_exit_cipher_ops(struct crypto_tfm *tfm);
+void crypto_exit_compress_ops(struct crypto_tfm *tfm);
+
+#endif /* _CRYPTO_INTERNAL_H */
+
diff --git a/ubuntu/rtl8192se/rtllib/kmap_types.h b/ubuntu/rtl8192se/rtllib/kmap_types.h
new file mode 100755
index 00000000000..de67bb01b5f
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/kmap_types.h
@@ -0,0 +1,20 @@
+#ifndef __KMAP_TYPES_H
+
+#define __KMAP_TYPES_H
+
+
+enum km_type {
+ KM_BOUNCE_READ,
+ KM_SKB_SUNRPC_DATA,
+ KM_SKB_DATA_SOFTIRQ,
+ KM_USER0,
+ KM_USER1,
+ KM_BH_IRQ,
+ KM_SOFTIRQ0,
+ KM_SOFTIRQ1,
+ KM_TYPE_NR
+};
+
+#define _ASM_KMAP_TYPES_H
+
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/license b/ubuntu/rtl8192se/rtllib/license
new file mode 100755
index 00000000000..740c606d8b1
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/license
@@ -0,0 +1,339 @@
+
+"This software program is licensed subject to the GNU General Public License
+(GPL). Version 2, June 1991, available at
+<http:
+
+GNU General Public License
+
+Version 2, June 1991
+
+Copyright (C) 1989, 1991 Free Software Foundation, Inc.
+59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+
+Everyone is permitted to copy and distribute verbatim copies of this license
+document, but changing it is not allowed.
+
+Preamble
+
+The licenses for most software are designed to take away your freedom to
+share and change it. By contrast, the GNU General Public License is intended
+to guarantee your freedom to share and change free software--to make sure
+the software is free for all its users. This General Public License applies
+to most of the Free Software Foundation's software and to any other program
+whose authors commit to using it. (Some other Free Software Foundation
+software is covered by the GNU Library General Public License instead.) You
+can apply it to your programs, too.
+
+When we speak of free software, we are referring to freedom, not price. Our
+General Public Licenses are designed to make sure that you have the freedom
+to distribute copies of free software (and charge for this service if you
+wish), that you receive source code or can get it if you want it, that you
+can change the software or use pieces of it in new free programs; and that
+you know you can do these things.
+
+To protect your rights, we need to make restrictions that forbid anyone to
+deny you these rights or to ask you to surrender the rights. These
+restrictions translate to certain responsibilities for you if you distribute
+copies of the software, or if you modify it.
+
+For example, if you distribute copies of such a program, whether gratis or
+for a fee, you must give the recipients all the rights that you have. You
+must make sure that they, too, receive or can get the source code. And you
+must show them these terms so they know their rights.
+
+We protect your rights with two steps: (1) copyright the software, and (2)
+offer you this license which gives you legal permission to copy, distribute
+and/or modify the software.
+
+Also, for each author's protection and ours, we want to make certain that
+everyone understands that there is no warranty for this free software. If
+the software is modified by someone else and passed on, we want its
+recipients to know that what they have is not the original, so that any
+problems introduced by others will not reflect on the original authors'
+reputations.
+
+Finally, any free program is threatened constantly by software patents. We
+wish to avoid the danger that redistributors of a free program will
+individually obtain patent licenses, in effect making the program
+proprietary. To prevent this, we have made it clear that any patent must be
+licensed for everyone's free use or not licensed at all.
+
+The precise terms and conditions for copying, distribution and modification
+follow.
+
+TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+0. This License applies to any program or other work which contains a notice
+ placed by the copyright holder saying it may be distributed under the
+ terms of this General Public License. The "Program", below, refers to any
+ such program or work, and a "work based on the Program" means either the
+ Program or any derivative work under copyright law: that is to say, a
+ work containing the Program or a portion of it, either verbatim or with
+ modifications and/or translated into another language. (Hereinafter,
+ translation is included without limitation in the term "modification".)
+ Each licensee is addressed as "you".
+
+ Activities other than copying, distribution and modification are not
+ covered by this License; they are outside its scope. The act of running
+ the Program is not restricted, and the output from the Program is covered
+ only if its contents constitute a work based on the Program (independent
+ of having been made by running the Program). Whether that is true depends
+ on what the Program does.
+
+1. You may copy and distribute verbatim copies of the Program's source code
+ as you receive it, in any medium, provided that you conspicuously and
+ appropriately publish on each copy an appropriate copyright notice and
+ disclaimer of warranty; keep intact all the notices that refer to this
+ License and to the absence of any warranty; and give any other recipients
+ of the Program a copy of this License along with the Program.
+
+ You may charge a fee for the physical act of transferring a copy, and you
+ may at your option offer warranty protection in exchange for a fee.
+
+2. You may modify your copy or copies of the Program or any portion of it,
+ thus forming a work based on the Program, and copy and distribute such
+ modifications or work under the terms of Section 1 above, provided that
+ you also meet all of these conditions:
+
+ * a) You must cause the modified files to carry prominent notices stating
+ that you changed the files and the date of any change.
+
+ * b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any part
+ thereof, to be licensed as a whole at no charge to all third parties
+ under the terms of this License.
+
+ * c) If the modified program normally reads commands interactively when
+ run, you must cause it, when started running for such interactive
+ use in the most ordinary way, to print or display an announcement
+ including an appropriate copyright notice and a notice that there is
+ no warranty (or else, saying that you provide a warranty) and that
+ users may redistribute the program under these conditions, and
+ telling the user how to view a copy of this License. (Exception: if
+ the Program itself is interactive but does not normally print such
+ an announcement, your work based on the Program is not required to
+ print an announcement.)
+
+ These requirements apply to the modified work as a whole. If identifiable
+ sections of that work are not derived from the Program, and can be
+ reasonably considered independent and separate works in themselves, then
+ this License, and its terms, do not apply to those sections when you
+ distribute them as separate works. But when you distribute the same
+ sections as part of a whole which is a work based on the Program, the
+ distribution of the whole must be on the terms of this License, whose
+ permissions for other licensees extend to the entire whole, and thus to
+ each and every part regardless of who wrote it.
+
+ Thus, it is not the intent of this section to claim rights or contest
+ your rights to work written entirely by you; rather, the intent is to
+ exercise the right to control the distribution of derivative or
+ collective works based on the Program.
+
+ In addition, mere aggregation of another work not based on the Program
+ with the Program (or with a work based on the Program) on a volume of a
+ storage or distribution medium does not bring the other work under the
+ scope of this License.
+
+3. You may copy and distribute the Program (or a work based on it, under
+ Section 2) in object code or executable form under the terms of Sections
+ 1 and 2 above provided that you also do one of the following:
+
+ * a) Accompany it with the complete corresponding machine-readable source
+ code, which must be distributed under the terms of Sections 1 and 2
+ above on a medium customarily used for software interchange; or,
+
+ * b) Accompany it with a written offer, valid for at least three years,
+ to give any third party, for a charge no more than your cost of
+ physically performing source distribution, a complete machine-
+ readable copy of the corresponding source code, to be distributed
+ under the terms of Sections 1 and 2 above on a medium customarily
+ used for software interchange; or,
+
+ * c) Accompany it with the information you received as to the offer to
+ distribute corresponding source code. (This alternative is allowed
+ only for noncommercial distribution and only if you received the
+ program in object code or executable form with such an offer, in
+ accord with Subsection b above.)
+
+ The source code for a work means the preferred form of the work for
+ making modifications to it. For an executable work, complete source code
+ means all the source code for all modules it contains, plus any
+ associated interface definition files, plus the scripts used to control
+ compilation and installation of the executable. However, as a special
+ exception, the source code distributed need not include anything that is
+ normally distributed (in either source or binary form) with the major
+ components (compiler, kernel, and so on) of the operating system on which
+ the executable runs, unless that component itself accompanies the
+ executable.
+
+ If distribution of executable or object code is made by offering access
+ to copy from a designated place, then offering equivalent access to copy
+ the source code from the same place counts as distribution of the source
+ code, even though third parties are not compelled to copy the source
+ along with the object code.
+
+4. You may not copy, modify, sublicense, or distribute the Program except as
+ expressly provided under this License. Any attempt otherwise to copy,
+ modify, sublicense or distribute the Program is void, and will
+ automatically terminate your rights under this License. However, parties
+ who have received copies, or rights, from you under this License will not
+ have their licenses terminated so long as such parties remain in full
+ compliance.
+
+5. You are not required to accept this License, since you have not signed
+ it. However, nothing else grants you permission to modify or distribute
+ the Program or its derivative works. These actions are prohibited by law
+ if you do not accept this License. Therefore, by modifying or
+ distributing the Program (or any work based on the Program), you
+ indicate your acceptance of this License to do so, and all its terms and
+ conditions for copying, distributing or modifying the Program or works
+ based on it.
+
+6. Each time you redistribute the Program (or any work based on the
+ Program), the recipient automatically receives a license from the
+ original licensor to copy, distribute or modify the Program subject to
+ these terms and conditions. You may not impose any further restrictions
+ on the recipients' exercise of the rights granted herein. You are not
+ responsible for enforcing compliance by third parties to this License.
+
+7. If, as a consequence of a court judgment or allegation of patent
+ infringement or for any other reason (not limited to patent issues),
+ conditions are imposed on you (whether by court order, agreement or
+ otherwise) that contradict the conditions of this License, they do not
+ excuse you from the conditions of this License. If you cannot distribute
+ so as to satisfy simultaneously your obligations under this License and
+ any other pertinent obligations, then as a consequence you may not
+ distribute the Program at all. For example, if a patent license would
+ not permit royalty-free redistribution of the Program by all those who
+ receive copies directly or indirectly through you, then the only way you
+ could satisfy both it and this License would be to refrain entirely from
+ distribution of the Program.
+
+ If any portion of this section is held invalid or unenforceable under any
+ particular circumstance, the balance of the section is intended to apply
+ and the section as a whole is intended to apply in other circumstances.
+
+ It is not the purpose of this section to induce you to infringe any
+ patents or other property right claims or to contest validity of any
+ such claims; this section has the sole purpose of protecting the
+ integrity of the free software distribution system, which is implemented
+ by public license practices. Many people have made generous contributions
+ to the wide range of software distributed through that system in
+ reliance on consistent application of that system; it is up to the
+ author/donor to decide if he or she is willing to distribute software
+ through any other system and a licensee cannot impose that choice.
+
+ This section is intended to make thoroughly clear what is believed to be
+ a consequence of the rest of this License.
+
+8. If the distribution and/or use of the Program is restricted in certain
+ countries either by patents or by copyrighted interfaces, the original
+ copyright holder who places the Program under this License may add an
+ explicit geographical distribution limitation excluding those countries,
+ so that distribution is permitted only in or among countries not thus
+ excluded. In such case, this License incorporates the limitation as if
+ written in the body of this License.
+
+9. The Free Software Foundation may publish revised and/or new versions of
+ the General Public License from time to time. Such new versions will be
+ similar in spirit to the present version, but may differ in detail to
+ address new problems or concerns.
+
+ Each version is given a distinguishing version number. If the Program
+ specifies a version number of this License which applies to it and "any
+ later version", you have the option of following the terms and
+ conditions either of that version or of any later version published by
+ the Free Software Foundation. If the Program does not specify a version
+ number of this License, you may choose any version ever published by the
+ Free Software Foundation.
+
+10. If you wish to incorporate parts of the Program into other free programs
+ whose distribution conditions are different, write to the author to ask
+ for permission. For software which is copyrighted by the Free Software
+ Foundation, write to the Free Software Foundation; we sometimes make
+ exceptions for this. Our decision will be guided by the two goals of
+ preserving the free status of all derivatives of our free software and
+ of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+ FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+ OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+ PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
+ EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE
+ ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH
+ YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL
+ NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+ REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR
+ DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL
+ DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM
+ (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED
+ INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF
+ THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR
+ OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+END OF TERMS AND CONDITIONS
+
+How to Apply These Terms to Your New Programs
+
+If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it free
+software which everyone can redistribute and change under these terms.
+
+To do so, attach the following notices to the program. It is safest to
+attach them to the start of each source file to most effectively convey the
+exclusion of warranty; and each file should have at least the "copyright"
+line and a pointer to where the full notice is found.
+
+one line to give the program's name and an idea of what it does.
+Copyright (C) yyyy name of author
+
+This program is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 2 of the License, or (at your option)
+any later version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT
+ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+more details.
+
+You should have received a copy of the GNU General Public License along with
+this program; if not, write to the Free Software Foundation, Inc., 59
+Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this when
+it starts in an interactive mode:
+
+Gnomovision version 69, Copyright (C) year name of author Gnomovision comes
+with ABSOLUTELY NO WARRANTY; for details type 'show w'. This is free
+software, and you are welcome to redistribute it under certain conditions;
+type 'show c' for details.
+
+The hypothetical commands 'show w' and 'show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may be
+called something other than 'show w' and 'show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+'Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+signature of Ty Coon, 1 April 1989
+Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Library General Public
+License instead of this License.
diff --git a/ubuntu/rtl8192se/rtllib/michael_mic.c b/ubuntu/rtl8192se/rtllib/michael_mic.c
new file mode 100755
index 00000000000..a1b68be5253
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/michael_mic.c
@@ -0,0 +1,194 @@
+/*
+ * Cryptographic API
+ *
+ * Michael MIC (IEEE 802.11i/TKIP) keyed digest
+ *
+ * Copyright (c) 2004 Jouni Malinen <jkmaline@cc.hut.fi>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/string.h>
+#include "rtl_crypto.h"
+
+
+struct michael_mic_ctx {
+ u8 pending[4];
+ size_t pending_len;
+
+ u32 l, r;
+};
+
+
+static inline u32 rotl(u32 val, int bits)
+{
+ return (val << bits) | (val >> (32 - bits));
+}
+
+
+static inline u32 rotr(u32 val, int bits)
+{
+ return (val >> bits) | (val << (32 - bits));
+}
+
+
+static inline u32 xswap(u32 val)
+{
+ return ((val & 0x00ff00ff) << 8) | ((val & 0xff00ff00) >> 8);
+}
+
+
+#define michael_block(l, r) \
+do { \
+ r ^= rotl(l, 17); \
+ l += r; \
+ r ^= xswap(l); \
+ l += r; \
+ r ^= rotl(l, 3); \
+ l += r; \
+ r ^= rotr(l, 2); \
+ l += r; \
+} while (0)
+
+
+static inline u32 get_le32(const u8 *p)
+{
+ return p[0] | (p[1] << 8) | (p[2] << 16) | (p[3] << 24);
+}
+
+
+static inline void put_le32(u8 *p, u32 v)
+{
+ p[0] = v;
+ p[1] = v >> 8;
+ p[2] = v >> 16;
+ p[3] = v >> 24;
+}
+
+
+static void michael_init(void *ctx)
+{
+ struct michael_mic_ctx *mctx = ctx;
+ mctx->pending_len = 0;
+}
+
+
+static void michael_update(void *ctx, const u8 *data, unsigned int len)
+{
+ struct michael_mic_ctx *mctx = ctx;
+
+ if (mctx->pending_len) {
+ int flen = 4 - mctx->pending_len;
+ if (flen > len)
+ flen = len;
+ memcpy(&mctx->pending[mctx->pending_len], data, flen);
+ mctx->pending_len += flen;
+ data += flen;
+ len -= flen;
+
+ if (mctx->pending_len < 4)
+ return;
+
+ mctx->l ^= get_le32(mctx->pending);
+ michael_block(mctx->l, mctx->r);
+ mctx->pending_len = 0;
+ }
+
+ while (len >= 4) {
+ mctx->l ^= get_le32(data);
+ michael_block(mctx->l, mctx->r);
+ data += 4;
+ len -= 4;
+ }
+
+ if (len > 0) {
+ mctx->pending_len = len;
+ memcpy(mctx->pending, data, len);
+ }
+}
+
+
+static void michael_final(void *ctx, u8 *out)
+{
+ struct michael_mic_ctx *mctx = ctx;
+ u8 *data = mctx->pending;
+
+ /* Last block and padding (0x5a, 4..7 x 0) */
+ switch (mctx->pending_len) {
+ case 0:
+ mctx->l ^= 0x5a;
+ break;
+ case 1:
+ mctx->l ^= data[0] | 0x5a00;
+ break;
+ case 2:
+ mctx->l ^= data[0] | (data[1] << 8) | 0x5a0000;
+ break;
+ case 3:
+ mctx->l ^= data[0] | (data[1] << 8) | (data[2] << 16) |
+ 0x5a000000;
+ break;
+ }
+ michael_block(mctx->l, mctx->r);
+ /* l ^= 0; */
+ michael_block(mctx->l, mctx->r);
+
+ put_le32(out, mctx->l);
+ put_le32(out + 4, mctx->r);
+}
+
+
+static int michael_setkey(void *ctx, const u8 *key, unsigned int keylen,
+ u32 *flags)
+{
+ struct michael_mic_ctx *mctx = ctx;
+ if (keylen != 8) {
+ if (flags)
+ *flags = CRYPTO_TFM_RES_BAD_KEY_LEN;
+ return -EINVAL;
+ }
+ mctx->l = get_le32(key);
+ mctx->r = get_le32(key + 4);
+ return 0;
+}
+
+
+static struct crypto_alg michael_mic_alg = {
+ .cra_name = "michael_mic",
+ .cra_flags = CRYPTO_ALG_TYPE_DIGEST,
+ .cra_blocksize = 8,
+ .cra_ctxsize = sizeof(struct michael_mic_ctx),
+ .cra_module = THIS_MODULE,
+ .cra_list = LIST_HEAD_INIT(michael_mic_alg.cra_list),
+ .cra_u = { .digest = {
+ .dia_digestsize = 8,
+ .dia_init = michael_init,
+ .dia_update = michael_update,
+ .dia_final = michael_final,
+ .dia_setkey = michael_setkey } }
+};
+
+
+int __init michael_mic_init(void)
+{
+ return crypto_register_alg(&michael_mic_alg);
+}
+
+
+void __exit michael_mic_exit(void)
+{
+ crypto_unregister_alg(&michael_mic_alg);
+}
+
+#ifndef BUILT_IN_CRYPTO
+module_init(michael_mic_init);
+module_exit(michael_mic_exit);
+
+MODULE_LICENSE("GPL v2");
+MODULE_DESCRIPTION("Michael MIC");
+MODULE_AUTHOR("Jouni Malinen <jkmaline@cc.hut.fi>");
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/proc.c b/ubuntu/rtl8192se/rtllib/proc.c
new file mode 100755
index 00000000000..3b84cb36c16
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/proc.c
@@ -0,0 +1,115 @@
+/*
+ * Scatterlist Cryptographic API.
+ *
+ * Procfs information.
+ *
+ * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ */
+#include <linux/init.h>
+#include "rtl_crypto.h"
+#include <linux/rwsem.h>
+#include <linux/proc_fs.h>
+#include <linux/seq_file.h>
+#include "internal.h"
+
+extern struct list_head crypto_alg_list;
+extern struct rw_semaphore crypto_alg_sem;
+
+static void *c_start(struct seq_file *m, loff_t *pos)
+{
+ struct list_head *v;
+ loff_t n = *pos;
+
+ down_read(&crypto_alg_sem);
+ list_for_each(v, &crypto_alg_list)
+ if (!n--)
+ return list_entry(v, struct crypto_alg, cra_list);
+ return NULL;
+}
+
+static void *c_next(struct seq_file *m, void *p, loff_t *pos)
+{
+ struct list_head *v = p;
+
+ (*pos)++;
+ v = v->next;
+ return (v == &crypto_alg_list) ?
+ NULL : list_entry(v, struct crypto_alg, cra_list);
+}
+
+static void c_stop(struct seq_file *m, void *p)
+{
+ up_read(&crypto_alg_sem);
+}
+
+static int c_show(struct seq_file *m, void *p)
+{
+ struct crypto_alg *alg = (struct crypto_alg *)p;
+
+ seq_printf(m, "name : %s\n", alg->cra_name);
+ seq_printf(m, "module : %s\n",
+ (alg->cra_module ?
+ alg->cra_module->name :
+ "kernel"));
+
+ switch (alg->cra_flags & CRYPTO_ALG_TYPE_MASK) {
+ case CRYPTO_ALG_TYPE_CIPHER:
+ seq_printf(m, "type : cipher\n");
+ seq_printf(m, "blocksize : %u\n", alg->cra_blocksize);
+ seq_printf(m, "min keysize : %u\n",
+ alg->cra_cipher.cia_min_keysize);
+ seq_printf(m, "max keysize : %u\n",
+ alg->cra_cipher.cia_max_keysize);
+ break;
+
+ case CRYPTO_ALG_TYPE_DIGEST:
+ seq_printf(m, "type : digest\n");
+ seq_printf(m, "blocksize : %u\n", alg->cra_blocksize);
+ seq_printf(m, "digestsize : %u\n",
+ alg->cra_digest.dia_digestsize);
+ break;
+ case CRYPTO_ALG_TYPE_COMPRESS:
+ seq_printf(m, "type : compression\n");
+ break;
+ default:
+ seq_printf(m, "type : unknown\n");
+ break;
+ }
+
+ seq_putc(m, '\n');
+ return 0;
+}
+
+static struct seq_operations crypto_seq_ops = {
+ .start = c_start,
+ .next = c_next,
+ .stop = c_stop,
+ .show = c_show
+};
+
+static int crypto_info_open(struct inode *inode, struct file *file)
+{
+ return seq_open(file, &crypto_seq_ops);
+}
+
+static struct file_operations proc_crypto_ops = {
+ .open = crypto_info_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = seq_release
+};
+
+void __init crypto_init_proc(void)
+{
+ struct proc_dir_entry *proc;
+
+ proc = create_proc_entry("crypto", 0, NULL);
+ if (proc)
+ proc->proc_fops = &proc_crypto_ops;
+}
diff --git a/ubuntu/rtl8192se/rtllib/readme b/ubuntu/rtl8192se/rtllib/readme
new file mode 100755
index 00000000000..18da457f64f
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/readme
@@ -0,0 +1,162 @@
+What this layer should do
+
+- It mantain the old mechanism as alternative, so the
+ ipw2100 driver works with really few changes.
+- Encapsulate / Decapsulate rtllib packet
+- Handle fragmentation
+- Optionally provide an alterantive mechanism for netif queue stop/wake,
+ so that the rtllib layer will pass one fragment per time instead of
+ one txb struct per time. so the driver can stop the queue in the middle
+ of a packet.
+- Provide two different TX interfaces for cards that can handle management
+ frames on one HW queue, and data on another, and for cards that have only
+ one HW queue (the latter untested and very, very rough).
+- Optionally provide the logic for handling IBSS/MASTER/MONITOR/BSS modes
+ and for the channel, essid and wap get/set wireless extension requests.
+ so that the driver has only to change channel when the ieee stack tell it.
+- Optionally provide a scanning mechanism so that the driver has not to
+ worry about this, just implement the set channel calback and pass
+ frames to the upper layer
+- Optionally provide the bss client protocol handshaking (just with open
+ authentication)
+- Optionally provide the probe request send mechanism
+- Optionally provide the bss master mode logic to handle association
+ protocol (only open authentication) and probe responses.
+- SW wep encryption (with open authentication)
+- It collects some stats
+- It provides beacons to the card when it ask for them
+
+What this layer doesn't do (yet)
+- Perform shared authentication
+- Have full support for master mode (the AP should loop back in the air
+ frames from an associated client to another. This could be done easily
+ with few lines of code, and it is done in my previous version of the
+ stach, but a table of association must be keept and a disassociation
+ policy must be decided and implemented.
+- Handle cleanly the full ieee 802.11 protocol. In AP mode it never
+ disassociate clients, and it is really prone to always allow access.
+ In bss client mode it is a bit rough with AP deauth and disassoc requests.
+- It has not any entry point to view the collected stats.
+- Altought it takes care of the card supported rates in the management frame
+ it sends, support for rate changing on TXed packet is not complete.
+- Give up once associated in bss client mode (it never detect a
+ signal loss condition to disassociate and restart scanning)
+- Provide a mechanism for enabling the TX in monitor mode, so
+ userspace programs can TX raw packets.
+- Provide a mechanism for cards that need that the SW take care of beacon
+ TX completely, in sense that the SW has to enqueue by itself beacons
+ to the card so it TX them (if any...)
+APIs
+
+Callback functions in the original stack has been mantained.
+following has been added (from rtllib.h)
+
+ /* Softmac-generated frames (mamagement) are TXed via this
+ * callback if the flag IEEE_SOFTMAC_SINGLE_QUEUE is
+ * not set. As some cards may have different HW queues that
+ * one might want to use for data and management frames
+ * the option to have two callbacks might be useful.
+ * This fucntion can't sleep.
+ */
+ int (*softmac_hard_start_xmit)(struct sk_buff *skb,
+ struct net_device *dev);
+
+ /* used instead of hard_start_xmit (not softmac_hard_start_xmit)
+ * if the IEEE_SOFTMAC_TX_QUEUE feature is used to TX data
+ * frames. I the option IEEE_SOFTMAC_SINGLE_QUEUE is also set
+ * then also management frames are sent via this callback.
+ * This function can't sleep.
+ */
+ void (*softmac_data_hard_start_xmit)(struct sk_buff *skb,
+ struct net_device *dev);
+
+ /* stops the HW queue for DATA frames. Useful to avoid
+ * waste time to TX data frame when we are reassociating
+ * This function can sleep.
+ */
+ void (*data_hard_stop)(struct net_device *dev);
+
+ /* OK this is complementar to data_poll_hard_stop */
+ void (*data_hard_resume)(struct net_device *dev);
+
+ /* ask to the driver to retune the radio .
+ * This function can sleep. the driver should ensure
+ * the radio has been swithced before return.
+ */
+ void (*set_chan)(struct net_device *dev,short ch);
+
+ /* These are not used if the ieee stack takes care of
+ * scanning (IEEE_SOFTMAC_SCAN feature set).
+ * In this case only the set_chan is used.
+ *
+ * The syncro version is similar to the start_scan but
+ * does not return until all channels has been scanned.
+ * this is called in user context and should sleep,
+ * it is called in a work_queue when swithcing to ad-hoc mode
+ * or in behalf of iwlist scan when the card is associated
+ * and root user ask for a scan.
+ * the fucntion stop_scan should stop both the syncro and
+ * background scanning and can sleep.
+ * The fucntion start_scan should initiate the background
+ * scanning and can't sleep.
+ */
+ void (*scan_syncro)(struct net_device *dev);
+ void (*start_scan)(struct net_device *dev);
+ void (*stop_scan)(struct net_device *dev);
+
+ /* indicate the driver that the link state is changed
+ * for example it may indicate the card is associated now.
+ * Driver might be interested in this to apply RX filter
+ * rules or simply light the LINK led
+ */
+ void (*link_change)(struct net_device *dev);
+
+Functions hard_data_[resume/stop] are optional and should not be used
+if the driver decides to uses data+management frames enqueue in a
+single HQ queue (thus using just the softmac_hard_data_start_xmit
+callback).
+
+Function that the driver can use are:
+
+rtllib_get_beacon - this is called by the driver when
+ the HW needs a beacon.
+rtllib_softmac_start_protocol - this should normally be called in the
+ driver open function
+rtllib_softmac_stop_protocol - the opposite of the above
+rtllib_wake_queue - this is similar to netif_wake_queue
+rtllib_reset_queue - this throw away fragments pending(if any)
+rtllib_stop_queue - this is similar to netif_stop_queue
+
+
+known BUGS:
+- When performing syncro scan (possiblily when swithcing to ad-hoc mode
+ and when running iwlist scan when associated) there is still an odd
+ behaviour.. I have not looked in this more accurately (yet).
+
+locking:
+locking is done by means of three structures.
+1- ieee->lock (by means of spin_[un]lock_irq[save/restore]
+2- ieee->wx_sem
+3- ieee->scan_sem
+
+the lock 1 is what protect most of the critical sections in the ieee stack.
+the lock 2 is used to avoid that more than one of the SET wireless extension
+handlers (as well as start/stop protocol function) are running at the same time.
+the lock 1 is used when we need to modify or read the shared data in the wx handlers.
+In other words the lock 2 will prevent one SET action will run across another SET
+action (by make sleep the 2nd one) but allow GET actions, while the lock 1
+make atomic those little shared data access in both GET and SET operation.
+So get operation will be never be delayed really: they will never sleep..
+Furthermore in the top of some SET operations a flag is set before acquiring
+the lock. This is an help to make the previous running SET operation to
+finish faster if needed (just in case the second one will totally undo the
+first, so there is not need to complete the 1st really.. ).
+The background scanning mechaninsm is protected by the lock 1 except for the
+workqueue. this wq is here just to let the set_chan callback sleep (I thinked it
+might be appreciated by USB network card driver developer). In this case the lock 3
+take its turn.
+Thus the stop function needs both the locks.
+Funny in the syncro scan the lock 2 play its role (as both the syncro_scan
+function and the stop scan function are called with this semaphore held).
+
+
diff --git a/ubuntu/rtl8192se/rtllib/rtl819x_BA.h b/ubuntu/rtl8192se/rtllib/rtl819x_BA.h
new file mode 100755
index 00000000000..edd23be495d
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtl819x_BA.h
@@ -0,0 +1,79 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef _BATYPE_H_
+#define _BATYPE_H_
+
+#define TOTAL_TXBA_NUM 16
+#define TOTAL_RXBA_NUM 16
+
+#define BA_SETUP_TIMEOUT 200
+#define BA_INACT_TIMEOUT 60000
+
+#define BA_POLICY_DELAYED 0
+#define BA_POLICY_IMMEDIATE 1
+
+#define ADDBA_STATUS_SUCCESS 0
+#define ADDBA_STATUS_REFUSED 37
+#define ADDBA_STATUS_INVALID_PARAM 38
+
+#define DELBA_REASON_QSTA_LEAVING 36
+#define DELBA_REASON_END_BA 37
+#define DELBA_REASON_UNKNOWN_BA 38
+#define DELBA_REASON_TIMEOUT 39
+typedef union _SEQUENCE_CONTROL{
+ u16 ShortData;
+ struct
+ {
+ u16 FragNum:4;
+ u16 SeqNum:12;
+ }field;
+}SEQUENCE_CONTROL, *PSEQUENCE_CONTROL;
+
+typedef union _BA_PARAM_SET {
+ u8 charData[2];
+ u16 shortData;
+ struct {
+ u16 AMSDU_Support:1;
+ u16 BAPolicy:1;
+ u16 TID:4;
+ u16 BufferSize:10;
+ } field;
+} BA_PARAM_SET, *PBA_PARAM_SET;
+
+typedef union _DELBA_PARAM_SET {
+ u8 charData[2];
+ u16 shortData;
+ struct {
+ u16 Reserved:11;
+ u16 Initiator:1;
+ u16 TID:4;
+ } field;
+} DELBA_PARAM_SET, *PDELBA_PARAM_SET;
+
+typedef struct _BA_RECORD {
+ struct timer_list Timer;
+ u8 bValid;
+ u8 DialogToken;
+ BA_PARAM_SET BaParamSet;
+ u16 BaTimeoutValue;
+ SEQUENCE_CONTROL BaStartSeqCtrl;
+} BA_RECORD, *PBA_RECORD;
+
+#endif
+
diff --git a/ubuntu/rtl8192se/rtllib/rtl819x_BAProc.c b/ubuntu/rtl8192se/rtllib/rtl819x_BAProc.c
new file mode 100755
index 00000000000..86e6e259d71
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtl819x_BAProc.c
@@ -0,0 +1,669 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#include "rtllib.h"
+#include "rtl819x_BA.h"
+#ifdef RTK_DMP_PLATFORM
+#include <linux/usb_setting.h>
+#endif
+
+void ActivateBAEntry(struct rtllib_device* ieee, PBA_RECORD pBA, u16 Time)
+{
+ pBA->bValid = true;
+ if(Time != 0)
+ mod_timer(&pBA->Timer, jiffies + MSECS(Time));
+}
+
+void DeActivateBAEntry( struct rtllib_device* ieee, PBA_RECORD pBA)
+{
+ pBA->bValid = false;
+ del_timer_sync(&pBA->Timer);
+}
+u8 TxTsDeleteBA( struct rtllib_device* ieee, PTX_TS_RECORD pTxTs)
+{
+ PBA_RECORD pAdmittedBa = &pTxTs->TxAdmittedBARecord;
+ PBA_RECORD pPendingBa = &pTxTs->TxPendingBARecord;
+ u8 bSendDELBA = false;
+
+ if(pPendingBa->bValid)
+ {
+ DeActivateBAEntry(ieee, pPendingBa);
+ bSendDELBA = true;
+ }
+
+ if(pAdmittedBa->bValid)
+ {
+ DeActivateBAEntry(ieee, pAdmittedBa);
+ bSendDELBA = true;
+ }
+
+ return bSendDELBA;
+}
+
+u8 RxTsDeleteBA( struct rtllib_device* ieee, PRX_TS_RECORD pRxTs)
+{
+ PBA_RECORD pBa = &pRxTs->RxAdmittedBARecord;
+ u8 bSendDELBA = false;
+
+ if(pBa->bValid)
+ {
+ DeActivateBAEntry(ieee, pBa);
+ bSendDELBA = true;
+ }
+
+ return bSendDELBA;
+}
+
+void ResetBaEntry( PBA_RECORD pBA)
+{
+ pBA->bValid = false;
+ pBA->BaParamSet.shortData = 0;
+ pBA->BaTimeoutValue = 0;
+ pBA->DialogToken = 0;
+ pBA->BaStartSeqCtrl.ShortData = 0;
+}
+static struct sk_buff* rtllib_ADDBA(struct rtllib_device* ieee, u8* Dst, PBA_RECORD pBA, u16 StatusCode, u8 type)
+{
+ struct sk_buff *skb = NULL;
+ struct rtllib_hdr_3addr* BAReq = NULL;
+ u8* tag = NULL;
+ u16 tmp = 0;
+ u16 len = ieee->tx_headroom + 9;
+ RTLLIB_DEBUG(RTLLIB_DL_TRACE | RTLLIB_DL_BA, "========>%s(), frame(%d) sentd to:"MAC_FMT", ieee->dev:%p\n", __FUNCTION__, type, MAC_ARG(Dst), ieee->dev);
+ if (pBA == NULL||ieee == NULL)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "pBA(%p) is NULL or ieee(%p) is NULL\n", pBA, ieee);
+ return NULL;
+ }
+#ifdef USB_USE_ALIGNMENT
+ u32 Tmpaddr=0;
+ int alignment=0;
+ skb = dev_alloc_skb(len + sizeof( struct rtllib_hdr_3addr) + USB_512B_ALIGNMENT_SIZE);
+#else
+ skb = dev_alloc_skb(len + sizeof( struct rtllib_hdr_3addr));
+#endif
+ if (skb == NULL)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't alloc skb for ADDBA_REQ\n");
+ return NULL;
+ }
+
+ memset(skb->data, 0, sizeof( struct rtllib_hdr_3addr));
+
+#ifdef USB_USE_ALIGNMENT
+ Tmpaddr = (u32)skb->data;
+ alignment = Tmpaddr & 0x1ff;
+ skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment));
+#endif
+
+ skb_reserve(skb, ieee->tx_headroom);
+
+ BAReq = ( struct rtllib_hdr_3addr *) skb_put(skb,sizeof( struct rtllib_hdr_3addr));
+
+ memcpy(BAReq->addr1, Dst, ETH_ALEN);
+ memcpy(BAReq->addr2, ieee->dev->dev_addr, ETH_ALEN);
+
+#ifdef _RTL8192_EXT_PATCH_
+ if((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0) && ieee->ext_patch_rtllib_is_mesh && ieee->ext_patch_rtllib_is_mesh(ieee, Dst)){
+#ifdef COMPATIBLE_WITH_RALINK_MESH
+ memcpy(BAReq->addr3, Dst, ETH_ALEN);
+#else
+ memcpy(BAReq->addr3, ieee->current_mesh_network.bssid, ETH_ALEN);
+#endif
+ }
+ else
+ memcpy(BAReq->addr3, ieee->current_network.bssid, ETH_ALEN);
+#else
+ memcpy(BAReq->addr3, ieee->current_network.bssid, ETH_ALEN);
+#endif
+ BAReq->frame_ctl = cpu_to_le16(RTLLIB_STYPE_MANAGE_ACT);
+
+ tag = (u8*)skb_put(skb, 9);
+ *tag ++= ACT_CAT_BA;
+ *tag ++= type;
+ *tag ++= pBA->DialogToken;
+
+ if (ACT_ADDBARSP == type)
+ {
+ printk("====>to send ADDBARSP\n");
+ tmp = cpu_to_le16(StatusCode);
+ memcpy(tag, (u8*)&tmp, 2);
+ tag += 2;
+ }
+ tmp = cpu_to_le16(pBA->BaParamSet.shortData);
+ memcpy(tag, (u8*)&tmp, 2);
+ tag += 2;
+ tmp = cpu_to_le16(pBA->BaTimeoutValue);
+ memcpy(tag, (u8*)&tmp, 2);
+ tag += 2;
+
+ if (ACT_ADDBAREQ == type)
+ {
+ memcpy(tag,(u8*)&(pBA->BaStartSeqCtrl), 2);
+ tag += 2;
+ }
+
+ RTLLIB_DEBUG_DATA(RTLLIB_DL_DATA|RTLLIB_DL_BA, skb->data, skb->len);
+ return skb;
+}
+
+static struct sk_buff* rtllib_DELBA(
+ struct rtllib_device* ieee,
+ u8* dst,
+ PBA_RECORD pBA,
+ TR_SELECT TxRxSelect,
+ u16 ReasonCode
+ )
+{
+ DELBA_PARAM_SET DelbaParamSet;
+ struct sk_buff *skb = NULL;
+ struct rtllib_hdr_3addr* Delba = NULL;
+ u8* tag = NULL;
+ u16 tmp = 0;
+ u16 len = 6 + ieee->tx_headroom;
+
+ if (net_ratelimit())
+ RTLLIB_DEBUG(RTLLIB_DL_TRACE | RTLLIB_DL_BA, "========>%s(), ReasonCode(%d) sentd to:"MAC_FMT"\n", __FUNCTION__, ReasonCode, MAC_ARG(dst));
+
+ memset(&DelbaParamSet, 0, 2);
+
+ DelbaParamSet.field.Initiator = (TxRxSelect==TX_DIR)?1:0;
+ DelbaParamSet.field.TID = pBA->BaParamSet.field.TID;
+
+#ifdef USB_USE_ALIGNMENT
+ u32 Tmpaddr=0;
+ int alignment=0;
+ skb = dev_alloc_skb(len + sizeof( struct rtllib_hdr_3addr) + USB_512B_ALIGNMENT_SIZE);
+#else
+ skb = dev_alloc_skb(len + sizeof( struct rtllib_hdr_3addr));
+#endif
+ if (skb == NULL)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't alloc skb for ADDBA_REQ\n");
+ return NULL;
+ }
+
+#ifdef USB_USE_ALIGNMENT
+ Tmpaddr = (u32)skb->data;
+ alignment = Tmpaddr & 0x1ff;
+ skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment));
+#endif
+ skb_reserve(skb, ieee->tx_headroom);
+
+ Delba = ( struct rtllib_hdr_3addr *) skb_put(skb,sizeof( struct rtllib_hdr_3addr));
+
+ memcpy(Delba->addr1, dst, ETH_ALEN);
+ memcpy(Delba->addr2, ieee->dev->dev_addr, ETH_ALEN);
+#ifdef _RTL8192_EXT_PATCH_
+ if((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0) && ieee->ext_patch_rtllib_is_mesh && ieee->ext_patch_rtllib_is_mesh(ieee, dst)){
+#ifdef COMPATIBLE_WITH_RALINK_MESH
+ memcpy(Delba->addr3, dst, ETH_ALEN);
+#else
+ memcpy(Delba->addr3, ieee->current_mesh_network.bssid, ETH_ALEN);
+#endif
+ }
+ else
+ memcpy(Delba->addr3, ieee->current_network.bssid, ETH_ALEN);
+#else
+ memcpy(Delba->addr3, ieee->current_network.bssid, ETH_ALEN);
+#endif
+ Delba->frame_ctl = cpu_to_le16(RTLLIB_STYPE_MANAGE_ACT);
+
+ tag = (u8*)skb_put(skb, 6);
+
+ *tag ++= ACT_CAT_BA;
+ *tag ++= ACT_DELBA;
+
+ tmp = cpu_to_le16(DelbaParamSet.shortData);
+ memcpy(tag, (u8*)&tmp, 2);
+ tag += 2;
+ tmp = cpu_to_le16(ReasonCode);
+ memcpy(tag, (u8*)&tmp, 2);
+ tag += 2;
+
+ RTLLIB_DEBUG_DATA(RTLLIB_DL_DATA|RTLLIB_DL_BA, skb->data, skb->len);
+ if (net_ratelimit())
+ RTLLIB_DEBUG(RTLLIB_DL_TRACE | RTLLIB_DL_BA, "<=====%s()\n", __FUNCTION__);
+ return skb;
+}
+
+void rtllib_send_ADDBAReq(struct rtllib_device* ieee, u8* dst, PBA_RECORD pBA)
+{
+ struct sk_buff *skb = NULL;
+ skb = rtllib_ADDBA(ieee, dst, pBA, 0, ACT_ADDBAREQ);
+
+ if (skb)
+ {
+ printk("====>to send ADDBAREQ!!!!!\n");
+ softmac_mgmt_xmit(skb, ieee);
+ }
+ else
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "alloc skb error in function %s()\n", __FUNCTION__);
+ }
+ return;
+}
+
+void rtllib_send_ADDBARsp(struct rtllib_device* ieee, u8* dst, PBA_RECORD pBA, u16 StatusCode)
+{
+ struct sk_buff *skb = NULL;
+ skb = rtllib_ADDBA(ieee, dst, pBA, StatusCode, ACT_ADDBARSP);
+ if (skb)
+ {
+ softmac_mgmt_xmit(skb, ieee);
+ }
+ else
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "alloc skb error in function %s()\n", __FUNCTION__);
+ }
+
+ return;
+
+}
+
+void rtllib_send_DELBA(struct rtllib_device* ieee, u8* dst, PBA_RECORD pBA, TR_SELECT TxRxSelect, u16 ReasonCode)
+{
+ struct sk_buff *skb = NULL;
+ skb = rtllib_DELBA(ieee, dst, pBA, TxRxSelect, ReasonCode);
+ if (skb)
+ {
+ softmac_mgmt_xmit(skb, ieee);
+ }
+ else
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "alloc skb error in function %s()\n", __FUNCTION__);
+ }
+ return ;
+}
+
+int rtllib_rx_ADDBAReq( struct rtllib_device* ieee, struct sk_buff *skb)
+{
+ struct rtllib_hdr_3addr* req = NULL;
+ u16 rc = 0;
+ u8 * dst = NULL, *pDialogToken = NULL, *tag = NULL;
+ PBA_RECORD pBA = NULL;
+ PBA_PARAM_SET pBaParamSet = NULL;
+ u16* pBaTimeoutVal = NULL;
+ PSEQUENCE_CONTROL pBaStartSeqCtrl = NULL;
+ PRX_TS_RECORD pTS = NULL;
+
+ if (skb->len < sizeof( struct rtllib_hdr_3addr) + 9)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, " Invalid skb len in BAREQ(%d / %d)\n",(int)skb->len, (int)(sizeof( struct rtllib_hdr_3addr) + 9));
+ return -1;
+ }
+
+ RTLLIB_DEBUG_DATA(RTLLIB_DL_DATA|RTLLIB_DL_BA, skb->data, skb->len);
+
+ req = ( struct rtllib_hdr_3addr*) skb->data;
+ tag = (u8*)req;
+ dst = (u8*)(&req->addr2[0]);
+ tag += sizeof( struct rtllib_hdr_3addr);
+ pDialogToken = tag + 2;
+ pBaParamSet = (PBA_PARAM_SET)(tag + 3);
+ pBaTimeoutVal = (u16*)(tag + 5);
+ pBaStartSeqCtrl = (PSEQUENCE_CONTROL)(req + 7);
+
+ printk("====>rx ADDBAREQ from :"MAC_FMT"\n", MAC_ARG(dst));
+ if(
+#ifdef _RTL8192_EXT_PATCH_
+ (ieee->current_network.qos_data.active == 0 && ieee->current_mesh_network.qos_data.active==0) ||
+#else
+ ieee->current_network.qos_data.active == 0 ||
+#endif
+ (ieee->pHTInfo->bCurrentHTSupport == false) ||
+ (ieee->pHTInfo->IOTAction & HT_IOT_ACT_REJECT_ADDBA_REQ))
+ {
+ rc = ADDBA_STATUS_REFUSED;
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "Failed to reply on ADDBA_REQ as some capability is not ready(%d, %d)\n", ieee->current_network.qos_data.active, ieee->pHTInfo->bCurrentHTSupport);
+ goto OnADDBAReq_Fail;
+ }
+ if( !GetTs(
+ ieee,
+ (PTS_COMMON_INFO*)(&pTS),
+ dst,
+ (u8)(pBaParamSet->field.TID),
+ RX_DIR,
+ true) )
+ {
+ rc = ADDBA_STATUS_REFUSED;
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't get TS in %s()\n", __FUNCTION__);
+ goto OnADDBAReq_Fail;
+ }
+ pBA = &pTS->RxAdmittedBARecord;
+
+ if(pBaParamSet->field.BAPolicy == BA_POLICY_DELAYED)
+ {
+ rc = ADDBA_STATUS_INVALID_PARAM;
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "BA Policy is not correct in %s()\n", __FUNCTION__);
+ goto OnADDBAReq_Fail;
+ }
+
+
+ rtllib_FlushRxTsPendingPkts(ieee, pTS);
+
+ DeActivateBAEntry(ieee, pBA);
+ pBA->DialogToken = *pDialogToken;
+ pBA->BaParamSet = *pBaParamSet;
+ pBA->BaTimeoutValue = *pBaTimeoutVal;
+ pBA->BaStartSeqCtrl = *pBaStartSeqCtrl;
+
+ if (ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev)||
+ (ieee->pHTInfo->IOTAction & HT_IOT_ACT_ALLOW_PEER_AGG_ONE_PKT))
+ pBA->BaParamSet.field.BufferSize = 1;
+ else
+ pBA->BaParamSet.field.BufferSize = 32;
+
+ ActivateBAEntry(ieee, pBA, 0);
+ rtllib_send_ADDBARsp(ieee, dst, pBA, ADDBA_STATUS_SUCCESS);
+
+ return 0;
+
+OnADDBAReq_Fail:
+ {
+ BA_RECORD BA;
+ BA.BaParamSet = *pBaParamSet;
+ BA.BaTimeoutValue = *pBaTimeoutVal;
+ BA.DialogToken = *pDialogToken;
+ BA.BaParamSet.field.BAPolicy = BA_POLICY_IMMEDIATE;
+ rtllib_send_ADDBARsp(ieee, dst, &BA, rc);
+ return 0;
+ }
+
+}
+
+int rtllib_rx_ADDBARsp( struct rtllib_device* ieee, struct sk_buff *skb)
+{
+ struct rtllib_hdr_3addr* rsp = NULL;
+ PBA_RECORD pPendingBA, pAdmittedBA;
+ PTX_TS_RECORD pTS = NULL;
+ u8* dst = NULL, *pDialogToken = NULL, *tag = NULL;
+ u16* pStatusCode = NULL, *pBaTimeoutVal = NULL;
+ PBA_PARAM_SET pBaParamSet = NULL;
+ u16 ReasonCode;
+
+ if (skb->len < sizeof( struct rtllib_hdr_3addr) + 9)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, " Invalid skb len in BARSP(%d / %d)\n", (int)skb->len, (int)(sizeof( struct rtllib_hdr_3addr) + 9));
+ return -1;
+ }
+ rsp = ( struct rtllib_hdr_3addr*)skb->data;
+ tag = (u8*)rsp;
+ dst = (u8*)(&rsp->addr2[0]);
+ tag += sizeof( struct rtllib_hdr_3addr);
+ pDialogToken = tag + 2;
+ pStatusCode = (u16*)(tag + 3);
+ pBaParamSet = (PBA_PARAM_SET)(tag + 5);
+ pBaTimeoutVal = (u16*)(tag + 7);
+
+ printk("====>rx ADDBARSP from :"MAC_FMT"\n", MAC_ARG(dst));
+ if(
+#ifdef _RTL8192_EXT_PATCH_
+ (ieee->current_network.qos_data.active == 0 && ieee->current_mesh_network.qos_data.active==0) ||
+#else
+ ieee->current_network.qos_data.active == 0 ||
+#endif
+ ieee->pHTInfo->bCurrentHTSupport == false ||
+ ieee->pHTInfo->bCurrentAMPDUEnable == false )
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "reject to ADDBA_RSP as some capability is not ready(%d, %d, %d)\n",ieee->current_network.qos_data.active, ieee->pHTInfo->bCurrentHTSupport, ieee->pHTInfo->bCurrentAMPDUEnable);
+ ReasonCode = DELBA_REASON_UNKNOWN_BA;
+ goto OnADDBARsp_Reject;
+ }
+
+
+ if (!GetTs(
+ ieee,
+ (PTS_COMMON_INFO*)(&pTS),
+ dst,
+ (u8)(pBaParamSet->field.TID),
+ TX_DIR,
+ false) )
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't get TS in %s()\n", __FUNCTION__);
+ ReasonCode = DELBA_REASON_UNKNOWN_BA;
+ goto OnADDBARsp_Reject;
+ }
+
+ pTS->bAddBaReqInProgress = false;
+ pPendingBA = &pTS->TxPendingBARecord;
+ pAdmittedBA = &pTS->TxAdmittedBARecord;
+
+
+ if((pAdmittedBA->bValid==true))
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_BA, "OnADDBARsp(): Recv ADDBA Rsp. Drop because already admit it! \n");
+ return -1;
+ }
+ else if((pPendingBA->bValid == false) ||(*pDialogToken != pPendingBA->DialogToken))
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "OnADDBARsp(): Recv ADDBA Rsp. BA invalid, DELBA! \n");
+ ReasonCode = DELBA_REASON_UNKNOWN_BA;
+ goto OnADDBARsp_Reject;
+ }
+ else
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_BA, "OnADDBARsp(): Recv ADDBA Rsp. BA is admitted! Status code:%X\n", *pStatusCode);
+ DeActivateBAEntry(ieee, pPendingBA);
+ }
+
+
+ if(*pStatusCode == ADDBA_STATUS_SUCCESS)
+ {
+ if(pBaParamSet->field.BAPolicy == BA_POLICY_DELAYED)
+ {
+ pTS->bAddBaReqDelayed = true;
+ DeActivateBAEntry(ieee, pAdmittedBA);
+ ReasonCode = DELBA_REASON_END_BA;
+ goto OnADDBARsp_Reject;
+ }
+
+
+ pAdmittedBA->DialogToken = *pDialogToken;
+ pAdmittedBA->BaTimeoutValue = *pBaTimeoutVal;
+ pAdmittedBA->BaStartSeqCtrl = pPendingBA->BaStartSeqCtrl;
+ pAdmittedBA->BaParamSet = *pBaParamSet;
+ DeActivateBAEntry(ieee, pAdmittedBA);
+ ActivateBAEntry(ieee, pAdmittedBA, *pBaTimeoutVal);
+ } else {
+ pTS->bAddBaReqDelayed = true;
+ pTS->bDisable_AddBa = true;
+ ReasonCode = DELBA_REASON_END_BA;
+ goto OnADDBARsp_Reject;
+ }
+
+ return 0;
+
+OnADDBARsp_Reject:
+ {
+ BA_RECORD BA;
+ BA.BaParamSet = *pBaParamSet;
+ rtllib_send_DELBA(ieee, dst, &BA, TX_DIR, ReasonCode);
+ return 0;
+ }
+
+}
+
+int rtllib_rx_DELBA(struct rtllib_device* ieee,struct sk_buff *skb)
+{
+ struct rtllib_hdr_3addr* delba = NULL;
+ PDELBA_PARAM_SET pDelBaParamSet = NULL;
+ u16* pReasonCode = NULL;
+ u8* dst = NULL;
+
+ if (skb->len < sizeof( struct rtllib_hdr_3addr) + 6)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, " Invalid skb len in DELBA(%d / %d)\n", (int)skb->len, (int)(sizeof( struct rtllib_hdr_3addr) + 6));
+ return -1;
+ }
+
+ if(
+#ifdef _RTL8192_EXT_PATCH_
+ (ieee->current_network.qos_data.active == 0 && ieee->current_mesh_network.qos_data.active==0) ||
+#else
+ ieee->current_network.qos_data.active == 0 ||
+#endif
+ ieee->pHTInfo->bCurrentHTSupport == false )
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "received DELBA while QOS or HT is not supported(%d, %d)\n",ieee->current_network.qos_data.active, ieee->pHTInfo->bCurrentHTSupport);
+ return -1;
+ }
+
+ RTLLIB_DEBUG_DATA(RTLLIB_DL_DATA|RTLLIB_DL_BA, skb->data, skb->len);
+ delba = ( struct rtllib_hdr_3addr*)skb->data;
+ dst = (u8*)(&delba->addr2[0]);
+ delba += sizeof( struct rtllib_hdr_3addr);
+ pDelBaParamSet = (PDELBA_PARAM_SET)(delba+2);
+ pReasonCode = (u16*)(delba+4);
+
+ if(pDelBaParamSet->field.Initiator == 1)
+ {
+ PRX_TS_RECORD pRxTs;
+
+ if( !GetTs(
+ ieee,
+ (PTS_COMMON_INFO*)&pRxTs,
+ dst,
+ (u8)pDelBaParamSet->field.TID,
+ RX_DIR,
+ false) )
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't get TS for RXTS in %s().dst:"MAC_FMT" TID:%d\n", __FUNCTION__, MAC_ARG(dst), (u8)pDelBaParamSet->field.TID);
+ return -1;
+ }
+
+ RxTsDeleteBA(ieee, pRxTs);
+ }
+ else
+ {
+ PTX_TS_RECORD pTxTs;
+
+ if(!GetTs(
+ ieee,
+ (PTS_COMMON_INFO*)&pTxTs,
+ dst,
+ (u8)pDelBaParamSet->field.TID,
+ TX_DIR,
+ false) )
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't get TS for TXTS in %s()\n", __FUNCTION__);
+ return -1;
+ }
+
+ pTxTs->bUsingBa = false;
+ pTxTs->bAddBaReqInProgress = false;
+ pTxTs->bAddBaReqDelayed = false;
+ del_timer_sync(&pTxTs->TsAddBaTimer);
+ TxTsDeleteBA(ieee, pTxTs);
+ }
+ return 0;
+}
+
+void
+TsInitAddBA(
+ struct rtllib_device* ieee,
+ PTX_TS_RECORD pTS,
+ u8 Policy,
+ u8 bOverwritePending
+ )
+{
+ PBA_RECORD pBA = &pTS->TxPendingBARecord;
+
+ if(pBA->bValid==true && bOverwritePending==false)
+ return;
+
+ DeActivateBAEntry(ieee, pBA);
+
+ pBA->DialogToken++;
+ pBA->BaParamSet.field.AMSDU_Support = 0;
+ pBA->BaParamSet.field.BAPolicy = Policy;
+ pBA->BaParamSet.field.TID = pTS->TsCommonInfo.TSpec.f.TSInfo.field.ucTSID;
+ pBA->BaParamSet.field.BufferSize = 32;
+ pBA->BaTimeoutValue = 0;
+ pBA->BaStartSeqCtrl.field.SeqNum = (pTS->TxCurSeq + 3) % 4096;
+
+ ActivateBAEntry(ieee, pBA, BA_SETUP_TIMEOUT);
+
+ rtllib_send_ADDBAReq(ieee, pTS->TsCommonInfo.Addr, pBA);
+}
+
+void
+TsInitDelBA( struct rtllib_device* ieee, PTS_COMMON_INFO pTsCommonInfo, TR_SELECT TxRxSelect)
+{
+
+ if(TxRxSelect == TX_DIR)
+ {
+ PTX_TS_RECORD pTxTs = (PTX_TS_RECORD)pTsCommonInfo;
+
+ if(TxTsDeleteBA(ieee, pTxTs))
+ rtllib_send_DELBA(
+ ieee,
+ pTsCommonInfo->Addr,
+ (pTxTs->TxAdmittedBARecord.bValid)?(&pTxTs->TxAdmittedBARecord):(&pTxTs->TxPendingBARecord),
+ TxRxSelect,
+ DELBA_REASON_END_BA);
+ }
+ else if(TxRxSelect == RX_DIR)
+ {
+ PRX_TS_RECORD pRxTs = (PRX_TS_RECORD)pTsCommonInfo;
+ if(RxTsDeleteBA(ieee, pRxTs))
+ rtllib_send_DELBA(
+ ieee,
+ pTsCommonInfo->Addr,
+ &pRxTs->RxAdmittedBARecord,
+ TxRxSelect,
+ DELBA_REASON_END_BA );
+ }
+}
+void BaSetupTimeOut(unsigned long data)
+{
+ PTX_TS_RECORD pTxTs = (PTX_TS_RECORD)data;
+
+ pTxTs->bAddBaReqInProgress = false;
+ pTxTs->bAddBaReqDelayed = true;
+ pTxTs->TxPendingBARecord.bValid = false;
+}
+
+void TxBaInactTimeout(unsigned long data)
+{
+ PTX_TS_RECORD pTxTs = (PTX_TS_RECORD)data;
+ struct rtllib_device *ieee = container_of(pTxTs, struct rtllib_device, TxTsRecord[pTxTs->num]);
+ TxTsDeleteBA(ieee, pTxTs);
+ rtllib_send_DELBA(
+ ieee,
+ pTxTs->TsCommonInfo.Addr,
+ &pTxTs->TxAdmittedBARecord,
+ TX_DIR,
+ DELBA_REASON_TIMEOUT);
+}
+
+void RxBaInactTimeout(unsigned long data)
+{
+ PRX_TS_RECORD pRxTs = (PRX_TS_RECORD)data;
+ struct rtllib_device *ieee = container_of(pRxTs, struct rtllib_device, RxTsRecord[pRxTs->num]);
+
+ RxTsDeleteBA(ieee, pRxTs);
+ rtllib_send_DELBA(
+ ieee,
+ pRxTs->TsCommonInfo.Addr,
+ &pRxTs->RxAdmittedBARecord,
+ RX_DIR,
+ DELBA_REASON_TIMEOUT);
+ return ;
+}
+
diff --git a/ubuntu/rtl8192se/rtllib/rtl819x_HT.h b/ubuntu/rtl8192se/rtllib/rtl819x_HT.h
new file mode 100755
index 00000000000..079c5168cc7
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtl819x_HT.h
@@ -0,0 +1,489 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef _RTL819XU_HTTYPE_H_
+#define _RTL819XU_HTTYPE_H_
+
+
+#define HT_OPMODE_NO_PROTECT 0
+#define HT_OPMODE_OPTIONAL 1
+#define HT_OPMODE_40MHZ_PROTECT 2
+#define HT_OPMODE_MIXED 3
+
+#define MIMO_PS_STATIC 0
+#define MIMO_PS_DYNAMIC 1
+#define MIMO_PS_NOLIMIT 3
+
+
+
+#define sHTCLng 4
+
+
+#define HT_SUPPORTED_MCS_1SS_BITMAP 0x000000ff
+#define HT_SUPPORTED_MCS_2SS_BITMAP 0x0000ff00
+#define HT_SUPPORTED_MCS_1SS_2SS_BITMAP HT_MCS_1SS_BITMAP|HT_MCS_1SS_2SS_BITMAP
+
+
+typedef enum _HT_MCS_RATE{
+ HT_MCS0 = 0x00000001,
+ HT_MCS1 = 0x00000002,
+ HT_MCS2 = 0x00000004,
+ HT_MCS3 = 0x00000008,
+ HT_MCS4 = 0x00000010,
+ HT_MCS5 = 0x00000020,
+ HT_MCS6 = 0x00000040,
+ HT_MCS7 = 0x00000080,
+ HT_MCS8 = 0x00000100,
+ HT_MCS9 = 0x00000200,
+ HT_MCS10 = 0x00000400,
+ HT_MCS11 = 0x00000800,
+ HT_MCS12 = 0x00001000,
+ HT_MCS13 = 0x00002000,
+ HT_MCS14 = 0x00004000,
+ HT_MCS15 = 0x00008000,
+}HT_MCS_RATE,*PHT_MCS_RATE;
+
+typedef enum _HT_CHANNEL_WIDTH{
+ HT_CHANNEL_WIDTH_20 = 0,
+ HT_CHANNEL_WIDTH_20_40 = 1,
+}HT_CHANNEL_WIDTH, *PHT_CHANNEL_WIDTH;
+
+typedef enum _HT_EXTCHNL_OFFSET{
+ HT_EXTCHNL_OFFSET_NO_EXT = 0,
+ HT_EXTCHNL_OFFSET_UPPER = 1,
+ HT_EXTCHNL_OFFSET_NO_DEF = 2,
+ HT_EXTCHNL_OFFSET_LOWER = 3,
+}HT_EXTCHNL_OFFSET, *PHT_EXTCHNL_OFFSET;
+
+typedef enum _CHNLOP{
+ CHNLOP_NONE = 0,
+ CHNLOP_SCAN = 1,
+ CHNLOP_SWBW = 2,
+ CHNLOP_SWCHNL = 3,
+} CHNLOP, *PCHNLOP;
+
+#define CHHLOP_IN_PROGRESS(_pHTInfo) \
+ ((_pHTInfo)->ChnlOp > CHNLOP_NONE) ? true : false
+
+/*
+typedef union _HT_CAPABILITY{
+ u16 ShortData;
+ u8 CharData[2];
+ struct
+ {
+ u16 AdvCoding:1;
+ u16 ChlWidth:1;
+ u16 MimoPwrSave:2;
+ u16 GreenField:1;
+ u16 ShortGI20Mhz:1;
+ u16 ShortGI40Mhz:1;
+ u16 STBC:1;
+ u16 BeamForm:1;
+ u16 DelayBA:1;
+ u16 MaxAMSDUSize:1;
+ u16 DssCCk:1;
+ u16 PSMP:1;
+ u16 Rsvd:3;
+ }Field;
+}HT_CAPABILITY, *PHT_CAPABILITY;
+
+typedef union _HT_CAPABILITY_MACPARA{
+ u8 ShortData;
+ u8 CharData[1];
+ struct
+ {
+ u8 MaxRxAMPDU:2;
+ u8 MPDUDensity:2;
+ u8 Rsvd:4;
+ }Field;
+}HT_CAPABILITY_MACPARA, *PHT_CAPABILITY_MACPARA;
+*/
+
+typedef enum _HT_ACTION{
+ ACT_RECOMMAND_WIDTH = 0,
+ ACT_MIMO_PWR_SAVE = 1,
+ ACT_PSMP = 2,
+ ACT_SET_PCO_PHASE = 3,
+ ACT_MIMO_CHL_MEASURE = 4,
+ ACT_RECIPROCITY_CORRECT = 5,
+ ACT_MIMO_CSI_MATRICS = 6,
+ ACT_MIMO_NOCOMPR_STEER = 7,
+ ACT_MIMO_COMPR_STEER = 8,
+ ACT_ANTENNA_SELECT = 9,
+} HT_ACTION, *PHT_ACTION;
+
+
+typedef enum _HT_Bandwidth_40MHZ_Sub_Carrier{
+ SC_MODE_DUPLICATE = 0,
+ SC_MODE_LOWER = 1,
+ SC_MODE_UPPER = 2,
+ SC_MODE_FULL40MHZ = 3,
+}HT_BW40_SC_E;
+
+typedef struct _HT_CAPABILITY_ELE{
+
+ u8 AdvCoding:1;
+ u8 ChlWidth:1;
+ u8 MimoPwrSave:2;
+ u8 GreenField:1;
+ u8 ShortGI20Mhz:1;
+ u8 ShortGI40Mhz:1;
+ u8 TxSTBC:1;
+ u8 RxSTBC:2;
+ u8 DelayBA:1;
+ u8 MaxAMSDUSize:1;
+ u8 DssCCk:1;
+ u8 PSMP:1;
+ u8 Rsvd1:1;
+ u8 LSigTxopProtect:1;
+
+ u8 MaxRxAMPDUFactor:2;
+ u8 MPDUDensity:3;
+ u8 Rsvd2:3;
+
+ u8 MCS[16];
+
+
+ u16 ExtHTCapInfo;
+
+ u8 TxBFCap[4];
+
+ u8 ASCap;
+
+} __attribute__ ((packed)) HT_CAPABILITY_ELE, *PHT_CAPABILITY_ELE;
+
+
+typedef struct _HT_INFORMATION_ELE{
+ u8 ControlChl;
+
+ u8 ExtChlOffset:2;
+ u8 RecommemdedTxWidth:1;
+ u8 RIFS:1;
+ u8 PSMPAccessOnly:1;
+ u8 SrvIntGranularity:3;
+
+ u8 OptMode:2;
+ u8 NonGFDevPresent:1;
+ u8 Revd1:5;
+ u8 Revd2:8;
+
+ u8 Rsvd3:6;
+ u8 DualBeacon:1;
+ u8 DualCTSProtect:1;
+
+ u8 SecondaryBeacon:1;
+ u8 LSigTxopProtectFull:1;
+ u8 PcoActive:1;
+ u8 PcoPhase:1;
+ u8 Rsvd4:4;
+
+ u8 BasicMSC[16];
+} __attribute__ ((packed)) HT_INFORMATION_ELE, *PHT_INFORMATION_ELE;
+
+typedef struct _MIMOPS_CTRL{
+ u8 MimoPsEnable:1;
+ u8 MimoPsMode:1;
+ u8 Reserved:6;
+} MIMOPS_CTRL, *PMIMOPS_CTRL;
+
+typedef enum _HT_SPEC_VER{
+ HT_SPEC_VER_IEEE = 0,
+ HT_SPEC_VER_EWC = 1,
+}HT_SPEC_VER, *PHT_SPEC_VER;
+
+typedef enum _HT_AGGRE_MODE_E{
+ HT_AGG_AUTO = 0,
+ HT_AGG_FORCE_ENABLE = 1,
+ HT_AGG_FORCE_DISABLE = 2,
+}HT_AGGRE_MODE_E, *PHT_AGGRE_MODE_E;
+
+
+typedef struct _RT_HIGH_THROUGHPUT{
+ u8 bEnableHT;
+ u8 bCurrentHTSupport;
+
+ u8 bRegBW40MHz;
+ u8 bCurBW40MHz;
+
+ u8 bRegShortGI40MHz;
+ u8 bCurShortGI40MHz;
+
+ u8 bRegShortGI20MHz;
+ u8 bCurShortGI20MHz;
+
+ u8 bRegSuppCCK;
+ u8 bCurSuppCCK;
+
+ HT_SPEC_VER ePeerHTSpecVer;
+
+
+ HT_CAPABILITY_ELE SelfHTCap;
+ HT_INFORMATION_ELE SelfHTInfo;
+
+ u8 PeerHTCapBuf[32];
+ u8 PeerHTInfoBuf[32];
+
+
+ u8 bAMSDU_Support;
+ u16 nAMSDU_MaxSize;
+ u8 bCurrent_AMSDU_Support;
+ u16 nCurrent_AMSDU_MaxSize;
+#ifdef _RTL8192_EXT_PATCH_
+ u8 bCurrent_Mesh_AMSDU_Support;
+#endif
+
+ u8 bAMPDUEnable;
+ u8 bCurrentAMPDUEnable;
+ u8 AMPDU_Factor;
+ u8 CurrentAMPDUFactor;
+ u8 MPDU_Density;
+ u8 CurrentMPDUDensity;
+#ifdef _RTL8192_EXT_PATCH_
+ u8 bCurrentMeshAMPDUEnable;
+#endif
+
+ HT_AGGRE_MODE_E ForcedAMPDUMode;
+ u8 ForcedAMPDUFactor;
+ u8 ForcedMPDUDensity;
+
+ HT_AGGRE_MODE_E ForcedAMSDUMode;
+ u16 ForcedAMSDUMaxSize;
+
+ u8 bForcedShortGI;
+
+ u8 CurrentOpMode;
+
+ u8 SelfMimoPs;
+ u8 PeerMimoPs;
+
+ HT_EXTCHNL_OFFSET CurSTAExtChnlOffset;
+ u8 bCurTxBW40MHz;
+ u8 PeerBandwidth;
+
+ u8 bSwBwInProgress;
+ CHNLOP ChnlOp;
+ u8 SwBwStep;
+
+ u8 bRegRT2RTAggregation;
+ u8 RT2RT_HT_Mode;
+ u8 bCurrentRT2RTAggregation;
+ u8 bCurrentRT2RTLongSlotTime;
+ u8 szRT2RTAggBuffer[10];
+
+ u8 bRegRxReorderEnable;
+ u8 bCurRxReorderEnable;
+ u8 RxReorderWinSize;
+ u8 RxReorderPendingTime;
+ u16 RxReorderDropCounter;
+
+#ifdef USB_TX_DRIVER_AGGREGATION_ENABLE
+ u8 UsbTxAggrNum;
+#endif
+#ifdef USB_RX_AGGREGATION_SUPPORT
+ u8 UsbRxFwAggrEn;
+ u8 UsbRxFwAggrPageNum;
+ u8 UsbRxFwAggrPacketNum;
+ u8 UsbRxFwAggrTimeout;
+ u8 UsbRxPageSize;
+#endif
+
+ u8 bIsPeerBcm;
+
+ u8 IOTPeer;
+ u32 IOTAction;
+ u8 IOTRaFunc;
+
+ u8 bWAIotBroadcom;
+ u8 WAIotTH;
+
+#ifdef RTL8192CE
+ u8 bRDGEnable;
+#endif
+} __attribute__ ((packed)) RT_HIGH_THROUGHPUT, *PRT_HIGH_THROUGHPUT;
+
+
+
+typedef struct _RT_HTINFO_STA_ENTRY{
+ u8 bEnableHT;
+
+ u8 bSupportCck;
+
+ u16 AMSDU_MaxSize;
+
+ u8 AMPDU_Factor;
+ u8 MPDU_Density;
+
+ u8 HTHighestOperaRate;
+
+ u8 bBw40MHz;
+
+ u8 bCurTxBW40MHz;
+
+ u8 bCurShortGI20MHz;
+
+ u8 bCurShortGI40MHz;
+
+ u8 MimoPs;
+
+ u8 McsRateSet[16];
+
+ u8 bCurRxReorderEnable;
+
+ u16 nAMSDU_MaxSize;
+
+}RT_HTINFO_STA_ENTRY, *PRT_HTINFO_STA_ENTRY;
+
+
+
+
+
+
+typedef struct _BSS_HT{
+
+ u8 bdSupportHT;
+
+ u8 bdHTCapBuf[32];
+ u16 bdHTCapLen;
+ u8 bdHTInfoBuf[32];
+ u16 bdHTInfoLen;
+
+ HT_SPEC_VER bdHTSpecVer;
+ HT_CHANNEL_WIDTH bdBandWidth;
+
+ u8 bdRT2RTAggregation;
+ u8 bdRT2RTLongSlotTime;
+ u8 RT2RT_HT_Mode;
+ u8 bdHT1R;
+} __attribute__ ((packed)) BSS_HT, *PBSS_HT;
+
+typedef struct _MIMO_RSSI{
+ u32 EnableAntenna;
+ u32 AntennaA;
+ u32 AntennaB;
+ u32 AntennaC;
+ u32 AntennaD;
+ u32 Average;
+}MIMO_RSSI, *PMIMO_RSSI;
+
+typedef struct _MIMO_EVM{
+ u32 EVM1;
+ u32 EVM2;
+}MIMO_EVM, *PMIMO_EVM;
+
+typedef struct _FALSE_ALARM_STATISTICS{
+ u32 Cnt_Parity_Fail;
+ u32 Cnt_Rate_Illegal;
+ u32 Cnt_Crc8_fail;
+ u32 Cnt_Mcs_fail;
+ u32 Cnt_Ofdm_fail;
+ u32 Cnt_Cck_fail;
+ u32 Cnt_all;
+}FALSE_ALARM_STATISTICS, *PFALSE_ALARM_STATISTICS;
+
+
+extern u8 MCS_FILTER_ALL[16];
+extern u8 MCS_FILTER_1SS[16];
+
+#define PICK_RATE(_nLegacyRate, _nMcsRate) \
+ (_nMcsRate==0)?(_nLegacyRate&0x7f):(_nMcsRate)
+#define LEGACY_WIRELESS_MODE IEEE_MODE_MASK
+
+#define CURRENT_RATE(WirelessMode, LegacyRate, HTRate) \
+ ((WirelessMode & (LEGACY_WIRELESS_MODE))!=0)?\
+ (LegacyRate):\
+ (PICK_RATE(LegacyRate, HTRate))
+
+
+
+#define RATE_ADPT_1SS_MASK 0xFF
+#define RATE_ADPT_2SS_MASK 0xF0
+#define RATE_ADPT_MCS32_MASK 0x01
+
+#define IS_11N_MCS_RATE(rate) (rate&0x80)
+
+typedef enum _HT_AGGRE_SIZE{
+ HT_AGG_SIZE_8K = 0,
+ HT_AGG_SIZE_16K = 1,
+ HT_AGG_SIZE_32K = 2,
+ HT_AGG_SIZE_64K = 3,
+}HT_AGGRE_SIZE_E, *PHT_AGGRE_SIZE_E;
+
+typedef enum _HT_IOT_PEER
+{
+ HT_IOT_PEER_UNKNOWN = 0,
+ HT_IOT_PEER_REALTEK = 1,
+ HT_IOT_PEER_REALTEK_92SE = 2,
+ HT_IOT_PEER_BROADCOM = 3,
+ HT_IOT_PEER_RALINK = 4,
+ HT_IOT_PEER_ATHEROS = 5,
+ HT_IOT_PEER_CISCO= 6,
+ HT_IOT_PEER_MARVELL=7,
+ HT_IOT_PEER_92U_SOFTAP = 8,
+ HT_IOT_PEER_SELF_SOFTAP = 9,
+ HT_IOT_PEER_MAX = 10,
+}HT_IOT_PEER_E, *PHTIOT_PEER_E;
+
+typedef enum _HT_IOT_ACTION{
+ HT_IOT_ACT_TX_USE_AMSDU_4K = 0x00000001,
+ HT_IOT_ACT_TX_USE_AMSDU_8K = 0x00000002,
+ HT_IOT_ACT_DISABLE_MCS14 = 0x00000004,
+ HT_IOT_ACT_DISABLE_MCS15 = 0x00000008,
+ HT_IOT_ACT_DISABLE_ALL_2SS = 0x00000010,
+ HT_IOT_ACT_DISABLE_EDCA_TURBO = 0x00000020,
+ HT_IOT_ACT_MGNT_USE_CCK_6M = 0x00000040,
+ HT_IOT_ACT_CDD_FSYNC = 0x00000080,
+ HT_IOT_ACT_PURE_N_MODE = 0x00000100,
+ HT_IOT_ACT_FORCED_CTS2SELF = 0x00000200,
+ HT_IOT_ACT_FORCED_RTS = 0x00000400,
+ HT_IOT_ACT_AMSDU_ENABLE = 0x00000800,
+ HT_IOT_ACT_REJECT_ADDBA_REQ = 0x00001000,
+ HT_IOT_ACT_ALLOW_PEER_AGG_ONE_PKT = 0x00002000,
+ HT_IOT_ACT_EDCA_BIAS_ON_RX = 0x00004000,
+
+ HT_IOT_ACT_HYBRID_AGGREGATION = 0x00010000,
+ HT_IOT_ACT_DISABLE_SHORT_GI = 0x00020000,
+ HT_IOT_ACT_DISABLE_HIGH_POWER = 0x00040000,
+ HT_IOT_ACT_DISABLE_TX_40_MHZ = 0x00080000,
+ HT_IOT_ACT_TX_NO_AGGREGATION = 0x00100000,
+ HT_IOT_ACT_DISABLE_TX_2SS = 0x00200000,
+
+ HT_IOT_ACT_MID_HIGHPOWER = 0x00400000,
+ HT_IOT_ACT_NULL_DATA_POWER_SAVING = 0x00800000,
+
+ HT_IOT_ACT_DISABLE_CCK_RATE = 0x01000000,
+ HT_IOT_ACT_FORCED_ENABLE_BE_TXOP = 0x02000000,
+ HT_IOT_ACT_WA_IOT_Broadcom = 0x04000000,
+}HT_IOT_ACTION_E, *PHT_IOT_ACTION_E;
+
+typedef enum _HT_IOT_RAFUNC{
+ HT_IOT_RAFUNC_DISABLE_ALL = 0x00,
+ HT_IOT_RAFUNC_PEER_1R = 0x01,
+ HT_IOT_RAFUNC_TX_AMSDU = 0x02,
+}HT_IOT_RAFUNC, *PHT_IOT_RAFUNC;
+
+typedef enum _RT_HT_CAP{
+ RT_HT_CAP_USE_TURBO_AGGR = 0x01,
+ RT_HT_CAP_USE_LONG_PREAMBLE = 0x02,
+ RT_HT_CAP_USE_AMPDU = 0x04,
+ RT_HT_CAP_USE_WOW = 0x8,
+ RT_HT_CAP_USE_SOFTAP = 0x10,
+ RT_HT_CAP_USE_92SE = 0x20,
+}RT_HT_CAPBILITY, *PRT_HT_CAPBILITY;
+
+#endif
+
diff --git a/ubuntu/rtl8192se/rtllib/rtl819x_HTProc.c b/ubuntu/rtl8192se/rtllib/rtl819x_HTProc.c
new file mode 100755
index 00000000000..ca9055a0b9f
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtl819x_HTProc.c
@@ -0,0 +1,1683 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#include "rtllib.h"
+#include "rtl819x_HT.h"
+u8 MCS_FILTER_ALL[16] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+
+u8 MCS_FILTER_1SS[16] = {0xff, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+
+u16 MCS_DATA_RATE[2][2][77] =
+ { { {13, 26, 39, 52, 78, 104, 117, 130, 26, 52, 78 ,104, 156, 208, 234, 260,
+ 39, 78, 117, 234, 312, 351, 390, 52, 104, 156, 208, 312, 416, 468, 520,
+ 0, 78, 104, 130, 117, 156, 195, 104, 130, 130, 156, 182, 182, 208, 156, 195,
+ 195, 234, 273, 273, 312, 130, 156, 181, 156, 181, 208, 234, 208, 234, 260, 260,
+ 286, 195, 234, 273, 234, 273, 312, 351, 312, 351, 390, 390, 429},
+ {14, 29, 43, 58, 87, 116, 130, 144, 29, 58, 87, 116, 173, 231, 260, 289,
+ 43, 87, 130, 173, 260, 347, 390, 433, 58, 116, 173, 231, 347, 462, 520, 578,
+ 0, 87, 116, 144, 130, 173, 217, 116, 144, 144, 173, 202, 202, 231, 173, 217,
+ 217, 260, 303, 303, 347, 144, 173, 202, 173, 202, 231, 260, 231, 260, 289, 289,
+ 318, 217, 260, 303, 260, 303, 347, 390, 347, 390, 433, 433, 477} },
+ { {27, 54, 81, 108, 162, 216, 243, 270, 54, 108, 162, 216, 324, 432, 486, 540,
+ 81, 162, 243, 324, 486, 648, 729, 810, 108, 216, 324, 432, 648, 864, 972, 1080,
+ 12, 162, 216, 270, 243, 324, 405, 216, 270, 270, 324, 378, 378, 432, 324, 405,
+ 405, 486, 567, 567, 648, 270, 324, 378, 324, 378, 432, 486, 432, 486, 540, 540,
+ 594, 405, 486, 567, 486, 567, 648, 729, 648, 729, 810, 810, 891},
+ {30, 60, 90, 120, 180, 240, 270, 300, 60, 120, 180, 240, 360, 480, 540, 600,
+ 90, 180, 270, 360, 540, 720, 810, 900, 120, 240, 360, 480, 720, 960, 1080, 1200,
+ 13, 180, 240, 300, 270, 360, 450, 240, 300, 300, 360, 420, 420, 480, 360, 450,
+ 450, 540, 630, 630, 720, 300, 360, 420, 360, 420, 480, 540, 480, 540, 600, 600,
+ 660, 450, 540, 630, 540, 630, 720, 810, 720, 810, 900, 900, 990} }
+ };
+
+static u8 UNKNOWN_BORADCOM[3] = {0x00, 0x14, 0xbf};
+static u8 LINKSYSWRT330_LINKSYSWRT300_BROADCOM[3] = {0x00, 0x1a, 0x70};
+static u8 LINKSYSWRT350_LINKSYSWRT150_BROADCOM[3] = {0x00, 0x1d, 0x7e};
+static u8 BELKINF5D8233V1_RALINK[3] = {0x00, 0x17, 0x3f};
+static u8 BELKINF5D82334V3_RALINK[3] = {0x00, 0x1c, 0xdf};
+static u8 PCI_RALINK[3] = {0x00, 0x90, 0xcc};
+static u8 EDIMAX_RALINK[3] = {0x00, 0x0e, 0x2e};
+static u8 AIRLINK_RALINK[3] = {0x00, 0x18, 0x02};
+static u8 DLINK_ATHEROS_1[3] = {0x00, 0x1c, 0xf0};
+static u8 DLINK_ATHEROS_2[3] = {0x00, 0x21, 0x91};
+static u8 CISCO_BROADCOM[3] = {0x00, 0x17, 0x94};
+#if defined(RTL8192SU)
+static u8 NETGEAR_BROADCOM[3] = {0x00, 0x1f, 0x33};
+#endif
+static u8 LINKSYS_MARVELL_4400N[3] = {0x00, 0x14, 0xa4};
+void HTUpdateDefaultSetting(struct rtllib_device* ieee)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+
+#ifdef RTL8192CE
+ pHTInfo->bRDGEnable = 0;
+#endif
+
+ pHTInfo->bRegShortGI20MHz= 1;
+ pHTInfo->bRegShortGI40MHz= 1;
+
+ pHTInfo->bRegBW40MHz = 1;
+
+ if(pHTInfo->bRegBW40MHz)
+ pHTInfo->bRegSuppCCK = 1;
+ else
+ pHTInfo->bRegSuppCCK = true;
+
+ pHTInfo->nAMSDU_MaxSize = 7935UL;
+ pHTInfo->bAMSDU_Support = 0;
+
+ pHTInfo->bAMPDUEnable = 1;
+ pHTInfo->AMPDU_Factor = 2;
+ pHTInfo->MPDU_Density = 0;
+
+ pHTInfo->SelfMimoPs = 3;
+ if(pHTInfo->SelfMimoPs == 2)
+ pHTInfo->SelfMimoPs = 3;
+ ieee->bTxDisableRateFallBack = 0;
+ ieee->bTxUseDriverAssingedRate = 0;
+
+ ieee->bTxEnableFwCalcDur = 1;
+
+ pHTInfo->bRegRT2RTAggregation = 1;
+
+ pHTInfo->bRegRxReorderEnable = 1;
+ pHTInfo->RxReorderWinSize = 64;
+ pHTInfo->RxReorderPendingTime = 30;
+
+#ifdef USB_TX_DRIVER_AGGREGATION_ENABLE
+ pHTInfo->UsbTxAggrNum = 4;
+#endif
+#ifdef USB_RX_AGGREGATION_SUPPORT
+#ifdef RTL8192SU
+ pHTInfo->UsbRxFwAggrEn = 1;
+ pHTInfo->UsbRxFwAggrPageNum = 48;
+ pHTInfo->UsbRxFwAggrPacketNum = 8;
+ pHTInfo->UsbRxFwAggrTimeout = 4;
+ pHTInfo->UsbRxPageSize= 128;
+#else
+ pHTInfo->UsbRxFwAggrEn = 1;
+ pHTInfo->UsbRxFwAggrPageNum = 24;
+ pHTInfo->UsbRxFwAggrPacketNum = 8;
+ pHTInfo->UsbRxFwAggrTimeout = 8;
+#endif
+#endif
+
+
+}
+void HTDebugHTCapability(u8* CapIE, u8* TitleString )
+{
+
+ static u8 EWC11NHTCap[] = {0x00, 0x90, 0x4c, 0x33};
+ PHT_CAPABILITY_ELE pCapELE;
+
+ if(!memcmp(CapIE, EWC11NHTCap, sizeof(EWC11NHTCap)))
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "EWC IE in %s()\n", __FUNCTION__);
+ pCapELE = (PHT_CAPABILITY_ELE)(&CapIE[4]);
+ }else
+ pCapELE = (PHT_CAPABILITY_ELE)(&CapIE[0]);
+
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "<Log HT Capability>. Called by %s\n", TitleString );
+
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "\tSupported Channel Width = %s\n", (pCapELE->ChlWidth)?"20MHz": "20/40MHz");
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "\tSupport Short GI for 20M = %s\n", (pCapELE->ShortGI20Mhz)?"YES": "NO");
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "\tSupport Short GI for 40M = %s\n", (pCapELE->ShortGI40Mhz)?"YES": "NO");
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "\tSupport TX STBC = %s\n", (pCapELE->TxSTBC)?"YES": "NO");
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "\tMax AMSDU Size = %s\n", (pCapELE->MaxAMSDUSize)?"3839": "7935");
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "\tSupport CCK in 20/40 mode = %s\n", (pCapELE->DssCCk)?"YES": "NO");
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "\tMax AMPDU Factor = %d\n", pCapELE->MaxRxAMPDUFactor);
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "\tMPDU Density = %d\n", pCapELE->MPDUDensity);
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "\tMCS Rate Set = [%x][%x][%x][%x][%x]\n", pCapELE->MCS[0],\
+ pCapELE->MCS[1], pCapELE->MCS[2], pCapELE->MCS[3], pCapELE->MCS[4]);
+ return;
+
+}
+void HTDebugHTInfo(u8* InfoIE, u8* TitleString)
+{
+
+ static u8 EWC11NHTInfo[] = {0x00, 0x90, 0x4c, 0x34};
+ PHT_INFORMATION_ELE pHTInfoEle;
+
+ if(!memcmp(InfoIE, EWC11NHTInfo, sizeof(EWC11NHTInfo)))
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "EWC IE in %s()\n", __FUNCTION__);
+ pHTInfoEle = (PHT_INFORMATION_ELE)(&InfoIE[4]);
+ }else
+ pHTInfoEle = (PHT_INFORMATION_ELE)(&InfoIE[0]);
+
+
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "<Log HT Information Element>. Called by %s\n", TitleString);
+
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "\tPrimary channel = %d\n", pHTInfoEle->ControlChl);
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "\tSenondary channel =");
+ switch(pHTInfoEle->ExtChlOffset)
+ {
+ case 0:
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "Not Present\n");
+ break;
+ case 1:
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "Upper channel\n");
+ break;
+ case 2:
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "Reserved. Eooro!!!\n");
+ break;
+ case 3:
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "Lower Channel\n");
+ break;
+ }
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "\tRecommended channel width = %s\n", (pHTInfoEle->RecommemdedTxWidth)?"20Mhz": "40Mhz");
+
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "\tOperation mode for protection = ");
+ switch(pHTInfoEle->OptMode)
+ {
+ case 0:
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "No Protection\n");
+ break;
+ case 1:
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "HT non-member protection mode\n");
+ break;
+ case 2:
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "Suggest to open protection\n");
+ break;
+ case 3:
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "HT mixed mode\n");
+ break;
+ }
+
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "\tBasic MCS Rate Set = [%x][%x][%x][%x][%x]\n", pHTInfoEle->BasicMSC[0],\
+ pHTInfoEle->BasicMSC[1], pHTInfoEle->BasicMSC[2], pHTInfoEle->BasicMSC[3], pHTInfoEle->BasicMSC[4]);
+ return;
+}
+
+bool IsHTHalfNmode40Bandwidth(struct rtllib_device* ieee)
+{
+ bool retValue = false;
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+
+ if(pHTInfo->bCurrentHTSupport == false )
+ retValue = false;
+ else if(pHTInfo->bRegBW40MHz == false)
+ retValue = false;
+ else if(!ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev))
+ retValue = false;
+ else if(((PHT_CAPABILITY_ELE)(pHTInfo->PeerHTCapBuf))->ChlWidth)
+ retValue = true;
+ else
+ retValue = false;
+
+ return retValue;
+}
+
+bool IsHTHalfNmodeSGI(struct rtllib_device* ieee, bool is40MHz)
+{
+ bool retValue = false;
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+
+ if(pHTInfo->bCurrentHTSupport == false )
+ retValue = false;
+ else if(!ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev))
+ retValue = false;
+ else if(is40MHz)
+ {
+ if(((PHT_CAPABILITY_ELE)(pHTInfo->PeerHTCapBuf))->ShortGI40Mhz)
+ retValue = true;
+ else
+ retValue = false;
+ }
+ else
+ {
+ if(((PHT_CAPABILITY_ELE)(pHTInfo->PeerHTCapBuf))->ShortGI20Mhz)
+ retValue = true;
+ else
+ retValue = false;
+ }
+
+ return retValue;
+}
+
+u16 HTHalfMcsToDataRate(struct rtllib_device* ieee, u8 nMcsRate)
+{
+
+ u8 is40MHz;
+ u8 isShortGI;
+
+ is40MHz = (IsHTHalfNmode40Bandwidth(ieee))?1:0;
+ isShortGI = (IsHTHalfNmodeSGI(ieee, is40MHz))? 1:0;
+
+ return MCS_DATA_RATE[is40MHz][isShortGI][(nMcsRate&0x7f)];
+}
+
+
+u16 HTMcsToDataRate( struct rtllib_device* ieee, u8 nMcsRate)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+
+ u8 is40MHz = (pHTInfo->bCurBW40MHz)?1:0;
+ u8 isShortGI = (pHTInfo->bCurBW40MHz)?
+ ((pHTInfo->bCurShortGI40MHz)?1:0):
+ ((pHTInfo->bCurShortGI20MHz)?1:0);
+ return MCS_DATA_RATE[is40MHz][isShortGI][(nMcsRate&0x7f)];
+}
+
+u16 TxCountToDataRate( struct rtllib_device* ieee, u8 nDataRate)
+{
+ u16 CCKOFDMRate[12] = {0x02 , 0x04 , 0x0b , 0x16 , 0x0c , 0x12 , 0x18 , 0x24 , 0x30 , 0x48 , 0x60 , 0x6c};
+ u8 is40MHz = 0;
+ u8 isShortGI = 0;
+
+ if(nDataRate < 12)
+ {
+ return CCKOFDMRate[nDataRate];
+ }
+ else
+ {
+ if (nDataRate >= 0x10 && nDataRate <= 0x1f)
+ {
+ is40MHz = 0;
+ isShortGI = 0;
+
+ }
+ else if(nDataRate >=0x20 && nDataRate <= 0x2f )
+ {
+ is40MHz = 1;
+ isShortGI = 0;
+
+ }
+ else if(nDataRate >= 0x30 && nDataRate <= 0x3f )
+ {
+ is40MHz = 0;
+ isShortGI = 1;
+
+ }
+ else if(nDataRate >= 0x40 && nDataRate <= 0x4f )
+ {
+ is40MHz = 1;
+ isShortGI = 1;
+
+ }
+ return MCS_DATA_RATE[is40MHz][isShortGI][nDataRate&0xf];
+ }
+}
+
+
+
+bool IsHTHalfNmodeAPs(struct rtllib_device* ieee)
+{
+ bool retValue = false;
+ struct rtllib_network* net = &ieee->current_network;
+#if 0
+ if(ieee->bHalfNMode == false)
+ retValue = false;
+ else
+#endif
+ if((memcmp(net->bssid, BELKINF5D8233V1_RALINK, 3)==0) ||
+ (memcmp(net->bssid, BELKINF5D82334V3_RALINK, 3)==0) ||
+ (memcmp(net->bssid, PCI_RALINK, 3)==0) ||
+ (memcmp(net->bssid, EDIMAX_RALINK, 3)==0) ||
+ (memcmp(net->bssid, AIRLINK_RALINK, 3)==0) ||
+ (net->ralink_cap_exist))
+ retValue = true;
+ else if((memcmp(net->bssid, UNKNOWN_BORADCOM, 3)==0) ||
+ (memcmp(net->bssid, LINKSYSWRT330_LINKSYSWRT300_BROADCOM, 3)==0)||
+ (memcmp(net->bssid, LINKSYSWRT350_LINKSYSWRT150_BROADCOM, 3)==0)||
+ (net->broadcom_cap_exist))
+ retValue = true;
+ else if(net->bssht.bdRT2RTAggregation)
+ retValue = true;
+ else
+ retValue = false;
+
+ return retValue;
+}
+
+void HTIOTPeerDetermine(struct rtllib_device* ieee)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ struct rtllib_network* net = &ieee->current_network;
+ if(net->bssht.bdRT2RTAggregation){
+ pHTInfo->IOTPeer = HT_IOT_PEER_REALTEK;
+ if(net->bssht.RT2RT_HT_Mode & RT_HT_CAP_USE_92SE){
+ pHTInfo->IOTPeer = HT_IOT_PEER_REALTEK_92SE;
+ }
+ if(net->bssht.RT2RT_HT_Mode & RT_HT_CAP_USE_SOFTAP){
+ pHTInfo->IOTPeer = HT_IOT_PEER_92U_SOFTAP;
+ }
+ }
+ else if(net->broadcom_cap_exist)
+ pHTInfo->IOTPeer = HT_IOT_PEER_BROADCOM;
+ else if((memcmp(net->bssid, UNKNOWN_BORADCOM, 3)==0) ||
+ (memcmp(net->bssid, LINKSYSWRT330_LINKSYSWRT300_BROADCOM, 3)==0)||
+ (memcmp(net->bssid, LINKSYSWRT350_LINKSYSWRT150_BROADCOM, 3)==0)/*||
+ (memcmp(net->bssid, NETGEAR834Bv2_BROADCOM, 3)==0) */)
+ pHTInfo->IOTPeer = HT_IOT_PEER_BROADCOM;
+ else if((memcmp(net->bssid, BELKINF5D8233V1_RALINK, 3)==0) ||
+ (memcmp(net->bssid, BELKINF5D82334V3_RALINK, 3)==0) ||
+ (memcmp(net->bssid, PCI_RALINK, 3)==0) ||
+ (memcmp(net->bssid, EDIMAX_RALINK, 3)==0) ||
+ (memcmp(net->bssid, AIRLINK_RALINK, 3)==0) ||
+ net->ralink_cap_exist)
+ pHTInfo->IOTPeer = HT_IOT_PEER_RALINK;
+ else if((net->atheros_cap_exist )||
+ (memcmp(net->bssid, DLINK_ATHEROS_1, 3) == 0)||
+ (memcmp(net->bssid, DLINK_ATHEROS_2, 3) == 0))
+ pHTInfo->IOTPeer = HT_IOT_PEER_ATHEROS;
+ else if((memcmp(net->bssid, CISCO_BROADCOM, 3)==0)||net->cisco_cap_exist)
+ pHTInfo->IOTPeer = HT_IOT_PEER_CISCO;
+ else if ((memcmp(net->bssid, LINKSYS_MARVELL_4400N, 3) == 0) ||
+ net->marvell_cap_exist)
+ pHTInfo->IOTPeer = HT_IOT_PEER_MARVELL;
+ else
+ pHTInfo->IOTPeer = HT_IOT_PEER_UNKNOWN;
+
+ RTLLIB_DEBUG(RTLLIB_DL_IOT, "Joseph debug!! IOTPEER: %x\n", pHTInfo->IOTPeer);
+}
+
+u8 HTIOTActIsDisableMCS14(struct rtllib_device* ieee, u8* PeerMacAddr)
+{
+ u8 ret = 0;
+#if 0
+#if (HAL_CODE_BASE==RTL8192 && DEV_BUS_TYPE==USB_INTERFACE)
+ if((memcmp(PeerMacAddr, UNKNOWN_BORADCOM, 3)==0) ||
+ (memcmp(PeerMacAddr, LINKSYSWRT330_LINKSYSWRT300_BROADCOM, 3)==0)
+ )
+ {
+ ret = 1;
+ }
+
+
+ if(pHTInfo->bCurrentRT2RTAggregation)
+ {
+ ret = 1;
+ }
+#endif
+#endif
+ return ret;
+ }
+
+
+bool HTIOTActIsDisableMCS15(struct rtllib_device* ieee)
+{
+ bool retValue = false;
+
+#if defined(RTL8192U)
+ if(ieee->current_network.bssht.bdBandWidth == HT_CHANNEL_WIDTH_20_40)
+ retValue = true;
+ else
+ retValue = false;
+#endif
+
+
+ return retValue;
+}
+
+bool HTIOTActIsDisableMCSTwoSpatialStream(struct rtllib_device* ieee)
+{
+ bool retValue = false;
+#ifdef RTL8192U
+ struct rtllib_network* net = &ieee->current_network;
+
+ if((ieee->pHTInfo->bCurrentHTSupport == true) && (ieee->pairwise_key_type == KEY_TYPE_CCMP))
+ {
+ if((memcmp(net->bssid, BELKINF5D8233V1_RALINK, 3)==0) ||
+ (memcmp(net->bssid, PCI_RALINK, 3)==0) ||
+ (memcmp(net->bssid, EDIMAX_RALINK, 3)==0))
+ {
+ retValue = false;
+ }
+ }
+#endif
+#if defined(RTL8192SU) || defined RTL8192CE
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ if (ieee->rtllib_ap_sec_type &&
+ (ieee->rtllib_ap_sec_type(ieee)&(SEC_ALG_WEP|SEC_ALG_TKIP)))
+ {
+ if( (pHTInfo->IOTPeer != HT_IOT_PEER_ATHEROS) &&
+ (pHTInfo->IOTPeer != HT_IOT_PEER_UNKNOWN) &&
+ (pHTInfo->IOTPeer != HT_IOT_PEER_MARVELL) &&
+ (pHTInfo->IOTPeer != HT_IOT_PEER_REALTEK_92SE) &&
+ (pHTInfo->IOTPeer != HT_IOT_PEER_RALINK) )
+ retValue = true;
+ }
+#elif defined(RTL8192SE)
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ if (ieee->rtllib_ap_sec_type &&
+ (ieee->rtllib_ap_sec_type(ieee)&SEC_ALG_TKIP)) {
+ if(pHTInfo->IOTPeer == HT_IOT_PEER_RALINK){
+ retValue = true;
+ }
+ }
+#endif
+ return retValue;
+}
+
+u8 HTIOTActIsDisableEDCATurbo(struct rtllib_device* ieee, u8* PeerMacAddr)
+{
+ u8 retValue = false;
+
+ return retValue;
+#if 0
+ if((memcmp(PeerMacAddr, UNKNOWN_BORADCOM, 3)==0)||
+ (memcmp(PeerMacAddr, LINKSYSWRT330_LINKSYSWRT300_BROADCOM, 3)==0)||
+ (memcmp(PeerMacAddr, LINKSYSWRT350_LINKSYSWRT150_BROADCOM, 3)==0))
+
+ {
+ retValue = 1;
+ }
+
+ return retValue;
+#endif
+}
+
+
+bool HTIOTActIsEnableBETxOPLimit(struct rtllib_device* ieee)
+{
+ bool retValue = false;
+
+#if defined RTL8192SU
+ if(ieee->mode == IEEE_G)
+ retValue = true;
+#elif defined RTL8192CE
+ if(ieee->mode == IEEE_G ||
+ (ieee->rtllib_ap_sec_type(ieee)&(SEC_ALG_WEP|SEC_ALG_TKIP)))
+ retValue = true;
+#endif
+
+ return retValue;
+}
+
+
+u8 HTIOTActIsMgntUseCCK6M(struct rtllib_device* ieee,struct rtllib_network *network)
+{
+ u8 retValue = 0;
+
+
+#if (defined RTL8192U || defined RTL8192E || defined RTL8190P)
+ {
+ if(ieee->pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM)
+ {
+ retValue = 1;
+ }
+ }
+#endif
+
+ return retValue;
+}
+
+u8
+HTIOTActWAIOTBroadcom(struct rtllib_device* ieee)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ u8 retValue = false;
+ u8 boundary=59;
+
+ pHTInfo->bWAIotBroadcom = false;
+ if(ieee->pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM)
+ {
+ if(ieee->current_network.bssht.bdBandWidth == HT_CHANNEL_WIDTH_20_40)
+ {
+ if(!(pHTInfo->bCurBW40MHz))
+ {
+ if(ieee->current_network.mode != WIRELESS_MODE_B)
+ {
+ pHTInfo->bWAIotBroadcom = true;
+
+ if(ieee->b_customer_lenovo_id == true)
+ boundary = 30;
+
+ if( ieee->current_network.RSSI >= boundary)
+ retValue = true;
+ }
+ }else{
+ ;
+ }
+ }
+ }
+ return retValue;
+}
+
+u8 HTIOTActIsForcedCTS2Self(struct rtllib_device *ieee, struct rtllib_network *network)
+{
+ u8 retValue = 0;
+#if (defined RTL8192SE || defined RTL8192SU || defined RTL8192CE)
+ if((ieee->pHTInfo->IOTPeer == HT_IOT_PEER_MARVELL) ||(ieee->pHTInfo->IOTPeer == HT_IOT_PEER_ATHEROS) )
+#else
+ if(ieee->pHTInfo->IOTPeer == HT_IOT_PEER_MARVELL)
+#endif
+ {
+ retValue = 1;
+ }
+
+ return retValue;
+}
+
+u8 HTIOTActIsForcedRTSCTS(struct rtllib_device *ieee, struct rtllib_network *network)
+{
+ u8 retValue = 0;
+#if defined(RTL8192SE) || defined(RTL8192SU)
+ if(ieee->pHTInfo->bCurrentHTSupport)
+ {
+ if((ieee->pHTInfo->IOTPeer != HT_IOT_PEER_REALTEK)&&
+ (ieee->pHTInfo->IOTPeer != HT_IOT_PEER_REALTEK_92SE))
+ {
+ if((ieee->pHTInfo->IOTAction & HT_IOT_ACT_TX_NO_AGGREGATION) == 0)
+ retValue = 1;
+ }
+ }
+#endif
+ return retValue;
+}
+
+u8
+HTIOTActIsForcedAMSDU8K(struct rtllib_device *ieee, struct rtllib_network *network)
+{
+ u8 retValue = 0;
+
+ return retValue;
+}
+
+u8 HTIOTActIsCCDFsync(struct rtllib_device *ieee)
+{
+ u8 retValue = 0;
+#if (defined RTL8190P || defined RTL8192U || defined RTL8192SU)
+ if(ieee->pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM)
+ {
+ retValue = 1;
+ }
+#endif
+ return retValue;
+}
+
+u8
+HTIOCActRejcectADDBARequest(struct rtllib_network *network)
+{
+ u8 retValue = 0;
+#if (defined RTL8192SE || defined RTL8192SU || defined RTL8192CE)
+ {
+
+
+ }
+#endif
+
+ return retValue;
+
+}
+
+u8
+ HTIOTActIsEDCABiasRx(struct rtllib_device* ieee,struct rtllib_network *network)
+{
+ u8 retValue = 0;
+#ifdef RTL8192SU
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ {
+ if(pHTInfo->IOTPeer==HT_IOT_PEER_ATHEROS ||
+ pHTInfo->IOTPeer==HT_IOT_PEER_BROADCOM ||
+ pHTInfo->IOTPeer==HT_IOT_PEER_RALINK)
+ return 1;
+
+ }
+#elif defined RTL8192CE
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ {
+ if(pHTInfo->IOTPeer==HT_IOT_PEER_ATHEROS ||
+ pHTInfo->IOTPeer==HT_IOT_PEER_RALINK)
+ return 1;
+
+ }
+#elif defined RTL8192SE
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ {
+ if(ieee->rtllib_ap_sec_type != NULL)
+ if(ieee->rtllib_ap_sec_type(ieee) == SEC_ALG_CCMP)
+ if(pHTInfo->IOTPeer==HT_IOT_PEER_RALINK){
+ return 1;
+ }
+
+ }
+#endif
+ return retValue;
+}
+
+u8
+HTIOTActDisableShortGI(struct rtllib_device* ieee,struct rtllib_network *network)
+{
+ u8 retValue = 0;
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+
+ if(pHTInfo->IOTPeer==HT_IOT_PEER_RALINK)
+ {
+ retValue = 1;
+ }
+
+ return retValue;
+}
+
+u8
+HTIOTActDisableHighPower(struct rtllib_device* ieee,struct rtllib_network *network)
+{
+ u8 retValue = 0;
+#if (defined RTL8192SE || defined RTL8192SU || defined RTL8192CE)
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+#endif
+
+#ifdef RTL8192SU
+ if(pHTInfo->IOTPeer==HT_IOT_PEER_RALINK ||
+ pHTInfo->IOTPeer==HT_IOT_PEER_REALTEK ||
+ pHTInfo->IOTPeer==HT_IOT_PEER_REALTEK_92SE)
+ {
+ retValue = 1;
+ }
+#elif defined RTL8192SE || defined RTL8192CE
+ if(pHTInfo->IOTPeer==HT_IOT_PEER_RALINK ||
+ pHTInfo->IOTPeer==HT_IOT_PEER_REALTEK )
+ {
+ retValue = 1;
+ }
+#endif
+ return retValue;
+}
+
+void
+HTIOTActDetermineRaFunc(struct rtllib_device* ieee, bool bPeerRx2ss)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ pHTInfo->IOTRaFunc &= HT_IOT_RAFUNC_DISABLE_ALL;
+
+ if(pHTInfo->IOTPeer == HT_IOT_PEER_RALINK && !bPeerRx2ss)
+ pHTInfo->IOTRaFunc |= HT_IOT_RAFUNC_PEER_1R;
+
+ if(pHTInfo->IOTAction & HT_IOT_ACT_AMSDU_ENABLE)
+ pHTInfo->IOTRaFunc |= HT_IOT_RAFUNC_TX_AMSDU;
+
+}
+
+
+u8
+HTIOTActIsDisableTx40MHz(struct rtllib_device* ieee,struct rtllib_network *network)
+{
+ u8 retValue = 0;
+
+#if (defined RTL8192SU || defined RTL8192SE || defined RTL8192CE)
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ if( (KEY_TYPE_WEP104 == ieee->pairwise_key_type) ||
+ (KEY_TYPE_WEP40 == ieee->pairwise_key_type) ||
+ (KEY_TYPE_WEP104 == ieee->group_key_type) ||
+ (KEY_TYPE_WEP40 == ieee->group_key_type) ||
+ (KEY_TYPE_TKIP == ieee->pairwise_key_type) )
+ {
+ if((pHTInfo->IOTPeer==HT_IOT_PEER_REALTEK) && (network->bssht.bdSupportHT))
+ retValue = 1;
+ }
+#endif
+
+ return retValue;
+}
+
+u8
+HTIOTActIsTxNoAggregation(struct rtllib_device* ieee,struct rtllib_network *network)
+{
+ u8 retValue = 0;
+
+#if (defined RTL8192SU || defined RTL8192SE || defined RTL8192CE)
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ if( (KEY_TYPE_WEP104 == ieee->pairwise_key_type) ||
+ (KEY_TYPE_WEP40 == ieee->pairwise_key_type) ||
+ (KEY_TYPE_WEP104 == ieee->group_key_type) ||
+ (KEY_TYPE_WEP40 == ieee->group_key_type) ||
+ (KEY_TYPE_TKIP == ieee->pairwise_key_type) )
+ {
+ if(pHTInfo->IOTPeer==HT_IOT_PEER_REALTEK)
+ retValue = 1;
+ }
+#endif
+
+ return retValue;
+}
+
+
+u8
+HTIOTActIsDisableTx2SS(struct rtllib_device* ieee,struct rtllib_network *network)
+{
+ u8 retValue = 0;
+
+#if (defined RTL8192SU || defined RTL8192SE || defined RTL8192CE)
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ if( (KEY_TYPE_WEP104 == ieee->pairwise_key_type) ||
+ (KEY_TYPE_WEP40 == ieee->pairwise_key_type) ||
+ (KEY_TYPE_WEP104 == ieee->group_key_type) ||
+ (KEY_TYPE_WEP40 == ieee->group_key_type) ||
+ (KEY_TYPE_TKIP == ieee->pairwise_key_type) )
+ {
+ if((pHTInfo->IOTPeer==HT_IOT_PEER_REALTEK) && (network->bssht.bdSupportHT))
+ retValue = 1;
+ }
+#endif
+
+ return retValue;
+}
+
+
+bool HTIOCActIsDisableCckRate(struct rtllib_device* ieee,struct rtllib_network *network)
+{
+ bool retValue = false;
+#if defined(RTL8192SU)
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ if(pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM)
+ {
+ if((memcmp(network->bssid, NETGEAR_BROADCOM, 3)==0)
+ && (network->bssht.bdBandWidth == HT_CHANNEL_WIDTH_20_40))
+ return true;
+ }
+#endif
+ return retValue;
+}
+
+
+bool HTIOCActAllowPeerAggOnePacket(struct rtllib_device* ieee,struct rtllib_network *network)
+{
+ bool retValue = false;
+#if defined(RTL8192SE) || defined(RTL8192SU)
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ {
+ if(ieee->VersionID<2)
+ if(pHTInfo->IOTPeer == HT_IOT_PEER_MARVELL)
+ return true;
+
+ }
+#endif
+ return retValue;
+}
+
+bool
+HTIOTActIsNullDataPowerSaving(struct rtllib_device* ieee,struct rtllib_network *network)
+{
+ bool retValue = false;
+#if defined(RTL8192SE) || defined(RTL8192SU)
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ {
+ if(pHTInfo->IOTPeer == HT_IOT_PEER_BROADCOM)
+ return true;
+
+ }
+#endif
+ return retValue;
+}
+
+void HTResetIOTSetting(
+ PRT_HIGH_THROUGHPUT pHTInfo
+)
+{
+ pHTInfo->IOTAction = 0;
+ pHTInfo->IOTPeer = HT_IOT_PEER_UNKNOWN;
+ pHTInfo->IOTRaFunc = 0;
+}
+
+
+#ifdef _RTL8192_EXT_PATCH_
+void HTConstructCapabilityElement(struct rtllib_device* ieee, u8* posHTCap, u8* len, u8 IsEncrypt, u8 bIsBcn)
+#else
+void HTConstructCapabilityElement(struct rtllib_device* ieee, u8* posHTCap, u8* len, u8 IsEncrypt)
+#endif
+{
+ PRT_HIGH_THROUGHPUT pHT = ieee->pHTInfo;
+ PHT_CAPABILITY_ELE pCapELE = NULL;
+
+ if ((posHTCap == NULL) || (pHT == NULL))
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "posHTCap or pHTInfo can't be null in HTConstructCapabilityElement()\n");
+ return;
+ }
+ memset(posHTCap, 0, *len);
+ if(pHT->ePeerHTSpecVer == HT_SPEC_VER_EWC)
+ {
+ u8 EWC11NHTCap[] = {0x00, 0x90, 0x4c, 0x33};
+ memcpy(posHTCap, EWC11NHTCap, sizeof(EWC11NHTCap));
+ pCapELE = (PHT_CAPABILITY_ELE)&(posHTCap[4]);
+ }else
+ {
+ pCapELE = (PHT_CAPABILITY_ELE)posHTCap;
+ }
+
+ pCapELE->AdvCoding = 0;
+ if(ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev))
+ {
+ pCapELE->ChlWidth = 0;
+ }
+ else
+ {
+#ifdef _RTL8192_EXT_PATCH_
+ if(bIsBcn)
+ pCapELE->ChlWidth = (pHT->bCurBW40MHz?1:0);
+ else
+#endif
+ pCapELE->ChlWidth = (pHT->bRegBW40MHz?1:0);
+ }
+
+ pCapELE->MimoPwrSave = pHT->SelfMimoPs;
+ pCapELE->GreenField = 0;
+ pCapELE->ShortGI20Mhz = 1;
+ pCapELE->ShortGI40Mhz = 1;
+ pCapELE->TxSTBC = 1;
+#ifdef Rtl8192SE
+ pCapELE->TxSTBC = 0;
+#endif
+ pCapELE->RxSTBC = 0;
+ pCapELE->DelayBA = 0;
+ pCapELE->MaxAMSDUSize = (MAX_RECEIVE_BUFFER_SIZE>=7935)?1:0;
+ pCapELE->DssCCk = ((pHT->bRegBW40MHz)?(pHT->bRegSuppCCK?1:0):0);
+ pCapELE->PSMP = 0;
+ pCapELE->LSigTxopProtect = 0;
+
+
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "TX HT cap/info ele BW=%d MaxAMSDUSize:%d DssCCk:%d\n", pCapELE->ChlWidth, pCapELE->MaxAMSDUSize, pCapELE->DssCCk);
+
+ if( IsEncrypt)
+ {
+ pCapELE->MPDUDensity = 7;
+ pCapELE->MaxRxAMPDUFactor = 2;
+ }
+ else
+ {
+ pCapELE->MaxRxAMPDUFactor = 3;
+ pCapELE->MPDUDensity = 0;
+ }
+
+ memcpy(pCapELE->MCS, ieee->Regdot11HTOperationalRateSet, 16);
+ if(pHT->IOTAction & HT_IOT_ACT_DISABLE_MCS15)
+ pCapELE->MCS[1] &= 0x7f;
+
+ if(pHT->IOTAction & HT_IOT_ACT_DISABLE_MCS14)
+ pCapELE->MCS[1] &= 0xbf;
+
+ if(pHT->IOTAction & HT_IOT_ACT_DISABLE_ALL_2SS)
+ pCapELE->MCS[1] &= 0x00;
+
+ if(ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev))
+ {
+ int i;
+ for(i = 1; i< 16; i++)
+ pCapELE->MCS[i] = 0;
+ }
+
+ memset(&pCapELE->ExtHTCapInfo, 0, 2);
+
+
+ memset(pCapELE->TxBFCap, 0, 4);
+
+ pCapELE->ASCap = 0;
+ if(pHT->ePeerHTSpecVer == HT_SPEC_VER_EWC)
+ *len = 30 + 2;
+ else
+ *len = 26 + 2;
+
+
+
+
+ return;
+
+}
+void HTConstructInfoElement(struct rtllib_device* ieee, u8* posHTInfo, u8* len, u8 IsEncrypt)
+{
+ PRT_HIGH_THROUGHPUT pHT = ieee->pHTInfo;
+ PHT_INFORMATION_ELE pHTInfoEle = (PHT_INFORMATION_ELE)posHTInfo;
+ if ((posHTInfo == NULL) || (pHTInfoEle == NULL))
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "posHTInfo or pHTInfoEle can't be null in HTConstructInfoElement()\n");
+ return;
+ }
+
+ memset(posHTInfo, 0, *len);
+#ifdef _RTL8192_EXT_PATCH_
+ if ((ieee->iw_mode == IW_MODE_ADHOC) || (ieee->iw_mode == IW_MODE_MASTER) ||(ieee->iw_mode == IW_MODE_MESH) )
+#else
+ if ( (ieee->iw_mode == IW_MODE_ADHOC) || (ieee->iw_mode == IW_MODE_MASTER))
+#endif
+ {
+ pHTInfoEle->ControlChl = ieee->current_network.channel;
+#ifdef _RTL8192_EXT_PATCH_
+ if((!ieee->only_mesh) && (ieee->iw_mode == IW_MODE_MESH) && (ieee->state == RTLLIB_LINKED))
+ pHTInfoEle->ExtChlOffset = ((pHT->bRegBW40MHz == false)?HT_EXTCHNL_OFFSET_NO_EXT:
+ ieee->APExtChlOffset);
+ else if(ieee->iw_mode == IW_MODE_MESH)
+ pHTInfoEle->ExtChlOffset = ((pHT->bRegBW40MHz == false)?HT_EXTCHNL_OFFSET_NO_EXT:
+ (ieee->current_mesh_network.channel<=6)?
+ HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ else
+#endif
+ pHTInfoEle->ExtChlOffset = ((pHT->bRegBW40MHz == false)?HT_EXTCHNL_OFFSET_NO_EXT:
+ (ieee->current_network.channel<=6)?
+ HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ pHTInfoEle->RecommemdedTxWidth = pHT->bRegBW40MHz;
+ pHTInfoEle->RIFS = 0;
+ pHTInfoEle->PSMPAccessOnly = 0;
+ pHTInfoEle->SrvIntGranularity = 0;
+ pHTInfoEle->OptMode = pHT->CurrentOpMode;
+ pHTInfoEle->NonGFDevPresent = 0;
+ pHTInfoEle->DualBeacon = 0;
+ pHTInfoEle->SecondaryBeacon = 0;
+ pHTInfoEle->LSigTxopProtectFull = 0;
+ pHTInfoEle->PcoActive = 0;
+ pHTInfoEle->PcoPhase = 0;
+
+ memset(pHTInfoEle->BasicMSC, 0, 16);
+
+
+ *len = 22 + 2;
+
+ }
+ else
+ {
+ *len = 0;
+ }
+ return;
+}
+
+void HTConstructRT2RTAggElement(struct rtllib_device* ieee, u8* posRT2RTAgg, u8* len)
+{
+ if (posRT2RTAgg == NULL) {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "posRT2RTAgg can't be null in HTConstructRT2RTAggElement()\n");
+ return;
+ }
+ memset(posRT2RTAgg, 0, *len);
+ *posRT2RTAgg++ = 0x00;
+ *posRT2RTAgg++ = 0xe0;
+ *posRT2RTAgg++ = 0x4c;
+ *posRT2RTAgg++ = 0x02;
+ *posRT2RTAgg++ = 0x01;
+
+#ifdef RTL8192CE
+ *posRT2RTAgg = 0x70;
+#else
+ *posRT2RTAgg = 0x10;
+#endif
+
+ if(ieee->bSupportRemoteWakeUp) {
+ *posRT2RTAgg |= RT_HT_CAP_USE_WOW;
+ }
+
+ *len = 6 + 2;
+
+ return;
+
+#ifdef TODO
+ posRT2RTAgg->Length = 6;
+#endif
+
+
+
+
+}
+
+u8 HT_PickMCSRate(struct rtllib_device* ieee, u8* pOperateMCS)
+{
+ u8 i;
+ if (pOperateMCS == NULL)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "pOperateMCS can't be null in HT_PickMCSRate()\n");
+ return false;
+ }
+
+ switch(ieee->mode)
+ {
+ case IEEE_A:
+ case IEEE_B:
+ case IEEE_G:
+
+ for(i=0;i<=15;i++){
+ pOperateMCS[i] = 0;
+ }
+ break;
+
+ case IEEE_N_24G:
+ case IEEE_N_5G:
+
+ pOperateMCS[0] &=RATE_ADPT_1SS_MASK;
+ pOperateMCS[1] &=RATE_ADPT_2SS_MASK;
+ pOperateMCS[3] &=RATE_ADPT_MCS32_MASK;
+ break;
+
+ default:
+
+ break;
+
+ }
+
+ return true;
+}
+
+u8 HTGetHighestMCSRate(struct rtllib_device* ieee, u8* pMCSRateSet, u8* pMCSFilter)
+{
+ u8 i, j;
+ u8 bitMap;
+ u8 mcsRate = 0;
+ u8 availableMcsRate[16];
+ if (pMCSRateSet == NULL || pMCSFilter == NULL)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "pMCSRateSet or pMCSFilter can't be null in HTGetHighestMCSRate()\n");
+ return false;
+ }
+ for(i=0; i<16; i++)
+ availableMcsRate[i] = pMCSRateSet[i] & pMCSFilter[i];
+
+ for(i = 0; i < 16; i++)
+ {
+ if(availableMcsRate[i] != 0)
+ break;
+ }
+ if(i == 16)
+ return false;
+
+ for(i = 0; i < 16; i++)
+ {
+ if(availableMcsRate[i] != 0)
+ {
+ bitMap = availableMcsRate[i];
+ for(j = 0; j < 8; j++)
+ {
+ if((bitMap%2) != 0)
+ {
+ if(HTMcsToDataRate(ieee, (8*i+j)) > HTMcsToDataRate(ieee, mcsRate))
+ mcsRate = (8*i+j);
+ }
+ bitMap = bitMap>>1;
+ }
+ }
+ }
+ return (mcsRate|0x80);
+}
+
+u8 HTFilterMCSRate( struct rtllib_device* ieee, u8* pSupportMCS, u8* pOperateMCS)
+{
+
+ u8 i=0;
+
+ for(i=0;i<=15;i++){
+ pOperateMCS[i] = ieee->Regdot11TxHTOperationalRateSet[i]&pSupportMCS[i];
+ }
+
+
+
+ HT_PickMCSRate(ieee, pOperateMCS);
+
+ if(ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev))
+ pOperateMCS[1] = 0;
+
+ for(i=2; i<=15; i++)
+ pOperateMCS[i] = 0;
+
+ return true;
+}
+void HTSetConnectBwMode(struct rtllib_device* ieee, HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset);
+void HTOnAssocRsp(struct rtllib_device *ieee)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ PHT_CAPABILITY_ELE pPeerHTCap = NULL;
+ PHT_INFORMATION_ELE pPeerHTInfo = NULL;
+ u16 nMaxAMSDUSize = 0;
+ u8* pMcsFilter = NULL;
+
+ static u8 EWC11NHTCap[] = {0x00, 0x90, 0x4c, 0x33};
+ static u8 EWC11NHTInfo[] = {0x00, 0x90, 0x4c, 0x34};
+
+ if( pHTInfo->bCurrentHTSupport == false )
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "<=== HTOnAssocRsp(): HT_DISABLE\n");
+ return;
+ }
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "===> HTOnAssocRsp_wq(): HT_ENABLE\n");
+
+ if(!memcmp(pHTInfo->PeerHTCapBuf,EWC11NHTCap, sizeof(EWC11NHTCap)))
+ pPeerHTCap = (PHT_CAPABILITY_ELE)(&pHTInfo->PeerHTCapBuf[4]);
+ else
+ pPeerHTCap = (PHT_CAPABILITY_ELE)(pHTInfo->PeerHTCapBuf);
+
+ if(!memcmp(pHTInfo->PeerHTInfoBuf, EWC11NHTInfo, sizeof(EWC11NHTInfo)))
+ pPeerHTInfo = (PHT_INFORMATION_ELE)(&pHTInfo->PeerHTInfoBuf[4]);
+ else
+ pPeerHTInfo = (PHT_INFORMATION_ELE)(pHTInfo->PeerHTInfoBuf);
+
+#ifdef _RTL8192_EXT_PATCH_
+ ieee->APExtChlOffset = (HT_EXTCHNL_OFFSET)(pPeerHTInfo->ExtChlOffset);
+#endif
+ RTLLIB_DEBUG_DATA(RTLLIB_DL_DATA|RTLLIB_DL_HT, pPeerHTCap, sizeof(HT_CAPABILITY_ELE));
+ HTSetConnectBwMode(ieee, (HT_CHANNEL_WIDTH)(pPeerHTCap->ChlWidth), (HT_EXTCHNL_OFFSET)(pPeerHTInfo->ExtChlOffset));
+#if defined RTL8192SE || defined RTL8192SU || defined RTL8192CE
+ if(pHTInfo->bCurBW40MHz == true)
+#endif
+ pHTInfo->bCurTxBW40MHz = ((pPeerHTInfo->RecommemdedTxWidth == 1)?true:false);
+
+ pHTInfo->bCurShortGI20MHz=
+ ((pHTInfo->bRegShortGI20MHz)?((pPeerHTCap->ShortGI20Mhz==1)?true:false):false);
+ pHTInfo->bCurShortGI40MHz=
+ ((pHTInfo->bRegShortGI40MHz)?((pPeerHTCap->ShortGI40Mhz==1)?true:false):false);
+
+ pHTInfo->bCurSuppCCK =
+ ((pHTInfo->bRegSuppCCK)?((pPeerHTCap->DssCCk==1)?true:false):false);
+
+
+ pHTInfo->bCurrent_AMSDU_Support = pHTInfo->bAMSDU_Support;
+
+ nMaxAMSDUSize = (pPeerHTCap->MaxAMSDUSize==0)?3839:7935;
+
+ if(pHTInfo->nAMSDU_MaxSize > nMaxAMSDUSize )
+ pHTInfo->nCurrent_AMSDU_MaxSize = nMaxAMSDUSize;
+ else
+ pHTInfo->nCurrent_AMSDU_MaxSize = pHTInfo->nAMSDU_MaxSize;
+
+ pHTInfo->bCurrentAMPDUEnable = pHTInfo->bAMPDUEnable;
+ if (ieee->rtllib_ap_sec_type &&
+ (ieee->rtllib_ap_sec_type(ieee)&(SEC_ALG_WEP|SEC_ALG_TKIP))){
+ if( (pHTInfo->IOTPeer== HT_IOT_PEER_ATHEROS) ||
+ (pHTInfo->IOTPeer == HT_IOT_PEER_UNKNOWN) )
+ pHTInfo->bCurrentAMPDUEnable = false;
+ }
+
+ if(!pHTInfo->bRegRT2RTAggregation)
+ {
+ if(pHTInfo->AMPDU_Factor > pPeerHTCap->MaxRxAMPDUFactor)
+ pHTInfo->CurrentAMPDUFactor = pPeerHTCap->MaxRxAMPDUFactor;
+ else
+ pHTInfo->CurrentAMPDUFactor = pHTInfo->AMPDU_Factor;
+
+ } else {
+#if 0
+ osTmp= PacketGetElement( asocpdu, EID_Vendor, OUI_SUB_REALTEK_AGG, OUI_SUBTYPE_DONT_CARE);
+ if(osTmp.Length >= 5)
+#endif
+ if (ieee->current_network.bssht.bdRT2RTAggregation)
+ {
+ if( ieee->pairwise_key_type != KEY_TYPE_NA)
+ pHTInfo->CurrentAMPDUFactor = pPeerHTCap->MaxRxAMPDUFactor;
+ else
+ pHTInfo->CurrentAMPDUFactor = HT_AGG_SIZE_64K;
+ }else
+ {
+ if(pPeerHTCap->MaxRxAMPDUFactor < HT_AGG_SIZE_32K)
+ pHTInfo->CurrentAMPDUFactor = pPeerHTCap->MaxRxAMPDUFactor;
+ else
+ pHTInfo->CurrentAMPDUFactor = HT_AGG_SIZE_32K;
+ }
+ }
+
+#if 0
+ if(pHTInfo->MPDU_Density > pPeerHTCap->MPDUDensity)
+ pHTInfo->CurrentMPDUDensity = pHTInfo->MPDU_Density;
+ else
+ pHTInfo->CurrentMPDUDensity = pPeerHTCap->MPDUDensity;
+ if(ieee->pairwise_key_type != KEY_TYPE_NA )
+ pHTInfo->CurrentMPDUDensity = 7;
+#else
+ if(pHTInfo->MPDU_Density > pPeerHTCap->MPDUDensity)
+ pHTInfo->CurrentMPDUDensity = pHTInfo->MPDU_Density;
+ else
+ pHTInfo->CurrentMPDUDensity = pPeerHTCap->MPDUDensity;
+#endif
+#if (defined RTL8192SE || defined RTL8192SU || defined RTL8192CE)
+ if(ieee->SetHwRegHandler != NULL) {
+ ieee->SetHwRegHandler( ieee->dev, HW_VAR_SHORTGI_DENSITY, (u8*)(&ieee->MaxMssDensity));
+ ieee->SetHwRegHandler(ieee->dev, HW_VAR_AMPDU_FACTOR, &pHTInfo->CurrentAMPDUFactor);
+ ieee->SetHwRegHandler(ieee->dev, HW_VAR_AMPDU_MIN_SPACE, &pHTInfo->CurrentMPDUDensity);
+ }
+#elif defined RTL8192CE
+ if(ieee->SetHwRegHandler != NULL) {
+ ieee->SetHwRegHandler(ieee->dev, HW_VAR_AMPDU_FACTOR, &pHTInfo->CurrentAMPDUFactor);
+ ieee->SetHwRegHandler(ieee->dev, HW_VAR_AMPDU_MIN_SPACE, &pHTInfo->CurrentMPDUDensity);
+ }
+#endif
+#ifndef RTL8190P
+ if(pHTInfo->IOTAction & HT_IOT_ACT_TX_USE_AMSDU_8K)
+#else
+ if( 0 )
+#endif
+ {
+ pHTInfo->bCurrentAMPDUEnable = false;
+ pHTInfo->ForcedAMSDUMode = HT_AGG_FORCE_ENABLE;
+ pHTInfo->ForcedAMSDUMaxSize = 7935;
+ }
+ pHTInfo->bCurRxReorderEnable = pHTInfo->bRegRxReorderEnable;
+
+
+ if(pPeerHTCap->MCS[0] == 0)
+ pPeerHTCap->MCS[0] = 0xff;
+
+ HTIOTActDetermineRaFunc(ieee, ((pPeerHTCap->MCS[1])!=0));
+
+ HTFilterMCSRate(ieee, pPeerHTCap->MCS, ieee->dot11HTOperationalRateSet);
+
+ pHTInfo->PeerMimoPs = pPeerHTCap->MimoPwrSave;
+ if(pHTInfo->PeerMimoPs == MIMO_PS_STATIC)
+ pMcsFilter = MCS_FILTER_1SS;
+ else
+ pMcsFilter = MCS_FILTER_ALL;
+ ieee->HTHighestOperaRate = HTGetHighestMCSRate(ieee, ieee->dot11HTOperationalRateSet, pMcsFilter);
+ ieee->HTCurrentOperaRate = ieee->HTHighestOperaRate;
+
+ pHTInfo->CurrentOpMode = pPeerHTInfo->OptMode;
+
+}
+
+void HTSetConnectBwModeCallback(struct rtllib_device* ieee);
+void HTInitializeHTInfo(struct rtllib_device* ieee)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "===========>%s()\n", __FUNCTION__);
+ pHTInfo->bCurrentHTSupport = false;
+
+ pHTInfo->bCurBW40MHz = false;
+ pHTInfo->bCurTxBW40MHz = false;
+
+ pHTInfo->bCurShortGI20MHz = false;
+ pHTInfo->bCurShortGI40MHz = false;
+ pHTInfo->bForcedShortGI = false;
+
+ pHTInfo->bCurSuppCCK = true;
+
+ pHTInfo->bCurrent_AMSDU_Support = false;
+ pHTInfo->nCurrent_AMSDU_MaxSize = pHTInfo->nAMSDU_MaxSize;
+#ifdef _RTL8192_EXT_PATCH_
+ pHTInfo->bCurrent_Mesh_AMSDU_Support = true;
+#endif
+ pHTInfo->CurrentMPDUDensity = pHTInfo->MPDU_Density;
+ pHTInfo->CurrentAMPDUFactor = pHTInfo->AMPDU_Factor;
+
+ memset((void*)(&(pHTInfo->SelfHTCap)), 0, sizeof(pHTInfo->SelfHTCap));
+ memset((void*)(&(pHTInfo->SelfHTInfo)), 0, sizeof(pHTInfo->SelfHTInfo));
+ memset((void*)(&(pHTInfo->PeerHTCapBuf)), 0, sizeof(pHTInfo->PeerHTCapBuf));
+ memset((void*)(&(pHTInfo->PeerHTInfoBuf)), 0, sizeof(pHTInfo->PeerHTInfoBuf));
+
+ pHTInfo->bSwBwInProgress = false;
+ pHTInfo->ChnlOp = CHNLOP_NONE;
+
+ pHTInfo->ePeerHTSpecVer = HT_SPEC_VER_IEEE;
+
+ pHTInfo->bCurrentRT2RTAggregation = false;
+ pHTInfo->bCurrentRT2RTLongSlotTime = false;
+ pHTInfo->RT2RT_HT_Mode = (RT_HT_CAPBILITY)0;
+
+ pHTInfo->IOTPeer = 0;
+ pHTInfo->IOTAction = 0;
+ pHTInfo->IOTRaFunc = 0;
+
+ {
+ u8* RegHTSuppRateSets = &(ieee->RegHTSuppRateSet[0]);
+ RegHTSuppRateSets[0] = 0xFF;
+ RegHTSuppRateSets[1] = 0xFF;
+ RegHTSuppRateSets[4] = 0x01;
+ }
+}
+void HTInitializeBssDesc(PBSS_HT pBssHT)
+{
+
+ pBssHT->bdSupportHT = false;
+ memset(pBssHT->bdHTCapBuf, 0, sizeof(pBssHT->bdHTCapBuf));
+ pBssHT->bdHTCapLen = 0;
+ memset(pBssHT->bdHTInfoBuf, 0, sizeof(pBssHT->bdHTInfoBuf));
+ pBssHT->bdHTInfoLen = 0;
+
+ pBssHT->bdHTSpecVer= HT_SPEC_VER_IEEE;
+
+ pBssHT->bdRT2RTAggregation = false;
+ pBssHT->bdRT2RTLongSlotTime = false;
+ pBssHT->RT2RT_HT_Mode = (RT_HT_CAPBILITY)0;
+}
+
+void HTResetSelfAndSavePeerSetting(struct rtllib_device* ieee, struct rtllib_network * pNetwork)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ u8 bIOTAction = 0;
+
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "==============>%s()\n", __FUNCTION__);
+ /*unmark bEnableHT flag here is the same reason why unmarked in function rtllib_softmac_new_net. WB 2008.09.10*/
+ if (pNetwork->bssht.bdSupportHT)
+ {
+ pHTInfo->bCurrentHTSupport = true;
+ pHTInfo->ePeerHTSpecVer = pNetwork->bssht.bdHTSpecVer;
+
+ if(pNetwork->bssht.bdHTCapLen > 0 && pNetwork->bssht.bdHTCapLen <= sizeof(pHTInfo->PeerHTCapBuf))
+ memcpy(pHTInfo->PeerHTCapBuf, pNetwork->bssht.bdHTCapBuf, pNetwork->bssht.bdHTCapLen);
+
+ if(pNetwork->bssht.bdHTInfoLen > 0 && pNetwork->bssht.bdHTInfoLen <= sizeof(pHTInfo->PeerHTInfoBuf))
+ memcpy(pHTInfo->PeerHTInfoBuf, pNetwork->bssht.bdHTInfoBuf, pNetwork->bssht.bdHTInfoLen);
+
+ if(pHTInfo->bRegRT2RTAggregation)
+ {
+ pHTInfo->bCurrentRT2RTAggregation = pNetwork->bssht.bdRT2RTAggregation;
+ pHTInfo->bCurrentRT2RTLongSlotTime = pNetwork->bssht.bdRT2RTLongSlotTime;
+ pHTInfo->RT2RT_HT_Mode = pNetwork->bssht.RT2RT_HT_Mode;
+ }
+ else
+ {
+ pHTInfo->bCurrentRT2RTAggregation = false;
+ pHTInfo->bCurrentRT2RTLongSlotTime = false;
+ pHTInfo->RT2RT_HT_Mode = (RT_HT_CAPBILITY)0;
+ }
+
+ HTIOTPeerDetermine(ieee);
+
+ pHTInfo->IOTAction = 0;
+ bIOTAction = HTIOTActIsDisableMCS14(ieee, pNetwork->bssid);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_MCS14;
+
+ bIOTAction = HTIOTActIsDisableMCS15(ieee);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_MCS15;
+
+ bIOTAction = HTIOTActIsDisableMCSTwoSpatialStream(ieee);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_ALL_2SS;
+
+
+ bIOTAction = HTIOTActIsDisableEDCATurbo(ieee, pNetwork->bssid);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_EDCA_TURBO;
+
+#if defined(RTL8190P) || defined(RTL8192E) || defined(RTL8192U)
+ bIOTAction = HTIOTActIsMgntUseCCK6M(ieee,pNetwork);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_MGNT_USE_CCK_6M;
+#elif defined(RTL8192SE) || defined(RTL8192SU) || defined RTL8192CE
+ bIOTAction = HTIOTActWAIOTBroadcom(ieee);
+ if(bIOTAction)
+ {
+ pHTInfo->IOTAction |= HT_IOT_ACT_WA_IOT_Broadcom;
+ }
+#endif
+ bIOTAction = HTIOTActIsCCDFsync(ieee);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_CDD_FSYNC;
+#if defined(RTL8192SU) || defined(RTL8192SE) || defined RTL8192CE
+ bIOTAction = HTIOTActIsForcedCTS2Self(ieee,pNetwork);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_FORCED_CTS2SELF;
+
+
+ bIOTAction = HTIOTActIsEnableBETxOPLimit(ieee);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_FORCED_ENABLE_BE_TXOP;
+
+#if defined(RTL8192SU)
+ bIOTAction = HTIOCActRejcectADDBARequest(pNetwork);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_REJECT_ADDBA_REQ;
+#endif
+
+ bIOTAction = HTIOCActAllowPeerAggOnePacket(ieee, pNetwork);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_ALLOW_PEER_AGG_ONE_PKT;
+
+ bIOTAction = HTIOTActIsEDCABiasRx(ieee, pNetwork);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_EDCA_BIAS_ON_RX;
+
+#if defined(RTL8192SU)
+ bIOTAction = HTIOCActIsDisableCckRate(ieee, pNetwork);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_CCK_RATE;
+#endif
+ bIOTAction = HTIOTActDisableShortGI(ieee, pNetwork);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_SHORT_GI;
+
+ bIOTAction = HTIOTActDisableHighPower(ieee, pNetwork);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_HIGH_POWER;
+
+
+ bIOTAction = HTIOTActIsForcedAMSDU8K(ieee, pNetwork);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_TX_USE_AMSDU_8K;
+
+#if defined(RTL8192SU)
+ bIOTAction = HTIOTActIsTxNoAggregation(ieee, pNetwork);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_TX_NO_AGGREGATION;
+
+ bIOTAction = HTIOTActIsDisableTx40MHz(ieee, pNetwork);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_TX_40_MHZ;
+
+ bIOTAction = HTIOTActIsDisableTx2SS(ieee, pNetwork);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_DISABLE_TX_2SS;
+#endif
+
+ bIOTAction = HTIOTActIsForcedRTSCTS(ieee, pNetwork);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_FORCED_RTS;
+
+ bIOTAction = HTIOTActIsNullDataPowerSaving(ieee, pNetwork);
+ if(bIOTAction)
+ pHTInfo->IOTAction |= HT_IOT_ACT_NULL_DATA_POWER_SAVING;
+#endif
+ }
+ else
+ {
+ pHTInfo->bCurrentHTSupport = false;
+ pHTInfo->bCurrentRT2RTAggregation = false;
+ pHTInfo->bCurrentRT2RTLongSlotTime = false;
+ pHTInfo->RT2RT_HT_Mode = (RT_HT_CAPBILITY)0;
+
+ pHTInfo->IOTAction = 0;
+ pHTInfo->IOTRaFunc = 0;
+ }
+
+}
+
+void HTUpdateSelfAndPeerSetting(struct rtllib_device* ieee, struct rtllib_network * pNetwork)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ PHT_INFORMATION_ELE pPeerHTInfo = (PHT_INFORMATION_ELE)pNetwork->bssht.bdHTInfoBuf;
+
+ if(pHTInfo->bCurrentHTSupport)
+ {
+ if(pNetwork->bssht.bdHTInfoLen != 0)
+ pHTInfo->CurrentOpMode = pPeerHTInfo->OptMode;
+
+ }
+}
+
+void HTUseDefaultSetting(struct rtllib_device* ieee)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+
+#ifdef _RTL8192_EXT_PATCH_
+ ieee->current_mesh_network.qos_data.supported = 1;
+ ieee->current_mesh_network.qos_data.active = ieee->current_mesh_network.qos_data.supported;
+#endif
+ if(pHTInfo->bEnableHT)
+ {
+ pHTInfo->bCurrentHTSupport = true;
+ pHTInfo->bCurSuppCCK = pHTInfo->bRegSuppCCK;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if(!((ieee->iw_mode == IW_MODE_MESH) && ieee->proto_started && (ieee->state == RTLLIB_LINKED)))
+ pHTInfo->bCurBW40MHz = pHTInfo->bRegBW40MHz;
+#else
+ pHTInfo->bCurBW40MHz = pHTInfo->bRegBW40MHz;
+#endif
+ pHTInfo->bCurShortGI20MHz= pHTInfo->bRegShortGI20MHz;
+
+ pHTInfo->bCurShortGI40MHz= pHTInfo->bRegShortGI40MHz;
+#ifdef _RTL8192_EXT_PATCH_
+ ieee->current_mesh_network.qos_data.supported = 1;
+ ieee->current_mesh_network.qos_data.active = ieee->current_mesh_network.qos_data.supported;
+#endif
+
+ if(ieee->iw_mode == IW_MODE_ADHOC)
+ {
+ ieee->current_network.qos_data.active = ieee->current_network.qos_data.supported;
+ }
+#ifdef ENABLE_AMSDU
+ if(ieee->iw_mode == IW_MODE_ADHOC)
+ {
+ pHTInfo->bCurrent_AMSDU_Support = 1;
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ else if(ieee->iw_mode == IW_MODE_MESH)
+ {
+#ifdef COMPATIBLE_WITH_RALINK_MESH
+ pHTInfo->bCurrent_Mesh_AMSDU_Support = 0;
+#else
+ pHTInfo->bCurrent_Mesh_AMSDU_Support = 1;
+#endif
+ pHTInfo->bCurrent_AMSDU_Support = pHTInfo->bAMSDU_Support;
+ }
+#endif
+ else
+ pHTInfo->bCurrent_AMSDU_Support = pHTInfo->bAMSDU_Support;
+#else
+ pHTInfo->bCurrent_AMSDU_Support = pHTInfo->bAMSDU_Support;
+#endif
+ pHTInfo->nCurrent_AMSDU_MaxSize = pHTInfo->nAMSDU_MaxSize;
+
+#ifdef ENABLE_AMSDU
+ if(ieee->iw_mode == IW_MODE_ADHOC)
+ pHTInfo->bCurrentAMPDUEnable = 0;
+#ifdef _RTL8192_EXT_PATCH_
+ else if(ieee->iw_mode == IW_MODE_MESH)
+ {
+#ifdef COMPATIBLE_WITH_RALINK_MESH
+ pHTInfo->bCurrentMeshAMPDUEnable = 1;
+#else
+ pHTInfo->bCurrentMeshAMPDUEnable = 0;
+#endif
+ pHTInfo->bCurrentAMPDUEnable = pHTInfo->bAMPDUEnable;
+ }
+#endif
+ else
+ pHTInfo->bCurrentAMPDUEnable = pHTInfo->bAMPDUEnable;
+#else
+ pHTInfo->bCurrentAMPDUEnable = pHTInfo->bAMPDUEnable;
+#endif
+ pHTInfo->CurrentAMPDUFactor = pHTInfo->AMPDU_Factor;
+
+ pHTInfo->CurrentMPDUDensity = pHTInfo->CurrentMPDUDensity;
+
+
+ HTFilterMCSRate(ieee, ieee->Regdot11TxHTOperationalRateSet, ieee->dot11HTOperationalRateSet);
+#ifdef TODO
+ Adapter->HalFunc.InitHalRATRTableHandler( Adapter, &pMgntInfo->dot11OperationalRateSet, pMgntInfo->dot11HTOperationalRateSet);
+#endif
+ ieee->HTHighestOperaRate = HTGetHighestMCSRate(ieee, ieee->dot11HTOperationalRateSet, MCS_FILTER_ALL);
+ ieee->HTCurrentOperaRate = ieee->HTHighestOperaRate;
+
+#if (defined RTL8192SE || defined RTL8192SU || defined RTL8192CE)
+ if(ieee->SetHwRegHandler != NULL) {
+ ieee->SetHwRegHandler( ieee->dev, HW_VAR_SHORTGI_DENSITY, (u8*)(&ieee->MaxMssDensity));
+ ieee->SetHwRegHandler(ieee->dev, HW_VAR_AMPDU_FACTOR, &pHTInfo->CurrentAMPDUFactor);
+ ieee->SetHwRegHandler(ieee->dev, HW_VAR_AMPDU_MIN_SPACE, &pHTInfo->CurrentMPDUDensity);
+ }
+#endif
+
+ }
+ else
+ {
+ pHTInfo->bCurrentHTSupport = false;
+ }
+ return;
+}
+u8 HTCCheck(struct rtllib_device* ieee, u8* pFrame)
+{
+ if(ieee->pHTInfo->bCurrentHTSupport)
+ {
+ if( (IsQoSDataFrame(pFrame) && Frame_Order(pFrame)) == 1)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "HT CONTROL FILED EXIST!!\n");
+ return true;
+ }
+ }
+ return false;
+}
+
+void HTSetConnectBwMode(struct rtllib_device* ieee, HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+
+ if(pHTInfo->bRegBW40MHz == false)
+ return;
+
+ if(ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev))
+ Bandwidth=HT_CHANNEL_WIDTH_20;
+
+
+ if(pHTInfo->bSwBwInProgress) {
+ printk("%s: bSwBwInProgress!!\n", __FUNCTION__);
+ return;
+ }
+ if(Bandwidth==HT_CHANNEL_WIDTH_20_40)
+ {
+ if(ieee->current_network.channel<2 && Offset==HT_EXTCHNL_OFFSET_LOWER)
+ Offset = HT_EXTCHNL_OFFSET_NO_EXT;
+ if(Offset==HT_EXTCHNL_OFFSET_UPPER || Offset==HT_EXTCHNL_OFFSET_LOWER) {
+ pHTInfo->bCurBW40MHz = true;
+ pHTInfo->CurSTAExtChnlOffset = Offset;
+ } else {
+ pHTInfo->bCurBW40MHz = false;
+ pHTInfo->CurSTAExtChnlOffset = HT_EXTCHNL_OFFSET_NO_EXT;
+ }
+ } else {
+ pHTInfo->bCurBW40MHz = false;
+ pHTInfo->CurSTAExtChnlOffset = HT_EXTCHNL_OFFSET_NO_EXT;
+ }
+
+ printk("%s():pHTInfo->bCurBW40MHz:%x\n", __func__, pHTInfo->bCurBW40MHz);
+
+ pHTInfo->bSwBwInProgress = true;
+
+ HTSetConnectBwModeCallback(ieee);
+
+}
+
+void HTSetConnectBwModeCallback(struct rtllib_device* ieee)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+
+ RTLLIB_DEBUG(RTLLIB_DL_HT, "======>%s()\n", __FUNCTION__);
+ if(pHTInfo->bCurBW40MHz)
+ {
+ if(pHTInfo->CurSTAExtChnlOffset==HT_EXTCHNL_OFFSET_UPPER)
+ ieee->set_chan(ieee->dev, ieee->current_network.channel+2);
+ else if(pHTInfo->CurSTAExtChnlOffset==HT_EXTCHNL_OFFSET_LOWER)
+ ieee->set_chan(ieee->dev, ieee->current_network.channel-2);
+ else
+ ieee->set_chan(ieee->dev, ieee->current_network.channel);
+
+ ieee->SetBWModeHandler(ieee->dev, HT_CHANNEL_WIDTH_20_40, pHTInfo->CurSTAExtChnlOffset);
+ } else {
+ ieee->set_chan(ieee->dev, ieee->current_network.channel);
+ ieee->SetBWModeHandler(ieee->dev, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT);
+ }
+
+ pHTInfo->bSwBwInProgress = false;
+}
+
+#ifndef BUILT_IN_RTLLIB
+EXPORT_SYMBOL_RSL(HTUpdateSelfAndPeerSetting);
+EXPORT_SYMBOL_RSL(HTFilterMCSRate);
+EXPORT_SYMBOL_RSL(HTGetHighestMCSRate);
+EXPORT_SYMBOL_RSL(MCS_FILTER_ALL);
+EXPORT_SYMBOL_RSL(MCS_FILTER_1SS);
+#ifdef _RTL8192_EXT_PATCH_
+EXPORT_SYMBOL_RSL(HTSetConnectBwMode);
+EXPORT_SYMBOL_RSL(HTConstructCapabilityElement);
+EXPORT_SYMBOL_RSL(HTConstructRT2RTAggElement);
+EXPORT_SYMBOL_RSL(HTUseDefaultSetting);
+EXPORT_SYMBOL_RSL(HTConstructInfoElement);
+#endif
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/rtl819x_Qos.h b/ubuntu/rtl8192se/rtllib/rtl819x_Qos.h
new file mode 100755
index 00000000000..9e0a9a29e7a
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtl819x_Qos.h
@@ -0,0 +1,619 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef __INC_QOS_TYPE_H
+#define __INC_QOS_TYPE_H
+
+#define BIT0 0x00000001
+#define BIT1 0x00000002
+#define BIT2 0x00000004
+#define BIT3 0x00000008
+#define BIT4 0x00000010
+#define BIT5 0x00000020
+#define BIT6 0x00000040
+#define BIT7 0x00000080
+#define BIT8 0x00000100
+#define BIT9 0x00000200
+#define BIT10 0x00000400
+#define BIT11 0x00000800
+#define BIT12 0x00001000
+#define BIT13 0x00002000
+#define BIT14 0x00004000
+#define BIT15 0x00008000
+#define BIT16 0x00010000
+#define BIT17 0x00020000
+#define BIT18 0x00040000
+#define BIT19 0x00080000
+#define BIT20 0x00100000
+#define BIT21 0x00200000
+#define BIT22 0x00400000
+#define BIT23 0x00800000
+#define BIT24 0x01000000
+#define BIT25 0x02000000
+#define BIT26 0x04000000
+#define BIT27 0x08000000
+#define BIT28 0x10000000
+#define BIT29 0x20000000
+#define BIT30 0x40000000
+#define BIT31 0x80000000
+
+#define MAX_WMMELE_LENGTH 64
+
+typedef u32 QOS_MODE, *PQOS_MODE;
+#define QOS_DISABLE 0
+#define QOS_WMM 1
+#define QOS_WMMSA 2
+#define QOS_EDCA 4
+#define QOS_HCCA 8
+#define QOS_WMM_UAPSD 16
+
+#define AC_PARAM_SIZE 4
+#define WMM_PARAM_ELE_BODY_LEN 18
+
+typedef enum _ACK_POLICY{
+ eAckPlc0_ACK = 0x00,
+ eAckPlc1_NoACK = 0x01,
+}ACK_POLICY,*PACK_POLICY;
+
+#define WMM_PARAM_ELEMENT_SIZE (8+(4*AC_PARAM_SIZE))
+#if 0
+#define GET_QOS_CTRL(_pStart) ReadEF2Byte((u8 *)(_pStart) + 24)
+#define SET_QOS_CTRL(_pStart, _value) WriteEF2Byte((u8 *)(_pStart) + 24, _value)
+
+#define GET_QOS_CTRL_WMM_UP(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 0, 3))
+#define SET_QOS_CTRL_WMM_UP(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 0, 3, (u8)(_value))
+
+#define GET_QOS_CTRL_WMM_EOSP(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 4, 1))
+#define SET_QOS_CTRL_WMM_EOSP(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 4, 1, (u8)(_value))
+
+#define GET_QOS_CTRL_WMM_ACK_POLICY(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 5, 2))
+#define SET_QOS_CTRL_WMM_ACK_POLICY(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 5, 2, (u8)(_value))
+
+#define GET_QOS_CTRL_STA_DATA_TID(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 0, 4))
+#define SET_QOS_CTRL_STA_DATA_TID(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 0, 4, (u8)(_value))
+
+#define GET_QOS_CTRL_STA_DATA_QSIZE_FLAG(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 4, 1))
+#define SET_QOS_CTRL_STA_DATA_QSIZE_FLAG(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 4, 1, (u8)(_value))
+
+#define GET_QOS_CTRL_STA_DATA_ACK_POLICY(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 5, 2))
+#define SET_QOS_CTRL_STA_DATA_ACK_POLICY(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 5, 2, (u8)(_value))
+
+#define GET_QOS_CTRL_STA_DATA_TXOP(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 8, 8))
+#define SET_QOS_CTRL_STA_DATA_TXOP(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 8, 8, (u8)(_value))
+
+#define GET_QOS_CTRL_STA_DATA_QSIZE(_pStart) GET_QOS_CTRL_STA_DATA_TXOP(_pStart)
+#define SET_QOS_CTRL_STA_DATA_QSIZE(_pStart, _value) SET_QOS_CTRL_STA_DATA_TXOP(_pStart)
+
+#define GET_QOS_CTRL_HC_DATA_TID(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 0, 4))
+#define SET_QOS_CTRL_HC_DATA_TID(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 0, 4, (u8)(_value))
+
+#define GET_QOS_CTRL_HC_DATA_EOSP(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 4, 1))
+#define SET_QOS_CTRL_HC_DATA_EOSP(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 4, 1, (u8)(_value))
+
+#define GET_QOS_CTRL_HC_DATA_ACK_POLICY(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 5, 2))
+#define SET_QOS_CTRL_HC_DATA_ACK_POLICY(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 5, 2, (u8)(_value))
+
+#define GET_QOS_CTRL_HC_DATA_PS_BUFSTATE(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 8, 8))
+#define SET_QOS_CTRL_HC_DATA_PS_BUFSTATE(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 8, 8, (u8)(_value))
+
+#define GET_QOS_CTRL_HC_CFP_TID(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 0, 4))
+#define SET_QOS_CTRL_HC_CFP_TID(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 0, 4, (u8)(_value))
+
+#define GET_QOS_CTRL_HC_CFP_EOSP(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 4, 1))
+#define SET_QOS_CTRL_HC_CFP_EOSP(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 4, 1, (u8)(_value))
+
+#define GET_QOS_CTRL_HC_CFP_ACK_POLICY(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 5, 2))
+#define SET_QOS_CTRL_HC_CFP_ACK_POLICY(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 5, 2, (u8)(_value))
+
+#define GET_QOS_CTRL_HC_CFP_TXOP_LIMIT(_pStart) ((u8)LE_BITS_TO_2BYTE((u8 *)(_pStart)+24, 8, 8))
+#define SET_QOS_CTRL_HC_CFP_TXOP_LIMIT(_pStart, _value) SET_BITS_TO_LE_2BYTE((u8 *)(_pStart)+24, 8, 8, (u8)(_value))
+
+#define SET_WMM_QOS_INFO_FIELD(_pStart, _val) WriteEF1Byte(_pStart, _val)
+
+#define GET_WMM_QOS_INFO_FIELD_PARAMETERSET_COUNT(_pStart) LE_BITS_TO_1BYTE(_pStart, 0, 4)
+#define SET_WMM_QOS_INFO_FIELD_PARAMETERSET_COUNT(_pStart, _val) SET_BITS_TO_LE_1BYTE(_pStart, 0, 4, _val)
+
+#define GET_WMM_QOS_INFO_FIELD_AP_UAPSD(_pStart) LE_BITS_TO_1BYTE(_pStart, 7, 1)
+#define SET_WMM_QOS_INFO_FIELD_AP_UAPSD(_pStart, _val) SET_BITS_TO_LE_1BYTE(_pStart, 7, 1, _val)
+
+#define GET_WMM_QOS_INFO_FIELD_STA_AC_VO_UAPSD(_pStart) LE_BITS_TO_1BYTE(_pStart, 0, 1)
+#define SET_WMM_QOS_INFO_FIELD_STA_AC_VO_UAPSD(_pStart, _val) SET_BITS_TO_LE_1BYTE(_pStart, 0, 1, _val)
+
+#define GET_WMM_QOS_INFO_FIELD_STA_AC_VI_UAPSD(_pStart) LE_BITS_TO_1BYTE(_pStart, 1, 1)
+#define SET_WMM_QOS_INFO_FIELD_STA_AC_VI_UAPSD(_pStart, _val) SET_BITS_TO_LE_1BYTE(_pStart, 1, 1, _val)
+
+#define GET_WMM_QOS_INFO_FIELD_STA_AC_BE_UAPSD(_pStart) LE_BITS_TO_1BYTE(_pStart, 2, 1)
+#define SET_WMM_QOS_INFO_FIELD_STA_AC_BE_UAPSD(_pStart, _val) SET_BITS_TO_LE_1BYTE(_pStart, 2, 1, _val)
+
+#define GET_WMM_QOS_INFO_FIELD_STA_AC_BK_UAPSD(_pStart) LE_BITS_TO_1BYTE(_pStart, 3, 1)
+#define SET_WMM_QOS_INFO_FIELD_STA_AC_BK_UAPSD(_pStart, _val) SET_BITS_TO_LE_1BYTE(_pStart, 3, 1, _val)
+
+#define GET_WMM_QOS_INFO_FIELD_STA_MAX_SP_LEN(_pStart) LE_BITS_TO_1BYTE(_pStart, 5, 2)
+#define SET_WMM_QOS_INFO_FIELD_STA_MAX_SP_LEN(_pStart, _val) SET_BITS_TO_LE_1BYTE(_pStart, 5, 2, _val)
+
+
+#define WMM_INFO_ELEMENT_SIZE 7
+
+#define GET_WMM_INFO_ELE_OUI(_pStart) ((u8 *)(_pStart))
+#define SET_WMM_INFO_ELE_OUI(_pStart, _pVal) PlatformMoveMemory(_pStart, _pVal, 3);
+
+#define GET_WMM_INFO_ELE_OUI_TYPE(_pStart) ( EF1Byte( *((u8 *)(_pStart)+3) ) )
+#define SET_WMM_INFO_ELE_OUI_TYPE(_pStart, _val) ( *((u8 *)(_pStart)+3) = EF1Byte(_val) )
+
+#define GET_WMM_INFO_ELE_OUI_SUBTYPE(_pStart) ( EF1Byte( *((u8 *)(_pStart)+4) ) )
+#define SET_WMM_INFO_ELE_OUI_SUBTYPE(_pStart, _val) ( *((u8 *)(_pStart)+4) = EF1Byte(_val) )
+
+#define GET_WMM_INFO_ELE_VERSION(_pStart) ( EF1Byte( *((u8 *)(_pStart)+5) ) )
+#define SET_WMM_INFO_ELE_VERSION(_pStart, _val) ( *((u8 *)(_pStart)+5) = EF1Byte(_val) )
+
+#define GET_WMM_INFO_ELE_QOS_INFO_FIELD(_pStart) ( EF1Byte( *((u8 *)(_pStart)+6) ) )
+#define SET_WMM_INFO_ELE_QOS_INFO_FIELD(_pStart, _val) ( *((u8 *)(_pStart)+6) = EF1Byte(_val) )
+
+
+
+#define GET_WMM_AC_PARAM_AIFSN(_pStart) ( (u8)LE_BITS_TO_4BYTE(_pStart, 0, 4) )
+#define SET_WMM_AC_PARAM_AIFSN(_pStart, _val) SET_BITS_TO_LE_4BYTE(_pStart, 0, 4, _val)
+
+#define GET_WMM_AC_PARAM_ACM(_pStart) ( (u8)LE_BITS_TO_4BYTE(_pStart, 4, 1) )
+#define SET_WMM_AC_PARAM_ACM(_pStart, _val) SET_BITS_TO_LE_4BYTE(_pStart, 4, 1, _val)
+
+#define GET_WMM_AC_PARAM_ACI(_pStart) ( (u8)LE_BITS_TO_4BYTE(_pStart, 5, 2) )
+#define SET_WMM_AC_PARAM_ACI(_pStart, _val) SET_BITS_TO_LE_4BYTE(_pStart, 5, 2, _val)
+
+#define GET_WMM_AC_PARAM_ACI_AIFSN(_pStart) ( (u8)LE_BITS_TO_4BYTE(_pStart, 0, 8) )
+#define SET_WMM_AC_PARAM_ACI_AIFSN(_pStart, _val) SET_BTIS_TO_LE_4BYTE(_pStart, 0, 8, _val)
+
+#define GET_WMM_AC_PARAM_ECWMIN(_pStart) ( (u8)LE_BITS_TO_4BYTE(_pStart, 8, 4) )
+#define SET_WMM_AC_PARAM_ECWMIN(_pStart, _val) SET_BITS_TO_LE_4BYTE(_pStart, 8, 4, _val)
+
+#define GET_WMM_AC_PARAM_ECWMAX(_pStart) ( (u8)LE_BITS_TO_4BYTE(_pStart, 12, 4) )
+#define SET_WMM_AC_PARAM_ECWMAX(_pStart, _val) SET_BITS_TO_LE_4BYTE(_pStart, 12, 4, _val)
+
+#define GET_WMM_AC_PARAM_TXOP_LIMIT(_pStart) ( (u16)LE_BITS_TO_4BYTE(_pStart, 16, 16) )
+#define SET_WMM_AC_PARAM_TXOP_LIMIT(_pStart, _val) SET_BITS_TO_LE_4BYTE(_pStart, 16, 16, _val)
+
+
+
+
+#define GET_WMM_PARAM_ELE_OUI(_pStart) ((u8 *)(_pStart))
+#define SET_WMM_PARAM_ELE_OUI(_pStart, _pVal) PlatformMoveMemory(_pStart, _pVal, 3)
+
+#define GET_WMM_PARAM_ELE_OUI_TYPE(_pStart) ( EF1Byte( *((u8 *)(_pStart)+3) ) )
+#define SET_WMM_PARAM_ELE_OUI_TYPE(_pStart, _val) ( *((u8 *)(_pStart)+3) = EF1Byte(_val) )
+
+#define GET_WMM_PARAM_ELE_OUI_SUBTYPE(_pStart) ( EF1Byte( *((u8 *)(_pStart)+4) ) )
+#define SET_WMM_PARAM_ELE_OUI_SUBTYPE(_pStart, _val) ( *((u8 *)(_pStart)+4) = EF1Byte(_val) )
+
+#define GET_WMM_PARAM_ELE_VERSION(_pStart) ( EF1Byte( *((u8 *)(_pStart)+5) ) )
+#define SET_WMM_PARAM_ELE_VERSION(_pStart, _val) ( *((u8 *)(_pStart)+5) = EF1Byte(_val) )
+
+#define GET_WMM_PARAM_ELE_QOS_INFO_FIELD(_pStart) ( EF1Byte( *((u8 *)(_pStart)+6) ) )
+#define SET_WMM_PARAM_ELE_QOS_INFO_FIELD(_pStart, _val) ( *((u8 *)(_pStart)+6) = EF1Byte(_val) )
+
+#define GET_WMM_PARAM_ELE_AC_PARAM(_pStart) ( (u8 *)(_pStart)+8 )
+#define SET_WMM_PARAM_ELE_AC_PARAM(_pStart, _pVal) PlatformMoveMemory((_pStart)+8, _pVal, 16)
+#endif
+
+typedef union _QOS_CTRL_FIELD{
+ u8 charData[2];
+ u16 shortData;
+
+ struct
+ {
+ u8 UP:3;
+ u8 usRsvd1:1;
+ u8 EOSP:1;
+ u8 AckPolicy:2;
+ u8 usRsvd2:1;
+ u8 ucRsvdByte;
+ }WMM;
+
+ struct
+ {
+ u8 TID:4;
+ u8 bIsQsize:1;
+ u8 AckPolicy:2;
+ u8 usRsvd:1;
+ u8 TxopOrQsize;
+ }BySta;
+
+ struct
+ {
+ u8 TID:4;
+ u8 EOSP:1;
+ u8 AckPolicy:2;
+ u8 usRsvd:1;
+ u8 PSBufState;
+ }ByHc_Data;
+
+ struct
+ {
+ u8 TID:4;
+ u8 EOSP:1;
+ u8 AckPolicy:2;
+ u8 usRsvd:1;
+ u8 TxopLimit;
+ }ByHc_CFP;
+
+}QOS_CTRL_FIELD, *PQOS_CTRL_FIELD;
+
+
+typedef union _QOS_INFO_FIELD{
+ u8 charData;
+
+ struct
+ {
+ u8 ucParameterSetCount:4;
+ u8 ucReserved:4;
+ }WMM;
+
+ struct
+ {
+ u8 ucAC_VO_UAPSD:1;
+ u8 ucAC_VI_UAPSD:1;
+ u8 ucAC_BE_UAPSD:1;
+ u8 ucAC_BK_UAPSD:1;
+ u8 ucReserved1:1;
+ u8 ucMaxSPLen:2;
+ u8 ucReserved2:1;
+
+ }ByWmmPsSta;
+
+ struct
+ {
+ u8 ucParameterSetCount:4;
+ u8 ucReserved:3;
+ u8 ucApUapsd:1;
+ }ByWmmPsAp;
+
+ struct
+ {
+ u8 ucAC3_UAPSD:1;
+ u8 ucAC2_UAPSD:1;
+ u8 ucAC1_UAPSD:1;
+ u8 ucAC0_UAPSD:1;
+ u8 ucQAck:1;
+ u8 ucMaxSPLen:2;
+ u8 ucMoreDataAck:1;
+ } By11eSta;
+
+ struct
+ {
+ u8 ucParameterSetCount:4;
+ u8 ucQAck:1;
+ u8 ucQueueReq:1;
+ u8 ucTXOPReq:1;
+ u8 ucReserved:1;
+ } By11eAp;
+
+ struct
+ {
+ u8 ucReserved1:4;
+ u8 ucQAck:1;
+ u8 ucReserved2:2;
+ u8 ucMoreDataAck:1;
+ } ByWmmsaSta;
+
+ struct
+ {
+ u8 ucReserved1:4;
+ u8 ucQAck:1;
+ u8 ucQueueReq:1;
+ u8 ucTXOPReq:1;
+ u8 ucReserved2:1;
+ } ByWmmsaAp;
+
+ struct
+ {
+ u8 ucAC3_UAPSD:1;
+ u8 ucAC2_UAPSD:1;
+ u8 ucAC1_UAPSD:1;
+ u8 ucAC0_UAPSD:1;
+ u8 ucQAck:1;
+ u8 ucMaxSPLen:2;
+ u8 ucMoreDataAck:1;
+ } ByAllSta;
+
+ struct
+ {
+ u8 ucParameterSetCount:4;
+ u8 ucQAck:1;
+ u8 ucQueueReq:1;
+ u8 ucTXOPReq:1;
+ u8 ucApUapsd:1;
+ } ByAllAp;
+
+}QOS_INFO_FIELD, *PQOS_INFO_FIELD;
+
+#if 0
+typedef struct _WMM_INFO_ELEMENT{
+ u8 OUI[3];
+ u8 OUI_Type;
+ u8 OUI_SubType;
+ u8 Version;
+ QOS_INFO_FIELD QosInfo;
+}WMM_INFO_ELEMENT, *PWMM_INFO_ELEMENT;
+#endif
+
+typedef u32 AC_CODING;
+#define AC0_BE 0
+#define AC1_BK 1
+#define AC2_VI 2
+#define AC3_VO 3
+#define AC_MAX 4
+
+typedef union _ACI_AIFSN{
+ u8 charData;
+
+ struct
+ {
+ u8 AIFSN:4;
+ u8 ACM:1;
+ u8 ACI:2;
+ u8 Reserved:1;
+ }f;
+}ACI_AIFSN, *PACI_AIFSN;
+
+typedef union _ECW{
+ u8 charData;
+ struct
+ {
+ u8 ECWmin:4;
+ u8 ECWmax:4;
+ }f;
+}ECW, *PECW;
+
+typedef union _AC_PARAM{
+ u32 longData;
+ u8 charData[4];
+
+ struct
+ {
+ ACI_AIFSN AciAifsn;
+ ECW Ecw;
+ u16 TXOPLimit;
+ }f;
+}AC_PARAM, *PAC_PARAM;
+
+
+
+typedef enum _QOS_ELE_SUBTYPE{
+ QOSELE_TYPE_INFO = 0x00,
+ QOSELE_TYPE_PARAM = 0x01,
+}QOS_ELE_SUBTYPE,*PQOS_ELE_SUBTYPE;
+
+
+typedef enum _DIRECTION_VALUE{
+ DIR_UP = 0,
+ DIR_DOWN = 1,
+ DIR_DIRECT = 2,
+ DIR_BI_DIR = 3,
+}DIRECTION_VALUE,*PDIRECTION_VALUE;
+
+
+typedef union _QOS_TSINFO{
+ u8 charData[3];
+ struct {
+ u8 ucTrafficType:1;
+ u8 ucTSID:4;
+ u8 ucDirection:2;
+ u8 ucAccessPolicy:2;
+ u8 ucAggregation:1;
+ u8 ucPSB:1;
+ u8 ucUP:3;
+ u8 ucTSInfoAckPolicy:2;
+ u8 ucSchedule:1;
+ u8 ucReserved:7;
+ }field;
+}QOS_TSINFO, *PQOS_TSINFO;
+
+typedef union _TSPEC_BODY{
+ u8 charData[55];
+
+ struct
+ {
+ QOS_TSINFO TSInfo;
+ u16 NominalMSDUsize;
+ u16 MaxMSDUsize;
+ u32 MinServiceItv;
+ u32 MaxServiceItv;
+ u32 InactivityItv;
+ u32 SuspenItv;
+ u32 ServiceStartTime;
+ u32 MinDataRate;
+ u32 MeanDataRate;
+ u32 PeakDataRate;
+ u32 MaxBurstSize;
+ u32 DelayBound;
+ u32 MinPhyRate;
+ u16 SurplusBandwidthAllowance;
+ u16 MediumTime;
+ } f;
+}TSPEC_BODY, *PTSPEC_BODY;
+
+
+typedef struct _WMM_TSPEC{
+ u8 ID;
+ u8 Length;
+ u8 OUI[3];
+ u8 OUI_Type;
+ u8 OUI_SubType;
+ u8 Version;
+ TSPEC_BODY Body;
+} WMM_TSPEC, *PWMM_TSPEC;
+
+typedef enum _ACM_METHOD{
+ eAcmWay0_SwAndHw = 0,
+ eAcmWay1_HW = 1,
+ eAcmWay2_SW = 2,
+}ACM_METHOD,*PACM_METHOD;
+
+
+typedef struct _ACM{
+ u64 UsedTime;
+ u64 MediumTime;
+ u8 HwAcmCtl;
+}ACM, *PACM;
+
+typedef u8 AC_UAPSD, *PAC_UAPSD;
+
+#define GET_VO_UAPSD(_apsd) ((_apsd) & BIT0)
+#define SET_VO_UAPSD(_apsd) ((_apsd) |= BIT0)
+
+#define GET_VI_UAPSD(_apsd) ((_apsd) & BIT1)
+#define SET_VI_UAPSD(_apsd) ((_apsd) |= BIT1)
+
+#define GET_BK_UAPSD(_apsd) ((_apsd) & BIT2)
+#define SET_BK_UAPSD(_apsd) ((_apsd) |= BIT2)
+
+#define GET_BE_UAPSD(_apsd) ((_apsd) & BIT3)
+#define SET_BE_UAPSD(_apsd) ((_apsd) |= BIT3)
+
+
+typedef union _QOS_TCLAS{
+
+ struct _TYPE_GENERAL{
+ u8 Priority;
+ u8 ClassifierType;
+ u8 Mask;
+ } TYPE_GENERAL;
+
+ struct _TYPE0_ETH{
+ u8 Priority;
+ u8 ClassifierType;
+ u8 Mask;
+ u8 SrcAddr[6];
+ u8 DstAddr[6];
+ u16 Type;
+ } TYPE0_ETH;
+
+ struct _TYPE1_IPV4{
+ u8 Priority;
+ u8 ClassifierType;
+ u8 Mask;
+ u8 Version;
+ u8 SrcIP[4];
+ u8 DstIP[4];
+ u16 SrcPort;
+ u16 DstPort;
+ u8 DSCP;
+ u8 Protocol;
+ u8 Reserved;
+ } TYPE1_IPV4;
+
+ struct _TYPE1_IPV6{
+ u8 Priority;
+ u8 ClassifierType;
+ u8 Mask;
+ u8 Version;
+ u8 SrcIP[16];
+ u8 DstIP[16];
+ u16 SrcPort;
+ u16 DstPort;
+ u8 FlowLabel[3];
+ } TYPE1_IPV6;
+
+ struct _TYPE2_8021Q{
+ u8 Priority;
+ u8 ClassifierType;
+ u8 Mask;
+ u16 TagType;
+ } TYPE2_8021Q;
+} QOS_TCLAS, *PQOS_TCLAS;
+
+typedef struct _QOS_TSTREAM{
+ u8 AC;
+ WMM_TSPEC TSpec;
+ QOS_TCLAS TClass;
+} QOS_TSTREAM, *PQOS_TSTREAM;
+
+
+
+typedef struct _OCTET_STRING{
+ u8 *Octet;
+ u16 Length;
+}OCTET_STRING, *POCTET_STRING;
+#if 0
+#define FillOctetString(_os,_octet,_len) \
+ (_os).Octet=(u8 *)(_octet); \
+ (_os).Length=(_len);
+
+#define WMM_ELEM_HDR_LEN 6
+#define WMMElemSkipHdr(_osWMMElem) \
+ (_osWMMElem).Octet += WMM_ELEM_HDR_LEN; \
+ (_osWMMElem).Length -= WMM_ELEM_HDR_LEN;
+#endif
+typedef struct _STA_QOS{
+ u8 WMMIEBuf[MAX_WMMELE_LENGTH];
+ u8* WMMIE;
+
+ QOS_MODE QosCapability;
+ QOS_MODE CurrentQosMode;
+
+ AC_UAPSD b4ac_Uapsd;
+ AC_UAPSD Curr4acUapsd;
+ u8 bInServicePeriod;
+ u8 MaxSPLength;
+ int NumBcnBeforeTrigger;
+
+ u8 * pWMMInfoEle;
+ u8 WMMParamEle[WMM_PARAM_ELEMENT_SIZE];
+ u8 WMMPELength;
+
+ QOS_INFO_FIELD QosInfoField_STA;
+ QOS_INFO_FIELD QosInfoField_AP;
+
+ AC_PARAM CurAcParameters[4];
+
+ ACM acm[4];
+ ACM_METHOD AcmMethod;
+
+ QOS_TSTREAM TStream[16];
+ WMM_TSPEC TSpec;
+
+ u32 QBssWirelessMode;
+
+ u8 bNoAck;
+
+ u8 bEnableRxImmBA;
+
+}STA_QOS, *PSTA_QOS;
+
+typedef struct _BSS_QOS{
+ QOS_MODE bdQoSMode;
+
+ u8 bdWMMIEBuf[MAX_WMMELE_LENGTH];
+ u8* bdWMMIE;
+
+ QOS_ELE_SUBTYPE EleSubType;
+
+ u8 * pWMMInfoEle;
+ u8 * pWMMParamEle;
+
+ QOS_INFO_FIELD QosInfoField;
+ AC_PARAM AcParameter[4];
+}BSS_QOS, *PBSS_QOS;
+
+
+#define sQoSCtlLng 2
+#define QOS_CTRL_LEN(_QosMode) ((_QosMode > QOS_DISABLE)? sQoSCtlLng : 0)
+
+
+#define IsACValid(ac) ((ac<=7 )?true:false )
+
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/rtl819x_TS.h b/ubuntu/rtl8192se/rtllib/rtl819x_TS.h
new file mode 100755
index 00000000000..feb19f8dc30
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtl819x_TS.h
@@ -0,0 +1,72 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#ifndef _TSTYPE_H_
+#define _TSTYPE_H_
+#include "rtl819x_Qos.h"
+#define TS_SETUP_TIMEOUT 60
+#define TS_INACT_TIMEOUT 60
+#define TS_ADDBA_DELAY 60
+
+#define TOTAL_TS_NUM 16
+#define TCLAS_NUM 4
+
+typedef enum _TR_SELECT {
+ TX_DIR = 0,
+ RX_DIR = 1,
+} TR_SELECT, *PTR_SELECT;
+
+typedef struct _TS_COMMON_INFO{
+ struct list_head List;
+ struct timer_list SetupTimer;
+ struct timer_list InactTimer;
+ u8 Addr[6];
+ TSPEC_BODY TSpec;
+ QOS_TCLAS TClass[TCLAS_NUM];
+ u8 TClasProc;
+ u8 TClasNum;
+} TS_COMMON_INFO, *PTS_COMMON_INFO;
+
+typedef struct _TX_TS_RECORD{
+ TS_COMMON_INFO TsCommonInfo;
+ u16 TxCurSeq;
+ BA_RECORD TxPendingBARecord;
+ BA_RECORD TxAdmittedBARecord;
+ u8 bAddBaReqInProgress;
+ u8 bAddBaReqDelayed;
+ u8 bUsingBa;
+ u8 bDisable_AddBa;
+ struct timer_list TsAddBaTimer;
+ u8 num;
+} TX_TS_RECORD, *PTX_TS_RECORD;
+
+typedef struct _RX_TS_RECORD {
+ TS_COMMON_INFO TsCommonInfo;
+ u16 RxIndicateSeq;
+ u16 RxTimeoutIndicateSeq;
+ struct list_head RxPendingPktList;
+ struct timer_list RxPktPendingTimer;
+ BA_RECORD RxAdmittedBARecord;
+ u16 RxLastSeqNum;
+ u8 RxLastFragNum;
+ u8 num;
+} RX_TS_RECORD, *PRX_TS_RECORD;
+
+
+#endif
+
diff --git a/ubuntu/rtl8192se/rtllib/rtl819x_TSProc.c b/ubuntu/rtl8192se/rtllib/rtl819x_TSProc.c
new file mode 100755
index 00000000000..2b30f00ccae
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtl819x_TSProc.c
@@ -0,0 +1,672 @@
+/******************************************************************************
+ * Copyright(c) 2008 - 2010 Realtek Corporation. All rights reserved.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
+ *
+ * The full GNU General Public License is included in this distribution in the
+ * file called LICENSE.
+ *
+ * Contact Information:
+ * wlanfae <wlanfae@realtek.com>
+******************************************************************************/
+#include "rtllib.h"
+#include <linux/etherdevice.h>
+#include "rtl819x_TS.h"
+extern void _setup_timer( struct timer_list*, void*, unsigned long);
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
+#define list_for_each_entry_safe(pos, n, head, member) \
+ for (pos = list_entry((head)->next, typeof(*pos), member), \
+ n = list_entry(pos->member.next, typeof(*pos), member); \
+ &pos->member != (head); \
+ pos = n, n = list_entry(n->member.next, typeof(*n), member))
+#endif
+void TsSetupTimeOut(unsigned long data)
+{
+}
+
+void TsInactTimeout(unsigned long data)
+{
+}
+
+void RxPktPendingTimeout(unsigned long data)
+{
+ PRX_TS_RECORD pRxTs = (PRX_TS_RECORD)data;
+ struct rtllib_device *ieee = container_of(pRxTs, struct rtllib_device, RxTsRecord[pRxTs->num]);
+
+ PRX_REORDER_ENTRY pReorderEntry = NULL;
+
+ unsigned long flags = 0;
+ struct rtllib_rxb *stats_IndicateArray[REORDER_WIN_SIZE];
+ u8 index = 0;
+ bool bPktInBuf = false;
+
+ spin_lock_irqsave(&(ieee->reorder_spinlock), flags);
+ if(pRxTs->RxTimeoutIndicateSeq != 0xffff)
+ {
+ while(!list_empty(&pRxTs->RxPendingPktList))
+ {
+ pReorderEntry = (PRX_REORDER_ENTRY)list_entry(pRxTs->RxPendingPktList.prev,RX_REORDER_ENTRY,List);
+ if(index == 0)
+ pRxTs->RxIndicateSeq = pReorderEntry->SeqNum;
+
+ if( SN_LESS(pReorderEntry->SeqNum, pRxTs->RxIndicateSeq) ||
+ SN_EQUAL(pReorderEntry->SeqNum, pRxTs->RxIndicateSeq) )
+ {
+ list_del_init(&pReorderEntry->List);
+
+ if(SN_EQUAL(pReorderEntry->SeqNum, pRxTs->RxIndicateSeq))
+ pRxTs->RxIndicateSeq = (pRxTs->RxIndicateSeq + 1) % 4096;
+
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): Indicate SeqNum: %d\n",__func__, pReorderEntry->SeqNum);
+ stats_IndicateArray[index] = pReorderEntry->prxb;
+ index++;
+
+ list_add_tail(&pReorderEntry->List, &ieee->RxReorder_Unused_List);
+ }
+ else
+ {
+ bPktInBuf = true;
+ break;
+ }
+ }
+ }
+
+ if(index>0){
+ pRxTs->RxTimeoutIndicateSeq = 0xffff;
+
+ if(index > REORDER_WIN_SIZE){
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "RxReorderIndicatePacket(): Rx Reorer buffer full!! \n");
+ spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags);
+ return;
+ }
+ rtllib_indicate_packets(ieee, stats_IndicateArray, index);
+ bPktInBuf = false;
+ }
+
+ if(bPktInBuf && (pRxTs->RxTimeoutIndicateSeq==0xffff)){
+ pRxTs->RxTimeoutIndicateSeq = pRxTs->RxIndicateSeq;
+ mod_timer(&pRxTs->RxPktPendingTimer, jiffies + MSECS(ieee->pHTInfo->RxReorderPendingTime));
+ }
+ spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags);
+}
+
+void TsAddBaProcess(unsigned long data)
+{
+ PTX_TS_RECORD pTxTs = (PTX_TS_RECORD)data;
+ u8 num = pTxTs->num;
+ struct rtllib_device *ieee = container_of(pTxTs, struct rtllib_device, TxTsRecord[num]);
+
+ TsInitAddBA(ieee, pTxTs, BA_POLICY_IMMEDIATE, false);
+ RTLLIB_DEBUG(RTLLIB_DL_BA, "TsAddBaProcess(): ADDBA Req is started!! \n");
+}
+
+
+void ResetTsCommonInfo(PTS_COMMON_INFO pTsCommonInfo)
+{
+ memset(pTsCommonInfo->Addr, 0, 6);
+ memset(&pTsCommonInfo->TSpec, 0, sizeof(TSPEC_BODY));
+ memset(&pTsCommonInfo->TClass, 0, sizeof(QOS_TCLAS)*TCLAS_NUM);
+ pTsCommonInfo->TClasProc = 0;
+ pTsCommonInfo->TClasNum = 0;
+}
+
+void ResetTxTsEntry(PTX_TS_RECORD pTS)
+{
+ ResetTsCommonInfo(&pTS->TsCommonInfo);
+ pTS->TxCurSeq = 0;
+ pTS->bAddBaReqInProgress = false;
+ pTS->bAddBaReqDelayed = false;
+ pTS->bUsingBa = false;
+ pTS->bDisable_AddBa = false;
+ ResetBaEntry(&pTS->TxAdmittedBARecord);
+ ResetBaEntry(&pTS->TxPendingBARecord);
+}
+
+void ResetRxTsEntry(PRX_TS_RECORD pTS)
+{
+ ResetTsCommonInfo(&pTS->TsCommonInfo);
+ pTS->RxIndicateSeq = 0xffff;
+ pTS->RxTimeoutIndicateSeq = 0xffff;
+ ResetBaEntry(&pTS->RxAdmittedBARecord);
+}
+#ifdef _RTL8192_EXT_PATCH_
+void ResetAdmitTRStream(struct rtllib_device *ieee, u8 *Addr)
+{
+ u8 dir;
+ bool search_dir[4] = {0, 0, 0, 0};
+ struct list_head* psearch_list;
+ PTS_COMMON_INFO pRet = NULL;
+ PRX_TS_RECORD pRxTS = NULL;
+ PTX_TS_RECORD pTxTS = NULL;
+
+ if(ieee->iw_mode != IW_MODE_MESH)
+ return;
+
+ search_dir[DIR_DOWN] = true;
+ psearch_list = &ieee->Rx_TS_Admit_List;
+ for(dir = 0; dir <= DIR_BI_DIR; dir++)
+ {
+ if(search_dir[dir] ==false )
+ continue;
+ list_for_each_entry(pRet, psearch_list, List){
+ if ((memcmp(pRet->Addr, Addr, 6) == 0) && (pRet->TSpec.f.TSInfo.field.ucDirection == dir))
+ {
+ pRxTS = (PRX_TS_RECORD)pRet;
+ pRxTS->RxIndicateSeq = 0xffff;
+ pRxTS->RxTimeoutIndicateSeq = 0xffff;
+ }
+
+ }
+ }
+ search_dir[DIR_UP] = true;
+ psearch_list = &ieee->Tx_TS_Admit_List;
+ for(dir = 0; dir <= DIR_BI_DIR; dir++)
+ {
+ if(search_dir[dir] ==false )
+ continue;
+ list_for_each_entry(pRet, psearch_list, List){
+ if ((memcmp(pRet->Addr, Addr, 6) == 0) && (pRet->TSpec.f.TSInfo.field.ucDirection == dir))
+ {
+ pTxTS = (PTX_TS_RECORD)pRet;
+ pTxTS->TxCurSeq = 0xffff;
+ }
+
+ }
+ }
+
+ return;
+}
+#endif
+
+void TSInitialize(struct rtllib_device *ieee)
+{
+ PTX_TS_RECORD pTxTS = ieee->TxTsRecord;
+ PRX_TS_RECORD pRxTS = ieee->RxTsRecord;
+ PRX_REORDER_ENTRY pRxReorderEntry = ieee->RxReorderEntry;
+ u8 count = 0;
+ RTLLIB_DEBUG(RTLLIB_DL_TS, "==========>%s()\n", __FUNCTION__);
+ INIT_LIST_HEAD(&ieee->Tx_TS_Admit_List);
+ INIT_LIST_HEAD(&ieee->Tx_TS_Pending_List);
+ INIT_LIST_HEAD(&ieee->Tx_TS_Unused_List);
+
+ for(count = 0; count < TOTAL_TS_NUM; count++)
+ {
+ pTxTS->num = count;
+ _setup_timer(&pTxTS->TsCommonInfo.SetupTimer,
+ TsSetupTimeOut,
+ (unsigned long) pTxTS);
+
+ _setup_timer(&pTxTS->TsCommonInfo.InactTimer,
+ TsInactTimeout,
+ (unsigned long) pTxTS);
+
+ _setup_timer(&pTxTS->TsAddBaTimer,
+ TsAddBaProcess,
+ (unsigned long) pTxTS);
+
+ _setup_timer(&pTxTS->TxPendingBARecord.Timer,
+ BaSetupTimeOut,
+ (unsigned long) pTxTS);
+ _setup_timer(&pTxTS->TxAdmittedBARecord.Timer,
+ TxBaInactTimeout,
+ (unsigned long) pTxTS);
+
+ ResetTxTsEntry(pTxTS);
+ list_add_tail(&pTxTS->TsCommonInfo.List,
+ &ieee->Tx_TS_Unused_List);
+ pTxTS++;
+ }
+
+ INIT_LIST_HEAD(&ieee->Rx_TS_Admit_List);
+ INIT_LIST_HEAD(&ieee->Rx_TS_Pending_List);
+ INIT_LIST_HEAD(&ieee->Rx_TS_Unused_List);
+ for(count = 0; count < TOTAL_TS_NUM; count++)
+ {
+ pRxTS->num = count;
+ INIT_LIST_HEAD(&pRxTS->RxPendingPktList);
+
+ _setup_timer(&pRxTS->TsCommonInfo.SetupTimer,
+ TsSetupTimeOut,
+ (unsigned long) pRxTS);
+
+ _setup_timer(&pRxTS->TsCommonInfo.InactTimer,
+ TsInactTimeout,
+ (unsigned long) pRxTS);
+
+ _setup_timer(&pRxTS->RxAdmittedBARecord.Timer,
+ RxBaInactTimeout,
+ (unsigned long) pRxTS);
+
+ _setup_timer(&pRxTS->RxPktPendingTimer,
+ RxPktPendingTimeout,
+ (unsigned long) pRxTS);
+
+ ResetRxTsEntry(pRxTS);
+ list_add_tail(&pRxTS->TsCommonInfo.List, &ieee->Rx_TS_Unused_List);
+ pRxTS++;
+ }
+ INIT_LIST_HEAD(&ieee->RxReorder_Unused_List);
+ for(count = 0; count < REORDER_ENTRY_NUM; count++)
+ {
+ list_add_tail( &pRxReorderEntry->List,&ieee->RxReorder_Unused_List);
+ if(count == (REORDER_ENTRY_NUM-1))
+ break;
+ pRxReorderEntry = &ieee->RxReorderEntry[count+1];
+ }
+
+}
+
+void AdmitTS(struct rtllib_device *ieee, PTS_COMMON_INFO pTsCommonInfo, u32 InactTime)
+{
+ del_timer_sync(&pTsCommonInfo->SetupTimer);
+ del_timer_sync(&pTsCommonInfo->InactTimer);
+
+ if(InactTime!=0)
+ mod_timer(&pTsCommonInfo->InactTimer, jiffies + MSECS(InactTime));
+}
+
+
+PTS_COMMON_INFO SearchAdmitTRStream(struct rtllib_device *ieee, u8* Addr, u8 TID, TR_SELECT TxRxSelect)
+{
+ u8 dir;
+ bool search_dir[4] = {0, 0, 0, 0};
+ struct list_head* psearch_list;
+ PTS_COMMON_INFO pRet = NULL;
+ if(ieee->iw_mode == IW_MODE_MASTER)
+ {
+ if(TxRxSelect == TX_DIR)
+ {
+ search_dir[DIR_DOWN] = true;
+ search_dir[DIR_BI_DIR]= true;
+ }
+ else
+ {
+ search_dir[DIR_UP] = true;
+ search_dir[DIR_BI_DIR]= true;
+ }
+ }
+ else if(ieee->iw_mode == IW_MODE_ADHOC)
+ {
+ if(TxRxSelect == TX_DIR)
+ search_dir[DIR_UP] = true;
+ else
+ search_dir[DIR_DOWN] = true;
+ }
+ else
+ {
+ if(TxRxSelect == TX_DIR)
+ {
+ search_dir[DIR_UP] = true;
+ search_dir[DIR_BI_DIR]= true;
+ search_dir[DIR_DIRECT]= true;
+ }
+ else
+ {
+ search_dir[DIR_DOWN] = true;
+ search_dir[DIR_BI_DIR]= true;
+ search_dir[DIR_DIRECT]= true;
+ }
+ }
+
+ if(TxRxSelect == TX_DIR)
+ psearch_list = &ieee->Tx_TS_Admit_List;
+ else
+ psearch_list = &ieee->Rx_TS_Admit_List;
+
+ for(dir = 0; dir <= DIR_BI_DIR; dir++)
+ {
+ if(search_dir[dir] ==false )
+ continue;
+ list_for_each_entry(pRet, psearch_list, List){
+ if (memcmp(pRet->Addr, Addr, 6) == 0)
+ if (pRet->TSpec.f.TSInfo.field.ucTSID == TID)
+ if(pRet->TSpec.f.TSInfo.field.ucDirection == dir)
+ {
+ break;
+ }
+
+ }
+ if(&pRet->List != psearch_list)
+ break;
+ }
+
+ if(&pRet->List != psearch_list){
+ return pRet ;
+ }
+ else
+ return NULL;
+}
+
+void MakeTSEntry(
+ PTS_COMMON_INFO pTsCommonInfo,
+ u8* Addr,
+ PTSPEC_BODY pTSPEC,
+ PQOS_TCLAS pTCLAS,
+ u8 TCLAS_Num,
+ u8 TCLAS_Proc
+ )
+{
+ u8 count;
+
+ if(pTsCommonInfo == NULL)
+ return;
+
+ memcpy(pTsCommonInfo->Addr, Addr, 6);
+
+ if(pTSPEC != NULL)
+ memcpy((u8*)(&(pTsCommonInfo->TSpec)), (u8*)pTSPEC, sizeof(TSPEC_BODY));
+
+ for(count = 0; count < TCLAS_Num; count++)
+ memcpy((u8*)(&(pTsCommonInfo->TClass[count])), (u8*)pTCLAS, sizeof(QOS_TCLAS));
+
+ pTsCommonInfo->TClasProc = TCLAS_Proc;
+ pTsCommonInfo->TClasNum = TCLAS_Num;
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+void dump_ts_list(struct list_head * ts_list)
+{
+ PTS_COMMON_INFO pRet = NULL;
+ u8 i=0;
+ list_for_each_entry(pRet, ts_list, List){
+ printk("i=%d ADD:"MAC_FMT", TID:%d, dir:%d\n",i,MAC_ARG(pRet->Addr), pRet->TSpec.f.TSInfo.field.ucTSID, pRet->TSpec.f.TSInfo.field.ucDirection);
+ i++;
+ }
+
+}
+#endif
+
+bool GetTs(
+ struct rtllib_device* ieee,
+ PTS_COMMON_INFO *ppTS,
+ u8* Addr,
+ u8 TID,
+ TR_SELECT TxRxSelect,
+ bool bAddNewTs
+ )
+{
+ u8 UP = 0;
+ if(is_broadcast_ether_addr(Addr) || is_multicast_ether_addr(Addr))
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "ERR! get TS for Broadcast or Multicast\n");
+ return false;
+ }
+#if 0
+ if(ieee->pStaQos->CurrentQosMode == QOS_DISABLE)
+ { UP = 0; }
+ else if(ieee->pStaQos->CurrentQosMode & QOS_WMM)
+ {
+#else
+ if (ieee->current_network.qos_data.supported == 0)
+ UP = 0;
+ else
+ {
+#endif
+ if (!IsACValid(TID))
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "ERR! in %s(), TID(%d) is not valid\n", __FUNCTION__, TID);
+ return false;
+ }
+
+ switch(TID)
+ {
+ case 0:
+ case 3:
+ UP = 0;
+ break;
+
+ case 1:
+ case 2:
+ UP = 2;
+ break;
+
+ case 4:
+ case 5:
+ UP = 5;
+ break;
+
+ case 6:
+ case 7:
+ UP = 7;
+ break;
+ }
+ }
+
+ *ppTS = SearchAdmitTRStream(
+ ieee,
+ Addr,
+ UP,
+ TxRxSelect);
+ if(*ppTS != NULL)
+ {
+ return true;
+ }
+ else
+ {
+ if(bAddNewTs == false)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_TS, "add new TS failed(tid:%d)\n", UP);
+ return false;
+ }
+ else
+ {
+ TSPEC_BODY TSpec;
+ PQOS_TSINFO pTSInfo = &TSpec.f.TSInfo;
+ struct list_head* pUnusedList =
+ (TxRxSelect == TX_DIR)?
+ (&ieee->Tx_TS_Unused_List):
+ (&ieee->Rx_TS_Unused_List);
+
+ struct list_head* pAddmitList =
+ (TxRxSelect == TX_DIR)?
+ (&ieee->Tx_TS_Admit_List):
+ (&ieee->Rx_TS_Admit_List);
+
+ DIRECTION_VALUE Dir = (ieee->iw_mode == IW_MODE_MASTER)?
+ ((TxRxSelect==TX_DIR)?DIR_DOWN:DIR_UP):
+ ((TxRxSelect==TX_DIR)?DIR_UP:DIR_DOWN);
+ RTLLIB_DEBUG(RTLLIB_DL_TS, "to add Ts\n");
+ if(!list_empty(pUnusedList))
+ {
+ (*ppTS) = list_entry(pUnusedList->next, TS_COMMON_INFO, List);
+ list_del_init(&(*ppTS)->List);
+ if(TxRxSelect==TX_DIR)
+ {
+ PTX_TS_RECORD tmp = container_of(*ppTS, TX_TS_RECORD, TsCommonInfo);
+ ResetTxTsEntry(tmp);
+ }
+ else{
+ PRX_TS_RECORD tmp = container_of(*ppTS, RX_TS_RECORD, TsCommonInfo);
+ ResetRxTsEntry(tmp);
+ }
+
+ RTLLIB_DEBUG(RTLLIB_DL_TS, "to init current TS, UP:%d, Dir:%d, addr:"MAC_FMT"\n", UP, Dir, MAC_ARG(Addr));
+ pTSInfo->field.ucTrafficType = 0;
+ pTSInfo->field.ucTSID = UP;
+ pTSInfo->field.ucDirection = Dir;
+ pTSInfo->field.ucAccessPolicy = 1;
+ pTSInfo->field.ucAggregation = 0;
+ pTSInfo->field.ucPSB = 0;
+ pTSInfo->field.ucUP = UP;
+ pTSInfo->field.ucTSInfoAckPolicy = 0;
+ pTSInfo->field.ucSchedule = 0;
+
+ MakeTSEntry(*ppTS, Addr, &TSpec, NULL, 0, 0);
+ AdmitTS(ieee, *ppTS, 0);
+ list_add_tail(&((*ppTS)->List), pAddmitList);
+
+ return true;
+ }
+ else
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "ERR!!in function %s() There is not enough dir=%d(0=up down=1) TS record to be used!!", __FUNCTION__,Dir);
+ return false;
+ }
+ }
+ }
+}
+
+void RemoveTsEntry(
+ struct rtllib_device* ieee,
+ PTS_COMMON_INFO pTs,
+ TR_SELECT TxRxSelect
+ )
+{
+ unsigned long flags = 0;
+ del_timer_sync(&pTs->SetupTimer);
+ del_timer_sync(&pTs->InactTimer);
+ TsInitDelBA(ieee, pTs, TxRxSelect);
+
+ if(TxRxSelect == RX_DIR)
+ {
+ PRX_REORDER_ENTRY pRxReorderEntry;
+ PRX_TS_RECORD pRxTS = (PRX_TS_RECORD)pTs;
+ spin_lock_irqsave(&(ieee->reorder_spinlock), flags);
+
+ if(timer_pending(&pRxTS->RxPktPendingTimer))
+ del_timer_sync(&pRxTS->RxPktPendingTimer);
+
+ while(!list_empty(&pRxTS->RxPendingPktList)){
+ pRxReorderEntry = (PRX_REORDER_ENTRY)list_entry(pRxTS->RxPendingPktList.prev,RX_REORDER_ENTRY,List);
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): Delete SeqNum %d!\n",__FUNCTION__, pRxReorderEntry->SeqNum);
+ list_del_init(&pRxReorderEntry->List);
+ {
+ int i = 0;
+ struct rtllib_rxb * prxb = pRxReorderEntry->prxb;
+ if (unlikely(!prxb)){
+ spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags);
+ return;
+ }
+ for(i =0; i < prxb->nr_subframes; i++) {
+ dev_kfree_skb(prxb->subframes[i]);
+ }
+ kfree(prxb);
+ prxb = NULL;
+ }
+ list_add_tail(&pRxReorderEntry->List,&ieee->RxReorder_Unused_List);
+ }
+ spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags);
+ }
+ else{
+ PTX_TS_RECORD pTxTS = (PTX_TS_RECORD)pTs;
+ del_timer_sync(&pTxTS->TsAddBaTimer);
+ }
+}
+
+void RemovePeerTS(struct rtllib_device* ieee, u8* Addr)
+{
+ PTS_COMMON_INFO pTS, pTmpTS;
+ printk("===========>RemovePeerTS,"MAC_FMT"\n", MAC_ARG(Addr));
+#if 1
+ list_for_each_entry_safe(pTS, pTmpTS, &ieee->Tx_TS_Pending_List, List)
+ {
+ if (memcmp(pTS->Addr, Addr, 6) == 0)
+ {
+ RemoveTsEntry(ieee, pTS, TX_DIR);
+ list_del_init(&pTS->List);
+ list_add_tail(&pTS->List, &ieee->Tx_TS_Unused_List);
+ }
+ }
+
+ list_for_each_entry_safe(pTS, pTmpTS, &ieee->Tx_TS_Admit_List, List)
+ {
+ if (memcmp(pTS->Addr, Addr, 6) == 0)
+ {
+ printk("====>remove Tx_TS_admin_list\n");
+ RemoveTsEntry(ieee, pTS, TX_DIR);
+ list_del_init(&pTS->List);
+ list_add_tail(&pTS->List, &ieee->Tx_TS_Unused_List);
+ }
+ }
+
+ list_for_each_entry_safe(pTS, pTmpTS, &ieee->Rx_TS_Pending_List, List)
+ {
+ if (memcmp(pTS->Addr, Addr, 6) == 0)
+ {
+ RemoveTsEntry(ieee, pTS, RX_DIR);
+ list_del_init(&pTS->List);
+ list_add_tail(&pTS->List, &ieee->Rx_TS_Unused_List);
+ }
+ }
+
+ list_for_each_entry_safe(pTS, pTmpTS, &ieee->Rx_TS_Admit_List, List)
+ {
+ if (memcmp(pTS->Addr, Addr, 6) == 0)
+ {
+ RemoveTsEntry(ieee, pTS, RX_DIR);
+ list_del_init(&pTS->List);
+ list_add_tail(&pTS->List, &ieee->Rx_TS_Unused_List);
+ }
+ }
+#endif
+}
+
+void RemoveAllTS(struct rtllib_device* ieee)
+{
+ PTS_COMMON_INFO pTS, pTmpTS;
+#if 1
+ list_for_each_entry_safe(pTS, pTmpTS, &ieee->Tx_TS_Pending_List, List)
+ {
+ RemoveTsEntry(ieee, pTS, TX_DIR);
+ list_del_init(&pTS->List);
+ list_add_tail(&pTS->List, &ieee->Tx_TS_Unused_List);
+ }
+
+ list_for_each_entry_safe(pTS, pTmpTS, &ieee->Tx_TS_Admit_List, List)
+ {
+ RemoveTsEntry(ieee, pTS, TX_DIR);
+ list_del_init(&pTS->List);
+ list_add_tail(&pTS->List, &ieee->Tx_TS_Unused_List);
+ }
+
+ list_for_each_entry_safe(pTS, pTmpTS, &ieee->Rx_TS_Pending_List, List)
+ {
+ RemoveTsEntry(ieee, pTS, RX_DIR);
+ list_del_init(&pTS->List);
+ list_add_tail(&pTS->List, &ieee->Rx_TS_Unused_List);
+ }
+
+ list_for_each_entry_safe(pTS, pTmpTS, &ieee->Rx_TS_Admit_List, List)
+ {
+ RemoveTsEntry(ieee, pTS, RX_DIR);
+ list_del_init(&pTS->List);
+ list_add_tail(&pTS->List, &ieee->Rx_TS_Unused_List);
+ }
+#endif
+}
+
+void TsStartAddBaProcess(struct rtllib_device* ieee, PTX_TS_RECORD pTxTS)
+{
+ if(pTxTS->bAddBaReqInProgress == false)
+ {
+ pTxTS->bAddBaReqInProgress = true;
+#if 1
+ if(pTxTS->bAddBaReqDelayed)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_BA, "TsStartAddBaProcess(): Delayed Start ADDBA after 60 sec!!\n");
+ mod_timer(&pTxTS->TsAddBaTimer, jiffies + MSECS(TS_ADDBA_DELAY));
+ }
+ else
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_BA,"TsStartAddBaProcess(): Immediately Start ADDBA now!!\n");
+ mod_timer(&pTxTS->TsAddBaTimer, jiffies+10);
+ }
+#endif
+ }
+ else
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "%s()==>BA timer is already added\n", __FUNCTION__);
+}
+
+#ifndef BUILT_IN_RTLLIB
+EXPORT_SYMBOL_RSL(RemovePeerTS);
+#ifdef _RTL8192_EXT_PATCH_
+EXPORT_SYMBOL_RSL(ResetAdmitTRStream);
+#endif
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/rtl_crypto.h b/ubuntu/rtl8192se/rtllib/rtl_crypto.h
new file mode 100755
index 00000000000..7a9a2d3fd7d
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtl_crypto.h
@@ -0,0 +1,409 @@
+/*
+ * Scatterlist Cryptographic API.
+ *
+ * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
+ * Copyright (c) 2002 David S. Miller (davem@redhat.com)
+ *
+ * Portions derived from Cryptoapi, by Alexander Kjeldaas <astor@fast.no>
+ * and Nettle, by Niels Mé°ˆler.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ */
+#ifndef _LINUX_CRYPTO_H
+#define _LINUX_CRYPTO_H
+
+#include <linux/module.h>
+#include <linux/kernel.h>
+#include <linux/types.h>
+#include <linux/list.h>
+#include <linux/string.h>
+#include <asm/page.h>
+#include <asm/errno.h>
+
+#ifdef BUILT_IN_CRYPTO
+#ifdef CONFIG_CRYPTO_HMAC
+#undef CONFIG_CRYPTO_HMAC
+#endif
+
+#ifdef CONFIG_KMOD
+#undef CONFIG_KMOD
+#endif
+#endif /* BUILT_IN_CRYPTO */
+
+#define crypto_register_alg crypto_register_alg_rsl
+#define crypto_unregister_alg crypto_unregister_alg_rsl
+#define crypto_alloc_tfm crypto_alloc_tfm_rsl
+#define crypto_free_tfm crypto_free_tfm_rsl
+#define crypto_alg_available crypto_alg_available_rsl
+
+/*
+ * Algorithm masks and types.
+ */
+#define CRYPTO_ALG_TYPE_MASK 0x000000ff
+#define CRYPTO_ALG_TYPE_CIPHER 0x00000001
+#define CRYPTO_ALG_TYPE_DIGEST 0x00000002
+#define CRYPTO_ALG_TYPE_COMPRESS 0x00000004
+
+/*
+ * Transform masks and values (for crt_flags).
+ */
+#define CRYPTO_TFM_MODE_MASK 0x000000ff
+#define CRYPTO_TFM_REQ_MASK 0x000fff00
+#define CRYPTO_TFM_RES_MASK 0xfff00000
+
+#define CRYPTO_TFM_MODE_ECB 0x00000001
+#define CRYPTO_TFM_MODE_CBC 0x00000002
+#define CRYPTO_TFM_MODE_CFB 0x00000004
+#define CRYPTO_TFM_MODE_CTR 0x00000008
+
+#define CRYPTO_TFM_REQ_WEAK_KEY 0x00000100
+#define CRYPTO_TFM_RES_WEAK_KEY 0x00100000
+#define CRYPTO_TFM_RES_BAD_KEY_LEN 0x00200000
+#define CRYPTO_TFM_RES_BAD_KEY_SCHED 0x00400000
+#define CRYPTO_TFM_RES_BAD_BLOCK_LEN 0x00800000
+#define CRYPTO_TFM_RES_BAD_FLAGS 0x01000000
+
+/*
+ * Miscellaneous stuff.
+ */
+#define CRYPTO_UNSPEC 0
+#define CRYPTO_MAX_ALG_NAME 64
+
+struct scatterlist;
+
+/*
+ * Algorithms: modular crypto algorithm implementations, managed
+ * via crypto_register_alg() and crypto_unregister_alg().
+ */
+struct cipher_alg {
+ unsigned int cia_min_keysize;
+ unsigned int cia_max_keysize;
+ int (*cia_setkey)(void *ctx, const u8 *key,
+ unsigned int keylen, u32 *flags);
+ void (*cia_encrypt)(void *ctx, u8 *dst, const u8 *src);
+ void (*cia_decrypt)(void *ctx, u8 *dst, const u8 *src);
+};
+
+struct digest_alg {
+ unsigned int dia_digestsize;
+ void (*dia_init)(void *ctx);
+ void (*dia_update)(void *ctx, const u8 *data, unsigned int len);
+ void (*dia_final)(void *ctx, u8 *out);
+ int (*dia_setkey)(void *ctx, const u8 *key,
+ unsigned int keylen, u32 *flags);
+};
+
+struct compress_alg {
+ int (*coa_init)(void *ctx);
+ void (*coa_exit)(void *ctx);
+ int (*coa_compress)(void *ctx, const u8 *src, unsigned int slen,
+ u8 *dst, unsigned int *dlen);
+ int (*coa_decompress)(void *ctx, const u8 *src, unsigned int slen,
+ u8 *dst, unsigned int *dlen);
+};
+
+#define cra_cipher cra_u.cipher
+#define cra_digest cra_u.digest
+#define cra_compress cra_u.compress
+
+struct crypto_alg {
+ struct list_head cra_list;
+ u32 cra_flags;
+ unsigned int cra_blocksize;
+ unsigned int cra_ctxsize;
+ const char cra_name[CRYPTO_MAX_ALG_NAME];
+
+ union {
+ struct cipher_alg cipher;
+ struct digest_alg digest;
+ struct compress_alg compress;
+ } cra_u;
+
+ struct module *cra_module;
+};
+
+/*
+ * Algorithm registration interface.
+ */
+int crypto_register_alg(struct crypto_alg *alg);
+int crypto_unregister_alg(struct crypto_alg *alg);
+
+/*
+ * Algorithm query interface.
+ */
+int crypto_alg_available(const char *name, u32 flags);
+
+/*
+ * Transforms: user-instantiated objects which encapsulate algorithms
+ * and core processing logic. Managed via crypto_alloc_tfm() and
+ * crypto_free_tfm(), as well as the various helpers below.
+ */
+struct crypto_tfm;
+
+struct cipher_tfm {
+ void *cit_iv;
+ unsigned int cit_ivsize;
+ u32 cit_mode;
+ int (*cit_setkey)(struct crypto_tfm *tfm,
+ const u8 *key, unsigned int keylen);
+ int (*cit_encrypt)(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes);
+ int (*cit_encrypt_iv)(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes, u8 *iv);
+ int (*cit_decrypt)(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes);
+ int (*cit_decrypt_iv)(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes, u8 *iv);
+ void (*cit_xor_block)(u8 *dst, const u8 *src);
+};
+
+struct digest_tfm {
+ void (*dit_init)(struct crypto_tfm *tfm);
+ void (*dit_update)(struct crypto_tfm *tfm,
+ struct scatterlist *sg, unsigned int nsg);
+ void (*dit_final)(struct crypto_tfm *tfm, u8 *out);
+ void (*dit_digest)(struct crypto_tfm *tfm, struct scatterlist *sg,
+ unsigned int nsg, u8 *out);
+ int (*dit_setkey)(struct crypto_tfm *tfm,
+ const u8 *key, unsigned int keylen);
+#ifdef CONFIG_CRYPTO_HMAC
+ void *dit_hmac_block;
+#endif
+};
+
+struct compress_tfm {
+ int (*cot_compress)(struct crypto_tfm *tfm,
+ const u8 *src, unsigned int slen,
+ u8 *dst, unsigned int *dlen);
+ int (*cot_decompress)(struct crypto_tfm *tfm,
+ const u8 *src, unsigned int slen,
+ u8 *dst, unsigned int *dlen);
+};
+
+#define crt_cipher crt_u.cipher
+#define crt_digest crt_u.digest
+#define crt_compress crt_u.compress
+
+struct crypto_tfm {
+
+ u32 crt_flags;
+
+ union {
+ struct cipher_tfm cipher;
+ struct digest_tfm digest;
+ struct compress_tfm compress;
+ } crt_u;
+
+ struct crypto_alg *__crt_alg;
+};
+
+/*
+ * Transform user interface.
+ */
+
+/*
+ * crypto_alloc_tfm() will first attempt to locate an already loaded algorithm.
+ * If that fails and the kernel supports dynamically loadable modules, it
+ * will then attempt to load a module of the same name or alias. A refcount
+ * is grabbed on the algorithm which is then associated with the new transform.
+ *
+ * crypto_free_tfm() frees up the transform and any associated resources,
+ * then drops the refcount on the associated algorithm.
+ */
+struct crypto_tfm *crypto_alloc_tfm(const char *alg_name, u32 tfm_flags);
+void crypto_free_tfm(struct crypto_tfm *tfm);
+
+/*
+ * Transform helpers which query the underlying algorithm.
+ */
+static inline const char *crypto_tfm_alg_name(struct crypto_tfm *tfm)
+{
+ return tfm->__crt_alg->cra_name;
+}
+
+static inline const char *crypto_tfm_alg_modname(struct crypto_tfm *tfm)
+{
+ struct crypto_alg *alg = tfm->__crt_alg;
+
+ if (alg->cra_module)
+ return alg->cra_module->name;
+ else
+ return NULL;
+}
+
+static inline u32 crypto_tfm_alg_type(struct crypto_tfm *tfm)
+{
+ return tfm->__crt_alg->cra_flags & CRYPTO_ALG_TYPE_MASK;
+}
+
+static inline unsigned int crypto_tfm_alg_min_keysize(struct crypto_tfm *tfm)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ return tfm->__crt_alg->cra_cipher.cia_min_keysize;
+}
+
+static inline unsigned int crypto_tfm_alg_max_keysize(struct crypto_tfm *tfm)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ return tfm->__crt_alg->cra_cipher.cia_max_keysize;
+}
+
+static inline unsigned int crypto_tfm_alg_ivsize(struct crypto_tfm *tfm)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ return tfm->crt_cipher.cit_ivsize;
+}
+
+static inline unsigned int crypto_tfm_alg_blocksize(struct crypto_tfm *tfm)
+{
+ return tfm->__crt_alg->cra_blocksize;
+}
+
+static inline unsigned int crypto_tfm_alg_digestsize(struct crypto_tfm *tfm)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
+ return tfm->__crt_alg->cra_digest.dia_digestsize;
+}
+
+/*
+ * API wrappers.
+ */
+static inline void crypto_digest_init(struct crypto_tfm *tfm)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
+ tfm->crt_digest.dit_init(tfm);
+}
+
+static inline void crypto_digest_update(struct crypto_tfm *tfm,
+ struct scatterlist *sg,
+ unsigned int nsg)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
+ tfm->crt_digest.dit_update(tfm, sg, nsg);
+}
+
+static inline void crypto_digest_final(struct crypto_tfm *tfm, u8 *out)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
+ tfm->crt_digest.dit_final(tfm, out);
+}
+
+static inline void crypto_digest_digest(struct crypto_tfm *tfm,
+ struct scatterlist *sg,
+ unsigned int nsg, u8 *out)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
+ tfm->crt_digest.dit_digest(tfm, sg, nsg, out);
+}
+
+static inline int crypto_digest_setkey(struct crypto_tfm *tfm,
+ const u8 *key, unsigned int keylen)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_DIGEST);
+ if (tfm->crt_digest.dit_setkey == NULL)
+ return -ENOSYS;
+ return tfm->crt_digest.dit_setkey(tfm, key, keylen);
+}
+
+static inline int crypto_cipher_setkey(struct crypto_tfm *tfm,
+ const u8 *key, unsigned int keylen)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ return tfm->crt_cipher.cit_setkey(tfm, key, keylen);
+}
+
+static inline int crypto_cipher_encrypt(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ return tfm->crt_cipher.cit_encrypt(tfm, dst, src, nbytes);
+}
+
+static inline int crypto_cipher_encrypt_iv(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes, u8 *iv)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ BUG_ON(tfm->crt_cipher.cit_mode == CRYPTO_TFM_MODE_ECB);
+ return tfm->crt_cipher.cit_encrypt_iv(tfm, dst, src, nbytes, iv);
+}
+
+static inline int crypto_cipher_decrypt(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ return tfm->crt_cipher.cit_decrypt(tfm, dst, src, nbytes);
+}
+
+static inline int crypto_cipher_decrypt_iv(struct crypto_tfm *tfm,
+ struct scatterlist *dst,
+ struct scatterlist *src,
+ unsigned int nbytes, u8 *iv)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ BUG_ON(tfm->crt_cipher.cit_mode == CRYPTO_TFM_MODE_ECB);
+ return tfm->crt_cipher.cit_decrypt_iv(tfm, dst, src, nbytes, iv);
+}
+
+static inline void crypto_cipher_set_iv(struct crypto_tfm *tfm,
+ const u8 *src, unsigned int len)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ memcpy(tfm->crt_cipher.cit_iv, src, len);
+}
+
+static inline void crypto_cipher_get_iv(struct crypto_tfm *tfm,
+ u8 *dst, unsigned int len)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_CIPHER);
+ memcpy(dst, tfm->crt_cipher.cit_iv, len);
+}
+
+static inline int crypto_comp_compress(struct crypto_tfm *tfm,
+ const u8 *src, unsigned int slen,
+ u8 *dst, unsigned int *dlen)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_COMPRESS);
+ return tfm->crt_compress.cot_compress(tfm, src, slen, dst, dlen);
+}
+
+static inline int crypto_comp_decompress(struct crypto_tfm *tfm,
+ const u8 *src, unsigned int slen,
+ u8 *dst, unsigned int *dlen)
+{
+ BUG_ON(crypto_tfm_alg_type(tfm) != CRYPTO_ALG_TYPE_COMPRESS);
+ return tfm->crt_compress.cot_decompress(tfm, src, slen, dst, dlen);
+}
+
+/*
+ * HMAC support.
+ */
+#ifdef CONFIG_CRYPTO_HMAC
+void crypto_hmac_init(struct crypto_tfm *tfm, u8 *key, unsigned int *keylen);
+void crypto_hmac_update(struct crypto_tfm *tfm,
+ struct scatterlist *sg, unsigned int nsg);
+void crypto_hmac_final(struct crypto_tfm *tfm, u8 *key,
+ unsigned int *keylen, u8 *out);
+void crypto_hmac(struct crypto_tfm *tfm, u8 *key, unsigned int *keylen,
+ struct scatterlist *sg, unsigned int nsg, u8 *out);
+#endif /* CONFIG_CRYPTO_HMAC */
+
+#endif /* _LINUX_CRYPTO_H */
+
diff --git a/ubuntu/rtl8192se/rtllib/rtllib.h b/ubuntu/rtl8192se/rtllib/rtllib.h
new file mode 100755
index 00000000000..4a77a72d11c
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtllib.h
@@ -0,0 +1,4134 @@
+/*
+ * Merged with mainline rtllib.h in Aug 2004. Original ieee802_11
+ * remains copyright by the original authors
+ *
+ * Portions of the merged code are based on Host AP (software wireless
+ * LAN access point) driver for Intersil Prism2/2.5/3.
+ *
+ * Copyright (c) 2001-2002, SSH Communications Security Corp and Jouni Malinen
+ * <jkmaline@cc.hut.fi>
+ * Copyright (c) 2002-2003, Jouni Malinen <jkmaline@cc.hut.fi>
+ *
+ * Adaption to a generic IEEE 802.11 stack by James Ketrenos
+ * <jketreno@linux.intel.com>
+ * Copyright (c) 2004, Intel Corporation
+ *
+ * Modified for Realtek's wi-fi cards by Andrea Merello
+ * <andreamrl@tiscali.it>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation. See README and COPYING for
+ * more details.
+ */
+#ifndef RTLLIB_H
+#define RTLLIB_H
+#include <linux/if_ether.h> /* ETH_ALEN */
+#include <linux/kernel.h> /* ARRAY_SIZE */
+#include <linux/version.h>
+#include <linux/module.h>
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+#include <linux/jiffies.h>
+#else
+#include <linux/jffs.h>
+#include <linux/tqueue.h>
+#endif
+#include <linux/timer.h>
+#include <linux/sched.h>
+
+#include <linux/delay.h>
+#include <linux/wireless.h>
+
+#ifdef CONFIG_CFG_80211
+#include <net/cfg80211.h>
+#endif
+
+#include "rtl819x_HT.h"
+#include "rtl819x_BA.h"
+#include "rtl819x_TS.h"
+
+#include <linux/netdevice.h>
+#include <linux/if_arp.h> /* ARPHRD_ETHER */
+
+#ifndef WIRELESS_SPY
+#define WIRELESS_SPY
+#endif
+#include <net/iw_handler.h>
+
+#if defined (RTL8192S_WAPI_SUPPORT)
+#include "wapi.h"
+#include "wapi_interface.h"
+#endif
+
+#ifndef RTK_DMP_PLATFORM
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20))
+#ifndef bool
+typedef enum{false = 0, true} bool;
+#endif
+#endif
+#endif
+
+#ifndef IW_MODE_MONITOR
+#define IW_MODE_MONITOR 6
+#endif
+
+#ifndef IWEVCUSTOM
+#define IWEVCUSTOM 0x8c02
+#endif
+
+#ifndef IW_CUSTOM_MAX
+/* Max number of char in custom event - use multiple of them if needed */
+#define IW_CUSTOM_MAX 256 /* In bytes */
+#endif
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+#define jiffies_to_msecs(t) ((t) * 1000 / HZ)
+#ifndef __bitwise
+#define __bitwise __attribute__((bitwise))
+#endif
+typedef __u16 __le16;
+
+#if (WIRELESS_EXT < 16)
+struct iw_spy_data{
+ /* --- Standard spy support --- */
+ int spy_number;
+ u_char spy_address[IW_MAX_SPY][ETH_ALEN];
+ struct iw_quality spy_stat[IW_MAX_SPY];
+ /* --- Enhanced spy support (event) */
+ struct iw_quality spy_thr_low; /* Low threshold */
+ struct iw_quality spy_thr_high; /* High threshold */
+ u_char spy_thr_under[IW_MAX_SPY];
+};
+#endif
+#endif
+
+#ifndef container_of
+/**
+ * container_of - cast a member of a structure out to the containing structure
+ *
+ * @ptr: the pointer to the member.
+ * @type: the type of the container struct this is embedded in.
+ * @member: the name of the member within the struct.
+ *
+ */
+#define container_of(ptr, type, member) ({ \
+ const typeof( ((type *)0)->member ) *__mptr = (ptr); \
+ (type *)( (char *)__mptr - offsetof(type,member) );})
+#endif
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
+#define skb_tail_pointer_rsl(skb) skb_tail_pointer(skb)
+#else
+#define skb_tail_pointer_rsl(skb) skb->tail
+#endif
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+ #define EXPORT_SYMBOL_RSL(x) EXPORT_SYMBOL(x)
+#else
+ #define EXPORT_SYMBOL_RSL(x) EXPORT_SYMBOL_NOVERS(x)
+#endif
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+static inline void tq_init(struct tq_struct * task, void(*func)(void *), void *data)
+{
+ task->routine = func;
+ task->data = data;
+ INIT_LIST_HEAD(&task->list);
+ task->sync = 0;
+}
+#endif
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10))
+static inline void setup_timer(struct timer_list * timer, void(*function)(unsigned long), unsigned long data)
+{
+ timer->function = function;
+ timer->data = data;
+}
+#endif
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
+ typedef struct delayed_work delayed_work_struct_rsl;
+ #define queue_delayed_work_rsl(x,y,z) queue_delayed_work(x,y,z)
+ #define INIT_DELAYED_WORK_RSL(x,y,z) INIT_DELAYED_WORK(x,y)
+#elif LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,40)
+ typedef struct tq_struct delayed_work_struct_rsl;
+ #define queue_delayed_work_rsl(x,y,z) schedule_task(y)
+ #define INIT_DELAYED_WORK_RSL(x,y,z) tq_init(x,y,z)
+#else
+ typedef struct work_struct delayed_work_struct_rsl;
+ #define queue_delayed_work_rsl(x,y,z) queue_delayed_work(x,y,z)
+ #define INIT_DELAYED_WORK_RSL(x,y,z) INIT_WORK(x,y,z)
+#endif
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
+ typedef struct work_struct work_struct_rsl;
+ #define queue_work_rsl(x,y) queue_work(x,y)
+ #define INIT_WORK_RSL(x,y,z) INIT_WORK(x,y)
+#elif LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,40)
+ typedef struct tq_struct work_struct_rsl;
+ #define queue_work_rsl(x,y) schedule_task(y)
+ #define INIT_WORK_RSL(x,y,z) tq_init(x,y,z)
+#else
+ typedef struct work_struct work_struct_rsl;
+ #define queue_work_rsl(x,y) queue_work(x,y)
+ #define INIT_WORK_RSL(x,y,z) INIT_WORK(x,y,z)
+#endif
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
+ #define container_of_work_rsl(x,y,z) container_of(x,y,z)
+ #define container_of_dwork_rsl(x,y,z) container_of(container_of(x, struct delayed_work, work), y, z)
+#else
+ #define container_of_work_rsl(x,y,z) (x)
+ #define container_of_dwork_rsl(x,y,z) (x)
+#endif
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,4,20)) && (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+static inline char *
+iwe_stream_add_event_rsl(struct iw_request_info *info,
+ char * stream, /* Stream of events */
+ char * ends, /* End of stream */
+ struct iw_event *iwe, /* Payload */
+ int event_len) /* Real size of payload */
+{
+ /* Check if it's possible */
+ if((stream + event_len) < ends) {
+ iwe->len = event_len;
+ ndelay(1);
+ memcpy(stream, (char *) iwe, event_len);
+ stream += event_len;
+ }
+ return stream;
+}
+#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
+ #define iwe_stream_add_event_rsl(info,start,stop,iwe,len) iwe_stream_add_event(info,start,stop,iwe,len)
+#else
+ #define iwe_stream_add_event_rsl(info,start,stop,iwe,len) iwe_stream_add_event(start,stop,iwe,len)
+#endif
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
+ #define iwe_stream_add_point_rsl(info,start,stop,iwe,p) iwe_stream_add_point(info,start,stop,iwe,p)
+#else
+ #define iwe_stream_add_point_rsl(info,start,stop,iwe,p) iwe_stream_add_point(start,stop,iwe,p)
+#endif
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ #define usb_alloc_urb_rsl(x,y) usb_alloc_urb(x,y)
+ #define usb_submit_urb_rsl(x,y) usb_submit_urb(x,y)
+#else
+ #define usb_alloc_urb_rsl(x,y) usb_alloc_urb(x)
+ #define usb_submit_urb_rsl(x,y) usb_submit_urb(x)
+#endif
+
+static inline void *netdev_priv_rsl(struct net_device *dev)
+{
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ return netdev_priv(dev);
+#else
+ return dev->priv;
+#endif
+}
+
+#define KEY_TYPE_NA 0x0
+#define KEY_TYPE_WEP40 0x1
+#define KEY_TYPE_TKIP 0x2
+#define KEY_TYPE_CCMP 0x4
+#define KEY_TYPE_WEP104 0x5
+#if defined (RTL8192S_WAPI_SUPPORT)
+#define KEY_TYPE_SMS4 0x8
+#endif
+/* added for rtl819x tx procedure */
+#define MAX_QUEUE_SIZE 0x10
+
+#if defined(RTL8192SU) || defined(RTL8190P) ||defined(RTL8192U) ||defined(RTL8192E)
+#define BK_QUEUE 0
+#define BE_QUEUE 1
+#define VI_QUEUE 2
+#define VO_QUEUE 3
+#define HCCA_QUEUE 4
+#define TXCMD_QUEUE 5
+#define MGNT_QUEUE 6
+#define HIGH_QUEUE 7
+#define BEACON_QUEUE 8
+#elif defined(RTL8192SE)
+#define BK_QUEUE 0
+#define BE_QUEUE 1
+#define VI_QUEUE 2
+#define VO_QUEUE 3
+#define BEACON_QUEUE 4
+#define TXCMD_QUEUE 5
+#define MGNT_QUEUE 6
+#define HIGH_QUEUE 7
+#define HCCA_QUEUE 8
+
+#elif defined(RTL8192CE)
+
+#define BK_QUEUE 0
+#define BE_QUEUE 1
+#define VI_QUEUE 2
+#define VO_QUEUE 3
+#define BEACON_QUEUE 4
+#define TXCMD_QUEUE 5
+#define MGNT_QUEUE 6
+#define HIGH_QUEUE 7
+#define HCCA_QUEUE 8
+#endif
+
+#ifdef RTL8192CE
+#define LOW_QUEUE BE_QUEUE
+#define NORMAL_QUEUE MGNT_QUEUE
+#else
+#define LOW_QUEUE BE_QUEUE
+#define NORMAL_QUEUE MGNT_QUEUE
+#endif
+
+#ifndef IW_MODE_MESH
+#define IW_MODE_MESH 7
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+#define WIFI_MESH_TYPE RTLLIB_FTYPE_DATA
+
+#define WLAN_MESH_HDR_LEN 6
+#define WLAN_MESH_HDR_6ADDR_LEN 18
+#define WLAN_MESH_HDR_4ADDR_LEN 6
+#define MAX_MP 65
+#define IEEE_MESH_MAC_HASH_SIZE 31
+#define MAX_MESH_ID_LEN 33
+#define MAX_HOST_NAME_LENGTH 33
+#endif
+#define AMSDU_SUBHEADER_LEN 14
+#define SWRF_TIMEOUT 50
+
+#define IE_CISCO_FLAG_POSITION 0x08
+#define SUPPORT_CKIP_MIC 0x08
+#define SUPPORT_CKIP_PK 0x10
+#define RT_RF_OFF_LEVL_ASPM BIT0
+#define RT_RF_OFF_LEVL_CLK_REQ BIT1
+#define RT_RF_OFF_LEVL_PCI_D3 BIT2
+#define RT_RF_OFF_LEVL_HALT_NIC BIT3
+#define RT_RF_OFF_LEVL_FREE_FW BIT4
+#define RT_RF_OFF_LEVL_FW_32K BIT5
+#define RT_RF_PS_LEVEL_ALWAYS_ASPM BIT6
+#define RT_RF_LPS_DISALBE_2R BIT30
+#define RT_RF_LPS_LEVEL_ASPM BIT31
+#define RT_IN_PS_LEVEL(pPSC, _PS_FLAG) ((pPSC->CurPsLevel & _PS_FLAG) ? true : false)
+#define RT_CLEAR_PS_LEVEL(pPSC, _PS_FLAG) (pPSC->CurPsLevel &= (~(_PS_FLAG)))
+#define RT_SET_PS_LEVEL(pPSC, _PS_FLAG) (pPSC->CurPsLevel |= _PS_FLAG)
+
+#if defined (RTL8192S_WAPI_SUPPORT)
+#define SMS4_MIC_LEN 16
+#define WAPI_EXT_LEN 18
+#define MAX_WAPI_IE_LEN 255
+#define sMacHdrLng 24
+#endif
+
+/* defined for skb cb field */
+/* At most 28 byte */
+typedef struct cb_desc {
+ /* Tx Desc Related flags (8-9) */
+ u8 bLastIniPkt:1;
+ u8 bCmdOrInit:1;
+ u8 bFirstSeg:1;
+ u8 bLastSeg:1;
+ u8 bEncrypt:1;
+ u8 bTxDisableRateFallBack:1;
+ u8 bTxUseDriverAssingedRate:1;
+ u8 bHwSec:1;
+
+ u8 nStuckCount;
+
+ /* Tx Firmware Relaged flags (10-11)*/
+ u8 bCTSEnable:1;
+ u8 bRTSEnable:1;
+ u8 bUseShortGI:1;
+ u8 bUseShortPreamble:1;
+ u8 bTxEnableFwCalcDur:1;
+ u8 bAMPDUEnable:1;
+ u8 bRTSSTBC:1;
+ u8 RTSSC:1;
+
+ u8 bRTSBW:1;
+ u8 bPacketBW:1;
+ u8 bRTSUseShortPreamble:1;
+ u8 bRTSUseShortGI:1;
+ u8 bMulticast:1;
+ u8 bBroadcast:1;
+ u8 drv_agg_enable:1;
+#ifdef _RTL8192_EXT_PATCH_
+ u8 mesh_pkt:1;
+#else
+ u8 reserved2:1;
+#endif
+
+ /* Tx Desc related element(12-19) */
+ u8 rata_index;
+ u8 queue_index;
+ u16 txbuf_size;
+ u8 RATRIndex;
+#ifdef _RTL8192_EXT_PATCH_
+ u8 mesh_type:2;
+ u8 bFromAggrQ:1;
+ u8 bAMSDU:1;
+ u8 brelay_pkt:1;
+ u8 badhoc:1;
+ u8 bretry_pkt:1;
+ u8 bFromRx:1;
+#else
+ u8 bAMSDU:1;
+ u8 bFromAggrQ:1;
+ u8 reserved6:6;
+#endif
+ u8 macId;
+ u8 priority;
+
+ /* Tx firmware related element(20-27) */
+ u8 data_rate;
+ u8 rts_rate;
+ u8 ampdu_factor;
+ u8 ampdu_density;
+ u8 DrvAggrNum;
+ u8 bdhcp;
+ u16 pkt_size;
+ u8 bIsSpecialDataFrame;
+}cb_desc, *pcb_desc;
+
+/*--------------------------Define -------------------------------------------*/
+#define MGN_1M 0x02
+#define MGN_2M 0x04
+#define MGN_5_5M 0x0b
+#define MGN_11M 0x16
+
+#define MGN_6M 0x0c
+#define MGN_9M 0x12
+#define MGN_12M 0x18
+#define MGN_18M 0x24
+#define MGN_24M 0x30
+#define MGN_36M 0x48
+#define MGN_48M 0x60
+#define MGN_54M 0x6c
+
+#define MGN_MCS0 0x80
+#define MGN_MCS1 0x81
+#define MGN_MCS2 0x82
+#define MGN_MCS3 0x83
+#define MGN_MCS4 0x84
+#define MGN_MCS5 0x85
+#define MGN_MCS6 0x86
+#define MGN_MCS7 0x87
+#define MGN_MCS8 0x88
+#define MGN_MCS9 0x89
+#define MGN_MCS10 0x8a
+#define MGN_MCS11 0x8b
+#define MGN_MCS12 0x8c
+#define MGN_MCS13 0x8d
+#define MGN_MCS14 0x8e
+#define MGN_MCS15 0x8f
+#define MGN_MCS0_SG 0x90
+#define MGN_MCS1_SG 0x91
+#define MGN_MCS2_SG 0x92
+#define MGN_MCS3_SG 0x93
+#define MGN_MCS4_SG 0x94
+#define MGN_MCS5_SG 0x95
+#define MGN_MCS6_SG 0x96
+#define MGN_MCS7_SG 0x97
+#define MGN_MCS8_SG 0x98
+#define MGN_MCS9_SG 0x99
+#define MGN_MCS10_SG 0x9a
+#define MGN_MCS11_SG 0x9b
+#define MGN_MCS12_SG 0x9c
+#define MGN_MCS13_SG 0x9d
+#define MGN_MCS14_SG 0x9e
+#define MGN_MCS15_SG 0x9f
+
+
+enum _ReasonCode{
+ unspec_reason = 0x1,
+ auth_not_valid = 0x2,
+ deauth_lv_ss = 0x3,
+ inactivity = 0x4,
+ ap_overload = 0x5,
+ class2_err = 0x6,
+ class3_err = 0x7,
+ disas_lv_ss = 0x8,
+ asoc_not_auth = 0x9,
+
+ mic_failure = 0xe,
+
+ invalid_IE = 0x0d,
+ four_way_tmout = 0x0f,
+ two_way_tmout = 0x10,
+ IE_dismatch = 0x11,
+ invalid_Gcipher = 0x12,
+ invalid_Pcipher = 0x13,
+ invalid_AKMP = 0x14,
+ unsup_RSNIEver = 0x15,
+ invalid_RSNIE = 0x16,
+ auth_802_1x_fail= 0x17,
+ ciper_reject = 0x18,
+
+ QoS_unspec = 0x20,
+ QAP_bandwidth = 0x21,
+ poor_condition = 0x22,
+ no_facility = 0x23,
+ req_declined = 0x25,
+ invalid_param = 0x26,
+ req_not_honored= 0x27,
+ TS_not_created = 0x2F,
+ DL_not_allowed = 0x30,
+ dest_not_exist = 0x31,
+ dest_not_QSTA = 0x32,
+};
+
+typedef enum _HAL_DEF_VARIABLE{
+ HAL_DEF_TPC_ENABLE,
+ HAL_DEF_INIT_GAIN,
+ HAL_DEF_PROT_IMP_MODE,
+ HAL_DEF_HIGH_POWER_MECHANISM,
+ HAL_DEF_RATE_ADAPTIVE_MECHANISM,
+ HAL_DEF_ANTENNA_DIVERSITY_MECHANISM,
+ HAL_DEF_LED,
+ HAL_DEF_CW_MAX_MIN,
+
+ HAL_DEF_WOWLAN,
+ HAL_DEF_ENDPOINTS,
+ HAL_DEF_MIN_TX_POWER_DBM,
+ HAL_DEF_MAX_TX_POWER_DBM,
+ HW_DEF_EFUSE_REPG_SECTION1_FLAG,
+ HW_DEF_EFUSE_REPG_DATA,
+ HW_DEF_GPIO,
+ HAL_DEF_PCI_SUPPORT_ASPM,
+ HAL_DEF_THERMAL_VALUE,
+ HAL_DEF_USB_IN_TOKEN_REV,
+}HAL_DEF_VARIABLE;
+
+
+typedef enum _HW_VARIABLES{
+ HW_VAR_ETHER_ADDR,
+ HW_VAR_MULTICAST_REG,
+ HW_VAR_BASIC_RATE,
+ HW_VAR_BSSID,
+ HW_VAR_MEDIA_STATUS,
+ HW_VAR_SECURITY_CONF,
+ HW_VAR_BEACON_INTERVAL,
+ HW_VAR_ATIM_WINDOW,
+ HW_VAR_LISTEN_INTERVAL,
+ HW_VAR_CS_COUNTER,
+ HW_VAR_DEFAULTKEY0,
+ HW_VAR_DEFAULTKEY1,
+ HW_VAR_DEFAULTKEY2,
+ HW_VAR_DEFAULTKEY3,
+ HW_VAR_SIFS,
+ HW_VAR_DIFS,
+ HW_VAR_EIFS,
+ HW_VAR_SLOT_TIME,
+ HW_VAR_ACK_PREAMBLE,
+ HW_VAR_CW_CONFIG,
+ HW_VAR_CW_VALUES,
+ HW_VAR_RATE_FALLBACK_CONTROL,
+ HW_VAR_CONTENTION_WINDOW,
+ HW_VAR_RETRY_COUNT,
+ HW_VAR_TR_SWITCH,
+ HW_VAR_COMMAND,
+ HW_VAR_WPA_CONFIG,
+ HW_VAR_AMPDU_MIN_SPACE,
+ HW_VAR_SHORTGI_DENSITY,
+ HW_VAR_AMPDU_FACTOR,
+ HW_VAR_MCS_RATE_AVAILABLE,
+ HW_VAR_AC_PARAM,
+ HW_VAR_ACM_CTRL,
+ HW_VAR_DIS_Req_Qsize,
+ HW_VAR_CCX_CHNL_LOAD,
+ HW_VAR_CCX_NOISE_HISTOGRAM,
+ HW_VAR_CCX_CLM_NHM,
+ HW_VAR_TxOPLimit,
+ HW_VAR_TURBO_MODE,
+ HW_VAR_RF_STATE,
+ HW_VAR_RF_OFF_BY_HW,
+ HW_VAR_BUS_SPEED,
+ HW_VAR_SET_DEV_POWER,
+
+ HW_VAR_RCR,
+ HW_VAR_RATR_0,
+ HW_VAR_RRSR,
+ HW_VAR_CPU_RST,
+ HW_VAR_CECHK_BSSID,
+ HW_VAR_LBK_MODE,
+ HW_VAR_AES_11N_FIX,
+ HW_VAR_USB_RX_AGGR,
+ HW_VAR_USER_CONTROL_TURBO_MODE,
+ HW_VAR_RETRY_LIMIT,
+ HW_VAR_INIT_TX_RATE,
+ HW_VAR_TX_RATE_REG,
+ HW_VAR_EFUSE_USAGE,
+ HW_VAR_EFUSE_BYTES,
+ HW_VAR_AUTOLOAD_STATUS,
+ HW_VAR_RF_2R_DISABLE,
+ HW_VAR_SET_RPWM,
+ HW_VAR_H2C_FW_PWRMODE,
+ HW_VAR_H2C_FW_JOINBSSRPT,
+ HW_VAR_1X1_RECV_COMBINE,
+ HW_VAR_STOP_SEND_BEACON,
+ HW_VAR_TSF_TIMER,
+ HW_VAR_IO_CMD,
+ HW_VAR_HANDLE_FW_C2H,
+ HW_VAR_DL_FW_RSVD_PAGE,
+ HW_VAR_AID,
+ HW_VAR_HW_SEQ_ENABLE,
+ HW_VAR_CORRECT_TSF,
+ HW_VAR_BCN_VALID,
+ HW_VAR_FWLPS_RF_ON,
+ HW_VAR_DUAL_TSF_RST,
+ HW_VAR_H2C_FW_UPDATE_GTK,
+ HW_VAR_WF_MASK,
+ HW_VAR_WF_CRC,
+ HW_VAR_WF_IS_MAC_ADDR,
+ HW_VAR_H2C_FW_OFFLOAD,
+ HW_VAR_RESET_WFCRC,
+ HW_VAR_SWITCH_EPHY_WoWLAN,
+}HW_VARIABLES;
+
+
+#define aSifsTime (((priv->rtllib->current_network.mode == IEEE_A)||(priv->rtllib->current_network.mode == IEEE_N_24G)||(priv->rtllib->current_network.mode == IEEE_N_5G))? 16 : 10)
+
+#define MGMT_QUEUE_NUM 5
+
+#define IEEE_CMD_SET_WPA_PARAM 1
+#define IEEE_CMD_SET_WPA_IE 2
+#define IEEE_CMD_SET_ENCRYPTION 3
+#define IEEE_CMD_MLME 4
+
+#define IEEE_PARAM_WPA_ENABLED 1
+#define IEEE_PARAM_TKIP_COUNTERMEASURES 2
+#define IEEE_PARAM_DROP_UNENCRYPTED 3
+#define IEEE_PARAM_PRIVACY_INVOKED 4
+#define IEEE_PARAM_AUTH_ALGS 5
+#define IEEE_PARAM_IEEE_802_1X 6
+#define IEEE_PARAM_WPAX_SELECT 7
+#define IEEE_PROTO_WPA 1
+#define IEEE_PROTO_RSN 2
+#define IEEE_WPAX_USEGROUP 0
+#define IEEE_WPAX_WEP40 1
+#define IEEE_WPAX_TKIP 2
+#define IEEE_WPAX_WRAP 3
+#define IEEE_WPAX_CCMP 4
+#define IEEE_WPAX_WEP104 5
+
+#define IEEE_KEY_MGMT_IEEE8021X 1
+#define IEEE_KEY_MGMT_PSK 2
+
+#define IEEE_MLME_STA_DEAUTH 1
+#define IEEE_MLME_STA_DISASSOC 2
+
+
+#define IEEE_CRYPT_ERR_UNKNOWN_ALG 2
+#define IEEE_CRYPT_ERR_UNKNOWN_ADDR 3
+#define IEEE_CRYPT_ERR_CRYPT_INIT_FAILED 4
+#define IEEE_CRYPT_ERR_KEY_SET_FAILED 5
+#define IEEE_CRYPT_ERR_TX_KEY_SET_FAILED 6
+#define IEEE_CRYPT_ERR_CARD_CONF_FAILED 7
+#define IEEE_CRYPT_ALG_NAME_LEN 16
+
+#define MAX_IE_LEN 0xff
+#ifdef _RTL8192_EXT_PATCH_
+#define ENABLE_NULL_PT_DEBUG
+#endif
+#ifdef ENABLE_NULL_PT_DEBUG
+#define RT_ASSERT_RET(_Exp) \
+ if(!(_Exp)) \
+ { \
+ printk("Rtl819x: "); \
+ printk( "Assertion failed! %s,%s,line=%d\n", \
+ #_Exp,__FUNCTION__,__LINE__); \
+ return; \
+ }
+#define RT_ASSERT_RET_VALUE(_Exp,Ret) \
+ if(!(_Exp)) \
+ { \
+ printk("Rtl819x: "); \
+ printk( "Assertion failed! %s,%s,line=%d\n", \
+ #_Exp,__FUNCTION__,__LINE__); \
+ return (Ret); \
+ }
+#else
+#define RT_ASSERT_RET(_Exp) do {} while(0)
+#define RT_ASSERT_RET_VALUE(_Exp,Ret) do {} while(0)
+#endif
+
+typedef struct ieee_param {
+ u32 cmd;
+ u8 sta_addr[ETH_ALEN];
+ union {
+ struct {
+ u8 name;
+ u32 value;
+ } wpa_param;
+ struct {
+ u32 len;
+ u8 reserved[32];
+ u8 data[0];
+ } wpa_ie;
+ struct{
+ int command;
+ int reason_code;
+ } mlme;
+ struct {
+ u8 alg[IEEE_CRYPT_ALG_NAME_LEN];
+ u8 set_tx;
+ u32 err;
+ u8 idx;
+ u8 seq[8]; /* sequence counter (set: RX, get: TX) */
+ u16 key_len;
+ u8 key[0];
+ } crypt;
+ } u;
+}ieee_param;
+
+
+#if WIRELESS_EXT < 17
+#define IW_QUAL_QUAL_INVALID 0x10
+#define IW_QUAL_LEVEL_INVALID 0x20
+#define IW_QUAL_NOISE_INVALID 0x40
+#define IW_QUAL_QUAL_UPDATED 0x1
+#define IW_QUAL_LEVEL_UPDATED 0x2
+#define IW_QUAL_NOISE_UPDATED 0x4
+#endif
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9))
+#define MSECS(t) (HZ * ((t) / 1000) + (HZ * ((t) % 1000)) / 1000)
+static inline unsigned long msleep_interruptible_rsl(unsigned int msecs)
+{
+ unsigned long timeout = MSECS(msecs) + 1;
+
+ while (timeout) {
+ set_current_state(TASK_INTERRUPTIBLE);
+ timeout = schedule_timeout(timeout);
+ }
+ return timeout;
+}
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,31))
+static inline void msleep(unsigned int msecs)
+{
+ unsigned long timeout = MSECS(msecs) + 1;
+
+ while (timeout) {
+ set_current_state(TASK_UNINTERRUPTIBLE);
+ timeout = schedule_timeout(timeout);
+ }
+}
+#endif
+#else
+#define MSECS(t) msecs_to_jiffies(t)
+#define msleep_interruptible_rsl msleep_interruptible
+#endif
+
+#define RTLLIB_DATA_LEN 2304
+/* Maximum size for the MA-UNITDATA primitive, 802.11 standard section
+ 6.2.1.1.2.
+
+ The figure in section 7.1.2 suggests a body size of up to 2312
+ bytes is allowed, which is a bit confusing, I suspect this
+ represents the 2304 bytes of real data, plus a possible 8 bytes of
+ WEP IV and ICV. (this interpretation suggested by Ramiro Barreiro) */
+#define RTLLIB_1ADDR_LEN 10
+#define RTLLIB_2ADDR_LEN 16
+#define RTLLIB_3ADDR_LEN 24
+#define RTLLIB_4ADDR_LEN 30
+#define RTLLIB_FCS_LEN 4
+#define RTLLIB_HLEN (RTLLIB_4ADDR_LEN)
+#define RTLLIB_FRAME_LEN (RTLLIB_DATA_LEN + RTLLIB_HLEN)
+#define RTLLIB_MGMT_HDR_LEN 24
+#define RTLLIB_DATA_HDR3_LEN 24
+#define RTLLIB_DATA_HDR4_LEN 30
+
+#define MIN_FRAG_THRESHOLD 256U
+#define MAX_FRAG_THRESHOLD 2346U
+#define MAX_HT_DATA_FRAG_THRESHOLD 0x2000
+
+#define HT_AMSDU_SIZE_4K 3839
+#define HT_AMSDU_SIZE_8K 7935
+
+/* Frame control field constants */
+#define RTLLIB_FCTL_VERS 0x0003
+#define RTLLIB_FCTL_FTYPE 0x000c
+#define RTLLIB_FCTL_STYPE 0x00f0
+#define RTLLIB_FCTL_FRAMETYPE 0x00fc
+#define RTLLIB_FCTL_TODS 0x0100
+#define RTLLIB_FCTL_FROMDS 0x0200
+#define RTLLIB_FCTL_DSTODS 0x0300
+#define RTLLIB_FCTL_MOREFRAGS 0x0400
+#define RTLLIB_FCTL_RETRY 0x0800
+#define RTLLIB_FCTL_PM 0x1000
+#define RTLLIB_FCTL_MOREDATA 0x2000
+#define RTLLIB_FCTL_WEP 0x4000
+#define RTLLIB_FCTL_ORDER 0x8000
+
+#define RTLLIB_FTYPE_MGMT 0x0000
+#define RTLLIB_FTYPE_CTL 0x0004
+#define RTLLIB_FTYPE_DATA 0x0008
+
+/* management */
+#define RTLLIB_STYPE_ASSOC_REQ 0x0000
+#define RTLLIB_STYPE_ASSOC_RESP 0x0010
+#define RTLLIB_STYPE_REASSOC_REQ 0x0020
+#define RTLLIB_STYPE_REASSOC_RESP 0x0030
+#define RTLLIB_STYPE_PROBE_REQ 0x0040
+#define RTLLIB_STYPE_PROBE_RESP 0x0050
+#define RTLLIB_STYPE_BEACON 0x0080
+#define RTLLIB_STYPE_ATIM 0x0090
+#define RTLLIB_STYPE_DISASSOC 0x00A0
+#define RTLLIB_STYPE_AUTH 0x00B0
+#define RTLLIB_STYPE_DEAUTH 0x00C0
+#define RTLLIB_STYPE_MANAGE_ACT 0x00D0
+#ifdef _RTL8192_EXT_PATCH_
+/* added for mesh action frame type */
+#ifdef COMPATIBLE_WITH_RALINK_MESH
+#define RTLLIB_STYPE_MESH_ACT 0x00F0
+#else
+#define RTLLIB_STYPE_MESH_ACT RTLLIB_STYPE_MANAGE_ACT
+#endif
+#endif
+
+/* control */
+#define RTLLIB_STYPE_PSPOLL 0x00A0
+#define RTLLIB_STYPE_RTS 0x00B0
+#define RTLLIB_STYPE_CTS 0x00C0
+#define RTLLIB_STYPE_ACK 0x00D0
+#define RTLLIB_STYPE_CFEND 0x00E0
+#define RTLLIB_STYPE_CFENDACK 0x00F0
+#define RTLLIB_STYPE_BLOCKACK 0x0094
+
+/* data */
+#define RTLLIB_STYPE_DATA 0x0000
+#define RTLLIB_STYPE_DATA_CFACK 0x0010
+#define RTLLIB_STYPE_DATA_CFPOLL 0x0020
+#define RTLLIB_STYPE_DATA_CFACKPOLL 0x0030
+#define RTLLIB_STYPE_NULLFUNC 0x0040
+#define RTLLIB_STYPE_CFACK 0x0050
+#define RTLLIB_STYPE_CFPOLL 0x0060
+#define RTLLIB_STYPE_CFACKPOLL 0x0070
+#define RTLLIB_STYPE_QOS_DATA 0x0080
+#define RTLLIB_STYPE_QOS_NULL 0x00C0
+
+#define RTLLIB_SCTL_FRAG 0x000F
+#define RTLLIB_SCTL_SEQ 0xFFF0
+
+/* QOS control */
+#define RTLLIB_QCTL_TID 0x000F
+
+#define FC_QOS_BIT BIT7
+#define IsDataFrame(pdu) ( ((pdu[0] & 0x0C)==0x08) ? true : false )
+#define IsLegacyDataFrame(pdu) (IsDataFrame(pdu) && (!(pdu[0]&FC_QOS_BIT)) )
+#define IsQoSDataFrame(pframe) ((*(u16*)pframe&(RTLLIB_STYPE_QOS_DATA|RTLLIB_FTYPE_DATA)) == (RTLLIB_STYPE_QOS_DATA|RTLLIB_FTYPE_DATA))
+#define Frame_Order(pframe) (*(u16*)pframe&RTLLIB_FCTL_ORDER)
+#define SN_LESS(a, b) (((a-b)&0x800)!=0)
+#define SN_EQUAL(a, b) (a == b)
+#define MAX_DEV_ADDR_SIZE 8
+
+typedef enum _ACT_CATEGORY{
+ ACT_CAT_QOS = 1,
+ ACT_CAT_DLS = 2,
+ ACT_CAT_BA = 3,
+ ACT_CAT_HT = 7,
+ ACT_CAT_WMM = 17,
+#ifdef _RTL8192_EXT_PATCH_
+ ACT_CAT_MESH_PEERLINK_MGNT = 0x0f,
+ ACT_CAT_MESH_LINK_METRIC = 0x10,
+ ACT_CAT_MESH_PATH_SELECT = 0x11,
+ ACT_CAT_MESH_INTERWORKING = 0x12,
+ ACT_CAT_MESH_SECURITY_INFO = 35,
+#endif
+} ACT_CATEGORY, *PACT_CATEGORY;
+
+typedef enum _TS_ACTION{
+ ACT_ADDTSREQ = 0,
+ ACT_ADDTSRSP = 1,
+ ACT_DELTS = 2,
+ ACT_SCHEDULE = 3,
+} TS_ACTION, *PTS_ACTION;
+
+typedef enum _BA_ACTION{
+ ACT_ADDBAREQ = 0,
+ ACT_ADDBARSP = 1,
+ ACT_DELBA = 2,
+} BA_ACTION, *PBA_ACTION;
+#ifdef _RTL8192_EXT_PATCH_
+typedef enum _PEERLINK_ACTION{
+ ACT_PEERLINK_OPEN = 0,
+ ACT_PEERLINK_CONFIRM = 1,
+ ACT_PEERLINK_CLOSE =2,
+} PEERLINK_ACTION, *PPEERLINK_ACTION;
+
+typedef enum _LINK_METRIC_ACTION{
+ ACT_LINKMETRIC_REQ = 0,
+ ACT_LINKMETRIC_RSP = 1,
+} LINK_METRIC_ACTION, *PLINK_METRIC_ACTION;
+
+typedef enum _PATH_SELECT_ACTION{
+ ACT_PATH_REQ = 0,
+ ACT_PATH_REPLY = 1,
+ ACT_PATH_ERR =2,
+ ACT_RANN =3,
+} PATH_SELECT_ACTION, *PPATH_SELECT_ACTION;
+
+typedef enum _MESH_PEERING_PROTOCOL_VERSION_VALUE{
+ Mesh_Peering_Management_Protocol_V =42,
+ Abbreviated_Handshake_Protocol_V = 43,
+}MESH_PEERING_PROTOCOL_VERSION_VALUE;
+#endif
+
+typedef enum _InitialGainOpType{
+ IG_Backup=0,
+ IG_Restore,
+ IG_Max
+}InitialGainOpType;
+typedef enum _LED_CTL_MODE{
+ LED_CTL_POWER_ON = 1,
+ LED_CTL_LINK = 2,
+ LED_CTL_NO_LINK = 3,
+ LED_CTL_TX = 4,
+ LED_CTL_RX = 5,
+ LED_CTL_SITE_SURVEY = 6,
+ LED_CTL_POWER_OFF = 7,
+ LED_CTL_START_TO_LINK = 8,
+ LED_CTL_START_WPS = 9,
+ LED_CTL_STOP_WPS = 10,
+ LED_CTL_START_WPS_BOTTON = 11,
+ LED_CTL_STOP_WPS_FAIL = 12,
+ LED_CTL_STOP_WPS_FAIL_OVERLAP = 13,
+}LED_CTL_MODE;
+
+typedef enum _RT_RF_TYPE_DEF
+{
+ RF_1T2R = 0,
+ RF_2T4R,
+ RF_2T2R,
+ RF_1T1R,
+ RF_2T2R_GREEN,
+ RF_819X_MAX_TYPE
+}RT_RF_TYPE_DEF;
+
+typedef enum _WIRELESS_MODE {
+ WIRELESS_MODE_UNKNOWN = 0x00,
+ WIRELESS_MODE_A = 0x01,
+ WIRELESS_MODE_B = 0x02,
+ WIRELESS_MODE_G = 0x04,
+ WIRELESS_MODE_AUTO = 0x08,
+ WIRELESS_MODE_N_24G = 0x10,
+ WIRELESS_MODE_N_5G = 0x20
+} WIRELESS_MODE;
+
+typedef enum _NETWORK_TYPE{
+ WIRELESS_11B = 1,
+ WIRELESS_11G = 2,
+ WIRELESS_11A = 4,
+ WIRELESS_11N = 8
+} WIRELESS_NETWORK_TYPE;
+
+#define OUI_SUBTYPE_WMM_INFO 0
+#define OUI_SUBTYPE_WMM_PARAM 1
+#define OUI_SUBTYPE_QOS_CAPABI 5
+
+/* debug macros */
+#define CONFIG_RTLLIB_DEBUG
+#ifdef CONFIG_RTLLIB_DEBUG
+extern u32 rtllib_debug_level;
+#define RTLLIB_DEBUG(level, fmt, args...) \
+do { if (rtllib_debug_level & (level)) \
+ printk(KERN_DEBUG "rtllib: " fmt, ## args); } while (0)
+#define RTLLIB_DEBUG_DATA(level, data, datalen) \
+ do{ if ((rtllib_debug_level & (level)) == (level)) \
+ { \
+ int i; \
+ u8* pdata = (u8*) data; \
+ printk(KERN_DEBUG "rtllib: %s()\n", __FUNCTION__); \
+ for(i=0; i<(int)(datalen); i++) \
+ { \
+ printk("%2.2x ", pdata[i]); \
+ if ((i+1)%16 == 0) printk("\n"); \
+ } \
+ printk("\n"); \
+ } \
+ } while (0)
+#else
+#define RTLLIB_DEBUG(level, fmt, args...) do {} while (0)
+#define RTLLIB_DEBUG_DATA(level, data, datalen) do {} while(0)
+#endif /* CONFIG_RTLLIB_DEBUG */
+
+/* debug macros not dependent on CONFIG_RTLLIB_DEBUG */
+
+#define MAC_FMT "%02x:%02x:%02x:%02x:%02x:%02x"
+#define MAC_ARG(x) ((u8*)(x))[0],((u8*)(x))[1],((u8*)(x))[2],((u8*)(x))[3],((u8*)(x))[4],((u8*)(x))[5]
+
+/*
+ * To use the debug system;
+ *
+ * If you are defining a new debug classification, simply add it to the #define
+ * list here in the form of:
+ *
+ * #define RTLLIB_DL_xxxx VALUE
+ *
+ * shifting value to the left one bit from the previous entry. xxxx should be
+ * the name of the classification (for example, WEP)
+ *
+ * You then need to either add a RTLLIB_xxxx_DEBUG() macro definition for your
+ * classification, or use RTLLIB_DEBUG(RTLLIB_DL_xxxx, ...) whenever you want
+ * to send output to that classification.
+ *
+ * To add your debug level to the list of levels seen when you perform
+ *
+ * % cat /proc/net/ipw/debug_level
+ *
+ * you simply need to add your entry to the ipw_debug_levels array.
+ *
+ * If you do not see debug_level in /proc/net/ipw then you do not have
+ * CONFIG_RTLLIB_DEBUG defined in your kernel configuration
+ *
+ */
+
+#define RTLLIB_DL_INFO (1<<0)
+#define RTLLIB_DL_WX (1<<1)
+#define RTLLIB_DL_SCAN (1<<2)
+#define RTLLIB_DL_STATE (1<<3)
+#define RTLLIB_DL_MGMT (1<<4)
+#define RTLLIB_DL_FRAG (1<<5)
+#define RTLLIB_DL_EAP (1<<6)
+#define RTLLIB_DL_DROP (1<<7)
+
+#define RTLLIB_DL_TX (1<<8)
+#define RTLLIB_DL_RX (1<<9)
+
+#define RTLLIB_DL_HT (1<<10)
+#define RTLLIB_DL_BA (1<<11)
+#define RTLLIB_DL_TS (1<<12)
+#define RTLLIB_DL_QOS (1<<13)
+#define RTLLIB_DL_REORDER (1<<14)
+#define RTLLIB_DL_IOT (1<<15)
+#define RTLLIB_DL_IPS (1<<16)
+#define RTLLIB_DL_TRACE (1<<29)
+#define RTLLIB_DL_DATA (1<<30)
+#define RTLLIB_DL_ERR (1<<31)
+#define RTLLIB_ERROR(f, a...) printk(KERN_ERR "rtllib: " f, ## a)
+#define RTLLIB_WARNING(f, a...) printk(KERN_WARNING "rtllib: " f, ## a)
+#define RTLLIB_DEBUG_INFO(f, a...) RTLLIB_DEBUG(RTLLIB_DL_INFO, f, ## a)
+
+#define RTLLIB_DEBUG_WX(f, a...) RTLLIB_DEBUG(RTLLIB_DL_WX, f, ## a)
+#define RTLLIB_DEBUG_SCAN(f, a...) RTLLIB_DEBUG(RTLLIB_DL_SCAN, f, ## a)
+#define RTLLIB_DEBUG_STATE(f, a...) RTLLIB_DEBUG(RTLLIB_DL_STATE, f, ## a)
+#define RTLLIB_DEBUG_MGMT(f, a...) RTLLIB_DEBUG(RTLLIB_DL_MGMT, f, ## a)
+#define RTLLIB_DEBUG_FRAG(f, a...) RTLLIB_DEBUG(RTLLIB_DL_FRAG, f, ## a)
+#define RTLLIB_DEBUG_EAP(f, a...) RTLLIB_DEBUG(RTLLIB_DL_EAP, f, ## a)
+#define RTLLIB_DEBUG_DROP(f, a...) RTLLIB_DEBUG(RTLLIB_DL_DROP, f, ## a)
+#define RTLLIB_DEBUG_TX(f, a...) RTLLIB_DEBUG(RTLLIB_DL_TX, f, ## a)
+#define RTLLIB_DEBUG_RX(f, a...) RTLLIB_DEBUG(RTLLIB_DL_RX, f, ## a)
+#define RTLLIB_DEBUG_QOS(f, a...) RTLLIB_DEBUG(RTLLIB_DL_QOS, f, ## a)
+
+#ifdef CONFIG_RTLLIB_DEBUG
+/* Added by Annie, 2005-11-22. */
+#define MAX_STR_LEN 64
+/* I want to see ASCII 33 to 126 only. Otherwise, I print '?'. Annie, 2005-11-22.*/
+#define PRINTABLE(_ch) (_ch>'!' && _ch<'~')
+#define RTLLIB_PRINT_STR(_Comp, _TitleString, _Ptr, _Len) \
+ if((_Comp) & level) \
+ { \
+ int __i; \
+ u8 buffer[MAX_STR_LEN]; \
+ int length = (_Len<MAX_STR_LEN)? _Len : (MAX_STR_LEN-1) ; \
+ memset(buffer, 0, MAX_STR_LEN); \
+ memcpy(buffer, (u8 *)_Ptr, length ); \
+ for( __i=0; __i<MAX_STR_LEN; __i++ ) \
+ { \
+ if( !PRINTABLE(buffer[__i]) ) buffer[__i] = '?'; \
+ } \
+ buffer[length] = '\0'; \
+ printk("Rtl819x: "); \
+ printk(_TitleString); \
+ printk(": %d, <%s>\n", _Len, buffer); \
+ }
+#else
+#define RTLLIB_PRINT_STR(_Comp, _TitleString, _Ptr, _Len) do {} while (0)
+#endif
+
+#ifndef ETH_P_PAE
+#define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */
+#define ETH_P_IP 0x0800 /* Internet Protocol packet */
+#define ETH_P_ARP 0x0806 /* Address Resolution packet */
+#endif /* ETH_P_PAE */
+
+#define ETH_P_PREAUTH 0x88C7 /* IEEE 802.11i pre-authentication */
+
+#ifndef ETH_P_80211_RAW
+#define ETH_P_80211_RAW (ETH_P_ECONET + 1)
+#endif
+
+/* IEEE 802.11 defines */
+
+#define P80211_OUI_LEN 3
+
+struct rtllib_snap_hdr {
+
+ u8 dsap; /* always 0xAA */
+ u8 ssap; /* always 0xAA */
+ u8 ctrl; /* always 0x03 */
+ u8 oui[P80211_OUI_LEN]; /* organizational universal id */
+
+} __attribute__ ((packed));
+
+#define SNAP_SIZE sizeof(struct rtllib_snap_hdr)
+
+#define WLAN_FC_GET_VERS(fc) ((fc) & RTLLIB_FCTL_VERS)
+#define WLAN_FC_GET_TYPE(fc) ((fc) & RTLLIB_FCTL_FTYPE)
+#define WLAN_FC_GET_STYPE(fc) ((fc) & RTLLIB_FCTL_STYPE)
+#define WLAN_FC_MORE_DATA(fc) ((fc) & RTLLIB_FCTL_MOREDATA)
+
+#define WLAN_FC_GET_FRAMETYPE(fc) ((fc) & RTLLIB_FCTL_FRAMETYPE)
+#define WLAN_GET_SEQ_FRAG(seq) ((seq) & RTLLIB_SCTL_FRAG)
+#define WLAN_GET_SEQ_SEQ(seq) (((seq) & RTLLIB_SCTL_SEQ) >> 4)
+
+#ifndef CONFIG_CFG_80211
+/* Authentication algorithms */
+#define WLAN_AUTH_OPEN 0
+#define WLAN_AUTH_SHARED_KEY 1
+#define WLAN_AUTH_LEAP 128
+
+#define WLAN_AUTH_CHALLENGE_LEN 128
+
+#define WLAN_CAPABILITY_ESS (1<<0)
+#define WLAN_CAPABILITY_IBSS (1<<1)
+#define WLAN_CAPABILITY_CF_POLLABLE (1<<2)
+#define WLAN_CAPABILITY_CF_POLL_REQUEST (1<<3)
+#define WLAN_CAPABILITY_PRIVACY (1<<4)
+#define WLAN_CAPABILITY_SHORT_PREAMBLE (1<<5)
+#define WLAN_CAPABILITY_PBCC (1<<6)
+#define WLAN_CAPABILITY_CHANNEL_AGILITY (1<<7)
+#define WLAN_CAPABILITY_SPECTRUM_MGMT (1<<8)
+#define WLAN_CAPABILITY_QOS (1<<9)
+#define WLAN_CAPABILITY_SHORT_SLOT_TIME (1<<10)
+#define WLAN_CAPABILITY_DSSS_OFDM (1<<13)
+
+/* 802.11g ERP information element */
+#define WLAN_ERP_NON_ERP_PRESENT (1<<0)
+#define WLAN_ERP_USE_PROTECTION (1<<1)
+#define WLAN_ERP_BARKER_PREAMBLE (1<<2)
+
+/* Status codes */
+enum rtllib_statuscode {
+ WLAN_STATUS_SUCCESS = 0,
+ WLAN_STATUS_UNSPECIFIED_FAILURE = 1,
+ WLAN_STATUS_CAPS_UNSUPPORTED = 10,
+ WLAN_STATUS_REASSOC_NO_ASSOC = 11,
+ WLAN_STATUS_ASSOC_DENIED_UNSPEC = 12,
+ WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG = 13,
+ WLAN_STATUS_UNKNOWN_AUTH_TRANSACTION = 14,
+ WLAN_STATUS_CHALLENGE_FAIL = 15,
+ WLAN_STATUS_AUTH_TIMEOUT = 16,
+ WLAN_STATUS_AP_UNABLE_TO_HANDLE_NEW_STA = 17,
+ WLAN_STATUS_ASSOC_DENIED_RATES = 18,
+ /* 802.11b */
+ WLAN_STATUS_ASSOC_DENIED_NOSHORTPREAMBLE = 19,
+ WLAN_STATUS_ASSOC_DENIED_NOPBCC = 20,
+ WLAN_STATUS_ASSOC_DENIED_NOAGILITY = 21,
+ /* 802.11h */
+ WLAN_STATUS_ASSOC_DENIED_NOSPECTRUM = 22,
+ WLAN_STATUS_ASSOC_REJECTED_BAD_POWER = 23,
+ WLAN_STATUS_ASSOC_REJECTED_BAD_SUPP_CHAN = 24,
+ /* 802.11g */
+ WLAN_STATUS_ASSOC_DENIED_NOSHORTTIME = 25,
+ WLAN_STATUS_ASSOC_DENIED_NODSSSOFDM = 26,
+ /* 802.11i */
+ WLAN_STATUS_INVALID_IE = 40,
+ WLAN_STATUS_INVALID_GROUP_CIPHER = 41,
+ WLAN_STATUS_INVALID_PAIRWISE_CIPHER = 42,
+ WLAN_STATUS_INVALID_AKMP = 43,
+ WLAN_STATUS_UNSUPP_RSN_VERSION = 44,
+ WLAN_STATUS_INVALID_RSN_IE_CAP = 45,
+ WLAN_STATUS_CIPHER_SUITE_REJECTED = 46,
+};
+
+/* Reason codes */
+enum rtllib_reasoncode {
+ WLAN_REASON_UNSPECIFIED = 1,
+ WLAN_REASON_PREV_AUTH_NOT_VALID = 2,
+ WLAN_REASON_DEAUTH_LEAVING = 3,
+ WLAN_REASON_DISASSOC_DUE_TO_INACTIVITY = 4,
+ WLAN_REASON_DISASSOC_AP_BUSY = 5,
+ WLAN_REASON_CLASS2_FRAME_FROM_NONAUTH_STA = 6,
+ WLAN_REASON_CLASS3_FRAME_FROM_NONASSOC_STA = 7,
+ WLAN_REASON_DISASSOC_STA_HAS_LEFT = 8,
+ WLAN_REASON_STA_REQ_ASSOC_WITHOUT_AUTH = 9,
+ /* 802.11h */
+ WLAN_REASON_DISASSOC_BAD_POWER = 10,
+ WLAN_REASON_DISASSOC_BAD_SUPP_CHAN = 11,
+ /* 802.11i */
+ WLAN_REASON_INVALID_IE = 13,
+ WLAN_REASON_MIC_FAILURE = 14,
+ WLAN_REASON_4WAY_HANDSHAKE_TIMEOUT = 15,
+ WLAN_REASON_GROUP_KEY_HANDSHAKE_TIMEOUT = 16,
+ WLAN_REASON_IE_DIFFERENT = 17,
+ WLAN_REASON_INVALID_GROUP_CIPHER = 18,
+ WLAN_REASON_INVALID_PAIRWISE_CIPHER = 19,
+ WLAN_REASON_INVALID_AKMP = 20,
+ WLAN_REASON_UNSUPP_RSN_VERSION = 21,
+ WLAN_REASON_INVALID_RSN_IE_CAP = 22,
+ WLAN_REASON_IEEE8021X_FAILED = 23,
+ WLAN_REASON_CIPHER_SUITE_REJECTED = 24,
+};
+#endif
+
+#define RTLLIB_STATMASK_SIGNAL (1<<0)
+#define RTLLIB_STATMASK_RSSI (1<<1)
+#define RTLLIB_STATMASK_NOISE (1<<2)
+#define RTLLIB_STATMASK_RATE (1<<3)
+#define RTLLIB_STATMASK_WEMASK 0x7
+
+#define RTLLIB_CCK_MODULATION (1<<0)
+#define RTLLIB_OFDM_MODULATION (1<<1)
+
+#define RTLLIB_24GHZ_BAND (1<<0)
+#define RTLLIB_52GHZ_BAND (1<<1)
+
+#define RTLLIB_CCK_RATE_LEN 4
+#define RTLLIB_CCK_RATE_1MB 0x02
+#define RTLLIB_CCK_RATE_2MB 0x04
+#define RTLLIB_CCK_RATE_5MB 0x0B
+#define RTLLIB_CCK_RATE_11MB 0x16
+#define RTLLIB_OFDM_RATE_LEN 8
+#define RTLLIB_OFDM_RATE_6MB 0x0C
+#define RTLLIB_OFDM_RATE_9MB 0x12
+#define RTLLIB_OFDM_RATE_12MB 0x18
+#define RTLLIB_OFDM_RATE_18MB 0x24
+#define RTLLIB_OFDM_RATE_24MB 0x30
+#define RTLLIB_OFDM_RATE_36MB 0x48
+#define RTLLIB_OFDM_RATE_48MB 0x60
+#define RTLLIB_OFDM_RATE_54MB 0x6C
+#define RTLLIB_BASIC_RATE_MASK 0x80
+
+#define RTLLIB_CCK_RATE_1MB_MASK (1<<0)
+#define RTLLIB_CCK_RATE_2MB_MASK (1<<1)
+#define RTLLIB_CCK_RATE_5MB_MASK (1<<2)
+#define RTLLIB_CCK_RATE_11MB_MASK (1<<3)
+#define RTLLIB_OFDM_RATE_6MB_MASK (1<<4)
+#define RTLLIB_OFDM_RATE_9MB_MASK (1<<5)
+#define RTLLIB_OFDM_RATE_12MB_MASK (1<<6)
+#define RTLLIB_OFDM_RATE_18MB_MASK (1<<7)
+#define RTLLIB_OFDM_RATE_24MB_MASK (1<<8)
+#define RTLLIB_OFDM_RATE_36MB_MASK (1<<9)
+#define RTLLIB_OFDM_RATE_48MB_MASK (1<<10)
+#define RTLLIB_OFDM_RATE_54MB_MASK (1<<11)
+
+#define RTLLIB_CCK_RATES_MASK 0x0000000F
+#define RTLLIB_CCK_BASIC_RATES_MASK (RTLLIB_CCK_RATE_1MB_MASK | \
+ RTLLIB_CCK_RATE_2MB_MASK)
+#define RTLLIB_CCK_DEFAULT_RATES_MASK (RTLLIB_CCK_BASIC_RATES_MASK | \
+ RTLLIB_CCK_RATE_5MB_MASK | \
+ RTLLIB_CCK_RATE_11MB_MASK)
+
+#define RTLLIB_OFDM_RATES_MASK 0x00000FF0
+#define RTLLIB_OFDM_BASIC_RATES_MASK (RTLLIB_OFDM_RATE_6MB_MASK | \
+ RTLLIB_OFDM_RATE_12MB_MASK | \
+ RTLLIB_OFDM_RATE_24MB_MASK)
+#define RTLLIB_OFDM_DEFAULT_RATES_MASK (RTLLIB_OFDM_BASIC_RATES_MASK | \
+ RTLLIB_OFDM_RATE_9MB_MASK | \
+ RTLLIB_OFDM_RATE_18MB_MASK | \
+ RTLLIB_OFDM_RATE_36MB_MASK | \
+ RTLLIB_OFDM_RATE_48MB_MASK | \
+ RTLLIB_OFDM_RATE_54MB_MASK)
+#define RTLLIB_DEFAULT_RATES_MASK (RTLLIB_OFDM_DEFAULT_RATES_MASK | \
+ RTLLIB_CCK_DEFAULT_RATES_MASK)
+
+#define RTLLIB_NUM_OFDM_RATES 8
+#define RTLLIB_NUM_CCK_RATES 4
+#define RTLLIB_OFDM_SHIFT_MASK_A 4
+
+
+/* this is stolen and modified from the madwifi driver*/
+#define RTLLIB_FC0_TYPE_MASK 0x0c
+#define RTLLIB_FC0_TYPE_DATA 0x08
+#define RTLLIB_FC0_SUBTYPE_MASK 0xB0
+#define RTLLIB_FC0_SUBTYPE_QOS 0x80
+
+#define RTLLIB_QOS_HAS_SEQ(fc) \
+ (((fc) & (RTLLIB_FC0_TYPE_MASK | RTLLIB_FC0_SUBTYPE_MASK)) == \
+ (RTLLIB_FC0_TYPE_DATA | RTLLIB_FC0_SUBTYPE_QOS))
+
+/* this is stolen from ipw2200 driver */
+#define IEEE_IBSS_MAC_HASH_SIZE 31
+struct ieee_ibss_seq {
+ u8 mac[ETH_ALEN];
+ u16 seq_num[17];
+ u16 frag_num[17];
+ unsigned long packet_time[17];
+ struct list_head list;
+};
+
+#ifdef _RTL8192_EXT_PATCH_
+struct ieee_mesh_seq {
+ u8 mac[ETH_ALEN];
+ u16 seq_num[17];
+ u16 frag_num[17];
+ unsigned long packet_time[17];
+ struct list_head list;
+};
+#endif
+/* NOTE: This data is for statistical purposes; not all hardware provides this
+ * information for frames received. Not setting these will not cause
+ * any adverse affects. */
+struct rtllib_rx_stats {
+#if 1
+ u32 mac_time[2];
+ s8 rssi;
+ u8 signal;
+ u8 noise;
+ u16 rate; /* in 100 kbps */
+ u8 received_channel;
+ u8 control;
+ u8 mask;
+ u8 freq;
+ u16 len;
+ u64 tsf;
+ u32 beacon_time;
+ u8 nic_type;
+ u16 Length;
+ u8 SignalQuality;
+ s32 RecvSignalPower;
+ s8 RxPower;
+ u8 SignalStrength;
+ u16 bHwError:1;
+ u16 bCRC:1;
+ u16 bICV:1;
+ u16 bShortPreamble:1;
+ u16 Antenna:1;
+ u16 Decrypted:1;
+ u16 Wakeup:1;
+ u16 Reserved0:1;
+ u8 AGC;
+ u32 TimeStampLow;
+ u32 TimeStampHigh;
+ bool bShift;
+ bool bIsQosData;
+ u8 UserPriority;
+
+ u8 RxDrvInfoSize;
+ u8 RxBufShift;
+ bool bIsAMPDU;
+ bool bFirstMPDU;
+ bool bContainHTC;
+ bool RxIs40MHzPacket;
+ u32 RxPWDBAll;
+ u8 RxMIMOSignalStrength[4];
+ s8 RxMIMOSignalQuality[2];
+ bool bPacketMatchBSSID;
+ bool bIsCCK;
+ bool bPacketToSelf;
+ u8* virtual_address;
+ u16 packetlength;
+ u16 fraglength;
+ u16 fragoffset;
+ u16 ntotalfrag;
+ bool bisrxaggrsubframe;
+ bool bPacketBeacon;
+ bool bToSelfBA;
+ char cck_adc_pwdb[4];
+ u16 Seq_Num;
+ u8 nTotalAggPkt;
+#ifdef TCP_CSUM_OFFLOAD_RX
+ u8 tcp_csum_valid;
+#endif
+#if defined (RTL8192S_WAPI_SUPPORT)
+ u8 WapiTempPN[16];
+ u8 WapiSrcAddr[6];
+ u8 bWapiCheckPNInDecrypt;
+#endif
+#endif
+
+};
+
+/* IEEE 802.11 requires that STA supports concurrent reception of at least
+ * three fragmented frames. This define can be increased to support more
+ * concurrent frames, but it should be noted that each entry can consume about
+ * 2 kB of RAM and increasing cache size will slow down frame reassembly. */
+#define RTLLIB_FRAG_CACHE_LEN 4
+
+struct rtllib_frag_entry {
+ unsigned long first_frag_time;
+ unsigned int seq;
+ unsigned int last_frag;
+ struct sk_buff *skb;
+ u8 src_addr[ETH_ALEN];
+ u8 dst_addr[ETH_ALEN];
+};
+
+struct rtllib_stats {
+ unsigned int tx_unicast_frames;
+ unsigned int tx_multicast_frames;
+ unsigned int tx_fragments;
+ unsigned int tx_unicast_octets;
+ unsigned int tx_multicast_octets;
+ unsigned int tx_deferred_transmissions;
+ unsigned int tx_single_retry_frames;
+ unsigned int tx_multiple_retry_frames;
+ unsigned int tx_retry_limit_exceeded;
+ unsigned int tx_discards;
+ unsigned int rx_unicast_frames;
+ unsigned int rx_multicast_frames;
+ unsigned int rx_fragments;
+ unsigned int rx_unicast_octets;
+ unsigned int rx_multicast_octets;
+ unsigned int rx_fcs_errors;
+ unsigned int rx_discards_no_buffer;
+ unsigned int tx_discards_wrong_sa;
+ unsigned int rx_discards_undecryptable;
+ unsigned int rx_message_in_msg_fragments;
+ unsigned int rx_message_in_bad_msg_fragments;
+};
+
+struct rtllib_device;
+
+#include "rtllib_crypt.h"
+
+#define SEC_KEY_1 (1<<0)
+#define SEC_KEY_2 (1<<1)
+#define SEC_KEY_3 (1<<2)
+#define SEC_KEY_4 (1<<3)
+#define SEC_ACTIVE_KEY (1<<4)
+#define SEC_AUTH_MODE (1<<5)
+#define SEC_UNICAST_GROUP (1<<6)
+#define SEC_LEVEL (1<<7)
+#define SEC_ENABLED (1<<8)
+#define SEC_ENCRYPT (1<<9)
+
+#define SEC_LEVEL_0 0 /* None */
+#define SEC_LEVEL_1 1 /* WEP 40 and 104 bit */
+#define SEC_LEVEL_2 2 /* Level 1 + TKIP */
+#define SEC_LEVEL_2_CKIP 3 /* Level 1 + CKIP */
+#define SEC_LEVEL_3 4 /* Level 2 + CCMP */
+
+#define SEC_ALG_NONE 0
+#define SEC_ALG_WEP 1
+#define SEC_ALG_TKIP 2
+#define SEC_ALG_CCMP 4
+
+#define WEP_KEYS 4
+#define WEP_KEY_LEN 13
+#define SCM_KEY_LEN 32
+#define SCM_TEMPORAL_KEY_LENGTH 16
+
+struct rtllib_security {
+ u16 active_key:2,
+ enabled:1,
+ auth_mode:2,
+ auth_algo:4,
+ unicast_uses_group:1,
+ encrypt:1;
+ u8 key_sizes[WEP_KEYS];
+ u8 keys[WEP_KEYS][SCM_KEY_LEN];
+ u8 level;
+ u16 flags;
+} __attribute__ ((packed));
+
+
+/*
+ 802.11 data frame from AP
+ ,-------------------------------------------------------------------.
+Bytes | 2 | 2 | 6 | 6 | 6 | 2 | 0..2312 | 4 |
+ |------|------|---------|---------|---------|------|---------|------|
+Desc. | ctrl | dura | DA/RA | TA | SA | Sequ | frame | fcs |
+ | | tion | (BSSID) | | | ence | data | |
+ `-------------------------------------------------------------------'
+Total: 28-2340 bytes
+*/
+
+/* Management Frame Information Element Types */
+enum rtllib_mfie {
+ MFIE_TYPE_SSID = 0,
+ MFIE_TYPE_RATES = 1,
+ MFIE_TYPE_FH_SET = 2,
+ MFIE_TYPE_DS_SET = 3,
+ MFIE_TYPE_CF_SET = 4,
+ MFIE_TYPE_TIM = 5,
+ MFIE_TYPE_IBSS_SET = 6,
+ MFIE_TYPE_COUNTRY = 7,
+ MFIE_TYPE_HOP_PARAMS = 8,
+ MFIE_TYPE_HOP_TABLE = 9,
+ MFIE_TYPE_REQUEST = 10,
+ MFIE_TYPE_CHALLENGE = 16,
+ MFIE_TYPE_POWER_CONSTRAINT = 32,
+ MFIE_TYPE_POWER_CAPABILITY = 33,
+ MFIE_TYPE_TPC_REQUEST = 34,
+ MFIE_TYPE_TPC_REPORT = 35,
+ MFIE_TYPE_SUPP_CHANNELS = 36,
+ MFIE_TYPE_CSA = 37,
+ MFIE_TYPE_MEASURE_REQUEST = 38,
+ MFIE_TYPE_MEASURE_REPORT = 39,
+ MFIE_TYPE_QUIET = 40,
+ MFIE_TYPE_IBSS_DFS = 41,
+ MFIE_TYPE_ERP = 42,
+ MFIE_TYPE_HT_CAP= 45,
+ MFIE_TYPE_RSN = 48,
+ MFIE_TYPE_RATES_EX = 50,
+#ifdef _RTL8192_EXT_PATCH_
+ MFIE_TYPE_MESH_PANN = 51,
+ MFIE_TYPE_MESH_RANN = 52,
+ MFIE_TYPE_MESH_PATH_REQ = 138,
+ MFIE_TYPE_MESH_PATH_REP = 139,
+ MFIE_TYPE_MESH_PATH_ERR = 140,
+#endif
+ MFIE_TYPE_HT_INFO= 61,
+#if defined (RTL8192S_WAPI_SUPPORT)
+ MFIE_TYPE_WAPI = 68,
+#endif
+ MFIE_TYPE_AIRONET=133,
+#ifdef _RTL8192_EXT_PATCH_
+ MFIE_TYPE_MESH_CONFIGURATION = 121,
+ MFIE_TYPE_MESH_ID = 122,
+ MFIE_TYPE_MESH_LOCAL_LINK_STATE_ANNOU = 138,
+ MFIE_TYPE_MESH_ABBR_HANDSHAKE_IE_ =139,
+ MFIE_TYPE_MESH_PEER_LINK_MGNT = 125,
+ MFIE_TYPE_MESH_NEIGHBOR_LIST = 142,
+ MFIE_TYPE_MESH_TIM = 143,
+ MFIE_TYPE_MESH_ATIM_WINDOW = 144,
+ MFIE_TYPE_MESH_BEACON_TIMING = 145,
+ MFIE_TYPE_MESH_MDAOP_ADVERTISMENTS = 148,
+ MFIE_TYPE_MESH_MSC = 149,
+ MFIE_TYPE_MESH_MSA = 150,
+ MFIE_TYPE_MESH_MOAOP_SET_TEARDOWN = 212,
+#endif
+ MFIE_TYPE_GENERIC = 221,
+ MFIE_TYPE_QOS_PARAMETER = 222,
+};
+
+/* Minimal header; can be used for passing 802.11 frames with sufficient
+ * information to determine what type of underlying data type is actually
+ * stored in the data. */
+struct rtllib_pspoll_hdr {
+ __le16 frame_ctl;
+ __le16 aid;
+ u8 bssid[ETH_ALEN];
+ u8 ta[ETH_ALEN];
+} __attribute__ ((packed));
+
+struct rtllib_hdr {
+ __le16 frame_ctl;
+ __le16 duration_id;
+ u8 payload[0];
+} __attribute__ ((packed));
+
+struct rtllib_hdr_1addr {
+ __le16 frame_ctl;
+ __le16 duration_id;
+ u8 addr1[ETH_ALEN];
+ u8 payload[0];
+} __attribute__ ((packed));
+
+struct rtllib_hdr_2addr {
+ __le16 frame_ctl;
+ __le16 duration_id;
+ u8 addr1[ETH_ALEN];
+ u8 addr2[ETH_ALEN];
+ u8 payload[0];
+} __attribute__ ((packed));
+
+struct rtllib_hdr_3addr {
+ __le16 frame_ctl;
+ __le16 duration_id;
+ u8 addr1[ETH_ALEN];
+ u8 addr2[ETH_ALEN];
+ u8 addr3[ETH_ALEN];
+ __le16 seq_ctl;
+ u8 payload[0];
+} __attribute__ ((packed));
+
+struct rtllib_hdr_4addr {
+ __le16 frame_ctl;
+ __le16 duration_id;
+ u8 addr1[ETH_ALEN];
+ u8 addr2[ETH_ALEN];
+ u8 addr3[ETH_ALEN];
+ __le16 seq_ctl;
+ u8 addr4[ETH_ALEN];
+ u8 payload[0];
+} __attribute__ ((packed));
+
+struct rtllib_hdr_3addrqos {
+ __le16 frame_ctl;
+ __le16 duration_id;
+ u8 addr1[ETH_ALEN];
+ u8 addr2[ETH_ALEN];
+ u8 addr3[ETH_ALEN];
+ __le16 seq_ctl;
+ __le16 qos_ctl;
+ u8 payload[0];
+} __attribute__ ((packed));
+
+struct rtllib_hdr_4addrqos {
+ __le16 frame_ctl;
+ __le16 duration_id;
+ u8 addr1[ETH_ALEN];
+ u8 addr2[ETH_ALEN];
+ u8 addr3[ETH_ALEN];
+ __le16 seq_ctl;
+ u8 addr4[ETH_ALEN];
+ __le16 qos_ctl;
+ u8 payload[0];
+} __attribute__ ((packed));
+
+struct rtllib_info_element {
+ u8 id;
+ u8 len;
+ u8 data[0];
+} __attribute__ ((packed));
+
+#ifdef _RTL8192_EXT_PATCH_
+
+struct mesh_peering_protocol_version_t{
+ u8 OUI[3];
+ u8 value;
+} __attribute__ ((packed));
+struct rtllib_plink_open {
+ struct rtllib_hdr_3addr header;
+ u8 category;
+ u8 action;
+#ifndef COMPATIBLE_WITH_RALINK_MESH
+ struct mesh_peering_protocol_version_t mesh_peering_protocol_version;
+#endif
+ __le16 capability;
+ /* SSID, supported rates, RSN */
+ struct rtllib_info_element info_element[0];
+} __attribute__ ((packed));
+
+struct rtllib_plink_confirm {
+ struct rtllib_hdr_3addr header;
+ u8 category;
+ u8 action;
+#ifndef COMPATIBLE_WITH_RALINK_MESH
+ struct mesh_peering_protocol_version_t mesh_peering_protocol_version;
+#endif
+ __le16 capability;
+#ifdef COMPATIBLE_WITH_RALINK_MESH
+ __le16 status_code;
+#endif
+ __le16 aid;
+ /* SSID, supported rates, RSN */
+ struct rtllib_info_element info_element[0];
+} __attribute__ ((packed));
+
+struct rtllib_plink_close {
+ struct rtllib_hdr_3addr header;
+ u8 category;
+ u8 action;
+#ifndef COMPATIBLE_WITH_RALINK_MESH
+ struct mesh_peering_protocol_version_t mesh_peering_protocol_version;
+#endif
+ /* SSID, supported rates, RSN */
+ struct rtllib_info_element info_element[0];
+} __attribute__ ((packed));
+
+struct rtllib_linkmetric_report {
+ struct rtllib_hdr_3addr header;
+ u8 category;
+ u8 action;
+ struct rtllib_info_element info_element[0];
+} __attribute__ ((packed));
+
+struct rtllib_linkmetric_req {
+ struct rtllib_hdr_3addr header;
+ u8 category;
+ u8 action;
+} __attribute__ ((packed));
+#endif
+
+struct rtllib_authentication {
+ struct rtllib_hdr_3addr header;
+ __le16 algorithm;
+ __le16 transaction;
+ __le16 status;
+ /*challenge*/
+ struct rtllib_info_element info_element[0];
+} __attribute__ ((packed));
+
+struct rtllib_disauth {
+ struct rtllib_hdr_3addr header;
+ __le16 reason;
+} __attribute__ ((packed));
+
+struct rtllib_disassoc {
+ struct rtllib_hdr_3addr header;
+ __le16 reason;
+} __attribute__ ((packed));
+
+struct rtllib_probe_request {
+ struct rtllib_hdr_3addr header;
+ /* SSID, supported rates */
+ struct rtllib_info_element info_element[0];
+} __attribute__ ((packed));
+
+struct rtllib_probe_response {
+ struct rtllib_hdr_3addr header;
+ u32 time_stamp[2];
+ __le16 beacon_interval;
+ __le16 capability;
+ /* SSID, supported rates, FH params, DS params,
+ * CF params, IBSS params, TIM (if beacon), RSN */
+ struct rtllib_info_element info_element[0];
+} __attribute__ ((packed));
+
+/* Alias beacon for probe_response */
+#define rtllib_beacon rtllib_probe_response
+
+struct rtllib_assoc_request_frame {
+ struct rtllib_hdr_3addr header;
+ __le16 capability;
+ __le16 listen_interval;
+ /* SSID, supported rates, RSN */
+ struct rtllib_info_element info_element[0];
+} __attribute__ ((packed));
+
+struct rtllib_reassoc_request_frame {
+ struct rtllib_hdr_3addr header;
+ __le16 capability;
+ __le16 listen_interval;
+ u8 current_ap[ETH_ALEN];
+ /* SSID, supported rates, RSN */
+ struct rtllib_info_element info_element[0];
+} __attribute__ ((packed));
+
+struct rtllib_assoc_response_frame {
+ struct rtllib_hdr_3addr header;
+ __le16 capability;
+ __le16 status;
+ __le16 aid;
+ struct rtllib_info_element info_element[0]; /* supported rates */
+} __attribute__ ((packed));
+
+struct rtllib_txb {
+ u8 nr_frags;
+ u8 encrypted;
+ u8 queue_index;
+ u8 rts_included;
+ u16 reserved;
+ __le16 frag_size;
+ __le16 payload_size;
+ struct sk_buff *fragments[0];
+};
+
+#define MAX_TX_AGG_COUNT 16
+struct rtllib_drv_agg_txb {
+ u8 nr_drv_agg_frames;
+ struct sk_buff *tx_agg_frames[MAX_TX_AGG_COUNT];
+}__attribute__((packed));
+
+#define MAX_SUBFRAME_COUNT 64
+struct rtllib_rxb {
+ u8 nr_subframes;
+ struct sk_buff *subframes[MAX_SUBFRAME_COUNT];
+ u8 dst[ETH_ALEN];
+ u8 src[ETH_ALEN];
+#ifdef TCP_CSUM_OFFLOAD_RX
+ u8 tcp_csum_valid;
+#endif
+#if defined (RTL8192S_WAPI_SUPPORT)
+ u8 UserPriority;
+ u8 WapiTempPN[16];
+ u8 WapiSrcAddr[6];
+ u8 bWapiCheckPNInDecrypt;
+#endif
+}__attribute__((packed));
+
+typedef union _frameqos {
+ u16 shortdata;
+ u8 chardata[2];
+ struct {
+ u16 tid:4;
+ u16 eosp:1;
+ u16 ack_policy:2;
+ u16 reserved:1;
+ u16 txop:8;
+ }field;
+}frameqos,*pframeqos;
+
+/* SWEEP TABLE ENTRIES NUMBER*/
+#define MAX_SWEEP_TAB_ENTRIES 42
+#define MAX_SWEEP_TAB_ENTRIES_PER_PACKET 7
+/* MAX_RATES_LENGTH needs to be 12. The spec says 8, and many APs
+ * only use 8, and then use extended rates for the remaining supported
+ * rates. Other APs, however, stick all of their supported rates on the
+ * main rates information element... */
+#define MAX_RATES_LENGTH ((u8)12)
+#define MAX_RATES_EX_LENGTH ((u8)16)
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+#define MAX_NETWORK_COUNT 16
+#else
+#define MAX_NETWORK_COUNT 96
+#endif
+
+#define MAX_CHANNEL_NUMBER 161
+#define RTLLIB_SOFTMAC_SCAN_TIME 100
+#define RTLLIB_SOFTMAC_ASSOC_RETRY_TIME (HZ * 2)
+
+#define CRC_LENGTH 4U
+
+#define MAX_WPA_IE_LEN 64
+#define MAX_WZC_IE_LEN 256
+
+#define NETWORK_EMPTY_ESSID (1<<0)
+#define NETWORK_HAS_OFDM (1<<1)
+#define NETWORK_HAS_CCK (1<<2)
+
+/* QoS structure */
+#define NETWORK_HAS_QOS_PARAMETERS (1<<3)
+#define NETWORK_HAS_QOS_INFORMATION (1<<4)
+#define NETWORK_HAS_QOS_MASK (NETWORK_HAS_QOS_PARAMETERS | \
+ NETWORK_HAS_QOS_INFORMATION)
+/* 802.11h */
+#define NETWORK_HAS_POWER_CONSTRAINT (1<<5)
+#define NETWORK_HAS_CSA (1<<6)
+#define NETWORK_HAS_QUIET (1<<7)
+#define NETWORK_HAS_IBSS_DFS (1<<8)
+#define NETWORK_HAS_TPC_REPORT (1<<9)
+
+#define NETWORK_HAS_ERP_VALUE (1<<10)
+
+#define QOS_QUEUE_NUM 4
+#define QOS_OUI_LEN 3
+#define QOS_OUI_TYPE 2
+#define QOS_ELEMENT_ID 221
+#define QOS_OUI_INFO_SUB_TYPE 0
+#define QOS_OUI_PARAM_SUB_TYPE 1
+#define QOS_VERSION_1 1
+#define QOS_AIFSN_MIN_VALUE 2
+#if 1
+struct rtllib_qos_information_element {
+ u8 elementID;
+ u8 length;
+ u8 qui[QOS_OUI_LEN];
+ u8 qui_type;
+ u8 qui_subtype;
+ u8 version;
+ u8 ac_info;
+} __attribute__ ((packed));
+
+struct rtllib_qos_ac_parameter {
+ u8 aci_aifsn;
+ u8 ecw_min_max;
+ __le16 tx_op_limit;
+} __attribute__ ((packed));
+
+struct rtllib_qos_parameter_info {
+ struct rtllib_qos_information_element info_element;
+ u8 reserved;
+ struct rtllib_qos_ac_parameter ac_params_record[QOS_QUEUE_NUM];
+} __attribute__ ((packed));
+
+struct rtllib_qos_parameters {
+ __le16 cw_min[QOS_QUEUE_NUM];
+ __le16 cw_max[QOS_QUEUE_NUM];
+ u8 aifs[QOS_QUEUE_NUM];
+ u8 flag[QOS_QUEUE_NUM];
+ __le16 tx_op_limit[QOS_QUEUE_NUM];
+} __attribute__ ((packed));
+
+struct rtllib_qos_data {
+ struct rtllib_qos_parameters parameters;
+ unsigned int wmm_acm;
+ int active;
+ int supported;
+ u8 param_count;
+ u8 old_param_count;
+};
+
+struct rtllib_tim_parameters {
+ u8 tim_count;
+ u8 tim_period;
+} __attribute__ ((packed));
+
+struct rtllib_wmm_ac_param {
+ u8 ac_aci_acm_aifsn;
+ u8 ac_ecwmin_ecwmax;
+ u16 ac_txop_limit;
+};
+
+struct rtllib_wmm_ts_info {
+ u8 ac_dir_tid;
+ u8 ac_up_psb;
+ u8 reserved;
+} __attribute__ ((packed));
+
+struct rtllib_wmm_tspec_elem {
+ struct rtllib_wmm_ts_info ts_info;
+ u16 norm_msdu_size;
+ u16 max_msdu_size;
+ u32 min_serv_inter;
+ u32 max_serv_inter;
+ u32 inact_inter;
+ u32 suspen_inter;
+ u32 serv_start_time;
+ u32 min_data_rate;
+ u32 mean_data_rate;
+ u32 peak_data_rate;
+ u32 max_burst_size;
+ u32 delay_bound;
+ u32 min_phy_rate;
+ u16 surp_band_allow;
+ u16 medium_time;
+}__attribute__((packed));
+#endif
+enum eap_type {
+ EAP_PACKET = 0,
+ EAPOL_START,
+ EAPOL_LOGOFF,
+ EAPOL_KEY,
+ EAPOL_ENCAP_ASF_ALERT
+};
+
+static const char *eap_types[] = {
+ [EAP_PACKET] = "EAP-Packet",
+ [EAPOL_START] = "EAPOL-Start",
+ [EAPOL_LOGOFF] = "EAPOL-Logoff",
+ [EAPOL_KEY] = "EAPOL-Key",
+ [EAPOL_ENCAP_ASF_ALERT] = "EAPOL-Encap-ASF-Alert"
+};
+
+static inline const char *eap_get_type(int type)
+{
+ return ((u32)type >= ARRAY_SIZE(eap_types)) ? "Unknown" : eap_types[type];
+}
+static inline u8 Frame_QoSTID(u8* buf)
+{
+ struct rtllib_hdr_3addr *hdr;
+ u16 fc;
+ hdr = (struct rtllib_hdr_3addr *)buf;
+ fc = le16_to_cpu(hdr->frame_ctl);
+ return (u8)((frameqos*)(buf + (((fc & RTLLIB_FCTL_TODS)&&(fc & RTLLIB_FCTL_FROMDS))? 30 : 24)))->field.tid;
+}
+
+
+struct eapol {
+ u8 snap[6];
+ u16 ethertype;
+ u8 version;
+ u8 type;
+ u16 length;
+} __attribute__ ((packed));
+
+struct rtllib_softmac_stats{
+ unsigned int rx_ass_ok;
+ unsigned int rx_ass_err;
+ unsigned int rx_probe_rq;
+ unsigned int tx_probe_rs;
+ unsigned int tx_beacons;
+ unsigned int rx_auth_rq;
+ unsigned int rx_auth_rs_ok;
+ unsigned int rx_auth_rs_err;
+ unsigned int tx_auth_rq;
+ unsigned int no_auth_rs;
+ unsigned int no_ass_rs;
+ unsigned int tx_ass_rq;
+ unsigned int rx_ass_rq;
+ unsigned int tx_probe_rq;
+ unsigned int reassoc;
+ unsigned int swtxstop;
+ unsigned int swtxawake;
+ unsigned char CurrentShowTxate;
+ unsigned char last_packet_rate;
+ unsigned int txretrycount;
+};
+
+#define BEACON_PROBE_SSID_ID_POSITION 12
+
+struct rtllib_info_element_hdr {
+ u8 id;
+ u8 len;
+} __attribute__ ((packed));
+
+/*
+ * These are the data types that can make up management packets
+ *
+ u16 auth_algorithm;
+ u16 auth_sequence;
+ u16 beacon_interval;
+ u16 capability;
+ u8 current_ap[ETH_ALEN];
+ u16 listen_interval;
+ struct {
+ u16 association_id:14, reserved:2;
+ } __attribute__ ((packed));
+ u32 time_stamp[2];
+ u16 reason;
+ u16 status;
+*/
+
+#define RTLLIB_DEFAULT_TX_ESSID "Penguin"
+#define RTLLIB_DEFAULT_BASIC_RATE 2
+#ifdef _RTL8192_EXT_PATCH_
+#define RTLLIB_DEFAULT_MESHID "CMPC-mesh"
+#define RTLLIB_DEFAULT_MESH_CHAN 7
+#endif
+
+enum {WMM_all_frame, WMM_two_frame, WMM_four_frame, WMM_six_frame};
+#define MAX_SP_Len (WMM_all_frame << 4)
+#define RTLLIB_QOS_TID 0x0f
+#define QOS_CTL_NOTCONTAIN_ACK (0x01 << 5)
+#ifdef ENABLE_AMSDU
+#define QOS_CTL_AMSDU_PRESENT (0x01 << 7)
+#endif
+
+#define RTLLIB_DTIM_MBCAST 4
+#define RTLLIB_DTIM_UCAST 2
+#define RTLLIB_DTIM_VALID 1
+#define RTLLIB_DTIM_INVALID 0
+
+#define RTLLIB_PS_DISABLED 0
+#define RTLLIB_PS_UNICAST RTLLIB_DTIM_UCAST
+#define RTLLIB_PS_MBCAST RTLLIB_DTIM_MBCAST
+
+#ifdef WMM_Hang_8187
+#undef WMM_Hang_8187
+#endif
+
+#define WME_AC_BK 0x00
+#define WME_AC_BE 0x01
+#define WME_AC_VI 0x02
+#define WME_AC_VO 0x03
+#define WME_ACI_MASK 0x03
+#define WME_AIFSN_MASK 0x03
+#define WME_AC_PRAM_LEN 16
+
+#define MAX_RECEIVE_BUFFER_SIZE 9100
+
+#if 1
+#define UP2AC(up) ( \
+ ((up) < 1) ? WME_AC_BE : \
+ ((up) < 3) ? WME_AC_BK : \
+ ((up) < 4) ? WME_AC_BE : \
+ ((up) < 6) ? WME_AC_VI : \
+ WME_AC_VO)
+#endif
+#define AC2UP(_ac) ( \
+ ((_ac) == WME_AC_VO) ? 6 : \
+ ((_ac) == WME_AC_VI) ? 5 : \
+ ((_ac) == WME_AC_BK) ? 1 : \
+ 0)
+
+#define ETHER_ADDR_LEN 6 /* length of an Ethernet address */
+#define ETHERNET_HEADER_SIZE 14 /* length of two Ethernet address plus ether type*/
+
+struct ether_header {
+ u8 ether_dhost[ETHER_ADDR_LEN];
+ u8 ether_shost[ETHER_ADDR_LEN];
+ u16 ether_type;
+} __attribute__((packed));
+
+#ifndef ETHERTYPE_PAE
+#define ETHERTYPE_PAE 0x888e /* EAPOL PAE/802.1x */
+#endif
+#ifndef ETHERTYPE_IP
+#define ETHERTYPE_IP 0x0800 /* IP protocol */
+#endif
+
+
+typedef enum _erp_t{
+ ERP_NonERPpresent = 0x01,
+ ERP_UseProtection = 0x02,
+ ERP_BarkerPreambleMode = 0x04,
+} erp_t;
+
+#ifdef _RTL8192_EXT_PATCH_
+typedef struct _mesh_config_t {
+ u8 path_proto_id[4];
+ u8 path_metric_id[4];
+ u8 congest_ctl_mode[4];
+ u8 mesh_capability[2];
+} mesh_config_t;
+#define MESH_CONF_TOTAL_LEN 19
+#endif
+
+struct rtllib_network {
+ /* These entries are used to identify a unique network */
+ u8 bssid[ETH_ALEN];
+ u8 channel;
+ /* Ensure null-terminated for any debug msgs */
+ u8 ssid[IW_ESSID_MAX_SIZE + 1];
+ u8 ssid_len;
+ u8 hidden_ssid[IW_ESSID_MAX_SIZE + 1];
+ u8 hidden_ssid_len;
+ struct rtllib_qos_data qos_data;
+
+ bool bWithAironetIE;
+ bool bCkipSupported;
+ bool bCcxRmEnable;
+ u16 CcxRmState[2];
+ bool bMBssidValid;
+ u8 MBssidMask;
+ u8 MBssid[6];
+ bool bWithCcxVerNum;
+ u8 BssCcxVerNumber;
+ /* These are network statistics */
+ struct rtllib_rx_stats stats;
+ u16 capability;
+ u8 rates[MAX_RATES_LENGTH];
+ u8 rates_len;
+ u8 rates_ex[MAX_RATES_EX_LENGTH];
+ u8 rates_ex_len;
+ unsigned long last_scanned;
+ u8 mode;
+ u32 flags;
+ u32 last_associate;
+ u32 time_stamp[2];
+ u16 beacon_interval;
+ u16 listen_interval;
+ u16 atim_window;
+ u8 erp_value;
+ u8 wpa_ie[MAX_WPA_IE_LEN];
+ size_t wpa_ie_len;
+ u8 rsn_ie[MAX_WPA_IE_LEN];
+ size_t rsn_ie_len;
+#if defined RTL8192S_WAPI_SUPPORT
+ u8 wapi_ie[MAX_WAPI_IE_LEN];
+ size_t wapi_ie_len;
+#endif
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ u8 wzc_ie[MAX_WZC_IE_LEN];
+ size_t wzc_ie_len;
+#endif
+
+ struct rtllib_tim_parameters tim;
+ u8 dtim_period;
+ u8 dtim_data;
+ u32 last_dtim_sta_time[2];
+
+ u8 wmm_info;
+ struct rtllib_wmm_ac_param wmm_param[4];
+#ifdef THOMAS_TURBO
+ u8 Turbo_Enable;
+#endif
+#ifdef ENABLE_DOT11D
+ u16 CountryIeLen;
+ u8 CountryIeBuf[MAX_IE_LEN];
+#endif
+ BSS_HT bssht;
+ bool broadcom_cap_exist;
+ bool realtek_cap_exit;
+ bool marvell_cap_exist;
+ bool ralink_cap_exist;
+ bool atheros_cap_exist;
+ bool cisco_cap_exist;
+ bool unknown_cap_exist;
+ bool berp_info_valid;
+ bool buseprotection;
+ bool bIsNetgear854T;
+ u8 SignalStrength;
+ u8 RSSI;
+#ifdef _RTL8192_EXT_PATCH_
+ u8 hostname[MAX_HOST_NAME_LENGTH];
+ u8 hostname_len;
+ u8 mesh_id[MAX_MESH_ID_LEN];
+ u8 mesh_id_len;
+ mesh_config_t mesh_config;
+ u8 mesh_config_len;
+ void *ext_entry;
+#endif
+
+ struct list_head list;
+};
+
+#if 1
+enum rtllib_state {
+
+ /* the card is not linked at all */
+ RTLLIB_NOLINK = 0,
+
+ /* RTLLIB_ASSOCIATING* are for BSS client mode
+ * the driver shall not perform RX filtering unless
+ * the state is LINKED.
+ * The driver shall just check for the state LINKED and
+ * defaults to NOLINK for ALL the other states (including
+ * LINKED_SCANNING)
+ */
+
+ /* the association procedure will start (wq scheduling)*/
+ RTLLIB_ASSOCIATING,
+ RTLLIB_ASSOCIATING_RETRY,
+
+ /* the association procedure is sending AUTH request*/
+ RTLLIB_ASSOCIATING_AUTHENTICATING,
+
+ /* the association procedure has successfully authentcated
+ * and is sending association request
+ */
+ RTLLIB_ASSOCIATING_AUTHENTICATED,
+
+ /* the link is ok. the card associated to a BSS or linked
+ * to a ibss cell or acting as an AP and creating the bss
+ */
+ RTLLIB_LINKED,
+
+ /* same as LINKED, but the driver shall apply RX filter
+ * rules as we are in NO_LINK mode. As the card is still
+ * logically linked, but it is doing a syncro site survey
+ * then it will be back to LINKED state.
+ */
+ RTLLIB_LINKED_SCANNING,
+#ifdef _RTL8192_EXT_PATCH_
+ RTLLIB_MESH_SCANNING,
+ RTLLIB_MESH_LINKED,
+#endif
+};
+#else
+enum rtllib_state {
+ RTLLIB_UNINITIALIZED = 0,
+ RTLLIB_INITIALIZED,
+ RTLLIB_ASSOCIATING,
+ RTLLIB_ASSOCIATED,
+ RTLLIB_AUTHENTICATING,
+ RTLLIB_AUTHENTICATED,
+ RTLLIB_SHUTDOWN
+};
+#endif
+
+#define DEFAULT_MAX_SCAN_AGE (15 * HZ)
+#define DEFAULT_FTS 2346
+
+#define CFG_RTLLIB_RESERVE_FCS (1<<0)
+#define CFG_RTLLIB_COMPUTE_FCS (1<<1)
+#define CFG_RTLLIB_RTS (1<<2)
+
+#define RTLLIB_24GHZ_MIN_CHANNEL 1
+#define RTLLIB_24GHZ_MAX_CHANNEL 14
+#define RTLLIB_24GHZ_CHANNELS (RTLLIB_24GHZ_MAX_CHANNEL - \
+ RTLLIB_24GHZ_MIN_CHANNEL + 1)
+
+#define RTLLIB_52GHZ_MIN_CHANNEL 34
+#define RTLLIB_52GHZ_MAX_CHANNEL 165
+#define RTLLIB_52GHZ_CHANNELS (RTLLIB_52GHZ_MAX_CHANNEL - \
+ RTLLIB_52GHZ_MIN_CHANNEL + 1)
+
+#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,11))
+extern inline int is_multicast_ether_addr(const u8 *addr)
+{
+ return ((addr[0] != 0xff) && (0x01 & addr[0]));
+}
+#endif
+
+#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,13))
+extern inline int is_broadcast_ether_addr(const u8 *addr)
+{
+ return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) && \
+ (addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff));
+}
+#endif
+#ifndef eqMacAddr
+#define eqMacAddr(a,b) ( ((a)[0]==(b)[0] && (a)[1]==(b)[1] && (a)[2]==(b)[2] && (a)[3]==(b)[3] && (a)[4]==(b)[4] && (a)[5]==(b)[5]) ? 1:0 )
+#endif
+typedef struct tx_pending_t{
+ int frag;
+ struct rtllib_txb *txb;
+}tx_pending_t;
+
+typedef struct _bandwidth_autoswitch
+{
+ long threshold_20Mhzto40Mhz;
+ long threshold_40Mhzto20Mhz;
+ bool bforced_tx20Mhz;
+ bool bautoswitch_enable;
+}bandwidth_autoswitch,*pbandwidth_autoswitch;
+
+
+
+#define REORDER_WIN_SIZE 128
+#define REORDER_ENTRY_NUM 128
+typedef struct _RX_REORDER_ENTRY
+{
+ struct list_head List;
+ u16 SeqNum;
+ struct rtllib_rxb* prxb;
+} RX_REORDER_ENTRY, *PRX_REORDER_ENTRY;
+typedef enum _Fsync_State{
+ Default_Fsync,
+ HW_Fsync,
+ SW_Fsync
+}Fsync_State;
+
+typedef enum _RT_PS_MODE
+{
+ eActive,
+ eMaxPs,
+ eFastPs,
+ eAutoPs,
+}RT_PS_MODE;
+
+typedef enum _IPS_CALLBACK_FUNCION
+{
+ IPS_CALLBACK_NONE = 0,
+ IPS_CALLBACK_MGNT_LINK_REQUEST = 1,
+ IPS_CALLBACK_JOIN_REQUEST = 2,
+}IPS_CALLBACK_FUNCION;
+
+typedef enum _RT_JOIN_ACTION{
+ RT_JOIN_INFRA = 1,
+ RT_JOIN_IBSS = 2,
+ RT_START_IBSS = 3,
+ RT_NO_ACTION = 4,
+}RT_JOIN_ACTION;
+
+typedef struct _IbssParms{
+ u16 atimWin;
+}IbssParms, *PIbssParms;
+#define MAX_NUM_RATES 264
+
+typedef enum _RT_RF_POWER_STATE
+{
+ eRfOn,
+ eRfSleep,
+ eRfOff
+}RT_RF_POWER_STATE;
+
+#define MAX_SUPPORT_WOL_PATTERN_NUM 8
+
+#define MAX_WOL_BIT_MASK_SIZE 16
+#define MAX_WOL_PATTERN_SIZE 128
+
+typedef enum _WOLPATTERN_TYPE
+{
+ eNetBIOS = 0,
+ eIPv4IPv6ARP,
+ eIPv4IPv6TCPSYN,
+ eMACIDOnly,
+ eNoDefined,
+}WOLPATTERN_TYPE;
+
+typedef struct _RT_PM_WOL_PATTERN_INFO
+{
+ u32 PatternId;
+ u32 Mask[4];
+ u16 CrcRemainder;
+ u8 WFMIndex;
+ WOLPATTERN_TYPE PatternType;
+}RT_PM_WOL_PATTERN_INFO, *PRT_PM_WOL_PATTERN_INFO;
+
+typedef struct _RT_POWER_SAVE_CONTROL
+{
+
+ bool bInactivePs;
+ bool bIPSModeBackup;
+ bool bHaltAdapterClkRQ;
+ bool bSwRfProcessing;
+ RT_RF_POWER_STATE eInactivePowerState;
+ work_struct_rsl InactivePsWorkItem;
+ struct timer_list InactivePsTimer;
+
+ IPS_CALLBACK_FUNCION ReturnPoint;
+
+ bool bTmpBssDesc;
+ RT_JOIN_ACTION tmpJoinAction;
+ struct rtllib_network tmpBssDesc;
+
+ bool bTmpScanOnly;
+ bool bTmpActiveScan;
+ bool bTmpFilterHiddenAP;
+ bool bTmpUpdateParms;
+ u8 tmpSsidBuf[33];
+ OCTET_STRING tmpSsid2Scan;
+ bool bTmpSsid2Scan;
+ u8 tmpNetworkType;
+ u8 tmpChannelNumber;
+ u16 tmpBcnPeriod;
+ u8 tmpDtimPeriod;
+ u16 tmpmCap;
+ OCTET_STRING tmpSuppRateSet;
+ u8 tmpSuppRateBuf[MAX_NUM_RATES];
+ bool bTmpSuppRate;
+ IbssParms tmpIbpm;
+ bool bTmpIbpm;
+
+ bool bLeisurePs;
+ u32 PowerProfile;
+ u8 LpsIdleCount;
+ u8 RegMaxLPSAwakeIntvl;
+ u8 LPSAwakeIntvl;
+
+ u32 CurPsLevel;
+ u32 RegRfPsLevel;
+
+ bool bFwCtrlLPS;
+ u8 FWCtrlPSMode;
+
+ bool LinkReqInIPSRFOffPgs;
+ bool BufConnectinfoBefore;
+
+
+ bool bGpioRfSw;
+
+ u8 oWLANMode;
+ RT_PM_WOL_PATTERN_INFO PmWoLPatternInfo[MAX_SUPPORT_WOL_PATTERN_NUM];
+
+}RT_POWER_SAVE_CONTROL,*PRT_POWER_SAVE_CONTROL;
+
+typedef u32 RT_RF_CHANGE_SOURCE;
+#define RF_CHANGE_BY_SW BIT31
+#define RF_CHANGE_BY_HW BIT30
+#define RF_CHANGE_BY_PS BIT29
+#define RF_CHANGE_BY_IPS BIT28
+#define RF_CHANGE_BY_INIT 0
+
+typedef enum
+{
+ COUNTRY_CODE_FCC = 0,
+ COUNTRY_CODE_IC = 1,
+ COUNTRY_CODE_ETSI = 2,
+ COUNTRY_CODE_SPAIN = 3,
+ COUNTRY_CODE_FRANCE = 4,
+ COUNTRY_CODE_MKK = 5,
+ COUNTRY_CODE_MKK1 = 6,
+ COUNTRY_CODE_ISRAEL = 7,
+ COUNTRY_CODE_TELEC = 8,
+ COUNTRY_CODE_MIC = 9,
+ COUNTRY_CODE_GLOBAL_DOMAIN = 10,
+ COUNTRY_CODE_WORLD_WIDE_13 = 11,
+ COUNTRY_CODE_TELEC_NETGEAR = 12,
+ COUNTRY_CODE_MAX
+}country_code_type_t;
+
+typedef enum _SCAN_OPERATION_BACKUP_OPT{
+ SCAN_OPT_BACKUP=0,
+ SCAN_OPT_RESTORE,
+ SCAN_OPT_MAX
+}SCAN_OPERATION_BACKUP_OPT;
+
+typedef enum _FW_CMD_IO_TYPE{
+ FW_CMD_DIG_ENABLE = 0,
+ FW_CMD_DIG_DISABLE = 1,
+ FW_CMD_DIG_HALT = 2,
+ FW_CMD_DIG_RESUME = 3,
+ FW_CMD_HIGH_PWR_ENABLE = 4,
+ FW_CMD_HIGH_PWR_DISABLE = 5,
+ FW_CMD_RA_RESET = 6,
+ FW_CMD_RA_ACTIVE= 7,
+ FW_CMD_RA_REFRESH_N= 8,
+ FW_CMD_RA_REFRESH_BG= 9,
+ FW_CMD_RA_INIT= 10,
+ FW_CMD_IQK_ENABLE = 11,
+ FW_CMD_TXPWR_TRACK_ENABLE = 12,
+ FW_CMD_TXPWR_TRACK_DISABLE = 13,
+ FW_CMD_TXPWR_TRACK_THERMAL = 14,
+ FW_CMD_PAUSE_DM_BY_SCAN = 15,
+ FW_CMD_RESUME_DM_BY_SCAN = 16,
+ FW_CMD_RA_REFRESH_N_COMB = 17,
+ FW_CMD_RA_REFRESH_BG_COMB = 18,
+ FW_CMD_ANTENNA_SW_ENABLE = 19,
+ FW_CMD_ANTENNA_SW_DISABLE = 20,
+ FW_CMD_TX_FEEDBACK_CCX_ENABLE = 21,
+ FW_CMD_LPS_ENTER = 22,
+ FW_CMD_LPS_LEAVE = 23,
+ FW_CMD_DIG_MODE_SS = 24,
+ FW_CMD_DIG_MODE_FA = 25,
+ FW_CMD_ADD_A2_ENTRY = 26,
+ FW_CMD_CTRL_DM_BY_DRIVER = 27,
+ FW_CMD_CTRL_DM_BY_DRIVER_NEW = 28,
+ FW_CMD_PAPE_CONTROL = 29,
+ FW_CMD_CHAN_SET = 30,
+}FW_CMD_IO_TYPE,*PFW_CMD_IO_TYPE;
+
+#define RT_MAX_LD_SLOT_NUM 10
+typedef struct _RT_LINK_DETECT_T{
+
+ u32 NumRecvBcnInPeriod;
+ u32 NumRecvDataInPeriod;
+
+ u32 RxBcnNum[RT_MAX_LD_SLOT_NUM];
+ u32 RxDataNum[RT_MAX_LD_SLOT_NUM];
+ u16 SlotNum;
+ u16 SlotIndex;
+
+ u32 NumTxOkInPeriod;
+ u32 NumRxOkInPeriod;
+ u32 NumRxUnicastOkInPeriod;
+ bool bBusyTraffic;
+
+#ifdef _RTL8192_EXT_PATCH_
+ u8 IdleCount;
+ u32 LastNumTxUnicast;
+ u32 LastNumRxUnicast;
+#endif
+}RT_LINK_DETECT_T, *PRT_LINK_DETECT_T;
+
+#ifdef _RTL8192_EXT_PATCH_
+struct rtllib_crypt_data_list{
+ u8 used;
+ u8 mac_addr[ETH_ALEN];
+ struct rtllib_crypt_data *crypt[WEP_KEYS];
+}__attribute__((packed));
+
+typedef struct _SW_RATR_TABLE{
+ bool bused;
+ u32 ratr_value;
+}SW_RATR_TABLE, *PSW_RATR_TABLE;
+#endif
+
+typedef struct _SW_CAM_TABLE{
+
+ u8 macaddr[6];
+ bool bused;
+ u8 key_buf[16];
+ u16 key_type;
+ u8 useDK;
+ u8 key_index;
+
+}SW_CAM_TABLE,*PSW_CAM_TABLE;
+#define TOTAL_CAM_ENTRY 32
+typedef struct _rate_adaptive
+{
+ u8 rate_adaptive_disabled;
+ u8 ratr_state;
+ u16 reserve;
+
+ u32 high_rssi_thresh_for_ra;
+ u32 high2low_rssi_thresh_for_ra;
+ u8 low2high_rssi_thresh_for_ra40M;
+ u32 low_rssi_thresh_for_ra40M;
+ u8 low2high_rssi_thresh_for_ra20M;
+ u32 low_rssi_thresh_for_ra20M;
+ u32 upper_rssi_threshold_ratr;
+ u32 middle_rssi_threshold_ratr;
+ u32 low_rssi_threshold_ratr;
+ u32 low_rssi_threshold_ratr_40M;
+ u32 low_rssi_threshold_ratr_20M;
+ u8 ping_rssi_enable;
+ u32 ping_rssi_ratr;
+ u32 ping_rssi_thresh_for_ra;
+ u32 last_ratr;
+ u8 PreRATRState;
+
+} rate_adaptive, *prate_adaptive;
+typedef enum _RATR_TABLE_MODE_8192S{
+ RATR_INX_WIRELESS_NGB = 0,
+ RATR_INX_WIRELESS_NG = 1,
+ RATR_INX_WIRELESS_NB = 2,
+ RATR_INX_WIRELESS_N = 3,
+ RATR_INX_WIRELESS_GB = 4,
+ RATR_INX_WIRELESS_G = 5,
+ RATR_INX_WIRELESS_B = 6,
+ RATR_INX_WIRELESS_MC = 7,
+ RATR_INX_WIRELESS_A = 8,
+}RATR_TABLE_MODE_8192S, *PRATR_TABLE_MODE_8192S;
+
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) || defined RTL8192CE
+#define PEER_MAX_ASSOC 10
+typedef struct _RSSI_STA{
+ long UndecoratedSmoothedPWDB;
+}RSSI_STA, *PRSSI_STA;
+
+struct sta_info {
+ u8 macaddr[ETH_ALEN];
+ u16 aid;
+ u8 authentication;
+ u8 encryption;
+ u16 capability;
+ u8 ratr_index;
+ int wireless_mode;
+ RT_HTINFO_STA_ENTRY htinfo;
+ u8 wme_enable;
+ u32 CurDataRate;
+ RSSI_STA rssi_stat;
+ rate_adaptive rate_adaptive;
+ u8 bPowerSave;
+ struct sk_buff_head PsQueue;
+ u32 LastActiveTime;
+ u16 StaDataRate;
+ u32 StaSS;
+ u16 RetryFrameCnt;
+ u16 LastRetryCnt;
+ u16 NoRetryFrameCnt;
+ u16 LastNoRetryCnt;
+ int AvgRetryRate;
+ int LastRetryRate;
+ u8 txRateIndex;
+ u16 APDataRate;
+ u16 ForcedDataRate;
+} __attribute__ ((packed));
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+typedef struct _RT_PEERMP_HTINFO{
+ u8 bEnableHT;
+ u8 bCurrentHTSupport;
+
+ u8 bRegBW40MHz;
+ u8 bCurBW40MHz;
+
+ u8 bRegShortGI40MHz;
+ u8 bCurShortGI40MHz;
+
+ u8 bRegShortGI20MHz;
+ u8 bCurShortGI20MHz;
+
+ u8 bCurSuppCCK;
+
+
+
+
+ u8 PeerHTCapBuf[32];
+ u8 PeerHTInfoBuf[32];
+
+
+ u8 bAMSDU_Support;
+ u16 nAMSDU_MaxSize;
+ u8 bCurrent_Mesh_AMSDU_Support;
+
+
+ u8 bAMPDUEnable;
+ u8 bCurrentMeshAMPDUEnable;
+ u8 AMPDU_Factor;
+ u8 CurrentAMPDUFactor;
+ u8 MPDU_Density;
+ u8 CurrentMPDUDensity;
+
+ u8 ForcedAMPDUFactor;
+ u8 ForcedMPDUDensity;
+
+ HT_AGGRE_MODE_E ForcedAMSDUMode;
+ u16 ForcedAMSDUMaxSize;
+
+ u8 bForcedShortGI;
+
+ u8 CurrentOpMode;
+
+ u8 MimoPs;
+
+ HT_EXTCHNL_OFFSET CurSTAExtChnlOffset;
+ u8 bCurTxBW40MHz;
+ u8 PeerBandwidth;
+
+ u8 bSwBwInProgress;
+ CHNLOP ChnlOp;
+ u8 SwBwStep;
+
+ u8 bRegRT2RTAggregation;
+ u8 bCurrentRT2RTAggregation;
+ u8 bCurrentRT2RTLongSlotTime;
+ u8 szRT2RTAggBuffer[10];
+
+ u8 bRegRxReorderEnable;
+ u8 bCurRxReorderEnable;
+ u8 RxReorderWinSize;
+ u8 RxReorderPendingTime;
+ u16 RxReorderDropCounter;
+
+#ifdef USB_TX_DRIVER_AGGREGATION_ENABLE
+ u8 UsbTxAggrNum;
+#endif
+#ifdef USB_RX_AGGREGATION_SUPPORT
+ u8 UsbRxFwAggrEn;
+ u8 UsbRxFwAggrPageNum;
+ u8 UsbRxFwAggrPacketNum;
+ u8 UsbRxFwAggrTimeout;
+#endif
+
+ u8 bIsPeerBcm;
+
+ u8 McsRateSet[16];
+ u8 HTHighestOperaRate;
+ u8 IOTPeer;
+ u32 IOTAction;
+} __attribute__ ((packed)) peerMP_htinfo, *ppeerMP_htinfo;
+#endif
+
+#define NUM_PMKID_CACHE 16
+typedef struct _RT_PMKID_LIST
+{
+ u8 bUsed;
+ u8 Bssid[6];
+ u8 PMKID[16];
+ u8 SsidBuf[33];
+ u8* ssid_octet;
+ u16 ssid_length;
+} RT_PMKID_LIST, *PRT_PMKID_LIST;
+
+#ifdef CONFIG_CFG_80211
+enum {
+ LIBIPW_CH_PASSIVE_ONLY = (1 << 0),
+ LIBIPW_CH_80211H_RULES = (1 << 1),
+ LIBIPW_CH_B_ONLY = (1 << 2),
+ LIBIPW_CH_NO_IBSS = (1 << 3),
+ LIBIPW_CH_UNIFORM_SPREADING = (1 << 4),
+ LIBIPW_CH_RADAR_DETECT = (1 << 5),
+ LIBIPW_CH_INVALID = (1 << 6),
+};
+struct rtllib_channel {
+ u32 freq;
+ u8 channel;
+ u8 flags;
+ u8 max_power;
+};
+
+#define RTLLIB_24GHZ_MIN_CHANNEL 1
+#define RTLLIB_24GHZ_MAX_CHANNEL 14
+#define RTLLIB_24GHZ_CHANNELS (RTLLIB_24GHZ_MAX_CHANNEL - \
+ RTLLIB_24GHZ_MIN_CHANNEL + 1)
+
+struct reg_dmn_pair_mapping {
+ u16 regDmnEnum;
+ u16 reg_5ghz_ctl;
+ u16 reg_2ghz_ctl;
+};
+
+struct rtl_regulatory {
+ char alpha2[2];
+ u16 country_code;
+ u16 max_power_level;
+ u32 tp_scale;
+ u16 current_rd;
+ u16 current_rd_ext;
+ int16_t power_limit;
+ struct reg_dmn_pair_mapping *regpair;
+};
+
+struct ieee80211_bss {
+ /* Yes, this is a hack */
+ struct cfg80211_bss cbss;
+
+ /* don't want to look up all the time */
+ size_t ssid_len;
+ u8 ssid[IEEE80211_MAX_SSID_LEN];
+
+ u8 dtim_period;
+
+ bool wmm_used;
+
+ unsigned long last_probe_resp;
+
+#ifdef CONFIG_MAC80211_MESH
+ u8 *mesh_id;
+ size_t mesh_id_len;
+ u8 *mesh_cfg;
+#endif
+
+ #define IEEE80211_MAX_SUPP_RATES 32
+ u8 supp_rates[IEEE80211_MAX_SUPP_RATES];
+ size_t supp_rates_len;
+
+ /*
+ * During assocation, we save an ERP value from a probe response so
+ * that we can feed ERP info to the driver when handling the
+ * association completes. these fields probably won't be up-to-date
+ * otherwise, you probably don't want to use them.
+ */
+ bool has_erp_value;
+ u8 erp_value;
+};
+
+/* Parsed Information Elements */
+struct ieee802_11_elems {
+ u8 *ie_start;
+ size_t total_len;
+
+ /* pointers to IEs */
+ u8 *ssid;
+ u8 *supp_rates;
+ u8 *fh_params;
+ u8 *ds_params;
+ u8 *cf_params;
+ struct ieee80211_tim_ie *tim;
+ u8 *ibss_params;
+ u8 *challenge;
+ u8 *wpa;
+ u8 *rsn;
+ u8 *erp_info;
+ u8 *ext_supp_rates;
+ u8 *wmm_info;
+ u8 *wmm_param;
+ struct ieee80211_ht_cap *ht_cap_elem;
+ struct ieee80211_ht_info *ht_info_elem;
+ u8 *mesh_config;
+ u8 *mesh_id;
+ u8 *peer_link;
+ u8 *preq;
+ u8 *prep;
+ u8 *perr;
+ u8 *ch_switch_elem;
+ u8 *country_elem;
+ u8 *pwr_constr_elem;
+ u8 *quiet_elem; /* first quite element */
+ u8 *timeout_int;
+
+ /* length of them, respectively */
+ u8 ssid_len;
+ u8 supp_rates_len;
+ u8 fh_params_len;
+ u8 ds_params_len;
+ u8 cf_params_len;
+ u8 tim_len;
+ u8 ibss_params_len;
+ u8 challenge_len;
+ u8 wpa_len;
+ u8 rsn_len;
+ u8 erp_info_len;
+ u8 ext_supp_rates_len;
+ u8 wmm_info_len;
+ u8 wmm_param_len;
+ u8 mesh_config_len;
+ u8 mesh_id_len;
+ u8 peer_link_len;
+ u8 preq_len;
+ u8 prep_len;
+ u8 perr_len;
+ u8 ch_switch_elem_len;
+ u8 country_elem_len;
+ u8 pwr_constr_elem_len;
+ u8 quiet_elem_len;
+ u8 num_of_quiet_elem; /* can be more the one */
+ u8 timeout_int_len;
+};
+
+#endif
+
+
+typedef struct _RT_INTEL_PROMISCUOUS_MODE_INFO {
+ bool bPromiscuousOn;
+ bool bFilterSourceStationFrame;
+} RT_INTEL_PROMISCUOUS_MODE_INFO, *PRT_INTEL_PROMISCUOUS_MODE_INFO;
+
+
+/*************** DRIVER STATUS *****/
+#define STATUS_SCANNING 0
+#define STATUS_SCAN_HW 1
+#define STATUS_SCAN_ABORTING 2
+#define STATUS_SETTING_CHAN 3
+/*************** DRIVER STATUS *****/
+
+enum {
+ NO_USE = 0,
+ USED = 1,
+ HW_SEC = 2,
+ SW_SEC = 3,
+};
+
+struct rtllib_device {
+ struct pci_dev *pdev;
+ struct net_device *dev;
+ struct rtllib_security sec;
+
+ bool disable_mgnt_queue;
+
+ unsigned long status;
+ short hwscan_ch_bk;
+ HT_EXTCHNL_OFFSET chan_offset_bk;
+ HT_CHANNEL_WIDTH bandwidth_bk;
+ u8 hwscan_sem_up;
+#ifdef CONFIG_CFG_80211
+ struct wireless_dev wdev;
+ struct rtl_regulatory regulatory;
+#endif
+ u8 CntAfterLink;
+
+ u8 VersionID;
+ /* The last AssocReq/Resp IEs */
+ u8 *assocreq_ies, *assocresp_ies;
+ size_t assocreq_ies_len, assocresp_ies_len;
+
+ bool b_customer_lenovo_id;
+ bool bForcedShowRxRate;
+ bool bForcedShowRateStill;
+ u8 SystemQueryDataRateCount;
+ bool bForcedBgMode;
+ bool bUseRAMask;
+ bool b1x1RecvCombine;
+ u8 RF_Type;
+ bool b1SSSupport;
+
+ u8 hwsec_active;
+ bool is_silent_reset;
+ bool force_mic_error;
+ bool is_roaming;
+ bool ieee_up;
+ bool cannot_notify;
+ bool bSupportRemoteWakeUp;
+ RT_PS_MODE dot11PowerSaveMode;
+ bool actscanning;
+ bool FirstIe_InScan;
+ bool be_scan_inprogress;
+ bool beinretry;
+ RT_RF_POWER_STATE eRFPowerState;
+ RT_RF_CHANGE_SOURCE RfOffReason;
+ bool is_set_key;
+ bool wx_set_enc;
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE) || defined RTL8192CE
+ struct sta_info *peer_assoc_list[PEER_MAX_ASSOC];
+ u8 AvailableAIDTable[PEER_MAX_ASSOC];
+ atomic_t AsocEntryNum;
+ u64 CurrTsf;
+ u64 TargetTsf;
+ bool Peer_bCurBW40M;
+#endif
+ PRT_HIGH_THROUGHPUT pHTInfo;
+ spinlock_t bw_spinlock;
+
+ spinlock_t reorder_spinlock;
+ u8 Regdot11HTOperationalRateSet[16];
+ u8 Regdot11TxHTOperationalRateSet[16];
+ u8 dot11HTOperationalRateSet[16];
+ u8 RegHTSuppRateSet[16];
+ u8 HTCurrentOperaRate;
+ u8 HTHighestOperaRate;
+ u8 MinSpaceCfg;
+ u8 MaxMssDensity;
+ u8 bTxDisableRateFallBack;
+ u8 bTxUseDriverAssingedRate;
+ u8 bTxEnableFwCalcDur;
+ atomic_t atm_chnlop;
+ atomic_t atm_swbw;
+
+ struct list_head Tx_TS_Admit_List;
+ struct list_head Tx_TS_Pending_List;
+ struct list_head Tx_TS_Unused_List;
+ TX_TS_RECORD TxTsRecord[TOTAL_TS_NUM];
+ struct list_head Rx_TS_Admit_List;
+ struct list_head Rx_TS_Pending_List;
+ struct list_head Rx_TS_Unused_List;
+ RX_TS_RECORD RxTsRecord[TOTAL_TS_NUM];
+ RX_REORDER_ENTRY RxReorderEntry[128];
+ struct list_head RxReorder_Unused_List;
+ u8 ForcedPriority;
+
+
+ /* Bookkeeping structures */
+ struct net_device_stats stats;
+ struct rtllib_stats ieee_stats;
+ struct rtllib_softmac_stats softmac_stats;
+
+ /* Probe / Beacon management */
+ struct list_head network_free_list;
+ struct list_head network_list;
+#ifdef RTL8192U
+ struct list_head network_bssid_free_list;
+ struct list_head network_bssid_list;
+#endif
+ struct rtllib_network *networks;
+ int scans;
+ int scan_age;
+
+ int iw_mode; /* operating mode (IW_MODE_*) */
+ bool bNetPromiscuousMode;
+ RT_INTEL_PROMISCUOUS_MODE_INFO IntelPromiscuousModeInfo;
+
+ struct iw_spy_data spy_data;
+
+ spinlock_t lock;
+ spinlock_t wpax_suitlist_lock;
+
+ int tx_headroom; /* Set to size of any additional room needed at front
+ * of allocated Tx SKBs */
+ u32 config;
+
+ /* WEP and other encryption related settings at the device level */
+ int open_wep; /* Set to 1 to allow unencrypted frames */
+ int auth_mode;
+ int reset_on_keychange; /* Set to 1 if the HW needs to be reset on
+ * WEP key changes */
+
+ /* If the host performs {en,de}cryption, then set to 1 */
+ int host_encrypt;
+ int host_encrypt_msdu;
+ int host_decrypt;
+ /* host performs multicast decryption */
+ int host_mc_decrypt;
+
+ /* host should strip IV and ICV from protected frames */
+ /* meaningful only when hardware decryption is being used */
+ int host_strip_iv_icv;
+
+ int host_open_frag;
+ int host_build_iv;
+ int ieee802_1x; /* is IEEE 802.1X used */
+
+ /* WPA data */
+ bool bHalfNMode;
+ bool bHalfWirelessN24GMode;
+ int wpa_enabled;
+ int drop_unencrypted;
+ int tkip_countermeasures;
+ int privacy_invoked;
+ size_t wpa_ie_len;
+ u8 *wpa_ie;
+ size_t wps_ie_len;
+ u8 *wps_ie;
+ u8 ap_mac_addr[6];
+ u16 pairwise_key_type;
+ u16 group_key_type;
+ struct list_head crypt_deinit_list;
+#ifdef _RTL8192_EXT_PATCH_
+ struct rtllib_crypt_data_list* cryptlist[MAX_MP];
+ struct rtllib_crypt_data *sta_crypt[WEP_KEYS];
+#else
+ struct rtllib_crypt_data *crypt[WEP_KEYS];
+#endif
+
+ int tx_keyidx; /* default TX key index (crypt[tx_keyidx]) */
+ SW_CAM_TABLE swcamtable[TOTAL_CAM_ENTRY];
+ struct timer_list crypt_deinit_timer;
+ int crypt_quiesced;
+
+ int bcrx_sta_key; /* use individual keys to override default keys even
+ * with RX of broad/multicast frames */
+
+ RT_PMKID_LIST PMKIDList[NUM_PMKID_CACHE];
+
+ /* Fragmentation structures */
+ struct rtllib_frag_entry frag_cache[17][RTLLIB_FRAG_CACHE_LEN];
+ unsigned int frag_next_idx[17];
+ u16 fts; /* Fragmentation Threshold */
+#define DEFAULT_RTS_THRESHOLD 2346U
+#define MIN_RTS_THRESHOLD 1
+#define MAX_RTS_THRESHOLD 2346U
+ u16 rts; /* RTS threshold */
+
+ /* Association info */
+ u8 bssid[ETH_ALEN];
+
+ /* This stores infos for the current network.
+ * Either the network we are associated in INFRASTRUCTURE
+ * or the network that we are creating in MASTER mode.
+ * ad-hoc is a mixture ;-).
+ * Note that in infrastructure mode, even when not associated,
+ * fields bssid and essid may be valid (if wpa_set and essid_set
+ * are true) as thy carry the value set by the user via iwconfig
+ */
+ struct rtllib_network current_network;
+
+ enum rtllib_state state;
+
+ int short_slot;
+ int reg_mode;
+ int mode; /* A, B, G */
+ int modulation; /* CCK, OFDM */
+ int freq_band; /* 2.4Ghz, 5.2Ghz, Mixed */
+ int abg_true; /* ABG flag */
+
+ /* used for forcing the ibss workqueue to terminate
+ * without wait for the syncro scan to terminate
+ */
+ short sync_scan_hurryup;
+ u16 scan_watch_dog;
+ int perfect_rssi;
+ int worst_rssi;
+
+ u16 prev_seq_ctl; /* used to drop duplicate frames */
+
+ /* map of allowed channels. 0 is dummy */
+#ifdef ENABLE_DOT11D
+ void* pDot11dInfo;
+ bool bGlobalDomain;
+#else
+ u8 channel_map[MAX_CHANNEL_NUMBER+1];
+#endif
+ u8 active_channel_map[MAX_CHANNEL_NUMBER+1];
+
+ u8 IbssStartChnl;
+ u8 ibss_maxjoin_chal;
+
+#ifdef _RTL8192_EXT_PATCH_
+ u8 backup_channel;
+ bool bUseProtection;
+#endif
+ int rate; /* current rate */
+ int basic_rate;
+ u32 currentRate;
+
+ short active_scan;
+
+ /* this contains flags for selectively enable softmac support */
+ u16 softmac_features;
+
+ /* if the sequence control field is not filled by HW */
+ u16 seq_ctrl[5];
+
+ /* association procedure transaction sequence number */
+ u16 associate_seq;
+
+ /* AID for RTXed association responses */
+ u16 assoc_id;
+
+ /* power save mode related*/
+ u8 ack_tx_to_ieee;
+ short ps;
+ short sta_sleep;
+ int ps_timeout;
+ int ps_period;
+ struct tasklet_struct ps_task;
+ u32 ps_th;
+ u32 ps_tl;
+ bool polling;
+
+ short raw_tx;
+ /* used if IEEE_SOFTMAC_TX_QUEUE is set */
+ short queue_stop;
+ short scanning_continue ;
+ short proto_started;
+ short proto_stoppping;
+
+ struct semaphore wx_sem;
+ struct semaphore scan_sem;
+ struct semaphore ips_sem;
+
+ spinlock_t mgmt_tx_lock;
+ spinlock_t beacon_lock;
+
+ short beacon_txing;
+
+ short wap_set;
+ short ssid_set;
+
+ /* set on initialization */
+ unsigned int wmm_acm;
+
+ /* for discarding duplicated packets in IBSS */
+ struct list_head ibss_mac_hash[IEEE_IBSS_MAC_HASH_SIZE];
+
+ /* for discarding duplicated packets in BSS */
+ u16 last_rxseq_num[17]; /* rx seq previous per-tid */
+ u16 last_rxfrag_num[17];/* tx frag previous per-tid */
+ unsigned long last_packet_time[17];
+
+ /* for PS mode */
+ unsigned long last_rx_ps_time;
+ bool bAwakePktSent;
+ u8 LPSDelayCnt;
+
+ /* used if IEEE_SOFTMAC_SINGLE_QUEUE is set */
+ struct sk_buff *mgmt_queue_ring[MGMT_QUEUE_NUM];
+ int mgmt_queue_head;
+ int mgmt_queue_tail;
+#define RTLLIB_QUEUE_LIMIT 128
+ u8 AsocRetryCount;
+ unsigned int hw_header;
+ struct sk_buff_head skb_waitQ[MAX_QUEUE_SIZE];
+ struct sk_buff_head skb_aggQ[MAX_QUEUE_SIZE];
+ struct sk_buff_head skb_drv_aggQ[MAX_QUEUE_SIZE];
+ u32 sta_edca_param[4];
+ bool aggregation;
+ bool enable_rx_imm_BA;
+ bool bibsscoordinator;
+
+ bool bdynamic_txpower_enable;
+
+ bool bCTSToSelfEnable;
+ u8 CTSToSelfTH;
+
+ u32 fsync_time_interval;
+ u32 fsync_rate_bitmap;
+ u8 fsync_rssi_threshold;
+ bool bfsync_enable;
+
+ u8 fsync_multiple_timeinterval;
+ u32 fsync_firstdiff_ratethreshold;
+ u32 fsync_seconddiff_ratethreshold;
+ Fsync_State fsync_state;
+ bool bis_any_nonbepkts;
+ bandwidth_autoswitch bandwidth_auto_switch;
+ bool FwRWRF;
+
+ RT_LINK_DETECT_T LinkDetectInfo;
+ bool bIsAggregateFrame;
+ RT_POWER_SAVE_CONTROL PowerSaveControl;
+ u8 amsdu_in_process;
+
+ /* used if IEEE_SOFTMAC_TX_QUEUE is set */
+ struct tx_pending_t tx_pending;
+
+ /* used if IEEE_SOFTMAC_ASSOCIATE is set */
+ struct timer_list associate_timer;
+
+ /* used if IEEE_SOFTMAC_BEACONS is set */
+ struct timer_list beacon_timer;
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ struct timer_list ibss_wait_timer;
+#endif
+ u8 need_sw_enc;
+#ifdef _RTL8192_EXT_PATCH_
+ struct net_device *meshdev;
+ struct net_device_stats *meshstats;
+ u8 only_mesh;
+ u8 hostname[MAX_HOST_NAME_LENGTH];
+ u8 hostname_len;
+ struct list_head mesh_network_free_list;
+ struct list_head mesh_network_list;
+ struct rtllib_network *mesh_networks;
+ struct rtllib_network current_mesh_network;
+ enum rtllib_state mesh_state;
+ short mesh_started;
+ int mesh_security_setting;
+ int mesh_sec_type;
+ struct list_head mesh_mac_hash[IEEE_MESH_MAC_HASH_SIZE];
+ u64 LinkingPeerBitMap;
+ u8 LinkingPeerAddr[MAX_MP-1][ETH_ALEN];
+ u8 LinkingPeerSecState[MAX_MP-1];
+ u8 mesh_cached_PTK[MAX_MP-1][16];
+ u32 peer_AID_bitmap;
+ u8 peer_AID_Addr[30][ETH_ALEN];
+ int mesh_txkeyidx;
+ u16 mesh_pairwise_key_type;
+ u16 mesh_group_key_type;
+ u32 HwSecCamBitMap;
+ u8 HwSecCamStaAddr[TOTAL_CAM_ENTRY][ETH_ALEN];
+ SW_CAM_TABLE swmeshcamtable[TOTAL_CAM_ENTRY];
+ SW_RATR_TABLE swmeshratrtable[8];
+ short meshid_set;
+ u8 p2pmode;
+ u8 serverExtChlOffset;
+ u8 APExtChlOffset;
+ short meshScanMode;
+ struct sk_buff_head skb_meshaggQ[MAX_QUEUE_SIZE];
+ u8 mesh_amsdu_in_process;
+#endif
+ work_struct_rsl associate_complete_wq;
+#ifdef ENABLE_IPS
+ work_struct_rsl ips_leave_wq;
+#endif
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ delayed_work_struct_rsl check_tsf_wq;
+ delayed_work_struct_rsl update_assoc_sta_info_wq;
+#endif
+ delayed_work_struct_rsl associate_procedure_wq;
+ delayed_work_struct_rsl softmac_scan_wq;
+ delayed_work_struct_rsl softmac_hint11d_wq;
+ delayed_work_struct_rsl associate_retry_wq;
+ delayed_work_struct_rsl start_ibss_wq;
+#ifndef RTL8190P
+ delayed_work_struct_rsl hw_wakeup_wq;
+ delayed_work_struct_rsl hw_sleep_wq;
+#endif
+ delayed_work_struct_rsl link_change_wq;
+ work_struct_rsl wx_sync_scan_wq;
+#ifdef _RTL8192_EXT_PATCH_
+ work_struct_rsl ext_stop_scan_wq;
+ work_struct_rsl ext_send_beacon_wq;
+ work_struct_rsl ext_create_crypt_for_peers_wq;
+ work_struct_rsl ext_path_sel_ops_wq;
+ work_struct_rsl ext_update_extchnloffset_wq;
+ delayed_work_struct_rsl ext_wx_set_key_wq;
+ work_struct_rsl ext_start_mesh_protocol_wq;
+#endif
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ struct workqueue_struct *wq;
+#else
+ u32 *wq;
+#endif
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,40)
+ /* used for periodly scan */
+ struct timer_list scan_timer;
+#endif
+#if defined (RTL8192S_WAPI_SUPPORT)
+ u8 WapiSupport;
+ RT_WAPI_T wapiInfo;
+ struct list_head cache_frag_list;
+ spinlock_t wapi_queue_lock;
+ WAPI_QUEUE *wapi_queue;
+#endif
+
+#ifdef _RTL8192_EXT_PATCH_
+ int (*set_mesh_key)(struct net_device *dev,
+ struct iw_point *encoding, struct iw_encode_ext *ext, u8 *addr);
+#endif
+ /* Callback functions */
+ void (*set_security)(struct net_device *dev,
+ struct rtllib_security *sec);
+
+ /* Used to TX data frame by using txb structs.
+ * this is not used if in the softmac_features
+ * is set the flag IEEE_SOFTMAC_TX_QUEUE
+ */
+ int (*hard_start_xmit)(struct rtllib_txb *txb,
+ struct net_device *dev);
+
+ int (*reset_port)(struct net_device *dev);
+ int (*is_queue_full) (struct net_device * dev, int pri);
+
+ int (*handle_management) (struct net_device * dev,
+ struct rtllib_network * network, u16 type);
+ int (*is_qos_active) (struct net_device *dev, struct sk_buff *skb);
+
+ /* Softmac-generated frames (mamagement) are TXed via this
+ * callback if the flag IEEE_SOFTMAC_SINGLE_QUEUE is
+ * not set. As some cards may have different HW queues that
+ * one might want to use for data and management frames
+ * the option to have two callbacks might be useful.
+ * This fucntion can't sleep.
+ */
+ int (*softmac_hard_start_xmit)(struct sk_buff *skb,
+ struct net_device *dev);
+
+ /* used instead of hard_start_xmit (not softmac_hard_start_xmit)
+ * if the IEEE_SOFTMAC_TX_QUEUE feature is used to TX data
+ * frames. I the option IEEE_SOFTMAC_SINGLE_QUEUE is also set
+ * then also management frames are sent via this callback.
+ * This function can't sleep.
+ */
+ void (*softmac_data_hard_start_xmit)(struct sk_buff *skb,
+ struct net_device *dev,int rate);
+
+ /* stops the HW queue for DATA frames. Useful to avoid
+ * waste time to TX data frame when we are reassociating
+ * This function can sleep.
+ */
+ void (*data_hard_stop)(struct net_device *dev);
+
+ /* OK this is complementar to data_poll_hard_stop */
+ void (*data_hard_resume)(struct net_device *dev);
+
+ /* ask to the driver to retune the radio .
+ * This function can sleep. the driver should ensure
+ * the radio has been swithced before return.
+ */
+ void (*set_chan)(struct net_device *dev,short ch);
+
+ /* These are not used if the ieee stack takes care of
+ * scanning (IEEE_SOFTMAC_SCAN feature set).
+ * In this case only the set_chan is used.
+ *
+ * The syncro version is similar to the start_scan but
+ * does not return until all channels has been scanned.
+ * this is called in user context and should sleep,
+ * it is called in a work_queue when swithcing to ad-hoc mode
+ * or in behalf of iwlist scan when the card is associated
+ * and root user ask for a scan.
+ * the fucntion stop_scan should stop both the syncro and
+ * background scanning and can sleep.
+ * The fucntion start_scan should initiate the background
+ * scanning and can't sleep.
+ */
+ void (*scan_syncro)(struct net_device *dev);
+ void (*start_scan)(struct net_device *dev);
+ void (*stop_scan)(struct net_device *dev);
+
+ void (*rtllib_start_hw_scan)(struct net_device *dev);
+ void (*rtllib_stop_hw_scan)(struct net_device *dev);
+
+ /* indicate the driver that the link state is changed
+ * for example it may indicate the card is associated now.
+ * Driver might be interested in this to apply RX filter
+ * rules or simply light the LINK led
+ */
+ void (*link_change)(struct net_device *dev);
+
+ /* these two function indicates to the HW when to start
+ * and stop to send beacons. This is used when the
+ * IEEE_SOFTMAC_BEACONS is not set. For now the
+ * stop_send_bacons is NOT guaranteed to be called only
+ * after start_send_beacons.
+ */
+ void (*start_send_beacons) (struct net_device *dev);
+ void (*stop_send_beacons) (struct net_device *dev);
+
+ /* power save mode related */
+ void (*sta_wake_up) (struct net_device *dev);
+ void (*enter_sleep_state) (struct net_device *dev, u32 th, u32 tl);
+ short (*ps_is_queue_empty) (struct net_device *dev);
+#if 0
+ /* Typical STA methods */
+ int (*handle_auth) (struct net_device * dev,
+ struct rtllib_auth * auth);
+ int (*handle_deauth) (struct net_device * dev,
+ struct rtllib_deauth * auth);
+ int (*handle_action) (struct net_device * dev,
+ struct rtllib_action * action,
+ struct rtllib_rx_stats * stats);
+ int (*handle_disassoc) (struct net_device * dev,
+ struct rtllib_disassoc * assoc);
+#endif
+ int (*handle_beacon) (struct net_device * dev, struct rtllib_beacon * beacon, struct rtllib_network * network);
+#if 0
+ int (*handle_probe_response) (struct net_device * dev,
+ struct rtllib_probe_response * resp,
+ struct rtllib_network * network);
+ int (*handle_probe_request) (struct net_device * dev,
+ struct rtllib_probe_request * req,
+ struct rtllib_rx_stats * stats);
+#endif
+ int (*handle_assoc_response) (struct net_device * dev, struct rtllib_assoc_response_frame * resp, struct rtllib_network * network);
+
+#if 0
+ /* Typical AP methods */
+ int (*handle_assoc_request) (struct net_device * dev);
+ int (*handle_reassoc_request) (struct net_device * dev,
+ struct rtllib_reassoc_request * req);
+#endif
+
+ /* check whether Tx hw resouce available */
+ short (*check_nic_enough_desc)(struct net_device *dev, int queue_index);
+ short (*get_nic_desc_num)(struct net_device *dev, int queue_index);
+ void (*SetBWModeHandler)(struct net_device *dev, HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset);
+ bool (*GetNmodeSupportBySecCfg)(struct net_device* dev);
+ void (*SetWirelessMode)(struct net_device* dev, u8 wireless_mode);
+ bool (*GetHalfNmodeSupportByAPsHandler)(struct net_device* dev);
+ u8 (*rtllib_ap_sec_type)(struct rtllib_device *ieee);
+ void (*HalUsbRxAggrHandler)(struct net_device *dev, bool Value);
+ void (*InitialGainHandler)(struct net_device *dev, u8 Operation);
+#ifdef _RTL8192_EXT_PATCH_
+ int (*set_key_for_AP)(struct rtllib_device *ieee);
+ void (*del_hwsec_cam_entry)(struct rtllib_device *ieee, u8 *addr);
+ int (*set_key_for_peer) (struct net_device *dev,u8 *Addr,u8 KeyIndex,u16 KeyType,u32 *KeyContent );
+ int (*ext_patch_rtllib_start_protocol) (struct rtllib_device *ieee);
+
+ short (*ext_patch_rtllib_probe_req_1) (struct rtllib_device *ieee);
+ u8* (*ext_patch_rtllib_probe_req_2) (struct rtllib_device *ieee, struct sk_buff *skb, u8 *tag);
+
+ void (*ext_patch_rtllib_stop_protocol) (struct rtllib_device *ieee,bool is_silent_reset);
+
+ int (*ext_patch_rtllib_rx_frame_softmac_on_peerlink_open) (struct rtllib_device *ieee, struct sk_buff *skb, struct rtllib_rx_stats *rx_stats);
+ int (*ext_patch_rtllib_rx_frame_softmac_on_peerlink_confirm) (struct rtllib_device *ieee, struct sk_buff *skb);
+ int (*ext_patch_rtllib_rx_frame_softmac_on_peerlink_close) (struct rtllib_device *ieee, struct sk_buff *skb);
+ void (*ext_patch_rtllib_close_all_peerlink) (struct rtllib_device *ieee, __le16 reason);
+
+ int (*ext_patch_rtllib_rx_frame_softmac_on_linkmetric_report) (struct rtllib_device *ieee, struct sk_buff *skb);
+ int (*ext_patch_rtllib_rx_frame_softmac_on_linkmetric_req) (struct rtllib_device *ieee, struct sk_buff *skb);
+
+ int (*ext_patch_rtllib_rx_frame_softmac_on_pathselect_preq) (struct rtllib_device *ieee, struct sk_buff *skb,struct rtllib_rx_stats *rx_stats);
+ int (*ext_patch_rtllib_rx_frame_softmac_on_pathselect_prep) (struct rtllib_device *ieee, struct sk_buff *skb,struct rtllib_rx_stats *rx_stats);
+ int (*ext_patch_rtllib_rx_frame_softmac_on_pathselect_perr) (struct rtllib_device *ieee, struct sk_buff *skb,struct rtllib_rx_stats *rx_stats);
+ int (*ext_patch_rtllib_rx_frame_softmac_on_pathselect_rann) (struct rtllib_device *ieee, struct sk_buff *skb,struct rtllib_rx_stats *rx_stats);
+ int (*ext_patch_rtllib_rx_frame_softmac_on_pathselect_pann) (struct rtllib_device *ieee, struct sk_buff *skb,struct rtllib_rx_stats *rx_stats);
+
+ int (*ext_patch_rtllib_ext_stop_scan_wq_set_channel) (struct rtllib_device *ieee);
+ int (*ext_patch_r819x_wx_set_mesh_chan)(struct net_device *dev, unsigned char channel);
+ void (*ext_patch_r819x_wx_set_channel) (struct rtllib_device *ieee, int ch);
+
+ int (*ext_patch_rtllib_softmac_xmit_get_rate) (struct rtllib_device *ieee, struct sk_buff *skb);
+ int (*ext_patch_rtllib_rx_frame_softmac_on_auth)(struct rtllib_device *ieee, struct sk_buff *skb, struct rtllib_rx_stats *rx_stats);
+ int (*ext_patch_rtllib_rx_frame_softmac_on_deauth)(struct rtllib_device *ieee, struct sk_buff *skb, struct rtllib_rx_stats *rx_stats);
+ int (*ext_patch_rtllib_tx_data)(struct rtllib_device *ieee, struct rtllib_hdr_4addrqos* header, u8* is_peer_n_mode, u8* is_peer_40M,
+ u8* is_peer_shortGI_40M, u8* is_peer_shortGI_20M,u8* peer_highest_opra_rate,u8* peer_ratr_index, u8* AID);
+ bool (*ext_patch_rtllib_is_mesh)(struct rtllib_device * ieee,u8 * addr);
+ ppeerMP_htinfo (*ext_patch_rtllib_get_peermp_htinfo) (struct rtllib_device *ieee,u8 * daddr);
+ int (* ext_patch_rtllib_create_crypt_for_peer)(struct rtllib_device * ieee);
+ void (*ext_patch_rtllib_start_mesh)(struct rtllib_device *ieee);
+ void (*ext_patch_rtllib_rx_mgt_on_probe_req) ( struct rtllib_device *ieee, struct rtllib_probe_request *beacon, struct rtllib_rx_stats *stats);
+ unsigned int(*ext_patch_rtllib_process_probe_response_1)(struct rtllib_device *ieee, struct rtllib_probe_response *beacon, struct rtllib_rx_stats *stats);
+
+ void (*ext_patch_rtllib_rx_mgt_update_expire) ( struct rtllib_device *ieee, struct sk_buff *skb);
+ struct sk_buff* (*ext_patch_get_beacon_get_probersp)(struct rtllib_device *ieee, u8 *dest, struct rtllib_network *net);
+
+ int (*ext_patch_rtllib_rx_on_rx) (struct rtllib_device *ieee, struct sk_buff *skb, struct rtllib_rx_stats *rx_stats, u16 type, u16 stype);
+
+ int (*ext_patch_rtllib_rx_frame_get_hdrlen) (struct rtllib_device *ieee, struct sk_buff *skb);
+
+ int (*ext_patch_rtllib_rx_frame_get_mac_hdrlen) (struct rtllib_device *ieee, struct sk_buff *skb);
+
+ int (*ext_patch_rtllib_rx_frame_get_mesh_hdrlen_llc) (struct rtllib_device *ieee, struct sk_buff *skb);
+ int (*ext_patch_rtllib_rx_is_valid_framectl) (struct rtllib_device *ieee, u16 fc, u16 type, u16 stype);
+
+
+ /* added by david for setting acl dynamically */
+ u8 (*ext_patch_rtllib_acl_query) (struct rtllib_device *ieee, u8 *sa);
+
+
+ struct sk_buff* (*ext_patch_rtllib_send_ath_commit) (struct rtllib_device * ieee,u8 * addr);
+ struct sk_buff* (*ext_patch_rtllib_send_ath_confirm) (struct rtllib_device * ieee,u8 * addr);
+ int (*ext_patch_rtllib_rx_ath_commit) (struct rtllib_device * ieee,u8 * addr);
+ u8 (*ext_patch_rtllib_rx_ath_confirm) (struct rtllib_device *ieee, u8* pframe,u16 strlen,u8 *addr);
+
+#endif
+ bool (*SetFwCmdHandler)(struct net_device *dev, FW_CMD_IO_TYPE FwCmdIO);
+ void (*UpdateHalRAMaskHandler)(struct net_device* dev, bool bMulticast, u8 macId, u8 MimoPs, u8 WirelessMode, u8 bCurTxBW40MHz, u8 rssi_level);
+ void (*UpdateBeaconInterruptHandler)(struct net_device* dev, bool start);
+ u16 (*rtl_11n_user_show_rates)(struct net_device *dev);
+ void (*ScanOperationBackupHandler)(struct net_device *dev, u8 Operation);
+ void (*LedControlHandler)(struct net_device * dev, LED_CTL_MODE LedAction);
+ void (*SetHwRegHandler)(struct net_device *dev,u8 variable,u8* val);
+ void (*GetHwRegHandler)(struct net_device *dev,u8 variable,u8* val);
+
+ void (*AllowAllDestAddrHandler)(struct net_device *dev, bool bAllowAllDA, bool WriteIntoReg);
+
+#ifdef ENABLE_IPS
+ void (*rtllib_ips_leave_wq) (struct net_device *dev);
+ void (*rtllib_ips_leave)(struct net_device *dev);
+#endif
+#ifdef ENABLE_LPS
+ void (*LeisurePSLeave)(struct net_device *dev);
+#endif
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ void (*SetBeaconRelatedRegistersHandler)(struct net_device* dev);
+ bool (*check_ht_cap)(struct net_device* dev, struct sta_info *sta, struct rtllib_network* net);
+ void (*Adhoc_InitRateAdaptive)(struct net_device *dev,struct sta_info *pEntry);
+#endif
+ void (*rtllib_rfkill_poll)(struct net_device *dev);
+
+ /* This must be the last item so that it points to the data
+ * allocated beyond this structure by alloc_rtllib */
+ u8 priv[0];
+};
+
+#define IEEE_A (1<<0)
+#define IEEE_B (1<<1)
+#define IEEE_G (1<<2)
+#define IEEE_N_24G (1<<4)
+#define IEEE_N_5G (1<<5)
+#define IEEE_MODE_MASK (IEEE_A|IEEE_B|IEEE_G)
+
+/* Generate a 802.11 header */
+
+/* Uses the channel change callback directly
+ * instead of [start/stop] scan callbacks
+ */
+#define IEEE_SOFTMAC_SCAN (1<<2)
+
+/* Perform authentication and association handshake */
+#define IEEE_SOFTMAC_ASSOCIATE (1<<3)
+
+/* Generate probe requests */
+#define IEEE_SOFTMAC_PROBERQ (1<<4)
+
+/* Generate respones to probe requests */
+#define IEEE_SOFTMAC_PROBERS (1<<5)
+
+/* The ieee802.11 stack will manages the netif queue
+ * wake/stop for the driver, taking care of 802.11
+ * fragmentation. See softmac.c for details. */
+#define IEEE_SOFTMAC_TX_QUEUE (1<<7)
+
+/* Uses only the softmac_data_hard_start_xmit
+ * even for TX management frames.
+ */
+#define IEEE_SOFTMAC_SINGLE_QUEUE (1<<8)
+
+/* Generate beacons. The stack will enqueue beacons
+ * to the card
+ */
+#define IEEE_SOFTMAC_BEACONS (1<<6)
+
+#ifdef _RTL8192_EXT_PATCH_
+static inline int rtllib_find_MP(struct rtllib_device* ieee, const u8* addr, u8 set)
+{
+ int i=0;
+ for (i=1; i<MAX_MP; i++) {
+ if ((ieee->cryptlist[i]->used == 0) && set) {
+ memcpy(ieee->cryptlist[i]->mac_addr, addr, ETH_ALEN);
+ ieee->cryptlist[i]->used = 1;
+ return i;
+ } else if (0 == memcmp(ieee->cryptlist[i]->mac_addr, addr, ETH_ALEN)) {
+ return i;
+ }
+ }
+ return -1;
+}
+#endif
+
+static inline void *rtllib_priv(struct net_device *dev)
+{
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ return ((struct rtllib_device *)netdev_priv(dev))->priv;
+#else
+ return ((struct rtllib_device *)dev->priv)->priv;
+#endif
+}
+
+extern inline int rtllib_is_empty_essid(const char *essid, int essid_len)
+{
+ /* Single white space is for Linksys APs */
+ if (essid_len == 1 && essid[0] == ' ')
+ return 1;
+
+ /* Otherwise, if the entire essid is 0, we assume it is hidden */
+ while (essid_len) {
+ essid_len--;
+ if (essid[essid_len] != '\0')
+ return 0;
+ }
+
+ return 1;
+}
+
+extern inline int rtllib_is_valid_mode(struct rtllib_device *ieee, int mode)
+{
+ /*
+ * It is possible for both access points and our device to support
+ * combinations of modes, so as long as there is one valid combination
+ * of ap/device supported modes, then return success
+ *
+ */
+ if ((mode & IEEE_A) &&
+ (ieee->modulation & RTLLIB_OFDM_MODULATION) &&
+ (ieee->freq_band & RTLLIB_52GHZ_BAND))
+ return 1;
+
+ if ((mode & IEEE_G) &&
+ (ieee->modulation & RTLLIB_OFDM_MODULATION) &&
+ (ieee->freq_band & RTLLIB_24GHZ_BAND))
+ return 1;
+
+ if ((mode & IEEE_B) &&
+ (ieee->modulation & RTLLIB_CCK_MODULATION) &&
+ (ieee->freq_band & RTLLIB_24GHZ_BAND))
+ return 1;
+
+ return 0;
+}
+
+extern inline int rtllib_get_hdrlen(u16 fc)
+{
+ int hdrlen = RTLLIB_3ADDR_LEN;
+
+ switch (WLAN_FC_GET_TYPE(fc)) {
+ case RTLLIB_FTYPE_DATA:
+ if ((fc & RTLLIB_FCTL_FROMDS) && (fc & RTLLIB_FCTL_TODS))
+ hdrlen = RTLLIB_4ADDR_LEN; /* Addr4 */
+ if(RTLLIB_QOS_HAS_SEQ(fc))
+ hdrlen += 2; /* QOS ctrl*/
+ break;
+ case RTLLIB_FTYPE_CTL:
+ switch (WLAN_FC_GET_STYPE(fc)) {
+ case RTLLIB_STYPE_CTS:
+ case RTLLIB_STYPE_ACK:
+ hdrlen = RTLLIB_1ADDR_LEN;
+ break;
+ default:
+ hdrlen = RTLLIB_2ADDR_LEN;
+ break;
+ }
+ break;
+ }
+
+ return hdrlen;
+}
+
+static inline u8 *rtllib_get_payload(struct rtllib_hdr *hdr)
+{
+ switch (rtllib_get_hdrlen(le16_to_cpu(hdr->frame_ctl))) {
+ case RTLLIB_1ADDR_LEN:
+ return ((struct rtllib_hdr_1addr *)hdr)->payload;
+ case RTLLIB_2ADDR_LEN:
+ return ((struct rtllib_hdr_2addr *)hdr)->payload;
+ case RTLLIB_3ADDR_LEN:
+ return ((struct rtllib_hdr_3addr *)hdr)->payload;
+ case RTLLIB_4ADDR_LEN:
+ return ((struct rtllib_hdr_4addr *)hdr)->payload;
+ }
+ return NULL;
+}
+
+static inline int rtllib_is_ofdm_rate(u8 rate)
+{
+ switch (rate & ~RTLLIB_BASIC_RATE_MASK) {
+ case RTLLIB_OFDM_RATE_6MB:
+ case RTLLIB_OFDM_RATE_9MB:
+ case RTLLIB_OFDM_RATE_12MB:
+ case RTLLIB_OFDM_RATE_18MB:
+ case RTLLIB_OFDM_RATE_24MB:
+ case RTLLIB_OFDM_RATE_36MB:
+ case RTLLIB_OFDM_RATE_48MB:
+ case RTLLIB_OFDM_RATE_54MB:
+ return 1;
+ }
+ return 0;
+}
+
+static inline int rtllib_is_cck_rate(u8 rate)
+{
+ switch (rate & ~RTLLIB_BASIC_RATE_MASK) {
+ case RTLLIB_CCK_RATE_1MB:
+ case RTLLIB_CCK_RATE_2MB:
+ case RTLLIB_CCK_RATE_5MB:
+ case RTLLIB_CCK_RATE_11MB:
+ return 1;
+ }
+ return 0;
+}
+
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10))
+static inline unsigned compare_ether_addr(const u8 *addr1, const u8 *addr2)
+{
+ const u16 *a = (const u16 *) addr1;
+ const u16 *b = (const u16 *) addr2;
+
+ BUILD_BUG_ON(ETH_ALEN != 6);
+ return ((a[0] ^ b[0]) | (a[1] ^ b[1]) | (a[2] ^ b[2])) != 0;
+}
+#endif
+
+/* rtllib.c */
+extern void free_rtllib(struct net_device *dev);
+extern struct net_device *alloc_rtllib(int sizeof_priv);
+
+extern int rtllib_set_encryption(struct rtllib_device *ieee);
+
+/* rtllib_tx.c */
+
+#ifdef _RTL8192_EXT_PATCH_
+extern int rtllib_encrypt_fragment(
+ struct rtllib_device *ieee,
+ struct sk_buff *frag,
+ int hdr_len, u8 is_mesh, u8 entry);
+#else
+extern int rtllib_encrypt_fragment(
+ struct rtllib_device *ieee,
+ struct sk_buff *frag,
+ int hdr_len);
+#endif
+
+extern int rtllib_xmit(struct sk_buff *skb, struct net_device *dev);
+extern int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev);
+#ifdef _RTL8192_EXT_PATCH_
+extern int rtllib_classify(struct sk_buff *skb, u8 bIsAmsdu);
+extern int rtllib_mesh_xmit(struct sk_buff *skb, struct net_device *dev);
+extern inline int rtllib_put_snap(u8 *data, u16 h_proto);
+#endif
+extern void rtllib_txb_free(struct rtllib_txb *);
+
+#ifdef ENABLE_AMSDU
+extern struct sk_buff *AMSDU_Aggregation(struct rtllib_device *ieee, struct sk_buff_head *pSendList);
+extern u8 AMSDU_GetAggregatibleList(struct rtllib_device *ieee, struct sk_buff *pCurSkb, struct sk_buff_head *pSendList, u8 queue_index);
+extern struct sk_buff *msh_AMSDU_Aggregation(struct rtllib_device *ieee, struct sk_buff_head *pSendList);
+extern u8 msh_AMSDU_GetAggregatibleList(struct rtllib_device *ieee, struct sk_buff *pCurSkb, struct sk_buff_head *pSendList, u8 queue_index);
+#endif
+
+/* rtllib_rx.c */
+extern int rtllib_rx(struct rtllib_device *ieee, struct sk_buff *skb,
+ struct rtllib_rx_stats *rx_stats);
+extern void rtllib_rx_mgt(struct rtllib_device *ieee,
+ struct sk_buff *skb,
+ struct rtllib_rx_stats *stats);
+extern void rtllib_rx_probe_rq(struct rtllib_device *ieee,
+ struct sk_buff *skb);
+extern int IsLegalChannel( struct rtllib_device *rtllib, u8 channel);
+
+/* rtllib_wx.c */
+extern int rtllib_wx_get_scan(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *key);
+#ifdef _RTL8192_EXT_PATCH_
+extern int rtllib_wx_set_encode(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *key, u8 is_mesh);
+extern int rtllib_wx_get_encode(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *key, u8 is_mesh);
+extern int rtllib_mesh_set_encode_ext(struct rtllib_device *ieee,
+ struct iw_point *encoding, struct iw_encode_ext *ext, int entry);
+#if WIRELESS_EXT >= 18
+extern int rtllib_wx_get_encode_ext(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data* wrqu, char *extra, u8 is_mesh);
+extern int rtllib_wx_set_encode_ext(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data* wrqu, char *extra, u8 is_mesh);
+#endif
+#else
+extern int rtllib_wx_set_encode(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *key);
+extern int rtllib_wx_get_encode(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *key);
+#if WIRELESS_EXT >= 18
+extern int rtllib_wx_get_encode_ext(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data* wrqu, char *extra);
+extern int rtllib_wx_set_encode_ext(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data* wrqu, char *extra);
+#endif
+#endif
+extern int rtllib_wx_set_auth(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ struct iw_param *data, char *extra);
+extern int rtllib_wx_set_mlme(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+extern int rtllib_wx_set_gen_ie(struct rtllib_device *ieee, u8 *ie, size_t len);
+
+/* rtllib_softmac.c */
+extern short rtllib_is_54g(struct rtllib_network *net);
+extern short rtllib_is_shortslot(struct rtllib_network net);
+extern int rtllib_rx_frame_softmac(struct rtllib_device *ieee, struct sk_buff *skb,
+ struct rtllib_rx_stats *rx_stats, u16 type,
+ u16 stype);
+extern void rtllib_softmac_new_net(struct rtllib_device *ieee, struct rtllib_network *net);
+
+void SendDisassociation(struct rtllib_device *ieee, bool deauth, u16 asRsn);
+extern void rtllib_softmac_xmit(struct rtllib_txb *txb, struct rtllib_device *ieee);
+
+extern void rtllib_stop_send_beacons(struct rtllib_device *ieee);
+extern void notify_wx_assoc_event(struct rtllib_device *ieee);
+extern void rtllib_softmac_check_all_nets(struct rtllib_device *ieee);
+extern void rtllib_start_bss(struct rtllib_device *ieee);
+extern void rtllib_start_master_bss(struct rtllib_device *ieee);
+extern void rtllib_start_ibss(struct rtllib_device *ieee);
+extern void rtllib_softmac_init(struct rtllib_device *ieee);
+extern void rtllib_softmac_free(struct rtllib_device *ieee);
+extern void rtllib_associate_abort(struct rtllib_device *ieee);
+extern void rtllib_disassociate(struct rtllib_device *ieee);
+extern void rtllib_stop_scan(struct rtllib_device *ieee);
+extern bool rtllib_act_scanning(struct rtllib_device *ieee, bool sync_scan);
+extern void rtllib_stop_scan_syncro(struct rtllib_device *ieee);
+extern void rtllib_start_scan_syncro(struct rtllib_device *ieee, u8 is_mesh);
+extern inline struct sk_buff *rtllib_probe_req(struct rtllib_device *ieee);
+extern u8 MgntQuery_MgntFrameTxRate(struct rtllib_device *ieee);
+extern void rtllib_sta_ps_send_null_frame(struct rtllib_device *ieee, short pwr);
+extern void rtllib_sta_wakeup(struct rtllib_device *ieee, short nl);
+extern void rtllib_sta_ps_send_pspoll_frame(struct rtllib_device *ieee);
+extern void rtllib_check_all_nets(struct rtllib_device *ieee);
+extern void rtllib_start_protocol(struct rtllib_device *ieee);
+extern void rtllib_stop_protocol(struct rtllib_device *ieee, u8 shutdown);
+
+extern void rtllib_EnableNetMonitorMode(struct net_device* dev, bool bInitState);
+extern void rtllib_DisableNetMonitorMode(struct net_device* dev, bool bInitState);
+extern void rtllib_EnableIntelPromiscuousMode(struct net_device* dev, bool bInitState);
+extern void rtllib_DisableIntelPromiscuousMode(struct net_device* dev, bool bInitState);
+#ifdef _RTL8192_EXT_PATCH_
+extern void rtllib_send_probe_requests(struct rtllib_device *ieee, u8 is_mesh);
+#else
+extern void rtllib_send_probe_requests(struct rtllib_device *ieee);
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+extern void rtllib_softmac_start_protocol(struct rtllib_device *ieee,u8 mesh_flag);
+extern void rtllib_softmac_stop_protocol(struct rtllib_device *ieee, u8 mesh_flag, u8 shutdown);
+extern void rtllib_start_mesh_protocol(struct rtllib_device *ieee);
+extern void rtllib_stop_mesh_protocol(struct rtllib_device *ieee);
+#else
+extern void rtllib_softmac_start_protocol(struct rtllib_device *ieee);
+extern void rtllib_softmac_stop_protocol(struct rtllib_device *ieee, u8 shutdown);
+#endif
+extern void rtllib_reset_queue(struct rtllib_device *ieee);
+extern void rtllib_wake_queue(struct rtllib_device *ieee);
+extern void rtllib_stop_queue(struct rtllib_device *ieee);
+extern void rtllib_wake_all_queues(struct rtllib_device *ieee);
+extern void rtllib_stop_all_queues(struct rtllib_device *ieee);
+extern struct sk_buff *rtllib_get_beacon(struct rtllib_device *ieee);
+extern void rtllib_start_send_beacons(struct rtllib_device *ieee);
+extern void rtllib_stop_send_beacons(struct rtllib_device *ieee);
+#ifdef _RTL8192_EXT_PATCH_
+extern int rtllib_wpa_supplicant_ioctl(struct rtllib_device *ieee, struct iw_point *p, u8 is_mesh);
+#else
+extern int rtllib_wpa_supplicant_ioctl(struct rtllib_device *ieee, struct iw_point *p);
+#endif
+extern void notify_wx_assoc_event(struct rtllib_device *ieee);
+extern void rtllib_ps_tx_ack(struct rtllib_device *ieee, short success);
+
+extern void softmac_mgmt_xmit(struct sk_buff *skb, struct rtllib_device *ieee);
+extern u16 rtllib_query_seqnum(struct rtllib_device*ieee, struct sk_buff* skb, u8* dst);
+extern u8 rtllib_ap_sec_type(struct rtllib_device *ieee);
+
+#ifdef _RTL8192_EXT_PATCH_
+extern void rtllib_resp_to_auth(struct rtllib_device *ieee, int s, u8* dest);
+extern void rtllib_associate_step1(struct rtllib_device *ieee,u8 * addr);
+extern bool rtllib_ext_prepare_to_joinmesh(struct rtllib_device *ieee, struct rtllib_network *pstat);
+extern u8 HTFilterMCSRate( struct rtllib_device* ieee, u8* pSupportMCS, u8* pOperateMCS);
+extern void HTUseDefaultSetting(struct rtllib_device* ieee);
+extern void rtllib_start_scan(struct rtllib_device *ieee);
+extern struct sk_buff* rtllib_ext_probe_resp_by_net(struct rtllib_device *ieee, u8 *dest, struct rtllib_network *net);
+extern int rtllib_network_init(struct rtllib_device *ieee, struct rtllib_probe_response *beacon, struct rtllib_network *network, struct rtllib_rx_stats *stats);
+extern struct rtllib_txb *rtllib_alloc_txb(int nr_frags, int txb_size, int gfp_mask);
+extern void rtllib_ext_send_11s_beacon(struct rtllib_device *ieee);
+#endif
+
+/* rtllib_crypt_ccmp&tkip&wep.c */
+extern void rtllib_tkip_null(void);
+extern void rtllib_wep_null(void);
+extern void rtllib_ccmp_null(void);
+
+/* rtllib_softmac_wx.c */
+
+extern int rtllib_wx_get_wap(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *ext);
+
+extern int rtllib_wx_set_wap(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *awrq,
+ char *extra);
+
+extern int rtllib_wx_get_essid(struct rtllib_device *ieee, struct iw_request_info *a,union iwreq_data *wrqu,char *b);
+
+extern int rtllib_wx_set_rate(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+
+extern int rtllib_wx_get_rate(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+
+extern int rtllib_wx_set_mode(struct rtllib_device *ieee, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b);
+
+extern int rtllib_wx_set_scan(struct rtllib_device *ieee, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b);
+
+extern int rtllib_wx_set_essid(struct rtllib_device *ieee,
+ struct iw_request_info *a,
+ union iwreq_data *wrqu, char *extra);
+
+extern int rtllib_wx_get_mode(struct rtllib_device *ieee, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b);
+
+extern int rtllib_wx_set_freq(struct rtllib_device *ieee, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b);
+
+#ifdef _RTL8192_EXT_PATCH_
+extern int rtllib_wx_get_freq(struct rtllib_device *ieee, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b, u8 is_mesh);
+#else
+extern int rtllib_wx_get_freq(struct rtllib_device *ieee, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b);
+#endif
+extern void rtllib_wx_sync_scan_wq(void *data);
+
+extern int rtllib_wx_set_rawtx(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+
+extern int rtllib_wx_get_name(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+
+extern int rtllib_wx_set_power(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+
+extern int rtllib_wx_get_power(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+
+extern int rtllib_wx_set_rts(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+
+extern int rtllib_wx_get_rts(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra);
+#ifdef _RTL8192_EXT_PATCH_
+extern void rtllib_sta_ps_send_null_frame(struct rtllib_device *ieee, short pwr);
+#endif
+#define MAX_RECEIVE_BUFFER_SIZE 9100
+extern void HTDebugHTCapability(u8* CapIE, u8* TitleString );
+extern void HTDebugHTInfo(u8* InfoIE, u8* TitleString);
+
+void HTSetConnectBwMode(struct rtllib_device* ieee, HT_CHANNEL_WIDTH Bandwidth, HT_EXTCHNL_OFFSET Offset);
+extern void HTUpdateDefaultSetting(struct rtllib_device* ieee);
+#ifdef _RTL8192_EXT_PATCH_
+extern void HTConstructCapabilityElement(struct rtllib_device* ieee, u8* posHTCap, u8* len, u8 isEncrypt, u8 bIsBcn);
+#else
+extern void HTConstructCapabilityElement(struct rtllib_device* ieee, u8* posHTCap, u8* len, u8 isEncrypt);
+#endif
+extern void HTConstructInfoElement(struct rtllib_device* ieee, u8* posHTInfo, u8* len, u8 isEncrypt);
+extern void HTConstructRT2RTAggElement(struct rtllib_device* ieee, u8* posRT2RTAgg, u8* len);
+extern void HTOnAssocRsp(struct rtllib_device *ieee);
+extern void HTInitializeHTInfo(struct rtllib_device* ieee);
+extern void HTInitializeBssDesc(PBSS_HT pBssHT);
+extern void HTResetSelfAndSavePeerSetting(struct rtllib_device* ieee, struct rtllib_network * pNetwork);
+extern void HTUpdateSelfAndPeerSetting(struct rtllib_device* ieee, struct rtllib_network * pNetwork);
+extern u8 HTGetHighestMCSRate(struct rtllib_device* ieee, u8* pMCSRateSet, u8* pMCSFilter);
+extern u8 MCS_FILTER_ALL[];
+extern u16 MCS_DATA_RATE[2][2][77] ;
+extern u8 HTCCheck(struct rtllib_device* ieee, u8* pFrame);
+extern void HTResetIOTSetting(PRT_HIGH_THROUGHPUT pHTInfo);
+extern bool IsHTHalfNmodeAPs(struct rtllib_device* ieee);
+extern u16 HTHalfMcsToDataRate(struct rtllib_device* ieee, u8 nMcsRate);
+extern u16 HTMcsToDataRate( struct rtllib_device* ieee, u8 nMcsRate);
+extern u16 TxCountToDataRate( struct rtllib_device* ieee, u8 nDataRate);
+extern int rtllib_rx_ADDBAReq( struct rtllib_device* ieee, struct sk_buff *skb);
+extern int rtllib_rx_ADDBARsp( struct rtllib_device* ieee, struct sk_buff *skb);
+extern int rtllib_rx_DELBA(struct rtllib_device* ieee,struct sk_buff *skb);
+extern void TsInitAddBA( struct rtllib_device* ieee, PTX_TS_RECORD pTS, u8 Policy, u8 bOverwritePending);
+extern void TsInitDelBA( struct rtllib_device* ieee, PTS_COMMON_INFO pTsCommonInfo, TR_SELECT TxRxSelect);
+extern void BaSetupTimeOut(unsigned long data);
+extern void TxBaInactTimeout(unsigned long data);
+extern void RxBaInactTimeout(unsigned long data);
+extern void ResetBaEntry( PBA_RECORD pBA);
+extern bool GetTs(
+ struct rtllib_device* ieee,
+ PTS_COMMON_INFO *ppTS,
+ u8* Addr,
+ u8 TID,
+ TR_SELECT TxRxSelect,
+ bool bAddNewTs
+ );
+extern void TSInitialize(struct rtllib_device *ieee);
+extern void TsStartAddBaProcess(struct rtllib_device* ieee, PTX_TS_RECORD pTxTS);
+extern void RemovePeerTS(struct rtllib_device* ieee, u8* Addr);
+extern void RemoveAllTS(struct rtllib_device* ieee);
+#ifdef _RTL8192_EXT_PATCH_
+extern void ResetAdmitTRStream(struct rtllib_device *ieee, u8 *Addr);
+#endif
+void rtllib_softmac_scan_syncro(struct rtllib_device *ieee, u8 is_mesh);
+
+extern const long rtllib_wlan_frequencies[];
+
+extern inline void rtllib_increment_scans(struct rtllib_device *ieee)
+{
+ ieee->scans++;
+}
+
+extern inline int rtllib_get_scans(struct rtllib_device *ieee)
+{
+ return ieee->scans;
+}
+
+static inline const char *escape_essid(const char *essid, u8 essid_len) {
+ static char escaped[IW_ESSID_MAX_SIZE * 2 + 1];
+ const char *s = essid;
+ char *d = escaped;
+
+ if (rtllib_is_empty_essid(essid, essid_len)) {
+ memcpy(escaped, "<hidden>", sizeof("<hidden>"));
+ return escaped;
+ }
+
+ essid_len = min(essid_len, (u8)IW_ESSID_MAX_SIZE);
+ while (essid_len--) {
+ if (*s == '\0') {
+ *d++ = '\\';
+ *d++ = '0';
+ s++;
+ } else {
+ *d++ = *s++;
+ }
+ }
+ *d = '\0';
+ return escaped;
+}
+
+#define CONVERT_RATE(_ieee, _MGN_RATE) (_MGN_RATE<MGN_MCS0)?(_MGN_RATE):(HTMcsToDataRate(_ieee, (u8)_MGN_RATE))
+
+#ifdef BUILT_IN_RTLLIB
+/* fun with the built-in rtllib stack... */
+int rtllib_init(void);
+void rtllib_exit(void);
+int rtllib_crypto_init(void);
+void rtllib_crypto_deinit(void);
+int rtllib_crypto_tkip_init(void);
+void rtllib_crypto_tkip_exit(void);
+int rtllib_crypto_ccmp_init(void);
+void rtllib_crypto_ccmp_exit(void);
+int rtllib_crypto_wep_init(void);
+void rtllib_crypto_wep_exit(void);
+#endif
+/* For the function is more related to hardware setting, it's better to use the
+ * ieee handler to refer to it.
+ */
+extern void rtllib_update_active_chan_map(struct rtllib_device *ieee);
+extern void rtllib_FlushRxTsPendingPkts(struct rtllib_device *ieee, PRX_TS_RECORD pTS);
+extern int rtllib_data_xmit(struct sk_buff *skb, struct net_device *dev);
+extern int rtllib_parse_info_param(struct rtllib_device *ieee,
+ struct rtllib_info_element *info_element,
+ u16 length,
+ struct rtllib_network *network,
+ struct rtllib_rx_stats *stats);
+
+void rtllib_indicate_packets(struct rtllib_device *ieee, struct rtllib_rxb** prxbIndicateArray,u8 index);
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+extern void IbssAgeFunction(struct rtllib_device *ieee);
+extern struct sta_info *GetStaInfo(struct rtllib_device *ieee, u8 *addr);
+extern void DelStaInfoList(struct rtllib_device *ieee);
+extern void DelStaInfo(struct rtllib_device *ieee, u8 *addr);
+#endif
+extern u8 HTFilterMCSRate( struct rtllib_device* ieee, u8* pSupportMCS, u8* pOperateMCS);
+extern void HTUseDefaultSetting(struct rtllib_device* ieee);
+#define RT_ASOC_RETRY_LIMIT 5
+u8 MgntQuery_TxRateExcludeCCKRates(struct rtllib_device *ieee);
+#ifdef _RTL8192_EXT_PATCH_
+extern unsigned int rtllib_MFIE_rate_len(struct rtllib_device *ieee);
+extern void rtllib_MFIE_Brate(struct rtllib_device *ieee, u8 **tag_p);
+extern void rtllib_MFIE_Grate(struct rtllib_device *ieee, u8 **tag_p);
+extern void rtllib_WMM_Info(struct rtllib_device *ieee, u8 **tag_p);
+#endif
+#ifdef THOMAS_TURBO
+extern void rtllib_TURBO_Info(struct rtllib_device *ieee, u8 **tag_p);
+#endif
+#ifndef ENABLE_LOCK_DEBUG
+#define SPIN_LOCK_IEEE(plock) spin_lock_irqsave((plock), flags)
+#define SPIN_UNLOCK_IEEE(plock) spin_unlock_irqrestore((plock), flags)
+#define SPIN_LOCK_IEEE_REORDER(plock) spin_lock_irqsave((plock), flags)
+#define SPIN_UNLOCK_IEEE_REORDER(plock) spin_unlock_irqrestore((plock), flags)
+#define SPIN_LOCK_IEEE_WPAX(plock) spin_lock_irqsave((plock), flags)
+#define SPIN_UNLOCK_IEEE_WPAX(plock) spin_unlock_irqrestore((plock), flags)
+#define SPIN_LOCK_IEEE_MGNTTX(plock) spin_lock_irqsave((plock), flags)
+#define SPIN_UNLOCK_IEEE_MGNTTX(plock) spin_unlock_irqrestore((plock), flags)
+#define SPIN_LOCK_IEEE_BCN(plock) spin_lock_irqsave((plock), flags)
+#define SPIN_UNLOCK_IEEE_BCN(plock) spin_unlock_irqrestore((plock), flags)
+#define SPIN_LOCK_MSH_STAINFO(plock) spin_lock_irqsave((plock), flags)
+#define SPIN_UNLOCK_MSH_STAINFO(plock) spin_unlock_irqrestore((plock), flags)
+#define SPIN_LOCK_MSH_PREQ(plock) spin_lock_irqsave((plock), flags)
+#define SPIN_UNLOCK_MSH_PREQ(plock) spin_unlock_irqrestore((plock), flags)
+#define SPIN_LOCK_MSH_QUEUE(plock) spin_lock_irqsave((plock), flags)
+#define SPIN_UNLOCK_MSH_QUEUE(plock) spin_unlock_irqrestore((plock), flags)
+#define SPIN_LOCK_PRIV_RFPS(plock) spin_lock_irqsave((plock), flags)
+#define SPIN_UNLOCK_PRIV_RFPS(plock) spin_unlock_irqrestore((plock), flags)
+#define SPIN_LOCK_PRIV_IRQTH(plock) spin_lock_irqsave((plock), flags)
+#define SPIN_UNLOCK_PRIV_IRQTH(plock) spin_unlock_irqrestore((plock), flags)
+#define SPIN_LOCK_PRIV_TX(plock) spin_lock_irqsave((plock), flags)
+#define SPIN_UNLOCK_PRIV_TX(plock) spin_unlock_irqrestore((plock), flags)
+#define SPIN_LOCK_PRIV_D3(plock) spin_lock_irqsave((plock), flags)
+#define SPIN_UNLOCK_PRIV_D3(plock) spin_unlock_irqrestore((plock), flags)
+#define SPIN_LOCK_PRIV_RF(plock) spin_lock_irqsave((plock), flags)
+#define SPIN_UNLOCK_PRIV_RF(plock) spin_unlock_irqrestore((plock), flags)
+#define SPIN_LOCK_PRIV_PS(plock) spin_lock_irqsave((plock), flags)
+#define SPIN_UNLOCK_PRIV_PS(plock) spin_unlock_irqrestore((plock), flags)
+#define SEM_DOWN_IEEE_WX(psem) down(psem)
+#define SEM_UP_IEEE_WX(psem) up(psem)
+#define SEM_DOWN_IEEE_SCAN(psem) down(psem)
+#define SEM_UP_IEEE_SCAN(psem) up(psem)
+#define SEM_DOWN_IEEE_IPS(psem) down(psem)
+#define SEM_UP_IEEE_IPS(psem) up(psem)
+#define SEM_DOWN_PRIV_WX(psem) down(psem)
+#define SEM_UP_PRIV_WX(psem) up(psem)
+#define SEM_DOWN_PRIV_RF(psem) down(psem)
+#define SEM_UP_PRIV_RF(psem) up(psem)
+#define MUTEX_LOCK_PRIV(pmutex) mutex_lock(pmutex)
+#define MUTEX_UNLOCK_PRIV(pmutex) mutex_unlock(pmutex)
+#endif
+#ifdef RTL8192S_WAPI_SUPPORT
+extern void WapiInit(struct rtllib_device *ieee);
+extern void WapiExit(struct rtllib_device *ieee);
+extern int WAPI_CreateEvent_Send(struct rtllib_device *ieee, u8 EventId, u8 *MacAddr, u8 *Buff, u16 BufLen);
+extern void WapiCreateAppEventAndSend(
+ struct rtllib_device *ieee,
+ u8 *pbuffer,
+ u16 buf_len,
+ u8 *DestAddr,
+ u8 bUpdateBK,
+ u8 bUpdateUSK,
+ u8 bUpdateMSK,
+ u8 RcvPktType,
+ u8 bDisconnect);
+extern void WapiReturnAllStaInfo(struct rtllib_device *ieee);
+extern void WapiReturnOneStaInfo(struct rtllib_device *ieee, u8 *MacAddr, u8 from_app);
+extern void WapiFreeAllStaInfo(struct rtllib_device *ieee);
+extern u8 SecIsWAIPacket(struct rtllib_device* ieee,struct sk_buff *skb);
+extern void WapiHandleRecvPacket(struct rtllib_device* ieee,struct sk_buff *skb,u8 WaiPkt);
+extern void WapiSetIE(struct rtllib_device *ieee);
+extern u32 WapiComparePN(u8 *PN1, u8 *PN2);
+extern u8 WapiIncreasePN(u8 *PN, u8 AddCount);
+extern void WapiGetLastRxUnicastPNForQoSData(
+ u8 UserPriority,
+ PRT_WAPI_STA_INFO pWapiStaInfo,
+ u8 *PNOut);
+extern void WapiSetLastRxUnicastPNForQoSData(
+ u8 UserPriority,
+ u8 *PNIn,
+ PRT_WAPI_STA_INFO pWapiStaInfo);
+extern u8 WapiCheckPnInSwDecrypt(
+ struct rtllib_device *ieee,
+ struct sk_buff *pskb);
+extern u8 WapiCheckDropForRxReorderCase(
+ struct rtllib_device *ieee,
+ struct rtllib_rxb* prxb);
+extern int SecSMS4HeaderFillIV(struct rtllib_device *ieee, struct sk_buff *pskb);
+extern void SecSWSMS4Encryption(
+ struct rtllib_device *ieee,
+ struct sk_buff *pskb);
+extern u8 SecSWSMS4Decryption(
+ struct rtllib_device *ieee,
+ struct sk_buff *pskb,
+ struct rtllib_rx_stats *rx_stats);
+
+extern int WapiSendWaiPacket(struct rtllib_device *ieee, struct sk_buff *pskb);
+extern void ieee80211_disassociate_from_app(struct rtllib_device *ieee);
+extern void ConstructWapiIEForInit(struct rtllib_device* ieee);
+extern void wapi_test_init(struct rtllib_device *ieee);
+#endif
+static inline void dump_buf(u8 *buf, u32 len)
+{
+ u32 i;
+ printk("-----------------Len %d----------------\n", len);
+ for(i=0; i<len; i++)
+ printk("%2.2x-", *(buf+i));
+ printk("\n");
+}
+#endif /* RTLLIB_H */
diff --git a/ubuntu/rtl8192se/rtllib/rtllib_crypt.c b/ubuntu/rtl8192se/rtllib/rtllib_crypt.c
new file mode 100755
index 00000000000..fcd26cc38f3
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtllib_crypt.c
@@ -0,0 +1,268 @@
+/*
+ * Host AP crypto routines
+ *
+ * Copyright (c) 2002-2003, Jouni Malinen <jkmaline@cc.hut.fi>
+ * Portions Copyright (C) 2004, Intel Corporation <jketreno@linux.intel.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation. See README and COPYING for
+ * more details.
+ *
+ */
+
+#include <linux/version.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <asm/string.h>
+#include <asm/errno.h>
+
+#include "rtllib.h"
+
+#ifndef BUILT_IN_RTLLIB
+MODULE_AUTHOR("Jouni Malinen");
+MODULE_DESCRIPTION("HostAP crypto");
+MODULE_LICENSE("GPL");
+#endif
+
+struct rtllib_crypto_alg {
+ struct list_head list;
+ struct rtllib_crypto_ops *ops;
+};
+
+
+struct rtllib_crypto {
+ struct list_head algs;
+ spinlock_t lock;
+};
+
+static struct rtllib_crypto *hcrypt;
+
+void rtllib_crypt_deinit_entries(struct rtllib_device *ieee,
+ int force)
+{
+ struct list_head *ptr, *n;
+ struct rtllib_crypt_data *entry;
+
+ for (ptr = ieee->crypt_deinit_list.next, n = ptr->next;
+ ptr != &ieee->crypt_deinit_list; ptr = n, n = ptr->next) {
+ entry = list_entry(ptr, struct rtllib_crypt_data, list);
+
+ if (atomic_read(&entry->refcnt) != 0 && !force)
+ continue;
+
+ list_del(ptr);
+
+ if (entry->ops) {
+ entry->ops->deinit(entry->priv);
+#ifndef BUILT_IN_RTLLIB
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+ module_put(entry->ops->owner);
+#else
+ __MOD_DEC_USE_COUNT(entry->ops->owner);
+#endif
+#endif
+ }
+ kfree(entry);
+ }
+}
+
+void rtllib_crypt_deinit_handler(unsigned long data)
+{
+ struct rtllib_device *ieee = (struct rtllib_device *)data;
+ unsigned long flags;
+
+ spin_lock_irqsave(&ieee->lock, flags);
+ rtllib_crypt_deinit_entries(ieee, 0);
+ if (!list_empty(&ieee->crypt_deinit_list)) {
+ printk(KERN_DEBUG "%s: entries remaining in delayed crypt "
+ "deletion list\n", ieee->dev->name);
+ ieee->crypt_deinit_timer.expires = jiffies + HZ;
+ add_timer(&ieee->crypt_deinit_timer);
+ }
+ spin_unlock_irqrestore(&ieee->lock, flags);
+
+}
+
+void rtllib_crypt_delayed_deinit(struct rtllib_device *ieee,
+ struct rtllib_crypt_data **crypt)
+{
+ struct rtllib_crypt_data *tmp;
+ unsigned long flags;
+
+ if (*crypt == NULL)
+ return;
+
+ tmp = *crypt;
+ *crypt = NULL;
+
+ /* must not run ops->deinit() while there may be pending encrypt or
+ * decrypt operations. Use a list of delayed deinits to avoid needing
+ * locking. */
+
+ spin_lock_irqsave(&ieee->lock, flags);
+ list_add(&tmp->list, &ieee->crypt_deinit_list);
+ if (!timer_pending(&ieee->crypt_deinit_timer)) {
+ ieee->crypt_deinit_timer.expires = jiffies + HZ;
+ add_timer(&ieee->crypt_deinit_timer);
+ }
+ spin_unlock_irqrestore(&ieee->lock, flags);
+}
+
+int rtllib_register_crypto_ops(struct rtllib_crypto_ops *ops)
+{
+ unsigned long flags;
+ struct rtllib_crypto_alg *alg;
+
+ if (hcrypt == NULL)
+ return -1;
+
+ alg = kmalloc(sizeof(*alg), GFP_KERNEL);
+ if (alg == NULL)
+ return -ENOMEM;
+
+ memset(alg, 0, sizeof(*alg));
+ alg->ops = ops;
+
+ spin_lock_irqsave(&hcrypt->lock, flags);
+ list_add(&alg->list, &hcrypt->algs);
+ spin_unlock_irqrestore(&hcrypt->lock, flags);
+
+ printk(KERN_DEBUG "rtllib_crypt: registered algorithm '%s'\n",
+ ops->name);
+
+ return 0;
+}
+
+int rtllib_unregister_crypto_ops(struct rtllib_crypto_ops *ops)
+{
+ unsigned long flags;
+ struct list_head *ptr;
+ struct rtllib_crypto_alg *del_alg = NULL;
+
+ if (hcrypt == NULL)
+ return -1;
+
+ spin_lock_irqsave(&hcrypt->lock, flags);
+ for (ptr = hcrypt->algs.next; ptr != &hcrypt->algs; ptr = ptr->next) {
+ struct rtllib_crypto_alg *alg =
+ (struct rtllib_crypto_alg *) ptr;
+ if (alg->ops == ops) {
+ list_del(&alg->list);
+ del_alg = alg;
+ break;
+ }
+ }
+ spin_unlock_irqrestore(&hcrypt->lock, flags);
+
+ if (del_alg) {
+ printk(KERN_DEBUG "rtllib_crypt: unregistered algorithm "
+ "'%s'\n", ops->name);
+ kfree(del_alg);
+ }
+
+ return del_alg ? 0 : -1;
+}
+
+
+struct rtllib_crypto_ops * rtllib_get_crypto_ops(const char *name)
+{
+ unsigned long flags;
+ struct list_head *ptr;
+ struct rtllib_crypto_alg *found_alg = NULL;
+
+ if (hcrypt == NULL)
+ return NULL;
+
+ spin_lock_irqsave(&hcrypt->lock, flags);
+ for (ptr = hcrypt->algs.next; ptr != &hcrypt->algs; ptr = ptr->next) {
+ struct rtllib_crypto_alg *alg =
+ (struct rtllib_crypto_alg *) ptr;
+ if (strcmp(alg->ops->name, name) == 0) {
+ found_alg = alg;
+ break;
+ }
+ }
+ spin_unlock_irqrestore(&hcrypt->lock, flags);
+
+ if (found_alg)
+ return found_alg->ops;
+ else
+ return NULL;
+}
+
+
+static void * rtllib_crypt_null_init(int keyidx) { return (void *) 1; }
+static void rtllib_crypt_null_deinit(void *priv) {}
+
+static struct rtllib_crypto_ops rtllib_crypt_null = {
+ .name = "NULL",
+ .init = rtllib_crypt_null_init,
+ .deinit = rtllib_crypt_null_deinit,
+ .encrypt_mpdu = NULL,
+ .decrypt_mpdu = NULL,
+ .encrypt_msdu = NULL,
+ .decrypt_msdu = NULL,
+ .set_key = NULL,
+ .get_key = NULL,
+ .extra_prefix_len = 0,
+ .extra_postfix_len = 0,
+ .owner = THIS_MODULE,
+};
+
+
+int __init rtllib_crypto_init(void)
+{
+ int ret = -ENOMEM;
+
+ hcrypt = kmalloc(sizeof(*hcrypt), GFP_KERNEL);
+ if (!hcrypt)
+ goto out;
+
+ memset(hcrypt, 0, sizeof(*hcrypt));
+ INIT_LIST_HEAD(&hcrypt->algs);
+ spin_lock_init(&hcrypt->lock);
+
+ ret = rtllib_register_crypto_ops(&rtllib_crypt_null);
+ if (ret < 0) {
+ kfree(hcrypt);
+ hcrypt = NULL;
+ }
+out:
+ return ret;
+}
+
+
+void __exit rtllib_crypto_deinit(void)
+{
+ struct list_head *ptr, *n;
+
+ if (hcrypt == NULL)
+ return;
+
+ for (ptr = hcrypt->algs.next, n = ptr->next; ptr != &hcrypt->algs;
+ ptr = n, n = ptr->next) {
+ struct rtllib_crypto_alg *alg =
+ (struct rtllib_crypto_alg *) ptr;
+ list_del(ptr);
+ printk(KERN_DEBUG "rtllib_crypt: unregistered algorithm "
+ "'%s' (deinit)\n", alg->ops->name);
+ kfree(alg);
+ }
+
+ kfree(hcrypt);
+}
+
+#ifndef BUILT_IN_RTLLIB
+EXPORT_SYMBOL_RSL(rtllib_crypt_deinit_entries);
+EXPORT_SYMBOL_RSL(rtllib_crypt_deinit_handler);
+EXPORT_SYMBOL_RSL(rtllib_crypt_delayed_deinit);
+
+EXPORT_SYMBOL_RSL(rtllib_register_crypto_ops);
+EXPORT_SYMBOL_RSL(rtllib_unregister_crypto_ops);
+EXPORT_SYMBOL_RSL(rtllib_get_crypto_ops);
+
+module_init(rtllib_crypto_init);
+module_exit(rtllib_crypto_deinit);
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/rtllib_crypt.h b/ubuntu/rtl8192se/rtllib/rtllib_crypt.h
new file mode 100755
index 00000000000..5f8990c2ae0
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtllib_crypt.h
@@ -0,0 +1,93 @@
+/*
+ * Original code based on Host AP (software wireless LAN access point) driver
+ * for Intersil Prism2/2.5/3.
+ *
+ * Copyright (c) 2001-2002, SSH Communications Security Corp and Jouni Malinen
+ * <jkmaline@cc.hut.fi>
+ * Copyright (c) 2002-2003, Jouni Malinen <jkmaline@cc.hut.fi>
+ *
+ * Adaption to a generic IEEE 802.11 stack by James Ketrenos
+ * <jketreno@linux.intel.com>
+ *
+ * Copyright (c) 2004, Intel Corporation
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation. See README and COPYING for
+ * more details.
+ */
+
+/*
+ * This file defines the interface to the rtllib crypto module.
+ */
+#ifndef RTLLIB_CRYPT_H
+#define RTLLIB_CRYPT_H
+
+#include <linux/skbuff.h>
+
+struct rtllib_crypto_ops {
+ const char *name;
+
+ /* init new crypto context (e.g., allocate private data space,
+ * select IV, etc.); returns NULL on failure or pointer to allocated
+ * private data on success */
+ void * (*init)(int keyidx);
+
+ /* deinitialize crypto context and free allocated private data */
+ void (*deinit)(void *priv);
+
+ /* encrypt/decrypt return < 0 on error or >= 0 on success. The return
+ * value from decrypt_mpdu is passed as the keyidx value for
+ * decrypt_msdu. skb must have enough head and tail room for the
+ * encryption; if not, error will be returned; these functions are
+ * called for all MPDUs (i.e., fragments).
+ */
+ int (*encrypt_mpdu)(struct sk_buff *skb, int hdr_len, void *priv);
+ int (*decrypt_mpdu)(struct sk_buff *skb, int hdr_len, void *priv);
+
+ /* These functions are called for full MSDUs, i.e. full frames.
+ * These can be NULL if full MSDU operations are not needed. */
+ int (*encrypt_msdu)(struct sk_buff *skb, int hdr_len, void *priv);
+ int (*decrypt_msdu)(struct sk_buff *skb, int keyidx, int hdr_len,
+ void *priv, struct rtllib_device* ieee);
+
+ int (*set_key)(void *key, int len, u8 *seq, void *priv);
+ int (*get_key)(void *key, int len, u8 *seq, void *priv);
+
+ /* procfs handler for printing out key information and possible
+ * statistics */
+ char * (*print_stats)(char *p, void *priv);
+
+ /* maximum number of bytes added by encryption; encrypt buf is
+ * allocated with extra_prefix_len bytes, copy of in_buf, and
+ * extra_postfix_len; encrypt need not use all this space, but
+ * the result must start at the beginning of the buffer and correct
+ * length must be returned */
+ int extra_prefix_len, extra_postfix_len;
+
+ struct module *owner;
+};
+
+struct rtllib_crypt_data {
+ struct list_head list; /* delayed deletion list */
+ struct rtllib_crypto_ops *ops;
+ void *priv;
+ atomic_t refcnt;
+};
+
+int rtllib_register_crypto_ops(struct rtllib_crypto_ops *ops);
+int rtllib_unregister_crypto_ops(struct rtllib_crypto_ops *ops);
+struct rtllib_crypto_ops * rtllib_get_crypto_ops(const char *name);
+void rtllib_crypt_deinit_entries(struct rtllib_device *, int);
+void rtllib_crypt_deinit_handler(unsigned long);
+void rtllib_crypt_delayed_deinit(struct rtllib_device *ieee,
+ struct rtllib_crypt_data **crypt);
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+#define offset_in_page(p) ((unsigned long)(p) & ~PAGE_MASK)
+#endif
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,4,31))
+#define crypto_alloc_tfm crypto_alloc_tfm_rsl
+#define crypto_free_tfm crypto_free_tfm_rsl
+#endif
+
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/rtllib_crypt_ccmp.c b/ubuntu/rtl8192se/rtllib/rtllib_crypt_ccmp.c
new file mode 100755
index 00000000000..cca67b2f62d
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtllib_crypt_ccmp.c
@@ -0,0 +1,544 @@
+/*
+ * Host AP crypt: host-based CCMP encryption implementation for Host AP driver
+ *
+ * Copyright (c) 2003-2004, Jouni Malinen <jkmaline@cc.hut.fi>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation. See README and COPYING for
+ * more details.
+ */
+
+#include <linux/version.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/random.h>
+#include <linux/skbuff.h>
+#include <linux/netdevice.h>
+#include <linux/if_ether.h>
+#include <linux/if_arp.h>
+#include <asm/string.h>
+#include <linux/wireless.h>
+#ifdef _RTL8192_EXT_PATCH_
+#include <linux/etherdevice.h>
+#endif
+#include "rtllib.h"
+
+#if defined(BUILT_IN_CRYPTO) || (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+#include "rtl_crypto.h"
+#else
+#include <linux/crypto.h>
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
+ #include <asm/scatterlist.h>
+#else
+ #include <linux/scatterlist.h>
+#endif
+
+#ifndef BUILT_IN_RTLLIB
+MODULE_AUTHOR("Jouni Malinen");
+MODULE_DESCRIPTION("Host AP crypt: CCMP");
+MODULE_LICENSE("GPL");
+#endif
+
+
+#define AES_BLOCK_LEN 16
+#define CCMP_HDR_LEN 8
+#define CCMP_MIC_LEN 8
+#define CCMP_TK_LEN 16
+#define CCMP_PN_LEN 6
+
+struct rtllib_ccmp_data {
+ u8 key[CCMP_TK_LEN];
+ int key_set;
+
+ u8 tx_pn[CCMP_PN_LEN];
+ u8 rx_pn[CCMP_PN_LEN];
+
+ u32 dot11RSNAStatsCCMPFormatErrors;
+ u32 dot11RSNAStatsCCMPReplays;
+ u32 dot11RSNAStatsCCMPDecryptErrors;
+
+ int key_idx;
+
+ struct crypto_tfm *tfm;
+
+ /* scratch buffers for virt_to_page() (crypto API) */
+ u8 tx_b0[AES_BLOCK_LEN], tx_b[AES_BLOCK_LEN],
+ tx_e[AES_BLOCK_LEN], tx_s0[AES_BLOCK_LEN];
+ u8 rx_b0[AES_BLOCK_LEN], rx_b[AES_BLOCK_LEN], rx_a[AES_BLOCK_LEN];
+};
+
+void rtllib_ccmp_aes_encrypt(struct crypto_tfm *tfm,
+ const u8 pt[16], u8 ct[16])
+{
+#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ struct scatterlist src, dst;
+
+#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+ src.page = virt_to_page(pt);
+ src.offset = offset_in_page(pt);
+ src.length = AES_BLOCK_LEN;
+
+ dst.page = virt_to_page(ct);
+ dst.offset = offset_in_page(ct);
+ dst.length = AES_BLOCK_LEN;
+
+#else
+ sg_init_one(&src, pt, AES_BLOCK_LEN);
+ sg_init_one(&dst, ct, AES_BLOCK_LEN);
+#endif
+
+ crypto_cipher_encrypt(tfm, &dst, &src, AES_BLOCK_LEN);
+#else
+ crypto_cipher_encrypt_one((void*)tfm, ct, pt);
+#endif
+}
+
+static void * rtllib_ccmp_init(int key_idx)
+{
+ struct rtllib_ccmp_data *priv;
+
+ priv = kmalloc(sizeof(*priv), GFP_ATOMIC);
+ if (priv == NULL)
+ goto fail;
+ memset(priv, 0, sizeof(*priv));
+ priv->key_idx = key_idx;
+
+#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ priv->tfm = crypto_alloc_tfm("aes", 0);
+ if (priv->tfm == NULL) {
+ printk(KERN_DEBUG "rtllib_crypt_ccmp: could not allocate "
+ "crypto API aes\n");
+ goto fail;
+ }
+ #else
+ priv->tfm = (void*)crypto_alloc_cipher("aes", 0, CRYPTO_ALG_ASYNC);
+ if (IS_ERR(priv->tfm)) {
+ printk(KERN_DEBUG "rtllib_crypt_ccmp: could not allocate "
+ "crypto API aes\n");
+ priv->tfm = NULL;
+ goto fail;
+ }
+ #endif
+ return priv;
+
+fail:
+ if (priv) {
+ if (priv->tfm)
+ #if defined(BUILT_IN_CRYPTO) || (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21))
+ crypto_free_tfm(priv->tfm);
+ #else
+ crypto_free_cipher((void*)priv->tfm);
+ #endif
+ kfree(priv);
+ }
+
+ return NULL;
+}
+
+
+static void rtllib_ccmp_deinit(void *priv)
+{
+ struct rtllib_ccmp_data *_priv = priv;
+ if (_priv && _priv->tfm)
+#if defined(BUILT_IN_CRYPTO) || (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21))
+ crypto_free_tfm(_priv->tfm);
+#else
+ crypto_free_cipher((void*)_priv->tfm);
+#endif
+ kfree(priv);
+}
+
+
+static inline void xor_block(u8 *b, u8 *a, size_t len)
+{
+ int i;
+ for (i = 0; i < len; i++)
+ b[i] ^= a[i];
+}
+
+
+
+static void ccmp_init_blocks(struct crypto_tfm *tfm,
+ struct rtllib_hdr_4addr *hdr,
+ u8 *pn, size_t dlen, u8 *b0, u8 *auth,
+ u8 *s0)
+{
+ u8 *pos, qc = 0;
+ size_t aad_len;
+ u16 fc;
+ int a4_included, qc_included;
+ u8 aad[2 * AES_BLOCK_LEN];
+
+ fc = le16_to_cpu(hdr->frame_ctl);
+ a4_included = ((fc & (RTLLIB_FCTL_TODS | RTLLIB_FCTL_FROMDS)) ==
+ (RTLLIB_FCTL_TODS | RTLLIB_FCTL_FROMDS));
+ /*
+ qc_included = ((WLAN_FC_GET_TYPE(fc) == RTLLIB_FTYPE_DATA) &&
+ (WLAN_FC_GET_STYPE(fc) & 0x08));
+ */
+ qc_included = ((WLAN_FC_GET_TYPE(fc) == RTLLIB_FTYPE_DATA) &&
+ (WLAN_FC_GET_STYPE(fc) & 0x80));
+ aad_len = 22;
+ if (a4_included)
+ aad_len += 6;
+ if (qc_included) {
+ pos = (u8 *) &hdr->addr4;
+ if (a4_included)
+ pos += 6;
+ qc = *pos & 0x0f;
+ aad_len += 2;
+ }
+ /* CCM Initial Block:
+ * Flag (Include authentication header, M=3 (8-octet MIC),
+ * L=1 (2-octet Dlen))
+ * Nonce: 0x00 | A2 | PN
+ * Dlen */
+ b0[0] = 0x59;
+ b0[1] = qc;
+ memcpy(b0 + 2, hdr->addr2, ETH_ALEN);
+ memcpy(b0 + 8, pn, CCMP_PN_LEN);
+ b0[14] = (dlen >> 8) & 0xff;
+ b0[15] = dlen & 0xff;
+
+ /* AAD:
+ * FC with bits 4..6 and 11..13 masked to zero; 14 is always one
+ * A1 | A2 | A3
+ * SC with bits 4..15 (seq#) masked to zero
+ * A4 (if present)
+ * QC (if present)
+ */
+ pos = (u8 *) hdr;
+ aad[0] = 0; /* aad_len >> 8 */
+ aad[1] = aad_len & 0xff;
+ aad[2] = pos[0] & 0x8f;
+ aad[3] = pos[1] & 0xc7;
+ memcpy(aad + 4, hdr->addr1, 3 * ETH_ALEN);
+ pos = (u8 *) &hdr->seq_ctl;
+ aad[22] = pos[0] & 0x0f;
+ aad[23] = 0; /* all bits masked */
+ memset(aad + 24, 0, 8);
+ if (a4_included)
+ memcpy(aad + 24, hdr->addr4, ETH_ALEN);
+ if (qc_included) {
+ aad[a4_included ? 30 : 24] = qc;
+ /* rest of QC masked */
+ }
+
+ /* Start with the first block and AAD */
+ rtllib_ccmp_aes_encrypt(tfm, b0, auth);
+ xor_block(auth, aad, AES_BLOCK_LEN);
+ rtllib_ccmp_aes_encrypt(tfm, auth, auth);
+ xor_block(auth, &aad[AES_BLOCK_LEN], AES_BLOCK_LEN);
+ rtllib_ccmp_aes_encrypt(tfm, auth, auth);
+ b0[0] &= 0x07;
+ b0[14] = b0[15] = 0;
+ rtllib_ccmp_aes_encrypt(tfm, b0, s0);
+}
+
+
+
+static int rtllib_ccmp_encrypt(struct sk_buff *skb, int hdr_len, void *priv)
+{
+ struct rtllib_ccmp_data *key = priv;
+ int data_len, i;
+ u8 *pos;
+ struct rtllib_hdr_4addr *hdr;
+ cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
+#ifdef _RTL8192_EXT_PATCH_
+ u8 broadcastaddr[6] = {0xff,0xff,0xff,0xff,0xff,0xff};
+ u8 is_broadcast_data = 0;
+#endif
+ if (skb_headroom(skb) < CCMP_HDR_LEN ||
+ skb_tailroom(skb) < CCMP_MIC_LEN ||
+ skb->len < hdr_len)
+ return -1;
+
+ data_len = skb->len - hdr_len;
+ pos = skb_push(skb, CCMP_HDR_LEN);
+ memmove(pos, pos + CCMP_HDR_LEN, hdr_len);
+ pos += hdr_len;
+
+ i = CCMP_PN_LEN - 1;
+ while (i >= 0) {
+ key->tx_pn[i]++;
+ if (key->tx_pn[i] != 0)
+ break;
+ i--;
+ }
+
+ *pos++ = key->tx_pn[5];
+ *pos++ = key->tx_pn[4];
+ *pos++ = 0;
+ *pos++ = (key->key_idx << 6) | (1 << 5) /* Ext IV included */;
+ *pos++ = key->tx_pn[3];
+ *pos++ = key->tx_pn[2];
+ *pos++ = key->tx_pn[1];
+ *pos++ = key->tx_pn[0];
+
+
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+#ifdef _RTL8192_EXT_PATCH_
+ if(tcb_desc->badhoc == 0){
+ if(memcmp(hdr->addr1,broadcastaddr,6) == 0){
+ is_broadcast_data = 1;
+ tcb_desc->bHwSec = 0;
+ }
+ if(is_multicast_ether_addr(hdr->addr1)){
+ tcb_desc->bHwSec = 0;
+ }
+ }
+#endif
+ if (!tcb_desc->bHwSec)
+ {
+ int blocks, last, len;
+ u8 *mic;
+ u8 *b0 = key->tx_b0;
+ u8 *b = key->tx_b;
+ u8 *e = key->tx_e;
+ u8 *s0 = key->tx_s0;
+
+ mic = skb_put(skb, CCMP_MIC_LEN);
+
+ ccmp_init_blocks(key->tfm, hdr, key->tx_pn, data_len, b0, b, s0);
+
+ blocks = (data_len + AES_BLOCK_LEN - 1) / AES_BLOCK_LEN;
+ last = data_len % AES_BLOCK_LEN;
+
+ for (i = 1; i <= blocks; i++) {
+ len = (i == blocks && last) ? last : AES_BLOCK_LEN;
+ /* Authentication */
+ xor_block(b, pos, len);
+ rtllib_ccmp_aes_encrypt(key->tfm, b, b);
+ /* Encryption, with counter */
+ b0[14] = (i >> 8) & 0xff;
+ b0[15] = i & 0xff;
+ rtllib_ccmp_aes_encrypt(key->tfm, b0, e);
+ xor_block(pos, e, len);
+ pos += len;
+ }
+
+ for (i = 0; i < CCMP_MIC_LEN; i++)
+ mic[i] = b[i] ^ s0[i];
+ }
+ return 0;
+}
+
+
+static int rtllib_ccmp_decrypt(struct sk_buff *skb, int hdr_len, void *priv)
+{
+ struct rtllib_ccmp_data *key = priv;
+ u8 keyidx, *pos;
+ struct rtllib_hdr_4addr *hdr;
+ cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
+ u8 pn[6];
+
+ if (skb->len < hdr_len + CCMP_HDR_LEN + CCMP_MIC_LEN) {
+ key->dot11RSNAStatsCCMPFormatErrors++;
+ return -1;
+ }
+
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+ pos = skb->data + hdr_len;
+ keyidx = pos[3];
+ if (!(keyidx & (1 << 5))) {
+ if (net_ratelimit()) {
+ printk(KERN_DEBUG "CCMP: received packet without ExtIV"
+ " flag from " MAC_FMT "\n", MAC_ARG(hdr->addr2));
+ }
+ key->dot11RSNAStatsCCMPFormatErrors++;
+ return -2;
+ }
+ keyidx >>= 6;
+ if (key->key_idx != keyidx) {
+ printk(KERN_DEBUG "CCMP: RX tkey->key_idx=%d frame "
+ "keyidx=%d priv=%p\n", key->key_idx, keyidx, priv);
+ return -6;
+ }
+ if (!key->key_set) {
+ if (net_ratelimit()) {
+ printk(KERN_DEBUG "CCMP: received packet from " MAC_FMT
+ " with keyid=%d that does not have a configured"
+ " key\n", MAC_ARG(hdr->addr2), keyidx);
+ }
+ return -3;
+ }
+
+ pn[0] = pos[7];
+ pn[1] = pos[6];
+ pn[2] = pos[5];
+ pn[3] = pos[4];
+ pn[4] = pos[1];
+ pn[5] = pos[0];
+ pos += 8;
+#ifndef _RTL8192_EXT_PATCH_
+ if (memcmp(pn, key->rx_pn, CCMP_PN_LEN) <= 0) {
+ if (net_ratelimit()) {
+ ;
+ }
+ key->dot11RSNAStatsCCMPReplays++;
+ return -4;
+ }
+#endif
+ if (!tcb_desc->bHwSec)
+ {
+ size_t data_len = skb->len - hdr_len - CCMP_HDR_LEN - CCMP_MIC_LEN;
+ u8 *mic = skb->data + skb->len - CCMP_MIC_LEN;
+ u8 *b0 = key->rx_b0;
+ u8 *b = key->rx_b;
+ u8 *a = key->rx_a;
+ int i, blocks, last, len;
+
+
+ ccmp_init_blocks(key->tfm, hdr, pn, data_len, b0, a, b);
+ xor_block(mic, b, CCMP_MIC_LEN);
+
+ blocks = (data_len + AES_BLOCK_LEN - 1) / AES_BLOCK_LEN;
+ last = data_len % AES_BLOCK_LEN;
+
+ for (i = 1; i <= blocks; i++) {
+ len = (i == blocks && last) ? last : AES_BLOCK_LEN;
+ /* Decrypt, with counter */
+ b0[14] = (i >> 8) & 0xff;
+ b0[15] = i & 0xff;
+ rtllib_ccmp_aes_encrypt(key->tfm, b0, b);
+ xor_block(pos, b, len);
+ /* Authentication */
+ xor_block(a, pos, len);
+ rtllib_ccmp_aes_encrypt(key->tfm, a, a);
+ pos += len;
+ }
+
+ if (memcmp(mic, a, CCMP_MIC_LEN) != 0) {
+ if (net_ratelimit()) {
+ printk(KERN_DEBUG "CCMP: decrypt failed: STA="
+ MAC_FMT "\n", MAC_ARG(hdr->addr2));
+ }
+ key->dot11RSNAStatsCCMPDecryptErrors++;
+ return -5;
+ }
+
+ memcpy(key->rx_pn, pn, CCMP_PN_LEN);
+ }
+ /* Remove hdr and MIC */
+ memmove(skb->data + CCMP_HDR_LEN, skb->data, hdr_len);
+ skb_pull(skb, CCMP_HDR_LEN);
+ skb_trim(skb, skb->len - CCMP_MIC_LEN);
+
+ return keyidx;
+}
+
+
+static int rtllib_ccmp_set_key(void *key, int len, u8 *seq, void *priv)
+{
+ struct rtllib_ccmp_data *data = priv;
+ int keyidx;
+ struct crypto_tfm *tfm = data->tfm;
+
+ keyidx = data->key_idx;
+ memset(data, 0, sizeof(*data));
+ data->key_idx = keyidx;
+ data->tfm = tfm;
+ if (len == CCMP_TK_LEN) {
+ memcpy(data->key, key, CCMP_TK_LEN);
+ data->key_set = 1;
+ if (seq) {
+ data->rx_pn[0] = seq[5];
+ data->rx_pn[1] = seq[4];
+ data->rx_pn[2] = seq[3];
+ data->rx_pn[3] = seq[2];
+ data->rx_pn[4] = seq[1];
+ data->rx_pn[5] = seq[0];
+ }
+ crypto_cipher_setkey((void*)data->tfm, data->key, CCMP_TK_LEN);
+ } else if (len == 0)
+ data->key_set = 0;
+ else
+ return -1;
+
+ return 0;
+}
+
+
+static int rtllib_ccmp_get_key(void *key, int len, u8 *seq, void *priv)
+{
+ struct rtllib_ccmp_data *data = priv;
+
+ if (len < CCMP_TK_LEN)
+ return -1;
+
+ if (!data->key_set)
+ return 0;
+ memcpy(key, data->key, CCMP_TK_LEN);
+
+ if (seq) {
+ seq[0] = data->tx_pn[5];
+ seq[1] = data->tx_pn[4];
+ seq[2] = data->tx_pn[3];
+ seq[3] = data->tx_pn[2];
+ seq[4] = data->tx_pn[1];
+ seq[5] = data->tx_pn[0];
+ }
+
+ return CCMP_TK_LEN;
+}
+
+
+static char * rtllib_ccmp_print_stats(char *p, void *priv)
+{
+ struct rtllib_ccmp_data *ccmp = priv;
+ p += sprintf(p, "key[%d] alg=CCMP key_set=%d "
+ "tx_pn=%02x%02x%02x%02x%02x%02x "
+ "rx_pn=%02x%02x%02x%02x%02x%02x "
+ "format_errors=%d replays=%d decrypt_errors=%d\n",
+ ccmp->key_idx, ccmp->key_set,
+ MAC_ARG(ccmp->tx_pn), MAC_ARG(ccmp->rx_pn),
+ ccmp->dot11RSNAStatsCCMPFormatErrors,
+ ccmp->dot11RSNAStatsCCMPReplays,
+ ccmp->dot11RSNAStatsCCMPDecryptErrors);
+
+ return p;
+}
+
+void rtllib_ccmp_null(void)
+{
+ return;
+}
+
+static struct rtllib_crypto_ops rtllib_crypt_ccmp = {
+ .name = "CCMP",
+ .init = rtllib_ccmp_init,
+ .deinit = rtllib_ccmp_deinit,
+ .encrypt_mpdu = rtllib_ccmp_encrypt,
+ .decrypt_mpdu = rtllib_ccmp_decrypt,
+ .encrypt_msdu = NULL,
+ .decrypt_msdu = NULL,
+ .set_key = rtllib_ccmp_set_key,
+ .get_key = rtllib_ccmp_get_key,
+ .print_stats = rtllib_ccmp_print_stats,
+ .extra_prefix_len = CCMP_HDR_LEN,
+ .extra_postfix_len = CCMP_MIC_LEN,
+ .owner = THIS_MODULE,
+};
+
+
+int __init rtllib_crypto_ccmp_init(void)
+{
+ return rtllib_register_crypto_ops(&rtllib_crypt_ccmp);
+}
+
+
+void __exit rtllib_crypto_ccmp_exit(void)
+{
+ rtllib_unregister_crypto_ops(&rtllib_crypt_ccmp);
+}
+
+#ifndef BUILT_IN_RTLLIB
+EXPORT_SYMBOL_RSL(rtllib_ccmp_null);
+
+module_init(rtllib_crypto_ccmp_init);
+module_exit(rtllib_crypto_ccmp_exit);
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/rtllib_crypt_tkip.c b/ubuntu/rtl8192se/rtllib/rtllib_crypt_tkip.c
new file mode 100755
index 00000000000..dc221e434e2
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtllib_crypt_tkip.c
@@ -0,0 +1,1047 @@
+/*
+ * Host AP crypt: host-based TKIP encryption implementation for Host AP driver
+ *
+ * Copyright (c) 2003-2004, Jouni Malinen <jkmaline@cc.hut.fi>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation. See README and COPYING for
+ * more details.
+ */
+
+#include <linux/version.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/random.h>
+#include <linux/skbuff.h>
+#include <linux/netdevice.h>
+#include <linux/if_ether.h>
+#include <linux/if_arp.h>
+#include <asm/string.h>
+#ifdef _RTL8192_EXT_PATCH_
+#include <linux/etherdevice.h>
+#endif
+#include "rtllib.h"
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,20))
+#endif
+
+
+#if defined(BUILT_IN_CRYPTO) || (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+#include "rtl_crypto.h"
+#else
+#include <linux/crypto.h>
+#endif
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
+ #include <asm/scatterlist.h>
+#else
+ #include <linux/scatterlist.h>
+#endif
+
+#include <linux/crc32.h>
+
+#ifndef BUILT_IN_RTLLIB
+MODULE_AUTHOR("Jouni Malinen");
+MODULE_DESCRIPTION("Host AP crypt: TKIP");
+MODULE_LICENSE("GPL");
+#endif
+
+
+struct rtllib_tkip_data {
+#define TKIP_KEY_LEN 32
+ u8 key[TKIP_KEY_LEN];
+ int key_set;
+
+ u32 tx_iv32;
+ u16 tx_iv16;
+ u16 tx_ttak[5];
+ int tx_phase1_done;
+
+ u32 rx_iv32;
+ u16 rx_iv16;
+ bool initialized;
+ u16 rx_ttak[5];
+ int rx_phase1_done;
+ u32 rx_iv32_new;
+ u16 rx_iv16_new;
+
+ u32 dot11RSNAStatsTKIPReplays;
+ u32 dot11RSNAStatsTKIPICVErrors;
+ u32 dot11RSNAStatsTKIPLocalMICFailures;
+
+ int key_idx;
+#if ( !defined(BUILT_IN_CRYPTO) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)) || (OPENSUSE_SLED)) )
+ struct crypto_blkcipher *rx_tfm_arc4;
+ struct crypto_hash *rx_tfm_michael;
+ struct crypto_blkcipher *tx_tfm_arc4;
+ struct crypto_hash *tx_tfm_michael;
+#else
+ struct crypto_tfm *tx_tfm_arc4;
+ struct crypto_tfm *tx_tfm_michael;
+ struct crypto_tfm *rx_tfm_arc4;
+ struct crypto_tfm *rx_tfm_michael;
+#endif
+ /* scratch buffers for virt_to_page() (crypto API) */
+ u8 rx_hdr[16], tx_hdr[16];
+};
+
+static void * rtllib_tkip_init(int key_idx)
+{
+ struct rtllib_tkip_data *priv;
+
+ priv = kmalloc(sizeof(*priv), GFP_ATOMIC);
+ if (priv == NULL)
+ goto fail;
+ memset(priv, 0, sizeof(*priv));
+ priv->key_idx = key_idx;
+#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ priv->tx_tfm_arc4 = crypto_alloc_tfm("arc4", 0);
+ if (priv->tx_tfm_arc4 == NULL) {
+ printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate "
+ "crypto API arc4\n");
+ goto fail;
+ }
+
+ priv->tx_tfm_michael = crypto_alloc_tfm("michael_mic", 0);
+ if (priv->tx_tfm_michael == NULL) {
+ printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate "
+ "crypto API michael_mic\n");
+ goto fail;
+ }
+
+ priv->rx_tfm_arc4 = crypto_alloc_tfm("arc4", 0);
+ if (priv->rx_tfm_arc4 == NULL) {
+ printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate "
+ "crypto API arc4\n");
+ goto fail;
+ }
+
+ priv->rx_tfm_michael = crypto_alloc_tfm("michael_mic", 0);
+ if (priv->rx_tfm_michael == NULL) {
+ printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate "
+ "crypto API michael_mic\n");
+ goto fail;
+ }
+#else
+ priv->tx_tfm_arc4 = crypto_alloc_blkcipher("ecb(arc4)", 0,
+ CRYPTO_ALG_ASYNC);
+ if (IS_ERR(priv->tx_tfm_arc4)) {
+ printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate "
+ "crypto API arc4\n");
+ priv->tx_tfm_arc4 = NULL;
+ goto fail;
+ }
+
+ priv->tx_tfm_michael = crypto_alloc_hash("michael_mic", 0,
+ CRYPTO_ALG_ASYNC);
+ if (IS_ERR(priv->tx_tfm_michael)) {
+ printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate "
+ "crypto API michael_mic\n");
+ priv->tx_tfm_michael = NULL;
+ goto fail;
+ }
+
+ priv->rx_tfm_arc4 = crypto_alloc_blkcipher("ecb(arc4)", 0,
+ CRYPTO_ALG_ASYNC);
+ if (IS_ERR(priv->rx_tfm_arc4)) {
+ printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate "
+ "crypto API arc4\n");
+ priv->rx_tfm_arc4 = NULL;
+ goto fail;
+ }
+
+ priv->rx_tfm_michael = crypto_alloc_hash("michael_mic", 0,
+ CRYPTO_ALG_ASYNC);
+ if (IS_ERR(priv->rx_tfm_michael)) {
+ printk(KERN_DEBUG "rtllib_crypt_tkip: could not allocate "
+ "crypto API michael_mic\n");
+ priv->rx_tfm_michael = NULL;
+ goto fail;
+ }
+#endif
+ return priv;
+
+fail:
+ if (priv) {
+#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ if (priv->tx_tfm_michael)
+ crypto_free_tfm(priv->tx_tfm_michael);
+ if (priv->tx_tfm_arc4)
+ crypto_free_tfm(priv->tx_tfm_arc4);
+ if (priv->rx_tfm_michael)
+ crypto_free_tfm(priv->rx_tfm_michael);
+ if (priv->rx_tfm_arc4)
+ crypto_free_tfm(priv->rx_tfm_arc4);
+
+#else
+ if (priv->tx_tfm_michael)
+ crypto_free_hash(priv->tx_tfm_michael);
+ if (priv->tx_tfm_arc4)
+ crypto_free_blkcipher(priv->tx_tfm_arc4);
+ if (priv->rx_tfm_michael)
+ crypto_free_hash(priv->rx_tfm_michael);
+ if (priv->rx_tfm_arc4)
+ crypto_free_blkcipher(priv->rx_tfm_arc4);
+#endif
+ kfree(priv);
+ }
+
+ return NULL;
+}
+
+
+static void rtllib_tkip_deinit(void *priv)
+{
+ struct rtllib_tkip_data *_priv = priv;
+#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ if (_priv->tx_tfm_michael)
+ crypto_free_tfm(_priv->tx_tfm_michael);
+ if (_priv->tx_tfm_arc4)
+ crypto_free_tfm(_priv->tx_tfm_arc4);
+ if (_priv->rx_tfm_michael)
+ crypto_free_tfm(_priv->rx_tfm_michael);
+ if (_priv->rx_tfm_arc4)
+ crypto_free_tfm(_priv->rx_tfm_arc4);
+#else
+ if (_priv) {
+ if (_priv->tx_tfm_michael)
+ crypto_free_hash(_priv->tx_tfm_michael);
+ if (_priv->tx_tfm_arc4)
+ crypto_free_blkcipher(_priv->tx_tfm_arc4);
+ if (_priv->rx_tfm_michael)
+ crypto_free_hash(_priv->rx_tfm_michael);
+ if (_priv->rx_tfm_arc4)
+ crypto_free_blkcipher(_priv->rx_tfm_arc4);
+ }
+#endif
+ kfree(priv);
+}
+
+
+static inline u16 RotR1(u16 val)
+{
+ return (val >> 1) | (val << 15);
+}
+
+
+static inline u8 Lo8(u16 val)
+{
+ return val & 0xff;
+}
+
+
+static inline u8 Hi8(u16 val)
+{
+ return val >> 8;
+}
+
+
+static inline u16 Lo16(u32 val)
+{
+ return val & 0xffff;
+}
+
+
+static inline u16 Hi16(u32 val)
+{
+ return val >> 16;
+}
+
+
+static inline u16 Mk16(u8 hi, u8 lo)
+{
+ return lo | (((u16) hi) << 8);
+}
+
+
+static inline u16 Mk16_le(u16 *v)
+{
+ return le16_to_cpu(*v);
+}
+
+
+static const u16 Sbox[256] =
+{
+ 0xC6A5, 0xF884, 0xEE99, 0xF68D, 0xFF0D, 0xD6BD, 0xDEB1, 0x9154,
+ 0x6050, 0x0203, 0xCEA9, 0x567D, 0xE719, 0xB562, 0x4DE6, 0xEC9A,
+ 0x8F45, 0x1F9D, 0x8940, 0xFA87, 0xEF15, 0xB2EB, 0x8EC9, 0xFB0B,
+ 0x41EC, 0xB367, 0x5FFD, 0x45EA, 0x23BF, 0x53F7, 0xE496, 0x9B5B,
+ 0x75C2, 0xE11C, 0x3DAE, 0x4C6A, 0x6C5A, 0x7E41, 0xF502, 0x834F,
+ 0x685C, 0x51F4, 0xD134, 0xF908, 0xE293, 0xAB73, 0x6253, 0x2A3F,
+ 0x080C, 0x9552, 0x4665, 0x9D5E, 0x3028, 0x37A1, 0x0A0F, 0x2FB5,
+ 0x0E09, 0x2436, 0x1B9B, 0xDF3D, 0xCD26, 0x4E69, 0x7FCD, 0xEA9F,
+ 0x121B, 0x1D9E, 0x5874, 0x342E, 0x362D, 0xDCB2, 0xB4EE, 0x5BFB,
+ 0xA4F6, 0x764D, 0xB761, 0x7DCE, 0x527B, 0xDD3E, 0x5E71, 0x1397,
+ 0xA6F5, 0xB968, 0x0000, 0xC12C, 0x4060, 0xE31F, 0x79C8, 0xB6ED,
+ 0xD4BE, 0x8D46, 0x67D9, 0x724B, 0x94DE, 0x98D4, 0xB0E8, 0x854A,
+ 0xBB6B, 0xC52A, 0x4FE5, 0xED16, 0x86C5, 0x9AD7, 0x6655, 0x1194,
+ 0x8ACF, 0xE910, 0x0406, 0xFE81, 0xA0F0, 0x7844, 0x25BA, 0x4BE3,
+ 0xA2F3, 0x5DFE, 0x80C0, 0x058A, 0x3FAD, 0x21BC, 0x7048, 0xF104,
+ 0x63DF, 0x77C1, 0xAF75, 0x4263, 0x2030, 0xE51A, 0xFD0E, 0xBF6D,
+ 0x814C, 0x1814, 0x2635, 0xC32F, 0xBEE1, 0x35A2, 0x88CC, 0x2E39,
+ 0x9357, 0x55F2, 0xFC82, 0x7A47, 0xC8AC, 0xBAE7, 0x322B, 0xE695,
+ 0xC0A0, 0x1998, 0x9ED1, 0xA37F, 0x4466, 0x547E, 0x3BAB, 0x0B83,
+ 0x8CCA, 0xC729, 0x6BD3, 0x283C, 0xA779, 0xBCE2, 0x161D, 0xAD76,
+ 0xDB3B, 0x6456, 0x744E, 0x141E, 0x92DB, 0x0C0A, 0x486C, 0xB8E4,
+ 0x9F5D, 0xBD6E, 0x43EF, 0xC4A6, 0x39A8, 0x31A4, 0xD337, 0xF28B,
+ 0xD532, 0x8B43, 0x6E59, 0xDAB7, 0x018C, 0xB164, 0x9CD2, 0x49E0,
+ 0xD8B4, 0xACFA, 0xF307, 0xCF25, 0xCAAF, 0xF48E, 0x47E9, 0x1018,
+ 0x6FD5, 0xF088, 0x4A6F, 0x5C72, 0x3824, 0x57F1, 0x73C7, 0x9751,
+ 0xCB23, 0xA17C, 0xE89C, 0x3E21, 0x96DD, 0x61DC, 0x0D86, 0x0F85,
+ 0xE090, 0x7C42, 0x71C4, 0xCCAA, 0x90D8, 0x0605, 0xF701, 0x1C12,
+ 0xC2A3, 0x6A5F, 0xAEF9, 0x69D0, 0x1791, 0x9958, 0x3A27, 0x27B9,
+ 0xD938, 0xEB13, 0x2BB3, 0x2233, 0xD2BB, 0xA970, 0x0789, 0x33A7,
+ 0x2DB6, 0x3C22, 0x1592, 0xC920, 0x8749, 0xAAFF, 0x5078, 0xA57A,
+ 0x038F, 0x59F8, 0x0980, 0x1A17, 0x65DA, 0xD731, 0x84C6, 0xD0B8,
+ 0x82C3, 0x29B0, 0x5A77, 0x1E11, 0x7BCB, 0xA8FC, 0x6DD6, 0x2C3A,
+};
+
+
+static inline u16 _S_(u16 v)
+{
+ u16 t = Sbox[Hi8(v)];
+ return Sbox[Lo8(v)] ^ ((t << 8) | (t >> 8));
+}
+
+
+#define PHASE1_LOOP_COUNT 8
+
+
+static void tkip_mixing_phase1(u16 *TTAK, const u8 *TK, const u8 *TA, u32 IV32)
+{
+ int i, j;
+
+ /* Initialize the 80-bit TTAK from TSC (IV32) and TA[0..5] */
+ TTAK[0] = Lo16(IV32);
+ TTAK[1] = Hi16(IV32);
+ TTAK[2] = Mk16(TA[1], TA[0]);
+ TTAK[3] = Mk16(TA[3], TA[2]);
+ TTAK[4] = Mk16(TA[5], TA[4]);
+
+ for (i = 0; i < PHASE1_LOOP_COUNT; i++) {
+ j = 2 * (i & 1);
+ TTAK[0] += _S_(TTAK[4] ^ Mk16(TK[1 + j], TK[0 + j]));
+ TTAK[1] += _S_(TTAK[0] ^ Mk16(TK[5 + j], TK[4 + j]));
+ TTAK[2] += _S_(TTAK[1] ^ Mk16(TK[9 + j], TK[8 + j]));
+ TTAK[3] += _S_(TTAK[2] ^ Mk16(TK[13 + j], TK[12 + j]));
+ TTAK[4] += _S_(TTAK[3] ^ Mk16(TK[1 + j], TK[0 + j])) + i;
+ }
+}
+
+
+static void tkip_mixing_phase2(u8 *WEPSeed, const u8 *TK, const u16 *TTAK,
+ u16 IV16)
+{
+ /* Make temporary area overlap WEP seed so that the final copy can be
+ * avoided on little endian hosts. */
+ u16 *PPK = (u16 *) &WEPSeed[4];
+
+ /* Step 1 - make copy of TTAK and bring in TSC */
+ PPK[0] = TTAK[0];
+ PPK[1] = TTAK[1];
+ PPK[2] = TTAK[2];
+ PPK[3] = TTAK[3];
+ PPK[4] = TTAK[4];
+ PPK[5] = TTAK[4] + IV16;
+
+ /* Step 2 - 96-bit bijective mixing using S-box */
+ PPK[0] += _S_(PPK[5] ^ Mk16_le((u16 *) &TK[0]));
+ PPK[1] += _S_(PPK[0] ^ Mk16_le((u16 *) &TK[2]));
+ PPK[2] += _S_(PPK[1] ^ Mk16_le((u16 *) &TK[4]));
+ PPK[3] += _S_(PPK[2] ^ Mk16_le((u16 *) &TK[6]));
+ PPK[4] += _S_(PPK[3] ^ Mk16_le((u16 *) &TK[8]));
+ PPK[5] += _S_(PPK[4] ^ Mk16_le((u16 *) &TK[10]));
+
+ PPK[0] += RotR1(PPK[5] ^ Mk16_le((u16 *) &TK[12]));
+ PPK[1] += RotR1(PPK[0] ^ Mk16_le((u16 *) &TK[14]));
+ PPK[2] += RotR1(PPK[1]);
+ PPK[3] += RotR1(PPK[2]);
+ PPK[4] += RotR1(PPK[3]);
+ PPK[5] += RotR1(PPK[4]);
+
+ /* Step 3 - bring in last of TK bits, assign 24-bit WEP IV value
+ * WEPSeed[0..2] is transmitted as WEP IV */
+ WEPSeed[0] = Hi8(IV16);
+ WEPSeed[1] = (Hi8(IV16) | 0x20) & 0x7F;
+ WEPSeed[2] = Lo8(IV16);
+ WEPSeed[3] = Lo8((PPK[5] ^ Mk16_le((u16 *) &TK[0])) >> 1);
+
+#ifdef __BIG_ENDIAN
+ {
+ int i;
+ for (i = 0; i < 6; i++)
+ PPK[i] = (PPK[i] << 8) | (PPK[i] >> 8);
+ }
+#endif
+}
+
+
+static int rtllib_tkip_encrypt(struct sk_buff *skb, int hdr_len, void *priv)
+{
+ struct rtllib_tkip_data *tkey = priv;
+ int len;
+ u8 *pos;
+ struct rtllib_hdr_4addr *hdr;
+ cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
+
+ #if ( !defined(BUILT_IN_CRYPTO) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)) || (OPENSUSE_SLED)) )
+ struct blkcipher_desc desc = {.tfm = tkey->tx_tfm_arc4};
+ int ret = 0;
+ #endif
+ u8 rc4key[16], *icv;
+ u32 crc;
+#ifdef _RTL8192_EXT_PATCH_
+ u8 broadcastaddr[6] = {0xff,0xff,0xff,0xff,0xff,0xff};
+ u8 is_broadcast_data = 0;
+#endif
+ struct scatterlist sg;
+
+ if (skb_headroom(skb) < 8 || skb_tailroom(skb) < 4 ||
+ skb->len < hdr_len)
+ return -1;
+
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+#ifdef _RTL8192_EXT_PATCH_
+ if(tcb_desc->badhoc == 0){
+ if(memcmp(hdr->addr1,broadcastaddr,6) == 0){
+ is_broadcast_data = 1;
+ tcb_desc->bHwSec = 0;
+ }
+ if(is_multicast_ether_addr(hdr->addr1)){
+ tcb_desc->bHwSec = 0;
+ }
+ }
+#endif
+#if 0
+printk("@@ tkey\n");
+printk("%x|", ((u32*)tkey->key)[0]);
+printk("%x|", ((u32*)tkey->key)[1]);
+printk("%x|", ((u32*)tkey->key)[2]);
+printk("%x|", ((u32*)tkey->key)[3]);
+printk("%x|", ((u32*)tkey->key)[4]);
+printk("%x|", ((u32*)tkey->key)[5]);
+printk("%x|", ((u32*)tkey->key)[6]);
+printk("%x\n", ((u32*)tkey->key)[7]);
+#endif
+
+ if (!tcb_desc->bHwSec)
+ {
+ if (!tkey->tx_phase1_done) {
+ tkip_mixing_phase1(tkey->tx_ttak, tkey->key, hdr->addr2,
+ tkey->tx_iv32);
+ tkey->tx_phase1_done = 1;
+ }
+ tkip_mixing_phase2(rc4key, tkey->key, tkey->tx_ttak, tkey->tx_iv16);
+ }
+ else
+ tkey->tx_phase1_done = 1;
+
+
+ len = skb->len - hdr_len;
+ pos = skb_push(skb, 8);
+ memmove(pos, pos + 8, hdr_len);
+ pos += hdr_len;
+
+ if (tcb_desc->bHwSec)
+ {
+ *pos++ = Hi8(tkey->tx_iv16);
+ *pos++ = (Hi8(tkey->tx_iv16) | 0x20) & 0x7F;
+ *pos++ = Lo8(tkey->tx_iv16);
+ }
+ else
+ {
+ *pos++ = rc4key[0];
+ *pos++ = rc4key[1];
+ *pos++ = rc4key[2];
+ }
+
+ *pos++ = (tkey->key_idx << 6) | (1 << 5) /* Ext IV included */;
+ *pos++ = tkey->tx_iv32 & 0xff;
+ *pos++ = (tkey->tx_iv32 >> 8) & 0xff;
+ *pos++ = (tkey->tx_iv32 >> 16) & 0xff;
+ *pos++ = (tkey->tx_iv32 >> 24) & 0xff;
+
+ if (!tcb_desc->bHwSec)
+ {
+ icv = skb_put(skb, 4);
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+ crc = ~crc32_le(~0, pos, len);
+#else
+ crc = ~ether_crc_le(len, pos);
+#endif
+ icv[0] = crc;
+ icv[1] = crc >> 8;
+ icv[2] = crc >> 16;
+ icv[3] = crc >> 24;
+
+#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+ sg.page = virt_to_page(pos);
+ sg.offset = offset_in_page(pos);
+ sg.length = len + 4;
+#else
+ sg_init_one(&sg, pos, len+4);
+#endif
+
+
+#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ crypto_cipher_setkey(tkey->tx_tfm_arc4, rc4key, 16);
+ crypto_cipher_encrypt(tkey->tx_tfm_arc4, &sg, &sg, len + 4);
+#else
+ crypto_blkcipher_setkey(tkey->tx_tfm_arc4, rc4key, 16);
+ ret= crypto_blkcipher_encrypt(&desc, &sg, &sg, len + 4);
+#endif
+
+ }
+
+ tkey->tx_iv16++;
+ if (tkey->tx_iv16 == 0) {
+ tkey->tx_phase1_done = 0;
+ tkey->tx_iv32++;
+ }
+
+ if (!tcb_desc->bHwSec)
+ #if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ return 0;
+ #else
+ return ret;
+ #endif
+ else
+ return 0;
+
+
+}
+
+static int rtllib_tkip_decrypt(struct sk_buff *skb, int hdr_len, void *priv)
+{
+ struct rtllib_tkip_data *tkey = priv;
+ u8 keyidx, *pos;
+ u32 iv32;
+ u16 iv16;
+ struct rtllib_hdr_4addr *hdr;
+ cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
+ #if ( !defined(BUILT_IN_CRYPTO) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)) || (OPENSUSE_SLED)) )
+ struct blkcipher_desc desc = {.tfm = tkey->rx_tfm_arc4};
+ #endif
+ u8 rc4key[16];
+ u8 icv[4];
+ u32 crc;
+ struct scatterlist sg;
+ int plen;
+ if (skb->len < hdr_len + 8 + 4)
+ return -1;
+
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+ pos = skb->data + hdr_len;
+ keyidx = pos[3];
+ if (!(keyidx & (1 << 5))) {
+ if (net_ratelimit()) {
+ printk(KERN_DEBUG "TKIP: received packet without ExtIV"
+ " flag from " MAC_FMT "\n", MAC_ARG(hdr->addr2));
+ }
+ return -2;
+ }
+ keyidx >>= 6;
+ if (tkey->key_idx != keyidx) {
+ printk(KERN_DEBUG "TKIP: RX tkey->key_idx=%d frame "
+ "keyidx=%d priv=%p\n", tkey->key_idx, keyidx, priv);
+ return -6;
+ }
+ if (!tkey->key_set) {
+ if (net_ratelimit()) {
+ printk(KERN_DEBUG "TKIP: received packet from " MAC_FMT
+ " with keyid=%d that does not have a configured"
+ " key\n", MAC_ARG(hdr->addr2), keyidx);
+ }
+ return -3;
+ }
+ iv16 = (pos[0] << 8) | pos[2];
+ iv32 = pos[4] | (pos[5] << 8) | (pos[6] << 16) | (pos[7] << 24);
+ pos += 8;
+
+ if (!tcb_desc->bHwSec || (skb->cb[0] == 1))
+ {
+ if ((iv32 < tkey->rx_iv32 ||
+ (iv32 == tkey->rx_iv32 && iv16 <= tkey->rx_iv16))&&tkey->initialized) {
+ if (net_ratelimit()) {
+ printk(KERN_DEBUG "TKIP: replay detected: STA=" MAC_FMT
+ " previous TSC %08x%04x received TSC "
+ "%08x%04x\n", MAC_ARG(hdr->addr2),
+ tkey->rx_iv32, tkey->rx_iv16, iv32, iv16);
+ }
+ tkey->dot11RSNAStatsTKIPReplays++;
+ return -4;
+ }
+ tkey->initialized = true;
+
+ if (iv32 != tkey->rx_iv32 || !tkey->rx_phase1_done) {
+ tkip_mixing_phase1(tkey->rx_ttak, tkey->key, hdr->addr2, iv32);
+ tkey->rx_phase1_done = 1;
+ }
+ tkip_mixing_phase2(rc4key, tkey->key, tkey->rx_ttak, iv16);
+
+ plen = skb->len - hdr_len - 12;
+
+#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+ sg.page = virt_to_page(pos);
+ sg.offset = offset_in_page(pos);
+ sg.length = plen + 4;
+#else
+ sg_init_one(&sg, pos, plen+4);
+#endif
+
+#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ crypto_cipher_setkey(tkey->rx_tfm_arc4, rc4key, 16);
+ crypto_cipher_decrypt(tkey->rx_tfm_arc4, &sg, &sg, plen + 4);
+#else
+ crypto_blkcipher_setkey(tkey->rx_tfm_arc4, rc4key, 16);
+ if (crypto_blkcipher_decrypt(&desc, &sg, &sg, plen + 4)) {
+ if (net_ratelimit()) {
+ printk(KERN_DEBUG ": TKIP: failed to decrypt "
+ "received packet from " MAC_FMT "\n",
+ MAC_ARG(hdr->addr2));
+ }
+ return -7;
+ }
+#endif
+
+ #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+ crc = ~crc32_le(~0, pos, plen);
+ #else
+ crc = ~ether_crc_le(plen, pos);
+ #endif
+ icv[0] = crc;
+ icv[1] = crc >> 8;
+ icv[2] = crc >> 16;
+ icv[3] = crc >> 24;
+
+ if (memcmp(icv, pos + plen, 4) != 0) {
+ if (iv32 != tkey->rx_iv32) {
+ /* Previously cached Phase1 result was already lost, so
+ * it needs to be recalculated for the next packet. */
+ tkey->rx_phase1_done = 0;
+ }
+ if (net_ratelimit()) {
+ printk(KERN_DEBUG "TKIP: ICV error detected: STA="
+ MAC_FMT "\n", MAC_ARG(hdr->addr2));
+ }
+ tkey->dot11RSNAStatsTKIPICVErrors++;
+ return -5;
+ }
+
+ }
+
+ /* Update real counters only after Michael MIC verification has
+ * completed */
+ tkey->rx_iv32_new = iv32;
+ tkey->rx_iv16_new = iv16;
+
+ /* Remove IV and ICV */
+ memmove(skb->data + 8, skb->data, hdr_len);
+ skb_pull(skb, 8);
+ skb_trim(skb, skb->len - 4);
+
+#ifdef JOHN_DUMP
+if( ((u16*)skb->data)[0] & 0x4000){
+ printk("@@ rx decrypted skb->data");
+ int i;
+ for(i=0;i<skb->len;i++){
+ if( (i%24)==0 ) printk("\n");
+ printk("%2x ", ((u8*)skb->data)[i]);
+ }
+ printk("\n");
+}
+#endif /*JOHN_DUMP*/
+ return keyidx;
+}
+
+
+#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+static int michael_mic(struct crypto_tfm * tfm_michael, u8 *key, u8 *hdr,
+ u8 *data, size_t data_len, u8 *mic)
+{
+ struct scatterlist sg[2];
+#if ( !defined(BUILT_IN_CRYPTO) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20) )
+ struct hash_desc desc;
+ int ret = 0;
+#endif
+
+ if (tfm_michael == NULL){
+ printk(KERN_WARNING "michael_mic: tfm_michael == NULL\n");
+ return -1;
+ }
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
+ sg[0].page = virt_to_page(hdr);
+ sg[0].offset = offset_in_page(hdr);
+ sg[0].length = 16;
+
+ sg[1].page = virt_to_page(data);
+ sg[1].offset = offset_in_page(data);
+ sg[1].length = data_len;
+#else
+ sg_init_table(sg, 2);
+ sg_set_buf(&sg[0], hdr, 16);
+ sg_set_buf(&sg[1], data, data_len);
+#endif
+
+#if ( defined(BUILT_IN_CRYPTO) || LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20) )
+ crypto_digest_init(tfm_michael);
+ crypto_digest_setkey(tfm_michael, key, 8);
+ crypto_digest_update(tfm_michael, sg, 2);
+ crypto_digest_final(tfm_michael, mic);
+ return 0;
+#else
+if (crypto_hash_setkey(tkey->tfm_michael, key, 8))
+ return -1;
+
+ desc.tfm = tkey->tfm_michael;
+ desc.flags = 0;
+ ret = crypto_hash_digest(&desc, sg, data_len + 16, mic);
+ return ret;
+#endif
+}
+#else
+static int michael_mic(struct crypto_hash *tfm_michael, u8 * key, u8 * hdr,
+ u8 * data, size_t data_len, u8 * mic)
+{
+ struct hash_desc desc;
+ struct scatterlist sg[2];
+
+ if (tfm_michael == NULL) {
+ printk(KERN_WARNING "michael_mic: tfm_michael == NULL\n");
+ return -1;
+ }
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
+ sg[0].page = virt_to_page(hdr);
+ sg[0].offset = offset_in_page(hdr);
+ sg[0].length = 16;
+
+ sg[1].page = virt_to_page(data);
+ sg[1].offset = offset_in_page(data);
+ sg[1].length = data_len;
+#else
+ sg_init_table(sg, 2);
+ sg_set_buf(&sg[0], hdr, 16);
+ sg_set_buf(&sg[1], data, data_len);
+#endif
+
+ if (crypto_hash_setkey(tfm_michael, key, 8))
+ return -1;
+
+ desc.tfm = tfm_michael;
+ desc.flags = 0;
+ return crypto_hash_digest(&desc, sg, data_len + 16, mic);
+}
+#endif
+
+
+
+static void michael_mic_hdr(struct sk_buff *skb, u8 *hdr)
+{
+ struct rtllib_hdr_4addr *hdr11;
+
+ hdr11 = (struct rtllib_hdr_4addr *) skb->data;
+ switch (le16_to_cpu(hdr11->frame_ctl) &
+ (RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) {
+ case RTLLIB_FCTL_TODS:
+ memcpy(hdr, hdr11->addr3, ETH_ALEN); /* DA */
+ memcpy(hdr + ETH_ALEN, hdr11->addr2, ETH_ALEN); /* SA */
+ break;
+ case RTLLIB_FCTL_FROMDS:
+ memcpy(hdr, hdr11->addr1, ETH_ALEN); /* DA */
+ memcpy(hdr + ETH_ALEN, hdr11->addr3, ETH_ALEN); /* SA */
+ break;
+ case RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS:
+ memcpy(hdr, hdr11->addr3, ETH_ALEN); /* DA */
+ memcpy(hdr + ETH_ALEN, hdr11->addr4, ETH_ALEN); /* SA */
+ break;
+ case 0:
+ memcpy(hdr, hdr11->addr1, ETH_ALEN); /* DA */
+ memcpy(hdr + ETH_ALEN, hdr11->addr2, ETH_ALEN); /* SA */
+ break;
+ }
+
+ hdr[12] = 0; /* priority */
+
+ hdr[13] = hdr[14] = hdr[15] = 0; /* reserved */
+}
+
+
+static int rtllib_michael_mic_add(struct sk_buff *skb, int hdr_len, void *priv)
+{
+ struct rtllib_tkip_data *tkey = priv;
+ u8 *pos;
+ struct rtllib_hdr_4addr *hdr;
+
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+
+ if (skb_tailroom(skb) < 8 || skb->len < hdr_len) {
+ printk(KERN_DEBUG "Invalid packet for Michael MIC add "
+ "(tailroom=%d hdr_len=%d skb->len=%d)\n",
+ skb_tailroom(skb), hdr_len, skb->len);
+ return -1;
+ }
+
+ michael_mic_hdr(skb, tkey->tx_hdr);
+
+ if(RTLLIB_QOS_HAS_SEQ(le16_to_cpu(hdr->frame_ctl))) {
+ tkey->tx_hdr[12] = *(skb->data + hdr_len - 2) & 0x07;
+ }
+ pos = skb_put(skb, 8);
+#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ if (michael_mic(tkey->tx_tfm_michael, &tkey->key[16], tkey->tx_hdr,
+ skb->data + hdr_len, skb->len - 8 - hdr_len, pos))
+#else
+ if (michael_mic(tkey->tx_tfm_michael, &tkey->key[16], tkey->tx_hdr,
+ skb->data + hdr_len, skb->len - 8 - hdr_len, pos))
+#endif
+ return -1;
+
+ return 0;
+}
+
+
+#if WIRELESS_EXT >= 18
+static void rtllib_michael_mic_failure(struct net_device *dev,
+ struct rtllib_hdr_4addr *hdr,
+ int keyidx)
+{
+ union iwreq_data wrqu;
+ struct iw_michaelmicfailure ev;
+
+ /* TODO: needed parameters: count, keyid, key type, TSC */
+ memset(&ev, 0, sizeof(ev));
+ ev.flags = keyidx & IW_MICFAILURE_KEY_ID;
+ if (hdr->addr1[0] & 0x01)
+ ev.flags |= IW_MICFAILURE_GROUP;
+ else
+ ev.flags |= IW_MICFAILURE_PAIRWISE;
+ ev.src_addr.sa_family = ARPHRD_ETHER;
+ memcpy(ev.src_addr.sa_data, hdr->addr2, ETH_ALEN);
+ memset(&wrqu, 0, sizeof(wrqu));
+ wrqu.data.length = sizeof(ev);
+ wireless_send_event(dev, IWEVMICHAELMICFAILURE, &wrqu, (char *) &ev);
+}
+#elif WIRELESS_EXT >= 15
+static void rtllib_michael_mic_failure(struct net_device *dev,
+ struct rtllib_hdr_4addr *hdr,
+ int keyidx)
+{
+ union iwreq_data wrqu;
+ char buf[128];
+
+ /* TODO: needed parameters: count, keyid, key type, TSC */
+ sprintf(buf, "MLME-MICHAELMICFAILURE.indication(keyid=%d %scast addr="
+ MAC_FMT ")", keyidx, hdr->addr1[0] & 0x01 ? "broad" : "uni",
+ MAC_ARG(hdr->addr2));
+ memset(&wrqu, 0, sizeof(wrqu));
+ wrqu.data.length = strlen(buf);
+ wireless_send_event(dev, IWEVCUSTOM, &wrqu, buf);
+}
+#else /* WIRELESS_EXT >= 15 */
+static inline void rtllib_michael_mic_failure(struct net_device *dev,
+ struct rtllib_hdr_4addr *hdr,
+ int keyidx)
+{
+}
+#endif /* WIRELESS_EXT >= 15 */
+
+static int rtllib_michael_mic_verify(struct sk_buff *skb, int keyidx,
+ int hdr_len, void *priv, struct rtllib_device* ieee)
+{
+ struct rtllib_tkip_data *tkey = priv;
+ u8 mic[8];
+ struct rtllib_hdr_4addr *hdr;
+
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+
+ if (!tkey->key_set)
+ return -1;
+
+ michael_mic_hdr(skb, tkey->rx_hdr);
+ if(RTLLIB_QOS_HAS_SEQ(le16_to_cpu(hdr->frame_ctl))) {
+ tkey->rx_hdr[12] = *(skb->data + hdr_len - 2) & 0x07;
+ }
+
+#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ if (michael_mic(tkey->rx_tfm_michael, &tkey->key[24], tkey->rx_hdr,
+ skb->data + hdr_len, skb->len - 8 - hdr_len, mic))
+#else
+ if (michael_mic(tkey->rx_tfm_michael, &tkey->key[24], tkey->rx_hdr,
+ skb->data + hdr_len, skb->len - 8 - hdr_len, mic))
+#endif
+ return -1;
+
+ if ((memcmp(mic, skb->data + skb->len - 8, 8) != 0)||(ieee->force_mic_error)) {
+ struct rtllib_hdr_4addr *hdr;
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+ printk(KERN_DEBUG "%s: Michael MIC verification failed for "
+ "MSDU from " MAC_FMT " keyidx=%d\n",
+ skb->dev ? skb->dev->name : "N/A", MAC_ARG(hdr->addr2),
+ keyidx);
+ printk("%d, force_mic_error = %d\n", (memcmp(mic, skb->data + skb->len - 8, 8) != 0),\
+ ieee->force_mic_error);
+ if (skb->dev) {
+ printk("skb->dev != NULL\n");
+ rtllib_michael_mic_failure(skb->dev, hdr, keyidx);
+ }
+ tkey->dot11RSNAStatsTKIPLocalMICFailures++;
+ ieee->force_mic_error = false;
+ return -1;
+ }
+
+ /* Update TSC counters for RX now that the packet verification has
+ * completed. */
+ tkey->rx_iv32 = tkey->rx_iv32_new;
+ tkey->rx_iv16 = tkey->rx_iv16_new;
+
+ skb_trim(skb, skb->len - 8);
+
+ return 0;
+}
+
+
+static int rtllib_tkip_set_key(void *key, int len, u8 *seq, void *priv)
+{
+ struct rtllib_tkip_data *tkey = priv;
+ int keyidx;
+#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ struct crypto_tfm *tfm = tkey->tx_tfm_michael;
+ struct crypto_tfm *tfm2 = tkey->tx_tfm_arc4;
+ struct crypto_tfm *tfm3 = tkey->rx_tfm_michael;
+ struct crypto_tfm *tfm4 = tkey->rx_tfm_arc4;
+#else
+ struct crypto_hash *tfm = tkey->tx_tfm_michael;
+ struct crypto_blkcipher *tfm2 = tkey->tx_tfm_arc4;
+ struct crypto_hash *tfm3 = tkey->rx_tfm_michael;
+ struct crypto_blkcipher *tfm4 = tkey->rx_tfm_arc4;
+#endif
+
+ keyidx = tkey->key_idx;
+ memset(tkey, 0, sizeof(*tkey));
+ tkey->key_idx = keyidx;
+#if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ tkey->tx_tfm_michael = tfm;
+ tkey->tx_tfm_arc4 = tfm2;
+ tkey->rx_tfm_michael = tfm3;
+ tkey->rx_tfm_arc4 = tfm4;
+#else
+ tkey->tx_tfm_michael = tfm;
+ tkey->tx_tfm_arc4 = tfm2;
+ tkey->rx_tfm_michael = tfm3;
+ tkey->rx_tfm_arc4 = tfm4;
+#endif
+
+ if (len == TKIP_KEY_LEN) {
+ memcpy(tkey->key, key, TKIP_KEY_LEN);
+ tkey->key_set = 1;
+ tkey->tx_iv16 = 1; /* TSC is initialized to 1 */
+ if (seq) {
+ tkey->rx_iv32 = (seq[5] << 24) | (seq[4] << 16) |
+ (seq[3] << 8) | seq[2];
+ tkey->rx_iv16 = (seq[1] << 8) | seq[0];
+ }
+ } else if (len == 0)
+ tkey->key_set = 0;
+ else
+ return -1;
+
+ return 0;
+}
+
+
+static int rtllib_tkip_get_key(void *key, int len, u8 *seq, void *priv)
+{
+ struct rtllib_tkip_data *tkey = priv;
+
+ if (len < TKIP_KEY_LEN)
+ return -1;
+
+ if (!tkey->key_set)
+ return 0;
+ memcpy(key, tkey->key, TKIP_KEY_LEN);
+
+ if (seq) {
+ /* Return the sequence number of the last transmitted frame. */
+ u16 iv16 = tkey->tx_iv16;
+ u32 iv32 = tkey->tx_iv32;
+ if (iv16 == 0)
+ iv32--;
+ iv16--;
+ seq[0] = tkey->tx_iv16;
+ seq[1] = tkey->tx_iv16 >> 8;
+ seq[2] = tkey->tx_iv32;
+ seq[3] = tkey->tx_iv32 >> 8;
+ seq[4] = tkey->tx_iv32 >> 16;
+ seq[5] = tkey->tx_iv32 >> 24;
+ }
+
+ return TKIP_KEY_LEN;
+}
+
+
+static char * rtllib_tkip_print_stats(char *p, void *priv)
+{
+ struct rtllib_tkip_data *tkip = priv;
+ p += sprintf(p, "key[%d] alg=TKIP key_set=%d "
+ "tx_pn=%02x%02x%02x%02x%02x%02x "
+ "rx_pn=%02x%02x%02x%02x%02x%02x "
+ "replays=%d icv_errors=%d local_mic_failures=%d\n",
+ tkip->key_idx, tkip->key_set,
+ (tkip->tx_iv32 >> 24) & 0xff,
+ (tkip->tx_iv32 >> 16) & 0xff,
+ (tkip->tx_iv32 >> 8) & 0xff,
+ tkip->tx_iv32 & 0xff,
+ (tkip->tx_iv16 >> 8) & 0xff,
+ tkip->tx_iv16 & 0xff,
+ (tkip->rx_iv32 >> 24) & 0xff,
+ (tkip->rx_iv32 >> 16) & 0xff,
+ (tkip->rx_iv32 >> 8) & 0xff,
+ tkip->rx_iv32 & 0xff,
+ (tkip->rx_iv16 >> 8) & 0xff,
+ tkip->rx_iv16 & 0xff,
+ tkip->dot11RSNAStatsTKIPReplays,
+ tkip->dot11RSNAStatsTKIPICVErrors,
+ tkip->dot11RSNAStatsTKIPLocalMICFailures);
+ return p;
+}
+
+
+static struct rtllib_crypto_ops rtllib_crypt_tkip = {
+ .name = "TKIP",
+ .init = rtllib_tkip_init,
+ .deinit = rtllib_tkip_deinit,
+ .encrypt_mpdu = rtllib_tkip_encrypt,
+ .decrypt_mpdu = rtllib_tkip_decrypt,
+ .encrypt_msdu = rtllib_michael_mic_add,
+ .decrypt_msdu = rtllib_michael_mic_verify,
+ .set_key = rtllib_tkip_set_key,
+ .get_key = rtllib_tkip_get_key,
+ .print_stats = rtllib_tkip_print_stats,
+ .extra_prefix_len = 4 + 4, /* IV + ExtIV */
+ .extra_postfix_len = 8 + 4, /* MIC + ICV */
+ .owner = THIS_MODULE,
+};
+
+
+int __init rtllib_crypto_tkip_init(void)
+{
+ return rtllib_register_crypto_ops(&rtllib_crypt_tkip);
+}
+
+
+void __exit rtllib_crypto_tkip_exit(void)
+{
+ rtllib_unregister_crypto_ops(&rtllib_crypt_tkip);
+}
+
+void rtllib_tkip_null(void)
+{
+ return;
+}
+
+#ifndef BUILT_IN_RTLLIB
+EXPORT_SYMBOL_RSL(rtllib_tkip_null);
+
+module_init(rtllib_crypto_tkip_init);
+module_exit(rtllib_crypto_tkip_exit);
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/rtllib_crypt_wep.c b/ubuntu/rtl8192se/rtllib/rtllib_crypt_wep.c
new file mode 100755
index 00000000000..eef8738b723
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtllib_crypt_wep.c
@@ -0,0 +1,404 @@
+/*
+ * Host AP crypt: host-based WEP encryption implementation for Host AP driver
+ *
+ * Copyright (c) 2002-2004, Jouni Malinen <jkmaline@cc.hut.fi>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation. See README and COPYING for
+ * more details.
+ */
+
+#include <linux/version.h>
+#include <linux/module.h>
+#include <linux/init.h>
+#include <linux/slab.h>
+#include <linux/random.h>
+#include <linux/skbuff.h>
+#include <asm/string.h>
+#ifdef _RTL8192_EXT_PATCH_
+#include <linux/etherdevice.h>
+#endif
+#include "rtllib.h"
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,20))
+#endif
+
+
+#if defined(BUILT_IN_CRYPTO) || (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+#include "rtl_crypto.h"
+#else
+#include <linux/crypto.h>
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
+ #include <asm/scatterlist.h>
+#else
+ #include <linux/scatterlist.h>
+#endif
+#include <linux/crc32.h>
+/*
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+#include "rtl_crypto.h"
+#else
+#include <linux/crypto.h>
+#endif
+
+#include <asm/scatterlist.h>
+#include <linux/crc32.h>
+*/
+#ifndef BUILT_IN_RTLLIB
+MODULE_AUTHOR("Jouni Malinen");
+MODULE_DESCRIPTION("Host AP crypt: WEP");
+MODULE_LICENSE("GPL");
+#endif
+struct prism2_wep_data {
+ u32 iv;
+#define WEP_KEY_LEN 13
+ u8 key[WEP_KEY_LEN + 1];
+ u8 key_len;
+ u8 key_idx;
+ #if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ struct crypto_tfm *tfm;
+ #else
+ struct crypto_blkcipher *tx_tfm;
+ struct crypto_blkcipher *rx_tfm;
+ #endif
+};
+
+
+static void * prism2_wep_init(int keyidx)
+{
+ struct prism2_wep_data *priv;
+
+ priv = kmalloc(sizeof(*priv), GFP_ATOMIC);
+ if (priv == NULL)
+ goto fail;
+ memset(priv, 0, sizeof(*priv));
+ priv->key_idx = keyidx;
+
+ #if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ priv->tfm = crypto_alloc_tfm("arc4", 0);
+ if (priv->tfm == NULL) {
+ printk(KERN_DEBUG "rtllib_crypt_wep: could not allocate "
+ "crypto API arc4\n");
+ goto fail;
+ }
+ #else
+ priv->tx_tfm = crypto_alloc_blkcipher("ecb(arc4)", 0, CRYPTO_ALG_ASYNC);
+ if (IS_ERR(priv->tx_tfm)) {
+ printk(KERN_DEBUG "rtllib_crypt_wep: could not allocate "
+ "crypto API arc4\n");
+ priv->tx_tfm = NULL;
+ goto fail;
+ }
+ priv->rx_tfm = crypto_alloc_blkcipher("ecb(arc4)", 0, CRYPTO_ALG_ASYNC);
+ if (IS_ERR(priv->rx_tfm)) {
+ printk(KERN_DEBUG "rtllib_crypt_wep: could not allocate "
+ "crypto API arc4\n");
+ priv->rx_tfm = NULL;
+ goto fail;
+ }
+ #endif
+
+ /* start WEP IV from a random value */
+ get_random_bytes(&priv->iv, 4);
+
+ return priv;
+
+fail:
+ #if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ if (priv) {
+ if (priv->tfm)
+ crypto_free_tfm(priv->tfm);
+ kfree(priv);
+ }
+ #else
+ if (priv) {
+ if (priv->tx_tfm)
+ crypto_free_blkcipher(priv->tx_tfm);
+ if (priv->rx_tfm)
+ crypto_free_blkcipher(priv->rx_tfm);
+ kfree(priv);
+ }
+ #endif
+ return NULL;
+}
+
+
+static void prism2_wep_deinit(void *priv)
+{
+ struct prism2_wep_data *_priv = priv;
+ #if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ if (_priv && _priv->tfm)
+ crypto_free_tfm(_priv->tfm);
+ #else
+ if (_priv) {
+ if (_priv->tx_tfm)
+ crypto_free_blkcipher(_priv->tx_tfm);
+ if (_priv->rx_tfm)
+ crypto_free_blkcipher(_priv->rx_tfm);
+ }
+ #endif
+ kfree(priv);
+}
+
+/* Perform WEP encryption on given skb that has at least 4 bytes of headroom
+ * for IV and 4 bytes of tailroom for ICV. Both IV and ICV will be transmitted,
+ * so the payload length increases with 8 bytes.
+ *
+ * WEP frame payload: IV + TX key idx, RC4(data), ICV = RC4(CRC32(data))
+ */
+static int prism2_wep_encrypt(struct sk_buff *skb, int hdr_len, void *priv)
+{
+ struct prism2_wep_data *wep = priv;
+ u32 klen, len;
+ u8 key[WEP_KEY_LEN + 3];
+ u8 *pos;
+ cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
+ #if ( !defined(BUILT_IN_CRYPTO) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)) || (OPENSUSE_SLED)) )
+ struct blkcipher_desc desc = {.tfm = wep->tx_tfm};
+ #endif
+ u32 crc;
+ u8 *icv;
+#ifdef _RTL8192_EXT_PATCH_
+ u8 broadcastaddr[6] = {0xff,0xff,0xff,0xff,0xff,0xff};
+ struct rtllib_hdr_3addr* tmp_header = (struct rtllib_hdr_3addr*)(skb->data);
+ u8 is_broadcast_data = 0;
+ u8 is_multicast_data = 0;
+#endif
+ struct scatterlist sg;
+ if (skb_headroom(skb) < 4 || skb_tailroom(skb) < 4 ||
+ skb->len < hdr_len){
+ printk("Error!!!headroom=%d tailroom=%d skblen=%d hdr_len=%d\n",skb_headroom(skb),skb_tailroom(skb),skb->len,hdr_len);
+ return -1;
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if(tcb_desc->badhoc==0){
+ if(memcmp(tmp_header->addr1,broadcastaddr,6) == 0){
+ is_broadcast_data = 1;
+ tcb_desc->bHwSec = 0;
+ }
+ if(is_multicast_ether_addr(tmp_header->addr1)){
+ is_multicast_data = 1;
+ tcb_desc->bHwSec = 0;
+ }
+ }
+#endif
+ len = skb->len - hdr_len;
+ pos = skb_push(skb, 4);
+ memmove(pos, pos + 4, hdr_len);
+ pos += hdr_len;
+
+ klen = 3 + wep->key_len;
+
+ wep->iv++;
+
+ /* Fluhrer, Mantin, and Shamir have reported weaknesses in the key
+ * scheduling algorithm of RC4. At least IVs (KeyByte + 3, 0xff, N)
+ * can be used to speedup attacks, so avoid using them. */
+ if ((wep->iv & 0xff00) == 0xff00) {
+ u8 B = (wep->iv >> 16) & 0xff;
+ if (B >= 3 && B < klen)
+ wep->iv += 0x0100;
+ }
+
+ /* Prepend 24-bit IV to RC4 key and TX frame */
+ *pos++ = key[0] = (wep->iv >> 16) & 0xff;
+ *pos++ = key[1] = (wep->iv >> 8) & 0xff;
+ *pos++ = key[2] = wep->iv & 0xff;
+ *pos++ = wep->key_idx << 6;
+
+ /* Copy rest of the WEP key (the secret part) */
+ memcpy(key + 3, wep->key, wep->key_len);
+
+ if (!tcb_desc->bHwSec)
+ {
+
+ /* Append little-endian CRC32 and encrypt it to produce ICV */
+ #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+ crc = ~crc32_le(~0, pos, len);
+ #else
+ crc = ~ether_crc_le(len, pos);
+ #endif
+ icv = skb_put(skb, 4);
+ icv[0] = crc;
+ icv[1] = crc >> 8;
+ icv[2] = crc >> 16;
+ icv[3] = crc >> 24;
+
+ #if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+ sg.page = virt_to_page(pos);
+ sg.offset = offset_in_page(pos);
+ sg.length = len + 4;
+ #else
+ sg_init_one(&sg, pos, len+4);
+ #endif
+ #if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ crypto_cipher_setkey(wep->tfm, key, klen);
+ crypto_cipher_encrypt(wep->tfm, &sg, &sg, len + 4);
+ return 0;
+ #else
+ crypto_blkcipher_setkey(wep->tx_tfm, key, klen);
+ return crypto_blkcipher_encrypt(&desc, &sg, &sg, len + 4);
+ #endif
+ }
+
+ return 0;
+}
+
+
+/* Perform WEP decryption on given buffer. Buffer includes whole WEP part of
+ * the frame: IV (4 bytes), encrypted payload (including SNAP header),
+ * ICV (4 bytes). len includes both IV and ICV.
+ *
+ * Returns 0 if frame was decrypted successfully and ICV was correct and -1 on
+ * failure. If frame is OK, IV and ICV will be removed.
+ */
+static int prism2_wep_decrypt(struct sk_buff *skb, int hdr_len, void *priv)
+{
+ struct prism2_wep_data *wep = priv;
+ u32 klen, plen;
+ u8 key[WEP_KEY_LEN + 3];
+ u8 keyidx, *pos;
+ cb_desc *tcb_desc = (cb_desc *)(skb->cb + MAX_DEV_ADDR_SIZE);
+ #if ( !defined(BUILT_IN_CRYPTO) && ((LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)) || (OPENSUSE_SLED)) )
+ struct blkcipher_desc desc = {.tfm = wep->rx_tfm};
+ #endif
+ u32 crc;
+ u8 icv[4];
+ struct scatterlist sg;
+ if (skb->len < hdr_len + 8)
+ return -1;
+
+ pos = skb->data + hdr_len;
+ key[0] = *pos++;
+ key[1] = *pos++;
+ key[2] = *pos++;
+ keyidx = *pos++ >> 6;
+ if (keyidx != wep->key_idx)
+ return -1;
+
+ klen = 3 + wep->key_len;
+
+ /* Copy rest of the WEP key (the secret part) */
+ memcpy(key + 3, wep->key, wep->key_len);
+
+ /* Apply RC4 to data and compute CRC32 over decrypted data */
+ plen = skb->len - hdr_len - 8;
+
+ if (!tcb_desc->bHwSec)
+ {
+ #if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+ sg.page = virt_to_page(pos);
+ sg.offset = offset_in_page(pos);
+ sg.length = plen + 4;
+ #else
+ sg_init_one(&sg, pos, plen+4);
+ #endif
+ #if ( defined(BUILT_IN_CRYPTO) || ((LINUX_VERSION_CODE < KERNEL_VERSION(2,6,21)) && (!OPENSUSE_SLED)) )
+ crypto_cipher_setkey(wep->tfm, key, klen);
+ crypto_cipher_decrypt(wep->tfm, &sg, &sg, plen + 4);
+ #else
+ crypto_blkcipher_setkey(wep->rx_tfm, key, klen);
+ if (crypto_blkcipher_decrypt(&desc, &sg, &sg, plen + 4))
+ return -7;
+ #endif
+ #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+ crc = ~crc32_le(~0, pos, plen);
+ #else
+ crc = ~ether_crc_le(plen, pos);
+ #endif
+ icv[0] = crc;
+ icv[1] = crc >> 8;
+ icv[2] = crc >> 16;
+ icv[3] = crc >> 24;
+ if (memcmp(icv, pos + plen, 4) != 0) {
+ /* ICV mismatch - drop frame */
+ return -2;
+ }
+ }
+ /* Remove IV and ICV */
+ memmove(skb->data + 4, skb->data, hdr_len);
+ skb_pull(skb, 4);
+ skb_trim(skb, skb->len - 4);
+
+ return 0;
+}
+
+
+static int prism2_wep_set_key(void *key, int len, u8 *seq, void *priv)
+{
+ struct prism2_wep_data *wep = priv;
+
+ if (len < 0 || len > WEP_KEY_LEN)
+ return -1;
+
+ memcpy(wep->key, key, len);
+ wep->key_len = len;
+
+ return 0;
+}
+
+
+static int prism2_wep_get_key(void *key, int len, u8 *seq, void *priv)
+{
+ struct prism2_wep_data *wep = priv;
+
+ if (len < wep->key_len)
+ return -1;
+
+ memcpy(key, wep->key, wep->key_len);
+
+ return wep->key_len;
+}
+
+
+static char * prism2_wep_print_stats(char *p, void *priv)
+{
+ struct prism2_wep_data *wep = priv;
+ p += sprintf(p, "key[%d] alg=WEP len=%d\n",
+ wep->key_idx, wep->key_len);
+ return p;
+}
+
+
+static struct rtllib_crypto_ops rtllib_crypt_wep = {
+ .name = "WEP",
+ .init = prism2_wep_init,
+ .deinit = prism2_wep_deinit,
+ .encrypt_mpdu = prism2_wep_encrypt,
+ .decrypt_mpdu = prism2_wep_decrypt,
+ .encrypt_msdu = NULL,
+ .decrypt_msdu = NULL,
+ .set_key = prism2_wep_set_key,
+ .get_key = prism2_wep_get_key,
+ .print_stats = prism2_wep_print_stats,
+ .extra_prefix_len = 4, /* IV */
+ .extra_postfix_len = 4, /* ICV */
+ .owner = THIS_MODULE,
+};
+
+
+int __init rtllib_crypto_wep_init(void)
+{
+ return rtllib_register_crypto_ops(&rtllib_crypt_wep);
+}
+
+
+void __exit rtllib_crypto_wep_exit(void)
+{
+ rtllib_unregister_crypto_ops(&rtllib_crypt_wep);
+}
+
+void rtllib_wep_null(void)
+{
+ return;
+}
+
+#ifndef BUILT_IN_RTLLIB
+EXPORT_SYMBOL_RSL(rtllib_wep_null);
+
+module_init(rtllib_crypto_wep_init);
+module_exit(rtllib_crypto_wep_exit);
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/rtllib_module.c b/ubuntu/rtl8192se/rtllib/rtllib_module.c
new file mode 100755
index 00000000000..3c7bfdc548c
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtllib_module.c
@@ -0,0 +1,587 @@
+/*******************************************************************************
+
+ Copyright(c) 2004 Intel Corporation. All rights reserved.
+
+ Portions of this file are based on the WEP enablement code provided by the
+ Host AP project hostap-drivers v0.1.3
+ Copyright (c) 2001-2002, SSH Communications Security Corp and Jouni Malinen
+ <jkmaline@cc.hut.fi>
+ Copyright (c) 2002-2003, Jouni Malinen <jkmaline@cc.hut.fi>
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2 of the GNU General Public License as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program; if not, write to the Free Software Foundation, Inc., 59
+ Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ The full GNU General Public License is included in this distribution in the
+ file called LICENSE.
+
+ Contact Information:
+ James P. Ketrenos <ipw2100-admin@linux.intel.com>
+ Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
+
+*******************************************************************************/
+
+#include <linux/compiler.h>
+#include <linux/errno.h>
+#include <linux/if_arp.h>
+#include <linux/in6.h>
+#include <linux/in.h>
+#include <linux/ip.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/netdevice.h>
+#include <linux/pci.h>
+#include <linux/proc_fs.h>
+#include <linux/skbuff.h>
+#include <linux/slab.h>
+#include <linux/tcp.h>
+#include <linux/types.h>
+#include <linux/version.h>
+#include <linux/wireless.h>
+#include <linux/etherdevice.h>
+#include <asm/uaccess.h>
+#include <net/arp.h>
+
+#include "rtllib.h"
+
+
+#ifndef BUILT_IN_RTLLIB
+MODULE_DESCRIPTION("802.11 data/management/control stack");
+MODULE_AUTHOR("Copyright (C) 2004 Intel Corporation <jketreno@linux.intel.com>");
+MODULE_LICENSE("GPL");
+#endif
+
+#define DRV_NAME "rtllib"
+
+#ifdef CONFIG_CFG_80211
+#ifdef CONFIG_RTL_RFKILL
+static inline void rtllib_rfkill_poll(struct wiphy *wiphy)
+{
+ struct rtllib_device *rtllib = NULL;
+
+ rtllib = (struct rtllib_device *)wiphy_priv(wiphy);
+
+ rtllib = (struct rtllib_device *)netdev_priv_rsl(rtllib->dev);
+
+ if (rtllib->rtllib_rfkill_poll)
+ rtllib->rtllib_rfkill_poll(rtllib->dev);
+}
+#else
+static inline void rtllib_rfkill_poll(struct wiphy *wiphy) {}
+#endif
+struct cfg80211_ops rtllib_config_ops = {.rfkill_poll = rtllib_rfkill_poll };
+void *rtllib_wiphy_privid = &rtllib_wiphy_privid;
+#endif
+
+void _setup_timer( struct timer_list* ptimer, void* fun, unsigned long data )
+{
+ ptimer->function = fun;
+ ptimer->data = data;
+ init_timer( ptimer );
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+static inline int rtllib_mesh_networks_allocate(struct rtllib_device *ieee)
+{
+ if (ieee->mesh_networks)
+ return 0;
+
+ ieee->mesh_networks = kmalloc(
+ MAX_NETWORK_COUNT * sizeof(struct rtllib_network),
+ GFP_KERNEL);
+
+ if (!ieee->mesh_networks) {
+ printk(KERN_WARNING "%s: Out of memory allocating beacons\n",
+ ieee->dev->name);
+ return -ENOMEM;
+ }
+
+ memset(ieee->mesh_networks, 0,
+ MAX_NETWORK_COUNT * sizeof(struct rtllib_network));
+
+ return 0;
+}
+
+static inline void rtllib_mesh_networks_free(struct rtllib_device *ieee)
+{
+ if (!ieee->mesh_networks)
+ return;
+ kfree(ieee->mesh_networks);
+ ieee->mesh_networks = NULL;
+}
+#endif
+
+static inline int rtllib_networks_allocate(struct rtllib_device *ieee)
+{
+ if (ieee->networks)
+ return 0;
+
+#ifndef RTK_DMP_PLATFORM
+ ieee->networks = kmalloc(
+ MAX_NETWORK_COUNT * sizeof(struct rtllib_network),
+ GFP_KERNEL);
+#else
+ ieee->networks = dvr_malloc(MAX_NETWORK_COUNT * sizeof(struct rtllib_network));
+#endif
+ if (!ieee->networks) {
+ printk(KERN_WARNING "%s: Out of memory allocating beacons\n",
+ ieee->dev->name);
+ return -ENOMEM;
+ }
+
+ memset(ieee->networks, 0,
+ MAX_NETWORK_COUNT * sizeof(struct rtllib_network));
+
+ return 0;
+}
+
+static inline void rtllib_networks_free(struct rtllib_device *ieee)
+{
+ if (!ieee->networks)
+ return;
+#ifndef RTK_DMP_PLATFORM
+ kfree(ieee->networks);
+#else
+ dvr_free(ieee->networks);
+#endif
+ ieee->networks = NULL;
+}
+
+static inline void rtllib_networks_initialize(struct rtllib_device *ieee)
+{
+ int i;
+
+ INIT_LIST_HEAD(&ieee->network_free_list);
+ INIT_LIST_HEAD(&ieee->network_list);
+ for (i = 0; i < MAX_NETWORK_COUNT; i++)
+ list_add_tail(&ieee->networks[i].list, &ieee->network_free_list);
+#ifdef _RTL8192_EXT_PATCH_
+ INIT_LIST_HEAD(&ieee->mesh_network_free_list);
+ INIT_LIST_HEAD(&ieee->mesh_network_list);
+ for (i = 0; i < MAX_NETWORK_COUNT; i++)
+ list_add_tail(&ieee->mesh_networks[i].list, &ieee->mesh_network_free_list);
+#endif
+}
+
+#if defined CONFIG_CFG_80211
+static bool rtllib_wdev_alloc(struct rtllib_device *ieee, int sizeof_priv)
+{
+ int priv_size;
+ struct rtllib_device *rtllib = NULL;
+
+ priv_size = ALIGN(sizeof(struct rtllib_device),NETDEV_ALIGN) + sizeof_priv;
+
+ ieee->wdev.wiphy = wiphy_new(&rtllib_config_ops, priv_size);
+ if (!ieee->wdev.wiphy) {
+ RTLLIB_ERROR("Unable to allocate wiphy.\n");
+ goto out_err_new;
+ }
+
+ rtllib = (struct rtllib_device *)wiphy_priv(ieee->wdev.wiphy);
+ rtllib->dev = ieee->dev;
+
+ ieee->dev->ieee80211_ptr = &ieee->wdev;
+ ieee->wdev.iftype = NL80211_IFTYPE_STATION;
+
+ /* Fill-out wiphy structure bits we know... Not enough info
+ * here to call set_wiphy_dev or set MAC address or channel info
+ * -- have to do that in ->ndo_init... */
+ ieee->wdev.wiphy->privid = rtllib_wiphy_privid;
+
+ ieee->wdev.wiphy->max_scan_ssids = 1;
+ ieee->wdev.wiphy->max_scan_ie_len = 0;
+ ieee->wdev.wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION) | BIT(NL80211_IFTYPE_ADHOC);
+
+ return true;
+
+out_err_new:
+ wiphy_free(ieee->wdev.wiphy);
+ return false;
+}
+#endif
+
+struct net_device *alloc_rtllib(int sizeof_priv)
+{
+ struct rtllib_device *ieee = NULL;
+ struct net_device *dev;
+ int i,err;
+
+ RTLLIB_DEBUG_INFO("Initializing...\n");
+
+ dev = alloc_etherdev(sizeof(struct rtllib_device) + sizeof_priv);
+ if (!dev) {
+ RTLLIB_ERROR("Unable to network device.\n");
+ goto failed;
+ }
+ ieee = (struct rtllib_device *)netdev_priv_rsl(dev);
+ memset(ieee, 0, sizeof(struct rtllib_device)+sizeof_priv);
+ ieee->dev = dev;
+
+#ifdef CONFIG_CFG_80211
+ if(!rtllib_wdev_alloc(ieee, sizeof_priv))
+ goto failed;
+#endif
+ err = rtllib_networks_allocate(ieee);
+ if (err) {
+ RTLLIB_ERROR("Unable to allocate beacon storage: %d\n",
+ err);
+ goto failed;
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ err = rtllib_mesh_networks_allocate(ieee);
+ if (err) {
+ RTLLIB_ERROR("Unable to allocate mesh_beacon storage: %d\n",
+ err);
+ goto failed;
+ }
+#endif
+ rtllib_networks_initialize(ieee);
+
+
+ /* Default fragmentation threshold is maximum payload size */
+ ieee->fts = DEFAULT_FTS;
+ ieee->scan_age = DEFAULT_MAX_SCAN_AGE;
+ ieee->open_wep = 1;
+
+ /* Default to enabling full open WEP with host based encrypt/decrypt */
+ ieee->host_encrypt = 1;
+ ieee->host_decrypt = 1;
+ ieee->ieee802_1x = 1; /* Default to supporting 802.1x */
+
+ INIT_LIST_HEAD(&ieee->crypt_deinit_list);
+ _setup_timer(&ieee->crypt_deinit_timer,
+ rtllib_crypt_deinit_handler,
+ (unsigned long) ieee);
+ ieee->rtllib_ap_sec_type = rtllib_ap_sec_type;
+
+ spin_lock_init(&ieee->lock);
+ spin_lock_init(&ieee->wpax_suitlist_lock);
+ spin_lock_init(&ieee->bw_spinlock);
+ spin_lock_init(&ieee->reorder_spinlock);
+ atomic_set(&(ieee->atm_chnlop), 0);
+ atomic_set(&(ieee->atm_swbw), 0);
+
+ ieee->bHalfNMode = false;
+ ieee->wpa_enabled = 0;
+ ieee->tkip_countermeasures = 0;
+ ieee->drop_unencrypted = 0;
+ ieee->privacy_invoked = 0;
+ ieee->ieee802_1x = 1;
+ ieee->raw_tx = 0;
+ ieee->hwsec_active = 0;
+
+#ifdef _RTL8192_EXT_PATCH_
+ for (i=0; i<MAX_MP; i++)
+ {
+ ieee->cryptlist[i] = (struct rtllib_crypt_data_list*) kmalloc(sizeof(struct rtllib_crypt_data_list), GFP_KERNEL);
+ if (NULL == ieee->cryptlist[i])
+ {
+ printk("error kmalloc cryptlist\n");
+ goto failed;
+ }
+ memset(ieee->cryptlist[i], 0, sizeof(struct rtllib_crypt_data_list));
+ }
+ memset(ieee->swmeshcamtable,0,sizeof(SW_CAM_TABLE)*32);
+#endif
+ memset(ieee->swcamtable,0,sizeof(SW_CAM_TABLE)*32);
+ rtllib_softmac_init(ieee);
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
+ ieee->pHTInfo = (RT_HIGH_THROUGHPUT*)kzalloc(sizeof(RT_HIGH_THROUGHPUT), GFP_KERNEL);
+#else
+ ieee->pHTInfo = (RT_HIGH_THROUGHPUT*)kmalloc(sizeof(RT_HIGH_THROUGHPUT), GFP_KERNEL);
+ memset(ieee->pHTInfo,0,sizeof(RT_HIGH_THROUGHPUT));
+#endif
+ if (ieee->pHTInfo == NULL)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't alloc memory for HTInfo\n");
+ return NULL;
+ }
+ HTUpdateDefaultSetting(ieee);
+ HTInitializeHTInfo(ieee);
+ TSInitialize(ieee);
+#if 0
+ INIT_WORK_RSL(&ieee->ht_onAssRsp, (void(*)(void*)) HTOnAssocRsp_wq, ieee);
+#endif
+ for (i = 0; i < IEEE_IBSS_MAC_HASH_SIZE; i++)
+ INIT_LIST_HEAD(&ieee->ibss_mac_hash[i]);
+
+#ifdef _RTL8192_EXT_PATCH_
+ for (i = 0; i < IEEE_MESH_MAC_HASH_SIZE; i++)
+ INIT_LIST_HEAD(&ieee->mesh_mac_hash[i]);
+#endif
+
+ for (i = 0; i < 17; i++) {
+ ieee->last_rxseq_num[i] = -1;
+ ieee->last_rxfrag_num[i] = -1;
+ ieee->last_packet_time[i] = 0;
+ }
+
+ rtllib_tkip_null();
+ rtllib_wep_null();
+ rtllib_ccmp_null();
+
+ return dev;
+
+ failed:
+#ifdef _RTL8192_EXT_PATCH_
+ for (i=0; i<MAX_MP; i++)
+ {
+ if (ieee->cryptlist[i]==NULL){
+ continue;
+ }
+ kfree(ieee->cryptlist[i]);
+ ieee->cryptlist[i] = NULL;
+
+ }
+#endif
+
+ if (dev)
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0))
+ free_netdev(dev);
+#else
+ kfree(dev);
+#endif
+ return NULL;
+}
+
+
+void free_rtllib(struct net_device *dev)
+{
+ struct rtllib_device *ieee = (struct rtllib_device *)netdev_priv_rsl(dev);
+ int i;
+#ifdef _RTL8192_EXT_PATCH_
+ int j;
+ struct list_head *p, *q;
+ struct rtllib_crypt_data *crypt = NULL;
+#endif
+#if 1
+ if (ieee->pHTInfo != NULL)
+ {
+ kfree(ieee->pHTInfo);
+ ieee->pHTInfo = NULL;
+ }
+#endif
+ rtllib_softmac_free(ieee);
+ del_timer_sync(&ieee->crypt_deinit_timer);
+ rtllib_crypt_deinit_entries(ieee, 1);
+
+#ifdef _RTL8192_EXT_PATCH_
+ for (j=0;j<MAX_MP; j++)
+ {
+ if (ieee->cryptlist[j] == NULL)
+ continue;
+ for (i = 0; i < WEP_KEYS; i++) {
+ crypt = ieee->cryptlist[j]->crypt[i];
+
+ if (crypt)
+ {
+ if (crypt->ops) {
+ crypt->ops->deinit(crypt->priv);
+ printk("===>%s():j is %d,i is %d\n",__FUNCTION__,j,i);
+#ifndef BUILT_IN_RTLLIB
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+ module_put(crypt->ops->owner);
+#else
+ __MOD_DEC_USE_COUNT(crypt->ops->owner);
+#endif
+#endif
+ }
+ kfree(crypt);
+ ieee->cryptlist[j]->crypt[i] = NULL;
+ }
+ }
+ kfree(ieee->cryptlist[j]);
+ }
+ for (i = 0; i < WEP_KEYS; i++) {
+ crypt = ieee->sta_crypt[i];
+ if (crypt)
+ {
+ if (crypt->ops) {
+ crypt->ops->deinit(crypt->priv);
+#ifndef BUILT_IN_RTLLIB
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+ module_put(crypt->ops->owner);
+#else
+ __MOD_DEC_USE_COUNT(crypt->ops->owner);
+#endif
+#endif
+ }
+ kfree(crypt);
+ }
+ ieee->sta_crypt[i] = NULL;
+ }
+#else
+ for (i = 0; i < WEP_KEYS; i++) {
+ struct rtllib_crypt_data *crypt = ieee->crypt[i];
+ if (crypt) {
+ if (crypt->ops) {
+ crypt->ops->deinit(crypt->priv);
+#ifndef BUILT_IN_RTLLIB
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+ module_put(crypt->ops->owner);
+#else
+ __MOD_DEC_USE_COUNT(crypt->ops->owner);
+#endif
+#endif
+ }
+ kfree(crypt);
+ ieee->crypt[i] = NULL;
+ }
+ }
+#endif
+
+ rtllib_networks_free(ieee);
+#ifdef _RTL8192_EXT_PATCH_
+ rtllib_mesh_networks_free(ieee);
+#endif
+#if 0
+ for (i = 0; i < IEEE_IBSS_MAC_HASH_SIZE; i++) {
+ list_for_each_safe(p, q, &ieee->ibss_mac_hash[i]) {
+ kfree(list_entry(p, struct ieee_ibss_seq, list));
+ list_del(p);
+ }
+ }
+
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ for (i = 0; i < IEEE_MESH_MAC_HASH_SIZE; i++) {
+ list_for_each_safe(p, q, &ieee->mesh_mac_hash[i]) {
+ kfree(list_entry(p, struct ieee_mesh_seq, list));
+ list_del(p);
+ }
+ }
+#endif
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if (ieee->WapiSupport)
+ {
+ WapiFreeAllStaInfo(ieee);
+ }
+#endif
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0))
+#ifdef CONFIG_CFG_80211
+ wiphy_unregister(ieee->wdev.wiphy);
+ wiphy_free(ieee->wdev.wiphy);
+#endif
+ free_netdev(dev);
+#else
+ kfree(dev);
+#endif
+}
+
+#ifdef CONFIG_RTLLIB_DEBUG
+
+u32 rtllib_debug_level = 0;
+static int debug = \
+ RTLLIB_DL_ERR
+ ;
+struct proc_dir_entry *rtllib_proc = NULL;
+
+static int show_debug_level(char *page, char **start, off_t offset,
+ int count, int *eof, void *data)
+{
+ return snprintf(page, count, "0x%08X\n", rtllib_debug_level);
+}
+
+static int store_debug_level(struct file *file, const char *buffer,
+ unsigned long count, void *data)
+{
+ char buf[] = "0x00000000";
+ unsigned long len = min((unsigned long)sizeof(buf) - 1, count);
+ char *p = (char *)buf;
+ unsigned long val;
+
+ if (copy_from_user(buf, buffer, len))
+ return count;
+ buf[len] = 0;
+ if (p[1] == 'x' || p[1] == 'X' || p[0] == 'x' || p[0] == 'X') {
+ p++;
+ if (p[0] == 'x' || p[0] == 'X')
+ p++;
+ val = simple_strtoul(p, &p, 16);
+ } else
+ val = simple_strtoul(p, &p, 10);
+ if (p == buf)
+ printk(KERN_INFO DRV_NAME
+ ": %s is not in hex or decimal form.\n", buf);
+ else
+ rtllib_debug_level = val;
+
+ return strnlen(buf, count);
+}
+
+int __init rtllib_init(void)
+{
+#ifdef CONFIG_RTLLIB_DEBUG
+ struct proc_dir_entry *e;
+
+ rtllib_debug_level = debug;
+#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+ rtllib_proc = create_proc_entry(DRV_NAME, S_IFDIR, proc_net);
+#else
+ rtllib_proc = create_proc_entry(DRV_NAME, S_IFDIR, init_net.proc_net);
+#endif
+ if (rtllib_proc == NULL) {
+ RTLLIB_ERROR("Unable to create " DRV_NAME
+ " proc directory\n");
+ return -EIO;
+ }
+ e = create_proc_entry("debug_level", S_IFREG | S_IRUGO | S_IWUSR,
+ rtllib_proc);
+ if (!e) {
+#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+ remove_proc_entry(DRV_NAME, proc_net);
+#else
+ remove_proc_entry(DRV_NAME, init_net.proc_net);
+#endif
+ rtllib_proc = NULL;
+ return -EIO;
+ }
+ e->read_proc = show_debug_level;
+ e->write_proc = store_debug_level;
+ e->data = NULL;
+#endif
+
+ return 0;
+}
+
+void __exit rtllib_exit(void)
+{
+#ifdef CONFIG_RTLLIB_DEBUG
+ if (rtllib_proc) {
+ remove_proc_entry("debug_level", rtllib_proc);
+#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+ remove_proc_entry(DRV_NAME, proc_net);
+#else
+ remove_proc_entry(DRV_NAME, init_net.proc_net);
+#endif
+ rtllib_proc = NULL;
+ }
+#endif
+}
+
+#ifndef BUILT_IN_RTLLIB
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0))
+#include <linux/moduleparam.h>
+module_param(debug, int, 0444);
+MODULE_PARM_DESC(debug, "debug output mask");
+
+
+module_exit(rtllib_exit);
+module_init(rtllib_init);
+#endif
+
+EXPORT_SYMBOL_RSL(alloc_rtllib);
+EXPORT_SYMBOL_RSL(free_rtllib);
+EXPORT_SYMBOL_RSL(rtllib_debug_level);
+#endif
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/rtllib_rx.c b/ubuntu/rtl8192se/rtllib/rtllib_rx.c
new file mode 100755
index 00000000000..34e64b7cc45
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtllib_rx.c
@@ -0,0 +1,5266 @@
+/*
+ * Original code based Host AP (software wireless LAN access point) driver
+ * for Intersil Prism2/2.5/3 - hostap.o module, common routines
+ *
+ * Copyright (c) 2001-2002, SSH Communications Security Corp and Jouni Malinen
+ * <jkmaline@cc.hut.fi>
+ * Copyright (c) 2002-2003, Jouni Malinen <jkmaline@cc.hut.fi>
+ * Copyright (c) 2004, Intel Corporation
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation. See README and COPYING for
+ * more details.
+ ******************************************************************************
+
+ Few modifications for Realtek's Wi-Fi drivers by
+ Andrea Merello <andreamrl@tiscali.it>
+
+ A special thanks goes to Realtek for their support !
+
+******************************************************************************/
+
+
+#include <linux/compiler.h>
+#include <linux/errno.h>
+#include <linux/if_arp.h>
+#include <linux/in6.h>
+#include <linux/in.h>
+#include <linux/ip.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/netdevice.h>
+#include <linux/pci.h>
+#include <linux/proc_fs.h>
+#include <linux/skbuff.h>
+#include <linux/slab.h>
+#include <linux/tcp.h>
+#include <linux/types.h>
+#include <linux/version.h>
+#include <linux/wireless.h>
+#include <linux/etherdevice.h>
+#include <asm/uaccess.h>
+#include <linux/ctype.h>
+
+#include "rtllib.h"
+#ifdef ENABLE_DOT11D
+#include "dot11d.h"
+#endif
+
+#ifdef RTLLIB_RADIOTAP
+#include <net/ieee80211_radiotap.h>
+#endif
+
+#if defined CONFIG_CFG_80211
+#include <linux/crc32.h>
+
+struct ieee80211_channel *rtllib_get_channel(struct wiphy *wiphy,
+ int freq)
+{
+ enum ieee80211_band band;
+ struct ieee80211_supported_band *sband;
+ int i;
+
+ for (band = 0; band < IEEE80211_NUM_BANDS; band++) {
+ sband = wiphy->bands[band];
+
+ if (!sband)
+ continue;
+
+ for (i = 0; i < sband->n_channels; i++) {
+ if (sband->channels[i].center_freq == freq)
+ return &sband->channels[i];
+ }
+ }
+
+ return NULL;
+}
+
+int rtllib_channel_to_frequency(int chan)
+{
+ if (chan < 14)
+ return 2407 + chan * 5;
+
+ if (chan == 14)
+ return 2484;
+
+ /* FIXME: 802.11j 17.3.8.3.2 */
+ return (chan + 1000) * 5;
+}
+
+u32 rtllib_parse_elems_crc(u8 *start, size_t len,
+ struct ieee802_11_elems *elems,
+ u64 filter, u32 crc)
+{
+ size_t left = len;
+ u8 *pos = start;
+ bool calc_crc = filter != 0;
+
+ memset(elems, 0, sizeof(*elems));
+ elems->ie_start = start;
+ elems->total_len = len;
+
+ while (left >= 2) {
+ u8 id, elen;
+
+ id = *pos++;
+ elen = *pos++;
+ left -= 2;
+
+ if (elen > left)
+ break;
+
+ if (calc_crc && id < 64 && (filter & BIT(id)))
+ crc = crc32_be(crc, pos - 2, elen + 2);
+
+ switch (id) {
+ case WLAN_EID_SSID:
+ elems->ssid = pos;
+ elems->ssid_len = elen;
+ break;
+ case WLAN_EID_SUPP_RATES:
+ elems->supp_rates = pos;
+ elems->supp_rates_len = elen;
+ break;
+ case WLAN_EID_FH_PARAMS:
+ elems->fh_params = pos;
+ elems->fh_params_len = elen;
+ break;
+ case WLAN_EID_DS_PARAMS:
+ elems->ds_params = pos;
+ elems->ds_params_len = elen;
+ break;
+ case WLAN_EID_CF_PARAMS:
+ elems->cf_params = pos;
+ elems->cf_params_len = elen;
+ break;
+ case WLAN_EID_TIM:
+ if (elen >= sizeof(struct ieee80211_tim_ie)) {
+ elems->tim = (void *)pos;
+ elems->tim_len = elen;
+ }
+ break;
+ case WLAN_EID_IBSS_PARAMS:
+ elems->ibss_params = pos;
+ elems->ibss_params_len = elen;
+ break;
+ case WLAN_EID_CHALLENGE:
+ elems->challenge = pos;
+ elems->challenge_len = elen;
+ break;
+ case WLAN_EID_VENDOR_SPECIFIC:
+ if (elen >= 4 && pos[0] == 0x00 && pos[1] == 0x50 &&
+ pos[2] == 0xf2) {
+ /* Microsoft OUI (00:50:F2) */
+
+ if (calc_crc)
+ crc = crc32_be(crc, pos - 2, elen + 2);
+
+ if (pos[3] == 1) {
+ /* OUI Type 1 - WPA IE */
+ elems->wpa = pos;
+ elems->wpa_len = elen;
+ } else if (elen >= 5 && pos[3] == 2) {
+ /* OUI Type 2 - WMM IE */
+ if (pos[4] == 0) {
+ elems->wmm_info = pos;
+ elems->wmm_info_len = elen;
+ } else if (pos[4] == 1) {
+ elems->wmm_param = pos;
+ elems->wmm_param_len = elen;
+ }
+ }
+ }
+ break;
+ case WLAN_EID_RSN:
+ elems->rsn = pos;
+ elems->rsn_len = elen;
+ break;
+ case WLAN_EID_ERP_INFO:
+ elems->erp_info = pos;
+ elems->erp_info_len = elen;
+ break;
+ case WLAN_EID_EXT_SUPP_RATES:
+ elems->ext_supp_rates = pos;
+ elems->ext_supp_rates_len = elen;
+ break;
+ case WLAN_EID_HT_CAPABILITY:
+ if (elen >= sizeof(struct ieee80211_ht_cap))
+ elems->ht_cap_elem = (void *)pos;
+ break;
+ case WLAN_EID_HT_INFORMATION:
+ if (elen >= sizeof(struct ieee80211_ht_info))
+ elems->ht_info_elem = (void *)pos;
+ break;
+ case WLAN_EID_MESH_ID:
+ elems->mesh_id = pos;
+ elems->mesh_id_len = elen;
+ break;
+ case WLAN_EID_MESH_CONFIG:
+ elems->mesh_config = pos;
+ elems->mesh_config_len = elen;
+ break;
+ case WLAN_EID_PEER_LINK:
+ elems->peer_link = pos;
+ elems->peer_link_len = elen;
+ break;
+ case WLAN_EID_PREQ:
+ elems->preq = pos;
+ elems->preq_len = elen;
+ break;
+ case WLAN_EID_PREP:
+ elems->prep = pos;
+ elems->prep_len = elen;
+ break;
+ case WLAN_EID_PERR:
+ elems->perr = pos;
+ elems->perr_len = elen;
+ break;
+ case WLAN_EID_CHANNEL_SWITCH:
+ elems->ch_switch_elem = pos;
+ elems->ch_switch_elem_len = elen;
+ break;
+ case WLAN_EID_QUIET:
+ if (!elems->quiet_elem) {
+ elems->quiet_elem = pos;
+ elems->quiet_elem_len = elen;
+ }
+ elems->num_of_quiet_elem++;
+ break;
+ case WLAN_EID_COUNTRY:
+ elems->country_elem = pos;
+ elems->country_elem_len = elen;
+ break;
+ case WLAN_EID_PWR_CONSTRAINT:
+ elems->pwr_constr_elem = pos;
+ elems->pwr_constr_elem_len = elen;
+ break;
+ case WLAN_EID_TIMEOUT_INTERVAL:
+ elems->timeout_int = pos;
+ elems->timeout_int_len = elen;
+ break;
+ default:
+ break;
+ }
+
+ left -= elen;
+ pos += elen;
+ }
+
+ return crc;
+}
+
+void rtllib_parse_elems(u8 *start, size_t len,
+ struct ieee802_11_elems *elems)
+{
+ rtllib_parse_elems_crc(start, len, elems, 0, 0);
+}
+
+void ieee80211_scan_rx(struct rtllib_device *ieee, struct sk_buff *skb, struct rtllib_rx_stats *rx_status)
+{
+ struct rtllib_hdr_4addr *header = (struct rtllib_hdr_4addr *)skb->data ;
+ struct ieee80211_mgmt *mgmt;
+ struct ieee80211_bss *bss;
+ u8 *elements;
+ struct ieee80211_channel *channel;
+ size_t baselen;
+ int freq;
+ __le16 fc;
+ bool presp, beacon = false;
+ struct ieee802_11_elems elems;
+ s32 signal = 0;
+
+ if (skb->len < 2)
+ return;
+
+ mgmt = (struct ieee80211_mgmt *) skb->data;
+ fc = mgmt->frame_control;
+
+ if (skb->len < 24)
+ return;
+
+ presp = (WLAN_FC_GET_STYPE(header->frame_ctl) == RTLLIB_STYPE_PROBE_RESP);
+ if (presp) {
+ /* ignore ProbeResp to foreign address */
+ if (memcmp(mgmt->da, ieee->dev->dev_addr, ETH_ALEN))
+ return ;;
+
+ presp = true;
+ elements = mgmt->u.probe_resp.variable;
+ baselen = offsetof(struct ieee80211_mgmt, u.probe_resp.variable);
+ } else {
+ beacon = (WLAN_FC_GET_STYPE(header->frame_ctl) == RTLLIB_STYPE_BEACON);
+ baselen = offsetof(struct ieee80211_mgmt, u.beacon.variable);
+ elements = mgmt->u.beacon.variable;
+ }
+
+ if (!presp && !beacon)
+ return;
+
+ if (baselen > skb->len)
+ return;
+
+ rtllib_parse_elems(elements, skb->len - baselen, &elems);
+
+ if (elems.ds_params && elems.ds_params_len == 1)
+ freq = rtllib_channel_to_frequency(elems.ds_params[0]);
+ else
+ return;
+
+ channel = rtllib_get_channel(ieee->wdev.wiphy, freq);
+
+ if (!channel || channel->flags & IEEE80211_CHAN_DISABLED)
+ return;
+
+ signal = rx_status->signal * 100;
+
+ bss = (void *)cfg80211_inform_bss_frame(ieee->wdev.wiphy, channel,
+ mgmt, skb->len, signal, GFP_ATOMIC);
+
+ return;
+}
+#endif
+
+#ifdef RTLLIB_RADIOTAP
+static int rtllib_rx_radiotap_len(struct rtllib_device *ieee, struct rtllib_rx_stats *rx_status)
+{
+ int len;
+
+ /* always present fields */
+ len = sizeof(struct ieee80211_radiotap_header) + 9 +
+ 8 + /* TSFT */
+ 1 + /* HW SIGNAL DBM */
+ 1; /* HW NOISE DBM */
+
+ if (len & 1) /* padding for RX_FLAGS if necessary */
+ len++;
+
+ /* make sure radiotap starts at a naturally aligned address */
+ if (len % 8)
+ len = roundup(len, 8);
+
+ return len;
+}
+
+static void rtllib_add_rx_radiotap_header(struct rtllib_device *ieee,
+ struct sk_buff *skb, int rtap_len, struct rtllib_rx_stats *rx_status)
+{
+ struct ieee80211_radiotap_header *rthdr;
+ unsigned char *pos;
+ printk("add header!\n");
+ rthdr = (struct ieee80211_radiotap_header *)skb_push(skb, rtap_len);
+ memset(rthdr, 0, rtap_len);
+
+ rthdr->it_version = PKTHDR_RADIOTAP_VERSION;
+ rthdr->it_pad = 0;
+ rthdr->it_len = cpu_to_le16(rtap_len);
+ /* radiotap header, set always present flags */
+ rthdr->it_present = cpu_to_le32(
+ (1 << IEEE80211_RADIOTAP_TSFT) |
+ (1 << IEEE80211_RADIOTAP_FLAGS) |
+ (1 << IEEE80211_RADIOTAP_RATE) |
+ (1 << IEEE80211_RADIOTAP_CHANNEL) |
+ (1 << IEEE80211_RADIOTAP_DBM_ANTSIGNAL) |
+ (1 << IEEE80211_RADIOTAP_DBM_ANTNOISE) |
+ (1 << IEEE80211_RADIOTAP_ANTENNA));
+
+ pos = (unsigned char *)(rthdr+1);
+ /* the order of the following fields is important */
+ /* IEEE80211_RADIOTAP_TSFT */
+ *(__le64 *)pos = cpu_to_le64((rx_status->mac_time[1] << 32) | \
+ rx_status->mac_time[0]);
+ pos += 8;
+
+ /* IEEE80211_RADIOTAP_FLAGS */
+ if (rx_status->bCRC)
+ *pos |= IEEE80211_RADIOTAP_F_BADFCS;
+ if (rx_status->bShortPreamble)
+ *pos |= IEEE80211_RADIOTAP_F_SHORTPRE;
+ pos++;
+
+ /* IEEE80211_RADIOTAP_RATE */
+ *pos = rx_status->rate / 5;
+ pos++;
+
+ /* IEEE80211_RADIOTAP_CHANNEL */
+ *(__le16 *)pos = cpu_to_le16(rx_status->received_channel);
+ pos += 2;
+#if 0
+ if (status->band == IEEE80211_BAND_5GHZ)
+ *(__le16 *)pos = cpu_to_le16(IEEE80211_CHAN_OFDM |
+ IEEE80211_CHAN_5GHZ);
+ else if (rate->flags & IEEE80211_RATE_ERP_G)
+ *(__le16 *)pos = cpu_to_le16(IEEE80211_CHAN_OFDM |
+ IEEE80211_CHAN_2GHZ);
+ else
+ *(__le16 *)pos = cpu_to_le16(IEEE80211_CHAN_CCK |
+ IEEE80211_CHAN_2GHZ);
+#endif
+ pos += 2;
+
+
+ /* IEEE80211_RADIOTAP_DBM_ANTSIGNAL */
+ *pos = rx_status->RxPower;
+ pos++;
+
+ /* IEEE80211_RADIOTAP_DBM_ANTNOISE */
+ *pos = rx_status->noise;
+ pos++;
+
+ /* IEEE80211_RADIOTAP_ANTENNA */
+ *pos = rx_status->Antenna;
+ pos++;
+
+ /* IEEE80211_RADIOTAP_DB_ANTNOISE is not used */
+
+ /* IEEE80211_RADIOTAP_RX_FLAGS */
+ /* ensure 2 byte alignment for the 2 byte field as required */
+#if 0
+ if ((pos - (unsigned char *)rthdr) & 1)
+ pos++;
+ if (status->flag & RX_FLAG_FAILED_PLCP_CRC)
+ *(__le16 *)pos |= cpu_to_le16(IEEE80211_RADIOTAP_F_RX_BADPLCP);
+ pos += 2;
+#endif
+}
+#endif
+
+static inline void rtllib_monitor_rx(struct rtllib_device *ieee,
+ struct sk_buff *skb,struct rtllib_rx_stats *rx_status,
+ size_t hdr_length)
+{
+#ifdef RTLLIB_RADIOTAP
+ int needed_headroom = 0;
+ struct sk_buff *radiotap_skb;
+
+ needed_headroom = rtllib_rx_radiotap_len(ieee, rx_status);
+ printk("needed_headroom = %d\n", needed_headroom);
+ radiotap_skb = skb_copy_expand(skb, needed_headroom, 0, GFP_ATOMIC);
+ dev_kfree_skb(skb);
+ if (!radiotap_skb) {
+ return;
+ }
+
+ rtllib_add_rx_radiotap_header(ieee, skb, needed_headroom, rx_status);
+ radiotap_skb->dev = ieee->dev;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+ skb_reset_mac_header(radiotap_skb);
+#else
+ radiotap_skb->mac.raw = skb->data;
+#endif
+ radiotap_skb->ip_summed = CHECKSUM_UNNECESSARY;
+ radiotap_skb->pkt_type = PACKET_OTHERHOST;
+ radiotap_skb->protocol = htons(ETH_P_802_2);
+ memset(radiotap_skb->cb, 0, sizeof(radiotap_skb->cb));
+ netif_rx(radiotap_skb);
+#else
+ skb->dev = ieee->dev;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
+ skb_reset_mac_header(skb);
+#else
+ skb->mac.raw = skb->data;
+#endif
+ skb_pull(skb, hdr_length);
+ skb->pkt_type = PACKET_OTHERHOST;
+ skb->protocol = __constant_htons(ETH_P_80211_RAW);
+ memset(skb->cb, 0, sizeof(skb->cb));
+ netif_rx(skb);
+#endif
+}
+
+/* Called only as a tasklet (software IRQ) */
+static struct rtllib_frag_entry *
+rtllib_frag_cache_find(struct rtllib_device *ieee, unsigned int seq,
+ unsigned int frag, u8 tid,u8 *src, u8 *dst)
+{
+ struct rtllib_frag_entry *entry;
+ int i;
+
+ for (i = 0; i < RTLLIB_FRAG_CACHE_LEN; i++) {
+ entry = &ieee->frag_cache[tid][i];
+ if (entry->skb != NULL &&
+ time_after(jiffies, entry->first_frag_time + 2 * HZ)) {
+ RTLLIB_DEBUG_FRAG(
+ "expiring fragment cache entry "
+ "seq=%u last_frag=%u\n",
+ entry->seq, entry->last_frag);
+ dev_kfree_skb_any(entry->skb);
+ entry->skb = NULL;
+ }
+
+ if (entry->skb != NULL && entry->seq == seq &&
+ (entry->last_frag + 1 == frag || frag == -1) &&
+ memcmp(entry->src_addr, src, ETH_ALEN) == 0 &&
+ memcmp(entry->dst_addr, dst, ETH_ALEN) == 0)
+ return entry;
+ }
+
+ return NULL;
+}
+
+/* Called only as a tasklet (software IRQ) */
+static struct sk_buff *
+rtllib_frag_cache_get(struct rtllib_device *ieee,
+ struct rtllib_hdr_4addr *hdr)
+{
+ struct sk_buff *skb = NULL;
+ u16 fc = le16_to_cpu(hdr->frame_ctl);
+ u16 sc = le16_to_cpu(hdr->seq_ctl);
+ unsigned int frag = WLAN_GET_SEQ_FRAG(sc);
+ unsigned int seq = WLAN_GET_SEQ_SEQ(sc);
+ struct rtllib_frag_entry *entry;
+ struct rtllib_hdr_3addrqos *hdr_3addrqos;
+ struct rtllib_hdr_4addrqos *hdr_4addrqos;
+ u8 tid;
+
+ if (((fc & RTLLIB_FCTL_DSTODS) == RTLLIB_FCTL_DSTODS)&&RTLLIB_QOS_HAS_SEQ(fc)) {
+ hdr_4addrqos = (struct rtllib_hdr_4addrqos *)hdr;
+ tid = le16_to_cpu(hdr_4addrqos->qos_ctl) & RTLLIB_QCTL_TID;
+ tid = UP2AC(tid);
+ tid ++;
+ } else if (RTLLIB_QOS_HAS_SEQ(fc)) {
+ hdr_3addrqos = (struct rtllib_hdr_3addrqos *)hdr;
+ tid = le16_to_cpu(hdr_3addrqos->qos_ctl) & RTLLIB_QCTL_TID;
+ tid = UP2AC(tid);
+ tid ++;
+ } else {
+ tid = 0;
+ }
+
+ if (frag == 0) {
+ /* Reserve enough space to fit maximum frame length */
+ skb = dev_alloc_skb(ieee->dev->mtu +
+ sizeof(struct rtllib_hdr_4addr) +
+ 8 /* LLC */ +
+ 2 /* alignment */ +
+ 8 /* WEP */ +
+ ETH_ALEN /* WDS */ +
+ (RTLLIB_QOS_HAS_SEQ(fc)?2:0) /* QOS Control */);
+ if (skb == NULL)
+ return NULL;
+
+ entry = &ieee->frag_cache[tid][ieee->frag_next_idx[tid]];
+ ieee->frag_next_idx[tid]++;
+ if (ieee->frag_next_idx[tid] >= RTLLIB_FRAG_CACHE_LEN)
+ ieee->frag_next_idx[tid] = 0;
+
+ if (entry->skb != NULL)
+ dev_kfree_skb_any(entry->skb);
+
+ entry->first_frag_time = jiffies;
+ entry->seq = seq;
+ entry->last_frag = frag;
+ entry->skb = skb;
+ memcpy(entry->src_addr, hdr->addr2, ETH_ALEN);
+ memcpy(entry->dst_addr, hdr->addr1, ETH_ALEN);
+ } else {
+ /* received a fragment of a frame for which the head fragment
+ * should have already been received */
+ entry = rtllib_frag_cache_find(ieee, seq, frag, tid,hdr->addr2,
+ hdr->addr1);
+ if (entry != NULL) {
+ entry->last_frag = frag;
+ skb = entry->skb;
+ }
+ }
+
+ return skb;
+}
+
+
+/* Called only as a tasklet (software IRQ) */
+static int rtllib_frag_cache_invalidate(struct rtllib_device *ieee,
+ struct rtllib_hdr_4addr *hdr)
+{
+ u16 fc = le16_to_cpu(hdr->frame_ctl);
+ u16 sc = le16_to_cpu(hdr->seq_ctl);
+ unsigned int seq = WLAN_GET_SEQ_SEQ(sc);
+ struct rtllib_frag_entry *entry;
+ struct rtllib_hdr_3addrqos *hdr_3addrqos;
+ struct rtllib_hdr_4addrqos *hdr_4addrqos;
+ u8 tid;
+
+ if(((fc & RTLLIB_FCTL_DSTODS) == RTLLIB_FCTL_DSTODS)&&RTLLIB_QOS_HAS_SEQ(fc)) {
+ hdr_4addrqos = (struct rtllib_hdr_4addrqos *)hdr;
+ tid = le16_to_cpu(hdr_4addrqos->qos_ctl) & RTLLIB_QCTL_TID;
+ tid = UP2AC(tid);
+ tid ++;
+ } else if (RTLLIB_QOS_HAS_SEQ(fc)) {
+ hdr_3addrqos = (struct rtllib_hdr_3addrqos *)hdr;
+ tid = le16_to_cpu(hdr_3addrqos->qos_ctl) & RTLLIB_QCTL_TID;
+ tid = UP2AC(tid);
+ tid ++;
+ } else {
+ tid = 0;
+ }
+
+ entry = rtllib_frag_cache_find(ieee, seq, -1, tid,hdr->addr2,
+ hdr->addr1);
+
+ if (entry == NULL) {
+ RTLLIB_DEBUG_FRAG(
+ "could not invalidate fragment cache "
+ "entry (seq=%u)\n", seq);
+ return -1;
+ }
+
+ entry->skb = NULL;
+ return 0;
+}
+
+
+
+/* rtllib_rx_frame_mgtmt
+ *
+ * Responsible for handling management control frames
+ *
+ * Called by rtllib_rx */
+static inline int
+rtllib_rx_frame_mgmt(struct rtllib_device *ieee, struct sk_buff *skb,
+ struct rtllib_rx_stats *rx_stats, u16 type,
+ u16 stype)
+{
+ /* On the struct stats definition there is written that
+ * this is not mandatory.... but seems that the probe
+ * response parser uses it
+ */
+ struct rtllib_hdr_3addr * hdr = (struct rtllib_hdr_3addr *)skb->data;
+
+ rx_stats->len = skb->len;
+ rtllib_rx_mgt(ieee,skb,rx_stats);
+#ifdef _RTL8192_EXT_PATCH_
+ if(ieee->iw_mode == IW_MODE_MESH){
+ if ((stype != RTLLIB_STYPE_MESH_ACT) && (memcmp(hdr->addr1, ieee->dev->dev_addr, ETH_ALEN)))
+ {
+ dev_kfree_skb_any(skb);
+ return 0;
+ }
+ }
+ else
+#endif
+ {
+ if ((memcmp(hdr->addr1, ieee->dev->dev_addr, ETH_ALEN)))
+ {
+ dev_kfree_skb_any(skb);
+ return 0;
+ }
+ }
+ rtllib_rx_frame_softmac(ieee, skb, rx_stats, type, stype);
+
+ dev_kfree_skb_any(skb);
+
+ return 0;
+
+#ifdef NOT_YET
+ if (ieee->iw_mode == IW_MODE_MASTER) {
+ printk(KERN_DEBUG "%s: Master mode not yet suppported.\n",
+ ieee->dev->name);
+ return 0;
+/*
+ hostap_update_sta_ps(ieee, (struct hostap_rtllib_hdr_4addr *)
+ skb->data);*/
+ }
+
+ if (ieee->hostapd && type == RTLLIB_TYPE_MGMT) {
+ if (stype == WLAN_FC_STYPE_BEACON &&
+ ieee->iw_mode == IW_MODE_MASTER) {
+ struct sk_buff *skb2;
+ /* Process beacon frames also in kernel driver to
+ * update STA(AP) table statistics */
+ skb2 = skb_clone(skb, GFP_ATOMIC);
+ if (skb2)
+ hostap_rx(skb2->dev, skb2, rx_stats);
+ }
+
+ /* send management frames to the user space daemon for
+ * processing */
+ ieee->apdevstats.rx_packets++;
+ ieee->apdevstats.rx_bytes += skb->len;
+ prism2_rx_80211(ieee->apdev, skb, rx_stats, PRISM2_RX_MGMT);
+ return 0;
+ }
+
+ if (ieee->iw_mode == IW_MODE_MASTER) {
+ if (type != WLAN_FC_TYPE_MGMT && type != WLAN_FC_TYPE_CTRL) {
+ printk(KERN_DEBUG "%s: unknown management frame "
+ "(type=0x%02x, stype=0x%02x) dropped\n",
+ skb->dev->name, type, stype);
+ return -1;
+ }
+
+ hostap_rx(skb->dev, skb, rx_stats);
+ return 0;
+ }
+
+ printk(KERN_DEBUG "%s: hostap_rx_frame_mgmt: management frame "
+ "received in non-Host AP mode\n", skb->dev->name);
+ return -1;
+#endif
+}
+
+#ifndef CONFIG_CFG_80211
+/* See IEEE 802.1H for LLC/SNAP encapsulation/decapsulation */
+/* Ethernet-II snap header (RFC1042 for most EtherTypes) */
+static unsigned char rfc1042_header[] =
+{ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0x00 };
+/* Bridge-Tunnel header (for EtherTypes ETH_P_AARP and ETH_P_IPX) */
+static unsigned char bridge_tunnel_header[] =
+{ 0xaa, 0xaa, 0x03, 0x00, 0x00, 0xf8 };
+/* No encapsulation header if EtherType < 0x600 (=length) */
+#endif
+
+/* Called by rtllib_rx_frame_decrypt */
+static int rtllib_is_eapol_frame(struct rtllib_device *ieee,
+ struct sk_buff *skb, size_t hdrlen)
+{
+ struct net_device *dev = ieee->dev;
+ u16 fc, ethertype;
+ struct rtllib_hdr_4addr *hdr;
+ u8 *pos;
+
+ if (skb->len < 24)
+ return 0;
+
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+ fc = le16_to_cpu(hdr->frame_ctl);
+
+ /* check that the frame is unicast frame to us */
+ if ((fc & (RTLLIB_FCTL_TODS | RTLLIB_FCTL_FROMDS)) ==
+ RTLLIB_FCTL_TODS &&
+ memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN) == 0 &&
+ memcmp(hdr->addr3, dev->dev_addr, ETH_ALEN) == 0) {
+ /* ToDS frame with own addr BSSID and DA */
+ } else if ((fc & (RTLLIB_FCTL_TODS | RTLLIB_FCTL_FROMDS)) ==
+ RTLLIB_FCTL_FROMDS &&
+ memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN) == 0) {
+ /* FromDS frame with own addr as DA */
+ } else
+ return 0;
+
+ if (skb->len < 24 + 8)
+ return 0;
+
+ /* check for port access entity Ethernet type */
+ pos = skb->data + hdrlen;
+ ethertype = (pos[6] << 8) | pos[7];
+ if (ethertype == ETH_P_PAE)
+ return 1;
+
+ return 0;
+}
+
+/* Called only as a tasklet (software IRQ), by rtllib_rx */
+static inline int
+rtllib_rx_frame_decrypt(struct rtllib_device* ieee, struct sk_buff *skb,
+ struct rtllib_crypt_data *crypt)
+{
+ struct rtllib_hdr_4addr *hdr;
+ int res, hdrlen;
+
+ if (crypt == NULL || crypt->ops->decrypt_mpdu == NULL)
+ return 0;
+#if 1
+ if (ieee->hwsec_active)
+ {
+ cb_desc *tcb_desc = (cb_desc *)(skb->cb+ MAX_DEV_ADDR_SIZE);
+ tcb_desc->bHwSec = 1;
+
+ if(ieee->need_sw_enc)
+ tcb_desc->bHwSec = 0;
+ }
+#endif
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+ hdrlen = rtllib_get_hdrlen(le16_to_cpu(hdr->frame_ctl));
+
+#ifdef CONFIG_RTLLIB_CRYPT_TKIP
+ if (ieee->tkip_countermeasures &&
+ strcmp(crypt->ops->name, "TKIP") == 0) {
+ if (net_ratelimit()) {
+ printk(KERN_DEBUG "%s: TKIP countermeasures: dropped "
+ "received packet from " MAC_FMT "\n",
+ ieee->dev->name, MAC_ARG(hdr->addr2));
+ }
+ return -1;
+ }
+#endif
+
+ atomic_inc(&crypt->refcnt);
+ res = crypt->ops->decrypt_mpdu(skb, hdrlen, crypt->priv);
+ atomic_dec(&crypt->refcnt);
+ if (res < 0) {
+ RTLLIB_DEBUG_DROP(
+ "decryption failed (SA=" MAC_FMT
+ ") res=%d\n", MAC_ARG(hdr->addr2), res);
+ if (res == -2)
+ RTLLIB_DEBUG_DROP("Decryption failed ICV "
+ "mismatch (key %d)\n",
+ skb->data[hdrlen + 3] >> 6);
+ ieee->ieee_stats.rx_discards_undecryptable++;
+ return -1;
+ }
+
+ return res;
+}
+
+
+/* Called only as a tasklet (software IRQ), by rtllib_rx */
+static inline int
+rtllib_rx_frame_decrypt_msdu(struct rtllib_device* ieee, struct sk_buff *skb,
+ int keyidx, struct rtllib_crypt_data *crypt)
+{
+ struct rtllib_hdr_4addr *hdr;
+ int res, hdrlen;
+
+ if (crypt == NULL || crypt->ops->decrypt_msdu == NULL)
+ return 0;
+ if (ieee->hwsec_active)
+ {
+ cb_desc *tcb_desc = (cb_desc *)(skb->cb+ MAX_DEV_ADDR_SIZE);
+ tcb_desc->bHwSec = 1;
+
+ if(ieee->need_sw_enc)
+ tcb_desc->bHwSec = 0;
+ }
+
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+ hdrlen = rtllib_get_hdrlen(le16_to_cpu(hdr->frame_ctl));
+
+ atomic_inc(&crypt->refcnt);
+ res = crypt->ops->decrypt_msdu(skb, keyidx, hdrlen, crypt->priv,ieee);
+ atomic_dec(&crypt->refcnt);
+ if (res < 0) {
+ printk(KERN_DEBUG "%s: MSDU decryption/MIC verification failed"
+ " (SA=" MAC_FMT " keyidx=%d)\n",
+ ieee->dev->name, MAC_ARG(hdr->addr2), keyidx);
+ return -1;
+ }
+
+ return 0;
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+static inline int rtllib_has_retry(u16 fc)
+{
+ return ((fc&RTLLIB_FCTL_RETRY)!=0);
+}
+#endif
+
+/* this function is stolen from ipw2200 driver*/
+#define IEEE_PACKET_RETRY_TIME (5*HZ)
+static int is_duplicate_packet(struct rtllib_device *ieee,
+ struct rtllib_hdr_4addr *header)
+{
+ u16 fc = le16_to_cpu(header->frame_ctl);
+ u16 sc = le16_to_cpu(header->seq_ctl);
+ u16 seq = WLAN_GET_SEQ_SEQ(sc);
+ u16 frag = WLAN_GET_SEQ_FRAG(sc);
+ u16 *last_seq, *last_frag;
+ unsigned long *last_time;
+ struct rtllib_hdr_3addrqos *hdr_3addrqos;
+ struct rtllib_hdr_4addrqos *hdr_4addrqos;
+ u8 tid;
+
+ if(((fc & RTLLIB_FCTL_DSTODS) == RTLLIB_FCTL_DSTODS)&&RTLLIB_QOS_HAS_SEQ(fc)) {
+ hdr_4addrqos = (struct rtllib_hdr_4addrqos *)header;
+ tid = le16_to_cpu(hdr_4addrqos->qos_ctl) & RTLLIB_QCTL_TID;
+ tid = UP2AC(tid);
+ tid ++;
+ } else if(RTLLIB_QOS_HAS_SEQ(fc)) {
+ hdr_3addrqos = (struct rtllib_hdr_3addrqos*)header;
+ tid = le16_to_cpu(hdr_3addrqos->qos_ctl) & RTLLIB_QCTL_TID;
+ tid = UP2AC(tid);
+ tid ++;
+ } else {
+ tid = 0;
+ }
+
+ switch (ieee->iw_mode) {
+ case IW_MODE_ADHOC:
+ {
+ struct list_head *p;
+ struct ieee_ibss_seq *entry = NULL;
+ u8 *mac = header->addr2;
+ int index = mac[5] % IEEE_IBSS_MAC_HASH_SIZE;
+ list_for_each(p, &ieee->ibss_mac_hash[index]) {
+ entry = list_entry(p, struct ieee_ibss_seq, list);
+ if (!memcmp(entry->mac, mac, ETH_ALEN))
+ break;
+ }
+ if (p == &ieee->ibss_mac_hash[index]) {
+ entry = kmalloc(sizeof(struct ieee_ibss_seq), GFP_ATOMIC);
+ if (!entry) {
+ printk(KERN_WARNING "Cannot malloc new mac entry\n");
+ return 0;
+ }
+ memcpy(entry->mac, mac, ETH_ALEN);
+ entry->seq_num[tid] = seq;
+ entry->frag_num[tid] = frag;
+ entry->packet_time[tid] = jiffies;
+ list_add(&entry->list, &ieee->ibss_mac_hash[index]);
+ return 0;
+ }
+ last_seq = &entry->seq_num[tid];
+ last_frag = &entry->frag_num[tid];
+ last_time = &entry->packet_time[tid];
+ break;
+ }
+
+ case IW_MODE_INFRA:
+ last_seq = &ieee->last_rxseq_num[tid];
+ last_frag = &ieee->last_rxfrag_num[tid];
+ last_time = &ieee->last_packet_time[tid];
+
+ break;
+
+#ifdef _RTL8192_EXT_PATCH_
+ case IW_MODE_MESH:
+ /* Drop duplicate 802.11 retransmissions (IEEE 802.11 Chap. 9.2.9) */
+ if(!is_multicast_ether_addr(header->addr1)){
+ struct list_head *p;
+ struct ieee_mesh_seq *entry = NULL;
+ u8 *mac = header->addr2;
+ int index = mac[5] % IEEE_IBSS_MAC_HASH_SIZE;
+ list_for_each(p, &ieee->mesh_mac_hash[index]) {
+ entry = list_entry(p, struct ieee_mesh_seq, list);
+ if (!memcmp(entry->mac, mac, ETH_ALEN))
+ break;
+ }
+
+ if (p == &ieee->mesh_mac_hash[index]) {
+ entry = kmalloc(sizeof(struct ieee_mesh_seq), GFP_ATOMIC);
+ if (!entry) {
+ printk(KERN_WARNING "Cannot malloc new mac entry\n");
+ return 0;
+ }
+ memcpy(entry->mac, mac, ETH_ALEN);
+ entry->seq_num[tid] = header->seq_ctl;
+ entry->packet_time[tid] = jiffies;
+ list_add(&entry->list, &ieee->mesh_mac_hash[index]);
+ return 0;
+ }
+ last_seq = &entry->seq_num[tid];
+ last_time = &entry->packet_time[tid];
+
+ if (unlikely(rtllib_has_retry(fc) &&
+ *last_seq == header->seq_ctl)) {
+ goto drop;
+ } else {
+ *last_seq = header->seq_ctl;
+ }
+ *last_time = jiffies;
+ }
+ return 0;
+#endif
+ default:
+ return 0;
+ }
+
+ if ((*last_seq == seq) &&
+ time_after(*last_time + IEEE_PACKET_RETRY_TIME, jiffies)) {
+ if (*last_frag == frag){
+ goto drop;
+
+ }
+ if (*last_frag + 1 != frag)
+ /* out-of-order fragment */
+ goto drop;
+ } else
+ *last_seq = seq;
+
+ *last_frag = frag;
+ *last_time = jiffies;
+ return 0;
+
+drop:
+
+ return 1;
+}
+bool
+AddReorderEntry(
+ PRX_TS_RECORD pTS,
+ PRX_REORDER_ENTRY pReorderEntry
+ )
+{
+ struct list_head *pList = &pTS->RxPendingPktList;
+
+ while(pList->next != &pTS->RxPendingPktList)
+ {
+ if( SN_LESS(pReorderEntry->SeqNum, ((PRX_REORDER_ENTRY)list_entry(pList->next,RX_REORDER_ENTRY,List))->SeqNum) )
+ {
+ pList = pList->next;
+ }
+ else if( SN_EQUAL(pReorderEntry->SeqNum, ((PRX_REORDER_ENTRY)list_entry(pList->next,RX_REORDER_ENTRY,List))->SeqNum) )
+ {
+ return false;
+ }
+ else
+ {
+ break;
+ }
+ }
+ pReorderEntry->List.next = pList->next;
+ pReorderEntry->List.next->prev = &pReorderEntry->List;
+ pReorderEntry->List.prev = pList;
+ pList->next = &pReorderEntry->List;
+
+ return true;
+}
+
+void rtllib_indicate_packets(struct rtllib_device *ieee, struct rtllib_rxb** prxbIndicateArray,u8 index)
+{
+ struct net_device_stats *stats = &ieee->stats;
+ u8 i = 0 , j=0;
+ u16 ethertype;
+ for(j = 0; j<index; j++)
+ {
+ struct rtllib_rxb* prxb = prxbIndicateArray[j];
+#ifdef RTL8192S_WAPI_SUPPORT
+ if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable))
+ {
+ if(WapiCheckDropForRxReorderCase(ieee,prxb))
+ {
+ WAPI_TRACE(WAPI_ERR, "%s(): Rx Reorder Drop case!!\n", __FUNCTION__);
+ for(i = 0; i<prxb->nr_subframes; i++) {
+ if(prxb->subframes[i])
+ dev_kfree_skb(prxb->subframes[i]);
+ }
+ prxb->nr_subframes = 0;
+ }
+ }
+#endif
+ for(i = 0; i<prxb->nr_subframes; i++) {
+ struct sk_buff *sub_skb = prxb->subframes[i];
+
+ /* convert hdr + possible LLC headers into Ethernet header */
+ ethertype = (sub_skb->data[6] << 8) | sub_skb->data[7];
+ if (sub_skb->len >= 8 &&
+ ((memcmp(sub_skb->data, rfc1042_header, SNAP_SIZE) == 0 &&
+ ethertype != ETH_P_AARP && ethertype != ETH_P_IPX) ||
+ memcmp(sub_skb->data, bridge_tunnel_header, SNAP_SIZE) == 0)) {
+ /* remove RFC1042 or Bridge-Tunnel encapsulation and
+ * replace EtherType */
+ skb_pull(sub_skb, SNAP_SIZE);
+ memcpy(skb_push(sub_skb, ETH_ALEN), prxb->src, ETH_ALEN);
+ memcpy(skb_push(sub_skb, ETH_ALEN), prxb->dst, ETH_ALEN);
+ } else {
+ u16 len;
+ /* Leave Ethernet header part of hdr and full payload */
+ len = htons(sub_skb->len);
+ memcpy(skb_push(sub_skb, 2), &len, 2);
+ memcpy(skb_push(sub_skb, ETH_ALEN), prxb->src, ETH_ALEN);
+ memcpy(skb_push(sub_skb, ETH_ALEN), prxb->dst, ETH_ALEN);
+ }
+
+ /* Indicat the packets to upper layer */
+ if (sub_skb) {
+ stats->rx_packets++;
+ stats->rx_bytes += sub_skb->len;
+
+ memset(sub_skb->cb, 0, sizeof(sub_skb->cb));
+#ifdef _RTL8192_EXT_PATCH_
+ sub_skb->protocol = eth_type_trans(sub_skb, sub_skb->dev);
+#else
+ sub_skb->protocol = eth_type_trans(sub_skb, ieee->dev);
+ sub_skb->dev = ieee->dev;
+#endif
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
+ sub_skb->dev->stats.rx_packets++;
+ sub_skb->dev->stats.rx_bytes += sub_skb->len;
+#endif
+#ifdef TCP_CSUM_OFFLOAD_RX
+ if ( prxb->tcp_csum_valid)
+ sub_skb->ip_summed = CHECKSUM_UNNECESSARY;
+ else
+ sub_skb->ip_summed = CHECKSUM_NONE;
+
+#else
+ sub_skb->ip_summed = CHECKSUM_NONE; /* 802.11 crc not sufficient */
+#endif
+ ieee->last_rx_ps_time = jiffies;
+ netif_rx(sub_skb);
+ }
+ }
+ kfree(prxb);
+ prxb = NULL;
+ }
+}
+
+void
+rtllib_FlushRxTsPendingPkts(struct rtllib_device *ieee, PRX_TS_RECORD pTS)
+{
+ PRX_REORDER_ENTRY pRxReorderEntry;
+ struct rtllib_rxb* RfdArray[REORDER_WIN_SIZE];
+ u8 RfdCnt = 0;
+ unsigned long flags;
+
+ spin_lock_irqsave(&(ieee->reorder_spinlock), flags);
+
+ del_timer_sync(&pTS->RxPktPendingTimer);
+ while(!list_empty(&pTS->RxPendingPktList))
+ {
+ if(RfdCnt >= REORDER_WIN_SIZE){
+ printk("-------------->%s() error! RfdCnt >= REORDER_WIN_SIZE\n", __func__);
+ break;
+ }
+
+ pRxReorderEntry = (PRX_REORDER_ENTRY)list_entry(pTS->RxPendingPktList.prev,RX_REORDER_ENTRY,List);
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): Indicate SeqNum %d!\n",__FUNCTION__, pRxReorderEntry->SeqNum);
+ list_del_init(&pRxReorderEntry->List);
+
+ RfdArray[RfdCnt] = pRxReorderEntry->prxb;
+
+ RfdCnt = RfdCnt + 1;
+ list_add_tail(&pRxReorderEntry->List, &ieee->RxReorder_Unused_List);
+ }
+ rtllib_indicate_packets(ieee, RfdArray, RfdCnt);
+
+ pTS->RxIndicateSeq = 0xffff;
+
+ spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags);
+#ifdef MERGE_TO_DO
+#endif
+}
+
+
+void RxReorderIndicatePacket( struct rtllib_device *ieee,
+ struct rtllib_rxb* prxb,
+ PRX_TS_RECORD pTS,
+ u16 SeqNum)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ PRX_REORDER_ENTRY pReorderEntry = NULL;
+ struct rtllib_rxb* prxbIndicateArray[REORDER_WIN_SIZE];
+ u8 WinSize = pHTInfo->RxReorderWinSize;
+ u16 WinEnd = 0;
+ u8 index = 0;
+ bool bMatchWinStart = false, bPktInBuf = false;
+ unsigned long flags;
+
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): Seq is %d,pTS->RxIndicateSeq is %d, WinSize is %d\n",__FUNCTION__,SeqNum,pTS->RxIndicateSeq,WinSize);
+
+ spin_lock_irqsave(&(ieee->reorder_spinlock), flags);
+
+ WinEnd = (pTS->RxIndicateSeq + WinSize -1)%4096;
+#if 0
+ if(!list_empty(&ieee->RxReorder_Unused_List))
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): ieee->RxReorder_Unused_List is nut NULL\n");
+#endif
+ /* Rx Reorder initialize condition.*/
+ if(pTS->RxIndicateSeq == 0xffff) {
+ pTS->RxIndicateSeq = SeqNum;
+ }
+
+ /* Drop out the packet which SeqNum is smaller than WinStart */
+ if(SN_LESS(SeqNum, pTS->RxIndicateSeq)) {
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER,"Packet Drop! IndicateSeq: %d, NewSeq: %d\n",
+ pTS->RxIndicateSeq, SeqNum);
+ pHTInfo->RxReorderDropCounter++;
+ {
+ int i;
+ for(i =0; i < prxb->nr_subframes; i++) {
+ dev_kfree_skb(prxb->subframes[i]);
+ }
+ kfree(prxb);
+ prxb = NULL;
+ }
+ spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags);
+ return;
+ }
+
+ /*
+ * Sliding window manipulation. Conditions includes:
+ * 1. Incoming SeqNum is equal to WinStart =>Window shift 1
+ * 2. Incoming SeqNum is larger than the WinEnd => Window shift N
+ */
+ if(SN_EQUAL(SeqNum, pTS->RxIndicateSeq)) {
+ pTS->RxIndicateSeq = (pTS->RxIndicateSeq + 1) % 4096;
+ bMatchWinStart = true;
+ } else if(SN_LESS(WinEnd, SeqNum)) {
+ if(SeqNum >= (WinSize - 1)) {
+ pTS->RxIndicateSeq = SeqNum + 1 -WinSize;
+ } else {
+ pTS->RxIndicateSeq = 4095 - (WinSize - (SeqNum +1)) + 1;
+ }
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER, "Window Shift! IndicateSeq: %d, NewSeq: %d\n",pTS->RxIndicateSeq, SeqNum);
+ }
+
+ /*
+ * Indication process.
+ * After Packet dropping and Sliding Window shifting as above, we can now just indicate the packets
+ * with the SeqNum smaller than latest WinStart and buffer other packets.
+ */
+ /* For Rx Reorder condition:
+ * 1. All packets with SeqNum smaller than WinStart => Indicate
+ * 2. All packets with SeqNum larger than or equal to WinStart => Buffer it.
+ */
+ if(bMatchWinStart) {
+ /* Current packet is going to be indicated.*/
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER, "Packets indication!! IndicateSeq: %d, NewSeq: %d\n",\
+ pTS->RxIndicateSeq, SeqNum);
+ prxbIndicateArray[0] = prxb;
+ index = 1;
+ } else {
+ /* Current packet is going to be inserted into pending list.*/
+ if(!list_empty(&ieee->RxReorder_Unused_List)) {
+ pReorderEntry = (PRX_REORDER_ENTRY)list_entry(ieee->RxReorder_Unused_List.next,RX_REORDER_ENTRY,List);
+ list_del_init(&pReorderEntry->List);
+
+ /* Make a reorder entry and insert into a the packet list.*/
+ pReorderEntry->SeqNum = SeqNum;
+ pReorderEntry->prxb = prxb;
+
+#if 1
+ if(!AddReorderEntry(pTS, pReorderEntry)) {
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER, "%s(): Duplicate packet is dropped!! IndicateSeq: %d, NewSeq: %d\n",
+ __FUNCTION__, pTS->RxIndicateSeq, SeqNum);
+ list_add_tail(&pReorderEntry->List,&ieee->RxReorder_Unused_List);
+ {
+ int i;
+ for(i =0; i < prxb->nr_subframes; i++) {
+ dev_kfree_skb(prxb->subframes[i]);
+ }
+ kfree(prxb);
+ prxb = NULL;
+ }
+ } else {
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER,
+ "Pkt insert into buffer!! IndicateSeq: %d, NewSeq: %d\n",pTS->RxIndicateSeq, SeqNum);
+ }
+#endif
+ }
+ else {
+ /*
+ * Packets are dropped if there is not enough reorder entries.
+ * This part shall be modified!! We can just indicate all the
+ * packets in buffer and get reorder entries.
+ */
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "RxReorderIndicatePacket(): There is no reorder entry!! Packet is dropped!!\n");
+ {
+ int i;
+ for(i =0; i < prxb->nr_subframes; i++) {
+ dev_kfree_skb(prxb->subframes[i]);
+ }
+ kfree(prxb);
+ prxb = NULL;
+ }
+ }
+ }
+
+ /* Check if there is any packet need indicate.*/
+ while(!list_empty(&pTS->RxPendingPktList)) {
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): start RREORDER indicate\n",__FUNCTION__);
+#if 1
+ pReorderEntry = (PRX_REORDER_ENTRY)list_entry(pTS->RxPendingPktList.prev,RX_REORDER_ENTRY,List);
+ if( SN_LESS(pReorderEntry->SeqNum, pTS->RxIndicateSeq) ||
+ SN_EQUAL(pReorderEntry->SeqNum, pTS->RxIndicateSeq))
+ {
+ /* This protect buffer from overflow. */
+ if(index >= REORDER_WIN_SIZE) {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "RxReorderIndicatePacket(): Buffer overflow!! \n");
+ bPktInBuf = true;
+ break;
+ }
+
+ list_del_init(&pReorderEntry->List);
+
+ if(SN_EQUAL(pReorderEntry->SeqNum, pTS->RxIndicateSeq))
+ pTS->RxIndicateSeq = (pTS->RxIndicateSeq + 1) % 4096;
+
+ prxbIndicateArray[index] = pReorderEntry->prxb;
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): Indicate SeqNum %d!\n",__FUNCTION__, pReorderEntry->SeqNum);
+ index++;
+
+ list_add_tail(&pReorderEntry->List,&ieee->RxReorder_Unused_List);
+ } else {
+ bPktInBuf = true;
+ break;
+ }
+#endif
+ }
+
+ /* Handling pending timer. Set this timer to prevent from long time Rx buffering.*/
+ if(index>0) {
+ if(timer_pending(&pTS->RxPktPendingTimer)){
+ del_timer_sync(&pTS->RxPktPendingTimer);
+ }
+ pTS->RxTimeoutIndicateSeq = 0xffff;
+
+ if(index>REORDER_WIN_SIZE){
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "RxReorderIndicatePacket(): Rx Reorer buffer full!! \n");
+ spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags);
+ return;
+ }
+ rtllib_indicate_packets(ieee, prxbIndicateArray, index);
+ bPktInBuf = false;
+ }
+
+ if(bPktInBuf && pTS->RxTimeoutIndicateSeq==0xffff) {
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): SET rx timeout timer\n", __FUNCTION__);
+ pTS->RxTimeoutIndicateSeq = pTS->RxIndicateSeq;
+ mod_timer(&pTS->RxPktPendingTimer, jiffies + MSECS(pHTInfo->RxReorderPendingTime));
+ }
+ spin_unlock_irqrestore(&(ieee->reorder_spinlock), flags);
+}
+
+u8 parse_subframe(struct rtllib_device* ieee,struct sk_buff *skb,
+ struct rtllib_rx_stats *rx_stats,
+ struct rtllib_rxb *rxb,u8* src,u8* dst)
+{
+ struct rtllib_hdr_3addr *hdr = (struct rtllib_hdr_3addr* )skb->data;
+ u16 fc = le16_to_cpu(hdr->frame_ctl);
+
+ u16 LLCOffset= sizeof(struct rtllib_hdr_3addr);
+ u16 ChkLength;
+ bool bIsAggregateFrame = false;
+ u16 nSubframe_Length;
+ u8 nPadding_Length = 0;
+ u16 SeqNum=0;
+ struct sk_buff *sub_skb;
+ u8 *data_ptr;
+ /* just for debug purpose */
+ SeqNum = WLAN_GET_SEQ_SEQ(le16_to_cpu(hdr->seq_ctl));
+ if((RTLLIB_QOS_HAS_SEQ(fc))&&\
+ (((frameqos *)(skb->data + RTLLIB_3ADDR_LEN))->field.reserved)) {
+ bIsAggregateFrame = true;
+ }
+
+ if(RTLLIB_QOS_HAS_SEQ(fc)) {
+ LLCOffset += 2;
+ }
+ if(rx_stats->bContainHTC) {
+ LLCOffset += sHTCLng;
+ }
+ ChkLength = LLCOffset;/* + (Frame_WEP(frame)!=0 ?Adapter->MgntInfo.SecurityInfo.EncryptionHeadOverhead:0);*/
+
+ if( skb->len <= ChkLength ) {
+ return 0;
+ }
+
+ skb_pull(skb, LLCOffset);
+ ieee->bIsAggregateFrame = bIsAggregateFrame;
+ if(!bIsAggregateFrame) {
+ rxb->nr_subframes = 1;
+#ifndef RTK_DMP_PLATFORM
+#ifdef JOHN_NOCPY
+ rxb->subframes[0] = skb;
+#else
+ rxb->subframes[0] = skb_copy(skb, GFP_ATOMIC);
+#endif
+#else
+ rxb->subframes[0] = skb_clone(skb, GFP_ATOMIC);
+#endif
+ memcpy(rxb->src,src,ETH_ALEN);
+ memcpy(rxb->dst,dst,ETH_ALEN);
+ rxb->subframes[0]->dev = ieee->dev;
+ return 1;
+ } else {
+ rxb->nr_subframes = 0;
+ memcpy(rxb->src,src,ETH_ALEN);
+ memcpy(rxb->dst,dst,ETH_ALEN);
+ while(skb->len > ETHERNET_HEADER_SIZE) {
+ /* Offset 12 denote 2 mac address */
+ nSubframe_Length = *((u16*)(skb->data + 12));
+ nSubframe_Length = (nSubframe_Length>>8) + (nSubframe_Length<<8);
+
+ if(skb->len<(ETHERNET_HEADER_SIZE + nSubframe_Length)) {
+ printk("%s: A-MSDU parse error!! pRfd->nTotalSubframe : %d\n",\
+ __FUNCTION__,rxb->nr_subframes);
+ printk("%s: A-MSDU parse error!! Subframe Length: %d\n",__FUNCTION__, nSubframe_Length);
+ printk("nRemain_Length is %d and nSubframe_Length is : %d\n",skb->len,nSubframe_Length);
+ printk("The Packet SeqNum is %d\n",SeqNum);
+ return 0;
+ }
+
+ /* move the data point to data content */
+ skb_pull(skb, ETHERNET_HEADER_SIZE);
+
+#ifdef JOHN_NOCPY
+ sub_skb = skb_clone(skb, GFP_ATOMIC);
+ sub_skb->len = nSubframe_Length;
+ sub_skb->tail = sub_skb->data + nSubframe_Length;
+#else
+ /* Allocate new skb for releasing to upper layer */
+ sub_skb = dev_alloc_skb(nSubframe_Length + 12);
+ skb_reserve(sub_skb, 12);
+ data_ptr = (u8 *)skb_put(sub_skb, nSubframe_Length);
+ memcpy(data_ptr,skb->data,nSubframe_Length);
+#endif
+ sub_skb->dev = ieee->dev;
+ rxb->subframes[rxb->nr_subframes++] = sub_skb;
+ if(rxb->nr_subframes >= MAX_SUBFRAME_COUNT) {
+ RTLLIB_DEBUG_RX("ParseSubframe(): Too many Subframes! Packets dropped!\n");
+ break;
+ }
+ skb_pull(skb,nSubframe_Length);
+
+ if(skb->len != 0) {
+ nPadding_Length = 4 - ((nSubframe_Length + ETHERNET_HEADER_SIZE) % 4);
+ if(nPadding_Length == 4) {
+ nPadding_Length = 0;
+ }
+
+ if(skb->len < nPadding_Length) {
+ return 0;
+ }
+
+ skb_pull(skb,nPadding_Length);
+ }
+ }
+#ifdef JOHN_NOCPY
+ dev_kfree_skb(skb);
+#endif
+ return rxb->nr_subframes;
+ }
+}
+
+
+size_t rtllib_rx_get_hdrlen(struct rtllib_device *ieee, struct sk_buff *skb,
+ struct rtllib_rx_stats *rx_stats)
+{
+ struct rtllib_hdr_4addr *hdr = (struct rtllib_hdr_4addr *)skb->data;
+ u16 fc = le16_to_cpu(hdr->frame_ctl);
+ size_t hdrlen = 0;
+
+ hdrlen = rtllib_get_hdrlen(fc);
+ if (HTCCheck(ieee, skb->data)) {
+ if(net_ratelimit())
+ printk("%s: find HTCControl!\n", __func__);
+ hdrlen += 4;
+ rx_stats->bContainHTC = 1;
+ }
+
+ if(RTLLIB_QOS_HAS_SEQ(fc))
+ rx_stats->bIsQosData = 1;
+
+ return hdrlen;
+}
+
+int rtllib_rx_check_duplicate(struct rtllib_device *ieee, struct sk_buff *skb, u8 multicast)
+{
+ struct rtllib_hdr_4addr *hdr = (struct rtllib_hdr_4addr *)skb->data;
+ u16 fc, sc;
+ u8 frag, type, stype;
+
+ fc = le16_to_cpu(hdr->frame_ctl);
+ type = WLAN_FC_GET_TYPE(fc);
+ stype = WLAN_FC_GET_STYPE(fc);
+ sc = le16_to_cpu(hdr->seq_ctl);
+ frag = WLAN_GET_SEQ_FRAG(sc);
+
+#ifdef _RTL8192_EXT_PATCH_
+ if( (ieee->pHTInfo->bCurRxReorderEnable == false) ||
+ !ieee->current_network.qos_data.active||
+ !IsDataFrame(skb->data) ||
+ IsLegacyDataFrame(skb->data) ||
+ multicast) {
+ if (!multicast) {
+ if (is_duplicate_packet(ieee, hdr)){
+ return -1;
+ }
+ }
+ }
+#else
+ if( (ieee->pHTInfo->bCurRxReorderEnable == false) ||
+ !ieee->current_network.qos_data.active ||
+ !IsDataFrame(skb->data) ||
+ IsLegacyDataFrame(skb->data)) {
+ if(!((type == RTLLIB_FTYPE_MGMT) && (stype == RTLLIB_STYPE_BEACON))){
+ if (is_duplicate_packet(ieee, hdr)){
+ return -1;
+ }
+ }
+ }
+#endif
+ else {
+ PRX_TS_RECORD pRxTS = NULL;
+ if (GetTs(ieee, (PTS_COMMON_INFO*) &pRxTS, hdr->addr2,
+ (u8)Frame_QoSTID((u8*)(skb->data)), RX_DIR, true)) {
+ if ((fc & (1<<11)) && (frag == pRxTS->RxLastFragNum) &&
+ (WLAN_GET_SEQ_SEQ(sc) == pRxTS->RxLastSeqNum)) {
+ return -1;
+ } else {
+ pRxTS->RxLastFragNum = frag;
+ pRxTS->RxLastSeqNum = WLAN_GET_SEQ_SEQ(sc);
+ }
+ } else {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "ERR!!%s(): No TS!! Skip the check!!\n",__FUNCTION__);
+ return -1;
+ }
+ }
+
+ return 0;
+}
+void rtllib_rx_extract_addr(struct rtllib_device *ieee, struct rtllib_hdr_4addr *hdr, u8 *dst, u8 *src, u8 *bssid)
+{
+ u16 fc = le16_to_cpu(hdr->frame_ctl);
+
+ switch (fc & (RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) {
+ case RTLLIB_FCTL_FROMDS:
+ memcpy(dst, hdr->addr1, ETH_ALEN);
+ memcpy(src, hdr->addr3, ETH_ALEN);
+ memcpy(bssid, hdr->addr2, ETH_ALEN);
+ break;
+ case RTLLIB_FCTL_TODS:
+ memcpy(dst, hdr->addr3, ETH_ALEN);
+ memcpy(src, hdr->addr2, ETH_ALEN);
+ memcpy(bssid, hdr->addr1, ETH_ALEN);
+ break;
+ case RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS:
+ memcpy(dst, hdr->addr3, ETH_ALEN);
+ memcpy(src, hdr->addr4, ETH_ALEN);
+#ifdef _RTL8192_EXT_PATCH_
+ memcpy(bssid, ieee->current_mesh_network.bssid, ETH_ALEN);
+#else
+ memcpy(bssid, ieee->current_network.bssid, ETH_ALEN);
+#endif
+ break;
+ case 0:
+ memcpy(dst, hdr->addr1, ETH_ALEN);
+ memcpy(src, hdr->addr2, ETH_ALEN);
+ memcpy(bssid, hdr->addr3, ETH_ALEN);
+ break;
+ }
+}
+int rtllib_rx_data_filter(struct rtllib_device *ieee, u16 fc, u8 *dst, u8 *src, u8 *bssid, u8 *addr2)
+{
+ u8 zero_addr[ETH_ALEN] = {0};
+ u8 type, stype;
+
+ type = WLAN_FC_GET_TYPE(fc);
+ stype = WLAN_FC_GET_STYPE(fc);
+
+ /* Filter frames from different BSS */
+ if (((fc & RTLLIB_FCTL_DSTODS) != RTLLIB_FCTL_DSTODS)
+ && (compare_ether_addr(ieee->current_network.bssid, bssid) != 0)
+ && memcmp(ieee->current_network.bssid, zero_addr, ETH_ALEN)) {
+ return -1;
+ }
+
+ /* Filter packets sent by an STA that will be forwarded by AP */
+ if ( ieee->IntelPromiscuousModeInfo.bPromiscuousOn &&
+ ieee->IntelPromiscuousModeInfo.bFilterSourceStationFrame ) {
+ if ((fc & RTLLIB_FCTL_TODS) && !(fc & RTLLIB_FCTL_FROMDS) &&
+ (compare_ether_addr(dst, ieee->current_network.bssid) != 0) &&
+ (compare_ether_addr(bssid, ieee->current_network.bssid) == 0)) {
+ return -1;
+ }
+ }
+
+ /* Nullfunc frames may have PS-bit set, so they must be passed to
+ * hostap_handle_sta_rx() before being dropped here. */
+ if(!ieee->IntelPromiscuousModeInfo.bPromiscuousOn){
+ if (stype != RTLLIB_STYPE_DATA &&
+ stype != RTLLIB_STYPE_DATA_CFACK &&
+ stype != RTLLIB_STYPE_DATA_CFPOLL &&
+ stype != RTLLIB_STYPE_DATA_CFACKPOLL&&
+ stype != RTLLIB_STYPE_QOS_DATA
+ ) {
+ if (stype != RTLLIB_STYPE_NULLFUNC)
+ RTLLIB_DEBUG_DROP(
+ "RX: dropped data frame "
+ "with no data (type=0x%02x, "
+ "subtype=0x%02x)\n",
+ type, stype);
+ return -1;
+ }
+ }
+
+ if(ieee->iw_mode == IW_MODE_MESH) {
+#ifdef _RTL8192_EXT_PATCH_
+ /* check whether it exists the mesh entry for data packet */
+ if(ieee->ext_patch_rtllib_is_mesh&&\
+ (false ==ieee->ext_patch_rtllib_is_mesh(ieee, addr2))) {
+ if(ieee->only_mesh) {
+ return -1;
+ } else if(memcmp(bssid, ieee->current_network.bssid, ETH_ALEN)) {
+ return -1;
+ }
+ }
+#endif
+ } else {
+ /* packets from our adapter are dropped (echo) */
+ if (!memcmp(src, ieee->dev->dev_addr, ETH_ALEN))
+ return -1;
+
+ /* {broad,multi}cast packets to our BSS go through */
+ if (is_multicast_ether_addr(dst) || is_broadcast_ether_addr(dst)) {
+ if (memcmp(bssid, ieee->current_network.bssid, ETH_ALEN)) {
+ return -1;
+ }
+ }
+ }
+ return 0;
+}
+int rtllib_rx_get_crypt(
+ struct rtllib_device *ieee,
+ struct sk_buff *skb,
+ struct rtllib_crypt_data **crypt,
+ size_t hdrlen)
+{
+ struct rtllib_hdr_4addr *hdr = (struct rtllib_hdr_4addr *)skb->data;
+ u16 fc = le16_to_cpu(hdr->frame_ctl);
+ int idx = 0;
+
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if (ieee->host_decrypt && (!ieee->wapiInfo.bWapiEnable))
+#else
+ if (ieee->host_decrypt)
+#endif
+ {
+ if (skb->len >= hdrlen + 3)
+ idx = skb->data[hdrlen + 3] >> 6;
+
+#ifdef _RTL8192_EXT_PATCH_
+ *crypt = ieee->sta_crypt[idx];
+#else
+ *crypt = ieee->crypt[idx];
+#endif
+ /* allow NULL decrypt to indicate an station specific override
+ * for default encryption */
+ if (*crypt && ((*crypt)->ops == NULL ||
+ (*crypt)->ops->decrypt_mpdu == NULL))
+ *crypt = NULL;
+
+ if (!*crypt && (fc & RTLLIB_FCTL_WEP)) {
+ /* This seems to be triggered by some (multicast?)
+ * frames from other than current BSS, so just drop the
+ * frames silently instead of filling system log with
+ * these reports. */
+ RTLLIB_DEBUG_DROP("Decryption failed (not set)"
+ " (SA=" MAC_FMT ")\n",
+ MAC_ARG(hdr->addr2));
+ ieee->ieee_stats.rx_discards_undecryptable++;
+ return -1;
+ }
+ }
+
+ return 0;
+}
+int rtllib_rx_decrypt(
+ struct rtllib_device *ieee,
+ struct sk_buff *skb,
+ struct rtllib_rx_stats *rx_stats,
+ struct rtllib_crypt_data *crypt,
+ size_t hdrlen)
+{
+ struct rtllib_hdr_4addr *hdr;
+ int keyidx = 0;
+ u16 fc, sc;
+ u8 frag;
+
+ hdr = (struct rtllib_hdr_4addr *)skb->data;
+ fc = le16_to_cpu(hdr->frame_ctl);
+ sc = le16_to_cpu(hdr->seq_ctl);
+ frag = WLAN_GET_SEQ_FRAG(sc);
+
+ if((!rx_stats->Decrypted)){
+ ieee->need_sw_enc = 1;
+ }else{
+ ieee->need_sw_enc = 0;
+ }
+
+ if (ieee->host_decrypt && (fc & RTLLIB_FCTL_WEP) &&
+ ((keyidx = rtllib_rx_frame_decrypt(ieee, skb, crypt)) < 0)
+#if defined (RTL8192S_WAPI_SUPPORT)
+ && (!ieee->wapiInfo.bWapiEnable)
+#endif
+ )
+ {
+ printk("%s: decrypt frame error\n", __func__);
+ return -1;
+ }
+
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if(ieee->wapiInfo.bWapiEnable){
+ if(ieee->pairwise_key_type == KEY_TYPE_SMS4){
+ if(false == SecSWSMS4Decryption(ieee, skb, rx_stats)){
+ WAPI_TRACE(WAPI_ERR, "%s():SMS4 decrypt frame error\n",__func__);
+ return -1;
+ }
+ }
+ }
+#endif
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+ if ((frag != 0 || (fc & RTLLIB_FCTL_MOREFRAGS))) {
+ int flen;
+ struct sk_buff *frag_skb = rtllib_frag_cache_get(ieee, hdr);
+ RTLLIB_DEBUG_FRAG("Rx Fragment received (%u)\n", frag);
+
+ if (!frag_skb) {
+ RTLLIB_DEBUG(RTLLIB_DL_RX | RTLLIB_DL_FRAG,
+ "Rx cannot get skb from fragment "
+ "cache (morefrag=%d seq=%u frag=%u)\n",
+ (fc & RTLLIB_FCTL_MOREFRAGS) != 0,
+ WLAN_GET_SEQ_SEQ(sc), frag);
+ return -1;
+ }
+ flen = skb->len;
+ if (frag != 0)
+ flen -= hdrlen;
+
+ if (frag_skb->tail + flen > frag_skb->end) {
+ printk(KERN_WARNING "%s: host decrypted and "
+ "reassembled frame did not fit skb\n",
+ __func__);
+ rtllib_frag_cache_invalidate(ieee, hdr);
+ return -1;
+ }
+
+ if (frag == 0) {
+ /* copy first fragment (including full headers) into
+ * beginning of the fragment cache skb */
+ memcpy(skb_put(frag_skb, flen), skb->data, flen);
+ } else {
+ /* append frame payload to the end of the fragment
+ * cache skb */
+ memcpy(skb_put(frag_skb, flen), skb->data + hdrlen,
+ flen);
+ }
+ dev_kfree_skb_any(skb);
+ skb = NULL;
+
+ if (fc & RTLLIB_FCTL_MOREFRAGS) {
+ /* more fragments expected - leave the skb in fragment
+ * cache for now; it will be delivered to upper layers
+ * after all fragments have been received */
+ return -2;
+ }
+
+ /* this was the last fragment and the frame will be
+ * delivered, so remove skb from fragment cache */
+ skb = frag_skb;
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+ rtllib_frag_cache_invalidate(ieee, hdr);
+ }
+
+ /* skb: hdr + (possible reassembled) full MSDU payload; possibly still
+ * encrypted/authenticated */
+ if (ieee->host_decrypt && (fc & RTLLIB_FCTL_WEP) &&
+#if defined (RTL8192S_WAPI_SUPPORT)
+ (!ieee->wapiInfo.bWapiEnable) &&
+#endif
+ rtllib_rx_frame_decrypt_msdu(ieee, skb, keyidx, crypt))
+ {
+ printk("%s: ==>decrypt msdu error\n", __func__);
+ return -1;
+ }
+
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+ if (crypt && !(fc & RTLLIB_FCTL_WEP) && !ieee->open_wep) {
+ if (/*ieee->ieee802_1x &&*/
+ rtllib_is_eapol_frame(ieee, skb, hdrlen)) {
+
+#ifdef CONFIG_RTLLIB_DEBUG
+ /* pass unencrypted EAPOL frames even if encryption is
+ * configured */
+ struct eapol *eap = (struct eapol *)(skb->data +
+ 24);
+ RTLLIB_DEBUG_EAP("RX: IEEE 802.1X EAPOL frame: %s\n",
+ eap_get_type(eap->type));
+#endif
+ } else {
+ RTLLIB_DEBUG_DROP(
+ "encryption configured, but RX "
+ "frame not encrypted (SA=" MAC_FMT ")\n",
+ MAC_ARG(hdr->addr2));
+ return -1;
+ }
+ }
+
+#ifdef CONFIG_RTLLIB_DEBUG
+ if (crypt && !(fc & RTLLIB_FCTL_WEP) &&
+ rtllib_is_eapol_frame(ieee, skb, hdrlen)) {
+ struct eapol *eap = (struct eapol *)(skb->data +
+ 24);
+ RTLLIB_DEBUG_EAP("RX: IEEE 802.1X EAPOL frame: %s\n",
+ eap_get_type(eap->type));
+ }
+#endif
+
+ if (crypt && !(fc & RTLLIB_FCTL_WEP) && !ieee->open_wep &&
+ !rtllib_is_eapol_frame(ieee, skb, hdrlen)) {
+ RTLLIB_DEBUG_DROP(
+ "dropped unencrypted RX data "
+ "frame from " MAC_FMT
+ " (drop_unencrypted=1)\n",
+ MAC_ARG(hdr->addr2));
+ return -1;
+ }
+
+ if(rtllib_is_eapol_frame(ieee, skb, hdrlen)) {
+ printk(KERN_WARNING "RX: IEEE802.1X EPAOL frame!\n");
+ }
+
+ return 0;
+}
+void rtllib_rx_check_leave_lps(struct rtllib_device *ieee, u8 unicast, u8 nr_subframes)
+{
+#if !defined(RTL8192SU) && !defined(RTL8192U)
+#ifdef ENABLE_LPS
+ if(unicast){
+ ieee->LinkDetectInfo.NumRxUnicastOkInPeriod += nr_subframes;
+
+ if((ieee->state == RTLLIB_LINKED) /*&& !MgntInitAdapterInProgress(pMgntInfo)*/)
+ {
+ if( ((ieee->LinkDetectInfo.NumRxUnicastOkInPeriod +ieee->LinkDetectInfo.NumTxOkInPeriod) > 8 ) ||
+ (ieee->LinkDetectInfo.NumRxUnicastOkInPeriod > 2) )
+ {
+ if(ieee->LeisurePSLeave)
+ ieee->LeisurePSLeave(ieee->dev);
+ }
+ }
+ }
+#endif
+#endif
+ ieee->last_rx_ps_time = jiffies;
+}
+void rtllib_rx_indicate_pkt_legacy(
+ struct rtllib_device *ieee,
+ struct rtllib_rx_stats *rx_stats,
+ struct rtllib_rxb* rxb,
+ u8 *dst,
+ u8 *src)
+{
+#ifndef _RTL8192_EXT_PATCH_
+ struct net_device *dev = ieee->dev;
+#endif
+ u16 ethertype;
+ int i = 0;
+
+ if(rxb == NULL){
+ printk("%s: rxb is NULL!!\n", __func__);
+ return ;
+ }
+
+ for(i = 0; i<rxb->nr_subframes; i++) {
+ struct sk_buff *sub_skb = rxb->subframes[i];
+
+ if (sub_skb) {
+ /* convert hdr + possible LLC headers into Ethernet header */
+ ethertype = (sub_skb->data[6] << 8) | sub_skb->data[7];
+ if (sub_skb->len >= 8 &&
+ ((memcmp(sub_skb->data, rfc1042_header, SNAP_SIZE) == 0 &&
+ ethertype != ETH_P_AARP && ethertype != ETH_P_IPX) ||
+ memcmp(sub_skb->data, bridge_tunnel_header, SNAP_SIZE) == 0)) {
+ /* remove RFC1042 or Bridge-Tunnel encapsulation and
+ * replace EtherType */
+ skb_pull(sub_skb, SNAP_SIZE);
+ memcpy(skb_push(sub_skb, ETH_ALEN), src, ETH_ALEN);
+ memcpy(skb_push(sub_skb, ETH_ALEN), dst, ETH_ALEN);
+ } else {
+ u16 len;
+ /* Leave Ethernet header part of hdr and full payload */
+ len = htons(sub_skb->len);
+ memcpy(skb_push(sub_skb, 2), &len, 2);
+ memcpy(skb_push(sub_skb, ETH_ALEN), src, ETH_ALEN);
+ memcpy(skb_push(sub_skb, ETH_ALEN), dst, ETH_ALEN);
+ }
+
+ ieee->stats.rx_packets++;
+ ieee->stats.rx_bytes += sub_skb->len;
+
+ if(is_multicast_ether_addr(dst)) {
+ ieee->stats.multicast++;
+ }
+
+ /* Indicat the packets to upper layer */
+ memset(sub_skb->cb, 0, sizeof(sub_skb->cb));
+#ifdef _RTL8192_EXT_PATCH_
+ sub_skb->protocol = eth_type_trans(sub_skb, sub_skb->dev);
+#else
+ sub_skb->protocol = eth_type_trans(sub_skb, dev);
+ sub_skb->dev = dev;
+#endif
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
+ sub_skb->dev->stats.rx_packets++;
+ sub_skb->dev->stats.rx_bytes += sub_skb->len;
+#endif
+#ifdef TCP_CSUM_OFFLOAD_RX
+ if ( rx_stats->tcp_csum_valid)
+ sub_skb->ip_summed = CHECKSUM_UNNECESSARY;
+ else
+ sub_skb->ip_summed = CHECKSUM_NONE;
+#else
+ sub_skb->ip_summed = CHECKSUM_NONE; /* 802.11 crc not sufficient */
+#endif
+ netif_rx(sub_skb);
+ }
+ }
+ kfree(rxb);
+ rxb = NULL;
+}
+int rtllib_rx_InfraAdhoc(struct rtllib_device *ieee, struct sk_buff *skb,
+ struct rtllib_rx_stats *rx_stats)
+{
+ struct net_device *dev = ieee->dev;
+ struct rtllib_hdr_4addr *hdr = (struct rtllib_hdr_4addr *)skb->data;
+ struct rtllib_crypt_data *crypt = NULL;
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ struct sta_info * psta = NULL;
+#endif
+ struct rtllib_rxb* rxb = NULL;
+ PRX_TS_RECORD pTS = NULL;
+ u16 fc, sc, SeqNum = 0;
+ u8 type, stype, multicast = 0, unicast = 0, nr_subframes = 0, TID = 0;
+ u8 dst[ETH_ALEN], src[ETH_ALEN], bssid[ETH_ALEN] = {0}, *payload;
+ size_t hdrlen = 0;
+#if defined (RTL8192S_WAPI_SUPPORT)
+ u8 wapiDectResult = 0;
+#endif
+ bool bToOtherSTA = false;
+ int ret = 0, i = 0;
+
+ hdr = (struct rtllib_hdr_4addr *)skb->data;
+ fc = le16_to_cpu(hdr->frame_ctl);
+ type = WLAN_FC_GET_TYPE(fc);
+ stype = WLAN_FC_GET_STYPE(fc);
+ sc = le16_to_cpu(hdr->seq_ctl);
+
+ /*Filter pkt not to me*/
+ multicast = is_multicast_ether_addr(hdr->addr1)|is_broadcast_ether_addr(hdr->addr1);
+ unicast = !multicast;
+ if (unicast && (compare_ether_addr(dev->dev_addr, hdr->addr1) != 0)) {
+ if(ieee->bNetPromiscuousMode)
+ bToOtherSTA = true;
+ else
+ goto rx_dropped;
+ }
+
+ /*Filter pkt has too small length */
+ hdrlen = rtllib_rx_get_hdrlen(ieee, skb, rx_stats);
+ if(skb->len < hdrlen){
+ printk("%s():ERR!!! skb->len is smaller than hdrlen\n",__FUNCTION__);
+ goto rx_dropped;
+ }
+
+ /* Filter Duplicate pkt */
+ ret = rtllib_rx_check_duplicate(ieee, skb, multicast);
+ if(ret < 0)
+ goto rx_dropped;
+
+ /* Filter CTRL Frame */
+ if (type == RTLLIB_FTYPE_CTL) {
+ goto rx_dropped;
+ }
+
+ /* Filter MGNT Frame */
+ if (type == RTLLIB_FTYPE_MGMT) {
+ if(bToOtherSTA)
+ goto rx_dropped;
+ if (rtllib_rx_frame_mgmt(ieee, skb, rx_stats, type, stype))
+ goto rx_dropped;
+ else
+ goto rx_exit;
+ }
+
+ /* Filter WAPI DATA Frame */
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if(ieee->WapiSupport && ieee->wapiInfo.bWapiEnable){
+ wapiDectResult = SecIsWAIPacket(ieee, skb);
+ if(wapiDectResult !=0){
+ if(memcmp(&ieee->wapiInfo.wapiSeqnumAndFragNum,&sc,2))
+ WapiHandleRecvPacket(ieee, skb, wapiDectResult);
+ memcpy(&ieee->wapiInfo.wapiSeqnumAndFragNum,&sc,2);
+ dev_kfree_skb_any(skb);
+ goto rx_exit;
+ }
+ }
+#endif
+
+ /* Update statstics for AP roaming */
+ if(!bToOtherSTA){
+ ieee->LinkDetectInfo.NumRecvDataInPeriod++;
+ ieee->LinkDetectInfo.NumRxOkInPeriod++;
+ }
+ dev->last_rx = jiffies;
+
+ /* Data frame - extract src/dst addresses */
+ rtllib_rx_extract_addr(ieee, hdr, dst, src, bssid);
+
+ /* Filter Data frames */
+ ret = rtllib_rx_data_filter(ieee, fc, dst, src, bssid, hdr->addr2);
+ if(ret < 0)
+ goto rx_dropped;
+
+ if(skb->len == hdrlen){
+ goto rx_dropped;
+ }
+
+ /* Send pspoll based on moredata */
+#ifdef ENABLE_LPS
+ if ((ieee->iw_mode == IW_MODE_INFRA) && (ieee->sta_sleep == 1)
+ && (ieee->polling) && (!bToOtherSTA)) {
+ if (WLAN_FC_MORE_DATA(fc)) {
+ /* more data bit is set, let's request a new frame from the AP */
+ rtllib_sta_ps_send_pspoll_frame(ieee);
+ } else {
+ ieee->polling = false;
+ }
+ }
+#endif
+
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ if(ieee->iw_mode == IW_MODE_ADHOC){
+ psta = GetStaInfo(ieee, src);
+ if(NULL != psta)
+ psta->LastActiveTime = jiffies;
+ }
+#endif
+
+ /* Get crypt if encrypted */
+ ret = rtllib_rx_get_crypt(ieee, skb, &crypt, hdrlen);
+ if(ret == -1)
+ goto rx_dropped;
+
+ /* Decrypt data frame (including reassemble) */
+ ret = rtllib_rx_decrypt(ieee, skb, rx_stats, crypt, hdrlen);
+ if(ret == -1)
+ goto rx_dropped;
+ else if(ret == -2)
+ goto rx_exit;
+
+ /* Get TS for Rx Reorder */
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+ if(ieee->current_network.qos_data.active && IsQoSDataFrame(skb->data)
+ && !is_multicast_ether_addr(hdr->addr1) && !is_broadcast_ether_addr(hdr->addr1)
+ && (!bToOtherSTA))
+ {
+ TID = Frame_QoSTID(skb->data);
+ SeqNum = WLAN_GET_SEQ_SEQ(sc);
+ GetTs(ieee,(PTS_COMMON_INFO*) &pTS,hdr->addr2,TID,RX_DIR,true);
+ if(TID !=0 && TID !=3){
+ ieee->bis_any_nonbepkts = true;
+ }
+ }
+
+ /* Parse rx data frame (For AMSDU) */
+ /* skb: hdr + (possible reassembled) full plaintext payload */
+ payload = skb->data + hdrlen;
+ rxb = (struct rtllib_rxb*)kmalloc(sizeof(struct rtllib_rxb),GFP_ATOMIC);
+ if(rxb == NULL)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR,"%s(): kmalloc rxb error\n",__FUNCTION__);
+ goto rx_dropped;
+ }
+ /* to parse amsdu packets */
+ /* qos data packets & reserved bit is 1 */
+ if(parse_subframe(ieee,skb,rx_stats,rxb,src,dst) == 0) {
+ /* only to free rxb, and not submit the packets to upper layer */
+ for(i =0; i < rxb->nr_subframes; i++) {
+ dev_kfree_skb(rxb->subframes[i]);
+ }
+ kfree(rxb);
+ rxb = NULL;
+ goto rx_dropped;
+ }
+
+ /* Update WAPI PN */
+#ifdef RTL8192S_WAPI_SUPPORT
+ if(ieee->wapiInfo.bWapiEnable){
+ if(rxb){
+ rxb->UserPriority = TID;
+ memcpy(rxb->WapiTempPN, rx_stats->WapiTempPN, 16);
+ memcpy(rxb->WapiSrcAddr, rx_stats->WapiSrcAddr, 6);
+ rxb->bWapiCheckPNInDecrypt = rx_stats->bWapiCheckPNInDecrypt;
+ }
+ }
+#endif
+
+ /* Check if leave LPS */
+ if(!bToOtherSTA){
+ if(ieee->bIsAggregateFrame)
+ nr_subframes = rxb->nr_subframes;
+ else
+ nr_subframes = 1;
+ rtllib_rx_check_leave_lps(ieee, unicast, nr_subframes);
+ }
+
+ /* Indicate packets to upper layer or Rx Reorder */
+ if(ieee->pHTInfo->bCurRxReorderEnable == false ||pTS == NULL || bToOtherSTA){
+ rtllib_rx_indicate_pkt_legacy(ieee, rx_stats, rxb, dst, src);
+ }else{
+#ifdef TCP_CSUM_OFFLOAD_RX
+ rxb->tcp_csum_valid = rx_stats->tcp_csum_valid;
+#endif
+ RxReorderIndicatePacket(ieee, rxb, pTS, SeqNum);
+ }
+
+#ifndef JOHN_NOCPY
+ dev_kfree_skb(skb);
+#endif
+
+ rx_exit:
+ return 1;
+
+ rx_dropped:
+ if (rxb != NULL)
+ {
+ kfree(rxb);
+ rxb = NULL;
+ }
+ ieee->stats.rx_dropped++;
+
+ /* Returning 0 indicates to caller that we have not handled the SKB--
+ * so it is still allocated and can be used again by underlying
+ * hardware as a DMA target */
+ return 0;
+}
+
+int rtllib_rx_Master(struct rtllib_device *ieee, struct sk_buff *skb,
+ struct rtllib_rx_stats *rx_stats)
+{
+ return 0;
+}
+int rtllib_rx_Monitor(struct rtllib_device *ieee, struct sk_buff *skb,
+ struct rtllib_rx_stats *rx_stats)
+{
+ struct rtllib_hdr_4addr *hdr = (struct rtllib_hdr_4addr *)skb->data;
+ u16 fc = le16_to_cpu(hdr->frame_ctl);
+ size_t hdrlen = rtllib_get_hdrlen(fc);
+
+ if(skb->len < hdrlen){
+ printk("%s():ERR!!! skb->len is smaller than hdrlen\n", __func__);
+ return 0;
+ }
+
+ if (HTCCheck(ieee, skb->data)) {
+ if(net_ratelimit())
+ printk("%s: Find HTCControl!\n", __func__);
+ hdrlen += 4;
+ }
+
+#if WIRELESS_EXT > 15
+ rtllib_monitor_rx(ieee, skb, rx_stats, hdrlen);
+ ieee->stats.rx_packets++;
+ ieee->stats.rx_bytes += skb->len;
+#endif
+ return 1;
+}
+#ifdef _RTL8192_EXT_PATCH_
+extern u8 msh_parse_subframe(struct rtllib_device *ieee,struct sk_buff *skb, struct rtllib_rxb *rxb);
+extern int msh_rx_process_dataframe(struct rtllib_device *ieee, struct rtllib_rxb *rxb, struct rtllib_rx_stats *rx_stats);
+int rtllib_rx_get_mesh_crypt(
+ struct rtllib_device *ieee,
+ struct sk_buff *skb,
+ struct rtllib_crypt_data **crypt,
+ size_t hdrlen)
+{
+ struct rtllib_hdr_4addr *hdr = (struct rtllib_hdr_4addr *)skb->data;
+ u16 fc = le16_to_cpu(hdr->frame_ctl);
+ int idx = 0, i;
+ u8 find_crypt = false;
+
+ if (ieee->host_decrypt){
+ if (skb->len >= hdrlen + 3)
+ idx = skb->data[hdrlen + 3] >> 6;
+ if (ieee->mesh_sec_type == 1) {
+ if(ieee->mesh_security_setting==1 ||ieee->mesh_security_setting==3){
+ i = rtllib_find_MP(ieee, hdr->addr2, 0);
+ if(is_multicast_ether_addr(hdr->addr1) || is_broadcast_ether_addr(hdr->addr1)){
+ if(ieee->only_mesh){
+ if(i != -1){
+ i=0;
+ }else{
+ printk("%s: Err find MP ("MAC_FMT")!SAE, Multicast and only mesh\n", __func__, MAC_ARG(hdr->addr2));
+ return -1;
+ }
+ }else{
+ if(i != -1){
+ i=0;
+ }else{
+ find_crypt = true;
+ *crypt = ieee->sta_crypt[idx];
+ }
+ }
+ }else{
+ if(ieee->only_mesh){
+ if (i == -1){
+ printk("%s: Err find MP ("MAC_FMT")!SAE, Unicast and only mesh\n", __func__, MAC_ARG(hdr->addr2));
+ return -1;
+ }
+ }else{
+ if (i == -1){
+ find_crypt = true;
+ *crypt = ieee->sta_crypt[idx];
+ }
+ }
+ }
+ if(find_crypt == false){
+ if(ieee->cryptlist[i] == NULL)
+ return -1;
+ else
+ *crypt = ieee->cryptlist[i]->crypt[idx];
+ }
+ }
+ }
+ else {
+ *crypt = ieee->cryptlist[0]->crypt[idx];
+ if(*crypt){
+ int i = rtllib_find_MP(ieee, hdr->addr2, 0);
+ if(ieee->only_mesh){
+ if (i == -1){
+ printk("%s: Err find MP ("MAC_FMT")!Not SAE, Only mesh.\n", __func__, MAC_ARG(hdr->addr2));
+ return -1;
+ }
+ if (ieee->cryptlist[i] && ieee->cryptlist[i]->crypt[idx])
+ *crypt = ieee->cryptlist[i]->crypt[idx];
+ else{
+ *crypt = NULL;
+ printk("%s: Err find crypt!Not SAE, Only mesh.\n", __func__);
+ return -1;
+ }
+ }else{
+ if(i != -1)
+ {
+ if (ieee->cryptlist[i] && ieee->cryptlist[i]->crypt[idx])
+ *crypt = ieee->cryptlist[i]->crypt[idx];
+ else{
+ *crypt = NULL;
+ printk("%s: Err find crypt!Not SAE, Only mesh.\n", __func__);
+ return -1;
+ }
+ }
+ else
+ *crypt = ieee->sta_crypt[idx];
+ }
+ }
+ else{
+ if(!ieee->ext_patch_rtllib_is_mesh(ieee,hdr->addr2))
+ *crypt = ieee->sta_crypt[idx];
+ }
+ }
+
+ /* allow NULL decrypt to indicate an station specific override
+ * for default encryption */
+ if (*crypt && ((*crypt)->ops == NULL ||
+ (*crypt)->ops->decrypt_mpdu == NULL))
+ *crypt = NULL;
+
+ if (!*crypt && (fc & RTLLIB_FCTL_WEP)) {
+ /* This seems to be triggered by some (multicast?)
+ * frames from other than current BSS, so just drop the
+ * frames silently instead of filling system log with
+ * these reports. */
+ RTLLIB_DEBUG_DROP("Decryption failed (not set)"
+ " (SA=" MAC_FMT ")\n",
+ MAC_ARG(hdr->addr2));
+ ieee->ieee_stats.rx_discards_undecryptable++;
+ return -1;
+ }
+ }
+ return 0;
+}
+#endif
+
+int rtllib_rx_Mesh(struct rtllib_device *ieee, struct sk_buff *skb,
+ struct rtllib_rx_stats *rx_stats)
+{
+#ifdef _RTL8192_EXT_PATCH_
+ struct net_device *dev = ieee->dev;
+ struct rtllib_hdr_4addr *hdr = (struct rtllib_hdr_4addr *)skb->data;
+ struct rtllib_crypt_data *crypt = NULL;
+ struct rtllib_rxb* rxb = NULL;
+ PRX_TS_RECORD pTS = NULL;
+ u16 fc, sc, SeqNum = 0;
+ u8 type, stype, multicast = 0, unicast = 0, TID = 0;
+ u8 dst[ETH_ALEN], src[ETH_ALEN], bssid[ETH_ALEN] = {0}, *payload;
+ size_t hdrlen = 0;
+ int ret = 0, i = 0;
+
+ hdr = (struct rtllib_hdr_4addr *)skb->data;
+ fc = le16_to_cpu(hdr->frame_ctl);
+ type = WLAN_FC_GET_TYPE(fc);
+ stype = WLAN_FC_GET_STYPE(fc);
+ sc = le16_to_cpu(hdr->seq_ctl);
+
+ /*Filter pkt not to me*/
+ multicast = is_multicast_ether_addr(hdr->addr1)|is_broadcast_ether_addr(hdr->addr1);
+ unicast = !multicast;
+ if (unicast && (compare_ether_addr(dev->dev_addr, hdr->addr1) != 0)) {
+ goto rx_dropped;
+ }
+
+ /*Filter pkt has too small length */
+ hdrlen = rtllib_rx_get_hdrlen(ieee, skb, rx_stats);
+ if(skb->len < hdrlen){
+ printk("%s():ERR!!! skb->len is smaller than hdrlen\n",__FUNCTION__);
+ goto rx_dropped;
+ }
+
+ /* Filter Duplicate pkt */
+ ret = rtllib_rx_check_duplicate(ieee, skb, multicast);
+ if(ret < 0){
+ goto rx_dropped;
+ }
+
+ /* Update PeerMP expire time */
+ if(ieee->ext_patch_rtllib_rx_mgt_update_expire)
+ ieee->ext_patch_rtllib_rx_mgt_update_expire( ieee, skb );
+
+ /* Filter CTRL Frame */
+ if (type == RTLLIB_FTYPE_CTL) {
+ goto rx_dropped;
+ }
+
+ /* Filter MGNT Frame */
+ if (type == RTLLIB_FTYPE_MGMT) {
+ if (rtllib_rx_frame_mgmt(ieee, skb, rx_stats, type, stype)){
+ printk("%s: Mgnt Frame! ret!=0\n", __func__);
+ goto rx_dropped;
+ }
+ else
+ goto rx_exit;
+ }
+
+ /* Update statstics for AP roaming */
+ if(ieee->only_mesh == 0){
+ ieee->LinkDetectInfo.NumRecvDataInPeriod++;
+ ieee->LinkDetectInfo.NumRxOkInPeriod++;
+ dev->last_rx = jiffies;
+ }
+
+ /* Data frame - extract src/dst addresses */
+ rtllib_rx_extract_addr(ieee, hdr, dst, src, bssid);
+
+ /* Filter Data frames */
+ ret = rtllib_rx_data_filter(ieee, fc, dst, src, bssid, hdr->addr2);
+ if(ret < 0){
+ goto rx_dropped;
+ }
+ if(skb->len == hdrlen){
+ goto rx_dropped;
+ }
+
+ /* Get crypt if encrypted */
+ ret = rtllib_rx_get_mesh_crypt(ieee, skb, &crypt, hdrlen);
+ if(ret == -1)
+ goto rx_dropped;
+
+ /* Decrypt data frame (including reassemble) */
+ ret = rtllib_rx_decrypt(ieee, skb, rx_stats, crypt, hdrlen);
+ if(ret == -1)
+ goto rx_dropped;
+ else if(ret == -2)
+ goto rx_exit;
+
+ /* Get TS for Rx Reorder */
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+ if(ieee->current_network.qos_data.active && IsQoSDataFrame(skb->data)
+ && !is_multicast_ether_addr(hdr->addr1) && !is_broadcast_ether_addr(hdr->addr1))
+ {
+ TID = Frame_QoSTID(skb->data);
+ SeqNum = WLAN_GET_SEQ_SEQ(sc);
+ GetTs(ieee,(PTS_COMMON_INFO*) &pTS,hdr->addr2,TID,RX_DIR,true);
+ if(TID !=0 && TID !=3){
+ ieee->bis_any_nonbepkts = true;
+ }
+ }
+
+ /* Parse rx data frame */
+ if((fc & (WIFI_MESH_TYPE | RTLLIB_FCTL_DSTODS))
+ == (WIFI_MESH_TYPE | RTLLIB_FCTL_DSTODS))
+ {
+ /* Parse Mesh data frame */
+ rxb = (struct rtllib_rxb*)kmalloc(sizeof(struct rtllib_rxb),GFP_ATOMIC);
+ if(rxb == NULL)
+ {
+ printk("%s(): kmalloc rxb error\n", __func__);
+ goto rx_dropped;
+ }
+ memset(rxb, 0, sizeof(struct rtllib_rxb));
+ if(msh_parse_subframe(ieee, skb, rxb)==0){
+ /* only to free rxb, and not submit the packets to upper layer */
+ for(i =0; i < rxb->nr_subframes; i++) {
+ if(rxb->subframes[i])
+ dev_kfree_skb(rxb->subframes[i]);
+ }
+ kfree(rxb);
+ rxb = NULL;
+ goto rx_dropped;
+ }
+ ret = msh_rx_process_dataframe(ieee,rxb,rx_stats);
+ if(ret < 0) {
+ for(i =0; i < rxb->nr_subframes; i++) {
+ if(rxb->subframes[i])
+ dev_kfree_skb(rxb->subframes[i]);
+ }
+ kfree(rxb);
+ rxb = NULL;
+ goto rx_dropped;
+ }else{
+ kfree(rxb);
+ rxb = NULL;
+ }
+ }
+ else{
+ /* Parse INFRA data frame (Server Ra0 mode) */
+ /* skb: hdr + (possible reassembled) full plaintext payload */
+ payload = skb->data + hdrlen;
+ rxb = (struct rtllib_rxb*)kmalloc(sizeof(struct rtllib_rxb),GFP_ATOMIC);
+ if(rxb == NULL)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR,"%s(): kmalloc rxb error\n", __func__);
+ goto rx_dropped;
+ }
+ /* to parse amsdu packets */
+ /* qos data packets & reserved bit is 1 */
+ if(parse_subframe(ieee,skb,rx_stats,rxb,src,dst) == 0) {
+ /* only to free rxb, and not submit the packets to upper layer */
+ for(i =0; i < rxb->nr_subframes; i++) {
+ dev_kfree_skb(rxb->subframes[i]);
+ }
+ kfree(rxb);
+ rxb = NULL;
+ goto rx_dropped;
+ }
+
+ /* Indicate packets to upper layer or Rx Reorder */
+ if(ieee->pHTInfo->bCurRxReorderEnable == false ||pTS == NULL){
+ rtllib_rx_indicate_pkt_legacy(ieee, rx_stats, rxb, dst, src);
+ }else{
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): REORDER ENABLE AND PTS not NULL, and we will enter RxReorderIndicatePacket()\n",__FUNCTION__);
+#ifdef TCP_CSUM_OFFLOAD_RX
+ rxb->tcp_csum_valid = rx_stats->tcp_csum_valid;
+#endif
+ RxReorderIndicatePacket(ieee, rxb, pTS, SeqNum);
+ }
+ }
+#ifndef JOHN_NOCPY
+ dev_kfree_skb(skb);
+#endif
+
+ rx_exit:
+ return 1;
+
+ rx_dropped:
+ if (rxb != NULL)
+ {
+ kfree(rxb);
+ rxb = NULL;
+ }
+ ieee->stats.rx_dropped++;
+
+ /* Returning 0 indicates to caller that we have not handled the SKB--
+ * so it is still allocated and can be used again by underlying
+ * hardware as a DMA target */
+#endif
+ return 0;
+}
+
+#if 1
+/* All received frames are sent to this function. @skb contains the frame in
+ * IEEE 802.11 format, i.e., in the format it was sent over air.
+ * This function is called only as a tasklet (software IRQ). */
+int rtllib_rx(struct rtllib_device *ieee, struct sk_buff *skb,
+ struct rtllib_rx_stats *rx_stats)
+{
+ int ret = 0;
+
+ if((NULL==ieee) || (NULL==skb) || (NULL==rx_stats)){
+ printk(KERN_INFO "%s: Input parameters NULL!\n", __func__);
+ goto rx_dropped;
+ }
+ if (skb->len < 10) {
+ printk(KERN_INFO "%s: SKB length < 10 \n", __func__);
+ goto rx_dropped;
+ }
+
+ switch(ieee->iw_mode){
+ case IW_MODE_ADHOC:
+ case IW_MODE_INFRA:
+ ret = rtllib_rx_InfraAdhoc(ieee, skb, rx_stats);
+ break;
+ case IW_MODE_MASTER:
+ case IW_MODE_REPEAT:
+ ret = rtllib_rx_Master(ieee, skb, rx_stats);
+ break;
+ case IW_MODE_MONITOR:
+ ret = rtllib_rx_Monitor(ieee, skb, rx_stats);
+ break;
+ case IW_MODE_MESH:
+ ret = rtllib_rx_Mesh(ieee, skb, rx_stats);
+ break;
+ default:
+ printk(KERN_INFO"%s: ERR iw mode!!!\n", __func__);
+ break;
+ }
+
+ return ret;
+
+ rx_dropped:
+ ieee->stats.rx_dropped++;
+ return 0;
+}
+#else
+int rtllib_rx(struct rtllib_device *ieee, struct sk_buff *skb,
+ struct rtllib_rx_stats *rx_stats)
+{
+ struct net_device *dev = ieee->dev;
+ struct rtllib_hdr_4addr *hdr;
+ size_t hdrlen;
+ u16 fc, type, stype, sc;
+ struct net_device_stats *stats = NULL;
+ unsigned int frag;
+ u8 *payload;
+ u16 ethertype;
+ u8 TID = 0;
+ u16 SeqNum = 0;
+ PRX_TS_RECORD pTS = NULL;
+#ifdef NOT_YET
+ struct net_device *wds = NULL;
+ struct sk_buff *skb2 = NULL;
+ struct net_device *wds = NULL;
+ int frame_authorized = 0;
+ int from_assoc_ap = 0;
+ void *sta = NULL;
+#endif
+ u8 dst[ETH_ALEN];
+ u8 src[ETH_ALEN];
+ u8 bssid[ETH_ALEN] = {0};
+ u8 zero_addr[ETH_ALEN] = {0};
+ struct rtllib_crypt_data *crypt = NULL;
+ int keyidx = 0;
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ struct sta_info * psta = NULL;
+#endif
+ bool unicast_packet = false;
+ int i;
+ struct rtllib_rxb* rxb = NULL;
+ int multicast = 0;
+ bool tmp_dump = false;
+#if defined _RTL8192_EXT_PATCH_
+ int ret = 0;
+#endif
+ bool bToOtherSTA = false;
+#if defined (RTL8192S_WAPI_SUPPORT)
+ u8 wapiDectResult = 0;
+#endif
+ hdr = (struct rtllib_hdr_4addr *)skb->data;
+ stats = &ieee->stats;
+
+ multicast = is_multicast_ether_addr(hdr->addr1)|is_broadcast_ether_addr(hdr->addr1);
+ if (!multicast && (compare_ether_addr(dev->dev_addr, hdr->addr1) != 0)) {
+ if ((ieee->iw_mode == IW_MODE_MONITOR) || ieee->bNetPromiscuousMode){
+ bToOtherSTA = true;
+ }else{
+ goto rx_dropped;
+ }
+ }
+
+ fc = le16_to_cpu(hdr->frame_ctl);
+ type = WLAN_FC_GET_TYPE(fc);
+ stype = WLAN_FC_GET_STYPE(fc);
+ sc = le16_to_cpu(hdr->seq_ctl);
+ frag = WLAN_GET_SEQ_FRAG(sc);
+
+ ieee->need_sw_enc = 0;
+
+ hdrlen = rtllib_get_hdrlen(fc);
+ if(skb->len < hdrlen){
+ printk("%s():ERR!!! skb->len is smaller than hdrlen\n",__FUNCTION__);
+ goto rx_dropped;
+ }
+
+ if (HTCCheck(ieee, skb->data)) {
+ if(net_ratelimit())
+ printk("find HTCControl\n");
+ hdrlen += 4;
+ rx_stats->bContainHTC = 1;
+ }
+ if(RTLLIB_QOS_HAS_SEQ(fc))
+ rx_stats->bIsQosData = 1;
+ if ((0) && (type == RTLLIB_FTYPE_DATA) && ((is_broadcast_ether_addr(hdr->addr1)) || (compare_ether_addr(dev->dev_addr, hdr->addr1) == 0))) {
+ printk("===>RX data before decrypt\n");
+ tmp_dump = true;
+ dump_buf(skb->data,skb->len);
+ }
+#ifdef NOT_YET
+ hostap_update_rx_stats(local->ap, hdr, rx_stats);
+#endif
+
+#ifndef _RTL8192_EXT_PATCH_
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if (ieee->host_decrypt && (!ieee->wapiInfo.bWapiEnable))
+#else
+ if (ieee->host_decrypt)
+#endif
+ {
+ int idx = 0;
+ if (skb->len >= hdrlen + 3)
+ idx = skb->data[hdrlen + 3] >> 6;
+ crypt = ieee->crypt[idx];
+#ifdef NOT_YET
+ sta = NULL;
+
+ /* Use station specific key to override default keys if the
+ * receiver address is a unicast address ("individual RA"). If
+ * bcrx_sta_key parameter is set, station specific key is used
+ * even with broad/multicast targets (this is against IEEE
+ * 802.11, but makes it easier to use different keys with
+ * stations that do not support WEP key mapping). */
+
+ if (!(hdr->addr1[0] & 0x01) || local->bcrx_sta_key)
+ (void) hostap_handle_sta_crypto(local, hdr, &crypt,
+ &sta);
+#endif
+
+ /* allow NULL decrypt to indicate an station specific override
+ * for default encryption */
+ if (crypt && (crypt->ops == NULL ||
+ crypt->ops->decrypt_mpdu == NULL))
+ crypt = NULL;
+
+ if (!crypt && (fc & RTLLIB_FCTL_WEP)) {
+ /* This seems to be triggered by some (multicast?)
+ * frames from other than current BSS, so just drop the
+ * frames silently instead of filling system log with
+ * these reports. */
+ RTLLIB_DEBUG_DROP("Decryption failed (not set)"
+ " (SA=" MAC_FMT ")\n",
+ MAC_ARG(hdr->addr2));
+ ieee->ieee_stats.rx_discards_undecryptable++;
+ goto rx_dropped;
+ }
+ }
+#endif
+
+ if (skb->len < RTLLIB_DATA_HDR3_LEN)
+ goto rx_dropped;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if( (ieee->pHTInfo->bCurRxReorderEnable == false) ||
+ !ieee->current_network.qos_data.active||
+ !IsDataFrame(skb->data) ||
+ IsLegacyDataFrame(skb->data) ||
+ multicast) {
+ if (!multicast) {
+ if (is_duplicate_packet(ieee, hdr)){
+ goto rx_dropped;
+ }
+ }
+ }
+#else
+ if( (ieee->pHTInfo->bCurRxReorderEnable == false) ||
+ !ieee->current_network.qos_data.active ||
+ !IsDataFrame(skb->data) ||
+ IsLegacyDataFrame(skb->data)) {
+ if(!((type == RTLLIB_FTYPE_MGMT) && (stype == RTLLIB_STYPE_BEACON))){
+ if (is_duplicate_packet(ieee, hdr)){
+ goto rx_dropped;
+ }
+ }
+ }
+#endif
+ else {
+ PRX_TS_RECORD pRxTS = NULL;
+ if (GetTs(ieee, (PTS_COMMON_INFO*) &pRxTS, hdr->addr2,
+ (u8)Frame_QoSTID((u8*)(skb->data)), RX_DIR, true)) {
+ if ((fc & (1<<11)) && (frag == pRxTS->RxLastFragNum) &&
+ (WLAN_GET_SEQ_SEQ(sc) == pRxTS->RxLastSeqNum)) {
+ goto rx_dropped;
+ } else {
+ pRxTS->RxLastFragNum = frag;
+ pRxTS->RxLastSeqNum = WLAN_GET_SEQ_SEQ(sc);
+ }
+ } else {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "ERR!!%s(): No TS!! Skip the check!!\n",__FUNCTION__);
+ goto rx_dropped;
+ }
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if((ieee->iw_mode == IW_MODE_MESH) && ieee->ext_patch_rtllib_rx_mgt_update_expire)
+ ieee->ext_patch_rtllib_rx_mgt_update_expire( ieee, skb );
+#endif
+ if (type == RTLLIB_FTYPE_MGMT) {
+ if (bToOtherSTA){
+ goto rx_dropped;
+ }
+ if (rtllib_rx_frame_mgmt(ieee, skb, rx_stats, type, stype))
+ goto rx_dropped;
+ else
+ goto rx_exit;
+ }
+ if (type == RTLLIB_FTYPE_CTL) {
+ goto rx_dropped;
+ }
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if(ieee->WapiSupport && ieee->wapiInfo.bWapiEnable){
+ wapiDectResult = SecIsWAIPacket(ieee, skb);
+ if(wapiDectResult !=0){
+ if(memcmp(&ieee->wapiInfo.wapiSeqnumAndFragNum,&sc,2))
+ WapiHandleRecvPacket(ieee, skb, wapiDectResult);
+ memcpy(&ieee->wapiInfo.wapiSeqnumAndFragNum,&sc,2);
+ dev_kfree_skb_any(skb);
+ goto rx_exit;
+ }
+ }
+#endif
+ /* Data frame - extract src/dst addresses */
+ switch (fc & (RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) {
+ case RTLLIB_FCTL_FROMDS:
+ memcpy(dst, hdr->addr1, ETH_ALEN);
+ memcpy(src, hdr->addr3, ETH_ALEN);
+ memcpy(bssid, hdr->addr2, ETH_ALEN);
+ break;
+ case RTLLIB_FCTL_TODS:
+ memcpy(dst, hdr->addr3, ETH_ALEN);
+ memcpy(src, hdr->addr2, ETH_ALEN);
+ memcpy(bssid, hdr->addr1, ETH_ALEN);
+ break;
+ case RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS:
+ if (skb->len < RTLLIB_DATA_HDR4_LEN)
+ goto rx_dropped;
+ memcpy(dst, hdr->addr3, ETH_ALEN);
+ memcpy(src, hdr->addr4, ETH_ALEN);
+#ifdef _RTL8192_EXT_PATCH_
+ memcpy(bssid, ieee->current_mesh_network.bssid, ETH_ALEN);
+#else
+ memcpy(bssid, ieee->current_network.bssid, ETH_ALEN);
+#endif
+ break;
+ case 0:
+ memcpy(dst, hdr->addr1, ETH_ALEN);
+ memcpy(src, hdr->addr2, ETH_ALEN);
+ memcpy(bssid, hdr->addr3, ETH_ALEN);
+ break;
+ }
+
+ /* Filter frames from different BSS */
+ if ((type != RTLLIB_FTYPE_CTL) && ((fc & RTLLIB_FCTL_DSTODS) != RTLLIB_FCTL_DSTODS)
+ && (compare_ether_addr(ieee->current_network.bssid, bssid) != 0) && memcmp(ieee->current_network.bssid, zero_addr, ETH_ALEN)) {
+ goto rx_dropped;
+ }
+
+ /* Filter packets sent by an STA that will be forwarded by AP */
+ if ( ieee->IntelPromiscuousModeInfo.bPromiscuousOn &&
+ ieee->IntelPromiscuousModeInfo.bFilterSourceStationFrame ) {
+ if ((fc & RTLLIB_FCTL_TODS) && !(fc & RTLLIB_FCTL_FROMDS) &&
+ (compare_ether_addr(dst, ieee->current_network.bssid) != 0) &&
+ (compare_ether_addr(bssid, ieee->current_network.bssid) == 0)) {
+ goto rx_dropped;
+ }
+ }
+
+#ifdef NOT_YET
+ if (hostap_rx_frame_wds(ieee, hdr, fc, &wds))
+ goto rx_dropped;
+ if (wds) {
+ skb->dev = dev = wds;
+ stats = hostap_get_stats(dev);
+ }
+
+ if (ieee->iw_mode == IW_MODE_MASTER && !wds &&
+ (fc & (RTLLIB_FCTL_TODS | RTLLIB_FCTL_FROMDS)) == RTLLIB_FCTL_FROMDS &&
+ ieee->stadev &&
+ memcmp(hdr->addr2, ieee->assoc_ap_addr, ETH_ALEN) == 0) {
+ /* Frame from BSSID of the AP for which we are a client */
+ skb->dev = dev = ieee->stadev;
+ stats = hostap_get_stats(dev);
+ from_assoc_ap = 1;
+ }
+#endif
+
+ dev->last_rx = jiffies;
+
+#ifdef NOT_YET
+ if ((ieee->iw_mode == IW_MODE_MASTER ||
+ ieee->iw_mode == IW_MODE_REPEAT) &&
+ !from_assoc_ap) {
+ switch (hostap_handle_sta_rx(ieee, dev, skb, rx_stats,
+ wds != NULL)) {
+ case AP_RX_CONTINUE_NOT_AUTHORIZED:
+ frame_authorized = 0;
+ break;
+ case AP_RX_CONTINUE:
+ frame_authorized = 1;
+ break;
+ case AP_RX_DROP:
+ goto rx_dropped;
+ case AP_RX_EXIT:
+ goto rx_exit;
+ }
+ }
+#endif
+ /* Nullfunc frames may have PS-bit set, so they must be passed to
+ * hostap_handle_sta_rx() before being dropped here. */
+ if (stype != RTLLIB_STYPE_DATA &&
+ stype != RTLLIB_STYPE_DATA_CFACK &&
+ stype != RTLLIB_STYPE_DATA_CFPOLL &&
+ stype != RTLLIB_STYPE_DATA_CFACKPOLL&&
+ stype != RTLLIB_STYPE_QOS_DATA
+ ) {
+ if (stype != RTLLIB_STYPE_NULLFUNC)
+ RTLLIB_DEBUG_DROP(
+ "RX: dropped data frame "
+ "with no data (type=0x%02x, "
+ "subtype=0x%02x, len=%d)\n",
+ type, stype, skb->len);
+ goto rx_dropped;
+ }
+
+ if(skb->len == hdrlen){
+ goto rx_dropped;
+ }
+
+#ifdef _RTL8192_EXT_PATCH_
+ if(ieee->iw_mode == IW_MODE_MESH) {
+ /* check whether it exists the mesh entry for data packet */
+ if(ieee->ext_patch_rtllib_is_mesh&&\
+ (false ==ieee->ext_patch_rtllib_is_mesh(ieee,hdr->addr2))) {
+ if(ieee->only_mesh) {
+ goto rx_dropped;
+ } else if(memcmp(bssid, ieee->current_network.bssid, ETH_ALEN)) {
+ goto rx_dropped;
+ }
+ }
+ } else
+#endif
+ {
+#if 0
+ /* check bssid under none mesh mode */
+ if (memcmp(bssid, ieee->current_network.bssid, ETH_ALEN)) {
+ goto rx_dropped;
+ }
+#endif
+ /* network filter more precisely */
+ switch (ieee->iw_mode) {
+ case IW_MODE_ADHOC:
+ /* packets from our adapter are dropped (echo) */
+ if (!memcmp(hdr->addr2, dev->dev_addr, ETH_ALEN))
+ goto rx_dropped;
+
+ /* {broad,multi}cast packets to our BSSID go through */
+ if (is_multicast_ether_addr(hdr->addr1)) {
+ if(!memcmp(hdr->addr3, ieee->current_network.bssid, ETH_ALEN))
+ break;
+ else
+ goto rx_dropped;
+ }
+
+ /* packets not to our adapter, just discard it */
+ if (memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN)) {
+ if (bToOtherSTA)
+ break;
+ else
+ goto rx_dropped;
+ }
+
+ break;
+
+ case IW_MODE_INFRA:
+ /* packets from our adapter are dropped (echo) */
+ if (!memcmp(hdr->addr3, dev->dev_addr, ETH_ALEN))
+ goto rx_dropped;
+
+ /* {broad,multi}cast packets to our BSS go through */
+ if (is_multicast_ether_addr(hdr->addr1)) {
+ if (!memcmp(hdr->addr2, ieee->current_network.bssid, ETH_ALEN)) {
+ break;
+ } else {
+ goto rx_dropped;
+ }
+ }
+
+ /* packets to our adapter go through */
+ if (memcmp(hdr->addr1, dev->dev_addr, ETH_ALEN)) {
+ if (bToOtherSTA)
+ break;
+ else
+ goto rx_dropped;
+ }
+
+ break;
+ }
+
+
+ }
+
+#ifdef ENABLE_LPS
+ if ((ieee->iw_mode == IW_MODE_INFRA) && (ieee->sta_sleep == 1)
+ && (ieee->polling)) {
+ if (WLAN_FC_MORE_DATA(fc)) {
+ /* more data bit is set, let's request a new frame from the AP */
+ rtllib_sta_ps_send_pspoll_frame(ieee);
+ } else {
+ ieee->polling = false;
+ }
+ }
+#endif
+
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ if(ieee->iw_mode == IW_MODE_ADHOC){
+ psta = GetStaInfo(ieee, src);
+ if(NULL != psta)
+ psta->LastActiveTime = jiffies;
+ }
+#endif
+ /* skb: hdr + (possibly fragmented, possibly encrypted) payload */
+#ifdef _RTL8192_EXT_PATCH_
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if (ieee->host_decrypt && (!ieee->wapiInfo.bWapiEnable))
+#else
+ if (ieee->host_decrypt)
+#endif
+ {
+
+ int idx = 0;
+ if (skb->len >= hdrlen + 3)
+ idx = skb->data[hdrlen + 3] >> 6;
+ if (ieee->iw_mode == IW_MODE_MESH)
+ {
+ if (ieee->mesh_sec_type == 1) {
+ if(ieee->mesh_security_setting==1 ||ieee->mesh_security_setting==3)
+ {
+ bool find_crypt = false;
+ i = rtllib_find_MP(ieee, hdr->addr2, 0);
+ if(is_multicast_ether_addr(((struct rtllib_hdr_3addr*)skb->data)->addr1) || is_broadcast_ether_addr(((struct rtllib_hdr_3addr*)skb->data)->addr1))
+ {
+ if(ieee->only_mesh){
+ if(i != -1){
+ i=0;
+ }else{
+ printk("err find crypt\n");
+ goto rx_dropped;
+ }
+ }else{
+ if(i != -1){
+ i=0;
+ }else{
+ find_crypt = true;
+ crypt = ieee->sta_crypt[idx];
+ }
+ }
+ }else{
+ if(ieee->only_mesh){
+ if (i != -1){
+ }else{
+ printk("err find crypt\n");
+ goto rx_dropped;
+ }
+ }else{
+ if (i != -1){
+ }else{
+ find_crypt = true;
+ crypt = ieee->sta_crypt[idx];
+ }
+ }
+ }
+ if(find_crypt == false){
+ if(ieee->cryptlist[i] == NULL)
+ goto rx_dropped;
+ else
+ crypt = ieee->cryptlist[i]->crypt[idx];
+ }
+ }
+ }
+ else {
+ crypt = ieee->cryptlist[0]->crypt[idx];
+ if(crypt)
+ {
+ int i = rtllib_find_MP(ieee, hdr->addr2, 0);
+ if(ieee->only_mesh)
+ {
+ if (i == -1)
+ {
+ printk("error find entry in entry list\n");
+ goto rx_dropped;
+ }
+ if (ieee->cryptlist[i]&&ieee->cryptlist[i]->crypt[idx])
+ crypt = ieee->cryptlist[i]->crypt[idx];
+
+ else
+ crypt = NULL;
+ }
+ else
+ {
+ if(i != -1)
+ {
+ if (ieee->cryptlist[i]&&ieee->cryptlist[i]->crypt[idx])
+ crypt = ieee->cryptlist[i]->crypt[idx];
+ else
+ crypt = NULL;
+ }
+ else
+ crypt = ieee->sta_crypt[idx];
+
+ }
+ }
+ else
+ {
+ if(!ieee->ext_patch_rtllib_is_mesh(ieee,hdr->addr2))
+ crypt = ieee->sta_crypt[idx];
+ }
+ }
+ }
+ else
+ crypt = ieee->sta_crypt[idx];
+#ifdef NOT_YET
+ sta = NULL;
+
+ /* Use station specific key to override default keys if the
+ * receiver address is a unicast address ("individual RA"). If
+ * bcrx_sta_key parameter is set, station specific key is used
+ * even with broad/multicast targets (this is against IEEE
+ * 802.11, but makes it easier to use different keys with
+ * stations that do not support WEP key mapping). */
+
+ if (!(hdr->addr1[0] & 0x01) || local->bcrx_sta_key)
+ (void) hostap_handle_sta_crypto(local, hdr, &crypt,
+ &sta);
+#endif
+
+ /* allow NULL decrypt to indicate an station specific override
+ * for default encryption */
+ if (crypt && (crypt->ops == NULL ||
+ crypt->ops->decrypt_mpdu == NULL))
+ crypt = NULL;
+
+ if (!crypt && (fc & RTLLIB_FCTL_WEP)) {
+ /* This seems to be triggered by some (multicast?)
+ * frames from other than current BSS, so just drop the
+ * frames silently instead of filling system log with
+ * these reports. */
+ RTLLIB_DEBUG_DROP("Decryption failed (not set)"
+ " (SA=" MAC_FMT ")\n",
+ MAC_ARG(hdr->addr2));
+ ieee->ieee_stats.rx_discards_undecryptable++;
+ goto rx_dropped;
+ }
+ }
+#endif
+ if((!rx_stats->Decrypted)){
+ ieee->need_sw_enc = 1;
+ }
+
+ if (ieee->host_decrypt && (fc & RTLLIB_FCTL_WEP) &&
+ ((keyidx = rtllib_rx_frame_decrypt(ieee, skb, crypt)) < 0)
+#if defined (RTL8192S_WAPI_SUPPORT)
+ && (!ieee->wapiInfo.bWapiEnable)
+#endif
+ )
+ {
+ printk("decrypt frame error\n");
+ goto rx_dropped;
+ }
+ if (tmp_dump) {
+ printk("************after decrypt\n");
+ dump_buf(skb->data,skb->len);
+ }
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if(ieee->wapiInfo.bWapiEnable){
+ if(ieee->pairwise_key_type == KEY_TYPE_SMS4){
+ if(false == SecSWSMS4Decryption(ieee, skb, rx_stats)){
+ WAPI_TRACE(WAPI_ERR, "%s():SMS4 decrypt frame error\n",__FUNCTION__);
+ goto rx_dropped;
+ }
+ }
+ }
+#endif
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+
+ /* skb: hdr + (possibly fragmented) plaintext payload */
+ if ((frag != 0 || (fc & RTLLIB_FCTL_MOREFRAGS))) {
+ int flen;
+ struct sk_buff *frag_skb = rtllib_frag_cache_get(ieee, hdr);
+ RTLLIB_DEBUG_FRAG("Rx Fragment received (%u)\n", frag);
+
+ if (!frag_skb) {
+ RTLLIB_DEBUG(RTLLIB_DL_RX | RTLLIB_DL_FRAG,
+ "Rx cannot get skb from fragment "
+ "cache (morefrag=%d seq=%u frag=%u)\n",
+ (fc & RTLLIB_FCTL_MOREFRAGS) != 0,
+ WLAN_GET_SEQ_SEQ(sc), frag);
+ goto rx_dropped;
+ }
+ flen = skb->len;
+ if (frag != 0)
+ flen -= hdrlen;
+
+ if (frag_skb->tail + flen > frag_skb->end) {
+ printk(KERN_WARNING "%s: host decrypted and "
+ "reassembled frame did not fit skb\n",
+ dev->name);
+ rtllib_frag_cache_invalidate(ieee, hdr);
+ goto rx_dropped;
+ }
+
+ if (frag == 0) {
+ /* copy first fragment (including full headers) into
+ * beginning of the fragment cache skb */
+ memcpy(skb_put(frag_skb, flen), skb->data, flen);
+ } else {
+ /* append frame payload to the end of the fragment
+ * cache skb */
+ memcpy(skb_put(frag_skb, flen), skb->data + hdrlen,
+ flen);
+ }
+ dev_kfree_skb_any(skb);
+ skb = NULL;
+
+ if (fc & RTLLIB_FCTL_MOREFRAGS) {
+ /* more fragments expected - leave the skb in fragment
+ * cache for now; it will be delivered to upper layers
+ * after all fragments have been received */
+ goto rx_exit;
+ }
+
+ /* this was the last fragment and the frame will be
+ * delivered, so remove skb from fragment cache */
+ skb = frag_skb;
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+ rtllib_frag_cache_invalidate(ieee, hdr);
+ }
+
+ /* skb: hdr + (possible reassembled) full MSDU payload; possibly still
+ * encrypted/authenticated */
+ if (ieee->host_decrypt && (fc & RTLLIB_FCTL_WEP) &&
+#if defined (RTL8192S_WAPI_SUPPORT)
+ (!ieee->wapiInfo.bWapiEnable) &&
+#endif
+ rtllib_rx_frame_decrypt_msdu(ieee, skb, keyidx, crypt))
+ {
+ printk("==>decrypt msdu error\n");
+ goto rx_dropped;
+ }
+
+ ieee->LinkDetectInfo.NumRecvDataInPeriod++;
+ ieee->LinkDetectInfo.NumRxOkInPeriod++;
+
+ hdr = (struct rtllib_hdr_4addr *) skb->data;
+ if((!is_multicast_ether_addr(hdr->addr1)) && (!is_broadcast_ether_addr(hdr->addr1)))
+ unicast_packet = true;
+ if (crypt && !(fc & RTLLIB_FCTL_WEP) && !ieee->open_wep) {
+ if (/*ieee->ieee802_1x &&*/
+ rtllib_is_eapol_frame(ieee, skb, hdrlen)) {
+
+#ifdef CONFIG_RTLLIB_DEBUG
+ /* pass unencrypted EAPOL frames even if encryption is
+ * configured */
+ struct eapol *eap = (struct eapol *)(skb->data +
+ 24);
+ RTLLIB_DEBUG_EAP("RX: IEEE 802.1X EAPOL frame: %s\n",
+ eap_get_type(eap->type));
+#endif
+ } else {
+ RTLLIB_DEBUG_DROP(
+ "encryption configured, but RX "
+ "frame not encrypted (SA=" MAC_FMT ")\n",
+ MAC_ARG(hdr->addr2));
+ goto rx_dropped;
+ }
+ }
+
+#ifdef CONFIG_RTLLIB_DEBUG
+ if (crypt && !(fc & RTLLIB_FCTL_WEP) &&
+ rtllib_is_eapol_frame(ieee, skb, hdrlen)) {
+ struct eapol *eap = (struct eapol *)(skb->data +
+ 24);
+ RTLLIB_DEBUG_EAP("RX: IEEE 802.1X EAPOL frame: %s\n",
+ eap_get_type(eap->type));
+ }
+#endif
+
+ if (crypt && !(fc & RTLLIB_FCTL_WEP) && !ieee->open_wep &&
+ !rtllib_is_eapol_frame(ieee, skb, hdrlen)) {
+ RTLLIB_DEBUG_DROP(
+ "dropped unencrypted RX data "
+ "frame from " MAC_FMT
+ " (drop_unencrypted=1)\n",
+ MAC_ARG(hdr->addr2));
+ goto rx_dropped;
+ }
+/*
+ if(rtllib_is_eapol_frame(ieee, skb, hdrlen)) {
+ printk(KERN_WARNING "RX: IEEE802.1X EPAOL frame!\n");
+ }
+*/
+ if(ieee->current_network.qos_data.active && IsQoSDataFrame(skb->data)
+ && !is_multicast_ether_addr(hdr->addr1) && !is_broadcast_ether_addr(hdr->addr1))
+ {
+ TID = Frame_QoSTID(skb->data);
+ SeqNum = WLAN_GET_SEQ_SEQ(sc);
+ GetTs(ieee,(PTS_COMMON_INFO*) &pTS,hdr->addr2,TID,RX_DIR,true);
+ if(TID !=0 && TID !=3){
+ ieee->bis_any_nonbepkts = true;
+ }
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if((fc & (WIFI_MESH_TYPE | RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS))
+ == (WIFI_MESH_TYPE | RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS))
+ {
+ if(ieee->iw_mode == IW_MODE_MESH){
+ rxb = (struct rtllib_rxb*)kmalloc(sizeof(struct rtllib_rxb),GFP_ATOMIC);
+ if(rxb == NULL)
+ {
+ printk("%s(): kmalloc rxb error\n",__FUNCTION__);
+ goto rx_dropped;
+ }
+ memset(rxb, 0, sizeof(struct rtllib_rxb));
+ if(msh_parse_subframe(ieee, skb, rxb)==0){
+ /* only to free rxb, and not submit the packets to upper layer */
+ for(i =0; i < rxb->nr_subframes; i++) {
+ if(rxb->subframes[i])
+ dev_kfree_skb(rxb->subframes[i]);
+ }
+ kfree(rxb);
+ rxb = NULL;
+ goto rx_dropped;
+ }
+ ret = msh_rx_process_dataframe(ieee,rxb,rx_stats);
+ if(ret < 0) {
+ for(i =0; i < rxb->nr_subframes; i++) {
+ if(rxb->subframes[i])
+ dev_kfree_skb(rxb->subframes[i]);
+ }
+ kfree(rxb);
+ rxb = NULL;
+ goto rx_dropped;
+ }else{
+ kfree(rxb);
+ rxb = NULL;
+ }
+ }else
+ goto rx_dropped;
+ }else{
+#endif
+ /* skb: hdr + (possible reassembled) full plaintext payload */
+ payload = skb->data + hdrlen;
+ rxb = (struct rtllib_rxb*)kmalloc(sizeof(struct rtllib_rxb),GFP_ATOMIC);
+ if(rxb == NULL)
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR,"%s(): kmalloc rxb error\n",__FUNCTION__);
+ goto rx_dropped;
+ }
+ /* to parse amsdu packets */
+ /* qos data packets & reserved bit is 1 */
+ if(parse_subframe(ieee,skb,rx_stats,rxb,src,dst) == 0) {
+ /* only to free rxb, and not submit the packets to upper layer */
+ for(i =0; i < rxb->nr_subframes; i++) {
+ dev_kfree_skb(rxb->subframes[i]);
+ }
+ kfree(rxb);
+ rxb = NULL;
+ goto rx_dropped;
+ }
+#ifdef RTL8192S_WAPI_SUPPORT
+ if(ieee->wapiInfo.bWapiEnable){
+ if(rxb){
+ rxb->UserPriority = TID;
+ memcpy(rxb->WapiTempPN, rx_stats->WapiTempPN, 16);
+ memcpy(rxb->WapiSrcAddr, rx_stats->WapiSrcAddr, 6);
+ rxb->bWapiCheckPNInDecrypt = rx_stats->bWapiCheckPNInDecrypt;
+ }
+ }
+#endif
+#if !defined(RTL8192SU) && !defined(RTL8192U)
+#ifdef ENABLE_LPS
+ if(unicast_packet)
+ {
+ if (type == RTLLIB_FTYPE_DATA)
+ {
+
+ if(ieee->bIsAggregateFrame)
+ ieee->LinkDetectInfo.NumRxUnicastOkInPeriod+=rxb->nr_subframes;
+ else
+ ieee->LinkDetectInfo.NumRxUnicastOkInPeriod++;
+
+ if((ieee->state == RTLLIB_LINKED) /*&& !MgntInitAdapterInProgress(pMgntInfo)*/)
+ {
+ if( ((ieee->LinkDetectInfo.NumRxUnicastOkInPeriod +ieee->LinkDetectInfo.NumTxOkInPeriod) > 8 ) ||
+ (ieee->LinkDetectInfo.NumRxUnicastOkInPeriod > 2) )
+ {
+ if(ieee->LeisurePSLeave)
+ ieee->LeisurePSLeave(dev);
+ }
+ }
+ }
+ }
+#endif
+#endif
+ ieee->last_rx_ps_time = jiffies;
+ if(ieee->pHTInfo->bCurRxReorderEnable == false ||pTS == NULL || bToOtherSTA ){
+ for(i = 0; i<rxb->nr_subframes; i++) {
+ struct sk_buff *sub_skb = rxb->subframes[i];
+
+ if (sub_skb) {
+ /* convert hdr + possible LLC headers into Ethernet header */
+ ethertype = (sub_skb->data[6] << 8) | sub_skb->data[7];
+ if (sub_skb->len >= 8 &&
+ ((memcmp(sub_skb->data, rfc1042_header, SNAP_SIZE) == 0 &&
+ ethertype != ETH_P_AARP && ethertype != ETH_P_IPX) ||
+ memcmp(sub_skb->data, bridge_tunnel_header, SNAP_SIZE) == 0)) {
+ /* remove RFC1042 or Bridge-Tunnel encapsulation and
+ * replace EtherType */
+ skb_pull(sub_skb, SNAP_SIZE);
+ memcpy(skb_push(sub_skb, ETH_ALEN), src, ETH_ALEN);
+ memcpy(skb_push(sub_skb, ETH_ALEN), dst, ETH_ALEN);
+ } else {
+ u16 len;
+ /* Leave Ethernet header part of hdr and full payload */
+ len = htons(sub_skb->len);
+ memcpy(skb_push(sub_skb, 2), &len, 2);
+ memcpy(skb_push(sub_skb, ETH_ALEN), src, ETH_ALEN);
+ memcpy(skb_push(sub_skb, ETH_ALEN), dst, ETH_ALEN);
+ }
+
+ stats->rx_packets++;
+ stats->rx_bytes += sub_skb->len;
+
+ if(is_multicast_ether_addr(dst)) {
+ stats->multicast++;
+ }
+
+ /* Indicat the packets to upper layer */
+ memset(sub_skb->cb, 0, sizeof(sub_skb->cb));
+#ifdef _RTL8192_EXT_PATCH_
+ sub_skb->protocol = eth_type_trans(sub_skb, sub_skb->dev);
+#else
+ sub_skb->protocol = eth_type_trans(sub_skb, dev);
+ sub_skb->dev = dev;
+#endif
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
+ sub_skb->dev->stats.rx_packets++;
+ sub_skb->dev->stats.rx_bytes += sub_skb->len;
+#endif
+#ifdef TCP_CSUM_OFFLOAD_RX
+ if ( rx_stats->tcp_csum_valid)
+ sub_skb->ip_summed = CHECKSUM_UNNECESSARY;
+ else
+ sub_skb->ip_summed = CHECKSUM_NONE;
+#else
+ sub_skb->ip_summed = CHECKSUM_NONE; /* 802.11 crc not sufficient */
+#endif
+
+ netif_rx(sub_skb);
+ }
+ }
+ kfree(rxb);
+ rxb = NULL;
+
+ }
+ else
+ {
+ RTLLIB_DEBUG(RTLLIB_DL_REORDER,"%s(): REORDER ENABLE AND PTS not NULL, and we will enter RxReorderIndicatePacket()\n",__FUNCTION__);
+#ifdef TCP_CSUM_OFFLOAD_RX
+ rxb->tcp_csum_valid = rx_stats->tcp_csum_valid;
+#endif
+ RxReorderIndicatePacket(ieee, rxb, pTS, SeqNum);
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ }
+#endif
+#ifndef JOHN_NOCPY
+ dev_kfree_skb(skb);
+#endif
+
+ rx_exit:
+#ifdef NOT_YET
+ if (sta)
+ hostap_handle_sta_release(sta);
+#endif
+ return 1;
+
+ rx_dropped:
+ if (rxb != NULL)
+ {
+ kfree(rxb);
+ rxb = NULL;
+ }
+ stats->rx_dropped++;
+
+ /* Returning 0 indicates to caller that we have not handled the SKB--
+ * so it is still allocated and can be used again by underlying
+ * hardware as a DMA target */
+ return 0;
+}
+#endif
+
+#define MGMT_FRAME_FIXED_PART_LENGTH 0x24
+
+static u8 qos_oui[QOS_OUI_LEN] = { 0x00, 0x50, 0xF2 };
+
+/*
+* Make ther structure we read from the beacon packet has
+* the right values
+*/
+static int rtllib_verify_qos_info(struct rtllib_qos_information_element
+ *info_element, int sub_type)
+{
+
+ if (info_element->qui_subtype != sub_type)
+ return -1;
+ if (memcmp(info_element->qui, qos_oui, QOS_OUI_LEN))
+ return -1;
+ if (info_element->qui_type != QOS_OUI_TYPE)
+ return -1;
+ if (info_element->version != QOS_VERSION_1)
+ return -1;
+
+ return 0;
+}
+
+
+/*
+ * Parse a QoS parameter element
+ */
+static int rtllib_read_qos_param_element(struct rtllib_qos_parameter_info
+ *element_param, struct rtllib_info_element
+ *info_element)
+{
+ int ret = 0;
+ u16 size = sizeof(struct rtllib_qos_parameter_info) - 2;
+
+ if ((info_element == NULL) || (element_param == NULL))
+ return -1;
+
+ if (info_element->id == QOS_ELEMENT_ID && info_element->len == size) {
+ memcpy(element_param->info_element.qui, info_element->data,
+ info_element->len);
+ element_param->info_element.elementID = info_element->id;
+ element_param->info_element.length = info_element->len;
+ } else
+ ret = -1;
+ if (ret == 0)
+ ret = rtllib_verify_qos_info(&element_param->info_element,
+ QOS_OUI_PARAM_SUB_TYPE);
+ return ret;
+}
+
+/*
+ * Parse a QoS information element
+ */
+static int rtllib_read_qos_info_element(struct
+ rtllib_qos_information_element
+ *element_info, struct rtllib_info_element
+ *info_element)
+{
+ int ret = 0;
+ u16 size = sizeof(struct rtllib_qos_information_element) - 2;
+
+ if (element_info == NULL)
+ return -1;
+ if (info_element == NULL)
+ return -1;
+
+ if ((info_element->id == QOS_ELEMENT_ID) && (info_element->len == size)) {
+ memcpy(element_info->qui, info_element->data,
+ info_element->len);
+ element_info->elementID = info_element->id;
+ element_info->length = info_element->len;
+ } else
+ ret = -1;
+
+ if (ret == 0)
+ ret = rtllib_verify_qos_info(element_info,
+ QOS_OUI_INFO_SUB_TYPE);
+ return ret;
+}
+
+
+/*
+ * Write QoS parameters from the ac parameters.
+ */
+static int rtllib_qos_convert_ac_to_parameters(struct rtllib_qos_parameter_info *param_elm,
+ struct rtllib_qos_data *qos_data)
+{
+ struct rtllib_qos_ac_parameter *ac_params;
+ struct rtllib_qos_parameters *qos_param = &(qos_data->parameters);
+ int rc = 0;
+ int i;
+ u8 aci;
+ u8 acm;
+
+ qos_data->wmm_acm = 0;
+ for (i = 0; i < QOS_QUEUE_NUM; i++) {
+ ac_params = &(param_elm->ac_params_record[i]);
+
+ aci = (ac_params->aci_aifsn & 0x60) >> 5;
+ acm = (ac_params->aci_aifsn & 0x10) >> 4;
+
+ if(aci >= QOS_QUEUE_NUM)
+ continue;
+ switch (aci) {
+ case 1:
+ /* BIT(0) | BIT(3) */
+ if (acm)
+ qos_data->wmm_acm |= (0x01<<0)|(0x01<<3);
+ break;
+ case 2:
+ /* BIT(4) | BIT(5) */
+ if (acm)
+ qos_data->wmm_acm |= (0x01<<4)|(0x01<<5);
+ break;
+ case 3:
+ /* BIT(6) | BIT(7) */
+ if (acm)
+ qos_data->wmm_acm |= (0x01<<6)|(0x01<<7);
+ break;
+ case 0:
+ default:
+ /* BIT(1) | BIT(2) */
+ if (acm)
+ qos_data->wmm_acm |= (0x01<<1)|(0x01<<2);
+ break;
+ }
+
+ qos_param->aifs[aci] = (ac_params->aci_aifsn) & 0x0f;
+
+ /* WMM spec P.11: The minimum value for AIFSN shall be 2 */
+ qos_param->aifs[aci] = (qos_param->aifs[aci] < 2) ? 2:qos_param->aifs[aci];
+
+ qos_param->cw_min[aci] = ac_params->ecw_min_max & 0x0F;
+
+ qos_param->cw_max[aci] = (ac_params->ecw_min_max & 0xF0) >> 4;
+
+ qos_param->flag[aci] =
+ (ac_params->aci_aifsn & 0x10) ? 0x01 : 0x00;
+ qos_param->tx_op_limit[aci] = le16_to_cpu(ac_params->tx_op_limit);
+ }
+ return rc;
+}
+
+/*
+ * we have a generic data element which it may contain QoS information or
+ * parameters element. check the information element length to decide
+ * which type to read
+ */
+static int rtllib_parse_qos_info_param_IE(struct rtllib_info_element
+ *info_element,
+ struct rtllib_network *network)
+{
+ int rc = 0;
+ struct rtllib_qos_information_element qos_info_element;
+
+ rc = rtllib_read_qos_info_element(&qos_info_element, info_element);
+
+ if (rc == 0) {
+ network->qos_data.param_count = qos_info_element.ac_info & 0x0F;
+ network->flags |= NETWORK_HAS_QOS_INFORMATION;
+ } else {
+ struct rtllib_qos_parameter_info param_element;
+
+ rc = rtllib_read_qos_param_element(&param_element,
+ info_element);
+ if (rc == 0) {
+ rtllib_qos_convert_ac_to_parameters(&param_element,
+ &(network->qos_data));
+ network->flags |= NETWORK_HAS_QOS_PARAMETERS;
+ network->qos_data.param_count =
+ param_element.info_element.ac_info & 0x0F;
+ }
+ }
+
+ if (rc == 0) {
+ RTLLIB_DEBUG_QOS("QoS is supported\n");
+ network->qos_data.supported = 1;
+ }
+ return rc;
+}
+
+#ifdef CONFIG_RTLLIB_DEBUG
+#define MFIE_STRING(x) case MFIE_TYPE_ ##x: return #x
+
+static const char *get_info_element_string(u16 id)
+{
+ switch (id) {
+ MFIE_STRING(SSID);
+ MFIE_STRING(RATES);
+ MFIE_STRING(FH_SET);
+ MFIE_STRING(DS_SET);
+ MFIE_STRING(CF_SET);
+ MFIE_STRING(TIM);
+ MFIE_STRING(IBSS_SET);
+ MFIE_STRING(COUNTRY);
+ MFIE_STRING(HOP_PARAMS);
+ MFIE_STRING(HOP_TABLE);
+ MFIE_STRING(REQUEST);
+ MFIE_STRING(CHALLENGE);
+ MFIE_STRING(POWER_CONSTRAINT);
+ MFIE_STRING(POWER_CAPABILITY);
+ MFIE_STRING(TPC_REQUEST);
+ MFIE_STRING(TPC_REPORT);
+ MFIE_STRING(SUPP_CHANNELS);
+ MFIE_STRING(CSA);
+ MFIE_STRING(MEASURE_REQUEST);
+ MFIE_STRING(MEASURE_REPORT);
+ MFIE_STRING(QUIET);
+ MFIE_STRING(IBSS_DFS);
+ MFIE_STRING(RSN);
+ MFIE_STRING(RATES_EX);
+ MFIE_STRING(GENERIC);
+ MFIE_STRING(QOS_PARAMETER);
+ default:
+ return "UNKNOWN";
+ }
+}
+#endif
+
+#ifdef ENABLE_DOT11D
+static inline void rtllib_extract_country_ie(
+ struct rtllib_device *ieee,
+ struct rtllib_info_element *info_element,
+ struct rtllib_network *network,
+ u8 * addr2)
+{
+ if (IS_DOT11D_ENABLE(ieee)) {
+ if(info_element->len!= 0) {
+ memcpy(network->CountryIeBuf, info_element->data, info_element->len);
+ network->CountryIeLen = info_element->len;
+
+ if(!IS_COUNTRY_IE_VALID(ieee))
+ {
+ if((rtllib_act_scanning(ieee,false) == true) && (ieee->FirstIe_InScan == 1))
+ printk("Received beacon ContryIE, SSID: <%s>\n",network->ssid);
+ Dot11d_UpdateCountryIe(ieee, addr2, info_element->len, info_element->data);
+ }
+ }
+
+ if (IS_EQUAL_CIE_SRC(ieee, addr2)) {
+ UPDATE_CIE_WATCHDOG(ieee);
+ }
+ }
+
+}
+#endif
+
+int rtllib_parse_info_param(struct rtllib_device *ieee,
+ struct rtllib_info_element *info_element,
+ u16 length,
+ struct rtllib_network *network,
+ struct rtllib_rx_stats *stats)
+{
+ u8 i;
+ short offset;
+ u16 tmp_htcap_len=0;
+ u16 tmp_htinfo_len=0;
+ u16 ht_realtek_agg_len=0;
+ u8 ht_realtek_agg_buf[MAX_IE_LEN];
+#ifdef CONFIG_RTLLIB_DEBUG
+ char rates_str[64];
+ char *p;
+#endif
+#ifdef RTL8192S_WAPI_SUPPORT
+ u8 tmp_wapi_len = 0;
+#endif
+ while (length >= sizeof(*info_element)) {
+ if (sizeof(*info_element) + info_element->len > length) {
+ RTLLIB_DEBUG_MGMT("Info elem: parse failed: "
+ "info_element->len + 2 > left : "
+ "info_element->len+2=%zd left=%d, id=%d.\n",
+ info_element->len +
+ sizeof(*info_element),
+ length, info_element->id);
+ /* We stop processing but don't return an error here
+ * because some misbehaviour APs break this rule. ie.
+ * Orinoco AP1000. */
+ break;
+ }
+
+ switch (info_element->id) {
+ case MFIE_TYPE_SSID:
+ if (rtllib_is_empty_essid(info_element->data,
+ info_element->len)) {
+ network->flags |= NETWORK_EMPTY_ESSID;
+ break;
+ }
+
+ network->ssid_len = min(info_element->len,
+ (u8) IW_ESSID_MAX_SIZE);
+ memcpy(network->ssid, info_element->data, network->ssid_len);
+ if (network->ssid_len < IW_ESSID_MAX_SIZE)
+ memset(network->ssid + network->ssid_len, 0,
+ IW_ESSID_MAX_SIZE - network->ssid_len);
+
+ RTLLIB_DEBUG_MGMT("MFIE_TYPE_SSID: '%s' len=%d.\n",
+ network->ssid, network->ssid_len);
+ break;
+
+ case MFIE_TYPE_RATES:
+#ifdef CONFIG_RTLLIB_DEBUG
+ p = rates_str;
+#endif
+ network->rates_len = min(info_element->len,
+ MAX_RATES_LENGTH);
+ for (i = 0; i < network->rates_len; i++) {
+ network->rates[i] = info_element->data[i];
+#ifdef CONFIG_RTLLIB_DEBUG
+ p += snprintf(p, sizeof(rates_str) -
+ (p - rates_str), "%02X ",
+ network->rates[i]);
+#endif
+ if (rtllib_is_ofdm_rate
+ (info_element->data[i])) {
+ network->flags |= NETWORK_HAS_OFDM;
+ if (info_element->data[i] &
+ RTLLIB_BASIC_RATE_MASK)
+ network->flags &=
+ ~NETWORK_HAS_CCK;
+ }
+
+ if (rtllib_is_cck_rate
+ (info_element->data[i])) {
+ network->flags |= NETWORK_HAS_CCK;
+ }
+ }
+
+ RTLLIB_DEBUG_MGMT("MFIE_TYPE_RATES: '%s' (%d)\n",
+ rates_str, network->rates_len);
+ break;
+
+ case MFIE_TYPE_RATES_EX:
+#ifdef CONFIG_RTLLIB_DEBUG
+ p = rates_str;
+#endif
+ network->rates_ex_len = min(info_element->len,
+ MAX_RATES_EX_LENGTH);
+ for (i = 0; i < network->rates_ex_len; i++) {
+ network->rates_ex[i] = info_element->data[i];
+#ifdef CONFIG_RTLLIB_DEBUG
+ p += snprintf(p, sizeof(rates_str) -
+ (p - rates_str), "%02X ",
+ network->rates[i]);
+#endif
+ if (rtllib_is_ofdm_rate
+ (info_element->data[i])) {
+ network->flags |= NETWORK_HAS_OFDM;
+ if (info_element->data[i] &
+ RTLLIB_BASIC_RATE_MASK)
+ network->flags &=
+ ~NETWORK_HAS_CCK;
+ }
+ }
+
+ RTLLIB_DEBUG_MGMT("MFIE_TYPE_RATES_EX: '%s' (%d)\n",
+ rates_str, network->rates_ex_len);
+ break;
+
+ case MFIE_TYPE_DS_SET:
+ RTLLIB_DEBUG_MGMT("MFIE_TYPE_DS_SET: %d\n",
+ info_element->data[0]);
+ network->channel = info_element->data[0];
+ break;
+
+ case MFIE_TYPE_FH_SET:
+ RTLLIB_DEBUG_MGMT("MFIE_TYPE_FH_SET: ignored\n");
+ break;
+
+ case MFIE_TYPE_CF_SET:
+ RTLLIB_DEBUG_MGMT("MFIE_TYPE_CF_SET: ignored\n");
+ break;
+
+ case MFIE_TYPE_TIM:
+ if(info_element->len < 4)
+ break;
+
+ network->tim.tim_count = info_element->data[0];
+ network->tim.tim_period = info_element->data[1];
+
+ network->dtim_period = info_element->data[1];
+ if(ieee->state != RTLLIB_LINKED)
+ break;
+#if 0
+ network->last_dtim_sta_time[0] = stats->mac_time[0];
+#else
+ network->last_dtim_sta_time[0] = jiffies;
+#endif
+ network->last_dtim_sta_time[1] = stats->mac_time[1];
+
+ network->dtim_data = RTLLIB_DTIM_VALID;
+
+
+ if(info_element->data[2] & 1)
+ network->dtim_data |= RTLLIB_DTIM_MBCAST;
+
+#if 1
+ offset = (info_element->data[2] >> 1)*2;
+
+
+ if(ieee->assoc_id < 8*offset ||
+ ieee->assoc_id > 8*(offset + info_element->len -3))
+
+ break;
+
+ offset = (ieee->assoc_id / 8) - offset;
+ if(info_element->data[3+offset] & (1<<(ieee->assoc_id%8)))
+ network->dtim_data |= RTLLIB_DTIM_UCAST;
+#else
+ {
+ u16 numSta = 0;
+ u16 offset_byte = 0;
+ u16 offset_bit = 0;
+
+ numSta = (info_element->data[2] &0xFE)*8;
+
+ if(ieee->assoc_id < numSta ||
+ ieee->assoc_id > (numSta + (info_element->len -3)*8))
+ break;
+
+ offset = ieee->assoc_id - numSta;
+ offset_byte = offset / 8;
+ offset_bit = offset % 8;
+ if(info_element->data[3+offset_byte] & (0x01<<offset_bit))
+ network->dtim_data |= RTLLIB_DTIM_UCAST;
+ }
+#endif
+
+ network->listen_interval = network->dtim_period;
+ break;
+
+ case MFIE_TYPE_ERP:
+ network->erp_value = info_element->data[0];
+ network->flags |= NETWORK_HAS_ERP_VALUE;
+ RTLLIB_DEBUG_MGMT("MFIE_TYPE_ERP_SET: %d\n",
+ network->erp_value);
+ break;
+ case MFIE_TYPE_IBSS_SET:
+ network->atim_window = info_element->data[0];
+ RTLLIB_DEBUG_MGMT("MFIE_TYPE_IBSS_SET: %d\n",
+ network->atim_window);
+ break;
+
+ case MFIE_TYPE_CHALLENGE:
+ RTLLIB_DEBUG_MGMT("MFIE_TYPE_CHALLENGE: ignored\n");
+ break;
+
+ case MFIE_TYPE_GENERIC:
+ RTLLIB_DEBUG_MGMT("MFIE_TYPE_GENERIC: %d bytes\n",
+ info_element->len);
+ if (!rtllib_parse_qos_info_param_IE(info_element,
+ network))
+ break;
+ if (info_element->len >= 4 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x50 &&
+ info_element->data[2] == 0xf2 &&
+ info_element->data[3] == 0x01) {
+ network->wpa_ie_len = min(info_element->len + 2,
+ MAX_WPA_IE_LEN);
+ memcpy(network->wpa_ie, info_element,
+ network->wpa_ie_len);
+ break;
+ }
+#ifdef THOMAS_TURBO
+ if (info_element->len == 7 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0xe0 &&
+ info_element->data[2] == 0x4c &&
+ info_element->data[3] == 0x01 &&
+ info_element->data[4] == 0x02) {
+ network->Turbo_Enable = 1;
+ }
+#endif
+
+ if(tmp_htcap_len == 0){
+ if(info_element->len >= 4 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x90 &&
+ info_element->data[2] == 0x4c &&
+ info_element->data[3] == 0x033){
+
+ tmp_htcap_len = min(info_element->len,(u8)MAX_IE_LEN);
+ if(tmp_htcap_len != 0){
+ network->bssht.bdHTSpecVer = HT_SPEC_VER_EWC;
+ network->bssht.bdHTCapLen = tmp_htcap_len > sizeof(network->bssht.bdHTCapBuf)?\
+ sizeof(network->bssht.bdHTCapBuf):tmp_htcap_len;
+ memcpy(network->bssht.bdHTCapBuf,info_element->data,network->bssht.bdHTCapLen);
+ }
+ }
+ if(tmp_htcap_len != 0){
+ network->bssht.bdSupportHT = true;
+ network->bssht.bdHT1R = ((((PHT_CAPABILITY_ELE)(network->bssht.bdHTCapBuf))->MCS[1]) == 0);
+ }else{
+ network->bssht.bdSupportHT = false;
+ network->bssht.bdHT1R = false;
+ }
+ }
+
+
+ if(tmp_htinfo_len == 0){
+ if(info_element->len >= 4 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x90 &&
+ info_element->data[2] == 0x4c &&
+ info_element->data[3] == 0x034){
+
+ tmp_htinfo_len = min(info_element->len,(u8)MAX_IE_LEN);
+ if(tmp_htinfo_len != 0){
+ network->bssht.bdHTSpecVer = HT_SPEC_VER_EWC;
+ if(tmp_htinfo_len){
+ network->bssht.bdHTInfoLen = tmp_htinfo_len > sizeof(network->bssht.bdHTInfoBuf)?\
+ sizeof(network->bssht.bdHTInfoBuf):tmp_htinfo_len;
+ memcpy(network->bssht.bdHTInfoBuf,info_element->data,network->bssht.bdHTInfoLen);
+ }
+
+ }
+
+ }
+ }
+
+ if(ieee->aggregation){
+ if(network->bssht.bdSupportHT){
+ if(info_element->len >= 4 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0xe0 &&
+ info_element->data[2] == 0x4c &&
+ info_element->data[3] == 0x02){
+
+ ht_realtek_agg_len = min(info_element->len,(u8)MAX_IE_LEN);
+ memcpy(ht_realtek_agg_buf,info_element->data,info_element->len);
+
+ }
+ if(ht_realtek_agg_len >= 5){
+ network->realtek_cap_exit = true;
+ network->bssht.bdRT2RTAggregation = true;
+
+ if((ht_realtek_agg_buf[4] == 1) && (ht_realtek_agg_buf[5] & 0x02))
+ network->bssht.bdRT2RTLongSlotTime = true;
+
+ if((ht_realtek_agg_buf[4]==1) && (ht_realtek_agg_buf[5] & RT_HT_CAP_USE_92SE))
+ {
+ network->bssht.RT2RT_HT_Mode |= RT_HT_CAP_USE_92SE;
+ }
+ }
+ }
+ if(ht_realtek_agg_len >= 5){
+ if((ht_realtek_agg_buf[5] & RT_HT_CAP_USE_SOFTAP))
+ network->bssht.RT2RT_HT_Mode |= RT_HT_CAP_USE_SOFTAP;
+ }
+ }
+
+ {
+ if((info_element->len >= 3 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x05 &&
+ info_element->data[2] == 0xb5) ||
+ (info_element->len >= 3 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x0a &&
+ info_element->data[2] == 0xf7) ||
+ (info_element->len >= 3 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x10 &&
+ info_element->data[2] == 0x18)){
+
+ network->broadcom_cap_exist = true;
+
+ }
+ }
+#if 0
+ if (tmp_htcap_len !=0)
+ {
+ u16 cap_ext = ((PHT_CAPABILITY_ELE)&info_element->data[0])->ExtHTCapInfo;
+ if ((cap_ext & 0x0c00) == 0x0c00)
+ {
+ network->ralink_cap_exist = true;
+ }
+ }
+#endif
+ if(info_element->len >= 3 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x0c &&
+ info_element->data[2] == 0x43)
+ {
+ network->ralink_cap_exist = true;
+ }
+ if((info_element->len >= 3 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x03 &&
+ info_element->data[2] == 0x7f) ||
+ (info_element->len >= 3 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x13 &&
+ info_element->data[2] == 0x74))
+ {
+ network->atheros_cap_exist = true;
+ }
+
+ if ((info_element->len >= 3 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x50 &&
+ info_element->data[2] == 0x43) )
+ {
+ network->marvell_cap_exist = true;
+ }
+ if(info_element->len >= 3 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x40 &&
+ info_element->data[2] == 0x96)
+ {
+ network->cisco_cap_exist = true;
+ }
+ if(info_element->len > 4 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x40 &&
+ info_element->data[2] == 0x96 &&
+ info_element->data[3] == 0x01)
+ {
+ if(info_element->len == 6)
+ {
+ memcpy(network->CcxRmState, &info_element[4], 2);
+ if(network->CcxRmState[0] != 0)
+ {
+ network->bCcxRmEnable = true;
+ }
+ else
+ network->bCcxRmEnable = false;
+ network->MBssidMask = network->CcxRmState[1] & 0x07;
+ if(network->MBssidMask != 0)
+ {
+ network->bMBssidValid = true;
+ network->MBssidMask = 0xff << (network->MBssidMask);
+ memcpy(network->MBssid, network->bssid, ETH_ALEN);
+ network->MBssid[5] &= network->MBssidMask;
+ }
+ else
+ {
+ network->bMBssidValid = false;
+ }
+ }
+ else
+ {
+ network->bCcxRmEnable = false;
+ }
+ }
+ if(info_element->len > 4 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x40 &&
+ info_element->data[2] == 0x96 &&
+ info_element->data[3] == 0x03)
+ {
+ if(info_element->len == 5)
+ {
+ network->bWithCcxVerNum = true;
+ network->BssCcxVerNumber = info_element->data[4];
+ }
+ else
+ {
+ network->bWithCcxVerNum = false;
+ network->BssCcxVerNumber = 0;
+ }
+ }
+ if(info_element->len > 4 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x50 &&
+ info_element->data[2] == 0xf2 &&
+ info_element->data[3] == 0x04)
+ {
+ RTLLIB_DEBUG_MGMT("MFIE_TYPE_WZC: %d bytes\n",
+ info_element->len);
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ network->wzc_ie_len = min(info_element->len+2,
+ MAX_WZC_IE_LEN);
+ memcpy(network->wzc_ie, info_element,
+ network->wzc_ie_len);
+#endif
+ }
+#ifdef _RTL8192_EXT_PATCH_
+#ifdef COMPATIBLE_WITH_RALINK_MESH
+ if(info_element->len > 3 &&
+ info_element->data[0] == 0x00 &&
+ info_element->data[1] == 0x0F &&
+ info_element->data[2] == 0xAC)
+ {
+ network->hostname_len = info_element->len - 3;
+ memcpy(network->hostname, (info_element->data+3), network->hostname_len);
+ }
+#else
+ if(info_element->len > 4 &&
+ info_element->data[0] == 0x48 &&
+ info_element->data[1] == 0x4F &&
+ info_element->data[2] == 0x53 &&
+ info_element->data[3] == 0x54)
+ {
+ network->hostname_len = info_element->len - 4;
+ memcpy(network->hostname, (info_element->data+4), network->hostname_len);
+ }
+#endif
+#endif
+ break;
+
+ case MFIE_TYPE_RSN:
+ RTLLIB_DEBUG_MGMT("MFIE_TYPE_RSN: %d bytes\n",
+ info_element->len);
+ network->rsn_ie_len = min(info_element->len + 2,
+ MAX_WPA_IE_LEN);
+ memcpy(network->rsn_ie, info_element,
+ network->rsn_ie_len);
+ break;
+
+ case MFIE_TYPE_HT_CAP:
+ RTLLIB_DEBUG_SCAN("MFIE_TYPE_HT_CAP: %d bytes\n",
+ info_element->len);
+ tmp_htcap_len = min(info_element->len,(u8)MAX_IE_LEN);
+ if(tmp_htcap_len != 0){
+ network->bssht.bdHTSpecVer = HT_SPEC_VER_EWC;
+ network->bssht.bdHTCapLen = tmp_htcap_len > sizeof(network->bssht.bdHTCapBuf)?\
+ sizeof(network->bssht.bdHTCapBuf):tmp_htcap_len;
+ memcpy(network->bssht.bdHTCapBuf,info_element->data,network->bssht.bdHTCapLen);
+
+ network->bssht.bdSupportHT = true;
+ network->bssht.bdHT1R = ((((PHT_CAPABILITY_ELE)(network->bssht.bdHTCapBuf))->MCS[1]) == 0);
+
+ network->bssht.bdBandWidth = (HT_CHANNEL_WIDTH)(((PHT_CAPABILITY_ELE)(network->bssht.bdHTCapBuf))->ChlWidth);
+ }
+ else{
+ network->bssht.bdSupportHT = false;
+ network->bssht.bdHT1R = false;
+ network->bssht.bdBandWidth = HT_CHANNEL_WIDTH_20 ;
+ }
+ break;
+
+
+ case MFIE_TYPE_HT_INFO:
+ RTLLIB_DEBUG_SCAN("MFIE_TYPE_HT_INFO: %d bytes\n",
+ info_element->len);
+ tmp_htinfo_len = min(info_element->len,(u8)MAX_IE_LEN);
+ if(tmp_htinfo_len){
+ network->bssht.bdHTSpecVer = HT_SPEC_VER_IEEE;
+ network->bssht.bdHTInfoLen = tmp_htinfo_len > sizeof(network->bssht.bdHTInfoBuf)?\
+ sizeof(network->bssht.bdHTInfoBuf):tmp_htinfo_len;
+ memcpy(network->bssht.bdHTInfoBuf,info_element->data,network->bssht.bdHTInfoLen);
+ }
+ break;
+
+ case MFIE_TYPE_AIRONET:
+ RTLLIB_DEBUG_SCAN("MFIE_TYPE_AIRONET: %d bytes\n",
+ info_element->len);
+ if(info_element->len >IE_CISCO_FLAG_POSITION)
+ {
+ network->bWithAironetIE = true;
+
+ if( (info_element->data[IE_CISCO_FLAG_POSITION]&SUPPORT_CKIP_MIC) ||
+ (info_element->data[IE_CISCO_FLAG_POSITION]&SUPPORT_CKIP_PK) )
+ {
+ network->bCkipSupported = true;
+ }
+ else
+ {
+ network->bCkipSupported = false;
+ }
+ }
+ else
+ {
+ network->bWithAironetIE = false;
+ network->bCkipSupported = false;
+ }
+ break;
+ case MFIE_TYPE_QOS_PARAMETER:
+ printk(KERN_ERR
+ "QoS Error need to parse QOS_PARAMETER IE\n");
+ break;
+
+#ifdef ENABLE_DOT11D
+ case MFIE_TYPE_COUNTRY:
+ RTLLIB_DEBUG_SCAN("MFIE_TYPE_COUNTRY: %d bytes\n",
+ info_element->len);
+ rtllib_extract_country_ie(ieee, info_element, network, network->bssid);
+ break;
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ case MFIE_TYPE_MESH_ID:
+ network->mesh_id_len = min(info_element->len, (u8)MAX_MESH_ID_LEN);
+ memcpy(network->mesh_id, info_element->data, network->mesh_id_len);
+ if (network->mesh_id_len < MAX_MESH_ID_LEN) {
+ memset(network->mesh_id + network->mesh_id_len, 0,
+ MAX_MESH_ID_LEN - network->mesh_id_len);
+ }
+ RTLLIB_DEBUG_MGMT("MFIE_TYPE_MESH_ID: '%s'len=%d.\n", network->mesh_id,
+ network->mesh_id_len);
+ break;
+
+ case MFIE_TYPE_MESH_CONFIGURATION:
+ network->mesh_config_len = min(info_element->len, (u8)MESH_CONF_TOTAL_LEN);
+ memcpy(network->mesh_config.path_proto_id, info_element->data + 1, 4);
+ memcpy(network->mesh_config.path_metric_id, info_element->data + 5, 4);
+ memcpy(network->mesh_config.congest_ctl_mode, info_element->data + 9, 4);
+ memcpy(network->mesh_config.mesh_capability, info_element->data + 17, 2);
+ break;
+#endif
+/* TODO */
+#if 0
+ /* 802.11h */
+ case MFIE_TYPE_POWER_CONSTRAINT:
+ network->power_constraint = info_element->data[0];
+ network->flags |= NETWORK_HAS_POWER_CONSTRAINT;
+ break;
+
+ case MFIE_TYPE_CSA:
+ network->power_constraint = info_element->data[0];
+ network->flags |= NETWORK_HAS_CSA;
+ break;
+
+ case MFIE_TYPE_QUIET:
+ network->quiet.count = info_element->data[0];
+ network->quiet.period = info_element->data[1];
+ network->quiet.duration = info_element->data[2];
+ network->quiet.offset = info_element->data[3];
+ network->flags |= NETWORK_HAS_QUIET;
+ break;
+
+ case MFIE_TYPE_IBSS_DFS:
+ if (network->ibss_dfs)
+ break;
+ network->ibss_dfs = kmemdup(info_element->data,
+ info_element->len,
+ GFP_ATOMIC);
+ if (!network->ibss_dfs)
+ return 1;
+ network->flags |= NETWORK_HAS_IBSS_DFS;
+ break;
+
+ case MFIE_TYPE_TPC_REPORT:
+ network->tpc_report.transmit_power =
+ info_element->data[0];
+ network->tpc_report.link_margin = info_element->data[1];
+ network->flags |= NETWORK_HAS_TPC_REPORT;
+ break;
+#endif
+#ifdef RTL8192S_WAPI_SUPPORT
+ case MFIE_TYPE_WAPI:
+ RTLLIB_DEBUG_MGMT("MFIE_TYPE_WAPI: %d bytes\n", info_element->len);
+ tmp_wapi_len = min(info_element->len,(u8)MAX_WAPI_IE_LEN);
+ if(tmp_wapi_len){
+ network->wapi_ie_len = tmp_wapi_len;
+ memcpy(network->wapi_ie,info_element->data,network->wapi_ie_len);
+ }
+ break;
+#endif
+ default:
+ RTLLIB_DEBUG_MGMT
+ ("Unsupported info element: %s (%d)\n",
+ get_info_element_string(info_element->id),
+ info_element->id);
+ break;
+ }
+
+ length -= sizeof(*info_element) + info_element->len;
+ info_element =
+ (struct rtllib_info_element *)&info_element->
+ data[info_element->len];
+ }
+
+ if(!network->atheros_cap_exist && !network->broadcom_cap_exist &&
+ !network->cisco_cap_exist && !network->ralink_cap_exist && !network->bssht.bdRT2RTAggregation)
+ {
+ network->unknown_cap_exist = true;
+ }
+ else
+ {
+ network->unknown_cap_exist = false;
+ }
+ return 0;
+}
+
+static inline u8 rtllib_SignalStrengthTranslate(
+ u8 CurrSS
+ )
+{
+ u8 RetSS;
+
+ if(CurrSS >= 71 && CurrSS <= 100)
+ {
+ RetSS = 90 + ((CurrSS - 70) / 3);
+ }
+ else if(CurrSS >= 41 && CurrSS <= 70)
+ {
+ RetSS = 78 + ((CurrSS - 40) / 3);
+ }
+ else if(CurrSS >= 31 && CurrSS <= 40)
+ {
+ RetSS = 66 + (CurrSS - 30);
+ }
+ else if(CurrSS >= 21 && CurrSS <= 30)
+ {
+ RetSS = 54 + (CurrSS - 20);
+ }
+ else if(CurrSS >= 5 && CurrSS <= 20)
+ {
+ RetSS = 42 + (((CurrSS - 5) * 2) / 3);
+ }
+ else if(CurrSS == 4)
+ {
+ RetSS = 36;
+ }
+ else if(CurrSS == 3)
+ {
+ RetSS = 27;
+ }
+ else if(CurrSS == 2)
+ {
+ RetSS = 18;
+ }
+ else if(CurrSS == 1)
+ {
+ RetSS = 9;
+ }
+ else
+ {
+ RetSS = CurrSS;
+ }
+
+
+
+ return RetSS;
+}
+
+long rtllib_translate_todbm(u8 signal_strength_index )
+{
+ long signal_power;
+
+ signal_power = (long)((signal_strength_index + 1) >> 1);
+ signal_power -= 95;
+
+ return signal_power;
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+extern int rtllib_network_init(
+#else
+static inline int rtllib_network_init(
+#endif
+ struct rtllib_device *ieee,
+ struct rtllib_probe_response *beacon,
+ struct rtllib_network *network,
+ struct rtllib_rx_stats *stats)
+{
+#ifdef CONFIG_RTLLIB_DEBUG
+#endif
+
+ /*
+ network->qos_data.active = 0;
+ network->qos_data.supported = 0;
+ network->qos_data.param_count = 0;
+ network->qos_data.old_param_count = 0;
+ */
+ memset(&network->qos_data, 0, sizeof(struct rtllib_qos_data));
+
+ /* Pull out fixed field data */
+ memcpy(network->bssid, beacon->header.addr3, ETH_ALEN);
+ network->capability = le16_to_cpu(beacon->capability);
+ network->last_scanned = jiffies;
+ network->time_stamp[0] = le32_to_cpu(beacon->time_stamp[0]);
+ network->time_stamp[1] = le32_to_cpu(beacon->time_stamp[1]);
+ network->beacon_interval = le32_to_cpu(beacon->beacon_interval);
+ /* Where to pull this? beacon->listen_interval;*/
+ network->listen_interval = 0x0A;
+ network->rates_len = network->rates_ex_len = 0;
+ network->last_associate = 0;
+ network->ssid_len = 0;
+ network->hidden_ssid_len = 0;
+ memset(network->hidden_ssid, 0, sizeof(network->hidden_ssid));
+ network->flags = 0;
+ network->atim_window = 0;
+ network->erp_value = (network->capability & WLAN_CAPABILITY_IBSS) ?
+ 0x3 : 0x0;
+ network->berp_info_valid = false;
+ network->broadcom_cap_exist = false;
+ network->ralink_cap_exist = false;
+ network->atheros_cap_exist = false;
+ network->cisco_cap_exist = false;
+ network->unknown_cap_exist = false;
+ network->realtek_cap_exit = false;
+ network->marvell_cap_exist = false;
+#ifdef THOMAS_TURBO
+ network->Turbo_Enable = 0;
+#endif
+ network->SignalStrength = stats->SignalStrength;
+ network->RSSI = stats->SignalStrength;
+#ifdef ENABLE_DOT11D
+ network->CountryIeLen = 0;
+ memset(network->CountryIeBuf, 0, MAX_IE_LEN);
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ memset(network->hostname, 0, MAX_HOST_NAME_LENGTH);
+ network->hostname_len = 0;
+#endif
+ HTInitializeBssDesc(&network->bssht);
+ if (stats->freq == RTLLIB_52GHZ_BAND) {
+ /* for A band (No DS info) */
+ network->channel = stats->received_channel;
+ } else
+ network->flags |= NETWORK_HAS_CCK;
+
+ network->wpa_ie_len = 0;
+ network->rsn_ie_len = 0;
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ network->wzc_ie_len = 0;
+#endif
+
+ if (rtllib_parse_info_param(ieee,
+ beacon->info_element,
+ (stats->len - sizeof(*beacon)),
+ network,
+ stats))
+ return 1;
+
+ network->mode = 0;
+ if (stats->freq == RTLLIB_52GHZ_BAND)
+ network->mode = IEEE_A;
+ else {
+ if (network->flags & NETWORK_HAS_OFDM)
+ network->mode |= IEEE_G;
+ if (network->flags & NETWORK_HAS_CCK)
+ network->mode |= IEEE_B;
+ }
+
+ if (network->mode == 0) {
+ RTLLIB_DEBUG_SCAN("Filtered out '%s (" MAC_FMT ")' "
+ "network.\n",
+ escape_essid(network->ssid,
+ network->ssid_len),
+ MAC_ARG(network->bssid));
+ return 1;
+ }
+
+ if(network->bssht.bdSupportHT){
+#ifdef _RTL8192_EXT_PATCH_
+ if(network->mode == IEEE_A)
+ network->mode |= IEEE_N_5G;
+ else if(network->mode & (IEEE_G | IEEE_B))
+ network->mode |= IEEE_N_24G;
+#else
+ if(network->mode == IEEE_A)
+ network->mode = IEEE_N_5G;
+ else if(network->mode & (IEEE_G | IEEE_B))
+ network->mode = IEEE_N_24G;
+#endif
+ }
+ if (rtllib_is_empty_essid(network->ssid, network->ssid_len))
+ network->flags |= NETWORK_EMPTY_ESSID;
+
+#if 0
+ {
+ static u8 Netgear845T_Mac[3] = {0x00, 0x1B, 0x2F};
+ static u8 Buffalo300N_Mac[3] = {0x00, 0x16, 0x01};
+
+ if(ieee->RF_Type == RF_1T1R || ieee->b1SSSupport == true)
+ {
+ if((memcmp(network->bssid, Netgear845T_Mac, 3)==0) ||(memcmp(network->bssid, Buffalo300N_Mac, 3)==0))
+ {
+ network->bIsNetgear854T = true;
+ network->bssht.bdSupportHT = false;
+ if(network->mode == WIRELESS_MODE_N_24G)
+ {
+ network->mode = WIRELESS_MODE_B | WIRELESS_MODE_G;
+ }
+
+ }
+ else
+ {
+ network->bIsNetgear854T = false;
+ }
+ }
+ }
+#endif
+
+#if 1
+ stats->signal = 30 + (stats->SignalStrength * 70) / 100;
+ stats->noise = rtllib_translate_todbm((u8)(100-stats->signal)) -25;
+#endif
+
+ memcpy(&network->stats, stats, sizeof(network->stats));
+
+ return 0;
+}
+
+static inline int is_same_network(struct rtllib_network *src,
+ struct rtllib_network *dst, u8 ssidbroad)
+{
+ /* A network is only a duplicate if the channel, BSSID, ESSID
+ * and the capability field (in particular IBSS and BSS) all match.
+ * We treat all <hidden> with the same BSSID and channel
+ * as one network */
+ return
+ (((src->ssid_len == dst->ssid_len) || (!ssidbroad)) &&
+ (src->channel == dst->channel) &&
+ !memcmp(src->bssid, dst->bssid, ETH_ALEN) &&
+ (!memcmp(src->ssid, dst->ssid, src->ssid_len) || (!ssidbroad)) &&
+ ((src->capability & WLAN_CAPABILITY_IBSS) ==
+ (dst->capability & WLAN_CAPABILITY_IBSS)) &&
+ ((src->capability & WLAN_CAPABILITY_ESS) ==
+ (dst->capability & WLAN_CAPABILITY_ESS)));
+}
+
+static inline void update_network(struct rtllib_network *dst,
+ struct rtllib_network *src)
+{
+ int qos_active;
+ u8 old_param;
+
+ memcpy(&dst->stats, &src->stats, sizeof(struct rtllib_rx_stats));
+ dst->capability = src->capability;
+ memcpy(dst->rates, src->rates, src->rates_len);
+ dst->rates_len = src->rates_len;
+ memcpy(dst->rates_ex, src->rates_ex, src->rates_ex_len);
+ dst->rates_ex_len = src->rates_ex_len;
+ if(src->ssid_len > 0)
+ {
+ if(dst->ssid_len == 0)
+ {
+ memset(dst->hidden_ssid, 0, sizeof(dst->hidden_ssid));
+ dst->hidden_ssid_len = src->ssid_len;
+ memcpy(dst->hidden_ssid, src->ssid, src->ssid_len);
+ }else{
+ memset(dst->ssid, 0, dst->ssid_len);
+ dst->ssid_len = src->ssid_len;
+ memcpy(dst->ssid, src->ssid, src->ssid_len);
+ }
+ }
+ dst->mode = src->mode;
+ dst->flags = src->flags;
+ dst->time_stamp[0] = src->time_stamp[0];
+ dst->time_stamp[1] = src->time_stamp[1];
+ if (src->flags & NETWORK_HAS_ERP_VALUE)
+ {
+ dst->erp_value = src->erp_value;
+ dst->berp_info_valid = src->berp_info_valid = true;
+ }
+ dst->beacon_interval = src->beacon_interval;
+ dst->listen_interval = src->listen_interval;
+ dst->atim_window = src->atim_window;
+ dst->dtim_period = src->dtim_period;
+ dst->dtim_data = src->dtim_data;
+ dst->last_dtim_sta_time[0] = src->last_dtim_sta_time[0];
+ dst->last_dtim_sta_time[1] = src->last_dtim_sta_time[1];
+ memcpy(&dst->tim, &src->tim, sizeof(struct rtllib_tim_parameters));
+
+ dst->bssht.bdSupportHT = src->bssht.bdSupportHT;
+ dst->bssht.bdRT2RTAggregation = src->bssht.bdRT2RTAggregation;
+ dst->bssht.bdHTCapLen= src->bssht.bdHTCapLen;
+ memcpy(dst->bssht.bdHTCapBuf,src->bssht.bdHTCapBuf,src->bssht.bdHTCapLen);
+ dst->bssht.bdHTInfoLen= src->bssht.bdHTInfoLen;
+ memcpy(dst->bssht.bdHTInfoBuf,src->bssht.bdHTInfoBuf,src->bssht.bdHTInfoLen);
+ dst->bssht.bdHTSpecVer = src->bssht.bdHTSpecVer;
+ dst->bssht.bdRT2RTLongSlotTime = src->bssht.bdRT2RTLongSlotTime;
+ dst->broadcom_cap_exist = src->broadcom_cap_exist;
+ dst->ralink_cap_exist = src->ralink_cap_exist;
+ dst->atheros_cap_exist = src->atheros_cap_exist;
+ dst->realtek_cap_exit = src->realtek_cap_exit;
+ dst->marvell_cap_exist = src->marvell_cap_exist;
+ dst->cisco_cap_exist = src->cisco_cap_exist;
+ dst->unknown_cap_exist = src->unknown_cap_exist;
+ memcpy(dst->wpa_ie, src->wpa_ie, src->wpa_ie_len);
+ dst->wpa_ie_len = src->wpa_ie_len;
+ memcpy(dst->rsn_ie, src->rsn_ie, src->rsn_ie_len);
+ dst->rsn_ie_len = src->rsn_ie_len;
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ memcpy(dst->wzc_ie, src->wzc_ie, src->wzc_ie_len);
+ dst->wzc_ie_len = src->wzc_ie_len;
+#endif
+
+ dst->last_scanned = jiffies;
+ /* qos related parameters */
+ qos_active = dst->qos_data.active;
+ old_param = dst->qos_data.param_count;
+#if 0
+ if(dst->flags & NETWORK_HAS_QOS_MASK){
+ }
+ else {
+ dst->qos_data.supported = src->qos_data.supported;
+ dst->qos_data.param_count = src->qos_data.param_count;
+ }
+#else
+ dst->qos_data.supported = src->qos_data.supported;
+ if(dst->flags & NETWORK_HAS_QOS_PARAMETERS){
+ memcpy(&dst->qos_data, &src->qos_data, sizeof(struct rtllib_qos_data));
+ }
+#endif
+ if(dst->qos_data.supported == 1) {
+ if(dst->ssid_len)
+ RTLLIB_DEBUG_QOS
+ ("QoS the network %s is QoS supported\n",
+ dst->ssid);
+ else
+ RTLLIB_DEBUG_QOS
+ ("QoS the network is QoS supported\n");
+ }
+ dst->qos_data.active = qos_active;
+ dst->qos_data.old_param_count = old_param;
+
+ /* dst->last_associate is not overwritten */
+ dst->wmm_info = src->wmm_info;
+ if(src->wmm_param[0].ac_aci_acm_aifsn|| \
+ src->wmm_param[1].ac_aci_acm_aifsn|| \
+ src->wmm_param[2].ac_aci_acm_aifsn|| \
+ src->wmm_param[1].ac_aci_acm_aifsn) {
+ memcpy(dst->wmm_param, src->wmm_param, WME_AC_PRAM_LEN);
+ }
+
+ dst->SignalStrength = src->SignalStrength;
+ dst->RSSI = src->RSSI;
+#ifdef THOMAS_TURBO
+ dst->Turbo_Enable = src->Turbo_Enable;
+#endif
+
+#ifdef ENABLE_DOT11D
+ dst->CountryIeLen = src->CountryIeLen;
+ memcpy(dst->CountryIeBuf, src->CountryIeBuf, src->CountryIeLen);
+#endif
+
+ dst->bWithAironetIE = src->bWithAironetIE;
+ dst->bCkipSupported = src->bCkipSupported;
+ memcpy(dst->CcxRmState,src->CcxRmState,2);
+ dst->bCcxRmEnable = src->bCcxRmEnable;
+ dst->MBssidMask = src->MBssidMask;
+ dst->bMBssidValid = src->bMBssidValid;
+ memcpy(dst->MBssid,src->MBssid,6);
+ dst->bWithCcxVerNum = src->bWithCcxVerNum;
+ dst->BssCcxVerNumber = src->BssCcxVerNumber;
+
+}
+static inline int is_beacon(__le16 fc)
+{
+ return (WLAN_FC_GET_STYPE(le16_to_cpu(fc)) == RTLLIB_STYPE_BEACON);
+}
+
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+u8 AsocEntry_ComputeSum(u8 *paddr)
+{
+ u32 sum;
+
+ sum = paddr[0]+
+ paddr[1]+
+ paddr[2]+
+ paddr[3]+
+ paddr[4]+
+ paddr[5];
+
+ return (u8)(sum % PEER_MAX_ASSOC);
+}
+u8 AsocEntry_AssignAvailableAID(struct rtllib_device *ieee, u8 *paddr)
+{
+ int i;
+
+ for(i = 0; i < PEER_MAX_ASSOC; i++)
+ {
+ if(ieee->AvailableAIDTable[i] == 99)
+ {
+ ieee->AvailableAIDTable[i] = AsocEntry_ComputeSum(paddr);
+ return i+1;
+ }
+ }
+
+ return 1;
+}
+
+void InitStaInfo(struct rtllib_device *ieee,int index)
+{
+ int idx = index;
+ ieee->peer_assoc_list[idx]->StaDataRate = 0;
+ ieee->peer_assoc_list[idx]->StaSS = 0;
+ ieee->peer_assoc_list[idx]->RetryFrameCnt = 0;
+ ieee->peer_assoc_list[idx]->NoRetryFrameCnt = 0;
+ ieee->peer_assoc_list[idx]->LastRetryCnt = 0;
+ ieee->peer_assoc_list[idx]->LastNoRetryCnt = 0;
+ ieee->peer_assoc_list[idx]->AvgRetryRate = 0;
+ ieee->peer_assoc_list[idx]->LastRetryRate = 0;
+ ieee->peer_assoc_list[idx]->txRateIndex = 11;
+ ieee->peer_assoc_list[idx]->APDataRate = 0x2;
+ ieee->peer_assoc_list[idx]->ForcedDataRate = 0x2;
+
+}
+static u8 IsStaInfoExist(struct rtllib_device *ieee, u8 *addr)
+{
+ int k=0;
+ struct sta_info * psta = NULL;
+ u8 sta_idx = PEER_MAX_ASSOC;
+
+ for(k=0; k<PEER_MAX_ASSOC; k++)
+ {
+ psta = ieee->peer_assoc_list[k];
+ if(NULL != psta)
+ {
+ if(memcmp(addr, psta->macaddr, ETH_ALEN) == 0)
+ {
+ sta_idx = k;
+ break;
+ }
+ }
+ }
+ return sta_idx;
+}
+static u8 GetFreeStaInfoIdx(struct rtllib_device *ieee, u8 *addr)
+{
+ int k = 0;
+ while((ieee->peer_assoc_list[k] != NULL) && (k < PEER_MAX_ASSOC))
+ k++;
+ printk("%s: addr:"MAC_FMT" index: %d\n", __FUNCTION__, MAC_ARG(addr), k);
+ return k;
+}
+struct sta_info *GetStaInfo(struct rtllib_device *ieee, u8 *addr)
+{
+ int k=0;
+ struct sta_info * psta = NULL;
+ struct sta_info * psta_find = NULL;
+
+ for(k=0; k<PEER_MAX_ASSOC; k++)
+ {
+ psta = ieee->peer_assoc_list[k];
+ if(NULL != psta)
+ {
+ if(memcmp(addr, psta->macaddr, ETH_ALEN) == 0)
+ {
+ psta_find = psta;
+ break;
+ }
+ }
+ }
+ return psta_find;
+}
+void DelStaInfoList(struct rtllib_device *ieee)
+{
+ int idx = 0;
+ struct sta_info * AsocEntry = NULL;
+
+ atomic_set(&ieee->AsocEntryNum, 0);
+ for(idx=0; idx<PEER_MAX_ASSOC; idx++){
+ AsocEntry = ieee->peer_assoc_list[idx];
+ if(NULL != AsocEntry){
+ kfree(AsocEntry);
+ ieee->peer_assoc_list[idx] = NULL;
+ }
+ ieee->AvailableAIDTable[idx] = 99;
+ }
+}
+void DelStaInfo(struct rtllib_device *ieee, u8 *addr)
+{
+ struct sta_info * psta = NULL;
+ int k=0;
+
+ for(k=0; k<PEER_MAX_ASSOC; k++)
+ {
+ psta = ieee->peer_assoc_list[k];
+ if(NULL != psta){
+ if(memcmp(addr, psta->macaddr, ETH_ALEN) == 0){
+ if (psta->aid > 0 && psta->aid-1 < PEER_MAX_ASSOC)
+ ieee->AvailableAIDTable[psta->aid-1] = 99;
+ else
+ printk("%s(): clear non-existing entry AID\n", __func__);
+
+ kfree(psta);
+ ieee->peer_assoc_list[k] = NULL;
+ atomic_dec(&ieee->AsocEntryNum);
+ }
+ }
+ }
+}
+void IbssAgeFunction(struct rtllib_device *ieee)
+{
+ struct sta_info* AsocEntry = NULL;
+ int idx;
+ unsigned long CurrentTime;
+ signed long TimeDifference;
+ struct rtllib_network *target;
+
+ CurrentTime = jiffies;
+
+ for(idx = 0; idx < PEER_MAX_ASSOC; idx++)
+ {
+ AsocEntry = ieee->peer_assoc_list[idx];
+ if(AsocEntry)
+ {
+ TimeDifference = jiffies_to_msecs(CurrentTime - AsocEntry->LastActiveTime);
+
+ if(TimeDifference > 20000)
+ {
+ printk("IbssAgeFunction(): "MAC_FMT" timeout\n", MAC_ARG(AsocEntry->macaddr));
+#ifdef RTL8192S_WAPI_SUPPORT
+ if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable))
+ {
+ WapiReturnOneStaInfo(ieee, AsocEntry->macaddr, 0);
+ }
+#endif
+ kfree(AsocEntry);
+ ieee->peer_assoc_list[idx] = NULL;
+ atomic_dec(&ieee->AsocEntryNum);
+
+ if(atomic_read(&ieee->AsocEntryNum) == 0){
+
+ down(&ieee->wx_sem);
+ rtllib_stop_protocol(ieee,true);
+
+ list_for_each_entry(target, &ieee->network_list, list) {
+ if (is_same_network(target, &ieee->current_network,(target->ssid_len?1:0))){
+ printk("delete sta of previous Ad-hoc\n");
+ list_del(&target->list);
+ break;
+ }
+ }
+
+ rtllib_start_protocol(ieee);
+ up(&ieee->wx_sem);
+ }else{
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)){
+ WAPI_CreateEvent_Send(ieee, WAPI_EVENT_CONNECT, ieee->current_network.bssid, NULL, 0);
+ }
+#endif
+ }
+ }
+ }
+ }
+
+#ifdef TO_DO_LIST
+ if(AsocEntry_AnyStationAssociated(pMgntInfo)==false)
+ DrvIFIndicateDisassociation(Adapter, unspec_reason);
+
+ if(pMgntInfo->dot11CurrentWirelessMode == WIRELESS_MODE_G ||
+ (IS_WIRELESS_MODE_N_24G(Adapter) && pMgntInfo->pHTInfo->bCurSuppCCK) )
+ {
+ if(nBModeStaCnt == 0)
+ {
+ pMgntInfo->bUseProtection = false;
+ ActUpdate_mCapInfo(Adapter, pMgntInfo->mCap);
+ }
+ }
+
+ if(IS_WIRELESS_MODE_N_24G(Adapter) || IS_WIRELESS_MODE_N_5G(Adapter) )
+ {
+ if(nLegacyStaCnt > 0)
+ {
+ pMgntInfo->pHTInfo->CurrentOpMode = HT_OPMODE_MIXED;
+ }
+ else
+ {
+ if((pMgntInfo->pHTInfo->bCurBW40MHz) && (n20MHzStaCnt > 0))
+ pMgntInfo->pHTInfo->CurrentOpMode = HT_OPMODE_40MHZ_PROTECT;
+ else
+ pMgntInfo->pHTInfo->CurrentOpMode = HT_OPMODE_NO_PROTECT;
+
+ }
+ }
+
+ if(IS_WIRELESS_MODE_G(Adapter) ||
+ (IS_WIRELESS_MODE_N_24G(Adapter) && pMgntInfo->pHTInfo->bCurSuppCCK))
+ {
+ if(pMgntInfo->bUseProtection)
+ {
+ u8 CckRate[4] = { MGN_1M, MGN_2M, MGN_5_5M, MGN_11M };
+ OCTET_STRING osCckRate;
+ FillOctetString(osCckRate, CckRate, 4);
+ FilterSupportRate(pMgntInfo->mBrates, &osCckRate, false);
+ Adapter->HalFunc.SetHwRegHandler(Adapter, HW_VAR_BASIC_RATE, (pu1Byte)&osCckRate);
+ }
+ else
+ {
+ Adapter->HalFunc.SetHwRegHandler( Adapter, HW_VAR_BASIC_RATE, (pu1Byte)(&pMgntInfo->mBrates) );
+ }
+ }
+#endif
+}
+#endif
+
+static int IsPassiveChannel( struct rtllib_device *rtllib, u8 channel)
+{
+ if (MAX_CHANNEL_NUMBER < channel) {
+ printk("%s(): Invalid Channel\n", __FUNCTION__);
+ return 0;
+ }
+
+ if(rtllib->active_channel_map[channel] == 2)
+ return 1;
+
+ return 0;
+}
+
+int IsLegalChannel( struct rtllib_device *rtllib, u8 channel)
+{
+ if (MAX_CHANNEL_NUMBER < channel) {
+ printk("%s(): Invalid Channel\n", __FUNCTION__);
+ return 0;
+ }
+ if (rtllib->active_channel_map[channel] > 0)
+ return 1;
+
+ return 0;
+}
+
+
+static inline void rtllib_process_probe_response(
+ struct rtllib_device *ieee,
+ struct rtllib_probe_response *beacon,
+ struct rtllib_rx_stats *stats)
+{
+ struct rtllib_network *target;
+ struct rtllib_network *oldest = NULL;
+#ifdef CONFIG_RTLLIB_DEBUG
+ struct rtllib_info_element *info_element = &beacon->info_element[0];
+#endif
+ unsigned long flags;
+ short renew;
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
+ struct rtllib_network *network = kzalloc(sizeof(struct rtllib_network), GFP_ATOMIC);
+#else
+ struct rtllib_network *network = kmalloc(sizeof(*network), GFP_KERNEL);
+ memset(network,0,sizeof(*network));
+#endif
+
+ if (!network) {
+ return;
+ }
+
+#ifdef _RTL8192_EXT_PATCH_
+ if(ieee->ext_patch_rtllib_process_probe_response_1) {
+ /* 2 deonte the normal beacon packet,
+ * discard it under mesh only mode */
+ if(ieee->ext_patch_rtllib_process_probe_response_1(ieee, beacon, stats) != 2){
+ goto free_network;
+ } else if((ieee->iw_mode == IW_MODE_MESH)&&ieee->only_mesh) {
+ goto free_network;
+ }
+ }
+#endif
+
+ RTLLIB_DEBUG_SCAN(
+ "'%s' (" MAC_FMT "): %c%c%c%c %c%c%c%c-%c%c%c%c %c%c%c%c\n",
+ escape_essid(info_element->data, info_element->len),
+ MAC_ARG(beacon->header.addr3),
+ (beacon->capability & (1<<0xf)) ? '1' : '0',
+ (beacon->capability & (1<<0xe)) ? '1' : '0',
+ (beacon->capability & (1<<0xd)) ? '1' : '0',
+ (beacon->capability & (1<<0xc)) ? '1' : '0',
+ (beacon->capability & (1<<0xb)) ? '1' : '0',
+ (beacon->capability & (1<<0xa)) ? '1' : '0',
+ (beacon->capability & (1<<0x9)) ? '1' : '0',
+ (beacon->capability & (1<<0x8)) ? '1' : '0',
+ (beacon->capability & (1<<0x7)) ? '1' : '0',
+ (beacon->capability & (1<<0x6)) ? '1' : '0',
+ (beacon->capability & (1<<0x5)) ? '1' : '0',
+ (beacon->capability & (1<<0x4)) ? '1' : '0',
+ (beacon->capability & (1<<0x3)) ? '1' : '0',
+ (beacon->capability & (1<<0x2)) ? '1' : '0',
+ (beacon->capability & (1<<0x1)) ? '1' : '0',
+ (beacon->capability & (1<<0x0)) ? '1' : '0');
+
+ if (rtllib_network_init(ieee, beacon, network, stats)) {
+ RTLLIB_DEBUG_SCAN("Dropped '%s' (" MAC_FMT ") via %s.\n",
+ escape_essid(info_element->data,
+ info_element->len),
+ MAC_ARG(beacon->header.addr3),
+ WLAN_FC_GET_STYPE(beacon->header.frame_ctl) ==
+ RTLLIB_STYPE_PROBE_RESP ?
+ "PROBE RESPONSE" : "BEACON");
+ goto free_network;
+ }
+
+
+ if (!IsLegalChannel(ieee, network->channel))
+ goto free_network;
+
+ if (WLAN_FC_GET_STYPE(beacon->header.frame_ctl) == RTLLIB_STYPE_PROBE_RESP) {
+ if (IsPassiveChannel(ieee, network->channel)) {
+ printk("GetScanInfo(): For Global Domain, "
+ "filter probe response at channel(%d).\n", network->channel);
+ goto free_network;
+ }
+ }
+
+ /* The network parsed correctly -- so now we scan our known networks
+ * to see if we can find it in our list.
+ *
+ * NOTE: This search is definitely not optimized. Once its doing
+ * the "right thing" we'll optimize it for efficiency if
+ * necessary */
+
+ /* Search for this entry in the list and update it if it is
+ * already there. */
+
+ spin_lock_irqsave(&ieee->lock, flags);
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ if(is_beacon(beacon->header.frame_ctl)){
+ if((ieee->iw_mode == IW_MODE_ADHOC) && (ieee->state == RTLLIB_LINKED))
+ {
+ if((network->ssid_len == ieee->current_network.ssid_len)
+ && (!memcmp(network->ssid,ieee->current_network.ssid,ieee->current_network.ssid_len))
+ && (network->channel == ieee->current_network.channel)
+ && (ieee->current_network.channel > 0)
+ && (ieee->current_network.channel <= 14))
+ {
+ if(!memcmp(ieee->current_network.bssid,network->bssid,6))
+ {
+ int idx = 0;
+ struct rtllib_hdr_3addr* header = NULL;
+ int idx_exist = 0;
+ if(timer_pending(&ieee->ibss_wait_timer))
+ del_timer_sync(&ieee->ibss_wait_timer);
+ header = (struct rtllib_hdr_3addr*)&(beacon->header);
+ idx_exist = IsStaInfoExist(ieee,header->addr2);
+ if(idx_exist >= PEER_MAX_ASSOC) {
+ idx = GetFreeStaInfoIdx(ieee, header->addr2);
+ } else {
+ ieee->peer_assoc_list[idx_exist]->LastActiveTime = jiffies;
+ goto no_alloc;
+ }
+ if (idx >= PEER_MAX_ASSOC - 1) {
+ printk("\n%s():ERR!!!Buffer overflow - could not append!!!",__FUNCTION__);
+ goto free_network;
+ } else {
+ ieee->peer_assoc_list[idx] = (struct sta_info *)kmalloc(sizeof(struct sta_info), GFP_ATOMIC);
+ memset(ieee->peer_assoc_list[idx], 0, sizeof(struct sta_info));
+ ieee->peer_assoc_list[idx]->LastActiveTime = jiffies;
+ memcpy(ieee->peer_assoc_list[idx]->macaddr,header->addr2,ETH_ALEN);
+ ieee->peer_assoc_list[idx]->ratr_index = 8;
+ InitStaInfo(ieee,idx);
+ atomic_inc(&ieee->AsocEntryNum);
+ ieee->peer_assoc_list[idx]->aid = AsocEntry_AssignAvailableAID(ieee, ieee->peer_assoc_list[idx]->macaddr);
+ ieee->check_ht_cap(ieee->dev,ieee->peer_assoc_list[idx],network);
+ queue_delayed_work_rsl(ieee->wq, &ieee->update_assoc_sta_info_wq, 0);
+ ieee->Adhoc_InitRateAdaptive(ieee->dev,ieee->peer_assoc_list[idx]);
+ }
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)){
+ WapiCreateAppEventAndSend(ieee,NULL,0,header->addr2,false, false, false, 0, false);
+ }
+#endif
+ }
+ else
+ {
+#if 0
+ printk("%s(): SSID matched but BSSID mismatched.\n",__FUNCTION__);
+
+ ieee->TargetTsf = beacon->time_stamp[1];
+ ieee->TargetTsf <<= 32;
+ ieee->TargetTsf |= beacon->time_stamp[0];
+
+ ieee->CurrTsf = stats->TimeStampLow;
+
+ queue_delayed_work_rsl(ieee->wq, &ieee->check_tsf_wq, 0);
+#endif
+ }
+ }
+ }
+ }
+ if(ieee->iw_mode == IW_MODE_ADHOC){
+ if((network->ssid_len == ieee->current_network.ssid_len)
+ && (!memcmp(network->ssid,ieee->current_network.ssid,ieee->current_network.ssid_len))
+ && (network->capability & WLAN_CAPABILITY_IBSS)
+ && (ieee->state == RTLLIB_LINKED_SCANNING))
+ {
+ if(memcmp(ieee->current_network.bssid,network->bssid,6))
+ {
+ printk("%s(): SSID matched but BSSID mismatched.\n",__FUNCTION__);
+
+ ieee->TargetTsf = beacon->time_stamp[1];
+ ieee->TargetTsf <<= 32;
+ ieee->TargetTsf |= beacon->time_stamp[0];
+
+ ieee->CurrTsf = stats->TimeStampLow;
+
+ queue_delayed_work_rsl(ieee->wq, &ieee->check_tsf_wq, 0);
+ }
+ }
+ }
+#endif
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+no_alloc:
+ if(ieee->iw_mode == IW_MODE_INFRA)
+#endif
+ {
+ if(is_same_network(&ieee->current_network, network, (network->ssid_len?1:0))) {
+ update_network(&ieee->current_network, network);
+ if((ieee->current_network.mode == IEEE_N_24G || ieee->current_network.mode == IEEE_G)
+ && ieee->current_network.berp_info_valid){
+ if(ieee->current_network.erp_value& ERP_UseProtection)
+ ieee->current_network.buseprotection = true;
+ else
+ ieee->current_network.buseprotection = false;
+ }
+ if(is_beacon(beacon->header.frame_ctl))
+ {
+ if(ieee->state >= RTLLIB_LINKED)
+ ieee->LinkDetectInfo.NumRecvBcnInPeriod++;
+ }
+#if 0
+ else
+ network.flags = (~NETWORK_EMPTY_ESSID & network.flags)|(NETWORK_EMPTY_ESSID & ieee->current_network.flags);
+#endif
+ }
+ }
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ else if(ieee->iw_mode == IW_MODE_ADHOC)
+ {
+ ieee->current_network.last_scanned = jiffies;
+ }
+#endif
+ list_for_each_entry(target, &ieee->network_list, list) {
+ if (is_same_network(target, network,(target->ssid_len?1:0)))
+ break;
+ if ((oldest == NULL) ||
+ (target->last_scanned < oldest->last_scanned))
+ oldest = target;
+ }
+
+ /* If we didn't find a match, then get a new network slot to initialize
+ * with this beacon's information */
+ if (&target->list == &ieee->network_list) {
+ if (list_empty(&ieee->network_free_list)) {
+ /* If there are no more slots, expire the oldest */
+ list_del(&oldest->list);
+ target = oldest;
+ RTLLIB_DEBUG_SCAN("Expired '%s' (" MAC_FMT ") from "
+ "network list.\n",
+ escape_essid(target->ssid,
+ target->ssid_len),
+ MAC_ARG(target->bssid));
+ } else {
+ /* Otherwise just pull from the free list */
+ target = list_entry(ieee->network_free_list.next,
+ struct rtllib_network, list);
+ list_del(ieee->network_free_list.next);
+ }
+
+
+#ifdef CONFIG_RTLLIB_DEBUG
+ RTLLIB_DEBUG_SCAN("Adding '%s' (" MAC_FMT ") via %s.\n",
+ escape_essid(network->ssid,
+ network->ssid_len),
+ MAC_ARG(network->bssid),
+ WLAN_FC_GET_STYPE(beacon->header.frame_ctl) ==
+ RTLLIB_STYPE_PROBE_RESP ?
+ "PROBE RESPONSE" : "BEACON");
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ network->ext_entry = target->ext_entry;
+#endif
+ memcpy(target, network, sizeof(*target));
+ list_add_tail(&target->list, &ieee->network_list);
+ if(ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE)
+ rtllib_softmac_new_net(ieee, network);
+ } else {
+ RTLLIB_DEBUG_SCAN("Updating '%s' (" MAC_FMT ") via %s.\n",
+ escape_essid(target->ssid,
+ target->ssid_len),
+ MAC_ARG(target->bssid),
+ WLAN_FC_GET_STYPE(beacon->header.frame_ctl) ==
+ RTLLIB_STYPE_PROBE_RESP ?
+ "PROBE RESPONSE" : "BEACON");
+
+ /* we have an entry and we are going to update it. But this entry may
+ * be already expired. In this case we do the same as we found a new
+ * net and call the new_net handler
+ */
+ renew = !time_after(target->last_scanned + ieee->scan_age, jiffies);
+#if 0
+ if(is_beacon(beacon->header.frame_ctl) == 0)
+ network.flags = (~NETWORK_EMPTY_ESSID & network.flags)|(NETWORK_EMPTY_ESSID & target->flags);
+ if(((network.flags & NETWORK_EMPTY_ESSID) == NETWORK_EMPTY_ESSID) \
+ && (((network.ssid_len > 0) && (strncmp(target->ssid, network.ssid, network.ssid_len)))\
+ ||((ieee->current_network.ssid_len == network.ssid_len)&&(strncmp(ieee->current_network.ssid, network.ssid, network.ssid_len) == 0)&&(ieee->state == RTLLIB_NOLINK))))
+ renew = 1;
+#else
+ if((!target->ssid_len) &&
+ (((network->ssid_len > 0) && (target->hidden_ssid_len == 0))
+ || ((ieee->current_network.ssid_len == network->ssid_len) &&
+ (strncmp(ieee->current_network.ssid, network->ssid, network->ssid_len) == 0) &&
+ (ieee->state == RTLLIB_NOLINK)))
+ ) {
+ renew = 1;
+ }
+#endif
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ if(ieee->iw_mode == IW_MODE_ADHOC)
+ target->last_scanned = jiffies;
+ else
+ update_network(target, network);
+#else
+ update_network(target, network);
+#endif
+ if(renew && (ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE))
+ rtllib_softmac_new_net(ieee, network);
+ }
+
+ spin_unlock_irqrestore(&ieee->lock, flags);
+ if (is_beacon(beacon->header.frame_ctl)&&is_same_network(&ieee->current_network, network, (network->ssid_len?1:0))&&\
+ (ieee->state == RTLLIB_LINKED)) {
+ if(ieee->handle_beacon != NULL) {
+ ieee->handle_beacon(ieee->dev,beacon,&ieee->current_network);
+ }
+ }
+free_network:
+ kfree(network);
+ return;
+}
+
+void rtllib_rx_mgt(struct rtllib_device *ieee,
+ struct sk_buff *skb,
+ struct rtllib_rx_stats *stats)
+{
+ struct rtllib_hdr_4addr *header = (struct rtllib_hdr_4addr *)skb->data ;
+#if 0
+ if(ieee->sta_sleep || (ieee->ps != RTLLIB_PS_DISABLED &&
+ ieee->iw_mode == IW_MODE_INFRA &&
+ ieee->state == RTLLIB_LINKED))
+ {
+ tasklet_schedule(&ieee->ps_task);
+ }
+#endif
+ if(WLAN_FC_GET_STYPE(header->frame_ctl) != RTLLIB_STYPE_PROBE_RESP &&
+ WLAN_FC_GET_STYPE(header->frame_ctl) != RTLLIB_STYPE_BEACON)
+ ieee->last_rx_ps_time = jiffies;
+
+ switch (WLAN_FC_GET_STYPE(header->frame_ctl)) {
+
+ case RTLLIB_STYPE_BEACON:
+ RTLLIB_DEBUG_MGMT("received BEACON (%d)\n",
+ WLAN_FC_GET_STYPE(header->frame_ctl));
+ RTLLIB_DEBUG_SCAN("Beacon\n");
+ rtllib_process_probe_response(
+ ieee, (struct rtllib_probe_response *)header, stats);
+
+#ifdef ENABLE_LPS
+ if(ieee->sta_sleep || (ieee->ps != RTLLIB_PS_DISABLED &&
+ ieee->iw_mode == IW_MODE_INFRA &&
+ ieee->state == RTLLIB_LINKED))
+ {
+ tasklet_schedule(&ieee->ps_task);
+ }
+#endif
+
+ break;
+
+ case RTLLIB_STYPE_PROBE_RESP:
+ RTLLIB_DEBUG_MGMT("received PROBE RESPONSE (%d)\n",
+ WLAN_FC_GET_STYPE(header->frame_ctl));
+ RTLLIB_DEBUG_SCAN("Probe response\n");
+ rtllib_process_probe_response(
+ ieee, (struct rtllib_probe_response *)header, stats);
+ break;
+ case RTLLIB_STYPE_PROBE_REQ:
+ RTLLIB_DEBUG_MGMT("received PROBE RESQUEST (%d)\n",
+ WLAN_FC_GET_STYPE(header->frame_ctl));
+ RTLLIB_DEBUG_SCAN("Probe request\n");
+ if ((ieee->softmac_features & IEEE_SOFTMAC_PROBERS) &&
+ ((ieee->iw_mode == IW_MODE_ADHOC ||
+ ieee->iw_mode == IW_MODE_MASTER) &&
+ ieee->state == RTLLIB_LINKED)){
+ rtllib_rx_probe_rq(ieee, skb);
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if((ieee->iw_mode == IW_MODE_MESH) && ieee->ext_patch_rtllib_rx_mgt_on_probe_req )
+ ieee->ext_patch_rtllib_rx_mgt_on_probe_req( ieee, (struct rtllib_probe_request *)header, stats);
+#endif
+ break;
+ }
+
+#if 0
+#ifdef CONFIG_CFG_80211
+ if((rtllib_act_scanning(ieee,false) == true) && ((WLAN_FC_GET_STYPE(header->frame_ctl) ==RTLLIB_STYPE_PROBE_RESP) ||
+ (WLAN_FC_GET_STYPE(header->frame_ctl) ==RTLLIB_STYPE_BEACON)))
+ return ieee80211_scan_rx(ieee, skb, stats);
+#endif
+#endif
+}
+
+#ifndef BUILT_IN_RTLLIB
+EXPORT_SYMBOL_RSL(rtllib_rx_mgt);
+EXPORT_SYMBOL_RSL(rtllib_rx);
+EXPORT_SYMBOL_RSL(IsLegalChannel);
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+EXPORT_SYMBOL_RSL(IbssAgeFunction);
+EXPORT_SYMBOL_RSL(GetStaInfo);
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+EXPORT_SYMBOL_RSL(rtllib_network_init);
+EXPORT_SYMBOL_RSL(rtllib_parse_info_param);
+#endif
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/rtllib_softmac.c b/ubuntu/rtl8192se/rtllib/rtllib_softmac.c
new file mode 100755
index 00000000000..a95a5d5691d
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtllib_softmac.c
@@ -0,0 +1,5255 @@
+/* IEEE 802.11 SoftMAC layer
+ * Copyright (c) 2005 Andrea Merello <andreamrl@tiscali.it>
+ *
+ * Mostly extracted from the rtl8180-sa2400 driver for the
+ * in-kernel generic ieee802.11 stack.
+ *
+ * Few lines might be stolen from other part of the rtllib
+ * stack. Copyright who own it's copyright
+ *
+ * WPA code stolen from the ipw2200 driver.
+ * Copyright who own it's copyright.
+ *
+ * released under the GPL
+ */
+
+
+#include "rtllib.h"
+
+#include <linux/random.h>
+#include <linux/delay.h>
+#include <linux/version.h>
+#include <asm/uaccess.h>
+#ifdef ENABLE_DOT11D
+#include "dot11d.h"
+#endif
+
+#ifdef RTK_DMP_PLATFORM
+#include <linux/usb_setting.h>
+#endif
+extern void _setup_timer( struct timer_list*, void*, unsigned long );
+u8 rsn_authen_cipher_suite[16][4] = {
+ {0x00,0x0F,0xAC,0x00},
+ {0x00,0x0F,0xAC,0x01},
+ {0x00,0x0F,0xAC,0x02},
+ {0x00,0x0F,0xAC,0x03},
+ {0x00,0x0F,0xAC,0x04},
+ {0x00,0x0F,0xAC,0x05},
+};
+
+short rtllib_is_54g(struct rtllib_network *net)
+{
+ return ((net->rates_ex_len > 0) || (net->rates_len > 4));
+}
+
+short rtllib_is_shortslot(struct rtllib_network net)
+{
+ return (net.capability & WLAN_CAPABILITY_SHORT_SLOT_TIME);
+}
+
+/* returns the total length needed for pleacing the RATE MFIE
+ * tag and the EXTENDED RATE MFIE tag if needed.
+ * It encludes two bytes per tag for the tag itself and its len
+ */
+unsigned int rtllib_MFIE_rate_len(struct rtllib_device *ieee)
+{
+ unsigned int rate_len = 0;
+
+ if (ieee->modulation & RTLLIB_CCK_MODULATION)
+ rate_len = RTLLIB_CCK_RATE_LEN + 2;
+
+ if (ieee->modulation & RTLLIB_OFDM_MODULATION)
+
+ rate_len += RTLLIB_OFDM_RATE_LEN + 2;
+
+ return rate_len;
+}
+
+/* pleace the MFIE rate, tag to the memory (double) poined.
+ * Then it updates the pointer so that
+ * it points after the new MFIE tag added.
+ */
+void rtllib_MFIE_Brate(struct rtllib_device *ieee, u8 **tag_p)
+{
+ u8 *tag = *tag_p;
+
+ if (ieee->modulation & RTLLIB_CCK_MODULATION){
+ *tag++ = MFIE_TYPE_RATES;
+ *tag++ = 4;
+ *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_1MB;
+ *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_2MB;
+ *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_5MB;
+ *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_11MB;
+ }
+
+ /* We may add an option for custom rates that specific HW might support */
+ *tag_p = tag;
+}
+
+void rtllib_MFIE_Grate(struct rtllib_device *ieee, u8 **tag_p)
+{
+ u8 *tag = *tag_p;
+
+ if (ieee->modulation & RTLLIB_OFDM_MODULATION){
+
+ *tag++ = MFIE_TYPE_RATES_EX;
+ *tag++ = 8;
+ *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_6MB;
+ *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_9MB;
+ *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_12MB;
+ *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_18MB;
+ *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_24MB;
+ *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_36MB;
+ *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_48MB;
+ *tag++ = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_54MB;
+
+ }
+
+ /* We may add an option for custom rates that specific HW might support */
+ *tag_p = tag;
+}
+
+void rtllib_WMM_Info(struct rtllib_device *ieee, u8 **tag_p) {
+ u8 *tag = *tag_p;
+
+ *tag++ = MFIE_TYPE_GENERIC;
+ *tag++ = 7;
+ *tag++ = 0x00;
+ *tag++ = 0x50;
+ *tag++ = 0xf2;
+ *tag++ = 0x02;
+ *tag++ = 0x00;
+ *tag++ = 0x01;
+#ifdef SUPPORT_USPD
+ if(ieee->current_network.wmm_info & 0x80) {
+ *tag++ = 0x0f|MAX_SP_Len;
+ } else {
+ *tag++ = MAX_SP_Len;
+ }
+#else
+ *tag++ = MAX_SP_Len;
+#endif
+ *tag_p = tag;
+}
+
+#ifdef THOMAS_TURBO
+void rtllib_TURBO_Info(struct rtllib_device *ieee, u8 **tag_p) {
+ u8 *tag = *tag_p;
+
+ *tag++ = MFIE_TYPE_GENERIC;
+ *tag++ = 7;
+ *tag++ = 0x00;
+ *tag++ = 0xe0;
+ *tag++ = 0x4c;
+ *tag++ = 0x01;
+ *tag++ = 0x02;
+ *tag++ = 0x11;
+ *tag++ = 0x00;
+
+ *tag_p = tag;
+ printk(KERN_ALERT "This is enable turbo mode IE process\n");
+}
+#endif
+
+void enqueue_mgmt(struct rtllib_device *ieee, struct sk_buff *skb)
+{
+ int nh;
+ nh = (ieee->mgmt_queue_head +1) % MGMT_QUEUE_NUM;
+
+/*
+ * if the queue is full but we have newer frames then
+ * just overwrites the oldest.
+ *
+ * if (nh == ieee->mgmt_queue_tail)
+ * return -1;
+ */
+ ieee->mgmt_queue_head = nh;
+ ieee->mgmt_queue_ring[nh] = skb;
+
+}
+
+struct sk_buff *dequeue_mgmt(struct rtllib_device *ieee)
+{
+ struct sk_buff *ret;
+
+ if(ieee->mgmt_queue_tail == ieee->mgmt_queue_head)
+ return NULL;
+
+ ret = ieee->mgmt_queue_ring[ieee->mgmt_queue_tail];
+
+ ieee->mgmt_queue_tail =
+ (ieee->mgmt_queue_tail+1) % MGMT_QUEUE_NUM;
+
+ return ret;
+}
+
+void init_mgmt_queue(struct rtllib_device *ieee)
+{
+ ieee->mgmt_queue_tail = ieee->mgmt_queue_head = 0;
+}
+
+
+u8
+MgntQuery_TxRateExcludeCCKRates(struct rtllib_device *ieee)
+{
+ u16 i;
+ u8 QueryRate = 0;
+ u8 BasicRate;
+
+
+ for( i = 0; i < ieee->current_network.rates_len; i++)
+ {
+ BasicRate = ieee->current_network.rates[i]&0x7F;
+ if(!rtllib_is_cck_rate(BasicRate))
+ {
+ if(QueryRate == 0)
+ {
+ QueryRate = BasicRate;
+ }
+ else
+ {
+ if(BasicRate < QueryRate)
+ {
+ QueryRate = BasicRate;
+ }
+ }
+ }
+ }
+
+ if(QueryRate == 0)
+ {
+ QueryRate = 12;
+ printk("No BasicRate found!!\n");
+ }
+ return QueryRate;
+}
+
+u8 MgntQuery_MgntFrameTxRate(struct rtllib_device *ieee)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ u8 rate;
+
+#if defined RTL8190P || defined RTL8192E || defined RTL8192U
+ if(pHTInfo->IOTAction & HT_IOT_ACT_MGNT_USE_CCK_6M)
+ rate = 0x0c;
+ else
+ rate = ieee->basic_rate & 0x7f;
+#elif defined RTL8192SE || defined RTL8192SU || defined RTL8192CE
+ if(pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom)
+ {
+ rate = MgntQuery_TxRateExcludeCCKRates(ieee);
+ }
+ else
+ rate = ieee->basic_rate & 0x7f;
+#endif
+
+ if(rate == 0){
+ if(ieee->mode == IEEE_A||
+ ieee->mode== IEEE_N_5G||
+ (ieee->mode== IEEE_N_24G&&!pHTInfo->bCurSuppCCK))
+ rate = 0x0c;
+ else
+ rate = 0x02;
+ }
+
+ /*
+ if( pMgntInfo->bScanInProgress || (pMgntInfo->bDualModeScanStep!=0) )
+ {
+ if(pMgntInfo->dot11CurrentWirelessMode==WIRELESS_MODE_A)
+ rate = 0x0c;
+ else
+ rate = 0x02;
+ }
+ */
+ return rate;
+}
+
+
+void rtllib_sta_wakeup(struct rtllib_device *ieee, short nl);
+
+inline void softmac_mgmt_xmit(struct sk_buff *skb, struct rtllib_device *ieee)
+{
+ unsigned long flags;
+ short single = ieee->softmac_features & IEEE_SOFTMAC_SINGLE_QUEUE;
+ struct rtllib_hdr_3addr *header=
+ (struct rtllib_hdr_3addr *) skb->data;
+
+ cb_desc *tcb_desc = (cb_desc *)(skb->cb + 8);
+ spin_lock_irqsave(&ieee->lock, flags);
+
+ /* called with 2nd param 0, no mgmt lock required */
+ rtllib_sta_wakeup(ieee,0);
+
+ tcb_desc->queue_index = MGNT_QUEUE;
+#ifdef RTL8192CE
+ tcb_desc->queue_index = MGNT_QUEUE;
+#endif
+
+ if(ieee->disable_mgnt_queue)
+ tcb_desc->queue_index = HIGH_QUEUE;
+
+ tcb_desc->data_rate = MgntQuery_MgntFrameTxRate(ieee);
+ tcb_desc->RATRIndex = 7;
+ tcb_desc->bTxDisableRateFallBack = 1;
+ tcb_desc->bTxUseDriverAssingedRate = 1;
+#ifdef _RTL8192_EXT_PATCH_
+ tcb_desc->macId = 0;
+#endif
+ if(single){
+ if(ieee->queue_stop){
+ enqueue_mgmt(ieee,skb);
+ }else{
+ header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0]<<4);
+
+ if (ieee->seq_ctrl[0] == 0xFFF)
+ ieee->seq_ctrl[0] = 0;
+ else
+ ieee->seq_ctrl[0]++;
+
+ /* avoid watchdog triggers */
+ ieee->softmac_data_hard_start_xmit(skb,ieee->dev,ieee->basic_rate);
+ }
+
+ spin_unlock_irqrestore(&ieee->lock, flags);
+ }else{
+ spin_unlock_irqrestore(&ieee->lock, flags);
+ spin_lock_irqsave(&ieee->mgmt_tx_lock, flags);
+
+ header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
+
+ if (ieee->seq_ctrl[0] == 0xFFF)
+ ieee->seq_ctrl[0] = 0;
+ else
+ ieee->seq_ctrl[0]++;
+
+ /* check wether the managed packet queued greater than 5 */
+ if(!ieee->check_nic_enough_desc(ieee->dev,tcb_desc->queue_index)||\
+ (skb_queue_len(&ieee->skb_waitQ[tcb_desc->queue_index]) != 0)||\
+ (ieee->queue_stop) ) {
+ /* insert the skb packet to the management queue */
+ /* as for the completion function, it does not need
+ * to check it any more.
+ * */
+ printk("%s():insert to waitqueue, queue_index:%d!\n",__FUNCTION__,tcb_desc->queue_index);
+ skb_queue_tail(&ieee->skb_waitQ[tcb_desc->queue_index], skb);
+ } else {
+ ieee->softmac_hard_start_xmit(skb,ieee->dev);
+ }
+ spin_unlock_irqrestore(&ieee->mgmt_tx_lock, flags);
+ }
+}
+
+inline void softmac_ps_mgmt_xmit(struct sk_buff *skb,
+ struct rtllib_device *ieee)
+{
+ short single = ieee->softmac_features & IEEE_SOFTMAC_SINGLE_QUEUE;
+ struct rtllib_hdr_3addr *header =
+ (struct rtllib_hdr_3addr *) skb->data;
+ u16 fc,type,stype;
+ cb_desc *tcb_desc = (cb_desc *)(skb->cb + 8);
+
+ fc = header->frame_ctl;
+ type = WLAN_FC_GET_TYPE(fc);
+ stype = WLAN_FC_GET_STYPE(fc);
+
+
+ if(stype != RTLLIB_STYPE_PSPOLL)
+ tcb_desc->queue_index = MGNT_QUEUE;
+ else
+ tcb_desc->queue_index = HIGH_QUEUE;
+
+ if(ieee->disable_mgnt_queue)
+ tcb_desc->queue_index = HIGH_QUEUE;
+
+#ifdef RTL8192CE
+ tcb_desc->queue_index = MGNT_QUEUE;
+#endif
+
+ tcb_desc->data_rate = MgntQuery_MgntFrameTxRate(ieee);
+ tcb_desc->RATRIndex = 7;
+ tcb_desc->bTxDisableRateFallBack = 1;
+ tcb_desc->bTxUseDriverAssingedRate = 1;
+ if (single) {
+ if (type != RTLLIB_FTYPE_CTL) {
+ header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
+
+ if (ieee->seq_ctrl[0] == 0xFFF)
+ ieee->seq_ctrl[0] = 0;
+ else
+ ieee->seq_ctrl[0]++;
+
+ }
+ /* avoid watchdog triggers */
+ ieee->softmac_data_hard_start_xmit(skb,ieee->dev,ieee->basic_rate);
+
+ } else {
+ if (type != RTLLIB_FTYPE_CTL) {
+ header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
+
+ if (ieee->seq_ctrl[0] == 0xFFF)
+ ieee->seq_ctrl[0] = 0;
+ else
+ ieee->seq_ctrl[0]++;
+ }
+ ieee->softmac_hard_start_xmit(skb,ieee->dev);
+
+ }
+}
+
+inline struct sk_buff *rtllib_probe_req(struct rtllib_device *ieee)
+{
+ unsigned int len,rate_len;
+ u8 *tag;
+ struct sk_buff *skb;
+ struct rtllib_probe_request *req;
+
+#ifdef _RTL8192_EXT_PATCH_
+ short extMore = 0;
+ if(ieee->ext_patch_rtllib_probe_req_1)
+ extMore = ieee->ext_patch_rtllib_probe_req_1(ieee);
+#endif
+
+ len = ieee->current_network.ssid_len;
+
+ rate_len = rtllib_MFIE_rate_len(ieee);
+
+#ifdef _RTL8192_EXT_PATCH_
+ if(!extMore)
+ skb = dev_alloc_skb(sizeof(struct rtllib_probe_request) +
+ 2 + len + rate_len + ieee->tx_headroom);
+ else
+ skb = dev_alloc_skb(sizeof(struct rtllib_probe_request) +
+ 2 + len + rate_len+128+ieee->tx_headroom);
+#else
+#ifdef USB_USE_ALIGNMENT
+ u32 Tmpaddr;
+ int alignment;
+ skb = dev_alloc_skb(sizeof(struct rtllib_probe_request) +
+ 2 + len + rate_len + ieee->tx_headroom + USB_512B_ALIGNMENT_SIZE);
+#else
+ skb = dev_alloc_skb(sizeof(struct rtllib_probe_request) +
+ 2 + len + rate_len + ieee->tx_headroom);
+#endif
+#endif
+
+ if (!skb)
+ return NULL;
+
+#ifdef USB_USE_ALIGNMENT
+ Tmpaddr = (u32)skb->data;
+ alignment = Tmpaddr & 0x1ff;
+ skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment));
+#endif
+
+ skb_reserve(skb, ieee->tx_headroom);
+
+ req = (struct rtllib_probe_request *) skb_put(skb,sizeof(struct rtllib_probe_request));
+ req->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_PROBE_REQ);
+ req->header.duration_id = 0;
+
+ memset(req->header.addr1, 0xff, ETH_ALEN);
+ memcpy(req->header.addr2, ieee->dev->dev_addr, ETH_ALEN);
+ memset(req->header.addr3, 0xff, ETH_ALEN);
+
+ tag = (u8 *) skb_put(skb,len+2+rate_len);
+
+ *tag++ = MFIE_TYPE_SSID;
+ *tag++ = len;
+ memcpy(tag, ieee->current_network.ssid, len);
+ tag += len;
+
+ rtllib_MFIE_Brate(ieee,&tag);
+ rtllib_MFIE_Grate(ieee,&tag);
+
+#ifdef _RTL8192_EXT_PATCH_
+ if(extMore)
+ ieee->ext_patch_rtllib_probe_req_2(ieee, skb, tag);
+#endif
+
+ return skb;
+}
+
+struct sk_buff *rtllib_get_beacon_(struct rtllib_device *ieee);
+
+#ifdef _RTL8192_EXT_PATCH_
+void ext_rtllib_send_beacon_wq(void *data)
+{
+ struct rtllib_device *ieee = (struct rtllib_device *)container_of_work_rsl((struct work_struct *)data, struct rtllib_device, ext_send_beacon_wq);
+ struct sk_buff *skb;
+
+ skb = rtllib_get_beacon_(ieee);
+
+ if (skb){
+ softmac_mgmt_xmit(skb, ieee);
+ ieee->softmac_stats.tx_beacons++;
+ }
+
+
+
+}
+#endif
+void rtllib_send_beacon(struct rtllib_device *ieee)
+{
+ struct sk_buff *skb;
+ if(!ieee->ieee_up)
+ return;
+ skb = rtllib_get_beacon_(ieee);
+
+ if (skb){
+ softmac_mgmt_xmit(skb, ieee);
+ ieee->softmac_stats.tx_beacons++;
+ }
+
+ if(ieee->beacon_txing && ieee->ieee_up){
+ mod_timer(&ieee->beacon_timer,jiffies+(MSECS(ieee->current_network.beacon_interval-5)));
+ }
+}
+
+
+void rtllib_send_beacon_cb(unsigned long _ieee)
+{
+ struct rtllib_device *ieee =
+ (struct rtllib_device *) _ieee;
+ unsigned long flags;
+
+ spin_lock_irqsave(&ieee->beacon_lock, flags);
+ rtllib_send_beacon(ieee);
+ spin_unlock_irqrestore(&ieee->beacon_lock, flags);
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+
+inline struct sk_buff *rtllib_probe_req_with_SSID(struct rtllib_device *ieee, char *ssid, int len_ssid)
+{
+ unsigned int len,rate_len;
+ u8 *tag;
+ struct sk_buff *skb;
+ struct rtllib_probe_request *req;
+
+#ifdef _RTL8192_EXT_PATCH_
+ short extMore = 0;
+ if(ieee->ext_patch_rtllib_probe_req_1)
+ extMore = ieee->ext_patch_rtllib_probe_req_1(ieee);
+#endif
+
+ len = len_ssid;
+
+ rate_len = rtllib_MFIE_rate_len(ieee);
+
+#ifdef _RTL8192_EXT_PATCH_
+ if(!extMore)
+#endif
+ skb = dev_alloc_skb(sizeof(struct rtllib_probe_request) +
+ 2 + len + rate_len + ieee->tx_headroom);
+#ifdef _RTL8192_EXT_PATCH_
+ else
+ skb = dev_alloc_skb(sizeof(struct rtllib_probe_request) +
+ 2 + len + rate_len+128+ieee->tx_headroom);
+#endif
+
+ if (!skb)
+ return NULL;
+
+ req = (struct rtllib_probe_request *) skb_put(skb,sizeof(struct rtllib_probe_request));
+ req->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_PROBE_REQ);
+ req->header.duration_id = 0;
+
+ memset(req->header.addr1, 0xff, ETH_ALEN);
+ memcpy(req->header.addr2, ieee->dev->dev_addr, ETH_ALEN);
+ memset(req->header.addr3, 0xff, ETH_ALEN);
+
+ tag = (u8 *) skb_put(skb,len+2+rate_len);
+
+ *tag++ = MFIE_TYPE_SSID;
+ *tag++ = len;
+ if(len)
+ {
+ memcpy(tag, ssid, len);
+ tag += len;
+ }
+
+ rtllib_MFIE_Brate(ieee,&tag);
+ rtllib_MFIE_Grate(ieee,&tag);
+
+#ifdef _RTL8192_EXT_PATCH_
+ if(extMore)
+ ieee->ext_patch_rtllib_probe_req_2(ieee, skb, tag);
+#endif
+ return skb;
+}
+
+#endif
+
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+void rtllib_ibss_wait_timeout(unsigned long _ieee)
+{
+ struct rtllib_device *ieee =
+ (struct rtllib_device *) _ieee;
+ printk("======>%s():oh oh ibss wait beacon time out, search a new ibss now\n",__FUNCTION__);
+ rtllib_stop_send_beacons(ieee);
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ cancel_delayed_work(&ieee->start_ibss_wq);
+ cancel_delayed_work(&ieee->link_change_wq);
+#endif
+ rtllib_stop_scan(ieee);
+ queue_delayed_work_rsl(ieee->wq, &ieee->start_ibss_wq, MSECS(150));
+}
+#endif
+
+
+/*
+ * Description:
+ * Enable network monitor mode, all rx packets will be received.
+ */
+void rtllib_EnableNetMonitorMode(struct net_device* dev,
+ bool bInitState)
+{
+ struct rtllib_device* ieee = netdev_priv_rsl(dev);
+
+ printk("========>Enter Monitor Mode\n");
+
+ ieee->AllowAllDestAddrHandler(dev, true, !bInitState);
+}
+
+
+/*
+ * Description:
+ * Disable network network monitor mode, only packets destinated to
+ * us will be received.
+ */
+void rtllib_DisableNetMonitorMode(struct net_device* dev,
+ bool bInitState)
+{
+ struct rtllib_device* ieee = netdev_priv_rsl(dev);
+
+ printk("========>Exit Monitor Mode\n");
+
+ ieee->AllowAllDestAddrHandler(dev, false, !bInitState);
+}
+
+
+/*
+ * Description:
+ * This enables the specialized promiscuous mode required by Intel.
+ * In this mode, Intel intends to hear traffics from/to other STAs in the same BSS.
+ * Therefore we don't have to disable checking BSSID and we only need to allow all dest.
+ * BUT: if we enable checking BSSID then we can't recv packets from other STA.
+ */
+void rtllib_EnableIntelPromiscuousMode(struct net_device* dev,
+ bool bInitState)
+{
+ bool bFilterOutNonAssociatedBSSID = false;
+
+ struct rtllib_device* ieee = netdev_priv_rsl(dev);
+
+ printk("========>Enter Intel Promiscuous Mode\n");
+
+ ieee->AllowAllDestAddrHandler(dev, true, !bInitState);
+ ieee->SetHwRegHandler(dev, HW_VAR_CECHK_BSSID, (u8*)&bFilterOutNonAssociatedBSSID);
+
+ ieee->bNetPromiscuousMode = true;
+}
+
+
+/*
+ * Description:
+ * This disables the specialized promiscuous mode required by Intel.
+ * See MgntEnableIntelPromiscuousMode for detail.
+ */
+void rtllib_DisableIntelPromiscuousMode(struct net_device* dev,
+ bool bInitState)
+{
+ bool bFilterOutNonAssociatedBSSID = true;
+
+ struct rtllib_device* ieee = netdev_priv_rsl(dev);
+
+ printk("========>Exit Intel Promiscuous Mode\n");
+
+ ieee->AllowAllDestAddrHandler(dev, false, !bInitState);
+ ieee->SetHwRegHandler(dev, HW_VAR_CECHK_BSSID, (u8*)&bFilterOutNonAssociatedBSSID);
+
+ ieee->bNetPromiscuousMode = false;
+}
+
+
+#ifdef _RTL8192_EXT_PATCH_
+void rtllib_send_probe(struct rtllib_device *ieee, u8 is_mesh)
+#else
+void rtllib_send_probe(struct rtllib_device *ieee)
+#endif
+{
+ struct sk_buff *skb;
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ skb = rtllib_probe_req_with_SSID(ieee, NULL, 0);
+ else
+#endif
+ skb = rtllib_probe_req(ieee);
+ if (skb){
+ softmac_mgmt_xmit(skb, ieee);
+ ieee->softmac_stats.tx_probe_rq++;
+ }
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+void rtllib_send_probe_requests(struct rtllib_device *ieee, u8 is_mesh)
+{
+ if (ieee->active_scan && (ieee->softmac_features & IEEE_SOFTMAC_PROBERQ)){
+ rtllib_send_probe(ieee,is_mesh);
+ rtllib_send_probe(ieee,is_mesh);
+ }
+}
+#else
+void rtllib_send_probe_requests(struct rtllib_device *ieee)
+{
+ if (ieee->active_scan && (ieee->softmac_features & IEEE_SOFTMAC_PROBERQ)){
+ rtllib_send_probe(ieee);
+ rtllib_send_probe(ieee);
+ }
+}
+#endif
+
+void rtllib_softmac_hint11d_wq(void *data)
+{
+#ifdef CONFIG_CRDA
+ struct rtllib_device *ieee = container_of_dwork_rsl(data, struct rtllib_device, softmac_hint11d_wq);
+ PRT_DOT11D_INFO pDot11dInfo = GET_DOT11D_INFO(ieee);
+ struct wireless_dev *wdev = &ieee->wdev;
+
+ regulatory_hint_11d(wdev->wiphy, pDot11dInfo->CountryIeBuf, pDot11dInfo->CountryIeLen);
+#endif
+}
+
+void rtllib_update_active_chan_map(struct rtllib_device *ieee)
+{
+#ifdef ENABLE_DOT11D
+ memcpy(ieee->active_channel_map, GET_DOT11D_INFO(ieee)->channel_map, MAX_CHANNEL_NUMBER+1);
+#else
+ memcpy(ieee->active_channel_map, ieee->channel_map, MAX_CHANNEL_NUMBER+1);
+#endif
+#if 0
+ {
+ int i;
+ for(i=1;i<=14;i++)
+ printk("%d ", ieee->active_channel_map[i]);
+ printk("\n");
+ }
+#endif
+}
+
+/* this performs syncro scan blocking the caller until all channels
+ * in the allowed channel map has been checked.
+ */
+void rtllib_softmac_scan_syncro(struct rtllib_device *ieee, u8 is_mesh)
+{
+ short ch = 0;
+
+ rtllib_update_active_chan_map(ieee);
+
+ ieee->be_scan_inprogress = true;
+
+ down(&ieee->scan_sem);
+
+ while(1)
+ {
+
+ do {
+ ch++;
+ if (ch > MAX_CHANNEL_NUMBER)
+ goto out; /* scan completed */
+ } while(!ieee->active_channel_map[ch]);
+
+ /* this fuction can be called in two situations
+ * 1- We have switched to ad-hoc mode and we are
+ * performing a complete syncro scan before conclude
+ * there are no interesting cell and to create a
+ * new one. In this case the link state is
+ * RTLLIB_NOLINK until we found an interesting cell.
+ * If so the ieee8021_new_net, called by the RX path
+ * will set the state to RTLLIB_LINKED, so we stop
+ * scanning
+ * 2- We are linked and the root uses run iwlist scan.
+ * So we switch to RTLLIB_LINKED_SCANNING to remember
+ * that we are still logically linked (not interested in
+ * new network events, despite for updating the net list,
+ * but we are temporarly 'unlinked' as the driver shall
+ * not filter RX frames and the channel is changing.
+ * So the only situation in witch are interested is to check
+ * if the state become LINKED because of the #1 situation
+ */
+
+ if (ieee->state == RTLLIB_LINKED)
+ goto out;
+ if (ieee->sync_scan_hurryup){
+ printk("============>sync_scan_hurryup out\n");
+ goto out;
+ }
+
+ ieee->set_chan(ieee->dev, ch);
+ if(ieee->active_channel_map[ch] == 1)
+#ifdef _RTL8192_EXT_PATCH_
+ rtllib_send_probe_requests(ieee, is_mesh);
+#else
+ rtllib_send_probe_requests(ieee);
+#endif
+
+ /* this prevent excessive time wait when we
+ * need to wait for a syncro scan to end..
+ */
+ msleep_interruptible_rsl(RTLLIB_SOFTMAC_SCAN_TIME);
+ }
+out:
+ ieee->actscanning = false;
+ ieee->sync_scan_hurryup = 0;
+
+ if(ieee->state >= RTLLIB_LINKED){
+#ifdef ENABLE_DOT11D
+ if(IS_DOT11D_ENABLE(ieee))
+ DOT11D_ScanComplete(ieee);
+#endif
+ }
+ up(&ieee->scan_sem);
+
+ ieee->be_scan_inprogress = false;
+
+#ifndef FOR_MOBLIN
+ {
+ union iwreq_data wrqu;
+ memset(&wrqu, 0, sizeof(wrqu));
+ wireless_send_event(ieee->dev,SIOCGIWSCAN,&wrqu,NULL);
+ }
+#endif
+}
+
+void rtllib_softmac_scan_wq(void *data)
+{
+ struct rtllib_device *ieee = container_of_dwork_rsl(data, struct rtllib_device, softmac_scan_wq);
+
+#ifndef _RTL8192_EXT_PATCH_
+ u8 last_channel = ieee->current_network.channel;
+#endif
+ rtllib_update_active_chan_map(ieee);
+
+ if(!ieee->ieee_up)
+ return;
+ if(rtllib_act_scanning(ieee,true) == true)
+ return;
+
+ down(&ieee->scan_sem);
+
+ if(ieee->eRFPowerState == eRfOff)
+ {
+ printk("======>%s():rf state is eRfOff, return\n",__FUNCTION__);
+ goto out1;
+ }
+
+ do{
+ ieee->current_network.channel =
+ (ieee->current_network.channel + 1) % MAX_CHANNEL_NUMBER;
+ if (ieee->scan_watch_dog++ > MAX_CHANNEL_NUMBER)
+ {
+ if (!ieee->active_channel_map[ieee->current_network.channel])
+ ieee->current_network.channel = 6;
+ goto out; /* no good chans */
+ }
+ } while(!ieee->active_channel_map[ieee->current_network.channel]);
+
+ if (ieee->scanning_continue == 0 )
+ goto out;
+
+ ieee->set_chan(ieee->dev, ieee->current_network.channel);
+
+ if(ieee->active_channel_map[ieee->current_network.channel] == 1)
+#ifdef _RTL8192_EXT_PATCH_
+ rtllib_send_probe_requests(ieee, 0);
+#else
+ rtllib_send_probe_requests(ieee);
+#endif
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,40)
+ queue_delayed_work_rsl(ieee->wq, &ieee->softmac_scan_wq, MSECS(RTLLIB_SOFTMAC_SCAN_TIME));
+#else
+ if (ieee->scanning_continue == 1)
+ mod_timer(&ieee->scan_timer,(jiffies + MSECS(RTLLIB_SOFTMAC_SCAN_TIME)));
+#endif
+
+ up(&ieee->scan_sem);
+ return;
+
+out:
+#ifdef ENABLE_DOT11D
+ if(IS_DOT11D_ENABLE(ieee))
+ DOT11D_ScanComplete(ieee);
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ ieee->current_network.channel = ieee->backup_channel;
+ ieee->set_chan(ieee->dev, ieee->current_network.channel);
+#else
+ ieee->current_network.channel = last_channel;
+#endif
+
+out1:
+ ieee->actscanning = false;
+ ieee->scan_watch_dog = 0;
+ ieee->scanning_continue = 0;
+ up(&ieee->scan_sem);
+}
+
+
+
+void rtllib_beacons_start(struct rtllib_device *ieee)
+{
+ unsigned long flags;
+ spin_lock_irqsave(&ieee->beacon_lock,flags);
+
+ ieee->beacon_txing = 1;
+ rtllib_send_beacon(ieee);
+
+ spin_unlock_irqrestore(&ieee->beacon_lock,flags);
+}
+
+void rtllib_beacons_stop(struct rtllib_device *ieee)
+{
+ unsigned long flags;
+
+ spin_lock_irqsave(&ieee->beacon_lock,flags);
+
+ ieee->beacon_txing = 0;
+ del_timer_sync(&ieee->beacon_timer);
+
+ spin_unlock_irqrestore(&ieee->beacon_lock,flags);
+
+}
+
+
+void rtllib_stop_send_beacons(struct rtllib_device *ieee)
+{
+ if(ieee->stop_send_beacons)
+ ieee->stop_send_beacons(ieee->dev);
+ if (ieee->softmac_features & IEEE_SOFTMAC_BEACONS)
+ rtllib_beacons_stop(ieee);
+}
+
+
+void rtllib_start_send_beacons(struct rtllib_device *ieee)
+{
+ if(ieee->start_send_beacons)
+ ieee->start_send_beacons(ieee->dev);
+ if(ieee->softmac_features & IEEE_SOFTMAC_BEACONS)
+ rtllib_beacons_start(ieee);
+}
+
+
+void rtllib_softmac_stop_scan(struct rtllib_device *ieee)
+{
+
+
+ down(&ieee->scan_sem);
+ ieee->scan_watch_dog = 0;
+ if (ieee->scanning_continue == 1){
+ ieee->scanning_continue = 0;
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,40)
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,67)
+ cancel_delayed_work(&ieee->softmac_scan_wq);
+#endif
+#else
+ del_timer_sync(&ieee->scan_timer);
+#endif
+ }
+
+ up(&ieee->scan_sem);
+}
+
+void rtllib_stop_scan(struct rtllib_device *ieee)
+{
+ if (ieee->softmac_features & IEEE_SOFTMAC_SCAN){
+ rtllib_softmac_stop_scan(ieee);
+ }else{
+ if(ieee->rtllib_stop_hw_scan)
+ ieee->rtllib_stop_hw_scan(ieee->dev);
+ }
+}
+
+void rtllib_stop_scan_syncro(struct rtllib_device *ieee)
+{
+ if (ieee->softmac_features & IEEE_SOFTMAC_SCAN){
+ ieee->sync_scan_hurryup = 1;
+ }else{
+ if(ieee->rtllib_stop_hw_scan)
+ ieee->rtllib_stop_hw_scan(ieee->dev);
+ }
+}
+
+bool rtllib_act_scanning(struct rtllib_device *ieee, bool sync_scan)
+{
+ if (ieee->softmac_features & IEEE_SOFTMAC_SCAN){
+ if(sync_scan){
+ return ieee->be_scan_inprogress;
+ }else{
+ return (ieee->actscanning ||ieee->be_scan_inprogress);
+ }
+ }else{
+ return test_bit(STATUS_SCANNING, &ieee->status);
+ }
+}
+
+/* called with ieee->lock held */
+void rtllib_start_scan(struct rtllib_device *ieee)
+{
+ printk("===>%s()\n",__FUNCTION__);
+#ifdef ENABLE_IPS
+ if(ieee->rtllib_ips_leave_wq != NULL)
+ ieee->rtllib_ips_leave_wq(ieee->dev);
+#endif
+
+
+#ifdef ENABLE_DOT11D
+ if(IS_DOT11D_ENABLE(ieee) )
+ {
+ if(IS_COUNTRY_IE_VALID(ieee))
+ {
+ RESET_CIE_WATCHDOG(ieee);
+ }
+ }
+#endif
+ if (ieee->softmac_features & IEEE_SOFTMAC_SCAN){
+ if (ieee->scanning_continue == 0){
+ ieee->actscanning = true;
+ ieee->scanning_continue = 1;
+#ifdef _RTL8192_EXT_PATCH_
+ ieee->backup_channel = ieee->current_network.channel;
+ printk("===>backup_channel is %d\n",ieee->backup_channel);
+#endif
+ queue_delayed_work_rsl(ieee->wq, &ieee->softmac_scan_wq, 0);
+ }
+ }else{
+ if(ieee->rtllib_start_hw_scan)
+ ieee->rtllib_start_hw_scan(ieee->dev);
+ }
+
+}
+
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,40)
+void rtllib_softmac_scan_cb(unsigned long _dev)
+{
+ unsigned long flags;
+ struct rtllib_device *ieee = (struct rtllib_device *)_dev;
+
+ spin_lock_irqsave(&ieee->lock, flags);
+ rtllib_start_scan(ieee);
+ spin_unlock_irqrestore(&ieee->lock, flags);
+}
+#endif
+
+/* called with wx_sem held */
+void rtllib_start_scan_syncro(struct rtllib_device *ieee, u8 is_mesh)
+{
+#ifdef ENABLE_DOT11D
+ if(IS_DOT11D_ENABLE(ieee) )
+ {
+ if(IS_COUNTRY_IE_VALID(ieee))
+ {
+ RESET_CIE_WATCHDOG(ieee);
+ }
+ }
+#endif
+ ieee->sync_scan_hurryup = 0;
+ if (ieee->softmac_features & IEEE_SOFTMAC_SCAN){
+ rtllib_softmac_scan_syncro(ieee, is_mesh);
+ }else{
+ if(ieee->rtllib_start_hw_scan)
+ ieee->rtllib_start_hw_scan(ieee->dev);
+ }
+
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+inline struct sk_buff *rtllib_authentication_req(struct rtllib_network *beacon,
+ struct rtllib_device *ieee, int challengelen,u8 * daddr)
+#else
+inline struct sk_buff *rtllib_authentication_req(struct rtllib_network *beacon,
+ struct rtllib_device *ieee, int challengelen)
+#endif
+{
+ struct sk_buff *skb;
+ struct rtllib_authentication *auth;
+ int len = 0;
+#ifdef _RTL8192_EXT_PATCH_
+ bool is_mesh = false;
+ is_mesh = ieee->ext_patch_rtllib_is_mesh(ieee,daddr);
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ if((ieee->mesh_sec_type == 1) && (ieee->mesh_security_setting == 3) && is_mesh){
+ skb = ieee->ext_patch_rtllib_send_ath_commit(ieee,daddr);
+ return skb;
+ }
+#endif
+ len = sizeof(struct rtllib_authentication) + challengelen + ieee->tx_headroom + 4;
+#ifdef USB_USE_ALIGNMENT
+ u32 Tmpaddr;
+ int alignment;
+ skb = dev_alloc_skb(len + USB_512B_ALIGNMENT_SIZE);
+#else
+ skb = dev_alloc_skb(len);
+#endif
+
+ if (!skb) return NULL;
+
+#ifdef USB_USE_ALIGNMENT
+ Tmpaddr = (u32)skb->data;
+ alignment = Tmpaddr & 0x1ff;
+ skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment));
+#endif
+
+ skb_reserve(skb, ieee->tx_headroom);
+
+ auth = (struct rtllib_authentication *)
+ skb_put(skb, sizeof(struct rtllib_authentication));
+
+ auth->header.frame_ctl = RTLLIB_STYPE_AUTH;
+ if (challengelen) auth->header.frame_ctl |= RTLLIB_FCTL_WEP;
+
+ auth->header.duration_id = 0x013a;
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ memcpy(auth->header.addr1,daddr,ETH_ALEN);
+ else
+#endif
+ memcpy(auth->header.addr1, beacon->bssid, ETH_ALEN);
+ memcpy(auth->header.addr2, ieee->dev->dev_addr, ETH_ALEN);
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ memcpy(auth->header.addr3, ieee->current_mesh_network.bssid, ETH_ALEN);
+ else
+ memcpy(auth->header.addr3, beacon->bssid, ETH_ALEN);
+#else
+ memcpy(auth->header.addr3, beacon->bssid, ETH_ALEN);
+#endif
+ if(ieee->auth_mode == 0)
+ auth->algorithm = WLAN_AUTH_OPEN;
+ else if(ieee->auth_mode == 1)
+ auth->algorithm = WLAN_AUTH_SHARED_KEY;
+ else if(ieee->auth_mode == 2)
+ auth->algorithm = WLAN_AUTH_OPEN;
+ auth->transaction = cpu_to_le16(ieee->associate_seq);
+ ieee->associate_seq++;
+
+ auth->status = cpu_to_le16(WLAN_STATUS_SUCCESS);
+
+ return skb;
+
+}
+
+void constructWMMIE(u8* wmmie, u8* wmm_len,u8 oui_subtype)
+{
+ u8 szQoSOUI[] ={221, 0, 0x00, 0x50, 0xf2, 0x02, 0, 1};
+
+ if (oui_subtype == OUI_SUBTYPE_QOS_CAPABI)
+ {
+ szQoSOUI[0] = 46;
+ szQoSOUI[1] = *wmm_len;
+ memcpy(wmmie,szQoSOUI,3);
+ *wmm_len = 3;
+ }
+ else
+ {
+ szQoSOUI[1] = *wmm_len + 6;
+ szQoSOUI[6] = oui_subtype;
+ memcpy(wmmie, szQoSOUI, 8);
+ *(wmmie+8) = 0;
+ *wmm_len = 9;
+ }
+}
+
+static struct sk_buff* rtllib_probe_resp(struct rtllib_device *ieee, u8 *dest)
+{
+ u8 *tag;
+ int beacon_size;
+ struct rtllib_probe_response *beacon_buf;
+ struct sk_buff *skb = NULL;
+ int encrypt;
+ int atim_len,erp_len;
+ struct rtllib_crypt_data* crypt;
+
+ char *ssid = ieee->current_network.ssid;
+ int ssid_len = ieee->current_network.ssid_len;
+ int rate_len = ieee->current_network.rates_len+2;
+ int rate_ex_len = ieee->current_network.rates_ex_len;
+ int wpa_ie_len = ieee->wpa_ie_len;
+ u8 erpinfo_content = 0;
+
+ u8* tmp_ht_cap_buf=NULL;
+ u8 tmp_ht_cap_len=0;
+ u8* tmp_ht_info_buf=NULL;
+ u8 tmp_ht_info_len=0;
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ u8* tmp_generic_ie_buf=NULL;
+ u8 tmp_generic_ie_len=0;
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ u8 wmmie[9] = {0};
+ u8 wmm_len = 0;
+#endif
+#ifdef RTL8192S_WAPI_SUPPORT
+ PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo);
+ u8 pWapiIELen = 0;
+#endif
+ if(rate_ex_len > 0) rate_ex_len+=2;
+
+ if(ieee->current_network.capability & WLAN_CAPABILITY_IBSS)
+ atim_len = 4;
+ else
+ atim_len = 0;
+
+#if 0
+ if(rtllib_is_54g(&ieee->current_network))
+ erp_len = 3;
+ else
+ erp_len = 0;
+#else
+ if((ieee->current_network.mode == IEEE_G)
+ ||( ieee->current_network.mode == IEEE_N_24G && ieee->pHTInfo->bCurSuppCCK)) {
+ erp_len = 3;
+ erpinfo_content = 0;
+ if(ieee->current_network.buseprotection)
+ erpinfo_content |= ERP_UseProtection;
+ }
+ else
+ erp_len = 0;
+#endif
+
+#ifdef _RTL8192_EXT_PATCH_
+ crypt = ieee->sta_crypt[ieee->tx_keyidx];
+#else
+ crypt = ieee->crypt[ieee->tx_keyidx];
+#endif
+ encrypt = ieee->host_encrypt && crypt && crypt->ops &&
+ ((0 == strcmp(crypt->ops->name, "WEP") || wpa_ie_len));
+#if 1
+ if(ieee->pHTInfo->bCurrentHTSupport){
+ tmp_ht_cap_buf =(u8*) &(ieee->pHTInfo->SelfHTCap);
+ tmp_ht_cap_len = sizeof(ieee->pHTInfo->SelfHTCap);
+ tmp_ht_info_buf =(u8*) &(ieee->pHTInfo->SelfHTInfo);
+ tmp_ht_info_len = sizeof(ieee->pHTInfo->SelfHTInfo);
+#ifdef _RTL8192_EXT_PATCH_
+ HTConstructCapabilityElement(ieee, tmp_ht_cap_buf, &tmp_ht_cap_len,encrypt, 1);
+#else
+ HTConstructCapabilityElement(ieee, tmp_ht_cap_buf, &tmp_ht_cap_len,encrypt);
+#endif
+ HTConstructInfoElement(ieee,tmp_ht_info_buf,&tmp_ht_info_len, encrypt);
+
+
+ if(pHTInfo->bRegRT2RTAggregation)
+ {
+ tmp_generic_ie_buf = ieee->pHTInfo->szRT2RTAggBuffer;
+ tmp_generic_ie_len = sizeof(ieee->pHTInfo->szRT2RTAggBuffer);
+ HTConstructRT2RTAggElement(ieee, tmp_generic_ie_buf, &tmp_generic_ie_len);
+ }
+ }
+#endif
+
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ if(ieee->iw_mode == IW_MODE_ADHOC){
+ if(ieee->current_network.qos_data.supported){
+ wmm_len = 1;
+ constructWMMIE(wmmie,&wmm_len,OUI_SUBTYPE_WMM_INFO);
+ }else{
+ wmm_len = 0;
+ }
+ }
+#endif
+#ifdef RTL8192S_WAPI_SUPPORT
+ if(ieee->WapiSupport && pWapiInfo->bWapiEnable)
+ {
+ WapiSetIE(ieee);
+ pWapiIELen = pWapiInfo->wapiIELength;
+ }
+#endif
+ beacon_size = sizeof(struct rtllib_probe_response)+2+
+ ssid_len
+ +3
+ +rate_len
+ +rate_ex_len
+ +atim_len
+ +erp_len
+ +wpa_ie_len
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ +tmp_ht_cap_len
+ +tmp_ht_info_len
+ +tmp_generic_ie_len
+ +wmm_len
+#endif
+#ifdef RTL8192S_WAPI_SUPPORT
+ +pWapiIELen+2
+#endif
+ +ieee->tx_headroom;
+#ifdef USB_USE_ALIGNMENT
+ u32 Tmpaddr=0;
+ int alignment=0;
+ skb = dev_alloc_skb(beacon_size + USB_512B_ALIGNMENT_SIZE);
+#else
+ skb = dev_alloc_skb(beacon_size);
+#endif
+ if (!skb)
+ return NULL;
+
+#ifdef USB_USE_ALIGNMENT
+ Tmpaddr = (u32)skb->data;
+ alignment = Tmpaddr & 0x1ff;
+ skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment));
+#endif
+
+ skb_reserve(skb, ieee->tx_headroom);
+
+ beacon_buf = (struct rtllib_probe_response*) skb_put(skb, (beacon_size - ieee->tx_headroom));
+ memcpy (beacon_buf->header.addr1, dest,ETH_ALEN);
+ memcpy (beacon_buf->header.addr2, ieee->dev->dev_addr, ETH_ALEN);
+ memcpy (beacon_buf->header.addr3, ieee->current_network.bssid, ETH_ALEN);
+
+ beacon_buf->header.duration_id = 0;
+ beacon_buf->beacon_interval =
+ cpu_to_le16(ieee->current_network.beacon_interval);
+ beacon_buf->capability =
+ cpu_to_le16(ieee->current_network.capability & WLAN_CAPABILITY_IBSS);
+ beacon_buf->capability |=
+ cpu_to_le16(ieee->current_network.capability & WLAN_CAPABILITY_SHORT_PREAMBLE);
+
+ if(ieee->short_slot && (ieee->current_network.capability & WLAN_CAPABILITY_SHORT_SLOT_TIME))
+ cpu_to_le16((beacon_buf->capability |= WLAN_CAPABILITY_SHORT_SLOT_TIME));
+
+#ifndef _RTL8192_EXT_PATCH_
+ crypt = ieee->crypt[ieee->tx_keyidx];
+#endif
+ if (encrypt)
+ beacon_buf->capability |= cpu_to_le16(WLAN_CAPABILITY_PRIVACY);
+
+
+ beacon_buf->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_PROBE_RESP);
+ beacon_buf->info_element[0].id = MFIE_TYPE_SSID;
+ beacon_buf->info_element[0].len = ssid_len;
+
+ tag = (u8*) beacon_buf->info_element[0].data;
+
+ memcpy(tag, ssid, ssid_len);
+
+ tag += ssid_len;
+
+ *(tag++) = MFIE_TYPE_RATES;
+ *(tag++) = rate_len-2;
+ memcpy(tag,ieee->current_network.rates,rate_len-2);
+ tag+=rate_len-2;
+
+ *(tag++) = MFIE_TYPE_DS_SET;
+ *(tag++) = 1;
+ *(tag++) = ieee->current_network.channel;
+
+ if(atim_len){
+ u16 val16;
+ *(tag++) = MFIE_TYPE_IBSS_SET;
+ *(tag++) = 2;
+ val16 = cpu_to_le16(ieee->current_network.atim_window);
+ memcpy((u8 *)tag, (u8 *)&val16, 2);
+ tag+=2;
+ }
+
+ if(erp_len){
+ *(tag++) = MFIE_TYPE_ERP;
+ *(tag++) = 1;
+ *(tag++) = erpinfo_content;
+ }
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ if(tmp_ht_cap_len){
+ *(tag++) = MFIE_TYPE_HT_CAP;
+ *(tag++) = tmp_ht_cap_len - 2;
+ memcpy(tag, tmp_ht_cap_buf, tmp_ht_cap_len - 2);
+ tag += tmp_ht_cap_len - 2;
+ }
+#endif
+ if(rate_ex_len){
+ *(tag++) = MFIE_TYPE_RATES_EX;
+ *(tag++) = rate_ex_len-2;
+ memcpy(tag,ieee->current_network.rates_ex,rate_ex_len-2);
+ tag+=rate_ex_len-2;
+ }
+
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ if(tmp_ht_info_len){
+ *(tag++) = MFIE_TYPE_HT_INFO;
+ *(tag++) = tmp_ht_info_len - 2;
+ memcpy(tag, tmp_ht_info_buf, tmp_ht_info_len -2);
+ tag += tmp_ht_info_len - 2;
+ }
+#endif
+
+ if (wpa_ie_len)
+ {
+ if (ieee->iw_mode == IW_MODE_ADHOC)
+ {
+ memcpy(&ieee->wpa_ie[14], &ieee->wpa_ie[8], 4);
+ }
+ memcpy(tag, ieee->wpa_ie, ieee->wpa_ie_len);
+ tag += ieee->wpa_ie_len;
+ }
+
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ if(tmp_generic_ie_len)
+ {
+ (*tag++) = 0xdd;
+ (*tag++) = tmp_generic_ie_len - 2;
+ memcpy(tag,tmp_generic_ie_buf,tmp_generic_ie_len -2);
+ tag += tmp_generic_ie_len -2;
+
+ }
+#endif
+
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ if(wmm_len) {
+ memcpy(tag,wmmie,wmm_len);
+ tag += wmm_len;
+ }
+#endif
+#ifdef RTL8192S_WAPI_SUPPORT
+ if(pWapiIELen)
+ {
+ *(tag++) = MFIE_TYPE_WAPI;
+ *(tag++) = pWapiIELen;
+ memcpy(tag, pWapiInfo->wapiIE, pWapiIELen);
+ tag += pWapiIELen;
+
+ pWapiInfo->sendbeaconWapiIE[0] = MFIE_TYPE_WAPI;
+ pWapiInfo->sendbeaconWapiIE[1] = pWapiIELen;
+ pWapiInfo->sendbeaconWapiIELength = pWapiIELen+2;
+ memcpy(pWapiInfo->sendbeaconWapiIE+2, pWapiInfo->wapiIE, pWapiIELen);
+ }
+#endif
+ return skb;
+}
+
+#ifdef RTL8192S_WAPI_SUPPORT
+void ConstructWapiIEForInit(struct rtllib_device* ieee)
+{
+ PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo);
+ u8 pWapiIELen = 0;
+
+ if(ieee->WapiSupport && pWapiInfo->bWapiEnable){
+ WapiSetIE(ieee);
+ pWapiIELen = pWapiInfo->wapiIELength;
+ if(pWapiIELen){
+ pWapiInfo->sendbeaconWapiIE[0] = MFIE_TYPE_WAPI;
+ pWapiInfo->sendbeaconWapiIE[1] = pWapiIELen;
+ pWapiInfo->sendbeaconWapiIELength = pWapiIELen+2;
+ memcpy(pWapiInfo->sendbeaconWapiIE+2, pWapiInfo->wapiIE, pWapiIELen);
+ }
+ }
+}
+#endif
+
+#ifdef _RTL8192_EXT_PATCH_
+#ifdef COMPATIBLE_WITH_RALINK_MESH
+extern void ConstructRalinkHostNameIE(struct rtllib_device* ieee,
+ u8* p_hostname_ie, u8* hostname_ie_len);
+#else
+extern void ConstructHostNameIE(struct rtllib_device* ieee,
+ u8* hostname_ie, u8* hostname_ie_len);
+#endif
+struct sk_buff* rtllib_ext_probe_resp_by_net(struct rtllib_device *ieee, u8 *dest, struct rtllib_network *net)
+{
+ u8 *tag;
+ int beacon_size;
+ struct rtllib_probe_response *beacon_buf;
+ struct sk_buff *skb;
+ int encrypt;
+ int atim_len = 0,erp_len = 0;
+ struct rtllib_crypt_data* crypt;
+ u8 broadcast_addr[] = {0xff,0xff,0xff,0xff,0xff,0xff};
+
+ char *ssid = net->ssid;
+ int ssid_len = net->ssid_len;
+
+ int rate_len = ieee->current_mesh_network.rates_len+2;
+ int rate_ex_len = ieee->current_mesh_network.rates_ex_len;
+ int wpa_ie_len = 0;
+ u8 erpinfo_content = 0;
+#if 0
+ u8* tmp_ht_cap_buf=NULL;
+ u8 tmp_ht_cap_len=0;
+ u8* tmp_ht_info_buf=NULL;
+ u8 tmp_ht_info_len=0;
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ u8* tmp_generic_ie_buf=NULL;
+ u8 tmp_generic_ie_len=0;
+#endif
+ u8 wmmie[9] = {0};
+ u8 wmm_len = 0;
+ u8 hostname_ie_buf[MAX_HOST_NAME_LENGTH+4];
+ u8 hostname_ie_len=0;
+ if(rate_ex_len > 0) rate_ex_len+=2;
+ if( ieee->meshScanMode&4){
+ ieee->current_mesh_network.channel = ieee->ext_patch_rtllib_ext_stop_scan_wq_set_channel(ieee);
+ if(ieee->current_mesh_network.channel == 0)
+ ieee->current_mesh_network.channel = 1;
+ }
+ if( ieee->meshScanMode&6)
+ {
+ queue_work_rsl(ieee->wq, &ieee->ext_stop_scan_wq);
+ }
+ if(ieee->current_mesh_network.capability & WLAN_CAPABILITY_IBSS)
+ atim_len = 4;
+ else
+ atim_len = 0;
+
+
+ if((ieee->current_mesh_network.mode == IEEE_G)
+ ||( ieee->mode == IEEE_N_24G && ieee->pHTInfo->bCurSuppCCK)){
+ erp_len = 3;
+ erpinfo_content = 0;
+ if(ieee->bUseProtection)
+ erpinfo_content |= ERP_UseProtection;
+ }
+ else
+ erp_len = 0;
+
+ if ((IW_MODE_MESH==ieee->iw_mode))
+ {
+ wpa_ie_len = ieee->wpa_ie_len;
+ }
+
+ crypt = ieee->cryptlist[0]->crypt[ieee->mesh_txkeyidx];
+
+ encrypt = ieee->host_encrypt && crypt && crypt->ops &&
+ ((0 == strcmp(crypt->ops->name, "WEP")||wpa_ie_len));
+#if 0
+ if(ieee->pHTInfo->bCurrentHTSupport){
+ tmp_ht_cap_buf =(u8*) &(ieee->pHTInfo->SelfHTCap);
+ tmp_ht_cap_len = sizeof(ieee->pHTInfo->SelfHTCap);
+ tmp_ht_info_buf =(u8*) &(ieee->pHTInfo->SelfHTInfo);
+ tmp_ht_info_len = sizeof(ieee->pHTInfo->SelfHTInfo);
+ HTConstructCapabilityElement(ieee, tmp_ht_cap_buf, &tmp_ht_cap_len,encrypt, 1);
+ HTConstructInfoElement(ieee,tmp_ht_info_buf,&tmp_ht_info_len, encrypt);
+
+
+ if(pHTInfo->bRegRT2RTAggregation)
+ {
+ tmp_generic_ie_buf = ieee->pHTInfo->szRT2RTAggBuffer;
+ tmp_generic_ie_len = sizeof(ieee->pHTInfo->szRT2RTAggBuffer);
+ HTConstructRT2RTAggElement(ieee, tmp_generic_ie_buf, &tmp_generic_ie_len);
+ }
+ }
+#endif
+ {
+#ifdef COMPATIBLE_WITH_RALINK_MESH
+ ConstructRalinkHostNameIE(ieee, hostname_ie_buf, &hostname_ie_len);
+#else
+ ConstructHostNameIE(ieee, hostname_ie_buf, &hostname_ie_len);
+#endif
+ }
+ if((ieee->iw_mode == IW_MODE_MESH) && (ieee->current_mesh_network.qos_data.supported == 1)){
+ wmm_len = 1;
+ constructWMMIE(wmmie,&wmm_len,OUI_SUBTYPE_WMM_INFO);
+ }
+ beacon_size = sizeof(struct rtllib_probe_response)+2+
+ ssid_len
+ +3
+ +rate_len
+ +rate_ex_len
+ +atim_len
+ +erp_len
+ +wpa_ie_len
+#if 0
+ +tmp_ht_cap_len
+ +tmp_ht_info_len
+ +tmp_generic_ie_len
+#endif
+ +hostname_ie_len
+ +wmm_len
+ +ieee->tx_headroom;
+ skb = dev_alloc_skb(beacon_size+300);
+
+ if (!skb)
+ return NULL;
+ skb_reserve(skb, ieee->tx_headroom);
+ beacon_buf = (struct rtllib_probe_response*) skb_put(skb, (beacon_size - ieee->tx_headroom));
+
+ memcpy (beacon_buf->header.addr1, dest,ETH_ALEN);
+ memcpy (beacon_buf->header.addr2, ieee->meshdev->dev_addr, ETH_ALEN);
+ memcpy (beacon_buf->header.addr3, ieee->current_mesh_network.bssid, ETH_ALEN);
+
+ beacon_buf->header.duration_id = 0;
+
+ beacon_buf->beacon_interval =
+ cpu_to_le16(ieee->current_mesh_network.beacon_interval);
+ beacon_buf->capability =
+ cpu_to_le16(ieee->current_mesh_network.capability & WLAN_CAPABILITY_IBSS);
+
+ if(ieee->short_slot && (ieee->current_mesh_network.capability & WLAN_CAPABILITY_SHORT_SLOT_TIME))
+ cpu_to_le16((beacon_buf->capability |= WLAN_CAPABILITY_SHORT_SLOT_TIME));
+
+ if (encrypt)
+ beacon_buf->capability |= cpu_to_le16(WLAN_CAPABILITY_PRIVACY);
+
+
+ beacon_buf->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_PROBE_RESP);
+
+ beacon_buf->info_element[0].id = MFIE_TYPE_SSID;
+ beacon_buf->info_element[0].len = ssid_len;
+
+ tag = (u8*) beacon_buf->info_element[0].data;
+
+ if(memcmp(dest, broadcast_addr, ETH_ALEN ))
+ memcpy(tag, ssid, ssid_len);
+ else
+ ssid_len=0;
+
+ tag += ssid_len;
+
+
+ *(tag++) = MFIE_TYPE_RATES;
+ *(tag++) = rate_len-2;
+ memcpy(tag,ieee->current_mesh_network.rates,rate_len-2);
+ tag+=rate_len-2;
+
+ *(tag++) = MFIE_TYPE_DS_SET;
+ *(tag++) = 1;
+ *(tag++) = ieee->current_mesh_network.channel;
+
+
+ if(atim_len){
+ u16 val16;
+ *(tag++) = MFIE_TYPE_IBSS_SET;
+ *(tag++) = 2;
+ val16 = cpu_to_le16(ieee->current_mesh_network.atim_window);
+ memcpy((u8 *)tag, (u8 *)&val16, 2);
+ tag+=2;
+ }
+
+ if(erp_len){
+ *(tag++) = MFIE_TYPE_ERP;
+ *(tag++) = 1;
+ *(tag++) = erpinfo_content;
+ }
+#if 0
+ if(tmp_ht_cap_len){
+ *(tag++) = MFIE_TYPE_HT_CAP;
+ *(tag++) = tmp_ht_cap_len - 2;
+ memcpy(tag, tmp_ht_cap_buf, tmp_ht_cap_len - 2);
+ tag += tmp_ht_cap_len - 2;
+ }
+#endif
+
+ if(rate_ex_len){
+ *(tag++) = MFIE_TYPE_RATES_EX;
+ *(tag++) = rate_ex_len-2;
+ memcpy(tag,ieee->current_mesh_network.rates_ex,rate_ex_len-2);
+ tag+=rate_ex_len-2;
+ }
+
+#if 0
+ if(tmp_ht_info_len){
+ *(tag++) = MFIE_TYPE_HT_INFO;
+ *(tag++) = tmp_ht_info_len - 2;
+ memcpy(tag, tmp_ht_info_buf, tmp_ht_info_len -2);
+ tag += tmp_ht_info_len - 2;
+ }
+#endif
+ if (wpa_ie_len) {
+ memcpy(tag, ieee->wpa_ie, ieee->wpa_ie_len);
+ tag+=ieee->wpa_ie_len;
+ }
+
+#if 0
+ if(tmp_generic_ie_len)
+ {
+ (*tag++) = 0xdd;
+ (*tag++) = tmp_generic_ie_len - 2;
+ memcpy(tag,tmp_generic_ie_buf,tmp_generic_ie_len -2);
+ tag += tmp_generic_ie_len -2;
+
+ }
+#endif
+ if(hostname_ie_len)
+ {
+ (*tag++) = 0xdd;
+ (*tag++) = hostname_ie_len - 2;
+ memcpy(tag, hostname_ie_buf, hostname_ie_len - 2);
+ tag += hostname_ie_len -2;
+ }
+
+ if(wmm_len)
+ {
+ memcpy(tag,wmmie,wmm_len);
+ }
+
+ skb->dev = ieee->dev;
+ return skb;
+}
+#endif
+
+struct sk_buff* rtllib_assoc_resp(struct rtllib_device *ieee, u8 *dest)
+{
+ struct sk_buff *skb;
+ u8* tag;
+
+ struct rtllib_crypt_data* crypt;
+ struct rtllib_assoc_response_frame *assoc;
+ short encrypt;
+
+ unsigned int rate_len = rtllib_MFIE_rate_len(ieee);
+ int len = sizeof(struct rtllib_assoc_response_frame) + rate_len + ieee->tx_headroom;
+
+#ifdef USB_USE_ALIGNMENT
+ u32 Tmpaddr=0;
+ int alignment=0;
+ skb = dev_alloc_skb(len + USB_512B_ALIGNMENT_SIZE);
+#else
+ skb = dev_alloc_skb(len);
+#endif
+
+ if (!skb)
+ return NULL;
+
+#ifdef USB_USE_ALIGNMENT
+ Tmpaddr = (u32)skb->data;
+ alignment = Tmpaddr & 0x1ff;
+ skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment));
+#endif
+
+ skb_reserve(skb, ieee->tx_headroom);
+
+ assoc = (struct rtllib_assoc_response_frame *)
+ skb_put(skb,sizeof(struct rtllib_assoc_response_frame));
+
+ assoc->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_ASSOC_RESP);
+ memcpy(assoc->header.addr1, dest,ETH_ALEN);
+ memcpy(assoc->header.addr3, ieee->dev->dev_addr, ETH_ALEN);
+ memcpy(assoc->header.addr2, ieee->dev->dev_addr, ETH_ALEN);
+ assoc->capability = cpu_to_le16(ieee->iw_mode == IW_MODE_MASTER ?
+ WLAN_CAPABILITY_ESS : WLAN_CAPABILITY_IBSS);
+
+
+ if(ieee->short_slot)
+ assoc->capability |= cpu_to_le16(WLAN_CAPABILITY_SHORT_SLOT_TIME);
+
+ if (ieee->host_encrypt){
+#ifdef _RTL8192_EXT_PATCH_
+ crypt = ieee->cryptlist[0]->crypt[ieee->tx_keyidx];
+#else
+ crypt = ieee->crypt[ieee->tx_keyidx];
+#endif
+
+ }
+ else crypt = NULL;
+
+ encrypt = ( crypt && crypt->ops);
+
+ if (encrypt)
+ assoc->capability |= cpu_to_le16(WLAN_CAPABILITY_PRIVACY);
+
+ assoc->status = 0;
+ assoc->aid = cpu_to_le16(ieee->assoc_id);
+ if (ieee->assoc_id == 0x2007)
+ ieee->assoc_id=0;
+ else
+ ieee->assoc_id++;
+
+ tag = (u8*) skb_put(skb, rate_len);
+ rtllib_MFIE_Brate(ieee, &tag);
+ rtllib_MFIE_Grate(ieee, &tag);
+
+ return skb;
+}
+
+struct sk_buff* rtllib_auth_resp(struct rtllib_device *ieee,int status, u8 *dest)
+{
+ struct sk_buff *skb = NULL;
+ struct rtllib_authentication *auth;
+ int len = ieee->tx_headroom + sizeof(struct rtllib_authentication)+1;
+#ifdef _RTL8192_EXT_PATCH_
+ bool is_mesh = ieee->ext_patch_rtllib_is_mesh(ieee,dest);
+ if(is_mesh && (ieee->mesh_sec_type == 1) && (ieee->mesh_security_setting == 3))
+ skb = ieee->ext_patch_rtllib_send_ath_confirm(ieee,dest);
+ return skb;
+#endif
+#ifdef USB_USE_ALIGNMENT
+ u32 Tmpaddr=0;
+ int alignment=0;
+ skb = dev_alloc_skb(len + USB_512B_ALIGNMENT_SIZE);
+#else
+ skb = dev_alloc_skb(len);
+#endif
+ if (!skb)
+ return NULL;
+
+ skb->len = sizeof(struct rtllib_authentication);
+
+#ifdef USB_USE_ALIGNMENT
+ Tmpaddr = (u32)skb->data;
+ alignment = Tmpaddr & 0x1ff;
+ skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment));
+#endif
+
+ skb_reserve(skb, ieee->tx_headroom);
+
+ auth = (struct rtllib_authentication *)
+ skb_put(skb, sizeof(struct rtllib_authentication));
+
+ auth->status = cpu_to_le16(status);
+ auth->transaction = cpu_to_le16(2);
+ auth->algorithm = cpu_to_le16(WLAN_AUTH_OPEN);
+
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ memset(auth->header.addr3, 0, ETH_ALEN);
+ else
+ memcpy(auth->header.addr3, ieee->dev->dev_addr, ETH_ALEN);
+#else
+ memcpy(auth->header.addr3, ieee->dev->dev_addr, ETH_ALEN);
+#endif
+ memcpy(auth->header.addr2, ieee->dev->dev_addr, ETH_ALEN);
+ memcpy(auth->header.addr1, dest, ETH_ALEN);
+ auth->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_AUTH);
+ return skb;
+
+
+}
+
+struct sk_buff* rtllib_null_func(struct rtllib_device *ieee,short pwr)
+{
+ struct sk_buff *skb;
+ struct rtllib_hdr_3addr* hdr;
+
+#ifdef USB_USE_ALIGNMENT
+ u32 Tmpaddr=0;
+ int alignment=0;
+ skb = dev_alloc_skb(sizeof(struct rtllib_hdr_3addr) + ieee->tx_headroom + USB_512B_ALIGNMENT_SIZE);
+#else
+ skb = dev_alloc_skb(sizeof(struct rtllib_hdr_3addr)+ieee->tx_headroom);
+#endif
+ if (!skb)
+ return NULL;
+
+#ifdef USB_USE_ALIGNMENT
+ Tmpaddr = (u32)skb->data;
+ alignment = Tmpaddr & 0x1ff;
+ skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment));
+#endif
+ skb_reserve(skb, ieee->tx_headroom);
+
+ hdr = (struct rtllib_hdr_3addr*)skb_put(skb,sizeof(struct rtllib_hdr_3addr));
+
+ memcpy(hdr->addr1, ieee->current_network.bssid, ETH_ALEN);
+ memcpy(hdr->addr2, ieee->dev->dev_addr, ETH_ALEN);
+ memcpy(hdr->addr3, ieee->current_network.bssid, ETH_ALEN);
+
+ hdr->frame_ctl = cpu_to_le16(RTLLIB_FTYPE_DATA |
+ RTLLIB_STYPE_NULLFUNC | RTLLIB_FCTL_TODS |
+ (pwr ? RTLLIB_FCTL_PM:0));
+
+ return skb;
+
+
+}
+
+struct sk_buff* rtllib_pspoll_func(struct rtllib_device *ieee)
+{
+ struct sk_buff *skb;
+ struct rtllib_pspoll_hdr* hdr;
+
+#ifdef USB_USE_ALIGNMENT
+ u32 Tmpaddr=0;
+ int alignment=0;
+ skb = dev_alloc_skb(sizeof(struct rtllib_pspoll_hdr) + ieee->tx_headroom + USB_512B_ALIGNMENT_SIZE);
+#else
+ skb = dev_alloc_skb(sizeof(struct rtllib_pspoll_hdr)+ieee->tx_headroom);
+#endif
+ if (!skb)
+ return NULL;
+
+#ifdef USB_USE_ALIGNMENT
+ Tmpaddr = (u32)skb->data;
+ alignment = Tmpaddr & 0x1ff;
+ skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment));
+#endif
+ skb_reserve(skb, ieee->tx_headroom);
+
+ hdr = (struct rtllib_pspoll_hdr*)skb_put(skb,sizeof(struct rtllib_pspoll_hdr));
+
+ memcpy(hdr->bssid, ieee->current_network.bssid, ETH_ALEN);
+ memcpy(hdr->ta, ieee->dev->dev_addr, ETH_ALEN);
+
+ hdr->aid = cpu_to_le16(ieee->assoc_id | 0xc000);
+ hdr->frame_ctl = cpu_to_le16(RTLLIB_FTYPE_CTL |RTLLIB_STYPE_PSPOLL | RTLLIB_FCTL_PM);
+
+ return skb;
+
+}
+
+void rtllib_resp_to_assoc_rq(struct rtllib_device *ieee, u8* dest)
+{
+ struct sk_buff *buf = rtllib_assoc_resp(ieee, dest);
+
+ if (buf)
+ softmac_mgmt_xmit(buf, ieee);
+}
+
+
+void rtllib_resp_to_auth(struct rtllib_device *ieee, int s, u8* dest)
+{
+ struct sk_buff *buf = rtllib_auth_resp(ieee, s, dest);
+
+ if (buf)
+ softmac_mgmt_xmit(buf, ieee);
+}
+
+
+void rtllib_resp_to_probe(struct rtllib_device *ieee, u8 *dest)
+{
+
+
+ struct sk_buff *buf = rtllib_probe_resp(ieee, dest);
+ if (buf)
+ softmac_mgmt_xmit(buf, ieee);
+}
+
+
+inline int SecIsInPMKIDList(struct rtllib_device *ieee, u8 *bssid)
+{
+ int i = 0;
+
+ do
+ {
+ if ((ieee->PMKIDList[i].bUsed) && (memcmp(ieee->PMKIDList[i].Bssid, bssid, ETH_ALEN) == 0))
+ {
+ break;
+ }
+ else
+ {
+ i++;
+ }
+ } while (i < NUM_PMKID_CACHE);
+
+ if (i == NUM_PMKID_CACHE)
+ {
+ i = -1;
+ }
+ else
+ {
+ }
+
+ return (i);
+
+}
+
+
+inline struct sk_buff *rtllib_association_req(struct rtllib_network *beacon,struct rtllib_device *ieee)
+{
+ struct sk_buff *skb;
+
+ struct rtllib_assoc_request_frame *hdr;
+ u8 *tag, *ies;
+ int i;
+ u8* ht_cap_buf = NULL;
+ u8 ht_cap_len=0;
+ u8* realtek_ie_buf=NULL;
+ u8 realtek_ie_len=0;
+ int wpa_ie_len= ieee->wpa_ie_len;
+ int wps_ie_len = ieee->wps_ie_len;
+ unsigned int ckip_ie_len=0;
+ unsigned int ccxrm_ie_len=0;
+ unsigned int cxvernum_ie_len=0;
+ struct rtllib_crypt_data* crypt;
+ int encrypt;
+ int PMKCacheIdx;
+
+ unsigned int rate_len = (beacon->rates_len?(beacon->rates_len+2):0) + (beacon->rates_ex_len?(beacon->rates_ex_len)+2:0);
+
+ unsigned int wmm_info_len = beacon->qos_data.supported?9:0;
+#ifdef THOMAS_TURBO
+ unsigned int turbo_info_len = beacon->Turbo_Enable?9:0;
+#endif
+
+ int len = 0;
+#ifdef RTL8192S_WAPI_SUPPORT
+ PRT_WAPI_BKID pWapiBKID;
+ u16 bkidNum;
+ PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo);
+ u8 WapiIE[256];
+ u8 WapiIELength = 0;
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ crypt = ieee->sta_crypt[ieee->tx_keyidx];
+#else
+ crypt = ieee->crypt[ieee->tx_keyidx];
+#endif
+ if(crypt != NULL) {
+ encrypt = ieee->host_encrypt && crypt && crypt->ops && ((0 == strcmp(crypt->ops->name,"WEP") || wpa_ie_len));
+ } else {
+ encrypt = 0;
+ }
+
+#ifdef ENABLE_TKIP11N
+ if (ieee->bForcedBgMode == true)
+#else
+ if ((ieee->rtllib_ap_sec_type && (ieee->rtllib_ap_sec_type(ieee)&SEC_ALG_TKIP)) ||(ieee->bForcedBgMode == true))
+#endif
+ {
+ ieee->pHTInfo->bEnableHT = 0;
+ ieee->mode = WIRELESS_MODE_G;
+ }
+
+ if(ieee->pHTInfo->bCurrentHTSupport&&ieee->pHTInfo->bEnableHT)
+ {
+ ht_cap_buf = (u8*)&(ieee->pHTInfo->SelfHTCap);
+ ht_cap_len = sizeof(ieee->pHTInfo->SelfHTCap);
+#ifdef _RTL8192_EXT_PATCH_
+ HTConstructCapabilityElement(ieee, ht_cap_buf, &ht_cap_len, encrypt, 0);
+#else
+ HTConstructCapabilityElement(ieee, ht_cap_buf, &ht_cap_len, encrypt);
+#endif
+ if(ieee->pHTInfo->bCurrentRT2RTAggregation)
+ {
+ realtek_ie_buf = ieee->pHTInfo->szRT2RTAggBuffer;
+ realtek_ie_len = sizeof( ieee->pHTInfo->szRT2RTAggBuffer);
+ HTConstructRT2RTAggElement(ieee, realtek_ie_buf, &realtek_ie_len);
+
+ }
+ }
+
+ if(beacon->bCkipSupported)
+ {
+ ckip_ie_len = 30+2;
+ }
+ if(beacon->bCcxRmEnable)
+ {
+ ccxrm_ie_len = 6+2;
+ }
+ if( beacon->BssCcxVerNumber >= 2 )
+ {
+ cxvernum_ie_len = 5+2;
+ }
+
+ PMKCacheIdx = SecIsInPMKIDList(ieee, ieee->current_network.bssid);
+ if (PMKCacheIdx >= 0)
+ {
+ wpa_ie_len += 18;
+ printk("[PMK cache]: WPA2 IE length: %x\n", wpa_ie_len);
+ }
+#ifdef RTL8192S_WAPI_SUPPORT
+ if(ieee->WapiSupport && pWapiInfo->bWapiEnable)
+ {
+ wpa_ie_len = 0;
+
+ WAPI_TRACE(WAPI_API, "%s(): Set WAPI IE in assoc req!!\n",__FUNCTION__);
+ WapiSetIE(ieee);
+ WapiIELength = pWapiInfo->wapiIELength;
+ memcpy(WapiIE, pWapiInfo->wapiIE ,pWapiInfo->wapiIELength);
+
+ bkidNum = 0;
+ WapiIELength +=2;
+ if(!list_empty(&(pWapiInfo->wapiBKIDStoreList))){
+ list_for_each_entry(pWapiBKID, &pWapiInfo->wapiBKIDStoreList, list) {
+ bkidNum ++;
+ memcpy(WapiIE+WapiIELength, pWapiBKID->bkid,16);
+ WapiIELength += 16;
+ }
+
+ }
+ memcpy(WapiIE+pWapiInfo->wapiIELength,&bkidNum,2);
+ }
+#endif
+
+ len = sizeof(struct rtllib_assoc_request_frame)+ 2
+ + beacon->ssid_len
+ + rate_len
+ + wpa_ie_len
+ + wps_ie_len
+#ifdef RTL8192S_WAPI_SUPPORT
+ + WapiIELength + 2
+#endif
+ + wmm_info_len
+#ifdef THOMAS_TURBO
+ + turbo_info_len
+#endif
+ + ht_cap_len
+ + realtek_ie_len
+ + ckip_ie_len
+ + ccxrm_ie_len
+ + cxvernum_ie_len
+ + ieee->tx_headroom;
+
+#ifdef USB_USE_ALIGNMENT
+ u32 Tmpaddr=0;
+ int alignment=0;
+ skb = dev_alloc_skb(len + USB_512B_ALIGNMENT_SIZE);
+#else
+ skb = dev_alloc_skb(len);
+#endif
+
+ if (!skb)
+ return NULL;
+
+#ifdef USB_USE_ALIGNMENT
+ Tmpaddr = (u32)skb->data;
+ alignment = Tmpaddr & 0x1ff;
+ skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment));
+#endif
+
+ skb_reserve(skb, ieee->tx_headroom);
+
+ hdr = (struct rtllib_assoc_request_frame *)
+ skb_put(skb, sizeof(struct rtllib_assoc_request_frame)+2);
+
+
+ hdr->header.frame_ctl = RTLLIB_STYPE_ASSOC_REQ;
+ hdr->header.duration_id= 37;
+ memcpy(hdr->header.addr1, beacon->bssid, ETH_ALEN);
+ memcpy(hdr->header.addr2, ieee->dev->dev_addr, ETH_ALEN);
+ memcpy(hdr->header.addr3, beacon->bssid, ETH_ALEN);
+
+ memcpy(ieee->ap_mac_addr, beacon->bssid, ETH_ALEN);
+
+ hdr->capability = cpu_to_le16(WLAN_CAPABILITY_ESS);
+ if (beacon->capability & WLAN_CAPABILITY_PRIVACY )
+ hdr->capability |= cpu_to_le16(WLAN_CAPABILITY_PRIVACY);
+
+ if (beacon->capability & WLAN_CAPABILITY_SHORT_PREAMBLE)
+ hdr->capability |= cpu_to_le16(WLAN_CAPABILITY_SHORT_PREAMBLE);
+
+ if(ieee->short_slot && (beacon->capability&WLAN_CAPABILITY_SHORT_SLOT_TIME))
+ hdr->capability |= cpu_to_le16(WLAN_CAPABILITY_SHORT_SLOT_TIME);
+
+
+ hdr->listen_interval = beacon->listen_interval;
+
+ hdr->info_element[0].id = MFIE_TYPE_SSID;
+
+ hdr->info_element[0].len = beacon->ssid_len;
+ tag = skb_put(skb, beacon->ssid_len);
+ memcpy(tag, beacon->ssid, beacon->ssid_len);
+
+ tag = skb_put(skb, rate_len);
+
+ if(beacon->rates_len){
+ *tag++ = MFIE_TYPE_RATES;
+ *tag++ = beacon->rates_len;
+ for(i=0;i<beacon->rates_len;i++){
+ *tag++ = beacon->rates[i];
+ }
+ }
+
+ if(beacon->rates_ex_len){
+ *tag++ = MFIE_TYPE_RATES_EX;
+ *tag++ = beacon->rates_ex_len;
+ for(i=0;i<beacon->rates_ex_len;i++){
+ *tag++ = beacon->rates_ex[i];
+ }
+ }
+
+ if( beacon->bCkipSupported )
+ {
+ static u8 AironetIeOui[] = {0x00, 0x01, 0x66};
+ u8 CcxAironetBuf[30];
+ OCTET_STRING osCcxAironetIE;
+
+ memset(CcxAironetBuf, 0,30);
+ osCcxAironetIE.Octet = CcxAironetBuf;
+ osCcxAironetIE.Length = sizeof(CcxAironetBuf);
+ memcpy(osCcxAironetIE.Octet, AironetIeOui, sizeof(AironetIeOui));
+
+ osCcxAironetIE.Octet[IE_CISCO_FLAG_POSITION] |= (SUPPORT_CKIP_PK|SUPPORT_CKIP_MIC) ;
+ tag = skb_put(skb, ckip_ie_len);
+ *tag++ = MFIE_TYPE_AIRONET;
+ *tag++ = osCcxAironetIE.Length;
+ memcpy(tag,osCcxAironetIE.Octet,osCcxAironetIE.Length);
+ tag += osCcxAironetIE.Length;
+ }
+
+ if(beacon->bCcxRmEnable)
+ {
+ static u8 CcxRmCapBuf[] = {0x00, 0x40, 0x96, 0x01, 0x01, 0x00};
+ OCTET_STRING osCcxRmCap;
+
+ osCcxRmCap.Octet = CcxRmCapBuf;
+ osCcxRmCap.Length = sizeof(CcxRmCapBuf);
+ tag = skb_put(skb,ccxrm_ie_len);
+ *tag++ = MFIE_TYPE_GENERIC;
+ *tag++ = osCcxRmCap.Length;
+ memcpy(tag,osCcxRmCap.Octet,osCcxRmCap.Length);
+ tag += osCcxRmCap.Length;
+ }
+
+ if( beacon->BssCcxVerNumber >= 2 )
+ {
+ u8 CcxVerNumBuf[] = {0x00, 0x40, 0x96, 0x03, 0x00};
+ OCTET_STRING osCcxVerNum;
+ CcxVerNumBuf[4] = beacon->BssCcxVerNumber;
+ osCcxVerNum.Octet = CcxVerNumBuf;
+ osCcxVerNum.Length = sizeof(CcxVerNumBuf);
+ tag = skb_put(skb,cxvernum_ie_len);
+ *tag++ = MFIE_TYPE_GENERIC;
+ *tag++ = osCcxVerNum.Length;
+ memcpy(tag,osCcxVerNum.Octet,osCcxVerNum.Length);
+ tag += osCcxVerNum.Length;
+ }
+ if(ieee->pHTInfo->bCurrentHTSupport&&ieee->pHTInfo->bEnableHT){
+ if(ieee->pHTInfo->ePeerHTSpecVer != HT_SPEC_VER_EWC)
+ {
+ tag = skb_put(skb, ht_cap_len);
+ *tag++ = MFIE_TYPE_HT_CAP;
+ *tag++ = ht_cap_len - 2;
+ memcpy(tag, ht_cap_buf,ht_cap_len -2);
+ tag += ht_cap_len -2;
+ }
+ }
+
+
+ if (wpa_ie_len){
+ tag = skb_put(skb, ieee->wpa_ie_len);
+ memcpy(tag, ieee->wpa_ie, ieee->wpa_ie_len);
+
+ if (PMKCacheIdx >= 0)
+ {
+ tag = skb_put(skb, 18);
+ *tag = 1;
+ *(tag + 1) = 0;
+ memcpy((tag + 2), &ieee->PMKIDList[PMKCacheIdx].PMKID, 16);
+ }
+ }
+#ifdef RTL8192S_WAPI_SUPPORT
+ if(WapiIELength){
+ tag = skb_put(skb, WapiIELength+2);
+ *tag = MFIE_TYPE_WAPI;
+ *(tag+1) = WapiIELength;
+ memcpy((tag+2), WapiIE, WapiIELength);
+
+ pWapiInfo->assoReqWapiIELength = WapiIELength+2;
+ pWapiInfo->assoReqWapiIE[0] = MFIE_TYPE_WAPI;
+ pWapiInfo->assoReqWapiIE[1] = WapiIELength;
+ memcpy(pWapiInfo->assoReqWapiIE+2,WapiIE,WapiIELength);
+ }
+#endif
+
+ if(wmm_info_len) {
+ tag = skb_put(skb,wmm_info_len);
+ rtllib_WMM_Info(ieee, &tag);
+ }
+
+ if(wps_ie_len && ieee->wps_ie)
+ {
+ tag = skb_put(skb, wps_ie_len);
+ memcpy(tag, ieee->wps_ie, wps_ie_len);
+ }
+
+#ifdef THOMAS_TURBO
+ tag = skb_put(skb,turbo_info_len);
+ if(turbo_info_len) {
+ rtllib_TURBO_Info(ieee, &tag);
+ }
+#endif
+
+ if(ieee->pHTInfo->bCurrentHTSupport&&ieee->pHTInfo->bEnableHT){
+ if(ieee->pHTInfo->ePeerHTSpecVer == HT_SPEC_VER_EWC)
+ {
+ tag = skb_put(skb, ht_cap_len);
+ *tag++ = MFIE_TYPE_GENERIC;
+ *tag++ = ht_cap_len - 2;
+ memcpy(tag, ht_cap_buf,ht_cap_len - 2);
+ tag += ht_cap_len -2;
+ }
+
+ if(ieee->pHTInfo->bCurrentRT2RTAggregation){
+ tag = skb_put(skb, realtek_ie_len);
+ *tag++ = MFIE_TYPE_GENERIC;
+ *tag++ = realtek_ie_len - 2;
+ memcpy(tag, realtek_ie_buf,realtek_ie_len -2 );
+ }
+ }
+
+ if(ieee->assocreq_ies){
+ kfree(ieee->assocreq_ies);
+ ieee->assocreq_ies = NULL;
+ }
+ ies = &(hdr->info_element[0].id);
+ ieee->assocreq_ies_len = (skb->data + skb->len) - ies;
+ ieee->assocreq_ies = kmalloc(ieee->assocreq_ies_len, GFP_ATOMIC);
+ if (ieee->assocreq_ies)
+ memcpy(ieee->assocreq_ies, ies, ieee->assocreq_ies_len);
+ else{
+ printk("%s()Warning: can't alloc memory for assocreq_ies\n", __func__);
+ ieee->assocreq_ies_len = 0;
+ }
+
+ return skb;
+}
+
+void rtllib_associate_abort(struct rtllib_device *ieee)
+{
+
+ unsigned long flags;
+ spin_lock_irqsave(&ieee->lock, flags);
+
+ ieee->associate_seq++;
+
+ /* don't scan, and avoid to have the RX path possibily
+ * try again to associate. Even do not react to AUTH or
+ * ASSOC response. Just wait for the retry wq to be scheduled.
+ * Here we will check if there are good nets to associate
+ * with, so we retry or just get back to NO_LINK and scanning
+ */
+ if (ieee->state == RTLLIB_ASSOCIATING_AUTHENTICATING){
+ RTLLIB_DEBUG_MGMT("Authentication failed\n");
+ ieee->softmac_stats.no_auth_rs++;
+ }else{
+ RTLLIB_DEBUG_MGMT("Association failed\n");
+ ieee->softmac_stats.no_ass_rs++;
+ }
+
+ ieee->state = RTLLIB_ASSOCIATING_RETRY;
+
+ queue_delayed_work_rsl(ieee->wq, &ieee->associate_retry_wq, \
+ RTLLIB_SOFTMAC_ASSOC_RETRY_TIME);
+
+ spin_unlock_irqrestore(&ieee->lock, flags);
+}
+
+void rtllib_associate_abort_cb(unsigned long dev)
+{
+ rtllib_associate_abort((struct rtllib_device *) dev);
+}
+
+
+#ifdef _RTL8192_EXT_PATCH_
+void rtllib_associate_step1(struct rtllib_device *ieee,u8 * daddr)
+#else
+void rtllib_associate_step1(struct rtllib_device *ieee)
+#endif
+{
+ struct rtllib_network *beacon = &ieee->current_network;
+ struct sk_buff *skb;
+#ifdef _RTL8192_EXT_PATCH_
+ bool is_mesh = false;
+#endif
+ RTLLIB_DEBUG_MGMT("Stopping scan\n");
+
+ ieee->softmac_stats.tx_auth_rq++;
+#ifdef _RTL8192_EXT_PATCH_
+ skb=rtllib_authentication_req(beacon, ieee, 0,daddr);
+#else
+ skb=rtllib_authentication_req(beacon, ieee, 0);
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ is_mesh = ieee->ext_patch_rtllib_is_mesh(ieee,daddr);
+ if(is_mesh) {
+ if(skb){
+ softmac_mgmt_xmit(skb, ieee);
+ }
+ return;
+ }else
+#endif
+ if (!skb)
+ rtllib_associate_abort(ieee);
+ else{
+ ieee->state = RTLLIB_ASSOCIATING_AUTHENTICATING ;
+ RTLLIB_DEBUG_MGMT("Sending authentication request\n");
+ softmac_mgmt_xmit(skb, ieee);
+ if(!timer_pending(&ieee->associate_timer)){
+ ieee->associate_timer.expires = jiffies + (HZ / 2);
+ add_timer(&ieee->associate_timer);
+ }
+ }
+}
+
+void rtllib_auth_challenge(struct rtllib_device *ieee, u8 *challenge, int chlen)
+{
+ u8 *c;
+ struct sk_buff *skb;
+ struct rtllib_network *beacon = &ieee->current_network;
+
+ ieee->associate_seq++;
+ ieee->softmac_stats.tx_auth_rq++;
+
+#ifdef _RTL8192_EXT_PATCH_
+ skb = rtllib_authentication_req(beacon, ieee, chlen+2,beacon->bssid);
+#else
+ skb = rtllib_authentication_req(beacon, ieee, chlen+2);
+#endif
+ if (!skb)
+ rtllib_associate_abort(ieee);
+ else{
+ c = skb_put(skb, chlen+2);
+ *(c++) = MFIE_TYPE_CHALLENGE;
+ *(c++) = chlen;
+ memcpy(c, challenge, chlen);
+
+ RTLLIB_DEBUG_MGMT("Sending authentication challenge response\n");
+
+#ifdef _RTL8192_EXT_PATCH_
+ rtllib_encrypt_fragment(ieee, skb, sizeof(struct rtllib_hdr_3addr ), 0, 0);
+#else
+ rtllib_encrypt_fragment(ieee, skb, sizeof(struct rtllib_hdr_3addr ));
+#endif
+
+ softmac_mgmt_xmit(skb, ieee);
+ mod_timer(&ieee->associate_timer, jiffies + (HZ/2));
+#if 0
+ ieee->associate_timer.expires = jiffies + (HZ / 2);
+ add_timer(&ieee->associate_timer);
+#endif
+ }
+ kfree(challenge);
+}
+
+void rtllib_associate_step2(struct rtllib_device *ieee)
+{
+ struct sk_buff* skb;
+ struct rtllib_network *beacon = &ieee->current_network;
+
+ del_timer_sync(&ieee->associate_timer);
+
+ RTLLIB_DEBUG_MGMT("Sending association request\n");
+
+ ieee->softmac_stats.tx_ass_rq++;
+ skb=rtllib_association_req(beacon, ieee);
+ if (!skb)
+ rtllib_associate_abort(ieee);
+ else{
+ softmac_mgmt_xmit(skb, ieee);
+ mod_timer(&ieee->associate_timer, jiffies + (HZ/2));
+#if 0
+ ieee->associate_timer.expires = jiffies + (HZ / 2);
+ add_timer(&ieee->associate_timer);
+#endif
+ }
+}
+
+#define CANCELLED 2
+void rtllib_associate_complete_wq(void *data)
+{
+ struct rtllib_device *ieee = (struct rtllib_device *)container_of_work_rsl(data, struct rtllib_device, associate_complete_wq);
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(ieee->PowerSaveControl));
+ printk(KERN_INFO "Associated successfully\n");
+ if(ieee->is_silent_reset == 0){
+ printk("normal associate\n");
+ notify_wx_assoc_event(ieee);
+ }
+
+ netif_carrier_on(ieee->dev);
+ ieee->is_roaming = false;
+ if(rtllib_is_54g(&ieee->current_network) &&
+ (ieee->modulation & RTLLIB_OFDM_MODULATION)){
+
+ ieee->rate = 108;
+ printk(KERN_INFO"Using G rates:%d\n", ieee->rate);
+ }else{
+ ieee->rate = 22;
+ ieee->SetWirelessMode(ieee->dev, IEEE_B);
+ printk(KERN_INFO"Using B rates:%d\n", ieee->rate);
+ }
+ if (ieee->pHTInfo->bCurrentHTSupport&&ieee->pHTInfo->bEnableHT)
+ {
+ printk("Successfully associated, ht enabled\n");
+ HTOnAssocRsp(ieee);
+ } else {
+ printk("Successfully associated, ht not enabled(%d, %d)\n",
+ ieee->pHTInfo->bCurrentHTSupport, ieee->pHTInfo->bEnableHT);
+ memset(ieee->dot11HTOperationalRateSet, 0, 16);
+ }
+ ieee->LinkDetectInfo.SlotNum = 2 * (1 + ieee->current_network.beacon_interval/500);
+ if(ieee->LinkDetectInfo.NumRecvBcnInPeriod==0||ieee->LinkDetectInfo.NumRecvDataInPeriod==0 )
+ {
+ ieee->LinkDetectInfo.NumRecvBcnInPeriod = 1;
+ ieee->LinkDetectInfo.NumRecvDataInPeriod= 1;
+ }
+ pPSC->LpsIdleCount = 0;
+ ieee->link_change(ieee->dev);
+
+#ifdef _RTL8192_EXT_PATCH_
+ if(ieee->set_key_for_AP)
+ ieee->set_key_for_AP(ieee);
+ /* Synchronize mesh channel to wlan channel in MSTA mode.*/
+ {
+ if(ieee->current_mesh_network.channel != ieee->current_network.channel)
+ {
+ printk("^^^^^^^^^^^^^^^^Change mesh channel %d with wlan channel %d\n",
+ ieee->current_mesh_network.channel, ieee->current_network.channel);
+ ieee->ext_patch_rtllib_close_all_peerlink(ieee, CANCELLED);
+ ieee->current_mesh_network.channel = ieee->current_network.channel;
+ if(ieee->ext_patch_r819x_wx_set_channel)
+ {
+ ieee->ext_patch_r819x_wx_set_channel(ieee, ieee->current_network.channel);
+ ieee->ext_patch_r819x_wx_set_mesh_chan(ieee->dev,ieee->current_network.channel);
+ }
+ }
+ }
+#endif
+ if(ieee->is_silent_reset == 0){
+ } else if(ieee->is_silent_reset == 1) {
+ printk("silent reset associate\n");
+ ieee->is_silent_reset = 0;
+ }
+
+ if (ieee->data_hard_resume)
+ ieee->data_hard_resume(ieee->dev);
+
+#ifdef RTK_DMP_PLATFORM
+ kobject_hotplug(&ieee->dev->class_dev.kobj, KOBJ_LINKUP);
+#endif
+}
+
+static void rtllib_sta_send_associnfo(struct rtllib_device *ieee)
+{
+ char *buf;
+ size_t len;
+ int i;
+ union iwreq_data wrqu;
+
+ return;
+
+
+ buf = kmalloc(50 + 2 * (ieee->assocreq_ies_len + ieee->assocresp_ies_len), GFP_ATOMIC);
+ if (!buf)
+ return;
+
+ len = sprintf(buf, "ASSOCINFO(");
+ if (ieee->assocreq_ies) {
+ len += sprintf(buf + len, "ReqIEs=");
+ for (i = 0; i < ieee->assocreq_ies_len; i++) {
+ len += sprintf(buf + len, "%02x", ieee->assocreq_ies[i]);
+ }
+ }
+ if (ieee->assocresp_ies) {
+ if (ieee->assocreq_ies)
+ len += sprintf(buf + len, " ");
+ len += sprintf(buf + len, "RespIEs=");
+ for (i = 0; i < ieee->assocresp_ies_len; i++) {
+ len += sprintf(buf + len, "%02x", ieee->assocresp_ies[i]);
+ }
+ }
+ len += sprintf(buf + len, ")");
+
+ if (len > IW_CUSTOM_MAX) {
+ len = sprintf(buf, "ASSOCRESPIE=");
+ for (i = 0; i < ieee->assocresp_ies_len; i++) {
+ len += sprintf(buf + len, "%02x", ieee->assocresp_ies[i]);
+ }
+ }
+
+ if (len <= IW_CUSTOM_MAX) {
+ memset(&wrqu, 0, sizeof(wrqu));
+ wrqu.data.length = len;
+ wireless_send_event(ieee->dev, IWEVCUSTOM, &wrqu, buf);
+ }
+
+ kfree(buf);
+}
+
+void rtllib_associate_complete(struct rtllib_device *ieee)
+{
+ del_timer_sync(&ieee->associate_timer);
+
+#if 0
+ for(i = 0; i < 6; i++) {
+ ieee->seq_ctrl[i] = 0;
+ }
+#endif
+ ieee->state = RTLLIB_LINKED;
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)){
+ WAPI_CreateEvent_Send(ieee, WAPI_EVENT_CONNECT, ieee->current_network.bssid, NULL, 0);
+ }
+#endif
+#if 0
+ if (ieee->pHTInfo->bCurrentHTSupport)
+ {
+ printk("Successfully associated, ht enabled\n");
+ queue_work_rsl(ieee->wq, &ieee->ht_onAssRsp);
+ }
+ else
+ {
+ printk("Successfully associated, ht not enabled\n");
+ memset(ieee->dot11HTOperationalRateSet, 0, 16);
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT);
+ }
+#endif
+
+ rtllib_sta_send_associnfo(ieee);
+
+ queue_work_rsl(ieee->wq, &ieee->associate_complete_wq);
+}
+
+void rtllib_associate_procedure_wq(void *data)
+{
+ struct rtllib_device *ieee = container_of_dwork_rsl(data, struct rtllib_device, associate_procedure_wq);
+ rtllib_stop_scan_syncro(ieee);
+#ifdef ENABLE_IPS
+ if(ieee->rtllib_ips_leave != NULL)
+ ieee->rtllib_ips_leave(ieee->dev);
+#endif
+ down(&ieee->wx_sem);
+
+ if (ieee->data_hard_stop)
+ ieee->data_hard_stop(ieee->dev);
+
+ rtllib_stop_scan(ieee);
+ printk("===>%s(), chan:%d\n", __FUNCTION__, ieee->current_network.channel);
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT);
+ if(ieee->eRFPowerState == eRfOff)
+ {
+ printk("=============>%s():Rf state is eRfOff, schedule ipsleave wq again,return\n",__FUNCTION__);
+#ifdef ENABLE_IPS
+ if(ieee->rtllib_ips_leave_wq != NULL)
+ ieee->rtllib_ips_leave_wq(ieee->dev);
+#endif
+ up(&ieee->wx_sem);
+ return;
+ }
+ ieee->associate_seq = 1;
+#ifdef _RTL8192_EXT_PATCH_
+ rtllib_associate_step1(ieee, ieee->current_network.bssid);
+#else
+ rtllib_associate_step1(ieee);
+#endif
+ up(&ieee->wx_sem);
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+
+void rtllib_ext_stop_scan_wq(void *data)
+{
+ struct rtllib_device *ieee = (struct rtllib_device *)container_of_work_rsl(data, struct rtllib_device, ext_stop_scan_wq);
+ rtllib_stop_scan_syncro(ieee);
+
+ down(&ieee->wx_sem);
+
+ if (ieee->data_hard_stop)
+ ieee->data_hard_stop(ieee->dev);
+
+ rtllib_stop_scan(ieee);
+
+ up(&ieee->wx_sem);
+}
+
+
+void rtllib_ext_send_11s_beacon(struct rtllib_device *ieee)
+{
+ queue_work_rsl(ieee->wq, &ieee->ext_send_beacon_wq);
+}
+
+#endif
+
+
+inline void rtllib_softmac_new_net(struct rtllib_device *ieee, struct rtllib_network *net)
+{
+ u8 tmp_ssid[IW_ESSID_MAX_SIZE+1];
+ int tmp_ssid_len = 0;
+
+ short apset,ssidset,ssidbroad,apmatch,ssidmatch;
+
+ /* we are interested in new new only if we are not associated
+ * and we are not associating / authenticating
+ */
+ if (ieee->state != RTLLIB_NOLINK)
+ return;
+
+ if ((ieee->iw_mode == IW_MODE_INFRA) && !(net->capability & WLAN_CAPABILITY_ESS))
+ return;
+
+ if ((ieee->iw_mode == IW_MODE_ADHOC) && !(net->capability & WLAN_CAPABILITY_IBSS))
+ return;
+
+ if ((ieee->iw_mode == IW_MODE_ADHOC) && (net->channel > ieee->ibss_maxjoin_chal)) {
+ return;
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if (ieee->iw_mode == IW_MODE_INFRA || ieee->iw_mode == IW_MODE_ADHOC
+ || ((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0)))
+#else
+ if (ieee->iw_mode == IW_MODE_INFRA || ieee->iw_mode == IW_MODE_ADHOC)
+#endif
+ {
+ /* if the user specified the AP MAC, we need also the essid
+ * This could be obtained by beacons or, if the network does not
+ * broadcast it, it can be put manually.
+ */
+ apset = ieee->wap_set;
+ ssidset = ieee->ssid_set;
+ ssidbroad = !(net->ssid_len == 0 || net->ssid[0]== '\0');
+ apmatch = (memcmp(ieee->current_network.bssid, net->bssid, ETH_ALEN)==0);
+ if(!ssidbroad){
+ ssidmatch = (ieee->current_network.ssid_len == net->hidden_ssid_len)&&\
+ (!strncmp(ieee->current_network.ssid, net->hidden_ssid, net->hidden_ssid_len));
+ if(net->hidden_ssid_len > 0)
+ {
+ strncpy(net->ssid, net->hidden_ssid, net->hidden_ssid_len);
+ net->ssid_len = net->hidden_ssid_len;
+ ssidbroad = 1;
+ }
+ }
+ else
+ ssidmatch = (ieee->current_network.ssid_len == net->ssid_len)&&\
+ (!strncmp(ieee->current_network.ssid, net->ssid, net->ssid_len));
+
+ if ( /* if the user set the AP check if match.
+ * if the network does not broadcast essid we check the user supplyed ANY essid
+ * if the network does broadcast and the user does not set essid it is OK
+ * if the network does broadcast and the user did set essid chech if essid match
+ */
+ ( apset && apmatch &&
+ ((ssidset && ssidbroad && ssidmatch) || (ssidbroad && !ssidset) || (!ssidbroad && ssidset)) )
+ /* if the ap is not set, check that the user set the bssid
+ * and the network does bradcast and that those two bssid matches
+ */
+ || (!apset && ssidset && ssidbroad && ssidmatch) || (ieee->is_roaming && ssidset && ssidbroad && ssidmatch)
+ ){
+ /* if the essid is hidden replace it with the
+ * essid provided by the user.
+ */
+ if (!ssidbroad){
+ strncpy(tmp_ssid, ieee->current_network.ssid, IW_ESSID_MAX_SIZE);
+ tmp_ssid_len = ieee->current_network.ssid_len;
+ }
+ memcpy(&ieee->current_network, net, sizeof(struct rtllib_network));
+ if (!ssidbroad){
+ strncpy(ieee->current_network.ssid, tmp_ssid, IW_ESSID_MAX_SIZE);
+ ieee->current_network.ssid_len = tmp_ssid_len;
+ }
+ printk(KERN_INFO"Linking with %s,channel:%d, qos:%d, myHT:%d, networkHT:%d, mode:%x cur_net.flags:0x%x\n",ieee->current_network.ssid,ieee->current_network.channel, ieee->current_network.qos_data.supported, ieee->pHTInfo->bEnableHT, ieee->current_network.bssht.bdSupportHT, ieee->current_network.mode, ieee->current_network.flags);
+
+ if ((rtllib_act_scanning(ieee, false)) && !(ieee->softmac_features & IEEE_SOFTMAC_SCAN)){
+ rtllib_stop_scan_syncro(ieee);
+ }
+
+ ieee->hwscan_ch_bk = ieee->current_network.channel;
+ HTResetIOTSetting(ieee->pHTInfo);
+ ieee->wmm_acm = 0;
+#ifdef _RTL8192_EXT_PATCH_
+ if ((ieee->iw_mode == IW_MODE_INFRA) ||
+ ((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0)))
+#else
+ if (ieee->iw_mode == IW_MODE_INFRA)
+#endif
+ {
+ /* Join the network for the first time */
+ ieee->AsocRetryCount = 0;
+ if((ieee->current_network.qos_data.supported == 1) &&
+ ieee->current_network.bssht.bdSupportHT)
+/*WB, 2008.09.09:bCurrentHTSupport and bEnableHT two flags are going to put together to check whether we are in HT now, so needn't to check bEnableHT flags here. That's is to say we will set to HT support whenever joined AP has the ability to support HT. And whether we are in HT or not, please check bCurrentHTSupport&&bEnableHT now please.*/
+ {
+#ifdef ENABLE_AMSDU
+ if((ieee->mode == IEEE_N_24G) && (ieee->mode == IEEE_N_5G))
+ HTUseDefaultSetting(ieee);
+#endif
+ HTResetSelfAndSavePeerSetting(ieee, &(ieee->current_network));
+ }
+ else
+ {
+ ieee->pHTInfo->bCurrentHTSupport = false;
+ }
+
+ ieee->state = RTLLIB_ASSOCIATING;
+ if(ieee->LedControlHandler != NULL)
+ ieee->LedControlHandler(ieee->dev, LED_CTL_START_TO_LINK);
+ queue_delayed_work_rsl(ieee->wq, &ieee->associate_procedure_wq, 0);
+ }else{
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)){
+ WAPI_CreateEvent_Send(ieee, WAPI_EVENT_CONNECT, ieee->current_network.bssid, NULL, 0);
+ }
+#endif
+ ieee->state = RTLLIB_LINKED;
+ if(ieee->mode > ieee->current_network.mode)
+ ieee->SetWirelessMode(ieee->dev, ieee->current_network.mode);
+ else
+ ieee->SetWirelessMode(ieee->dev, ieee->mode);
+ mod_timer(&ieee->ibss_wait_timer,jiffies+(MSECS(20000)));
+#else
+ if(rtllib_is_54g(&ieee->current_network) &&
+ (ieee->modulation & RTLLIB_OFDM_MODULATION)){
+ ieee->rate = 108;
+ ieee->SetWirelessMode(ieee->dev, IEEE_G);
+ printk(KERN_INFO"Using G rates\n");
+ }else{
+ ieee->rate = 22;
+ ieee->SetWirelessMode(ieee->dev, IEEE_B);
+ printk(KERN_INFO"Using B rates\n");
+ }
+ memset(ieee->dot11HTOperationalRateSet, 0, 16);
+ ieee->state = RTLLIB_LINKED;
+#endif
+ }
+
+ }
+ }
+
+}
+
+void rtllib_softmac_check_all_nets(struct rtllib_device *ieee)
+{
+ unsigned long flags;
+ struct rtllib_network *target;
+
+ spin_lock_irqsave(&ieee->lock, flags);
+
+ list_for_each_entry(target, &ieee->network_list, list) {
+
+ /* if the state become different that NOLINK means
+ * we had found what we are searching for
+ */
+
+ if (ieee->state != RTLLIB_NOLINK)
+ break;
+
+ if (ieee->scan_age == 0 || time_after(target->last_scanned + ieee->scan_age, jiffies))
+ rtllib_softmac_new_net(ieee, target);
+ }
+
+ spin_unlock_irqrestore(&ieee->lock, flags);
+
+}
+
+
+static inline u16 auth_parse(struct sk_buff *skb, u8** challenge, int *chlen)
+{
+ struct rtllib_authentication *a;
+ u8 *t;
+ if (skb->len < (sizeof(struct rtllib_authentication)-sizeof(struct rtllib_info_element))){
+ RTLLIB_DEBUG_MGMT("invalid len in auth resp: %d\n",skb->len);
+ return 0xcafe;
+ }
+ *challenge = NULL;
+ a = (struct rtllib_authentication*) skb->data;
+ if(skb->len > (sizeof(struct rtllib_authentication) +3)){
+ t = skb->data + sizeof(struct rtllib_authentication);
+
+ if(*(t++) == MFIE_TYPE_CHALLENGE){
+ *chlen = *(t++);
+ *challenge = (u8*)kmalloc(*chlen, GFP_ATOMIC);
+ memcpy(*challenge, t, *chlen);
+ }
+ }
+
+ return cpu_to_le16(a->status);
+
+}
+
+
+int auth_rq_parse(struct sk_buff *skb,u8* dest)
+{
+ struct rtllib_authentication *a;
+
+ if (skb->len < (sizeof(struct rtllib_authentication)-sizeof(struct rtllib_info_element))){
+ RTLLIB_DEBUG_MGMT("invalid len in auth request: %d\n",skb->len);
+ return -1;
+ }
+ a = (struct rtllib_authentication*) skb->data;
+
+ memcpy(dest,a->header.addr2, ETH_ALEN);
+
+ if (le16_to_cpu(a->algorithm) != WLAN_AUTH_OPEN)
+ return WLAN_STATUS_NOT_SUPPORTED_AUTH_ALG;
+
+ return WLAN_STATUS_SUCCESS;
+}
+
+static short probe_rq_parse(struct rtllib_device *ieee, struct sk_buff *skb, u8 *src)
+{
+ u8 *tag;
+ u8 *skbend;
+ u8 *ssid=NULL;
+ u8 ssidlen = 0;
+
+ struct rtllib_hdr_3addr *header =
+ (struct rtllib_hdr_3addr *) skb->data;
+
+ if (skb->len < sizeof (struct rtllib_hdr_3addr ))
+ return -1; /* corrupted */
+ if((memcmp(header->addr3,ieee->current_network.bssid,ETH_ALEN) != 0)&&
+ (memcmp(header->addr3,"\xff\xff\xff\xff\xff\xff",ETH_ALEN) != 0)) {
+ return -1;
+ }
+
+ if(memcmp(header->addr3,ieee->current_network.bssid,ETH_ALEN) == 0) {
+ }
+
+ if(memcmp(header->addr3,"\xff\xff\xff\xff\xff\xff",ETH_ALEN) == 0) {
+ }
+ memcpy(src,header->addr2, ETH_ALEN);
+
+ skbend = (u8*)skb->data + skb->len;
+
+ tag = skb->data + sizeof (struct rtllib_hdr_3addr );
+
+ while (tag+1 < skbend){
+ if (*tag == 0){
+ ssid = tag+2;
+ ssidlen = *(tag+1);
+ break;
+ }
+ tag++; /* point to the len field */
+ tag = tag + *(tag); /* point to the last data byte of the tag */
+ tag++; /* point to the next tag */
+ }
+
+ if (ssidlen == 0) return 1;
+
+ if (!ssid) return 1; /* ssid not found in tagged param */
+ return (!strncmp(ssid, ieee->current_network.ssid, ssidlen));
+
+}
+
+int assoc_rq_parse(struct sk_buff *skb,u8* dest)
+{
+ struct rtllib_assoc_request_frame *a;
+
+ if (skb->len < (sizeof(struct rtllib_assoc_request_frame) -
+ sizeof(struct rtllib_info_element))) {
+
+ RTLLIB_DEBUG_MGMT("invalid len in auth request:%d \n", skb->len);
+ return -1;
+ }
+
+ a = (struct rtllib_assoc_request_frame*) skb->data;
+
+ memcpy(dest,a->header.addr2,ETH_ALEN);
+
+ return 0;
+}
+
+static inline u16 assoc_parse(struct rtllib_device *ieee, struct sk_buff *skb, int *aid)
+{
+ struct rtllib_assoc_response_frame *response_head;
+ u16 status_code;
+
+ if (skb->len < sizeof(struct rtllib_assoc_response_frame)){
+ RTLLIB_DEBUG_MGMT("invalid len in auth resp: %d\n", skb->len);
+ return 0xcafe;
+ }
+
+ response_head = (struct rtllib_assoc_response_frame*) skb->data;
+ *aid = le16_to_cpu(response_head->aid) & 0x3fff;
+
+ status_code = le16_to_cpu(response_head->status);
+ if((status_code==WLAN_STATUS_ASSOC_DENIED_RATES || \
+ status_code==WLAN_STATUS_CAPS_UNSUPPORTED)&&
+ ((ieee->mode == IEEE_G) &&
+ (ieee->current_network.mode == IEEE_N_24G) &&
+ (ieee->AsocRetryCount++ < (RT_ASOC_RETRY_LIMIT-1)))) {
+ ieee->pHTInfo->IOTAction |= HT_IOT_ACT_PURE_N_MODE;
+ }else {
+ ieee->AsocRetryCount = 0;
+ }
+
+ return le16_to_cpu(response_head->status);
+}
+
+void rtllib_rx_probe_rq(struct rtllib_device *ieee, struct sk_buff *skb)
+{
+ u8 dest[ETH_ALEN];
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ struct sta_info *psta = NULL;
+#endif
+ ieee->softmac_stats.rx_probe_rq++;
+ if (probe_rq_parse(ieee, skb, dest) > 0){
+ ieee->softmac_stats.tx_probe_rs++;
+ rtllib_resp_to_probe(ieee, dest);
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ if(ieee->iw_mode == IW_MODE_ADHOC){
+ psta = GetStaInfo(ieee, dest);
+ if(NULL != psta)
+ psta->LastActiveTime = jiffies;
+ }
+#endif
+ }
+}
+
+static inline void rtllib_rx_auth_rq(struct rtllib_device *ieee, struct sk_buff *skb)
+{
+ u8 dest[ETH_ALEN];
+ int status;
+ ieee->softmac_stats.rx_auth_rq++;
+
+ if ((status = auth_rq_parse(skb, dest))!= -1){
+ rtllib_resp_to_auth(ieee, status, dest);
+ }
+
+}
+
+static inline void rtllib_rx_assoc_rq(struct rtllib_device *ieee, struct sk_buff *skb)
+{
+
+ u8 dest[ETH_ALEN];
+
+ ieee->softmac_stats.rx_ass_rq++;
+ if (assoc_rq_parse(skb,dest) != -1){
+ rtllib_resp_to_assoc_rq(ieee, dest);
+ }
+
+ printk(KERN_INFO"New client associated: "MAC_FMT"\n", MAC_ARG(dest));
+ #if 0
+ spin_lock_irqsave(&ieee->lock,flags);
+ add_associate(ieee,dest);
+ spin_unlock_irqrestore(&ieee->lock,flags);
+ #endif
+}
+
+
+void rtllib_sta_ps_send_null_frame(struct rtllib_device *ieee, short pwr)
+{
+
+ struct sk_buff *buf = rtllib_null_func(ieee, pwr);
+
+ if (buf)
+ softmac_ps_mgmt_xmit(buf, ieee);
+
+}
+
+void rtllib_sta_ps_send_pspoll_frame(struct rtllib_device *ieee)
+{
+
+ struct sk_buff *buf = rtllib_pspoll_func(ieee);
+
+ if (buf)
+ softmac_ps_mgmt_xmit(buf, ieee);
+
+}
+
+short rtllib_sta_ps_sleep(struct rtllib_device *ieee, u32 *time_h, u32 *time_l)
+{
+ int timeout = ieee->ps_timeout;
+ u8 dtim;
+ PRT_POWER_SAVE_CONTROL pPSC = (PRT_POWER_SAVE_CONTROL)(&(ieee->PowerSaveControl));
+ /*if(ieee->ps == RTLLIB_PS_DISABLED ||
+ ieee->iw_mode != IW_MODE_INFRA ||
+ ieee->state != RTLLIB_LINKED)
+
+ return 0;
+ */
+
+ if(ieee->LPSDelayCnt)
+ {
+ ieee->LPSDelayCnt --;
+ return 0;
+ }
+
+ dtim = ieee->current_network.dtim_data;
+ if(!(dtim & RTLLIB_DTIM_VALID))
+ return 0;
+ timeout = ieee->current_network.beacon_interval;
+ ieee->current_network.dtim_data = RTLLIB_DTIM_INVALID;
+ /* there's no need to nofity AP that I find you buffered with broadcast packet */
+ if(dtim & (RTLLIB_DTIM_UCAST & ieee->ps))
+ return 2;
+
+ if(!time_after(jiffies, ieee->dev->trans_start + MSECS(timeout))){
+ return 0;
+ }
+ if(!time_after(jiffies, ieee->last_rx_ps_time + MSECS(timeout))){
+ return 0;
+ }
+ if((ieee->softmac_features & IEEE_SOFTMAC_SINGLE_QUEUE ) &&
+ (ieee->mgmt_queue_tail != ieee->mgmt_queue_head))
+ return 0;
+
+ if(time_l){
+ if(ieee->bAwakePktSent == true) {
+ pPSC->LPSAwakeIntvl = 1;
+ } else {
+ u8 MaxPeriod = 1;
+
+ if(pPSC->LPSAwakeIntvl == 0)
+ pPSC->LPSAwakeIntvl = 1;
+ if(pPSC->RegMaxLPSAwakeIntvl == 0)
+ MaxPeriod = 1;
+ else if(pPSC->RegMaxLPSAwakeIntvl == 0xFF)
+ MaxPeriod = ieee->current_network.dtim_period;
+ else
+ MaxPeriod = pPSC->RegMaxLPSAwakeIntvl;
+ pPSC->LPSAwakeIntvl = (pPSC->LPSAwakeIntvl >= MaxPeriod) ? MaxPeriod : (pPSC->LPSAwakeIntvl + 1);
+ }
+ {
+ u8 LPSAwakeIntvl_tmp = 0;
+ u8 period = ieee->current_network.dtim_period;
+ u8 count = ieee->current_network.tim.tim_count;
+ if(count == 0 ) {
+ if(pPSC->LPSAwakeIntvl > period)
+ LPSAwakeIntvl_tmp = period + (pPSC->LPSAwakeIntvl - period) -((pPSC->LPSAwakeIntvl-period)%period);
+ else
+ LPSAwakeIntvl_tmp = pPSC->LPSAwakeIntvl;
+
+ } else {
+ if(pPSC->LPSAwakeIntvl > ieee->current_network.tim.tim_count)
+ LPSAwakeIntvl_tmp = count + (pPSC->LPSAwakeIntvl - count) -((pPSC->LPSAwakeIntvl-count)%period);
+ else
+ LPSAwakeIntvl_tmp = pPSC->LPSAwakeIntvl;
+ }
+
+ *time_l = ieee->current_network.last_dtim_sta_time[0]
+ + MSECS(ieee->current_network.beacon_interval * LPSAwakeIntvl_tmp);
+ }
+ }
+
+ if(time_h){
+#ifdef _RTL8192_EXT_PATCH_
+ if(time_l && *time_l < ieee->current_network.last_dtim_sta_time[0])
+ *time_h =1;
+ else
+ *time_h =0;
+#else
+ *time_h = ieee->current_network.last_dtim_sta_time[1];
+ if(time_l && *time_l < ieee->current_network.last_dtim_sta_time[0])
+ *time_h += 1;
+#endif
+ }
+
+ return 1;
+
+
+}
+
+inline void rtllib_sta_ps(struct rtllib_device *ieee)
+{
+
+ u32 th,tl;
+ short sleep;
+
+ unsigned long flags,flags2;
+
+ spin_lock_irqsave(&ieee->lock, flags);
+
+ if((ieee->ps == RTLLIB_PS_DISABLED ||
+ ieee->iw_mode != IW_MODE_INFRA ||
+ ieee->state != RTLLIB_LINKED)){
+
+ printk("=====>%s(): no need to ps,wake up!! ieee->ps is %d,ieee->iw_mode is %d,ieee->state is %d\n",
+ __FUNCTION__,ieee->ps,ieee->iw_mode,ieee->state);
+ spin_lock_irqsave(&ieee->mgmt_tx_lock, flags2);
+
+ rtllib_sta_wakeup(ieee, 1);
+
+ spin_unlock_irqrestore(&ieee->mgmt_tx_lock, flags2);
+ }
+
+ sleep = rtllib_sta_ps_sleep(ieee,&th, &tl);
+ /* 2 wake, 1 sleep, 0 do nothing */
+ if(sleep == 0)
+ {
+ goto out;
+ }
+ if(sleep == 1){
+ if(ieee->sta_sleep == 1){
+ ieee->enter_sleep_state(ieee->dev,th,tl);
+ }
+
+ else if(ieee->sta_sleep == 0){
+ spin_lock_irqsave(&ieee->mgmt_tx_lock, flags2);
+
+ if(ieee->ps_is_queue_empty(ieee->dev)){
+ ieee->sta_sleep = 2;
+ ieee->ack_tx_to_ieee = 1;
+ rtllib_sta_ps_send_null_frame(ieee,1);
+ ieee->ps_th = th;
+ ieee->ps_tl = tl;
+ }
+ spin_unlock_irqrestore(&ieee->mgmt_tx_lock, flags2);
+
+ }
+
+ ieee->bAwakePktSent = false;
+
+ }else if(sleep == 2){
+ spin_lock_irqsave(&ieee->mgmt_tx_lock, flags2);
+
+ rtllib_sta_wakeup(ieee,1);
+
+ spin_unlock_irqrestore(&ieee->mgmt_tx_lock, flags2);
+ }
+
+out:
+ spin_unlock_irqrestore(&ieee->lock, flags);
+
+}
+
+void rtllib_sta_wakeup(struct rtllib_device *ieee, short nl)
+{
+ if(ieee->sta_sleep == 0){
+ if(nl){
+ if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_NULL_DATA_POWER_SAVING)
+ {
+ ieee->ack_tx_to_ieee = 1;
+ rtllib_sta_ps_send_null_frame(ieee, 0);
+ }
+ else
+ {
+ ieee->ack_tx_to_ieee = 1;
+ rtllib_sta_ps_send_pspoll_frame(ieee);
+ }
+ }
+ return;
+
+ }
+
+ if(ieee->sta_sleep == 1)
+ ieee->sta_wake_up(ieee->dev);
+ if(nl){
+ /*
+ ieee->ack_tx_to_ieee = 1;
+ printk("%s(3): notify AP we are awaked ++++++++++ SendNullFunctionData\n", __func__);
+ rtllib_sta_ps_send_null_frame(ieee, 0);
+ */
+ if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_NULL_DATA_POWER_SAVING)
+ {
+ ieee->ack_tx_to_ieee = 1;
+ rtllib_sta_ps_send_null_frame(ieee, 0);
+ }
+ else
+ {
+ ieee->ack_tx_to_ieee = 1;
+ ieee->polling = true;
+ rtllib_sta_ps_send_pspoll_frame(ieee);
+ }
+
+ } else {
+ ieee->sta_sleep = 0;
+ ieee->polling = false;
+ }
+}
+
+void rtllib_ps_tx_ack(struct rtllib_device *ieee, short success)
+{
+ unsigned long flags,flags2;
+
+ spin_lock_irqsave(&ieee->lock, flags);
+
+ if(ieee->sta_sleep == 2){
+ /* Null frame with PS bit set */
+ if(success){
+ ieee->sta_sleep = 1;
+ ieee->enter_sleep_state(ieee->dev,ieee->ps_th,ieee->ps_tl);
+ }
+ /* if the card report not success we can't be sure the AP
+ * has not RXed so we can't assume the AP believe us awake
+ */
+ } else {/* 21112005 - tx again null without PS bit if lost */
+
+ if((ieee->sta_sleep == 0) && !success){
+ spin_lock_irqsave(&ieee->mgmt_tx_lock, flags2);
+ if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_NULL_DATA_POWER_SAVING)
+ {
+ rtllib_sta_ps_send_null_frame(ieee, 0);
+ }
+ else
+ {
+ rtllib_sta_ps_send_pspoll_frame(ieee);
+ }
+ spin_unlock_irqrestore(&ieee->mgmt_tx_lock, flags2);
+ }
+ }
+ spin_unlock_irqrestore(&ieee->lock, flags);
+}
+
+void rtllib_process_action(struct rtllib_device* ieee, struct sk_buff* skb)
+{
+ struct rtllib_hdr_3addr *header = (struct rtllib_hdr_3addr *) skb->data;
+ u8* act = rtllib_get_payload((struct rtllib_hdr *)header);
+ u8 category = 0;
+
+ if (act == NULL) {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "error to get payload of action frame\n");
+ return;
+ }
+
+ category = *act;
+ act ++;
+ switch (category) {
+ case ACT_CAT_BA:
+ switch (*act) {
+ case ACT_ADDBAREQ:
+ rtllib_rx_ADDBAReq(ieee, skb);
+ break;
+ case ACT_ADDBARSP:
+ rtllib_rx_ADDBARsp(ieee, skb);
+ break;
+ case ACT_DELBA:
+ rtllib_rx_DELBA(ieee, skb);
+ break;
+ }
+ break;
+ default:
+ break;
+ }
+ return;
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+void rtllib_process_action_mesh(struct rtllib_device* ieee, struct sk_buff* skb,
+ struct rtllib_rx_stats *rx_stats)
+{
+ struct rtllib_hdr_3addr *header = NULL;
+ u8* act = NULL;
+ u8 category = 0;
+
+#ifdef COMPATIBLE_WITH_RALINK_MESH
+ memmove(skb->data + WLAN_MESH_HDR_LEN, skb->data, sizeof(struct rtllib_hdr_3addr));
+ skb_pull(skb, WLAN_MESH_HDR_LEN);
+#endif
+
+ header = (struct rtllib_hdr_3addr *) skb->data;
+ act = rtllib_get_payload((struct rtllib_hdr *)header);
+
+ if (act == NULL) {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "error to get payload of action frame\n");
+ return;
+ }
+ if (ieee->iw_mode != IW_MODE_MESH) {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "not in mesh mode\n");
+ return;
+ }
+
+ category = *act;
+ act ++;
+ switch (category) {
+ case ACT_CAT_MESH_PEERLINK_MGNT:
+ if(ieee->iw_mode != IW_MODE_MESH) {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "peerlink received not in mesh mode\n");
+ return;
+ }
+ switch (*act) {
+ case ACT_PEERLINK_OPEN:
+ if (ieee->ext_patch_rtllib_rx_frame_softmac_on_peerlink_open) {
+ ieee->ext_patch_rtllib_rx_frame_softmac_on_peerlink_open(ieee, skb, rx_stats);
+ }
+ break;
+ case ACT_PEERLINK_CONFIRM:
+ if (ieee->ext_patch_rtllib_rx_frame_softmac_on_peerlink_confirm) {
+ ieee->ext_patch_rtllib_rx_frame_softmac_on_peerlink_confirm(ieee, skb);
+ }
+ break;
+ case ACT_PEERLINK_CLOSE:
+ if ( ieee->ext_patch_rtllib_rx_frame_softmac_on_peerlink_close) {
+ ieee->ext_patch_rtllib_rx_frame_softmac_on_peerlink_close(ieee, skb);
+ }
+ break;
+ }
+ break;
+ case ACT_CAT_MESH_LINK_METRIC:
+ if (ieee->iw_mode != IW_MODE_MESH) {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "link metric received not in mesh mode\n");
+ return;
+ }
+ switch (*act) {
+ case ACT_LINKMETRIC_REQ:
+ if (ieee->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_req) {
+ ieee->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_req(
+ ieee, skb);
+ }
+ break;
+ case ACT_LINKMETRIC_RSP:
+ if (ieee->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_report) {
+ ieee->ext_patch_rtllib_rx_frame_softmac_on_linkmetric_report(
+ ieee, skb);
+ }
+ break;
+ }
+
+ break;
+ case ACT_CAT_MESH_PATH_SELECT:
+ if (ieee->iw_mode != IW_MODE_MESH) {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "not in mesh mode\n");
+ return;
+ }
+
+ switch (*act) {
+ case ACT_PATH_REQ:
+ if( ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_preq) {
+ ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_preq(
+ ieee, skb, rx_stats);
+ }
+ break;
+ case ACT_PATH_REPLY:
+ if(ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_prep) {
+ ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_prep(
+ ieee, skb, rx_stats);
+ }
+ break;
+ case ACT_PATH_ERR:
+ if(ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_perr) {
+ ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_perr(
+ ieee, skb, rx_stats);
+ }
+ break;
+ case ACT_RANN:
+ if(ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_rann) {
+ ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_rann(
+ ieee, skb, rx_stats);
+ }
+ break;
+ }
+ break;
+ case ACT_CAT_MESH_INTERWORKING:
+ if (ieee->iw_mode != IW_MODE_MESH) {
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "not in mesh mode\n");
+ return;
+ }
+ if (*act == 0) {
+ if (ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_pann) {
+ ieee->ext_patch_rtllib_rx_frame_softmac_on_pathselect_pann(
+ ieee, skb, rx_stats);
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ return;
+}
+#endif
+
+inline int rtllib_rx_frame_softmac(struct rtllib_device *ieee, struct sk_buff *skb,
+ struct rtllib_rx_stats *rx_stats, u16 type,
+ u16 stype)
+{
+ struct rtllib_hdr_3addr *header = (struct rtllib_hdr_3addr *) skb->data;
+ u8* ies;
+ u16 errcode;
+ u8* challenge;
+ int chlen=0;
+ int aid;
+#ifdef _RTL8192_EXT_PATCH_
+ u8 mesh_bssid[6] = {0,0,0,0,0,0};
+#endif
+ struct rtllib_assoc_response_frame *assoc_resp;
+ bool bSupportNmode = true, bHalfSupportNmode = false;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if((!ieee->proto_started)&&(!ieee->mesh_started))
+#else
+ if(!ieee->proto_started)
+#endif
+ return 0;
+
+ switch (WLAN_FC_GET_STYPE(header->frame_ctl)) {
+
+ case RTLLIB_STYPE_ASSOC_RESP:
+ case RTLLIB_STYPE_REASSOC_RESP:
+
+ RTLLIB_DEBUG_MGMT("received [RE]ASSOCIATION RESPONSE (%d)\n",
+ WLAN_FC_GET_STYPE(header->frame_ctl));
+ if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) &&
+ ieee->state == RTLLIB_ASSOCIATING_AUTHENTICATED &&
+#ifdef _RTL8192_EXT_PATCH_
+ ((ieee->iw_mode == IW_MODE_INFRA) ||
+ (ieee->iw_mode == IW_MODE_MESH && ieee->only_mesh == 0)))
+#else
+ (ieee->iw_mode == IW_MODE_INFRA))
+#endif
+ {
+ if (0 == (errcode=assoc_parse(ieee,skb, &aid))){
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
+ struct rtllib_network *network = kzalloc(sizeof(struct rtllib_network), GFP_ATOMIC);
+#else
+ struct rtllib_network *network = kmalloc(sizeof(*network), GFP_KERNEL);
+#endif
+ if (!network) {
+ return 1;
+ }
+ memset(network,0,sizeof(*network));
+ ieee->state=RTLLIB_LINKED;
+ ieee->assoc_id = aid;
+ ieee->softmac_stats.rx_ass_ok++;
+ /* station support qos */
+ /* Let the register setting defaultly with Legacy station */
+ assoc_resp = (struct rtllib_assoc_response_frame*)skb->data;
+ if(ieee->current_network.qos_data.supported == 1) {
+ if (rtllib_parse_info_param(ieee,assoc_resp->info_element,\
+ rx_stats->len - sizeof(*assoc_resp),\
+ network,rx_stats)){
+ kfree(network);
+ return 1;
+ }
+ else
+ {
+ memcpy(ieee->pHTInfo->PeerHTCapBuf, network->bssht.bdHTCapBuf, network->bssht.bdHTCapLen);
+ memcpy(ieee->pHTInfo->PeerHTInfoBuf, network->bssht.bdHTInfoBuf, network->bssht.bdHTInfoLen);
+ }
+ if (ieee->handle_assoc_response != NULL)
+ ieee->handle_assoc_response(ieee->dev, (struct rtllib_assoc_response_frame*)header, network);
+ kfree(network);
+ }
+
+ if(ieee->assocresp_ies){
+ kfree(ieee->assocresp_ies);
+ ieee->assocresp_ies = NULL;
+ }
+ ies = &(assoc_resp->info_element[0].id);
+ ieee->assocresp_ies_len = (skb->data + skb->len) - ies;
+ ieee->assocresp_ies = kmalloc(ieee->assocresp_ies_len, GFP_ATOMIC);
+ if (ieee->assocresp_ies)
+ memcpy(ieee->assocresp_ies, ies, ieee->assocresp_ies_len);
+ else{
+ printk("%s()Warning: can't alloc memory for assocresp_ies\n", __func__);
+ ieee->assocresp_ies_len = 0;
+ }
+#ifdef RTL8192S_WAPI_SUPPORT
+ {
+ PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo);
+ PRT_WAPI_STA_INFO pWapiSta;
+ u8 WapiAEPNInitialValueSrc[16] = {0x37,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
+ u8 WapiAEMultiCastPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
+ if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable))
+ {
+ pWapiSta =(PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAIdleList.next, RT_WAPI_STA_INFO, list);
+ list_del_init(&pWapiSta->list);
+ list_add_tail(&pWapiSta->list, &pWapiInfo->wapiSTAUsedList);
+ WAPI_TRACE(WAPI_API, "%s(): New WAPI STA ("MAC_FMT")!!\n",__FUNCTION__,MAC_ARG(ieee->current_network.bssid));
+ memcpy(pWapiSta->PeerMacAddr,ieee->current_network.bssid,6);
+ memcpy(pWapiSta->lastRxMulticastPN, WapiAEMultiCastPNInitialValueSrc, 16);
+ memcpy(pWapiSta->lastRxUnicastPN, WapiAEPNInitialValueSrc, 16);
+ pWapiInfo->bFirstAuthentiateInProgress= true;
+ pWapiInfo->assoRspWapiIE[0] = MFIE_TYPE_WAPI;
+ pWapiInfo->assoRspWapiIE[1] = network->wapi_ie_len;
+ pWapiInfo->assoRspWapiIELength = network->wapi_ie_len+2;
+ memcpy(pWapiInfo->assoRspWapiIE+2,network->wapi_ie,network->wapi_ie_len);
+ }
+ }
+#endif
+ rtllib_associate_complete(ieee);
+ } else {
+ /* aid could not been allocated */
+ ieee->softmac_stats.rx_ass_err++;
+ printk(
+ "Association response status code 0x%x\n",
+ errcode);
+ RTLLIB_DEBUG_MGMT(
+ "Association response status code 0x%x\n",
+ errcode);
+ if(ieee->AsocRetryCount < RT_ASOC_RETRY_LIMIT) {
+ queue_delayed_work_rsl(ieee->wq, &ieee->associate_procedure_wq, 0);
+ } else {
+ rtllib_associate_abort(ieee);
+ }
+ }
+ }
+ break;
+
+ case RTLLIB_STYPE_ASSOC_REQ:
+ case RTLLIB_STYPE_REASSOC_REQ:
+
+ if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) &&
+ ieee->iw_mode == IW_MODE_MASTER)
+
+ rtllib_rx_assoc_rq(ieee, skb);
+ break;
+
+ case RTLLIB_STYPE_AUTH:
+#ifdef _RTL8192_EXT_PATCH_
+ if((ieee->iw_mode == IW_MODE_MESH) && ieee->ext_patch_rtllib_rx_frame_softmac_on_auth && ieee->mesh_started && ((memcmp(header->addr3, ieee->current_network.bssid, 6)) || (memcmp(ieee->current_network.bssid, mesh_bssid, 6) == 0)))
+ ieee->ext_patch_rtllib_rx_frame_softmac_on_auth(ieee, skb, rx_stats);
+ else
+#endif
+ if (ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE){
+ if (ieee->state == RTLLIB_ASSOCIATING_AUTHENTICATING &&
+#ifdef _RTL8192_EXT_PATCH_
+ ((ieee->iw_mode == IW_MODE_INFRA)||
+ ((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0))))
+#else
+ (ieee->iw_mode == IW_MODE_INFRA))
+#endif
+ {
+ RTLLIB_DEBUG_MGMT("Received authentication response");
+
+ if (0 == (errcode=auth_parse(skb, &challenge, &chlen))){
+ if(ieee->open_wep || !challenge){
+ ieee->state = RTLLIB_ASSOCIATING_AUTHENTICATED;
+ ieee->softmac_stats.rx_auth_rs_ok++;
+ if(!(ieee->pHTInfo->IOTAction&HT_IOT_ACT_PURE_N_MODE))
+ {
+ if (!ieee->GetNmodeSupportBySecCfg(ieee->dev))
+ {
+ if(IsHTHalfNmodeAPs(ieee))
+ {
+ bSupportNmode = true;
+ bHalfSupportNmode = true;
+ }
+ else
+ {
+ bSupportNmode = false;
+ bHalfSupportNmode = false;
+ }
+ printk("==========>to link with AP using SEC(%d, %d)", bSupportNmode, bHalfSupportNmode);
+ }
+ }
+ /* Dummy wirless mode setting to avoid encryption issue */
+ if(bSupportNmode) {
+ ieee->SetWirelessMode(ieee->dev, \
+ ieee->current_network.mode);
+ }else{
+ /*TODO*/
+ ieee->SetWirelessMode(ieee->dev, IEEE_G);
+ }
+
+ if (ieee->current_network.mode == IEEE_N_24G && bHalfSupportNmode == true)
+ {
+ printk("===============>entern half N mode\n");
+ ieee->bHalfWirelessN24GMode = true;
+ }
+ else
+ ieee->bHalfWirelessN24GMode = false;
+
+ rtllib_associate_step2(ieee);
+ }else{
+ rtllib_auth_challenge(ieee, challenge, chlen);
+ }
+ }else{
+ ieee->softmac_stats.rx_auth_rs_err++;
+ RTLLIB_DEBUG_MGMT("Authentication respose status code 0x%x",errcode);
+
+ printk("Authentication respose status code 0x%x",errcode);
+ rtllib_associate_abort(ieee);
+ }
+
+ }else if (ieee->iw_mode == IW_MODE_MASTER){
+ rtllib_rx_auth_rq(ieee, skb);
+ }
+ }
+ break;
+#if 0
+ case RTLLIB_STYPE_PROBE_REQ:
+
+ if ((ieee->softmac_features & IEEE_SOFTMAC_PROBERS) &&
+ ((ieee->iw_mode == IW_MODE_ADHOC ||
+ ieee->iw_mode == IW_MODE_MASTER) &&
+ ieee->state == RTLLIB_LINKED)){
+ rtllib_rx_probe_rq(ieee, skb);
+ }
+ break;
+#endif
+ case RTLLIB_STYPE_DISASSOC:
+ case RTLLIB_STYPE_DEAUTH:
+
+ if(memcmp(header->addr3, ieee->current_network.bssid, ETH_ALEN) != 0)
+ break;
+ /* FIXME for now repeat all the association procedure
+ * both for disassociation and deauthentication
+ */
+ if ((ieee->softmac_features & IEEE_SOFTMAC_ASSOCIATE) &&
+ ieee->state == RTLLIB_LINKED &&
+#ifdef _RTL8192_EXT_PATCH_
+ ((ieee->iw_mode == IW_MODE_INFRA) ||
+ ((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0))))
+#else
+ (ieee->iw_mode == IW_MODE_INFRA))
+#endif
+ {
+ printk("==========>received disassoc/deauth(%x) frame, reason code:%x\n",WLAN_FC_GET_STYPE(header->frame_ctl), ((struct rtllib_disassoc*)skb->data)->reason);
+ ieee->state = RTLLIB_ASSOCIATING;
+ ieee->softmac_stats.reassoc++;
+ ieee->is_roaming = true;
+ ieee->LinkDetectInfo.bBusyTraffic = false;
+ rtllib_disassociate(ieee);
+ RemovePeerTS(ieee, header->addr2);
+ if(ieee->LedControlHandler != NULL)
+ ieee->LedControlHandler(ieee->dev, LED_CTL_START_TO_LINK);
+ queue_delayed_work_rsl(ieee->wq, &ieee->associate_procedure_wq, 5);
+ }
+ break;
+ case RTLLIB_STYPE_MANAGE_ACT:
+ rtllib_process_action(ieee,skb);
+#ifdef _RTL8192_EXT_PATCH_
+ rtllib_process_action_mesh(ieee,skb,rx_stats);
+#endif
+ break;
+#ifdef COMPATIBLE_WITH_RALINK_MESH
+ case RTLLIB_STYPE_MESH_ACT:
+ rtllib_process_action_mesh(ieee,skb,rx_stats);
+ break;
+#endif
+ default:
+ return -1;
+ break;
+ }
+
+ return 0;
+}
+
+/* following are for a simplier TX queue management.
+ * Instead of using netif_[stop/wake]_queue the driver
+ * will uses these two function (plus a reset one), that
+ * will internally uses the kernel netif_* and takes
+ * care of the ieee802.11 fragmentation.
+ * So the driver receives a fragment per time and might
+ * call the stop function when it want without take care
+ * to have enought room to TX an entire packet.
+ * This might be useful if each fragment need it's own
+ * descriptor, thus just keep a total free memory > than
+ * the max fragmentation treshold is not enought.. If the
+ * ieee802.11 stack passed a TXB struct then you needed
+ * to keep N free descriptors where
+ * N = MAX_PACKET_SIZE / MIN_FRAG_TRESHOLD
+ * In this way you need just one and the 802.11 stack
+ * will take care of buffering fragments and pass them to
+ * to the driver later, when it wakes the queue.
+ */
+void rtllib_softmac_xmit(struct rtllib_txb *txb, struct rtllib_device *ieee)
+{
+
+ unsigned int queue_index = txb->queue_index;
+ unsigned long flags;
+ int i;
+ cb_desc *tcb_desc = NULL;
+ unsigned long queue_len = 0;
+
+ spin_lock_irqsave(&ieee->lock,flags);
+
+ /* called with 2nd parm 0, no tx mgmt lock required */
+ rtllib_sta_wakeup(ieee,0);
+
+ /* update the tx status */
+ tcb_desc = (cb_desc *)(txb->fragments[0]->cb + MAX_DEV_ADDR_SIZE);
+ if(tcb_desc->bMulticast) {
+ ieee->stats.multicast++;
+ }
+#if 1
+ /* if xmit available, just xmit it immediately, else just insert it to the wait queue */
+ for(i = 0; i < txb->nr_frags; i++) {
+#ifdef USB_TX_DRIVER_AGGREGATION_ENABLE
+ queue_len = skb_queue_len(&ieee->skb_drv_aggQ[queue_index]);
+#else
+ queue_len = skb_queue_len(&ieee->skb_waitQ[queue_index]);
+#endif
+ if((queue_len != 0) ||\
+ (!ieee->check_nic_enough_desc(ieee->dev,queue_index))||\
+ (ieee->queue_stop)) {
+ /* insert the skb packet to the wait queue */
+ /* as for the completion function, it does not need
+ * to check it any more.
+ * */
+#ifdef WIFI_TEST
+ if (1)
+#else
+ if(queue_len < 200)
+#endif
+ {
+#ifdef USB_TX_DRIVER_AGGREGATION_ENABLE
+ skb_queue_tail(&ieee->skb_drv_aggQ[queue_index], txb->fragments[i]);
+#else
+ skb_queue_tail(&ieee->skb_waitQ[queue_index], txb->fragments[i]);
+#endif
+ }else{
+ kfree_skb(txb->fragments[i]);
+ }
+ }else{
+ ieee->softmac_data_hard_start_xmit(
+ txb->fragments[i],
+ ieee->dev,ieee->rate);
+ }
+ }
+#endif
+ rtllib_txb_free(txb);
+
+ spin_unlock_irqrestore(&ieee->lock,flags);
+
+}
+
+/* called with ieee->lock acquired */
+void rtllib_resume_tx(struct rtllib_device *ieee)
+{
+ int i;
+ for(i = ieee->tx_pending.frag; i < ieee->tx_pending.txb->nr_frags; i++) {
+
+ if (ieee->queue_stop){
+ ieee->tx_pending.frag = i;
+ return;
+ }else{
+
+ ieee->softmac_data_hard_start_xmit(
+ ieee->tx_pending.txb->fragments[i],
+ ieee->dev,ieee->rate);
+ ieee->stats.tx_packets++;
+ }
+ }
+
+ rtllib_txb_free(ieee->tx_pending.txb);
+ ieee->tx_pending.txb = NULL;
+}
+
+
+void rtllib_reset_queue(struct rtllib_device *ieee)
+{
+ unsigned long flags;
+
+ spin_lock_irqsave(&ieee->lock,flags);
+ init_mgmt_queue(ieee);
+ if (ieee->tx_pending.txb){
+ rtllib_txb_free(ieee->tx_pending.txb);
+ ieee->tx_pending.txb = NULL;
+ }
+ ieee->queue_stop = 0;
+ spin_unlock_irqrestore(&ieee->lock,flags);
+
+}
+
+void rtllib_wake_queue(struct rtllib_device *ieee)
+{
+
+ unsigned long flags;
+ struct sk_buff *skb;
+ struct rtllib_hdr_3addr *header;
+
+ spin_lock_irqsave(&ieee->lock,flags);
+ if (! ieee->queue_stop) goto exit;
+
+ ieee->queue_stop = 0;
+
+ if(ieee->softmac_features & IEEE_SOFTMAC_SINGLE_QUEUE){
+ while (!ieee->queue_stop && (skb = dequeue_mgmt(ieee))){
+
+ header = (struct rtllib_hdr_3addr *) skb->data;
+
+ header->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
+
+ if (ieee->seq_ctrl[0] == 0xFFF)
+ ieee->seq_ctrl[0] = 0;
+ else
+ ieee->seq_ctrl[0]++;
+
+ ieee->softmac_data_hard_start_xmit(skb,ieee->dev,ieee->basic_rate);
+ }
+ }
+ if (!ieee->queue_stop && ieee->tx_pending.txb)
+ rtllib_resume_tx(ieee);
+
+ if (!ieee->queue_stop && netif_queue_stopped(ieee->dev)){
+ ieee->softmac_stats.swtxawake++;
+ netif_wake_queue(ieee->dev);
+ }
+
+exit :
+ spin_unlock_irqrestore(&ieee->lock,flags);
+}
+
+
+void rtllib_stop_queue(struct rtllib_device *ieee)
+{
+
+ if (! netif_queue_stopped(ieee->dev)){
+ netif_stop_queue(ieee->dev);
+ ieee->softmac_stats.swtxstop++;
+ }
+ ieee->queue_stop = 1;
+
+}
+
+void rtllib_stop_all_queues(struct rtllib_device *ieee)
+{
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,30)
+ unsigned int i;
+ for(i=0; i < ieee->dev->num_tx_queues; i++)
+ netdev_get_tx_queue(ieee->dev,i)->trans_start = jiffies;
+#else
+ ieee->dev->trans_start = jiffies;
+#endif
+
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
+ netif_carrier_off(ieee->dev);
+#else
+ netif_tx_stop_all_queues(ieee->dev);
+#endif
+}
+
+void rtllib_wake_all_queues(struct rtllib_device *ieee)
+{
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27)
+ netif_carrier_on(ieee->dev);
+#else
+ netif_tx_wake_all_queues(ieee->dev);
+#endif
+}
+
+inline void rtllib_randomize_cell(struct rtllib_device *ieee)
+{
+
+ get_random_bytes(ieee->current_network.bssid, ETH_ALEN);
+
+ /* an IBSS cell address must have the two less significant
+ * bits of the first byte = 2
+ */
+ ieee->current_network.bssid[0] &= ~0x01;
+ ieee->current_network.bssid[0] |= 0x02;
+}
+
+/* called in user context only */
+void rtllib_start_master_bss(struct rtllib_device *ieee)
+{
+ ieee->assoc_id = 1;
+
+ if (ieee->current_network.ssid_len == 0){
+ strncpy(ieee->current_network.ssid,
+ RTLLIB_DEFAULT_TX_ESSID,
+ IW_ESSID_MAX_SIZE);
+
+ ieee->current_network.ssid_len = strlen(RTLLIB_DEFAULT_TX_ESSID);
+ ieee->ssid_set = 1;
+ }
+
+ memcpy(ieee->current_network.bssid, ieee->dev->dev_addr, ETH_ALEN);
+
+ ieee->set_chan(ieee->dev, ieee->current_network.channel);
+ ieee->state = RTLLIB_LINKED;
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)){
+ WAPI_CreateEvent_Send(ieee, WAPI_EVENT_CONNECT, ieee->current_network.bssid, NULL, 0);
+ }
+#endif
+ ieee->link_change(ieee->dev);
+ notify_wx_assoc_event(ieee);
+
+ if (ieee->data_hard_resume)
+ ieee->data_hard_resume(ieee->dev);
+
+ netif_carrier_on(ieee->dev);
+}
+
+void rtllib_start_monitor_mode(struct rtllib_device *ieee)
+{
+ /* reset hardware status */
+ if(ieee->raw_tx){
+ if (ieee->data_hard_resume)
+ ieee->data_hard_resume(ieee->dev);
+
+ netif_carrier_on(ieee->dev);
+ }
+}
+
+void rtllib_start_ibss_wq(void *data)
+{
+ struct rtllib_device *ieee = container_of_dwork_rsl(data, struct rtllib_device, start_ibss_wq);
+ /* iwconfig mode ad-hoc will schedule this and return
+ * on the other hand this will block further iwconfig SET
+ * operations because of the wx_sem hold.
+ * Anyway some most set operations set a flag to speed-up
+ * (abort) this wq (when syncro scanning) before sleeping
+ * on the semaphore
+ */
+ if(!ieee->proto_started){
+ printk("==========oh driver down return\n");
+ return;
+ }
+ down(&ieee->wx_sem);
+
+ if (ieee->current_network.ssid_len == 0){
+ strcpy(ieee->current_network.ssid,RTLLIB_DEFAULT_TX_ESSID);
+ ieee->current_network.ssid_len = strlen(RTLLIB_DEFAULT_TX_ESSID);
+ ieee->ssid_set = 1;
+ }
+
+ ieee->state = RTLLIB_NOLINK;
+#ifdef ADHOC_11N
+ ieee->mode = IEEE_N_24G;
+#else
+ ieee->mode = IEEE_G;
+#endif
+ /* check if we have this cell in our network list */
+ rtllib_softmac_check_all_nets(ieee);
+
+
+ /* if not then the state is not linked. Maybe the user swithced to
+ * ad-hoc mode just after being in monitor mode, or just after
+ * being very few time in managed mode (so the card have had no
+ * time to scan all the chans..) or we have just run up the iface
+ * after setting ad-hoc mode. So we have to give another try..
+ * Here, in ibss mode, should be safe to do this without extra care
+ * (in bss mode we had to make sure no-one tryed to associate when
+ * we had just checked the ieee->state and we was going to start the
+ * scan) beacause in ibss mode the rtllib_new_net function, when
+ * finds a good net, just set the ieee->state to RTLLIB_LINKED,
+ * so, at worst, we waste a bit of time to initiate an unneeded syncro
+ * scan, that will stop at the first round because it sees the state
+ * associated.
+ */
+ if (ieee->state == RTLLIB_NOLINK)
+ rtllib_start_scan_syncro(ieee, 0);
+
+ /* the network definitively is not here.. create a new cell */
+ if (ieee->state == RTLLIB_NOLINK){
+ printk("creating new IBSS cell\n");
+ ieee->current_network.channel = ieee->IbssStartChnl;
+ if(!ieee->wap_set)
+ rtllib_randomize_cell(ieee);
+
+ if(ieee->modulation & RTLLIB_CCK_MODULATION){
+
+ ieee->current_network.rates_len = 4;
+
+ ieee->current_network.rates[0] = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_1MB;
+ ieee->current_network.rates[1] = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_2MB;
+ ieee->current_network.rates[2] = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_5MB;
+ ieee->current_network.rates[3] = RTLLIB_BASIC_RATE_MASK | RTLLIB_CCK_RATE_11MB;
+
+ }else
+ ieee->current_network.rates_len = 0;
+
+ if(ieee->modulation & RTLLIB_OFDM_MODULATION){
+ ieee->current_network.rates_ex_len = 8;
+
+ /*ieee->current_network.rates_ex[0] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_6MB;
+ ieee->current_network.rates_ex[1] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_9MB;
+ ieee->current_network.rates_ex[2] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_12MB;
+ ieee->current_network.rates_ex[3] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_18MB;
+ ieee->current_network.rates_ex[4] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_24MB;
+ ieee->current_network.rates_ex[5] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_36MB;
+ ieee->current_network.rates_ex[6] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_48MB;
+ ieee->current_network.rates_ex[7] = RTLLIB_BASIC_RATE_MASK | RTLLIB_OFDM_RATE_54MB;*/
+
+ ieee->current_network.rates_ex[0] = RTLLIB_OFDM_RATE_6MB;
+ ieee->current_network.rates_ex[1] = RTLLIB_OFDM_RATE_9MB;
+ ieee->current_network.rates_ex[2] = RTLLIB_OFDM_RATE_12MB;
+ ieee->current_network.rates_ex[3] = RTLLIB_OFDM_RATE_18MB;
+ ieee->current_network.rates_ex[4] = RTLLIB_OFDM_RATE_24MB;
+ ieee->current_network.rates_ex[5] = RTLLIB_OFDM_RATE_36MB;
+ ieee->current_network.rates_ex[6] = RTLLIB_OFDM_RATE_48MB;
+ ieee->current_network.rates_ex[7] = RTLLIB_OFDM_RATE_54MB;
+
+ ieee->rate = 108;
+ }else{
+ ieee->current_network.rates_ex_len = 0;
+ ieee->rate = 22;
+ }
+
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+#ifdef ADHOC_11N
+ ieee->current_network.qos_data.supported = 1;
+#else
+ ieee->current_network.qos_data.supported = 0;
+#endif
+ ieee->SetWirelessMode(ieee->dev, ieee->mode);
+#else
+ ieee->current_network.qos_data.supported = 0;
+ ieee->SetWirelessMode(ieee->dev, IEEE_G);
+#endif
+ ieee->current_network.mode = ieee->mode;
+ ieee->current_network.atim_window = 0;
+ ieee->current_network.capability = WLAN_CAPABILITY_IBSS;
+ }
+
+ printk("%s(): ieee->mode = %d\n", __FUNCTION__, ieee->mode);
+ if((ieee->mode == IEEE_N_24G) || (ieee->mode == IEEE_N_5G))
+ HTUseDefaultSetting(ieee);
+ else
+ ieee->pHTInfo->bCurrentHTSupport = false;
+
+ ieee->SetHwRegHandler(ieee->dev, HW_VAR_MEDIA_STATUS, (u8 *)(&ieee->state));
+
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable)){
+ WAPI_CreateEvent_Send(ieee, WAPI_EVENT_CONNECT, ieee->current_network.bssid, NULL, 0);
+ }
+#endif
+ ieee->state = RTLLIB_LINKED;
+#ifdef _RTL8192_EXT_PATCH_
+ ieee->set_chan(ieee->dev, ieee->current_network.channel);
+#endif
+ ieee->link_change(ieee->dev);
+
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+
+ if(ieee->pHTInfo->bCurBW40MHz)
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20_40, (ieee->current_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+ else
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, (ieee->current_network.channel<=6)?HT_EXTCHNL_OFFSET_UPPER:HT_EXTCHNL_OFFSET_LOWER);
+#else
+ HTSetConnectBwMode(ieee, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT);
+#endif
+ if(ieee->LedControlHandler != NULL)
+ ieee->LedControlHandler(ieee->dev,LED_CTL_LINK);
+
+ rtllib_start_send_beacons(ieee);
+
+ notify_wx_assoc_event(ieee);
+
+ if (ieee->data_hard_resume)
+ ieee->data_hard_resume(ieee->dev);
+
+ netif_carrier_on(ieee->dev);
+
+ up(&ieee->wx_sem);
+}
+
+inline void rtllib_start_ibss(struct rtllib_device *ieee)
+{
+ queue_delayed_work_rsl(ieee->wq, &ieee->start_ibss_wq, MSECS(150));
+}
+
+/* this is called only in user context, with wx_sem held */
+void rtllib_start_bss(struct rtllib_device *ieee)
+{
+ unsigned long flags;
+#ifdef ENABLE_DOT11D
+ if(IS_DOT11D_ENABLE(ieee) && !IS_COUNTRY_IE_VALID(ieee))
+ {
+ if(! ieee->bGlobalDomain)
+ {
+ return;
+ }
+ }
+#endif
+ /* check if we have already found the net we
+ * are interested in (if any).
+ * if not (we are disassociated and we are not
+ * in associating / authenticating phase) start the background scanning.
+ */
+ rtllib_softmac_check_all_nets(ieee);
+
+ /* ensure no-one start an associating process (thus setting
+ * the ieee->state to rtllib_ASSOCIATING) while we
+ * have just cheked it and we are going to enable scan.
+ * The rtllib_new_net function is always called with
+ * lock held (from both rtllib_softmac_check_all_nets and
+ * the rx path), so we cannot be in the middle of such function
+ */
+ spin_lock_irqsave(&ieee->lock, flags);
+
+ if (ieee->state == RTLLIB_NOLINK) {
+ rtllib_start_scan(ieee);
+ }
+ spin_unlock_irqrestore(&ieee->lock, flags);
+}
+
+void rtllib_link_change_wq(void *data)
+{
+ struct rtllib_device *ieee = container_of_dwork_rsl(data, struct rtllib_device, link_change_wq);
+ ieee->link_change(ieee->dev);
+}
+/* called only in userspace context */
+void rtllib_disassociate(struct rtllib_device *ieee)
+{
+ netif_carrier_off(ieee->dev);
+ if (ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE)
+ rtllib_reset_queue(ieee);
+
+ if (ieee->data_hard_stop)
+ ieee->data_hard_stop(ieee->dev);
+#ifdef ENABLE_DOT11D
+ if(IS_DOT11D_ENABLE(ieee))
+ Dot11d_Reset(ieee);
+#endif
+ ieee->state = RTLLIB_NOLINK;
+ ieee->is_set_key = false;
+ ieee->wap_set = 0;
+
+ queue_delayed_work_rsl(ieee->wq, &ieee->link_change_wq, 0);
+
+
+#ifndef FOR_ANDROID_X86
+ notify_wx_assoc_event(ieee);
+#endif
+#ifdef RTL8192S_WAPI_SUPPORT
+ printk("==============> %s()\n", __FUNCTION__);
+ WapiReturnOneStaInfo(ieee, ieee->current_network.bssid, 0);
+#endif
+}
+#ifdef RTL8192S_WAPI_SUPPORT
+void ieee80211_disassociate_from_app(struct rtllib_device *ieee)
+{
+ netif_carrier_off(ieee->dev);
+ if (ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE)
+ rtllib_reset_queue(ieee);
+
+ if (ieee->data_hard_stop)
+ ieee->data_hard_stop(ieee->dev);
+#ifdef ENABLE_DOT11D
+ if(IS_DOT11D_ENABLE(ieee))
+ Dot11d_Reset(ieee);
+#endif
+ ieee->state = RTLLIB_NOLINK;
+ ieee->is_set_key = false;
+ ieee->wap_set = 0;
+
+ queue_delayed_work_rsl(ieee->wq, &ieee->link_change_wq, 0);
+
+
+#ifndef FOR_ANDROID_X86
+ notify_wx_assoc_event(ieee);
+#endif
+
+ printk("==============> %s()\n", __FUNCTION__);
+ WapiReturnOneStaInfo(ieee, ieee->current_network.bssid, 1);
+}
+
+#endif
+void rtllib_associate_retry_wq(void *data)
+{
+ struct rtllib_device *ieee = container_of_dwork_rsl(data, struct rtllib_device, associate_retry_wq);
+ unsigned long flags;
+
+ down(&ieee->wx_sem);
+ if(!ieee->proto_started)
+ goto exit;
+
+ if(ieee->state != RTLLIB_ASSOCIATING_RETRY)
+ goto exit;
+
+ /* until we do not set the state to RTLLIB_NOLINK
+ * there are no possibility to have someone else trying
+ * to start an association procdure (we get here with
+ * ieee->state = RTLLIB_ASSOCIATING).
+ * When we set the state to RTLLIB_NOLINK it is possible
+ * that the RX path run an attempt to associate, but
+ * both rtllib_softmac_check_all_nets and the
+ * RX path works with ieee->lock held so there are no
+ * problems. If we are still disassociated then start a scan.
+ * the lock here is necessary to ensure no one try to start
+ * an association procedure when we have just checked the
+ * state and we are going to start the scan.
+ */
+ ieee->beinretry = true;
+ ieee->state = RTLLIB_NOLINK;
+
+ rtllib_softmac_check_all_nets(ieee);
+
+ spin_lock_irqsave(&ieee->lock, flags);
+
+ if(ieee->state == RTLLIB_NOLINK)
+ {
+ rtllib_start_scan(ieee);
+ }
+ spin_unlock_irqrestore(&ieee->lock, flags);
+
+ ieee->beinretry = false;
+exit:
+ up(&ieee->wx_sem);
+}
+
+struct sk_buff *rtllib_get_beacon_(struct rtllib_device *ieee)
+{
+ u8 broadcast_addr[] = {0xff,0xff,0xff,0xff,0xff,0xff};
+
+ struct sk_buff *skb;
+ struct rtllib_probe_response *b;
+#ifdef _RTL8192_EXT_PATCH_
+ if((ieee->iw_mode == IW_MODE_MESH)&&(ieee->ext_patch_get_beacon_get_probersp ))
+ skb = ieee->ext_patch_get_beacon_get_probersp(ieee, broadcast_addr, &(ieee->current_mesh_network));
+ else
+ skb = rtllib_probe_resp(ieee, broadcast_addr);
+#else
+ skb = rtllib_probe_resp(ieee, broadcast_addr);
+#endif
+
+ if (!skb)
+ return NULL;
+
+ b = (struct rtllib_probe_response *) skb->data;
+ b->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_BEACON);
+
+ return skb;
+
+}
+
+struct sk_buff *rtllib_get_beacon(struct rtllib_device *ieee)
+{
+ struct sk_buff *skb;
+ struct rtllib_probe_response *b;
+
+ skb = rtllib_get_beacon_(ieee);
+ if(!skb)
+ return NULL;
+
+ b = (struct rtllib_probe_response *) skb->data;
+ b->header.seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
+
+ if (ieee->seq_ctrl[0] == 0xFFF)
+ ieee->seq_ctrl[0] = 0;
+ else
+ ieee->seq_ctrl[0]++;
+
+ return skb;
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+void rtllib_softmac_stop_protocol(struct rtllib_device *ieee, u8 mesh_flag, u8 shutdown)
+#else
+void rtllib_softmac_stop_protocol(struct rtllib_device *ieee,u8 shutdown)
+#endif
+{
+ rtllib_stop_scan_syncro(ieee);
+ down(&ieee->wx_sem);
+#ifdef _RTL8192_EXT_PATCH_
+ if(mesh_flag) {
+ rtllib_stop_mesh_protocol(ieee);
+ }
+ else
+#endif
+ rtllib_stop_protocol(ieee,shutdown);
+ up(&ieee->wx_sem);
+}
+
+
+void rtllib_stop_protocol(struct rtllib_device *ieee, u8 shutdown)
+{
+ if (!ieee->proto_started)
+ return;
+
+ if(shutdown){
+ ieee->proto_started = 0;
+ ieee->proto_stoppping = 1;
+#ifdef ENABLE_IPS
+ if(ieee->rtllib_ips_leave != NULL)
+ ieee->rtllib_ips_leave(ieee->dev);
+#endif
+ }
+
+ rtllib_stop_send_beacons(ieee);
+ del_timer_sync(&ieee->associate_timer);
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ del_timer_sync(&ieee->ibss_wait_timer);
+#endif
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ cancel_delayed_work(&ieee->associate_retry_wq);
+ cancel_delayed_work(&ieee->start_ibss_wq);
+ cancel_delayed_work(&ieee->link_change_wq);
+#endif
+ rtllib_stop_scan(ieee);
+
+ if(ieee->state <= RTLLIB_ASSOCIATING_AUTHENTICATED)
+ ieee->state = RTLLIB_NOLINK;
+
+ if (ieee->state == RTLLIB_LINKED){
+ if (ieee->iw_mode == IW_MODE_INFRA)
+ SendDisassociation(ieee,1,deauth_lv_ss);
+ rtllib_disassociate(ieee);
+ }
+
+ if(shutdown){
+ RemoveAllTS(ieee);
+ ieee->proto_stoppping = 0;
+#ifdef RTL8192S_WAPI_SUPPORT
+ if ((ieee->WapiSupport) && (ieee->wapiInfo.bWapiEnable))
+ {
+ WapiReturnAllStaInfo(ieee);
+ }
+#endif
+ }
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ if(ieee->iw_mode == IW_MODE_ADHOC)
+ DelStaInfoList(ieee);
+#endif
+
+ if(ieee->assocreq_ies){
+ kfree(ieee->assocreq_ies);
+ ieee->assocreq_ies = NULL;
+ ieee->assocreq_ies_len = 0;
+ }
+ if(ieee->assocresp_ies){
+ kfree(ieee->assocresp_ies);
+ ieee->assocresp_ies = NULL;
+ ieee->assocresp_ies_len = 0;
+ }
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+void rtllib_stop_mesh_protocol(struct rtllib_device *ieee)
+{
+ if (!ieee->mesh_started)
+ return;
+ ieee->mesh_started = 0;
+
+ if(ieee->ext_patch_rtllib_stop_protocol)
+ ieee->ext_patch_rtllib_stop_protocol(ieee,0);
+
+ rtllib_stop_send_beacons(ieee);
+}
+#endif
+
+#ifdef _RTL8192_EXT_PATCH_
+void rtllib_softmac_start_protocol(struct rtllib_device *ieee, u8 mesh_flag)
+#else
+void rtllib_softmac_start_protocol(struct rtllib_device *ieee)
+#endif
+{
+ down(&ieee->wx_sem);
+#ifdef _RTL8192_EXT_PATCH_
+ if (mesh_flag) {
+ rtllib_start_mesh_protocol(ieee);
+ }
+ else
+#endif
+ rtllib_start_protocol(ieee);
+ up(&ieee->wx_sem);
+}
+
+void rtllib_start_protocol(struct rtllib_device *ieee)
+{
+ short ch = 0;
+ int i = 0;
+
+ rtllib_update_active_chan_map(ieee);
+
+ if (ieee->proto_started)
+ return;
+
+ ieee->proto_started = 1;
+
+ if (ieee->current_network.channel == 0) {
+ do {
+ ch++;
+ if (ch > MAX_CHANNEL_NUMBER)
+ return; /* no channel found */
+ } while(!ieee->active_channel_map[ch]);
+ ieee->current_network.channel = ch;
+ }
+
+ if (ieee->current_network.beacon_interval == 0)
+ ieee->current_network.beacon_interval = 100;
+
+ for(i = 0; i < 17; i++) {
+ ieee->last_rxseq_num[i] = -1;
+ ieee->last_rxfrag_num[i] = -1;
+ ieee->last_packet_time[i] = 0;
+ }
+
+ if(ieee->UpdateBeaconInterruptHandler)
+ ieee->UpdateBeaconInterruptHandler(ieee->dev, false);
+
+ ieee->wmm_acm = 0;
+ /* if the user set the MAC of the ad-hoc cell and then
+ * switch to managed mode, shall we make sure that association
+ * attempts does not fail just because the user provide the essid
+ * and the nic is still checking for the AP MAC ??
+ */
+#ifdef _RTL8192_EXT_PATCH_
+ if ((ieee->iw_mode == IW_MODE_INFRA) || ((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0)))
+#else
+ if (ieee->iw_mode == IW_MODE_INFRA)
+#endif
+ {
+ rtllib_start_bss(ieee);
+ }else if (ieee->iw_mode == IW_MODE_ADHOC){
+ if(ieee->UpdateBeaconInterruptHandler)
+ ieee->UpdateBeaconInterruptHandler(ieee->dev, true);
+
+ rtllib_start_ibss(ieee);
+
+ }else if (ieee->iw_mode == IW_MODE_MASTER)
+ rtllib_start_master_bss(ieee);
+
+ else if(ieee->iw_mode == IW_MODE_MONITOR)
+ rtllib_start_monitor_mode(ieee);
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+void rtllib_start_mesh_protocol(struct rtllib_device *ieee)
+{
+ short ch = 0;
+
+ rtllib_update_active_chan_map(ieee);
+
+ if (ieee->mesh_started)
+ return;
+
+ ieee->mesh_started = 1;
+
+ if (ieee->current_mesh_network.channel == 0){
+ do {
+ ch++;
+ if (ch > MAX_CHANNEL_NUMBER)
+ return; /* no channel found */
+ } while(ieee->active_channel_map[ch]);
+
+ ieee->current_mesh_network.channel = ch;
+ }
+
+ if (ieee->current_mesh_network.beacon_interval == 0)
+ ieee->current_mesh_network.beacon_interval = 100;
+ ieee->wmm_acm = 0;
+
+ if(ieee->ext_patch_rtllib_start_mesh)
+ ieee->ext_patch_rtllib_start_mesh(ieee);
+}
+#endif
+
+
+#define DRV_NAME "Ieee80211"
+void rtllib_softmac_init(struct rtllib_device *ieee)
+{
+ int i;
+ memset(&ieee->current_network, 0, sizeof(struct rtllib_network));
+
+ ieee->state = RTLLIB_NOLINK;
+#ifdef _RTL8192_EXT_PATCH_
+ ieee->mesh_state = RTLLIB_NOLINK;
+#endif
+ for(i = 0; i < 5; i++) {
+ ieee->seq_ctrl[i] = 0;
+ }
+#ifdef ENABLE_DOT11D
+ ieee->pDot11dInfo = kmalloc(sizeof(RT_DOT11D_INFO), GFP_ATOMIC);
+ if (!ieee->pDot11dInfo)
+ RTLLIB_DEBUG(RTLLIB_DL_ERR, "can't alloc memory for DOT11D\n");
+ memset(ieee->pDot11dInfo, 0, sizeof(RT_DOT11D_INFO));
+#endif
+ ieee->LinkDetectInfo.SlotIndex = 0;
+ ieee->LinkDetectInfo.SlotNum = 2;
+ ieee->LinkDetectInfo.NumRecvBcnInPeriod=0;
+ ieee->LinkDetectInfo.NumRecvDataInPeriod=0;
+ ieee->LinkDetectInfo.NumTxOkInPeriod =0;
+ ieee->LinkDetectInfo.NumRxOkInPeriod =0;
+ ieee->LinkDetectInfo.NumRxUnicastOkInPeriod=0;
+#ifdef _RTL8192_EXT_PATCH_
+ ieee->LinkDetectInfo.LastNumRxUnicast = 0;
+ ieee->LinkDetectInfo.LastNumTxUnicast = 0;
+ ieee->LinkDetectInfo.IdleCount = 0;
+#endif
+ ieee->bIsAggregateFrame = false;
+ ieee->assoc_id = 0;
+ ieee->queue_stop = 0;
+ ieee->scanning_continue = 0;
+ ieee->softmac_features = 0;
+ ieee->wap_set = 0;
+ ieee->ssid_set = 0;
+ ieee->proto_started = 0;
+ ieee->proto_stoppping = 0;
+ ieee->basic_rate = RTLLIB_DEFAULT_BASIC_RATE;
+ ieee->rate = 22;
+ ieee->ps = RTLLIB_PS_DISABLED;
+ ieee->sta_sleep = 0;
+
+#ifdef _RTL8192_EXT_PATCH_
+ ieee->mesh_started = 0;
+#endif
+ ieee->Regdot11HTOperationalRateSet[0]= 0xff;
+ ieee->Regdot11HTOperationalRateSet[1]= 0xff;
+ ieee->Regdot11HTOperationalRateSet[4]= 0x01;
+
+ ieee->Regdot11TxHTOperationalRateSet[0]= 0xff;
+ ieee->Regdot11TxHTOperationalRateSet[1]= 0xff;
+ ieee->Regdot11TxHTOperationalRateSet[4]= 0x01;
+
+ ieee->FirstIe_InScan = false;
+ ieee->actscanning = false;
+ ieee->beinretry = false;
+ ieee->is_set_key = false;
+ init_mgmt_queue(ieee);
+
+ ieee->sta_edca_param[0] = 0x0000A403;
+ ieee->sta_edca_param[1] = 0x0000A427;
+ ieee->sta_edca_param[2] = 0x005E4342;
+ ieee->sta_edca_param[3] = 0x002F3262;
+ ieee->aggregation = true;
+ ieee->enable_rx_imm_BA = 1;
+#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,5,40)
+ _setup_timer(&ieee->scan_timer,
+ rtllib_softmac_scan_cb,
+ (unsigned long) ieee);
+#endif
+ ieee->tx_pending.txb = NULL;
+
+ _setup_timer(&ieee->associate_timer,
+ rtllib_associate_abort_cb,
+ (unsigned long) ieee);
+
+ _setup_timer(&ieee->beacon_timer,
+ rtllib_send_beacon_cb,
+ (unsigned long) ieee);
+
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ _setup_timer(&ieee->ibss_wait_timer,
+ rtllib_ibss_wait_timeout,
+ (unsigned long) ieee);
+#endif
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+#ifdef PF_SYNCTHREAD
+ ieee->wq = create_workqueue(DRV_NAME,0);
+#else
+ ieee->wq = create_workqueue(DRV_NAME);
+#endif
+#endif
+
+ INIT_DELAYED_WORK_RSL(&ieee->link_change_wq,(void*)rtllib_link_change_wq,ieee);
+ INIT_DELAYED_WORK_RSL(&ieee->start_ibss_wq,(void*)rtllib_start_ibss_wq,ieee);
+ INIT_WORK_RSL(&ieee->associate_complete_wq, (void*)rtllib_associate_complete_wq,ieee);
+ INIT_DELAYED_WORK_RSL(&ieee->associate_procedure_wq, (void*)rtllib_associate_procedure_wq,ieee);
+ INIT_DELAYED_WORK_RSL(&ieee->softmac_scan_wq,(void*)rtllib_softmac_scan_wq,ieee);
+ INIT_DELAYED_WORK_RSL(&ieee->softmac_hint11d_wq,(void*)rtllib_softmac_hint11d_wq,ieee);
+ INIT_DELAYED_WORK_RSL(&ieee->associate_retry_wq, (void*)rtllib_associate_retry_wq,ieee);
+ INIT_WORK_RSL(&ieee->wx_sync_scan_wq,(void*)rtllib_wx_sync_scan_wq,ieee);
+
+#ifdef _RTL8192_EXT_PATCH_
+ INIT_WORK_RSL(&ieee->ext_stop_scan_wq,(void*) rtllib_ext_stop_scan_wq,ieee);
+ INIT_WORK_RSL(&ieee->ext_send_beacon_wq,(void*) ext_rtllib_send_beacon_wq,ieee);
+#endif
+
+ sema_init(&ieee->wx_sem, 1);
+ sema_init(&ieee->scan_sem, 1);
+ sema_init(&ieee->ips_sem,1);
+
+ spin_lock_init(&ieee->mgmt_tx_lock);
+ spin_lock_init(&ieee->beacon_lock);
+
+ tasklet_init(&ieee->ps_task,
+ (void(*)(unsigned long)) rtllib_sta_ps,
+ (unsigned long)ieee);
+
+}
+
+void rtllib_softmac_free(struct rtllib_device *ieee)
+{
+ down(&ieee->wx_sem);
+#ifdef ENABLE_DOT11D
+ if(NULL != ieee->pDot11dInfo)
+ {
+ kfree(ieee->pDot11dInfo);
+ ieee->pDot11dInfo = NULL;
+ }
+#endif
+ del_timer_sync(&ieee->associate_timer);
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ cancel_delayed_work(&ieee->associate_retry_wq);
+ destroy_workqueue(ieee->wq);
+#endif
+
+ up(&ieee->wx_sem);
+}
+
+/********************************************************
+ * Start of WPA code. *
+ * this is stolen from the ipw2200 driver *
+ ********************************************************/
+
+
+static int rtllib_wpa_enable(struct rtllib_device *ieee, int value)
+{
+ /* This is called when wpa_supplicant loads and closes the driver
+ * interface. */
+ printk("%s WPA\n",value ? "enabling" : "disabling");
+ ieee->wpa_enabled = value;
+ memset(ieee->ap_mac_addr, 0, 6);
+ return 0;
+}
+
+
+void rtllib_wpa_assoc_frame(struct rtllib_device *ieee, char *wpa_ie, int wpa_ie_len)
+{
+ /* make sure WPA is enabled */
+ rtllib_wpa_enable(ieee, 1);
+
+ rtllib_disassociate(ieee);
+}
+
+
+static int rtllib_wpa_mlme(struct rtllib_device *ieee, int command, int reason)
+{
+
+ int ret = 0;
+
+ switch (command) {
+ case IEEE_MLME_STA_DEAUTH:
+ break;
+
+ case IEEE_MLME_STA_DISASSOC:
+ rtllib_disassociate(ieee);
+ break;
+
+ default:
+ printk("Unknown MLME request: %d\n", command);
+ ret = -EOPNOTSUPP;
+ }
+
+ return ret;
+}
+
+
+static int rtllib_wpa_set_wpa_ie(struct rtllib_device *ieee,
+ struct ieee_param *param, int plen)
+{
+ u8 *buf;
+
+ if (param->u.wpa_ie.len > MAX_WPA_IE_LEN ||
+ (param->u.wpa_ie.len && param->u.wpa_ie.data == NULL))
+ return -EINVAL;
+
+ if (param->u.wpa_ie.len) {
+ buf = kmalloc(param->u.wpa_ie.len, GFP_KERNEL);
+ if (buf == NULL)
+ return -ENOMEM;
+
+ memcpy(buf, param->u.wpa_ie.data, param->u.wpa_ie.len);
+ kfree(ieee->wpa_ie);
+ ieee->wpa_ie = buf;
+ ieee->wpa_ie_len = param->u.wpa_ie.len;
+ } else {
+ kfree(ieee->wpa_ie);
+ ieee->wpa_ie = NULL;
+ ieee->wpa_ie_len = 0;
+ }
+
+ rtllib_wpa_assoc_frame(ieee, ieee->wpa_ie, ieee->wpa_ie_len);
+ return 0;
+}
+
+#define AUTH_ALG_OPEN_SYSTEM 0x1
+#define AUTH_ALG_SHARED_KEY 0x2
+#define AUTH_ALG_LEAP 0x4
+static int rtllib_wpa_set_auth_algs(struct rtllib_device *ieee, int value)
+{
+
+ struct rtllib_security sec = {
+ .flags = SEC_AUTH_MODE,
+ };
+ int ret = 0;
+
+ if (value & AUTH_ALG_SHARED_KEY) {
+ sec.auth_mode = WLAN_AUTH_SHARED_KEY;
+ ieee->open_wep = 0;
+ ieee->auth_mode = 1;
+ } else if (value & AUTH_ALG_OPEN_SYSTEM){
+ sec.auth_mode = WLAN_AUTH_OPEN;
+ ieee->open_wep = 1;
+ ieee->auth_mode = 0;
+ }
+ else if (value & AUTH_ALG_LEAP){
+ sec.auth_mode = WLAN_AUTH_LEAP >> 6;
+ ieee->open_wep = 1;
+ ieee->auth_mode = 2;
+ }
+
+
+ if (ieee->set_security)
+ ieee->set_security(ieee->dev, &sec);
+
+ return ret;
+}
+
+static int rtllib_wpa_set_param(struct rtllib_device *ieee, u8 name, u32 value)
+{
+ int ret=0;
+ unsigned long flags;
+
+ switch (name) {
+ case IEEE_PARAM_WPA_ENABLED:
+ ret = rtllib_wpa_enable(ieee, value);
+ break;
+
+ case IEEE_PARAM_TKIP_COUNTERMEASURES:
+ ieee->tkip_countermeasures=value;
+ break;
+
+ case IEEE_PARAM_DROP_UNENCRYPTED:
+ {
+ /* HACK:
+ *
+ * wpa_supplicant calls set_wpa_enabled when the driver
+ * is loaded and unloaded, regardless of if WPA is being
+ * used. No other calls are made which can be used to
+ * determine if encryption will be used or not prior to
+ * association being expected. If encryption is not being
+ * used, drop_unencrypted is set to false, else true -- we
+ * can use this to determine if the CAP_PRIVACY_ON bit should
+ * be set.
+ */
+ struct rtllib_security sec = {
+ .flags = SEC_ENABLED,
+ .enabled = value,
+ };
+ ieee->drop_unencrypted = value;
+ /* We only change SEC_LEVEL for open mode. Others
+ * are set by ipw_wpa_set_encryption.
+ */
+ if (!value) {
+ sec.flags |= SEC_LEVEL;
+ sec.level = SEC_LEVEL_0;
+ }
+ else {
+ sec.flags |= SEC_LEVEL;
+ sec.level = SEC_LEVEL_1;
+ }
+ if (ieee->set_security)
+ ieee->set_security(ieee->dev, &sec);
+ break;
+ }
+
+ case IEEE_PARAM_PRIVACY_INVOKED:
+ ieee->privacy_invoked=value;
+ break;
+
+ case IEEE_PARAM_AUTH_ALGS:
+ ret = rtllib_wpa_set_auth_algs(ieee, value);
+ break;
+
+ case IEEE_PARAM_IEEE_802_1X:
+ ieee->ieee802_1x=value;
+ break;
+ case IEEE_PARAM_WPAX_SELECT:
+ spin_lock_irqsave(&ieee->wpax_suitlist_lock,flags);
+ spin_unlock_irqrestore(&ieee->wpax_suitlist_lock,flags);
+ break;
+
+ default:
+ printk("Unknown WPA param: %d\n",name);
+ ret = -EOPNOTSUPP;
+ }
+
+ return ret;
+}
+
+/* implementation borrowed from hostap driver */
+
+#ifdef _RTL8192_EXT_PATCH_
+static int rtllib_wpa_set_encryption(struct rtllib_device *ieee,
+ struct ieee_param *param, int param_len, u8 is_mesh)
+#else
+static int rtllib_wpa_set_encryption(struct rtllib_device *ieee,
+ struct ieee_param *param, int param_len)
+#endif
+{
+ int ret = 0;
+#ifdef _RTL8192_EXT_PATCH_
+ u8 i = 0;
+#endif
+ struct rtllib_crypto_ops *ops;
+ struct rtllib_crypt_data **crypt;
+
+ struct rtllib_security sec = {
+ .flags = 0,
+ };
+
+ param->u.crypt.err = 0;
+ param->u.crypt.alg[IEEE_CRYPT_ALG_NAME_LEN - 1] = '\0';
+
+ if (param_len !=
+ (int) ((char *) param->u.crypt.key - (char *) param) +
+ param->u.crypt.key_len) {
+ printk("Len mismatch %d, %d\n", param_len,
+ param->u.crypt.key_len);
+ return -EINVAL;
+ }
+ if (param->sta_addr[0] == 0xff && param->sta_addr[1] == 0xff &&
+ param->sta_addr[2] == 0xff && param->sta_addr[3] == 0xff &&
+ param->sta_addr[4] == 0xff && param->sta_addr[5] == 0xff) {
+ if (param->u.crypt.idx >= WEP_KEYS)
+ return -EINVAL;
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ crypt = &ieee->cryptlist[0]->crypt[param->u.crypt.idx];
+ else
+ crypt = &ieee->sta_crypt[param->u.crypt.idx];
+#else
+ crypt = &ieee->crypt[param->u.crypt.idx];
+#endif
+ } else {
+ return -EINVAL;
+ }
+
+ if (strcmp(param->u.crypt.alg, "none") == 0) {
+ if (crypt) {
+ sec.enabled = 0;
+ sec.level = SEC_LEVEL_0;
+ sec.flags |= SEC_ENABLED | SEC_LEVEL;
+ rtllib_crypt_delayed_deinit(ieee, crypt);
+ }
+ goto done;
+ }
+ sec.enabled = 1;
+ sec.flags |= SEC_ENABLED;
+
+ /* IPW HW cannot build TKIP MIC, host decryption still needed. */
+ if (!(ieee->host_encrypt || ieee->host_decrypt) &&
+ strcmp(param->u.crypt.alg, "TKIP"))
+ goto skip_host_crypt;
+
+ ops = rtllib_get_crypto_ops(param->u.crypt.alg);
+ if (ops == NULL && strcmp(param->u.crypt.alg, "WEP") == 0) {
+ request_module("rtllib_crypt_wep");
+ ops = rtllib_get_crypto_ops(param->u.crypt.alg);
+ } else if (ops == NULL && strcmp(param->u.crypt.alg, "TKIP") == 0) {
+ request_module("rtllib_crypt_tkip");
+ ops = rtllib_get_crypto_ops(param->u.crypt.alg);
+ } else if (ops == NULL && strcmp(param->u.crypt.alg, "CCMP") == 0) {
+ request_module("rtllib_crypt_ccmp");
+ ops = rtllib_get_crypto_ops(param->u.crypt.alg);
+ }
+ if (ops == NULL) {
+ printk("unknown crypto alg '%s'\n", param->u.crypt.alg);
+ param->u.crypt.err = IEEE_CRYPT_ERR_UNKNOWN_ALG;
+ ret = -EINVAL;
+ goto done;
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ {
+ for (i=0; i<MAX_MP; i++){
+ crypt = &ieee->cryptlist[i]->crypt[param->u.crypt.idx];
+
+ *crypt = ieee->cryptlist[i]->crypt[param->u.crypt.idx];
+ }
+#endif
+
+ if (*crypt == NULL || (*crypt)->ops != ops) {
+ struct rtllib_crypt_data *new_crypt;
+
+ rtllib_crypt_delayed_deinit(ieee, crypt);
+
+ new_crypt = (struct rtllib_crypt_data *)
+ kmalloc(sizeof(*new_crypt), GFP_KERNEL);
+ if (new_crypt == NULL) {
+ ret = -ENOMEM;
+ goto done;
+ }
+ memset(new_crypt, 0, sizeof(struct rtllib_crypt_data));
+ new_crypt->ops = ops;
+#ifdef BUILT_IN_RTLLIB
+ if (new_crypt->ops)
+#else
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+ if (new_crypt->ops && try_module_get(new_crypt->ops->owner))
+#else
+ if (new_crypt->ops && try_inc_mod_count(new_crypt->ops->owner))
+#endif
+#endif
+ new_crypt->priv =
+ new_crypt->ops->init(param->u.crypt.idx);
+
+ if (new_crypt->priv == NULL) {
+ kfree(new_crypt);
+ param->u.crypt.err = IEEE_CRYPT_ERR_CRYPT_INIT_FAILED;
+ ret = -EINVAL;
+ goto done;
+ }
+
+ *crypt = new_crypt;
+ }
+
+ if (param->u.crypt.key_len > 0 && (*crypt)->ops->set_key &&
+ (*crypt)->ops->set_key(param->u.crypt.key,
+ param->u.crypt.key_len, param->u.crypt.seq,
+ (*crypt)->priv) < 0) {
+ printk("key setting failed\n");
+ param->u.crypt.err = IEEE_CRYPT_ERR_KEY_SET_FAILED;
+ ret = -EINVAL;
+ goto done;
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ }
+#endif
+
+ skip_host_crypt:
+ if (param->u.crypt.set_tx) {
+ ieee->tx_keyidx = param->u.crypt.idx;
+ sec.active_key = param->u.crypt.idx;
+ sec.flags |= SEC_ACTIVE_KEY;
+ } else
+ sec.flags &= ~SEC_ACTIVE_KEY;
+
+ if (param->u.crypt.alg != NULL) {
+ memcpy(sec.keys[param->u.crypt.idx],
+ param->u.crypt.key,
+ param->u.crypt.key_len);
+ sec.key_sizes[param->u.crypt.idx] = param->u.crypt.key_len;
+ sec.flags |= (1 << param->u.crypt.idx);
+
+ if (strcmp(param->u.crypt.alg, "WEP") == 0) {
+ sec.flags |= SEC_LEVEL;
+ sec.level = SEC_LEVEL_1;
+ } else if (strcmp(param->u.crypt.alg, "TKIP") == 0) {
+ sec.flags |= SEC_LEVEL;
+ sec.level = SEC_LEVEL_2;
+ } else if (strcmp(param->u.crypt.alg, "CCMP") == 0) {
+ sec.flags |= SEC_LEVEL;
+ sec.level = SEC_LEVEL_3;
+ }
+ }
+ done:
+ if (ieee->set_security)
+ ieee->set_security(ieee->dev, &sec);
+
+#ifdef _RTL8192_EXT_PATCH_
+ if (ret != 0)
+ {
+ if(is_mesh)
+ {
+ for (i=0; i<MAX_MP; i++)
+ {
+ if (ieee->cryptlist[i]->crypt[param->u.crypt.idx]==NULL){
+ break;
+ }
+ else{
+ kfree(ieee->cryptlist[i]->crypt[param->u.crypt.idx]);
+ ieee->cryptlist[i]->crypt[param->u.crypt.idx] = NULL;
+ }
+ }
+ }
+ else
+ {
+ kfree(ieee->sta_crypt[param->u.crypt.idx]);
+ ieee->sta_crypt[param->u.crypt.idx] = NULL;
+ }
+ }
+#endif
+
+
+ /* Do not reset port if card is in Managed mode since resetting will
+ * generate new IEEE 802.11 authentication which may end up in looping
+ * with IEEE 802.1X. If your hardware requires a reset after WEP
+ * configuration (for example... Prism2), implement the reset_port in
+ * the callbacks structures used to initialize the 802.11 stack. */
+ if (ieee->reset_on_keychange &&
+ ieee->iw_mode != IW_MODE_INFRA &&
+ ieee->reset_port &&
+ ieee->reset_port(ieee->dev)) {
+ printk("reset_port failed\n");
+ param->u.crypt.err = IEEE_CRYPT_ERR_CARD_CONF_FAILED;
+ return -EINVAL;
+ }
+
+ return ret;
+}
+
+inline struct sk_buff *rtllib_disauth_skb( struct rtllib_network *beacon,
+ struct rtllib_device *ieee, u16 asRsn)
+{
+ struct sk_buff *skb;
+ struct rtllib_disauth *disauth;
+#ifdef USB_USE_ALIGNMENT
+ u32 Tmpaddr=0;
+ int alignment=0;
+ int len = sizeof(struct rtllib_disauth) + ieee->tx_headroom + USB_512B_ALIGNMENT_SIZE;
+#else
+ int len = sizeof(struct rtllib_disauth) + ieee->tx_headroom;
+
+#endif
+ skb = dev_alloc_skb(len);
+ if (!skb) {
+ return NULL;
+ }
+
+#ifdef USB_USE_ALIGNMENT
+ Tmpaddr = (u32)skb->data;
+ alignment = Tmpaddr & 0x1ff;
+ skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment));
+#endif
+ skb_reserve(skb, ieee->tx_headroom);
+
+ disauth = (struct rtllib_disauth *) skb_put(skb,sizeof(struct rtllib_disauth));
+ disauth->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_DEAUTH);
+ disauth->header.duration_id = 0;
+
+ memcpy(disauth->header.addr1, beacon->bssid, ETH_ALEN);
+ memcpy(disauth->header.addr2, ieee->dev->dev_addr, ETH_ALEN);
+ memcpy(disauth->header.addr3, beacon->bssid, ETH_ALEN);
+
+ disauth->reason = cpu_to_le16(asRsn);
+ return skb;
+}
+
+inline struct sk_buff *rtllib_disassociate_skb( struct rtllib_network *beacon,
+ struct rtllib_device *ieee, u16 asRsn)
+{
+ struct sk_buff *skb;
+ struct rtllib_disassoc *disass;
+#ifdef USB_USE_ALIGNMENT
+ u32 Tmpaddr=0;
+ int alignment=0;
+ int len = sizeof(struct rtllib_disassoc) + ieee->tx_headroom + USB_512B_ALIGNMENT_SIZE;
+#else
+ int len = sizeof(struct rtllib_disassoc) + ieee->tx_headroom;
+#endif
+ skb = dev_alloc_skb(len);
+
+ if (!skb) {
+ return NULL;
+ }
+
+#ifdef USB_USE_ALIGNMENT
+ Tmpaddr = (u32)skb->data;
+ alignment = Tmpaddr & 0x1ff;
+ skb_reserve(skb,(USB_512B_ALIGNMENT_SIZE - alignment));
+#endif
+ skb_reserve(skb, ieee->tx_headroom);
+
+ disass = (struct rtllib_disassoc *) skb_put(skb,sizeof(struct rtllib_disassoc));
+ disass->header.frame_ctl = cpu_to_le16(RTLLIB_STYPE_DISASSOC);
+ disass->header.duration_id = 0;
+
+ memcpy(disass->header.addr1, beacon->bssid, ETH_ALEN);
+ memcpy(disass->header.addr2, ieee->dev->dev_addr, ETH_ALEN);
+ memcpy(disass->header.addr3, beacon->bssid, ETH_ALEN);
+
+ disass->reason = cpu_to_le16(asRsn);
+ return skb;
+}
+
+void SendDisassociation(struct rtllib_device *ieee, bool deauth, u16 asRsn)
+{
+ struct rtllib_network *beacon = &ieee->current_network;
+ struct sk_buff *skb;
+
+ if(deauth) {
+ skb = rtllib_disauth_skb(beacon,ieee,asRsn);
+ } else {
+ skb = rtllib_disassociate_skb(beacon,ieee,asRsn);
+ }
+
+ if (skb){
+ softmac_mgmt_xmit(skb, ieee);
+ }
+}
+
+u8 rtllib_ap_sec_type(struct rtllib_device *ieee)
+{
+ static u8 ccmp_ie[4] = {0x00,0x50,0xf2,0x04};
+ static u8 ccmp_rsn_ie[4] = {0x00, 0x0f, 0xac, 0x04};
+ int wpa_ie_len= ieee->wpa_ie_len;
+ struct rtllib_crypt_data* crypt;
+ int encrypt;
+
+#ifdef _RTL8192_EXT_PATCH_
+ crypt = ieee->sta_crypt[ieee->tx_keyidx];
+#else
+ crypt = ieee->crypt[ieee->tx_keyidx];
+#endif
+ encrypt = (ieee->current_network.capability & WLAN_CAPABILITY_PRIVACY) ||\
+ (ieee->host_encrypt && crypt && crypt->ops && \
+ (0 == strcmp(crypt->ops->name,"WEP")));
+
+ /* simply judge */
+ if(encrypt && (wpa_ie_len == 0)) {
+ return SEC_ALG_WEP;
+ } else if((wpa_ie_len != 0)) {
+ if (((ieee->wpa_ie[0] == 0xdd) && (!memcmp(&(ieee->wpa_ie[14]),ccmp_ie,4))) ||
+ ((ieee->wpa_ie[0] == 0x30) && (!memcmp(&ieee->wpa_ie[10],ccmp_rsn_ie, 4))))
+ return SEC_ALG_CCMP;
+ else
+ return SEC_ALG_TKIP;
+ } else {
+ return SEC_ALG_NONE;
+ }
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+int rtllib_wpa_supplicant_ioctl(struct rtllib_device *ieee, struct iw_point *p, u8 is_mesh)
+#else
+int rtllib_wpa_supplicant_ioctl(struct rtllib_device *ieee, struct iw_point *p)
+#endif
+{
+ struct ieee_param *param;
+ int ret=0;
+
+ down(&ieee->wx_sem);
+
+ if (p->length < sizeof(struct ieee_param) || !p->pointer){
+ ret = -EINVAL;
+ goto out;
+ }
+
+ param = (struct ieee_param *)kmalloc(p->length, GFP_KERNEL);
+ if (param == NULL){
+ ret = -ENOMEM;
+ goto out;
+ }
+ if (copy_from_user(param, p->pointer, p->length)) {
+ kfree(param);
+ ret = -EFAULT;
+ goto out;
+ }
+
+ switch (param->cmd) {
+
+ case IEEE_CMD_SET_WPA_PARAM:
+ ret = rtllib_wpa_set_param(ieee, param->u.wpa_param.name,
+ param->u.wpa_param.value);
+ break;
+
+ case IEEE_CMD_SET_WPA_IE:
+ ret = rtllib_wpa_set_wpa_ie(ieee, param, p->length);
+ break;
+
+ case IEEE_CMD_SET_ENCRYPTION:
+#ifdef _RTL8192_EXT_PATCH_
+ ret = rtllib_wpa_set_encryption(ieee, param, p->length, is_mesh);
+#else
+ ret = rtllib_wpa_set_encryption(ieee, param, p->length);
+#endif
+ break;
+
+ case IEEE_CMD_MLME:
+ ret = rtllib_wpa_mlme(ieee, param->u.mlme.command,
+ param->u.mlme.reason_code);
+ break;
+
+ default:
+ printk("Unknown WPA supplicant request: %d\n",param->cmd);
+ ret = -EOPNOTSUPP;
+ break;
+ }
+
+ if (ret == 0 && copy_to_user(p->pointer, param, p->length))
+ ret = -EFAULT;
+
+ kfree(param);
+out:
+ up(&ieee->wx_sem);
+
+ return ret;
+}
+
+void notify_wx_assoc_event(struct rtllib_device *ieee)
+{
+ union iwreq_data wrqu;
+
+ if(ieee->cannot_notify)
+ return;
+
+ wrqu.ap_addr.sa_family = ARPHRD_ETHER;
+ if (ieee->state == RTLLIB_LINKED)
+ memcpy(wrqu.ap_addr.sa_data, ieee->current_network.bssid, ETH_ALEN);
+ else{
+
+ printk("%s(): Tell user space disconnected\n",__func__);
+ memset(wrqu.ap_addr.sa_data, 0, ETH_ALEN);
+ }
+ wireless_send_event(ieee->dev, SIOCGIWAP, &wrqu, NULL);
+}
+
+#ifndef BUILT_IN_RTLLIB
+EXPORT_SYMBOL_RSL(rtllib_get_beacon);
+EXPORT_SYMBOL_RSL(rtllib_wake_queue);
+EXPORT_SYMBOL_RSL(rtllib_stop_queue);
+EXPORT_SYMBOL_RSL(rtllib_reset_queue);
+EXPORT_SYMBOL_RSL(rtllib_softmac_stop_protocol);
+EXPORT_SYMBOL_RSL(rtllib_softmac_start_protocol);
+EXPORT_SYMBOL_RSL(rtllib_is_shortslot);
+EXPORT_SYMBOL_RSL(rtllib_is_54g);
+EXPORT_SYMBOL_RSL(rtllib_wpa_supplicant_ioctl);
+EXPORT_SYMBOL_RSL(rtllib_ps_tx_ack);
+EXPORT_SYMBOL_RSL(rtllib_softmac_xmit);
+EXPORT_SYMBOL_RSL(rtllib_stop_send_beacons);
+EXPORT_SYMBOL_RSL(notify_wx_assoc_event);
+EXPORT_SYMBOL_RSL(SendDisassociation);
+EXPORT_SYMBOL_RSL(rtllib_disassociate);
+EXPORT_SYMBOL_RSL(rtllib_start_send_beacons);
+EXPORT_SYMBOL_RSL(rtllib_stop_scan);
+EXPORT_SYMBOL_RSL(rtllib_send_probe_requests);
+EXPORT_SYMBOL_RSL(rtllib_softmac_scan_syncro);
+EXPORT_SYMBOL_RSL(rtllib_start_scan_syncro);
+EXPORT_SYMBOL_RSL(rtllib_sta_ps_send_null_frame);
+EXPORT_SYMBOL_RSL(rtllib_sta_ps_send_pspoll_frame);
+EXPORT_SYMBOL_RSL(rtllib_sta_wakeup);
+EXPORT_SYMBOL_RSL(rtllib_ap_sec_type);
+#ifdef _RTL8192_EXT_PATCH_
+EXPORT_SYMBOL_RSL(rtllib_MFIE_rate_len);
+EXPORT_SYMBOL_RSL(rtllib_MFIE_Brate);
+EXPORT_SYMBOL_RSL(rtllib_MFIE_Grate);
+EXPORT_SYMBOL_RSL(rtllib_WMM_Info);
+EXPORT_SYMBOL_RSL(rtllib_TURBO_Info);
+EXPORT_SYMBOL_RSL(rtllib_ext_probe_resp_by_net);
+EXPORT_SYMBOL_RSL(softmac_mgmt_xmit);
+EXPORT_SYMBOL_RSL(rtllib_start_scan);
+EXPORT_SYMBOL_RSL(rtllib_ext_send_11s_beacon);
+EXPORT_SYMBOL_RSL(rtllib_rx_auth_rq);
+EXPORT_SYMBOL_RSL(rtllib_associate_step1);
+EXPORT_SYMBOL_RSL(rtllib_stop_protocol);
+EXPORT_SYMBOL_RSL(rtllib_start_protocol);
+EXPORT_SYMBOL_RSL(rtllib_resp_to_auth);
+
+#endif
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/rtllib_softmac_wx.c b/ubuntu/rtl8192se/rtllib/rtllib_softmac_wx.c
new file mode 100755
index 00000000000..67e097c69be
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtllib_softmac_wx.c
@@ -0,0 +1,769 @@
+/* IEEE 802.11 SoftMAC layer
+ * Copyright (c) 2005 Andrea Merello <andreamrl@tiscali.it>
+ *
+ * Mostly extracted from the rtl8180-sa2400 driver for the
+ * in-kernel generic ieee802.11 stack.
+ *
+ * Some pieces of code might be stolen from ipw2100 driver
+ * copyright of who own it's copyright ;-)
+ *
+ * PS wx handler mostly stolen from hostap, copyright who
+ * own it's copyright ;-)
+ *
+ * released under the GPL
+ */
+
+
+#include "rtllib.h"
+#ifdef ENABLE_DOT11D
+#include "dot11d.h"
+#endif
+/* FIXME: add A freqs */
+
+const long rtllib_wlan_frequencies[] = {
+ 2412, 2417, 2422, 2427,
+ 2432, 2437, 2442, 2447,
+ 2452, 2457, 2462, 2467,
+ 2472, 2484
+};
+
+
+int rtllib_wx_set_freq(struct rtllib_device *ieee, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b)
+{
+ int ret;
+ struct iw_freq *fwrq = & wrqu->freq;
+
+ down(&ieee->wx_sem);
+
+ if(ieee->iw_mode == IW_MODE_INFRA){
+ ret = 0;
+ goto out;
+ }
+
+ /* if setting by freq convert to channel */
+ if (fwrq->e == 1) {
+ if ((fwrq->m >= (int) 2.412e8 &&
+ fwrq->m <= (int) 2.487e8)) {
+ int f = fwrq->m / 100000;
+ int c = 0;
+
+ while ((c < 14) && (f != rtllib_wlan_frequencies[c]))
+ c++;
+
+ /* hack to fall through */
+ fwrq->e = 0;
+ fwrq->m = c + 1;
+ }
+ }
+
+ if (fwrq->e > 0 || fwrq->m > 14 || fwrq->m < 1 ){
+ ret = -EOPNOTSUPP;
+ goto out;
+
+ }else { /* Set the channel */
+
+#ifdef ENABLE_DOT11D
+ if (ieee->active_channel_map[fwrq->m] != 1) {
+ ret = -EINVAL;
+ goto out;
+ }
+#endif
+ ieee->current_network.channel = fwrq->m;
+ ieee->set_chan(ieee->dev, ieee->current_network.channel);
+
+ if(ieee->iw_mode == IW_MODE_ADHOC || ieee->iw_mode == IW_MODE_MASTER)
+ if(ieee->state == RTLLIB_LINKED){
+
+ rtllib_stop_send_beacons(ieee);
+ rtllib_start_send_beacons(ieee);
+ }
+ }
+
+ ret = 0;
+out:
+ up(&ieee->wx_sem);
+ return ret;
+}
+
+
+#ifdef _RTL8192_EXT_PATCH_
+int rtllib_wx_get_freq(struct rtllib_device *ieee,
+ struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b, u8 is_mesh)
+#else
+int rtllib_wx_get_freq(struct rtllib_device *ieee,
+ struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b)
+#endif
+{
+ struct iw_freq *fwrq = & wrqu->freq;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ {
+ if (ieee->current_mesh_network.channel == 0)
+ return -1;
+ fwrq->m = rtllib_wlan_frequencies[ieee->current_mesh_network.channel-1] * 100000;
+ fwrq->e = 1;
+ }
+ else
+#endif
+ {
+ if (ieee->current_network.channel == 0)
+ return -1;
+ fwrq->m = rtllib_wlan_frequencies[ieee->current_network.channel-1] * 100000;
+ fwrq->e = 1;
+ }
+ return 0;
+}
+
+int rtllib_wx_get_wap(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ unsigned long flags;
+
+ wrqu->ap_addr.sa_family = ARPHRD_ETHER;
+
+ if (ieee->iw_mode == IW_MODE_MONITOR)
+ return -1;
+
+ /* We want avoid to give to the user inconsistent infos*/
+ spin_lock_irqsave(&ieee->lock, flags);
+
+ if (ieee->state != RTLLIB_LINKED &&
+ ieee->state != RTLLIB_LINKED_SCANNING &&
+ ieee->wap_set == 0)
+
+ memset(wrqu->ap_addr.sa_data, 0, ETH_ALEN);
+ else
+ memcpy(wrqu->ap_addr.sa_data,
+ ieee->current_network.bssid, ETH_ALEN);
+
+ spin_unlock_irqrestore(&ieee->lock, flags);
+
+ return 0;
+}
+
+
+int rtllib_wx_set_wap(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *awrq,
+ char *extra)
+{
+
+ int ret = 0;
+ u8 zero[] = {0,0,0,0,0,0};
+ unsigned long flags;
+
+ short ifup = ieee->proto_started;
+ struct sockaddr *temp = (struct sockaddr *)awrq;
+
+ rtllib_stop_scan_syncro(ieee);
+
+ down(&ieee->wx_sem);
+ /* use ifconfig hw ether */
+ if (ieee->iw_mode == IW_MODE_MASTER){
+ ret = -1;
+ goto out;
+ }
+
+ if (temp->sa_family != ARPHRD_ETHER){
+ ret = -EINVAL;
+ goto out;
+ }
+
+ if (memcmp(temp->sa_data, zero,ETH_ALEN) == 0){
+ spin_lock_irqsave(&ieee->lock, flags);
+ memcpy(ieee->current_network.bssid, temp->sa_data, ETH_ALEN);
+ ieee->wap_set = 0;
+ spin_unlock_irqrestore(&ieee->lock, flags);
+ ret = -1;
+ goto out;
+ }
+
+
+ if (ifup)
+ rtllib_stop_protocol(ieee,true);
+
+ /* just to avoid to give inconsistent infos in the
+ * get wx method. not really needed otherwise
+ */
+ spin_lock_irqsave(&ieee->lock, flags);
+
+ ieee->cannot_notify = false;
+ memcpy(ieee->current_network.bssid, temp->sa_data, ETH_ALEN);
+ ieee->wap_set = (memcmp(temp->sa_data, zero,ETH_ALEN)!=0);
+
+ spin_unlock_irqrestore(&ieee->lock, flags);
+
+ if (ifup)
+ rtllib_start_protocol(ieee);
+out:
+ up(&ieee->wx_sem);
+ return ret;
+}
+
+ int rtllib_wx_get_essid(struct rtllib_device *ieee, struct iw_request_info *a,union iwreq_data *wrqu,char *b)
+{
+ int len,ret = 0;
+ unsigned long flags;
+
+ if (ieee->iw_mode == IW_MODE_MONITOR)
+ return -1;
+
+ /* We want avoid to give to the user inconsistent infos*/
+ spin_lock_irqsave(&ieee->lock, flags);
+
+ if (ieee->current_network.ssid[0] == '\0' ||
+ ieee->current_network.ssid_len == 0){
+ ret = -1;
+ goto out;
+ }
+
+ if (ieee->state != RTLLIB_LINKED &&
+ ieee->state != RTLLIB_LINKED_SCANNING &&
+ ieee->ssid_set == 0){
+ ret = -1;
+ goto out;
+ }
+ len = ieee->current_network.ssid_len;
+ wrqu->essid.length = len;
+ strncpy(b,ieee->current_network.ssid,len);
+ wrqu->essid.flags = 1;
+
+out:
+ spin_unlock_irqrestore(&ieee->lock, flags);
+
+ return ret;
+
+}
+
+int rtllib_wx_set_rate(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+
+ u32 target_rate = wrqu->bitrate.value;
+
+ ieee->rate = target_rate/100000;
+ return 0;
+}
+
+int rtllib_wx_get_rate(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ u32 tmp_rate = 0;
+#if defined RTL8192SU|| defined RTL8192CE
+ if (ieee->mode & (IEEE_A | IEEE_B | IEEE_G))
+ tmp_rate = ieee->rate;
+ else if (ieee->mode & IEEE_N_5G)
+ tmp_rate = 580;
+ else if (ieee->mode & IEEE_N_24G) {
+ if (ieee->GetHalfNmodeSupportByAPsHandler(ieee->dev))
+ tmp_rate = HTHalfMcsToDataRate(ieee, 15);
+ else
+ tmp_rate = HTMcsToDataRate(ieee, 15);
+ }
+#elif defined RTL8192SE
+ tmp_rate = ieee->rtl_11n_user_show_rates(ieee->dev);
+#else
+ tmp_rate = TxCountToDataRate(ieee, ieee->softmac_stats.CurrentShowTxate);
+#endif
+ wrqu->bitrate.value = tmp_rate * 500000;
+
+ return 0;
+}
+
+
+int rtllib_wx_set_rts(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ if (wrqu->rts.disabled || !wrqu->rts.fixed)
+ ieee->rts = DEFAULT_RTS_THRESHOLD;
+ else
+ {
+ if (wrqu->rts.value < MIN_RTS_THRESHOLD ||
+ wrqu->rts.value > MAX_RTS_THRESHOLD)
+ return -EINVAL;
+ ieee->rts = wrqu->rts.value;
+ }
+ return 0;
+}
+
+int rtllib_wx_get_rts(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ wrqu->rts.value = ieee->rts;
+ wrqu->rts.fixed = 0; /* no auto select */
+ wrqu->rts.disabled = (wrqu->rts.value == DEFAULT_RTS_THRESHOLD);
+ return 0;
+}
+
+int rtllib_wx_set_mode(struct rtllib_device *ieee, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b)
+{
+ int set_mode_status = 0;
+
+ rtllib_stop_scan_syncro(ieee);
+ down(&ieee->wx_sem);
+ switch (wrqu->mode) {
+ case IW_MODE_MONITOR:
+ case IW_MODE_ADHOC:
+ case IW_MODE_INFRA:
+#ifdef _RTL8192_EXT_PATCH_
+ case IW_MODE_MESH:
+#endif
+ break;
+ case IW_MODE_AUTO:
+ wrqu->mode = IW_MODE_INFRA;
+ break;
+ default:
+ set_mode_status = -EINVAL;
+ goto out;
+ }
+
+ if (wrqu->mode == ieee->iw_mode)
+ goto out;
+
+ if (wrqu->mode == IW_MODE_MONITOR) {
+#ifdef CONFIG_RTL819x_RADIOTAP
+ ieee->dev->type = ARPHRD_IEEE80211_RADIOTAP;
+#else
+ ieee->dev->type = ARPHRD_IEEE80211;
+#endif
+ rtllib_EnableNetMonitorMode(ieee->dev,false);
+
+ } else {
+ ieee->dev->type = ARPHRD_ETHER;
+ if (ieee->iw_mode == IW_MODE_MONITOR)
+ rtllib_DisableNetMonitorMode(ieee->dev,false);
+ }
+
+ if (!ieee->proto_started) {
+ ieee->iw_mode = wrqu->mode;
+ } else {
+ rtllib_stop_protocol(ieee,true);
+ ieee->iw_mode = wrqu->mode;
+#if defined (RTL8192S_WAPI_SUPPORT)
+ if(ieee->iw_mode == IW_MODE_ADHOC)
+ ieee->wapiInfo.bWapiPSK = true;
+#endif
+ rtllib_start_protocol(ieee);
+ }
+
+out:
+ up(&ieee->wx_sem);
+ return set_mode_status;
+}
+
+void rtllib_wx_sync_scan_wq(void *data)
+{
+ struct rtllib_device *ieee = container_of_work_rsl(data, struct rtllib_device, wx_sync_scan_wq);
+ short chan;
+ HT_EXTCHNL_OFFSET chan_offset=0;
+ HT_CHANNEL_WIDTH bandwidth=0;
+ int b40M = 0;
+ static int count = 0;
+
+ if (!(ieee->softmac_features & IEEE_SOFTMAC_SCAN)){
+ rtllib_start_scan_syncro(ieee, 0);
+ goto out;
+ }
+
+ chan = ieee->current_network.channel;
+
+#ifdef ENABLE_LPS
+ if (ieee->LeisurePSLeave) {
+ ieee->LeisurePSLeave(ieee->dev);
+ }
+ /* notify AP to be in PS mode */
+ rtllib_sta_ps_send_null_frame(ieee, 1);
+ rtllib_sta_ps_send_null_frame(ieee, 1);
+#endif
+
+ rtllib_stop_all_queues(ieee);
+
+ if (ieee->data_hard_stop)
+ ieee->data_hard_stop(ieee->dev);
+ rtllib_stop_send_beacons(ieee);
+ ieee->state = RTLLIB_LINKED_SCANNING;
+ ieee->link_change(ieee->dev);
+ /* wait for ps packet to be kicked out successfully */
+ msleep(50);
+
+#if !(defined RTL8192SE ||defined RTL8192CE)
+ ieee->InitialGainHandler(ieee->dev,IG_Backup);
+#endif
+#if defined(RTL8192SE)
+#if(RTL8192S_DISABLE_FW_DM == 0)
+ if (ieee->SetFwCmdHandler) {
+ ieee->SetFwCmdHandler(ieee->dev, FW_CMD_PAUSE_DM_BY_SCAN);
+ }
+#endif
+#endif
+#if defined RTL8192SU || defined RTL8192CE
+ ieee->ScanOperationBackupHandler(ieee->dev,SCAN_OPT_BACKUP);
+#endif
+
+ if (ieee->pHTInfo->bCurrentHTSupport && ieee->pHTInfo->bEnableHT && ieee->pHTInfo->bCurBW40MHz) {
+ b40M = 1;
+ chan_offset = ieee->pHTInfo->CurSTAExtChnlOffset;
+ bandwidth = (HT_CHANNEL_WIDTH)ieee->pHTInfo->bCurBW40MHz;
+ printk("Scan in 40M, force to 20M first:%d, %d\n", chan_offset, bandwidth);
+ ieee->SetBWModeHandler(ieee->dev, HT_CHANNEL_WIDTH_20, HT_EXTCHNL_OFFSET_NO_EXT);
+ }
+
+ rtllib_start_scan_syncro(ieee, 0);
+
+ if (b40M) {
+ printk("Scan in 20M, back to 40M\n");
+ if (chan_offset == HT_EXTCHNL_OFFSET_UPPER)
+ ieee->set_chan(ieee->dev, chan + 2);
+ else if (chan_offset == HT_EXTCHNL_OFFSET_LOWER)
+ ieee->set_chan(ieee->dev, chan - 2);
+ else
+ ieee->set_chan(ieee->dev, chan);
+ ieee->SetBWModeHandler(ieee->dev, bandwidth, chan_offset);
+ } else {
+ ieee->set_chan(ieee->dev, chan);
+ }
+
+#if !(defined RTL8192SE ||defined RTL8192CE)
+ ieee->InitialGainHandler(ieee->dev,IG_Restore);
+#endif
+
+#if defined(RTL8192SE)
+#if(RTL8192S_DISABLE_FW_DM == 0)
+ if (ieee->SetFwCmdHandler) {
+ ieee->SetFwCmdHandler(ieee->dev, FW_CMD_RESUME_DM_BY_SCAN);
+ }
+#endif
+#endif
+#if defined RTL8192SU || defined RTL8192CE
+ ieee->ScanOperationBackupHandler(ieee->dev,SCAN_OPT_RESTORE);
+#endif
+ ieee->state = RTLLIB_LINKED;
+ ieee->link_change(ieee->dev);
+
+#ifdef ENABLE_LPS
+ /* Notify AP that I wake up again */
+ rtllib_sta_ps_send_null_frame(ieee, 0);
+#endif
+
+ if (ieee->LinkDetectInfo.NumRecvBcnInPeriod == 0 ||
+ ieee->LinkDetectInfo.NumRecvDataInPeriod == 0 ) {
+ ieee->LinkDetectInfo.NumRecvBcnInPeriod = 1;
+ ieee->LinkDetectInfo.NumRecvDataInPeriod= 1;
+ }
+
+ if (ieee->data_hard_resume)
+ ieee->data_hard_resume(ieee->dev);
+
+ if(ieee->iw_mode == IW_MODE_ADHOC || ieee->iw_mode == IW_MODE_MASTER)
+ rtllib_start_send_beacons(ieee);
+
+ rtllib_wake_all_queues(ieee);
+
+ count = 0;
+out:
+ up(&ieee->wx_sem);
+
+}
+
+int rtllib_wx_set_scan(struct rtllib_device *ieee, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b)
+{
+ int ret = 0;
+
+ down(&ieee->wx_sem);
+
+ if (ieee->iw_mode == IW_MODE_MONITOR || !(ieee->proto_started)){
+ ret = -1;
+ goto out;
+ }
+
+ if ( ieee->state == RTLLIB_LINKED){
+ queue_work_rsl(ieee->wq, &ieee->wx_sync_scan_wq);
+ /* intentionally forget to up sem */
+ return 0;
+ }
+
+out:
+ up(&ieee->wx_sem);
+ return ret;
+}
+
+int rtllib_wx_set_essid(struct rtllib_device *ieee,
+ struct iw_request_info *a,
+ union iwreq_data *wrqu, char *extra)
+{
+
+ int ret=0,len,i;
+ short proto_started;
+ unsigned long flags;
+
+ rtllib_stop_scan_syncro(ieee);
+ down(&ieee->wx_sem);
+
+ proto_started = ieee->proto_started;
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20))
+ len = ((wrqu->essid.length-1) < IW_ESSID_MAX_SIZE) ? (wrqu->essid.length-1) : IW_ESSID_MAX_SIZE;
+#else
+ len = (wrqu->essid.length < IW_ESSID_MAX_SIZE) ? wrqu->essid.length : IW_ESSID_MAX_SIZE;
+#endif
+
+ if (len > IW_ESSID_MAX_SIZE){
+ ret= -E2BIG;
+ goto out;
+ }
+
+ if (ieee->iw_mode == IW_MODE_MONITOR){
+ ret= -1;
+ goto out;
+ }
+
+ for (i=0; i<len; i++){
+ if(extra[i] < 0){
+ ret= -1;
+ goto out;
+ }
+ }
+
+ if(proto_started)
+ rtllib_stop_protocol(ieee,true);
+
+
+ /* this is just to be sure that the GET wx callback
+ * has consisten infos. not needed otherwise
+ */
+ spin_lock_irqsave(&ieee->lock, flags);
+
+ if (wrqu->essid.flags && wrqu->essid.length) {
+ strncpy(ieee->current_network.ssid, extra, len);
+ ieee->current_network.ssid_len = len;
+#if 0
+ {
+ int i;
+ for (i=0; i<len; i++)
+ printk("%c:%d ", extra[i], extra[i]);
+ printk("\n");
+ }
+#endif
+ ieee->cannot_notify = false;
+ ieee->ssid_set = 1;
+ }
+ else{
+ ieee->ssid_set = 0;
+ ieee->current_network.ssid[0] = '\0';
+ ieee->current_network.ssid_len = 0;
+ }
+ spin_unlock_irqrestore(&ieee->lock, flags);
+
+ if (proto_started)
+ rtllib_start_protocol(ieee);
+out:
+ up(&ieee->wx_sem);
+ return ret;
+}
+
+ int rtllib_wx_get_mode(struct rtllib_device *ieee, struct iw_request_info *a,
+ union iwreq_data *wrqu, char *b)
+{
+#ifdef _RTL8192_EXT_PATCH_
+ if(ieee->iw_mode == IW_MODE_MESH) {
+ /* WEXT could not show mesh mode properly,
+ * just disable it */
+ if(ieee->only_mesh) {
+ return -1;
+ } else {
+ wrqu->mode = IW_MODE_INFRA;
+ }
+ }
+ else
+#endif
+ wrqu->mode = ieee->iw_mode;
+ return 0;
+}
+
+ int rtllib_wx_set_rawtx(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+
+ int *parms = (int *)extra;
+ int enable = (parms[0] > 0);
+ short prev = ieee->raw_tx;
+
+ down(&ieee->wx_sem);
+
+ if(enable)
+ ieee->raw_tx = 1;
+ else
+ ieee->raw_tx = 0;
+
+ printk(KERN_INFO"raw TX is %s\n",
+ ieee->raw_tx ? "enabled" : "disabled");
+
+ if(ieee->iw_mode == IW_MODE_MONITOR)
+ {
+ if(prev == 0 && ieee->raw_tx){
+ if (ieee->data_hard_resume)
+ ieee->data_hard_resume(ieee->dev);
+
+ netif_carrier_on(ieee->dev);
+ }
+
+ if(prev && ieee->raw_tx == 1)
+ netif_carrier_off(ieee->dev);
+ }
+
+ up(&ieee->wx_sem);
+
+ return 0;
+}
+
+int rtllib_wx_get_name(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ strcpy(wrqu->name, "802.11");
+
+ if (ieee->modulation & RTLLIB_CCK_MODULATION)
+ strcat(wrqu->name, "b");
+ if (ieee->modulation & RTLLIB_OFDM_MODULATION)
+ strcat(wrqu->name, "g");
+ if (ieee->mode & (IEEE_N_24G | IEEE_N_5G))
+ strcat(wrqu->name, "n");
+#if 0
+ if((ieee->state == RTLLIB_LINKED) ||
+ (ieee->state == RTLLIB_LINKED_SCANNING))
+ strcat(wrqu->name," linked");
+ else if(ieee->state != RTLLIB_NOLINK)
+ strcat(wrqu->name," link..");
+#endif
+ return 0;
+}
+
+
+/* this is mostly stolen from hostap */
+int rtllib_wx_set_power(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ int ret = 0;
+#if 1
+ if(
+ (!ieee->sta_wake_up) ||
+ (!ieee->enter_sleep_state) ||
+ (!ieee->ps_is_queue_empty)){
+
+ RTLLIB_DEBUG(RTLLIB_DL_ERR,"%s(): PS mode is tryied to be use but driver missed a callback\n\n",__FUNCTION__);
+
+ return -1;
+ }
+#endif
+ down(&ieee->wx_sem);
+
+ if (wrqu->power.disabled){
+ printk("===>%s(): power disable\n",__FUNCTION__);
+ ieee->ps = RTLLIB_PS_DISABLED;
+ goto exit;
+ }
+ if (wrqu->power.flags & IW_POWER_TIMEOUT) {
+ ieee->ps_timeout = wrqu->power.value / 1000;
+ printk("===>%s():ps_timeout is %d\n",__FUNCTION__,ieee->ps_timeout);
+ }
+
+ if (wrqu->power.flags & IW_POWER_PERIOD) {
+
+ ieee->ps_period = wrqu->power.value / 1000;
+
+ }
+ switch (wrqu->power.flags & IW_POWER_MODE) {
+ case IW_POWER_UNICAST_R:
+ ieee->ps = RTLLIB_PS_UNICAST;
+ break;
+ case IW_POWER_MULTICAST_R:
+ ieee->ps = RTLLIB_PS_MBCAST;
+ break;
+ case IW_POWER_ALL_R:
+ ieee->ps = RTLLIB_PS_UNICAST | RTLLIB_PS_MBCAST;
+ break;
+
+ case IW_POWER_ON:
+ break;
+
+ default:
+ ret = -EINVAL;
+ goto exit;
+
+ }
+exit:
+ up(&ieee->wx_sem);
+ return ret;
+
+}
+
+/* this is stolen from hostap */
+int rtllib_wx_get_power(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ int ret =0;
+
+ down(&ieee->wx_sem);
+
+ if(ieee->ps == RTLLIB_PS_DISABLED){
+ wrqu->power.disabled = 1;
+ goto exit;
+ }
+
+ wrqu->power.disabled = 0;
+
+ if ((wrqu->power.flags & IW_POWER_TYPE) == IW_POWER_TIMEOUT) {
+ wrqu->power.flags = IW_POWER_TIMEOUT;
+ wrqu->power.value = ieee->ps_timeout * 1000;
+ } else {
+ wrqu->power.flags = IW_POWER_PERIOD;
+ wrqu->power.value = ieee->ps_period * 1000;
+ }
+
+ if ((ieee->ps & (RTLLIB_PS_MBCAST | RTLLIB_PS_UNICAST)) == (RTLLIB_PS_MBCAST | RTLLIB_PS_UNICAST))
+ wrqu->power.flags |= IW_POWER_ALL_R;
+ else if (ieee->ps & RTLLIB_PS_MBCAST)
+ wrqu->power.flags |= IW_POWER_MULTICAST_R;
+ else
+ wrqu->power.flags |= IW_POWER_UNICAST_R;
+
+exit:
+ up(&ieee->wx_sem);
+ return ret;
+
+}
+
+#ifndef BUILT_IN_RTLLIB
+EXPORT_SYMBOL_RSL(rtllib_wx_get_essid);
+EXPORT_SYMBOL_RSL(rtllib_wx_set_essid);
+EXPORT_SYMBOL_RSL(rtllib_wx_set_rate);
+EXPORT_SYMBOL_RSL(rtllib_wx_get_rate);
+EXPORT_SYMBOL_RSL(rtllib_wx_set_wap);
+EXPORT_SYMBOL_RSL(rtllib_wx_get_wap);
+EXPORT_SYMBOL_RSL(rtllib_wx_set_mode);
+EXPORT_SYMBOL_RSL(rtllib_wx_get_mode);
+EXPORT_SYMBOL_RSL(rtllib_wx_set_scan);
+EXPORT_SYMBOL_RSL(rtllib_wx_get_freq);
+EXPORT_SYMBOL_RSL(rtllib_wx_set_freq);
+EXPORT_SYMBOL_RSL(rtllib_wx_set_rawtx);
+EXPORT_SYMBOL_RSL(rtllib_wx_get_name);
+EXPORT_SYMBOL_RSL(rtllib_wx_set_power);
+EXPORT_SYMBOL_RSL(rtllib_wx_get_power);
+EXPORT_SYMBOL_RSL(rtllib_wlan_frequencies);
+EXPORT_SYMBOL_RSL(rtllib_wx_set_rts);
+EXPORT_SYMBOL_RSL(rtllib_wx_get_rts);
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/rtllib_tx.c b/ubuntu/rtl8192se/rtllib/rtllib_tx.c
new file mode 100755
index 00000000000..37fee424298
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtllib_tx.c
@@ -0,0 +1,1631 @@
+/******************************************************************************
+
+ Copyright(c) 2003 - 2004 Intel Corporation. All rights reserved.
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2 of the GNU General Public License as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program; if not, write to the Free Software Foundation, Inc., 59
+ Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ The full GNU General Public License is included in this distribution in the
+ file called LICENSE.
+
+ Contact Information:
+ James P. Ketrenos <ipw2100-admin@linux.intel.com>
+ Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
+
+******************************************************************************
+
+ Few modifications for Realtek's Wi-Fi drivers by
+ Andrea Merello <andreamrl@tiscali.it>
+
+ A special thanks goes to Realtek for their support !
+
+******************************************************************************/
+
+#include <linux/compiler.h>
+#include <linux/errno.h>
+#include <linux/if_arp.h>
+#include <linux/in6.h>
+#include <linux/in.h>
+#include <linux/ip.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/netdevice.h>
+#include <linux/pci.h>
+#include <linux/proc_fs.h>
+#include <linux/skbuff.h>
+#include <linux/slab.h>
+#include <linux/tcp.h>
+#include <linux/types.h>
+#include <linux/version.h>
+#include <linux/wireless.h>
+#include <linux/etherdevice.h>
+#include <asm/uaccess.h>
+#include <linux/if_vlan.h>
+
+#include "rtllib.h"
+
+#ifdef RTK_DMP_PLATFORM
+#include <linux/usb_setting.h>
+#endif
+
+/*
+
+
+802.11 Data Frame
+
+
+802.11 frame_contorl for data frames - 2 bytes
+ ,-----------------------------------------------------------------------------------------.
+bits | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e |
+ |----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|------|
+val | 0 | 0 | 0 | 1 | x | 0 | 0 | 0 | 1 | 0 | x | x | x | x | x |
+ |----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|-----|------|
+desc | ^-ver-^ | ^type-^ | ^-----subtype-----^ | to |from |more |retry| pwr |more |wep |
+ | | | x=0 data,x=1 data+ack | DS | DS |frag | | mgm |data | |
+ '-----------------------------------------------------------------------------------------'
+ /\
+ |
+802.11 Data Frame |
+ ,--------- 'ctrl' expands to >-----------'
+ |
+ ,--'---,-------------------------------------------------------------.
+Bytes | 2 | 2 | 6 | 6 | 6 | 2 | 0..2312 | 4 |
+ |------|------|---------|---------|---------|------|---------|------|
+Desc. | ctrl | dura | DA/RA | TA | SA | Sequ | Frame | fcs |
+ | | tion | (BSSID) | | | ence | data | |
+ `--------------------------------------------------| |------'
+Total: 28 non-data bytes `----.----'
+ |
+ .- 'Frame data' expands to <---------------------------'
+ |
+ V
+ ,---------------------------------------------------.
+Bytes | 1 | 1 | 1 | 3 | 2 | 0-2304 |
+ |------|------|---------|----------|------|---------|
+Desc. | SNAP | SNAP | Control |Eth Tunnel| Type | IP |
+ | DSAP | SSAP | | | | Packet |
+ | 0xAA | 0xAA |0x03 (UI)|0x00-00-F8| | |
+ `-----------------------------------------| |
+Total: 8 non-data bytes `----.----'
+ |
+ .- 'IP Packet' expands, if WEP enabled, to <--'
+ |
+ V
+ ,-----------------------.
+Bytes | 4 | 0-2296 | 4 |
+ |-----|-----------|-----|
+Desc. | IV | Encrypted | ICV |
+ | | IP Packet | |
+ `-----------------------'
+Total: 8 non-data bytes
+
+
+802.3 Ethernet Data Frame
+
+ ,-----------------------------------------.
+Bytes | 6 | 6 | 2 | Variable | 4 |
+ |-------|-------|------|-----------|------|
+Desc. | Dest. | Source| Type | IP Packet | fcs |
+ | MAC | MAC | | | |
+ `-----------------------------------------'
+Total: 18 non-data bytes
+
+In the event that fragmentation is required, the incoming payload is split into
+N parts of size ieee->fts. The first fragment contains the SNAP header and the
+remaining packets are just data.
+
+If encryption is enabled, each fragment payload size is reduced by enough space
+to add the prefix and postfix (IV and ICV totalling 8 bytes in the case of WEP)
+So if you have 1500 bytes of payload with ieee->fts set to 500 without
+encryption it will take 3 frames. With WEP it will take 4 frames as the
+payload of each frame is reduced to 492 bytes.
+
+* SKB visualization
+*
+* ,- skb->data
+* |
+* | ETHERNET HEADER ,-<-- PAYLOAD
+* | | 14 bytes from skb->data
+* | 2 bytes for Type --> ,T. | (sizeof ethhdr)
+* | | | |
+* |,-Dest.--. ,--Src.---. | | |
+* | 6 bytes| | 6 bytes | | | |
+* v | | | | | |
+* 0 | v 1 | v | v 2
+* 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+* ^ | ^ | ^ |
+* | | | | | |
+* | | | | `T' <---- 2 bytes for Type
+* | | | |
+* | | '---SNAP--' <-------- 6 bytes for SNAP
+* | |
+* `-IV--' <-------------------- 4 bytes for IV (WEP)
+*
+* SNAP HEADER
+*
+*/
+
+static u8 P802_1H_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0xf8 };
+static u8 RFC1042_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0x00 };
+
+inline int rtllib_put_snap(u8 *data, u16 h_proto)
+{
+ struct rtllib_snap_hdr *snap;
+ u8 *oui;
+
+ snap = (struct rtllib_snap_hdr *)data;
+ snap->dsap = 0xaa;
+ snap->ssap = 0xaa;
+ snap->ctrl = 0x03;
+
+ if (h_proto == 0x8137 || h_proto == 0x80f3)
+ oui = P802_1H_OUI;
+ else
+ oui = RFC1042_OUI;
+ snap->oui[0] = oui[0];
+ snap->oui[1] = oui[1];
+ snap->oui[2] = oui[2];
+
+ *(u16 *)(data + SNAP_SIZE) = htons(h_proto);
+
+ return SNAP_SIZE + sizeof(u16);
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+int rtllib_encrypt_fragment(
+ struct rtllib_device *ieee,
+ struct sk_buff *frag,
+ int hdr_len,
+ u8 is_mesh,
+ u8 entry)
+#else
+int rtllib_encrypt_fragment(
+ struct rtllib_device *ieee,
+ struct sk_buff *frag,
+ int hdr_len)
+#endif
+{
+ struct rtllib_crypt_data* crypt = NULL;
+ int res;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if (is_mesh) {
+ crypt = ieee->cryptlist[entry]->crypt[ieee->mesh_txkeyidx];
+ } else
+ crypt = ieee->sta_crypt[ieee->tx_keyidx];
+#else
+ crypt = ieee->crypt[ieee->tx_keyidx];
+#endif
+
+ if (!(crypt && crypt->ops))
+ {
+ printk("=========>%s(), crypt is null\n", __FUNCTION__);
+ return -1;
+ }
+#ifdef CONFIG_RTLLIB_CRYPT_TKIP
+ struct rtllib_hdr_1addr *header;
+
+ if (ieee->tkip_countermeasures &&
+ crypt && crypt->ops && strcmp(crypt->ops->name, "TKIP") == 0) {
+ header = (struct rtllib_hdr_1addr *) frag->data;
+ if (net_ratelimit()) {
+ printk(KERN_DEBUG "%s: TKIP countermeasures: dropped "
+ "TX packet to " MAC_FMT "\n",
+ ieee->dev->name, MAC_ARG(header->addr1));
+ }
+ return -1;
+ }
+#endif
+ /* To encrypt, frame format is:
+ * IV (4 bytes), clear payload (including SNAP), ICV (4 bytes) */
+
+ /* Host-based IEEE 802.11 fragmentation for TX is not yet supported, so
+ * call both MSDU and MPDU encryption functions from here. */
+ atomic_inc(&crypt->refcnt);
+ res = 0;
+ if (crypt->ops->encrypt_msdu)
+ res = crypt->ops->encrypt_msdu(frag, hdr_len, crypt->priv);
+ if (res == 0 && crypt->ops->encrypt_mpdu)
+ res = crypt->ops->encrypt_mpdu(frag, hdr_len, crypt->priv);
+
+ atomic_dec(&crypt->refcnt);
+ if (res < 0) {
+ printk(KERN_INFO "%s: Encryption failed: len=%d.\n",
+ ieee->dev->name, frag->len);
+ ieee->ieee_stats.tx_discards++;
+ return -1;
+ }
+
+ return 0;
+}
+
+
+void rtllib_txb_free(struct rtllib_txb *txb) {
+ if (unlikely(!txb))
+ return;
+#if 0
+ for (i = 0; i < txb->nr_frags; i++)
+ if (txb->fragments[i])
+ dev_kfree_skb_any(txb->fragments[i]);
+#endif
+ kfree(txb);
+}
+
+struct rtllib_txb *rtllib_alloc_txb(int nr_frags, int txb_size,
+ int gfp_mask)
+{
+#ifdef USB_USE_ALIGNMENT
+ u32 Tmpaddr=0;
+ int alignment=0;
+#endif
+ struct rtllib_txb *txb;
+ int i;
+ txb = kmalloc(
+ sizeof(struct rtllib_txb) + (sizeof(u8*) * nr_frags),
+ gfp_mask);
+ if (!txb)
+ return NULL;
+
+ memset(txb, 0, sizeof(struct rtllib_txb));
+ txb->nr_frags = nr_frags;
+ txb->frag_size = txb_size;
+
+ for (i = 0; i < nr_frags; i++) {
+#ifdef USB_USE_ALIGNMENT
+ txb->fragments[i] = dev_alloc_skb(txb_size+USB_512B_ALIGNMENT_SIZE);
+#else
+ txb->fragments[i] = dev_alloc_skb(txb_size);
+#endif
+ if (unlikely(!txb->fragments[i])) {
+ i--;
+ break;
+ }
+#ifdef USB_USE_ALIGNMENT
+ Tmpaddr = (u32)(txb->fragments[i]->data);
+ alignment = Tmpaddr & 0x1ff;
+ skb_reserve(txb->fragments[i],(USB_512B_ALIGNMENT_SIZE - alignment));
+#endif
+ memset(txb->fragments[i]->cb, 0, sizeof(txb->fragments[i]->cb));
+ }
+ if (unlikely(i != nr_frags)) {
+ while (i >= 0)
+ dev_kfree_skb_any(txb->fragments[i--]);
+ kfree(txb);
+ return NULL;
+ }
+ return txb;
+}
+
+int
+rtllib_classify(struct sk_buff *skb, u8 bIsAmsdu)
+{
+ struct ethhdr *eth;
+ struct iphdr *ip;
+
+ eth = (struct ethhdr *)skb->data;
+ if (eth->h_proto != htons(ETH_P_IP))
+ return 0;
+
+#ifdef ENABLE_AMSDU
+ if(bIsAmsdu)
+ ip = (struct iphdr*)(skb->data + sizeof(struct ether_header) + AMSDU_SUBHEADER_LEN + SNAP_SIZE + sizeof(u16));
+ else
+ ip = (struct iphdr*)(skb->data + sizeof(struct ether_header));
+#else
+ RTLLIB_DEBUG_DATA(RTLLIB_DL_DATA, skb->data, skb->len);
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22))
+ ip = ip_hdr(skb);
+#else
+ ip = (struct iphdr*)(skb->data + sizeof(struct ether_header));
+#endif
+#endif
+ switch (ip->tos & 0xfc) {
+ case 0x20:
+ return 2;
+ case 0x40:
+ return 1;
+ case 0x60:
+ return 3;
+ case 0x80:
+ return 4;
+ case 0xa0:
+ return 5;
+ case 0xc0:
+ return 6;
+ case 0xe0:
+ return 7;
+ default:
+ return 0;
+ }
+}
+
+#define SN_LESS(a, b) (((a-b)&0x800)!=0)
+void rtllib_tx_query_agg_cap(struct rtllib_device* ieee, struct sk_buff* skb, cb_desc* tcb_desc)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ PTX_TS_RECORD pTxTs = NULL;
+ struct rtllib_hdr_1addr* hdr = (struct rtllib_hdr_1addr*)skb->data;
+
+ if (!pHTInfo->bCurrentHTSupport||!pHTInfo->bEnableHT){
+ return;
+ }
+ if (!IsQoSDataFrame(skb->data)){
+ return;
+ }
+ if (is_multicast_ether_addr(hdr->addr1) || is_broadcast_ether_addr(hdr->addr1)){
+ return;
+ }
+#ifdef TO_DO_LIST
+ if(pTcb->PacketLength >= 4096)
+ return;
+ if(!Adapter->HalFunc.GetNmodeSupportBySecCfgHandler(Adapter))
+ return;
+#endif
+
+ if(tcb_desc->bdhcp || ieee->CntAfterLink<2){
+ return;
+ }
+
+ if(pHTInfo->IOTAction & HT_IOT_ACT_TX_NO_AGGREGATION){
+ return;
+ }
+
+ if(!ieee->GetNmodeSupportBySecCfg(ieee->dev)){
+ return;
+ }
+ if(pHTInfo->bCurrentAMPDUEnable){
+ if (!GetTs(ieee, (PTS_COMMON_INFO*)(&pTxTs), hdr->addr1, skb->priority, TX_DIR, true)){
+ printk("%s: can't get TS\n", __func__);
+ return;
+ }
+ if (pTxTs->TxAdmittedBARecord.bValid == false){
+ if (ieee->wpa_ie_len && (ieee->pairwise_key_type == KEY_TYPE_NA)) {
+ ;
+ } else if (tcb_desc->bdhcp == 1){
+ ;
+ } else if (!pTxTs->bDisable_AddBa){
+ TsStartAddBaProcess(ieee, pTxTs);
+ }
+ goto FORCED_AGG_SETTING;
+ }
+ else if (pTxTs->bUsingBa == false)
+ {
+ if (SN_LESS(pTxTs->TxAdmittedBARecord.BaStartSeqCtrl.field.SeqNum, (pTxTs->TxCurSeq+1)%4096))
+ pTxTs->bUsingBa = true;
+ else
+ goto FORCED_AGG_SETTING;
+ }
+#ifndef _RTL8192_EXT_PATCH_
+#ifndef RTL8192S_WAPI_SUPPORT
+ if (ieee->iw_mode == IW_MODE_INFRA)
+#endif
+#endif
+ {
+ tcb_desc->bAMPDUEnable = true;
+ tcb_desc->ampdu_factor = pHTInfo->CurrentAMPDUFactor;
+ tcb_desc->ampdu_density = pHTInfo->CurrentMPDUDensity;
+ }
+ }
+FORCED_AGG_SETTING:
+ switch(pHTInfo->ForcedAMPDUMode )
+ {
+ case HT_AGG_AUTO:
+ break;
+
+ case HT_AGG_FORCE_ENABLE:
+ tcb_desc->bAMPDUEnable = true;
+ tcb_desc->ampdu_density = pHTInfo->ForcedMPDUDensity;
+ tcb_desc->ampdu_factor = pHTInfo->ForcedAMPDUFactor;
+ break;
+
+ case HT_AGG_FORCE_DISABLE:
+ tcb_desc->bAMPDUEnable = false;
+ tcb_desc->ampdu_density = 0;
+ tcb_desc->ampdu_factor = 0;
+ break;
+
+ }
+ return;
+}
+
+extern void rtllib_qurey_ShortPreambleMode(struct rtllib_device* ieee, cb_desc* tcb_desc)
+{
+ tcb_desc->bUseShortPreamble = false;
+ if (tcb_desc->data_rate == 2)
+ {
+ return;
+ }
+ else if (ieee->current_network.capability & WLAN_CAPABILITY_SHORT_PREAMBLE)
+ {
+ tcb_desc->bUseShortPreamble = true;
+ }
+ return;
+}
+
+extern void
+rtllib_query_HTCapShortGI(struct rtllib_device *ieee, cb_desc *tcb_desc)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+
+ tcb_desc->bUseShortGI = false;
+
+ if(!pHTInfo->bCurrentHTSupport||!pHTInfo->bEnableHT)
+ return;
+
+ if(pHTInfo->bForcedShortGI)
+ {
+ tcb_desc->bUseShortGI = true;
+ return;
+ }
+
+ if((pHTInfo->bCurBW40MHz==true) && pHTInfo->bCurShortGI40MHz)
+ tcb_desc->bUseShortGI = true;
+ else if((pHTInfo->bCurBW40MHz==false) && pHTInfo->bCurShortGI20MHz)
+ tcb_desc->bUseShortGI = true;
+}
+
+void rtllib_query_BandwidthMode(struct rtllib_device* ieee, cb_desc *tcb_desc)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+
+ tcb_desc->bPacketBW = false;
+
+ if(!pHTInfo->bCurrentHTSupport||!pHTInfo->bEnableHT)
+ return;
+
+ if(tcb_desc->bMulticast || tcb_desc->bBroadcast)
+ return;
+
+ if((tcb_desc->data_rate & 0x80)==0)
+ return;
+ if(pHTInfo->bCurBW40MHz && pHTInfo->bCurTxBW40MHz && !ieee->bandwidth_auto_switch.bforced_tx20Mhz)
+ tcb_desc->bPacketBW = true;
+ return;
+}
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+extern void rtllib_ibss_query_HTCapShortGI(struct rtllib_device *ieee, cb_desc *tcb_desc,u8 is_peer_shortGI_40M,u8 is_peer_shortGI_20M)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+
+ tcb_desc->bUseShortGI = false;
+
+ if(!pHTInfo->bCurrentHTSupport||!pHTInfo->bEnableHT || (ieee->iw_mode != IW_MODE_ADHOC))
+ {
+ return;
+ }
+
+ if(pHTInfo->bForcedShortGI)
+ {
+ tcb_desc->bUseShortGI = true;
+ return;
+ }
+ if((pHTInfo->bCurBW40MHz==true) && is_peer_shortGI_40M)
+ tcb_desc->bUseShortGI = true;
+ else if((pHTInfo->bCurBW40MHz==false) && is_peer_shortGI_20M)
+ tcb_desc->bUseShortGI = true;
+}
+void rtllib_ibss_query_BandwidthMode(struct rtllib_device* ieee, cb_desc *tcb_desc, u8 is_peer_40M)
+{
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+
+ tcb_desc->bPacketBW = false;
+
+ if(!pHTInfo->bCurrentHTSupport||!pHTInfo->bEnableHT || (ieee->iw_mode != IW_MODE_ADHOC))
+ {
+ return;
+ }
+
+ if(tcb_desc->bMulticast || tcb_desc->bBroadcast)
+ {
+ return;
+ }
+
+ if((tcb_desc->data_rate & 0x80)==0)
+ {
+ return;
+ }
+ if(pHTInfo->bCurBW40MHz && is_peer_40M && !ieee->bandwidth_auto_switch.bforced_tx20Mhz)
+ tcb_desc->bPacketBW = true;
+ return;
+}
+#endif
+void rtllib_query_protectionmode(struct rtllib_device* ieee, cb_desc* tcb_desc, struct sk_buff* skb)
+{
+ tcb_desc->bRTSSTBC = false;
+ tcb_desc->bRTSUseShortGI = false;
+ tcb_desc->bCTSEnable = false;
+ tcb_desc->RTSSC = 0;
+ tcb_desc->bRTSBW = false;
+
+ if(tcb_desc->bBroadcast || tcb_desc->bMulticast)
+ return;
+
+ if (is_broadcast_ether_addr(skb->data+16))
+ return;
+
+ if (ieee->mode < IEEE_N_24G)
+ {
+ if (skb->len > ieee->rts)
+ {
+ tcb_desc->bRTSEnable = true;
+ tcb_desc->rts_rate = MGN_24M;
+ }
+ else if (ieee->current_network.buseprotection)
+ {
+ tcb_desc->bRTSEnable = true;
+ tcb_desc->bCTSEnable = true;
+ tcb_desc->rts_rate = MGN_24M;
+ }
+ return;
+ }
+ else
+ {
+ PRT_HIGH_THROUGHPUT pHTInfo = ieee->pHTInfo;
+ while (true)
+ {
+ if(pHTInfo->IOTAction & HT_IOT_ACT_FORCED_CTS2SELF)
+ {
+ tcb_desc->bCTSEnable = true;
+ tcb_desc->rts_rate = MGN_24M;
+#if defined(RTL8192SE) || defined(RTL8192SU) || defined RTL8192CE
+ tcb_desc->bRTSEnable = false;
+#else
+ tcb_desc->bRTSEnable = true;
+#endif
+ break;
+ }
+ else if(pHTInfo->IOTAction & (HT_IOT_ACT_FORCED_RTS|HT_IOT_ACT_PURE_N_MODE))
+ {
+ tcb_desc->bRTSEnable = true;
+ tcb_desc->rts_rate = MGN_24M;
+ break;
+ }
+ if (ieee->current_network.buseprotection)
+ {
+ tcb_desc->bRTSEnable = true;
+ tcb_desc->bCTSEnable = true;
+ tcb_desc->rts_rate = MGN_24M;
+ break;
+ }
+ if(pHTInfo->bCurrentHTSupport && pHTInfo->bEnableHT)
+ {
+ u8 HTOpMode = pHTInfo->CurrentOpMode;
+ if((pHTInfo->bCurBW40MHz && (HTOpMode == 2 || HTOpMode == 3)) ||
+ (!pHTInfo->bCurBW40MHz && HTOpMode == 3) )
+ {
+ tcb_desc->rts_rate = MGN_24M;
+ tcb_desc->bRTSEnable = true;
+ break;
+ }
+ }
+ if (skb->len > ieee->rts)
+ {
+ tcb_desc->rts_rate = MGN_24M;
+ tcb_desc->bRTSEnable = true;
+ break;
+ }
+ if(tcb_desc->bAMPDUEnable)
+ {
+ tcb_desc->rts_rate = MGN_24M;
+ tcb_desc->bRTSEnable = false;
+ break;
+ }
+ goto NO_PROTECTION;
+ }
+ }
+ if( 0 )
+ {
+ tcb_desc->bCTSEnable = true;
+ tcb_desc->rts_rate = MGN_24M;
+ tcb_desc->bRTSEnable = true;
+ }
+ if (ieee->current_network.capability & WLAN_CAPABILITY_SHORT_PREAMBLE)
+ tcb_desc->bUseShortPreamble = true;
+ if (ieee->iw_mode == IW_MODE_MASTER)
+ goto NO_PROTECTION;
+ return;
+NO_PROTECTION:
+ tcb_desc->bRTSEnable = false;
+ tcb_desc->bCTSEnable = false;
+ tcb_desc->rts_rate = 0;
+ tcb_desc->RTSSC = 0;
+ tcb_desc->bRTSBW = false;
+}
+
+
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+void rtllib_txrate_selectmode(struct rtllib_device* ieee, cb_desc* tcb_desc,struct sta_info *psta)
+#else
+void rtllib_txrate_selectmode(struct rtllib_device* ieee, cb_desc* tcb_desc)
+#endif
+{
+#ifdef TO_DO_LIST
+ if(!IsDataFrame(pFrame))
+ {
+ pTcb->bTxDisableRateFallBack = true;
+ pTcb->bTxUseDriverAssingedRate = true;
+ pTcb->RATRIndex = 7;
+ return;
+ }
+
+ if(pMgntInfo->ForcedDataRate!= 0)
+ {
+ pTcb->bTxDisableRateFallBack = true;
+ pTcb->bTxUseDriverAssingedRate = true;
+ return;
+ }
+#endif
+ if(ieee->bTxDisableRateFallBack)
+ tcb_desc->bTxDisableRateFallBack = true;
+
+ if(ieee->bTxUseDriverAssingedRate)
+ tcb_desc->bTxUseDriverAssingedRate = true;
+ if(!tcb_desc->bTxDisableRateFallBack || !tcb_desc->bTxUseDriverAssingedRate)
+ {
+#ifdef _RTL8192_EXT_PATCH_
+ if ((ieee->iw_mode == IW_MODE_INFRA) || (ieee->iw_mode == IW_MODE_MESH))
+ tcb_desc->RATRIndex = 0;
+ else if (ieee->iw_mode == IW_MODE_ADHOC){
+ if(tcb_desc->bMulticast || tcb_desc->bBroadcast){
+ tcb_desc->data_rate = ieee->basic_rate;
+ tcb_desc->bTxUseDriverAssingedRate = 1;
+ }else{
+ if(psta != NULL)
+ tcb_desc->RATRIndex = psta->ratr_index;
+ else
+ tcb_desc->RATRIndex = 7;
+ }
+ }
+#else
+ if (ieee->iw_mode == IW_MODE_INFRA || ieee->iw_mode == IW_MODE_ADHOC)
+ tcb_desc->RATRIndex = 0;
+#endif
+ }
+#if 0
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ if(ieee->iw_mode == IW_MODE_ADHOC)
+ tcb_desc->RATRIndex = ratr_index;
+#endif
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ if(ieee->bUseRAMask){
+ if((ieee->iw_mode == IW_MODE_ADHOC) && (NULL != psta)){
+ short peer_AID = psta->aid;
+
+ tcb_desc->macId =0;
+ if((peer_AID > 0) && (peer_AID < PEER_MAX_ASSOC))
+ {
+ tcb_desc->macId = peer_AID + 1;
+ }else{
+ tcb_desc->macId = 1;
+ }
+ }
+ else{
+ if((ieee->mode & WIRELESS_MODE_N_24G) || (ieee->mode & WIRELESS_MODE_N_5G))
+ tcb_desc->RATRIndex = RATR_INX_WIRELESS_NGB;
+ else if(ieee->mode & WIRELESS_MODE_G)
+ tcb_desc->RATRIndex = RATR_INX_WIRELESS_GB;
+ else if(ieee->mode & WIRELESS_MODE_B)
+ tcb_desc->RATRIndex = RATR_INX_WIRELESS_B;
+
+ tcb_desc->macId = 0;
+ }
+ }
+#endif
+}
+
+u16 rtllib_query_seqnum(struct rtllib_device*ieee, struct sk_buff* skb, u8* dst)
+{
+ u16 seqnum = 0;
+
+ if (is_multicast_ether_addr(dst) || is_broadcast_ether_addr(dst))
+ return 0;
+ if (IsQoSDataFrame(skb->data))
+ {
+ PTX_TS_RECORD pTS = NULL;
+ if (!GetTs(ieee, (PTS_COMMON_INFO*)(&pTS), dst, skb->priority, TX_DIR, true))
+ {
+ return 0;
+ }
+ seqnum = pTS->TxCurSeq;
+ pTS->TxCurSeq = (pTS->TxCurSeq+1)%4096;
+ return seqnum;
+ }
+ return 0;
+}
+
+
+
+#ifdef ENABLE_AMSDU
+#if 0
+static void CB_DESC_DUMP(pcb_desc tcb, char* func)
+{
+ printk("\n%s",func);
+ printk("\n-------------------CB DESC DUMP ><------------------------");
+ printk("\npkt_size:\t %d", tcb->pkt_size);
+ printk("\nqueue_index:\t %d", tcb->queue_index);
+ printk("\nbMulticast:\t %d", tcb->bMulticast);
+ printk("\nbBroadcast:\t %d", tcb->bBroadcast);
+ printk("\nbPacketBw:\t %d", tcb->bPacketBW);
+ printk("\nbRTSEnable:\t %d", tcb->bRTSEnable);
+ printk("\nrts_rate:\t %d", tcb->rts_rate);
+ printk("\nbUseShortGI:\t %d", tcb->bUseShortGI);
+ printk("\nbAMSDU:\t %d", tcb->bAMSDU);
+ printk("\nFromAggrQ:\t %d", tcb->bFromAggrQ);
+ printk("\nRATRIndex:\t %d", tcb->RATRIndex);
+ printk("\ndata_rate:\t %d", tcb->data_rate);
+ printk("\n-------------------CB DESC DUMP <>------------------------\n");
+}
+#endif
+struct sk_buff *AMSDU_Aggregation(
+ struct rtllib_device *ieee,
+ struct sk_buff_head *pSendList
+ )
+{
+ struct sk_buff * pSkb;
+ struct sk_buff * pAggrSkb;
+ u8 i;
+ u32 total_length = 0;
+ u32 skb_len, num_skb;
+ pcb_desc pcb;
+ u8 amsdu_shdr[AMSDU_SUBHEADER_LEN];
+ u8 padding = 0;
+ u8 *p = NULL, *q=NULL;
+ u16 ether_type;
+
+ num_skb = skb_queue_len(pSendList);
+ if(num_skb == 0)
+ return NULL;
+ if(num_skb == 1)
+ {
+ pSkb = (struct sk_buff *)skb_dequeue(pSendList);
+ memset(pSkb->cb, 0, sizeof(pSkb->cb));
+ pcb = (pcb_desc)(pSkb->cb + MAX_DEV_ADDR_SIZE);
+ pcb->bFromAggrQ = true;
+ return pSkb;
+ }
+
+ total_length += sizeof(struct ethhdr);
+ for(i=0; i<num_skb; i++)
+ {
+ pSkb= (struct sk_buff *)skb_dequeue(pSendList);
+ if(pSkb->len <= (ETH_ALEN*2))
+ {
+ dev_kfree_skb_any(pSkb);
+ continue;
+ }
+ skb_len = pSkb->len - ETH_ALEN*2 + SNAP_SIZE + AMSDU_SUBHEADER_LEN;
+ if(i < (num_skb-1))
+ {
+ skb_len += ((4-skb_len%4)==4)?0:(4-skb_len%4);
+ }
+ total_length += skb_len;
+ skb_queue_tail(pSendList, pSkb);
+ }
+
+ pAggrSkb = dev_alloc_skb(total_length);
+ if(NULL == pAggrSkb)
+ {
+ skb_queue_purge(pSendList);
+ printk("%s: Can not alloc skb!\n", __FUNCTION__);
+ return NULL;
+ }
+ skb_put(pAggrSkb,total_length);
+ pAggrSkb->priority = pSkb->priority;
+
+ memset(pAggrSkb->cb, 0, sizeof(pAggrSkb->cb));
+ pcb = (pcb_desc)(pAggrSkb->cb + MAX_DEV_ADDR_SIZE);
+ pcb->bFromAggrQ = true;
+ pcb->bAMSDU = true;
+
+ memset(amsdu_shdr, 0, AMSDU_SUBHEADER_LEN);
+ p = pAggrSkb->data;
+ for(i=0; i<num_skb; i++)
+ {
+ q = p;
+ pSkb= (struct sk_buff *)skb_dequeue(pSendList);
+ ether_type = ntohs(((struct ethhdr *)pSkb->data)->h_proto);
+
+ skb_len = pSkb->len - sizeof(struct ethhdr) + AMSDU_SUBHEADER_LEN + SNAP_SIZE + sizeof(u16);
+ if(i < (num_skb-1))
+ {
+ padding = ((4-skb_len%4)==4)?0:(4-skb_len%4);
+ skb_len += padding;
+ }
+ if(i == 0)
+ {
+ memcpy(p, pSkb->data, sizeof(struct ethhdr));
+ p += sizeof(struct ethhdr);
+ }
+ memcpy(amsdu_shdr, pSkb->data, (ETH_ALEN*2));
+ skb_pull(pSkb, sizeof(struct ethhdr));
+ *(u16*)(amsdu_shdr+ETH_ALEN*2) = ntohs(pSkb->len + SNAP_SIZE + sizeof(u16));
+ memcpy(p, amsdu_shdr, AMSDU_SUBHEADER_LEN);
+ p += AMSDU_SUBHEADER_LEN;
+
+ rtllib_put_snap(p, ether_type);
+ p += SNAP_SIZE + sizeof(u16);
+
+ memcpy(p, pSkb->data, pSkb->len);
+ p += pSkb->len;
+ if(padding > 0)
+ {
+ memset(p, 0, padding);
+ p += padding;
+ padding = 0;
+ }
+ dev_kfree_skb_any(pSkb);
+ }
+
+ return pAggrSkb;
+}
+
+
+/* NOTE:
+ This function return a list of SKB which is proper to be aggregated.
+ If no proper SKB is found to do aggregation, SendList will only contain the input SKB.
+*/
+u8 AMSDU_GetAggregatibleList(
+ struct rtllib_device * ieee,
+ struct sk_buff * pCurSkb,
+ struct sk_buff_head *pSendList,
+ u8 queue_index
+ )
+{
+ struct sk_buff *pSkb = NULL;
+ u16 nMaxAMSDUSize = 0;
+ u32 AggrSize = 0;
+ u32 nAggrSkbNum = 0;
+ u8 padding = 0;
+ struct sta_info *psta = NULL;
+ u8 *addr = (u8*)(pCurSkb->data);
+ struct sk_buff_head *header;
+ struct sk_buff *punlinkskb = NULL;
+
+ padding = ((4-pCurSkb->len%4)==4)?0:(4-pCurSkb->len%4);
+ AggrSize = AMSDU_SUBHEADER_LEN + pCurSkb->len + padding;
+ skb_queue_tail(pSendList, pCurSkb);
+ nAggrSkbNum++;
+
+ if(ieee->iw_mode == IW_MODE_MASTER){
+ psta = GetStaInfo(ieee, addr);
+ if(NULL != psta)
+ nMaxAMSDUSize = psta->htinfo.AMSDU_MaxSize;
+ else
+ return 1;
+ }else if(ieee->iw_mode == IW_MODE_ADHOC){
+ psta = GetStaInfo(ieee, addr);
+ if(NULL != psta)
+ nMaxAMSDUSize = psta->htinfo.AMSDU_MaxSize;
+ else
+ return 1;
+ }else{
+ nMaxAMSDUSize = ieee->pHTInfo->nCurrent_AMSDU_MaxSize;
+ }
+
+ if(ieee->pHTInfo->ForcedAMSDUMode == HT_AGG_FORCE_ENABLE)
+ {
+ nMaxAMSDUSize = ieee->pHTInfo->ForcedAMSDUMaxSize;
+ }
+
+ header = (&ieee->skb_aggQ[queue_index]);
+ pSkb = header->next;
+ while(pSkb != (struct sk_buff*)header)
+ {
+ if((ieee->iw_mode == IW_MODE_MASTER) ||(ieee->iw_mode == IW_MODE_ADHOC))
+ {
+ if(memcmp(pCurSkb->data, pSkb->data, ETH_ALEN) != 0)
+ {
+ pSkb = pSkb->next;
+ continue;
+ }
+ }
+ if((AMSDU_SUBHEADER_LEN + pSkb->len + AggrSize < nMaxAMSDUSize) )
+ {
+ punlinkskb = pSkb;
+ pSkb = pSkb->next;
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
+ skb_unlink(punlinkskb, header);
+#else
+ /*
+ * __skb_unlink before linux2.6.14 does not use spinlock to protect list head.
+ * add spinlock function manually. john,2008/12/03
+ */
+ {
+ unsigned long flags;
+ spin_lock_irqsave(&ieee->lock, flags);
+ __skb_unlink(punlinkskb,header);
+ spin_unlock_irqrestore(&ieee->lock, flags);
+ }
+#endif
+
+ padding = ((4-punlinkskb->len%4)==4)?0:(4-punlinkskb->len%4);
+ AggrSize += AMSDU_SUBHEADER_LEN + punlinkskb->len + padding;
+ skb_queue_tail(pSendList, punlinkskb);
+ nAggrSkbNum++;
+ }
+ else
+ {
+ if(!(AMSDU_SUBHEADER_LEN + pSkb->len + AggrSize < nMaxAMSDUSize))
+ ;
+
+ break;
+ }
+ }
+ return nAggrSkbNum;
+}
+#endif
+static int wme_downgrade_ac(struct sk_buff *skb)
+{
+ switch (skb->priority) {
+ case 6:
+ case 7:
+ skb->priority = 5; /* VO -> VI */
+ return 0;
+ case 4:
+ case 5:
+ skb->priority = 3; /* VI -> BE */
+ return 0;
+ case 0:
+ case 3:
+ skb->priority = 1; /* BE -> BK */
+ return 0;
+ default:
+ return -1;
+ }
+}
+
+int rtllib_xmit_inter(struct sk_buff *skb, struct net_device *dev)
+{
+ struct rtllib_device *ieee = (struct rtllib_device *)netdev_priv_rsl(dev);
+ struct rtllib_txb *txb = NULL;
+ struct rtllib_hdr_3addrqos *frag_hdr;
+ int i, bytes_per_frag, nr_frags, bytes_last_frag, frag_size;
+ unsigned long flags;
+ struct net_device_stats *stats = &ieee->stats;
+ int ether_type = 0, encrypt;
+ int bytes, fc, qos_ctl = 0, hdr_len;
+ struct sk_buff *skb_frag;
+ struct rtllib_hdr_3addrqos header = { /* Ensure zero initialized */
+ .duration_id = 0,
+ .seq_ctl = 0,
+ .qos_ctl = 0
+ };
+ u8 dest[ETH_ALEN], src[ETH_ALEN];
+ int qos_actived = ieee->current_network.qos_data.active;
+ struct rtllib_crypt_data* crypt = NULL;
+ cb_desc *tcb_desc;
+ u8 bIsMulticast = false;
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ struct sta_info *p_sta = NULL;
+#endif
+ u8 IsAmsdu = false;
+#ifdef ENABLE_AMSDU
+ u8 queue_index = WME_AC_BE;
+ cb_desc *tcb_desc_skb;
+ u8 bIsSptAmsdu = false;
+#endif
+
+ bool bdhcp =false;
+#ifndef _RTL8192_EXT_PATCH_
+#endif
+#ifdef RTL8192S_WAPI_SUPPORT
+ static u8 zero14[14] = {0};
+#endif
+ spin_lock_irqsave(&ieee->lock, flags);
+
+ /* If there is no driver handler to take the TXB, dont' bother
+ * creating it... */
+ if ((!ieee->hard_start_xmit && !(ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE))||
+ ((!ieee->softmac_data_hard_start_xmit && (ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE)))) {
+ printk(KERN_WARNING "%s: No xmit handler.\n",
+ ieee->dev->name);
+ goto success;
+ }
+
+
+ if(likely(ieee->raw_tx == 0)){
+ if (unlikely(skb->len < SNAP_SIZE + sizeof(u16))) {
+ printk(KERN_WARNING "%s: skb too small (%d).\n",
+ ieee->dev->name, skb->len);
+ goto success;
+ }
+#ifdef RTL8192S_WAPI_SUPPORT
+ if(memcmp(skb->data, zero14, sizeof(zero14))==0){
+ if(WapiSendWaiPacket(ieee, skb)< 0)
+ goto failed;
+ else{
+ spin_unlock_irqrestore(&ieee->lock, flags);
+ return 0;
+ }
+ }
+#endif
+ /* Save source and destination addresses */
+ memcpy(dest, skb->data, ETH_ALEN);
+ memcpy(src, skb->data+ETH_ALEN, ETH_ALEN);
+
+#ifdef ENABLE_AMSDU
+ if(ieee->iw_mode == IW_MODE_ADHOC)
+ {
+ p_sta = GetStaInfo(ieee, dest);
+ if(p_sta) {
+ if(p_sta->htinfo.bEnableHT)
+ bIsSptAmsdu = true;
+ }
+ }else if(ieee->iw_mode == IW_MODE_INFRA) {
+ bIsSptAmsdu = true;
+ }else
+ bIsSptAmsdu = true;
+ bIsSptAmsdu = (bIsSptAmsdu && ieee->pHTInfo->bCurrent_AMSDU_Support && qos_actived);
+
+ tcb_desc_skb = (pcb_desc)(skb->cb + MAX_DEV_ADDR_SIZE);
+ if(bIsSptAmsdu) {
+ if(!tcb_desc_skb->bFromAggrQ)
+ {
+ if(qos_actived)
+ {
+ queue_index = UP2AC(skb->priority);
+ } else {
+ queue_index = WME_AC_BE;
+ }
+
+ if ((skb_queue_len(&ieee->skb_aggQ[queue_index]) != 0)||
+#if defined RTL8192SE || defined RTL8192CE
+ (ieee->get_nic_desc_num(ieee->dev,queue_index)) > 1||
+#else
+ (!ieee->check_nic_enough_desc(ieee->dev,queue_index))||
+#endif
+ (ieee->queue_stop) ||
+ (ieee->amsdu_in_process))
+ {
+ /* insert the skb packet to the Aggregation queue */
+ skb_queue_tail(&ieee->skb_aggQ[queue_index], skb);
+ spin_unlock_irqrestore(&ieee->lock, flags);
+ return 0;
+ }
+ }
+ else
+ {
+ if(tcb_desc_skb->bAMSDU)
+ IsAmsdu = true;
+
+ ieee->amsdu_in_process = false;
+ }
+ }
+#endif
+ memset(skb->cb, 0, sizeof(skb->cb));
+ ether_type = ntohs(((struct ethhdr *)skb->data)->h_proto);
+
+ if(ieee->iw_mode == IW_MODE_MONITOR)
+ {
+ txb = rtllib_alloc_txb(1, skb->len, GFP_ATOMIC);
+ if (unlikely(!txb)) {
+ printk(KERN_WARNING "%s: Could not allocate TXB\n",
+ ieee->dev->name);
+ goto failed;
+ }
+
+ txb->encrypted = 0;
+ txb->payload_size = skb->len;
+ memcpy(skb_put(txb->fragments[0],skb->len), skb->data, skb->len);
+
+ goto success;
+ }
+
+ if (skb->len > 282){
+ if (ETH_P_IP == ether_type) {
+ const struct iphdr *ip = (struct iphdr *)((u8 *)skb->data+14);
+ if (IPPROTO_UDP == ip->protocol) {
+ struct udphdr *udp = (struct udphdr *)((u8 *)ip + (ip->ihl << 2));
+ if(((((u8 *)udp)[1] == 68) && (((u8 *)udp)[3] == 67)) ||
+ ((((u8 *)udp)[1] == 67) && (((u8 *)udp)[3] == 68))) {
+ printk("DHCP pkt src port:%d, dest port:%d!!\n", ((u8 *)udp)[1],((u8 *)udp)[3]);
+
+ bdhcp = true;
+#ifdef _RTL8192_EXT_PATCH_
+ ieee->LPSDelayCnt = 100;
+#else
+ ieee->LPSDelayCnt = 100;
+#endif
+ }
+ }
+ }else if(ETH_P_ARP == ether_type){
+ printk("=================>DHCP Protocol start tx ARP pkt!!\n");
+ bdhcp = true;
+ ieee->LPSDelayCnt = ieee->current_network.tim.tim_count;
+
+
+ }
+ }
+
+ skb->priority = rtllib_classify(skb, IsAmsdu);
+#ifdef RTL8192S_WAPI_SUPPORT
+ if(ieee->WapiSupport && ieee->wapiInfo.bWapiEnable){
+ crypt = NULL;
+ encrypt = !(ether_type == ETH_P_PAE && ieee->ieee802_1x) &&
+ ieee->host_encrypt && ieee->WapiSupport && ieee->wapiInfo.bWapiEnable;
+ }
+ else{
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+ crypt = ieee->sta_crypt[ieee->tx_keyidx];
+#else
+ crypt = ieee->crypt[ieee->tx_keyidx];
+#endif
+ encrypt = !(ether_type == ETH_P_PAE && ieee->ieee802_1x) &&
+ ieee->host_encrypt && crypt && crypt->ops;
+#ifdef RTL8192S_WAPI_SUPPORT
+ }
+#endif
+ if (!encrypt && ieee->ieee802_1x &&
+ ieee->drop_unencrypted && ether_type != ETH_P_PAE) {
+ stats->tx_dropped++;
+ goto success;
+ }
+ #ifdef CONFIG_RTLLIB_DEBUG
+ if (crypt && !encrypt && ether_type == ETH_P_PAE) {
+ struct eapol *eap = (struct eapol *)(skb->data +
+ sizeof(struct ethhdr) - SNAP_SIZE - sizeof(u16));
+ RTLLIB_DEBUG_EAP("TX: IEEE 802.11 EAPOL frame: %s\n",
+ eap_get_type(eap->type));
+ }
+ #endif
+
+ /* Advance the SKB to the start of the payload */
+ skb_pull(skb, sizeof(struct ethhdr));
+
+ /* Determine total amount of storage required for TXB packets */
+#ifdef ENABLE_AMSDU
+ if(!IsAmsdu)
+ bytes = skb->len + SNAP_SIZE + sizeof(u16);
+ else
+ bytes = skb->len;
+#else
+ bytes = skb->len + SNAP_SIZE + sizeof(u16);
+#endif
+
+ if (encrypt)
+ fc = RTLLIB_FTYPE_DATA | RTLLIB_FCTL_WEP;
+ else
+ fc = RTLLIB_FTYPE_DATA;
+
+ if(qos_actived)
+ fc |= RTLLIB_STYPE_QOS_DATA;
+ else
+ fc |= RTLLIB_STYPE_DATA;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if ((ieee->iw_mode == IW_MODE_INFRA)
+ || (ieee->iw_mode == IW_MODE_MESH) )
+#else
+ if (ieee->iw_mode == IW_MODE_INFRA)
+#endif
+ {
+ fc |= RTLLIB_FCTL_TODS;
+ /* To DS: Addr1 = BSSID, Addr2 = SA,
+ Addr3 = DA */
+ memcpy(&header.addr1, ieee->current_network.bssid, ETH_ALEN);
+ memcpy(&header.addr2, &src, ETH_ALEN);
+ if(IsAmsdu)
+ memcpy(&header.addr3, ieee->current_network.bssid, ETH_ALEN);
+ else
+ memcpy(&header.addr3, &dest, ETH_ALEN);
+ } else if (ieee->iw_mode == IW_MODE_ADHOC) {
+ /* not From/To DS: Addr1 = DA, Addr2 = SA,
+ Addr3 = BSSID */
+ memcpy(&header.addr1, dest, ETH_ALEN);
+ memcpy(&header.addr2, src, ETH_ALEN);
+ memcpy(&header.addr3, ieee->current_network.bssid, ETH_ALEN);
+ }
+
+ bIsMulticast = is_broadcast_ether_addr(header.addr1) ||is_multicast_ether_addr(header.addr1);
+
+ header.frame_ctl = cpu_to_le16(fc);
+
+ /* Determine fragmentation size based on destination (multicast
+ * and broadcast are not fragmented) */
+ if (bIsMulticast) {
+ frag_size = MAX_FRAG_THRESHOLD;
+ qos_ctl |= QOS_CTL_NOTCONTAIN_ACK;
+ }
+ else {
+#ifdef ENABLE_AMSDU
+ if(bIsSptAmsdu) {
+ if(ieee->iw_mode == IW_MODE_ADHOC) {
+ if(p_sta)
+ frag_size = p_sta->htinfo.AMSDU_MaxSize;
+ else
+ frag_size = ieee->pHTInfo->nAMSDU_MaxSize;
+ }
+ else
+ frag_size = ieee->pHTInfo->nAMSDU_MaxSize;
+ qos_ctl = 0;
+ }
+ else
+#endif
+ {
+ frag_size = ieee->fts;
+ qos_ctl = 0;
+ }
+ }
+
+ if(qos_actived)
+ {
+ hdr_len = RTLLIB_3ADDR_LEN + 2;
+
+ /* in case we are a client verify acm is not set for this ac */
+ while (unlikely(ieee->wmm_acm & (0x01 << skb->priority))) {
+ printk("skb->priority = %x\n", skb->priority);
+ if (wme_downgrade_ac(skb)) {
+ break;
+ }
+ printk("converted skb->priority = %x\n", skb->priority);
+ }
+ qos_ctl |= skb->priority;
+#ifdef ENABLE_AMSDU
+ if(IsAmsdu)
+ {
+ qos_ctl |= QOS_CTL_AMSDU_PRESENT;
+ }
+ header.qos_ctl = cpu_to_le16(qos_ctl);
+#else
+ header.qos_ctl = cpu_to_le16(qos_ctl & RTLLIB_QOS_TID);
+#endif
+ } else {
+ hdr_len = RTLLIB_3ADDR_LEN;
+ }
+ /* Determine amount of payload per fragment. Regardless of if
+ * this stack is providing the full 802.11 header, one will
+ * eventually be affixed to this fragment -- so we must account for
+ * it when determining the amount of payload space. */
+ bytes_per_frag = frag_size - hdr_len;
+ if (ieee->config &
+ (CFG_RTLLIB_COMPUTE_FCS | CFG_RTLLIB_RESERVE_FCS))
+ bytes_per_frag -= RTLLIB_FCS_LEN;
+
+ /* Each fragment may need to have room for encryptiong pre/postfix */
+ if (encrypt) {
+#ifdef RTL8192S_WAPI_SUPPORT
+ if(ieee->WapiSupport && ieee->wapiInfo.bWapiEnable)
+ bytes_per_frag -= ieee->wapiInfo.extra_prefix_len +
+ ieee->wapiInfo.extra_postfix_len;
+ else
+#endif
+ bytes_per_frag -= crypt->ops->extra_prefix_len +
+ crypt->ops->extra_postfix_len;
+ }
+ /* Number of fragments is the total bytes_per_frag /
+ * payload_per_fragment */
+ nr_frags = bytes / bytes_per_frag;
+ bytes_last_frag = bytes % bytes_per_frag;
+ if (bytes_last_frag)
+ nr_frags++;
+ else
+ bytes_last_frag = bytes_per_frag;
+
+ /* When we allocate the TXB we allocate enough space for the reserve
+ * and full fragment bytes (bytes_per_frag doesn't include prefix,
+ * postfix, header, FCS, etc.) */
+ txb = rtllib_alloc_txb(nr_frags, frag_size + ieee->tx_headroom, GFP_ATOMIC);
+ if (unlikely(!txb)) {
+ printk(KERN_WARNING "%s: Could not allocate TXB\n",
+ ieee->dev->name);
+ goto failed;
+ }
+ txb->encrypted = encrypt;
+ txb->payload_size = bytes;
+
+ if(qos_actived)
+ {
+ txb->queue_index = UP2AC(skb->priority);
+ } else {
+ txb->queue_index = WME_AC_BE;;
+ }
+
+ for (i = 0; i < nr_frags; i++) {
+ skb_frag = txb->fragments[i];
+ tcb_desc = (cb_desc *)(skb_frag->cb + MAX_DEV_ADDR_SIZE);
+#ifdef _RTL8192_EXT_PATCH_
+ tcb_desc->mesh_pkt = 0;
+ if(ieee->iw_mode == IW_MODE_ADHOC)
+ tcb_desc->badhoc = 1;
+ else
+ tcb_desc->badhoc = 0;
+#endif
+ if(qos_actived){
+ skb_frag->priority = skb->priority;
+ tcb_desc->queue_index = UP2AC(skb->priority);
+ } else {
+ skb_frag->priority = WME_AC_BE;
+ tcb_desc->queue_index = WME_AC_BE;
+ }
+ skb_reserve(skb_frag, ieee->tx_headroom);
+
+ if (encrypt){
+ if (ieee->hwsec_active)
+ tcb_desc->bHwSec = 1;
+ else
+ tcb_desc->bHwSec = 0;
+#ifdef RTL8192S_WAPI_SUPPORT
+ if(ieee->WapiSupport && ieee->wapiInfo.bWapiEnable)
+ skb_reserve(skb_frag, ieee->wapiInfo.extra_prefix_len);
+ else
+#endif
+ skb_reserve(skb_frag, crypt->ops->extra_prefix_len);
+ }
+ else
+ {
+ tcb_desc->bHwSec = 0;
+ }
+ frag_hdr = (struct rtllib_hdr_3addrqos *)skb_put(skb_frag, hdr_len);
+ memcpy(frag_hdr, &header, hdr_len);
+
+ /* If this is not the last fragment, then add the MOREFRAGS
+ * bit to the frame control */
+ if (i != nr_frags - 1) {
+ frag_hdr->frame_ctl = cpu_to_le16(
+ fc | RTLLIB_FCTL_MOREFRAGS);
+ bytes = bytes_per_frag;
+
+ } else {
+ /* The last fragment takes the remaining length */
+ bytes = bytes_last_frag;
+ }
+ if((qos_actived) && (!bIsMulticast))
+ {
+ frag_hdr->seq_ctl = rtllib_query_seqnum(ieee, skb_frag, header.addr1);
+ frag_hdr->seq_ctl = cpu_to_le16(frag_hdr->seq_ctl<<4 | i);
+ } else {
+ frag_hdr->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0]<<4 | i);
+ }
+ /* Put a SNAP header on the first fragment */
+#ifdef ENABLE_AMSDU
+ if ((i == 0) && (!IsAmsdu))
+#else
+ if (i == 0)
+#endif
+ {
+ rtllib_put_snap(
+ skb_put(skb_frag, SNAP_SIZE + sizeof(u16)),
+ ether_type);
+ bytes -= SNAP_SIZE + sizeof(u16);
+ }
+
+ memcpy(skb_put(skb_frag, bytes), skb->data, bytes);
+
+ /* Advance the SKB... */
+ skb_pull(skb, bytes);
+
+ /* Encryption routine will move the header forward in order
+ * to insert the IV between the header and the payload */
+ if (encrypt) {
+#ifdef RTL8192S_WAPI_SUPPORT
+ if(ieee->WapiSupport && ieee->wapiInfo.bWapiEnable){
+ if(SecSMS4HeaderFillIV(ieee, skb_frag) == 0){
+ SecSWSMS4Encryption(ieee, skb_frag);
+ } else {
+ spin_unlock_irqrestore(&ieee->lock, flags);
+ dev_kfree_skb_any(skb);
+ rtllib_txb_free(txb);
+ return 0;
+ }
+ }
+ else
+#endif
+ {
+
+#ifdef _RTL8192_EXT_PATCH_
+ rtllib_encrypt_fragment(ieee, skb_frag, hdr_len, 0, 0);
+#else
+ rtllib_encrypt_fragment(ieee, skb_frag, hdr_len);
+#endif
+ }
+ }
+ if (ieee->config &
+ (CFG_RTLLIB_COMPUTE_FCS | CFG_RTLLIB_RESERVE_FCS))
+ skb_put(skb_frag, 4);
+ }
+
+ if((qos_actived) && (!bIsMulticast))
+ {
+ if (ieee->seq_ctrl[UP2AC(skb->priority) + 1] == 0xFFF)
+ ieee->seq_ctrl[UP2AC(skb->priority) + 1] = 0;
+ else
+ ieee->seq_ctrl[UP2AC(skb->priority) + 1]++;
+ } else {
+ if (ieee->seq_ctrl[0] == 0xFFF)
+ ieee->seq_ctrl[0] = 0;
+ else
+ ieee->seq_ctrl[0]++;
+ }
+ }else{
+ if (unlikely(skb->len < sizeof(struct rtllib_hdr_3addr))) {
+ printk(KERN_WARNING "%s: skb too small (%d).\n",
+ ieee->dev->name, skb->len);
+ goto success;
+ }
+
+ txb = rtllib_alloc_txb(1, skb->len, GFP_ATOMIC);
+ if(!txb){
+ printk(KERN_WARNING "%s: Could not allocate TXB\n",
+ ieee->dev->name);
+ goto failed;
+ }
+
+ txb->encrypted = 0;
+ txb->payload_size = skb->len;
+ memcpy(skb_put(txb->fragments[0],skb->len), skb->data, skb->len);
+ }
+
+ success:
+ if (txb)
+ {
+#if 1
+ cb_desc *tcb_desc = (cb_desc *)(txb->fragments[0]->cb + MAX_DEV_ADDR_SIZE);
+ tcb_desc->bTxEnableFwCalcDur = 1;
+ tcb_desc->priority = skb->priority;
+
+ if(ether_type == ETH_P_PAE) {
+ if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom)
+ {
+ tcb_desc->data_rate = MgntQuery_TxRateExcludeCCKRates(ieee);
+ tcb_desc->bTxDisableRateFallBack = false;
+ }else{
+ tcb_desc->data_rate = ieee->basic_rate;
+ tcb_desc->bTxDisableRateFallBack = 1;
+ }
+
+
+ tcb_desc->RATRIndex = 7;
+ tcb_desc->bTxUseDriverAssingedRate = 1;
+ } else {
+ if (is_multicast_ether_addr(header.addr1))
+ tcb_desc->bMulticast = 1;
+ if (is_broadcast_ether_addr(header.addr1))
+ tcb_desc->bBroadcast = 1;
+#if defined(RTL8192U) || defined(RTL8192SU) || defined(RTL8192SE)
+ if ( tcb_desc->bMulticast || tcb_desc->bBroadcast){
+ rtllib_txrate_selectmode(ieee, tcb_desc, p_sta);
+ tcb_desc->data_rate = ieee->basic_rate;
+ }
+ else
+ {
+ if(ieee->iw_mode == IW_MODE_ADHOC)
+ {
+ u8 is_peer_shortGI_40M = 0;
+ u8 is_peer_shortGI_20M = 0;
+ u8 is_peer_BW_40M = 0;
+ p_sta = GetStaInfo(ieee, header.addr1);
+ if(NULL == p_sta)
+ {
+ rtllib_txrate_selectmode(ieee, tcb_desc, p_sta);
+ tcb_desc->data_rate = ieee->rate;
+ }
+ else
+ {
+ rtllib_txrate_selectmode(ieee, tcb_desc, p_sta);
+ tcb_desc->data_rate = CURRENT_RATE(p_sta->wireless_mode, p_sta->CurDataRate, p_sta->htinfo.HTHighestOperaRate);
+ is_peer_shortGI_40M = p_sta->htinfo.bCurShortGI40MHz;
+ is_peer_shortGI_20M = p_sta->htinfo.bCurShortGI20MHz;
+ is_peer_BW_40M = p_sta->htinfo.bCurTxBW40MHz;
+ }
+ rtllib_qurey_ShortPreambleMode(ieee, tcb_desc);
+ rtllib_tx_query_agg_cap(ieee, txb->fragments[0], tcb_desc);
+ rtllib_ibss_query_HTCapShortGI(ieee, tcb_desc,is_peer_shortGI_40M,is_peer_shortGI_20M);
+ rtllib_ibss_query_BandwidthMode(ieee, tcb_desc,is_peer_BW_40M);
+ rtllib_query_protectionmode(ieee, tcb_desc, txb->fragments[0]);
+ }
+ else {
+ rtllib_txrate_selectmode(ieee, tcb_desc, p_sta);
+ tcb_desc->data_rate = CURRENT_RATE(ieee->mode, ieee->rate, ieee->HTCurrentOperaRate);
+ if(bdhcp == true){
+ if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom) {
+ tcb_desc->data_rate = MGN_1M;
+ tcb_desc->bTxDisableRateFallBack = false;
+ }else{
+ tcb_desc->data_rate = MGN_1M;
+ tcb_desc->bTxDisableRateFallBack = 1;
+ }
+
+ tcb_desc->RATRIndex = 7;
+ tcb_desc->bTxUseDriverAssingedRate = 1;
+ tcb_desc->bdhcp = 1;
+ }
+ rtllib_qurey_ShortPreambleMode(ieee, tcb_desc);
+ rtllib_tx_query_agg_cap(ieee, txb->fragments[0], tcb_desc);
+ rtllib_query_HTCapShortGI(ieee, tcb_desc);
+ rtllib_query_BandwidthMode(ieee, tcb_desc);
+ rtllib_query_protectionmode(ieee, tcb_desc, txb->fragments[0]);
+
+ }
+ }
+#else
+ rtllib_txrate_selectmode(ieee, tcb_desc);
+ if ( tcb_desc->bMulticast || tcb_desc->bBroadcast)
+ tcb_desc->data_rate = ieee->basic_rate;
+ else
+ tcb_desc->data_rate = CURRENT_RATE(ieee->mode, ieee->rate, ieee->HTCurrentOperaRate);
+
+ if(bdhcp == true){
+ if(ieee->pHTInfo->IOTAction & HT_IOT_ACT_WA_IOT_Broadcom)
+ {
+ tcb_desc->data_rate = MgntQuery_TxRateExcludeCCKRates(ieee);
+ tcb_desc->bTxDisableRateFallBack = false;
+ }else{
+ tcb_desc->data_rate = MGN_1M;
+ tcb_desc->bTxDisableRateFallBack = 1;
+ }
+
+
+ tcb_desc->RATRIndex = 7;
+ tcb_desc->bTxUseDriverAssingedRate = 1;
+ tcb_desc->bdhcp = 1;
+ }
+
+ rtllib_qurey_ShortPreambleMode(ieee, tcb_desc);
+ rtllib_tx_query_agg_cap(ieee, txb->fragments[0], tcb_desc);
+ rtllib_query_HTCapShortGI(ieee, tcb_desc);
+ rtllib_query_BandwidthMode(ieee, tcb_desc);
+ rtllib_query_protectionmode(ieee, tcb_desc, txb->fragments[0]);
+#endif
+ }
+#endif
+ }
+ spin_unlock_irqrestore(&ieee->lock, flags);
+ dev_kfree_skb_any(skb);
+ if (txb) {
+ if (ieee->softmac_features & IEEE_SOFTMAC_TX_QUEUE){
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,18))
+ dev->stats.tx_packets++;
+ dev->stats.tx_bytes += txb->payload_size;
+#endif
+ rtllib_softmac_xmit(txb, ieee);
+ }else{
+ if ((*ieee->hard_start_xmit)(txb, dev) == 0) {
+ stats->tx_packets++;
+ stats->tx_bytes += txb->payload_size;
+ return 0;
+ }
+ rtllib_txb_free(txb);
+ }
+ }
+
+ return 0;
+
+ failed:
+ spin_unlock_irqrestore(&ieee->lock, flags);
+ netif_stop_queue(dev);
+ stats->tx_errors++;
+ return 1;
+
+}
+int rtllib_xmit(struct sk_buff *skb, struct net_device *dev)
+{
+ memset(skb->cb, 0, sizeof(skb->cb));
+ return rtllib_xmit_inter(skb, dev);
+}
+
+
+#ifndef BUILT_IN_RTLLIB
+EXPORT_SYMBOL_RSL(rtllib_txb_free);
+#ifdef ENABLE_AMSDU
+EXPORT_SYMBOL_RSL(rtllib_xmit_inter);
+EXPORT_SYMBOL_RSL(AMSDU_Aggregation);
+EXPORT_SYMBOL_RSL(AMSDU_GetAggregatibleList);
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+EXPORT_SYMBOL_RSL(rtllib_query_seqnum);
+EXPORT_SYMBOL_RSL(rtllib_alloc_txb);
+EXPORT_SYMBOL_RSL(rtllib_encrypt_fragment);
+#endif
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/rtllib_wx.c b/ubuntu/rtl8192se/rtllib/rtllib_wx.c
new file mode 100755
index 00000000000..cd297f4a51a
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/rtllib_wx.c
@@ -0,0 +1,1346 @@
+/******************************************************************************
+
+ Copyright(c) 2004 Intel Corporation. All rights reserved.
+
+ Portions of this file are based on the WEP enablement code provided by the
+ Host AP project hostap-drivers v0.1.3
+ Copyright (c) 2001-2002, SSH Communications Security Corp and Jouni Malinen
+ <jkmaline@cc.hut.fi>
+ Copyright (c) 2002-2003, Jouni Malinen <jkmaline@cc.hut.fi>
+
+ This program is free software; you can redistribute it and/or modify it
+ under the terms of version 2 of the GNU General Public License as
+ published by the Free Software Foundation.
+
+ This program is distributed in the hope that it will be useful, but WITHOUT
+ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ more details.
+
+ You should have received a copy of the GNU General Public License along with
+ this program; if not, write to the Free Software Foundation, Inc., 59
+ Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ The full GNU General Public License is included in this distribution in the
+ file called LICENSE.
+
+ Contact Information:
+ James P. Ketrenos <ipw2100-admin@linux.intel.com>
+ Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497
+
+******************************************************************************/
+#include <linux/wireless.h>
+#include <linux/version.h>
+#include <linux/kmod.h>
+#include <linux/module.h>
+
+#include "rtllib.h"
+#if 0
+static const char *rtllib_modes[] = {
+ "?", "a", "b", "ab", "g", "ag", "bg", "abg"
+};
+#endif
+struct modes_unit {
+ char *mode_string;
+ int mode_size;
+};
+static struct modes_unit rtllib_modes[] = {
+ {"a",1},
+ {"b",1},
+ {"g",1},
+ {"?",1},
+#ifdef _RTL8192_EXT_PATCH_
+ {"n",5},
+ {"n",4},
+#else
+ {"N-24G",5},
+ {"N-5G",4},
+#endif
+};
+
+#define MAX_CUSTOM_LEN 64
+static inline char *rtl819x_translate_scan(struct rtllib_device *ieee,
+ char *start, char *stop,
+ struct rtllib_network *network,
+ struct iw_request_info *info)
+{
+ char custom[MAX_CUSTOM_LEN];
+ char proto_name[IFNAMSIZ];
+ char *pname = proto_name;
+ char *p;
+ struct iw_event iwe;
+ int i, j;
+ u16 max_rate, rate;
+ static u8 EWC11NHTCap[] = {0x00, 0x90, 0x4c, 0x33};
+
+ /* First entry *MUST* be the AP MAC address */
+ iwe.cmd = SIOCGIWAP;
+ iwe.u.ap_addr.sa_family = ARPHRD_ETHER;
+ memcpy(iwe.u.ap_addr.sa_data, network->bssid, ETH_ALEN);
+ start = iwe_stream_add_event_rsl(info, start, stop, &iwe, IW_EV_ADDR_LEN);
+ /* Remaining entries will be displayed in the order we provide them */
+
+ /* Add the ESSID */
+ iwe.cmd = SIOCGIWESSID;
+ iwe.u.data.flags = 1;
+ if(network->ssid_len > 0){
+ iwe.u.data.length = min(network->ssid_len, (u8)32);
+ start = iwe_stream_add_point_rsl(info, start, stop, &iwe, network->ssid);
+ }else if(network->hidden_ssid_len == 0){
+ iwe.u.data.length = sizeof("<hidden>");
+ start = iwe_stream_add_point_rsl(info, start, stop, &iwe, "<hidden>");
+ }else {
+ iwe.u.data.length = min(network->hidden_ssid_len, (u8)32);
+ start = iwe_stream_add_point_rsl(info, start, stop, &iwe, network->hidden_ssid);
+ }
+ /* Add the protocol name */
+ iwe.cmd = SIOCGIWNAME;
+ for(i=0; i<(sizeof(rtllib_modes)/sizeof(rtllib_modes[0])); i++) {
+ if(network->mode&(1<<i)) {
+ sprintf(pname,rtllib_modes[i].mode_string,rtllib_modes[i].mode_size);
+ pname +=rtllib_modes[i].mode_size;
+ }
+ }
+ *pname = '\0';
+ snprintf(iwe.u.name, IFNAMSIZ, "IEEE802.11%s", proto_name);
+ start = iwe_stream_add_event_rsl(info, start, stop, &iwe, IW_EV_CHAR_LEN);
+ /* Add mode */
+ iwe.cmd = SIOCGIWMODE;
+ if (network->capability &
+ (WLAN_CAPABILITY_ESS | WLAN_CAPABILITY_IBSS)) {
+ if (network->capability & WLAN_CAPABILITY_ESS)
+ iwe.u.mode = IW_MODE_MASTER;
+ else
+ iwe.u.mode = IW_MODE_ADHOC;
+ start = iwe_stream_add_event_rsl(info, start, stop, &iwe, IW_EV_UINT_LEN);
+ }
+
+ /* Add frequency/channel */
+ iwe.cmd = SIOCGIWFREQ;
+/* iwe.u.freq.m = rtllib_frequency(network->channel, network->mode);
+ iwe.u.freq.e = 3; */
+ iwe.u.freq.m = network->channel;
+ iwe.u.freq.e = 0;
+ iwe.u.freq.i = 0;
+ start = iwe_stream_add_event_rsl(info, start, stop, &iwe, IW_EV_FREQ_LEN);
+
+ /* Add encryption capability */
+ iwe.cmd = SIOCGIWENCODE;
+ if (network->capability & WLAN_CAPABILITY_PRIVACY)
+ iwe.u.data.flags = IW_ENCODE_ENABLED | IW_ENCODE_NOKEY;
+ else
+ iwe.u.data.flags = IW_ENCODE_DISABLED;
+ iwe.u.data.length = 0;
+ start = iwe_stream_add_point_rsl(info, start, stop, &iwe, network->ssid);
+ /* Add basic and extended rates */
+ max_rate = 0;
+ p = custom;
+ p += snprintf(p, MAX_CUSTOM_LEN - (p - custom), " Rates (Mb/s): ");
+ for (i = 0, j = 0; i < network->rates_len; ) {
+ if (j < network->rates_ex_len &&
+ ((network->rates_ex[j] & 0x7F) <
+ (network->rates[i] & 0x7F)))
+ rate = network->rates_ex[j++] & 0x7F;
+ else
+ rate = network->rates[i++] & 0x7F;
+ if (rate > max_rate)
+ max_rate = rate;
+ p += snprintf(p, MAX_CUSTOM_LEN - (p - custom),
+ "%d%s ", rate >> 1, (rate & 1) ? ".5" : "");
+ }
+ for (; j < network->rates_ex_len; j++) {
+ rate = network->rates_ex[j] & 0x7F;
+ p += snprintf(p, MAX_CUSTOM_LEN - (p - custom),
+ "%d%s ", rate >> 1, (rate & 1) ? ".5" : "");
+ if (rate > max_rate)
+ max_rate = rate;
+ }
+
+ if (network->mode >= IEEE_N_24G)
+ {
+ PHT_CAPABILITY_ELE ht_cap = NULL;
+ bool is40M = false, isShortGI = false;
+ u8 max_mcs = 0;
+ if (!memcmp(network->bssht.bdHTCapBuf, EWC11NHTCap, 4))
+ ht_cap = (PHT_CAPABILITY_ELE)&network->bssht.bdHTCapBuf[4];
+ else
+ ht_cap = (PHT_CAPABILITY_ELE)&network->bssht.bdHTCapBuf[0];
+ is40M = (ht_cap->ChlWidth)?1:0;
+ isShortGI = (ht_cap->ChlWidth)?
+ ((ht_cap->ShortGI40Mhz)?1:0):
+ ((ht_cap->ShortGI20Mhz)?1:0);
+
+ max_mcs = HTGetHighestMCSRate(ieee, ht_cap->MCS, MCS_FILTER_ALL);
+ rate = MCS_DATA_RATE[is40M][isShortGI][max_mcs&0x7f];
+ if (rate > max_rate)
+ max_rate = rate;
+ }
+#if 0
+ printk("max rate:%d ===basic rate:\n", max_rate);
+ for (i=0;i<network->rates_len;i++)
+ printk(" %x", network->rates[i]);
+ printk("\n=======extend rate\n");
+ for (i=0; i<network->rates_ex_len; i++)
+ printk(" %x", network->rates_ex[i]);
+ printk("\n");
+#endif
+ iwe.cmd = SIOCGIWRATE;
+ iwe.u.bitrate.fixed = iwe.u.bitrate.disabled = 0;
+ iwe.u.bitrate.value = max_rate * 500000;
+ start = iwe_stream_add_event_rsl(info, start, stop, &iwe,
+ IW_EV_PARAM_LEN);
+ iwe.cmd = IWEVCUSTOM;
+ iwe.u.data.length = p - custom;
+ if (iwe.u.data.length)
+ start = iwe_stream_add_point_rsl(info, start, stop, &iwe, custom);
+ /* Add quality statistics */
+ /* TODO: Fix these values... */
+ iwe.cmd = IWEVQUAL;
+ iwe.u.qual.qual = network->stats.signal;
+ iwe.u.qual.level = network->stats.rssi;
+ iwe.u.qual.noise = network->stats.noise;
+ iwe.u.qual.updated = network->stats.mask & RTLLIB_STATMASK_WEMASK;
+ if (!(network->stats.mask & RTLLIB_STATMASK_RSSI))
+ iwe.u.qual.updated |= IW_QUAL_LEVEL_INVALID;
+ if (!(network->stats.mask & RTLLIB_STATMASK_NOISE))
+ iwe.u.qual.updated |= IW_QUAL_NOISE_INVALID;
+ if (!(network->stats.mask & RTLLIB_STATMASK_SIGNAL))
+ iwe.u.qual.updated |= IW_QUAL_QUAL_INVALID;
+ iwe.u.qual.updated = 7;
+ start = iwe_stream_add_event_rsl(info, start, stop, &iwe, IW_EV_QUAL_LEN);
+
+ iwe.cmd = IWEVCUSTOM;
+ p = custom;
+ iwe.u.data.length = p - custom;
+ if (iwe.u.data.length)
+ start = iwe_stream_add_point_rsl(info, start, stop, &iwe, custom);
+#if (WIRELESS_EXT < 18)
+ if (ieee->wpa_enabled && network->wpa_ie_len){
+ char buf[MAX_WPA_IE_LEN * 2 + 30];
+ u8 *p = buf;
+ p += sprintf(p, "wpa_ie=");
+ for (i = 0; i < network->wpa_ie_len; i++) {
+ p += sprintf(p, "%02x", network->wpa_ie[i]);
+ }
+
+ memset(&iwe, 0, sizeof(iwe));
+ iwe.cmd = IWEVCUSTOM;
+ iwe.u.data.length = strlen(buf);
+ start = iwe_stream_add_point_rsl(info, start, stop, &iwe, buf);
+ }
+
+ if (ieee->wpa_enabled && network->rsn_ie_len){
+ char buf[MAX_WPA_IE_LEN * 2 + 30];
+
+ u8 *p = buf;
+ p += sprintf(p, "rsn_ie=");
+ for (i = 0; i < network->rsn_ie_len; i++) {
+ p += sprintf(p, "%02x", network->rsn_ie[i]);
+ }
+
+ memset(&iwe, 0, sizeof(iwe));
+ iwe.cmd = IWEVCUSTOM;
+ iwe.u.data.length = strlen(buf);
+ start = iwe_stream_add_point_rsl(info, start, stop, &iwe, buf);
+ }
+#else
+ memset(&iwe, 0, sizeof(iwe));
+ if (network->wpa_ie_len)
+ {
+ char buf[MAX_WPA_IE_LEN];
+ memcpy(buf, network->wpa_ie, network->wpa_ie_len);
+ iwe.cmd = IWEVGENIE;
+ iwe.u.data.length = network->wpa_ie_len;
+ start = iwe_stream_add_point_rsl(info, start, stop, &iwe, buf);
+ }
+ memset(&iwe, 0, sizeof(iwe));
+ if (network->rsn_ie_len)
+ {
+ char buf[MAX_WPA_IE_LEN];
+ memcpy(buf, network->rsn_ie, network->rsn_ie_len);
+ iwe.cmd = IWEVGENIE;
+ iwe.u.data.length = network->rsn_ie_len;
+ start = iwe_stream_add_point_rsl(info, start, stop, &iwe, buf);
+ }
+
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+#ifndef CUSTOMER_ID_INTEL_CMPC
+ /* add info for WZC */
+ memset(&iwe, 0, sizeof(iwe));
+ if (network->wzc_ie_len)
+ {
+ char buf[MAX_WZC_IE_LEN];
+ memcpy(buf, network->wzc_ie, network->wzc_ie_len);
+ iwe.cmd = IWEVGENIE;
+ iwe.u.data.length = network->wzc_ie_len;
+ start = iwe_stream_add_point_rsl(info, start, stop, &iwe, buf);
+ }
+#endif
+#endif
+#endif
+
+ /* Add EXTRA: Age to display seconds since last beacon/probe response
+ * for given network. */
+ iwe.cmd = IWEVCUSTOM;
+ p = custom;
+ p += snprintf(p, MAX_CUSTOM_LEN - (p - custom),
+ " Last beacon: %lums ago", (jiffies - network->last_scanned) / (HZ / 100));
+ iwe.u.data.length = p - custom;
+ if (iwe.u.data.length)
+ start = iwe_stream_add_point_rsl(info, start, stop, &iwe, custom);
+
+ return start;
+}
+
+int rtllib_wx_get_scan(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+ struct rtllib_network *network;
+ unsigned long flags;
+
+ char *ev = extra;
+ char *stop = ev + wrqu->data.length;
+ int i = 0;
+ int err = 0;
+ RTLLIB_DEBUG_WX("Getting scan\n");
+ down(&ieee->wx_sem);
+ spin_lock_irqsave(&ieee->lock, flags);
+
+ list_for_each_entry(network, &ieee->network_list, list) {
+ i++;
+ if((stop-ev)<200)
+ {
+ err = -E2BIG;
+ break;
+ }
+ if (ieee->scan_age == 0 ||
+ time_after(network->last_scanned + ieee->scan_age, jiffies))
+ ev = rtl819x_translate_scan(ieee, ev, stop, network, info);
+ else
+ RTLLIB_DEBUG_SCAN(
+ "Not showing network '%s ("
+ MAC_FMT ")' due to age (%lums).\n",
+ escape_essid(network->ssid,
+ network->ssid_len),
+ MAC_ARG(network->bssid),
+ (jiffies - network->last_scanned) / (HZ / 100));
+ }
+
+ spin_unlock_irqrestore(&ieee->lock, flags);
+ up(&ieee->wx_sem);
+ wrqu->data.length = ev - extra;
+ wrqu->data.flags = 0;
+
+ RTLLIB_DEBUG_WX("exit: %d networks returned.\n", i);
+
+ return err;
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+int rtllib_wx_set_encode(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *keybuf, u8 is_mesh)
+#else
+int rtllib_wx_set_encode(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *keybuf)
+#endif
+{
+ struct iw_point *erq = &(wrqu->encoding);
+ struct net_device *dev = ieee->dev;
+ struct rtllib_security sec = {
+ .flags = 0
+ };
+ int i, key, key_provided, len;
+ struct rtllib_crypt_data **crypt;
+
+ RTLLIB_DEBUG_WX("SET_ENCODE\n");
+
+ key = erq->flags & IW_ENCODE_INDEX;
+ if (key) {
+ if (key > WEP_KEYS)
+ return -EINVAL;
+ key--;
+ key_provided = 1;
+ } else {
+ key_provided = 0;
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ key = ieee->mesh_txkeyidx;
+ else
+#endif
+ key = ieee->tx_keyidx;
+ }
+
+ RTLLIB_DEBUG_WX("Key: %d [%s]\n", key, key_provided ?
+ "provided" : "default");
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ crypt = &ieee->cryptlist[0]->crypt[key];
+ else
+ crypt = &ieee->sta_crypt[key];
+#else
+ crypt = &ieee->crypt[key];
+#endif
+ if (erq->flags & IW_ENCODE_DISABLED) {
+ if (key_provided && *crypt) {
+ RTLLIB_DEBUG_WX("Disabling encryption on key %d.\n",
+ key);
+ rtllib_crypt_delayed_deinit(ieee, crypt);
+ } else
+ RTLLIB_DEBUG_WX("Disabling encryption.\n");
+
+ /* Check all the keys to see if any are still configured,
+ * and if no key index was provided, de-init them all */
+ for (i = 0; i < WEP_KEYS; i++) {
+#ifdef _RTL8192_EXT_PATCH_
+ bool null_crypt = false;
+ if(is_mesh)
+ null_crypt = (ieee->cryptlist[0]->crypt[i] != NULL) ? true:false;
+ else
+ null_crypt = (ieee->sta_crypt[i] != NULL) ? true:false;
+ if (null_crypt)
+#else
+ if (ieee->crypt[i] != NULL)
+#endif
+ {
+ if (key_provided)
+ break;
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ rtllib_crypt_delayed_deinit(ieee, &ieee->cryptlist[0]->crypt[i]);
+ else
+ rtllib_crypt_delayed_deinit(ieee, &ieee->sta_crypt[i]);
+#else
+ rtllib_crypt_delayed_deinit(ieee, &ieee->crypt[i]);
+#endif
+
+ }
+ }
+
+ if (i == WEP_KEYS) {
+ sec.enabled = 0;
+ sec.level = SEC_LEVEL_0;
+ sec.flags |= SEC_ENABLED | SEC_LEVEL;
+ }
+
+ goto done;
+ }
+
+
+
+ sec.enabled = 1;
+ sec.flags |= SEC_ENABLED;
+
+ if (*crypt != NULL && (*crypt)->ops != NULL &&
+ strcmp((*crypt)->ops->name, "WEP") != 0) {
+ /* changing to use WEP; deinit previously used algorithm
+ * on this key */
+ rtllib_crypt_delayed_deinit(ieee, crypt);
+ }
+
+ if (*crypt == NULL) {
+ struct rtllib_crypt_data *new_crypt;
+
+ /* take WEP into use */
+ new_crypt = kmalloc(sizeof(struct rtllib_crypt_data),
+ GFP_KERNEL);
+ if (new_crypt == NULL)
+ return -ENOMEM;
+ memset(new_crypt, 0, sizeof(struct rtllib_crypt_data));
+ new_crypt->ops = rtllib_get_crypto_ops("WEP");
+ if (!new_crypt->ops) {
+ request_module("rtllib_crypt_wep");
+ new_crypt->ops = rtllib_get_crypto_ops("WEP");
+ }
+
+#ifdef BUILT_IN_RTLLIB
+ if (new_crypt->ops)
+#else
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+ if (new_crypt->ops && try_module_get(new_crypt->ops->owner))
+#else
+ if (new_crypt->ops && try_inc_mod_count(new_crypt->ops->owner))
+#endif
+#endif
+ {
+ new_crypt->priv = new_crypt->ops->init(key);
+ }
+
+ if (!new_crypt->ops || !new_crypt->priv) {
+ kfree(new_crypt);
+ new_crypt = NULL;
+
+ printk(KERN_WARNING "%s: could not initialize WEP: "
+ "load module rtllib_crypt_wep\n",
+ dev->name);
+ return -EOPNOTSUPP;
+ }
+ *crypt = new_crypt;
+ }
+
+ /* If a new key was provided, set it up */
+ if (erq->length > 0) {
+ len = erq->length <= 5 ? 5 : 13;
+ memcpy(sec.keys[key], keybuf, erq->length);
+ if (len > erq->length)
+ memset(sec.keys[key] + erq->length, 0,
+ len - erq->length);
+ RTLLIB_DEBUG_WX("Setting key %d to '%s' (%d:%d bytes)\n",
+ key, escape_essid(sec.keys[key], len),
+ erq->length, len);
+ sec.key_sizes[key] = len;
+ (*crypt)->ops->set_key(sec.keys[key], len, NULL,
+ (*crypt)->priv);
+ sec.flags |= (1 << key);
+ /* This ensures a key will be activated if no key is
+ * explicitely set */
+ if (key == sec.active_key)
+ sec.flags |= SEC_ACTIVE_KEY;
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ ieee->mesh_txkeyidx = key;
+ else
+#endif
+ ieee->tx_keyidx = key;
+
+ } else {
+ len = (*crypt)->ops->get_key(sec.keys[key], WEP_KEY_LEN,
+ NULL, (*crypt)->priv);
+ if (len == 0) {
+ /* Set a default key of all 0 */
+ printk("Setting key %d to all zero.\n",
+ key);
+
+ RTLLIB_DEBUG_WX("Setting key %d to all zero.\n",
+ key);
+ memset(sec.keys[key], 0, 13);
+ (*crypt)->ops->set_key(sec.keys[key], 13, NULL,
+ (*crypt)->priv);
+ sec.key_sizes[key] = 13;
+ sec.flags |= (1 << key);
+ }
+
+ /* No key data - just set the default TX key index */
+ if (key_provided) {
+ RTLLIB_DEBUG_WX(
+ "Setting key %d to default Tx key.\n", key);
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ ieee->mesh_txkeyidx = key;
+ else
+#endif
+ ieee->tx_keyidx = key;
+ sec.active_key = key;
+ sec.flags |= SEC_ACTIVE_KEY;
+ }
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if ((ieee->iw_mode == IW_MODE_MESH)&&(is_mesh)&&ieee->ext_patch_rtllib_create_crypt_for_peer)
+ {
+ ieee->ext_patch_rtllib_create_crypt_for_peer(ieee);
+ }
+#endif
+ done:
+ ieee->open_wep = !(erq->flags & IW_ENCODE_RESTRICTED);
+ ieee->auth_mode = ieee->open_wep ? WLAN_AUTH_OPEN : WLAN_AUTH_SHARED_KEY;
+ sec.auth_mode = ieee->open_wep ? WLAN_AUTH_OPEN : WLAN_AUTH_SHARED_KEY;
+ sec.flags |= SEC_AUTH_MODE;
+ RTLLIB_DEBUG_WX("Auth: %s\n", sec.auth_mode == WLAN_AUTH_OPEN ?
+ "OPEN" : "SHARED KEY");
+
+ /* For now we just support WEP, so only set that security level...
+ * TODO: When WPA is added this is one place that needs to change */
+ sec.flags |= SEC_LEVEL;
+ sec.level = SEC_LEVEL_1; /* 40 and 104 bit WEP */
+
+ if (ieee->set_security)
+ ieee->set_security(dev, &sec);
+
+ /* Do not reset port if card is in Managed mode since resetting will
+ * generate new IEEE 802.11 authentication which may end up in looping
+ * with IEEE 802.1X. If your hardware requires a reset after WEP
+ * configuration (for example... Prism2), implement the reset_port in
+ * the callbacks structures used to initialize the 802.11 stack. */
+ if (ieee->reset_on_keychange &&
+ ieee->iw_mode != IW_MODE_INFRA &&
+ ieee->reset_port && ieee->reset_port(dev)) {
+ printk(KERN_DEBUG "%s: reset_port failed\n", dev->name);
+ return -EINVAL;
+ }
+ return 0;
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+int rtllib_wx_get_encode(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *keybuf, u8 is_mesh)
+#else
+int rtllib_wx_get_encode(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *keybuf)
+#endif
+{
+ struct iw_point *erq = &(wrqu->encoding);
+ int len, key;
+ struct rtllib_crypt_data *crypt;
+
+ RTLLIB_DEBUG_WX("GET_ENCODE\n");
+
+ if(ieee->iw_mode == IW_MODE_MONITOR)
+ return -1;
+
+ key = erq->flags & IW_ENCODE_INDEX;
+ if (key) {
+ if (key > WEP_KEYS)
+ return -EINVAL;
+ key--;
+ } else {
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ key = ieee->mesh_txkeyidx;
+ else
+#endif
+ key = ieee->tx_keyidx;
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ crypt = ieee->cryptlist[0]->crypt[key];
+ else
+ crypt = ieee->sta_crypt[key];
+#else
+ crypt = ieee->crypt[key];
+#endif
+
+ erq->flags = key + 1;
+
+ if (crypt == NULL || crypt->ops == NULL) {
+ erq->length = 0;
+ erq->flags |= IW_ENCODE_DISABLED;
+ return 0;
+ }
+#if 0
+ if (strcmp(crypt->ops->name, "WEP") != 0) {
+ /* only WEP is supported with wireless extensions, so just
+ * report that encryption is used */
+ erq->length = 0;
+ erq->flags |= IW_ENCODE_ENABLED;
+ return 0;
+ }
+#endif
+ len = crypt->ops->get_key(keybuf, SCM_KEY_LEN, NULL, crypt->priv);
+ erq->length = (len >= 0 ? len : 0);
+
+ erq->flags |= IW_ENCODE_ENABLED;
+
+ if (ieee->open_wep)
+ erq->flags |= IW_ENCODE_OPEN;
+ else
+ erq->flags |= IW_ENCODE_RESTRICTED;
+
+ return 0;
+}
+#if (WIRELESS_EXT >= 18)
+#ifdef _RTL8192_EXT_PATCH_
+int rtllib_wx_set_encode_ext(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra, u8 is_mesh)
+#else
+int rtllib_wx_set_encode_ext(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+#endif
+{
+ int ret = 0;
+ struct net_device *dev = ieee->dev;
+ struct iw_point *encoding = &wrqu->encoding;
+ struct iw_encode_ext *ext = (struct iw_encode_ext *)extra;
+ int i, idx;
+ int group_key = 0;
+ const char *alg, *module;
+ struct rtllib_crypto_ops *ops;
+ struct rtllib_crypt_data **crypt;
+
+ struct rtllib_security sec = {
+ .flags = 0,
+ };
+ idx = encoding->flags & IW_ENCODE_INDEX;
+ if (idx) {
+ if (idx < 1 || idx > WEP_KEYS)
+ return -EINVAL;
+ idx--;
+ } else{
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ idx = ieee->mesh_txkeyidx;
+ else
+#endif
+ idx = ieee->tx_keyidx;
+ }
+ if (ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) {
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ crypt = &ieee->cryptlist[0]->crypt[idx];
+ else
+ crypt = &ieee->sta_crypt[idx];
+#else
+ crypt = &ieee->crypt[idx];
+#endif
+ group_key = 1;
+ } else {
+ /* some Cisco APs use idx>0 for unicast in dynamic WEP */
+ if (idx != 0 && ext->alg != IW_ENCODE_ALG_WEP)
+ return -EINVAL;
+#ifdef _RTL8192_EXT_PATCH_
+ if ((ieee->iw_mode == IW_MODE_INFRA)||
+ ((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0))){
+ if(is_mesh)
+ crypt = &ieee->cryptlist[0]->crypt[idx];
+ else
+ crypt = &ieee->sta_crypt[idx];
+ }
+ else
+ return -EINVAL;
+#else
+ if (ieee->iw_mode == IW_MODE_INFRA)
+ crypt = &ieee->crypt[idx];
+ else
+ return -EINVAL;
+#endif
+ }
+
+ sec.flags |= SEC_ENABLED;
+ if ((encoding->flags & IW_ENCODE_DISABLED) ||
+ ext->alg == IW_ENCODE_ALG_NONE) {
+ if (*crypt)
+ rtllib_crypt_delayed_deinit(ieee, crypt);
+
+ for (i = 0; i < WEP_KEYS; i++)
+ {
+#ifdef _RTL8192_EXT_PATCH_
+ if ((is_mesh)&&(ieee->cryptlist[0]->crypt[i] != NULL))
+ break;
+ if ((!is_mesh)&&(ieee->sta_crypt[i] != NULL))
+ break;
+#else
+ if (ieee->crypt[i] != NULL)
+ break;
+#endif
+ }
+ if (i == WEP_KEYS) {
+ sec.enabled = 0;
+ sec.level = SEC_LEVEL_0;
+ sec.flags |= SEC_LEVEL;
+ }
+ goto done;
+ }
+
+ sec.enabled = 1;
+#if 0
+ if (group_key ? !ieee->host_mc_decrypt :
+ !(ieee->host_encrypt || ieee->host_decrypt ||
+ ieee->host_encrypt_msdu))
+ goto skip_host_crypt;
+#endif
+ switch (ext->alg) {
+ case IW_ENCODE_ALG_WEP:
+ alg = "WEP";
+ module = "rtllib_crypt_wep";
+ break;
+ case IW_ENCODE_ALG_TKIP:
+ alg = "TKIP";
+ module = "rtllib_crypt_tkip";
+ break;
+ case IW_ENCODE_ALG_CCMP:
+ alg = "CCMP";
+ module = "rtllib_crypt_ccmp";
+ break;
+ default:
+ RTLLIB_DEBUG_WX("%s: unknown crypto alg %d\n",
+ dev->name, ext->alg);
+ ret = -EINVAL;
+ goto done;
+ }
+ printk("alg name:%s\n",alg);
+
+ ops = rtllib_get_crypto_ops(alg);
+ if (ops == NULL) {
+ char tempbuf[100];
+
+ memset( tempbuf, 0x00, 100 );
+ sprintf( tempbuf, "%s", module);
+ request_module("%s",tempbuf);
+ ops = rtllib_get_crypto_ops(alg);
+ }
+ if (ops == NULL) {
+ RTLLIB_DEBUG_WX("%s: unknown crypto alg %d\n",
+ dev->name, ext->alg);
+ printk("========>unknown crypto alg %d\n", ext->alg);
+ ret = -EINVAL;
+ goto done;
+ }
+
+ if (*crypt == NULL || (*crypt)->ops != ops) {
+ struct rtllib_crypt_data *new_crypt;
+
+ rtllib_crypt_delayed_deinit(ieee, crypt);
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
+ new_crypt = kzalloc(sizeof(*new_crypt), GFP_KERNEL);
+#else
+ new_crypt = kmalloc(sizeof(*new_crypt), GFP_KERNEL);
+ memset(new_crypt,0,sizeof(*new_crypt));
+#endif
+ if (new_crypt == NULL) {
+ ret = -ENOMEM;
+ goto done;
+ }
+ new_crypt->ops = ops;
+#ifdef BUILT_IN_RTLLIB
+ if (new_crypt->ops)
+#else
+ if (new_crypt->ops && try_module_get(new_crypt->ops->owner))
+#endif
+ {
+ new_crypt->priv = new_crypt->ops->init(idx);
+ }
+
+ if (new_crypt->priv == NULL) {
+ kfree(new_crypt);
+ ret = -EINVAL;
+ goto done;
+ }
+ *crypt = new_crypt;
+
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if ((ieee->iw_mode == IW_MODE_MESH)&&(is_mesh))
+ {
+ int j;
+ for (j=1; j<MAX_MP; j++)
+ {
+ struct rtllib_crypt_data ** crypttmp = &ieee->cryptlist[j]->crypt[idx];
+ if (*crypttmp == NULL)
+ break;
+ if (*crypttmp && (*crypttmp)->ops != ops)
+ rtllib_crypt_delayed_deinit(ieee, crypttmp);
+ }
+ }
+#endif
+
+ if (ext->key_len > 0 && (*crypt)->ops->set_key &&
+ (*crypt)->ops->set_key(ext->key, ext->key_len, ext->rx_seq,
+ (*crypt)->priv) < 0) {
+ RTLLIB_DEBUG_WX("%s: key setting failed\n", dev->name);
+ printk("key setting failed\n");
+ ret = -EINVAL;
+ goto done;
+ }
+#if 1
+ if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) {
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ ieee->mesh_txkeyidx = idx;
+ else
+#endif
+ ieee->tx_keyidx = idx;
+ sec.active_key = idx;
+ sec.flags |= SEC_ACTIVE_KEY;
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if ((ieee->iw_mode == IW_MODE_MESH)&&(is_mesh)&&ieee->ext_patch_rtllib_create_crypt_for_peer)
+ {
+ ieee->ext_patch_rtllib_create_crypt_for_peer(ieee);
+ }
+#endif
+ if (ext->alg != IW_ENCODE_ALG_NONE) {
+ sec.key_sizes[idx] = ext->key_len;
+ sec.flags |= (1 << idx);
+ if (ext->alg == IW_ENCODE_ALG_WEP) {
+ sec.flags |= SEC_LEVEL;
+ sec.level = SEC_LEVEL_1;
+ } else if (ext->alg == IW_ENCODE_ALG_TKIP) {
+ sec.flags |= SEC_LEVEL;
+ sec.level = SEC_LEVEL_2;
+ } else if (ext->alg == IW_ENCODE_ALG_CCMP) {
+ sec.flags |= SEC_LEVEL;
+ sec.level = SEC_LEVEL_3;
+ }
+ /* Don't set sec level for group keys. */
+ if (group_key)
+ sec.flags &= ~SEC_LEVEL;
+ }
+#endif
+done:
+ if (ieee->set_security)
+ ieee->set_security(ieee->dev, &sec);
+
+ if (ieee->reset_on_keychange &&
+ ieee->iw_mode != IW_MODE_INFRA &&
+ ieee->reset_port && ieee->reset_port(dev)) {
+ RTLLIB_DEBUG_WX("%s: reset_port failed\n", dev->name);
+ return -EINVAL;
+ }
+ return ret;
+}
+
+#ifdef _RTL8192_EXT_PATCH_
+int rtllib_wx_get_encode_ext(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra, u8 is_mesh)
+#else
+int rtllib_wx_get_encode_ext(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+#endif
+{
+ struct iw_point *encoding = &wrqu->encoding;
+ struct iw_encode_ext *ext = (struct iw_encode_ext *)extra;
+ struct rtllib_crypt_data *crypt;
+ int idx, max_key_len;
+
+ max_key_len = encoding->length - sizeof(*ext);
+ if (max_key_len < 0)
+ return -EINVAL;
+
+ idx = encoding->flags & IW_ENCODE_INDEX;
+ if (idx) {
+ if (idx < 1 || idx > WEP_KEYS)
+ return -EINVAL;
+ idx--;
+ } else{
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ idx = ieee->mesh_txkeyidx;
+ else
+#endif
+ idx = ieee->tx_keyidx;
+ }
+ if (!(ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) &&
+ (ext->alg != IW_ENCODE_ALG_WEP))
+#ifdef _RTL8192_EXT_PATCH_
+ if (idx != 0 || !((ieee->iw_mode == IW_MODE_INFRA) || ((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 0))))
+#else
+ if (idx != 0 || (ieee->iw_mode != IW_MODE_INFRA))
+#endif
+ return -EINVAL;
+
+#ifdef _RTL8192_EXT_PATCH_
+ if(is_mesh)
+ crypt = ieee->cryptlist[0]->crypt[idx];
+ else
+ crypt = ieee->sta_crypt[idx];
+#else
+ crypt = ieee->crypt[idx];
+#endif
+
+ encoding->flags = idx + 1;
+ memset(ext, 0, sizeof(*ext));
+
+ if (crypt == NULL || crypt->ops == NULL ) {
+ ext->alg = IW_ENCODE_ALG_NONE;
+ ext->key_len = 0;
+ encoding->flags |= IW_ENCODE_DISABLED;
+ } else {
+ if (strcmp(crypt->ops->name, "WEP") == 0 )
+ ext->alg = IW_ENCODE_ALG_WEP;
+ else if (strcmp(crypt->ops->name, "TKIP"))
+ ext->alg = IW_ENCODE_ALG_TKIP;
+ else if (strcmp(crypt->ops->name, "CCMP"))
+ ext->alg = IW_ENCODE_ALG_CCMP;
+ else
+ return -EINVAL;
+ ext->key_len = crypt->ops->get_key(ext->key, SCM_KEY_LEN, NULL, crypt->priv);
+ encoding->flags |= IW_ENCODE_ENABLED;
+ if (ext->key_len &&
+ (ext->alg == IW_ENCODE_ALG_TKIP ||
+ ext->alg == IW_ENCODE_ALG_CCMP))
+ ext->ext_flags |= IW_ENCODE_EXT_TX_SEQ_VALID;
+
+ }
+
+ return 0;
+}
+#ifdef _RTL8192_EXT_PATCH_
+int rtllib_mesh_set_encode_ext(struct rtllib_device *ieee,
+ struct iw_point *encoding, struct iw_encode_ext *ext, int entry)
+{
+ int ret = 0;
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ struct net_device *dev = ieee->dev;
+ int i, idx;
+ int group_key = 0;
+ const char *alg, *module;
+ struct rtllib_crypto_ops *ops;
+ struct rtllib_crypt_data **crypt;
+
+ struct rtllib_security sec = {
+ .flags = 0,
+ };
+ idx = encoding->flags & IW_ENCODE_INDEX;
+
+ if (idx) {
+ if (idx < 1 || idx > WEP_KEYS)
+ return -EINVAL;
+ idx--;
+ } else
+ idx = ieee->tx_keyidx;
+
+
+ if (ext->ext_flags & IW_ENCODE_EXT_GROUP_KEY) {
+ crypt = &ieee->cryptlist[0]->crypt[idx];
+ group_key = 1;
+ } else {
+ /* some Cisco APs use idx>0 for unicast in dynamic WEP */
+ if (idx != 0 && ext->alg != IW_ENCODE_ALG_WEP)
+ return -EINVAL;
+ if ((ieee->iw_mode == IW_MODE_INFRA) || (ieee->mesh_started==1))
+ {
+ crypt = &ieee->cryptlist[entry]->crypt[idx];
+#if 0
+ if(*crypt == NULL )
+ printk("%s: ERR! &ieee->cryptlist[%d]->crypt[%d] is NULL.\n",__func__, entry,idx);
+#endif
+ }
+ else
+ return -EINVAL;
+ }
+
+ sec.flags |= SEC_ENABLED;
+ if ((encoding->flags & IW_ENCODE_DISABLED) ||
+ ext->alg == IW_ENCODE_ALG_NONE) {
+ if (*crypt){
+ printk("=====>%s():DISABLE crypt is not NULL\n",__FUNCTION__);
+ rtllib_crypt_delayed_deinit(ieee, crypt);
+ }
+#ifdef _RTL8192_EXT_PATCH_
+ if(1)
+ {
+ int j;
+ for (j=1; j<MAX_MP; j++)
+ {
+ struct rtllib_crypt_data ** crypttmp = &ieee->cryptlist[j]->crypt[idx];
+ if (*crypttmp == NULL)
+ continue;
+ printk("======>crypt is not NULL\n");
+ rtllib_crypt_delayed_deinit(ieee, crypttmp);
+ }
+ }
+#endif
+
+ for (i = 0; i < WEP_KEYS; i++){
+ if (ieee->cryptlist[0]->crypt[i] != NULL)
+ break;
+ }
+ if (i == WEP_KEYS) {
+ sec.enabled = 0;
+ sec.level = SEC_LEVEL_0;
+ sec.flags |= SEC_LEVEL;
+ }
+ goto done;
+ }
+
+ sec.enabled = 1;
+#if 0
+ if (group_key ? !ieee->host_mc_decrypt :
+ !(ieee->host_encrypt || ieee->host_decrypt ||
+ ieee->host_encrypt_msdu))
+ goto skip_host_crypt;
+#endif
+ switch (ext->alg) {
+ case IW_ENCODE_ALG_WEP:
+ alg = "WEP";
+ module = "rtllib_crypt_wep";
+ break;
+ case IW_ENCODE_ALG_TKIP:
+ alg = "TKIP";
+ module = "rtllib_crypt_tkip";
+ break;
+ case IW_ENCODE_ALG_CCMP:
+ alg = "CCMP";
+ module = "rtllib_crypt_ccmp";
+ break;
+ default:
+ RTLLIB_DEBUG_WX("%s: unknown crypto alg %d\n",
+ dev->name, ext->alg);
+ ret = -EINVAL;
+ goto done;
+ }
+ printk("%s: alg name:%s\n",__FUNCTION__, alg);
+
+ ops = rtllib_get_crypto_ops(alg);
+ if (ops == NULL) {
+ request_module("%s",module);
+ ops = rtllib_get_crypto_ops(alg);
+ }
+ if (ops == NULL) {
+ RTLLIB_DEBUG_WX("%s: unknown crypto alg %d\n",
+ dev->name, ext->alg);
+ printk("========>unknown crypto alg %d\n", ext->alg);
+ ret = -EINVAL;
+ goto done;
+ }
+
+ if (*crypt == NULL || (*crypt)->ops != ops) {
+
+ struct rtllib_crypt_data *new_crypt;
+
+ rtllib_crypt_delayed_deinit(ieee, crypt);
+
+#if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,13))
+ new_crypt = kzalloc(sizeof(*new_crypt), GFP_KERNEL);
+#else
+ new_crypt = kmalloc(sizeof(*new_crypt), GFP_KERNEL);
+ memset(new_crypt,0,sizeof(*new_crypt));
+#endif
+ if (new_crypt == NULL) {
+ ret = -ENOMEM;
+ goto done;
+ }
+ new_crypt->ops = ops;
+#ifdef BUILT_IN_RTLLIB
+ if (new_crypt->ops)
+#else
+ if (new_crypt->ops && try_module_get(new_crypt->ops->owner))
+#endif
+ {
+ new_crypt->priv = new_crypt->ops->init(idx);
+ }
+ if (new_crypt->priv == NULL) {
+ kfree(new_crypt);
+ ret = -EINVAL;
+ goto done;
+ }
+ *crypt = new_crypt;
+ }
+
+ printk("%s: key_len %x \n",__FUNCTION__, ext->key_len);
+
+ if (ext->key_len > 0 && (*crypt)->ops->set_key &&
+ (*crypt)->ops->set_key(ext->key, ext->key_len, ext->rx_seq,
+ (*crypt)->priv) < 0) {
+ RTLLIB_DEBUG_WX("%s: key setting failed\n", dev->name);
+ printk("key setting failed\n");
+ ret = -EINVAL;
+ goto done;
+ }
+#if 1
+ if (ext->ext_flags & IW_ENCODE_EXT_SET_TX_KEY) {
+ ieee->mesh_txkeyidx = idx;
+ sec.active_key = idx;
+ sec.flags |= SEC_ACTIVE_KEY;
+ }
+
+ if (ext->alg != IW_ENCODE_ALG_NONE) {
+ sec.key_sizes[idx] = ext->key_len;
+ sec.flags |= (1 << idx);
+ if (ext->alg == IW_ENCODE_ALG_WEP) {
+ sec.flags |= SEC_LEVEL;
+ sec.level = SEC_LEVEL_1;
+ } else if (ext->alg == IW_ENCODE_ALG_TKIP) {
+ sec.flags |= SEC_LEVEL;
+ sec.level = SEC_LEVEL_2;
+ } else if (ext->alg == IW_ENCODE_ALG_CCMP) {
+ sec.flags |= SEC_LEVEL;
+ sec.level = SEC_LEVEL_3;
+ }
+ /* Don't set sec level for group keys. */
+ if (group_key)
+ sec.flags &= ~SEC_LEVEL;
+ }
+#endif
+done:
+ if (ieee->set_security)
+ ieee->set_security(ieee->dev, &sec);
+
+ if (ieee->reset_on_keychange &&
+ ieee->iw_mode != IW_MODE_INFRA &&
+ ieee->reset_port && ieee->reset_port(dev)) {
+ RTLLIB_DEBUG_WX("%s: reset_port failed\n", dev->name);
+ return -EINVAL;
+ }
+#endif
+ return ret;
+}
+#endif
+
+int rtllib_wx_set_mlme(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ union iwreq_data *wrqu, char *extra)
+{
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ u8 i = 0;
+ bool deauth = false;
+ struct iw_mlme *mlme = (struct iw_mlme *) extra;
+
+ if (ieee->state != RTLLIB_LINKED)
+ return -ENOLINK;
+
+ down(&ieee->wx_sem);
+
+ switch (mlme->cmd) {
+ case IW_MLME_DEAUTH:
+ deauth = true;
+ /* leave break out intentionly */
+
+ case IW_MLME_DISASSOC:
+#ifdef _RTL8192_EXT_PATCH_
+ if(!((ieee->iw_mode == IW_MODE_MESH) && (ieee->only_mesh == 1)))
+ {
+#endif
+ if(deauth == true) {
+ printk("disauth packet !\n");
+ } else {
+ printk("dis associate packet!\n");
+ }
+
+ ieee->cannot_notify = true;
+
+ SendDisassociation(ieee,deauth,mlme->reason_code);
+ rtllib_disassociate(ieee);
+
+ ieee->wap_set = 0;
+ for(i=0;i<6;i++) ieee->current_network.bssid[i]= 0x55;
+
+ ieee->ssid_set = 0;
+ ieee->current_network.ssid[0] = '\0';
+ ieee->current_network.ssid_len = 0;
+#ifdef _RTL8192_EXT_PATCH_
+ }
+#endif
+ break;
+ default:
+ up(&ieee->wx_sem);
+ return -EOPNOTSUPP;
+ }
+
+ up(&ieee->wx_sem);
+
+#endif
+ return 0;
+}
+
+int rtllib_wx_set_auth(struct rtllib_device *ieee,
+ struct iw_request_info *info,
+ struct iw_param *data, char *extra)
+{
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,5,0)
+ switch (data->flags & IW_AUTH_INDEX) {
+ case IW_AUTH_WPA_VERSION:
+ break;
+ case IW_AUTH_CIPHER_PAIRWISE:
+ case IW_AUTH_CIPHER_GROUP:
+ case IW_AUTH_KEY_MGMT:
+ /*
+ * Host AP driver does not use these parameters and allows
+ * wpa_supplicant to control them internally.
+ */
+ break;
+ case IW_AUTH_TKIP_COUNTERMEASURES:
+ ieee->tkip_countermeasures = data->value;
+ break;
+ case IW_AUTH_DROP_UNENCRYPTED:
+ ieee->drop_unencrypted = data->value;
+ break;
+
+ case IW_AUTH_80211_AUTH_ALG:
+ if(data->value & IW_AUTH_ALG_SHARED_KEY){
+ ieee->open_wep = 0;
+ ieee->auth_mode = 1;
+ }
+ else if(data->value & IW_AUTH_ALG_OPEN_SYSTEM){
+ ieee->open_wep = 1;
+ ieee->auth_mode = 0;
+ }
+ else if(data->value & IW_AUTH_ALG_LEAP){
+ ieee->open_wep = 1;
+ ieee->auth_mode = 2;
+ }
+ else
+ return -EINVAL;
+ break;
+
+#if 1
+ case IW_AUTH_WPA_ENABLED:
+ ieee->wpa_enabled = (data->value)?1:0;
+ break;
+
+#endif
+ case IW_AUTH_RX_UNENCRYPTED_EAPOL:
+ ieee->ieee802_1x = data->value;
+ break;
+ case IW_AUTH_PRIVACY_INVOKED:
+ ieee->privacy_invoked = data->value;
+ break;
+ default:
+ return -EOPNOTSUPP;
+ }
+#endif
+ return 0;
+}
+#endif
+
+int rtllib_wx_set_gen_ie(struct rtllib_device *ieee, u8 *ie, size_t len)
+{
+#if (WIRELESS_EXT >= 18 )
+ u8 *buf;
+ u8 eid, wps_oui[4]={0x0,0x50,0xf2,0x04};
+
+ if (len > MAX_WPA_IE_LEN || (len && ie == NULL)) {
+ return -EINVAL;
+ }
+
+ if (len) {
+ eid = ie[0];
+ if ((eid == MFIE_TYPE_GENERIC) && (!memcmp(&ie[2], wps_oui, 4))) {
+
+ ieee->wps_ie_len = (len < MAX_WZC_IE_LEN) ? (len):(MAX_WZC_IE_LEN);
+ buf = kmalloc(ieee->wps_ie_len, GFP_KERNEL);
+ if (buf == NULL)
+ return -ENOMEM;
+ memcpy(buf, ie, ieee->wps_ie_len);
+ ieee->wps_ie = buf;
+ return 0;
+ }
+ }
+ ieee->wps_ie_len = 0;
+ if (ieee->wps_ie)
+ kfree(ieee->wps_ie);
+ ieee->wps_ie = NULL;
+ if (len) {
+ if (len != ie[1]+2) {
+ return -EINVAL;
+ }
+ buf = kmalloc(len, GFP_KERNEL);
+ if (buf == NULL)
+ return -ENOMEM;
+ memcpy(buf, ie, len);
+ kfree(ieee->wpa_ie);
+ ieee->wpa_ie = buf;
+ ieee->wpa_ie_len = len;
+ } else {
+ if (ieee->wpa_ie)
+ kfree(ieee->wpa_ie);
+ ieee->wpa_ie = NULL;
+ ieee->wpa_ie_len = 0;
+ }
+#endif
+ return 0;
+}
+
+#ifndef BUILT_IN_RTLLIB
+EXPORT_SYMBOL_RSL(rtllib_wx_set_gen_ie);
+#if (WIRELESS_EXT >= 18)
+EXPORT_SYMBOL_RSL(rtllib_wx_set_mlme);
+EXPORT_SYMBOL_RSL(rtllib_wx_set_auth);
+EXPORT_SYMBOL_RSL(rtllib_wx_set_encode_ext);
+EXPORT_SYMBOL_RSL(rtllib_wx_get_encode_ext);
+#endif
+EXPORT_SYMBOL_RSL(rtllib_wx_get_scan);
+EXPORT_SYMBOL_RSL(rtllib_wx_set_encode);
+EXPORT_SYMBOL_RSL(rtllib_wx_get_encode);
+#endif
+#ifdef _RTL8192_EXT_PATCH_
+EXPORT_SYMBOL_RSL(rtllib_mesh_set_encode_ext);
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/scatterwalk.c b/ubuntu/rtl8192se/rtllib/scatterwalk.c
new file mode 100755
index 00000000000..f1ea4316c24
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/scatterwalk.c
@@ -0,0 +1,138 @@
+/*
+ * Cryptographic API.
+ *
+ * Cipher operations.
+ *
+ * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
+ * 2002 Adam J. Richter <adam@yggdrasil.com>
+ * 2004 Jean-Luc Cooke <jlcooke@certainkey.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ */
+
+#include <linux/version.h>
+#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0))
+#include "kmap_types.h"
+#endif
+
+#include <linux/kernel.h>
+#include <linux/mm.h>
+#include <linux/pagemap.h>
+#include <linux/highmem.h>
+#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+#include <asm/scatterlist.h>
+#else
+#include <linux/scatterlist.h>
+#endif
+#include "internal.h"
+#include "scatterwalk.h"
+
+enum km_type crypto_km_types[] = {
+ KM_USER0,
+ KM_USER1,
+ KM_SOFTIRQ0,
+ KM_SOFTIRQ1,
+};
+
+void *scatterwalk_whichbuf(struct scatter_walk *walk, unsigned int nbytes, void *scratch)
+{
+ if (nbytes <= walk->len_this_page &&
+ (((unsigned long)walk->data) & (PAGE_CACHE_SIZE - 1)) + nbytes <=
+ PAGE_CACHE_SIZE)
+ return walk->data;
+ else
+ return scratch;
+}
+
+static void memcpy_dir(void *buf, void *sgdata, size_t nbytes, int out)
+{
+ if (out)
+ memcpy(sgdata, buf, nbytes);
+ else
+ memcpy(buf, sgdata, nbytes);
+}
+
+void scatterwalk_start(struct scatter_walk *walk, struct scatterlist *sg)
+{
+ unsigned int rest_of_page;
+
+ walk->sg = sg;
+
+#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+ walk->page = sg->page;
+#else
+ walk->page = sg_page(sg);
+#endif
+ walk->len_this_segment = sg->length;
+
+ rest_of_page = PAGE_CACHE_SIZE - (sg->offset & (PAGE_CACHE_SIZE - 1));
+ walk->len_this_page = min(sg->length, rest_of_page);
+ walk->offset = sg->offset;
+}
+
+void scatterwalk_map(struct scatter_walk *walk, int out)
+{
+ walk->data = crypto_kmap(walk->page, out) + walk->offset;
+}
+
+static void scatterwalk_pagedone(struct scatter_walk *walk, int out,
+ unsigned int more)
+{
+ /* walk->data may be pointing the first byte of the next page;
+ however, we know we transfered at least one byte. So,
+ walk->data - 1 will be a virtual address in the mapped page. */
+
+ if (out)
+ flush_dcache_page(walk->page);
+
+ if (more) {
+ walk->len_this_segment -= walk->len_this_page;
+
+ if (walk->len_this_segment) {
+ walk->page++;
+ walk->len_this_page = min(walk->len_this_segment,
+ (unsigned)PAGE_CACHE_SIZE);
+ walk->offset = 0;
+ }
+ else
+ scatterwalk_start(walk, sg_next(walk->sg));
+ }
+}
+
+void scatterwalk_done(struct scatter_walk *walk, int out, int more)
+{
+ crypto_kunmap(walk->data, out);
+ if (walk->len_this_page == 0 || !more)
+ scatterwalk_pagedone(walk, out, more);
+}
+
+/*
+ * Do not call this unless the total length of all of the fragments
+ * has been verified as multiple of the block size.
+ */
+int scatterwalk_copychunks(void *buf, struct scatter_walk *walk,
+ size_t nbytes, int out)
+{
+ if (buf != walk->data) {
+ while (nbytes > walk->len_this_page) {
+ memcpy_dir(buf, walk->data, walk->len_this_page, out);
+ buf += walk->len_this_page;
+ nbytes -= walk->len_this_page;
+
+ crypto_kunmap(walk->data, out);
+ scatterwalk_pagedone(walk, out, 1);
+ scatterwalk_map(walk, out);
+ }
+
+ memcpy_dir(buf, walk->data, nbytes, out);
+ }
+
+ walk->offset += nbytes;
+ walk->len_this_page -= nbytes;
+ walk->len_this_segment -= nbytes;
+ return 0;
+}
diff --git a/ubuntu/rtl8192se/rtllib/scatterwalk.h b/ubuntu/rtl8192se/rtllib/scatterwalk.h
new file mode 100755
index 00000000000..d4a8985018c
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/scatterwalk.h
@@ -0,0 +1,53 @@
+/*
+ * Cryptographic API.
+ *
+ * Copyright (c) 2002 James Morris <jmorris@intercode.com.au>
+ * Copyright (c) 2002 Adam J. Richter <adam@yggdrasil.com>
+ * Copyright (c) 2004 Jean-Luc Cooke <jlcooke@certainkey.com>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or (at your option)
+ * any later version.
+ *
+ */
+
+#ifndef _CRYPTO_SCATTERWALK_H
+#define _CRYPTO_SCATTERWALK_H
+#include <linux/mm.h>
+#include <asm/scatterlist.h>
+
+struct scatter_walk {
+ struct scatterlist *sg;
+ struct page *page;
+ void *data;
+ unsigned int len_this_page;
+ unsigned int len_this_segment;
+ unsigned int offset;
+};
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+/* Define sg_next is an inline routine now in case we want to change
+ scatterlist to a linked list later. */
+static inline struct scatterlist *sg_next(struct scatterlist *sg)
+{
+ return sg + 1;
+}
+#endif
+
+static inline int scatterwalk_samebuf(struct scatter_walk *walk_in,
+ struct scatter_walk *walk_out,
+ void *src_p, void *dst_p)
+{
+ return walk_in->page == walk_out->page &&
+ walk_in->offset == walk_out->offset &&
+ walk_in->data == src_p && walk_out->data == dst_p;
+}
+
+void *scatterwalk_whichbuf(struct scatter_walk *walk, unsigned int nbytes, void *scratch);
+void scatterwalk_start(struct scatter_walk *walk, struct scatterlist *sg);
+int scatterwalk_copychunks(void *buf, struct scatter_walk *walk, size_t nbytes, int out);
+void scatterwalk_map(struct scatter_walk *walk, int out);
+void scatterwalk_done(struct scatter_walk *walk, int out, int more);
+
+#endif /* _CRYPTO_SCATTERWALK_H */
diff --git a/ubuntu/rtl8192se/rtllib/wapi.c b/ubuntu/rtl8192se/rtllib/wapi.c
new file mode 100755
index 00000000000..4fd93393c2b
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/wapi.c
@@ -0,0 +1,1842 @@
+#if defined (RTL8192S_WAPI_SUPPORT)
+
+#include <linux/unistd.h>
+#include <linux/etherdevice.h>
+#include "wapi.h"
+#include "wapi_interface.h"
+#include "rtllib.h"
+
+#define LITTLE_ENDIAN
+#define ENCRYPT 0
+#define DECRYPT 1
+
+u32 wapi_debug_component = WAPI_INIT |
+ WAPI_ERR ;
+
+void WapiInit(struct rtllib_device *ieee)
+{
+ PRT_WAPI_T pWapiInfo;
+ int i;
+
+ WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__);
+ RT_ASSERT_RET(ieee);
+
+ pWapiInfo = &ieee->wapiInfo;
+ pWapiInfo->bWapiEnable = false;
+
+ INIT_LIST_HEAD(&ieee->cache_frag_list);
+
+ INIT_LIST_HEAD(&pWapiInfo->wapiBKIDIdleList);
+ INIT_LIST_HEAD(&pWapiInfo->wapiBKIDStoreList);
+ for(i=0;i<WAPI_MAX_BKID_NUM;i++)
+ {
+ list_add_tail(&pWapiInfo->wapiBKID[i].list, &pWapiInfo->wapiBKIDIdleList);
+ }
+
+ INIT_LIST_HEAD(&pWapiInfo->wapiSTAIdleList);
+ INIT_LIST_HEAD(&pWapiInfo->wapiSTAUsedList);
+ for(i=0;i<WAPI_MAX_STAINFO_NUM;i++)
+ {
+ list_add_tail(&pWapiInfo->wapiSta[i].list, &pWapiInfo->wapiSTAIdleList);
+ }
+
+ spin_lock_init(&ieee->wapi_queue_lock);
+
+ ieee->wapi_queue = (WAPI_QUEUE *)kmalloc((sizeof(WAPI_QUEUE)), GFP_KERNEL);
+ if (!ieee->wapi_queue) {
+ return;
+ }
+ memset((void *)ieee->wapi_queue, 0, sizeof (WAPI_QUEUE));
+ WAPI_InitQueue(ieee->wapi_queue, WAPI_MAX_QUEUE_LEN, WAPI_MAX_BUFF_LEN);
+
+ WAPI_TRACE(WAPI_INIT, "<========== %s\n", __FUNCTION__);
+}
+
+void WapiExit(struct rtllib_device *ieee)
+{
+ WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__);
+ RT_ASSERT_RET(ieee);
+
+ if(ieee->wapi_queue)
+ kfree(ieee->wapi_queue);
+ ieee->wapi_queue = 0;
+
+ WAPI_TRACE(WAPI_INIT, "<========== %s\n", __FUNCTION__);
+}
+
+void WapiCreateAppEventAndSend(
+ struct rtllib_device *ieee,
+ u8 *pbuffer,
+ u16 buf_len,
+ u8 *DestAddr,
+ u8 bUpdateBK,
+ u8 bUpdateUSK,
+ u8 bUpdateMSK,
+ u8 RcvPktType,
+ u8 bDisconnect
+)
+{
+ PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo);
+ PRT_WAPI_STA_INFO pWapiSta = NULL;
+ u8 WapiASUEPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
+ u8 WapiAEMultiCastPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
+ u8 bFind = false, bRecvAEPacket = false, bRecvASUEPacket = false, EventId = 0;
+
+ WAPI_TRACE(WAPI_API, "==========> %s\n", __FUNCTION__);
+ WAPI_TRACE(WAPI_API, "DestAddr="MAC_FMT" bUpdateBK=%d bUpdateUSK=%d bUpdateMSK=%d RcvPktType=%d bDisconnect=%d\n",
+ MAC_ARG(DestAddr), bUpdateBK, bUpdateUSK, bUpdateMSK, RcvPktType,bDisconnect);
+
+ /*if(!pWapiInfo->bWapiEnable){
+ WAPI_TRACE(WAPI_ERR,"%s: ieee->WapiSupport = 0!!\n",__FUNCTION__);
+ return;
+ }*/
+
+ if(list_empty(&pWapiInfo->wapiSTAUsedList)){
+ bFind = false;
+ }else{
+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
+ if(!memcmp(DestAddr,pWapiSta->PeerMacAddr,ETH_ALEN)){
+ bFind = true;
+ break;
+ }
+ }
+ }
+
+ WAPI_TRACE(WAPI_API, "%s: DestAddr="MAC_FMT" bFind=%d\n", __FUNCTION__, MAC_ARG(DestAddr), bFind);
+ switch(RcvPktType){
+ case WAPI_PREAUTHENTICATE:
+ EventId = WAPI_EVENT_RCV_PREAUTHENTICATE;
+ bRecvAEPacket = true;
+ bRecvASUEPacket = false;
+ break;
+ case WAPI_ACCESS_AUTHENTICATE_REQUEST:
+ EventId = WAPI_EVENT_RCV_ACCESS_AUTHENTICATE_REQUEST;
+ bRecvAEPacket = true;
+ bRecvASUEPacket = false;
+ break;
+ case WAPI_USK_RESPONSE:
+ EventId = WAPI_EVENT_RCV_USK_RESPONSE;
+ bRecvAEPacket = true;
+ bRecvASUEPacket = false;
+ break;
+ case WAPI_MSK_RESPONSE:
+ EventId = WAPI_EVENT_RCV_MSK_RESPONSE;
+ bRecvAEPacket = true;
+ bRecvASUEPacket = false;
+ break;
+ case WAPI_STAKEY_REQUEST:
+ EventId = WAPI_EVENT_RCV_STAKEY_REQUEST;
+ bRecvAEPacket = false;
+ bRecvASUEPacket = true;
+ break;
+ case WAPI_AUTHENTICATE_ACTIVE:
+ EventId = WAPI_EVENT_RCV_AUTHENTICATE_ACTIVE;
+ bRecvAEPacket = false;
+ bRecvASUEPacket = true;
+ break;
+ case WAPI_ACCESS_AUTHENTICATE_RESPONSE:
+ EventId = WAPI_EVENT_RCV_ACCESS_AUTHENTICATE_RESPONSE;
+ bRecvAEPacket = false;
+ bRecvASUEPacket = true;
+ break;
+ case WAPI_USK_REQUEST:
+ EventId = WAPI_EVENT_RCV_USK_REQUEST;
+ bRecvAEPacket = false;
+ bRecvASUEPacket = true;
+ break;
+ case WAPI_USK_CONFIRM:
+ EventId = WAPI_EVENT_RCV_USK_CONFIRM;
+ bRecvAEPacket = false;
+ bRecvASUEPacket = true;
+ break;
+ case WAPI_MSK_NOTIFICATION:
+ EventId = WAPI_EVENT_RCV_MSK_NOTIFICATION;
+ bRecvAEPacket = false;
+ bRecvASUEPacket = true;
+ break;
+ default:
+ break;
+ }
+
+ if(ieee->iw_mode == IW_MODE_INFRA){
+ if(bRecvAEPacket || bUpdateMSK){
+ goto out;
+ }
+ if(bRecvASUEPacket){
+ WAPI_CreateEvent_Send(ieee, EventId, DestAddr, pbuffer, buf_len);
+ goto out;
+ }
+ if(bUpdateBK && bFind){
+ EventId = WAPI_EVENT_ASUE_UPDATE_BK;
+ WAPI_CreateEvent_Send(ieee, EventId, DestAddr, NULL, 0);
+ goto out;
+ }
+ if(bUpdateUSK&& bFind){
+ EventId = WAPI_EVENT_ASUE_UPDATE_USK;
+ WAPI_CreateEvent_Send(ieee, EventId, DestAddr, NULL, 0);
+ goto out;
+ }
+ if(bDisconnect && bFind){
+ EventId = WAPI_EVENT_DISCONNECT;
+ WAPI_CreateEvent_Send(ieee, EventId, DestAddr, NULL, 0);
+ goto out;
+ }
+ }
+ else if(ieee->iw_mode == IW_MODE_ADHOC)
+ {
+ if((bFind )&& (!pWapiSta->bSetkeyOk) && (bUpdateBK ||bUpdateUSK||bUpdateMSK))
+ goto out;
+ if(bRecvASUEPacket){
+ WAPI_CreateEvent_Send(ieee, EventId, DestAddr, pbuffer, buf_len);
+ if(EventId != WAPI_EVENT_RCV_USK_REQUEST)
+ goto out;
+ }
+ if((!bFind) && (!bDisconnect) && (!bUpdateMSK))
+ {
+ if(!list_empty(&pWapiInfo->wapiSTAIdleList))
+ {
+ pWapiSta =(PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAIdleList.next, RT_WAPI_STA_INFO, list);
+ list_del_init(&pWapiSta->list);
+ list_add_tail(&pWapiSta->list, &pWapiInfo->wapiSTAUsedList);
+ WAPI_TRACE(WAPI_API, "%s: Add wapi station "MAC_FMT"\n", __FUNCTION__, MAC_ARG(DestAddr));
+ memcpy(pWapiSta->PeerMacAddr,DestAddr,6);
+ memcpy(pWapiSta->lastRxMulticastPN, WapiAEMultiCastPNInitialValueSrc, 16);
+ memcpy(pWapiSta->lastRxUnicastPN, WapiASUEPNInitialValueSrc, 16);
+ }
+
+ pWapiInfo->bFirstAuthentiateInProgress= true;
+
+ EventId = WAPI_EVENT_FIRST_AUTHENTICATOR;
+ WAPI_CreateEvent_Send(ieee, EventId, DestAddr, NULL, 0);
+ goto out;
+ }else{
+ if(bRecvAEPacket){
+ WAPI_CreateEvent_Send(ieee, EventId, DestAddr, pbuffer, buf_len);
+ goto out;
+ }
+ if(bDisconnect){
+ EventId = WAPI_EVENT_DISCONNECT;
+ WAPI_CreateEvent_Send(ieee, EventId, DestAddr, NULL, 0);
+ goto out;
+ }
+ if(bUpdateBK){
+ EventId = WAPI_EVENT_AE_UPDATE_BK;
+ WAPI_CreateEvent_Send(ieee, EventId, DestAddr, NULL, 0);
+ goto out;
+ }
+ if(bUpdateUSK){
+ EventId = WAPI_EVENT_AE_UPDATE_USK;
+ WAPI_CreateEvent_Send(ieee, EventId, DestAddr, NULL, 0);
+ goto out;
+ }
+ if(bUpdateMSK){
+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
+ if(pWapiSta->bSetkeyOk){
+ EventId = WAPI_EVENT_AE_UPDATE_MSK;
+ WAPI_CreateEvent_Send(ieee, EventId, pWapiSta->PeerMacAddr, NULL, 0);
+ }
+ }
+ goto out;
+ }
+ }
+ }
+
+out:
+ WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
+ return;
+}
+
+
+void WapiReturnAllStaInfo(struct rtllib_device *ieee)
+{
+ PRT_WAPI_T pWapiInfo;
+ PRT_WAPI_STA_INFO pWapiStaInfo;
+ PRT_WAPI_BKID pWapiBkid;
+ WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__);
+
+ pWapiInfo = &ieee->wapiInfo;
+
+ while(!list_empty(&(pWapiInfo->wapiSTAUsedList)))
+ {
+ pWapiStaInfo = (PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAUsedList.next, RT_WAPI_STA_INFO, list);
+ list_del_init(&pWapiStaInfo->list);
+ memset(pWapiStaInfo->PeerMacAddr,0,ETH_ALEN);
+ pWapiStaInfo->bSetkeyOk = 0;
+ list_add_tail(&pWapiStaInfo->list, &pWapiInfo->wapiSTAIdleList);
+ }
+
+ while(!list_empty(&(pWapiInfo->wapiBKIDStoreList)))
+ {
+ pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDStoreList.next, RT_WAPI_BKID, list);
+ list_del_init(&pWapiBkid->list);
+ memset(pWapiBkid->bkid,0,16);
+ list_add_tail(&pWapiBkid->list, &pWapiInfo->wapiBKIDIdleList);
+ }
+ WAPI_TRACE(WAPI_INIT, "<========== %s\n", __FUNCTION__);
+}
+
+void WapiReturnOneStaInfo(struct rtllib_device *ieee, u8 *MacAddr, u8 from_app)
+{
+ PRT_WAPI_T pWapiInfo;
+ PRT_WAPI_STA_INFO pWapiStaInfo = NULL;
+ PRT_WAPI_BKID pWapiBkid = NULL;
+
+ pWapiInfo = &ieee->wapiInfo;
+
+ WAPI_TRACE(WAPI_API, "==========> %s\n", __FUNCTION__);
+
+ if(!from_app)
+ WapiCreateAppEventAndSend(ieee,NULL,0,MacAddr, false,false,false,0,true);
+ if(list_empty(&(pWapiInfo->wapiSTAUsedList))){
+ return;
+ }else{
+ list_for_each_entry(pWapiStaInfo, &pWapiInfo->wapiSTAUsedList, list) {
+ if(!memcmp(pWapiStaInfo->PeerMacAddr,MacAddr,ETH_ALEN)){
+ pWapiStaInfo->bAuthenticateInProgress = false;
+ pWapiStaInfo->bSetkeyOk = false;
+ memset(pWapiStaInfo->PeerMacAddr,0,ETH_ALEN);
+ list_del_init(&pWapiStaInfo->list);
+ list_add_tail(&pWapiStaInfo->list, &pWapiInfo->wapiSTAIdleList);
+ break;
+ }
+
+ }
+ }
+
+ if(ieee->iw_mode == IW_MODE_INFRA){
+ while(!list_empty(&(pWapiInfo->wapiBKIDStoreList)))
+ {
+ pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDStoreList.next, RT_WAPI_BKID, list);
+ list_del_init(&pWapiBkid->list);
+ memset(pWapiBkid->bkid,0,16);
+ list_add_tail(&pWapiBkid->list, &pWapiInfo->wapiBKIDIdleList);
+ }
+ }
+ WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
+ return;
+}
+
+void WapiFreeAllStaInfo(struct rtllib_device *ieee)
+{
+ PRT_WAPI_T pWapiInfo;
+ PRT_WAPI_STA_INFO pWapiStaInfo;
+ PRT_WAPI_BKID pWapiBkid;
+ WAPI_TRACE(WAPI_INIT, "===========> %s\n", __FUNCTION__);
+ pWapiInfo = &ieee->wapiInfo;
+
+ WapiReturnAllStaInfo(ieee);
+ while(!list_empty(&(pWapiInfo->wapiSTAIdleList)))
+ {
+ pWapiStaInfo = (PRT_WAPI_STA_INFO)list_entry(pWapiInfo->wapiSTAIdleList.next, RT_WAPI_STA_INFO, list);
+ list_del_init(&pWapiStaInfo->list);
+ }
+
+ while(!list_empty(&(pWapiInfo->wapiBKIDIdleList)))
+ {
+ pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDIdleList.next, RT_WAPI_BKID, list);
+ list_del_init(&pWapiBkid->list);
+ }
+ WAPI_TRACE(WAPI_INIT, "<=========== %s\n", __FUNCTION__);
+ return;
+}
+
+u8 SecIsWAIPacket(struct rtllib_device* ieee,struct sk_buff *skb)
+{
+ PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo);
+ PRT_WAPI_STA_INFO pWapiSta = NULL;
+ u8 WaiPkt = 0, *pTaddr, bFind = false;
+ u8 Offset_TypeWAI = 24 + 6;
+ struct rtllib_hdr_3addrqos *header;
+ u16 mask = 1, fc = 0;
+
+ if((!pWapiInfo->bWapiEnable) || (!ieee->wapiInfo.bWapiEnable))
+ return 0;
+
+ header = (struct rtllib_hdr_3addrqos *)skb->data;
+
+ fc = le16_to_cpu(header->frame_ctl);
+ if(fc & RTLLIB_FCTL_WEP)
+ return 0;
+
+ pTaddr = header->addr2;
+ if(list_empty(&pWapiInfo->wapiSTAUsedList)){
+ bFind = false;
+ }else{
+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list){
+ if(!memcmp(pTaddr,pWapiSta->PeerMacAddr,6)){
+ bFind = true;
+ break;
+ }
+ }
+ }
+
+ WAPI_TRACE(WAPI_API, "%s: bFind=%d pTaddr="MAC_FMT"\n", __FUNCTION__, bFind, MAC_ARG(pTaddr));
+
+ if( IsQoSDataFrame(skb->data) ){
+ Offset_TypeWAI += sQoSCtlLng;
+ }
+
+ if((header->frame_ctl & (mask<<14)) != 0){
+ Offset_TypeWAI += WAPI_EXT_LEN;
+ }
+
+ if( skb->len < (Offset_TypeWAI+1) ){
+ WAPI_TRACE(WAPI_ERR, "%s(): invalid length(%d)\n",__FUNCTION__,skb->len);
+ return 0;
+ }
+
+ if( (skb->data[Offset_TypeWAI]==0x88) && (skb->data[Offset_TypeWAI+1]==0xb4) ){
+ WaiPkt = skb->data[Offset_TypeWAI+5];
+ if(ieee->iw_mode == IW_MODE_ADHOC){
+ if(bFind){
+ if((WaiPkt == 8) && (pWapiInfo->wapiTxMsk.bSet) && (pWapiSta->wapiMsk.bSet) && ((skb->data[Offset_TypeWAI+14] & 0x10)==0)){
+ printk("==============> %s(): Receive USK Request After MSK set!\n", __FUNCTION__);
+ DelStaInfo(ieee, pTaddr);
+ WapiReturnOneStaInfo (ieee, pTaddr, 0);
+ WAPI_CreateEvent_Send(ieee, WAPI_EVENT_CONNECT, ieee->current_network.bssid, NULL, 0);
+ }
+
+ }
+ }
+ }else{
+ WAPI_TRACE(WAPI_API, "%s(): non wai packet\n",__FUNCTION__);
+ }
+
+ WAPI_TRACE(WAPI_API, "%s(): Recvd WAI frame. IsWAIPkt(%d)\n",__FUNCTION__, WaiPkt);
+
+ return WaiPkt;
+}
+
+/******************
+*********************/
+u8 Wapi_defragment(struct rtllib_device* ieee,u8* data, u16 len,
+ u8* pTaddr,bool bAuthenticator,u8* rxbuffer,u16* rxbuffer_len)
+{
+ PRT_CACHE_INFO pcache_info = NULL;
+ bool bfind = false;
+
+ if(!list_empty(&ieee->cache_frag_list)){
+ list_for_each_entry(pcache_info, &ieee->cache_frag_list, list) {
+ if((memcmp(pcache_info->saddr,pTaddr,ETH_ALEN)==0)
+ && (pcache_info->bAuthenticator == bAuthenticator))
+ {
+ bfind = true;
+ break;
+ }
+ }
+ }
+ WAPI_TRACE(WAPI_RX, "%s: bFind=%d pTaddr="MAC_FMT"\n", __FUNCTION__, bfind, MAC_ARG(pTaddr));
+ if(bfind == false) {
+ pcache_info = kmalloc(sizeof(RT_CACHE_INFO),GFP_ATOMIC);
+ if(pcache_info == NULL){
+ WAPI_TRACE(WAPI_ERR,"%s(): can't malloc mem\n", __FUNCTION__);
+ goto drop2;
+ }
+ memset(pcache_info,0,sizeof(RT_CACHE_INFO));
+ if(data[11] == 0x1){
+ WAPI_TRACE(WAPI_RX, "%s(): First fragment, and have More fragments\n",__FUNCTION__);
+ memcpy(&(pcache_info->recvSeq),data+8, 2);
+ if(data[10] != 0x00)
+ {
+ WAPI_TRACE(WAPI_ERR, "%s(): First fragment,but fragnum is not 0.\n",__FUNCTION__);
+ goto drop1;
+ }else{
+ data[10] = 0x0;
+ data[11] = 0x0;
+ if (len > 2000) {
+ WAPI_TRACE(WAPI_ERR,"111****************************%s():cache buf len is not enough: %d\n",__FUNCTION__,len);
+ goto drop1;
+ }
+ pcache_info->lastFragNum= 0x00;
+ memcpy(pcache_info->cache_buffer,data,len);
+ pcache_info->cache_buffer_len = len;
+ pcache_info->bAuthenticator = bAuthenticator;
+ memcpy(pcache_info->saddr,pTaddr,ETH_ALEN);
+ list_add_tail(&pcache_info->list, &ieee->cache_frag_list);
+ WAPI_TRACE(WAPI_RX, "%s(): First fragment, allocate cache to store.\n",__FUNCTION__);
+ goto drop2;
+ }
+ }else{
+ if(data[10] == 0){
+ WAPI_TRACE(WAPI_RX, "%s(): First fragment, no More fragment, ready to send to App.\n",__FUNCTION__);
+ if (len > 2000) {
+ WAPI_TRACE(WAPI_ERR,"222****************************%s():cache buf len is not enough: %d\n",__FUNCTION__,len);
+ goto drop1;
+ }
+ memcpy(rxbuffer,data,len);
+ *rxbuffer_len = len;
+ goto success;
+ }else{
+ WAPI_TRACE(WAPI_ERR, "%s(): First fragment,no More fragment, but fragnum is not 0.\n",__FUNCTION__);
+ goto drop1;
+ }
+ }
+ }
+ else{
+ if(data[11] == 0x1){
+ if(memcmp(data+8,&(pcache_info->recvSeq),2)) {
+ WAPI_TRACE(WAPI_ERR, "%s(): Not First fragment, More fragment, seq num error.\n",__FUNCTION__);
+ list_del(&pcache_info->list);
+ goto drop1;
+ }else{
+ if(data[10] == (pcache_info->lastFragNum+1)){
+ WAPI_TRACE(WAPI_RX, "%s(): Not First fragment, More fragment, same seq num, copy to cache.\n",__FUNCTION__);
+ if ((pcache_info->cache_buffer_len + len - 12) > 2000) {
+ WAPI_TRACE(WAPI_ERR,"333****************************%s():cache buf len is not enough: %d\n",__FUNCTION__,pcache_info->cache_buffer_len + len - 12);
+ list_del(&pcache_info->list);
+ goto drop1;
+ }
+ memcpy(pcache_info->cache_buffer+(pcache_info->cache_buffer_len),data+12,len-12);
+ pcache_info->cache_buffer_len += len-12;
+ pcache_info->lastFragNum = data[10];
+ goto drop2;
+ }else{
+ WAPI_TRACE(WAPI_ERR, "%s(): Not First fragment, More fragment, same seq num, fragnum error.\n",__FUNCTION__);
+ list_del(&pcache_info->list);
+ goto drop1;
+ }
+ }
+ }else{
+ if(memcmp(data+8,&(pcache_info->recvSeq),2)) {
+ WAPI_TRACE(WAPI_ERR, "%s(): Not First fragment, no More fragment, seq num error.\n",__FUNCTION__);
+ list_del(&pcache_info->list);
+ goto drop1;
+ }else{
+ if(data[10] == (pcache_info->lastFragNum+1)){
+ WAPI_TRACE(WAPI_RX, "%s(): Not First fragment, no More fragment, same seq num, ready to send to App.\n",__FUNCTION__);
+ if ((pcache_info->cache_buffer_len + len - 12) > 2000) {
+ WAPI_TRACE(WAPI_ERR,"444****************************%s():cache buf len is not enough: %d\n",__FUNCTION__,pcache_info->cache_buffer_len + len - 12);
+ list_del(&pcache_info->list);
+ goto drop1;
+ }
+ memcpy(pcache_info->cache_buffer+(pcache_info->cache_buffer_len),data+12,len-12);
+ pcache_info->cache_buffer_len += len-12;
+ memcpy(rxbuffer,pcache_info->cache_buffer,pcache_info->cache_buffer_len);
+ *rxbuffer_len = pcache_info->cache_buffer_len;
+ list_del(&pcache_info->list);
+ goto success;
+ }else{
+ WAPI_TRACE(WAPI_ERR, "%s(): Not First fragment, no More fragment, same seq num, fragnum error.\n",__FUNCTION__);
+ list_del(&pcache_info->list);
+ goto drop1;
+ }
+ }
+ }
+ }
+
+drop1:
+ if(pcache_info)
+ kfree(pcache_info);
+ pcache_info = NULL;
+ return false;
+drop2:
+ return false;
+success:
+ if(pcache_info)
+ kfree(pcache_info);
+ pcache_info = NULL;
+ return true;
+}
+
+/****************************************************************************
+ * data[8-9]: Sequence Number
+ * data[10]: Fragment No
+ * data[11]: Flag = 1 indicates more data.
+ *****************************************************************************/
+void WapiHandleRecvPacket(struct rtllib_device* ieee,struct sk_buff *skb,u8 WaiPkt)
+{
+ PRT_WAPI_T pWapiInfo;
+ struct rtllib_hdr_3addrqos *hdr;
+ u8 *pTaddr, *recvPtr, *rxbuffer;
+ u8 bAuthenticator = false, receive_result = false;
+ int hdrlen = 0;
+ u16 recvLength = 0, fc = 0, rxbuffer_len = 0;
+
+ WAPI_TRACE(WAPI_RX, "===========> %s: WaiPkt is %d\n", __FUNCTION__,WaiPkt);
+
+ hdr = (struct rtllib_hdr_3addrqos *)skb->data;
+ pTaddr = hdr->addr2;
+ fc = hdr->frame_ctl;
+ hdrlen = rtllib_get_hdrlen(fc);
+
+ pWapiInfo = &(ieee->wapiInfo);
+ if((WaiPkt == WAPI_CERTIFICATE_AUTHENTICATE_REQUEST)
+ ||(WaiPkt == WAPI_CERTIFICATE_AUTHENTICATE_RESPONSE))
+ {
+ WAPI_TRACE(WAPI_RX, "%s: Valid Wai Packet \n", __FUNCTION__);
+ return;
+ }else{
+ switch(WaiPkt)
+ {
+ case WAPI_PREAUTHENTICATE:
+ case WAPI_ACCESS_AUTHENTICATE_REQUEST:
+ case WAPI_USK_RESPONSE:
+ case WAPI_MSK_RESPONSE:
+ bAuthenticator = true;
+ break;
+ default:
+ break;
+ }
+ recvLength = skb->len - hdrlen - (SNAP_SIZE + sizeof(u16));
+ recvPtr = skb->data + hdrlen + (SNAP_SIZE + sizeof(u16));
+
+ rxbuffer = kmalloc(2000, GFP_ATOMIC);
+ if(NULL == rxbuffer)
+ return;
+
+ receive_result = Wapi_defragment(ieee,recvPtr, recvLength,pTaddr,bAuthenticator,rxbuffer,&rxbuffer_len);
+ if(receive_result)
+ WapiCreateAppEventAndSend(ieee, rxbuffer, rxbuffer_len, pTaddr, false,false, false, WaiPkt, false);
+
+ kfree(rxbuffer);
+ }
+ WAPI_TRACE(WAPI_RX, "<=========== %s\n", __FUNCTION__);
+}
+
+void WapiSetIE(struct rtllib_device *ieee)
+{
+ PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo);
+ u16 protocolVer = 1;
+ u16 akmCnt = 1;
+ u16 suiteCnt = 1;
+ u16 capability = 0;
+ u8 OUI[3];
+
+ OUI[0] = 0x00;
+ OUI[1] = 0x14;
+ OUI[2] = 0x72;
+
+ pWapiInfo->wapiIELength = 0;
+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &protocolVer, 2);
+ pWapiInfo->wapiIELength +=2;
+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &akmCnt, 2);
+ pWapiInfo->wapiIELength +=2;
+
+ if(pWapiInfo->bWapiPSK){
+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3);
+ pWapiInfo->wapiIELength +=3;
+ pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x2;
+ pWapiInfo->wapiIELength +=1;
+ }else{
+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3);
+ pWapiInfo->wapiIELength +=3;
+ pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x1;
+ pWapiInfo->wapiIELength +=1;
+ }
+
+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &suiteCnt, 2);
+ pWapiInfo->wapiIELength +=2;
+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3);
+ pWapiInfo->wapiIELength +=3;
+ pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x1;
+ pWapiInfo->wapiIELength +=1;
+
+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength,OUI, 3);
+ pWapiInfo->wapiIELength +=3;
+ pWapiInfo->wapiIE[pWapiInfo->wapiIELength] = 0x1;
+ pWapiInfo->wapiIELength +=1;
+
+ memcpy(pWapiInfo->wapiIE+pWapiInfo->wapiIELength, &capability, 2);
+ pWapiInfo->wapiIELength +=2;
+}
+
+
+/* PN1 > PN2, return 1,
+ * else return 0.
+ */
+u32 WapiComparePN(u8 *PN1, u8 *PN2)
+{
+ char i;
+
+ if ((NULL == PN1) || (NULL == PN2))
+ return 1;
+
+ if ((PN2[15] - PN1[15]) & 0x80)
+ return 1;
+
+ for (i=16; i>0; i--)
+ {
+ if(PN1[i-1] == PN2[i-1])
+ continue;
+ else if(PN1[i-1] > PN2[i-1])
+ return 1;
+ else
+ return 0;
+ }
+
+ return 0;
+}
+
+/* AddCount: 1 or 2.
+ * If overflow, return 1,
+ * else return 0.
+ */
+u8 WapiIncreasePN(u8 *PN, u8 AddCount)
+{
+ u8 i;
+
+ if (NULL == PN)
+ return 1;
+ /*
+ if(AddCount == 2){
+ printk("############################%s(): PN[0]=0x%x\n", __FUNCTION__, PN[0]);
+ if(PN[0] == 0x48){
+ PN[0] += AddCount;
+ return 1;
+ }else{
+ PN[0] += AddCount;
+ return 0;
+ }
+ }
+ */
+
+ for (i=0; i<16; i++)
+ {
+ if (PN[i] + AddCount <= 0xff)
+ {
+ PN[i] += AddCount;
+ return 0;
+ }
+ else
+ {
+ PN[i] += AddCount;
+ AddCount = 1;
+ }
+ }
+
+ return 1;
+}
+
+
+void WapiGetLastRxUnicastPNForQoSData(
+ u8 UserPriority,
+ PRT_WAPI_STA_INFO pWapiStaInfo,
+ u8 *PNOut
+)
+{
+ WAPI_TRACE(WAPI_RX, "===========> %s\n", __FUNCTION__);
+ switch(UserPriority)
+ {
+ case 0:
+ case 3:
+ memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNBEQueue,16);
+ break;
+ case 1:
+ case 2:
+ memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNBKQueue,16);
+ break;
+ case 4:
+ case 5:
+ memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNVIQueue,16);
+ break;
+ case 6:
+ case 7:
+ memcpy(PNOut,pWapiStaInfo->lastRxUnicastPNVOQueue,16);
+ break;
+ default:
+ WAPI_TRACE(WAPI_ERR, "%s: Unknown TID \n", __FUNCTION__);
+ break;
+ }
+ WAPI_TRACE(WAPI_RX, "<=========== %s\n", __FUNCTION__);
+}
+
+
+void WapiSetLastRxUnicastPNForQoSData(
+ u8 UserPriority,
+ u8 *PNIn,
+ PRT_WAPI_STA_INFO pWapiStaInfo
+)
+{
+ WAPI_TRACE(WAPI_RX, "===========> %s\n", __FUNCTION__);
+ switch(UserPriority)
+ {
+ case 0:
+ case 3:
+ memcpy(pWapiStaInfo->lastRxUnicastPNBEQueue,PNIn,16);
+ break;
+ case 1:
+ case 2:
+ memcpy(pWapiStaInfo->lastRxUnicastPNBKQueue,PNIn,16);
+ break;
+ case 4:
+ case 5:
+ memcpy(pWapiStaInfo->lastRxUnicastPNVIQueue,PNIn,16);
+ break;
+ case 6:
+ case 7:
+ memcpy(pWapiStaInfo->lastRxUnicastPNVOQueue,PNIn,16);
+ break;
+ default:
+ WAPI_TRACE(WAPI_ERR, "%s: Unknown TID \n", __FUNCTION__);
+ break;
+ }
+ WAPI_TRACE(WAPI_RX, "<=========== %s\n", __FUNCTION__);
+}
+
+
+/****************************************************************************
+TRUE-----------------bRxReorder == FALSE not RX-Reorder
+FALSE----------------bRxReorder == TRUE do RX Reorder
+add to support WAPI to N-mode
+*****************************************************************************/
+u8 WapiCheckPnInSwDecrypt(
+ struct rtllib_device *ieee,
+ struct sk_buff *pskb
+)
+{
+ struct rtllib_hdr_3addrqos *header;
+ u16 fc;
+ u8 *pDaddr, *pTaddr, *pRaddr;
+ u8 ret = false;
+
+ header = (struct rtllib_hdr_3addrqos *)pskb->data;
+ pTaddr = header->addr2;
+ pRaddr = header->addr1;
+ fc = le16_to_cpu(header->frame_ctl);
+
+ if((fc & RTLLIB_FCTL_TODS) == RTLLIB_FCTL_TODS)
+ pDaddr = header->addr3;
+ else
+ pDaddr = header->addr1;
+
+ if(eqMacAddr(pRaddr, ieee->dev->dev_addr) &&
+ !is_multicast_ether_addr(pDaddr) &&
+ ieee->current_network.qos_data.active &&
+ IsQoSDataFrame(pskb->data) && ieee->pHTInfo->bCurrentHTSupport &&
+ ieee->pHTInfo->bCurRxReorderEnable)
+ ret = false;
+ else
+ ret = true;
+
+ WAPI_TRACE(WAPI_RX, "%s: return %d\n", __FUNCTION__, ret);
+ return ret;
+}
+
+
+/****************************************************************************
+TRUE-----------------Drop
+FALSE---------------- handle
+add to support WAPI to N-mode
+*****************************************************************************/
+u8 WapiCheckDropForRxReorderCase(
+ struct rtllib_device *ieee,
+ struct rtllib_rxb* prxb
+)
+{
+ PRT_WAPI_T pWapiInfo = &(ieee->wapiInfo);
+ u8 *pLastRecvPN = NULL;
+ u8 bFind = false;
+ PRT_WAPI_STA_INFO pWapiSta = NULL;
+
+ if(!pWapiInfo->bWapiEnable)
+ return false;
+
+ if(list_empty(&pWapiInfo->wapiSTAUsedList)){
+ bFind = false;
+ }else{
+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
+ if(!memcmp(prxb->WapiSrcAddr,pWapiSta->PeerMacAddr,ETH_ALEN)){
+ bFind = true;
+ break;
+ }
+ }
+ }
+ WAPI_TRACE(WAPI_RX, "%s: bFind=%d prxb->WapiSrcAddr="MAC_FMT"\n", __FUNCTION__, bFind, MAC_ARG(prxb->WapiSrcAddr));
+
+ if(bFind){
+ switch(prxb->UserPriority)
+ {
+ case 0:
+ case 3:
+ pLastRecvPN = pWapiSta->lastRxUnicastPNBEQueue;
+ break;
+ case 1:
+ case 2:
+ pLastRecvPN = pWapiSta->lastRxUnicastPNBKQueue;
+ break;
+ case 4:
+ case 5:
+ pLastRecvPN = pWapiSta->lastRxUnicastPNVIQueue;
+ break;
+ case 6:
+ case 7:
+ pLastRecvPN = pWapiSta->lastRxUnicastPNVOQueue;
+ break;
+ default:
+ WAPI_TRACE(WAPI_ERR,"%s: Unknown TID \n",__FUNCTION__);
+ break;
+ }
+
+ if(!WapiComparePN(prxb->WapiTempPN,pLastRecvPN))
+ {
+ WAPI_TRACE(WAPI_RX,"%s: Equal PN!!\n",__FUNCTION__);
+ return true;
+ }
+ else
+ {
+ memcpy(pLastRecvPN,prxb->WapiTempPN,16);
+ return false;
+ }
+ }
+ else
+ return false;
+}
+
+int WapiSendWaiPacket(struct rtllib_device *ieee, struct sk_buff *pskb)
+{
+ struct sk_buff * newskb = NULL;
+ struct rtllib_hdr_3addr *mac_hdr=NULL;
+ cb_desc *tcb_desc = NULL;
+
+ RT_ASSERT_RET_VALUE(ieee,-1);
+ RT_ASSERT_RET_VALUE(pskb,-1);
+
+ if(pskb->len < (14 + sizeof(struct rtllib_hdr_3addr)))
+ {
+ WAPI_TRACE(WAPI_ERR, "%s: WAI frame is too small!!\n", __FUNCTION__);
+ goto failed;
+ }
+
+ skb_pull(pskb, 14);
+
+ newskb = dev_alloc_skb(pskb->len+ieee->tx_headroom);
+ if(!newskb){
+ WAPI_TRACE(WAPI_ERR,"%s: can't alloc skb\n",__FUNCTION__);
+ goto failed;
+ }
+ skb_reserve(newskb, ieee->tx_headroom);
+ memcpy(skb_put(newskb, pskb->len), pskb->data, pskb->len);
+ dev_kfree_skb_any(pskb);
+ /* called with 2nd parm 0, no tx mgmt lock required */
+ rtllib_sta_wakeup(ieee,0);
+
+ tcb_desc = (cb_desc *)(newskb->cb + MAX_DEV_ADDR_SIZE);
+#ifdef RTL8192SU_FPGA_UNSPECIFIED_NETWORK
+ tcb_desc->queue_index = NORMAL_QUEUE;
+#else
+ tcb_desc->queue_index = BE_QUEUE;
+#endif
+ tcb_desc->data_rate = 0x02;
+ tcb_desc->bTxUseDriverAssingedRate = true;
+ tcb_desc->RATRIndex = 7;
+ tcb_desc->bTxDisableRateFallBack = 1;
+#ifdef _RTL8192_EXT_PATCH_
+ tcb_desc->macId = 0;
+#endif
+
+ mac_hdr = (struct rtllib_hdr_3addr *)(newskb->data);
+ mac_hdr->seq_ctl = cpu_to_le16(ieee->seq_ctrl[0] << 4);
+ if (ieee->seq_ctrl[0] == 0xFFF)
+ ieee->seq_ctrl[0] = 0;
+ else
+ ieee->seq_ctrl[0]++;
+
+ if(!ieee->check_nic_enough_desc(ieee->dev,tcb_desc->queue_index)||\
+ (skb_queue_len(&ieee->skb_waitQ[tcb_desc->queue_index]) != 0)||\
+ (ieee->queue_stop) ) {
+ WAPI_TRACE(WAPI_TX, "%s: Insert to waitqueue (idx=%d)!!\n", __FUNCTION__, tcb_desc->queue_index);
+ skb_queue_tail(&ieee->skb_waitQ[tcb_desc->queue_index], newskb);
+ } else {
+ ieee->softmac_hard_start_xmit(newskb,ieee->dev);
+ }
+
+ return 0;
+
+failed:
+ dev_kfree_skb_any(pskb);
+ return -1;
+}
+/**********************************************************
+ **********************************************************/
+const u8 Sbox[256] = {
+0xd6,0x90,0xe9,0xfe,0xcc,0xe1,0x3d,0xb7,0x16,0xb6,0x14,0xc2,0x28,0xfb,0x2c,0x05,
+0x2b,0x67,0x9a,0x76,0x2a,0xbe,0x04,0xc3,0xaa,0x44,0x13,0x26,0x49,0x86,0x06,0x99,
+0x9c,0x42,0x50,0xf4,0x91,0xef,0x98,0x7a,0x33,0x54,0x0b,0x43,0xed,0xcf,0xac,0x62,
+0xe4,0xb3,0x1c,0xa9,0xc9,0x08,0xe8,0x95,0x80,0xdf,0x94,0xfa,0x75,0x8f,0x3f,0xa6,
+0x47,0x07,0xa7,0xfc,0xf3,0x73,0x17,0xba,0x83,0x59,0x3c,0x19,0xe6,0x85,0x4f,0xa8,
+0x68,0x6b,0x81,0xb2,0x71,0x64,0xda,0x8b,0xf8,0xeb,0x0f,0x4b,0x70,0x56,0x9d,0x35,
+0x1e,0x24,0x0e,0x5e,0x63,0x58,0xd1,0xa2,0x25,0x22,0x7c,0x3b,0x01,0x21,0x78,0x87,
+0xd4,0x00,0x46,0x57,0x9f,0xd3,0x27,0x52,0x4c,0x36,0x02,0xe7,0xa0,0xc4,0xc8,0x9e,
+0xea,0xbf,0x8a,0xd2,0x40,0xc7,0x38,0xb5,0xa3,0xf7,0xf2,0xce,0xf9,0x61,0x15,0xa1,
+0xe0,0xae,0x5d,0xa4,0x9b,0x34,0x1a,0x55,0xad,0x93,0x32,0x30,0xf5,0x8c,0xb1,0xe3,
+0x1d,0xf6,0xe2,0x2e,0x82,0x66,0xca,0x60,0xc0,0x29,0x23,0xab,0x0d,0x53,0x4e,0x6f,
+0xd5,0xdb,0x37,0x45,0xde,0xfd,0x8e,0x2f,0x03,0xff,0x6a,0x72,0x6d,0x6c,0x5b,0x51,
+0x8d,0x1b,0xaf,0x92,0xbb,0xdd,0xbc,0x7f,0x11,0xd9,0x5c,0x41,0x1f,0x10,0x5a,0xd8,
+0x0a,0xc1,0x31,0x88,0xa5,0xcd,0x7b,0xbd,0x2d,0x74,0xd0,0x12,0xb8,0xe5,0xb4,0xb0,
+0x89,0x69,0x97,0x4a,0x0c,0x96,0x77,0x7e,0x65,0xb9,0xf1,0x09,0xc5,0x6e,0xc6,0x84,
+0x18,0xf0,0x7d,0xec,0x3a,0xdc,0x4d,0x20,0x79,0xee,0x5f,0x3e,0xd7,0xcb,0x39,0x48
+};
+
+const u32 CK[32] = {
+ 0x00070e15, 0x1c232a31, 0x383f464d, 0x545b6269,
+ 0x70777e85, 0x8c939aa1, 0xa8afb6bd, 0xc4cbd2d9,
+ 0xe0e7eef5, 0xfc030a11, 0x181f262d, 0x343b4249,
+ 0x50575e65, 0x6c737a81, 0x888f969d, 0xa4abb2b9,
+ 0xc0c7ced5, 0xdce3eaf1, 0xf8ff060d, 0x141b2229,
+ 0x30373e45, 0x4c535a61, 0x686f767d, 0x848b9299,
+ 0xa0a7aeb5, 0xbcc3cad1, 0xd8dfe6ed, 0xf4fb0209,
+ 0x10171e25, 0x2c333a41, 0x484f565d, 0x646b7279 };
+
+#define Rotl(_x, _y) (((_x) << (_y)) | ((_x) >> (32 - (_y))))
+
+#define ByteSub(_A) (Sbox[(_A) >> 24 & 0xFF] << 24 | \
+ Sbox[(_A) >> 16 & 0xFF] << 16 | \
+ Sbox[(_A) >> 8 & 0xFF] << 8 | \
+ Sbox[(_A) & 0xFF])
+
+#define L1(_B) ((_B) ^ Rotl(_B, 2) ^ Rotl(_B, 10) ^ Rotl(_B, 18) ^ Rotl(_B, 24))
+#define L2(_B) ((_B) ^ Rotl(_B, 13) ^ Rotl(_B, 23))
+
+static void
+xor_block(void *dst, void *src1, void *src2)
+/* 128-bit xor: *dst = *src1 xor *src2. Pointers must be 32-bit aligned */
+{
+ ((u32 *)dst)[0] = ((u32 *)src1)[0] ^ ((u32 *)src2)[0];
+ ((u32 *)dst)[1] = ((u32 *)src1)[1] ^ ((u32 *)src2)[1];
+ ((u32 *)dst)[2] = ((u32 *)src1)[2] ^ ((u32 *)src2)[2];
+ ((u32 *)dst)[3] = ((u32 *)src1)[3] ^ ((u32 *)src2)[3];
+}
+
+
+void SMS4Crypt(u8 *Input, u8 *Output, u32 *rk)
+{
+ u32 r, mid, x0, x1, x2, x3, *p;
+ p = (u32 *)Input;
+ x0 = p[0];
+ x1 = p[1];
+ x2 = p[2];
+ x3 = p[3];
+#ifdef LITTLE_ENDIAN
+ x0 = Rotl(x0, 16); x0 = ((x0 & 0x00FF00FF) << 8) | ((x0 & 0xFF00FF00) >> 8);
+ x1 = Rotl(x1, 16); x1 = ((x1 & 0x00FF00FF) << 8) | ((x1 & 0xFF00FF00) >> 8);
+ x2 = Rotl(x2, 16); x2 = ((x2 & 0x00FF00FF) << 8) | ((x2 & 0xFF00FF00) >> 8);
+ x3 = Rotl(x3, 16); x3 = ((x3 & 0x00FF00FF) << 8) | ((x3 & 0xFF00FF00) >> 8);
+#endif
+ for (r = 0; r < 32; r += 4)
+ {
+ mid = x1 ^ x2 ^ x3 ^ rk[r + 0];
+ mid = ByteSub(mid);
+ x0 ^= L1(mid);
+ mid = x2 ^ x3 ^ x0 ^ rk[r + 1];
+ mid = ByteSub(mid);
+ x1 ^= L1(mid);
+ mid = x3 ^ x0 ^ x1 ^ rk[r + 2];
+ mid = ByteSub(mid);
+ x2 ^= L1(mid);
+ mid = x0 ^ x1 ^ x2 ^ rk[r + 3];
+ mid = ByteSub(mid);
+ x3 ^= L1(mid);
+ }
+#ifdef LITTLE_ENDIAN
+ x0 = Rotl(x0, 16); x0 = ((x0 & 0x00FF00FF) << 8) | ((x0 & 0xFF00FF00) >> 8);
+ x1 = Rotl(x1, 16); x1 = ((x1 & 0x00FF00FF) << 8) | ((x1 & 0xFF00FF00) >> 8);
+ x2 = Rotl(x2, 16); x2 = ((x2 & 0x00FF00FF) << 8) | ((x2 & 0xFF00FF00) >> 8);
+ x3 = Rotl(x3, 16); x3 = ((x3 & 0x00FF00FF) << 8) | ((x3 & 0xFF00FF00) >> 8);
+#endif
+ p = (u32 *)Output;
+ p[0] = x3;
+ p[1] = x2;
+ p[2] = x1;
+ p[3] = x0;
+}
+
+
+
+void SMS4KeyExt(u8 *Key, u32 *rk, u32 CryptFlag)
+{
+ u32 r, mid, x0, x1, x2, x3, *p;
+
+ p = (u32 *)Key;
+ x0 = p[0];
+ x1 = p[1];
+ x2 = p[2];
+ x3 = p[3];
+#ifdef LITTLE_ENDIAN
+ x0 = Rotl(x0, 16); x0 = ((x0 & 0xFF00FF) << 8) | ((x0 & 0xFF00FF00) >> 8);
+ x1 = Rotl(x1, 16); x1 = ((x1 & 0xFF00FF) << 8) | ((x1 & 0xFF00FF00) >> 8);
+ x2 = Rotl(x2, 16); x2 = ((x2 & 0xFF00FF) << 8) | ((x2 & 0xFF00FF00) >> 8);
+ x3 = Rotl(x3, 16); x3 = ((x3 & 0xFF00FF) << 8) | ((x3 & 0xFF00FF00) >> 8);
+#endif
+
+ x0 ^= 0xa3b1bac6;
+ x1 ^= 0x56aa3350;
+ x2 ^= 0x677d9197;
+ x3 ^= 0xb27022dc;
+ for (r = 0; r < 32; r += 4)
+ {
+ mid = x1 ^ x2 ^ x3 ^ CK[r + 0];
+ mid = ByteSub(mid);
+ rk[r + 0] = x0 ^= L2(mid);
+ mid = x2 ^ x3 ^ x0 ^ CK[r + 1];
+ mid = ByteSub(mid);
+ rk[r + 1] = x1 ^= L2(mid);
+ mid = x3 ^ x0 ^ x1 ^ CK[r + 2];
+ mid = ByteSub(mid);
+ rk[r + 2] = x2 ^= L2(mid);
+ mid = x0 ^ x1 ^ x2 ^ CK[r + 3];
+ mid = ByteSub(mid);
+ rk[r + 3] = x3 ^= L2(mid);
+ }
+ if (CryptFlag == DECRYPT)
+ {
+ for (r = 0; r < 16; r++)
+ mid = rk[r], rk[r] = rk[31 - r], rk[31 - r] = mid;
+ }
+}
+
+
+void WapiSMS4Cryption(u8 *Key, u8 *IV, u8 *Input, u16 InputLength,
+ u8 *Output, u16 *OutputLength, u32 CryptFlag)
+{
+ u32 blockNum,i,j, rk[32];
+ u16 remainder;
+ u8 blockIn[16],blockOut[16], tempIV[16], k;
+
+ *OutputLength = 0;
+ remainder = InputLength & 0x0F;
+ blockNum = InputLength >> 4;
+ if(remainder !=0)
+ blockNum++;
+ else
+ remainder = 16;
+
+ for(k=0;k<16;k++)
+ tempIV[k] = IV[15-k];
+
+ memcpy(blockIn, tempIV, 16);
+
+ SMS4KeyExt((u8 *)Key, rk,CryptFlag);
+
+ for(i=0; i<blockNum-1; i++)
+ {
+ SMS4Crypt((u8 *)blockIn, blockOut, rk);
+ xor_block(&Output[i*16], &Input[i*16], blockOut);
+ memcpy(blockIn,blockOut,16);
+ }
+
+ *OutputLength = i*16;
+
+ SMS4Crypt((u8 *)blockIn, blockOut, rk);
+
+ for(j=0; j<remainder; j++)
+ {
+ Output[i*16+j] = Input[i*16+j] ^ blockOut[j];
+ }
+ *OutputLength += remainder;
+
+}
+
+void WapiSMS4Encryption(u8 *Key, u8 *IV, u8 *Input, u16 InputLength,
+ u8 *Output, u16 *OutputLength)
+{
+
+ WapiSMS4Cryption(Key, IV, Input, InputLength, Output, OutputLength, ENCRYPT);
+}
+
+void WapiSMS4Decryption(u8 *Key, u8 *IV, u8 *Input, u16 InputLength,
+ u8 *Output, u16 *OutputLength)
+{
+ WapiSMS4Cryption(Key, IV, Input, InputLength, Output, OutputLength, ENCRYPT);
+}
+
+void WapiSMS4CalculateMic(u8 *Key, u8 *IV, u8 *Input1, u8 Input1Length,
+ u8 *Input2, u16 Input2Length, u8 *Output, u8 *OutputLength)
+{
+ u32 blockNum, i, remainder, rk[32];
+ u8 BlockIn[16], BlockOut[16], TempBlock[16], tempIV[16], k;
+
+ *OutputLength = 0;
+ remainder = Input1Length & 0x0F;
+ blockNum = Input1Length >> 4;
+
+ for(k=0;k<16;k++)
+ tempIV[k] = IV[15-k];
+
+ memcpy(BlockIn, tempIV, 16);
+
+ SMS4KeyExt((u8 *)Key, rk, ENCRYPT);
+
+ SMS4Crypt((u8 *)BlockIn, BlockOut, rk);
+
+ for(i=0; i<blockNum; i++){
+ xor_block(BlockIn, (Input1+i*16), BlockOut);
+ SMS4Crypt((u8 *)BlockIn, BlockOut, rk);
+ }
+
+ if(remainder !=0){
+ memset(TempBlock, 0, 16);
+ memcpy(TempBlock, (Input1+blockNum*16), remainder);
+
+ xor_block(BlockIn, TempBlock, BlockOut);
+ SMS4Crypt((u8 *)BlockIn, BlockOut, rk);
+ }
+
+ remainder = Input2Length & 0x0F;
+ blockNum = Input2Length >> 4;
+
+ for(i=0; i<blockNum; i++){
+ xor_block(BlockIn, (Input2+i*16), BlockOut);
+ SMS4Crypt((u8 *)BlockIn, BlockOut, rk);
+ }
+
+ if(remainder !=0){
+ memset(TempBlock, 0, 16);
+ memcpy(TempBlock, (Input2+blockNum*16), remainder);
+
+ xor_block(BlockIn, TempBlock, BlockOut);
+ SMS4Crypt((u8 *)BlockIn, BlockOut, rk);
+ }
+
+ memcpy(Output, BlockOut, 16);
+ *OutputLength = 16;
+}
+
+void SecCalculateMicSMS4(
+ u8 KeyIdx,
+ u8 *MicKey,
+ u8 *pHeader,
+ u8 *pData,
+ u16 DataLen,
+ u8 *MicBuffer
+ )
+{
+ struct rtllib_hdr_3addrqos *header;
+ u8 TempBuf[34], TempLen = 32, MicLen, QosOffset, *IV;
+ u16 *pTemp, fc;
+
+ header = (struct rtllib_hdr_3addrqos *)pHeader;
+ memset(TempBuf, 0, 34);
+ memcpy(TempBuf, pHeader, 2);
+ pTemp = (u16*)TempBuf;
+ *pTemp &= 0xc78f;
+
+ memcpy((TempBuf+2), (pHeader+4), 12);
+ memcpy((TempBuf+14), (pHeader+22), 2);
+ pTemp = (u16*)(TempBuf + 14);
+ *pTemp &= 0x000f;
+
+ memcpy((TempBuf+16), (pHeader+16), 6);
+
+ fc = le16_to_cpu(header->frame_ctl);
+ if((fc & (RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS)) == (RTLLIB_FCTL_FROMDS | RTLLIB_FCTL_TODS))
+ {
+ memcpy((TempBuf+22), (pHeader+24), 6);
+ QosOffset = 30;
+ }else{
+ memset((TempBuf+22), 0, 6);
+ QosOffset = 24;
+ }
+
+ if( IsQoSDataFrame(pHeader)){
+ memcpy((TempBuf+28), (pHeader+QosOffset), 2);
+ TempLen += 2;
+ IV = pHeader + QosOffset + 2 + 2;
+ }else{
+ IV = pHeader + QosOffset + 2;
+ }
+
+ TempBuf[TempLen-1] = (u8)(DataLen & 0xff);
+ TempBuf[TempLen-2] = (u8)((DataLen & 0xff00)>>8);
+ TempBuf[TempLen-4] = KeyIdx;
+
+ WAPI_DATA(WAPI_TX, "CalculateMic - KEY", MicKey, 16);
+ WAPI_DATA(WAPI_TX, "CalculateMic - IV", IV, 16);
+ WAPI_DATA(WAPI_TX, "CalculateMic - TempBuf", TempBuf, TempLen);
+ WAPI_DATA(WAPI_TX, "CalculateMic - pData", pData, DataLen);
+
+ WapiSMS4CalculateMic(MicKey, IV, TempBuf, TempLen,
+ pData, DataLen, MicBuffer, &MicLen);
+
+ if (MicLen != 16)
+ WAPI_TRACE(WAPI_ERR,"%s: MIC Length Error!!\n",__FUNCTION__);
+}
+
+int SecSMS4HeaderFillIV(struct rtllib_device *ieee, struct sk_buff *pskb)
+{
+ u8 *pSecHeader = NULL, *pos = NULL, *pRA = NULL;
+ u8 bPNOverflow = false, bFindMatchPeer = false, hdr_len = 0;
+ PWLAN_HEADER_WAPI_EXTENSION pWapiExt = NULL;
+ PRT_WAPI_T pWapiInfo = &ieee->wapiInfo;
+ PRT_WAPI_STA_INFO pWapiSta = NULL;
+ int ret = 0;
+
+ if ((!ieee->WapiSupport) || (!ieee->wapiInfo.bWapiEnable)){
+ WAPI_TRACE(WAPI_ERR,"%s: ieee->WapiSupport = 0!!\n",__FUNCTION__);
+ return -1;
+ }
+
+ hdr_len = sMacHdrLng;
+ if(IsQoSDataFrame(pskb->data) ){
+ hdr_len += sQoSCtlLng;
+ }
+
+ pos = skb_push(pskb, ieee->wapiInfo.extra_prefix_len);
+ memmove(pos, pos+ieee->wapiInfo.extra_prefix_len, hdr_len);
+
+ pSecHeader = pskb->data + hdr_len;
+ pWapiExt = (PWLAN_HEADER_WAPI_EXTENSION)pSecHeader;
+ pRA = pskb->data + 4;
+
+ WAPI_DATA(WAPI_TX, "FillIV - Before Fill IV", pskb->data, pskb->len);
+
+ if( is_multicast_ether_addr(pRA) ){
+ if(!pWapiInfo->wapiTxMsk.bTxEnable){
+ WAPI_TRACE(WAPI_ERR,"%s: bTxEnable = 0!!\n",__FUNCTION__);
+ return -2;
+ }
+ if(pWapiInfo->wapiTxMsk.keyId <= 1){
+ pWapiExt->KeyIdx = pWapiInfo->wapiTxMsk.keyId;
+ pWapiExt->Reserved = 0;
+ bPNOverflow = WapiIncreasePN(pWapiInfo->lastTxMulticastPN, 1);
+ memcpy(pWapiExt->PN, pWapiInfo->lastTxMulticastPN, 16);
+ if (bPNOverflow){
+ WAPI_TRACE(WAPI_ERR,"===============>%s():multicast PN overflow\n",__FUNCTION__);
+ WapiCreateAppEventAndSend(ieee,NULL,0,pRA, false, false, true, 0, false);
+ }
+ }else{
+ WAPI_TRACE(WAPI_ERR,"%s: Invalid Wapi Multicast KeyIdx!!\n",__FUNCTION__);
+ ret = -3;
+ }
+ }
+ else{
+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
+ if(!memcmp(pWapiSta->PeerMacAddr,pRA,6)){
+ bFindMatchPeer = true;
+ break;
+ }
+ }
+ if (bFindMatchPeer){
+ if((!pWapiSta->wapiUskUpdate.bTxEnable) && (!pWapiSta->wapiUsk.bTxEnable)){
+ WAPI_TRACE(WAPI_ERR,"%s: bTxEnable = 0!!\n",__FUNCTION__);
+ return -4;
+ }
+ if (pWapiSta->wapiUsk.keyId <= 1){
+ if(pWapiSta->wapiUskUpdate.bTxEnable)
+ pWapiExt->KeyIdx = pWapiSta->wapiUskUpdate.keyId;
+ else
+ pWapiExt->KeyIdx = pWapiSta->wapiUsk.keyId;
+
+ pWapiExt->Reserved = 0;
+ bPNOverflow = WapiIncreasePN(pWapiSta->lastTxUnicastPN, 2);
+ memcpy(pWapiExt->PN, pWapiSta->lastTxUnicastPN, 16);
+ if (bPNOverflow){
+ WAPI_TRACE(WAPI_ERR,"===============>%s():unicast PN overflow\n",__FUNCTION__);
+ WapiCreateAppEventAndSend(ieee,NULL,0,pWapiSta->PeerMacAddr, false, true, false, 0, false);
+ }
+ }else{
+ WAPI_TRACE(WAPI_ERR,"%s: Invalid Wapi Unicast KeyIdx!!\n",__FUNCTION__);
+ ret = -5;
+ }
+ }
+ else{
+ WAPI_TRACE(WAPI_ERR,"%s: Can not find Peer Sta "MAC_FMT"!!\n",__FUNCTION__, MAC_ARG(pRA));
+ ret = -6;
+ }
+ }
+
+ WAPI_DATA(WAPI_TX, "FillIV - After Fill IV", pskb->data, pskb->len);
+ return ret;
+}
+
+void SecSWSMS4Encryption(
+ struct rtllib_device *ieee,
+ struct sk_buff *pskb
+ )
+{
+ PRT_WAPI_T pWapiInfo = &ieee->wapiInfo;
+ PRT_WAPI_STA_INFO pWapiSta = NULL;
+ u8 *SecPtr = NULL, *pRA, *pMicKey = NULL, *pDataKey = NULL, *pIV = NULL, *pHeader = pskb->data;
+ u8 IVOffset, DataOffset, bFindMatchPeer = false, KeyIdx = 0, MicBuffer[16];
+ u16 OutputLength;
+
+#if defined(RTL8192U) || defined(RTL8192SU)
+ u32 SpecificHeadOverhead = 0;
+#ifdef USB_TX_DRIVER_AGGREGATION_ENABLE
+ cb_desc *tcb_desc = (cb_desc *)(pskb->cb + MAX_DEV_ADDR_SIZE);
+ if (tcb_desc->drv_agg_enable)
+ SpecificHeadOverhead = TX_PACKET_DRVAGGR_SUBFRAME_SHIFT_BYTES;
+ else
+#endif
+ SpecificHeadOverhead = TX_PACKET_SHIFT_BYTES;
+
+ pHeader += SpecificHeadOverhead;
+#endif
+ WAPI_TRACE(WAPI_TX, "=========>%s\n", __FUNCTION__);
+
+ if( IsQoSDataFrame(pHeader) ){
+ IVOffset = sMacHdrLng + sQoSCtlLng;
+ }else{
+ IVOffset = sMacHdrLng;
+ }
+
+ DataOffset = IVOffset + ieee->wapiInfo.extra_prefix_len;
+
+ pRA = pHeader + 4;
+ if( is_multicast_ether_addr(pRA) ){
+ KeyIdx = pWapiInfo->wapiTxMsk.keyId;
+ pIV = pWapiInfo->lastTxMulticastPN;
+ pMicKey = pWapiInfo->wapiTxMsk.micKey;
+ pDataKey = pWapiInfo->wapiTxMsk.dataKey;
+ }else{
+ if (!list_empty(&(pWapiInfo->wapiSTAUsedList))){
+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
+ if (0 == memcmp(pWapiSta->PeerMacAddr, pRA, 6)){
+ bFindMatchPeer = true;
+ break;
+ }
+ }
+
+ if (bFindMatchPeer){
+ if (pWapiSta->wapiUskUpdate.bTxEnable){
+ KeyIdx = pWapiSta->wapiUskUpdate.keyId;
+ WAPI_TRACE(WAPI_TX, "%s(): Use update USK!! KeyIdx=%d\n", __FUNCTION__, KeyIdx);
+ pIV = pWapiSta->lastTxUnicastPN;
+ pMicKey = pWapiSta->wapiUskUpdate.micKey;
+ pDataKey = pWapiSta->wapiUskUpdate.dataKey;
+ }else{
+ KeyIdx = pWapiSta->wapiUsk.keyId;
+ WAPI_TRACE(WAPI_TX, "%s(): Use USK!! KeyIdx=%d\n", __FUNCTION__, KeyIdx);
+ pIV = pWapiSta->lastTxUnicastPN;
+ pMicKey = pWapiSta->wapiUsk.micKey;
+ pDataKey = pWapiSta->wapiUsk.dataKey;
+ }
+ }else{
+ WAPI_TRACE(WAPI_ERR,"%s: Can not find Peer Sta!!\n",__FUNCTION__);
+ return;
+ }
+ }else{
+ WAPI_TRACE(WAPI_ERR,"%s: wapiSTAUsedList is empty!!\n",__FUNCTION__);
+ return;
+ }
+ }
+
+ SecPtr = pHeader;
+ SecCalculateMicSMS4(KeyIdx, pMicKey, SecPtr, (SecPtr+DataOffset), pskb->len-DataOffset, MicBuffer);
+
+ WAPI_DATA(WAPI_TX, "Encryption - MIC", MicBuffer, ieee->wapiInfo.extra_postfix_len);
+
+ memcpy(skb_put(pskb,ieee->wapiInfo.extra_postfix_len),
+ MicBuffer,
+ ieee->wapiInfo.extra_postfix_len
+ );
+
+ WapiSMS4Encryption(pDataKey, pIV, (SecPtr+DataOffset), pskb->len-DataOffset, (SecPtr+DataOffset), &OutputLength);
+
+ WAPI_DATA(WAPI_TX, "Encryption - After SMS4 encryption", pskb->data,pskb->len);
+
+ if (OutputLength != pskb->len-DataOffset)
+ WAPI_TRACE(WAPI_ERR,"%s: Output Length Error!!\n",__FUNCTION__);
+
+ WAPI_TRACE(WAPI_TX, "<=========%s\n", __FUNCTION__);
+}
+
+u8 SecSWSMS4Decryption(
+ struct rtllib_device *ieee,
+ struct sk_buff *pskb,
+ struct rtllib_rx_stats *rx_stats
+ )
+{
+ PRT_WAPI_T pWapiInfo = &ieee->wapiInfo;
+ PRT_WAPI_STA_INFO pWapiSta = NULL;
+ u8 IVOffset, DataOffset, bFindMatchPeer = false, bUseUpdatedKey = false;
+ u8 KeyIdx, MicBuffer[16], lastRxPNforQoS[16];
+ u8 *pRA, *pTA, *pMicKey, *pDataKey, *pLastRxPN, *pRecvPN, *pSecData, *pRecvMic, *pos;
+ u8 TID = 0;
+ u16 OutputLength, DataLen;
+
+ rx_stats->bWapiCheckPNInDecrypt = WapiCheckPnInSwDecrypt(ieee, pskb);
+ WAPI_TRACE(WAPI_RX, "=========>%s: check PN %d\n", __FUNCTION__,rx_stats->bWapiCheckPNInDecrypt);
+ WAPI_DATA(WAPI_RX, "Decryption - Before decryption", pskb->data, pskb->len);
+
+ IVOffset = sMacHdrLng;
+ if( rx_stats->bIsQosData ){
+ IVOffset += sQoSCtlLng;
+ }
+ if( rx_stats->bContainHTC )
+ IVOffset += sHTCLng;
+
+
+ DataOffset = IVOffset + ieee->wapiInfo.extra_prefix_len;
+
+ pRA = pskb->data + 4;
+ pTA = pskb->data + 10;
+ KeyIdx = *(pskb->data + IVOffset);
+ pRecvPN = pskb->data + IVOffset + 2;
+ pSecData = pskb->data + DataOffset;
+ DataLen = pskb->len - DataOffset;
+ pRecvMic = pskb->data + pskb->len - ieee->wapiInfo.extra_postfix_len;
+ TID = Frame_QoSTID(pskb->data);
+
+ if (!list_empty(&(pWapiInfo->wapiSTAUsedList))){
+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
+ if (0 == memcmp(pWapiSta->PeerMacAddr, pTA, 6)){
+ bFindMatchPeer = true;
+ break;
+ }
+ }
+ }
+
+ if (!bFindMatchPeer){
+ WAPI_TRACE(WAPI_ERR, "%s: Can not find Peer Sta "MAC_FMT" for Key Info!!!\n", __FUNCTION__, MAC_ARG(pTA));
+ return false;
+ }
+
+ if( is_multicast_ether_addr(pRA) ){
+ WAPI_TRACE(WAPI_RX, "%s: Multicast decryption !!!\n", __FUNCTION__);
+ if (pWapiSta->wapiMsk.keyId == KeyIdx && pWapiSta->wapiMsk.bSet){
+ pLastRxPN = pWapiSta->lastRxMulticastPN;
+ if (!WapiComparePN(pRecvPN, pLastRxPN)){
+ WAPI_TRACE(WAPI_ERR, "%s: MSK PN is not larger than last, Dropped!!!\n", __FUNCTION__);
+ WAPI_DATA(WAPI_ERR, "pRecvPN:", pRecvPN, 16);
+ WAPI_DATA(WAPI_ERR, "pLastRxPN:", pLastRxPN, 16);
+ return false;
+ }
+
+ memcpy(pLastRxPN, pRecvPN, 16);
+ pMicKey = pWapiSta->wapiMsk.micKey;
+ pDataKey = pWapiSta->wapiMsk.dataKey;
+ }else if (pWapiSta->wapiMskUpdate.keyId == KeyIdx && pWapiSta->wapiMskUpdate.bSet){
+ WAPI_TRACE(WAPI_RX, "%s: Use Updated MSK for Decryption !!!\n", __FUNCTION__);
+ bUseUpdatedKey = true;
+ memcpy(pWapiSta->lastRxMulticastPN, pRecvPN, 16);
+ pMicKey = pWapiSta->wapiMskUpdate.micKey;
+ pDataKey = pWapiSta->wapiMskUpdate.dataKey;
+ }else{
+ WAPI_TRACE(WAPI_ERR, "%s: Can not find MSK with matched KeyIdx(%d), Dropped !!!\n", __FUNCTION__,KeyIdx);
+ return false;
+ }
+ }
+ else{
+ WAPI_TRACE(WAPI_RX, "%s: Unicast decryption !!!\n", __FUNCTION__);
+ if (pWapiSta->wapiUsk.keyId == KeyIdx && pWapiSta->wapiUsk.bSet){
+ WAPI_TRACE(WAPI_RX, "%s: Use USK for Decryption!!!\n", __FUNCTION__);
+ if(rx_stats->bWapiCheckPNInDecrypt){
+ if(rx_stats->bIsQosData){
+ WapiGetLastRxUnicastPNForQoSData(TID, pWapiSta, lastRxPNforQoS);
+ pLastRxPN = lastRxPNforQoS;
+ }else{
+ pLastRxPN = pWapiSta->lastRxUnicastPN;
+ }
+ if (!WapiComparePN(pRecvPN, pLastRxPN)){
+ return false;
+ }
+ if(rx_stats->bIsQosData){
+ WapiSetLastRxUnicastPNForQoSData(TID, pRecvPN, pWapiSta);
+ }else{
+ memcpy(pWapiSta->lastRxUnicastPN, pRecvPN, 16);
+ }
+ }else{
+ memcpy(rx_stats->WapiTempPN,pRecvPN,16);
+ }
+
+ if (ieee->iw_mode == IW_MODE_INFRA){
+ if ((pRecvPN[0] & 0x1) == 0){
+ WAPI_TRACE(WAPI_ERR, "%s: Rx USK PN is not odd when Infra STA mode, Dropped !!!\n", __FUNCTION__);
+ return false;
+ }
+ }
+
+ pMicKey = pWapiSta->wapiUsk.micKey;
+ pDataKey = pWapiSta->wapiUsk.dataKey;
+ }
+ else if (pWapiSta->wapiUskUpdate.keyId == KeyIdx && pWapiSta->wapiUskUpdate.bSet ){
+ WAPI_TRACE(WAPI_RX, "%s: Use Updated USK for Decryption!!!\n", __FUNCTION__);
+ if(pWapiSta->bAuthenticatorInUpdata)
+ bUseUpdatedKey = true;
+ else
+ bUseUpdatedKey = false;
+
+ if(rx_stats->bIsQosData){
+ WapiSetLastRxUnicastPNForQoSData(TID, pRecvPN, pWapiSta);
+ }else{
+ memcpy(pWapiSta->lastRxUnicastPN, pRecvPN, 16);
+ }
+ pMicKey = pWapiSta->wapiUskUpdate.micKey;
+ pDataKey = pWapiSta->wapiUskUpdate.dataKey;
+ }else{
+ WAPI_TRACE(WAPI_ERR, "%s: No valid USK!!!KeyIdx=%d pWapiSta->wapiUsk.keyId=%d pWapiSta->wapiUskUpdate.keyId=%d\n", __FUNCTION__, KeyIdx, pWapiSta->wapiUsk.keyId, pWapiSta->wapiUskUpdate.keyId);
+ dump_buf(pskb->data,pskb->len);
+ return false;
+ }
+ }
+
+ WAPI_DATA(WAPI_RX, "Decryption - DataKey", pDataKey, 16);
+ WAPI_DATA(WAPI_RX, "Decryption - IV", pRecvPN, 16);
+ WapiSMS4Decryption(pDataKey, pRecvPN, pSecData, DataLen, pSecData, &OutputLength);
+
+ if (OutputLength != DataLen)
+ WAPI_TRACE(WAPI_ERR, "%s: Output Length Error!!!!\n", __FUNCTION__);
+
+ WAPI_DATA(WAPI_RX, "Decryption - After decryption", pskb->data, pskb->len);
+
+ DataLen -= ieee->wapiInfo.extra_postfix_len;
+
+ SecCalculateMicSMS4(KeyIdx, pMicKey, pskb->data, pSecData, DataLen, MicBuffer);
+
+ WAPI_DATA(WAPI_RX, "Decryption - MIC received", pRecvMic, SMS4_MIC_LEN);
+ WAPI_DATA(WAPI_RX, "Decryption - MIC calculated", MicBuffer, SMS4_MIC_LEN);
+
+ if (0 == memcmp(MicBuffer, pRecvMic, ieee->wapiInfo.extra_postfix_len)){
+ WAPI_TRACE(WAPI_RX, "%s: Check MIC OK!!\n", __FUNCTION__);
+ if (bUseUpdatedKey){
+ if ( is_multicast_ether_addr(pRA) ){
+ WAPI_TRACE(WAPI_API, "%s(): AE use new update MSK!!\n", __FUNCTION__);
+ pWapiSta->wapiMsk.keyId = pWapiSta->wapiMskUpdate.keyId;
+ memcpy(pWapiSta->wapiMsk.dataKey, pWapiSta->wapiMskUpdate.dataKey, 16);
+ memcpy(pWapiSta->wapiMsk.micKey, pWapiSta->wapiMskUpdate.micKey, 16);
+ pWapiSta->wapiMskUpdate.bTxEnable = pWapiSta->wapiMskUpdate.bSet = false;
+ }else{
+ WAPI_TRACE(WAPI_API, "%s(): AE use new update USK!!\n", __FUNCTION__);
+ pWapiSta->wapiUsk.keyId = pWapiSta->wapiUskUpdate.keyId;
+ memcpy(pWapiSta->wapiUsk.dataKey, pWapiSta->wapiUskUpdate.dataKey, 16);
+ memcpy(pWapiSta->wapiUsk.micKey, pWapiSta->wapiUskUpdate.micKey, 16);
+ pWapiSta->wapiUskUpdate.bTxEnable = pWapiSta->wapiUskUpdate.bSet = false;
+ }
+ }
+ }else{
+ WAPI_TRACE(WAPI_ERR, "%s: Check MIC Error, Dropped !!!!\n", __FUNCTION__);
+ return false;
+ }
+
+ pos = pskb->data;
+ memmove(pos+ieee->wapiInfo.extra_prefix_len, pos, IVOffset);
+ skb_pull(pskb, ieee->wapiInfo.extra_prefix_len);
+
+ WAPI_TRACE(WAPI_RX, "<=========%s\n", __FUNCTION__);
+
+ return true;
+}
+
+void wapi_test_set_key(struct rtllib_device *ieee, u8* buf)
+{ /*Data: keyType(1) + bTxEnable(1) + bAuthenticator(1) + bUpdate(1) + PeerAddr(6) + DataKey(16) + MicKey(16) + KeyId(1)*/
+ PRT_WAPI_T pWapiInfo = &ieee->wapiInfo;
+ PRT_WAPI_BKID pWapiBkid;
+ PRT_WAPI_STA_INFO pWapiSta;
+ u8 data[43];
+ bool bTxEnable;
+ bool bUpdate;
+ bool bAuthenticator;
+ u8 PeerAddr[6];
+ u8 WapiAEPNInitialValueSrc[16] = {0x37,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
+ u8 WapiASUEPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
+ u8 WapiAEMultiCastPNInitialValueSrc[16] = {0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C,0x36,0x5C} ;
+
+ WAPI_TRACE(WAPI_INIT, "===========>%s\n", __FUNCTION__);
+
+ if (!ieee->WapiSupport){
+ return;
+ }
+
+ copy_from_user(data, buf, 43);
+ bTxEnable = data[1];
+ bAuthenticator = data[2];
+ bUpdate = data[3];
+ memcpy(PeerAddr,data+4,6);
+
+ if(data[0] == 0x3){
+ if(!list_empty(&(pWapiInfo->wapiBKIDIdleList))){
+ pWapiBkid = (PRT_WAPI_BKID)list_entry(pWapiInfo->wapiBKIDIdleList.next, RT_WAPI_BKID, list);
+ list_del_init(&pWapiBkid->list);
+ memcpy(pWapiBkid->bkid, data+10, 16);
+ WAPI_DATA(WAPI_INIT, "SetKey - BKID", pWapiBkid->bkid, 16);
+ list_add_tail(&pWapiBkid->list, &pWapiInfo->wapiBKIDStoreList);
+ }
+ }else{
+ list_for_each_entry(pWapiSta, &pWapiInfo->wapiSTAUsedList, list) {
+ if(!memcmp(pWapiSta->PeerMacAddr,PeerAddr,6)){
+ pWapiSta->bAuthenticatorInUpdata = false;
+ switch(data[0]){
+ case 1:
+ if(bAuthenticator){
+ memcpy(pWapiSta->lastTxUnicastPN,WapiAEPNInitialValueSrc,16);
+ if(!bUpdate) {
+ WAPI_TRACE(WAPI_INIT,"AE fisrt set usk \n");
+ pWapiSta->wapiUsk.bSet = true;
+ memcpy(pWapiSta->wapiUsk.dataKey,data+10,16);
+ memcpy(pWapiSta->wapiUsk.micKey,data+26,16);
+ pWapiSta->wapiUsk.keyId = *(data+42);
+ pWapiSta->wapiUsk.bTxEnable = true;
+ WAPI_DATA(WAPI_INIT, "SetKey - AE USK Data Key", pWapiSta->wapiUsk.dataKey, 16);
+ WAPI_DATA(WAPI_INIT, "SetKey - AE USK Mic Key", pWapiSta->wapiUsk.micKey, 16);
+ }
+ else
+ {
+ WAPI_TRACE(WAPI_INIT, "AE update usk \n");
+ pWapiSta->wapiUskUpdate.bSet = true;
+ pWapiSta->bAuthenticatorInUpdata = true;
+ memcpy(pWapiSta->wapiUskUpdate.dataKey,data+10,16);
+ memcpy(pWapiSta->wapiUskUpdate.micKey,data+26,16);
+ memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPN,WapiASUEPNInitialValueSrc,16);
+ pWapiSta->wapiUskUpdate.keyId = *(data+42);
+ pWapiSta->wapiUskUpdate.bTxEnable = true;
+ }
+ }
+ else{
+ if(!bUpdate){
+ WAPI_TRACE(WAPI_INIT,"ASUE fisrt set usk \n");
+ if(bTxEnable){
+ pWapiSta->wapiUsk.bTxEnable = true;
+ memcpy(pWapiSta->lastTxUnicastPN,WapiASUEPNInitialValueSrc,16);
+ }else{
+ pWapiSta->wapiUsk.bSet = true;
+ memcpy(pWapiSta->wapiUsk.dataKey,data+10,16);
+ memcpy(pWapiSta->wapiUsk.micKey,data+26,16);
+ pWapiSta->wapiUsk.keyId = *(data+42);
+ pWapiSta->wapiUsk.bTxEnable = false;
+ }
+ }else{
+ WAPI_TRACE(WAPI_INIT,"ASUE update usk \n");
+ if(bTxEnable){
+ pWapiSta->wapiUskUpdate.bTxEnable = true;
+ if(pWapiSta->wapiUskUpdate.bSet){
+ memcpy(pWapiSta->wapiUsk.dataKey,pWapiSta->wapiUskUpdate.dataKey,16);
+ memcpy(pWapiSta->wapiUsk.micKey,pWapiSta->wapiUskUpdate.micKey,16);
+ pWapiSta->wapiUsk.keyId=pWapiSta->wapiUskUpdate.keyId;
+ memcpy(pWapiSta->lastRxUnicastPNBEQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNBKQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNVIQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPNVOQueue,WapiASUEPNInitialValueSrc,16);
+ memcpy(pWapiSta->lastRxUnicastPN,WapiASUEPNInitialValueSrc,16);
+ pWapiSta->wapiUskUpdate.bTxEnable = false;
+ pWapiSta->wapiUskUpdate.bSet = false;
+ }
+ memcpy(pWapiSta->lastTxUnicastPN,WapiASUEPNInitialValueSrc,16);
+ }else{
+ pWapiSta->wapiUskUpdate.bSet = true;
+ memcpy(pWapiSta->wapiUskUpdate.dataKey,data+10,16);
+ memcpy(pWapiSta->wapiUskUpdate.micKey,data+26,16);
+ pWapiSta->wapiUskUpdate.keyId = *(data+42);
+ pWapiSta->wapiUskUpdate.bTxEnable = false;
+ }
+ }
+ }
+ break;
+ case 2:
+ if(bAuthenticator){
+ pWapiInfo->wapiTxMsk.bSet = true;
+ memcpy(pWapiInfo->wapiTxMsk.dataKey,data+10,16);
+ memcpy(pWapiInfo->wapiTxMsk.micKey,data+26,16);
+ pWapiInfo->wapiTxMsk.keyId = *(data+42);
+ pWapiInfo->wapiTxMsk.bTxEnable = true;
+ memcpy(pWapiInfo->lastTxMulticastPN,WapiAEMultiCastPNInitialValueSrc,16);
+
+ if(!bUpdate){
+ WAPI_TRACE(WAPI_INIT, "AE fisrt set msk \n");
+ if(!pWapiSta->bSetkeyOk)
+ pWapiSta->bSetkeyOk = true;
+ pWapiInfo->bFirstAuthentiateInProgress= false;
+ }else{
+ WAPI_TRACE(WAPI_INIT,"AE update msk \n");
+ }
+
+ WAPI_DATA(WAPI_INIT, "SetKey - AE MSK Data Key", pWapiInfo->wapiTxMsk.dataKey, 16);
+ WAPI_DATA(WAPI_INIT, "SetKey - AE MSK Mic Key", pWapiInfo->wapiTxMsk.micKey, 16);
+ }
+ else{
+ if(!bUpdate){
+ WAPI_TRACE(WAPI_INIT,"ASUE fisrt set msk \n");
+ pWapiSta->wapiMsk.bSet = true;
+ memcpy(pWapiSta->wapiMsk.dataKey,data+10,16);
+ memcpy(pWapiSta->wapiMsk.micKey,data+26,16);
+ pWapiSta->wapiMsk.keyId = *(data+42);
+ pWapiSta->wapiMsk.bTxEnable = false;
+ if(!pWapiSta->bSetkeyOk)
+ pWapiSta->bSetkeyOk = true;
+ pWapiInfo->bFirstAuthentiateInProgress= false;
+ WAPI_DATA(WAPI_INIT, "SetKey - ASUE MSK Data Key", pWapiSta->wapiMsk.dataKey, 16);
+ WAPI_DATA(WAPI_INIT, "SetKey - ASUE MSK Mic Key", pWapiSta->wapiMsk.micKey, 16);
+ }else{
+ WAPI_TRACE(WAPI_INIT,"ASUE update msk \n");
+ pWapiSta->wapiMskUpdate.bSet = true;
+ memcpy(pWapiSta->wapiMskUpdate.dataKey,data+10,16);
+ memcpy(pWapiSta->wapiMskUpdate.micKey,data+26,16);
+ pWapiSta->wapiMskUpdate.keyId = *(data+42);
+ pWapiSta->wapiMskUpdate.bTxEnable = false;
+ }
+ }
+ break;
+ default:
+ WAPI_TRACE(WAPI_ERR,"Unknown Flag \n");
+ break;
+ }
+ }
+ }
+ }
+ WAPI_TRACE(WAPI_INIT, "<===========%s\n", __FUNCTION__);
+}
+
+void wapi_test_init(struct rtllib_device *ieee)
+{
+ u8 keybuf[100];
+ u8 mac_addr[6]={0x00,0xe0,0x4c,0x72,0x04,0x70};
+ u8 UskDataKey[16]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0x0c,0x0d,0x0e,0x0f};
+ u8 UskMicKey[16]={0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f};
+ u8 UskId = 0;
+ u8 MskDataKey[16]={0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2a,0x2b,0x2c,0x2d,0x2e,0x2f};
+ u8 MskMicKey[16]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x3b,0x3c,0x3d,0x3e,0x3f};
+ u8 MskId = 0;
+
+ WAPI_TRACE(WAPI_INIT, "===========>%s\n", __FUNCTION__);
+
+ WAPI_TRACE(WAPI_INIT, "%s: Enable wapi!!!!\n", __FUNCTION__);
+ ieee->wapiInfo.bWapiEnable = true;
+ ieee->pairwise_key_type = KEY_TYPE_SMS4;
+ ieee->group_key_type = KEY_TYPE_SMS4;
+ ieee->wapiInfo.extra_prefix_len = WAPI_EXT_LEN;
+ ieee->wapiInfo.extra_postfix_len = SMS4_MIC_LEN;
+
+ WAPI_TRACE(WAPI_INIT, "%s: Set USK!!!!\n", __FUNCTION__);
+ memset(keybuf,0,100);
+ keybuf[0] = 1;
+ keybuf[1] = 1;
+ keybuf[2] = 1;
+ keybuf[3] = 0;
+
+ memcpy(keybuf+4,mac_addr,6);
+ memcpy(keybuf+10,UskDataKey,16);
+ memcpy(keybuf+26,UskMicKey,16);
+ keybuf[42]=UskId;
+ wapi_test_set_key(ieee, keybuf);
+
+ memset(keybuf,0,100);
+ keybuf[0] = 1;
+ keybuf[1] = 1;
+ keybuf[2] = 0;
+ keybuf[3] = 0;
+
+ memcpy(keybuf+4,mac_addr,6);
+ memcpy(keybuf+10,UskDataKey,16);
+ memcpy(keybuf+26,UskMicKey,16);
+ keybuf[42]=UskId;
+ wapi_test_set_key(ieee, keybuf);
+
+ WAPI_TRACE(WAPI_INIT, "%s: Set MSK!!!!\n", __FUNCTION__);
+ memset(keybuf,0,100);
+ keybuf[0] = 2;
+ keybuf[1] = 1;
+ keybuf[2] = 1;
+ keybuf[3] = 0;
+ memcpy(keybuf+4,mac_addr,6);
+ memcpy(keybuf+10,MskDataKey,16);
+ memcpy(keybuf+26,MskMicKey,16);
+ keybuf[42] = MskId;
+ wapi_test_set_key(ieee, keybuf);
+
+ memset(keybuf,0,100);
+ keybuf[0] = 2;
+ keybuf[1] = 1;
+ keybuf[2] = 0;
+ keybuf[3] = 0;
+ memcpy(keybuf+4,mac_addr,6);
+ memcpy(keybuf+10,MskDataKey,16);
+ memcpy(keybuf+26,MskMicKey,16);
+ keybuf[42] = MskId;
+ wapi_test_set_key(ieee, keybuf);
+ WAPI_TRACE(WAPI_INIT, "<===========%s\n", __FUNCTION__);
+}
+
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/wapi.h b/ubuntu/rtl8192se/rtllib/wapi.h
new file mode 100755
index 00000000000..2707bac586e
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/wapi.h
@@ -0,0 +1,135 @@
+#ifndef __INC_WAPI_H
+#define __INC_WAPI_H
+
+#include <linux/kernel.h>
+#include <linux/list.h>
+#include "rtl819x_Qos.h"
+
+/* WAPI trace debug */
+extern u32 wapi_debug_component;
+
+#define WAPI_TRACE(component, x, args...) \
+do { if(wapi_debug_component & (component)) \
+ printk(KERN_DEBUG "WAPI" ":" x "" , \
+ ##args);\
+}while(0);
+
+#define WAPI_DATA(component, x, buf, len) \
+do { if(wapi_debug_component & (component)){ \
+ printk("%s:\n", x);\
+ dump_buf((buf), (len));}\
+}while(0);
+
+enum WAPI_DEBUG {
+ WAPI_INIT =BIT0,
+ WAPI_API = BIT1,
+ WAPI_TX = BIT2,
+ WAPI_RX = BIT3,
+ WAPI_ERR = BIT31
+};
+
+#define WAPI_MAX_BKID_NUM 64
+#define WAPI_MAX_STAINFO_NUM 64
+typedef struct _RT_WAPI_BKID
+{
+ struct list_head list;
+ u8 bkid[16];
+}RT_WAPI_BKID,*PRT_WAPI_BKID;
+
+typedef struct _RT_WAPI_KEY
+{
+ u8 dataKey[16];
+ u8 micKey[16];
+ u8 keyId;
+ bool bSet;
+ bool bTxEnable;
+}RT_WAPI_KEY,*PRT_WAPI_KEY;
+
+typedef enum _RT_WAPI_PACKET_TYPE
+{
+ WAPI_NONE = 0,
+ WAPI_PREAUTHENTICATE=1,
+ WAPI_STAKEY_REQUEST=2,
+ WAPI_AUTHENTICATE_ACTIVE=3,
+ WAPI_ACCESS_AUTHENTICATE_REQUEST=4,
+ WAPI_ACCESS_AUTHENTICATE_RESPONSE=5,
+ WAPI_CERTIFICATE_AUTHENTICATE_REQUEST=6,
+ WAPI_CERTIFICATE_AUTHENTICATE_RESPONSE=7,
+ WAPI_USK_REQUEST=8,
+ WAPI_USK_RESPONSE=9,
+ WAPI_USK_CONFIRM=10,
+ WAPI_MSK_NOTIFICATION=11,
+ WAPI_MSK_RESPONSE=12
+}RT_WAPI_PACKET_TYPE;
+
+typedef struct _RT_CACHE_INFO {
+ u8 cache_buffer[2000];
+ u16 cache_buffer_len;
+ u8 saddr[6];
+ bool bAuthenticator;
+ u16 recvSeq;
+ u8 lastFragNum;
+ struct list_head list;
+}RT_CACHE_INFO, *PRT_CACHE_INFO;
+
+typedef struct _RT_WAPI_STA_INFO
+{
+ struct list_head list;
+ u8 PeerMacAddr[6];
+ RT_WAPI_KEY wapiUsk;
+ RT_WAPI_KEY wapiUskUpdate;
+ RT_WAPI_KEY wapiMsk;
+ RT_WAPI_KEY wapiMskUpdate;
+ u8 lastRxUnicastPN[16];
+ u8 lastTxUnicastPN[16];
+ u8 lastRxMulticastPN[16];
+ u8 lastRxUnicastPNBEQueue[16];
+ u8 lastRxUnicastPNBKQueue[16];
+ u8 lastRxUnicastPNVIQueue[16];
+ u8 lastRxUnicastPNVOQueue[16];
+ bool bSetkeyOk;
+ bool bAuthenticateInProgress;
+ bool bAuthenticatorInUpdata;
+}RT_WAPI_STA_INFO,*PRT_WAPI_STA_INFO;
+
+typedef struct _RT_WAPI_T
+{
+ u8 assoReqWapiIE[256];
+ u8 assoReqWapiIELength;
+ u8 assoRspWapiIE[256];
+ u8 assoRspWapiIELength;
+ u8 sendbeaconWapiIE[256];
+ u8 sendbeaconWapiIELength;
+ RT_WAPI_BKID wapiBKID[WAPI_MAX_BKID_NUM];
+ struct list_head wapiBKIDIdleList;
+ struct list_head wapiBKIDStoreList;
+ RT_WAPI_KEY wapiTxMsk;
+
+ u8 wapiDestMacAddr[6];
+ bool bAuthenticator;
+ u8 lastTxMulticastPN[16];
+ RT_WAPI_STA_INFO wapiSta[WAPI_MAX_STAINFO_NUM];
+ struct list_head wapiSTAIdleList;
+ struct list_head wapiSTAUsedList;
+ bool bWapiEnable;
+ bool bUpdateUsk;
+ bool bUpdateMsk;
+
+ u8 wapiIE[256];
+ u8 wapiIELength;
+ bool bWapiNotSetEncMacHeader;
+ bool bWapiPSK;
+ bool bFirstAuthentiateInProgress;
+ u16 wapiSeqnumAndFragNum;
+ int extra_prefix_len;
+ int extra_postfix_len;
+}RT_WAPI_T,*PRT_WAPI_T;
+
+typedef struct _WLAN_HEADER_WAPI_EXTENSION
+{
+ u8 KeyIdx;
+ u8 Reserved;
+ u8 PN[16];
+} WLAN_HEADER_WAPI_EXTENSION, *PWLAN_HEADER_WAPI_EXTENSION;
+
+#endif
diff --git a/ubuntu/rtl8192se/rtllib/wapi_interface.c b/ubuntu/rtl8192se/rtllib/wapi_interface.c
new file mode 100755
index 00000000000..53b76f6c70b
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/wapi_interface.c
@@ -0,0 +1,151 @@
+#if defined (RTL8192S_WAPI_SUPPORT)
+
+#include "wapi.h"
+#include "wapi_interface.h"
+#include "rtllib.h"
+
+
+/*************************************************************
+ * WAPI EVENT QUEUE : *
+ * Buffer events from driver to application. *
+ *************************************************************/
+void WAPI_InitQueue(WAPI_QUEUE * q, int szMaxItem, int szMaxData)
+{
+ RT_ASSERT_RET(q);
+
+ q->Head = 0;
+ q->Tail = 0;
+ q->NumItem = 0;
+ q->MaxItem = szMaxItem;
+ q->MaxData = szMaxData;
+}
+
+int WAPI_EnQueue(spinlock_t *plock, WAPI_QUEUE *q, u8 *item, int itemsize)
+{
+ unsigned long flags;
+
+ RT_ASSERT_RET_VALUE(plock, (-E_WAPI_QNULL));
+ RT_ASSERT_RET_VALUE(q, (-E_WAPI_QNULL));
+ RT_ASSERT_RET_VALUE(item, (-E_WAPI_QNULL));
+
+ if(WAPI_IsFullQueue(q))
+ return -E_WAPI_QFULL;
+ if(itemsize > q->MaxData)
+ return -E_WAPI_ITEM_TOO_LARGE;
+
+ spin_lock_irqsave(plock, flags);
+
+ q->ItemArray[q->Tail].ItemSize = itemsize;
+ memset(q->ItemArray[q->Tail].Item, 0, sizeof(q->ItemArray[q->Tail].Item));
+ memcpy(q->ItemArray[q->Tail].Item, item, itemsize);
+ q->NumItem++;
+ if((q->Tail+1) == q->MaxItem)
+ q->Tail = 0;
+ else
+ q->Tail++;
+
+ spin_unlock_irqrestore(plock, flags);
+
+ return E_WAPI_OK;
+}
+
+
+int WAPI_DeQueue(spinlock_t *plock, WAPI_QUEUE *q, u8 *item, int *itemsize)
+{
+ unsigned long flags;
+
+ RT_ASSERT_RET_VALUE(plock, (-E_WAPI_QNULL));
+ RT_ASSERT_RET_VALUE(q, (-E_WAPI_QNULL));
+ RT_ASSERT_RET_VALUE(item, (-E_WAPI_QNULL));
+
+ if(WAPI_IsEmptyQueue(q))
+ return -E_WAPI_QEMPTY;
+
+ spin_lock_irqsave(plock, flags);
+
+ memcpy(item, q->ItemArray[q->Head].Item, q->ItemArray[q->Head].ItemSize);
+ *itemsize = q->ItemArray[q->Head].ItemSize;
+ q->NumItem--;
+ if((q->Head+1) == q->MaxItem)
+ q->Head = 0;
+ else
+ q->Head++;
+
+ spin_unlock_irqrestore(plock, flags);
+
+ return E_WAPI_OK;
+}
+
+void WAPI_PrintQueue(WAPI_QUEUE *q)
+{
+ int i, j, index;
+
+ RT_ASSERT_RET(q);
+
+ printk("\n/-------------------------------------------------\n");
+ printk("[DOT11_PrintQueue]: MaxItem = %d, NumItem = %d, Head = %d, Tail = %d\n", q->MaxItem, q->NumItem, q->Head, q->Tail);
+ for(i=0; i<q->NumItem; i++) {
+ index = (i + q->Head) % q->MaxItem;
+ printk("Queue[%d].ItemSize = %d ", index, q->ItemArray[index].ItemSize);
+ for(j=0; j<q->ItemArray[index].ItemSize; j++)
+ printk(" %x", q->ItemArray[index].Item[j]);
+ printk("\n");
+ }
+ printk("------------------------------------------------/\n");
+}
+
+int pid_wapi = 0;
+void notifyWapiApplication()
+{
+ struct task_struct *p;
+
+ if(pid_wapi != 0){
+
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))
+ p = find_task_by_pid(pid_wapi);
+#else
+ p = find_task_by_vpid(pid_wapi);
+#endif
+ if(p){
+ send_sig(SIGUSR1,p,0);
+ }else {
+ pid_wapi = 0;
+ }
+ }
+}
+
+int WAPI_CreateEvent_Send(struct rtllib_device *ieee, u8 EventId, u8 *MacAddr, u8 *Buff, u16 BufLen)
+{
+ WAPI_EVENT_T *pEvent;
+ u8 *pbuf = NULL;
+ int ret = 0;
+
+ WAPI_TRACE(WAPI_API, "==========> %s: EventId=%d\n", __FUNCTION__, EventId);
+
+ RT_ASSERT_RET_VALUE(ieee, -1);
+ RT_ASSERT_RET_VALUE(MacAddr, -1);
+
+ pbuf= (u8 *)kmalloc((sizeof(WAPI_EVENT_T) + BufLen), GFP_ATOMIC);
+ if(NULL == pbuf)
+ return -1;
+
+ pEvent = (WAPI_EVENT_T *)pbuf;
+ pEvent->EventId = EventId;
+ memcpy(pEvent->MACAddr, MacAddr, ETH_ALEN);
+ pEvent->BuffLength = BufLen;
+ if(BufLen > 0){
+ memcpy(pEvent->Buff, Buff, BufLen);
+ }
+
+ ret = WAPI_EnQueue(&ieee->wapi_queue_lock, ieee->wapi_queue, pbuf, (sizeof(WAPI_EVENT_T) + BufLen));
+ notifyWapiApplication();
+
+ if(pbuf)
+ kfree(pbuf);
+
+ WAPI_TRACE(WAPI_API, "<========== %s\n", __FUNCTION__);
+ return ret;
+}
+
+#endif
+
diff --git a/ubuntu/rtl8192se/rtllib/wapi_interface.h b/ubuntu/rtl8192se/rtllib/wapi_interface.h
new file mode 100755
index 00000000000..159526ed147
--- /dev/null
+++ b/ubuntu/rtl8192se/rtllib/wapi_interface.h
@@ -0,0 +1,98 @@
+#ifndef __INC_WAPI_INTERFACE_H
+#define __INC_WAPI_INTERFACE_H
+#include <linux/spinlock.h>
+#include <linux/if_ether.h> /* ETH_ALEN */
+
+/*************************************************************
+ * WAPI EVENT QUEUE : *
+ * Buffer events from driver to application. *
+ *************************************************************/
+#define WAPI_MAX_BUFF_LEN 2000
+#define WAPI_MAX_QUEUE_LEN 6
+
+typedef enum
+{
+ E_WAPI_OK = 0,
+ E_WAPI_ITEM_TOO_LARGE = 1,
+ E_WAPI_QFULL = 2,
+ E_WAPI_QEMPTY = 3,
+ E_WAPI_QNULL = 4
+}WAPI_QUEUE_RET_VAL;
+
+typedef struct _WAPI_QUEUE_NODE
+{
+ u16 ItemSize;
+ u8 Item[WAPI_MAX_BUFF_LEN];
+}WAPI_QUEUE_NODE;
+
+typedef struct _WAPI_QUEUE
+{
+ int Head;
+ int Tail;
+ int NumItem;
+ int MaxItem;
+ WAPI_QUEUE_NODE ItemArray[WAPI_MAX_QUEUE_LEN];
+ int MaxData;
+}WAPI_QUEUE;
+
+typedef enum{
+ WAPI_EVENT_RCV_PREAUTHENTICATE = 1,
+ WAPI_EVENT_RCV_STAKEY_REQUEST = 2,
+ WAPI_EVENT_RCV_AUTHENTICATE_ACTIVE = 3,
+ WAPI_EVENT_RCV_ACCESS_AUTHENTICATE_REQUEST = 4,
+ WAPI_EVENT_RCV_ACCESS_AUTHENTICATE_RESPONSE = 5,
+ WAPI_EVENT_RCV_CERTIFICATE_AUTHENTICATE_REQUEST = 6,
+ WAPI_EVENT_RCV_CERTIFICATE_AUTHENTICATE_RESPONSE = 7,
+ WAPI_EVENT_RCV_USK_REQUEST = 8,
+ WAPI_EVENT_RCV_USK_RESPONSE = 9,
+ WAPI_EVENT_RCV_USK_CONFIRM = 10,
+ WAPI_EVENT_RCV_MSK_NOTIFICATION = 11,
+ WAPI_EVENT_RCV_MSK_RESPONSE = 12,
+ WAPI_EVENT_AE_UPDATE_BK = 13,
+ WAPI_EVENT_AE_UPDATE_USK = 14,
+ WAPI_EVENT_AE_UPDATE_MSK = 15,
+ WAPI_EVENT_ASUE_UPDATE_BK = 16,
+ WAPI_EVENT_ASUE_UPDATE_USK = 17,
+ WAPI_EVENT_FIRST_AUTHENTICATOR = 18,
+ WAPI_EVENT_CONNECT = 19,
+ WAPI_EVENT_DISCONNECT = 20,
+ WAPI_EVENT_MAX_NUM = 21
+} WAPI_EVENT_ID;
+
+typedef struct _WAPI_EVENT_T{
+ u8 EventId;
+ u8 MACAddr[ETH_ALEN];
+ u16 BuffLength;
+ u8 Buff[0];
+}__attribute__ ((packed))WAPI_EVENT_T;
+
+#define WAPI_IsEmptyQueue(q) (q->NumItem==0 ? 1:0)
+#define WAPI_IsFullQueue(q) (q->NumItem==q->MaxItem? 1:0)
+#define WAPI_NumItemQueue(q) q->NumItem
+
+void WAPI_InitQueue(WAPI_QUEUE *q, int szMaxItem, int szMaxData);
+int WAPI_EnQueue(spinlock_t *plock, WAPI_QUEUE *q, u8 *item, int itemsize);
+int WAPI_DeQueue(spinlock_t *plock, WAPI_QUEUE *q, u8 *item, int *itemsize);
+void WAPI_PrintQueue(WAPI_QUEUE *q);
+
+extern int pid_wapi;
+extern void notifyWapiApplication(void);
+/*************************************************************
+ * WAPI IOCTL: FROM APPLICATION TO DRIVER *
+ *************************************************************/
+#define WAPI_CMD_GET_WAPI_SUPPORT 0X8B81
+#define WAPI_CMD_SET_WAPI_ENABLE 0X8B82
+#define WAPI_CMD_SET_WAPI_PSK 0X8B83
+#define WAPI_CMD_SET_KEY 0X8B84
+#define WAPI_CMD_SET_MULTICAST_PN 0X8B85
+#define WAPI_CMD_GET_PN 0X8B86
+#define WAPI_CMD_GET_WAPIIE 0X8B87
+#define WAPI_CMD_SET_SSID 0X8B88
+#define WAPI_CMD_GET_BSSID 0X8B89
+#define WAPI_CMD_SET_IW_MODE 0X8B8b
+#define WAPI_CMD_SET_DISASSOCIATE 0X8B8c
+#define WAPI_CMD_SAVE_PID 0X8B8d
+#define WAPI_CMD_DEQUEUE 0X8B90
+
+#endif
+
diff --git a/virt/kvm/ioapic.c b/virt/kvm/ioapic.c
index 7c79c1d76d0..3500dee9cf2 100644
--- a/virt/kvm/ioapic.c
+++ b/virt/kvm/ioapic.c
@@ -192,12 +192,13 @@ static int ioapic_deliver(struct kvm_ioapic *ioapic, int irq)
int kvm_ioapic_set_irq(struct kvm_ioapic *ioapic, int irq, int level)
{
- u32 old_irr = ioapic->irr;
+ u32 old_irr;
u32 mask = 1 << irq;
union kvm_ioapic_redirect_entry entry;
int ret = 1;
spin_lock(&ioapic->lock);
+ old_irr = ioapic->irr;
if (irq >= 0 && irq < IOAPIC_NUM_PINS) {
entry = ioapic->redirtbl[irq];
level ^= entry.fields.polarity;
diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
index d2f06be6335..96048ee9e39 100644
--- a/virt/kvm/iommu.c
+++ b/virt/kvm/iommu.c
@@ -271,7 +271,7 @@ static void kvm_iommu_put_pages(struct kvm *kvm,
pfn = phys >> PAGE_SHIFT;
/* Unmap address from IO address space */
- order = iommu_unmap(domain, gfn_to_gpa(gfn), PAGE_SIZE);
+ order = iommu_unmap(domain, gfn_to_gpa(gfn), 0);
unmap_pages = 1ULL << order;
/* Unpin all pages we just unmapped to not leak any memory */